一种枸杞识别与定位方法与流程

文档序号:19893803发布日期:2020-02-11 13:01阅读:423来源:国知局
一种枸杞识别与定位方法与流程

本发明涉及图像处理与视觉定位领域,特别是涉及一种枸杞识别与定位方法。



背景技术:

枸杞鲜果因其营养丰富,味道甜美备受人们喜爱,枸杞的种植规模与枸杞产量也因此大幅增加。目前枸杞鲜果采摘作业采用人工操作,采摘效率低,采摘成本高,高峰期人手不足。为了提高采摘的效率,减少采摘过程中的人工成本,研究一种自动化枸杞采摘机器人具有十分重要的意义。

然而枸杞的生长环境比较复杂,能否精准的识别枸杞、定位枸杞直接决定了枸杞采摘机器人的工作效率。常见的使用颜色特征识别枸杞,适用性低,易受到光照强度的影响。因此亟需提供一种可以用于枸杞采摘机器人上的有效识别与定位枸杞果实的方法来解决上述问题。



技术实现要素:

本发明所要解决的技术问题是提供一种枸杞识别与定位方法,能够使枸杞采摘机器人有效识别与准确定位枸杞果实。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种枸杞识别与定位方法,包括以下步骤:

s1:采集枸杞的双目图像;

s2:采用bp神经网络对采集的双目图像进行枸杞的识别;

s3:对bp神经网络处理后的图像进行滤波,去除噪点;

s4:对滤波后的图像进行形态学开运算处理,去除其余干扰点,得到识别完成的枸杞图像;

s5:对识别后的枸杞图像先用投影法获取图像中垂直枝条末端点的图像二维坐标,然后根据得到的图像二维坐标通过双目视觉技术计算出垂直枝条末端的三维坐标,根据该三维坐标将该枝条拉起呈水平状态;

s6:对拉起后的水平枝条重复步骤s1至s4,对识别后的枸杞图像先用投影法获取图像中水平枝条上枸杞果实个体的图像二维坐标,然后根据得到的图像二维坐标通过双目视觉技术计算出枝条上所有枸杞果实个体的三维坐标。

在本发明一个较佳实施例中,步骤s2的具体步骤包括:

以枸杞果实的rgbhsv六个像素值作为bp神经网络训练的输入数据,以判断是不是枸杞作为输出数据,通过经验公式计算,bp神经网络隐藏神经元数量的取值范围为4—13,建立一个bp神经网络预测模型,对采集的双目图像进行二值化处理。

在本发明一个较佳实施例中,步骤s3中,利用laplace滤波对bp神经网络处理后的图像进行滤波。

在本发明一个较佳实施例中,步骤s4的具体步骤包括:

首先选用圆形的结构元素对滤波后的图像进行腐蚀处理,然后采用图像腐蚀处理模板对图像进行膨胀处理,去除其余干扰点,得到识别完成的枸杞图像。

在本发明一个较佳实施例中,在步骤s5中,采用投影法获取图像中垂直枝条末端点的图像二维坐标的方法包括以下步骤:

s5.1:读取图像并获取图像行数p和列数q;

s5.2:将图像进行水平投影得到识别点对应的y值,组成数组s;

s5.3:构建两个长度为5个像素点的滑动窗口a和b,从原点沿y轴向下移动,每次移动一个像素长度,直到滑动窗口a上侧y值大于等于图像的行数p之后停止,当a>5且b=0时,判断滑动窗口a的下侧像素点y值即为末端枸杞的最低点y值;

s5.4:对[y-10,y]范围内进行垂直投影得到识别点对应的x值,组成数组t;

s5.5:构建两个长度为5个像素点的滑动窗口m和n,从原点沿x轴向右移动,每次移动一个像素长度,直到滑动窗口m左侧x值大于等于图像的列数q之后停止,当m=0且n>0时,判断滑动窗口n的右侧像素点x值为末端枸杞的左侧x1值;当m>0且n=0时,判断滑动窗口m的右侧像素点x值为末端枸杞的右侧x2值;

s5.6:计算出末端枸杞的中心x值,x=1/2(x1+x2);

s5.7:根据得到的末端枸杞的图像二维坐标向下移动5个单位长度即为枝条末端抓取点的图像二维坐标。

在本发明一个较佳实施例中,在步骤s6中,采用投影法获取图像中水平枝条上枸杞果实个体的图像二维坐标的方法包括以下步骤:

s6.1:读取图像并获取图像行数p和列数q;

s6.2:将图像进行垂直投影得到识别点对应的x值,组成数组s;

s6.3:构建两个滑动窗口m和n,从原点沿x轴向右移动,每次移动一个像素长度,直到滑动窗口m左侧x值大于等于图像的列数q之后停止,当m=0且n>1时,判断滑动窗口n的右侧像素点x值为枸杞的左侧x1值;当m>1且n=0时,判断滑动窗口m的右侧像素点x值为枸杞的右侧x2值;

s6.4:计算出枸杞的中心x值,x=1/2(x1+x2);

s6.5:对每一个枸杞的[x-5,x+5]范围内进行水平投影得到对应的y值,组成数组t;

s6.6:构建两个滑动窗口a和b,从原点沿y轴向下移动,每次移动一个像素长度,直到滑动窗口a上侧y值大于等于图像的行数p之后停止,当a=0且b>2时,判断滑动窗口b的下侧像素点x值为枸杞的左侧y1值;当a>2且a=0时,判断滑动窗口a的下侧像素点x值为枸杞的右侧y2值;

s6.7:计算出枸杞的中心y值,y=1/2(y1+y2),即得到每一个枸杞果实个体的图像二维坐标。

本发明的有益效果是:本发明利用bp神经网络、laplace滤波以及形态学处理实现了不同光照下枸杞果实的有效识别,然后通过投影法和双目立体视觉系统对枸杞进行定位,将得到的枸杞三维信息输送给枸杞采摘机器人的机械臂,实现枸杞果实的自动化采摘,大大提高了枸杞识别与定位的精准度,适用性广。

附图说明

图1是本发明枸杞识别与定位方法的流程图;

图2是所述laplace模板示意图;

图3是所述图像腐蚀处理模板示意图;

图4是获取垂直枝条末端点二维坐标的方法流程图;

图5是垂直枝条的水平投影示意图;

图6是构建滑动窗口判断果实边界的示意图;

图7是垂直枝条的垂直投影示意图;

图8是获取枸杞果实个体二维坐标的方法流程图;

图9是水平枝条的垂直投影示意图;

图10是水平枝条的水平投影示意图;

图11是光照条件下枸杞种植原图;

图12是图11对应识别枸杞后的图像;

图13是阴影条件下枸杞种植原图;

图14是图13对应识别枸杞后的原图;

图15是a点对应的枸杞原图;

图16是图15对应识别枸杞的立体匹配视差图;

图17是枝条拉起后的枸杞图像原图;

图18是图17对应枸杞的立体匹配结果示意图。

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

请参阅图1,本发明实施例包括:

一种枸杞识别与定位方法,应用于枸杞采摘机器人,包括以下步骤:

s1:采集枸杞的双目图像;优选的,采用双目相机采集枸杞的双目图像;

s2:采用bp神经网络对采集的双目图像进行枸杞的识别;

bp神经网络包含输入层、隐藏层和输出层。其中输入层的神经元数与输入数据的维数相同,输出层神经元数与需要拟合的数据个数相同。

在本实施例中,以枸杞果实的r(红色)、g(绿色)、b(蓝色)、h(色调)、s(饱和度)、v(明度)六个像素值作为bp神经网络训练的输入数据,以判断是不是枸杞(1或0)作为输出数据,因此,输入神经元是6个,输出神经元是1个。隐藏层神经元数由经验公式(1)来确定:

其中,h----隐藏层神经元数;

n----输入层神经元数;

m----输出层神经元数;

a----1到10之间的任意常数;

通过bp神经网络识别枸杞实验中建立的是6-h-1的网络模型,故n=6,m=1。经过计算,h的取值范围为4—13。为了最终确定隐藏层神经元数量,需要进行不同隐藏层神经元数量的神经网络训练,通过比较误差来确定最优的隐藏层神经元数。

优选的,bp神经网络隐藏神经元数量设定为6,建立一个6-6-1的bp神经网络预测模型,对采集的双目图像进行二值化处理。

s3:对bp神经网络处理后的图像进行滤波,去除噪点;优选的,利用laplace滤波对bp神经网络处理后的图像进行滤波。laplace算子是最简单的各向同性微分算子,具有旋转不变性。一个二维图像函数的laplace变换是各向同性的二阶导数,定义为:

laplace算子还可以表示成模板的形式,如果在图像中一个较暗的区域中出现了一个亮点,那么用laplace运算就会使这个亮点变得更亮。因为图像中的边缘就是那些灰度发生跳变的区域,所以laplace锐化模板在边缘检测中很有用,一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置。但此算子却可用二次微分正峰和负峰之间的过零点来确定,对孤立点或端点更为敏感,因此特别适用于以突出图像中的孤立点、孤立线或线端点为目的的场合。

本实施例中,通过如图2所示的模板对枸杞图像进行卷积运算,过滤图像中阈值大于8的像素点。

s4:对滤波后的图像进行形态学开运算处理,去除其余干扰点,得到识别完成的枸杞图像;

形态学开运算是将图像先进行腐蚀处理,然后再进行膨胀处理,主要用于去除噪声。在本实施例中,首先选用圆形的结构元素对滤波后的图像进行腐蚀处理,然后采用如图3所示的图像腐蚀处理模板对图像进行膨胀处理,去除其余干扰点,得到识别完成的枸杞图像。

s5:对识别后的枸杞图像先用投影法获取图像中垂直枝条末端点的图像二维坐标,然后根据得到的图像二维坐标通过双目视觉技术计算出垂直枝条末端的三维坐标导入机械臂,根据该三维坐标通过机械臂将该枝条拉起呈水平状态;

投影法是根据图像信息在某一方向上的投影分布特点来进行检测的一种方法,即像素点的累加,其本质是一种统计方法。投影法一般有两种统计方式,分别为垂直投影和水平投影,垂直投影是将图像的像素点向x轴方向进行累积,统计图像中垂直方向像素点分布特点的方法;同理,水平投影是将图像的像素点向y轴方向进行累积,统计图像中水平方向像素点分布特点的方法。

参阅图4,采用投影法获取图像中垂直枝条末端点的图像二维坐标的方法,包括以下步骤:

s5.1:读取图像并获取图像行数p和列数q;

s5.2:结合图5,将图像进行水平投影得到识别点对应的y值,组成数组s;

s5.3:由于单个枸杞果实个体在图像中的像素长度大约为5,因而构建两个长度为5个像素点的滑动窗口a和b,结合图6,从原点沿y轴向下移动,每次移动一个像素长度,直到滑动窗口a上侧y值大于等于图像的行数p之后停止,当a>5且b=0时,判断滑动窗口a的下侧像素点y值即为末端枸杞的最低点y值;

s5.4:结合图6,对[y-10,y]范围内进行垂直投影得到识别点对应的x值,组成数组t;

s5.5:构建两个长度为5个像素点的滑动窗口m和n,从原点沿x轴向右移动,每次移动一个像素长度,直到滑动窗口m左侧x值大于等于图像的列数q之后停止,当m=0且n>0时,判断滑动窗口n的右侧像素点x值为末端枸杞的左侧x1值;当m>0且n=0时,判断滑动窗口m的右侧像素点x值为末端枸杞的右侧x2值;

s5.6:计算出末端枸杞的中心x值,x=1/2(x1+x2);

s5.7:根据得到的末端枸杞的图像二维坐标向下移动5个单位长度即为枝条末端抓取点的图像二维坐标。

s6:对拉起后的水平枝条重复步骤s1至s4,对识别后的枸杞图像先用投影法获取图像中水平枝条上枸杞果实个体的图像二维坐标,然后根据得到的图像二维坐标通过双目视觉技术计算出枝条上所有枸杞果实个体的三维坐标。

参阅图8,采用投影法获取图像中水平枝条上枸杞果实个体的图像二维坐标的方法包括以下步骤:

s6.1:读取图像并获取图像行数p和列数q;

s6.2:结合图9,将图像进行垂直投影得到识别点对应的x值,组成数组s;

s6.3:构建两个滑动窗口m和n,从原点沿x轴向右移动,每次移动一个像素长度,直到滑动窗口m左侧x值大于等于图像的列数q之后停止,当m=0且n>1时,判断滑动窗口n的右侧像素点x值为枸杞的左侧x1值;当m>1且n=0时,判断滑动窗口m的右侧像素点x值为枸杞的右侧x2值;

s6.4:计算出枸杞的中心x值,x=1/2(x1+x2);

s6.5:结合图10,对每一个枸杞的[x-5,x+5]范围内进行水平投影得到对应的y值,组成数组t;

s6.6:构建两个滑动窗口a和b,从原点沿y轴向下移动,每次移动一个像素长度,直到滑动窗口a上侧y值大于等于图像的行数p之后停止,当a=0且b>2时,判断滑动窗口b的下侧像素点x值为枸杞的左侧y1值;当a>2且a=0时,判断滑动窗口a的下侧像素点x值为枸杞的右侧y2值;

s6.7:计算出枸杞的中心y值,y=1/2(y1+y2),即得到每一个枸杞果实个体的图像二维坐标。

本发明利用bp神经网络、laplace滤波以及形态学处理实现了不同光照下枸杞果实的有效识别,然后通过投影法和双目立体视觉系统对枸杞进行定位,将得到的枸杞三维信息输送给枸杞采摘机器人的机械臂,实现枸杞果实的自动化采摘,大大提高了枸杞识别与定位的精准度,适用性广。

利用该方法进行试验时,图11和图13分别示出了不同光照条件下的枸杞原图,图12和图14分别示出了对应识别后的图像,有效识别出了枸杞果实。

表1末端枸杞坐标

表1列出了经过识别后末端枸杞的二维坐标和对应的相机三维坐标以及相应的末端枝条的三维坐标,图15、图16分别是序号a所对应的枸杞原图及其立体匹配后的视差图,a点位置是枝条末端的抓取点,在图中已经圈了出来,该点是根据枝条末端枸杞位置向下移动得到。

表2拉起水平枝条上枸杞果实个体的坐标

图17、图18分别是枝条拉起后的枸杞图像以及对应的立体匹配的视差图。如表2所示,即为拉起枝条上枸杞果实个体的二维坐标以及对应的三维坐标,表2中所有的点都在图17右图中以黑色点标记出。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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