Fast-MVSNet解读
Fast-MVSNet
- 一、概覽
- 二、稀疏高分辨率深度圖預測
- 三、深度圖擴展
- 四、Gauss-Newton 精細化
- 五、損失函數(shù)
- 六、實現(xiàn)細節(jié)
- 1.train
- 2.test
- 七、網絡結構
- 1.稀疏高分辨率深度圖預測
- 2.深度圖擴展
- 3.Gauss-Newton精細化
- 八、深度圖融合
- 九、消融實驗
一、概覽
網絡分為3部分:稀疏高分辨率深度圖預測網絡、深度圖擴展網絡、高斯-牛頓精細化網絡
二、稀疏高分辨率深度圖預測
深度圖方法的對比:
a)高分辨率深度圖:內存成本很高
b)低分辨率深度圖:沒有細節(jié)
c)稀疏的高分辨率深度圖:內存和計算成本很低。類似空洞卷積,它有可能納入更大的空間上下文信息進行正則化。
實現(xiàn)方法與MVSNet獲取初始深度圖大致相同,減小了代價體的尺寸和深度采樣數(shù):
1.使用8層2D CNN提取F=32通道的圖像特征
2.代價體為1/8Wx1/8HxDxF
3.深度采樣數(shù)為48或96
三、深度圖擴展
目標:稀疏高分辨率深度圖擴展為密集深度圖。
1)最簡單的是采用最近鄰,但是它沒有考慮原始圖像的信息,因此可能在邊界的表現(xiàn)不太好。
2)聯(lián)合雙邊上采樣:它使用原始高分辨率圖像的信息作為指導。
f是空間濾波器核,g是范圍濾波器核,N(P )為p周圍kxk的區(qū)域,Zp是歸一化項。對于不同的場景,這兩個濾波器核可能不同,需要手動調整。因此,用權重W代替他們,并用簡單網絡學習權值。數(shù)學上,使用以下形式,
其中wp,q是CNN的輸出,并以數(shù)據(jù)驅動的方式學習。雖然沒有顯式地計算空間信息,但它確實是由網絡隱式編碼的。此外,當預測不同位置p的不同權重時,可以看作是標準雙邊上采樣器的一般化,它對每個位置p應用一個固定的核。
概括來說,最終使用的方法是:從參考圖像中提取特征圖,在特征圖的通道中存放卷積核參數(shù),因此最終的通道數(shù)kxk。然后用卷積網絡提取出的卷積核對稀疏高分辨率深度圖進行卷積,得到擴展的深度圖。
實現(xiàn)方法:
1.Ds使用最臨近算法轉化為稠密深度圖D(填補空洞),將每個點kxk鄰域的所有點依次寫入通道(形成k2的通道,存儲其領域點,即im2col,卷積的一種計算方式)
2.同時參考圖像提取特征,輸出通道數(shù)為kxk,得到D上每個位置的卷積核,再reshape為K2xHW二維,方便計算
3.哈達瑪積(Hadamard product):特征圖D和W對應位置相乘
4.sum相加(實際是卷積運算拆成了兩步,先乘積,再相加,將k2變?yōu)?,再reshape為HxW,得到密集深度圖
四、Gauss-Newton 精細化
原理理解:此時再次從參考圖像和多張原圖像提取出了多張?zhí)卣鲌D,使用擴展深度圖預測出的深度D(P ),將參考圖像上的點p投影到每張原圖像上pi’處,計算p與p’處特征圖取值的差異(若深度估計的準確,那么p和投影p’處的特征應該相似,差值小)。
目標:誤差函數(shù)E(p)最小化
1.D(p )表示參考圖像p點的深度估計(擴展深度圖的取值)
2.Fi和F0分別為原圖像和參考圖像的特征圖(原文為the deep representation,感覺不準確)
3.pi’是p在原圖像Ii的投影點(原文為重投影點reprojected point)
4.Fi(p)為特征圖Fi在p處的特征
用高斯牛頓法最小化E(p ):
1.計算殘差ri(p )(觀察值與估計值(擬合值)之間的差)
2.對每個殘差,計算他們對D(p)的一階導數(shù)
3.最后,可以得到當前深度的增量δ,其中J是雅可比矩陣{Ji(p)}的疊加,r是殘差向量{ri(p)}(i=1,N)的疊加。
4. 相加得到精細化后的深度圖
優(yōu)點:可差分、作為網絡的一層不需要可學習參數(shù)、收斂速度很快,實驗發(fā)現(xiàn)它只需更新一步就可以快速收斂。
五、損失函數(shù)
與MVSnet相同
λ =1.0
六、實現(xiàn)細節(jié)
1.train
1.使用MVSnet生成的訓練數(shù)據(jù)
2.輸入圖像的分辨率設置為640×512、視圖數(shù)N=3
3.使用與MVSNet相同的視圖選擇策略(計算得分,選擇得分高的前幾幅作為原圖像)
4.深度平面的數(shù)量D=48,深度假設[425,921]mm均勻采樣。
5.優(yōu)化器使用RMSProp Optimizer,初始學習率為0.0005,每兩個epoch學習率降低0.9。
6.在4 NVIDIA GTX 2080Ti GPU上,批處理大小設置為16。
7.首先對稀疏深度圖預測模塊和擴展模塊進行了4個epoch的預訓練,然后進行12個epoch整個模型的端到端訓練。
2.test
1.在擴展深度圖后,得到了一個1xHxW的密集深度圖,為了與Point-MVSNet公平對比,在高斯-牛頓提純前用最鄰近算法將深度圖上采樣到2xHxW
2.使用N = 5張分辨率為1280×960的圖像作為輸入,并設置深度平面數(shù)D =96。首先為每個參考圖像預測深度圖,然后使用MVSnet提供的后處理將預先指定的深度圖融合為點云。除非另有說明,否則使用與Point-MVSNet相同的深度圖融合參數(shù)。
七、網絡結構
1.稀疏高分辨率深度圖預測
網絡與MVSNet類似,在空間域中構建了一個稀疏的代價體,并且使用了較少的深度平面(例如96)。因此,可以以更低的成本獲得稀疏的高分辨率深度圖。
2.深度圖擴展
使用一個10層的卷積網絡來預測權重W。
3.Gauss-Newton精細化
對于Gauss-Newton精細化,使用與深度圖擴展類似的網絡結構作為擴展模塊來提取輸入圖像{Ii}(i=0,N)的深層特征表示。不同的是,表中的Conv_4和Conv_7首先被插值到相同的大小,然后拼接。
八、深度圖融合
融合包括三個步驟:
1)光度過濾
首先將稀疏高分辨率深度圖的預測概率(概率圖獲取方式應該與MVSNet相同)插值為高分辨率概率圖,然后過濾出概率低于閾值的點,過濾閾值設置為0.5。
2)幾何一致性
計算每個深度圖的差異,并過濾出差異大于閾值的點η. 具體地說,參考圖像深度圖D中的點p投影到相鄰深度圖D?中的p’, 將差異定義為
其中f是參考圖像的焦距,baseline是兩個圖像的基線。閾值η設置為0.12像素。
3)深度融合
要求每個點在V=3視圖中可見,并取所有重投影深度的平均值。
在文中,為了公平比較,使用了與Point-MVSNet中相同的參數(shù)進行深度圖融合。發(fā)現(xiàn)融合參數(shù)η和V對重建結果有顯著影響。從定量比較結果中,可以看出準確性和完整性之間的權衡。
a)增加η, 重建點精度降低,但更完整。
b)V值增加,重建結果變得更加精確,但不完整。
由于融合對最終重建結果有重大影響,因此將可學習的融合模型集成到整個pipline中是未來的一個方向。
九、消融實驗
對高斯牛頓精細化進行消融實驗,并進行了更多的迭代。
如表所示,高斯-牛頓精化能顯著提高重建質量。然而,采用高斯-牛頓法迭代次數(shù)多,性能改善甚微。因此,在Gauss-Newton精細化中,只使用一次迭代。
總結
以上是生活随笔為你收集整理的Fast-MVSNet解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux管道命令的简单操作
- 下一篇: B端按钮设计指南