陳佳宇,鐘躍崎,2,余志才
(1.東華大學 紡織學院,上海 201620; 2.東華大學 紡織面料技術教育部重點實驗室,上海 201620)
三維人體模型重建在紡織服裝領域服裝合身性評價、三維服裝設計以及虛擬試衣等方面均有著至關重要的作用[1-2]。三維人體模型重建技術可以分為2種方法,一是三維掃描模式,通過激光測距,結(jié)構(gòu)光柵反演以及飛行時間(Time of Fly,TOF)等直接計算出人體表面的三維點云坐標[3];二是通過單張或者多張照片,利用數(shù)據(jù)驅(qū)動或機器學習,重現(xiàn)二維圖像空間與三維人體模型表面點云數(shù)據(jù)間的映射關系,從而恢復出三維人體模型點云數(shù)據(jù)。
早期關于三維人體模型重建的研究主要實現(xiàn)了幾何意義上的粗略近似[4-5]。而人體統(tǒng)計模型的出現(xiàn)使得人們可以輸入單張或多張圖像以得到更為精確的三維人體模型[6-8]。如Endri等[9]最先利用神經(jīng)網(wǎng)絡訓練了一個從圖像到三維人體模型形狀參數(shù)的全局映射,從而再利用人體形狀參數(shù)重建三維人體模型;之后又提出了一種新的方法,利用多視圖輸入與熱核簽名(Heat Kernel Signature,HKS)實現(xiàn)了精度更高的三維人體模型的重建[10];2018年,JI[11]提出了一種雙分支的神經(jīng)網(wǎng)絡,通過分別訓練不同視圖來共同預測人體的三維模型。這類重建方法的人體精度較高。
在建立映射方面,卷積神經(jīng)網(wǎng)絡是一種非常有效的特征提取方法。自30年前被提出至今,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, CNN)極大地促進了計算機視覺領域的快速發(fā)展。在三維領域,CNN處理分類及識別等相關任務的一種重要方法是提取三維數(shù)據(jù)的低維形狀描述子并用于形狀的匹配、分類或檢索。DIBRA E等[10]將HKS作為特征描述子,將人體統(tǒng)計模型編碼為一個新的隱空間,通過訓練學習了一種從三維描述子空間到人體形狀空間的逆映射,并通過將其重新解碼完成了三維人體模型的重建。此外,文獻[10-11]還利用主成分分析(PCA)法,將人體統(tǒng)計模型通過PCA降維的方式進行重新編碼,得到了一系列PCA描述子,通過CNN提取了二維圖像的特征值并對其進行回歸預測,最終再對預測生成的PCA描述子進行逆映射完成了對三維人體模型的重建。
機器學習算法需要良好的人體統(tǒng)計模型作為訓練的基礎,因此人體統(tǒng)計模型也是人體三維重建的關鍵因素之一。人體統(tǒng)計模型是一種可以用低維參數(shù)來表示人體形狀與姿勢的表征方式。ANGUELOV等[6]基于不同的人體形狀和姿態(tài)學習三角變形從而建立了SCAPE數(shù)據(jù)庫,是一個可有少量參數(shù)驅(qū)動的參數(shù)化人體統(tǒng)計模型空間。之后,PISHCHULIN等[8]為降低數(shù)據(jù)的冗余度,同時統(tǒng)一人體掃描數(shù)據(jù)的拓撲形式,以現(xiàn)有最大商業(yè)人體掃描庫CAESAR中的三維人體模型為基礎,構(gòu)建了一個人體統(tǒng)計模型空間MPII Human Shape。
本文提出利用MPII Human Shape人體統(tǒng)計模型,通過PCA提取三維模型的低維形狀描述子,并以此作為人體模型在隱空間中降維后的低維編碼,然后構(gòu)建了一個以人體輪廓二值掩碼圖為輸入、對應的低維形狀描述子為輸出的雙分支回歸神經(jīng)網(wǎng)絡。本文的主要貢獻在于采用權值共享的方式來學習輸入輸出之間的映射,并最終對預測生成的形狀描述子進行解碼,完成了對人體的高精度重建。
本文采用的人體統(tǒng)計模型空間MPII Human Shape是基于現(xiàn)有最大的商業(yè)人體掃描庫CAESAR[12]構(gòu)建的,該數(shù)據(jù)集共有4 300個以標準姿勢站立的男、女人體模型,所有的人體模型已經(jīng)過姿勢校準以消除姿勢不同所帶來的誤差,每個人體模型共由6 449個數(shù)據(jù)點組成。
首先運用主成分分析法提取人體三維模型的低維形狀描述子,并對人體進行重建。重建得到的人體可用以下式表示:
本文構(gòu)建了一個可以以人體輪廓的二值掩碼圖像作為輸入重建三維人體模型的卷積神經(jīng)網(wǎng)絡(body reconstruction convolutional neural network,BRCNN),后文簡稱“BRCNN網(wǎng)絡”。BRCNN網(wǎng)絡的主要架構(gòu)是基于密集網(wǎng)絡(DenseNet)建立的,運用了多個卷積層、密集塊與轉(zhuǎn)換層來提取人體輪廓二值掩碼圖像的具體特征。重建三維人體模型卷積神經(jīng)網(wǎng)絡見圖1。
密集網(wǎng)絡是2017年HUANG等[13]提出了一種可以通過對前面所有層與后面層進行密集連接來實現(xiàn)特征重用的新型CNN深度網(wǎng)絡,其在圖像識別、目標檢測等計算機領域得到了非常好的表現(xiàn)。本文通過人體輪廓二值掩碼圖全面收集人體信息,因此,通過密集網(wǎng)絡中引入的密集塊構(gòu)建了一個深度網(wǎng)絡,可以將前面的網(wǎng)絡收集到的信息反饋到后面的網(wǎng)絡中。其中,每個密集網(wǎng)絡的每一層的輸入都是前面所有層輸出的并集,而該層所學習的特征圖也會被直接傳給其后面所有層作為輸入。這種網(wǎng)絡結(jié)構(gòu)減輕了梯度消失,加強了特征的傳遞,也在一定程度上減少了參數(shù)數(shù)量。
本文設計的BRCNN網(wǎng)絡擁有雙分支,通過對2個不同視角(正視圖與側(cè)視圖)的人體輪廓二值掩碼圖和人體輪廓草圖圖像來訓練網(wǎng)絡,使之可以從中提取到人體全局特征。這是因為三維建模領域通常用三視圖來對三維模型進行定義。換言之,三維模型在XYZ坐標空間內(nèi)的投影視圖蘊含了該模型的局部特征與全局特征。就人體建模而言,由于人體具有自遮擋性,其俯視圖包含的信息十分有限,因此可以通過人體正視圖與側(cè)視圖充分地表達人體的主要形狀。為了保護用戶的隱私,一個較為合理的輸入方式是僅使用二值化處理過的人體掩碼圖圖像作為BRCNN網(wǎng)絡的輸入。
圖1 重建三維人體模型卷積神經(jīng)網(wǎng)絡
對于人體輪廓二值掩碼圖像,由于訓練集與測試集均來自于已知的三維人體模型數(shù)據(jù)庫在正視圖和側(cè)視圖方面的三維渲染效果,因此直接關閉光照后,即可得到相應視圖的人體輪廓二值掩碼圖像,如圖2(a)(b)所示。而人體的輪廓草圖則是在提取人體統(tǒng)計模型的正視圖與側(cè)視圖之后,利用簡單的閾值變換法得到的。閾值變換法即設定一個閾值,將輸入圖像中亮度大于該閾值的像素都替換為白色(255),低于該閾值的像素都替換為黑色(0)。經(jīng)過多次實驗,當閾值200時,可以獲得合適的人體輪廓草圖。這里沒有采用自適應閾值的輪廓獲取方法原因是大量實驗表明深度卷積神經(jīng)網(wǎng)絡在圖像特征提取方面,對于背景噪聲的自適應能力較強,對有效信息的濃縮能力足以克服前述過程中的干擾信號。人體輪廓二值掩碼圖與人體輪廓草圖見圖2。
圖2 人體輪廓二值掩碼圖與人體輪廓草圖
考慮到人體的正視圖與側(cè)視圖之間的關聯(lián)性,BRCNN網(wǎng)絡的2個分支的參數(shù)是共享的,這使得每個分支訓練得到的局部描述子不再是相互獨立的。將2個相關聯(lián)的局部描述子相連,通過聯(lián)合訓練可以最終預測人體模型的形狀描述子。為了探索該方案的適用范圍,本文嘗試通過單張正視圖或側(cè)視圖來對人體進行三維重建,實驗結(jié)果詳見2.1。
根據(jù)本文的重建目標,將BRCNN網(wǎng)絡的損失函數(shù)定義如下:
式中:λ為投影矩陣;φ為預測生成的人體描述子;φs為PCA低維形狀描述子;N為人體模型表面頂點數(shù)目。
為了驗證所提出的人體重建網(wǎng)絡BRCNN的可行性,本文以不同的輸入進行了大量的實驗并對結(jié)果進行了對比分析,具體如表1所示。
表1 本文實驗內(nèi)容及說明
所有方法均在相同的數(shù)據(jù)集上進行訓練和測試。其中,訓練樣本集包含4 000個人體模型,測試樣本集包含300個人體模型。為了客觀地評估實驗重建得到的人體模型的精度,本文利用了均方根誤差(root mean squared error,RMSE)作為衡量指標。通過計算預測模型與原始模型差值期望的算術平方根,得到如圖2所示的結(jié)果。
式中:φ為預測生成的人體描述子;φs為PCA低維形狀描述子;N為人體模型表面頂點數(shù)目。
RMSE對誤差的異常值非常敏感,因此可以精準地評估各參與實驗的網(wǎng)絡的精度。其中,RMSE的值越小,說明預測模型的精度越高。同時,本文也利用RMSE對人體進行了偏差分析并得到了偏差分布圖,其可以直觀地觀察到人體重建細節(jié)。
本文實驗內(nèi)容說明見表1。各實驗總RMSE值與單樣本的RMSE值見圖3。
圖3 各實驗總RMSE值與單樣本的RMSE值
M-BRCNN-1 生成的三維人體模型及其偏差分析圖見圖4。M-BRCNN-1生成的模型圖4(b)與原始模型圖4(a)的形狀基本一致,其偏差分布圖如圖4(c)(d)所示。由偏差譜圖可知,越靠近淺色的顏色表示該部位的偏差更小,偏差的單位為mm。從正視圖4(c)可以發(fā)現(xiàn),由 M-BRCNN-1網(wǎng)絡生成的模型在膝蓋、胸部、襠部等部位有較大的偏差;而從背視圖4(d)則可以發(fā)現(xiàn)除了膝蓋以外,后肩、臀部等部位偏差也較大。由此可見,人體的正視圖因為只有人體的正面輪廓信息而缺少人體的深度信息,故以此為輸入重建三維人體模型時,雖然能生成與原始模型形狀基本一致的人體模型,但是在人體厚度方向上(即矢狀面上)若干較為重要的部分(如胸、膝蓋、臀部等)的偏差則相對較大。
M-BRCNN-2 生成的三維人體模型及其偏差分析圖見圖5。以人體側(cè)視圖的輪廓二值掩碼圖像作為單輸入通過M-BRCNN-2也可以生成人體的三維模型,且生成的人體模型圖5(b)與原始模型圖5(a)從直觀上看也并無明顯差異。但是從偏差分布圖圖5(c)(d)中可以看出,該模型較大的偏差主要分布在手臂、腿側(cè)等人體的輪廓邊緣。由于人體的側(cè)視圖包含人體的深度信息而人體的輪廓信息較少,因此與M-BRCNN-1生成的模型相比,該模型在胸、膝蓋、臀部等部位的偏差相對較小,手臂、腿側(cè)等人體的邊緣部位偏差則相對較大。
圖5 M-BRCNN-2 生成的三維人體模型及其偏差分析圖
M-BRCNN-3 生成的三維人體模型及其偏差分析圖見圖6。作為對比,M-BRCNN-3以人體正視圖與側(cè)視圖的輪廓二值掩碼圖像作為2個分支的輸入生成了人體,但該網(wǎng)絡的2個分支間的權重參數(shù)不共享。從偏差分布圖圖6(c)(d)可以看出,該模型的偏差分布較為均勻,主要分布在-4.405 8~4.405 7 mm之間,與M-BRCNN-1與M-BRCNN-2相比,偏差相對減小。
圖6 M-BRCNN-3 生成的三維人體模型及其偏差分析圖
以人體輪廓草圖為輸入生成的三維人體模型的偏差分析圖見圖7。以單視圖人體輪廓草圖與雙視圖人體輪廓草圖為輸入的C-BRCNN-1、C-BRCNN-2、C-BRCNN-3同樣證明了這一點??梢悦黠@的看到以雙視圖人體輪廓草圖為輸入的C-BRCNN-3生成的人體模型圖7(c)精度高于分別由主視圖人體輪廓草圖、側(cè)視圖人體輪廓草圖作為輸入的C-BRCNN-1與C-BRCNN-2生成的人體模型圖7(a)(b)。并且圖7(a)模型的主要偏差集中在人體膝蓋、胸、臀部等部位,而圖7(b)模型的主要偏差集種在人體的邊緣部位。
圖7 以人體輪廓草圖為輸入生成的三維人體模型的偏差分析圖
RMSE值(圖3)也客觀地支撐了從偏差分布圖得到的結(jié)論。從單樣本來看,M-BRCNN-3與C-BRCNN-3的RMSE為1.859 9 mm與2.248 2 mm,明顯小于M-BRCNN-1(2.929 4 mm)、M-BRCNN-2(2.001 4 mm)與C-BRCNN-1(2.513 0 mm)、C-BRCNN-2(2.999 1 mm)的RMSE值。而測試集生成的300個模型的平均RMSE值也同樣呈現(xiàn)出這樣的趨勢,M-BRCNN-3與C-BRCNN-3的總RMSE值為5.204 7 mm與5.635 2 mm,明顯小于M-BRCNN-1、M-BRCNN-2與C-BRCNN-1、C-BRCNN-2的總RMSE值。同時,也可以觀察到M-BRCNN-1與C-BRCNN-1的總偏差值為6.844 4 mm和6.955 7 mm,精度高于平均RMSE值為7.254 6 mm和7.414 9 mm的M-BRCNN-2與C-BRCNN-2。
以上結(jié)果說明以人體輪廓二值掩碼圖或者人體輪廓草圖的單視圖或雙視圖作為輸入,BRCNN都能生成近似的人體模型,且以雙視圖為輸入得到的人體模型精度高于以單視圖為輸入生成的人體模型,以主視圖為輸入得到的人體模型精度高于以側(cè)視圖為輸入得到的人體模型。
以人體輪廓二值掩碼雙視圖為輸入生成的三維人體模型及其偏差圖見圖8。前人利用2個權重不共享的深度網(wǎng)絡學習得到了不同視圖的描述子,隨后將這2個描述子連接以最終預測人體的低維形狀描述子并解碼進行三維人體模型的重建[3],認為權重不共享有利于2個深度網(wǎng)絡獨立地學習不同視圖的人體信息,從而得到針對每個視圖的具有代表性的特征描述子。這種方法著重于提取人體不同視圖的獨立特征卻忽略了視圖之間的相關性。本文在提取人體不同視圖特征的同時也考慮到了不同視圖之間的相關性,采用了權重共享機制。換言之,使得雙分支在梯度下降時所有參數(shù)矩陣保持同步更新。由表1可知,以人體雙視圖的輪廓二值掩碼圖為輸入的M-BRCNN-3與M-BRCNN-4分別采用了權重不共享與權重共享的機制。從M-BRCNN-3生成的人體模型的正反面誤差偏差圖圖8(c)(d)可以看出,該模型的主要偏差集中在-4.405 8~4.405 7 mm;而從M-BRCNN-4生成的人體模型的正反面誤差偏差圖圖8(e)、(f)可以看出偏差主要集中在-1.068 6~4.405 8 mm,偏差明顯變小。
圖8 以人體輪廓二值掩碼雙視圖為輸入生成的三維人體模型及其偏差分析圖
圖9 以人體輪廓草圖雙視圖為輸入生成的三維人體模型及其偏差分析圖
以人體輪廓草圖雙視圖為輸入生成的三維人體模型及其偏差分析圖見圖9。以人體雙視圖的人體輪廓草圖為輸入的C-BRCNN-3與C-BRCNN-4也證明了這一點。C-BRCNN-3生成模型的偏差在主要集中在-4.405 7~11.043 4 mm;而C-BRCNN-4生成模型的偏差主要集中在-4.405 7~4.405 7 mm,明顯減小。
綜上所述,當輸入為人體雙視圖的輪廓二值掩碼圖像時,權重共享的BRCNN所得人體模型精度比權重不共享的BRCNN提高了1.07%,而以人體輪廓草圖作為輸入時,權重共享比不共享架構(gòu),其三維人體模型重建精度提高了0.6%。換言之,雙分支的回歸卷積神經(jīng)網(wǎng)絡BRCNN分別提取了主視圖與側(cè)視圖所包含的體型特征,而權重共享機制則使得視圖之間的形狀相關性信息得以保留,從而使得重建的三維人體模型精度更高。
本文提出了一種可以從人體輪廓圖準確地估計三維人體模型形狀的方法,通過CNN建立了一個雙分支的回歸卷積神經(jīng)網(wǎng)絡且參數(shù)共享的回歸卷積神經(jīng)網(wǎng)絡,卷積神經(jīng)網(wǎng)絡在訓練后可學習到輸入人體輪廓圖像與由PCA得到的人體三維形狀描述子之間的一個全局映射,從而可以重建三維人體模型。在測試集上對該卷積神經(jīng)網(wǎng)絡進行評估后,證明該方法可通過人體輪廓二值掩碼圖快速精準地預測人體的三維形狀,并進一步證明了雙視角的預測結(jié)果優(yōu)于單視角的預測結(jié)果,權重共享網(wǎng)絡的預測結(jié)果優(yōu)于權重不共享網(wǎng)絡的結(jié)果。本文提出的三維人體模型重建的方法在紡織服裝領域有著至關重要的作用,可運用于虛擬試衣、遠程服裝定制、服裝合身性評價、三維服裝設計等方面。