Live data from Hacker News

SimpleCV – Computer Vision platform using Python

simplecv.org

31–39 of 39 posts

Re: SimpleCV – Computer Vision platform using Python

#31

Check out this beard length detector I wrote in 22 lines of Python with SimpleCV http://labs.radiantmachines.com/beard/

Make it judgmental ("Good o'clock shadow", "Too long, shave it or grow it out", "Too patchy, shave it.") and that would make a useful albeit niche smartphone app.

Re: SimpleCV – Computer Vision platform using Python

#32
post #9

It's difficult to effectively use cv libraries (such as opencv) because in order to approach new problems, understanding of the underlying theory and methodology is often necessary. Example code can only go so far to teach the user how to evaluate and adapt to new constraints. simplecv.org is down for me right now, but I hope that it addresses this concern! The principles of computer vision are not too difficult to g…

For additional reference, the introductory computer vision course I recently took was based around these two freely downloadable books:

http://szeliski.org/Book/ http://www.cse.usf.edu/~r1k/MachineVisionBook/

Re: SimpleCV – Computer Vision platform using Python

#33
post #9

It's difficult to effectively use cv libraries (such as opencv) because in order to approach new problems, understanding of the underlying theory and methodology is often necessary. Example code can only go so far to teach the user how to evaluate and adapt to new constraints. simplecv.org is down for me right now, but I hope that it addresses this concern! The principles of computer vision are not too difficult to g…

Not hard at all. That's why the whole thing was done over the summer of '66 at CSAIL/MIT as a grad student project. Yes, nearly fifty years later it's safe to say that some progress has been made, but a solution to the general problem is still "just a few months away".

Re: SimpleCV – Computer Vision platform using Python

#34

Unfortunately computer vision libraries and toolsets are the worst offenders of making each algorithm a 'hammer' when traditional problems are not a 'nail'. A good example is "Detecting a Car" ( http://tutorial.simplecv.org/en/latest/examples/parking.html ), where the mean color is used to determine if a car is in the image. A nice little exercise, but it oversimplifies the process. Each allows the user to step in a…

I agree that the example would be better if it raised questions about the weaknesses of this approach and the next steps you might need for a more general solution. But it is still a legitimate example. I'm an amateur, but I'm pretty sure the world of production grade vision systems is full of hacks like this. A good example is a nose detector on a depth sensor: just look for the closest point to the camera. John Russ's Image Procesing Handbook (amazon.com/Image-Processing-Handbook-Sixth-Edition/dp/1439840458) is full of examples where simple techniques are good enough under controlled circumstances.

True object recognition would require strong AI. Every real life vision system is a compromise that makes many assumptions about its input. You'd be foolish to reach for something like SIFT if you really know that the car is always yellow and it always parks in the same 200x200px square.

Re: SimpleCV – Computer Vision platform using Python

#35
post #9

It's difficult to effectively use cv libraries (such as opencv) because in order to approach new problems, understanding of the underlying theory and methodology is often necessary. Example code can only go so far to teach the user how to evaluate and adapt to new constraints. simplecv.org is down for me right now, but I hope that it addresses this concern! The principles of computer vision are not too difficult to g…

I've worked on image recognition and find OpenCV too simple. I don't like algorithms that work on the entire image without taking into account what is being recognized. For example, if you have a combination of thick and thin edges, you only want to erode the thick ones and you only want to erode the thick edges until they are thin and smooth. If you posterize an image, you don't want to cross regions separated by long smooth edges. You don't want to blur away noise in the image because when the noise is localized, you can use it to identify what the object is (similar to the way shazam uses high frequencies to identify songs).

OpenCV, simpleCV etc are very useful libraries for toying around with images. You can get interesting results without a lot of effort. But the more serious you get about image recognition, the more you find that you can't use them globally across the image. Finding the yellow car in the parking spot is a good example of the usefulness of the library and also its simplistic capabilities. It recognized a yellow patch in the image and it doesn't recognize a car in a general way. When you're ready to write code to recognize a car, you'll probably find you can't use openCV libraries.

What has worked amazingly well for me, is to create a model of the image areas and then apply transformations based on the model. If you have a sharp foreground and a blurry background, don't run the recognition algorithms that rely on sharp edges on the blurry background.

Re: SimpleCV – Computer Vision platform using Python

#36
I'm not well versed in the usage of OpenCV; but I just can't get the fact that most CV applications will require a more thorough understanding of the subject (both mathematically and software-technically) in order to create something more than a 'nice toy' (I'm waiting to be corrected here)

Re: SimpleCV – Computer Vision platform using Python

#37

Earlier quoted context omitted.

I'm looking to measure dimensions of objects using computer vision libraries. I think it is impossible to do this without a reference scale in the same image. What is the unit of measure for line.length()?

For my use it is just arbitrary. SimpleCV does have the ability to calibrate cameras, which should give you what you want.

What about follicle width? There is variation from person to person, and even on a single person, but I am sure you could find an average that is suitable.

Re: SimpleCV – Computer Vision platform using Python

#38
post #26

Unfortunately computer vision libraries and toolsets are the worst offenders of making each algorithm a 'hammer' when traditional problems are not a 'nail'. A good example is "Detecting a Car" ( http://tutorial.simplecv.org/en/latest/examples/parking.html ), where the mean color is used to determine if a car is in the image. A nice little exercise, but it oversimplifies the process. Each allows the user to step in a…

Isn't the most important part of any algorithm whether it will fit the purpose? For the situation they describe (purely as an example) their algorithm seems it will probably work quite well. You're not going to build a humanoid robot using that algorithm, but it is addressing the problem they specified so directly that anything more would be over-engineering the solution. Most real-life problems are going to be addre…

> You're not going to build a humanoid robot using that algorithm, but it is addressing the problem they specified so directly that anything more would be over-engineering the solution

Clearly.

> Most real-life problems are going to be addressable using similar techniques.

Nope.

Post reply on HN