李淑琴,馬 昊,丁 濛
(1. 北京信息科技大學(xué)計(jì)算機(jī)學(xué)院,北京100101; 2. 北京信息科技大學(xué)感知與計(jì)算智能聯(lián)合實(shí)驗(yàn)室,北京100101)
三維人體骨骼動(dòng)畫技術(shù)廣泛應(yīng)用于游戲、電影等娛樂產(chǎn)業(yè)的角色動(dòng)畫中,它在人體行為分析以及計(jì)算機(jī)動(dòng)畫領(lǐng)域具有十分重要的地位。傳統(tǒng)的人體骨骼動(dòng)畫制作方法是首先參考真實(shí)人體骨骼運(yùn)動(dòng)過程中關(guān)節(jié)點(diǎn)的坐標(biāo)位置變化軌跡,據(jù)此確定關(guān)鍵幀與插值幀模型,再進(jìn)行必要的編輯處理。這需要大量的專業(yè)領(lǐng)域知識(shí)以及復(fù)雜的交互規(guī)則,需要投入較大的人力與時(shí)間成本,因此成為了限制用戶使用的一個(gè)瓶頸。為了解決上述問題,研究者們給出了多種方法,大致分為以下兩種:
1)基于幾何與物理的方法。在基于這種方法的研究中最早出現(xiàn)的是Witkin等人提出的時(shí)空約束法,通過動(dòng)作學(xué)甚至是動(dòng)力學(xué)中的物理約束進(jìn)行人體角色動(dòng)畫的編輯,具有很大的應(yīng)用價(jià)值;Gleicher使用偏移映射來編輯并控制動(dòng)畫中角色的運(yùn)動(dòng)路徑,通過采用信號(hào)處理的方法進(jìn)行運(yùn)動(dòng)中自由度的修正;Choi等人提出使用繪制人體二維動(dòng)作軌跡草圖曲線的方法進(jìn)行三維人體角色動(dòng)畫制作與編輯?;趲缀闻c物理的方法雖然可以實(shí)現(xiàn)豐富的動(dòng)畫制作,但是增加了交互的復(fù)雜程度。
2)基于視頻與動(dòng)作捕捉數(shù)據(jù)驅(qū)動(dòng)的方法。這種方法的思想是利用已有的視頻或者是動(dòng)作捕捉數(shù)據(jù),通過給定人體姿態(tài)搜索空間將已有的動(dòng)作數(shù)據(jù)信息匹配到新的人體角色模型上,從而生成全新的人體角色動(dòng)畫。這種方法早上一世紀(jì)末就有相關(guān)研究者提出并應(yīng)用。隨著技術(shù)的發(fā)展,近些年使用這種數(shù)據(jù)驅(qū)動(dòng)的方法越來越偏向于用于行為分析與動(dòng)作預(yù)測(cè)方面的研究。大部分研究者將關(guān)注點(diǎn)放在了從單張或多張人體骨骼圖像中恢復(fù)三維空間下人體的骨骼動(dòng)作信息,并合成完整的人體骨骼動(dòng)畫,從而進(jìn)行人體動(dòng)作預(yù)測(cè)。
隨著深度學(xué)習(xí)技術(shù)在計(jì)算機(jī)圖形學(xué)的成功發(fā)展與應(yīng)用,以及人體動(dòng)作捕捉數(shù)據(jù)庫提供的大量數(shù)據(jù)支持,基于深度學(xué)習(xí)的研究方法成為了研究學(xué)者所關(guān)注的重點(diǎn)。其中文獻(xiàn)[6]提出了一種基于深度神經(jīng)網(wǎng)絡(luò)的人體動(dòng)作預(yù)測(cè)的方法;文獻(xiàn)[7]使用多任務(wù)CNN網(wǎng)絡(luò)模型實(shí)現(xiàn)從單張圖片進(jìn)行三維人體動(dòng)作的預(yù)測(cè);文獻(xiàn)[8]使用深度卷積自編碼網(wǎng)絡(luò)實(shí)現(xiàn)三維人體骨骼動(dòng)畫的合成;文獻(xiàn)[9]將關(guān)注點(diǎn)放在了動(dòng)畫游戲中的角色控制上并提出了PFNN網(wǎng)絡(luò),通過提前預(yù)測(cè)骨骼動(dòng)畫中下一幀中各關(guān)節(jié)點(diǎn)的坐標(biāo)位置,將傳統(tǒng)角色控制中的實(shí)時(shí)運(yùn)算轉(zhuǎn)化為提前運(yùn)算,從而大幅度提高角色控制時(shí)的響應(yīng)速度。
三維人體骨骼動(dòng)畫技術(shù)由于本身會(huì)涉及到多個(gè)領(lǐng)域的相關(guān)學(xué)科,因此,對(duì)于研究者而言仍然是當(dāng)下研究的關(guān)注點(diǎn)與難點(diǎn)。
本文所需要解決的問題是以三維空間下給定的兩幀動(dòng)作數(shù)據(jù)作為輸入,并以輸入的動(dòng)作幀作為一段動(dòng)畫序列的首尾幀,根據(jù)首尾兩幀間隱藏的動(dòng)作趨勢(shì)信息自動(dòng)合成兩個(gè)動(dòng)作幀之間的缺失幀數(shù)據(jù),從而實(shí)現(xiàn)完整動(dòng)畫片段的自動(dòng)合成,提升動(dòng)畫系統(tǒng)的交互效率以及智能水平。具體的設(shè)計(jì)思想和模型架構(gòu)設(shè)計(jì)如下。
首先對(duì)首尾兩幀中的具體動(dòng)作信息進(jìn)行抽象描述,根據(jù)已經(jīng)學(xué)習(xí)到的動(dòng)作變化趨勢(shì)經(jīng)驗(yàn),對(duì)最能夠合理描述給定兩幀數(shù)據(jù)間所期望的運(yùn)動(dòng)趨勢(shì)數(shù)據(jù)進(jìn)行預(yù)測(cè),然后逐步進(jìn)行缺失幀數(shù)據(jù)的插值與補(bǔ)全,恢復(fù)完整運(yùn)動(dòng)信息,實(shí)現(xiàn)骨骼動(dòng)畫的自動(dòng)合成。具體設(shè)計(jì)步驟如下:
1)提取動(dòng)作捕捉數(shù)據(jù)庫中骨骼結(jié)構(gòu)與骨骼關(guān)節(jié)點(diǎn)在運(yùn)動(dòng)時(shí)的運(yùn)動(dòng)特征,建立特征提取模型;
2)根據(jù)動(dòng)作特征恢復(fù)首尾幀之間丟失的動(dòng)作趨勢(shì)信息,對(duì)首尾兩幀間的運(yùn)動(dòng)趨勢(shì)進(jìn)行預(yù)測(cè)并得到合理的運(yùn)動(dòng)變化特征模型;
3)結(jié)合2)中所預(yù)測(cè)到的運(yùn)動(dòng)特征與給定動(dòng)作幀信息逐步進(jìn)行中間缺失幀的插值,合成三維空間下完整的骨骼動(dòng)畫序列。
骨骼動(dòng)畫自動(dòng)合成模型架構(gòu)如圖1所示。整個(gè)模型可以分為兩個(gè)部分,其中第一部分(左側(cè)部分)是動(dòng)作信息特征提取與恢復(fù)單元,在這部分中經(jīng)過特征提取的原始動(dòng)作數(shù)據(jù)會(huì)以動(dòng)作流形的形式在隱藏單元中進(jìn)行表示。另外,為了可以實(shí)現(xiàn)從動(dòng)作流形中的特征數(shù)據(jù)到原始動(dòng)作數(shù)據(jù)的恢復(fù),這部分單元在設(shè)計(jì)上可以同時(shí)進(jìn)行特征提取與特征恢復(fù)的雙向操作。第二部分(右側(cè)部分)是動(dòng)作趨勢(shì)信息恢復(fù)單元,這部分與動(dòng)作信息提取模塊的頂端相連接,在整個(gè)計(jì)算過程中逐步完成丟失動(dòng)作趨勢(shì)特征信息的預(yù)測(cè)與恢復(fù),輸出結(jié)果以動(dòng)作流形的方式映射到隱藏單元。經(jīng)過預(yù)測(cè)并恢復(fù)的特征信息最后通過第一部分單元的動(dòng)作信息恢復(fù)操作進(jìn)一步恢復(fù)完整的動(dòng)作信息,實(shí)現(xiàn)動(dòng)畫序列缺失幀的插值與補(bǔ)全。
圖1 骨骼動(dòng)畫自動(dòng)合成模型結(jié)構(gòu)
為了從原始骨骼動(dòng)畫數(shù)據(jù)中抽象出具體動(dòng)作的骨骼關(guān)節(jié)點(diǎn)變化趨勢(shì)特征,并能夠通過已有特征數(shù)據(jù)信息恢復(fù)出完整的動(dòng)作序列,在這部分的模型設(shè)計(jì)上本文采用具有雙向性的自編碼網(wǎng)絡(luò)作為主要模型單元。由于自編碼網(wǎng)絡(luò)同時(shí)具有編碼與解碼兩種計(jì)算,因此可以通過編碼計(jì)算進(jìn)行特征提取從而對(duì)原始動(dòng)作數(shù)據(jù)進(jìn)行抽象,通過解碼計(jì)算從具體的動(dòng)作特征信息中恢復(fù)完整的動(dòng)作信息。在設(shè)計(jì)上具體的細(xì)節(jié)如下。
本章中在數(shù)據(jù)采集時(shí)使用CMU的Mocap提供的人體動(dòng)作捕捉數(shù)據(jù)作為原始數(shù)據(jù)集,(包括走、跑、跳躍、拳擊等20種基本人體動(dòng)作),其中數(shù)據(jù)集中的幀率為120幀/秒,并對(duì)原始數(shù)據(jù)集中人體骨骼關(guān)節(jié)點(diǎn)坐標(biāo)數(shù)據(jù)進(jìn)行位移和正方向的統(tǒng)一化預(yù)處理。在具體的預(yù)處理過程中通過消除骨骼根節(jié)點(diǎn)的位移信息實(shí)現(xiàn)位移統(tǒng)一化,并根據(jù)人體骨骼結(jié)構(gòu)定義正方向?yàn)槿梭w左右大腿骨骼向量和左右手臂骨骼向量的平均向量,通過消除正方向相對(duì)于右手坐標(biāo)系軸正半軸在軸上的相對(duì)旋轉(zhuǎn),實(shí)現(xiàn)正方向的統(tǒng)一化。
為了滿足自編碼網(wǎng)絡(luò)的輸入條件并屏蔽不同動(dòng)畫序列中的幀數(shù)目的不一致性,在數(shù)據(jù)處理時(shí)使用尺寸為=240的滑動(dòng)窗口法依次對(duì)原始動(dòng)作序列數(shù)據(jù)進(jìn)行切片,從而獲取等幀長(zhǎng)的動(dòng)作序列片段,為了增加數(shù)據(jù)集容量并豐富動(dòng)畫序列的多樣性,在數(shù)據(jù)切片過程中控制窗口滑動(dòng)步長(zhǎng)為2 ,相當(dāng)于對(duì)原始的數(shù)據(jù)序列每隔1秒進(jìn)行切片,這種切片策略可以在人眼可分辨的時(shí)間間隔條件下有效地利用原始數(shù)據(jù)并生成足夠豐富動(dòng)作片段數(shù)據(jù)。當(dāng)滑動(dòng)到序列末尾使得剩余幀序列長(zhǎng)度小于窗口尺寸時(shí)則從動(dòng)作序列的尾幀開始向前繼續(xù)滑動(dòng)一個(gè)完整的窗口長(zhǎng)度,具體的窗口滑動(dòng)過程如圖2所示。經(jīng)過滑動(dòng)窗口法切片后可以生成具有統(tǒng)一維度的動(dòng)作序列片段數(shù)據(jù),用∈××3表示,其中表示人體骨骼關(guān)節(jié)點(diǎn)的數(shù)目,每個(gè)關(guān)節(jié)點(diǎn)對(duì)應(yīng)于三維坐標(biāo)系下的位置坐標(biāo)。
圖2 采用滑動(dòng)窗口法的特征提取模型訓(xùn)練數(shù)據(jù)生成過程
自編碼網(wǎng)絡(luò)作為深度學(xué)習(xí)領(lǐng)域廣泛使用的基礎(chǔ)性結(jié)構(gòu),其主要應(yīng)用于無監(jiān)督學(xué)習(xí)。自編碼網(wǎng)絡(luò)可以通過多層的堆疊和逐層的預(yù)訓(xùn)練,幫助整個(gè)網(wǎng)絡(luò)可以更快更好地收斂到最小值點(diǎn)。相對(duì)于傳統(tǒng)的特征提取操作,使用卷積操作的自編碼網(wǎng)絡(luò)可以更加有效地對(duì)輸入信號(hào)進(jìn)行疊加和濾波進(jìn)而提取信號(hào)內(nèi)容中的主要特征信息。整個(gè)自編碼網(wǎng)絡(luò)通過隱藏層對(duì)輸入進(jìn)行壓縮,并在輸出層中進(jìn)行解壓縮,通過最小化整個(gè)計(jì)算過程中的信息丟失來最大程度地保留輸入中的主要特征信息。
基于上述討論,本文在針對(duì)骨骼動(dòng)畫特征提取的模型設(shè)計(jì)上使用基于卷積自編碼網(wǎng)絡(luò)的模型結(jié)構(gòu)。在整個(gè)過程中分別提供了編碼操作EC和解碼操作DC,通過編碼EC計(jì)算可以抽象出輸入動(dòng)畫片段序列的主要特征并以動(dòng)作流形的形式存儲(chǔ)與隱藏單元H中;另一方面,解碼操作DC可以將隱藏單元中的動(dòng)作流形進(jìn)行重構(gòu)并恢復(fù)完整的骨骼動(dòng)畫序列片段數(shù)據(jù)。
在進(jìn)行編碼網(wǎng)絡(luò)的設(shè)計(jì)上,本章中使用2層卷積結(jié)構(gòu)作為基本運(yùn)算單元,具體編碼計(jì)算如式(1)所示
()=((((?+))?+))
(1)
作為編碼網(wǎng)絡(luò)的逆方向運(yùn)算,解碼計(jì)算的運(yùn)算過程如式(2)所示
(2)
圖3 自編碼網(wǎng)絡(luò)結(jié)構(gòu)
自編碼網(wǎng)絡(luò)中完整的編碼與解碼計(jì)算實(shí)際上是以原始輸入數(shù)據(jù)作為標(biāo)準(zhǔn)實(shí)現(xiàn)數(shù)據(jù)再生成的過程,在整個(gè)過程中通過最小化中間誤差來提高網(wǎng)絡(luò)質(zhì)量。根據(jù)上述分析,本文給出了如式(3)所示的誤差函數(shù):
(3)
該方程的含義是通過衡量原始輸入數(shù)據(jù)與再生成數(shù)據(jù)間距離的方差來反應(yīng)在網(wǎng)絡(luò)運(yùn)算中所造成的誤差損失。
為了可以從給定的首尾兩幀動(dòng)作數(shù)據(jù)中自動(dòng)合成中間缺失幀數(shù)據(jù),本文采用基于深度學(xué)習(xí)的方法,將整個(gè)合成過程分為兩個(gè)步驟。首先,通過給定幀動(dòng)作間的具體骨架結(jié)構(gòu)之間的關(guān)系,根據(jù)所提取的骨骼動(dòng)畫特征經(jīng)驗(yàn),進(jìn)行動(dòng)作變化趨勢(shì)預(yù)測(cè)并將預(yù)測(cè)結(jié)果以動(dòng)作流形方式進(jìn)行存儲(chǔ);其次,根據(jù)預(yù)測(cè)的動(dòng)作流形結(jié)果生成插值幀數(shù)據(jù),實(shí)現(xiàn)完整骨骼動(dòng)畫序列數(shù)據(jù)的自動(dòng)合成。
在實(shí)現(xiàn)動(dòng)畫插值幀自動(dòng)合成過程中最重要的就是根據(jù)動(dòng)作捕捉數(shù)據(jù)庫中的具體動(dòng)畫片段數(shù)據(jù)學(xué)習(xí)并建立給定兩幀動(dòng)作間的關(guān)系到運(yùn)動(dòng)變化趨勢(shì)之間的映射關(guān)系,具體數(shù)據(jù)選擇上同樣使用在21節(jié)中經(jīng)過預(yù)處理所得到的統(tǒng)一化數(shù)據(jù)集。為了能夠通過神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)到完整的映射關(guān)系,在數(shù)據(jù)準(zhǔn)備上需要同時(shí)給出輸入數(shù)據(jù)和真實(shí)動(dòng)作變化趨勢(shì)輸出數(shù)據(jù)。其中輸入數(shù)據(jù)為一段完整動(dòng)畫序列中的首尾兩幀人體各骨骼關(guān)節(jié)點(diǎn)在三維坐標(biāo)系下的坐標(biāo)位置信息;為了從動(dòng)作捕捉數(shù)據(jù)庫中獲得具體動(dòng)作序列中的變化趨勢(shì),本文使用同22節(jié)的滑動(dòng)窗口法生成的固定長(zhǎng)度的骨骼動(dòng)畫序列數(shù)據(jù)作為真實(shí)輸出數(shù)據(jù),將動(dòng)畫序列首尾兩幀的數(shù)據(jù)信息直接進(jìn)行拼接并作為輸入數(shù)據(jù)。具體的訓(xùn)練數(shù)據(jù)集的生成過程如圖4所示。
圖4 采用滑動(dòng)窗口法的動(dòng)畫插值幀自動(dòng)合成模型訓(xùn)練數(shù)據(jù)生成過程
在進(jìn)行插值幀自動(dòng)合成模型的設(shè)計(jì)上,本文使用雙線性插值與卷積策略相結(jié)合的策略進(jìn)行模型構(gòu)建。雙線性插值算法廣泛用于計(jì)算機(jī)視覺領(lǐng)域,其中比較典型的應(yīng)用是進(jìn)行圖像縮放。另外,該算法還具有數(shù)據(jù)填充的功能。根據(jù)這一功能,插值幀生成模型第一步需要解決的就是將輸入數(shù)據(jù)第一維度的尺寸進(jìn)行放大從而滿足到動(dòng)作流形數(shù)據(jù)格式上的一致性。另外,考慮到單純使用雙線性插值法只是實(shí)現(xiàn)了維度上的統(tǒng)一,但并不能根據(jù)輸入數(shù)據(jù)反映出所隱藏的動(dòng)作趨勢(shì)信息,本文在進(jìn)行模型設(shè)計(jì)上加入了卷積操作對(duì)雙線性插值后的數(shù)據(jù)進(jìn)行濾波,通過訓(xùn)練對(duì)卷積運(yùn)算中的參數(shù)進(jìn)行優(yōu)化從而實(shí)現(xiàn)到具體動(dòng)作趨勢(shì)的擬合。
在具體的網(wǎng)絡(luò)模型設(shè)計(jì)中,從輸入中的首尾幀動(dòng)作數(shù)據(jù)到具體動(dòng)作流形的轉(zhuǎn)換通過基于深度學(xué)習(xí)的5層前饋網(wǎng)絡(luò)進(jìn)行實(shí)現(xiàn)。考慮到網(wǎng)絡(luò)輸入與輸出數(shù)據(jù)間在第一維度上的尺寸相差較大并結(jié)合雙線性插值算法本身在數(shù)據(jù)填充的過程時(shí)會(huì)造成數(shù)據(jù)的失真,一次性將輸入數(shù)據(jù)直接放大到與輸出數(shù)據(jù)相同的尺寸會(huì)造成較大的數(shù)據(jù)損失,從而加大了卷積濾波的負(fù)擔(dān)從而無法得到期望的結(jié)果。為了解決上述問題,在網(wǎng)絡(luò)模型的設(shè)計(jì)上將雙線性插值計(jì)算平均分配到了前饋網(wǎng)絡(luò)的各層之間從而可以遞進(jìn)地放大輸入數(shù)據(jù)的尺寸,并逐步通過卷積濾波實(shí)現(xiàn)到網(wǎng)絡(luò)輸出的擬合。綜上所述,整個(gè)前饋網(wǎng)絡(luò)的計(jì)算可以用式(4)所表示
∏()=((((((((
(4)
圖5 雙線性插值與卷積策略相結(jié)合的前饋網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)Mocap中所提供的數(shù)據(jù)集,可以分別根據(jù)∏運(yùn)算和EC運(yùn)算將輸入數(shù)據(jù)集In和輸出數(shù)據(jù)集Out映射到隱藏單元H,因此在進(jìn)行前饋網(wǎng)絡(luò)的訓(xùn)練時(shí)本章所給出如式(5)所示的誤差函數(shù)對(duì)前饋網(wǎng)絡(luò)質(zhì)量進(jìn)行評(píng)估。
(5)
在自編碼網(wǎng)絡(luò)已經(jīng)訓(xùn)練完成的條件下,該公式的含義是通過衡量經(jīng)過前饋網(wǎng)絡(luò)所預(yù)測(cè)的動(dòng)作趨勢(shì)信息到真實(shí)動(dòng)作趨勢(shì)特征數(shù)據(jù)間距離的方差來反應(yīng)前饋網(wǎng)絡(luò)在進(jìn)行動(dòng)作流形預(yù)測(cè)時(shí)的質(zhì)量。
在實(shí)驗(yàn)中,為了能更好地反映數(shù)據(jù)本身的特征并為了在進(jìn)行網(wǎng)絡(luò)訓(xùn)練時(shí)加速網(wǎng)絡(luò)收斂能力,本文使用z-score標(biāo)準(zhǔn)化方法將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,目的是能夠?qū)⒉煌考?jí)的數(shù)據(jù)統(tǒng)一轉(zhuǎn)化為同一個(gè)量級(jí),以保證數(shù)據(jù)之間的可比性。為了可以測(cè)試網(wǎng)絡(luò)性能,本文將數(shù)據(jù)全集分為訓(xùn)練集和測(cè)試集兩部分,其中訓(xùn)練集占全集的80%,測(cè)試集占20%。
在具體訓(xùn)練過程中,本文使用Tensorflow0做為深度學(xué)習(xí)平臺(tái),在此基礎(chǔ)上使用NVIDIA GeForce Titan進(jìn)行GPU加速來提高計(jì)算力從而縮短訓(xùn)練周期。具體兩個(gè)部分網(wǎng)絡(luò)的訓(xùn)練細(xì)節(jié)如下:
1)在進(jìn)行動(dòng)作特征提取網(wǎng)絡(luò)的訓(xùn)練時(shí),設(shè)置mini batch值為64,并對(duì)完整數(shù)據(jù)集訓(xùn)練300輪,使用Adam方法作為優(yōu)化器通過最小化誤差函數(shù)(3)實(shí)現(xiàn)卷積自編碼網(wǎng)絡(luò)的優(yōu)化。最終生成完整的骨骼動(dòng)畫特征提取模型。
2)在進(jìn)行骨骼動(dòng)畫插值幀自動(dòng)合成網(wǎng)絡(luò)訓(xùn)練時(shí),設(shè)置mini batch值為64,為對(duì)訓(xùn)練數(shù)據(jù)全集訓(xùn)練1000輪,使用Adam方法最小化函數(shù)(5)進(jìn)行網(wǎng)絡(luò)參數(shù)優(yōu)化。最終生成骼動(dòng)畫插值幀自動(dòng)合成模型,由于在網(wǎng)絡(luò)訓(xùn)練時(shí)將數(shù)據(jù)進(jìn)行了標(biāo)準(zhǔn)化,因此在真實(shí)應(yīng)用場(chǎng)景下需要將經(jīng)過網(wǎng)絡(luò)運(yùn)算后得到的標(biāo)準(zhǔn)數(shù)據(jù)進(jìn)行z-score標(biāo)準(zhǔn)化的逆運(yùn)算,恢復(fù)動(dòng)畫序列中各動(dòng)畫幀中真實(shí)的骨骼節(jié)點(diǎn)位置坐標(biāo)數(shù)據(jù)。
基于自編碼網(wǎng)絡(luò)的動(dòng)畫特征提取模型訓(xùn)練時(shí)的誤差走勢(shì)如圖6所示。
圖6 基于自編碼網(wǎng)絡(luò)的動(dòng)畫特征提取模型的訓(xùn)練期間誤差走勢(shì)
根據(jù)誤差走勢(shì)信息可以反映出自編碼網(wǎng)絡(luò)在訓(xùn)練階段得到了較好的收斂,并將最終誤差穩(wěn)定在0.01數(shù)量級(jí)。在實(shí)驗(yàn)中同時(shí)使用測(cè)試集對(duì)訓(xùn)練完成的網(wǎng)絡(luò)模型進(jìn)行測(cè)試。對(duì)于特征提取模型而言使用式(3)作為衡量標(biāo)準(zhǔn)以一個(gè)mini batch為單位逐批計(jì)算并記錄測(cè)試集中真實(shí)數(shù)據(jù)與經(jīng)過自編碼網(wǎng)絡(luò)再生成數(shù)據(jù)間的距離方差,結(jié)果如圖7所示。根據(jù)結(jié)果可以看出自編碼網(wǎng)絡(luò)對(duì)于測(cè)試集具有比較理想的效果,并且可以將大部分誤差基本穩(wěn)定在0.0100.025左右。
圖7 基于自編碼網(wǎng)絡(luò)的動(dòng)畫特征提取模型測(cè)試結(jié)果
基于雙線性插值與卷積相結(jié)合的骨骼動(dòng)畫插值幀自動(dòng)生成模型訓(xùn)練時(shí)的誤差走勢(shì)如圖8所示。
圖8 使用雙線性插值與卷積相結(jié)合的插值幀自動(dòng)合成模型
為了反映使用雙線形插值與卷積相結(jié)合策略的特性,在實(shí)驗(yàn)中同時(shí)使用同樣具有數(shù)據(jù)填充功能的最近鄰插值與卷積相結(jié)合策略以及深度反卷積策略的前饋網(wǎng)絡(luò)模型進(jìn)行對(duì)比實(shí)驗(yàn)(其中最近鄰插值與卷積策略相結(jié)合的網(wǎng)絡(luò)模型用nn+conv表示、雙線形插值與卷積策略相結(jié)合的網(wǎng)絡(luò)模型用bl+conv表示、深度反卷積網(wǎng)絡(luò)模型用de-conv表示),訓(xùn)練時(shí)的誤差對(duì)比走勢(shì)如圖9所示。
圖9 使用不同策略的骨骼動(dòng)畫插值幀自動(dòng)生成模型訓(xùn)練期間誤差走勢(shì)
由實(shí)驗(yàn)結(jié)果可知對(duì)于使用同種誤差函數(shù)進(jìn)行訓(xùn)練時(shí)使用插值與卷積策略相結(jié)合的兩種網(wǎng)絡(luò)策略會(huì)從一個(gè)相對(duì)反卷積網(wǎng)絡(luò)而言從更高的誤差迅速下降并保持平穩(wěn),而使用反卷積策略的網(wǎng)絡(luò)會(huì)在初期從相對(duì)其它兩種網(wǎng)絡(luò)而言從更低的誤差值緩慢下降,并最終下降到與使用插值與卷積策略相結(jié)合的網(wǎng)絡(luò)相當(dāng)?shù)恼`差水平并保持平穩(wěn);對(duì)于兩種使用插值與卷積策略相結(jié)合的網(wǎng)絡(luò)而言,使用雙線形插值策略的網(wǎng)絡(luò)在訓(xùn)練時(shí)的誤差下降會(huì)略優(yōu)于使用最近鄰插值策略的網(wǎng)絡(luò),可以在第100個(gè)epoch左右迅速下降并保持平穩(wěn)狀態(tài)。在實(shí)驗(yàn)中同時(shí)使用測(cè)試集對(duì)上述三種網(wǎng)絡(luò)模型進(jìn)行對(duì)比測(cè)試,由于對(duì)于該模型最終的衡量標(biāo)準(zhǔn)是最終完整動(dòng)畫序列的合成能力,因此在使用測(cè)試集進(jìn)行網(wǎng)絡(luò)質(zhì)量測(cè)試時(shí)使用式(6)作為網(wǎng)絡(luò)誤差衡量標(biāo)準(zhǔn)。
(6)
在實(shí)驗(yàn)中對(duì)以測(cè)試集按照mini batch為單位逐批計(jì)算并計(jì)算平均誤差,得到如表1所示的測(cè)試對(duì)比結(jié)果。
表1 采用不同策略的測(cè)試平均誤差結(jié)果
綜合上述結(jié)果可以看出在使用雙線形插值與卷積策略相結(jié)合的網(wǎng)絡(luò)模型的效果略高于其它兩種模型,并且可以得到較為理想的結(jié)果。為了驗(yàn)證本文方法的有效性,在實(shí)驗(yàn)中隨機(jī)從Mocap數(shù)據(jù)庫中抽取兩幀人體動(dòng)作數(shù)據(jù)作為模型的輸入,根據(jù)本文方法將生成的動(dòng)畫序列進(jìn)行三維渲染,并生成三維人體骨骼動(dòng)畫,結(jié)果如圖10所示。
圖10 根據(jù)任意兩個(gè)人體動(dòng)作數(shù)據(jù)作為首尾幀自動(dòng)合成三維人體骨骼動(dòng)畫序列
根據(jù)結(jié)果可以得出在任意給定兩個(gè)人體動(dòng)作數(shù)據(jù)作為動(dòng)畫的首尾幀時(shí),本文所提的方法具有完整骨骼動(dòng)畫自動(dòng)合成的能力。
為了反映本文模型方法在插值幀生成過程中具有動(dòng)作趨勢(shì)轉(zhuǎn)折信息的預(yù)測(cè)和還原能力,在有效性驗(yàn)證中將本文方法與傳統(tǒng)基于幾何插值方法的動(dòng)畫生成方法進(jìn)行對(duì)比,對(duì)比結(jié)果如圖11所示。根據(jù)結(jié)果可以得出傳統(tǒng)的方法在合成動(dòng)畫時(shí)由于單純使用幾何插值方法,因此不能得到動(dòng)畫序列中動(dòng)作的轉(zhuǎn)折信息,而為了實(shí)現(xiàn)上述功能,傳統(tǒng)方法不得不多次在動(dòng)畫序列中插入能夠描述動(dòng)作轉(zhuǎn)折信息的關(guān)鍵幀,從而增大了交互復(fù)雜度;而本文所提出的方法由于在訓(xùn)練時(shí)學(xué)習(xí)到了動(dòng)作變化趨勢(shì)信息,因此可以根據(jù)首尾幀的動(dòng)作數(shù)據(jù)預(yù)測(cè)出動(dòng)畫序列中可能存在的動(dòng)作轉(zhuǎn)折信息,并能夠很好地描述這種變化趨勢(shì)。
圖11 本文方法與傳統(tǒng)幾何插值法動(dòng)畫合成結(jié)果對(duì)比
本文以人體骨骼動(dòng)畫作為研究背景,將簡(jiǎn)化人體骨骼動(dòng)畫作為出發(fā)點(diǎn),并使用深度學(xué)習(xí)方法從骨骼動(dòng)畫特征提取與動(dòng)畫插值幀自動(dòng)合成兩個(gè)角度進(jìn)行分析與討論,并使用深度學(xué)習(xí)策略給出三維人體骨骼動(dòng)畫自動(dòng)合成方法。在研究過程中首先確定了整個(gè)方法的輸入與輸出數(shù)據(jù)結(jié)構(gòu)并根據(jù)數(shù)據(jù)特征進(jìn)行模型動(dòng)畫特征提取模型與使用前饋網(wǎng)絡(luò)作為結(jié)構(gòu)的骨骼動(dòng)畫插值幀自動(dòng)合成模型;通過分析網(wǎng)絡(luò)模型質(zhì)量的影響因素,給出了使用雙線性插值與卷積策略相結(jié)合的骨骼動(dòng)畫插值幀自動(dòng)合成模型,并在訓(xùn)練過程中給出了網(wǎng)絡(luò)質(zhì)量的誤差函數(shù)。最后通過實(shí)驗(yàn)對(duì)比并分析了本文方法的合理性與有效性。由此可見,本文所提出的方法可以實(shí)現(xiàn)三維人體骨骼動(dòng)畫的自動(dòng)合成工作,在簡(jiǎn)化交互復(fù)雜度以及提高動(dòng)畫系統(tǒng)智能水平方面具有一定的實(shí)用價(jià)值。