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.

Answer

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
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:

Read more:


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:

Links:

Attribution
Source : Link , Question Author : kenorb , Answer Author : Cesar

Leave a Comment