A Review of Object Detection Models
By: Onur Akköse
Tags: Cnn, Deep Learning, Convolutional Network, Object Detection

R-CNN

A few algorithms such as Exhaustive Search were used before R-CNN [1] but they need high computation performance and long time to find best object positions on the image. To solve this problem R-CNN proposed a method that we use Selective Search to extract approximately 2000 regions are called region proposals from the image. Selective Search is pretty reducing number of locations consider. It solved the CNN localization problem but it was still too slow. It needs 50 seconds for test time per image.

[1]

Fast R-CNN

Fast R-CNN [2] was introduced to solve drawbacks of R-CNN. Instead of feeding the region proposals to the CNN, entire input image is fed to the CNN to generate feature map. From the feature map, we identify the region proposals and feed them into a fully-connected layer. Then we use Softmax layer to predict classes and the offset values for bounding boxes of objects. Fast -RCNN is faster than R-CNN because the convolution operation is done only once per image.

[2]

Faster R-CNN

Faster R-CNN [3] is composed of Deep CNN to propose regions and Fast R-CNN to use the proposed regions. Faster R-CNN is pretty faster than others because used a new method Region Proposal Network (RPN) instead of Selective Search. RPN mainly tells the Fast R-CNN where to look. Similar to Fast R-CNN, a single CNN takes entire image as input and produces a feature map. On the feature map, RPN generates a set of rectangular object proposals with objectness scores as output. These values are then reshaped using RoI pooling to predict classes and offset values for bounding boxes.

[3]

Comparing of R-CNN Family

YOLO

First version of YOLO [4] was introduced by Joseph Redmon in 2015. YOLO has a single neural network that predicts bounding boxes and class probabilities directly from entire images in one evaluation. R-CNN family has complex pipeline and slower than YOLO. In this model, ‘You Look Only Once’ at the image to predict classes of objects and where they are. YOLO divides the image into grids, each grid cell predicts bounding boxes and confidence scores for these boxes.

[4]

First version of Yolo is extremely fast but has drawbacks. The network struggles with small objects and this was solved with later versions; Yolov2, Yolov3, Yolov4.

SSD (Single Shot Detector)

SSD [5] was introduced a single shot multibox detector in 2015. It is faster than the previous object detection models such as YOLO.

[5]

Input image feed into VGG-16 to extract feature maps with different scale. Also, it predicts object categories and offsets in bounding boxes locations by using convolutional filters. SSD produces a fixed-size collection of bounding boxes and scores for the presence of object class instances. Then a non-maximum suppression is applied and produce final detections.

[5]

YOLOv4

Yolov4 [6]is state-of-art for object detection. It is extremely fast on real-time detection applications. Yolov4 use CSPDARKNET53 model as backbone. It is a framework for training YOLO and has 29 convolutional layers and 27.6 million parameters. Also, Yolov4 consist of SPP and PAN as neck, YOLOv3 as head. You can train your custom object detection model by using pretrained Yolov4. Visit to Darknet repo learn more.