
導讀:商湯研究院和浙江大學CAD&CG國家重點實驗室合作研發了一個手機端實時單目三維重建系統Mobile3DRecon。與現有的基于RGBD的在線三維重建或離線生成表面網格的系統不同,該系統結合前端位姿跟蹤結果,允許用戶使用單目攝像頭在線重建場景表面網格。
在深度估計方面,提出結合多視圖半全局匹配算法和深度神經網絡優化后處理過程魯棒地估計場景深度。在表面網格生成過程,本文提出的在線網格生成算法可以實時增量地融合關鍵幀深度到稠密網格中,從而重建場景表面。通過定性和定量的實驗驗證,所研制的單目三維重建系統能夠正確處理虛擬物體與真實場景之間的遮擋和碰撞,在手機端實現逼真的AR效果和交互。
論文名稱: Mobile3DRecon: Real-time Monocular 3D Reconstruction on a Mobile Phone
論文地址:
Mobile3DRecon: Real-time Monocular 3D Reconstruction on a Mobile Phone?ieeexplore.ieee.orgOral slides:
https://www.youtube.com/watch?v=W95Vs4REUGM?www.youtube.com問題和挑戰
遮擋和碰撞檢測一直是AR行業面對的一大難題,其技術難點在于需要實時獲取場景的三維表面信息,從而使虛擬物體和真實環境能融為一體。
當前已有的實時場景重建系統通常需要RGB-D或Lidar攝像頭的支持(如KinectFusion, InfiniTAM, ElasticFusion, BundleFusion等),然而受硬件的限制目前市面上大部分的手機無法使用該功能;
另一類重建系統雖然可以根據單目RGB攝像頭計算深度,從而重建場景表面(如MonoFusion, MobileFusion, CHISEL等),但是需要較大的計算時間和內存開銷,大多僅能在PC或高端的移動平臺上實時運行。
針對上述問題,本文提出了一個手機端實時單目三維重建系統Mobile3Drecon,該工作的主要貢獻在于:
- 提出一種基于多視圖關鍵幀的深度估計方法,能夠在手機端高效獲取較高精度的場景深度,同時能夠一定程度上容忍SLAM位姿偏差和弱紋理場景的影響;
- 提出一種快速有效的增量式網格生成方法,該方法可以融合關鍵幀深度從而實時增量地重建場景表面網格,同時支持場景動態物體的移除,在中端的手機平臺上實時運行;
- 搭建了一套完整的基于單目RGB的實時三維重建系統,該系統在中端手機平臺上可以達到125ms每關鍵幀,獲取的表面網格精度可以達到厘米級,基于該系統可以在手機端實現逼真的AR效果和交互,如圖1所示。

方法介紹
本系統框架如圖2所示。移動設備獲取的RGB圖像和IMU信息經過前端視覺慣性SLAM系統后可以實時得到關鍵幀的6自由度位姿,該位姿經過后端全局優化后進入深度估計模塊,對于新增的每個關鍵幀,首先基于多視圖半全局匹配方法計算關鍵幀初始深度圖,然后采用置信度和深度神經網絡優化深度圖噪聲,優化后的深度圖輸入增量式網格生成模塊后實時構建場景表面稠密網格。
通過實時6自由度位姿估計和場景表面網格構建,Mobile3DRecon系統支持用戶在手機端實現真實的AR遮擋和碰撞效果。下面分別介紹系統的單目深度估計和增量式網格構建兩個主要功能模塊。

1. 單目深度估計
動機:
傳統基于多視圖立體匹配的深度估計算法通常需要較強的GPU算力來滿足實時計算的要求,而輕量的算法又難以獲得精確完整的深度圖結果。盡管一些基于深度神經網絡的深度估計算法在公開數據集上表現出了較好的效果,然而在實際應用過程中受場景弱紋理和SLAM位姿偏差的影響較大,手機平臺算力的影響也使其難以在移動端部署。
鑒于此,本文期望結合輕量化的深度神經網絡和快速的多視圖半全局匹配算法實現場景深度計算,考慮到手機平臺算力、SLAM位姿偏差和弱紋理場景的影響,本文希望多視圖半全局匹配方法在保證深度估計泛化能力的同時,能夠融合多幀信息提升對位姿偏差和弱紋理區域的容忍度,通過結合深度神經網絡能夠有效改善位姿偏差和弱紋理產生的深度噪聲,從而得到精確、完整的深度圖結果。
方法:
本文提出的單目深度估計算法主要包含三個部分:
- 多視圖立體匹配算法,用于計算初始深度圖
- 置信度去噪算法,用于去除初始深度圖噪聲
- 基于深度神經網絡的深度圖優化算法,用于改善深度圖質量
具體方式如下:
① 步驟:多視圖深度估計


② 步驟:置信度噪聲剔除


③ 步驟:基于深度神經網絡的深度圖優化
去除深度圖噪聲后,本文使用一個輕量的深度神經網絡優化深度圖,網絡結構如圖4所示,包含了多任務網絡和深度優化網絡兩個部分。


網絡第二個階段的輸入為原始深度圖和一階段的深度圖噪聲預測結果,使用U-Net殘差深度優化網絡優化原始輸入的深度,得到更高質量的深度輸出。本文使用Demon數據集[2]訓練上述網絡,然后使用手機采集的帶TOF深度的3700組序列影像微調該網絡。圖5所示為帶有一定位姿偏差的圖像,第二列為置信度剔除噪聲后的深度圖,最后一列為經過深度優化網絡后的深度圖結果,可以看出深度圖僅存在少量的空間噪聲。

2. 增量式網格生成
動機:
在線網格重建的難點在于如何在保證較好重建效果和重建規模的前提下,能夠實時在線地重建場景三維表面信息。傳統基于TSDF融合的方法雖然能夠在線融合深度圖,TSDF的更新通常需要在GPU平臺上才能達到實時,受平臺算力的影響該過程很難在一些中低端的手機上實時應用。
此外,現有的表面網格生成的算法(如Marching Cubes[4])是離線的,難以實現在線增量式表面網格生成和更新。鑒于此,本文希望能夠實現一種適合手機端AR應用的實時增量式在線網格生成算法,通過構建一種快速的基于空間索引的voxel hash機制,并對傳統的Marching Cubes算法進行改進,使其能夠在線增量地擴展場景網格表面,從而重建場景三維信息。同時,考慮到空間中的動態物體可能會對AR遮擋和碰撞效果產生影響,因此本文希望增量式網格生成算法能夠快速有效地剔除空間動態物體。
方法:
本文的增量式網格生成方法主要包含三個部分:
- 可擴展的哈希函數,用于建立空間體素的索引機制
- 體素融合與動態物體移除,用于將計算的深度圖融合到體素中,同時移除不在當前場景的動態物體
- 增量式網格更新用于快速提取體素塊的網格面片,從而重建場景三維信息
具體方式如下:
① 可擴展的哈希函數


② 體素的融合與動態物體移除
對于輸入的每個關鍵幀深度圖,通過將深度值投影到三維的體素塊中,從而判斷是否需要分配新的體素塊,如果需要則將體素塊的TSDF和權值信息插入到索引表中,否則按照下式(7)更新當前體素塊體素的TSDF值和權重。

為了處理動態物體產生的網格,本文將可見的體素投影到當前幀深度上進行可視性檢查,如果發現與當前深度存在差異,則更改體素的TSDF值。通過這種方式可以使移出場景的動態物體產生的網格被逐漸消除。如圖7展示了增量式網格構建過程中動態物體移除的過程。

③ 增量式網格更新


實驗結果
本文使用OPPO R17 Pro手機采集帶有真實場景深度的5組數據,用于從定性和定量兩個方面對比Mobile3DRecon與一些SOTA方法的效果, 其中ground truth為OPPO R17 Pro獲取的與單目相機對齊的TOF深度。圖9和圖10所示為室外樓梯場景分別使用REMODE、DPSNet、MVDepthNet以及本文方法生成深度圖和mesh網格,可以看出本文方法生成的深度圖細節更加明顯,在此基礎上生成的網格質量優于其它幾種方法。


為了定量評價本文方法和REMODE、DPSNet、MVDepthNet生成的深度圖和網格的精度,本文對比了5個場景下幾種方法的實驗結果,如表1所示。
分別統計了幾種方法的深度和網格與真值深度(ToF)和真值網格在公共有效區域的RMSE和MAE精度,可以看出Mobile3DRecon方法不論是在深度圖還是網格質量上都要優于其它的一些SOTA方法,深度圖和網格精度可以達到厘米級。其余4個場景重建的網格結果如圖11所示。
表1:Mobile3DRecon系統重建五個由OPPO R17 Pro采集的實驗場景的精度評估,每個場景給出了本文的方法和其他方法的深度和網格的RMSE和MAE誤差,以ToF深度作為真值。


本文在OPPO R17 Pro和小米8兩個中端手機平臺上測試了Mobile3DRecon各個過程的耗時,如下表所示。Mobile3DRecon在小米8(高通驍龍845)平臺上基本可以達到OPPO R17 Pro(高通驍龍710)兩倍的運行速度,然而即使是在性能較弱的OPPO R17 Pro手機上,本系統基于關鍵幀深度估計和增量式網格構建的過程仍然可以滿足每秒5關鍵幀的運行幀率,從而達到實時的效果。
表2:Mobile3DRecon系統每個關鍵幀各步驟的詳細耗時情況,分別在OPPO R17 Pro和小米8兩個手機平臺上統計。

圖12展示了Mobile3DRecon系統集成到移動端Unity的運行效果,可以看出在OPPO R17 Pro和小米8手機上該系統能夠通過精確重建場景表面網格使得虛擬物體的放置不局限于平面結構,同時室內樓梯和打印機場景的示例也展示了虛擬球與真實場景產生的正確遮擋和碰撞交互效果。

結語
本文提出了一個實時的單目三維重建系統,該系統允許用戶在一些中端的手機平臺上使用單目攝像頭提供在線網格生成功能。與現有的基于點云或TSDF的在線重建方法不同,Mobile3DRecon系統可以根據單目攝像頭圖像魯棒地估計場景深度,同時將估計的關鍵幀深度實時增量地融合到稠密網格表面。
本文在兩個中端手機平臺上驗證了Mobile3DRecon系統的重建結果,通過定量和定性的實驗驗證了所提出的實時單目三維重建系統的有效性。
Mobile3DRecon系統能夠正確處理虛擬物體與真實場景之間的遮擋和碰撞,從而達到逼真的AR效果。
References
[1] A. Drory, C, et al. Semi-global matching: A principled derivation in terms of message passing. In German Conference on Pattern Recognition, pp. 43–53. Springer, 2014.
[2] Ummenhofer B, Zhou H, Uhrig J, et al. Demon: Depth and Motion Network for Learning Monocular Stereo. In CVPR, 2017.
[3] Matthias Nie?ner, Michael Zollh?fer, Izadi S , et al. Real-time 3D Reconstruction at Scale using Voxel Hashing. ACM Transactions on Graphics (TOG), 2013.
[4] W. E. Lorensen and H. E. Cline. Marching cubes: A high resolution 3D surface construction algorithm. ACM SIGGRAPH Computer Graphics, 21(4):163–169, 1987.
[5] P. Ondruska, P. Kohli, and S. Izadi. MobileFusion: Real-time volumetric surface reconstruction and dense tracking on mobile phones. IEEE Transactions on Visualization and Computer Graphics, 21(11):1–1.
[6] Y. Yao, Z. Luo, S. Li, T. Fang, and L. Quan. MVSNet: Depth inference for unstructured multi-view stereo. In ECCV, pp. 767–783, 2018.
[7] S. Im, H.-G. Jeon, S. Lin, and I. S. Kweon. Dpsnet: End-to-end deep plane sweep stereo. In International Conference on Learning Representations, 2019.
論文作者
楊幸彬、周立陽、姜翰青、唐中樑、王元博、鮑虎軍、章國鋒