APP下载

基于改进YOLOv5的复杂环境下小目标弹孔识别

2024-02-02飞,李

兵器装备工程学报 2024年1期
关键词:弹孔语义卷积

吴 飞,李 纶

(武汉理工大学 机电工程学院, 武汉 430000)

0 引言

胸环靶射击项目是军事实训中十分重要的环节,简单快捷的报靶流程也是研究重点。目前室内报靶环节在逐步智能化,但室外复杂环境的报靶工作,仍需依靠人工报靶员,具有较大风险[1-2]。解决室外自动报靶困难的关键在于弹孔识别与定位,室外的光照、阴影、树叶对弹孔的遮挡、靶面振动等不稳定因素都影响着识别的正确率与稳定性[3]。因此,研究出能够在复杂环境下对弹孔进行快速且精确识别的系统,对实现室外自动报靶具有重要研究意义和实际应用价值。

现阶段利用视觉技术处理弹孔图像的方式十分有潜力。王奇等[4]提出了一种基于红外图像的识别方法,利用红外图像检测子弹上靶留下的热量,结合帧间差分法识别光斑中心来判定弹孔位置,但对相距较近或重叠的弹孔识别情况较差。Zhu等[5]研究出一种基于方向梯度直方图(HOG)和支持向量机(SVM)的算法:利用HOG提取梯度特征,用SVM来区分真实弹孔和干扰噪点,并建立弹孔数据库,通过重新训练的模型对弹孔进行识别与分类。上述传统的图像处理方式十分依赖由人工提取的特征点,导致特定环境下的目标描述性好,但泛化性和适应性较差。

深度神经网络发展迅速,其可通过大量训练来学习目标对象的本质信息,在复杂的场景任务中也能更好地表达目标特征[6]。其中卷积神经网络[7](convolutional neural networks,CNN)最常应用于图像领域,主要研究内容为目标检测、语义分割、实例分割等[8]。目标检测是通过网络对目标进行定位,主要可分为2类:一类需要生成候选区再对候选区分类,以RCNN[9]、Fast R-CNN[10]为例;另一类则直接对图像进行卷积,比如YOLO[11]系列、SSD系列[12]等,具有检测速度快的优点。语义分割则是对图像进行像素级预测,分割出含有语义信息的区域块,典型代表有FCN[13]、DeepLab系列[14]。实例分割的经典网络为Mask R-CNN[15],精度高但速度较慢。弹孔属于小目标,具有携带信息少、下采样特征易丢失等特点[16],现阶段将深度神经网络与弹孔识别结合起来的研究较少,因此想要同时兼顾实时性与精确度还需进一步研究。

综上所述,本研究中选择改进后的实例分割算法对弹孔痕迹进行识别并分割,以检测速度和精度都十分优秀的YOLOv5的网络为基础,引入分割卷积层,调整网络结构与预测尺度,增加对弹孔小目标的敏感度。同时模拟训练环境对其进行测试,评估改进后模型的精度与速度。

1 数据集制作

1.1 数据样本采集

本文图像采集于6—8月份的武汉市森林公园,采集设备型号为英特尔RealSense d435i,图像保存为.JPG格式,图像分辨率为1 920×1 080。为模拟更加真实的报靶环境,采集时分为晴天、阴天和多云等天气,时间段分为清晨、正午、傍晚3个时间段,每个时间段变换角度、距离采集200张图像,一共挑选出1 200张图像。为了保证样本多样性,同时避免训练时产生过拟合等状况,图像样本基本涵盖了复杂背景中弹孔可能会出现的各种结果。比如:弹孔遮挡、弹孔模糊、树影或树叶遮挡等。图1展示了一组收集到的复杂环境下的弹孔图像。

图1 复杂环境下的弹孔图像

1.2 数据集制作与预处理

完成图片样本的基础采集后,利用Labelme软件对采集到的原始靶面图像中的弹孔痕迹进行分割,图2为训练样本及其标签示例。

图2 训练样本及其标签实例

为丰富弹孔背景,增加样本集数量,提高模型的鲁棒性,还需对原始图像进行数据增强。对每张照片随机挑选一种处理方式,比如裁剪、旋转、增加噪点、光学处理等,增强后的数据集共2 400张。按照8∶2的比例将数据集分为训练集和验证集,其中训练集1 920张,验证集480张。

2 基于YOLOv5网络结构的改进

2.1 调整输出尺度

原YOLOv5骨干网络主要通过融合深层网络信息,来增强网络语义识别能力,利用特征金字塔网络FPN(feature pyramid network)和路径聚合网络PAN(path aggregation network)对提取信息进行整合,最后输出3种尺度特征图来预测目标信息,结构如图3(a)所示。采集照片尺寸为1 920×1 080,弹孔像素尺寸在30×30~50×50范围内波动,目标像素点占原图像素点的比例小于0.012%,在小目标中属于极小类别,原有最大尺度失去预测意义,且原有小尺度已不适用弹孔目标。因此,本研究在原有特征融合金字塔网络上,增加4倍下采样的浅层特征图信息,用来补充高层语义信息中缺失的底层空间信息,增加模型对弹孔小目标位置的敏感度。在预测特征图方面,删减32倍下采样的大尺度预测图,增加更小尺度的预测特征图,增强对弹孔小目标的识别能力,结构如图3(b)所示。

图3 模型输出特征图尺度的改动

2.2 目标预测端解耦化

模型结构以YOLOv5网络框架为基础。在YOLOv5中,负责检测目标边界框的检测端是卷积核为1×1、步长为1的卷积层,同时预测目标的回归参数与类别概率。分类与回归任务同时进行,导致两者耦合产生冲突,影响网络性能。本文中网络采用YOLOX中的解耦思想对预测内容进行解耦,可以显著提升收敛速度,解耦后的具体结构如图4所示。

图4 解耦端结构

解耦结构先通过卷积核1×1,步长为1的卷积模块ConvBNSILU(Conv2D batch normalization silu)将通道个数调整为256,其中ConvBNSILU模块包含了卷积层、BN层和采用SILU激活函数的激活层。再延伸出2个并行分支,其中一个分支针对目标信息预测,另一个分支继续并行2个1×1的卷积层,分别预测目标回归参数和预测框的置信度。

2.3 添加融合ASPP结构的分割模块

经典的分割网络如FCN(fully convolutional networks),通过反卷积对特征层(feature map)进行上采样(upsampling)恢复到原图尺寸,并对像素进行分类。然而弹孔作为小目标,特征信息较少,若采用传统上采样的方式容易造成细节丢失,所以在分割解码器中融合了增加感受野的模块ASPP(atrous spatial pyramid pooling)和浅层空间信息。ASPP由3种不同尺度的空洞卷积层(dilated convolution layer)、1×1卷积层与平均池化层(adaptive avg pooling layer)构成,它可以在不丢失分辨率的情况下扩大卷积核的感受野以获取更多细节信息,有利于提高小目标的检测精度。空洞卷积层是ASPP的核心,其不仅可以扩大感受野,还可以减少目标特征信息流失。相比普通卷积层,空洞卷积采集的像素点存在间隙,间隙大小程度由膨胀因子rate决定,如图5所示。

图5 不同膨胀因子及其对应感受野

由图5可知,(a)为传统卷积层rate为1,(b)和(c)显示rate为2和3的卷积形态,等效卷积核大小分别为5×5和7×7。对于采用空洞卷积的特征层,其感受野计算式为:

RFi-1=[k+2(r-1)]+s(RFi-1)

(1)

式(1)中:RFi代表第i层感受野;k应卷积核尺寸;s应步长。取输出特征层尺寸3×3,卷积核尺寸3×3,步长设置1为例子。此时普通卷积层感受野为5×5,而rate为2和3的感受野尺寸分别为7×7和9×9,可以最大化利用像素点信息,如图4(d)、图4 (e)、图4(f)所示。

ASPP通过并联3个不同膨胀因子的空洞卷积层,来获取多尺度信息,此时特征层下采样倍数为8,膨胀因子设置为{12,24,36}。同时并联1×1卷积层与全局池化层,全局池化层通过1×1的卷积层调整通道数,再通过双线性插值还原成输入尺寸。最后拼接(Concat)5个部分并通过1×1的卷积层进行融合,详细结构如图6所示。

图6 ASPP的并联结构

分割解码器的结构流程如图7所示:先将8倍下采样的高层语义特征图送入ASPP模块中,融合上下文信息并输出尺寸不变的特征图,再以双线性插值的方式进行2倍上采样,结合主干网络同尺度的低层特征图,通过1×1卷积层进行融合,得到下采样倍数为4的特征层。接着采用相同的方法重复融合低层复杂边缘空间信息,使得特征层在涵盖复杂上下文语义信息的情况下,还能拥有良好的目标边缘检测能力。最后上采样还原到输入图片尺寸,输出分割特征图。

图7 分割解码器结构示意图

2.4 改进后网络整体结构

整体网络结构分为特征提取主干(backbone)、融合层(neck)和解码器(head)3个部分,改进后的网络模型如图8所示。其中backbone为CSP-Darknet53,为融入CSP模块后的Darknet53网络,CSP模块为示意图所标示的C3结构,具有增强网络学习能力、减少网络计算量和降低显存占用的优势。

图8 改进后的网络模型结构

Neck部分采用路径聚合网络PAN,在从底层到高层融合的特征金字塔FPN基础上增加了从高层到底层融合的部分。充分利用backbone所提取的不同层次的特征信息,增加了对小目标弹孔的敏感度。

Head部分有2个分支,分别是对特征图进行目标检测(object detection head)与语义分割(SEGMENT HEad),两者并联进行。Segment Head以8倍下采样特征层为基础,结合ASPP模块再融合2次低层空间信息,最后通过上采样生成原图尺寸的分割图。目标检测端输出3种尺度的预测特征框,分别预测中小目标与极小目标,通过非极大值抑制筛除不满足要求的预测框后,将预测结果图也还原到原图尺寸。最后将输出的分割图与目标检测框图相融合,得到每个弹孔的实例分割图。

其中模型里采用的C3结构为CSP模块变体, backbone部分C3结构和BottleNeck1的详细结构如图9(a)、(b)所示,BottleNeck1数量按下采样顺序由上到下依次为{3,6,9,3},PAN 的C3结构和backbone中相同,且BottleNeck2数量为固定值3。BottleNeck1相比BottleNeck2增加了残差连接,其余卷积核尺寸都相同,如图9(c)所示。

图9 C3具体结构及其对应BottleNeck

金字塔池化SPP模块主要用来解决目标多尺度问题,原有SPP模块通过并联3个尺寸为5×5、9×9、13×13的最大池化层来获取局部特征和全局特征。而SPPF通过串联3个尺寸为5×5的最大池化层的方式即可实现SPP的效果,运算速率却比SPP增加2倍有余,显著降低了计算量,如图10所示。

图10 改进后的空间金字塔模块(SPPF)

2.5 损失函数

本文中网络的损失函数由2部分组成,包括目标检测损失和分割掩膜(mask)预测损失为

Loss=Lobj+Lseg

(2)

Lobj=λ1Lcls+λ2Lconf+λ3Lloc

(3)

其中: 目标检测损失Lobj包括3个部分:分类损失Lcls(Classes loss)、置信度损失Lconf(Confidence loss)和定位损失Lloc(Location loss),λ1λ2λ3为平衡系数。分类损失和置信度损失都采用二值交叉熵损失BCEloss(Binary Cross Entropy loss)计算,但Lcls只计算正样本损失,Lconf计算所有样本损失,公式为

(4)

(5)

LCIoU=1-CIoU

(6)

(7)

(8)

(9)

由式(7)可知,ρ2(b,bgt)代表真实框与预测框中心点的欧式距离,c则代表预测框与真实框最小外接矩形对角线的长度,wgt和w分别对应真实框与预测框的宽,hgt和h同理。分割损失Lseg同样采用BCE loss进行计算,公式为

(10)

3 网络训练

3.1 评价指标

本研究中实验采用平均交并比mIoU(mean intersection over unio)、像素精度PA(pixel accuracy)、平均准确率AP(average precision)、每秒传输帧数FPS(frames per second)为评价指标来衡量网络检测精度与性能。P代表精确率,R代表回召率,AP为以R为横坐标P为纵坐标的PR曲线的面积,代表目标检测平均精度值。

(11)

(12)

(13)

mIoU定义为预测值与真实值交集与并集的比值,PA表示预测正确的像素点数占总像素点数的比例,其表达式为

(14)

(15)

式(14)、式(15)中:(k+1)表示语义类别加上背景之后的总数;i表示真实值;j为预测值;Pii表示预测值等于真实值的像素点数;Pij表示类别i被预测为类别j的像素点数;∑jPij表示类别i的总像素个数。

3.2 训练过程与结果评估

本实验在云服务器中搭建的环境里进行,处理器为AMD Ryzen9 5900X 12-core processor,服务器运行内存为62 GB,显存为24 GB,型号是RTX A5000;利用TensorFlow构建网络环境,版本为2.2.0,操作系统为Ubuntu18.04,编程语言为python3.8。

迭代次数(epoch)设置为150,Batch size设置为4。目标过于单一,为防止过拟合现象的出现,采用SGD优化器,优化器内置参数momentum设为0.9,权值衰减(weight decay)设为0.000 5。初始学习率设为0.01,最小学习率为最大学习率的1/100,设置为0.000 1,学习率下降的方式为余弦退火(cosine annealing)。随着迭代次数的增加,训练集与验证集上的损失值变化曲线与如图11所示。

由图11可知,从第35轮开始,损失值下降趋势减缓并趋于稳定,曲线接近拟合状态,之后网络损失一直在范围内波动,但从70轮之后,验证集损失值反而不降反升,说明网络已经出现过拟合。评估拟合阶段权重的精度值,选取精度最高的epoch83作为最优权重,此时AP=92%

图11 训练集与验证集的损失曲线

4 实验结果分析

4.1 不同算法的比较分析

本文中网络模型以YOLOv5框架为基础,融合分割模块,实现对复杂环境小目标的实例分割。所以在实验阶段需结合经典语义分割模型Deeplabv3+、实例分割模型Mask RCNN和原网络YOLOv5及最新YOLOv7模型进行对比分析。表1展示了不同算法在验证集下的评估结果。

表1 不同网络模型的评估结果

由表1可知,模型检测精度为92.42%,相比Mask_RCNN增加了6.02个百分点,主干网络替换成YOLOv5,省略了生成候选区的步骤,使检测速度获得显著提升,FPS相比Mask_RCNN提升了6倍左右。与YOLOv5原网络相比,识别精度对比s型有显著提升,但模型结构复杂导致FPS只占原来的1/2;对比l型精度水平相当,FPS提高7.36帧/s。最新的YOLOv7网络识别能力强,比本文模型精度略高,但运行较慢,FPS仅占本文网络1/5。mIoU属于语义分割模型特有的指标,虽然3种分割网络结构不同,但mIoU值相近,无法比较出明显区别,重点需要参考AP/PA值。在检测精度方面,目标识别领域利用AP来评估,语义分割领域可以采用同样衡量预测精度的指标PA来等效。由于主干网络YOLOv5属于目标检测网络,对目标抓取能力较强,本文中网络模型相比backbone为MobileNetV2结构的Deeplabv3+网络识别精度提升8.07个百分点,MobileNetV2属于轻量化网络,运算量较小,本文中模型FPS与其相近,略微提高0.6帧/s。Xception主干网络较深,学习能力强,结构更加复杂,配合Deeplabv3+精度能够达到94.85%,比本文模型高2.43个百分点,但FPS较低,只能达到4.95帧/s。综上所述,本文网络模型能够在检测精度接近YOLOv7、Deeplabv3+ (Xception)等优秀网络的前提下,在检测速度方面优于其他网络,同时满足准确性与实时性的需求。

本文中模型检测结果如图12所示,展示了模型在傍晚光照、阴影遮挡、弹孔模糊情况下的检测效果。预测结果中,所有弹孔都被成功识别,没有出现漏检或误检情况,弹孔分割精度也满足要求。

图12 改进后的算法检测效果

4.2 不同模型识别效果的对比试验

本文中研究对象为野外实弹训练产生的靶面弹孔,弹孔颜色深,容易和深绿色靶纸和周围环境混淆,影响识别准度与精度。因此,建立不同光照、不同阴影遮挡条件下的对比实验,每一类挑选30张图片进行测试。光照和阴影遮挡实验的考察重点为弹孔轮廓的检测精度与弹孔召回率,测试效果如图13、图14所示,其中为展现识别精度,对照网络Deeplabv3+的主干网络选为Xception。

由图13可看出,改进后网络识别出的分割掩膜更加贴近弹孔真实轮廓,效果强于Mask RCNN,与Deeplabv3+分割精度相近,能够较好地表现出弹孔的复杂边缘。对于识别难度较低的清晨光照环境,本文中网络与YOLOv5(s)、YOLOv5(l)和YOLOv7都能识别出所有弹孔,但光照略微复杂的傍晚与正午环境,YOLOv5(s)容易出现不同程度的漏检,而本文中网络能够保持与YOLOv7、YOLOv5(l)的识别精度,都能全面识别,符合评估结果。

图14展现了改进后模型在复杂阴影和遮挡条件下分割精度与识别精度的对比试验图。因为环境更为复杂,所以只保留精度最高的YOLOv5(s)、YOLOv7网络对比识别精度,Deeplabv3+对比分割精度。由图可知,阴影对分割精度影响很大:对于遮挡小弹孔,Deeplabv3+易将树叶错误分割成弹孔,如图14(b)所示;对于位置相近的多弹孔,Deeplabv3+容易识别成单个目标,无法分割正确轮廓,如图14(a)、图14(c)所示。

在识别精度方面,不同网络存在着不同程度的漏检或误检。YOLOv5(l)只在单一阴影条件下识别效果良好,如图图14 (a),一旦阴影复杂就极易出现漏检,在图14 (b)中10个弹孔漏检1个识别9个,图14 (c)中将2个弹孔识别成1个,出现误检。YOLOv7在只有阴影的图14 (a)中识别效果不错,但在图14 (b)中只识别出8个弹孔,漏检2个,在图14 (c)中相连的2个弹孔只识别出1个,漏检1个。而本文算法在3种复杂情景都有较好的表现,弹孔全部识别成功,兼顾分割精度与识别准确率,由此可见在复杂环境中具有一定优势。

图13 不同网络在3种光照下的识别对比图

图14 不同网络在复杂阴影情况下的识别对比图

5 结论

1) 针对野外训练的复杂环境下,靶面弹孔难以高效被识别的问题,提出同时融合目标检测与语义分割的弹孔分割网络,利用多任务训练提升特征层对复杂环境弹孔小目标的识别精度与分割精度,降低模型运算量,满足实时性需求。

2) 模型以YOLOv5主干网络为基础,融合分割模块,调整输出尺度,增加针对极小目标的预测层,并结合解耦思想,提高模型检测精度。算法在验证集下的精度为92.42%,FPS达到25.15帧/s。

3) 通过对比实验可知,本文中模型无论是在复杂阴影或光照条件下,都可以识别所有弹孔痕迹,极少出现漏检或误检情况,相比其他网络模型,本文中算法在保持高精度识别条件的情况下,显著提升了网络的运算速度,满足了实际训练中精确度与实时性要求,拥有较好的综合性能。

猜你喜欢

弹孔语义卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
最后的弹孔
语言与语义
基于视频图像处理的弹孔检测提取算法研究∗
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
“上”与“下”语义的不对称性及其认知阐释
认知范畴模糊与语义模糊
一种基于卷积神经网络的性别识别方法
语义分析与汉俄副名组合