跳到主要内容

软件更新日志 2021 - 2023

2023.6 (4/18/23)

简易 ChArUco 标定和标定可视化工具

  • ChArUco 标定被认为比棋盘格标定更好,因为它可以处理遮挡、错误的角点检测,并且不需要整个标定板都可见。这使得在图像边缘和角落捕获标定板角点变得更加容易。这对于畸变系数的估计至关重要。
  • Limelight 的标定过程在每个步骤都提供反馈,并确保您完成良好标定结果所需的所有必要步骤。我们投入了大量精力使这个过程尽可能地稳健可靠。
  • 最重要的是,您可以将标定结果与默认标定进行并排可视化比较。您可以一目了然地判断标定结果是否合理。
  • 您还可以将标定仪表板用作学习工具。您可以修改下载的标定结果文件并重新上传,以了解内参矩阵和畸变系数如何影响目标检测结果、视场角等。
  • 请观看此视频:

2023.5.1 & 2023.5.2 (3/22/23)

  • 修复了2023.5.0中引入的回归问题 - 虽然2023.5修复了所有非平面布局的多标签问题,但降低了单标签姿态估计的性能。这个问题已经修复。单标签姿态估计现在使用与2023.4相同的求解器。

  • 更快速的快照界面。快照网格现在加载128p的低分辨率缩略图。

  • Limelight偏航角现在在3D可视化器中正确显示。在可视化器和内部中都是逆时针为正。

  • 在场地空间可视化器中指示当前正在跟踪的目标


2023.5.0 (3/21/23)

重大变更

  • 修复回归问题 - 在之前的版本中,Limelight机器人空间的"偏航"是反向的。Limelight网页界面中的偏航现在在内部为逆时针为正。

区域选择更新

  • 神经网络检测器管道中的区域选择现在可以按预期工作。
  • 新增5个区域选项,可以选择未旋转目标矩形的中心、顶部、左侧、右侧或底部。

"hwreport" REST API

  • :5807/hwreport 将返回一个JSON响应,详细说明相机内参和畸变信息

MegaTag修复

  • 某些非共面AprilTag布局在MegaTag中出现问题。这个问题已经修复,现在使用所有场地标签时姿态估计都很稳定。这使得在更远距离下的姿态估计也能保持稳定。

更高的tx和ty精度

  • TX和TY比以往更加精确。目标完全去除畸变,视场完全由相机内参决定。

2023.4.0 (2/18/23)

神经检测器类别过滤

指定您想要跟踪的类别,轻松过滤掉不需要的检测结果。

神经检测器扩展支持

支持任意输入分辨率,支持额外的输出形状以适配其他目标检测架构。现已支持基于EfficientDet0的模型。


2023.3.1 (2/14/23)

AprilTag 精确度改进

改进了所有型号的内部参数矩阵,最重要的是改进了畸变系数。单个 AprilTag 定位有明显改善。

检测器上传

修复了检测器上传问题。


2023.3 (2/13/23)

捕获延迟 (NT 键值: "cl", JSON 结果: "cl")

新的捕获延迟条目表示 Limelight 图像传感器中间行曝光结束到处理流程开始之间的时间。

AprilTags 的新质量阈值

通过新的质量阈值滑块,现在可以更容易地过滤掉虚假的 AprilTags。2023.3 中设置的默认值应该能够去除大多数虚假检测。

机器人空间中的相机姿态覆盖 (NT 键值: "camerapose_robotspace_set", "camerapose_robotspace")

现在可以动态调整 Limelight 在机器人空间中的位置。如果键值设置为零数组,则使用网页界面中设置的姿态。

这是一个安装在升降机上的 Limelight 示例: 升降机上的 Limelight

增加最大曝光时间

最大曝光时间现在为 33ms(从之前的 12.5ms 提升)。高帧率捕获模式仍然限制为(1/fps)秒。例如,90hz 的管道在超过 11ms 曝光时间后将不会产生更亮的图像。

机器人姿态更新

NetworkTables 中的所有三个机器人姿态数组现在都有第七个条目,表示总延迟(捕获延迟 + 目标检测延迟)。

错误修复

  • 修复 Shuffleboard 中的 LL3 MJPEG 流
  • 修复 camMode - 驾驶模式现在可以产生明亮、可用的图像
  • 修正曝光标签 - 每个"刻度"代表 0.01ms 而不是 0.1ms
  • 修复神经网络检测器上传

2023.2 (1/28/23)

让3D使用比以往更加简单。

兼容WPILib的机器人位姿

机器人位姿现在可以更轻松地开箱即用。

这些位姿与WPILib坐标系统匹配。megatag机器人位姿示例:

所有机器人位姿都直接显示在网页界面的场地空间可视化器中,让您可以一目了然地确认一切是否正常运行。

更便捷地访问3D数据(重大更改)

在目标空间中的机器人位姿可以说是Limelight关于AprilTags输出的最有用的数据。仅使用这个数据,您就可以让底盘与场地上的AprilTag完美对齐。

  • NetworkTables键"campose"现在改为"camerapose_targetspace"
  • NetworkTables键"targetpose"现在改为"targetpose_cameraspace"
  • 新增NetworkTables键 - "targetpose_robotspace"
  • 新增NetworkTables键 - "botpose_targetspace"

神经网络上传

将可训练机器模型上传到Limelight分类器管道。请确保它们是Tensorflow Lite EdgeTPU兼容的模型。 分别上传.tflite和.txt标签文件。


2023.1 (1/19/23)

MegaTag和性能提升

修正错误

UI中的默认标记尺寸参数已被修正为152.4mm(从203.2mm调低)。这是大多数精度问题的根源。

提升跟踪稳定性

有多种方法可以调整AprilTag的检测和解码。我们全面提升了稳定性,特别是在低光照/低曝光环境下。

超快速灰度处理

灰度处理速度比之前快3-6倍。在跟踪AprilTag时,团队将始终看到灰度视频流。

裁剪以提升性能

AprilTag管道现在有了裁剪滑块。在任何分辨率下裁剪图像都将提高帧率。

更简单的过滤

AprilTag管道现在有了单一的"ID过滤器"字段,用于过滤JSON输出、启用botpose的标签和启用tx/ty的标签。之前的双过滤器设置存在bug且令人困惑。

重大变更

NT键"camtran"现在改为"campose"

JSON更新

"botpose"现在包含在json结果输出中

场地空间可视化器更新

场地空间可视化器现在显示2023年FRC场地。这使得一眼就能判断botpose的准确性。

Limelight MegaTag(新的botpose)

我的首要任务是重写botpose以获得更高的精度、更低的噪声和更强的歧义处理能力。Limelight的新botpose实现称为MegaTag。与其使用多个单独场地空间姿态的简单平均来计算botpose,MegaTag本质上是将所有标签组合成一个具有多个关键点的巨大3D标签。这带来了巨大的优势。

以下GIF展示了一个设计用来引发标签翻转的情况: 绿色圆柱:单个标签的机器人姿态 蓝色圆柱:2023.0.1 BotPose 白色圆柱:新的MegaTag Botpose

注意新的botpose(白色圆柱)与旧的botpose(蓝色圆柱)相比极其稳定。你也可以观察tx和ty值。

这是完整画面,显示标签歧义:

以下是优势:

当视野中有多个标签时,Botpose现在能够应对歧义(标签翻转)(除非标签靠得很近且共面。理想情况下关键点不应共面)。当视野中有多个标签时,Botpose现在对标签角点噪声的抵抗力更强。标签之间的距离越远越好。这不限于平面标签。它可以扩展到任意数量的完全3D标签,且方向不限。地面标签和天花板标签都可以完美工作。

这张图展示了在简单平面情况下这种工作方式的一个方面。实际结果比图中显示的更好,因为图中描述的MegaTag在三个点上应用了显著误差,而不是一个点。随着3D组合MegaTag的尺寸和关键点数量增加,其稳定性也随之提高。

神经网络上传功能将推迟到2023.2版本!


2023.0.0 和 2023.0.1 (2023年1月11日)

引入AprilTags、机器人定位、深度神经网络、重写的截图界面等功能。

功能、变更和错误修复

  • 新的传感器捕获管道和增益控制
    • 我们的新捕获管道允许曝光时间比2022年缩短100倍。新管道还启用了增益控制。这对AprilTags跟踪极其重要,并将使反光目标追踪比以往更加可靠。在Limelight OS 2023之前,Limelight的传感器增益是不确定的(我们实施了一些技巧来使其工作)。
    • 通过新的"传感器增益"滑块,团队可以在不触碰曝光滑块的情况下使图像比以往更暗或更亮。增加增益会增加图像中的噪点。
    • 将较低的增益与新的较低曝光时间相结合,现在可以在全亮度LED和反光目标的情况下产生几乎完全黑色的图像。这将有助于在跟踪反光目标时减少LED和阳光反射。
    • 通过增加传感器增益和减少曝光,团队将能够在跟踪AprilTags时最大限度地减少由高曝光时间导致的运动模糊效果。
    • 我们已经成功开发了这个新管道,同时保留了所有功能 - 90fps、硬件变焦等。
  • 更多分辨率选项
    • LL1、LL2和LL2+有两个新的捕获分辨率:640x480x90fps和1280x960x22fps
  • 优化的Web界面
    • Web界面现在在机器人网络上的加载和初始化速度最多提高3倍。
  • 重写的截图界面
    • 截图功能已完全重写,允许图像上传、下载和删除。文档中还详细介绍了用于捕获截图的新API。
  • SolvePnP改进
    • 我们基于solvePnP的相机定位功能每四帧就会出现一个严重限制其准确性的错误。这个问题已经得到解决,并且为反光/彩色SolvePNP可视化构建了全新的3D画布。
  • Web界面错误修复
    • 2022年有一个极其罕见的问题,在刷新后首次启动时导致Web界面永久性损坏,这会迫使用户重新刷新。根本原因已被找到并彻底修复。
  • 新的API
    • Limelight现在包括REST和Websocket API。REST、Websocket和NetworkTables API都支持新的JSON转储功能,该功能以人类可读、易于解析的格式列出所有目标的所有数据,适用于FRC和所有其他应用。

[继续保持原文其余部分的格式和结构,翻译剩余内容...]

2022.3.0 (4/13/22)

错误修复和心跳更新。

错误修复

  • 修复了与USB摄像头流和多个流实例相关的性能、流稳定性和流延迟问题。

功能和变更

  • "hb" 心跳 NetworkTable 键
    • "hb" 值在每个处理帧递增一次,在2000000000时重置为零。

2022.2.3 (3/16/22)

错误修复和机器人代码裁剪过滤。

错误修复

  • 修复 "stream" 网络表键值和画中画模式
  • 修复 "snapshot" 网络表键值。用户必须先将 "snapshot" 键设置为 "0",然后再设置为 "1" 才能截图。
  • 从网页界面移除多余的 Python 相关警告

功能和变更

  • 手动裁剪过滤
    • 使用 "crop" 网络表数组,团队现在可以从机器人代码控制裁剪矩形。
    • 要使 "crop" 键生效,当前管道必须使用默认的、完全开放的裁剪矩形(minX 和 minY 为 -1,maxX 和 maxY 为 +1)。
    • 此外,"crop" 网络表数组必须恰好包含 4 个值,且这些值中至少有一个必须为非零值。

2022.2.2 (2/23/22)

基于第0周和FMS可靠性测试的所有团队强制升级。

错误修复

  • 修复了与开放网络接口、FMS、类FMS设置、多个查看设备等相关的卡顿/连接丢失/目标丢失问题。

功能和变更

  • 裁剪过滤

    • 忽略指定裁剪矩形外的所有像素
    • 如果你的飞轮在场地上有任何最佳点,你可以使用裁剪过滤器在特定管道中忽略大多数像素。此功能应该可以帮助团队降低追踪非目标的概率。
    • 如果你在追踪货物,使用此功能只在图像的特定部分寻找货物。考虑忽略你队伍的保险杠、远处的目标等。
  • 角点功能现在与智能目标分组兼容

    • 这项功能是为那些想在RIO上进行更高级自定义视觉处理的团队准备的
    • "tcornxy"角点限制增加到64个角点
    • 轮廓简化和强制凸包功能现在可以与智能目标分组和角点发送正常配合工作
  • IQR过滤器最大值增加到3.0

  • 网页界面实时目标更新率从30fps降低到15fps,以减少网页界面开启时的带宽和CPU负载


2022.1 (1/25/22)

错误修复

  • 我们从供应商处获得了关于一个问题(以及修复方案!)的信息,该问题影响了大约1/75的专门用于Limelight 2的CPU(可能与特定批次有关)。这个解释很合理,它是2022镜像和2020镜像之间仅存的几个启动差异之一。
  • 修复了GRIP输入和SolvePNP模型的上传按钮

新功能

  • 色调彩虹

    • 新的色调彩虹使配置色调阈值变得更加容易。
  • 色调反转

    • 新的色调反转功能是一个关键特性,如果你想要追踪红色物体,这个功能尤其重要,因为红色同时出现在色调范围的开始和结束位置。
  • 新的Python库

    • 在我们的python沙盒中添加了scipy、scikit-image、pywavelets、pillow和pyserial。

2022.0 和 2022.0.3 (2022年1月15日)

这是一个重大更新。以下是四个主要变更:

功能特性

  • 智能目标分组

    • 自动对通过所有单独目标过滤器的目标进行分组。
    • 将根据-分组大小滑块最小值-和-分组大小滑块最大值-动态分组任意数量的目标
  • 异常值剔除

    • 虽然这个目标比其他目标更具挑战性,但它为我们提供了更多的过滤机会。从概念上讲,这个目标不仅仅是一个"绿色斑块"。由于我们知道目标是由多个彼此靠近的目标组成的,我们实际上可以剔除那些独立存在的异常目标。
    • 今年的目标识别应该几乎完全依赖于良好的目标过滤,只有在相机流中看到或预期出现虚假异常值时才使用异常值剔除。如果你的标准目标过滤效果不佳,异常值检测可能会开始对你不利!
  • Limelight 2022图像升级 我们从软件中移除了数百个移动部件。这些是成果:

    • 压缩图像大小:2020年的1.3 GB → 2022年的76MB(减少了17倍!)
    • 下载时间:2020年需要数十分钟 → 2022年只需几秒钟
    • 刷写时间:2020年需要5+分钟 → 2022年只需几秒钟
    • 启动时间:2020年需要35+秒 → 2022年只需14秒(LED亮起需要10秒)
  • 完整的Python脚本支持

    • Limelight已成功让许多学生接触到机器人视觉处理的一些功能。通过Python脚本,团队现在可以更进一步,编写自己的图像处理流程。
  • 此更新与所有Limelight硬件兼容,包括Limelight 1。

  • 已知问题:在Python中使用硬件变焦将产生意外结果。

  • 2022.0.3恢复了5802 GRIP流,并通过回退一些启动时间优化来解决某些LL2设备的启动问题。启动时间增加到16秒。