View Single Post
  #3   Spotlight this post!  
Unread 02-01-2014, 22:34
Jared Russell's Avatar
Jared Russell Jared Russell is offline
Taking a year (mostly) off
FRC #0254 (The Cheesy Poofs), FRC #0341 (Miss Daisy)
Team Role: Engineer
 
Join Date: Nov 2002
Rookie Year: 2001
Location: San Francisco, CA
Posts: 3,078
Jared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond repute
Re: Best Way to Learn Vision Processing

C++ OpenCV 2.0 may or may not be the best way to get into vision processing depending on your software background. Because it is a big library that does a lot of complicated things, there is a pretty steep learning curve. Moreover, current versions of OpenCV rely upon a pretty solid foundation in modern C++.

If you know Python, I recommend using OpenCV's Python bindings for rapid prototyping: it is syntactically simplified and quicker to throw together something that works in my experience.

If you have access to it, I highly recommend using Matlab's Image Processing Toolbox. I learned a large part of my foundation in vision from using its functions and (just as importantly) reading its documentation.

Computer vision is such an interesting subject because it combines so many disciplines of mathematics and computer science. I first took several courses in signal processing before diving into vision, and was glad I did so; many vision problems can be described as filtering problems. Graph theory, 3D geometry, and machine learning are all also very relevant fields. I would start with whichever one of these you might have some background, and grow from there.

Classic algorithms or techniques to get familiar with:

The pinhole camera model
Camera calibration
Thresholding
Binary morphology (erode/dilate)
Edge/corner detection
Correlation/Cross-correlation

I think that is pretty close to the order I would go in, as well (maybe gloss over calibration quickly at first).