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 标定板或在大型笔记本电脑或电脑屏幕上使用标定板图像。使用我们下载页面的标定板,或生成您自己的标定板。
- 通过将一行中黑色方块的总数和 ArUco 标记的总数相加来找到网格的"宽度"(默认 Limelight 标定板为 11)。
- 通过将一列中黑色方块的总数和 ArUco 标记的总数相加来找到网格的"高度"(默认 Limelight 标定板为 8)。
- 通过测量方块和标记的 边长(以毫米为单位)来确认"方块尺寸"和"标记尺寸"测量值。
- 方块尺寸和标记尺寸测量至关重要,请使用卡尺。
- 记下字典类型。下载页面的默认标定板使用 5x5_100 字典。
捕获标定图像
- 确保您的标定板尽可能平整。
- 如果标定板不平整,您不应该进行标定。您可以从 calib.io 购买专用标定板,或将打印的标定板固定在写字板上。
- 打开机器人并访问 Limelight 网页界面。
- 创建一个 1280x960 的 AprilTag 管道。
- 通过将"输入"源类型从"Camera"更改为"Snapshot"并点击"Delete all snapshots"来删除所有保存的快照。
- 将"输入"源类型改回"Camera"。
- 首先捕获至少 25 张 ChArUco 标定板的快照。熟悉流程后,您需要返回捕获总共至少 50 张图像。
- ChArUco 标定相对于标准棋盘格标定的主要优势是,即使只有部分标定板对相机可见,它也能工作。利用这一优势非常重要。
- 您的图像应该具有以下特性的良好组合:
- 标定板跨越图像的大部分区域。
- 标定板延伸超出图像的至少一个边缘或角落(这将有助于计算图像边缘周围的畸变)。
- 标定板经常被放置成具有透视变形(标定板不应与图像平面平行)。
- 力求标定板位置、透视角度和覆盖范围的广泛多样性。
- 50% 的图像应该显示明显的透视缩短效果。这是近处标记看起来比远处标记大的效果。以下截图中的第一张和最后一张图像展示了透视缩短效果

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