劉 博,安建成
(太原理工大學(xué)計(jì)算智能研究室,山西太原030024)
人體動(dòng)作識(shí)別在計(jì)算機(jī)視覺方面已經(jīng)成為了一個(gè)流行的話題。在如此多的視頻監(jiān)控和人機(jī)交互系統(tǒng)中,一個(gè)可靠有效的解決方法顯得尤為重要。
現(xiàn)在有很多方法來表示動(dòng)作和提取動(dòng)作特征,例如基于運(yùn)動(dòng)的方法[1]、空間—時(shí)間的興趣點(diǎn)[2-3]、空間—時(shí)間分割[4]。相對(duì)于以上復(fù)雜的識(shí)別方法,對(duì)于給定的動(dòng)作,人腦可以很快地識(shí)別出這個(gè)人在干什么,這是因?yàn)槿四X可以根據(jù)這個(gè)人的姿勢(shì),不需要看完這個(gè)動(dòng)作過程就可以做出判斷。在人腦識(shí)別動(dòng)作的過程中,不需要任何的時(shí)間信息,而是需要去挖掘用姿勢(shì)來進(jìn)行動(dòng)作識(shí)別的潛力。
本文提出一種基于關(guān)鍵姿勢(shì)的簡(jiǎn)單方法,類似于人腦識(shí)別方式來識(shí)別動(dòng)作。通過提取人體輪廓,再對(duì)輪廓進(jìn)行線條化處理。對(duì)于一個(gè)動(dòng)作,能提取出帶有這個(gè)動(dòng)作特征的幾個(gè)或十幾個(gè)關(guān)鍵姿勢(shì)。對(duì)于給定的動(dòng)作幀序列,每一幀中的動(dòng)作都會(huì)被提取出來線條化并與線條化后關(guān)鍵姿勢(shì)對(duì)比,計(jì)算相似度。最后,分類動(dòng)作的幀序列,分類數(shù)最多的就是識(shí)別結(jié)果。
對(duì)每個(gè)幀提取動(dòng)作的步驟(圖1)為:首先利用基于序列圖像的人體跟蹤算法[5],然后在每一幀中用方框框出人的圖像,接著利用背景減除法提取人像的邊緣信息。為了消除由雜亂背景所產(chǎn)生的噪聲的影響,滯后閾值將在下一個(gè)步驟添加。在這點(diǎn)就可以從一個(gè)給定的幀序列中發(fā)現(xiàn)最佳的高和低的閾值,步驟如下:從一個(gè)動(dòng)作序列選擇一個(gè)隨機(jī)幀,用一個(gè)多邊形手動(dòng)畫出人體圖像的邊緣,在所選區(qū)域的邊緣值變化范圍可以用來確定低和高的閾值。為了消除殘留的噪聲,邊緣像素投射到x軸和y軸,則不屬于最大連接組件的像素被去除。之后,剩下的像素點(diǎn)用帶有方向的信息鏈連接起來。這些鏈結(jié)構(gòu)可用來構(gòu)建一個(gè)輪廓段的網(wǎng)絡(luò)(CSN)[6]。最后用k鄰接輪廓段(k-Adjacent Segments,k-AS)描述CSN網(wǎng)絡(luò),這也是在物體識(shí)別領(lǐng)域里比較流行的做法。
圖1 姿勢(shì)提取的步驟
在CSN網(wǎng)中,如果k條線段是按序連接的,即第i條線段與第(i+1)條線段連接(i∈(1,k-1)),則稱這k條線段組成一個(gè)k鄰接輪廓線段組,k為其度。隨著k的增長(zhǎng),k-AS能夠描述越來越復(fù)雜的局部形狀結(jié)構(gòu)。人類的姿勢(shì),特別是肢體運(yùn)動(dòng),可以用L-shapes來描述。因此,選擇k=2,即2-AS直線對(duì)。這樣每個(gè)線對(duì)由直線段S1和直線段S2組成,即
用線對(duì)的集合來描述給定每一幀的姿勢(shì)。兩個(gè)線對(duì)描述(va,vb)的相似性計(jì)算為
式(2)的第一部分是計(jì)算兩個(gè)線對(duì)的位置差異,第二部分是計(jì)算方向差異,最后一個(gè)是計(jì)算長(zhǎng)度差異,每項(xiàng)的權(quán)重wr=4,wθ=2。式(2)只能比較兩個(gè)線對(duì)的相似性,下文將介紹一種可以計(jì)算比較兩幀里多個(gè)線對(duì)的方法。
在任何由線對(duì)組成的兩幀中,把這兩個(gè)幀中的線對(duì)當(dāng)成是兩個(gè)集合X,Y,為了匹配這兩個(gè)集合中的元素,線對(duì)的匹配必須要滿足一對(duì)一和多對(duì)一的模式,所以集合X中的每一個(gè)線對(duì)元素和集合Y中的每一個(gè)線對(duì)元素對(duì)應(yīng)。
在f1,f2兩幀中,包含了兩個(gè)線對(duì)的集合φ1={v1,v2,…,vi,…,vn}和 φ2={v1,v2,…,vk,…,vm},f1中有n個(gè)線對(duì),f2中有m個(gè)線對(duì)。用φ1中每一個(gè)vi和φ2中每一個(gè)vk做比較,找出匹配線對(duì),只有在φ2中vk對(duì)于vi有最小相似距離和φ1中對(duì)于vk有最小相似距離時(shí),vk和vi相似,圖2是相對(duì)匹配事例。
圖2 相似姿勢(shì)的線對(duì)匹配
當(dāng)滿足這種一對(duì)一的匹配屬性時(shí),就可以求出平均的線對(duì)匹配距離davg。sim(f1,f2)是f1,f2的相似度計(jì)算公式
式中:match(f1,f2)表示匹配成功的線對(duì)數(shù)量,經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn),p=2是最優(yōu)值。
關(guān)鍵姿態(tài)序列一般可以表示一種特殊的動(dòng)作。直觀地說,視頻中一個(gè)關(guān)鍵姿勢(shì)序列合理地分布在視頻幀中,這個(gè)關(guān)鍵姿勢(shì)序列很好地再現(xiàn)了這個(gè)動(dòng)作形態(tài)。用K中心點(diǎn)聚類算法[7]來提取關(guān)鍵姿勢(shì),因?yàn)榫奂闹行狞c(diǎn)能很好地提取每個(gè)動(dòng)作的姿態(tài)。但是,直接用中心點(diǎn)作為關(guān)鍵姿勢(shì)并不能保證和另一個(gè)動(dòng)作區(qū)分開,因?yàn)橐幌盗械淖藙?shì)可能屬于多個(gè)動(dòng)作。例如,揮手和拍手的動(dòng)作共享幾個(gè)姿勢(shì),都是人在揮動(dòng)手臂。因此本文采用下文算法來把關(guān)鍵的姿勢(shì)(能區(qū)分開來和其他動(dòng)作)分類。最后,給每一個(gè)動(dòng)作關(guān)鍵姿勢(shì)的幀排序,根據(jù)其識(shí)別度給出分?jǐn)?shù),然后把分?jǐn)?shù)最高的作為關(guān)鍵姿勢(shì)。圖3是KTH數(shù)據(jù)集中6種動(dòng)作的關(guān)鍵姿勢(shì)[8]。
圖3 在KTH數(shù)據(jù)集中6種動(dòng)作的關(guān)鍵姿勢(shì)(拳擊、拍手、揮手、慢跑、跑步、走)
提取關(guān)鍵姿勢(shì)算法具體如下:
1)K=(1,N),K是關(guān)鍵姿勢(shì)的數(shù)量。
(1)每一個(gè)動(dòng)作ai∈A,A={a1,a2,…,aM},M是不同動(dòng)作的數(shù)量。用K中心點(diǎn)聚類算法來提取ai中的關(guān)鍵姿勢(shì),數(shù)量為K;從ai動(dòng)作提取出來的候選關(guān)鍵姿勢(shì)序列為ci={ci1,ci2,…,ciK}。
(2)將上述樣本的動(dòng)作視頻按一幀分開,f為一幀。用f和關(guān)鍵姿勢(shì)序列匹配ci={ci1,ci2,…,ciK};ciK和視頻中所有的幀f匹配的i∈[1,M],k∈[1,K];對(duì)每個(gè)關(guān)鍵姿勢(shì)設(shè)定個(gè)值,如果匹配成功,就給這個(gè)關(guān)鍵姿勢(shì)的值增加1。
2)對(duì)每組動(dòng)作中的關(guān)鍵姿勢(shì)按他值排序,把值最高的幾個(gè)作為這個(gè)動(dòng)作的關(guān)鍵姿勢(shì)。
為了分類給定的動(dòng)作序列,首先每一幀要和所有動(dòng)作的所有關(guān)鍵姿勢(shì)對(duì)比,把給定視頻中的動(dòng)作序列和關(guān)鍵姿勢(shì)進(jìn)行相似分類計(jì)數(shù),就是視頻幀中有多少和給定的關(guān)鍵姿勢(shì)序列1相似,統(tǒng)計(jì)出來,以此類推。圖4說明了分類計(jì)數(shù)的過程。
圖4 使用關(guān)鍵姿勢(shì)進(jìn)行動(dòng)作識(shí)別的過程
用 KTH[8]和 Weizmann[9]的數(shù)據(jù)集來測(cè)試本文的動(dòng)作識(shí)別算法。選取了Weizmann 7個(gè)動(dòng)作(蹲、起立、跳、快跑、側(cè)面、走、揮手),這些動(dòng)作由9個(gè)不同的人來演示。選取KTH的6個(gè)動(dòng)作(拳擊、拍手、揮手、慢跑、跑、走),這些動(dòng)作由25個(gè)不同的人在4個(gè)場(chǎng)景下進(jìn)行表演:室外(s1)、室外不同的地方(s2)、室外穿不同的衣服(s3)、室內(nèi)(s4)。
對(duì)于選用Weizmann數(shù)據(jù)集合的6個(gè)動(dòng)作樣本,本文在對(duì)輪廓進(jìn)行線對(duì)描述,忽略其噪聲。為了評(píng)估分類性能,本文采用留一交叉驗(yàn)證[10]。
對(duì)于KTH,認(rèn)為它是一個(gè)單一的大集合,但是其中的樣本在邊緣檢測(cè)的結(jié)果中有大量的噪聲。為了評(píng)估分類性能,采用十倍交叉驗(yàn)證然后求平均結(jié)果。因?yàn)橛?jì)算開銷較大,隨機(jī)選擇了一半的數(shù)據(jù)集,用十倍交叉驗(yàn)證對(duì)75%的樣本進(jìn)行訓(xùn)練,剩下的25%在每次測(cè)試中運(yùn)行。在KTH數(shù)據(jù)集中,每個(gè)動(dòng)作序列幀速率是不一樣的。為了保持一致,把每個(gè)動(dòng)作的幀限定到20~50之間,能使動(dòng)作流暢地演示一次。
在K=47時(shí)獲得了92.6%的識(shí)別率,K=78時(shí)也獲得了91.5%的識(shí)別率,對(duì)于KTH的數(shù)據(jù)集,K是每個(gè)動(dòng)作的關(guān)鍵姿勢(shì)。對(duì)于Weizmann的數(shù)據(jù)集,還可以提高識(shí)別率到95.06%,采用嚴(yán)格的幾何約束,對(duì)每個(gè)幀放到一個(gè)二維坐標(biāo)中,只在同一坐標(biāo)內(nèi)線對(duì)做匹配。但是,對(duì)于一部分KTH的數(shù)據(jù)集,人的圖像并不完整(例如缺少頭、腿等),對(duì)圖像進(jìn)行邊緣檢測(cè)和對(duì)圖像幀進(jìn)行幾何約束的匹配時(shí),這樣的圖像不能被很好地識(shí)別。圖5是平均分類的準(zhǔn)確率和關(guān)鍵姿勢(shì)數(shù)量的關(guān)系。本文方法需要大量的K值,以達(dá)到良好的分類性能,因?yàn)椴煌硌菡邔?duì)同一個(gè)動(dòng)作的演示也是不同的。
圖5 分類的準(zhǔn)確率和對(duì)每個(gè)動(dòng)作提取關(guān)鍵姿勢(shì)的數(shù)量關(guān)系曲線圖
在識(shí)別結(jié)果方面,局部時(shí)空特征的動(dòng)作識(shí)別[11]方法基于Weizmann數(shù)據(jù)集的識(shí)別率是75% ~87%(表1),局部時(shí)空特征的動(dòng)作識(shí)別方法基于KTH數(shù)據(jù)集的識(shí)別率是59% ~100%(表2)。因?yàn)楸疚闹械臏y(cè)試數(shù)據(jù)和基于局部時(shí)空特征的動(dòng)作識(shí)別方法采用的數(shù)據(jù)一致(Weizmann數(shù)據(jù)集和KTH數(shù)據(jù)集),所以從實(shí)驗(yàn)結(jié)果看,基于Weizmann數(shù)據(jù)集大部分動(dòng)作關(guān)鍵姿勢(shì)的識(shí)別率比局部時(shí)空特征高(表3)。在基于KTH數(shù)據(jù)集,關(guān)鍵姿勢(shì)的識(shí)別方法對(duì)比局部時(shí)空特征在跑、慢跑、揮手、走的動(dòng)作識(shí)別方面也有一定的優(yōu)勢(shì)(表4)。
表1 在Weizmann數(shù)據(jù)集中K=47的混淆矩陣
表2 在KTH數(shù)據(jù)集中K=78時(shí)的混淆矩陣
表3 局部時(shí)空特征的動(dòng)作識(shí)別率基于Weizmann數(shù)據(jù)集
表4 局部時(shí)空特征的動(dòng)作識(shí)別率基于KTH數(shù)據(jù)集
此外,對(duì)于KTH的數(shù)據(jù)集,一部分的錯(cuò)誤分類也是由于場(chǎng)景(s3)中表演者穿不同的衣服,拿不同的東西,在提取輪廓的時(shí)候產(chǎn)生額外的線對(duì)。
本文引入一個(gè)新方法——提取動(dòng)作的關(guān)鍵姿勢(shì),試驗(yàn)這種方式在動(dòng)作識(shí)別方面的準(zhǔn)確度。用線對(duì)(包含位置、方向、長(zhǎng)度信息)來描繪每一幀動(dòng)作姿勢(shì)的形狀特征。因此,把姿勢(shì)信息放到直方圖上,該方法可以很好地保存線對(duì)(表示姿勢(shì))的空間信息。通過匹配算法,比較兩幀中的線對(duì)集合。關(guān)鍵姿勢(shì)描繪動(dòng)作的識(shí)別上也能明顯區(qū)別于其他動(dòng)作。但是本文方法對(duì)邊緣檢測(cè)有很強(qiáng)的依賴性,對(duì)背景的噪聲也十分敏感,有待進(jìn)一步研究。
[1]LU G .Motion-based region growing segmentation of image sequences[J].Journal of Electronics,2000,17(1):53-58.
[2]李永浩,張西紅,彭濤,等.基于視覺注意力模型的紅外人體圖像興趣區(qū)域提取[J].計(jì)算機(jī)應(yīng)用研究,2008,28(12):94-96.
[3]支俊.車輛檢測(cè)中一種興趣區(qū)域提取方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(12):3013-3015.
[4] BLANKM,GORELICK L,SHECHTMAN E,etal.Actions as space-time shapes[C]//Proc.ICCV 2005 .[S.l.]:IEEE Press,2005:2247-2253.
[5]范新南,丁朋華,劉俊定,等.基于序列圖像的人體跟蹤算法研究綜述[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(1):278-282.
[6] FERRARIV,F(xiàn)EVRIER L,JURIE F,et al.Groups of adjacent contour segments for object detection[J].IEEE Trans.on Pattern Analysis and Machine Intelligence,2008,30(1):36-51.
[7]謝娟英,郭文娟,謝維信.基于鄰域的K中心點(diǎn)聚類算法[J].陜西師范大學(xué)學(xué)報(bào),2012,40(4):16-23.
[8] SCHULDT C,LAPTEV I,CAPUTO B.Recognizing human actions:A local SVM approach[C]//Proc.ICPR 2004.[S.l.]:IEEE Press,2004:32-36.
[9] BLANK M,GORELICK L,SHECHTMAN E,et al.Actions as spacetime shapes[C]//Proc.ICCV 2005.[S.l.]:IEEE Press,2005:2247-2253.
[10]劉學(xué)藝,李平,郜傳厚.極限學(xué)習(xí)機(jī)的快速留一交叉驗(yàn)證算法[J].上海交通大學(xué)學(xué)報(bào),2011,45(8):1140-1146.
[11]雷慶,李紹滋.動(dòng)作識(shí)別中局部時(shí)空特征的運(yùn)動(dòng)表示方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(34):7-10.