计算机视觉#

计算机视觉是利用计算机理解照片和视频等数字图像的过程。计算机视觉可提供 FTC® 中通常需要的物体检测功能。

目前,有 3 种常用的计算机视觉形式:TensorFlow Lite、AprilTags 和 OpenCV(通过 VisionPortal/EasyOpenCV)。

官方支持的解决方案#

TensorFlow#

TensorFlow是谷歌的机器学习技术,可以通过训练来检测物体。FTC SDK使用TensorFlow Lite,这是谷歌TensorFlow的轻量级版本,提供在移动设备上使用与运行。除了支持Android Studio和OnBot之外,TensorFlow还支持图形化编程,这使得它成为大多数团队的不错选择。

用于像素检测(CENTERSTAGE)的 TensorFlow OpModes 示例可在 此处 (块)中找到,Java 示例可在 此处 中找到。

FIRST® 发布了一款名为 FTC-ML 的工具,用于训练自己的 TensorFlow Lite 模型,以检测自定义对象。有关 FTC-ML 的详细信息,请访问 FTC 文档

AprilTags#

AprilTags检测可以放置在自定义元素上的特定低分辨率黑白图像。Apriltags是在各种照明条件下检测自定义元素的好方法。由于AprilTags是EasyOpenCV的插件,因此团队必须已经在他们的机器人上安装了EasyOpenCV。AprilTags仅在Android Studio中受支持。

有关 AprilTag 的更多信息,请访问 FTC 文档 。支持的 AprilTag 图像可在此 pdf 上获取。

VisionPortal#

随着 FTC SDK v8.2 的推出,VisionPortal API 将 EasyOpenCV 项目集成到 FTC SDK 中。有了 VisionPortal,您可以将多个 VisionProcessor 附加到单个相机上。VisionProcessors 是创建 OpenCV 管道的简便方法,它允许对每个输入帧进行自定义操作和处理。VisionPortal 是计算机视觉功能最强大的形式,但也是最难使用的。因此,我们只能向更高级的团队推荐它。

其他视觉资源#

EasyOpenCV模拟器#

EasyOpenCV Simulator是直接在计算机上测试的直接方法,它支持Windows、macOS和Linux,并模拟FTC SDK结构的一部分,允许您复制和粘贴。

您可以在 这里 找到 EasyOpenCV 模拟器。

FTC® Dashboard#

FTC Dashboard 在控制集线器上运行一个仪表盘网页,除其他功能外,还可以流式传输所连接摄像头的实时预览。这是测试和调试视觉应用的一个非常有用的工具。

警告

在比赛期间运行 FTC Dashboard 是不合法的,请确保在比赛期间禁用它。更多信息请 参见

您可以在 这里 找到 FTC Dashboard。

Scrcpy#

Scrcpy 是显示和控制通过 USB 连接的安卓设备的简便方法。它支持 Linux、Windows 和 macOS,具有低延迟、低资源需求和高性能的特点。它对调试控制集线器上的视觉代码非常有用,因为它能让你近乎实时地看到摄像头的输出。它还可以与机器人控制器手机一起使用,不过摄像头输出可以在手机屏幕上看到。

您可以在 这里 找到 scrcpy。