林相泽 徐 啸 彭吉祥
(南京农业大学人工智能学院, 南京 210031)
稻飞虱(主要是褐飞虱、白背飞虱和灰飞虱)是水稻生长过程中的重要害虫,它具有远距离迁飞特性,不仅能够直接从水稻中吸取汁液,还可能携带南方水稻黑条矮缩病毒等多种病原物,对水稻生长具有突发性和毁灭性的危害[1]。以2019年为例,全国稻飞虱累计发生面积约1.659 6×107hm2,造成实际损失4.94×105t[2-3]。与此同时,3种主要稻飞虱在田间发生时间与施药种类均不同,这给虫害防治带来了极大困难。及时预警防控是有效降低稻飞虱虫口密度、减轻危害损失的重要措施。
目前图像处理方法已被广泛用于农业害虫识别与分类中[4-12]。其中,在水稻害虫方面,TSAI等[13]在HSV颜色空间中获取矩形感兴趣区域进行颜色分析,并利用决策树算法对解析数据进行分类,得到稻飞虱的二值图像。SETHY等[14]提出一种将支持向量机和词袋法相结合的方法对常见水稻害虫图像进行分类。但是,传统机器学习算法不仅需要研究人员深入了解稻飞虱的形状、颜色、纹理和其他外部特征,而且需要调整图像尺寸、图像分割和特征提取等一系列操作,耗时耗力。林相泽等[15]提出一种基于迁移学习和Mask R-CNN的稻飞虱害虫图像分类算法,文献[16]将K-SVD与正交匹配追踪稀疏表示相结合实现了水稻害虫图像的准确分类。姚青等[17]针对稻飞虱图像中漏检和误检问题,将改进后的CornerNet用于对白背飞虱和褐飞虱的检测。ZHOU等[18]将二维小波包变换与角点检测结合来估测水稻茎上稻飞虱侵蚀面积。HE等[19]提出将二阶目标检测算法Faster R-CNN用于检测褐飞虱,并与常见的一阶算法进行对比。尽管上述研究在稻飞虱图像分类研究中已取得一定成果,但此类方法往往将3种稻飞虱归为一类或者仅对其中一类或两类稻飞虱进行识别,同时它们未对数据集不同图像中同一形态下的同一只昆虫进行处理。此类问题降低了算法在农业工程中的实用性,影响了水稻害虫的防治效率。
基于以上分析,本文通过图像相似度比较算法筛选出测试集中所有相似图像,并通过图像反转和图像融合方法区分出2幅图像中重复与非重复昆虫,并达到图像相减的目的。同时通过截断阈值化处理和双边滤波去除图像上的噪声,从而滤除同一形态下的同一只昆虫,然后选取深层特征融合网络作为CenterNet[20]的主干特征提取网络来自动提取昆虫特征,并优化模型权值更新。在识别分类昆虫时,将消冗后的图像输入到深层特征融合网络得到热力图,热力图的峰值点对应昆虫的中心,每个特征图的峰值点预测昆虫的宽高信息,确定预测框位置,从而实现识别分类。
为获得不同时间和地点下的稻飞虱图像,实验共分为3个阶段采集稻田昆虫活体图像,每个阶段均属于稻飞虱暴发时期。实验过程中,可编程逻辑控制器控制X轴方向与Z轴方向上安装的伺服电机来调节相机拍摄的位置,详细的装置信息与采集过程参照文献[15-16]。采集到的图像以jpeg格式自动保存在工控机硬盘中。
筛选出3个阶段拍摄的所有图像,共包含1 448幅昆虫图像。为了提高后期模型的泛化能力及鲁棒性,对数量相对较少的白背飞虱和灰飞虱图像进行翻转,从而实现数据增强的目的,扩充后的数据集共包含1 532幅图像。利用LabelImg软件对所有样本进行标注,其中将白背飞虱标记为WBPH,褐飞虱标记为BPH,灰飞虱标记为SBPH,而其他田间常见昆虫,如隐翅虫、长蝽、蚂蚁、苍蝇、叶蝉、水蝇、叶甲、蚊子统归为非稻飞虱,并标记为nRPH。按比例6∶2∶2将所有图像随机分为训练集、验证集和测试集。最后将PASCAL VOC[21]格式的数据集转换为CenterNet可读取的COCO[22]格式数据集,标记后图像如图1所示。
图1 被标注的昆虫及其类别Fig.1 Labeled insects and its categories
与传统目标检测算法[23-26]在昆虫表面覆盖大量锚框[27]相比,CenterNet通过关键点估计来预测目标中心点,并回归到昆虫预测框的其他属性,例如尺度、方向等。本文选用深层聚集模型[28]作为全卷积网络来提取昆虫特征,将3种稻飞虱和其他田间昆虫作为训练集和验证集样本。
田间昆虫采集装置的相机从左下角移动至右上角完成一个拍摄周期后,下一轮拍摄过程中同一位置同一只昆虫可能未发生位置移动或仅有轻微移动,因此采集的图像存在部分高度相似的情况(图2)。然而对于位于同一位置的同一只昆虫的重复检测,不仅消耗了更多的硬件资源,还对后期虫情预警、虫口密度预测等工作产生影响。
图2 数据集中相似度较高的昆虫样本Fig.2 Insect samples with high similarity in dataset
因此本文通过对数据集中的昆虫样本进行一系列预处理,在不影响检测精度和速度的前提下,剔除重复的昆虫样本,具体流程图如图3所示。算法主要分为3部分:数据集制作、图像消冗和算法检测与比较。图像消冗部分首先通过获取图像的像素点的平均值来判断图像间的相似度,再对判定为相似的2幅图像进行相减,去除重复的昆虫。接着对相减后的图像进行截断阈值化处理,去除重复昆虫的躯干残影。最后对图像进行平滑处理,去除图像中昆虫躯干边缘的高频噪声。
图3 算法流程图Fig.3 Algorithm flow chart
1.4.1图像相似度检测
图像相似度检测算法能够快速从数据集中挑选出相似度较高的图像,为后续的图像处理和识别分类做准备。但是,传统的人工挑选相似图像不仅耗时耗力,而且容易有遗漏。 以往运用于图像相似度检测的方法有形状匹配[29]、统计直方图[30]、哈希算法[31]等,但此类方法存在检测识别率低、计算复杂度较高、图像特征信息易丢失等缺陷。针对以上问题,本文提出图像特征值比较法来对数据集进行相似度检测。其具体步骤如下:
(1)缩放图像。数据集中图像尺寸为512像素×512像素,本文将其缩放至30像素×30像素。这样既能保持原图的基本结构,又能淡化图像细节,使速度和准确度达到平衡。
(2)灰度处理。本文中图像相似度计算与昆虫颜色关系较小,同时为了减少后续计算复杂度,将缩放后的图像处理为灰度图。
(3)计算平均值。计算缩放至尺寸为30像素×30像素的灰度图的每行像素点的平均值,每行像素平均值代表着图像每一行的特征,共30行。
(4)平均差值累加。计算2幅图像的每行像素平均值的差值,并将所有差值进行累加。若差值之和小于设定的阈值,则判断2幅图像的相似度较高。反之,则判定图像的相似度较低。
(5)遍历测试集。重复上述步骤,筛选出测试集中所有相似度较高的图像。
1.4.2图像相减
图像相减是为了去除2幅图像中位于同一位置下的同一姿态的昆虫。首先对第1幅图像进行反色处理,即将图像的R、G、B值反转,反转后图像的R、G、B值均为255减原图的值。然后再将第2幅图像的原图和反转后的图像进行融合,此时即可清晰地看到差异之处。
1.4.3图像阈值与滤波
在1.4.2节相减后的图像中,会留有第1幅图像中昆虫的残影以及躯干轮廓,本文通过图像阈值、滤波等方法去除图像噪声。
图像阈值就是当像素值高于或低于设定阈值时,进行相应处理[32-33]。其中截断阈值化指的是当像素值大于阈值时,将其设定为阈值,当像素值小于阈值时,则保持不变。这可以使图像亮的部分不至于太亮,而暗的部分则保持不变。因此能够有效去除白色残影的同时还保留其他昆虫的特征。将截断阈值化处理后的图像的背景置为白色,增强图像对比度。图像滤波则是对目标的图像噪声进行抑制,而双边滤波是综合考虑距离和色彩的权重结果,不仅能去除图像中的高频噪声还能有效保留昆虫边缘特征[34-35]。
CenterNet在PyTorch框架上实施,并使用具有11 GB内存的Nvidia GeForce RTX 2080 Ti显卡进行训练,利用Adam[36]优化训练损失值。如图4所示,随着训练周期的增加,损失值不断下降,训练模型逐渐收敛。CenterNet在第100个周期后损失值逐渐趋于平稳,并在第105个周期取得最优模型。因此,利用第105个周期的模型对图像进行识别分类。
图4 CenterNet训练损失值Fig.4 CenterNet training loss value curve
图5展示了部分稻飞虱和非稻飞虱的检测结果,图5a中白背飞虱的置信度为0.5;图5b中灰飞虱的置信度为0.8;图5c中从上至下褐飞虱的置信度分别为0.8、0.7和0.5;图5d中非稻飞虱的置信度为0.9和0.3。由此可见,CenterNet的训练模型对灰飞虱、褐飞虱和非稻飞虱的检测效果较好,对于白背飞虱的检测效果稍弱。同时,当图像中出现不完整昆虫躯干时,会削弱模型的检测效果。
图5 部分昆虫检测结果Fig.5 Part of insect test results
为进一步评估CenterNet对3种主要稻飞虱和田间其他昆虫的检测效果,本节选择精确率(Precision)、召回率(Recall)和F1值[37]作为评估指标。
由表1可知,在精确率方面除了灰飞虱,CenterNet都取得了不错的效果,其中非稻飞虱和褐飞虱的精确率较高,分别为98.94%和94.57%。而灰飞虱的精确率较低的最大原因是灰飞虱与褐飞虱形态极为相似,算法易将褐飞虱误检为灰飞虱。在召回率方面,非稻飞虱和褐飞虱的数值较高,灰飞虱的召回率较低,仅为83.33%。F1值中非稻飞虱最高,灰飞虱最低。
表1 3种稻飞虱和非稻飞虱评估指标Tab.1 Evaluation indicators for three kinds of rice planthoppers and non-rice planthoppers %
以往研究中,通常将3类稻飞虱归为一类,即仅仅检测稻飞虱与非稻飞虱,而3种主要稻飞虱的爆发时间与用药种类均不同,因此以往研究会在农业生产中增加应用难度。本文将CenterNet对3种稻飞虱的检测结果与其他仅检测一种稻飞虱的算法[15-16]进行对比。
由表2可知,CenterNet平均精度均值 (Mean average precision, mAP)与深度学习算法(如Mask R-CNN[23]、Faster R-CNN[24]、SSD[25]、YOLO v4[26]等)相当,而检测速率明显优于其他算法。CenterNet的mAP为87.1%,检测速率为43.7 f/s。由于其他算法将3种主要稻飞虱归为一类,所以模型分类难度较低,mAP较高,而CenterNet通过较小的mAP来换取对3种稻飞虱的识别分类是有意义的。与传统机器学习算法中的支持向量机和BP神经网络相比,CenterNet不论在检测精度还是在检测速率上都有显著优势。因此本文选用的CenterNet算法不仅能够实现对3种主要稻飞虱的准确识别与分类,还能为稻飞虱虫情预警、虫口密度预测提供可靠的科学技术支持。
表2 实验结果对比Tab.2 Comparison of experimental results
当昆虫采集装置拍摄到采集工作台的同一位置时,此时昆虫与上个拍摄周期相比仅发生小幅位置变化或又有新的昆虫进入拍摄视野(图2),本文称此类昆虫为高度相似样本。对不同图像中的同一只昆虫的重复检测不仅增加了算法的计算量,还会对后期虫情测报预警等产生影响。为解决上述问题,本节首先遍历测试集所有图像,通过图像相似度检测算法来统计每行平均像素值。以图2 为例,图2b的最上方有一只不完整的褐飞虱,其余位置2幅图基本相似。图6为图2中2幅图的每行平均像素值,对比图6中的两条折线段可知两者仅在第0、1行的像素值相差较大,其他位置两者的曲线变化基本吻合。将相似度检测的阈值设为55,在测试集中共筛选出28幅相似图像。
图6 图像每行平均像素值变化曲线Fig.6 Average pixel value of each line of images
仍以图2为例,对匹配成功图像的第1幅图像进行反转并与第2幅图像进行融合,结果如图7所示。经过上述操作后,最上方新飞入的昆虫仍保留在图像中,而两只重复的昆虫仅留下昆虫边缘的轮廓,从而达到图像相减的目的。为去除图像相减后剩下的噪声,本文通过截断阈值化处理和双边滤波来解决该问题。当2幅相似图像中的第1幅含有非重复昆虫时,经过图像反转和相减后会留下白色残影(图7b),此时通过截断阈值化处理后能够将白色残影滤除。如果图像相减后没有白色残影,通过截断阈值化处理后则能够有效减轻图像相减后剩下的昆虫轮廓噪声。对比图7b与图8a可以看出,经过截断阈值化操作后部分噪声已被成功滤除,但原有的位置仍有轻微痕迹。此时通过双边滤波在保留其他昆虫原有特征的情况下,尽可能过滤掉多余噪声,该过程也可理解为图像的平滑操作。双边滤波后的结果如图8b所示,可以看出双边滤波操作后的图像在去除噪声的同时,还能够较好地保留其他昆虫的轮廓特征。最后用图8b替代图2b,能够有效避免识别分类图2a与图2b中同一姿态的同一只昆虫。
图7 图像处理结果Fig.7 Image processing results
图8 图像截断阈值化和双边滤波结果Fig.8 Pictures of truncated thresholding and bilateral filtering results
重复上述过程,对测试集中所有相似图像进行消冗操作,并用消冗后的图像替换测试集中的高相似度图像,例如用图8b替换图2b,同时对消冗后的图像进行重新标注。如果消冗后的图像中没有昆虫,那么就不标注此图而是判断CenterNet算法对此图的识别分类是否正确。从图9a不难看出,图像经过消冗后CenterNet不再对2只重复的褐飞虱进行检测,而是仅对图2b最上方新飞入的褐飞虱进行识别分类。测试集所有图像消冗后的mAP为88.1%,与此前未对测试集消冗的检测结果相比提高了1个百分点,检测速率为42.9 f/s。本文提出的方法不仅能够对3种稻飞虱实现准确识别分类,还能够避免重复昆虫的多次检测。部分昆虫图像经过图像消冗后,检测结果的置信度有所降低,主要原因是:预处理后的昆虫特征有所降低;图像的背景由灰色或淡绿色变为了白色;训练期间均选用昆虫特征较为明显的原图。
图9 避免重复检测结果对比Fig.9 Avoid repeated test results comparison images
此外测试集中存在少量背景高度相似、昆虫体积较小且数量较少的图像,此类图像的行像素值之差累加后会略低于设定阈值。这将导致算法将此类图像归为相似图像,如图10所示。
图10 略低于阈值的图像Fig.10 Images slightly below threshold
对图10中的2幅图进行消冗操作后,并对其进行检测,得到图11。对比图10b与图11可以发现,即使前2幅图像不存在重复昆虫,消冗后的图像中依旧保留图10b的昆虫样本,且不影响最终的识别分类结果。
图11 图像消冗后的检测结果Fig.11 Detection results after image eliminating redundancy
(1)通过自主设计的野外昆虫采集装置获取稻田昆虫活体图像,并制作成数据集。
(2)以深层特征融合网络为骨干网络的CenterNet对3种稻飞虱和其他田间昆虫进行识别分类,实验结果表明,平均精度均值为87.1%,检测速率为43.7 f/s,并与其他深度学习算法(Mask R-CNN、Faster R-CNN、SSD等)和传统机器学习算法(BP神经网络、支持向量机)进行对比,结果表明本文使用的算法在对稻飞虱识别分类方面具有明显优势。
(3)对测试集进行图像消冗操作,能够成功避免相似图像的重复检测,其平均精度均值可达88.1%,检测速率为42.9 f/s,比未消冗的测试集结果有所提升。