张冬冬,王春平,付 强
(陆军工程大学石家庄校区 电子与光学工程系,河北 石家庄 050003)
舰船检测是计算机视觉领域的研究热点,一直备受国内外研究人员的关注,其在海上交通管理、安全威胁监测、海上救援等领域发挥着重要作用[1-2]。在深度学习技术发展的驱动下,舰船检测的精度和速度得到了大幅提升[3],已基本能满足人们的日常需求。但随着信息技术的飞速发展,一些特殊任务,比如精确制导,需要对舰船做进一步的精细化检测[4-6]。
精细化检测是指对目标相对重要的部位进行检测,对于舰船目标,指挥控制室、动力舱、导弹发射井和弹药舱等部位重要程度较高[4,7]。由于不同类型舰船的应用方向差异较大,导弹发射井和弹药舱仅存在于特殊用途的舰船上,并且由于光学遥感图像是俯瞰视角成像,动力舱的可视性差,因而上述几个部位不宜作为精细化检测的对象。相对而言,舰船的指挥控制室的可视性好、重要性强,且存在于多种舰船上。因此,本文选取指挥控制室作为舰船的关重部位并对其进行深入研究。
近年来,随着深度学习的发展成熟,基于卷积神经网络(convolutional neural network,CNN)的目标检测算法成为当前的主流方法。基于CNN 的目标检测算法主要分为两类:一类是以R-CNN[8]、Faster R-CNN[9]、Mask R-CNN[10]等为代表的双阶段网络;另一类是以SSD[11]、YOLO[12]、RetinaNet[13]等为代表的单阶段检测网络。总体来说,双阶段网络检测精度高,但速度慢;单阶段网络检测速度快,但精度偏低。上述具有代表性的网络均是基于水平框的检测模型,并在多种类型的目标检测实验中取得了较优的结果,但对舰船这类具有方向性和大长宽比的目标检测效果不佳。针对这一问题,Liu 等通过引方向参数,将水平框变换成旋转框,使检测框更好地与舰船进行贴合,有效提高了舰船目标的检测精度[14]。Ding 等提出了RoI Transformer[15],通过空间变换将水平RoI 转化为旋转RoI,避免使用大量锚框,并能缓解错位问题。R3Det 通过由粗到细逐步精化的方式实现快速、准确地检测目标[16]。在不断的优化下,基于CNN 的舰船检测算法的精度得到了大幅提升,可以较好地实现舰船检测任务,但仍未对舰船进行精细化检测,无法应用于一些特殊任务中。
针对上述问题,本文以RetinaNet 为基础,通过优化网络结构、引入注意力机制、构建语义掩膜网络(semantic mask network,SMN)以及增加方向属性,提出了一种用于复杂背景下舰船关重部位检测的网络(CPDNet,critical part detection network)。实验结果表明,与其他网络模型相比,所提网络可以实现对舰船关重部位的精确检测,并有较好的时效性。
RetinaNet 是一种高效的单阶段检测网络,通过利用Focal Loss 来缓解单阶段网络中存在的正负样本不平衡的问题。若将RetinaNet 直接用于遥感舰船关重部位的检测,效果并不理想。主要原因有两点:1)关重部位特征不够显著,网络无法对其特征进行充分描述;2)受背景影响较大,漏检和误检概率增大。针对以上问题,本文以RetinaNet为基准,提出了CPDNet,整体架构如图1 所示。本文对RetinaNet 的改进主要包括以下几个方面:1)优化特征金字塔网络(feature pyramid network,FPN)以更好的表征关重部位特征;2)构建SMN以降低背景影响;3)增加方向描述使定位更加精确。
图1 CPDNet 的整体架构Fig.1 Overall structure diagram of CPDNet
为提高对多尺度目标的检测能力,Retina-Net 使用FPN 进行特征融合,但这种融合方式对小尺度目标并不友好[17]。一方面,随着网络深度的加深,低层细节特征不断地被整合成高层语义信息,导致高层特征图中缺少目标的细粒度信息。另一方面,在多次下采样的过程中,小尺度目标的像素逐步减少,受背景影响,特征显著性难以被凸显,导致网络对小尺度目标的检测效果不佳。鉴于以上分析,我们从丰富特征信息和提高特征显著性两方面入手,设计了FE-FPN,如图2所示。
图2 FE-FPN 结构图Fig.2 Structure diagram of FE-FPN
FE-FPN 在初始FPN 的基础上增加了一条低层特征融合路径,通过融合低层特征来丰富高层特征图所含的细粒度特征。此外,为提高目标显著性,在金字塔自上而下的连接路径中增加空间注意力模块[18]。与F3 和F4 相比,F5 在构建过程中缺少了图2 中虚框部分,其余构建过程均相同。特征图Fi∈R2W×2H×2C的构建过程可表示为
式中:Fi+1∈RW×H×4C、Ci∈R2W×2H×2C、Ci-1∈R2W×2H×C、Att(·),表示空间注意力机制;σ(·)表示Sigmoid 函数;f7×7和f1×1分别表示7×7 卷积和1×1 卷积;AvgPool和MaxPool分别表示平均池化和最大池化;g2X-up和g2X-down分别表示2 倍上采样和2 倍下采样;+和⊕分别表示像素相加和通道叠加的融合方式。
光学遥感图像包含丰富的细节信息,能够直观呈现目标的纹理、颜色、形状等信息,同时也能清晰展现目标所处的场景。光学遥感图像舰船关重部位检测的一大难点是场景复杂度高,要想提高模型对关重部位检测的精度,需要尽可能降低背景对检测的影响。为降低无关区域对检测的干扰,本文提出了SMN。该模块利用语义信息生成语义掩膜,语义掩膜经膨胀处理后作用于FEFPN 生成的特征图,对不可能出现目标的区域进行遮蔽,从而降低背景对检测的影响。SMN 主要由上下文信息提取模块(contextual information extraction module,CIEM)和语义特征提取模块(semantic feature extraction module,SFEM)组成。
1.2.1 CIEM
上下文信息对于语义分割任务至关重要,它可以提升网络对目标的感知力,提高语义分割的连续性,进而获得较为鲁棒的输出。通过设计CIEM,使网络更好地感知目标轮廓,为后续语义信息的提取奠定基础。如图3 所示,CIEM 主要由5 层组成,采用1×1 卷积增加通道相关性,3×3 卷积保留原始特征,2 个膨胀因子为(2,5)的3×3 卷积组成的膨胀序列和2×2 的最大池化层(后接上采样操作)提取多尺度上下文信息。将所有层以通道相加的方式进行融合,随后利用1×1 卷积来减少通道数量。
图3 CIEM 结构图Fig.3 Structure diagram of CIEM
1.2.2 SFEM
在SMN 中,SFEM 的构建是关键,它对语义掩膜质量的好坏起着决定性作用。为获取精确的语义掩膜,需要对特征图中的每个像素进行分类。采用跳跃连接[19]和反卷积操作[20]将带有上下文信息的高级特征图和带有位置信息的低级特征图结合起来,通过多级特征图的叠加和上采样获得每个像素的分类结果。SFEM 的结构如图4 所示,各层的详细参数如表1 所示。具体步骤可概括为:首先将低层特征图与具有相同尺度的高层特征图按通道叠加的方式进行拼接;然后将拼接的特征导入反卷积层,降低特征图尺度并进一步提取图像特征;最后使用较少的卷积核来调整特征图的深度。经过Conv 5 后,得到一个类别标签图和一个语义特征图。类别标签图用于计算语义分割损失,语义特征图用于生成语义掩膜。
表1 SFEM 各层的详细参数Table 1 Detailed parameters of each SFEM layer
图4 SFEM 结构图Fig.4 Structure diagram of SFEM
特征图C5 经过CIEM 和SFEM 两个模块处理后得到了相应的语义特征图,对语义特征图进行二值化处理得到语义掩膜图。在生成语义特征图的过程中,语义分割结果不准确可能会导致舰船关重部位缺失。针对这一问题,我们对语义掩膜图进行了膨胀处理,通过扩张舰船区域来降低分割不准确带来的影响。在膨胀处理过程中,若膨胀结构元素尺寸过小,则无法弥补误分割的偏差;若膨胀结构元素尺寸过大,则会引入背景信息,对检测精度造成影响。本文使用大小为11×11 的膨胀结构元素,相关实验在2.2 节进行介绍。膨胀处理后的语义掩膜图经不同倍数的上采样操作后分别作用于F5、F4 和F3,通过掩蔽非舰船区域来提高关重部位的检测精度。
RetinaNet 使用水平框来定位目标,而遥感图像中的舰船关重部位具有方向性,水平框在标定时会包含大量的冗余信息,影响检测器的精度。因此,我们按照R3Det 的构建方式对RetinaNet 进行改进。在原有的四坐标基础上,增加一个方向参数θ,即用5 参数(x,y,w,h,θ)来表示旋转框。其中(x,y)表示旋转框的中心坐标,θ是旋转框与水平轴(x轴)夹角的锐角,其范围为[-90°,0°],用于定义θ的边为宽w,另一边为高h。在回归子网络中需要增加对角度偏移量的预测,旋转框偏移量计算公式如下:
式中:(xa,ya,wa,ha,θa)表示锚框的位置坐标;(x,y,w,h,θ)和(x′,y′,w′,h′,θ′)分别表示真实框和预测框的位置坐标;(tx,ty,tw,th,tθ) 和分别表示锚框偏移量和预测框偏移量。
所提网络的损失函数由语义分割损失Lseg、分类损失Lcls和回归损失Lreg三部分组成,计算公式如下所示。
式中:λ、α和 β是权重参数,用来平衡不同损失间的差距。
Lreg由每个像素的预测标签和真实标签间的交叉熵损失计算得到,计算方法如下:
式中:W×H表示掩膜大小;M(·)和M′(·)分别表示标签的真实值和预测值。
Lcls由下式计算得到:
式中:N表示锚框数量;pn表示样本被正确预测的概率;αn设为0.25;γ设为2。
Lreg的计算方式与R3Det 相同:
式中:objn取值为1 或0(objn=1表示前景,ob jn=0表示背景);表示预测偏移量;vn表示目标的真实向量;|·|表示向量取模;f(·)表示与相关的损失函数;IoU(·)表示水平框的交并比。
实验在配置为E5-2630v2 CPU、NVIDIA GTX-1080Ti GPU(11G video memory)、64G RAM 的图像工作站上进行,以Ubuntu18.04 为平台,在深度学习框架Pytorch1.6 下编译完成。为从定量角度验证所提网络的有效性,使用每秒处理帧数(frame per second,FPS)评价网络的检测速度,利用准确率(Precision,P)、召回率(Recall,R)、平均精度(average precision,AP)评价网络的检测性能。各评价指标定义如下:
式中:NFigure为所处理的图像数量;Time是图像处理总时间;TP为正确分类的正样本数量;FP为错误分类为正样本的数量;FN为错误分类为负样本的数量。
数据集:当前用于舰船检测的光学遥感数据集,比如HRSC2016[21]、DIOR[22]、DOTA[23]等,均以整体舰船作为目标进行标注,多用于舰船位置的检测任务。将舰船部位作为研究对象时,数据集中应包含明显的部位信息,目前所存在的数据集无法满足这一需求。针对数据集欠缺的问题,我们利用谷歌地图从世界上一些著名的港口(珍珠港、横须贺军港、朴次茅斯军港等)下载了1 015张图像,构建了CP-Ship 数据集,数据集的详细信息如表2 所示。CP-Ship 中图像尺度像素为800×600,使用roLabelImg 和Labelme 分别对图像中的关重部位和舰船进行标注,如图5 所示。roLabelImg 的标注数据用于网络对舰船关重部位的训练和测试,而Labelme 的标注数据用于语义分割的训练。
表2 CP-Ship 数据集详细信息Table 2 Details of CP-Ship dataset
图5 标注示意图Fig.5 Schematic diagram of labeling
训练细节:使用ResNet-50[19]作为主干网络,利用在ImageNet[24]上训练的ResNet-50 权重初始化主干网络。训练过程中,网络在随机梯度下降法(stochastic gradient descent,SGD)下进行36 轮迭代训练,初始学习率为0.002 5,批次大小为2。在迭代24 和33 轮时,学习率分别降低10 倍。权重衰减和动量分别设置为0.000 1 和0.9。
SMN 中使用膨胀操作的目的是降低误分割的影响,合适的膨胀结构元素可以提高检测精度。为选取合适的膨胀结构元素,改变模型中膨胀结构元素大小进行实验,通过对比检测的平均精度来确定膨胀结构元素大小,相关实验结果如表3所示。
表3 膨胀结构元素尺寸选取Table 3 Size selection of expansion structure element
从表3 可以看出,随着结构元素尺寸的增大,检测的精度呈现先增大后减小的态势。当结构元素大小为11×11 时,网络的检测精度最高。因此,本文采用结构元素为11×11 的膨胀操作。
为评估FE-FPN、SMN 以及角度参数对网络检测能力的贡献,以RetinaNet 为基准,通过添加单个或多个模块进行实验,实验结果如表4 所示。
表4 消融实验结果Table 4 Results of ablation experiment
从表4 中可以看出,通过增加角度参数使RetinaNet 的AP值提高了2.23%,证明了角度参数对于检测具有方向性目标的重要性。在增加角度的基础上,将RetinaNet 中的FPN 替换成FE-FPN,AP值提高了3.81%,说明在丰富特征的基础上增加注意力机制可以提高网络的检测能力。在上述基础上增加SMN 大幅提高了检测精度,说明在复杂背景下,通过降低背景的影响可以提升网络的检测性能。
为更加直观说明FE-FPN 和SMN 两个模块的作用效果,对FPN 和FE-FPN 的F4 层特征图以及经过掩膜修饰用于检测的特征图进行可视化,如图6 所示。通过对比图6 中第2 列和第3 列可知,FE-FPN 在丰富特征的同时可以突出目标的显著性;将第4 列与前两列进行对比发现,经过掩膜修饰后特征图所包含的背景信息大幅减少,可以降低背景对检测的干扰,目标的显著性也得到了凸显。
图6 特征图可视化示例Fig.6 Visualization examples of feature images
为验证所提网络的有效性,将CPDNet 与一些流行的目标检测算法进行对比分析。所用对比模型的相关代码来源于OpenMMLab 平台。各网络模型在测试集上检测的定量结果和PR曲线如表5和图7 所示。
表5 不同网络模型的定量结果Table 5 Quantitative results of different network models
图7 不同网络模型的PR 曲线Fig.7 PR curves of different network models
从实验的定量结果中可以看出,双阶段网络的检测性能要优于单阶段检测网络,但在检测速度上不占优势。单阶段网络和双阶段网络存在共点:对于具有方向性的目标,通过引入旋转框进行检测可有效提高检测精度,但引入旋转框会增加网络的参数量,使整个网络的检测速度大幅下降。RetinaNet 网络结构简单,易受复杂背景的影响,舰船关重部位目标的漏检和误检数量在所有对比算法中最多。与RetinaNet 相比,所提网络的AP值提高了11.35%,并且FP和FN各有不同程度的降低,虽然检测速度有所下降,但在使用旋转框进行检测的网络中,所提网络的检测速度占有一定的优势。从PR曲线图中可以看出,CPDNet 的PR曲线与坐标轴之间所围面积大于除ReDet 外的所有模型,并且曲线最为平稳,表明所提网络的检测性能较好。
从各方法的检测速率来看,水平框检测算法的平均检测速率要快于旋转框检测算法,究其原因是角度参数的引入会增加整个网络的计算量,影响网络的推理速度。在旋转框检测算法中,CFA以简单的网络结构和轻量的计算方式在检测速度上占绝对优势,ReDet 的双阶段网络结构和复杂的特征提取方式使其检测速度居于末尾。CPDNet在RetinaNet 基础上进行了多种改进,致使其检测速度较RetinaNet 略有不足,但在水平框检测算法中处于前列。综上所述,所提算法在同类型的算法中具有较高的优越性,较好地兼顾了检测的速度和精度。
为更加直观地对以上9 中方法进行比对,图8给出了不同模型的可视化检测结果。从图8 中可以看出,与水平框相比,旋转框与目标更加贴合,可以更加直观反映出目标的位置;对于并列目标,Faster R-CNN、Dynamic R-CNN、RetinaNet 因水平框之间存在交叠,致使出现大量误检目标;ReDet、Oriented R-CNN、Oriented R-CNN 和Oriented R-CNN虽然借助旋转框改善了对并列目标的检测效果,但受复杂背景影响,存在大量的漏检目标。通过对比,所提方法的漏检和误检数量均最少,整体检测效果较好。总而言之,所提方法使用旋转框保证了对并列目标的检测效果,通过丰富特征及引入注意力机制,提升了应对各类背景的能力,使用语义掩膜规避背景对检测的影响,降低了误检概率,适用于复杂背景下舰船关重部位检测任务。
图8 不同网络模型的检测结果可视化示例Fig.8 Visualization examples of detection results of different network models
本文对舰船的精细化检测作了进一步研究,在RetinaNet 检测算法的基础上,提出了一种用于舰船关重部位检测的网络模型。该模型以ResNet-50 为主干网络提取图像的深层次特征;通过优化FPN 结构以及引入注意力机制的方式提高模型的特征表达能力,并提升模型对关重部位目标的敏感度;利用SMN 网络模块构建出区域掩膜,降低背景对检测的影响,从而降低误检概率提高检测精度;检测器通过5 参数的旋转框实现舰船关重部位的定向检测。在CP-Ship 数据集上的实验结果表明:所提网络的关重部位检测精度AP较RetinaNet提高了11.35%;与其他旋转框检测模型相比,所提网络在速度和精度上均占有绝对的优势,验证了所提网络对关重部位检测的有效性和优越性。