富 强,杨 威,陈 杰,郑世超,楚博策,3
(1.北京航空航天大学 电子信息工程学院,北京 100191;2.上海卫星工程研究所,上海 200240;3.中国电子科技集团公司航天信息应用技术重点实验室,河北石家庄 050081)
合成孔径雷达(Synthetic Aperture Radar,SAR)是一种主动式微波成像传感器,它可以不受天气的影响,不分昼夜,同时可以获得更高质量、更高分辨率的大范围远距离图像。因此,利用SAR 图像进行舰船检测已成为国内外研究的热点。传统的基于SAR 图像的舰船检测主要包括恒虚警率(Constant False Alarm Rate,CFAR)算法和基于特征提取的算法等。对于近岸舰船,要考虑舰船的密集停放,同时考虑陆地环境中大量的人工目标,如建筑物、车辆等,其目标的特征与舰船相似,为准确的目标检测带来了很大的影响和挑战。
近年来,随着深度学习的快速发展,这一技术得到了广泛的应用,并在图像识别领域取得了很大的进展,许多研究人员在舰船识别中也引入了深度学习。深度学习中的卷积神经网络(Convolutional Neutral Network,CNN)通过逐层学习和自主提取特征,可以充分利用图像中的信息,从而摆脱了传统方法的限制,在各种复杂多变的环境中具有良好的鲁棒性。文献[7]设计了基于注意力机制特征重建网络的舰船目标检测算法,引入注意力旋转锚框以缓解密集排列目标引起的噪声问题,并利用特征重建模块来实现特征精炼。文献[8]通过网络轻量化和聚类算法改进YOLOv3 网络,提升检测精度的同时加快了检测速度。
本文利用真实的开源SAR 图像构建了一个近岸SAR 舰船数据集,在此基础上进行了检测实验,精确评估了检测网络在近岸舰船上的性能。然后,引入注意力模块(Channel Attention Module,CAM)来提高网络的检测性能。在近岸测试集中,mAP 达到80%以上。此外,为了解决近岸地区舰船密集分布导致的检测性能下降的问题,引入了基于YOLOv5 和CSL 算法的旋转检测网络,并证明了其可行性。
YOLO是一种基于深度学习神经网络的目标检测算法,属于一阶段检测网络,相比于以SSD为代表的双阶段检测网络,拥有运行速度很快的特点,适用于实时检测。YOLO 网络从v1 开始不断改进更新,现在该系列最新的网络为YOLOv5,在许多方面都有应用且达到了不错的效果。接下来是对YOLOv5 的结构以及检测运用到的方法作介绍。YOLOv5 的整体网络结构如图1 所示。
图1 YOLOv5 网络结构[12]Fig.1 Network architecture of YOLOv5[12]
其中,骨干网络(Backbone)用以提取图像中的特征信息,颈部网络(Neck)用以整合不同尺度的特征信息并传输到输出层(Output),输出层用以生成预测结果。网络中的模块包含聚焦(Focus)模块、基础卷积(CONV)模块、跨阶段局部网络(CSP)模块、空间金字塔池化(SPP)模块、连接(Concat)模块、上采样(Upsample)模块。相同的模块有不同的输入通道数(in_channel)、输出通道数(out_channel)、卷积核大小(kernel_size)、卷积步长(stride)。
CONV 模块是YOLOv5 中最基础的模块,由卷积模块、BN 模块、Leaky ReLU 激活函数组成。卷积模块是卷积神经网络的基础、Leaky ReLU 函数,可以防止梯度饱和的问题,同时有效抑制梯度消失现象。
BN 算法引入了可学习参数、,从而恢复出前一层网络所学习到的特征。BN 的引入减少了初始参数的限制,可以选择较大的初始学习率,加快了训练速度;BN 极大增强了网络泛化能力,减少过拟合,计算公式如下:
式中:x为神经元输入;[x]为各神经元输入值的平均值;Var(x)为各神经元输入值的方差。
跨阶段局部网络(Cross Stage Partial Network,CSPNet)是减少目前需要的大量推理计算。以往在实际应用中能够获得较好结果的方法在很大程度上需要依赖庞大的计算量。CSPNet 是一种网络设计思路,与残差结构的思想相似,可以与已有的网络结合。实验中显示,随着CSPNet 的引入,计算量有了大幅下降的同时,准确率没有下降,甚至有略微的提升。CSP 模块结构如图2 所示。
基础层的特征映射被CSP 模块划分为2 部分,即图2 中左侧的单卷积部分和中间的深层网络部分,然后用跨阶段结构将合并这2 部分。深层网络部分中的瓶颈模块(Bottleneck)为一个使用了残差结构的特征提取模块。
图2 CSP 模块结构[12]Fig.2 Architecture of the CSP module[12]
路径聚合网络(Path Aggregation Network,PANet,PANet)提出的目的是在特征图金字塔网络(Feature Pyramid Network,FPN)的基础上进一步促进不同层之间特征信息的流动,其结构如图3 所示。PANet 在自顶往下的网络后,又增加了一个自底往上的金字塔结构。
图3 PANet 结构[17]Fig.3 Architecture of the PANet[17]
语义特征通过FPN 层自顶往下传达,定位特征则通过PANet 自底向上传达,不同的卷积层从不同的主干层进行融合,特征提取能力从而获得提高。
目标检测最常用的损失函数是交并比(Intersection over Union,IoU),计算公式如下:
式中:DR(Detection Results)为检测结果;GT(Ground Truth)为实际结果。
但IoU 无法反映两框距离的远近,因此提出了综合交并比(Generalized Intersection over Union,GIoU)。在GIoU 基础上,距离交并比(Distance Intersection over Union,DIoU)考虑了检测结果与真实值间的重叠率、距离以及尺度。更进一步地,完备交并比(Complete Intersection over Union,CIoU)考虑到了检测框的长宽比,在DIoU 的公式中加入了一个影响因子,具体公式如下:
式中:为权重参数;为2 个点的欧氏距离;衡量检测值和真实值之间长宽比的相似性,定义如下:
式中:为宽;为高。
CIoU 综合考虑了检测值和真实值之间的IoU、距离、长宽比等因素,包含的方面较为全面,使得检测值有较好的精度,因此YOLOv5 中默认采用CIoU 作为计算预测值损失的方法。
计算机视觉的注意力机制的思想是通过寻找现有数据间的关联性突出某些重要特征,是一个在[0,1]区间连续分布的问题,属于软注意力。软注意力可以通过神经网络学习,经过前向传播和后向传播来得到注意力的权重。
压缩激发网络(Squeeze and Excitation Networks,SENet)关注通道之间的关系,希望网络能够自发学习到特征图不同通道的重要程度,其结构如图4 所示。
图4 SENet 结构[20]Fig.4 Architecture of the SENet[20]
如图4 所示,任意特征图经过任意特征提取操作后获得特征图,其中分别为特征图的高度、宽度、通道数。SENet 通过对特征图进行压缩(Squeeze)和激发(Excitation)操作,即图中和,得到1 个一维向量,向量中的每个参数作为每个通道的评分,然后在通道上施加对应的权重,得到处理后的结果。其中压缩操作对每个通道做平均池化,得到各个通道的统计数值;激发操作学习通道的相关程度,并根据相关程度调整权重。
卷积块注意力模块(Convolutional Block Attention Module,CBAM)结合了空间注意力和通道注意力,如图5(a)所示。输入特征图(Input Feature)经过通道CAM 和空间注意力机制模块(Spatial Attention Module,SAM)获得提炼后特征图(Refined Feature)。通道CAM 与SENet 相似,不再赘述。图5(b)是SAM,和通道注意力类似,空间注意力可以学习特征图不同空间的重要程度。
图5 CBAM 及SAM[21]Fig.5 Schematic diagram of the CBAM and SAM[21]
图5(b)所示的SAM 的具体操作如下:首先对于输入的特征图,即经过通道CAM 处理的特征图(Channel-refined feature),分别做基于通道的平均池化(AvgPool)、最大池化(MaxPool),池化后的2个结果做基于通道的拼接操作;然后通过卷积(conv layer),将通道数减少为1;再通过激活函数,获得空间注意力特征图。将获得的空间注意力特征图施加在原来的特征图上得到最终的特征。与通道注意力类似,空间注意力可以学习特征图不同空间的重要程度。不同于只关注通道注意力机制的SENet 模块,CBAM 模块往往可以取得更好的效果。
上述2 种注意力机制模块都是轻量的通用模块,由于2 种模块输入和输出的特征图大小是一致的,因此可以直接将模块添加用于YOLOv5 网络的各层,将其融入到各种卷积神经网络中进行端到端的训练。本实验中,将2 种模块分别添加与检测头前的位置。改进后的网络如图6 所示。
图6 改进后YOLOv5 结构Fig.6 Architecture of the improved YOLOv5
为了处理边界问题,圆光滑标签(Circular Smooth Label,CSL)算法将角度问题从原本的回归问题转化为分类问题,解决了角度的边界问题,可以很好地和长边定义法结合。CSL 将定义的角度进行划分,如图7 所示。
图7 角度的分类定义[22]Fig.7 Categorical definition of angles[22]
仅仅把角度当作类别问题无法衡量预测角度和真实角度之间的距离,为了解决这个问题,CSL设计了如下表达式:
式中:()为窗口函数;为窗口半径。
满足如下几点:周期性,周期为180/;对称性,关于对称;最大值为1;单调性,
将角度问题转换为类别问题就是将一个连续问题转换为离散问题,这意味着转换过程中精度会有损失。CSL 作者在文章中计算了损失以确定其对最终结果的影响,计算公式如下:
式中:为相邻两类角度之间的差,比如将1°划分为一类时=1,此时精度的最大损失、角度服从平均分布下的平均损失分别为0.5°和0.25°。这对于结果的影响很小,在实际应用中可以不予考虑。
将该算法与YOLOv5 网络相结合需对网络做如下改动:1)数据输入部分,增加数据维度,在原有的检测框数据基础上增加角度数据信息;2)网络检测部分,增加角度信息的预测;3)损失函数部分,构建目标时增加角度信息列表,并在损失函数计算时增加角度信息损失的计算,计算函数与类别损失计算函数相同;4)可视化部分,将绘制水平矩形框修改为绘制旋转矩形框。在YOLOv5 网络的整体结构上并无改动。
本次实验计划使用SSDD公开SAR舰船检测数据集。该数据集包含了多种不同的成像条件。图像主要来源于RadarSat-2、TerraSAR-X 和Sentinel-1 卫星传感器,一共4 种极化模式,分辨率的范围为1~15 m。
通过位深度转换和对比度调整,将原数据调整为更适合用于网络训练和人工评估的图像。之后选取包含舰船目标的图像区域,按照所构建的神经网络要求,将图像进行切片为适合网络进行训练的图像尺寸,完成训练集的制作。原图和处理后图像如图8 所示。
图8 处理前后数据对比Fig.8 Comparison of images before and after processing
数据集切片数量为1 386 张。将1 386 张图片分为两类,包含陆地的数据、不包含陆地的数据,其中包含陆地的切片数量为304 张,不包含陆地的切片数量为1 082 张。由于数据集数量较少,按照6∶2∶2 的比例分别将上述两类数据分为训练集、验证集、测试集,并在测试集中去除不包含陆地的目标,着重分析网络对于近岸目标的检测性能。SSDD 数据集分配见表1。
表1 SSDD 数据集分配Tab.1 SSDD dataset distribution
使用YOLOv5 在coco 数据集的预训练权重进行初步训练,处理批次大小设置为8。处理批次过大会导致梯度下降速度缓慢,过小会导致损失函数难以收敛。在合理的范围内增加处理批次可以使显卡性能利用率提高,训练速度加快。迭代次数设置为300,采用随机梯度下降作为梯度下降算法。初始学习率为0.01,周期学习率为0.2。YOLOv5训练过程中,随着迭代次数增加,学习率减小,具体公式如下:
式中:为迭代总次数;为第次迭代;lr为第次迭代的学习率;为初始学习率;为周期学习率。最后一次迭代时,学习率为。
均值平均精度(Mean Average Precision,mAP),用以衡量网络性能。计算时,置信度阈值设置为0.001,NMS 置信度设置为0.5;检测时,置信度阈值为0.5,NMS置信度为0.5。测试结果如图9所示。
图9 中,左侧为200 次迭代训练后的检测结果,右图为300 次迭代训练后的检测结果。然而两个结果之间差距不大,证明网络已经经过充分训练,虽然出现过拟合的现象,但下降幅度不大,过拟合不严重,证明了YOLOv5 防止过拟合性能较为优秀。部分检测结果如图10 所示。
图9 精度-召回率曲线Fig.9 Precision-recall curves
图10 检测结果Fig.10 Detected results
为了进一步提高准确率,在YOLOv5 网络结构中加入注意力机制模块,并重复实验。分别加入模块SELayer 和CBAM,数量为1,位置为网络第8层,处理批次大小设置为8。采用随机梯度下降作为梯度下降算法,初始学习率为0.01,周期学习率为0.2,NMS 阈值为0.5。由于增加了模块,模型参数增加,导致训练速度减慢,因此需要增加迭代次数,迭代次数设置为400。加入CAM 后精度-召回率曲线如图11 所示。
图11 加入CAM 后精度-召回率曲线Fig.11 Precision-recall curves after adding CAM
图中可见:加入SELayer的网络,mAP 值有小幅度提升,且准确率下降到一定程度后没有继续下降,证明SELayer 模块在减少检测网络错检的效果上较为突出;加入CBAM 模块的网络,mAP 值有更明显的提升,证明了注意力机制模块在提升检测网络性能方面的作用,且CBAM 较SELayer性能更好。
YOLOv5、改进后YOLOv5 与其他典型检测网络性能对比见表2,典型检测网络包括Faster RCNN和SSD。
表2 检测结果对比Tab.2 Comparison of the detected results
由表2 可知,原YOLOv5 网络与典型检测相比,在准确率性能方面较为相近,但在检测速度方面有明显优势。增加CAM 的改进后网络虽然增加了网络复杂度,因此增加了检测用时,但仍具有较高效率,同时在检测准确率方面也有提升。
由以上收集的检测结果可以初步归纳检测错误原因,漏检的原因主要为检测目标附近的干扰、舰船的密集分布,其中干扰包含由于噪声导致的干扰和由于较为靠近陆地导致的陆地背景的干扰;错检的原因主要为将形状与舰船类似的目标错误判定为目标,将与舰船类似的目标命名为干扰目标,干扰目标可以分为离岸的干扰目标和陆地干扰目标。部分错检结果如图12 所示。
图12 部分错检结果Fig.12 Partial wrong detected results
针对以上问题提出如下解决方案:针对噪声导致的干扰,增加图像降噪的预处理环节;针对靠近陆地导致的陆地背景的干扰以及陆地的干扰目标,增加海陆分割的预处理环节;针对舰船密集分布的问题,加入旋转框检测网络。除了以上针对性措施之外,还可以通过增加训练集、提高网络的特征提取性能等方法,综合提升网络性能。
在以上实验中发现,错检漏检目标有部分原因来自于较为密集的目标,因此尝试实现旋转框的目标检测网络。计划使用CSL 算法,实现YOLOv5 旋转框检测网络改建。
训练时,处理批次大小设置为8,采用Adam 算法作为梯度下降算法优化器。初始学习率为0.001,周期学习率为0.01,迭代次数为200 次。最终loss的训练结果 为box_loss=0.083 26,obj_loss=0.015 12,angle_loss=0.266,获得的部分结果如图13 所示。
图13 部分旋转框检测结果Fig.13 Partial detected results of the rotating frame
由图13 结果可知,在部分情况下旋转框可以较为精确地框定出目标范围,能够证实CSL+YOLOv5 算法进行旋转框检测的可行性。但是漏检、误检在大部分情况下较为严重,且目标的置信度普遍不高。判断原因主要在于网络未得到充分的训练,loss 在下降到一定程度后无法继续收敛,网络训练陷入了局部最优。后续需要改变训练策略,进行进一步的训练,尝试将网络充分训练;或者对CSL算法进行改进,尝试寻找更优的旋转标签标注法和损失函数算法。
本文构建了着重于近岸目标的训练和测试集,开展以原YOLOv5 网络为基础的近岸舰船目标检测网络实验和加入注意力机制模块的改进实验,并取得了较为理想的效果——在近岸测试集中,mAP达到了80%以上。证实了YOLOv5 网络作为近岸舰船目标检测网络有着较为良好的性能,注意力机制模块在提升检测网路准确率方面也有着较好的效果。
针对近岸情况中舰船目标密集导致漏检的问题,开展旋转检测框实验,并且能够初步证明CSL+YOLOv5 实现旋转框检测的可行性,但未能达到预期中提升检测性能的效果。分析原因后提出如下改进方案:尝试不同的学习率,梯度优化算法;修改原有的评估方法,得到适合旋转框目标的评估方法,指导训练网络的参数优化环节,从而实现网络的充分训练。或者对CSL 算法进行改进,尝试寻找更优的旋转标签标注法和损失函数算法。
在总结错误原因后,除了旋转框检测之外,提出如下解决方案:针对噪声导致的干扰,增加图像降噪的预处理环节;针对靠近陆地导致的陆地背景的干扰以及陆地的干扰目标,增加海陆分割的预处理环节。除了以上针对性措施之外,还可以通过增加训练集、提高网络的特征提取性能等方法,综合提升网络性能。