楊 晶,李書杰,劉曉平
(合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230601)
人體骨骼運(yùn)動數(shù)據(jù)在游戲設(shè)計(jì)[1-2]、影視制作、體育訓(xùn)練和醫(yī)療康復(fù)等領(lǐng)域得到了廣泛的應(yīng)用。人們可以通過高精度運(yùn)動捕獲系統(tǒng),如Vicon光學(xué)運(yùn)動捕捉系統(tǒng)和Xsens傳感器運(yùn)動捕捉系統(tǒng)等來獲得人體骨骼運(yùn)動數(shù)據(jù),這些高精度運(yùn)動數(shù)據(jù)采集設(shè)備獲得的人體骨骼運(yùn)動數(shù)據(jù)節(jié)點(diǎn)信息豐富并且精度較高,然而其價(jià)格昂貴且穿戴不便,難以普及使用。深度相機(jī)Kinect可以實(shí)時(shí)獲取人體骨骼運(yùn)動數(shù)據(jù)[3],其價(jià)格低廉、易于使用,但其獲取的運(yùn)動數(shù)據(jù)僅含25個骨骼節(jié)點(diǎn)并且含有大量的噪聲。因此,通過Kinect獲得的人體骨骼運(yùn)動數(shù)據(jù)在實(shí)際應(yīng)用之前需要經(jīng)過優(yōu)化處理。運(yùn)動數(shù)據(jù)優(yōu)化(motion refinement)包括2個方面:一方面是指補(bǔ)全運(yùn)動數(shù)據(jù)中的缺失值;另一方面是去除運(yùn)動數(shù)據(jù)中的噪聲和異常值,并且優(yōu)化后數(shù)據(jù)要能夠保持運(yùn)動數(shù)據(jù)的時(shí)空模式和人體運(yùn)動學(xué)信息[4]。本文期望通過深度神經(jīng)網(wǎng)絡(luò)對Kinect數(shù)據(jù)進(jìn)行優(yōu)化,既能夠補(bǔ)全Kinect缺失的骨骼節(jié)點(diǎn)信息也去除其中的噪聲和異常值,提升Kinect骨骼運(yùn)動數(shù)據(jù)的細(xì)節(jié)層次和數(shù)據(jù)精度,達(dá)到基于低精度便捷設(shè)備獲取高精度動捕數(shù)據(jù)的目的。
近年來越來越多的學(xué)者采用深度學(xué)習(xí)的方法對運(yùn)動數(shù)據(jù)進(jìn)行優(yōu)化處理并取得了較好的效果。例如,文獻(xiàn)[5]利用基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的自編碼器抽取運(yùn)動數(shù)據(jù)流形,實(shí)現(xiàn)運(yùn)動數(shù)據(jù)的去噪;文獻(xiàn)[6]訓(xùn)練了一個基于雙向長短時(shí)記憶(bidirectional long short term memory,Bi-LSTM)的濾波網(wǎng)絡(luò)對噪聲數(shù)據(jù)進(jìn)行濾波處理;文獻(xiàn)[7]提出一種基于Bi-LSTM的自編碼器,并通過在訓(xùn)練時(shí)施加運(yùn)動學(xué)約束提升去噪后數(shù)據(jù)的平滑自然性。但是這些方法對Kinect骨骼運(yùn)動數(shù)據(jù)的優(yōu)化仍存在骨骼扭曲等運(yùn)動不自然的現(xiàn)象。本文借鑒計(jì)算機(jī)視覺領(lǐng)域用于從視頻中提取人體骨骼運(yùn)動數(shù)據(jù)的著名網(wǎng)絡(luò) ——“堆疊沙漏”(stacked hourglass)網(wǎng)絡(luò)模型[8],該模型通過反復(fù)自下而上、自上而下的映射以及中間約束,有效地提升了運(yùn)動姿態(tài)的估計(jì)效果。在運(yùn)動數(shù)據(jù)處理領(lǐng)域,文獻(xiàn)[5]指出運(yùn)動數(shù)據(jù)到隱變量空間再到運(yùn)動數(shù)據(jù)這一映射過程可以獲得平滑自然的運(yùn)動。在計(jì)算機(jī)視覺領(lǐng)域隱變量約束常被用來提高網(wǎng)絡(luò)生成圖像的感知真實(shí)性[9]。因此,本文提出一種面向Kinect運(yùn)動數(shù)據(jù)優(yōu)化的堆疊自編碼器,將6個雙向循環(huán)自編碼器(bidirectional recurrent autoencoder,BRA)進(jìn)行堆疊,使得噪聲數(shù)據(jù)能夠多次重復(fù)從運(yùn)動數(shù)據(jù)到隱變量空間再到運(yùn)動數(shù)據(jù)這一映射過程,并且同時(shí)使用隱變量約束提升優(yōu)化后數(shù)據(jù)與動捕數(shù)據(jù)之間的感知相似度,使得網(wǎng)絡(luò)生成的運(yùn)動真實(shí)自然。
綜上所述,本文主要工作包括以下3點(diǎn):
(1) 提出的堆疊雙向循環(huán)自編碼器能夠?qū)崿F(xiàn)運(yùn)動數(shù)據(jù)到隱變量的重復(fù)映射與逆映射,提升了網(wǎng)絡(luò)輸出運(yùn)動數(shù)據(jù)的平滑自然性。實(shí)驗(yàn)數(shù)據(jù)表明隨著自編碼器堆疊個數(shù)的增加,優(yōu)化后運(yùn)動數(shù)據(jù)平滑性逐漸提升,網(wǎng)絡(luò)生成的運(yùn)動數(shù)據(jù)平滑自然。
(2) 采用隱變量約束提高網(wǎng)絡(luò)輸出運(yùn)動數(shù)據(jù)與動捕數(shù)據(jù)的感知真實(shí)性。實(shí)驗(yàn)結(jié)果表明,在網(wǎng)絡(luò)訓(xùn)練過程中施加隱變量約束,本文方法生成的運(yùn)動自然協(xié)調(diào),具有較強(qiáng)的感知真實(shí)性。
(3) 采用滑窗方式對長運(yùn)動序列進(jìn)行處理,使得本文算法可以將Kinect數(shù)據(jù)轉(zhuǎn)化為高精度動捕數(shù)據(jù),實(shí)現(xiàn)低精度設(shè)備的采集數(shù)據(jù)高精度化。
為優(yōu)化Kinect捕獲的不完整的運(yùn)動數(shù)據(jù),文獻(xiàn)[10]提出了一種基于高斯過程模型的實(shí)時(shí)概率框架來提高Kinect捕獲運(yùn)動數(shù)據(jù)的準(zhǔn)確性,其方法在自遮擋情況下,也能產(chǎn)生高質(zhì)量的運(yùn)動數(shù)據(jù),然而由于高斯過程的計(jì)算復(fù)雜度高,該方法只適用于小型數(shù)據(jù)集;文獻(xiàn)[11]使用基于高斯過程的局部混合方法提高求解速度,其方法允許局部模型實(shí)時(shí)增量更新,相比文獻(xiàn)[10]能夠處理更多數(shù)據(jù)樣本。這2種方法都通過約束連續(xù)幀的速度變化來保證生成運(yùn)動平滑,然而很難恢復(fù)轉(zhuǎn)身的運(yùn)動。文獻(xiàn)[12]利用基于主成分分析的降維方法從運(yùn)動數(shù)據(jù)庫中搜索合適的運(yùn)動數(shù)據(jù)來補(bǔ)全缺失值,并使用比例-微分(proportional-derivative,PD)控制器生成物理上可信的運(yùn)動,這種運(yùn)動恢復(fù)方法的準(zhǔn)確性嚴(yán)重依賴數(shù)據(jù)庫的內(nèi)容和大小;文獻(xiàn)[13]提出一種將局部姿態(tài)估計(jì)與全局檢索技術(shù)相結(jié)合的方法,使用基于霍斯多夫距離的投票方法將2種假設(shè)結(jié)合起來,得到最終的運(yùn)動姿態(tài),其方法考慮了運(yùn)動的連續(xù)性,能夠有效解決因遮擋和噪聲導(dǎo)致的數(shù)據(jù)缺失問題,然而對快速或繞垂直軸旋轉(zhuǎn)超過45°的運(yùn)動恢復(fù)效果較差。上述非深度學(xué)習(xí)類的Kinect數(shù)據(jù)去噪方法可以實(shí)現(xiàn)一些運(yùn)動片段的處理,但對于可能包含任意運(yùn)動的連續(xù)長序列運(yùn)動處理效果不明顯。
基于深度學(xué)習(xí)的運(yùn)動數(shù)據(jù)優(yōu)化方法近年來也逐漸發(fā)展起來。文獻(xiàn)[6]使用EBD(Encoder-Bidirectional-Decoder)、EBF(Encoder-Bidirectional-Filter)2個神經(jīng)網(wǎng)絡(luò)來優(yōu)化運(yùn)動數(shù)據(jù),其中神經(jīng)網(wǎng)絡(luò)EBD利用關(guān)節(jié)信息和時(shí)域相關(guān)性填補(bǔ)缺失數(shù)據(jù),經(jīng)由EBD降噪后的運(yùn)動數(shù)據(jù)存在抖動以及噪聲未完全清除的缺點(diǎn),因此還需使用神經(jīng)網(wǎng)絡(luò)EBF做后續(xù)的平滑處理,但是該方法不能夠用于提升運(yùn)動數(shù)據(jù)的細(xì)節(jié)層次;文獻(xiàn)[14]通過基于卷積神經(jīng)網(wǎng)絡(luò)的自編碼器將Kinect運(yùn)動數(shù)據(jù)進(jìn)行映射和逆映射,但是生成的運(yùn)動數(shù)據(jù)還存在一定的抖動;文獻(xiàn)[15]使用深度循環(huán)神經(jīng)網(wǎng)絡(luò)(deep recurrent neural network,DRNN)分別處理Kinect數(shù)據(jù)的關(guān)節(jié)點(diǎn)三維坐標(biāo)和速度,其結(jié)果分別記為pDRNN和vDRNN,使用卡爾曼濾波和k近鄰算法整合增強(qiáng)pDRNN和vDRNN的結(jié)果來保證運(yùn)動的自然性,也就意味著該方法還需要后處理步驟才可以生成平滑自然的運(yùn)動;文獻(xiàn)[7]提出的BRA網(wǎng)絡(luò)能夠?qū)崿F(xiàn)對Kinect骨骼運(yùn)動數(shù)據(jù)片段的優(yōu)化,但是當(dāng)數(shù)據(jù)的細(xì)節(jié)層次需要提高時(shí),BRA難以保證優(yōu)化后數(shù)據(jù)的感知真實(shí)性。
本文提出的算法目標(biāo)是能夠?qū)inect骨骼運(yùn)動數(shù)據(jù)序列自動轉(zhuǎn)化為動捕數(shù)據(jù),動捕數(shù)據(jù)的數(shù)據(jù)精度和細(xì)節(jié)層次都高于Kinect數(shù)據(jù),因此算法需要能夠去除噪聲、能夠確保細(xì)節(jié)層次提高后的數(shù)據(jù)具有感知真實(shí)性,使得輸出的運(yùn)動平滑自然,而且要能夠?qū)﹂L運(yùn)動序列作處理。
為實(shí)現(xiàn)本文目標(biāo),首先需要構(gòu)建Kinect和動捕設(shè)備2種運(yùn)動數(shù)據(jù)采集設(shè)備同步采集的運(yùn)動數(shù)據(jù)集。本文采用Kinect和諾亦騰Perception Neuron動作捕捉儀采集同步數(shù)據(jù)庫,讓表演者在采集環(huán)境中連續(xù)做常見運(yùn)動,如打籃球、舞蹈、跳躍、步行等,獲得一系列長運(yùn)動序列。Kinect采集到的數(shù)據(jù)以關(guān)節(jié)點(diǎn)坐標(biāo)格式保存,每幀數(shù)據(jù)包含25個關(guān)節(jié)點(diǎn)的三維坐標(biāo),因此每一幀運(yùn)動數(shù)據(jù)的維度為75(25×3=75)。諾亦騰采集到的運(yùn)動數(shù)據(jù)被轉(zhuǎn)換為關(guān)節(jié)坐標(biāo)格式,每幀數(shù)據(jù)包含59個關(guān)節(jié)點(diǎn)的三維坐標(biāo),因此每一幀運(yùn)動數(shù)據(jù)的維度為177(59×3=177)。2種運(yùn)動采集設(shè)備獲取運(yùn)動數(shù)據(jù)骨骼架構(gòu)如圖1所示。
圖1 運(yùn)動數(shù)據(jù)骨骼架構(gòu)
用2種設(shè)備獲得運(yùn)動序列后,需要對數(shù)據(jù)進(jìn)行同步預(yù)處理:首先做空間上的處理,將2種數(shù)據(jù)都變換為以0號節(jié)點(diǎn)即根節(jié)點(diǎn)為基準(zhǔn)的相對坐標(biāo)數(shù)據(jù);然后將2種運(yùn)動數(shù)據(jù)做時(shí)間同步處理,因?yàn)橹Z亦騰動捕的采樣頻率為60幀/s,而Kinect的采樣頻率不穩(wěn)定,約為30幀/s,所以以諾亦騰的采樣率和時(shí)間域?yàn)榛鶞?zhǔn),使用自然樣條插值將Kinect數(shù)據(jù)上采樣為60幀/s。預(yù)處理之后得到同步的“Kinect-動捕”長序列運(yùn)動數(shù)據(jù)集,其中70%的數(shù)據(jù)作為訓(xùn)練集,30%的數(shù)據(jù)作為測試集。
圖2 滑動切片示意圖
本文提出的網(wǎng)絡(luò)架構(gòu)由堆疊雙向循環(huán)自編碼器與感知自編碼器組成,如圖3所示。
圖3 堆疊自編碼器網(wǎng)絡(luò)結(jié)構(gòu)
堆疊雙向循環(huán)自編碼器由6個雙向循環(huán)自編碼器(S1~S6)堆疊而成。在堆疊雙向循環(huán)自編碼器中,XSi=DSi(ESi(XSi-1)),其中:i為雙向循環(huán)自編碼器的序號,i=1,2,…,6;XS0=XN為首個雙向循環(huán)自編碼器的輸入,即為噪聲運(yùn)動數(shù)據(jù)。最后一個雙向循環(huán)自編碼器的輸出XS6作為感知自編碼器的輸入,感知自編碼器的輸出Y作為優(yōu)化后運(yùn)動數(shù)據(jù)。
本文網(wǎng)絡(luò)結(jié)構(gòu)中堆疊的6個雙向循環(huán)自編碼器結(jié)構(gòu)與感知自編碼器結(jié)構(gòu)一致,如圖4所示,其中雙向循環(huán)自編碼器由結(jié)構(gòu)對稱的編碼器(encoder)和解碼器(decoder)構(gòu)成,均由3個全連接(fully connected,FC)層和1個Bi-LSTM單元組成,其中全連接網(wǎng)絡(luò)有利于運(yùn)動數(shù)據(jù)預(yù)測及缺損修復(fù)[16],Bi-LSTM單元更適用于處理具有時(shí)間序列特征的數(shù)據(jù)[7]。
圖4 雙向循環(huán)自編碼器結(jié)構(gòu)
在編碼器中運(yùn)動數(shù)據(jù)到隱變量的映射過程中數(shù)據(jù)維度變化過程為:
其中,m為運(yùn)動片段的幀數(shù),在本文中m=120。在雙向循環(huán)自編碼器S1中,d1=75,d2=128;在雙向循環(huán)自編碼器S2~S6與感知自編碼器中,d1=177,d2=226。
解碼器與編碼器對稱,隱變量到運(yùn)動數(shù)據(jù)的維度變化過程為:
編碼器將含有噪聲的人體骨骼運(yùn)動數(shù)據(jù)映射到隱變量空間,解碼器將隱變量映射回運(yùn)動數(shù)據(jù)空間得到優(yōu)化后的運(yùn)動,本文方法通過首尾連接6個雙向循環(huán)自編碼器與一個感知自編碼器,將運(yùn)動數(shù)據(jù)進(jìn)行重復(fù)的映射與逆映射,有利于獲得平滑度更高的運(yùn)動。
本文設(shè)置了2類約束損失函數(shù),分別是均方誤差約束和運(yùn)動學(xué)約束。
均方誤差約束記為網(wǎng)絡(luò)輸出和標(biāo)簽數(shù)據(jù)之間的均方誤差,運(yùn)動學(xué)約束用于提升網(wǎng)絡(luò)輸出數(shù)據(jù)的運(yùn)動學(xué)合理性,包括骨骼長度約束Lb、平滑性約束Ls和隱變量約束Lc。
2.3.1 均方誤差約束
網(wǎng)絡(luò)的輸入數(shù)據(jù)為Kinect運(yùn)動數(shù)據(jù)片段,標(biāo)簽數(shù)據(jù)為動捕運(yùn)動數(shù)據(jù)片段,為此本文定義均方誤差Lp為:
(1)
其中,f=120為訓(xùn)練數(shù)據(jù)的總幀數(shù)。需要重點(diǎn)指出的是,類似于堆疊沙漏模型[8],在本文方法中堆疊自編碼器中的每個子編碼器的輸出都會用于與標(biāo)簽數(shù)據(jù)求均方誤差,即(1)式中Y可以指代每個子自編碼器的輸出。
2.3.2 骨骼長度約束
骨骼長度約束用于堆疊自編碼器。設(shè)堆疊自編碼器輸出Y在第i幀骨骼t的骨骼長度為:
(2)
(3)
其中:lt為XC骨骼長度集合中的元素;J為關(guān)節(jié)點(diǎn)的個數(shù)。
2.3.3 平滑性約束
為確保優(yōu)化后的運(yùn)動序列在相鄰幀間過渡平滑,本文對堆疊自編碼器輸出數(shù)據(jù)施加平滑性約束,首先重復(fù)自編碼器的輸出Y的邊界元素得到Y(jié)′:Y(1,k)′=Y(2,k)′=Y(1,k),Y(f+1,k)′=Y(f+2,k)′=Y(f,k),Y(i,k)′=Y(i-1,k),1≤k≤177,2≤i≤f-1。其次,定義平滑矩陣O為:
(4)
平滑性損失函數(shù)為:
(5)
(5)式數(shù)值越小,證明運(yùn)動越平滑。最小化‖OY′‖2相當(dāng)于使自編碼器輸出的運(yùn)動序列在前后兩幀連續(xù)[4,17]。
2.3.4 隱變量約束
由于相似運(yùn)動的隱變量相似,且可以在隱變量空間中對運(yùn)動數(shù)據(jù)進(jìn)行編輯,為提高優(yōu)化后的數(shù)據(jù)與動捕數(shù)據(jù)的感知相似性,本文基于預(yù)訓(xùn)練的感知自編碼器,記感知自編碼器的編碼器為EC,感知損失函數(shù)的定義為:
(6)
其中,EC(XS6)、EC(XC)分別為堆疊自編碼器的輸出XS6與動捕數(shù)據(jù)XC經(jīng)由感知自編碼器編碼后的隱變量,將兩者作比較得出XS6與XC的感知相似性。
(1) 第1階段僅使用訓(xùn)練數(shù)據(jù)集中所有的XC訓(xùn)練感知自編碼器,對感知自編碼器的輸出YC施加均方誤差約束、骨骼長度約束和平滑性約束,損失函數(shù)為:
L1=λc1Lp(YC)+
λc2Lb(YC)+λc3Ls(YC)
(7)
其中,λc1、λc2、λc3分別為3種約束的權(quán)重系數(shù),本文設(shè)置λc1=1,λc2=λc3=0.000 2,訓(xùn)練迭代200次。訓(xùn)練完成后的感知自編碼器的編碼器和解碼器部分分別記為EC和DC。
(2) 第2階段訓(xùn)練基于隱變量約束的堆疊自編碼器,對堆疊雙向循環(huán)自編碼器中每個自編碼器的輸出施加均方誤差約束、骨骼長度約束和平滑性約束,并施加隱變量約束,損失函數(shù)為:
λsLs(XSi))+λcLc(XS6)
(8)
此階段使用XN與XC進(jìn)行網(wǎng)絡(luò)訓(xùn)練,由于2種數(shù)據(jù)骨骼架構(gòu)不一致,需加強(qiáng)骨骼長度約束和平滑性約束,設(shè)置權(quán)重系數(shù)λp=1,λb=λs=0.000 5,λc=1,訓(xùn)練迭代200次。
實(shí)驗(yàn)硬件處理器為Intel(R) Core(TM) i9-9900K,內(nèi)存32 GiB,顯卡為NVIDIA GeForce RTX 2080 Ti。實(shí)驗(yàn)基于TensorFlow框架,網(wǎng)絡(luò)的學(xué)習(xí)率初始化為0.000 01,并使用Adam優(yōu)化器動態(tài)調(diào)整各參數(shù)的學(xué)習(xí)速率。為避免過擬合,Bi-LSTM單元的dropout=0.2, batchsize設(shè)置為16。
長運(yùn)動序列的滑窗處理示意圖如圖5所示。
圖5 長運(yùn)動序列的滑窗處理示意圖
實(shí)現(xiàn)Kinect采集數(shù)據(jù)的動捕化,即將Kinect獲取的運(yùn)動數(shù)據(jù)序列自動轉(zhuǎn)化為具有動捕級精度的數(shù)據(jù),因此需要算法能夠處理Kinect獲取的整個長運(yùn)動數(shù)據(jù)序列。在訓(xùn)練階段網(wǎng)絡(luò)的輸入和輸出都是120幀的運(yùn)動片段,因此在運(yùn)行階段需要對長序列作滑窗處理。本文采用寬度為120幀、步長為1的滑窗對整個長運(yùn)動序列進(jìn)行逐幀處理。設(shè)Xw,i為長序列在第i次滑窗操作中得到的運(yùn)動片段,Yw,i為相應(yīng)網(wǎng)絡(luò)輸出,Xw,i、Yw,i的長度均為120幀,但僅取Yw,i的中間幀放入最終優(yōu)化序列中。
本部分實(shí)驗(yàn)的目的是驗(yàn)證雙向循環(huán)自編碼器堆疊層數(shù)與網(wǎng)絡(luò)輸出數(shù)據(jù)平滑性的關(guān)系,為此,分別比較了堆疊層數(shù)為1、2、3、4、5、6的網(wǎng)絡(luò)結(jié)構(gòu),分別記為BRA-S-1、BRA-S-2、BRA-S-3、BRA-S-4、BRA-S-5、BRA-S-6,見表1所列。
表1 堆疊次數(shù)與平滑性關(guān)系
由表1可知,堆疊模式可以提升運(yùn)動數(shù)據(jù)的平滑性,但隨著堆疊層數(shù)的增加,網(wǎng)絡(luò)參數(shù)急劇增長,考慮到算法的計(jì)算效率和計(jì)算資源損耗,本文設(shè)置網(wǎng)絡(luò)中雙向循環(huán)自編碼器的堆疊層數(shù)為6層。
本部分將證明隱變量約束可以提升優(yōu)化后數(shù)據(jù)的感知真實(shí)性。
3種方法網(wǎng)絡(luò)結(jié)構(gòu)特征見表2所列,將不使用隱變量約束的方法記為BRA-S,而本文采用的添加感知約束的方法記為BRA-S-C。另外,由于本文方法是在文獻(xiàn)[7]的BRA方法基礎(chǔ)上提出的,為此在本部分將對比本文提出的BRA-S-C和BRA方法的效果。測試數(shù)據(jù)是同步后的“Kinect-動捕”長序列運(yùn)動數(shù)據(jù)集。
表2 3種方法的網(wǎng)絡(luò)結(jié)構(gòu)特征
不同方法對一段對打籃球的長運(yùn)動序列處理效果如圖6所示,測試結(jié)果的某一幀中右手手腕的運(yùn)動軌跡如圖7所示。
圖6 運(yùn)動序列處理效果對比
圖7 運(yùn)動軌跡對比
類似于文獻(xiàn)[7],本文也采用均方誤差、骨骼長度誤差和平滑性誤差來對比不同的方法,視覺效果已制作為視頻,BRA、BRA-S、BRA-S-C 3種方法在測試長序列上的均方誤差(Lp)、骨骼長度誤差(Lb)、幀間平滑性誤差(Ls)的均值見表3所列。
表3 3種方法整個測試數(shù)據(jù)集上的3種誤差均值
表3中,BRA-S-C的Ls低于BRA-S,這從數(shù)值角度說明在網(wǎng)絡(luò)中施加隱變量約束有利于提升運(yùn)動數(shù)據(jù)的幀間平滑性。另外,BRA-S-C的Ls約為BRA的1/2,而且Lb也低于BRA,這說明BRA-S-C優(yōu)化后的運(yùn)動具有更好的平滑連貫性,骨骼長度更加穩(wěn)定、不易跳變。
由圖6可知,雖然BRA可以恢復(fù)出完整骨架,但出現(xiàn)手部骨骼扭曲的畸形現(xiàn)象,而BRA-S-C處理后的運(yùn)動數(shù)據(jù)則不出現(xiàn)這種運(yùn)動失真現(xiàn)象。雖然表3中BRA-S-C的Lp高于BRA,但圖7中BRA-S-C得到的運(yùn)動軌跡最能擬合動捕數(shù)據(jù)的運(yùn)動軌跡,因此BRA-S-C的優(yōu)化效果優(yōu)于BRA,這得益于BRA-S-C的堆疊模式和隱變量約束:一方面堆疊模式提升運(yùn)動數(shù)據(jù)的平滑性;另一方面隱變量約束在提升優(yōu)化后數(shù)據(jù)與動捕數(shù)據(jù)的感知相似性的同時(shí),能進(jìn)一步提升幀間平滑性和運(yùn)動自然性。
由于Kinect數(shù)據(jù)的單只手僅有4個關(guān)節(jié)點(diǎn),而動捕數(shù)據(jù)的手部具有20個關(guān)節(jié)點(diǎn),手部結(jié)構(gòu)的穩(wěn)定真實(shí)是評價(jià)算法輸出是否具有感知真實(shí)性的重要標(biāo)志。雖然表3中BRA-S-C的Lb略高于BRA-S,但在圖6中,經(jīng)BRA-S優(yōu)化后的運(yùn)動數(shù)據(jù)易在手部出現(xiàn)骨骼扭曲的運(yùn)動不自然現(xiàn)象,而經(jīng)BRA-S-C優(yōu)化后的運(yùn)動數(shù)據(jù)則不出現(xiàn)這種現(xiàn)象,從而說明隱變量約束有利于提升運(yùn)動的自然性。隱變量約束通過提升網(wǎng)絡(luò)生成數(shù)據(jù)與動捕數(shù)據(jù)的感知相似度,使得兩者具有更強(qiáng)的一致性,網(wǎng)絡(luò)生成的運(yùn)動數(shù)據(jù)真實(shí)自然。
本文針對Kinect運(yùn)動數(shù)據(jù)的動捕化問題,提出一種可對長序列進(jìn)行處理的堆疊自編碼器及其訓(xùn)練方法。網(wǎng)絡(luò)由堆疊雙向循環(huán)自編碼器與感知自編碼器組成,網(wǎng)絡(luò)訓(xùn)練時(shí)用Kinect和動捕數(shù)據(jù)片段進(jìn)行訓(xùn)練,在訓(xùn)練過程中對堆疊雙向循環(huán)自編碼器中每個雙向循環(huán)自編碼器的輸出施加均方誤差約束、骨骼長度約束以及平滑性約束,并對感知自編碼器的隱藏單元施加隱變量約束。堆疊自編碼器訓(xùn)練完成后,用滑窗的方式對長運(yùn)動序列進(jìn)行處理。實(shí)驗(yàn)結(jié)果表明,優(yōu)化后的運(yùn)動數(shù)據(jù)具有更好的感知真實(shí)性,運(yùn)動序列平滑、自然,實(shí)現(xiàn)了基于低精度便捷設(shè)備獲取高精度運(yùn)動數(shù)據(jù)的目的。該項(xiàng)工作目前也存在一些不足,因?yàn)楸疚姆椒ㄖ荚讷@取平滑自然的運(yùn)動,位置精度沒有得到提高,所以在后期的研究工作中將設(shè)計(jì)加入殘差網(wǎng)絡(luò),通過調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)一步提高運(yùn)動數(shù)據(jù)的優(yōu)化質(zhì)量。