Monocular slam 理論基礎(2)

2022-07-24 04:06:08 字數 2628 閱讀 7636

在知道了相機的軌跡以後,使用三角法就能計算某個點的深度,在hartley的《multiple view geometry》一書中第10章、第12章都是講的這個,這裡只講解線性求解方法。 

對於三維空間中的一點 p

,我們假設第乙個攝像機座標系c

1就是世界座標系,p在世界座標系下的表示為p=(

x,y,

z,1)

t,這時,攝像機座標系c

1的外引數矩陣m

1為單位矩陣。

點p和光心的連線交第乙個影象平面於點p

1 ,注意這裡的p12

。 pi在各自攝像機座標系中的表示為: p1

=⎛⎝⎜

x1y1

1⎞⎠⎟

c1和  p2=

⎛⎝⎜x

2y21

⎞⎠⎟c

2攝像機座標系c

2的外引數矩陣為m

2,由於攝像機座標系c

1就是世界座標系,所以有

在推導本徵矩陣e

的時候,我們說r

是從座標系c

2到座標系c

1的旋轉變換矩陣,即12r

。t是平移,更確卻的說是光心c2在c

1中的座標表示,即 1t2

。所以在通過8點法求出的r,t以後,得到的從攝像機座標2變換到到攝像機座標系1的變換矩陣為 12

h=[r

3×30

t3×1

1]而這裡的外引數矩陣m

2是將世界座標系中的一點p投影到攝像機座標系c

2。所以m2=

21h=

12h−

1,只需去掉h矩陣的最下面一行齊次座標就行了。所以,通過本徵矩陣得到r,t以後,要計算攝像機座標系c

2外引數矩陣的程式如下:

有了外參矩陣,我們就可以得到這些點座標的關係:

由於光心c

i,三維座標點p,以及p

i三點共線,所以向量cip

i、ci

p的叉乘應該為0,上述方程又可以轉化為:

這又是乙個要用最小二乘求解的線性方程方程組 ,和求本徵矩陣一樣,計算矩陣a的svd分解,然後奇異值最小的那個奇異向量就是三維座標p的解。程式如下:

計算出來的p的座標就是p在世界座標系中的座標,這裡就是p在攝像機座標系c

1中的表示。並且注意上篇部落格中強調過的:p1

=k−1

⎛⎝⎜u

1v11

⎞⎠⎟、p

2=k−

1⎛⎝⎜

u2v2

1⎞⎠⎟

上篇部落格中還提到本徵矩陣恢復的r,t組合有四種組合形式,我們需要通過計算點的深度來判斷r,t的哪種組合是正確的,和這篇部落格結合起來,獲得r,t正確組合的流程和**如下: 

在以上計算p三維座標的推導過程中,可以看到和本徵矩陣e是息息相關的,e和我們的尺度緊密相連,所以計算出來的深度和尺度scale也是直接相關的。同時,根據這種三角法(triangulation )計算的深度,其實是不怎麼靠譜的,一般只是拿這個做乙個初始值。並且,我們還可以初略的看看深度估計誤差和什麼有關。 

從兩幅圖中可以看出,兩個射線夾角越小,誤差協方差越大。所以點到光心連線組成的射線向量在orbslam中是有明確記錄的。 

在理順了這系列流程,有了基本的視覺基礎以後,就可以開始向svo,orb_slam,lsd_slam前進了。但是這些演算法的深度估計都是用概率模型來更新深度,不用怕,不變應萬變,在後續的部落格中,我們將一一剖析。最後,再推薦下這本書《mastering opencv with practical computer vision projects》,裡面有一章專門教一步步用opencv寫structure from motion的程式,內容實在是牛的飛,趕緊去看看動手自己寫寫程式吧,祝好。

reference: 

部落格主要參考了 professor william hoff 的課件《structure from motion》

學習理論 PAC理論

1 基本概念 2 pac理論 3 vc維 4 極大似然,最大後驗概率,貝葉斯估計 5 模型評估與評價指標 6 模型診斷調參 概率近似正確 pac 理論是從概率的角度來衡量模型的正確率,給出了pac可辨識,樣本複雜度界,誤差上界。偏差 方差 偏差和方差是機器學習中很重要的兩個概念,在分析模型時對應於欠...

域理論或DOMAIN理論

域理論簡介 域理論是研究通常叫做域 domain 的特定種類偏序集合的數學分支。因此域理論可以被看作是序理論的分支。這個領域主要應用於電腦科學中,特別是針對函式式程式語言,用它來指定指稱語義。域理論以非常一般化的方式形式化了逼近和收斂的直覺概念,並與拓撲學有密切聯絡。在電腦科學中指稱語義的乙個可作為...

分布式理論 BASE理論

根據cap定理,我們在分布式系統最多只能在 一致性 可用性 分割槽容錯性 中三選二。那能不能解決3選2的問題呢?想要解決3選2的問題,首先需要思考分割槽是百分之百出現的嗎?如果不出現分割槽,那麼就能夠同時滿足cap。如果出現了分割槽,可以根據策略進行調整。比如c不必使用那麼強的一致性,可以先將資料存...