机器人防损伤采摘葡萄的自动定位方法转让专利

申请号 : CN201510460276.2

文献号 : CN104992448B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗陆锋孙爽王金敏李国琴张宇宋西平朱娜

申请人 : 佛山科学技术学院

摘要 :

本发明公开了一种机器人防损伤采摘葡萄的自动定位方法,包括以下步骤:左右摄像机对葡萄进行图像采集,得到的葡萄珠圆心和摘切点的平面坐标,通过计算得到葡萄珠圆心和摘切点的三维空间坐标。求解葡萄珠圆心的三维空间坐标到葡萄簇中心轴Y的距离,在每个步长内,对距离Y轴最远的葡萄珠轮廓进行拟合,得到最大的葡萄簇截面轮廓,将葡萄簇截面轮廓绕Y轴旋转360°,得到葡萄簇三维空间域,在躲避葡萄簇三维空间域的前提下,机器人的机械手由当前位置运动至所述摘切点的三维空间坐标对应位置,进行采摘。该方法可以精确定位摘切点,并且防止机械手在采摘过程中损伤葡萄珠。

权利要求 :

1.一种机器人防损伤采摘葡萄的自动定位方法,其特征在于,包括以下步骤:

(1)对机器人的左右摄像机进行标定,然后通过所述左右摄像机采集葡萄的图像,得到RGB彩色图像A和B,分别对所述图像A和B进行校正后,得到图像C和D;

(2)将所述图像C转化为颜色空间图像,提取所述颜色空间图像的分量,得到分量图,对所述分量图进行中值滤波,得到图像E;

(3)对所述图像E进行阈值分割,得到二值图像,对所述二值图像进行形态学腐蚀和膨胀运算,得到形态学去噪后的图像G;

(4)提取所述图像G的最大连通区域,求解所述最大连通区域的重心(xc,yc)、轮廓极值点和轮廓最大左右长度,确定葡萄果梗感兴趣矩形区域,对所述葡萄果梗感兴趣矩形区域进行边缘提取,得到葡萄果梗感兴趣矩形区域边缘的二值图像,对所述葡萄果梗感兴趣矩形区域边缘的二值图像进行霍夫直线检测,得到线段,求解所述最大连通区域的重心到所述线段的距离Dm,其中m=1,2,3……N,确定距离最小的所述线段的中点为摘切点平面坐标(xl,yl);

(5)根据步骤(4)中所述的最大连通区域的重心、轮廓极值点和轮廓最大左右长度,得到葡萄簇轮廓外接矩形区域,对所述葡萄簇轮廓外接矩形区域进行边缘提取,得到葡萄簇轮廓外接矩形区域边缘的二值图像,对所述葡萄簇轮廓外接矩形区域边缘的二值图像进行霍夫圆检测,得到多个葡萄珠圆心平面坐标(xclm,yclm)和半径rm,其中m=1,2,3……N;

(6)对图像C中所述摘切点平面坐标(xl,yl)在图像D中进行立体匹配,得到所述图像D中的摘切点平面坐标(xr,yr)及所述图像C和图像D中摘切点的视差dc,将所述摘切点平面坐标(xl,yl)和(xr,yr)转换为三维空间坐标(Xc,Yc,Zc);对图像C中所述葡萄珠圆心平面坐标(xclm,yclm)在图像D中进行立体匹配,得到所述图像D中的葡萄珠圆心平面坐标(xcrm,ycrm)及所述图像C和图像D中葡萄珠圆心的视差dm,将所述葡萄珠圆心平面坐标(xclm,yclm)和(xcrm,ycrm)转换为三维空间坐标(xm,ym,zm),其中m=1,2,3……N;

(7)根据步骤(5)中所述葡萄珠圆心的三维空间坐标的对应位置,求解全部所述葡萄珠圆心的三维空间坐标(xm,ym,zm)到葡萄簇中心轴Y轴的距离Lm,根据步骤(5)中所述葡萄珠半径rm确定葡萄珠直径,以葡萄珠直径最大值的1.5倍为步长,在每个所述步长内,对距离Y轴最远的葡萄珠轮廓进行拟合,得到最大的葡萄簇截面轮廓,将所述葡萄簇截面轮廓绕Y轴旋转360°,得到葡萄簇三维空间域;

(8)在躲避步骤(7)中所述葡萄簇三维空间域的前提下,机器人的机械手由当前位置运动至所述摘切点的三维空间坐标对应位置,进行采摘;

步骤(6)中,用以下方法对图像C中平面坐标在图像D中进行立体匹配:

1)以所述图像C中的点(x,y)为中心定义一个边长为n的正方形窗口,以所述图像D中的点(x-d,y)为中心定义一个边长为n的正方形窗口;

2)通过公式(3)求解相似度值NCC(d)最大值所对应的视差d:

式中,I1(x+i,y+j)指所述图像C中点(x+i,y+j)的灰度值, 指所述图像C中以点(x,y)为中心定义的正方形窗口的灰度值的平均值,I2(x+i-d,y+j)指所述图像D中点(x+i-d,y+j)的灰度值, 指所述图像D中以点(x-d,y)为中心定义一个边长为n的正方形窗口灰度值平均值;

3)得到图像D中的平面坐标(x-d,y)。

2.根据权利要求1所述的自动定位方法,其特征在于,在步骤(2)中如将所述图像C转化为HSI颜色空间图像,则提取所述HSI颜色空间图像的H分量;如将所述图像C转化为YCbCr颜色空间图像,则提取所述YCbCr颜色空间图像的Cr分量。

3.根据权利要求1所述的自动定位方法,其特征在于,运用大津法对步骤(3)中所述图像E进行阈值分割。

4.根据权利要求1所述的自动定位方法,其特征在于,通过公式(1)求解步骤(4)中所述的最大连通区域的重心:式中,(xc,yc)是所述最大连通区域的重心平面坐标,f(x,y)是步骤(3)中所述二值图像中的点(x,y)的像素值。

5.根据权利要求1所述的自动定位方法,其特征在于,步骤(4)中所述葡萄果梗感兴趣矩形区域的长度为0.6Lmax,高度H为0.5|yc-yt|,中心坐标为(xc,yt-0.5H),其中,Lmax为轮廓最大左右长度,yt是葡萄簇轮廓的最高点的Y轴坐标。

6.根据权利要求1所述的自动定位方法,其特征在于,在步骤(4)和(5)中,利用Canny算子进行边缘提取。

7.根据权利要求1所述的自动定位方法,其特征在于,通过公式(2)求解步骤(4)中所述最大连通区域的重心到所述线段的距离Dm:式中,Pm1(xm1,ym1)和Pm2(xm2,ym2)(m=1,2,3……N)为所述线段的端点的平面坐标。

8.根据权利要求1所述的自动定位方法,其特征在于,在步骤(6)中,利用三角测量原理将平面坐标转换为三维空间坐标,包括以下步骤:公式(4)中,(X,Y,Z)为所求三维空间坐标,(x,y)为图像C中的平面坐标,d为图像C中的平面坐标(x,y)在步骤(6)中所得视差,f为所述左右摄像机的焦距,B为所述左右摄像机的基线距离。

9.根据权利要求1所述的自动定位方法,其特征在于,利用公式(5)求解步骤(7)中所述葡萄珠圆心的三维空间坐标(xm,ym,zm)到Y轴的距离Lm其中,m=1,2,3……N:

说明书 :

机器人防损伤采摘葡萄的自动定位方法

技术领域

[0001] 本发明涉及智能机器人领域,特别是涉及一种机器人防损伤采摘葡萄的自动定位方法。

背景技术

[0002] 葡萄营养价值非常高,被贮存一段时间后就会发出酒味,所以,通常用来酿酒。在酿造葡萄酒的过程中,最耗费时间和人力的便是葡萄的采摘,因此,研究自动化程度高的采摘葡萄机器人对葡萄酒酿造工业至关重要。
[0003] 目前,许多研究方法聚焦在葡萄的图像分割、颗粒个数统计和产量预估等方面,而针对定位葡萄切割点和葡萄簇的三维空间域的方法较少。传统方法利用点云反求葡萄簇三维空间域,点云的立体匹配需要花费大量时间。另外,葡萄簇轮廓的不规则和葡萄生长环境的干扰会使葡萄采摘机器人难以精确定位葡萄的摘切点。并且,在采摘过程中,由于葡萄皮薄肉嫩,机器人的机械手很容易与葡萄珠发生碰撞而使其受到机械损伤。因此,研究一种可以使机器人防损伤采摘葡萄的自动定位方法具有重要意义。

发明内容

[0004] 本发明的目的是提供一种机器人防损伤采摘葡萄的自动定位方法。
[0005] 因此,本发明的技术方案为:
[0006] 一种机器人防损伤采摘葡萄的自动定位方法,包括以下步骤:
[0007] (1)对机器人的左右摄像机进行标定,然后通过所述左右摄像机采集葡萄的图像,得到RGB彩色图像A和B,分别对所述图像A和B进行校正后,得到图像C和D;
[0008] (2)将所述图像C转化为颜色空间图像,提取所述颜色空间图像的分量,得到分量图,对所述分量图进行中值滤波,得到图像E;
[0009] (3)对所述图像E进行阈值分割,得到二值图像,对所述二值图像进行形态学腐蚀和膨胀运算,得到形态学去噪后的图像G;
[0010] (4)提取所述图像G的最大连通区域,求解所述最大连通区域的重心(xc,yc)、轮廓极值点和轮廓最大左右长度,确定葡萄果梗感兴趣矩形区域,对所述葡萄果梗感兴趣矩形区域进行边缘提取,得到葡萄果梗感兴趣矩形区域边缘的二值图像,对所述葡萄果梗感兴趣矩形区域边缘的二值图像进行霍夫直线检测,得到线段,求解所述最大连通区域的重心到所述线段的距离Dm,其中m=1,2,3……N,确定距离最小的所述线段的中点为摘切点平面坐标(xl,yl);
[0011] (5)根据步骤(4)中所述的最大连通区域的重心、轮廓极值点和轮廓最大左右长度,得到葡萄簇轮廓外接矩形区域,对所述葡萄簇轮廓外接矩形区域进行边缘提取,得到葡萄簇轮廓外接矩形区域边缘的二值图像,对所述葡萄簇轮廓外接矩形区域边缘的二值图像进行霍夫圆检测,得到多个葡萄珠圆心平面坐标(xclm,yclm)和半径rm,其中m=1,2,3……N;
[0012] (6)对图像C中所述摘切点平面坐标(xl,yl)在图像D中进行立体匹配,得到所述图像D中的摘切点平面坐标(xr,yr)及所述图像C和图像D中摘切点的视差dc,将所述摘切点平面坐标(xl,yl)和(xr,yr)转换为三维空间坐标(Xc,Yc,Zc);对图像C中所述葡萄珠圆心平面坐标(xclm,yclm)在图像D中进行立体匹配,得到所述图像D中的葡萄珠圆心平面坐标(xcrm,ycrm)及所述图像C和图像D中葡萄珠圆心的视差dm,将所述葡萄珠圆心平面坐标(xclm,yclm)和(xcrm,ycrm)转换为三维空间坐标(xm,ym,zm),其中m=1,2,3……N;
[0013] (7)根据步骤(5)中所述葡萄珠圆心的三维空间坐标的对应位置,求解全部所述葡萄珠圆心的三维空间坐标(xm,ym,zm)到葡萄簇中心轴Y轴的距离Lm,根据步骤(5)中所述葡萄珠半径rm确定葡萄珠直径,以葡萄珠直径最大值的1.5倍为步长,在每个所述步长内,对距离Y轴最远的葡萄珠轮廓进行拟合,得到最大的葡萄簇截面轮廓,将所述葡萄簇截面轮廓绕Y轴旋转360°,得到葡萄簇三维空间域;
[0014] (8)在躲避步骤(7)中所述葡萄簇三维空间域的前提下,机器人的机械手由当前位置运动至所述摘切点的三维空间坐标对应位置,进行采摘。
[0015] 优选的是,在步骤(2)中如将所述图像C转化为HSI颜色空间图像,则提取所述HSI颜色空间图像的H分量;如将所述图像C转化为YCbCr颜色空间图像,则提取所述YCbCr颜色空间图像的Cr分量。
[0016] 优选的是,运用大津法对步骤(3)中所述图像E进行阈值分割。
[0017] 优选的是,通过公式(1)求解步骤(4)中所述的最大连通区域的重心:
[0018]
[0019] 式中,(xc,yc)是所述最大连通区域的重心平面坐标,f(x,y)是步骤(3)中所述二值图像中的点(x,y)的像素值。
[0020] 优选的是,步骤(4)中所述葡萄果梗感兴趣矩形区域的长度为0.6Lmax,高度H为0.5|yc-yt|,中心坐标为(xc,yt-0.5H),其中,Lmax为轮廓最大左右长度,yt是葡萄簇轮廓的最高点的Y轴坐标。
[0021] 优选的是,在步骤(4)和(5)中,利用Canny算子进行边缘提取。
[0022] 优选的是,通过公式(2)求解步骤(4)中所述最大连通区域的重心到所述线段的距离Dm:
[0023]
[0024] 式中,Pm1(xm1,ym1)和Pm2(xm2,ym2)(m=1,2,3……N)为所述线段的端点的平面坐标。
[0025] 优选的是,步骤(6)中,用以下方法对图像C中平面坐标在图像D中进行立体匹配:
[0026] 1)以所述图像C中的点(x,y)为中心定义一个边长为n的正方形窗口,以所述图像D中的点(x-d,y)为中心定义一个边长为n的正方形窗口;
[0027] 2)通过公式(3)求解相似度值NCC(d)最大值所对应的视差d:
[0028]
[0029] 式中,I1(x+i,y+j)指所述图像C中点(x+i,y+j)的灰度值, 指所述图像C中以点(x,y)为中心定义的正方形窗口的灰度值的平均值,I2(x+i-d,y+j)指所述图像D中点(x+i-d,y+j)的灰度值, 指所述图像D中以点(x-d,y)为中心定义一个边长为n的正方形窗口灰度值平均值;
[0030] 3)得到图像D中的平面坐标(x-d,y)。
[0031] 优选的是,在步骤(6)中,利用三角测量原理将平面坐标转换为三维空间坐标,包括以下步骤:
[0032]
[0033] 公式(4)中,(X,Y,Z)为所求三维空间坐标,(x,y)为图像C中的平面坐标,d为图像C中的平面坐标(x,y)在步骤(6)中所得视差,f为所述左右摄像机的焦距,B为所述左右摄像机的基线距离。
[0034] 优选的是,利用公式(5)求解步骤(7)中所述葡萄珠圆心的三维空间坐标(xm,ym,zm)到Y轴的距离Lm,其中,m=1,2,3……N:
[0035]
[0036] 本发明基于双目立体视觉系统,首先通过求解葡萄采摘点和葡萄珠圆心点的平面像素坐标,再对这些点进行立体匹配和三维重建,可大大减少立体匹配和三维重建的点数,提高葡萄簇三维空间域的求解速度,快速获取葡萄簇三维空间域,从而能够精确定位摘切点,防止机械手在采摘过程中损伤葡萄珠和葡萄簇,避免损伤葡萄果肉。

附图说明

[0037] 图1为本发明中机器人防损伤采摘葡萄自动定位的方法流程图;
[0038] 图2为本发明中采摘求解过程几何原理示意图;
[0039] 图3为本发明中对葡萄珠轮廓进行拟合示意图。

具体实施方式

[0040] 下面结合附图和具体实施例对本发明的自动定位方法进行详细说明。
[0041] 如图1所示,一种机器人防损伤采摘葡萄的自动定位方法,包括以下步骤:
[0042] 1)用标定板对机器人的左右摄像机进行标定,得到左右摄像机的内外部属性参数(如焦距、畸变参数等)。用左右摄像机(分辨率为800像素×600像素)对葡萄进行图像采集,得到RGB彩色的图像A和B,利用Bouguet算法对图像A和B分别进行校正,得到图像C和D。
[0043] 2)将图像C转化为颜色空间图像,提取所述颜色空间图像的分量,得到最能突显葡萄的分量图。如机器人采摘的葡萄为夏黑葡萄,则将图像C转化为HSI颜色空间图像,提取所述HSI颜色空间图像的H分量;如机器人采摘的葡萄为红提,则将图像C转化为YCbCr颜色空间图像,提取所述YCbCr颜色空间图像的Cr分量。对所述分量图像进行中值滤波,得到图像E。
[0044] 3)运用大津法对图像E进行阈值分割,得到二值图像,对二值图像进行形态学腐蚀和膨胀运算,得到形态学去噪后的图像G。
[0045] 4)提取所述图像G的最大连通区域,求解最大连通区域的重心(xc,yc)、轮廓极值点和轮廓最大左右长度Lmax。其中,通过公式(1)求解最大连通区域的重心的平面坐标:
[0046]
[0047] 式中,f(x,y)是最大联通区域内的点(x,y)的像素值。
[0048] 根据最大连通区域的重心(xc,yc)、轮廓极值点和轮廓最大左右长度Lmax,确定葡萄果梗感兴趣矩形区域。如图2所示,葡萄果梗感兴趣矩形区域的长度L为0.6Lmax,高度H为0.5|yc-yt|,中心坐标为(xc,yt-0.5H),其中,yt是通过求解轮廓点中y值最小(即位置最高)的点得到的葡萄簇轮廓最高点的Y轴坐标。
[0049] 利用Canny算子对葡萄果梗感兴趣矩形区域进行边缘提取,得到葡萄果梗感兴趣矩形区域边缘的二值图像,对所述葡萄果梗感兴趣矩形区域边缘的二值图像进行霍夫直线检测,检测出区域中所有满足最大投票数的线段,记录所有线段端点的平面坐标Pm1(xm1,ym1)和Pm2(xm2,ym2)(m=1,2,3……N),用公式(2)表示所述线段(m=1,2,3……N):
[0050]
[0051] 通过公式(3)求解所有线段到最大连通区域的重心(xc,yc)的距离Dm(m=1,2,3……N):
[0052]
[0053] 确定Dm最小的所述线段的中点为摘切点(xl,yl)。
[0054] 5)根据最大连通区域的重心、轮廓极值点和轮廓最大左右长度,得到葡萄簇轮廓外接矩形区域,利用Canny算子对所述葡萄簇轮廓外接矩形区域进行边缘提取,得到葡萄簇轮廓外接矩形区域边缘的二值图像,对所述葡萄簇轮廓外接矩形区域边缘的二值图像进行霍夫圆检测,得到多个葡萄珠圆心平面坐标(xclm,yclm)和半径rm(m=1,2,3……N)。
[0055] 6)对图像C中摘切点平面坐标(xl,yl)在图像D中进行立体匹配,以图像C中的点(xl,yl)为中心定义一个边长为n的正方形窗口,以图像D中的点(xl-dc,yl)为中心定义一个边长为n的正方形窗口。检测正方形窗口灰度值的平均值和点的灰度值并代入公式(4),求解相似度值NCC(dc)最大值所对应的视差dc:
[0056]
[0057] 式中,I1(xl+i,yl+j)指所述图像C中点(xl+i,yl+j)的灰度值, 指所述图像C中以点(xl,yl)为中心定义的正方形窗口灰度值的平均值,I2(xl+i-dc,yl+j)指图像D中点(xl+i-dc,yl+j)的灰度值, 指图像D中以点(xl-dc,yl)为中心定义一个边长为n的正方形窗口灰度值的平均值。根据dc=xl-xr,得到(xr,yr)平面坐标,即(xl-dc,yl)。
[0058] 将平面坐标(xl,yl)和dc代入公式(5),求解葡萄摘切点的三维空间坐标(Xc,Yc,Zc)。
[0059]
[0060] 式中,dc=xl-xr,f为左右摄像机的焦距,B为左右摄像机的基线距离。
[0061] 对图像C中平面坐标(xclm,yclm)在图像D中进行立体匹配,以(xclm,yclm)为中心定义一个边长为n的正方形窗口,以图像D中的点(xclm-dm,yclm)为中心定义一个边长为n的正方形窗口。检测正方形窗口灰度值的平均值和点的灰度值并代入公式(6),通过公式(6)求解相似度值NCC(dm)最大值所对应的视差dm(m=1,2,3……N):
[0062]
[0063] 式中,I1(xclm+i,yclm+j)指所述图像C中点(xclm+i,yclm+j)的灰度值, 指所述图像C中以点(xclm,yclm)为中心定义的正方形窗口灰度值的平均值,I2(xclm+i-dm,yclm+j)指图像D中的点(xclm+i-dm,yclm+j)的灰度值, 指在图像D中以点(xclm-d,yclm)为中心定义的正方形窗口灰度值的平均值。
[0064] 根据d=xclm-xcrm,得到平面坐标(xcrm,ycrm)(m=1,2,3……N),即为(xclm-dm,yclm)。
[0065] 将平面坐标(xclm,yclm)和dm(m=1,2,3……N)代入公式(7),求解葡萄珠圆心的三维空间坐标(xm,ym,zm)(m=1,2,3……N)。
[0066]
[0067] 式中,dm=xclm-xcrm,f为左右摄像机的焦距,B为左右摄像机的基线距离。
[0068] 7)将(xm,ym,zm)(m=1,2,3……N)分别代入公式(8),求解所述葡萄珠圆心的三维空间坐标到所述葡萄簇中心轴Y轴的距离Lm(m=1,2,3……N):
[0069]
[0070] 根据步骤(5)中所述葡萄珠半径rm确定葡萄珠最大的直径dmax,如图3所示,以dmax的1.5倍为步长,在每个步长内,对距离Y轴最远的葡萄珠轮廓进行拟合,得到最大的葡萄簇截面轮廓。
[0071] 将所述葡萄簇截面轮廓绕Y轴旋转360°,得到葡萄簇三维空间域,其中,用公式(9)表示所述葡萄簇空间域
[0072]
[0073] 式中,(L0,y0)为最上方的葡萄珠圆心在坐标系中的坐标,(LN,yN)为最下方的葡萄珠圆心在坐标系中的坐标,(Lj,yj)(j=1,2…N-1)表示第j个单位步长空间内距离中心轴Y轴最远的葡萄珠圆心在坐标系中的坐标。
[0074] 8)在躲避所述葡萄三维空间域的前提下,机器人的机械手由当前位置运动至所述摘切点的三维空间坐标对应位置,进行采摘。