计算机视觉#
计算机视觉是利用计算机理解照片和视频等数字图像的过程。计算机视觉可提供 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 文档 。
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。