【问题标题】:Using OpenCV on raspberry pi for vision tracking FRC在树莓派上使用 OpenCV 进行视觉跟踪 FRC
【发布时间】:2016-02-04 12:10:04
【问题描述】:

我是一名高中生,目前是机器人团队的程序员。今年我们计划进行一些视觉处理/跟踪,以自动找到目标并使自己与目标保持一致。我们使用 java 对我们的机器人进行编程,并且是 FRC(第一届机器人竞赛)的一部分。我们在使用 RoboRealm 进行视觉跟踪工作的标准方法方面遇到了一些问题,我曾想过使用 Raspberry Pi 作为协处理器,仅用于视觉跟踪目的。我已经对使用什么进行了一些研究,看来 OpenCV 是最好的。我在 Raspberry Pi 上编码的经验很少,但对 python 有基本的了解。我正在考虑让覆盆子 pi 完成对球门的所有跟踪(球门外边缘有反光带),并以某种方式发送该信号(通过 roborio——板载 FRC 标准处理器)并发送到我的java 代码,然后它会告诉我们的机器人向左或向右转,具体取决于我们离目标的距离。我只是好奇这是否属于像我这样的初学者程序员的可行范围。任何反馈都会很棒!

谢谢!

【问题讨论】:

    标签: java python opencv raspberry-pi robotics


    【解决方案1】:

    您所说的一切使用contour features 听起来都非常可行您可以使用边界矩形/圆等来提取目标的质心 (COM) 坐标。此时你可以像你说的那样做一个简单的阈值,如果 COM 向左,则向左移动,反之亦然。

    最大的问题是可靠地定位目标,如果您之前从未做过 CV,很容易低估这项任务的难度。我的建议是尽量使目标尽可能明显。既然它是反光的,也许您可​​以照亮它以使其更加突出?也许从机器人发出红外线(红外线)并在相机上使用红外线过滤器。您也可以使用可见光谱中的任何常规光来执行此操作。一旦你在目标和背景之间建立了足够的对比,你可以做简单的thresholding 或者可能做template matching(虽然慢得多,如果目标倾斜或倾斜,它就不起作用)。

    我希望我给了你一些想法,祝你好运。

    编辑
    在您的评论中,您提到您的目标是绿色的,这可以简化您的问题。我不确定您对 CV 了解多少,但图像采用 RGB 格式。每个像素都有一个红色、绿色和蓝色分量。如果您正在寻找绿色,split the colors 可能会很好,并且只有 thresholding 的图像的绿色通道打开的 CV 站点有 GREAT tutorials 可供入门。我强烈建议您(以及您团队中的任何其他人)看看这个。我建议你阅读:

    1. OpenCV 中的 GUI 功能
      一种。图片
      湾。视频
    2. 核心操作 - 图像的基本操作
    3. 图像处理(这是最重要的)
      C。图像阈值
      d。平滑(几乎每个 cv 算法中的每个图像在预处理期间都是平滑的)
      e.形态变换(可能有助于在阈值处理后清理图像)
      一世。轮廓(这是你获得坐标的地方)

    另一个技巧是在算法开发过程中使用静止图像。从机器人可能遇到的角度拍摄一些不同的目标图像。对这些进行所有测试和开发。一旦你有很高的信心水平,然后转向视频。即使那样我也会从离线开始 视频(您捕获的记录,不是实时的)。如果您发现问题很容易重现它们(只需回到视频中那个麻烦的时间戳并调整您的算法)。然后最后用在线(实时)视频来做。

    最后一条建议,即使您的最终目标是在 RPi 上运行,您也可以随意在您拥有的任何计算机上测试您的 CV 算法。如果您大部分时间使用笔记本电脑,请在其上使用 opencv,移植到 Rpi 的主要区别在于您寻址 RPi 摄像头模块的方式。但是,如果您仍处于使用静止图像和离线视频的早期阶段,这不会有什么不同。但这只是我的观点,我知道当我整天在我的 Windows 笔记本电脑上时,我自己在拖出我的 Pi 来编码时遇到了麻烦。我更有可能使用我的日常 PC 编写代码。

    【讨论】:

    • 好吧,我只是确保这不是一项太复杂的任务。你所说的使用 IR 很有意义,但我无法使用红外光源。我可以使用的是固定在相机源本身周围的 LED 灯环。我只是想澄清一个事实,即仍然可以使用 OpenCV 并使用对比度设置并让相机找到绿灯。
    • 感谢您的建议,我们计划从 pi 中获取数据的方式是使用 pi 上的套接字,并通过解析我们想要的数据来适当地与我们的 java 代码通信.再次,您的意见对我很有帮助,我非常感谢您!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 2017-06-11
    • 1970-01-01
    • 2019-01-09
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多