石躍祥 周 玥
(湘潭大學(xué)計(jì)算機(jī)學(xué)院·網(wǎng)絡(luò)空間安全學(xué)院 湘潭 411105)
行人重識(shí)別是在跨監(jiān)控設(shè)備下檢索出給定行人圖像目標(biāo)的技術(shù),廣泛應(yīng)用于智能安防、人機(jī)交互、電子商務(wù)等領(lǐng)域。由于監(jiān)控設(shè)備下的行人圖像存在角度變化、光照、遮擋和分辨率低等問(wèn)題,行人重識(shí)別仍然是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。早期行人重識(shí)別的研究通常是對(duì)行人圖像提取顏色直方圖、HOG、紋理等手工特征。但手工設(shè)計(jì)的特征描述能力有限,傳統(tǒng)算法識(shí)別率比較低。此外,許多研究者在距離度量學(xué)習(xí)方法上進(jìn)行研究,周智恒等人[1]提出一種等距離度量學(xué)習(xí)策略,陳瑩等人[2]提出一種雙向參考集矩陣度量學(xué)習(xí)算法。為克服度量模型的過(guò)擬合問(wèn)題,He等人[3]提出環(huán)推度量學(xué)習(xí)算法。2016年后,隨著深度學(xué)習(xí)在行人重識(shí)別任務(wù)中的應(yīng)用,算法性能大大超過(guò)了早期的傳統(tǒng)方法。
基于深度學(xué)習(xí)的行人重識(shí)別主要可以歸納為基于生成對(duì)抗網(wǎng)絡(luò)[4]、特征空間分割、行人姿勢(shì)和注意力機(jī)制的方法[5]。研究者利用生成對(duì)抗網(wǎng)絡(luò)來(lái)擴(kuò)大數(shù)據(jù)集和增加數(shù)據(jù)多樣性,如Zheng等人[6]利用生成對(duì)抗網(wǎng)絡(luò)來(lái)生成更多模擬的數(shù)據(jù)。在全局特征遇到性能瓶頸后,研究者更加注重局部特征的研究。Sun等人[7]提出的PCB模型將所提取的全局特征均勻分成6個(gè)水平塊。Wang等人[8]提出了一種整合全局特征和局部特征的多粒度模型。但簡(jiǎn)單的分塊可能造成塊與塊間有效信息的丟失,且無(wú)法實(shí)現(xiàn)水平塊之間的對(duì)齊。Zhao等人[9]借助人體的14個(gè)姿勢(shì)關(guān)鍵點(diǎn)生成7個(gè)子區(qū)域,然后將其與全局特征一起送入特征融合網(wǎng)絡(luò)得到最終的行人特征表示。Miao等人[10]利用姿態(tài)將有用信息從遮擋中分離出來(lái)。結(jié)合人體姿勢(shì)信息進(jìn)行預(yù)測(cè),能夠有效避免姿態(tài)錯(cuò)位導(dǎo)致的特征對(duì)齊困難,但需要大量額外的監(jiān)督和姿勢(shì)預(yù)測(cè)過(guò)程。另一個(gè)比較有效的是注意力方法,它可以模仿人類(lèi)的視覺(jué)信號(hào)處理機(jī)制,并且不需要使用具體的語(yǔ)義特征,相比結(jié)合姿勢(shì)的方法,能在一定程度上減輕工作。Song等人[11]利用二值掩膜設(shè)計(jì)了一種對(duì)比注意力模型來(lái)分別學(xué)習(xí)身體和背景區(qū)域的特征。Li等人[12]提出了注意力融合卷積神經(jīng)網(wǎng)絡(luò)模型,從而優(yōu)化圖像未對(duì)準(zhǔn)的情況。注意力機(jī)制方法對(duì)于行人遮擋和分辨率低等問(wèn)題有一定的幫助,但在識(shí)別的過(guò)程中可能丟失一些比較重要的數(shù)據(jù)。
為了解決上述問(wèn)題,本文將特征空間分割和注意力機(jī)制相結(jié)合,提出了更加有效的特征空間分割方式,針對(duì)局部分支引入了注意力機(jī)制策略。首先,改進(jìn)了以往空間分割的方法,對(duì)切分為多個(gè)水平區(qū)域的特征圖進(jìn)行階梯型特征提取,與之前的強(qiáng)制水平分割相比,階梯型特征提取能夠關(guān)注更多的邊緣信息,加強(qiáng)局部特征之間的聯(lián)系。其次,在多個(gè)局部分支中引入了分支注意力,按重要性給每一個(gè)局部分支分配相應(yīng)的權(quán)重,從而在更注重包含比較多重要信息的分支同時(shí)削弱無(wú)關(guān)信息的關(guān)注程度。最后,在每一個(gè)局部分支后引入卷積核注意力、通道注意力和空間注意力,結(jié)合多類(lèi)注意力機(jī)制能夠獲得更好的判別特征。
本文網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,該網(wǎng)絡(luò)以ResNet-50為骨干網(wǎng)絡(luò),且在最后一層卷積conv5_x前劃分成兩個(gè)獨(dú)立的分支。第1個(gè)分支延續(xù)原始ResNet-50相同的體系結(jié)構(gòu),提取行人圖像的全局特征。第2個(gè)分支提取多粒度的局部注意力特征。
圖1 階梯型局部分支注意力網(wǎng)絡(luò)(Stepped Local Branch Attention Network,SLANet)結(jié)構(gòu)
對(duì)于第2個(gè)分支,在conv5_x中設(shè)置卷積步長(zhǎng)為1,從而增大網(wǎng)絡(luò)輸出的特征圖來(lái)獲得更多的特征信息。隨后又劃分為3個(gè)獨(dú)立的分支:分支1、分支2、分支3。將調(diào)整為384×128大小的圖像輸入到網(wǎng)絡(luò)后,在該分支經(jīng)過(guò)conv5_x得到大小為24×8的整體行人特征圖,其維度為2048維。在分支1利用所得的整體行人特征圖來(lái)獲取完整圖像特征信息。在分支2將整體行人特征圖輸入到階梯型分支注意力模塊(Stepped Branch Attention Module,SBAM)進(jìn)行階梯型特征分塊,得到P個(gè)不同權(quán)重的局部特征。在這里設(shè)置P=5,表示劃分得到5個(gè)局部區(qū)域,其中每一個(gè)分塊區(qū)域的大小為12×8。在分支3將整體行人特征圖輸入到SBAM模塊進(jìn)行階梯型特征分塊,得到P個(gè)不同權(quán)重的局部特征,設(shè)置P=9,每一個(gè)分塊區(qū)域的大小為8×8。對(duì)分支2和分支3得到的14個(gè)局部特征都單獨(dú)送入到多尺度自適應(yīng)注意力模塊(Multi-scale Adaptive Attention Module, MAAM),從而得到融合了卷積核注意力、通道注意力和空間注意力的局部特征圖,所有經(jīng)過(guò)MAAM模塊的特征圖尺寸不變。然后對(duì)3個(gè)分支得到的15個(gè)特征圖分別進(jìn)行最大池化和降維處理,得到15個(gè)265維特征向量。
在訓(xùn)練階段,將所有降至256維的特征分別送入全連接層后使用標(biāo)簽平滑的交叉熵?fù)p失進(jìn)行分類(lèi)學(xué)習(xí),對(duì)全局分支和分支1得到的256維特征使用三元組損失進(jìn)行度量學(xué)習(xí)。在測(cè)試階段,將所有降至256維的特征連接起來(lái)作為最終特征,從而充分結(jié)合全局和局部信息來(lái)獲得最強(qiáng)大的識(shí)別能力。
特征空間分割是一種比較有效的局部特征提取方法,但現(xiàn)如今許多特征空間分割的方法都是水平均勻分塊,這種方式能夠?qū)W習(xí)到人體不同區(qū)域的差異,但塊與塊之間的邊緣信息容易被忽略。如圖2所示,對(duì)于尺寸調(diào)整后的原始行人圖像,若是把它劃分成左側(cè)圖中的4個(gè)水平塊,第1塊和第2塊會(huì)將該行人衣服上的白色標(biāo)志分離,同時(shí)第2塊和第3塊會(huì)將紅色斜跨包分成兩部分。這樣則會(huì)忽略以及破壞塊與塊邊緣的重要信息,導(dǎo)致在對(duì)每一塊進(jìn)行單獨(dú)分類(lèi)時(shí)達(dá)不到最終期待的效果。于是本文提出了一種按特定數(shù)量以階梯型選取圖像塊從而得到多個(gè)分支的方法。對(duì)于分支2首先將原始完整行人圖像均勻分成8個(gè)水平塊,最初以第1塊為起始?jí)K,每4塊為一個(gè)整體作為一個(gè)局部區(qū)域,隨后以步長(zhǎng)為1往下更改起始?jí)K進(jìn)行階梯型分塊,最終得到5個(gè)局部分區(qū)??梢钥吹剑植糠謪^(qū)(a)和(b)中都包含有衣服上完整的白色標(biāo)志,局部分區(qū)(b)和(c)中都包含有完整的斜挎包信息。該方法更注重圖像水平塊間的內(nèi)在聯(lián)系,能夠避免特征學(xué)習(xí)過(guò)程中某些重要信息的丟失。
圖2 階梯型分塊方式
注意力機(jī)制類(lèi)似于人類(lèi)觀(guān)察物體時(shí)將視線(xiàn)聚焦于重要區(qū)域,其目標(biāo)是增強(qiáng)模型對(duì)圖像重要區(qū)域的關(guān)注從而獲得更有區(qū)分力的特征信息。本文結(jié)合了SKNet[13]自適應(yīng)感受野大小和CBAM[14]多注意力融合的思想,在網(wǎng)絡(luò)最后一個(gè)卷積層和池化層間引入多尺度自適應(yīng)注意力模塊(MAAM)。
行人重識(shí)別網(wǎng)絡(luò)使用的損失函數(shù)一般分為分類(lèi)損失和度量損失兩類(lèi)。本文使用標(biāo)簽平滑[15]的交叉熵?fù)p失對(duì)全局和局部特征進(jìn)行分類(lèi),同時(shí)使用難樣本采樣三元組損失[16]對(duì)全局特征實(shí)現(xiàn)度量學(xué)習(xí),選擇更難的樣本去訓(xùn)練網(wǎng)絡(luò)能提高網(wǎng)絡(luò)的泛化能力,根據(jù)全局特征和局部特征的差異性聯(lián)合使用兩種損失能夠獲得更優(yōu)的性能[8]。將行人圖像輸入到網(wǎng)絡(luò)后,負(fù)交叉熵?fù)p失公式可表示為
為了驗(yàn)證本文方法的有效性,在Market-1501[17],DukeMTMC-reID[18]和CUHK03[19]3個(gè)數(shù)據(jù)集上進(jìn)行了驗(yàn)證。本文使用平均精度均值(mean Average Precision, mAP)和累計(jì)匹配特征曲線(xiàn)(Cumulative Match Characteristic, CMC)兩種評(píng)價(jià)指標(biāo)來(lái)評(píng)價(jià)算法的性能。
本文實(shí)驗(yàn)在配有硬件Intel(R) Xeon(R) W-2155 CPU@3.30GHz和NVIDIA RTX 2080Ti GPU,操作系統(tǒng)為Ubuntu 19.10的設(shè)備上進(jìn)行,并基于python 3.7.5編程語(yǔ)言和Pytorch 1.3.0深度學(xué)習(xí)框架來(lái)完成算法實(shí)現(xiàn)。實(shí)驗(yàn)數(shù)據(jù)集調(diào)整圖像大小為384×128,采用隨機(jī)翻轉(zhuǎn)、隨機(jī)裁剪和隨機(jī)擦除的數(shù)據(jù)增強(qiáng)方法。訓(xùn)練批次大小為N=P×K,其中P為每批次中行人的個(gè)數(shù),K為每批次中每個(gè)行人的圖像數(shù)量。設(shè)置P為8,K為4,批次大小為32。在訓(xùn)練過(guò)程中使用Adam優(yōu)化器來(lái)優(yōu)化網(wǎng)絡(luò)參數(shù),選擇Warmup預(yù)熱學(xué)習(xí)率策略,設(shè)置初始學(xué)習(xí)率為0.0004,權(quán)重衰減系數(shù)為0.0005,網(wǎng)絡(luò)迭代次數(shù)為400次,且分別在第220次迭代和第320次迭代將學(xué)習(xí)率降為之前的0.1。
在SBAM模塊中,我們將行人圖像均勻分成M個(gè)水平塊,最初以第1塊為起始?jí)K,每N塊為一個(gè)整體作為一個(gè)局部區(qū)域,起始?jí)K位置以步長(zhǎng)為1向下移動(dòng)進(jìn)行階梯型分塊。為了確定M和N的取值,從SLANet網(wǎng)絡(luò)中刪去分支3并移除MAAM模塊,在分支2單分支中以控制變量法進(jìn)行分塊實(shí)驗(yàn)。由于輸入SBAM模塊的特征圖大小為24×8,為了方便實(shí)驗(yàn),分別以4, 3, 2的高度劃分水平塊,則對(duì)應(yīng)的總塊數(shù)分別為6 塊、8 塊和1 2 塊。圖3給出了在3種分塊數(shù)量下組成局部區(qū)域的塊數(shù)取不同值時(shí)的實(shí)驗(yàn)結(jié)果,該實(shí)驗(yàn)在Market-1501數(shù)據(jù)集上進(jìn)行。從實(shí)驗(yàn)數(shù)據(jù)可以看出,當(dāng)分塊數(shù)分別為6塊、8塊和12塊時(shí),組成局部區(qū)域的每組塊數(shù)分別為2,3,4時(shí)性能較優(yōu)。且這3種塊數(shù)分組方式都比每組塊數(shù)為1時(shí)效果好,驗(yàn)證了該方案下的階梯型分塊相比以往普通的分塊方式的有效性。
圖3 不同分塊方式的對(duì)比結(jié)果
文獻(xiàn)[8]提出了一種多粒度的特征學(xué)習(xí)策略。在這里,我們將完整圖像作為1級(jí)粒度,將尺寸水平裁剪成原來(lái)的1/2和1/3的圖像分別作為2級(jí)粒度和3級(jí)粒度。對(duì)于輸入SBAM模塊的大小為24×8的特征圖,粒度等級(jí)為2的情況有:(1)將其劃分成6個(gè)水平塊,每3個(gè)水平塊為一組;(2)將其劃分成8個(gè)水平塊,每4個(gè)水平塊為一組;(3)將其劃分成12個(gè)水平塊,每6個(gè)水平塊為一組。粒度等級(jí)為3的情況有:(1)將其劃分成6個(gè)水平塊,每2個(gè)水平塊為一組;(2)將其劃分成12個(gè)水平塊,每4個(gè)水平塊為一組。同時(shí)將劃分成8個(gè)水平塊,每3個(gè)水平塊為一組得到的9×8的局部區(qū)域近似為粒度等級(jí)3。最后將全局特征和這兩種粒度作為多分支的方式進(jìn)行組合實(shí)驗(yàn),從表1展示的結(jié)果可以看出,8_4 + 12_4分塊方式的性能效果最優(yōu),mAP和Rank-1分別達(dá)到了87.7%和95.3%。表2展示了單獨(dú)送入SBAM模塊的局部分支個(gè)數(shù)對(duì)行人重識(shí)別任務(wù)性能的影響。2個(gè)局部分支的效果要比只有全局分支和1個(gè)局部分支的效果都要好,表示在一定程度上多粒度局部特征方法能夠提升行人重識(shí)別任務(wù)性能。但當(dāng)局部分支個(gè)數(shù)增加為3個(gè)時(shí),不僅計(jì)算復(fù)雜度增大,效果也沒(méi)有明顯增強(qiáng)。這是因?yàn)榍皟蓚€(gè)分支間的相互作用已經(jīng)對(duì)行人圖像達(dá)到了一個(gè)比較好的局部特征判別能力,并且在分支數(shù)過(guò)多時(shí),會(huì)存在較多的不交叉重疊區(qū)域,這些區(qū)域單獨(dú)計(jì)算損失,完成這些額外任務(wù)在降低速度的同時(shí)對(duì)性能不會(huì)有顯著提升。
表1 多粒度分塊方法比較(%)
表2 階梯型多分支的有效性(%)
表3展示了是否使用兩個(gè)模塊聯(lián)合訓(xùn)練的性能效果對(duì)比,該實(shí)驗(yàn)在Market-1501數(shù)據(jù)集上進(jìn)行。其中baseline是只使用一個(gè)全局分支的情況,在此基礎(chǔ)上增加SBAM模塊可以明顯提高判別性能,mAP和Rank-1分別提升了10.4%和4.8%。將每一個(gè)局部區(qū)域單獨(dú)送入到MAAM模塊后,mAP和Rank-1分別繼續(xù)提升了0.4%和0.3%,MAAM模塊只是對(duì)每個(gè)局部特征進(jìn)行處理,通過(guò)對(duì)其融合多類(lèi)注意力機(jī)制來(lái)輔助完成局部區(qū)域的識(shí)別,因此相對(duì)提升幅度不大。實(shí)驗(yàn)證明本文提出的模塊在行人重識(shí)別任務(wù)上能獲得優(yōu)異的性能。
表3 聯(lián)合訓(xùn)練的有效性(%)
為了進(jìn)一步說(shuō)明本文模型的有效性,將其與多種主流行人重識(shí)別算法相比,實(shí)驗(yàn)數(shù)據(jù)如表4、表5和表6所示。從表中數(shù)據(jù)可以看出,本文提出的方法在Market-1501數(shù)據(jù)集上的mAP和Rank-1分別為88.1%和95.6%,在DukeMTMC-reID數(shù)據(jù)集上的mAP和Rank-1分別為80.0%和88.6%。在DukeMTMC-reID上的相對(duì)效果較低,主要因?yàn)樵摂?shù)據(jù)集中不同行人之間的相似性很高且同一行人會(huì)存在遮擋、行人重疊等情況,挑戰(zhàn)難度較大。同時(shí)在CUHK03-Labeled數(shù)據(jù)集上的mAP和Rank-1分別為78.4%和80.7%,在CUHK03-Detected數(shù)據(jù)集上的mAP和Rank-1分別為75.2%和78.6%,后者使用DPM自動(dòng)檢測(cè)標(biāo)注方法,存在更多遮擋、錯(cuò)位和人體部分缺失等問(wèn)題從而更接近實(shí)際情況。另外在Market-1501數(shù)據(jù)集上使用重排序[24]后,本文方法的mAP可以達(dá)到94.6%,Rank-1可以達(dá)到96.5%。本文方法在3個(gè)數(shù)據(jù)集上的mAP和Rank-1相比于其他方法均有明顯提升,表明本文方法對(duì)行人重識(shí)別任務(wù)的性能提升是有效的。
表4 在Market-1501數(shù)據(jù)集上的性能比較(%)
表5 在DukeMTMC-reID數(shù)據(jù)集上的性能比較(%)
表6 在CUHK03數(shù)據(jù)集上的性能比較(%)
圖4展示了本文方法SLANet在Market-1501數(shù)據(jù)集上得到的MAAM模塊后輸出特征的可視化結(jié)果,該可視化結(jié)果展示了模型對(duì)相關(guān)區(qū)域的關(guān)注程度。從圖中可以看出相比CBAM注意力模塊,SBAM和MAAM模塊的聯(lián)合更加強(qiáng)調(diào)了局部區(qū)域的局部注意力,能夠帶來(lái)優(yōu)秀的行人重識(shí)別能力。
圖4 可視化結(jié)果
對(duì)于行人重識(shí)別網(wǎng)絡(luò)模型,本文提出了有效的階梯型局部分支注意力模塊和多尺度自適應(yīng)注意力模塊。階梯型分支注意力模塊以階梯型劃分圖像區(qū)域從而加強(qiáng)局部特征之間的聯(lián)系,同時(shí)以分支注意力的方式使網(wǎng)絡(luò)關(guān)注更重要的分支從而能提高行人重識(shí)別的準(zhǔn)確度。多尺度自適應(yīng)注意力模塊對(duì)輸入特征進(jìn)行自適應(yīng)感受野大小的處理,并對(duì)特征融入通道注意力和空間注意力,使網(wǎng)絡(luò)提取的局部特征更具有魯棒性。同時(shí)設(shè)計(jì)了合理的多分支網(wǎng)絡(luò)結(jié)構(gòu),使用多粒度的方法將全局特征和局部特征進(jìn)行融合,得到更具判別能力的融合特征表示。實(shí)驗(yàn)結(jié)果表明本文算法在3大主流數(shù)據(jù)集上均取得了較好的效果。如何高效地提取更有效的局部特征表示并尋求準(zhǔn)確率和時(shí)間開(kāi)銷(xiāo)的平衡仍然是今后需要重點(diǎn)研究探討的。