江偉忠 余海銘 陳世峰
1(中國科學(xué)院深圳先進技術(shù)研究院 深圳 518055)
2(中國科學(xué)院大學(xué)深圳先進技術(shù)學(xué)院 深圳 518055)
3(愛奇藝公司 北京 100010)
在智能安防、智能監(jiān)控和疑犯追蹤等領(lǐng)域中,首要工作是判斷某個行人是否出現(xiàn)在不同攝像機的視域中。然而目前普遍使用人工進行判斷的方法不僅需要耗費大量的人力、物力,而且準確率較低[1]。隨著社會需求逐漸增加以及計算機視覺技術(shù)日漸成熟,行人重識別技術(shù)已成為當前研究的一個熱點方向。其中,行人重識別是一種旨在識別不同攝像機視域中是否出現(xiàn)某個特定目標行人的技術(shù)[2]。
傳統(tǒng)的行人重識別主要關(guān)注設(shè)計手工視覺特征與度量相似性兩個問題。隨著深度學(xué)習(xí)的發(fā)展,分類、檢測、識別和檢索等計算機視覺子領(lǐng)域都取得了巨大的突破[3]。將深度學(xué)習(xí)應(yīng)用于行人重識別領(lǐng)域也成為了一種必然的趨勢?;谏疃葘W(xué)習(xí)的方法,研究人員對行人重識別進行了大量、更深入的研究[4]。與傳統(tǒng)方法相比,基于深度學(xué)習(xí)的行人重識別方法可以自動提取特征,更加高效和精準[4]。然而,行人重識別還存在著諸多的挑戰(zhàn),如遮擋、模糊、拍攝視角不同和檢測算法性能不佳等[2]。這些問題都可能導(dǎo)致行人背景過多或行人區(qū)域缺失。針對行人背景過多以及背景干擾的問題,Song 等[5]采用二進制分割掩模去除了行人背景的干擾,并以完整圖像、身體和背景三個部分的特征連接三元組損失函數(shù)強制模型學(xué)習(xí)到對雜亂背景魯棒的特征。Xu 等[6]創(chuàng)建了基于姿態(tài)引導(dǎo)下的區(qū)域注意力機制方法,以此減少背景噪聲的干擾。行人姿態(tài)多變也是行人重識別面臨的極大挑戰(zhàn),因此,Zheng 等[7]通過構(gòu)造 PoseBox,將姿態(tài)不變嵌入法作為行人描述子,消除了行人姿態(tài)多變對行人重識別的影響。若僅僅利用行人重識別的全局特征,行人重識別模型無法捕捉到足夠的差異性特征,而引入局部特征是提高行人重識別性能的一種思路[8]。Kalayeh 等[9]利用語義分割的方法引導(dǎo)模型從行人身體不同區(qū)域提取了局部特征。目前,對行人進行分塊并搭建一個多粒度網(wǎng)絡(luò)使模型更加關(guān)注局部區(qū)域是最為常見的思路。Sun 等[10]提出一種基于分塊的卷積基準網(wǎng)絡(luò)(Partbased Convolutional Baseline,PCB),通過將行人均等分為六分塊引導(dǎo)網(wǎng)絡(luò)更加關(guān)注局部粒度信息。Huang 等[11]提出一種基于分塊對齊池化(Part Aligned Pooling,PAP)方法的多粒度網(wǎng)絡(luò),提升了模型在跨數(shù)據(jù)集測試的性能。Su 等[12]利用一種姿態(tài)估計將行人分塊并以特征權(quán)重網(wǎng)絡(luò)給不同區(qū)域賦予不同的權(quán)重。Wang 等[13]也提出一種將判別信息與各粒度相結(jié)合的多粒度網(wǎng)絡(luò)(Mutiple Granularity Network,MGN)。
但目前性能最好的行人重識別方法依然存在不少問題。例如,若引入姿態(tài)估計以及分割的方法,則會引入額外數(shù)據(jù)集的先驗;若不借助姿態(tài)估計或分割等方法,行人重識別算法的性能則會受到行人圖片中背景的干擾[5]。同時,出現(xiàn)部分行人區(qū)域缺失的問題也沒能得到較好的解決。另外,大部分多粒度網(wǎng)絡(luò)在不引入額外數(shù)據(jù)集的情況下,最常用的分塊方法是先橫向均等分塊,再對每一塊所提取的特征進行對比,如頭部跟頭部對比。但在圖片中存在背景過多或部分行人區(qū)域缺失時,將會出現(xiàn)頭部與背景對比的情況,這導(dǎo)致了行人重識別性能急劇下降。并且,多粒度模型也忽視了粒度特征之間的相關(guān)性。為解決上述問題,研究像素點或者特征之間的相關(guān)性對行人重識別具有極大的意義。其中,在行人重識別網(wǎng)絡(luò)模型中引入背景區(qū)域特征與行人區(qū)域特征之間的弱相關(guān)性信息,可實現(xiàn)行人的弱檢測效果,這避免了背景區(qū)域的干擾。在行人重識別網(wǎng)絡(luò)模型中引入行人區(qū)域特征點之間的強相關(guān)性信息,則可實現(xiàn)特征點缺失時圖像信息相對完整,這將有效地解決行人區(qū)域部分缺失或遮擋等問題。此外,如果特征點相關(guān)性在不同視角下具有不變性,那么將對解決行人姿態(tài)多變有所幫助。
在圖像相鄰鄰域的相關(guān)性研究中,特征相關(guān)性普遍存在于文本與圖像中,表示一個或多個特征與其他特征之間存在一定的依賴關(guān)系。在文本分析領(lǐng)域中,Deerwester 等[14]在 1990 年提出了經(jīng)典的淺層語義分析(Latent Semantic Analysis,LSA)方法,通過使用詞-文檔矩陣來描述詞與文檔之間的依賴關(guān)系。此后 Hofmann[15]提出概率潛在語義分析(Probabilistic LSA)模型對 LSA 進行改進,利用概率生成模型對文本進行話題分析。由于相鄰領(lǐng)域存在的相關(guān)性也普遍存在于圖像中,故概率潛在語義分析也被大量應(yīng)用于圖像分類、檢測、檢索等領(lǐng)域[16-17]。圖像像素存在一定相關(guān)性最早體現(xiàn)在灰度共生矩陣中,它描述了相鄰像素之間的灰度存在較強依賴性的現(xiàn)象[18]。這種相關(guān)性不僅存在于相鄰鄰域,在圖像的不同區(qū)域也可以存在較強相似性,如行人的兩只鞋子區(qū)域之間、兩只手所在區(qū)域之間、兩條腿所在區(qū)域之間都應(yīng)該存在較強的相關(guān)性。
本文的整體設(shè)想及分析部分借鑒了 Wang 等[19]提出來的非局部神經(jīng)網(wǎng)絡(luò)(Non-local Neural Networks)。其中,Non-local 網(wǎng)絡(luò)結(jié)構(gòu)可以模塊化特征圖中任意兩個特征點之間的關(guān)系。本文借鑒 Non-local 網(wǎng)絡(luò)的思路設(shè)計了 CIP 模塊,并將 CIP 模塊組成的網(wǎng)絡(luò)稱為 Contextual Information Processing Network(CIPN)。CIPN 能夠捕獲視角不變性的特征點關(guān)系并具有弱檢測功能。在嵌入 CIPN 后,行人重識別模型將更加關(guān)注行人區(qū)域以及粒度之間的關(guān)系,使得基于分塊的行人重識別模型的性能得到顯著的提升。本文在行人重識別的 4 個數(shù)據(jù)集上進行了充分的測試實驗,并使用兩個評估指標驗證了該模塊的有效性。同時,本文通過可視化工作呈現(xiàn)了弱檢測效果及顯著特征點的相關(guān)性效果,驗證了該模塊的有效性機理。
本文的行人重識別網(wǎng)絡(luò)結(jié)構(gòu)基本可以分為特征提取網(wǎng)絡(luò)、粒度全連接網(wǎng)絡(luò)、能夠捕獲視角不變性的特征點關(guān)系并具有弱檢測功能的 CIPN 三部分,具體如圖 1 所示。其中,特征提取網(wǎng)絡(luò)為用于提取行人基礎(chǔ)特征的基礎(chǔ)網(wǎng)絡(luò),如 VGG[20]、ResNet[21]、DenseNet[22]等??紤]到目前大部分方法普遍使用 ResNet50 作為特征提取網(wǎng)絡(luò),本文在圖 1 中也使用 ResNet50 作為特征提取網(wǎng)絡(luò)圖示。
粒度全連接網(wǎng)絡(luò)主要包括分塊、全局最大池化、降維全連接層和分類全連接層。按照分塊方式,粒度全連接網(wǎng)絡(luò)可分為單粒度和多粒度全連接網(wǎng)絡(luò)。單粒度全連接網(wǎng)絡(luò)是對特征提取網(wǎng)絡(luò)輸出的整個特征進行全局最大池化操作,從而得到一個全局的單粒度行人特征向量。而多粒度全連接網(wǎng)絡(luò)則是對特征提取網(wǎng)絡(luò)輸出的特征先進行分塊,再對每一塊進行全局最大池化操作,從而得到多個局部的粒度行人特征向量,如圖 1 的粒度全連接網(wǎng)絡(luò)為三分塊粒度全連接網(wǎng)絡(luò)。目前大部分基于分塊的行人重識別網(wǎng)絡(luò)粒度數(shù)量從六個到十幾個不等。一般在不引進新數(shù)據(jù)集的情況下,分塊方法普遍使用橫向均等分塊。降維全連接層可以對全局最大池化操作所得到的初步行人特征向量進行降維,得到降維后的粒度行人特征向量。特征降維后,在各分支后面分別接上分類全連接層,即可組成完整的粒度全連接網(wǎng)絡(luò)。其中,降維全連接層的維度與具體模型相關(guān),分類全連接層的維度與數(shù)據(jù)集類別數(shù)相關(guān)。
CIPN 連接在 ResNet50 中的 layer 3 后面。本文的 CIPN 由兩個 CIP 模塊(圖 1 分別表示為 CIP module 1 以及 CIP module 2)和連接在中間的殘差 layer(圖 1 表示為 CIP-layer)組成。CPlayer 的結(jié)構(gòu)與 ResNet50 的第 4 個卷積塊堆疊層一樣,但卷積核的步長為 1。ResNet50 的 layer 3 輸出的淺層特征先輸入到第 1 個 CIP 模塊,再經(jīng)過 1 個 CIP-layer 以及第 2 個 CIP 模塊,最后得到具有視角不變性與弱檢測效果的初步行人特征。CIPN 后半部分連接的網(wǎng)絡(luò)與粒度全連接網(wǎng)絡(luò)一致:先將初步行人特征輸入 GMP 進行全局最大值池化操作,然后連接一個降維全連接層得到降維后的 CIP 行人特征向量,最后再連接一個分類全連接層。
在特征圖中,任意兩個點之間都存在一定程度的相關(guān)性。這種相關(guān)性可以借鑒 Non-local 的數(shù)學(xué)表達式:
圖1 嵌入 CIP 模塊的 ResNet50Fig.1 The ResNet50 with CIP modules
其中,x 為輸入的特征,y 為輸出的特征,兩者的大小一致;f(xi, xj)為特征圖位置 i 與位置 j 的相關(guān)性,f(xi, xj)值越大,表示兩個位置的相關(guān)性越強;g(xj)表示位置 j 處的輸入信號;C(x)為歸一化因子。
CIP 模塊的輸出值 Y 由輸入的特征 X、 和自適應(yīng)調(diào)節(jié)因子 γ 組成,具體如公式(4)所示:
圖2 CIP 模塊的圖示Fig.2 Illustration of the CIP
在粒度全連接網(wǎng)絡(luò)后面各分支接上各自的損失函數(shù)(Granularity Loss),表示為 LG。由于本文主要關(guān)注 CIPN 網(wǎng)絡(luò),所以對粒度全連接網(wǎng)絡(luò)后面各分支所使用的損失函數(shù) LG不作更多的闡述。為了學(xué)習(xí)到更具有判別力的特征,并使得整個訓(xùn)練簡單高效,本文在 CIPN 后面接上交叉熵損失函數(shù),表示為 LCIP。在行人重識別網(wǎng)絡(luò)中,交叉熵損失函數(shù)通過 Softmax 函數(shù)輸出行人類別的預(yù)測值概率,并以該預(yù)測概率與指示變量進行損失評估,具體如公式(5)所示:
總損失函數(shù)設(shè)置為 LCIP與各粒度損失函數(shù) LG的總和,具體如公式(6)如所示:
在訓(xùn)練階段,通過不斷最小化損失函數(shù) LCIP訓(xùn)練 CIPN 分支,使得 CIPN 能更好地學(xué)習(xí)到點與點的相關(guān)性。在測試階段,先將該分支的 CIP 行人特征向量與粒度全連接層所得到的粒度行人特征向量進行拼接,得到最后的行人特征向量,然后采用歐式距離進行相似度度量,具體如圖 1 所示。
為對本文提出的方法進行分析與評估,選擇 4 個常用的行人重識別的數(shù)據(jù)集(Market-1501[23]、 CUHK03[24]、 DukeMTMCReID[25]和 MSMT17[26])進行實驗,各數(shù)據(jù)集的基本情況如表 1 所示。其中,MSMT17 是目前行人 ID 數(shù)量最多、圖片數(shù)量最多、拍攝場景最為復(fù)雜和挑戰(zhàn)性最大的數(shù)據(jù)集。數(shù)據(jù)集一般分為訓(xùn)練集和測試集,測試集中包含查詢圖片(Query)與候選圖片集(Gallery)。
目前大部分行人重識別的相關(guān)研究采用兩個評價標準:第一配準率(Rank-1)和平均準確率(Mean Average Precision,mAP)。其中,第一配準率主要用于模型對簡單樣本配準性能的評估,而平均準確率則兼顧了模型對困難樣本配準性能的評估。
本文實驗基于 EANet 的開源代碼[11],使用 Pytorch 深度學(xué)習(xí)框架實現(xiàn),并在 NVIDIA GTX 1080Ti GPU 硬件上運行。在數(shù)據(jù)集處理方面,所有的設(shè)置都與基礎(chǔ)模型一致。如在 PAP[11]與PAP+CP 實驗中,僅采用垂直翻轉(zhuǎn)進行數(shù)據(jù)增強,所有的圖片均被轉(zhuǎn)化為寬 128 像素且高 256 像素。在訓(xùn)練參數(shù)設(shè)置方面,本文使用隨機梯度下降法作為優(yōu)化算法,沖量(Momentum)設(shè)置為 0.9,批大小設(shè)置為 32,權(quán)重衰減系數(shù)設(shè)置為 0.000 5,總的訓(xùn)練周期(Epoch)數(shù)量為 60 個。在訓(xùn)練過程中,先將預(yù)訓(xùn)練好的 ResNet50(已在 ImageNet 上進行預(yù)訓(xùn)的模型)參數(shù)固定,然后采用 0.2 的學(xué)習(xí)率對新增加的層進行 1 個訓(xùn)練周期的微調(diào)。微調(diào)結(jié)束后,開放網(wǎng)絡(luò)所有的層,對模型的所有參數(shù)訓(xùn)練 60 個訓(xùn)練周期。此時新增加的層的起始學(xué)習(xí)率為 0.2,其他層的起始學(xué)習(xí)率為 0.1,每 25 個訓(xùn)練周期的學(xué)習(xí)率下降為原來的 1/10。所有的損失函數(shù)均采用交叉熵損失函數(shù)。訓(xùn)練總損失為所有分支損失之和,且每個分支的損失函數(shù)權(quán)重一致,均設(shè)置為 1。在測試過程中,批大小仍然為 32,采用歐氏距離作為相似性度量方法。具體的實驗流程如圖 3 所示。
為驗證 C I P 模塊的性能,本文分別在 ResNet50、PCB[10]、EANet[11]和 MGN[13]四個基礎(chǔ)模型中選擇合適的模型加上 CIP 模塊進行實驗。其中,PCB、EANet 和 MGN 均為目前性能較好的多粒度網(wǎng)絡(luò)。接入方式采用 CIPN 分支接入,具體如圖 1 所示。CIPN 分支提取的特征為 1 024 維的向量,其他基礎(chǔ)分支的維度因模型而異,但需保持和基礎(chǔ)模型一致。最終將所有分支得到的行人特征向量拼接后進行相似度匹配。本文分別在單數(shù)據(jù)集和跨數(shù)據(jù)集對 CIP 模型的有效性進行驗證。
表1 常用的行人重識別數(shù)據(jù)集Table 1 Typical person re-identification datasets
圖3 實驗流程Fig.3 Experiment flow chart
在單數(shù)據(jù)集測試中,本文在 ResNet50、PCB、PAP[11]和 MGN 四個基礎(chǔ)模型加上 CIP 模塊,并在 4 個數(shù)據(jù)集進行訓(xùn)練與測試。其中,數(shù)據(jù)集 MSMT17 最為復(fù)雜,更具有代表性。從表 2 可知,加上 CIP 模塊后,所有的基礎(chǔ)網(wǎng)絡(luò)在 4 個數(shù)據(jù)集的 Rank-1 與 mAP 兩個評價指標上都有明顯的提升。CIP 模塊對基礎(chǔ)網(wǎng)絡(luò) ResNet50 的性能提升最為明顯,其中在 CUHK03 數(shù)據(jù)集上 mAP 提升了 7.3%,在 MSMT17 數(shù)據(jù)集上 mAP 提升了 5.2%,甚至在兩項評價指標上已經(jīng)接近多粒度網(wǎng)絡(luò) PCB 的性能。增加 CIP 模塊對多粒度網(wǎng)絡(luò) PCB 的精度同樣具有非常明顯的提升,其中在 MSMT17 數(shù)據(jù)集上 mAP 提升了 5.0%。然而,從表 2 可看出,隨著模型分支的逐漸增多,CIP 模塊對網(wǎng)絡(luò)精度的提升作用越來越微弱。主要是因為增加的 CIP 分支隨著網(wǎng)絡(luò)分支總數(shù)的增加,CIPN 分支產(chǎn)生的特征對總特征的占比會越來越小。但即使對于 MGN 這種具備 3 個分支、8 個粒度的大型網(wǎng)絡(luò),MGN+CIP 模型在 4 個數(shù)據(jù)集上的各項評估指標也有小幅度的性能改善。
在跨數(shù)據(jù)集測試中,本文在 ResNet50、PCB 和 PAP 三個基礎(chǔ)模型加上 CIP 模塊,并在兩個數(shù)據(jù)集進行訓(xùn)練與測試。訓(xùn)練測試結(jié)果如表 3、表 4 所示。從表 3 和表 4 可知,加上 CIP 模塊的 3 個網(wǎng)絡(luò)在跨數(shù)據(jù)集的性能均有顯著的提升,表明該方法對跨數(shù)據(jù)集行人重識別也能起到一定的作用。在單數(shù)據(jù)集測試中,CIP 模塊對模型精度的提升效果隨著模型分支的增加而減弱,但在跨數(shù)據(jù)集測試中這種現(xiàn)象有所減緩。以 M→D 數(shù)據(jù)集測試為例,CIP 模塊對 ResNet50、PCB 和 PAP 在 Rank-1 指標的提升分別是 2.4%、2.4%、3.1%,在 mAP 指標的提升分別是 1.8%、2.9%、2.9%。這表明通過增加 CIP 模塊,模型更加關(guān)注區(qū)域與區(qū)域之間的關(guān)系,并在一定程度上提升了模型的泛化能力。通過對比單數(shù)據(jù)集測試與跨數(shù)據(jù)集測試兩個實驗可看出,CIP 模塊對多粒度網(wǎng)絡(luò)模型的性能提升在跨數(shù)據(jù)集中的表現(xiàn)更為明顯。
表2 單數(shù)據(jù)集測試Table 2 Single-domain tests
表3 跨域數(shù)據(jù)集測試 1Table 3 Cross-domain tests 1
表4 跨域數(shù)據(jù)集測試 2Table 4 Cross-domain tests 2
表 5 為將本文方法與其他深度學(xué)習(xí)的行人重識別方法在 4 個數(shù)據(jù)集的結(jié)果進行比較。從表 5 可看出,本文復(fù)現(xiàn)的 MGN*+CIP 模塊性能總體優(yōu)于其他的行人重識別方法。雖然相對于 MGN*僅有小幅度的提升,但由于 MGN*本身是一個具有 3 個分支及 8 個粒度,針對各條分支結(jié)合了三元組損失函數(shù)和交叉熵損失函數(shù)進行復(fù)雜調(diào)試的模型,所以提升相對困難。盡管如此,CIP 模塊還是能在一定程度增強了該模型的性能。而且在存在大量行人背景區(qū)域過多的數(shù)據(jù)集 CUHK03 上,Rank-1 和 mAP 指標分別提升了 2.2%、1.8%。這說明了 CIP 模塊從弱檢測效果上對 MGN 的精度具有更大的提升效應(yīng)。
為深入探究 CIP 模塊能夠起作用的機理,本文在 ResNet50 上進行了可視化探究的實驗。其中,實驗所采用的照片均來自 MSMT17 數(shù)據(jù)集。
表5 與表現(xiàn)最佳方法的比較Table 5 Comparison with recent state-of-the-art methods
本文在 CIPN 第 2 個 CIP 模塊(即圖 1 中的 CIP module 2)輸出的特征上使用類激活映射(Class Activation Mapping)[29],對 CIPN 分支更加關(guān)注的區(qū)域進行可視化,結(jié)果如圖 4 所示。從圖 4 可以明顯觀察到,模型更加關(guān)注行人所在區(qū)域。這是由于模型通過學(xué)習(xí)點與點之間的相關(guān)性,而背景區(qū)域與行人區(qū)域的差異相對較大,從而使得模型更為關(guān)注行人區(qū)域,達到了某種程度的弱檢測效果。
圖4 用類激活映射對 CIP 模塊輸出的特征圖進行可視化Fig.4 Visualized feature maps output by the CIP modules
圖5 圖片塊之間的相關(guān)性進行可視化Fig.5 Visualization of the correlations between image patches
本文提出一種適用于行人重識別的 CIP 模塊及 CIP 的嵌入方法 CIPN。CIP 模塊主要通過關(guān)注特征圖中點與點之間的依賴來學(xué)習(xí)視角不變性及區(qū)分行人背景的特征。在 4 個數(shù)據(jù)集上進行的充分實驗結(jié)果表明,通過嵌入 CIP 模塊,大部分多粒度行人重識別方法都得到了顯著的提升。其中,通過整合 CIP 模塊到 MGN 上,本文在 4 個數(shù)據(jù)集上均獲得了最好的結(jié)果。此外,CIP 模塊具有較好的兼容性,能夠很方便地嵌入到任何行人重識別網(wǎng)絡(luò)。同時,本文也通過可視化的方法驗證了 CIP 模塊的有效機理。