APP下载

基于Faster R-CNN的番茄果实检测算法应用

2022-08-15张皓婷李明李敏闫凤祝鹏

农业与技术 2022年15期
关键词:番茄准确率图像

张皓婷李明李敏闫凤祝鹏

(1.内蒙古农业大学园艺与植物保护学院,内蒙古 呼和浩特 010018;2.内蒙古农业大学职业技术学院,内蒙古 包头 014095)

引言

番茄是人们日常生活中重要的蔬菜,是我国蔬菜实现周年生产和供应最主要的设施蔬菜之一[1]。番茄营养丰富,不仅含有丰富的维生素,还可以作为水果食用。随着人工智能的发展,高效准确地检测番茄果实以识别定位、机械采摘、计数和估产,是对减少人力投入而必需解决的问题。机器学习[2]是人工智能研究的重要分支,其通过算法让机器可以从外界输入的大量数据中学习到规律,从而进行识别判断[3];目前被广泛的应用在多个领域中,特别是在计算机视觉方面,机器学习利用深层次的神经网络从视频或图像中自动提取目标特征,将目标与非目标区分开来,检测出特定目标[4],其高效地解决了图像的分类和识别、目标跟踪和检测、语义分割等任务,且具有非常高的精度。对基于Faster R-CNN算法番茄果实目标检测进行研究和运用,在目标检测中能够有效区分目标特征与非目标特征,提高目标检测效率。本试验设计基于Faster R-CNN网络模型对番茄果实的识别,对番茄果实重叠、遮挡而造成的图像难以分割的问题进行分析,尽可能提高准确率与检测效率,以期实现机器学习对作物的识别和预测结果,实现技术在设施番茄果实识别方面的应用,达到省时省人力目的。因此,用该算法识别番茄果数具有重要的研究价值和意义,并可为丰富和优化设施番茄栽培生产提供一定的参考。

1 材料与方法

1.1 试验材料

供试作物为草莓番茄;拍摄设备为手机和相机;试验平台是在Win10操作系统下完成。

1.2 试验方法

试验番茄幼苗5月6日定植,种植密度为27700株·hm-2;在番茄苗期、结果前期、结果中期和结果后期分别进行图像采集。采集照片2000张,精心挑选出1002张各个时期的番茄果实样本。数据采集:拍摄时间2021年6月11日—8月10日13∶00—16∶00,光线良好。采集图像的原始尺寸为3120像素×4128像素,图像存储格式为JPG。

数据处理:首先进行裁剪处理,由于原始拍摄图像尺寸为3120像素×4128像素,远大于正常深度学习训练图像的大小,因此将原始图像进行裁剪,裁剪后的图像尺寸为780像素×1032像素。制作VOC格式的数据集:使用LabelImg标注工具对精选出的样本数据进行标注;该数据集是番茄目标检测的一个数据集,自制的VOC格式数据集中只包含1种带标签的待测目标,共有1002张训练图像和668张测试图像;分别将xml文件和xml对应图片存放在Annotations和JPEGImages文件夹中,Main文件夹开始为空,在数据集同级目录新建test.py生成4个txt文件。运行test.py后会在Main生成4个txt文件,至此,自制的VOC格式的数据集准备完毕。

图1 标注番茄图像和数据集建立

1.3 数据统计与分析

使用Faster R-CNN算法得出训练过程数据,使用详解PyTorch可视化工具visdom(一)进行数据统计和图形绘制。

本试验采用的测试标准为平均准确率均值(Mean Average Precision,mAP);计算所有待测目标的AP均值,即

mAP∶mAP=1/20∑k=120APk

2 结果与分析

人们虽然可以通过眼睛主观判断番茄果实和类型,但由于人力有限,识别费时费力,也对采摘机器人的自主采摘与收获没有任何帮助。图像处理技术的持续发展和不断突破已应用在各个领域,同时农业领域也渐渐取得许多可观的进展;人们只需采集番茄果实的图像数据,预处理数据,提取特征并将信息送至分类器进行训练并获取模型参数,就可以使用生成的模型来识别检测番茄果实及其类别[5]。机器学习中的深度学习[6]是人工智能的典型代表,其广泛应用于各个领域,特别是在计算机视觉领域,可以精准又高效地解决图像分类与识别、目标跟踪与检测、语义分割等任务。应用深度学习技术不仅可以节约时间和人力成本,还可以实时判断,并减少一些损失。利用深度学习中的Faster R-CNN神经网络自动提取目标特征,使得精准检测目标和训练模型可预测结果。

2.1 番茄识别流程

番茄果实识别是基于机器学习技术的目标检测,是从视频或图像数据中检测特定目标。在目标检测过程中能否根据所提取的特征区分特定目标与非特定目标是成功或失败的关键[4]。

在番茄图像的识别过程中,需要先进行预处理,再用图片标注工具labelImg标注出图像目标区域,为番茄果实的图像特征提取做准备,最后通过机器学习算法进行训练获得模型参数。在具体方式实现中利用Faster R-CNN网络模型提取目标特征,以获得准确的检测结果。Faster R-CNN网络模型运行番茄图像检测结构如图2。

图2 Faster R-CNN运行流程

此次采集的番茄图像制作的数据集,可在网络模型中训练并预测结果。目前,许多学者对该技术进行了研究,这些技术的实现与应用,既可以节约时间和精力,又可以实时做出判断。因此,用机器学习的方法来识别番茄果实具有重要的研究价值和意义。

2.2 基于Faster R-CNN算法运行结果

使用Faster R-CNN网络模型对番茄果实图像随机样本进行训练,获取训练过程中的准确率及其他相关数据,并对试验中采集的图像制作的数据集做训练和预测。样本数据单次运行结束如图3。

图3 Faster R-CNN运行过程图像

通过Faster R-CNN网络模型对随机样本数据集的运行训练、测试和验证,获取番茄数据集的真实数据。样本多次训练运行结果如图4,通过多次训练样本得到该网络模型初步数据。

图4 Faster R-CNN训练数据图像

基于Faster R-CNN算法的标注结果和测试结果图见图5、图6。通过运行得出数据结果,并对检测出的番茄果实数与实际生产测得的数据进行了比较。由图5、图6可知,由于Faster R-CNN算法模型本身精准率较高,基于Faster R-CNN算法运行的番茄数据集的测试直观效果较好,运行速度快、识别准确性较高;与实际生产过程中测得的番茄结果数相比只有严重遮挡和严重重叠的果实存在检测数量上的差别,总体来说可作为其他指标测定的基础。

图5 标记结果图

图6 测试结果图

2.3 番茄果实识别结果

通过运行后得出的数据,对实际生产中随机采集的番茄样本数据多次训练的检测结果准确率进行了比较;Faster R-CNN网络模型在开始训练之前进行参数的初始化,学习率(lr)设为0.001,rpn_Batch size为训练计算损失函数时IOU阈值大于0.7记为正样本(1),小于0.3则记为负样本(0),计算rpn的损失函数,Batch size可以设置的较大。roi分类是在RPN阶段区分前景和背景的,roi回归是RPN阶段初步调整。本文运行的网络中学习率(lr=0.001)设为0.001,Batch size为64,dropout参数设为0.5。参数设置如下表1所示。

表1 部分参数设置

训练过程rpn计算损失函数时曲线图见图7;训练过程roi计算损失函数时曲线图见图8。

图7 rpn分类损失与回归损失曲线图

图8 roi分类损失与回归损失曲线图

由于Faster R-CNN的网络模型是2步检测算法,该网络的损失函数分为4个部分,4个损失的总和就是最终的损失率;即训练结果得出损失率0.233929117;训练过程是不断地反向传播,更新参数的。经过对数据集在该网络模型上多次训练的分类回归,发现在实际生产中随机采集样本的番茄果实样本数据检测的损失曲线高度一致,且总损失率几乎相同;由数据可知,同一模型训练多次的回归损失函数值几近相同,且目前训练的损失率相对其他学者的损失率较小。

Faster R-CNN网络模型中mAP的计算主要流程:运行/tools下的test_net.py文件;test_net.py文件调用/lib/fast_rcnn/test.py文件中的test_net函数进行检测;在test_net函数检测完成后调用/lib/datasets/pascal_voc.py中的evaluate_detections函数计算mAP。经过运行,结果如图9所示。

图9 训练过程中测试集mAP变化图

从图9可以看出,Faster R-CNN网络训练完成后测试集的mAP值为0.908824;经过多次运行最初在实际生产随机采集的番茄样本数据中的番茄果实图像进行训练、测试和验证该模型的准确率,得到的mAP值在0.908824~0.908895范围浮动,即可得出测试集的检测准确率近似为90.89%。综上得出,运行Faster R-CNN网络模型时,损失函数下降速度快、变化幅度小,测试准确率曲线先减小,然后上下波动,再趋于平缓;Faster R-CNN网络模型检测番茄果实的损失率及准确率曲线波动幅度小,且Faster R-CNN网络具有较高的测试准确率。初步运用Faster R-CNN网络模型训练番茄果实图像样本数据检测方面,模型准确率约为90.89%,检测效果较好,可为后续测算提供支持。

3 讨论

王菽裕等[7]利用基于图像的牦牛目标检测方法,将现代技术和传统畜牧业结合起来,利用深度学习下的Faster R-CNN进行牦牛目标检测,实验结果及数据分析发现,该方法平均检测牦牛的精度在测试集可以到达83.3%,图像处理速率为毫秒级别,相较传统的人工牦牛计数的方式,在准确率和处理速率上均得到了巨大的提高。熊龙烨[8]构建了以Darknet53为特征提取网络的YOLO v3分类识别模型,该改进模型对于不同类型的柑橘果实平均识别准确率达86.42%,与原模型相比准确率和检测速度均有提高。Liu等[9]在YOLO v3的基础上提出了一个密集的体系结构,可以更加精准地匹配番茄,该模型的检测识别准确率达到94.58%。可以看出,检测不同的物体和使用不同的网络模型,准确率也不尽相同;本试验结果表明,基于Faster R-CNN网络模型对番茄果实的检测识别与其他学者研究相比准确度较高,在训练过程和预测过程中的结果和各项数据的显著性较优。本次试验利用机器学习下的Faster R-CNN网络模型进行番茄果实目标检测法测试直观效果较好,识别准确性较高,平均检测准确率为90.89%。基于深度学习网络模型在对物体进行目标检测时体现出不同的检测效果,一些学者认为,不同算法和不同采集图像数据的条件下具有不同的识别效果,主要受到复杂环境的影响;本研究在番茄图像中存在较多的果数重叠、茎叶遮挡环境方面造成的影响与前面学者观点一致,但本研究认为,不同模型在目标检测过程中,还可能与待测物体是否处于静止状态和待测物体本身大小有一定关系;在此次试验中Faster R-CNN网络模型的检测准确率可能受自制的数据集在其环境中运行拟合性低、番茄图像中存在较多果数重叠、茎叶遮挡和图像分割等多方面影响,后续试验中有待进一步改善和提高。

4 结论

本文提出的基于Faster R-CNN算法在番茄果实检测方面,由于使用的Faster R-CNN算法模型本身精准率较高,基于Faster R-CNN算法运行的番茄数据集的测试直观效果较好,经过对数据集在Faster R-CNN网络上多次训练的分类回归,发现识别检测训练的损失曲线高度一致,且总损失率几乎相同,同一模型训练多次的回归损失函数值近似相同,模型准确率为90.89%,识别准确性较高;目前采集的数据中存在果实遮挡和重叠问题,对识别检测数量上存在一定误差,总体来说可作为其他指标测定的基础。随着机器学习技术的不断开发、改进与完善,未来数据的增加、拍摄技术的升级以及对重叠部分的优化,基于Faster R-CNN算法对番茄果实识别在后续试验中应用会有新的进展,该算法的预测精度也将进一步提升。

猜你喜欢

番茄准确率图像
改进的LapSRN遥感图像超分辨重建
番茄炒蛋
秋茬番茄“疑难杂症”如何挽救
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
番茄果实“起棱”怎么办
有趣的图像诗
高速公路车牌识别标识站准确率验证法
遥感图像几何纠正中GCP选取