2010-11-22 81 views
14

我正在写一个应用程序,可以在驾驶模拟器中检测车道。环境相对简单,大多是直线多车道公路,几乎没有弯道。目前,我可以使用(经典)Hough变换成功检测线条,但问题在于HT自然也检测不是线条的线条。人造环境中的车道检测

我该如何更具选择性?我不画水平线了,但仍然有一些行蠕动。理想情况下,我想检测到车辆在行驶的车道边界。以下是环境

Environment

的典型形象这是我到目前为止所做的:

    1.因为无论我驾驶什么地方,环境差不多都是相同的,所以我设置感兴趣区域(RoI)以排除地平线以及任何高于地平线的区域。
    2阈值图像(我会解释我的一点原因阈值)
    3. Canny边缘检测
    4.用Hough变换
    5.绘制检测不包括具有0.0或近似0.0的梯度的线

阈值成像的原因如下。如果你看一下上面链接的环境照片,你会看到一条灰色的线条与道路平行。因为它是一条连续的线 - 不像车道标记 - HT最终检测到它。我不能根据梯度排除它,因为它与车道标记具有相同的梯度。通过阈值,我可以删除它,因此只能检测实际车道标记的线条。

下面是上述操作

Hough Transform

据我所知,有这个问题的许多解决方案的结果,我已经对这个阅读无数的论文,但他们似乎都处理环境复杂得多比这和/或简直超过我的头。对于它的价值,仅仅一个多月前,我没有ComputerVision的背景,所以这对我来说都是非常新的。

更新1:

我猜把这个更好的条件,我正在寻找一种方式来让不适合的模型线不包括车道模型。不幸的是,我不知道从哪里开始使用模型。有什么建议么?

对于它的价值,我已经设法识别车辆行驶的车道,并且可以排除不属于“活动”车道的额外线路,可以这么说。希望这张照片将帮助

Screenshot

它并不完美,但它的东西,我猜。在建模之后,我的最终目标是生成车辆的航向/位置。但我只想首先获得相对稳健的车道检测。我希望有一个简单的技术可以帮助实现这一目标(不依赖于系统参数,如视野焦距)。

回答

3

一种方法是使用您正在查看的场景的先前知识。您可以创建一个隐藏状态的模型,其中包含或多或少的静态参数,如摄像机高度,摄像机倾斜度或车道宽度以及动态参数,如摄像机偏航,摄像机在车道内的横向位移,道路曲率等。可以在Kalman filter的框架中处理这种模型。这种模型的优点是能够容忍其他路面标记,例如方​​向箭头,斑马等。祝你好运!

+0

不幸的是,我找不到驾驶模拟器的摄像机高度和其他参数。但是,环境看起来与95%以上的照片完全相同。上述方法仍值得调查吗? – saad 2010-11-22 21:46:04

+0

如果您知道相机的视野,则可以确定从消失点y坐标的倾斜。如果您知道倾斜(俯仰)和车道宽度,您可以确定摄像机高度。 – ssegvic 2010-11-22 22:17:17

1

也许你可以尝试仅在灰白色转换处找到的边缘上找到线条,而不是在整个图像的所有边缘上?