张冬冬, 王春平, 付 强
(陆军工程大学石家庄校区 电子与光学工程系, 河北 石家庄 050003)
舰船检测是计算机视觉领域的研究热点,一直备受国内外研究人员关注,并被广泛应用于各种领域。 例如,利用光学遥感技术实现舰船检测,可以对海上交通管理、打击非法走私和海上营救等进行辅助;通过遥感图像对敌港口、海域舰船部署进行监视,为战前预警、威胁评估和引导打击等奠定基础。
舰船作为海上重要目标,是海域安全的主要威胁,也是海战中重点打击的对象。 利用制导导弹对舰船目标进行打击是现阶段的主要手段,若导弹命中敌舰船的指挥控制室、动力舱和导弹发射井等关重部位,可瞬间损毁敌舰船,有效遏制其作战能力;若命中非关重部位,则无法使敌舰船瞬间丧失作战能力。 为提高导弹的打击效率,需要在制导的过程中根据舰船关重部位的位置实时调整命中点。 因此,为满足特定任务需求,针对舰船关重部位构建精确、可嵌入小型设备的实时检测算法具有重要意义。
传统的目标检测[1-3]方法需要人为对提取特征进行设定,依赖于业界的专业知识,算法的应用局限性大、泛化能力差,且计算复杂耗时、检测效果不佳。近年来,随着深度学习的迅速发展,卷积神经网络(Convolutional Neural Network,CNN)[4]因其强大的特征提取能力被广泛应用于计算机视觉领域,基于CNN 的检测算法成为当前目标检测领域的主流方法。 基于CNN 的目标检测算法主要分为2 类:一类是以R-CNN[5],Faster R-CNN[6]和Mask R-CNN[7]等为代表的双阶段网络,该类方法在生成候选区域的基础上对目标的类别和位置进行预测,以牺牲速度来保证检测的精度;另一类是以SSD[8],YOLO[9]和CenterNet[10]等为代表的单阶段检测网络,该类算法直接在特征图上对目标的类别和位置进行回归,具有较快的检测速度,但精度相对于双阶段网络略有不足。 学者们为将目标检测算法更好地应用于遥感舰船检测领域做了大量的研究工作。 文献[11]利用Mask R-CNN 实现了舰船和背景的分离,在筛选的过程中使用soft-NMS 进一步提高舰船检测的鲁棒性。 文献[12]借助Inception 结构[13]对YOLOv3网络进行改进,增强了主干网络的特征提取能力,避免了小尺度舰船在网络传递过程中出现特征丢失的问题,提高了网络对小目标的检测能力。 文献[14]利用密集连接进行多尺度特征的融合提高网络的表征能力,设计聚焦分类损失函数解决正负样本不平衡的问题,该算法在复杂场景下具有较强的舰船检测能力。 文献[15]在YOLOv3-tiny 的基础上,通过优化网络结构和引入空间注意力(Spatial Attention,SA)模块构建了一种轻量化遥感目标实时检测方法,该方法可用于嵌入式设备,并且对于遥感目标具有较好的检测效果。
尽管基于CNN 的舰船检测算法在多种场景中可以较好地完成舰船检测任务,但已有的研究大多将舰船作为整体进行检测,并未对舰船做更为精细化的检测,并且除了像文献[15]这种轻量型算法外,大多数算法因结构复杂、计算量大而无法嵌套至小型设备中,使算法不能很好地应用在实际任务中。李晨瑄等[16-18]在舰船要害检测方面做了大量的研究,所提算法可嵌入导弹导引头,用于引导打击,但该类算法针对的是末端制导问题,在遥感影像检测中表现欠佳。
针对上述问题,本文以YOLOv4-tiny[19]为基础,通过优化网络结构、引入SA 模型以及构建特征提取模块,提出了一种轻量化舰船关重部位实时检测算法——YOLOv4-I。 试验结果表明,所提方法对舰船关重部位具有较高的检测精度,并且模型计算速度快,可以达到实时性的要求。
目前,包含舰船目标的光学遥感图像数据集主要有HRSC2016[20],DIOR[21]和DOTA[22]等,各数据集样例如图1 所示,其中HRSC2016 是唯一一个仅包含舰船目标的数据集。 从图1 可以看出,现有的光学遥感数据集主要以舰船整体作为对象,舰船的部位信息未被凸显,难以支撑对舰船进行更为精细化的研究。 针对数据集欠缺的问题,从谷歌地图上下载了大量美、英、法等国军港区域内的遥感图像,并利用爬虫收集了部分公开舰船图像,构建了关重部位数据集(简称为RS-Ship),该数据集中的部分图像如图2 所示。 RS-Ship 数据集包含多种类型的舰船,并且舰船的尺度、排列方式以及所处场景多种多样,较完备地囊括了各类型舰船在遥感图像中所呈现的方式。 对比图1 和图2 可以发现,与其他数据集相比,RS-Ship 中图像的分辨率及清晰度较高,背景较为复杂,舰船各部位的特征更加明显,可应用于舰船部位的检测。 综合分析光学遥感图像特点以及舰船各部位的重要性,本文将舰船的指挥控制室(驾驶舱)作为关重部位,并对其进行深入研究。
图1 不同数据集的图像示例Fig.1 Example images of different dataset
图2 RS-Ship 数据集的图像示例Fig.2 Example images of RS-Ship dataset
RS-Ship 中图像尺度为800 pixel×600 pixel,使用LabelImg 工具对图像中的舰船及关重部位进行标注,按照4 ∶1的比例划分为训练集和测试集。 数据集的详细信息如表1 所示。
表1 RS-Ship 数据集详的细信息Tab.1 Details of RS-Ship dataset
YOLOv4-tiny 在YOPLOv4[23]的基础上设计而来,模型的参数大量削减,检测速度大幅提高,便于小型设备搭载。 以大小为608 pixel×608 pixel 的输入图像为例,YOLOv4-tiny 的结构框架如图3 所示。YOLOv4-tiny 首先利用CSPdarknet53-tiny 对特征进行提取,然后利用特征金字塔结构(Feature Pyramid Network,FPN) 融合P1 层和P2 层特征,最终在38 pixel×38 pixel 和19 pixel×19 pixel 两个尺度上进行预测。 与YOLOv4 相比,YOLOv4-tiny 的主干网络减少了残差模块的使用量,且仅用FPN 对2 层特征进行融合使模型结构进一步简化,其参数量仅为YOLOv4 的10%左右。 YOLOv4-tiny 结构简单使其具有优越的实时性,但也带来了特征融合不充分、利用率低以及显著性不突出等缺点,使其难以适用于复杂场景下小尺度目标的检测任务。
图3 YOLOv4-tiny 结构框架Fig.3 YOLOv4-tiny structural framework
YOLOv4-tiny 结构精简、检测速度快,可嵌入小型设备中使用,但其特征利用不充分、检测精度不高,无法对复杂场景中的小尺度目标进行精确检测。针对以上问题,本文对其进行以下改进:① 根据目标尺度对网络结构进行优化;② 充分利用舰船与关重部位的关系,增强舰船区域的特征显著性,降低背景对检测的影响,提高网络对关重部位的敏感度;③ 构建特征提取模块,对特征进行进一步提取,丰富特征图所包含的信息,使目标特征得到充分表征,进而提升检测精度。 本文所提框架如图4 所示。
图4 本文所提框架Fig.4 Proposed framework
RS-Ship 数据集中舰船及关重部位目标所占像素的统计结果如图5 所示。 可以看出,小于16 pixel×16 pixel 的舰船和关重部位分别占总目标的0.91%和24. 20%,小于8 pixel×8 pixel 的关重部位占1.26%。 网 络 输 入 为 608 pixel × 608 pixel 时,YOLOv4-tiny 中C5,C4 层的下采样步长分别为32,16,理论上该网络所能检测到的最小目标为16 pixel×16 pixel 左右。 由数据集中舰船的尺度分布情况可知,可将F5,F4 层用于感知舰船区域。 若将F5,F4 用于关重部位的检测会造成大量的漏检,而C3 层上能检测到的最小目标分辨率在8 pixel×8 pixel 左右,可以很好地规避这一问题,因此在C3层的基础上构建关重部位检测分支。 由于目标尺度差异大,上述结构在一定程度上仍存在漏检风险,但在所考虑尺度范围外的目标仅占目标总数的1%左右,在保证检测速度的条件下,这种因结构所导致的低漏检风险可以忽略。
图5 舰船及关重部位目标像素分布统计Fig.5 Target pixel distribution statistics of ships and critical parts
SA[24]是一种常用的注意力机制,通过利用特征图中各像素间的空间关系,有差别地突出或抑制像素强度,使目标特征的显著性得到增强,有助于生成有效的特征表达,降低背景的干扰。 如图2 所示,遥感图像背景复杂、关重部位尺度小,给检测网络带来了不小的挑战。 为提高关重部位的检测效率,降低误检概率,着重利用了舰船与关重部位固有的内在关系,具体实现过程如下:首先,利用F5 和F4 对舰船区域进行感知;其次,基于F4 形成舰船区域注意力图;最后,将注意力图映射到C3 上,对关重部位可能出现的区域形成初步限制,以降低海岸线上人造物(特征与关重部位相似)的影响,进而提高检测精度。 为降低引入SA 模块所带来的计算量,参照文献[23]中的做法对注意力模块进行构建,处理过程如图6 所示。 首先,对F4 进行上采样操作,使其尺度与C3 层保持一致;然后,采用1×1 的卷积操作降低通道数,利用Sigmoid 函数生成SA 矩阵;最后,将C3 层特征图与注意力矩阵进行加权,以增强舰船区域的特征显著性。
图6 SA 模块的处理过程Fig.6 Process of the SA module
在FPN 中,低层特征图分辨率高且包含丰富的细节信息,有利于小目标的定位。 相反,高层特征图分辨率低,但包含丰富的语义信息,有利于检测器对目标和干扰信号进行区分。 C3 层特征图经过SA 修饰后形成F3 层特征图。 F3 层特征图属于低层特征图,包含丰富的细节信息,但缺乏语义信息,并且由于卷积层数少,特征图难以充分表达目标特征。 针对以上问题,借助编解码器思想对关重部位的特征提取模块进行设计。 首先,利用残差块对F3 特征图进行2 次下采样操作;然后,利用反卷积操作对特征图的分辨率进行恢复,为防止空间信息的丢失,将经过残差块的特征图与对应经过反卷积操作后的特征图进行跳跃连接。 特征提取模块中各层详细的通道数、步长和卷积核大小等参数设置如图7 所示。
图7 特征提取模块的结构Fig.7 Feature extraction module network structure
在初始训练阶段,由于舰船定位不准确,所构成的SA 会对关重部位检测造成负面影响,甚至会出现损失不收敛的情况。 针对上述问题,借助迁移学习[25]的思想对网络进行训练。 首先,利用RS-Ship数据集中的舰船目标对YOLOv4-tiny 进行训练,将得到的网络参数作为YOLOv4-I 网络的初始参数;其次,冻结这部分参数,训练其他网络参数,训练轮数为50;最后,开放所有卷积层,训练轮数为100,整个训练过程使用Adam 优化器进行优化。
在Ubuntu18.04 系统中采用PyTorch 深度学习框架搭建网络,并使用NVIDIA GeForce GTX 1080Ti进行加速。 为了验证本文所提算法的有效性,在RS-Ship 数据集上进行了多组试验,使用每秒处理帧数(Frame Per Second,FPS)评价算法的检测速度,利用平均精度(Average Precision,AP)评价网络的检测性能。 FPS 和AP 计算式为:
式中,NFigure为检测的图像数量;Time为对应总时间;P为准确率;R为召回率。
为了评估SA 模块和特征提取模块对提升网络检测能力的贡献度,在RS-Ship 数据集上进行了4 组实验。 第1 组实验为原始YOLOv4-tiny 模型,第2 组实验为注意力增强型YOLOv4-tiny(YOLOv4-tiny+SA 模块),第3 组实验为特征增强型YOLOv4-tiny(YOLOv4-tiny+特征提取模块),第4 组实验为所提方法。 消融试验结果如表2 所示,其中“√”表示包含对应模块,“×”表示不包含对应模块。
表2 消融试验结果Tab.2 Results of ablation test
YOLOv4-tiny+SA 模块在YOLOv4-tiny 基础上提高了目标特征的显著性,降低了背景对检测的影响,使目标的漏检数量大幅降低,在RS-Ship 数据集上的AP 值达到了63.68%,比YOLOv4-tiny 高8.92%。YOLOv4-tiny+特征提取模块从提高特征表征能力的角度出发,在丰富特征的同时降低了不相关信息的影响,使网络的检测能力得到提升,在RS-Ship 数据集上的AP 值达到了65. 26%,较YOLOv4-tiny 提升了10.5%。 所提方法是嵌入SA 模块和特征提取模块的综合检测模型,在RS-Ship 数据集上的AP 值达到了最优,比YOLOv4-tiny 高17.12%。
通过与SSD(VGG-16),RetinaNet[26](ResNet-50),YOLOv3,YOLOv3-tiny,YOLOv4 和YOLOv4-tiny进行比较来验证本文算法的有效性,各网络模型在RS-Ship 数据集上检测的定量结果如表3所示。
表3 不同网络模型检测的定量结果Tab.3 Quantitative results of different network model detection
不同网络模型的PR 曲线如图8 所示。
图8 不同网络模型的PR 曲线Fig.8 PR curves of differentnetwork models
由表3 和图8 可以看出,YOLOv4-I 的检测AP值达到了71. 88%,与YOLOv4-tiny 相比,虽然增加了少量的参数,但AP 值提高了17.12%,且PR 曲线更加平稳;SSD 将VGG-16 作为主干网络,特征提取能力弱,导致小尺度目标漏检严重,关重部位检测的AP 值仅有11. 20%;RetinaNet 利用ResNet-50 网络进行特征提取,并引入FPN 进一步丰富特征,使网络的检测能力优于SSD,但FPN 的引入并不能完全规避小尺度目标对网络性能的影响,关重部位检测的AP 值为60. 78%;YOLOv3 在Darknet-53 的基础上引入了FPN 结构,特征提取能力得到增强,但网络的泛化能力不足,无法克服复杂背景的影响,对关重部位的检测表现较为中庸,存在较多的错检目标,检测的AP 值为65. 75%;YOLOv3-tiny 和YOLOv4-tiny 的网络结构较为精简,在检测速度上表现十分优秀,但由于特征提取能力不足,且仅利用下采样步长为16 和32 的特征图进行预测,导致二者对小目标的检测效果不佳,无法满足准确度要求;YOLOv4在YOLOv3 的基础上进行改进,并综合了多种检测算法的优点,对关重部位的检测表现最优,但其网络结构复杂,无法部署在小型设备上。 综上所述,本文算法以47.78 帧/秒的实时检测速度取得了71.88%的平均检测精度,很好地兼顾了检测速度和精度,且由于结构较为简单,参数量仅为8.3×1012,可以实现在小型设备上的部署。
各算法在RS-Ship 测试集上的部分检测结果如图9 所示。 可以看出,SSD 由于结构简单,无法对目标特征进行充分提取,存在较多的漏检目标;YOLOv3-tiny 和YOLOv4-tiny 对小尺度目标并不友好,存在较大的漏检风险;RetinaNet 和YOLOv3 引入FPN 在一定程度上降低了小尺度目标的漏检概率,但未能克服复杂背景的影响,存在较多的错检目标;YOLOv4 的检测效果较好,错检及漏检目标均较少;本文算法通过引入注意力模块及特征提取模块,有效地降低了背景的影响,使目标特征得到充分表征,检测表现与YOLOv4 较为接近。
图9 不同算法的检测结果Fig.9 Detection results of different algorithms
为了实现在小型设备上部署舰船关重部位实时检测算法,对复杂场景下的舰船目标实施更加精细化的检测,本文基于YOLOv4-tiny 提出了一种轻量化的舰船关重部位实时检测算法。 该方法通过优化网络结构及引入注意力机制,增强了网络对目标的感知能力;对关重部位的特征提取模块进行特殊设计,进一步提高了网络的表征能力,进而提高检测精度。 试验结果表明,YOLOv4-I 在保证模型体积较小的情况下,针对复杂场景中的舰船关重部位,可以有效地兼顾检测的精度和速度。