第四节:相机标定基础——标定的目的、标定板设计与张正友法

说到相机标定,很多刚入行的朋友会觉得这玩意儿有点玄乎。其实说白了,就是给相机做一次「视力矫正」。你想想看,相机镜头天生就有畸变,就像人眼近视散光一样。我们做RGBD融合也好,做三维重建也罢,第一步就是把相机的「度数」测准了。

我个人习惯把标定分成三个层次来理解:为什么要标、用什么标、怎么标。这节课我们就按这个逻辑来拆解。

一、标定的目的——我们到底在求什么?

相机标定的核心目标,就是求解内参矩阵畸变系数。内参矩阵长这样:

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

其中fx、fy是焦距(单位是像素),cx、cy是主点坐标(光心在图像上的位置)。畸变系数则包括径向畸变(k1、k2、k3)和切向畸变(p1、p2)。

我在项目中遇到过最典型的案例:一台深度相机,出厂时标称内参是准的,但装到机械臂上震动了几次后,重建的点云就开始「飘」了。后来一测,主点偏移了3个像素,焦距也变了0.5%。嗯,这就是为什么我们每次部署前都要重新标定。

标定的三个直接目的:
  • 消除镜头畸变,让直线变回直线
  • 建立像素坐标到物理坐标的映射关系
  • 为RGB与深度图的对齐提供基础

二、标定板设计——棋盘格 vs 圆点

标定板的选择,其实挺讲究的。我见过有人拿A4纸打印一张棋盘格就开干,结果角点检测全歪了。你想想看,标定板要是没做好,后面算出来的内参能准吗?

2.1 棋盘格标定板

这是最常用的方案。优点是角点检测算法成熟(OpenCV的findChessboardCorners),精度高。但有个坑——棋盘格必须是奇数×偶数的格子数,这样才能保证内角点数量唯一。

我曾经犯过一个低级错误:打印了8×8的棋盘格,结果算法死活检测不到角点。后来才发现,内角点是7×7,但棋盘格边缘反光导致检测失败。避坑指南:棋盘格周围留白边,至少留一个格子的宽度

2.2 圆点标定板

圆点标定板在深度相机标定中更常见。为什么?因为深度图对棋盘格角点的响应很差,边缘模糊导致角点定位不准。而圆点的质心检测对模糊不敏感。

圆点标定板的设计要点:

  • 圆点直径建议为格子间距的1/3到1/2
  • 行列数建议7×7或9×9(奇数×奇数),方便确定方向
  • 背景用哑光材质,避免反光
我的个人经验:如果同时标定RGB和深度相机,优先用圆点标定板。棋盘格在红外图像上角点会「融化」,而圆点的质心始终稳定。

三、张正友标定法简介

张正友法,说白了就是「用平面标定板搞定三维标定」。这个方法牛在哪儿?它不需要你知道标定板在空间中的精确位置,只需要拍不同角度的照片就行。

核心思想其实不复杂:

  1. 拍一组照片——至少10-15张,覆盖不同角度和距离
  2. 检测角点——提取每张图中标定板的特征点
  3. 求解单应矩阵——每张图都有一个从标定板平面到像平面的单应矩阵H
  4. 分解内参——利用多个H矩阵的约束,解出内参K
  5. 优化畸变——用非线性最小二乘(比如Levenberg-Marquardt)精调所有参数

我刚开始学的时候,觉得第4步特别绕。其实你可以这么理解:每个单应矩阵H都包含了内参和旋转平移信息,但旋转矩阵是正交的,这个正交约束就把内参给「挤」出来了。

注意:张正友法假设标定板是绝对平面的。如果你的标定板贴在弯曲的表面上(比如圆柱体),那结果会一塌糊涂。我曾经用亚克力板贴棋盘格,结果板子本身有0.5mm的弯曲,导致标定误差直接翻倍。

四、知识体系总览

下面这张图是我自己整理的标定知识框架,你可以对照着理解:

相机标定知识体系 标定目的 求解内参 + 畸变系数 标定板设计 棋盘格 / 圆点 标定方法 张正友标定法 内参矩阵 K fx, fy, cx, cy 焦距 + 主点 畸变系数 k1, k2, k3 (径向) p1, p2 (切向) 棋盘格 角点检测 奇数×偶数格子 圆点标定板 质心检测 适合深度相机 张正友法步骤 ① 拍摄多角度图像 ② 检测特征点 ③ 求解单应矩阵H ④ 分解内参K ⑤ 非线性优化畸变 核心:用平面标定板 + 多角度图像 → 求解相机内参与畸变 为RGBD对齐、三维重建提供基础

五、实操中的几个关键点

讲完理论,说点实际的。标定过程中有几个细节,我踩过坑,你注意一下:

  • 照片数量:别少于15张。我见过有人拍5张就开标,结果重投影误差0.8像素,根本不能用。20张左右比较稳妥。
  • 角度覆盖:标定板要倾斜、旋转、远近都拍。如果所有照片都是正面拍摄,那标定出来的畸变系数会严重不准。
  • 光照均匀:避免局部过曝或阴影。尤其是圆点标定板,阴影会导致质心偏移。
一个小技巧:标定完成后,检查重投影误差。如果大于0.3像素,说明标定质量不够好。我一般要求误差在0.1-0.2像素之间才放心。

好了,关于标定基础就聊到这儿。记住一句话:标定是RGBD融合的基石,地基不牢,后面全白搭。下一节我们会深入标定板的检测算法,到时候再细聊。


公众号:蓝海资料掘金营,微信deep3321