1

是否可以使用霍夫变换在自动驾驶汽车中检测和跟踪道路?如果是这样,是否有任何算法已经实现了这一点?很想有一个链接,因为我真的找不到任何不在我脑海中的东西。

特别是,我正在寻找使用两条直线的消失点来确定车辆航向的算法。但是,如果还有其他更简单的算法可以完成这项工作,我也愿意看看它们。

4

2 回答 2

4

是的,你可以这样做,但如果你只做这件事,它可能无法达到你想要的质量。任务并不简单,没有“简单”的算法只根据图像进行“道路”或“航向”检测。此外,还有多种语言的现有实现,这里是 C++ 中的一种

您应该考虑的一件事是道路并不总是笔直的,因此消失点可能在道路的转弯处..​​....

斯坦福 DARPA 大挑战赛和 DARPA 城市挑战赛车辆使用基于颜色的检测来检测可行驶的表面(例如道路),然后使用某种边缘检测和线条形成算法(不清楚它是否基于霍夫变换)来定义“前向寻找”道路方向的估计。我确实相信他们使用了某种系统来检测消失点,而且他们肯定会考虑到道路的转弯。

我想你真正需要检测的是道路边缘,将它们变成线(不一定是直线),然后找到收敛点。这假设可以解决许多其他艰巨的任务:(1)您的图像质量合适;(2) 你可以检测到道路,或者至少可以检测到它的边缘;(3) 您可以足够快地处理图像以跟上车辆的运动。

如果您所做的只是分析一些现有的视频,我将从一个非常基本的方法开始:

  1. 检测视频中的路面——这是一个分割任务,找出图像中所有的像素点;这将有助于在这里划分三个类:道路、非道路和天空。
  2. 找到地平线(这大致是你的道路/非道路和天空课程相遇的地方
  3. 使用简单的边缘检测器(例如 Sobel 边缘检测器)来区分道路和非道路之间的边缘
  4. 在 Sobel 边缘应用 Hough 变换以绘制道路边缘的“线”
  5. 找到道路线在地平线上相遇的地方
于 2010-10-09T15:29:31.303 回答
1

您实际上可能会考虑针对这个问题研究Graph-cuts和 Gaussian Mixture Models。它可能对你很有效。OpenCV 实现了这两种算法。以下是这两种算法在分割中的应用示例。

于 2011-10-02T02:00:34.777 回答