鄒建
?
基于BP神經(jīng)網(wǎng)絡(luò)的人體行為識別
鄒建
(貴州省通信管理局,貴州貴陽550001)
針對人體行為識別問題,提出一種基于徑向基函數(shù)(BP)神經(jīng)網(wǎng)絡(luò)的人體行為分類算法。首先,利用奇異值分解(SVD)算法提取視頻每一幀的奇異值,將每一幀的奇異值按照行拼接起來即為一個(gè)視頻的樣本,樣本按照行排成樣本矩陣;然后,利用主成分分析(PCA)對得到的矩陣進(jìn)行去相關(guān)并且降低維數(shù),降低維數(shù)的矩陣再進(jìn)行線性鑒別分析(LDA),使樣本變得線性可分;最后,利用BP神經(jīng)網(wǎng)絡(luò)對樣本進(jìn)行分類;實(shí)驗(yàn)結(jié)果表明,與采用最近鄰分類和近鄰分類(NN)相比,所提算法具有更高的識別率。
人體行為識別;SVD;PCA;LDA;BP神經(jīng)網(wǎng)絡(luò)
近年來,計(jì)算機(jī)視覺的發(fā)展大大推動(dòng)了人體行為分析的進(jìn)步,取得了諸多成果。人體行為分析可分為人體動(dòng)作識別和分析,其中人體動(dòng)作識別是指對人體的運(yùn)動(dòng)模式進(jìn)行分析和識別[1]。目前,針對人體行為識別的方法主要有模板匹配法、狀態(tài)空間法以及基于模型的方法,其中,模板匹配法擁有快速的識別效率,但識別率較低且模板具有特定性;基于模型的方法很難尋找到好的模型。因此人體行為識別仍有許多問題亟需解決,研究可靠且穩(wěn)定的識別方法具有較大意義。Tu等[2]利用結(jié)構(gòu)模型,通過建立點(diǎn)頭、擺頭、舉手、邁步等行為模型,準(zhǔn)確地描述了上述幾種行為,取得了較高的識別率;針對視頻中人體行為尺度不同的問題,李妍婷等[3]提出了單目視頻中多視角行為識別方法,獲得了穩(wěn)定的行為特征。
本文提出一種基于BP神經(jīng)網(wǎng)絡(luò)的人體行為識別方法,首先對視頻進(jìn)行對齊處理,從每個(gè)樣本視頻中提取每一幀的奇異值,然后將奇異值排成一行即為一個(gè)視頻樣本,樣本矩陣由多個(gè)矩陣排成行構(gòu)成。對得到的樣本矩陣用PCA對其進(jìn)行去除相關(guān)和降低維度,再由LDA使各個(gè)樣本之間變得線性可分。對經(jīng)過特征提取的樣本,可以用來進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,最后選擇出部分樣本進(jìn)行測試。實(shí)驗(yàn)結(jié)果表明本文算法性能良好。
一個(gè)經(jīng)典的模式識別框架包含樣本采集、預(yù)處理、特征選擇與提取、特征變換和分類器,如圖1所示。
本文采用簡單的幀數(shù)對齊作為視頻預(yù)處理算法,SVD和PCA作為特征提取算法,LDA進(jìn)行特征變換,最后使用BP神經(jīng)網(wǎng)絡(luò)作為分類器。樣本采用了KTH activity數(shù)據(jù)庫[4],該數(shù)據(jù)庫包含6個(gè)動(dòng)作,分別為走(walking)、打拳(boxing)、拍手(handclapping)、慢跑(jongging)、揮手(handwavin)、快跑(running),每個(gè)動(dòng)作有25個(gè)樣本。本文選取每個(gè)動(dòng)作的20個(gè)樣本作為訓(xùn)練集,另外5個(gè)樣本作為測試集,圖2為walking動(dòng)作的關(guān)鍵幀。
圖1 模式識別一般框架
圖2 walking動(dòng)作的關(guān)鍵幀
視頻樣本的時(shí)間長度不一樣會導(dǎo)致計(jì)算出來的矩陣每一樣維度均不一樣,有2種處理方法:1) 提取同樣數(shù)量的視頻的相關(guān)幀來對齊[5];2) 采用可以計(jì)算不同維度之間相關(guān)性的張量算法,如TCCA[6]。本文則是簡單地計(jì)算了所有視頻中最小的幀數(shù),采用該幀數(shù)作為所有視頻的幀數(shù),這樣就可以使得到的樣本矩陣維度一致便于進(jìn)行計(jì)算,經(jīng)過計(jì)算得到最小的幀數(shù)=232。
特征提取是為了提取出感興趣的信息,忽略噪聲和不重要的信息。SVD的奇異值可以反映圖片像素矩陣行與列的相關(guān)性,這種相關(guān)性可以看作一種特征;同時(shí)SVD的特征可以用很小的維度表示一張圖片。例如,一張×的圖片的SVD特征有min{,}維。SVD可以將一個(gè)矩陣分解為3個(gè)矩陣相乘,如(1)式所示。
這樣的高維度的矩陣直接進(jìn)行分類,計(jì)算量顯然是巨大的,而且提取出來的樣本之間可能存在冗余,而PCA算法剛好可以同時(shí)解決這2個(gè)問題。PCA的主要作用是去除矩陣行或列之間的相關(guān)性(本文去除的是維度之間的相關(guān)性),去除相關(guān)性后可以選擇奇異值較大的維度作為新的特征,這樣可以壓縮維度,提高后續(xù)分類的運(yùn)算速度。PCA的目標(biāo)就是為了找到一個(gè)投影矩陣,使經(jīng)過投影后的矩陣各個(gè)樣本之間相互正交,即的各行之間相互正交。那么投影后的協(xié)方差矩陣變?yōu)閷顷嚒M茖?dǎo)過程如下。
的協(xié)方差矩陣為C,的協(xié)方差矩陣為C。
由于C是實(shí)對稱陣,所以存在一個(gè)矩陣使
特征變換的目的是使各個(gè)類別之間更容易區(qū)別,其一般的思想是從一個(gè)空間投影到另外一個(gè)空間,使原來不容易區(qū)分的類別變得容易區(qū)分。本文采用LDA作為特征變換算法,LDA由Fisher提出,它的主要思想是將樣本投影到一個(gè)低維的特征空間,使投影后的數(shù)據(jù)集的類內(nèi)的樣本與樣本之間的距離最?。ㄒ簿褪钦f使樣本越聚攏),使類與類之間的距離越分散。一般來說,經(jīng)過LDA的特征變換后,樣本都更加容易找到分界面。
一個(gè)數(shù)據(jù)集為,它的每個(gè)樣本的維度為,類別為,對于多類問題需要假設(shè)>。然后,引入特征y=wT,其中,=1,…,。寫成矩陣形式(不包括偏置),于是有
用類內(nèi)散度矩陣來衡量類內(nèi)方差。
其中,
N是c類的樣本數(shù)??傮w協(xié)方差矩陣S為
其中,
用類間散度矩陣S度量類與類之間的散布的情況,由于由m線性表出,故S的秩至多為?1。因此可以在?1維子空間內(nèi)進(jìn)行分類。
現(xiàn)在定義投影后的維空間類似的矩陣。
其中
最終得到一個(gè)由s和s組成的標(biāo)量,LDA的目的是使s最小、s最大。求得該標(biāo)量最大值即可滿足LDA的目標(biāo)。令()為該標(biāo)量,具體形式如式(18)所示。
代入投影矩陣可得
對于式(19),可以使用廣義Rayleigh商來求解,對s?1s做廣義特征值分解,取?1個(gè)最大特征值所對應(yīng)的特征向量組成投影矩陣。
LDA可以分為以下幾個(gè)步驟。
1) 計(jì)算每個(gè)類的樣本均值m和總體均值。
2) 計(jì)算類內(nèi)散度矩陣s和類間散度矩陣s。
3) 計(jì)算廣義特征值分解,提取?1個(gè)最大特征值所對應(yīng)的特征向量組成投影矩陣。
4) 計(jì)算投影后的樣本點(diǎn)。
LDA算法的偽代碼如圖3所示。
LDA算法變換訓(xùn)練矩陣并且進(jìn)行壓縮,輸入為訓(xùn)練矩陣為train,測試矩陣test,輸出為特征向量組成的矩陣train_lda,test_lda1) 計(jì)算總體平均值m2) 初始化SB和SW3) for i=1 to nClass do4) 計(jì)算每類均值mk5) 計(jì)算6) end for7) 計(jì)算sW?1sB的特征值和特征向量,并且按照特征值從大到小的順序?qū)μ卣飨蛄窟M(jìn)行排列8) 投影壓縮特征*V(:,1:nDims)9) 投影壓縮特征*V(:,1:nDims)10) returntrain_lda,test_lda
2.5.1 BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)是一種全連接的前向網(wǎng)絡(luò),網(wǎng)絡(luò)參數(shù)采用誤差反向傳播算法求解。典型的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,其中包括輸入層、隱含層和輸出層。輸入層由輸入數(shù)據(jù)構(gòu)成,它是網(wǎng)絡(luò)與外部世界連接的窗口;隱含層的每個(gè)節(jié)點(diǎn)是由輸入層節(jié)點(diǎn)線性加權(quán)求和,再進(jìn)行非線性變換得到的,其中權(quán)值可利用反向傳播算法求得。隱層的數(shù)量可以很多,隱層數(shù)越多,網(wǎng)絡(luò)相對越復(fù)雜,訓(xùn)練越耗時(shí);最后一層是輸出層,最終輸出需要的結(jié)果。
輸入層的輸出等于整個(gè)網(wǎng)絡(luò)的輸入信號。
隱含層第個(gè)神經(jīng)元輸入等于v()=()的加權(quán)和。
假設(shè)(·)為Sigmoid函數(shù),則隱含層第個(gè)神經(jīng)元的輸出為
輸出層第個(gè)神經(jīng)元輸入等于v()的加權(quán)和。
輸出層第個(gè)神經(jīng)元的輸出為
為了使神經(jīng)網(wǎng)絡(luò)在誤差大的時(shí)候收斂的速度更快,誤差小的時(shí)候收斂的慢一些,采用了交叉熵誤差函數(shù)(cross-entropy error function),式(25)是第個(gè)神經(jīng)元的誤差。
網(wǎng)絡(luò)總誤差為
2.5.2 基于BP神經(jīng)網(wǎng)絡(luò)的人體行為識別
其中
根據(jù)微分的鏈?zhǔn)椒▌t
得出梯度值為
權(quán)值修正量為
局部梯度定義為
權(quán)值修正量為
在輸出層,傳遞函數(shù)為線性函數(shù),因此
權(quán)值修正量為
同理得到
至此,三層BP網(wǎng)絡(luò)的一輪權(quán)值調(diào)整完成,訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)可以用來對測試集進(jìn)行分類。
圖4 BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
實(shí)驗(yàn)數(shù)據(jù)來自KTH數(shù)據(jù)庫,BP神經(jīng)網(wǎng)絡(luò)的輸入層為5個(gè)。對LDA來說,C類問題在C?1維空間內(nèi)就能分類。隱含層20個(gè)節(jié)點(diǎn),輸出層6個(gè)節(jié)點(diǎn)對應(yīng)6個(gè)不同類型的行為實(shí)驗(yàn),比較不同的分類方法(最近鄰分類法、近鄰分類法和BP神經(jīng)網(wǎng)絡(luò)分類器)的識別率。在Matlab 2015b上進(jìn)行仿真,結(jié)果如表1所示。
近鄰分類的效果在樣本之間有重疊的時(shí)候比最近鄰分類器的效果好,經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn),可以將準(zhǔn)確率由63.33%提升至76.67%。而BP神經(jīng)網(wǎng)絡(luò)分類器的效果最好,它可以比較好地對各個(gè)類別之間的界限進(jìn)行擬合,擬合的誤差和隱含層的層數(shù)以及節(jié)點(diǎn)數(shù)有很大的關(guān)系。為了使訓(xùn)練時(shí)誤差大的時(shí)候收斂快,類似于人腦的學(xué)習(xí),將誤差函數(shù)用方差誤差函數(shù)調(diào)整為交叉熵誤差函數(shù),發(fā)現(xiàn)收斂速度明顯加快。
表1 不同分類方法的比較結(jié)果
本文提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的人體行為識別算法,采用SVD進(jìn)行特征提取,提取出了視頻中每一幀的奇異值信息作為特征。為了提高計(jì)算速度、減少數(shù)據(jù)量,采用了PCA去除冗余和壓縮數(shù)據(jù)。采用LDA進(jìn)行特征變換,將數(shù)據(jù)投影到低維空間,這樣更容易找到類與類之間的界限。最后使用可以很好擬合分類面的BP神經(jīng)網(wǎng)絡(luò)作為分類器,在實(shí)際的測試中對KTH數(shù)據(jù)庫中的6類行為的分類性能良好。由于視頻是一個(gè)3階張量,后面的工作為:1)對特征提取可以采用3D-Gabor濾波器[7]提取不同頻率上尺度、不同方向的特征,一個(gè)二維的Gabor核函數(shù)由一個(gè)高斯函數(shù)和余弦函數(shù)相乘得到,可以使用核函數(shù)的相關(guān)參數(shù)調(diào)整需要的尺度和方向;2)采用STM分類器[8]或3D-CNN[9]對張量數(shù)據(jù)進(jìn)行分類,這樣可以避免將張量轉(zhuǎn)換成向量而忽略數(shù)據(jù)本身之間的聯(lián)系。這是由于傳統(tǒng)圖像、視頻處理方法都是將圖片向量化,這樣將像素值割裂開的方法會丟失圖像內(nèi)容上像素值之間的關(guān)聯(lián)性,張量的方法是將整張圖片或視頻看作整體進(jìn)行處理,可以避免這種“割裂”操作。
[1] ADAM N R, ATLURI V, HUANG W K. Modeling and analysis of workflows using Petri nets[J]. Journal of Intelligent Information Systems, 1998, 10(2): 131-158.
[2] TU T Y, SHI Y X. Image capture and efficient storing in monitor system[J]. Application Research of Computers, 2005, 22(8): 241-242.
[3] 李妍婷, 羅予頻, 唐光榮. 單目視頻中的多視角行為識別方法[J]. 計(jì)算機(jī)應(yīng)用, 2006, 26(7): 1592-1594.
LI Y T, LUO Y P, TANG G R. Activity recognition method of multiple view angles from monocular videos[J]. Journal of Computer Applications, 2006, 26(7): 1592-1594.
[4] SCHULDT C, LAPTEV I, CAPUTO B. Recognizing human actions: a local SVM approach[C]//The 17th International Conference on Pattern Recognition. 2004: 32-36.
[5] 許偉堅(jiān), 馮超, 李進(jìn)錦, 等. 一種新的視頻質(zhì)量評價(jià)中幀對齊算法[J]. 廈門大學(xué)學(xué)報(bào)(自然版), 2012, 51(2):185-188.
XU W J, FENG C. A new frame alignment algorithm in video quality evaluation[J]. Journal of Xiamen University (Natural Science), 2012 , 51(2) :185-188.
[6] KIM T K, WONG S F, CIPOLLA R. Tensor canonical correlation analysis for action classification[C]//IEEE Conference on Computer Vision and Pattern Recognition. 2007: 1-8.
[7] WANG Y, CHUA C S. Face recognition from 2D and 3D images using 3D Gabor filters[J]. Image and Vision Computing, 2005, 23(11): 1018-1028.
[8] CAI D, HE X, WEN J R, et al. Support tensor machines for text categorization[J]. 2006.
[9] JI S, XU W, YANG M, et al. 3D convolutional neural networks for human action recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(1): 221-231.
Human action recognition based on back propagation neural network
ZOU Jian
(Guizhou Communications Administration , Guiyang 550001, China)
For human action recognition, an algorithm for classifying human action based on back propagation (BP) neural network was proposed. Firstly, singular value decomposition (SVD) was used to extract the singular value of each frame of the video. Then each row of a matrix was composed of the singular value of each video. Every single row of the matrix is a sample of human action. Secondly, the principle component analysis (PCA) algorithm was proposed to remove correlation and reduce dimension. Then the linear discriminant analysis (LDA) algorithm was applied to matrix processed by PCA to make samples linearly separable. Finally, the back propagation neural network was used as a classifier. The experimental results show that the proposed method, compared with nearest neighbor classifier and-nearest neighbor (NN) classifier, has a higher recognition rate.
human action recognition, SVD, PCA, LDA, back propagation neural network
TP391.41
A
10.11959/j.issn.2096-109x.2017.00196
2017-07-02;
2017-08-17。
鄒建,13908519077@139.com
鄒建(1980-),男,貴州畢節(jié)人,貴州省通信管理局網(wǎng)維中心工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)安全。