馬添力,肖文棟
(1.北京科技大學(xué)自動(dòng)化學(xué)院,北京 100083;2.北京市工業(yè)波譜成像工程技術(shù)研究中心,北京 100083)
利用步態(tài)信息進(jìn)行身份識(shí)別是近年來(lái)新興的一種生物識(shí)別技術(shù),它根據(jù)人體的步態(tài)特征來(lái)進(jìn)行身份的認(rèn)證。某些場(chǎng)景下,人們會(huì)對(duì)自己進(jìn)行喬裝打扮,比如戴口罩和帽子以及化妝等,但自身的步態(tài)特征難以控制。在多重因素的影響下,人體走路姿態(tài)具有唯一性。相較于其他生物識(shí)別技術(shù),利用步態(tài)信息作身份識(shí)別具有非侵犯性、不易察覺、不易偽裝、遠(yuǎn)距離識(shí)別等優(yōu)點(diǎn)[1],在安防領(lǐng)域具有非常大的應(yīng)用前景和廣闊的研究空間。
利用步態(tài)信息識(shí)別身份的研究方法主要有兩類:基于非模型方法和基于模型的方法[2]。非模型的方法是對(duì)人體步態(tài)的輪廓、外形和原始圖像等進(jìn)行特征提取,從而進(jìn)行身份識(shí)別[3]。基于模型的方法是指對(duì)人體或者運(yùn)動(dòng)進(jìn)行建模,獲得如人體的重心、肢體長(zhǎng)度、關(guān)節(jié)角度、運(yùn)動(dòng)速度等參數(shù),在模型上進(jìn)行度量和分類。這類方法存在計(jì)算量大、模型難以準(zhǔn)確建立的問題。在分類的方法上,目前大多采用支持向量機(jī)(support vector machine,SVM)或深度學(xué)習(xí)的方法,存在訓(xùn)練時(shí)間長(zhǎng)、分類準(zhǔn)確率不高的問題。
本文采用非模型的方法,利用步態(tài)能量圖作為識(shí)別基礎(chǔ);為了解決訓(xùn)練時(shí)間長(zhǎng)和準(zhǔn)確率不高的問題,采用超限學(xué)習(xí)機(jī)(extreme learning machine,ELM)算法進(jìn)行分類。與傳統(tǒng)的訓(xùn)練方法相比,ELM具有學(xué)習(xí)速度快、泛化性能好等優(yōu)點(diǎn)。測(cè)試結(jié)果表明,采用ELM算法可以在保證準(zhǔn)確率的前提下大幅縮短訓(xùn)練時(shí)間。
首先將步態(tài)視頻數(shù)據(jù)進(jìn)行分幀處理,然后對(duì)分幀后的圖像序列進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè)。運(yùn)動(dòng)目標(biāo)檢測(cè)的目的是提取步態(tài)圖像中有用的目標(biāo)信息,削減圖像中的無(wú)效信息,便于后期對(duì)圖像進(jìn)行處理和分析。常用的目標(biāo)提取方法包括幀差法、光流法、背景減除法[4]。幀差法對(duì)于背景緩慢變化的情況不敏感;光流法計(jì)算復(fù)雜,實(shí)時(shí)性很差;背景減除法簡(jiǎn)單、快速,適合視頻采集設(shè)備固定的場(chǎng)景。本文利用背景減除法提取運(yùn)動(dòng)目標(biāo)。
背景減除法主要包括以下三種算法[5]:Back ground Subtract or MOG、 Back ground Subtract or GMG和Back ground Subtract or MOG2(以下簡(jiǎn)稱MOG、GMG和MOG2)。其中,GMG算法僅用很少的圖像進(jìn)行背景建模,準(zhǔn)確度不高,現(xiàn)在使用的很少。本文選用MOG2算法進(jìn)行前景提取。該算法是以高斯混合模型為基礎(chǔ)的前景分割算法。這個(gè)算法的特點(diǎn)是它為每一個(gè)像素選擇一個(gè)合適數(shù)目的高斯分布,相比于MOG算法中使用的K高斯分布(K為3或5),MOG2算法更適用于亮度發(fā)生變化而引起的場(chǎng)景變化。該算法還可以進(jìn)行陰影檢測(cè),速度也快于MOG算法。MOG2算法前景提取示意圖如圖1所示。
圖1 MOG2算法前景提取示意圖
通過背景減除法獲得的步態(tài)圖像存在空洞、噪聲等影響。為了減小這些瑕疵對(duì)最終識(shí)別的影響,可采用圖像處理中的形態(tài)學(xué)方法對(duì)獲得的二值步態(tài)圖像進(jìn)行處理。常用的形態(tài)學(xué)方法有腐蝕、膨脹、開操作、閉操作等。
腐蝕是一種簡(jiǎn)單地消除不相關(guān)元素的方法,可以消除圖像中的噪聲等。其定義為:
AΘB={x|(B)x?A}
(1)
式中:A為圖像;B為結(jié)構(gòu)元素;AΘB為B對(duì)A進(jìn)行腐蝕操作,即使用B遍歷A,去除兩者不完全相交的像素值,以達(dá)到腐蝕的目的。
膨脹可以看作是一種簡(jiǎn)單的連接操作,可以修復(fù)圖像中的斷裂。其定義為:
(2)
在腐蝕和膨脹的基礎(chǔ)上,又得到了開操作和閉操作兩種處理方法。
開操作能夠平滑物體的輪廓,斷開細(xì)小的間隔。其定義為:
A°B=(AΘB)⊕B
(3)
式中:A為圖像;B為結(jié)構(gòu)元素;AB為B對(duì)A進(jìn)行開操作。
閉操作能夠?qū)D像中細(xì)小的空洞填充完整并且也可以平滑物體的邊界。其定義為:
A·B=(A⊕B)ΘB
(4)
式中:A為圖像;B為結(jié)構(gòu)元素;A·B為B對(duì)A進(jìn)行閉操作。
本文對(duì)二值化后的步態(tài)圖像先進(jìn)行開操作,再進(jìn)行閉操作。形態(tài)學(xué)處理前后對(duì)比圖如圖2所示。
圖2 形態(tài)學(xué)處理前后對(duì)比圖
一般視頻采集設(shè)備是固定的,這就導(dǎo)致了在視頻設(shè)備的采集范圍內(nèi)目標(biāo)的形狀由小到大再變小的過程,產(chǎn)生了不一致性。在步態(tài)特征提取過程中,相同的目標(biāo)圖像會(huì)有更好的表達(dá)。因此,采用歸一化的方法對(duì)步態(tài)圖像進(jìn)行處理,使不同運(yùn)動(dòng)目標(biāo)的圖像相同,包括運(yùn)動(dòng)目標(biāo)在圖像中的位置和大小[6]。
步態(tài)圖像歸一化首先從二值步態(tài)圖像中提取出人體運(yùn)動(dòng)目標(biāo),通過遍歷步態(tài)圖像的像素點(diǎn)找到人體輪廓的邊界,以此生成最大的運(yùn)動(dòng)目標(biāo)矩形框,并裁剪出人體目標(biāo)輪廓圖像。在程序中,設(shè)置圖像大小,將目標(biāo)圖像歸一化至64×64像素。歸一化前后對(duì)比圖如圖3所示。
圖3 歸一化前后對(duì)比圖
ELM是一類基于單隱層前饋神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)算法。ELM算法隨機(jī)產(chǎn)生輸入層與隱藏層的連接權(quán)值,通過最小二乘優(yōu)化來(lái)訓(xùn)練網(wǎng)絡(luò),且在訓(xùn)練過程中無(wú)需調(diào)整,只需要設(shè)置隱藏層神經(jīng)元個(gè)數(shù),便可獲得唯一的最優(yōu)解,學(xué)習(xí)過程僅需計(jì)算輸出權(quán)重。ELM具有學(xué)習(xí)效率高、泛化能力強(qiáng)的優(yōu)點(diǎn),被廣泛應(yīng)用于分類、回歸、聚類、特征學(xué)習(xí)等問題中[7]。
單隱層神經(jīng)網(wǎng)絡(luò)原理如圖4所示[8]。
圖4 單隱層神經(jīng)網(wǎng)絡(luò)原理圖
若有N個(gè)任意的樣本{(Xi,ti)}Ni=1?Rn×Rm,對(duì)于一個(gè)由L個(gè)隱藏層節(jié)點(diǎn)的單隱層神經(jīng)網(wǎng)絡(luò),可以表示為:
(5)
式中:g(x)為激活函數(shù);WI=[ωi1,ωi2,…,ωin]T為輸入權(quán)重;βI為輸出權(quán)重;bi為第i個(gè)隱藏層單元的偏置;WiXj為Wi和Xj的內(nèi)積。
該神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)目標(biāo)是使得輸出的誤差最小,可表示為:
(6)
即存在βi、Wi和bi,使得:
(7)
將式(7)矩陣表示為Hβ=T。其中,H為隱藏層的輸出矩陣,具體表示為:
H(W1,W2,…,WL,b1,b2,…,bL,X1,X2,…,XL)=
(8)
β為輸出權(quán)重,T為期望輸出,可分別表示為:
(9)
其中,i=1,2,…,L。這等價(jià)于最小化損失函數(shù):
(10)
綜上所述,ELM的訓(xùn)練分為以下三步。
①隨機(jī)分配隱藏層參數(shù)。
②計(jì)算隱藏層輸出矩陣H。
③得到輸出權(quán)重向量β。
輸出權(quán)重β可以被確定為:
(11)
式中:H+為矩陣H的Moore-Penrose廣義逆。
系統(tǒng)結(jié)構(gòu)如圖5所示。
圖5 系統(tǒng)結(jié)構(gòu)圖
身份識(shí)別過程可以分為兩個(gè)階段:第一階段是利用特征提取算法進(jìn)行步態(tài)特征的提??;第二階段是采用ELM算法進(jìn)行分類。第一步是進(jìn)行圖像的特征提取,采用步態(tài)能量圖(gait energy image,GEI)作為輸入。
首先介紹GEI的構(gòu)造過程。人體行走可以視為周期性動(dòng)作。圖6是步態(tài)序列周期圖。從圖6可以看出,人體行走行為呈周期性展現(xiàn)。
圖6 步態(tài)序列周期圖
一個(gè)周期內(nèi)的二值圖像如圖7所示?;叶燃?jí)的GEI定義為:
(12)
式中:N為一個(gè)周期內(nèi)的圖像幀數(shù)目,通過視頻分幀和圖像預(yù)處理可以得到每一幀二值步態(tài)圖;bI(x,y)為周期內(nèi)的每一幀二值步態(tài)圖;x,y為二維圖像平面坐標(biāo);G(x,y)為步態(tài)能量圖。
一個(gè)周期內(nèi)的二值圖像如圖7所示。
圖7 一個(gè)周期內(nèi)的二值圖像
步態(tài)能量圖反映了人體行走的步態(tài)輪廓在一個(gè)周期內(nèi)的變化。相比一般的二值圖像,GEI對(duì)圖像序列中的個(gè)別幀的圖像輪廓變形沒有那么敏感,對(duì)噪聲有很好的魯棒性。GEI反映了側(cè)影的主要形狀和在步態(tài)周期上人體運(yùn)動(dòng)信息的變化,可以作為身份識(shí)別的依據(jù)。步態(tài)能量如圖8所示。
圖8 步態(tài)能量圖
梯度方向直方圖(histogram of oriented gradient,HOG)是圖像處理中的一種特征提取算法。HOG算法原理圖如圖9所示。
圖9 HOG算法原理圖
HOG特征是將圖像像素點(diǎn)的方向梯度作為圖像特征,包括梯度大小和方向。通過計(jì)算圖像局部區(qū)域的梯度直方圖特征,將局部的特征串聯(lián)起來(lái),構(gòu)成整幅圖像的HOG特征。該方法首先將圖像分成很多小的連通區(qū)域,叫作細(xì)胞單元(cell),比如大小可為8×8,采集細(xì)胞單元中各像素點(diǎn)的梯度和邊緣方向;然后在每個(gè)單元中累加一個(gè)一維的梯度方向直方圖,這就是一個(gè)細(xì)胞單元的描述符。將幾個(gè)細(xì)胞單元組成一個(gè)block,例如將2×2的細(xì)胞單元組成一個(gè)block,將一個(gè)block內(nèi)每個(gè)細(xì)胞單元的描述符串聯(lián),即可以得到一個(gè)block的HOG描述符。在統(tǒng)計(jì)一個(gè)cell的梯度直方圖時(shí),一般考慮采用9個(gè)bin的直方圖來(lái)統(tǒng)計(jì)8×8像素的梯度信息,即將cell的梯度方向0~180°(不考慮正負(fù))分成9個(gè)方向塊。若一個(gè)block由2×2個(gè)cell組成,每個(gè)cell包含8×8個(gè)像素點(diǎn),每個(gè)cell提取9個(gè)直方圖通道,那么一個(gè)block的特征向量長(zhǎng)度為2×2×9。再根據(jù)圖像的大小,即可得到一幅圖像的特征向量長(zhǎng)度。然后將圖像的特征向量送入分類器進(jìn)行訓(xùn)練和識(shí)別[8-9]。
經(jīng)過對(duì)多幅GEI的HOG特征提取,可以得到每幅GEI的一行多維的特征向量。每一個(gè)特征向量用來(lái)描述一幅GEI的信息。選用的訓(xùn)練集和測(cè)試集數(shù)據(jù)都進(jìn)行標(biāo)記,訓(xùn)練集和測(cè)試集都是經(jīng)過HOG算法提取特征之后的特征向量。若有N類樣本,每個(gè)樣本的特征向量長(zhǎng)度為n,則第i個(gè)樣本的ELM輸入如下:
II=(ai1,ai2,…,ain)T
(13)
本文ELM結(jié)構(gòu)如圖10所示。得到訓(xùn)練后的模型并保存,接著在該模型上對(duì)用測(cè)試集的數(shù)據(jù)進(jìn)行驗(yàn)證。
圖10 本文ELM結(jié)構(gòu)圖
ELM在訓(xùn)練之前可以隨機(jī)產(chǎn)生W和b,因此在參數(shù)設(shè)計(jì)上只需要確定隱含層節(jié)點(diǎn)個(gè)數(shù)即可,通過調(diào)整該參數(shù),可以計(jì)算出輸出層的權(quán)重β。因?yàn)镋LM在訓(xùn)練前產(chǎn)生參數(shù)的隨機(jī)性,因此選取節(jié)點(diǎn)個(gè)數(shù)后需要進(jìn)行多次測(cè)試,對(duì)得到的測(cè)試結(jié)果取平均值,得出最終測(cè)試結(jié)果。
為了驗(yàn)證本文方法的有效性和可行性,在CASIA數(shù)據(jù)集上進(jìn)行了測(cè)試。該數(shù)據(jù)庫(kù)由中國(guó)科學(xué)院自動(dòng)化研究所提供,可通過http://www.cbsr.ia.ac.cn/china/Gait%20Databases%20CH.asp進(jìn)行申請(qǐng)后獲取。利用ELM算法和SVM算法進(jìn)行了身份識(shí)別的測(cè)試,通過調(diào)節(jié)模型參數(shù)及對(duì)比試驗(yàn)結(jié)果,驗(yàn)證了使用ELM算法進(jìn)行身份識(shí)別的可行性。將ELM算法和SVM算法進(jìn)行對(duì)比,凸顯ELM算法在訓(xùn)練速度上的優(yōu)勢(shì)。
本測(cè)試過程的計(jì)算機(jī)配置為處理器Intel(R)Core(TM)i5-8265U,軟件配置為Python3.7、PyCharm2018.2、opencv3.4.4、Matlab2016b。
本文測(cè)試選用CASIA步態(tài)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。庫(kù)中共有三個(gè)數(shù)據(jù)集:Dataset A,Dataset B,Dataset C。在現(xiàn)實(shí)生活中所采集的步態(tài)視頻數(shù)據(jù)往往是少量的,并不像公開數(shù)據(jù)集中一樣可以獲得上百人的步態(tài)視頻。因此,本文選用Dataset B中的部分?jǐn)?shù)據(jù),模擬視頻數(shù)據(jù)量少的情況下的識(shí)別情況。該數(shù)據(jù)集共有124個(gè)人的行走視頻,每個(gè)人有11個(gè)視角的視頻,在普通條件、攜帶包裹和穿大衣三種條件下行走采集。本測(cè)試對(duì)從該數(shù)據(jù)集中隨機(jī)選取的24個(gè)人共96個(gè)視角為90°的常規(guī)步態(tài)視頻進(jìn)行處理。對(duì)這些視頻數(shù)據(jù)進(jìn)行分幀以及圖像預(yù)處理后,共可生成96張GEI。接著,對(duì)這些GEI進(jìn)行特征提取,并利用ELM算法和SVM算法進(jìn)行身份識(shí)別。
數(shù)據(jù)過擬合現(xiàn)象如圖11所示。
圖11 數(shù)據(jù)過擬合現(xiàn)象圖
利用上述數(shù)據(jù)集進(jìn)行處理,24個(gè)人共得到96張GEI(其中訓(xùn)練集72張、測(cè)試集24張),提取GEI的HOG特征并送入ELM分類器進(jìn)行測(cè)試。
圖11是激活函數(shù)為sigmoid、在不同的cell和block大小下進(jìn)行測(cè)試的結(jié)果。從圖11可以發(fā)現(xiàn),隨著隱含層節(jié)點(diǎn)個(gè)數(shù)的增加,訓(xùn)練集的準(zhǔn)確率不斷提升,但測(cè)試集的準(zhǔn)確率卻在下降。這是由于數(shù)據(jù)過少造成的過擬合。本次測(cè)試的訓(xùn)練集為72張GEI、測(cè)試集為24張GEI,數(shù)據(jù)過少,因此需要對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng)。本文采用了旋轉(zhuǎn)、鏡像和改變對(duì)比度等方法對(duì)數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng),將訓(xùn)練集和測(cè)試集的數(shù)據(jù)分別擴(kuò)增為2 160張和720張GEI。通過數(shù)據(jù)增強(qiáng),可以有效地避免過擬合現(xiàn)象。
本文對(duì)測(cè)試選取的每個(gè)節(jié)點(diǎn)個(gè)數(shù)均進(jìn)行了30次測(cè)試,取30次的測(cè)試結(jié)果的平均值,得到最后的識(shí)別率。
在隱含層不同節(jié)點(diǎn)個(gè)數(shù)下,將ELM算法識(shí)別的結(jié)果用Matlab繪制。Matlab試驗(yàn)結(jié)果如圖12所示。
圖12 Matlab試驗(yàn)結(jié)果
圖12(a)是4種參數(shù)下的測(cè)試結(jié)果匯總,圖12(b)~圖12(f)是不同參數(shù)下的具體測(cè)試結(jié)果。從圖12(f)中可以看出,當(dāng)cell的大小取16×16、block的大小取2×2時(shí),如隱含層節(jié)點(diǎn)個(gè)數(shù)增加,訓(xùn)練集準(zhǔn)確率不斷提升,但是測(cè)試集的準(zhǔn)確率一直很低。因此,該特征提取參數(shù)對(duì)識(shí)別是無(wú)效的。經(jīng)計(jì)算可知,該參數(shù)下的特征向量長(zhǎng)度為324,特征過少,因此無(wú)法訓(xùn)練出有效的模型。將另外四種參數(shù)下的訓(xùn)練和測(cè)試的結(jié)果繪制在同一個(gè)坐標(biāo)系中,可以看出各個(gè)參數(shù)下的識(shí)別效果。當(dāng)選取cell為2×2、block為2×2時(shí),隨著隱含層節(jié)點(diǎn)個(gè)數(shù)的增加,測(cè)試準(zhǔn)確率不斷提升。從圖12(e)中可以看出,當(dāng)隱含層節(jié)點(diǎn)個(gè)數(shù)取30時(shí),測(cè)試集準(zhǔn)確率達(dá)到99.17%;之后,當(dāng)節(jié)點(diǎn)個(gè)數(shù)再增加時(shí),測(cè)試準(zhǔn)確率也不再提升,而且訓(xùn)練時(shí)間會(huì)增加。所以在該參數(shù)下,隱含層節(jié)點(diǎn)個(gè)數(shù)取30最為合適。在其他的cell和block取值下,測(cè)試準(zhǔn)確率均沒有上述參數(shù)高,因此可以采用上述參數(shù)進(jìn)行模型的訓(xùn)練和測(cè)試。
ELM和SVM算法的識(shí)別結(jié)果對(duì)比如表1所示。
表1 識(shí)別結(jié)果對(duì)比
將結(jié)果繪制為條形圖,可以更直觀地看出ELM的優(yōu)勢(shì)。試驗(yàn)結(jié)果如圖13所示。
圖13 試驗(yàn)結(jié)果圖
從表1和圖13可以看出,SVM算法測(cè)試的準(zhǔn)確率沒有ELM算法的準(zhǔn)確率高,并且訓(xùn)練模型的時(shí)間都比較長(zhǎng)[10]。當(dāng)cell大小為16×16、block大小為2×2時(shí),雖然訓(xùn)練的時(shí)間縮短了,但是由于特征向量的長(zhǎng)度比較小,其準(zhǔn)確率也下降了。ELM算法的一個(gè)顯著提升是訓(xùn)練時(shí)間大大縮短。當(dāng)cell選用2×2、block選用2×2時(shí),雖然特征向量長(zhǎng)度大,但是訓(xùn)練時(shí)間只有9 s左右。這比SVM的訓(xùn)練時(shí)間少得多,準(zhǔn)確率達(dá)到了99.17%。
本文提出了一種利用步態(tài)信息的基于ELM的身份識(shí)別方法。通過對(duì)視頻進(jìn)行分幀處理,從視頻數(shù)據(jù)中獲取測(cè)試對(duì)象行走的圖像幀,經(jīng)過圖像預(yù)處理后生成步態(tài)能量圖。為了避免過擬合現(xiàn)象進(jìn)行了數(shù)據(jù)增強(qiáng)處理,利用HOG特征描述子對(duì)步態(tài)能量圖進(jìn)行特征提取,使用ELM作為分類器進(jìn)行身份的識(shí)別。試驗(yàn)結(jié)果表明,本文使用的特征提取方法和分類算法可以取得較好的識(shí)別效果。與SVM相比,ELM能獲得更好的識(shí)別準(zhǔn)確率,并且在訓(xùn)練速度上有大幅提升。
在實(shí)際生活中,人行走時(shí)或多或少會(huì)受到衣物、灌木或路邊雜物的遮擋,并且獲得的視頻拍攝角度不一定是90°。這都會(huì)對(duì)識(shí)別準(zhǔn)確率造成一定的影響。今后可在消除遮擋影響和多視角識(shí)別這兩個(gè)方面進(jìn)行進(jìn)一步研究。