陆 飞,沈世斌,苏晓云,谢 非,3,章 悦,刘益剑,3
(1.南京师范大学电气与自动化工程学院,江苏 南京 210023) (2.江苏省三维打印装备与制造重点实验室,江苏 南京 210023) (3.南京智能高端装备产业研究院有限公司,江苏 南京 210023)
基于深度学习的目标检测技术在无人驾驶、智能监控、智能交通等领域有着广泛的应用. 随着城市道路车辆违反交通法规的事件不断增加,对监控视频中的车辆快速精准地检测已成为城市交通管理的一项重要研究课题. 快速且准确地检测复杂场景中不同尺度和类型的车辆已成为目前最具挑战性的课题之一[1-2].
近年来,国内外学者针对基于深度学习的目标检测方法展开了广泛而深入的研究. Girshick等[3]首次提出R-CNN模型,通过Selective Search算法[4]提取目标对象的候选框,将候选框的大小调整为一个固定尺寸,然后输入到卷积神经网络中提取特征,采用线性回归策略调整目标的边界框,使用SVM分类器预测目标的类别,但产生候选框的过程耗时长,且候选框之间存在大量重叠. He等[5]提出了空间金字塔池化网络(SPPNet),克服了R-CNN冗余的特征计算,在目标检测时对整张图像只进行一次特征计算,然后引入空间金字塔池化层通过CNN生成任意感兴趣区域. Girshick等[6]提出了Fast R-CNN算法,采用Softmax函数代替原来的SVM分类器,将目标的分类与回归加入到神经网络中,减少了运算时间. Ren等[7]在Fast R-CNN的基础上作了改进,提出了Faster R-CNN模型,Faster R-CNN主要贡献在于引入区域建议网络(RPN)[8]代替了原来的选择性搜索策略,并将对象候选框的提取、区域归一化以及分类与回归等操作都集中在端到端框架中. Redmon等[9]提出YOLO算法,首次将目标检测当作回归问题来处理,无需产生候选框,直接通过卷积神经网络预测目标的类别和位置,提高了检测的速度,但精度却较低. He等[10]提出了Mask R-CNN模型,结合了经典的目标检测算法Faster R-CNN和经典的语义分割算法FCN[11],Faster R-CNN 可以既快又准地实现目标检测功能,FCN可以精准实现语义分割功能,由于发现了ROI Pooling[12]中所存在的像素偏差问题,提出了对应的ROI Align策略,加上FCN精准的像素mask,可获得高准确率. 江昆鹏等[13]调整了区域建议网络,在anchor的基础上增加了两个尺度,提高了目标的识别精度. 朱有产等[14]优化Mask R-CNN主干网络的深度,并在卷积操作中加入开运算层,减少图片的边缘噪声. 石杰等[15]在Mask R-CNN的基础上加入LH R-CNN,提高了运算速度.
由于交通监控视频中的目标车辆存在目标尺寸和尺度的巨大差异,车辆之间存在相互遮挡问题,导致目标车辆检测存在误检或漏检. 针对Mask R-CNN在车辆检测上出现误检或漏检的问题,本文基于改进的Mask R-CNN的交通监控视频车辆检测算法,在Mask R-CNN通用结构框架基础上,设计了基于bottleneck结构的主干网络、基于预测mask分数的掩码分支和基于Arcface Loss的目标检测损失函数,解决视频监控中部分目标由于存在遮挡而导致漏检或误检的问题,提高了目标的检测精度和目标特征的判别能力.
Mask R-CNN模型将目标的分类分数作为最终目标分割的分数,即评判分类、边界框修正以及掩码分割效果取决于该分类分数. 在背景杂乱、目标相互遮挡等复杂场景下,可能会出现目标被漏检或误检,以及目标掩码质量低的问题. 针对上述问题,本文在Mask R-CNN结构框架基础上,设计了基于bottleneck结构的主干网络、基于预测mask分数的掩码分支和基于Arcface Loss的目标检测损失函数,改进后的Mask R-CNN结构框架图如图1所示.
Mask R-CNN采用残差网络ResNet[16]作为主干网络来完成图像特征的提取. ResNet网络分为 ResNet50、ResNet101、ResNet152,这3种网络的主要区别在于层数不同,层数越深,提取图像的特征就越丰富,越能反映图像抽象的语义信息,但层数的加深往往会带来梯度消失或爆炸、不易训练等问题. 由于 bottleneck 结构能有效减少卷积的参数个数和计算量,深度提取目标特征,为了在性能和运行速度之间保持平衡,本文选用bottleneck作为残差网络的主干结构.
基于bottleneck结构的主干网络结构如图2所示. ResNet使用bottleneck残差结构,Batch Normalization层用于加快收敛速度. ResNet共有5组卷积,第一组卷积的输入大小为224×224,第五组卷积的输出大小为7×7,总共缩小5次,每次缩小2倍,最终输入图像缩小了32倍,减少了参数的数量,从而减少了计算量.
Mask R-CNN通过掩码分支对目标车辆进行掩码分割,会得到一个沿着目标车辆轮廓包围的闭合区域,闭合区域为目标分割的掩码. 由于Mask R-CNN 预测掩码质量的分数和类别分类的分数相同,因此Mask R-CNN不能完全评估目标车辆的掩码分割质量. 针对该问题,本文在掩码分支网络的基础上增加了基于预测mask分数的掩码分支,用于单独评估目标车辆的掩码质量.
基于预测mask分数的掩码分支网络是将目标的分割掩码与ROI特征图拼接在一起作为输入,在拼接之前,需要对目标的分割掩码进行最大值池化,保持与ROI特征图的尺寸大小一致. 基于预测mask分数的掩码分支网络结构如图3所示,图中使用3个卷积层分别为14×14×257,14×14×256,7×7×256;3个全连接层分别为1 024,1 024,1. 对于3个全连接层,遵循Mask R-CNN目标检测网络设计原则,将前两个FC层的输出设置为1024,最后一个全连接层的输出设置为类别数目,掩码分支只对目标车辆的分割掩码进行评分,即类别数目为1.
基于预测mask分数的掩码分支通过对掩码分支网络输出的目标掩码与真实标签值掩码重叠面积(IoU)的预测,来精确地评估掩码的质量. 最终的评分细则定义如下:
Smask=Scls×SIoU,
(1)
式中,Smask为最终的掩码质量分数;Scls为Mask R-CNN中所预测的类别分类分数;SIoU为预测的IoU. 掩码分割分支与基于预测mask分数的掩码分支相互独立. 在训练阶段,分类正确的目标车辆掩码才会输入到基于预测mask分数的掩码分支,即Scls必须取正值. 然后,基于预测mask分数的掩码分支对分类正确的目标车辆掩码预测对应的IoU,不断减小Smask和SIoU之间的差距,使得Smask接近于SIoU,保证目标类别的掩码质量与掩码分数保持一致. 改进后的Mask R-CNN既能确保分类的准确,又能评判掩码质量的好坏.
Softmax Loss作为目标检测模型中常用的损失函数,用来输出目标类别的概率,以保证目标类别的可分性,但若两个类别的特征相似度高时,使用Softmax Loss进行相似度学习,会无法区分出这两个类别. 在Softmax Loss基础上提出的A-softmax Loss[17],加入了角度距离,使得特征具有可判别性:
(2)
以这种方式拉近网络模型类内距离、放大类间距离,使得类别间的特征更具可分性,但由于夹角增加到原来的m倍,网络模型训练难度变大,导致损失函数的损失值很难收敛.
本文通过融合A-Softmax Loss和Softmax Loss的特性,设计基于Arcface Loss的目标检测损失函数,Arcface Loss[18]计算公式为:
(3)
式中,s为固定尺度因子;m为正整数.
图4所示为Arcface Loss原理示意图. 首先,对目标特征向量Xi和权重Wyi进行归一化操作,并使用反余弦函数来计算目标特征向量和权重之间的夹角θyi,将附加的角余量m添加到目标角度上. 然后,使用余弦函数再次获得余弦距离,并乘上固定尺度因子s,将以上结果输入到Softmax层中,以完成目标识别工作.
由于A-Softmax Loss计算特征相似度时采用余弦距离,而Arcface Loss计算特征相似度时采用角度距离,计算更加方便. A-Softmax Loss让对应类别的W和X的夹角增加到原来的m倍,而Arcface Loss只在原来夹角的基础上增加一个角余量m,不需要借助退火方法,网络的训练难度降低.
改进后的Mask R-CNN网络的损失函数表达式为:
L=Lcls+Lbox+Lmask+Lscore.
(4)
其中,
(5)
式中,Lcls为目标检测网络中类别分类的损失值;N为区域候选网络获得的候选框个数;cos(θyi)为对应的每个候选框分类正确的概率.
(6)
式中,Lbox为车辆检测框回归的损失值;ti为检测框的4个坐标数据组成的向量;ti*为标准框的4个坐标数据组成的向量.
Lmask=-∑ipilog(yi)+(1-pi)log(1-yi),
(7)
式中,Lmask为掩码分支网络的损失值;i为每个ROI的索引数;pi为ROI二分类的概率值;yi为第i个输出.Lmask仅在ROI的正样本上定义.
(8)
式中,Lscore为基于预测mask分数的掩码分支的损失值;m为目标掩码的总数;y为掩码分支网络输出目标掩码的类别分数;y*为基于预测mask分数的掩码分支对相应的目标掩码预测的IoU.
为了更好地检测出交通监控视频图像中的目标车辆,实验首先使用构建的数据集对改进后的Mask R-CNN网络进行多次迭代训练,再将迭代训练后的网络模型应用到实际的交通监控视频图像中,以检测出目标车辆. 实验从构建的数据集中选取了50 000张目标车辆图片,使用Labelme软件对50 000张车辆图片进行人工标注,标注出每辆车的类别、边界框及标签值掩码. 标注的数据集一共有3类,分别为car、bus、truck. 图5所示为人工标注结果示意图. 实验按4∶1比例划分训练集和测试集,其中40 000张为训练图像,10 000张为测试图像.
实验中网络训练参数的设置如表1所示.
表1 改进的Mask R-CNN网络训练参数设置Table 1 The training parameter setting of improved Mask R-CNN network
实验在构建的数据集上对Mask R-CNN模型和改进后的Mask R-CNN模型分别进行训练,每次输入16张图片,训练50轮,共迭代36 000次,在迭代20 000次时学习率设置为0.000 1. 改进后的Mask R-CNN网络模型的损失函数曲线如图6所示.
图6显示,在训练和测试阶段前期,损失值下降速率较快,后期曲线趋向平稳,改进后的Mask R-CNN网络模型收敛. 将待检测的交通视频图像转换成800×800尺寸大小,分别输入到迭代训练好的Mask R-CNN和改进后的Mask R-CNN中,输出所有目标车辆的边界框位置、掩码及最终的掩码质量分数.
图7和图8分别为交通监控场景1、2的实验结果图,其中(a)为Mask R-CNN的处理结果,(b)为改进后的Mask R-CNN的处理结果. 在图7的交通监控场景1中,车辆数量较少且互相无遮挡,两种算法均能检测和分割出所有的运动车辆,最终的掩码质量分数相差不大,均能反映出真实的掩码质量. 在图8的交通监控场景2中,车辆数量较多且互相之间遮挡严重,Mask R-CNN不仅漏检车辆,且部分车辆因相互遮挡导致掩码分割效果不理想,但最终的掩码质量分数却很高,即掩码质量分数与实际的掩码质量不一致;改进后的Mask R-CNN不仅能检测出所有的目标车辆,且最终的掩码质量分数能真实地反映真实的掩码质量.
表2 4种模型在构建数据集上的测试结果Table 2 Test results of four models on constructed datasets
可通过计算准确率和召回率来评价网络模型的检测性能:
(9)
(10)
式中,TP为正确划分为正样本的个数;FP为错误划分为正样本的个数;FN为错误划分为负样本的个数.
P-R曲线即以召回率和准确率作为横、纵坐标的曲线,P-R曲线所围面积即为类别精度(average precision,AP),mAP就是所有类的 AP平均值,AP和mAP可用于评判目标检测性能. FPS为每一秒模型检测的图片张数,可用于评价网络模型的检测速度.
本实验与Faster R-CNN、YOLO v3及Mask R-CNN模型在测试集上的FPS、mAP测试结果对比如表2所示. 结果表明,改进的Mask R-CNN模型在满足速度的同时,准确率要高于其余3种模型.
针对交通监控视频中车辆检测的目标车辆存在遮挡,导致目标车辆存在漏检或误检的问题,提出了一种基于改进的Mask R-CNN的交通监控视频车辆检测算法. 实验结果表明,相比较于Faster R-CNN、YoLo v3和Mask R-CNN网络模型,本文所提出的改进模型可以更好地提高目标车辆的检测精度,即使存在车辆目标互相遮挡的情况,依然能精准获得车辆目标的类别、位置及掩码,为交通监控视频中的车辆检测提供了有效的途径.