李元祥,謝林柏
江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院 物聯(lián)網(wǎng)應(yīng)用技術(shù)教育部工程中心,江蘇 無錫214122
近年來,隨著計算機(jī)視覺技術(shù)的快速發(fā)展,人體行為識別被廣泛用于視頻監(jiān)控、智能家居和人機(jī)交互等,已經(jīng)成為機(jī)器視覺與模式識別最熱門的研究領(lǐng)域之一。目前,人體行為識別依然面臨著環(huán)境光照、物體相互遮擋和算法魯棒性低等挑戰(zhàn)。最新推出的3D體感傳感器,如微軟的Kinect,不僅能夠提供RGB視頻序列,還可以提供深度信息和骨骼位置信息,為人體行為識別提供了一種新的解決方式。
在傳統(tǒng)的行為識別算法中,研究者主要集中于對RGB視頻序列進(jìn)行行為分析,如Laptev等[1]提出使用哈里斯角點檢測器在時空3D空間檢測興趣點,從而識別出不同的行為。盡管上述算法取得了一定的識別效果,但識別準(zhǔn)確率易受光照變化、陰影、物體遮擋和相機(jī)視角運(yùn)動等因素干擾。隨著Kinect深度傳感器可以非常方便地獲取深度信息后,Bulbul等[2]利用DMM計算基于輪廓梯度方向直方圖特征(CT-HOG)、局部二值模式特征(LBP)和邊緣方向直方圖特征(EOH),并決策級融合上述特征來避免光照變化和物體遮擋等不利環(huán)境因素的影響,取得了較好的識別效果。Zhu等[3]使用了雙流網(wǎng)絡(luò)結(jié)構(gòu)來分別獨立訓(xùn)練深度圖序列和深度運(yùn)動圖序列,提取網(wǎng)絡(luò)高層次特征Conv5和fc6并使用早期融合的方法融合上述特征,取得了相對于傳統(tǒng)方法更好的識別效果。近年來,許多研究者嘗試融合RGB視頻序列中紋理信息、深度運(yùn)動圖中的深度信息或骨骼圖中的骨骼位置信息。許艷等[4]利用深度圖提取時空梯度自相關(guān)向量特征和梯度局部自相關(guān)特征(GLAC),同時利用骨骼幀圖像的靜態(tài)姿態(tài)模型、運(yùn)動模型和動態(tài)偏移模型表征動作的底層特征,并采用權(quán)重投票機(jī)制融合上述特征。Imran等[5]利用RGB序列與深度圖序列分別計算運(yùn)動歷史圖(MHI)和DMM。并輸入到四路獨立的卷積神經(jīng)網(wǎng)絡(luò)(CNN)中訓(xùn)練,最后融合每路CNN網(wǎng)絡(luò)輸出的分?jǐn)?shù)。Luo等[6]分別提取RGB序列的中心對稱局部運(yùn)動特征(CS-Mltp)和深度圖序列的三維位置信息特征,同時利用基于稀疏編碼的時間金字塔(ScTPM)描述上述兩種特征,并分別比較特征層融合、分?jǐn)?shù)融合的識別效果。
為了融合RGB紋理信息和深度圖中的深度信息,本文提出了一種基于DMM和密集軌跡的人體行為識別算法。為了得到更有效的DMM特征表示,將DMM幀圖像輸入到三路獨立的VGG-16網(wǎng)絡(luò)訓(xùn)練,提取高層次特征作為視頻的靜態(tài)特征。同時在計算DMM幀圖像時,為了解決動作速度和幅度對動作識別的影響,引入表示能量大小的權(quán)值變量來保留深度圖序列的更多細(xì)節(jié)信息。此外,為了降低靜態(tài)特征和動態(tài)特征融合后的特征維度,結(jié)合靜態(tài)顯著性檢測算法和運(yùn)動邊界區(qū)域確定動作主體區(qū)域,以減少密集軌跡數(shù)量。該算法結(jié)構(gòu)框圖如圖1所示。
為了得到高性能的網(wǎng)絡(luò)參數(shù),需要大樣本數(shù)據(jù)進(jìn)行迭代訓(xùn)練,然而常用的RGBD數(shù)據(jù)集的數(shù)據(jù)量較少,直接進(jìn)行網(wǎng)絡(luò)訓(xùn)練容易導(dǎo)致過擬合。為了克服該問題,首先使用仿射變換[7]模擬深度圖在相機(jī)視角變化的效果,同時通過改變DMM差分圖像采樣的時間間隔來模擬同一動作的不同執(zhí)行速度,從而擴(kuò)大數(shù)據(jù)樣本量。然后,引入表示能量大小的權(quán)值變量來保留深度圖序列的更多細(xì)節(jié)信息。將改進(jìn)的DMM進(jìn)行彩虹編碼[8]處理,并輸入到VGG-16網(wǎng)絡(luò)訓(xùn)練進(jìn)而提取Conv5和fc6特征,作為視頻序列的靜態(tài)特征表示。
2.1.1 相機(jī)視角擴(kuò)增
由Kinect獲得的深度圖像是表征身體距離相機(jī)遠(yuǎn)近的灰度圖,本文使用仿射變換模擬深度圖在不同視角下的采集效果,以擴(kuò)充深度圖在不同視角下的樣本數(shù)量。
圖1 算法結(jié)構(gòu)框圖
Kinect相機(jī)成像模型如圖2,三維空間坐標(biāo)(x,y,z)和深度圖的像素坐標(biāo)(u,v,d)的對應(yīng)關(guān)系為:
其中fx,fy指相機(jī)在兩軸X,Y上的焦距,(cx,cy)指相機(jī)的光圈中心。對于KinectV1相機(jī),fx=fy=580。Kinect相機(jī)的不同視角變換可以看作三維空間點的旋轉(zhuǎn),如圖3所示。
圖2 Kinect相機(jī)成像模型
圖3 相機(jī)視角變化
現(xiàn)在假設(shè)相機(jī)從P0位置移到Pd位置,那么該過程可以分解為P0旋轉(zhuǎn)θ角度到Pt,Pt旋轉(zhuǎn)β角度到Pd。設(shè)P0的位置坐標(biāo)為(X,Y,Z),Pd的位置坐標(biāo)為(X1,Y1,Z1),則該變換為:
其中Try和Trx分別表示P0到Pt的繞y軸的變換矩陣,Pt到Pd的繞x軸的變換矩陣,可表示為:
其中Ry(θ),Rx(β),Ty(θ),Tx(β)為:
2.1.2 速度擴(kuò)增
對于一個視頻動作,為了模擬不同速度下執(zhí)行的效果,需要對原視頻以不同采樣間隔進(jìn)行下采樣,計算公式為:
圖4 下采樣示意圖
二維卷積神經(jīng)網(wǎng)絡(luò)更適合處理靜態(tài)圖像數(shù)據(jù),因此采用DMM作為卷積神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)層的輸入。為了克服動作的速度和幅度對識別結(jié)果的影響,在將整個視頻信息壓縮到一幀DMM時,引入表示能量大小的權(quán)值變量來保留深度圖序列更多的細(xì)節(jié)信息。DMM改進(jìn)計算公式如下,其中表示第i幀的能量表示第i幀深度圖投影到三個正交平面(正平面、側(cè)平面和頂平面)得到的投影圖像,表示下采樣序列MAPL{f,s,t}中第i幀的深度圖。
其中ξ為設(shè)定的閾值,sum(·)為計算深度圖中非零的個數(shù)。
圖5和圖6分別為上述兩種數(shù)據(jù)擴(kuò)增手段(相機(jī)視角擴(kuò)增和速度擴(kuò)增)得到的幀圖像。其中,圖5為UTDMHAD數(shù)據(jù)集中“right hand wave”動作在同一視角下不同速度下的DMM圖像。圖6顯示了該動作在同一速度下不同視角下的DMM圖像。
圖5“right hand wave”動作下不同速度的DMM圖像
圖6“right hand wave”動作下不同視角的DMM圖像
目前已經(jīng)出現(xiàn)了許多優(yōu)秀的深度卷積神經(jīng)網(wǎng)絡(luò)框架如AlexNet、VGGNet和3D-CNN等,針對樣本量偏少的人體行為數(shù)據(jù)集,小型卷積神經(jīng)網(wǎng)絡(luò)如AlexNet和VGGNet等應(yīng)優(yōu)先考慮使用??紤]到深度網(wǎng)絡(luò)的特征表達(dá)能力和實際的硬件配置,本文使用VGG-16[9]網(wǎng)絡(luò)提取DMM的特征信息。
卷積神經(jīng)網(wǎng)絡(luò)可以從零開始或通過遷移學(xué)習(xí)來訓(xùn)練,但由于公開數(shù)據(jù)集如UTD-MHAD和MSR Daily Activity 3D的樣本數(shù)據(jù)量偏少,從零訓(xùn)練VGG-16網(wǎng)絡(luò)容易出現(xiàn)過擬合,因此本文通過遷移學(xué)習(xí)來訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)。在預(yù)訓(xùn)練模型下,將改進(jìn)DMM圖像輸入到VGG-16網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)參數(shù)的微調(diào)。
將一幀深度圖像投影到三個正交平面上,可以得到三幅不同投影平面的投影圖像,因此一個深度圖像序列可以提取三個不同投影平面下的高層次特征。為了將Conv5和fc6特征融合,首先對conv5特征進(jìn)行空間金字塔池化[10],將維度從7×7×512變?yōu)?0×512,然后根據(jù)文獻(xiàn)[11],利用主成分分析(Principal Component Analysis,PCA)將Conv5維度降為128,同時利用高斯混合模型(GMM)[12]求取Conv5的Fisher向量,其中向量維度為2DK=2×128×256=65 536,最后將三個投影平面的Conv5特征串聯(lián),結(jié)合fc6特征得到208 896維向量作為行為視頻的靜態(tài)特征表示。
為了提取RGB視頻序列的運(yùn)動信息,本文基于密集軌跡[13]算法跟蹤視頻序列光流場中每個密集采樣特征點并獲得特征點運(yùn)動軌跡,計算每個軌跡的軌跡形狀、光流直方圖(HOF)和運(yùn)動邊界直方圖描述符(MBH)來表示其運(yùn)動信息。文獻(xiàn)[13]提出的密集軌跡是基于圖像均勻采樣計算得到,包含大量背景軌跡,計算量大,特征維度高,相機(jī)運(yùn)動時存在大量不相關(guān)的背景軌跡會對識別效果產(chǎn)生不利影響。為此,本文在密集采樣特征點前,首先利用顯著性算法和運(yùn)動邊界區(qū)域檢測出視頻序列中的運(yùn)動主體部分,然后對檢測出的動作主體進(jìn)行特征點采樣,并計算每個軌跡的特征表示。
在顯著性檢測領(lǐng)域中,通常利用顏色特征計算圖像的顯著性值,但在行為識別數(shù)據(jù)集中,部分動作的執(zhí)行者著裝顏色常和背景接近,為了更準(zhǔn)確檢測出顯著性區(qū)域,利用融合邊界信息和顏色特征實現(xiàn)單幀圖像中靜態(tài)顯著性區(qū)域的檢測。
由文獻(xiàn)[14-15]可以得出第i個超像素的邊界信息含量為:
其中bi表示第i個超像素含有邊界點的總量,K為利用SLIC分割法分割后的超像素數(shù)量。
將視頻中每幀圖像劃分多個像素塊,并轉(zhuǎn)化到LAB顏色空間中計算這些像素塊的顯著性值,計算公式為:
其中α為中心-邊緣原則的控制因子,β為空間因子,w為平衡因子,在本文中分別取值為0.9、0.9和0.75;ci,cj和pi,pj分別表示第i、j超像素的顏色特征和空間特征;pc為圖像中心位置向量。
盡管上述靜態(tài)顯著性檢測算法能夠檢測出單幀圖像中顯著性區(qū)域,但對于檢測行為視頻中運(yùn)動主體區(qū)域時,依然存在部分顯著性區(qū)域過小導(dǎo)致提取的軌跡特征信息比較局限或者顯著性區(qū)域含有部分背景區(qū)域等問題。受文獻(xiàn)[16]啟發(fā),計算連續(xù)幀圖像間的運(yùn)動邊界作為行為視頻的運(yùn)動區(qū)域,并將其與利用靜態(tài)顯著性檢測算法得到的顯著性區(qū)域進(jìn)行線性融合,得到最終的運(yùn)動主體區(qū)域。圖7中(a)、(b)為動作“right arm swipe to the left”和對應(yīng)的運(yùn)動主體檢測效果圖,從圖中可以看出能夠較好地檢測出運(yùn)動主體區(qū)域。
圖7 UTD-MHAD部分動作運(yùn)動主體檢測的結(jié)果
對運(yùn)動主體部分進(jìn)行均勻密集采樣時,為了得到有效的軌跡特征,取每個采樣點周圍大小為N×N×L的時空區(qū)域,同時對每個時空區(qū)域進(jìn)一步劃分得到nσ×nσ×nτ份子時空區(qū)域。在每個子時空區(qū)域內(nèi)提取一組特征(軌跡形狀、光流直方圖和運(yùn)動邊界直方圖),并將每組特征進(jìn)行8 bin量化,最終得到一個330維的軌跡描述子,其中軌跡形狀特征為30維(15×2),HOF特征為108維(2×2×3×9)和MBH特征為192維(2×2×3×8×2)。由于每個輸入視頻都包含大量的密集軌跡,經(jīng)過計算后會產(chǎn)生大量的軌跡特征組,因此首先利用PCA對軌跡描述子進(jìn)行1∶2的降維,得到降維后的165維軌跡描述子,然后采用高斯混合模型(GMM)對軌跡描述子建模,取高斯分布個數(shù)K為256,并求得軌跡描述子的Fisher向量,其中向量維度為2DK=2×165×256=84 480,作為RGB視頻序列的動態(tài)特征。
圖8為UTD-MHAD數(shù)據(jù)集中動作“right arm swipe to the left”的密集采樣,其中圖(a)為原文算法(IDT)[13]密集采樣和軌跡跟蹤的效果圖,圖(b)為本文算法處理后的效果圖,可以看出圖(a)背景區(qū)域中包含大量密集采樣特征點,不僅計算量大,特征維度高,且不相關(guān)的背景軌跡會對識別效果產(chǎn)生不利影響。
圖8(a)原文算法
圖8(b)本文算法的軌跡跟蹤
在提取深度圖像的靜態(tài)特征時,利用Caffe toolbox[17]實現(xiàn)VGG-16網(wǎng)絡(luò)結(jié)構(gòu),其中網(wǎng)絡(luò)模型采用動量值為0.9的批處理隨機(jī)梯度下降法和誤差反向傳播更新模型參數(shù)。網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)置如文獻(xiàn)[18],即在每個網(wǎng)絡(luò)中的隱含層均采用RELU作為激活函數(shù),同時在預(yù)訓(xùn)練模型ILSVRC-2012下,學(xué)習(xí)率設(shè)置為0.001,批次次數(shù)設(shè)置為32。訓(xùn)練的最大迭代次數(shù)設(shè)置為20 000次,其中每5 000次迭代后學(xué)習(xí)率下降一次。數(shù)據(jù)擴(kuò)增處理中,為了保留更多細(xì)節(jié)信息,最大采樣間隔L為5。在提取RGB動態(tài)特征時,對于密集采樣和軌跡特征計算采用和文獻(xiàn)[13]相同的參數(shù)設(shè)置,即設(shè)置8個空間尺度,并在每個空間尺度下使用W為5的采樣步長密集采樣得到特征點,時空區(qū)域中N和L分別取值為32和15,子時空區(qū)域中nσ和nτ分別取值為2和3。為了驗證本文算法的識別效果,基于兩個公開的人體行為識別數(shù)據(jù)集,開展了實驗與分析。
UTD-MHAD是由Chen等人[19]利用Kinect深度傳感器和穿戴式傳感器制作的RGB-D行為數(shù)據(jù)集,其中Kinect深度傳感器采集深度信息,RGB視頻序列和骨骼位置,可穿戴式傳感器采集表演者動作的加速度信息。該數(shù)據(jù)集包含了27種動作,每個動作分別由8個人執(zhí)行4次,剔除3個損壞的行為序列,總共有861個行為序列。同時存在一些類似動作,如順時針畫圓、逆時針畫圓、畫三角形等,因此該數(shù)據(jù)集上的行為識別仍然有很強(qiáng)的挑戰(zhàn)。
為增加樣本數(shù)量,本文模擬相機(jī)視角變化來增廣實驗訓(xùn)練樣本數(shù)量,θ,β在實驗中取值范圍為[-30°,30°],分別等間隔取5個離散值,原數(shù)據(jù)量可擴(kuò)大25倍。在實驗中,橫向?qū)訑?shù)設(shè)為5,即采樣間隔L=1,2,3,4,5,從而進(jìn)一步擴(kuò)增5倍,因此網(wǎng)絡(luò)輸入數(shù)據(jù)量總共可以擴(kuò)增125倍。在8個表演者中,選擇序號為奇數(shù)表演者的數(shù)據(jù)作為訓(xùn)練集,其余作為測試集。在網(wǎng)絡(luò)訓(xùn)練階段,為了得到魯棒性能好的網(wǎng)絡(luò)參數(shù),使用了所有的訓(xùn)練樣本數(shù)據(jù)。將視頻的行為特征輸入到線性SVM進(jìn)行訓(xùn)練和測試時,由于擴(kuò)增后的測試樣本數(shù)量太多,同時為了保證測試樣本中靜態(tài)特征和動態(tài)特征的相互對應(yīng),本文僅使用原生測試樣本進(jìn)行測試。最后,對所有類別動作的識別率使用算術(shù)平均法得到最終的識別率。
該數(shù)據(jù)庫上的混淆矩陣如圖9所示,可以看出本文算法在許多動作下取得不錯的識別效果,但對于一些相似動作依然存在誤識別,如“向左滑動”與“向右滑動”,“順時針畫圓”與“逆時針畫圓”,其中“順時針畫圓”與“逆時針畫圓”相識度較高,僅是兩者運(yùn)動方向的不同,導(dǎo)致兩者存在0.13~0.25的誤識別率。表1對比了不同輸入流下對應(yīng)的識別效果,其中利用軌跡跟蹤算法得到的識別率為80.87%;利用VGG-16卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練DMM數(shù)據(jù)得到的識別率為91.13%;將上述兩種輸入流得到的特征串聯(lián)一起輸入到線性SVM分類器,得到識別率為92.67%。表2對比了其他識別方法在UTDMHAD數(shù)據(jù)集的識別效果,相對于文獻(xiàn)[2-3,20],本文算法分別提升了4.27%、1.47%和6.55%,主要原因是在計算DMM時引入了能量權(quán)重,并且從相機(jī)視角和采樣速度上擴(kuò)增DMM訓(xùn)練數(shù)據(jù),同時融合深度視頻序列中深度特征信息和RGB序列的動態(tài)運(yùn)動信息。
圖9 UTD-MHAD數(shù)據(jù)集:混淆矩陣
表1在UTD-MHAD數(shù)據(jù)庫上,不同輸入流對應(yīng)的識別效果
表2在UTD-MHAD數(shù)據(jù)庫上,現(xiàn)有方法與本文方法的識別率比較
MSR Daily Activity 3D[22]數(shù)據(jù)庫是采用Kinect深度傳感器錄制的人體行為公共數(shù)據(jù)庫,該數(shù)據(jù)庫包含骨骼關(guān)節(jié)位置、深度信息和RGB視頻三種數(shù)據(jù),包含16類動作,每類行為分別由10個人執(zhí)行兩次(站立和坐下兩種姿勢),總共960(16×10×2×3)個文件。在本實驗中僅使用了該數(shù)據(jù)庫中的深度信息和RGB視頻序列。該數(shù)據(jù)庫數(shù)據(jù)量偏小,存在很多動作與物體交互的情況,如“看書”、“報紙上寫字”等,且存在一些類似的動作,如“坐下”、“站起來”等,因此進(jìn)行行為識別具有很大的挑戰(zhàn)性。本文采用和UTD-MHAD數(shù)據(jù)庫同樣的擴(kuò)增手段,θ,β在實驗中取值范圍為[-30°,30°],分別取五個離散值,原數(shù)據(jù)量可增加25倍。對于每個視頻,模擬了五種速度下的情況,數(shù)據(jù)集可進(jìn)一步擴(kuò)增五倍。10個表演者中,選擇序號為奇數(shù)表演者的數(shù)據(jù)作為訓(xùn)練集,其余作為測試集。在網(wǎng)絡(luò)訓(xùn)練階段,為了得到魯棒性能好的網(wǎng)絡(luò)參數(shù),使用了所有的訓(xùn)練樣本數(shù)據(jù)。將視頻的行為特征輸入到線性SVM進(jìn)行訓(xùn)練和測試時,由于擴(kuò)增后的測試樣本數(shù)量太多,同時為了保證測試樣本中靜態(tài)特征和動態(tài)特征的相互對應(yīng),本文僅使用原生測試樣本進(jìn)行測試。
在該數(shù)據(jù)庫上的混淆矩陣如圖10所示,由圖10可以看出一些相似動作依然存在誤識別,如“看書”與“寫字”。表3對比了不同輸入流下對應(yīng)的識別效果。表4對比了其他識別方法在數(shù)據(jù)庫MSR Daily Activity 3D上的識別效果,相比于文獻(xiàn)[6]和文獻(xiàn)[25],本文算法分別提升了1.87%和1.2%。相對于UTD-MHAD數(shù)據(jù)庫,MSR Daily Activity 3D數(shù)據(jù)庫背景更為復(fù)雜,同時很多動作存在與物體交互的情況,因此識別率提升相對較低。
圖10 MSR Daily Activity 3D數(shù)據(jù)集:混淆矩陣
表3 在MSR Daily Activity 3D數(shù)據(jù)庫上,不同輸入流對應(yīng)的識別效果
表4 在MSR Daily Activity 3D數(shù)據(jù)庫上,現(xiàn)有方法與本文方法的識別率比較
本文方法提出基于深度運(yùn)動圖和密集軌跡的行為識別算法,主要是為了解決目前行為識別算法在復(fù)雜場景下如遮擋,光照變化等識別率不高及算法魯棒性較差的問題。為此,本文首先分別提取RGB視頻序列的紋理特征和深度圖序列的深度特征,然后,利用Fisher向量編碼上述兩種特征并將靜態(tài)特征和動態(tài)特征串聯(lián)作為整個動作視頻的特征描述子。在兩個公開數(shù)據(jù)集上實驗表明,本文算法對相似動作具有一定的判別性,但本文算法存在計算復(fù)雜度高且識別速度有待提高的不足,因此如何提高算法的高效性是下一步工作的方向。