一、任务描述
给定一张图片或视频帧,找到其中所有目标的位置,并给出每个目标的具体类别,图像中可能出现一个或者多个目标。如下图所示。
对计算机来说,目标检测最困难的部分在于计算机不清楚目标出现在图像中哪个区域。图像中的目标可能出现在任何位置,目标的形态可能存在各种各样的变化。
二、深度学习模型框架【1】
传统的目标检测中,常见的算法是DPM(Deformable Part Model)。2013年利用深度学习算法的R-CNN(Region-based Convolutional Neural Networks)的诞生使基于深度学习的目标检测进入了一个全新的时期。R-CNN在VOC 2007测试集的mAP达到48%。从此Ross Girshick一发不可收拾,连续推出了Fast R-CNN、Faster R-CNN。受Ross Girshick启发许多基于深度学习的目标检测算法被提出,例如YOLO,SSD。
1.使用Region Proposal方法
R-CNN【2】
论文地址:https://arxiv.org/abs/1311.2524
代码地址:https://github.com/rbgirshick/rcnn (matlab)
paper采用的方法是:首先输入一张图片,我们先定位出2000个物体候选框,然后采用CNN提取每个候选框中图片的特征向量,特征向量的维度为4096维,接着采用svm算法对各个候选框中的物体进行分类识别。也就是总个过程分为三个程序:a、找出候选框(例如Selective Search方法);b、利用CNN提取特征向量;c、利用SVM进行特征向量分类。具体的流程如下图片所示:
Fast R-CNN【3】
论文地址:https://arxiv.org/abs/1504.08083
代码地址:https://github.com/rbgirshick/fast-rcnn (matlab-Caffe)
paper采用的方法是:
1)整图经过CNN,得到特征图
2)提取域候选框,例如Selective Search方法