基于消失点的果树行中心线获取方法研究
2022-10-31周建军
雷 琦,周建军 ,邵 阳
(北京石油化工学院信息工程学院,北京 102617)
我国是水果生产大国,对水果的需求量也在不断增长,近几年来保持每年5%以上的增长速度,因此提高果园的农业智能化水平是现阶段的研究重点[1]。在果园环境中主要由果园机器人来实现采摘、喷药等日常工作。其中,大部分果园机器人的导航路线是果树行中心线,因此提取到的果园机器人导航中心线的优劣直接影响到果园机器人主要作业功能。
目前,一些学者基于色彩、激光、雷达、霍夫变换等[2-3]提出较为成熟的导航中心线提取的算法,然而这些算法更适合用于边界清晰的结构化道路,在路面与环境颜色差异较小的果园跟踪环境下不容易准确得到道路边界。在处理环境复杂的果园道路时,基于纹理特征的算法具有优良的光照鲁棒性、实时性和准确性,因此该方法可以很好的应用于果园道路的识别。Rasmussen C等[4-5]率先提出通过2D Gabor滤波器计算纹理方向后采用全局硬投票算法获取道路消失点位置,但是通过这种方法找到的消失点的准确率不高。Kong等[6-7]根据Rasmussen C等的算法也提出一种新的投票方法,虽然提高了检测结果的精度,但是该算法计算量较大且存在计算时间较长,从而导致实时性不高的问题。为了降低计算量,Bui等[8]提出了一种局部自适应软投票方法来获取消失点,该方法虽然比现有的算法计算速度更快,但正确率也相应的有所下降。
为了从采集的果园道路图像中计算出在树行线中果园机器人行走路径,笔者提出了一种基于纹理方向估计和消失点检测的新道路区域检测方法,在得到果树树行线之间的道路区域后通过算法计算得到果园道路的树行中心线[9]。
1 总体设计
针对果园的环境特点,设计了一种新的基于纹理的果树行消失点检测算法。该算法是在通过纹理分析获取像素点的纹理主方向后,设置置信区间和置信度筛选消失点,最后通过投票算法选出最终的果树行消失点,并以检测到的消失点为基础获取果园机器人导航中心线。果树行中心线获取流程如图1所示。
图1 果树行中心线获取流程Fig.1 Fruit tree row centerline acquisition process
2 树行消失点检测
基于纹理方向估计的消失点检测的方法,使用Gabor滤波器得到果园图片像素的纹理方向,然后根据消失点的置信度与置信区间筛选消失点,将置信区间和置信度在一定范围内的像素保留为剩余消失点,最后投票得出最终消失点。果园道路消失点检测流程如图2所示。
图2 果园道路消失点检测流程Fig.2 Orchard Road vanishing point detection process
2.1 采集图像
图像采集是获取果园导航中心线的第1步,也是获取果园路径中心线的依据。通过搭载在小车上的工业相机Intel RealSense Depth Camera D435i进行图像采集,采集图像之前,首先将D435i相机放置在智能小车的顶部位置。小车在果园环境中采集图片的方式及采集到的图片如图3所示。
图3 图片采集Fig.3 Image capture
2.2 纹理分析
纹理是自然界中广泛存在的一种物体表面特征,是图像的固有属性之一。纹理方向是通过计算的方法获取物体固有的纹理特性,与其他颜色特征算法相比,基于纹理特征的算法能够更有效地提取果园这种道路环境图像像素的特征和方向,便于后续消失点的投票选择和果园路径提取[10]。
基于Gabor滤波器的纹理分析法可以很好地提取目标的局部空间和频域信息,是一种信号变换的空域-频域分析方法。Gabor小波可以敏感地识别图片的边缘,适应光照变化,而且可以进行方向选择和尺度选择,上述特点使Gabor小波被广泛应用于图形处理[11]。Gabor函数表达式为:
(1)
其中:x′=xcosθ+ysinθ;y′=-xsinθ+ycosθ,(x,y)为像素坐标位置;φ为方向角;ω为径向频率;c为倍频常数。
利用Gabor滤波器具有方向选择和尺度选择的特点分析图像,从而提取图像的纹理方向。纹理主方向提取主要步骤如下:
(1)建立Gabor滤波器:在估计纹理主方向时,使用36个方向、5个尺度和c=2.2的Gabor滤波器,即选择φ从0~175°,角度间隔为5°,而选择ω从1~5,尺度间隔为1。选择滤波器方向和尺度是根据实验证明的,方向和尺度在一定数量上的增多会增加检测效果的精确度,但会增加计算量和检测时间。
(2)定义果园道路图像像素点z=(x,y)的灰度值为I(z),计算得到I(z)与Gabor滤波器的卷积结果Gω,φ(Z):
Gω,φ(Z)=I(Z)⊗Ψω,φ(Z)
(2)
(3)计算像素点z=(x,y)在不同方向下的平均纹理响应值Rφ(z),其中Gω,φ(Z)的虚部与实部的平方和为方向φ为像素z=(x,y)的局部纹理特征;
(3)
(4)计算像素点z=(x,y)在纹理方向角θ(z)下的最大平均响应值,并将其设定为像素z=(x,y)在的纹理主方向:
θ(z)=argmaxφRφ(z)
(4)
2.3 筛选消失点
2.3.1 置信度选择
确定消失点的最终位置对果园树行中心线的提取有很大影响,因此精确地找到最终消失点位置非常重要。但是并不是计算得到的果园图像中每个像素的纹理方向都是有效的。置信度概念由此被H.Kong提出,通过定义置信度函数筛选投票点,并考虑投票点与其余消失点之间的距离,这种方法大大提高了消失点检测的准确率。
首先将36个方向的纹理响应值排序r1(z)>…>r36(z),其中r1(z)=Rθ(z),响应值通常在r5(z)~r15(z)之间,局部最大纹理响应值为r5(z)~r15(z)的均值,因此定义像素z=(x,y)的置信水平函数为:
(5)
计算果园图像像素的置信度后,归一化处理所有置信度至[0,1],然后设1个阈值δ×(maxConf(z)-minConf(z)),当该像素的置信度高于阈值,才能作为投票点参与之后的投票算法。换言之,置信水平大于阈值的像素点才有机会成为消失点,通过实验选择阈值为0.5。
2.3.2 置信区间选择
通过设置置信度筛选消失点的方法可以筛选一部分纹理特征较弱的像素点,但这种方法对特征较强干扰点的筛选能力较弱。实际上,如果干扰点具有较强纹理特征,那么他们对检测结果的干扰能力更强。
通过对消失点检测误差较大的图像统计研究发现,干扰点的纹理方向一般是混乱的,这些干扰点通常出现在果园图像的果树的上半部分以及天空与道路的交界处。而果园道路区域大多数像素点的纹理方向在某个区间内是有序的,这个范围就是果园路径的大致方向。
为了解决这些问题,提出置信区间概念,即比较每个像素的纹理方向与设定的置信区间,从而滤掉纹理特征强的干扰点。在实验过程中,选择纹理方向上区间为[20°,160°]的像素作为投票消失点,筛选后的像素可以对选中的投票点进行投票。设置置信区间可以滤掉果园道路图像中大多数干扰点,有效降低了运算量,同时也提高了消失点投票的准确率。
2.3.3 筛选消失点的步骤
(1)首先采用Gabor滤波器提取出果园道路图像像素点的纹理方向;
(2)降序排列36个方向的纹理响应值;
(3)设置投票点的纹理方向为[20°,160°],在纹理方向上筛除像素点,只有满足道路主方向定义的像素保留为投票点;
(4)对筛选出来的像素计算置信度,最后得到有效投票点。
2.4 消失点投票算法
筛选掉无效消失点后,可以通过投票算法得到最终消失点。Kong等[6]提出的局部软投票算法(LASV投票算法)如图4所示。
图4 局部软投票的投票区域Fig.4 Voting area for local softballot
Vote(P,V)=
(6)
3 路径拟合
道路区域被定义为2个检测到的道路边界之间和估计的消失点以下的区域。提出以消失点为约束条件得到果园路径边界。
3.1 道路边界检测算法
定义斜率分别为k1、k2且通过消失点V的2条直线,将他们作为果园路径的边界线,边界方程式为:
(7)
设消失点p0的坐标为(x0,y0),则方程的截距b1、b2表达式为:
(8)
将式(8)代入式(7)中,得到有1个末知变量的方程式:
(9)
问题最终转化为求解式(9)中的斜率k1、k2,只要得到k1、k2的值,就可以得到一个形状为三角形的果园路径边界。
从纹理分析中可以看出,大多数的像素纹理方向与路径方向一致,即道路区域内的路径边界、车辙等直线信息与果树行边界位置大致相同,由此可以推断,像素纹理方向最多的方向即为道路边界。因此,提出了一种基于纹理方向的果园路径检测算法,即果园路径方向为纹理分析中像素点纹理方向最多的方向。
为了减少运算量,以检测到的消失点位置进行区域选择,去除与果园道路区域无关的区域干扰。通过采集到的图片分析可知,图片上半部分基本上是与果园路径无关的树冠或天空等背景信息。因此将道路消失点所在位置以下部分作为有效道路区域。
得到果园有效道路区域后,路径边界分为左右边界两个方向,根据实际情况分析定义果园路径左边界的有效区间为20~90°,果园路径右边界的有效区间为90~160°。由于设计的算法中进行纹理分析的滤波器有36个方向,因此定义36个累加器用于路径方向的统计。对每个纹理方向上的有效投票点数量进行统计后,在左右边界线的取值区间内,定义果园路径方向为有效投票点数量最多即累加器值最大的方向作为果园路径方向。
对定义的有效区域和范围内的每个纹理方向上的有效投票点数量进行统计后,得到果园路径的最大可能方向。在此基础上,直线方程的斜率k1、k2可以由公式(10)确定:
k=tanθ
(10)
将式(10)代入到式(9)中,就可以得到果园路径的左右2条边界线。
3.2 求取中线
在得到果园路径左右两边的直线路径之后,通过以下步骤求取中线:①定义其中1条果园路径直线上的任意2个坐标(x1,y1)和(x2,y2);②将y1和y2分别带入另一条路径直线方程中以求出对应的2个横坐标x3和x4,得到左右两边果园路径上的4个坐标点:(x1,y1),(x2,y2),(x3,y1),(x4,y2);③果园路径的中心线2个新的坐标为(x5,y1),(x6,y2),其中,
x5=(x1+x3)/2
(11)
x6=(x2+x4)/2
(12)
④利用(x5,y1),(x6,y2)可求出果园路径的中心线,果园道路中心线的表达式为:
y=ax+b
(13)
4 实验结果与分析
在实验过程中,第1部分实验对H kong消失点检测方法和笔者提出的消失点检测方法进行性能比较。第2部分实验检验了获取果园路径边界线以及导航中心线的准确性。实验果园图片数据集是通过采集北京市大兴区庞各庄多个果园在各种光照及环境下的图片形成,共有500幅。使用matlab2017a进行程序编写工作。实验的部分结果如图5所示。
图5 部分实验结果Fig.5 Partial experimental results
从图5(a)与图5(d)中可以看出,人工标注的道路消失点位置与消失点检测方法检测到的消失点位置几乎相同。从图5(d)与图5(e)中可以看出,所提出的消失点检测方法相较于没有设置置信区间的H kong检测方法准确率有所提高,所以以消失点为约束获取的道路区域也更加精确。从图5(f)中可以看出,提出的果树行中线的提取方法在果园环境中应用良好。
测试500幅采集的果园道路图像后得出的算法性能参数如表1所示。从表1中可以看出,H Kong算法的运算时间远超笔者所提出算法的运算时间,且所提算法相较于H Kong算法准确率也提高了6.6%,说明所提的置信区间的设置大大降低了算法的运算量,同时提高了算法准确率。
表1 算法性能比较
5 结论
为了更加准确地获取果园机器人导航路径以提高果园作业效率,笔者对果树行导航中心线的提取方法进行研究;提出了基于纹理分析的果树行消失点检测算法,然后以检测到的消失点为约束获取较准确的果园道路边界线,最后通过计算提取果树行导航中心线。实验以500幅果园道路图像为数据集,测试H Kong算法和提出的算法提取果树行消失点的准确率,结果表明:相较于H Kong算法,提出的算法准确率提高了6.6%,且能够准确快速地获取果树行导航中心线。下一步笔者将会着重研究果园机器人在果树行转弯处的导航路径提取方法。