【问题标题】:Detecting objects in OpenCV and real time comparison在 OpenCV 中检测对象并进行实时比较
【发布时间】:2012-12-04 16:11:57
【问题描述】:

我们正在制造一个自主机器人(在大学活动中),它遵循特定的标志和方向并通过定向路线。机器人将在头部安装一个摄像头。它将跟随在它前面的道路上或墙壁上绘制的标志,并据此做出决定。标志将是绿色箭头(用于 GO 信号),或红色 T 作为停止标志。机器人将实时扫描这些符号并执行必要的操作。这些标志可以直接在前面的墙上,也可以画在前面的路上。

我曾尝试寻找必要的图像变换算法或方法,但我们对这个领域还很陌生。我就如何解决这个问题以及可能对我们有帮助的必要代码寻求您的帮助(假设我们是初学者)。

我查看了以下线程,但我很困惑: - OpenCV Object Detection - Center Point - How to recognize rectangles in this image? - http://www.chrisevansdev.com/computer-vision-opensurf.html(我无法使用它)

为该事件提供的一个提示是,我们可以将箭头建模为一个矩形和三角形,以找出三角形的中心是否在该矩形的右侧(这意味着向右)或其他。对于 T 也是如此。

谢谢! :)

【问题讨论】:

  • 如果你能保证红色和绿色在你的环境中是相对独特的,那么问题就变得简单多了,你只需寻找那些颜色就可以找到标志......
  • 您需要更好地指定此事件的范围。环境是否没有其他标记?您能否展示来自相机的标志和样本输入示例?你想让这个机器人尽可能快地走,还是你想要的只是按停止符号?如果是前者,那么可以应用的算法就减少了。
  • 是的,环境应该没有其他分散注意力的颜色或图像。只是一个简单的平面,可能是用这些数字着色的白色墙壁。然而,路径可能有其他颜色,但也假定具有相同的图案。

标签: image-processing opencv computer-vision


【解决方案1】:

我假设您可以在活动开始前获得标志: 拿起箭头符号,从他那里获取“筛选描述符”并将它们存储在您的机器人中。

然后在机器人获取的每一帧中寻找标志的颜色,当你看到类似于标志的东西时,获取筛选描述符并尝试在存储的描述符和新的描述符之间注册。如果成功,请尝试计算原始存储符号与您在图像上找到的符号之间的旋转和平移矩阵。

要阅读有关 sift 的信息,我会在此网站上推荐: http://aishack.in/tutorials/sift-scale-invariant-feature-transform-introduction/ 在你了解了 sift 的基础知识之后,我建议你下载一些实现而不是自己实现,这是一项非常繁琐的工作,并且有很多陷阱

顺便说一句 虽然 sift 是“比例不变特征变换”,但我很确定它也适用于您的情况,即使您也有“透视变换”。

希望对你有帮助

【讨论】:

  • 这个想法很好,因为 SIFT 描述符非常健壮,问题是实时应用它们。如果机器人有一个好的处理器,那么就没有问题,但是对于大学活动,他们可能正在使用平板电脑,例如,带有集成凸轮的平板电脑。那么 SIFT 就不会实时进行。
  • 如果SIFT太慢,还有SURF、ORB、BRIEF等。
【解决方案2】:

如果标志是先前已知的,您可以使用“通过特征检测识别物体”的方法。

这个想法是你有一个标志的图片(箭头或T),你执行以下训练步骤,离线

1 - 特征检测(使用,SURF,FAST,...)

2 - 使用 SIFT、FREAK 等进行描述符提取(从特征中)...

然后是实时部分。对于每一帧,您必须执行特征检测和描述符提取,但随后您需要对训练图像进行匹配以查看您得到的对象。一个可以实时工作的例子:

cv::FAST detector;
cv::FREAK descriptor;
BFMatcher matcher = BFMatcher(NORM_HAMMING,false);

detector.detect(frame,keypoints_frame);
descriptor.compute(frame, keypoints_frame,descriptors_frame);
matcher.match(descriptors_trainning, descriptors_frame);

这将是匹配的第一种方法,然后您需要优化和删除异常值。一些技术是

  • 比率测试

  • 交叉检查

  • RANSAC + 单应性

这里有一个完整的example

【讨论】:

    猜你喜欢
    • 2014-11-21
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    相关资源
    最近更新 更多