一种重叠果实的识别方法与流程

文档序号:18944474发布日期:2019-10-23 01:26阅读:392来源:国知局
一种重叠果实的识别方法与流程

本发明涉及图像识别技术领域,特别涉及一种重叠果实的识别方法。



背景技术:

随着农业自动化的发展,越来越多的农业采摘机器人被应用于采摘作业中。其中,果实识别技术对于农业采摘机器人来说非常重要,识别准确率的高低直接影响着采摘效率。

由于自然环境中生长的果实难免会出现重叠的情况,这不仅使得果实识别的难度大大增加,还使得果实识别的成功率降低,从而降低了农业采摘的效率。



技术实现要素:

为解决上述技术问题,本发明提供了一种重叠果实的识别方法,以达到有效识别大面积重叠果实,提高采摘效率的目的。

为达到上述目的,本发明的技术方案如下:

一种重叠果实的识别方法,包括以下步骤:

(1)图像采集;

(2)对采集的图像进行滤波去燥处理;

(3)重叠目标果实提取,首先在rgb颜色空间中对图像中的每个像素点进行运算,之后采用最大类间方差法对背景进行分割;然后对分割后的区域进行形态学处理,最后将果实区域反应到原图上;

(4)重叠目标果实分离,首先对果实区域进行边缘检测,然后将形态学处理的图片与边缘检测的图片进行异或运算,将异或运算后的图片进行腐蚀处理,使得两个目标果实的分离更加明显;之后对腐蚀后的图像进行连通域分析,将两个果实的二值图分别显示在两幅图像上,如果有误分割未去除的情况,通过连通域分析检测面积小的连通域,对其进行去除;

(5)真实轮廓提取,对上一步中的两幅图像进行凸包处理与洪泛填充处理之后,进行伪轮廓的去除;

(6)边缘拟合及质心检测。

上述方案中,所述步骤(3)中,在rgb颜色空间中采用c=k*r-g-b算子对图像进行运算,其中,c为运算后的像素值,k是色差系数,r、g、b分别表示rgb颜色空间中红、绿、蓝的值。

上述方案中,所述步骤(3)中,形态学处理的方法如下:对其先进行闭操作再进行开操作运算,将果实区域出现的孔洞进行填充并且将小部分误分割的地方去除,如果出现孔洞过大的情况,利用洪泛填充的方法;如果误分割的区域较大,利用连通域分析,将较小的连通域去除。

上述方案中,所述步骤(4)中,对果实区域进行canny算子边缘检测,将重叠部分的边缘有效的识别出来。

上述方案中,所述步骤(4)中,异或运算是针对两幅图像的相同位置的像素进行运算的,当两个像素同为白色或者同为黑色,则输出黑色;若两个像素为一黑一白,则输出白色;在此处,这两幅图像分别是形态学处理的二值图像img1和边缘检测的图像img2,异或运算的公式为:

其中,img表示经过异或运算后的图像,i、j分别表示像素的横纵位置。

上述方案中,所述步骤(4)中,连通域分析采用种子填充法进行,具体方法如下:

1)扫描图像中像素点,直到像素点img[i,j]=1;

2)将当前的像素点img[i,j]作为种子,并标记为一个标签,将该种子邻接且像素值相同的像素压入栈中;

3)弹出栈顶像素,并标记相同的标签,再将与其邻接且像素值相同的像素压入栈中;

4)重复步骤3),直到栈为空,此时便得到了图像中的连通域之一,并被一个标签标记;

5)重复步骤1)至步骤4),直到扫描结束,便可得到图像中的全部连通域。

上述方案中,所述步骤(5)中,凸包处理的具体步骤如下:

1)找到图像中纵坐标最小的像素点,标记为m0;

2)计算剩余像素点与m0的连线和横轴之间的夹角的余弦值,按照余弦值从大到小的顺序,将这些点分别标记为m1,m2,m3…;

3)将m0和m1先压进栈内,然后从m2开始,计算栈顶的两点的向量相对于该点与栈顶点的向量是否为逆时针转动,如果是逆时针关系,则将该点压进栈内;否则,弹出栈顶元素;

4)最后栈内的所有像素点即为凸包的顶点。

上述方案中,所述步骤(5)中,洪泛填充的具体方法如下:先对背景进行填充,将填充的像素点记录并反映在新的图片上,再将这张图片的像素值取反,即可得到凸包处理后孔洞填满的图片。

上述方案中,所述步骤(5)中,伪轮廓的去除通过霍夫直线检测进行。

上述方案中,所述步骤(6)中,用最小二乘法椭圆检测来对果实的边缘进行拟合,从而重建被遮挡果实的轮廓;利用椭圆的几何公式得到果实的质心。

通过上述技术方案,本发明提供的一种重叠果实的识别方法简单易操作,通用性好,有着很高的识别率,可以有效提高果实的采摘效率,具有广阔的应用前景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例所公开的一种重叠果实的识别方法流程示意图;

图2为摄像头采集的图像;

图3为中值滤波处理后的图像;

图4为新算子分割后的二值图像;

图5为形态学处理后的图像;

图6为目标提取的结果;

图7为番茄区域的边缘检测图像;

图8为异或运算后的图像;

图9为腐蚀后的图像;

图10为连通域分析后未被遮挡的果实图像;

图11为连通域分析后被遮挡的果实图像;

图12为真实轮廓提取后未被遮挡的果实图像;

图13为真实轮廓提取后被遮挡的果实图像;

图14为最小二乘法椭圆边缘拟合及质心检测后未被遮挡的果实图像;

图15为最小二乘法椭圆边缘拟合及质心检测后被遮挡的果实图像;

图16为最终检测结果图像。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

本发明提供了一种重叠果实的识别方法,如图1所示的流程,具体实施例如下:

本发明采用番茄果实为例进行图像识别。

1、重叠番茄的图像采集

采用彩色双目摄像头对重叠的番茄图像进行采集,如图2所示,提取出目标的二维信息。

2、图像滤波去噪处理

在相机获取图像的过程中,难免会产生一些不必要的干扰信息,它们在很大程度上影响了图像的质量,并对图像的处理结果可能产生较大的影响,本实施例对相机获取到的原图像进行中值滤波处理,处理后的图像见图3,中值滤波不仅能够有效去除噪声,还保护了边缘细节。

3、目标提取:

1)基于kr-g-b的otsu的背景分割法:由于成熟番茄呈红色,所以在rgb颜色空间中采用c=k*r-g-b算子对图像进行运算,此公式可以提高图片中像素点的红色分量值,减小绿色和蓝色分量值,从而增强图片中的番茄部分与非番茄部分的反差,之后采用最大类间方差法(otsu)对背景进行分割,通过测试发现当k取1.8时有着良好的分割效果,分割后的图像见图4所示。

2)形态学处理:分割后的图像难免会存在一些孔洞以及误分割的区域。利用形态学对上一步获得的二值图像进行处理,对其先进行闭操作再进行开操作运算,这样可以将番茄区域内出现的孔洞进行填充并且将小部分误分割的地方去除。大部分分割不完美的情况利用形态学几乎都能去除。如果出现空洞过大的情况,可以利用洪泛填充的方法;如果误分割的区域较大,可以利用连通域分析,将较小的连通域去除即可达到效果,形态学处理后的图像见图5所示。

3)目标提取结果:将番茄区域反应到原图上,如图6所示。

4、重叠目标分离:

1)边缘检测:对番茄区域进行canny算子边缘检测,可以将重叠部分的边缘有效的识别出来,检测后的图像见图7。

2)异或运算:将形态学处理的图片与边缘检测的图片进行异或运算。异或运算是针对两幅图像的相同位置的像素进行运算的,当两个像素同为白色或者同为黑色,则输出黑色;若两个像素为一黑一白,则输出白色。在此处,这两幅图像分别是形态学处理的图像(图5)img1和重叠番茄的边缘检测图像(图7)img2,异或运算的公式为:

其中,img表示经过异或运算后的图像,i、j分别表示像素的横纵位置。异或运算后的图像如图8所示。

3)基于腐蚀运算的连通域分离:将异或运算后的图片进行腐蚀处理,使得两个目标番茄的分离更加明显。对腐蚀后的图像(图9)进行连通域分析,将两个果实的二值图分别在两幅图像上(如图10和图11所示),如果有误分割未去除的情况,可以通过连通域分析检测面积小的连通域,对其进行去除,从而可达到误分割部分被去除的效果。

采用种子填充法进行连通域分析,其基本思路是选取某一像素点作为种子,然后根据连通区域的位置相邻且像素值相等的原则,将与该种子连通的像素归于同一个像素集合中,此像素集合为一个连通区域。其分析方法如下:

(1)扫描图像中像素点,直到像素点img[i,j]=1;

(2)将当前的像素点img[i,j]作为种子,并标记为一个标签(label),将该种子邻接且像素值相同的像素压入栈中;

(3)弹出栈顶像素,并标记相同的标签,再将与其邻接且像素值相同的像素压入栈中;

(4)重复步骤3,直到栈为空,此时便得到了图像中的连通域之一,并被一个标签标记;

(5)重复步骤1至步骤4,直到扫描结束,便可得到图像中的全部连通域。

5、真实轮廓的提取:如果直接对上一步中的两幅图像提取边缘,则被遮挡的果实会得到一部分伪轮廓,对其进行凸包与洪泛填充处理之后在进行边缘提取,此时的伪轮廓部分是一条直线,通过直线检测对其进行去除。

1)凸包处理:凸包算法具体步骤如下:

(1)找到图像中纵坐标最小的像素点,标记为m0;

(2)计算剩余像素点与m0的连线和横轴之间的夹角的余弦值,按照余弦值从大到小的顺序,将这些点分别标记为m1,m2,m3…

(3)将m0和m1先压进栈内,然后从m2开始,计算栈顶的两点的向量相对于该点与栈顶点的向量(例如向量相对于向量)是否为逆时针转动。如果是逆时针关系,则将该点压进栈内;否则,弹出栈顶元素。

(4)最后栈内的所有像素点即为凸包的顶点。

2)泛洪填充:凸包处理后,会出现一些孔洞,采用泛洪填充的办法,对背景先进行填充,将填充的像素点记录并反映在新的图片上,再将这张图片的像素值取反,即可得到凸包处理后孔洞填满的图片。

3)伪轮廓的去除:此时的伪轮廓部分是一条直线,通过霍夫直线检测对其进行去除。用(r,θ)来表示一条直线,其中r是这条直线到原点的最短距离,θ是这条直线的垂线和x轴的夹角。假设图像中两点分别为i、j,则过这两点的直线为(ri,θi)和(rj,θj),由于两点确定一条直线,所以必有ri=rj和θi=θj的情况。若要判断多个点是否在一条直线上,则只需判断这些r和θ是否有相等的情况。当越多的点具有上述情况时,则说明在一条直线上的点越多,可以通过设置在一条直线上点的数量为阈值来确定是否检测到一条直线。真实轮廓提取后的图像见图12和图13所示。

6、边缘拟合及质心检测:

1)由于番茄果实近似椭圆体,在二维图像中近似椭圆,所以用最小二乘法椭圆检测来对果实的边缘进行拟合,从而可以重建被遮挡果实的轮廓。

首先将平面上的椭圆写成非标准形式

x2+axy+by2+cx+dy+e=0

公式中,分别有a、b、c、d、e五个未知数。为求出这五个未知数,至少要求有五组及以上采样点,设pi(xi,yi)(i=1,2,…,n)为椭圆上的点,其中,n≥5。根据最小二乘法原理,需要拟合的目标函数为:

为了到目标函数f的最小值,令

计算后,将其结果写成矩阵的形式:

通过解方程可以得到五个未知数的值。

2)利用椭圆的几何知识可以得到果实的质心:

边缘拟合及质心检测的图像如图14和图15所示。最终的检测结果见图16。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1