基于改进YOLO算法的船舰目标检测DT-YOLO方法研究
2022-12-12梁云浩
岳 希 梁云浩 何 磊
(1.成都信息工程大学软件工程学院,四川 成都 610225;2.四川省信息化应用支撑软件工程技术研究中心,四川 成都 610225)
0 引言
舰载无人直升机可以实施对岛屿、海面和海岸目标的探查、追踪和攻击等任务,与固定翼无人机相比,具备无伤亡事故、机动性好等特点[1]。舰载无人机自主着舰是其关键任务[2],因为危险系数较高,是制约当前无人直升机使用和发展的主要瓶颈。而计算机视觉依托其成本低、被动检测、抗电磁辐射干扰等优点,已成为舰载无人直升机在自主着舰导航中的关键信息源[3]。
当舰载无人机接收到返航进场指令,场景理解的首要任务便是寻找目标舰船,准确的舰船定位信息是对无人机着舰视觉引导的重要前提。舰载无人机利用视觉传感器获取图像,再利用计算机视觉算法进行场景理解,但成像往往会受天气、云雾等因素干扰,且容易受到海面杂波、岛屿等物体影响[4],准确高效地从复杂海洋背景中完成舰船目标的检测仍存在较大难度。针对舰船检测任务,研究者提出了许多改进算法。于洋等[5]将输入网络结构改进,对输入图像进行多尺度变化;苏娟等[6]将SSD进行特征增强;李靓等[7]结合FPN思想对Faster R-CNN加以改良。但以上改进方式仍存在对舰船检测时舰船相互遮挡的漏检,多舰船目标检测时小型舰船检测精度低的问题。对此,利用卷积神经网络能够提取图形深层特征的特点,对目标检测算法YOLO[8]解决无人机返航成像易受天气、云雾等因素干扰和海面杂波、岛屿等物体影响,以及小目标检测效果较差,易产生漏检、误检等问题开展深入研究,进行针对性提升,使之更适合舰船检测任务。最后,在舰船数据集上对改进网络进行训练和测试,并对网络各方面性能进行细致地比较和分析。
1 DT-YOLO舰船目标检测算法
YOLO算法检测中、小型尺寸目标时效果不够理想[9],为将YOLO更好地用于舰船检测工作,提出基于YOLO改进的密集连接网络DT-YOLO(D:dense,T:transition)。首先对特征提取网络结构加以调整,增加密集模块和过渡模块,同时在过渡模块内利用最大池化以提高特征提取性能。为更好地处理特征图尺寸对检测结果的影响,将特征金字塔设计为5层,使特征图更小,能够进一步提高检测精度。并在对图片进行特征提取后进行上采样,之后再与特征提取网络相结合,构建舰船目标快速检测网络。通过改进的对数衰减NMS算法,保留多目标相互堆叠时被覆盖的目标,提高舰船目标被掩蔽时的检测能力,改进后的DT-YOLO网络舰船检测如图1所示。
1.1 网络结构改进
YOLO提出的Darknet53网络合理地减少了网络的计算复杂度[10],然而对于舰船检测任务来说,Darknet53网络略显复杂和臃肿。本文搭建了一种相对简易的网络,网络详细构成如表1所示。DT-YOLO网络结构包含7个密接模块和6个过渡模块,2个密接模块由1个过渡模块联接。在过渡模块中,选用1×1尺寸的卷积核来减少特征图的尺寸,以保障处理速度和检测精度。
表1 DT-YOLO的网络结构
舰船目标图像在传入密集模块中进行特征重用和卷积后,传入过渡模块进行最大值池化以降低特征图大小,再将结果进行融合后输入下一个密集模块进行相同处理。使用这种处理方法可以提高特征提取网络的模块间连接,有效降低图像在不同模块之间传输造成的特征丢失。
为解决YOLO特征图的规模偏大使目标检测结果不够准确的弊端[11],DT-YOLO对特征金字塔进行改造,添加两个额外的卷积层,构建出新的特征金字塔含有5个尺寸不一的卷积层。首先用16个3×3的卷积核以步幅为2对512×512分辨率的输入图片开展过滤,随后把过滤结果输入包含1×1和3×3卷积层的密集模块,产生的特征图大小为256×256;之后输入其他的6组密集链接模块,得到分辨率大小分别为128×128、64×64、32×32、16×16、8×8和4×4的特征图。此外,在卷积层中加入批标准化层以加速训练和防止梯度消失。
DT-YOLO可以用5种不同的尺度回归舰船方位和分类结果,得到分辨率分别为4×4、8×8、16×16、32×32和64×64的特征图。在增强特征提取方面,DT-YOLO对特征图为4×4、8×8、16×16 和 32×32 的密集模块开展2倍上采样,随后通过特征提取网络把输出特征和上下文信息传输给相应的特征图开展结合,产生多尺度舰船目标检测特征金字塔。
1.2 改进对数衰减NMS算法
NMS[12]算法通过直接判断IOU值是否大于阈值的方式较好地筛选了重叠预测框[13],但同时也会删除被遮挡舰船的预测框,不利于舰船遮挡情况时的检测。如图2所示,摄像机采集到的着舰场景往往会存在舰船相互遮挡现象。采用改进的对数衰减NMS算法,解决被遮挡舰船检测精度低的问题。如果交并比IOU(a,bi)高于抑制阈值Nt,则对置信度Sconf做衰减处理,优化后的NMS算法公式为
2 实验及结果分析
2.1 数据集制作
为更好地得到充分的训练样本以达到优化算法的训练和测试要求,利用网络爬虫[14]采集互联网中的舰船视频和图片,并对视频进行抽帧截取处理,得到更多的数据样本。从采集数据中选取出画质清晰符合舰船检测任务的图像共10000张。设置训练集6000张,测试集2000张。在目标检测任务中,除了原始图像数据,还要完成图片标注的任务。在采集到的图像数据中选取出合适的训练数据,完成图像尺寸的统一调整,并按规定统一命名,具体如图3所示。
训练图像数据的标注需要把舰船目标边界框手动标记,然后记录下边界框的坐标和识别目标类别,通过数据标签保存在指定文件中,便于在网络框架中被读取调用[15]。LabelImg可以完成数据标注制作标签的工作,需要标注舰船图片中舰船目标的坐标和类别,如图4所示。
2.2 网络训练
图像的尺寸大小对目标检测算法的性能有很大的影响,多尺寸训练能较好地提高算法准确度。算法模型训练过程中,每经几个批次的训练后须再换其他尺寸的图片进行训练,可以明显提高DT-YOLO算法对各种尺寸舰船图片的鲁棒性。模型训练时,数据集大小预设为128的整数倍。刚开始训练时,初始大小设定为256×256像素,每10个批次后再换其他像素大小的图片再次训练,图片最大为1024×1024。
模型训练时的参数有学习率[16]、动量常数[17]以及权值衰减系数[18]等。选择小批量随机梯度下降法[19]开展训练优化,动量常数设置为0.8,权重衰减系数0.0004,批大小128,最大迭代次数50000次,改进线性衰减 NMS抑制阈值0.5。使用分段调控学习率[20]的方式,原始学习率10-3可以在训练过程中保持网络稳定,在训练过程中先后降低为10-4与10-5。
图5为训练过程中的损失函数拟合曲线。可以发现,训练过程中网络训练误差慢慢趋向收敛。在初始阶段,训练误差值下降速率非常快;在迭代15000次后,训练误差下降速度开始趋于稳定;迭代40000次时,训练误差值收敛接近0.2,表示此时模型训练已接近收敛,可以结束模型训练。
2.3 结果分析与讨论
本节对DT-YOLO网络在测试集上的舰船检测的性能进行评价,包括平均精确度(AP)以及检测速度,检测结果如表2所示。本文改进算法分别在网络数据集、公开船舶数据集HRSC2016和LEVIR上进行训练与测试,并且与YOLO算法、SSD512算法和FASTERRCNN的检测结果进行对比。
表2 不同算法的检测性能对比
由表2可以看出,DT-YOLO分别在在网络数据集、HRSC2016和LEVIR上取得了94.21%、93.78%和96.53%的AP,检测精度比其他网络更优良,比YOLO算法分别提高了4.35%、3.77%和10.05%;同时,实时检测的效果也有提升,检测速率达到了61.48 f/s,分别比YOLO算法提高了16.8%、25.66%和14.31%。
图6为YOLO与DT-YOLO的部分检测结果,对于舰船检测任务两种网络都获得了不错的效果,尤其是DT-YOLO在面对多目标、目标相互重叠等繁杂检测情景下的舰船目标检测时表现出了较强的算法鲁棒性。由图6(c)看出,DT-YOLO可以检测出所有舰船目标,而YOLO存在漏检的问题,只能够检测出大部分目标。与YOLO相比,DT-YOLO依然可以准确地检测出部分确实的舰船目标。综上,DT-YOLO在繁杂检测情景下更加稳定。
3 结束语
主要讨论了改进的DT-YOLO舰船检测算法。首先,将YOLO的特征提取网络中的残差结构改造为DenseNet中的密集链接结构,极大地减少了网络参数并加快了网络训练过程,并将特征金字塔设计为5层,使得特征图更小,能够进一步提高检测精度。其次,NMS算法使用对数衰减,解决了舰船目标相互掩盖时的漏检问题。最后,使用网络样本数据构建数据集,对算法进行训练测试。训练结果显示,改进的DT-YOLO舰船检测算法与YOLO相比,在网络数据集、HRSC2016和LEVIR数据集上,其检测精度和检测速率分别提高了4.35%、16.8%;3.77%、25.66%;10.05%、14.31%。对无人直升机视角下的舰船目标检测任务,改进的DT-YOLO舰船检测算法拥有较好的鲁棒性,有效解决了无人机返航成像易受天气、云雾等因素干扰和海面杂波、岛屿等物体影响的问题。针对YOLO算法中小目标检测性能较弱,且对于遮蔽目标易出现漏检、误检的缺陷,通过改进算法检测效果取得了很大改善。本文改进算法还有待于在更多数据集上进行检验并做进一步优化。