張 羽 朱玉全
(江蘇大學計算機科學與通信工程學院 江蘇 鎮(zhèn)江 212013)
行人再識別主要研究跨攝像頭再識別的問題,即出現(xiàn)在攝像頭中的行人能夠在另外的攝像頭中自動被識別出來。實際跨攝像頭跟蹤中,由于拍攝角度、視角、光照、圖像分辨率、遮擋、相機設(shè)置的影響,可能會導致同一個行人在不同的攝像頭下具有顯著差異,因此行人再識別仍然是計算機視覺中的一項具有挑戰(zhàn)性的任務。
早期基于深度學習的行人再識別主要關(guān)注全局特征[1-3](Global Feature),網(wǎng)絡(luò)從整幅圖像提取行人全局特征,通過學習全局特征來捕捉最顯著的外觀特征,從而表示不同行人的身份。目前大部分的卷積神經(jīng)網(wǎng)絡(luò)都是基于全局特征。隨著監(jiān)控場景中得到圖像的復雜度越來越高,僅僅使用全局特征很難達到性能要求,一些非顯著或不常見的細節(jié)信息很容易被忽略。因此提取更加復雜的局部特征(Local Feature)成為行人再識別一個研究熱點。
目前利用局部特征進行行人再識別的方法主要分為兩類。第一類是利用在其他數(shù)據(jù)集上訓練好的姿勢估計模型無監(jiān)督遷移到行人再識別數(shù)據(jù)集上,得到行人身體關(guān)節(jié)的定位,然后根據(jù)身體關(guān)節(jié)的位置,獲得感興趣區(qū)域。其中CVPR2017的工作Spindle Net[4]是該類方法的典型代表,Spindle Net網(wǎng)絡(luò)首先通過骨架關(guān)鍵點提取14個人體關(guān)鍵點,之后利用這些關(guān)鍵點來提取7個感興趣區(qū)域(Region of Interest,ROI),并將這7個ROI區(qū)域和原始圖片輸入同一個網(wǎng)絡(luò)提取特征,最后將原始圖片得到的特征和7個ROI區(qū)域的特征進行融合。裴嘉震等[5]首先采用姿態(tài)估計算法定位人體關(guān)節(jié)點,然后對行人圖像進行視圖判別以獲得視點信息,并根據(jù)視點信息與行人關(guān)鍵點位置進行局部區(qū)域推薦,生成行人局部圖像,最后將整幅圖像和局部圖像同時輸入網(wǎng)絡(luò)進行特征提取。第一類方法雖然可以顯式地定位人體的部件,但是由于姿勢估計數(shù)據(jù)集和行人再識別數(shù)據(jù)集之間存在很大的數(shù)據(jù)偏差,導致姿勢估計任務遷移到行人再識別任務過程中,會向行人再識別任務中引入新的誤差。此外,大部分情況下引入姿勢估計模型需要的標注成本較高,消耗的訓練時間較長。
第二類方法采用統(tǒng)一的圖像切塊方式,按照人體特殊的結(jié)構(gòu),將圖片從上到下均勻分成幾等份。文獻[6]是圖片切塊的一個典型示例,圖片被垂直切分為若干個圖像塊,然后將圖像塊按照順序輸入到由Long Short-Term Memory網(wǎng)絡(luò)[7](LSTM)和孿生網(wǎng)絡(luò)[8]組成的網(wǎng)絡(luò)中進行特征提取,最后的特征融合了所有圖像塊的局部特征。Zhang 等[9]提出的AlignedReID模型將圖片水平切分為8個部分,然后利用卷積神經(jīng)網(wǎng)絡(luò)對每個部分提取局部特征,最后利用動態(tài)規(guī)劃思想中的最短路徑距離實現(xiàn)局部特征自動對齊。Sun等[10]提出一種能夠精確劃分身體區(qū)域的PCB網(wǎng)絡(luò)模型,該模型利用水平切塊,將特征圖均勻切分為六塊,通過這種切塊方式可以提取更細節(jié)更具有魯棒性的特征。但是其后續(xù)需要使用精確部分池化網(wǎng)絡(luò)(RPP)對分塊特征進行精煉,導致網(wǎng)絡(luò)不能進行端到端的訓練。Chen等[11]在PCB網(wǎng)絡(luò)的基礎(chǔ)上加入了高階注意模塊,對注意力機制中復雜的高階統(tǒng)計信息進行建模和利用,從而捕捉行人之間細微的差異。Miao等[12]提出了姿態(tài)引導特征對齊(PGFA)方法,該方法包含姿態(tài)引導全局特征分支和局部特征分支,姿態(tài)引導全局特征分支中利用人體關(guān)鍵點坐標來生成注意力圖,引導模型關(guān)注有用的信息,局部特征分支中將特征圖水平切為6個部分,每個部分引入一個分類損失,引導模型關(guān)注局部特征。
為了讓網(wǎng)絡(luò)既可以學習到不同層級下的行人全局特征,又可以學習到具有區(qū)分力的細節(jié)特征,本文提出基于圖像切塊的多特征融合行人再識別模型(Image Partition Multi-feature Fusion,PMF-ReID)。PMF-ReID模型使用三個分支分別提取行人的全局特征和局部特征,并將三個分支的特征進行深度融合實現(xiàn)行人身份預測。本文的貢獻如下:1) PMF-ReID模型同時提取圖像低層和高層的全局特征,在保留高分辨率圖像特征的同時,網(wǎng)絡(luò)可以提取到更深層的語義信息;2) 在局部特征提取過程中,分支3僅將圖像進行二分塊就可以較好地提取局部特征避免復雜的模型設(shè)計和引入額外的姿態(tài)評估模型;3) 在模型端到端訓練過程中,本文聯(lián)合三種損失函數(shù),并對不同的特征使用不同的損失函數(shù),從而將提取到的特征進行有效融合,使得網(wǎng)絡(luò)可以互補地進行學習。
本文的網(wǎng)絡(luò)架構(gòu)如圖1所示,PMF-ReID模型主要分為前后兩個部分:前半部分為提取圖片特征的骨干網(wǎng)絡(luò)(Backbone network),后半部分為多特征融合的行人身份分類架構(gòu)。多特征融合主要融合了圖像的三個全局特征和兩個局部特征,根據(jù)不同類型的特征應用合適的損失函數(shù)進行網(wǎng)絡(luò)模型訓練,最后根據(jù)提取出來的特征實現(xiàn)行人身份預測。
圖1 本文網(wǎng)絡(luò)架構(gòu)
當前的行人再識別網(wǎng)絡(luò)模型大多以現(xiàn)有的ResNet[13]、VGG-Net[14]、Dense-Net[15]、GoogleNet[16]等網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò)進行研究,上述網(wǎng)絡(luò)模型的有效性已經(jīng)在 ImageNet[17]數(shù)據(jù)集上得到了驗證。由于ResNet-50相比于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)(如VGG-Net)復雜度降低且需要的參數(shù)下降,網(wǎng)絡(luò)可以做到更深,因此本文使用ResNet-50作為骨干網(wǎng)絡(luò)并對其進行修改。
本文移除了ResNet-50中Layer3后面的Layer4層、池化層和全連接層,只保留了Layer3之前網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),并使用ImageNet預訓練模型的參數(shù)。骨干網(wǎng)絡(luò)包括卷積層,批正則化(Batch Normalization, BN)、ReLU層、最大池化層、Layer1、Layer2和Layer3層。圖片輸入后,將由一個7×7的卷積核負責進行特征的抽取,卷積核的步長為2,所以圖像的長寬會降低為原先的1/2;隨后,再經(jīng)過最大池化層進一步降低圖像的分辨率;最后經(jīng)過Layer1、Layer2、Layer3卷積得到特征圖Q。其中,每個Layer層中包括若干個下采樣塊和殘差塊[13](圖2為Layer1層中的下采樣塊和殘差塊),通過殘差塊和下采樣塊的跳躍連接,網(wǎng)絡(luò)可以提取到圖片更深層次的語義特征。
圖2 下采樣塊和殘差塊
為了從圖片中獲取不同層級的全局圖像特征和更具有區(qū)分力的細節(jié)特征,本文設(shè)計多特征融合的行人身份分類網(wǎng)絡(luò)架構(gòu)。如圖3所示,輸入圖像經(jīng)過骨干網(wǎng)絡(luò)后得到特征圖Q,然后將Q輸入到多特征融合網(wǎng)絡(luò)架構(gòu)進行全局和局部特征提取。該架構(gòu)由三個分支組成,分支1(Branch1)和分支2(Branch2)用來提取不同層級的全局特征G1和G2;分支3(Branch3)用來提取全局特征G3和局部特征P1、P2;最后,融合所有特征實現(xiàn)行人身份預測。
圖3 PMF-ReID網(wǎng)絡(luò)模型
在端到端的訓練階段,本文對不同的分支使用不同的損失函數(shù),注重于讓模型學習到有區(qū)分性的有益部件信息。對于局部特征P1和P2,本文使用交叉熵損(cross-entropy loss)和中心損失(center loss)進行監(jiān)督訓練;對于全局特征G1、G2和G3,本文使用三元組損失(triplet loss)優(yōu)化網(wǎng)絡(luò)參數(shù)。整個網(wǎng)絡(luò)模型損失函數(shù)如式(1)所示。
(1)
式中:λ為平衡中心損失的權(quán)重,實驗中設(shè)為0.000 5。
1.3.1提取不同層級的全局特征
隨著網(wǎng)絡(luò)深度的增加,高層特征具有更強的語義信息,但高層級特征的分辨率較低導致其對細節(jié)的感知能力較差。多數(shù)行人再識別網(wǎng)絡(luò)模型僅在高層級特征上進行分類,忽視了低層特征的作用。因此,分支1和分支2分別從兩個不同的層級提取行人的全局特征,從而讓網(wǎng)絡(luò)既可以學習到高層的語義信息,又可以學習到低層的細節(jié)特征。
為了獲得更多的位置和細節(jié)信息,本文在分支1中保留了低層特征,即對特征圖Q不進行卷積下采樣,直接將特征圖Q水平區(qū)域內(nèi)所有列向量進行全局最大池化(Global Max Pooling,GMP)得到低層全局特征。本文在全局最大池化的基礎(chǔ)上添加了全局平均池化(Global Average Pooling,GAP)[18],通過對每個通道內(nèi)的像素求取均值來整合全局空間信息,在一定程度上解決了全局最大池化只保留最顯著信息的問題。最后通過Add操作將兩個低層全局特征進行融合得到全局特征G1。
由于分支1經(jīng)過的卷積層較少,導致其所得特征的語義性較低。為了獲得具有更高語義信息的特征,分支2首先使用Layer3和Layer4層繼續(xù)對特征圖Q進行卷積,其中每個Layer層由若干個下采樣塊和殘差塊構(gòu)成,下采樣最初的卷積步長設(shè)置為2,通過這樣的方式對特征圖進行下采樣后,特征圖Q的通道數(shù)擴展為原來的一倍,圖像大小縮減為原來的一半。最后將卷積后的特征圖經(jīng)過全局最大池化得到全局特征G2。本文使用三元組損失函數(shù)分別對分支1和分支2進行監(jiān)督學習,其中三元組損失函數(shù)如式(2)所示:
(2)
式中:‖*‖為歐氏距離;P代表每一個訓練批次ID數(shù)目;K代表同一個ID的圖片數(shù);fa、fp和fn分別表示錨點、正樣本和負樣本的特征表達;α為三元組損失的margin值,設(shè)置為0.3。
1.3.2局部特征的提取
受PCB網(wǎng)絡(luò)的啟發(fā),本文的網(wǎng)絡(luò)在提取局部特征時采用水平切塊的方式。分支3中,先讓特征圖Q經(jīng)過Layer3層和Layer5x層,然后在水平方向上將得到的特征圖分為上下兩個部分,最后對這兩個部分進行特征提取得到局部特征P1、P2,其中每一個局部特征都享有一樣的權(quán)重。與分支2中Layer4層不同的是,Layer5x層少了下采樣操作,因此不改變圖像的分辨率,切塊后的圖像仍具有較高的分辨率,保留了適合該局部特征的感受野。本文在使用圖像分塊提取局部特征時,保留了同尺度下圖像全局特征G3,使得模型既可以學習到行人的局部細節(jié)信息,又可以學習到該尺度下的行人的整體信息。
本文使用Softmax激活函數(shù)作為每個局部特征的分類器,表達式如式(3)所示。
P(id)=softmax(w(id)·x+b(id))
(3)
式中:w(id)和b(id)分別是全連接層的權(quán)重矩陣和偏差向量;x為特征;P(id)為輸出的行人身份的預測概率。
由于局部特征塊只包含行人的部分特征,對局部特征使用三元組損失可能會使得局部特征塊的類間距離小于類內(nèi)距離,影響模型性能,所以對于局部特征本文使用交叉熵損失和中心損失函數(shù)進行監(jiān)督訓練。
交叉熵損失具有較強的類間判別力,但對類內(nèi)差距的減少效果并不明顯。為了增加類內(nèi)的緊湊性,本文在使用交叉熵損失函數(shù)的同時,添加了中心損失函數(shù)對局部特征進行監(jiān)督,從而讓網(wǎng)絡(luò)模型學習到的特征具有更好的泛化性和辨別能力。通過懲罰每個種類的樣本和該種類樣本中心的偏移,使得同一種類的樣本盡量聚合在一起。交叉熵損失函數(shù)和中心損失函數(shù)的定義如式(4)和式(5)所示。
(4)
(5)
式中:m是最小批次圖片的數(shù)量;xi表示第i幅圖片的特征向量;yi表示第i個圖像的標簽;cyi為第yi個類中心。
Market-1501[19]數(shù)據(jù)集包含1 501個類別,總共36 036幅圖片。該數(shù)據(jù)集在清華大學校園中采集,圖像來自六個不同的攝像頭,包含五個高分辨攝像頭和1個低分辨攝像頭,每個類別的圖片最多能被六個攝像頭捕捉到,最少能被兩個攝像頭捕捉到。訓練集(training)中有751個行人ID,包含12 936幅圖像,平均每個ID有17.2幅訓練圖片;測試集(testing)中有750個行人ID,包含19 732幅圖像,平均每個ID有26.3幅測試圖片;查詢集(query)中共有3 368幅圖像。
DukeMTMC-reID[2]數(shù)據(jù)集是一個大規(guī)模標記的多目標多攝像頭行人跟蹤數(shù)據(jù)集,包含36 411個圖像,1 812個不同ID的行人,其中1 404個不同的ID行人出現(xiàn)在不同攝像機視野中,剩余的408個不同ID的行人是一些誤導圖片。該數(shù)據(jù)集于杜克大學采集,圖像來自8個同步攝像頭,其中702個行人ID用于訓練,其他ID用于測試。
MSMT17[20]數(shù)據(jù)集是當前最大的公開可用的行人再識別數(shù)據(jù)集,數(shù)據(jù)集總時長約180 h,圖像來自15個攝像頭,其中:12個室外攝像頭;3個室內(nèi)攝像頭。數(shù)據(jù)集總共有4 101個行人ID,共126 441個邊界框(bounding boxes)。訓練集有1 041個行人ID,共32 621個邊界框,測試集有3 060個行人ID,共93 820個邊界框,其中測試集中有11 659個邊界框被隨機選出來作為查詢集,其他的82 161個邊界框作為底庫(gallery)。數(shù)據(jù)集以Faster RCNN[21]作為行人檢測器,將檢測到的邊界框進行手工標注。
為了評估本文模型性能,采用業(yè)內(nèi)最常用的兩種評價指標:rank-n(accuracy)和mAP(mean Average Precision)。rank-n是指所查詢的圖像與底庫圖像匹配度最高的前n幅圖片中命中查詢圖片的概率,rank-1即首次命中率。mAP是更加全面衡量行人再識別算法效果的指標,它反映檢索的圖片在底庫中所有正確的圖片排在結(jié)果隊列前面的程度。
本文基于PyTorch框架實現(xiàn)網(wǎng)絡(luò)模型,并在GTX 1080 Ti GPU上完成實驗。輸入圖像分辨率為128×384,寬高比為1∶3。訓練時的batchsize大小設(shè)置為32,測試的batchsize大小設(shè)置為256。本文使用SGD優(yōu)化器對每個樣本進行梯度更新,訓練到收斂時結(jié)束。本文將momentum設(shè)置為0.9,weight decay設(shè)置為0.000 5。
訓練策略具體包括:1) 本文對訓練數(shù)據(jù)進行隨機裁剪、水平翻轉(zhuǎn)和概率為0.5的隨機擦除,從而進行數(shù)據(jù)增強;2) 標簽平滑,用于降低模型過擬合的風險,提高模型的泛化性能;3) 動態(tài)調(diào)整學習率,初始學習率為3E-2,每step_size步之后衰減lr,多個參數(shù)共用step_size,step_size大小設(shè)置為60,130。factor設(shè)置為0.1。warmup_epoch設(shè)置為10,warmup_begin_lr設(shè)置為3E-4。
為了驗證本文方法的有效性,本文在Market-1501數(shù)據(jù)集上進行了4組對比實驗。第1組實驗使用分支1提取全局特征;第2組實驗使用分支1和分支3分別提取淺層的全局特征和局部特征并進行融合;第3組實驗使用分支2和分支3分別提取深層次的全局特征和局部特征進行融合;第4組實驗使用3個分支同時進行特征融合,實驗結(jié)果如表1所示。從第1組和第2、3、4組的對比中可以發(fā)現(xiàn),同時提取行人的全局特征和局部特征準確率明顯提升;從(組2,組4)和(組3,組4)的對比中可以發(fā)現(xiàn),與單一層級的全局特征和局部特征融合相比,將不同層級下的全局行人特征和局部特征進行融合可以獲得更好的識別結(jié)果。
表1 深度特征融合消融實驗(%)
為了進一步討論圖像分塊數(shù)量對實驗結(jié)果的影響,本文在公開的大型數(shù)據(jù)集Market-1501進行了3組對比實驗,實驗結(jié)果如表2所示。第一組實驗(Global)不對圖片進行分塊,僅使用分支1和分支2對整幅圖片進行全局特征提取;第二組實驗(Global+Part-2)中的網(wǎng)絡(luò)分為3個分支,第1、2個分支使用整幅圖像提取圖像全局的特征,第三個分支將圖像水平切成兩塊,從上下兩個部分分別進行局部特征提取;第三組實驗(Global+Part-3)同第二組一樣,網(wǎng)絡(luò)分為三個分支,第一、二個分支提取圖像全局特征,第三個分支則把圖像水平切成三塊,上中下三個部分分別提取圖像的局部特征。從實驗結(jié)果可以看出:1)組2、組3相比較組1在rank-1和mAP有明顯的提高,說明將全局特征和局部特征融合的方法是有效的;2)在rank-1和mAP上組2比組3分別高出0.6百分點和2.3百分點,說明本文中將圖像切分兩塊的效果更好。
表2 圖像分塊實驗結(jié)果比較(%)
為了驗證多損失函數(shù)的有效性,本文在Market-1501數(shù)據(jù)集上使用不同損失函數(shù)進行了三組對比實驗,如表3所示。組1是三個分支均使用交叉熵損失訓練網(wǎng)絡(luò);組2是對3個分支中全局特征和局部特征分別使用三元組損失和交叉熵損失指導多特征學習;組3在第2組實驗的基礎(chǔ)上對局部特征增加了中心損失來輔助多特征學習??梢钥闯?第3組實驗的mAP和rank-1值分別達到87.6%和95.4%,聯(lián)合三個損失函數(shù)比使用單個損失函數(shù)在mAP和rank-1值上分別提高3.4百分點和1.2百分點,說明使用多個損失函數(shù)聯(lián)合學習對行人再識別任務起到了促進作用。
表3 不同損失函數(shù)性能比較(%)
為驗證采用水平切塊的局部特征提取方法中,本文提出的網(wǎng)絡(luò)模型的優(yōu)勢,本文在Market-1501數(shù)據(jù)集上與其他模型進行了比較。第一組AlignedReID[9]模型把圖片切分為8個部分;第二組GLAD[22]模型把圖片分為頭部、上身和下身三個部分提取特征;第三組MHN[11]、PCB[10]和PCB+RPP[10]模型將圖片水平切塊為6個部分,分別對每個小部分提取特征。從圖4中可以看出,在基于水平切塊的局部特征提取方法中,本文在沒有使用復雜圖像切塊的情況下,所提出的網(wǎng)絡(luò)模型比目前先進的MHN模型在rank-1和mAP上分別高出0.3百分點和2.6百分點。
圖4 不同網(wǎng)絡(luò)模型在Market-1501數(shù)據(jù)集上的識別率
表4和表5將本文方法與其他模型在Market-1501、DukeMTMC-reID和MSMT17數(shù)據(jù)集上的識別準確率進行了比較,其中“—”表示原文獻沒有給出實驗結(jié)果??梢钥闯?本文方法取得較好的實驗結(jié)果。其中與目前state-of-the-art 的MHN(CVPR2019)的模型相比,本文模型在Market-1501數(shù)據(jù)集上的rank-1和mAP分別比其高出0.3百分點和2.6百分點;DukeMTMC-reID數(shù)據(jù)集上的rank-1與其相近但mAP比其高出1.3百分點。在MSMT17數(shù)據(jù)集上rank-1和mAP上也有明顯的提升。
表4 Market-1501、DukeMTMC-reID數(shù)據(jù)集上本文模型與現(xiàn)有模型的比較(%)
表5 MSMT17數(shù)據(jù)集上本文模型與現(xiàn)有模型的比較(%)
本文將實驗的結(jié)果進行了可視化操作,圖5(a)是僅使用整幅圖片提取全局特征得到的可視化結(jié)果,圖5(b)是本文網(wǎng)絡(luò)的可視化結(jié)果。其中:rank是命中率核心指標;rank-1就是排在第一位的圖是否包含目標本人;rank-8是1至8幅圖片中是否至少一幅包含目標本人。
(a)
從圖5(a)可以看出,輸入查詢圖片,其中第7幅圖片和第8幅圖片并不是目標本人,屬于識別錯誤的圖片。圖5(b)中所有查詢出來的圖片都是目標本人,即全部查找正確。從可視化結(jié)果可以看出本文提出的網(wǎng)絡(luò)模型對于行人再識別的準確率有明顯的提高。
本文從行人再識別應用場景復雜、行人外觀差異大,需要提取更多細節(jié)的行人特征這一問題著手,提出一種基于圖像切塊的多特征融合的行人再識別網(wǎng)絡(luò)模型。本文設(shè)計的網(wǎng)絡(luò)模型分為三個分支,全局特征提取分支把整幅行人圖像作為輸入,分別提取圖像不同層級的外觀特征;局部特征提取分支則把圖像分為上下兩個部分,分別對其提取細節(jié)特征。此網(wǎng)絡(luò)模型既能夠關(guān)注到行人的外觀特征,又能關(guān)注到行人的局部特征,使得網(wǎng)絡(luò)具有很好的行人特征表示能力。此外,本文使用三種損失函數(shù)聯(lián)合學習代替單一的損失函數(shù)指導網(wǎng)絡(luò)學習。在幾個大型數(shù)據(jù)集上進行了驗證實驗,結(jié)果表明本文提出的PMF-ReID模型能夠提高行人再識別的準確率。