1. 2D射影几何和变换
射影几何的概念和表示法是多视图几何分析的核心,使用齐次坐标就能用线性矩阵方程来表示非线性映射(例如透视投影);主要目的是为了从透视图像中恢复仿射和度量性质。
1.1 平面几何
Vector is Point, and Symmetric matrix is Conic.
在几何中采用代数方法的显著优点:这种方法导出的结果更容易产生算法以及实际的计算方法。
1.2 2D射影平面
1.2.1 Points and Lines
a x + b y + c = 0 ax+by+c=0 ax+by+c=0
l i n e : ( a , b , c ) ⊤ ~ k ( a , b , c ) ⊤ \\line:(a,b,c)^\top~k(a,b,c)^\top line:(a,b,c)⊤~k(a,b,c)⊤
p o i n t : ( x , y , 1 ) ⊤ ~ ( k x , k y , k ) ⊤ \\point:(x,y,1)^\top~(kx,ky,k)^\top point:(x,y,1)⊤~(kx,ky,k)⊤
这种等价关系下的矢量等价类被称为齐次矢量,射影空间 IP 2 = IR 3 − ( 0 , 0 , 0 ) ⊤ \textit{\textbf{IP}}^2=\textit{\textbf{IR}}^3-(0,0,0)^\top IP2=IR3−(0,0,0)⊤;
Result 1:
- l ⊤ x = 0 \textbf{l}^\top\textbf{x}=0 l⊤x=0;
- dof = 2 ( [ x , y ] o r { a : b : c } ) \textit{dof} =2([x,y] or \left\{a:b:c\right\}) dof=2([x,y]or{ a:b:c});
- x = l × l ′ , l = x × x ′ \textbf{x}= \textbf{l}\times\textbf{l}', \textbf{l}= \textbf{x}\times\textbf{x}' x=l×l′,l=x×x′;
1.2.2 Ideal Points and the Line at Infinity
由平行线交点定义<idel points>,再由<idel points>定义 <infinity line>,<infinity line>可以看作 <lines direction>集合;任意两条直线都相交于一点,而任意两个相异的点都在一条直线上;
x = l × l ′ = ∣ i j k a b c a b c ′ ∣ \textbf{x}= \textbf{l}\times\textbf{l}'= \left| \begin{array}{ccc} i & j & k \\ a & b & c \\ a & b & c' \\ \end{array} \right| x=l×l′=∣∣∣∣∣∣iaajbbkcc′∣∣∣∣∣∣
i = ( 1 , 0 , 0 ) , j = ( 0 , 1 , 0 ) , k = ( 0 , 0 , 1 ) \textit{\textbf{i}}=(1,0,0), \textit{\textbf{j}}=(0,1,0),\textit{\textbf{k}}=(0,0,1) i=(1,0,0),j=(0,1,0),k=(0,0,1)
x i d e l i n l ∞ → l ∞ × l = ( 0 , 0 , 1 ) × ( a , b , c ) ⊤ = ( b , − a , 0 ) = x i d e l → l d i r \textbf{x}_{idel}\ in\ \textbf{l}_\infty \rightarrow \textbf{l}_\infty\times \textbf{l}=(0,0,1)\times(a,b,c)^\top =(b,-a,0) =\textbf{x}_{idel} \rightarrow \textbf{l}_{dir} xidel in l∞→l∞×l=(0,0,1)×(a,b,c)⊤=(b,−a,0)=xidel→ldir
射影平面模型:
两相异射线共处于一张平面上(两个相异点唯一确定一条直线),而任何两张相异平面相交于一条射线(两条相异直线相交于一点); 表示理想点的射线和表示无穷远直线的平面都与该平面平行;
Result 2:
- Dual:2维射影几何中的任何定理都有一个对应的对偶定理,它可以通过互换原定理中点和线的作用而导出;
1.2.3 Conics and Dual Conics
非退化二次曲线是不同方向的平面与圆锥相交所产生的截线,退化的二次曲线由过锥顶的平面产生,五点定义一条二次曲线:
a x 2 + b x y + c y 2 + d x + e y + f = 0 ax^2+bxy+cy^2+dx+ey+f=0 ax2+bxy+cy2+dx+ey+f=0
x ⊤ Cx = 0 \textbf{x}^\top\textbf{C}\textbf{x}=0 x⊤Cx=0
C = [ a b / 2 d / 2 b / 2 c e / 2 d / 2 e / 2 f ] \\\textbf{C}= \left[ \begin{array}{ccc} a & b/2 & d/2 \\ b/2 & c & e/2 \\ d/2 & e/2 & f \\ \end{array} \right] C=⎣⎡ab/2d/2b/2ce/2d/2e/2f⎦⎤
d o f = 5 ( { a : b : c : d : e : f } ) dof=5(\{a:b:c:d:e:f\}) dof=5({
a:b:c:d:e:f})
零空间拟合几何实体:
c = ( a , b , c , d , e , f ) ⊤ \textit{\textbf{c}}=(a,b,c,d,e,f)^\top c=(a,b,c,d,e,f)⊤
[ x i 2 x i y i y i 2 x i y i 1 ] c = 0 \left[ \begin{array}{ccccc} x^2_i & x_iy_i & y^2_i & x_i & y_i & 1 \end{array} \right]\textit{\textbf{c}}=0 [xi2xiyiyi2xiyi1]c=0
Result 3:
- Tangent:过(非退化)二次曲线 C \textbf{C} C上点 x \textbf{x} x的切线 l \textbf{l} l由 l = Cx \textbf{l}=\textbf{C}\textbf{x} l=Cx确定;
- Dual Conics: l ⊤ C ∗ l = 0 \textbf{l}^\top\textbf{C}^*\textbf{l}=0 l⊤C∗l=0, C ∗ = C − 1 \textbf{C}^*=\textbf{C}^{-1} C∗=C−1;
- Degenerate Conics:非满秩矩阵 C \textbf{C} C所定义的二次曲线称作退化二次曲线,退化的点二次曲线包含两条线(秩2:线性无关性)或一条重线(秩1);( C = lm ⊤ + ml ⊤ , x 0 = l × m , C ∗ = xy ⊤ + yx ⊤ \textbf{C}=\textbf{lm}^\top+\textbf{ml}^\top,\textbf{x}_0=\textbf{l}\times\textbf{m},\textbf{C}^*=\textbf{xy}^\top+\textbf{yx}^\top C=lm⊤+ml⊤,x0=l×m,C∗=xy⊤+yx⊤);
1.3 射影变换
射影映射=>保线变换=>射影变换=>单应(homography):
平面射影变换是关于齐次3维矢量的一种线性变换,并可用一个非奇异 3 × 3 3\times3 3×3矩阵H表示:
l ⊤ H − 1 Hx = 0 → x ′ = Hx , l ′ = H − ⊤ l \textbf{l}^\top\textbf{H}^{-1}\textbf{Hx}=0\rightarrow\textbf{x}'=\textbf{H}\textbf{x},\textbf{l}'=\textbf{H}^{-\top}\textbf{l}