韓煌達(dá) 張海翔 馬漢杰 蔣明峰 馮杰
摘? 要: 目前,面向?qū)嵕皥D像的單圖三維重建算法大多無法重建或者只能重建出已知拓?fù)浣Y(jié)構(gòu)類型的帶紋理三維網(wǎng)格。文章結(jié)合目標(biāo)檢測網(wǎng)絡(luò),構(gòu)建了基于隱函數(shù)的紋理推斷網(wǎng)絡(luò)“ColorNet”,用于預(yù)測三維網(wǎng)格頂點的RGB值,并且為Pix3D數(shù)據(jù)集的三維模型添加UV紋理映射,并進(jìn)行渲染、顏色采樣。網(wǎng)絡(luò)在經(jīng)預(yù)處理后的數(shù)據(jù)集上訓(xùn)練并測試。實驗表明,“ColorNet”可以預(yù)測出三維網(wǎng)格頂點的RGB值,并通過與三維重建網(wǎng)絡(luò)“IM-RCNN”相結(jié)合,實現(xiàn)從單張實景圖像中自動地重建接近真實紋理的三維模型。
關(guān)鍵詞: 三維重建; 紋理推斷; UV紋理映射; 目標(biāo)檢測
中圖分類號:TP3? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2021)12-01-05
Abstract: At present, most of the three-dimensional reconstruction algorithms for real-world images cannot reconstruct the 3D models with texture or can only reconstruct the 3D textured mesh with known topology types. In this paper, combined with object detecting network, a texture inference network "ColorNet" based on implicit function is proposed to predict RGB values of vertices of 3D mesh. UV texture mapping is added to the 3D model of Pix3d dataset by the network, and then the 3D model is rendered and color sampled. The network is trained and tested on the pre-processed dataset. The experiment shows that the RGB values of vertices of 3D mesh can be predicted by "ColorNet", and the 3D mesh model close to the real texture can be automatically predicted from single real world image by combining with "IM-RCNN".
Key words: 3D reconstruction; texture inference; UV texture mapping; object detecting
0 引言
近年來,隨著卷積神經(jīng)網(wǎng)絡(luò)的普及應(yīng)用和大規(guī)模三維模型數(shù)據(jù)集的出現(xiàn),基于深度學(xué)習(xí)的單圖三維重建取得了較大的進(jìn)展,通過這些單圖三維重建網(wǎng)絡(luò),可以有效地從圖像中重建出物體的三維模型。然而,這些算法仍然存在一些不足。
首先,目前的網(wǎng)絡(luò)大多將研究重心放在三維形狀重建上。然而,在現(xiàn)實世界中,物體不僅有三維形狀,而且有紋理,有色彩。他們互相關(guān)聯(lián)互相補(bǔ)充,使人們對三維物體的理解更為全面。因此,從圖像中重建帶有紋理的三維模型具有理論意義和實用價值,可以應(yīng)用于虛擬現(xiàn)實、增強(qiáng)現(xiàn)實等諸多領(lǐng)域。
其次,這些網(wǎng)絡(luò)大多從渲染圖像中重建三維形狀,所用圖像只有單一的物體處在圖像中心并且沒有背景。而面向?qū)嵕皥D像的單圖三維重建網(wǎng)絡(luò)所重建的三維形狀大多沒有紋理,或者只能重建出已知拓?fù)浣Y(jié)構(gòu)類型的三維網(wǎng)格。
針對這些問題,本文提出了“ColorNet”,該網(wǎng)絡(luò)可以從實景圖像中預(yù)測出物體三維網(wǎng)格頂點的RGB值。本文的主要貢獻(xiàn)在于①結(jié)合目標(biāo)檢測網(wǎng)絡(luò),提出一種基于隱函數(shù)的紋理推斷網(wǎng)絡(luò),并且通過與實景圖像三維重建網(wǎng)絡(luò)“IM-RCNN”[1]相結(jié)合,使得網(wǎng)絡(luò)能夠從單張實景圖像中重建出帶紋理的三維模型;②實景圖像三維模型數(shù)據(jù)集Pix3D[2]缺少UV紋理映射,使用三維建模軟件Blender為所有的三維模型添加UV映射并增加紋理,并篩選整理了每個三維模型所對應(yīng)的實景圖像使得網(wǎng)絡(luò)更容易訓(xùn)練,形成了可用于紋理推斷網(wǎng)絡(luò)的實景圖像三維模型數(shù)據(jù)集。
1 相關(guān)工作
1.1 基于深度學(xué)習(xí)的實景圖像三維重建
針對實景圖像的三維重建,Yao S等人[3]首先利用目標(biāo)檢測網(wǎng)絡(luò)預(yù)測得到物體的掩膜,將它和圖像疊加得到去除背景后的物體,再預(yù)測物體的三維屬性,對已有的三維網(wǎng)格模板形變,以此重建三維模型。WU J[4]等人使用經(jīng)裁剪后物體處于中心位置的圖像,訓(xùn)練了“3D-VAE-GAN”網(wǎng)絡(luò)來重建三維模型,該網(wǎng)絡(luò)只能生成低分辨率的三維模型。GKIOXARI G等人提出了“Mesh R-CNN”[5],該網(wǎng)絡(luò)結(jié)合目標(biāo)檢測網(wǎng)絡(luò),首先預(yù)測一個粗糙的體素模型,并將其轉(zhuǎn)化為初始網(wǎng)格模型,再使用圖卷積[6]網(wǎng)絡(luò)將其形變,獲得最終的三維網(wǎng)格。在我們之前的工作中[1],提出了基于隱函數(shù)表示法的單圖三維重建網(wǎng)絡(luò)“IM-RCNN”,該網(wǎng)絡(luò)結(jié)合Mask RCNN[7],能夠從實景圖像中重建出高分辨率的三維模型,并且具有更好的視覺效果,是目前較為有效的方法。然而,所重建的三維模型仍然不具有紋理。KANAZAWA A等人[8]對預(yù)定義的三維網(wǎng)格進(jìn)行形變,實現(xiàn)了從實景圖像中重建鳥類的三維模型。
1.2 基于深度學(xué)習(xí)的紋理推斷
針對三維物體的紋理推斷,Tulsiani S等人[9]使用多個視圖和光線一致性作為監(jiān)督,提出了一個基于體素的紋理表示法,重建出了帶有紋理的三維體素模型。SUN Y等人[10]將三維形狀估計和體素顏色回歸結(jié)合起來,從單張圖像中重建出帶有紋理的三維體素模型。然而,由于體素表示法不具備內(nèi)存效率,他們只能重建出分辨率較低的三維紋理模型。NATSUME R等人[11]將視圖生成方法用于從圖像中重建出帶紋理的三維人體模型。他們提出的視圖生成方法,可以從前視圖中預(yù)測后視圖,再將前視圖和后視圖一起用于為三維人體模型添加紋理。KANAZAWA A等人[8]首先預(yù)測UV紋理映射圖的RGB值,再將該圖進(jìn)行UV映射,為三維網(wǎng)格添加紋理。SAITO S等人[12]提出了像素對齊隱函數(shù)表示法用于三維人體重建,并對該表示法作了擴(kuò)展,使用隱函數(shù)來回歸RGB值,從而能夠推斷出每個頂點的顏色,最終實現(xiàn)從圖像中重建帶紋理的三維人體模型。
2 網(wǎng)絡(luò)設(shè)計
目前,基于隱函數(shù)的三維形狀表示法受到越來越多研究者的關(guān)注[12-15],在隱函數(shù)表示法下,三維形狀可以由一個連續(xù)函數(shù)[f]的[k]等值面來表示,例如:
SAITO S等人[12]將隱函數(shù)作了推廣,通過一個連續(xù)函數(shù)[f]將一個三維空間點[X]映射成一個RGB向量,即:
他們的網(wǎng)絡(luò)從渲染圖像中重建出帶紋理的三維模型。相反,本文結(jié)合目標(biāo)檢測網(wǎng)絡(luò),構(gòu)建了基于隱函數(shù)的紋理推斷網(wǎng)絡(luò)“ColorNet”,并與單圖三維重建網(wǎng)絡(luò)“IM-RCNN”相結(jié)合,從而實現(xiàn)從實景圖像中重建帶紋理三維家具模型的目標(biāo),如圖1所示。
2.1 紋理推斷及損失函數(shù)
圖1展示了“ColorNet”的架構(gòu)。由于本文面對的是實景圖像,因此需要獲得物體在整幅圖像中所處位置的特征圖。在目標(biāo)檢測網(wǎng)絡(luò)的相關(guān)工作中,REN S等人[16]提出了“ROI Pooling”,用于獲取與輸入圖像對齊的區(qū)域特征圖,之后He K等人[7]使用雙線性差值提升了對齊精度。因此,“ColorNet”使用RoiAlign[7]操作,從輸入的單張實景圖像中得到區(qū)域?qū)R特征圖[Featurereal∈RC×H×W]。同時,網(wǎng)絡(luò)隨機(jī)輸入一張該三維模型的渲染圖像[Irender],利用一個由殘差網(wǎng)絡(luò)組成的顏色編碼器[Ecolor]對它進(jìn)行映射,即:
經(jīng)過映射,將[Featurecolor]和[Featurereal]在通道維度上相連接,得到[Featureconcate∈R2C×H×W]。
另一邊,有[N]個用于訓(xùn)練的三維采樣點集[P],以其中一個點[Pi]為例,使用正交投影矩陣[M]將它投影到圖像平面上得到像素點[pi=M(Pi)],并獲得在相機(jī)坐標(biāo)系上的深度值[zi]。之后,使用雙線性采樣獲得與該像素點對齊的特征[Featurealign∈R2C×N],同時將深度值[zi]標(biāo)準(zhǔn)化作為深度特征[Featurezi∈R1×N],將兩者在維度上相連接,得到該采樣點最終的特征[Featurepoint]。最后,將該采樣點的特征送入顏色解碼器[Dcolor],得到預(yù)測的顏色向量[RGBpred∈R3×N],即:
損失函數(shù)[LossRGB]是所有三維采樣點對應(yīng)的預(yù)測RGB值和標(biāo)注RGB值之間的均方誤差,即:
2.2 顏色編碼器和顏色解碼器的結(jié)構(gòu)
目前,通過殘差網(wǎng)絡(luò)可以有效地提取圖像特征。本文對ResNet-18[17]網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行微調(diào),移除原有的池化層,使用卷積核大小為9×9,步長為2的卷積層進(jìn)行替代,并使用LeakyReLU作為激活函數(shù),得到用于提取圖像顏色特征的編碼器。
顏色解碼器用于學(xué)習(xí)一個連續(xù)的函數(shù)來預(yù)測出三維網(wǎng)格每個頂點對應(yīng)的RGB值。由于多層的前向網(wǎng)絡(luò)可以在任何精確度上擬合出一個連續(xù)的形狀函數(shù)[18],本文采用八個全連接層搭建顏色解碼器,并且除第一個全連接層,其余各層均將上層的輸出特征與第一層的輸入特征在維度上相連接,作為本層的輸入特征。另外,除最后一層的激活函數(shù)為Tanh以外,其余各層均采用LeakyReLU激活函數(shù)。
3 數(shù)據(jù)預(yù)處理
實驗在Pix3D[2]數(shù)據(jù)集上進(jìn)行,該數(shù)據(jù)集包含9個類別的物體,共有10069張實景圖像、395個三維家具模型。然而該數(shù)據(jù)集中,某個三維模型在不同的實景圖像中可能擁有不同的紋理,并且這些三維模型不具有UV紋理映射。因此,網(wǎng)絡(luò)訓(xùn)練前,我們對三維模型進(jìn)行預(yù)處理,并且篩選每個模型對應(yīng)的實景圖像,使得每個三維模型在不同的實景圖像中都有相近的紋理,便于網(wǎng)絡(luò)進(jìn)行收斂。
3.1 添加UV紋理映射
為了進(jìn)行三維模型的渲染以及網(wǎng)格表面點的RGB值采樣,需要使用帶有UV紋理映射圖的三維模型。由于原始的Pix3D數(shù)據(jù)集中的三維模型不具備UV紋理映射圖,在實驗中需要為395個三維網(wǎng)格模型手工添加紋理。本文使用三維建模軟件Blender,依次為三維模型添加UV映射圖、繪制紋理以及著色,圖2為添加紋理映射后的模型效果。
3.2 三維模型渲染
在為三維模型添加紋理映射之后,對它們進(jìn)行渲染。使用弱透視相機(jī)模型將三維模型與圖像中心對齊,并將每個三維家具模型圍繞偏航軸旋轉(zhuǎn)360度進(jìn)行渲染,共生成142,200張512×512分辨率的渲染圖像。圖3展示了前10個旋轉(zhuǎn)角度的渲染圖像和掩膜,所生成的渲染圖像沒有背景。
3.3 三維表面紋理采樣
在對三維模型進(jìn)行渲染后,也可得到UV紋理映射圖對應(yīng)的法向量圖、掩膜和渲染圖像,如圖4所示。
在對表面紋理進(jìn)行采樣時,本文使用UV掩膜來索引UV渲染圖像、UV法向量圖中對應(yīng)的紋理區(qū)域,再從這些區(qū)域中隨機(jī)采樣指定數(shù)量的點,獲得每個采樣點對應(yīng)的顏色值,作為標(biāo)注RGB值。
4 實驗
4.1 實驗環(huán)境及參數(shù)配置
實驗在單張GeForce RTX 2080 Ti GPU上進(jìn)行,由于目標(biāo)是生成帶有紋理的三維形狀,本文使用“IM-RCNN”訓(xùn)練后的模型作為紋理推斷網(wǎng)絡(luò)“ColorNet”的預(yù)訓(xùn)練模型,網(wǎng)絡(luò)共迭代315000次。網(wǎng)絡(luò)訓(xùn)練采用帶動量的隨機(jī)梯度下降算法,在前32000次迭代中,學(xué)習(xí)率從0.0025到0.02線性增加,之后在256000到315000次迭代中,以10倍數(shù)進(jìn)行衰減。RGB值損失的權(quán)重是1,使用的權(quán)重衰減率是10?4。
4.2 帶紋理的三維網(wǎng)格推斷
為了從實景圖像中預(yù)測出帶有紋理的三維模型,本文將紋理推斷網(wǎng)絡(luò)“ColorNet”與單圖三維重建網(wǎng)絡(luò)“IM-RCNN”[1]相結(jié)合,如圖5所示?!癐M-RCNN”的隱函數(shù)分支可以從單張圖像中預(yù)測出物體的三維形狀,它的掩膜分支和包圍框分支可以輸出物體的掩膜和包圍框。
在推斷時,網(wǎng)絡(luò)結(jié)構(gòu)與訓(xùn)練階段略有不同。首先,網(wǎng)絡(luò)從一張實景圖像[Ireal]開始,通過RoiAlign操作獲得區(qū)域?qū)R特征[Featurereal],再通過“IM-RCNN”的隱函數(shù)分支以及等值面提取[19]操作得到預(yù)測的三維網(wǎng)格[mesh]([Vmesh=(3,N)])。之后,“ColorNet”對[mesh]的[N]個頂點計算預(yù)測的RGB值。另外,網(wǎng)絡(luò)通過“IM-RCNN”的掩膜分支得到物體的掩膜[maskpred],并與實景圖像[Ireal]相疊加,得到去除背景的圖像[Irender],并將其送入顏色編碼器計算圖像特征。
通過“ColorNet”得到每個頂點的顏色預(yù)測值[RGBpred]后,與預(yù)測網(wǎng)格[mesh]相結(jié)合得到最終帶有紋理的網(wǎng)格[meshtextured]。
圖6分別展示了“IM-RCNN”預(yù)測的無紋理三維模型、“ColorNet”與它結(jié)合后預(yù)測的帶紋理三維模型以及真實的帶紋理三維模型。從圖6中可以發(fā)現(xiàn),“ColorNet”可以有效地預(yù)測出三維網(wǎng)格頂點的RGB值,通過與“IM-RCNN”的結(jié)合,可以實現(xiàn)從單張實景圖像中預(yù)測出接近真實紋理的三維網(wǎng)格。
4.3 與其他方法的對比分析
如圖7所示,SAITO S等人[12]首先通過人工手段將實景圖像去除背景,再制作與目標(biāo)對應(yīng)的掩膜,之后通過裁剪、調(diào)整尺寸等操作,獲得目標(biāo)位于中心、大小固定的圖像。他們的網(wǎng)絡(luò)使用該圖像作為輸入,重建出帶紋理的三維人體。相反,本文的方法直接使用實景圖像作為輸入,通過網(wǎng)絡(luò)自動地重建出帶紋理的三維模型。同時,輸入圖像可以擁有不同的尺寸大小,圖像中的物體可以位于不同的位置。
如圖8所示,KANAZAWA A等人[8]從實景圖像中重建出了帶紋理的三維鳥類模型。然而,由于使用固定的三維網(wǎng)格模板,通過對網(wǎng)格模板形變來重建模型,因此只能對某個特定類別的物體進(jìn)行訓(xùn)練,獲得已知拓?fù)浣Y(jié)構(gòu)范圍內(nèi)的重建結(jié)果。相反,本文的方法可以同時對多個類別的物體進(jìn)行訓(xùn)練,并且可以處理任何類型的拓?fù)浣Y(jié)構(gòu)。
以上是對三維紋理模型推斷方法的定性分析。對于紋理推斷效果的定量評估,在目前已有的研究工作中仍然缺少一個合適的指標(biāo),需要做進(jìn)一步的研究。
5 結(jié)束語
針對當(dāng)前面向?qū)嵕皥D像的單圖三維重建網(wǎng)絡(luò)所重建的三維形狀大多沒有紋理,或者只能重建出已知拓?fù)浣Y(jié)構(gòu)類型的三維網(wǎng)格等不足,本文結(jié)合目標(biāo)檢測網(wǎng)絡(luò),將隱函數(shù)方法用于預(yù)測三維網(wǎng)格頂點的顏色值,提出了紋理推斷網(wǎng)絡(luò)“ColorNet”,并且將它與單圖三維重建網(wǎng)絡(luò)“IM-RCNN”相結(jié)合,實現(xiàn)了從單張實景圖像中自動地重建帶紋理的三維網(wǎng)格。但在實驗中為三維模型添加UV紋理映射圖需要操作人員有一定的三維建模軟件使用技能和熟練度。因此,探索其他方便有效的紋理采樣方式是下一步的研究重點。
參考文獻(xiàn)(References):
[1] 韓煌達(dá),張海翔,馬漢杰,蔣明峰,馮杰.面向?qū)嵕暗膯螆D三維重建算法研究[J].軟件導(dǎo)刊,2021.
[2] SUN X, WU J, ZHANG X, et al. Pix3d: Dataset and methods for single-image 3d shape modeling: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition[C], 2018.
[3] YAO S, HSU T M, ZHU J, et al. 3d-aware scene manipulation via inverse graphics: Advances in neural information processing systems[C], 2018.
[4] WU J, ZHANG C, XUE T, et al. Learning a probabilistic latent space of object shapes via 3d generative-adversarial modeling[J]. Advances in neural information processing systems,2016.29:82-90
[5] GKIOXARI G, MALIK J, JOHNSON J. Mesh r-cnn:?Proceedings of the IEEE International Conference on Computer Vision[C], 2019.
[6] SCARSELLI F, GORI M, TSOI A C, et al. The graphneural network model[J]. IEEE Transactions on Neural Networks, 2008,20(1): 61-80.
[7] HE K, GKIOXARI G, DOLLáR P, et al. Mask r-cnn:Proceedings of the IEEE international conference on computer vision[C], 2017.
[8] KANAZAWA A, TULSIANI S, EFROS A A, et al. Learning category-specific mesh reconstruction from image collections: Proceedings of the European Conference on Computer Vision (ECCV)[C], 2018.
[9] TULSIANI S, ZHOU T, EFROS A A, et al. Multi-view supervision for single-view reconstruction via differentiable ray consistency: Proceedings of the IEEE conference on computer vision and pattern recognition[C], 2017.
[10] SUN Y, LIU Z, WANG Y, et al. Im2avatar: Colorful 3dreconstruction from a single image[J]. arXiv preprint arXiv:1804.06375, 2018.
[11] NATSUME R, SAITO S, HUANG Z, et al. Siclope:Silhouette-based clothed people: Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition[C], 2019.
[12] SAITO S, HUANG Z, NATSUME R, et al. Pifu: Pixel-aligned implicit function for high-resolution clothed human digitization: Proceedings of the IEEE/CVF International Conference on Computer Vision[C], 2019.
[13] MESCHEDER L, OECHSLE M, NIEMEYER M, et al.Occupancy networks: Learning 3d reconstruction in function space: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition[C], 2019.
[14] CHEN Z, ZHANG H. Learning implicit fields for generative shape modeling: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition[C], 2019.
[15] PARK J J, FLORENCE P, STRAUB J, et al. Deepsdf:?Learning continuous signed distance functions for shape representation: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition[C], 2019.
[16] REN S, HE K, GIRSHICK R, et al. Faster r-cnn:Towards real-time object detection with region proposal networks[J].IEEE transactions on pattern analysis and machine intelligence,2016.39(6):1137-1149
[17] HE K, ZHANG X, REN S, et al. Deep Residual Learning for Image Recognition:IEEE Conference on Computer Vision & Pattern Recognition[C]: IEEE,2016.
[18] HORNIK K, STINCHCOMBE M, WHITE H. Multilayer?feedforward networks are universal approximators[J]. Neural networks,1989.2(5): 359-366
[19] LORENSEN W E, CLINE H E. Marching cubes: A high resolution 3D surface construction algorithm[J]. ACM siggraph computer graphics,1987.21(4):163-169