APP下载

图像处理技术在粮食害虫识别中的应用进展

2021-07-13吕宗旺金会芳孙福艳

关键词:分类器特征提取图像处理

吕宗旺,金会芳,甄 彤*,孙福艳

1. 河南工业大学 信息科学与工程学院,河南 郑州 450001 2. 河南工业大学 粮食信息处理与控制教育部重点实验室,河南 郑州 450001

粮食,国之根基,粮食安全,国之重器,粮食作为国家重要的战略物资、生活资料之一,对国家安全、国家宏观调控具有重大现实意义[1-2]。害虫对粮食的损害不可挽救,不仅影响粮食的品质,还会对国家的经济造成损失。高效、精准的检测粮仓害虫的种类和数量成为保障国家粮食安全的一项重要任务。目前国内外粮仓害虫检测的方法主要有人工法、诱捕法、生物检测、声音检测、图像识别、近红外法、软X射线、生物光子等[3-5]。传统的人工法、诱捕法中,往往依靠管理人员的经验选择合适的位置进行诱捕和扦样,需要耗费大量的人力和物力。声音检测法主要是依靠声信号采集装置对粮虫的活动声音进行采集,对声信号的特征进行提取,最终判断虫子的种类和数量,但是由于粮仓中背景嘈杂,检测的准确率有待提高[6-7]。近红外法基于近红外电磁波对样本的吸收或反射差异的原理,检测粮食是否受到害虫的侵蚀,根据特征曲线检测出害虫的种类,还可以根据特征波长进一步判断害虫的死活[8-10]。软X射线法基于成像原理对粮食颗粒进行扫描成像,进而辨别是否存在隐藏性害虫[11-12],该技术对粮食颗粒的水分含量比较敏感,且对成像设备的要求较高。生物光子检测法[13]利用生物的超微弱发光现象,可以检测谷物的霉变、虫害等情况,该技术应用范围广泛且前景较好,目前还处于实验阶段。

粮虫识别图像处理技术主要有传统的机器学习技术和深度学习技术。传统的机器学习在粮虫的检测中分为图像预处理、特征提取以及识别分类3大步骤;深度学习技术则采用卷积神经网络自动提取特征并根据训练得到的分类器完成分类。传统的机器学习中预处理和特征提取部分主要使用图像处理技术,使用滤波、去噪以及图像增强技术对图像进行预处理,再提取粮虫的轮廓、纹理等特征[14-15]。提取的特征通过人工设计进行特征融合用来训练分类器,最终完成粮虫的分类任务。深度学习技术利用卷积层、激活层、归一化层和池化层不断地叠加,可以自动提取出粮虫的特征,最终使用全连接层进行分类[16-17]。随着图像处理技术的不断发展和应用,目前基于图像处理的粮食害虫的研究已经成为粮食行业的热点。

1 传统机器学习在粮虫检测中的应用

粮虫检测的传统方式大多是采用半自动的检测方式[18-20],主要结合粮仓诱捕器、抽吸装置和计数装置,完成对粮虫个数和种类的检测。机器学习采用计算机视觉技术(图像采集设备+图像处理技术),由于其准确率高和实时性的优点,已经逐渐代替了半自动的检测方式。采用计算机视觉技术方式主要包括图像采集、图像预处理、特征提取、粮虫分类4个方面。其中图像采集方式主要采用线性CCD、高清摄像头等进行采集,这里不再进行详细说明。

1.1 图像预处理

在实际应用中,图像的噪声和拍摄时的光照条件对图像的采集影响很大,对后续害虫的边缘检测及特征识别有很大的影响。图像的预处理采用去噪、滤波以及图像压缩等技术,提高图像的辨识度,压缩图像的大小,以满足在线监测系统实时性的要求,减小网络的传输压力[21]。

方明[22]基于模糊C-均值聚类对图像中的粮虫进行图像分割,为粮虫特征提取奠定了良好的基础。害虫粘连现象在粮虫检测过程中会对特征提取和分类造成很大影响,陈树越等[23]改进了Harris算法和凹点检测算法,针对粮虫串连、并连和混连情况进行分割。廉飞宇等[24]提出了基于Daubechies小波压缩算法对原始图像进行三级小波分解,在能量集中度达到94%的情况下,丢失的信息量控制在10%以内,且图像重构之后进行边缘检测生成的轮廓清晰。Wang等[25]采用图像块处理、自适应初始聚类中心等策略,提高了图像分割方法的准确性和稳定性,可以实时对图像进行分割,大大减少了传输图像的大小。颜永彪等[26]采用背景减法,将粮虫图片和背景图片对应的像素相减得到差值图,对图像进行阈值化处理,提取出前景像素点(粮虫像素点)之后再进行传播,大大压缩了图像的大小,减轻了网络传输压力。Qin等[27]提出了光谱残差边缘检测算法(spectral residual,SR),SR算法基于频域处理,可以抑制各种噪声,同时可以简化目标检测算法,提高边缘检测的有效性。

1.2 特征提取

特征提取包括粮虫形态特征和颜色特征的提取,其中,颜色特征即粮虫本身的颜色,形态特征包括粮虫面积、凸面积、离心率、等效直径、长轴、短轴、周长、质心、密度和范围等特征。

吴一全等[28]基于扩展Shearlet变换对粮虫的纹理特征进行提取,基于Krawtchouk矩不变量对储粮害虫的形状特征进行提取,最终将提取的纹理特征和形状特征进行归一化之后组合成综合特征向量送入支持向量机(support vector machine,SVM)进行训练,完成粮虫的分类。Espinoza等[29]将图像处理和人工神经网络(artificial neural networks,ANN)相结合,首先对图像进行分割,根据二值化后的图像计算形态特征,然后对HSV图像进行颜色特征提取,最终将14个形态特征和颜色特征送入ANN完成分类。Rustia等[30]利用黏纸板进行害虫诱捕,对采集到的图像进行RGB-to-LUV颜色模型转换,提取V通道颜色分量。使用固定阈值将黏纸板的背景去除,然后进行斑点检测,将通过的斑点裁剪成128×128的RGB图像送入分类器完成粮虫检测。

1.3 识别分类

传统的机器学习缺乏特征组合能力,需要对多种特征进行人工组合,然后送入分类器如SVM进行分类[31],人工设计特征组合的目的是为了提升分类的准确率。识别分类是图像处理技术在粮虫识别中的重要环节,所以良好的分类器是识别的关键[32]。

罗慧等[33-34]利用提取的边缘特征、相对面积、离心率等8个特征设计分类器,实现对粮虫的识别。张红涛等[35]使用模拟退火算法对SVM进行参数优化,把粮虫识别的多分类问题简化为经典的二分类问题,根据交叉验证,训练的模型识别率高达93.067%。吴一全等[28]使用全局混沌蜂群算法优化SVM的核参数与惩罚因子,并应用参数优化的SVM进行分类,该方法可以有效识别粮虫的种类。沈国峰等[36]使用BP神经网络进行粮虫的分类,在训练过程中采用贝叶斯正则化优化方法进行改进,提升了分类器的性能。Espinoza等[29]将提取的特征输入到前馈神经网络完成粮虫的分类,姜祖新等[37]采用AdaBoosting算法构建分类器,将多个弱分类器组合变成强分类器完成粮虫的分类。

2 深度学习在粮虫检测中的应用

深度学习依托深度神经网络,模型自动提取粮虫的各种特征,利用特征自动训练分类器,最终完成粮虫的检测和分类任务[38-39]。对于粮虫的检测,主要有图像分类和目标检测两大方向。

图像分类使用卷积神经网络(convolutional neural networks,CNN)对图像的特征进行自动提取,训练过程中分类器根据损失不断优化参数及权重,直至训练任务完成。训练好的模型可以对输入的图片进行分类,给出图片中物体所属的种类以及概率。图像分类网络主要包含输入层、特征提取网络、Softmax分类器以及输出层。训练好的模型可以在不同平台上进行移植,如Windows、安卓等。目标检测主要是需要对待检测的图片进行目标定位并对目标进行分类。常见的目标检测模型有Faster R-CNN、R-FCN、YOLO、SSD等[40-42]。

目标检测和图像分类的不同之处在于,图像分类仅仅可以对图片的物体进行分类,而目标检测技术是基于目标几何和统计特征的图像分割,它将目标的分割和识别合二为一,其准确性和实时性非常好。对于实际应用中的粮虫检测来说,拍摄到的图片中不仅含有粮虫,还有粮食颗粒、杂质等,仅仅通过分类技术计算粮虫个数的精度不高。目标检测中提取特征的经典网络有AlexNet、VGGNet、GoogleNet、ResNet以及MobileNet等。通过VGG16网络对CNN的组成结构进行说明。由图1可知,CNN中主要包含卷积层(Convolution)、激活层(Activation)、池化层(Pooling)、全连接层(fully connect,FC)和Softmax分类器。

图1 VGG16的网络结构Fig.1 VGG16 network structure

目标检测算法分为两大方向:基于区域提名的两阶段的目标检测,以Faster R-CNN为成型代表,特点是精度高、运算速度慢、训练困难;单阶段的目标检测,以YOLO、SSD为代表,其特点是运算速度快、效率高,但精度较差。

沈驭风等[43-44]基于Faster R-CNN算法,设计了一种基于Inception结构的模型。与原Faster R-CNN算法相比,额外地增加了RoI Pooling,将建议区域的坐标分别映射到两种尺度的特征图上,一种为第2个Inception结构后经反卷积得到的特征图,特征图的大小为原图的1/4;另一种为第7个Inception结构后的特征图,特征图的

大小为原图的1/16。再利用全连接层拼接为1 024维的特征向量,使用Softmax和Smooth来分别回归出区域得分和区域坐标,改进之后的网络结构如图2所示。通过与Faster R-CNN+VGG16、Faster R-CNN+ Inception、R-FCN+ ResNetl0l进行对比,改进后结构的mAP最高。

刘治财[45]使用Faster R-CNN+VGG16、Faster R-CNN+ResNet101、R-FCN+ResNet101以及YOLO算法进行试验,比较了不同算法的粮虫检测效果。试验发现两阶段的目标检测算法对粮虫的检测效果较好。在此基础上,对R-FCN算法进行改进,将基于的特征提取网络换成改进的DenseNet[46],并将算法中常用的NMS算成Soft-NMS[47],改进之后的网络结构如表1所示。为了进一步提升检测性能,在网络训练时使用多尺度训练技巧,设置了3种输入图片尺度,分别为800×640、1 024×800、1 280×1 021,每迭代1 000次,随机选择其中1种进行训练。最终试验证明,改进之后的R-FCN模型检测性能比上述的开源模型好。

表1 改进之后的DenseNet结构Table 1 Improved DenseNet structure

邓壮来等[48]基于SSD模型对米象、锈赤扁谷盗、谷蠹、麦蛾、锯谷盗以及赤拟谷盗等6种高发的害虫进行分类。由于害虫为小目标检测,将SSD模型的VGG16优化,将Conv1-Conv5的卷积宽度(通道的数量)[49-50]减半,去除Conv3-2、Conv4-2、Conv5-2和FC,然后在Conv5-3之后,添加Conv6、Conv7、Conv8、Conv9接预测层,改进之后结构如图3所示。在损失函数部分添加了用于分类和回归任务的加权target[51],使模型训练可以更加专注分类难度高的样本。

图3 优化之后的SSD网络Fig.3 Improved SSD structure

假设有k个默认框,正样本数为n,负样本数为m,则k=n+m,设定用于分类的标签Label。

当n>0 时,则正样本分类的加权:

(1)

当m>0,且设定正负样本比例为 1∶3 时,则负样本分类的加权:

Neg_target={1-Label}/m×3;

(2)

整个分类任务的加权:

Tol_target=Pos_target+Neg_target。

(3)

加入回归任务的权重系数为θ,回归任务的加权:

Reg_target=Pos_target×θ。

(4)

与其他方法对比,该方法在mAP和平均检测时间上都有很大提升。

图4 优化的VGG16的网络结构Fig.4 Improved VGG16 network structure

由于拍摄方式以及设备不同,拍摄得到的图片大小不同,粮食害虫在图片中所占的面积也不同。 Li等[53]为了使模型能够适应多尺寸的粮虫大小,基于RetinaNet设计了一个特征金字塔网络(feature pyramid network,FPN),并优化了分类和回归boxes子网络。FPN网络结构如图5所示。优化之后的分类和回归子网络如图6所示。通过融合ResNet50中不同阶段的输出,构建了具有5个输出层的一个自顶向下通路的特征提取网络。每个输出关注一个特定大小范围的害虫,会产生和尺寸大小对应的anchors。将focal loss[54]和GHR(gradient harmonized regression) loss[55]组合的损失函数用于多尺度害虫检测器的训练。focal loss作为置信损失,GHR loss作为定位损失。通过对10种粮仓害虫进行检测,其mAP达到了94.77%。Liu等[56]提出了PestNet,是一种多尺度多种类端到端基于深度学习的害虫分类模型。在特征提取中将通道空间注意机制(channel spatial attention,CSA)融入CNN网络中。特征提取之后使用RPN(region proposal network)提供害虫位置的建议区域。RoI Pooling中添加了上下文RoI(contextual RoI)以增加检测的准确性。在RoI Pooling之后添加位置敏感评分图(position-sensitive score map,PSSM),用来代替FC层进行分类和边界回归,PestNet网络结构如图7所示。

图5 FPN网络结构Fig.5 FPN network structure

图6 分类和回归子网络结构Fig.6 Subnetwork structure of classification and regression

图7 PestNet网络结构Fig.7 PestNet network structure

为了提高深度学习分类模型的鲁棒性,需要足够的图片样本来训练分类器和位置回归器。但是粮仓属于国家保密机构,粮虫图片的获取不太方便。传统的图像获取方法是在实验室搭建模拟粮仓并使用喂养的虫子进行拍摄,制作数据需集中拍摄并且标记的工作量巨大,耗时又耗力。Lu等[57]提出了基于生成对抗网络GAN(generative adversarial network)的图像增强方法,提高模型分类的效果。为了生成高质量的图像、增加训练数据集的大小,使用AC-GAN(conditional GAN with auxiliary classifiers)模型,使得在有限的图像数据下提高害虫分类器的性能,为粮虫检测数据集的准备提供了新思路。

深度学习中的图像分类和目标检测算法极大地提升了粮食害虫的检测效率和精度,由于数据集的限制、训练的难度、模型能够识别害虫的种类限制以及和硬件配合难度等问题,目前还只存在于实验室研究和开发的阶段。

3 种群密度估计

储粮害虫的种群密度估计为粮虫检测的最终目的,种群密度估计意义重大,不仅可以显示粮虫的分布情况,数据的积累还可以指导粮食在仓储过程中的杀虫工作,对改善粮食的仓储质量,保障粮食安全有着重要作用。

传统的粮虫种群密度估计采用扦样法和诱捕法,由于检测耗时耗力且粮虫“挑食”的原因,种群密度估计工作一直比较困难。随着检测技术的进步,逐渐出现声信号分析、近红外高光谱成像、信息素、电子鼻以及视频检测的方法来确定粮虫的死活和密度分布。周亦哲等[38]采用双流法视频检测来确定粮虫死活情况,根据活虫的数量来估计种群密度。张红涛等[35]使用SAA-SVM分类器训练模型判断粮虫是否为活虫,区分粮堆中的死虫来估计种群密度。罗强等[16]使用CNN网络进行学习和训练,并搭建了虫害实时监测系统,该系统用于统计粮仓中所有诱捕器中粮虫种类和数量,进一步估计粮虫的种群密度。罗慧等[33]通过诱捕器+图像处理的方式对粮虫进行分类和计数,并根据捕获害虫和实际害虫的公式来估计粮虫密度。

4 结论与展望

随着信息技术的发展,粮虫的在线监测系统成为监管粮情变化的重要工具,在线监控系统的数据实时性和数据真实性是系统能够大范围投入使用的关键。作者对近年来图像处理技术在粮虫识别中的应用做了研究,其中主要包括传统机器学习技术以及深度学习技术的应用。传统的机器学习,包含图像获取、预处理、特征提取以及识别分类等步骤。深度学习方式包含图像获取、预处理、模型设计、训练和分类步骤。图像获取和预处理步骤非常重要,应采取像素较高的设备进行拍摄;预处理步骤在保证提取粮虫特征的前提下,尽量地压缩图片大小,减轻网络传输的压力。粮虫的种类多种多样,但是由于其体型较小,特征相似(如谷盗类),很多研究中都将特征相似的粮虫归为一类进行识别,因此,须提高对粮虫特征细节的提取,进一步提升分类效率。粮虫种群密度估计是粮虫识别的最终目的,在传统的机器学习和深度学习的图像中,由于是对图片或者视频进行处理,区分活虫和死虫的工作较难,可以采用食物诱捕和信息素分析等多种技术融合,使种群粮虫密度估计更加准确,用于指导粮食的仓储工作。图像处理技术主要是对粮粒外部的害虫进行检测,对隐藏性害虫没有任何的办法,所以结合图像处理和软X射线等技术,分别对粮粒外部可见的粮虫和粮粒内部的隐藏害虫进行检测和分类。从内容上看,各项技术在粮虫识别的精度和速度上已经达到了可用的地步,但是对于粮虫识别的种类还有很大的限制,普适性不好。未来还需要各方面的共同努力,共同推进粮食害虫识别技术的发展,使图像处理技术早日应用在粮食行业中。

猜你喜欢

分类器特征提取图像处理
学贯中西(6):阐述ML分类器的工作流程
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
基于图像处理与卷积神经网络的零件识别
基于朴素Bayes组合的简易集成分类器①
基于动态分类器集成系统的卷烟感官质量预测方法
空间目标的ISAR成像及轮廓特征提取
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的废有色金属自动分选算法研究
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案