2. 重庆交通大学 机电与汽车工程学院, 重庆 400074;
3. 重庆长安工业(集团)有限责任公司 特种车辆研究所, 重庆 400023
随着无人驾驶车辆的快速发展,道路检测起着越来越重要的作用。目前,国内外关于道路检测的研究主要集中于结构化道路上,但是在实际车辆行驶中,常常会遇到没有明显标记且环境背景复杂的道路,如:乡村小道、沙漠公路等。因此,找到一种抗背景干扰性强、精度高、实时性好的非结构化道路边缘检测方法具有重要意义。虽然非结构化道路没有明显的道路边缘特征,但是由于道路较为松垮,车辆驶过后可能留有车辙等痕迹,而这些痕迹一般会趋向收敛于道路远端,称为消失点。因此利用消失点作为约束进行非结构化道路检测,可以大幅度提高非结构化道路检测精度[1]。
目前,针对非结构化道路消失点检测的方法主要分为基于直线交点和基于纹理方向两大类。利用直线交点的方法主要是通过获取图像中的道路边缘,并估计边缘的交点得到道路的消失点[2-3], 韩冰心等[4]采用基于随机采样一致性(random sample consistency, RANSAC)的消失点估计方法, 利用正交性约束生成候选假设,然而RANSAC算法只对具有明显道路线的场景有效,因此此类方法面对道路线不明显且具有大量背景干扰的场景效果不佳。Rasmussen[5]首次提出了利用纹理方向来估计消失点。为了解决单一尺度下容易遗落信息的问题,Kong等[6]提出了使用36方向,5个尺度的Gabor滤波器组来获取纹理响应,然而该方法计算量大,不具有高效性。Moghada等[7]提出了联合四方向Gabor滤波器,Jin等[8]提出了改进的联合四方向Gabor滤波器,采用粒子滤波的消失点跟踪方法,该方法虽然有效,但是算法复杂,且需要连续的非结构道路视频。为了解决实时性问题,黄俊等[9]提出了采用局部二值模式(local binary patter, LBP)特征来提取图像纹理特征,王先杰[10]采用类Haar纹理特征替代传统的Gabor纹理,虽然可以提高算法的效率,但是在精度上略显不足。为解决精度问题,俞骏威等[11]采用神经网络的算法来计算消失点,Liu等[12]结合卷积网络和Heatmap回归来检测消失点,基于神经网络的算法可以显著提高消失点的检测精度,但是时间复杂度较高,满足不了实时性的要求。
综上所述,设计一种兼备较高精度与低时间复杂度的检测算法具有重大的意义。通过深入研究先前消失点检测方法在精度或者效率方面的问题,针对背景噪声干扰导致算法精度和效率低下的问题,本文综合考虑投票点位置信息、候选点范围和投票角度优先,创新性地提出一种结合立体视觉的非结构化道路消失点检测方法。首先采用半全局立体匹配算法快速得到道路场景视差图,通过广度优先图遍历算法得到背景区域;设计五尺度四方向的Gabor滤波器高效地得到道路图像纹理响应,并通过幅值校正减少检测误差;结合背景区域,设计了一系列投票点的选择规则和动态调整的候选点范围策略;设计角度优先的投票函数。本文所提方法综合考虑了投票点位置的影响,来提高算法的检测精度与抗干扰性能;结合实际道路情况设计动态的候选点区域范围选择,提高算法的效率;综合考虑距离和角度问题设计更为合理的投票函数,使候选点得票数更为合理,进一步提高算法的检测精度。
1 背景区域估计通过大量的研究发现,背景干扰是影响消失点检测精度的主要因素之一,而且消失点检测最为重要的信息线索往往都来源于路面区域。因此本文创新性地提出了一种基于双目立体视觉的背景区域估计方法。首先采用SGM算法[13]计算道路图像视差图,接着建立参考栅格模型。如图 1所示,模型的零平面(即Y=0)与路面平行, 视差图的行和列与世界坐标系X轴、Y轴平行, Z轴指向场景深度。设在视差图像平面坐标系, 一个视差为d的像素点(x, y), 将其映射到栅格单元(u, v)
![]() |
(1) |
![]() |
图 1 栅格地图示意图 |
式中: m, n为控制栅格模型尺寸的常数;
![]() |
(2) |
式中,x0, y0为像平面x轴、y轴中心坐标。则可将公式(1)转换为
![]() |
(3) |
式中: M为映射关系;B为双目系统中基线长度;f为焦距,通过(3)式可计算各个单元的X, Z坐标。
计算每个栅格单元的Y坐标。同理, 在像平面坐标上, 视差为d的像素(x, y)与单元(u, v)的映射关系:
![]() |
(4) |
最后计算相邻单元间的斜率
![]() |
(5) |
式中: (u, v)和(p, q)为相邻单元, ‖·‖为二范数。给定一个阈值εl, 斜率S(u, v, p, q)>εl, 则认为2个单元不相通。得到两两相邻单元间的联通性后, 设汽车位于路面上, 则以汽车所在单元为起点采用广度优先算法遍历栅格模型, 求得所有与路面不连通单元, 那些单元即为背景区域。
背景区域的步骤为:
step1 获得双目图像的左视图I, 采用SGM算法获得视差图I视差。
step2 利用(1)式, 将视差图I视差转换为栅格模型(u, v)。
step3 通过(3)~(4)式分别计算栅格模型各个单元的X, Y, Z坐标。
step4 通过(5)式计算相邻单元之间的连通性。
step5 采用广度优先算法遍历栅格模型, 获得背景区域。
图 2给出最后结果, 白色区域为检测得出的背景区域Ibk, 本文设置背景区域值为1, 即Ibk(x, y)=1, (x, y)∈Ibk。
![]() |
图 2 背景区域估计 |
道路的纹理特征提取是消失点检测的第一个步骤, 本文综合考虑效率和精度问题, 从五尺度上对图像纹理进行提取, 虽然提高更多尺度可提高纹理提取精度, 但换来的是效率大大降低; 采用四方向Gabor滤波器, 道路方向的纹理基本上位于0°, 45°, 90°和135°之间, 因此采用四方向既满足纹理方向需求, 又可以减少滤波次数, 降低算法复杂度, 具体定义为
![]() |
(6) |
式中: a=xcosθ+ysinθ, b=-xsinθ+ycosθ, θ=0°, 45°, 90°, 135°, 为4个方向, ω0=2π/λ为径向频率, c=π/2为频倍常数, λ=3, 9, 12, 32, 64, 为5个尺度的空间频率。设灰度图像为I, 将图像I与确定方向θ和确定尺度ω0的Gabor滤波器进行卷积, 可得能量响应ξθ, ω0(x, y)为
![]() |
(7) |
式中: ⊗为卷积符号。由于ξθ, ω0(x, y)包含实部与虚部2个分量, 一般取能量响应ξθ, ω0(x, y)的实部与虚部的平方根作为总的能量响应幅度
![]() |
(8) |
![]() |
(9) |
式中: Eθ(x, y)为每个方向θ在5个尺度下能量响应幅度Eθ, ω0(x, y)的均值。
值得注意的是, 由于传统的Gabor滤波器估计的纹理不总是精确的, 本文在纹理方向上设置纹理方向置信度Conf(x, y)来剔除不可靠纹理。具体为:
step1 将(9)式得到的4个方向平均能量响应Eθ(x, y)按降序进行排列。
step2 假设Eθ1(x, y)为4个方向上最大的能量响应, Eθ4(x, y)为4个方向上最小的能量响应, 则每个像素的方向置信度定义为
![]() |
(10) |
式中, Eth为阈值常数。
本文设计从五尺度的空间频率对图像纹理进行提取, 低空间频率可更好地提取弱纹理响应, 高空间频率可更高效率地提取图像纹理, 结合多尺度纹理信息, 既可以提取弱纹理响应, 又可提高算法效率。采用四方向来获取纹理信息, 在效率上: 若算法均为五尺度, 8, 16和32方向相比四方向则需要增加20, 60和140次滤波; 精度上: 虽然8, 16和32方向可从更多方向上获得纹理响应, 但是可能也会获得更多的错误纹理, 例如当背景区域面积大于路面区域时, 此时更多方向上获得的纹理可能均为背景区域纹理, 此时反而降低算法精度, 而本文仅采用四方向是由于已去除背景区域的影响, 此时获得的纹理大部分均为路面纹理, 而路面纹理方向基本位于0°, 45°, 90°和135°方向上, 因此本文仅采用四方向来获取纹理精度上可得到满足, 效率上也大大提高。
2.2 基于背景区域的投票点选择传统的选择方法着重于投票点的得分数, 而忽略投票点的位置影响, 一些来自背景区域的干扰点也被认为是投票点[14-15], 这不仅大大增加了投票阶段的时间成本, 也严重地影响了消失点检测的精度。因此根据求得的背景区域Ibk, 本文设计了一系列投票点的选择规则, 如下所示:
规则1 根据(10)式可以得到每个像素的方向置信度Conf(x, y), 置信度越低, 表明此像素点的方向性越差, 在各个方向上能量响应强度相似, 则不应作为投票点
![]() |
(11) |
式中: Votedot(x, y)为投票点地图, Conf(x, y)为像素点置信度, 数字1表示可作为投票点, 0表示不可作为投票点。
规则2 由于弱纹理像素的特点表现为能量响应值小、纹理方向性弱, 若作为投票点, 则会降低检测的精度, 应去除
![]() |
(12) |
式中: E(x, y)为像素点的能量响应; E为所有像素的能量响应强度; β为比例常数, 文中取2.5。
规则3 投票点的位置也会影响最终估计精度, 认为位于背景区域下像素点不应作为投票点
![]() |
(13) |
式中,(x, y)为图像的坐标。
本小节在投票点选择上, 去除了置信度低、响应弱和背景区域干扰的投票点, 如图 3所示, 相比只有规则1的投票点选择方法,本文方法选择的投票点数量大大减少, 提高了算法计算效率, 而且有效地抑制了背景噪声点的干扰, 提高了算法的精度。
![]() |
图 3 投票点 |
传统方法认为能量响应最大的方向即为纹理主方向, 而忽略了其余能量响应的影响。研究表明若某个像素点的纹理主方向离某个响应越近, 该方向的响应就越强, 则该方向反方向的响应就越弱, 因此将2个纹理响应最强方向的反方向能量响应视为最弱的2个方向。本文设计了一种采用最弱方向的响应来修正主方向的估计的方法。
由于本文所采用4个方向的响应正好两两垂直, 在进行幅值矫正时无需进行重新计算, 则响应矫正为
![]() |
(14) |
式中: Eθ1(x, y)和Eθ2(x, y)为2个最大的能量响应, Eθ1⊥(x, y)和Eθ2⊥(x, y)为最小的能量响应, Eθ1*(x, y)和Eθ2*(x, y)为修正的能量响应。接着采用向量合成的方法可得到主能量响应和主方向
![]() |
(15) |
式中: Eθ(x, y)为主能量响应; Eθx(x, y), Eθy(x, y)为矫正后的响应在x, y轴上的分量, 如图 4所示, θ(x, y)为最终的纹理主方向。
![]() |
图 4 向量合成示意图 |
很明显本文计算的纹理主方向, 综合考虑了其余方向能量响应的影响,更加合理。
2.4 候选点范围确定在候选点的选择上, 文献[16]认为道路图像的整个上部分像素点都应视为候选点。然而, 根据对大量图像真实消失点位置的观察, 发现消失点通常处于路面区域的上方或者处于路面区域, 且基本不会处于路面区域的两侧, 基于这一规律, 本文设计了一种结合背景区域的动态调整候选点搜索范围策略。设非背景区域为路面区域Iroad
![]() |
(16) |
式中: 数字1表示标记成路面区域。
求取路面区域的面积, 根据面积大小寻找一条直线y=y*, 接着计算背景区域面积, 根据面积占比寻求两条直线x=xleft, x=xright, 候选点应处于3条直线围成的区域之内, 具体为
![]() |
(17) |
![]() |
(18) |
式中: Aroad为路面区域面积; H和W为图像的长宽; τ为调节系数, 取0.25;Candidate(x, y)为候选点区域, Abk, L和Abk, R为背景区域Ibk的左右面积, 如图 5所示。图 6中黑色区域的像素点将不作为候选点。
![]() |
图 5 左右面积示意图 |
![]() |
图 6 候选点范围 |
候选点确定步骤:
step1 通过(15)式获得路面区域。
step2 计算路面区域面积, 根据(16)式求得直线y=y*。
step3 计算背景区域左右区域面积Abk, L和Abk, R, 根据(16)式计算直线x=xleft, x=xright。
step4 3条直线围成的区域即为候选点区域, 根据公式(18)求得。
结合背景区域和路面区域, 自适应调节候选点范围, 去除无用候选点, 提高算法的效率。
2.5 投票策略在确定了投票点与候选点后, 通过投票策略即可实现消失点的定位。文献[14]提出了一种基于距离的投票策略, 但是由于背景干扰引入了大量的噪声投票点, 靠近这些噪声投票点的候选点会得到更多的选票。
因此, 本文为每个投票点建立一个投票区域, 如图 7所示的绿色区域, 投票点P为其区域的候选点进行投票。
![]() |
图 7 投票面积示意图 |
投票区域确定规则:
规则1 应该保证投票区域位于投票点之上。
规则2 投票点到候选点的方向与该投票点的纹理方向
规则3 由于II1I2与JJ1J2区域远离投票点P, 将不作为投票区。
本文提出一种结合角度控制的投票函数, 具体为
![]() |
(19) |
式中: d(P, V)2=((xP-xV)2+(yP-yV)2)/Ldiag, Ldiag为图像的对角线长度, P为投票点, V为该投票点确定的投票区域内的候选点, υ为比例常数, 设置为0.2。其余参数: dPK=H×0.4, dPQ=H×0.55, 容忍角度ε=5°。
本文的投票函数结合角度控制, 不仅仅考虑距离影响还综合考虑角度的影响。很明显于与纹理方向
由于不存在用于非结构化场景中消失点检测的先验标准数据集, 所以本文构建了消失点检测数据集来检测算法的可行性。由于该文需要采用双目图像, 目前流行的立体图像数据集有Middlebury与KITTK2015[17]。KITTK2015数据集包含1 000多对立体图像, 均为实际驾驶过程中拍摄的场景, 挑选其中800张属于道路场景的图像作为实验数据。本文首先将所有图像的尺寸归一为600×200, 接着为了评估算法检测性能与人类对消失点位置的感知, 邀请10人为其讲解消失点概念后, 手动标注每张图像的消失点的位置, 作为真实的消失点, 最后给出本文算法在该数据集上一些道路场景的检测结果, 如图 8所示。
![]() |
(注: 红色星型标记为真实消失点位置, 紫色圆形标记为本文算法检测出的消失点) 图 8 本文算法在不同道路场景的检测结果 |
如图 8所示, 本文提出的方法不管是在乡镇道路、城市道路和乡间道路上检测精度都很高, 而且即使道路两旁存在大量的背景干扰, 本文方法都能准确地检测出消失点位置。
3.2 对比实验为了更进一步凸显出本文所提方法的可靠性, 将本文提出的方法与现有的5种算法进行比较, 分别为: Huang方法[9]、Moghada方法[7]、Ding方法[18]、Yu方法[11]和Hang方法[4]。Moghada方法被认为是目前计算速度最快的方法; Yu方法是基于深度学习的检测方法, 具有较好的精度; Hang方法采用非线性直线拟合的方式, 具有较好的效率; Ding方法采用暗通道先验概率来检测消失点, 可减少光照的影响。选取不同自然条件影响的道路场景图像, 包括光照影响的道路场景、阴影影响的道路场景、复杂背景的道路场景和一些极其复杂的道路场景, 来对比不同算法在不同场景下的效果, 对比结果如图 9所示。
![]() |
图 9 不同场景下消失点检测算法比较 |
如图 9所示, 其中红色星型标记为人工标记的真实消失点, 绿色圆形标记为本文检测出的消失点, 黄色的圆形标记为Huang方法, 蓝色圆形标记为Moghada方法, 红色圆形标记为Ding方法, 紫色圆形标记为Yu方法, 棕色圆形标记为Hang方法。在图 9a)中, Ding方法由于引入暗通道先验概率, 可以很好改善光照影响, 精度有所提高, 但是由于背景噪声影响, 与真实消失点还是有些许偏差, 而本文方法不受背景干扰, 即使有光照影响, 精度还是高于Ding方法。特别在具有复杂背景干扰下的场景, 本文方法更具有优势, 如图 9c)所示, 除Yu方法以外, 其余对比方法精度都很低, 这是因为Yu方法采用的是基于深度学习的方法, 精度上高于传统的图像处理方法, 但是具有效率低下的缺点。而本文方法在精度上接近Yu方法, 但效率上远超于Yu方法。在一些极其复杂的场景, 如图 9d)所示, 在综合背景、复杂道路类型和光照等影响下, 对比算法检测的消失点位置均很大地偏离真实位置, 而本文方的检测结果也均能在允许偏差内, 精度接近基于神经网络的方法。
为了更为直观地评估消失点检测算法的精度, 使用上文中标记的800张道路图像, 使用归一化欧式距离来衡量检测到消失点与真实消失点之间的差异, 为
![]() |
(20) |
式中: (xe, ye)为算法估计出的消失点位置; (xt, yt)为上文提及的人工标注的真实消失点位置; Ldiag为图像的对角线长度, 很明显; eND越小, 表明算法的精度越高。
从图 10可以看出, 本文算法位于统计直方图左部的图像数量仅次于Yu算法, 可见本文方法的精度接近于基于深度学习的检测方法,远高于传统的基于图像处理的检测方法。具体而言, Moghada方法表现最差, 约有303张(37.8%)图像的eND值大于0.1, Ding方法与Huang方法分别有223张(27.8%)和197张(24.6%)被认为是误差较大的图像, 而本文所提方法只有65张(8.1%)图像被认为具有较大误差, 接近于Yu方法的35张(4.3%)。
![]() |
图 10 消失点检测算法精度比较 |
同时给出了各种算法的平均归一化欧氏距离误差和平均运行时长, 如表 1所示。本文所有的算法实现都基于Python语言, 运行平台为Windows10 64位系统, CPU为Intel Core i5。本文的平均误差仅为0.041 4, 基本接近基于神经网络的检测算法, 但是Yu算法的运算时长是本文的3倍多, 效率上仅低于Moghada方法, 但是精度提高了30.1%。
方法 | Moghada | Ding | Huang | Hang | Yu | 本文方法 |
平均误差/pixel | 0.066 8 | 0.061 7 | 0.058 7 | 0.059 3 | 0.032 5 | 0.041 4 |
平均时长/s | 9 | 26 | 22 | 17 | 41 | 12 |
本文提出了一种结合立体视觉的道路消失点检测方法, 结合双目视觉技术, 实现对背景区域的快速估计;在此基础上提出了一系列投票点与候选点的选择规则, 以提高检测的准确性与减少计算时长;设计了一种投票策略, 将在投票空间中获得票数最高的候选点视为消失点。在KITTK数据集下选择各种非结构道路场景上的实验结果表明, 与现有的5种方法相比, 本文方法具有精度高、检测速度快的特点。尽管本文的方法需要用到双目视觉的技术, 对硬件的需求略高, 但是可以大大地提高在非结构道路中消失点检测的准确性, 在无人地面车辆和移动机器人的自主导航应用中具有很好的应用前景。
[1] |
王永忠, 文成林. 基于Haar纹理的非结构化道路消失点检测[J]. 中国图象图形学报, 2013, 18(4): 27-36.
WANG Yongzhong, WEN Chenglin. Unstructured road vanishing point detection based on Haar texture[J]. Chinese Journal of Image and Graphics, 2013, 18(4): 27-36. (in Chinese) |
[2] | WANG Y, TEOHE K, SHEN D. Lane detection and tracking using B-snake[J]. Image and Vision Computing, 2004, 22(4): 269-280. DOI:10.1016/j.imavis.2003.10.003 |
[3] | NIETO M, SALGADO L. Real time vanishing point estimation in road sequences using adaptive steerable filter banks[C]//International Conference on Advanced Concepts for Intelligent Vision Systems, 2007 |
[4] |
韩冰心, 卢惠民, 于清华, 等. 曼哈顿世界环境下消失点非线性优化估计算法[J]. 中国图图形学报, 2021, 26(12): 2931-2940.
HAN Bingxin, LU Huimin, YU Qinghua, et al. Nonlinear optimal vanishing point estimation algorithm in Manhattan world[J]. Chinese Journal of Image and Graphics, 2021, 26(12): 2931-2940. (in Chinese) |
[5] | RASMUSSEN C. Grouping dominant orientations for structured road following[C]//Proceedings of IEEE Conference on Computer Vision and Patten Recognition, 2004 |
[6] | KONG H, AUDIBRT J Y. General road detection from a single image[J]. IEEE Trans on Image Processi, 2010, 19(8): 2211-2220. DOI:10.1109/TIP.2010.2045715 |
[7] | MOGHADA P, STARZYK J A, WIJESOMA W S. Fast vanishing point detection in unstructured environments[J]. IEEE Trans on Image Process, 2012, 21(1): 425-430. DOI:10.1109/TIP.2011.2162422 |
[8] | JIN J S, JIN X W, FANG F F. Fast and robust vanishing point detection for unstructured road following[J]. IEEE Trans on Intelligent Transportation Systems, 2016, 17(4): 970-979. DOI:10.1109/TITS.2015.2490556 |
[9] |
黄俊, 侯北平, 董霏, 等. 基于方向纹理的非结构化道路消失点检测研究[J]. 图学学报, 2019, 40(1): 131-136.
HUANG Jun, HOU Beiping, DONG Fei, et al. Research on vanishing point detection of unstructured road based on directional texture[J]. Journal of Graphics, 2019, 40(1): 131-136. (in Chinese) |
[10] |
王先杰. 基于消失点的非结构化道路检测算法研究[D]. 淮南: 安徽理工大学, 2020 WANG Xianjie. Research on non-squiration road detection algorithm based on vain point[D]. Huainan: Anhui University of Technology, 2020 (in Chinese) |
[11] |
俞骏威, 张黎明, 陈凯, 等. 基于道路消失点的远距离路面微小障碍物检测[J]. 同济大学学报, 2020, 47(1): 213-216.
YU Junwei, ZHANG Liming, CHEN Kai, et al. Remote detection of small obstacles on road surface based on road vanishing point[J]. Journal of Tongji University, 2020, 47(1): 213-216. (in Chinese) |
[12] | LIU Yinbo, ZENG Ming, MENG Qinghao. Unstructured road vanishing point detection using convolutional neural networks and heatmap regression[J]. IEEE Trans on Instrumentation and Measurement, 2021, 70(2): 91-99. |
[13] |
张欢, 安利, 张强, 等. SGBM算法BM算法分析研究[J]. 测绘与空间地理信息, 2016, 39(10): 214-216.
ZHANG Huang, AN Li, ZHANG Qiang, et al. SGBM algorithm and BM algorithm analysis and research[J]. Geomatics and Spatial Information Technology, 2016, 39(10): 214-216. (in Chinese) |
[14] | RASMUSSEN C. Texture-based vanishing point voting for road shape estimation[C]//British Machine Vision Conference, 2009 |
[15] | KONG H, AUIDIBERT J Y, PONCE J. Vanishing point detection for road detection[C]//IEEE Conference on Computer Vision and Pattern Recognition, 2009 |
[16] | TRUNG H B, EITAKU N, TAKESHI S. A texture-based local soft voting method for vanishing point detection from a single road image[J]. IEICE Trans on Information and Systems, 2013, 96: 690-698. |
[17] | MENZE M, GEIGER A. Object scene flow for autonomous vehicles[C]//IEEE Conference on Computer Vision and Pattern Recognition, Piscataway, 2015 |
[18] | DING W, LI Y, LIU H. Efficient vanishing point detection method in unstructured road environments based on dark channel prior[J]. IET Computer Vision, 2016, 10(8): 852-860. |
2. School of Mechatronics and Vehicle Engineering, Chongqing Jiaotong University, Chongqing 400074, China;
3. Special Vehicle Research Institute, Chongqing Changan Industry (Group) Co., Ltd, Chongqing 400023, China