计算机视觉,检测道路,从哪里开始?

Has*_*eem 6 opencv computer-vision simplecv raspberry-pi

我是EE本科生,我正在研究一个需要我检测道路(主要是转弯)的项目.要求是,给定GPS坐标和转弯方向,机器人应该能够将其导航到给定点.问题是GPS坐标非常不准确,道路并不总是直的.所以我将不得不检测道路的两侧并相应地导航我的机器人.

我想在机器人的两侧安装两个摄像头.通常用于将机器人保持在道路中心,当机器人转弯5米时,其中一个摄像机将引导它通过转弯.

我将使用raspberry pi,但出于测试目的,我在运行Ubuntu的笔记本电脑上安装了simplecv和opencv.我完全没有计算机视觉方面的经验.我不知道从哪里开始.有人可以指导我完成上述任务的算法吗?我应该使用simplecv还是opencv?Python还是C++?我个人喜欢python上的simplecv,但我不知道它是否能够完成任务.

任何帮助,将不胜感激.把我放在正确的轨道上!

我将在校园里演示这个项目,这里是校园道路的图片.

编辑:理想的条件,没有交通,没有障碍.道路宽度不变.

roc*_*esh 4

一个我认为可行的建议,所以尝试一下。我将使用的 4 张图像参考自 Robert Laganiere 的《OpenCV 2 计算机视觉应用编程手册》。这是我用来学习图像处理的书之一,在使用 HoughLine 的路上有一个类似的例子。

我以前使用过 HoughLine,但没有在道路上使用。所以为了给你更好的想法,这里是=>

原图如图所示:

在此输入图像描述

现在你可以将 Canny 应用到图像上,它看起来像这样:

在此输入图像描述

或者你也可以使用索贝尔...

在此输入图像描述

之后,你应用 HoughLine:

在此输入图像描述

您必须自己调整参数。

所以这是我的建议=>

将前置摄像头放置在足够低的位置,以便能够检测几米以内的车道,您也可以使用 ROI(感兴趣区域)来聚焦于视频的下半部分,其中车道最有可能出现。这是为了消除噪音,同时也会检测到与道路平行的其他物体。

您使机器人停留在检测到的道路线的中心。ROI 的另一种用法是线的一侧消失,意味着它正在稍微倾斜地移动。您可以调整机器人使其回到正轨。

当有转弯时,您可以指定如果线(可能通过 canny 运算符)不再垂直,则进行转弯,直到线再次垂直。

当然,您必须编写两个不同的函数来根据线的角度检查是右转还是左转。

这就是我解决问题的方法。我的方法应该有相当不错的结果。您可能面临的唯一问题是调整 Houghlines 和 Canny 的参数。

(PS 在查看你的照片时,我注意到路缘的一侧偶尔会有间隙。所以我会推荐 HoughLineP 而不是 HoughLine,你可以指定每条线之间的最大间隙以将其视为一条线,如果我记得的话正确。如果仍然不起作用,您可能需要对视频帧进行一些预处理。)

希望您发现我的方法有用。祝你好运。如果您还有其他需要帮助的地方,请对此答案发表评论,我会尽力提供帮助(: