Object Detection is one of the important technologies related to computer vision, which is identifying and describing objects in an image or video. The objects are highlighted using bounding boxes thus helping us identifying their location in each frame.
Input: An image or video with one or more objects, such as a photograph.
Output: One or more bounding boxes (e.g. defined by a point, width, and height), and a class label for each bounding box like Dog, Car, etc.
Use Cases where Object Detection can be used:
Object Detection are the key functionality behind the advanced driver assistance systems (ADAS) which helps cars to detect driving lanes or perform pedestrian detection to improve road safety. Below is an image of how Object Detection is used to identify and locate vehicles in an ADAS.

Object Detections are also used to identify and track multiple instances of a given object in a scene, thereby helping in Surveillance Video System.
Crowd Counting is another area where Object Detection is used widely. Densely populated areas can be monitored to help management effectively measure different kinds of traffic; whether on foot, in vehicles, or otherwise.
Object Detection using Deep Learning:
Every object will have features that can help us to segregate them from the other objects. Deep learning algorithms uses this concept to identify objects wherein they deploy a multi-layer approach to extract high-level features from the data that is provided to it and doesn’t require the features to be provided manually for classification. They implement neural networks to achieve the results. All the deep learning models require huge computation powers and large volumes of labelled data to learn the features directly from the data.
The most commonly used deep learning models for object detection are:
R-CNN: Region-based Convolutional Neural Networks
R-CNN follows Multi-stage Detector. They divide the input visual into regions. Then consider each region as a single image and work on it. Then pass these images into our Convolutional Neural Network (CNN) to classify them into possible classes. After classification, combine all the images and generate the original input image, but also with the detected objects and their labels.
YOLO: You Look Only Once
R-CNN follows Single-stage Detector. They consider the entire image as a whole and predicts the bounding boxes, then calculates its class probabilities to label the boxes.
It takes an image and split it into an SxS grid, within each of the grid we take m bounding boxes. For each of the bounding box, the network outputs a class probability and offset values for the bounding box. The bounding boxes having the class probability above a threshold value is selected and used to locate the object within the image.
The limitation of YOLO algorithm is that it struggles with small objects within the image, for example it might have difficulties in detecting a flock of birds.

Object Detection using Machine Learning:
Machine Learning techniques are also used to identify objects and provide us with various options. Here we need to manually select various features of an image, such as the color histogram or edges, to identify groups of pixels that may belong to an object. These features are then fed into a model that predicts the location of the object along with its label, compared to automatic feature selection in a deep learning–based workflow.
Other Object Detection Methods:
Image segmentation & Feature-based object detection are other techniques that can help us in identifying objects depending upon our need.