APP下载

基于Mask R-CNN改进的遥感图像舰船检测

2020-04-24顾振辉姜文刚

计算机工程与应用 2020年8期
关键词:化器散度训练样本

顾振辉,姜文刚

江苏科技大学 电子信息学院,江苏 镇江212003

1 引言

舰船是重要的海上目标,遥感图像的船舶检测在民用领域和国防安全中具有广泛的应用。在民用领域,利用遥感图像进行船舶检测可以为船舶导航和海上搜救提供实时位置信息,对专属经济区管理等提供重要保障[1];在军事上,获取目标舰船的海上位置信息能够让我军对敌方舰队的配置和活动范围有很好的了解,给指挥层布置对战策略提供强有力的信息支援。

光学遥感图像提供了丰富的形状、轮廓颜色和纹理信息,并且在遥感图像中使用2D 物体检测算法的船舶检测已经被广泛研究[2-4]。经典方法的船舶检测方法有基于阈值分割[5],这需要有个相对稳定的海面环境,受光照、海况的影响比较大;还有一种方法是使用支持向量机(SVM)、AdaBoost、决策树等[6],这些要依赖于手工制作的特征如局部二进制模式(LBP)、直方图定向梯度(HOG)[7]才能检测舰船。然而,这些经典方法受手动标记的图像特征和模板的限制[8-11],当船舶的大小和朝向和预设的模板不同时,检测的性能会有很大的降低。

自卷积神经网络(Convolutional Neural Networks,CNN)在ImageNet大规模视觉识别挑战(ILSVRC)上的图像分类[12]取得了巨大成功[13-14],CNN 可以提取对图像噪声和形态变化具有鲁棒性的语义级图像特征[15-18]。基于深度学习的目标检测算法已被用于光学遥感图像中的目标检测[19-20]。CNN 在目标检测方面仍存在一些主要挑战,如物体旋转、类内散度过大和类间散度过小,这些挑战通常会降低物体检测性能。就舰船检测来说由于遥感图像是由卫星从高空俯拍得到的,舰船的朝向有着不确定性;受舰船长宽比的影响,不同种类的舰船有着不同的边缘特征,在港口密集停放或靠着很近的舰船会产生较高的噪声干扰,影响回归框位置的确定。

为了解决上述挑战,本文在现有Mask R-CNN目标检测模型框架的基础上嵌入一种学习旋转不变和Fisher判别层,通过加入旋转不变正则化器和Fisher判别正则化器来优化目标函数,提升舰船检测性能。第一个正则化器将样本旋转之前和之后的特征紧密地对应起来强化舰船特征的旋转不变性,第二个正则化器处理不同长宽比的舰船之间的特征联系,减少舰船的类内散度,提高舰船与海面和港口其他物体之间的类外散度。

2 改进的Mask R-CNN目标检测模型

2.1 模型体系结构

Mask R-CNN是一个两阶段目标检测框架,第一个阶段扫描图像并生成候选区域(Region Proposal Network,RPN),第二阶段分类候选并生成边界框和掩码。Mask R-CNN 扩展自Faster R-CNN 由何凯明博士提出[21],使用ROI Align代替ROI Pooling,解决ROI Pooling在进行池化的过程中对ROI 区域进行拉伸使ROI 区域产生形变,导致定位不准。Mask R-CNN添加了一个实例分割框架(将属于同一类的不同实例用不同的颜色分割),在进行目标检测的同时完成像素级实例分割任务,将目标从背景中分割出来。

如图1所示将旋转不变正则化器和Fisher判别正则化器嵌入到现有的Mask R-CNN对象检测框架,不改变原有的神经网络架构。

选用ResNet50 作为特征提取的卷积神经网络,网络结构如表1所示。

2.2 目标函数优化

将用于目标检测的旋转不变和Fisher 判别融合到现有的Mask R-CNN检测框架中,解决遥感图像舰船检测中由物体旋转、类内多样性和类间相似性导致的检测性能下降问题。

图1 改进的Mask R-CNN框架图

表1 ResNet50残差神经网络结构图

对于Mask R-CNN模块采用的ResNet[22],两个正则化器嵌入在2 048维ROI池层中。第一个正则化器将旋转之前和之后图像的特征强制地共享以增强旋转不变性,第二个正则化器约束卷积神经网络特征使检测模块具有小的类内散度和大的类间散度。

给定一组初始样本X={X+,X-} ,首先使用简单的旋转操作生成一组训练样本xRI={ X ,TφX },其中X+表示初始正样本,X-表示初始样本负例表示一系列K 旋转变换,TφK表示训练样本的旋转操作,角度为φk∈φ,k=1,2,…,K 。

为了加速训练同时避免过度拟合,模型参数基于ImageNet数据集[13]进行预先训练,然后通过微调方法转移到优化的检测模型中。给定训练样本X 及其对应的标签,其中yxi表示样本xi的背景标签向量,其值为1 或0。对于训练样本xi∈X,Os( )xi是softmax 分类层的输出,并且Or( )xi是最后全连接层(FC)的输出。为了最小化训练样本上softmax 分类误差,在本文设计的舰船检测模型中,还要求得到的舰船特征应该对任何一组训练样本{ }xi,Tφxi保持旋转不变能力,且具有强大的判别能力,能有很小的类内散度和适当的类间散度。为此,提出以下新的目标函数:

其中,λ1,λ2,λ3,λ4和λ5是控制这五项相对重要性的五个权衡参数。

式(1)中J0( x,y )是分类损失函数,通过使用( c +1)类多项负对数似然准则来定义,它的目的是最小化给定训练样本的分类误差,并通过下式计算,

式中,yxi,lg Os( xi)表示yxi和lg Os( xi)的内积,N 是X 中初始训练样本的总数,K 表示每个xi∈X 旋转变换的次数。

式(1)中J1( X,TφX )表示是旋转不变正则化器,其在旋转之前和之后施加在训练样本上,即强制旋转前和旋转后的样本共享相似特征。将正则化约束项定义为:

其中,Or( )xi是训练样本xi的卷积神经网络特征,表示从训练样本xi中所有旋转样本中提取的平均卷积神经网络特征,定义如下:

式(4)表示使每个训练样本的平均卷积神经网络特征接近从所有旋转版本中提取特征。如果该项输出小值,则认为特征表示对于任何旋转变换保持不变。

式(1)中J2( )X+表示对所有正训练样本的卷积神经网络特征上的正则化器。基于Fisher判别标准,它需要最小化正样本X+类内的分散,可表示为最大化正样本X+的类间散布,可以表示为。的定义分别如下:

其中,C 表示目标的种类,nc表示第c 类样本总的数量,mc表示样本X+c的均值特征,m 表示总样本X+的均值特征,定义如下:

式(1)中的第四项是权重衰减项,使用L2正则化减小W 的权重。

式(1)中的第五项是边界框回归损失,定义如下:

式(1)中最后一项表示实例分割损失,ROI 的输出维度为cm2,表示c 个分辨率为m2的二进制mask,c 表示二进制数量。本文方法为每一个像素值应用sigmoid激活函数,定义J5为平均二进制交叉熵损失函数。

3 实验

3.1 软硬件环境

本文采用PyTorch作为深度学习的框架,PyTorch是一个基于火炬(Torch)的Python开源机器学习库,用于计算机视觉和自然语言处理等应用程序。它是由Facebook里面的人工智能研究小组开发的。PyTorch 本质上是Numpy 的替代者,对GPU 有很好的支持、带有高级功能,是一个用来快速搭建和训练深度神经网络的理想选择。实验中用OpenCV对基本图像进行处理,使用可视化工具matplotlib对训练过程中的损失函数进行了可视化。实验采用的电脑配置是CPU 为I7-9700K,内存RAM有32 GB,GPU为技嘉GTX 1080Ti 11g。

3.2 数据集

使用Kaggle 舰船识别比赛提供的图像作为模型的训练集,这个图像包含192 556张图片,图像的尺寸为长768,宽768(单位:像素),其中不包含舰船目标的图有150 000张,占总数的77.9%,含舰船目标的图有42 556张(22.1%),其中包含的舰船种类有集装箱货轮、散货轮、驱逐舰等,它们的长宽比在7∶1到4.5∶1之间,为了加速数据集的制作和提升模型训练速度,将图像中不包含舰船目标的图像舍去。

使用LableMe标注有船样本中船的位置,生成每张样本对应的.json文件,使用脚本程序批量将json转化为数据集。

3.3 参数设置

在改进的Mask R-CNN 框架中实现遥感图像中舰船检测,将残差神经网络ResNet50 和FPN 作为特征提取的骨干网络,利用在ImageNet 数据集上预先训练好的模型初始化检测网络,利用Kaggle船只检测数据集进行参数微调。

式(1)中的λ1,λ2,λ3,λ4和λ5是用于控制目标函数中5个函数相对重要性的5个参数,λ1控制旋转变换正则化器,λ2控制卷积神经网络特征正则化器及类内散度和类间散度,λ3控制权重衰减,λ4控制回归框损失,λ5控制分割损失。由于是在Mask R-CNN 基础上更新的目标函数,所以将λ4和λ5设置为1,这和式(1)中第一项分类损失函数的参数一样,使模型在进行微调时不破坏在ImageNet 数据集下初始化结果,权重衰减的参数λ3根据文献[13]中的经验设置为0.000 5。使用穷举搜索的方式测试λ1和λ2的参数敏感性,实验得出以下结论:(1)较小的λ2,增大了类间散度的同时也增大了类内散度;(2)旋转不变特征的加入,增强了舰船特征联系,减少了类内散度,避免了模型的过拟合。当λ1=0.01,λ2=0.005 时,对舰船这类大长宽比和方向不定的目标进行检测时有很好的实时性和准确度。所以将式(1)中的参数分别设置为λ1=0.01,λ2=0.005,λ3=0.000 5,λ4=1,λ5=1,使用双向softmax 分类器(一类表示背景,另一类表示舰船)训练旋转不变卷积神经网络模型,将生成的所有区域提案与实际标注的图像计算交并比IOU,将IOU 大于0.5 的舰船检测回归框作为初始正样本,其余提案作为初始负样本。分类器的学习率设置为0.01,整个网络设置为0.001 以允许微调进行而不破坏初始化,并且让学习率每10 000次迭代减少10倍,势头设定为0.9。使用三个旋转,φ=对每个训练图像进行旋转操作以获得4X 训练样本。旋转变换是一种常见的数据增强方法,让有效的数据产生更多的等价数据,通过对图像进行90°、180°和270°三次旋转,使训练样本扩充到了原来的4倍,使用数据增强过后的样本训练网络可以减少网络的过拟合。通过这三次旋转增加的数据量,可以解决海上舰船朝向不确定的问题,让网络学习到的特征具有一般性,而不是只能检测出某一具体角度的舰船。

在实际中,很难将整个训练集中所有类的特征考虑在内,这会导致需要极大的计算资源,减缓模型训练的速度。做了两个必要的修改:(1)不是使用整个训练集来更新Fisher 判别项,而是根据每个小批量执行Fisher判别正则化器的更新。(2)将每批次分成若干子批次,以同时更新式(3)中引入的旋转不变正则化器。具体的步骤如下:在每次迭代中,随机抽样16个图像并从每个图像中选择16个正样本的ROI尽可能保证检测物体的特征能很好地包含其中,以构建一个用于更新Fisher判别项的256 个ROI 的小批量样本。将上述样本集再分成四个子集合,在每个子集合中,随机抽样四个图像并从每个图像中选择16个ROI(8个正样本和8个负样本)以及它们的4个旋转角度以构建具有256个ROI大小的子集更新旋转不变项。

使用matplotlib 可视化训练过程中损失函数的变化,操作过程如图2。选取5次训练结果在表2中具体展示,由图3 可见,在进行过40 000 次迭代后模型的分类损失(loss)和实例分割损失(loss_mask)趋于稳定。

图2 损失函数可视化操作

表2 权重衰减和损失函数变化

图3 损失函数变化

最小化类内散度,必须减少同一类卷积神经网络特征与它们中心及均值特征之间的距离,最大化类间散度,就是扩大卷积神经网络特征与它不同类的中心的距离。图4 是传统方法和改进方法训练完成后散度变化图,用不同颜色表示不同类的特征分布。改进方法的类间散度更小(特征分布更紧凑),类间散度更大(不同类之间的空隙更大)。

图4 散度变化

3.4 实验结果

图5 是Mask R-CNN 两阶段目标检测展示图,图6表示训练完基于Mask R-CNN 改进的舰船检测模型后在测试集上的部分结果,图7表示使用相同训练集训练的Mask R-CNN(主干网络也是ResNet 50+FPN)模型在测试集上的部分结果,图8是云雾遮挡情况下舰船检测结果对比,表3表示两种方法在相同测试集条件下进行舰船检测性能表现。

图5 Mask R-CNN两阶段目标检测

图6 改进Mask R-CNN舰船检测结果

图7 Mask R-CNN舰船检测结果

图8 云雾遮挡情况下船检测结果

表3 模型性能对比

与Mask R-CNN方法相比,本文改进方法对遥感图像中的舰船有更好的检测效果。如图6(a)中3 点钟位置的两艘船由于靠得太近,小船的边缘特征和大船的边缘特征产生的重叠,使得大小船不能很好地识别和分割出来,只检测到大游轮而漏检了和它相邻的小窗,而本文改进的Mask R-CNN 算法在一定程度上克服了这个缺陷,如图6(a)所示在把两艘船都检测出来的同时,通过不同颜色的掩码将它们和海洋背景区分开实现了实例分割。由于增强了旋转前后舰船特征的联系,在训练集样本不是特别丰富的情况下尽可能多地提取描述性强的舰船特征,一定程度上克服了不同舰船由于具有不同外形导致的长宽比不同带来的检测效率的下降。如图6(b)中,改进的Mask R-CNN 方法将和码头形状相似的登陆舰检测出来,而没有漏检。

以往的舰船检测算法对于理想条件下的图像可以取得较好的结果。然而实际成像复杂多样,特别是天气状况、气候条件、太阳角度、海面状况等因素影响光学遥感成像质量,导致检测失败。如图8(a)在雨雾遮挡情况下,传统Mask R-CNN 检测失败,改进的方法检测出了两艘靠岸舰船如图8(b)所示。对比两幅图片可以看出,改进方法的适应能力更强。

准确率(precision)、召回率(recall)和平均精度(AP)是衡量模型性能的重要指标,计算公式如下:

其中,TP 表示正样本被识别为正样本,FP 表示负样本被识别为正样本,FN 表示正样本被识别为负样本。

如表3 所示提出的方法在检测时间几乎不增加的基础上,实现了准确率由73%上升到了81%,说明舰船检测准确度有所升高,召回率从86%降低到了74%,表示在准确度提高的同时错检测也下降,平均精度AP 从80%上升到85%,表示提出方法的精度和鲁棒性有提升。

4 结论

针对遥感图像中舰船朝向不确定性和海上及港口复杂环境造成舰船检测性能下降的问题。本文研究了基于旋转不变和Fisher 判别的目标检测算法,在Mask R-CNN 目标检测模型的基础上嵌入显著特征判别层,优化了新的目标函数,用旋转判别正则化器和Fisher判别正则化器解决舰船旋转和舰船类内多样性导致的检测性能下降问题,通过在Kaggle舰船检测比赛数据集上的实验证明,改进的方法较Mask R-CNN模型对遥感图像中舰船检测的精度更高,有鲁棒性,同时不增加检测时间。

猜你喜欢

化器散度训练样本
带势加权散度形式的Grushin型退化椭圆算子的Dirichlet特征值的上下界
广州市增城区清燕小学作品集
定常Navier-Stokes方程的三个梯度-散度稳定化Taylor-Hood有限元
人工智能
具有部分BMO系数的非散度型抛物方程的Lorentz估计
BiPAP呼吸机加热湿化器与过水湿化器在治疗Ⅱ型呼吸衰竭中的应用价值分析
基于f-散度的复杂系统涌现度量方法
宽带光谱成像系统最优训练样本选择方法研究
基于稀疏重构的机载雷达训练样本挑选方法
小米空氣淨化器深陷「品質門」爭食200億市場 空氣淨化器黑榜亂象