許 艷,侯振杰,梁久禎,陳 宸,賈 靚,莫宇劍
1(常州大學 信息科學與工程學院,江蘇 常州 213164) 2(達拉斯德克薩斯大學 電氣工程系,美國 德克薩斯州理查德森市 75080) E-mail:houzj@cczu.edu.cn
人體行為識別是機器視覺研究的熱門領域,數十年來學者對它的研究熱度從未消退[1-3],研究對象由RGB圖像向深度圖像[4]發展.與RGB圖像相比,深度圖像基本不受自然光線影響,還提供具有三維信息的數據,也可以通過微軟的SDK提取骨骼數據[5],準確描述有關關節的具體位置.
對于RGB圖像序列,Navneet等人[6]提出了梯度方向直方圖(HOG),將像素點梯度或邊緣的方向直方圖作為特征,但描述子生成過程冗長,導致速度慢;Wang等人[7]使用密集軌跡的方式描述行為視頻序列;Cai等人[8]基于隨機森林對人體輪廓進行研究,提出基于袋外數據誤差加權投票準則的行為分類方法.以上方法缺乏在時間方向上的考量,故研究者開始研究深度圖像.
對于RGB-D圖像序列,Yang等人[9]提出深度運動圖(DMM)來捕獲時間上累積的運動能量并使用HOG提取特征;Oreifej等人[10]提出使用四維表面法向方向直方圖描述符(HON4D)來捕獲變化的結構信息;Wang等人[11]將三維行為序列看成一個四維體模型,從四維體模型的不同位置采樣不同大小的四維子體積,提出隨機占有模式(ROP)特征.
對于骨骼視頻序列,骨骼信息可以更加直接地描述人體行為.Xia等人[12]提出三維骨架點位置直方圖特征,從本質上編碼相對于骨架根節點的空間占有信息;Yao等人[13]提出用姿態特征來編碼骨架運動,使用霍夫森林[14]建立行為模型;Wang[15]使用骨架點和深度點云特征,提出了“actionlet”概念對行為建模,通過局部占有信息的不同來捕捉行為差異.
本文提出一種深度圖像和骨骼數據的特征融合人體行為識別方法.將深度圖像投影獲得深度運動圖,計算邊緣梯度方向的空間分布和梯度之間的自相關性,有效利用了行為形狀幾何特征的相互關系,對特征進行降維處理,避免了維度災難,解決了向量表示的稀疏性問題;選取骨骼數據的運動節點并進行多特征提取,利用Fisher Vector對骨骼特征進行處理得到長度相同的特征,解決了幀數不同對特征帶來的問題;最后將深度特征和骨骼特征分別輸入到分類器中,利用訓練出的模型加權得到分類標簽.
本文在人體行為識別中的主要貢獻如下:
1)提出運動節點的概念,提取行為的運動節點,剔除與行為無關的無效信息,突出了運動肢體的變化,同時減少了特征數據量;
2)提出將人體姿態用軌跡描述,將人體行為轉換為軌跡運動,提取軌跡特征;
3)將人體行為的輪廓比作為一類特征,不同行為表現出不同形態和不同的輪廓比,在空間描述上必有辨識度.
本文針對深度圖像與骨骼圖像,提出一種有效識別人體行為的方法,算法流程圖如圖1.用梯度局部自相關(Gradient Local Auto-Correlation,GLAC)與時空梯度自相關算法(Space-Time Auto-Correlation of Gradient,STACOG)[16]提取深度圖序列的復合深度特征FD={FD1,FD2};從骨骼數據中提取幀間距離、外接立方體輪廓比、幀間角度差3類特征,融合形成底層骨骼特征FB.

圖1 行為識別算法Fig.1 Action recognition algorithm
Yang等人[9]提出用DMM描述行為的3D結構和形狀信息,即將具有時間信息的深度圖投影到笛卡爾積平面上.假設一個深度圖序列具有N幀,則DMMv特征計算方法如式(1):
(1)


圖2 稀疏向量計算過程Fig.2 Calculation process of sparse vector
對投影圖進行GLAC處理,同時直接對深度圖序列進行STACOG處理,計算梯度空間和方向自相關性,用梯度大小n和方向θ稀疏表示.如圖2,每個點r被編碼為B=8個方向角,其梯度角度θ與鄰近的方向角的權重構成梯度方向向量f.
計算梯度在鄰域內的特征如式(2)、式(3):

(2)
(3)
其中a1是鄰近點到r的位移矢量,取a1∈{±Δr,0},fd是向量f的第d個元素.

圖3 深度運動圖的形成過程Fig.3 Formation of depth motion map
以high wave的GLAC處理為例,圖3(a)是深度圖序列,圖3(b)為主視圖.為避免極大或極小值對DMMv的影響,須將DMMv分布于[0,1],同時進行ROI操作使得相同視角圖像大小相同,如圖3(c).那么深度特征FD1可以表示為式(4):
FD1={F0,F1}
(4)
如圖4,對人體行為而言,運動的肢體較其他肢體運動幅度最大,故可以通過計算同一個節點隨著幀數的變化引起的位置變化來比較.首先以Spine為原點統一新的坐標系,運用骨骼節點到原點的方差來定義各部分肢體的活躍程度,方差越大說明該節點變化越劇烈,當方差大于平均值時,認為該點就是運動節點.

圖4 骨架Fig.4 Skeleton
如圖5,high wave的運動節點為9、11、13,其表現為左手行為.將方差最大的節點運動轉換為軌跡,用軌跡特征來表述行為的骨骼特征,圖中軌跡為節點13的運動軌跡.

圖5 運動節點的行為Fig.5 Moving nodes action
從運動節點和軌跡中提取3個特征作為底層骨骼特征FB,分別為幀間距離D、外接立方體輪廓比O和幀間角度差A.
1)幀間距離
在行為運動中,運動節點的距離變化最明顯,故本文以求得的軌跡為標準,將軌跡上每個節點的大小稱為幀間距離.

(5)
2)外接立方體輪廓比行為不同形成的外接立方體是有差別的,本文計算運動節點構造的輪廓比,如圖6是high wave某一幀的左手輪廓.

圖6 外接立方體
Fig.6 External cube
第i幀骨骼數據的輪廓比計算方式如式(6):
(6)
其中,xi表示第i幀運動節點在笛卡爾坐標系中x軸上的值.
那么,人體第i幀外接立方體輪廓比特征Oi如式(7):
Oi=[LWi,HWi,LHi]T
(7)
3)幀間角度差
與Xing[17]不同,本文提出幀間角度差由所求軌跡獲得,即求運動節點相鄰兩幀之間的角度差,而不是節點之間的角度差,這樣可以避免其他相對靜止節點的干擾.以LH為例,計算LH關節點的角度變化特征ALH,如式(8):
(8)

本文中,底層骨骼特征FB由3類特征構成,如式(9).
(9)
人體各部分比例關系基本一致,歸一化即可克服不同人體間的差異.底層骨骼特征FB維度與幀數N有關,對FB進行高斯混合模型的Fisher Vector處理,大小變為2pK×1,K在高斯混合模型中取128,p是FB的行數,構建過程偽代碼如下:


1.初始化:平均值μk為隨機數,方差σk為單位矩陣E,概率wk=1/K
2. 計算混合高斯模型GMM參數={wk,μk,σk,k=1,…,K}
for |p(FB|Φ)-p(FB|Φ)′|<ε
φk=(πk,μk,σk),Φ=(φ1,…,φk,…,φK)′


end
3. 計算統計量
fork←1toK
end
forj ←1toM

fork ←1toK
end
end
4. 計算fishervector,通過求關于GMM參數偏導獲得
fork ←1toK
end

5. 向量歸一化
將骨骼特征FS和深度特征FD1,FD2輸入到分類器中,分配不同權重μ1,μ2,(1-μ1-μ2),通過對數函數估計全局隸屬度,如式(10),隸屬度最大時即得到最終標簽l*,如式(11).
logP(lc|F)=
μ1p1(lc|FS)+μ2p2(lc|FD1)+(1-μ1-μ2)p3(lc|FD2)
(10)
(11)
其中,p1(lc|FS)、p2(lc|FD1)與p3(lc|FD2)是FS,FD1,FD2通過Sigmoid函數計算得到的后驗概率.
實驗在華碩K43S i5-2430M CPU @2.40GHz處理器上完成,RAM 6.00GB,Windows 8.1、Matlab R2014b.
本文通過kinect采集的人體行為數據庫MSR-Action3D完成實驗.10個人做20個行為共524個樣本,包括high wave、horizontal wave、hammer、hand catch、forward punch、high throw、draw x、draw tick、draw circle、hand clap、two hand wave、side boxing、bend、forward kick、side kick、jogging、tennis swing、tennis serve、golf swing、pick up throw.
實驗設置參照Lu等人[18],用交叉驗證的方法將數據分成兩份,一份是訓練數據,包括1、3、5、6、7、9號人的數據,另一份是測試樣本,包括2、4、8、10號人的數據.
本文提出的人體行為識別模型中,首先要確定參數的值.
在對深度圖像進行GLAC特征提取時,參數集對結果有著巨大直接的影響,所以需要估計最優參數集.本文通過列舉選出最優參數集,以行為識別率的高低作為衡量標準,選取多個參數集繪制折線圖,結果見圖7.

圖7 GLAC在不同參數集下的識別率Fig.7 Recognition rate of GLAC with different parameter sets
隨著D變大,像素間的相關度變大,識別率上下波動,當D再逐漸增大,相關度減小,識別率隨之降低.由此可以看出D=10,Δr=8時,該算法有較高的識別率.
計算運動節點時,需要判定運動節點的正確性.以high wave、two hand wave、forward kick為例,計算其運動節點,結果如表1.骨架中的運動節點與方差反應出來的運動節點是一致的,證明了本文運用方差的方法可以正確提取人體行為的運動節點,正確判斷出人體行為中運動明顯的肢體.

表1 提取運動節點Table 1 Extract moving nodes
分類權重衡量了復合深度特征FD={FD1,FD2}與骨骼特征FS對于分類做出的貢獻,實驗中將μ1∈[0,1]記為骨骼特征FS的權重,μ2∈[0,1]記為FD1的權重,將步長設為0.1依次進行實驗.如表2,當μ1=0時,說明FS對人體行為識別分類沒有貢獻;當μ1=1時,說明人體行為識別的分類完全依賴于FS,此時可以去除FD.
為估計最優權重參數μ1,μ2,使用交叉驗證的方式進行計算.當μ1=0.1,μ2=0.5時,本文算法具有較高的人體行為識別性能.FD的識別率(μ1=0時)比FS的識別率(μ1=1時)高,所以FD分配到較高的權重是合理的,融合后的特征具有更高的判別力.
本文主要研究人體行為的肢體運動,首先運用方差計算行為的運動節點,利用運動節點表征整個行為.提取運動節點骨骼特征的方法(簡稱本文方法)與未提取運動節點骨骼特征的方法(簡稱初始方法)相比,大量減少了混淆有效特征的無效信息,本文方法在時間與識別率上都有所提升,結果如表3,其中時間是提取骨骼特征所占用的平均時間.

表3 骨骼特征的識別率和平均時間Table 3 Recognition rate and mean time of skeletal features
本文將復合深度特征與骨骼特征相結合,融合復合深度特征與骨骼特征的優點,達到行為識別率更高的目的.對于每個行為都有自身的分類概率,Chen 等人[16]與本文方法的識別率用混淆矩陣表示,如圖8所示.

圖8 混淆矩陣Fig.8 Confusion matrix
比較圖8(a)與圖8(b),本文方法在識別forward punch、draw x、draw circle等行為時識別率有所提升.由圖8(b)可知,draw x的識別率較低,將draw x誤識別成horizontal wave、hammer,主要是因為這3個行為都包含將手水平舉放在胸前的動作,故容易混淆.另外,bend的識別率為0,因為該行為只有一個樣本,在模型訓練時沒有對該行為進行訓練,而在pick up throw中含有類似的bend,故將bend誤識別成pick up throw.
為驗證本文方法的性能,將本文方法與現有優秀方法進行比對,實驗結果如表4.本文方法識別率比現有方法至少提高了2%.若在本文方法的基礎上不提取運功節點,其識別率也達到了93.4673,比現有方法至少提高了1%.說明本文骨骼特征可以作為深度特征的補充特征,彌補深度特征在人體行為中的不足,融合后的特征提高人體行為識別率.

表4 實驗對比Table 4 Comparison experiments
將特征輸入到分類器進行識別分類,以識別率為標準判斷算法的可行性.在使用分類器時涉及到兩個參數:懲罰因子c和核函數參數g,本文通過交叉驗證選擇一組最優參數.

圖9 參數c和g對應識別率的等高線圖Fig.9 Recognition rate counter map of parameter c and g
如圖9,曲線表示不同數值對應識別率的等高線,當c=100,g=0.8時本文模型識別率最高,此處標記為“☆”.
本文提出了一種將深度特征與骨骼特征通過權重融合識別人體行為的方法.從骨骼數據中提取運動節點,增強了行為的可辨別性并提高計算速度,從運動軌跡中提取底層骨骼特征表征人體行為,通過Fisher Vector算法對底層骨骼特征分析,實現降維并使得骨骼特征維度相同.與深度特征結合,對易混淆的行為有很好的補充作用,減少行為的歧義性.用基于SVM的多模型權重融合機制分類識別人體行為,權衡了不同特征對識別分類所做的貢獻,提高識別率.
深度特征具有豐富的細節特征,所以在人體行為分類中發揮了重要作用,但其特征提取與分析時間冗長,不能達到實時性的效果,故我們將提升深度特征提取效率作為進一步研究方向之一,實現人體行為識別的實時分類.