Pattern Recognition

What Is Pattern Recognition?

Pattern recognition is the process of classifying input data into objects, classes, or categories using computer algorithms based on key features or regularities. Pattern recognition has applications in computer vision, image segmentation, object detection, radar processing, speech recognition, and text classification, among others.

There are two classification methods in pattern recognition: supervised and unsupervised classification. To apply supervised pattern recognition, you need a large set of labelled data; otherwise you can try to apply an unsupervised approach.

Pattern Recognition Using Machine Learning and Deep Learning

You can apply machine learning or deep learning techniques with MATLAB® in pattern recognition applications.

A machine learning approach consists of preparing your data, manually extracting features to differentiate between classes in the data, and training a machine learning model to classify new objects. Common machine learning techniques or models for object detection include aggregate channel features (ACF), SVM classification using histograms of oriented gradient (HOG) features, and Viola-Jones. These methods are all available in MATLAB®.

A deep learning approach consists of preparing your data and training the deep neural net, and testing the trained model on new data. Common deep learning models used for pattern recognition are R-CNN and YOLO v2, which are also available in MATLAB. In recent years, deep learning approaches have become more popular than machine learning ones.

The main differences between machine learning and deep learning approaches are that deep learning models require a larger training dataset and more training time, whereas machine learning models can be trained with a smaller dataset, may be easier to interpret and debug if not working as expected, but yield lower accuracy than a deep learning model trained on a large set of labelled data. 

A common application of pattern recognition in engineering is defect detection in manufacturing to improve product quality while reducing production costs in industrial applications. The figure below shows how companies use vision-based techniques with MATLAB to efficiently detect defects in three stages: image capture, image processing to improve quality, and AI modeling to classify the object as good versus faulty.

Optical inspection application that uses pattern recognition to check for defects in manufactured parts.

Optical inspection application that uses pattern recognition to check for defects in manufactured parts.

Supervised Classification

Supervised classification methods of pattern recognition apply supervised learning algorithms to input data, pairing manually labeled training data with desired outputs.

In computer vision, supervised pattern recognition techniques are used for optical character recognition (OCR), object detection, and object classification.

Stop sign detection (left) and automated labelling of parts in a gas processing plant (right).

Stop sign detection (left) and automated labelling of parts in a gas processing plant (right).

Unsupervised Classification

Unsupervised classification methods work by finding hidden structures in unlabeled data using segmentation or clustering techniques. Common unsupervised classification methods include:

  • K-means clustering
  • Gaussian mixture models
  • Hidden Markov models

For object detection and image segmentation, unsupervised pattern recognition techniques are also used, especially with tasks in which it’s difficult to obtain sufficient labelled data for applying supervised object detection and classification.

Detecting moving objects by classifying image pixels into foreground (white pixels) and background (black pixels) using Gaussian mixture models.

Detecting moving objects by classifying image pixels into foreground (white pixels) and background (black pixels) using Gaussian mixture models. See example for details.

Color-based image segmentation using k-means clustering.

Color-based image segmentation using k-means clustering.

For details on how to use pattern recognition in your application, see Computer Vision Toolbox™Image Processing Toolbox™, and Statistics and Machine Learning Toolbox™, which are used with MATLAB.

See also: MATLAB for deep learning, object detection, object recognition, image recognition, image segmentation, visual inspection, Learn more about feature extraction, machine learning, pattern recognition videos, point cloud processing, deep learning, computer vision