单应矩阵H 一、为什么需要单应矩阵张正友标定单应矩阵Homography是3×3 齐次矩阵描述同一个平面两幅图像之间的像素齐次坐标映射如果说DLT解决的是如何建立投影方程PnP解决的是已知3D-2D求位姿本质矩阵E解决的是双目运动基础矩阵F解决的是未标定双目单应矩阵的核心价值在于它充分利用了平面场景这一特殊几何约束把原本需要三维恢复的问题降维为二维到二维的映射使得许多视觉任务标定、拼接、透视校正、SLAM初始化等都可以用一个 3×3 矩阵高效解决而在已知相机内参的情况下它又能进一步恢复相机相对于平面的姿态R,tR,tR,t成为连接二维图像与三维几何的重要桥梁。为什么需要单应矩阵先看一个最简单的问题。有一张A4纸问题为什么同一张纸像素坐标完全变化了不能简单 xx10因为不是平移 也不是旋转 而是透视变化(Perspective Transform)例如近处放大 远处缩小所以需要一个新的变换 Homography二、它解决了什么问题它把Plane ↓ Image1 ↓ Image2全部统一起来。消掉世界坐标以后得到好处1相机标定没有Homography就没有张正友标定先求H 再求K好处2透视矫正三、Homography数学模型Homography的来历这是张正友标定最大的前提。棋盘格于是世界点因此三维投影采用齐次坐标设 世界平面 (X,Y) 转换成齐次之后就是P[X,Y,1]^T图片 (u,v) 转换成 p[u,v,1]^T定义展开透视投影。为什么只有8个自由度H和2H 完全一样。所以 整体比例没有意义 9-18四、如何求解HDLT方程式每个点(X,Y) ↓ (u,v)给两个方程。那我们假设SVD求解A由于 h0 没有意义所以我们需要加上约束那么五、为什么H可以分解出R、tK1、为什么能分解出设世界点位于 Z0那么相机投影模型就是2、H 为什么能帮助求 K如何由 H 求 K利用旋转矩阵性质旋转矩阵满足正交等长把第一条约束第二条约束同样一张图片得到两条约束因此每一张棋盘图片可以得到如何解出 K因此一张图片提供2 个约束。至少需要3 张图片提供 6 条约束。实际工程一般10~20 张。将所有图片的约束写成由 B 恢复 K利用 Cholesky 分解或 Zhang 论文中的闭式公式得到 K3、如何分解R t现在已经知道K以及H。根据a、消除内参左乘K−1b、计算尺度由于旋转向量长度所以c、求 t4、最后一步LM 优化上面的 K、R、t 都是线性初值。张正友标定最后还会进行一次非线性优化目标函数六、算法流程棋盘格(Z0) │ ▼ DLT │ ▼ 单应矩阵 H │ ▼ H λK[r1 r2 t] │ ▼ 旋转矩阵正交约束 r1⊥r2 |r1||r2| │ ▼ Vb 0 │ ▼ SVD │ ▼ B K⁻ᵀK⁻¹ │ ▼ 恢复 K │ ▼ λ 1 / ||K⁻¹h1|| │ ▼ r1 λK⁻¹h1 r2 λK⁻¹h2 r3 r1 × r2 t λK⁻¹h3 │ ▼ LM优化最小化重投影误差