理论教育 经典目标检测方法简析

经典目标检测方法简析

时间:2023-07-01 理论教育 版权反馈
【摘要】:传统目标检测方法采用手工设计的特征。此外,传统目标检测模型的非线性程度较低,无法很好地拟合视觉表示和类别标签之间的关系。相比于传统非深度目标检测方法,R-CNN模型将在PASCAL VOC 2012数据集上的检测准确率直接提高了近30个百分点。在Fast R-CNN方法被提出后不久,Ren等人[12]提出了Faster R-CNN方法,进一步提高了目标检测的速度和精度。

经典目标检测方法简析

传统目标检测方法采用手工设计的特征。但由于目标的形态各异、光照变化多、背景嘈杂等因素的存在,手工特征很难适用于复杂多样的视觉场景。此外,传统目标检测模型的非线性程度较低,无法很好地拟合视觉表示和类别标签之间的关系。深度卷积神经网络的提出很好地解决了这个问题。卷积神经网络是一种典型的前馈神经网络,具有表示学习(representation learning)能力,能够学到具有较强表达能力和判别性的特征表示。经典的卷积神经网络有AlexNet[15]、VGGNet[16]、Inception[17]和ResNet[18]等。基于深度学习的目标检测方法以卷积神经网络为基础,大致可以分为两类:一类是一阶段算法,即整个检测过程在一个阶段内通过端到端的网络完成,代表方法有YOLO和SSD;另一类是二阶段算法,即在第一阶段提取候选区域,在第二阶段对提取的候选区域分类,判定其为目标还是背景,代表方法是R-CNN[12]系列的方法。本节首先介绍R-CNN系列方法,然后重点介绍Faster RCNN方法,最后介绍一阶段的YOLO和SSD方法。

2014年,Girshick等人[3]提出了R-CNN方法,成功将卷积神经网络应用于目标检测,具有里程碑意义。相比于传统非深度目标检测方法,R-CNN模型将在PASCAL VOC 2012数据集上的检测准确率直接提高了近30个百分点。R-CNN聚焦于目标检测问题的两个难点,一是如何使用卷积神经网络对目标进行精确定位,二是如何使用较少的标注数据训练得到性能较高的模型。R-CNN模型对每张图像生成约2 000个候选区域,对候选区域使用卷积神经网络来提取视觉特征,然后使用线性SVM分类器对候选区域进行分类。

2015年,Girshick[11]提出了Fast R-CNN方法,其主要贡献在于提出了ROI(region of interest)池化层,用于解决提取重叠候选区域而导致的计算冗余问题。ROI池化层可以复用整张图像的卷积特征,避免了重复提取特征,同时允许输入任何尺度的边界框。对于输入图像和多个候选区域,Fast R-CNN使用一系列卷积层和最大池化层提取图像的卷积特征,然后使用ROI池化层从整张图像的卷积特征中提取固定尺寸的候选区域特征,最后将候选区域特征输入一系列全连接层完成检测。这些全连接层包括两个分支:①分类分支,该分支通过softmax分类预测候选区域的类别;②边界回归分支,该分支对候选区域的边框回归得到调整后的目标位置。

在Fast R-CNN方法被提出后不久,Ren等人[12]提出了Faster R-CNN方法,进一步提高了目标检测的速度和精度。Faster R-CNN方法是第一个真正意义上的端到端训练的目标检测方法,首次达到了准实时(17帧/s,640×480像素)的检测速度。Faster R-CNN模型如图7.2所示,包括以下四个步骤:①用卷积神经网络提取整张图像的卷积特征;②由区域生成网络(region proposal network,RPN)生成候选区域,并通过softmax分类判断候选区域是目标还是背景;③通过ROI池化层提取候选区域的特征向量;④对候选区域进行分类和边界框回归。Faster R-CNN的最大创新点在于提出了区域生成网络,代替了之前基于选择性搜索[1]的候选区域生成策略,成功地将特征提取、候选区域生成、边界框回归和候选区域分类整合到同一个网络中,提高了检测精度和速度。

图7.2 Faster R-CNN模型[12]

区域生成网络的核心思想是使用卷积神经网络直接产生候选区域,通过滑动窗口的方式引入多尺度多长宽比的锚(anchor)来捕捉未知尺寸和长宽比的目标。区域生成网络的结构如图7.3所示。首先在图像卷积特征的一个滑动窗口上生成k个不同大小、不同长宽比例的区域,将这k个候选区域称为锚[如图7.3(a)所示,通常k设为9],并预测这k个候选区域是前景(背景)的概率。接着,根据图像给定的标注边界框给这些锚分配标签。对于以下两类锚,给其分配正标签:①锚与检测目标有最大的交并比(intersection over union,IoU);②锚与任意一个检测目标的交并比达到了0.7。给所有与检测目标交并比小于0.3的锚都分配负标签。因此,传入区域生成网络的共享卷积特征图最终被整理为多个锚的坐标以及每个锚是否是前景的二分类标签。区域生成网络将每个锚映射为一个概率值和4个坐标值,其中概率值是这个锚包含物体的概率,4个坐标值是对锚回归得到的坐标表示。由概率值和坐标值表示计算分类损失和回归损失,对区域生成网络进行训练。优于与目标检测网络共享卷积特征,区域生成网络的时间消耗很小。

区域生成网络的损失函数定义为

其中,i是训练小批量中锚的索引,pi是预测出的第i个锚中包含物体的概率。如果第i个锚为正样本,其标签真值img为1,反之,其标签真值img为0。ti是对第i个锚进行边界框回归得到的坐标向量,img是与预测边界框对应的目标边界框的真值坐标向量。分类损失Lcls是二类(前景或背景)交叉熵损失。使用img来表示回归损失,其中R函数采用Fast R-CNN方法中定义的L1平滑损失。imgLreg意味着回归损失只激活正样本的锚,对于负样本的锚无效。分类层和回归层的输出分别为{pi}和{ti}。Ncls和Nreg分别是批量大小和预测锚坐标的数量,用于对分类损失和回归损失做归一化处理,λ是两个损失的平衡系数。(www.daowen.com)

图7.3 区域生成网络的结构[12]

(a)区域生成网络结构;(b)区域生成网络在PASCAL VOC 2007上的检测示例[12]

由区域生成网络得到的候选区域在根据概率值筛选后,传入候选区域分类器,进行多分类和坐标回归。这一阶段的损失函数与训练区域生成网络的损失函数类似,表示为

其中,p为预测的目标标签;u为真实的目标标签;tu为真值位置坐标;v为预测的位置坐标。分类损失Lcls(p,u)=-logpu是类别u的对数损失,即多分类交叉熵损失。回归损失Lloc(tu,v)同样采用L1平滑 损失。[u≥1]表示在u≥1时,其值为1,否则为0。

2016年,Redmon等人[13]提出了YOLO(you only look once)方法。与R-CNN系列的二阶段模型不同,YOLO模型将物体检测建模一个回归问题进行求解。其网络结构是一个端到端的卷积网络,可以输出多个检测框和各个检测框的类别概率。YOLO模型检测速度非常快,通过对一张图片的一次前向传播即可完成对检测框位置和类别的预测,其速度可以达到每秒45帧。由于YOLO在训练和测试时都是对整张图提取特征并完成检测任务,因此它可以考虑候选区域的上下文信息,拥有比R-CNN系列方法更低的背景误检率。另外YOLO模型具有较强的泛化能力,当它遇到未曾见过的输入图像时,相比于其他物体检测方法,它还会保持较好的检测性能。但是YOLO模型在对小尺寸物体进行检测的时候,准确率逊色于其他检测方法。

2016年,Liu等人[14]提出了一种端到端训练的物体检测方法SSD(single shot multibox detector)。该方法的整体思想是首先在特征图上给定一组具有不同长宽比和大小的边界框,称其为先验边界框(类似于R-CNN系列方法中的锚)。然后训练一个网络来选择那些包含感兴趣目标的先验边界框,并调整它们的坐标,从而更好地匹配实际目标。与R-CNN系列方法相比,SSD由于没有生成候选区域的过程而具有更明显的速度优势。与YOLO方法相比,SSD由于生成了候选区域且增加了对不同尺度目标的处理,从而有着更好的性能。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈