搬運自我的CSDN https://blog.csdn.net/u013213111/article/details/101233824
1 DoF of Homography
追根溯源,還是去看高等幾何/解析幾何吧。
對於一個二維射影homography 3*3矩陣
雖然有9個元素,但並不是要求出每一個元素具體的值,而只需要得到這些元素的比例關系即可,得到比例關系就確定了homography,因此就減去了一個自由度。
那么假如\(h_{33} \neq 0\),一種將\(H\)進行參數歸一化的方法就是可以將每一個元素除以\(h_{33}\),經過這樣的處理,原本的\(h_{33}\)就變為了1,剩下的是8個未知的比值,只要求解出這8個比值即可,即8個自由度。其實理論上也不一定要用\(h_{33}\),雖然一般都用這個,畢竟其他元素還挺有可能為0的。
BTW,what if \(h_{33} = 0\)?如果將方程列出來,可以發現這是一個將\((0,0,w)\)點(也就是原點)映射到\((x,y,0)\)點(也就是無窮遠點)的射影。然而恕余愚鈍,並想象不出這會是個什么樣的射影。
除了以\(h_{33}\)作為一個“基准值”來進行歸一化,還有一種方式是以\(\sum h_{ij}^2 = 1\)作為約束,或者說是以\((\sum h_{ij}^2)^{1/2} = 1\)作為約束,也就是矩陣的L2范數或者又稱Euclidean范數 OR Frobenius范數。這就是以矩陣的“長度”作為基准值進行歸一化。
由於Homography的DoF為8,因此認為用4對點即可求解出一個Homography。
再回到高等幾何中,有這樣的定理:
任一二維射影對應可由已知四對對應點(每一方四點中無三點共線)唯一確定。
因此在計算機視覺中采用4對點去確定一個homography在數學上是有依據的!
作為一個完美主義強迫症患者表示對這個結果感到很滿意。
2 平行線與無窮遠點
參考:
Projective Transformations
假設\(w=1\)是射影平面,\(ax+by+c_1=0\) 和 \(ax+by+c_2=0\)是該平面上的兩條平行線,怎么理解這兩條平行線的交點是無窮遠點呢?
注意到射影平面上的每一個點都與3D空間中過射影中心的一條直線相對應,那么這兩條平行線也就分別對應於3D空間中的兩個平面,而這兩個平面的交線,也就是\(w=0\) 這個平面上的直線\(ax+by=0\),根據射影幾何中的定義,這條直線便與無窮遠點相對應。