李粘粘
(昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,云南 昆明 650500)
行人再識(shí)別(Person Re-identification,ReID)是指在不同攝像機(jī)拍攝的圖像庫中尋找指定的行人[1-2],對(duì)于安防監(jiān)控領(lǐng)域尤為重要。為確保人們的安全,在公共場(chǎng)所(如機(jī)場(chǎng)、火車站或擁擠的城市區(qū)域)部署大量的攝像機(jī)網(wǎng)絡(luò)。由于拍攝場(chǎng)景存在背景復(fù)雜、行人身體的遮擋、行人姿態(tài)變化及光照強(qiáng)度的改變等不可控因素問題,進(jìn)一步增加了識(shí)別行人的難度,因此面對(duì)這些復(fù)雜任務(wù)時(shí),如何在大規(guī)模數(shù)據(jù)中自動(dòng)完成識(shí)別任務(wù)變得至關(guān)重要。
解決行人再識(shí)別問題主要分為傳統(tǒng)手工特征方法和深度學(xué)習(xí)方法。傳統(tǒng)手工特征方法需要手動(dòng)提取特征非常耗時(shí)而且準(zhǔn)確度較低。近幾年基于深度學(xué)習(xí)的行人再識(shí)別方法得到快速發(fā)展,與傳統(tǒng)手工特征方法不同,基于深度學(xué)習(xí)的方法能自動(dòng)提取特征,進(jìn)而將提取的特征映射到度量學(xué)習(xí)方法中,在行人再識(shí)別方法的性能上取得大幅提升。文獻(xiàn)[3]采用深度孿生網(wǎng)絡(luò)(Siamese Network)對(duì)人體部位特征學(xué)習(xí)來做行人再識(shí)別的工作,與傳統(tǒng)手工特征相比效果較好。Zheng 等人[4]以ResNet50 作為骨干網(wǎng)絡(luò),將每個(gè)身份視為不同的類,從卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)中提取特征,然后在數(shù)據(jù)集上對(duì)其進(jìn)行訓(xùn)練。之后,研究者們相繼提出一些改進(jìn)方法應(yīng)用在行人再識(shí)別任務(wù)中。Sun 等人[5]同樣以ResNet50 作為骨干網(wǎng)絡(luò),將均等劃分的局部特征通過拼接表示并提出細(xì)化部分池(Refined Part Pooling)使每個(gè)區(qū)域保持一致。雖然這些方法在行人再識(shí)別任務(wù)中取得較高準(zhǔn)確度,但模型運(yùn)行時(shí)計(jì)算開銷較大。在實(shí)際應(yīng)用場(chǎng)景中,受計(jì)算資源的限制,需要在保持準(zhǔn)確率情況下降低計(jì)算開銷。
模型壓縮背后的思想通常是去掉深度神經(jīng)網(wǎng)絡(luò)中信息含量少的權(quán)重,再通過微調(diào)以進(jìn)一步提高網(wǎng)絡(luò)性能。從計(jì)算復(fù)雜度上看,整體結(jié)構(gòu)計(jì)算復(fù)雜度降低,但同時(shí)也導(dǎo)致壓縮后的模型準(zhǔn)確度下降。當(dāng)數(shù)據(jù)集很大或類別數(shù)量很多時(shí),準(zhǔn)確率下降尤為明顯,這在行人再識(shí)別任務(wù)中十分常見。相比之下,知識(shí)蒸餾(Knowledge Distillation,KD)在更寬/更深層網(wǎng)絡(luò)的支持下訓(xùn)練較小模型能夠?qū)崿F(xiàn)與深層網(wǎng)絡(luò)非常相似的準(zhǔn)確度,而且計(jì)算成本會(huì)低得多[6-7]。因此,在這項(xiàng)工作中,我們將在有效深層網(wǎng)絡(luò)行人再識(shí)別背景下探索知識(shí)蒸餾。這個(gè)想法最初是在文獻(xiàn)[8]中提出的,在采用這種方法時(shí),根據(jù)教師網(wǎng)絡(luò)輸出的軟標(biāo)簽(Soft Target)對(duì)學(xué)生網(wǎng)絡(luò)進(jìn)行懲罰,通過學(xué)生網(wǎng)絡(luò)預(yù)測(cè)教師網(wǎng)絡(luò)的輸出以及真實(shí)的分類標(biāo)簽來進(jìn)行訓(xùn)練。Heo 等人[9]提出邊界激活知識(shí)蒸餾,關(guān)注被轉(zhuǎn)移的網(wǎng)絡(luò)激活的特征符號(hào)。目前,知識(shí)蒸餾方法已經(jīng)被用于行人再識(shí)別。文獻(xiàn)[10]中,作者提出在整個(gè)訓(xùn)練過程中使用一對(duì)學(xué)生網(wǎng)絡(luò)進(jìn)行協(xié)作學(xué)習(xí)和互相指導(dǎo)。每個(gè)學(xué)生網(wǎng)絡(luò)訓(xùn)練都有兩個(gè)損失函數(shù),以及使每個(gè)學(xué)生類別與其他學(xué)生類別概率保持一致的損失,最終每個(gè)學(xué)生相互學(xué)習(xí)比單獨(dú)學(xué)習(xí)更好。
考慮到對(duì)于行人再識(shí)別實(shí)際的任務(wù)需求,需要同時(shí)保證模型具有較短的推理時(shí)間和較高的識(shí)別準(zhǔn)確率,本文提出了一種新的蒸餾方法。與前面講到的知識(shí)蒸餾方法不同,我們針對(duì)特征,拉近學(xué)生與老師的距離,蒸餾方法包括兩個(gè)部分:(1)學(xué)習(xí)教師網(wǎng)絡(luò)多個(gè)階段的中間層表示;(2)對(duì)教師網(wǎng)絡(luò)全連接層前的特征進(jìn)行學(xué)習(xí),使學(xué)生網(wǎng)絡(luò)與教師網(wǎng)絡(luò)的特征盡可能接近。具體地,對(duì)教師網(wǎng)絡(luò)不同階段特征圖進(jìn)行學(xué)習(xí),使學(xué)生網(wǎng)絡(luò)不同階段得到的特征圖與教師網(wǎng)絡(luò)盡可能接近,這有助于第二部分學(xué)生特征與教師特征拉近距離。行人再識(shí)別網(wǎng)絡(luò)識(shí)別的準(zhǔn)確率很大程度上取決于行人再識(shí)別網(wǎng)絡(luò)提取的特征表示的好壞,教師網(wǎng)絡(luò)提取的特征表示好于學(xué)生網(wǎng)絡(luò),因此使學(xué)生網(wǎng)絡(luò)提取的特征與教師網(wǎng)絡(luò)提取的特征盡可能接近,就能提高學(xué)生網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率。本文對(duì)Market1501[11]、DukeMTMC-reID[12]和 CUHK03[13]這3 個(gè)具有挑戰(zhàn)性的大規(guī)模行人再識(shí)別基準(zhǔn)進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,本文提出的蒸餾方法在行人再識(shí)別應(yīng)用中具有一定的提升。
本文的主要貢獻(xiàn)有3 方面:
(1)提出了適合行人再識(shí)別模型的多階段蒸餾框架結(jié)構(gòu);
(2)探究了在不同階段蒸餾的有效性;
(3)根據(jù)線性整流函數(shù)[14](Rectified Linear Unit,ReLU)的特性,提出一種在ReLU 層前蒸餾的有效方法。
本文以提出的蒸餾網(wǎng)絡(luò)方法應(yīng)用于行人再識(shí)別網(wǎng)絡(luò)PCB[5]為例。PCB 的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。輸入的圖像經(jīng)過ResNet50[15]骨干網(wǎng)絡(luò),經(jīng)Conv5_x輸出的張量圖Tensor T 縱向均勻切分成6 部分,即6 個(gè)4×8 的張量,然后各自進(jìn)行全局平均池化(Global Average Pooling,GAP),得到6 個(gè)張量p,每個(gè)張量p通道數(shù)為2 048,再用1×1 卷積對(duì)張量p進(jìn)行降維得到張量h,6 個(gè)張量h的向量大小均為256×1×1,最后將輸出的向量輸入全連接層和softmax 進(jìn)行分類。
本文提出以骨干網(wǎng)絡(luò)為ResNet50 的PCB 作為教師網(wǎng)絡(luò),骨干網(wǎng)絡(luò)為ResNet18 的PCB 作為學(xué)生網(wǎng)絡(luò)進(jìn)行蒸餾的多階段知識(shí)蒸餾方法。蒸餾結(jié)構(gòu)如圖2 所示,蒸餾方法結(jié)構(gòu)主要分為兩部分:第一部分在骨干網(wǎng)絡(luò)的不同階段進(jìn)行蒸餾,即在ResNet的Conv2_x、Conv3_x、Conv4_x、Conv5_x 末端進(jìn)行蒸餾。Ft表示教師骨干網(wǎng)絡(luò)不同階段特征圖,rs表示學(xué)生骨干網(wǎng)絡(luò)階段通過1×1 卷積升維到與教師網(wǎng)絡(luò)特征圖維度一致后的特征圖,F(xiàn)t特征圖與rs特征圖之間的距離d用作蒸餾損失函數(shù);第二部分對(duì)全連接層前的特征進(jìn)行蒸餾,即對(duì)張量h之后拼接起來的教師特征tFeatureD和學(xué)生特征sFeatureD通過最小化損失使學(xué)生網(wǎng)絡(luò)提取的特征與教師網(wǎng)絡(luò)盡可能接近,從而使學(xué)生網(wǎng)絡(luò)的準(zhǔn)確率能與教師網(wǎng)絡(luò)相當(dāng)甚至超過。
1.2.1 蒸餾網(wǎng)絡(luò)位置
第一部分選擇在骨干網(wǎng)絡(luò)的多個(gè)下采樣階段進(jìn)行蒸餾。最終希望學(xué)生網(wǎng)絡(luò)輸出的全連接層前的特征(sFeatureD)盡可能與教師網(wǎng)絡(luò)輸出的特征(tFeatureD)相似。因?yàn)閷W(xué)生網(wǎng)絡(luò)的骨干網(wǎng)絡(luò)和教師網(wǎng)絡(luò)的骨干網(wǎng)絡(luò)存在較大差異,要想使sFeatureD與tFeatureD輸出特征盡可能接近,只通過sFeatureD與tFeatureD進(jìn)行蒸餾很難實(shí)現(xiàn)。因此我們?cè)谡麄€(gè)骨干網(wǎng)絡(luò)的多個(gè)階段同時(shí)進(jìn)行蒸餾,盡可能全面地將教師的重要信息進(jìn)行傳遞。
當(dāng)骨干網(wǎng)絡(luò)采用ResNet 時(shí),我們?cè)赗esNet 的Conv2_x、Conv3_x、Conv4_x、Conv5_x 末端進(jìn)行蒸餾。這部分的網(wǎng)絡(luò)結(jié)構(gòu)如圖3(a)所示。這里對(duì)學(xué)生網(wǎng)絡(luò)的特征圖進(jìn)行處理,讓學(xué)生網(wǎng)絡(luò)經(jīng)過1×1 卷積升維到與對(duì)應(yīng)的教師網(wǎng)絡(luò)特征圖相同通道數(shù),方便直接計(jì)算它們特征圖之間的差值。
激活函數(shù)對(duì)模型性能影響很大,大多數(shù)網(wǎng)絡(luò)[16-18]中使用ReLU。本文蒸餾方法充分考慮了ReLU 的特性,在ReLU 之前進(jìn)行蒸餾,如圖3(b)中長(zhǎng)線條所在位置進(jìn)行蒸餾。目的是讓學(xué)生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)的特征圖值盡可能一致,教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)特征圖值主要分3 種情況:(1)教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)ReLU 前特征圖的值均為正時(shí),學(xué)生網(wǎng)絡(luò)對(duì)應(yīng)的值應(yīng)與其越相近越好。這時(shí),ReLU 前特征圖的值與ReLU 后沒有差異。(2)教師網(wǎng)絡(luò)ReLU 前特征圖的值為負(fù)時(shí),學(xué)生網(wǎng)絡(luò)對(duì)應(yīng)特征圖的值只需為負(fù)數(shù)即可,此時(shí)經(jīng)過ReLU 后都為0。若在ReLU后做蒸餾,教師網(wǎng)絡(luò)特征圖負(fù)值變?yōu)?,而此時(shí)學(xué)生網(wǎng)絡(luò)對(duì)應(yīng)的為正的特征圖值經(jīng)過ReLU 后難以變?yōu)?。(3)教師網(wǎng)絡(luò)特征圖的值為正,學(xué)生網(wǎng)絡(luò)對(duì)應(yīng)特征圖的值為負(fù),若在ReLU 后蒸餾,經(jīng)過ReLU 后學(xué)生網(wǎng)絡(luò)對(duì)應(yīng)特征圖值變?yōu)?,神經(jīng)元失活且難以恢復(fù),而在ReLU 前蒸餾則不存在這樣的問題。
第二部分蒸餾是將PCB 的教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的全連接層前的6 個(gè)特征拼接起來,對(duì)拼接起來的教師特征和學(xué)生特征做蒸餾。全連接層前的特征直接用于檢索,會(huì)直接影響到識(shí)別準(zhǔn)確率。
1.2.2 蒸餾結(jié)構(gòu)的有效性分析
行人再識(shí)別網(wǎng)絡(luò)能否有較高的識(shí)別準(zhǔn)確率,主要取決于行人再識(shí)別網(wǎng)絡(luò)是否能學(xué)習(xí)到一個(gè)好的特征表示,也就是從行人圖中提取最具區(qū)分性的信息到特征中。教師網(wǎng)絡(luò)能夠比學(xué)生網(wǎng)絡(luò)學(xué)習(xí)到更好的特征表示,要想學(xué)生網(wǎng)絡(luò)識(shí)別準(zhǔn)確率達(dá)到與教師網(wǎng)絡(luò)相當(dāng),就需要學(xué)生網(wǎng)絡(luò)提取的特征與教師網(wǎng)絡(luò)盡可能接近。最直觀的做法就是用損失函數(shù)使學(xué)生網(wǎng)絡(luò)提取的特征與教師網(wǎng)絡(luò)提取的特征逐漸接近。但前期的實(shí)驗(yàn)表明只對(duì)提取的特征做蒸餾效果并不理想,僅學(xué)習(xí)教師網(wǎng)絡(luò)的特征,難以真正拉近特征間距離。所以本文通過骨干網(wǎng)絡(luò)多個(gè)階段的中間層特征圖學(xué)習(xí),使每一階段教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)輸出都能保持一致,從而大大降低最后特征學(xué)習(xí)的難度。
1.2.3 損失函數(shù)
第一部分在骨干網(wǎng)絡(luò)部分的蒸餾損失函數(shù)。學(xué)生網(wǎng)絡(luò)用于蒸餾的特征圖首先通過1×1 卷積升維到與教師網(wǎng)絡(luò)用于蒸餾的特征圖維度一致,然后與教師網(wǎng)絡(luò)特征圖計(jì)算均方誤差。
式中,T表示教師特征圖值,S表示學(xué)生特征圖值,教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)在骨干網(wǎng)絡(luò)的各個(gè)階段提取的特征圖值T,S∈RW×H×C,特征圖中第i維的值Ti,Si∈R,dp(T,S)表示距離函數(shù)。
本文方法在ReLU 之前蒸餾,因此距離函數(shù)需要考慮ReLU 的變化:在ReLU 前,如果Si≤0,Ti≤0,經(jīng)過ReLU 后,教師和學(xué)生的值均變?yōu)?、因此不需要計(jì)算損失;當(dāng)不滿足Si≤0、Ti≤0 時(shí),需要通過均方誤差dp(T,S)拉近學(xué)生網(wǎng)絡(luò)特征圖值與教師網(wǎng)絡(luò)特征圖值的距離,使學(xué)生網(wǎng)絡(luò)在骨干網(wǎng)絡(luò)的多個(gè)階段輸出都與教師網(wǎng)絡(luò)對(duì)應(yīng)的階段輸出越來越相似,從而促使最終網(wǎng)絡(luò)提取的人體特征更加相似。將rs(·)作為學(xué)生骨干網(wǎng)絡(luò)提取特征圖后做的1×1 卷積和批量歸一化的轉(zhuǎn)換函數(shù),則第一部分的蒸餾損失函數(shù)定義為:
式中,F(xiàn)t表示教師骨干網(wǎng)絡(luò)階段特征圖值,F(xiàn)s表示學(xué)生網(wǎng)絡(luò)轉(zhuǎn)換前的特征圖值。
第二部分蒸餾是針對(duì)提取的人體特征,即全連接層前的網(wǎng)絡(luò)特征進(jìn)行蒸餾。這部分教師網(wǎng)絡(luò)的特征為tFeatureD,學(xué)生網(wǎng)絡(luò)的特征為sFeatureD,特征中第j位值sFeature DtFeatureDj,sFeatureDj∈R。同樣通過均方誤差計(jì)算第二部分蒸餾損失:
式(3)中的C表示特征通道數(shù)。因此,提出方法的蒸餾部分的損失函數(shù)可以表示為:
式(4)中的?是一個(gè)常數(shù),實(shí)驗(yàn)中的?為2。最終得到多階段蒸餾方法行人再識(shí)別損失函數(shù)為:
當(dāng)對(duì)PCB 網(wǎng)絡(luò)進(jìn)行蒸餾時(shí),Ltask=6softmax,實(shí)驗(yàn)中的β取為常數(shù)1。
為了充分說明本文方法的有效性,主要在Market1501[11]、DukeMTMC-reID[12]、CUHK03[13]這3個(gè)數(shù)據(jù)集上進(jìn)行評(píng)估。它們包含實(shí)際應(yīng)用中存在的一些問題。每個(gè)身份出現(xiàn)在不同的攝像機(jī)中,且呈現(xiàn)不同的視角、姿態(tài)和光照變化。因此,在這些數(shù)據(jù)集上進(jìn)行測(cè)試具有很大的挑戰(zhàn)和意義。
Market1501[11]是通過6 個(gè)攝像機(jī)拍攝,追蹤并手工標(biāo)注檢測(cè)框得到的數(shù)據(jù)集,具有1 501 位行人的32 668 個(gè)檢測(cè)框。該數(shù)據(jù)集中每位行人最少被2個(gè)攝像機(jī)拍攝到,其中751 位行人共計(jì)12 936 張圖像用作訓(xùn)練集,750 位行人共計(jì)19 732 張圖像用作測(cè)試集。在圖像搜索庫(gallery)中,人工標(biāo)注了3 368 張用于查詢圖像的行人檢測(cè)矩形框,該矩形框是通過使用DPM(Deformable Parts Model)[19]檢測(cè)器進(jìn)行繪制的。
DukeMTMC-reID[12]是一個(gè)大規(guī)模標(biāo)注的行人跟蹤數(shù)據(jù)集。由8 個(gè)同步攝像機(jī)拍攝的大型高清視頻,通過間隔采樣得到36 411 張標(biāo)記圖像。其中16 522張圖像用于訓(xùn)練,2 228 張圖像用于查詢和17 661張gallery 圖像。
CUHK03[13]數(shù)據(jù)集是在香港中文大學(xué)(CUHK)校園內(nèi)通過5 對(duì)攝像機(jī)采集得到1 467 位行人的圖像,每對(duì)攝像機(jī)能夠拍攝到每位行人不完全重疊的5 個(gè)視角,其中訓(xùn)練集和測(cè)試集分別包括767 位行人和700 位行人的圖像數(shù)據(jù)。
實(shí)驗(yàn)所用的硬件配置如下,GPU:GTX TITAN X(顯存12GB)、CPU:Intel(R)Xeon(R)CPU E5-2620 v3(主頻2.40 GHz)、內(nèi)存128 GB,采用pytorch[20]深度學(xué)習(xí)框架。
訓(xùn)練時(shí)輸入圖像大小為384×128,設(shè)置batch size 為64,選用ResNet50 作為教師網(wǎng)絡(luò)的骨干網(wǎng)絡(luò),采用在ImageNet[21]上訓(xùn)練的參數(shù)作為預(yù)訓(xùn)練模型。優(yōu)化器使用動(dòng)量系數(shù)為0.9 的SGD。蒸餾訓(xùn)練的初始學(xué)習(xí)率為0.5,在20 個(gè)epoch 學(xué)習(xí)率衰減到0.05,40 個(gè)epoch 時(shí)學(xué)習(xí)率衰減到0.000 5,經(jīng)過60 個(gè)epoch 訓(xùn)練停止。訓(xùn)練時(shí)圖像前處理采用隨機(jī)水平翻轉(zhuǎn)做數(shù)據(jù)擴(kuò)增。本文采用平均精確度(mean Average Precision,mAP)和rank-1、rank-5和rank-10 的累計(jì)匹配特性(Cumulative Matching Characteristics,CMC)評(píng)價(jià)行人再識(shí)別方法。
本文中,比較的方法主要分為兩組,第一組,不采用蒸餾方法時(shí)骨干網(wǎng)絡(luò)為ResNet50 的教師網(wǎng)絡(luò)和骨干網(wǎng)絡(luò)為ResNet18 的學(xué)生網(wǎng)絡(luò)識(shí)別結(jié)果。第二組,采用不同蒸餾方式時(shí)骨干網(wǎng)絡(luò)為ResNet18 的學(xué)生網(wǎng)絡(luò)識(shí)別結(jié)果。方法實(shí)驗(yàn)中,PCB+MKD 表示在ResNet 骨干網(wǎng)絡(luò)后4 個(gè)階段,ResNet50 作為教師網(wǎng)絡(luò)對(duì)ResNet18 進(jìn)行蒸餾,PCB+FKD 表示在最后一層全連接層之前,ResNet50 作為教師網(wǎng)絡(luò)對(duì)ResNet18進(jìn)行蒸餾,PCB+MKD+FKD 表示ResNet 的骨干網(wǎng)絡(luò)后4 個(gè)階段的蒸餾與全連接層之前的特征蒸餾同時(shí)采用ResNet50 作為教師網(wǎng)絡(luò)蒸餾ResNet18。
表1 在不同數(shù)據(jù)集上的對(duì)比結(jié)果
表1 是在Market1501、DukeMTMC-reID、CUHK03這3 組數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。第一組實(shí)驗(yàn)中在不采用蒸餾方法時(shí)學(xué)生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果mAP分別相差3.96%、5.62%、5.51%、Rank1 分別相差1.28%、5.15%、5.89%。第二組實(shí)驗(yàn)中,采用PCB+MKD 的蒸餾方式時(shí),骨干網(wǎng)絡(luò)為ResNet18 的學(xué)生網(wǎng)絡(luò)mAP 分別有1.53%、2.24%、1.71%的提升,Rank1 分別有0.76%、2.13%、0.11%的提升。采用PCB+FKD 的蒸餾方式時(shí),學(xué)生網(wǎng)絡(luò)mAP 分別有0.64%、1.05%、1.43%的提升。而最后同時(shí)采用MKD 和FKD 的蒸餾方式時(shí),學(xué)生網(wǎng)絡(luò)mAP 分別有4.21%、5.8%、5.82%的提升,Rank1 分別有1.93%、5.5%、6.89%的提升,與教師網(wǎng)絡(luò)相比,mAP 分別有0.25%、0.18%、0.31%的提升,Rank1分別有0.65%、0.35%、1%的提升。由此可見,在3 個(gè)數(shù)據(jù)集中,采用不同蒸餾方法時(shí)學(xué)生網(wǎng)絡(luò)性能都有一致的提高。其中同時(shí)采用MKD 和FKD 時(shí),蒸餾效果最好,甚至超過教師網(wǎng)絡(luò)性能,說明此蒸餾方法能夠較好地拉近學(xué)生網(wǎng)絡(luò)與教師網(wǎng)絡(luò)之間的距離,使學(xué)生網(wǎng)絡(luò)與教師網(wǎng)絡(luò)具有相似的特征輸出,這種相似就是我們提出的方法能夠提高性能的主要原因。
圖4 為本文比較方法中的不同模型識(shí)別效果圖。query 表示查詢圖,Ran5 表示模型計(jì)算出的與查找行人(query)最為接近的5 張圖,其中與查詢圖是同一個(gè)人用綠色框表示,與查詢圖不是同一個(gè)人用紅色框表示。可見,本文提出方法,不管數(shù)據(jù)集圖像中視角、光照強(qiáng)度、姿態(tài)如何變化,排序最靠前的5 張圖識(shí)別效果均達(dá)到最好。
圖4 不同模型識(shí)別效果圖
本文驗(yàn)證了提出的多階段知識(shí)蒸餾方法(MKD+FKD)與多篇工作中的蒸餾方法在行人再識(shí)別任務(wù)上的對(duì)比,繼續(xù)選擇骨干網(wǎng)絡(luò)為ResNet50的PCB 作為教師網(wǎng)絡(luò),基于ResNet18 的PCB 作為學(xué)生網(wǎng)絡(luò)。表2 為DukeMTMC-reID 數(shù)據(jù)集上的實(shí)驗(yàn)對(duì)比結(jié)果,所有模型均經(jīng)過60 個(gè)epoch 的訓(xùn)練,學(xué)習(xí)率與文獻(xiàn)[5]相同??梢钥闯?,MKD+FKD 在Rank1 和mAP 指標(biāo)上表現(xiàn)最好,mAP 比第二好的MEAL 高3.83 個(gè)點(diǎn),Rank1 高3.03 個(gè)點(diǎn)。由此可見,本文提出的多階段知識(shí)蒸餾方法與其他蒸餾方法在行人再識(shí)別任務(wù)上的識(shí)別準(zhǔn)確度相比,學(xué)生網(wǎng)絡(luò)準(zhǔn)確度提升較高,甚至超過教師網(wǎng)絡(luò)的準(zhǔn)確度,證明了該方法的有效性。
為了實(shí)際部署行人再識(shí)別模型時(shí)使其既具有較高準(zhǔn)確度,同時(shí)還能降低計(jì)算成本,本文提出了一種適合行人再識(shí)別模型的多階段蒸餾框架結(jié)構(gòu),第一部分是在骨干網(wǎng)絡(luò)中的后4 個(gè)階段進(jìn)行蒸餾,第二部分是對(duì)全連接層前的特征進(jìn)行蒸餾。結(jié)合ReLU 層的特性,在ReLU 前進(jìn)行蒸餾,同時(shí)探究了在不同階段蒸餾的有效性。實(shí)驗(yàn)結(jié)果表明:不管是在第一部分進(jìn)行蒸餾還是在第二部分進(jìn)行蒸餾,在不同數(shù)據(jù)集中使用蒸餾方法比未使用蒸餾方法的網(wǎng)絡(luò)都有一致的提升;當(dāng)同時(shí)對(duì)第一部分和第二部分進(jìn)行蒸餾時(shí)效果達(dá)到最好,學(xué)生網(wǎng)絡(luò)模型甚至超過教師網(wǎng)絡(luò)模型。后續(xù)的工作中將繼續(xù)研究參數(shù)規(guī)模更小、計(jì)算成本更低的行人再識(shí)別模型,從而使其能夠更加方便部署在應(yīng)用設(shè)備中,以達(dá)到更好的效果。
表2 在數(shù)據(jù)集DukeMTMC-reID 上的比較結(jié)果