單應矩陣的推導與理解
〇 、單應矩陣介紹
單應矩陣
(Homography),約束了同一 3D 空間點在兩個畫素平面的 2D 齊次座標。
展開:
正比於符號
可以理解為單應矩陣
約束了
和
的方向是同方向,而不約束尺度。可透過
叉乘
計算消去齊次的尺度因子,因此上面的約束還可以表達為如下形式:
因為
和
同方向,所以其叉乘結果為
向量。
依據推導可得,單應矩陣 H 由兩相機旋轉和平移資訊
,兩相機內參矩陣
,平面引數組成
:
下面給出上述單應矩陣公式的推導和理解過程。
一、基本設定
1。 相機系座標
3D 空間點在相機系下的座標
為:
2。 畫素系座標
相機系座標投影到畫素系的齊次座標:
其中:
為畫素系齊次座標;
為相機內參矩陣:
。
3。 平面引數
3D 空間點
所在的平面在相機系下的平面引數為:
其中:
為平面法向量;
相機系原點到平面距離。
3D 空間點
位於平面
上由以下方程表達:
二、平面引數:由畫素系計算相機系
1。 由畫素系座標計算相機系座標:
由於存在未知的深度
,因此無法由畫素系計算出相機系座標。
2。 平面引數計算深度
結合(1。4)(2。1)得:
整理得:
可見:透過 3D 點所在平面引數和畫素系座標
可以計算出 3D 點的深度
。
結合(2。1)(2。4)得:
可知,加入平面資訊
後,可完全由畫素座標還原出相機系座標。
三、單應矩陣:由畫素系 a 計算畫素系 b
1。 由 a 系畫素計算 b 系畫素
有相機系 a 下的點
和 相機系 b 下的點
:
其中:
表示:1。 b 系下 a 系的姿態。2。 a 繫到 b 系的座標旋轉變換;
表示:1。 b 系下 a 系的位置。2。 a 繫到 b 系的座標平移變換。
轉到對應畫素系,有關係:
可得到,由 a 系畫素表達的 b 系畫素:
但是存在未知數
,所以無法直接透過 a 系畫素得到 b 系畫素。
2。 加入平面引數
結合(2。4)(3。4)
上面推導用到的理論:
齊次座標與係數無關,因此可省去
可見,加入 3D 點的平面引數後,可由 a 系下畫素座標完全計算出對應的 b 系下畫素座標。
3。 定義單應矩陣
符號簡化:
其中
為由畫素系 a 到畫素系 b 的
單應矩陣
:
單應矩陣包含了相機內參矩陣
、旋轉
、平移
和平面引數
資訊。引入單應矩陣後,可以直接透過 a 系畫素得到 b 系畫素。
四、求解單應矩陣
(3。7)給出的單應矩陣的定義是透過旋轉平移資訊計算的,現實中有時不知道旋轉平移資訊,而知道兩張影象中的匹配點,可以由匹配點計算出單應矩陣。
對於圖片上的一對匹配點有如下關係:
展開得:
1。 單應矩陣有 8 個未知數
因為轉換的是齊次座標,所以單應矩陣
與尺度無關,也即
與
的作用是相同的,因此自由度為 8,使用
來進行歸一化。
故
共 8 個未知數,需要 8 個方程來解。
2。 一對匹配點提供 2 個方程
由於是齊次座標,所以展開是這種形式:
3。 四對匹配點提供 8 個方程
解此線性方程組,可得 單應矩陣
。