徐 健,黃 磊,陳倩倩,陸 珍,吳曙培西安工程大學 電子信息學院,西安 710048
隨著我國智慧城市建設的深入,我國視頻監控市場繼續保持快速增長的態勢。行人作為公共監控視頻中的核心,如何在視頻監控中對行人進行準確檢測與有效識別成為當今研究熱點。
人體步態識別作為一種新型生物識別技術,根據各人獨特的行走方式來標記、描述和確定行人個體的身份。近代醫學研究表明,步態是一種復雜的人類行為特征,人類的步態中存在24種不同的影響因素,如果將所有因素都考慮起來,則可以唯一地確定一個人[1],此項醫學研究為步態識別提供了可能。
步態識別與人臉識別和指紋識別等其他生物識別技術相比較而言,步態識別的優勢在于不需要當事人同意且無需身體直接或間接接觸的情況下即可進行識別行人身份。同時,步態識別高度依賴于人體的全身身體特征和行走姿態,因此步態作為識別特征也很難被隱藏或改變。隨著圖像處理、模式識別及計算機技術不斷發展,近些年一部分研究學者采用傳統機器學習方法實現通過行人步態達到識別行人身份的目的。李凱等[2]提出用步態能量圖作為步態的特征圖像,利用受限玻爾茲曼機自動獲取步態特征,并選取支持向量機、孿生支持向量機、神經網絡與k近鄰識別方法對使用受限玻爾茲曼機方法的提取的特征進行了研究。趙喜玲等[3]提出基于靜態能量圖和動態群體隱馬爾可夫模型的步態識別方法,最后采用近鄰法進行識別,極大程度減少了角度變化和噪聲帶來的影響,達到了較高的識別率。
近些年來,深度學習[4]發展迅速,在語音識別、機器視覺、圖像識別等諸多領域取得了巨大成功。卷積神經網絡(Convolutional Neural Network,CNN)是深度學習中一種端到端的人工智能模型,CNN在海量的Imagenet數據集上識別和檢測達到了比人眼更高的識別率與準確率,但在實際學習工作中,由于往往不具備官方數據集那么大的數據量,因此應用于實際樣本集時效果很差,通常表現為訓練集識別率和測試集識別率相差甚大,也經常導致過擬合現象發生。Sinno等[5]提出遷移學習的思想,解決了樣本數據量不夠的問題,并且還可避免大量昂貴的數據標注工作。基于遷移學習的思想,龍滿生等[6]將AlexNet模型在ImageNet圖像數據集上學習到的知識遷移到油茶病害識別任務中,對于常見的5種油茶病害都達到了極高的識別率。羅娟等[7]采用深度卷積神經網絡通過遷移學習分別訓練植物的單個器官,并且結合多個神經網絡的多線索進行植物識別,對傳統植物都可以有效地自動進行識別。關胤[8]采用152層殘差網絡結構,在花卉數據集上對模型進行遷移學習訓練,對于用戶自主上傳的花卉照片達到了較高的識別率。
針對當前公布的步態數據集,如果使用步態能量圖作為網絡輸入,會導致樣本集偏小易產生過擬合的問題。因此本研究引入深度遷移學習思想,利用VGG-16網絡模型作為特征提取器,考慮到原網絡提取圖像特征時僅針對單一尺度這樣會導致丟失部分圖像細節信息,故在網絡模型上融合空間金字塔池化網絡(SPP)[9]優化算法,提取行人步態中的多尺度信息特征。最終提出一種基于融合空間金字塔池化微調VGG-16網絡模型的行人步態識別方法。通過對比現有多種識別方法,該方法不僅避免過擬合現象發生,而且測試集識別率有所提升。
步態能量圖是一種混合步態輪廓序列中靜態和動態信息的運動模板,通過計算一個步態周期中步態輪廓圖像素的平均強度得到模板中每個像素點的能量[10]。步態能量圖提取方法簡單,并且能較完整地表現步態的形狀、速度等特征,因此行人步態識別過程中獲取完整的步態能量圖對整個識別過程至關重要。
人體的步態被認為是具有周期性的循環運動,一個完整的步態周期是從一側足的足跟著地到同一側足跟再次著地為止的連續過程所用的時間。
步態周期常用的檢測方法是基于人體側影的寬高比法[11],對于一個連續的步態過程,人體的高度和寬度會隨著身體的運動不斷變化。
如圖1(a)所示,當兩腿分開的角度逐漸變大時,人體的寬度變大,高度變小,此時寬高比變大,當兩腿逐漸靠近時,人體的高度變大,寬度變小,此時寬高比變小,因為整個步態周期呈現周期變化,因此寬高比變化也呈現周期變化。
圖1(b)中的x點、z點與p點對應雙腿并攏時所對應的寬高比曲線,y點、w點分別對應左腳邁出最大步伐時與右腳邁出最大步伐時所對應的寬高比曲線,由x點到p點即為一個完整的步態周期。

圖1 步態寬高比變化曲線Fig.1 Variation curve of gait aspect ratio
相較于將步態輪廓圖或者步態序列作為深度網絡的輸入,步態能量圖將整個步態過程用一幅特征圖像進行表示,保留了運動過程中的絕大部分特征信息,同時對于因某一幀輪廓圖出現的輪廓分割變形而產生的噪聲有很強的魯棒性,并且卷積神經網絡對于彩色圖像十分敏感,網絡會被彩色特征吸引,行人衣服變更會極大影響識別準確率,步態能量圖能夠忽視衣物背包和協變量的特征干擾,只關注步態特征本身,包括關節、身高、體型、行走的姿態等,因此選擇將步態能量圖作為深度神經網絡的輸入。GEI的定義如下:其中,N為單個步態周期內目標圖像的總幀數,B t(x,y)是步態周期中的t時刻的二值步態圖像序列,t代表步態周期中的第t幀。

一個完整周期內的人體目標圖像合成步態能量圖的過程如圖2所示。

圖2 合成步態能量圖Fig.2 Synthetic gait energy map
傳統的機器學習識別方法,主要分為三個步驟:目標圖像預處理、特征提取、特征處理,然后利用分類器等方法對特征向量進行分類操作。這種方法的弊端是每個過程需要人為參與費時費力且特征提取的好壞直接影響分類結果,而提取特征時需要工作人員豐富經驗,且最終識別率有待提高。
而深度學習大大減少了發現特征的成本,其本質是可以利用龐大豐富的數據,自主學習圖像深層特征,完成模型的訓練,泛化能力更強,更容易應用于實際場景。卷積神經網絡(CNN)是一種經典的深度學習模型,常見的卷積神經網絡由輸入層、卷積層、激活層、池化層、全連接層和最后的輸出層構成,此網絡可以有效地從大量樣本中學習到相應的特征,避免了復雜的特征提取過程。
VGG-16[12]是2014年提出的一種經典卷積神經網絡模型,相比之前其他網絡模型,通過增加更多的卷積層來增加網絡的深度,卷積層全部采用3×3小卷積核代替以往網絡中的5×5大卷積核,多卷積核串聯與池化層共同作用使得網絡結構簡單性能良好。其結構如圖3所示。

圖3 VGG-16網絡模型Fig.3 VGG-16 network model
原網絡輸入采用224×224的RGB彩色圖像,其中隱藏層主要由13個卷積層、5個池化層和全連接層組成。卷積層通過卷積運算完成特征提取工作,卷積核通過滑動窗口形式在輸入圖像中以確定的步長從左到右從上到下進行掃描,計算卷積核中的參數與輸入圖像卷積后的結果,每掃描完一張輸入圖像后輸出一張特征圖,再通過激活函數進行非線性映射后輸出作為下一層卷積層的輸入。卷積層的表達式為:

其中,為第n+1層第i個輸出特征,f()為激活函數,M j為從第n層選取的若干個作為第n+1層輸入特征圖的集合,為第n層第i個輸出特征為第n+1層的權值參數,為n+1層的偏置,?代表卷積操作。
池化層又稱為下采樣層,對每個卷積后的特征圖進行下采樣操作,不僅減少了模型參數,加快網絡運算速度,還能濾除部分圖像信息,起到特征選擇的作用,以此來提升網絡泛化能力。
經過若干次卷積+激勵+池化后,網絡對前面提取的特征圖進行“平展拉伸”,將其轉換為一維特征向量,通過全連接層進行相互連接。為防止出現過擬合現象,采用Dropout方法隨機丟棄網絡中的部分神經元,稀疏全連接層,最后通過Softmax激活函數分類得到最終的輸出,Softmax函數表達式為:

式中,z j表示第j個神經元的輸入,n為輸出節點的個數即樣本類別數;j=1,2,…,n。
一方面由于經過一系列卷積池化操作后得到的特征信息較為單一,另一方面因為VGG網絡需要輸入特定尺寸圖像,在檢測其他大小的圖片的時候,圖像需要進行裁剪或者縮放,但是裁剪縮放會減少圖像的全局特征信息,降低識別檢測的精度。因此為了有效提取行人步態圖像中的多尺度特征,本文通過將空間金字塔池化層融合到VGG-16網絡結構中,對卷積特征進行不同尺度最大池化操作,并提取出每個尺度下的特征,然后將生成的多尺度特征根據網絡需要聚合成特定維度,從而提高特征的空間尺度不變性。
本文融合的空間金字塔池化網絡結構如圖4所示。

圖4 空間金字塔池化結構Fig.4 Space pyramid pooling structure
此池化結構將VGG-16最后一個卷積層(conv5)輸出的512張特征圖作為空間金字塔池化層的輸入,此時對于每一張m×m的特征圖可以劃分為n×n的區域塊,對于每一個區域塊采取最大池化方式進行池化,其中池化層滑動窗口大小為ceiling(m/n×m/n),步長為floor(m/n)。本文中n分別取4、2、1,即將特征圖分別劃分為4×4、2×2、1×1共21個不同大小的區域塊,將每個區域塊中的最大值保留進行級聯融合得到21×512的多尺度特征,最后將這個多維特征“平展拉伸”成一維向量送入全連接層用于后續分類工作。
遷移學習的初衷是節省樣本標注時間,把處理源任務獲取的知識,應用于新的目標難題。隨著卷積神經網絡的興起遷移學習逐漸引起研究者的關注,并得到廣泛應用。深度遷移學習即采用深度學習的方法進行遷移學習,相較于采用非深度學習方法擁有兩個優勢:自動化地提取更具表現力的特征;滿足實際應用中的端到端(End-to-End)需求。其優點是可以對已有的知識進行利用,解決目標領域中標簽數據匱乏的問題起到舉一反三的效果,并且明顯減少訓練時間提高精度。結合本文步態識別過程中訓練樣本數據量較少的現狀,將深度遷移學習思想用于本次研究,即可克服過擬合現象發生,提升識別率,加快訓練速度。
遷移學習有域D和任務T之分,以小數據量的樣本集作為目標域,以大量標注的數據集作為源域,針對不同的任務,常規的卷積神經網絡都需要利用要識別的目標數據集從頭訓練,這是個很耗時間的任務且在數據集數量較小時極容易產生過擬合現象。因此可以根據源域與目標域的極大相似性,先利用源域數據訓練神經網絡,將學到的能力通過某種方式共享遷移至新模型,縮短目標域訓練時間且提升識別率。遷移學習的方式有很多種,根據遷移內容的不同主要分為基于實例的遷移、基于特征的遷移和基于參數的遷移等。本文采用基于參數的遷移方式,將Imagenet數據集作為源域,行人步態數據集作為目標域,在融合SPP網絡的VGG-16神經網絡模型上進行預訓練,遷移參數,目標域微調參數,達到最后步態識別的目標。基于改進VGG-16網絡的遷移學習模型結構如圖5所示。

圖5 遷移學習模型Fig.5 Transfer learning mode
首先將VGG-16網絡模型最后的最大池化層去掉,用空間金字塔池化(SPP-Net)代替,且此時輸入圖像相比于原VGG網絡不要求必須是224×224的RGB彩色圖像,可以輸入任意尺寸大小的圖像以獲得多尺度信息且維度固定的特征,其他網絡參數不變,用于源域的預訓練操作。將加入SPP的網絡稱為sppvgg網絡模型。待該網絡在Imagenet數據集上得到的損失函數值與準確率趨向穩定時保存全連接層前面的特征提取層權值參數。將改進的VGG網絡結構中的全連接層神經元個數按本研究需要進行修改,第一層全連接層由4 096改為512,第二層根據行人步態分類需要改為124,去除了第三層全連接層,經過softmax函數得到124類行人結果的輸出,將其稱為Im-sppvgg網絡模型。將該網絡作為行人步態圖像識別最終模型,在訓練測試過程中由于神經網絡中的卷積層和池化層主要承擔著提取圖像特征的作用,因此先將由源域訓練獲得的提取特征能力由sppvgg網絡遷移至識別行人的Im-sppvgg網絡中,然后將Im-sppvgg網絡中卷積層池化層的權重參數“凍結”使其處于不被訓練狀態,再輸入小數據量的行人步態數據集至Im-sppvgg網絡中,微調網絡中的全連接層參數使其具有分析識別行人的能力。
本文算法實驗在Windows10操作系統下,CPU為Intel i7-7700K,GPU為NVIDIA gtx1080,16 GB內存,基于Tensorflow1.14深度學習框架,編程語言為python3.6。
本文采用的數據集是中國科學院自動化研究所提供的CASIA步態數據庫Dataset-B數據庫[13](多視角庫)。此數據庫提供了124位受測者在11種視角(0°,18°,36°,…,180°),在三種行走條件下(普通條件、穿大衣、攜帶包裹條件)的行人步態序列。此每種視角選取1個完整步態周期作為樣本數據集,每一位行人包含110張圖像,一共13 640張行人數據集圖像。數據集存儲了行人步態序列的二值圖像,因為本文選擇步態能量圖作為深度網絡的輸入,所以對人體步態序列的預處理(目標檢測、圖像分割、圖像歸一化等操作)本文將不再論述。
按照前述獲取步態能量圖的方法獲取每個行人樣本的步態能量圖,每位行人樣本包含10個行走條件(2個穿大衣狀態、2個攜帶包裹條件、6個普通行走條件),每種狀態包含11種視角。部分樣本如圖6所示。

圖6 行人樣本集Fig.6 Pedestrian sample set
實驗流程如圖7所示,首先使用Imagenet數據集預訓練改進VGG后的網絡模型(sppvgg),然后保存在源域上學習到的權重參數,遷移預訓練的權重參數并修改網絡的全連接層,初始化參數后用行人步態圖像樣本訓練修改后的網絡模型(Im-sppvgg),微調全連接層的參數,經過softmax函數輸出識別結果。在整個遷移學習過程中凍結的是預訓練模型的低層網絡參數,雖然Imagenet數據集中的圖像和行人步態圖像不一樣,但是它們都是具有相似性的彩色圖像,從大數據集學習得到的低層濾波器往往描述了各種不同的局部邊緣和紋理信息,隨著卷積層數增加學習的特征信息越來越抽象化,因此得到的圖像濾波器更具有普適性。而最終本文只根據研究對象需要,修改全連接層,使其具備識別行人的能力。

圖7 遷移學習流程圖Fig.7 Process map of transfer learning
本實驗對遷移特征后的Im-sppvgg網絡使用樣本集共13 640張行人步態圖像進行訓練微調。
訓練過程中,網絡超參數如表1所示。表1中各參數具體含義如下:

表1 網絡超參數Table 1 Hyper-parameter of netwrok
Epoch:網絡訓練迭代周期數,整個樣本集數據被訓練一次計為一個Epoch,一般取的數值能確保損失函數值和準確率值趨于最終穩定。
Batch_Size:每次輸入神經網絡的數據大小,每Batch_Size個數據輸入后,進行一次梯度下降法對權重參數更新。
Optimizer:優化器,在比較SGD(隨機梯度下降)等優化器所得效果后,最終選擇了AdamOptimizer優化器。
Dropout:用于使全連接層的部分神經元失效,丟失一些信息,避免過擬合現象。本實驗設置為0.8。
損失函數:訓練過程中通過Softmax函數將神經網絡的輸出變成一個概率分布,使用交叉熵(CrossEntropy)作為網絡的損失函數,交叉熵刻畫了兩個概率分布之間的距離,是分類問題中常用的評判方法之一。
當p表示正確答案,q表示網絡預測值時,交叉熵可以表示為:

圖8是使用本文所提出的深度遷移學習網絡模型在源域學習到的特征提取能力應用在行人步態上所得到的部分卷積特征圖。

圖8 卷積特征圖Fig.8 Convolution feature maps
從圖8中看出,隨著卷積層不斷加深,得到的特征圖不斷抽象化,在低層特征圖可以明顯看出行人具體紋理、邊緣、形狀等特征。在高層次特征圖中行人圖像已經很抽象,人眼無法看出具體內容,用來濾除不相關內容,提取重要特征。低層卷積核和高層卷積核的局部細節信息表明,卷積神經網絡的低層特征抽象能力是可以共享的,因此使用ImageNet的大量數據訓練基于VGG網絡改進的Im-sppvgg網絡能夠更詳盡、精準地學習到樣本的抽象特征。總的來說,將已在ImageNet數據集上訓練好的模型遷移到行人步態識別問題上能有效地提取圖像的抽象特征,進而提高模型的泛化能力。
為直觀描述網絡模型的有效性,使用行人步態能量圖樣本集對模型進行訓練,得到損失函數值及準確率曲線如圖9所示。因本文網絡利用改進的VGG網絡在結合深度遷移學習思想構建而成。為客觀比較本文所提網絡的性能,對原VGG-16網絡模型進行遷移學習,其損失函數值及準確率曲線如圖10所示。其中針對本文Im-sppvgg網絡輸入圖像無尺寸要求,而VGG-16需對輸入圖進行尺寸裁剪至224×224×3大小以滿足網絡要求。

圖9 Im-sppvgg網絡損失函數值和準確率曲線圖Fig.9 Loss function value and accuracy graph of Im-sppvgg network

圖10 VGG-16網絡損失函數值和準確率曲線圖Fig.10 Loss function value and accuracy graph of VGG-16 network
結果表明,圖9的Im-sppvgg網絡損失函數值下降很快,大約第300 iteration時損失函數值就趨向于0,準確率曲線大概在第300 iteration時趨向穩定,圖中紅色曲線代表行人步態圖像訓練集準確率,穩定后基本保持在100%左右,藍色曲線代表行人步態圖像測試集準確率,穩定后保持在95%左右。而基于VGG-16網絡得到的圖10中損失函數值下降較慢,大約在400 iteration才趨向于0。而在準確率曲線圖中大約450 iteration時趨向穩定,此時代表訓練集的紅色曲線保持在100%左右,代表測試集的藍色曲線保持在91%左右。直觀上來看本文提出的Im-sppvgg網絡模型在行人步態圖像樣本集上精度表現更佳,收斂速度更快。這是因為本文修改VGG-16網絡時去掉網絡最后的最大池化層用空間金字塔池化網絡代替。正是由于這種結構上的改進,在Imsppvgg網絡輸入樣本圖像時,能夠獲取多尺度信息特征,使得識別精度提升。而在最后卷積層輸出時,原VGG16網絡設置三個全連接層,第一個全連接層FC1有4 096個節點,第二個全連接層FC2層有4 096個節點,第三層全連接層FC3有1 000個節點,因為原VGG網絡輸出的卷積特征共7×7×512=25 088個節點,而全連接層權重參數數目計算方法:前一層節點數×本層的節點數。所以原VGG16全連接層參數為:7×7×512×4 096=1 027 645 444,4 096×4 096=16 781 321,4 096×1 000=4 096 000共1 048 522 756個權重參數。
而本文在改進的VGG16網絡中,經過空間金字塔池化后輸出(1+4+16)×512共10 752個參數,所以修改后2層全連接層的權重參數10 752×512=5 505 024,512×124=63 488共5 568 512個權重參數。
較多的權重參數在小樣本集上會產生過擬合現象,同時會導致訓練時間過長,內存消耗量大,存儲容量大等問題。正是不丟失特征信息的參數減少使得網絡收斂更快且提高行人步態的分類性能。
本文將實驗數據隨機打亂分為訓練集、測試集及驗證集,隨機打亂以消除過擬合現象,其中70%作為訓練集,10%作為驗證集,20%作為測試集。評價指標使用平均識別率(ARR)。ARR表示正確識別的目標人物數占總數的比例,ARR的值越大表明識別率越高,算法性能越好。

為了客觀對本文算法進行分析,將本文算法與其他步態識別算法進行比較,表2列出了不同方法平均識別率。

表2 不同算法性能比較Table 2 Comparison of performance of different algorithms %
從表2對比其他幾種文獻針對行人步態識別的正確識別率可以看出,本文提出的算法識別性能總體較好,識別率更高。文獻[14]采用融合策略將通過數據降維后的步態能量圖、梯度直方圖、小波描述子和部分圖像信息熵特征進行融合后完成步態識別任務,雖然與單一步態特征的識別方法相比,步態識別率有明顯提高,但是融合后的特征權重仍通過融合前的單一特征的識別率決定,缺乏特征之間的關聯性以及特征個異性在識別過程中的體現。文獻[15]采用分解能量圖與頻譜分析構建步態特征,此方法提取的特征降低了數據復雜度并且能較完整表達行人個體的步態信息,在CASIA步態數據庫上達到較好的識別性能。文獻[16]在步態能量圖的基礎上分三層求得目標圖像的局部二值模式(LBP)與方向梯度直方圖(HOG),使用特征融合的方法每一層的LBP特征和HOG特征進行融合得到最終的特征進行實驗驗證,在CASIA與USF數據集上都達到較好的識別率。根據分析可知這些方法都是基于傳統機器學習方法,采用融合策略融合幾種行人步態的圖像特征,對融合后的特征進行分類。
傳統機器學習方法避免了深度學習大規模參數運算弊端,使得測試時間較短。但在整個提取特征信息時需要人為時刻參與費時費力,并且這種基于單一特征或多種特征的識別算法丟失了大部分步態過程中的信息。算法4采用的是原始VGG-16神經網絡模型,從訓練集和測試集識別精度可以看出,在不加修改的經典網絡模型上直接用小數據量的能量圖作為輸入極易產生過擬合現象,這也符合實驗之初的設想,因此本文提出采用深度遷移學習的方法。算法5是在VGG-16網絡模型結構上采用深度遷移學習方法,相比于算法4消除了過擬合現象,使得測試集精度大幅度提升。而本文算法在算法5基礎上,進一步改進,結合空間金字塔池化思想,擺脫VGG-16網絡模型對于輸入圖像尺寸要求的束縛,不僅獲得多尺寸多維度信息特征提升識別精度,還使得全連接層權重參數減少,加快算法訓練和測試時間。
針對使用步態能量圖作為深度卷及網絡的輸入,會導致樣本集偏小易產生過擬合的問題。本文在VGG-16網絡結構基礎上進行改進,將大規模數據集訓練該網絡后將學習得到提取能力遷移,再用行人步態樣本集微調網絡,用于識別研究。根據行人步態訓練集精度和測試集精度曲線,證明該網絡識別的有效性。通過對比其他識別算法精度,本文算法的識別率均高于其他算法,證明該網絡的優越性。本文算法的提出,不僅克服了傳統機器學習方法識別率低,需要人為時刻參與的弊端,而且解決了深度學習在小數據集上產生過擬合現象的問題,在CASIA跨視角跨穿著步態數據庫上對本文算法進行實驗,結果表明此方法是一種有效的步態識別方法。