基于机器视觉边缘检测的园林喷药机器人导航线提取*
2021-04-09陈继清王志奎强虎吴家华赵超阳谭成志
陈继清,王志奎,强虎,吴家华,赵超阳,谭成志
(广西大学机械工程学院,广西制造系统与先进制造技术重点实验室,南宁市,530007)
0 引言
随着社会的发展和城市的建设,人们对城市绿化的要求越来越高,城市园林绿化建设已成为城市环境建设的重要组成部分[1-2]。但是在园林植株的维护上,要付出高昂的成本。
传统上主要采取人工的方式维护园林,这种方式存在效率低下,成本高的缺点,甚至很难达到预期效果。在农业已经广泛将小型移动机器人应用到实际工作中,包括果蔬采摘机器人、除草机器人、施肥机器人、喷药机器人等,这些机器人结构紧凑,灵活方便极大提高工作效率[3]。类似的也可以将这些机器人应用在园林的维护上,例如对园林科学防治上,往往都要求喷洒药物均匀且在规定的时间内完成,人工就很难满足要求。郭亭亭等[4]开发了一套基于机器视觉的喷药机器人,用于温室内杂草的防治。丁天航等[5]研究了风送式果园喷雾机发展现状及趋势,指出风送式果园喷雾技术不仅能有效提高农药利用率,还能降低对环境的污染。机械化喷雾是提高喷雾作业效率和喷雾质量的重要手段,也是现代规模化水果产业发展的必然趋势[6]。随着机器视觉技术的发展,将机器视觉技术应用在移动机器人提高机器的智能化程度。马志艳等[7]对基于视觉除草关键技术做了研究。韩正笑等[8]利用图像处理技术成功计算出稻田杂草盖度。段宇飞等[9]基于机器视觉完成了油茶果壳与果籽的分选。徐雪峰等[10]开发了一套基于机器视觉的智能采摘平台,实现对目标的采摘,准确率达到94.67%。将机器视觉应用于自动化的喷药移动机器人是目前自动化导航的发展方向,而导航线的提取是视觉导航机器人的关键技术。
刘阳等[11]在获取道路两侧树干后,先进行边缘提取,并以其内侧角点作为特征点,拟合左右边界线,然后求其中线作为导航基准线,实现果树林间移动机器人的导航线提取。侯雨等[12]利用改进的Canny边缘检测算法实现对大豆杂草的识别。徐黎明等[13]利用SUSAN算子不需要梯度计算的特点,自适应选取阀值进行边缘检测,实现杨梅果实的边缘提取。刁智华等在2015年提出一种通过提取作物行骨架,拟合作物行直线的导航线提取算法。张西亚等[14]利用粒子群算法优化Ostu算法二值化图像,然后用位置聚类算法提取导航点,最后用最小二乘法拟合导航线。李西锋等[15]采用最小二乘法拟合直线,解决了AGV小车的视觉引导。Keun HaChoi等[16],基于庄稼的几何形态计算导航点,然后采用加权最小二乘法拟合出导航线。将Hough变换技术应用于公路车道线提取、农田作物行提取也得到了广泛的研究[17]。袁挺等[18]利用改进的Hough变换拟合导航路径,导航线平均识别率93.9%。赵颖等[19]利用过已知点的Hough变换实现犁沟线的识别。胡波等[20]在连通区域中提取出图像特征点,实现导航线的提取。姜汉荣等[21]在HIS空间中实现对AGV道路标线中心线提取。
上述方法对于导航线的提取都取得了一定的效果,但是局限性也比较大,难以在园林环境复杂的道路上取得良好效果。最小二乘法拟合导航点极易受到干扰点影响,而Hough变换存在计算量大,耗时等缺点。本文采取“化曲为直”的思想,截取相机拍摄图像的部分区域作为感兴趣区域,这样不仅解决园林道路弯曲的问题,而且也减少图像的计算量。利用道路和绿植的颜色差异,提出适合园林的灰度化因子二值化图像。根据噪声和道路在几何上的差异,来提取道路边界点拟合出道路边界线。计算梯形道路的中轴线作为导航线,为园林移动机器人提供导航路径。
1 试验平台的搭建及工作流程
本文主要研究园林移动机器人的导航,所以暂时不考虑喷洒模块。试验平台如图1,主要包括履带车底座、主控计算机、摄像模块、电机运动控制模块;实验数据主要在平台MATLAB上处理;摄像机选用大恒图像的工业相机MER-132-43U3C-L,采用USB3.0传送数据;上位机采用PC电脑,主要负责处理摄像机传来的图像以及和下位机进行通信;下位机采用STM32F103型号的单片机,使用串口和上位机通信,主要负责履带车的运动控制。图像处理软件在VisualStudio平台下开发,通过Arm-linux-gcc完成程序的交叉编译,然后移植至主控计算机。
图1 试验平台
摄像机采集到图像序列后发送给主控计算机,主控计算机利用本文算法对道路图像进行分析处理提取出导航线,然后通过UART串口传输导航参数至小车运动控制模块,最后驱动履带车沿着导航线运动,实现小车的自主导航。硬件平台整体框架如图2所示。
图2 硬件平台总体框架图
2 材料和方法
2.1 图像采集
本文主要以园林结构化道路为研究对象,在广西大学园林采集常见的道路图像一共786幅,本文采集的道路图像主要考虑道路周围环境复杂,道路被人为干扰以及道路边界被杂草干扰三种情况,其中复杂环境路况下采集235幅图像,人为干扰路况下采集350幅图像,杂草干扰路况下采集201幅图像。其中70%幅图像作为训练集,剩下30%幅图像作为测试集验证本文算法性能。采用大恒的工业相机MER-132-43U3C-L采集图像,摄像头支架固定在履带车正中间,摄像机距地面垂直高度为1.5 m,图3(a)是相机图片,采集的道路图像如图3(b)所示。
(a)摄像机
2.2 图像截取
园林中多为人工修建的小路,道路两旁规则,大都呈现直线型边缘,但是也有道路复杂的弯曲小路,因此本文采用化曲为直的思想,只截取拍摄图像的部分区域作为研究对象。经350组试验验证,截取拍摄图像的最后200像素行作为感兴趣区域取得的效果最好,不仅解决园林道路存在弧度的问题,而且简化图像处理的计算量、减少干扰,从而保证导航路径的精度和实时性,截取图像如图4(a)所示。
(a)截取道路图
2.3 图像预处理
2.3.1图像灰度化
相机拍摄的图像以RGB格式保存,其他颜色空间需要从RGB颜色空间转换得到,为了减少图像预处理的时间,本文在图像的RGB颜色空间进行分析。从拍摄的图像可以看出,园林中植物种类较多,不仅有绿色植被,还有红色以及黄色杂草等植物,道路环境的复杂性给图像预处理增添了难度,因此需要选取合适的灰度化因子来减少环境中的干扰。在图像中,可以明显看出道路环境虽然复杂,但是道路的颜色和绿植有着明显的差异,因此本文提取一种针对道路的灰度化因子,使道路与背景良好分割。
分析图4中R,G,B三个通道的图像可知,B分量中,路面和背景的差异较大,对比明显。经过200组灰度试验,提出式(1)灰度化因子,灰度化效果如图4(f)所示。图4(e)是采用超绿灰度化因子得到的,可以看出超绿灰度化因子能很好区分绿色植物和道路,但是对于图中的红色植物误将分割为道路,不能适用于园林中复杂的环境。通过对比可以看出,本文提出的灰度化因子得到较好效果。
(1)
2.3.2 图像二值化及形态学处理
二值化图像是数字图像处理的重要步骤,常用的全局图像二值化算法有双峰法、迭代法、Ostu法等。杨振宇等[22]利用Ostu方法成功将黄瓜从背景中分离出来。本文采用最大类间方差法(Ostu)进行二值化图像。Ostu法是一种自适应阈值分割算法,针对园林复杂的环境,可以很好的将道路和背景区分,得到比较满意的二值化效果。
得到的二值化图像,常常会伴随着噪声和空洞的一些干扰,因此需要对图像进行形态学的处理,消除干扰。为了减弱这些孔洞对导航线提取的影响,本文使用数学上的闭运算来填补孔洞,如式(2)所示。
A·g=(A⊕g)Θg
(2)
1)首先使用结构元素g对图像A膨胀,如式(3)。
(A⊕g)={x|(g+x)∩x≠}
(3)
2)然后使用结构元素g对膨胀过的图像进行腐蚀,如式(4)所示。
BΘg={x|(g+x)⊆A}
(4)
其次,继续对图像进行中值滤波处理,使图像变得平滑,低噪。
2.4 导航线提取
2.4.1 边缘检测
基于相机的成像原理,拍摄的道路图像近似于梯形。因此,要将道路的两侧边缘检测出来,进而分割出实际中的道路图像。由于图像中,边缘方向的像素值不会发生改变,而垂直于边缘的像素值发生变化,因此传统图像边缘检测都是采用微分算子,例如Roberts算子,Sobel算子,Prewitt算子,Canny算子。但微分算子会进行求导运算,这加大对计算机的要求,降低处理效率。马志艳等[23]就利用Canny算子对二值图像进行边缘检测,提取玉米的轮廓,但单张图像处理时间达到721 ms,实时性得不到保证。
本文利用噪声和道路在几何形状上的差异来检测道路边缘。噪声在横向上的宽度值远远小于道路的宽度值,设置合适的阈值T,即可判别出道路和噪声。二值图像对应的矩阵Vij代表每个像素值,其中图像中白色像素对应1,黑色为0,M代表图像矩阵的行数,N代表图像矩阵的列数,检测算法主要分三个部分。
1)逐行扫描,对连续白色像素值进行累加,求出白色区域的横向宽度S,公式如式(5)。
(5)
2)连续白色区域累加值(几何上表示白色区域宽度S)与设定阈值T进行比较,S>T判定白色区域为道路,反之为噪声。
3)当满足S>T,停止扫描,将记录当前扫描的行i以及列j,根据式(6)计算出边界点列坐标,并将边界的坐标(i,St)加入到边界集合C中。
St=j-S
(6)
以检测左边界为例,具体流程图如图5所示。
图5 边界检测流程图
2.4.2 感兴趣区域截取
检测出道路的边界线以后,要进行道路的分割。实际园林中的道路,都是人工修建的矩形,道路两侧呈直线,但相机拍摄出的道路图像形状为梯形。准确确定梯形的四个顶点,即可提取出道路。
考虑到实际图像中噪声的干扰,为了能包含至少两行道路的边界信息,本文取图像前五行道路边界点的均值作为梯形上底的两个顶点,取图像的后五行边界点的均值作为梯形下低的顶点。计算公式如式(7)所示。
(7)
式中:Sl1,Sr1,Sl2,Sr2——四个顶点列坐标;
Li——左边界列坐标;
Ri——右边界列坐标。
得到梯形道路四个顶点坐标分别为(1,Sl1)、(1,Sr1)、(M,Sl2)、(M,Sr2),由式(8)、式(9)得到左右边界方程。
(8)
(9)
2.4.3 提取导航线
传统上采用最小二乘法或者Hough变换来提取导航线。其中最小二乘法受干扰点的影响比较大,而Hough变换的计算量大,不能满足实时性的要求。本文在2.4.2计算出梯形道路四个顶点基础上,提取导航线。
梯形道路的中轴线即为自动化车辆的导航线,由梯形的几何性质可知,梯形的上底和下低中点连线,即为所要提取的导航线。
根据式(10)、式(11)计算出梯形上底和下低中点(1,Z1)、(M,Z2),根据直线的一般式(12),将上底和下低中点代入,得到导航线(13)。
(10)
(11)
Ax+By+C=0
(12)
其中:A=x1-x2;B=y1-y2;C=x2y1-x1y2
(M-1)x+(Z2-Z1)y+(M×Z1-Z2)=0
(13)
3 试验与分析
3.1 算法流程
试验在广西大学公园进行,拍摄图像大小为640像素×480像素;为了验证本文算法的有效性,选取干扰较大,绿色植物丰富的图像作为研究对象,拍摄图像如图3(b)所示,图4(a)是截取的目标区域作为提取对象。图4(b)、图4(c)、图4(d)是目标区域的RGB分量图,图4(f)是采取本文灰度化因子得到的灰度图像。实验流程和结果如图6所示,其中图6(a)是采用Ostu方法得到的二值图像,由图可知存在大量噪声干扰,采用形态学处理以及中值滤波,可消除大部分噪声,再经过孔洞填充后得到图6(b)所示的图像。利用本文边界检测算法得到道路的边界,如图6(c),图中三角符号是检测出的边界线,从图中得到,检测结果受噪声干扰小。根据本文的边界检测算法检测出道路边界后,分别取出左右边界线前5行和后5行,边界坐标并根据式(7)计算均值后,得到梯形道路的四个边界顶点坐标,如表1所示,其中均值A表示梯形左上角顶点坐标,均值B是左下角顶点坐标,均值C和D分别表示梯形右上角和右下角顶点坐标。
(a)二值化
表1 道路顶点坐标
计算出道路梯形的四个顶点后,拟合出道路边界,如图6(d),并将道路区域分割出来,如图6(e)。对截取的道路区域计算出梯形道路上边和下边的中点坐标,得到中轴线,提取出导航线,结果为图6(f)所示。最后提取效果如图6(g)~图6(h)所示,虚线代表拟合出的道路边界线,实线是提取的导航线,从图中可以得到,提取的导航线分布在道路中间。
3.2 算法对比
为了验证本文算法,随机选取了不同的园林道路进行实验验证,图7显示了常见的路面干扰路况。图7(b)是道路周围环境复杂的路况,图7(d)是在人为干扰下的路况,图7(f)是道路边界有杂草干扰下的路况,图7(a)、图7(c)、图7(e)分别是对应二值化图像,分别在这些路况应用本文算法和最小二乘法提取导航线。提取的边界线和导航线如图7所示,其中实线是最小二乘法拟合出的直线,虚线是本文算法拟合出的直线。
(a)复杂环境下路况
根据式(7)算出道路顶点后,根据式(8)拟合出道路两侧边界线,然后算出道路上底和下低的中点坐标,如表2所示,表2中的实际中点坐标,是由人工在实际道路中测量得到,根据式(12)算出中轴线方程,用k,b表示,如表3。为了验证本文算法的精度,分别计算本文算法、最小二乘法和人工计算的实际导航线与水平方向的夹角,如表4所示。由此算出不同算法拟合出的导航线误差,如表5所示。
表2 不同算法法提取导航路径中点坐标
表3 不同算法提取导航路径方程
表4 不同算法提取导航线水平夹角
分析表5中实验数据,图7(a)是复杂环境下的路况,由于道路旁边红色植被的影响,二值化后并不能得到完整的边界线,图中道路左侧边界线有少量噪声干扰。本文算法在左侧边界线有干扰的情况下准确拟合出了边界线,最后提取出的导航线误差在0.143°,而使用最小二乘法提取出的左侧边界线受干扰点影响,最终提取出的导航线误差是0.72°,高出本文算法0.577°。
表5 不同算法提取导航路径精度
图7(c)是常见的人为干扰边界路况,从二值图像可以看出,道路的左边界,有很多干扰点并且严重偏离道路真实边界线。本文算法在这种路况下提取的导航线误差为0.14°,而最小二乘法受干扰点影响严重,误差高达2.01°,高出本文算法1.87°。图7(e)也是常见的道路边界被周围杂草干扰的路况,自然生长下道路旁边的杂草会连续分布在道路边界,从二值图像可以看出,干扰点存在道路边界连续的一部分。最终本文算法提取的导航线误差为0.56°,最小二乘法的误差为2.83°,高出本文算法2.27°,得到的导航线已经失去应用意义。
经过三种路况的对比,本文算法提取的导航线误差不超过0.6°,表明本文算法抗干扰性强,而最小二乘法在道路边界受到轻微干扰情况下,还能准确拟合导航线,但是当干扰较大时,算法拟合出的导航线误差超过2.8°,严重偏离了实际的导航线。
通过实验对比,结果表明本文所提算法在精度上优于最小二乘法。由图7不同环境下导航线拟合结果可知,本算法对不同干扰,都表现出良好的效果,抗干扰能力强,算法鲁棒性好。
表6是不同导航线提取算法耗时对比,分析表中数据可知,本文所提算法用时为53 ms,比最小二乘法快22 ms,比Hough变换快55 ms,使得移动机器人更快的做出响应,更好的满足实时性的要求。
表6 不同法提取导航路径耗时
4 结论
本文针对园林的结构化道路环境复杂,干扰严重的问题,提出一种基于边缘检测的导航线提取算法,取得如下成果。
1)采取“化曲为直”的思想,从拍摄图像中截取一部分图像来提取导航线,能很好解决弯路情况,适用园林中道复杂的道路。这种处理方法减少计算量,实时性得到保证,提高算法的鲁棒性。
2)采取改进的灰度化因子对图像灰度化处理,能很好适应园林中颜色丰富的复杂环境,较好区分道路和背景,受光照影响较小。
3)利用噪声和道路在几何形态学上的差异,提出设置阈值T的道路边界检测算法,计算简单,噪声影响较小,算法效率高,鲁棒性好。
4)本文将园林中道路近似为梯形,通过计算梯形中轴线提取导航线,算法简单,执行速度快,可以满足实时性要求。
通过试验表明,该算法能适合大部分的园林场景,在不同的路面,干扰情况下都表现很好。在路面周围环境复杂的路况下,本文算法提取的导航线误差仅为0.143°,人为干扰和杂草干扰这样存在严重干扰的路况,本文算法误差小于0.6°,显著优于传统最小二乘法2.83°的误差。本文算法平均处理一幅图像仅耗时53 ms,相比于传统最小二乘法和Hough变换法,本文算法的抗干扰性更强,精度更高,耗时更少。