跳到主要内容

ChArUco 相机标定

为什么这很重要?

完全标定的相机将提供更准确的 2D 和 3D 测量。它适用于任何不基于"伺服"到十字准线的任务。

话虽如此,我们建议尽可能使用"伺服"方法。它快速、精确,适用于物体获取、瞄准和目标对齐等任务。除非您确定需要更高的精度,否则不必担心标定问题。每个 LL 单元都带有默认标定,对于大多数用例都能提供相当好的结果

"伺服"是转动机器人直到目标与可配置的"十字准线"完美对齐的过程。这是处理机器人视觉问题最简单的方法,在许多情况下也是最可靠的方法。

什么是相机标定?

内参标定是确定以下两个组件的过程:

1. 相机矩阵

相机矩阵,通常表示为 K,是一个 3x3 矩阵,描述镜头和传感器如何将 3D 世界转换为 2D 图像。

[fx  0   cx]
[0 fy cy]
[0 0 1]

cx 和 cy 是主点/主像素的坐标。主点/主像素是与光轴/镜头中心直接对齐的像素。在制造过程中,相机镜头几乎从不与图像传感器的中心完美对齐。了解哪个像素是真正的"中心"像素至关重要

fx 和 fy 是以像素为单位计算的焦距。fx 和 fy 帮助我们理解相机的视场角/缩放级别。

2. 畸变系数

我们计算 5 个畸变系数:

[k1, k2, p1, p2, k3]

k1、k2、k3 是径向畸变系数,会导致直线看起来弯曲。

p1、p2 是切向畸变系数,由于镜头与图像平面不平行而产生

执行 ChArUco 标定

Limelight 的 ChArUco 标定设计得尽可能无缝和可靠。阅读以下步骤,然后观看下面的视频,了解如何标定相机以提高精度。

信息

您只需要在一个分辨率下进行标定(我们建议 LL3 使用 1280x960,LL3G 使用 1280x800)。内参会自动缩放以匹配您管道选择的分辨率,畸变系数在固定宽高比和视场角下与分辨率无关。硬件变焦管道和 500 万像素管道是唯一不会使用自定义标定的管道。

准备标定板

您可以使用任何笔记本电脑屏幕来标定相机。但是,为了获得最大精度,我们建议从 calib.io 购买这款 800mmx600mm 的粗糙标定板

ChArUco 标定板示例

  1. 打印 ChArUco 标定板或在大型笔记本电脑或电脑屏幕上使用标定板图像。使用我们下载页面的标定板,或生成您自己的标定板
  2. 通过将一行中黑色方块的总数和 ArUco 标记的总数相加来找到网格的"宽度"(默认 Limelight 标定板为 11)。
  3. 通过将一列中黑色方块的总数和 ArUco 标记的总数相加来找到网格的"高度"(默认 Limelight 标定板为 8)。
  4. 通过测量方块和标记的边长(以毫米为单位)来确认"方块尺寸"和"标记尺寸"测量值。
    • 方块尺寸和标记尺寸测量至关重要,请使用卡尺。
  5. 记下字典类型。下载页面的默认标定板使用 5x5_100 字典。

捕获标定图像

  1. 确保您的标定板尽可能平整。
    • 如果标定板不平整,您不应该进行标定。您可以从 calib.io 购买专用标定板,或将打印的标定板固定在写字板上。
  2. 打开机器人并访问 Limelight 网页界面。
  3. 创建一个 1280x960 的 AprilTag 管道。
  4. 通过将"输入"源类型从"Camera"更改为"Snapshot"并点击"Delete all snapshots"来删除所有保存的快照。
  5. 将"输入"源类型改回"Camera"。
  6. 首先捕获至少 25 张 ChArUco 标定板的快照。熟悉流程后,您需要返回捕获总共至少 50 张图像。
  7. ChArUco 标定相对于标准棋盘格标定的主要优势是,即使只有部分标定板对相机可见,它也能工作。利用这一优势非常重要。
  8. 您的图像应该具有以下特性的良好组合:
    • 标定板跨越图像的大部分区域。
    • 标定板延伸超出图像的至少一个边缘或角落(这将有助于计算图像边缘周围的畸变)。
    • 标定板经常被放置成具有透视变形(标定板不应与图像平面平行)。
    • 力求标定板位置、透视角度和覆盖范围的广泛多样性。
    • 50% 的图像应该显示明显的透视缩短效果。这是近处标记看起来比远处标记大的效果。以下截图中的第一张和最后一张图像展示了透视缩短效果

标定示例

标定

  1. 导航到"Calibration"选项卡。它是垂直侧边栏中的第三个选项卡。
  2. 输入"准备标定板"步骤中找到的五个值。
  3. 点击"Calibrate with Snapshots"按钮。该过程可能需要一两分钟才能完成。
  4. 成功后,"Latest Calibration Result"卡片将显示最新的标定结果。
  5. 检查"Latest Calibration Result"卡片,确认结果合理且重投影误差较低(理想情况下小于 1)。
  6. 下载最新的标定结果并将其上传到"custom - file"标定槽。
  7. 您现在应该看到三个已填充的标定结果卡片。
  8. 将您的"preferred calibration"更改为"custom - file"以使用您的自定义标定结果。所有管道都将使用您的标定结果。
  9. 熟悉流程后,考虑捕获更多截图并重新标定。