鄒倩穎,王小芳,2
(1. 電子科技大學(xué)成都學(xué)院,四川 成都 611731;2. 西華師范大學(xué) 計算機學(xué)院,四川 南充 637002)
步態(tài)識別是一種通過個體在走路時不一樣的姿態(tài)來識別個體身份的生物識別技術(shù)[1]。常見的步態(tài)識別方法有最近鄰NN(Nearest-Neighbor)分類[2]、人工神經(jīng)網(wǎng)絡(luò)ANN(Artificial Neural Networks)、隱馬爾可夫模型HMM(Hidden Markov Model)[3]等。傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)在進行訓(xùn)練時易出現(xiàn)局部最小值、收斂速度過慢、分類效果不理想的問題,不能夠保證收斂到全局最優(yōu)點,且提取的步態(tài)輪廓圖噪聲較大[4-5]。針對上述問題,本文提出利用背景減除法對采集圖片進行分割,經(jīng)過二值化處理后進行特征提取。該方法引入形態(tài)學(xué)細化思想將二值化圖片進行骨架化,對骨架圖在二維平面上抽取步幅、步態(tài)周期、質(zhì)心距、質(zhì)心輪廓夾角等4個特征值,并將其轉(zhuǎn)化為特征值矩陣,解決圖像噪聲大、不易提取特征值問題;將粒子群優(yōu)化算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合進行模式識別與分類;將特征值矩陣初始值代入優(yōu)化后的神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,以加快學(xué)習(xí)速率、克服陷入局部最優(yōu)等情況,同時還可提高識別準(zhǔn)確率。
在預(yù)處理階段需要對運動目標(biāo)進行提取,通過建立背景模型來提取運動目標(biāo)[6]。本文采用背景減除法進行背景分割,將分割出來的運動目標(biāo)進行二值化處理。利用圖像形態(tài)學(xué)中的腐蝕、膨脹和開閉運算,將二值化過程中產(chǎn)生的孤立點、間隙和孔洞等干擾噪點去除,獲取較為完整的目標(biāo)人像序列。用形態(tài)學(xué)細化方法將人體骨架化,即利用二值形態(tài)學(xué)中細化算法將人體整體以帶有中軸的骨架形態(tài)顯示出來,突出目標(biāo)形狀特點和拓撲結(jié)構(gòu),減少冗余信息量。基于二值化結(jié)果,提取出人體輪廓質(zhì)心和計算出人體運動過程中的步幅變化和周期,在排除干擾因素后將結(jié)果代入優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)中進行訓(xùn)練。
在一個完整人體步態(tài)序列中,提取第k幀的二維人體輪廓線,得到運動輪廓后,使用邊界輪廓提取算法Canny算法[7-8]提取輪廓線上的坐標(biāo)點,計算輪廓質(zhì)心坐標(biāo),公式表達為:

式中,xc和yc是質(zhì)心坐標(biāo),Nb是輪廓線上點的個數(shù),(xi,yi)是輪廓線上點的坐標(biāo)。
步態(tài)變化具有周期性,體現(xiàn)為側(cè)影圖像像素數(shù)目的變化。考慮到步態(tài)具有對稱性,統(tǒng)計一個序列中側(cè)影像素數(shù)目,兩個極大值之間的距離可表示半個步態(tài)周期。本文采用文獻[3]提出改進的Robert邊緣檢測算法計算本文步態(tài)序列周期。
如圖1所示,通過測出骨架圖中腳部A點與B點的距離L,可以推算出步幅。A與B的距離為最大步幅L1,在坐標(biāo)圖中表示波峰位置;同理,波谷即為雙腳交替時的步幅。設(shè)采樣一幀的時間t為1 ms,2個波峰間采樣15幀,即一個步幅周期T=t×15。一個最大步幅為L1=62 cm。
由于每個人步態(tài)具有唯一性,可以用關(guān)節(jié)與質(zhì)心之間的夾角、關(guān)節(jié)與質(zhì)心之間的距離(質(zhì)心距),確定人體步態(tài)的唯一性。不足的是:人體運動時距離采集點的距離存在不定性,因此需要利用尺度不變性對圖像進行處理。進行角度提取時,可使用線性擬合和三角公式的方法。將圖片切分為多個部分進行分批擬合后得方向向量,并計算角度值,如圖2所示。

圖1 步幅及中期特征提取結(jié)果

圖2 人體質(zhì)心與關(guān)節(jié)夾角
本文提出的優(yōu)化算法模型分為兩部分:一是利用BP神經(jīng)網(wǎng)絡(luò)正向傳播的機制,建立粒子群優(yōu)化算法對正向傳播的BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化模型;二是BP神經(jīng)網(wǎng)絡(luò)存在反向傳播機制,建立粒子群優(yōu)化算法對反向傳播的BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化模型。
(1)初級模型的建立。根據(jù)相關(guān)工作中提取得到特征值矩陣,建立傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)模型。
(2)建立正向BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化模型。通過粒子群優(yōu)化算法尋找 BP神經(jīng)網(wǎng)絡(luò)中正向傳播時最佳的隱含層輸出,建立基于粒子群優(yōu)化 BP神經(jīng)網(wǎng)絡(luò)正向傳播算法模型。
(3)建立反向 BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化模型。通過粒子群優(yōu)化算法尋找 BP神經(jīng)網(wǎng)絡(luò)中反向傳播時輸入層和與隱含層之間的最佳連接權(quán)值并進行修正,建立基于粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)反向傳播算法。
在尋找適應(yīng)值前,可在初始化范圍內(nèi),對粒子群進行隨機初始化,包括隨機位置和速度。然后定義在反向傳播中更改連接權(quán)值前后的關(guān)系作為適應(yīng)性函數(shù),在粒子群優(yōu)化進行每一次迭代時,計算一次適應(yīng)值,結(jié)合輸入層和隱含層之間的連接權(quán)值、隱含層各神經(jīng)元之間閾值,輸出全新的適應(yīng)性函數(shù)[9-11]。
在原始BP神經(jīng)網(wǎng)絡(luò)中,將步行時4種特征值所形成的特征值矩陣,依次通過隱含層和輸出層計算,并對特征值矩陣進行變換,最終計算出吻合程度。所選取計算隱含層輸出函數(shù)定義為適應(yīng)性函數(shù),進行迭代計算獲取到最優(yōu)隱含層輸出,即4種步行時的特征值在第一次神經(jīng)網(wǎng)絡(luò)訓(xùn)練中獲取的最優(yōu)值。
在隱含層中,隱含層輸入的數(shù)據(jù)來源為輸入層的4種步行特征值,而且輸出層中會用隱含層的輸出作為參數(shù)進行計算,使得最終輸出最優(yōu)的特征值矩陣,利用隱含層中的輸出函數(shù)作為適應(yīng)性函數(shù)。

利用每個粒子的歷史最優(yōu)值進行迭代更新,更新每個粒子的歷史最優(yōu)位置和速度。當(dāng)粒子群優(yōu)化算法達到最大迭代數(shù)時,或者得到比較好的適應(yīng)值時,即停止迭代。在隱含層的輸出歷史中選最優(yōu)值Hohbest。通過Yio函數(shù)調(diào)用隱含層的最優(yōu)輸出作為函數(shù)的輸入值,如式(4)所示。將輸出層的輸入向量作為輸入數(shù)據(jù),并將其量化,當(dāng)作激活函數(shù)的自變量得到輸出層的輸出Yoo,將輸出層的輸出Yoo代入誤差函數(shù)E,得到實際理想誤差,如式(5)所示。

通過激活函數(shù)

通過反復(fù)迭代,當(dāng)誤差函數(shù)得出的結(jié)果在理想范圍之內(nèi),則得到連接權(quán)值,即為最優(yōu)權(quán)值。
由于每次訓(xùn)練后步態(tài)特征值矩陣與理想狀態(tài)下的特征值矩陣之間誤差過大,故需反轉(zhuǎn)傳播,對輸入層和隱含層之間的連接權(quán)值wih與隱含層和輸出層之間的連接權(quán)值who進行改變。因此,需要先求得連接權(quán)值的變化量,即通過上一次訓(xùn)練得出的誤差E對輸入層和輸出層進行操作。
將誤差函數(shù)對于隱含層和輸出層之間的連接權(quán)值的偏導(dǎo)數(shù),以及對輸入層和隱含層之間的連接權(quán)值的偏導(dǎo)數(shù),作為粒子群優(yōu)化算法的適應(yīng)性函數(shù),將輸入層中每個神經(jīng)元進行粒化,利用隱含層和輸出層的連接權(quán)值、輸出層神經(jīng)元之間的閾值,通過適應(yīng)性函數(shù)取得每個粒子的適應(yīng)值[12-14]。
根據(jù)每個粒子的歷史最優(yōu)值以及粒子不停運動導(dǎo)致速度和距離不停的變更,進行反復(fù)迭代,將優(yōu)化后最接近理想值或達到最大迭代數(shù)時的函數(shù)取出,作為最優(yōu)偏導(dǎo)函數(shù)。
以同樣的方式求出誤差函數(shù)對隱含層和輸出層之間的連接權(quán)值的最優(yōu)偏導(dǎo)函數(shù),即適應(yīng)性函數(shù)。

優(yōu)化后的 BP神經(jīng)網(wǎng)絡(luò)按照粒子群尋優(yōu)方法,通過最優(yōu)的偏導(dǎo)函數(shù)和誤差函數(shù),選擇最優(yōu)權(quán)值和閾值,將初始值代入網(wǎng)絡(luò)中進行訓(xùn)練,得到最合適理想值。該方法學(xué)習(xí)速度大大加快,同時避免陷入局部最優(yōu)情況,提升收斂速度。
為驗證粒子群優(yōu)化 BP神經(jīng)網(wǎng)絡(luò)算法的性能,本文從算法的輪廓質(zhì)心距對比、步幅及周期表達、質(zhì)心與關(guān)節(jié)之間的夾角3個方面對算法進行評估。本實驗選取Ubuntu14.04 windows10操作系統(tǒng),12 GB內(nèi)存,四核處理器,eclipse4.6 MATLABr2016a opencv3.2處理器和Jdk1.8 python3.7環(huán)境配置。
在獲取到每一幀完整人體圖像后,在一個完整的人體步態(tài)序列中提取第k幀的二維人體輪廓線,計算廓線上的坐標(biāo)點,逐點計算每個點與重心坐標(biāo)的距離,用于勾畫出人體運動時質(zhì)心與輪廓各個點之間的距離圖像,如圖3所示。
圖3中,橫坐標(biāo)代表從上至下輪廓點的數(shù)量,縱坐標(biāo)代表輪廓點到質(zhì)心的距離。紅線以上的輪廓部分對應(yīng)質(zhì)心距圖中的A—B所示曲線,此部分的人臉輪廓線和人背輪廓線與質(zhì)心的距離基本一致,在質(zhì)心距圖中基本呈一條直線。B—C代表雙手部分輪廓線分布,因左右手擺動不一致,導(dǎo)致質(zhì)心距有明顯差異,從而在圖中體現(xiàn)為不重合但形狀相似的兩條曲線。C—D代表手部輪廓結(jié)束,進入腰部輪廓。此時前后兩側(cè)腰部與質(zhì)心距離基本相等,因此兩條曲線呈現(xiàn)基本一致的走勢和數(shù)值。D—E代表腰部以下部分的質(zhì)心距,其線條與手部意義相同,呈兩條曲線。E’點代表腿間的輪廓起點。從A—D點質(zhì)心距減小,圖像呈下降趨勢。經(jīng)過腰部區(qū)域(D點)后,質(zhì)心距增大,圖像呈上升趨勢。

圖3 雙臂分離時質(zhì)心距提取結(jié)果
一般識別率保持在80%為正常范圍,80%<R的變化率<100%時,識別率最高。
將雙臂分離與雙臂重疊的提取數(shù)據(jù)進行對比,數(shù)據(jù)分析可知每幀識別率,如表1所示。

表1 樣本識別率
由表1可知,識別率受人體樣本不同形態(tài)影響,實驗中識別率的平均值為 97.125%,高于國內(nèi)現(xiàn)今標(biāo)準(zhǔn)3.125%[15],可以確定兩個人體樣本為同一人。
從二值化圖像序列中可以看出,人的步態(tài)數(shù)據(jù)呈周期性變化。人體運動過程中,步幅會經(jīng)過一個周期性變化,即有一個最大值和一個最小值。本文利用人的步幅變化進行周期性分析。由此可以看出人的步幅周期是穩(wěn)定的,人的步幅大小是基本恒定的(如圖1)。
表2中,步幅在識別過程中的識別率,其變化趨勢和質(zhì)心距的變化趨勢相似。

表2 步幅識別率標(biāo)準(zhǔn)化集
根據(jù)人體骨架圖可得質(zhì)心與各個關(guān)節(jié)之間的夾角,將骨架圖關(guān)節(jié)坐標(biāo)取出,利用三角形公式計算其內(nèi)角,如表3所示。

表3 質(zhì)心輪廓角數(shù)據(jù)集
由表3可知,質(zhì)心輪廓角數(shù)據(jù)集以人物正面朝向為0度起點,質(zhì)心以下為正,質(zhì)心以上為負。角度的變化趨勢和質(zhì)心距的變化趨勢大致相同,由于角度不受拍攝距離的影響,一般情況下每一幀圖片各個角度會直接反映人體這個時刻的狀態(tài)。
傳統(tǒng)的 BP算法和粒子群算法容易陷入局部最優(yōu)解,導(dǎo)致識別準(zhǔn)確率不高。本文利用粒子群來優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,將優(yōu)化后初始值代入神經(jīng)網(wǎng)絡(luò)中進行訓(xùn)練,加快了學(xué)習(xí)速率、避免了陷入局部最優(yōu),提高識別準(zhǔn)確率。通過平地行走的人體運動模式實驗,驗證了該方法的有效性。本文實驗所得準(zhǔn)確率是基于圖像畫面中人體基本的4種步態(tài)特征,即質(zhì)心距、步幅、周期和質(zhì)心夾角所得的數(shù)據(jù),隨著實驗次數(shù)的增多,實驗的準(zhǔn)確率同樣也會提高。增加特征提取,采集更多樣本訓(xùn)練神經(jīng)網(wǎng)絡(luò),可以進一步提高網(wǎng)絡(luò)模型的魯棒性和識別準(zhǔn)確率。