个人博客:wyxogo.top

标题 基于纹理的复杂环境下道路消失点检测算法
年份: 2014 年 6 月
GB/T 7714: [1]傅重添, 杨健, 路飞飞. 基于纹理的复杂环境下道路消失点检测算法[J]. 计算机应用与软件, 2014(6):292-294.

摘要

乡村或者越野环境中,道路没有明显的边界和行车线,阻碍了一般视觉道路检测算法的应用。采用计算道路消失点的 方法,提出一种快速的局部适应软投票 FLASV( Fast Local Adaptive Soft Voting) 算法。算法首先采用 Gabor 滤波器计算每个像素点的 纹理方向,然后依据像素点的置信水平决定是否参与投票,最后采用快速局部投票的算法估计消失点的位置。实验结果分析表明,该算法能很好地适应复杂多变的环境,具有较低的时间复杂度和较高的准确性。

研究方法

1. 纹理方向估计

图像纹理分析方法大致分为基于传统的方法,基于纹理模型的方法和基于信号变换的方法。

基于 Gabor 滤波器 的纹理分析法是一种基于信号变换的空域—频域联合分析的方 法,它克服了传统傅里叶方法的不足,能很好地兼顾信号在频率 域和空间域中的分辨能力,具有在空间域和频率域能够同时取 得最优局部化的特性,因而在理论上具有比其他方法更好的纹 理区分能力。

基于多尺度多方向的Gabor滤波器的变换函数表达式为:

ψ ω , φ ( x , y ) = ω 2 π c e − ω 2 ( 4 a 2 + b 2 ) ( 8 c 2 ) ( e i a ω − e − c 2 2 ) \psi_{\omega, \varphi}(x, y)=\frac{\omega}{\sqrt{2 \pi} c} \mathrm{e}^{\frac{-\omega^{2}\left(4 a^{2}+b^{2}\right)}{\left(8 c^{2}\right)}}\left(\mathrm{e}^{\mathrm{ia\omega}}-\mathrm{e}^{\frac{-c^{2}}{2}}\right) ψω,φ​(x,y)=2π ​cω​e(8c2)−ω2(4a2+b2)​(eiaω−e2−c2​)

式中, ω \omega ω和 ϕ \phi ϕ表示尺度和方向。本文使用 36 个方向,5 个尺度 的 Gabor 滤波器,即 ω \omega ω = 5, ϕ \phi ϕ= 36, a = x c o s ϕ + y s i n ϕ , b = - x s i n ϕ + y c o s ϕ , c = 2.2 a = xcos\phi+ ysin\phi,b = - xsin\phi+ ycos\phi,c = 2.2 a=xcosϕ+ysinϕ,b=-xsinϕ+ycosϕ,c=2.2。

对图像和 Gabor 滤波器进行卷积操作,令 $I( x,y) 表 示 图 像 在 点 表示图像 在点 表示图像在点 (x,y)$ 处的灰度值,卷积操作表示为: ζ ω , ϕ = I ⊗ ψ ω , ϕ \zeta_{\omega, \phi}=I \otimes \psi_{\omega, \phi} ζω,ϕ​=I⊗ψω,ϕ​

卷积的结果 ζ ω , ϕ \zeta_{\omega, \phi} ζω,ϕ​在点 z = ( x , y ) z = ( x,y) z=(x,y) 处有两部分: 实部和虚部,定义 R ϕ ( z ) R_{\phi}(z) Rϕ​(z)为 z z z点处某一尺度和方向上的响应值,则: R ϕ ( z ) = average ⁡ ω ( Re ⁡ ( ζ ω , ϕ ) 2 + lm ⁡ ( ζ ω , ϕ ) 2 ) R_{\phi}(z)=\operatorname{average}_{\omega}\left(\operatorname{Re}\left(\zeta_{\omega, \phi}\right)^{2}+\operatorname{lm}\left(\zeta_{\omega, \phi}\right)^{2}\right) Rϕ​(z)=averageω​(Re(ζω,ϕ​)2+lm(ζω,ϕ​)2)

R ϕ ( z ) R_{\phi}(z) Rϕ​(z)的最大值为 z = ( x , y ) z=(x,y) z=(x,y)处的纹理方向 θ ( z ) \theta(z) θ(z),其中 θ ( z ) = a r g m a x ϕ R ϕ ( z ) \theta(z) = argmax_{\phi}R_{\phi}(z) θ(z)=argmaxϕ​Rϕ​(z)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fey8koIM-1620400066124)(https://gitee.com/xiaomoon/image/raw/master/Img/image-20210424153813943.png ‘由 Gabor 滤波器得到的纹理方向’)]

覆盖在图像上的线段表示的方向就是该像素 点的纹理方向

2. 置信水平估计

有Gabor方法虽然得到了图像中每个像素点的纹理方向,但不能保证每个方向都是正确的,因此引入当置信水平概念,当置信水平大于一定阈值,则认为是投票点。由于某一像素点有 36 个方向的响应值,令 r 1 ( z ) > … > r 36 ( z ) r_1( z) > … > r_{36} ( z) r1​(z)>…>r36​(z) 表示响 应值从大到小排序( 显然 r 1 ( z ) = R θ ( z ) ( z ) ) r_1(z) = R_{\theta(z)}( z) ) r1​(z)=Rθ(z)​(z)) ,像素点 z = ( x , y ) z = ( x,y) z=(x,y))处 的置信水平定义为:
Conf ⁡ ( z ) = 1 − Average  ( r 5 ( z ) , ⋯ , r 15 ( z ) ) r 1 ( z ) \operatorname{Conf}(z)=1-\frac{\text { Average }\left(r_{5}(z), \cdots, r_{15}(z)\right)}{r_{1}(z)} Conf(z)=1−r1​(z) Average (r5​(z),⋯,r15​(z))​

实验中,令阈值为 η = 0.4 × ( m a x z C o n f ( z ) - m i n z C o n f ( z ) ) \eta = 0.4 × ( max_z Conf(z)-min_z Conf( z) ) η=0.4×(maxz​Conf(z)-minz​Conf(z)) ,置信水平大于 η \eta η的像素点为投票点。

3. 快速局部投票算法

在得到了每个像素点的纹理方向和可信像素之后,就可以通过投票算法来估计消失点的位置。

H.Kong等提出的LASV投票算法如图(a):对于图像中每一个候选消失点 V V V,它的投票区域 R V R_V RV​是以 V V V 为圆心,半径为 r = 0.3 H r = 0.3H r=0.3H( H H H 是图像的高度) 的下半圆,投票区域中的某一点 P P P的纹理方向为 O P ⃗ \vec{OP} OP ,若线段 P V PV PV和 P P P点纹理方向之间的夹角 ∠ ( P V , O p ) ∠( PV,O_p) ∠(PV,Op​) 小于某一个阈 值 α α α,则对 V V V 点投票,投票过程表示为:

$$ \operatorname{Vote}(P, V)=\left\{\begin{array}{ll} \frac{1}{1+\left[\gamma d(P, V)]^{2}\right.} & \text { if } \gamma \leqslant \frac{5}{1+2 d(P, V)} \\ 0 & \text { otherwise } \end{array}\right. $$

式中, γ γ γ 表示线段 P V PV PV和 P P P 点的纹理方向 O P ⃗ \vec{O_P} OP​ ​之间的夹角, d ( P , V ) d( P,V) d(P,V) 表示点 P P P 和 V V V 之间的距离。该算法的缺点是时间复杂度高,为 O ( n 3 ) O( n^3 ) O(n3) ,主要原因是它将图像中的每一个像素点都作为候选消失点,然后搜索其投票区域 R V R_V RV​,并执行投票算法。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0effMf0A-1620400066127)(https://gitee.com/xiaomoon/image/raw/master/Img/image-20210424161837049.png " ")]

置信水平大于 η 的投票点个数远远小于候选消失点的个 数,可以用投票点来找消失点,这样只需遍历一遍投票点,而不 用搜索整个候选消失点,据此,本文提出了一种快速局部投票算法( FLASV) 。如图 ( b) 所示,对于图像中某一投票点 P,该点 的纹理方向为 O p ⃗ \vec{O_p} Op​ ​,本文的投票区域 R V R_V RV​是以 P点为圆心,半径为 r = 0.3H( H 为图像的高度) ,顶角为 2α 的扇形区域,则点P向 投票区域 RV中的所有像素点投票,投票过程表示为:

$$ \operatorname{Vote}(P, V)=\left\{\begin{array}{ll} \exp (-\beta \times d(P, V)) & \text { if } V \in R_{V} \\ 0 & \text { otherwise } \end{array}\right. $$

式中, d ( P , V ) d( P,V) d(P,V) 表示点 P 和 V 之间的距离,β 表示线段PV和 P 点的纹理方向之间的夹角,根据经验,正常图像中道路消失点的位置不会在图像边缘,故本文对于边缘像素不做处理,

该算法的步骤:

  • Step1 构造一个与图像大小一致的矩阵M,矩阵初始化为0;
  • Step2 对于每一个投票点 P ( x 0 , y 0 ) P(x_0,y_0 ) P(x0​,y0​) ,其对应的投票区域 为 R V R_V RV​,对于任意点 V ( x 1 , y 1 ) ∈ R V , M ( P , V ) = M ( P , V ) + e x p ( - β × d ( P , V ) ) V(x_1,y_1)∈R_V,M(P,V) = M(P,V) + exp(-β×d(P,V)) V(x1​,y1​)∈RV​,M(P,V)=M(P,V)+exp(-β×d(P,V)) ,其中 β = ∠ ( P V , O P ) , d ( P , V ) = s q r t ( ( x 1 - x 0 ) 2 + ( y 1 - y − 0 ) 2 ) ; β = \angle( PV,O_P ),d( P,V) = sqrt( ( x_1 - x_0 )^2 + ( y_1 - y-0 )^2 ) ; β=∠(PV,OP​),d(P,V)=sqrt((x1​-x0​)2+(y1​-y−0)2);
  • Step3 输出矩阵 M 中最大值的位置即为图像中道路消失点的位置

实验与结果分析

  • 实验数据集:选取了 575 幅非结构化道路 图片进行验证,图片包括在沙漠、草地、雪地等多种复杂环境,还 包括不同的光照以及车辆、行人等运动物体的干扰。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CRb1IUWd-1620400066130)(https://gitee.com/xiaomoon/image/raw/master/Img/image-20210424164402455.png “实验效果对比”)]

  • 实验配置:操作系统:Windows 7,软件环境:Matlab 2011b,硬件环境为: Intel Core i3 CPU( 2.53GHz) ,DDR3-4GB内存,图像大小为 240 × 180。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AqaRojeA-1620400066132)(https://gitee.com/xiaomoon/image/raw/master/Img/image-20210424164836573.png “算法速度对比”)]

通过实验分析比较,说明该算法不仅能够准确检测到复杂环境下的道路消失点,而且大大降低了算法的时间复杂度

基于纹理的复杂环境下道路消失点检测算法相关推荐

  1. 让计算机网络与作文教学,“基于计算机和网络环境下的写作教学研究”课题组  2015-2016学年度上学期研究计划...

    白洋中心湖美小学"基于计算机和网络环境下的写作教学研究"课题组 2015-2016学年度上学期研究计划 根据<诏安县2015年度校级基础教育课程教学研究课题立项名单公布> ...

  2. 基于node.js开发环境下创建及开发vue.js项目的环境配置骤

    基于node.js开发环境下创建开发vue.js项目的环境配置骤如下: 步骤一:安装node.js,安装完后运行node -v命令检安装node的查版本,判断是否安装成功.Npm是node.js包管理 ...

  3. php简单排课_基于PHP-WEB网络云环境下的自动排课系统

    基于 PHP-WEB 网络云环境下的自动排课系统 陈佳硕 ; 孙穆赫 ; 付兴建 ; [期刊名称] <信息与电脑:理论版> [年 ( 卷 ), 期] 2013(000)010 [摘要] 随 ...

  4. 目标检测论文解读复现之十五:基于YOLOv5的光学遥感图像舰船 目标检测算法

    前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮 ...

  5. 基于Grad-CAM与KL损失的SSD目标检测算法

    基于Grad-CAM与KL损失的SSD目标检测算法 人工智能技术与咨询 来源:<电子学报>,作者侯庆山等 摘 要: 鉴于Single Shot Multibox Detector (SSD ...

  6. 目标检测YOLO实战应用案例100讲-基于深度学习的无人机航拍图像目标检测算法研究与应用

    目录 基于深度学习的无人机航拍图像目标检测算法研究与应用 基于深度学习的目标检测相关知识理论

  7. 图像自适应YOLO:模糊环境下的目标检测(附源代码)

    关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 论文获取|回复"IAYOLO"获取paper 源代码:ht ...

  8. bash 脚本中激活conda环境_ubuntu18.10目标检测算法环境部署+开机自启动脚本创建screen下的web服务...

    内容概要 cuda+cudnn+python环境安装 ubuntu18的开机自启动脚本 screen服务开启 以我个人的实践来看,把python开发的算法封装成webserver的服务供前端程序调用是 ...

  9. Linux环境下内存泄露检测

    linux下内存泄漏检测工具valgrind 该工具可以检测下列与内存相关的问题 : 未释放内存的使用 对释放后内存的读/写 对已分配内存块尾部的读/写 内存泄露 不匹配的使用malloc/new/n ...

最新文章

  1. 使用CSDN-markdown编辑器
  2. postman 使用_如何使用Postman实现数据驱动?
  3. mac编译openresty报Undefined symbols for architecture x86_64
  4. tomcat使用php+mac_Mac环境下配置tomcat
  5. uva 10161 Ant on a Chessboard 蛇形矩阵 简单数学题
  6. Linux c学习--从标准输入输出看流和缓冲区
  7. 搭建pxe环境安装系统
  8. linux脚本是什么语言,Linux学习之Shell脚本语言的优势是什么?
  9. 小目标神器!TPH-YOLOv5:将Transformer预测加载Yolov5!
  10. spider-抓取网页内容(Beautiful soup)
  11. Leap Motion 上手体验
  12. 3.nginx 的基本配置与优化
  13. C# MP3操作类,能播放指定的mp3文件,或播放嵌入的资源中的Mp3文件
  14. MD5详解(校验文件完整性)
  15. 微信公众号h5 微信分享朋友 分享给朋友圈 分享给朋友
  16. Failed to read artifact descriptor for com.google.errorprone:javac:jar:9+181-r4173-1
  17. word嵌入对象依损坏_在Word 2010中,当文档中插入图片对象后,可以通过设置图片的文字环绕方式进行图文混排,下列是Word提供的文字环绕方式的是()。...
  18. win10检测不到第二个显示器怎么解决 win10外接显示器黑屏怎么办
  19. 椭球面的c语言方程,椭球面
  20. MFC制作Windows画图程序(二)

热门文章

  1. 中科图新BIM+GIS数字化设计施工管理解决方案
  2. Latex调整表格行距
  3. 【GDOI2018模拟7.14】小奇的糖果
  4. GULP 案例 2:如何计算相变压力?
  5. CQF量化金融职业指南
  6. [清华集训2014]主旋律
  7. 通俗易懂的函数指针及函数指针数组
  8. 小程序 实现星星评分(共10分),含有半星
  9. CLOSE关闭连接的各种情况
  10. 谷歌 ARCore 就是低配版 Tango,它比苹果 ARKit 好在哪?