單應性矩陣與相機內外參之間的關系
標定:已知世界坐標系平面內的三維坐標和像素坐標,求解內參和外參;
本質矩陣和基本矩陣:已知內參和兩幅圖像中對應點的坐標,通過對極約束(八點法,尺度等價性,齊次坐標)求解相機的運動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

