許茹玉,吳 琳,粟興旺,黃金玻,王曉明
西華大學 計算機與軟件工程學院,成都 610039
行人重識別(person re-identification)是計算機視覺方向用來判斷一組由多個攝像機拍攝的圖像或視頻序列中是否存在某特定行人的檢索技術[1]。近年來隨著深度學習的快速發展,行人重識別方法在卷積神經網絡中得到了廣泛應用,并在智慧城市、人機交互、虛擬現實、監控安防等現實背景下加以使用,給人類生活帶來了便利。但攝像機位于不同角度拍攝圖片、拍攝時行人的姿態不同、不同攝像機所拍攝圖像的尺寸及分辨率不同、行人圖片里的遮擋問題、拍攝時的光線問題、跨模態的異構數據問題,這些困難使得行人重識別成為了具有巨大挑戰的研究課題[2]。
傳統的行人重識別技術都在探究手工生成的低級視覺圖像特征以及如何更好地表示特征與特征間的相似性度量計算方法[3-6]。而在深度學習出現后,利用深度神經網絡的模型在行人重識別領域開始廣泛應用[7-9]。深度學習與傳統的手工設計方法完全不同,基于深度學習的行人重識別方法可以通過神經網絡模型自動地提取行人圖片的特征,并通過損失函數學習到不錯的相似性度量結果,即將提取行人特征與度量學習的相似性對比融合在一個模塊。
早期將深度學習引入行人重識別領域時,全局特征作為首要選擇。Wang等人[10]使用卷積神經網絡將一張圖片直接輸入卷積網絡提取特征,該方式無法關注到行人的顯著特征,因此性能提升并不高。隨后,為提高算法的魯棒性能,Zhang等人[11]則從全局模塊出發,設計了全局注意力模塊(RGA),該模塊既包含了局部特征,又包含了全局特征間的關系特征,使網絡可以提取更具區分度的特征,但該方法造成了計算量的驟增。Sun 等[12]將圖片輸入骨干網絡resnet50 后,將特征圖水平且均勻的分割成6 部分,使用注意力機制RPP(refined part pooling)進行分塊后的語義信息校準。但由于沒有考慮相鄰塊間的聯系,易丟失判別性信息。這種使用切片特征的方法具有很高的靈活性。但是遇到背景噪聲過大、遮擋現象嚴重的問題時會相對敏感。Zhao 等人[13]首次考慮人體結構信息,提出幫助對齊局部信息的主軸網絡(spindle net)。Wang 等[14]則引入姿態估計來解決圖片中物體遮擋問題,聚焦未遮擋區域。但引入人體結構信息的姿態估計方法需要額外的姿態估計模型進行輔助,同時會產生大量噪聲。Wang等人[15]提出了多粒度網絡(mutiple granularity network,MGN),使用了一種將全局信息與細粒度局部信息結合的端到端的特征學習策略,但該模型的泛化能力不足,只在部分數據集上表現較好。隨后,Park等人[16]提出了一種新的關系網絡結構(relation network for person re-identification,RRⅠD)。該關系網絡利用身體單個部位與其他剩余部位之間的關系進行特征表示,雖然提高了區分性,但難以挖掘更多關于特征的細節信息。
基于上述問題,本文提出一種端到端的多分支深度網絡模型DFFRRⅠD,用來解決特征提取過程中細節信息挖掘不充分造成的識別精度低的問題。該方法從全局特征與局部特征的角度共同出發,設計了一種涵蓋多重粒度的關系網絡,充分挖掘全局特征、局部特征以及局部特征間的關聯性特征,使得提取的特征更具全面性。該模型包含了三個分支:第一個分支提取粗糙的全局特征;第二個分支采用水平切塊的方式,提取細粒度特征信息;第三個分支則考慮人體各個部位與其他部位的關系,使提取的特征更具區分性。三個分支協作,豐富特征圖信息,便于選擇更具判別性的身體特征,從而提高網絡模型的識別精度以及泛化能力。
多粒度網絡MGN 使用了全局與局部特征相結合的特征提取策略,設計了一個全局分支,兩個局部分支,通過將特征圖按照不同尺度劃分為一塊、兩塊和三塊,在三個分支中獲得不同粒度的特征信息,利用等分后的局部特征進行獨立學習,得到了較好的效果,但沒有考慮局部信息間的關聯性。RRⅠD 網絡中的關系模型(one-vs.rest)則考慮了人體局部與剩余局部的關系,但局部特征的信息沒有充分利用,難以挖掘更多的顯著性細節信息。
本文借鑒了MGN與RRⅠD中關系模型(one-vs.rest)的思想,設計了多樣化細粒度特征與關系網絡的深度網絡結構(DFFRRⅠD)。總體結構設計如圖1 所示。首先將行人圖片通過backbone網絡提取出大小為H×W×C的特征圖,其中H、W、C分別代表高度、寬度和通道數。生成的特征圖被水平等分成6塊,隨后經過全局特征分支和局部特征分支進一步處理特征。設計全局特征分支的目的是提取粗略的特征,以捕捉不同行人之間最明顯的差異去代表某個特定行人,例如衣服的顏色、紋理特征以及包含語義信息的形狀特征等。但提取的全局特征沒有位置信息,無法分辨出前景與背景,會受到背景噪聲的干擾,因此設計了兩個局部特征分支。在第一個局部分支中,水平分塊的局部特征圖里每一部分只包含這一部分的局部信息,并不會受到其他局部信息的干擾。這樣就可以使局部特征集中于關注本塊內部的信息,當遇到遮擋問題時,一些局部特征也穩定存在,從而使特征信息仍具有區分性。另外的局部特征分支則考慮身體局部與其他部位之間的關系,結合了局部與其他剩余局部的特征。其作為第一個局部分支的補充,防止由于相應部分具有相似的行人特征屬性,混淆了不同行人,影響網絡的判別能力。在測試階段把沿著通道維度連接的全局與局部特征作為行人特征的最終表示。結合了局部特征和全局特征的信息經過不斷地學習,可以完善特征的全面性。本文使用交叉熵損失、標簽平滑交叉熵損失和難樣本三元組損失對設計的模型進行端到端的訓練,實現網絡模型的優化。

圖1 原始模型與本文所設計的網絡對比框圖Fig.1 Block diagram of original model compared to network designed in this paper
本文使用經過ⅠmageNet[17]分類訓練的ResNet-50[18]作為主干網絡,并移除ResNet-50 網絡最后的全連接層。將輸入的原始行人圖片經過該網絡,提取初始特征圖。DFFRRⅠD網絡總體框圖如圖2所示。

圖2 本文所設計的網絡總體框圖Fig.2 Overall block diagram of network designed in this paper
1.2.1 全局模塊
全局模塊學習行人特征的整體屬性,不需要任何分塊信息。通過主干網絡提取最初的全局特征,此時的特征維度為2 048 維,再經過一個卷積層將特征圖降維至256 維,并利用后接的非線性激活函數ReLU 增加非線性特性。使用1×1卷積核[19]降維,可以使網絡結構更加緊湊,同時又可以減少參數量,增強跨通道之間的交互性。使用全局最大池化的方法將降維至256 的特征圖進一步處理得到1×1×c的特征q0。
1.2.2 多樣化細粒度特征提取模塊
多樣化細粒度局部模塊中初始特征具體劃分為2塊、4 塊和6 塊,并獨立學習局部特征。具體劃分如圖3所示,不同數量的分區帶來了不同的內容粒度。將左列中原始的行人圖片視為最粗粒度級別,從左向右依次為原始圖片分成2塊、4塊和6塊的行人分區。圖像水平分割的塊數越多,分割得到的粒度就越細。劃分后的每個區域僅包括整個身體的局部信息,過濾了其他不相關塊中信息的干擾。在全局特征學習中由于特征圖位置信息被忽略所導致的類間相似性難以適應及類內差異較大的問題由細粒度局部模塊來解決。通過不同粒度特征在有限信息內的學習,具有最顯著性的細節就會被挖掘出來。

圖3 身體劃分由粗到細的粒度Fig.3 Body divided into coarse to fine particle sizes
由于將特征圖分塊后,進行后續處理的操作是一致的,因此只介紹將原始特征圖分為6塊后得到的細粒度特征提取操作。將原始圖像經過主干網絡提取的初始特征水平劃分為6個區域,每個區域的通道維數為2 048維。每個局部分區都使用全局最大池化的方式進行處理,并使用一個帶有批量歸一化和ReLU 的1×1 卷積層將2 048 維特征降維,減少至256 維,得到大小為1×1×256的特征qi(i=1,2,…,6) 。
需要注意的是:該模塊的所有局部特征只進行分類學習,不進行度量學習。這是因為理論上將圖片分為上下兩塊后,上半部分是行人上半身,下半部分是行人下半身。但在實際圖片中,有可能行人位于下半部分,上半部分都是背景信息。假設將背景信息進行度量學習,就會產生無實際意義的數據污點,污點數據學習到錯誤信息會導致模型崩潰,引起預測錯誤。因此,本模塊僅使用交叉熵損失和標簽平滑交叉熵損失進行分類學習。
1.2.3 局部與剩余局部關系模塊
由于多樣化細粒度特征提取模塊中各個部分都是孤立的,沒有考慮身體局部與其他部分之間的關系,這干擾了不是同一行人但擁有相似性局部特征的相似性計算,造成預測錯誤。因此將局部與剩余局部關系模塊作為細粒度特征提取模塊的重要補充。通過結合局部特征與剩余局部特征的信息,保持特征間的緊湊性,增強對遮擋問題的區分性及魯棒性,從而提高網絡學習的判別能力。經過主干網絡的行人圖片同樣被劃分為6塊、4 塊和2 塊,經過全局最大池化后,每一個局部特征都處理為1×1×2 048大小的特征圖,由于后續操作相同,因此本節只介紹特征圖被劃分為6 個局部區域的特征提取方法。
具體操作如圖4 所示。one-vs.rest[16]使用大小為1×1×2 048 的pi(i=1,2,…,6) 表示局部特征,本文則選取pi,i+1,即pi與pi+1之和,作為本模塊使用的局部特征。增大局部特征區域,縮小剩余部分特征區域,可以更好地表示局部與剩余局部間的關系。本文2.4.1小節對one-vs.rest模塊與本文改進后的局部與剩余部分模塊two-vs.rest進行了對比實驗,以證明改進的有效性。

圖4 身體局部與剩余部分關系網絡改進后的結構圖Fig.4 Structure diagram of network of relationships between parts of body and rest of body
對于選定的某個局部特征pi,i+1,經過1×1卷積層、批量歸一化和ReLU進行降維與非線性激活,將通道維度降至256維,得到大小為1×1×256的局部特征。剩余部分特征pj使用平均池化的方法得到大小為1×1×256的特征ri,具體公式可以表示為:
利用公式(1)得到的排除某一局部特征后剩余部分特征ri,經過1×1卷積層后得到1×1×256大小的特征。特征與特征rˉi進行拼接,由此得到身體局部與剩余局部間的關系。拼接后得到的維度是直接相加的,特征變為512 維。之后再使用1×1 卷積層將特征大小變換為1×1×256。通道降維至256維的目的是將含有局部與剩余局部關系信息的特征與局部特征進行殘差連接,將二者之間的關系信息轉移至si,其過程可以表示為:
式中,Rp為由1×1 卷積、批量歸一化以及激活函數ReLU所組成的子網絡;T表示特征間的串聯。
引入殘差連接的作用是在訓練中復雜的關系特征學習效果不好的情況下,局部特征仍然可以不受特征干擾不斷學習,增強對遮擋問題的區分性及魯棒性,且保持了特征間的緊湊性。本文考慮了當特征被切分為兩塊時,不能使用相加操作處理pi與pi+1,因此選取pi(i=1) 作為局部特征,pi+1作為剩余部分特征。特征進行水平分割后,選取局部特征與剩余局部特征的方法如圖5 所示,特征圖劃分為幾塊,則有幾種選取方式。

圖5 局部特征與剩余部分特征選取圖Fig.5 Diagram of local and residual feature selection
本文網絡利用行人圖像的真實標簽進行有監督的表征學習。使用交叉熵損失、標簽平滑交叉熵損失與難樣本三元組損失來訓練網絡模型,并引入參數λ對這三個損失進行平衡。具體公式表示為:
式中,Lce表示交叉熵損失;Llsce表示標簽平滑交叉熵損失;Ltriplet表示三元組損失。
交叉熵損失函數可以解決多分類問題,是深度學習領域廣泛應用的損失函數。該損失函數采用了類間競爭機制,更加關心正確標簽預測結果的準確性。因此擅長學習類間的信息,忽略了對錯誤標簽的損失計算,引起預測錯誤率增加。但交叉熵損失使用硬標簽作為優化目標,不易造成信息損失。
標簽平滑交叉熵損失函數[20]利用正則化技術將硬標簽轉化為軟標簽對圖像進行分類。采用軟標簽分類可以使同一類聚集得更緊湊,降低模型預測的確定性,防止模型過擬合。但在一定程度上會損失信息,抹去一些關鍵的區分信息。考慮到這個問題,本文采用交叉熵損失與標簽平滑交叉熵損失相結合的方式進行分類計算。一定程度上減少了信息損失,又可以預防模型過度自信,從而更好地優化網絡。
交叉熵損失函數與標簽平滑交叉熵損失函數被定義為:
式中,N表示訓練過程中梯度下降的小批量樣本數;K表示數據集中行人圖片的標簽數量;ε表示平滑因子;yn表示行人圖像的真實標簽樣本數;表示每個特征qi和si預測的標簽。具體被定義為:
式中,Wk i表示全連接層中標簽為k的第i個行人類別的權重向量;qi表示使用網絡模型最終提取的行人特征。
三元組損失函數[21]是在深度學習中廣泛使用的度量計算函數。其原理是縮小正樣本對間的距離,增大負樣本對間的距離,使得同類樣本在特征空間聚集。但只能對簡單的樣本進行區分,并不利于網絡的訓練學習。
所以本文使用改進后的難樣本三元組損失函數[22]進行度量學習。改進后的損失函數在每一個訓練批次都選擇距離最遠的正樣本圖片和距離最近的負樣本圖片訓練網絡模型,使網絡通過學習得到更佳的特征表示,增強網絡模型的泛化能力。具體的公式被定義為:
式中,NK表示一個批量里選取的行人數量;NM表示一個批量里對每個行人所選取的圖片數量;N=NK NM,表示一個批量的大小;α表示邊緣參數,用于控制特征空間里正負樣本對的距離,使用歐氏距離計算;qiA,j表示錨定圖片(anchor)的特征;qiP,j表示正樣本圖片的特征;qiN,j表示負樣本圖片的特征。
本文使用行人重識別領域公開的CUHK03[23]、Market1501[24]、DukeMTMC-ReⅠD[25]這三個大型數據集進行充分的實驗,以證明本文提出的DFFRRⅠD 模型的有效性。三個數據集的屬性信息如表1所示。

表1 數據集基本屬性信息Table 1 Dataset basic property information
CUHK03 數據集提供了由5 對攝像機采集的1 467個行人,共含有14 097 張圖片。通過手工裁剪和DPM(deformable part model)自動檢測這兩種方法框出行人。將其分成兩部分,一部分用于訓練,包含767 個行人,共7 365張圖片,另一部分用于測試和查詢,含有767個行人,共6 732張圖片。
Market1501數據集使用5個高清攝像頭和1個低清攝像頭,共6 個攝像機所捕獲的包含1 501 個行人的共32 668 張圖像。使用相同的方法從拍攝圖像中切割出行人。數據集中的751個行人,共12 936張圖片用于訓練,另外的750 個行人,其中3 368 張圖片用于查詢,19 732張圖片則用來測試。
DukeMTMC-ReⅠD數據集包含了由8個攝像機拍攝的1 401 個行人,共36 411 張行人圖片。其中702 個行人,共16 522 張圖片用于訓練,剩余702 個行人圖片中有2 228張用于查詢,17 661張圖片用于測試。
本文的算法在深度學習框架pytorch上進行訓練及測試,以證實訓練好的網絡模型可以提高行人分類的準確性。其實驗環境如表2所示。

表2 實驗環境基本信息Table 2 Basic information about experimental environment
使用MSRA[26]方法進行網絡權重的初始化。將數據集的所有圖片裁剪為384×128。本文使用水平翻轉和隨機擦除的方法對數據集進行擴充。實驗使用動量為0.9 的隨機梯度下降法(SGD)作為優化器,權重衰減系數設定為0.000 5進行模型的優化。在訓練集里隨機選擇16 個行人,每個行人選擇4 張圖片作為小批量樣本,batchsize 的大小設定為64。主干網絡resnet50 的初始學習率設置為1×10-3,其他模塊的初始學習率設置為1×10-2。模型需要80個epochs進行訓練,從第40個epochs,每20 個epochs 學習率衰減10 倍。在所有實驗中,權重參數λ采用經驗值的方式固定設置為2。
本文模型使用rank-n和mAP 評估方法的性能。rank-n表示搜索結果中置信度最高的前n張圖片,計算n張圖片中含有正確結果的概率,反映出檢索的精度。mAP 表示平均精度的均值,計算的是測試集提取樣本中正確結果的概率,反映出檢索的平均正確率。
2.4.1 模型有效性驗證
為了驗證本文所設計算法的有效性,使用Market1501和DukeMTMC-ReⅠD這兩個數據集,將改進的關系模塊與RRⅠD 的one-vs.rest 模塊進行比較,同時將設計的三個模塊進行組合實驗。Ⅰ表示本文設計的全局模塊,Ⅱ表示本文設計的多樣化細粒度特征提取模塊,Ⅲ表示RRⅠD的one-vs.rest模塊,Ⅳ表示本文對one-vs.rest改進后的two-vs.rest關系模塊。
表3 展示了原本關系模塊與改進后關系模塊的復雜度計算量。由表3可知:與原本的關系模塊相比,twovs.rest 在Market1501 數據集上,mAP 提高了0.3 個百分點,rank-1 提高了0.3 個百分點,rank-5 精度則持平。使用DukeMTMC-ReⅠD數據集進行實驗,mAP較原本模塊提高了0.2個百分點,rank-1與rank-5分別提高了-0.2個百分點、0.2個百分點。表3中的實驗數據表明本文基于one-vs.rest 關系模塊所改進的two-vs.rest 關系模塊所包含的關系信息更具有區分性,證明了改進的有效性。

表3 one-vs.rest與two-vs.rest的對比結果Table 3 Comparison results of one-vs.rest and two-vs.rest 單位:%
表4展示了本文設計的三個模塊相互組合后,所需要的參數量及浮點計算量。由表4可知:只使用關系模型two-vs.rest 的單分支網絡模型所得到的實驗數據精度是最低的;使用關系網絡two-vs.rest與其他兩個模塊相結合的雙分支網絡模型比原有的單分支網絡模型所得到的實驗數據精度高一些;將三個模塊相組合的三分支網絡模型所得的數據精度又優于單分支網絡模型和雙分支網絡結構模型。這說明三個模塊可以相互補充,使模型提取到顯著性更強的細節信息,從而使三個模塊相組合構成的網絡模型得到的各項數據精度達到了最高。

表4 四種網絡結構的對比結果Table 4 Comparison results of four network structures 單位:%
2.4.2 損失有效性驗證
為了驗證本文使用交叉熵損失與標簽平滑損失共同進行分類比單獨使用一個損失分類的效果更佳。在Market1501 數據集上將設計好的網絡模型使用單個或組合的交叉熵損失進行了對比實驗。Cross-entroy表示交叉熵損失。LabelSmooth 表示標簽平滑交叉熵損失,Cross-entroy+LabelSmooth 表示交叉熵損失與標簽平滑交叉熵損失相加的損失。具體實驗結果如圖6所示。

圖6 損失函數的對比結果Fig.6 Comparison results of loss functions
針對分類損失的實驗結果,印證了本文的猜想:交叉熵損失會降低模型預測準確率,但一定程度保持了信息的完整性;標簽平滑交叉熵損失會提高模型預測精度,但造成了信息損失。因此將二者聯合作為本文的分類損失,模型的預測精度會進一步提高。
2.4.3 與其他先進算法對比
本文所提方法DFFRRⅠD與部分先進的行人重識別方法進行了比較。首先選取部分主流算法與本文方法在參數規模與復雜度方面進行了對比,選取的部分主流算法包含了SNR、PCB、MGN、RRⅠD、Triplet、SVDNet、BigTricks、AlignedReid、HPM。具體對比結果如圖7 所示,本文算法相較于RRⅠD,參數量減少了2.96,復雜度則持平,而MGN的參數規模與復雜度都是極高的。

圖7 本文算法與主流算法復雜度的對比結果Fig.7 Comparison results between proposed algorithm and mainstream algorithm of complexity
之后使用Market1501 和DukeMTMC-ReⅠD 這兩個數據集進行實驗,實驗結果如表5 所示。對比方法包含:基于全局特征的Triplet[21]、SVDNet[27]、BigTricks[28]、Self-supervised[29];基于注意力機制的Mancs[30]、DuATM[31]、AANet[32];基于局部特征的PCB[12]、HOReⅠD[14]、MGN[15]、RRⅠD[16]、SCPNet[33]、AlignedReⅠD[34]、HPM[35](本文的實驗數據依據2.2 節的實驗環境復現源代碼所得)。在Market1501 數據集上,DFFRRⅠD 模型mAP 精度達到88.6%,優于其他先進方法,rank-1精度為95.3%,低于了MGN方法,高于對比的其他主流算法。在DukeMTMCReⅠD 數 據 集 上,DFFRRⅠD 模 型 的mAP 精 度 達 到 了78.9%,rank-1 精度為89.3%,優于本文所對比的其他先進方法。

表5 本文算法與主流算法在Market1501和DukeMTMC-ReⅠD數據集對比結果Table 5 Comparison results of proposed algorithm compared with mainstream algorithm on Market1501 and DukeMTMC-ReⅠD datasets 單位:%
為了進一步證明本文方法的有效性,本文在CUHK03數據集上與一些先進算法做了對比,具體實驗數據如表6 所示。由于該數據集的行人標注框可分為手工標注和檢測器自動標注兩種方式,因此又細分為Labeled 與Detected 這兩種情況。本文DFFRRⅠD 與RRⅠD 相比,mAP與rank-1在Labeled標注情況下,分別提高了1.9個百分點和2.6 個百分點;在Detected 自動檢測的數據集下,分別提高了0.8 個百分點和1.4 個百分點,且明顯高于進行對比的其他算法。使用CUHK03 數據集進一步驗證了本文方法的泛化能力及鑒別能力。

表6 本文算法在CUHK03數據集上與主流算法對比結果Table 6 Comparison results of proposed algorithm compared with mainstream algorithm on CUHK03 dataset單位:%
問題的復雜度、模型的復雜度、可用的訓練數據量都會影響算法的高效性能。復雜的問題需要使用復雜的模型進行解決,而模型的性能好壞又需要大量且有效的數據集去支撐。可以通過數據增強的方式獲取更多數據,大量的數據可以提升模型的泛化能力,預防模型過擬合。相比于Market1501數據集,DukeMTMC-ReⅠD和CUHK03數據集中的行人圖片,其行人通常有較大的姿勢變化,同時背景雜亂,遮擋更嚴重。因此行人圖像更難檢索,檢索精度相較Market1501數據集準確率也要低很多。
本文所提出的DFFRRⅠD模型更加關注顯著性的細節信息及關聯性特征。首先,設計了一個全局模塊,用于提取粗糙的整體特征。其次,將多樣化細粒度特征提取模塊作為全局模塊的補充,通過由粗到細的粒度切分,獲得顯著性細節信息。之后考慮到局部特征間的關聯性,改進了one-vs.rest模塊,將改進后的two-vs.rest模塊作為細粒度特征提取模塊的有效輔助。隨后將三個模塊提取的所有特征集成到分類網絡。利用交叉熵損失、標簽平滑交叉熵損失和三元組損失共同訓練網絡,以保持信息的完整性,提取出最具區分性的特征。最后,通過對比實驗證實了DFFRRⅠD 模型的競爭力。本文方法更加關注行人主體,網絡更具鑒別力,但遮擋問題仍給行人重識別研究帶來了巨大挑戰。本文雖然在數據集預處理階段使用隨機擦除的方式緩解了其他物體對行人的遮擋問題,但行人間的遮擋問題并未解決。在后期研究中,將引入姿態估計模型對行人圖像提取關鍵點信息,并與本文方法相結合用于指導網絡特征提取,使模型可以正確地關注目標行人,進而緩和行人間的遮擋造成的識別錯誤問題。