廖嘉城,梁 艷,王冰冰,潘家輝
(華南師范大學 軟件學院,佛山 528225)
隨著信息技術的不斷發展,人們在日常生活中需要更頻繁地利用特定的身份識別技術驗證人的身份.近幾年,基于人臉、指紋、虹膜等生物特征的生物識別方法日益成熟,且由于其便捷可靠的特點,越來越多的生活場景也利用此類技術去完成身份識別的任務.但與此同時,上述幾類技術都需要被識別者與特定設備在短距離間實現交互,當有人刻意去避免近距離接觸時,以上的方法將無法進行識別甚至無法反饋被識別者有價值的信息.面對此類局限,步態識別 (gait recognition)因具備難隱藏性、非接觸性和可遠距離使用等的特點,逐漸成為生物識別領域中一項可行的識別方案[1,2].
步態識別是一項能利用人的身體體型和步行姿態識別身份和預測人的性別、年齡等相關屬性的技術.相關研究表明,由于人們在各項生理條件存在細微的差異,每個人走路姿勢及其走路“風格”也會截然不同,因此想偽裝他人的走路姿勢并不容易[3].近年來,隨著視頻監控設備的普及,步態識別在社會安全、市場營銷、生物認證、視頻監控和法律援助等領域逐漸發揮更重要的作用.
目前,步態識別技術的實現主要分為兩大類.一類是以人工特征建模為基礎的傳統機器學習算法,另一類則是基于深度學習算法.
在傳統的步態識別研究中,能否從人的步態視頻中提取到具有明顯區分性的步態特征,將直接影響到最終實驗結果的好壞.一部分研究者[4,5]重點關注人行走時人體局部的變化,以更為簡單的軌跡計算代替步態特征.Han 等[6]和Lu 等[7]則將多個步態幀轉換為類能量圖的方式去描述反映步態特征.Makihara 等[8]通過構建視角轉化模型將步態圖像轉化為視角獨立、對象獨立的特征.提取到步態特征后,研究者會通過支持向量機 (Support Vector Machine,SVM)等分類方法對特征進行相應的區分,最終構建特征與被識別者身份、性別以及年齡等屬性的映射關系.由于步態識別研究早期并沒有較大規模的開源數據集,因此上述的傳統機器學習算法都是在不同步態數據集上進行的實驗.雖然這些方法在各自的數據集中基于步態的身份識別任務都能達到90%上的準確率,但很難將他們統一進行優劣的比較.
隨著時間的推移,人們在研究過程中逐漸發現,傳統方法會受到人體外在因素如視角、環境條件、服裝等干擾,研究者并無法做到對每一種特殊情況進行相應的建模.與此同時,隨著大數據技術的興起以及硬件條件的不斷升級,一方面,許多步態識別研究隊伍開源了相關的數據集(例如中科院的CASIA-B 大規模多視角步態數據集[9]),算法研究有了統一且權威的評價指標;另一方面,深度學習在圖像/視頻等領域取得了非凡的突破,越來越多研究者開始利用深度學習提升步態識別算法的效果以及健壯性.Wu 等[10]圍繞步態能量圖(Gait Energy Image,GEI)[6]和卷積神經網絡(Convolutional Neural Networks,CNN),充分利用CNN強大的自適應與自學習能力直接訓練算法模型,但由于網絡結構簡單且當時缺乏有效訓練神經網絡的方法,該方法整體識別率一般,在CASIA-B 上的90°步態的識別率為81.5%,效果僅比傳統方法好一些.Battistone等[11]選擇步態周期內連續的幀作為訓練輸入,利用長短期記憶網絡(Long Short-Term Memory,LSTM)挖掘步態幀之間內部聯系,提出TGLSTM 網絡結構,在CASIA-B 上的平均識別率為86.4%,但該方法以多個幀作為輸入需要較大的計算量,無法滿足工程應用實時性需求.Zhang 等[12]利用遷移學習,在VGG-D[13]模型的基礎上進行微調,最后在CASIA-B 上的平均識別率為95.7%.
在應用領域方面,美國MiniSun 公司研發出的IDEEA 生活步態系統可以在自然工作和生活狀態下記錄使用者的多種步態參數(單腳支撐時間、步長、速度等),通過不同指標較高精度地測量出人體健康程度.國內的銀河水滴科技可實現遠距離多角度的步態識別,還能完成超大范圍人群密度測算與實時計數,廣泛應用于安防、公共交通、商業等場景.但上述系統存在一定的局限性:一方面上述系統開發成本高,對于相關需求要求較低的小團隊、小企業來說,難以支付其昂貴的費用;另一方面,上述系統應用專注于人體身份的識別,在身份識別失效的情況下無法返回反饋信息提供使用者參考.因此,本文設計了一款成本較低、支持實時檢測、可通過步態準確識別出人物身份以及性別、年齡等相關屬性的系統,它可靈活根據實際需要進行功能調整與修改,能很好滿足一些小團隊、小企業的實際使用和開發需要,具有重大的現實意義.
本系統可分成4 個模塊(如圖1):預處理、特征提取、算法模型訓練以及系統實現.

圖1 系統設計結構圖
在預處理環節中,我們將從人行走的步態視頻中分離前景與背景,把提取出來的前景經過形態學處理后形成完整的步態周期,并利用Han 等[6]的方法將步態周期形成步態能量圖,并以此作為算法模型訓練和實際應用的特征進行身份和屬性的識別;算法模型訓練是使用中科院CASIA-B 大規模多視角步態數據集[9]和大阪大學OU-ISIR 大型步態數據集[14],利用卷積神經網絡訓練相應的算法模型,在實際系統中,需要用到基于步態的身份識別、性別識別、年齡識別3 種算法模型以完成系統所需要實現的功能;在系統實現中,我們提供一個Windows 系統下的客戶端,用戶可以對錄制好的步態視頻進行步態的分析,也可以連接攝像頭,實時地從監控畫面進行步態的分析.
在預處理過程中,我們需要將連續的步態幀轉化為單一的步態能量圖.第1 步是步態檢測,即是從序列圖像中將人體步行區域從背景圖像中提取出來.考慮到項目的實際情況,在此系統中,本文采用背景減除法提取人步行前景.背景減除法[15]是一種有效的運動對象檢測算法,基本思想是利用背景的參數模型來近似背景圖像的像素值,將當前幀與背景圖像進行差分比較實現對運動區域的檢測,其中區別較大的像素區域被認為是運動區域,而區別較小的像素區域被認為是背景區域.
在動態的視頻中由于受環境的影響,一般算法檢測到的步態輪廓大多存在偏差,可能出現噪聲、孔洞等現象.為獲得更清晰、邊緣部分更平滑的步態輪廓,本文利用形態學中的腐蝕和膨脹操作對二值化的輪廓圖像進行處理:首先利用腐蝕操作去除圖像中一些較小的噪聲點,然后通過膨脹操作填充圖像的孔洞,從而有效地提高圖像質量[16].
雖然此時我們已經能夠將步態幀轉化為清晰的人體步行前景,但行人輪廓僅占整幅圖像很小的一部分,冗余的背景會極大地影響算法模型訓練以及系統分析的效率.針對該問題,本文先從整幅圖像中提取出行人輪廓,接著將輪廓放置于圖像的中心位置并充斥圖像的大部分區域,最后把整幅圖的大小標準化為128×88像素.
在進行預處理后,需要將一個步態周期內的所有幀轉換為步態能量圖.步態能量圖表示步態序列在時間與空間標準化形成的二維圖像,與步態序列相比,步態能量圖不僅在一定程度上保留了時間信息,大大減少步態的數據量,而且對單個步態幀中的噪聲也不敏感[6].步態能量圖G(x,y)可依據式(1)獲得.

其中,x和y表示二維圖像的坐標值,N表示一個步態周期內步態幀的個數,Bt(x,y)表示單個步態幀.本文中所有圖像大小都統一標準化為128×88 像素.
用歸一化自相關(Normalized Auto Correlation,NAC)函數的方法可以匹配不同步態幀的相似程度,進而確定一個完整的步態周期[17].但此方法需使用特定的公式,計算量也頗大.考慮人行走的步態姿勢人手臂與腿的運動具有一定的規律性,本文采取計算步態幀中的人體輪廓“寬高比”的方式進行步態周期的估算.某個行人人體輪廓的“寬高比”可依據式(2)獲得.

其中,k表示該行人步態序列中步態周期的個數,i表示第k個步態周期中的步態幀數,和表示第k個步態周期中第i幀人體輪廓的寬和高.若Tk表示第k個步驟周期的所有步態幀,則

其中,n表示一個步態周期內步態幀的總數,即便同一個個體,不同的步態周期中,步態幀總數不一定相等.在一個步態周期中,人體輪廓“寬高比”需要達到兩次極大值和極小值:


本系統的算法訓練統一使用CNN 作為核心架構.CNN是一種適用于大規模圖像及視頻識別、理解、分類等計算機視覺領域的一種經典且高效的深度學習網絡結構.
具體網絡架構方面,本系統參考文獻[18]提出的網絡結構,并在他們的基礎上對網絡模型進行了調整并修改了相關參數,提升了身份識別的準確率,并用相同的網絡結構進行性別/年齡預測模型的訓練.本系統所用于算法訓練的基本神經網絡結構如圖2所示:神經網絡的輸入是標準化后的步態能量圖(128×88 像素);隨后利用兩組“卷積層+池化層”提取步態的特征,前一組卷積層使用32 個7×7的卷積核,步長為1,池化層為2×2,步長為2,后一層卷積層使用64 個5×5的卷積核,步長為2,池化層為3×3,步長為2;利用Flatten層轉化為一維數據后,利用兩層擁有1024 個神經元的全連接層進行信息的整合與特征區分,最后進行分類與回歸.其中,在身份識別和性別預測算法模型訓練中,我們根據數據集的人數劃分成相應數目的類,從而將識別人身份的任務轉化為分類的任務;而在年齡預測算法模型訓練中,我們利用此網絡完成回歸任務.分類任務使用交叉熵作為損失函數,回歸任務使用平均絕對誤差作為損失函數,訓練使用Adam 優化器,batchsize為128,訓練輪次以及使用的激活函數隨著任務的不同而變化.

圖2 本系統采用的基礎CNN 結構
本系統按照“客戶端+服務器+數據庫”的思路進行設計與構建.在Windows 系統上,項目通過PyQt 進行客戶端界面的繪制,客戶端上的代碼以Python 實現.在客戶端上,系統主要采集已有步態視頻或者是實時采集到的監控視頻中的步態信息,在轉換為步態能量圖后,傳送給服務器.在本地環境中,加載了算法模型的服務器會掛起等待著客戶端傳送的數據,待有數據從端口傳送進來的時候,經過運算,返回步態圖像所對應的行人的性別、年齡等信息.客戶端還會將從服務器端返回的特征信息與私有步態數據庫進行相似度比對,進一步確認行人的身份.最后客戶端上會顯示出行人的身份、性別以及年齡信息.具體實現效果將在下一章詳細展示.
本系統在Windows 64 位操作系統上成功運行與測試,算法部分通過Python、C++編譯實現,并在Colaboratory 平臺上進行訓練,系統界面利用Qt Creator完成開發;在硬件層面,本系統運行以及測試的電腦CPU為i5-8300H,內存8 GB,顯卡為1050Ti,本系統所用的攝像頭是1080P USB 攝像頭.
3.2.1 CASIA-B 大規模多視角步態數據集
本系統使用中科院CASIA-B 大規模多視角步態數據集訓練身份識別算法模型.數據集中采集人數為124 人,93 名男性,31 名女性,每人從0°到180°分11 個視角,每個視角間隔18°的方式采集.每個人行走狀態又分為3 種:穿大衣、攜帶包裹、正常條件.每個視頻分辨率為320 像素×240 像素,25 幀/s.由于本項目只是對90°下的步態識別進行研究,因此算法模型僅使用數據集中90°下的數據進行訓練.
3.2.2 OU-ISIR 大型步態數據集
本系統使用大阪大學(OU)科學與工業研究所(ISIR)的大型步態數據集訓練基于步態的性別與年齡預測算法模型.該數據集的數據包含年齡、性別標簽,適用于評估與年齡、性別相關的人體步態分析算法(例如,以步態為基礎的年齡預測的一般領域的研究工作估計).該數據集由63846 名受試者組成,他們沿著攝像機拍攝的路線行走,行走視頻30 幀/s,分辨率640 像素×480 像素,受試者年齡范圍為2 至90 歲.在數據集中,每個受試者行走序列都轉化為一個尺寸標準化的步態能量圖.
本文通過背景減除法以及2.3的方法,從既有或者實時的視頻中獲取人體步態能量圖.但采用不同的背景減除算法去除背景的效果以及效率不同,選用合適的背景減除算法能幫助系統準確且實時地計算步態能量圖,提升身份及屬性識別的準確率.常用的背景減除算法有以下3 種:基于高斯混合模型的背景分割算法(Gaussian mixture-based background segmentation algorithm,MOG)[19]、基于高斯混合模型的背景分割改進算法(MOG2)[20]以及基于K 鄰近的背景分割算法(K-Nearest Neigbours-based background segmentation algorithm,KNN)[21].
圖3展示的是3 種不同的算法在參數相同的情況下對同一段視頻去除背景后使用2.3 節中的方法計算得到的步態能量圖,表1展示了3 種算法結合2.3 節中的方法獲取同一段視頻中行人步態能量圖的時間.
進行測試的源視頻時長約為5 s,人在行走過程中,視頻背景會產生鏡像進行干擾,因此可很好地測試不同背景減除算法的健壯性.結合圖3和表1可看出,使用KNN 方法最后獲取到的步態能量圖更為清晰和完整.雖然MOG2 算法最后計算時間更短,但使用該算法最后生成的步態能量圖效果很糟糕,難以作為后續識別的輸入.在5 s的視頻中,KNN 結合2.3 中方法僅用1.66 s 即可生成對應的步態能量圖,意味著在一段正常的行人步行時間內,系統有足夠的時間實時地捕獲到人的步態能量圖以進行后續的工作.

圖3 3 種背景減除算法配合2.3 節中方法得到的步態能量圖

表1 不同算法結合2.3 節中方法計算步態能量圖表
本文將步態數據集中連續的步態幀轉換為步態能量圖,并作為CNN的輸入訓練算法模型.由于訓練的樣本較少,我們將訓練集、驗證集、測試集按照8:1:1 進行劃分,以盡可能提供較多的數據進行訓練.3 種算法模型在Colaboratory 平臺上進行訓練的時間均在一個小時之內,在測試的主機上進行訓練的時間最長也不超過兩個小時.因此在硬件資源受限的情況下,本文提出的算法依然能夠被快速訓練并運用,能夠滿足中小團隊的開發需要.
基于步態的身份識別算法模型訓練過程如圖4所示,圖中“acc”表示算法在訓練集上的識別準確率,“val_acc”表示算法在驗證集上的識別準確率.由圖可知,經過25 輪訓練之后,在驗證集的識別準確率可達到97.7%,算法識別準確率高,收斂速度快,且不會出現過擬合現象.由表2可知,本文提出的基于步態的身份識別方法最終在測試集的識別率達到98.1%,優于Battistone 等[11]和Zhang 等[12]的方法,說明能達到較好的實際應用效果.

圖4 基于步態的身份識別算法模型訓練過程圖

表2 基于步態的身份識別算法識別率對比
性別預測算法模型訓練過程如圖5所示.由于用于性別識別和年齡預測的數據集比較大,因此一輪的訓練后驗證集識別準確率可達92.6%,且基于步態的性別預測本質上是二分類問題,分類任務較為簡單,最后算法整體識別率高,經過25 輪訓練之后,識別率可達到97%左右,輕微過擬合.因為目前尚未有文獻對該任務進行專門的研究,因此該算法并沒有一個可比較參考的基準,但從實驗效果來看,該算法模型最終在測試集的識別率達到97.1%,說明對于年齡的預測具有極高的準確性和魯棒性.

圖5 基于步態的性別預測算法模型訓練過程圖
年齡預測算法模型訓練過程如圖6所示.圖中“mae”表示算法在訓練集上的平均絕對誤差,“val_mae”表示算法在驗證集上的平均絕對誤差.由圖可知,在經過18 輪的訓練后,訓練集上的平均絕對誤差逐漸下降且依然有不斷下降的趨勢,但在驗證集的平均絕對誤差并沒隨著訓練輪次的增加有明顯的下降趨勢,說明對于驗證集來說,算法已經接近收斂,過擬合現象明顯.我們將本文的方法與傳統的兩種基準算法進行對比,實驗結果參考表3.其中,“GPR”表示使用高斯過程回歸(Gaussian Process Regression)[22]算法計算的平均絕對誤差,“SVR”表示使用支持向量回歸(Support Vector Regression)[23]算法計算的平均絕對誤差,其中“GPR”和“SVR”是Xu 等[14]提出的兩種基于步態的年齡預測基準算法.由表可知,本文提出的方法,在測試集的平均絕對誤差為6.21 歲,效果較好,明顯優于傳統方法.

圖6 基于步態的年齡預測算法模型訓練過程圖

表3 基于步態的年齡預測結果對比
步態能量圖最大程度地保留了人體行走的空間和時間信息,而卷積神經網絡可通過卷積以及非線性運算挖掘步態能量圖中深層特征,最終顯著地區分出不同步態的屬性信息.在本節實驗中,利用步態能量圖與卷積神經網絡進行身份、性別以及年齡的識別/預測算法模型的訓練.算法經過測試集的測試,身份識別的準確率達98.1%,性別預測準確率達97.1%,年齡預測平均絕對誤差在6.21 歲,說明本文提出的方法對于單視角行人身份及屬性的分析具備較強的魯棒性和容錯能力.
本系統將在4 種不同的場景中進行相對應的測試,圖7~圖9這3 幅圖是系統對已經錄制好的步態視頻進行測試的效果,其中,圖7中的測試背景與另外兩種情景不同.圖10是本系統通過外置攝像頭進行實時檢測行人并識別行人身份和屬性信息的測試效果.不同場景都各有一人參與測試,受試者為3 名男性,1 名女性,年齡皆在20~23 歲之間.

圖7 對步態視頻進行識別(身份已知且性別為男)

圖8 對步態視頻進行識別(身份已知且性別為女)

圖9 對步態視頻進行識別(身份未知)

圖10 實時環境下系統利用外接攝像頭進行步態識別
從測試結果可以看出,在不同的背景條件下,本系統能夠在上述4 種不同的狀態下從既有或者實時的視頻中準確地檢測出行人的位置并進行定位與跟蹤,說明系統具備對于背景變化的抗干擾能力.對已在本地數據庫中登記的受試者,本系統能正確地識別其身份和性別;對未在本地數據庫中登記的受試者,本系統也能反饋其性別和年齡信息.此外,通過外置攝像頭,本系統能實時捕捉行人的步態信息,并進行相應識別與預測.由于算法模型是訓練好加載到本地服務器中,因此當客戶端輸入相應的步態能量圖,服務器端可快速反饋相對應的步態分析.上述所有的測試場景,系統在2~2.5 s 內可分析獲得相對應人體的步態信息,因此可以滿足實際場景中實時性檢測的需要.雖然在年齡預測環節,本系統在部分場景中預測行人的年齡與真實年齡的偏差較大,如圖8和圖9所示的場景,預測的年齡誤差約有5 歲左右.但總體上看,本系統開發成本較低,可支持人體步態的實時檢測,算法具備較好的魯棒性,能準確反饋行人信息,可滿足部分場景的使用需求,具有實際開發意義.
本文構建和開發了一款可在視頻監控場景下通過步態準確識別出人物身份以及反饋相關特征信息的系統.該系統運用卷積神經網絡進行訓練,在Shiraga[18]的基礎上進行改進和優化,在測試集上,身份識別的準確率達98.1%,性別預測準確率達97.1%,年齡預測平均絕對誤差在6.21 歲,基本達到實際場景中對于步態識別與分析的要求.與此同時,該系統開發成本較低,支持實時檢測,可根據實際需要對功能進行靈活地調整與修改,因此能很好滿足一些小團隊、小企業的實際使用和開發需要,具有重要的現實意義.
雖然本系統已達到較為理想的效果,但依然有許多地方可以進一步改進和提升:一方面,在更為復雜的監控環境中,背景、光線等外部環境變換難以估計,行人的行走方向也并不會因為固定好攝像機的角度而保持不變,所以步態識別的前期預處理本身就是龐大且復雜的工程,需要更具魯棒性的方法進行預處理并提取到步態分析所用到的步態能量圖;其次,更加精準的步態識別與分析,也需要更加龐大的數據集,以及更好的模型訓練方法,令算法可以在精度及實時性等方面滿足更復雜場景的需要.