DLT 与单应性估计

DLT vs Homography Estimation

我对 here and the homography estimation described here 中描述的 DLT 算法之间的区别有点困惑。在这两种技术中,我们都试图通过使用至少 4 个点对应来求解 3x3 矩阵的条目。在这两种方法中,我们都建立了一个系统,其中我们有一个 "measurement" 矩阵,我们使用 SVD 来求解构成 H 的元素向量。我想知道为什么有两种技术似乎做同样的事情,以及为什么其中一个可能被用于另一个。

您有左右图像对应 {p_i} <-> {p'_i},其中 p_i = (x_i, y_i),等等

将它们标准化为单位平方意味着计算两个位移 m=(mx, my)m'=(mx', my') 和两个尺度 s=(sx,sy)s'=(sx',sy'),使得 q_i = (p_i - m) / sq_i' = (p_i' - m') / s',并且 {q_i}{q'_i} 变换后的图像点都以 (0,0) 为中心,并且大约包含在单位边长的正方形内。一点数学表明,对于 m 项来说,一个不错的选择是每组图像点中 x、y 坐标的平均值,对于 s 项,您可以使用标准差(或标准差的两倍)乘以 1/sqrt( 2).

你可以用矩阵形式表达这个归一化变换:q = T p, 其中 T = [[1/sx, 0, -mx/sx], [0, 1/sy, -my/sy], [0, 0, 1]],同样 q' = T' p'.

然后计算 {q_i}{q'_i} 点之间的单应性 Kq_i' = K q_i.

最后,您将 K 非规范化为原始(非规范化)坐标,因此:H = inv(T') K T,而 H 是将 {p} 映射到 {p'}.