三維視覺與幾何

運動回復結構

運動回復結構(structure from motion,SfM)拿一堆無序的場景照片——比方說幾百張遊客在不同時間、用不同相機拍下的大教堂快照——同時重建兩樣東西:每台相機在哪裡、朝向如何(運動),以及標記出場景顯著特徵的一團稀疏三維點(結構)。這個名字捕捉了其二元性:相機移動時,特徵在影像間滑動的方式同時編碼了相機的路徑與點的位置,而 SfM 把兩者從彼此中解開。

這條流程從特徵開始。像 SIFT 這樣的偵測器(或學習式描述子)在每張影像中找出可重複偵測的關鍵點,並描述其局部外觀,使同一個世界點能跨照片被辨認,即便尺度、旋轉、視點與光照有所改變。這些暫定匹配接著被幾何驗證:對每個影像對,以穩健估計(RANSAC 擬合基礎或本質矩陣)只保留與單一剛性雙視角幾何相容的匹配,丟棄眾多偽匹配。存活的匹配被串成軌跡(track)——一條軌跡就是一個跨多張影像被看到的實體三維點。

重建接著以增量式或全域式進行。增量式 SfM,由廣為使用的 COLMAP 所體現,從精選的一對影像出發,三角化出初始點,然後反覆地多加一台相機——用已重建的點解出它的位姿(透視 n 點問題,PnP)、三角化新點,並定期執行光束法平差以防誤差累積。全域式 SfM 則一次同時估計所有相機的旋轉、再估平移,較快且避免漂移,但對壞匹配更敏感。無論哪種,準確度的引擎都是光束法平差,也就是對所有相機與點的聯合非線性精煉。

誠實的限制在於尺度:僅憑影像,整個重建只被決定到一個未知的相似變換——你完美回復了形狀與相對的相機軌跡,卻無法得知在真實世界中的絕對大小、位置或朝向。要固定尺度就加入外部資訊:場景中一段已知距離、GPS 標籤,或與慣性測量單元的感測融合。SfM 產生稀疏模型;把它變成稠密幾何是多視角立體的工作,後者會用上 SfM 提供的相機位姿。

SfM 在它無法約束的場景上會悄悄失敗:光滑的白牆(沒有特徵)、鏡廳或湖面(會錯誤移動的反光),或在素色背景前拍的轉盤物體(對稱造成歧義)。在信任模型前,務必檢查重投影誤差與內點軌跡的數量。

又稱
SfM從運動推算結構