摘要: 【目的】提出一种基于改进YOLOv4 成熟番茄果实识别方法,以解决采摘智能机器人识别中广泛存在的因枝叶遮挡而导致识别不准确的问题。【方法】利用深度学习算法,在卷积神经网络YOLOv4 算法中引入轻量化模块Mobilenetv2、Mobilenetv3 和Ghostnet,对遮挡程度小于35%、35%~65% 以及超过65% 的成熟番茄果实进行特征提取和识别分析。【结果】3 种YOLOv4 轻量化模块对遮挡面积小于65% 的番茄果实的识别率超过90%。Ghostnet-YOLOv4 算法在3 种模块中识别率最高、表现最稳定,平均识别率为94.41%,检测速度为0.012 s;该算法对遮挡面积大于65% 的果实识别率明显优于其他2 种算法。3 种算法的识别率均随遮挡程度的提高而下降。【结论】Ghostnet-YOLOv4 算法识别率高、速度快,可用于番茄果实的识别,且优势更为明显。本研究可以为采摘机器人的采摘策略提供更好的思路和技术基础。
关键词: 番茄识别;YOLOv4;不同遮挡程度;轻量化网络
中图分类号: S641.209.9 文献标志码: A 文章编号: 1004–390X (2024) 04−0184−06
番茄作为世界上种植面积和产量最高的蔬菜之一,其生产越来越精准化、规模化、集约化,对智能化和自动化农业智能装备的需求也快速增长[1]。目前,番茄生产和加工过程中的人工成本仍较高,采摘过程劳动强度大、耗费时间长,对智能采摘需求更加迫切,应用智能采摘机器人对番茄进行精准识别和自动化采摘已成为当前研究的重点[2]。
国内外对番茄外观识别和品质检测的研究已取得一定进展。孙建桐等[3]对番茄图像进行Canny边缘检测操作后获得果实边缘轮廓点,基于几何形态学对果实轮廓点进行分组处理,利用迭代随机圆处理得到果实识别结果,正确率为85.1%,识别准确率为79.1%。李寒等[4]使用互相关函数进行快速和归一化处理,估计目标果实数量,排除了绿色根叶茎对果实检测识别的干扰。马翠花等[5]在未成熟番茄果实的识别研究中,提出基于密集和稀疏重构的显著性检测方法,正确识别率达到77.6%。
被遮挡番茄在图片中的表现形式与实际有差异,番茄不能完整呈现,识别难度增大[6]。RGB色差分割方法处理遮挡果实会有较大误差[7];椭圆拟合方法受番茄形状和大小不规则的影响,会出现较明显的果实漏识现象[8];SVM 支持向量机受正样本和负样本影响的概率较大,无法完成复杂环境中番茄果实的识别[9]。相较于单纯采用图像处理的方法,机器学习[10]中深度卷积神经网络对目标大、高维度特征的提取能力突出,适合复杂环境下检测识别番茄果实。卷积神经网络总体上有2 种方法。一种是两阶段目标检测方法,首先使用算法对已标注的样本进行处理得到目标检测候选框,再对制作好的样本进行卷积分类,其代表性算法主要有RCNN[11]、Fast-RCNN[12]和Faster-RCNN[13]。熊俊涛等[14]利用Faster-RCNN 深度卷积神经网络的目标检测算法对绿色柑橘进行识别检测,其模型泛化能力和预期精度均较好,但由于两阶段目标检测方法的计算机运行耗费大,检测时间长,实时性存在不足。另一种是一阶段目标检测方法,主要是把分类和回归进行结合,直接在坐标系中对算法分好的类别进行回归处理,代表性的算法主要有SSD[15]和YOLO[16]。薛月菊等[17]采用YOLOv2 深度卷积神经网络检测识别未成熟的杧果果实,在维持预期泛化能力和识别精度的同时对检测速度进行优化和提升;但其缺点是召回率明显降低,尤其是识别较密集果实时,会将聚集果实划入同一个识别框,且该方法需要高性能显卡,但当前农业机械设备的终端多采用性价比较高的消费性设备,即边缘设备[18],使其无法高效可靠地移植到边缘设备上。
已有应用深度学习识别成熟番茄果实的研究存在对实际作业需求考虑不足的问题。为便于机器人更好地识别不同遮挡程度的成熟番茄果实,进而做出科学采摘决策,本研究对YOLOv4 的轻量化卷积神经网络算法进行改进,以期对不同遮挡程度的成熟番茄果实进行准确识别。
1 材料与方法
1.1 图像采集
研究数据来自2021 年云南农业大学校内温室番茄大棚进行的试验,试验品种为云番27 号,图像拍摄时间为2021 年8 月8 日—8 月12 日的每天 14:0 0—16:0 0,为增加数据多样性,拍照分为远景和近景,远景距离果实600~800 mm,近景距离果实300~400 mm,远景和近景各采集左、中、右3 种角度图像,每个角度拍摄3 幅(图1) 以供后续筛选。数据采集方法和参数设置保持一致。
1.2 研究方法
本研究共采集照片4 000 张,首先对图片进行预处理,挑选出不同遮挡程度的成熟番茄果实,并用Labelimg 工具进行标注,利用不同轻量化特征提取网络对YOLOv4 进行改进,使用完全一致数据集在相同参数设置环境下进行训练。