国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SMPL模型的人體姿態(tài)估計(jì)

2021-11-17 03:12楊鏢鏢張皓若
計(jì)算機(jī)仿真 2021年3期
關(guān)鍵詞:人體模型坐標(biāo)系姿態(tài)

李 健,楊鏢鏢,張皓若

(陜西科技大學(xué)電子信息與人工智能學(xué)院,陜西 西安 710021)

1 引言

三維人體建模一直以來(lái)都是三維重建研究領(lǐng)域一個(gè)比較富有挑戰(zhàn)性且比較重要的部分,其本質(zhì)在于將現(xiàn)實(shí)世界中的人體以三維數(shù)字化的方式在計(jì)算機(jī)中存儲(chǔ)并表示。高質(zhì)量的人體三維模型在數(shù)字媒體創(chuàng)作、人體測(cè)量、虛擬試衣、游戲、三維動(dòng)畫、虛擬現(xiàn)實(shí)等領(lǐng)域有著廣闊的應(yīng)用前景。目前主流的三維人體建模方法主要分為以下三種:三維建模軟件建模,即利用3D Max、Sketch up、Maya等基于計(jì)算機(jī)圖形學(xué)原理開發(fā)的三維建模軟件來(lái)生成人體三維模型;大型3D激光掃描儀建模,即通過(guò)Artec、RIEGL VZ-1000 等大型掃描設(shè)備對(duì)物體表面投射激光點(diǎn)陣,不斷掃描并獲取其三維信息;基于計(jì)算機(jī)視覺的三維人體建模,即使用普通RGB相機(jī)或深度相機(jī)來(lái)進(jìn)行人體建模?;谟?jì)算機(jī)視覺人體的三維建??梢愿鶕?jù)兩個(gè)標(biāo)準(zhǔn)進(jìn)行分類:一是基于模型先驗(yàn),二是自由形式?;谀P拖闰?yàn)的方法是利用參數(shù)化的人體模型來(lái)進(jìn)行人體姿勢(shì)和形狀的估計(jì)[1]。隨著人體二維關(guān)鍵點(diǎn)檢測(cè)的進(jìn)步,從單個(gè)圖像直接對(duì)主要關(guān)節(jié)和粗略3D姿勢(shì)進(jìn)行3D估計(jì)方面也取得了進(jìn)展[2-3]。2016年,Bogo F等人提出利用多個(gè)人體先驗(yàn)從檢測(cè)到的14個(gè)二維關(guān)鍵點(diǎn)恢復(fù)線性模型參數(shù)[4]。然而,人體具有高度的復(fù)雜性和靈活性,從二維圖像中恢復(fù)三維人體姿勢(shì)和形態(tài)仍然具有很大的挑戰(zhàn)。利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)來(lái)回歸參數(shù)模型可以一定程度上解決這一問題。2018年,Kanazawa A 等人提出利用基于回歸的人體網(wǎng)格重構(gòu)(Hot Module Replacement,HMR)算法[5]恢復(fù)人體姿態(tài),但是其在自然圖像中的表現(xiàn)仍然有待提高。隨后,Alldieck T等人提出一種利用單目視頻結(jié)合人體線性模型進(jìn)行人體動(dòng)態(tài)重建的方法,該方法可以將人體線性模型投影到人體輪廓當(dāng)中,但是需要特定動(dòng)作配合[6]。基于模型先驗(yàn)的方法可以適應(yīng)更復(fù)雜的人體姿態(tài),只需要少量的數(shù)據(jù)就可以獲得粗略的模型,雖然模型缺乏準(zhǔn)確性,但效率更高,也更簡(jiǎn)便。因此,基于模型先驗(yàn)的方法更適用于精度較低但效率較高的環(huán)境下。在基于自由形式的方法下,2016年Innmann M提出實(shí)時(shí)重建非剛性體[7],然而需要輸入高質(zhì)量的多視圖,這就限制了實(shí)際應(yīng)用時(shí)的使用環(huán)境。2017年,Zhu H等人提出利用RGB視頻對(duì)室外環(huán)境中穿著衣服的人體進(jìn)行重建[8],但是該方法要求人體長(zhǎng)時(shí)間靜止不動(dòng),使用范圍受限。綜上,現(xiàn)階段基于自由形式的人體建模的方法的研究,對(duì)采集設(shè)備或者人體姿態(tài)要求較為苛刻,且模型內(nèi)部沒有裝配動(dòng)畫骨架。因此,本文采用基于模型先驗(yàn)的人體建模方法。

2015年馬普所提出了由姿態(tài)與體型參數(shù)驅(qū)動(dòng)的蒙皮多人線性模型[9](Skinned Multi-Person Linear model,SMPL),2018年Cheng Z Q等人[10]曾比較了Dyna[11],SMPL和RealtimeSCAPE[12]幾個(gè)典型的參數(shù)人體模型,得出SMPL模型在速度和準(zhǔn)確性方面都比其它模型具有更好的表現(xiàn),同時(shí)SMPL模型與現(xiàn)有的渲染引擎兼容??紤]到設(shè)備的便捷配置,本文僅使用單一設(shè)備?;谝陨戏治觯疚氖褂脝蝹€(gè)Kinect相機(jī)和SMPL模型來(lái)進(jìn)行人體三維數(shù)字化建模。

目前基于人體形變模型的姿態(tài)估計(jì)工作大多集中于單幀靜態(tài)圖像,由于單一視角的二維圖像會(huì)丟失三維上的信息,在映射到三維姿態(tài)的時(shí)候,會(huì)產(chǎn)生一些不真實(shí)的姿態(tài)。為了解決上述問題,本文提出利用Kinect相機(jī)得到的人體三維骨架,擬合到SMPL模型上,彌補(bǔ)了二維圖像映射到三維姿態(tài)時(shí)的缺失信息,從而提高了人體重建模型的準(zhǔn)確度。

2 相關(guān)工作

2.1 SMPL人體模型

SMPL模型是一種參數(shù)化人體模型,該模型可以通過(guò)參數(shù)的改變進(jìn)行任意的人體建模和動(dòng)畫驅(qū)動(dòng)。其輸入是10個(gè)體型參數(shù)(β,包含人的高矮胖瘦和頭身比)和72個(gè)姿態(tài)參數(shù)(θ,包含24個(gè)關(guān)節(jié)相對(duì)角度)。將模型形狀參數(shù)β和動(dòng)作參數(shù)θ作用于基礎(chǔ)模板Tμ進(jìn)行動(dòng)作變形,得到重構(gòu)出的模型M(β,θ)以及模型的網(wǎng)格頂點(diǎn)位置T(β,θ)[9]。

M(β,θ)=W(T(β,θ),J(β),θ,ω)

(1)

T(β,θ)=Tμ+Bs(β)+Bp(θ)

(2)

其中W是一個(gè)混合蒙皮線性方程,其包含:

1)將β體型參數(shù)對(duì)應(yīng)到骨骼關(guān)節(jié)的函數(shù)J(β)。

2)將θ姿態(tài)參數(shù)映射到模型對(duì)應(yīng)點(diǎn)的變形函數(shù)Bp(θ)。

3)將β形狀參數(shù)映射到模型對(duì)應(yīng)點(diǎn)的變形函數(shù)Bs(β)。

4)各個(gè)關(guān)節(jié)的混合權(quán)重ω。

2.2 HMR算法

HMR算法是一個(gè)端到端的從二維人體圖像恢復(fù)出三維人體模型的算法框架,算法網(wǎng)絡(luò)框架如圖1所示。

圖1 HMR算法網(wǎng)絡(luò)架構(gòu)

(3)

(4)

通過(guò)HMR算法估計(jì)的人體模型如圖2所示。從圖2中可以看出,算法在細(xì)節(jié)處(圖2中圓圈所示)仍然存在一定誤差。

圖2 HMR算法結(jié)果

3 算法總體設(shè)計(jì)

基于SMPL模型的人體姿態(tài)估計(jì)中最主要的問題是如何將標(biāo)準(zhǔn)模板與真實(shí)數(shù)據(jù)進(jìn)行非剛體配準(zhǔn),實(shí)質(zhì)上就是為標(biāo)準(zhǔn)模板尋找合適的體型參數(shù)β和姿態(tài)參數(shù)θ,從而使β和θ所描述的人體模型與輸入的真實(shí)數(shù)據(jù)實(shí)現(xiàn)最優(yōu)配準(zhǔn)。本文設(shè)計(jì)了一種基于SMPL模型的人體姿態(tài)與形狀估計(jì)的方法,具有準(zhǔn)確、快速的特點(diǎn),能夠在較短時(shí)間內(nèi)生成一組完整的三維人體模型。該模型能夠準(zhǔn)確描述人體的真實(shí)姿勢(shì)與形狀,重建流程如圖3所示。首先,具有任意姿勢(shì)的用戶站在Kinect傳感器前,通過(guò)Kinect獲取人體骨骼點(diǎn)信息,利用HMR算法從單張圖片得到SMPL模型。然后利用迭代最近點(diǎn)(Iterative Closest Point,ICP)算法將SMPL模型的關(guān)節(jié)點(diǎn)和Kinect骨架點(diǎn)轉(zhuǎn)換到同一坐標(biāo)系下進(jìn)行配準(zhǔn)。接下來(lái)通過(guò)建立目標(biāo)函數(shù),迭代地將SMPL模型擬合到運(yùn)動(dòng)骨骼點(diǎn)上,得到優(yōu)化后的模型。最后,利用攝像機(jī)標(biāo)定獲得的相機(jī)內(nèi)、外參數(shù)將模型投影到相應(yīng)的彩色圖像上,得到近似于人體姿態(tài)的模型。

圖3 重建流程

3.1 θ的整體剛性變換

姿態(tài)參數(shù)θ表示相對(duì)關(guān)節(jié)之間旋轉(zhuǎn)的軸角,J(β)為根據(jù)人體形狀參數(shù)β預(yù)測(cè)3D骨骼關(guān)節(jié)位置的函數(shù)[9]。然而通過(guò)J(β)得到的三維關(guān)節(jié)點(diǎn)只代表當(dāng)前坐標(biāo)系下所在位置,為了得到統(tǒng)一坐標(biāo)系下SMPL的各個(gè)關(guān)節(jié)信息,需要進(jìn)行全局剛性變換。對(duì)于關(guān)節(jié)i,將3D關(guān)節(jié)表示為Rθ(J(β)i),其中Rθ代表由姿態(tài)θ引起的整體剛性變換[9]。本節(jié)將介紹如何進(jìn)行這一變換。

羅德里格斯公式(Rodriguez formula)是計(jì)算機(jī)視覺中的一大經(jīng)典公式,經(jīng)常用于描述相機(jī)位姿的過(guò)程中。公式如下所示

R=I+sin(θ)K+(1-cos(θ))K2

(5)

I是單位向量,K代表旋轉(zhuǎn)軸向量,θ是旋轉(zhuǎn)角度,R代表旋轉(zhuǎn)矩陣。通過(guò)使用羅德里格斯公式將每?jī)蓚€(gè)關(guān)節(jié)的軸角轉(zhuǎn)換為局部旋轉(zhuǎn)矩陣。當(dāng)?shù)玫絻蓚€(gè)相對(duì)關(guān)節(jié)之間的局部旋轉(zhuǎn)及其位置時(shí),然后可以使用坐標(biāo)的傳遞性來(lái)計(jì)算全局旋轉(zhuǎn)變換和平移變換。

圖4 同一點(diǎn)的坐標(biāo)變換

如圖4(a)所示,AP是坐標(biāo)A中某一點(diǎn)的位置,BP是坐標(biāo)B中同一點(diǎn)的位置,APBorg等于向量AP-BP,通過(guò)如下變換可以得到AP

(6)

在圖4(b)中,可以通過(guò)使用等式(7)將坐標(biāo)系C中的CP轉(zhuǎn)換成BP,并通過(guò)等式(8)將CP轉(zhuǎn)換成坐標(biāo)系A(chǔ)中的AP

(7)

(8)

通過(guò)上述變換,可以將不同坐標(biāo)系下的SMPL各個(gè)關(guān)節(jié)統(tǒng)一到同一坐標(biāo)系下,最終可以得到SMPL的完整骨架信息,如圖5所示。

圖5 3D骨架

3.2 將Kinect坐標(biāo)轉(zhuǎn)換為SMPL

由于SMPL三維關(guān)節(jié)與Kinect關(guān)節(jié)所在坐標(biāo)系不同,需要將Kinect關(guān)節(jié)與SMPL關(guān)節(jié)變換為同一坐標(biāo)系下。ICP算法是一種基于對(duì)應(yīng)點(diǎn)的計(jì)算出最優(yōu)旋轉(zhuǎn)和平移的算法,常用于對(duì)齊兩個(gè)點(diǎn)集。在已知對(duì)應(yīng)點(diǎn)的情況下,有如下解決方案。

找到最佳剛性變換有如下幾個(gè)步驟:首先,找到Kinect坐標(biāo)點(diǎn)集A和SMPL坐標(biāo)點(diǎn)集B的質(zhì)心;其次將兩個(gè)數(shù)據(jù)集都帶到原點(diǎn),最后找到最佳旋轉(zhuǎn)R和平移T。

將兩個(gè)數(shù)據(jù)集移動(dòng)到原點(diǎn)后,計(jì)算協(xié)方差矩陣H,H矩陣定義如下

(9)

通過(guò)奇異值分解(SVD)計(jì)算得到最優(yōu)旋轉(zhuǎn)矩陣R[13]。

H=USVT

(10)

R=VUT

(11)

H是一個(gè)m×n的矩陣,U是m×m的矩陣,S是m×n的矩陣,V是n×n的矩陣。

通過(guò)式(12)得到平移向量T。

T=-R×CentroidA+CentroidB

(12)

最終通過(guò)式(13)將Kinect坐標(biāo)轉(zhuǎn)換到SMPL對(duì)應(yīng)的坐標(biāo)系上。

PSMPL=RPKinect+T

(13)

如圖6(a)所示,顯然,上方所在關(guān)節(jié)(Kinect關(guān)節(jié))與下方關(guān)節(jié)(SMPL關(guān)節(jié))之間的距離較遠(yuǎn)。由于軀體的剛性特質(zhì),將軀干關(guān)節(jié)作為對(duì)應(yīng)點(diǎn)來(lái)求解旋轉(zhuǎn)矩陣R和平移向量T,最終將兩組點(diǎn)集統(tǒng)一到同一坐標(biāo)系下,轉(zhuǎn)換的結(jié)果如圖6(b)示。

圖6 使用ICP算法的比較

3.3 構(gòu)造目標(biāo)函數(shù)

利用HMR算法獲得了人體的β,θ參數(shù),然后通過(guò)θ得到SMPL的三維關(guān)節(jié)位置,接著將SMPL模型的姿態(tài)擬合到Kinect關(guān)節(jié)上。圖7展示的是Kinect與SMPL骨骼點(diǎn)的比較。

圖7 Kinect與SMPL骨骼點(diǎn)的比較

首先,可以看到Kinect在圖7(a)中有21個(gè)關(guān)節(jié)(實(shí)際上在Kinect中刪除了手上的4個(gè)關(guān)節(jié),因?yàn)椴恍枰@些),而SMPL模型在圖7(b)中有24個(gè)關(guān)節(jié),然而它們的關(guān)節(jié)并非一對(duì)一的。所以需要將Kinect的關(guān)節(jié)映射到SMPL模型上。例如,Kinect關(guān)節(jié)的索引12映射到SMPL關(guān)節(jié)的索引1。SMPL中有3個(gè)關(guān)節(jié)是分別索引6、13、14,而Kinect中沒有對(duì)應(yīng)的索引,所以需要計(jì)算它們周圍點(diǎn)的平均值來(lái)求解它們的值。

此時(shí)需要建立一個(gè)目標(biāo)函數(shù)來(lái)表示對(duì)應(yīng)關(guān)節(jié)點(diǎn)的差異,并且盡可能最小化目標(biāo)函數(shù)。目標(biāo)函數(shù)公式如式(14)所示。

(14)

(15)

文獻(xiàn)[5]使用的能量函數(shù)E(β,θ,J2D),僅利用二維骨架的約束進(jìn)行優(yōu)化求解,不能精確的求解人體的真實(shí)姿態(tài)。本節(jié)提出的能量函數(shù)EJ(β,θ,JKinect)建立在Kinect三維骨架信息的基礎(chǔ)上,通過(guò)求解對(duì)應(yīng)關(guān)節(jié)點(diǎn)的最小歐式距離,得到相應(yīng)的姿態(tài)參數(shù)。其中Joint代表對(duì)應(yīng)的關(guān)節(jié)點(diǎn)個(gè)數(shù)24,wJ表示關(guān)節(jié)對(duì)應(yīng)的權(quán)重,Rθ(J(β)i)代表θ全局剛性變換后得到的三維關(guān)節(jié)[9],J(Kinect,i)表示對(duì)應(yīng)的Kinect關(guān)節(jié)坐標(biāo)。

在具體的實(shí)驗(yàn)過(guò)程中,利用Kinect相機(jī)獲得三維骨骼點(diǎn),通過(guò)SMPL模型得到三維關(guān)節(jié)點(diǎn),在同一坐標(biāo)系下,構(gòu)造關(guān)節(jié)誤差的目標(biāo)函數(shù),利用基于梯度的Dogleg法[14]最小化目標(biāo)函數(shù),得到相應(yīng)的體型參數(shù)β和姿勢(shì)參數(shù)θ。然后輸入到SMPL得到完整的三維人體模型,并將得到的人體模型投影到彩色圖像上。

4 實(shí)驗(yàn)結(jié)果及分析

4.1 實(shí)驗(yàn)環(huán)境

利用本文算法可以對(duì)自由移動(dòng)的人體進(jìn)行姿態(tài)估計(jì)。實(shí)驗(yàn)中將Kinect相機(jī)固定,人在Kinect相機(jī)前做任意動(dòng)作,就可以得到與人體動(dòng)作相似的人體模型。本實(shí)驗(yàn)以Kinect采取的六幀數(shù)據(jù)為例,詳細(xì)分析本文算法在實(shí)驗(yàn)中的具體步驟,并與HMR算法和文獻(xiàn)[6]算法進(jìn)行比較。實(shí)驗(yàn)環(huán)境如下:

1)電腦配置:Intel Core i5-8300H CPU/16G,NVIDIA GeForce GTX1060Ti顯卡/GPU 加速;

2)數(shù)據(jù)來(lái)源:Kinect相機(jī)。

3)算法實(shí)現(xiàn):Chumpy、Opendr渲染庫(kù)/Python語(yǔ)言。

4.2 實(shí)驗(yàn)結(jié)果

HMR算法是通過(guò)單張圖片恢復(fù)人體模型,而文獻(xiàn)[6]算法是利用彩色圖的輪廓信息優(yōu)化SMPL模型,選取這兩種算法與本文算法進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果如圖8所示,其中圖8(a)為深度相機(jī)采取的彩色圖,圖8(b)為深度相機(jī)采集的3D關(guān)節(jié)圖,圖8(c)為本文算法重建出的模型投影圖,圖8(d)為HMR算法的模型投影圖,圖8(e)為文獻(xiàn)[6]算法的模型投影圖。

圖8 姿態(tài)估計(jì)算法對(duì)比

HMR算法不僅體形上與彩色圖人體差距較大,而且在一些細(xì)微的姿勢(shì)上,不能很好的與人體重合,如手臂、腳部、膝蓋等;而文獻(xiàn)6算法僅限在A型姿勢(shì)估計(jì)時(shí)效果較好,但與本文算法相比,仍然有所不如,且復(fù)雜姿態(tài)下得到的結(jié)果與真實(shí)人體姿態(tài)相比差異較大。如圖8(c)所示,圖中黃色圓點(diǎn)代表Kinect關(guān)節(jié),綠色圓點(diǎn)代表SMPL關(guān)節(jié)點(diǎn),藍(lán)色代表SMPL骨架,可以看出,SMPL骨架能較好的擬合到Kinect關(guān)節(jié)上,從而使得得到的人體模型更接近真實(shí)人體。相比其它兩個(gè)算法,本文方法能夠?qū)⑷S模型較為準(zhǔn)確的投影到彩色圖像上,有效估計(jì)了人體的三維姿態(tài)。

為了驗(yàn)證本文方法的有效性,選取豪斯多夫(HuasdOrff)距離來(lái)計(jì)算模型關(guān)節(jié)與Kinect關(guān)節(jié)點(diǎn)之間的均方根(Root Mean Square,RMS)誤差。與歐式距離不同,Huasdorff距離定義為兩組點(diǎn)集之間的距離,是描述兩組點(diǎn)集之間相似程度的一種量度。

表1 定量分析表

對(duì)比結(jié)果如表1所示。從表1的對(duì)比結(jié)果分析,無(wú)論是踢腿、半蹲還是舉手等動(dòng)作,本文方

法在誤差表現(xiàn)上都優(yōu)于其它兩種方法。綜上所述,本文算法能夠有效利用Kinect三維關(guān)節(jié)點(diǎn)的約束對(duì)人體模型參數(shù)進(jìn)行求解,并且得到相對(duì)優(yōu)于HMR和文獻(xiàn)[6]算法的結(jié)果。

5 結(jié)論

本文通過(guò)總結(jié)和分析基于模型的人體姿態(tài)估計(jì)算法的研究現(xiàn)狀,發(fā)現(xiàn)了目前算法存在精度有限、信息缺失等問題。針對(duì)這些問題,本文提出將Kinect三維關(guān)節(jié)點(diǎn)擬合到SMPL模型上,來(lái)恢復(fù)更真實(shí)的人體網(wǎng)格模型的方法。

該算法具有以下三個(gè)優(yōu)勢(shì)。一,采用Kinect相機(jī)采集數(shù)據(jù),快速便捷;二,通過(guò)Kinect得到的人體三維信息,彌補(bǔ)了由二維圖像映射到三維姿態(tài)時(shí)的缺失信息,減少了姿態(tài)估計(jì)時(shí)的誤差;三,相較于從彩色圖像擬合人體模型的方法,本文利用更能反映人體真實(shí)姿態(tài)的三維人體骨架,提取的特征維度更高,能夠更詳細(xì)的描述目標(biāo)信息。實(shí)驗(yàn)結(jié)果表明本文方法較HMR方法在RMS誤差上平均減小了37.5%,較文獻(xiàn)[6]方法平均減小了46.2%,綜上,本文算法通過(guò)人體三維信息的補(bǔ)足和約束,提高了姿態(tài)估計(jì)的精度,得到了更真實(shí)的人體模型。

文中使用的 SMPL 模型是不包含臉部與手部的模型,在后續(xù)的工作當(dāng)中,可以考慮使用最新的人體形變模型[15],來(lái)進(jìn)行更為全面(包含臉、手等多部位)的人體姿態(tài)建模,并結(jié)合光照和人體紋理等信息來(lái)構(gòu)建出更為逼真的人體模型。

猜你喜歡
人體模型坐標(biāo)系姿態(tài)
獨(dú)立坐標(biāo)系橢球變換與坐標(biāo)換算
極坐標(biāo)系中的奇妙曲線
三角函數(shù)的坐標(biāo)系模型
求坐標(biāo)系內(nèi)三角形的面積
豐田汽車碰撞測(cè)試新增兒童模型
另一種姿態(tài)
Family makes 45—foot icicle in front yard
體驗(yàn)創(chuàng)新:3D人體掃描儀測(cè)三圍
以文青的姿態(tài)回歸主流——對(duì)《后悔無(wú)期》的兩重解讀
人體模型內(nèi)置攝像頭為數(shù)據(jù)收集