鄒建
?
基于BP神經(jīng)網(wǎng)絡(luò)的人體行為識(shí)別
鄒建
(貴州省通信管理局,貴州貴陽(yáng)550001)
針對(duì)人體行為識(shí)別問(wèn)題,提出一種基于徑向基函數(shù)(BP)神經(jīng)網(wǎng)絡(luò)的人體行為分類(lèi)算法。首先,利用奇異值分解(SVD)算法提取視頻每一幀的奇異值,將每一幀的奇異值按照行拼接起來(lái)即為一個(gè)視頻的樣本,樣本按照行排成樣本矩陣;然后,利用主成分分析(PCA)對(duì)得到的矩陣進(jìn)行去相關(guān)并且降低維數(shù),降低維數(shù)的矩陣再進(jìn)行線(xiàn)性鑒別分析(LDA),使樣本變得線(xiàn)性可分;最后,利用BP神經(jīng)網(wǎng)絡(luò)對(duì)樣本進(jìn)行分類(lèi);實(shí)驗(yàn)結(jié)果表明,與采用最近鄰分類(lèi)和近鄰分類(lèi)(NN)相比,所提算法具有更高的識(shí)別率。
人體行為識(shí)別;SVD;PCA;LDA;BP神經(jīng)網(wǎng)絡(luò)
近年來(lái),計(jì)算機(jī)視覺(jué)的發(fā)展大大推動(dòng)了人體行為分析的進(jìn)步,取得了諸多成果。人體行為分析可分為人體動(dòng)作識(shí)別和分析,其中人體動(dòng)作識(shí)別是指對(duì)人體的運(yùn)動(dòng)模式進(jìn)行分析和識(shí)別[1]。目前,針對(duì)人體行為識(shí)別的方法主要有模板匹配法、狀態(tài)空間法以及基于模型的方法,其中,模板匹配法擁有快速的識(shí)別效率,但識(shí)別率較低且模板具有特定性;基于模型的方法很難尋找到好的模型。因此人體行為識(shí)別仍有許多問(wèn)題亟需解決,研究可靠且穩(wěn)定的識(shí)別方法具有較大意義。Tu等[2]利用結(jié)構(gòu)模型,通過(guò)建立點(diǎn)頭、擺頭、舉手、邁步等行為模型,準(zhǔn)確地描述了上述幾種行為,取得了較高的識(shí)別率;針對(duì)視頻中人體行為尺度不同的問(wèn)題,李妍婷等[3]提出了單目視頻中多視角行為識(shí)別方法,獲得了穩(wěn)定的行為特征。
本文提出一種基于BP神經(jīng)網(wǎng)絡(luò)的人體行為識(shí)別方法,首先對(duì)視頻進(jìn)行對(duì)齊處理,從每個(gè)樣本視頻中提取每一幀的奇異值,然后將奇異值排成一行即為一個(gè)視頻樣本,樣本矩陣由多個(gè)矩陣排成行構(gòu)成。對(duì)得到的樣本矩陣用PCA對(duì)其進(jìn)行去除相關(guān)和降低維度,再由LDA使各個(gè)樣本之間變得線(xiàn)性可分。對(duì)經(jīng)過(guò)特征提取的樣本,可以用來(lái)進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,最后選擇出部分樣本進(jìn)行測(cè)試。實(shí)驗(yàn)結(jié)果表明本文算法性能良好。
一個(gè)經(jīng)典的模式識(shí)別框架包含樣本采集、預(yù)處理、特征選擇與提取、特征變換和分類(lèi)器,如圖1所示。
本文采用簡(jiǎn)單的幀數(shù)對(duì)齊作為視頻預(yù)處理算法,SVD和PCA作為特征提取算法,LDA進(jìn)行特征變換,最后使用BP神經(jīng)網(wǎng)絡(luò)作為分類(lèi)器。樣本采用了KTH activity數(shù)據(jù)庫(kù)[4],該數(shù)據(jù)庫(kù)包含6個(gè)動(dòng)作,分別為走(walking)、打拳(boxing)、拍手(handclapping)、慢跑(jongging)、揮手(handwavin)、快跑(running),每個(gè)動(dòng)作有25個(gè)樣本。本文選取每個(gè)動(dòng)作的20個(gè)樣本作為訓(xùn)練集,另外5個(gè)樣本作為測(cè)試集,圖2為walking動(dòng)作的關(guān)鍵幀。
圖1 模式識(shí)別一般框架
圖2 walking動(dòng)作的關(guān)鍵幀
視頻樣本的時(shí)間長(zhǎng)度不一樣會(huì)導(dǎo)致計(jì)算出來(lái)的矩陣每一樣維度均不一樣,有2種處理方法:1) 提取同樣數(shù)量的視頻的相關(guān)幀來(lái)對(duì)齊[5];2) 采用可以計(jì)算不同維度之間相關(guān)性的張量算法,如TCCA[6]。本文則是簡(jiǎn)單地計(jì)算了所有視頻中最小的幀數(shù),采用該幀數(shù)作為所有視頻的幀數(shù),這樣就可以使得到的樣本矩陣維度一致便于進(jìn)行計(jì)算,經(jīng)過(guò)計(jì)算得到最小的幀數(shù)=232。
特征提取是為了提取出感興趣的信息,忽略噪聲和不重要的信息。SVD的奇異值可以反映圖片像素矩陣行與列的相關(guān)性,這種相關(guān)性可以看作一種特征;同時(shí)SVD的特征可以用很小的維度表示一張圖片。例如,一張×的圖片的SVD特征有min{,}維。SVD可以將一個(gè)矩陣分解為3個(gè)矩陣相乘,如(1)式所示。
這樣的高維度的矩陣直接進(jìn)行分類(lèi),計(jì)算量顯然是巨大的,而且提取出來(lái)的樣本之間可能存在冗余,而PCA算法剛好可以同時(shí)解決這2個(gè)問(wèn)題。PCA的主要作用是去除矩陣行或列之間的相關(guān)性(本文去除的是維度之間的相關(guān)性),去除相關(guān)性后可以選擇奇異值較大的維度作為新的特征,這樣可以壓縮維度,提高后續(xù)分類(lèi)的運(yùn)算速度。PCA的目標(biāo)就是為了找到一個(gè)投影矩陣,使經(jīng)過(guò)投影后的矩陣各個(gè)樣本之間相互正交,即的各行之間相互正交。那么投影后的協(xié)方差矩陣變?yōu)閷?duì)角陣。推導(dǎo)過(guò)程如下。
的協(xié)方差矩陣為C,的協(xié)方差矩陣為C。
由于C是實(shí)對(duì)稱(chēng)陣,所以存在一個(gè)矩陣使
特征變換的目的是使各個(gè)類(lèi)別之間更容易區(qū)別,其一般的思想是從一個(gè)空間投影到另外一個(gè)空間,使原來(lái)不容易區(qū)分的類(lèi)別變得容易區(qū)分。本文采用LDA作為特征變換算法,LDA由Fisher提出,它的主要思想是將樣本投影到一個(gè)低維的特征空間,使投影后的數(shù)據(jù)集的類(lèi)內(nèi)的樣本與樣本之間的距離最?。ㄒ簿褪钦f(shuō)使樣本越聚攏),使類(lèi)與類(lèi)之間的距離越分散。一般來(lái)說(shuō),經(jīng)過(guò)LDA的特征變換后,樣本都更加容易找到分界面。
一個(gè)數(shù)據(jù)集為,它的每個(gè)樣本的維度為,類(lèi)別為,對(duì)于多類(lèi)問(wèn)題需要假設(shè)>。然后,引入特征y=wT,其中,=1,…,。寫(xiě)成矩陣形式(不包括偏置),于是有
用類(lèi)內(nèi)散度矩陣來(lái)衡量類(lèi)內(nèi)方差。
其中,
N是c類(lèi)的樣本數(shù)??傮w協(xié)方差矩陣S為
其中,
用類(lèi)間散度矩陣S度量類(lèi)與類(lèi)之間的散布的情況,由于由m線(xiàn)性表出,故S的秩至多為?1。因此可以在?1維子空間內(nèi)進(jìn)行分類(lèi)。
現(xiàn)在定義投影后的維空間類(lèi)似的矩陣。
其中
最終得到一個(gè)由s和s組成的標(biāo)量,LDA的目的是使s最小、s最大。求得該標(biāo)量最大值即可滿(mǎn)足LDA的目標(biāo)。令()為該標(biāo)量,具體形式如式(18)所示。
代入投影矩陣可得
對(duì)于式(19),可以使用廣義Rayleigh商來(lái)求解,對(duì)s?1s做廣義特征值分解,取?1個(gè)最大特征值所對(duì)應(yīng)的特征向量組成投影矩陣。
LDA可以分為以下幾個(gè)步驟。
1) 計(jì)算每個(gè)類(lèi)的樣本均值m和總體均值。
2) 計(jì)算類(lèi)內(nèi)散度矩陣s和類(lèi)間散度矩陣s。
3) 計(jì)算廣義特征值分解,提取?1個(gè)最大特征值所對(duì)應(yīng)的特征向量組成投影矩陣。
4) 計(jì)算投影后的樣本點(diǎn)。
LDA算法的偽代碼如圖3所示。
LDA算法變換訓(xùn)練矩陣并且進(jìn)行壓縮,輸入為訓(xùn)練矩陣為train,測(cè)試矩陣test,輸出為特征向量組成的矩陣train_lda,test_lda1) 計(jì)算總體平均值m2) 初始化SB和SW3) for i=1 to nClass do4) 計(jì)算每類(lèi)均值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)線(xiàn)性加權(quán)求和,再進(jìn)行非線(xiàn)性變換得到的,其中權(quán)值可利用反向傳播算法求得。隱層的數(shù)量可以很多,隱層數(shù)越多,網(wǎng)絡(luò)相對(duì)越復(fù)雜,訓(xùn)練越耗時(shí);最后一層是輸出層,最終輸出需要的結(jié)果。
輸入層的輸出等于整個(gè)網(wǎng)絡(luò)的輸入信號(hào)。
隱含層第個(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ò)的人體行為識(shí)別
其中
根據(jù)微分的鏈?zhǔn)椒▌t
得出梯度值為
權(quán)值修正量為
局部梯度定義為
權(quán)值修正量為
在輸出層,傳遞函數(shù)為線(xiàn)性函數(shù),因此
權(quán)值修正量為
同理得到
至此,三層BP網(wǎng)絡(luò)的一輪權(quán)值調(diào)整完成,訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)可以用來(lái)對(duì)測(cè)試集進(jìn)行分類(lèi)。
圖4 BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
實(shí)驗(yàn)數(shù)據(jù)來(lái)自KTH數(shù)據(jù)庫(kù),BP神經(jīng)網(wǎng)絡(luò)的輸入層為5個(gè)。對(duì)LDA來(lái)說(shuō),C類(lèi)問(wèn)題在C?1維空間內(nèi)就能分類(lèi)。隱含層20個(gè)節(jié)點(diǎn),輸出層6個(gè)節(jié)點(diǎn)對(duì)應(yīng)6個(gè)不同類(lèi)型的行為實(shí)驗(yàn),比較不同的分類(lèi)方法(最近鄰分類(lèi)法、近鄰分類(lèi)法和BP神經(jīng)網(wǎng)絡(luò)分類(lèi)器)的識(shí)別率。在Matlab 2015b上進(jìn)行仿真,結(jié)果如表1所示。
近鄰分類(lèi)的效果在樣本之間有重疊的時(shí)候比最近鄰分類(lèi)器的效果好,經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn),可以將準(zhǔn)確率由63.33%提升至76.67%。而B(niǎo)P神經(jīng)網(wǎng)絡(luò)分類(lèi)器的效果最好,它可以比較好地對(duì)各個(gè)類(lèi)別之間的界限進(jìn)行擬合,擬合的誤差和隱含層的層數(shù)以及節(jié)點(diǎn)數(shù)有很大的關(guān)系。為了使訓(xùn)練時(shí)誤差大的時(shí)候收斂快,類(lèi)似于人腦的學(xué)習(xí),將誤差函數(shù)用方差誤差函數(shù)調(diào)整為交叉熵誤差函數(shù),發(fā)現(xiàn)收斂速度明顯加快。
表1 不同分類(lèi)方法的比較結(jié)果
本文提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的人體行為識(shí)別算法,采用SVD進(jìn)行特征提取,提取出了視頻中每一幀的奇異值信息作為特征。為了提高計(jì)算速度、減少數(shù)據(jù)量,采用了PCA去除冗余和壓縮數(shù)據(jù)。采用LDA進(jìn)行特征變換,將數(shù)據(jù)投影到低維空間,這樣更容易找到類(lèi)與類(lèi)之間的界限。最后使用可以很好擬合分類(lèi)面的BP神經(jīng)網(wǎng)絡(luò)作為分類(lèi)器,在實(shí)際的測(cè)試中對(duì)KTH數(shù)據(jù)庫(kù)中的6類(lèi)行為的分類(lèi)性能良好。由于視頻是一個(gè)3階張量,后面的工作為:1)對(duì)特征提取可以采用3D-Gabor濾波器[7]提取不同頻率上尺度、不同方向的特征,一個(gè)二維的Gabor核函數(shù)由一個(gè)高斯函數(shù)和余弦函數(shù)相乘得到,可以使用核函數(shù)的相關(guān)參數(shù)調(diào)整需要的尺度和方向;2)采用STM分類(lèi)器[8]或3D-CNN[9]對(duì)張量數(shù)據(jù)進(jìn)行分類(lèi),這樣可以避免將張量轉(zhuǎn)換成向量而忽略數(shù)據(jù)本身之間的聯(lián)系。這是由于傳統(tǒng)圖像、視頻處理方法都是將圖片向量化,這樣將像素值割裂開(kāi)的方法會(huì)丟失圖像內(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] 李妍婷, 羅予頻, 唐光榮. 單目視頻中的多視角行為識(shí)別方法[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ì)量評(píng)價(jià)中幀對(duì)齊算法[J]. 廈門(mén)大學(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ò)安全。