王紅茹, 苑浩然
(哈爾濱工程大學 信息與通信工程學院, 哈爾濱 150001)
步態(tài)特征是一種重要的人體生物特征,基于步態(tài)特征的識別技術(shù)與傳統(tǒng)的生物識別技術(shù)如虹膜識別,指紋識別,面部識別[1]等相比具有識別距離遠、對分辨率要求較低、以及無需目標配合等優(yōu)勢.近些年來,基于視頻序列的步態(tài)識別技術(shù)相繼被提出,因為視頻序列中可以包含整個行走過程中的全部信息.基于上述兩種問題,本文提出利用目標的步態(tài)視頻序列合成步態(tài)能量圖作為識別載體,基于深層卷積神經(jīng)網(wǎng)絡(luò)來進行特征提取與分類的步態(tài)識別方法.步態(tài)視頻序列中包含目標整個行走過程中的全部信息,步態(tài)能量圖(Gait energy image, GEI)[2]是將一個步態(tài)周期內(nèi)的步態(tài)圖像加權(quán)平均得到的.GEI充分利用了步態(tài)序列之間的連續(xù)性和動態(tài)性,同時減少了輸入計算量,提高了特征提取效率.利用多組標記好身份的GEI組成數(shù)據(jù)集,通過卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks,CNNs)[3]提取出訓練集中的高級步態(tài)特征,根據(jù)這些特征找到與待測目標最為相似的身份標簽是最高效的步態(tài)識別方法.
卷積神經(jīng)網(wǎng)絡(luò)算法在圖像分類領(lǐng)域有著卓越的表現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)通過多層卷積操作提取出圖像中的高級特征,并通過反向傳播算法不斷更新卷積核中的參數(shù)完成對數(shù)據(jù)集中不同對象的特征的學習[4].相比于傳統(tǒng)圖像分類算法深度學習技術(shù)可以將特征提取與識別分類相結(jié)合,提高算法的應(yīng)用效率.Yan[5]等首先提出將步態(tài)能量圖與CNN 結(jié)合的步態(tài)識別算法,該方法可以提取步態(tài)能量圖中的非線性高級特征, 并引入多任務(wù)學習模型,極大的優(yōu)化了步態(tài)識別算法性能.但受網(wǎng)絡(luò)層數(shù)限制,對有遮擋條件下的識別效果有限.Li[6]等提出一種基于深度學習 VGG-19 網(wǎng)絡(luò)的識別方法,這是一種深層的卷積神經(jīng)網(wǎng)絡(luò)模型.步態(tài)序列經(jīng)過周期檢測后直接送入 VGG 網(wǎng)絡(luò)進行特征提取, 最后利用聯(lián)合貝葉斯進行步態(tài)識別,該方法提高了對遮擋條件下的識別準確率.
為了解決跨視角下的步態(tài)識別問題,Tan[7]等提出將GEI 送入使用雙通道卷積神經(jīng)網(wǎng)絡(luò)訓練匹配模型, 兩個通道共享參數(shù),通過比對探針(Probe)與圖庫(Gallery)中不同視角下的特征相似度達到匹配步態(tài)特征來識別人的身份的目的. 提高了應(yīng)對視角改變后識別的魯棒性.Wolf[8]等利用3D卷積神經(jīng)網(wǎng)絡(luò),充分利用步態(tài)序列中的時空特性,提高跨視角識別能力.Cao[9]等在步態(tài)識別中加入了嚴謹?shù)臅r序維度特征,使用MGP(Multilayer Global Pipeline)模塊融合不同卷積層的輸出信息,增加模型感受野.
上述研究者所提出的算法在特定的數(shù)據(jù)集上都達到了理想的識別效果,證明步態(tài)能量圖與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的高效性.同時利用卷積神經(jīng)網(wǎng)絡(luò)的步態(tài)識別算法存在著統(tǒng)一的弊端,如隨著模型的復雜化造成的運算量增加,難以部署在嵌入式設(shè)備上.
對于模型輕量化的設(shè)計主要方法有:減少計算量,減少訓練參數(shù),降低實際運行時間以及簡化底層實現(xiàn)方式四個方面.研究者相繼提出了深度可分離卷積, 分組卷積, 可調(diào)超參數(shù)降低空間分辨率和減少通道數(shù), 新的激活函數(shù)等方法[10], 并針對一些現(xiàn)有的結(jié)構(gòu)的實際運行過程作了分析, 提出了架構(gòu)設(shè)計原則,并根據(jù)這些原則來重新設(shè)計模型.
模型修剪(pruning connections)是通過將神經(jīng)元間不必要的鏈接剪除[11]以縮減參數(shù)達到壓縮模型的目的.量化模型(Model quantization)將具有代表性的權(quán)值和激活函數(shù)做量化處理[12],有利于模型的壓縮和提高訓練速度.知識蒸餾(Knowledge dis-tillation)利用大模型來教小模型,提高了小模型的性能.這些方法一定程度上解決了深度學習模型的輕量化問題,但對模型的性能并沒有提高.
網(wǎng)絡(luò)層數(shù)的加深雖然可以提高的特征空間的豐富性,卻稀釋了有效的特征信息導致識別效果反而下降等問題.此外,目前現(xiàn)有的步態(tài)數(shù)據(jù)集多為小樣本數(shù)據(jù)集,在訓練過程中容易產(chǎn)生過擬合的情況.本文針對以上問題分別做出卷積過程和模型結(jié)構(gòu)上的優(yōu)化,實現(xiàn)了網(wǎng)絡(luò)模型輕量化,有效地提高了模型的復雜條件下識別能力.
本文從目標的行走視頻中通過一系列圖像處理的方式得到目標的步態(tài)能量圖,并根據(jù)一定比例劃分出訓練集和測試集.對新的L-ResNet-50模型進行優(yōu)化訓練,直至模型收斂,再利用測試集驗證模型的識別效果,整體的算法框架如圖1所示.
圖1 基于L-ResNet-50的步態(tài)識別算法框架Figure 1 Gait recognition algorithm framework based on L-ResNet-50
首先使用上文提到的步態(tài)能量圖作為卷積神經(jīng)網(wǎng)絡(luò)模型的學習對象.合成GEI圖像首先是從原始視頻中利用背景消減法提取出步態(tài)目標.再對提取出的目標做一系列形態(tài)學的處理,生成理想的目標剪影圖像.通常采用步態(tài)周期來表示步態(tài)能量,步態(tài)能量可以反映人體步行過程中的步態(tài)靜態(tài)信息和動態(tài)信息.根據(jù)每個像素點在同一位置出現(xiàn)的頻率設(shè)置相應(yīng)的像素值,反應(yīng)人體行走過程中的能量信息.合成GEI公式如下:
(1)
其中:N代表一個步態(tài)周期內(nèi)的所有圖像,It是一張步態(tài)圖像,t則代表幀數(shù).由GEI組成訓練集和測試集如圖2所示.
圖2 由步態(tài)能量圖組成的訓練集和測試集Figure 2 GEI samples of training and test set
通過對CNN的特征圖可視化操作本文發(fā)現(xiàn),一個卷積層生成的特征圖中存在大量的相似特征圖.圖3是一張步態(tài)能量圖在卷積操作后一組的輸出示例,這組特征圖中存在彼此相似的情況.如這些相似的特征圖之間存在誤差允許內(nèi)的相關(guān)性,便可以利用簡單的操作從一部分基礎(chǔ)的特征圖中變換而來.相比于復雜的卷積過程這些簡單的操作并不需要占用大量計算資源,在反向傳播算法中也只需要更新生成基礎(chǔ)特征圖的卷積核參數(shù),以此縮小訓練參數(shù)規(guī)模.
圖3 ResNet-50的第一卷積層獲得的部分特征圖Figure 3 Output of partial feature graph of ResNet-50
根據(jù)上述理論,本文設(shè)計一種新的輕量化的卷積方法,同樣將卷積過程分為兩部分:第一部分為傳統(tǒng)的卷積操作,但是只生成部分基礎(chǔ)特征圖;第二部分是利用這些基礎(chǔ)的特征圖通過線性變換派生出冗余的特征圖.該操作將一個傳統(tǒng)卷積過程分為這兩部分的具體步驟如圖4所示.
圖4 輕量化操作的基本結(jié)構(gòu)Figure 4 Lightweight residual module
進一步分析輕量化操作對模型參數(shù)量的影響.假設(shè)我們在一卷積層中原本輸出為c個通道的特征圖,而新的輕量化操作只需要生成 個基礎(chǔ)特征圖,剩下的特征圖由(s-1)組簡單的線性操作完成.則原卷積層與輕量級處理后的卷積層參數(shù)比R如式(2)所示:
(2)
其中:⊕代表將兩部分特征圖相加的操作;s-1則代表不需要訓練的參數(shù)部分.理論上這一卷積層在輕量化處理后需訓練的參數(shù)量縮小了約s倍.
近些年來注意力機制被廣泛的應(yīng)用于CNN算法當中,SENet[13]作為一種基于注意力機制的深度學習模型是當年ImageNet比賽的冠軍.它主要由Squeeze部分和Excitation部分組合而成,具體結(jié)構(gòu)如圖5所示.
圖5 SENet的基本工作原理Figure 5 Basic working principles of SENet
Squeeze(壓縮)部分,原始特征圖的維度為H*W*C,C是通道數(shù).壓縮過程是把H*W*C壓縮為1*1*C,相當于把H*W變成一個一維的序列,實際操作中一般是用global average pooling實現(xiàn)該目的.H*W壓縮成一維后,這一維參數(shù)獲得了之前H*W全局的視野,感受區(qū)域更廣.Excitation(激發(fā))部分,在得到Squeeze的1*1*C的表示后,加入一個FC全連接層(Fully Connected),對每個通道的重要性進行預(yù)測,得到不同channel的重要性大小后再作用激勵到之前的feature map的對應(yīng)channel上.
將SENet的思想設(shè)計成SEmodule,插入到輕量化網(wǎng)絡(luò)的關(guān)鍵輸入節(jié)點,成為輕量化模塊的基礎(chǔ)特征圖的選擇機制,提高了關(guān)鍵特征的利用率并保證這些特征不會隨著模型深度的增加而被稀釋.
為了實現(xiàn)對基礎(chǔ)特征圖的再卷積,本文使用深度可分離卷積[14]中的Depthwise卷積操作.Depthwise convolution的一個卷積核只負責一個通道,一個通道只被一個卷積核卷積,具體操作如圖6所示.
圖6 使用Depthwise卷積生成冗余特征圖Figure 6 Specific Depthwise of the lightweight module
利用再卷積操作使派生出的特征圖更接近原始的特征圖,有效保留特征圖中的步態(tài)信息.Depthwise卷積核中的參數(shù)只需要完整訓練一次,當模型收斂后凍結(jié)卷積核中的參數(shù),成為模型的固定參數(shù)反復使用.
由于輕量化模塊使用的是利用簡單的線性操作來生成冗余的特征圖,深層次特征圖的失真情況不可避免.本文引入殘差網(wǎng)絡(luò)[15](ResNet)的架構(gòu)思想,在每個輕量化模塊中引入一條“捷徑”,通過恒等映射的方式將上一層輸出的信息傳輸?shù)胶竺娴膶又?保護了初始信息的完整性,改善了深層卷積時的特征圖失真問題.通過優(yōu)化輕量級模塊的最終結(jié)構(gòu)如圖7所示.
圖7 輕量級模塊的結(jié)構(gòu)示意圖Figure 7 Structure diagram of a lightweight module
利用優(yōu)化后的輕量化模塊,通過堆疊的方式組建成深層的卷積神經(jīng)網(wǎng)絡(luò).同樣是效仿ResNet-50的框架結(jié)構(gòu),用輕量化模塊代替原來的殘差塊.第一層為標準的卷積操作生成16個通道的特征圖,后續(xù)使用輕量化模塊串聯(lián)的方式擴展通道數(shù).最后利用全局平均池和卷積層將特征圖轉(zhuǎn)換為全連接層以進行分類識別.由此組合成的輕量化ResNet模型本文稱為L-ResNet(Light ResNet)的基本設(shè)計如表1.
表1 輕量化網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
本文使用新模塊構(gòu)建的L-ResNet模型在主流的步態(tài)數(shù)據(jù)集上完成實驗,檢驗?zāi)P筒煌瑮l件下的識別效果.
實驗基于中科院CASIA-B[16]數(shù)據(jù)集,該數(shù)據(jù)集包含124個人步態(tài)序列,每個人物下有10組行走序列:6組正常情況(nm),2組穿著大衣情況(cl)以及兩組背包情況(bg).每種情況下又包含了11種不同的視角下的步態(tài)序列(0°,18°,36°,…,180°).為了驗證模型的泛化能力,使用大阪大學的OU-ISIR[17]步態(tài)數(shù)據(jù)庫檢驗測試效果.選取數(shù)據(jù)庫中50個身份的四個視角下正常行走的步態(tài)視頻合成步態(tài)能量圖,每個身份合成四張,其中:兩張作為訓練集,兩外兩張用于測試.
3.2.1 比例參數(shù)性能驗證
收集了正常行走條件下三種不同的基礎(chǔ)特征圖與冗余特征圖的比例下的實驗數(shù)據(jù)(s=1,s=2,s=3),包括識別率,需訓練參數(shù)量和浮點運算量.模型的參數(shù)計算與浮點運算量計算公式如式(3)、(4)所示.Param代表參數(shù)數(shù)量,FLOPs代表浮點運算量,每種計算量均分為卷積層(conv)和全連接層(fc)大小兩部分.實驗結(jié)果與原始的ResNe-50模型在這三個維度進行了對比試驗.對比結(jié)果如表2所示.
paramconv=(kw*kh*cin)*cout+cout
paramfc=(nm*nout)+nout
(3)
FLOPsconv=[(kw*kh*cin)*cout+cout]*H*W
FLOPsfc=(nin*nout)+nout
(4)
表2 三種不同比例與原始ResNet-50模型比對
根據(jù)表2分析,當基礎(chǔ)特征圖與冗余特征圖的比例為1∶1時( =1)識別效果最好,超過了原始的ResNet網(wǎng)絡(luò),參數(shù)量與浮點計算量縮減幅度接近50%.而當 繼續(xù)增大,模型的參數(shù)量會繼續(xù)大幅度縮減,識別效果卻不理想,分析原因可能是基礎(chǔ)特征圖過少造成的特征圖失真.綜上所述s=1時,模型的識別效果最為理想,超過原始模型且參數(shù)量較小.在相同超參數(shù)的情況下模型所需要的訓練時間更短,而在loss曲線的收斂效果上新的輕量級網(wǎng)絡(luò)優(yōu)于傳統(tǒng)的ResNet-50網(wǎng)絡(luò),圖8為L-ResNet模型在訓練和測試時的損失函數(shù)曲線.
圖8 兩種網(wǎng)絡(luò)的loss曲線Figure 8 Loss function
3.2.2 比例參數(shù)性能驗證
該部分實驗分別驗證了模型對遮擋條件下和跨視角條件下的步態(tài)識別能力.驗證有遮擋條件下的識別效果時訓練集選取124組步態(tài)能量圖,測試集分為攜帶挎包的能量圖以及穿著大衣的能量圖,測試兩種情況下的識別率;驗證跨視角條件下的識別效果則是選取100個步態(tài)目標的所有步態(tài)能量圖組成訓練集,剩余24個目標每個角度下選取四張正常行走能量圖作為模板圖像集,剩余的24組能量圖組合成測試集.跨視角測試中會生成121個識別結(jié)果,平均識別率是這121個結(jié)果的平均值.表3為正常行走條件時的跨視角識別率,表4攜帶背包條件下的跨視角識別率,表5為穿著大衣條件下的跨視角識別率.
本節(jié)利用OU-ISIR[17]步態(tài)數(shù)據(jù)集檢驗該模型的泛化能力.選取數(shù)據(jù)集中50個步態(tài)目標,每個目標包含四個不同的視角(55°,65°,75°,85°),將標記好的GEI隨機分為五組,每次實驗保持一組用來測試,其余四組用來訓練網(wǎng)絡(luò).最終的平均識別率如表6所示.實驗結(jié)果表明新的輕量化模型對不同數(shù)據(jù)集的泛化能力非常出色.
表3 正常行走跨視角識別率
表4 攜帶背包條件下行走跨視角識別率
表5 穿著大衣行走條件下跨視角識別率
表6 在OU-ISIR步態(tài)數(shù)據(jù)集上獲得的跨視角識別結(jié)果
本文提出了一種使用注意力機制選取主要的提出步態(tài)特征圖,再利用無需訓練的簡單線性操作生成冗余特征圖的思想搭建了新型的輕量化深層卷積神經(jīng)網(wǎng)絡(luò)模型.該模型有效提高了復雜條件下步態(tài)識別效果,同時減少了模型參數(shù)量,使得本文方法可以在普通的嵌入式設(shè)備上應(yīng)用.