Hacker News new | past | comments | ask | show | jobs | submit login
Machine Vision made Easy - SimpleCV (simplecv.org)
221 points by LiveTheDream on Nov 11, 2011 | hide | past | favorite | 43 comments



I am one of the SimpleCV Developers. We are overjoyed at all this feedback. We have a few really exciting things coming up that we would like to share:

1) We will probably release the SimpleCV 1.2 super packs next week. There are a ton of sweet new features. We could really use some beta testers. Please let us know if you are interested.

2) We just signed a book deal with O'Reilly Media to make a SimpleCV guide. We are soliciting input from the community about what CV problems they need solved, or cool projects they would like us to do.

With respect to our business model, right now we are focused on quickly and cheaply delivering open-source machine vision solutions for manufacturing. If you have a manufacturing contact that has a machine vision problem and is looking for a solution we would love to talk to them. In the next month we will have a development scrum that will focus on our Seer product. Seer will the framework for deploying your computer vision projects in a cloud context. This means being able to remotely deploy and manage a vision system (i.e. CV as a service). Also along these lines we are actively looking for partners for the DARPA iFAB BAA that will be released soon (see: https://www.fbo.gov/index?s=opportunity&mode=form&id...). If you are going to submit a proposal for this contract we would love to talk to you.

Since we're open source we welcome and encourage community participation and feedback. If you have a cool project or a pony request shoot us a message via twitter (@Simple_CV or @IngenuitasInc) and we can chat and perhaps help you with your project.


For those wanting to know the difference between this and openCV, Anthony summed it up pretty nicely:

http://hplusmagazine.com/2011/09/20/make-computers-see-with-... (4th comment)


That doesn't really make any comparison between open and simple CV. The example towards the end thqt compares two code snippets isn't even comparing the same operation, in the C code it creates a new image and places text on it, while the python code merely opens a file... Opening a file and displaying it in C is about one or two lines more of code


Is CV a common term for "computer vision"? I'm used to CV meaning "curriculum vitae" and it took me ~2 minutes to realize the site had nothing to do with it.

/me might be in the recruiting realm too long


Yes, I think computer vision is a common term for the area (at least, among academics and researchers), and CV is a common abbreviation.

Examples include Intel's OpenCV and the CVPR conference.

(I actually thought that it was weird that they called themselves "machine vision" rather than computer vision in the title.)


OpenCV is OSS maintained by Willow Garage. Intel provides the Intel Performance Primitives which implement basic filtering up through haar, segementation, optical flow.

Machine vision usually refers to the domain of industrial inspection where the scene contents are highly controlled, and computer vision usually refers to harder problems where someone is walking around a real environment with bad lighting and awkward perspectives.


OpenCV originated at Intel and was based on Intel's IPL.

Some researchers prefer the term 'machine vision' as more general, referring to the entire field of artificial vision problems, not necessarily involving a 'computer' in common terms (i.e. FPGA-based or analog electronics).


I thought the same, but wouldn't say it was the recruiting realm per se. More that an American would be more familiar with 'resumé' and might not instantly realise CV has another meaning elsewhere.

There's no way I could get used to CV not being 'curriculum vitae'.


In my experience (in the US), CV is usually used in Academia (what papers you have published, research you have done) and resume is used in industry settings.


It's a play on OpenCV.


I, too, thought this. Not from recruiting, but too many years in academia where nobody ever talks about a résumé, but uses curriculum vitae instead.


How does this compare with OpenCV's existing python interface? The examples at http://opencv.willowgarage.com/documentation/python/cookbook... look fairly simple.


I'd also like to know the answer to this question. Also isn't openFrameworks supposeds to be more frame-worky than just a library (someone mentioned earlier simplecv aims to be more of a framework rather than just a library) Did the developers not realize there are similar solutions already in existence? Why not develop those further?


@sinope: Note that you appear to have been hell-banned. I can't find anything in your comment history that suggests why this would be, but the upshot is that nobody can see your comments. I'm not sure whether there's an appeal method; you may wish to consider a new account.


At first glance, it looks like a good library for starting out with Vision. It's a very Pythonic library. I especially like some of the blatant honesty in their docstrings.

https://github.com/ingenuitas/SimpleCV/blob/master/SimpleCV/...

> def _makeCodebook(self,data,ncodes=128):

> """

> Do the k-means ... this is slow as as shit

> """

It certainly looks easier than starting with OpenCV alone.

Moreover, Ingenuitas looks like an interesting company. Open source solutions for manufacturing is certainly nothing I've heard of before. Definitely something to keep an eye on.


Thanks! I try to keep things real in the documentation. Sometimes things are slow, especially with python. After years of working as a closed-source defense contractor nothing feels better than having someone looking at my code and agreeing with me that a) it sucks and b) at least it works.


Ingenuitas got me curious too. It looks like an interesting team and company, and all your existing products are open source and free of charge, you don't seem to be selling anything. How do you make money?


The Processing/Java library is stupid easy to use.

http://ubaa.net/shared/processing/opencv/


I don't see morphology filters supported. Huge fail.


It would be cool if there was "computer vision as a service". Just post a pic to the URL, and it sends back a string describing what it is.


http://developers.face.com/ has already started doing this (Though just for faces)


Just wanted to throw in my "hip hip hooray" for SimpleCV. I've been messing around with it (at shaheeb.com) to work on the DARPA Shredder Challenge (shredderchallenge.com). The code is transparent, but it still wraps up a lot of OpenCV boilerplate just right.

I also wanted to mention that the team (Kat, Anthony et al.) are very responsive to their community and user base.

All around kudos SimpleCV team.

SR




"Made easier" would be more accurate


To install all you need is opencv, scipy and python

in my experiecne the hardest part of machine vision (on a pC) is getting all the bits installed and playing nicely with each other


Doesn't sound like you've done a lot of computer vision, then...


At least they teach you the maths of separable convolutions -

they don't teach you that the defualt opencv built with vs will clash with Qt libs built with mingw but the ing system won't tell you this!


If you are developing on Windows you are pushing against the tide.


It's generally hard enough persuading someone that you can measure something from a picture - also telling them that they can't use 'normal' computer software is even harder.

Of course back in the day, when it had to be a Sparc station crammed full of custom i860 boards it as even harder!


Computer vision is made very easy with OpenCV and, say, C...but it's quickly outgrown if you're doing anything meaty.


Sorry for not diving into the docs and firing the question... Could this be used to easily detect where the eyes, mouth, etc. are within an ID picture? I'm not talking about face recognition, but rather about (the more trivial) face-element recognition.


Coincidentally I'm working on this type of thing right now. Right now, 'feature detection' is a tiny bit more difficult. I work with something known as Active Shape/Appearance Models which do just that. The issue with them is needing to be roughly in the right spot to correctly conform to the object. Once you detect the object, you can apply a mesh frame to detect the inner objects. I'd recommend looking at Stacked Active Shape Modelling for a nice edge detection approach to feature detection.

SimpleCV just released a video about face detection but I don't think they've expanded into features yet. Hopefully they don't cause I want to do it!


The short answer is yes this can be done. You can use the Haar cascade wavelet files that ship with OpenCV 2.3. I will see if I can toss those into SimpleCV.


I ticketed this up and I will get to it Monday. I should be able to ship it with SimpleCV 1.2. https://sourceforge.net/p/simplecv/tickets/180/


I appreciate their effort and work. Nevertheless i believe OpenCV is quite easy to learn & use in a very short time. Why would i use this toolkit ?


I've written a LOT of OpenCV code. It's a pain. This makes it easier to do the stuff that is simple but messy to do with the normal OpenCV, and doesn't get in your way when you want to use the full API. I would have loved to have this a year ago.


Love the cats vs cheesburgers demo.



Thanks!


While cute, I'm surprised why it seems to work so well.

The extracted features appear to be nothing but small patches of various types and directions of edges.

Training a Naive Bayes classifier on these features will try to determine the label roughly based on the unordered strength/number of occurences of these small feature patches.

While it's obviously demonstrated that you can attain a surprising accuracy with this method, if the features in the "bag of features" method are all very local like in this demo, you are throwing away the larger scale features of the image. And intuitively, it's the larger scale features that ultimately determine the subject of a photograph.

One thing this classifier would probably fail, would be a blurred photograph, that still would obviously depict either a cat or a cheeseburger to a human viewer, but it would completely mess up the local feature patches.

A more interesting, and much harder, thing would have been to try and train a classifier to determine "cat", "cheeseburger" or "other/neither". I'm fairly sure you couldn't have done that with such local features.

Just my educated Machine Learning opinion, of course :-) The demo itself is both hilarious, and a good demonstration of SimpleCV's ease of use.


Perhaps it's just my setup (Chrome on Windows), but the site's font looks pixelated. Irony?


Is SimpleCV where I'm supposed to submit my resume?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: