发明名称 一种基于一维Hough变换和专家系统的早期苗田垄线识别算法
摘要 本发明公开了一种基于一维Hough变换和专家系统的早期苗田垄线识别算法,包括如下步骤:A1、垄田图像的预处理:A2、基于专家系统的垄线识别1)基于一维Hough变换提取垄线;2)查找特征最明显的第一条垄线;3)查找其余垄线。本发明具有以下有益效果:1)采用基于一维线的Hough变换获取多垄线,改善了农业机械视觉导航系统多垄线识别的实时性;2)充分利用垄线结构信息,采用专家系统推理获取准确的垄线,改善了农业机械视觉导航系统多垄识别的鲁棒性和适应性。
申请公布号 CN103186773A 申请公布日期 2013.07.03
申请号 CN201310057431.7 申请日期 2013.02.06
申请人 内蒙古大学 发明人 张志斌;刘占;高光来;许岗
分类号 G06K9/00(2006.01)I;G06K9/54(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 代理人
主权项 1.一种基于一维Hough变换和专家系统的早期苗田垄线识别算法,其特征在于,包括如下步骤: A1、垄田图像的预处理: 1)对获取的农田图像进行绿色提取和二值化处理; 2)对二值化处理后的图像进行除噪处理; A2、基于专家系统的垄线识别 1)基于一维Hough变换提取垄线 田间机器人视觉系统所拍摄的图像的高度、宽度均为已知,沿图像水平中位线上对每个像素点,进行式(1)所示的Hough变换提取垄线:即在过该像素点角度范围(0°~180°)内找出所有直线上数据点最多的线,然后,将统计出该线的角度和线上数据点量,分别记入统计数组LocalMaxAngle[0..width-1]、LocalMaxData[0..width-1];式(1)为一维Hough变换找垄线表达式,其中,ρ为点(x0,h)到直角坐标原点的距离,width,height分别为处理图像的宽度和高度,h=height/2; ρ=x<sub>0</sub>cosθ+hsinθ,θ∈[0,180],x<sub>0</sub>∈[0,width]  (1) 2)查找特征最明显的第一条垄线 查找统计数组中数据量最大的点及其角度,作为图像范围内垄线特征最明显的第一条垄线,并记录其与中位线的交点和夹角;同时,对第一条垄线上的垄线特征进行提取:垄线最大空白区域,即最大的连续背景点区域;垄线数据点平均分布p,即按式(2)进行处理 <img file="FSA00000857790600011.GIF" wi="857" he="115" />其中,Ai为连续作物点区域,m为作物点个数,n为该垄线上的区域个数;作物宽度,即沿第一条垄线自其与中位线交点向下,在垄线最大空白区域和数据点平均分布纵向范围内,进行作物宽度统计,找出作物最宽处像素量,即为作物宽度;同时,对中位线上 与第一条垄线交点左、右作物宽度内的统计数组做清零处理,以确保在确认的垄线周围作物宽度内不出现第二条疑似垄线;并将第一条垄线记录到垄线链表中; 3)查找其余垄线 选择统计数组新的最大值,通过交点、角度,并结合获得的第一条垄线特征参数判断待测垄线是否为符合实际情况的垄线,具体推理、判断过程为: R1:待测垄线与第一条垄线是否有交点;若有,交点位置是否位于图像上方图像地平线位置以上区域,若不是则为错误垄线,将该错误垄线与中位线交点位置的统计数组值置零,选择新的垄线,返回3),重新开始查找其余垄线;若交点在图像地平线下方,进入R2,继续判断; R2:待测垄线上的垄线最大空白区域、垄线数据点平均分布特征同第一条垄线是否相同,若不同,将统计数组中待测垄线与中位线交点位置的统计数组值置零,选择新的垄线,返回3),重新开始查找其余垄线;若相同,进入R3,继续判断; R3:若待测垄线和第一条垄线最大空白区域、垄线数据点平均分布特征相同,且第二条确认垄线尚未确定,确定为第二条确认线,同时进行垄线关系参数设定:<img file="FSA00000857790600021.GIF" wi="44" he="44" />垄线间是否存在交点,第二条确认垄线同第一条确认垄线存在交点,则设置垄线存在交点标记为真,否则设置垄线存在交点标记为假;<img file="FSA00000857790600022.GIF" wi="43" he="49" />垄线间宽度,第二条确认垄线和中位线交点同第一条确认垄线和中位线交点间隔像素数量为垄线间宽度;<img file="FSA00000857790600023.GIF" wi="43" he="43" />将确认垄线连入垄线链表,在中位线上,其与确认垄线交点左、右作物宽度内统计数组值清零,确保在确认的垄线周围作物宽度内不出现其它条疑似垄线,转3),重新开始查找其余垄线;若不为第二条确认垄线,则进入R4,进行线间关系检测;R4:待测垄线与垄线链表中记录所有线依次进行比较:<img file="FSA00000857790600024.GIF" wi="43" he="43" />比较待测垄线最大空白区域、垄线数据点平均分布特征与第一条垄线是否相符;<img file="FSA00000857790600025.GIF" wi="43" he="49" />待测线与链表节点记录线线间关系是否符合实际,包括垄线间是否存在交点、垄线间距离。如果垄线间位置关系与已记录的垄线存在交点标记、垄线间宽度一致,即确认为下一条垄线,将确认出的垄线记入垄线链表;并在统计数组中,将确认垄线同中位线交点左、右垄线宽度范围内数组值置零;若待测垄线与链表节点记录线特征不一致,为错误垄线,在统计数组中将错误 垄线与中位线交点处的统计值置零,并在统计数组中选择下一个最大值,若选择出的统计数组最大值小于给定阈值,垄线确认过程结束;否则返回R3。
地址 010021 内蒙古自治区呼和浩特市赛罕区大学西路235号内蒙古大学计算机学院