李 雷 徐 浩 吳素萍
單視圖三維重建是圖像理解和計算機視覺的一個基本問題,并在機器人、自動駕駛、虛擬現(xiàn)實和增強現(xiàn)實中有著廣泛的應(yīng)用[1-2].近年來,基于深度學(xué)習(xí)的單視圖三維重建得到了廣泛的應(yīng)用.相比于傳統(tǒng)的三維重建方法,學(xué)習(xí)模型能夠更好地對輸入信息進行編碼以防止輸入信息的歧義.現(xiàn)有基于深度學(xué)習(xí)的三維重建分為多視圖和單視圖重建[3-6],前者先利用深度網(wǎng)絡(luò)提取到的特征信息進行立體匹配并預(yù)測深度圖,再利用深度圖融合技術(shù)構(gòu)建三維模型.后者則通過使用神經(jīng)網(wǎng)絡(luò)強大的特征捕獲能力從輸入圖像中捕獲特征信息,之后結(jié)合從海量訓(xùn)練數(shù)據(jù)中學(xué)習(xí)到的形狀先驗知識信息進行三維重建.具體來說,基于深度學(xué)習(xí)的單視圖三維重建根據(jù)三維形狀輸出表示形式可以分為以下三種:
1) 基于體素的表示形式,如圖1(a)所示,現(xiàn)有工作[7]使用編碼網(wǎng)絡(luò)捕獲輸入的物體圖片的形狀屬性信息 (物體拓撲結(jié)構(gòu)以及幾何、輪廓、紋理等信息) 并將這些低層級信息編碼為不同尺度下的高層級表示形式,之后使用解碼網(wǎng)絡(luò)將三維幾何外形表示為三維體素塊上的二值概率分布S={(P1,···,Pn×n×n)},最后通過計算網(wǎng)絡(luò)預(yù)測的二值概率分布和真實二值概率分布之間的交叉熵來約束網(wǎng)絡(luò)學(xué)習(xí),即利用網(wǎng)絡(luò)學(xué)習(xí)二維圖像到三維體素塊上二值概率分布的映射關(guān)系來表達三維幾何外形.
圖1 基于深度學(xué)習(xí)的單視圖三維重建中三種表示形狀Fig.1 Three representation shapes for single-view 3D reconstruction based on deep learning
2) 基于點云的表示形式,如圖1(b)所示,現(xiàn)有工作[8]使用編碼網(wǎng)絡(luò)捕獲輸入的物體圖片的形狀屬性信息,之后使用解碼網(wǎng)絡(luò)將三維幾何外形表示為無序點云最后通過計算預(yù)測的點云三維坐標和真實點云三維坐標之間的倒角距離等指標來約束網(wǎng)絡(luò)學(xué)習(xí),即利用網(wǎng)絡(luò)學(xué)習(xí)二維圖像到無序三維點集S的映射關(guān)系來表示物體三維形狀.
3) 基于網(wǎng)格的表示形式,如圖1(c)所示,現(xiàn)有工作[9]首先使用卷積神經(jīng)網(wǎng)絡(luò)提取輸入的物體圖片的特征信息,之后使用圖卷積網(wǎng)絡(luò)[10]結(jié)合提取特征和初始化的網(wǎng)格模板對初始化模板進行網(wǎng)格變形生成目標三維模型,最后通過計算預(yù)測網(wǎng)格的信息(點坐標、邊長等) 和真實網(wǎng)格信息之間的誤差來約束網(wǎng)絡(luò)學(xué)習(xí),即利用網(wǎng)絡(luò)學(xué)習(xí)二維圖像到三維網(wǎng)格的映射關(guān)系來表示物體三維形狀.
在網(wǎng)絡(luò)學(xué)習(xí)過程中,現(xiàn)有方法都使用反向傳播[11]算法通過監(jiān)督信息來約束編解碼網(wǎng)絡(luò)進行學(xué)習(xí),即通過反向傳播使神經(jīng)網(wǎng)絡(luò)擬合一個復(fù)雜的映射函數(shù).本質(zhì)上,基于深度學(xué)習(xí)的單視圖三維重建方法使用合適的神經(jīng)網(wǎng)絡(luò)N來實現(xiàn)從輸入圖像I到輸出Y的連續(xù)映射函數(shù)逼近,即對任意ε >0,x ∈I;|N(x)-Y|<ε.
大部分基于深度學(xué)習(xí)的單視圖三維重建工作都使用基于卷積神經(jīng)網(wǎng)絡(luò)的編解碼器架構(gòu)[12],即三維重建任務(wù)通常采用2D 卷積神經(jīng)網(wǎng)絡(luò)對二維輸入圖像進行編碼,再根據(jù)任務(wù)需要的表示形式,使用不同的解碼器生成不同的表示形式.例如,如果使用體素[13]作為最終表示,則使用3D 反卷積神經(jīng)網(wǎng)絡(luò)作為解碼器.
根據(jù)重建后的三維形狀輸出表示形式,一些工作[14-16]基于網(wǎng)格進行三維形狀重建.因為這些方法只能通過使用同類形狀模板進行變形,所以上述方法只能重建出具有簡單拓撲的物體,并且容易出現(xiàn)網(wǎng)格自交叉.總的來說,由于沒有明確和可靠的方法生成有效的網(wǎng)格,所以基于網(wǎng)格的三維重建工作面臨著巨大的挑戰(zhàn).一些工作基于體素[4-5,7]和點云[8]來進行三維形狀重建,但由于占用內(nèi)存過高只能處理小批量數(shù)據(jù)和采用低分辨率來表示.為了解決上述問題,Mescheder 等[17]提出了由連續(xù)函數(shù)定義一個3D 空間,并通過神經(jīng)網(wǎng)絡(luò)擬合的函數(shù)來描述這樣的隱式形狀,并使用2D 圖像X和位置P∈R3來推斷對應(yīng)位置P的占用情況.即使用神經(jīng)網(wǎng)絡(luò)擬合映射函數(shù) R3×X →[0,1].該方法有效地減少了訓(xùn)練時占用的內(nèi)存和訓(xùn)練時間,但由于物體三維形狀是由分類器或回歸模型的權(quán)值來表示,所以這些方法忽略了一些低級的形狀信息.總的來說,現(xiàn)有的單視圖三維重建方法存在以下挑戰(zhàn)性問題:1) 難以準確地重建具有復(fù)雜拓撲結(jié)構(gòu)的物體三維形狀.2)難以準確地重建局部細節(jié)特征從而生成高保真輸出.3) 先前的工作都是在合成數(shù)據(jù)上進行訓(xùn)練,但在真實數(shù)據(jù)上進行測試時,就會出現(xiàn)領(lǐng)域自適應(yīng)問題.因此,一些復(fù)雜拓撲結(jié)構(gòu)的連接處和局部細節(jié)的位置點占用概率往往難以準確的預(yù)測,本文稱這些難以準確預(yù)測的點為模糊概率點.
為了解決上述的挑戰(zhàn)性問題,本文通過深度強化學(xué)習(xí)算法DDPG[18]來訓(xùn)練智能,并不斷地調(diào)整這些模糊概率點的占用概率并使其跳出概率模糊區(qū)間P ∈[0.4,0.6].具體來說,受到 Li 等[19]的啟發(fā),本文首先通過動態(tài)分支代償網(wǎng)絡(luò)生成了更多樣化的特征表示并得到預(yù)測結(jié)果,之后通過預(yù)測結(jié)果找到模糊概率點后聚合模糊概率點周邊的局部信息和全局圖像信息,再通過DDPG 訓(xùn)練的智能體調(diào)整這些模糊概率點,使其達到到最佳的占用概率.本文給出了本文方法在真實圖像上進行三維重建的結(jié)果,如圖2所示.本文的主要貢獻如下:
圖2 本文方法和DISN 方法在真實圖像上的單視圖重建結(jié)果Fig.2 Single image reconstruction using a DISN,and our method on real images
1) 本文使用動態(tài)分支代償網(wǎng)絡(luò)來使得模型從輸入圖像中捕捉到更多樣化的特征信息以提高模型的泛化能力.
2) 本文考慮到了局部信息對位置點占用概率預(yù)測的影響并使用了注意力機制引導(dǎo)的信息聚合機制聚合了局部信息和全局圖像信息.
3) 本文使用深度強化學(xué)習(xí)算法DDPG 訓(xùn)練的智能體對模糊概率點的占用概率進行了再推理.
4) 大量定量、定性和消融實驗證明了本文的方法在公開的大規(guī)模三維物體數(shù)據(jù)集ShapeNet[20]上的評估相比最先進的方法都有相應(yīng)的提升.
早期的單視圖三維物體重建是通過shape-fromshading[21-22]重建物體三維形狀.在早期方法下,紋理和散焦信息提供了更多有意義的重建信息.具體來說,這些工作從輸入圖像中捕獲多條線索信息(例如:紋理、散焦等)和物體的幾何結(jié)構(gòu)信息來推理物體可見表面的深度信息.
近年來,隨著生成對抗網(wǎng)絡(luò)[23],可變分自編碼器[24]在圖像生成方面取得顯著成果,Wu 等[4]將生成對抗網(wǎng)絡(luò)從圖像領(lǐng)域擴展到體素,并訓(xùn)練了3D 生成對抗網(wǎng)絡(luò)從潛在向量生成三維體素.Kar 等[25]將相機參數(shù)和輸入圖像編碼為3D 體素代表,之后應(yīng)用3D 反卷積從多個視圖重建3D 場景.先前的工作都是在合成數(shù)據(jù)上進行訓(xùn)練,但在真實數(shù)據(jù)上進行測試時,存在領(lǐng)域自適應(yīng)問題.為了解決上述問題,Wu 等[7]使用全監(jiān)督的方式通過學(xué)習(xí)輸入圖像到2.5D 草圖的映射,再通過訓(xùn)練一個三維形狀估計器得到最終的三維形狀.但由于過高的內(nèi)存占用,重建的三維形狀通常被限制在 323分辨率的體素塊內(nèi).為了解決內(nèi)存限制的問題,Tatarchenko 等[26]對輸出空間進行了分層分區(qū),以提高計算和存儲效率,這有助于預(yù)測更高分辨率的三維形狀.Wang 等[9]使用圖卷積網(wǎng)絡(luò)[10]使橢球面模板逐漸形變成為目標對象,但結(jié)果往往是受限于球形拓撲.Wang 等[27]通過變形初始化的源網(wǎng)格來重建三維形狀.Fan 等[8]引入了點云作為表示形式來表示物體3D 形狀.然而,基于點云的表示形式需要許多復(fù)雜的后處理步驟[28-30]來生成三維網(wǎng)格.Choy 等[5]借鑒了長短期記憶網(wǎng)絡(luò)和門控循環(huán)單元(Gated recurrent unit,GRU)思想構(gòu)建了循環(huán)網(wǎng)絡(luò)結(jié)構(gòu)來重建三維物體.Groueix 等[14]則使用小塊面片來拼接三維物體表面形狀,但是拼接三維形狀的小塊面片之間很容易出現(xiàn)重疊和自交.Chen 和Zhang[31]在深度網(wǎng)絡(luò)中使用符號距離函數(shù)來完成三維形狀生成的任務(wù).雖然他們的方法在生成任務(wù)上取得了良好的效果,但在單視圖重建任務(wù)中無法實現(xiàn)高保真恢復(fù)三維物體的細粒度細節(jié).
最近,一些工作[31-32]將物體三維形狀表面隱式地表示為深度神經(jīng)網(wǎng)絡(luò)分類器的連續(xù)決策邊界.換句話說,這些工作通過學(xué)習(xí)一個分類器來預(yù)測一個點是在封閉的形狀邊界內(nèi)還是在邊界外,并使用這個分類器作為三維形狀的表示形式.但是,由于三維形狀是由分類器或回歸模型的權(quán)值來表示的,所以這些方法往往忽略了一些低級的形狀信息.
本文的目標是使用2D 圖像X和位置P ∈R3來推斷對應(yīng)位置P的占用情況,即使用神經(jīng)網(wǎng)絡(luò)擬合映射函數(shù) R3×X →[0,1].對于一個封閉的形狀S,該二分類神經(jīng)網(wǎng)絡(luò)等價于對每個位置P給出一個0 到1 之間的占用概率來決定P點是否在封閉形狀內(nèi),如式(1)所示:
但三維物體存在著大量復(fù)雜的拓撲結(jié)構(gòu)和表面細節(jié),這些位置的占用情況往往難以準確的預(yù)測,本文稱這些點為模糊概率點.因此,本文結(jié)合模糊概率點的鄰域特征和全局特征并使用深度強化學(xué)習(xí)算法對模糊概率點的占用概率進行再推理.圖3 顯示了本文方法的整個流程.具體來說,本文首先使用編解碼器將2D 圖片信息和下采樣點特征解碼為向量V并找到模糊概率點.其次,鄰域路由機制將搜索模糊概率點周圍的鄰域點并組合為鄰域點陣塊.然后,特征聚合模塊提取鄰域點陣塊和對應(yīng)的圖片信息為模糊概率點集的局部特征,并與全局圖像特征進行聚合.最后,DDPG 模塊將聚合后的特征作為初始狀態(tài)后進行動作選取并輸出調(diào)整后的占用概率.
圖3 MNGD 框架的整體流程圖Fig.3 The workflow of the proposed MNGD framework
本小節(jié)分別介紹了動態(tài)分支代償網(wǎng)絡(luò)模塊的整體流程、動態(tài)分支代償網(wǎng)絡(luò)以及分支網(wǎng)絡(luò)的優(yōu)化和代償過程.
2.2.1 動態(tài)分支代償網(wǎng)絡(luò)模塊整體流程
本文使用動態(tài)分支代償網(wǎng)絡(luò)編碼輸入的2D 圖像與下采樣后的位置點送入解碼器中對各自位置的占用情況進行預(yù)測得到向量V,再從向量V中尋找模糊概率點.首先將向量V轉(zhuǎn)換到0 到1 之間,再取得概率分布在P∈[0.4,0.6] 的點作為模糊概率點集.如式(2)所示,本文對模糊概率點集進行初始化.
上式中,fuzzy(.)表示對應(yīng)的點是否為模糊概率點,0 代表該點不是模糊概率點,1 代表該點是模糊概率點并將其加入模糊概率點集.
2.2.2 動態(tài)分支代償網(wǎng)絡(luò)
如圖4 所示,本文通過在神經(jīng)網(wǎng)絡(luò)的中間層中添加邊分支,使得神經(jīng)網(wǎng)絡(luò)能夠沿著每條邊分支產(chǎn)生更多樣化的特征表示.之后,本文通過注意力機制來動態(tài)混合多分支輸出預(yù)測概率,從而得到更精確地預(yù)測占用概率,如式(3)所示:
圖4 動態(tài)分支代償網(wǎng)絡(luò)框架圖Fig.4 The framework of the dynamic branch compensation network
其中,pi;i∈M[1,3] 代表每條分支的預(yù)測的占用概率,并且根據(jù)當(dāng)前處理的樣本,wi代表針對該樣本每一條分支的權(quán)重值.
2.2.3 動態(tài)分支網(wǎng)絡(luò)的優(yōu)化和代償過程
在優(yōu)化動態(tài)分支代償網(wǎng)絡(luò)時,本文不僅直接收集每個分支的分類損失來優(yōu)化網(wǎng)絡(luò),而且關(guān)注每個分支在其各自路徑中生成的不同特征.即當(dāng)邊分支或主分支學(xué)習(xí)并生成知識時,分支網(wǎng)絡(luò)之間可以通過相互的公共路徑實現(xiàn)實時的知識交互和補償,如式(4)所示:
其中,LB代表一個小批次B條數(shù)據(jù)的訓(xùn)練損失,(.,.) 代表主分支的交叉熵分類損失,(.,.)代表邊分支的交叉熵分類損失.i=1,···,B代表一個小批次第i條數(shù)據(jù),n=1,···,N,N代表第n條邊分支.fθ代表主分支的網(wǎng)絡(luò)參數(shù),代表第n條邊分支的網(wǎng)絡(luò)參數(shù).IΘ代表主分支生成的知識補償給邊分支,Iθ代表邊分支生成的知識補償給主分支.pij代表輸入的第i條數(shù)據(jù)的第j個位置點,其中pij ∈R3,j=1,···,K.oij ∈{0,1}代表pij是否在封閉形狀S內(nèi)的真實標簽.
在本小節(jié)中,本文通過鄰域路由聚合模糊概率點周圍位置點形成鄰域點陣.因為模糊位置點周圍信息可以幫助模型對模糊位置點的占用概率進行更好的再推理,所以本文通過鄰域路由來尋找模糊位置點周圍的點并組合為鄰域點陣,如圖3(b)和圖5所示.在鄰域路由中,如果路由點個數(shù)過多則會導(dǎo)致訓(xùn)練速度較慢,如果路由點個數(shù)過少則會導(dǎo)致網(wǎng)絡(luò)捕捉的局部特征不穩(wěn)定.本文均衡了不同路由點個數(shù)在訓(xùn)練時間和實驗效果上的表現(xiàn)選擇了N=64 作為路由點個數(shù).
圖5 鄰域路由過程Fig.5 The whole process of neighbor routing
以往的工作僅僅通過訓(xùn)練多層感知機抽取圖像全局信息來對位置點的占用概率進行推理,它往往會忽視局部的細節(jié)信息,故模糊概率點再推理需要結(jié)合全局和局部信息.如圖3(c)所示,本文借鑒通道注意力機制來聚合全局和局部信息.本文的目的是將鄰域點陣和對應(yīng)圖像結(jié)合提取出對應(yīng)鄰域點陣含有的局部特征,之后再聚合局部特征和圖像全局特征形成下一層網(wǎng)絡(luò)的輸入.然而不同的樣本有著不同的特征,一些模糊概率點需要更多的全局的語義信息,相反另一些模糊概率點則需要更多的局部細節(jié)特征,所以本文在聚合特征時加入了通道注意力機制[33].如圖6 所示,模糊概率點集特征被分割為N個模糊概率點特征并使用圖示過程對不同的通道ci乘以對應(yīng)的權(quán)重wi后形成新的單模糊點特征,最后將新的N個模糊概率點再次組成模糊概率點集特征.
圖6 聚合特征時的注意力機制Fig.6 Attention mechanism when features are aggregated
在這個模塊中,智能體通過分析模糊概率點附近的局部信息和全局信息后從量化后的連續(xù)動作空間選取動作來改變模糊概率點的占用概率,再根據(jù)獎勵進行優(yōu)化,最終學(xué)習(xí)到可以跳出模糊概率范圍的策略,進而調(diào)整模糊概率點的占用概率使其跳出模糊概率區(qū)間.本文給定一個由上一個模塊輸出的模糊概率點集特征F,并通過DDPG 模塊來調(diào)整模糊概率點的占用概率.首先,模糊概率點集特征被分割為N個單模糊概率點特征{F0,F1,···,FN},之后引出根據(jù)模糊概率點特征如何獲得該模糊概率點最佳占用概率的問題,最后該問題被定義為一個馬爾科夫決策過程,由狀態(tài)、行為、獎勵、在過程中采取行動的狀態(tài)改變、學(xué)習(xí)過程和交互環(huán)境組成.智能體通過當(dāng)前輸入的狀態(tài)信息,輸出相應(yīng)的最優(yōu)動作,從環(huán)境中獲得最大的獎勵作為一個流程.本文使用一個深度強化學(xué)習(xí)算法DDPG[18]來訓(xùn)練智能體.本文定義的整個馬爾科夫決策過程和訓(xùn)練過程如下:
狀態(tài):本文將狀態(tài)定義為當(dāng)前模糊概率點的特征信息Fi,初始狀態(tài)S0為當(dāng)前模糊概率點第一次進入DDPG 模塊的模糊概率點特征Fi.隨著每一步迭代,在第ith迭代后狀態(tài)是Si-1,它累積了以前所有迭代的更新.
動作空間:本文將在連續(xù)空間T∈[0,1] 內(nèi)選取一個動作Ai來調(diào)整模糊概率點特征信息用來獲得最準確的占用概率,所以第ith迭代的操作是為了獲得更準確的占用概率對應(yīng)的模糊概率點特征信息.其次,本文量化了連續(xù)空間T∈[-1,1] 作為動作選取的連續(xù)空間,使模糊概率點可以跳出模糊概率區(qū)間P∈[0.4,0.6].
獎勵函數(shù):獎勵函數(shù)通常用于評估智能體執(zhí)行動作的結(jié)果.在本文中,獎勵函數(shù)被設(shè)計為根據(jù)模糊概率點特征所得到的占用概率與模糊點對應(yīng)的真實標簽的交叉熵損失,所以這個獎勵函數(shù)可以評估該模糊概率點對應(yīng)的重建誤差.獎勵函數(shù)形式如下:
上式中,yi∈{0,1}代表周圍點是否在封閉形狀內(nèi)的真實標簽,Pi是模糊概率點的占用概率,Si代表當(dāng)前狀態(tài),Ai代表基于當(dāng)前狀態(tài)給出的動作.
學(xué)習(xí)過程:學(xué)習(xí)階段的目標是更新評價和動作網(wǎng)絡(luò)的參數(shù),初始化的評價網(wǎng)絡(luò)Q(S,A|θQ)參數(shù)為θQ,初始化的動作網(wǎng)絡(luò)u(S,A|θu) 參數(shù)為θu,目標評價網(wǎng)絡(luò)Q′和目標動作網(wǎng)絡(luò)u′.
在動作網(wǎng)絡(luò)預(yù)測出動作后評價網(wǎng)絡(luò)會給出Q(S,A)值作為當(dāng)前狀態(tài)S執(zhí)行動作A后的評價,為了能使評價網(wǎng)絡(luò)精確給出對應(yīng)的Q值,最小化式(6)來更新評價網(wǎng)絡(luò)參數(shù):
上式中,N代表從記憶庫中選擇學(xué)習(xí)的樣本個數(shù),Ri代表獎勵值,γ代表折扣參數(shù).在動作網(wǎng)絡(luò)中為了能使動作網(wǎng)絡(luò)能夠獲得更大Q值,使用式(7)來更新動作網(wǎng)絡(luò)的參數(shù):
上式中,?代表梯度,接下來采用式(8)(9)更新目標網(wǎng)絡(luò)參數(shù):
上式中τ代表軟更新的參數(shù).
交互環(huán)境:環(huán)境指的是智能體執(zhí)行動作時所處的場景.本文將環(huán)境設(shè)置為當(dāng)智能體對模糊概率點占用概率進行再推理后得到該模糊概率點新的占用概率.當(dāng)新的占用概率處在模糊概率區(qū)間P ∈[0.4,0.6]時,環(huán)境將該模糊概率點新的占用概率替換之前的占用概率后作為下一個狀態(tài).當(dāng)新的占用概率跳出了模糊概率區(qū)間P∈[0.4,0.6] 或者達到了最大調(diào)整步數(shù)時,環(huán)境將該模糊概率點新的占用概率替換之前的占用概率并給出相應(yīng)的獎勵值.
本節(jié)首先可視化了卷積神經(jīng)網(wǎng)絡(luò)抽取特征的過程和特征激活圖.其次,本文詳細說明了整個預(yù)測三維形狀網(wǎng)格和真實三維形狀網(wǎng)格的生成過程.
如圖7(a)所示,本文可視化了每層卷積網(wǎng)絡(luò)處理提取前層輸出后得到的結(jié)果.從整個可視化后的卷積過程可以看出:1)淺層網(wǎng)絡(luò)主要是對低級特征的提取,例如邊緣特征和紋理特征等.2)深層網(wǎng)絡(luò)則主要是對高級特征信息進行抽取,例如高級語義信息等.如圖7(b)所示,本文使用Grad-CAM[34]通過抓取梯度計算量和特征圖相乘來計算熱力圖,并在原圖中進行特征激活可視化.
如圖7((e)~ (j))所示,本文使用多分辨率等值面提取法(Multiresolution isosurface extraction,MISE)[17]將本文框架輸出的結(jié)果提取等值面,最后使用游動立方體算法(Marching cubes algorithm)[35]對每個體素以三角面片來逼近其內(nèi)部的等值面(Isosurface)來生成目標網(wǎng)格.
圖7 卷積可視化與網(wǎng)格生成過程Fig.7 Convolution visualization and mesh generation process
如圖7(d)所示,本文首先將本文框架輸出的結(jié)果fθ(p,x) 中大于閾值ε的點標記為占用點(圓形點),剩下的標記為未占用點(方形點).其中,f為網(wǎng)絡(luò)擬合的映射函數(shù),θ為網(wǎng)絡(luò)的參數(shù),p為輸入的下采樣點云,x為輸入的2D 圖像.
之后,如圖7(e)所示,本文將至少兩個相鄰位置具有不同占用狀態(tài)的點所在的體素塊標記為占用體素,這些相交于網(wǎng)格之間的標記體素塊的個數(shù)記為網(wǎng)格分辨率.如圖7(f)所示,本文將占用體素進行精細化分解以得到更高的分辨率.如圖7(g)和7(h)所示,本文使用游動立方體算法提取近似等值面并得到初始網(wǎng)格.
如果在當(dāng)前分辨率下的初始網(wǎng)格包含網(wǎng)格內(nèi)外各連通部分的點,則算法結(jié)果收斂于正確的網(wǎng)格.為了更好地使算法收斂于正確的網(wǎng)格,網(wǎng)格分辨率通常設(shè)置為 323.
如圖7(i)所示,本文首先使用快速二次網(wǎng)格簡化算法(Fast-quadric-mesh-simp-lification algorithm)[36]來精細化得到的初始網(wǎng)格.之后,本文再使用一階和二階梯度來進一步精細化網(wǎng)格.為了達到這個目標,本文從輸出網(wǎng)格的每個面取隨機采樣點k個點,并最小化式(11):
上式中n(pk) 代表網(wǎng)格pk的法向量.本文設(shè)置λ=0.01并通過雙重反向傳播[37]方法來有效地使用二階梯度信息.
本節(jié)首先介紹了實驗設(shè)置以及訓(xùn)練和測試的實現(xiàn)細節(jié).其次,展示了本文的方法與目前最先進的方法在ShapeNet[20]數(shù)據(jù)集上定量實驗的結(jié)果.之后,本文展示了本文的方法在合成數(shù)據(jù)集ShapeNet上和在線產(chǎn)品數(shù)據(jù)集(Online products dataset)[38]上的定性結(jié)果.最后,本文使用消融實驗對模型中的各個模塊的作用進行了驗證并展示了本文方法在合成數(shù)據(jù)ShapeNet 中全部類別上的定性結(jié)果.
數(shù)據(jù)集:ShapeNet[20]是一個包含大量三維物體模型的合成數(shù)據(jù)集.本文使用ShapeNet 核心數(shù)據(jù)集,它包括了55 個常見的對象類別共55 300 個3D模型、13 個主要類別和一個官方分割的訓(xùn)練、測試數(shù)據(jù)集.本文的模型在包含全部類別的數(shù)據(jù)集上進行訓(xùn)練,并報告本文模型在包含全部類別的測試集上的測試結(jié)果.
真實圖片數(shù)據(jù):Online products dataset[38]是一個包含真實世界圖片的數(shù)據(jù)集.本文的模型并沒有在該真實圖片數(shù)據(jù)集上進行訓(xùn)練,所以本文使用該真實圖片數(shù)據(jù)集來驗證訓(xùn)練模型的泛化能力、真實世界物體圖片的三維重建能力和域可轉(zhuǎn)移能力.
本文在實驗中分別進行了定量評估和定性評估,對于定量評估,本文使用交并比(Intersection over union,IoU)、倒角距離(Chamfer distance,CD)和法線一致性(Normal consistency,NC)作為評估指標.為了測量IoU 等評估指標,本文使用Stutz 等[39]的代碼去生成水密網(wǎng)格并確定位置點是否位于網(wǎng)格的內(nèi)部或外部.
4.2.1 交并比
本文使用基于體素化網(wǎng)格的交并比(IoU),體素化網(wǎng)格的交并比是兩個體素化網(wǎng)格交集的體積和并集的體積的商.
如式(12)所示,G和R代表體素化網(wǎng)格.
4.2.2 倒角距離
倒角距離被定義為真實點云形狀和重建點云形狀之間完整性和準確性的度量.準確性為重建后各點與真實標簽各點之間的平均距離,完整性則為真實標簽各點與重建后各點的平均距離.
如式(13)所示,G和R 分別代表真實點云形狀和重建點云形狀.
4.2.3 法線一致性
法線一致性定義為重建網(wǎng)格中法線和真實網(wǎng)格中相對應(yīng)最近的法線之間點積的絕對值的平均值.
如式(14)所示,G和R分別代表重建網(wǎng)格和真實網(wǎng)格中的法線.
本文所有的網(wǎng)絡(luò)結(jié)構(gòu)都是使用Python3.6 和Pytorch1.0 實現(xiàn)的.本文使用在ImageNet 數(shù)據(jù)集上預(yù)訓(xùn)練的ResNet-18 來初始化編碼器的參數(shù),并使用基于條件批歸一化 (Conditional batch normalization,CBN)[40]的5 個ResNet[41]塊作為解碼器.本文在一塊CUDA 9.0、cudnn 7 的GeForce RTX 2080 Ti 上來訓(xùn)練動態(tài)分支代償網(wǎng)絡(luò),如圖3(a)所示,其中48 個樣本作為一個批次,并使用初始學(xué)習(xí)率為1×10-4的優(yōu)化算法Adam[42].特征聚合模塊和DDPG 模塊中,本文使用基于CBN 的解碼器和容量為C的記憶庫.強化學(xué)習(xí)過程中動作網(wǎng)絡(luò)每次在連續(xù)空間中隨機選擇一個動作并且將元組(Si,Ai,Si+1,R,done)添加到記憶庫.當(dāng)記憶庫的數(shù)據(jù)量達到C-1 時,網(wǎng)絡(luò)通過隨機從記憶庫中選取一個批次N條經(jīng)驗來進行學(xué)習(xí).本文設(shè)置批次樣本個數(shù)N為100,容量C設(shè)置為400 000,折扣參數(shù)γ設(shè)置為0.99,最大調(diào)整步數(shù)S為3,軟更新參數(shù)ε設(shè)置為0.005.
在這一節(jié)中,本文將在單視圖重建方面使用本文的方法和其他最先進的方法3D-R2N2[5]、Pix2Mesh[9]、AtlasNet[14]和ONet[17]進行定量的比較.本文的方法僅使用單張圖片輸入來實現(xiàn)三維重建.如表1 所示,本文的方法在IoU 上的評價結(jié)果均有顯著的提升并優(yōu)于其他最先進的方法,由于AtlasNet 不能產(chǎn)生水密網(wǎng)格,所以本文無法評估該方法的IoU 值.如表2 所示,對于法線一致性(NC),本文的方法在NC 上的評價結(jié)果均有顯著的提升并優(yōu)于其他最先進方法的結(jié)果.如式(13)所示,AtlasNet 通過輸入信息直接回歸三維點云坐標值以計算倒角距離進行訓(xùn)練.本文通過使用連續(xù)函數(shù)定義一個3D 空間,并通過神經(jīng)網(wǎng)絡(luò)擬合的函數(shù)來描述這樣的隱式形狀,不是直接回歸重建物體中點云的三維坐標值,即本文利用神經(jīng)網(wǎng)絡(luò)擬合映射函數(shù)來隱式的描述3D 形狀.所以,本文方法不能像PSGN和AtlasNet 一樣訓(xùn)練倒角距離.在評估過程中,本文通過網(wǎng)格生成步驟(該步驟不可微分)來生成網(wǎng)格并與真實標簽生成的真實網(wǎng)格中隨機抽樣100k 個點計算倒角距離.如表3 所示,本文在訓(xùn)練過程中沒有像PSGN 和AtlasNet 一樣訓(xùn)練倒角距離,但本文在定量實驗中也取得了較好的結(jié)果.
表3 本文的方法在ShapeNet 數(shù)據(jù)集上與最先進方法倒角距離 (CD)的定量比較Table 3 The quantitative comparison of our method with the state-of-the-art methods for CD on ShapeNet dataset
本文與其他方法比較的定性結(jié)果,如圖8 所示.通過圖8 可以看到所有的方法都對物體的基本的幾何特征進行了準確的提取.本文發(fā)現(xiàn)3D-R2N2[5]在重建拓撲結(jié)構(gòu)復(fù)雜的物體上出現(xiàn)了較為明顯的空洞.PSGN[8]可以產(chǎn)生高保真的輸出,但是缺乏連接性.因此,PSGN 需要額外的有損后處理步驟來生成最終的網(wǎng)格.Pix2Mesh[9]同樣也在拓撲結(jié)構(gòu)較為復(fù)雜的物體上出現(xiàn)了局部變形和空洞.AtlasNet[14]已經(jīng)可以重建出良好的表面,但容易產(chǎn)生小面片之間的自交和重疊.ONet[17]則很好地捕獲了拓撲結(jié)構(gòu)復(fù)雜的物體的特征并且生成了更加平滑的表面,但缺失了部分局部細節(jié).本文的方法能夠捕獲復(fù)雜拓撲結(jié)構(gòu)和生成高保真的三維形狀輸出.另外,從臺燈和飛機的重建結(jié)果可以看出,本文的方法有效地恢復(fù)了物體復(fù)雜拓撲結(jié)構(gòu)的連接處和局部細節(jié).
圖8 ShapeNet 數(shù)據(jù)集上的定性結(jié)果Fig.8 Qualitative results on the ShapeNet dataset
為了檢驗本文的方法對真實數(shù)據(jù)的泛化能力,本文將本文方法應(yīng)用于Online Products dataset[36]用于定性評價.本文的模型并沒有在Online Products dataset 上進行訓(xùn)練.
如圖9 所示,本文展示了本文方法在Online Products dataset 定性結(jié)果.本文在真實圖片數(shù)據(jù)集中選擇一些有代表性的圖像來顯示定性結(jié)果.通過結(jié)果可以看出,雖然本文的模型只是在合成數(shù)據(jù)上進行訓(xùn)練,但本文的模型對真實圖片數(shù)據(jù)也有很好的泛化能力.
本文分別從真實圖片泛化能力和模型魯棒性以及重建復(fù)雜拓撲結(jié)構(gòu)和細節(jié)表達能力方面進一步進行分析.
4.7.1 真實圖片泛化能力和模型魯棒性
為了測試本文模型對真實圖片的泛化能力,本文的模型在Online Products dataset 進行了三維重建.如圖2 和圖9 所示,本文的模型只在ShapeNet數(shù)據(jù)集上進行了訓(xùn)練,但是在真實世界的圖片上還是獲得了不錯的效果.通過這個實驗驗證了本文模型的域可轉(zhuǎn)移性.如表1、2、3 所示,本文的方法在ShapeNet 數(shù)據(jù)集上所有的類別上都取得了最優(yōu)的交并比和法線一致性,并在倒角距離上也取得了不錯的效果,這證明了本文的方法在處理所有類別上更加具有魯棒性.
圖9 Online Products dataset 的定性結(jié)果Fig.9 Qualitative results on Online Products dataset
4.7.2 重建復(fù)雜拓撲結(jié)構(gòu)和細節(jié)表達能力
對于拓撲結(jié)構(gòu)復(fù)雜的物體(例如:飛機、椅子和桌子),本文結(jié)合了輸入圖像的全局特征和模糊概率點周圍的局部特征進一步強化了復(fù)雜拓撲結(jié)構(gòu)和細節(jié)表達能力.如圖2 和圖9 所示,本文的模型在真實物體連接處和凹凸處具有更強的表達力.
在這個部分,本文對本文方法進行了消融實驗,主要研究了分支代償網(wǎng)絡(luò)模塊和DDPG 再推理模糊概率點的占用概率模塊對模型整體性能的影響.本文將分支代償網(wǎng)絡(luò)模塊、DDPG 再推理模糊概率點的占用概率模塊和完整模型分別用MB、DR 和FM 表示.
如表4 所示,本文首先驗證了DDPG 再推理模糊概率點的占用概率模塊顯著提高了IoU 指標.其次,本文驗證了分支代償網(wǎng)絡(luò)模塊明顯提高了IoU、NC 和CD 等指標,另外因為分支代償網(wǎng)絡(luò)的加入可以生成更多樣化的特征表示以更好地定位模糊概率點和提高模型的泛化能力,所以在加入分支代償網(wǎng)絡(luò)后模型效果有了顯著的性能提升.最后,如圖10 所示,本文展示了消融實驗中不同模型的定性實驗結(jié)果.
圖10 消融實驗的定性結(jié)果Fig.10 Qualitative results of ablation study
表4 消融實驗Table 4 Ablation study
在這個部分,本文的方法不依賴IoU 等評價指標對本文方法進行定量評估,而是展示了本文方法對模糊概率點調(diào)整能力的定量結(jié)果,如圖11 所示.圓點代表一張隨機圖片中的模糊概率點整體調(diào)整正確個數(shù),叉號代表一張隨機圖片中整體調(diào)整錯誤個數(shù),虛線代表整體調(diào)整正確或錯誤的決策邊界.
圖11 MNGD 隨機調(diào)整100 張圖片中模糊概率點的結(jié)果Fig.11 The result of MNGD adjusting the fuzzy probability points in 100 random images
在這個部分,本文展示了本文方法在訓(xùn)練數(shù)據(jù)集ShapeNet 中所有類別的三維重建結(jié)果.如圖12所示,本文的方法能夠準確捕獲ShapeNet 數(shù)據(jù)集上所有類別物體的基本幾何特征,另外本文方法也有效的恢復(fù)了所有類別物體的復(fù)雜拓撲結(jié)構(gòu)的連接處和局部細節(jié).
圖12 ShapeNet 上所有類別的定性結(jié)果Fig.12 Qualitative results on ShapeNet of all categories
如圖13 所示(實線圈表示本文方法與ONet 的比較,虛線圈表示本文方法與原圖的比較).相比與之前的工作,本文的方法在大多數(shù)情況下能夠生成高保真的三維模型,但還需要在未來工作中對以下方面進行進一步優(yōu)化:1) 如圖13 所示,由于本文沒有引入額外的相機參數(shù)信息來定位點到圖像平面的映射使得本文模型不能非常準確地恢復(fù)細小的凹凸結(jié)構(gòu)(圖13(a)和圖13(b))和薄片結(jié)構(gòu)(圖13(c)).2) 如圖13 所示,單視圖三維重建本質(zhì)上缺少多視角觀測數(shù)據(jù)導(dǎo)致無法確定唯一的真實形狀,所以學(xué)習(xí)模型經(jīng)常趨于逼近光滑表面但是細節(jié)模糊的平均形狀(圖13(a),圖13(b)和圖13(c)).3)全標注三維形狀公共數(shù)據(jù)集較少,如何增廣或利用無標注三維形狀數(shù)據(jù)集來提高模型泛化能力也十分重要.
圖13 單視圖三維重建中具有挑戰(zhàn)性案例Fig.13 Challenging cases in single-view 3D reconstruction
在未來的工作中,我們計劃引入相機參數(shù)對模糊概率點對應(yīng)的特征圖進行更進一步的精確定位以及使用自監(jiān)督[43-44]來有效利用無標注的三維形狀數(shù)據(jù)集,從而使深度強化學(xué)習(xí)算法訓(xùn)練的智能體做出更加合理的再推理.
本文提出一個新的方法來實現(xiàn)對三維重建中模糊概率點進行再推理從而實現(xiàn)具有高保真和豐富細節(jié)的單視圖三維重建.本文的方法首先通過動態(tài)分支代償網(wǎng)絡(luò)從輸入信息中捕捉到更多樣化的特征信息以提高模型的泛化能力.其次,本文通過注意力引導(dǎo)的聚合機制聚合了模糊概率點的局部信息和全局圖像信息,之后通過深度強化學(xué)習(xí)算法DDPG訓(xùn)練的智能體對模糊概率點進行再推理并給出相應(yīng)的結(jié)果.最后,本文通過大量的定性和定量實驗表明,本文的方法在一定程度上解決了具有復(fù)雜拓撲的物體以及一些表面細節(jié)信息難以準確重建的問題.