【技术实现步骤摘要】
一种基于FPGA的实时田间机器人视觉导航方法与系统
本专利技术属于机器视觉导航
,尤其涉及一种基于FPGA的实时田间机器人视觉导航方法与系统。
技术介绍
目前,最接近的现有技术:由于农作物与土壤、石头等非植物在颜色上有较为明显的差异,因此,大多数视觉系统利用可见光成像获取分割后的植物图像,提取机器人导航参数,如导航线和导航角等,然后通过它们控制机器人行走。基于机器视觉的导航系统有两个分支:1)利用单目相机获取图像,并结合图像处理方法得到导航参数的二维视觉导航系统;2)通过两个或多个相机同时获得多幅图像,使用立体匹配方法得到特征点并匹配得到导航信息的三维视觉导航系统。在田间机器人导航系统中,机器人能够根据检测到的田间垄线信息控制车辆行走,因此,为了能准确地控制机器人行走,快速地获得作物垄线位置信息是目前田间机器人导航算法中亟需解决的最重要问题。目前已有几种基于机器视觉的作物垄线行检测算法,这些算法虽然能较准确地实现对作物垄线行检测,但大多数算法都是离线、处理时间较长,使得无法实时控制田间机器人按照既定状态沿垄线行走。当车辆一直处于匀速状态,而指导机器人的导航信息需较长时间才计算到,这将导致对作物的碾压。其原因为田间图像相比于其他自然环境复杂,作物垄线可能存在弯曲、缺失等,系统需要进行复杂计算所造成的。有代表性的算法依据检测原理可分为以下几种:(1)基于霍夫变换的方法(Houghtransform,HT)。该方法是现今最常用的作物行检测方法,最早由Hough在1962年提出。之后,首先提出了基于霍夫变换的作物行检测方法,并总结了作物行检测方法的相关先验知 ...
【技术保护点】
1.一种基于FPGA的实时田间机器人视觉导航方法,其特征在于,所述基于FPGA的实时田间机器人视觉导航方法包括以下步骤:第一步,将获取到的田间图像通过图像预处理分割出绿色作物;第二步,检测田间作物垄线图像中的垄线信息,垄线信息包括两条垄线位置信息及两条垄线斜率;检测田间作物垄线信息中,使用田间垄线检测算法寻找最近的垄线,计算左、右边界垄线约束角度;当计算得到左右垄线边界线后,通过式计算出垄线宽度Lw:β‑10≤θ≤β+10;Lw=rightBL‑leftBL;选择垄线角度、垄线宽度作为第二条垄线检测特征,检测田间图像中第二条垄线位置;首先确定第一条垄线在图像中的相对位置,然后预估第二条垄线的位置;当垄线位于整幅图像左侧,则选择垄线的右边界加垄线宽度的一半为起点,向右查找大于平均阈值且最小的密度信息作为第二条垄线;否则,采用垄线左边界减垄线宽度一半为起点检测垄线,具体如下式所示:
【技术特征摘要】
1.一种基于FPGA的实时田间机器人视觉导航方法,其特征在于,所述基于FPGA的实时田间机器人视觉导航方法包括以下步骤:第一步,将获取到的田间图像通过图像预处理分割出绿色作物;第二步,检测田间作物垄线图像中的垄线信息,垄线信息包括两条垄线位置信息及两条垄线斜率;检测田间作物垄线信息中,使用田间垄线检测算法寻找最近的垄线,计算左、右边界垄线约束角度;当计算得到左右垄线边界线后,通过式计算出垄线宽度Lw:β-10≤θ≤β+10;Lw=rightBL-leftBL;选择垄线角度、垄线宽度作为第二条垄线检测特征,检测田间图像中第二条垄线位置;首先确定第一条垄线在图像中的相对位置,然后预估第二条垄线的位置;当垄线位于整幅图像左侧,则选择垄线的右边界加垄线宽度的一半为起点,向右查找大于平均阈值且最小的密度信息作为第二条垄线;否则,采用垄线左边界减垄线宽度一半为起点检测垄线,具体如下式所示:将第一条垄线及边界的角度和第一条垄线宽度作为第二条垄线检测判断条件,确定第二条垄线及垄线边界线的位置;第三步,通过垄线信息计算提取机器人的导航信息,用于控制机器人行走。2.如权利要求1所述的基于FPGA的实时田间机器人视觉导航方法,其特征在于,所述第一步的图像预处理包括:1)超绿指数,选择ExG指数进行绿度识别增强图像中绿色作物,使用原始图像中红、绿、蓝三个通道的像素值线性求和计算得到,同时将原始的彩色图像转换为灰度图像,具体的计算过程:2)采用最大类间方差法Otsu,将图像分割为两个区域,通过不断地迭代统计各个区域的直方图信息,求出前景和背景间最大类间方差,最大类间方差对应的灰度值为最合适的分割阈值T;算法通过不断地迭代t,范围0-255,针对每个t均有方差σ2(t)和当前小于灰度值t的像素点个数与整幅图像中像素点总个数的比值ω(t);其中,阈值最大化前景和背景之间的类间方差可通过计算得到,当像素点对应的灰度值大于该阈值T时,则设该像素点值为1,反之则设为0:3)选用中值滤波方法进行预处理,并设置中值滤波窗口大小为5×5,表示为下式;其中,fi-k,L,fi,L,fi+k为滤波窗口中的像素值,f为滤波窗口中所有像素的中值:f=med(fi-k,L,fi,L,fi+k)。3.如权利要求1所述的基于FPGA的实时田间机器人视觉导航方法,其特征在于,所述第二步检测田间作物垄线图像中的垄线信息使用的田间垄线检测算法包括密度计算,第一条垄线检测及寻找第二条垄线检测;通过计算图像基线上每个像素点的密度,确定垄线的位置;具体包括:1)密度计算,由两条角度约束线构成当前垄线对应的扇形区域,角度为θ时且过BL直线上的点(x,y)的直线为候选检测线,通过下面两式获得该直线同图像边缘的交点分别为(x0,y0)和(x1,y1);其中,width和height分别表示图像的长宽,θ为当前像素点对应的扇形角度,范围为[45°,135°];计算每个像素点在扇形区域的密度,其中Gi为过点(x,y)且角度为θ所构成的直线下非零像素点的个数,而Vi则是该直线上所有像素点个数:temp0=(1-y)/tanθ+x;temp1=(height-y)/tanθ+x;2)将计算得到的每个BL线上的所有点的密度进行比较,找到全局最大点;全局最大点即对应第一条垄线中心线;从中心线沿着BL线左侧逐像素点移动,在搜索过程中,逐点比较每个像素点在约束角度范围内的密度,计算约束角度γ2;计算左边界时约束角度;,而计算右边界时约束角度应满足公式式;式中(x0,y0)和(x1,y1)分别为当前角度所构成的直线与图像边界的交点;与搜索垄线中心线不同的是,这次选择不大于平均密度ρ的最小密度值所对应的位置作为左边界,其中,通过统计图像中非零绿色作物像素点个数与图像中所有像素点的比值计算整幅图像的平均密度ρ:max(π/4,γ2)y≤θ≤β;β≤θ≤min(3π/4,γ2);3)寻找最近的垄线,将计算左、右边界垄线约束角度;当计算得到左右垄线边界线后,通过式计算出垄线宽度Lw:β-10≤θ≤β+10;Lw=rightBL-leftBL;选择垄线角度、垄线宽度作为第二条垄线检测特征,检测田间图像中第二条垄线位置;首先确定第一条垄线在图像中的相对位置,预估第二条垄线的位置情况;当垄线位于整幅图像左侧,则选择垄线的右边界加垄线宽度的一半为起点,向右查找大于平均阈值且最小的密度信息作为第二条垄线;否则,采用垄线左边界减垄线宽度一半为起点检测垄线,具体如式所示:将第一条垄线及边界的角度和第一条垄线宽度作为第二条垄线检测判断条件,确定第二条垄线及垄线边界线的位置。4.如权利要求1所述的基于FPGA的实时田间机器人视觉导航方法,其特征在于,所述第三步通过垄线信息计算提取机器人的导航信息,用于控制机器人行走包括:O为图像平面的中心位置,L为图像中垄线所在位置,以O为坐标原点建立图像坐标系;其中,...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。