联合ACF与YOLOv3的目标识别方法研究
2020-12-16何伟鑫邓建球丛林虎
何伟鑫,邓建球,逯 程,丛林虎
(海军航空大学 岸防兵学院, 山东 烟台 264001)
目标检测技术是当前深度学习以及图像处理领域的研究热点,将目标检测技术应用于弹库人员的识别,能够在辅助人员对弹库目标进行管控的同时将人工智能技术应用于弹库管理,是目前我军信息化、智能化建设的主流。
近年来,深度学习技术在目标检测领域得到了广泛的应用,已成为从图像中提取特征的有效方法。基于深度学习的目标检测具有丰富的特征以及强大的特征表达能力。它们还结合了传统的手工制作特征功能[1]。现有的基于深度学习的目标检测方法一般可以分为两类,即基于区域建议的目标检测以及基于回归的目标检测[2]。
目前,基于区域建议的经典目标检测方法包括基于区域建议的卷积神经网络(R-CNN)[3]、空间金字塔池网络(SPP-net)[4]、Fast R-CNN[5]、FsterR-CNN[6]和基于区域的完全卷积网络(R-FPN)[7]。然而,区域建议的实现过程效率低下,无法实现实时性。R-CNN根据区域建议算法获得潜在目标位置,首先从每个候选区域中提取特征,然后输入卷积神经网络,最后通过支持向量机对它们进行评估(SVM)[8]。通过共享卷积,R-CNN的计算成本显著降低[9]。SPP和Fast R-CNN均需减少训练时间,然而,耗时的提案计算是阻止其提升性能的一个瓶颈[10]。为此,提出了一种区域建议网络(RPN)[11],它与目标检测网络共享图像卷积特征,是一种能有效预测不同尺度和长宽比区域的全卷积网络(FCN)。Faster R-CNN是将RPN和Fast R-CNN融合到一个网络中,与检测网络共享卷积特征而发展起来的。在测试时,它通过使用非常深的网络和共享卷积来实现几乎实时的速率,并且可以端到端地训练它,以生成检测方案[12]。
典型的基于回归的目标检测模型是YOLO[13]和SSD[14]。作为一个单一的神经网络,YOLO非常简单,它可以同时预测目标框坐标和类别概率,其将YOLO帧检测看作一个回归问题,实现了简单的端到端目标检测,具有较高的效率。此外,YOLO比其他实时检测算法具有更高的平均精度(mAP)[15]。2016年,YOLOv2[16]被提出,2018年,YOLOv3[17]也被提出。YOLOv3比之前的版本有更高的精确度,而且速度仍然很快。SSD采用单一的深度神经网络对目标进行检测,在训练过程中每个目标只需要输入图像和其真实值。基于前向卷积网络,SSD生成一个固定大小的检测框集合以及类别概率的分数。在非最大抑制步骤之后,SSD产生最终检测结果[18]。然而,YOLOv3和SSD在小目标检测方面都没有好的表现,原因是深层卷积层没有足够的目标信息进行学习[19]。
研究引入聚合通道算法(ACF)以及Soft-NMS算法,对YOLOv3算法进行改进,旨在使得模型提高对目标较小的行人的检测准确性。利用ACF算法提取图像中的潜在区域,而后将潜在区域传入已改进Soft-NMS算法的YOLOv3网络,最后将检测结果映射回原网络得出最终检测结果。实验结果表明,研究提出的YOLOv3算法具有较高的检测精度,是提高目标检测精度的有效途径。
1 YOLOv3算法原理
YOLOv3是一种具有深层卷积结构的目标检测算法,该算法使用DarkNet53作为特征提取网络,然后利用k-means聚类获得anchor box来预测bounding box。每个bounding box的4个坐标(tx,ty,tw,th)值及其置信度得分、概率值直接通过回归运算从输入图像输出。
在训练阶段,从特征提取网络输出13*13、26*26、52*52三个特征图。以13*13的特征图为例,将特征图划分为13*13网格。每个网格负责检测目标,预测结果为:
bx=σ(tx)+Cx
by=σ(ty)+Cy
bw=pwetw
bh=pheth
(1)
式(1)中:(Cx,Cy)表示cell左上角的坐标;(pw,ph)分别表示anchor box的宽度和高度;(tx,ty,tw,th)是网络预测的4个偏移坐标。利用sigmoid函数处理偏移值,可以有效保证目标中心在网格单元内执行预测。图1为边界框位置与大小的计算示意图。
图1 边界框位置与大小的计算示意图
YOLOv3的损失函数公式为公式(2),其由三部分组成:第一部分(第一项、第二项)表示坐标预测误差、第二部分(第三项、第四项)表示置信度误差,第三部分(第五项)表示分类误差。
(2)
(3)
2 引入聚合通道算法
聚合通道特征(ACF)算法[20]把不同通道特征进行聚合,得到聚合特征。将不同通道的特征进行聚合,使得聚合得到的特征信息可以提高对物体特征的表现效率。输入待检图,相应的通道特征表示为:
C=Ω(I)→C1=∑(C)
(4)
式(4)中:Ω为特征变换函数;C1表示聚合特征;C为特征;∑表示将特征进行聚合。
灰度图像C=I,最简单的特征通道即为灰度,其步骤为:输入待测图像I,得到梯度方向直方图、颜色以及梯度幅值特征金字塔的计算结果,然后将所提取的3种特征结合为ACF,接着采用决策树为弱分类器训练Boosting分类器,于是得到初始检测的输出。
ACF使用的通道特征为:3通道LUV颜色通道,6通道梯度方向直方图,1通道梯度幅度,进行聚合获得聚合特征F,于是F的通道数目为10。使用f算子进行滤波,减少噪声干扰。划分F得到4*4的小块,对每块进行像素求和,接着继续使用f算子滤波。对图像特征金字塔[21]展开计算时,把图像进行分组,分配到金字塔层,每组金字塔特征仅计算一层,其余经该层采样获得,提高了时效。使用Boosting分类器以及使用的弱分类器是决策树,对INRIA2017进行训练,得出结果。
为了使YOLOv3模型具备更高的检测精度,对原算法做出修改,主要包括以下工作:
原始的ACF方法在某些检测问题上取得了良好的性能。本研究中,我们探索了ACF在Region proposal提取中的新用途。直接利用ACF对目标进行检测,得到的结果可能仅包含目标的一部分或者误报。为了解决这个问题,研究提出了RPACF区域提议生成方法。RPACF并非如其余多数区域提案一样,直接使用生成的Region proposal进行分类,而是生成包含潜在目标的大型潜在区域,用于后续的深度网络[22]。使用这种方法,可以避免仅包含部分目标的区域。RPACF实现如图2所示。
图2 RPACF区域建议方法
检测过程中,ACF执行初步检测功能,但并非像传统ACF根据置信度来排列ACF边界框。由ACF检测到的一个目标可能会有几个不同的bounding box,或者有的目标被漏检导致出现误报,且有些目标的bounding box之间的距离较近或者部分重叠,于是将这些bounding box进行合并。图3直观地展示了这一过程。使用xmin,ymin表示2个框中x,y坐标的最小值。于是得:
(5)
(6)
式(5)、(6)中: (xb1,yb1)和(xb2,yb2)是2个边界框左下角的坐标;(wb1,hb1)和(wb2,hb2)代表2个边界框的宽度和高度。将2个边界框在x,y轴上合并,合并后的大边界框的左下角坐标以及右上角坐标分别为:
(xmin-20,ymin-20)(max{xb1+wb1,xb2+wb2}+20,
max{yb1+hb1,yb2+hb2}+20)
两坐标加减20的原因是减小目标存在部分未被包含在框内的情况,用(xb,yb)代表合并边界框的右上角点。而(wb,hb)代表合并边界框的宽度和高度。将2个边界框合并为一个可能包含一个或多个目标的大边界框。这些合并的边界框扩展为潜在区域和后续网络的输入。如果检测的结果存在2个边界框以上重叠,则根据横坐标的先后顺序,取前2个进行合并;然后以新的边界框再与其余边界框进行比较。
图3 边界框合并示意图
还存在另一种情况就是,2个边界框间距大于设定的阈值,表示这些框所检测的目标非同一个对象,无需进行合并。在这种情况下,边界框可能包含整个目标,也可能只包含目标的一部分,或者仅仅是背景。为了得到更好的检测和定位,将这些边界框传长宽均上下左右扩充20像素大小,然后送至YOLOv3网络待进一步检测,这样可以提升目标的大小占比,以便获得更好的检测效果。比如检测的框大小为160*180,则送入后续网络的大小则为200*220。bounding box合并实例如图4所示。
图4 bounding box合并实例
Fast R-CNN使用Selective Search(SS)方法来生成bounding box。通过实验表明,Faste R-CNN处理1 920*1 080大小的图片检测较慢。因此,不适合目标检测中的潜在区域提取。Faster R-CNN中的候选区域提取方法(例如RPN网络)生成并选择边界框,这些边界框用于回归和分类。高分辨率的输入图像(1 920*1 080)和较大的对象尺寸范围(弹库空间大、检测目标面积范围差距较大),卷积网络的特征图可能会丢失一些细节,从而难以检测到较小的目标。因此,RPN不适合检测高分辨率图像中的小尺寸物体。
与RPN不同,本研究的方法仅生成可能出现目标的潜在区域,然后将这些潜在区域发送到YOLOv3网络进行检测。研究从潜在区域提取特征,而非提取特征以生成潜在区域。RPACF的作用就是减少后续YOLOv3的检测范围,提高目标大小的占比。研究没有直接将ACF用作区域提议方法,因为ACF检测方法通常会生成边界框超过实例的一半。实验表明[23],误检率达到17%。如果将这些边界框发送到YOLOv3网络,则误检率不会低于17%。但是,研究提出的RPACF方法可以包含100%的目标,这样可以保证比较好的检测结果。此外,每个图像在CPU上生成潜在区域仅需花费0.16 s(1 920×1 080),从而确保较快的检测速度。因此,我们提出的RPACF方法比其他方法更适合提取高分辨率图像的潜在区域。
3 引入soft-NMS
非极大值抑制算法(NMS),当前在很多计算机视觉任务中均广泛应用,其算法流程如下:
步骤1将所有boundingbox按照得分进行排序,取最高分对应框记为bi;
步骤2依次选取剩余框依次与得分最高的框进行iou(交并比)计算,如果iou大于设定阈值,则删除,如式(7)所示;
步骤3在剩下的框中选择新的bi,重复步骤2,最后剩下的都认为是最优的目标检测框。
(7)
式(7)中:Nt为设定阈值;Si为第i个预测框对应的得分;M为选定bi。iou计算公式为:
(8)
式(8)中:A为bi的面积;B为Bj面积。但是,使用该NMS算法容易造成漏检情况的产生。如图5所示,实线以及虚线两种检测框均为预测结果,但是按照传统的NMS算法,将会剔除虚线框,从而造成漏检的产生。基于这种情况,提出对于交并比较大的预测框,不是直接对其进行剔除,而是减少它的置信度的改进方法,即应用Soft-NMS替代NMS。
Soft-NMS的特点为可按照目前分数递归对其进行重评,而不是粗暴得进行置零,这样就可以避免同类物体重叠度角度较高时产生漏检的情况,同时利用该算法无须对模型进行重新训练,不会增加训练开销,其算法流程为:
步骤1根据class对boundingbox进行分组;
步骤2对每一class中所有bounding进行得分排序;
步骤3选择得分最高的框,记作bi;
步骤4依次求出剩余框与bi之间的iou,若大于设定阈值Nt,则根据式(8)降低其得分;将bi放入新的集合D={ }中;
步骤5在剩下的框中选择新的bi,重复步骤4,最后剩下的都认为是最优的目标检测框。
步骤6设置阈值Nd,当降低得分后的框的新得分小于Nd时,删除该框。
本文算法采用Soft-NMS中的高斯函数:
(9)
式(9)中,σ为常数。Soft-NMS改变传统NMS对交并比较高的检测框直接去除的做法,以降低其置信度的做法进行替换,使得其存在继续进行比较的可能性,从而减小了正确的检测框被误删的几率,能够提升了检测平均精度[24]。
4 映射处理
后期的检测结果以RPACF提取的潜在区域为基础,结果需要映射回原始图像。在后续YOLOv3网络可能对同一对象生成多个边界框。为了将检测结果映射回原图像以及解决这一问题,设计包含本文第3节提出的Soft-NMS和映射的后处理过程。
YOLOv3检测过后可能会出现多个重叠的检测,一个目标可能有很多与之关联的边界框,因此使用本研究改进的Soft-NMS算法对边界框进行选择,得出准确的边界框。YOLOv3得到的边界框坐标是基于潜在区域的,而潜在区域从原始图像中获取,为了得到最终的检测结果,需要将边界框从潜在区域映射到原始图像中。潜在区域边界框坐标与原始图像最终坐标的关系为:
xb=xbp+xpo-20
(10)
yb=ybp+ypo-20
(11)
式中(10)、(11)中:(x,y)表示x和y坐标;下标b用于原始图片边界框;下标bp表示潜在区域中的边界框;下标po用于原始图像中的潜在区域。当它们映射到原始图像时,边框的宽度,高度和类别不变,因此得到最终的检测结果。
5 实验结果分析
实验在Ubuntu16.04系统下进行,CPU:酷睿i5-8400 2.80GHz,显卡为GTX1060,显存为6GB,计算机内存为16G;使用MATLAB、C语言以及Python 3.6,同时配套OpenCV、TensorFlow等模块来支持实验的进行。
在本实验中,聚合通道特征使用MATLAB工具箱所提供,并对其进行修改,以实现研究所要求的检测框合并为潜在区域的目标。同时,对某部弹药保障大队正在忙碌工作状态下的弹库进行人员数据集的采集,该数据集具有弹库面积大、工作人员着装均比较单调(部队制服)、人员存在被弹品部分遮挡等特点,同时数据集保持在光照相同以及所有数据集图片皆为弹库场景,采集时,弹库均开大灯,采集时间对于数据集无影响。数据集共含图片1 400张,分辨率大小为1 920*1 080,以8比2的比例划分训练集以及测试集,并将其标定为VOC格式。其中大部分图片均包含多个人员目标,且因为弹库面积较大,人员大小不一,图片中部分人员远离摄像头,目标极小。实验过程中采用在线数据增强的方式对数据集进行扩充。训练图片之前,会先对图片进行随机的数据增强:旋转、剪切、翻转以及平移等,因为弹库的光照是保持稳定的,因此不需对光照变化进行处理。
5.1 RPACF提取候选区域的有效性
研究使用ACF算法对含有目标的潜在区域进行了提取,为确保所提方法的有效性,与传统的ACF算法进行对比。图6(公开放映的图片)表示用传统ACF对图片进行检测的输出结果,可以得出传统的ACF并不能较好地获得所有目标结果。
图6 ACF检测示意图
图7为使用了本研究提出的合并候选框方式对检测边界框进行合并后的结果是示意图。
图7 合并边界框
从图7可以看出,合并后的大边界框,可以将图中的所有目标均包含在内,于是将该大边界框作为潜在区域,传入后续的YOLOv3网络进行进一步的检测。
图8为传统YOLOv3算法对该图进行检测的结果,从图8可以看出,该图并不能较好地将图中的所有目标识别出来。将来自RPACF提取出来的潜在区域传入YOLOv3网络进行检测,得出检测结果如图9所示。
图8 传统YOLOv3检测示意图
图9 改进YOLOv3检测示意图
从图9可以得出,研究提出的基于ACF提取候选区域的方法可以使得检测结果优于传统的YOLOv3网络。
表1为RPACF-YOLOv3与其他算法的检测精度对照表,从表1可以得出RPACF-YOLOv3优于其他比较的方法。这一优势主要有以下原因:首先,RPACF可以生成包含100%目标的潜在区域;生成过程中将高分辨率图像分割成较小的潜在区域,从而可以有效避免YOLOv3在高分辨率图像上的性能较差的问题。其次,关于细分小尺寸图像,RPACF-YOLOv3可以进行精细检测,实现较高的平均精度。第三,设计的后处理方法旨在选择最合适的bounding box并将它们映射到原始图像。
表1 各算法精度
5.2 以Soft-NMS改进NMS
研究提出的Soft-NMS替换其NMS算法,其程序实现如图10所示。
程序修改后,由于非极大值抑制算法没有涉及到未知参数需要进行更新,因此改进非极大值抑制算法后的YOLOv3模型不需进行训练即可直接进行测试,表2为其测试结果。
通过表2数据可得,改进非极大值抑制算法后,算法对弹库人员目标识别的AP有明显提高,因为在实际的弹库工作中,存在工作人员重合的情况较多,因此,可以得出本研究提出的改进非极大值抑制方法对弹库工作人员的检测精度优于传统的YOLOv3算法。
图10 NMS改进程序实现
表2 两种NMS结果
6 结论
提出了一种基于ACF提取潜在区域以及Soft-NMS的YOLOv3改进算法,利用ACF算法对图片进行候选区域的快速提取,根据bounding box之间的距离利用合并算法合并相应的bounding box为潜在区域。处理完毕后的潜在区域传送至后续网络进行进一步检测,将检测结果利用Soft-NMS以及映射程序映射回原图像。
本研究提出的改进方法使得YOLOv3的检测精度比传统YOLOv3在弹库工作人员图像数据集上面的AP高5.54%。