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)。内参会自动缩放以匹配您管道选择的分辨率,而畸变系数在固定纵横比和FOV的情况下与分辨率无关。硬件变焦管道和500万像素管道是唯一不会使用自定义标定的管道。
准备标定板
您可以使用任何笔记本电脑屏幕来标定相机。但为了获得最高精度,我们建议购买这个来自calib.io的800mmx600mm粗糙标定板
- 打印ChArUco标定板或在大型笔记 本电脑或计算机屏幕上使用标定板图像。使用我们下载页面上的标定板,或生成您自己的标定板。
- 通过将一行中黑色方格的总数和ArUco标记的总数相加来找到网格的"宽度"(默认Limelight标定板为11)。
- 通过将一列中黑色方格的总数和ArUco标记的总数相加来找到网格的"高度"(默认Limelight标定板为8)。
- 通过测量方格和标记的边长(以毫米为单位)来确认"方格尺寸"和"标记尺寸"测量值。
- 方格尺寸和标记尺寸的测量至关重要,请使用卡尺。
- 注意字典类型。下载页面的默认标定板使用5x5_100字典。
捕获标定图像
- 确保您的标定板尽可能平整。
- 如果标定板不平整,则不应进行标定。您可以从calib.io购买专用标定板,或将打印的标定板固定在写字板上。
- 打开机器人并访问Limelight网页界面。
- 创建一个1280x960的AprilTag管道。
- 通过将"输入"源类型从"相机"更改为"快照"并点击"删除所有快照"来删除所有保存的快照。
- 将"输入"源类型改回"相机"。
- 至少捕获25张ChArUco标定板的快照开始。一旦您熟悉了这个过程,您会想要回来捕获至少50张图像。
- ChArUco标定相对于标准棋盘格标定的主要优势在于 即使相机只能看到部分标定板也能工作。充分利用这一优势很重要。
- 您的图像应该具有以下特质的良好组合:
- 标定板占据图像的大部分区域。
- 标定板延伸超过图像的至少一个边缘或角落(这将有助于计算图像边缘周围的畸变)。
- 标定板经常放置在具有透视变形的位置(标定板不应与图像平面平行)。
- 争取标定板位置、视角和覆盖范围的广泛多样性。
- 50%的图像应该展示明显的透视缩短。这是近处标记看起来比远处标记更大的效果。以下截图中的第一张和最后一张图像展示了透视缩短
标定
- 导航到"标定"选项卡。它是垂直侧边栏中的第三个选项卡。
- 输入在"准备标定板"步骤中找到的五个值。
- 点击"使用快照标定"按钮。该过程可能需要一到两分钟才能完成。
- 成功后,"最新标定结果"卡片将显示最新的标定结果。
- 检查"最新标定结果"卡片是否显示合理的结果,重投影误差较低(理想情况下小于1)。
- 下载最新的标定结果并上传到"custom - file"标定槽。
- 现在您应该看到三个填充的标定结果卡片。
- 将您的"首选标定"更改为"custom - file"以使用您的自定义标定结果。所有管道都将使用您的标定结果。
- 一旦您熟悉了这个过程,考虑捕获更多的截图并重新标定。