黄 铮,吴 尧,赖一波,周 杰,赵明朗,喻擎苍
(浙江理工大学 计算机科学与技术学院,杭州 310000)
在农业生产活动中,嫁接技术是一种有效提高果实产量、提高植物抗病虫害能力的技术,是一种运用广泛、运用历史悠久的技术。植物嫁接处由嫁接苗(接穗)、被嫁接的砧木苗和嫁接夹组成。嫁接时,用嫁接夹将接穗和砧木苗的创面贴紧并包裹住,以提供一个愈合增生的环境,由此嫁接过程完成[1-2]。因此在植物嫁接过程中,嫁接夹的作用是非常重要的。
为了解决人工嫁接效率低、成活率低的问题,19世纪80年代以来,国内外发明并商用了多种自动化嫁接机[3],这些自动化嫁接机虽然提高了不少嫁接效率,但是嫁接夹的分拣整理仍然需要刚性振动盘或者人工整理完成。为了给嫁接机提供整齐有序的嫁接夹,李军[4]等人设计了一种全自动蔬菜嫁接夹输送机构,整个机构通过刚性振动盘完成嫁接夹的朝向整理,由气缸驱动完成自动供夹,整个机构由自动排序供夹机构、嫁接夹输送台、直线运动机构三部分组成,此机构存在机械环节较多、体积较大的问题,当嫁接夹种类更改时,机械机构需要整套定制更换。2020年,刘凯[5]等人提出的茄果类种苗半自动嫁接机,将流水线思想引入嫁接机设计中,优化了嫁接机作业时序,将夹持、切削、拢苗、对接、上夹和下苗6个工序分配至4个工位,但是其嫁接夹上夹操作依然需要人工作业,自动化程度有待提高。由上述研究成果可以看出,嫁接机中嫁接夹的自动分拣整理问题是提高嫁接机自动化程度的重要一环,但是目前研究仍然需要使用刚性振动盘或人工参与。将嫁接夹的分拣过程改造成机械臂自动化分拣可以节省人力、替代刚性振动盘的复杂输送结构、提高嫁接夹供给的灵活性,同时机械臂可以在整体嫁接过程中进行多任务复用。
利用机器视觉来辅助完成嫁接夹的自动化分拣是一个成本较低、精度较高的方法。苏进发[6]对多种光源打光效果进行分析,使用了碗状光源打光方式,增强了工件与背景对比度,提高了工件的特征表现,其在研究中指出背光源方案可以用于物体边缘检测,但是会丢失物体表面信息。邵坤[7]使用感兴趣区域(ROI,region of interest)提取的方法,降低了图像处理计算量,避免了非ROI区域的干扰,使用线性灰度变换法增强工件图像的对比度,使用了中值滤波与均值滤波组合的方法对工件图像去噪和平滑处理,这些预处理为图像识别提供了良好基础。赵晖[8]提出一种嫁接夹的视觉识别方法,其使用HSV色彩空间对图像进行阈值分割,通过支持向量机(SVM,support vector machine)算法对嫁接夹进行姿态分类,通过轮廓链角分析方法对抓取点进行定位,抓取点平均误差为2.1个像素,但是其分类算法需要人工选取图像特征,普适性有待改进。
本文设计了一种更加适应自动化场景的嫁接夹,设计了针对此嫁接夹的机器视觉算法,使用背光源打光方式,使用Hu矩对嫁接夹轮廓链进行分类,提出根据嫁接夹轮廓链角分析的方法来定位嫁接夹的抓取点的像素坐标,根据抓取点位置与轮廓链质点位置计算嫁接夹朝向角度,为后续机械臂自动化分拣抓取嫁接夹提供准确的数据支持。
目前传统的嫁接夹多适用于人工手动拿取,如图1所示。这类嫁接夹夹尾硬度低,不适合机械夹爪抓取;夹子个体之间容易勾连,机械臂无法快速将其分离;夹子在独立随机状态下存在直立、倒立、侧立等不适合机械臂自动化抓取的状态。对此类传统嫁接夹进行自动化分拣,会使得机械臂终端抓取设计结构复杂度提高,夹子随机状态过多导致机械臂抓取效率降低。
图1 传统嫁接夹
因此,本文设计了一种适应机械臂自动化抓取的嫁接夹,如图2所示。新型嫁接夹在夹头部分设计了管状结构,能够更好的包裹住植物嫁接点,提高植物嫁接点的局部稳定性。在夹尾部分特别为机械夹爪设计了夹取槽,因此机械臂终端抓取机构设计复杂度可以降低。新型嫁接夹的整体设计使得夹子在独立随机状态下只能处于平倒状态,有助于提高机械臂自动抓取效率。
图2 新型嫁接夹
在机器视觉中,光源可分为正光源和背光源两大类[9]。正光源的光线从顶部向工件表面发射,主要用于检测工件表面特征,但是物体周围会产生大量阴影;背光源的光线从工件底部向顶部发射,主要用于检测工件的轮廓特征,可以很好的消除工件在噪声光源下阴影产生的影响[10],为拍摄工件图像带来清晰锐利的轮廓特征。自然光下拍摄的嫁接夹周围存在阴影,如图3(a)所示,影响提取的轮廓图像的准确性。本文采用背光源作为机器视觉的打光方式,如图3(b)所示,嫁接夹拍摄出来的轮廓相比自然光下拍摄出来的轮廓更加清晰,图像整体噪点更加少。
图3 自然光与背光源图像对比
提取目标物体的轮廓链指掏空目标物体内部的点[11],外部形成一条单像素封闭连通的链条。轮廓链代表了目标物体的外部轮廓结构,在图像处理与分析环节中,在计算速度上,相对于目标物体全部像素进行处理,具有处理速度快的优点。在背光源下获得的图像具有较高的对比度,因此本文采用二值化阈值分割[12]进行图像形态学分割,然后采用边界跟踪法[13]获得各个目标物体的轮廓链,结果如图4所示。
图4 轮廓链
图像矩是利用统计学中矩的原理对图像中的像素进行几何矩计算[14],在图像处理与分析领域中,通常用来分析图像分割后每个子区域的图像对象的特征信息,包括子区域的面积、几何中心等特征。将图像矩应用于轮廓链像素,可以获得轮廓链的特征信息。二维图像原点矩的公式为:
(1)
式中,x,y为像素坐标,i,j为矩的阶数,m为二维原点矩。
由式(1)可以得到图像的零阶矩以及一阶矩,由此可以得到图像的质心坐标,其表达式为:
(2)
图像中心矩表示了目标区域中的像素相对于目标区域的质心具备一种目标区域平移不变性的特征,由式(2)的质心计算结果可以计算图像的中心矩,其表达式为:
(3)
式中,x,y为像素坐标,i,j为矩的阶数,μ为中心矩。
归一化中心距相对于中心距进一步拥有了目标区域尺度不变性的特征。对式(3)进行归一化处理,即可得到归一化中心矩,其表达式如式(4):
(4)
式中,i,j为矩的阶数,η为归一化中心矩。
M.K.Hu[15]提出了一组具有缩放、旋转、平移不变的图像矩,称为Hu矩,因其拥有良好的不变性被广泛用于图像处理与分析领域。常用的7个Hu矩由二阶归一化中心矩和三阶归一化中心矩非线性组合而成,其表达式为:
h1=η20+η02
h3=(η30-3η12)2+(3η21-η03)2
h4=(η30+η12)2+(η21+η03)2
h5=(η30-3η12)(η30+η12)[(η30+η12)2-3(η21+η03)2]+
(3η21-η03)(η21+η03)[3(η30+η12)2-(η21+η03)2]
h6=(η20-η02)[(η30+η12)2-(η21+η03)2]+
4η11(η30+η12)(η21+η03)
h7=(3η21-η03)(η21+η03)[3(η30+η12)2-(η21+η03)2]-
(η30-3η12)(η21+η03)[3(η30+η12)2-(η21+η03)2
Hu矩的阶数越高,其值的数量级就越低,导致h1和h7的的数值范围相差较大[16],从而导致高阶Hu矩对整体Hu矩的影响被低阶Hu矩覆盖。为了统一7个Hu矩的数值范围,分别对7个Hu矩进行对数变换,其表达式为:
Hi=lg|hi|,i=1,2,...,7
(5)
由于Hu矩具有良好的不变性质,因此在改变相机与物体的距离、旋转嫁接夹后,图像依然能够得到相似的值。根据此性质,结合上文得到的嫁接夹轮廓链,可以很好地区分工作台上的零散嫁接夹和堆积嫁接夹。
将7个Hu矩组合成为一个7维向量,称为Hu矩向量,首先计算模板嫁接夹轮廓链的Hu矩向量记为T,然后根据式(6)计算每个目标物体轮廓链的Hu矩向量与模板轮廓链的Hu矩向量的欧几里得距离D,称为匹配值。若目标物体轮廓与模板轮廓越为相似,则匹配值越低;若目标物体轮廓与模板轮廓链为不同,则匹配值越高。
(6)
计算图4中的每个轮廓链的Hu矩匹配值,结果如表1所示。
表1 轮廓链匹配值
从表1可以初步看出,零散嫁接夹的轮廓链与堆积嫁接夹的轮廓链的匹配值存在较大的差异,而且零散嫁接夹的轮廓链在旋转之后的匹配值依然变动不大。
为了更具有普适性,本文在多种相机分辨率、多种尺度、多种嫁接夹旋转角度下拍摄了25张零散嫁接夹以及25张堆积嫁接夹图片,对每张图片中的轮廓链计算匹配值,结果如图5所示。
图5 实验匹配值
从图5可以初步看出,零散嫁接夹与堆积嫁接夹的匹配值存在明显区别,存在一个中间值可以将两者区分开,如图5中的虚线所示,大于虚线值为堆积嫁接夹,小于虚线值为零散嫁接夹。
将零散嫁接夹匹配值的最大值记为dA,将堆积嫁接夹匹配值的最小值记为dB,中间值m的计算方式如下:
(7)
将轮廓链的类别记为y,将零散嫁接夹的类别视为1,将堆积嫁接夹的类别视为0,轮廓链的分类方法如下:
(8)
在嫁接夹的自动化分拣过程中,嫁接夹准确的抓取点坐标信息是引导机械臂运动的关键因素,嫁接夹抓取点如图2所示,机械臂需要根据嫁接夹抓取点坐标信息进行逆运动学运算来完成整个嫁接夹的自动分拣,机械臂终端抓取如图6所示。本章节使用基于轮廓链角分析以及非极值抑制的方法,完成图像中嫁接夹抓取点所在像素坐标定位。
图6 抓取示意图
观察图2抓取点附近的局部图像,可以发现抓取点处的附近的轮廓与轮廓中轴存在特殊的角度关系,如图7所示。
图7 角度关系
由于嫁接夹是一个固定的实物,随着拍摄尺度不同,其轮廓形状不会产生过大的变化,因此在图7中θ1和θ处于一个稳定的值附近,可以将其设定在以下范围内:|θ1|=60°±3°,|θ|=60°±3°。本文根据中轴向量以及抓取点附近的轮廓特征来对抓取点像素进行定位。
根据轮廓链的图像矩获得轮廓链的质心坐标[17],根据轮廓链最小外接矩形[18]获得轮廓的中心坐标,根据轮廓链的质心和轮廓的中心获得中轴向量。
二值图像的质心是指图像中存在一个点c,使得每个有效像素指向点c的向量相加结果为零向量。对于质心的x坐标,每个质心左边有效像素的x值等于每个质心右边有效像素的x值;对于质心的y坐标,每个质心上边有效像素的y值等于每个质心下边有效像素的y值。体现到轮廓链像素时,将轮廓链中的每个像素代入式(1)和式(2)即可得到轮廓链的质心坐标。
轮廓的中心坐标与轮廓链的质心坐标不同,相对于图像轮廓的外接矩形来说,图像的质心随着x方向和y方向图像的面积分布而变化,如某个方向的面积越大,则质心的坐标更偏向某个方向。体现在轮廓链中,则是轮廓链x方向或y方向越宽,则轮廓链的质心坐标对应更偏向x方向或y方向。嫁接夹轮廓链宽度在x方向或y方向往往不是均匀分布的,因此嫁接夹轮廓链的质心相对于外接矩形的中心往往存在一个偏移向量,这个偏移向量就是嫁接夹轮廓链的中轴向量。
目标图形外部存在一个矩形框使得目标图形完全处于矩形框内部,当这个矩形框面积最小时,这个矩形框称为最小外接矩形,最小外接矩形的中心坐标就是轮廓的中心坐标。最小外接矩形的求解步骤如下:
1)根据格雷厄姆算法求解轮廓链的凸包[19],获得凸包的顶点集合。
2)计算凸包顶点的4个极值,记录这4个顶点为Rxmin,Rxmax,Rymin,Rymax,将这4个顶点构成的矩形视作动态矩形,同时动态记录矩形的最小面积。
3)旋转动态矩形直到与矩形的一条边与凸包的一条边重合。
4)将动态矩形的面积与记录的最小面积做比较,若动态矩形的面积更小,则更新最小面积值,并记录此时矩形顶点。
5)重复步骤3)与步骤4),直到动态矩形的旋转角度总和超过90°。
6)最小面积的动态矩形就是所求的最小外接矩形。
到此分别得到了两个点,分别是轮廓链的质心坐标和轮廓的中心坐标,将轮廓链的质心坐标视为中轴向量起始点,将轮廓的中心坐标视为中轴向量终止点。
计算得到中轴向量后,需要对轮廓链进行特征提取[20]来定位抓取点像素。本文提出一种三点步进扫描轮廓链的方法提取轮廓链中每个像素的链角。分别将3个点记作A、B、C,点之间位于轮廓链中的像素间隔个数记作间隔gap,初始状态下A点位于轮廓链的第0个像素,B点位于轮廓链的第0+gap个像素,C点位于轮廓链第0+2*gap个像素,A、B、C点以步长为1个像素步进扫描轮廓链,当C点扫描完轮廓链最后一个像素时,C点位置从第0个像素开始计算,B点同理;当A点扫描完轮廓链最后一个像素时,代表扫描结束。此扫描方法可以获得轮廓链各个像素点的链角,即直线AB和直线BC的夹角θ,如图8所示。
图8 轮廓链扫描过程
从图8可以看出,间隔gap影响扫描结果,间隔过大,直线段AB和直线段BC的长度变长,当扫描到轮廓链上的特征点时,会将特征点局部覆盖掉,导致特征点处的链角提取失败;间隔过小,扫描到的链角的噪声信息变大,影响链角提取精度。由于嫁接夹是一个固体工件,单个嫁接夹的轮廓链中像素个数与工件图像尺度存在稳定的比例关系,因此本文将间隔gap与嫁接夹轮廓链像素个数设置为比例关系。经过多次实验,将间隔值设置为嫁接夹轮廓链像素个数的0.025倍。
结合轮廓链角提取方法以及图7的角度关系,判断抓取点所在区域的方法如图9所示。
图9 链角关系
通过三点步进扫描轮廓链方法筛选出轮廓链中所有满足以上链角关系的像素点,将这些像素点放入候选像素点集合。
候选像素点集合中绝大部分是无效像素,只有一个像素是目标抓取点像素,如图10所示,抓取点周围的像素均满足链角范围要求,而真正的抓取点只有一个像素,因此需要在候选像素点集合中进一步找出最终的抓取点。
图10 候选像素点集合
本文采用非极值抑制算法提取局部抓取点像素[21]。对于本文的抓取点提取任务,算法步骤如下:
1)在候选像素点集合中找出链角最小的像素点P。
2)从候选像素点集合剩余像素点中剔除像素点P直径为10的范围内的像素点。
3)重复步骤1)和步骤2),直到候选像素点集合中剩余像素点个数为0。
上述步骤1)得到的像素点P即为抓取点像素。对图3自然光与背光源图像对比进行轮廓链分类、轮廓链角分析筛选和非极值抑制算法计算得到的抓取点如图11所示。
图11 抓取点提取结果图
上文已经获得了抓取点的像素坐标,还需要提供一个朝向角度,嫁接夹朝向角度是引导机械臂终端旋转的重要参数。本文结合嫁接夹轮廓链的质点坐标以及嫁接夹抓取点像素坐标计算嫁接夹朝向角度。
将嫁接夹朝向所在方向视为朝向向量方向,朝向向量与嫁接夹两个抓取点的连线垂直,但是只有两个抓取点坐标信息是不够的,无法得到朝向角度的正负方向。利用两个向量叉乘结果的正负,可以获得两个向量之间是逆时针还是顺时针关系的原理,结合式(2)计算得到的轮廓链质心坐标即可计算最终的朝向角度。
记两个抓取点分别为p1和p2,质心坐标为c,两个抓取点指向质心坐标的向量分别为p1c和p2c,如果p1c×p2c结果为正方向,则朝向角度等于p1p2的角度加上90°,如图12(a)所示;如果p1c×p2c结果为负方向,则朝向角度等于p1p2的角度减去90°,如图12(b)所示。
图12 朝向角度计算
p1p2的方向角度计算方法如下:的方向角度计算方法如下:
(9)
对于式(9),存在2个特殊情况,当△x=0时,arctan计算无解,此时朝向角度判断方法如下:
(10)
为验证本文视觉检测方法的准确性,本文通过笔记本电脑读取并保存USB相机拍摄的图像,使用C++语言对图像按照本文的视觉检测方法进行处理。实验装置主要由USB相机、笔记本电脑、背光源工作台、固定支架以及嫁接夹组成,如图13所示。
图13 实验装置
在背光源工作台上随机摆放10个嫁接夹,USB相机调整到4 080*3 060分辨率,进行5组实验,每组实验拍摄一张图片,每组实验拍摄完毕后将10个嫁接夹重新打乱随机摆放。
实验图片获取完毕后,使用本文的视觉检测方法进行检测。首先使用本文提到的基于Hu矩的方法区分工作台中零散嫁接夹与堆积嫁接夹,根据图5得出的结论,将轮廓链Hu矩中间匹配值设置为3.1,目标物体实际匹配值小于3.1则记作零散嫁接夹,目标物体实际匹配值大于等于3.1则记作堆积嫁接夹。每张图片中轮廓链分类成功率计算方法如下:
(11)
5组实验的嫁接夹轮廓链分类统计结果如表2所示,实验结果显示本次实验中本文的轮廓链分类方法与人工标注对比成功率为100%,实验结果说明本文使用的基于Hu矩的轮廓链分类方法可以有效地将零散嫁接夹与堆积嫁接夹进行分类。
表2 零散嫁接夹分类结果统计
获得零散嫁接夹轮廓后,接下来使用本文基于轮廓链角分析的视觉检测方法,对每张图片中的零散嫁接夹进行抓取点定位和朝向角度计算,与人工标注的抓取点像素点位置与朝向角度对比,结果如表3所示,其中人工标注的角度按照式(9)和式(10)计算。
表3 抓取点和朝向角度统计结果
对表3的数据进行分析,记人工标注抓取点坐标与计算抓取点坐标像素之间的直线距离为抓取点定位误差,其计算表达式为式(12)。计算结果得出平均定位误差为2.16个像素,定位方差为0.80个像素。
(12)
式中,△x为计算得到的抓取点坐标与人工标注抓取点坐标的x方向的差值,△y为计算得到的抓取点坐标与人工标注抓取点坐标的y方向的差值。
(13)
根据式(13)计算得到朝向角度与人工标注朝向角度平均误差为0.40°,方差为0.09°。每个零散嫁接夹平均定位计算时间为6 ms。
表3的实验结果以及实验数据分析表明,本文的视觉检测方法可以准确并稳定地对零散嫁接夹的抓取点进行视觉定位以及对零散嫁接夹的朝向角度进行视觉检测。
本文针对目前现代农业嫁接机中,嫁接夹的分拣自动化程度低的问题,设计了一种适合应用于自动化场景的嫁接夹,提出的基于机器视觉方法对抓取点定位和嫁接夹朝向角度进行检测方法,在本文设置的实验中,实验结果显示零散嫁接夹抓取点平均定位精度达到2.16个像素,方差达到0.80个像素;零散嫁接夹朝向检测平均精度达到0.40°,
方差达到0.09°。在实际工业应用中,对于本文方法分类得到的堆积嫁接夹,可以进行下一步处理,例如使用通用柔性振动盘振散成多个零散嫁接夹或者使用通用机械臂将堆积嫁接夹摆散成多个零散嫁接夹等;对于本文方法分类得到的零散嫁接夹,本文能够为下一步机械臂运动提供准确的抓取点坐标以及目标朝向。因此本文的视觉检测方法有助于提高嫁接机整体自动化程度,具有实用价值。