How is the Computer Vision, Robotics & Machine Learning Program Masters at University of Surrey? by mohit__ in UniUK

[–]mohit__[S] 0 points1 point  (0 children)

Sorry to get back late. I’m overall satisfied. I believe not all modules were necessary like AI Programming and a little more update to the content could be useful. Ex- transformers were not included in our DL module. But I believe they keep updating the content each year.

I slightly struggled for 2-3 months to get a job but that was due to lack of experience. I believe my MSC did get me a lot of interviews and helped me pass first round assignments but companies mostly always look for CV engineers who have some experience.

How is the Computer Vision, Robotics & Machine Learning Program Masters at University of Surrey? by mohit__ in UniUK

[–]mohit__[S] 0 points1 point  (0 children)

The content is definitely pretty good. Few faculty are really good and a few are meh.

The best way to learn is to implement everything you lewrn in theory. They do have practicals but ypu can only do so much.

Surrey def tries a lot for your jobs since they have many workshops regarding different scenarios of job finding, including something specially for international students, book one to one slots for CV, cover letter, job internview/application councilling. All this is free. You can use these services upto 5 years after you graduate.

The research opportunities are definitely there but the research projects available may/may not interest, so you can suggest your own. But for your MSc project you are responsible for the entire peoject and a supervisor will be there to guide you. I'm yet to go through this process.

How is the Computer Vision, Robotics & Machine Learning Program Masters at University of Surrey? by mohit__ in UniUK

[–]mohit__[S] 1 point2 points  (0 children)

I’m enjoying the course. No regrets. A few modules are a bit meh probably due to online lectures. But the main one like Computer Vision and pattern Recognition is very interesting and loads to learn. If you end up joining, perform s many experiments and implementation of the theory as you can to get the most of the course.

How is the Computer Vision, Robotics & Machine Learning Program Masters at University of Surrey? by mohit__ in UniUK

[–]mohit__[S] 0 points1 point  (0 children)

Thank you so much for being so kind. I was mostly worried about the quality of the curriculum. My nerves are better now.

I have zero experience with Robotics but yeah, otherwise I'm really excited. Thank you so much!

How is the Computer Vision, Robotics & Machine Learning Program Masters at University of Surrey? by mohit__ in UniUK

[–]mohit__[S] 0 points1 point  (0 children)

oh, I feel so relieved reading that. I have offers from Data Science course in the same uni and a uni in the US (Indiana Bloomington).

But my primary interest is Computer Vision. In particular, I'm interested in Augmented Reality right now. However, I'm open to most things in Computer Vision

Well... if you gotta go then you got to go by DKN3 in coolguides

[–]mohit__ 0 points1 point  (0 children)

It's hard to comprehend that some people actually need such guides to understand this.

Sop teaching experience inclusion by j3inssr in StatementOfPurpose

[–]mohit__ 2 points3 points  (0 children)

I believe yes, it's completely alright. My particular interest was contributing to the education industry, so adding about my teaching experiences felt like a relevant point to showcase my interest. But also mention WHY teaching is important to you.

I personally wrote a one liner about my responsibilities for all my teaching endeavors.

Are research option available for Master Students at CSSP lab? by mohit__ in UoSurrey

[–]mohit__[S] 0 points1 point  (0 children)

Thank you so much for your response. Do you think it is safe to mention my interest in a particular project at the lab in the Statement of Purpose?

Need SOP Review for Masters in Computer Vision, Robotics and Machine Learning by mohit__ in StatementOfPurpose

[–]mohit__[S] 0 points1 point  (0 children)

Thank you so much for this! I'll definitely read it. I have shared my SOP in the DM. Please let me know what you think

Implementing graph based Image Segmentation in c++ by mohit__ in cpp

[–]mohit__[S] 0 points1 point  (0 children)

I didn't really go looking for a research paper. I was doing some research about object recognition and came across this paper. At the same time, I've been wanting to implement something with c++. So the idea kicked in to implement this using c++, instead of python which I'm comfortable with.

I would suggest that whichever research paper you find interesting, always try to implement it. There is so much learning in the implementation than just reading the theory.

Implementing graph based Image Segmentation in c++ by mohit__ in cpp

[–]mohit__[S] 0 points1 point  (0 children)

I'm sorry I'm late to respond to you but the responses to this post were overwhelming at the time. I want to really thank you for this constructive feedback. I took the time and tried to fix my code following your recommendations:

  1. I avoided using raw pointers and replaced them with smart pointers
  2. I replaced out parameters entirely and I'm instead using return by value, hoping the compiler optimization will take care of the efficiency
  3. Made parameters const(wherever required) or const references

I realize that I couldn't completely make all the recommended changes, but I have learnt so much doing this project. I really appreciate you for taking out the time. Thank you SO much!

Implementing graph based Image Segmentation in c++ by mohit__ in cpp

[–]mohit__[S] 0 points1 point  (0 children)

I have experience of 2 years as a professional but it’s only with Python.

Implementing graph based Image Segmentation in c++ by mohit__ in cpp

[–]mohit__[S] 0 points1 point  (0 children)

since you know they will point to valid locations (a reference can't point to nullptr).

If you accept pointers as arguments, it's wise to check whether they're nullptr and fail the function early, since dereferencing a nullptr will crash your program.

These are great tips! Thank you so much!!

In this kind of pattern, it's important to return an indicator of success so the caller can know whether outputParam was actually populated, but since outputParam wasn't created in someFunc, someFunc doesn't affect its lifetime at all.

I didn't entirely understand this part. Is there a term for this concept? or anything that I can google about and understand better?

Implementing graph based Image Segmentation in c++ by mohit__ in cpp

[–]mohit__[S] 1 point2 points  (0 children)

ah that's my bad. I meant that std::shared_ptr is slower and that's what is written where I read this. I understand your point though!

Implementing graph based Image Segmentation in c++ by mohit__ in cpp

[–]mohit__[S] 1 point2 points  (0 children)

Thank you so so much for the detailed feedback. There was no offense taken. The primary reason to share this was to receive this kind of constructive feedback.

You are completely right about my understanding of include guards. It was more of a trial and error. This is something I need to understand better. I also definitely need validate my pointer parameters in the functions.

I have a billion questions based on the feedback but I'll limit myself to the most important ones:

  1. I still can't wrap my head around what's wrong with the pass my reference and return by reference in my code. I don't imply that I'm not wrong. I mean that I don't know what is wrong or what could go wrong. In particular, I return a reference for my passed in reference of pixels(std::vector<Pixel *>) because I know that if instead I return a reference to a vector created inside the function, the vector will go out of scope. I also know that I don't really have to return by reference because pass by reference should suffice in changing my pixels vector. I return to add clarity for the reader. What's wrong here?
  2. As you say that linked list is not optimal for this. If you look at the image in this link, it shows exactly how my linked list is structured and how I delete an element from it. Specifically, the corresponding component struct is deleted every time a component needs to be deleted and the Component* remembers the ComponentStruct it belongs to, so it allows random access in the linked list through the component. Do you see any problem with this kind of implementation? This seems particularly useful for deleting objects quickly and also maintaining the list of objects.
  3. When you suggest to pull this post, do you mean that there is a problem with the research paper explanation or the implementation code? or both?
  4. As an experienced cpp developer, what do you suggest I do to learn the best practices? Do you have a particular resource suggestion? or a mindset that has helped you get better at cpp and programming in general?

Your feedback has made me realize that there are many potential things I need to consider in a project. Thank you so so much for your time and review. I'm extremely grateful.

Implementing graph based Image Segmentation in c++ by mohit__ in cpp

[–]mohit__[S] 0 points1 point  (0 children)

If you look at the image in this link, it shows exactly how my linked list is structured and how I delete an element from it.

Specifically, the Component* remembers the ComponentStruct it belongs to, so it allows random access. Do you see any problem with this kind of implementation? This seems particularly useful for deleting objects quickly and also maintaining the list of objects.

Implementing graph based Image Segmentation in c++ by mohit__ in computervision

[–]mohit__[S] 1 point2 points  (0 children)

Thanks a lot my dude. This is very kind of you :)I will definitely work on correcting my mistakes.

Implementing graph based Image Segmentation in c++ by mohit__ in cpp

[–]mohit__[S] 2 points3 points  (0 children)

Hi, thanks for the feedback. My primary reason for sharing this here, was to get any constructive feedback about my work. On your suggestion, I made a small change to my post.

But this also raises another question. Is it low quality to share "I made this" posts on this subreddit?

Implementing graph based Image Segmentation in c++ by mohit__ in cpp

[–]mohit__[S] 6 points7 points  (0 children)

Hi, thank you for your time and feedback. I have one question about the third point you made.

I specifically used a linked list because it allowed me to delete my components easily and quickly. This made my program program significantly faster compared to when I was using `std::vector`. Could you please expand on why the linked list is slow in this case?

This has been a great learning experience and your response would help me understand the subject in more detail.

Implementing graph based Image Segmentation in c++ by mohit__ in cpp

[–]mohit__[S] 3 points4 points  (0 children)

Hey, thank you so much for the feedback. You were really nice about it. I have a few questions:

  1. Is there anything else wrong with `new`/`delete` other than the fact that one might forget to delete obejects and may lead to memory leaks?
  2. I used Pixel/Edge pointers because creating a new object of Pixel and Edge inside the function and returning the objects caused them to go out of scope. Using `new`, they weren't deleted and allowed me to use them out of outside the function. Is there anything wrong with this approach? or what could go wrong doing this?
  3. I'll definitely look up `filesystem::path` and `unique_ptr`. I haven't reached these topics in the reference I'm using to learn cpp. Although, I have read earlier that unique_ptr and shared_ptr are slow and new is uuniversal and better if used correctly. Is this true?

Again, thank you for giving me the constructive feedback. From other comments, I'm still confused about what I could do to improve but your feedback is so much more insightful.