胡情豐
(浙江理工大學(xué) 信息學(xué)院,杭州 310018)
目前,針對(duì)靜態(tài)場(chǎng)景的三維重建技術(shù)已經(jīng)非常成熟。盡管如此,最新方法依舊有著較大局限性。由于很多算法都對(duì)數(shù)據(jù)本身有一個(gè)先驗(yàn)假設(shè),比如低秩,這些假設(shè)對(duì)NRSfM 技術(shù)應(yīng)用于實(shí)際問(wèn)題有非常大的局限性。如實(shí)際場(chǎng)景中最常見(jiàn)的多人問(wèn)題、物體之間的遮擋等,都是對(duì)這項(xiàng)技術(shù)的一個(gè)巨大考驗(yàn)。
最近,基于該問(wèn)題,F(xiàn)acebook 公司提出一套基于無(wú)監(jiān)督學(xué)習(xí)的NRSfM 問(wèn)題框架——C3DPO。該框架主要使用了目前最熱門(mén)的神經(jīng)網(wǎng)絡(luò)代替?zhèn)鹘y(tǒng)因式分解,使得模型可以很好地拓展到更復(fù)雜的場(chǎng)景中,從而實(shí)現(xiàn)從二維觀測(cè)矩陣到三維結(jié)構(gòu)的轉(zhuǎn)化。該框架在文獻(xiàn)[1]、[2]的基礎(chǔ)上,加入一個(gè)正則化網(wǎng)絡(luò),以確保因式分解的有效性。該框架不僅可以對(duì)非剛性運(yùn)動(dòng)場(chǎng)景進(jìn)行有效的三維重建,而且在剛性運(yùn)動(dòng)場(chǎng)景三維重建上一樣有著出色的效果。
本文創(chuàng)新點(diǎn)如下:
(1)選擇將Lookahead 與RAdam 相結(jié)合的方式——Ranger 優(yōu)化器,以加快神經(jīng)網(wǎng)絡(luò)訓(xùn)練速度。
(2)結(jié)合實(shí)驗(yàn)分析以及Ranger 本身的性能,采用iResNet 為基本骨干網(wǎng)絡(luò)搭建網(wǎng)絡(luò)模型,在保證重建效果的前提下優(yōu)化網(wǎng)絡(luò)復(fù)雜度,使其更易于訓(xùn)練。
Fig.1 3D reconstruction visualization of S-Up3D data after passing through the model圖1 S-Up3D 數(shù)據(jù)經(jīng)過(guò)模型后的三維重建可視化
NRSfM 問(wèn)題研究至今,人們已提出了許多解決方案,以實(shí)現(xiàn)從多幀圖像的二維關(guān)鍵點(diǎn)中恢復(fù)變形對(duì)象的三維坐標(biāo)及形狀[3-6]。然而,由于非剛性物體在運(yùn)動(dòng)時(shí)會(huì)發(fā)生形變,導(dǎo)致NRSfM 實(shí)際上具有較多約束,這也對(duì)正確分解三維視點(diǎn)和形狀構(gòu)成了極大挑戰(zhàn)。目前,利用對(duì)形狀和攝像機(jī)運(yùn)動(dòng)的先驗(yàn)知識(shí)降低NRSfM 問(wèn)題難度逐漸成為主流研究方法,例如假設(shè)在時(shí)間和空間域上使用低秩子空間[7-9],將二維特征點(diǎn)擬合到一組預(yù)先設(shè)計(jì)的DCT 基函數(shù)中[3-4],時(shí)空間聯(lián)合模型[10-11]以及在時(shí)空間聯(lián)合中加入稀疏子空間聚類等方式[8,12-13]。然而,在復(fù)雜的現(xiàn)實(shí)場(chǎng)景中,顯然無(wú)法很好地利用這些先驗(yàn)假設(shè),比如常見(jiàn)的顯示場(chǎng)景中存在因物體本身視角問(wèn)題導(dǎo)致的遮擋,乃至于多目標(biāo)場(chǎng)景下存在物體與物體之間的遮擋等。
正因上述傳統(tǒng)方案本身不具備很好的拓展性,如今越來(lái)越多研究者開(kāi)始思考將現(xiàn)代的深度學(xué)習(xí)技術(shù)應(yīng)用于NRSfM 問(wèn)題處理中。然而,對(duì)于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練而言,對(duì)大量圖像進(jìn)行三維姿態(tài)標(biāo)注是一項(xiàng)非常繁重的工作。因此,文獻(xiàn)[14]提出利用合成圖像對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行增強(qiáng)處理,但將相關(guān)方法應(yīng)用于現(xiàn)實(shí)場(chǎng)景中時(shí),依然需要考慮到數(shù)據(jù)標(biāo)注問(wèn)題。人們開(kāi)始逐漸從弱監(jiān)督學(xué)習(xí)的角度進(jìn)行考慮,通過(guò)一些簡(jiǎn)單的附加數(shù)據(jù),如一些2D 姿態(tài)注釋[15-16]、動(dòng)作標(biāo)簽[17]等提高算法性能。最近,在無(wú)監(jiān)督學(xué)習(xí)基礎(chǔ)上,通過(guò)約束二維投影誤差配合GAN 或自表達(dá)一致性誤差約束的方式[18-20]輔助神經(jīng)網(wǎng)絡(luò)訓(xùn)練,取得了不錯(cuò)的效果,使研究逐漸開(kāi)始往無(wú)監(jiān)督學(xué)習(xí)方向延伸。
自AlexNet[21]面世以來(lái),深度卷積神經(jīng)網(wǎng)絡(luò)一直在計(jì)算機(jī)視覺(jué)領(lǐng)域處于主導(dǎo)地位。隨著計(jì)算機(jī)視覺(jué)技術(shù)的發(fā)展,越來(lái)越多研究者將研究方向從工程手工特征轉(zhuǎn)向工程網(wǎng)絡(luò)體系架構(gòu),并建立了系列改進(jìn)的網(wǎng)絡(luò)架構(gòu)。ResNet[22]的出現(xiàn)令神經(jīng)網(wǎng)絡(luò)研究進(jìn)入到一個(gè)新層面,通過(guò)引入iden?tity skip connection 促進(jìn)信號(hào)在神經(jīng)網(wǎng)絡(luò)中的傳播,使更深的神經(jīng)網(wǎng)絡(luò)訓(xùn)練成為可能。如今ResNet 不僅在檢測(cè)與識(shí)別中具有絕對(duì)優(yōu)勢(shì),在處理NRESM 問(wèn)題時(shí)也有非常不錯(cuò)的效果[18]。
隨著時(shí)間推移,越來(lái)越多的ResNet 網(wǎng)絡(luò)開(kāi)始出現(xiàn)。ResNeXt[23]則是在ResBottle 塊中采用群卷積的方式,將網(wǎng)絡(luò)的多路徑結(jié)構(gòu)進(jìn)行了統(tǒng)一。文獻(xiàn)[24]使用一種預(yù)激活方式,在ResBlock 基礎(chǔ)上,將BN 層與ReLU 激活函數(shù)放置在卷積核操作之前,使信號(hào)傳播達(dá)到更好的效果,從而成功訓(xùn)練出比普通ResNet更深的模型。ResNeSt[25]使 用Split-attention 方式,將SE-Net[26]的思想應(yīng)用于ResNeXt 的群卷積中,使其相對(duì)于SK-Net[27]更容易進(jìn)行訓(xùn)練與優(yōu)化。同時(shí),iResNet[28]的提出將可訓(xùn)練的神經(jīng)網(wǎng)絡(luò)深度成功增加到3 002 層。
對(duì)于SfM 問(wèn)題,主要是從輸入二維關(guān)鍵點(diǎn)的觀測(cè)矩陣wn=(wn1,wn2,…,wnp) ∈R2×P獲取對(duì)應(yīng)的三維姿態(tài)坐標(biāo)S=(S1,S2,…,SP)∈R3×P。其中,wn表示在第n 幀時(shí)P 個(gè)特征點(diǎn)對(duì)應(yīng)的二維坐標(biāo)。將共有F 幀的序列視為一個(gè)整體,整個(gè)問(wèn)題可轉(zhuǎn)化為:W=roS,W={w1,w2,w3,…,wF}T∈R2F×P,ro={ΨR1,ΨR2,…,ΨRF}T∈R2F×3。其中,Ψ:R3→R2是一種相機(jī)投影方式。為方便后續(xù)計(jì)算及模型搭建,本文選擇正交相機(jī),因此該投影方式可表示為:Ψ=[I20 ],其中I2∈R2×2為一個(gè)單位矩陣。同時(shí),Rn為對(duì)應(yīng)第n 幀中的旋轉(zhuǎn),而NRSfM 問(wèn)題為SfM 問(wèn)題在非剛體場(chǎng)景中的推廣。不同之處在于,其通過(guò)一個(gè)簡(jiǎn)單的線性模型對(duì)結(jié)構(gòu)S 進(jìn)行合理約束:
參數(shù)αn為Sn對(duì)應(yīng)的視角參數(shù),B 表示形狀基,D 表示形狀基的維度,在本文模型的訓(xùn)練中,該參數(shù)為訓(xùn)練前傳入模型的初始參數(shù),?表示Kronecker product。借此,公式(1)拓展到所有特征點(diǎn)和動(dòng)作上,可表示為S=ΓB ∈R3F×P,其中對(duì)應(yīng)Γ ∈R3F×3D。因此,從整個(gè)輸入的視頻序列角度考慮NRSfM 問(wèn)題時(shí),SfM 問(wèn)題可進(jìn)行相應(yīng)的轉(zhuǎn)化:。其中,roi(i=1,2,…,F)表示第i 幀對(duì)應(yīng)的旋轉(zhuǎn)矩陣。
圖2 為本文模型工作流程,下分支通過(guò)最小化投影誤差rploss進(jìn)行單目視覺(jué)的三維重建,上分支通過(guò)正則損失caloss正確地學(xué)習(xí)內(nèi)部形變并分解視點(diǎn)。
Fig.2 Workflow of model of this paper圖2 本文模型工作流程
對(duì)于形狀基B,本文使用一個(gè)單核卷積層學(xué)習(xí)獲得,之后即可通過(guò)對(duì)W 進(jìn)行分解,獲取必要的三維姿態(tài)和視覺(jué)參數(shù)。在該步驟中,本文使用一個(gè)深度神經(jīng)網(wǎng)絡(luò)F 替代傳統(tǒng)的因式分解,從而獲取對(duì)應(yīng)的視覺(jué)參數(shù)θ 和姿態(tài)參數(shù)α:
其中,參數(shù)v 是一個(gè)二值向量,用于表示該點(diǎn)是否被遮擋,取值為(0,1)。若該點(diǎn)被遮擋,則將對(duì)應(yīng)的v 以及該點(diǎn)對(duì)應(yīng)的空間坐標(biāo)均置為0。該網(wǎng)絡(luò)主要輸出的元素為姿態(tài)參數(shù)α 以及3個(gè)參數(shù)θ,該參數(shù)主要用于ro計(jì)算,ro(θ)=ΛR(θ)。其中,R(θ)=expm[.]×,expm 為矩陣指數(shù),[.]×為hat 算子。本文考慮使用重投影誤差作為該模型的損失函數(shù),具體表達(dá)式如下:
對(duì)于NRSfM 問(wèn)題而言,如何正確分解視角參數(shù)θ 和姿態(tài)參數(shù)α 是非常重要的。因此,為了使深度神經(jīng)網(wǎng)絡(luò)F 具有良好表現(xiàn),本文加入正則化網(wǎng)絡(luò)ε。對(duì)于網(wǎng)絡(luò)ε,本文選擇與C3DPO 一樣的損失函數(shù)進(jìn)行訓(xùn)練:
本文采用的網(wǎng)絡(luò)架構(gòu)如圖3 所示,選擇iResNet 為backbone,每一個(gè)網(wǎng)絡(luò)都由Start、Middle、End 3 層基本網(wǎng)絡(luò)塊組成,其中,因式分解網(wǎng)絡(luò)由1 個(gè)Start Block、2 個(gè)Middle Block 和1 個(gè)End Block 組成,正則化網(wǎng)絡(luò)由1 個(gè)Start Block、4 個(gè)Middle Block 和1 個(gè)End Block 組成。Mish 激活函數(shù)表達(dá)式為:Mish=x*tanh(ln(1+ex))。
Fig.3 Architecture of neural network in this paper圖3 本文模型神經(jīng)網(wǎng)絡(luò)架構(gòu)
H36M[29]:使用MoCap 系統(tǒng)獲取的三維真實(shí)坐標(biāo)進(jìn)行標(biāo)注,是目前最大的人體三維運(yùn)動(dòng)數(shù)據(jù)集。該數(shù)據(jù)集本身存在兩種不同形式,第一種是用于訓(xùn)練與測(cè)試的二維真實(shí)觀測(cè)點(diǎn),另一種則是使用了Stacked Hourglass Network 檢測(cè)網(wǎng)絡(luò)得到的二維關(guān)鍵點(diǎn)。將數(shù)據(jù)劃分為訓(xùn)練集和測(cè)試集兩部分,選擇5 個(gè)項(xiàng)目(S1、S5、S6、S7、S8)的數(shù)據(jù)進(jìn)行訓(xùn)練,以及2 個(gè)項(xiàng)目(S9、S11)的數(shù)據(jù)進(jìn)行測(cè)試,其中訓(xùn)練集共31 萬(wàn)幀,測(cè)試集共10 萬(wàn)幀。本文采用的性能評(píng)估方案為17 個(gè)關(guān)鍵節(jié)點(diǎn)每個(gè)位置誤差的絕對(duì)平均值(Mean Per Joint Posi?tion Error,MPJPE)。
S-Up3D:即大型稠密的無(wú)噪聲數(shù)據(jù)集Synthetic Unite the People 3D(S-Up3D),該數(shù)據(jù)集是由6 890 個(gè)頂點(diǎn)的SMPL(A Skinned Multi-Person Linear Model)形態(tài)模型通過(guò)正交投影得到的。與C3DPO 類似,本文將數(shù)據(jù)集分割為訓(xùn)練集和測(cè)試集,其中訓(xùn)練集共有171 090 幀數(shù)據(jù),測(cè)試數(shù)據(jù)集共有15 000 幀數(shù)據(jù)。將SMPL 模型中的79 個(gè)對(duì)應(yīng)特征點(diǎn)位置作為評(píng)估標(biāo)準(zhǔn),計(jì)算對(duì)應(yīng)的MPJPE,以衡量模型重建效果。
Pascal3D+:該數(shù)據(jù)集由PASCAL_VOC 圖像與ImageNet圖像組成[30],其使用了12 個(gè)具有稀疏關(guān)鍵點(diǎn)注釋的剛性對(duì)象序列,每個(gè)序列最多與10 個(gè)CAD 模型關(guān)聯(lián)。為確保2D關(guān)鍵點(diǎn)與3D GT 之間的一致性,使用正交投影對(duì)齊CAD 模型。此外,本文也使用通過(guò)HRNet[31]進(jìn)行關(guān)鍵點(diǎn)檢測(cè)后獲得的2D 關(guān)鍵點(diǎn)作為二維坐標(biāo),傳入模型中進(jìn)行三維重建。
MPJPE:表示每個(gè)關(guān)節(jié)位置誤差的絕對(duì)平均值。計(jì)算公式為:
其中,Sp∈R3表示第p 個(gè)特征點(diǎn)重建后的三維坐標(biāo)表示第p 個(gè)特征點(diǎn)對(duì)應(yīng)的真實(shí)三維坐標(biāo)。
在實(shí)驗(yàn)環(huán)境方面,本文主要使用PyTorch 搭建神經(jīng)網(wǎng)絡(luò),硬件配置如下:CPU 為Inter i7,內(nèi)存為8G,顯卡為RTX2060,操作系統(tǒng)為Ubuntu。
本文在H36M 數(shù)據(jù)集上訓(xùn)練了兩個(gè)模型,一個(gè)是正則化網(wǎng)絡(luò)和因式分解網(wǎng)絡(luò)協(xié)同訓(xùn)練的最佳模型,另一個(gè)是僅通過(guò)因式分解網(wǎng)絡(luò)訓(xùn)練后的最佳模型,并從H36M 數(shù)據(jù)集中的S9、Direction 序列中隨機(jī)選擇一幀特征點(diǎn)對(duì)應(yīng)的二維坐標(biāo)傳入到兩個(gè)模型中進(jìn)行三維重建,重建效果如圖4 所示。其中,第一行為H36M 數(shù)據(jù)集的真實(shí)三維坐標(biāo)可視化圖,中間部分為H36M 數(shù)據(jù)集在網(wǎng)絡(luò)ε協(xié)同訓(xùn)練下獲得最佳模型的三維重建效果可視圖,最后一行為H36M 數(shù)據(jù)集在沒(méi)有網(wǎng)絡(luò)ε協(xié)同訓(xùn)練下獲得最佳模型的三維重建效果可視圖。
Fig.4 Reconstruction effect of the two models on the same set of experimental two-dimensional data points圖4 兩個(gè)模型在同一組實(shí)驗(yàn)二維數(shù)據(jù)點(diǎn)上的重建效果
從圖4 中可以明顯看到,僅使用因式分解網(wǎng)絡(luò)無(wú)法很好地學(xué)習(xí)到內(nèi)部形變,導(dǎo)致重建效果不理想,無(wú)法捕捉到動(dòng)態(tài)變化。而加入正則化網(wǎng)絡(luò)后,模型重建效果得到了很大提升,可以較好地對(duì)一些形變進(jìn)行恢復(fù)。
同時(shí),為對(duì)比所使用的優(yōu)化器效果,分別使用Ranger和SGD 兩種優(yōu)化器在Pascal3D 數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn),得到訓(xùn)練40 次epoch 時(shí)的re-projection loss 下降曲線。其中,每一個(gè)誤差都為當(dāng)前epoch 訓(xùn)練與驗(yàn)證的平均誤差。圖5 表示在Pascal3D 數(shù)據(jù)集上,優(yōu)化器SGD 與Ranger 分別在train 階段和test 階段的re-porjection loss 下降曲線(彩圖掃OSID 碼可見(jiàn))。
Fig.5 Training effect of SGD and Ranger on Pascal3D+dataset圖5 SGD 與Ranger 在Pascal3D+數(shù)據(jù)集上訓(xùn)練效果
從圖5 中可以看到,在同樣的網(wǎng)絡(luò)架構(gòu)中,從Pascal3D數(shù)據(jù)集的訓(xùn)練效果來(lái)看,Ranger 的表現(xiàn)優(yōu)于SGD。由于Ranger 是RAdam 與LookAhead 結(jié)合而成的,因此Ranger 優(yōu)化器既具有RAdam 扎實(shí)的訓(xùn)練初期,又具有LookAhead 在整個(gè)訓(xùn)練期間非常優(yōu)秀的向最優(yōu)值探索能力。
本章將本文模型與一些現(xiàn)有的baseline 及優(yōu)秀的無(wú)監(jiān)督學(xué)習(xí)模型進(jìn)行對(duì)比。C3DPO 的實(shí)際重建效果優(yōu)于其文獻(xiàn)[18]中的展示。C3DPO 屬于開(kāi)源項(xiàng)目,因此本文對(duì)模型重新進(jìn)行訓(xùn)練,并對(duì)訓(xùn)練得到的最佳效果進(jìn)行記錄。在本文模型的訓(xùn)練中,各個(gè)數(shù)據(jù)集都設(shè)置初始學(xué)習(xí)率lr 為0.001,權(quán)重衰減為0.0005,batch_size為256。參考文獻(xiàn)[18]除H36M和H36M_Hourglass外,其余數(shù)據(jù)集都使用了一個(gè)相機(jī)轉(zhuǎn)換層,該層只有一個(gè)1×1的卷積核。
針對(duì)H36M 數(shù)據(jù)集,本文整理了S9、S11數(shù)據(jù)集中的所有運(yùn)動(dòng)序列,并與C3DPO、PoseGAN[20]的重建效果進(jìn)行對(duì)比,如表1、表2 所示(加黑的數(shù)據(jù)代表重建效果更佳)。在PoseGAN 部分,本文直接引用了文獻(xiàn)[18]中的記錄。
從表1、表2 可以很清晰地看到,本文模型在H36M 和H36M_Hourglass 數(shù)據(jù)集中都表現(xiàn)更佳。模型很好地學(xué)習(xí)到二維坐標(biāo)與三維姿態(tài)之間的映射關(guān)系,可以比較穩(wěn)定地對(duì)特征點(diǎn)進(jìn)行三維姿態(tài)重建。
針對(duì)Up3D 數(shù)據(jù)集,為更好地體現(xiàn)本文模型效果,在該數(shù)據(jù)集中加入了兩個(gè)比較優(yōu)秀的baseline:GbNrSfM[12]、EM-SfM[32],其對(duì)應(yīng)實(shí)驗(yàn)數(shù)據(jù)使用了文獻(xiàn)[18]給出的數(shù)據(jù),重建效果對(duì)比如表3 所示(加黑的數(shù)據(jù)代表重建效果更佳)。
Table 1 Comparison of model in this paper with C3DPO(MPJPE)表1 本文模型與C3DPO 誤差對(duì)比(MPJPE)
Table 2 Comparison of reconstruction effect in the H36M dataset表2 H36M 數(shù)據(jù)集上重建效果對(duì)比
Table 3 Comparison of reconstruction effect in the S-Up3D dataset表3 S-Up3D 數(shù)據(jù)集中重建效果對(duì)比
由于該數(shù)據(jù)集本身是無(wú)噪聲影響的,因此模型對(duì)該數(shù)據(jù)集學(xué)習(xí)的效果都比較理想,但相比之下,本文訓(xùn)練出的最佳模型可得到更好的重建效果。
針對(duì)Pascal3D+數(shù)據(jù)集,在剛體場(chǎng)景中,本文選擇Gb?NrSfM[29]、EM-SfM[33]及C3DPO 進(jìn)行對(duì)比。GbNrSfM、EMSfM 的實(shí)驗(yàn)結(jié)果來(lái)自于文獻(xiàn)[2],重建效果對(duì)比如表4 所示(加黑數(shù)據(jù)代表重建效果更佳)。
Table 4 Comparison of reconstruction results in the Pascal3D+dataset表4 Pascal3D+數(shù)據(jù)集中重建效果對(duì)比
從表4 中可以看到,無(wú)論是通過(guò)GT 還是HRNet 獲取的檢測(cè)坐標(biāo)點(diǎn),利用本文提出的框架及學(xué)習(xí)方式得到的最佳模型都表現(xiàn)更好。
最后,將本文框架與C3DPO 進(jìn)行總結(jié)對(duì)比,對(duì)比結(jié)果如表5 所示。其中,best_model 列為模型在對(duì)應(yīng)數(shù)據(jù)集訓(xùn)練過(guò)程中得到最佳模型所使用的Epoch(由于暫時(shí)對(duì)C3DPO在Pascal3D+和Up3D 數(shù)據(jù)集中的實(shí)驗(yàn)效果無(wú)法復(fù)現(xiàn),因此在這兩個(gè)數(shù)據(jù)集中,best_model 部分顯示為“——”)。
Table 5 Comparison between C3DPO and model in this paper表5 C3DPO 與本文模型對(duì)比
從表5 中可以看到,本文模型在訓(xùn)練時(shí)可更快速地朝最優(yōu)方向前進(jìn),并且在保證學(xué)習(xí)效率和速度的前提下,獲得更好的重建效果。
本文為神經(jīng)網(wǎng)絡(luò)在NRSfM 問(wèn)題上的應(yīng)用。模型使用Ranger 優(yōu)化器替換SGD 進(jìn)行網(wǎng)絡(luò)訓(xùn)練,并結(jié)合優(yōu)化器性能,使用iResNet 為backbone 搭建因式分解網(wǎng)絡(luò)和正則化網(wǎng)絡(luò),使模型重建效果更佳。本文不僅使用了真實(shí)坐標(biāo)進(jìn)行訓(xùn)練,而且加入了特征點(diǎn)檢測(cè)(Pascal3D+HRNet,H36M +Hourglass),采用端到端的形式,無(wú)需任何標(biāo)注數(shù)據(jù),即可根據(jù)2D 圖像進(jìn)行三維重建。未來(lái),2D 人體姿態(tài)估計(jì)算法作為三維重建的預(yù)處理操作,會(huì)成為無(wú)監(jiān)督三維重建方向主要研究課題。因此,接下來(lái)將更深入地探索深度學(xué)習(xí)在NRSfM 問(wèn)題中的應(yīng)用。