丁 成,翁理国,,夏 旻,崔逸尘,钱俊豪,刘 佳
1.南京信息工程大学 江苏省大数据分析技术重点实验室,南京210044
2.南京信息工程大学 江苏省大气环境与装备技术协同创新中心,南京210044
湖泊蕴藏着丰富的自然资源,并且是可更新资源[1],合理的开发可以给人们带来丰富的资源。近些年湖泊面积缩小的问题比较突兀,对湖泊资源监测,以保护湖泊资源的完整。将遥感影像技术应用在湖泊分割中,可以实现高精度的湖泊资源监测。
在卫星图像的分割领域中,湖泊分割已经有了相应的研究,大致可以分为两大类:传统方法和深度学习方法。
传统方法通常是指水体指数阈值分割,王碧晴等[2]提出了一种基于归一化水体指数和图像分割技术相结合的高原湖泊提取方法,充分利用了图像的光谱信息和空间结构信息,弥补了单一的水体指数方法产生的错分、漏分、细碎对象较多等现象;Guo 等[3]提出了一种新的加权归一化差分水体指数,应用于湖泊的提取,可以从TM图像中提取高精度水体;Elsahabi等[4]探索了一种AHDL 水面提取技术,将不同水体进行分类,实现了不同水面提取技术。传统方法能够有效地提取出水体表面信息,但是在高背景复杂度情况下,提取到的水体会存在噪点和误分的问题。
深度学习分割方法是由Long等[5]提出全卷积(FCN)分割网络兴起的,实现了像素级别的分割。U-Net是由Ronneberger等[6]提出的一种继承于FCN的改进方法,是比FCN更精确的语义分割网络。Zhang等[7]将深度学习应用在遥感图像分割中,采用卷积网络提取遥感图像的光谱和纹理特征,深层卷积网络能够提取到遥感图像更多的特征;许玥等[8]提出了一种基于改进的U-Net 网络架构与全连接条件随机场的图像分割算法,能够提取高背景复杂度的遥感图像特征;苏健民等[9]提出的基于UNet 的高分辨率遥感图像语义分割方法,实现了端到端的像素级语义分割。深度学习语义分割方法[10],通过深层卷积能够提取高背景复杂度遥感图像的语义信息特征,减少了分割噪点,但是存在着半岛、小岛和湖泊细小支流的边缘信息提取丢失问题。
针对深度学习的语义分割法,在卫星图像分割中对半岛、小岛、湖泊细小支流的边缘信息提取丢失问题,本文提出了多注意力机制(MA-Net)网络卫星图像分割算法。该分割模型框架是端到端的对称结构,由编码和解码两部分组成。编码部分使用改进的VGG16[11]网络提取卫星图像的纹理特征,解码部分引入全局平均池化注意力融合机制(GPA),融合编码层特征,得到丰富语义信息的特征图,在网络的输出端加入注意力机制模块(Attention),注重湖泊的边缘信息特征提取,帮助提取出半岛、小岛和湖泊细小支流。
经过实验,该模型能够有效提取半岛、小岛、湖泊细小支流的边缘信息,并且分割指标优于经典分割模型。
本文提出的MA-Net卫星图像分割算法的框架是端到端的对称式结构,由编码和解码两个部分组成,分割模型框架如图1所示。
图1 多注意力机制分割模型框架
左半部分编码,采用改进的VGG16网络提取特征,由5个Block组成的深度卷积网络可以有效地提取卫星图像的纹理特征。右半部分解码,设置了4 次上采样,经过4次反卷积上采样[12](Upsample)可以将特征图的分辨率还原成输入图像大小。每次上采样之后,高等级特征图(网络的上采样层)跳跃连接相同尺寸的低等级特征图(网络的前4个Block层),使用GPA机制融合,并且融合之后进行卷积加深处理。经过4次特征图的融合,使得提取的语义信息更加丰富。最后在网络的输出端加入Attention 模块,对湖泊边缘信息提取更充分,能够有效分割出半岛、小岛和湖泊细小支流。
改进的VGG16网络是借鉴了批量标准化[13]和Relu激活[14]的思路,在每个滑动卷积[11]之后依次添加批量标准化和Relu激活。
滑动卷积用于特征提取,在网络的特征图上从左至右、自上而下依次滑动窗口,对特征图进行特征提取。设置滑动卷积的卷积核为3×3、步长为1。前向传播见公式(1):
式中,Xl、Yl、Wl均是矩阵向量,Xl表示第l 层输入,Wl表示第l 层权重,Conv2D 表示2维卷积,Yl表示第l 层输出。
批量标准化(BN)通常设置在滑动卷积之后,原因是在神经网络训练过程中,经过滑动卷积特征提取,网络参数分布会发生变化。随着网络层次的加深,参数分布的影响会被放大,使网络训练过程慢。批量标准化将每层网络参数标准化,使得每层的训练参数获得相同分布,可以加快训练过程。在神经网络反向传播时梯度几乎为0的神经元,批量标准化可以将这些特征重新建立分布,使其重新获得梯度,防止梯度消失的问题。复合函数计算见公式(2):
式中,m 表示网络一次训练的批量数,xi表示一个批量中第i 个特征图,μβ表示一个批量中特征图的平均值,表示一个批量中特征图的方差,表示标准化的值,γ 和β 是可学习得到的参数,最终批量标准化的输出服从均值β、方差γ2的正态分布,yi是得到的批量标准化的输出。
Relu激活函数通常设置在BN 层之后,对特征进行激活,保留有效的特征和抑制无用特征,一定程度上减少了网络参数量。Relu激活函数是非线性函数,对输入小于等于0 的值,则置0 抑制;对输入大于等于0 的值,则ƒ(x)=x 激活该值。使一部分神经元输出为0,得到的网络具有稀疏性,可以使网络的表达能力更强。前向传播见公式(3):
Block块的前向传播见公式(4):
式中,xl-1表示第l-1 层的输出,同时也是第l 层的输入,ℂ 表示滑动卷积,ℚ 表示批量标准化层,σ 表示Relu激活函数,yl表示Block的输出。
前4 个Block 块之后都会进行最大池化[15],最大池化能够消除非极大值,降低计算复杂度。最大池化层采用的卷积核大小为2×2、步长为2。每次最大池化会将特征图缩小一倍。输入512×512×3 大小的图像,经过4次最大池化后,Block5 输出32×32×512 大小的特征图,尺寸为原图像的1/16。
改进后的VGG16网络相比原VGG16网络,减少了16 000的参数量,可以缩减网络训练时间。批量标准化的引入,解决了网络中间层参数分布变化的问题,使网络中间层参数服从于相同的分布,有利于网络训练和收敛。批量标准化的示意图见图2,图2(a)表示未经过批量标准化的参数分布,分布不集中,图2(b)表示经过批量标准化的参数分布,经过批量标准化之后,参数分布比较集中,有利于网络的训练。Relu 激活函数的引入,会将一些参数置0,使网络具有稀疏性和更好的表达能力。
图2 批量标准化的参数对比
解码部分是在Block5的输出端,由于编码网络将输入图像转化成原图像的1/16,所以解码网络需要上采样还原特征图。上采样设置反卷积的卷积核为2×2、步长为2,每次反卷积会将特征图还原为两倍大。设置了4次上采样,逐层还原图像信息,最终使得输出图像与输入图像大小相一致。上采样之后使用GPA融合机制跳跃连接编码层相同尺寸的特征图进行融合。GPA 融合机制将高等级特征图的全局信息压缩成一个实数,用包含高等级特征图全局感受野的实数,指导低等级特征图特征学习,再将高、低等级特征图融合,融合特征后使用卷积核为3×3、步长为1 滑动卷积加深处理,得到高分辨率的湖泊分割特征图。最后在网络的输出端加入Attention 模块,使网络参数注重湖泊的边缘信息提取,帮助分割出半岛、小岛和湖泊细小支流。
1.3.1 全局平均池化注意力(GPA)融合机制
GPA 融合机制主要启发于Hu 等[16]提出的Squeezeand-excitation-networks,在通道维度上添加全局注意力信息。分割网络具有共同点,都是由编码和解码两部分组成。编码部分用于提取图像的纹理特征,解码部分用于还原特征图。如果解码部分的高等级特征图直接上采样还原,会丢失很多细节特征。为了保留更多的细节特征,将高等级特征图与低等级特征图融合,得到丰富的语义信息。所以本文提出的GPA融合机制是添加在高等级特征和低等级特征之间[17]。融合过程中高等级特征图在通道维度上具有注意力信息,用注意力信息指导低等级特征图与高等级特征图融合。GPA 特征融合之后得到高分辨率的特征图,比高等级特征图和低等级特征图直接融合得到的特征图所具有的特征更丰富。
在分割网络中,低等级特征图包含了丰富的位置信息,而高等级特征图更多的是类别信息。GPA具体实现过程是将高等级特征图在通道维度上全局平均池化,二维特征图会被压缩变成一个实数,这个实数具有高等级特征图全局感受野。进而把该值作为注意力信息与低等级特征图相乘,指导低等级特征图中的位置信息还原类别,得到包含类别信息的低等级特征图。最后将生成的低等级特征图和高等级特征图进行相加特征融合,得到语义信息更丰富的特征图。包含丰富语义信息的特征图,在湖泊分割中,对像素级别的分类精确度更高,可以准确地分类出湖泊和陆地,减少了漏分和误分。
GPA 融合机制的结构如图3 所示。首先将高等级的特征图(H)的每个通道都进行全局平均池化,得到1×1×n(n 为通道数)大小的类别信息特征图(f1),f1特征图具有H 特征图各通道上类别信息的全局感受野。计算见公式(5):
式中,f1 是全局平均池化的输出,m 表示特征图的尺寸,aij表示特征图上横坐标i、纵坐标j 的值。
图3 全局平均池化注意力融合机制
然后在f1 之后连接一个全连接层,全连接计算见公式(6),通过参数w 来为每个特征通道生成权重,参数w 被学习用来显式地建模特征通道间的相关性。在w×f1 之后设置一个Sigmoid激活函数(σ),将特征映射到0和1之间,用作表示通道重要程度,激活函数的输出为f2。
接着将经过特征选择后的f2 特征图,通过乘法逐通道加权到低等级特征图(L)上,完成在通道维度上对原始L 特征图的重标定,使得L 特征图也具备了H 特征图类别信息的全局感受野,得到丰富语义信息的f3特征图。计算见公式(7):
最后将f3 特征图与H 特征图进行特征融合,采用特征图相加的方法(计算见公式(8)),得到了具有丰富语义信息的特征图f4。
本文在高等级特征图和具有相同大小的低等级特征图之间连接GPA融合机制,网络通过4层不同尺度的注意力机制特征融合,最后输出的特征图包含了丰富的语义信息,可以帮助恢复到高分辨率空间位置信息和类别信息,对湖泊的整体分割准确率有一定提升,减少了湖泊漏分和误分。
1.3.2 基于注意力机制(Attention)的边缘信息提取
虽然经过了4 层不同尺度的GPA 特征融合,但是半岛、小岛和湖泊细小支流不能被有效提取出来。由Li 等[17]提出的Pyramid attention network for semantic segmentation 启发,在网络最后一层特征图后引入了注意力机制模块,用于提取半岛、小岛和湖泊的细小支流[18]。
Attention模块结构见图4。网络的最后一层特征图(Q)包含了丰富的位置和类别语义信息,对Q 特征图在通道维度上进行Softmax[19]回归,Softmax回归的功能是将特征值归一化成概率值,计算得到输出P。
图4 注意力机制模块结构
本文中对512×512×2 大小的Q 特征图在2 维的通道维度上进行Softmax 回归,计算每个通道的概率值。计算过程见公式(9):
式中,n 为所求概率的类别数(即通道数,本文设置n=2),gi表示第i 个通道特征图的数值,P(Si)为求得的概率值。
将Softmax 回归得到的输出P(Si)作为注意力信息与原特征图Q 对应相乘(见公式(10)),最后得到包含概率置信度的特征图f 用于网络最后的输出。Attention模块对概率值较大位置的特征值会增加特征置信度,对概率值较小位置的特征值会产生抑制作用(如该特征值的P(Si)概率值无限接近于1,则会保留该特征值;若该特征值的P(Si)概率值无限接近于0,则会对该特征值产生抑制)。
在湖泊分割中,区分湖泊和陆地主要是在湖泊的边缘处。在网络最后一个特征图加入了Attention模块,会对网络中的权重参数产生变化。网络学习的特征会更多地将权重分配在湖泊的边缘,湖泊边缘特征用于判断属于湖泊还是陆地。图5是对网络权重的热图可视化,对比了加入Attention 和未加入Attention 对权重分配的影响。其中图5(a)显示的是未加入Attention的热图,在处理湖泊边缘信息上,黄色注意力信息较少,表示权重分配少;图5(b)显示的是加入了Attention的热图,在湖泊和陆地的边界处黄色注意力信息明显增多,表示网络较多的注意力在湖泊的边缘,更有益于细致分割湖泊。
图5 注意力信息权重热图可视化对比
本次实验的数据集来源于资源卫星1号,下载了自2010年至2018年包含湖泊的卫星云图,选取无云遮挡、薄云遮挡、陆地积雪和冰面覆盖的卫星图总共2 010张。首先在原图上裁剪出分辨率为512×512 大小的湖泊图片,然后利用Labelme工具制作分割标签图,生成单通道的标签图片(见图6),白色表示湖泊,黑色表示陆地。
图6 数据集标签
由于资源卫星数据有限,在制作完标签后进行了数据增强。设置了随机角度旋转、随机水平和上下平移、缩放图片等参数,共生成3 890张图片用于训练,200张图片用于评估,200张图片用于测试。
本文实验所涉及的代码均是基于Keras 实现的,使用显卡GTX 1080ti加速网络训练。采用了随机梯度下降优化器,以0.001的学习速率迭代60次后收敛。
因为本文中是二分类,所以使用的是二分类比较有代表性的二值交叉熵[20]作为网络训练优化的损失函数。公式(11)中yi表示真实值,yˆi表示预测值。
本文选取召回率(Recall)和平均交并比(Miou)作为评价指标来衡量分割性能。
召回率是指模型正确预测的正样本占数据集中所有正样本的比例。计算见公式(12):
式中,TP 表示实际为正样本预测为正样本,FN 表示实际为正样本预测负样本。
平均交并比是衡量图像分割精度的重要指标。交并比是计算真实集合和预测集合的交集与并集之比。在每个类上计算交并比,然后求和取平均值,得到平均交并比。计算见公式(13):
式中,k 表示类别数,targeti表示类别i 真实集合,predicti表示类别i 预测集合。
本文实验对比,选用了FCN_8S、U-Net 两个网络。经过实验,本文所提出的MA-Net算法可以实现高分辨率的湖泊分割,弥补了其他深度学习算法对湖泊边缘信息提取丢失问题。为了证明本文提出的GPA融合机制和Attention模块的有效性,进行了消融实验。将Attention模块单独加入网络的模型命名为MA-Net1;将GPA 融合机制单独加入网络的模型命名为MA-Net2;将GPA融合机制和Attention 模块均引入网络的模型命名为MA-Net。分割效果如图7 所示,其中(a)为采集的原始卫星图像,(b)为原始卫星图像所对应的标签,(c)为FCN_8S的实验效果图,(d)为U-Net的实验效果图,(e)为MA-Net1 的实验效果图,(f)为MA-Net2 的实验效果图,(g)为MA-Net的实验效果图。
图7 不同网络分割效果
由图7 中可以看出,FCN_8S 网络分割的湖泊和陆地误分较多,如第一行的半岛、第二行的小岛都被误分为湖泊,第三行的细小支流被误分为陆地。原因是FCN_8S 网络的上采样,直接将融合过的特征图8 倍上采样还原成输入图像大小,会使很多特征信息丢失,导致网络表达能力较弱。U-Net网络分割效果相比FCN_8S网络有所提升,通过逐层的2倍上采样还原特征图到输入图像大小,在上采样过程中,跳跃连接相同尺寸的特征图,进行特征融合。由于上采样倍数小,特征保留比较丰富,对第一行的半岛和第二行的小岛能分割出一小部分,第三行的内湖的轮廓基本分割出来。MA-Net1对湖泊边缘特征注意力增多,有利于半岛、小岛和细小支流的分割。第一行的半岛能基本分割出来,第二行的小岛比U-Net分割完整一些,第三行的细小支流能够提取出来。MA-Net2 通过GPA 融合机制融合高、低等级特征图得到丰富的语义信息,使第一行的半岛和第二行的小岛能够基本提取出来。MA-Net 结合了GPA 融合特征得到丰富的语义信息和Attention 模块对湖泊边缘特征提取充分,可以将半岛和小岛分割精细,湖泊细小支流也可以精确分割出来。
在真实湖泊分割应用场景下,会存在如云遮挡、陆地积雪和冰面覆盖等复杂场景。本文设置了类似复杂场景用于测试。在复杂场景下的湖泊分割效果见图7中的第四行和第五行,第四行的图(a)是采集的陆地积雪和薄云遮挡的卫星图像,第五行的图(a)是采集的冰面覆盖的卫星图像。由分割效果图看出,第四行陆地积雪,在FCN_8S 和U-Net 网络中会存在大面积误判为湖泊的情况,MA-Net1、MA-Net2和MA-Net三个网络的陆地积雪分割噪点逐渐降低,MA-Net网络几乎没有噪点;薄云遮挡部分,所有的模型都能够分割准确。第五行冰面覆盖,FCN_8S网络的部分陆地会被误分为湖泊,湖泊的分割也存在着噪点。U-Net 网络湖泊轮廓部分较FCN_8S 网络有改善,但是湖泊的分割噪点较多。MA-Net1和MA-Net2网络能够降低湖泊分割的噪点,但是与本文提出的MA-Net网络相比,MA-Net分割效果更好,MA-Net几乎没有噪点。由此可见本文提出的MA-Net卫星图像分割方法,在复杂场景下具有抗干扰性,能够达到理想的分割效果。
经过对比测试,本文提出的MA-Net 卫星图像分割算法,在分割指标上召回率达到了98.56%、平均交并比达到了96.52%。分割指标均优于现有算法,相比于FCN_8S 召回率提升了2.91 个百分点、平均交并比提升了4 个百分点;相比于U-Net 召回率提升了2.17 个百分点、平均交并比提升了2.32个百分点。具体实验对比结果见表1。其中MA-Net3是在MA-Net网络基础上将编码部分替换为原始VGG16 网络,取得了98.21%的召回率和96.13%的平均交并比,分割指标略低于改进的VGG16 编码网络,验证了改进的VGG16 网络特征提取效果会有提升。
表1 实验结果对比 %
本文实现了GPA 融合机制的数量对分割指标影响的量化分析。具体实验结果见表2。整个网络中设置了4 次上采样,表中的GPA 个数1 是指第1 次上采样后加入GPA,GPA 个数2 是指第1 次和第2 次上采样后加入GPA,GPA 个数3 和4 依此类推。由表2 的实验数据结果得,GPA融合机制的个数越多,网络性能越好。4层不同尺度的GPA融合机制,相比单个GPA融合机制,平均交并比提升了1.06个百分点。
表2 GPA融合机制数量对分割指标的影响%
City Scapes数据集[21]是由奔驰主推,提供在驾驶领域进行图像分割的数据集。本文为了验证提出的MANet 分割模型通用性,在该数据集上进行了验证。同时选用FCN_8S、U-Net网络与本文所提出的MA-Net作对比实验。经过实验,本文所提出的MA-Net平均交并比达到了62.67%,优于FCN_8S 和U-Net 分割模型,验证了本文提出的分割模型具有通用性。City Scapes 数据集测试结果见表3。
表3 City Scapes数据集测试结果 %
本文针对深度学习的语义分割法,在卫星图像分割中对半岛、小岛、湖泊细小支流的边缘信息提取丢失问题,提出了多注意力机制网络卫星图像分割算法,弥补了边缘信息提取丢失问题。实验结果表明,提出的MA-Net利用GPA融合机制,首先将高等级特征图的全局信息压缩成一个实数,利用具有全局感受野的实数指导低等级特征参数学习,接着通过高、低等级特征图的融合,使得特征图的语义信息更加丰富,最后在网络的输出端加入了Attention模块,使得湖泊边缘信息提取充分,有效分割出半岛、小岛和湖泊细小支流,但是边缘拐角细节部分的分割有待提升。利用深度学习进行遥感卫星图像的湖泊分割还处于初始阶段,仍然有一些不足,有待进一步改进。主要有以下方面:(1)湖泊分割精度上还有待提升,对湖泊边缘信息的分割还可以更精细;(2)本文主要采集的是少云、无云遮挡的卫星图像数据,场景复杂度不高。因此接下来的研究中,需要增加对以上问题改进。针对湖泊分割精度不是非常高,分析原因可能是数据样本不够多、网络输入图像尺寸不够大,导致网络学习的特征不丰富,通过增加卫星图像样本数量和采用1 024×1 024 大尺寸代替512×512 输入网络进行实验,以便提高湖泊卫星图像分割精度;对样本的场景复杂度来说,可以增加浓云遮挡湖泊、多背景的实验数据,以提升算法的抗干扰能力。