张 斌 张晓静 赵丙辰 张江霄 李舟军
1(邢台学院数学与信息技术学院 河北 邢台 054001) 2(北京航空航天大学软件开发环境国家重点实验室 北京 100191)
对高分遥感图像进行像素级语义分割,在地形勘探、测绘,以及水土流失监测和治理等领域都具有重要的理论意义和研究价值。但遥感图像由于地形地貌特点各异,不同地形的尺度往往大小不一且相差较大,且图像边界细节也形态各异,这也给图像分割的难度提出了挑战[1]。本文针对此类问题,以DenseASPP网络为基础,提出一种改进型的注意力网络模型。
自2015年提出全卷积网络模型(FCN)[2]以来,基于深度卷积网络模型的图像分割方法一直是图像分割领域的主流方法。但这类方法一直存在一个问题,即深层次的卷积特征图像具有更大的感受野,卷积计算也可以获得特征图更抽象的特征信息,但却会随着每层的尺寸缩小丢失一些有关图像分割边界的细节信息,这种图像经过反卷积上采样后的分割图像将会出现边界细节不清;而浅层次的特征图像具备这些细节信息,但却不具备更抽象的特征信息。为了解决这个问题,人们提出了许多改进方法,典型的有U-Net[3]、RefineNet[4]等,这类方法是将浅层卷积与深层卷积特征图在不同尺度结合,从而在一定程度上弥补各自的缺陷,其被称为编码器-译码器方法[5]。另一类方法就是带孔卷积[6]方法,这类方法是使用彼此拉开距离的卷积核对特征图像进行卷积采样,由于卷积核具有更大的范围,其卷起采样后的特征图像也具有更大的感受野,从而可以在浅层网络获得较全面抽象的特征图,这种卷积核元素之间的距离就是扩张率。典型的网络如deeplab[7-10]系列,deeplab系列网络提出了一种带孔卷积金字塔(ASPP)[8]的模型,使用不同扩张率的卷积核对特征图进行卷积后合并,可以解决不同尺度图像的分割的问题。
以上各个模型在解决图像分割问题时都取得了很好的效果,但这些模型在对图像卷积采样时对于所有通道和特征图都是一视同仁地均匀采样。但结合我们自身观察事物的经验就可以发现,在注视一幅图像时大脑在图像各点的注意力并不是均匀的,而是有侧重点的,这种注意力机制也使得我们能够更好地找出图像中自己感兴趣的关键信息。
本文根据这种人类视觉注意力不均匀的机制,提出一种注意力模型,在图像进行卷积采样时加入了权重参数,这种权重参数在通道和特征图两个层面,在加入了权重参数之后,每个通道的权重是不同的,特征图中每个点的权重也是不同的,拥有关键点特征的通道和特征点会在卷积采样时得到更大的权重。而权重参数本身是通过训练学习到的。
DenseASPP网络[11]结合了DenseNet网络[12]和ASPP的思想。如图1所示,特征图像经由不同扩张率的带孔卷积核卷积采样,而这些采样后的特征图使用密集连接的结构,这种连接使得每一层的卷积特征图与之后的所有层结合,每一层的特征图也是之前所有层特征图的结合。通过不同扩张率的带孔卷积,获取不同尺度的目标图像特征,再通过密集连接的方式进行结合,而这种密集连接会获得比某一个带孔卷积或者单纯的多个带孔卷积金字塔具有更大的感受野,而且显然比之前的ASPP或者编码器-译码器模型具有更好的特征重用的优点。同时由于不同尺度特征图的密集连接和互相合并,也可以弥补扩张率较大的带孔卷积核留下的空隙无法采样细节信息的问题。该网络还具有DenseNet的优点,即可以缓解深层网络梯度消失的问题。DenseASPP网络的缺点也很明显,就是密集连接导致的内存占用过大的问题。其他网络前层网络的特征图可以被覆盖回收内存,但DenseASPP网络由于每一层都会用到前面所有层的特征图,本层的特征图也会被后面的所有层使用,所以所有层的特征图不能被覆盖而要在每一层参与运算,而且越到后面的层,由于参与计算的特征图的增加,计算量会越大。
图1 DenseASPP网络模型[11]
本文对DenseASPP网络进行了改进,改进后网络的设计如图2所示。网络使用了与DenseASPP相似的结构,使用扩张率分别为1、3、6、12、18、24的六种带孔卷积核对特征图进行采样,并使用密集连接的网络结构,后一层的带孔卷积特征图与前面所有层的带孔卷积特征图合并。本文对DenseASPP网络的改动有三点。第一是加入了注意力模型,包括通道注意力模型和空间注意力模型,即在通道和特征图两个层面加入权重参数,将通道和空间位置的权重矩阵作为系数乘以特征图,这样可以使具有关键信息的特征点得到强化。第二是针对DenseASPP网络在密集连接时带来的内存占用和计算量过大问题,在带孔卷积采样时使用了分组卷积和剪枝策略,分组卷积使计算量减小,但同时也减少了通道间的特征信息融合,会使分割效果大打折扣,因此,本文在分组卷积之后加入了预排序操作,重新打乱混合通道间的特征信息;同时为了进一步减小计算量,本文还提出在训练时计算特征通道的权值,对权值较小的通道进行剪枝,即舍去权值较小的通道,这样做并不会影响分割效果,因为训练的结果表明每次的迭代计算会逐渐集中到权重较大的特征通道,而剪枝策略的引入可以大幅减小网络的测试时间,也实现了网络的稀疏化。第三是加入了扩张率为1的带孔卷积,即普通卷积。这是由于注意力模型的引入使得网络的抽象特征得到强化,在开始阶段加入一个普通卷积层可以加强细节信息的权重。
图2 本文改进的网络模型
本文提出的注意力模型有通道注意力模型和空间注意力模型,通道注意力模型提供了通道的权重参数,使含有丰富特征信息的通道得到更大的权重,空间注意力模型则提供了特征图的空间权重参数,使特征图中的关键点得到更大的权重。本文加入的注意力模型只应用在特征图的通道上,并没有应用在其他带孔卷积的通道上,因为密集连接网络结构实际是对同一幅特征图的信息重用,对所有密集连接通道都使用注意力模型会使得某些信息得到过分强化而削弱其他信息,还有可能产生过拟合以及内存占用过大等一系列问题,本文在后面测试部分的结果也证明了这一点。两种注意力模型没有采用并行结构而是采用串行结构的设计,且是通道注意力模型在前、空间注意力模型在后的结构,经过实际测试发现这种结构效果是最好的。
2.3.1通道注意力模型
通道注意力模型借鉴了SENet的思想,采用先压缩再扩张的模型[13],其结构如图3所示。假设有C×H×W的特征图像,其中:C是通道数;H和W分别是图像的高和宽。首先要进行通道层面的特征图压缩,即将每个通道的特征图分别进行平均值池化的处理,把特征图变为C×1×1的大小,即每个通道的特征图只有1个点,压缩过程的计算为:
(1)
式中:uc是某通道H×W的特征图;zc是压缩后的1×1的特征图;Fsq表示压缩后的特征图的计算公式。式(1)完成对某一通道特征图的所有点求平均值。这里不使用最大池化的原因是每个通道的特征图是被池化成为1个点,而不是一个缩小的特征图。在这种前提下,如果某个通道的特征图有某个数值最大的噪声点,就会对这个通道的权重产生很大的影响,所以平均池化的方法更能反映某通道特征图的整体特性。
图3 通道注意力模型的结构
压缩后的特征图(实际应该是特征向量,因为每个通道的特征图实际只是一个数值)再进行扩张操作,其过程如下:
s=Fex(z,W)=σ(W2σ(W1,z))
(2)
式中:z是经过压缩后的特征图,也就是式(1)中的zc的所有通道的集合(zc是某一个通道的特征图);s是扩张后的权重向量;Fex表示对压缩后的特征图进行扩张;W表示扩张超参数矩阵;W1和W2是用于降维和升维的超参数矩阵;δ是ReLU函数;σ是Sigmoid函数。压缩后的特征图z首先经过全连接的维度压缩,即乘以一个大小为C×(C/16)的超参数矩阵W1,使向量降维为C/16,这里降维的目的是继续扩大权重向量的感受野,同时降低计算复杂度。之后通过ReLU层后,再通过超参数矩阵W2完成升维,W2的维度为(C/16) ×C。其中W1和W2的超参数都通过反向传播学习得到。升维后的向量通过Sigmoid层变为通道为C(即C×1×1大小)的权重参数向量s,最后再按通道分别乘以原特征图。
2.3.2空间注意力模型
空间注意力模型[14]的思想与通道注意力模型相似,也是采用先压缩再扩张的思路。其模型结构如图4所示,C×H×W的特征图首先按照通道层面进行最大池化,计算过程如下:
zhw=Fsq(uhw)=max(uhw)
(3)
式中:zhw是特征图某点压缩后的结果;uhw特征图某点所有通道值的集合,也就是求特征图某点所有通道值的最大值作为特征点的值,最后求得所有点的值后即得到单通道(H×W×1)的特征图。这里使用最大池化是因为这样可以将最明显的特征点保存下来,而取平均值则会使特征图像的权重参数变得平滑,不再突出特征权重,也就失去了注意力模型的意义。
图4 空间注意力模型的结构
压缩后的特征图(实际应该是特征矩阵,因为此时特征图变为H×W×1大小,即单通道特征图)还要经过扩张计算,得到权重矩阵。其计算过程为:
(4)
本文的网络以DenseASPP网络为基础,DenseASPP网络结构与DenseNet网络相似,其继承了DenseNet的很多优点,比如可以有效控制梯度消失问题等。但同时也继承了其缺点,由于采用了密集连接结构,其每一次卷积的结果需要在后面的卷积中继续使用,导致上一层卷积的特征图不能被覆盖,而下一次卷积的特征图需要重新申请新的内存,随着网络的加深,过多的卷积特征图会造成内存占用过大,使训练和测试时间较长[15]。本文对网络结构进行了优化,在带孔卷积时使用了分组卷积,并运用适当的剪枝策略,使训练时间减少为原来的1/5,同时分割精度并没有明显的下降。
2.4.1分组卷积
分组卷积的操作最早在VGGNet网络[16]中就已经出现过了,当时由于计算能力无法完成大型网络的运算,而采用分组计算的方式。而分组卷积会使计算量大幅减小,但带来的问题就是分组后组间的交互计算没有了,这对网络的效果影响很大。本文网络在使用分组卷积时,带孔卷积操作使用分组对于分割精度影响较小,这是因为带孔卷积操作不涉及通道间的交互计算,各通道间本来就彼此独立。而在1×1卷积时采用分组卷积则对精度影响很大,因为1×1卷积涉及到通道间的交互,分组后各分组彼此独立,无法获得其他分组的信息。所以,本文网络在1×1分组卷积之后使用了预排序操作,其目的与ShuffleNet中的通道洗牌操作[17]相似,增加不同通道间的交互。具体操作是将1×1分组卷积后的特征图按不同通道重新随机排序,这样原来通道间的孤立状态被打破,各个通道间的信息实现了交互。另外,在训练和测试时的结构略有不同,在训练时在分组卷积之后,还有剪枝操作,而在测试时由于剪枝已经完成,使用的是稀疏化之后的网络结构,所以测试时只有分组卷积操作。
改进后的分组带孔卷积模型如图5所示。输入特征图首先经过BN-ReLU层和1×1卷积,这与原DenseASPP网络结构一致。而原DenseASPP网络的1×1卷积虽然也实现了降维,减少了通道,但对网络的优化很有限。因为过多减少通道会影响分割效果,而且由于原DenseASPP网络中1×1卷积对通道的减少是随机和均匀的,这可能会舍去含有关键点信息的通道特征。本文改进的网络则按照权重参数进行剪枝,只舍去权值较低的通道信息,这使得网络稀疏化的同时还保留了关键信息。
图5 改进后的带孔卷积操作模型
2.4.2剪枝策略
(5)
根据Wj的值进行剪枝,随着训练过程的迭代,逐步舍去较小的Wj的输出特征值,实验结果表明每次迭代输出的特征值实际都是由固定的几个输入提供的,所以其他的输入特征值被剪枝后,并不会对测试结果有很大的影响。在进行测试时,每个分组只对这几个输入计算输出特征值即可,这样就实现了网络的稀疏化,大大减少了计算量。
本文使用了武汉大学的开源遥感图像数据集WHU-RS19,该数据集共有机场、海岸、桥梁、耕地、沙漠等共计19个分类的遥感图像数据,每个分类约50幅左右遥感图像,合计共1 005幅原始图像,每幅图像分辨率为600×600。除去草地、沙漠、森林等单一背景的遥感图像外(单一背景的遥感图像无须分割),又加入我们自己采集的遥感卫星图像,共有1 632幅原始图像。我们又通过图像镜像、图像旋转、改变对比度、改变亮度、图像数据倍乘等方式进行了图像增强,最终的图像数据集共有10 835幅图像。取其中8 835幅作为训练集,另外2 000幅图像作为测试集。
图像数据集获取之后还需要进行图像标注,因为原始图像数据集是进行图像分类,并未进行像素级图像分割的标注,还需要对原始图像数据集进行手工标注。本文借鉴了文献[18]的方法,该方法只需在同一分类上划线即可快速标注。大部分增强的图像不需要进行标注,只需对原始图像进行标注即可,因为增强后的图像数据集标注的结果与原始图像基本一致。
我们的实验测试硬件环境为一台CPU为Intel Xeon E5 2600 v3系列的12核处理器,内存为16 GB,GPU为RTX2080Ti 11 GB显存的服务器。软件环境为Ubuntu16操作系统,TensorFlow1.4环境。
评价标准使用了图像分割的两大指标平均精度(MPA)和平均交并比(MIOU)进行评价。平均精度是指多次测试的分类正确的像素占图像全部像素的比值平均值,平均交并比是多次测试的分割预测图像与图像真实值重复像素占全部所有像素的比值平均值。另外,为了评价优化前后的性能,使用了测试平均时间,即模型完成多次图像分割所用时间的平均值。
3.3.1注意力模型测试
首先测试注意力模型,这里主要测试了DenseASPP加入注意力模型的效果以及两种注意力模型的顺序。测试结果如表1所示。以DenseASPP网络为基准进行比较测试,当仅加入通道注意力模型时,平均精度提高了0.45百分点,平均交并比提高了1.1百分点,这比仅加入空间注意力模型提升的0.09百分点和0.53百分点来说是比较显著的,说明通道注意力模型对精度的影响更大。在测试时间上,由于两种模型的加入增加了计算量,平均测试时间有0.5 ms的增加,其中通道注意力模型用时更长,这主要因为它的计算量更大。当两种注意力模型都加入时,我们对比了两种注意力模型并行、先空间后通道和先通道后空间的三种网络结构,三种结构在平均精度和平均交并比上都比单加入通道或者空间模型有提高,也说明了两种注意力模型一起使用的效果更好。但在平均测试时间上,并行模型稍快,先空间后通道模型稍慢,但都比原网络慢1 ms以上。综合对比后,先通道注意力模型,后空间注意力模型的效果是最好的。
表1 注意力模型对比测试结果
3.3.2网络优化性能测试
在性能优化测试一项,本文目标是在平均精度和交并比没有明显变化的前提下减少平均测试时间,因为测试时间基本上可以体现出网络计算量和性能。测试数据如表2所示,首先对比了表1的DenseASPP网络和加入本文的注意力模型的网络。需要说明的是,从表2第3行开始,测试项是逐渐增加的,比如第5行加入通道排序,则是在加入了前面的带孔卷积分组以及1×1卷积分组之后再加入通道预排序得出的数据。从数据可知,当加入带孔卷积之后,测试平均时间减少到一半以下,而测试平均精度和平均交并比分别下降了0.01百分点和0.03百分点,并没有明显下降。当加入1×1卷积分组后,平均精度和平均交并比分别下降了28百分点和27百分点,虽然平均测试时间也降低了12.2 ms,但这项改动对网络性能影响较大,原因在前文已经分析过了,主要是1×1卷积分组后隔绝的各个通道间信息的交互。所以要加入通道预排序,加入这项后可以看到平均精度和平均交并比又恢复到之前的水平,虽然仍然低于加入1×1卷积分组卷积之前的状态,但仅比之前下降了0.1百分点左右。最后再加入剪枝策略,随着计算量的减少,测试时间进一步大幅下降到最初优化之前的1/5,而平均精度和平均交并比比优化之前(表2第2行)仅下降0.34百分点和0.13百分点,达到了我们的预期。
表2 网络优化性能对比测试结果
3.3.3网络模型对比测试
我们还对比了本文改进后的网络和DenseASPP网络在不同场景下的图像分割表现,如图6所示。可以看到,在对耕地、河流等简单场景的遥感图像分割时,两种网络都有比较好的表现,除了有部分边界交代不清,基本能够正确分割,但在对复杂的城市遥感图像进行分割时,DenseASPP出现了一些分类错误,而本文网络则错误率更低且边界更清楚。
(a) 原始图像 (b) 手动分割 (c) 本文网络 (d) denseASPP图6 遥感图像分割效果对比测试
同时还对比测试了几个经典网络与本文改进后的网络的图像分割的结果,数据如表3所示。U-Net网络由于是相对较早的网络,仅仅是编码器-解码器的简单结构,其应用主要在医学图像分割上,在对遥感图像分割时效果不是很理想,仅有62.23%的平均精度。较新的Deeplab v3+网络也是使用了带孔卷积金字塔,其效果与DenseASPP网络相近,而且由于其没有采用密集连接,测试平均时间更少。DenseASPP网络数据前文已经列出,而本文改进后的网络在对遥感图像分割时平均精度比最好的DenseASPP网络提高了1.1百分点,平均交并比提高了1.42百分点,而且平均测试时间也减少为DenseASPP的1/5,说明本文提出的分组卷积核剪枝策略取得了很好的效果。
表3 不同网络模型遥感图像分割对比测试结果
3.3.4遥感图像场景测试
最后测试了本文的网络在不同遥感图像场景中的表现,测试结果如表4所示。在场景较为简单的桥梁、耕地、河流等上平均精度可以达到95%以上,平均交并比可以达到90%以上;而在较复杂的场景比如机场、车站、城市等场景上则有80%左右的平均精度和70%左右的交并比。因为这些场景中有小的目标物比如汽车、飞机等我们并没有给以标注,导致有些分类识别错误,另外有些高楼的阴影较大,给准确分割造成了一定困难。而对海岸线的分割精度较低主要是由于海岸线原始图片分辨率较低,导致边界界定不清。
表4 本文网络在不同场景遥感图像下的测试结果 %
本文对DenseASPP网络进行了改进,首先引入了通道注意力模型和空间注意力模型,使得敏感信息有更大的权重,测试结果表明,这种改进有助于提高图像分割的精度;其次对网络进行了优化,在带孔卷积时用分组卷积实现,其中在对1×1分组卷积之后增加了通道预排序层,有效解决了1×1分组卷积导致的图像分割精度下降问题,另外还通过剪枝策略实现了网络的稀疏化,有效减少了计算量。优化和改进后的网络在对遥感图像测试的平均精度比原DenseASPP网络提高了1.1百分点,而平均测试时间减少为原来的1/5。本文的网络在对不同场景的遥感图像测试时发现在对原始图像存在阴影和模糊背景的图像测试效果还不是很理想,今后可以考虑增加图像预处理模块,加大图像的锐度、去除阴影等干扰信息,或者考虑增加阴影分割学习,对图像阴影部分的分割线进行学习,并达到能够预测阴影分割线的效果,网络在不同场景的遥感图像下将具有更强的鲁棒性。