商湯研究院和浙江大學 CAD&CG 國家重點實驗室合作研發了一個手機端實時單目三維重建系統 Mobile3DRecon。與現有的基於 RGBD 的在線三維重建或離線生成表面網格的系統不同,該系統結合前端位姿跟蹤結果,允許用戶使用單目攝像頭在線重建場景表面網格。在深度估計方面,提出結合多視圖半全局匹配算法和深度神經網絡優化後處理過程魯棒地估計場景深度。在表面網格生成過程,本文提出的在線網格生成算法可以實時增量地融合關鍵幀深度到稠密網格中,從而重建場景表面。通過定性和定量的實驗驗證,所研製的單目三維重建系統能夠正確處理虛擬物體與真實場景之間的遮擋和碰撞,在手機端實現逼真的 AR 效果和交互。
基於該系統發表的論文被AR及MR領域國際頂級會議ISMAR 2020錄用,榮獲Best Paper Award,並被推薦至 Special Issue of IEEE Transactions on Visualization and Computer Graphics。
論文名稱: Mobile3DRecon: Real-time Monocular 3D Reconstruction on a Mobile Phone
遮擋和碰撞檢測一直是 AR 行業面對的一大難題,其技術難點在於需要實時獲取場景的三維表面信息,從而使虛擬物體和真實環境能融為一體。當前已有的實時場景重建系統通常需要 RGB-D 或 Lidar 攝像頭的支持(如 KinectFusion, InfiniTAM, ElasticFusion, BundleFusion 等),然而受硬體的限制目前市面上大部分的手機無法使用該功能;另一類重建系統雖然可以根據單目 RGB 攝像頭計算深度,從而重建場景表面(如 MonoFusion, MobileFusion, CHISEL 等),但是需要較大的計算時間和內存開銷,大多僅能在 PC 或高端的移動平臺上實時運行。針對上述問題,本文提出了一個手機端實時單目三維重建系統 Mobile3Drecon,該工作的主要貢獻在於:
1. 提出一種基於多視圖關鍵幀的深度估計方法,能夠在手機端高效獲取較高精度的場景深度,同時能夠一定程度上容忍 SLAM 位姿偏差和弱紋理場景的影響;
2. 提出一種快速有效的增量式網格生成方法,該方法可以融合關鍵幀深度從而實時增量地重建場景表面網格,同時支持場景動態物體的移除,在中端的手機平臺上實時運行;
3. 搭建了一套完整的基於單目 RGB 的實時三維重建系統,該系統在中端手機平臺上可以達到 125ms 每關鍵幀,獲取的表面網格精度可以達到釐米級,基於該系統可以在手機端實現逼真的 AR 效果和交互,如圖 1 所示。
圖1 Mobile3DRecon 系統在小米 8 手機上實時重建室內辦公室場景並實現虛實遮擋和碰撞效果
本系統框架如圖 2 所示。行動裝置獲取的 RGB 圖像和 IMU 信息經過前端視覺慣性 SLAM 系統後可以實時得到關鍵幀的 6 自由度位姿,該位姿經過後端全局優化後進入深度估計模塊,對於新增的每個關鍵幀,首先基於多視圖半全局匹配方法計算關鍵幀初始深度圖,然後採用置信度和深度神經網絡優化深度圖噪聲,優化後的深度圖輸入增量式網格生成模塊後實時構建場景表面稠密網格。通過實時 6 自由度位姿估計和場景表面網格構建,Mobile3DRecon 系統支持用戶在手機端實現真實的 AR 遮擋和碰撞效果。下面分別介紹系統的單目深度估計和增量式網格構建兩個主要功能模塊。
1. 單目深度估計
● 動機
傳統基於多視圖立體匹配的深度估計算法通常需要較強的 GPU 算力來滿足實時計算的要求,而輕量的算法又難以獲得精確完整的深度圖結果。儘管一些基於深度神經網絡的深度估計算法在公開數據集上表現出了較好的效果,然而在實際應用過程中受場景弱紋理和 SLAM 位姿偏差的影響較大,手機平臺算力的影響也使其難以在移動端部署。鑑於此,本文期望結合輕量化的深度神經網絡和快速的多視圖半全局匹配算法實現場景深度計算,考慮到手機平臺算力、SLAM 位姿偏差和弱紋理場景的影響,本文希望多視圖半全局匹配方法在保證深度估計泛化能力的同時,能夠融合多幀信息提升對位姿偏差和弱紋理區域的容忍度,通過結合深度神經網絡能夠有效改善位姿偏差和弱紋理產生的深度噪聲,從而得到精確、完整的深度圖結果。
● 方法
本文提出的單目深度估計算法主要包含三個部分:
① 多視圖立體匹配算法,用於計算初始深度圖
② 置信度去噪算法,用於去除初始深度圖噪聲
③ 基於深度神經網絡的深度圖優化算法,用於改善深度圖質量
具體方式如下:
① 步驟:多視圖深度估計
為了獲取關鍵幀深度信息,首先給定深度空間範圍、以及最大深度採樣數量,在深度空間按照下式(1)獲取離散採樣深度。
獲取投影點坐標後,使用式(3)計算對應點的 census 聯合匹配代價,式中 S(t') 為參考幀t'的分值權重,通過遍歷圖像的每個像素採樣深度後可以計算聯合代價體 C。為了對匹配代價進行約束,本文進一步使用文獻[1]的半全局優化策略對代價體進行多路徑積聚後得到積聚代價體。
最後,在積聚代價體上通過使用「勝者為王」算法上獲取最優採樣位置,並在最優採樣位置利用拋物線擬合獲取連續採樣值,帶入公式(1)得到亞像素精度的深度結果。由於使用了多視圖半全局匹配算法,影像位姿偏差和場景弱紋理對深度的負面影響一定程度上得到改善,同時該方法非常適合在移動平臺上使用 NEON 指令集加速。
② 步驟:置信度噪聲剔除
給定步驟①的深度圖,參考文獻[1]計算深度圖每個像素的不確定度 U,不確定度越高代表噪聲的可能性越大。其次,考慮深度圖上每個像素周圍5×5窗口的深度離散度,通過統計與中心像素深度差值大於閾值的像素比率作為深度誤差概率w,計算公式如下式(4)。
通過聯合像素不確定度與深度誤差概率確定每個像素的置信度 M,最後剔除置信度小於閾值的深度像素後得到最終的深度圖結果。圖 3 展示了置信度剔除噪聲後的深度圖結果。
③ 步驟:基於深度神經網絡的深度圖優化
去除深度圖噪聲後,本文使用一個輕量的深度神經網絡優化深度圖,網絡結構如圖 4 所示,包含了多任務網絡和深度優化網絡兩個部分。
網絡第二個階段的輸入為原始深度圖和一階段的深度圖噪聲預測結果,使用 U-Net 殘差深度優化網絡優化原始輸入的深度,得到更高質量的深度輸出。本文使用 Demon 數據集[2]訓練上述網絡,然後使用手機採集的帶 TOF 深度的 3700 組序列影像微調該網絡。圖 5 所示為帶有一定位姿偏差的圖像,第二列為置信度剔除噪聲後的深度圖,最後一列為經過深度優化網絡後的深度圖結果,可以看出深度圖僅存在少量的空間噪聲。
2. 增量式網格生成
● 動機
在線網格重建的難點在於如何在保證較好重建效果和重建規模的前提下,能夠實時在線地重建場景三維表面信息。傳統基於 TSDF 融合的方法雖然能夠在線融合深度圖, TSDF 的更新通常需要在 GPU 平臺上才能達到實時,受平臺算力的影響該過程很難在一些中低端的手機上實時應用。此外,現有的表面網格生成的算法(如 Marching Cubes[4])是離線的,難以實現在線增量式表面網格生成和更新。鑑於此,本文希望能夠實現一種適合手機端 AR 應用的實時增量式在線網格生成算法,通過構建一種快速的基於空間索引的 voxel hash 機制,並對傳統的 Marching Cubes 算法進行改進,使其能夠在線增量地擴展場景網格表面,從而重建場景三維信息。同時,考慮到空間中的動態物體可能會對 AR 遮擋和碰撞效果產生影響,因此本文希望增量式網格生成算法能夠快速有效地剔除空間動態物體。
● 方法
本文的增量式網格生成方法主要包含三個部分:
① 可擴展的哈希函數,用於建立空間體素的索引機制
② 體素融合與動態物體移除,用於將計算的深度圖融合到體素中,同時移除不在當前場景的動態物體
③ 增量式網格更新用於快速提取體素塊的網格面片,從而重建場景三維信息
具體方式如下:
① 可擴展的哈希函數
本文使用一個三維的 voxel hash 空間索引存儲深度的 TSDF 值,索引過程如圖 6 所示,為了避免哈希索引的衝突,對於 volume 範圍內的點使用一個三維的哈希函數構建其索引,volume 外的點採用函數建立索引,通過將空間 volume 進行規則劃分,使得體素的哈希表插入、查詢的時間複雜度變為常數級,因此該方法具有較高的速度優勢。
② 體素的融合與動態物體移除
對於輸入的每個關鍵幀深度圖,通過將深度值投影到三維的體素塊中,從而判斷是否需要分配新的體素塊,如果需要則將體素塊的 TSDF 和權值信息插入到索引表中,否則按照下式(7)更新當前體素塊體素的 TSDF 值和權重。
為了處理動態物體產生的網格,本文將可見的體素投影到當前幀深度上進行可視性檢查,如果發現與當前深度存在差異,則更改體素的 TSDF 值。通過這種方式可以使移出場景的動態物體產生的網格被逐漸消除。如圖 7 展示了增量式網格構建過程中動態物體移除的過程。
③ 增量式網格更新
為了獲取參與表面提取的體素塊,本文對傳統的 Marching Cubes 算法進行改進,從而實現一種快速增量式的網格更新策略,通過給每個體素維護一個狀態變量 ,僅提取或更新狀態為 ADD/UPDATE 的體素塊的網格面片。圖 8 所示為增量式網格重建的更新過程。圖中淺黃色表示被關鍵幀深度圖更新的三角面片,綠色表示新增的三角面片。
本文使用 OPPO R17 Pro 手機採集帶有真實場景深度的5組數據,用於從定性和定量兩個方面對比 Mobile3DRecon 與一些 SOTA 方法的效果, 其中 ground truth為OPPO R17 Pro 獲取的與單目相機對齊的 TOF 深度。圖 9 和圖 10 所示為室外樓梯場景分別使用 REMODE、DPSNet、MVDepthNet 以及本文方法生成深度圖和 mesh 網格,可以看出本文方法生成的深度圖細節更加明顯,在此基礎上生成的網格質量優於其它幾種方法。
圖10 本文方法最終融合的表面網格與其他方法的結果比較
為了定量評價本文方法和 REMODE、DPSNet、MVDepthNet 生成的深度圖和網格的精度,本文對比了 5 個場景下幾種方法的實驗結果,如表 1 所示。分別統計了幾種方法的深度和網格與真值深度(ToF)和真值網格在公共有效區域的 RMSE 和 MAE 精度,可以看出 Mobile3DRecon 方法不論是在深度圖還是網格質量上都要優於其它的一些 SOTA 方法,深度圖和網格精度可以達到釐米級。其餘 4 個場景重建的網格結果如圖11所示。
表1 Mobile3DRecon 系統重建五個由 OPPO R17 Pro 採集的實驗場景的精度評估,每個場景給出了本文的方法和其他方法的深度和網格的 RMSE 和 MAE 誤差,以 ToF 深度作為真值
圖11 四個由 OPPO R17 Pro 採集的實驗場景
用本文方法生成的表面網格結果
本文在 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手機上該系統能夠通過精確重建場景表面網格使得虛擬物體的放置不局限於平面結構,同時室內樓梯和印表機場景的示例也展示了虛擬球與真實場景產生的正確遮擋和碰撞交互效果。
圖12 Mobile3DRecon 在手機平臺上的 AR 應用本文提出了一個實時的單目三維重建系統,該系統允許用戶在一些中端的手機平臺上使用單目攝像頭提供在線網格生成功能。與現有的基於點雲或 TSDF 的在線重建方法不同,Mobile3DRecon 系統可以根據單目攝像頭圖像魯棒地估計場景深度,同時將估計的關鍵幀深度實時增量地融合到稠密網格表面。本文在兩個中端手機平臺上驗證了 Mobile3DRecon 系統的重建結果,通過定量和定性的實驗驗證了所提出的實時單目三維重建系統的有效性。Mobile3DRecon 系統能夠正確處理虛擬物體與真實場景之間的遮擋和碰撞,從而達到逼真的AR效果。
楊幸彬、周立陽、姜翰青、唐中樑、王元博、鮑虎軍、章國鋒
https://ieeexplore.ieee.org/document/9201064
[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.
商湯3D&AR團隊-3D視覺組
團隊簡介
致力於探索三維視覺技術與增強/混合現實的結合,打造三維感知與智能識別技術為核心的增強/混合現實產品和應用,包括商湯SenseAR增強現實開發者平臺和商湯SenseMARS火星混合現實技術平臺。主要研究方向包括:SLAM、三維重建、視覺定位、多傳感器融合、真實感渲染與虛實融合、物體位姿估計、語義分割與理解等。團隊擁有多位博士和博士後,在CVPR、ICCV、ECCV、ISMAR等頂級會議上發表過數十篇論文,擁有Chinagraph最佳論文獎和ISMAR最佳論文獎得主。
招聘方向
● 高精度地圖算法研究員:負責數字孿生、增強現實應用中視覺高精度地圖的算法研究,工作方向包括圖像局部特徵提取、匹配、相機標定、Structure from Motion等算法性能優化。
● 三維重建算法研究員:負責數字孿生、增強現實應用中視覺三維重建算法研究,工作方向包括Multi-view Stereo、點雲優化、網格模型優化/標準化等算法的研究。
● SLAM算法研究員:負責用於AR/VR眼鏡的SLAM算法,以及SLAM算法的晶片化。
● 圖形學研究員:負責圖形算法/應用的開發、性能優化,以及真實感渲染、AR虛實融合、大規模場景可視化等應用場景落地。
● 3D 視覺算法優化工程師:負責 3D 視覺算法的移動端的高性能優化,工作方向包括傳統 CV 算法和深度學習算法在移動端(如手機)異構計算平臺的加速優化。
感興趣的小夥伴請投遞簡歷至:
jianghanqing@sensetime.com