邵霆啸,孟海涛,赵博文
(1.盐城工学院 机械工程学院;2.盐城工学院 信息工程学院,江苏 盐城 224002)
为实现对农田的有效识别[1],需要采用图像分割方法。根据是否引入深度神经网络,可分为传统图像分割方法以及基于深度学习的图像分割方法。传统图像分割方法主要包括基于阈值的图像分割方法[2]、基于边缘的图像分割方法[3]、基于区域的图像分割方法[4]、基于聚类的图像分割方法[5]、基于图论的分割方法[6]等;基于深度学习的图像分割方法包括语义分割、全连接网络等[7]。在传统图像分割领域,唐晶磊等[8]利用基于模糊聚类的图像分割方法对农田对象(主要针对植物类型和土壤类型)进行识别,识别率可分别达到92.5%和95.6%,但是无法确定识别的对象是否处于农田之中;陈伊哲等[9]采用基于边缘和基于区域的两种图像分割方法对农田图像进行实验处理,结果表明,采用微分算子的图像分割算法可以有效地对农田边界进行识别,但存在放大噪声的干扰。在基于深度学习的图像分割领域,杨亚男等[10]将全连接网络FCN-8s 模型与DenseCRF 模型相结合应用于梯田识别,实验结果表明,该方法对于山脊区梯田、密集区梯田以及不规则形状梯田的识别率为86.85%,识别精度有待提高。
针对上述存在的识别区域不明显及识别精度不高等问题,本文提出一种改进的ResNet 农田识别方法,提升了模型识别精度,实现了对农田的高效识别。
卷积神经网络已被广泛应用于图像分类、目标检测等领域。He 等[11]在2015 年提出残差网络的概念,残差网络是由一系列残差块构成的。残差块结构[12]如图1所示。
残差块的核心思想是“shortcut connection”[13],即为捷径连接的方式。ResNet 残差块经过跨层连接操作[14]之后,假设H(x)是神经网络的输出,则变成了对F(x)=H(x)-x残差函数的学习与优化,从而有效避免了梯度爆炸或梯度消失现象,且在反向传播过程中会一直保持一个较大的值,以方便优化,可达到更好的分类识别效果。
Fig.1 Residual block structure图1 残差块结构
在ResNet 系列中,ResNet18 拥有较少的参数。考虑到模型的性能,本文选取ResNet18[15]作为基础网络模型。ResNet18模型结构如图2所示。
Fig.2 ResNet18 model structure图2 ResNet18模型结构
1.2.1 注意力机制
本文为模型引入通道注意力机制[16],该注意力机制可调整每个通道的权重,帮助模型捕获到对识别任务更有帮助的语义信息,增强有用信息,降低噪声等干扰元素的权重,减弱其对模型识别的负面影响,增强卷积神经网络的表达能力,最终达到提高模型识别性能的目的。通道注意力机制单元结构如图3所示。
Fig.3 Channel attention mechanism unit structure图3 通道注意力机制单元结构
如图3 所示,输入一个特征层X,其通道数为C1,经过注意力机制后得到一个通道数为C2的特征层U,其中只有特征图之间的权重比发生了变化,激励了有用的特征通道。与传统的神经网络不同,需要通过以下3 个操作[17]重新标定前面得到的特征,步骤如下:
(1)第一步为挤压(Fsq)操作,通过全局平均池化算法(Global Avg Pooling)将W × H × C2的输入转化为1 × 1 × C2的输出。
(2)第二步为激励(Feq)操作,即在上一步得到的全局信息中插入一个全连接层接上ReLu 激活函数,以及一个全连接层接上Sigmoid 函数。这两个全连接层的作用就是对各个通道的特征图信息进行融合,最后进入到Sigmoid函数,将输出映射到0~1 之间,给每个通道分别生成不同的权值。
(3)第三步为缩放(Fscale)操作,将第二步中得到的权值与原特征层U 相乘,最后得到新的带有注意力机制的特征层X1。
1.2.2 Silu激活函数
本文提出一种新的激活函数Silu(Sigmoid Weighted Liner Unit)代替基础网络模型中的Relu 激活函数。Silu 及其一阶导数的计算公式如下:
如图4 所示(彩图扫OSID 码可见,下同),当输入值大于0 时,Silu 与Relu 激活函数大致相等。如图5 所示,与Relu 激活函数不同的地方在于,Silu 激活函数并不是单调增加的,而是具有平滑、非单调的特性,具有更强的稳定性,可以提高整个网络的性能。与Relu 相比,对Silu 激活函数求导后,导数为0 的全局最小值在权重上可起到“软调节”的作用,可以抑制大权值的更新[18],从而有效避免梯度爆炸或梯度消失现象。
Fig.4 Relu and Silu activation function图4 Relu与Silu激活函数
Fig.5 Relu and Silu first -order guide图5 Relu与Silu一阶导数
图6 显示了原始残差块细节和改进残差块细节,其中Conv1d 表示卷积层,BN 表示加速网络收敛速度的批处理归一化,“+”是求和运算。
Fig.6 Primitive residual block and improved residual block details图6 原始残差块与改进残差块细节
图6(a)显示了原始残差块细节,图6(b)显示了本文改进之后的残差块细节。改进主要包含两方面:一是加入注意力机制;二是将残差网络中的Relu 激活函数替换为Silu激活函数。
本文所改进的深度学习网络模型以ResNet18 为基础,引入通道注意力机制,并且将原网络模型中的Relu 激活函数替换为Silu激活函数。改进模型整体架构如图7所示。
本文采用标签平滑的交叉熵函数[19],其曲线平滑,易于求导且梯度稳定,使网络具有更好的泛化性,避免了对正确标签的过度相信,能有效提高图像分类识别的准确性。具体公式如下:
其中,h表示具体任务中的分类数,y表示h类别组成的h维矩阵,ε表示平滑因子,y′表示标签平滑后的h类别组成的h维矩阵。
要优化深度学习模型的收敛效果,可以使用梯度下降算法,根据epoch 的不断变化来调整学习率,从而达到优化损失函数的目的。Hutter 等提出带热重启的随机梯度下降算 法(Stochastic GradientDescent with warm Restarts,SGDR)[20],以一种周期性调整学习率的方法,周期性地增大学习率,以达到学习率跳跃式增加,实现由局部最优解到达全局最优解的目的。本文使用PyTorch 框架下的余弦退火衰减算法[21],使学习率根据余弦函数的特点进行周期性变化。本文设置的初始最小学习率为0.005,当总epoch为50时,学习率变化曲线如图8所示。
Fig.7 Overall architecture of the proposed model图7 改进模型整体架构
Fig.8 Learning rate changing curve图8 学习率变化曲线
本实验以PyTorch 深度学习框架为平台,计算机操作系统为Windows 10,CPU 为AMD Ryzen 51500X@3.50GHz×4CPUs,GPU 为NVIDIA 2080Ti,CUDA 版本为10.1,Python版本为3.7,PyTorch 版本为1.7.0。
图像数据集源于武汉大学和华中科技大学公开的数据集AID[22],分为农田、建筑、裸地、草地、荒漠5 个类别(每类2 400 幅)共12 000 幅图像。每类选取1 920 幅图像作为训练集,剩余480幅作为测试集。
取每个类别的识别准确率(Accuracy)作为评价指标,通过计算每个类别的识别正确数量占该类别总数量的比率,得到每类图片的识别准确率,可表示为:
在神经网络的训练中,参数设置会直接影响算法的最终检测效果。本文通过将ResNet18、AlexNet、VGG16 进行对比,以证明ResNet18 网络的优越性。因此,采用ResNet18 作为基础网络进行图像的分类识别。然后对基础网络进行改进,分别使用不同的网络结构及网络训练策略,共完成5 组实验。第一组添加了注意力机制(ResNet18+Se),第二组采用Silu 激活函数(ResNet18+Silu),第三组采用标签平滑的训练方式(ResNet18+Lsr),第四组采用余弦退火学习率衰减算法(ResNet18+Cos),第五组将前四组的方法进行综合使用(ResNet18+Se+Silu+Lsr+Cos),batchsize 为16,共50 个epoch。训练的损失值曲线如图9 所示,不同算法的准确率曲线如图10 所示,实验结果如表1所示。
Fig.9 Loss curve图9 损失值曲线
Fig.10 Accuracy curve图10 准确率曲线
Table 1 Experiment result表1 实验结果
从表1 中可以发现,AlexNet 算法的准确率为94.33%,VGG16 算法的准确率为93.88%,ResNet18 算法的准确率为95.12%,证明了ResNet18 算法优于AlexNet 和VGG16。因此,本文选取ResNet18 作为基础网络主干进行改进。在网络结构方面,加入注意力机制后,ResNet18+Se 算法的准确率为96.01%,上升了0.89%;结合Silu 激活函数,ResNet18+Silu 算法的准确率为96.61%,上升了1.49%,表明更换了激活函数后,图像分类识别的准确率有明显提升。在网络训练策略方面,结合标签平滑,ResNet18+Lsr算法的准确率为96.43%;结合余弦退火衰减学习率,ResNet18+Cos 算法的准确率为98.27%。本文将以上算法进行综合,得到ResNet18+Se+Silu+Lsr+Cos 算法的准确率为98.92%,上升了3.8%,证明了改进算法的优越性。
本文基于ResNet18 网络,提出一种改进残差网络的图像分类及农田识别算法。在网络结构方面加入通道注意力机制,并且采用Silu 激活函数,提升了准确率;在网络训练策略方面,加入标签平滑和余弦退火算法,使模型的收敛效果得到增强。实验结果表明,在图像分类及农田识别任务中,该模型的准确率达到98.92%,相比原残差网络(ResNet18)的准确率提升了3.8%,能够很好地完成任务,有效地为农机自动化作业提供环境数据。