Sunday, June 08, 2008

Getting started in computer vision ?

I have recently received some emails from some newbies which asked me how to become an expert in Computer Vision(CV). As a matter of fact, I don’t know myself as a CV expert; hence, maybe I can’t show you the door (remember the Morpheus in the Matrix film :) .But as a self-taught software developer who does love this major, I have some proposals for you. Here it comes:

First : Start by the procedure that Robin Hewitt suggests: Getting started in computer vision. She is an independent software developer who is a prominent expert in relevant stuff. Do whatever she proposes !!!!

Second : Become familiar with Matlab and specially C/C++. I can argue more than one hour that you need both C and C++. I do love C , and I can extend CV algorithms with it; but in the industry you do need C++. In the real world applications , you need software engineering approaches beside of algorithms and therefore, you MUST develop softwares in OOP mode. You HAVE to learn it. It’s Compulsory !!

Third : Learn to develop softwares with Python. I don’t want to start to describe it. Just google it….. You will be a better hacker when you use it to develop raw algorithms.

Forth : Start to study Math every day. It’s like an exercise for your brain :) I’m not kidding !!

Fifth : “ Concentrate and NEVER give up!" Take this as a fundamental rule….


UPDATE: You can use the python binding for OpenCV too .

Just " from opencv import *" and have a lot of FUN :)


Alireza said...

so i never see the door , even you show me !

Brad said...

In my opinion, a person could get starting in Computer Vision just using python, though, for performance reasons, any production code would probably need to be written in C++.

I've used the python bindings to OpenCV quite extensively. Also PIL and SciPy are great tools! SciPy includes a lot of Matlab-like functions for python, so if you can't afford Matlab, it's a nice alternative.

And yes... the Math is important. Knowing your math will help greatly along the way!

Good Luck.

vahid said...

Thanks Brad,
I believe that python is great to implement a lot of Computer Vision projects too. But my concern is about the "industry". As far as I have seen (for example in job boards), having knowledge about C++ is mandatory. It's true; because as you know, we need real-time performance in some cases. Fortunately, python is getting faster and faster(by some improvements which is built by hackers). The projects like VisionEgg are quite promising :)
BTW, Do you have ever implement Face Recognition ( and not detection) with python binding to OpenCV ?? Does it have the same performance and speed in large scale databases?