Developers look to open sources for vision algorithms

Numerous options exist to speed the development of machine vision and image processing algorithms.

Newfig 1a 1403vsd

Andrew Wilson, Editor

Numerous options exist to speed the development of machine vision and image processing algorithms. These range from developing code in high-level languages, using callable libraries of image processing functions or using icon-based software packages that are now available from a number of well-known vendors.

While each approach as its merits and drawbacks, developers may often be required to add specific functions to their software that are not supplied by a particular vendors. To do so, savvy developers often look for open source code that can either be used either in conjunction or in place of these software packages.

One of the most popular of such open source code is the Open Source Computer Vision Library (Open CV), an open source computer vision and machine learning software library that comprises more than 2,500 optimized algorithms for computer vision and machine learning (http://opencv.org).

So popular is the library that, at last year's International Conference on Computer Vision (ICCV) conference, Dr. Gary Bradski, Consulting Professor at Stanford University's Computer Sciences Department accepted the prestigious Mark Everingham prize from the IEEE Pattern Analysis and Machine Intelligence (PAMI) technical committee on behalf of the Open CV development team.

To speed the development of the point, neighborhood and global operators contained in the Open CV library, numerous books are now available that describe the algorithms and how to implement them. While these can be found on the Open CV website (http://opencv.org/books.html), many such as "The Open CV 2 Computer Vision Application Programming Cookbook" by Robert Laganière (http://bit.ly/1cmk9Yk), "Machine Learning with OpenCV2" by Philipp Wagner (http://bit.ly/1hFdY1O), "Learning Open CV" by Gary Bradski and Adrian Kaehler (http://bit.ly/1n87hcD) and "Mastering Open CV" by Daniel Baggio and others (http://bit.ly/1n87hcD) can, at present, be found on-line.

To speed the development of applications based on the Open CV library, a number of both commercial and open source frameworks are available. These include VisionServer, a commercially available machine vision software framework from ControlVision (Auckland, New Zealand; www.controlvision.co.nz) that uses a graphical function block sequence editor to allow vision applications to be rapidly developed (see "Vision framework supports multiple software packages," Vision Systems Design, February 2012; http://bit.ly/L9gGS6).

Open source frameworks including Simple CV (http://simplecv.org) developed by the founders of Sight Machine (Ann Arbor, MI, USA: www.sightmachine.com) allow access to the high-level feature detection, filtering, and pattern recognition algorithms found in Open CV without the need to understanding of bit depth, file format, or buffer management techniques (Figure 1). Sight Machine's vision systems are now being employed in applications as diverse as checking the integrity of steel fasteners to manage fish feeding (http://oreil.ly/1iaHg9j).

Newfig 1a 1403vsd
Newfig 1b 1403vsd
Newfig 1c 1403vsd
Figure 1: (a) A simple threshold function that sets each pixel in an image to black or white depending on its brightness (b) edge pixels in the image are set to white (c) keypoints - unique areas of an image are used for 3D reconstruction and image matching tasks.

Such open source frameworks are also available for the Android operating system. These include Cuckoo, an Android framework developed by Roelof Kemp and his colleagues at Vrije University (Amsterdam, The Netherlands; www.vu.ni). With a runtime system, resource manager application for smartphones and a programming model for developers, Kemp has shown how the framework can be used in conjunction with Open CV to build a face recognition application for Android-based smartphones (http://bit.ly/1b7L5XX). Face recognition applications have also been developed by Francisco Antonio Duran using Android developer tools, and the Android native development kit (http://bit.ly/1hN7JJk).

Those familiar with the MATLAB computing language from MathWorks (Natick, MA, USA; www.mathworks.com) may also want to investigate Darwin, an open-source platform-independent C++ framework for machine learning and computer vision research framework developed Stephen Gould at the Australian National University (Canberra, Australia; www.anu.edu.au). Working with Open CV, the framework contains MATLAB wrappers for core components of the library and an experimental graphical user interface for developing and visualizing machine learning data flows (http://bit.ly/1mXJeKx).

"Compared to other image processing libraries such as the MATLAB Image Processing tool box, Open CV which is based on C/C++, is faster," says Dr. Adhiguna Mahendra (http://bit.ly/1fcbNkk). "And, despite the simplicity of packages such as the NI Vision Development Module from National Instruments (Austin, TX, USA; www.ni.com), such packages lack the flexibility and expandability of Intel Open CV. However, as Mahendra shows, it is possible to combine the OpenCV and NI LabVIEW using a DLL that communicates between Intel OpenCV and LabVIEW.

While many companies and researchers have developed software to ease the task of integrating Open CV libraries into applications, others are developing novel algorithms to add to the library. Under the DARPA Visual Media Reasoning program, for example, both SRI International (Menlo Park, CA, USA; www.sri.com) and Next Century Corporation (Columbia, MD, USA; www.nextcentury.com) have developed vision system development tools for the automated evaluation of vision algorithm performance and for combining computer graphics and machine vision technology (see "Software aims to characterize algorithm performance," Vision Systems Design, December 2013; http://bit.ly/1jJuqC3).

At the Massachusetts Institute of Technology (MIT, Cambridge, MA, USA; http://web.mit.edu) others, such as Jared Glover have developed a vision algorithm to identify familiar objects in cluttered scenes that Gary Bradski believes will eventually become the standard way in which robotics engineers represent object orientation (http://bit.ly/1d7XQkS).

While new algorithms continue to be added to the Open CV library, many companies are developing application software using the libraries themselves. These include the ROVIS Machine Vision System, an open source software application under development by the ROVIS Research Group (Brasov, Romania; http://rovis.unitbv.ro/about-rovis-lab) and Open Vision Control, a software package for object motion detection (http://openvisionc.sourceforge.net).

More Vision Systems Issue Articles
Vision Systems Articles Archives

More in Emerging