本質矩陣和基礎矩陣的區別是什麼?

本質矩陣和基礎矩陣的區別是什麼?各自是個什麼東西?用大白話或者非專業性的語言來解釋。


先了解下對極幾何,兩個相機在不同位置(實際要求光心位置不同即可)拍攝兩張圖,這個模型就是對極幾何,如下圖(摘自《計算機視覺中的多視圖幾何》):

兩攝像機光心分別是C和C",圖像平面是兩白色的平面,空間中某一個點X在兩張圖的投影點分別是x和x"。這樣的模型就是對極幾何,空間點和兩光心組成的平面叫做對極面。簡言之,不同視點拍攝的兩個場景滿足對極幾何關係。

再講下基本矩陣,存在這麼一個矩陣F,使得空間中不在兩圖像平面上的任意點X分別在兩圖像的投影坐標x,x"滿足等式(x")T*F*x=0,即x"的轉置乘以F,再乘以x的結果為0,那麼F就是左邊圖像到右邊圖像的基本矩陣,從公式上可以看出基本矩陣是有方向的,右圖到左圖的基本矩陣就是F的轉置。F矩陣有如下性質:

1、秩為2;

2、F矩陣是一個7個自由度的3*3矩陣(3*3矩陣本身9個自由度,因為相差一個常數因子和行列式值為0兩個條件,減掉2個自由度),相差一個常數因此的意思是:kF(k!=0)也是基本矩陣,也就是說如果F是基本矩陣,那麼kF也是基本矩陣,所以基本矩陣不唯一,在相差一個倍數的前提下是唯一的,也就是我們可以固定矩陣中某一個非零元素的值,這樣自然少一個自由度。

這裡講下自己對基本矩陣的理解:很簡單,基本矩陣提供了三維點到二維的一個約束條件。舉個例子,現在假設我們不知道空間點X的位置,只知道X在左邊圖上的投影x的坐標位置,也知道基本矩陣,首先我們知道的是X一定在射線Cx上,到底在哪一點是沒法知道的,也就是X可能是Cx上的任意一點(也就是軌跡的意思),那麼X在右圖上的投影肯定也是一條直線。也就是說,如果我們知道一幅圖像中的某一點和兩幅圖的基本矩陣,那麼就能知道其對應的右圖上的點一定是在一條直線上,這樣就約束了兩視角下的圖像中的空間位置一定是有約束的,不是任意的。基本矩陣是很有用的一個工具,在三維重建和特徵匹配上都可以用到。

最後帶下本質矩陣,本質矩陣就是在歸一化圖像坐標下的基本矩陣。不僅具有基本矩陣的所有性質,而且還可以估計兩相機的相對位置關係,具體內容可參考《計算機視覺中的多視圖幾何》。


1、 不同人眼中的哈姆雷特——P及其副本不同坐標系下的表示

2、 橫看成嶺側成峰——多個角度看點P

本質矩陣E(Essential Matrix):反映【空間一點P的像點】在【不同視角攝像機】下【攝像機坐標系】中的表示之間的關係。

基礎矩陣F(Fundamental Matrix):反映【空間一點P的像素點】在【不同視角攝像機】下【圖像坐標系】中的表示之間的關係。

------------------------------------------推導過程分割線-------------------------------------------

3、 推導過程


簡單的講基礎矩陣表示的是某個物體或場景各特徵在不同的兩張照片對應特徵點圖像坐標的關係;對這些圖像坐標用照片對應相機內參數進行歸一化得到歸一化坐標,本質矩陣表示同一特徵對應歸一化坐標的關係,本質矩陣分解可得到兩相機之間旋轉矩陣和平移向量。二者聯繫:利用本質矩陣和相機內參數矩陣相乘可以得到基礎矩陣。


第一次答,直接截圖上傳了^_^


先說各自是個什麼東西,其實理解Epipolar Geometry的關鍵在於掌握下面的幾個點:

  1. 在射影幾何中,要通過兩個不同的點求連接這兩點的直線,兩點作叉乘即可。當然由於Duality的存在,要通過兩條直線求他們相交於哪一點,同樣兩線作叉乘即可。
  2. 相機的成像原理是將一個三維的點按照小孔成像的原理投影到了二維平面上,那麼其逆過程(通過二維平面的點估計三維點的位置)必然會帶來一個不確定量。這個不確定的量就是深度,更準確地說,是小孔和三維點之間的距離。
  3. CV中引入Epipolar Geometry的目的是為了研究從不同的相機看世界中的同一個點,在兩個視平面上的點應該滿足什麼樣的關係。通過1和2我們會知道這個關係是(相機1中的)點對應(相機2中的)線的關係。通過這個關係,我們之後可以進一步使用三角定位來找出三維世界中的點在哪裡。

下面逐點解釋,先看第一點:

  • 射影幾何中的2D點如何表示? mathbf{hat{x}} = egin{bmatrix}u\v\1end{bmatrix}
  • 射影幾何中的線如何表示? mathbf{l} = egin{bmatrix}a\b\cend{bmatrix} ,這其中隱含的表示是一個直線方程 ax + by + c = 0
  • 如何表示點在線上? mathbf{hat{x}}^Tmathbf{l} = au + bv + c = 0
  • 假定現在有另外一個點 mathbf{hat{x} 也在線上,則 mathbf{hat{x}}^{
  • 聯立方程如何求解這條直線?叉乘咯。 mathbf{l} = mathbf{hat{x}} 	imes mathbf{hat{x}

到這應該很好理解,那麼接下來來看第二點:

  • 三維中的點怎麼投到二維的視平面上啊?答案是用一個投影矩陣拍下去,也就是 mathbf{hat{x}} = mathbf{P}mathbf{hat{X}}
  • 那麼反過來呢?二維視平面的點回到三維是什麼樣的?由於 mathbf{P} 不能直接求逆,我們可以將這個逆向過程表示為 mathbf{hat{X}} = mathbf{P}^{dagger}mathbf{hat{x}} + lambdamathbf{C} 。這裡的 mathbf{C} 表示的就是相機成像的小孔所在的位置。這個方程的直觀理解是,三維世界中的點 mathbf{hat{X}} 必然位於相機中心 mathbf{C} 和視平面上的二維點 mathbf{P}^{dagger}mathbf{hat{x}} 所連成的直線上。

到這裡似乎都還和Fundamental matrix毫無關聯,但其實已經很近了,我們來看第三點。已知兩個相機都能看到三維世界中的同一個點 mathbf{hat{X}} ,如何找出兩個視平面中的點應該滿足什麼樣的關係呢?

  • 首先我們利用(2)中推出的結論,將這個三維點用相機1的逆向表示寫作 mathbf{hat{X}} = mathbf{P}^{dagger}mathbf{hat{x}} + lambdamathbf{C} 。既然我們只能確定這個點在一條直線上,那麼應用(1)的結論,我們知道這條直線可以表示為其上兩個點的叉乘,也就是 mathbf{l} = mathbf{C} 	imes mathbf{P}^daggermathbf{hat{x}}
  • 這兩個點都可以經過投影變換求出他們在相機2中的位置,那麼相機2看到的「從相機1中重建的三維點」也是一條直線,這條直線是 mathbf{l} ,即所謂的Epipolar line。
  • (mathbf{P} 恰恰就是相機1的中心在視平面2中的位置,也就是所謂的Epipole。這個向量叉乘另一個向量是可以表示為矩陣的形式的,於是我們有 mathbf{l} ,其中 mathbf{F} = [mathbf{e}

有了這個點到線的對應關係之後,前輩們表示好了好了我知道單靠一個相機1因為深度信息的缺失估計不了三維點的準確位置,最好的情況也只能得知這個三維點應該在相機2視平面上的某一條直線上,那麼我們放鬆一點要求,只要求相機2中看到的三維點也落在這條直線上,這不過分吧?

一點都不過分啊,點在線上的要求是什麼? mathbf{hat{x}}^{

這就是Fundamental matrix的本質。

那如果從三維到二維的投影不是一個generic的 mathbf{P} ,而是已知相機內參 mathbf{K}mathbf{K} 的情況,那麼我們可以進一步簡化 mathbf{F} 使得它不必去考慮內參,這時就得到了Essential matrix,也就是 mathbf{E} 。簡而言之,Essential matrix是帶Camera Calibration的Fundamental matrix。


p為極坐標形式的圖像坐標,a_p_T * E_ab * b_p = 0;

q = K*p,K為攝像機內參數矩陣。a_q_T * F_ab * b_q = 0;

基本矩陣和本質矩陣的關係為 F_ab = K _a_-T * E_ab * K _b_-1


逼格不一樣啊,其實就是共麵條件(約束),兩條光束外加基線必定在一個平面上。

CV中的基本矩陣對應了射影重建,這個逼格高啊,搞攝影測量的完全不懂啊,搞攝影測量的比搞CV的早鼓搗了上百年也只弄出來個本質矩陣啊。

雖說攝影測量只會迭代優化,不會計算初值,但是專業術語都是超贊的啊,共線方程,相對定向,前方交會,後方交會,光束法平差,都是很形象的啊。

那個CV中的「捆集調整」是個什麼鬼?


基本矩陣描述的是圖像仿射坐標系下左右對應點u1,u2之間的變換,而本質矩陣描述的是圖像歐式坐標系下左右對應點ui1,ui2之間的變換。參考《圖像處理、分析與機器視覺》P409

F=M_r^{-1}EM_l^{-1}

M_l 為相機內參。

簡單來講,基礎矩陣F操作的是圖像像素坐標而本質矩陣操作的是物理坐標。


上面回答都是公式推導來的,其實本質矩陣和基礎矩陣主要區別就是本質矩陣是利用歸一化圖像坐標後的對應點來求得的,兩個矩陣都表示不同圖像的對應點之間的坐標變換關係,由x"Ex=0約束求得;而基礎矩陣是帶上了相機的內參,在知道相機內參的情況下才可用基礎矩陣進行運動估計.


張學友相機標定法!!:):)


http://www.cse.psu.edu/~rtc12/CSE486/lecture19.pdf 這個系列講得特別清楚。但是似乎不太符合題主的要求。


推薦閱讀:

為什麼高斯函數的適用性這麼強?
計算機視覺目標跟蹤過程當中對遮擋問題處理比較好的演算法有哪些?
請問關於圖像處理數學基礎(原理)的書有哪些?
如此細膩柔美的布光是怎樣做到的?
如何使用 Photoshop 去水印(有水印源文件的情況下逆向還原圖像)?

TAG:圖像處理 | 計算機視覺 |