What are the most used/popular artificial neural network algorithms for recognising the content of images in general?
- If the picture is of a person, dog, cat or a car.
- If the picture is a landscape, indoor or some banner or advert.
I’ve heard of backpropagation algorithm so far.
Unsupervised learning algorithms:
Supervised learning algorithms:
- Hopfield networks,
- Boltzmann machines,
- Restricted Boltzmann Machines,
- Spiking neural networks
Reinforcement learning algorithms:
Deep learning algorithms:
- Deep belief networks,
- Deep Boltzmann machines,
- Deep Convolutional neural networks,
- Deep Recurrent neural networks,
- Hierarchical temporal memory
And other (e.g. Data Pre-processing).
Object recognition methods in computer vision
Object recognition is a process for identifying a specific object in a
digital image or video. Object recognition algorithms rely on matching
or learning algorithms using appearance-based or feature-based
techniques. Common techniques include edges, gradients, Histogram of
Oriented Gradients (HOG), Haar wavelets, and linear binary patterns.
Object recognition is useful in applications such as video
stabilization, automated vehicle parking systems, and cell counting in
You can recognize objects using a variety of models, including:
- Extracted features and boosted learning algorithms,
- Bag-of-words models with features such as SURF and MSER,
- Gradient-based and derivative-based matching approaches,
- Viola-Jones algorithm,
- Template matching,
- Image segmentation and blob analysis,
- Fuzzy Membership Rules,
So there are plenty of different approaches and it’s difficult to choose the most efficient or popular, because it really depends on the needs. And the list is increasing every year.
There are also independent algorithms in computer vision, in example:
- In Chinese University of Hong Kong the guys developed a face recognition algorithm called GaussianFace that outperforms humans for the first time. Read more: The Face Recognition Algorithm That Finally Outperforms Humans,
- The BYU image algorithm is highly accurate system learns to decipher images on its own. Read more: BYU’s smart object recognition algorithm doesn’t need humans, A smart-object recognition algorithm that doesn’t need humans (research paper),
- Google’s New Street View Image Recognition Algorithm Can Beat Most CAPTCHAs or can find and read street numbers in Street View, and correlates those numbers with existing addresses to pinpoint their exact location on Google Maps. Read more: Street View and reCAPTCHA technology just got smarter (research paper),
- In 2012 Google built high-level features using large scale unsupervised learning and the system achieved 81.7 percent accuracy in detecting human faces, 76.7 percent accuracy when identifying human body parts and 74.8 percent accuracy when identifying cats. Read more: Google brain simulator identifies cats on YouTube (research paper),
- DARPA Visual Media Reasoning program have developed vision system development tools for the automated evaluation of vision algorithm performance and for combining computer graphics and machine vision technology (Read more: “Software aims to characterize algorithm performance,” Vision Systems Design, December 2013)
Popular open source computer vision software:
OpenCV (Open Source Computer Vision Library),
Open source computer vision and machine learning software library. It
has C++, C, Python and Java interfaces and supports Windows, Linux,
Android and Mac OS.
OpenCV is released under a BSD license, it is free for both academic
and commercial use. It has C++, C, Python and soon Java interfaces
running on Windows, Linux, Android and Mac. The library has >2500
optimized algorithms (see figure below). It is used around the world,
has >2.5M downloads and >40K people in the user group.
New algorithms continue to be added to the Open CV library.
SimpleCV is a Python interface to several powerful open source
computer vision libraries in a single convenient package.
It 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
The Accord.NET framework provides machine learning, mathematics,
statistics, computer vision, computer audition, and several scientific
computing related methods and techniques to .NET. This project extends
the popular AForge.NET Framework providing a more complete scientific
An open-source platform-independent
C++ framework for machine learning and computer vision research
framework. 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.
Using MATLAB, you can analyze data, develop algorithms, and create models and applications.
An open source software application under development by the ROVIS Research Group.
A software package for object motion detection.
Such open source frameworks are also available for the Android operating system. These include Cuckoo, an Android framework.
So everything is about the needs, requirements, scalability, time and money involved. Therefore I would start to experiment with OpenCV library (which has over 2500 optimized algorithms) and learning algorithms written in Matlab, Octave or Python.
- Neural Networks for Machine Learning at coursera
- University of Washington: Machine Learning at coursera
- Stanford University: Machine Learning at coursera
- Other: Computer Science: Artificial Intelligence courses at coursera