單應性矩陣與相機內外參之間的關係
單應性矩陣與相機內外參之間的關係
標定:已知世界座標系平面內的三維座標和畫素座標,求解內參和外參;
本質矩陣和基本矩陣:已知內參和兩幅影象中對應點的座標,通過對極約束(八點法,尺度等價性,齊次座標)求解相機的運動R和t(用到RANSAC);
單應矩陣:根據同一平面上的點在不同影象上的座標,得到對應的變換關係(十四講);
PNP:根據三維空間點的座標和他們的投影座標(歸一化平面座標),估計相機的位姿(用到BA);
ICP:得到三維點雲的變換關係(使用SVD);
尺度等價性:
一、Slam十四講
相機模型(針孔相機模型)
注意:相機座標系和成像平面;把成像平面對稱到相機前方,去掉負號;
畫素座標系的定義:
畫素座標(解析度作為比例係數,以左上角作為原點就要加上偏移量),
內參數矩陣(解析度和偏移量)
P是點在相機座標系中的座標;
Pw是點在世界座標系中的座標;需要使用一個剛體變換(外參);
使用齊次座標來描述;
將相機座標系中的座標歸一化到歸一化平面
標定原理:【】OPENCV立體標定 ,二代標定原理
二、單應矩陣H的求解(最小奇異值的特徵向量)(參考二代標定原理)
因為,根據牙齒二代參考的浙大論文,可以採用最小平方差方法來計算單應性矩陣H的值。
令,,則有,所以向量y與向量Hx平行,所以有 (3)
將H用行向量表示成,所以(3)可以化為,
又該式子中只有兩個是線性無關的,該式可進一步化為 (4)
將(4)式轉置可得,並改寫成矩陣運算形式: (5), 表示矩陣[0 0 0];
對於標定板上每個方格的角點,都有上面的兩個等式成立,因此有n個點時,可以建立n個類似(5)的方程組,合併這n個方程組,可得
(6)
這樣,求解H的問題就變成了求解次線性方程組(6)的問題,利用奇異值分解即可求出,,的值,則H得解。
具體解法:
已知: 已知 A∈Rm×n,m≥nA∈Rm×n,m≥n
問題: Ax=0Ax=0 的解
求解: 解為A的右奇異矩陣V的最後一列, 即 ATAATA 最小特徵值對應的特徵向量(參考:線性代數及其應用:二次型:定理6)
三、公式推導:
相機模型中一般要用到三個座標系:成像平面參考座標系、相機參考座標系和世界座標系。
1.世界座標系:
是在物體(標定板)環境中選擇的一個基準座標系,二代採用的張正友標定方法都以標定板的方格角點為原點,方格的兩邊為x、y軸,垂直於標定板為z軸建立直角座標系。度量單位為mm。
2.相機參考座標系:
以相機的光心為原點,平行於影象平面的兩條垂直邊界的方向為x、y軸,相機主光軸為z軸建立三維直角座標系。度量單位為mm。
3.成像平面參考座標系:
以影象平面的主點為原點(主光軸與影象平面交點),建立影象平面的兩條垂直邊界為x、y軸建立二維直角座標系。度量單位為畫素。
設世界座標系中標定板上的一點M的座標為,它在相機參考座標系中的座標為,則它們之間的轉換關係為
,
R是一個3X3的正交矩陣,表示兩個座標系之間的旋轉關係,T為一個3X1矩陣,表示兩個座標系之間的平移關係。
由於R是正交矩陣,因此組成R的9個數中只有三個引數獨立,而組成T的三個數則都獨立。由於[R T]矩陣只與攝像機相對於物體的位置有關,
因此[R T]稱為攝像機的外參矩陣,[R T]的六個獨立引數稱為攝像機的外參。
設點M以攝像機光心為投影中心,在成像平面參考座標系上投影點的座標為,則由相機參考座標系投影到成像平面參考座標系之間的轉換關係為:
,
s為放縮因子,A是一個3X3矩陣:
共有5個未知引數,因為這五個引數均只與攝像機的引數有關,稱為攝像機的內參矩陣。所以由世界座標系到成像平面參考座標系的變換關係可以表示為:
即
(1)
,由於標定板所有點都在z=0的平面上,所以,所以(1)式又可以寫成
,化簡得
(2)
記
則H為一個3X3矩陣,稱為單應矩陣。
四、攝像機內參的求解
依據:旋轉矩陣的列向量正交,在已知H以後就可以由
求解攝像機的內外參了。將左式寫成
的形式,將A變換到式子左邊,可得
即
(7)
,因為,是正交矩陣R的列向量,即與是單位正交向量,所以有下式成立:
,
代入(7)式可得
(8)
,令,因為B是對稱矩陣,所以只有
六個數是獨立的,類比矩陣二次型,可以知道
(9)
其中
所以利用(9)式,可以將(8)式表示為:
,化成矩陣形式
(10)
由於(10)式中b有6個未知數,而該式只相當於兩個方程,所以需要三組不同位置求解出的H,獲得3個類似(10)的式子並聯立,就能求解出b。
(因為b中的六個未知數由攝像機內參決定,與攝像機位置無關,所以可以利用三個不同位置拍攝標定板,並求解出三個H來求b)。求出b以後就可以得到B,
因為
,
,設B的第i行第j列為,則A的五個未知數可以表示為:
即攝像機內參得解。
五、攝像機外參的求解
可得:
其中
(乘以的原因:因為前面解得的H是利用向量y與向量Hx平行的條件,即:
,這裡求解出的H只是被y與向量Hx平行這個條件約束,若H乘上一個常數,它仍然滿足這個約束條件,
仍成立,因此求解出的H應該是真實的H乘上一個常數比例因子K,1.4中利用H求解內參時k可以被約掉不影響結果,而這裡由於,都是單位向量,
所以由
可知
所以
六、求解H的SVD解釋
https://www.cnblogs.com/nowgood/p/jie-ax--0.html
七、opencv實現
八、POSIT演算法
以下來自《學習opencv》
九、RANSAC演算法
隨機取樣一致性,用於
、
部落格轉自:https://www.cnblogs.com/tangyuanjie/p/14028224.html