基于深度学习的目标检测算法综述

相比与传统检测方法,基于深度学习的目标检测算法其优势在于无需进行人工的特征设计、良好的特征表达能力以及优良的检测精度。

基于深度学习的目标检测算法分类

依据设计思想,主要分为两种:基于区域提名的目标检测算法(二阶检测算法)和基于端到端(end-to-end)的学习的目标检测算法(一阶检测算法)。

二阶段检测算法:第一步:生成可能包含物体的候选区域(Region Proposal),第二步:对候选区域做进一步的分类和校准,得到最终的检测结果。代表是:R-CNN,SPPNet,Fast R-CNN, Faster R-CNN.

一阶段检测算法:直接给出最终结果,没有生成候选区域的步骤。yolo,SSD

下面这个图,我觉得特别棒,对于目前各种先进算法的基本思想区别一目了然。

基于深度学习的目标检测算法综述_第1张图片

基于区域提名的目标检测算法

R-CNN综述:

该算法主要包括区域提名、归一化处理、特征提取、分类及回归等步骤。

第一步:先通过选择性搜索算法(Selective Search)生成候选区域(Proposal)。

        这个算法的思想是:可能存在物体的区域应该具有某种相似性或连续性的区域。所以,第一步,它首先用分割算法将图像分割成很多小的区域,这些区域为最基础的子区域,然后根据这些区域之间相似性进行区域合并,衡量相似性的标准可以是颜色、纹理和大小等。不断叠加这种小区域,直到全部合并到一块,然后给每个区域做一个外切的矩形,就得到了可能是物体的区域方框。

第二步:将候选区域进行尺度归一化。

强制将这些候选区域放大到同一个尺寸,因为在下一步中我们通过卷积神经网络提取出来的特征,R-CNN采用的是使用多个SVM进行对这些特征分类。所以对于卷积神经网络,我们必须要求输出的向量维度一样,这样SVM才可以进行分类。为了保证输出维度相同,卷积神经网络的输入图片大小需要一致。

第三步:使用CNN网络提取候选区域的目标特征表达,之后还级联一个全连接层。输入一个高维向量,使用SVM进行物体的分类,这样就检测出这个物体,并会预测出这个物体属于这个类型的概率。

第四步:检测出物体以后,需要对物体画边框,由于我们第一步已经有了候选区域的边框,但是这个边框并不够好,我们还要根据训练数据中标记的框去校正第一步生成的框。

 

端到端的学习目标检测算法

yolo综述:

该算法基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出。不需要像二阶算法显示地求region proposal。同时yolo将物体检测作为一个回归问题进行求解,输入图像经过一次inference,便可以得到图像中所有物体的位置和其所属类别及相应的置信率。

你可能感兴趣的:(深度学习)