钱 坤, 李晨瑄, 陈美杉, 王 瑶
(1. 海军航空大学岸防兵学院, 山东 烟台 264000; 2. 中国人民解放军32127部队, 辽宁 大连 116100)
近年来,随着科技进步和技术革新,海上作战形式有了新的变化,智能化、小型化、无人化、精确化已成为趋势。同时,在大国博弈的背景下,以威慑为战略目的,以失能为战术目标的精确化打击,将成为双方展示实力的重要手段。
水面舰艇作战过程中,中、远段突防可以依托武器装备的小型化和集群化对敌拦截武器系统施加压力,所以末端突防阶段的精确制导能力成为打击能否成功的关键。在末制导技术中,图像制导具有被动探测、抗电磁干扰、成本低廉、设备体积小巧等优势。同时,由于可见光图像包含更加丰富的颜色和纹理细节,也非常适合作为精确识别的信息来源,可有力支撑精确化打击的实施。
由于计算机图形处理器算力的限制,早期的图像识别有着很强的手工设计痕迹,其解决问题的过程大致可以概括为区域选择、特征提取和分类识别3个步骤。区域选择多基于滑动窗口方式;特征提取主要依据目标颜色、纹理,设计专门的提取算法,典型方法有尺度不变特征变换(scale-invariant feature transform,SIFT)和方向梯度直方图(histogram of oriented gradients,HOG);分类识别主要应用支持向量机(support vector machine,SVM)或AdaBoost。这种方法泛化能力差,难以在实际问题中实现多类别的、大数据量的、实时准确的检测识别。2006年,深度学习思想的提出指出了多层人工神经网络具备强大的特征学习能力,即从训练模型中所提取的特征能够更本质地表达输入图像具备的特征,从而解决了特征可视化和分类问题。同时,人工神经网络可以对输入图像进行分层级地表达,这样可以显著降低多层人工神经网络的训练难度,正式开启了深度学习领域的研究。
卷积神经网络(convolutional neural network,CNN)的引入,解决了滑动窗口选择和人工特征提取的问题,使得目标检测的实时性和准确性有了大幅提升,其中最具代表性的有两类算法,一是基于候选框的两阶段检测,如区域CNN(region-CNN, R-CNN)算法,Fast R-CNN,Faster R-CNN,基于区域的全CNN(region-based fully CNN, R-FCN)算法以及Mask R-CNN。二是基于免候选框的单阶段检测,典型的有单次多框检测器算法(single shot multibox detector, SSD),Retina-Net以及YOLO系列算法。2015年YOLOv1被提出,其核心思想与Faster R-CNN类似,将整幅图片作为网络的输入,并直接在输出层实现边界框位置和分类的确定;随后的YOLOv2在采用了批量归一化、高分分类器和先验框等优化策略后,实现了速度、准确率和识别对象类别数量上的提升;YOLOv3的结构更加复杂,引入了特征金字塔网络(feature pyramid network,FPN)和darknet-53网络,并允许改变网络结构以权衡速度与精度,计算速度大幅提高;YOLOv4的网络架构变化很大,通过大量的调参试验,在输入网络分辨率、卷积层数和参数数量间找到最佳平衡,实现了综合性能的提升;YOLOv5在网络轻量化上贡献明显,速度更快,也更加易于部署。
基于卫星遥感合成孔径雷达(synthetic aperture radar,SAR)图像的海上舰船识别已经比较成熟,但无论是星载还是机载,所获取的SAR图像多为俯视视角,对于反舰武器掠海攻击来说借鉴意义不大。同时,由于SAR成像机理限制,难以实时成像和对动目标高质量成像,因此并不适用于图像制导。在小型化、集群化的突防武器上使用可见光图像制导,利用丰富的图像信息进行舰船要害部位检测识别,而后实施高精度的打击使敌舰失能,就成为一种可行的战术思路。
在基于水平视角的舰船目标识别研究中,文献[24]使用了传统的HOG+SVM方法,经过图像预处理、HOG特征提取训练以及SVM分类器训练来检测船舶目标;文献[25]则利用类FCN全卷积网络,能够接受任意尺寸图像的输入;文献[26-27]分别使用了YOLOv2和YOLOv3,取得了较好的效果。
本文在YOLOv5网络架构基础上进行了深度优化,在原有的空间金字塔池化(spatial pyramid pooling,SPP)网络中引入了随机池化的多卷层,进一步提升了识别精度;运用双向FPN(bi-directional FPN, BiFPN)进行多尺度特征融合,以提高特征融合效果,进而优化小目标检测能力;使用指数线性单元(exponential linear unit,ELU)函数作为激活函数,加快了收敛速度,并提高了模型的鲁棒性。同时,针对之前的舰船目标识别研究普遍将舰船视为一个质点,不区分具体打击部位的情况,在本文的目标识别过程中,同时对几何形状明显和相对位置固定的舰船关键部位进行精确识别,为海上精确打击作战提供了有益借鉴。
YOLOv5的网络架构整体上与YOLOv4比较相似,从结构上大致可以分为输入端、骨干段、颈部段和头部输出端4个部分,具体结构如图1所示。
图1 YOLOv5网络结构示意图
与YOLO之前版本不同的是,YOLOv5实现了网络架构的系列化,有YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x这4种结构,结构的变化是通过调节深度倍数和宽度倍数实现的。通过在每个跨阶段局部网络(cross stage partial networks,CSPN)中设置不同的残差组件数量,得到不同深度的网络;在聚焦结构和每个CSPN设定不同数量的卷积核,得到不同宽度的网络,表1是YOLOv5系列网络结构的参数。
表1 YOLOv5系列网络结构的深度和宽度倍数参数
随着网络深度和宽度的增加,其泛化学习能力、特征提取能力和特征融合能力也会随之增强,代价是计算时间会有所增加。通过这样灵活的设定,可以根据具体需求,在检测速度和准确性间找到平衡。
在输入端主要有如下几项工作:一是基于马赛克算法的数据增强,将4张图像分为一组,经过随机缩放、拼接或叠加合成一幅图像进行后续训练,目的是丰富数据集并缩短训练时长,经验证也可以降低内存的占用率。二是自适应锚框计算,训练中,输出的预测框与真实框进行比对,通过计算两者之间的交并比得到偏移量,反向迭代后,得到最适应数据集的锚框大小。三是自适图像片缩放,输入图像的尺寸是不一样的,在YOLOv5中常用的尺寸有416×416,608×608,640×640等,通过等比缩放并用黑边填充,得到尺寸统一的输入图像。
在骨干段网络,采取聚焦结构来裁剪输入图像,将数据切分为4份,每份数据都相当于在2倍下采样下得到,在纵向通道进行拼接,之后进行卷积运算。以YOLOv5s为例,原始的640×640×3的图像输入聚焦结构后,经过切片变成320×320×12的特征图,再经过32个卷积核的卷积运算,得到320×320×32的特征图。而在YOLOv5m架构中,则有48个卷积核,所以经过聚焦结构后输出为320×320×48的特征图,YOLOv5l,YOLOv5x也是同理。而在特征生成部分,则沿用YOLOv3的SPP网络来完成。
在颈部段网络,应用路径聚合网络(path-aggregation network,PANet)进行特征融合,PANet是在FPN基础上增加了一条自底向上的信息流通路,缩短了信息传输路径,旨在使准确的底层定位信息能够增强到整个特征提取网络。
损失函数的选取对于评估预测准确性至关重要,早期的交并比损失函数(intersection over union loss, IoU Loss)设计比较简单,只计算预测框与真实框交集面积与并集面积的比值,但实际情况是这个比值并不能完全反映预测框与真实框的相对位置。在头部输出端,通过引入中心点距离和宽高比两个参数后,形成了完全IOU Loss(complete IOU Loss, CIoU Loss)。
(1)
(2)
(3)
式中:是预测框与目标框的中心点距离;是最小外接矩形对角线长度; 和分别是是预测框与目标框的宽高比。YOLOv5目标检测流程如图2所示。
图2 YOLOv5目标检测流程图
算法基于YOLOv5网络模型,兼顾精度与速度,网络轻量化优势突出。输入图像尺寸灵活,经自适应缩放后统一为640×640后进入聚焦结构,经过多层卷积运算后,进入随机池化SPP网络,进行图像下采样,降低维度,减少网络参数,增大卷积核的局部感受野;再进入BiFPN结构,进行不同尺度下的特征融合,旨在进一步减少冗余计算,提升后续检测精度;同时在网络中应用ELU激活函数,代替带泄露线性整流函数(leaky rectified linear unit, Leaky ReLU),起到抑制噪声、加快收敛速度并提升模型鲁棒性的作用。算法整体框架如图3所示,图中Conv意为卷积。
图3 算法整体架构
YOLOv5延续了YOLOv3中的SPP网络,在SPP结构中,使用最大值池化进行运算。池化的目的是将区域中的信息进行压缩,从而完成信息的提取和抽象,通过池化运算能够达到数据降维、特征压缩、扩大感受野以及实现不变性(包括平移、旋转和尺度的不变性)。所以在设计池化运算的时候要在简化运算的基础上尽量减少特征图中信息映射的丢失。3种典型池化方法如图4所示。
图4 3种典型池化方法
池化运算中,最为常用的是平均池化和最大值池化,前者可以输出子区域内特征值的均值,能够更多地保留背景信息,后者输出子区域内特征值的最大值,强调输出图中最强烈的部分,但对于差异性不明显的情况容易造成特征信息的丢失。随机池化介于两者之间,思路是通过对像素点按照数值大小赋予概率,即数值大的被选中的概率也大,这样的设计在平均意义上与平均池化相近,但在局部信息上,依旧服从最大值池化的规则。
首先计算池化区域的统计和∑=,用每个特征值去除这个统计和,从而得到每个特征值的概率值=∑∈,之后按照这个概率值进行随机采样,从而实现随机池化,如下式所示:
=,~P(,,…,||)
(4)
式中:是采样的窗口大小;为被采样的特征值;为按照随机选择的数值。
在SPP结构中应用随机池化,改进后的随机池化SPP结构如图5所示。
图5 随机池化SPP结构图
伴随YOLO架构的发展,模型愈加复杂,网络不断加深,所提取的特征语义维度也越来越高,但每层网络都会造成一定程度的特征丢失,这就需要对在不同尺度上提取的特征进行融合。YOLO架构的多尺度特征融合经历了从类FPN,FPN,再到PANet的不断优化改进,从原理来看,浅层网络拥有更高的分辨率,涵盖了更准确的位置信息;深层网络感受野更大,涵盖更多的高维语义信息,对目标的分类贡献更大。所以优化不同尺度信息融合效果就成为提升网络架构的一种方法。
单阶段目标检测算法面临的问题是无法通过一个单一阶段的特征抽取得到不同尺度的特征。在骨干段抽取生成的特征,按照阶段进行划分,记作、、…、,数字代表图像分辨率减半的次数,如表示第4阶段,输出为原图像116尺寸的特征图。
之后由上至下逐层进行特征融合,输出的记作,这个过程可以用方程表示为
=(,+1),∈{3,4,…,6}
(5)
YOLOv5在颈部段应用了PANet进行特征融合,PANet结构的特点是在到层建立了自下而上的融合链路,加强了底层强定位特征的向上传递。由Google的大脑团队在2020年提出的EfficientDet目标检测网络中首次应用了BiFPN多尺度特征融合,相对于PANet,BiFPN主要的改进有3点:减少了部分节点,BiFPN中删除了入度为1的节点,因为这样的节点相较于前一节点没有额外信息,可以减少冗余计算;增加了跳跃链接,使输出层不但能够得到自下而上已经参与特征融合的信息,还保留了原始节点未经融合的信息;形成了融合模块,可以作为整体继续参与堆叠,做进一步融合,各层关系如下式所示:
(6)
通过这样的设计,理论上可以实现精度的小幅提升和运算量的大幅降低,这对于设备空间极为有限,运算能力并不突出的弹载装备来说具有很大的现实意义。PANet结构和BiFPN结构如图6所示,其中,为各层的中间特征。
但是湿式电除尘器运行温度在烟气的露点以下,内部烟气、液体具有强烈的腐蚀性,因此,在选材时必须考虑采用抗腐蚀性能强的材料,以保证湿式电除尘器正常运行和使用寿命。
图6 PANet结构和BiFPN结构
激活函数的设计在神经网络设计中非常重要,其特点是具备非线性,可以决定神经网络的感知机制是否触发,同时,这种非线性也赋予了深度网络学习复杂函数的能力,在YOLOv5网络架构中的卷积模块中应用了Hard-Swish激活函数,用分段函数可以表达为
(7)
在CSPN模块中应用了Leaky ReLU激活函数,文献[35]中提出了一种对Leaky ReLU函数的进一步优化方法。
(8)
如图7所示,ELU函数有效融合了S型曲线函数(Sigmoid)和线性整流(rectified linear unit,ReLU)函数的优点,其在零点的右侧呈线性,可以进一步缓解梯度消失问题;在零点左侧是非线性的,使其对输入变化或者噪声有着更优异的鲁棒性。并且由于ELU函数的输出均值接近于0,所以在收敛速度上也有一定提升。在YOLOv5网络架构中用引入ELU函数代替原有的Leaky ReLU函数作为激活函数。
图7 ELU激活函数图像(α=1)
基于水平视角或较低视角的海上舰船可见光图像目前尚无权威数据集,作战舰艇图像数据因涉密原因也比较难以获取,所以本文所用数据集主要由两部分组成。一部分是利用基于Python脚本的爬虫技术爬取图片素材网站中的目标图像得到的,主要过程是在素材网站中搜索“航空母舰”“宙斯盾驱逐舰”“渔船”“货轮”等关键字,得到含有大量搜索结果的网页及其源代码,分析获取目标图像的统一资源定位符(uniform resource locator,URL),并依照URL进行下载。另一部分是人工实地拍摄的,包括长焦镜头拍摄和无人机掠海航拍,两部分经过人工筛选后汇总,所建立的数据集共有图像1 544幅,包含民用船只558幅、作战舰艇区分航空母舰和驱逐舰各636幅、741幅。图像大小为1 200×800至300×200之间,经自适应缩放后统一为640×640大小。部分样本如图8所示。
图8 部分样本
在反舰装备智能化、小型化、集群化的发展方向上,以命中舰艇为精度的攻击已经难以满足要求,因为小型化的反舰武器毁伤能力不足,难以对舰船造成实质性的伤害,所以必须命中舰船的要害部位,比如攻击雷达或天线,可以瘫痪舰艇的侦察、火控和通信能力;攻击舰艇驾驶舱,可以直接瘫痪指挥中枢,实施舰上“斩首”;攻击船尾甲板下部舵机舱,可以破坏其机动能力;攻击水线部位,则能够造成船身进水,直接威胁舰船安全。
在以上要害部位中,可以优先选择舰艇的相控阵雷达阵面,一方面是相控阵雷达是现代舰艇的标配,其阵面天线多为形状规则的多边型,且舰艇配有多个阵面,正向或是侧向突防时都能明显观察。还可以选择舰岛上方桅杆,这个部位敏感器件密集,位于舰船的最高点,相对位置突出。舵机舱所占空间较大,允许的攻击误差也相对较大,且位于舰艇尾部甲板下方,位置也比较明显。驾驶舱位于舰岛中上部,单层(驱逐舰)或多层(航空母舰)的联排的舷窗是其明显的标志。
综上,在具体标注过程中,选择在驱逐舰上标注桅杆、相控阵雷达、驾驶舱和舵机舱;在航空母舰上标注桅杆和驾驶舱;民用船只不标注关键部位。经统计,共标注带有关键部位的作战舰艇图像1 052幅,每幅作战舰艇平均标注367个关键部位。数据集格式使用PASCAL VOC格式,并运用开源工具labelImg进行手工标注。图9所示为标注样例。
图9 标注样例
在关键部位尺度上,符合小尺度关键部位(小于50像素)的占81%,中尺度关键部位(介于50至130像素之间)的占17%,大尺度关键部位(大于130像素)的占2%,所以对小目标的检测能力是模型优化的关键。
在数据集的划分上,使用脚本文件将全部图像按照8∶1∶1的比例随机划分成训练集、测试集和验证集,具体数量为训练集1 237幅、测试集149幅和验证集158幅,标注数据如表2所示,实验的具体环境配置如表3所示。
表2 数据集标准情况统计表
表3 实验环境
主要的训练配置参数设置如下:训练周期为100,批处理量为16,图片尺寸为640×640。
在识别精度方面采用混淆矩阵中的查准率和召回率作为基本指标(查准率主要评估预测是否准确,召回率主要评估查找是否完全),依据查准率和召回率计算平均精度均值(mean average precision, mAP),作为精度的最终评价指标,用以衡量训练得到的模型在所有类别上的综合表现,并将交并比为0.5作为判别检测成功与否的阈值。
在运算速度方面采用每秒传输帧数(frames per second, FPS)和每秒浮点运算次数(floating-point operations per second, FLOPs)进行评价,一方面可以考察是否满足动态实时检测识别的要求,另一方面可以考察弹载设备的计算能力是否可以满足模型的运算负载。
在模型大小方面主要考察参数量的大小,参数量完全由模型结构所决定,即一旦网络结构确定,参数量也随之确定。同时,由于参数以32位浮点数格式存储,所以模型文件大小约等于参数量的4倍。
同时,为了检验网络模型鲁棒性表现,还设计了不同光照条件下的检测识别实验,为得到不同光照条件下的图像,对原始图像曝光度进行调节,得到一系列过曝和低照度情况的图像,再用原YOLOv5s网络和改进后的YOLOv5s网络分别进行检测,并进行效果对比。
通过训练,得到相应的训练权重文件,使用权重训练文件对图像进行识别,结果如图10所示。图10(a)为待检测的输入图像,图10(b)为输出的检测结果,检测结果中对于舰船目标,目标框准确标示目标外沿,对于舰船上小目标的检测清晰准确,对于存在部分遮挡情况的目标也能够准确识别。图11和图12是在不同光照条件下的检测识别实验结果,改进后的YOLOv5网络在图像存在明显过曝或低照度条件下的检测效果都比较稳定,原YOLOv5网络在低光照情况下,先出现了漏检情况,在图11(a)最右图中检测出了两处相控阵雷达天线,而在图12(a)最右图中漏检了一处,说明改进后的网络模型鲁棒性有所提升,对于光照的变化不敏感。为客观验证算法性能,在相同实验平台,同一数据集情况下,对几种主流目标识别网络性能进行了对比,准确率和处理速度情况如表4所示。
图10 实验结果示例
图11 本文算法光照鲁棒性实验结果
图12 原算法光照鲁棒性实验结果
表4 在舰船关键部位数据集上几种算法的检测精度和速度
本文算法对比传统的HOG+SVM方法有着大幅提升,mAP提升近13%,速度提升了15 FPS;对比同为单阶段检测的SSD算法,mAP提高4.79%,速度上略有不足,但均能满足实时性检测要求;对比两阶段检测的Mask R-CNN算法,mAP提高3.48%,速度上近乎翻倍;对比单阶段免锚框的CenterNet-Hourglass(simple)算法,速度小幅提升,mAP提高4.88%;对比同系列的YOLO算法,在mAP和速度上也均有提升,特别是对照原YOLOv5s算法,mAP提高了3.03%,速度提升了2 FPS。在对含有舰船目标的MP4格式视频文件检测试验中,所训练模型能够准确识别舰船及其关键部位,且跟踪稳定流畅。
分析7类目标的识别结果,民用船只、驾驶舱和舵机舱在各算法中的识别正确率普遍较低,主要原因可能是民用船只形态各异,渔船、客轮、货轮、液化天然气船外形差异巨大,在数据集较小情况下,训练的效果比较一般;驾驶舱联排舷窗属于小目标,检测相对较难;舵机舱位于船尾且较为低矮,在从船头的正视角观察时,容易产生大部分被遮挡的情况。
由于YOLOv5模型轻量化的特点,加之YOLOv5s对模型深度和宽度的精简,原有模型的参数量仅有7.5 M,显著优于其他算法,改进型算法在参数量方面进一步缩减了2.7%。在运算开销上看,YOLOv5模型比其他算法的算力要求明显更低,改进型算法在原有算法基础上又降低了2.2%。
表5 各算法的参数量和运算量
在实验测试中发现,当舰船置于复杂岛岸背景下,漏检、错检概率明显上升,如图13所示。但复杂岛岸背景下的精确化打击有着极为重要的意义,甚至可能是我方面临的主要海战场环境,这说明模型还需进一步提升优化。如图13(a)中漏检了岸边舰船目标,并错检了岸上停泊的轿车,图13(b)中将船舶停靠的泊位错检成了民用船只。
图13 复杂岛岸背景下检测示例
算法同时对原YOLOv5s模型的特征生成、特征融合和激活函数进行了改进,为评估不同模块改动和不同模块组合对于算法性能优化的程度,设计了消融实验,表6为消融实验数据。在相同的实验环境下,在舰船目标及其关键部位数据集上进行实验统计。数据表明,每个模块单独应用均能对最终结果产生正向优化,其中BiFPN对于识别准确率的贡献相对较为明显,mAP提升0.78%,ELU激活函数对于速度的提升相对显著,提高1 FPS。不同的组合对模型整体表现也基本呈现正向优化。3个模块的组合应用对于最终的识别精度和处理速度优化效果最好。
表6 消融实验数据
图14列出在消融实验下检测识别的效果对比。左列为消融实验检测识别结果,右列为本文算法检测识别结果,实验结果表明,消融实验组多次出现漏检,本文算法组准确识别出所有舰船目标及其关键部位。
图14 消融实验对比示例
在武器智能化、小型化和集群化的反舰作战背景下,实现对舰船及其关键部位的识别是精确化打击的基础性工作。针对现有识别算法仅将舰船视为质点而不区分部位的情况,首先构建了舰船及其关键部位数据集,针对弹载设备算力有限的情况,提出了基于YOLOv5的改进型轻量化舰船目标及其关键部位识别算法。
改进了基于随机池化的多卷积层SPP网络,优化特征提取效果,在突出强烈特征的同时,也能对差异化不明显的特征给予一定保留。在mAP指标上相较主流的SSD、Mask R-CNN、CenterNet-Hourglass(simple)分别提升4.79%、3.48%、4.88%,较同系列的YOLOv2、YOLOv3和原YOLOv5s模型也分别有4.93%、3.35%和3.03%的提升。
使用BiFPN结构进行多尺度特征融合,减少冗余计算,降低计算负载。在以轻量化为特点的YOLOv5算法基础上进一步压缩了2.7%的参数量。使用ELU函数代替原有的Leaky ReLU函数作为激活函数,加快收敛速度,提升了模型鲁棒性。算法能够满足实时性要求,运算开销较低,适合移动部署。
目前,海上舰船目标精确识别依旧面临很多问题,如移动平台采集图像成像质量不佳;海上气候条件恶劣,容易受烟、雾、不良光照干扰,从而丢失目标纹理细节,对要害部位识别造成困难。以上问题需要对图像进行有针对性的预处理,完成图像增强和重建等工作。在实验测试中还发现,舰船在临近岛岸情况下漏检、错检概率明显增加,说明在复杂背景下的检测识别能力还有提升空间,以上问题将是后续工作的重点研究方向。