Live data from Hacker News

Ask HN: What are the best resources to learn computer vision?

news.ycombinator.com

31–40 of 59 posts

Re: Ask HN: What are the best resources to learn computer vision?

#31
I think the question is a little too unspecific for there to be a good answer. The field is vast and depending on which thing in computer vision you want to tackle the best learning paths may vary greatly. Just to give a bit of an overview:

Before the Deep Learning Craze started in 2011 more classical Machine Learning techniques were used in CV: Support Vector Machines, Boosting, Decision Trees, etc..

These were (and still are!) used as a high level component in areas like recognition, retrieval, segmentation, object tracking.

But there's also a whole field of CV that doesn't require Machine Learning learning at all (although it can benefit from it in some cases). This is typically the area of geometrical CV, like SLAM, 3D reconstruction, Structure from Motion and (Multi-View) Stereo, anything generally where you can write a (differentiable) model of reality yourself using hand-coded formulas and heuristics and then use standard solvers to obtain the model parameters given the data.

Whenever it's too hard to do that (for example trying to recognize many different things in images) you need a data-driven / machine learning approach where the computer comes up with the model itself after seeing lots of training examples.

As for resources the other answers are already giving a great overview. Use Karpathy's course for an intro to Deep Learning for CV but don't expect it to be comprehensive in terms of giving you an overview of CV.

Learn OpenCV for more low level, non-ML and generally more "old-school" Computer Vision.

A personal recommendation of mine is http://www.computervisionblog.com/ by Tomasz Malisiewicz. It's an excellent resource if you want to get an overview of what's happening in the field.

Re: Ask HN: What are the best resources to learn computer vision?

#33
A lot of real world computer vision is implemented on embedded devices with limited computational resources (ARMs, DSPs, etc.) so understanding how a lot of commonly used algorithms can be efficiently implemented in embedded systems is important. It is possibly a way for you to jump the gap from "embedded software developer" to "computer vision engineer". Also keep in mind that in many companies a "computer vision engineer" is fundamentally a different beast from a "software developer". A CV engineer creates software but the emphasis tends to be more on systems and is not 100% about software. This will vary a lot by company but if you're working with prototype hardware you will need to get at least a working knowledge of optics.

Fun and trendy though it may be, I would not focus on deep learning / convolutional neural networks to start off. Deep learning is a small subset of computer vision. I would focus more on understanding the basics of image processing, camera projection geometry, how to calibrate cameras, stereo vision, and machine learning in general (not just deep learning). Working with OpenCV is a good place to start for all of these topics. Set yourself a project with tangible goals and get to work.

Re: Ask HN: What are the best resources to learn computer vision?

#34
post #24

Earlier quoted context omitted.

As an engineer, it's difficult to know when to use deep learning and when to use more classical algorithms. Often, you have to try both and see which is better (twice the work, hooray!). The classical algorithms often are very understandable, and you can reason with what's going on and figure out what is breaking. Deep learning is so much harder, e.g., are my hyper parameters bad, or do I need another 30 GPUs running…

Imho, deep learning has little to do with engineering, and more with guessing, hoping and praying. But it seems you can often get something to work if you do those three things hard enough.

This has been my experience as well :). Deep learning is a lot of random guesswork, trial and error. I am almost always in the 'brute force' mode. However, in this course, you learn more about the fundamentals of convolutions and backprop. You have to implement your own backprop - not sure of what use that is, given that it's a one line code in TensorFlow

Re: Ask HN: What are the best resources to learn computer vision?

#35
post #31

I think the question is a little too unspecific for there to be a good answer. The field is vast and depending on which thing in computer vision you want to tackle the best learning paths may vary greatly. Just to give a bit of an overview: Before the Deep Learning Craze started in 2011 more classical Machine Learning techniques were used in CV: Support Vector Machines, Boosting, Decision Trees, etc.. These were (and…

Great points.

I would argue Kinetic or Geometrical Computer Vision problems, things like Tracking, Mapping, Reconstruction, Depth Estimation are best suited for the classical approaches like VO, SFM/MVS, SIFT/SURF, HOG etc... and are a separate category of CV problems than object recognition/detection/segmentation - much more capable of being done with ML because dimensionality is reduced.

But there's also a whole field of CV that doesn't require Machine Learning learning at all (although it can benefit from it in some cases).

In fact, Machine Learning has made almost no progress on most of what you mention, specifically SLAM and Multi-View Stereo. It takes completely rethinking how those are done when they are approached from the Deep Learning perspective.

Re: Ask HN: What are the best resources to learn computer vision?

#36
Grad-level CV courses, all recently offered:

Princeton CS598F Deep Learning for Graphics and Vision

https://www.cs.princeton.edu/courses/archive/spring17/cos598...

Stanford CS331B: Representation Learning in Computer Vision

http://web.stanford.edu/class/cs331b/

UVa CS 6501: Deep Learning for Computer Graphics

http://www.connellybarnes.com/work/class/2016/deep_learning_...

GaTech CS 7476 Advanced Computer Vision

http://www.cc.gatech.edu/~hays/7476/

Berkeley CS294 Understanding Deep Neural Networks

https://bcourses.berkeley.edu/courses/1453965

Washington CSE 590V: Computer vision seminar

https://courses.cs.washington.edu/courses/cse590v/16au/

UT Austin CS 395T - Deep learning seminar

http://www.philkr.net/CS395T/

Berkeley CS294-43: Visual Object and Activity Recognition

https://sites.google.com/site/ucbcs29443/

UT Austin CS381V: Visual Recognition

http://vision.cs.utexas.edu/381V-fall2016/

And best of luck to you!

Re: Ask HN: What are the best resources to learn computer vision?

#37
Surprised nobody has posted http://course.fast.ai/ yet. I've been following along with it so far for the first 4 lessons and it has been extremely helpful in understanding how deep learning works from the perspective of someone who did not have much of any related baseline knowledge except how to program. Jeremy is an excellent practical teacher.

Re: Ask HN: What are the best resources to learn computer vision?

#38
post #34
post #24

Earlier quoted context omitted.

Imho, deep learning has little to do with engineering, and more with guessing, hoping and praying. But it seems you can often get something to work if you do those three things hard enough.

This has been my experience as well :). Deep learning is a lot of random guesswork, trial and error. I am almost always in the 'brute force' mode. However, in this course, you learn more about the fundamentals of convolutions and backprop. You have to implement your own backprop - not sure of what use that is, given that it's a one line code in TensorFlow

Studying how to write your own back propagation algorithm could be useful if you're a deep learning researcher. But for most people it would be like studying semiconductor physics if you only want to write software.

Re: Ask HN: What are the best resources to learn computer vision?

#40

Surprised nobody has posted http://course.fast.ai/ yet. I've been following along with it so far for the first 4 lessons and it has been extremely helpful in understanding how deep learning works from the perspective of someone who did not have much of any related baseline knowledge except how to program. Jeremy is an excellent practical teacher.

Seconded - can't recommend the course highly enough

A lot of 'traditional' computer vision methods e.g. Hough detector are simply inferior to deep learning approaches.

Plus, it's a lot easier than you'd think to get up and running, especially when you leverage pre-trained models...

Post reply on HN