三维重建 几何方法 深度学习_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...
歡迎關注微信公眾號“3D視覺學習筆記”,分享博士期間3D視覺學習收獲
MVSNet:香港科技大學的權龍教授團隊的MVSNet(2018年ECCV)開啟了用深度做多視圖三維重建的先河。2019年,2020年又有多篇改進:RMVSNet(CVPR2019),PointMVSNet(ICCV2019),P-MVSNet(ICCV2019),MVSCRF(ICCV2019),Cascade(CVPR2020),CVP-MVSNet(CVPR2020),Fast-MVSNet(CVPR2020),UCSNet(CVPR2020),CIDER(AAAI2020),PVAMVSNet(ECCV2020),D2HC-RMVSNet(ECCV2020),Vis-MVSNet(BMVC2020)。
一 MVSNet:目標是預測圖片上每個像素的深度信息
MVSNet: Depth Inference for Unstructured Multi-view Stereo
MVSNet本質是借鑒基于兩張圖片cost volume的雙目立體匹配的深度估計方法,擴展到多張圖片的深度估計,而基于cost volume的雙目立體匹配已經較為成熟,所以MVSNet本質上也是借鑒一個較為成熟的領域,然后提出基于可微分的單應性變換的cost volume用于多視圖深度估計。
論文實現了權龍教授多年的深度三維重建想法。
過程:
(1)輸入一張reference image(為主) 和幾張source images(輔助);
(2)分別用網絡提取出下采樣四分之一的32通道的特征圖;
(3)采用立體匹配(即雙目深度估計)里提出的cost volume的概念,將幾張source images的特征利用單應性變換( homography warping)轉換到reference image,在轉換的過程中,類似極線搜索,引入了深度信息。構建cost volume可以說是MVSNet的關鍵。
具體costvolume上一個點是所有圖片在這個點和深度值上特征的方差,方差越小,說明在該深度上置信度越高。
(4)利用3D卷積操作cost volume,先輸出每個深度的概率,然后求深度的加權平均得到預測的深度信息,用L1或smoothL1回歸深度信息,是一個回歸模型。
(5)利用多張圖片之間的重建約束(photometric and geometric consistencies)來選擇預測正確的深度信息,重建成三維點云。
該論文最重要的單應性變換( homography warping)的公式寫錯了,誤導了好幾篇后續改進的頂會論文,不過神奇地是提供的代碼沒有錯:
該公式錯了!!!MVSNet框圖二 MVSNet的后續改進論文
MVSNet開啟了深度學習做三維重建的先河,2019/2020又出現了多篇對其的改進,改進思路主要是把回歸網絡改成cascade,即改成層級的,先預測下采樣四分之一的,再利用得到的結果預測二分之一,最后輸出原圖片大小的深度信息,或減小深度范圍,或減小cost volume的范圍。
深度MVS系列論文目前dtu數據集上精度已經很高了,再提高也比較難,另外由于dtu數據集的ground truth本身就是不完整的,所以和這個ground truth比的話,也有問題,結果高并不表明效果好。
還有就是tanks榜單也有問題,評價系統存在問題導致需要一些技巧才能提高排名,需要平衡點云的完整度和正確性即recall和precision,不能太稀疏,但是太稠密了錯的又會多。
https://www.tanksandtemples.org/leaderboard/?www.tanksandtemples.orgMVSNet后續改進論文介紹:
1.RMVSNet(CVPR2019)
Recurrent MVSNet for High-resolution Multi-view Stereo Depth Inference
權龍教授團隊Yao Yao對自己的MVSNet的后續改進,主要是將3D 卷積換成了一個GRU時序網絡來降低顯存消耗。
代碼是用tensorflow寫的,和MVSNet代碼合到一起了,github鏈接:
https://github.com/YoYo000/MVSNet?github.com2. MVSNet(pytorch版本)
這里需要特別強調一下,提出雙目立體匹配GwcNet的Guo Xiaoyang 同學把原來MVSNet的tensorflow代碼改成了pytorch框架,這為幾乎后續所有改進MVSNet的論文提供了極大的幫助,后續的論文幾乎都是在Xiaoyang Guo同學的MVSNet_pytorch上改的。而且Guo Xiaoyang同學的MVSNet_pytorch已經比原來的MVSNet的效果好了不少,而后續的改進都是對比MVSNet論文里的結果,所以真正的提升其實并不大,后續改進應該對比Guo Xiaoyang同學的MVSNet_pytorch。
MVSNet論文里的結果和Guo Xiaoyang同學的MVSNet_pytorch在DTU數據集上的對比結果,可以看出Guo Xiaoyang已經提升了不少MVSNet的效果。
Guo Xiaoyang同學的MVSNet_pytorch 鏈接:
https://github.com/xy-guo/MVSNet_pytorch?github.com3 PointMVSNet(ICCV2019)
Point-Based Multi-View Stereo Network ,清華大學
改的MVSNet_pytorch的代碼,PointMVSNet github鏈接:https://github.com/callmeray/PointMVSNet
4 P-MVSNet(ICCV2019)
P-MVSNet: Learning Patch-wise Matching Confifidence Aggregation for Multi-View Stereo 華中科技大學
P-MVSNet對MVSNet的改進主要在于采用傳統三維重建算法中Patch-wise。還沒有找到其代碼。
5 MVSCRF(ICCV2019)
MVSCRF: Learning Multi-view Stereo with Conditional Random Fields
改進點:接入了一個CRF模塊
清華大學。沒有找到其代碼。
6 cascade MVSNet(CVPR2020)
Cascade Cost Volume for High-Resolution Multi-View Stereo and Stereo Matching
阿里,GitHub鏈接:https://github.com/alibaba/cascade-stereo
改的MVSNet_pytorch的代碼,主要是把MVSNet的模型改成了層級的,先預測下采樣四分之一的深度,然后用來縮小下采樣二分之一的深度,再用其縮小原始圖片大小的深度,這樣層級的方式,可以采用大的深度間隔和少的深度區間,從而可以一次訓練更多數據。
另外由于雙目立體匹配和MVSNet的MVS都是用了cost volume,雙目立體匹配是用兩張圖片估計’深度‘,MVS的MVSNet是用三張及以上圖片預測深度,所以其實模型差不多,都是相同的,cascade MVSNet也把改進思想用到了雙目立體匹配上,一篇論文做了兩份工作。
7 CVP-MVSNet(CVPR2020)
Cost Volume Pyramid Based Depth Inference for Multi-View Stereo
澳大利亞國立和英偉達,github鏈接:https://github.com/JiayuYANG/CVP-MVSNet
也是改的MVSNet_pytorch的代碼,和上一個cascade MVSNet比較類似,也是先預測出深度信息然后用來縮小更大的圖片的深度,CVP-MVSNet相比cascade MVSNet也縮小了cost volume的范圍。
8 Fast-MVSNet(CVPR2020)
Fast-MVSNet: Sparse-to-Dense Multi-View Stereo With Learned Propagation
and Gauss-Newton Refifinement,上海科技大學
也是改的MVSNet_pytorch的代碼,github鏈接:https://github.com/svip-lab/FastMVSNet
Fast-MVSNet采用稀疏的cost volume以及Gauss-Newton layer,目的是提高MVSNet的速度。
9 CIDER(AAAI 2020)
Learning Inverse Depth Regression for Multi-View Stereo with Correlation Cost Volume , 華科的
GitHub鏈接:https://github.com/GhiXu/CIDER
CIDER主要采用采用group的方式提出了一個小的cost volume
10 UCSNet(CVPR2020)
Deep Stereo using Adaptive Thin Volume Representation with Uncertainty Awareness
github鏈接:
https://github.com/touristCheng/UCSNet?github.comUCSNet和cascade/CVPMVSnet差不過,只是depth interval可以自動調整,最大層度的進行網絡層級,通過下采樣四分之一的深度結果來縮小cost volume和深度的范圍,從而讓模型盡可能小。
11 PVA-MVSNet(ECCV2020)
Pyramid Multi-view Stereo Net with Self-adaptive View Aggregation
北大,GitHub鏈接:https://github.com/yhw-yhw/PVAMVSNet
主要采用attention機制來自適應學習一些權重,比如不同view的權重。
12 D2HC-RMVSNet(ECCV2020 Spotlight)
Dense Hybrid Recurrent Multi-view Stereo Net with Dynamic Consistency Checking
github鏈接(還未提供):
yhw-yhw/D2HC-RMVSNet?github.com還沒細看,大概和RMVSNet差不多,只不過換成用LSTM來處理cost volume,同時提出一種Dynamic Consistency Checking來后融合。
可能因為在Tanks榜單上排名較高(目前滑落到第二,論文提交時第一),所以拿了ECCV2020的Spotlight。
13 Visibility-aware Multi-view Stereo Network(BMVC2020 oral)
github:https://github.com/jzhangbs/Vis-MVSNet
香港科技大學的權龍教授團隊的最新的一篇論文,發表在BMVC2020上,主要是考慮了別的基于深度學習的論文都沒考慮的一個問題:多視圖構建cost volume的可見性問題。代碼融合多階段和group Cost Volume等技巧。
目前在tanks榜單的intermediate上排名第一。
總結:
香港科技大學的權龍教授團隊的Yao Yao把雙目立體匹配的cost volume,引入了基于深度學習的三維重建領域,提出了MVSNet,并整理了DTU數據集,開創了通過深度模型預測深度進行三維重建的一個新領域。
后續提出雙目立體匹配GwcNet的Guo Xiaoyang同學把原來MVSNet的tensorflow代碼改成了pytorch框架,極大地增加了代碼的可讀性,方便了后續一系列對MVSNet的改進。也提高了改進的基點。
得特別感謝香港科技大學的權龍教授團隊和Guo Xiaoyang同學。
由于tanks and temples榜單評價的是點云,阻礙tanks and temples榜單上排名的可能并不是深度值預測的不好,而是其他的問題。三維重建涉及的東西很多。榜單上排名高的模型可能是因為在模型以外的地方做了東西。。
歡迎關注微信公眾號“3D視覺學習筆記”,分享博士期間3D視覺學習收獲歡迎關注微信公眾號“3D視覺學習筆記”,分享博士期間3D視覺學習收獲
總結
以上是生活随笔為你收集整理的三维重建 几何方法 深度学习_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python里面的循环语句
- 下一篇: mxnet深度学习(Symbol)