李元祥,謝林柏
江南大學 物聯網工程學院 物聯網應用技術教育部工程中心,江蘇 無錫214122
近年來,隨著計算機視覺技術的快速發展,人體行為識別被廣泛用于視頻監控、智能家居和人機交互等,已經成為機器視覺與模式識別最熱門的研究領域之一。目前,人體行為識別依然面臨著環境光照、物體相互遮擋和算法魯棒性低等挑戰。最新推出的3D體感傳感器,如微軟的Kinect,不僅能夠提供RGB視頻序列,還可以提供深度信息和骨骼位置信息,為人體行為識別提供了一種新的解決方式。
在傳統的行為識別算法中,研究者主要集中于對RGB視頻序列進行行為分析,如Laptev等[1]提出使用哈里斯角點檢測器在時空3D空間檢測興趣點,從而識別出不同的行為。盡管上述算法取得了一定的識別效果,但識別準確率易受光照變化、陰影、物體遮擋和相機視角運動等因素干擾。隨著Kinect深度傳感器可以非常方便地獲取深度信息后,Bulbul等[2]利用DMM計算基于輪廓梯度方向直方圖特征(CT-HOG)、局部二值模式特征(LBP)和邊緣方向直方圖特征(EOH),并決策級融合上述特征來避免光照變化和物體遮擋等不利環境因素的影響,取得了較好的識別效果。Zhu等[3]使用了雙流網絡結構來分別獨立訓練深度圖序列和深度運動圖序列,提取網絡高層次特征Conv5和fc6并使用早期融合的方法融合上述特征,取得了相對于傳統方法更好的識別效果。近年來,許多研究者嘗試融合RGB視頻序列中紋理信息、深度運動圖中的深度信息或骨骼圖中的骨骼位置信息。許艷等[4]利用深度圖提取時空梯度自相關向量特征和梯度局部自相關特征(GLAC),同時利用骨骼幀圖像的靜態姿態模型、運動模型和動態偏移模型表征動作的底層特征,并采用權重投票機制融合上述特征。Imran等[5]利用RGB序列與深度圖序列分別計算運動歷史圖(MHI)和DMM。并輸入到四路獨立的卷積神經網絡(CNN)中訓練,最后融合每路CNN網絡輸出的分數。Luo等[6]分別提取RGB序列的中心對稱局部運動特征(CS-Mltp)和深度圖序列的三維位置信息特征,同時利用基于稀疏編碼的時間金字塔(ScTPM)描述上述兩種特征,并分別比較特征層融合、分數融合的識別效果。
為了融合RGB紋理信息和深度圖中的深度信息,本文提出了一種基于DMM和密集軌跡的人體行為識別算法。為了得到更有效的DMM特征表示,將DMM幀圖像輸入到三路獨立的VGG-16網絡訓練,提取高層次特征作為視頻的靜態特征。同時在計算DMM幀圖像時,為了解決動作速度和幅度對動作識別的影響,引入表示能量大小的權值變量來保留深度圖序列的更多細節信息。此外,為了降低靜態特征和動態特征融合后的特征維度,結合靜態顯著性檢測算法和運動邊界區域確定動作主體區域,以減少密集軌跡數量。該算法結構框圖如圖1所示。
為了得到高性能的網絡參數,需要大樣本數據進行迭代訓練,然而常用的RGBD數據集的數據量較少,直接進行網絡訓練容易導致過擬合。為了克服該問題,首先使用仿射變換[7]模擬深度圖在相機視角變化的效果,同時通過改變DMM差分圖像采樣的時間間隔來模擬同一動作的不同執行速度,從而擴大數據樣本量。然后,引入表示能量大小的權值變量來保留深度圖序列的更多細節信息。將改進的DMM進行彩虹編碼[8]處理,并輸入到VGG-16網絡訓練進而提取Conv5和fc6特征,作為視頻序列的靜態特征表示。
2.1.1 相機視角擴增
由Kinect獲得的深度圖像是表征身體距離相機遠近的灰度圖,本文使用仿射變換模擬深度圖在不同視角下的采集效果,以擴充深度圖在不同視角下的樣本數量。

圖1 算法結構框圖
Kinect相機成像模型如圖2,三維空間坐標(x,y,z)和深度圖的像素坐標(u,v,d)的對應關系為:

其中fx,fy指相機在兩軸X,Y上的焦距,(cx,cy)指相機的光圈中心。對于KinectV1相機,fx=fy=580。Kinect相機的不同視角變換可以看作三維空間點的旋轉,如圖3所示。

圖2 Kinect相機成像模型

圖3 相機視角變化
現在假設相機從P0位置移到Pd位置,那么該過程可以分解為P0旋轉θ角度到Pt,Pt旋轉β角度到Pd。設P0的位置坐標為(X,Y,Z),Pd的位置坐標為(X1,Y1,Z1),則該變換為:

其中Try和Trx分別表示P0到Pt的繞y軸的變換矩陣,Pt到Pd的繞x軸的變換矩陣,可表示為:

其中Ry(θ),Rx(β),Ty(θ),Tx(β)為:

2.1.2 速度擴增
對于一個視頻動作,為了模擬不同速度下執行的效果,需要對原視頻以不同采樣間隔進行下采樣,計算公式為:

圖4 下采樣示意圖
二維卷積神經網絡更適合處理靜態圖像數據,因此采用DMM作為卷積神經網絡數據層的輸入。為了克服動作的速度和幅度對識別結果的影響,在將整個視頻信息壓縮到一幀DMM時,引入表示能量大小的權值變量來保留深度圖序列更多的細節信息。DMM改進計算公式如下,其中表示第i幀的能量表示第i幀深度圖投影到三個正交平面(正平面、側平面和頂平面)得到的投影圖像,表示下采樣序列MAPL{f,s,t}中第i幀的深度圖。

其中ξ為設定的閾值,sum(·)為計算深度圖中非零的個數。
圖5和圖6分別為上述兩種數據擴增手段(相機視角擴增和速度擴增)得到的幀圖像。其中,圖5為UTDMHAD數據集中“right hand wave”動作在同一視角下不同速度下的DMM圖像。圖6顯示了該動作在同一速度下不同視角下的DMM圖像。

圖5“right hand wave”動作下不同速度的DMM圖像

圖6“right hand wave”動作下不同視角的DMM圖像
目前已經出現了許多優秀的深度卷積神經網絡框架如AlexNet、VGGNet和3D-CNN等,針對樣本量偏少的人體行為數據集,小型卷積神經網絡如AlexNet和VGGNet等應優先考慮使用??紤]到深度網絡的特征表達能力和實際的硬件配置,本文使用VGG-16[9]網絡提取DMM的特征信息。
卷積神經網絡可以從零開始或通過遷移學習來訓練,但由于公開數據集如UTD-MHAD和MSR Daily Activity 3D的樣本數據量偏少,從零訓練VGG-16網絡容易出現過擬合,因此本文通過遷移學習來訓練卷積神經網絡。在預訓練模型下,將改進DMM圖像輸入到VGG-16網絡進行網絡參數的微調。
將一幀深度圖像投影到三個正交平面上,可以得到三幅不同投影平面的投影圖像,因此一個深度圖像序列可以提取三個不同投影平面下的高層次特征。為了將Conv5和fc6特征融合,首先對conv5特征進行空間金字塔池化[10],將維度從7×7×512變為50×512,然后根據文獻[11],利用主成分分析(Principal Component Analysis,PCA)將Conv5維度降為128,同時利用高斯混合模型(GMM)[12]求取Conv5的Fisher向量,其中向量維度為2DK=2×128×256=65 536,最后將三個投影平面的Conv5特征串聯,結合fc6特征得到208 896維向量作為行為視頻的靜態特征表示。
為了提取RGB視頻序列的運動信息,本文基于密集軌跡[13]算法跟蹤視頻序列光流場中每個密集采樣特征點并獲得特征點運動軌跡,計算每個軌跡的軌跡形狀、光流直方圖(HOF)和運動邊界直方圖描述符(MBH)來表示其運動信息。文獻[13]提出的密集軌跡是基于圖像均勻采樣計算得到,包含大量背景軌跡,計算量大,特征維度高,相機運動時存在大量不相關的背景軌跡會對識別效果產生不利影響。為此,本文在密集采樣特征點前,首先利用顯著性算法和運動邊界區域檢測出視頻序列中的運動主體部分,然后對檢測出的動作主體進行特征點采樣,并計算每個軌跡的特征表示。
在顯著性檢測領域中,通常利用顏色特征計算圖像的顯著性值,但在行為識別數據集中,部分動作的執行者著裝顏色常和背景接近,為了更準確檢測出顯著性區域,利用融合邊界信息和顏色特征實現單幀圖像中靜態顯著性區域的檢測。
由文獻[14-15]可以得出第i個超像素的邊界信息含量為:

其中bi表示第i個超像素含有邊界點的總量,K為利用SLIC分割法分割后的超像素數量。
將視頻中每幀圖像劃分多個像素塊,并轉化到LAB顏色空間中計算這些像素塊的顯著性值,計算公式為:

其中α為中心-邊緣原則的控制因子,β為空間因子,w為平衡因子,在本文中分別取值為0.9、0.9和0.75;ci,cj和pi,pj分別表示第i、j超像素的顏色特征和空間特征;pc為圖像中心位置向量。
盡管上述靜態顯著性檢測算法能夠檢測出單幀圖像中顯著性區域,但對于檢測行為視頻中運動主體區域時,依然存在部分顯著性區域過小導致提取的軌跡特征信息比較局限或者顯著性區域含有部分背景區域等問題。受文獻[16]啟發,計算連續幀圖像間的運動邊界作為行為視頻的運動區域,并將其與利用靜態顯著性檢測算法得到的顯著性區域進行線性融合,得到最終的運動主體區域。圖7中(a)、(b)為動作“right arm swipe to the left”和對應的運動主體檢測效果圖,從圖中可以看出能夠較好地檢測出運動主體區域。

圖7 UTD-MHAD部分動作運動主體檢測的結果
對運動主體部分進行均勻密集采樣時,為了得到有效的軌跡特征,取每個采樣點周圍大小為N×N×L的時空區域,同時對每個時空區域進一步劃分得到nσ×nσ×nτ份子時空區域。在每個子時空區域內提取一組特征(軌跡形狀、光流直方圖和運動邊界直方圖),并將每組特征進行8 bin量化,最終得到一個330維的軌跡描述子,其中軌跡形狀特征為30維(15×2),HOF特征為108維(2×2×3×9)和MBH特征為192維(2×2×3×8×2)。由于每個輸入視頻都包含大量的密集軌跡,經過計算后會產生大量的軌跡特征組,因此首先利用PCA對軌跡描述子進行1∶2的降維,得到降維后的165維軌跡描述子,然后采用高斯混合模型(GMM)對軌跡描述子建模,取高斯分布個數K為256,并求得軌跡描述子的Fisher向量,其中向量維度為2DK=2×165×256=84 480,作為RGB視頻序列的動態特征。
圖8為UTD-MHAD數據集中動作“right arm swipe to the left”的密集采樣,其中圖(a)為原文算法(IDT)[13]密集采樣和軌跡跟蹤的效果圖,圖(b)為本文算法處理后的效果圖,可以看出圖(a)背景區域中包含大量密集采樣特征點,不僅計算量大,特征維度高,且不相關的背景軌跡會對識別效果產生不利影響。

圖8(a)原文算法

圖8(b)本文算法的軌跡跟蹤
在提取深度圖像的靜態特征時,利用Caffe toolbox[17]實現VGG-16網絡結構,其中網絡模型采用動量值為0.9的批處理隨機梯度下降法和誤差反向傳播更新模型參數。網絡訓練參數設置如文獻[18],即在每個網絡中的隱含層均采用RELU作為激活函數,同時在預訓練模型ILSVRC-2012下,學習率設置為0.001,批次次數設置為32。訓練的最大迭代次數設置為20 000次,其中每5 000次迭代后學習率下降一次。數據擴增處理中,為了保留更多細節信息,最大采樣間隔L為5。在提取RGB動態特征時,對于密集采樣和軌跡特征計算采用和文獻[13]相同的參數設置,即設置8個空間尺度,并在每個空間尺度下使用W為5的采樣步長密集采樣得到特征點,時空區域中N和L分別取值為32和15,子時空區域中nσ和nτ分別取值為2和3。為了驗證本文算法的識別效果,基于兩個公開的人體行為識別數據集,開展了實驗與分析。
UTD-MHAD是由Chen等人[19]利用Kinect深度傳感器和穿戴式傳感器制作的RGB-D行為數據集,其中Kinect深度傳感器采集深度信息,RGB視頻序列和骨骼位置,可穿戴式傳感器采集表演者動作的加速度信息。該數據集包含了27種動作,每個動作分別由8個人執行4次,剔除3個損壞的行為序列,總共有861個行為序列。同時存在一些類似動作,如順時針畫圓、逆時針畫圓、畫三角形等,因此該數據集上的行為識別仍然有很強的挑戰。
為增加樣本數量,本文模擬相機視角變化來增廣實驗訓練樣本數量,θ,β在實驗中取值范圍為[-30°,30°],分別等間隔取5個離散值,原數據量可擴大25倍。在實驗中,橫向層數設為5,即采樣間隔L=1,2,3,4,5,從而進一步擴增5倍,因此網絡輸入數據量總共可以擴增125倍。在8個表演者中,選擇序號為奇數表演者的數據作為訓練集,其余作為測試集。在網絡訓練階段,為了得到魯棒性能好的網絡參數,使用了所有的訓練樣本數據。將視頻的行為特征輸入到線性SVM進行訓練和測試時,由于擴增后的測試樣本數量太多,同時為了保證測試樣本中靜態特征和動態特征的相互對應,本文僅使用原生測試樣本進行測試。最后,對所有類別動作的識別率使用算術平均法得到最終的識別率。
該數據庫上的混淆矩陣如圖9所示,可以看出本文算法在許多動作下取得不錯的識別效果,但對于一些相似動作依然存在誤識別,如“向左滑動”與“向右滑動”,“順時針畫圓”與“逆時針畫圓”,其中“順時針畫圓”與“逆時針畫圓”相識度較高,僅是兩者運動方向的不同,導致兩者存在0.13~0.25的誤識別率。表1對比了不同輸入流下對應的識別效果,其中利用軌跡跟蹤算法得到的識別率為80.87%;利用VGG-16卷積神經網絡訓練DMM數據得到的識別率為91.13%;將上述兩種輸入流得到的特征串聯一起輸入到線性SVM分類器,得到識別率為92.67%。表2對比了其他識別方法在UTDMHAD數據集的識別效果,相對于文獻[2-3,20],本文算法分別提升了4.27%、1.47%和6.55%,主要原因是在計算DMM時引入了能量權重,并且從相機視角和采樣速度上擴增DMM訓練數據,同時融合深度視頻序列中深度特征信息和RGB序列的動態運動信息。

圖9 UTD-MHAD數據集:混淆矩陣

表1在UTD-MHAD數據庫上,不同輸入流對應的識別效果

表2在UTD-MHAD數據庫上,現有方法與本文方法的識別率比較
MSR Daily Activity 3D[22]數據庫是采用Kinect深度傳感器錄制的人體行為公共數據庫,該數據庫包含骨骼關節位置、深度信息和RGB視頻三種數據,包含16類動作,每類行為分別由10個人執行兩次(站立和坐下兩種姿勢),總共960(16×10×2×3)個文件。在本實驗中僅使用了該數據庫中的深度信息和RGB視頻序列。該數據庫數據量偏小,存在很多動作與物體交互的情況,如“看書”、“報紙上寫字”等,且存在一些類似的動作,如“坐下”、“站起來”等,因此進行行為識別具有很大的挑戰性。本文采用和UTD-MHAD數據庫同樣的擴增手段,θ,β在實驗中取值范圍為[-30°,30°],分別取五個離散值,原數據量可增加25倍。對于每個視頻,模擬了五種速度下的情況,數據集可進一步擴增五倍。10個表演者中,選擇序號為奇數表演者的數據作為訓練集,其余作為測試集。在網絡訓練階段,為了得到魯棒性能好的網絡參數,使用了所有的訓練樣本數據。將視頻的行為特征輸入到線性SVM進行訓練和測試時,由于擴增后的測試樣本數量太多,同時為了保證測試樣本中靜態特征和動態特征的相互對應,本文僅使用原生測試樣本進行測試。
在該數據庫上的混淆矩陣如圖10所示,由圖10可以看出一些相似動作依然存在誤識別,如“看書”與“寫字”。表3對比了不同輸入流下對應的識別效果。表4對比了其他識別方法在數據庫MSR Daily Activity 3D上的識別效果,相比于文獻[6]和文獻[25],本文算法分別提升了1.87%和1.2%。相對于UTD-MHAD數據庫,MSR Daily Activity 3D數據庫背景更為復雜,同時很多動作存在與物體交互的情況,因此識別率提升相對較低。

圖10 MSR Daily Activity 3D數據集:混淆矩陣

表3 在MSR Daily Activity 3D數據庫上,不同輸入流對應的識別效果

表4 在MSR Daily Activity 3D數據庫上,現有方法與本文方法的識別率比較
本文方法提出基于深度運動圖和密集軌跡的行為識別算法,主要是為了解決目前行為識別算法在復雜場景下如遮擋,光照變化等識別率不高及算法魯棒性較差的問題。為此,本文首先分別提取RGB視頻序列的紋理特征和深度圖序列的深度特征,然后,利用Fisher向量編碼上述兩種特征并將靜態特征和動態特征串聯作為整個動作視頻的特征描述子。在兩個公開數據集上實驗表明,本文算法對相似動作具有一定的判別性,但本文算法存在計算復雜度高且識別速度有待提高的不足,因此如何提高算法的高效性是下一步工作的方向。