在知道了相機的軌跡以後,使用三角法就能計算某個點的深度,在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不必使用那麼強的一致性,可以先將資料存...