基于改进Swin Transformer的舰船目标实例分割算法
2023-10-11李晨瑄陈美杉郭继伟
钱 坤, 李晨瑄, 陈美杉, 郭继伟, 潘 磊
(1. 海军航空大学岸防兵学院, 山东 烟台 264000; 2. 中国人民解放军32127部队, 辽宁 大连 116100; 3. 航天工程大学研究生院, 北京 101416)
0 引 言
近年来,随着计算机图形算力的爆发式增长和人工智能算法的长足进步,计算机视觉领域进入了新的技术时代,图像分割作为计算机视觉的重要分支,是根据一定的规则将图像中的像素分成不同的部分,并添加相应标签,可以视为是图像分类识别向像素级的延伸,而其中的实例分割兼具了目标检测和语义分割的双重任务,在实现上更具挑战意义和实用价值。目前,实例分割已经广泛应用于汽车自动驾驶、智能辅助医疗和遥感影像判读等民用领域。在军事应用上,实例分割也是精确制导、侦察监视等研究领域的核心问题,对于推进军事现代化和信息化有着重要意义[1]。
早期的实例分割受益于目标检测相关研究成果的延伸,Hariharan等首次使用同时检测和分割算法[2]通过生成建议框、特征提取、区域分类与改良等步骤同时完成了检测和分割操作。He等人提出的掩模区域卷积神经网络(mask region-convolutional neural network, Mask R-CNN)[3]是一种功能强大的基线算法,通过添加预测兴趣区域的语义分割分支能够高效地完成实例分割任务,也引领了后续一系列改进算法的产生,如掩模评分区域卷积神经网络(mask scoring R-CNN, MS R-CNN)[4]、边界保持Mask R-CNN(boundary-preserving Mask R-CNN, BMask R-CNN)[5]等。Long等人提出的全卷积网络(fully convolutional networks, FCN)[6]是一种端到端的图像分割方法,通过使用全卷积网络、反卷积层和跳跃连接实现了图像分割,成为该领域的代表性算法。为进一步提升FCN算法的精度,Bolya等人提出了只看系数算法(you only look at coefficients, YOLACT)[7],该算法通过两个并行的子网络来实现实例分割,一个用来得到类似FCN的分割原型图,另一个用来得到检测框,然后融合原型图和检测框后得到掩码,其在处理速度上实现了突破,成为首个能够完成实时实例分割的算法,随后的YOLACT++算法[8]继续优化了算法结构和执行效率,进一步提升了算法速度和精度。
近两年来,发轫于自然语言处理(natural language processing, NLP)的Transformer[9]模型在计算视觉领域大放异彩,在实例分割研究中相较传统CNN展现出了极强的竞争力。基于Transformer的实例分割算法[10]是首个基于Transformer的实例分割框架,通过使用循环细化策略进行检测和分割,为实例分割提供了新角度。随后的基于Transformer的图像分割算法[11],使用Transformer预测每个实例类别,并动态生成具有多个分割的掩码级上采样模块,该算法与原始Transformer相比在运算速度和资源开销上更具优势。基于滑动窗口的Transformer(shifted windows Transformer,Swin Transformer)[12]实例分割算法,使用滑动窗口策略和层级化设计,其将注意力计算限制在一个窗口中,旨在引入与CNN卷积类似的局部性操作,并显著降低计算量,进一步提高了实例分割的速度和精度。随着对Swin Transformer模型研究的不断深入,如何在保持较低运算开销条件下尽量充分地实现上下文信息的交互,如何理解算法中自注意力机制的作用方式以及如何对其他模块进行优化等问题的提出,为进一步提升Swin Transformer模型性能提供了可能的方向。
海战场舰船目标精确识别与分割是反舰导弹末段图像制导的核心问题,对于舰船目标的检测识别算法很多,但细化至像素级的实例分割研究相对较少,已有研究也多是针对合成孔径雷达(synthetic aperture radar,SAR)图像进行实例分割[13],而SAR图像多为高空俯视视角,从俯视视角得到的舰船轮廓相对单一,对于数据集的准备和训练也相对容易。目前,现役主战反舰导弹为保证隐蔽突防的成功率,多采用低飞掠海攻击模式,从舰船侧视角接近目标时,舰船目标的尺度和角度变化更加剧烈,因此对于算法的要求也更高。为进一步提升海战场目标检测能力,实现精确化打击,对于将一般的目标检测识别延伸细化至像素级精度的实例分割,有着很强的实战意义。
本文提出了一种将改进Swin Transformer作为骨干网络的舰船目标实例分割算法,在Swin Transformer模块前增加了局部增强感知模块,旨在提高网络的上下文信息交互能力并拓展感受野,提高分割精度;在特征融合中使用反向特征金字塔(reverse feature pyramid,RevFP)网络,在优化分割准确率的同时进一步提升图像处理速度;使用在线困难样例挖掘方法,改善自制数据集难易样本失衡问题,优化算法在小样本数据集条件下的训练效果;在经过自制的舰船目标数据集训练后,相关实验结果表明,算法能够实现多角度、多尺度舰船目标实例分割,分割边缘清晰准确,相较基线算法兼具精度和速度优势。
1 基于Swin Transformer的实例分割算法
1.1 Transformer模型结构
Transformer模型最先在NLP任务中被广泛应用,在NLP任务中需要编码器抽取很多特征。其中,首先需要考虑的就是每个词的上下文语义,因为每个词的具体含义都跟上下文强相关,而上下文又分为方向和距离两个属性,传统的循环神经网络(recurrent neural network,RNN)[14]只能对句子进行单向编码,CNN只能对短句进行编码,而Transformer既可以同时编码双向语义,又能够抽取长距离特征,所以在上下文语义抽取方面要优于RNN和CNN。NLP任务需要抽取的第二种特征是序列的顺序,在这方面Transformer的表现一般介于RNN和CNN之间。NLP任务对计算速度是比较敏感的,由于RNN无法并行处理序列信息,因此表现最差,CNN和Transformer都可以进行并行计算,但Transformer模型结构稍显复杂,所以在速度方面稍逊CNN。综上,由于Transformer在效果和速度方面性能表现均衡,所以在NLP任务中很快便脱颖而出,之后随着研究的深入,Transformer被引入其他任务中,均有不俗表现,已隐隐呈现出成为高效的通用计算架构的趋势。
Transformer模型是一种典型的编码器-解码器结构,其中最为重要是多头自注意力(multi-head self-attention,MSA),残差连接和归一化(add &layer normalization,Add &LN)以及前馈网络3个模块。MSA负责将输入投影到不同空间,得到Q、K、V这3个矩阵,投影操作是避免后续矩阵Q和V直接进行点积操作,并使输入的每个部分能够融合上下文的语义,增加多样性,之后再进行注意力的计算。在Add &LN模块中先对注意力计算的输出进行投影和随机舍弃运算,加上原始输入后再进行LN操作,添加原始输入是参考了残差连接的思想,相当于在求导时增加了一个恒等项,达到避免发生梯度消失的目的。同时,归一化的做法在神经网络中主要起到提升网络泛化性的作用,另外,将归一化设置在激活函数之前,也能够有效避免数据落入饱和区,进一步减少梯度消失的情况。前馈网络模块主要作用是给Transformer提供非线性变换,提升拟合能力,在这一过程中选择了高斯误差线性单元(Gaussian error linear unit, GeLU)函数[15]作为激活函数,因为GeLU函数引入了正则思想,越小的值越有可能被舍弃,相当于线性修正单元函数(rectified linear units, ReLU)[16]和随机舍弃的综合,因为ReLU函数的值只有0和1,所以单纯使用ReLU就缺乏这样的随机性。
1.2 基于Swin Transformer的实例分割算法原理
Swin Transformer的创新性思想主要表现在层次性、局部性以及平移不变性。层次性体现在特征提取阶段使用了类似CNN中的层次化构建方法,对输入图像分别进行4倍、8倍和16倍的下采样,得到多尺度特征图。局部性主要体现在自注意力计算过程中,将计算约束在划分好的局部非重叠窗口内进行,使得算法复杂度从此前的和图像大小的平方关系变成了线性关系,大幅降低了计算量,提升了算法效率。在前后两层的Transformer模块中,非重叠窗口的划分相比前一层做了半个窗口的偏移,这样使得上下两个窗口的信息得到了有效交互,相比于CNN中常见的滑动窗口设计,保持了平移不变性的同时也没有造成准确率的降低。
Swin Transformer的算法流程大致如下,输入图像为H×W大小的RGB(red, gree, blue)三通道图像,首先通过图块分割模块进行分块操作,分为4×4大小的图块,之后沿3个通道方向进行展平,展平后大小为4×4×3=48,所以通过图块分割后图像由[H,W,3]变为[H/4,W/4,48],而后通过线性嵌入模块对每个像素通道数据进行线性变换,得到[H/4,W/4,C],以上操作均通过二维卷积实现,具体结构如图1所示。
图1 Swin Transformer网络结构Fig.1 Architecture of Swin Transformer net
随后数据进入Swin Transformer模块,经归一化后,进入窗口多头自注意力(windows multi-head self-attention,W-MSA)计算模块,将图像块进一步划分成互不重叠的区域,并在区域内计算自注意力;多层感知机(multilayer perceptron,MLP)是一个使用GeLU函数作为激活函数的前馈网络,旨在完成非线性变换,提升算法拟合能力。由于在W-MSA中,只会在每个窗口内进行自注意力计算,所以窗口与窗口之间是无法进行信息传递的。为此,引入了偏移(shifted W-MSA, SW-MSA)模块,在第L层划分互不重叠窗口后,在第L+1层内偏移半个窗口距离重新划分窗口,使得不同层中有部分窗口的信息得以交互,以上操作可以归结为第一阶段,Swin Transformer模块结构如图2所示。
图2 Swin Transformer模块结构Fig.2 Architecture of Swin Transformer blocks
为了得到多尺度的特征信息,还需要构建一个层级式结构,Swin Transformer网络中设计了图块拼接模块,来实现类似CNN中池化操作,经过拼接过后图像的宽高尺寸减半,通道数翻倍,而后再通过Swin Transformer模块,这样的结构以串联的形式相连,即图1中的第2阶段到第4阶段。
为应对不同需求,Swin Transformer实现了网络结构的系列化,其网络由简单到复杂依次是Swin-Ting,Swin-Small,Swin-Baes和Swin-Large,网络越复杂性能越强,但相应的计算开销也越大,图1就是以Swin-Ting为例绘制的。
2 基于改进Swin Transformer的舰船目标实例分割算法
2.1 算法框架
本算法使用Swin Transformer作为骨干网络,完成特征提取工作,图像进入图像分割模块后形成序列化小块,并沿通道方向展平,通过线性嵌入模块完成线性到非线性再到线性的3次变换;在进入Swin Transformer块前,先通过局部增强感知(local enhanced sensing,LES)模块,旨在进一步抑制无效特征,增强有效参数,提高上下文信息之间的交互;在特征融合阶段使用RevFP网络[17],在采用局部融合操作的同时,集成高级与低级特征,获得更好的融合效果和更低的延迟;在网络的训练阶段,使用在线困难样例挖掘(online hard example mining, OHEM)[18]方法,解决自制数据集难易样本不均衡,训练效果不理想的问题,通过设置负样本池反复迭代,使算法在小样本数据集上获得更好的效果;最后使用基于Mask R-CNN的检测头,完成实例分割任务。算法整体框架如图3所示。
图3 算法框架Fig.3 Algorithm framework
2.2 局部增强感知模块
在Swin Transformer模型中,为了在与图像大小成线性关系的计算复杂度下尽可能地实现上下文语义信息的“全局”范围交互,在层次化结构中使用偏移窗口方案来实现不同窗口间的信息交互。但实际上,每次偏移半个窗格,在空间上依然存在大量上下文信息不能很好地交流,为此,本文提出了在Swin Transformer模块前插入一个局部增强感知模块,旨在进一步提升信息交互能力,拓展感受野尺寸,具体结构如图4所示。
图4 带有LES模块的Swin Transformer骨干网络结构Fig.4 Swin Transformer backbone network structure with LES block
在卷积神经网络中,卷积核大小决定了卷积感受野的尺寸,而与之对应的是不同尺寸的感受野适合识别分割不同尺寸的目标,由于反舰导弹在接近舰船目标过程中,目标变化的过程具有多角度、多尺度特性,所以设计能够融合多尺度的感受野对于提升识别和分割精度有着重要作用。受“深度实验室”系列算法[19-22]启发,设计了包含3条并行支路的局部增强感知模块。
在Swin Transformer中数据流由向量构成,数据首先进行特征向量的重新投影,形成多维空间特征映射,然后通过并行的空洞卷积(dilated convolution, DConv)[23]分支,其中,每个支路中核大小为1×1的普通卷积旨在降低通道数,3条分支的空洞卷积扩张率分别为r=1,r=3和r=5,根据空洞卷积卷积核计算公式K=(r-1)(k-1)+k。其中,K为空洞卷积卷积核尺寸,r为扩张率,k为常规卷积卷积核尺寸,由此分别获得3×3,7×7和11×11大小的感受野,利用DConv来增加感受野尺寸并不以牺牲特征分辨率为代价,且可以在不同的尺度上对大范围的上下文信息进行良好编码,使特征图获取更精确的语义与定位信息,有效增强尺度、角度剧烈变化时的舰船目标识别分割的鲁棒性[24]。
数据通过3条扩张率不同的空洞卷积分支,X为输入特征,Y为输出特征,3条支路的输出如下所示:
(1)
式中:Conv为卷积核为k的普通卷积运算;DConv为扩张率为r的DConv运算。
通过并行的3条支路后,输出特征经通道拼接,通过GeLU激活函数,并采用残差网络思想,增加跳跃连接,随后输出至Swin Transformer模块。
2.3 基于RevFP网络的特征融合
在特征融合阶段,特征金字塔网络[25](feature pyramid networks,FPN)是目前最为常用的选择,其结构如图5(a)所示。后续相关研究提出了多种不同的架构,如路径聚合网络(path-aggregation network,PANet)[26],双向FPN(bi-directional FPN,BiFPN)[27]等,这些方法使用了不同形式的双向特征融合。相关实验表明,以上改进结构均能有效改善网络性能,已在目标检测、实例分割领域得到了广泛应用,但这些网络通常是以固定顺序堆叠特征金字塔,更长的信息链路,会降低推理速度。此外,由于FPN中仅在近邻层级特征进行了局部融合,这就导致非相邻特征的语义信息会被稀释。文献[17]提出了RevFP网络,这是一种利用局部双向特征融合的简化的双向金字塔推理架构,相比于其他双向金字塔架构,RevFP具有更好的性能、更小巧的模型和更低的延迟,RevFP结构如图5(b)所示。
图5 FPN和RevFP特征融合网络结构Fig.5 FPN and RevFP feature fusion network structure
传统的FPN网络采用自顶向下的方式将高层特征传递至低层特征,底层特征包含丰富的几何性状信息,而高层特征则包含更多的语义信息,FPN网络的信息传递可以描述为如下形式:
Pi=fi(Ci,Pi+1),i∈{2,3,…,6}
(2)
为进一步促进高效的双向特征融合,在RevFP网络中采用局部融合操作同时集成高级与低级特征:
Pi=fi(Ci,Ci+1,Pi-1)
(3)
式中:Ci为特征提取骨干提取的特征,i为阶段数,即图像特征分辨率减半的次数。如C3表示特征提取第3阶段,输出为原图像1/8尺寸的特征图,对应融合后的输出记作Pi。
2.4 在线困难样例挖掘
在线困难样例挖掘主要用于解决数据样本不均衡或简单样本过多的问题。通常情况下,在训练网络的最后阶段,当前的网络模型会对所有训练集中的样本进行测试,逐个分析其当前的损失函数值,并将样本按照置信概率误差进行降序排列,其中误差较大的样本就是所谓的困难样例。
在理想状态下,一个数据集的难易样例设置应该是相对平衡的,但在小规模或自制数据集中,样本难易不平衡的现象几乎普遍存在。比如掠海攻击视角,舰船目标角度变化明显,导致相同部位在不同角度上观察变化巨大;再如,数据集规模较小时,对于某类目标的特征学习不够,会导致损失函数和训练效果退化。为提高数据集利用效率和算法精度,受数据增强和在线困难样例挖掘思想启发,设置了负样本检测池,在训练20轮后,将每批次检测准确率小于0.5的样本置于负样本检测池中,累计64个负样本后,将其重新投入网络进行训练,反复迭代以改进算法对于困难样本的特征提取能力。
3 实验结果
3.1 实验环境及数据集
为模拟反舰武器掠海攻击模式末段图像制导呈现的影像,选用文献[28]提出的基于水平或低视角的舰船目标数据集,数据集共有1 554幅图像,作战舰艇区分航空母舰和驱逐舰,分别有636幅和741幅,民用船只包含渔船、液化天然气船、集装箱船、快艇、帆船等类别,共558幅,由于网络支持多分辨率图像训练,所以没有统一图像大小,所有图像大小介于500×680至1 280×960之间。
为强化反舰武器打击效果,标注过程中将舰体主体作为重点标注目标,舰体外缘突出的垂直天线、舰炮炮管等细长状目标,以及甲板栏杆、雷达天线等存在较大间隙的目标不作为舰船主体进行标注,标注示例如图6所示。
图6 标注示例Fig.6 Annotation example
经统计,共标注1 052幅图像,每图像平均标注1.23个目标。标注使用开源工具labelme,并将标注后生成的.json格式的文件使用脚本转换成微软通用目标语义(Microsoft common objects in context, MS COCO)数据集[29]标准格式,并按照MS COCO数据集的目录构成要求进行文件的组织和保存。另外,在训练前还需要将标注好的数据集按照8∶1∶1的比例随机划分为训练集、测试集和验证集,3个子集的数量分别为842幅、106幅和104幅。具体标注情况如表1所示。
表1 数据集标注信息统计表Table 1 Statistical table of dataset annotation information
算法依托深度学习主流开源框架PyTorch,使用NVIDIA CUDA GPU加速神经网络的训练和推断,具体实验环境如表2所示。
表2 实验环境Table 2 Experimental environment
3.2 评价指标
在图像实例分割研究中,常用MS COCO数据集中的一些评价指标来衡量算法的优劣,最主要的指标是平均精度(average precision,AP),表示对某一类目标检测精度,AP由交并比(intersection-over union,IoU)定义,IoU表示两个实例掩码的重叠度。其他比较重要的性能指标还有参数量和帧率(frame per second, FPS),参数量由网络模型结构确定,单位为M,FPS主要用来衡量算法执行的速度,常用的评价指标如表3所示。
表3 MS COCO数据集主要评价指标Table 3 Main evaluation indexes of MS COCO dataset
3.3 实验结果与分析
将网络在舰船目标数据集上进行训练,待网络收敛后,得到改进后的网络模型和相应的权重文件,为验证算法性能,在相同实验平台和训练数据条件下,选择5个经典的实例分割算法进行性能对比,分别是FCN、Mask R-CNN、级联Mask R-CNN(Cascade Mask R-CNN)、YOLACT++算法和以Swin-Ting为骨干网络的Swin Transformer算法。由于本文算法的骨干网络是在Swin-Ting基础上改进而来,所以在实验对比对象的选择上也尽可能选择网络模型大小相近的算法进行对比,具体实验结果如表4所示。
表4 算法对比结果Table 4 Algorithm comparison results
图7为本文算法与基线算法的实例分割结果对比图,图7(a)组中放大区域显示本文算法相较基线算法对目标边缘的分割效果更加准确;图7(b)组中基线算法出现了误检;图7(c)组中两个算法均准确分割出目标,但本文算法给出的目标置信概率显著高于基线算法;图7(d)组基线算法出现了错检,将航空母舰同时识别成了航空母舰和驱逐舰。
图7 对比实验结果示例Fig.7 Examples of comparative experimental results
3.4 消融实验
为验证不同模块对于实例分割算法的影响,设计了消融实验,消融实验依然以原始Swin-Ting+FPN,且无OHEM辅助训练的算法作为基线算法进行对比。6组消融实验是单一模块或两两模块的组合算法,最后一组是本文的完整算法,即改进Swin-Ting+RevFP+OHEM,具体实验结果如表5所示。其中,“×”表示未使用该模块;“√”表示使用了该模块进行改进优化。
表5 消融实验数据Table 5 Ablation experiment data
实验结果表明,单一或组合模块的改进在分割准确度或处理速度上大多可以产生正向优化效果,证明对原始基线算法的改进是有效的。其中,LES模块对于网络分割准确度的提升比较明显,但也会相应增加一定计算开销,降低图像处理速度;RevFP模块的主要贡献在于对算法处理速度的提升,对准确度的提升相对有限;在基线算法基础上单独应用OHEM方法即可对算法精度有一定提升,证明了数据集的样本难易平衡性能够直接影响网络训练效果,在规模较小的数据集上能够取得相对优异的训练效果,这对于样本容量和质量比较有限的自制数据集有着重要意义。为进一步验证OHEM方法在该方面的作用,还进行了60%和80%训练集的实验,结果如表6所示。
表6 不同规模训练集训练效果对照实验结果Table 6 Comparative experimental results of training effects of different scale training sets %
实验结果表明,在数据集样本容量相同情况下,使用了OHEM方法进行训练的Swin-T网络训练结果均优于基线算法,在80%数据集条件下,mAP高出0.9%,在60%数据集条件下,mAP高出1.2%,在数据集容量有限的情况下,优势有扩大趋势。
4 结束语
传统舰船目标识别多使用检测框标示出目标,为将目标识别延伸至像素级别,本文提出了一种基于改进Swin Transformer的舰船目标实例分割算法,可以实现多尺度,多角度,基于掠海攻击视角的多类别舰船目标实例分割,算法分割精度、速度均优于基线算法,结合消融实验,论证了对算法改进的有效性。
(1) 针对传统Swin Transformer模型存在图像上下文信息交互不充分的问题,设计了由并行DConv分支组成的局部增强模块,拓展感受野尺寸和语义交互能力,使算法mAP提高0.9%。
(2) 针对传统FPN特征融合网络存在非相邻的特征语义信息被稀释的问题,使用RevFP网络进行替代,在分割精度和速度上均有不同程度提升。
(3) 针对自制数据集样本数量较少,样本难易程度不平衡导致的训练结果不佳的问题,使用OHEM方法反复迭代以改善训练效果,切实提升了小样本数据集的训练效果。
下一阶段的研究重点是进一步提高网络模型的特征提取能力,并建立样本数量更大的舰船目标数据集,重点解决复杂岛岸背景下的舰船目标识别或实例分割问题。同时,将算法迁移至嵌入式平台端,对弹载平台的分割效果进行实验验证。