任鸿杰,刘 萍,岱 超,史俊才
太原理工大学 大数据学院,山西 晋中 030600
农作物种植面积估计是农业监测的一个重要部分[1]。传统的农作物种植面积估计是通过统计方法来获得,主要有两种方法:一是层层上报,按照县、地区、省和国家为单位逐级进行统计并最后上报;二是通过抽样调查,设置有代表性的样本,根据抽样统计原理来估算大区域内的农作物种植面积[2]。传统方法耗费了大量的人力物力,统计速度慢,结果不够客观,并且不能时空动态监测。
遥感技术由于其具有监测范围广、获取资料速度快、获取的信息量大以及能够时空动态监测等特点,逐渐取代了传统的人工区域调查方法,被广泛应用于农业遥感监测的各个方面[3-4]。
传统的农业遥感检测常使用人工目视解译的方法,但是人工目视解译对于解译人员的技术要求高,并且其效率不能满足海量的遥感数据处理。近几年来,深度学习在图像处理、自然语言处理、数据分析等领域取得了大量关键性突破,成为当今最受关注的科学研究之一[5]。随着深度学习的快速发展与广泛应用,基于卷积神经网络的分割算法在分割技术上取得了突破性进步[6]。当前广泛使用的语义分割网络以Long等[7]提出全卷积神经网络(fully convolutional network,FCN)为代表,通过使用卷积层替换全连接层,输出保留上下文空间特征的图像,实现图像像素级别端到端的预测。基于FCN架构,郑二功等[8]利用无人机影像实现了对玉米倒伏区域自动提取;黄云等[9]以Sentinel-2卫星遥感影像为数据基础,利用Segnet网络对河南省新蔡县花生种植区域提取,Segnet网络基于FCN网络进行了一些改进,添加了编码解码(encoder-decoder,ED)结构,每个编码层对应一个解码层,使得反卷积的结果更加精细,分类精度与总体效率都有所提升。虽然以上研究为农作物自动提取做出了一定贡献,但是在精度和边缘识别效果等方面仍有较大的改进空间。DeepLab语义分割系列模型提出空洞空间金字塔池化(atrous spatial pyramid pooling,ASPP)[10],在不改变分辨率的条件下扩大感受野,同时对不同层级的特征进行融合,对物体的边界划分效果较好。DeepLabV3+结合了ED结构和ASPP模块的优点,成为当前综合性能优异的语义分割算法。Zhu等[11]采用DeepLabV3+对高分辨率遥感甘蔗田进行提取,提取精度较高;杨蜀秦等[12]基于DeepLabV3+网络,利用无人机多光谱遥感影像对向日葵、玉米等多类农作物提取,农作物边缘分割效果较好。
以上研究表明,DeepLabV3+相对于常用于农作物提取的FCN、Segnet等分割模型具有更好的分割效果,但是由于其本身网络结构较为复杂,上采样幅度过大导致特征图中重要像素信息丢失,对于当前遥感影像农作物提取仍存在识别精度较低、边缘识别效果较差、提取速度慢等问题。为改善农作物分割效果,更加高效准确获取农作物的种植信息,本文提出了一种改进Deep-LabV3+网络的遥感影像农作物分割方法。首先,将传统用于DeepLabV3+模型特征提取的Xception[13]网络改为更轻量级的MobileNetV2[14]网络,大幅减少了模型的参数计算量,降低内存占用;其次,将ASPP模块中普通卷积改为深度可分离卷积(deep separable convolution,DSC),进一步减少模型参数,提高模型计算速度;最后,在特征提取模块以及ASPP模块加入双注意力机制(double attention mechanism,DAM)[15],从而训练出更准确的分割模型。此外针对农作物数据集类别不平衡问题,引入加权损失函数,给予玉米、薏米与背景类不同的权重,提高模型对农作物区域分割精度。以2019年某地区的无人机遥感影像为研究对象,对玉米、薏米两种农作物进行分割,实验结果表明,本文提出的方法能够兼顾准确率、平均召回率、平均交并比、检测速度、网络大小等各方面的要求,对农作物具有更好的分割效果。
本文数据来源于阿里云天池大赛提供的某地区无人机遥感影像,影像大小为44 647×32 881像素,影像分辨率为1 m,原图格式为RGBA的四通道影像。本文为便于研究,采用RGB三通道数据合成新的影像作为研究对象,标注分为玉米、薏米以及背景值三类。背景区域主要包括人造建筑和道路、裸地、草地等非人造建筑。对影像进行无重叠滑动切割,由于影像中存在mask无效区域,为了避免无效样本对实验的干扰,滑动切割完之后剔除掉影像中含有mask无效区域的样本,最终裁剪出无重叠的9 538张256×256像素的RGB影像作为实验数据,并按7∶1∶2的比例将图像随机划分成训练集、验证集和测试集,其样本数量分别为6 671幅、953幅和1 914幅。部分数据集影像示例如图1所示,对应标签示例如图2所示,其中橙色为薏米,黄色为玉米,黑色为背景。
图1 部分数据集影像示例Fig.1 Partial dataset image example
图2 对应标签示例Fig.2 Corresponding label example
DeepLabV3+是一种用于语义分割的典型网络,该网络是对DeepLabV3网络的改进,以残差网络为底层网络,添加了ED结构,通过恢复空间信息获得清晰的对象边界,从而优化边界分割。编码端利用Xception网络对输入图像作特征提取,之后利用ASPP模块将图像特征进行融合,避免信息损失。其中Xception为含输入流、中间流和输出流的深度卷积神经网络,ASPP则为含多个空洞卷积扩张率的多尺度金字塔特征提取模块。解码端融合Xception输入流模块输出低层特征和编码端输出高层特征再进行双线性插值上采样,输出分割结果,最终提高了网络分割的精度。网络结构如图3所示。
图3 传统DeepLabV3+模型结构图Fig.3 Structure diagram of traditional DeepLabV3+model
DeepLabV3+网络是目前最为优秀的语义分割模型之一,其在VOC数据集上取得优异成绩[16]。但Deep-LabV3+模型也存在一些不足。首先,编码端特征提取过程中逐渐缩减输入数据的空间维度导致有用信息丢失,在解码时不能很好地实现细节恢复;其次,ASPP模块的引入虽然可以提高模型对目标的边界提取能力,但是不能完整地模拟出目标局部特征间的联系,使目标分割存在空洞现象,导致对目标分割的准确率降低;最后,为了追求分割精度,选择网络层数较多、参数量较大的Xception作为特征提取网络,并且ASPP模块中卷积方式为普通卷积,进一步增加了参数量,模型深度的加深以及参数量的增加,导致模型的复杂度增加,对硬件的要求更高,增加了网络训练难度,网络训练速度更慢、收敛更慢。为了提高网络分割性能,改善以上不足,本文在传统DeeplabV3+网络结构上做了以下改进:
首先,将传统用于DeepLabV3+模型特征提取的Xception网络改为更轻量级的MobileNetV2网络,大幅地减少了模型的参数计算量,降低内存占用,提高模型的计算速度;其次,将ASPP模块中的普通卷积改为DSC,进一步减少模型参数,提高模型计算速度;最后,在特征提取模块以及ASPP模块加入DAM,减少精度损失,从而训练出更准确的分割模型。此外针对农作物数据集类别不平衡问题,引入加权损失函数,给予玉米、薏米与背景类不同的权重,提高模型对农作物区域分割精度。网络结构如图4所示。
图4 改进DeepLabV3+模型结构图Fig.4 Structure diagram of improved DeepLabV3+model
2.2.1 特征提取模块
在编码层,将DeepLabV3+特征提取模块Xception网络改为更轻量级的MobileNetV2网络。该网络的提出是为了解决在图像模型训练过程中出现的卷积神经网络庞大、硬件训练不足等问题,相较于Xception网络,该网络网络层数更浅,参数量更少,模型复杂度更低,网络训练速度更快,收敛更快。MobileNetV2网络主要分为3个部分。第一部分为一个3×3的卷积块,用于提取特征;中间部分是多个含有DSC层的网络结构,由多个1×1和3×3的卷积块组成;最后一部分由两个1×1的卷积块和一个7×7的平均池化块组成。结合DeepLabV3+网络结构,本文用到了该网络的前两个部分,具体网络结构如表1所示,其中t是输入通道的倍增系数(即扩张倍数),c是输出通道数,n是该模块的重复次数,s是stride。
表1 MobileNetV2网络结构Table 1 MobileNetV2 network structure
2.2.2 DAM模块
注意力在人类感知中起着重要作用,人类利用一系列局部观察,并选择性地专注于显著部分,以便更好地捕捉视觉结构[17]。近年来,许多研究人员[18-20]通过添加注意力机制来改善卷积神经网络在大规模分类任务中的性能。本文在特征提取模块以及ASPP模块加入DAM。具体操作为:首先分别在特征的空间维度和通道维度抓取特征之间的全局依赖关系,捕获上下文特征信息,增强特征的表达能力;然后将两个注意力模块的输出相加,以进一步改进特征表示;最后获得更精确的分割结果。该模块的结构如图5所示。
图5 DAM模块Fig.5 DAM module
通道注意力机制。通道注意力机制通过整合所有通道图中的相关特征,有选择地强调相互关联的通道图。因此,本文通过增加通道注意力机制模块来显式地建模通道之间的相互依赖关系。具体操作为:给定输入特征图F∈RC×W×H,其中C表示输入特征图的通道数,W和H分别表示特征图的宽度和高度。首先采用并行的全局最大池化和全局平均池化两种池化方式对输入特征图F进行空间维度压缩分别得到背景描述然后经多层感知机MLP组成的共享网络计算相加进行Sigmoid函数最终获得通道注意力机制映射特征图Mc∈RC×1×1;最后,将生成的特征图进行特征映射,使其大小变为C×W×H,并将原始输入特征图逐元素相乘,从而得到通道注意力加权图F Cout∈RC×W×H。具体计算过程如下所示:
其中,σ表示Sigmoid激活函数,⊗表示元素间的乘法,F c表示将Mc沿着空间维度进行复制得到C×W×H的特征向量。
通道注意力机制模块的网络结构如图6所示。
图6 通道注意力机制模块Fig.6 Channel attention mechanism module
空间注意力机制。空间注意力机制通过所有位置的特征加权总和选择性地聚集每个位置的特征。无论距离远近,相似的特征都会相互关联。因此为了建立更丰富的局部特征间的上下文关系,引入空间注意力机制模块。具体操作为:给定输入特征图F∈RC×W×H,其中C表示输入特征图的通道数,W和H分别表示特征图的宽度和高度。首先采用并行的全局最大池化和全局平均池化两种池化方式对输入特征图F进行通道压缩分别得到背景描述并将两个特征图合并,经一个7×7卷积操作降维到1通道;然后经Sigmoid函数获得空间注意力机制映射特征图M s∈R1×W×H;最后,将生成的特征图进行特征映射,使其大小变为C×W×H,并将原始输入特征图逐元素相乘,得到空间注意力加权图F Sout∈RC×W×H。具体计算过程如下所示:
其中,σ表示Sigmoid激活函数,f7×7表示卷积操作,卷积核大小为7×7,⊗表示元素间的乘法,F s表示将M s沿着通道方向进行复制得到C×W×H的特征向量。
空间注意力机制模块的网络结构如图7所示。
图7 空间注意力机制模块Fig.7 Spatial attention mechanism module
2.2.3 加权损失函数
对于一个输入样本,模型的输出值与该样本真实值之间的差异称为损失。损失函数是描述这种差异的函数。对于一个深度学习模型,模型中的神经网络权重通过损失反向传播来完成训练[21]。因此,损失函数决定了深度学习模型的训练效果,至关重要。本研究农作物数据集标注分为玉米、薏米以及背景值三类,所以使用多类别交叉熵作为损失函数。但由于数据集中背景类别占比大,导致网络在训练时偏向于对背景类特征的学习,不能有效地提取农作物区域的特征,从而造成农作物区域分割精度低的问题。为了解决农作物数据集类别不平衡导致对农作物区域分割精度低的问题,引入了一种加权损失函数,在原始多分类交叉熵损失函数的基础上,给予玉米、薏米与背景类不同的权重,具体计算公式如下所示:
本文实验所使用的CPU为AMD A10-7300,内存为8 GB,GPU为Telas V100,内存为16 GB,开发环境为TensorFlow1.14.0、keras2.3.1、cuda9.0、python3.5。
本研究针对农作物数据集进行分割性能评估,实验选取像素准确率(PA)、平均交并比(mIou)、平均召回率(mRecall)指标评价网络分割性能。
其中PA为预测正确的像素点与总像素点的比值,计算公式如下:
mIou为语义分割实验中最常用的度量指标,其取值为先计算每类上真实值和预测值两个集合交集与并集的比值,再求所有类别交并比的平均值,即均交并比,计算公式如下:
mRecall为每一类分类正确的像素点数与预测为该类的所有像素点数的比值之和的平均值,计算公式如下:
式中,k表示总的类别数,P ij表示本属于i类但被预测为j类的像素数量,P ii表示预测正确的数量,P ij和P ji分别称为假正和假负。
3.3.1 实验过程
模型训练超参数的确定。文献[16]中提出原始DeeplabV3+模型,在初始学习率为0.007,batch-size为16的前提下,模型在pascalVOC2012和城市景观数据集上的平均交并比分别为89.0%和82.1%,取得了良好的分割效果。在此基础上,查阅相关文献,获取到网络训练超参数常用经验值,经过反复实验,最终确定原始DeeplabV3+网络的最优学习率为0.007,最优batch-size为32,改进DeeplabV3+网络的最优学习率为0.000 1,最优batch-size为32。
本文模型训练细节。实验阶段,按7∶1∶2的比例将图像随机划分成训练集、验证集和测试集。初始学习率设置为0.000 1,batch-size设置为32,为了提高模型精度,在模型训练之前加载MobileNetV2预训练权重参数,使用加权损失函数作为分割模型的损失函数,给予玉米、薏米与背景类不同的权重,提高模型对农作物区域分割精度。
模型训练结果比较。传统DeepLabV3+网络和改进DeepLabV3+网络的训练过程如图8所示,其中红色为传统DeepLabV3+网络训练过程,蓝色为改进Deep-LabV3+网络训练过程。由图可知,当训练迭代次数超过100时,损失值和精度趋于稳定。总体来看二者的损失值随迭代次数的增加而减少,精度随迭代次数的增加而增加,最终逐渐趋于稳定。但相较于传统的Deep-LabV3+网络来看,改进的DeepLabV3+网络收敛速度更快,后期波动更小。这是由于DAM模块有效结合空间通道维度,抓取特征之间的全局依赖关系,捕获上下文特征信息,增强了特征的表达能力,使网络学习能力和排除干扰信息的能力得到加强,且改进DeepLabV3+网络参数量更少,进一步加快了收敛速度。
图8 网络训练结果曲线Fig.8 Network training result curve
3.3.2 消融实验
为了验证将传统用于DeepLabV3+模型特征提取的Xception网络改为更轻量级的MobileNetV2网络、ASPP模块中的普通卷积改为DSC的必要性,以及同时在特征提取模块以及ASPP模块加入DAM的有效性,利用语义分割常用评价指标,设置了四组不同的改进方案进行消融实验。实验结果如表2所示。
表2 消融实验结果Table 2 Results of ablation experiment
(1)方案一:在传统DeepLabV3+网络的基础上,将特征提取网络改为更轻量级的MobileNetV2网络,将ASPP模块中的普通卷积改为DSC。
(2)方案二:在方案一的基础上,在特征提取模块加入DAM。
(3)方案三:在方案一的基础上,在ASPP模块加入
DAM。
(4)方案四:在方案一的基础上,在特征提取模块及ASPP模块分别加入DAM。
由表2消融实验结果可得,相对于传统DeepLabV3+,方案一模型参数量、训练时间以及单图预测时间明显减少,表明将传统用于DeepLabV3+模型特征提取的Xception网络改为更轻量级的MobileNetV2网络、将ASPP模块中的普通卷积改为DSC可极大减少模型的参数量,明显提高模型训练时间以及预测速度。相对于方案一,方案二、方案三与方案四在像素准确率(PA)、平均召回率(mRecall)、平均交并比(mIou)方面均有所提升,但方案四提升幅度更大一些,表明在特征提取模块或者ASPP模块加入DAM都可以一定程度上提高模型分割精度,但是同时在特征提取模块以及ASPP模块加入DAM模型分割精度提升更明显。
为了进一步验证加权损失函数对提高农作物区域分割精度的有效性,对方案四和本文方法在农作物分割数据集上的分割精度进行了详细对比实验,实验结果如表3所示。
由表3分割精度详细对比结果可得,相对于方案四,本文方法在玉米和薏米的召回率(Recall)上有所提升,但在背景的召回率(Recall)上略有下降,在玉米、薏米以及背景的交并比(Iou)上均有所提升。从整体来看,本文方法的像素准确率(PA)、平均召回率(mRecall)以及平均交并比(mIou)相较于实验四均有所提升。实验数据证明,加权损失函数的引入能够提高模型对农作物区域的分割精度,从而进一步提升模型整体分割精度。
表3 分割精度详细对比结果Table 3 Detailed comparison results of segmentation accuracy %
3.3.3 不同分割方法性能分析
为了进一步验证改进DeepLabV3+模型的分割性能,将本文方法与传统DeepLabV3+、Unet、Segnet等常用于农作物语义分割的模型进行对比,对比结果如表4所示。
从表4可以看出,在像素准确率(PA)方面,传统DeepLabv3+算法的像素准确率为92.5%,Unet的像素准确率为92.9%,Segnet算法的像素准确率为92.3%,本文改进方法的像素准确率为94.0%,较传统DeepLabV3+算法、Unet算法和Segnet算法分别提高了1.5、1.1和1.7个百分点;在平均召回率(mRecall)方面,传统DeepLabv3+算法的平均召回率为88.4%,Unet的平均召回率为87.9%,Segnet算法的平均召回率为86.4%,本文改进方法的平均召回率为91.1%,较传统DeepLabV3+算法、Unet算法和Segnet算法分别提高了2.7、3.2和4.7个百分点;在平均交并比(mIou)方面,传统DeepLabv3+算法的平均交并比为80.6%,Unet的平均交并比为81.1%,Segnet算法的平均交并比为80.0%,本文改进方法平均交并比为84.2%,较传统DeepLabV3+算法、Unet算法和Segnet算法分别提高了3.6、3.1和4.2个百分点。实验数据证明,在本文方法中加入DAM以及加权损失函数的引入提高了模型的特征提取能力,对农作物遥感影像分割精度更高。
在常见的神经网络模型中,模型层数越多,模型涉及参数量越大,模型越复杂,训练难度也就越大。由表4可得,相较于传统DeepLabV3+以及Unet模型,本文方法参数量有明显的减少,并且模型训练时间以及单图预测时间更快;相较于Segnet模型,本文方法参数量有明显的减少,但模型训练时间以及单图预测时间略有增加,这是由于Segnet模型虽然参数量较多,但是本身模型结构较为简单,减少了模型训练时间以及单图预测时间,但检测精度不及本文方法。总体来说,本文方法中选择更轻量级的MobileNetV2作为特征提取网络以及将ASPP模块中的普通卷积改为DSC,极大减少了参数量,提高了模型计算速度。
表4 作物分割方法对比Table 4 Comparison of crop segmentation methods
为了更全面地评估本文方法,对本文方法及其他对比模型在玉米、薏米以及背景上的分割精度进行了对比实验,实验结果如表5所示。
表5 各类别目标分割结果Table 5 Segmentation results of various targets %
对比表5中玉米、薏米以及背景在各个方法上的召回率(Recall)及交并比(Iou)可以看出,背景的交并比及召回率最高,玉米次之,薏米最低。是因为整张遥感图像中背景占比最大,玉米次之,薏米占比最少。从整体来看,本文方法在玉米、薏米以及背景上的召回率、交并比均高于其他对比模型,说明了本文方法对提升各个类别的分割精度都有一定的效果。
实验选择了4种算法在2019年某地区无人机遥感影像部分测试集上的分割结果进行可视化展示,如图9所示。其中橙色代表薏米,黄色代表玉米,黑色代表背景。
图9 4种分割算法分类效果比较Fig.9 Comparison of classification effect of four segmentation algorithms
由不同模型的分割效果图对比可知,传统Deep-LabV3+方法与本文方法相较于Segnet、Unet方法来说,对玉米、薏米种植区域边缘的识别程度更高,这是由于DeepLabv3+模型本身最大的优势就是在编码部分加入了含多个空洞卷积扩张率的多尺度ASPP特征提取模块,该模块增强模型识别不同尺寸的同一物体的能力,捕获多尺度特征,可以更好恢复物体的边缘信息。除此之外,本文方法相较于传统DeepLabV3+方法,边缘识别效果略有提升,存在的漏分和错分现象更少,相较于Segnet、Unet方法,对玉米和薏米的分割效果更好,进一步证明了加入DAM以及引入加权损失函数的必要性。
为更加高效准确获取农作物的种植信息以满足农业精细化管理需求,本文提出了一种改进DeepLabV3+网络的遥感影像农作物分割方法。模型本身含有ASPP模块,可以更好恢复物体的边缘信息;加入DAM提高了模型的特征提取能力,存在的漏分和错分现象更少,对玉米、薏米种植区域边缘的识别效果更好,分割精度更高;修改特征提取网络为轻量级神经网络MobileNetV2,将ASPP模块中普通的卷积改为DSC,有效地减少了模型参数量,提高了模型计算速度。此外针对农作物数据集类别不平衡问题,引入加权损失函数,提高了模型对农作物区域分割精度。实验结果表明,该方法能够有效提取农作物种植区域,实现对农作物更加高效准确的分割。