葉 鋒,劉天璐,李詩穎,華篤偉,陳星宇,林文忠
1(福建師范大學 數學與信息學院,福州 350117)
2(數字福建大數據安全技術研究所,福州 350117)
3(閩江學院 福建省信息處理與智能控制重點實驗室,福州 350108)
行人重識別(Person Re-Identification,Re-Id)主要是指從視頻監控系統中找到特定的行人目標,根據行人諸如衣著、姿勢、發型、外在裝飾等特征判定是否為同一人.自從2006年CVPR (IEEE Conference on Computer Vision and Pattern Recognition)會議首次提出行人重識別[1]的概念后,越來越多研究者投入到該領域的研究[2].行人重識別在實際場景中判斷時,存在外在環境、行人姿態、衣著等多方面特征的多變性影響,從而導致在使用視頻圖像中提取的特征進行相似度的判定難度很大,所以行人重識別仍是充滿挑戰和亟待研究的熱點課題.
行人重識別主要分為兩大部分:特征提取和度量學習[3].一是對于行人視頻中的幀圖像進行行人檢測和特征提取;二是利用提取的特征進行度量學習,對目標與行人之間的相似性進行度量.卷積神經網絡是深度學習在計算機視覺領域最具代表性的模型之一,可以直接輸入原圖像提取特征的特點,從而可以避免復雜的預處理過程,進而提高識別效率.結合深度學習,諸多學者特征提取和度量學習方面提出了許多新型的行人再辨識方法.如Liao 等人[4]將HSV 顏色直方圖和SILTP (Scale Invariant Local Ternary Patter)紋理特征描述子聯合起來作為度量學習的特征描述子,其經過最大池化后更加穩定,此外他們還提出跨視角二次判別(Cross-view Quadratic Discriminant Analysis,XQDA)一種新的度量學習方法;Hinton 等人[5]提出在CNN 中應用Dropout算法[6],可以有效降低過擬合現象發生概率.同時,Siamese 模型[7]能有效將特征提取和度量學習融合,統一進行訓練,以顯著提高識別效率.Varior 等[8,9]在改進型循環神經網絡(Recurrent Neural Networks,RNN)長短期記憶網絡(Long Short-Term Memory,LSTM)[10]基礎上,利用其可對視頻序列進行處理且具有記憶特征信息的特性,將其和孿生網絡結合進行識別,可以顯著提高重識別效率和檢測準確率.上述方法均在不同程度上對CNN 作了改進,比如將特征提取和度量學習相結合,或者將Siamese 和LSTM相結合,但是仍然存在一些問題.同時,由于各自所采用的數據集樣本數量不一,訓練出來的模型也大大不同,使得識別的準確率有所差異、泛化能力不強.
結合Siamese 網絡,本文提出了一種改進的行人重識別方法.首先采用Dropout算法改進CNN 神經網絡的全連接層,以降低過擬合發生概率.之后利用兩個權值共享的CNN 神經網絡的Siamese 網絡,對輸入的兩張圖片作特征提取.對提取的圖像特征使用馬氏距離作為相似度匹配的度量指標,并輸出相應圖片對的相似度,最后在Market-1501 測試集上進行測試,實驗結果表明,提出的算法在一定程度上提高了行人重識別的性能.
基于上述分析,提出一種基于Siamese 網絡的Re-Id算法.其總體框架如下:首先在CNN 神經網絡的全連接層加入Dropout算法,對神經元的激活值設置停止工作的概率,改變原來每個神經元順次連接的結構,達到連接隨機稀疏化的效果,降低網絡的過擬合現象發生率.再以孿生網絡結構為基礎,構建由兩個完全相同且參數共享的子網絡組成的倒V 型結構(包含兩個輸入和一個輸出)分別用來提取兩個行人圖片特征并輸出相似度度量結果,此外該并行網絡可以同步對輸入圖片提取特征.最后,通過求取馬氏距離的算法,計算輸入圖像對之間的匹配相似度.
1.2.1 Dropout算法
過擬合是在神經網絡模型訓練學習過程中一個亟待解決的問題.在CNN 神經網絡中運用Dropout算法則可以有效降低模型過擬合發生概率.具體體現在訓練過程中加入Dropout 平均稀疏模型間的組合[11],忽略一般的隱層節點,從而減少神經網絡節點間的相互作用和聯結匹配,減緩過擬合,可以使行人重識別的準確性得到了較大的提升.
Dropout 就是讓一些神經元以一定概率停止工作,從而增強神經網絡模型的魯棒性,降低網絡過擬合現象發生率.圖1(a)為全連接時的神經網絡模型,而圖1(b)為加入Dropout 后的網絡模型示意圖.可以看出全連接情況下,神經元間進行無間斷的連接,而加入Dropout 后神經元間變成間斷且稀疏的連接結構.

圖1 加入Dropout 層前后神經網絡模型
1.2.2 基于Dropout算法的CNN 模型改進
利用Dropout 改進CNN 的流程如圖2 所示.首先利用快速排序算法Sort(a,b,greater)對各個神經節點輸入數組B 進行降序排序,排序后記為ai;然后根據排序由大到小,利用伯努利概率分布函數,對節點有條件的分配不同隱藏率(為了簡化結構,加快識別速度,在圖2 中,將所有節點分成了3 個部分,按分配順序設置不同的隱藏率).式(1)如下,其中n 為神經元數量,ratio 為初始設置的稀疏值.

根據公式(1)生成的結果,再利用公式Bi?Bernoulli(P)i(Bi=ai)獲得神經節點值.最后結合輸入的稀疏值,對節點的連接與否進行控制,從而可以有效控制神經元的發生率,即隨機舍棄某些神經元.

圖2 基于Dropout算法改進的CNN 流程
Siamese Network 也稱孿生網絡,是一種相似性度量方法.它從輸入行人圖像中提取特征,再利用特征向量計算相似度.
如圖3 所示,Siamese 網絡的“連體”是通過權值共享來完成的.孿生神經網絡確定兩個輸入Input1 和Input2,將兩個輸入分別送入兩個神經網絡Network1和Network2,再將對應的輸入映射到新的空間,形成輸入行人圖像在新的空間中的表示.最后,通過在目標空間應用距離度量算法進行相似度損失(Loss)的計算,比較兩個輸入的相似度.

圖3 Siamese 網絡
本算法具體實現過程中,兩個子網絡Network(1,2)都采用ResNet-50[6]預訓練網絡作特征提取.首先加載數據集,用ImageNet 數據集預訓練過的模型ResNet-50 進行參數微調以適應行人重識別的任務,訓練過程中兩個卷積模型權值共享.利用Siamese 網絡框架將兩種卷積網絡組合起來并且參數共享,不僅可以對輸入的兩個行人圖像提取特征進行相似度計算[11],判斷是否為同一人,還可以用于分類和特征學習.
為了提高訓練的效率和識別的準確率,需對全連接層進行替換變更.由實驗設定卷積網絡參數,對輸入圖像作卷積進行提取特征,計算已提取的特征向量間的馬氏距離進行相似度匹配,以判斷是否為同一行人.
馬氏距離度量學習算法[12]是一種基于馬氏距離的線性學習算法,通過在樣本集中尋找矩陣,計算兩個輸入之間的馬氏距離,以作為樣本相似度的評價指標.在學習過程中,對樣本間距離進行線性變換,用式(2)作為損失函數:

在模型設計過程中,考慮到姿勢、光照、遮擋等多方面原因[13],計算馬氏距離時利用局部線性嵌入,對特征相似性度量施加一定程度的限制.此外,CNN 網絡提取的特征還需要經過最大池化實現降維,一定程度降低整個網絡的計算復雜度.降維后的特征向量用來計算檢索圖像對的馬氏距離,同時作為在此情況下最小的逼近誤差.利用最大似然估計求最優解,即:

求解過程中要保持在低位空間重構數據,滿足式
(4)的限制條件:

按升序排序的特征值對應的特征向量,求得:

計算梯度前,先按照式(6)計算誤差:

之后按照式(7)和式(8)計算梯度值:

在進行行人輸入圖像對相似度匹配驗證時,先以高維特征為基礎計算樣本間的馬氏距離,然后計算行人圖像對的驗證損失.最后的實驗結果表明,本文所提出的算法確實可以在一定程度上提高行人重識別的精度.
本文所提出的算法利用Pytorch 框架實現,所采用主要擴展庫包括:Numpy,Scipy,Pandas,Matplotlib 等.
實驗使用清華大學于2015年公開的Person Re-id數據集:Market-1501[12].Market-1501 數據集中的行人圖像是在夏季清華大學校園中采集,總共有1501 個行人、32 668 個已標注的行人矩形框.訓練集采集了751 人的數據,共12 936 張圖像;測試集采集了750 人的數據,共19 732 張圖像,平均每個人有26.3 張測試數據.
輸入大小為256×128×3 的樣本,經過神經網絡提取特征,輸出大小為1×1×2048 的特征向量.最后訓練參數設置為:一次訓練的樣本數目是128,最大迭代次數70,學習率3e-4.同時在迭代過程中,利用隨機梯度下降算法對模型參數進行更新.
最后對模型進行測試,輸入Market-1501 數據集的測試數據并驗證模型是否有效,Rank-1、mAP 指標如表1 所示.其中,Rank-i 為搜索結果中最靠前(置信度最高)的i 張圖有正確結果的概率.AP 為PR (Precision-Recall,查準率和查全率)曲線下的面積,mAP(如式(9)所示)是對所有類的AP 值取平均,其更加全面衡量ReId算法效果的指標;mAP 要求將檢索圖片與被檢索圖片都匹配正確.

表1 提出的算法與其他算法的對比

本文提出的算法在Market1501 數據庫上的Rank-1 為83.2%,Rank-5 為82.2,mAP 為69.2%,與Verif-Identi[14]、GAN[15]、DNS[16]等算法相比具有一定的優勢.
實際應用時輸入檢索圖像,模型將輸入的行人圖像與圖庫的圖像進行相似度匹配,輸出顯示可能是同一行人的檢索結果,如圖4 所示,綠色邊框圖像代表識別結果為同一個人的行人,紅色邊框圖像代表識別結果不是同一個人的行人.

圖4 行人識別結果圖
從表1 可以看出,算法在本系統的執行運行時間相比于文獻[15,16]的算法用時更短.主要原因在于雖然在訓練模型上耗時較長,但傳輸用時和提取特征用時更短.從實驗結果圖可以看到,識別正確率較高,但仍存在錯誤識別的情況,本系統仍需要訓練更多的數據集以完善模型,提高正確率.
本文提出一種改進CNN 神經網絡進行行人重識別的方法,先在CNN 神經網絡中加入Dropout算法降低過擬合發生概率,再利用改進后的神經網絡與Siamese 網絡框架融合的神經網絡對圖片進行特征提取,實驗結果表明識別準確率顯著提高.在實驗過程中,基于現有設備的條件,我們僅在現有的數據集中選擇了Market-1501 數據集進行實驗,因此模型的泛化和結果的準確率有一定的誤差.希望在接下來的學習過程中,可以改進模型結構增加數據量,提高模型的泛化性.