张正友标定核心是棋盘格平面标定,分三大阶段:单应矩阵求解 → 内参 + 外参 (R/t) 解析解 → 径向畸变 + 非线性优化,下面分步讲计算逻辑、公式与求解过程
一、基础投影模型
1. 针孔相机投影公式
2、棋盘各约束Zw=0
令棋盘格在世界平面Zw=0,带入的到:
二、第一步:求解单应矩阵 H
对单张棋盘格图像,已知多组对应点 (Pw2d,p),用最小二乘求H
1. 方程展开(关键修正)
每张标定图对应一个独立 H
2、求解规则
举例说明:
解出真实自洽单应矩阵
三、第二步:由多组 H求解 内参 K+ 外参 R,t
这是核心解析求解步骤,利用旋转矩阵列向量正交约束。
1. 正交约束条件
2. 解内参矩阵 K
- 每一张图提供2 个方程;至少需要3 张不同姿态棋盘格,构造线性方程组求解 B
- 由 B反解出全部内参:(f_x,f_y,u_0,v_0,\gamma\),得到
3. 解析求解 外参 R、t关键
步骤 1:引入全局尺度
步骤 2:求解尺度
步骤 3:求旋转矩阵第三列 r_3
r3=r1×r2
步骤 4:旋转矩阵正交化(关键修正)
步骤5、构造初始旋转矩阵 R
四、第三步:求解畸变系
张正友使用二阶径向畸变(主流模型,畸变参数 d),切向畸变可附加求解
1. 畸变模型
设归一化相机坐标:
2. 畸变求解流程
- 用前面求得的K,R,t,把世界点投影到理想无畸变像素坐标
- 对比实际图像提取的角点像素坐标,构建畸变残差方程
- 所有图像、所有角点联合构造超定方程组,线性最小二乘直接解出 \(k_1,k_2\)
这一步是线性求解,得到初始畸变系数。
五、第四步:全局非线性优化(最终精调所有参数)
前面解析解、线性解都受图像噪声影响,最后用光束平差法 (Bundle Adjustment)最小化重投影误差,联合优化全部参数:
六、整体计算总脉络(极简总结)
- 提取棋盘格角点,得到多组世界 - 像素对应点
- 单图求单应矩阵 H(最小二乘 + SVD)
- 多 H利用旋转正交约束,解析求内参 K
- 由 K和H,解析求解每张图的 R、t(再正交修正)
- 利用投影残差,线性求解径向畸变 \(k_1,k_2\)
- 全局非线性优化(LM),精调 (K,R,t,畸变) 所有参数