吳建美
(福州軟件職業(yè)技術(shù)學(xué)院 游戲產(chǎn)業(yè)學(xué)院,福建 福州 350005)
隨著虛擬現(xiàn)實技術(shù)的飛速發(fā)展,虛擬數(shù)字人物的運動捕捉逐漸成為近年來的研究熱點。目前,在三維空間中捕捉虛擬數(shù)字角色的動作被廣泛應(yīng)用于醫(yī)學(xué)、游戲、體育和電影等領(lǐng)域。在傳統(tǒng)的方法中,主要采用三維動態(tài)流體技術(shù)進(jìn)行運動人物動作的捕捉,但存在捕捉數(shù)據(jù)精度低的缺陷。因此,越來越多的智能方法被融入虛擬數(shù)字人物的運動捕捉中。
田青等[1]采用改進(jìn)Slow-Only網(wǎng)絡(luò)通過實時跟蹤人物動作與姿態(tài)變化,結(jié)合自適應(yīng)角點檢測方法進(jìn)行人物動態(tài)特性分析,進(jìn)而實現(xiàn)動作捕捉。雖然該方法已取得了較為滿意的動作捕捉效果,但捕捉速度慢且運算量較大;趙博等[2]采用機(jī)器視覺圖像對采集的動作圖像進(jìn)行邊緣檢測,結(jié)合不規(guī)則模型實現(xiàn)機(jī)器視覺分塊模板匹配處理,完成動作捕捉優(yōu)化。但該方法的自適應(yīng)捕捉能力較差,面向包含復(fù)雜背景的數(shù)據(jù)集則具有較大的局限性。
針對以上分析,本文依托于多特征融合算法,對虛擬數(shù)字人物動作捕捉方法展開研究,以彌補(bǔ)以上方法存在的不足,同時進(jìn)一步提高動作捕捉性能。
在虛擬數(shù)字角色的運動捕捉之前,需要先檢測和確定人物的姿態(tài)變化,并描述運動姿勢。由于通過運動檢測獲得的人體運動圖像是高維信號,因此在該高維空間中直接進(jìn)行運動捕捉并不容易[3]。所以,本文使用前景圖像的最小邊界矩形將高維圖像信號轉(zhuǎn)換為人體姿態(tài)的低維信號,并使用統(tǒng)一的數(shù)據(jù)格式來描述載體的姿態(tài)信息。
定義人物動作的變化矩形框?qū)挒閃,高為H,通過構(gòu)造姿態(tài)評價函數(shù)來確定人物動作前景圖像的面積為:
(1)
式(1)中,F0表示人物的旋轉(zhuǎn)角度;f(t)表示姿態(tài)評價函數(shù)。
在進(jìn)行動作信號獲取時,由于人體從中間狀態(tài)轉(zhuǎn)換到穩(wěn)定狀態(tài)的工程并不是真實的信號值,因此定義:
(2)
式(2)中,n0表示采樣點個數(shù);i表示采樣通道編號;f0(t)表示換階函數(shù)。
將人體姿態(tài)幀間的變化率作為人物兩個動作之間切換的判定指標(biāo)[4],計算公式為:
(3)
式(3)中,K0表示尺度因子;T0表示上一個動作的起始時間;k(t)表示偏差函數(shù)。
由于人體各部分肢體相對于地理坐標(biāo)系之間不會發(fā)生位置變化[5],因此則有:
(4)
式(4)中,qi表示人體肢體四元數(shù),可反映姿態(tài)相對于基準(zhǔn)坐標(biāo)系的變化情況;s0表示位移函數(shù);p0表示位移函數(shù)對應(yīng)權(quán)重。
通過將人體軀干節(jié)點與坐標(biāo)系節(jié)點的粗略配準(zhǔn),促使人物動作節(jié)點的大致重合[6],之后構(gòu)造最小化函數(shù)提升姿態(tài)原始數(shù)據(jù)的準(zhǔn)確度為:
(5)
式(5)中,R0表示轉(zhuǎn)置矩陣;H0表示隨機(jī)矢量;N0表示數(shù)據(jù)點個數(shù);Pj表示數(shù)據(jù)點中距離目標(biāo)數(shù)據(jù)點最近的點。
引入尺度空間向量,結(jié)合近似矩陣檢測人體姿態(tài)的特征點[7],計算公式為:
(6)
式(6)中,Lxx、Lyy分別表示人體在水平方向和豎直方向上的歐拉角;x表示人體水平運動距離;σ表示動作與水平坐標(biāo)系的夾角。
計算人物從高維空間轉(zhuǎn)換到低維空間的映射系數(shù)為:
A0=ΔHs×D0×L0
(7)
式(7)中,A0表示映射系數(shù);D0表示內(nèi)部參數(shù);L0表示外部參數(shù)。
由此可得到人體動作姿態(tài)的目標(biāo)空間點的表達(dá)式為:
(8)
式(8)中,g(t)表示線性函數(shù);v(x)表示粗糙度函數(shù)。
以軀干為基準(zhǔn)坐標(biāo)系進(jìn)行人體動作姿態(tài)解算為:
B0=Pb×E1×q-1
(9)
式(9)中,B0表示人物動作相對于軀干的四元數(shù)姿態(tài)表示;E1表示姿態(tài)采樣預(yù)備點;q-1表示動作分割終止點。
根據(jù)虛擬人物在前景矩形框中的運動范圍,計算動作姿態(tài)變化率,并通過配準(zhǔn)人體軀干節(jié)點與基準(zhǔn)坐標(biāo)系節(jié)點,檢測動作姿態(tài)特征點,由此完成對人物動作姿態(tài)的解算,為后續(xù)人物動作跟蹤奠定基礎(chǔ)。
根據(jù)人物動作和姿勢的計算結(jié)果,分析人體結(jié)構(gòu),以確保基于正確的姿勢信息進(jìn)行動作識別[8]。由于人體中的許多骨骼點是相互連接的,而不是獨立移動的,因此只需要提取一些關(guān)鍵的骨骼點就可以獲得包含運動姿勢的信息[9]。同時,為了降低人體骨骼的復(fù)雜性,模擬人體動作的真實情況,本文使用10個骨骼點建立人體的層次數(shù)據(jù)庫模型,具體如圖1所示。
圖1 人體重點骨骼結(jié)構(gòu)
計算人物特征動作與基準(zhǔn)動作的匹配適應(yīng)值為:
mt=a0K1+B0Ct
(10)
式(10)中,a0表示目標(biāo)圖像特征量;K1表示動作數(shù)據(jù)節(jié)點;Ct表示相似度閾值;mt表示相似度匹配函數(shù)。
對動作信號進(jìn)行重構(gòu)計算[10]公式為:
(11)
式(11)中,xR表示信號離散點的幅值;j(t)表示轉(zhuǎn)換函數(shù)。
當(dāng)信號能量較大時,eR的數(shù)值也較大[11],通過下式對其進(jìn)行歸一化處理得:
(12)
式(12)中,ms表示信號頻帶個數(shù);Ea表示高頻次能量;Eb表示低頻次能量。
在全局形狀模型中,結(jié)合邊緣輪廓特征分解方法[12],得到人體模型與動作姿態(tài)的分層匹配模型為:
(13)
式(13)中,u(x,y)表示動作姿態(tài)定位的關(guān)鍵點;j(x,y)表示比較特征點;η(x,y)表示仿射不變矩陣。
對原始目標(biāo)圖像進(jìn)行層次分解,得到檢測系數(shù)為:
(14)
式(14)中,V(r/2)表示調(diào)整分解函數(shù);r表示分解層數(shù)。
由此得到動作圖像的邊緣輪廓分量為:
(15)
式(15)中,H0(r)表示動作相關(guān)性變量;α0表示動作紋理特征匹配值。
隨機(jī)初始化動作子空間中的姿態(tài)預(yù)測點元素,根據(jù)映射變換關(guān)系預(yù)測某個特定動作在低維空間中的投影向量為:
(16)
式(16)中,Yi表示系數(shù)矩陣;Ni表示單位矩陣;β0表示變換衰減常數(shù)。
對所有動作像素點進(jìn)行預(yù)測并計算預(yù)測誤差,求和后得到所有點的總體預(yù)測誤差[13],計算公式為:
U0=χtMk
(17)
式(17)中,χt表示擬合函數(shù)。
在人物動態(tài)變化下,在投影不變區(qū)域內(nèi),根據(jù)動作特征進(jìn)行動態(tài)圖像的分解,以此得到人物動態(tài)動作跟蹤識別的動態(tài)特征函數(shù)為:
I(t)=U0×ω1×2φ0
(18)
式(18)中,ω1表示動作訓(xùn)練集的樣本塊;φ0表示動作銜接動態(tài)特征;I(t)表示動作跟蹤函數(shù)。
基于人物動作姿態(tài)解算,對人體骨骼結(jié)構(gòu)進(jìn)行分析,構(gòu)建人體動作模型,結(jié)合動作向量量化解析函數(shù),得到動作邊緣輪廓分量,并通過引入運算誤差,計算人物動態(tài)動作跟蹤函數(shù),以此實現(xiàn)人物動作跟蹤,便于后續(xù)人物動作捕捉的實現(xiàn)。
本文采用多特征融合算法將所有識別出的特征數(shù)據(jù)融合為一組數(shù)據(jù),并將所有特征數(shù)據(jù)放置在同一空間坐標(biāo)系中,以獲得最終的動作特征[14]。引入多核學(xué)習(xí)算法構(gòu)建動作分類器,為最終運動捕捉的實現(xiàn)提供數(shù)據(jù)基礎(chǔ)。基于多特征融合的人物動作捕捉實現(xiàn)流程如圖2所示。
圖2 基于多特征融合的人物動作捕捉實現(xiàn)流程
通過梯度下降方法將動作特征目標(biāo)函數(shù)進(jìn)行最小化處理。由此得到多核學(xué)習(xí)的最佳參數(shù)為:
(19)
式(19)中,I(t)表示動作跟蹤函數(shù);βj表示權(quán)值參數(shù)。
將上述動作特征進(jìn)行核函數(shù)線性組合融合,計算公式為:
(20)
式(20)中,mb=[1,2,…,l…,mb]表示動作特征數(shù)量;kf表示融合函數(shù)權(quán)重。
基于逆矩陣,可將多特征融合的核函數(shù)表示為:
Ω=λk(Km×Kj)+bs
(21)
式(21)中,Km表示特征簽名向量;Kj表示累加邊緣特征;bs表示經(jīng)驗常數(shù)。
通過圖像增強(qiáng)原理提高人物動作捕捉的分辨能力與自適應(yīng)性[15],由此得到的動作紋理分布函數(shù)為:
(22)
式(22)中,ρj表示梯度像素分布集;ε表示振蕩因子。
則可利用下式提取人物動作捕捉特征量為:
ξ=f(gi)×wk/Cj
(23)
式(23)中,wk表示動作姿態(tài)幀序列估計值[16-17];Cj表示動作軌跡模板匹配系數(shù)。
將待捕捉的人物動態(tài)圖像分割為M×N個子塊,分別計算每個子塊的動作捕捉特征量,并將計算結(jié)果與動作軌跡模板進(jìn)行匹配,實現(xiàn)虛擬數(shù)字人物動作的實時捕捉。至此,完成基于多特征融合的虛擬數(shù)字人物動作捕捉方法的設(shè)計。
為驗證本文提出的方法在虛擬數(shù)字人物動作捕捉實際應(yīng)用中的綜合有效性,以公開動作數(shù)據(jù)集為測試對象,對本文方法展開性能測試,并根據(jù)實驗結(jié)果分析本文方法的應(yīng)用效果。
實驗選取KTH虛擬數(shù)字人物動作作為數(shù)據(jù)集進(jìn)行測試。該數(shù)據(jù)包含大約10萬張?zhí)摂M數(shù)字人物動作,且圖像背景復(fù)雜程度不一,光照強(qiáng)度也不盡相同。其中部分?jǐn)?shù)據(jù)集如圖3所示。
圖3 測試對象
本文中的實驗數(shù)據(jù)是一個復(fù)雜環(huán)境中的監(jiān)控視頻,其中人物行為、服裝和姿態(tài)都具有顯著差異,圖像每幀尺寸為120*220。首先,根據(jù)運動的人物動態(tài),利用前景圖像的最小邊界矩形將高維圖像信號降為二維,為了保證檢測精度,匹配前景圖像的最小像素為500;然后,基于姿勢比率來確定人體姿勢,并且通過組合姿勢變化信息與姿勢比率的幀間變化率以及位置變化特性來跟蹤人物動作;最后,對兩幀進(jìn)行均值濾波,去除“奇異噪聲點”。
實驗中使用手臂關(guān)節(jié)角度描述人物具體動作姿態(tài)的重要特征,并將人體運動模型簡化為一個七自由度的運動模型,其關(guān)節(jié)自由度如表1所示。
表1 人體關(guān)節(jié)自由度
其中,采用專業(yè)的運動捕捉設(shè)備PERCEPTION NEURON STUDIO對數(shù)據(jù)集進(jìn)行動作捕捉,并將此數(shù)據(jù)作為基準(zhǔn)數(shù)據(jù)。該設(shè)備可以導(dǎo)出人體各部位相對于基準(zhǔn)坐標(biāo)系的姿態(tài)數(shù)據(jù),這與本文設(shè)計的運動捕捉數(shù)據(jù)的邏輯一致。因此,只需將其轉(zhuǎn)換為直觀的歐拉角數(shù)據(jù),即可進(jìn)行合理的數(shù)據(jù)比較。
以圖3(a)為例,得到的人物動態(tài)姿態(tài)解算結(jié)果如圖4所示。
圖4 人物動態(tài)狀態(tài)解算
以人物動態(tài)姿態(tài)解算結(jié)果與人體特征點檢測結(jié)果為數(shù)據(jù)基礎(chǔ),利用邊緣輪廓特征分解方法進(jìn)行人物動作跟蹤識別,并采用文中所述方法構(gòu)建人體運動模型,最后通過多特征融合算法實現(xiàn)人物動作捕捉。
以人物大臂運動作為測試數(shù)據(jù),以虛擬數(shù)字人物動作捕捉系統(tǒng)獲取的數(shù)據(jù)為參考值,利用本文設(shè)計的方法對實驗數(shù)據(jù)集進(jìn)行測試,將得到的人物動作捕捉數(shù)據(jù)與動捕系統(tǒng)數(shù)據(jù)相比較,以判斷本文方法的動作捕捉效果,對比結(jié)果如圖5所示。
圖5 動作捕捉結(jié)果
由圖5可知,利用本文方法對虛擬數(shù)字人物進(jìn)行動作捕捉,得到的動捕歐拉角數(shù)據(jù)與專業(yè)動捕系統(tǒng)數(shù)據(jù)趨勢基本一致。相對于動捕系統(tǒng)數(shù)據(jù),本文測得的動捕歐拉角數(shù)據(jù)的平均誤差在1.3°~2.2°之間,動捕的相對誤差較小。由此可以說明,本文設(shè)計的方法能夠較為準(zhǔn)確地捕捉虛擬數(shù)字人物動作,動捕精度較高。
為進(jìn)一步驗證本文方法在人體動作捕捉方面的精度,本實驗引入改進(jìn)Slow-Only網(wǎng)絡(luò)(方法1)[1]、機(jī)器視覺圖像(方法2)[2]作為本文方法的對比方法,并以平均絕對百分比誤差表征捕捉數(shù)據(jù)的準(zhǔn)確性,測量誤差越小,說明方法的捕捉結(jié)果越準(zhǔn)確,動捕精度越高,對比結(jié)果如表2所示。
表2 動作捕捉誤差值結(jié)果
由表2中的實驗結(jié)果可以看出,本文方法相對于對比方法,動作捕捉準(zhǔn)確度分別提高了約7%與5%,對于人體四肢運動的不同類型,人物動作捕捉的平均百分比誤差均在6%以下。方法1與方法2采用的是運動力學(xué)鏈?zhǔn)侥P?因而父節(jié)點的捕捉誤差會累積疊加到子節(jié)點上,故捕捉誤差較大。通過實驗數(shù)據(jù)對比結(jié)果可以說明,本文方法對于虛擬數(shù)字人物動作捕捉具有較高的捕捉精度。
針對當(dāng)前現(xiàn)有方法對于虛擬數(shù)字人物動作捕捉存在捕捉精度低的問題,本文基于多特征融合算法,通過解算人物動態(tài)姿態(tài)與跟蹤識別人物動作特征,并通過模板匹配,進(jìn)而實現(xiàn)人物動作捕捉。并通過對比實驗驗證了本文方法的可行性。在未來研究中,將結(jié)合圖像增強(qiáng)技術(shù)提高所提方法的自適應(yīng)能力,以進(jìn)一步優(yōu)化算法。