What are the most popular artificial neural network algorithms for recognising the content of images? What are the most used/popular artificial neural network algorithms for recognising the content of images in general?
E.g.


*

*If the picture is of a person, dog, cat or a car.

*If the picture is a landscape, indoor or some banner or advert.


etc.
I've heard of backpropagation algorithm so far.
 A: This field is evolving rapidly. Just a few days ago, the results of the imagenet 2014 challenge have been published. It will take some time until all the papers are available.
If you want to solve these kinds of problems, the take away message is that most, if not all classical solutions to the problem are obsolete.
The way to go (and it probably won't change too soon!) are convolutional networks with dropout. This approach has been pushed by Geoffrey Hinton's Phd Alex Krizhevski (both at Google now) and is known as "AlexNet". The relevant publication can be found here.
Several $\epsilon$ improvements have been made. Some names to google are Jonathan Masci, Matthew Zeiler, Dan Ciresan.
There are numerous open source implementations, e.g. cuda-convnet2, Decaf, OverFeat.
The guys of clarifai have a nice demo of the capabilities of this method.
A: According to Wikipedia, there are 4 main types of artificial neural network learning algorithms: supervised, unsupervised, reinforcement and deep learning.
Unsupervised learning algorithms:


*

*Perceptron,

*Self-organizing map,

*Radial basis function network
Supervised learning algorithms:


*

*Backpropagation,

*Autoencoders,

*Hopfield networks,

*Boltzmann machines,

*Restricted Boltzmann Machines,

*Spiking neural networks
Reinforcement learning algorithms:


*

*Temporal difference learning,

*Q-learning,

*Learning Automata,

*Monte Carlo Method,

*SARSA
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).
So basically you need a good algorithm for pattern recognition for your computer vision analysis.
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
  bioimaging.

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,

*etc.


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)

*etc.


Read more:


*

*Developers look to open sources for vision algorithms (Article)



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

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
  techniques.


*Accord.NET Framework

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
  computing environment.


*MATLAB from MathWorks

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.


*ROVIS Machine Vision System

An open source software application under development by the ROVIS Research Group.


*Open Vision Control

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. 

Conclusion
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.
On-line courses:


*

*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


Links:


*

*Neural Networks and Deep Learning (free online book)

*OpenCV Computer Vision with Python by Joseph Howse

A: Depends on what you mean by efficient. If you want state-of-the-art predictive performance, you should dig into deep learning, convolutional networks and the like. 
Those techniques are very computationally intensive, though. So if by efficient you mean low training complexity, you want to be looking at the opposite end of the spectrum.
