What is Object Detection?

Object detection is a computer vision technique for locating instances of objects within images or video. Object detection techniques train predictive models or use template matching to locate and classify objects.

Object detection is a key technology behind applications like video surveillance, image retrieval systems, and advanced driver assistance systems (ADAS).

There are a variety of techniques that can be used to perform object detection. The techniques generally fall into three main categories: object detection using deep learning, object detection using machine learning, and object detection using classical computer vision techniques.

Popular deep learning-based approaches, like R-CNN or YOLO v2, use convolutional neural networks (CNNs) to learn the features necessary to detect objects.

Machine learning-based approaches use feature extraction before training a classifier to identify the objects. Popular approaches include aggregate channel features (ACF) and the Viola-Jones algorithm.

Finally, more traditional computer vision methods may be sufficient, depending on the application. A few examples include techniques like template matching, image segmentation and blob analysis, or feature extraction and matching.

With MATLAB, you can try a variety of these approaches with just a few lines of code to see what works best for your data. You can leverage one of the many pretrained detectors provided with MATLAB or you can create a custom detector specifically for your application.

We have other videos on object detection with machine learning and classical computer vision, so in this video, I’m going to focus more on deep learning.

The first step to use deep learning for object detection is to label samples of the type of object you want to recognize. Training a predictive model for object detection typically requires thousands, or even millions, of labeled samples.

Interactive apps can help you automate the labeling of objects in images or video. This helps you focus more effort on developing the object detection algorithm rather than preparing training data.

With MATLAB, you can also interoperate between other machine learning and deep learning frameworks to develop object detectors.

If you already have a network implemented outside MATLAB, you can import it using ONNX import capabilities. Conversely, if you create a network in MATLAB but want to use it somewhere else, you can export it using ONNX import.

Once you have a network in MATLAB, you can accelerate the training process with GPUs or compute clusters by changing a single name-value pair. If you are using a pretrained network, you can use transfer learning to fine-tune the model for your application. This can help further reduce training time and improve the network’s performance.

To get started, you can use one of the many reference examples in the documentation. To learn more about object detection with MATLAB, please explore the online documentation page.