李凱曹可凡沈皓凝
(1.河北大學 網絡空間安全與計算機學院,河北 保定 071002;2.湖南大學 電氣與信息工程學院,湖南 長沙 410082)
步態識別是一種很有潛力的生物識別技術,具有在遠距離、低分辨率情況下完成識別對象的特性,與傳統的指紋識別、虹膜識別、人臉識別不同的是,該方法無需被識別對象的配合即可完成身份驗證,因此,步態識別技術在身份識別、安檢監控和預防犯罪等領域具有廣泛的應用前景.然而,由于步態識別往往受到很多因素的干擾,因此其識別性能將會顯著降低,這些因素主要包括步態序列的采集角度,被識別行人的服裝、鞋子和背包,其中對識別準確率干擾較大的是采集角度的變化,如圖1所示,圖1a和圖1b的步態輪廓圖拍攝自同一個行人的0°和90°視角,圖1c的步態輪廓圖拍攝自不同行人的90°視角.步態識別的難點在于同一個行人在不同視角中所拍攝步態輪廓圖像間的差異遠大于不同行人在相同視角下拍攝的步態輪廓圖像間的差異.

圖1 行人步態輪廓Fig.1 Pedestrian gait silhouette
為了克服視角變化對識別準確率的影響,研究人員提出了不同的方法,它們主要分為3類:1)試圖從行人的步態圖像中提取行人的三維結構[1-2],此方法對環境具有嚴格的要求,同時計算復雜度較高;2)使用手工提取特征的方式獲取一些與視角無關的特征[3],然而,此方法在視角變化較大的情況下,步態識別準確率會大幅下降;3)使用轉換或投影方法將步態特征在不同視角中進行轉換.例如,Makihara等[4]提出的視角轉換模型(view transformation model,VTM)能夠將步態特征從一個視角轉換到另一個視角.Kusakunniran等[5]提出了使用截斷SVD 的方法進一步克服視角轉換模型的過擬合問題.Hu等[6]提出與視角無關的判別投影方法(ViDP),通過迭代策略并使用線性投影來提高多視角步態特征的判別能力,且在識別過程中無需獲得被識別行人的視角信息.Yu等[7]提出使用身份判別器來保證GANs生成的輪廓圖包含行人的身份信息.同時一些學者提出了基于卷積神經網絡(convolutional neural network,CNN)的步態識別方法[8-9].為了保留更多的動態信息,Castro等[10]提出了使用CNN 從步態圖像的光流分量中學習高級特征描述符.Wolf等[11]將光流法和3D 卷積神經網絡相結合,使得模型在視角跨度較大時仍具有較好的準確率.為了利用步態序列中的時間信息,Feng等[12]將CNN 和長短期記憶網絡(LSTM)相結合,使得CNN 產生的人體姿態標記傳入LSTM 進而完成分類.度量學習通過計算樣本特征之間的相似度或距離來判斷相似性.Tong等[13]提出使用三元組損失函數(triplet loss)訓練卷積神經網絡,在每輪迭代中,通過對較難分類樣本的采樣來提升模型對視角變化的魯棒性.Huang等[14]將注意力機制和三元組損失函數(triplet-loss)引入到卷積神經網絡中,利用嵌入學習在OU-LP和OU-MVLP數據集上獲得了較好的實驗結果.為了提高跨視角步態識別的準確率,本文研究了基于步態序列的跨視角步態識別,提出了一種基于步態序列的跨視角步態識別模型,該模型由1個編碼器、1個生成器和2個判別器組成,編碼器主要對步態序列進行編碼,為了保證獲取的步態特征有效,通過判別器對生成器生成的包含特定步態信息與時間信息的圖像,利用連續幀判別損失以及三元組損失對模型進行修正.
生成式對抗神經網絡(GANs)[15]是一種新穎的數據分布建模方法,它主要由生成器G和判別器D構成.其主要思想是利用生成器從分布z~Pz產生一個假數據,而判別器D是將假數據從真實的數據中區分出來.假設真實數據的分布是x~Pdata, 生成器G和判別器D利用式(1)通過迭代技術進行優化

其中θG和θD分別是生成器G和判別器D的參數.由于原始GANs的訓練往往受到低質量、不穩定和模型崩潰等因素的影響,因此,學術界提出了許多GANs的變種來解決這些問題[16-19].
為了提取行人的有效步態特征,較常用的方法是使用步態能量圖進行提取,通過對二值輪廓圖像取平均以此來得到步態特征的表示,然而,這種方法卻忽略了步態周期中的動態信息.為了有效保留步態中的時間信息,進一步提高跨視角步態識別的準確率,本文研究了基于步態序列的跨視角步態識別,也就是說,為了提取步態中的時間信息,將步態序列作為模型輸入,以此提取步態特征.
假設給定一個具有N個行人的步態序列數據集{Si},其中每個行人的標簽定義為yi,i∈{1,2,…,N}.對于行人i,定義其步態序列為取自某視角下的一組連續步態輪廓圖像,Si={xij|j=1,2,…,nf},即Si代表行人i的一個步態序列,另外,定義S+i表示與樣本序列Si標簽相同的樣本序列,S-i表示與樣本序列Si標簽不同的樣本序列,提出的步態識別模型如圖2所示.該模型主要由編碼器、生成器和判別器構成.編碼器將步態序列轉換為潛在空間中的步態特征向量,同時使用triplet-loss損失函數確保具有不同標簽的樣本在潛在空間中的分布盡可能遠離;生成器G將一組潛在空間中的步態特征向量生成固定視角的步態輪廓序列;判別器主要由2部分組成,即真偽判別器和步態幀連續判別器,它們分別用于判斷生成序列^S的真偽和生成的步態序列的連續性.

圖2 步態識別模型Fig.2 Gait recognition model
為了抽取與視角無關的步態特征,在步態識別模型中,編碼器使用了卷積神經網絡對步態序列進行編碼,它主要由4個卷積層和1個全連接層構成,其輸入為1個n×64×64的步態圖像序列,其中n是步態序列的幀數,通過編碼器將步態序列映射到潛在空間,該編碼器的結構如圖3左半部分所示.
假設Si為一個步態序列,將步態序列中的每幀圖像作為編碼器的輸入,通過編碼將得到潛在空間中的一個向量,而該步態序列可以轉換為潛在空間中的特征向量集合Veci,即

其中E(·)為編碼器.使用max函數對潛在空間中的特征向量集合Veci中每個向量計算每一維度上的最大值,從而獲得步態序列在潛在空間中的向量表示.為了盡可能保留更多的步態識別信息,訓練中使用triplet-loss損失函數最大化具有不同標簽的樣本之間在特征空間中的距離,而具有相同標簽的樣本在特征空間中的距離盡可能接近.

圖3 模型結構Fig.3 Model structure
生成器目標是將編碼器編碼后獲得的向量集生成固定視角的盡可能真實的步態輪廓圖像.生成器由4個反卷積層組成,反卷積操作能夠將低維特征向量采樣為高維的數據[15],生成器結構如圖3右半部分所示.當一個任意視角、任意穿著與攜帶下的步態圖像序列Si輸入編碼器將得到1組潛在空間中的特征向量Veci,將該組的每一個向量通過生成器生成1張固定視角且正常條件下的二值步態輪廓圖像,從而獲得1個固定視角下的步態圖像序列^Si.
判別器主要包括真偽判別器與步態幀連續判別器,主要功能如下:
1)真偽判別器
真偽判別器是由包含4個卷積層和1個全連接層的卷積神經網絡構成,它的輸出是0到1的值,用于表示輸入圖像接近于固定視角下真實步態圖像的程度.真偽判別器的結構如圖4所示.在訓練中,真偽判別器每次判斷一張圖像的真偽和視角,通過判別生成步態序列^S中的每一幀圖像是否真實,可以得到一組真偽損失,對該組損失進行平均從而獲得步態序列^S的真偽損失.

圖4 真偽判別器結構Fig.4 Structure of authenticity discriminator
2)步態幀連續判別器
步態幀連續判別器實際上是一個由4個卷積層和1個全連接層的卷積神經網絡構成,該網絡結構如圖5所示.對于此判別器,在訓練模型時需要先預先訓練.其訓練過程是從1個步態序列樣本中任意選取3幀步態輪廓圖像送入步態幀連續判別器,如果該3幀步態圖像在時間順序上連續,則判別器的輸出為真,詳細訓練過程見算法Dtrain.當完成該判別器的訓練后,即可開始訓練步態識別模型.也就是說,對于^Si中的每一幀圖像,依次判斷它是否與前后各幀圖像在時間順序上連續.利用此種方法,對于步態序列將得到一組幀連續損失,然后對這組損失求平均從而得到步態序列的幀連續損失.

圖5 步態幀連續判別器結構Fig.5 Gait frame continuous discriminator structure
步態幀連續判別器算法Dtrain
輸入:t=0;初始化步態幀連續判別器參數W;學習率η;訓練輪數T;每個樣本循環的次數ntimes;D(·)表示步態幀連續判別器.
輸出:步態幀連續判別器參數W.

在步態識別模型的訓練中,主要涉及2種類型的損失函數,它們分別為編碼器產生的Triplet損失和判別器產生的判別損失.
1)Triplet 損失函數
Triplet 損失函數是由Florian等[20]提出,通過合頁損失(hinge loss)能夠減少所查樣本與正例樣本間的特征距離,并且增大所查樣本與負例樣本間的特征距離.模型中使用的triplet 損失函數定義如下:

其中E(·)是編碼器,fmax(·)函數為對一組潛在空間中的向量求每一維度上的最大值后形成的向量.
2) 判別損失函數
判別損失來源于2種判別器所產生的損失,一種是由真偽判別器產生的損失,另一種是由步態幀連續判別器所產生的損失.對于2個判別器,它們所產生的損失定義為

其中G(·)和E(·)分別代表生成器和編碼器,D1(·)為真偽判別器,D2(·)為步態幀連續判別器.Sf表示同一行人采集固定視角下的真實步態序列.
步態識別模型的總體損失函數定義為

為了驗證提出方法的有效性,實驗中選取了步態數據庫CASIA-B與OU-MVLP.Dataset-B數據集由中科院自動化所采集,由124個行人步態樣本組成.每個行人的步態樣本有3種行走狀態,每種行走狀態有11個視角.OU-MVLP是一個樣本數量較多的步態數據集,包含10 308個行人.通過使用7個不同視角的攝像機對行人采集2次得到14個視角,之后再重復一次共得到288 596條步態圖像序列.實驗中輸入的步態輪廓圖像被裁剪成64×64大小,每個步態序列所包含的連續幀數為16.編碼器的每層卷積核的大小均為4×4個像素,卷積步長為2,通過一個全連接層將編碼器提取的特征投影到256維的潛在空間中.生成器組件則是將利用潛在空間中的特征向量生成步態圖像,通過反卷積操作將得到視角轉換后的步態圖像序列.在步態識別模型的訓練中,學習率為10-4,迭代次數為600 000,分類器使用最近鄰分類算法.
針對CASIA-B數據集,選取前74個行人樣本作為模型的訓練集,其余的50個行人樣本作為測試集.在測試過程中,取測試集中每個行人正常行走姿態的前4條序列作為標簽已知的匹配庫樣本(即gallery樣本),剩余2條正常姿態的序列作為標簽未知的待識別樣本(即probe樣本).數據集包含11種不同視角,將特定視角的匹配庫樣本和待識別樣本進行了交叉組合,共獲得121種視角組合.實驗過程中分別對正常行走、攜帶背包行走、穿著大衣行走3種狀態的2條行走序列進行識別,以此測試模型的識別準確率.實驗結果如表1~3所示,其中表的每一行對應匹配庫樣本圖像的視角,每一列對應待識別樣本圖像的視角.

表1 CASIA-B數據集在正常條件下的跨視角識別準確率Tab.1 CASIA-B dataset cross-view recognition accuracy under normal conditions%

表2 CASIA-B數據集在攜帶背包條件下的跨視角識別準確率Tab.2 CASIA-B dataset cross-view recognition accuracy under carrying bag conditions%

表3 CASIA-B數據集在穿著大衣條件下的跨視角識別準確率Tab.3 CASIA-B dataset cross-view recognition accuracy under wearing cloak conditions%
對于OUMVLP數據集,將前5 153個樣本作為模型的訓練集,剩余的5 154個樣本作為測試集.在測試過程中,將編號為00的步態圖像序列作為標簽已知的匹配庫樣本(gallery樣本),編號為01的步態圖像序列作為標簽未知的待識別樣本(probe樣本).通過將數據集中14種不同視角進行交叉組合得到196種視角的組合.實驗結果如表4所示.

表4 OU-MVLP數據集的識別準確率Tab.4 Recognition accuracy of OU-MVLP dataset%
由表1~4可以看到,當步態視角為90°時,獲得了較高的識別率,在表1~4 中它們分別為100%、99.02%、97.06%和96.66%.
同時針對CASIA-B數據集對提出的模型進行了比較實驗,實驗中使用前62個行人樣本作為模型的訓練集,剩余樣本作為測試集.與Gait GAN[11]、MGANs[21]和SPAE[22]方法進行了對比,實驗結果如表5所示,其中每行數據為Gallery集中0~180°的每個視角與Probe中0~180°所有視角下識別準確率的平均值.

表5 不同方法的比較Tab.5 Comparison of different methods%
實驗結果表明,在正常行走和穿著大衣行走的條件下,提出的方法其識別率高于GaitGAN、MGANs和SPAE 3種方法;而在攜帶背包條件下,提出的方法其識別率高于Gait GAN 和SPAE 2種方法,且略低于MGANs方法.
針對跨視角步態識別問題,提出了一個步態識別模型,將步態序列作為模型的輸入,通過使用真偽損失和連續幀判別損失,利用生成器生成視角轉換后的連續步態序列,迫使編碼器提取含有時間信息且不隨視角改變的步態特征.同時引入triplet-loss損失函數,使得不同樣本在潛在空間中的嵌入具有更好的可區分性.在識別時,將待識別行人的步態序列通過編碼器提取一組潛在空間上的特征向量,將這組向量在每個維度求極大值得到能夠表示行人步態序列的一個特征向量,并使用最近鄰方法得到Probe樣本的標簽,通過實驗驗證了提出的方法在CASIA-B和OU-MVLP數據集上的有效性,并且在步態條件改變時具有一定的魯棒性.