1. 求解目标:内参
从世界坐标系到像素坐标系的齐次坐标形式:
s [ u v 1 ] = K [ R t ] [ X w Y w Z w 1 ] s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K \, [\, R \quad t \,] \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} s uv1 =K[Rt] XwYwZw1
其中 s s s 是尺度因子,内参矩阵 K K K 为:
K = [ f x 0 c x 0 f y c y 0 0 1 ] K = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} K= fx000fy0cxcy1
2. 单应性矩阵
参考大佬的详细文章:https://zhuanlan.zhihu.com/p/74597564
2.1. 单应性矩阵的界说
单应性矩阵(Homography Matrix)是一个平面映射到另一个平面的映射矩阵,即将一个平面上的点映射到另一个平面上。
2.2. 透视变换矩阵(或称单应性变换矩阵)
- 刚体变换:平移+旋转,只改变物体位置,不改变物体形状。
- 仿射变换:改变物体位置和形状,但是原来平行的边依然平行。
- 透视变换(也称投影变换):彻底改变物体位置和形状
3 × 3 3\times3 3×3 的透视(或称单应性)变换矩阵 H H H :
H = ( A t v T 1 ) = ( h 11 h 12 h 13 h 21 h 22 h 23 h 31 h 32 1 ) H = \begin{pmatrix} A & t \\ v^T & 1 \end{pmatrix}= \begin{pmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & 1 \end{pmatrix} H=(AvTt1)= h11h21h31h12h22h32h13h231
其中:
- 仿射部分(Affine Component):
- 线性变换( 2 × 2 2\times2 2×2 部分 A A A): 这部分包含旋转、缩放和剪切。
A = ( h 11 h 12 h 21 h 22 ) A = \begin{pmatrix} h_{11} & h_{12} \\ h_{21} & h_{22} \end{pmatrix} A=(h11h21h12h22)
- 平移( 2 × 1 2\times1 2×1 向量 t t t): H H H 的第一、二行第三列构成了平移分量。
t = ( h 13 h 23 ) t = \begin{pmatrix} h_{13} \\ h_{23} \end{pmatrix} t=(h13h23)
- 透视(项目)部分(Projective Component):
假如 v T = [ h 31 , h 32 ] v^T=[h_{31},\,h_{32}] vT=[h31,h32] 不为零,则会引入额外的除法操作(透视除法):
- 变换后,一个点 ( x , y , 1 ) (x,\,y,\,1) (x,y,1) 会变为 ( x ′ , y ′ , w ′ ) (x',\,y',\,w') (x′,y′,w′),末了映射到实际图像坐标为 ( x ′ w ′ , y ′ w ′ ) \left(\frac{x'}{w'},\,\frac{y'}{w'}\right) (w′x′,w′y′)。
假如 v T = [ h 31 , h 32 ] v^T=[h_{31},\,h_{32}] vT=[h31,h32] 为零,则 w ′ w' w′为1,没有透视结果。
当观察角度改变或相机位置不在正火线时,物相识出现远处变小、近处变大的结果。矩阵中 h 31 h_{31} h31 和 h 32 h_{32} h32 控制了这种“深度依赖性”的变化,最终通过除以 w = h 31 x + h 32 y + 1 w = h_{31}x + h_{32}y + 1 w=h31x+h32y+1 实现非线性映射,使得平行线汇聚于消失点。
2.3. 单应性矩阵的求解
不是很恰当的描述:世界坐标系z=0的平面上图形(图中册本),从左右两个视角(两个图像平面)观察,得到两个图像平面上的两个不同图像。
求解一个包含 |