馮小明,馮乃光,汪云云
(1.南京郵電大學(xué) 工程訓(xùn)練中心, 江蘇 南京 210003;2.四川廣播電視大學(xué) 工程技術(shù)學(xué)院, 四川 成都 610073)
對(duì)于復(fù)雜行為動(dòng)作的識(shí)別具有一定的挑戰(zhàn)性,主要是由于:①?gòu)?fù)雜動(dòng)作由較多的子動(dòng)作組成,具有短期和長(zhǎng)期的因果關(guān)系,各序列因果關(guān)系會(huì)增加模型的復(fù)雜度,通常需要足夠大的訓(xùn)練數(shù)據(jù);②視角差異與動(dòng)作類(lèi)型等因素,動(dòng)作的變化種類(lèi)千姿百態(tài)[1-4]。
目前,人體動(dòng)作識(shí)別成為當(dāng)前的一個(gè)熱點(diǎn),取得了一定的成果。尹建芹等[5]設(shè)計(jì)了基于關(guān)鍵點(diǎn)序列的動(dòng)作識(shí)別方案?;谏眢w關(guān)節(jié)點(diǎn)變化的節(jié)奏,將動(dòng)作標(biāo)簽為上肢運(yùn)動(dòng)與軀體運(yùn)動(dòng)。為了獲得關(guān)鍵點(diǎn),通過(guò)C均值聚類(lèi)提取上肢、中心關(guān)節(jié)點(diǎn)。并將關(guān)鍵點(diǎn)投射到對(duì)應(yīng)的動(dòng)作路線中,從而得到了初步分類(lèi)運(yùn)動(dòng)的關(guān)鍵序列。為了精確識(shí)別,通過(guò)時(shí)序直方圖對(duì)關(guān)鍵序列構(gòu)建分類(lèi)學(xué)習(xí)函數(shù),將關(guān)鍵序列分類(lèi)學(xué)習(xí),完成動(dòng)作識(shí)別。但其忽略了局部特征與運(yùn)動(dòng)的光流特征,對(duì)相似特征與復(fù)雜動(dòng)作的識(shí)別效果不理想。劉長(zhǎng)征等[6]設(shè)計(jì)了復(fù)雜背景下定位的動(dòng)作識(shí)別方案。該方法對(duì)3D動(dòng)作采樣,完成對(duì)每個(gè)姿勢(shì)定位從而實(shí)現(xiàn)動(dòng)作識(shí)別。此算法能夠較好地完成動(dòng)作的識(shí)別,但在噪聲場(chǎng)景下,隨時(shí)間累積,顯著降低了識(shí)別性能。Bohick等[7]設(shè)計(jì)了一種時(shí)間模板的動(dòng)作識(shí)別方案,通過(guò)對(duì)視頻序列中的臨近幀圖像執(zhí)行差分運(yùn)算,獲得運(yùn)動(dòng)能量圖MEI與運(yùn)動(dòng)歷史圖MHI,并通過(guò)MEI與MHI共同來(lái)描述動(dòng)作。該方法在簡(jiǎn)單運(yùn)動(dòng)中獲得了一定的識(shí)別效果,但在較復(fù)雜場(chǎng)景與攝像頭移動(dòng)中,動(dòng)作輪廓很難有效提取,對(duì)于存在行為遮擋時(shí),對(duì)動(dòng)作識(shí)別的精確度大幅降低。
將視頻分割成固定的時(shí)空網(wǎng)格是編碼時(shí)間結(jié)構(gòu)最流行的方法之一。這種方法通常與詞袋表示相結(jié)合,可以自動(dòng)學(xué)習(xí)視覺(jué)詞匯和模型,而不需要對(duì)動(dòng)作結(jié)構(gòu)進(jìn)行任何注釋。然而,對(duì)視頻劃分為統(tǒng)一的單元不足以模擬復(fù)雜的動(dòng)作。因此,本文提出了一種序列袋(BOS)模型,能夠考慮復(fù)雜的行為有效的類(lèi)內(nèi)變化。為了構(gòu)造BOS模型,首先將視頻表示為原始動(dòng)作序列。通過(guò)將視頻轉(zhuǎn)換成PA序列,BOS模型可以保持PA的時(shí)間順序。然后,使用序列模式挖掘來(lái)自動(dòng)學(xué)習(xí)動(dòng)作結(jié)構(gòu)。此時(shí),將挖掘的序列模式稱(chēng)為序列集。本文的貢獻(xiàn)主要有:①通過(guò)動(dòng)作的序列集描述,BOS模型可以有效地表示了復(fù)雜動(dòng)作的時(shí)序結(jié)構(gòu);②將視頻描述為PA序列,可以使用SPM自動(dòng)學(xué)習(xí)動(dòng)作的時(shí)間結(jié)構(gòu),而不需要任何注釋或行動(dòng)結(jié)構(gòu)的先驗(yàn)知識(shí)。
對(duì)于動(dòng)作識(shí)別技術(shù)中,動(dòng)作特征的提取與表示至關(guān)重要。在本文中,為了準(zhǔn)確全面的表示動(dòng)作特征,采用兩個(gè)步驟來(lái)完成。首先,將一個(gè)視頻表示為基礎(chǔ)運(yùn)動(dòng)(PA)序列,形成了動(dòng)作的特征序列。其次,將特征序列變換為PA索引序列。
設(shè)訓(xùn)練視頻集{(Vn,yn)|n=1,2,…,N},其中,Vn為一個(gè)視頻,yn∈[1,2,…,C]為動(dòng)作類(lèi)別標(biāo)簽。提取改進(jìn)的密集軌跡(improved dense trajectory,IDT),并將每個(gè)視頻分成25個(gè)幀段,每個(gè)幀分別與前一段、下一段有五幀重疊。對(duì)每一幀段,分別計(jì)算每個(gè)軌跡的運(yùn)動(dòng)邊界直返圖(motion boundary histograms,MBH)、方向梯度直方圖(HOG)、光流直方圖(histograms of oriented optical flow,HOF)描述符并被編碼為Fisher向量[8]。然后,視頻Vn表示為特征序列Xn,定義如下
(1)
PA是短動(dòng)作模式,設(shè)一個(gè)PA集表示為ι={pi|i=1,…,Np},Np為PA集的數(shù)量。第i個(gè)PA稱(chēng)為Pi,定義為
Pi={fi,Mi,τi}
(2)
式中:fi為第i個(gè)PA的特征;Mi為PA檢測(cè)器;τi為檢測(cè)閾值。
為了計(jì)算fi,首先對(duì)所有的訓(xùn)練特征序列{X1,…,XN}進(jìn)行仿射傳播,以獲得具有代表性的幀段并聚類(lèi)所有幀段的索引[9],仿射矩陣A表示為
(3)
然后,對(duì)每個(gè)簇i,訓(xùn)練一個(gè)PA探測(cè)器Mi。通過(guò)引入SVM與核函數(shù)定義式(3),則簇內(nèi)的片段為正樣本,其余為陰性樣本。利用libsvm庫(kù)學(xué)習(xí)PA探測(cè)器[10],對(duì)于每個(gè)PA探測(cè)器Mi,通過(guò)設(shè)置檢測(cè)閾值τi來(lái)建立訓(xùn)練數(shù)據(jù)序列,從而避免了含噪聲序列模式的被挖掘。
PA可以通過(guò)無(wú)監(jiān)督進(jìn)行學(xué)習(xí),在訓(xùn)練階段,PA信息是無(wú)需注釋的。此外,具有相似部分的運(yùn)動(dòng)可以共享相同的PA(例如跳高和跳遠(yuǎn)的跑動(dòng)部分)。
設(shè)一個(gè)特征序列為Xn,PA集為ι,將Xn轉(zhuǎn)換為PA索引序列表示為
(4)
一個(gè)序列集表示了一個(gè)動(dòng)作的局部結(jié)構(gòu),定義為R={Rj|j=1,…,NR},通過(guò)SPM從索引的訓(xùn)練序列[I1,I2,…,IN]中挖掘出R,第j個(gè)序列Rj定義如下
Rj={cj,sj,xj,wj}
(5)
為計(jì)算sj,首先收集培訓(xùn)數(shù)據(jù)索引Gc={n|yn=c},c∈[1,2,…,C]為表示特定運(yùn)動(dòng)類(lèi)別c的標(biāo)簽。然后使用PrefixSpan算法[11]從收集到的訓(xùn)練索引序列{IGc(1),…,IGc(Nc)}計(jì)算序列模式,Nc為被標(biāo)記為動(dòng)作類(lèi)別c的視頻數(shù)量。算法中唯一的參數(shù)是支持率閾值η,sj的支持率vj可表示如下
(6)
式中:fj為在{IGc(1),…,IGc(Nc)}中出現(xiàn)sj的數(shù)量。當(dāng)vj≥η時(shí),PrefixSpan算法的輸出是一個(gè)序列模式sj的集合。由于通過(guò)PrefixSpan算法所采集的子序列之間存在著相同的模式。因此需要對(duì)其進(jìn)行后處理,將這些模式合并。除去其長(zhǎng)度超過(guò)3的過(guò)度擬合模式。所以,序列集xj的特征可定義如下
(7)
式中:xj為在sj中對(duì)應(yīng)索引的PA特征的序列。由于相同的序列模式可以從兩個(gè)動(dòng)作類(lèi)中挖掘得到,所以設(shè)定一個(gè)權(quán)重wj
(8)
對(duì)于模式sj,wj表示sj的相對(duì)支持率。如果同樣的模式發(fā)生在兩個(gè)以上的動(dòng)作類(lèi)型,那么兩序列集權(quán)重減少。反之,如果一個(gè)模式值出現(xiàn)在一個(gè)類(lèi)型中,權(quán)重將達(dá)到最大值1。
每個(gè)序列集表示一個(gè)特定的動(dòng)作類(lèi)型,其包含了中層時(shí)間結(jié)構(gòu),對(duì)特定的動(dòng)作類(lèi)型具有重要作用。然而,相對(duì)于語(yǔ)法模型,序列集通過(guò)自動(dòng)學(xué)習(xí),無(wú)任何注釋或先驗(yàn)知識(shí)的動(dòng)作結(jié)構(gòu)。圖1為序列集學(xué)習(xí)顯示。圖1中數(shù)字為每個(gè)圖像代表的PA索引,括號(hào)中的值表示每個(gè)序列集的權(quán)重。
圖1 序列集學(xué)習(xí)
為了構(gòu)造一個(gè)BOS模型,將視頻表示為一個(gè)基本動(dòng)作(PA)序列,形成一個(gè)序列集,從而保持其時(shí)間順序。一個(gè)序列集是一個(gè)內(nèi)容豐富的子序列,描述了動(dòng)作的局部結(jié)構(gòu)并保留了PA的時(shí)間關(guān)系。因此,BOS模型既有內(nèi)容也有時(shí)序?qū)傩裕瑢?duì)于類(lèi)別多樣性與視角變化,其可有效地模擬復(fù)雜的行動(dòng)。設(shè)測(cè)試視頻VT,序列集R,一個(gè)動(dòng)作c的評(píng)分函數(shù)可表示為
(9)
式中:αj,c,βj,c,γj,c為在動(dòng)作類(lèi)別c中第j個(gè)序列集的參數(shù)。IT為序列索引,XT為VT的特征序列,φa(IT,sj)、φf(shuō)(XT,xj)、φr(wj)分別為序列比對(duì)特征、表觀匹配特征、序列集特征。詳細(xì)介紹如下所述。
φa(IT,sj)的作用是測(cè)量測(cè)試視頻和序列集之間的結(jié)構(gòu)相似性,設(shè)初始值F(n,0)=0,n∈[0,L];F(0,m)=-m,m∈[0,mj],L為在IT中幀段的數(shù)量。因此,聯(lián)配分?jǐn)?shù)矩陣F定義如下
(10)
(11)
對(duì)于IT與sj的序列對(duì)比特征,當(dāng)sj與測(cè)試序列相匹配時(shí),φa(IT,sj)具有最大比對(duì)得分
(12)
φf(shuō)(XT,xj)的目的是衡量測(cè)試視頻與序列集間的視覺(jué)相似度,其表示如下
(13)
φr(wj)表示在特定動(dòng)作類(lèi)序列集的重要性,其定義為
(14)
當(dāng)測(cè)試視頻與序列集之間的結(jié)構(gòu)相似性大于0時(shí),選取其得到的值作為序列集的重要性。
根據(jù)上面的描述,式(9)可定義為
Sc(VT,ζ)=wc.ψ(VT,ζ)
(15)
式中:wc為αj,c、βj,c、γj,c的串聯(lián);ψ(VT,ζ)為φa、φf(shuō)、φr的串聯(lián)。對(duì)此,引入SVM對(duì)不平衡數(shù)據(jù)執(zhí)行參數(shù)wc,c∈[1,…,C]測(cè)量,因此,優(yōu)化問(wèn)題變成
(16)
式中:C+、C-分別為正、負(fù)類(lèi)別的正則化參數(shù),學(xué)習(xí)之前,φa,φf(shuō)為正則化為零均值和單位標(biāo)準(zhǔn)偏差。隨著φa的變化,φf(shuō)具有很大不同。通過(guò)對(duì)φf(shuō)乘以常數(shù)λ來(lái)確保特征具有相似的范圍。
為了準(zhǔn)確快速完成多動(dòng)作的理解與識(shí)別,引入了一種有效的線性判別分析(LDA)[12]。LDA作為分類(lèi)的思想是:希望獲得的類(lèi)間耦合度低,類(lèi)內(nèi)的耦合度高。意思就是要求類(lèi)內(nèi)散布矩陣Sw越低越佳;同時(shí)類(lèi)間散布矩陣Sb越高越佳,這樣才能達(dá)到最優(yōu)的分類(lèi)性能。對(duì)此,引入Fisher函數(shù)J
(17)
式中:φ為一個(gè)n維列向量。Fisher通過(guò)選取使J(φ)最大的φ為投影方向,投影后獲得了最大Sb和最小Sw。根據(jù)Fisher的優(yōu)化優(yōu)計(jì)算,選擇一組最佳判別矢量來(lái)建立投影矩陣W,表示為
(18)
在LDA學(xué)習(xí)中,利用PCA降維運(yùn)算,消除冗余信息。
本文算法的過(guò)程如圖2所示。將視頻表示為多個(gè)PA序列,編碼形成了PA的特征序列。然后通過(guò)仿射傳播,將特征序列變換為PA索引序列。且將PA索引序列通過(guò)SPM形成不同的BOS,一個(gè)BOS描述了動(dòng)作的局部結(jié)構(gòu)并保留了PA的時(shí)間關(guān)系。在BOS模型中,一個(gè)動(dòng)作可通過(guò)一個(gè)序列集來(lái)表示,無(wú)需對(duì)動(dòng)作結(jié)構(gòu)進(jìn)行任何注釋或先驗(yàn)知識(shí),可以實(shí)現(xiàn)序列集自動(dòng)學(xué)習(xí)。通過(guò)對(duì)BOS模型進(jìn)行學(xué)習(xí),計(jì)算其序列比對(duì)特征、外觀匹配特征、序列集特征。最后,引入LDA學(xué)習(xí),完成識(shí)別任務(wù)。
圖2 本文算法框架
為了評(píng)估算法的性能,選取2個(gè)常用數(shù)據(jù)集進(jìn)行測(cè)驗(yàn):MSR3D與UCF-Sport。測(cè)試環(huán)境為:Core I3,3.50 GHz CPU,4 GB運(yùn)行RAM,Win7操作系統(tǒng)PC。開(kāi)發(fā)工具:QT Creator+OpenCV。為了顯示本文方案的優(yōu)越性,通過(guò)將當(dāng)前流行的動(dòng)作識(shí)別方法進(jìn)行對(duì)比,分別為:文獻(xiàn)[5]算法、文獻(xiàn)[6]算法和文獻(xiàn)[7]算法,為便于書(shū)寫(xiě),簡(jiǎn)寫(xiě)為A、B、C算法。為了獲得最優(yōu)的性能,通過(guò)多實(shí)驗(yàn)得到了參數(shù)值:σ=-1,Np=360,支持率閾值η=0.005,NR=1,λ=17.5,C+、C-分別為0.005、0.005/Nc,ρ=80。
MSR 3D是通過(guò)深度照相機(jī)獲取的深度序列的動(dòng)作樣本[13]。MSR 3D通過(guò)10個(gè)演員表演20種不同動(dòng)作。每種動(dòng)作通過(guò)每個(gè)演員表演2到3次,共557幅序列組成。為便于測(cè)試,將20種動(dòng)作分成3個(gè)子集,如表1所示。在每個(gè)子集中,50%數(shù)據(jù)用于訓(xùn)練,50%用于測(cè)試。
表1 MSR3D數(shù)據(jù)集分類(lèi)
UCF Sport數(shù)據(jù)庫(kù)主要從BBC/ESPN的收集的各種運(yùn)動(dòng)數(shù)據(jù)和YouTube中下載得到的數(shù)據(jù)組合[14]。UCF主要包含的動(dòng)作類(lèi)型有:basketball shooting、biking、diving、golf swinging、horse riding、soccer juggling、swinging、tennis swinging、trampoline jumping、volleyball spiking、walking with a dog。UCF含有的服飾、運(yùn)動(dòng),相機(jī)移動(dòng)、光照變化、背景等千奇百態(tài),類(lèi)似于現(xiàn)實(shí)生活。因此,對(duì)于動(dòng)作識(shí)別具有一定的挑戰(zhàn)性。UCF Sport數(shù)據(jù)集顯示如圖3所示。
表2為本文進(jìn)行測(cè)試所用到的數(shù)據(jù)集與方法。表2中包含了每種數(shù)據(jù)種的動(dòng)作類(lèi)型,動(dòng)作種類(lèi)與樣本大小,并且給出了其對(duì)應(yīng)的實(shí)驗(yàn)方法。
表3、表4與表5是在S1、S2和S3中通過(guò)提出的算法測(cè)量的混淆矩陣。從表中得出,絕大部分的動(dòng)作類(lèi)型能準(zhǔn)確識(shí)別與理解,識(shí)別率高達(dá)95%以上。少部分動(dòng)作識(shí)別率相對(duì)低一些,例如S1中的High arm wave易被誤判斷為T(mén)wo hand wave、Forward kick。S2中的Golf swing易被誤判斷為Side kick。S3中的Tennis serve易被誤判斷為Golf swing。原因是這些動(dòng)作軌跡相似較高,差異較小。
表6為在UCF Sport中利用本文算法獲得的混淆矩陣。依據(jù)表6看出,本文算法在UCF Sport中具有優(yōu)異的識(shí)別率。對(duì)biking、diving、horse riding、soccer juggling、swinging、trampoline jumping、walking with a dog“golf swinging的正確率高達(dá)95%以上。golf swinging、tennis swinging、volleyball spiking等的識(shí)別率相對(duì)較低。主要是這幾種動(dòng)作較復(fù)雜,變化速度快。
圖3 UCF Sport數(shù)據(jù)集
表2 實(shí)驗(yàn)數(shù)據(jù)集與方法
表3 S1子集的混淆矩陣
表4 S2子集的混淆矩陣
表5 S3子集的混淆矩陣
表6 UCF Sport數(shù)據(jù)集混淆矩陣
圖4顯示了在MSR 3D與UCF Sport數(shù)據(jù)集中,得到了A、B、C與本文算法分別動(dòng)作的平均識(shí)別精度統(tǒng)計(jì)。根據(jù)圖4中看出,在表2的數(shù)據(jù)集中,本文方法取得了優(yōu)異的識(shí)別率,在MSR 3D與UCF Sport中分別達(dá)95.2%、94.5%,相對(duì)A、B、C方法取得了較好的表現(xiàn)。對(duì)于動(dòng)作較簡(jiǎn)單的MSR 3D中,4種算法獲得了一定的識(shí)別效果。但是在動(dòng)作復(fù)雜的UCF Sport中,3種對(duì)照組算法明顯處于劣勢(shì),而本文算法同樣取得了優(yōu)異的成績(jī),說(shuō)明提出的算法對(duì)復(fù)雜動(dòng)作識(shí)別同樣有效。
圖4 兩個(gè)數(shù)據(jù)集中平均識(shí)別精度比較
圖5顯示了在MSR 3D與UCF Sport數(shù)據(jù)集中利用A、B、C與本文算法測(cè)量的Precision-Recall曲線[15]。從圖5中看出,在4種算法中,本文方法法曲線表現(xiàn)最優(yōu),特別是對(duì)于復(fù)雜動(dòng)作的UCF Sport中,本文方法的優(yōu)勢(shì)更明顯,說(shuō)明了本文算法性能相對(duì)對(duì)照組算法更優(yōu)秀,能夠較好適應(yīng)復(fù)雜動(dòng)作的識(shí)別。
圖5 不同算法的P-R曲線
本文算法在MSR 3D與UCF Sport取得了優(yōu)良的效果,對(duì)復(fù)雜人體動(dòng)作識(shí)別同樣有效。主要是本文通過(guò)將視頻轉(zhuǎn)換為PA索引序列,通過(guò)SPM將得到的序列建立了BOS模型,利用構(gòu)建的BOS模型能夠有效描述動(dòng)作的局部結(jié)構(gòu)并保留了PA的時(shí)間關(guān)系。通過(guò)對(duì)BOS模型的學(xué)習(xí),定義了動(dòng)作的評(píng)分函數(shù),從而無(wú)需對(duì)動(dòng)作結(jié)構(gòu)進(jìn)行任何注釋或先驗(yàn)知識(shí),實(shí)現(xiàn)了序列集自動(dòng)學(xué)習(xí)。有效地完成了對(duì)復(fù)雜動(dòng)作的特征表示。最后引入LDA,根據(jù)動(dòng)作的評(píng)分值進(jìn)行分類(lèi)學(xué)習(xí),完成了動(dòng)作的識(shí)別。而對(duì)照組A、B、C算法中在MSR 3D取得了較好的識(shí)別效果,但是對(duì)于復(fù)雜動(dòng)作UCF Sport中識(shí)別效果不佳。
為了提高復(fù)雜動(dòng)作識(shí)別的準(zhǔn)確度,如體育賽事中的各種動(dòng)作,本文設(shè)計(jì)了基于連續(xù)運(yùn)動(dòng)動(dòng)作的復(fù)雜人體動(dòng)作識(shí)別方案。利用PA索引序列對(duì)動(dòng)作特征進(jìn)行描述,并通過(guò)SPM構(gòu)建了BOS模型。BOS有效描述動(dòng)作的局部結(jié)構(gòu)并保留了PA的時(shí)間關(guān)系,考慮了復(fù)雜動(dòng)作的成分和時(shí)間特性,無(wú)需任何注釋或行動(dòng)結(jié)構(gòu)的先驗(yàn)知識(shí),從而使得BOS模型具有可擴(kuò)展性。通過(guò)對(duì)BOS模型學(xué)習(xí),建立了復(fù)雜動(dòng)作的評(píng)分值,再根據(jù)LDA分類(lèi)學(xué)習(xí),實(shí)現(xiàn)對(duì)復(fù)雜動(dòng)作的識(shí)別與理解。在MSR 3D與UCF Sport數(shù)據(jù)集測(cè)試表明了提出算法對(duì)復(fù)雜動(dòng)作識(shí)別的有效性。