朱兴动,汪 丁,范加利,王 正,黄 葵
1.海军航空大学,山东 烟台 264001
2.海军航空大学 青岛校区,山东 青岛 266041
随着计算机视觉技术的迅速发展,相对成熟的理论促进了工程应用的快速落地,图像检测技术在交通以及工业制造领域都已经得到了广泛应用,也是装备自动化的核心技术之一[1]。航母作为军事大国的象征,其战争实力和威慑力都得到了世界各国的认可,作为海上舰载飞机起降平台,其特点主要表现为舰面空间有限,人员及设备繁多,电磁环境复杂多变,因而传统方法很难满足各种环境下目标检测与识别的要求。舰面多类目标的检测与识别是舰面保障工作的数据入口之一,将为舰面目标定位以及路径规划提供目标信息支撑,对保障舰面装备人员安全和提升舰载飞机的调运效率有重要的意义[2]。
传统的目标检测算法都采用人工设计的特征进行检测,存在较多短板,不仅在候选框的选取上采取低效的枚举方法,而且需要大量的时间和算力。面对场景复杂多变的舰面,人工设计的特征在此类场景下的鲁棒性较差,难以满足要求。近年来,深度学习算法在图像目标检测领域得到了广泛的应用。当前,满足在复杂背景条件下检测与识别要求的深度学习算法主要有R-CNN系列(region convolutional neural network),SSD 系列(single shot multibox detector)以及YOLO(you only look once)系列[3]。R-CNN系列是基于Two-Stage模式,首先产生目标候选框,然后再对候选框进行分类和回归处理,这种模式精度较高,但同时每个候选区域进行特征提取会产生大量重复的运算,速度较慢,无法满足后期动态目标检测实时性的要求。YOLO 系列和SSD 系列都属于One-Stage 模式,这类算法直接进行分类和回归分析,检测速度更快,如图1所示,但SSD系列会随着图片规格的增加运行效率显著下降。在实际应用中,往往要求在精度不太低的情况下同时满足实时检测的需要,因此YOLO系列使用得更加广泛。
图1 YOLOv3算法检测流程Fig.1 Detection process of YOLOv3 algorithm
YOLO 系列算法是Redmon 等人[4]提出的目标检测算法,目前以发展到V4 版本。YOLOv3 的网络结构主要是有骨干网络(Darknet-53)和特征金字塔网络(FPN)网络以及输出层[5]。其中,Darknet-53网络是V2版本中Darknet-19 的替代品,采用使用CNN+BN+LeakyReLU(convolutional neural networks,batch normalization,LeakyReLU)的卷积块代替池化操作实现降采样,构成了一个53 层的卷积神经网络,提取出13×13、26×26 及52×52尺度的特征层,可以在实现降低计算量的同时减少了池化产生的低级特征的丢失。
在网络结果输出时利用非极大抑制算法对输出的预测结果进行筛选,对每一个预测中心仅保留置信最高的唯一候选框作为最终的目标检测框,并在图像上绘制出目标的预测框,网络结构如图2所示。
图2 YOLOv3算法结构Fig.2 Structure of YOLOv3 algorithm
YOLOv3算法已经是一款较为成熟的算法,其在检测速率和准确度上都有较好的成绩。但YOLOv3 原作者检测的目标主要是汽车、人以及街道等目标和背景,而对于特定的目标识别效果并不能达到原文效果,因此仍需要根据目标和背景等场景信息进行针对性的增强。舰面场景复杂且存在飞机、车辆以及人员等多个种类,各类型号也存在差异,而且作为移动平台对光照等环境因素的鲁棒性要求较高。根据舰面目标的分布情况,将场景分为单一目标,多目标以及密集目标,如图3所示。通过实验分析,YOLOv3算法在单一目标识别上基本正确,在多目标识别上会出现远处目标丢失的情况,而在密集目标上出现了大量漏检和误检的情况。因此,本文针对检测舰面复杂场景下的多类目标做了具体增强。
图3 三类场景Fig.3 Three kinds of scenarios
深层神经网络训练需要大量训练数据才能取得相对较为理想的效果,但在舰面数据样本有限的情况下,可以通过数据增强丰富样本的信息,避免训练时出现过拟合,提高模型的鲁棒性和泛化能力[8]。
数据增强主要是通过对图片的大小、比例、亮度、对比度、饱和度以及色调等参数进行调整,利用不同形状和色彩的图像降低模型对实验条件的依赖性,提高模型在不同环境下的检测能力[9]。常用的数据增强方法有CutMix 和Mosaic 等。CutMix 的处理方式比较简单,在基本的图片变换基础上,随机生成一个裁剪框Box,将黑色遮挡框填入该区域形成新的样本,计算损失时同样采用加权求和的方式进行求解,如图4(c)所示。Mosaic方法是一次读取4 张图片,分别对每张图片进行翻转、缩放和色彩变换等操作后,将4张图片和图中的标注框进行组合,在同一图片中实现多背景下多目标的组合,如图4(b)、(d)所示。在Mosaic 数据增强方法中,在原数据集的范围内随机选取一张图片,并将其后的3张图片一起进行图像处理后拼接,该方法存在随机组合不充分及重复选取等问题。
图4 数据增强效果Fig.4 Effect of data argumentation
本文针对舰面监控区域背景类别多、环境变化大、目标互相遮挡较为严重的情况,提出了一种数据增强的组合方法,同时注重背景复杂和目标遮挡两个方面。
其中,Ai表示第i张增强的图,Sq表示q第类数据集,q1和qn表示第q类数据集的始末序号,Bk表示图像变换组合,k表示变换组合方式。
在网络模型读取图片时,通过改进图片选取方法,根据设定图片的组合方式,从数据集中独立选取四张图片,翻转、缩放、色域及遮挡变换后组合成一张新的图片送入网络中训练,如公式(2)所示。将目标根据类型分为q类数据集,在训练时可以根据需要设定增强的目标类型,也可以对所有类目标进行增强,如公式(3)所示。
通过改进数据增强策略,使图片的选取方式、变换方式以及组合方式都得到了丰富,以增强网络模型的鲁棒性,也是解决小样本训练的一个有效途径[6]。
由于各类舰面目标尺寸及比例差异都较大,而YOLOv3 算法中原始设定的先验框尺寸只要是面向行人和汽车等通用目标,而无法满足舰面目标检测的要求[10]。因此需要使用K-means 聚类算法[11]对舰面目标数据集进行聚类分析,得到与之适配的先验锚框尺寸(anchor box)。
先验锚框是从训练集的所有ground truth box中统计出来的在训练集中最经常出现的box 形状和尺寸。YOLOv3算法沿用了YOLO算法中的anchor box方法,但是将数量增加到9个,输出3个不同大小的特征图,从小到大分别对应深层、中层和浅层的特征。特征图的尺寸越小,感受野越大,利于检测大尺度物体,而浅层特征图相反,感受野较小,利于检测小物体。通过聚类分析调整anchor box 的尺寸大小从而可以使网络在训练时具有更快的收敛速度,用于初始化预测边界框的宽度和高度,同时也可以提高目标检测的精度[12]。
在VOC 数据集中,标注完成的图片目标主要有括xmin、ymin、xmax、ymax这4 个位置参数,由此可以获得目标的宽w与高h,如公式(4)和(5)所示:
对数据集中所有的目标信息进行遍历,获取全部宽高信息后,随机选取K个点作为聚类分析的初始聚类中心,本文中K值根据需要设定为9。然后将计算每一个目标到每一个聚类中心的距离。在算法中利用目标和聚类中心的IoU 值衡量距离关系[13],当IoU 的值越大时,表示距离d越小,如公式(6)所示:
依次比较每一个对象到每一个聚类中心的距离,并将对象分配到距离最近的聚类中心所在类簇中,至此形成了9 个类簇。然后将每一个类簇中所有对象的各个维度的均值设为新的类簇中心,即为下一轮聚类的中心,如公式(7)所示:
其中,yt表示第t个聚类的中心,| |Ct表示第t个类簇中对象的数量,xi是Ct类簇中的第i个对象,t表示宽与高两个属性。
根据以上顺序继续迭代,进行目标点的分配和类簇中心点的更新,直至类簇中心点的变化趋于收敛,或者达到指定的迭代次数。
本文对舰面数据集聚类分析得到了9个聚类中心,归一化后的聚类分布如图5 所示。聚类分析中因为初始聚类中心的不确定性等因素,每次聚类分析的结果并不一致。为消除随机初始聚类中心带来的波动,因此在实验中对数据集进行了10 次聚类分析,剔除波动较大的数据后取均值,数据平均的总体方差控制在0.1以下,得到了较为稳定的结果,如图6 所示,与目标的匹配精度由原始anchor box的73.61%提高到78.94%。
图5 聚类分布Fig.5 Clustering distribution
图6 平均IOU变化Fig.6 Average IOU changes
经过聚类分析后得到了9组宽高数据,按照聚类框的大小分为3个组,特征图为13×13时感受野最大,因此采用最大的anchor box尺寸,特征图为52×52时感受野最小,因此采用最小的anchor box尺寸,对应结果如表1所示。然后将anchor box 尺寸根据对应特征图的大小进行调整后便可以更新到模型参数中进行训练。
表1 调整后的先验框Table 1 Adjusted prior box
相对于舰面单目标和多目标的检测,密集场景的出现给算法带来了新的问题。当固定区域的目标增加到一定数量时,尺寸和形状不同的目标势必会出现互相遮挡的问题[14]。传统的YOLOv3 算法在检测框选择上采用的是非极大抑制(non-maximum suppression,NMS)方法[15],当存在被遮挡物体时,算法会识别其为重叠框并将其置信度归零,导致其无法检测出,如公式(8)所示:
其中Si表示当前检测框的得分,Nt为IOU的阈值,M为得分最高的检测框,bi表示当前检测框,σ为人工设定的参数。
在使用软高斯函数的时候,σ参数的设定将会决定算法对重复框的惩罚强度。在目标单一时,较小的σ参数会有较好的效果,但在复杂的遮挡情况下,过小σ同样会将遮挡目标的得分惩罚至阈值以下导致丢失[17]。为了解决单一目标和复杂目标状态下不同的σ参数抑制效果不同的情况,文中设定一个线性函数,根据图像中的目标密集情况进行对参数调整,使其在简单情况时具有较好的抑制能力,在复杂目标情况时减少因过度抑制导致的目标丢失,如公式(11)所示:
其中σ0为初始参数,N为该类目标的检测框数量,ω为比例系数。
在图7(a)中,图片中间plane1型灰色目标及右上角plane1型灰黄色目标没有被识别出来,在经过改进的非极大抑制处理后,重叠框被惩罚而被遮挡目标被识别出来,如图7(b)所示。通过非极大抑制算法的改进,有效减小了因阈值设定导致检测目标漏检或者目标重复识别等问题,有效提升了网络的检测性能。
图7 改进的非极大抑制效果对比Fig.7 Comparison of improved non-maximal inhibitory effects
本实验环境根据等比目标模型进行搭建,对相关模型进行自行组装上色,尽可能还原真实场景。实验中使用了多个舰载飞机模型以及配套的牵引车和地勤工作人员模型,具有相对复杂的场景信息。通过工业相机(型号为GigE GE500C-T)在多个角度进行拍摄,获取分辨率为1 280×720的.jpg格式图像。再通过YOLO系列算法常用的数据集标注工具LabelImg 手工标注图像中目标的矩形框坐标以及标签值,并生成相对应的.xml配置文件。总共采集了2 000张左右不同角度和状态下舰面目标的图像,各类目标的数量如表2 所示,并将其转化为目标检测常用的PASCAL VOC数据集格式送入网络训练。
表2 实验数据集Table 2 Experimental dataset
本实验中网络的训练环境:系统是Ubuntu16.04,CPU 是Intel Xeon Silver 4110,GPU 是NVIDIA P4000(8 GB 显存),深度学习框架是TensorFlow 1.10,Python版本为3.6,迭代轮数为50,初始学习率为0.000 1,结束学习率为0.000 001,设置5 种类型的检测目标,训练的Loss曲线如图8所示。
图8 Loss曲线Fig.8 Loss curve
为了评价舰面目标检测网络的有效性,选取以下指标进行评价。
(1)查准率(precision,P)和召回率(recall,R),其中查准率表示网络检测到正样本数量占检测到所有样本的比率,召回率指网络检测到的正样本数量占标记真实样本数量的比率。计算公式如下:
其中,真正样本(ture positive,TP)表示检测到的目标类别与真实目标类别一致的样本数量;假正样本(false positive,FP)表示检测到的目标类别与真实目标类别不一致的样本数量;假负样本(false negative,FN)表示真实存在但未被网络检测出的样本数量。
(2)平均准确率均值(mean average precision,mAP)是一种多标签图像分类任务的评价方法。理想的检测网络的准确率和召回率应当都保持在较高的水平,但实际上随着阈值变化两个值并不都是正相关变化的,召回率与查准率呈现负相关变化,所以通常采取的方法是将准确率和召回率所形成的PR(precision-recall)所围成的最大面积作为最优解,围成的面积便用AP 来衡量,而所有类的AP的均值就是mAP。AP和mAP的计算公式为:
其中P(R)为准确率-召回率曲线,0~1表示阈值变化范围。
(3)帧率(frames per second,FPS)是每秒钟预测图片的数量,用来表示算法的实时性。
为了进一步测评该模型的性能,对比了Faster R-CNN算法、原YOLOv3算法和增强的YOLOv3算法。运用相同的策略和数据集训练模型,对每种模型进行多次测试并取均值,以查准率、召回率、准确率和帧率作为检测效果的评价指标,结果如表3 所示。实验结果表明,增强的YOLOv3算法在舰面复杂场景下,相比于原YOLOv3算法,在满足实时性要求的前提下,整体准确率得到了较大提升。
表3 算法效果对比Table 3 Comparison of algorithm effects
在检测效果上,对比图9和图10,图9中漏检了右上角远处的plane1、图片中间被遮挡的两个plane3 和小目标person 等4 个目标,且在左下角的plane1 处存在重复检测,在图10 中两个问题得以解决并且检测框的位置和大小也更加合理。其中,单个目标输入图像及3个通道的卷积层仿真对比如图11所示。
图9 原YOLOv3效果Fig.9 Original YOLOv3 effect
图10 增强YOLOv3效果Fig.10 Enhanced YOLOv3 effect
图11 卷积层仿真图Fig.11 Convolutional layer simulation diagram
如表4 所示,增强的YOLOv3 算法在各类目标上准确率都有较大的提升,尤其是在小目标的检测效果提升较为明显。通过图12 可以看出,各类目标虽然都有较大的提升,但目标由大到小都呈现出准确率降低的趋势。
图12 算法准确率对比Fig.12 Comparison of algorithm accuracy
表4 算法效果对比Table 4 Comparison of algorithm effects %
本文共采取了3 个方面的策略对YOLOv3 算法进行了增强,网络模型性能得到较大提升。下面通过开展消融实验分析各个策略对网络模型的影响,结果如表5所示。
表5 消融实验对比Table 5 Comparison of ablation experiments%
在表5 中,YOLOv3 表示原YOLOv3 算法,数据表示采用数据增强策略,聚类表示采用聚类分析策略,非极大表示采用改进的非极大抑制方法,增强YOLOv3表示采用本文增强方法后YOLOv3算法。
在P-R曲线中,曲线上的点为某一阈值下的查准率和召回率,其显示的是分类器上查准率与召回率之间的权衡,只有在一个相对平衡点确保曲线所围成的面积最大时才能保证模型的性能最佳,或者查准率和召回率同时的提高也表现为准确率(AP)的提升[18]。
在相同阈值的情况下经过实验可以得出,数据增强方法和非极大抑制方法对召回率有较大提升,表明其在增强检测能力及减少漏检上有重要作用,而聚类方法对查准率有较大提升,表明与目标相匹配的先验框在提升查准率上的重要作用。综上所述,增强的算法通过数据增强使网络模型抗背景干扰的能力得到了改善,聚类分析让检测框的匹配准确率得到提升,而改进的非极大抑制方法有效减少了检测中因遮挡产生的漏检等问题。
本文针对舰面复杂场景下的多类目标检测问题,通过融合裁剪、色域变换、遮挡、形状变换多种方式以及分类的样本组合方式,数据增强策略使训练样本得到倍数级丰富,尤其是对小样本训练有较大帮助。通过大量实验数据获取到了总体方差在0.1以下的9类稳定先验锚框,提高了模型在训练中的收敛速度和对舰面目标物体的框选精度。改进的非极大抑制方法通过线性函数对抑制参数进行调节,有效解决了目标遮挡和目标漏检等问题,检测率提高到了95.24%,帧率达到21.5 frame/s。实验结果表明,本文提出的方法在舰面复杂场景下提高了密集目标的检测能力,也可以满足实时性的要求,且具有较好的鲁棒性。