段志伟 兰时勇 赵启军
(四川大学视觉合成图形图像技术国防重点学科实验室 四川 成都 610064)
目标检测任务主要解决在不同尺度和有复杂背景的图像中,找出感兴趣的目标,并标注它们的类别和定位信息。目标检测是很多高层计算机视觉任务的基础,包括场景内容理解、实例分割等,并且在智能监控、人脸检测、无人驾驶等方面有着广泛的应用。
随着卷积神经网络和深度学习技术的发展,目标检测也从基于手工特征的传统方法向深度学习方法转变。传统方法更加注重特征的提取,手工设计特征,例如HOG[1]、Harr[2]等特征,特征可解释性较强;深度学习方法采用多层卷积神经网络自学习特征,无需人工设计特征,例如RCNN[3]、SPP-Net[4]等框架。由于深度学习方法检测精度高于传统方法,所以目前主流的目标检测算法都基于深度学习。
深度学习目标检测方法目前分为两大类:一类是两阶段方法,第一步通过区域建议网络选出感兴趣区域(ROI),第二步根据感兴趣区域相应的特征,推断出目标的类别和位置信息,如FastRCNN[5]、FasterRCNN[6]、MaskRCNN[7]等;另一类方法不使用区域建议网络,而是在分类网络提取的特征图上直接进行目标分类和边框回归,如yolo[8]、SSD[9]、DSSD[10]等。相比于第一类方法,直接预测边框的方法检测速度较快,但是检测精度没有前者高。
两阶段检目标测方法中使用的区域建议网络存在以下问题:(1) 正样本锚点框类内差异小;(2) 使用的分类置信度与定位不匹配。正样本锚点框类内差异小导致在非极大值抑制阶段筛去较多的建议框,用于检测的区域变少。同时,分类得分高低只能粗略地估计建议框的质量。为解决以上问题,本文在FasterRCNN框架下提出一种基于IoU注意力机制的区域建议网络,利用IoU注意力模型,选出区分度高、定位准确的建议框。
FasterRCNN是一个两阶段目标检测框架,其结构如图1所示。
图1 Faster RCNN结构图
首先输入图片,利用VGG16[11]深度卷积分类网络提取特征。接着将提取的特征送入RPN网络选出感兴趣区域。最后使用ROI池化层将每个建议框对应的特征图固定到同一个尺度,由全连接层计算,得到分类结果和定位信息。
RPN网络首先会在卷积网络层后得到的特征图上生成大量锚点框,锚点框中心即为特征图上的特征点。它通过滑动窗口的方式,为每一个特征点生成K个中心相同但尺度不同的锚点框。原文采用三种尺度(8,16,32)和三种长宽比(1∶1,1∶2,2∶1),即每个滑动位置都产生9个锚点框。然后根据输入图片的尺寸和卷积网络下采样比例,计算出锚点框在原图像中的位置。接着使用两个卷积层输出各锚点框的分类置信度和边框偏移量,并计算出偏移后的建议框。最后在非极大值抑制阶段,使用建议框的分类得分作为其置信度,得到去重后得分Top-N的建议框。
RPN网络本质是一种注意力机制,通过分类置信度,告诉后面的检测网络应该关注哪些区域。但是基于分类置信度的RPN网络有以下几个问题:
(1) 使用分类置信度选出的锚点框类内差异小。分类置信度是由锚点框与真实框的IoU大小决定的,大于阈值预测为正样本,小于阈值预测为负样本。
(1)
式中:A、B为两个区域的集合。
使用分类置信度会导致锚点框得分集中在1和0附近,锚点框显著性不强,并且由于RPN网络对正样本锚点框不再做额外区分,经过非极大值抑制后,保留的建议框数目较少。
(2) 分类置信度忽略了边框回归的质量。边框回归的准确性不高,可解释性较差。文献[12]指出,如果对边界框进行多次迭代回归,边界框的分布会发生很大变化,其回归效果会变差,即边框回归不一定将锚点框准确地定位到真实框的位置,导致两者的IoU变低。使用分类置信度无法评价边框回归的效果。建议框是由锚点框通过边框回归预测的四个回归偏移量变换得到的,如图2所示。
图2 锚点框,建议框,真实框三者关系
锚点框与真实框之间偏移量的计算方法如下:
(2)
式中:x、y、w、h表示矩形框的中心点坐标和宽高。真实框为(xg,yg,wg,hg),锚点框为(xa,ya,wa,ha)。
图3中,cls为分类分数,gt为建议框与真实框的IoU。图中两个建议框与真实框的重叠度差异很小,但分类分数相差很大。使用分类置信度只能粗略地估计锚点框与真实框的重叠程度,无法评价经过偏移后建议框与真实框的重叠程度。
图3 分类置信度与定位不匹配
为了解决以上问题,本文提出一种基于IoU的注意力机制。使用建议框与真实框的IoU分数表示对每个锚点框的关注程度。
score(i,j,c)=max(IoU(proposali,j,c,gtk))
k=1,2,…,N
(3)
式中:N为每幅图片真实框个数;proposal为建议框;gt为真实框;score(i,j,c)为特征图(i,j,c)位置对应的建议框与所有真实框IoU最大的分数。
由IoU的定义可知,IoU可以测量预测区域和真实区域的相似性。使用IoU注意力机制可以简单地描述定位的准确程度,在一定程度上解决分类置信度与定位不匹配的问题。使用IoU作为非极大值抑制的置信度,由于分数不会集中在1和0附近,能增强建议框的显著性,使得非极大值抑制后保留更多的建议框。
图4是未修改的RPN网络,其中分类任务使用Softmax激活函数为每个锚点框分别预测正负样本概率。改进后的RPN网络结构如图5所示,一共学习三个任务,分别是锚点框分类任务,锚点框偏移回归任务和建议框IoU回归任务。在推断阶段,不使用分类得分。分类任务使用Sigmoid激活函数,只预测一个正样本概率,如此可以减少一半分类模块的参数量。在原本共享的特征层后新增一个分支,用于预测建议框与真实框的IoU分数。预测IoU分数前使用3×3×64卷积核降低特征通道维度。
图4 RPN网络
图5 改进的RPN网络
分类任务使用二分类交叉熵损失:
Lcls(p,y)=-ylog(p)-(1-y)log(1-p)
(4)
式中:y为真实值;p为预测值。
建议框IoU回归任务使用Huber损失函数[13]:
(5)
式中:y为真实值;y′为预测值。训练时,δ取3。
改进的RPN网络总损失函数在原RPN网络的基础上,修改为:
(6)
式中:i为锚点的索引值;α取0.1,用于平衡三个损失的比例;p*、t*、iou*为真实值;p、t、iou为预测值;Ncls表示用于训练的正负样本锚点框数量;Nreg、Niou为锚点框数量;δ为Huber损失函数参数,训练时取3;th为训练IoU模块的阈值,取0.5。
本文使用Tensorflow深度学习框架,操作系统为Ubantu16.04,GPU为GTX1060,CPU为i58400。实验使用PASCALVOC2007数据集,共20个类别。训练使用VOC2007数据集中trainval数据,共5011幅,测试使用test数据,共4952幅。
本文FasterRCNN网络训练都使用近似联合训练,而非文献[6]中的四阶段训练法,主要是为了实现端到端训练,减少训练的时间。文献[6]也提到近似联合训练可以取得与四阶段训练法相近的实验结果。FasterRCNN网络训练使用ImageNet预训练模型,batchsize为1,使用SGD优化器,共迭代80000次,前50000学习率为0.001,后30000学习率为0.0001,动量为0.9。
改进的RPN网络训练使用和文献[6]相似的设置。与真实框IoU分数最大的锚点框标记为正样本。锚点框与任意一个真实框IoU≥0.7,也标记为正样本,IoU≤0.3标记为负样本,其他锚点框不用于训练。训练RPN网络IoU模块时,本文选取和真实框IoU≥0.5的所有建议框用于训练。阈值测试结果如表1所示。
表1 IoU模块不同训练阈值的检测结果
首先在测试集4 952幅图片上检测,按分数排序,取前2 000个建议框。每幅图片的2 000个建议框在非极大值抑制后最多保留前300个建议框。然后分析在不同情况下,非极大值抑制后保留下来的建议框数量。
通过观察表2可以发现,相比于分类置信度,使用IoU置信度在非极大值抑制后,可以保留更多的建议框。说明使用IoU置信度可以增强建议框的显著性,扩大类内差异,使得非极大值抑制阶段不会淘汰太多的建议框。
表2 NMS后建议框数量
图6为本文方法产生的建议框质量分布。我们依照提取的建议框与真实框的IoU分布,选出5个区间。结合表2和图6可以发现,如果只使用IoU置信度,虽然非极大值抑制后可以保留更多的建议框,但建议框质量不高,甚至低于使用分类置信度得到的建议框。这主要因为分类任务对边框回归任务有一定的指导意义。若直接删除分类模块,则主干网络学习到的特征语义信息变少,增加边框回归任务的难度,降低其预测偏移量的准确性,并且会影响第二阶段检测网络的精度。若加上分类任务辅助训练,使用IoU置信度得到的建议框的质量有明显提高,在各个区间上都超过分类置信度。
图6 建议框与真实框IoU分布
图7中依次为建议框分类分数、建议框IoU分数和真实IoU分数。可以发现,对于不同重叠度的建议框,分类分数差别很小,而IoU分数却明显不同。在为VOC2007测试集上,我们还测试了不同IoU阈值(VOC2007默认0.5)下的mAP指标,如图8所示。可以看出本文方法在不同阈值下mAP都略高于Faster RCNN框架。
图7 分类分数与IoU分数对比
图8 在VOC2007测试集上mAP与IoU阈值对比
表3为在使用不同配置的RPN网络下,Faster RCNN检测精度和速度的对比。
表3 不同的RPN网络及检测结果
由表3可知,使用Sigmoid分类模块相比于Softmax分类模块,mAP略微下降,但检测速度提高约5%。这说明精简RPN网络分类层,并不会降低太多RPN网络的分类能力,但能明显加快检测速度。同时若删除分类模块,只使用IoU模块和边框回归模块,mAP会降低约2.5%。使用分类模块辅助训练,并利用IoU模块区分建议框,可以提高约1.1%的平均精确率。虽然多增加了一个学习任务,但是通过精简RPN分类模块,相比于原来的Faster RCNN框架,检测速度没有额外增长。
本文针对区域建议网络生成的锚点框类内差异小和使用的分类置信度与定位不匹配的问题,提出一种基于IoU注意力机制的区域建议网络。本文通过在RPN网络中预测建议框与真实框的IoU,表示对每个建议框的感兴趣程度,以此提高建议框的显著性,使得非极大值抑制后能保留更多的建议框;使用分类任务辅助训练,提高建议框质量;改进分类损失函数,减少RPN网络分类模块参数,加快检测速度。在Faster RCNN目标检测框架下,本文方法可以在保持检测速度不增长的同时,提升网络的检测效果。