首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算机视觉,检测道路,从哪里开始?

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

Stack Overflow用户
提问于 2013-11-10 15:06:42
回答 3查看 9.5K关注 0票数 6

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

我正在考虑在机器人的两边安装两个摄像头。这通常是用来保持机器人在道路的中心,当机器人在转弯5米时,其中一个摄像头将引导它通过转弯。

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

任何帮助都将不胜感激。让我走上正轨!

I will be demoing the project on campus, here the pictures of the campus's roads.

编辑:理想状态,无交通,无障碍物。恒定的道路宽度。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-10 17:32:30

一个建议,我认为会奏效,所以试一试吧。我将使用的4个图像来自Robert Laganiere的"OpenCV 2计算机视觉应用程序编程食谱“。这是我用来学习图像处理的书之一,在使用HoughLine的道路上也有类似的例子。

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

原始图像如下所示:

现在,您可以将Canny应用于图像,它将如下所示:

或者你也可以使用Sobel。

在此之后,您可以应用HoughLine:

您必须自己调整参数。

这是我的suggestion=>

放置一个前置摄像头,稍微低一点就能探测到几米内的车道,你也可以使用ROI (感兴趣区域)来聚焦于视频的下半部分,那里是车道最有可能的地方。这是为了消除噪声,其中也检测到与道路平行的其他对象。

你让机器人停留在检测到的两条道路线的中心。ROI的另一个用法是线条的一侧消失,这意味着它是以明显的倾斜方式移动的。您可以调整机器人以回到正确的轨道上。

当有转弯时,您可以指定如果线不再垂直(可能通过canny操作符),则转一圈,直到线再次垂直。

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

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

(附言:在看你的照片时,我注意到路边偶尔会有空隙。因此,如果我没有记错的话,我建议您使用HoughLineP而不是HoughLine,因为您可以指定每行之间的最大间距,以将其视为一行。如果这仍然不起作用,您可能需要对视频的帧进行一些预处理。)

希望你觉得我的方法有用。祝好运。如果您有任何其他需要帮助的地方,请在此答案上发表意见,我会尽我所能提供帮助(:

票数 4
EN

Stack Overflow用户

发布于 2013-11-10 18:13:58

既然你问“从哪里开始”,我建议你从阅读道路/车道检测问题开始。也许你可以在你的校园图书馆中查找一些关于这个问题的文献。

例如戴维斯这本书,E.罗伊。计算机与机器视觉:理论,算法,实用性。爱思唯尔/学术出版社,2012年,有“23章车载视觉系统”,其中描述了解决“道路定位”和“道路标记位置”问题的基本方法。戴维斯的这本书也有一个评论和更新的书目部分。

有关更详细的背景信息,您可以查看下面的“调查”文章,其中比较了解决问题的不同方法:

MCCALL, Joel C.; TRIVEDI, Mohan M. Video-based lane estimation and tracking for driver assistance: survey, system, and evaluation. , 2006, 7.1: 20-37.

票数 4
EN

Stack Overflow用户

发布于 2013-11-11 00:26:58

正如所承诺的,这是另一种方法。

要对这种方法有一个清晰的了解,请观看以下视频:http://www.youtube.com/watch?v=TMKd9ov_rmE

颜色分割方法实际上是使用期望最大化(EM)算法。并对消失点进行Gabor滤波。有点接近我脑海中的想法,但略有不同。

您可以尝试视频中显示的方法或/和我的方法。

我实际要做的仍然是一个消失点,ROI会随着消失点的y轴点的变化而变化。而ROI的侧面是固定的,以便道路(灰色总是在ROI内)。

在这之后,你必须使用面积,其中一旦在ROI中灰色的色彩空间小于90%(你自己计算数字。这只是ROI的粗略测量(意味着存在转折)。有几种方法可以判断哪一轮是哪一轮,我让你们自己弄清楚这一部分:p。如果你们使用这种方法,你们当然可以想到。

我唯一关心的是斑马线,或者更确切地说,在您展示的白色样本图像中的行人,但这些可以很容易地删除。(提示。直方图和如果值的颜色是那些在白色范围内的颜色...或者您可以使用area。如果斑点小于这个像素数...)

我不确定这个程序的计算成本会有多高。

但如果你打算尝试这种方法,请专注于HSV或LAB色彩空间,而不是RGB。现在,您有了更多的方法来进行实验。你也可以试着想出你自己的方法。玩一玩吧。图像处理,计算机视觉真的很有趣(:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19887185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档