宋相法,姚 旭
(河南大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,河南 開封 475004)
人體行為識別在人機(jī)交互、視頻監(jiān)控、機(jī)器人視覺以及體感游戲等領(lǐng)域有著廣泛的應(yīng)用[1-6]。過去,研究人員主要利用圖像和視頻研究行為識別問題;如今,研究人員開始利用微軟Kinect傳感器捕獲的三維人體骨架序列研究行為識別問題。
人體是鏈?zhǔn)浇Y(jié)構(gòu)的,行為可由三維人體骨架關(guān)節(jié)點(diǎn)表示。例如,文獻(xiàn)[7]提出了基于三維人體骨架關(guān)節(jié)點(diǎn)子集和多核學(xué)習(xí)的行為識別方法;文獻(xiàn)[8]提出了基于運(yùn)動姿態(tài)描述子和KNN算法的三維人體骨架序列行為識別方法;文獻(xiàn)[9]提出了基于離群流形的三維人體骨架序列行為識別方法;文獻(xiàn)[10]提出了基于聯(lián)合學(xué)習(xí)身體部件行為特征和分類器的三維人體骨架序列行為識別方法;文獻(xiàn)[11]提出了基于分層姿態(tài)特征的三維人體骨架序列行為識別方法;文獻(xiàn)[12]提出了基于角度描述子協(xié)方差特征的三維人體骨架序列行為識別方法;文獻(xiàn)[13]提出了一種基于改進(jìn)的動態(tài)時間規(guī)整算法的三維人體骨架序列行為識別方法。
在上述研究的基礎(chǔ)上,為提高三維人體骨架序列行為識別精度,文中提出了一種基于多描述子特征編碼的行為識別方法。該方法利用集成學(xué)習(xí)的思想,盡可能利用三維人體骨架序列的多個描述子特征編碼方法構(gòu)造不同的基分類器,通過對這些基分類器的結(jié)果進(jìn)行集成來決定最終識別結(jié)果。
文中方法為充分利用三維人體骨架序列不同區(qū)分能力的描述子,彌補(bǔ)單一描述子提取時存在信息量不足的缺點(diǎn),結(jié)合運(yùn)動姿態(tài)描述子[8]和角度描述子[14]來構(gòu)造描述子集;為有效地將描述子組織起來提高識別性能,分別采用向量量化編碼[15]、稀疏編碼[16]和局部線性約束編碼方法[17]對運(yùn)動姿態(tài)描述子和角度描述子進(jìn)行編碼,從而得到六種特征,將這六種特征的識別結(jié)果進(jìn)行集成,得到三維人體骨架序列的最終識別結(jié)果。
利用微軟Kinect傳感器捕獲的20個人體骨架關(guān)節(jié)點(diǎn)位置如圖1所示。
圖1 微軟體感傳感器捕獲的人體骨架關(guān)節(jié)點(diǎn)位置
文中分別利用能反映數(shù)據(jù)不同性質(zhì)的運(yùn)動姿態(tài)描述子和角度描述子,充分發(fā)揮每種描述子在識別性能上的優(yōu)勢和互補(bǔ)性,彌補(bǔ)使用單一描述子時造成的信息量不足的缺點(diǎn),從而提高識別率。
運(yùn)動姿態(tài)描述子[8]由每一幀關(guān)節(jié)點(diǎn)的位置、運(yùn)動速度和加速度組成,具體實(shí)現(xiàn)詳述如下。
在三維人體骨架序列中,每一姿態(tài)(幀)可表示為所有關(guān)節(jié)點(diǎn)坐標(biāo)pi(t)=(px,py,pz)構(gòu)成的向量,其中i∈{1,2,…,n},n為關(guān)節(jié)點(diǎn)總數(shù)。所以,對于每一姿態(tài)(幀),其關(guān)節(jié)點(diǎn)位置特征向量表示為:
P=[p1(t),p2(t),…,pn(t)]
(1)
由于慣性、肌肉運(yùn)動延遲等因素會影響人體行為,因此,可以用一個二次函數(shù)來近似表示人體行為[8]。如果把幀表示為人體關(guān)節(jié)點(diǎn)坐標(biāo)隨時間變化的連續(xù)函數(shù),則在以t0時刻為中心的窗口內(nèi),其二階泰勒展開式為:
P(t)≈P(t0)+δP(t0)(t-t0)+
(2)
其中,一階導(dǎo)數(shù)δP(t0)表示t0時刻幀的運(yùn)動速度;二階導(dǎo)數(shù)δ2P(t0)表示t0時刻幀的運(yùn)動加速度。
式2表明t0時刻的瞬時幀向量及其一階導(dǎo)數(shù)、二階導(dǎo)數(shù)包含了以t0為中心的時間片段內(nèi)的幀函數(shù)信息。所以,t0時刻的運(yùn)動姿態(tài)描述子可表示為幀向量P(t0)、一階導(dǎo)數(shù)δP(t0)和二階導(dǎo)數(shù)δ2P(t0)的級聯(lián)。
因?yàn)槿S人體骨架序列中幀與幀之間存在時間間隔,所以當(dāng)前幀P(t0)的一階導(dǎo)數(shù)為:
δP(t0)≈P(t1)-P(t-1)
(3)
當(dāng)前幀P(t0)的二階導(dǎo)數(shù)為:
δ2P(t0)≈P(t2)+P(t-2)-2P(t0)
(4)
其中,P(t-1)表示當(dāng)前幀的前一幀;P(t1)表示當(dāng)前幀的后一幀,依次類推。
綜上所述,t0時刻的運(yùn)動姿態(tài)描述子表示為:
Pt0=[P(t0),δP(t0),δ2P(t0)]
(5)
角度描述子[14]通過計(jì)算微軟Kinect傳感器的深度攝像頭位置(深度攝像頭位置坐標(biāo)ZP=(0,0,0))及三維人體骨架關(guān)節(jié)點(diǎn)位置之間的角度和對應(yīng)的角速度得到,各角度名稱及對應(yīng)屬性,如表1所示。
表1 角度名稱及對應(yīng)屬性
求解角度首先需要選擇相應(yīng)的位置坐標(biāo),以左肘關(guān)節(jié)點(diǎn)角度θ5為例說明計(jì)算方法。首先選取左肩關(guān)節(jié)點(diǎn)、左肘關(guān)節(jié)點(diǎn)和左腕關(guān)節(jié)點(diǎn),然后通過微軟Kinect傳感器獲取到三維坐標(biāo)數(shù)據(jù),分別為左肩SL(SLx,SLy,SLz)、左肘EL(ELx,ELy,ELz)和左腕WL(WLx,WLy,WLz),則關(guān)節(jié)點(diǎn)方向向量為SL_EL(SLx-ELx,SLy-ELy,SLz-ELz)和EL_WL(ELx-WLx,ELy-WLy,ELz-WLz),最后利用余弦定理計(jì)算角度大小,如下所示:
(6)
由于幀與幀之間存在時間間隔,所以當(dāng)前幀的角速度表示為:
δθ(t0)≈θ(t1)-θ(t-1)
(7)
綜上所述,t0時刻的角度描述子表示為:
θt0=[θ1(t0),…,θ35(t0),δθ1(t0),…,δθ35(t0)]
(8)
在特征編碼過程中,不同的編碼方法會導(dǎo)致不同的性能。文中選取常用的向量量化編碼、稀疏編碼和局部線性編碼。
為表述方便,文中使用X=[x1,x2,…,xm]∈d×m表示從三維人體骨架序列中提取的一個d維的描述子集合,其中xj∈d表示第j(j=1,2,…,m)個描述子。相應(yīng)地,用B=[b1,b2,…,bl]∈d×l表示視覺字典,其中bk∈d表示第k(k=1,2,…,l)個視覺單詞,l表示字典大小。
向量量化編碼[15]利用量化思想,使用一個較小的視覺字典對描述子進(jìn)行表示。向量量化編碼只在最近的視覺單詞上響應(yīng)為1,其余視覺單詞上響應(yīng)為0,因此又稱為硬量化編碼,如下所示:
(9)
其中,視覺字典B使用聚類算法得到,sj表示每個xj在視覺字典B上量化得到的特征表示,S=[s1,s2,…,sm]∈l×m。根據(jù)S和特征匯聚方法可以得到一個特征向量F,作為三維人體骨架序列的特征表示。
稀疏編碼[16]近年來在計(jì)算機(jī)視覺領(lǐng)域得到了廣泛關(guān)注,它在最小二乘重構(gòu)的基礎(chǔ)上加入1-約束,從而實(shí)現(xiàn)在一個過完備視覺字典上響應(yīng)的稀疏性,得到稀疏表示。稀疏編碼減少了重構(gòu)誤差,使得重構(gòu)后的描述更詳細(xì),擁有更強(qiáng)的判別力,如下所示:
(10)
其中,sj表示每個xj在視覺字典B上的稀疏表示系數(shù),S=[s1,s2,…,sm]∈l×m,λ>0為正則化參數(shù),‖sj‖1表示系數(shù)sj的1-范數(shù)。
求解式10的優(yōu)化問題,就可以得到輸入向量集X的稀疏系數(shù)矩陣S和字典B,根據(jù)S和特征匯聚方法可以得到一個特征向量F作為三維人體骨架序列的特征表示。
局部約束線性編碼[17]利用局部性比稀疏性更為本質(zhì)的思想,通過加入局部線性約束,在一個局部流形上對描述子進(jìn)行編碼重構(gòu),如下所示:
(11)
其中,sj表示每個xj在視覺字典B上的稀疏系數(shù),S=[s1,s2,…,sm]∈l×m,λ>0為正則化參數(shù),局部正則化項(xiàng)‖wj⊙sj‖2能夠確保相似的特征向量具有相似的編碼?!驯硎鞠蛄績?nèi)元素兩兩相乘,wj∈l且
(12)
其中,dist函數(shù)表示特征向量xj和視覺單詞bk間的歐氏距離;1表示全部元素為1的向量,約束1Tsj=1保證編碼的平移不變性。
為加速編碼過程,文獻(xiàn)[17]提出一種簡單的近似LLC編碼方法。該方法首先采用聚類算法學(xué)習(xí)視覺字典B,然后對任意一個待編碼的特征向量xj,選取視覺字典B中距離其最近的t個視覺單詞,形成子字典Bj=[b[1],b[2],…,b[t]];最后使用子字典Bj重構(gòu)特征向量xj,即優(yōu)化式13得到編碼sj∈l,如下所示:
(13)
文中方法的實(shí)現(xiàn)框架如圖2所示。
對于三維人體骨架序列訓(xùn)練集,首先提取運(yùn)動姿態(tài)描述子和角度描述子,其次對每種描述子通過聚類和字典學(xué)習(xí)的方法得到不同的視覺字典,將運(yùn)動姿態(tài)描述子和角度描述子分別采用與之對應(yīng)的視覺字典進(jìn)行特征編碼,并在向量量化編碼、稀疏編碼和局部約束線性編碼的處理下得到6種特征。最后將訓(xùn)練樣本集的這6種特征分別采用線性分類器(http://www.csie.ntu.edu.tw/~cjlin/ liblinear/)進(jìn)行訓(xùn)練,得到6個基分類器。
對于三維人體骨架序列測試樣本,首先分別提取運(yùn)動姿態(tài)描述子和角度描述子,每種描述子在與之對應(yīng)的視覺字典上分別進(jìn)行向量量化編碼、稀疏編碼和局部約束線性編碼,最終將得到6種不同的特征;然后用訓(xùn)練時得到的6個對應(yīng)分類器進(jìn)行識別,得到6種不同的識別結(jié)果;最后通過投票策略將6個基分類器的識別結(jié)果集成起來,得到最終的識別結(jié)果。
(a) 訓(xùn)練階段
(b) 測試階段
為驗(yàn)證文中方法的有效性,在最常用的三維人體骨架序列行為數(shù)據(jù)集MSR Action3D上進(jìn)行實(shí)驗(yàn)。
MSR Action3D數(shù)據(jù)集包含20種人體行為,這些人體行為包含手部行為、腿部行為、軀干行為以及復(fù)雜行為。由于數(shù)據(jù)集中存在許多非常相似的行為,彼此之間容易混淆,這使得該數(shù)據(jù)庫識別起來很具有挑戰(zhàn)性,每種類型的人體行為由10個表演者重復(fù)表演2至3次。
為了進(jìn)行公平的比較,參照文獻(xiàn)[7-12]的設(shè)置,將編號為1、3、5、7、9的表演者的骨架序列數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù),編號為2、4、6、8、10的表演者的骨架序列數(shù)據(jù)集作為測試數(shù)據(jù),實(shí)驗(yàn)中視覺字典的大小l=4096。
表2給出了文中方法和其他方法[7-12]的識別結(jié)果。由表2可知:文中方法的識別率達(dá)到了94.9%,相比于其他6種方法,識別精度提高了1.3%~6.7%;相比于Angles Covariance使用基于角度描述子協(xié)方差特征方法進(jìn)行識別,文中方法的識別精度提高了3.8%;相比于Moving Pose使用運(yùn)動姿態(tài)描述子和KNN方法進(jìn)行識別,文中方法的識別精度提高了3.2%。上述結(jié)果說明了該方法能夠提高識別率。
表2 各種方法在MSR Action3D數(shù)據(jù)庫上的實(shí)驗(yàn)結(jié)果
為考察視覺字典大小對文中方法識別性能的影響,分別采用6種不同大小的視覺字典,即256、512、1024、2048、4096和8192,在MSR Action3D數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),識別性能對比情況如圖3所示。從圖3可以看出,視覺字典大小為4096時獲得的識別準(zhǔn)確率最高,而256時最低,字典大小為1024、2048和8192時獲得的識別準(zhǔn)確率相近,但都低于4096時獲得的識別準(zhǔn)確率,因此,文中將視覺字典的大小設(shè)置為4096。
圖3 視覺字典大小對文中方法識別性能的影響
為驗(yàn)證文中方法能有效解決使用單一描述子提取的信息量不足,及單一特征編碼方法對三維人體骨架序列造成信息丟失等問題,同時為驗(yàn)證該方法具有性能提升的潛力,進(jìn)一步對描述子和特征編碼的各種組合對MSR Action3D數(shù)據(jù)集的識別率性能的影響進(jìn)行了實(shí)驗(yàn),內(nèi)容如下。
組合1:角度描述子和向量量化編碼組合識別人體行為。
組合2:角度描述子和稀疏編碼組合識別人體的行為。
組合3:角度描述子和局部約束線性編碼組合識別人體行為。
組合4:運(yùn)動姿態(tài)特征描述子和向量量化編碼組合識別人體行為。
組合5:運(yùn)動姿態(tài)描述子和稀疏編碼組合識別人體行為。
組合6:運(yùn)動姿態(tài)描述子和局部約束線性編碼組合識別人體行為。
組合7:角度描述子與文中的3種編碼方法集成識別人體行為。
組合8:運(yùn)動姿態(tài)描述子與文中的3種編碼方法集成識別人體行為。
組合9:運(yùn)動姿態(tài)描述子和角度描述子與文中的3種編碼方法集成(即本文方法)識別人體行為。
各種組合的實(shí)驗(yàn)結(jié)果如表3所示。從中可以看出,單獨(dú)使用角度描述子和特征編碼方法的識別精度比文中方法下降了9.2%~12.1%,單獨(dú)使用運(yùn)動姿態(tài)描述子和特征編碼方法的識別精度比文中方法下降了1.5%~3.7%,角度描述子和文中的3種編碼方法集成的識別精度比文中方法下降了6.6%,運(yùn)動姿態(tài)描述子和文中的3種編碼方法集成的識別精度比文中方法下降了0.4%。上述結(jié)果均說明,文中方法具有識別性能更好的優(yōu)點(diǎn)。
表3 各種組合在MSR Action3D數(shù)據(jù)庫上的實(shí)驗(yàn)結(jié)果
為解決利用單一描述子和單一特征編碼方法進(jìn)行三維人體骨架序列行為識別導(dǎo)致識別率較低的問題,提出一種多描述子特征編碼的三維人體骨架序列行為識別方法,在MSR Action3D數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明該方法能夠提高識別精度。