基于改进Faster R-CNN的核桃识别和定位
2021-12-10樊湘鹏周建平刘新德汤嘉盛
樊湘鹏,许 燕,2,周建平,2,3,*,刘新德,汤嘉盛
(1.新疆大学 机械工程学院,新疆 乌鲁木齐 830047;2.新疆大学 新疆维吾尔自治区农牧机器人及智能装备工程技术研究中心,新疆 乌鲁木齐 830047;3.新疆叶城县核桃产业研究中心,新疆 叶城 844900)
0 引言
新疆核桃种植面积为35万hm2,年产量近70万吨,居全国第二位。核桃产业作为新疆特色林果业,在地方国民经济中占有很重要的地位[1]。当前核桃采收方式主要为人工用长杆敲打使核桃振落,劳动强度大且效率低;采用大型拖拉悬挂式振动收获机时,若振动幅度和频率过大会损伤树枝树体,振幅过小则无法落果。采用机器人或机械臂对果树采摘可大大减轻果园劳动者的负担、提高工作效率。核桃园林环境和核桃树长势复杂,果实分布不均匀、叶片遮挡严重,果实颜色和叶片颜色极具相似性。因此,为实现核桃的自动采摘,前期的精准识别和定位至关重要。传统机器视觉方法在复杂环境中提取特征困难、鲁棒性差,且通常只能一次识别单个果实目标,因此很难满足工作需求。近年来随着深度学习出现,基于卷积神经网络的目标检测方法体现出巨大的优越性[2],被广泛应用于图像识别领域[3-6],并在农业病虫害识别[7-8]、叶片检测[9]、杂草定位[10]和果实识别[11]等方面均有较大进展。赵德安等[12]使用YOLO模型对复杂背景下的苹果进行定位,其平均精度为87.71%,检测视频的帧率达到60帧/s。王丹丹等[13]利用R-FCN模型对苹果进行检测,单张图像检测耗时为187 ms。Tian等[12]以改进的YOLO v3模型研究了不同生长阶段的苹果,F1值达到81.7%。李善军等[15]提出了一种基于SSD-ResNet18模型的柑橘实时分类检测方法,可以区分正常、损伤和病变的柑橘,平均精度为87.89%。闫建伟等[16]对Faster R-CNN模型改进,识别刺梨果的平均精度为92.01%,表明了Faster R-CNN算法有着较高的正确率。武星等[17]提出了一种基于Light-YOLO v3的苹果检测方法,平均精度可达94.69%。
基于卷积神经网络的多种目标检测方法在果实检测方面取得了较好的效果,但是还没有将卷积神经网络用于青皮核桃识别的相关研究。在自然环境下,核桃与背景颜色相近,易相互遮挡,因此本文提出利用改进Faster R-CNN模型来识别核桃果实。获取了不同天气条件、不同光线下的核桃图像,通过加入批归一化处理层(Batch normalization,BN)、感兴趣区域校准算法改进基础Faster R-CNN网络,利用4种不同的特征提取器对比试验,得到性能优异的模型。
1 数据集及预处理
1.1 试验数据采集
试验图像数据在新疆叶城县巴仁乡核桃产业研究示范园中采集,采集时间为2019年7月20日-8月10日,分别在晴天和阴天的早中晚不同时刻进行。自然环境中的图像背景较为复杂,包括顺光、逆光、重叠、遮挡、密集、风沙覆盖等多种画面类型,拍摄图像尺寸为4 608像素×3 456像素(宽高比为4∶3),获得符合条件的图像共3 000张,格式为JPG。
1.2 数据集预处理
卷积神经网络需要大量的标注样本图像才能获得良好的性能。利用Labelimg标注工具标注出目标,按照PASCAL VOC2007标准存储。为了增加图像多样性和样本集的大小,采用有监督的几何变换、颜色变换(亮度调整)和添加噪声等操作(图像变换效果如图1所示),将相应的数据集扩充到原来的8倍,以减少模型训练的过拟合现象。为便于模型训练,将数据集中的所有图像尺寸统一设为768像素×576像素。
2 Faster R-CNN检测算法
2.1 Faster R-CNN原理
Faster R-CNN是2015年由REN等[18]提出的two-stage目标检测模型,该模型通过训练可习得图像的深层次特征并直接输出检测结果。Faster R-CNN主要包括共享卷积层单元、区域建议网络(Region proposal network,RPN)、Fast R-CNN结构、ROI Pooling单元和Softmax分类回归单元。共享卷积层单元相当于整个网络的特征提取器,能够自动提取图像中的目标特征,并将特征共享给后续的RPN和Fast R-CNN结构,从而将RPN与Fast R-CNN组合连接在一起,提高候选框生成的速度和检测效率。
在目标检测过程中,输入图像经过卷积、激活与池化组合操作后得到特征图,Fast R-CNN结构和RPN共享卷积层单元的权值参数。区域建议网络的滑动窗口在特征图上产生目标候选框并提取感兴趣区域,Fast R-CNN中的ROI Pooling单元对候选区域分成小区域块进行最大池化操作生成特征向量,分类与回归单元使用Softmax来确定检测框内的区域是前景或者背景,最后使用边界框回归来获得准确的类别,同时获得检测框的最终位置。检测框的存在使Faster R-CNN能够同时检测图像中的多个目标,提高检测效率。
2.3 Faster R-CNN改进
Faster R-CNN虽然有着较高的精确率,但是直接将其用于核桃果园的青皮核桃检测时效果不佳,原因在于:1)Faster R-CNN虽然是主流的目标检测方法,但是模型训练耗时较长;2)Faster R-CNN区域建议网络在对感兴趣区域选择后的池化操作过程中对采样点的取整量化会导致精度损失,对区域建议框产生偏差,降低模型精度。因此,本文从以上两个方面进行改进,加入批归一化处理加快网络收敛速度、提高模型泛化能力,加入感兴趣区域校准算法来提高模型精度。
2.3.1批归一化处理
在每层卷积层后面加入BN层,对图像特征值进行归一化处理,可以把逐渐在非线性函数映射后向取值区间极限饱和区靠拢的输入分布强制拉回到均值为0、方差为1的标准正态分布范围,从而避免训练过程中的梯度消失和梯度爆炸,起到加快收敛、增益网络的作用。对于一个批量数据而言,数据归一化的过程利用它们的均值和方差计算
(1)
(2)
(3)
y=λx+β。
(4)
其中,λ和β是模型在训练阶段可动态调整学习的参数。
2.3.2感兴趣区域校准
RPN选择感兴趣区域后再由ROI Pooling单元池化操作,池化过程会经过2次采样点坐标值取整量化,取整后会损失小数点后的坐标精度,进而使得特征图上的区域建议框产生偏差,导致回归定位的准确性下降。因此,本文采用He等[19]提出的感兴趣区域校准算法中的双线性插值法计算采样点坐标,使得浮点数得以保留,减少特征图精度损失。感兴趣区域校准算法的实现原理如图2所示,x、y轴表示矩形图像的水平和垂直坐标轴;对其图像的左下角为坐标原点。假定目标区域为120×80的图像经特征提取网络后变为原图的1/4,形成大小为60×40的特征图;在图2左侧区域中,将特征图进行4等分,形成16个面积相同的小矩形,放大后的示意如图2右侧红色框线内所示,对该区域采样时通常再进行4等分取中心点为采样位置,即对M1、M2、M3和M4采样;可得M1坐标值为(3.75,37.5),与M1相近邻的4个整数坐标点为P1(3,38)、P2(4,38)、P3(3,37)、P4(4,37),利用这4个点的像素值结合双线性插值法[20]计算得到P1的像素值,同理可得到4个采样位置的像素值,经最大池化操作可得到红色区域池化输出值。感兴趣区域校准算法使用双线性内插计算获得坐标为浮点数的像素点数值,避免了量化取整,保持了坐标的完整性,避免了采样点坐标量化导致的感兴趣区域位置偏移。
图2 感兴趣区域校准的实现原理Fig 2 Realization principle of ROI Align schematic diagram
3 网络训练和模型评价
3.1 试验环境与方法
试验整个过程的运行环境为Windows 7(64位)操作系统,Anaconda 3.5.0,Python 3.6,CUDA 8.0,cuDNN 6.0,搭载Intel Xeon CPU E5-2630 v4 @2.20 GHz处理器,使用开源深度学习框架Tensorflow作为开发环境,计算机内存为16 GB。
VGG、ResNet和ZF-Net等卷积结构都具有很强的特征提取能力[16],VGG-16在多个研究领域中被证明有着更好的特征提取效果[21-22]。本研究选取VGG-16卷积结构作为 Faster R-CNN框架下的特征提取器,同时选取了ZF-Net、ResNet50和ResNet101这3个特征提取器进行对比,以获得性能最优的模型。
3.2 模型训练
本文采用带动量的随机梯度下降算法训练模型。学习率是SGD算法中的重要参数,为保证模型权重参数以合适的速度达到最优值,选择指数衰减法对学习率进行设置。根据经验[21],由于VGG-16 等卷积结构采用0.01的初始学习率训练时取得了较高的精度。本文试验中的初始学习率设为0.01,将衰减系数设置为0.96,动量设置为0.9。由于数据量不是特别大,在保证训练充分的前提下,为避免模型训练后期的学习退化现象,将模型训练中的最大迭代次数设为5 000。训练结束后,利用测试集对模型效果进行验证,在测试集的图像中输出核桃目标的位置和概率。
3.3 模型评价
为了评价所提方法对核桃识别检测结果的好坏,采用平均精确率(Average precision,AP)作为模型检测精度的评价指标,同时引入单张图像检测耗时t评价检测速度。AP通过精度P和召回率R计算。其中,P和R的计算方法为
(5)
(6)
式中,TP为预测为正的正样本;FP为预测为正的负样本;FN代表预测为负的正样本。通过计算得到精度和召回率,绘制生成精度-召回率曲线。曲线与坐标轴围城的面积越大表示性能越好,AP则是对该曲线进行积分所得,即
(7)
4 结果与分析
4.1 不同特征提取器对模型性能的影响
本文在保证模型其他部分不变的情况下,分别使用ZF-Net、ResNet50和ResNet101这3种特征提取器与VGG-16结构对比,它们的精度-召回率曲线如图3所示,平均精确率和单张图像平均检测耗时情况如表1所示。结合图3和表1可知,VGG16特征提取器的曲线与坐标轴包围形成的面积最大,在保持相同召回率的同时,能够保持较高的检测精度。VGG16虽平均检测耗时方面比ZF-Net多0.016 s,但平均精确率为97.56%,在四者中最高。因此本文选择VGG16结构作为最优特征提取器。
图3 不同特征提取器的精度召回率曲线Fig 3 Precision-Recall curve of different feature extractors
表1 不同特征提取网络的性能对比Tab.1 Comparison of different feature extraction networks
4.2 模型改进前后的识别效果对比
为验证模型改进后的识别效果,将改进的Faster R-CNN算法与未改进模型进行对比试验,均采用VGG16特征提取器。图4~6分别为改进Faster R-CNN算法和未改进Faster R-CNN算法在顺光、逆光以及遮挡重叠较多条件下的识别效果。
从图4~6中可以看出,未改进的Faster R-CNN模型对核桃果实的检测存在较大的偏差,且未检测到核桃数量较多。而对Faster R-CNN利用感兴趣区域校准改进后,检测矩形框的精度有着较为明显的改善,对核桃的定位更加精准,有极少数核桃由于果实过小、遮挡较多或者是模糊不清而未能检测到。总体而言,改进后的Faster R-CNN模型在顺光条件、逆光条件以及遮挡、重叠较多等多种光照和复杂背景条件下的检测精度与识别效果均优于未改进的Faster R-CNN模型,可以满足园林中核桃的定位检测应用。
图4 顺光条件下的识别效果Fig.4 Recognition effect under frontlighting condition
图5 逆光条件下的识别效果Fig.5 Recognition effect under backlighting condition
4.3 与其他模型的比较
为进一步验证利用本研究所改进的Faster R-CNN核桃检测算法的性能,与主流目标检测算法YOLO v3、SSD300以及YOLO v4分类算法相比较,采用相同的试验环境和数据,结果如表2所示。由表2可知,不论是检测速度还是平均精确率,改进后的Faster R-CNN算法都优于原有未改进的Faster R-CNN算法;SSD300和YOLO v3算法虽然要比原有的Faster R-CNN算法速度快,但无论是平均精确率还是平均识别速度均不及改进后的Faster R-CNN算法;YOLO v4在检测速度上具有非常明显的优势,但对于本研究的核桃检测,其平均精确率分别为94.89%,低于改进后的Faster R-CNN算法。因此,通过对识别效果的综合比较,改进后的Faster R-CNN算法综合性能更优,更适合本研究核桃的实时性检测。
4.4 试验验证
为验证所提方法在园林间实际环境中的应用效果,保存训练好的模型,在田间布设图像采集设备,所用设备类型为海康威视DS-2CD2356(D)WD-I,分辨率可达2 560×1 440@25fps,在该分辨率下可输出实时图像,将摄像头固定在离地面3.5 m的支架上,试验设备和核桃园林现场图如图7所示。通过该设备获取图像200张,截取目标区域占比较大的画面,将图像大小调整为768像素×576像素,利用训练好的模型验证。改进Faster R-CNN算法对图像中的核桃检测平均精确率为90.76%,平均检测耗时为0.297 s,略低于实验室条件下的性能。这是由于视频截取的图像噪声较多、背景复杂程度增加所导致。后续将针对模型的抗噪能力和鲁棒性展开研究。
5 结论
本文研究方法能够对自然环境中的青皮核桃进行快速准确的识别与定位,与传统的果实识别方法相比较,本文方法效率更高,能够在目标与背景颜色相近的情况下同时检测多个目标。
加入BN层和感兴趣区域校准算法对Faster R-CNN模型进行改进,模型在测试集中的平均精确率为97.56%,单张图像平均检测耗时为0.219 s。与未改进的Faster R-CNN算法以及其他主流检测算法相比,在保证效率与精确率兼顾的情况下,本文方法综合性能上更优。在园林环境中获取核桃影像验证,所建立的模型能够保持90.76%的平均精确率,平均检测耗时为0.297 s,具有一定的鲁棒性。本研究可为自然环境中的核桃机器识别和采摘定位提供理论与实践基础。今后将进一步提高模型鲁棒性,开发基于嵌入式的移动采摘设备,为核桃自动化采摘提供支撑。