【OpenCV】 DLT 算法 (Direct linear transformation)

Backto OpenCV Index


OpenCV 计算外参的函数 cvFindExtrinsicCameraParams2, 用到了 DLT 方法来计算初始的外参参数.

Intro

from wikipedia:

Direct linear transformation (DLT) is an algorithm which solves a set of variables from a set of similarity relations:

x k ∝ A y k    f o r    k = 1 , . . . , N x_k \propto A y_k \; for \; k = 1, ..., N xkAykfork=1,...,N

where x k x_k xk and y k y_k yk are known vectors, ∝ \propto denotes equality up to an unknown scalar multiplication, and A A A is a matrix(or linear transformation) which contains the unknown to be solved.

This type of relation appears frequently in projective geometry. Practical examples include the relation between 3D points in a scene and their projection onto the image plane of a pinhole camera, and homographies.

DLT 主要用来解决两组相似分布的变量的对应关系, 一般求解的是比例关系, 确定了系数还可以变为等式关系. 系数矩阵 A A A就是要求解的变量. 这个常用在投影几何中, 比如 3D 物点和 2D像点之间的对应关系, 或者 Homographies.

求解的就是这个 linear transformation, 特点就是直接求, 不绕弯子, directly.


Ref

  • DLT – Wikipedia
  • 第七章 – 直接线性变换解法 : 超级详细, 超级完善
  • DLT算法的易错之处 : 这个博客说了为什么实际使用中 DLT 之前要先进行 归一化
  • Triangulation求解3D坐标-直接线性转换(Direct Linear Transformation-DLT)算法 : 这篇博客讲解了在实际 3D 重建中使用 DLT 的场景

你可能感兴趣的:(OpenCV)