田方正, 高永彬, 方志軍, 顧 佳
(上海工程技術大學 電子電氣工程學院,上海 201620)
稠密的三維重建是安全的機器人導航、增強現實(AR)等任務的首選。多年來,很多學者在不同的領域研究定位和三維重建的工作。OpenMVG[1]開發了完整的系統,應用局部細化來恢復更好的局部重建質量。從運動恢復結構(structure from motion,SFM)和即時定位與地圖構建(simultaneous localization and mapping,SLAM)被廣泛用于從圖像獲得三維重建[2]。DTAM(dense tracking and mapping in real-time)[3]和REMODE[4]通常通過優化深度值來創建密集場景。隨著卷積神經網絡(convolutional neural networks,CNN)的出現,計算機視覺理解的性能大大提高。CNNSLAM[5]利用CNN預測單目圖像深度,并將其輸入大規模直接單眼SLAM(LSD-SLAM)中實現稠密重建。CodeSLAM[6]利用CNN框架,并結合圖像幾何信息實現了單目相機的稠密SLAM。
目前,基于RGB-D的重建只能保持顏色分辨率等于所用深度傳感器的分辨率,這限制了生成重建的精度和真實性。如文獻[7]所示,基于幾何的系統在圖像梯度區域或者邊緣上表現最佳,但在紋理較低的內部區域表現極差,而基于學習的系統通常在內部點上表現得相當好,但會模糊對象的邊緣。
本文提出了基于深度估計與自我運動聯合優化的三維重建。首次增加了RGB圖像的特征圖作為網絡的輸入,并且創新性地提出了輪廓損失函數,同時設計了特征損失函數來聯合優化深度估計和自我運動。在TUM RGB-D[8]、ICL-NUIM[9]數據集上,明顯地提高了深度圖的質量、定位結果以及三維重建的效果。
基于深度估計與自我運動聯合優化的三維重建總體架構如圖1所示。整個算法由3個神經網絡組成,DepthNet用于預測當前幀RGB1的稠密深度Pred。PoseNet分為4個子網絡,以RGB1和RGB2與它們的3個不同級別的特征圖作為輸入,預測當前幀RGB1和附近幀RGB2的相對位姿。VGGNet[10]不參與模型的學習,僅使用預訓練的權重提取圖像特征。由于在室內場景中,有大量帶有深度標記的樣本。因此,采用監督的方式訓練網絡,使用原始的深度圖與預測深度圖之間的差作為損失約束,加速網絡的收斂。使用當前幀RGB1和重建的當前幀RGB1′的光度誤差、輪廓誤差以及它們的3個特征誤差糾正預測的深度圖的結果,同時優化當前幀與附近幀的相對位姿。最后,在DepthNet和PoseNet訓練完成的基礎上,通過預測關鍵幀的稠密深度圖與位姿進行三維重建。

圖1 系統架構示意
DepthNet以原始分辨率的RGB圖像作為網絡的輸入。網絡的輸出為與輸入分辨率一致的預測稠密深度圖。這種高分辨率的稠密深度預測保證了后期三維重建的質量。
DepthNet網絡架構采用了經典的V形結構。如圖2所示,整個網絡使用3×3(反)卷積,批量歸一化(batch normalization,BN)和帶參數的非線性激活函數(parametric rectified linear unit,PReLU)來提取特征。BN將各層的數據分布強制轉換為正態分布,使得網絡的收斂速度加快。PReLU是帶有參數的非線性激活單元,用來非線性激活標準化數據。最終通過1×1卷積濾波器產生一個與網絡輸入具有相同分辨率的預測稠密深度圖。
VGGNet不參與模型的學習,僅使用預訓練的權重為DepthNet和PoseNet提供用于訓練或者網絡輸入的RGB圖像的特征圖。

圖2 DepthNet網絡架構
PoseNet共分為4個子網絡。如圖1所示,將當前幀RGB1和附近幀RGB2作為第1個子網絡的輸入。VGGNet分別提取RGB1和RGB2的3組不同級別的特征圖。3組不同的特征圖分別作為其他3個子網絡的輸入。
PoseNet輸出6自由度相對姿勢[R|t]。其網絡架構如圖1所示。每個子網絡共3層,以從RGB或者特征圖像中提取更多特征。位姿網絡先對RGB或者特征圖在通道上進行疊加,然后疊加后的圖像進行卷積操作提取特征。PoseNet采用ReLU作為激活函數。在輸出階段,融合4個子網絡最終的特征圖,再經過2次卷積得到[R|t]。
系統需要訓練DepthNet和PoseNet兩個網絡模型。在訓練期間,使用深度損失加速DepthNet模型的收斂速度。使用當前幀RGB1和重建的當前幀RGB1′的光度誤差、輪廓誤差以及它們的三個特征誤差糾正預測深度圖的結果,同時優化當前幀與附近幀的相對位姿。
深度損失:在深度網絡模型的訓練期間,使用原始深度約束預測出來的稠密深度圖。具體而言,如果預測的深度圖在原始深度圖對應的位置有數據,那么對這兩個數據之間的差異進行懲罰。深度損失定義為
(1)

圖像重構:給定相對變換[R|t]和當前深度預測Hpred,可以將附近幀RGB2反向扭曲到當前幀RGB1上。具體來說,通過式(2)可以建立起RGB2與RGB1任何像素對應的投影關系
u2=K[R|t]spredK-1u1
(2)
式中spred為預測的稠密深度圖在RGB1像素坐標u1下對應的深度值,K為相機內參,[R|t]為兩幀之間的變換矩陣,u2為RGB2對象對應的坐標位置。通過式(2)的對應關系,利用雙線性采樣將RGB2合成為RGB1視角下的RGB1′圖像
RGB1′=C(RGB2,[R|t],Hpred)
(3)
式中C為RGB2與RGB1像素對應的投影函數。
光度損失:光度損失的目的是使當前幀RGB1與重建的當前幀RGB1′之間的像素級差異最小化,從而迫使網絡預測更精確的稠密深度以及位姿。其定義為
Lphoto=∑s∈S‖I1-I′1‖1
(4)
式中S為圖像的尺度,I1和I′1為圖像RGB1與RGB1′在像素點s上的顏色強度。
輪廓損失:為了提高深度估計在邊緣處預測的準確性,提出了輪廓損失,目的是加大對輪廓處的懲罰。輪廓使用基本梯度獲取,其定義為
g=(f⊕b)-(f?b)
(5)
式中g為基本梯度圖像,f為原始圖像,b為結構元素,⊕為膨脹操作,?為腐蝕操作。
RGB圖像與其輪廓的結果如圖3所示。將RGB1和RGB1′提取的輪廓圖像直接相減,來加大對邊緣處的懲罰力度。輪廓損失定義為
Lcontour=‖I1C-I′1C‖1
(6)
式中I1C和I′1C為圖像RGB1與RGB1′在各自輪廓上的強度。

圖3 RGB圖像與其輪廓
特征損失:使用VGGNet提取RGB1與的3個不同級別的特征圖,如圖1所示,通過特征誤差解決RGB圖像易受光線影響的問題。特征損失的具體定義為
(7)
式中S為特征圖的集合,f1和f′1為圖像RGB1與RGB1′在第s個特征圖上的特征值。
整個自我監督框架的最終損失函數包括4項
L=α1Ldepth+α2Lphoto+α3Lcontour+α4Lfeature
(8)
式中α1,α2,α3,α4為超參數。根據經驗,最終將超參數分別設為0.8, 0.6, 0.6, 0.6。
為了保證三維重建的分辨率、靈活性和適應性,使用Surfel的方法進行重建。本文利用第一幀圖像及預測的稠密深度圖初始化Surfel,構建并維護覆蓋可見表面的無序集。每個Surfel有7個屬性。其數學形式為S=[p,n,c,w,r,t,i],p為3個自由度的位置變量,n為3個自由度的法線變量,c為顏色強度,w為置信度,r為用于近鄰搜索的半徑,t用于檢測臨時異常值或動態對象,i為觀察Surfel的最后一個幀。
在給定當前相機姿態估計[R|t]的情況下,可以利用曲面之間的相對位姿將局部曲面的位置和法線變換為當前幀。其融合如式(9)所示
(9)
式中 腳標b為之前建好的Surfel,l為局部Surfel。
數據集:使用SUN RGB—D[11]數據集對網絡進行訓練,該數據集包含1萬幅經過優化的RGB-D圖像。使用TUM RGB-D[8]和ICL-NUIM[9]兩個公共基準數據集的序列進行測試。
實施細節:本文在Pytorch中實施了訓練框架。以圖像原始分辨率作為網絡的輸入,批量大小為4,在單塊NVIDIA TITAN X上進行訓練??偣苍O置3個級別的特征圖計算特征損失,每個級別的尺寸是上一個級別的50 %。使用零均值高斯隨機初始化網絡權重,采用Adam進行網絡優化,學習率設為10-4,采用學習率衰減法,每2輪迭代學習率降低50 %??偣灿柧?0輪。
采用文獻[12]中使用的相同序列進行評估,并與他們報告的結果進行比較。根據文獻[12]的評估方式,使用正確深度百分比(percentage of correct depth,PCD)和絕對軌跡誤差(absolute track error,ATE)作為室內數據集的評估標準。PCD定義為絕對誤差小于真實深度10%的深度預測百分比。ATE是一個公認的評估攝像機軌跡質量的指標,它被定義為估計的和真實攝像機軌跡之間的均方根誤差。
數據集PCD的比較結果如表1所示。除了ICL/Living2序列以外,在所有的序列中都取得了顯著的進步。這表明了本文的方法可以提升網絡的性能。此外,可以看出,基于學習的方法比純幾何系統(REMODE[4])有明顯的優勢,這表明了基于學習的方法在稠密三維重建中的作用。
室內數據集ATE的比較結果如表2所示??梢钥闯?所提方法總體上優于其他方法。這主要取決于使用RGB圖像以及特征圖作為PoseNet的輸入。同時,基于特征的損失在聯合優化深度與位姿的時候,起到了重要的作用。

表1 TUM RGB-D和ICL-NUIM數據集PCD比較

表2 TUM RGB-D和ICL-NUIM數據集的絕對軌跡誤差 m
圖4中顯示了TUM RGB-D數據集部分圖片深度圖的定性結果。通過定性的結果來看,預測的深度圖像還具有更清晰的對象邊界;同時所提的方法克服了玻璃等一些特殊物體對深度相機的影響。

圖4 TUM RGB-D數據集部分圖片的深度圖對比結果
此外進行了單張圖片的重建,以直觀地評估所提方法。如圖5所示,所提方法的重建分辨率更高,可以實現對黑色物體(電腦屏幕),以及玻璃的重建。

圖5 TUM RGB-D單張RGB圖像三維重建結果
為了進一步證明所提方法的有效性,對TUM RGB-D部分圖片進行三維重建。如圖6所示,所提方法可以對室內進行有效的重建。

圖6 TUM RGB-D部分場景三維重建結果
針對室內稠密三維重建的問題,提出了基于深度估計與自我運動聯合優化的三維重建。創新性地提出了輪廓損失,設計了特征圖的損失。實驗結果表明:所提方法在TUM RGB-D,ICL-NUIM數據集上,明顯地提高了深度圖的質量、定位結果以及三維重建的效果。