姬曉飛,周 路,李一波
(沈陽航空航天大學自動化學院,沈陽110136)
基于視覺的人體運動分析在智能視頻監(jiān)控、高級人機交互、虛擬現實和基于內容的視頻檢索分析等方面有著廣泛的應用前景和潛在的經濟價值,已經成為計算機領域中備受關注的研究方向之一[1]。
目前存在多種運動特征表示的方法,如基于人體側影和輪廓[2]的靜態(tài)特征表示、基于光流和運動軌跡[3]的動態(tài)特征表示、基于時空體數據的時空特征[4-5]表示等等。其中基于時空體數據的時空特征中最常用的是基于時空興趣點的特征,其對噪聲、遮擋等影響具有較強的魯棒性,對于相機運動和低分辨率的視頻輸入等更具適應性,因此應用較廣。但基于興趣點的原始特征往往維數過高,影響識別速度。因此大量的研究工作著力于如何在不降低識別率的基礎上,合理降低特征維數。文獻[5]提出了一種基于興趣點的靜態(tài)、動態(tài)、時空特征的表示方法。該方法首先提取運動序列的興趣點特征,并在訓練樣本特征空間中利用K-means聚類的方法構造時空碼本分類器,然后將測試樣本的所有興趣點特征表示為基于時空碼本的統(tǒng)計直方圖用于分類識別。此類方法證明了基于興趣點時空特征(3D SIFT)的優(yōu)越性,利用K-means聚類的方法對原始特征進行聚類,生成碼本來降低特征空間的維數,減少識別的復雜度。但聚類初始參數和聚類的維數只能憑經驗確定,很難得到一個準確的值,聚類參數的選取對識別結果的影響較大。文獻[6]提出利用改進的方法檢測時空興趣點并提取3D SIFT描述子特征,然后在單幀和所有幀之間分別進行主成分分析降維的處理。這種方法成功的解決了大多數興趣點描述子維數過高的問題,但是用于識別過程的訓練樣本數量還是相當大的,導致后續(xù)的基于最近鄰的識別仍要花費大量的時間。文獻[7]提出將視頻序列分割成許多個子塊,同時提取每個子塊的3D SIFT特征,然后統(tǒng)計一個視頻序列的所有子塊特征作為視頻序列的原始特征,最后用AdaBoost算法對原始特征進行提取,篩選出少量的對識別最有意義的特征。這種方法通過AdaBoost算法在大量的樣本特征中選取有效的樣本數據用于識別,能夠減少識別過程的計算量,提高了識別的速度。但是該方法在獲取原始特征之前需要對視頻數據做復雜的預處理,這將大大影響算法的應用。
針對以上存在的問題,本文提出將經過降維處理的基于時空興趣點3D SIFT描述子特征與AdaBoost算法進行特征提取的方法相結合。先后通過特征降維和特征提取兩個層次的特征處理,力圖得到一個低維的少量的訓練樣本空間,在保證較好識別率的基礎上,提高識別的速度,達到實時性檢測的目的。具體的實現過程,如圖1所示。首先,用3D SIFT描述子對檢測出的時空興趣點進行表示,并在橫向和縱向上分別對特征數據進行降維處理,初步從減少特征維數的角度減少識別過程的計算量。接下來運用AdaBoost[7]算法對降維后的訓練視頻序列的特征數據進行進一步提取,提取出關鍵的訓練樣本數據,這樣很大程度上減少了應用在識別階段的樣本數,進一步提高識別速度。最后,選取了對于少量的訓練樣本能夠達到快速識別的最近鄰分類器,將未經過Ada-Boost提取的測試序列樣本數據,與提取出的關鍵訓練樣本數據做距離,識別出測試樣本的類別,結果表明在保證一定識別率的基礎上,識別的速度大幅度提高,驗證了所提方法的有效性。
圖1 基于AdaBoost算法特征提取的人體動作識別過程
為了克服Dollar[8]興趣點檢測方法存在的易受人體陰影和背景噪聲影響從而檢測出偽興趣點的現象,本文運用改進的興趣點檢測方法[9],使用不同方向的濾波模板獲得時間和空間維上的聯合濾波響應,檢測出更準確的時空興趣點,并采用文獻[6]的方法計算3D SIFT描述子特征表征人體動作的視頻序列。
上面得到的數據中,表示每幀圖像信息的數據量是很大的,大量的特征數據將會增加識別過程的計算量。本文對得到的3D SIFT描述子特征進行降維處理[6],初步的減少計算復雜度。具體的方法如下:
(1)縱向降維:即單幀圖像的降維,將每幀的N×256大小的數據初步降到1×256,將單幀中所有興趣點的3D SIFT描述子主成分都聚集在一起,構成的單一向量如圖2中(a)所示。
(2)橫向降維:將視頻序列中的每幀圖像對應的特征按(1)降維,得到整個視頻的特征數據M×256(M為此動作的所有視頻幀數)再進行橫向的降維處理到M×50,如圖2(b)、(c)所示。最終對于每個視頻序列采用M×50維的時空特征進行表示。
圖2 特征數據的降維過程
上一節(jié)中已經將3D SIFT表示的特征數據進行了維數上的減少,這里再利用AdaBoost算法進行關鍵幀的提取,得到少量的可分性高的低維訓練樣本數據。
傳統(tǒng)的AdaBoost算法[10]作為一種高精度的分類方法,本文將傳統(tǒng)的AdaBoost算法[10]加以改進,最終不是實現強分類器的構造,而是在眾多的樣本中根據每個樣本被賦予的權值大小提取出關鍵的特征數據具體的方法如下:
總的訓練樣本集:(x1,y1),…(xi,yi),…(xN,yN),yi∈{1,-1};xi為樣本數據,yi為樣本標記;
(2)迭代過程(循環(huán) t=1,2,…,T):
i.在N個訓練樣本中,隨機選取一部分樣本數據作為已知樣本,使用最近鄰分類器作為弱分類器,將每個訓練樣本得到一個假設ht(xi)∈{1,-1},并計算樣本錯誤率εt=PDi(ht(xi)≠yi);(第t次循環(huán)中,分類錯誤樣本對應的取值PDt)
ii.計算弱分類器的權值:
iii.更新訓練樣本的權值:
(3)選取權值小的特征數據。
由于傳統(tǒng)的AdaBoost算法只能處理兩類動作識別問題,所以本文中使用1對多的方法,將N個訓練樣本中要提取的動作類別標記為1,其他所有類別標記為-1,在每次的迭代中,隨機選擇部分訓練樣本作為標記樣本,使用最近鄰分類器作為弱分類器,進而訓練樣本中的每個特征數據都有一個假設,根據每個樣本中特征數據分類的正確率和所有樣本的所有特征數據的準確率,更新每個樣本特征的權值分布,依照每個樣本特征數據擁有權值的大小,選取擁有權值小的特征數據,作為最終的訓練樣本。重復以上的操作就可以實現多類動作訓練樣本的提取。
本文使用的最近鄰分類器在處理小數量的訓練樣本的情況下,實現簡單,且識別速度較快。具體的方法如下:
(2)通過投票的方式,統(tǒng)計每個測試視頻序列中占票數最多的類別即為該動作的識別結果。
實驗過程選取了人體動作識別數據庫中應用最廣泛的KTH數據庫來驗證本文所提出方法的有效性。該數據庫包括6類行為(walking,jogging,running,boxing,hand waving,hand clapping),分別在四個場景下由25個不同的人執(zhí)行,一共有599段視頻,背景相對靜止,除了鏡頭的拉近拉遠,攝像機的運動比較輕微。如圖3所示:
圖3 KTH數據庫中的不同場景下的不同人的視頻幀圖像
首先,提取數據庫中視頻的原始特征,即每個視頻可以用M×50維的特征進行表示(M為每個視頻圖像的幀數。然后采用AdaBoost算法對原始特征進行提取,為每個視頻序列提取出最易于識別的30幀圖像的特征數據(30×50維數據)進行表示。實驗過程采用留一法,每次提取一類動作,進行6次提取。依次循環(huán),將每個動作都將作為測試樣本進行測試,并統(tǒng)計識別結果。使用最近鄰的分類方法進行分類。
表1為原始特征與本文所提特征使用留一法在最近鄰分類器下的識別結果比較。
表1 特征提取前后的識別效果比較
從表1中的識別率可以看到,本文方法得到了較高的識別率。使用AdaBoost算法對原始特征進行篩選相比沒經過篩選之前的特征識別率有略微的降低,但是每個視頻幀圖像的識別處理時間卻有顯著的減少,在內存2 GB和CPU 3.0G Hz的電腦上應用matlab2009b版本測試,處理一幀數據僅僅用了0.004 6 s。經過AdaBoost算法對原始特征進行處理后,訓練樣本的數量顯著減少,相應的測試樣本與訓練樣本比對的時間也縮短,因此大大的提高了識別的速度。
表2是本文方法與近期相關方法基于KTH數據上的識別結果比較,可以看出文獻[11-12]都選取了基于興趣點的描述子特征與其它特征相結合的表示方法,且使用基于詞袋和支持向量機結合的方式,識別率均低于本文提出的方法。主要原因是構造詞袋過程中的不確定因素影響了識別率。文獻[7]同樣用AdaBoost算法進行特征提取和采用最近鄰方法用于識別,不同之處在于文獻[7]提取視頻序列的全局3D SIFT特征,沒有經過降維處理,最終在原始特征中提取200個易識別的特征,作為最終的特征數據。顯然本文的方法擁有的樣本數據的個數更少、維數更低,且識別結果優(yōu)于文獻[7]。通過比較可以看出,本文的方法擁有較高的識別率的同時能夠達到快速識別,進一步證明本文方法的有效性。
表2 不同方法對應的識別率
本文提出了用AdaBoost算法在表征運動信息的大量原始特征數據中提取出有效特征數據的方法,先后使用PCA和AdaBoost算法,分別對視頻序列基于興趣點的3D SIFT特征進行初步的降維及進一步的提取,得到低維數的易于識別的少量訓練樣本特征數據,從而在保證識別率的同時達到快速識別。實驗證明本文的方法在KTH數據庫上得到了93.5%的識別率,識別速度達到0.0046秒/幀,充分的證明了該算法的有效性和可行性。目前本文使用的特征單一、并且視頻數據庫相對簡單,接下來的工作是研究合理的特征融合方法,并在現實場景的環(huán)境下對算法進行測試。
[1]王亮,胡衛(wèi)明,譚鐵牛.人運動的視覺分析綜述[J].計算機學報,2002,25(3):225 -237.
[2]阮濤濤,姚明海,瞿心昱,等.基于視覺的人體運動分析綜述[J].計算機系統(tǒng)應用,2011,20(2):245 -254.
[3]郭利,姬曉飛,李平,等.基于混合特征的人體動作識別改進算法[J].計算機應用研究,2013,30(2):601-604.
[4]凌志剛,趙春暉,梁彥,等.基于視覺的人行為理解綜述[J].計算機應用研究,2008,25(9):2570-2578.
[5]雷慶,李紹滋.動作識別中局部時空特征的運動表示方法研究[J].計算機工程與應用,2010,46(34):7-10.
[6]姬曉飛,吳倩倩,李一波.改進時空特征的人體異常行為檢測方法研究[J].沈陽航空航天大學學報,2013,30(5):42 -46.
[7]Li Liu,Ling Shao,Peter Rockett.Human action recognition based on boosted feature selection and naive bayesnearest-neighbor classification[J].Signal Processing,2013,93(6):1521 -1530.
[8]Dollor P,Rabaud V,Cottrell G,et al.Behavior recognition via sparse spatio-temporal features[C]//Visual and Performance Evaluation of Tracking and Surveillance,2005:65 -72.
[9]Bregonzio M,Gong S,Xiang T.Recognising action as clouds of space- time interest points[C]//Computer Vision and Pattern Recognition,2009:1948 -1955.
[10]宋靜.SVM 與 AdaBoost算法的應用研究[D].大連:大連海事大學,2011.
[11]Kishore K.Reddy·Mubarak Shah.Recognizing 50 human action categories of web videos[J].Machine Vision and Applications,2013,24:971 -981
[12]Laptev I,Marszalek M,Schmid C,et al.Learning realistic human actions from movies[J].Computer Vision and Pattern Recognition,2008:1 -8.