黄国新,李 炜,张比浩,梁斌斌,3,韩笑冬,宫江雷,武长青
1.四川大学 视觉合成图形图像技术国防重点学科实验室,成都 610065
2.四川大学 空天科学与工程学院,成都 610065
3.四川川大智胜软件股份有限公司,成都 610045
4.中国空间技术研究院 通信与导航卫星总体部,北京 100094
视频监控系统可以提供信息丰富的图像,精确而具体地描述物理世界。因此,视频监控系统被广泛应用于交通、公共安全、体育赛事等诸多领域。机场场面监控视频中的多尺度目标检测是指视频每帧中包含的尺寸大小不同的物体,对它们进行类别识别和位置定位[1-2]。作为机场安全有效运行所必须面对的基本问题,有效且可靠的机场场面视频目标检测在其中扮演了重要角色[3]。然而,由于机场场面地理和环境限制,大部分的监视摄像头只能架设在距离地面较远的塔台或者航站楼上,导致场面上的人员、车辆等目标,在图像画面中很小,甚至只有百余个像素大小。特别是在塔台上架设的全景监视摄像头图像里,人员占比整个画面可以低于1%,使得场面上的人员、车辆以及远场的航空器在进行目标检测时特征不明显,难以被正确地检测[4]。除此之外,机场场面环境中存在遮挡,各类目标间大小相差较大,还存在同一类目标,例如飞机,在远场和近场时图像占比差别较大的问题。
随着近年来深度学习的发展,基于深度学习的目标检测器采用卷积神经网络结构,得到了巨大的发展。Liu等人提出的SSD(single shot multibox detector)[5]算法是一种单阶段的目标检测器,其方法核心是使用卷积滤波器来预测特征图上固定的一组先验边框的类别分数和位置偏移。SSD算法去掉了VGG[6]网络中的全连接层,并在后续中加入了6层尺度不一的检测层。SSD在PASCAL VOC2007[7]数据集上取得了74.3%的均值平均精度(mean average precision,mAP),并且使用NVIDIA Titan X的情况下轻量版SSD帧率可以达到59 frame/s。但是由于SSD的额外特征层,特别是最后一层分辨率为1×1,导致包含的空间信息过于粗糙,难以进行对目标的精确定位。网络的浅层部分所包含的语义信息不够丰富,导致网络无法区分该目标是“人员”还是“雪糕筒”。
在本文中,针对上述机场场面人员类别图像占比小、飞机类别尺度变化大的问题。在SSD算法基础上通过加深网络层,使用一个更深的骨干网络,用于提取更丰富的语义信息。为了综合网络浅层和深层各自具有的空间细节信息和高级语义信息,使得网络浅层对小目标具有更鲁棒的表征能力,本文使用融合特征层的方法,构建了一个基于元素积的特征金字塔网络,从感受野较大的深层中检测大目标,感受野较小的浅层中检测小目标。针对目标遮挡重叠的问题,使用Soft-NMS算法[8]以保留检测正确的预测框,减少漏检的情况。最后为了更好地适应机场场面环境,调整先验框的尺度,加速网络的训练和收敛。实验结果表明,本文改进算法在机场场面环境下能够取得先进的性能,特别是在人员类别精度上提升明显。
本文算法框架主要分为骨干网络、额外特征网络以及特征融合网络三部分组成,整体网络架构如图1所示。网络输入首先经过ResNet-50骨干网络进行特征提取,再进入六层额外特征网络进一步地提升语义信息维度,随后将额外特征网络中的三层与ResNet-50骨干网络中后三个阶段的末层特征图进行自顶向下的特征融合,最后将特征融合网络的六个融合特征图输入到检测层。研究表明[9],残差网络模型能够提取语义信息更加丰富的特征图,在此基础上利用多尺度特征金字塔网络[10]融合模块进行不同尺度的特征图融合,获得细节信息和语义信息更丰富的检测特征图。其次,在模型大小与计算量方面,残差模型ResNet-50在分类精度与ResNet-101相差不多的情况下,计算量远小于后者。因此本文将SSD本身的骨干网络VGG替换为网络层更深且计算量相对较低的ResNet-50。本文在额外特征网络中设计了六个特征图,在每次缩小特征图前使用1×1的卷积核调整通道数,减小计算量[11-12],详细参数如表1所示。在图1额外特征网络中为了使网络结构表达简洁,将Conv6_1、Conv7_1和Conv8_1未显式地表明出来。特征融合网络中,在不同分辨率大小特征图间做融合时,未将低分辨率特征图上采样步骤显式表明,具体实现在下一小节会详细介绍。最后,利用特征融合后得到的不同层级的特征图进行不同大小尺度的目标候选框生成和类别预测,并在模型推断阶段采用Soft-NMS软性非极大抑制算法进行重叠框过滤以减少目标重叠情况下的错删情况,最终得到检测结果。
表1 额外特征网络卷积核详细参数Table 1 Additional feature network convolution kernel detailed parameters
在原始的SSD检测模型中,其对输入图像进行特征提取的卷积神经网络通过逐层计算的方式得到特征图层次结构。由于特征图层次结构之间存在子采样层,最终得到的特征图层次呈现为多尺度的特征图金字塔结构。利用不同层级的特征图对不同尺寸大小的物体进行检测,以达到多尺度目标检测的目的。对于尺寸较小的目标,SSD利用浅层特征图进行检测,而对于尺寸较大的目标物体,则依靠深层特征图进行检测。
卷积神经网络越深的特征层不变性越强而同变性越弱,而低层网络虽然语义特征比较差,但是含有更丰富的边缘及轮廓信息。所以SSD中浅层的特征图虽然具有高分辨率和丰富的物体细节特征,但其语义抽象信息往往不足。而深层特征图经过多层卷积层后其语义抽象十分丰富,但由于池化层的采用又导致其分辨率较低。因此,SSD采用各层级特征图独立检测不同尺度大小物体的方法往往在小目标物体较多,物体尺度变化较大的场景中检测效果较差。为了同时保持不变性和同变性,可以采用融合多层特征图的方式[13-14]。一个直接改进的方法是融合不同层级的特征图,使各层级特征图既具有丰富的物体细节特征,又具有高分辨率与抽象的语义信息。
本文使用的特征图融合方式如图2所示。ResNet-50由于具有残差模块,因而可以在保证模型训练收敛的同时使特征提取网络具有更好的语义抽象能力。本文将ResNet-50的第三阶段末层、第四阶段末层和第五阶段末层称为{Conv3_x,Conv4_x,Conv5_x}。虽然ResNet-50中有5个阶段残差块,但是前两个阶段产生的特征图语义信息维度太低,所以本文在常规ResNet-50网络后增添了三层特征图用于特征融合。由于做特征融合计算时,需要特征图的分辨率和通道数严格相同,所以在特征图进入到特征融合网络前,都预先使用1×1的卷积核进行通道调整。例如图2中,Conv6_2经过1×1卷积后与P7层通过2倍最邻近插值上采样后的特征图进行元素式操作。元素式操作,通常有三种方法,一是对应元素的和,二是对应元素的积[15],三是元素并置即通道叠加(concat)。对应元素的和是执行特征融合最简单的方法。它最近被频繁地用于许多目标检测器中。对应元素的积与对应元素的和非常相似,唯一的区别是使用乘法而不是求和。求积的一个优点是它可以用来抑制或突出某个区域内的特性,这可能进一步有利于小目标检测。元素叠加是特征融合的另一种方式。它的优点是可以用来集成不同区域的语境信息,缺点是增加了内存。本文采用的是对应元素的积的方式,以针对机场场面上的小目标,例如人员取得更好的检测效果。最后,将自顶向下融合生成的网络特征图输入到检测层中,使用不同分辨率的特征图来检测不同大小的目标。
图2 特征金字塔融合网络Fig.2 Feature pyramid fusion network
在传统的目标检测框架中,其采用滑动窗口机制来对窗口中可能出现前景目标或者背景目标的置信度进行打分。然而,由于相邻的滑动窗口之间的置信度通常相近,这就会提高假正例目标的出现,因此,传统的解决方案是采用非极大值抑制(non-maximum suppression,NMS)进行后处理操作,其算法流程如算法1所示。NMS能过滤掉面积重叠部分大于一定阈值的滑动窗口,以获得最终检测结果[16]。随着深度学习的发展,滑动窗口机制已被基于卷积神经网络预测的区域候选框所替代,但是仍然采用NMS来降低假正例数量和消除冗余检测框。然而,由于NMS直接将重叠的候选框删除,在同一类别物体位置相近的情况下,其往往会出现将真正例物体错误过滤的情况。
算法1常规NMS算法
步骤1在所有生成的预测框中找到置信度最高的预测框A,将预测框A与其他的预测框进行交并比计算,判断是够大于预先设置的阈值p。
步骤2将步骤1中大于设定阈值p的预测框删除,保留预测框A。
步骤3在其余剩下的预测框中找到置信度最大的预测框B,重复步骤1和步骤2,直至遍历完所有的预测框。
步骤4算法结束。
鉴于机场场面环境中目标类别少,同一类别物体往往同时存在。因此,若仍然直接采用NMS进行预测候选框的后处理操作,将容易导致漏检情况的发生。针对NMS的缺点,本文在模型测试阶段将其替换为软性非极大值抑制Soft-NMS来过滤检测框,其算法如算法2所示。
算法2Soft-NMS算法
步骤1在所有生成的预测框中找到置信度最高的预测框A,将预测框A与其他的预测框进行交并比计算,判断是够大于预先设置的阈值p。
步骤2将步骤1中大于设定阈值p的预测框使用高斯加权衰减处理,降低其预测框的置信度,并且保留预测框A。
步骤3在其余剩下的预测框中找到置信度最大的预测框B,重复步骤1和步骤2,直至遍历完所有的预测框。
步骤4算法结束。
Soft-NMS仅降低预测置信度较高目标候选框附近的其他同类别目标的置信度大小,降低的幅度大小由一个与最高分检测框交并比大小(intersection-over-union,IoU)有关的惩罚函数来决定。当前检测框与最高分检测框的IoU越大,其惩罚也将越大,从而达到过滤无效的重叠检测框,又避免不同物体的检测漏检情况,以提升检测模型在预测密集目标时的检测精度。本文所采用的惩罚函数如公式(1):
其中,si为第i个预测框的置信度,e为自然底数,M为最大置信度的预测框,bi为第i个预测框,σ为常数0.5,D为已经遍历后的预测框集合。
改进的SSD从特征融合后的卷积层中分别提取P3、P4、P5、P6、P7和最后的1×1层,作为检测所用特征图。由于网络结构中不同层级的特征图的感受野不同,因此SSD依靠在不同层级特征图上预定义一系列不同尺度大小的先验框来定位不同尺度大小的物体。假设使用了m张不同层级的特征图来进行检测,各层级特征图上的先验框尺寸大小计算如公式(2)所示:
其中,sk表示先验框尺寸相对于输入图片的比例大小,smin和smax表示比例的最小值与最大值。在原始的SSD论文中,smin和smax的取值为0.2和0.9,然而该比例是针对于日常生活中的环境,并不能有效地扩展到其他特定的检测场景。通过对机场场面监控数据集分析,本文将smin和smax的值调整为0.1与0.8,这能使先验框更好地覆盖机场场面物体尺度大小分布,且能有效地避免小目标物体的漏检问题,使检测模型网络能够被更充分训练。
在目标检测领域有许多非常具有挑战意义的公开数据集,例如PASCAL VOC[17]和MS COCO[18]等,但是在机场场面的监视数据集方面,由于机场的特殊环境及安全保密限制,目前暂时没有公开的数据集。本文通过获取机场场面的监视视频及在塔台自制机位的监视器拍摄视频,包含成都双流国际机场、贵阳龙洞堡国际机场、丽江三义国际机场和海口美兰国际机场在内的国内中大型机场总时长超过300小时的视频数据,累计标注5 064个有效样本。由于拍摄时间和设备的不一致,数据集中含有960×540和1 920×1 080两种不同大小分辨率的图片样本。本文使用labelImg工具对样本进行标注,仿照PASCAL VOC格式进行存储最终得到机场场面数据集。本文还使用了随机亮度、随机裁切和随机翻转的数据增强方法,在训练和测试时,将两种分辨率的样本均缩小到300×300。
本数据集分为两部分,一部分供神经网络进行学习为训练集共4 051个样本,另一部分用于网络模型的测试评估为测试集共1 013个样本。训练验证测试样本比例与通常的3∶1∶1不同,本实验直接将训练集和验证集进行合并。其中,测试集通过均匀抽取的方式获得,即每5个样本抽取1个样本作为测试集。通过对数据集进行分析,共标注了航空器13 117个、车辆8 660个、人员8 942个。机场场面数据集包含了场面目标不同姿态、环境光照、角度变换、日夜色彩及常见的天气状况下的各种情况,可以作为较为普适性的通用机场场面数据集。图3展示了机场场面数据集的部分示例,包含了晴天、夜晚、目标大小不一致等情况。表2统计了数据集中航空器、车辆和人员的尺度大小和样本个数。
图3 机场场面数据集部分样本示意图Fig.3 Schematic diagram of some samples of airport surface dataset
表2 机场场面数据集目标像素统计Table 2 Object pixel statistics of airport surface dataset
通过图3样本示例和表2像素统计可以看出,航空器目标类的尺度变化最大,最极端的情况下高达两千余倍的大小差异,且在部分角度下存在较大幅度的遮挡的情况。场面上的人员所占像素太少,平均像素值只有523,检测该类别相比于其他类别更难。所以本文的数据集还是具有一定的检测难度。
本文实验基于PyTorch[19]深度学习框架,硬件平台为Nvidia 1080Ti显卡和Intel i7-8700K中央处理器,操作系统为Ubuntu 18.04。为了保证测试结果的公平性,本文对所有检测模型都未使用预训练模型。本文算法使用交叉熵作为损失函数,为了使模型完全收敛一共训练了6万次,初始学习率为0.01并逐步衰减到0.000 1至训练完成。
评价一个目标检测器的好坏,通常从两方面来考虑,一方面是检测的精度,另一方面是检测的速度。评价检测速度通常用每秒钟检测器能够检测图片的数量即帧率(frames per second,FPS)作为检测算法的实时性指标。检测精度通常使用均值平均精度mAP来表示。检测目标需要两个信息,一个是预测的目标框位置,一个是预测的目标类别。当预测框与实际真实框的IoU大于等于0.5时,则认为该框的位置预测正确。IoU的计算方法如公式(3)所示:
式中,Bp代表预测框的区域,Bg代表真实框的区域。IoU越高,代表预测框与真实框的重叠度越高,则预测值就越接近真实值。
有了对框的评价,结合框的位置和分类结果进行评价,引出两个概念,精度(precision)和召回率(recall)。将预测框的结果分为4类,包括了有无预测框和类别是否正确的四种情况。当目标检测器的预测框出现,即为正,反之则为负;预测正确即为真,反之则为假。基于此定义,精度可以使用下列公式(4)计算:
式中,TP代表该目标被正确检测,即目标的类别预测正确,且预测框与真实框的IoU大于设置的阈值。反之,则FP代表该目标被预测错误。上述说明了有预测框的两种情况,当没有预测框时,使用TN代表没有预测框在没有目标的位置,也可以认为是正确的预测为背景;使用FN代表没有预测框在有目标的位置,即为漏检。召回率可以使用下列公式(5)计算:
简单来说,精度代表了在已经预测的框中,预测正确的框占比多少;召回率代表了在所有真实的实际框中,预测正确的占比多少。一般来说,目标检测器的精度和召回率都同时越高越好,但是在实际情况中,通常这两个指标成负相关,当调节阈值使得精度较高时,召回率会下降,当召回率高时,精度会下降。
平均精度(average precision,AP)是指在不同召回率情况下,对精度的求和平均。通常平均精度的召回率取值区间为[0,0.1,0.2,…,0.9,1],对这11个召回率值下的精度求和平均得到某个类别的平均精度。对于多目标检测器来说,将多个类别的平均精度进行累加求和后再平均,即可求得mAP。
为了验证本文提出的改进SSD算法能否取得更好的检测效果,在上述的机场数据集中进行测试实验。首先进行消融实验,以验证改进算法的各组件的性能。消融实验中,除变量参数以外,其余网络设置,训练步骤均保持一致。首先使用特征提取网络ResNet-50替换SSD中特征提取网络VGG-16,作为基准模型。然后依次实验分析了,独立加入金字塔特征融合网络和独立加入Soft-NMS对基准模型的影响,最后同时使用两个组件得到最终的实验结果,详细实验数据如表3所示。
表3 特征金字塔融合网络与Soft-NMS的消融实验Table 3 Ablation experiment of feature pyramid fusion network and Soft-NMS %
由表3可以看出,在基准模型基础上添加自顶向下的特征金字塔融合网络,在三个类别的AP中都有一定程度的提升,mAP相较于基准模型提高了8.04个百分点。特别是在人员类上,相较于基准模型,惊人地提高了接近20个百分点。证明了基于元素相乘的特征金字塔融合网络能够对小目标有比较好的鲁棒性。在预测框处理阶段单独使用Soft-NMS同样有3.24个百分点的mAP的提升,特别在召回率方面,由于检测到了更多正确的目标,召回率也提升了3.29个百分点。说明在一定程度上,解决了目标间重叠导致的漏检和错检的情况。最终本文改进算法通过结合上述两个组件,取得了86.31%的mAP和72.49%的召回率。为了更好地证明本文改进算法的性能,还与原始SSD、YOLOv3[20]等先进目标检测算法在检测精度和推断速度进行实验比较,结果如表4所示。
由表4可知,与其他算法相比,本文算法在mAP方面具有更好的性能。本文算法提高了三种类别的平均精度。特别是对于人员类别,在同一输入大小情况下,相较于原始SSD,检测精度提高了47.25个百分点,在推断速度方面,本文提出的算法还可以保持较高的检测速度,达到了32 frame/s。与YOLOv3算法相比,本文算法虽然在推断速度上有所差距,但是在各类别和mAP的精度上均处于大幅度领先的水平。如图4所示,可以直观地看出本文算法是较好的,并且每个检测框具有较高的置信度。YOLOv3和SSD512对于飞机等大目标也具有较好的检测效果,但是在人员等小目标检测上存在明显的漏检情况。Faster R-CNN(ResNet-50+FPN)[21]的检测效果中有更多冗余框。特别是对于小物体,同一物体基本上具有两个检测框,如图4(d)所示。通过与先进目标检测算法对比,本文提出的改进SSD算法无论是在模型的推断速度还是mAP上都处于先进的水平。
图4 本文算法与先进检测算法效果对比Fig.4 Comparison of effect of algorithm in this paper and SOTA detection algorithm
表4 本文改进算法与先进目标检测算法实验对比Table 4 Experimental comparison between improved algorithm in this paper and SOTA object detection algorithm
本文通过对SSD算法改进骨干网络,加入特征金字塔网络,使用Soft-NMS以及调整先验框尺度四个方面以适应机场场面监视环境。实验结果表明,本文算法获得了在轻微降低推断速度的情况下,大幅度提升检测精度,特别是针对难以正确检测的人员类目标。