According to Wikipedia, there are 4 main types of artificial neural network learning algorithms: supervised, unsupervised, reinforcement and deep learning.
Unsupervised learning algorithms:
Supervised learning algorithms:
Reinforcement learning algorithms:
Deep learning algorithms:
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
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:
Popular open source computer vision software:
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.