改进Mask R-CNN 的遥感图像多目标检测与分割
2020-07-17李森森
李森森,吴 清
河北工业大学 人工智能与数据科学学院,天津 300401
1 引言
近十年来遥感技术有了很大的发展,光学遥感传感器分辨率也得到了很大的提升,大量高分辨率遥感图像逐渐在军事和民用领域发挥出重要作用。如何更好地从遥感图像中提取特征,做到更加准确的识别与分割成为一个重要的研究方向[1]。
遥感图像往往具有更加复杂的背景。HOG[2]、SIFT[3]、SVD[4]等传统的方法需要针对不同的场景利用大量先验知识进行人工特征设计,但在面对复杂遥感图像时,人工设计特征的描述能力十分有限,并且适用性和通用性很差,表现效果并不理想,这一问题在多目标检测中更为突出。随着深度学习技术的发展,相较于传统方式,通过大量的数据训练,神经网络可以学习到图像更深层次的特征,做到更加准确的识别与分割。对遥感图像目标检测的研究,Jiang等人[5]利用基于超像素分割的方法对遥感图像进行碎片提取,通过将提取的图像碎片输入CNN网络来检测是否存在车辆;Cheng等人[6]提出RICNN神经网络,在原有CNN体系基础上引入旋转不变层来提升遥感图像的多目标检测性能;Nie等人[7]为提高船只检测准确率,通过使用Soft-NMS替换Mask R-CNN中的NMS算法,对非最大检测框的检测分数进行权重衰减而非彻底移除,有效地解决了在处理密集船只时难以分开的问题。对于遥感图像目标分割的研究,Long等人[8]提出全卷积神经网络,去掉通用检测网络末端的全连接层,创建了端到端的分割神经网络,并成为分割网络的基础;祖宝开等人[9]把分块低秩表示的方法应用于市区遥感图像,完成市区图像不同区域的划分;杨承文等人[10]通过贝叶斯深度学习与主动学习相结合的方式,完成在仅有少量标注样本训练情况下的图像区域分类;He等人[11]引入土地覆盖网络的概念,提出一种基于分布度统计的分析方法来客观地对分割结果进行评估;李梁等人[12]将改进的特征金字塔结构应用于Mask R-CNN,用于对航拍图像中受灾害区域进行分割,通过更充分地提取图像特征达到了很好的分割效果。
上述方法,都没能对遥感图像从目标检测与分割两方面进行分析,并且对于多目标考虑较少,往往侧重于单一目标的情况。为了更好地解决多目标遥感图像检测与分割问题,本文以He K等人[13]提出的Mask R-CNN为网络基础,提出了Lmask R-CNN(Leap Mask R-CNN)网络。Mask R-CNN属于R-CNN系列网络,解决了RCNN[14]、Fast R-CNN[15]、Faster R-CNN[16]中 存 在 的 问题。Mask R-CNN本身具有优秀的检测和分割效果,但主要用于处理自然图像,对于遥感图像处理不够理想。目前,针对该网络在遥感图像方面的改进,大多用于处理特定目标,改进方面集中于更好地提取图像特征,但这使得网络的通用性不高,难以适用于多目标情况,并且对于分割网络处理很少。
本文针对Mask R-CNN在遥感图像多目标识别方面的不足进行改进,主要采取了三种措施:分层跳连多层特征融合、自适应的感兴趣区域提取、融合部分全连接的目标分割。改进后的Mask R-CNN模型提高了特征提取能力,降低了卷积过程中像素位置信息的损失,提高了目标检测和分割的效果。
2 相关算法
2.1 Mask R-CNN检测算法
Mask R-CNN是在Faster R-CNN基础上提出的目标检测与分割网络。主要改进包含:利用RestNet+FPN[17]进行特征提取;提出感兴趣区域空间对称化(RoIAlign)替换原网络中的感兴趣区域池化(RoIPooling);增加分割支路进行目标分割,网络模型如图1所示。
Mask R-CNN在RestNet网络基础上构建FPN特征金字塔。RestNet划分为5个模块(图1中C1~C5所示)。FPN特征金字塔由自底向上和自顶向下两个路径组成。自底向上路径就是ResNet网络,生成C1~C5粗粒度的特征图。自顶向下路径利用将高层特征进行上采样(×2)操作与卷积层网络次高层输出特征层进行融合操作,融合采用两个特征图点对点数值相加的方式,得到P5~P2特征层。P6特征层由P5最大池化得来,但网络不存在P1特征层。由于C1层特征尺寸过大,生成P1应用于感兴趣区域提取会造成参数量激增,综合考虑舍弃P1,但也放弃了部分图像底层特征。RestNet+FPN特征提取网络通过构建多尺度特征层的形式替换单一的ResNet单特征结构,使网络更好地提取图像低维语义特征,检测性能也大大提升。
图1 Mask R-CNN模型
RPN感兴趣区域提取网络利用P2~P6特征层来产生候选框,利用3×3卷积核在每层特征图中进行滑动,对每个滑动窗口中心采取3种不同尺寸的anchor。每个候选框用坐标(x,y,w,h)表示,(x,y)为区域左上角坐标,(w,h)为宽和高,映射到目标区域偏移量为(dx,dy,dw,dh)。class支路利用1×1卷积核和Softmax[18]分类器得到该区域前景和背景的概率,box支路利用1×1卷积核得到预测偏移量 (d̂x,d̂y,d̂w,d̂h)。RPN网络损失函数由分类和区域坐标两部分组成,定义为:
其中,p为实际标签,p̂为预测标签,前景定义为1,背景为0,λ为调节比例参数,默认为1。前景与背景分类损失Lcls(p,p̂)采用如下定义的对数损失函数:
定位损失Lbbox(d,d̂)可定义为:
其中:
采用梯度下降算法进行训练,得到最终的候选框。
通过RoIAlign层将候选框处理到同一尺度,传入目标检测和分割网络。RoIAlign层取消了原RoIPooling的两次量化过程,采用双线性内插的方法得到像素点上的像素值,将特征聚集过程转换为一个连续过程,在处理每个候选框的过程中保存浮点数边界,而不是进行量化,增强了算法在目标检测时的精度。
对于目标检测,网络采取常用的全连接层加Softmax分类器的形式实现。对于新增支路目标分割网络,通过全卷积神经网络的形式实现。利用多个3×3卷积操作增强目标特征信息,通过反卷积将特征图扩大一倍,缩小特征层与原图像的倍数,从而减少将目标区域映射到原图像中去时的误差。通过对特征图每一个像素都产生一个预测值,来实现目标分割。分割网络对每个感兴趣区域产生c(分类数目)维的分割掩码,通过利用分类网络所计算出的类标号(例如class=i),得到最终的目标分割图(分割掩码的第i维)。这种方式能够很好地防止出现类间竞争,对不同类别间进行解耦,大大简化计算过程,并使得网络取得了非常好的分割效果。
虽然Mask R-CNN有效地实现了目标检测与分割,但应用于遥感图像还存在一些问题。例如,遥感图像存在视角特殊性、背景复杂度高等问题,需要更多的底层特征,但是特征提取却非常困难;目标间尺寸差异过大,不能自适应提取感兴趣区域,造成目标丢失严重;图像中存在大量小目标使得分割网络需要具有更高的精度。本文针对这些问题进行了重点研究。
2.2 本文检测算法
为了提高Mask R-CNN网络对光学遥感图像进行目标检测与分割的准确率,主要包含以下三个方面:首先,在特征提取过程中,卷积神经网络需要学习如何提取更为有效的抽象特征,进而更准确地对像素进行分类。其次,在目标感兴趣区域提取过程中,能够同时提取各种尺寸差异过大的目标,以防止小目标的丢失。最后,在对目标进行分割的过程中,通过更好地提取目标的边界信息,可以更准确地将像素点还原到原始图像的对应位置,增强分割精度。
针对上述三个方面的内容,本文在特征提取过程中提出两种分层跳连融合的提取网络,来增强图像特征提取,并使提取出的各个特征层包含更多来自图像的有用信息。在感兴趣区域提取网络中,通过加入K-means算法对训练集目标进行聚类分析,使网络能够自适应初始化待提取面积,减少人为指定偏差造成的目标丢失。在Mask R-CNN的分割网中,利用反卷积操作来实现精度的提高,但遥感图像大量小目标的存在需要更精确的边界信息,本文通过将全连接网络融入全卷积网络的形式来提高图像的边缘提取率,并且将反卷积层改为上采样操作来避免棋盘效应的出现,提高分割精度。
2.2.1 基于分层跳连融合方式的特征提取网络
由于高分辨率遥感图像目标间尺寸差异过大、小目标过多、图像背景复杂等特点,造成了特征提取困难,所以,设计了如图2所示的分层跳连特征融合提取网络。该网络为增大特征层感受野以及更好地实现分层跳连,加入了由C5特征层进行2×2最大池化得到的C6特征层。Mask R-CNN中只采用两个特征图点到点数值相加的特征融合方式,但当分层跳连融合存在时,采用这种方法会导致特征差异和精度损失过大,为了解决这一问题,在分层跳连存在时,网络采取维度相加的方式来进行特征融合。
在原网络中,C2~C5特征层通过添加1×1卷积层全部将维度统一为256参与特征融合,并且得到的P2~P6特征层维度也为256。改进后的网络采用分层跳连维度增加的方式进行融合,为了使各特征层维度与原网络保持一致和尽量减小运算量,通过利用1×1卷积层,将C1~C6维度统一为128。自下而上融合过程中,利用分层跳连融合的方式生成c2~c5特征层,计算过程如下:
图2 分层跳连融合特征提取网络
其中,上角标代表维度,2≤i≤5,i代表层级,M代表最大池化,规格为2×2,U2代表2倍上采样,符号⊕代表两特征层维度叠加。c1和c6直接由C1和C6通过1×1卷积得来,维度为128。在自下而上的分层跳连方式底层特征融合过程中,加入C1层和C6层的使用,能够进一步增加特征图中低维与高维特征,可以更好地保留底层特征和减小高维特征减少带来的视野丢失。并且,C1特征层也不再进行舍弃,分别通过跳连和卷积方式传入c2和c1中。这时得到的c2~c5中,其高层特征中就融合了低层的特征,但低层特征中包含的高层特征较少。所以,在原有网络自上而下特征融合的基础上加入由c1~c6自上而下的分层跳连方式高层特征融合,跳连之前统一将c1~c6特征层维度利用1×1卷积变为128,得到图2网络中融合了高层与低层特征的P5~P2层。融合过程为:
其中,符号+代表两个特征层对应位置数值相加。P6是由c6通过1×1卷积得来,维度为256。采用公式(6)自上而下分层跳连的特征融合可以使高维度特征信息利用跳连的形式直接融入底层特征中去,在原有的自上而下基础上,通过跳连使得拓宽了横向高维度特征来源,例如,原始网络P2特征层仅由P3和C2得来,改进后可以发现由c1,c3,P3得来,c3包含了C2与C4特征。所以,改进后的网络通过利用1×1卷积改变特征层维度的方式,实现了分层跳连特征融合,使得低维特征与高维特征进一步加深融合,为后续感兴趣区域提取以及目标检测与分割提供了更好的特征层。
2.2.2 自适应面积的感兴趣区域提取
Mask R-CNN的RPN网络区域选取框标准集合S为固定的{322,642,1282,2562,5122},不能根据实际场景需求做出调整。本文通过对训练样本集进行K-means聚类来自动调整最适合的选取框面积。
假设训练集中目标样本X有n个对象,X={X1,X2,…,Xn},其中每个对象都具有长(h)和宽(w)两个维度的属性,取所有长宽的最大值与最小值,记为(hmax,hmin,wmax,wmin),设:其中,Cmin代表训练集中目标的最小区域(小于等于最小目标),Cmax代表训练集中目标的最大区域(大于等于最大目标)。
由于P2~P6特征层(共5层)应用于感兴趣区域提取,因此S集合包含5种面积,并依次应用于P2~P6。为解决K-means算法对初始化中心敏感的问题,网络利用下式确定5个初始化聚类中心{C1,C2,C3,C4,C5}:
i代表第i个聚类中心,n代表聚类中心个数。采用欧式距离计算每个对象到每一个聚类中的距离:
其中,Xi表示第i个对象,1≤i≤n,Cj表示第 j个样本聚类中心,1≤j≤5,Xit表示第i个对象的第t个属性,1≤t≤2,Cjt表示第 j个聚类中的第t个属性。依次比较每个对象到各个聚类中心的距离,将对象分配到距离最近的聚类中心的聚类簇中,得到5个类簇{Z1,Z2,Z3,Z4,Z5}(Z代表每一类包含所有对象的集合),更新后的各个聚类中心为各个类簇中所有对象在各个维度的均值:
其中,Cj表示第 j个聚类中心,1≤j≤5, ||Sj表示第 j个类簇中包含对象的个数,Xi表示第 j个类簇中的第i个对象,1≤i≤ ||Sj。重复上述操作直至聚类中心不再变化,得到最终5个聚类中心{C1,C2,C3,C4,C5}。为了同时处理数据集中存在的特小目标与特大目标,加入了Cmax与Cmin的比重。因此,设定区域选取框标集合S为:
2.2.3 局部融合全连接的分割网络
Mask R-CNN分割网络利用全卷积网络对图像进行特征提取与分割,但文献[19-20]关于全连接层应用的研究发现,全连接网络相较于卷积神经网络具有更加准确的提取功能,但运算量巨大。本文为了融合两者优点,在分割网络中加入部分全连接网络来辅助全卷积网络实现更好的分割。
改进后的目标分割网络如图3所示,在原有全卷积网络的基础上,利用2×2最大池化操作将第1特征层降为原来一半,再利用1×1卷积操作将特征图维度降为10(目标类别数)。此时特征图大小为7×7×10,通过7×7大小的卷积核生成包含490个参数的全连接层。同理,原分割网络第4特征层利用同样方式处理得到7×7×10特征层,通过点对点数值相加的方式与变形后的全连接特征进行融合,对融合特征进行相同的卷积操作得到全连接层,经过变形、2倍上采样操作和1×1卷积升维操作后恢复到原始尺寸,融合上下两个流程的特征层。此时得到的特征层中,融入了全连接路径传来的浅层语义纹理信息,这些信息对于处理小目标十分重要。
原分割网络使用反卷积操作缩小特征图与原始图像之间的比例,达到减少目标区域映射到原图像中的误差,实现增强分割准确度的目的。但在反卷积增大特征层分辨率的过程中,由于卷积运算的存在会出现像素位置重叠,导致得到的像素点叠加了其他像素信息,破坏了像素之间的位置关系,造成棋盘效应。改进后的网络由上采样操作替换反卷积操作,上采样操作可以根据最大池化过程中保留的像素位置信息直接将像素还原到原始位置并填充拓展区域,避免了像素位置重叠与丢失,更好地保存了像素之间的位置关系,也避免了棋盘效应,从而降低了特征层在提高分辨率过程中的误差,进一步提高了网络的分割效果。
增加的全连接支路,仅包含1×1与7×7两种卷积核,1×1卷积核用来升降维,7×7卷积核用来生成全连接层。7×7卷积核处理7×7×10的特征图,特征图维度仅为10。所以,整个全连接支路训练参数相较于原网络256维的全卷积网络来说影响很小,相较于整个Mask R-CNN网络参数来说完全可以忽略不计。
综上所述,本文Lmask R-CNN网络模型整体结构如图4所示。
3 实验结果及分析
本文仿真环境为Intel®CoreTMi7-4790K CPU@4.0 GHz,单GPU NVIDIA GTX 1070 Ti,Windows 7,开发环境为Python。
3.1 数据集处理
本实验采用NWPU VHR-10数据集,该数据集包括飞机、船舶等在内的10类高分辨遥感图像。原数据目标标签只包含边界矩形框信息,无法实现分割任务,所以本实验在原边界信息基础上进行重新标注。通过工具VIA(VGG Image Annotator),按照物体的轮廓进行标注,从而能够实现目标分割。如图5(b)为重新标注后的数据集,将每个样例中所有边界点的最大横坐标和纵坐标以及最小横坐标和纵坐标重新组合成矩形框,即可得到原数据集图5(a)中的矩形框。数据集的拓展严格按照这一方式执行。实验中,数据集被随机划分为训练集(70%)和测试集(30%)。
由于NWPU VHR-10数据集样本较少,所以选用COCO数据集作为预训练数据集,并且在图片输入神经网络前,随机对其加入上下翻转、左右翻转、高斯模糊三种方式的随机组合处理,图片标签进行同等方式映射。
3.2 评价指标
实验采用AP(Average Precision)、mAP(mean Average Precision)对模型进行定量评估。
图3 基于局部融合全连接的目标分割网络
图4 Lmask R-CNN网络模型
图5 数据集前后对比示例
对于每一类目标检测给出的置信度,从高到低进行排序:
其中,G代表真实区域,D代表网络检测结果。当IOU>τ(τ⊂[0,1])记为正确预测的结果,否则记为预测错误。依据预测结果的正确与否计算TP(True Positive)、FP(False Positive)、FN(False Negative)、TN(True Negative),依据TP、FP、FN、TN来计算召回率(recall)、精确度(precision)、AP和mAP。
单类目标准确率计算结果为:
其中,p代表precision,r代表recall。所有类别平均准确率计算结果为:
其中,C代表类别数。
3.3 感兴趣区域自适应结果与分析
对NWPU VHR-10数据集自适应提取面积大小结果如图6所示。可以发现,遥感图像目标大部分集中于左下方,右上方大区域附近也有零散分布,这也表明遥感图像中包含大量的小目标,并且大、小目标尺寸间差距过大,仅通过人为设定提取面积,极易造成特征提取不充分,大目标或小目标感兴趣区域检测丢失情况的出现。通过利用K-means聚类算法,结果如表1所示。通过公式(12)得到感兴趣区域选取框集合S={342,842,1382,2272,3732},更好地兼顾了不同目标间的大小及尺寸特性,使得网络更好适用于遥感图像存在大量小目标的情况,为更好地实现目标检测与分割提供前提。
图6 自适应感兴趣区域的聚类结果
表1 聚类结果数值
3.4 目标检测与分割实验结果与分析
实验选取ResNet-50作为特征提取网络,利用从COCO数据训练好的模型进行迁移学习训练,学习率设置为0.001,最大迭代次数设置为200。实验结果分为目标检测和目标分割两部分。
表2给出了本文与五种不同算法在NWPU VHR-10数据集上,IOU阈值设为0.7的目标检测结果。通过结果发现,传统的COPD算法效果最差,各个类别准确率都非常低,平均正确率仅为58.54%;RICNN整体略有提升,但不明显,Faster R-CNN+FPN算法相较于前两种算法,各类别准确率都有很大提升,但对于小目标检测检测率不高;ODDP算法虽然提升了小目标检测的准确率,但对于船、储油罐、网球场、车辆等小目标的正确率还较低;Mask R-CNN对于桥、船、车辆的识别率很低,说明网络对于特征不明显的目标不敏感;Lmask相比COPD、RICNN、Faster R-CNN+FPN、ODDP和Mask RCNN平均正确率分别提升32.45%、27.99%、18.75%、4.28%和7.14%,特别是对于飞机、储油罐、网球场、车辆等小目标的识别效果明显。总体而言,目前目标检测网络结构大多针对自然场景图像而设计的,不能很好适应遥感图像小目标过多、不同类别目标间尺寸差异过大等特点,造成漏检、误检情况的出现。本文提出的Lmask R-CNN通过利用分层跳连特征融合网络以及自适应感兴趣区域网络,使得网络特征提取更加充分,更好地利用图像低维特征与高维特征进行融合,以及通过训练集自适应设置感兴趣区域面积大小,使得网络在保证大目标不丢失的前提下,大大增强了小目标识别率与准确率。
表2 目标检测的平均精度 %
表3为目标分割的结果,除Mask-RCNN和本文改进算法之外,其余几种算法不具有分割功能,所以仅对比了这两种算法在不同IOU(0.5,0.6,0.7)下的准确率。准确率变化曲线如图7所示,通过对比结果发现,IOU在0.5,0.6,0.7情况下,平均正确率分别提升3.32%,6.41%,3.58%。随着IOU的增大,提升呈现先升后降的情况,说明Lmask R-CNN比Mask R-CNN具有更高的分割精度,随着IOU增大,正确率波动变化较小,但当IOU过高时,二者都会被判定为分割失败,缩小两者间精度差距。改进的分割网络通过融入局部全连接网络,利用全连接网络优秀的特征提取整合能力,提取并保存更加细致的边界信息,实现了更加细致的分割。
图7 分割结果趋势对比图
图8 为Lmask R-CNN与Mask R-CNN部分检测结果对比图。通过对比前后实验结果,Mask R-CNN在检测飞机、储油罐、轮船等小目标时,均存在目标丢失的问题,对图像中的小目标容易漏检。改进后的网络很好地优化了这一问题,对于飞机、轮船全部检测出来,由于储油罐存在特别小的个体,也存在漏检现象,但远好于原网络。对于棒球场目标,两者都全部检测出来。在分割表现方面,原网络由于漏检问题的存在,造成部分目标无法进行分割。在分割好的目标间通过对比可以发现,改进后的网络,对于目标边界分割的细致性优于原网络,更好地将目标区域分割出来,例如飞机机翼与机尾、棒球场扇形边界等。
表3 分割检测的平均精度 %
在运行时间对比方面,Mask R-CNN每张图像平均运行时间为0.327 s,本文方法为0.392 s。对比精度的提升效果,时间仅增加了0.065 s,在实际应用过程中,对时效性影响有限。能在额外计算成本可以忽略不计的情况下,提高识别和分割的准确率与精度。
4 结束语
本文提出了一种在高分辨率遥感图像实现多目标检测与分割的算法Lmask R-CNN,首先提出两种分层跳连融合方式,使获得的图像特征更细致丰富;然后提出自适应面积的感兴趣区域提取,使各种尺寸差异过大的目标能够同时被检测,一定程度上减少了目标漏检情况的出现;最后提出局部融合全连接的目标分割网络,通过利用全连接网络辅助卷积分割网络形式,实现目标物体的更精确分割。实验结果表明,该算法在目标检测方面,对比其他算法拥有更高的精度,在目标分割方面也优于原算法,具有很好的应用前景。