樊 琳,張驚雷
(1.天津理工大學(xué)電氣電子工程學(xué)院,天津 300384;2.天津市復(fù)雜系統(tǒng)控制理論及應(yīng)用重點實驗室,天津 300384)
行人重識別Re-Id(Re-Identification),也稱行人再識別,其目的是在多攝像機(jī)間進(jìn)行行人檢索,是圖像檢索問題的1個子問題[1],在公安刑偵、智能安防、智能商場等領(lǐng)域應(yīng)用廣泛。但是,由于實際拍攝中行人圖像易受到光照、遮擋和相機(jī)像素差異等因素影響,同一行人在不同相機(jī)下拍攝的圖像差異較大,給識別帶來困難,因此行人重識別技術(shù)仍面臨很大挑戰(zhàn)。

Figure 1 Classic siamese network圖1 經(jīng)典孿生網(wǎng)絡(luò)
行人重識別研究可分為特征表示和度量學(xué)習(xí)2種方法。特征表示法的目的是從輸入圖像中提取出魯棒性強(qiáng)的行人表觀特征,經(jīng)典算法如Jungling等人[2]提出的尺度不變特征變換SIFT(Scale-Invariance Feature Transform)。這類方法主要根據(jù)經(jīng)驗來設(shè)計需提取的特征,但這些特征僅適用于當(dāng)前數(shù)據(jù)類型,不具有普適性。度量學(xué)習(xí)法是使用距離度量函數(shù)來度量行人表觀特征相似度的方法,經(jīng)典算法如Liao等人[3]提出的XQDA(Cross-view Quadratic Discriminant Analysis)。這類方法主要根據(jù)樣本的類別標(biāo)簽組成正負(fù)樣本對,再將正負(fù)樣本對的特征映射到距離空間,并使正樣本對的距離小于負(fù)樣本對的距離。傳統(tǒng)的行人重識別系統(tǒng)是將2種方法獨立進(jìn)行分析和改進(jìn),對識別精度的提高并不明顯。近幾年來,深度學(xué)習(xí)類方法逐漸應(yīng)用到行人重識別中,經(jīng)典的深度學(xué)習(xí)模型是將特征提取與度量學(xué)習(xí)融合到1個網(wǎng)絡(luò)中,稱為孿生網(wǎng)絡(luò)(Siamese Network)。如2014年Yi等人[4]提出的孿生卷積神經(jīng)網(wǎng)絡(luò)框架SCNN(Siamese Convolutional Neural Network)和2016年Wang等人[5]提出SIR(Single-Image Represention)和CIR(Cross-Image Representation)結(jié)合的網(wǎng)絡(luò)框架。隨著深度學(xué)習(xí)的不斷發(fā)展,出現(xiàn)了卷積層數(shù)達(dá)10層以上的深度卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)模型,如VGGNet、GoogLeNet和ResNet等,在識別任務(wù)中能夠自動提取魯棒性較強(qiáng)的特征。基于此類模型的典型算法有2017年Zheng等人[6]提出的深度孿生網(wǎng)絡(luò)框架IDE(ID-discriminative Embedding),2017年Sun等人[7]提出的SVDNet深度學(xué)習(xí)框架,2018年陳首兵等人[8]提出的孿生網(wǎng)絡(luò)和重排序結(jié)合的重識別算法。
本文提出一種用聯(lián)合損失優(yōu)化孿生網(wǎng)絡(luò)的行人重識別算法。這是基于經(jīng)典孿生網(wǎng)絡(luò)的改進(jìn)算法,該算法為增加難分樣本對的區(qū)分度,使用2種損失監(jiān)督信號對搭建好的網(wǎng)絡(luò)進(jìn)行訓(xùn)練。利用訓(xùn)練好的模型提取特征,然后計算行人圖像特征與圖庫特征間的余弦相似度并排名;最后通過計算歐氏距離與杰卡德距離的加權(quán)對候選行人排名表重排序,使正確匹配圖像排序提前。實驗表明,該算法不僅能同時識別身份ID和判斷輸入圖像對的關(guān)系,而且還能學(xué)習(xí)到更具分辨力的特征,降低了錯誤匹配率。
行人重識別的孿生網(wǎng)絡(luò)包括2個CNN模型,即識別模型和驗證模型,如圖1所示。識別模型完成目標(biāo)多分類,包括2個用來預(yù)測身份ID的模型,主要由2個參數(shù)共享的卷積神經(jīng)網(wǎng)絡(luò)(圖示中以CaffetNet舉例)構(gòu)成;驗證模型完成目標(biāo)二分類,即用來判斷輸入行人圖像對是否為同一人。
如圖1所示,孿生網(wǎng)絡(luò)中包含2個結(jié)構(gòu)相同的分支,均使用經(jīng)過ImageNet數(shù)據(jù)集預(yù)訓(xùn)練過的深度CNN模型作為特征提取的骨架網(wǎng)絡(luò),并且2個網(wǎng)絡(luò)共享權(quán)重,圖中以CaffeNet為例。首先用卷積層代替深度CNN模型最后的全連接層(1 000維),此卷積層的輸出為1×1×4096的向量f(圖中指f1和f2),以數(shù)據(jù)集Market-1501[9]為例,行人共有751名,所以這個卷積層共有751個1×1×4096的向量。在卷積層后添加Softmax函數(shù)將輸出規(guī)范到1×1×N(N為訓(xùn)練集中行人總數(shù),如Market-1501中N為751),然后使用交叉熵?fù)p失進(jìn)行身份的預(yù)測,即識別損失,計算公式如式(1)所示:
(1)

識別模型進(jìn)行的是多分類識別任務(wù),預(yù)測輸入圖像中的行人身份ID,識別模型只能進(jìn)行身份預(yù)測,不能判斷圖像對是否為同一人。
如圖1所示,將經(jīng)過骨架網(wǎng)絡(luò)得到的2個特征向量f1和f2嵌入到平方層中作比較,平方層的計算公式為:fs=(f1-f2)2,f1和f2均為4 096維向量,fs為平方層的輸出。然后添加卷積層和Softmax函數(shù),將fs嵌入到二維向量中,得到輸入的2幅圖像屬于同一人的預(yù)測概率。驗證模型同樣使用交叉熵?fù)p失來預(yù)測二者的關(guān)系,即驗證損失,計算公式如式(2)所示:
(2)

因此,可將驗證模型視為二分類任務(wù),輸入是1對圖像,目的是對比2幅圖像是否屬于同一人,即給定1個標(biāo)簽s∈{0,1},0表示不同行人,1表示相同行人。
孿生網(wǎng)絡(luò)將驗證模型和識別模型結(jié)合,能夠同時識別行人身份和判斷輸入對的關(guān)系,但對數(shù)據(jù)集中的難分樣本對進(jìn)行重識別時仍然存在較高的誤匹配率。
針對上述問題,本文提出一種聯(lián)合損失優(yōu)化孿生網(wǎng)絡(luò)的深度學(xué)習(xí)算法,算法將Focal Loss[10]函數(shù)作為驗證損失,交叉熵函數(shù)作為識別損失,將兩者聯(lián)合對孿生網(wǎng)絡(luò)進(jìn)行優(yōu)化,并加入重排序算法提高第1匹配率(Rank-1:就是計算在第1個樣本命中或匹配正確的概率)。
經(jīng)典孿生網(wǎng)絡(luò)使用CaffeNet與ResNet-50的CNN模型作為特征提取網(wǎng)絡(luò),在2個大型數(shù)據(jù)集上的實驗結(jié)果表明,ResNet-50的Rank-1與mAP分別比使用CaffNet時高約17.4%和20.3%[6]。CNN模型中卷積層數(shù)的加深能夠提取到更加豐富的特征,但網(wǎng)絡(luò)層數(shù)的加深會使得網(wǎng)絡(luò)的性能下降。
為解決上述問題,2015年微軟研究院He等人[11]提出了一種深度殘差網(wǎng)絡(luò)ResNet(deep Residual Network),通過加入殘差單元來解決由于網(wǎng)絡(luò)加深而產(chǎn)生的網(wǎng)絡(luò)性能下降問題。殘差單元是一種類似“短路連接”的連接方式,如圖2所示的殘差單元,也稱“bottleneck design”,X identity表示短路連接作為輸入,也稱為恒等映射,中間的3部分用F(X)表示殘差中的差部分,因此最后的輸出為y=F(X)+X。輸入1個256維的向量,通過1×1卷積將256維通道降到64維,經(jīng)過卷積操作,最后再利用1×1卷積恢復(fù)到256維。加入1×1卷積核起到降維的作用,可以減少參數(shù)數(shù)目,加快訓(xùn)練,提升精度。

Figure 2 Residual unit圖2 殘差單元
ResNet-50模型每層參數(shù)如表1所示。
本文同時使用交叉熵?fù)p失和Focal Loss 2種函數(shù)在搭建好的ResNet模型上進(jìn)行訓(xùn)練。2個識別模型中均使用交叉熵?fù)p失,將提取到的特征向量映射到(0,1)中,最小化分類概率,使預(yù)測類別更接近真實類別。在驗證模型中使用Focal Loss,作用是減小較容易分類樣本的權(quán)重和增加對難區(qū)分樣本的關(guān)注度,得到分辨力更強(qiáng)的特征。采用2種損失對網(wǎng)絡(luò)進(jìn)行監(jiān)督訓(xùn)練,使模型學(xué)習(xí)到較魯棒的特征,能有效解決相似行人難以區(qū)分的問題。本文算法整體框架如圖3所示。
在識別模型中,行人圖像經(jīng)過ResNet-50卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取后得到特征向量f1和f2,然后利用交叉熵?fù)p失函數(shù)CE(Cross Entropy loss)進(jìn)行行人的身份預(yù)測,計算公式如式(3)所示:

Figure 3 Improved siamese network圖3 改進(jìn)的孿生網(wǎng)絡(luò)框架

Table 1 ResNet-50 network parameters表1 ResNet-50網(wǎng)絡(luò)參數(shù)
(3)


Focal Loss函數(shù)基于標(biāo)準(zhǔn)二分類交叉熵?fù)p失(如式(4)所示)進(jìn)行改進(jìn),最初是在交叉熵?fù)p失上添加1個系數(shù)作為控制權(quán)重,如式(5)所示:
CE(pt)=-log(pt)
(4)
CE(pt)=-αtlog(pt)
(5)
其中,pt表示預(yù)測的輸出概率,值在0~1。
只加入1個控制系數(shù),僅平衡了正負(fù)樣本比例,但還不足以區(qū)分難分樣本對,又進(jìn)行如下改進(jìn):
FL(pt)=-(1-pt)γlog(pt)
(6)
從式(6)可以看出,當(dāng)γ大于0時,若輸入為正樣本對,預(yù)測概率大的樣本比預(yù)測概率小的樣本損失??;若輸入為負(fù)樣本對,預(yù)測概率小的樣本比預(yù)測概率大的損失小。改進(jìn)以后使得難區(qū)分樣本的損失會變大,則使模型更關(guān)注難區(qū)分樣本對,將式(5)和式(6)相結(jié)合,可得到Focal Loss的標(biāo)準(zhǔn)形式:
FL(pt)=-αt(1-pt)γlog(pt)
(7)
其中,αt和γ協(xié)調(diào)控制輸出。文獻(xiàn)[10]給出了2參數(shù)優(yōu)化的原理,因此本文沿用了優(yōu)化結(jié)果,取αt=0.25和γ=2,最后得到聯(lián)合損失函數(shù)如式(8)所示:
L=LCE1+LCE2+Lfocalloss
(8)
其中,LCE1和LCE2代表2個識別網(wǎng)絡(luò)的識別損失,Lfocalloss代表驗證損失。
將2種損失相結(jié)合,不僅能平衡正負(fù)樣本比例所占權(quán)重,而且使模型更關(guān)注較難區(qū)分的樣本,從而降低誤匹配的概率,聯(lián)合損失在訓(xùn)練網(wǎng)絡(luò)時能夠加快模型的收斂速度,也能達(dá)到較好的識別效果。
在行人重識別中加入重排序算法[12]能進(jìn)一步提高識別精度。重排序算法的主要思想是:在得到查詢結(jié)果的初始排名列表后,通過求原始距離(歐氏距離)和杰卡德距離(Jaccard Distance)的加權(quán)和來重新修改原始列表,使得更多的正樣本排到前面,從而提高行人重識別的精度。重排序算法的框架如圖4所示。
首先給定1幅查詢行人圖像p和圖庫G,G={gi|i=1,2,…,N},提取查詢行人和圖庫行人的特征和k互近鄰(k互近鄰表示當(dāng)給定1幅行人查詢圖像時,另1幅圖像排在查詢結(jié)果最靠前的第k個位置,即2幅圖像同時互為k近鄰,稱為k互近鄰)特征,行人之間的原始距離采用歐氏距離,計算公式如式(9)所示:
(9)

(10)
其中,|·|表示在集合中有k個樣本。p的k互近鄰是指2幅行人圖像均排在對方排序列表的第k個位置,定義為:
S(p,k)=[(gi∈M(p,k))∩(p∈M(gi,k))}
(11)

Figure 4 Framework of re-ranking圖4 重排序框架
因受到遮擋、光照等變化影響,有些正樣本可能不在k互近鄰里,因此將S(p,k)加入到更魯棒的k/2互近鄰的S*(p,k)中。取S(p,k)中的任意1個樣本q和k/2的互近鄰樣本得到集合S(q,k/2),并與p的k互近鄰集合S(p,k)相加得到S*(p,k),公式如下:
S*(p,k)←S(p,k)∪S(q,k/2),?q∈S(p,k)
(12)
然后計算p和gi之間的k互近鄰特征的杰卡德距離,計算公式如式(13)所示:
(13)
其中,|·|表示集合中候選人行人數(shù)量,S*(p,k)和S*(gi,k)共享元素越多,則gi越可能成為正確的匹配。
最后將原始距離和杰卡德距離結(jié)合得到pi與gi之間的最終距離,對初始排序表進(jìn)行重排序,得到最終的距離公式,如式(14)所示:
d*(p,gi)=(1-λ)dJ(p,gi)+λd(p,gi)
(14)
其中,λ∈[0,1],當(dāng)λ=0時,只計算杰卡德距離;當(dāng)λ=1時,只計算原始距離。在得到最終距離后,按照最終距離對圖庫中匹配到的行人圖像進(jìn)行升序排序。
本文的實驗環(huán)境是浪潮英信服務(wù)器NF5280M4,GPU采用NVIDIA GeForce GTX 1080Ti,操作系統(tǒng)為Ubuntu16.04,深度學(xué)習(xí)的框架是PyTorch。實驗分訓(xùn)練-測試-評價3個步驟。為評估改進(jìn)后孿生網(wǎng)絡(luò)性能,采用大型數(shù)據(jù)集Market-1501(751幅行人圖像組成訓(xùn)練集,750幅行人圖像組成測試集)和DukeMTMC-reID(702幅行人圖像組成訓(xùn)練集,702幅行人圖像組成測試集)[13]進(jìn)行實驗。
采用平均精度均值mAP(mean Average Precision)和累計匹配特征CMC(Cumulated Matching Characteristic)曲線2種評價指標(biāo),較為關(guān)注的是Rank-1(第1匹配率)、Rank-5(第5匹配率)和Rank-10(第10匹配率)。
根據(jù)實驗環(huán)境對改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行參數(shù)設(shè)置,采用隨機(jī)梯度下降SGD(Stochastic Gradient Descent)優(yōu)化算法訓(xùn)練網(wǎng)絡(luò)。訓(xùn)練中,對圖像進(jìn)行數(shù)據(jù)增強(qiáng)操作,如隨機(jī)翻轉(zhuǎn)、平移、填充等,采用批訓(xùn)練,批處理尺寸(Batch Size)為32,動量因子設(shè)置為0.9,訓(xùn)練的時期(epoch)共60次,前20次學(xué)習(xí)率為0.1,以后按照0.1的速率衰減。在驗證模型中不僅使用了乘積層,又引入了1個均量層,計算的方法是取平方層中特征表示fs和乘積層中特征表示fM的和的平均值,計算公式為:f=(fs+fM)/2,稱為均量層。測試中,無數(shù)據(jù)增強(qiáng)操作,Batch Size取值為256。采用余弦距離進(jìn)行相似性度量,公式為:cosθ=(fq/‖fq‖2)×(fg/‖fg‖2),fq和fg表示查詢圖像和圖庫圖像的特征,‖·‖2為特征的L2標(biāo)準(zhǔn)化。
在Market-1501數(shù)據(jù)集上對參數(shù)λ進(jìn)行測試,然后選取最好的參數(shù)應(yīng)用到DukeMTMC-reID數(shù)據(jù)集上。從圖5可以看出,當(dāng)λ為0.3時,Rank-1和mAP均取得最優(yōu)值。
表2是在數(shù)據(jù)集Market-1501和DukeMTMC-reID[13]上,分別使用不同的驗證模型(平方層、乘積層和均量層),然后使用聯(lián)合損失訓(xùn)練孿生網(wǎng)絡(luò)得到的實驗結(jié)果,還包括在使用乘積層和均量層的聯(lián)合損失模型之后加入重排序算法的實驗結(jié)果。其中本文使用聯(lián)合損失優(yōu)化孿生網(wǎng)絡(luò)算法(Joint Loss optimized Siamese Network in person re-identification)記作JL-SN。表3是多種算法在2個數(shù)據(jù)集上的對比。
表2實驗結(jié)果表明,采用聯(lián)合損失的孿生網(wǎng)絡(luò),在Market-1501數(shù)據(jù)集上的評價指標(biāo)相比于僅使用交叉熵?fù)p失的經(jīng)典孿生網(wǎng)絡(luò),性能分別提升了9.5%(Rank-1)和12.87%(mAP),加入重排序后2項指標(biāo)分別提升了11.73%和25.59%;在DukeMTMC-reID數(shù)據(jù)集上的評價指標(biāo)中,雖然第1匹配率相比低了約1%,但第5和第10匹配率相比于經(jīng)典算法均提高了約1%,在加入重排序后,提高了5.26%(Rank-1)和17.91%(mAP)。

Figure 5 The value of the parameter λ on the Market-1501 dataset圖5 在Market-1501數(shù)據(jù)集上參數(shù)λ的取值結(jié)果
Table 3 Comparison of various algorithms onMarket-1501(M) and DukeMTMC-reID(D) datasets
表3 Market-1501(M)和DukeMTMC-reID(D)數(shù)據(jù)集上多種算法對比%

算法MRank-1 mAPDRank-1 mAPIDE(ResNet-50)[6]79.570.3SVDNet[7]82.362.176.758.6SN re-ranking[8]84.567.475.955.1Re-ranking[12]77.163.6JL-SN+乘積層89.072.778.060.9JL-SN+乘積層+重排序91.285.884.478.6

Table 2 Comparison of experimental results on Market-1501(M) and DukeMTMC-reID(D) datasets表2 Market-1501(M)和DukeMTMC-reID(D)數(shù)據(jù)集上實驗結(jié)果對比
表3實驗結(jié)果表明,采用聯(lián)合損失的孿生網(wǎng)絡(luò)的行人重識別算法,在2個大型數(shù)據(jù)集上的Rank-1和mAP均優(yōu)于對比算法,并且在加入重排序之后的聯(lián)合損失孿生網(wǎng)絡(luò)算法,第1匹配率已達(dá)到91.2%的高精度。
圖6和圖7分別是基于經(jīng)典孿生網(wǎng)絡(luò)的行人重識別算法(僅使用交叉熵?fù)p失函數(shù))和本文算法(使用聯(lián)合損失函數(shù))的對比和第1錯誤率(Top1-error)的對比,訓(xùn)練中設(shè)置每迭代10次記錄損失和Top1-error。從圖6和圖7中可以看出,使用聯(lián)合損失監(jiān)督訓(xùn)練的算法收斂速度較快,Top1-error較低。

Figure 6 Comparison of joint loss and cross entropy loss圖6 聯(lián)合損失與交叉熵?fù)p失對比圖

Figure 7 Top1-error rate comparison圖7 第1錯誤率對比圖
為進(jìn)一步證明聯(lián)合損失對重識別任務(wù)的有效性,本文在Market-1501數(shù)據(jù)集上進(jìn)行了可視化結(jié)果展示,如圖8所示。其中,圖8a和圖8c表示基于經(jīng)典孿生網(wǎng)絡(luò)的重識別結(jié)果,圖8b和圖8d表示聯(lián)合損失優(yōu)化孿生網(wǎng)絡(luò)算法的結(jié)果。第1列表示查詢的行人圖像,圖中選取前10名的排名表,數(shù)字1~10表示排名的順序,粗線框圖像代表正確匹配的行人圖像,其它圖像表示錯誤匹配的結(jié)果。在實驗結(jié)果中,正確匹配結(jié)果排名越靠前,并且正確匹配的數(shù)量越多,相應(yīng)的識別精度和mAP均會提高。在第1組實驗對比中,經(jīng)典算法中正確識別的行人個數(shù)為3,本文正確識別行人個數(shù)為5,數(shù)量的多少影響算法的評價指標(biāo);第2組對比實驗中,本文算法與經(jīng)典算法正確識別的行人個數(shù)一樣,但本文算法識別到的行人排名較靠前,能提高第1匹配率和mAP。

Figure 8 Visualization results on Market-1501 dataset圖8 Market-1501數(shù)據(jù)集上可視化結(jié)果
本文在經(jīng)典孿生網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行改進(jìn),使用交叉熵?fù)p失和Focal Loss聯(lián)合損失對網(wǎng)絡(luò)進(jìn)行監(jiān)督訓(xùn)練,提高了網(wǎng)絡(luò)的魯棒性,得到了分辨力更強(qiáng)的模型;加入重排序算法使圖像錯誤匹配率進(jìn)一步降低。在兩個大型數(shù)據(jù)集上的實驗結(jié)果表明,本文算法與經(jīng)典孿生網(wǎng)絡(luò)算法相比,識別精度提高較多。