李忠智,尹 航,2,左剑凯,孙一凡
(1.沈阳航空航天大学 计算机学院,沈阳 110136;2.仲恺农业工程学院 信息技术学院,广东 广州 510230;3.同济大学 计算机科学与技术系,上海 201804;4.沈阳航空航天大学 理学院,沈阳 110136)
海上运输业发展迅速,但随着船舶数量和运输量的快速增长,海上违法行为如非法货物运输等数量也不断增加[1]。船舶检测与识别技术不断得到发展[2-4],目前可以通过自动化的船舶检测获得船舶的分布信息,这类信息能够帮助控制非法捕鱼和货物运输等活动[5]。精细的海上监视服务有助于预测威胁事件的发生并提高海上作业的工作效率,在海上交通监视工作中起重要作用。根据所使用的特征提取方法不同,本文将卫星遥感图像中船舶检测方法分为传统方法和深度学习方法2 类。
在传统方法中,文献[6]使用统计学方法,根据海洋聚类直方图构建了异常检测模型,并通过标识候选区域,从候选区域中删除非船舶对象。该方法仅在只有一个光谱波段的海域卫星图像中表现良好,而在港口区域中的表现欠佳。文献[7]提出一种基于统计分析和形状识别的模型,对海域内的船舶分布进行统计分析,并将近似的船舶目标与海、陆、岛或波浪区分,使用纵横比、圆度等形状特征来检测船舶。在提取图像特征中,通常使用Radon 变换、小波变换、霍夫变换等变换方式。例如文献[8]提出使用小波分解来获得图像的高频和低频特征,并通过归一化和相加来组合特征,生成特征图。文献[9]提出一种在单通道SAR 图像中基于复杂信号峰度(Complex Signal Kurtosis,CSK)的船舶检测新方法,该方法包括区域提取和目标识别2 个主要部分,首先根据区域提取检测船舶的大致位置,然后在提取的区域内识别船舶。
近年来,研究人员提出了诸多基于深度学习的遥感图像船舶检测方法。根据所使用标记方法的不同,深度学习方法可以分为2 类。第1 类方法在像素级别上对船舶目标进行标记[10-11],如文献[10]提出一种基于全卷积神经网络的边缘检测网络,完成了对船舶目标的像素级检测,并取得了良好的检测结果。第2 类方法使用边界框来标记船舶,如文献[12]提出一种基于Faster RCNN 的密集连接多尺度神经网络,用于多尺度和多场景SAR 船舶检测。文献[13]在提取网络中提出一个分层的选择性过滤层,将不同尺度的特征映射到同一尺度空间,从而有效检测不同比例的船舶。
上述文献对遥感图像目标检测领域进行了研究,但该领域仍存在带标签样本不足和复杂场景下的先验信息不足两大问题。由于对用于目标检测的大量数据进行标注的难度较大,卫星图像领域内的带标注样本缺乏,文献[14]分别采用数据增强和迁移学习2 种策略,并应用单发多框检测(Single Shot MultiBox Detector,SSD)算法完成SAR 目标检测任务,该方法可以获得更好的检测性能。文献[15]提出一种基于视觉注意模型的目标检测方法用于解决复杂场景下的先验信息不足等问题,实验结果表明,所提出的目标检测方法可以在高分辨率SAR 图像中以高精度和快速度从复杂背景杂波中检测目标。但上述方法没有考虑提取SAR 图像中目标的低阶和高阶信息,导致模型对目标特征的表达能力受限。
文献[16]提出一种有效结合图像低级纹理与图像深层特征的多尺度旋转不变Haar-Like 特征集成卷积神经网络(Multi-Scale Rotation-Invariant Haar-Like feature integrated Convolutional Neural Network,MSRIHLCNN),并经过最佳融合以表示船舶目标,在中国高分-3图像数据集上验证了模型的优越性。文献[17]结合多尺度旋转不变性特征,提出有效的船舶分类模型。该方法采用Gabor 滤波器获取不同方向的特征,并应用多尺度全局局部二进模式(Multi-Scale Completed Local Binary Patterns,MS-CLBP)获取船舶图像的局部纹理、空间和轮廓信息,弥补了深度CNN 的不足。以上2 种方法虽然有效地提高了模型在复杂环境下对船舶目标检测与识别的准确度,但两种模型均采用并行计算的方式,增加了计算的复杂度。
本文针对遥感卫星图像背景复杂、船舶目标变化尺度大等问题,提出一种结合UNet++和多边输出融合(Multiple Side-Output Fusion,MSOF)策略的船舶检测与识别模型。使用UNet++深度神经网络提取卫星图像特征,并结合图像的浅层和深层信息输出不同层级的图像特征。在此基础上,采用MSOF策略对来自不同语义层级的特征信息进行融合,以提升模型检测与识别的准确度。
本文采用基于UNet++网络和多边输出融合策略的模型,完成船舶目标的检测与识别。
UNet++网络具有嵌套结构和密集的跳过路径,在从多级卷积路径中提取多尺度特征图方面具有很大的优势[18]。其由卷积单元、下采样和上采样模块以及卷积单元之间的跳过连接组成,结构如图1 实线框部分所示。UNet++和UNet之间最大的区别是UNet++的结构中具有重新设计的跳过路径。以节点X0,4为例,在UNet 模型结构中,节点X0,4仅与节点X0,0构建了一个跳过连接,而在UNet++中,节点X0,4连接处于同一层的X0,0、X0,1、X0,2和X0,3这4个卷积单元的输出。UNet++网络的这种结构,能使编码器内特征图的语义水平更接近对应解码器部分的语义水平。
图1 融合MSOF 策略的UNet++目标检测框架Fig.1 UNet++target detection framework combined with MSOF strategy
假设xi,j代表节点Xi,j的输出,其中i代表沿着编码器方向的第i个下采样层,j代表沿着跳过路径的第j个卷积层,则xi,j的特征映射可以表示为:
其中:μ(·)表示卷积运算,后面连接激活函数,(·)表示上采样层;[]表示级联运算。通常在j=0 层的节点仅从上层的下采样层接收一个输入,而j>0 的节点则从跳过路径和上采样层均接收上一级节点的输入。
在网络的卷积单元中,本文采用了残差模块,这有助于增强深度网络的收敛能力,一个残差模块的结构如图2 所示。输入图像分别经过一个2D 卷积层(2D Convolutional layer,Conv2D)、一个归一化层(Batch Normalization layer,BN)、一个Conv2D 和BN层。接着,通过将第2 个BN 层和第1 个Conv2D 层的输出相加得到输出。本文模型采用缩放指数线性单 元(Scaling exponent Linear Units,SeLUs)代 替ReLU 作为激活函数,其具有对抗扰动的能力更强、学习速度更快的特点[19]。
图2 残差模块结构Fig.2 Residual block structure
UNet++网络优于UNet 网络的另一个特点是多层特征图生成策略。在UNet 结构中,仅通过如式(2)所示的路径生成单层特征图:
在UNet++结构中,另外3 个特征图还可以分别通过以下3 个路径获得:
因此,将4 个不同语义层级的特征图进行组合,可以提高模型的检测和识别精确度,并提升模型的泛化性和稳定性。
深度监控一方面通过克服梯度消失问题改善深层网络训练过程;另一方面,可以学习从低语义到高语义的层次信息。文献[20]中的深度监控通过平均所有细分分支的输出来实现。本文使用了一种MSOF 融合策略实现模型训练过程中的深度监控,其类似文献[21]中提出的策略。
如图1 中虚线框部分所示,4 个输出节点{X0,1,X0,2,X0,3,X0,4}使用sigmoid 函数后得到输出结果{Y0,1,Y0,2,Y0,3,Y0,4},再通过合并4 个节 点的输出 结果来生成新的输出节点X0,5,表达式如式(4)所示:
其中:⊕表示合并操作,通过sigmoid 层的X0,5可以输出Y0,5。在本文的深度网络中生成了{Y0,1,Y0,2,Y0,3,Y0,4,Y0,5}5 个不同语义层次的输出,其中{Y0,1,Y0,2,Y0,3,Y0,4}是侧面输出层的输出。通过MSOF 操作,将来自所有侧面输出层的多尺度特征信息融合到最终输出Y0,5中,从而可以捕获更精细的检测与识别细节。
1.3.1 平衡二元交叉熵损失
对于空客船舶检测挑战数据集,数据集中有船舶的图像仅占整个数据集的1/4 左右,这会导致在深度神经网络训练中出现严重的类别不平衡问题。因此,必须引入权衡参数以进行过采样。在本文的端到端训练方式中,采用一种简单的自动平衡策略,可以将类平衡的交叉熵损失函数定义为:
其 中:β=|Y-|/(|Y+|+|Y-|);1-β=|Y+|/(|Y+|+|Y-|);|Y+| 和|Y-|分别代表一次迭代中有船舶的图像和无船舶的图像数目;Pr(·)是图像j处的sigmoid 输出。
1.3.2 Dice 损失函数
为提高检测性能、削弱类别不平衡问题的影响,Dice 系数损失通常应用于语义分割任务中。一般来说,2 个轮廓区域的相似性可以用Dice 系数来定义。此外,损失可定义为:
其中:Y和分别表示训练图像的预测输出和图像对应的标签。
1.3.3 改进损失函数
本文所提模型通过sigmoid 层进行分类后会生成5 个输出结果。假设相应的权重分别表示为ωi(i=1,2,3,4,5),则总的损失函数L可定义为:
本文所提模型由Keras 和TensorFlow 端到端开源机器学习平台实现,由配备Intel i9-9900KF(3.6 GHz、8 核、32 GB RAM)和单个NVIDIA GTX 2080 Ti GPU 的工作站作为硬件平台。实验过程中批处理量大小设置为4,迭代次数设置为40,使用学习率为1×10-4的Adam 优化器对模型训练过程进行优化。模型中图像数据的输入尺寸为768×768×3 像素,数据的输出尺寸为768×768×1 像素。对于经过预处理后的任意大小的输入图像,均能以端到端的方式训练模型。
在实验部分,本文首先对损失函数中平衡因子的取值问题进行相关实验,接着证明多边输出策略对于本文所探究问题的有效性,最后通过与其他模型的对比,验证所提模型的优越性。
实验中采用的数据集是空客船舶检测挑战比赛中提供的公共数据集[22],该数据集包含的卫星图像总大小超过30 GB,并且有近1/4 的图像数据中有船舶目标。另外,比赛提供了以CSV 文件格式存储的图像标记信息,其中列出了所有图像的ID 及其对应的像素坐标。这些坐标表示标记船舶的分割框,没有像素坐标意味着图片中没有任何船只。但由于计算资源的限制,本文从完整的数据集中随机抽样10 000 张图像,并选择其中的5 000 张图像作为训练集,2 000 张图像作为验证集,3 000 张图像作为测试集。数据集中的部分船舶图像与对应标签可视化图像如图3 所示。
图3 空客船舶数据集示例Fig.3 Examples of airbus ship data set
本文选择图像语义分割领域常用的Dice Coefficient和IOU评测指标对所提模型进行评估,2个指标的含义如图4所示。其中:Dice系数是一种集合相似度度量函数,通常用于计算2个样本的相似度。IOU相当于2个区域重叠的部分除以2个区域的集合部分得出的结果。
图4 模型评估指标Fig.4 Model evaluation indexes
2.3.1 损失函数对比实验
损失函数在最终分割效果中起着重要作用。本文结合二元交叉熵损失函数和Dice 系数损失函数作为模型在训练过程中改进的损失函数,2 个函数的权重系数由平衡参数λ决定。将λ从0 变化到1,并对相应的评测指标变化进行可视化,结果如图5 所示。
图5 平衡参数对比实验结果Fig.5 Comparison experimental results of balance parameter
从图5中可以看出,当λ设为0时,只使用二元交叉熵损失函数,此时Dice 和IOU 的得分较低。2 个评价指标准确度值随着λ的增加而增加,验证了结合二元交叉熵损失函数和Dice 系数损失函数的有效性。然而,随着λ的进一步增加,2 个测评指标的值呈震荡下降趋势。其中Dice 和IOU 在λ为0.5 时达到最大值,这意味着当二元交叉熵损失函数和Dice 系数损失函数的权重系数相等且为0.5 时,对模型的参数更新作用最好。因此,后序实验将平衡参数λ设置为0.5。
2.3.2 添加MSOF 的对比实验
为改善所提深层网络的收敛性,并学习从低到高层次的多尺度特征信息,使用MSOF策略对UNet++网络输出的结果进行融合,得到最终的船舶检测分割图。表1为以Dice和IOU作为评估指标,进行5次重复实验的结果。由表1 中可知,使用边输出融合策略后,Dice和IOU 评估分数分别增加了6.1、3.5个百分点,验证了通过使用MSOF策略进一步提高船舶检测分割准确度的可行性。
表1 多边输出融合策略对所提模型的DC和IOU的影响Table 1 The influence of multilateral output fusion strategy on the DC and IOU of the proposed model %
添加MSOF 策略后,模型对船舶目标进行检测分割的结果如图6 所示。
图6 船舶目标分割图Fig.6 Segmentation maps of ship targets
从图6 中可以看出,模型在背景干扰较少的情况下,具有较高的检测与分割精度,随着背景干扰物体的增加,可能会影响UNet++网络提取正确的船舶目标区域,得到错误的目标检测结果。
2.3.3 模型的对比实验
为验证本文所提模型在船舶检测分割任务上性能的优越性,将所提模型与SCRDet[23]、VGG-16[24]、ResNet[25]、UNet[26]、Mask R-CNN[27]、Mask Scoring R-CNN[28]等先进的深度学习模型进行比较。
在SCRDet 网络训练过程中将权重衰减系数设置为1×10-4,动量参数设置为0.9,学习率设置为为1×10-6。VGG-16 模型包括13 层卷积层及3 层全连接层,通过卷积、池化操作进行图像特征提取,通过全连接层进行分类。ResNet-34 模型包括34 层卷积层、1 层池化层、1 层层全连接层,批处理量大小设置为64,全连接层后的dropout 层的丢弃概率设置为0.5。Fine-tuning CNN 模型使用在ImageNet 数据集上预训练好的模型权重作为初始值开始训练,使用RMSProp 算法作为优化器函数,并将学习率设置为1×10-3。Mask R-CNN 模型的权重衰减系数设置为1×10-4,学习率设置为1×10-3,模型的输入图像尺寸为768×768×3 像素。Mask ScoringR-CNN 的Maskiou分支的4 个卷积层的卷积核大小设为3,数量设为256,对于3 个全连接层,实验中将前2 层的神经元设置为1 024,最后一层设置为2(真实的分类类别数)。UNet 网络中的卷积核大小设置为3,使用ReLU 和最大池化分别作为激活函数和池化函数,模型的输入图像尺寸为768×768×3 像素。在UNet++网络中,批处理量大小设置为8,卷积核大小设置为3,卷积步长设置为2,且输入图像尺寸也为768×768×3 像素。将本文所提模型的学习率设置为1×10-4,使用Adam算法作为优化器函数,损失函数的平衡参数设置为0.5,dropout 层的丢弃概率设置为0.2,训练迭代次数与上述对比模型统一设置为40 次。不同模型的检测和识别的准确度结果如表2 所示。
表2 不同模型的准确度对比Table 2 Comparison of different model’s accuracy %
分析表2 可知,VGG-16、Mask R-CNN 等传统深度学习模型存在目标区域提取偏差大、模型的计算冗余度高等问题,导致模型的分割准确度大幅降低。UNet 与UNet++网络有效地结合低分辨率信息(提供物体类别识别依据)和高分辨率信息(提供精准分割定位依据),在一定程度上提高了目标检测分割准确度。而本文所提UNet++with MSOF 模型,在UNet++网络提取图像特征的基础上,采用MSOF 策略对模型的训练过程进行深度监控,并融合不同语义层次的图像特征,进一步提高了船舶目标分割的精准度。
图7 所示为本文所提模型对船舶目标检测识别的结果(彩色效果见《计算机工程》官网HTML 版),其中标记框和船舶分割结果是检测实例图像的真实船舶的ground truth 信息,而模型的预测结果由预测准确率表征。
由图7 可知,在不同尺度、不同环境下的船舶目标均能被模型有效地识别并分类,表明通过与MSOF 策略的结合,UNet++网络使用全局信息和细粒度信息生成具有高空间精度的特征图,完成了对船舶目标精准的检测识别。
为定量分析不同模型在训练过程中的收敛性和准确性等指标情况,对各个模型训练过程的准确度变化作可视化分析,评测指标IOU 的变化如图8所示。
图8 不同模型的准确度对比Fig.8 Accuracy comparison of different models
分析图8 可知,相比于其他模型,本文所提模型在迭代次数为10 次时,准确度已超过90%;在迭代次数达30 次后,模型训练的准确度变化较小。趋于收敛,表明其具有良好的稳定性和鲁棒性。对比最终的船舶目标检测准确度可知,本文所提模型具有更高的检测准确度。
本文提出一种新的船舶目标检测与识别模型,利用具有密集跳过连接结构的UNet++网络提取图像的多尺度特征,采用残差块策略促进深度神经网络的收敛并捕获更详细的图像特征信息。使用MSOF 策略融合不同语义层次的多尺度图像输出特征,生成最终检测和分割结果。为降低数据集中样本不均衡对模型准确度的影响,将二元交叉熵损失函数与Dice 系数损失函数结合使用。在空客船舶检测挑战数据集上的实验结果表明,该模型能够对遥感卫星图像中的船舶目标进行准确检测,测试的Dice 系数和IOU 系数分别达97.3% 和96.8%,与ResNet-34、UNet++等模型相比,船舶目标检测和分割的准确度均有所提高。但目前仍存在卫星图像采集困难、标签制作难度大等问题,下一步将通过利用弱监督学习、样本生成等技术,提高对小样本船舶数据集的检测和分割精度。