CCCV2017講習班筆記-基於影象的大規模場景三維重建
多謝 @米牛牛 提供ppt資源,ppt的地址是:
防止PPT掛掉,上傳到了google drive
今天去CCCV2017講習班聽了中科院自動化所模式識別國重實驗室的申抒含老師和崔海楠老師的關於基於凸顯的大規模場景三維重建的講習班,把筆記整理了一下。
主要分為四點展開:
簡介
稀疏重建sfm
稠密重建mvs
資源
1。簡介
首先講了現在cv與類腦。
腦的腹部通道進行物體視覺,現在CV上主要採用基於學習的方法。
腦的背部通道進行空間視覺,現在CV上主要採用基於幾何的方法。
最後上述兩者資訊在前額彙集,綜合處理。
接著講了幾何視覺的核心問題:主要是機器人在三維環境中需要:
對二維影象理解
對三維環境感知
而三維結構和相機的六自由度空間位姿是機器人感知決策動作的基礎資訊。
接著講了影象三維重建的基本流程:
基本流程包括:
多視角影象
影象特徵提取匹配
稀疏重建Sfm
稠密重建MVS
點雲模型化
生成三維模型
然後科普了一下一些基礎知識:
小孔成像:世界中的一個點經過小孔在影象平面上會形成一個倒立縮小的像。這就形成了幾何相似三角形關係。如果我們把成像平面放到前面來,就是正立縮小的像。具體的焦距、影象片面,相機中心什麼就不贅述了。右下角公式表示透過一個 相似性(比例
) 可以建立影象座標系和世界座標系的關係。
然後說到了無窮遠元素。它們用現在的xyz方法沒辦法表示。
於是提出了射影空間,齊次座標是射影空間的座標表達方式:一般的座標在xyz後面加一個1,無窮遠點最後一個為0。
當然齊次非齊次的座標轉換透過除以最後一個
來實現。
這裡有一個等價關係,即當非齊次座標透過除以一個值
之後變成齊次而與一個已經存在的齊次座標相等時為:齊次座標在相差一個尺度時的等價。
那麼小孔成像模型可以表達出來。
為焦距,
為主點:光心與相機平面的交點。
接著介紹了相機座標系和世界座標系之間存在一個歐式座標變換:
中間的矩陣由R轉移矩陣和t平移向量組成。
把兩個式子寫到一起:
可以得到影象點和空間點的關係。透過相機內參數K 、相機旋轉R和相機平移建立關係。
相機的內參數由相機硬體決定,而旋轉平移由相機位姿決定。空間點是場景結構點。
接著說了由單張圖是無法重建場景結構的。
於是引出了多檢視幾何
然後說求解思路:最小化重投影誤差平方和
其中
即空間點X透過之前說的座標變換(左乘P投影到影象平面上)與影象平面上的x可以產生一個L2範數作為誤差。建立一個目標函式為所有點的誤差和。
接著推導就可以寫成
的形式。
這樣求解重投影誤差最小化問題是一個高維非線性最小二乘問題。未知數數量由影象數量乘以旋轉矩陣、平移向量、內參數、畸變加上稀疏點數目乘以世界座標X。
求解可以用捆綁調整的工具做。Bundle Adjustment。它是一種啟發式的阻尼高斯牛頓法。
因為要做初始值求解,接著科普兩檢視幾何:
平面1上面的點p與其相機中心o連線,延長。這個線r在平面2中投影出一條極線。
同理也可以在平面1投影出極線。連線 o t這條線叫基線。這三條線在一個平面上,這個平面叫做極平面。
於是可以推出一個基本矩陣Fundamental matrix。
當內參K1,K2已知,用
表示之後,可以推出本質矩陣Essential matrix。
雙檢視幾何的求解方法:
基本矩陣可以用8點法求解,本質矩陣可以用5點發求解。
透過SVD分解可以從本質矩陣中分解相機的R t。
已知K R T可以三角花求解三維點X
這樣可以得到兩檢視重建的初始值,接著可以用BA進行非線性最佳化。
2。稀疏重建
稀疏重建是透過相機運動恢復場景結構。(Structure-from-Motion)
SfM包括以下步驟:
特徵點檢測與匹配
外極幾何圖構造
攝像機位姿和場景結構估計
捆綁調整(BA)最佳化攝像機位姿和場景
特徵點檢測和匹配:
特徵點檢測用SIFT
特徵點匹配:
L2範數距離最小
比值約束:最近鄰/次近鄰小於一定閾值
外極幾何約束(匹配特徵點在對應的外極線附近)
特徵點匹配的難度:候選影象匹配對非常多。這裡介紹了一篇解決這個問題的論文。
透過聚類、建樹、匹配。(K-means層級樹)
可以把複雜度降到線性。
這裡介紹了每對影象之間特徵點匹配用一個雜湊表方法最佳化的方法。
但是有些地方還存在誤匹配問題。極端一點的是如圖所示的天壇正反面幾乎完全一樣。
這裡講了一個用Loop約束來去除錯誤外極幾何關係的方法。
還有一些其他解決方法:
接著講本質矩陣分解:三角化選擇內點最多的一組配置作為外極幾何關係。
外極幾何圖構建
攝像機位姿和場景結構
包括三種方法:
增量式(Incremental)
全域性式(Global)
混合式(Hybrid)
增量式要先選擇兩個圖作為初始,一般要求:1。基線足夠寬 2。匹配點足夠多 當然這兩個是矛盾的兩個項。透過最小化右邊式子來求取。
然後開始增加一張圖:
這就變成了P3P問題:
三角化:
捆綁調整:
增量式示意圖:
增量式的優缺點:
全域性式:估計所有攝像機的旋轉矩陣和位置並三角化初始場景點
因為經過ij的旋轉矩陣要等於Rj和Ri串聯之後的結果,所以要最小化兩者差的範數作為目標函式。而兩個點座標也應該滿足一個關係。
過濾外極幾何邊:Rij與Rj和Ri乘形成一個範數,要大於一個值
接著推導:目標是讓第一項越大越好,讓第二項越小越好。
過濾外極幾何邊:
全域性式的優缺點:
相關文獻:
比較全域性和增量:
混合式:全域性估計旋轉矩陣,增量估計攝像機位置,三角化初始場景點。這是CVPR2017的一個工作。
這個方法提出基於團體的全域性R求取:先根據相機外極幾何圖匹配稠密情況把這麼多攝像機分成幾個團體。
發現這樣做有效:
然後用增量式方法求攝像機位置:
求取方法已知旋轉矩陣,用兩點法求取攝像機位置。有幾個優勢:
RANSAC最小配置減少,更大機率隨機到正確的三維點與二維點對應,這樣能提高精度
在R已知的情況下,一定程度上可以過濾一部分錯誤的匹配特徵點,這樣能提高魯棒性
每次增量中,可以同時計算得到更多攝像機位置,較少BA次數,提高重建效率
混合式優缺:
綜合比較:
稀疏重建總結
3。稠密匹配
稠密匹配是MVS。基本思路是
兩檢視的一致性。
一致性度量主要包括三個:
SSD(Sum of Squared Differences):平常差的和
SAD(Sum of Absolute Differences):絕對值差的和
NCC(Normalized Cross Correlation):歸一化的交叉關係
多檢視影象一致性需要考慮相機的可視性問題。
但是:
相機可視性需要場景結構、場景結構需要相機可視性
MVS演算法主要分為三種:
基於體素的方法:Voxel based MVS
基於點雲擴散的方法:Feature point growing based MVS
基於深度圖融合的方法:Depth-map merging based MVS
基於體素的方法
體素的表達,並且說明其MVS等價於一個3D空間Voxel的標記問題。
最佳化方法:用馬爾科夫隨機場最佳化。
離散空間的Labeling是典型的MRF最佳化問題。其中的兩項分別是一致性項和氣球膨脹。
一致性項表達兩點一致。氣球膨脹表達的是強制傾向於把點分成內點。因為如果不加氣球膨脹,一致性項會把點都分成外點,所以要加一個反向的力量。
兩檢視一致性計算:
其中如何魯棒投票尋找區域性極值集中的點很重要。
MRF最佳化問題求解:Graph-cuts
重建結果:
體素問題是佔記憶體,即使很小的體素也要很大記憶體。於是提出以下方法,主要思路是自適應多解析度網格,在物體表面高解析度、其他區域低解析度。
基於體素方法MVS的並行分佈Graph-cuts
基於體素方法的優缺點:
基於特徵點擴散的MVS
方法顧名思義。
講了3D點的Patch形式表達。patch在影象上有投影。
步驟:
生成初始點雲:檢測Harris與DoG,其中Harris偏向檢測外側的角點,而DoG偏向於檢測內部紋理豐富的點
點雲擴散:3D點投影到影象,並向投影點周圍區域擴散
點雲過濾:去除深度值不一致且一致性較低的點,意思是如果擴散的點雲在其他圖特徵點的點雲前面了,透過比較各自的一致性來剔除;如果擴散點雲跑到後邊去了,也比較一致性。這樣就能去除深度值不一致且一致性較低的點了。
結果:
優缺點:
基於深度圖融合的MVS
人的左右眼的立體視覺和深度圖。
轉到CV
基於深度圖融合的MVS方法步驟:
為每一幅圖選擇領域影象構成立體影象組:
關鍵如何選擇鄰域影象組
計算每一幅影象的深度圖:
關鍵如何計算深度圖
深度圖融合
抽取物體表面
每一幅圖中的深度圖計算:
聚合:對比了SAD聚合和Adaptive weight
對比:
這裡講了Oriented plane方法,估計空間平面方向
空間平面方向估計PathMatch,相機座標系下空間面片表達為d深度的一個自由度,n法向量的兩個自由度。
接著講了兩檢視PathMatch Stereo,先隨機申城畫素深度和法向量,然後傳播。
主要用了隨機的思想,檢測領域點的深度和法向量,檢測加了擾動之後的點,檢測立體影象對對應點是否更好,檢測前後幀同一位置是否更好。反覆幾次。
這種方法是基於大數定律的。
多檢視PathMatch MVS:
多檢視PathMatch中領域影象組的選擇:視線夾角、物距、覆蓋度、分散度等。主要透過稀疏點雲計算。領域影象組選擇是一個NP-hard問題。
逐畫素點領域選擇:
透過EM演算法來做逐畫素點選擇領域影象組(最大化後驗機率)
基於深度圖融合的MVS優缺點:
稠密重建總結
4。資源
主要是演算法、資料集和應用
兩位老師課題組的demo。
https://www。zhihu。com/video/901584371436371968
https://www。zhihu。com/video/901584554370924544
https://www。zhihu。com/video/901584592308420608
https://www。zhihu。com/video/901584649489371136
https://www。zhihu。com/video/901584679596089344