基于改进Faster R-CNN的马铃薯芽眼识别方法
2020-04-27张万枝吕钊钦侯加林
席 芮 姜 凯 张万枝 吕钊钦 侯加林
(1.山东农业大学机械与电子工程学院, 泰安 271018; 2.山东省农业装备智能化工程实验室, 泰安 271018;3.昆士兰大学化工学院, 布里斯班 4066)
0 引言
马铃薯是世界主要粮食作物之一,对保证世界食品安全和稳定具有重要作用。中国作为世界上马铃薯种植面积最大(占世界种植面积的30%)、产量最高(占世界总产量的24%)的国家[1],马铃薯产业的机械化水平越来越高,例如马铃薯播种机械化[2-4]、马铃薯收获和耕作机械化[5-7]、马铃薯分级和残膜回收机械化[8-9]等。马铃薯种薯的切块目前主要是由人工完成,存在劳动强度大、效率低、费用高等问题。随着人工成本的增加和劳动力的减少,马铃薯种薯的自动切块问题亟待解决。其中,马铃薯芽眼的准确识别是实现种薯自动切块的关键。
随着计算机技术的不断发展,计算机视觉技术在农业领域得到广泛应用[10-18],但关于马铃薯芽眼识别的研究却相对较少。文献[19]利用动态阈值及欧氏距离分割马铃薯芽眼,在彩色空间中芽眼识别准确率为62%,在灰度空间中芽眼识别准确率为89%,将两者结合得到的准确率为96%。文献[20]提出了基于色彩饱和度三维几何特征的马铃薯芽眼识别技术,芽眼的总体识别率为91.48%,平均运行时间为2.68 s。文献[21]利用混沌系统优化K均值算法,实现了马铃薯芽眼的快速分割,优化后算法的分割准确率为98.87%,平均运行时间为1.109 s。
上述识别方法主要根据颜色、轮廓和纹理等提取目标的浅层特征,特征提取具有盲目性和不确定性,普适性较差[22-23],且无法实现对性能和速度的同时兼顾。相比于传统方法,深度学习技术是直接由数据驱动的特征及其表达关系的自我学习[24],可以克服传统方法的不足,已成功应用于农业领域[25-28]。Faster R-CNN[29]作为主流框架之一,在农作物检测方面得到广泛应用。文献[30]利用一种融合FPN的Faster R-CNN方法实现了复杂背景下棉田杂草的高效识别,识别准确率为95.5%,识别时间为0.09 s。文献[31]提出了基于Faster R-CNN的田间西兰花幼苗图像检测方法,准确率91.73%。文献[32]利用Faster R-CNN对玉米冠层进行识别,识别率达92.9%,平均检测时间为0.17 s。
本文提出一种基于改进Faster R-CNN模型的马铃薯芽眼识别方法。利用高斯降权函数对Faster R-CNN中的NMS算法进行优化,并在训练过程中加入采用优化NMS算法的OHEM技术,以提高马铃薯芽眼的识别效果。
1 试验数据
1.1 图像采集
图像采集系统如图1所示,包括CCD相机、环形灯、步进电机、马铃薯和计算机。CCD相机型号为凌云LBAS-GE60-17C,分辨率为3 072像素×2 048像素。步进电机步距角为0.9°,马铃薯在步进电机的带动下旋转。马铃薯每转动180°,CCD相机采集1幅图像,每个马铃薯共采集2幅图像。
图1 图像采集系统Fig.1 Image acquisition system1.CCD相机 2、3、4、7、8.环形灯 5.步进电机 6.马铃薯 9.计算机
1.2 数据集构建
试验样本为900个马铃薯,共采集1 800幅图像。将图像分辨率压缩至400像素×500像素,以提高处理效率。为丰富图像数据集,更好地提取马铃薯芽眼特征,提高模型的泛化能力,采用数据增强技术对马铃薯数据集进行扩展。分别对采集的马铃薯图像进行水平翻转、垂直翻转、亮度增强和减弱、色度增强和减弱、添加高斯噪声及运动模糊。数据增强的结果如图2所示。数据增强后,数据集中共有16 200幅图像。图像标注为PASCAL VOC[33]数据集标准格式,此格式在Faster R-CNN中适用。从16 200幅图像中随机选取11 880幅图像作为训练集,1 440幅图像作为验证集,剩余2 880幅图像作为测试集,训练集、验证集、测试集之间无重叠。
图2 数据增强结果Fig.2 Results of data augmentation
2 Faster R-CNN模型
图3 Faster R-CNN框架Fig.3 Architecture of Faster R-CNN
Faster R-CNN模型由区域候选网络(Region proposal network, RPN)和Fast R-CNN(Fast region convolutional neural network)网络两部分组成,其框架如图3所示。模型对任意尺寸的输入图像(P×Q),首先将其缩放至固定尺寸M×N(M≤1 000像素,N=600像素),然后送入基础网络以提取特征映射。RPN和Fast R-CNN共享此特征映射,有效缩短了目标识别的时间。本文中,选取残差网络中的ResNet-50作为基础网络提取图像特征。残差网络的提出是为了解决随着网络加深而产生的梯度消失和网络退化问题。在残差网络中,ResNet-50是应用最广泛的网络之一,具体结构可参照文献[34]。在训练前,先将ResNet-50在ImageNet数据集上预训练,以初始化其参数,然后在自己的数据集上进行迁移学习和微调。本文采用近似联合训练的方式对Faster R-CNN进行训练。
2.1 RPN网络
RPN网络是一个全卷积网络,作用于ResNet-50中Res4f卷积层产生的特征图上。在RPN网络中,首先采用3×3的窗口在特征图上滑动实现候选区域的提取,并映射成1 024维的特征向量。以每个滑动窗口的中心为基准点,生成一系列不同尺寸和比例的锚框。根据数据集中芽眼的尺寸,设置锚框尺寸为(64, 128, 256),比例为(1∶1, 1∶2, 2∶1)。随后,特征映射被送入2个并联的1×1的卷积层,分别用于分类和回归。利用Softmax函数执行二分类任务,对锚框进行前景或背景的判断,仅将与标注框的交并比(IOU)大于0.7的锚框作为前景,并通过回归层计算锚框的偏移量,得到候选框的初始位置。随后进行NMS抑制,输出高品质区域候选框用于Fast R-CNN网络的分类检测。
2.2 Fast R-CNN网络
基础网络产生的特征映射和RPN产生的高品质区域候选框一同作为Fast R-CNN网络的输入,经过ROI池化产生固定尺寸的候选框特征映射,随后送入ResNet-50的剩余层实现分类和回归[35],输出目标类别和更加精确的检测框。
3 改进Faster R-CNN模型
图4 算法流程图Fig.4 Flow chart of algorithm
NMS算法的流程如图4a所示,B={b1,b2,…,bi,…}为初始检测框的集合,S={s1,s2,…,si,…}为初始检测框对应的得分(置信度);Nt为NMS算法中的阈值,Nt=0.4;Ot为改进NMS算法中的判别参数,Ot=0.3;D为最终检测框的集合,D初始为空集。NMS算法开始于一系列带有相应置信度的检测框,找出置信度最高的检测框M,将其从集合B移除至集合D中。计算集合B中剩余检测框与M的交并比(IOU),如果IOU大于等于Nt,则将其从集合B中剔除。对集合B中的其余检测框,重复执行以上操作,直至B为空。NMS算法剔除了所有与M交并比大于Nt的相邻检测框,被剔除的检测框中很有可能包含目标,造成目标的漏识别,进而影响马铃薯芽眼的识别性能。针对此问题,本文提出一种基于改进Faster R-CNN的马铃薯芽眼识别方法,对Faster R-CNN的NMS算法进行优化,如图4b所示。利用高斯降权函数f(IOU(M,bi)),对IOU 大于等于Nt的相邻检测框的置信度作降权处理。将降权后的置信度si与判别参数Ot进行比较,si大于等于Ot时,bi从集合B移除至集合D中;si小于Ot时,bi从集合B中剔除。
高斯降权函数定义为
(1)
其中IOU(M,bi)为M和bi的交并比,σ=0.6。由式(1)可知,检测框bi与M的重叠程度越高,其权重被衰减得越明显;重叠程度较低时,检测框的权重基本不受影响。
此外,在训练过程中加入采用优化NMS算法的OHEM[36]技术,自动选择难分辨样本用于反向传播,增强模型对难分辨样本的学习能力。传统的OHEM技术中,将检测框的损失值从高到低排序,然后利用NMS算法选择损失值较大的64个检测框用于反向传播,更新网络参数。然而, NMS算法剔除了所有与当前检测框交并比大于Nt的相邻检测框,被剔除的检测框中很有可能包含目标,造成目标的漏识别,进而影响马铃薯芽眼的识别性能。为更好地解决冗余检测框的问题,将优化NMS算法加入到OHEM技术中,执行图4b中的步骤,直到选择出64个符合要求的检测框。
4 试验与结果分析
4.1 试验平台
试验所用台式计算机处理器为Intel Core i7-9700K 3.6 GHz,内存为32 GB,配备NVIDIA GeForce RTX 1080Ti GPU加速试验进程。试验运行环境为Windows 10(64位)操作系统,VS2017版本,Python 3.5.2版本,以Tensorflow(1.13.1版本)为后端的Keras框架(2.1.6版本),配备CUDA 10.0版本并行计算架构与cuDNN 7.6版深层神经网络加速库。
4.2 试验评价指标
采用精度P(Precision)和召回率R(Recall)作为马铃薯芽眼识别的评价指标。计算公式为
(2)
(3)
(4)
式中TP——正确识别的马铃薯芽眼数量
FP——误识别的马铃薯芽眼数量
FN——漏识别的马铃薯芽眼数量
F1——平衡精度(P)和召回率(R)的度量,%
4.3 结果与分析
4.3.1定量分析
为验证改进Faster R-CNN方法的有效性,将其与改进前的方法在测试集上进行芽眼识别结果的比较,具体的定量识别结果如表1所示。由表1可知,改进Faster R-CNN识别精度为96.32%,召回率为90.85%,F1为93.51%。相比于改进前的算法,精度提升了4.65个百分点,召回率提升了6.76个百分点,F1提升了5.79个百分点。平均单幅图像的识别时间为0.183s,与改进前相同。因此,本文提出的改进Faster R-CNN可在不增加运行时间的同时,显著提升马铃薯芽眼的识别性能。召回率改善的原因在于Faster R-CNN中的NMS算法将所有与M交并比大于Nt的检测框都剔除,而这些被剔除的检测框中,很有可能包含芽眼。改进Faster R-CNN方法对NMS算法进行优化,利用高斯降权函数对满足条件检测框的得分进行衰减,而不是全部置零,在一定程度上减少了芽眼的漏识别现象。精度提升的原因在于改进Faster R-CNN在训练过程中加入采用优化NMS算法的OHEM技术,增强了模型对难例的学习能力,从而减少了芽眼的误识别现象。此外,改进Faster R-CNN方法仅仅通过优化NMS算法提升识别性能,并没有使模型增加任何超参数,模型的浮点运算数(Floating point operations, FLOPs)没有增加,运行时间不变。
表1 芽眼识别结果和比较Tab.1 Experimental results of two methods
为进一步验证本文提出方法的有效性,将其与文献[19-21]中的传统方法进行比较,在同一硬件设备和测试集上的识别结果如表2所示。由表2可知,本文提出的改进Faster R-CNN方法无论从识别性能还是运行时间上,都明显优于文献[19-21]中的算法。
表2 与传统算法的比较Tab.2 Comparison with results of traditional algorithm
4.3.2特征图分析
图5 卷积神经网络的可视化Fig.5 Visualization of CNNs
为更好地理解卷积神经网络的行为和芽眼的提取过程,将特征提取的部分中间过程进行可视化。为方便表示,经过卷积层滤波的所有输出特征映射被统一到固定尺寸,对于每一层的输出,只显示前32个通道的结果。输入图像经过ResNet-50中卷积层Conv1、Res3d和Res5c的滤波,输出特征映射的灰度图和彩色图如图5所示。经过第1层卷积Conv1输出的特征映射和原图相似度较高,细节清晰,几乎包含了原图的所有信息。随着网络层数的加深,输出的特征映射变得越来越抽象,深层卷积网络输出的特征映射中,关于原图的信息越来越少,关于目标的信息越来越多[37]。经过ResNet-50中多层卷积网络的共同操作,马铃薯芽眼的特征可以被有效地提取出来。
4.3.3定性分析
马铃薯芽眼的识别结果如图6所示。图6a为只含芽眼的样本识别结果,可以看出,本文提出的改进算法能够完全正确地识别出芽眼;图6b为带有机械损伤、虫眼和破皮的样本(用红色框标出),图6c为其识别结果。可以看出,本文提出的改进算法对机械损伤、虫眼、破皮等干扰因素有较强的鲁棒性。
图6 改进Faster R-CNN方法的识别结果Fig.6 Recognition results of potato buds with improved Faster R-CNN
综上可知,本文所提出的改进Faster R-CNN方法对马铃薯芽眼的识别性能有显著提升,能够实现芽眼的有效识别,且不增加额外的运行时间,满足实时处理的要求,可为种薯的自动切块奠定基础。
4.4 讨论
马铃薯种薯的自动切块在实际生产过程中,涉及二维图像芽眼识别、种薯三维重建、控制部分和种薯切块等部分。在二维图像中完成芽眼识别后,将芽眼区域的位置信息映射到三维重建后的种薯图像中,完成空间位置的芽眼定位。控制系统根据芽眼的空间位置控制刀具,完成种薯的切块。
本文对种薯自动切块的前期工作——芽眼识别进行了研究分析。芽眼的准确识别是实现种薯自动切块必不可少的一步,对种薯的切块品质有着决定性作用。本研究可为后期自动切块奠定基础,提供有益参考。
5 结论
(1)提出了一种基于改进Faster R-CNN模型的识别方法。试验结果表明,改进的方法可以显著提高马铃薯芽眼的识别效果。
(2)对Faster R-CNN中的NMS算法进行优化,利用高斯降权函数对IOU 大于等于Nt的相邻检测框的置信度作降权处理,并在训练过程中加入采用优化NMS算法的OHEM技术,自动选择难分辨样本用于反向传播,增强模型的鲁棒性,使马铃薯芽眼识别的精度达到96.32%,召回率达到90.85%,F1达到93.51%,单幅图像的平均运行时间为0.183 s。
(3)基于改进Faster R-CNN模型的识别方法可以实现对马铃薯芽眼的有效识别,且不增加额外的运行时间,满足实时处理的需求,可为马铃薯种薯自动切块中的芽眼识别提供借鉴。