基于边缘检测和区域定位的玉米根茎导航线提取方法
2020-10-29宫金良王祥祥张彦斐兰玉彬
宫金良 王祥祥 张彦斐 兰玉彬
(1.山东理工大学机械工程学院, 淄博 255049; 2.山东理工大学农业工程与食品科学学院, 淄博 255049)
0 引言
在玉米病虫害防治过程中,利用机器人实现田间自主导航作业可以降低人工劳动强度、提高作业效率和作业质量、降低生产成本。目前,自主导航技术主要分为GPS导航和机器视觉导航,与GPS导航相比,机器视觉导航具有实时性好、成本低、适用范围广的优点[1-6]。
高国琴等[7]以温室移动机器人为研究对象,引入K-means算法分割图像,利用Hough变换拟合离散点,获取温室移动机器人导航信息,试验中导航信息提取准确率为95%,图像处理平均耗时146 ms。胡丹丹等[8]以玉米收获机器人为研究对象,根据玉米垄的走势特征提取导航离散点,基于Hough变换线性拟合导航离散点,得到导航路径。刘阳等[9]以冬季果树林间行走机器人为研究对象,采用Mid-to-Side扫描法结合果树的几何特征提取两侧树干信息,以树干内侧角点作为特征点,通过线性拟合特征点生成导航基准线。
目前,移动机器人在行间行走主要利用两侧茎秆在灰度投影曲线的峰值特性。冯娟等[10]利用特征点与邻近像素灰度的变化规律,通过逐行逐列扫描面积去噪图像确定茎秆与地面的交点。这种方法适用于面积去噪图像中茎秆之间没有叶片和杂草的情况,当茎秆之间叶片和杂草交错纵横时,进行列像素累加会在相邻茎秆之间产生伪特征点,并影响导航线提取效果。宋宇等[11]提出,特征点像素累加值大于左右相邻像素点的像素累加值,通过设定相邻特征点的距离阈值剔除伪特征点。实际玉米种植株距存在缺苗或一穴两株情况,并且与相机距离不同的玉米成像尺寸不同,设定距离阈值筛选伪特征点时,会剔除部分特征点,降低拟合导航线的准确率。杨洋等[12]建立了基于卷积神经网络的玉米根茎识别算法,实现了机器人在玉米行间行走,并指出传统方法提取导航线出现错误的原因是不能精准确定玉米根茎位置,在不明确峰值点是特征点还是伪特征点的前提下,仅利用相邻峰值点的位置关系剔除伪特征点,存在错误剔除特征点或漏删伪特征点的情况,降低了拟合导航线的准确率。
针对上述问题,为提高导航线拟合准确率,提出一种基于边缘检测和区域扫描方法,准确定位玉米茎秆边缘直线,结合区域定位方法得到玉米茎秆区域范围,确定峰值点中的特征点,利用提取的特征点剔除伪特征点,以有效提高拟合导航线的准确率,为农业自动导引车(Automated guided vehicle, AGV)在玉米行间行走提供视觉导航基准。
1 图像预处理
1.1 图像采集与灰度化
以四轮独立驱动的移动机器人作为采集平台,相机安装在移动机器人正前方,离地面高度20 cm,俯仰角10°,采集的图像分辨率为1 280像素×720像素,原始图像如图1所示。
图1 原始图像Fig.1 Original image
原始图像包含绿色植物和土壤背景,图像预处理的目的是将绿色植物与土壤背景分离,图像灰度化是将含有色彩和亮度的彩色图像转换为仅包含亮度的图像,WOEBBECKE等[13]认为绿色植物中G分量高于B分量和R分量,土壤背景的R、G、B分量相差不大,用2G-R-B可以有效分离绿色植物和土壤背景,得到灰度图像,如图2所示。
图2 灰度图像Fig.2 Grayscale image
1.2 图像二值化与形态学处理
图像二值化用来分割绿色植物和土壤背景,图3是灰度图像直方图,直方图出现明显的波谷。因此,本文采用最大类间方差法自动计算灰度图像的阈值,然后分割图像,得到二值图像。如图4所示,绿色植物与土壤背景被分割。
图3 灰度图像直方图Fig.3 Grayscale image histogram
图4 二值图像Fig.4 Binary image
二值图像中存在的杂草图像噪声对特征点提取产生干扰。构造半径为5像素的圆形结构元素对二值图像开运算处理,图5是经过形态学处理后的图像,形态学处理的图像还有噪声存在,而玉米区域的面积较大,可以利用面积特征进一步处理,即去除图像中面积小于1/20图像面积的区域[10],处理后的图像如图6所示。面积去噪图像还存在大面积的噪声区域,可通过增大图像面积的比例来剔除,但也会剔除距离相机较远的玉米植株。为进一步优化剔除效果,可以充分利用图像干扰区域的位置特征,即玉米茎所在的区域与图像的上边界相接,而干扰区域多数集中在图像的下半部分。利用八邻域算子得到各个非联通区域,判断每个非联通区域,如果区域与图像上边界相接,则保留该区域,反之剔除该区域。图7是结合位置特征剔除噪声得到的图像,其中独立的干扰区域被全部剔除掉。
图5 形态学图像Fig.5 Morphological image
图6 面积去噪图像Fig.6 Denoised image using area features
图7 位置去噪图像Fig.7 Denoised image using position features
1.3 特征点获取
按列累加得到的列像素累加值能够反映玉米根茎区域的轮廓,也可减少后期提取玉米根定位的计算量[14],即
(1)
式中S(i)——图像第i列的列像素累加值
M、N——图像纵向和横向像素尺寸
i、j——图像像素的列序号和行序号
I(i,j)——点(i,j)处的像素
以图像左下角为坐标原点,横坐标为图像列序号,纵坐标为S(i),累加曲线如图8所示,可见玉米根茎区域轮廓与列像素累加曲线基本吻合。
图8 列像素累加曲线Fig.8 Curve image of column pixel accumulation
构造边长为30像素的方形高斯滤波模板对列像素累加曲线S(i)进行平滑处理,取平滑曲线极小值点为特征点,用(Xn,Yn)表示特征点坐标值。如图9所示,玉米株间叶片交错纵横,导致存在伪特征点。
图9 平滑曲线及特征点Fig.9 Smooth curve and feature points
2 玉米茎秆边缘检测
玉米生长笔直,茎秆边缘近似为直线,通过提取茎秆边缘得到玉米茎秆在图像水平方向上的区域范围,以剔除伪特征点。用于提取图像中茎秆边缘的直线检测算法有Hough变换法、边缘链接法和基于梯度方法[15-17]。其中,Hough变换法应用最广泛,Hough变换法是将平面坐标系中的像素点映射到参数坐标系,在参数坐标系中提取直线。本文利用Canny算子提取面积去噪图像的梯度边缘,Hough变换算法检测直线,其中,Hough变换检测直线的角度范围为±10°,角度变化梯度为2°,Hough变换的极径间隔为1,峰值直线的数量最大为20条,图10是经Canny算子检测出的梯度边缘,图像经过加粗处理,图11是对梯度边缘图像利用Hough变换检测出的直线边缘。
图10 加粗处理后的梯度边缘图像Fig.10 Edge image after thickening
图11 Hough图像Fig.11 Hough image
Hough图像中的部分直线能准确反映茎秆边缘,部分直线是由于叶片交错产生的伪边缘,需要剔除伪边缘,得到准确的茎秆边缘。在面积去噪图像中白色部分表示茎秆和叶片,黑色部分表示土壤,玉米茎秆区域的白色像素数量与区域内像素总数量的比值较高,而茎秆之间叶片区域的白色像素点数量与区域内像素总数量的比值低于茎秆区域的比值,根据多次试验效果选定像素数量比值b=0.8。区域宽度选择最远茎秆成像的宽度,取d=15像素。
如图12所示,以图像左上角为坐标原点,设Hough图像中有s条直线,e∈[1,s],第e条Hough直线的上极值点为Ae(x1,y1),下极值点为Be(x2,y2),距离Ae(x1,y1)为d的水平方向像素点分别为点Ce(x1+d,y1)、点De(x1-d,y1),距离Be(x2,y2)为d的水平方向像素点分别为点Ee(x2+d,y2)、Fe(x2-d,y2)。Re为Ae、Ce、Ee、Be组成的封闭区域,Le为Ae、De、Fe、Be组成的封闭区域。区域Re中白色像素数量与像素总数量的比值为qr(e),qr(e)为s维行向量Qr的元素,s维列向量Ql的元素ql(e)为区域Le中白色像素数量与像素总数量的比值。定义矩阵Q2×s的元素q(1,e)=Max{qr(e),ql(e)},元素q(2,e)存储标志位值,其中0表示Re和Le区域均不存在茎秆,1表示仅Re区域存在茎秆,2表示仅Le区域存在茎秆,3表示Re、Le区域均存在茎秆。
图12 区域扫描示意图Fig.12 Area scanning diagram
边缘检测算法流程如图13所示,具体步骤为:
(1)计算点Ae、Be、Ce、De、Ee、Fe的坐标值,在面积去噪图像上裁剪出封闭区域Re和Le。
图13 边缘检测流程图Fig.13 Flowchart of edge detection
(2) 对Re进行列扫描并计算其中白色像素数量与像素总数量的比值,存储到qr(e)中;对Le进行列扫描并计算其中白色像素数量与像素总数量的比值,存储到ql(e)中。
(3) 将qr(e)与ql(e)分4种情况进行设置:
①qr(e)≥b且ql(e)≥b,表示当前直线是茎秆边缘,并且直线左边和右边邻近区域都有玉米茎秆,求qr(e)和ql(e)的最大值,将最大值存入q(1,e)中,标志位3赋给q(2,e)。
②qr(e)
③qr(e)≥b且ql(e)
④qr(e)
(4)重复步骤(1)~(3),计算每条直线对应的q(1,e)和q(2,e),为消除茎秆边缘上多条直线的影响,循环判断两条直线是否相交,如果第e和e+1条直线相交,比较q(1,e)和q(1,e+1)的值。当q(1,e)>q(1,e+1)时,q(1,e+1)和q(2,e+1)置0,当q(1,e)≤q(1,e+1)时,则q(1,e)和q(2,e)置0。所有相交直线循环完成,程序结束。
图14是基于区域扫描剔除茎秆伪边缘后的结果,可以看出,茎秆之间的伪边缘直线都被剔除,并且图像中不存在相交的边缘直线。
图14 茎秆边缘线Fig.14 Stalk boundary line
3 茎秆区域定位
得到准确茎秆边缘直线后,利用标志位q(2,e)和边缘直线位置可获得茎秆的区域范围。设图14中有W条直线,e∈[1,W],定义全零数组T(i),i∈[1,N],用来记录玉米茎秆在图像水平方向上的区域范围,T(i)=0表示图像第i列不存在茎秆,T(i)=1表示图像第i列存在茎秆。区域检测算法流程如图15所示,具体步骤如下:
(1)依次判断图14中的每条直线,如果直线e的标志位q(2,e)的值为1,则数组T(i)在区间[x2,x2+d]的值为1,类似的,q(2,e)的值为2,则数组T(i)在区间[x2-d,x2]的值为1,q(2,e)的值为3,则数组T(i)在区间[x2-d,x2+d]的值为1。
(2)考虑到茎秆左右两条边缘的情况,在e 图15 区域检测算法流程图Fig.15 Flowchart of area detection algorithm 图16是茎秆在图像上的区域范围,用来剔除伪特征点。 图16 茎秆区域范围Fig.16 Stalk area range 以图像左半部分的特征点为例,特征点横坐标值Xn依次递增,纵坐标值Yn也应该依次递增,即如果点(Xn,Yn)在茎秆区域范围内(T(Xn)=1),那么1~n-1个特征点的纵坐标值都应该小于Yn,大于Yn的特征点都是伪特征点。利用区域范围剔除伪特征点的具体方法如下: (1)将图像分割为尺寸相同的左右两幅图像,左半幅图像的特征点坐标值存入矩阵G,右半幅图像的特征点坐标值存入矩阵H。 (2)对矩阵G、H中的特征点进行二次判断,沿图像水平方向,从左向右依次扫描,判断每个特征点(Xn,Yn)和对应的数组T(Xn)。以矩阵G为例,当T(Xn)=1时,对1~n-1个特征点进行判断,纵坐标值大于Yn的特征点置为空。对矩阵H的处理方式正好相反,沿图像水平方向,从左向右扫描,判断每个特征点(Xn,Yn)和对应的数组T(Xn),当T(Xn)=1时,对第n个特征点右侧的特征点进行判断,纵坐标值大于Yn的特征点置为空。剔除伪特征点之后的特征点图像如图17所示,图中蓝色点表示特征点,绿色点表示已经剔除的伪特征点。 图17 特征点图像Fig.17 Feature points image 直线拟合方法主要有最小二乘法、Hough变换和稳健回归法[18-20],利用最小二乘法分别拟合G和H的特征点,分别得到左、右两个导航基准线,左导航基准线和右导航基准线角平分线即为导航线。设左导航基准线斜率为k1,右导航基准线斜率为k2,则导航线的斜率k满足方程 (2) 图18为拟合效果,图中以左上角为坐标系原点,向右为横坐标轴正方向,向下为纵坐标轴正方向。 图18 导航基准线和导航线Fig.18 Navigation datum line and navigation line 试验图像采集于山东省淄博市周村区试验田,图像处理软件为Matlab 2018b,计算机为英特尔Xeon E5-2643 @ 3.30 GHz(×2)、32 GB内存、Windows 7(64位)操作系统。对本文算法和传统方法[11]进行比较,处理结果如图19所示。 图19 不同方法特征点提取和导航线拟合结果Fig.19 Feature point extraction and navigation line fitting results of two methods 传统方法均采用固定阈值法寻找列像素累加曲线峰值点,其中,采用findpeaks函数按照固定阈值寻找峰值点,设置相邻峰值点阈值MinPeakDistance为20。图19a利用固定阈值法得到的特征点中伪特征点较多,主要原因是采用了固定阈值寻找列像素累加曲线的峰值点。实际上玉米茎秆在图像上不是等宽度分布的,根据相机“近大远小”原理,距离相机近的株距投影值较大,距离相机远的株距投影值较小,距离相机近的两株玉米之间会检测到多个伪特征点。本文利用高斯滤波平滑列像素累加曲线,对平滑后的曲线取峰值点作为特征点,曲线经过平滑之后,位于两株玉米之间的伪特征点不具备峰值点的特性,与图19a相比,图19b玉米之间的伪特征点明显减少。当利用左右特征点的位置关系剔除伪特征点定位玉米茎秆时,存在误删除根茎特征点的情况,并且两株玉米之间的杂草也容易被误判为特征点。本文基于Hough变换检测玉米茎秆边缘,经过区域扫描剔除伪边缘直线,然后得到茎秆区域范围。这种方法能得到准确的玉米茎秆位置,并且能准确定位玉米根茎,再利用茎秆区域范围即可准确剔除伪特征点,图19c给出了对应于图19b的玉米茎秆区域。 采用人工标记方法获取最佳导航线及最佳角度,并计算提取到的导航线与最佳导航线的角度差,角度差在-5°~5°时认为结果准确。为了验证算法的可行性和实时性,对采集到的50幅样本图像利用最小二乘法线性拟合特征点。统计结果表明,本文算法处理一幅1 280像素×720像素图像耗时约236 ms,特征点拟合准确率为92%。本文使用的Matlab属解释性语言,便于调试验证算法的准确性,采用面向对象等编程语言可进一步提高处理速度。 为验证本文算法的鲁棒性,以人工标记导航线为基准,分别对杂草较多、缺苗、株距不标准3种环境条件的玉米图像进行处理,如表1所示。可见本算法对杂草较多、缺苗和株距不标准的情况具有较强的鲁棒性,3种环境条件下图像处理平均耗时233 ms,平均准确率为90.8%,可以为农业AGV进入环境复杂的玉米田提供实时性好、可靠性强的导航线提取方法。 表1 不同环境下的处理结果Tab.1 Processing results in different environments 试验结果如图20所示,图20a为玉米缺苗并且株间杂草较多的情况,图20b为玉米株距不标准并且行间杂草较多的情况。可以看出,针对株距不标准的情况,本文算法能准确提取特征点,提取出的伪特征点数量较少,基于边缘检测和区域扫描算法能得到准确的玉米茎秆边缘,利用区域定位算法能剔除伪特征点。试验表明,基于边缘检测和区域定位可实现玉米茎秆区域准确定位,玉米株间的伪特征点能被准确剔除,针对缺苗、杂草较多和株距不标准的情况具有较强的鲁棒性。 图20 基于边缘检测和区域扫描的导航线提取结果Fig.20 Navigation line extraction based on edge detection and area scanning 提出一种基于边缘检测和区域定位的玉米根茎导航线提取方法。针对传统方法提取特征点需要设定距离阈值的不足,引入高斯滤波器平滑列像素累加曲线,运用极值法减少玉米根茎伪特征点的干扰。同时,提出基于最远茎秆成像宽度的双侧边缘判别思路,有效筛选出准确的根茎特征点,最终基于最小二乘法拟合得到玉米大田作业导航线。试验表明,本文算法处理一幅1 280像素×720像素的图像耗时约236 ms,特征点拟合准确率为92%。与传统方法相比,本文算法精度高、实时性好,在缺苗、杂草较多和株距不标准的情况仍具有较强的鲁棒性,可以为防治玉米病虫害的智能化农业机械提供视觉导航。4 导航基准线提取与试验分析
4.1 导航基准线线性拟合
4.2 算法性能评价
4.3 算法鲁棒性分析
5 结束语