徐龍壯,彭 力,朱鳳增
(江南大學 物聯網工程學院物聯網技術應用教育部工程研究中心,江蘇 無錫 214122)
行人重識別是一項在多攝像頭采集的行人圖像庫中識別出特定行人的技術,其廣泛應用于智能監(jiān)控與安保領域,可在龐雜的視頻監(jiān)控圖像中快速鎖定并追蹤目標行人。不同攝像頭通常無重疊視域且安裝位置與角度不同,受光照、視角、姿態(tài)與遮擋等因素影響,目標行人在不同攝像頭拍攝的畫面中外觀存在差異[1],這增加了行人重識別難度。因此,行人重識別任務仍面臨較大挑戰(zhàn),成為近年來計算機視覺領域的研究熱點。
研究人員最早利用紋理特征、邊緣特征、顏色直方圖和聯合特征等進行行人重識別,然而上述特征識別度有限且重識別精度較低,無法應用于大規(guī)模復雜的行人重識別任務。隨著深度學習技術的發(fā)展,出現了基于卷積神經網絡的重識別方法,使行人重識別精度大幅提升,深度學習網絡在行人重識別領域得到廣泛應用。文獻[2]提出一種基于視角信息嵌入的行人重識別模型,利用改進的深度分離卷積提取視角單元特征,提高了網絡泛化能力。文獻[3]提出一種異常值標簽平滑正則化方法,利用生成式對抗網絡形成圖像并與原數據集圖像共同訓練,從而獲得魯棒性更好的特征。
上述方法均使用圖像全局特征,然而由于在復雜情況下圖像全局特征識別度有限,因此研究人員采用更易被識別的局部特征提升重識別精度。文獻[4]建立一種卷積基準模型(PCB),將特征圖沿垂直方向平均切為6 個分塊預測行人身份,并使用精確部分池化(Refined Part Pooling,RPP)網絡使每塊特征圖精細化以提升其識別度,但該模型易忽略全局特征且丟失各分塊邊緣的局部信息。文獻[5]采用骨骼關鍵點定位模型對行人的頭部、上身和下身區(qū)域進行定位,將這些區(qū)域與整張行人圖像一起輸入參數共享的卷積神經網絡,雖然能完整提取全局與局部特征,但對模型精度要求較高。文獻[6]提出一種將全局信息與各粒度局部信息結合的端到端特征學習網絡(包括一個全局分支和兩個局部分支),并聯合多個Softmax 損失函數和三元組(Triplet)損失函數獲取具有高識別度的特征,但其未考慮兩種損失函數約束同一個特征向量時存在目標沖突,加大訓練模型收斂難度。
針對上述問題,本文提出一種多任務金字塔重疊匹配方法。獲取全局特征信息、多尺度局部特征信息以及各分塊之間的邊緣信息,使用Softmax 損失函數、三元組損失函數和中心損失函數聯合優(yōu)化網絡,并設計特征歸一化(Feature Normalization,FN)層結構減少損失函數在嵌入空間內優(yōu)化目標不一致的影響,獲取不同任務之間的互補特征。
本文網絡主要由特征提取網絡、金字塔重疊匹配網絡、特征歸一化層和全連接(FC)層構成,其結構如圖1 所示(D為特征向量維數)。采用ResNet50網絡作為特征提取網絡,并對其進行如下改進:1)移除ResNet50 網絡的全局平均池化(GAP)層和全連接層;2)將卷積(Conv)層Conv4_1 的步長設定為2,使特征圖尺寸增大2 倍,以便下一步分塊提取局部信息。將特征圖沿垂直方向平均切為4 個基本塊,將相鄰基本塊進行兩兩組合或三三組合直到形成完整的原特征圖,共得到10 個不同尺寸的分塊,從而形成金字塔重疊匹配網絡。將該網絡中上述分塊經過全局平均池化轉變?yōu)?0 個包含多尺度局部特征的2 048 維特征向量,使用1×1 卷積核將上述特征向量分別降至512 維并進行串聯,采用三元組損失函數和中心(Center)損失函數對其進行優(yōu)化,然后通過FN 層進行向量特征歸一化后,分別送入不共享權重的全連接層,再使用Softmax 損失函數對其進行優(yōu)化。在推理階段,將通過FN 層前的10 個512 維特征向量串聯為新特征向量,查詢圖像時使用新特征向量與圖庫中的圖像進行相似性匹配以獲取更好的匹配結果。
圖1 本文網絡結構Fig.1 Structure of the proposed network
當全局特征不能很好地表征復雜行人圖像樣本時,如何有效提取局部特征成為提升重識別精度的關鍵。常用的局部特征提取方法包括圖像切塊方法、基于注意力機制的方法、響應圖極值點方法[7]以及骨骼關鍵點定位方法等,其中圖像切塊方法較其他方法更簡單有效,因此,本文基于傳統圖像切塊方法,同時受HPM[8]網絡由粗到精提取多種局部特征的啟發(fā),提出一種帶有重疊區(qū)域的水平金字塔匹配方法來匹配不同尺度的特征,如圖2(a)所示。
圖2 3 種方法的圖像切分效果Fig.2 Image segmentation effect of three methods
本文對行人圖像的切分方法具體如下:1)將特征圖沿水平方向切為4 個基本塊,每個基本塊大小為特征圖的1/4,這4 個基本塊作為金字塔第1 層;2)金字塔第2 層為第1 層相鄰2 個基本塊沿垂直方向合并得到的3 個分塊,每組相鄰分塊會重疊1 個基本塊區(qū)域;3)金字塔第3 層為第1 層相鄰3 個基本塊沿垂直方向合并得到的2 個分塊,相鄰分塊會重疊2 個基本塊區(qū)域;4)第4 層為第1 層4 個基本塊的合并,所得圖像與原始特征圖相同。第i層的第j個分塊表示為:
圖2(b)、圖2(c)分別為PCB、HPM 方法的圖像切分效果??梢钥闯?,與PCB、HPM 方法相比,本文方法包含更多的全局信息、多種尺度局部信息以及分塊之間的邊緣信息。當切分圖像邊緣存在識別度較高的細小特征(如圖2 中行人的書包)時,采用本文方法能在很大程度上保留該特征的完整性,使各特征信息融合后所得總特征的識別度更高。PCB 方法是將特征圖切為6 個分塊,并使用RPP 網絡使一個分塊的邊緣特征劃分到與其相似的另一個分塊,該方法雖然考慮了分塊邊緣信息,但整個過程并非是端到端完成訓練,操作過程較復雜。HPM 方法是將特征圖分別切分為2 等分、4 等分和8 等分,加上原始特征圖共有15 個分塊來識別行人身份。由于同一個行人的不同圖像之間常會出現身體部分錯位及姿態(tài)變化的情況,因此切成過于細小的分塊會占用較多硬件資源與訓練時間,且不能有效提升整體識別精度。本文采用大小適中的4 等分塊,不會占用較多硬件資源與訓練時間。
多任務學習是指多種損失函數聯合訓練和優(yōu)化網絡模型,其中每種損失函數使用的度量方法以及通過網絡提取的特征所包含信息均不同。目前行人重識別方法通常使用Softmax 損失函數與三元組損失函數聯合訓練模型[6,9-10]以獲取泛化能力更強的特征,然而這兩個損失函數在嵌入空間中的目標不一致,其樣本分布的二維可視化效果如圖3 所示??梢钥闯觯篠oftmax 損失函數構造出n個超平面將嵌入空間分為不同的子空間,每類特征分布在不同子空間內,并使用余弦距離作為度量距離;三元組損失函數在嵌入空間內通過拉近正樣本對之間的距離與拉開負樣本對之間的距離來增強類內緊密性和類間分離性,并使用歐氏距離作為度量距離。
圖3 2 種損失函數的樣本分布二維可視化效果Fig.3 Two-dimensional visualization effect of sample distribution of two loss functions
在圖3 中,Softmax 損失函數用于優(yōu)化余弦距離,而三元組損失函數用于優(yōu)化歐氏距離,如果同時使用這兩種損失函數優(yōu)化網絡中同一個特征向量,則會產生目標沖突,在訓練過程中將出現損失不收斂及特征提取不準確的情況。針對該問題,本文設計出一種特征歸一化層結構,將其放在網絡中512 維特征向量后,歸一化后的512 維特征向量采用Softmax 損失函數計算損失,而歸一化前的512 維特征向量采用三元組損失函數和其他損失函數計算損失。
對于每一個輸入特征向量f,其特征歸一化計算公式為:
其中,m為輸入特征向量f的維數為歸一化后的輸出特征向量。特征歸一化可以平衡原特征向量的異常特征分布,加快Softmax 損失函數收斂,同時歸一化前后分布的變化,并減少Softmax 損失函數對原特征向量的約束,使三元組損失函數更易收斂。
除了Softmax 損失函數和三元組損失函數,本文還引入中心損失函數[11]增強類內距離約束,以抵消三元組損失函數對同類距離約束較弱的影響。中心損失函數會在網絡訓練中學習每個類別的深度特征中心,并懲罰深度特征與其相應類別中心之間的距離LCenter,計算公式如下:
其中,yj為最小批次中第j張圖像的標簽為第yj類深度特征中心,N為所有批次圖像的總數目。中心損失函數可使同一類特征向內聚集,從而增強類內緊湊性。由于中心損失函數也是對歐氏距離進行優(yōu)化,因此將其與三元組損失函數一起用于約束同一個特征向量。
本文總損失函數表達式為:
其中,M為局部向量的分支數目,λ為中心損失的平衡參數,xik為最小批次中第i張圖像的第k個局部向量,yik為對應于xik的圖像標簽,W和b分別為xik對應的最后內積層的權重矩陣和偏置向量,da,p和da,n分別為三元組正樣本對與負樣本對的特征距離,α為控制距離邊緣的超參數,[z]+=max(z,0)。
為驗證本文方法的有效性,選擇常用的行人重識別數據集Market1501[12]、DukeMTMC-reID[13]和CUHK03[14]進行實驗,并將本文方法與當前流行的部分重識別方法進行比較。
Market1501 數據集是通過DPM[15]行人檢測方法由6個攝像機采集獲得,共有32 668張圖像,包含1 501個行人。不同攝像機之間存在視圖重疊。本文將數據集中包含751 個行人的12 936 張圖像作為訓練集,其他包含750 個行人的19 732 張圖像作為測試集,其中包括3 368 張查詢圖像和16 364 張圖庫圖像。
DukeMTMC-reID 數據集是DukeMTMC 數據集的1 個子集,專用于行人重識別。該數據集由8 個攝像機采集獲得,其中被2 個及以上攝像機同時拍攝到的行人有1 404 個。本文將其中702 個行人的16 522 張圖像作為訓練集,將余下702 個行人的19 889 張圖像作為測試集,測試集中有2 228 張查詢圖像和17 661 張圖庫圖像。
CUHK03 數據集由5 對攝像機采集獲得,共有13 164 張圖像,包含1 467 個行人,每個行人都被2 個攝像機同時拍攝。該數據集提供含有人工標注和DPM 兩種檢測框的圖像,本文使用含有DPM 檢測框的圖像。將數據集中包含767 個行人的6 880 張圖像作為訓練集,將包含余下700 個行人的6 284 張圖像作為測試集。
在行人重識別方法中,目前通常使用首位命中率(Rank-1)和平均精度均值(mean Average Precision,mAP)來評價重識別精度,因此,本文將Rank-1 和mAP 作為行人重識別精度評價指標。
本文實驗選用ResNet50網絡作為提取圖像特征的主干網絡,使用經ImageNet 數據集預訓練過的權重對其進行初始化。在訓練過程中,行人圖像尺寸為384 像素×192 像素,訓練批尺寸(B)為40(包含10 個行人,每個行人有4 張圖像)。使用Warmup 學習率策略激活網絡,基本學習率設置為0.000 3,網絡共迭代訓練120 次,在第40 次和第70 次進行指數衰減,衰減系數為0.1。使用隨機梯度下降法優(yōu)化網絡模型,動量值為0.9,權重衰減系數為0.000 5。網絡的損失為中心損失、Softmax 損失和三元組損失之和,中心損失函數的平衡參數為0.001 0,三元組損失函數的邊緣參數為0.3。在實驗時,將FN 層前10 個特征向量串聯得到的5 120 維特征向量進行行人相互匹配,以歐氏距離作為度量距離。本文實驗環(huán)境為:8 GB NVIDIA GTX 1070 GPU顯存,ubutu16.04 操作系統,pytorch1.0.1 深度學習框架和python3.6 編程語言版本。
為驗證多任務訓練以及FN 層結構的有效性,本文在Market1501 數據集上采用不同損失函數以及損失函數的組合對圖像全局特征進行訓練,實驗結果如表1 所示??梢钥闯觯篠oftmax 損失函數和三元組損失函數(以下稱為2 種損失函數)聯合訓練比各自單獨訓練所得Rank-1 值分別提升1.9 個和4.4 個百分點,mAP 值分別提升5.6 個和7.9 個百分點;Softmax損失函數、三元組損失函數和中心損失函數(以下稱為3 種損失函數)聯合訓練比2 種損失函數聯合訓練所得Rank-1 值和mAP 值分別提升0.8 個和2.1 個百分點,說明多任務聯合訓練可增強特征的魯棒性,提升重識別精度;2 種損失函數和3 種損失函數在增加FN 層后與未增加FN 層時相比,其Rank-1 值均提升1.6 個百分點,mAP 值分別提升2.5 個和0.9 個百分點,說明本文設計的FN 層結構能有效消除多損失函數之間優(yōu)化目標不一致的影響,提高行人重識別精度。
表1 不同損失函數在Market1501 數據集上的實驗結果Table 1 Experimental results of different loss functions on Market1501 dataset %
為驗證本文所提分塊策略的合理性,將使用Softmax 損失函數訓練全局特征的方法定義為基準(Baseline)方法,在此基礎上分別增加不同基本塊數量得到3 種金字塔重疊方法,并與未使用RPP 網絡的PCB 方法和最小4 等分塊的HPM 方法進行對比,以上方法僅分塊網絡結構不同,其他配置均相同。不同切塊方法在Market1501數據集和DukeMTMC-reID數據集上的實驗結果如表2、表3 所示(Baseblock-n表示切分為n個基本塊的金字塔重疊方法)。可以看出:使用局部特征的PCB、HPM 及Baseblock-n(n為4~6)方法的Rank-1 值和mAP 值比僅用全局特征的基準方法有明顯提升,這是因為在有遮擋及復雜背景的環(huán)境下,局部特征比全局特征識別度更高;使用局部特征的PCB 方法的Rank-1 值和mAP 值最低,其原因在于小尺度局部特征在未對齊的行人樣本對中不能正確地相互對應;HPM 方法較本文提出的Baseblock-4方法在Market1501 數據集和DukeMTMC-reID 數據集上的Rank-1 值分別低1.0 個和1.2 個百分點,mAP值分別低0.9 個和1.3 個百分點,這是因為HPM 方法未考慮分塊之間的邊緣特征信息;Baseblock-5 方法、Baseblock-6 方法的Rank-1 值和mAP值與Baseblock-4 方法相差很小,其原因在于小尺寸分塊更易受到行人錯位、姿態(tài)變化等異常值的影響,對總體識別效果的增益較小。Baseblock-5 方法、Baseblock-6 方法的分支數目分別為15、21,訓練過程中要占用較多訓練資源,本文采用的Baseblock-4方法更精簡,占用訓練資源較少。
表2 不同切塊方法在Market1501 數據集上的實驗結果Table 2 Experimental results of different cutting block methods on Market1501 dataset %
表3 不同切塊方法在DukeMTMC-reID數據集上的實驗結果Table 3 Experimental results of different cutting block methods on DukeMTMC-reID dataset %
本文對網絡參數批尺寸和中心損失函數的平衡參數λ(中心損失占總損失的比例)分別取不同值進行實驗,以分析其對行人重識別精度的影響,實驗結果如表4、表5 所示。由表4 可以看出:隨著批尺寸的不斷增大,Rank-1 值和mAP 值升高,這是因為大的批尺寸有助于三元組損失函數挖掘更好的難正樣本對和難負樣本對(更好的難正樣本對表示正樣本對中樣本差異較大,更好的難負樣本對表示負樣本對中樣本差異較?。?,以此增大不同類別特征之間的距離。本文受硬件資源限制,未能采用更大的批尺寸進行實驗,但由于三元組損失函數在小型數據集上挖掘難正樣本對和難負樣本對會出現飽和狀態(tài),因此推測可知批尺寸對重識別精度的提升有限。由表5 可以看出,隨著平衡參數的不斷增大,Rank-1 值和mAP 值均先增大后減小,并在λ=0.001 0 時取得最大值。這是因為λ取值太小,會使中心損失函數對增強類內距離的約束作用消失,λ取值太大,會使網絡過于關注類別中心特征的學習,而減少不同類別樣本特征之間的距離優(yōu)化,造成識別效果較差。
表4 不同批尺寸下本文方法在Market1501數據集上的實驗結果Table 4 Experimental results of the proposed method on Market1501 dataset with different batch sizes %
表5 不同λ值下本文方法在Market1501數據集上的實驗結果Table 5 Experimental results of the proposed method on Market1501 dataset with different λ values %
圖4 為本文方法在Market1501 測試集上對部分查詢圖像的重識別結果。左側虛線框內為待查詢圖像,右側虛線框內為采用本文方法在圖庫中得到的與被查詢圖像相似度最高的前10 張圖像,其中僅白框標記的圖像匹配錯誤,其他圖像均匹配正確。由此可見,本文方法有很好的行人重識別能力。
圖4 本文方法在Market1501 數據集上部分查詢圖像的重識別效果Fig.4 The re-identification effect of the partial query images on the Market1501 dataset by the proposed method
為驗證本文方法的先進性,將本文方法與PSE[16]、MultiScale[17]、GLAD[15]、DaRe[18]、HA-CNN[19]、PCB+RPP、HSP[20]、MLFN[21]等主流方法在Market1501 數據集、DukeMTMC-reID 數據集和CUHK03 數據集上的行人重識別精度進行對比,結果如表6~表8 所示??梢钥闯?,本文方法在3 個數據集上的Rank-1 值和mAP 值較其他方法更高,表明本文方法具有較高的重識別精度。此外,在本文方法的基礎上,通過在推理階段使用串聯得到的新特征向量與圖庫中圖像進行相似性匹配,并在上述3個數據集上經重新排序[22]后,能得到更高的Rank-1值和mAP 值。
表6 不同方法在Market1501 數據集上的實驗結果Table 6 Experimental results of different methods on Market1501 dataset %
表7 不同方法在DukeMTMC-reID數據集上的實驗結果Table 7 Experimental results of different methods on DukeMTMC-reID dataset %
表8 不同方法在CUHK03數據集上的實驗結果Table 8 Experimental results of different methods on CUHK03 dataset %
本文針對行人姿態(tài)變化、遮擋和錯位導致圖像特征提取精度較低的問題,提出一種多任務金字塔重疊匹配的重識別方法。使用金字塔重疊網絡匹配全局特征和多尺度局部特征,并通過Softmax 損失函數、三元組損失函數和中心損失函數聯合訓練網絡,采用特征歸一化層減少各損失函數優(yōu)化目標不一致的影響,獲取魯棒性更強的共享特征。實驗結果表明,與PSE、MultiScale 等重識別方法相比,該方法可有效提升行人重識別精度。下一步將結合分塊局部特征與注意力機制,進一步提升行人重識別精度。