厙向陽(yáng),李蕊心,葉 鷗
西安科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,西安 710054
行人重識(shí)別主要是為了判斷不同攝像機(jī)下的行人是否為同一行人,攝像機(jī)捕獲的行人信息由于視角、光照、分辨率等的不同,造成行人身份難以分辨。目前行人重識(shí)別方法[1]主要有傳統(tǒng)的方法和基于深度學(xué)習(xí)的方法。傳統(tǒng)行人重識(shí)別方法主要由特征提取和度量學(xué)習(xí)兩部分組成。特征提取算法有LOMO算法[2]、Fish算法[3]、GOG算法[4]等,主要是從顏色、紋理、形狀、梯度等底層視覺(jué)信息入手進(jìn)行特征提取。度量學(xué)習(xí)算法有LMNN算法[5]、RankSVM算法[6]、KISSME算法[7]等,主要是學(xué)習(xí)特征之間的距離來(lái)進(jìn)行行人距離判別。而深度學(xué)習(xí)是將特征提取與距離度量融合到深度學(xué)習(xí)網(wǎng)絡(luò)中進(jìn)行行人重識(shí)別。側(cè)重于特征提取的算法有MGN算法[8]、APR算法[9]、多尺度局部特征選擇算法[10],主要是從網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)入手提取到更具魯棒性的行人特征。側(cè)重于度量學(xué)習(xí)的損失方法有對(duì)比損失[11]、三元組損失[12]、四元組損失[13]等,主要是通過(guò)對(duì)一對(duì)或者是三元組圖片進(jìn)行度量學(xué)習(xí),使得同一行人的距離更近,而不同行人的距離更遠(yuǎn),進(jìn)而通過(guò)距離分辨出不同的行人。深度學(xué)習(xí)模型能自主地提取特征,但隨著網(wǎng)絡(luò)層數(shù)的加深會(huì)出現(xiàn)梯度消失情況,殘差網(wǎng)絡(luò)緩解梯度消失問(wèn)題,但提取出的特征信息未被合理使用。殘差網(wǎng)絡(luò)融合注意力機(jī)制模塊可以很好地克服由于特征信息未被合理使用所帶來(lái)的弊端。例如,Zheng等人提出的PAN算法[14],用神經(jīng)網(wǎng)絡(luò)模型自動(dòng)提取特征,利用一個(gè)映射預(yù)測(cè)網(wǎng)絡(luò)訓(xùn)練出來(lái)一個(gè)參數(shù),最后進(jìn)行行人身份的判別。Sun等人提出的PCB算法[15]主要考慮到由于暴力分割所引起的行人未對(duì)齊問(wèn)題,行人特征進(jìn)行均分之后通過(guò)空間注意力來(lái)對(duì)行人部分信息進(jìn)行微調(diào)使其對(duì)齊。但是上述算法只考慮了空間域的信息特征,而忽略了通道域的特征信息。行人部分圖像被遮擋是影響行人重識(shí)別準(zhǔn)確性的另一個(gè)重要因素。金翠等提出的基于隨機(jī)擦除行人對(duì)齊網(wǎng)絡(luò)的行人重識(shí)別方法[16],通過(guò)隨機(jī)擦除行人矩形框中的部分像素值可以解決圖像部分遮擋或者殘缺所帶來(lái)的匹配不準(zhǔn)確問(wèn)題。針對(duì)上述問(wèn)題本文提出了融合隨機(jī)擦除和殘差注意力網(wǎng)絡(luò)的行人重識(shí)別算法。該算法在殘差網(wǎng)絡(luò)的基礎(chǔ)上,引入注意力機(jī)制模塊,通過(guò)強(qiáng)調(diào)有用的特征和抑制作用不大的特征來(lái)提升網(wǎng)絡(luò)的判別能力。引入隨機(jī)擦除的數(shù)據(jù)增強(qiáng)方法,以便降低過(guò)擬合現(xiàn)象,同時(shí)提高網(wǎng)絡(luò)泛化能力,解決行人重識(shí)別中遮擋問(wèn)題。最后使用triplet loss對(duì)融合網(wǎng)絡(luò)進(jìn)行監(jiān)督訓(xùn)練,實(shí)現(xiàn)樣本在特征空間中達(dá)到更好的聚類效果,提升行人重識(shí)別的準(zhǔn)確率。實(shí)驗(yàn)驗(yàn)證了算法的可行性和有效性。
卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Convolutional neural network structure
(1)輸入層。輸入若干張行人圖像。
(2)卷積層。卷積層通過(guò)滑動(dòng)窗口的不斷移動(dòng)來(lái)提取特征,設(shè)Hi為第i層卷積輸出的特征,則
其中,Hi-1為輸入圖像的特征;Wi為該層的權(quán)值大??;b i為偏置;f(?)為激活函數(shù);?表示卷積運(yùn)算。
(3)池化層。對(duì)卷積層輸出的特征圖進(jìn)行尺度上的縮小以達(dá)到降維的目的。根據(jù)池化操作的不同,可分為最大池化(Max pooling),平均池化(Mean pooling)等。最大池化可以提取到最明顯的特征,平均池化就是提取所有區(qū)域內(nèi)像素的平均值。
(4)全連接層。一般位于網(wǎng)絡(luò)的輸出層之前,承擔(dān)特征映射及分類的功能。
(5)輸出層。在圖像分類領(lǐng)域輸出層通常采用softmax多分類器將全連接層的輸出映射到[0,1]區(qū)間,從而得到輸出的概率:
其中,h(x,y i)表示x屬于第i類的原始度量;P(y=i|x)表示樣本x屬于第i類的概率。
殘差網(wǎng)絡(luò)是由一系列殘差塊組成的網(wǎng)絡(luò)結(jié)構(gòu)。殘差網(wǎng)絡(luò)基本模塊結(jié)構(gòu)如圖2所示。
圖2 殘差網(wǎng)絡(luò)基本模塊結(jié)構(gòu)Fig.2 Basic module structure of residual network
假設(shè)第l+1層殘差卷積子模塊如下所示:
其中,xl為第l層的輸入;wl為第l層的參數(shù)。
由上式推導(dǎo)可得第L層的特征x L如下式所示:
設(shè)損失為ε,殘差網(wǎng)絡(luò)反向傳播如下所示:
殘差網(wǎng)絡(luò)[17]的基本模塊結(jié)構(gòu)通過(guò)將帶有權(quán)值的殘差項(xiàng)改用恒等映射代替的方法,令殘差部分趨近于0,很好地解決了隨著深度的增加而引起的梯度逐漸消失現(xiàn)象。
注意力機(jī)制模塊CBAM[18],是一種結(jié)合了空間(spatial)和通道(channel)的注意力機(jī)制模塊,如圖3所示。
圖3 注意力機(jī)制模塊Fig.3 Attention mechanism module
卷積運(yùn)算所得特征圖作為輸入特征分別經(jīng)過(guò)空間注意力模塊(spatial attention module)與通道注意力模塊(channel attention module)之后得到精煉后的特征。其中通道注意力模塊如圖4所示。
圖4 通道注意力模塊Fig.4 Channel attention module
輸入特征圖(input feature)分別通過(guò)全局最大池化(MaxPool)和全局平均池化(AvgPool)之后,輸入到一個(gè)共享多層神經(jīng)網(wǎng)絡(luò)(SharedMLP)中,之后對(duì)輸出的特征進(jìn)行相加,再經(jīng)過(guò)一個(gè)線性激活函數(shù)得到權(quán)重系數(shù)Mc,c為通道序號(hào),最后將權(quán)重系數(shù)與原特征相乘就可以得到縮放后的新特征。
設(shè)F為輸入的特征圖,MLP為一個(gè)兩層共享權(quán)值的神經(jīng)網(wǎng)絡(luò)。則通道注意力模型如下:
其中,F(xiàn) cavg為通道維度的全局平均池化特征;F cmax為通道維度的全局最大池化特征;W0為第一層網(wǎng)絡(luò)之后的權(quán)值;W1為第二層網(wǎng)絡(luò)之后的權(quán)值;σ為激活函數(shù);C為通道數(shù);r為減少率。
空間注意力模塊如圖5所示。
圖5 空間注意力模塊Fig.5 Spatial attention module
通道注意力模塊修正的特征圖(channel refined feature)分別通過(guò)全局平均池化(AvgPool)和全局最大池化(MaxPool)之后按照通道拼接兩部分特征,然后經(jīng)過(guò)一個(gè)7×7的卷積層,再經(jīng)過(guò)一個(gè)線性激活函數(shù)得到權(quán)重系數(shù)M s,最后將權(quán)重系數(shù)與輸入特征相乘就可以得到縮放后的新特征。
設(shè)F為輸入的特征圖,空間注意力模型如下:
其中,F(xiàn) savg為空間維度的全局平均池化特征;F smax為空間維度的全局最大池化特征;f7×7為卷積核大小為7×7的卷積層;σ表示激活函數(shù)。
輸入圖片采用隨機(jī)擦除對(duì)行人數(shù)據(jù)集進(jìn)行預(yù)處理,通過(guò)殘差注意力網(wǎng)絡(luò)進(jìn)行特征提取,再通過(guò)triplet loss對(duì)融合網(wǎng)絡(luò)進(jìn)行監(jiān)督訓(xùn)練,之后輸出行人重識(shí)別結(jié)果。算法流程圖如圖6所示。
圖6 算法流程圖Fig.6 Algorithm flow chart
設(shè)原始圖像為I,圖像大小W和H,圖像面積為S,擦除概率P,隨機(jī)初始化擦除區(qū)域?yàn)镾e,Se/S取值范圍設(shè)置為(Sl,S h),擦除長(zhǎng)寬比為Re,Re取值范圍設(shè)置為(r1,1/r1),Ie為隨機(jī)擦除矩形框,隨機(jī)初始化P1,(Xe,Ye)為圖像I中隨機(jī)選取的坐標(biāo)點(diǎn),V(x,y)=random(x,y),random()為隨機(jī)數(shù)生成函數(shù)。隨機(jī)擦除算法描述如下:
輸入原始行人圖像,隨機(jī)初始化擦除概率為P1,若隨機(jī)初始化的概率P1大于擦除概率P,則直接輸出原始圖像。否則,根據(jù)給定的擦除面積以及長(zhǎng)寬比的取值范圍,隨機(jī)初始化擦除面積以及長(zhǎng)寬比,計(jì)算擦除框的長(zhǎng)和寬。隨機(jī)初始化坐標(biāo)點(diǎn)P(Xe,Ye),若隨機(jī)擦除的長(zhǎng)與坐標(biāo)點(diǎn)Xe之和小于等于原始圖像的長(zhǎng)度以及寬與坐標(biāo)點(diǎn)Ye之和小于等于原始圖像的寬度,對(duì)隨機(jī)擦除矩形框隨機(jī)選擇(0,255)之間的像素賦值,最終輸出擦除后圖像。否則,重復(fù)上述步驟。
隨機(jī)擦除概率P=0.5可以達(dá)到最好的識(shí)別效果。隨機(jī)擦除算法流程圖如圖7所示。
圖7 隨機(jī)擦除算法流程圖Fig.7 Random erasing algorithm flow chart
使用改進(jìn)的殘差網(wǎng)絡(luò)(Resnet50)為主干網(wǎng)絡(luò),添加分支網(wǎng)絡(luò),重寫全連接層。殘差注意力網(wǎng)絡(luò)如圖8所示。
圖8 殘差注意力網(wǎng)絡(luò)Fig.8 Residual attention network
殘差注意力網(wǎng)絡(luò)描述如下所示:
(1)主干網(wǎng)絡(luò)。對(duì)輸入的訓(xùn)練數(shù)據(jù)集,經(jīng)過(guò)conv、con2_x、conv3_x、conv4_x輸出一個(gè)卷積特征。將卷積特征輸入到conv5_x中,并將conv5_x的下采樣步長(zhǎng)改為1,將conv5_x輸出的卷積特征通過(guò)全局平均池化獲取全局平均特征。
(2)分支網(wǎng)絡(luò)。網(wǎng)絡(luò)將conv卷積層輸出的卷積特征輸入到conv2_x,分別在conv2_x、conv3_x、conv4_x之后創(chuàng)建CBAM特征注意力分支,對(duì)輸出的卷積特征經(jīng)過(guò)CBAM注意力機(jī)制模塊進(jìn)行微調(diào),將調(diào)整過(guò)的特征與每個(gè)分支的輸入特征相加得到新的特征,通過(guò)全局最大池化得到每個(gè)分支最明顯的特征。融合通過(guò)最大池化后得到的所有分支特征,并將特征降維得到1 024維特征。
(3)融合全局平均特征與分支特征得到新的特征通過(guò)BN層進(jìn)行批歸一化處理后輸出到fc全連接層進(jìn)行行人重識(shí)別。
三元組損失(triplet loss)會(huì)計(jì)算batch中的每一張圖片在特征空間的距離,然后選出與樣本距離最遠(yuǎn)(最不像)的正樣本和距離最近(最像)的負(fù)樣本來(lái)計(jì)算三元組損失。其中損失函數(shù)如下所示:
式中,P為類別數(shù)目;K為每個(gè)類別的圖像數(shù)目;φ(x kp)為P類中的第K張圖像的特征;D(·)為兩個(gè)特征向量之間的余弦距離;?為閾值。
三元組損失只考慮了正負(fù)樣本對(duì)之間的相對(duì)距離,四元組損失(Quadruplet_loss)引入正負(fù)樣本之間的絕對(duì)距離。其中損失函數(shù)如下所示:
式中,a、p為正樣本對(duì),m、n為負(fù)樣本對(duì);?為閾值,da,p為正樣本對(duì)之間的歐氏距離;d m,n為負(fù)樣本對(duì)之間的歐式距離。
實(shí)驗(yàn)的系統(tǒng)環(huán)境為L(zhǎng)inux Ubuntu16.04,編程環(huán)境為Python,采用Pytorch深度學(xué)習(xí)框架。數(shù)據(jù)集采用Market1501數(shù)據(jù)庫(kù)和DukeMTMC-reID數(shù)據(jù)庫(kù)。數(shù)據(jù)集屬性信息如表1所示。
表1 數(shù)據(jù)集屬性信息Table 1 Data set attribute information
3.2.1 參數(shù)設(shè)置
參數(shù)設(shè)置如表2所示。
表2 參數(shù)設(shè)置Table 2 Parameter settings
3.2.2 評(píng)價(jià)指標(biāo)
(1)Rank-k
在Rank-k評(píng)價(jià)指標(biāo)中,將查詢圖像和候選圖像依次提取特征后計(jì)算距離,然后根據(jù)距離排序,判斷候選圖像的首位圖有沒(méi)有命中查詢圖像。Rank-1表示第一張圖片的命中率,Rank-5表示1~5張圖片至少有一張命中,Rank-k表示1~k張圖片里面至少有一張命中的概率。
(2)mAP
設(shè)TP為預(yù)測(cè)正確的正樣本數(shù),F(xiàn)P為預(yù)測(cè)錯(cuò)誤的正樣本數(shù)。則準(zhǔn)確率Precision的定義為:
平均準(zhǔn)確率AP為某一類別返回列表所有圖像準(zhǔn)確率之和除以含有該類別目標(biāo)的圖像數(shù)。則平均準(zhǔn)確率AP如下所示:
式中,n c為類別的圖像數(shù);M為返回列表的圖像數(shù);Precisioni為返回列表中第i個(gè)圖像屬于該類別的準(zhǔn)確率。
AP衡量模型在單個(gè)類別上的結(jié)果,mAP衡量模型在所有類別上的結(jié)果。
由于識(shí)別中有不止一個(gè)類別,因此需要對(duì)所有類別計(jì)算平均值mAP:
式中,C為總類別數(shù);APk為第k類的平均準(zhǔn)確率。
3.2.3 實(shí)驗(yàn)方案
為了驗(yàn)證文中行人重識(shí)別算法的有效性,本文在相同實(shí)驗(yàn)環(huán)境和數(shù)據(jù)集下進(jìn)行試驗(yàn)。方案設(shè)計(jì)如下:
方案1對(duì)添加通道注意力機(jī)制模塊(channel)、添加通道與空間注意力機(jī)制模塊(CBAM)行人重識(shí)別網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)對(duì)比,并對(duì)結(jié)果進(jìn)行可視化。
方案2對(duì)分別添加三元組損失(triplet loss)、四元組損失(quadruplet loss)的殘差注意力網(wǎng)絡(luò)進(jìn)行行人重識(shí)別實(shí)驗(yàn)對(duì)比。
方案3對(duì)主干網(wǎng)絡(luò)(Resnet50+(stride=1))、添加CBAM注意力機(jī)制模塊、添加隨機(jī)擦除行人重識(shí)別網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)對(duì)比。
方案4本文算法與PAN[14]、SVDNet[19]行人重識(shí)別算法進(jìn)行比較,并采用Rank-k以及mAP指標(biāo)進(jìn)行衡量。
方案1實(shí)驗(yàn)結(jié)果如表3所示。
表3 方案1實(shí)驗(yàn)結(jié)果Table 3 Scheme 1 experimental results %
從表3可知,在Market-1501數(shù)據(jù)集上添加CBAM模塊網(wǎng)絡(luò)比添加channel模塊網(wǎng)絡(luò)在Rank-1上提升0.41個(gè)百分點(diǎn),mAP提升了0.58個(gè)百分點(diǎn)。在DukeMTMCreID數(shù)據(jù)集上,添加CBAM模塊網(wǎng)絡(luò)比添加channel模塊網(wǎng)絡(luò)在Rank-1上提升了0.31個(gè)百分點(diǎn),mAP提升了0.51個(gè)百分點(diǎn)。通過(guò)表3數(shù)據(jù)分析,驗(yàn)證了添加CBAM模塊的優(yōu)越性。對(duì)表3添加不同注意力模塊可視化結(jié)果如圖9所示。
圖9 可視化結(jié)果圖Fig.9 Visualization result graph
從圖9可以看出,添加了CBAM注意力機(jī)制特征覆蓋到了行人更多部位。
方案2實(shí)驗(yàn)結(jié)果如表4所示。
表4 方案2實(shí)驗(yàn)結(jié)果Table 4 Scheme 2 experimental results %
從表4可知,在Market-1501數(shù)據(jù)集上,triplet loss比quadruplet loss在Rank-1提升了0.84個(gè)百分點(diǎn),mAP提升了1.51個(gè)百分點(diǎn)。在DukeMTMC-reID數(shù)據(jù)集上,triplet loss比quadruplet loss在Rank-1提升了1.52個(gè)百分點(diǎn),mAP提升了1.78個(gè)百分點(diǎn)。在網(wǎng)絡(luò)監(jiān)督訓(xùn)練中使用triplet loss可以取得更好的訓(xùn)練效果。
方案3實(shí)驗(yàn)結(jié)果如表5所示。
表5 方案3實(shí)驗(yàn)結(jié)果Table 5 Scheme 3 experimental results %
從表5可知,在Market-1501數(shù)據(jù)集上,殘差注意力網(wǎng)絡(luò)比主干網(wǎng)絡(luò)在Rank-1上提升了0.65個(gè)百分點(diǎn),mAP提升了1.25個(gè)百分點(diǎn)。添加了隨機(jī)擦除的網(wǎng)絡(luò)比殘差注意力網(wǎng)絡(luò)在Rank-1上提升了2.44個(gè)百分點(diǎn),mAP提升了3.06個(gè)百分點(diǎn)。在DukeMTMC-reID數(shù)據(jù)集上,殘差注意力網(wǎng)絡(luò)比主干網(wǎng)絡(luò)網(wǎng)絡(luò)在Rank-1上提升了0.98個(gè)百分點(diǎn),mAP提升了1.39個(gè)百分點(diǎn)。添加了隨機(jī)擦除的網(wǎng)絡(luò)比殘差注意力網(wǎng)絡(luò)在Rank-1上提升了5.73個(gè)百分點(diǎn),mAP提升了5.78個(gè)百分點(diǎn)。
添加CBAM注意力機(jī)制模塊通過(guò)對(duì)特征信息分配不同的權(quán)值,使網(wǎng)絡(luò)提取到更具判別力的行人特征信息,提升網(wǎng)絡(luò)的識(shí)別能力。添加隨機(jī)擦除通過(guò)遮擋住一部分的行人圖像迫使網(wǎng)絡(luò)在剩余的部分進(jìn)行訓(xùn)練,最終提升網(wǎng)絡(luò)的識(shí)別結(jié)果。
方案4實(shí)驗(yàn)結(jié)果如表6所示。
表6 與其他方法的比較Table 6 Comparison with other methods %
從表6可知,在Market-1501數(shù)據(jù)集上,本文算法比PAN算法在Rank-1上提升了7.39個(gè)百分點(diǎn),mAP提升了16.1個(gè)百分點(diǎn)。本文算法比SVDNet算法在Rank-1上提升了7.90個(gè)百分點(diǎn),mAP提升了16.1個(gè)百分點(diǎn)。在DukeMTMC-reID數(shù)據(jù)集上,本文算法比PAN算法在Rank-1上提升了12.30個(gè)百分點(diǎn),mAP提升了24.72個(gè)百分點(diǎn)。本文算法比SVDNet算法在Rank-1上提升了7.19個(gè)百分點(diǎn),mAP提升了24.72個(gè)百分點(diǎn)。
綜上所述,通過(guò)對(duì)不同行人重識(shí)別算法和本文所提出的行人重識(shí)別算法實(shí)驗(yàn)結(jié)果的比較,證實(shí)了本文算法的優(yōu)越性。PAN算法使用了空間注意力網(wǎng)絡(luò)來(lái)進(jìn)行特征映射,但忽略了通道特征。SVDNet算法對(duì)特征向量進(jìn)行分解增加網(wǎng)絡(luò)層,但忽略了提取的低階特征不夠精細(xì)。本文算法通過(guò)添加注意力機(jī)制模塊并融合隨機(jī)擦除的數(shù)據(jù)增強(qiáng)方法來(lái)提升網(wǎng)絡(luò)的識(shí)別能力。
本文提出了融合隨機(jī)擦除和殘差注意力網(wǎng)絡(luò)的行人重識(shí)別算法,相比于大部分行人重識(shí)別算法來(lái)說(shuō),使用隨機(jī)擦除法解決行人部分圖像被遮擋問(wèn)題,提高了模型的泛化能力。在特征提取時(shí),引入CBAM注意力機(jī)制模塊使模型提取到更具有判別力的行人特征。用triplet loss函數(shù)進(jìn)行訓(xùn)練,提升了網(wǎng)絡(luò)的識(shí)別能力和識(shí)別精度。由于人們實(shí)際生活環(huán)境的復(fù)雜性,在實(shí)際場(chǎng)景中應(yīng)用該算法還是有較大的困難和較高的挑戰(zhàn)。