Looking for an open-source system that allows commercial use to do image recognition on a massive and organically growing collection of 2-D images where the only known variations will be:

  • Scaling size of image,
  • The angle the picture-of-the-picture is take,
  • Color-sync offsets, meaning that due to irregularities in the capture and rendering of an source image color varies from instance to instance,
  • Cropping of the photo,
  • Addition of a watermark or text,
  • Possible focus variations, meaning the capture was not in focus, not that an image manipulation filter has been applied.

I'm okay with having to train the application, as long as the return on doing so will pay-off -- that said, long-term I expect the count of 2-D instances to grow beyond the initial few thousands to the hundred of thousands; but that's long-term, and I'd be happy just to have a solution that works well for know with a training set of 1000 instances and 10 examples per instance.

UPDATE: The license needs to be able to be used for commercial internal distribution without release of the source code even internal to all those who have the binary. The code will never be sold, just used internal, but not every user will have access to the source code, just the interface.

  • 2
    $\begingroup$ Have you considered OpenCV? $\endgroup$ – pwny Feb 13 '12 at 21:01
  • $\begingroup$ +1 @pwny: Thanks -- so no, I've never tried any computer vision (CV) system, just trying to get an idea of if the way I'm thinking about the problem is correct. I would state what the images are of, but since it relates to a business venture and the CV system would be for internal use only, I'm attempting not to state what the system will be processing, but the challenges it is will face. If OpenCV meets the current requirements, please post it as an answer and attempt to link to related docs that cover the functional requirements provided, if possible. Again, thanks! $\endgroup$ – blunders Feb 13 '12 at 21:58
  • 1
    $\begingroup$ There's no such thing as "internal distribution", according to copyright law. Therefore most licenses (all that I'm aware of) don't bother with restrictions in that respect. $\endgroup$ – MSalters Feb 14 '12 at 8:24
  • $\begingroup$ +1 @MSalters: Thanks, do you have a link to the "according to copyright law" -- meaning it seems like you're saying this is stated within US Copyright Law, though maybe I'm just reading into your comment. $\endgroup$ – blunders Feb 14 '12 at 11:04
  • 1
    $\begingroup$ @blunders: Technically, it's from TRIPS (Article 1.3), which establishes that a legal person (e.g. a corporation) is to be treated like a natural person. $\endgroup$ – MSalters Feb 14 '12 at 12:24

It might be a little low-level, but OpenCV might provide you with the tools you need to build such image recognition software. Of course, OpenCV doesn't provide with all you need out of the box (I think, I'm no pro) but it aims to provide what is needed for real-time computer vision.

You can start reading on the documentation here. Some good books are also listed on that page.

Hope this helps, good luck!

  • $\begingroup$ Does OpenCV's GPLV2 license mean that it is unable to be distributed internally within a closed source system? Thanks! $\endgroup$ – blunders Feb 13 '12 at 22:44
  • $\begingroup$ Where do you see the GPLV2 license? In the first paragraph on the home page it's listed as a BSD license. $\endgroup$ – deterb Feb 14 '12 at 3:36
  • $\begingroup$ @deterb: In the footer, at the very bottom of the page. $\endgroup$ – blunders Feb 14 '12 at 9:47
  • $\begingroup$ @deterb: Appear the GPL link is for the MoinMoin Wiki Engine used for the wiki for OpenCV, not OpenCV -- thank for point out my error! $\endgroup$ – blunders Feb 14 '12 at 10:43
  • $\begingroup$ +1 @pwny: So as points out, OpenCV is under a BSD license, which is stated on the website homepage (appears the footer GPLV2 license does not apply to OpenCV), also attempted to confirm this by downloading OpenCV and search search license within all of it's files; which return amoung other 3rd party licenses, a license that appears to be for OpenCV in the form of a BSD license, though it does not state it's a BSD license. So, going on that, your answer is a huge help, and seems good enough to move forward. Thanks! $\endgroup$ – blunders Feb 14 '12 at 11:14

I recommend you to use TopSurf as in here: http://www.liacs.nl/~bthomee/topsurf/index.html http://press.liacs.nl/researchdownloads/topsurf/

It can do large scale recognition and is open source. At least try to benchmark your results with it.


Just to add to the discussion I am currently working on image matching and I found OpenCV's ORB is free; however SURF and SIFT aren't. You can look at this example as a possible starting point.


Pastec http://www.pastec.io should meet the requirements of the initial question.

It is an open source index and search engine for image recognition released under the LGPL. It allows to easily add, remove and search for matching images in the index using a simple HTTP API. It is based on OpenCV and uses the ORB descriptor, which is patent free unlike SURF and SIFT.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.