曾伟辉 张文凤 陈 鹏 胡根生 梁 栋
(1.安徽大学互联网学院, 合肥 230039; 2.科大国创软件股份有限公司中央研究院, 合肥 230088; 3.安徽大学农业生态大数据分析与应用技术国家地方联合工程研究中心, 合肥 230601)
近年来,随着全球气候变暖等生态环境的变化,我国农作物受灾程度逐年加深,损失逐年加重。水稻是我国主要粮食来源,其生长受各种害虫影响,害虫监测识别是防灾减灾工作的关键任务之一[1]。由于水稻害虫种类繁多,人工识别任务繁重,无法及时对虫害进行有效防控,导致农作物大量减产。在野外环境下如获取较高分辨率的害虫图像数据,需采用相机拍摄害虫静态图像。但野外环境下,水稻害虫易动,导致获取的害虫图像往往不清晰、分辨率低,且部署在真实的农田里的摄像头密度稀疏,使害虫难以被有效地识别和监视。故无法轻易获得足够的高分辨率图像进行识别,这严重影响了识别性能[2]。因此提高低分辨率水稻害虫图像的识别精度,可加强对害虫的及时诊断和有效防控,对于减少经济损失、控制农药滥用、保证粮食安全具有重要意义[3]。
随着计算机视觉技术的发展,国内外学者对害虫识别已经取得了一定的进展。自KRIZHEVSKY使用AlexNet[4]模型在ILSVRC(ImageNet large-scale visual recognition challenge)[5]中应用开始,深度学习[4, 6]在全世界掀起了研究热潮,显著提高了识别害虫攻击和控制虫害风险的效率[7-11]。目前在水稻病虫害图像识别研究方面,大部分是针对噪声小、遮挡不严重和分辨率高的公开数据集害虫图像进行识别和模型构建[12-18],但将此模型直接迁移用来识别实际情况下噪声大、分辨率低的虫害图像时会存在泛化能力弱的问题,准确率和鲁棒性无法达到应用需求。因此,对获取的低分辨率害虫图像进行恢复和高分辨率处理是提高病虫害识别精度的关键。
在低分辨率图像识别领域中,DAI等[19]针对低分辨率害虫图像的识别任务,使用超分的方法,提出了一种具有四次注意和残差密集融合机制的生成性对抗网络(GAN),用于低分辨率害虫图像的变换。该方法在图像重建方面更强大,处理后的图像分类准确率得到大幅提高。ZHU等[20]提出了一种注意力感知增强网络(APEN)的创新框架,它以端到端的方式集成了感知增强和注意力机制,用于低分辨率图像分类。WEN等[21]设计了一个基于增强型超分辨率生成对抗网络(ESRGAN)的作物病害分类网络,使用微调的ESRGAN模型恢复真实的作物信息,提高作物病害分类的准确性。目前在水稻病虫害图像识别研究方面,大部分是对超分网络进行改进,针对低分辨率的害虫图像识别和分类算法较少,且大部分是对公开数据集进行识别和模型构建,并未开发相对应的应用终端。因此,开发针对普通用户的低分辨率害虫图像智能识别系统应用终端,对于提升水稻生产信息化水平具有重要意义。
针对稻田自然环境下难以在害虫静止且近距离时拍摄高质量图像,导致识别模型对实际获取的较低分辨率害虫图像识别精度较低,本文对低分辨率(Low-resolution,LR)图像进行剪裁处理,构建并训练ESRGAN[22]网络以生成与原始图像相当的超分辨率(Super-resolution,SR)图像。为进一步提高水稻害虫识别的准确率,本文提出一种基于SCResNeSt(Self-calibrated convolutions and ResNeSt block for ResNet50)的低分辨率水稻害虫识别网络。最后利用智能手机开发平台(Android Studio软件)对优选模型进行移植,开发针对普通用户的低分辨率害虫智能识别应用系统。
本研究中水稻害虫图像主要来源于安徽省农业科学院试验田收集的数据集[23],数据采集地点为安徽省合肥市庐江县白湖振兴农场(31.242326°N,117.564381°E),所有图像均采用数码相机(如佳能、尼康)或移动设备拍摄。为了消除光照变化的潜在负面影响,所有图像都在田间采用均匀照明设置进行预处理,从中选取7种常见的水稻害虫图像(水稻二化螟、稻纵卷叶螟、稻二星蝽、黑尾叶蝉、稻棘缘蝽、稻赤斑沫蝉、稻绿蝽)。此外,也使用佳能EOS80D型彩色数码相机拍摄了部分田间水稻害虫图像来提高数据集的多样性,数据采集地点为安徽省芜湖市无为县襄安镇(31.200738°N,117.805038°E),拍摄时间为2020年8月7日。所用完整数据集采集地点既有试验田,又有自然大田环境,采集的数据包含水稻害虫幼虫和成虫的不同形态数据,以使得训练所得模型更能适应于对实际环境害虫图像的识别。害虫图像示例如图1a所示,水稻害虫幼虫和成虫的不同形态图像示例如图1b所示。
图1 各类水稻害虫示例Fig.1 Examples of selected various rice pests
由于获取的原始数据数量少且类别不均衡,直接用来训练则容易导致模型过拟合。稻赤斑沫蝉、稻绿蝽数据较多,分别有156、175幅图像,约为前5种害虫(水稻二化螟、稻纵卷叶螟、稻二星蝽、黑尾叶蝉、稻棘缘蝽)数据量的3倍。基于前期研究发现,只对水稻二化螟、稻纵卷叶螟、稻二星蝽、黑尾叶蝉、稻棘缘蝽5种水稻害虫图像进行角度旋转和对称翻转扩增(图2),而稻赤斑沫蝉、稻绿蝽保持原本数量不变时,网络模型能训练获得更优性能,有效缓解数据不均衡问题,充分发挥数据作用。各类别水稻害虫的原始训练样本数、扩充后的训练样本数及测试样本数,如表1所示。
表1 害虫种类和样本数量Tab.1 Species and sample quantities of rice pests
经过图像数据统计分析,现有水稻害虫数据集包含两种:数量较多的高质量害虫图像数据(高清、正面、无背景或者背景简单等)和少量的低分辨率害虫图像数据,这将导致数据集出现数据质量不均衡问题,可能会使网络识别模型过于关注学习高质量水稻害虫图像的特征,忽略了低分辨率水稻害虫的特征学习,故本文采用三次插值算法(Bicubic interpolation)进行4倍下采样获取低分辨率水稻害虫图像。图像模糊和有效像素少是稻田自然环境下水稻虫害识别精度低的主要原因。因此,对获取的低分辨率虫害图像进行恢复和高分辨率预处理是提高虫害识别精度的关键。
增强型超分辨率生成对抗网络(Enhanced super-resolution generative adversarial networks,ESRGAN)是一种能够在单幅图像超分辨率期间生成真实感纹理的算法,其删除了生成网络中的所有批归一化(BN)层,并引入了多级残差密集连接模块(RDDB)将多层残差网络和密集连接相结合,该结构具有更深的层次和更加复杂的结构,同时提升了特征表达能力,能够有效提高模型性能,提高图像分辨率,ESRGAN比SRGAN方法在更逼真、更自然的纹理上获得了更好的视觉质量。因此,本文采用ESRGAN超分网络对低分辨率害虫图像进行超分处理,首先输入图像,图像被输送到具有3×3滤波器内核的卷积层,Leakly ReLU作为激活函数。RRDB由密集块和具有5个卷积层的多级残差网络组成,连接到第一个卷积层。RRDB可以放大网络容量,在RRDB组之后添加了另一个具有3×3内核和64个特征图的卷积层,以整合特征并匹配数据维度。两个上采样层的比例因子设置为2,以实现4倍上采样因子的超分辨率(SR)图像。其他卷积层与第一个相同,只是最后一个卷积层有3个特征。ESRGAN算法流程如图3所示,使用ESRGAN算法对水稻害虫图像进行超分处理的效果,如图4所示。
图3 ESRGAN网络Fig.3 Network of ESRGAN
图4 ESRGAN对低分辨率水稻害虫图像的超分示例Fig.4 Example of ESRGAN superclassification of low resolution rice pest images
经过数据扩增解决了水稻害虫样本少和数据不均衡的问题,并采用ESRGAN超分网络对低分辨率害虫图像进行数据增强预处理,解决低分辨率水稻害虫有效信息少的问题。在此基础上提出一种基于SCResNeSt的低分辨率水稻害虫识别网络,再利用Android Studio软件对优选模型进行移植,开发水稻害虫识别系统。
1.3.1网络模型整体架构
本文提出了一种以ResNet50[24]为主干网络的融合自校准卷积和注意力机制的识别网络(SCResNeSt),该网络首先使用3个连续的3×3卷积层,替换ResNet50中的第1个7×7卷积层,它们具有相同的感受野大小,并且计算量更小;采用自校准卷积(Self-calibrated convolutions,SCC)[25]替代第2层卷积层中的3×3卷积,通过内部通信显式地扩展每个卷积层的感受野,获取害虫图像的部分背景信息。最后通过堆叠多个ResNeSt block(Split-attention network block)层,使网络可以跨不同的特征图组提取到具有高区分度的精细特征。改进的SCResNeSt网络整体框架结构如图5所示。
图5 SCResNeSt 网络整体框架结构图Fig.5 SCResNeSt overall network framework structure diagram
1.3.2自校准卷积模块
由于所用的水稻害虫图像中不同害虫所侵害水稻的位置不同,如水稻二化螟幼虫蛀入稻茎后剑叶尖端变黄;稻棘缘蝽、稻二星蝽和稻绿蝽吸食主茎秆、叶穗部汁液,造成秕粒;稻纵卷叶螟、黑尾叶蝉和稻赤斑沫蝉主要危害水稻叶片,所以在利用害虫的图像特征的同时,结合受害位置的信息更有利于水稻害虫图像的识别。自校准卷积操作相比传统的卷积,首先每个空间位置不仅可以考虑周边信息,而且可以对通道间的依赖性进行建模。其次,自校准卷积以异构的方式利用卷积滤波器的不同部分。自校准卷积操作过程如图6所示。
图6 自校准卷积操作过程图Fig.6 Self-calibrated convolution operation process diagram
其中输入X的大小为C×H×W,将X拆分为2个大小为C/2×H×W的X1、X2,然后将X1、X2输入用于收集不同类型的上下文信息的特殊路径中。在第1个路径中,利用{K2,K3,K4}对X1进行自校准操作,得到Y1。对于给定的输入X1,先进行卷积核大小为r×r和步长为r的平均池化。
T1=AvgPoolr(X1)
(1)
式中X1——拆分后输入
T1——池化后输出
AvgPoolr——步长为r的平均池化
再用K2对T1进行特征转换
X′1=Up(F2(T1))=Up(T1K2)
(2)
式中K2——第2个卷积核
F2——第2个卷积运算函数
X′1——特征转换后输出
Up——双线性插值运算函数
其中,Up将F2(T1)从小比例特征空间映射到原始特征空间。校准操作可以表述为
Y′1=F3(X1)Sigmoid(X1+X′1)
(3)
其中
F3(X1)=X1K3
(4)
式中K3——第3个卷积核
Y′1——逐元素相乘后的输出
F3——第3个卷积运算函数
校准后最终输出为
Y1=F4(Y′1)=Y′1K4
(5)
式中K4——第4个卷积核
F4——第4个卷积运算函数
Y1——校准后的输出
在第2条路径中,执行一个简单的卷积运算
Y2=F1(X2)=X2K1
(6)
式中K1——第1个卷积核
X2——拆分后输入
F1——第1个卷积运算函数
Y2——卷积后输出
其目的是保留原始空间上下文信息。然后将两个中间输出Y1、Y2串联在一起作为输出Y。因此,变换过程中的每个空间位置都可以通过自校准卷积操作融合2个不同空间的信息,这大大增加了卷积层的感受野[26],从而使特征表示更具判别性。为更直观地展示感受野的增加,实验部分将展示网络热力图。
1.3.3ResNeSt block
SCResNeSt网络中使用的ResNeSt block可实现跨功能图组之间的关联,通过以ResNet样式堆叠ResNeSt block[27],每个块都将特征图沿通道维数分为几组和更细粒度的子组或分割,其中,每个组的特征表示是通过其分割表示的加权组合确定(图7)。
图7 ResNeSt块Fig.7 ResNeSt block
改进的SCResNeSt网络中使用的ResNeSt block特征被分组再拆分,同一层中多个卷积核分支可以分别提取特征使得网络提取的特征更为多样。首先将输入特征分为k组(沿通道数划分),将得到的特征图组称为基数组,这个k组特征层和卷积核的操作是相对独立的操作。并引入了一个新的基数超参数r,它表示基数组内的分裂数,每一个基数组内的分裂数均相同,因此特征组的总数为
G=kr
(7)
式中k——分组数r——超参数
G——特征组总数
然后将基数组的特征沿通道维度连接起来,Split-Attention块与标准残差块一样,其最终输出是使用快捷连接生成的,输入和输出特征图形状相同,再通过Concatenate函数进行数组拼接,然后用一个1×1的卷积转换成与输入特征图相同大小的图,最后将其与输入特征图进行相加。
1.3.4模型移植
本文构建了一种基于SCResNeSt的低分辨率水稻害虫识别网络模型后,利用智能手机开发平台(Android Studio软件)对优选模型进行移植,开发水稻害虫识别系统。模型移植使用的开发环境为Android Studio 3.5.2,编程语言采用Java。由于在Pytorch框架下保存的模型权重文件为“.pth”,为了能够利用Android Studio更好地将其移植到普通智能手机上,需要将.pth文件转换为.pt文件,然后再通过Java编程实现移植。模型移植流程图如图8所示。
图8 模型移植流程图Fig.8 Model migration flowchart
如图8所示,首先将低分辨率图像利用ESRGAN超分算法生成SR图像,再将其经过SCResNeSt分类网络进行识别,最后再利用水稻害虫智能识别系统对识别结果进行展示,用户可通过察看害虫识别结果,对农作物进行有效分析。
本研究使用Pytorch框架进行分类网络搭建,模型训练与测试均通过GPU加速。模型训练是将MAX-EPOCH设置成30,分类类别为7,最终经过训练得到需要的模型。
采用均方根误差(Root mean square error, RMSE)、归一化均方根误差(Normalized root mean square error, NRMSE)、结构相似性(Structural similarity, SSIM)、峰值信噪比(Peak signal to noise ration, PSNR)和信息熵(Entropy)评价实验结果。
图像超分方法旨在从相应的LR图像中恢复详细的SR图像,实验将ESRGAN网络与FSRCNN[28]和Bicubic进行对比以验证其有效性。为了评估生成的SR图像质量,比较了测试图像的RMSE、NRMSE、SSIM、PSNR和Entropy,结果见表2。
表2 超分图像质量评估Tab.2 Evaluation of hypersegmentation image quality
由表2可知,ESRGAN的SSIM和PSNR图像质量指标高于其他超分网络。ESRGAN网络中将残差密集块(RRDB)中的残差作为基本的网络构建单元而不进行批量归一化。用GAN的思想,令判别器预测相对真实性。利用激活前的特征改善感知损失,为亮度一致性和纹理恢复提供更强的监控。基于这些改进,ESRGAN在更逼真、更自然的纹理上获得了更好的视觉质量。
针对低分辨率图像识别应用需求,按照不同的分辨率及其处理操作,将训练集和测试集分为6种不同情况进行模型训练和测试。
由表3可知,原图-LR的分类网络由原图像训练所得,使用LR图像对其进行测试,并将此设置视为比较基线;LR-LR的分类网络由LR图像进行训练,使用LR图像对其进行测试,此设置需要为LR图像训练一个额外的网络;原图-原图的分类网络在原图像上进行训练,并在原图像上进行测试;SR-SR的分类网络在SR图像上进行训练,并在SR图像上进行测试;原图+SR-LR的分类网络在原图像和SR图像上进行训练并在LR图像上进行测试;原图+SR-SR的分类网络在原图像和SR图像上进行训练并在SR图像上进行测试。
表3 训练集和测试集情况Tab.3 Training set and test set
为了展示本研究中分类网络的实验效果,将AlexNet、Vgg16[29]、ResNet50、ResNet-RS[30]、ResNeSt和改进的SCResNeSt网络结合表3中的不同训练测试情况进行对比,水稻害虫分类实验结果如表4所示。
表4 害虫分类准确率Tab.4 Accuracy of pest classification %
由表4可以看出,在多个网络中,经过ESRGAN网络处理后的SR图像的分类精度高于LR图像的分类精度,第6种训练测试情况下的准确率达到了接近原图精度,甚至在AlexNet、ResNet50、ResNeSt网络中超过了原图精度。实验结果表明,经过ESRGAN网络处理,可以使得低分辨率图像得到增强,解决低分辨率水稻害虫图像有效信息少的问题。
本文提出的SCResNeSt方法在识别精度方面优于AlexNet、Vgg16、ResNet50、ResNet-RS、ResNeSt,在原图数据中可达到92.00%,比Vgg16高2.4个百分点,比ResNet50网络高6.4个百分点;低分辨率图像中的识别精度为87.20%;结合超分算法后低分辨率水稻害虫图像的平均识别精度为91.20%,相较于Vgg16高2.4个百分点,比ResNet50网络高3.2个百分点,说明所构建的深度模型能够准确识别水稻害虫类型。
为更直观地展示分类结果,绘制混淆矩阵,如图9所示,0表示水稻二化螟,1为稻纵卷叶螟,2为稻二星蝽,3为黑尾叶蝉,4为稻棘缘蝽,5为稻赤斑沫蝉,6为稻绿蝽。对角线上的元素表示正确分类样本的数量。
图9 网络混淆矩阵图Fig.9 Network confusion matrices
由ResNeSt网络混淆矩阵可知,对于第0类和第2类样本均分类正确。对于第1类、第3类、第4类和第5类,错误预测数为4的有2个样本。可以看出,分类的主要困难在于类别1、3、4、5,在SCResNeSt网络混淆矩阵中也有相似结果。由SCResNeSt的混淆矩阵可知,第0类和第2类的所有样本均分类正确,其他类的分类正确数量也得到了提升。
消融实验结果如表5所示。从表5可以看出,对数据进行超分辨率增强处理后,利用自校准卷积对水稻害虫进行特征提取,ResNeSt模块能够获取更多害虫图像的信息,进一步提升了图像中害虫信息获取的准确性。
表5 消融实验结果Tab.5 Results of ablation experiments
由2.3节和表5可知,对数据进行超分辨率增强处理,可提高网络泛化性,降低了因低分辨率图像所含信息少导致的误分类,大幅度提升了网络分类效果。上述条件下,在ResNet50网络中加入ResNeSt模块,进一步提升图像中害虫信息获取的准确性。最后再加入自校准卷积,可以看出,准确率提升明显,这是因为不同水稻害虫对应的背景也不同,自校准卷积有效扩大分类网络的感受野,结合受害位置背景的信息,降低了因背景类别复杂导致的误分类,因而所提方法具有较少的误分类,获得了较好的分类结果。
将SCResNeSt产生的特征激活热力图与传统的残差网络ResNet50和ResNeSt的特征激活热力图进行对比,其热力图可视化如图10所示。
图10 网络特征激活热力图Fig.10 Network features activated thermal map
从图10中可以观察到,具有传统卷积的残差网络无法精准捕获整个判别区域,因为它们的卷积层感受野有限。相比之下,自校准卷积有助于模型很好地捕捉整个判别区域。因不同害虫所侵害水稻的位置不同,带有自校准卷积的SCResNeSt感受野更大,可以更准确、更完整地定位目标对象,在识别中不仅利用害虫的图像特征,而且通过结合受害位置背景信息更有利于图像识别。
本研究基于Android Studio软件,设计完成移动应用APP。通过有线方式把安装包移至Android手机,即完成了基于Android手机的自然场景下水稻害虫识别系统的移植。用户可通过手机运行系统,自动打开手机摄像头,将摄像头对准害虫,即可实时采集图像。由手机摄像头采集的每帧图像,分辨率转换为224×224×3,然后经过归一化处理输入部署好的模型中进行识别,识别结果如图11所示。软件界面上半部分为手机摄像头实时采集到的图像,将每帧图像进行实时显示。界面中展示识别结果,软件界面下半部分为分类Top3的结果,并按照顺序排列,左列为分类结果,右列为分类概率。这种方法为用户提供了一种自行判断害虫的选择,用户可通过察看害虫识别结果,对农作物进行有效分析。
图11 软件识别结果Fig.11 Software identification results
(1)为解决实际获取的害虫图像分辨率低而导致识别模型识别精度低的问题,本研究基于深度学习技术,首先运用ESRGAN超分网络对低分辨率图像进行数据增强,解决低分辨率水稻害虫图像有效信息少的问题。其次,为了同时关注到害虫的图像信息和受害位置信息,在ResNet50网络中使用自校准卷积来扩大感受野,再通过堆叠多个ResNeSt block,提升害虫区域的特征权重,以便提取到具有高区分度的特征,提升模型的识别精度。在自建的水稻害虫图像数据集对模型进行训练获得水稻害虫识别模型。
(2)测试结果表明,本文模型对超分后的低分辨率水稻害虫图像的识别准确率为91.20%,相较于AlexNet、Vgg16、ResNet-RS、ResNeSt网络提高至少2.4个百分点,比ResNet50高3.2个百分点。本研究将获取到的模型部署在Android手机端,实际应用程序可用于农作物害虫移动端准确识别。