目标检测框架

1、SVM+HOG

区域生成方法:滑动窗口;
特征:HOG;
检测范式:手工特征+分类器;
SVM+HOG过去常常用于行人检测和车辆检测。以行人检测为例,该方法将目标检测规约为一个二分类问题。首先在训练过程中,根据标注信息将正样本剪裁,并缩放至统一分辨率,然后随机剪裁一些背景图像作为负样本。分别提取正样本和负样本的HOG特征,利用HOG特征训练二分类SVM分类器。在测试阶段,采用滑动窗口的方式,建立一个图像金字塔。金字塔的每一层对应图像中的一个区域。提取金字塔每一层上子图像的HOG特征,并用SVM分类器判断样本属于正类还是负类。如果是正类,则认为该区域对应了行人。最后将所有检测到的结果用非最大值抑制算法进行后处理,得到最终的检测结果。

2、DPM

区域生成方法:滑动窗口;
特征:HOG;
检测范式:手工特征+根分类器+部件分类器;
DPM检测框架主要用于检测形变物体。与SVM+HOG相比,DPM不仅训练整体目标的根检测器,还训练目标部件的部件检测器。在检测过程中,分别用根检测器和部件检测器在图像的HOG特征图上做二分类,得到各自的响应图。然后将根检测器、部件检测器的响应图相加,得到融合响应图。融合响应图上幅值较大的区域为潜在的目标区域。最后同样采用非最大值抑制对检测框后处理,得到最终检测结果。

3、R-CNN/Fast R-CNN

区域生成方法:Selective search;
特征:CNN;
检测范式:区域建议+卷积特征的非端到端检测;

4、Faster R-CNN/R-FCN

区域生成方法:RPN网络;
特征:CNN;
检测范式:端到端的特征提取+分类;

5、Mask R-CNN

区域生成方法:RPN网络;
特征:CNN;
检测范式:多任务联合学习;

6、SSD/DSSD

区域生成方法:直接构造(锚点);
特征:CNN;
检测范式:端到端检测(one stage);

7、YOLO v1-v3

区域生成方法:直接构造(网格);
特征:CNN;
检测范式:端到端检测(one stage);

R-CNN与SVM+HOG框架的检测思路一致,区别在于釆用的区域生成算法和特征提取算法不同。为了降低检测算法的搜索空间,R-CNN采用selective search区域建议算法来代替滑动窗口。与滑动窗口方法相比,selective search能够极大的减少候选窗口的数量,从而加快检测速度,并降低误检率。另一方面,R-CNN采用卷积神经网络提取图像特征,代替原有的HOG特征。与低层HOG特征相比,卷积特征具有层级式的特征结构和更强的表达能力。因此,R-CNN的检测准确度要远超SVM+HOG框架。

尽管采用卷积神经网络提取图像特征能显著提高检测准确度,但R-CNN检测算法存在较多的冗余计算,当selective search算法给出的候选窗口存在重叠区域时,R-CNN会重复提取这部分的特征。对此,Girshick等提出先整体对全图提取卷积特征,再根据候选窗口在特征图上截取相应的区域,作为该候选窗口的特征,最后釆用ROI-Pooloing进行分辨率对齐。采用这一方法,Fast R-CNN相比R-CNN算法在检测速度上有显著提升。Faseter R-CNN是基于Fast R-CNN的改进算法。尽管Fast R-CNN降低了特征提取阶段的计算时间,但区域建议算法selective search算法本身的时间复杂度仍然较高。为此,Faster R-CNN提出了端到端训练的RPN区域建议网络,能够极大的降低区域建议算法的计算时间。与R-CNN、Fast R-CNN相比,Faster R-CNN能够在提高检测准确度的同时降低检测时间消耗。

尽管Fast R-CNN通过在后选窗口之间共享特征图的方式来避免重复地提取特征,但全连接层在ROI-Pooloing之后仍然存在冗余计算,对此,He等提出了Region-based Fully Convolution Network(R-FCN**)检测算法,采用类似的思想,使得全连接层共享ROI-Pooloing的输出结果,最终提高了检测速度。

多尺度特征通常能够提高目标检测算法的性能,但Faster R-CNN测算法并未考虑这一点。针对这一问题,Lin等提出了FPN检测算法。祌经网络的感受野随深度的增加而不断扩大,这使得位于不同层级的卷积特征具有拉普拉斯金字塔的多尺度结构。利用这一性质,FPN检测算法采用跳跃链接,将不同层的输出进行融合,作为多尺度特征。这一方法可以在不显著增加计算复杂度的前提下提高目标检测系统的性能。

Fast R-CNN和Faster R-CNN均采用区域建议算法生成候选框,这种先生成候选框再检测的框架一般被称为两步检测算法(Two-stage)。这种检测范式的优点是准确度高,正样本和负样本较为平衡。但缺点是区域建议算法需要消耗额外的计算时间。SSD是一类单步检测算法(One-stage),采用一组默认的候选框来代替区域建议算法。在检测阶段,该算法在每一个候选框上预测目标类型,并根据标注信息对检测框微调。因此,SSD成功的将目标检测中所有的运算集成到了单个卷积神经网络中,大大提高目标检测的速度。另一个具有代表性的单步检测算法是YOLO。这类单步检测算法随着检测速度快,但是由于采用了默认候选框,因此很难保证正样本和负样本之间的平衡。

Mask R-CNN是基于Faster R-CNN的改进算法,在原有检测任务的基础上添加语义分割侧枝,实现目标识别、检测和语义分割的并行处理。其中,新增的语义分割侧支是一个以ROI为输入的小型全卷积网络FCN(Fully Convolution Network)网络,并进行端到端的像素式分类预测。该方法是一个简单、高效和灵活的一般性框架,不仅可以用于目标识别、检测和语义分割,也可以用于姿态估计等。多任务联合学习是一个有潜力的研宄方向,联合学习通常能够比单任务学习获得更好的性能。

主流的检测算法在大尺度物体上的检测效果较好,但对小目标的检测效果不佳。针对这一问题,Bharat等对目标检测中的尺度问题进行深入分析,并通过实验验证了上采样有助于小物体的检测,并据此提出了SNIP检测算法。主流的目标检测算法在训练时不区分大小物体的梯度信号,而SNIP算法将梯度信号视为尺度的一个函数,在训练的后向传递阶段,根据目标尺度选择性的回传梯度信号,在预测阶段,建立图像金字塔并筛选出在指定尺度范围内的输出,最后采用NMS算法融合不同分辨率下的检测结果。该方法在COCO检测数据集上取得了很好的结果。

你可能感兴趣的:(目标检测)