蘇亞婷,劉翠響
(河北工業(yè)大學(xué) 電子信息工程學(xué)院,天津 300401)
三維人體重建是計(jì)算機(jī)視覺和計(jì)算機(jī)圖形學(xué)的研究熱點(diǎn)之一,在虛擬試衣、人機(jī)交互、沉浸式攝影等諸多領(lǐng)域有著重要的應(yīng)用前景。它主要利用如攝像機(jī)、掃描儀、深度相機(jī)等硬件設(shè)備采集人體信息,通過相關(guān)模型處理后,在三維空間中恢復(fù)出人體的姿態(tài)和形態(tài)。該技術(shù)能夠?qū)⒄鎸?shí)世界中存在的人體以數(shù)字化的方式在計(jì)算機(jī)中呈現(xiàn)[1]。
早期的人體重建主要采用掃描儀等大型設(shè)備掃描人體來獲得相關(guān)信息后重建人體,但是由于掃描儀體積較大、結(jié)構(gòu)復(fù)雜,并未得到推廣。多人線性蒙皮(Skinned Multi-Person Linear model,SMPL)模型[2]的出現(xiàn)有效解決此問題,僅需輸入模型參數(shù)就可以得到重建結(jié)果,受到了研究者們一致好評。但是從二維圖像中學(xué)習(xí)SMPL 參數(shù)是高度非線性的,這也就導(dǎo)致無法捕捉到足夠的空間線索來擬合SMPL;而SMPL 并未對頭部關(guān)節(jié)點(diǎn)進(jìn)行定義,致使重建結(jié)果可能出現(xiàn)頭部姿態(tài)翻轉(zhuǎn)的問題。
針對上述問題,本文提出一種基于高分辨率網(wǎng)絡(luò)(High-Resolution Net,HRNet)[3]和圖卷積網(wǎng)絡(luò)(Graph Convolutional Network,GCN)的三維人體重建模型,該模型包括特征提取模塊和圖卷積模塊。特征提取模塊是由HRNet 和殘差塊[4]組成,目標(biāo)是從二維圖像中獲得語義豐富且空間準(zhǔn)確的特征信息;圖卷積模塊則利用圖卷積算法來捕獲特征之間隱式的空間線索,從而獲得更加精確的空間信息來擬合SMPL。本文模型還參考了文獻(xiàn)[5]對SMPL 關(guān)節(jié)重新進(jìn)行定義,增加頭部關(guān)節(jié)點(diǎn),以解決頭部姿態(tài)翻轉(zhuǎn)的問題。
本文的主要工作如下:
1)提出一種三維人體重建模型,該模型采用HRNet 和殘差塊作為特征提取模塊,通過其獨(dú)特的并行多分辨率卷積和重復(fù)多尺度融合模型結(jié)構(gòu),使獲取特征的語義信息更加豐富。
2)采用圖卷積對特征信息進(jìn)行顯式編碼,有效避免了特征之間隱式空間線索丟失的問題,獲得空間上更加精確的特征表示。
3)模型重新定義了SMPL 關(guān)節(jié),增加了頭部關(guān)節(jié)點(diǎn),有效解決頭部姿態(tài)翻轉(zhuǎn)的問題。
雖然三維人體重建在之前得到了很好的探索,但是從單視角圖像中估計(jì)三維人體的形狀依然是一個(gè)具有挑戰(zhàn)性的問題。
Anguelov 等[6]提出首個(gè)參數(shù)化人體模型——SCAPE(Shape Completion and Animation of People)。Guan 等[7]和B?lan 等[8]利用SCAPE 實(shí)現(xiàn)人體重建,但SCAPE 將姿態(tài)和形狀變形模型分開進(jìn)行訓(xùn)練,會導(dǎo)致重建結(jié)果肌肉變形異常。而SMPL[2]將姿態(tài)和形狀變形模型進(jìn)行聯(lián)合訓(xùn)練,有效解決了肌肉變形異常的問題,所以SMPL 得到更加廣泛的應(yīng)用。基于SMPL 的三維人體重建主要分為兩種:基于優(yōu)化[9-12]和基于深度學(xué)習(xí)[5,13-19]的重建模型。
Bobo 等[9]提出SMPLify 模型,該模型利用單目圖像作為輸入,以優(yōu)化的方式實(shí)現(xiàn)對人體三維骨架和表面的重建;Huang 等[10]對SMPLify 模型進(jìn)行擴(kuò)展,增加輪廓信息作為監(jiān)督信息,提升準(zhǔn)確性;Lassner 等[11]在人體表面放置91 個(gè)姿態(tài)估計(jì)器對重建的姿態(tài)和體形進(jìn)一步優(yōu)化,提高重建精度;Zanfir 等[12]采用前饋初始化和語義反饋以及附加約束對圖片中的人體的形狀進(jìn)行推理。這種模型雖然可以得到可靠的結(jié)果,但是會受到二維關(guān)節(jié)檢測質(zhì)量的限制,且高度復(fù)雜的優(yōu)化過程需要良好的初始化來達(dá)到最優(yōu)解。
Dibra 等[13]利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)從輪廓圖片中估計(jì)SMPL 參數(shù),實(shí)現(xiàn)骨架和體型的重建;Tan 等[14]設(shè)計(jì)了一種編碼-解碼的模型架構(gòu),采用輪廓信息作為監(jiān)督信息間接地預(yù)測瓶頸層的模型參數(shù);Tung等[15]在兩個(gè)連續(xù)的視頻幀上進(jìn)行操作,并通過整合光流、輪廓和二維關(guān)節(jié)損失來預(yù)測參數(shù);Kanazawa 等[16]提出一種端到端的人體網(wǎng)格恢復(fù)(Human Mesh Recovery,HMR)模型,通過最小化關(guān)節(jié)的重投影損失來直接從圖像像素中預(yù)測姿態(tài)和形狀的參數(shù);Kolotouros 等[17]采用神經(jīng)網(wǎng)絡(luò)預(yù)測SMPL 參數(shù),使用迭代優(yōu)化的方式使回歸得到人體模型更加匹配真實(shí)的人體;Zhang 等[18]提出一種雙分支結(jié)構(gòu),通過潛在特征監(jiān)督來訓(xùn)練端到端的回歸變量;Li 等[19]提出一種基于SMPLify的改進(jìn)的多視圖優(yōu)化模型,將SMPL 同時(shí)擬合到多視圖圖像;張亞鳳等[5]采用多特征點(diǎn)模式來實(shí)現(xiàn)參數(shù)的預(yù)測,通過優(yōu)化能量函數(shù)的方式來提升重建精度。但是這類模型只是利用CNN 從圖像特征中學(xué)習(xí)SMPL 參數(shù),缺乏了在擬合模型時(shí)所需的空間線索。
圖是一種非歐氏數(shù)據(jù),傳統(tǒng)的CNN 并不能很好地處理此類數(shù)據(jù),而GCN 可以學(xué)習(xí)這類數(shù)據(jù)之間的空間關(guān)系。人體關(guān)節(jié)和頂點(diǎn)坐標(biāo)可以看作是一種圖結(jié)構(gòu)數(shù)據(jù)。Kolotouros等[20]首次將GCN 應(yīng)用在人體重建領(lǐng)域,提出卷積網(wǎng)格回歸(Convolutional Mesh Regression,CMR)模型,該模型使用GCN回歸得到人體模型坐標(biāo)。Xie 等[21]則是采用掩膜圖像和5 個(gè)測量值作為輸入,同樣采用GCN 來回歸人體網(wǎng)格頂點(diǎn)。Zhang 等[22]在文獻(xiàn)[21]基礎(chǔ)上設(shè)計(jì)一種由粗到精的圖卷積網(wǎng)絡(luò),以此獲得更為詳細(xì)的人體模型;但是該類模型并未對頭部關(guān)節(jié)進(jìn)行定義。
模型整體結(jié)構(gòu)如圖1 所示,主要由特征提取模塊和圖卷積模塊兩部分組成。重建過程如下:
圖1 三維人體重建模型結(jié)構(gòu)Fig.1 Structure of three-dimensional human reconstruction
1)采用單目圖像作為輸入,使用特征提取模型即HRNet和殘差塊提取特征信息。
2)將SMPL 頂點(diǎn)與得到的特征進(jìn)行融合得到節(jié)點(diǎn)特征向量。
3)通過圖卷積模塊對得到的節(jié)點(diǎn)特征向量進(jìn)行更新得到具有豐富空間信息的姿態(tài)和形狀參數(shù)。
特征提取模塊由HRNet 和殘差塊兩部分組成,功能是從二維單目圖像中提取特征圖。不同于大多數(shù)現(xiàn)有的提取特征方法,HRNet 采用并行多分辨率卷積和重復(fù)多分辨率融合使特征信息在整個(gè)提取過程中保持高分辨率表示,所以通過HRNet 得到的特征不僅含有豐富的語義信息而且在空間表示上也更加精確。而殘差塊的結(jié)構(gòu)被證明是一種建立深層網(wǎng)絡(luò)的模型,可以有效避免梯度消失現(xiàn)象的發(fā)生,能夠更好地優(yōu)化訓(xùn)練結(jié)構(gòu)。
特征提取模塊的流程如圖2 所示,具體流程如下:首先將224×224×3 的特征圖輸入HRNet,輸出其中具有最高分辨率的特征圖,維度是56×56×32;然后經(jīng)過卷積核為1 ×1 的卷積層,將通道數(shù)變?yōu)?4;最后將其輸入4 個(gè)殘差塊中,其中殘差塊結(jié)構(gòu)與ResNet50 的Bottleneck 模塊結(jié)構(gòu)一致,包含3 個(gè)卷積層,卷積核分別是1×1、3×3、1×1,最終得到所需特征圖F。
圖2 特征提取模塊流程Fig.2 Flowchart of feature extraction module
圖卷積的出現(xiàn)對于處理非歐氏空間的數(shù)據(jù)可以提供一種新的思路,與傳統(tǒng)CNN 作用類似,都用于特征的提取。不同的是,GCN 精妙地設(shè)計(jì)了一種從圖結(jié)構(gòu)中提取特征的方法。本文利用圖卷積網(wǎng)絡(luò)捕獲特征圖內(nèi)在的空間線索來學(xué)習(xí)SMPL 參數(shù)。
圖卷積網(wǎng)絡(luò)的核心是利用其他節(jié)點(diǎn)的信息來推導(dǎo)該節(jié)點(diǎn)的信息。其運(yùn)算流程如下:假設(shè)輸入節(jié)點(diǎn)個(gè)數(shù)為N,其中每個(gè)節(jié)點(diǎn)特征維度為Q,將這些節(jié)點(diǎn)特征拼接起來構(gòu)成一組維度為N×Q的矩陣X,節(jié)點(diǎn)與節(jié)點(diǎn)之間的鄰接關(guān)系構(gòu)成一組N×N的矩陣A,將矩陣A和X作為輸入,就得到了層與層之間的傳播方式如式(1)所示:
本文的圖卷積模塊由5 個(gè)圖卷積塊組成,具體結(jié)構(gòu)如圖3 所示,其中GroupNorm 是群歸一化,它可以有效防止模型在訓(xùn)練時(shí)陷入極小值,無法收斂的問題。GrouphLinear 即CNN中的全連接層,而GroupConvolution 采用的是單層特征傳播模式,即式(1)中l(wèi)=0。
圖3 圖卷積模塊結(jié)構(gòu)Fig.3 Structure of graph convolution module
SMPL 是在三維人體掃描庫CAESAR[23]和FAUST[24]數(shù)據(jù)集上訓(xùn)練所得的,通過形狀參數(shù)β和姿態(tài)參數(shù)θ驅(qū)動的一種參數(shù)化人體模型。該模型具有6 890 個(gè)頂點(diǎn)和24 個(gè)關(guān)節(jié)點(diǎn),但是這24 個(gè)關(guān)節(jié)點(diǎn)并未包含頭部關(guān)節(jié)點(diǎn),故重建結(jié)果極有可能出現(xiàn)頭部姿態(tài)翻轉(zhuǎn)的問題。所以本文對SMPL 關(guān)節(jié)重新進(jìn)行定義,增加了眼睛、耳朵和鼻子等關(guān)節(jié)點(diǎn)對頭部姿態(tài)進(jìn)行控制。SMPL 關(guān)節(jié)點(diǎn)更新前后對比如圖4 所示。
圖4 SMPL關(guān)節(jié)對比Fig.4 Comparison of SMPL joints
3.1.1 實(shí)驗(yàn)數(shù)據(jù)集
本文采用兩個(gè)3D 數(shù)據(jù)集PW3D[25]和UP3D[11]和三個(gè)2D數(shù)據(jù)集MSCOCO[26]、MPII[27]和LSP[28]作為訓(xùn)練數(shù)據(jù)集,使用LSP 和MPI-INF-3DHP[29]作為測試數(shù)據(jù)集。
PW3D 是第一個(gè)具有準(zhǔn)確3D 姿態(tài)的野外數(shù)據(jù)集,包含60 個(gè)具有豐富戶外運(yùn)動的視頻序列(其中24 個(gè)用于訓(xùn)練、24個(gè)用于測試、12 個(gè)用于驗(yàn)證)。它提供精準(zhǔn)的3D 和2D 姿態(tài)注釋。
UP3D 是應(yīng)用SMPLify[9]對收集的圖片進(jìn)行處理從而得到3D 姿態(tài)注釋的數(shù)據(jù)集。它包含8 515 張圖片,其中7 126張用于訓(xùn)練,1 389 張用于測試。
MSCOCO 是一個(gè)大型數(shù)據(jù)集,包含物體檢測、關(guān)鍵點(diǎn)檢測、實(shí)例分割、全景分割和圖片標(biāo)注等5 種類型的標(biāo)注。
MPII 是人體姿態(tài)估計(jì)的基礎(chǔ)數(shù)據(jù)集,其中包含40 000 張圖片,有25 000 張圖片具有標(biāo)注信息。
LSP 是一個(gè)體育姿勢數(shù)據(jù)集,包含競技、羽毛球、棒球、體操、跑酷、足球等多種運(yùn)動模式,其中有2 000 張具有標(biāo)注信息。
MPI-INF-3DHP 是一種3D 人體姿態(tài)數(shù)據(jù)集,包含多種不同的人體姿態(tài),準(zhǔn)確記錄了室內(nèi)室外8 個(gè)演員的姿態(tài)變化,其測試數(shù)據(jù)集具有6 個(gè)視頻幀TS1~TS6。
3.1.2 評價(jià)指標(biāo)
為了評價(jià)模型的性能,本文分別采用2D 和3D 數(shù)據(jù)集對模型進(jìn)行實(shí)驗(yàn)分析。其中2維數(shù)據(jù)的評價(jià)指標(biāo)采用的是F1分?jǐn)?shù)和準(zhǔn)確率(Accuracy),3維數(shù)據(jù)的評價(jià)指標(biāo)是平均關(guān)節(jié)位置誤差(Mean Per Joint Position Error,MPJPE)以及重建誤差。
F1 分?jǐn)?shù)被定義為模型精確率和召回率的調(diào)和平均數(shù),其計(jì)算公式如式(2)所示:
其中:TP為判斷正確的正樣本,在本文中為模型重投影圖中前景落在數(shù)據(jù)集標(biāo)定前景中的像素點(diǎn)個(gè)數(shù);TN為判斷正確的負(fù)樣本,投影圖中背景正確落在標(biāo)記背景中的像素點(diǎn)個(gè)數(shù);FN為判錯的正樣本,投影圖中的前景落在標(biāo)記背景的像素點(diǎn)個(gè)數(shù);FP為判錯的負(fù)樣本,背景落在標(biāo)記前景中的像素點(diǎn)個(gè)數(shù)。
準(zhǔn)確率即預(yù)測正確的結(jié)果占總樣本的百分比。計(jì)算公式如下:
平均關(guān)節(jié)位置誤差(MPJPE)指的是預(yù)測三維關(guān)節(jié)點(diǎn)與對應(yīng)的真實(shí)關(guān)節(jié)點(diǎn)的L2距離的平均值。計(jì)算公式如下:
重建誤差的計(jì)算公式如式(5)所示:
其中:是經(jīng)過相似性變換得到的預(yù)測三維關(guān)節(jié)點(diǎn)坐標(biāo)。
3.1.3 損失函數(shù)
本文的損失函數(shù)主要包含預(yù)測和真實(shí)形狀之間對應(yīng)的每個(gè)頂點(diǎn)損失、預(yù)測得到的三維坐標(biāo)和二維坐標(biāo)損失以及SMPL 形狀和姿態(tài)參數(shù)損失3 部分,整體的損失函數(shù)如式(6)所示:
其中:Lshape為人體網(wǎng)格頂點(diǎn)坐標(biāo)損失,L3D和L2D為關(guān)節(jié)點(diǎn)損失,三者定義如式(7)~(9)所示:
而Lθ和Lβ的定義如式(10)(11)所示:
其中:θ和β分別表示真實(shí)姿態(tài)參數(shù)和形狀參數(shù):和則表示預(yù)測得到的姿態(tài)參數(shù)和形狀參數(shù)。
為了驗(yàn)證本文模型的普適性與準(zhǔn)確性以及評估三維姿態(tài)與形狀,分別在2D 數(shù)據(jù)集LSP 和3D 數(shù)據(jù)集MPI-INF-3DHP上進(jìn)行實(shí)驗(yàn)。測試實(shí)驗(yàn)在CPU 環(huán)境下進(jìn)行測試,采用VMware15.1 虛擬機(jī)搭建的Ubuntu 18.04 操作系統(tǒng),內(nèi)存為2.00 GB。測試中必要的依賴包及版本號為:OpenDR 0.78,Chumpy 0.69,opencv-python 3.4.4.19 以 及 MeshLab 2021.05。
3.2.1 LSP數(shù)據(jù)集實(shí)驗(yàn)結(jié)果分析
本文從LSP 數(shù)據(jù)集中選取不同的運(yùn)動姿態(tài)圖片進(jìn)行實(shí)驗(yàn),并與其他先進(jìn)模型如SMPLify[9]、HMR[16]、CMR[20]等模型進(jìn)行對比,重建結(jié)果如圖5 所示。
圖5 LSP數(shù)據(jù)集上的重建效果對比Fig.5 Comparison of reconstruction effect on LSP dataset
由圖5 可以看出,SMPLify 重建后的人體在不同程度上出現(xiàn)了姿態(tài)翻轉(zhuǎn)的問題,甚至出現(xiàn)了人體整個(gè)翻轉(zhuǎn)的情況;HMR 雖然在頭部姿態(tài)做出了處理,但是對于四肢的重建并未取得很好的效果;CMR 模型在一定程度上可以改善肢體的重建精度,但是對于頭部姿態(tài)來說并未得到很好的處理;而本文模型在人體正對、側(cè)對以及背對鏡頭時(shí)都可以很好地確定關(guān)節(jié)位置,有效地避免朝向錯誤,而且該模型還可以精準(zhǔn)地捕獲頭部姿態(tài),使得重建的人體更加貼合真實(shí)的人體形態(tài)。
為了對本文模型進(jìn)行更加直觀的評價(jià),采用F1 分?jǐn)?shù)和準(zhǔn)確率兩個(gè)評價(jià)指標(biāo)對模型進(jìn)行隱式的評估,如表1 所示。實(shí)驗(yàn)結(jié)果表明本文模型在F1 分?jǐn)?shù)和準(zhǔn)確率上均優(yōu)于其他模型,表明本文模型能更加準(zhǔn)確地?cái)M合人體體型。
表1 重建性能比較 單位:%Tab.1 Reconstruction performance comparison unit:%
3.2.2 MPI-INF-3DH數(shù)據(jù)集實(shí)驗(yàn)結(jié)果分析
本文從MPI-INF-3DHP 數(shù)據(jù)集的TS1 到TS6 視頻幀中選取圖片進(jìn)行實(shí)驗(yàn)對比。測試結(jié)果如圖6 所示,可以看出當(dāng)人體側(cè)向站立時(shí),SMPLify 容易出現(xiàn)姿態(tài)翻轉(zhuǎn)的情況;HMR 和CMR 在頭部姿態(tài)的處理上不夠精確,導(dǎo)致頭部朝向出現(xiàn)誤差;本文模型不僅能夠保證對關(guān)節(jié)點(diǎn)的準(zhǔn)確定位,而且對于頭部姿態(tài)的處理也更加細(xì)致,從而使得得到的人體更加貼合真實(shí)的人體。
圖6 MPI-INF-3DHP數(shù)據(jù)集上的重建效果對比Fig.6 Comparison of reconstruction effect on MPI-INF-3DHP dataset
為了進(jìn)一步證明有效性,本文計(jì)算了MPJPE 以及重建誤差,來驗(yàn)證本文模型的性能。結(jié)果如表2 和表3 所示,可以看出本文模型在不同數(shù)據(jù)集序列上都優(yōu)于其他模型,誤差都明顯地降低,其中重建誤差在TS1 序列上的值降低至50 mm 以下,實(shí)驗(yàn)表明本文模型能夠更好地適應(yīng)不同的姿態(tài)變化并且更加準(zhǔn)確地重建出人體模型。
表2 MPJPE誤差結(jié)果 單位:mmTab.2 MPJPE error results unit:mm
表3 重建誤差結(jié)果 單位:mmTab.3 Reconstruction error results unit:mm
本文采用MPI-INF-3DHP 數(shù)據(jù)集進(jìn)行消融實(shí)驗(yàn),分別從TS1~TS6 選取部分?jǐn)?shù)據(jù)集來對模型參數(shù)進(jìn)行分析。首先對圖卷積的層數(shù)N進(jìn)行了消融實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表4 所示,當(dāng)N=0 時(shí),模型等同于一個(gè)簡單的基線模型,相當(dāng)于直接采用圖片特征來估計(jì)三維人體模型,但是并未取得很好的結(jié)果。通過引入GCN,觀察到所有指標(biāo)的性能隨著GCN 層數(shù)的增加有顯著的提升,當(dāng)N=5 時(shí)重建誤差達(dá)到55.61 mm,關(guān)節(jié)平均誤差為88.60 mm,進(jìn)一步證明該模型的有效性。
表4 MPI-INF-3DPH數(shù)據(jù)集上的消融實(shí)驗(yàn)Tab.4 Ablation experiment on MPI-INF-3DPH dataset
其次,為了驗(yàn)證頭部關(guān)節(jié)對于重建誤差的影響,本文采取MPI-INF-3DHP 數(shù)據(jù)集的3 個(gè)視頻幀(TS2、TS4 和TS6)的部分圖片進(jìn)行實(shí)驗(yàn),結(jié)果如表5 所示,可以看出增加頭部姿態(tài)約束后重建誤差有不同程度的降低,側(cè)面證實(shí)頭部姿態(tài)約束的必要性。
表5 頭部關(guān)節(jié)對重建誤差的影響 單位:mmTab.5 Influence of head joints on reconstruction error unit:mm
本文以SMPL 為基礎(chǔ),提出了一種基于HRNet 和GCN 的三維人體重建模型。該模型利用HRNet 和殘差塊來提取語義豐富和空間準(zhǔn)確的特征圖,并利用GCN 來捕獲特征之間隱式的空間信息,以獲得更為準(zhǔn)確的模型參數(shù)。而且模型還對SMPL 的關(guān)節(jié)重新進(jìn)行了定義,增強(qiáng)了對頭部姿態(tài)的控制,有效地避免姿態(tài)翻轉(zhuǎn)問題的發(fā)生。實(shí)驗(yàn)結(jié)果表明,該模型相較于SMPLify、HMR 和CMR 模型來說效果更好,能夠產(chǎn)生精確的人體模型,獲得更好的重建結(jié)果。但是本文僅僅對人體進(jìn)行了重建,并未對臉部和手部的細(xì)節(jié)姿態(tài)進(jìn)行重建,因此下一步工作將會在該模型的基礎(chǔ)上增加對臉部和手部姿態(tài)的表達(dá)。