Advertisement

CS231A:Vanishing Points and Lines

阅读量:

消影点

由于透视的原因, 本不应相交的平行线会在图像中的无穷远处相交, 本来等距的点之间的距离也会变成单调递减, 所以会有消影点:
在这里插入图片描述

上图是直线中的消影形成, X是世界直线, C是摄像机位置, x是图像直线, 可知世界直线和图像直线是不平行的。

本来X_1,X_2,...,X是等距的,在x图像直线不是这样的,消影点通过过摄像机中心的平行于世界直线的直线图像直线 求交点获取

所以消影点和世界直线的位置无感,只和与图像直线的夹角 相关。

推广到3D空间:
在这里插入图片描述

设一直线方向为d,那么消影点就是过摄像机中心且方向为d的射线与图像平面的交点v:
v = PX_{\infty} = k[I|0] \begin{pmatrix} d \\ 0 \end{pmatrix} = Kd

由消影点求摄像机旋转
某摄像机拍了两张图,其中某景物在图一中的消影点是v,在图二中的消影点是v',先得到消影方向d :
d_i = \frac{K^{-1}v_i}{||K^{-1}v_i||}
用归一化因子||K^{-1}v_i||来保证单位矢量,通过下式求得R
d'_i = Rd_i

由消影点确定直线夹角
可以确定图像中两条直线间的夹角:
cos\theta =\frac{d_1 \cdot d_2}{||d_1||\ ||d_2||} = \frac{v^T_1wv_2}{\sqrt{v^T_1wv_1}\sqrt{v^T_2wv_2}}
其中:
w = (KK^T)^{-1}


消影线

消影线是三维空间的平面的概念
在这里插入图片描述
\pi是景物平面,取一个过摄像机中心C平行于 \pi的平面,交图像平面与直线ll就是消影线。

消影线和景物平面的位置 无关,和景物平面的法向量 n有关

l_{horiz} = H^{-T}_P l_{\infty}
l_{\infty} = [0\ 0\ 0\ 1]^T
在这里插入图片描述

地面消影线应该也就是地平线吧

有了l_{horiz}就能得出平面的法向量
n = K^Tl_{horiz}

只要l是一个过相机中心的平面上的一条直线,都可以用这个公式来求这个平面的法向量

然后就能计算出两个平面的夹角
cos\theta =\frac{n_1 \cdot n_2}{||n_1||\ ||n_2||} = \frac{l^T_1wl_2}{\sqrt{l^T_1wl_1}\sqrt{l^T_2wl_2}}


用消影点和消影线来确定标定K

在这里插入图片描述
现在有单张图片,且有三个消影点,只使用这些信息来求K:

我们知道这三个平面都是相互正交的,我们可以得到v_1wv_2 = 0

w是取决于K的gngy偶,K有五个自由度,v_1wv_2=0能提供一个约束;共有三个正交平面的投影点:v_1wv_2 = v_1wv_3 = v_2wv_3=0,这样共提供了三个约束。

如果设定是zero-skew并且是正方形的像素,那么又能提供两个约束,此时w的方程变为:
在这里插入图片描述

w是一个3\times 3矩阵,假设s = K_{12}=0,且[w_{ij} = w = K^{-T}K^{-1},那么w_{12} = w_{21} = 0,如果还满足\alpha_x = K_{11} = K_{22} = \alpha_y,那么w_{11} = w_{22}

index从1开始

有了w之后,就能用Cholesky分解法求出K

全部评论 (0)

还没有任何评论哟~