APP下载

基于深度学习的机器人采摘葡萄方法研究

2022-07-21姜宇蔡同彪郎需林徐凯

机器人技术与应用 2022年2期
关键词:葡萄定位深度

姜宇 蔡同彪 郎需林 徐凯

(1深圳市越疆科技有限公司上海分公司,上海,201800;2深圳市越疆科技有限公司,深圳,518000)

0 引言

近30年来,科学技术快速发展,越来越多的智能化手段运用在农业领域,如智能农业地块识别、农作物生长预测、水果智能分拣等,农业进入智能化时代。“智能化农业”是国家大力支持的发展路线,也是农业未来的发展趋势。其中,智能化农机设备是实现农业智能化的重要手段[1]。

传统的采摘方法需要耗费大量的人力和物力。得益于计算机技术的快速发展,许多智能化的采摘方法被提出,如利用视觉方式定位葡萄采摘点(即葡萄梗)位置,然后让机器人进行采摘。因此,采摘的关键是确定葡萄梗位置,这需要用到葡萄梗的空间定位方法。Luo等人提出一种基于图像处理的葡萄梗的定位方法[2],即使两串葡萄有一定相互遮挡时也能够定位到各葡萄梗的位置。李元强等人提出基于卷积神经网络与轮廓模版匹配的方式定位图像坐标[3],再利用双目视差来计算葡萄梗深度信息,从而达到空间定位的目的。余承超等人利用双目视差算法及传统的图像处理算法来定位葡萄梗的空间位置[4]。Zhang[5]等人创新性地采用二阶段法定位葡萄梗的空间位置:首先利用Mask R-CNN[6]算法检测葡萄串的图像位置,然后根据建立好的葡萄串包围盒信息与葡萄梗位置信息的经验关系公式,估算出葡萄梗在图像上的位置,结合葡萄梗的深度信息通过相机数学模型进而算出葡萄梗的空间位置。上述几种方法在进行图像检测或者定位葡萄梗时,采用了传统的图像处理算法或者建立经验关系公式的方案,其中,传统图像处理算法易受到场景变换、光照变化等因素的影响,会导致最终检测结果产生偏差;而经验关系公式建立的只是部分情况下葡萄串与葡萄梗位置关系,不具有普遍性,这会导致最终的采摘成功率不高。

与传统图像处理相比,深度学习算法的环境适应性更强,泛化能力更好,而且目前其发展迅速,各种网络模型均可供选择。因此本文提出一种基于深度学习的机器人采摘葡萄的方法,首先通过预先训练好的目标检测算法定位葡萄串在图像上的位置,然后将葡萄串切片图输入到葡萄梗定位网络中,得到葡萄梗在图像上坐标,结合葡萄梗的预估深度信息由相机数学模型可以计算出葡萄梗在相机坐标系下的3D坐标,最后通过手眼转换关系将该3D坐标转换到机械臂坐标系下,机械臂移动到对应点位,进行采摘操作。同时,本文搭建了一种葡萄采摘机器人系统,并将提出来的方法在模拟和实际场景下均做了测试,最后验证了该方法的可行性,实验表明利用该方法采摘葡萄成功率较高。

1 葡萄采摘机器人系统

图1为葡萄采摘机器人系统。机器人采摘葡萄的流程是:移动机器人行走过程中深度相机对葡萄进行扫描,扫描到成熟的葡萄后,机器人停止,然后利用深度相机拍照,经过一系列计算后,机械臂移动到相应的点位,剪切夹持装置收紧,剪刀对葡萄梗进行剪切,完成一个采摘的动作。

2 葡萄梗3D定位

葡萄梗的3D定位步骤是:首先利用目标识别算法识别葡萄串位置,然后再用定位网络定位葡萄梗的2D位置,最后根据相机数学模型估算葡萄梗的3D位置,流程图如图2所示。

2.1 葡萄串识别检测

本文采用Yolov5网络[7]识别葡萄串。该算法是目前目标检测的主流算法之一,其训练简单、检测速度快、检测效果好。

如图3所示,Yolov5网络的输入是图像帧,输出是葡萄串在图像上的位置框与类概率,其中位置框表示葡萄串在图像上的位置信息,类概率表示算法识别为该类别的概率大小。

图3 葡萄串识别定位流程图

2.2 葡萄梗2D定位

葡萄梗2D定位采用修改的MobileNetV2结构[8]来实现。本文对MobileNetV2网络最后的全连接层进行修改,输出只有两个值,修改后网络的输入是RGB图片(像素大小为224×224),即葡萄串在原图上的切片图,其大小需要缩放到224×224,输出的是葡萄梗在切片图像上的坐标的归一化后的结果,记作,计算方式如下:

如图4所示,葡萄梗定位网络的输出是梗在切片图上的图像坐标,需要转换到原图上的坐标,计算方式如下:

图4 葡萄梗定位流程图

2.3 葡萄梗3D位置估计

由于葡萄梗在图像上通常显示地比较细,因此一般的3D相机无法直接获取到梗的深度信息,因此需要对葡萄梗进行深度估计。本文取葡萄目标框内的一部分区域的深度信息的平均值,结合预设经验偏移值,最终确定每一个葡萄梗的深度信息。

由于采摘的执行机构是机械臂,因此需要把葡萄梗的点位坐标转换到机械臂坐标系下,记作,计算公式如下:

3 实验与测试

3.1 网络模型的训练

本文提出来的检测方式是两个深度学习网络串联的形式,训练方式为单独训练,训练图片分为训练集与数据集。

Yolov5网络的图片数据集包括实际场景下采集的图片和仿真葡萄图片。如图5所示,左边为实际采集的数据图片(仅包含成熟葡萄串),右边为模拟场景下采集的数据图片(青色代表未成熟,深色代表成熟)。其中,实际图片共646张,其中560张作为训练数据集,剩下86张作为测试数据集;仿真图片共1710张,其中1500张加入训练数据集,剩下210张加入测试数据集。

图5 目标识别网络数据集示例

同样,葡萄梗定位网络的图片数据集也包括两种场景下的数据集,如图6所示,左侧三张图为实际场景下的切片图数据,共628张,其中560张作为训练集,剩下的68张作为测试集; 右侧三张图为模拟场景下的切片图数据,共2251张,其中2000张作为训练集,剩下的251张作为测试集。

图6 葡萄梗定位网络数据集示例

上述两个网络训练结束的标准是其相应的损失函数曲线收敛。测试图片如图7所示,其中方框表示目标葡萄的检测框,内部的细线小方框表示深度信息估算区域,蓝色的点为检测到的葡萄梗的位置信息,可以看出本文提出来的方法能够较好地检测定位到葡萄梗的图片坐标信息。

图7 测试样例

3.2 实验与结果分析

得到葡萄梗在机械臂坐标系下的位置信息后,采摘机器人的末端夹持装置便会张开,然后移动到葡萄梗的位置,夹持装置夹紧葡萄梗,剪刀进行剪切工作。

为了提升采摘的准确率,本文对末端夹持装置进行了优化设计。如图8所示,末端夹持装置张开开口距离约2.5cm,而葡萄梗的直径约6mm,因此左右定位容差接近0.95cm;同样,夹片设计长度约6cm,深度容差2.7cm。这样的设计能够大大增加采摘的成功率。

图8 末端夹持装置俯视图

为了可以重复利用仿真葡萄串,本文在模拟测试时去掉了剪切操作。每次实验由参与者随机将葡萄挂在仿真葡萄藤上,然后启动机器人,当机器人识别到未成熟葡萄时不进行操作,当识别到成熟葡萄时进行采摘操作,观察人员通对采摘的成功与否进行判断。在模拟场景下,本文共随机挂葡萄串300次,其中青色葡萄串50串,深色葡萄串250串。

通过实验笔者发现,青色葡萄串(判定未成熟)的识别率为100%,深色葡萄串(判定成熟)的识别率也为100%;对于采摘率,由于青色葡萄串(不采摘)可以被无误识别,因此其误采摘率为0,深色葡萄串(需采摘)采摘成功234次,采摘成功率为93.6%,而16次未能采摘成功的大部分原因是树叶的遮挡,小部分原因为葡萄梗的3D定位有偏差。

对上述实验结果分析可知:Yolov5网络对于葡萄串的识别效果较好,在模拟场景下测试能够达到100%的识别率,可见其模型泛化能力很强。本文提出的葡萄采摘方案虽然在模拟场景下有着较高的采摘成功率,但也存在缺点,即在葡萄被遮挡的情况下,采摘的成功率几乎为0。但是笔者发现,某些葡萄被遮挡的情况下采摘不成功并不是葡萄梗的位置定位不准确,而是夹持装置在移动过程中被树叶挡住,夹不住梗的位置。

4 结论

本文提出了一种基于深度学习的葡萄采摘方法,利用两个卷积神经网络,结合检测的深度信息,估算葡萄梗的空间位置;并设计了一种葡萄采摘机器人。通过模拟场景下的葡萄采摘实验,结果表明本文提的方法有较高的识别率与采摘成功率,同时也验证了该方法的可行性。

当然该方法也存在缺点,即葡萄被遮挡的情况下会导致机器人采摘失败,而实际的葡萄采摘场景下的遮挡更为复杂,因此未来的研究方向是针对遮挡下的葡萄采摘方法进行研究,例如先剪切树叶,再剪切葡萄串的方式。

猜你喜欢

葡萄定位深度
定位的奥秘
四增四减 深度推进
深度理解一元一次方程
当葡萄成熟时
《导航定位与授时》征稿简则
银行业对外开放再定位
简约教学 深度学习
少儿智能定位鞋服成新宠
深度挖掘