论文部分内容阅读
高效的果实目标检测算法是水果采摘机器人中的一项关键技术。目前,由于不同光照、枝叶对果实的遮挡、多个果实间的重叠以及果实与茎叶之间的颜色相似性等自然条件的影响,果实的检测仍然是一项具有挑战性的任务。本文以自然环境下的柠檬果实为主要研究对象,为提高果实目标检测的准确性和实时性,提出了两种基于YOLOv3的柠檬检测改进算法。本文主要的研究工作如下:(1)树上柠檬图像数据集的构建。首先,在不同的天气条件下从不同的距离、方向采集柠檬种植园内的柠檬果实图像;其次,利用一些常见的图像变换方式对柠檬图像进行预处理,增加图像的多样性;最后,按照PASCAL VOC数据集的格式标注柠檬图像,并将标注好的数据集随机划分为训练集和测试集,分别用于目标检测模型的训练与测试。(2)基于YOLOv3的柠檬高精度检测改进算法。在不牺牲算法的检测实时性的前提下,为提高算法的检测精度,研究分析了YOLOv3算法,在此基础上提出了Lemon-YOLOv3算法。在骨干网络上,参照SENet(Squeeze-and-Excitation Network)和Res Ne Xt的思想,设计了SE_Res GNet34网络替换YOLOv3算法中的Dark Net53网络,通过增强模型的特征复用,减少了模型体积和计算量,使模型具备更高的检测精度和速度;在多尺度检测模块上,将部分卷积层改为Res2Net模块,加强多尺度特征的提取,进一步提高检测精度。实验结果表明,提出的Lemon-YOLOv3算法在柠檬测试集上的平均精度为96.61%,检测速度为99FPS,模型体积为100MB。与YOLOv3算法相比,精度和速度分别提高了4.04%和29FPS,模型体积减少了135MB。(3)基于YOLOv3的柠檬快速检测改进算法。为使柠檬检测算法适用于移动端或嵌入式设备,本文提出了一种基于轻量级网络的柠檬检测算法:Fast-YOLOv3,在不牺牲检测精度的前提下,尽可能减小模型体积和加快检测速度。采用目标识别速度快、精度高的轻量级网络Mobile Net V2取代YOLOv3算法的骨干网络Dark Net53完成柠檬图像的特征提取,增强多层特征信息的有效传递,大幅度减小模型体积,加快目标检测速度;将多尺度检测模块中的多个卷积层改为M-Res2Net模块,使模型具备更强的多尺度特征提取能力,提高检测精度;采用平衡L1损失函数和Io U损失函数改进YOLOv3损失函数,实现更加平衡的分类与定位训练,增大目标定位的准确性。实验结果表明,提出的Fast-YOLOv3算法在柠檬测试集上的平均精度为94.39%,检测速度达到159FPS,模型体积为44MB。与YOLOv3算法相比,精度和速度分别提高了1.82%和89FPS,模型体积减少了191MB。(4)为验证本文改进算法的有效性和适用性,采用不同的目标检测算法分别在自制的柠檬图像数据集、自制的芒果图像数据集和公开的田间葡萄图像数据集上进行对比实验。结果表明,与其它先进的目标检测算法如Faster R-CNN、Cascade R-CNN、SSD和YOLOv4等相比,提出的Lemon-YOLOv3和Fast-YOLOv3算法更好地平衡了检测果实目标的精度、速度及模型体积,能够满足对果实的高效检测任务。综上所述,本文提出的Lemon-YOLOv3和Fast-YOLOv3算法均具有良好的检测性能,能够对自然环境下的柠檬果实进行更快速的准确识别与定位,为实现柠檬和其它果实的机器采摘作业提供了参考。