基于改进Faster R-CNN 的梨树花芽识别方法

2021-12-14 08:06许建峰靳江周张玉新
河北农业大学学报 2021年6期
关键词:玉露花芽枝干

董 浪,许建峰,靳江周,张玉新

(1.河北农业大学 信息科学与技术学院,河北 保定 071001;2.河北农业大学 园艺学院,河北 保定 071001)

梨树的树体结构是果园产量和品质的主要影响因素。树体结构是指梨树的形态结构及其动态变化,是在特定生长阶段内内源激素和外部环境共同调控达到的1 种平衡状态。如树高、总枝量、总花芽量等,都能保持适当的比例,并得以长期保持。及时有效地把握和培养良好的树体结构,是实现梨树优质丰产的基础和关键[1-5]。目前采用的树体结构调查方法主要是人工测量,该方法费时耗力且测量结果存在较大误差。通过技术手段提高树相调查速度和精确度能有效帮助生产人员把握梨树树体结构从而制定梨树枝量修剪策略、预估果园整体产量。

由于梨枝长势错综复杂且目标较小,目前学者大多针对树干进行研究和应用。早期的梨树枝干识别研究主要利用梨树枝干与周围其他作物的颜色、纹理和形状等特征不同的特点进行目标区分,且识别的目标具有特征明显、易识别的特点。如Shalaln等[6]使用相机和激光扫描仪对果树树干进行检测,整体检测精度为96.64%,但该方法只能对较粗的主树干进行检测,无法实现较细分叉枝干的识别。Jiw等[7]提出1 种基于自适应均衡直方图的苹果树干阈值分割方法,该方法平均分割精度为94%,但识别的枝干不连续,未能获得枝干完全信息。Amatyas等[8]通过聚类以及几何方法对枝干进行检测,整体检测准确率可达93.8%,但该方法只能识别单条枝干,无法对分叉的枝干进行检测。Tabb 等[9]通过超像素确定背景低纹理区域,进而对果树枝干进行分割,但该分割方法只适应于简单背景。蔡健荣等[10]提出基于RGB 对图像进行分割、形态学处理、区域细线化等步骤提取树枝骨架,并对树枝骨架进行修剪、恢复遮挡树枝等处理,进而找出树枝的中端点、分支点最后恢复树枝的三维信息。该方法的树干识别率可达67.3%。陈金星[11]通过对摄像头和CMOS 传感器获得的图像进行一系列Canny 算法处理,设计树木直径自动提取算法,再通过焦距、物距、像距和像素大小之间的关系计算出树干直径,树干识别的精度可达87.9%以上。虽然这些方法大多识别率较高,但局限性大。

近年兴起的深度学习方法在目标识别与检测任务上表现优异[12-20],已被广泛应用于各种检测任务。Majeed 等[21]使用卷积神经网络和KinectV2 相机实现了苹果树的主干和分支的分割精度分别为92%和93%,但该方法只针对无遮挡的苹果树枝干,并未考虑遮挡的情况。ZHANG J 等[22]通过R-CNN与拟合的方式对苹果树分支进行检测,其平均召回率和准确率分别为91.5%和85.5%,但该方法针对的是单挑枝条和无遮挡的枝条,并未考虑有分叉和遮挡的枝条进行研究。刘艳平[23]提出1 种改进型Mask R-CNN 算法对柑橘树干进行分割,通过对不同规则的树干利用离散化方法进行标记从而提高了模型对树干的识别准确率,平均精度达到85%。杨长辉等[24]利用网格化标记完成树干的小区域识别,Mask 处理获得更精确的目标区域,多参数变量约束进行Mask 划分,以及对Mask 中心点进行4 项拟合从而提高模型的识别效果,平均识别精确率为98.15%。以上研究证明了CNN 用于梨树树干检测的可行性和正确性。但是,目前还没有将神经网络应用于梨树花芽识别方面的相关文献。

梨树花芽形状固定但大小较小,一般在1 cm左右,这给实现自然环境下梨树花芽识别带来了挑战。本试验以3 年生‘玉露香’梨的花芽为研究对象,引入残差网络,并针对识别目标较小问题融入FPN。提出基于改进Faster R-CNN 模型的花芽识别算法,通过对‘玉露香’花芽数据集的训练,实现目标的识别。

1 数据材料与方法

1.1 数据采集与处理

选择河北省保定市阜平县固镇村梨园实验基地的‘玉露香’为样本,采集时间为12 月和1 月,在自然光下(时间段为:9:20—11:30)对‘玉露香’花芽进行多方位采集,共采集原始图像1 500 张。利用iPhone11 多角度,不同距离进行拍摄,原始图像格式为HEIC,分辨率为3 024×4 032 像素,经处理将图像格式转换为JPG,并人工挑选1 000 张用于网络模型的训练和预测。自然环境下‘玉露香’花芽图像如图1 所示。

图1 自然环境下玉露香花芽图像Fig.1 Flower bud and fruit branch image of Yulu in natural environment

由于增强训练数据能够极大地减少计算机视觉模型的泛化误差,同时训练数据的数量也会影响模型的效果,因此本文采取多种数据增强方法组合的方式丰富数据,对采集的1 000 张图像随机进行180°翻转,改变明亮度以及加入高斯噪声处理,并对其中的一部分图像做仿射变换,最后得到10 000 张扩展的图像数据集并利用LabelImage 按照POSCALVOC2007 数据集格式制作样本标签,将标注后的数据集按8∶2 的比列随机分配为训练集和测试集,并在训练集中随机选取20%作为验证集。

1.2 Faster R-CNN 目标检测算法及改进

Faster R-CNN[25]是两阶段主流的检测算法,相较于一阶段检测算法,如SSD、YOLO 等,在同一检测任务上的准确率表现更优异。该研究中Faster R-CNN 通过4 个步骤对输入的‘玉露香’花芽图像进行识别,分别为提取花芽特征、生成候选区域,对图片中的‘玉露香’和花芽进行分类,最后给出各自的位置(图2)。特征提取阶段的主要目的是能够自动提取输入图像的目标特征,并将所得特征与后续的RPN 和R-CNN 共享,相较于原始输入,减少了数据维度,给网络提供了有效的输入。不同的特征提取网络对整个网络模型的影响也不同。该研究分别采用VGG_16、ResNet_50 和ResNet_101等3 种网络对‘玉露香’花芽图像进行特征提取。VGG_16 是Faster R-CNN 的初始提取网络,它证明了增加网络深度能够在一定程度上影响网络的最终性能[26]。但研究表明,网络结构随着层数增加到一定程度之后,越深的网络效果反而越差,ResNet的出现解决了深度CNN 模型难训练的问题。因此,通过对比以上3 种不同特征提取网络对整个Faster R-CNN 模型的效果,最终选取ResNet_101 作为该研究的特征提取网络。

图2 Faster R-CNN 网络结构Fig.2 Faster R-CNN network structure

研究表明,Faster R-CNN 对小目标的检测精度明显低于大目标的检测精度。由于花芽占整个图像尺寸较小,当经过Faster R-CNN 模型的多层卷积池化之后,最后保留的特征信息几乎消失,后续的分类器将无法准确判断。因此,为了更准确的识别花芽,需要对Faster R-CNN 的特征提取方式进行改进。

FPN 的出现就是为了解决目标检测中的多尺度问题,实现同时利用低层特征高分辨率和高层特征的高语义信息,通过融合不同层的特征使得后续的分类器能够较好地预测,并且预测是在每个融合后的特征层上单独进行。研究证明,FPN 能够有效提升小目标的检测精度。因此为了解决当花芽特征进行卷积池化至最后一层语义信息消失的问题,引入特征金字塔网络[27-28]。

1.3 模型训练

该研究实验环境为Windows10、处理器为Intel(R)Xeno(R)Silver4114CPU@2.20 GHz 2.19 GHz(40 CPUs),~2.2 GHz,64 G 运行内存,8 T 机械硬盘,显卡为QuadroP2000,运行显存为5 G,使用GPU 加速计算,在Python 编程语言下搭建TensorFlow 深度学习框架。

随机从10 000 张样本中选择8 000 张作为训练验证集,并从训练验证集随机选取1 600 张作为验证集,其余未参与训练的2 000 张作为最终模型的测试集,使用ImageNet 预训练的模型初始化权值,此方法能够有效地减少模型训练成本和训练时间,同时采用交替优化训练方式。随着迭代过程的继续,适当减小学习率能够更稳妥的达到极值点,故设置初始学习率为0.001,学习率衰减系数为0.1,RPN 批处理大小为256,动量为0.9,权值衰减系数为0.000 1,最大迭代次数为200 000 次, 每隔10 000 次保存1 次模型,最终选取最优模型。为避免因为超参数的不同导致各模型精度存在不公平性,将以上超参数设置为一致。

1.4 模型评价

评价1 个模型的效果有多种评价指标,多种评价指标能够从多角度对最终模型进行分析,保证模型的准确性、鲁棒性和实用性。本研究使用2 种方式对网络性能进行评价。

1.4.1 平均精度 平均精度AP(Average Precision)的高低决定模型的好坏,与精确率P(Precision)、召回率R(Recall)有关,精确率和召回率的计算方法为

式中P为精确率,R为召回率,TP为正样本被正确划分的数量,FP为正样本被错误划分的数量,FN为负样本被错误划分的数量。

平均精度的计算方法如下:

该公式表示对P和R的曲线进行积分,反应了模型的识别效果,值越大表明识别效果越好。

1.4.2 单张检测时间 检测单张图片所用时间Timeloss是衡量模型性能的1 个重要参数,检测的时间越少越有助于减少计算机资源消耗,保证系统的实时性。

式中Timeloss为单张检测所用时间,Timebegin为图片进入模型的时间,Timeover为模型处理完图片的时间。

2 结果与分析

2.1 模型精度分析

将4 种方案按表1 进行编号。

表1 模型编号Table 1 Model numbers

对比3 种不同基础网络和改进后网络之间的模型训练时间的损失值折线图变化曲线,如图3,4 种模型的迭代次数为200 000 次,初始阶段loss值保持在1 个较高的水平,迭代到80 000 左右,loss值都下降较快,后随着迭代次数的不断增加最后趋于平稳,4 种模型迭代到130 000 次之后loss基本稳定,最终方案四的loss保持在0.9 附近。方案二初始阶段loss值下降较快于方案一,后基本保持一致,最终稳定在0.5 左右。方案三loss最低最终稳定在0.4左右。

图3 损失值变化曲线Fig.3 Change curve of loss value

2.2 不同模型测试结果分析

不同基础网络下的Faster R-CNN模型结果对比,见表2。

表2 不同方案结果对比Table 2 Comparison of the results of different schemes

结果表明,相较于VGG_16 和ResNet_50 2 种网络,以ResNet_101 为基础特征提取网络的Faster R-CNN 网络模型表现出较好的性能,平均精度值达到了77.43%,比VGG_16 和ResNet_50 分别多出7.17% 和1.10%,然而VGG_16、ResNet_50 和ResNet_101 等3 种基础网络下对于花芽的识别精度皆低。其主要原因,一是在保证梯度传递稳定下,深层神经网络模型的效果比浅层的神经网络好;二是由于花芽尺度较小,而区域建议框尺度较大,使得提取到的特征图冗余信息较多从而导致无法被检测。

为提升小目标的检测精度,对原始Faster R-CNN进行修改,因残差神经网络ResNet_101 的识别性能比VGG_16 和ResNet_50 更优秀,故以ResNet_101为基础融入特征金字塔网络,利用特征金字塔网络提取多层次特征产生区域建议框,由表2 可见,花芽的平均精度有了大幅度的提升,提高了13.84%。在检测时间上,随着模型复杂性的增加,平均检测时间也会有所增加,融入特征金字塔网络的Faster R-CNN 单张图片检测时间为0.395 s,比VGG_16快0.056 s,比ResNet_50 和ResNet_101 分别慢0.105 s 和0.062 s,但是也保持了实时性。

2.3 检测结果分析

为进一步分析不同模型的鲁棒性,从测试结果中选取背景为天空或地面、有无干扰物,枝芽之间有无遮挡、有无叶芽干扰等情况的图片进行比较,检测结果如图4 所示。图中黄色圆圈标注部分表示检测错误。

图4 不同检测算法的检测结果Fig.4 Detection results of different detection algorithms

结果表明,VGG_16、ResNet_50 和ResNe_101识别过程中皆存在漏检问题且VGG_16 漏检的数量较多,ResNet_50 和ResNe_101 漏检的数量相对较少。本研究的改进算法的识别效果最优,除对枝芽遮挡情况的识别效果一般,对其他情况全部正确识别。针对枝芽遮挡问题,4 种算法表现一般。

3 结论

该研究提出1 种基于Faster R-CNN 的自然环境下‘玉露香’花芽识别方法,通过比较VGG_16、ResNet_50 和ResNet_101 等3 种基础网络下模型性能可知,以ResNet_101 为基础特征提取网络的模型性能最佳。

针对花芽尺度较小问题,在ResNet_101 的基础上结合特征金字塔网络,结果表明,花芽的识别精度提高了13.84%,每幅图像的平均检测时间仅为0.396 s,保持了实时性。

针对枝芽之间存在的遮挡问题,下一步的研究工作中还需要在现有模型的基础上继续进行改进,提高处理遮挡情况的准确率。

猜你喜欢
玉露花芽枝干
秋月梨枝梢生长发育影响花芽形成
何 芳
玉露香梨“赛美人”
2021年山西省果树花芽期病虫预报
寒露感怀
玫瑰或刺
玫瑰或刺
七夕
杨立惠
如何掌握苹果挂果树的花前复剪技术