基于改进YOLOv5m的弱小目标识别方法
2022-12-26杨文涛张维光
杨文涛,张维光
(西安工业大学 光电工程学院,西安 710021)
0 引言
基于机载平台的空对地观测目标识别技术是一种不断发展的军民两用技术。民用技术已成功应用于防灾减灾、农田管理、大区域工业监控等领域。军用技术已成功应用于大区域防务、敌对目标识别等领域。空对地观测由于被观察目标离机载平台较远,目标在图像数据中所占像素点有限,表现出弱小目标的特征。有的应用领域目标在图像数据中所占像素个数小于10*10,目标的色彩、纹理及型状等特征在目标识别过程中难以提取。加之空对地观测以大地为背景,背景事物的随机性较大,目标与背景之间相互关联关系不高,目标识别的难度较大。国内外弱小目标识别技术根据是否使用神经网络可以分为非神经网络技术和神经网络技术两大类。非神经网络的弱小目标识别技术主要利用背景建模和目标在图像序列之间的关联特征关系实现目标识别。背景建模目标识别技术典型技术有基于高斯背景的目标识别技术,应用高斯混合模型对其背景进行建模,分辨出图像前景和背景来实现对弱小目标的识别[1],但该方法对弱小目标识别准确率较低。基于目标图像关联特征的目标识别技术,钟小莉等人[2]研究了利用离焦模糊图像序列对弱小目标进行自动检测,采用了小波分解的方法对图像进行分解,通过缩减小波系数,滤除弱小目标复杂背景的噪声,完成动态聚类的目标检测,该方法的检测效率虽然较好,但是对于相似背景下的弱小目标检测精度较低。张素等人采用时空域图像块模型求解图像目标,最终实现弱小目标的识别[3],但该方法对于像素尺寸为10*10以下的的弱小目标依然存在识别精度低的问题。基于神经网络的弱小目标识别方法可以分为分类回归神经网络技术和深度学习目标识别技术两大类。分类回归神经网络技术对于多目标识别与跟踪精度不高,适用性不强,Z.Huang等人[4]提出了改进的分类回归深度卷积神经网络对小目标进行识别,但该方法容易造成弱小目标分类识别率低、实时性低的问题。基于深度学习的目标识别方法可以为分双阶段和单阶段两种。双阶段深度学习网络可以实现目标的高精度识别与跟踪,但因基运算量较大,目标识别系统实时性较低,K.He等人[5]在提出的双阶段R-CNN算法基础上设计了一种空间金字塔池化层,使得该网络不仅克服了多尺度提取、弱小目标特征表达能力的缺点,并且解决了在卷积神经网络中只能限制输入固定大小的情况,但是由于增加网络结构存在着检测目标速度慢的问题。单阶段深度学习目标识别方法的典型代表是系列You Only Look Once(YOLO)[6]及其衍生模型,可以实现目标的快速识别。对于实时性要求较高的应用领域yolo方法,通过开发提升网络目标识别准确率的新型模块与单元,可以实现对多目标的高精度高速检测与识别。
针对机载平台计算资源有限条件下空对地观高精度高速目标识别与跟踪技术需求,本文选用YOLOv5m网络模型为研究对象,通过增加小目标检测层,提高对弱小目标的检测能力;在原始的特征融合网络(FPN,feature pyramid network)+ (PAN, pyramid attention network)结构的结合下,使用4个降采样特征图作为该网络的输入,减小下采样后特征图的感受野;在后处理端选用DIoU-NMS代替传统非极大值抑制NMS,选用DIoU_Loss代替YOLOV5m的GIoU_Loss,加快边界框回归速率,提高定位精度,以提升网络对所占图像像素个数小于10*10弱小目标的识别能力,并完成了对比实验分析。
1 YOLOv5m网络模型结构分析
YOLO算法是一种单阶段(One-stage)算法典型的代表之一,该算法可以直接从图片生成位置和类别,Yolov5算法是在YOLOv4的基础上进行了改进,是一系列在Common Objects in Context(COCO)数据集预训练的对象检测架构和模型。YOLOv5到目前截至一共发布了4种版本的目标检测网络模型,分别是YOLOv5的s、m、l和x模型网络,网络深度的大小决定了提取和融合特征的能力,而网络的宽度的大小则决定了特征提取的学习能力,其中YOLOv5s的深度最浅、宽度更窄,网络的速度更快,但是它的精度最低,后面3种模上不断加深、加宽[7],在随着深度和宽度的增加,多目标识别的精度就会越高,识别的速度也会随之降低。在机载平台上,由于计算资源有限,目标检测速度低,所以为了达到速度和精度综合的情况下,选择了YOLOv5m模型。
YOLOv5m模型网络的改进网络结构总体来说主要有4部分[8],如图1所示。
图1 改进YOLOv5m网络结构图
其中这4部分的功能结构如下:
输入端(Input):马赛克图像数据增强、自适应图像缩小放大和自适应锚框计算。
主干网络(BackBone):Focus结构、CSP(Cross stage partial)结构和SPP(Spatial Pyramid Pooling )模块。
网络的颈部(Neck):FPN+PAN结构。
预测输出端(Prediction):DIoU_Loss、DIoU_NMS。
1)马赛克数据增强(Mosaic)。YOLOV5一般会在输入端对图片有3种增强数据的方式:图片的缩小放大、图片的颜色空间调整和马赛克数据增强。其中马赛克数据增强(Mosaic)是通过将4张训练图像进行随机方式的缩放、裁剪和分布等方法进行组合成为一张图像,这样会提升对弱小目标的检测效果[9],结合这4种图像彼此不同的上下文信息,丰富了图像检测目标的背景,这使得网络检测弱小目标范围增大,加快收敛速度,增强算法模型的鲁棒性[10],其原理如图2所示。
图2 Mosaic数据增强
2)自适应锚框计算。预定义边框,就是在训练之前提前设置的一些边框,在训练过程中,用真实的边框与预定义边框之间的偏移来形成(也就是我们打下的标签)训练样本,在YOLO系列中,可以针对数据集设置初始的锚框(Anchor)。在对网络进行训练的过程中,网络首先输出预测锚框,接着将预测锚框和GroundTruth锚框进行比较,计算loss,然后通过反向更新,迭代网络优化参数。在YOLOv3和YOLOv4版本中,设置初始Anchor的大小都是通过程序使用K-means算法得到,而在YOLOv5整体代码中,将此功能的算法放入到了代码中,经过每次训练数据集的时候,算法会自动计算该数据集得到最合适的Anchor尺寸,即最佳锚框值[11],该功能也可以在相应代码中设置超参数进行关闭。
3)Focus模块。Focus模块在图像进入到主干网络之前,先对图像进行切片操作[12]如图3所示,在每张图像中间隔一个像素提取一个值,从左到右,从上到下遍布完整张图片,操作后结果获得4个图像,这4张图像相互间互补,切片操作后使得信息完全没有缺失,通道空间包含了信息的宽和高,因此通道扩大了4倍,这样,拼接出来得到的图片将原来图片的RGB三个通道经过扩充增加到了12个通道,再进行卷积操作后,最终结果获得了二倍下采样的特征图像。Focus结构的优点在于虽然它的计算量和参数量降低,但是经过下采样后信息没有缺失,在保持精度不变的同时,提高了弱小目标的检测速率。
图3 切片操作原理
4)SPP模块。SPP模块应用于主干网络后,在使用类似1*1、5*5、9*9、13*13的最大池化的方法后,最后结合起这些不同的特征图,此模块既可以使主干特征的接受范围增加,扩大了感受野范围,而且将最重要的上下文信息特征进行了显著的分开[13],提高复杂背景下弱小目标的识别率。
2 YOLOv5m算法改进
2.1 特征融合网络改进
Neck层网络的作用是为了提高提取融合图像的特征的能力,FPN+PAN结构使得特征提取的能力增加,起着承上启下的关键环节,其中FPN[14]特征金字塔结构是经过top-down的顺序结构,利用最高层的强语义将信息特征传递下来,再通过上采样将高、低层特征信息进行信息特征融合,从而产生即将预测的特征图像。PAN结构是设计在FPN结构后面的金字塔中,经过了down-top的路径增强,PAN所在的特征金字塔采用了下采样的方法,对准确定位信息进行传递。
在原始的特征融合网络FPN+PAN结构的结合下,将76*76、38*38、19*19共3个不同的特征图进行融合,输出3种不同的结果,如图4,现在在此基础上使用4个降采样特征图作为该网络的输入,使得下采样后的特征图感受野减小,FPN层通过自顶向下的结构表达了强语义信息特征的功能,而PAN结构所在的特征金字塔通过自底向上的结构表达了强定位信息特征的功能,两者结合提高了特征融合提取的能力,让模型学习到更多的学习特征,提高对弱小目标的识别精度,改进的neck层特征融合网络如图5所示。
图4 FPN+PAN结构图
图5 改进的特征融合网络
2.2 网络后处理端改进
2.2.1 改进的Bounding box损失函数
目标检测算法的损失函数总体是由两部分分类损失函数和边界框回归损失函数组成,一般常用的回归损失函数有IoU_Loss、GIoU_Loss、DIoU_Loss、CIoU_Loss这4种,IoU表示目标真实框与预测框的交集与两者并集之比,IoU的损失函数表示为:
(1)
式中,A为真实框与预测框的交集,B为真实框与预测框的并集,IoU损失函数虽然得到的预测框受真实边界框尺寸影响小,鲁棒性较好,但是也存在缺点,当预测框与真实框不相交的时候,这时IoU=0时,预测效果最差,该损失函数就不可行了。
GIoU的损失函数表示为:
(2)
式中,C为目标预测框与实际框的最小外接矩形,GIoU损失函数是在IoU损失函数上的基础上多考虑了一个因素,GIoU不仅考虑到了检测框和目标框之间的重叠面积,并且还关注了其他区域的非重合部分,因此可以更好的反映预测框与目标框的重合度,而且增加了两者相交尺度的衡量方式。但是也存在缺点,如果预测框存在于真实框的内部,并且几种预测框的大小一致,即C-B值相同,就出现了无法区分预测框相对位置的情况,这时该损失函数就失去了效果。
DIoU的损失函数表示为:
(3)
式中,D为目标预测框与实际框内部最小外接矩形C之间的对角线距离值,E为目标预测框的中心点与实际框内部中心点间的距离值,而DIoU损失函数则是在GIoU损失函数的基础上再次进行了优化,DIoU不但考虑了两者的重叠面积还同时考虑了两者间的中心点距离,当出现了预测框在真实框内部,两者有交集的情况下,考虑了中心点距离后,就加快边界框的回归速率,使得DIoU_Loss收敛的速度加快。但是如果预测框和实际框没有交集,而预测框的大小不相等,预测框的中心点位置即使一样,也会出现E值相等,这时根据DIoU_Loss公式,损失函数相等,损失函数就失去了效果。
CIoU的损失函数表示为:
(4)
式中,ν为一个影响因子,在DIoU损失函数的基础上多增加了一个因素,即预测框与实际框长宽的比值。这样综合下来CIoU损失函数总共有3种因素,分别为预测框与实际框的交集区域、两者中心点距离和两者长宽比,但是由于CIoU损失函数多添加了一个影响因子,所以就会影响收敛速度[15]。
综上所述,考虑到预测框回归的速度和精度综合的情况下,该实验在输出层选择用DIoU_Loss代替GIoU_Loss作为边界框回归损失函数,加快边界框回归的速率以及提高定位精度,加快对弱小目标的检测速率。
2.2.2 NMS 非极大值抑制改进
非极大值抑制中,一般用IoU指标来表示抑制重复多余的检测框[16],在众多影响因素当中,重叠面积的影响最大,在弱小目标部分被遮挡的情况下,经常会造成错误的抑制。在目标检测完成后,对于很多目标框,要进行筛选,留下一个框,所以通常需要进行NMS非极大值抑制操作。非极大值抑制的原理就是通过分类器首先得到多个边界框以供选择,并且得到关于边界框中属于类别的概率值,将得到的概率值进行排序,选择出最高的概率所在的框,用别的框与此框做比较,最终将无用框删掉,留下一个类别可能性最高的框[17]。在目标检测的时候,有的目标相互遮挡或被其他物体遮挡,不同目标的检测框距离太近,经过NMS非极大值抑制操作后,检测框也会被去除,就会导致识别失败。选择DIoU-NMS操作,将DIoU作为传统NMS抑制的准则,在此抑制准则中不仅考虑了真实框与预测框的交集区域还考虑了两者内部的中心点距离,这样可以使得过滤的准确度更加提高,DIOU_NMS操作对于一些互相遮挡的小目标,会有很好的识别效果,所以选用DIOU_NMS代替传统的NMS,提高对于弱小目标互相之间的遮挡或者被其它物体遮挡的识别率。
2.3 增加小目标检测层
空对地观测情况下检测目标像素尺寸基本都在10*10以下,而YOLOv5的下采样倍数比较大,在深层次的特征图很难学习到小目标的特征信息。所以该算法对于小目标检测效果不好,在原始YOLOv5模型中只有3种不同的检测层,输入图像尺寸为608*608时,大的检测层为76*76的特征图可以检测8*8以上像素的目标,中等检测层为38*38的特征图可以检测16*16以上像素的目标,小的检测层为19*19的特征图可以检测32*32以上像素的目标,所以在本次改进中提出增加小目标检测层,增加了更大的检测层为152*152的特征图可以对4*4以上像素的目标进行检测,对浅层特征图和深层特征图拼接后进行检测,使得空对地观测下10*10以下像素的弱小目标有着很好的检测效果,提出的多尺度检测结构如图6所示。
图6 多尺度检测结构
3 实验结果及分析
3.1 数据集预处理
该实验的数据集是利用建模的方法得到空对地观测下的弱小目标视频,然后编写程序对视频进行指定大小、指定帧数间隔的方式获得大量的数据集图像,数据集准备好之后,选择Labelimg标注图像软件工具对原始图像数据集进行打标签操作,首先将设置数据集标注为voc标签格式,保存为xml文件,数据集中包含了目标的名字、大小以及存放的位置,统一图片格式,制作图像标注,最后将标签封装到样本中后,将其序列化。由于YOLOv5模型需要的数据集标签格式为txt文件,通过转化代码脚本,将xml文件转换为YOLOv5所需要的txt文件。在标注数据集的时候,要将数据集和打好的标签对应起来,在目标检测图像分类的数据集中,只需要标注图片中所含目标以及目标的类别即可。
3.2 模型训练
数据集标注好之后,对模型进行初始设置,修改数据配置文件和模型配置文件,搭建好YOLOv5m模型环境,根据自己的电脑性能,设置好训练适应的参数,本文选择迁移学习的方法对该数据集进行训练,迁移学习是一种深度学习策略,将已经在大量数据集上训练好的模型迁移到我们的小规模针对新型目标的数据集,然后对数据集进行新模型的预训练[18-20],使得最终训练好的神经网络对新型目标有着很好的检测效果,因此使用yolov5m.pt这个预训练权重作为初始网络权重对数据集进行训练,由于该预训练权重之前在超大的数据集上训练得到的权重文件,基于此,用此预训练权重直接训练该数据集即车以及飞机等,可以提高网络的学习和优化,增加泛化能力,使得改进的YOLOv5m模型具有很好的鲁棒性,训练结果如图7所示,训练完成后,各项数值变化基本趋于平稳状态。
图7 训练参数变化图
3.3 实验测试结果
训练结束后,在runs/train文件夹下会自动生成训练结果,其中包括模型权重、混淆矩阵、PR曲线等。将权重文件路径修改为训练好的best权重文件路径,改进前后的模型对弱小多目标检测结果如图8所示,可以看到图(a)使用原YOLOv5m算法进行检测,出现了漏检和错检的结果,将旁边的建筑物错检测成了飞机,并且将图中的飞机没有检测出来,而图(b)使用改进的算法进行检测,成功将图中的弱小目标飞机和车全部检测出来,保证改进算法后稳定并且准确的检测效果。
图8 目标检测结果图
对于遮挡后的目标检测结果分别如图9所示,可以看到图(a)使用原YOLOv5m算法进行检测,依然出现了漏检的情况,被低空飞行的飞机遮挡下的车没有检测出来,而图(b)使用改进算法进行检测,可以将飞机遮挡下的车成功准确的识别出来,图(c)使用原YOLOv5m算法进行检测,看到图(d)中被树遮挡后的车没有检测出来,而图(d)使用改进算法进行检测,可以将树木遮挡下的车成功的检测出来。
图9 遮挡后的目标检测结果图
3.4 实验性能评估指标
均值平均精度(mAP, mean average precision)经常作为目标检测中衡量检测精度的指标。将正样本正确的划分为正例的数量为TP(true positives),将负样本正确地划分为负例的数量为TN(true negatives),将正样本错误的划分为负例的数量为FN(false negatives),将负样本错误的划分为正例的数量为FP(false positives),精确率(precision)为P,反映了所有检测出的目标中检测正确的概率,精确率(P)的公式为:
(5)
召回率(recall)为R,表示所有正样本中正确识别的概率,召回率(R)的公式为:
(6)
一般用精确率(P)为纵坐标、召回率(R)为横坐标,在坐标轴上绘制曲线图,单类目标检测的平均精度(AP,average precision)即为该曲线图与坐标轴围成的面积,全部类别目标AP的平均值即为均值平均精度(mAP)。
3.5 实验结果分析
实验结果表明,通过对比3种算法实验后得到该数据集中每个类别的平均精度(AP)如表1所示,本文改进的算法得到的每个类别的平均精度(AP)均高于另外两种算法。
表1 平均精度指标对比结果
对比3种算法对该数据集的均值平均精度(mAP),证明实验改进算法的有效性,在交并比阈值为0.5的情况下,经改进算法检测,mAP达到了89.7%,算法性能指标对比如表2所示。
表2 算法性能结果对比
从3种算法的结果性能对比可知,本文研究的改进算法精确率均高于另外两种算法,改进算法精确率比原YOLOv5m算法提升了3.3%,使用原始SSD算法在该数据集检测得到均值平均精度(mAP)值为68.0%,使用原始YOLOv5m算法检测mAP为85.6%,本文改进算法检测后mAP值为89.7%,与原始YOLOv5m算法相比,均值平均精度(mAP)值提高了4.1%,其中在对车的检测平均精度(AP)上,改进算法相对原始YOLOv5m算法提高了11.6%,这是因为对地观测情况下,车的目标像素很小,增加的小目标检测层对弱小目标有着很好的检测效果,但是由于网络改进后网络结构变得复杂,使得检测图片时间相对于原始YOLOv5m算法增加了8 ms,但是仍然可以达到实时的效果。
由实验结果可知,使用本文改进算法可显著提升识别准确率,对一些漏检和错检的目标依然可以检测出来,并且对于空对地观测下被叶簇遮挡的弱小目标和目标之间的遮挡有着更准确的识别,目标检测算法的mAP指标达到89.7%,实现对地观测下像素小于10*10弱小目标的识别任务,使得该算法对多目标识别有着更好的鲁棒性。
4 结束语
针对空对地观测环境下弱小目标和遮挡目标识别效果差等问题,本文研究了YOLOv5m算法,并对其进行改进,在原YOLOv5m网络中增加一个新的小目标检测层实现了4个检测结构对不同大小尺寸目标的识别,提高对弱小目标的检测能力,其次在后处理端部分,使用DIoU_Loss代替GIoU_Loss作为边界框回归损失函数、DIOU_NMS代替传统的nms,加快边界框回归的速率以及提高定位精度,提高对于遮挡目标的识别率。在实验中利用建模的方式建立了对地观测下的弱小目标数据集,通过实验结果性能表明,本文研究改进算法得到目标检测的均值平均精度mAP达到89.7%,实现了网络对所占图像像素个数小于10*10弱小目标的高精度识别,证明了本文所研究方法的有效性,但是由于改进的算法使得网络结构更加复杂,降低了检测速率,在之后的研究中将考虑对网络模型进行剪枝处理,轻量化网络结构,提升检测目标的速率。