張仕遠(yuǎn),丁學(xué)明
(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海200093)
近年來計算機視覺領(lǐng)域中的行人重識別(Person Re-identification)的關(guān)注度逐漸升高。其作為圖像檢索問題的分支,目的是通過深度學(xué)習(xí),檢索出數(shù)據(jù)集中存在特定身份的行人[1]。隨著人工智能科技的飛速發(fā)展,該技術(shù)在社區(qū)安防、刑事追蹤、智能機器人等領(lǐng)域都得到初步的應(yīng)用。但由于圖像中行人的動作和光照強度都會存在的差異,且不同的圖像之間存在遮擋物、分辨率低等問題,會造成的類內(nèi)與類間的差異變化,故行人重識別到目前仍然存在一些具有挑戰(zhàn)性的難點。
隨著深度學(xué)習(xí)的飛速發(fā)展以及高性能的計算硬件的不斷升級,深度學(xué)習(xí)方法已成為行人重識別任務(wù)的主流方法。其通過組合不同網(wǎng)絡(luò)結(jié)構(gòu),形成多層卷積神經(jīng)網(wǎng)絡(luò)的非線性深度學(xué)習(xí)模型;對數(shù)據(jù)集中訓(xùn)練集進(jìn)行訓(xùn)練;再通過計算歐式距離等方法來比較樣本間的相似度;進(jìn)而獲得較高的性能指標(biāo)。當(dāng)前,基于深度卷積神經(jīng)網(wǎng)絡(luò)的行人重識別,普遍使用的骨干網(wǎng)絡(luò)有ResNet[2]、VGGNet[3]等。因其在識別任務(wù)中能自動提取具有較強魯棒性行人圖像的特征,從而完成端到端的學(xué)習(xí)。隨著行人重識別的關(guān)注度逐年遞增,基于深度卷積神經(jīng)網(wǎng)絡(luò)的許多具有優(yōu)異性能的行人重識別算法被不斷提出。如:文獻(xiàn)[4]中提出的三元組損失函數(shù),其優(yōu)化目標(biāo)是使與目標(biāo)樣本行人屬于不同類行人之間的距離,要比屬于同類行人之間的距離大,從而增強模型的辨別能力。此外,還有四元組損失[5]、柱狀圖損失[6]和群組相似性學(xué)習(xí)[7]等其它類型的度量學(xué)習(xí)損失方法。文獻(xiàn)[8]中提出了批歸一化機制,加快了深度網(wǎng)絡(luò)的訓(xùn)練,并讓網(wǎng)絡(luò)能承受增加的訓(xùn)練率,同時減少了訓(xùn)練步驟。
綜上所述,基于深度學(xué)習(xí)的方法雖然在一定程度上提升網(wǎng)絡(luò)性能,但大部分都是對網(wǎng)絡(luò)最終輸出的特征進(jìn)行預(yù)測處理,而沒有使類內(nèi)距離與類間距離達(dá)到理想效果。針對這個問題,本文提出一種對損失函數(shù)進(jìn)行優(yōu)化改進(jìn)的行人重識別方法。通過在原始交叉熵?fù)p失上增加相似度的權(quán)重因子,使學(xué)習(xí)速率適應(yīng)具體的優(yōu)化狀態(tài)。從而使其優(yōu)化方式更加靈活,收斂狀態(tài)更加明確,有助于使特征更具鑒別力。
為了達(dá)到縮小同類別樣本之間距離,本文添加了額外的監(jiān)督機制,使輔助的損失函數(shù)配合softmax聯(lián)合訓(xùn)練。在保持不同類間判別力的基礎(chǔ)上,讓訓(xùn)練出特征的內(nèi)聚性增強,約束了類內(nèi)緊湊性,有效提升特征的辨識度,使模型泛化性和辨別能力有效提升。本文采用ResNet-50作骨干網(wǎng)絡(luò),結(jié)合改進(jìn)后的softmax與三元組損失聯(lián)合訓(xùn)練,再經(jīng)過改進(jìn)后的交叉熵?fù)p失進(jìn)行訓(xùn)練,并結(jié)合一些訓(xùn)練技巧對網(wǎng)絡(luò)加以改進(jìn),提升了網(wǎng)絡(luò)的性能。通過基于Market-1501與DukeMTMC-reID數(shù)據(jù)集上大量的實驗,結(jié)果表明本文方法提升了行人重識別準(zhǔn)確率。
本文所提融合損失優(yōu)化方法網(wǎng)絡(luò)的整體框架如圖1所示。網(wǎng)絡(luò)結(jié)構(gòu)主要由預(yù)處理模塊、主干網(wǎng)絡(luò)模塊、聚合模塊和損失優(yōu)化模塊組成。
圖1 損失優(yōu)化模型的網(wǎng)絡(luò)框架Fig.1 Network framework of loss optimization model
首先對數(shù)據(jù)集通過Resize將圖像調(diào)整為固定大小。使輸入行人圖像的尺寸大小統(tǒng)一調(diào)整256×128像素,方便圖像批量處理。本文設(shè)置不同身份行人的數(shù)量P=16,同一身份行人的圖片數(shù)K=4來訓(xùn)練樣本,故batch-size大小為64。對參與訓(xùn)練的圖片使用隨機擦除(Random Erasing,RE)[9]。該方法是在輸入圖像中,將一個隨機區(qū)域的像素更改為隨機值的增強方法,從而避免模型出現(xiàn)過擬合的現(xiàn)象,使魯棒性增強。圖1中自動增強(Auto-augment)[10]是一種提高圖像分類準(zhǔn)確性的算法,其運用自動搜索算法來尋找最佳的圖像處理策略。如:將圖像平移、旋轉(zhuǎn)和剪切等操作,從而提高特征表示的魯棒性。
本文基于ResNet-50為骨干網(wǎng)絡(luò)來提取行人圖片的特征,其具有引入殘差塊和網(wǎng)絡(luò)層數(shù)較深的特點。其中ResNet50可分為六部分,Conv1為卷積層模塊,由一個7×7的卷積核提取特征,其步長設(shè)置為2,故圖像的長寬均減小為原圖的一半。Conv2~Conv5模塊均采用重復(fù)的殘差塊提取特征,每個殘差模塊包含多層卷積層、下采樣層和激活函數(shù)。在下采樣層中,對特征圖進(jìn)行下采樣的步長為2,使得長寬再度縮減,進(jìn)一步降低圖像的分辨率。為獲取更多的特征信息,本文將ResNet50結(jié)尾空間的下采樣操作步長調(diào)整為1,以增大網(wǎng)絡(luò)輸出特征圖的尺寸,依次處理雖然會增加一些計算量,但卻能在不增加額外訓(xùn)練參數(shù)的同時,對特征圖分辨率帶來較大的提升。
在骨干網(wǎng)絡(luò)階段完成后,對輸出特征圖進(jìn)行池化操作。采用全局平均池化(Avg pooling),將骨干網(wǎng)生成的特征圖聚合成一個全局特征,得到的特征向量為2048維。再將其經(jīng)過一個批歸一化層(Batch Normalization,BN),用于在網(wǎng)絡(luò)訓(xùn)練過程中,獲得更加平滑的優(yōu)化空間,并對學(xué)習(xí)率等超參具有更強的魯棒性,同時避免激活函數(shù)靠近其飽和區(qū)。其后經(jīng)全連接層(Fully Connected,F(xiàn)C),最終輸出全局特征向量。
在行人重識別任務(wù)中,使用類標(biāo)簽進(jìn)行學(xué)習(xí)時,普遍采用結(jié)合softmax與交叉熵?fù)p失函數(shù)的方法,來學(xué)習(xí)同類別之間的信息。從而優(yōu)化樣本和權(quán)重向量之間的相似度,提高正確預(yù)測的準(zhǔn)確度。softmax是行人重識別中常用的分類損失函數(shù),其公式為:
其中:x i代表d維空間中第i個深度特征;y表示其類別;W j為全連接層的參數(shù)矩陣W中的第j列;n為類別的數(shù)量;b為偏置;mini-batch的大小為m。
在softmax的監(jiān)督學(xué)習(xí)中,得到的特征僅限于區(qū)別出各類別的差異,無法量化的控制各類別間與同類別內(nèi)的距離,且同類樣本間特征差異無法約束。本文提出采樣中心損失函數(shù)[11]作為輔助損失函數(shù),用以監(jiān)督softmax在訓(xùn)練時忽略的同類標(biāo)簽樣本間的距離,使訓(xùn)練出的特征具有向一個特征中心聚合的特性。中心損失函數(shù)公式為:
在mini-batch中,第j張圖片的標(biāo)簽表示為y j,c y i為深度特征的第y i個類中心。其計算的是各樣本的特征與該類別的中心特征的歐式距離之和,并使其最小化,即最小化類內(nèi)距離,其大小體現(xiàn)的是類內(nèi)的變化。中心損失原理是根據(jù)對某個類別特征中心的學(xué)習(xí)來約束不同樣本特征與類別中心特征的偏移,形成同一種類樣本圍繞在樣本中心的狀態(tài),則可以增加類內(nèi)緊湊性,即使存在某些類內(nèi)變化大的樣本,也不會影響識別結(jié)果的魯棒性。在原有的softmax上增加輔助函數(shù)的改進(jìn),更加有利于網(wǎng)絡(luò)的訓(xùn)練。總體公式為:
在結(jié)合使用時,softmax負(fù)責(zé)區(qū)別類間距離,中心損失約束類內(nèi)的距離,使學(xué)習(xí)到的特征判別度更高;再與三元組損失聯(lián)合訓(xùn)練,使類間距離遠(yuǎn)大于類內(nèi)距離,即目標(biāo)樣本正距離盡可能小于目標(biāo)樣本負(fù)距離。
交叉熵?fù)p失(Cross-Entropy Loss)是行人重識別中常用的損失函數(shù),其目標(biāo)是增加類內(nèi)相似度s P和縮減類間相似度s n,從而優(yōu)化樣本和權(quán)重向量之間的相似度。具體表示為先將s n和s P組合成相似度對,為使(s n-s p)的值減小,則要減小s n或增大s P。 然而,由于二者系數(shù)均為1,故其優(yōu)化的梯度幅度相同,對類內(nèi)和類間的相似度懲罰程度也是一致的,不能以不同的速率學(xué)習(xí)優(yōu)化。另外這種方式使用的決策邊界為s n-s p=m,該邊界在(s n,s p)空間中與s n=s p平行,導(dǎo)致通向邊界上任意點對應(yīng)的難度相同,出現(xiàn)方向不唯一的收斂狀態(tài),導(dǎo)致收斂狀態(tài)不明確。公式表示為:其中,K為與某個樣本比較,所有類內(nèi)相似度分?jǐn)?shù)的數(shù)量;L則表示與某個樣本比較,所有類間相似度分?jǐn)?shù)的數(shù)量;m為余量;γ為松弛變量。 本文提出的采用圓損失函數(shù)[12]的方法進(jìn)行訓(xùn)練,引入加權(quán)因子αn和αp,從而允許s n和s P的優(yōu)化不完全同步,其權(quán)重的大小與離最優(yōu)點的距離大小成正相關(guān)。例如,當(dāng)相似性分?jǐn)?shù)與優(yōu)化目標(biāo)偏離越遠(yuǎn),匹配的加權(quán)因子則越大,從而更新梯度越大,使學(xué)習(xí)速率適應(yīng)具體的優(yōu)化狀態(tài)。公式中表示為把(s n-s p)泛化為(αn s n-αn s p),使αn和αp與s n和s P分別為線性關(guān)系,該方式所得決策邊界為αn s n-αn s p=m,且該分界面呈現(xiàn)的是圓弧形狀。在該決策邊界上損失函數(shù)有明確的收斂狀態(tài),使特征更具鑒別力。
綜上,損失函數(shù)部分先由中心損失與三元組損失聯(lián)合訓(xùn)練,經(jīng)一個全連接層降維后,計算圓損失,以得到最終損失。其中,中心損失使網(wǎng)絡(luò)學(xué)習(xí)出來一個類中心,優(yōu)化類內(nèi)距離。三元組損失負(fù)責(zé)使類間距離大于類內(nèi)距離。圓損失使優(yōu)化方式更加靈活,優(yōu)化目的更明確。三種損失聯(lián)合對網(wǎng)絡(luò)進(jìn)行更好的優(yōu)化,保證模型學(xué)習(xí)到具有辨別性的特征??傮w損失函數(shù)為:
其中,β是中心損失的權(quán)重系數(shù),本文實驗?zāi)J(rèn)為0.005。由于在分類任務(wù)中,訓(xùn)練時常有過擬合的風(fēng)險,因此本文對身份標(biāo)簽采取了標(biāo)簽平滑(Label smoothing,LS)[13]處理,用來更好的提升泛化能力。
本文方法在基于Pytorch深度學(xué)習(xí)框架工具包上進(jìn)行網(wǎng)絡(luò)搭建,使用4個NVIDIA GeForce RTX 2080 GPU進(jìn)行數(shù)據(jù)并行加速。實驗平臺基于64位的Ubuntu1 6.04操作系統(tǒng);基于python3.6.4的深度學(xué)習(xí)框架Pytorch1.1.0完成程序編程;骨干網(wǎng)絡(luò)選用ResNet-50;輸入行人圖像的像素均為256×128,并采用標(biāo)簽平滑訓(xùn)練模型,平滑因子ε=0.1。
為了提高訓(xùn)練效果,本文采用對訓(xùn)練學(xué)習(xí)率進(jìn)行預(yù)熱處理的方法,即把初始學(xué)習(xí)率設(shè)為3.5×1 0-5,隨后不斷增加,直到10個epoch時增大到3.5×1 0-4,并在迭代次數(shù)為40時減小為3.5×10-5,再在迭代次數(shù)為70時減小為3.5×10-6,其它時間保持不變。每次訓(xùn)練的迭代次數(shù)均設(shè)為120,批量大小為64。訓(xùn)練時優(yōu)化器為ADAM,進(jìn)行梯度參數(shù)更新,其中兩個超參數(shù)β1、β2均為0.9。
2.2.1 數(shù)據(jù)集
為驗證本文模型的有效性,分別在Market1501與DukeMTMC-reID兩個主流公共數(shù)據(jù)集上完成了相關(guān)消融實驗和對比實驗,并與一些近期提出的行人重識別算法進(jìn)行了結(jié)果對比。數(shù)據(jù)集詳盡信息見表1。
表1 數(shù)據(jù)集信息Tab.1 Information of datasets
Market-1501數(shù)據(jù)集是由6個不同的室外攝像頭拍攝而來,攝像頭為5個高分辨率,1個低分辨率。數(shù)據(jù)集總共包含有1 501個行人的32 217張圖像,使用DPM檢測器來進(jìn)行行人檢測矩形框的標(biāo)注。
DukeMTMC-reID數(shù)據(jù)集是在杜克大學(xué)校園的冬季,由8個不同的室外高分辨率攝像機拍攝而來。數(shù)據(jù)集總共包含有1 812個行人的36 441張圖像。其中行人圖像存在不少遮擋的情況,具有較大的識別難度。
2.2.2 評估指標(biāo)
實驗中采用行人重識別中的首位匹配率Rank-1和平均精度均值(mAP)作為評價指標(biāo)。Rank-k為根據(jù)相似度由高到低排列后的前k個行人里與查詢樣本身份相同的準(zhǔn)確率;Rank-1即相似度最高的檢索結(jié)果為正確匹配的概率,最能反映模型的識別能力。mAP即平均精度均值,是指將分類問題中所有類別的平均精度(AP)相加再取平均值,可以較全面的衡量網(wǎng)絡(luò)的識別能力和穩(wěn)定性。計算步驟如下:
(1)求準(zhǔn)確率P:
其中,T P表示被正確預(yù)測的行人圖片個數(shù),F(xiàn) P為被錯誤預(yù)測的行人圖片個數(shù)。
(2)求平均精度AP(某類別行人檢測結(jié)果的全部準(zhǔn)確率的平均值):
其中,i表示檢測出行人圖片的序號,分母表示含有第C個類別行人圖片的數(shù)量。
(3)求任務(wù)中各個類別平均精度的均值(即為平均精度均值mA P):
其中,k表示類之間平均精度的序號,C為總類別數(shù)。
2.3.1 消融實驗
為了充分體現(xiàn)本文采用的訓(xùn)練技巧對模型骨干網(wǎng)絡(luò)的提升效果,分別在兩個數(shù)據(jù)集上完成了神經(jīng)網(wǎng)絡(luò)研究中常見的消融實驗。即通過疊加部分網(wǎng)絡(luò)結(jié)構(gòu),分別檢測疊加部分對模型性能的影響。其中骨干網(wǎng)絡(luò)為ResNet50,通過在骨干網(wǎng)絡(luò)上依次疊加特定訓(xùn)練技巧來進(jìn)行各結(jié)構(gòu)對性能影響的驗證。
表2 中,RE為隨機擦除,Auto為自動增強,LS為標(biāo)簽平滑,Stride=1為下采樣步長設(shè)置為1,BN為批歸一化處理。由表中實驗數(shù)據(jù)可知,不同訓(xùn)練技巧的添加對原始骨干網(wǎng)絡(luò)的準(zhǔn)確率均有不同程度的提高。最終形成的baseline較ResNet50網(wǎng)絡(luò),在Market-1501數(shù)據(jù)集上,Rank-1和mAP分別提升了6.7%和6.6%,達(dá)到了90.1%和76.2%。在DukeMTMC-ReID數(shù)據(jù)集上,Rank-1和mAP分別提升了6.8%和12.8%,達(dá)到了85.1%和74.0%。
表2 消融實驗Tab.2 Ablation Experiment
2.3.2 對比實驗
為驗證本文提出的融合損失優(yōu)化方法對模型改進(jìn)的效果,基于本文基準(zhǔn)網(wǎng)絡(luò)進(jìn)行了不同損失優(yōu)化的對比實驗。
表3 中,L i d為原始的身份分類損失,作為基準(zhǔn)網(wǎng)絡(luò)(baseline),其表示只訓(xùn)練身份分類損失函數(shù)(softmax+cross entropy)的網(wǎng)絡(luò);L i d+L center為在softmax上添加中心損失后的網(wǎng)絡(luò);L i d+L tr ipl et為聯(lián)合分類損失與三元組損失聯(lián)合訓(xùn)練的網(wǎng)絡(luò);L id+L tri plet+L center則表示基準(zhǔn)網(wǎng)絡(luò)加入了中心損失與三元組損失的訓(xùn)練。由表3數(shù)據(jù)可知,通過對原始基準(zhǔn)網(wǎng)絡(luò)的損失優(yōu)化,模型性能不斷的提升。
表3 與基準(zhǔn)網(wǎng)絡(luò)的對比實驗Tab.3 Experiments compared with baseline
表4 中,L circ l e為在基準(zhǔn)網(wǎng)絡(luò)中的交叉熵?fù)p失里增加類內(nèi)相似和類間相似的加權(quán)因子后的網(wǎng)絡(luò)。作為初步優(yōu)化后的baseline,L ci rcle+L center和L cir cl e+L t ri plet分別為在此基礎(chǔ)上增加中心損失和三元組損失;L ci rcle+L cent er+L t ri plet為本文所提出的網(wǎng)絡(luò)結(jié)構(gòu),即融合加權(quán)因子與中心損失再與三元組損失聯(lián)合訓(xùn)練的網(wǎng)絡(luò)。由表4數(shù)據(jù)可知,在添加損失優(yōu)化函數(shù)之后,模型基準(zhǔn)網(wǎng)絡(luò)性能不斷得到提升。模型在Market-1501數(shù)據(jù)集上,Rank-1和mAP值分別為95.2%和86.1%;在DukeMTMC-ReID數(shù)據(jù)集上,Rank-1和mAP值分別為89.6%和79.8%。由此證明,加入本文的損失優(yōu)化模塊,能有效的讓網(wǎng)絡(luò)具有更強判別力與泛化能力,相較原始基準(zhǔn)網(wǎng)絡(luò)在準(zhǔn)確率上有明顯的提高。
表4 與優(yōu)化后的基準(zhǔn)網(wǎng)絡(luò)的對比實驗Tab.4 Experiments comparison with optimized baseline
2.3.3 與其它主流方法比較
本文提出網(wǎng)絡(luò)與一些主流網(wǎng)絡(luò)性能的比較結(jié)果見表5。由表中數(shù)據(jù)顯示,本文所提網(wǎng)絡(luò)性能指標(biāo)在兩個不同數(shù)據(jù)集上得到的Rank-1和mAP,比這些主流網(wǎng)絡(luò)性能上存在不同程度的優(yōu)勢。
表5 與其它行人重識別方法比較Tab.5 Comparison with other Person Re-identification methods
由于Re-rank是行人重識別網(wǎng)絡(luò)提高精度的重要步驟,其原理是通過計算馬氏距離和杰卡德距離,對網(wǎng)絡(luò)訓(xùn)練結(jié)果重新排序的過程。因此,本文采用Re-Rank[21]對網(wǎng)絡(luò)結(jié)果進(jìn)一步提升。在Re-rank優(yōu)化后,Market-1501數(shù)據(jù)集上,Rank-1和mAP值分別達(dá)到95.7%和90.5%;在DukeMTMC-ReID數(shù)據(jù)集上,Rank-1和mAP值分別為91.6%和81.6%。
2.3.4 附加實驗
為檢測行人重識別中不同訓(xùn)練批次大小對結(jié)果的影響,本文采用不同P×K值對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,見表6。其中,P為行人身份的數(shù)量,K為同一身份行人的圖片數(shù)。
由圖2中a、b曲線可以看出,模型在P×K值設(shè)置為4×16時,達(dá)到最佳性能。通過對比可初步推斷,模型的性能隨batch-size的增大而提升,而當(dāng)?shù)竭_(dá)一定大小則結(jié)果趨于穩(wěn)定且不再增加。
表6 模型設(shè)置不同batch sizes數(shù)量大小的實驗Tab.6 The experiment of setting different batch size in the model
由于可視化結(jié)果可以更直觀的驗證模型對識別任務(wù)的改進(jìn)效果,本文基于Market-1501數(shù)據(jù)集的可視化結(jié)果比較如圖3所示。圖3(a)和圖3(c)為基于基準(zhǔn)網(wǎng)絡(luò)的重識別結(jié)果。即只結(jié)合本文所提訓(xùn)練技巧,并未融合損失優(yōu)化的ResNet50網(wǎng)絡(luò);圖3(b)和圖3(d)表示融合損失優(yōu)化后網(wǎng)絡(luò)的結(jié)果。
圖中每行第一張圖像為待查詢的目標(biāo)行人,之后10張圖像表示為按準(zhǔn)確率逐漸減小排列的前10張查詢結(jié)果,且紅色線框圖像為正確查詢的結(jié)果,藍(lán)色線框圖像為錯誤查詢的結(jié)果。在圖3(a)、圖3(b)的對比中,基準(zhǔn)網(wǎng)絡(luò)的前6張為正確,后4張為錯誤;本文網(wǎng)絡(luò)則前9張為正確,只有最后一張為錯誤。圖3(c)、圖3(d)的對比中,基準(zhǔn)網(wǎng)絡(luò)同樣是前6張為正確,后4張為錯誤,本文網(wǎng)絡(luò)為前8張為正確,后兩張為錯誤。由此證明,本文網(wǎng)絡(luò)有效的提升了識別的準(zhǔn)確度。
圖2 不同batch sizes在數(shù)據(jù)集上的性能對比Fig.2 Performance comparison of different batch sizes on datasets
圖3 Market-1501數(shù)據(jù)集可視化結(jié)果對比Fig.3 Visual results comparison of Market-1501 dataset
針對改善行人重識別中類內(nèi)差異大、類間差異小的問題,本文提出了融合損失優(yōu)化的一種行人重識別方法。通過對交叉熵?fù)p失函數(shù)進(jìn)行添加類內(nèi)相似度和類間相似度的加權(quán)因子,使優(yōu)化方式更加靈活,優(yōu)化目的更明確。并提出添加中心損失來配合softmax訓(xùn)練,約束了類內(nèi)緊湊性。并與三元組損失聯(lián)合訓(xùn)練,一起作用于識別任務(wù)中。通過本文方法的改進(jìn),使得網(wǎng)絡(luò)對行人的判別能力提升,提高了行人重識別的精度。并在主流公開數(shù)據(jù)集上對模型進(jìn)行了驗證。實驗表明,改進(jìn)后的網(wǎng)絡(luò)模型在具有更好的魯棒性和泛化能力的同時,對識別任務(wù)的準(zhǔn)確率取得了有效提高。