張曉涵
(中國(guó)石油大學(xué)(華東) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 青島 266580)
行人重識(shí)別(person re-identification)也稱行人再識(shí)別, 近年來引起學(xué)術(shù)界與工業(yè)界的廣泛關(guān)注, 成為一個(gè)研究熱點(diǎn). 行人重識(shí)別旨在檢索跨攝像頭下的某一目標(biāo)行人, 該技術(shù)可以與人臉識(shí)別、行人檢測(cè)等相結(jié)合, 促進(jìn)嫌犯追蹤、走失救助等智慧安防領(lǐng)域以及無人超市等智慧商業(yè)領(lǐng)域的發(fā)展. 然而, 在真實(shí)的場(chǎng)景下,不同攝像頭的同一行人由于受到光照、姿態(tài)、遮擋、分辨率等各種因素的影響, 往往呈現(xiàn)很大的外觀差異,這給行人重識(shí)別的研究與應(yīng)用帶來諸多挑戰(zhàn)[1]. 因此,如何提取更具判別力的行人特征, 并采用高效的相似性度量方法以減小類內(nèi)差距, 增大類間差距成為行人重識(shí)別的關(guān)鍵問題.
傳統(tǒng)的行人重識(shí)別由特征提取與相似性度量?jī)蓚€(gè)子任務(wù)組成, 首先手工設(shè)計(jì)顏色、紋理、形狀等低級(jí)特征對(duì)行人進(jìn)行表示, 然后借助度量學(xué)習(xí)算法對(duì)特征距離進(jìn)行約束, 無法實(shí)現(xiàn)端到端, 費(fèi)時(shí)費(fèi)力且精度普遍低下. 隨著深度學(xué)習(xí)的興起, 行人重識(shí)別將特征提取與相似性度量整合到一個(gè)統(tǒng)一的框架中. 通過卷積神經(jīng)網(wǎng)絡(luò)提取行人的高層特征, 同時(shí)設(shè)計(jì)度量損失函數(shù)控制類內(nèi)類間距離, 大大提升了行人重識(shí)別的性能.2016 年, Zheng 等[2]提出IDE 模型, 把行人重識(shí)別看做一個(gè)分類任務(wù), 成為后續(xù)很多工作的基線模型. 近年,為了提升行人重識(shí)別在數(shù)據(jù)集上的精度, 大量工作采用結(jié)合行人局部特征的方法. Zhao 等[3]提出的Spindle Net, 由姿態(tài)估計(jì)模型獲得人體的若干關(guān)鍵點(diǎn), 產(chǎn)生7 個(gè)子區(qū)域, 然后分區(qū)域進(jìn)行特征提取與融合. Kalayeh等[4]提出了SPReID, 為了獲取局部特征, 將人體分割模型引入行人重識(shí)別中, 得到前景和4 個(gè)不同身體區(qū)域的掩膜. Sun 等[5]提出了經(jīng)典的PCB 網(wǎng)絡(luò), 把行人圖像水平均分為6 塊, 得到6 個(gè)局部特征向量, 之后每個(gè)特征向量都經(jīng)過降維和全連接層后送入分類器中, 進(jìn)行單獨(dú)預(yù)測(cè). 基于此工作, Wang 等[6]結(jié)合了全局特征設(shè)計(jì)了MGN 網(wǎng)絡(luò), 通過將行人圖像分別水平均分為2 塊和3 塊, 得到了不同粒度的行人局部特征. 這些方法雖然性能表現(xiàn)更好, 但無疑增加了網(wǎng)絡(luò)的復(fù)雜程度.基于姿態(tài)估計(jì)的方法和基于語義分割的方法需要引入額外的標(biāo)注信息, 很大程度上依賴于預(yù)訓(xùn)練模型的性能. 基于水平切塊的方法通常包含多個(gè)支路, 且粗暴的劃分容易造成相應(yīng)部件語義不對(duì)齊問題. 而基于全局特征的行人重識(shí)別網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單, 近年來一直被忽視,具有很大的研究意義. 相似性度量方面, 通過將行人特征映射到歐幾里得空間, 最小化度量損失使得正樣本間特征距離減小, 負(fù)樣本間特征距離增大. 行人重識(shí)別中的度量損失主要有對(duì)比損失[7]、三元組損失[8]、四元組損失[9]等, 其中使用最廣泛的是三元組損失. 在三元組損失的基礎(chǔ)上, Hermans 等[10]提出了難樣本采樣三元組損失, 進(jìn)一步提升模型的泛化性.
本文以ResNet50 為骨干網(wǎng)絡(luò), 在特征提取層面做出3 點(diǎn)改進(jìn), 最大程度上利用行人的全局特征: (1)設(shè)計(jì)一種多重感受野融合模塊, 采用不同大小的卷積核獲取不同感受野的行人信息; (2)采用GeM 池化代替被普遍使用的全局平均池化獲取細(xì)粒度特征; (3)分別從ResNet50 的Conv4_x 和Conv5_x 層進(jìn)行采樣, 得到兩個(gè)通道數(shù)不同的特征圖, 各送入一個(gè)分支, 兩個(gè)分支得到的特征均使用分類損失與難樣本采樣三元組損失聯(lián)合訓(xùn)練. 本文方法在Market1501 數(shù)據(jù)集與DukeMTMCreID 數(shù)據(jù)集上驗(yàn)證, 實(shí)驗(yàn)結(jié)果表明, 本文方法具有較好的表現(xiàn), 甚至優(yōu)于一些基于局部特征的方法.
此前基于全局特征的行人重識(shí)別方法整體流程大致如圖1 所示, 網(wǎng)絡(luò)提取特征后, 采用全局平均池化(GAP)獲得全局特征向量, 之后經(jīng)過全連接層獲得低維的輸出特征. 這類方法結(jié)構(gòu)簡(jiǎn)單但精度普遍較低, 在此基礎(chǔ)上, 本文對(duì)基于行人全局特征的方法進(jìn)行了改進(jìn). 本文整體的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示, 使用在ImageNet上預(yù)訓(xùn)練過的ResNet50 作為骨干網(wǎng)絡(luò), 該網(wǎng)絡(luò)在行人重識(shí)別中被普遍使用. 移除網(wǎng)絡(luò)最后的平均池化層和全連接層, 把最后一個(gè)卷積層的步長(zhǎng)由2 設(shè)為1 以獲取分辨率更高的特征圖, 這就使得Conv4_x 與Conv5_x采樣的特征圖具有相同的尺寸. 之后是兩個(gè)獨(dú)立的分支, 第一個(gè)分支是從Conv5_x 得到的特征圖, 經(jīng)過本文設(shè)計(jì)的多重感受野融合模塊, 之后進(jìn)行GeM 池化, 得到2 048 維的特征向量, 使用難樣本采樣三元組損失約束. 該特征向量經(jīng)過一個(gè)全連接層得到512 維的輸出特征, 使用交叉熵?fù)p失約束. 第二個(gè)分支是從Conv4_x得到通道數(shù)為1 024 的特征圖, 后續(xù)結(jié)構(gòu)與第一分支保持相同. 在測(cè)試階段, 將兩個(gè)分支經(jīng)過GeM 池化得到的特征向量進(jìn)行融合得到3 072 維的向量對(duì)行人進(jìn)行檢索.
圖1 基于行人全局特征的網(wǎng)絡(luò)結(jié)構(gòu)
圖2 本文網(wǎng)絡(luò)結(jié)構(gòu)
如圖1 所示, 基于全局特征的行人重識(shí)別方法在提取特征之后, 通常直接進(jìn)行池化操作獲取行人的全局特征向量. 但是, 在行人重識(shí)別中存在行人尺度變化的問題, 而對(duì)于尺度不同的的目標(biāo)來說, 不同大小的感受野將會(huì)產(chǎn)生不同的效果. 如果不考慮此問題, 直接將網(wǎng)絡(luò)提取到的特征輸入到后續(xù)的池化層中, 將在一定程度上降低行人重識(shí)別的識(shí)別精度. 為了適應(yīng)行人的尺度變化, 本文在網(wǎng)絡(luò)提取特征后先經(jīng)過本文設(shè)計(jì)的多重感受野融合模塊, 該模塊通過在不同分支設(shè)置不同的感受野大小, 最后進(jìn)行融合, 有效利用目標(biāo)上下文信息. 空洞卷積[11]最初源于語義分割任務(wù), 不需要增加參數(shù)量便可實(shí)現(xiàn)擴(kuò)大感受野的目的. 如圖3 所示, 多重感受野融合模塊共包含3 個(gè)分支, 對(duì)輸入的特征圖X分別進(jìn)行卷積操作. 3 個(gè)分支均選取3×3 卷積核, 但空洞率分別為1、2、3, 得到特征圖F1、F2、F3. 為了更有效地利用來自不同分支的特征, 關(guān)注更重要的信息, 將F1、F2、F3 分別經(jīng)過一個(gè)通道注意力模塊, 這里的通道注意力模塊源于卷積注意力模塊[12], 該模塊結(jié)構(gòu)如圖4 所示. 在通道注意力模塊中, 輸入的特征圖同時(shí)采用最大池化與平均池化得到兩個(gè)一維的向量,之后被送進(jìn)權(quán)重共享的多層感知機(jī)中, 將輸出進(jìn)行逐元素的相加后經(jīng)過Sigmoid 激活即可得到對(duì)應(yīng)的注意力權(quán)重. 將3 個(gè)分支得到的注意力權(quán)重系數(shù)分別于特征圖F1、F2、F3 相乘, 得到通道加權(quán)后的特征F1′、F2′、F3′. 最后, 將F1′、F2′、F3′進(jìn)行融合, 即可得到最終的輸出特征X′. 多重感受野融合模塊可以有效聚合不同感受野的特征, 使行人重識(shí)別性能進(jìn)一步得到提升.
圖3 多重感受野融合模塊
圖4 通道注意力模塊
在行人重識(shí)別網(wǎng)絡(luò)中, 提取全局特征之后通常采用全局平均池化, 如圖1 所示. 全局平均池化關(guān)注的是圖像整體的信息, 很容易受到背景和遮擋的干擾. 因此,在本文中, 采用generalized-mean (GeM)池化[13], 該池化方法已在圖像檢索任務(wù)中取得了顯著成果. 相比于傳統(tǒng)的全局平均池化, GeM 池化包含了可學(xué)習(xí)的參數(shù)捕獲細(xì)粒度信息. 公式如下:
目前, 大部分行人重識(shí)別工作僅利用網(wǎng)絡(luò)最后一個(gè)卷積層提取到的高層語義特征圖, 如圖1 所示. 高層語義特征能有效獲取行人的顯著信息, 但會(huì)忽視部分細(xì)節(jié)信息, 而這些細(xì)節(jié)信息對(duì)行人身份的判別同樣有效. 因此, 為彌補(bǔ)缺失的細(xì)節(jié)信息, 本文同時(shí)采樣低層特征, 進(jìn)行多層特征融合. 具體來說, 分別采樣ResNet50的Conv5_x 的高層顯著特征與Conv4_x 低層細(xì)節(jié)特征, 得到兩個(gè)特征圖, 通道數(shù)分別為2 048 和1 024. 如圖2 所示, 兩個(gè)特征圖形成兩個(gè)獨(dú)立的分支G1 和G2,兩分支采用相同的結(jié)構(gòu), 都經(jīng)過多重感受野融合模塊-GeM 池化-全連接層. 兩分支都使用交叉熵?fù)p失與難樣本采樣三元組損失訓(xùn)練, 在測(cè)試時(shí), 將兩個(gè)分支的特征向量進(jìn)行融合, 通過整合網(wǎng)絡(luò)不同深度的信息進(jìn)行預(yù)測(cè). 多層特征融合的操作, 結(jié)合了行人的高層顯著信息與低層細(xì)節(jié)信息, 使得特征更具判別力.
本文聯(lián)合交叉熵?fù)p失與難樣本采樣三元組損失預(yù)測(cè)行人的身份. 交叉熵?fù)p失被廣泛應(yīng)用于圖像分類任務(wù)中, 通過最小化真實(shí)概率分布與預(yù)測(cè)概率分布之間的差異對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化. 在行人重識(shí)別中, 每張行人圖像對(duì)應(yīng)一個(gè)身份標(biāo)簽, 因此可以轉(zhuǎn)化為一個(gè)分類問題.使用身份標(biāo)簽作為監(jiān)督信號(hào), 類別數(shù)即為訓(xùn)練集中行人身份數(shù). 對(duì)于第i個(gè)學(xué)習(xí)到的特征fi, 交叉熵?fù)p失表示如下:
其中,N表示一個(gè)批次中的圖像數(shù)量,Wk表示對(duì)應(yīng)類別的權(quán)重向量,C表示訓(xùn)練集中行人的類別數(shù). 在本文實(shí)驗(yàn)中, 把G1 分支學(xué)習(xí)到的512 維特征與G2 分支學(xué)習(xí)到的512 維特征計(jì)算交叉熵?fù)p失. 交叉熵?fù)p失函數(shù)使得行人圖像接近所屬的類別, 實(shí)現(xiàn)分類的效果.
此外, 行人重識(shí)別本質(zhì)是一個(gè)圖像檢索問題, 這就需要引入一個(gè)度量學(xué)習(xí)函數(shù)使網(wǎng)絡(luò)學(xué)習(xí)兩張圖像之間的相似度. 對(duì)于行人重識(shí)別來說, 就是使得相同行人不同圖像之間比不同行人不同圖像之間更為相似. 三元組損失經(jīng)常被用于行人重識(shí)別任務(wù)中, 但由于行人圖像存在大量外觀相似的負(fù)樣本對(duì), 如果采樣簡(jiǎn)單易區(qū)分的樣本進(jìn)行訓(xùn)練, 不利于網(wǎng)絡(luò)學(xué)習(xí)到更有用的特征從而提升模型的可泛化性. 因此, 本文中對(duì)G1 分支的2 048 維特征與G2 分支的1 024 維特征使用難樣本采樣三元組損失, 公式如下:
本文在行人重識(shí)別最常用的Market-1501 數(shù)據(jù)集和DukeMTMC-ReID 數(shù)據(jù)集上進(jìn)行評(píng)估與分析. Market-1501 數(shù)據(jù)集采集自5 個(gè)高分辨率攝像頭和1 個(gè)低分辨率攝像頭, 共包含1 501 個(gè)行人的32 668 張圖像. 其中訓(xùn)練集由751 個(gè)行人的12 936 張圖像組成, 測(cè)試集由其他750 個(gè)行人的3 368 張query 圖像與19 732 張gallery圖像組成. DukeMTMC-ReID 數(shù)據(jù)集取自DukeMTMC數(shù)據(jù)集, 該數(shù)據(jù)集由8 個(gè)高分辨率攝像頭拍攝的1 404 個(gè)行人的36 411 張圖像組成. 隨機(jī)采樣702 個(gè)行人的16 522 張圖像組成訓(xùn)練集, 剩余702 個(gè)行人的2 228張query 圖像和17 661 張gallery 圖像組成測(cè)試集.
本文實(shí)驗(yàn)使用行人重識(shí)別普遍使用的平均準(zhǔn)確度mAP (mean average precision)和首位命中率Rank-1 作為評(píng)估標(biāo)準(zhǔn).
本文實(shí)驗(yàn)基于PyTorch 框架, 實(shí)驗(yàn)環(huán)境為NVIDIA Tesla P100. 骨干網(wǎng)絡(luò)采用在ImageNet 上預(yù)訓(xùn)練的ResNet50, 移除最后的全連接層與平均池化層, 并將最后一塊的卷積步長(zhǎng)設(shè)為1. 實(shí)驗(yàn)所采用的行人圖像尺寸為256×128, 通過隨機(jī)擦除、隨機(jī)水平翻轉(zhuǎn)、隨機(jī)裁剪進(jìn)行數(shù)據(jù)增強(qiáng). 設(shè)置一個(gè)訓(xùn)練批次為32, 一個(gè)批次選取的行人類別數(shù)P=4, 一個(gè)行人采樣的圖片數(shù)K=8. 超參數(shù) α設(shè)置為0.3,pk設(shè)置為3. 采用SGD 優(yōu)化器進(jìn)行梯度更新, weight decay 設(shè)為5E-4, momentum 設(shè)為0.9.共訓(xùn)練80 個(gè)epoch, 初始學(xué)習(xí)率為0.05, 訓(xùn)練40 個(gè)epoch 后學(xué)習(xí)率衰減至原來的1/10.
為了分析本文各模塊的有效性, 分別在Market-1501 數(shù)據(jù)集和DukeMTMC-ReID 數(shù)據(jù)集進(jìn)行消融實(shí)驗(yàn), 具體結(jié)果如表1 和表2 所示. 其中, w/o MFF 表示去掉多重感受野融合模塊, w/o GeM 表示去掉GeM 池化采用全局平均池化, w/o MSF 表示去掉多尺度特征融合只保留G1 分支的結(jié)果.
表1 Market-1501 數(shù)據(jù)集上去掉各模塊的結(jié)果(%)
表2 DukeMTMC-ReID 數(shù)據(jù)集上去掉各模塊的結(jié)果(%)
從實(shí)驗(yàn)結(jié)果可以看出, 本文各模塊都起到了一定的作用. 去掉多重感受野融合模塊, Market-1501 數(shù)據(jù)集和DukeMTMC-ReID 數(shù)據(jù)集的mAP 分別為82.6%和73.9%, 添加多重感受野融合模塊之后, 兩個(gè)數(shù)據(jù)集上的mAP 分別提升了1.2%和1.0%. 這證明了該模塊可以有效獲取整合不同感受野的特征, 減輕行人圖像尺度變化帶來的負(fù)面影響. 為了證明本文中GeM 池化更有優(yōu)勢(shì), 將網(wǎng)絡(luò)中的GeM 池化替換為一般的全局平均池化. 結(jié)果表明, 采用GeM 池化后, 在Market-1501數(shù)據(jù)集上和DukeMTMC-ReID 數(shù)據(jù)集上的mAP 分別提升了1.6%和2.8%, Rank-1 分別提升了0.8%和1.2%.同時(shí), 相比于去掉G2 分支, 只保留G1 分支訓(xùn)練和測(cè)試, 本文方法在Market-1501 數(shù)據(jù)集上mAP 提升了2.2%, Rank-1 提升了0.6%, 在DukeMTMC-ReID 數(shù)據(jù)集上mAP 提升了3.9%, Rank-1 提升了1.2%. 結(jié)果表明, 融合多層信息可以提升網(wǎng)絡(luò)性能.
表3 和表4 分別給出了本文方法在Market-1501數(shù)據(jù)集和DukeMTMC-ReID 數(shù)據(jù)集上與其他行人重識(shí)別方法的對(duì)比, 包括傳統(tǒng)方法(LOMO+XQDA[14]、BoW+kissme[15]) 和基于深度學(xué)習(xí)的方法(IDE[2]、SVDNet[16]、HA-CNN[17]、PCB+RPP[5]、Mancs[18]、IANet[19]). 從表中可以看出, 傳統(tǒng)方法在數(shù)據(jù)集上的表現(xiàn)較差. 此外, 相比于近年來基于深度學(xué)習(xí)的方法, 本文方法均有顯著提升. 具體來說, 本文方法在Market-1501 數(shù)據(jù)集上的mAP 指標(biāo)達(dá)到83.8%, 在引入重排序算法[20]后, mAP 達(dá)到了92.6%. 同時(shí), 在DukeMTMCReID 數(shù)據(jù)集上的mAP 指標(biāo)達(dá)到74.9%, 通過重排序后, 精度進(jìn)一步提升, 其中mAP 達(dá)到了88.6%. 本文方法具有競(jìng)爭(zhēng)性, 雖然是基于簡(jiǎn)單的全局特征進(jìn)行改進(jìn),效果卻優(yōu)于部分基于局部特征的方法, 如PCB+RPP[5].
表3 Market-1501 數(shù)據(jù)集上與其他方法的對(duì)比(%)
表4 DukeMTMC-ReID 數(shù)據(jù)集上與其他方法的對(duì)比(%)
將檢索結(jié)果可視化, 如圖5 所示, 實(shí)線框的檢索結(jié)果表示該圖像匹配正確, 虛線框的檢索結(jié)果表示該圖像匹配錯(cuò)誤. 從匹配結(jié)果來看, 本文方法取得了較高的檢索準(zhǔn)確率. 但一些外觀十分相似的不同行人很難區(qū)分, 雖然難樣本采樣三元組損失一定程度上減輕了該問題, 但還是會(huì)造成少數(shù)樣本誤檢測(cè).
圖5 可視化結(jié)果
本文提出了一種基于全局特征的行人重識(shí)別方法.為適用行人尺度變化, 設(shè)計(jì)多重感受野融合模塊, 采用空洞率不同的卷積核進(jìn)行卷積操作并使用注意力模塊獲取關(guān)鍵特征, 然后將各分支的特征進(jìn)行融合. 此外,將全局平均池化替換為更有效的GeM 池化. 采樣網(wǎng)絡(luò)不同深度的特征送入不同分支, 測(cè)試時(shí)將多層特征融合用來預(yù)測(cè). 在公開數(shù)據(jù)集上的實(shí)驗(yàn)表明, 本文方法具有較好的性能. 未來研究中將考慮行人重識(shí)別的實(shí)用性, 尤其是在無監(jiān)督與跨模態(tài)方面提升檢索準(zhǔn)確率.