基于标记分水岭算法的插秧机器人导航路径检测*
2021-08-13白云龙傅彬史振华王健
白云龙,傅彬,史振华,王健
(绍兴职业技术学院,浙江绍兴,312000)
0 引言
为了适应精准农业的生产作业需求,具有自主导航功能的农业机械装备成为当前的研究重点,在农作物种植、除草和收割等领域具有广阔的应用前景。目前,插秧机器人的导航方式主要有GPS导航[1]、激光导航[2]和机器视觉导航[3]等。对比GPS和激光导航方式,机器视觉凭借其灵活、高效、实时性好、鲁棒性强、精准的局部识别和获取信息完整等优点,成为插秧机器人主要的导航方式。其中,导航路径的准确识别是实现水稻插秧机器人自主导航的关键技术之一[4]。
在水稻种植过程中,路径识别系统采集的图像容易受到光照、杂草和翻土等因素的影响,导致系统在判别导航路径的过程中易出现鲁棒性变差的现象,并且农田工作环境复杂多变使得数据计算量增加,最终导致系统的实时性、稳定性和高效性降低。李俊霞等[4]提出利用视觉同步定位与建图(SLAM)的方式完成农业车辆的导航,系统可以实现自动规避障碍物并回归原始路径的功能,但由于导航路径标识符难以布置,导致最终检测精度和效率难以满足实际需求。李秀智等[5]在对采集图像预处理后,对垄行边缘中的特征点进行识别和聚类,利用RANSAC算法提出离群特征点,最终使用最小二乘法对最优特征点集进行直线拟合,但存在容易受到光照不均的干扰及剔除特征点阈值难以确定的问题。郭翰林等[6]利用HSV颜色空间的S分量对采集图像进行灰度化处理,并引入修正因子调整图像分割阈值,利用动态扫描图像方式获取路径特征点,通过Hough变换拟合导航路径,该方法可以适应不同生长期的植株特征和不同大小的株间空隙,但系统易受杂草干扰且修正因子无法随着采集图像的变换而改变。标记分水岭算法可以抑制图像噪声,避免过分割现象,准确获取前景物体的边缘[7-8]。
为了提高导航路径的检测精度和识别速度,本文提出一种基于标记分水岭算法的插秧机器人导航路径检测方法。在对图像进行预处理之后,利用标记分水岭算法对图像进行分割,随后确定目标苗列和目标田埂线,然后使用均值法获取导航路径特征点集,最后利用最小二乘法对特征点进行拟合并获得插秧机器人的导航路径。
1 图像采集与预处理
1.1 图像采集
本文以浙江省绍兴市枫桥镇水稻种植园为研究区域,试验时间为2020年6月晚稻种植期,以插秧机器人为系统承载平台,采用单摄像头采集图像的方式,摄像头型号为索尼IMX322,安装在农机前方距地面上方0.8 m处,向下倾斜10°。插秧机开始工作时,需要根据目标田埂线进行作业,车辆在田头回转后,需要根据目标秧苗列线进行插秧。系统共采集30幅大小为327像素×338像素的试验图像,试验针对目标田埂和目标秧苗列分别提取一幅图像作为研究对象,如图1所示。
(a) 图目标秧苗列
(b) 目标田埂图1 原始图像Fig. 1 Original image
1.2 图像预处理
在系统识别导航路径的过程中,需要对采集的原始图像进行预处理操作,进而增强目标苗列和田埂的可检测性,提高图像分割的可靠性。本文通过对采集的原始图像进行预处理,提高图像质量,降低干扰信息对试验结果的影响,处理步骤主要分为灰度化处理、直方图均衡化和中值滤波。文献[9]表明秧苗RGB图像中G的分量要大于B分量和R分量,所以可以使用超绿色灰度法对目标苗列与背景进行准确分离,其公式如式(1)所示。而人眼对绿色敏感度要高于蓝色,因此对目标田埂RGB图像进行加权平均值灰度法可以得到较为合理的灰度图像,其公式如式(2)所示。
(1)
Fg(i,j)=0.299×R(i,j)+0.587×G(i,j)+
0.114×B(i,j)
(2)
式中:I——灰度图像的亮度值;
Fg(i,j)——图像像素值;
R、G、B——红、绿、蓝颜色分量。
由于光照不均匀造成采集图像存在局部不清晰的问题,所以通过直方图均衡化可以改变图像中各个像素的灰度,增加像素之间灰度值的动态范围,从整体上改变图像的对比度[10]。受到图像采集设备和农田复杂环境的噪声干扰,采集图像存在边缘模糊和和黑白杂点的问题,所以通过中值滤波法去除噪声点[11],可以进一步提高导航路径识别精度。图2为图像预处理结果图。
(a) 灰度化处理
(b) 直方图均衡化
(c) 中值滤波图2 图像预处理Fig. 2 Image preprocessing
2 算法设计及特征点提取
2.1 基于标记分水岭的图像分割
2.1.1 传统分水岭算法
分水岭分割算法属于基于区域的图像分割算法,主要是将采集图像按照地形学的思维转换成一个三维立体表面,整体表面主要分为集水盆地、山脊和山坡。图像中每个像素点的灰度值表示这个点的海拔高度,每个灰度值极小点及其影响区域构成一个个集水盆地。灰度值变化范围较大的位置对应着图像的边缘,也被称为山脊。从灰度值极小点向山脊处变化的灰度值范围,称为山坡[12]。
利用分水岭分割算法分割图像的过程被称为“模拟浸水”。水流从集水盆地的最低点开始向高处浸溢并在山脊处修筑大坝,随着水位不断地增高,每个集水盆将会被填满,而筑起的大坝就是分水岭算法的分割线。当图像所有区域都被水流浸满后,算法停止运行,被大坝分割出的集水盆就是要分割的图像区域。使用分水岭算法处理稻田图像时,由于受到翻土、光照不均和量化误差等因素的影响,一幅稻田图像存在多个局部极值,一个灰度值均匀的区域也往往会被分割出多个集水盆,产生大量虚假分割线,造成过度分割的现象。
2.1.2 标记分水岭算法
基于标记的分水岭算法能够有效抑制过分割的现象[13],算法根据目标边界处梯度值高和内部梯度值低的特点计算梯度幅值,利用基于重构的开闭运算去除突刺并保留目标整体形状;在计算图像局部最大值后,利用闭运算和腐蚀操作清理标记斑点的边缘,以获得良好的前景标记;图像经过阈值化运算后,为了避免背景标记过分靠近目标边缘,通过距离变换操作获得最适的背景标记;使用前景标记和背景标记修正稻田梯度图像,将标记处强制应用为灰度图的局部最小值,并通过设定阈值t过滤掉最小值深度Hmin小于t的局部区域;最后,利用分水岭算法处理图像以获得最优的识别目标分割图像。标记分水岭算法流程图如图3所示。局部稻田图像经过二值化处理后的垂直投影曲线图如图4所示。
图3 标记分水岭算法流程图Fig. 3 Flowchart of marking watershed algorithm
从图4可以看出,秧苗列所在位置为投影曲线的峰值,投影曲线随着秧苗列到土壤背景向下转变,随着土壤背景到秧苗列向上转变,所以在分割秧苗列图像时最小深度阈值tm设定为8。而在分割目标田埂的图像的过程中,由于目标田埂的灰度值远小于秧苗的灰度值,所以可以先剔除高灰度值的秧苗列,保留图像像素值在100~140的目标田埂,最终分割田埂的最小深度阈值tg设定为32。
在标记分水岭算法的运行过程中,用M1,M2…,Mi表示稻田灰度图像f(x,y)的极小值标记区域,其中(x,y)∈Mi(i=1,2…,R)。Mi区域最小点集。Dmin表示f(x,y)的最小值,Dmax表示f(x,y)的最大值,C(Mi)为与Mi区域相邻的集水盆地点集,T(n)={(x,y)|f(x,y) 图4 垂直投影曲线图Fig. 4 Vertical projection curve 算法运行步骤如下。 1) 初始化f(x,y)、Dmin和Dmax。 2) 设定C(Mi)和T(n)。 3)Cn(Mi)采集多个集水盆地区域内的坐标点,并在区域间建立分界线。 4) 当f(x,y)>n时,返回步骤(2),否则结束。 2.1.3 图像分割结果 根据已得到的内部标识、外部标识和最小深度阈值t对稻田灰度图像进行分割处理,使得灰度图像的局部最小值出现在标记处,应用标记分水岭算法得到的分割结果如图5(a)所示。为了验证标记分水岭算法在分割秧苗和田埂过程中的优越性,本文对比了传统分水岭算法和区域生长法[14]的分割效果,分割效果图如图5(b)和图5(c)所示。文献[13]认为图像预处理和分割会造成分割目标边缘出现偏移和失真的现象,可以通过分析分割目标和原图像对应像素点位置的匹配度,判断不同处理算法的分割精度,其计算公式如式(3)、式(4)所示,得到不同方法的图像分割精度如表1所示。 Px=Pn/Pr (3) Py=Pn/Pz (4) 式中:Pr——人工提取识别目标的像素点集,秧苗列的值为67 045,田埂的值为57 642; Px——位置匹配度; Pn——利用分割算法得到的识别目标像素点值与Pr进行或运算后非0像素点集; Pz——识别目标像素点值; Py——图像分割精度。 (a) 标记分水岭法 (b) 传统分水岭法 (c) 区域生长法图5 不同方法的图像分割结果Fig. 5 Image segmentation results of different methods 表1 不同算法的图像分割精度Tab. 1 Image segmentation accuracy of different methods 从图5(b)中可以看出利用传统分水岭法分割图像对分割边缘敏感,存在点状噪声点干扰现象,且对灰度值变化较小的局部区域产生了过分割现象,无法准确分割目标秧苗和目标田埂。从图5(c)中可以看出利用区域生长法分割图像的分割效果具有较好的边缘特性,但无法有效降低噪声点对分割图像的影响,且分割精度有待提高。从图5(a)可以看出利用标记分水岭法可以准确分割出秧苗列和田埂,图像噪声点最少,有利于后续特征点提取和导航路径直线拟合。由表1可知,使用标记分水岭算法分割图像的匹配度和精度最高,其中秧苗列的结果为95.47%、94.55%,田埂的结果为96.54%、94.15%,表明本文算法在增强图像边缘的同时,又可以避免干扰识别目标区域的精确度。 采集图像经过图像预处理和分割后仅保留识别目标和背景区域,特征点的提取是插秧机导航路径拟合的必要条件。根据秧苗和田埂所在位置的区域特征,检测分割图像的白点数量,白点代表特征点的出现位置,黑点代表图像背景。另外,由于导航路径一般选择具有最长线的秧苗,所以本文在提取目标秧苗列特征点的过程中选择图像中心1/3区域作为处理窗口,不但保证秧苗列线最长,而且可以提高导航路径检测的效率。特征点提取步骤如下。 1) 建立分割图像大小的空矩阵Z,记为X行、Y列。 2) 赋值临时变量a=0、b=0,图像像素点坐标(i,j)为(0,0)。 3) 以图像左上角为初始点,由上至下、由左至右逐行扫描,若坐标(i,j)的像素值为255,则a++、b=a/2,其中a代表此行的白点数。 4) 再次扫描步骤3的行,若坐标(i,j)的像素值为255,则b--,直至b=0,将此时坐标点的像素值设定为0并存入矩阵Z中。 5) 扫描至X行、Y列的坐标点结束,否则返回步骤2。 将矩阵Z中的像素点值置入分割图像中,提取特征点如图6所示。 图6 特征点提取图Fig. 6 Feature point extraction diagram 其中,为了提高特征点的可视性,本文将黑色像素点标红,目标秧苗列和田埂中的红色点表示特征点的平均位置,由于识别目标分布不均匀和受噪声干扰的影响,导致局部提取特征点存在偏差,但是并不影响最终的导航路径拟合。 在农田环境中,由于干扰因素较多,需要对采集图像进行预处理以使识别目标突出。使用标记分水岭算法分割图像不但可以有效分割识别目标区域,而且可以避免过分割的现象。在利用均值法提取导航路径特征点之后,选用最小二乘法拟合导航路径直线,可以降低路径检测不完整的现象,最终系统生成导航路径信息。导航路径检测流程如图7所示。 图7 导航路径检测流程Fig. 7 Navigation path detection process 为了验证标记分水岭图像分割算法的有效性,利用最小二乘法分别对不同图像分割方法得到的图像特征点进行直线拟合,进而构建插秧机器人的导航路径,并从中提取10个关键点计算误差值。1/3处理窗口目标秧苗列的图像尺寸为109像素×282像素,目标田埂的图像尺寸为327像素×338像素。导航路径检测对比图如图8所示,检测结果如表2所示。 (a) 传统分水岭方法 (b) 区域生长方法 (c) 标记分水岭方法图8 导航路径检测对比Fig. 8 Comparison of navigation path detection 表2 导航路径检测结果Tab. 2 Navigation path detection results 由图8(a)可见,由于传统分水岭算法的分割图像存在太多噪声污染,导致利用最小二乘法拟合直线的过程中存在局部直线拟合现象,使得导航路径是由多条拟合直线叠加形成,无法满足插秧机器人视觉导航的需求。由图8(b)可见,区域生长法分割图像的拟合直线效果较好,但是由于识别目标分割不彻底,导致局部拟合直线出现偏离中心路径的现象。由图8(c)可见,标记分水岭分割图像的拟合直线效果最好,少量噪声点未对最终的导航路径产生影响。同时由表2可知,标记分水岭法相比传统分水岭法和区域生长法,秧苗列和田埂导航路径的像素平均误差值最小,决定系数R2最接近1,检测精准度最高,分别达到93.4%和96.6%,,虽然处理时间略长,但是仍然具有实时性。 针对稻田作业下的视觉导航插秧机器人,为解决插秧机器人导航路径受光照、杂草和翻土等干扰因素的影响,提出利用标记分水岭算法分割目标秧苗列和目标田埂的解决办法,进一步提高导航路径检测的准确性。利用灰度化处理、直方图均衡化和中值滤波对采集图像进行预处理,使用标记分水岭算法对识别目标进行图像分割,并通过均值法采集导航路径特征点集,最后经最小二乘法将特征点拟合成导航路径。 1) 在复杂的水稻种植环境中,对采集图像进行预处理操作,可以进一步增强图像对比度,减少环境噪声对导航路径检测的干扰。 2) 相比传统分水岭法和区域生长法,利用标记分水岭法分割图像的分割精度和图像匹配度最高,其中秧苗列的结果为94.55%、95.47%,田埂的结果为94.15%、96.54%,图像噪声点最少,有利于后续特征点提取和导航路径直线拟合。 3) 在导航路径拟合的过程中,标记分水岭法相比传统分水岭法和区域生长法,秧苗列和田埂导航路径的像素平均误差值最小,决定系数R2最接近1,检测精准度最高,分别达到93.4%和96.6%,虽然处理时间略长,但是仍然具有实时性,表明本文方法能够较为准确检测插秧机器人的导航路径。2.2 特征点提取
2.3 检测流程
3 结果与分析
4 结论