基于注意力机制特征重建网络的舰船目标检测
2021-09-11陈小前季明江郭鹏宇冉德超
牛 戈,陈小前,季明江,郭鹏宇,刘 勇,冉德超
(军事科学院 国防科技创新研究院,北京 100071)
0 引言
信息化时代使深度学习技术突飞猛进,遥感领域相关工作也因深度学习的接入融合而不断发展。近年来,遥感目标检测由基于人工提取特征的传统方法,发展到以神经网络模型为驱动,对特征进行提取、学习并产生检测结果的方法,算法的检测精度以及运行速度都有大幅提升[1]。针对光学遥感图像的舰船目标检测作为海运交通、国防预警等领域的重要应用技术,有着不可替代的战略意义。特别是随着嵌入式智能图像处理平台的快速更新,舰船目标检测算法的在轨应用迎来了新的发展,也给嵌入式遥感图像舰船目标智能检测研究带来了新的挑战。
回顾目标检测发展历史,在AlexNet 完善了神经网络结构[1]后,2014 年以区域建议为核心技术的R-CNN[2]的诞生,标志着目标检测全面进入深度学习时代。经典的目标检测算法可划分为Anchorbased、Anchor-free 两类。Anchor-based 类目标检测算法通过Anchor 机制对图像中设定的各个锚点生成密集的锚框,使得网络可以针对这些锚框进行边界框回归和目标分类,主流的Anchor-based 类算法有Faster R-CNN[3]、FPN[4]、YOLO[5-6]、SSD[7]、Retina-Net[8]等。Anchor-based 类算法需 要设定一些超参数,例如锚框长宽比、尺度和交并比(Intersection-over-Union,IoU)阈值等,参数的设定一定程度依赖先验知识,并且由于生成锚框数量过多,可能产生很多不包含目标的冗余框,从而造成正负样本比例严重失衡。Anchor-free 类算法将检测分为确定物体中心和4 条边框这2 个子问题,拥有更大更灵活的解空间和更少的Anchor 计算量,主流的Anchor-free 类算法有DenseBox[10]、YOLO[11]、Corner-Net[12]、Center-Net[13]等。Anchor-free 检测算法虽然优点很多,但当前算法的正负样本不均衡的问题严重,并且当图像中2 个目标中心点重叠时,可能会产生语义模糊问题,从而导致检测结果不稳定。
遥感图像中的目标具有背景复杂、旋转排列紧密、尺度变化大且呈长尾分布等特点,这些特点也是遥感图像目标检测的难点,经典目标检测算法在遥感数据集中的检测效果较差。最近,基于深度学习的遥感目标检测算法已经取得了一定进展:Gliding Vertex 采用Faster R-CNN 结构[14],通过改变传统边界框的表示方式避免了四边形角点排序,实现了遥感目标密集排列下的旋转框检测;文献[15]针对未来卫星在轨遥感目标检测问题,改进YOLOv3网络,使用轻量化特征提取网络结合基于IoU 的改进版聚类算法,在加快算法运行速度的同时提升了检测精度;SCRDet 通过引入注意力机制弱化背景特征[16],结合通道注意力和像素注意力网络增强了对小目标的检测效果;R3Det 为保持特征一致性[17],设计出FRM 模块产生新的特征图,通过改善特征不对齐问题,达到较高的遥感目标检测精度。在遥感图像舰船检测方面,2017 年的RR-CNN[18]基于两阶段目标检测算设计了RRoI 池化层提取旋转目标特征,实现了舰船目标的旋转边框回归;RoI Transformer[19]作为3 阶段检测算法,通过RRoI Learner 和RRoI Warping 两部分模块将区域生成网络(Region Proposal Network,RPN)输出的水平检测框变换为旋转检测框,在不增加锚点数量的前提下实现更精确的旋转-感兴趣区域(Region of Interest,RoI)的获取;文献[20]通过改进Faster R-CNN 网络,采用双路特征提取骨干网结合MFPN 网络进行检测,在第2 阶段提出自适应旋转区域生成网络产生旋转框;RRPN[21]在Faster R-CNN 基础上将旋转框融入区域提取网络RPN 中,将RoI Pooling 改进为Rotation RoI Pooling 并在优化过程中加入角度回归实现旋转目标检测。这些方法在HRSC2016 数据集[22]或DOTA 数据集[23]上都取得了较好的检测结果,但针对舰船目标检测任务仍有改进空间。
为了更精确定位和分类遥感图像舰船目标,本文以Anchor-based 方法中的Retina-Net 为基础框架,改进特征提取骨干网络,加入基于通道注意力机制的压缩-激励(Squeeze and Excitation,SE)模块[24],提升算法对感受野的自适应能力。通过特征重建模块在精炼阶段重建特征图缓解特征不对齐问题,融合水平锚框与旋转锚框检测策略,专注提升遥感数据集中舰船类别的检测精度,并评估了算法在模拟星载嵌入式智能图像处理平台上应用的检测精度和速度。
1 算法设计
本文选用一阶段Anchor-based 的Retina-Net 为算法框架,在不牺牲检测速度的前提下实现更高精度的舰船目标检测,通过Focal Loss 损失函数缓解目标类不平衡的情况,从根本上改善了一阶段检测器准确率低的问题,并且通过多尺度特征融合网络FPN 提高了多尺度目标的检测效果。遥感图像中的目标尺寸普遍较小,并且呈任意旋转、密集排列,给检测算法带来了极大的挑战。本文设计实现的检测算法结构如图1 所示。先将预处理后的图像数据送入加入SE 模块的骨干网络来提取特征,将得到的P3~P7 特征图来构建特征金字塔,自上而下结合横向连接的结构,对含有更强语义信息的深层特征的表达进行了加强。每层特征金字塔分别连接分类子网络和回归子网络,将2 个子网的组合输出进行特征重建,重建后的新特征图再次经过分类和回归子网,即完成一次精炼阶段,级联部分设定2 个不同阈值的精炼阶段,最终输出得到旋转目标的检测结果。
图1 算法结构框图Fig.1 Block diagram of algorithm structure
1.1 加入通道注意力机制的骨干网络
深度学习时代的目标检测算法通常构建在CNN 分类网络之上。近年来,注意力机制技术成为了目标检测的热点,SENet 从通道层面入手,设计了通道注意力机制的CNN 分类网络,使网络学习不同通道特征的重要程度,能够自适应地调整各通道的特征响应值。SENet 提出SE 模块,先将图像通过卷积层后产生的特征图压缩(Squeeze),把特征图各个通道包含的所有信息编码为全局特征,具体采用全局平均池化(Global Average Pooling);之后通过激励(Excitation)操作学习并调整各个通道的权重,具体由1×1 点卷积实现Bottleneck 结构,即2 个全连接层(Fully Connected Layers,FC),其中,第1 个FC 使维度降低,然后通过激活函数ReLU,再由第2个FC 恢复至原始通道维度并使用Sigmoid 函数激活,最后SE 模块的输出与原特征图作乘积更新原始特征图。
如 图1所示,将SE 模块嵌入ResNeXt 或ResNet 残差学习分支中,算法模型增加了不到10%的参数量,而计算量仅增加不到1%。整个过程能够让算法更加关注信息量大的通道特征,一定程度抑制了不重要的信息,赋予了算法更强的辨别能力,这对于背景复杂的遥感图像检测而言尤为重要。
1.2 融合水平锚框和旋转锚框的检测方法
目标长宽比大以及任意旋转的特性是舰船目标检测的难点,任意角度倾斜的舰船会导致其水平边界框中可能含有大量的冗余区域以及复杂的背景噪声。如图2 所示,水平边界框内的舰船目标因为存在大量噪声与重叠区域,在非极大值抑制(Non-Maximum Suppression,NMS)处理后可能会被丢弃,极大影响了舰船检测算法的性能。为了缓解上述问题,本文采用旋转检测方法,通过旋转边界框减少冗余区域的产生,加强遥感图像中密集舰船目标的检测。
图2 水平边界框与旋转边界框示例Fig.2 Illustration of horizontal bounding boxes and oriented bounding boxes
为了实现基于Retina-Net 的旋转目标检测,本文使用五参数法(x、y、w、h、θ)表示任意方向边界框,并在回归子网中加入角度预测,算法中回归旋转边界框的表示为
式中:x、y、w、h、θ分别为矩形框的中心坐标、宽、高和旋转角度;w为与图像水平方向x轴成锐角θ的一边,θ的范围在[-π/2,0);x、xa、x′分别为边界框、原始锚框、预测框,y、w、h、-θ以此类推。
多任务损失定义如下:
式 中:N为原始锚框数量;t′n为目标和 背景且分 别取 值1 或0;v′nj为预测的 偏移向量;vnj为真实框 的向量;tn为目标种类的标签;pn为不同种类经过Sigmoid 函数计算出的概率分布;超参数λ1、λ2为用于平衡两类损失值,默认设置为1;Lreg、Lcls分别为SSmoothL1损失和焦点损失(FFocalloss)函 数;αn设为0.25;γ设为2。
Anchor-based 类算法中,锚框的设定决定着检测算法的性能。在Retina-Net 中预设水平锚框和旋转锚框都可以实现旋转框检测,2 种方法的区别在于水平框可以用较少的锚框匹配更多的目标,但也会导致锚框引入背景噪声而影响精度;预设旋转框需要对每个锚点设置更多的初始锚框旋转角度,虽然减少了边界框内的背景噪声,但是大大增加了算法的计算量。为了平衡算法的速度和精度,本文选择两类锚框结合的策略,即先使用水平锚框以确保高召回率地选中目标区域,而后使用旋转精炼锚框缓解密集排列目标引起的噪声问题。
1.3 特征重建模块
Retina-Net属于Anchor-based 类方法,多锚框的设置保证了一阶段算法的精度。虽然加入旋转锚框有助于遥感目标检测,但由于计算倾斜交并比分数对角度变化十分敏感,轻微的角度变化就会造成IoU 分数骤降从而可能丢弃目标,所以检测框的回归效果对旋转目标检测精度影响很大。已有研究表明,级联检测器能够大大提高单阶段算法的分类和定位精度[25-26]。
为实现高精度遥感目标检测,本文加入级联的精炼阶段旨在提高旋转目标检测的召回率。通过在网络中不同位置设置多个IoU 阈值,在原始Retina-Net 算法中设置目标和背景的IoU 分别为0.5 和0.4,在首次精炼阶段设置IoU 的2 个门限为0.6 和0.4,第2 次精炼阶段设置IoU 的2 个门限为0.7 和0.6。精炼阶段的损失定义如下:
式中:αi为不同精炼阶段的平衡系数,默认设为1;Li为第i个精炼阶段的损失。
Retina-Net 作为单阶段算法因为没有使用两阶段算法中的RoI-Pooling 或RoI-Align 特征提取方法,忽略了特征一致性,导致检测精度相对较低。加入级联的精炼阶段后,虽然精度有所提升,但精炼阶段的检测器仍使用着与前一阶段相同的特征映射,忽略了通过学习得到的边界框位置变化。
如图3 所示,绿色线段框是边界框,橙色点线框是原始锚框,红色实线框是通过在特征图黑色特征点对应的锚框所学习得到的锚框(Learned Anchor,LA),而黑色特征点是使用右侧灰色卷积核在其相邻的区域卷积得到的。这些相邻区域映射到原图即为左侧淡黄色阴影区域,而淡黄色阴影区域并未包含整个舰船目标,尤其对于长宽比大或者尺寸小的目标,上述特征不对齐问题使得算法用这个区域预测并不准确。
图3 特征不对齐示意图Fig.3 Diagram of feature misalignment issue
受R3Det 启发,为保证速度这一方面,本文将前一阶段回归得到的锚框的中心位置信息通过插值重新编码映射回特征图的特征点,叠加在原特征图上改变特征点的像素值,从而重建特征图,如图4所示。具体在算法第1 阶段产生水平框检测结果后按照如下式的特征插值方法设置2 个级联精炼模块:
图4 特征重建示意图Fig.4 Diagram of feature reconstruction
式中:vvallt、vvalrt、vvalrb、vvallb分别为左上、右上、左下、右下特征点对应的像素值;aarearb、aarealb、aarealt、aareart分别为左上、右上、左下、右下区域的面积。
精炼阶段为平衡效率,每个特征点仅选取置信度最高的边界框进行处理,每个特征图经过特征重建模块,都会生成新的特征图,从而在下一阶段的分类和回归子网改善特征不对齐问题。不同于Faster R-CNN 中的RoIAlign 需要对每个RoI 框采样7×7×4 个点进行插值,本文仅在精炼阶段对每个经过NMS 后保留下的锚框中心点进行插值,相比RoIAlign 具有较大的速度优势。
2 实验内容及结果分析
本文选择高性能图像工作站和模拟星载嵌入式智能图像处理平台作为实验环境。其中,高性能图像工作站配置2 块NVIDIA RTX 3080 GPU,Inteli9 10920X 处理器,32 GB内存,软件环境 为Python 3.7.9、PyTorch 1.7.1。模拟星载嵌入式智能图像处理平台使用NVIDIA Jetson TX2 板载计算机,配置一块NVIDIA Pascal GPU,64 位ARMv8 处理器,8 GB 内存,软件环境为Python 3.7.9、PyTorch1.3.0。测试数据集选择遥感检测领域广泛使用的HRSC2016 数据集和DOTA 数据集,评估指标选用VOC2007平均精度(Average Precision,AP)。在训练过程中,对输入图像进行随机翻转、旋转、色彩变换等数据增强操作,使用动量优化器(Momentum Optimizer),权重衰减率设置为0.000 1,动量设置为0.9,在每个特征金字塔层预设9种锚框长宽比分别为1、1/2、2、1/3、3、1/5、5、1/7、7。
2.1 HRSC2016 数据集实验结果分析
HRSC2016 是专门针对舰船目标检测的光学遥感图像数据集,数据主要来自Google Earth,收集的舰船主要来自摩尔曼斯克、埃弗里特、新罗德岛港口以及梅波特、诺福克、圣地亚哥海军基地,共计1 680 张图像。经过划分后的数据集包含训练集436张图像,共1 207 个实例;验证集181 张图像,共541个实例;测试集444 张图像,共1 228 个实例。每张图像包含1~3 只舰船,图像分辨率在(300×300)~(1 500×900)之间。数据集位置标注信息既有用左上角点(xmin,ymin)和右下角点(xmax,ymax)标注的水平矩形框,也有通过中心点(xc,yc)、宽w、高h和角度θ表示的旋转矩形框。训练过程中将原图尺度变换为800×800,设置72 个时期,使用随机梯度下降SGD 策略,基础学习率(base_lr)为0.01,根据不同骨干网络调整每次训练的样本数目(batch_size),学习率为base_lr/16×batch_size,在第48 和66 个时期通过线性预热方法调整学习率。
本文针对舰船目标检测进行优化,应用通道注意力机制的骨干网络使算法更加关注遥感图像中的目标,特征重建使得对长宽比大的舰船目标检测有了更好的效果,平均精度达到90.20,相比其他算法平均精度更高,且在相似精度下算法检测速度更快,检测结果如图5 所示。ROI-Transformer、RRPN、Gliding Vertex 等针对遥感目标检测任务改进的两阶段算法的检测精度普遍较高,因为这些算法更有效利用了输入图像的底层特征映射,对小目标检测更加友好,但相对单阶段算法更复杂,见表1。
表1 HRSC2016 数据集测试结果Tab.1 Test results on HRSC2016 data set
图5 HRSC2016 数据集部分测试结果Fig.5 Part of the test results on HRSC2016 data set
2.2 DOTA 数据集实验结果分析
DOTA 数据集从Google Earth、中国卫星数据应用中心、卫星JL-1 和GF-2 等来源收集了共2 806张航拍图像,图像尺寸分布在(800×800)~(4 000×4 000)之间,标注的实例含15 个类别:飞机、棒球场、桥梁、田径场、大型汽车、小型汽车、舰船、网球场、篮球场、油罐、足球场、交通环岛、海港、游泳池、直升飞机,共188 282 个人工标注实例。实例的边界框使用4 个角点标注以水平矩形或任意四边形的方式呈现,任意四边形的4 个角点按顺时针方向排序,以(x1、y1、x2、y2、x3、y3、x4、y4)形式标注并储存在图像对应的文本文件中,各类目标的旋转角度分布均衡,但存在目标类别不平衡、目标尺寸极小的问题。
使用数据集中原始图像的1/2 作为训练集,1/6作为验证集,1/3 作为测试集,评估方式采用VOC2007 平均精度计算方法。因DOTA 数据集原始图像尺寸过大,直接训练会导致检测效果很差,故将DOTA 数据集裁切为600×600 的子图,设置重叠为100 个像素,裁切好的DOTA 数据集共20 672 张图像。训练时再将图像放大到800×800,设置24 个时期,学习率设置与HRSC2016 数据集相同,且在第12、16 和20 个时期通过线性预热方法调整学习率。
通过对比表2 的实验结果,对DOTA 测试集中的937 张图像进行测试并上传到DOTA 数据集官方服务器评估,最后,得到舰船目标类别检测平均精度为87.52,部分检测结果如图6 所示。
表2 DOTA 数据集测试结果Tab.2 Test results on DOTA data set
图6 DOTA 数据集部分测试结果Fig.6 Part of the test results on DOTA data set
2.3 嵌入式智能图像处理平台实验结果分析
将算法模型部署在模拟星载嵌入式智能图像处理平台并测试HRSC2016 数据集,表3 的实验结果表明:本文方法在模拟星载嵌入式智能图像处理平台上检测HRSC2016 数据集速度最快高可达到1.3 帧/s,对应模型容量为405 MB,另外,检测平均精度最高可达到90.20,能够有效检测舰船目标。
表3 NVIDIA Jetson TX2 平台测试结果Tab.3 Test results on NVIDIA Jetson TX2 platform
3 结束语
本文针对遥感图像舰船旋转目标检测方法进行研究,通过引入注意力机制SE 模块增强网络提取遥感图像特征图信息,针对舰船长宽比大、易受特征不对齐问题的影响,使用级联特征重建模块缓解该问题,在保证检测速度的前提下有效提高了检测精度。在模拟星载嵌入式智能处理平台部署本算法检测舰船目标,使用405 MB 模型可每秒处理1.3 帧图像,对应平均精度可达89.01,具备在轨应用的可能。后续将围绕算法模型容量压缩等方面,在保证平均精度的同时进一步提高检测速度。此外,该算法在航天系统部装备部主办的第2 届全国“天智杯”科目“小样本条件下宽幅光学卫星图像舰船目标智能快速筛选”中获得第3 名,同样验证了本文所提方法的有效性。