李 凱,岳秉杰
(河北大學網絡空間安全與計算機學院,河北保定 071002)
步態是指人們走路的姿勢,是一種可在遠距離感知的生物行為特征,研究表明,如果考慮步態運動的所有信息,那么每個人的步態都是唯一的。為此,Sarkar 等[1]通過利用人體步態特征進行身份識別,為進一步研究步態識別奠定了基礎,從而步態識別成為計算機視覺和生物特征識別領域的一個熱點研究方向。對于步態識別,根據研究方法的不同可以分為基于模型的步態識別以及基于外觀的步態識別[2]。基于模型的方法[3-4]通過構建符合人體結構的模型來進行步態識別,但由于需要高分辨率的圖像對人體模型進行構建,以及存在各種協變量的因素,如視角、穿著以及遮擋等問題很難還原準確的人體結構,在實際應用中,基于模型的方法會造成很大精度損失?;谕庥^的方法通過從視頻中提取人的輪廓構建步態表征模板[5],如步態能量圖(Gait Energy Image,GEI)[6]、運動歷史圖(Motion History Image,MHI)[7]、步態歷史圖(Gait History Image,GHI)[8]、保留時間信息的步態能量圖(Chronogait Image,CGI)[9]。Iwama 等[10]也表明了GEI 是一種較為穩定且有效的步態表征模板。相較于基于模型的方法,基于外觀的方法不需要先驗知識構建人體模型,因此,基于外觀的步態識別方法應用更為廣泛。
與人的虹膜、人臉、指紋等其他特征相比,步態具有不需行人近距離接觸、不需要對象專門配合、難以偽造以及不需要高分辨率的圖像等優點[2]。盡管如此,影響步態識別準確率的因素仍有很多,它們主要分為兩類:一類是外界環境因素,如光照、相機的分辨率以及相機視角等,其中視角因素影響較大;另一類是人自身的因素,如人的步伐、穿著等。為解決視角問題,通常采用跨視角步態識別或多視角步態識別方法[11]。由于多視角步態數據庫中包括多個注冊角度,而跨視角步態識別數據庫中的注冊角度都是相同的,因此與多視角步態識別任務相比,跨視角步態識別問題相對較難。由于同一人的輪廓因視角不同而具有很大的差異,導致步態具有高類內方差問題,因此,如何從步態信息中提取每個人的關鍵特征,學者們進行了廣泛的研究。在基于深度學習的步態識別中,卷積神經網絡(Convolutional Neural Network,CNN)[12]、生成對抗網絡(Generative Adversarial Network,GAN)[13]與長短期記憶(Long Short-Term Memory,LSTM)網絡[14]等在步態識別的應用中取得了良好的性能。例如,Tong 等[15]基于卷積神經網絡提取步態特征,且對跨較大視角的識別具有較好的表現。Yu 等[16]利用GAN 模型提取步態特征。Xu 等[17]使用CNN 提取步態特征,利用膠囊網絡作為分類器來完成步態識別任務。由于基于GEI 的步態識別會丟失步態特征的時序特征,為此Feng 等[18]提出基于LSTM 的步態識別模型,將CNN 提取的逐幀信息送入LSTM 中,得到了較好的識別結果。由于卷積神經網絡使用了最大池化操作來增大感受野與實現圖像的平移不變性,因此它會丟失很多空間信息。為此,本文提出了一種共享轉換矩陣的膠囊網絡,及其改進的動態路由算法,有效減少了網絡訓練參數;在此基礎上,通過融合視角信息,并利用Triplet 損失與Margin 損失,提出了共享轉換矩陣的膠囊網絡模型及其融合視角特征的跨視角步態識別模型。
膠囊網絡是由Hinton 等[19-20]提出的一種神經網絡,主要使用向量存儲一個實體的信息,向量的方向表示此實體,向量的長度表示實體存在的置信度,膠囊的每一維表示實體的具體特征,如旋轉、字體的粗細等,并使用動態路由算法,尋找低層膠囊與高層膠囊的對應關系。在膠囊網絡中,利用轉換矩陣對向量進行變換得到預測向量,并通過式(4)的squash函數將預測向量的加權和si的長度壓縮成0 到1 之間??梢钥吹?,當膠囊層中含有較多膠囊時,則膠囊神經網絡的訓練時間復雜性較高。由于低層膠囊表示當前視角下局部的實體,且利用轉換矩陣將其投影到另一個視角,因此,可以將多個膠囊共享同一個轉換矩陣將其轉換到相同的視角,從而提高膠囊網絡訓練的速度,也進一步減少網絡訓練的參數,同時,獲得了共享轉換矩陣的膠囊網絡以及相應的動態路由算法。
設膠囊網絡的第l-1層與第l層分別含有m和n個膠囊,對于傳統膠囊網絡[17]則含有m×n個轉換矩陣,而共享轉換矩陣的膠囊網絡,則m個膠囊共享n個轉換矩陣。設轉換矩陣為Wi(i=1,2,…,n),首先將前一層膠囊uj(j=1,2,…,m)通過轉換矩陣Wi得到預測向量uij,即

然后,利用式(2)計算預測向量uij的加權和,從而得到輸出向量si:

其中cij為預測向量uij與高層膠囊vi的相似程度,通過式(3)計算:

利用式(4)將特征向量的長度壓縮到0 到1 之間,以此作為下一層膠囊層的輸入,其中向量vi表示壓縮后的膠囊,si表示未壓縮的特征向量:

而bij在動態路由算法開始前全部初始化為0,在每次動態路由算法結束后,利用式(5)進行更新,使得相似度高的低層膠囊聚在一起,最終預測出高級特征,膠囊網絡的損失函數為Margin損失如式(6)所示:

其中:Lk為第k類的Margin 損失,Tk為樣本標簽,m+、m-與λ為參數。當正樣本的預測值不大于m+或負樣本的預測值不小于m-則會產生損失,從而使得正樣本預測的值越大越好,負樣本預測的值越小越好。
圖1 給出了共享轉換矩陣的膠囊網絡的第l-1 層與第l層的前向傳播圖,且圖中省去了動態路由算法中的權重cij。

圖1 共享轉換矩陣的膠囊網絡的前向傳播Fig.1 Forward propagation of capsule network with sharing transformation matrix
對于改進的膠囊網絡,本文也給出了共享轉換矩陣的動態路由算法(Share-Transform-Dynamic-Routing,STDR)如算法1,其中softmax與squash函數分別如式(3)和(4)所示。
算法1 共享轉換矩陣的動態路由算法(STDR)。
輸入 第l層的膠囊數n,第l-1 層膠囊數m與輸出uj,動態路由次數r。
輸出l層膠囊的輸出vi。


本章主要利用提出的共享轉換矩陣的膠囊網絡,建立跨視角步態識別的網絡模型,該模型主要包括兩種:一種為基于共享轉換矩陣的膠囊網絡并結合Triplet 損失的模型,記為STN(Share-Triplet-Network);另一種為在STN模型基礎上融合視角特征與Margin 損失的VSTN(View-Share-Triplet-Network)模型。對于每種模型,在訓練階段使用三元組網絡,測試階段僅使用三元組網絡的一個分支提取特征。
STN 模型由兩個卷積層、一個初級膠囊層、一個步態膠囊層與一個全連接層構成。卷積層負責提取行人的基本特征,膠囊層負責將基本特征壓縮成膠囊并通過動態路由機制獲得高級特征,全連接層將膠囊層輸出的高級特征進行變換得到行人特征,從而使得行人特征更符合Triplet 損失中的距離度量,同時也可以更好地控制行人特征的維度。圖2 給出了用于提取特征的STN模型。

圖2 用于提取特征STN模型Fig.2 STN model for extracting features
在用于步態識別的STN模型中,使用了三元組網絡,即網絡中三個分支共享權重,其中的兩個分支接受正樣本,第三個分支接受一個負樣本,經過C1、C2 兩個卷積層與初級膠囊層提取基礎膠囊,接著將基礎膠囊送入步態膠囊中,并通過動態路由機制獲得高級膠囊,然后將所有的高級膠囊與全連接層連接獲得輸出特征;將三個分支提取到的三個樣本的特征送入Triplet 損失函數中,利用最小化Triplet 損失函數優化三元組網絡,Triplet 損失函數如式(7)所示:

其中:Li表示第i個樣本對的損失,a為錨樣本,p為正樣本,n為負樣本,實驗中a與p為同一人的兩張不同GEI提取的特征,a與n為兩個不同人的特征。d(a,n)表示距離函數,margin為參數,當錨樣本和正樣本間的距離與錨和負樣本間的距離的間隔小于margin時將會產生損失,利用Triplet 損失函數,使得網絡不斷減小相同行人特征之間的距離,同時增大不同行人特征之間的距離。
在步態識別中,針對行人的不同視角對步態識別的影響,以及步態圖像采集設備與行人角度的確定性,在STN 模型的基礎上,通過增加提取視角特征過程,獲得了VSTN 模型,如圖3 所示。其中上半部分用于提取行人特征,結構與STN 完全一致,下半部分用于提取視角特征。對于視角特征的提取,掩碼層將除特定膠囊外的其他膠囊值都設為0,以此保留特定膠囊的信息。拼接層用于將兩個模塊提取到的行人特征與視角特征結合在一起從而得到步態特征,在該模型中,損失主要來自于Margin損失與Triplet損失。
在VSTN 模型中,網絡訓練過程如下:通過卷積層與初級膠囊層獲得基礎膠囊;然后,基礎膠囊送入視角膠囊層中并輸出包含視角特征的高層膠囊,其中高層膠囊的模長表示當前步態能量圖對應視角的概率,通過樣本的視角標簽對視角膠囊做掩碼處理,從而得到對應的視角特征;最后,將視角特征與行人特征送入拼接層對兩部分進行拼接,經過全連接層輸出最終的識別特征。在訓練階段,利用視角標簽與視角膠囊模長形成的Margin 損失與VSTN 中上半部分形成的Triplet 損失的結合共同優化VSTN 網絡,其損失函數如式(8)所示,其中參數α為兩個損失的權重。


圖3 用于提取特征的VSTN模型Fig.3 VSTN model for extracting features
為了驗證提出方法的有效性,實驗選取了CASIA-B 數據集進行訓練與測試。在該數據集中,隨機選取74 人作為訓練集,剩余50 人作為測試集,實驗中使用規模為128×88 的GEI作為模型輸入,其中GEI 的生成過程是將一個人的所有序列合成一張GEI,且GEI 合成時的對齊方式為人的重心,因此,訓練集共有74人×10種攜帶物狀態(兩個背包,兩個穿衣以及六個正常)×11 個視角共8 140 張圖片。實驗依次固定Probe與Gallery 視角,測試不同視角下Probe 與Gallery 的識別準確率,實驗選取行人攜帶物狀態中正常行走(NM)的1~4 作為Gallery,攜帶背包(BG)、穿戴外套(CL)的1~2 與NM 的5~6 狀態作為Probe進行測試。
基于2.1 節提出的STN 模型,本文構建了用于訓練網絡的三元組STN 模型,如圖4 所示,它主要由三個分支組成且三個分支權重相同,其中C1、C2為卷積層,分別含有64個11×11步長為2 的卷積核與256 個9×9 步長為1 的卷積核。BN(Batch Normalization)為批量歸一化層,主要用于提高梯度下降的求解速度,同時增加網絡的泛化能力,ReLU(Rectifie Linear Unit)為非線性激活層。PrimaryCaps 為初級膠囊層,初級膠囊的維度為256通道數為1,卷積核的個數為256,大小為9×9,步長為1。GaitCaps為動態路由層,路由次數為3,步態膠囊數量為16,膠囊維數為32。F4 為含有128 個神經元的全連接層。優化器為自適應矩估計(Adam),學習率為0.001。

圖4 步態識別的STN模型Fig.4 STN model for gait recognition
測試時的Probe 與Gallery 分別通過單分支的STN 模型輸出Probe與Gallery 的特征,單分支的STN 模型如圖5所示。當得到Probe 與Gallery 特征后通過計算對應特征的距離來識別行人。

圖5 測試使用的STN模型Fig.5 STN model used for testing
三元組VSTN 模型如圖6所示,其中每個分支的左側模塊用于提取行人特征(參數與STN 完全相同),右側模塊用于提取視角特征。C1、C2 與C3 為卷積層,分別含有16 個11×11 步長為2 的卷積核、64 個7×7 步長為2 的卷積核與128 個3×3 步長為1 的卷積核。PrimaryCaps 為初級膠囊層,初級膠囊的維度為256,通道數為1,卷積核的個數為256,大小為3×3,步長為1;ViewCaps 為動態路由層,路由次數為3,視角膠囊數量為11,膠囊維數為32;Mask 為掩碼層,Concatenate 為拼接層。實驗中margin值為0.5,m+為0.9,m-為0.1。測試階段將128×88 的GEI 送入單分支的VSTN 中提取特征,單分支的VSTN 如圖7 所示。它與訓練階段的掩碼操作不同,由于測試階段不需要視角標簽,因此,取高級膠囊中最大模長的膠囊作為視角特征。

圖6 步態識別的VSTN模型Fig.6 VSTN model for gait recognition

圖7 測試使用的VSTN模型Fig.7 VSTN model used for testing
為了評估提出方法的有效性,在不同步行條件下,對網絡模型STN、VSTN 的識別準確率進行了實驗。其中VSTN 模型除了提取視角特征的模塊外,其他部分與STN模型參數一致,表1~6 給出了STN、VSTN 模型在不同視角下Probe 與Gallery的識別準確率。

表1 正常行走條件下STN模型的識別準確率Tab.1 Recognition accuracy of STN model with normal walking
從表1~6 可知,VSTN 模型識別準確率高于STN,但STN參數較少,且不需要收斂Margin 損失函數來識別樣本的角度,因此,STN 訓練過程的收斂速度比VSTN 更快,STN 模型更適合視角標簽難以獲取以及用于訓練模型的硬件計算能力不足的情形。當Probe 與Gallery 角度相同或對稱時,步態識別模型則有較好的識別準確率,此時Probe與Gallery的GEI最接近。同時,對于行人不同穿戴情況,則有NM>BG>CL,主要原因是NM 對行人影響較小,類內方差較小,而CL 與BG 將改變行人輪廓,因此識別準確率降低。
為了表明STN 與VSTN 模型在步態識別中的性能,選取CTN (Convolutional-Triplet-Network)[21]與 NN (Nearest-Neighbor)[22]方法進行了比較,實驗結果如圖8 所示,其中NSTN(Not-Share-Triplet-Network)為使用非共享轉換矩陣的傳統膠囊網絡[17]模型獲得的識別準確率,圖中橫坐標為Probe的角度,縱坐標為各個視角下Gallery的平均識別準確率。

表2 攜帶背包條件下STN模型的識別準確率Tab.2 Recognition accuracy of STN model with carrying a bag

表3 穿戴外套條件下STN模型的識別準確率Tab.3 Recognition accuracy of STN model with wearing a coat

表4 正常行走條件下VSTN模型的識別準確率Tab.4 Recognition accuracy of VSTN model with normal walking
從圖8 可知,VSTN 模型的識別準確率無論是正常行走還是穿戴外套或攜帶背包狀態下均優于其他4 種模型的識別準確率,主要原因是VSTN 使用了行人特征與視角特征融合后的特征進行識別,特征信息更加豐富,因此步態識別時獲得了較高的識別準確率。

表5 攜帶背包條件下VSTN模型的識別準確率Tab.5 Recognition accuracy of VSTN model with carrying a bag

表6 穿戴外套條件下VSTN模型的識別準確率Tab.6 Recognition accuracy of VSTN model with wearing a coat
對于其他4種模型比較,有如下結果:
1)STN 與CTN 相比,在NM 情況下,CTN 識別準確率略大于STN,但對于CL 與BG 情況,STN 識別準確率均大于CTN,表明了使用膠囊網絡提取步態特征的有效性;
2)STN 與NSTN 相比,STN 識別準確率高于NSTN,主要原因是NSTN模型訓練參數過多,導致嚴重的過擬合問題;
3)NSTN 與NN 相比,NSTN 識別準確率高于NN,NN 使用歐氏距離直接比較兩個GEI的差異,主要針對較底層的特征,而NSTN采用卷積與動態路由機制利用了步態的高級特征。
為了驗證VSTN 提取到的視角信息的有效性,將VSTN 模型的識別準確率與CTN 的識別準確率進行了對比,通過各個視角的VSTN 的識別準確率與CTN 的識別準確率之差,并歸一化后生成灰度圖,且利用顏色深淺表示VSTN 在當前視角下與CTN 的識別準確率的優劣程度,顏色越淺,則表示VSTN的識別準確率優于CTN,結果如圖9 所示??梢园l現在跨較大視角的情況下,融合視角特征的VSTN 模型的識別準確率高于CTN,表明了提取視角特征的有效性。

圖8 不同模型的識別準確率(分辨率128×88)Fig.8 Recognition accuracy of different models(resolution 128×88)

圖9 VSTN與CTN跨視角識別準確率對比Fig.9 Comparison of cross-view recognition accuracy between VSTN and CTN
為減少網絡參數,進一步提高網絡的性能,提出了基于共享轉換矩陣的膠囊網絡,并以此為基礎給出了兩種跨視角步態識別模型,即STN與VSTN,以此提取步態特征,進而完成步態識別任務,其中融合視角特征的VSTN 模型在輸入分辨率為128×88 的情況下,其識別準確率無論在正常行走還是攜帶背包與穿外套的情況下均優于基于卷積神經網絡的CTN 步態識別模型。通過跨視角準確率對比實驗,表明了提出的VSTN模型提取視角特征的有效性。