单映性变换

发布于 2024-06-11 20:39:46 字数 4022 浏览 18 评论 0

3D 坐标转换到 2D 坐标

在单应性下,我们可以将 3D 中的点从相机 1 到相机 2 的变换写为:

$ X_2=HX_1 \longrightarrow X_1,X_2 \in R^3 $

在图像平面中,使用齐次坐标,公式如下:

$ λ_1x_1=X_1$
$λ_2x_2=X_2 $
$\therefore λ_2 x_2 = Hλ_1x_1 $

这意味着在一定范围内,X2等于 HX1。X2到 HX1是图像平面中的点之间的直接映射。如果确定这些点都在一副图像(对于通过纯旋转相关的相机,每个场景点可以被认为是躺在无限平面上) 所在的平面中,则可以直接校正图像,而不需要恢复和操纵 3D 坐标。

单映性计算

为了计算 H,我们从等式 x2=Hx1开始,在齐次坐标中我们得到以下约束:

$$
\begin{bmatrix}x_2\\ y_2 \\ z_2 \end{bmatrix}=\begin{bmatrix}H_{11} & H_{12} & H_{13}\\ H_{21} & H_{22} & H_{23}\\ H_{31} & H_{32} & H_{33} \end{bmatrix}=\begin{bmatrix}x_1 \\ y_1 \\ z_1\end{bmatrix}\Leftrightarrow x_2=Hx_1
$$

在齐次坐标中 $(x_2’= x_2/z_2$ 和 $y_2’ = y_2/z_2)$:

$$
\begin{aligned} x_{2}^{\prime} &=\frac{H_{11} x_{1}+H_{12} y_{1}+H_{13} z_{1}}{H_{31} x_{1}+H_{32} y_{1}+H_{33} z_{1}} \ y_{2}^{\prime} &=\frac{H_{21} x_{1}+H_{22} y_{1}+H_{23} z_{1}}{H_{31} x_{1}+H_{32} y_{1}+H_{33} z_{1}} \end{aligned}
$$

为了习惯一般情况,令$z_1=1$并重新排列:

$$
\begin{array}{l}{x_{2}^{\prime}\left(H_{31} x_{1}+H_{32} y_{1}+H_{33}\right)=H_{11} x_{1}+H_{12} y_{1}+H_{13}} \\ {y_{2}^{\prime}\left(H_{31} x_{1}+H_{32} y_{1}+H_{33}\right)=H_{21} x_{1}+H_{22} y_{1}+H_{23}}\end{array}
$$

我们想求解 H.即使这些非齐次方程涉及非线性坐标,但是 H 的系数呈线性。 因此整理上面的方程得到:

$$
\begin{matrix}
a^T_xh = 0\\ a^T_yh = 0
\end{matrix}
$$

其中参数含义:

$$
\begin{matrix}
h=(H_{11},H_{12},H_{13},H_{21},H_{22},H_{23},H_{31},H_{32},H_{33})^T\\ a_x=(-x_1,-y_1,-1,0,0,0,x’_2x_1,x’_2y_1,x’_2)^T \\ a_y = (0,0,0,-x_1,-y_1,-1,y’_2x_1,y’_2y_1,y’_2)^T
\end{matrix}
$$

对这个系数矩阵做奇异值分解,在 matlab 里面有工具可以帮我们计算:

[U,D,V]=svd(A);
h=V(:,end);
H=[h(1) h(2) h(3);h(4) h(5) h(6);h(7) h(8) h(9)];

这样,最后一个参数 V 的最后一列的九个值就组成了 homography matrix。

给定一组对应点,我们可以形成以下线性方程组:

$$ Ah=0 $$

其中参数含义:

$$
A=\begin{pmatrix}
a_{x_1}^T\\
a_{y_1}^T\\
…\\
a_{x_N}^T\\
a_{y_N}^T
\end{pmatrix}
$$

方程 Ah=0 可以用齐次线性最小二乘法来解决,将在接下来的部分进行描述。

齐次线性最小二乘法

我们会经常遇到这样形式的问题:$$Ah=0$$这是典型的齐次线性最小二乘法的问题,它跟非齐次线性最小二乘法

$$ Ah=b $$

在这种情况下,我们使用 A 的伪逆或求解求解 x。但是这不适用于 Ah=0。因此,我们使用奇异值分解(SVD)的方法来解决 Ah=0 的问题。
首先,计算 A 的 SVD:

$$
A=U\sum V^T=\sum _{i=1}^{9}\sigma _iu_iv_i^T
$$

奇异值 $\sigma_i$ 将按降序排序,因此 $\sigma_9$ 将是最小的。
$\sigma_9$ 的值有三种情况:

  • 如果单应性是确定的,则$\sigma_9$,并且存在适合该点的单应性。
  • 如果单映性是超定的,则$\sigma_9$ ,这里$\sigma_9$表示“残余”或拟合优度。
  • 我们不处理单映性未定的情况。

从 SVD 中,我们取对应于最小奇异值的“右奇异向量”(V 的一列)值$\sigma_9$。 解 h 包含最佳拟合点的单应性矩阵的系数。我们将 h 重构成矩阵 H,并形成等式$x_{2}=Hx_{1}$。

齐次线性最小二乘的推导

从 Ah=0 开始,总和平方的误差可以写为:

$$
f(h)=\frac{1}{2}(Ah-0)^T(Ah-0) \\
f(h)=\frac{1}{2}(Ah)^T(Ah) \\
f(h)=\frac{1}{2}h^TA^TAh
$$

取 f 相对于 h 的导数并且将结果设置为零,得到:

$$
\frac{d}{dh}f=0=\frac{1}{2}(A^TA+(A^TA)^T)h \\
0 = A^TAh
$$

观察 $A^T$ A 的特征向量分解,我们看到 h 应该等于特征值为零的 $A^T$A 的特征向量(或者,在存在噪声的情况下,特征值最接近零)。

该结果与使用 SVD 获得的结果相同。这从很容易理解,假设具有 SVD 分解的矩阵 $A=UΣV^T$,V 的列对应于 $A^TA$ 的特征向量。

可以参考:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
24 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文