【项目实践】U-V视差路面检测之动态规划

系列文章:

  1. 双目视觉(一)双目视觉系统
  2. 双目视觉(二)双目匹配的困难和评判标准
  3. 双目视觉(三)立体匹配算法
  4. 双目视觉(四)匹配代价
  5. 双目视觉(五)立体匹配算法之动态规划全局匹配
  6. 双目视觉(六)U-V视差
  7. 【项目实战】利用U-V视差进行地面检测
  8. 【项目实践】U-V视差路面检测之动态规划

代码开源:GitHub - Xke1718He/U-V-disparity-detect-ground: using V-disparity to detetct ground

如果觉得可以,可以点赞、关注、收藏,感谢大家的支持

关于U-V视差的介绍,在这就不在叙述(【不懂看此链接】),这里主要将U-V视差路面检测中的方法之一——动态规划。

首先,通过观察U-V视差图像,可以发现U-V视差里包含着两种信息,可行驶区域和障碍物,而这两种信息经常混叠在一起,不好区分。因此我们需要对某一信息进行剔除,才能更好得到另一信息。

基于动态规划的路面检测使利用U视差信息进行路面检测,主要基于两个假设:

  1. 垂直于路面的障碍物在视差图中的视差值基本相同,因此在垂直投影得到的U视差图中,该障碍物会在某一列中形成一个峰值
  2. 可行驶区域通常是连续的,每列峰值之间应具有很小的纵向差距。

因此,可行驶区域问题的本质是检测一条由峰值序列组成的连续平滑曲线,这条曲线将图像分为两个部分,一部分是可行驶区域,一部分是障碍物,而动态规划就很适合解决这类问题。

2.实现

1.视差计算

通过视差算法,例如:elas,sgbm,AD-Census等,计算视差图像。

2.V视差图像计算

首先,我们知道路面上的点在V视差中的映射为一条倾斜的直线,那么可以对这条直线进行检测。

  • 采用LSD直线检测算法对V视差图像进行直线检测,这时候可以发现,检测出来的直线为一小段一小段的,而且这些直线段主要对应着可行驶区域和障碍物区域。
  • 为了得到可行驶区域的映射的线段,我们按照斜率对直线进行分类。
  • 对分类后得到的线段组合,需要将其合并为一条直线,因此按照斜率进行聚类,将其线段的长度视为其权重。
  • 合并后的直线表示为:y=kx+b,其中y=b为消失线,在其上面的部分为天空,这部分是我们不关系的。
  • 为了检测障碍物和可行驶区域的交点,需要消除路面的点。这样保证U视差图像中尽可能是障碍物映射的点。这里面的2为容错度阈值。

3. U视差计算

  •  得到消除了路面的视差图像,对b以下的部分进行U视差图像计算。
  • 使用动态规划检测可行驶区域。

4.逆映射 

  •  动态规划求解得到最小成本,然后从最后一行推算到第一行,得到一条成本最小的通路,再将其逆映射回原图像。

根据U视差可以得到,对应视差所在列数,然后将视差带入路面对应的直线y=kx+b,得到所在的行数,这样就逆映射回了原图像。

参考:

1.基于立体视觉的道路场景分割与车辆检测算法研究

2.Stereo Vision Based Road Free Space Detection

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火柴的初心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值