三維重建的定位定姿算法
來源:公眾號|3D視覺工坊(系投稿)
作者:李城
「3D視覺工坊」技術(shù)交流群已經(jīng)成立,目前大約有12000人,方向主要涉及3D視覺、CV&深度學(xué)習(xí)、SLAM、三維重建、點(diǎn)云后處理、自動駕駛、CV入門、三維測量、VR/AR、3D人臉識別、醫(yī)療影像、缺陷檢測、行人重識別、目標(biāo)跟蹤、視覺產(chǎn)品落地、視覺競賽、車牌識別、硬件選型、學(xué)術(shù)交流、求職交流、ORB-SLAM系列源碼交流、深度估計等。工坊致力于干貨輸出,不做搬運(yùn)工,為計算機(jī)視覺領(lǐng)域貢獻(xiàn)自己的力量!歡迎大家一起交流成長~
添加小助手微信:CV_LAB,備注學(xué)校/公司+姓名+研究方向即可加入工坊一起學(xué)習(xí)進(jìn)步。
QQ群「3D視覺研習(xí)社」,群號:574432628
3D視覺的核心問題是恢復(fù)場景結(jié)構(gòu)、相機(jī)位姿、和相機(jī)參數(shù),而解決方式有兩種,一種是off-line的sfm(structure from motion),一種on-line的slam(simultaneous localization and mapping)。Slam 與sfm的區(qū)別在于,大多數(shù)slam系統(tǒng)是需要提前標(biāo)定相機(jī),而sfm 則不需要提前標(biāo)定(通常所說的三維重建和slam的區(qū)別,嚴(yán)格意義上應(yīng)該是sfm 和slam的區(qū)別)。

Sfm 可以分為以下幾類:Global SfM、Incremental SfM、Hybrid SfM、Distributed SfM,這里主要講解Global SfM和ncremental SfM(主要集中在global sfm)。
一、Global SfM workflow:

Global sfm 的內(nèi)容包括rotation averaging 和anslation averaging。
Rotation averaging
觀測值:一組相機(jī)pose的相對rotation
目標(biāo):計算相機(jī)的絕對旋轉(zhuǎn)
優(yōu)化:L2范數(shù),采用L2范數(shù)的原因有兩個:1)估計一個好的旋轉(zhuǎn)初始值 2)收斂快
理論基礎(chǔ):



translation averaging
觀測值:同rotation averaging 一樣,觀測值是兩一組pose之間的相對translation
目標(biāo):計算相機(jī)的絕對旋轉(zhuǎn)
優(yōu)化:L1范數(shù),原因是L1 范數(shù)對噪聲魯邦
理論基礎(chǔ):



Translation averaging 在global sfm 中計算困難,原因如下:
1、 兩視圖之間的運(yùn)動不能恢復(fù)尺度(tvec 是從本質(zhì)矩陣中恢復(fù)出來的,但是本質(zhì)矩陣的秩是5,不包含尺度,所以global sfm 是屬于三焦張量問題,即是至少tack 3幀才能進(jìn)行運(yùn)算。同時,global sfm 容易出現(xiàn)退化現(xiàn)象,當(dāng)相機(jī)都處于同一條線上時候,對于無人機(jī)圖像來說,這個時候軌跡就會出現(xiàn)bending map。
解決bending map 的手段有三點(diǎn):
(1)提前對相機(jī)標(biāo)定
(2)以無人機(jī)為例,飛行航線不要在恒定高度上飛行
(3)融合其他傳感器,如gps 位置約束等
退化的case 如下:


以上分別為側(cè)面圖和俯視圖
以上結(jié)果是fusion low-cost gps的效果,但是依舊可以看出有彎曲的現(xiàn)象(不融合的效果特別差)
飛行方式改變,fusion low-cost gps,退化現(xiàn)象消失,如下:


從側(cè)面圖和俯視圖可以看出,當(dāng)飛行方式發(fā)生改變,global sfm 退化現(xiàn)象消失。
2、 global sfm translation averaging第二個的痛點(diǎn)是對噪聲敏感,其不像Incremental sfm,不斷的ransac 和local ba 來減少bad EGs的影響。
如何去改善global sfm 的魯棒性:
1)如果rotation 是已知的(不夠精確),提供global rotation初始值給global sfm pipeline ,利用這些初始值在BA中增加relative rotation constraint
2)如果位置已知,sfm 增加位置約束,即最小化先驗位置和估計的位置之間的gap,位置約束可以替代slam回環(huán)(如果是low cost gps ,位置約束不能保證精度,但可以起到一個control strcture 的作用(AR 常用)—參考vins-fusion思想 ,這個openmvg 中已經(jīng)實現(xiàn)位置約束。
二、Incremental SfM workflow:

增量sfm這里不準(zhǔn)備太多的敘述,需要注意的是初始化選擇像對的基準(zhǔn):
enough matching
big baseline
三、global sfm和incremental sfm 優(yōu)缺點(diǎn)和應(yīng)用場景

應(yīng)用場景:
1.當(dāng)考慮速度不考慮精度的時候,并且當(dāng)圖像overlap 比較大的時候,用global sfm 可以達(dá)到理想效果,因為有更多的數(shù)據(jù)去average(Feature track based translation averaging)
2.如果考慮精度,選擇Incremental sfm ,但是在大場景下,incremental sfm會隨著圖像的增多,速度越來越慢,同時由于誤差的累計,會出現(xiàn)drfit ,這種情況下可以采用Distributed SfM。
參考文獻(xiàn) :
1.Rotation Averaging and Strong Duality[J].Anders Eriksson
2.Global Structure-from-Motion and Its Application[R]
3.Linear Global Translation Estimation with Feature Tracks[J].Zhaopeng Cui
本文僅做學(xué)術(shù)分享,如有侵權(quán),請聯(lián)系刪文。