張仕遠,丁學明
(上海理工大學 光電信息與計算機工程學院,上海200093)
近年來計算機視覺領域中的行人重識別(Person Re-identification)的關注度逐漸升高。其作為圖像檢索問題的分支,目的是通過深度學習,檢索出數據集中存在特定身份的行人[1]。隨著人工智能科技的飛速發展,該技術在社區安防、刑事追蹤、智能機器人等領域都得到初步的應用。但由于圖像中行人的動作和光照強度都會存在的差異,且不同的圖像之間存在遮擋物、分辨率低等問題,會造成的類內與類間的差異變化,故行人重識別到目前仍然存在一些具有挑戰性的難點。
隨著深度學習的飛速發展以及高性能的計算硬件的不斷升級,深度學習方法已成為行人重識別任務的主流方法。其通過組合不同網絡結構,形成多層卷積神經網絡的非線性深度學習模型;對數據集中訓練集進行訓練;再通過計算歐式距離等方法來比較樣本間的相似度;進而獲得較高的性能指標。當前,基于深度卷積神經網絡的行人重識別,普遍使用的骨干網絡有ResNet[2]、VGGNet[3]等。因其在識別任務中能自動提取具有較強魯棒性行人圖像的特征,從而完成端到端的學習。隨著行人重識別的關注度逐年遞增,基于深度卷積神經網絡的許多具有優異性能的行人重識別算法被不斷提出。如:文獻[4]中提出的三元組損失函數,其優化目標是使與目標樣本行人屬于不同類行人之間的距離,要比屬于同類行人之間的距離大,從而增強模型的辨別能力。此外,還有四元組損失[5]、柱狀圖損失[6]和群組相似性學習[7]等其它類型的度量學習損失方法。文獻[8]中提出了批歸一化機制,加快了深度網絡的訓練,并讓網絡能承受增加的訓練率,同時減少了訓練步驟。
綜上所述,基于深度學習的方法雖然在一定程度上提升網絡性能,但大部分都是對網絡最終輸出的特征進行預測處理,而沒有使類內距離與類間距離達到理想效果。針對這個問題,本文提出一種對損失函數進行優化改進的行人重識別方法。通過在原始交叉熵損失上增加相似度的權重因子,使學習速率適應具體的優化狀態。從而使其優化方式更加靈活,收斂狀態更加明確,有助于使特征更具鑒別力。
為了達到縮小同類別樣本之間距離,本文添加了額外的監督機制,使輔助的損失函數配合softmax聯合訓練。在保持不同類間判別力的基礎上,讓訓練出特征的內聚性增強,約束了類內緊湊性,有效提升特征的辨識度,使模型泛化性和辨別能力有效提升。本文采用ResNet-50作骨干網絡,結合改進后的softmax與三元組損失聯合訓練,再經過改進后的交叉熵損失進行訓練,并結合一些訓練技巧對網絡加以改進,提升了網絡的性能。通過基于Market-1501與DukeMTMC-reID數據集上大量的實驗,結果表明本文方法提升了行人重識別準確率。
本文所提融合損失優化方法網絡的整體框架如圖1所示。網絡結構主要由預處理模塊、主干網絡模塊、聚合模塊和損失優化模塊組成。

圖1 損失優化模型的網絡框架Fig.1 Network framework of loss optimization model
首先對數據集通過Resize將圖像調整為固定大小。使輸入行人圖像的尺寸大小統一調整256×128像素,方便圖像批量處理。本文設置不同身份行人的數量P=16,同一身份行人的圖片數K=4來訓練樣本,故batch-size大小為64。對參與訓練的圖片使用隨機擦除(Random Erasing,RE)[9]。該方法是在輸入圖像中,將一個隨機區域的像素更改為隨機值的增強方法,從而避免模型出現過擬合的現象,使魯棒性增強。圖1中自動增強(Auto-augment)[10]是一種提高圖像分類準確性的算法,其運用自動搜索算法來尋找最佳的圖像處理策略。如:將圖像平移、旋轉和剪切等操作,從而提高特征表示的魯棒性。
本文基于ResNet-50為骨干網絡來提取行人圖片的特征,其具有引入殘差塊和網絡層數較深的特點。其中ResNet50可分為六部分,Conv1為卷積層模塊,由一個7×7的卷積核提取特征,其步長設置為2,故圖像的長寬均減小為原圖的一半。Conv2~Conv5模塊均采用重復的殘差塊提取特征,每個殘差模塊包含多層卷積層、下采樣層和激活函數。在下采樣層中,對特征圖進行下采樣的步長為2,使得長寬再度縮減,進一步降低圖像的分辨率。為獲取更多的特征信息,本文將ResNet50結尾空間的下采樣操作步長調整為1,以增大網絡輸出特征圖的尺寸,依次處理雖然會增加一些計算量,但卻能在不增加額外訓練參數的同時,對特征圖分辨率帶來較大的提升。
在骨干網絡階段完成后,對輸出特征圖進行池化操作。采用全局平均池化(Avg pooling),將骨干網生成的特征圖聚合成一個全局特征,得到的特征向量為2048維。再將其經過一個批歸一化層(Batch Normalization,BN),用于在網絡訓練過程中,獲得更加平滑的優化空間,并對學習率等超參具有更強的魯棒性,同時避免激活函數靠近其飽和區。其后經全連接層(Fully Connected,FC),最終輸出全局特征向量。
在行人重識別任務中,使用類標簽進行學習時,普遍采用結合softmax與交叉熵損失函數的方法,來學習同類別之間的信息。從而優化樣本和權重向量之間的相似度,提高正確預測的準確度。softmax是行人重識別中常用的分類損失函數,其公式為:

其中:x i代表d維空間中第i個深度特征;y表示其類別;W j為全連接層的參數矩陣W中的第j列;n為類別的數量;b為偏置;mini-batch的大小為m。
在softmax的監督學習中,得到的特征僅限于區別出各類別的差異,無法量化的控制各類別間與同類別內的距離,且同類樣本間特征差異無法約束。本文提出采樣中心損失函數[11]作為輔助損失函數,用以監督softmax在訓練時忽略的同類標簽樣本間的距離,使訓練出的特征具有向一個特征中心聚合的特性。中心損失函數公式為:

在mini-batch中,第j張圖片的標簽表示為y j,c y i為深度特征的第y i個類中心。其計算的是各樣本的特征與該類別的中心特征的歐式距離之和,并使其最小化,即最小化類內距離,其大小體現的是類內的變化。中心損失原理是根據對某個類別特征中心的學習來約束不同樣本特征與類別中心特征的偏移,形成同一種類樣本圍繞在樣本中心的狀態,則可以增加類內緊湊性,即使存在某些類內變化大的樣本,也不會影響識別結果的魯棒性。在原有的softmax上增加輔助函數的改進,更加有利于網絡的訓練。總體公式為:

在結合使用時,softmax負責區別類間距離,中心損失約束類內的距離,使學習到的特征判別度更高;再與三元組損失聯合訓練,使類間距離遠大于類內距離,即目標樣本正距離盡可能小于目標樣本負距離。

交叉熵損失(Cross-Entropy Loss)是行人重識別中常用的損失函數,其目標是增加類內相似度s P和縮減類間相似度s n,從而優化樣本和權重向量之間的相似度。具體表示為先將s n和s P組合成相似度對,為使(s n-s p)的值減小,則要減小s n或增大s P。 然而,由于二者系數均為1,故其優化的梯度幅度相同,對類內和類間的相似度懲罰程度也是一致的,不能以不同的速率學習優化。另外這種方式使用的決策邊界為s n-s p=m,該邊界在(s n,s p)空間中與s n=s p平行,導致通向邊界上任意點對應的難度相同,出現方向不唯一的收斂狀態,導致收斂狀態不明確。公式表示為:其中,K為與某個樣本比較,所有類內相似度分數的數量;L則表示與某個樣本比較,所有類間相似度分數的數量;m為余量;γ為松弛變量。 本文提出的采用圓損失函數[12]的方法進行訓練,引入加權因子αn和αp,從而允許s n和s P的優化不完全同步,其權重的大小與離最優點的距離大小成正相關。例如,當相似性分數與優化目標偏離越遠,匹配的加權因子則越大,從而更新梯度越大,使學習速率適應具體的優化狀態。公式中表示為把(s n-s p)泛化為(αn s n-αn s p),使αn和αp與s n和s P分別為線性關系,該方式所得決策邊界為αn s n-αn s p=m,且該分界面呈現的是圓弧形狀。在該決策邊界上損失函數有明確的收斂狀態,使特征更具鑒別力。

綜上,損失函數部分先由中心損失與三元組損失聯合訓練,經一個全連接層降維后,計算圓損失,以得到最終損失。其中,中心損失使網絡學習出來一個類中心,優化類內距離。三元組損失負責使類間距離大于類內距離。圓損失使優化方式更加靈活,優化目的更明確。三種損失聯合對網絡進行更好的優化,保證模型學習到具有辨別性的特征。總體損失函數為:

其中,β是中心損失的權重系數,本文實驗默認為0.005。由于在分類任務中,訓練時常有過擬合的風險,因此本文對身份標簽采取了標簽平滑(Label smoothing,LS)[13]處理,用來更好的提升泛化能力。
本文方法在基于Pytorch深度學習框架工具包上進行網絡搭建,使用4個NVIDIA GeForce RTX 2080 GPU進行數據并行加速。實驗平臺基于64位的Ubuntu1 6.04操作系統;基于python3.6.4的深度學習框架Pytorch1.1.0完成程序編程;骨干網絡選用ResNet-50;輸入行人圖像的像素均為256×128,并采用標簽平滑訓練模型,平滑因子ε=0.1。
為了提高訓練效果,本文采用對訓練學習率進行預熱處理的方法,即把初始學習率設為3.5×1 0-5,隨后不斷增加,直到10個epoch時增大到3.5×1 0-4,并在迭代次數為40時減小為3.5×10-5,再在迭代次數為70時減小為3.5×10-6,其它時間保持不變。每次訓練的迭代次數均設為120,批量大小為64。訓練時優化器為ADAM,進行梯度參數更新,其中兩個超參數β1、β2均為0.9。
2.2.1 數據集
為驗證本文模型的有效性,分別在Market1501與DukeMTMC-reID兩個主流公共數據集上完成了相關消融實驗和對比實驗,并與一些近期提出的行人重識別算法進行了結果對比。數據集詳盡信息見表1。

表1 數據集信息Tab.1 Information of datasets
Market-1501數據集是由6個不同的室外攝像頭拍攝而來,攝像頭為5個高分辨率,1個低分辨率。數據集總共包含有1 501個行人的32 217張圖像,使用DPM檢測器來進行行人檢測矩形框的標注。
DukeMTMC-reID數據集是在杜克大學校園的冬季,由8個不同的室外高分辨率攝像機拍攝而來。數據集總共包含有1 812個行人的36 441張圖像。其中行人圖像存在不少遮擋的情況,具有較大的識別難度。
2.2.2 評估指標
實驗中采用行人重識別中的首位匹配率Rank-1和平均精度均值(mAP)作為評價指標。Rank-k為根據相似度由高到低排列后的前k個行人里與查詢樣本身份相同的準確率;Rank-1即相似度最高的檢索結果為正確匹配的概率,最能反映模型的識別能力。mAP即平均精度均值,是指將分類問題中所有類別的平均精度(AP)相加再取平均值,可以較全面的衡量網絡的識別能力和穩定性。計算步驟如下:
(1)求準確率P:

其中,T P表示被正確預測的行人圖片個數,F P為被錯誤預測的行人圖片個數。
(2)求平均精度AP(某類別行人檢測結果的全部準確率的平均值):

其中,i表示檢測出行人圖片的序號,分母表示含有第C個類別行人圖片的數量。
(3)求任務中各個類別平均精度的均值(即為平均精度均值mA P):

其中,k表示類之間平均精度的序號,C為總類別數。
2.3.1 消融實驗
為了充分體現本文采用的訓練技巧對模型骨干網絡的提升效果,分別在兩個數據集上完成了神經網絡研究中常見的消融實驗。即通過疊加部分網絡結構,分別檢測疊加部分對模型性能的影響。其中骨干網絡為ResNet50,通過在骨干網絡上依次疊加特定訓練技巧來進行各結構對性能影響的驗證。
表2 中,RE為隨機擦除,Auto為自動增強,LS為標簽平滑,Stride=1為下采樣步長設置為1,BN為批歸一化處理。由表中實驗數據可知,不同訓練技巧的添加對原始骨干網絡的準確率均有不同程度的提高。最終形成的baseline較ResNet50網絡,在Market-1501數據集上,Rank-1和mAP分別提升了6.7%和6.6%,達到了90.1%和76.2%。在DukeMTMC-ReID數據集上,Rank-1和mAP分別提升了6.8%和12.8%,達到了85.1%和74.0%。

表2 消融實驗Tab.2 Ablation Experiment
2.3.2 對比實驗
為驗證本文提出的融合損失優化方法對模型改進的效果,基于本文基準網絡進行了不同損失優化的對比實驗。
表3 中,L i d為原始的身份分類損失,作為基準網絡(baseline),其表示只訓練身份分類損失函數(softmax+cross entropy)的網絡;L i d+L center為在softmax上添加中心損失后的網絡;L i d+L tr ipl et為聯合分類損失與三元組損失聯合訓練的網絡;L id+L tri plet+L center則表示基準網絡加入了中心損失與三元組損失的訓練。由表3數據可知,通過對原始基準網絡的損失優化,模型性能不斷的提升。

表3 與基準網絡的對比實驗Tab.3 Experiments compared with baseline
表4 中,L circ l e為在基準網絡中的交叉熵損失里增加類內相似和類間相似的加權因子后的網絡。作為初步優化后的baseline,L ci rcle+L center和L cir cl e+L t ri plet分別為在此基礎上增加中心損失和三元組損失;L ci rcle+L cent er+L t ri plet為本文所提出的網絡結構,即融合加權因子與中心損失再與三元組損失聯合訓練的網絡。由表4數據可知,在添加損失優化函數之后,模型基準網絡性能不斷得到提升。模型在Market-1501數據集上,Rank-1和mAP值分別為95.2%和86.1%;在DukeMTMC-ReID數據集上,Rank-1和mAP值分別為89.6%和79.8%。由此證明,加入本文的損失優化模塊,能有效的讓網絡具有更強判別力與泛化能力,相較原始基準網絡在準確率上有明顯的提高。

表4 與優化后的基準網絡的對比實驗Tab.4 Experiments comparison with optimized baseline
2.3.3 與其它主流方法比較
本文提出網絡與一些主流網絡性能的比較結果見表5。由表中數據顯示,本文所提網絡性能指標在兩個不同數據集上得到的Rank-1和mAP,比這些主流網絡性能上存在不同程度的優勢。

表5 與其它行人重識別方法比較Tab.5 Comparison with other Person Re-identification methods
由于Re-rank是行人重識別網絡提高精度的重要步驟,其原理是通過計算馬氏距離和杰卡德距離,對網絡訓練結果重新排序的過程。因此,本文采用Re-Rank[21]對網絡結果進一步提升。在Re-rank優化后,Market-1501數據集上,Rank-1和mAP值分別達到95.7%和90.5%;在DukeMTMC-ReID數據集上,Rank-1和mAP值分別為91.6%和81.6%。
2.3.4 附加實驗
為檢測行人重識別中不同訓練批次大小對結果的影響,本文采用不同P×K值對網絡進行訓練,見表6。其中,P為行人身份的數量,K為同一身份行人的圖片數。
由圖2中a、b曲線可以看出,模型在P×K值設置為4×16時,達到最佳性能。通過對比可初步推斷,模型的性能隨batch-size的增大而提升,而當到達一定大小則結果趨于穩定且不再增加。

表6 模型設置不同batch sizes數量大小的實驗Tab.6 The experiment of setting different batch size in the model
由于可視化結果可以更直觀的驗證模型對識別任務的改進效果,本文基于Market-1501數據集的可視化結果比較如圖3所示。圖3(a)和圖3(c)為基于基準網絡的重識別結果。即只結合本文所提訓練技巧,并未融合損失優化的ResNet50網絡;圖3(b)和圖3(d)表示融合損失優化后網絡的結果。
圖中每行第一張圖像為待查詢的目標行人,之后10張圖像表示為按準確率逐漸減小排列的前10張查詢結果,且紅色線框圖像為正確查詢的結果,藍色線框圖像為錯誤查詢的結果。在圖3(a)、圖3(b)的對比中,基準網絡的前6張為正確,后4張為錯誤;本文網絡則前9張為正確,只有最后一張為錯誤。圖3(c)、圖3(d)的對比中,基準網絡同樣是前6張為正確,后4張為錯誤,本文網絡為前8張為正確,后兩張為錯誤。由此證明,本文網絡有效的提升了識別的準確度。

圖2 不同batch sizes在數據集上的性能對比Fig.2 Performance comparison of different batch sizes on datasets

圖3 Market-1501數據集可視化結果對比Fig.3 Visual results comparison of Market-1501 dataset
針對改善行人重識別中類內差異大、類間差異小的問題,本文提出了融合損失優化的一種行人重識別方法。通過對交叉熵損失函數進行添加類內相似度和類間相似度的加權因子,使優化方式更加靈活,優化目的更明確。并提出添加中心損失來配合softmax訓練,約束了類內緊湊性。并與三元組損失聯合訓練,一起作用于識別任務中。通過本文方法的改進,使得網絡對行人的判別能力提升,提高了行人重識別的精度。并在主流公開數據集上對模型進行了驗證。實驗表明,改進后的網絡模型在具有更好的魯棒性和泛化能力的同時,對識別任務的準確率取得了有效提高。