当前位置: 首页 > news >正文

相机标定相关原理

相机标定相关原理

  • 相机标定
        • **一、标定的核心思想**
        • **二、标定流程与原理**
          • **1. 数据采集**
          • **2. 单应性矩阵估计(Homography)**
          • **3. 内参约束与闭合解**(详细参考 *补充内容2*)
          • **4. 外参计算**
          • **5. 畸变参数估计**
          • **6. 非线性优化(Bundle Adjustment)**
        • **三、标定关键问题**
        • **四、数学工具总结**
      • **总结**
  • 补充内容1:A 矩阵
      • **A 矩阵的定义与作用**
      • **A 矩阵的构造原理**
      • **求解方法**
        • 1. **齐次方程组求解**
        • 2. **SVD 分解**
        • 3. **恢复单应性矩阵**
      • **示例(1个角点)**
      • **为什么需要 n≥4n \geq 4n4?**
      • **A 矩阵的数学意义**
      • **总结**
  • 补充内容2:内参约束与闭合解
        • 一、旋转矩阵正交性的物理意义
        • 二、内参约束的推导过程
          • 1. 从单应性矩阵建立关系
          • 2. 解耦旋转向量
          • 3. 应用正交性约束
        • 三、内参约束的几何解释
        • 四、闭合解的求解原理
          • 1. 构建线性方程组
          • 2. 矩阵化表示
          • 3. SVD求解
          • 4. 恢复内参矩阵
        • 五、关键点图解
        • 六、数学本质
        • 七、实际应用

相机标定

相机标定的核心目标是确定相机的内部几何特性(内参)和外部空间位置(外参),同时补偿镜头畸变。其数学本质是通过已知的3D-2D点对应关系,求解投影方程中的未知参数。


一、标定的核心思想
  1. 输入数据

    • 已知空间位置的3D点(如棋盘格的角点,设其世界坐标为 (Xw,Yw,Zw)(X_w, Y_w, Z_w)(Xw,Yw,Zw)
    • 这些点在图像中的2D投影坐标 (u,v)(u, v)(u,v)
  2. 数学模型
    s[uv1]=[fxsu00fyv0001]⏟内参矩阵 K⋅[r11r12r13txr21r22r23tyr31r32r33tz]⏟外参矩阵 [R∣t][XwYwZw1]s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \underbrace{\begin{bmatrix} f_x & s & u_0 \\ 0 & f_y & v_0 \\ 0 & 0 & 1 \end{bmatrix}}_{\text{内参矩阵 } K} \cdot \underbrace{\begin{bmatrix} r_{11} & r_{12} & r_{13} & t_x \\ r_{21} & r_{22} & r_{23} & t_y \\ r_{31} & r_{32} & r_{33} & t_z \end{bmatrix}}_{\text{外参矩阵 } [R|t]} \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} suv1=内参矩阵 Kfx00sfy0u0v01外参矩阵 [Rt]r11r21r31r12r22r32r13r23r33txtytzXwYwZw1

    • sss:尺度因子(深度相关)
    • 需求解:内参 KKK(5个自由度)、外参 R,tR,tR,t(6个自由度,分别对应旋转3个(俯仰(pitch)、偏航(yaw)、翻滚(roll))和平移3个(相机在世界坐标系中的x,y,zx,y,zx,y,z 坐标))、畸变参数

二、标定流程与原理
1. 数据采集
  • 工具:棋盘格标定板(已知方格尺寸)
  • 要求
    • 拍摄15-20张不同姿态的标定板图像
    • 覆盖图像边缘/中心、倾斜/正对等场景
  • 检测:使用角点检测算法(如Harris)获取角点的像素坐标 (u,v)(u,v)(u,v)
2. 单应性矩阵估计(Homography)
  • 定义单应性矩阵Homography Matrix)是计算机视觉和图像处理中的一个重要概念,用于描述两个平面之间的​​投影变换关系​​。单应性矩阵 HHH 是一个3×3的矩阵,通过齐次坐标表示点的映射关系:
    [x′y′1]=H⋅[xy1]\begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} = H \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} xy1=Hxy1
    其中 (x, y) 是原图像中的点,(x’, y’) 是目标图像中的对应点, H 的形式为:
    H=[h11h12h13h21h22h23h31h32h33]H = \begin{bmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix} H=h11h21h31h12h22h32h13h23h33
    由于齐次坐标的尺度不变性, H 实际只有8个自由度(通常设 h33=1h_{33} = 1h33=1 或约束模长为1)。
  • 张正友标定法
    (1)张正友标定法:核心思想是通过多幅平面标定板图像的对应点,求解相机内参和畸变系数。该方法要求标定板必须是平面,且通过不同姿态的标定板图像(即改变Z=0Z=0Z=0平面的旋转和平移)来覆盖三维空间的变化,从而间接约束相机参数。
    (2)平面约束的数学便利性:棋盘格是一个平面物体,将其定义为 Z=0Z=0Z=0 平面后,世界坐标系中的点三维坐标变为 (X,Y,0)(X, Y, 0)(X,Y,0)从而将三维到二维的投影问题简化为二维平面到图像的映射问题。此时,相机外参中的旋转矩阵 RRR 和平移向量 ttt 仅需描述标定板平面与相机坐标系之间的相对关系,无需考虑深度方向的复杂变换
  • 核心观察:棋盘格平面满足 Zw=0Z_w = 0Zw=0,投影方程简化为:
    s[uv1]=K[r1r2t][XwYw1]=H[XwYw1]s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K \begin{bmatrix} r_1 & r_2 & t \end{bmatrix} \begin{bmatrix} X_w \\ Y_w \\ 1 \end{bmatrix} = H \begin{bmatrix} X_w \\ Y_w \\ 1 \end{bmatrix} suv1=K[r1r2t]XwYw1=HXwYw1
    • HHH 是3×3单应性矩阵(Homography),联系平面世界坐标像素坐标
  • 求解方法(详细参考 补充内容1):
    • 每张图像提供 NNN 个点对应(N≥4N \geq 4N4
    • 构建线性方程组:Ah=0Ah = 0Ah=0hhhHHH 的向量形式)
    • 通过SVD分解求最小二乘解
3. 内参约束与闭合解(详细参考 补充内容2
  • 旋转矩阵正交性r1Tr2=0r_1^T r_2 = 0r1Tr2=0∥r1∥=∥r2∥=1\|r_1\| = \|r_2\| = 1r1=r2=1
  • 推导内参约束
    {h1TK−TK−1h2=0h1TK−TK−1h1=h2TK−TK−1h2\begin{cases} h_1^T K^{-T} K^{-1} h_2 = 0 \\ h_1^T K^{-T} K^{-1} h_1 = h_2^T K^{-T} K^{-1} h_2 \end{cases} {h1TKTK1h2=0h1TKTK1h1=h2TKTK1h2
    其中 h1,h2h_1, h_2h1,h2HHH 的前两列
  • 求解内参
    • 定义对称矩阵 B=K−TK−1B = K^{-T} K^{-1}B=KTK1
    • 多张图像构建超定方程组 Vb=0Vb = 0Vb=0bbbBBB 的向量形式)
    • 通过SVD求解 BBB,再经Cholesky分解得 KKK
4. 外参计算
  • 由单应性矩阵 HHH 和内参 KKK 计算外参:
    r1=λK−1h1r2=λK−1h2r3=r1×r2t=λK−1h3\begin{align*} r_1 &= \lambda K^{-1} h_1 \\ r_2 &= \lambda K^{-1} h_2 \\ r_3 &= r_1 \times r_2 \\ t &= \lambda K^{-1} h_3 \end{align*} r1r2r3t=λK1h1=λK1h2=r1×r2=λK1h3
    λ=1/∥K−1h1∥\lambda = 1 / \|K^{-1}h_1\|λ=1/∥K1h1 为归一化因子)
5. 畸变参数估计
  • 畸变模型(修正归一化坐标):
    {xcorr=x(1+k1r2+k2r4)+2p1xy+p2(r2+2x2)ycorr=y(1+k1r2+k2r4)+p1(r2+2y2)+2p2xy\begin{cases} x_{\text{corr}} = x (1 + k_1 r^2 + k_2 r^4) + 2p_1 xy + p_2 (r^2 + 2x^2) \\ y_{\text{corr}} = y (1 + k_1 r^2 + k_2 r^4) + p_1 (r^2 + 2y^2) + 2p_2 xy \end{cases} {xcorr=x(1+k1r2+k2r4)+2p1xy+p2(r2+2x2)ycorr=y(1+k1r2+k2r4)+p1(r2+2y2)+2p2xy
    • r2=x2+y2r^2 = x^2 + y^2r2=x2+y2(x,y)(x,y)(x,y) 为归一化坐标
    • k1,k2k_1, k_2k1,k2:径向畸变系数,p1,p2p_1, p_2p1,p2:切向畸变系数
  • 求解:将畸变模型代入投影方程,构建非线性最小二乘问题
6. 非线性优化(Bundle Adjustment)
  • 目标函数:最小化重投影误差(Reprojection Error)
    min⁡θ∑i=1M∑j=1N∥pij−p^(θ,Pj)∥2\min_{\theta} \sum_{i=1}^{M} \sum_{j=1}^{N} \| \mathbf{p}_{ij} - \hat{\mathbf{p}}(\theta, \mathbf{P}_j) \|^2 θmini=1Mj=1Npijp^(θ,Pj)2
    • θ\thetaθ:所有参数(内参+外参+畸变)
    • pij\mathbf{p}_{ij}pij:第 jjj 个点在图像 iii 中的实测像素坐标
    • p^\hat{\mathbf{p}}p^:通过投影模型计算的预测像素坐标
  • 优化方法
    • Levenberg-Marquardt算法
    • 利用初始解(闭合解)迭代优化至收敛

三、标定关键问题
  1. 为什么需要多张图像?

    • 单张图像提供8个约束(每个点2个方程),但内参有5自由度+外参6自由度。
    • 多张图像增加约束,避免解的不确定性。
  2. 为什么棋盘格有效?

    • 角点坐标精确已知(Zw=0Z_w=0Zw=0简化计算)
    • 高对比度角点易检测,抗噪声能力强
  3. 重投影误差的意义

    • 标定精度的核心指标(单位:像素)
    • 理想值:< 0.5像素(工业级应用要求更高)

四、数学工具总结
步骤数学方法输出
单应性矩阵估计线性最小二乘(SVD)H3×3H_{3\times3}H3×3
内参闭合解正交约束+Cholesky分解KKK
外参计算矩阵分解R,tR, tR,t
畸变与全局优化非线性最小二乘(LM算法)所有参数+畸变系数

总结

相机标定是通过几何约束(旋转矩阵正交性)和优化技术(最小化重投影误差)求解相机参数的过程:

  1. 利用平面标定板简化投影模型(单应性矩阵)
  2. 通过正交约束解耦内参/外参
  3. 非线性优化联合 refine 所有参数
  4. 畸变模型补偿镜头非线性误差

标定结果直接影响后续的三维重建立体视觉SLAM等任务的精度,是计算机视觉系统的基石。

补充内容1:A 矩阵

在单应性矩阵估计中,矩阵 A 是一个关键的设计矩阵(Design Matrix),它由所有观测点对的约束方程构建而成。以下是详细解释:


A 矩阵的定义与作用

A 是一个 2n×92n \times 92n×9 的矩阵(nnn 是角点数量),用于求解单应性矩阵 HHH 的向量化形式 h\mathbf{h}h。其核心是将非线性投影关系转化为线性齐次方程组
Ah=0A \mathbf{h} = 0 Ah=0
其中:

  • h\mathbf{h}h 是单应性矩阵 HHH 的向量化形式:h=[h11,h12,h13,h21,h22,h23,h31,h32,h33]T\mathbf{h} = [h_{11}, h_{12}, h_{13}, h_{21}, h_{22}, h_{23}, h_{31}, h_{32}, h_{33}]^Th=[h11,h12,h13,h21,h22,h23,h31,h32,h33]T
  • A 的每一行对应一个角点产生的约束方程

A 矩阵的构造原理

1. 单应性投影方程

对于世界坐标系中的点 (Xw,Yw,0)(X_w, Y_w, 0)(Xw,Yw,0)(棋盘格平面 Zw=0Z_w = 0Zw=0) 和其像素坐标 (u,v)(u, v)(u,v),有:
s[uv1]=H[XwYw1],H=[h11h12h13h21h22h23h31h32h33]s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = H \begin{bmatrix} X_w \\ Y_w \\ 1 \end{bmatrix}, \quad H = \begin{bmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix} suv1=HXwYw1,H=h11h21h31h12h22h32h13h23h33

2. 消去尺度因子 sss

展开方程并消去 sss
{u=h11Xw+h12Yw+h13h31Xw+h32Yw+h33v=h21Xw+h22Yw+h23h31Xw+h32Yw+h33\begin{cases} u = \frac{h_{11} X_w + h_{12} Y_w + h_{13}}{h_{31} X_w + h_{32} Y_w + h_{33}} \\ v = \frac{h_{21} X_w + h_{22} Y_w + h_{23}}{h_{31} X_w + h_{32} Y_w + h_{33}} \end{cases} {u=h31Xw+h32Yw+h33h11Xw+h12Yw+h13v=h31Xw+h32Yw+h33h21Xw+h22Yw+h23
整理为线性形式:
{h11Xw+h12Yw+h13−u(h31Xw+h32Yw+h33)=0h21Xw+h22Yw+h23−v(h31Xw+h32Yw+h33)=0\begin{cases} h_{11} X_w + h_{12} Y_w + h_{13} - u (h_{31} X_w + h_{32} Y_w + h_{33}) = 0 \\ h_{21} X_w + h_{22} Y_w + h_{23} - v (h_{31} X_w + h_{32} Y_w + h_{33}) = 0 \end{cases} {h11Xw+h12Yw+h13u(h31Xw+h32Yw+h33)=0h21Xw+h22Yw+h23v(h31Xw+h32Yw+h33)=0

3. 构造单点约束矩阵

对每个角点 (Xw,Yw)→(u,v)(X_w, Y_w) \rightarrow (u, v)(Xw,Yw)(u,v),生成两行约束:
Ai=[XwYw1000−uXw−uYw−u000XwYw1−vXw−vYw−v]A_i = \begin{bmatrix} X_w & Y_w & 1 & 0 & 0 & 0 & -u X_w & -u Y_w & -u \\ 0 & 0 & 0 & X_w & Y_w & 1 & -v X_w & -v Y_w & -v \end{bmatrix} Ai=[Xw0Yw0100Xw0Yw01uXwvXwuYwvYwuv]

4. 组装全局矩阵 A

将所有 nnn 个角点的约束堆叠:
A=[A1A2⋮An]2n×9A = \begin{bmatrix} A_1 \\ A_2 \\ \vdots \\ A_n \end{bmatrix}_{2n \times 9} A=A1A2An2n×9


求解方法

1. 齐次方程组求解

问题转化为:
min⁡h∥Ah∥2s.t.∥h∥=1\min_{\mathbf{h}} \| A \mathbf{h} \|^2 \quad \text{s.t.} \quad \| \mathbf{h} \| = 1 hminAh2s.t.h=1
(约束 ∥h∥=1\|\mathbf{h}\|=1h=1 避免零解)

2. SVD 分解

AAA 进行奇异值分解(SVD):
A=UΣVTA = U \Sigma V^T A=UΣVT
h\mathbf{h}hVVV最后一列(最小奇异值对应的右奇异向量)。

3. 恢复单应性矩阵

h\mathbf{h}h 重构为 HHH
H=[h11h12h13h21h22h23h31h32h33]H = \begin{bmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix} H=h11h21h31h12h22h32h13h23h33


示例(1个角点)

假设角点世界坐标 (Xw,Yw)=(2,3)(X_w, Y_w) = (2, 3)(Xw,Yw)=(2,3),像素坐标 (u,v)=(100,200)(u, v) = (100, 200)(u,v)=(100,200),则其约束矩阵为:
Ai=[231000−100×2−100×3−100000231−200×2−200×3−200]=[231000−200−300−100000231−400−600−200]A_i = \begin{bmatrix} 2 & 3 & 1 & 0 & 0 & 0 & -100 \times 2 & -100 \times 3 & -100 \\ 0 & 0 & 0 & 2 & 3 & 1 & -200 \times 2 & -200 \times 3 & -200 \end{bmatrix} = \begin{bmatrix} 2 & 3 & 1 & 0 & 0 & 0 & -200 & -300 & -100 \\ 0 & 0 & 0 & 2 & 3 & 1 & -400 & -600 & -200 \end{bmatrix} Ai=[203010020301100×2200×2100×3200×3100200]=[203010020301200400300600100200]


为什么需要 n≥4n \geq 4n4

  • 单应性矩阵 HHH 有 8 个自由度(尺度不变性)。
  • 每个角点提供 2 个独立方程。
  • 需满足 2n≥82n \geq 82n8n≥4n \geq 4n4 才能得到唯一解。

A 矩阵的数学意义

  1. 线性化工具:将非线性投影转换为线性约束。
  2. 超定系统基础:当 n>4n > 4n>4 时,AAA 是超定矩阵,通过 SVD 求最小二乘解。
  3. 解的空间:零空间(Null Space)的基向量对应可能的 h\mathbf{h}h,SVD 选取最优基。

总结

矩阵 A 是单应性估计的核心构造:

  • 结构2n×92n \times 92n×9 的系数矩阵(nnn 为角点数)。
  • 元素来源:每个角点根据其 (Xw,Yw)(X_w, Y_w)(Xw,Yw)(u,v)(u, v)(u,v) 生成两行约束。
  • 求解目标:最小化 ∥Ah∥\| A \mathbf{h} \|Ah 得到 HHH 的最优解。
  • 实际应用:在 OpenCV 的 findHomography()calibrateCamera() 的第一步中隐式构建并求解。

补充内容2:内参约束与闭合解

一、旋转矩阵正交性的物理意义

在相机标定中,外参矩阵的旋转部分 RRR正交矩阵,具有两个核心性质:

  1. 列向量正交性r1Tr2=0r_1^T r_2 = 0r1Tr2=0
    (相机坐标系的X轴与Y轴垂直)
  2. 单位长度性r1Tr1=r2Tr2r_1^T r_1 = r_2^T r_2r1Tr1=r2Tr2
    (相机坐标系各轴均为单位向量)

这些性质源于三维空间的刚体运动特性

  • 相机安装时,其感光元件的X/Y轴严格垂直
  • 旋转矩阵必须保持坐标系基向量的长度不变
  • 数学表达:RTR=IR^T R = IRTR=I(正交矩阵定义)
二、内参约束的推导过程

关键步骤是将旋转约束转换为关于内参的约束:

1. 从单应性矩阵建立关系

已知单应性矩阵 HHH 与内外参的关系:
H=λK[r1r2t]H = \lambda K \begin{bmatrix} r_1 & r_2 & t \end{bmatrix} H=λK[r1r2t]
其中 λ\lambdaλ 为尺度因子。提取前两列:
{h1=λKr1h2=λKr2\begin{cases} h_1 = \lambda K r_1 \\ h_2 = \lambda K r_2 \end{cases} {h1=λKr1h2=λKr2

2. 解耦旋转向量

反解 r1r_1r1r2r_2r2
{r1=1λK−1h1r2=1λK−1h2\begin{cases} r_1 = \frac{1}{\lambda} K^{-1} h_1 \\ r_2 = \frac{1}{\lambda} K^{-1} h_2 \end{cases} {r1=λ1K1h1r2=λ1K1h2

3. 应用正交性约束

r1,r2r_1, r_2r1,r2 代入正交条件:

(1) 正交性约束 r1Tr2=0r_1^T r_2 = 0r1Tr2=0

(2) 单位长度约束 r1Tr1=r2Tr2r_1^T r_1 = r_2^T r_2r1Tr1=r2Tr2
(1λK−1h1)T(1λK−1h1)=(1λK−1h2)T(1λK−1h2)h1TK−TK−1h1=h2TK−TK−1h2⇒h1TK−TK−1h1=h2TK−TK−1h2\begin{align*} \left( \frac{1}{\lambda} K^{-1} h_1 \right)^T \left( \frac{1}{\lambda} K^{-1} h_1 \right) &= \left( \frac{1}{\lambda} K^{-1} h_2 \right)^T \left( \frac{1}{\lambda} K^{-1} h_2 \right) \\ h_1^T K^{-T} K^{-1} h_1 &= h_2^T K^{-T} K^{-1} h_2 \\ \Rightarrow \boxed{h_1^T K^{-T} K^{-1} h_1 = h_2^T K^{-T} K^{-1} h_2} \end{align*} (λ1K1h1)T(λ1K1h1)h1TKTK1h1h1TKTK1h1=h2TKTK1h2=(λ1K1h2)T(λ1K1h2)=h2TKTK1h2

三、内参约束的几何解释

定义内参关联矩阵
B=K−TK−1=[B11B12B13B12B22B23B13B23B33]B = K^{-T} K^{-1} = \begin{bmatrix} B_{11} & B_{12} & B_{13} \\ B_{12} & B_{22} & B_{23} \\ B_{13} & B_{23} & B_{33} \end{bmatrix} B=KTK1=B11B12B13B12B22B23B13B23B33
(对称矩阵,6个独立未知量)

则约束转化为:

  1. h1TBh2=0h_1^T B h_2 = 0h1TBh2=0
  2. h1TBh1=h2TBh2h_1^T B h_1 = h_2^T B h_2h1TBh1=h2TBh2

物理意义

这些约束建立了图像点坐标h1,h2h_1, h_2h1,h2 来自单应性矩阵)与相机内部参数(隐藏在 BBB 中)的直接联系,通过多张图像可构建方程组求解 BBB

四、闭合解的求解原理
1. 构建线性方程组

对每张标定板图像(i=1,2,...,mi=1,2,...,mi=1,2,...,m):

  • 计算单应性矩阵 H(i)H^{(i)}H(i)
  • 提取 h1(i),h2(i)h_1^{(i)}, h_2^{(i)}h1(i),h2(i)
  • 生成两个方程:
    {vec(h1(i)h2(i)T)T⋅vec(B)=0vec(h1(i)h1(i)T−h2(i)h2(i)T)T⋅vec(B)=0\begin{cases} \text{vec}(h_1^{(i)} h_2^{(i)T})^T \cdot \text{vec}(B) = 0 \\ \text{vec}(h_1^{(i)} h_1^{(i)T} - h_2^{(i)} h_2^{(i)T})^T \cdot \text{vec}(B) = 0 \end{cases} {vec(h1(i)h2(i)T)Tvec(B)=0vec(h1(i)h1(i)Th2(i)h2(i)T)Tvec(B)=0
2. 矩阵化表示

组装 2m×62m \times 62m×6 矩阵 VVV
V=[v1(1)Tv2(1)T⋮v1(m)Tv2(m)T],其中 {v1(i)=vec(h1(i)h2(i)T)v2(i)=vec(h1(i)h1(i)T−h2(i)h2(i)T)V = \begin{bmatrix} v_{1}^{(1)T} \\ v_{2}^{(1)T} \\ \vdots \\ v_{1}^{(m)T} \\ v_{2}^{(m)T} \end{bmatrix}, \quad \text{其中 } \begin{cases} v_1^{(i)} = \text{vec}(h_1^{(i)} h_2^{(i)T}) \\ v_2^{(i)} = \text{vec}(h_1^{(i)} h_1^{(i)T} - h_2^{(i)} h_2^{(i)T}) \end{cases} V=v1(1)Tv2(1)Tv1(m)Tv2(m)T,其中 {v1(i)=vec(h1(i)h2(i)T)v2(i)=vec(h1(i)h1(i)Th2(i)h2(i)T)
求解:
Vb=0,b=[B11,B12,B22,B13,B23,B33]TV \mathbf{b} = 0, \quad \mathbf{b} = [B_{11}, B_{12}, B_{22}, B_{13}, B_{23}, B_{33}]^T Vb=0,b=[B11,B12,B22,B13,B23,B33]T

3. SVD求解
  • VVV 进行SVD分解:V=UΣWTV = U \Sigma W^TV=UΣWT
  • b\mathbf{b}bWWW 的最后一列(最小奇异值对应的右奇异向量)
4. 恢复内参矩阵

B=K−TK−1B = K^{-T} K^{-1}B=KTK1 通过Cholesky分解:
K−1=chol(B),K=(K−1)−1K^{-1} = \text{chol}(B), \quad K = (K^{-1})^{-1} K1=chol(B),K=(K1)1

五、关键点图解

在这里插入图片描述

graph LR
A[旋转矩阵正交性] -->|r₁ᵀr₂=0<br>r₁ᵀr₁=r₂ᵀr₂| B(单应性矩阵H)
B --> C[内参关联矩阵B]
C --> D[内参矩阵K]
D --> E[相机参数]
六、数学本质

该过程的核心是利用旋转矩阵的固有约束(正交性),将不可直接观测的内参可测量的图像对应点(通过单应性矩阵 HHH)联系起来:

  • 自由度分析
    • BBB 有6个自由度
    • 每张图像提供2个约束
    • 至少需3张图像求解(2×3=62 \times 3 = 62×3=6
  • 闭合解优势:避免非线性优化,直接得到解析解
七、实际应用

在OpenCV的calibrateCamera()中:

# 伪代码流程
homographies = [findHomography(points2D, board3D) for img in images]
V = build_constraint_matrix(homographies)  # 构建约束矩阵
_, _, Vt = cv2.SVDecomp(V)
b = Vt[-1, :]  # 取最后一列
K = compute_K_from_b(b)  # 闭合解计算内参
http://www.dtcms.com/a/300359.html

相关文章:

  • 【高等数学】第五章 定积分——第五节 反常积分的审敛法 Γ函数
  • C++编程学习(第16天)
  • 【RK3568 PWM 子系统(SG90)驱动开发详解】
  • JavaScript手录06-函数
  • Linux——线程同步
  • KubeKey安装KubeSphere、部署应用实践问题总结
  • 立式加工中心X-Y轴传动机械结构设“cad【6张】三维图+设计说明书
  • 计算机中的单位(详细易懂)
  • 计算机结构-逻辑门、存储器、内存、加法器、锁存器、程序计数器
  • 斐波那契数列加强版 快速矩阵幂
  • 53. 最大子数组和
  • 组合问题(回溯算法)
  • Windows Server容器化应用的资源限制设置
  • 图书管理系统:一个功能完善的图书馆管理解决方案
  • 【C++篇】STL的关联容器:map和set(下篇):用一颗红黑树同时封装出map和set
  • CCFRec-人大高瓴-KDD2025-序列推荐中充分融合协同信息与语义信息
  • Item13:以对象管理资源
  • 人工智能论文辅导:Prompt Engineering(特征工程)
  • 倍思鹿数值仿真-实现各类提示、快捷键功能,提高工作效率
  • Android Jetpack 组件库 ->Jetpack Navigation (下)
  • 通过不同坐标系下的同一向量,求解旋转矩阵
  • 深度学习入门(2)
  • 实验-OSPF多区域
  • 告别Vite脚手架局限!MixOne Beta测试招募:你的需求,我们来实现
  • 【Java】基础概念-构造函数详解
  • [Python] -进阶理解7- Python中的内存管理机制简析
  • 基于springboot的在线数码商城/在线电子产品商品销售系统的设计与实现
  • (二)使用 LangChain 从零开始构建 RAG 系统 RAG From Scratch
  • 7月26号打卡
  • Unity GenericMenu 类详解