白 靜,徐 昊
1.北方民族大學 計算機科學與工程學院,銀川750021
2.國家民委圖形圖像智能處理實驗室,銀川750021
得益于增強現實、機器人導航及自動駕駛等領域的蓬勃發展,從視圖中重建物體的三維模型受到了越來越多研究者的關注。然而,視圖作為三維模型的離散化表征,其所包含的深度信息及空間信息有限,在很大程度上影響了重建結果的整體結構及局部細節。
為重建出精細化的三維模型,現有方法均采用卷積神經網絡對二維視圖進行特征編碼,然后使用3D反卷積將視圖特征映射為體素在空間網格中的占位概率,最后使用二元交叉熵來對所有體素進行懲罰約束。但是,常規的卷積方式在單層網絡上僅能夠在局部感受野內進行特征提取,難以獲取不同空間位置上特征的相關性。此外,空間網格中占位狀態為0和1的網格比例極其不均衡,使用二元交叉熵對所有體素進行平等學習會使細節結構難以重建。并且二元交叉熵僅在體素層面上進行分類約束,無法對物體進行全局結構約束。這些問題會在整體上限制網絡的表征能力,導致重建結果存在結構及細節的缺失。
為解決上述問題,本文提出了多層次感知的多視圖三維模型重建方法。本文的主要貢獻包括:
(1)為充分獲取視圖內潛在空間信息,在視圖特征提取階段設計了上下文感知的CA-CAM(context aware channel attention module)來對全局結構特征與局部細節特征進行加權融合。
(2)為解決空間網格中體素分布不均衡,且精細結構體素難分問題,提出了體素感知的Vox-Focal Loss來促進體素生成。通過賦予難分體素更大損失權重的方式來減緩重建過程中的結構缺失問題。
(3)為對三維模型的全局結構進行約束,使用了具有物體感知能力的3D判別器來自適應地消除三維模型中冗余體素,提升三維模型重建網絡的表征能力,以使重建結果更具真實感。
傳統三維模型重建方法以傳感器是否主動向物體照射光源為依據,可將傳統方法分為被動式三維重建方法和主動式三維重建方法。
被動式三維重建方法通過環境光成像,依據圖像幾何原理來獲取物體的三維信息,其中的代表性方法包括
SFT(shape from texture)[1]、SFS(shape from shading)[2-3]
及SFM(structure from motion)[4]等。此類方法利用成像投影過程中物體自身的幾何特征來逆向計算物體的深度信息,局限性在于需要設置嚴苛的先驗及約束。
主動式三維重建方法主要依靠外部傳感設備將光源或能量源發射至目標物體,通過接收返回信號來獲取物體的深度信息。隨著精密傳感設備的更新迭代,飛行時間法(time of flight,ToF)、結構光法(structured light)等主動式三維重建方法在工業領域廣泛應用。但是精密的硬件設備意味著高昂的成本,并且設備的使用容易受環境因素影響。
深度學習三維模型重建領域主要的數據格式包括體素、點云和網格,本文主要討論基于體素表征的重建方法。
基于體素表征的三維模型重建方法近年來取得了長足發展,這主要得益于2015年提出的VoxNet[5]和3D ShapeNet[6],為使用卷積神經網絡處理體素數據開辟了思路。3D-R2N2[7]基于LSTM的結構設計了3D-LSTM,用以處理從編碼器提取的特征向量。由于LSTM固有的結構特點,該方法的重建精度不可避免地受限于視圖輸入順序及視圖數量。Girdhar等人[8]提出的TLEmbedding Network約束二維視圖特征與三維模型特征在屬性嵌入空間具有一致性,從而實現三維模型的生成與重建。Wu等人[9]使用生成對抗網絡(GAN)來進行三維模型重建,提出了3D-VAE-GAN的網絡結構,通過變分自編碼網絡的編碼器將輸入編碼成潛在向量(latent vector),然后連接生成器來得到重建后的三維模型。該方法取得了比之前工作更好的性能,也為后續研究工作[10]提供了思路。MarrNet[11]及其變體[12-13]從輸入中預測中間信息(如2.5D深度圖)來幫助完成三維模型重建,此類方法緩解了物體的紋理、反照率等外觀變化在物體形狀推理過程中產生的影響。Xie等人[14]提出的Pix2Vox精心設計了多視圖感知融合模塊,用于從不同的三維模型中并行地為每個部分選擇高質量重建。在Pix2Vox的基礎上,Pix2Vox++[15]通過使用更加復雜的編碼器骨干網絡來實現更好的重建效果。胡飛等人[16]通過自動編碼器生成三維輪廓,同時使用注意力網絡提取細節信息并將其補充到自動解碼器的生成結果中,從而生成完整的三維形狀。Wallace等人[17]設計了用于少樣本三維模型重建的雙線性網絡,該方法同時以二維視圖和類內平均三維形狀作為輸入,旨在提升網絡在少樣本類別上的泛化能力。
本文針對二維視圖所含空間信息離散與空間網格中體素分布不均衡問題,提出了多層次感知的三維模型重建方法。
設計了基于多層次感知的多視圖三維模型重建網絡,其整體網絡架構如圖1所示。在視圖特征提取階段,通過設計對視圖內潛在空間信息進行上下文感知的CA-CAM來引導網絡盡可能充分地提取二維視圖特征,從而更為精準地建立二維視圖與三維模型間的特征映射;在三維模型生成階段,Vox-Focal Loss對空間網格中分布不均衡占位網格進行體素感知,為不同占位狀態的網格賦予不同程度的懲罰權重并使網絡更關注于難分體素,從而約束基于CA-CAM的編碼器解碼器重建出全局結構盡可能完整的三維模型;在三維模型細化階段,融合后的三維模型經過細化器完成進一步優化,本文使用具有物體感知能力的3D判別器來與細化器協同工作,基于對抗學習思想自適應地去除融合三維模型中的冗余部分,從而重建出更具真實感的三維模型。

圖1 整體網絡架構Fig.1 Overview of proposed network architecture
二維視圖作為三維模型的離散化表征,其潛在的空間信息有限。為充分提取視圖內的潛在空間特征,設計了上下文感知的注意力模塊CA-CAM并將其嵌入到二維視圖編碼器。CA-CAM的具體網絡結構如圖2所示,該模塊由三個分支構成,分別用于對物體進行細節特征感知、顯著特征感知及位置特征感知。

圖2 CA-CAM模塊示意圖Fig.2 Illustration of proposed CA-CAM
CA-CAM通過改變感受野和池化類型來實現視圖特征的上下文感知與通道維度的特征賦權。在注意力信息的學習過程中,Conv1與Conv2的卷積核尺寸分別為C/r×1×1與C×1×1,二者步長均為1,采用逐點卷積(point-wise convolution)的方式來對通道信息進行聚合。
細節特征感知:在此分支中,除通道外的其他特征維度始終保持不變,通過逐點卷積來增加網絡的非線性表征能力,使得輸入特征X中的局部細節信息更為突出,用于關注目標物體三維形狀細節特征的L()
X∈
RC×H×W可以表示為:

其中,β表示批標準化[18](batch normalization),δ表示修正線性單元[19](rectified linear unit,ReLU)。
顯著特征感知:與細節特征感知分支不同,此分支首先采用全局最大值池化來對輸入特征X進行處理,從而在后續的卷積操作中獲取目標物體的最顯著特征。用于學習目標物體顯著特征的全局通道注意力可以表示為:

其中,ε表示全局最大池化。
位置特征感知:此分支通過全局平均池化來對輸入特征X的H×W維度進行壓縮,然后通過卷積來對目標的空間位置特征進行感知,用于學習目標物體位置特征的全局通道注意力可以表示為:

其中,ψ表示全局平均池化。在給定L(X)、G1(X)與G2(X)后,由上下文通道注意力模塊CA-CAM優化后的特征X′可以表示為:

其中,C(X)∈RC×H×W表示由CA-CAM學習到的注意力權重,σ表示Sigmoid非線性激活函數,⊕表示廣播加法(broadcast addition),?表示矩陣乘法。三個子分支提取到的特征通過廣播加法融合成C×H×W維度的特征,然后該特征經過非線性激活函數Sigmoid映射成取值在(0,1)區間的通道注意力權重,最后輸入特征X與該注意力權重進行矩陣相乘得到優化后的特征X′。如圖3所示,CA-CAM對期望關注的區域賦予了更大的注意力權重。

圖3 驗證CA-CAM有效性的熱力圖可視化效果Fig.3 Heatmap visualization to verify effectiveness of CA-CAM
在三維模型生成階段,解碼器對由上下文通道注意力模塊CA-CAM優化后的特征X′進行解碼,然后將對應于不同視圖的解碼結果進行融合,最后通過損失函數對融合結果進行懲罰約束。
在損失函數的選擇上,現有的大多數體素表征三維模型重建網絡使用二元交叉熵作為損失函數,為兩種占位狀態(占位:1,未占位:0)設置相同的懲罰權重。然而,在體素占位空間中,占位網格和未占位網格的比例嚴重失衡。如表1所示,本文對公共數據集ShapeNet Core中的43 783個樣本進行了體素占比統計,并以類別為單位取均值,可以觀察到整體的體素占比僅為8.78%。因此,基于二元交叉熵的方法會缺乏目標體素感知能力,即使將目標體素全部錯誤分類為0,網絡也難以得到較大的損失值進行梯度傳播。

表1 體素占比統計Table 1 Voxel ratio statistics
為解決上述問題,在三維模型生成階段基于[20]設計了體素感知的VoxFocal Loss,用來保證重建結果的結構完整性與連續性:

通過以上步驟,可以獲得結構完整的三維模型重建結果,然而其細節部分還不夠準確。為此,通過引入細化器對其進行優化。如圖1所示,細化器可以看作一個具有U-Net連接的三維編碼器-解碼器,借助逐層編碼解碼及它們之間的跳層連接,充分捕捉模型細節,優化重建結果??紤]到三維模型生成階段和細化階段均缺乏對三維模型整體結構的感知,進一步地,在細化器之后添加3D判別器來對優化結果進行整體真偽判斷,從而構建起包含上下文感知、體素感知和物體感知的多層次約束,重建出更具真實感的三維模型。具體來說,3D判別器由4個3D卷積層構成,每層的卷積核尺寸均為43,步長為2。前3個3D卷積層的padding為1,并且后面跟有批歸一化層與LeakyReLU激活層;第4個3D卷積層將padding設置為1,通過Sigmoid激活層將三維模型最終映射為(0,1)區間的概率值,該概率值與對應的真偽標簽進行損失計算,實現對三維模型的全局物體感知。三維模型重建網絡與物體感知3D判別器間的對抗損失可以表示為:

其中,x表示三維模型在323維空間網格中的真實值,對應的類標簽設置為1;V表示三維模型重建網絡的重建結果,對應的類標簽設置為0。在訓練過程中判別器會接收真實三維模型x和重建三維模型V,通過對x和V進行真偽判斷來調整三維模型重建網絡與3D判別器的參數。如果3D判別器判斷正確,則會對三維模型重建網絡的參數進行調整,從而使得生成的三維模型更加具有真實感;反之則需要調整3D判別器的參數來避免判斷出錯。這種對抗訓練會一直持續到三維模型重建網絡與3D判別器進入到均衡狀態。結束訓練后,得益于3D判別器的物體感知能力,三維模型重建網絡會實現更高質量的重建效果。
網絡的整體損失函數由3個子損失構成,子損失分別作用于網絡的不同階段,多次反向傳播來進行梯度累積。整體損失函數Lsum可以表示為:

其中,Lvfl表示三維模型生成階段的VoxFocal Loss,Lbce與Ladv表示三維模型細化階段的二元交叉熵損失與生成對抗損失。
在三維模型重建過程中,多個層次的感知機制協同作用,從局部到整體地對重建三維模型進行逐步細化:視圖特征級的上下文感知獲取豐富的深度信息,幫助建立二維視圖與三維模型間的特征映射,從而可以更為準確地生成融合體素;VoxFocal Loss對融合體素進行體素級的懲罰約束,提高三維模型生成階段重建結果的完整性;最后,細化器對融合體素中錯誤的重建部分進行優化,從而生成最終的重建結果。值得注意的是,3D判別器并不直接參與三維模型的推理過程,其目標是通過與三維模型重建網絡的對抗學習來隱式地賦予網絡全局結構級的物體感知能力,從而使得網絡能夠重建出結構更為完整且更具真實感的三維模型。
3.1.1 數據集與對比方法選取
ShapeNet數據集:本文參照文獻[5]中的設置選取了合成圖像數據集ShapeNet的子集,并將數據集劃分為4/5的訓練集與1/5的測試集。
ShapeNet數據集對比方法選?。河捎诒疚木劢褂跓o形狀先驗的多視圖三維模型重建。因此選擇無顯式存儲模塊的多視圖三維模型重建方法進行定量和定性比較,其中包括經典方法3D-R2N2、現有先進方法AAN、Pix2Vox及其變體Pix2Vox++。在定性實驗中,在無特殊說明的情況下,輸入視圖數量均為3。
Pix3D數據集:本文參照文獻[12]中的數據集使用策略對真實世界數據集Pix3D[21]數據集進行了處理。由于Pix3D數據集僅構建了物體的單張視圖與三維模型的對應關系,數據集中具有相同三維結構但不同紋理的視圖會對應到同一個三維模型,并且不同的二維視圖可能會對應同一個視點。因此,本文僅將Pix3D數據集用于單視圖重建效果的評估。
Pix3D數據集對比方法選?。簩Ρ确椒ò≒ix3D與Pix2Vox,由于Pix2Vox++構建了未開源的真實世界數據集Things3D,并額外在該數據集上進行了訓練,因此本文不將其加入此類實驗進行比較。
3.1.2 評價指標
采用公認的交并比(intersection-over-union,IoU)評價指標來對重建質量進行定量評價。IoU可以表示為:

其中,pi,j,k表示(i,j,k)處空間網格的占位概率,yi,j,k表示對應位置的真實占位狀態,t表示進行體素化的閾值。
網絡以尺寸為224×224的圖像作為輸入并輸出323分辨率的三維空間網格,體素化閾值t設置為0.3。
選用Adam優化器進行梯度運算,將其初始學習率設置為0.001,衰減率設置為0.5。由于生成對抗網絡難以訓練,因此采用兩階段的訓練策略:(1)在不添加3D判別器的條件下訓練300個批次。各個子損失的權重設置為λ1=10,λ2=20,λ3=0,Adam優化器的學習率將在[100,175,225,250,275]批次時進行衰減。(2)添加3D判別器后,加載階段(1)訓練的模型參數來完成200批次的對抗訓練。各個子損失的權重設置為λ1=10,λ2=20,λ3=10,Adam優化器的學習率將在[50,100,150]批次時進行衰減。
為驗證本文提出的CA-CAM、Vox-Focal Loss及3D判別器的有效性,在輸入為多視圖的前提下對網絡進行了消融實驗。表2展示了不同版本模型取得的IoU值。從表2結果可以看出,同未添加任何模塊的基準方法相比,在編碼器中添加了CA-CAM的模型v1提升了0.013的IoU值。相比于模型v1,損失函數替換為Vox-Focal Loss的模型v2將IoU值提升了0.003。添加3D判別器進行對抗學習之后的模型v3在模型v2的基礎上再次提升了0.001,并取得了最佳的重建結果。

表2 不同版本模型的多視圖三維模型重建結果對比Table 2 Comparison of multi-view 3D model reconstruction results of different versions of models
本文還對各版本模型進行了定性比較。圖4展示了重建的可視化效果,從可視化效果中可以直觀地觀察到:模型v1的重建結果要比基準模型的重建結果更為完整,填補了結構中的部分孔洞;與模型v1相比,基于CA-CAM與Vox-Focal Loss的模型v2的重建結果最為完整且具有連續的結構;在細化器中添加3D判別器后,模型v3通過從模型v2的重建結果中消除冗余體素獲得了更準確且更細節的結果;即從基準模型到模型v3的重建效果在逐步提升。
綜合表2與圖4,模型v3在定量比較上雖然并沒取得顯著提升,但是模型v3的重建視覺效果要遠優于模型v2。經過分析,認為這是因為在加入3D判別器后,關鍵位置冗余體素的消除僅在度量指標上獲得了0.001的提升,但是重建結果在視覺上更為準確與真實。

圖4 消融實驗的可視化實例(上為ShapeNet數據集樣本,下為Pix3D數據集樣本)Fig.4 Visual examples of ablation experiment
表3展示了本文方法在5種視圖數量設置下與現有代表性方法的定量比較。與最先進方法Pix2Vox++比較,在以單視圖作為輸入時,本文方法取得0.01的提升;在以2、3張視圖作為輸入時,本文方法取得了0.008的提升;在以4、5張視圖作為輸入時,本文均取得了0.013的提升。表4展示了單視圖條件下本文方法與現有方法在ShapeNet數據集上的重建結果對比,各個類別的最優重建結果通過加粗表示,次優重建結果通過下劃線表示。
可以觀察到本文方法在大多數類別上都取得了更先進的重建結果,并且整體的重建IoU值要優于現有的代表性方法。
如圖5所示,本文對在數據集ShapeNet上的多視圖重建結果進行了可視化??梢杂^察到3D-R2N2的部分重建結果包含孔洞,從而導致整體結構缺乏完整性與連續性;Pix2Vox及其改進版本Pix2Vox++的重建結果有著較為完整的全局結構;相比于現有方法,本文方法的重建結果不僅結構完整,并且在局部結構(例如柜子的邊緣和椅子的腿)上要更加精確。
如圖6所示,本文對在數據集Pix3D上的單視圖重建結果進行了可視化。可以觀察到本文方法在以前兩張視圖作為輸入時取得了更為完整的重建結果。在以后兩張視圖作為輸入時,本文方法的重建結果既有完整的形狀,又有精確的局部細節。此外,如表5所示,本文對在Pix3D數據集上的重建結果進行了定量比較,與現有最優方法Pix2Vox相比,本文方法取得了0.017的重建效果提升。綜合表3、表4、表5與圖5、圖6,本文方法在合成圖像數據集和真實世界數據集上都獲得具有先進性的重建結果。

表5 在Pix3D數據集上的定量比較Table 5 Quantitative comparison on Pix3D

圖5 ShapeNet數據集重建結果可視化Fig.5 Visualization of reconstruction results on ShapeNet dataset

圖6 Pix3D數據集重建結果可視化Fig.6 Visualization of reconstruction results on Pix3D dataset

表3 不同視圖數量設置下的定量對比Table 3 Quantitative comparison under different view quantity settings
本文針對二維視圖的離散化及體素數據的稀疏性特性,提出了多層次感知的多視圖三維模型重建方法。該方法在二維視圖提取階段通過可學習的上下文感知注意力機制CA-CAM,有效地提取和融合離散視圖中的空間幾何特征。在三維模型生成階段,體素感知的Vox-Focal Loss有效緩解了空間占位網格的樣本不均衡問題,保證了重建三維模型的結構完整性與連續性。在三維模型細化階段,具有物體感知能力的3D判別器以微調的方式參與模型訓練,限制了冗余體素的生成,提升了重建結果的真實性。經過實驗驗證,該方法在三維模型重建任務上具有有效性與先進性。
在具有挑戰性的真實世界數據集Pix3D上,本文方法的重建結果會存在較為嚴重的體素缺失。認為這是因為真實世界中目標物體的背景復雜,因此在未來的工作中,將致力于將目標物體與背景進行自適應分割,從而提升在真實世界數據集上的重建效果。