用OpenCV在树莓pi上实现视觉跟踪

2024-09-30 16:36:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我是高中四年级的学生,现在是机器人团队的程序员。今年,我们计划进行一些视觉处理/跟踪,以自动找到目标并与目标保持一致。我们使用java编程我们的机器人,是FRC(第一届机器人比赛)的一部分。我们在使用RoboRealm实现视觉跟踪的标准方法上遇到了一些问题,我曾想过使用一个树莓派作为协处理器,专门用于视觉跟踪。我做了一点关于使用什么的研究,似乎OpenCV是最好的。我在编写Raspberry Pi方面没有什么经验,但对python有基本的了解。我在想让raspberry pi来跟踪目标(在球门的外缘有反光带),然后以某种方式发送信号(通过roborio——机载FRC标准处理器)和我的java代码,它会告诉我们的机器人根据我们离目标的距离,向左或向右转向。我只是好奇,对于像我这样的初学者来说,这是否属于do能力的范畴。任何反馈都太好了!在

谢谢!在


Tags: 方法目标标准编程机器人视觉java团队
1条回答
网友
1楼 · 发布于 2024-09-30 16:36:55

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

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

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

编辑
你在评论中提到你的目标是绿色的,这可以简化你的问题。我不知道你对简历了解多少,但图像是RGB格式的。每个像素都有红色、绿色和蓝色分量。如果您正在寻找绿色的,最好是split the colors,并且只有thresholding图像的绿色通道,开放式简历网站有很好的tutorials开始使用。我强烈建议你(和你的团队中的任何人)看看这个。我建议你读:

  1. OpenCV中的Gui功能
    a、 图像
    b、 视频
  2. 核心操作-图像的基本操作
  3. 图像处理(这是最重要的)
    c、 图像阈值化
    d、 平滑(几乎每个cv算法中的每个图像在预处理期间都是平滑的)
    e、 形态变换(可能有助于清除阈值后的图像)
    i、 等高线(这是获得坐标的地方)

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

最后一条建议,即使你的最终目标是在RPi上运行,也可以在任何一台计算机上测试你的CV算法。如果你大部分时间都在使用笔记本电脑,那就用opencv吧,移植到Rpi的主要区别在于你对Rpi相机模块的寻址方式。但如果你还在早期阶段使用静态和离线视频,这不会有什么不同。但这只是我的看法,我知道当我整天在我的windows笔记本电脑上时,我自己很难拖出Pi来编写代码。我更愿意用我的日常电脑编写代码

相关问题 更多 >