葉 鋒,劉天璐,李詩穎,華篤偉,陳星宇,林文忠
1(福建師范大學(xué) 數(shù)學(xué)與信息學(xué)院,福州 350117)
2(數(shù)字福建大數(shù)據(jù)安全技術(shù)研究所,福州 350117)
3(閩江學(xué)院 福建省信息處理與智能控制重點(diǎn)實(shí)驗(yàn)室,福州 350108)
行人重識(shí)別(Person Re-Identification,Re-Id)主要是指從視頻監(jiān)控系統(tǒng)中找到特定的行人目標(biāo),根據(jù)行人諸如衣著、姿勢、發(fā)型、外在裝飾等特征判定是否為同一人.自從2006年CVPR (IEEE Conference on Computer Vision and Pattern Recognition)會(huì)議首次提出行人重識(shí)別[1]的概念后,越來越多研究者投入到該領(lǐng)域的研究[2].行人重識(shí)別在實(shí)際場景中判斷時(shí),存在外在環(huán)境、行人姿態(tài)、衣著等多方面特征的多變性影響,從而導(dǎo)致在使用視頻圖像中提取的特征進(jìn)行相似度的判定難度很大,所以行人重識(shí)別仍是充滿挑戰(zhàn)和亟待研究的熱點(diǎn)課題.
行人重識(shí)別主要分為兩大部分:特征提取和度量學(xué)習(xí)[3].一是對(duì)于行人視頻中的幀圖像進(jìn)行行人檢測和特征提取;二是利用提取的特征進(jìn)行度量學(xué)習(xí),對(duì)目標(biāo)與行人之間的相似性進(jìn)行度量.卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域最具代表性的模型之一,可以直接輸入原圖像提取特征的特點(diǎn),從而可以避免復(fù)雜的預(yù)處理過程,進(jìn)而提高識(shí)別效率.結(jié)合深度學(xué)習(xí),諸多學(xué)者特征提取和度量學(xué)習(xí)方面提出了許多新型的行人再辨識(shí)方法.如Liao 等人[4]將HSV 顏色直方圖和SILTP (Scale Invariant Local Ternary Patter)紋理特征描述子聯(lián)合起來作為度量學(xué)習(xí)的特征描述子,其經(jīng)過最大池化后更加穩(wěn)定,此外他們還提出跨視角二次判別(Cross-view Quadratic Discriminant Analysis,XQDA)一種新的度量學(xué)習(xí)方法;Hinton 等人[5]提出在CNN 中應(yīng)用Dropout算法[6],可以有效降低過擬合現(xiàn)象發(fā)生概率.同時(shí),Siamese 模型[7]能有效將特征提取和度量學(xué)習(xí)融合,統(tǒng)一進(jìn)行訓(xùn)練,以顯著提高識(shí)別效率.Varior 等[8,9]在改進(jìn)型循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)[10]基礎(chǔ)上,利用其可對(duì)視頻序列進(jìn)行處理且具有記憶特征信息的特性,將其和孿生網(wǎng)絡(luò)結(jié)合進(jìn)行識(shí)別,可以顯著提高重識(shí)別效率和檢測準(zhǔn)確率.上述方法均在不同程度上對(duì)CNN 作了改進(jìn),比如將特征提取和度量學(xué)習(xí)相結(jié)合,或者將Siamese 和LSTM相結(jié)合,但是仍然存在一些問題.同時(shí),由于各自所采用的數(shù)據(jù)集樣本數(shù)量不一,訓(xùn)練出來的模型也大大不同,使得識(shí)別的準(zhǔn)確率有所差異、泛化能力不強(qiáng).
結(jié)合Siamese 網(wǎng)絡(luò),本文提出了一種改進(jìn)的行人重識(shí)別方法.首先采用Dropout算法改進(jìn)CNN 神經(jīng)網(wǎng)絡(luò)的全連接層,以降低過擬合發(fā)生概率.之后利用兩個(gè)權(quán)值共享的CNN 神經(jīng)網(wǎng)絡(luò)的Siamese 網(wǎng)絡(luò),對(duì)輸入的兩張圖片作特征提取.對(duì)提取的圖像特征使用馬氏距離作為相似度匹配的度量指標(biāo),并輸出相應(yīng)圖片對(duì)的相似度,最后在Market-1501 測試集上進(jìn)行測試,實(shí)驗(yàn)結(jié)果表明,提出的算法在一定程度上提高了行人重識(shí)別的性能.
基于上述分析,提出一種基于Siamese 網(wǎng)絡(luò)的Re-Id算法.其總體框架如下:首先在CNN 神經(jīng)網(wǎng)絡(luò)的全連接層加入Dropout算法,對(duì)神經(jīng)元的激活值設(shè)置停止工作的概率,改變?cè)瓉砻總€(gè)神經(jīng)元順次連接的結(jié)構(gòu),達(dá)到連接隨機(jī)稀疏化的效果,降低網(wǎng)絡(luò)的過擬合現(xiàn)象發(fā)生率.再以孿生網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ),構(gòu)建由兩個(gè)完全相同且參數(shù)共享的子網(wǎng)絡(luò)組成的倒V 型結(jié)構(gòu)(包含兩個(gè)輸入和一個(gè)輸出)分別用來提取兩個(gè)行人圖片特征并輸出相似度度量結(jié)果,此外該并行網(wǎng)絡(luò)可以同步對(duì)輸入圖片提取特征.最后,通過求取馬氏距離的算法,計(jì)算輸入圖像對(duì)之間的匹配相似度.
1.2.1 Dropout算法
過擬合是在神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練學(xué)習(xí)過程中一個(gè)亟待解決的問題.在CNN 神經(jīng)網(wǎng)絡(luò)中運(yùn)用Dropout算法則可以有效降低模型過擬合發(fā)生概率.具體體現(xiàn)在訓(xùn)練過程中加入Dropout 平均稀疏模型間的組合[11],忽略一般的隱層節(jié)點(diǎn),從而減少神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)間的相互作用和聯(lián)結(jié)匹配,減緩過擬合,可以使行人重識(shí)別的準(zhǔn)確性得到了較大的提升.
Dropout 就是讓一些神經(jīng)元以一定概率停止工作,從而增強(qiáng)神經(jīng)網(wǎng)絡(luò)模型的魯棒性,降低網(wǎng)絡(luò)過擬合現(xiàn)象發(fā)生率.圖1(a)為全連接時(shí)的神經(jīng)網(wǎng)絡(luò)模型,而圖1(b)為加入Dropout 后的網(wǎng)絡(luò)模型示意圖.可以看出全連接情況下,神經(jīng)元間進(jìn)行無間斷的連接,而加入Dropout 后神經(jīng)元間變成間斷且稀疏的連接結(jié)構(gòu).
圖1 加入Dropout 層前后神經(jīng)網(wǎng)絡(luò)模型
1.2.2 基于Dropout算法的CNN 模型改進(jìn)
利用Dropout 改進(jìn)CNN 的流程如圖2 所示.首先利用快速排序算法Sort(a,b,greater)對(duì)各個(gè)神經(jīng)節(jié)點(diǎn)輸入數(shù)組B 進(jìn)行降序排序,排序后記為ai;然后根據(jù)排序由大到小,利用伯努利概率分布函數(shù),對(duì)節(jié)點(diǎn)有條件的分配不同隱藏率(為了簡化結(jié)構(gòu),加快識(shí)別速度,在圖2 中,將所有節(jié)點(diǎn)分成了3 個(gè)部分,按分配順序設(shè)置不同的隱藏率).式(1)如下,其中n 為神經(jīng)元數(shù)量,ratio 為初始設(shè)置的稀疏值.
根據(jù)公式(1)生成的結(jié)果,再利用公式Bi?Bernoulli(P)i(Bi=ai)獲得神經(jīng)節(jié)點(diǎn)值.最后結(jié)合輸入的稀疏值,對(duì)節(jié)點(diǎn)的連接與否進(jìn)行控制,從而可以有效控制神經(jīng)元的發(fā)生率,即隨機(jī)舍棄某些神經(jīng)元.
圖2 基于Dropout算法改進(jìn)的CNN 流程
Siamese Network 也稱孿生網(wǎng)絡(luò),是一種相似性度量方法.它從輸入行人圖像中提取特征,再利用特征向量計(jì)算相似度.
如圖3 所示,Siamese 網(wǎng)絡(luò)的“連體”是通過權(quán)值共享來完成的.孿生神經(jīng)網(wǎng)絡(luò)確定兩個(gè)輸入Input1 和Input2,將兩個(gè)輸入分別送入兩個(gè)神經(jīng)網(wǎng)絡(luò)Network1和Network2,再將對(duì)應(yīng)的輸入映射到新的空間,形成輸入行人圖像在新的空間中的表示.最后,通過在目標(biāo)空間應(yīng)用距離度量算法進(jìn)行相似度損失(Loss)的計(jì)算,比較兩個(gè)輸入的相似度.
圖3 Siamese 網(wǎng)絡(luò)
本算法具體實(shí)現(xiàn)過程中,兩個(gè)子網(wǎng)絡(luò)Network(1,2)都采用ResNet-50[6]預(yù)訓(xùn)練網(wǎng)絡(luò)作特征提取.首先加載數(shù)據(jù)集,用ImageNet 數(shù)據(jù)集預(yù)訓(xùn)練過的模型ResNet-50 進(jìn)行參數(shù)微調(diào)以適應(yīng)行人重識(shí)別的任務(wù),訓(xùn)練過程中兩個(gè)卷積模型權(quán)值共享.利用Siamese 網(wǎng)絡(luò)框架將兩種卷積網(wǎng)絡(luò)組合起來并且參數(shù)共享,不僅可以對(duì)輸入的兩個(gè)行人圖像提取特征進(jìn)行相似度計(jì)算[11],判斷是否為同一人,還可以用于分類和特征學(xué)習(xí).
為了提高訓(xùn)練的效率和識(shí)別的準(zhǔn)確率,需對(duì)全連接層進(jìn)行替換變更.由實(shí)驗(yàn)設(shè)定卷積網(wǎng)絡(luò)參數(shù),對(duì)輸入圖像作卷積進(jìn)行提取特征,計(jì)算已提取的特征向量間的馬氏距離進(jìn)行相似度匹配,以判斷是否為同一行人.
馬氏距離度量學(xué)習(xí)算法[12]是一種基于馬氏距離的線性學(xué)習(xí)算法,通過在樣本集中尋找矩陣,計(jì)算兩個(gè)輸入之間的馬氏距離,以作為樣本相似度的評(píng)價(jià)指標(biāo).在學(xué)習(xí)過程中,對(duì)樣本間距離進(jìn)行線性變換,用式(2)作為損失函數(shù):
在模型設(shè)計(jì)過程中,考慮到姿勢、光照、遮擋等多方面原因[13],計(jì)算馬氏距離時(shí)利用局部線性嵌入,對(duì)特征相似性度量施加一定程度的限制.此外,CNN 網(wǎng)絡(luò)提取的特征還需要經(jīng)過最大池化實(shí)現(xiàn)降維,一定程度降低整個(gè)網(wǎng)絡(luò)的計(jì)算復(fù)雜度.降維后的特征向量用來計(jì)算檢索圖像對(duì)的馬氏距離,同時(shí)作為在此情況下最小的逼近誤差.利用最大似然估計(jì)求最優(yōu)解,即:
求解過程中要保持在低位空間重構(gòu)數(shù)據(jù),滿足式
(4)的限制條件:
按升序排序的特征值對(duì)應(yīng)的特征向量,求得:
計(jì)算梯度前,先按照式(6)計(jì)算誤差:
之后按照式(7)和式(8)計(jì)算梯度值:
在進(jìn)行行人輸入圖像對(duì)相似度匹配驗(yàn)證時(shí),先以高維特征為基礎(chǔ)計(jì)算樣本間的馬氏距離,然后計(jì)算行人圖像對(duì)的驗(yàn)證損失.最后的實(shí)驗(yàn)結(jié)果表明,本文所提出的算法確實(shí)可以在一定程度上提高行人重識(shí)別的精度.
本文所提出的算法利用Pytorch 框架實(shí)現(xiàn),所采用主要擴(kuò)展庫包括:Numpy,Scipy,Pandas,Matplotlib 等.
實(shí)驗(yàn)使用清華大學(xué)于2015年公開的Person Re-id數(shù)據(jù)集:Market-1501[12].Market-1501 數(shù)據(jù)集中的行人圖像是在夏季清華大學(xué)校園中采集,總共有1501 個(gè)行人、32 668 個(gè)已標(biāo)注的行人矩形框.訓(xùn)練集采集了751 人的數(shù)據(jù),共12 936 張圖像;測試集采集了750 人的數(shù)據(jù),共19 732 張圖像,平均每個(gè)人有26.3 張測試數(shù)據(jù).
輸入大小為256×128×3 的樣本,經(jīng)過神經(jīng)網(wǎng)絡(luò)提取特征,輸出大小為1×1×2048 的特征向量.最后訓(xùn)練參數(shù)設(shè)置為:一次訓(xùn)練的樣本數(shù)目是128,最大迭代次數(shù)70,學(xué)習(xí)率3e-4.同時(shí)在迭代過程中,利用隨機(jī)梯度下降算法對(duì)模型參數(shù)進(jìn)行更新.
最后對(duì)模型進(jìn)行測試,輸入Market-1501 數(shù)據(jù)集的測試數(shù)據(jù)并驗(yàn)證模型是否有效,Rank-1、mAP 指標(biāo)如表1 所示.其中,Rank-i 為搜索結(jié)果中最靠前(置信度最高)的i 張圖有正確結(jié)果的概率.AP 為PR (Precision-Recall,查準(zhǔn)率和查全率)曲線下的面積,mAP(如式(9)所示)是對(duì)所有類的AP 值取平均,其更加全面衡量ReId算法效果的指標(biāo);mAP 要求將檢索圖片與被檢索圖片都匹配正確.
表1 提出的算法與其他算法的對(duì)比
本文提出的算法在Market1501 數(shù)據(jù)庫上的Rank-1 為83.2%,Rank-5 為82.2,mAP 為69.2%,與Verif-Identi[14]、GAN[15]、DNS[16]等算法相比具有一定的優(yōu)勢.
實(shí)際應(yīng)用時(shí)輸入檢索圖像,模型將輸入的行人圖像與圖庫的圖像進(jìn)行相似度匹配,輸出顯示可能是同一行人的檢索結(jié)果,如圖4 所示,綠色邊框圖像代表識(shí)別結(jié)果為同一個(gè)人的行人,紅色邊框圖像代表識(shí)別結(jié)果不是同一個(gè)人的行人.
圖4 行人識(shí)別結(jié)果圖
從表1 可以看出,算法在本系統(tǒng)的執(zhí)行運(yùn)行時(shí)間相比于文獻(xiàn)[15,16]的算法用時(shí)更短.主要原因在于雖然在訓(xùn)練模型上耗時(shí)較長,但傳輸用時(shí)和提取特征用時(shí)更短.從實(shí)驗(yàn)結(jié)果圖可以看到,識(shí)別正確率較高,但仍存在錯(cuò)誤識(shí)別的情況,本系統(tǒng)仍需要訓(xùn)練更多的數(shù)據(jù)集以完善模型,提高正確率.
本文提出一種改進(jìn)CNN 神經(jīng)網(wǎng)絡(luò)進(jìn)行行人重識(shí)別的方法,先在CNN 神經(jīng)網(wǎng)絡(luò)中加入Dropout算法降低過擬合發(fā)生概率,再利用改進(jìn)后的神經(jīng)網(wǎng)絡(luò)與Siamese 網(wǎng)絡(luò)框架融合的神經(jīng)網(wǎng)絡(luò)對(duì)圖片進(jìn)行特征提取,實(shí)驗(yàn)結(jié)果表明識(shí)別準(zhǔn)確率顯著提高.在實(shí)驗(yàn)過程中,基于現(xiàn)有設(shè)備的條件,我們僅在現(xiàn)有的數(shù)據(jù)集中選擇了Market-1501 數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),因此模型的泛化和結(jié)果的準(zhǔn)確率有一定的誤差.希望在接下來的學(xué)習(xí)過程中,可以改進(jìn)模型結(jié)構(gòu)增加數(shù)據(jù)量,提高模型的泛化性.