張玉霞,車進*,賀愉婷
(1.寧夏大學 物理與電子電氣工程學院,寧夏 銀川750021;2.寧夏沙漠信息智能感知重點實驗室,寧夏 銀川750021)
行人再識別[1](Person re-identification,ReID)是指給定一個目標監(jiān)控行人圖像,檢索跨攝像頭、跨時段拍攝的該行人圖像。行人再識別通常被視為一個度量學習問題[2]。由于在安全和監(jiān)控方面有重要的應(yīng)用,因此行人再識別受到學術(shù)界和工業(yè)界的廣泛關(guān)注。隨著深度學習方法的廣泛應(yīng)用,不同算法的ReID性能迅速提高,但由于拍攝的行人圖像會受到背景、光照、人體姿態(tài)變化、遮擋等引起的顯著類內(nèi)差異的影響,并且行人再識別研究[3-6]都假設(shè)同一個人穿著相同的衣服,如文獻[7]中提到的一名女嫌犯為躲避追捕,故意將黑色外套換成白色外套,行人再識別算法很容易將穿著不同、ID相同的行人識別錯誤。因此,行人再識別仍是一項艱巨的任務(wù)。
為進一步減少類內(nèi)變化的影響,文獻[8]尋找最優(yōu)的仿射變換用來更好地區(qū)分不同的身份ID,提出PAN網(wǎng)絡(luò),在不用額外的標注情況下同時進行行人對齊和學習判別性的特征描述。文獻[9]提出一個基于身體部位對齊的雙流網(wǎng)絡(luò)模型,可以將人體姿勢表示為部分特征圖,并將它們直接與外觀整體特征圖結(jié)合以計算對齊的行人部位表示。張良等人[10]提出將局部特征、全局特征和多粒度特征融合,提高行人再識別精度。文獻[11]首次將生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)引入到行人再識別中,利用生成的數(shù)據(jù)擴充數(shù)據(jù)集來輔助訓練,提升行人再識別精度。PTGAN[12]的提出主要是用來彌合不同數(shù)據(jù)集之間的領(lǐng)域差距。文獻[13]提出一種利用姿態(tài)以及外觀特征混合編碼的行人再識別算法,以解決攝像機視角造成的類內(nèi)差異。PNGAN[14]將每個行人圖像生成8個標準姿態(tài)的假圖,最后將生成圖和原數(shù)據(jù)集圖像一起輸入識別網(wǎng)絡(luò),在一定程度上消除姿態(tài)變化的影響。文獻[15]采用一個具有雙分支結(jié)構(gòu)的孿生神經(jīng)網(wǎng)絡(luò),只學習與行人身份相關(guān)的特征。楊海倫等人[16]因行人存在遮擋問題提出基于可變形卷積的CNN模型,并用CycleGAN解決相機風格問題。
以上方法主要是將行人進行對齊或者用GAN生成不同相機風格、不同姿態(tài)數(shù)據(jù)來擴充訓練集,再進行分類識別。不同于以上方法,本文在DGNet網(wǎng)絡(luò)[17]的基礎(chǔ)上提出改進生成對抗網(wǎng)絡(luò)的換衣行人再識別算法,不僅將GAN數(shù)據(jù)生成和行人再識別學習端對端結(jié)合起來,而且不需要任何輔助信息就能夠生成高質(zhì)量圖像,對ReID進行圖像增強。生成模塊中的編碼器將每個行人分解為外觀編碼(衣服+鞋子+手機+包包+身份信息等)與結(jié)構(gòu)編碼(姿態(tài)+頭發(fā)+臉型+背景等)。通過切換外觀編碼和結(jié)構(gòu)編碼,生成模塊能夠生成高質(zhì)量的合成圖像,然后在線反饋給鑒別器進行辨別真假,并用于行人再識別模塊提高行人識別精度。其中,鑒別模塊與行人再識別學習是共享的。通過在鑒別模塊中加入通道間的注意力機制模塊(Normalization-based Attention Module,NAM)[18],突出網(wǎng)絡(luò)顯著特征,更好地辨別圖像真假,提高行人分類識別的精度。用DenseBlock[19]替換DG-Net網(wǎng)絡(luò)中生成器與鑒別器的ResBlock,加強特征傳播,避免梯度消失問題,再一次提高生成圖質(zhì)量與行人再識別精度。通過實驗可知,本文算法在Market-1501、DukeMTMC-reID兩大公開數(shù)據(jù)集上的rank-1/mAP分別達到95.7%/88.6%和87.1%/75.7%,證明本文算法并具有一定的優(yōu)勢。
本文網(wǎng)絡(luò)架構(gòu)如圖1所示。圖像生成模塊與行人再識別模塊端對端結(jié)合起來,外觀編碼器和鑒別器是共用的,這也是行人再識別學習的主干。生成器通過自生成網(wǎng)絡(luò)和互生成網(wǎng)絡(luò)兩種映射合成假圖像,將數(shù)據(jù)集圖像與生成圖像一起輸入到鑒別器中判別真假,并且對其進行分類識別,提高行人再識別的識別精度。鑒別模塊包含主要特征學習、細粒度特征挖掘以及注意力機制NAM。通過不同角度進行學習,網(wǎng)絡(luò)不僅能夠得到行人衣服等外觀的信息,而且學習到外貌等更細致的結(jié)構(gòu)特征,從而更好地鑒別圖像真假,提高識別精度。
圖1 網(wǎng)絡(luò)架構(gòu)Fig.1 Network structure
生成網(wǎng)絡(luò)框架圖如圖2所示。本文數(shù)據(jù)集中的真實圖像與身份標簽用X=和Y=表示,其中N表示圖像的數(shù)量,yi∈[1,K],K表示數(shù)據(jù)集中類別的數(shù)量。給定訓練集中兩幅真實圖像,通過生成模塊交換兩幅圖像的外觀與結(jié)構(gòu)代碼生成幾幅新圖像。生成網(wǎng)絡(luò)包括自生成網(wǎng)絡(luò)和互生成網(wǎng)絡(luò),生成模塊由一個外觀編碼 器Ea:xi→ai、一 個 結(jié) 構(gòu) 編 碼 器:Es:xj→sj、一個生成解碼器G:(ai,sj)→xij以及一個區(qū)分生成圖像與原始圖像的鑒別器D組成。
圖2 生成網(wǎng)絡(luò)框架圖。(a)自生成網(wǎng)絡(luò);(b)互生成網(wǎng)絡(luò)。Fig.2 Generate network frame diagram.(a)Self generation network;(b)Mutual generation network.
2.1.1自生成網(wǎng)絡(luò)
自生成網(wǎng)絡(luò)框架如圖2(a)所示。給定一對行人圖像xi,xj∈X(身份相同),首先生成模塊學習如何重建圖像,自生成網(wǎng)絡(luò)首先提取圖像xi的外觀特征ai以及其結(jié)構(gòu)特征si生成與原始圖像外觀、結(jié)構(gòu)均一致的假圖像,使用像素級損失函數(shù):
自生成網(wǎng)絡(luò)同時會生成同一身份、不同結(jié)構(gòu)的圖像,因此采用圖像xi的結(jié)構(gòu)特征si與xt的外觀特征at生成圖像,同樣使用像素級損失函數(shù):
這種跨圖像(相同身份但不同結(jié)構(gòu))重建用外觀編碼器將相同身份的外觀聯(lián)系一起,減少類內(nèi)變化。對于不同身份的圖像來說,使用身份損失來區(qū)分不同身份。
其中,p(yi|xi)是基于外觀編碼預(yù)測xi屬于實際類別y(iID)的概率。
2.1.2互生成網(wǎng)絡(luò)
互生成網(wǎng)絡(luò)框架如圖2(b)所示?;ド删W(wǎng)絡(luò)的輸入圖像為xi,xj∈X(身份不同,即yi≠y)j,主要是生成不同身份的圖像。該網(wǎng)絡(luò)提取圖像xi的外觀特征ai、結(jié)構(gòu)特征si和xj的外觀特征aj和結(jié)構(gòu)特征sj,通過交叉組合成新圖像和。其中生成圖像與xi外觀一致、xj結(jié)構(gòu)一致;生成圖像與xj外觀一致、xi結(jié)構(gòu)一致。這里,使用外觀和結(jié)構(gòu)編碼控制圖像生成,損失函數(shù)如式(4)和式(5)所示:
與自生成網(wǎng)絡(luò)一致,同樣采用身份損失判斷圖像身份ID是否一致。
其中p(yi)是預(yù)測屬于真實類別yi的概率,并且使用對抗損失使生成數(shù)據(jù)的分布更接近真實數(shù)據(jù)的分布。如式(7)所示:
生成器的結(jié)構(gòu)圖如圖3所示,本文將DGNet網(wǎng)絡(luò)中的生成器模塊內(nèi)ResBlock模塊替換為DenseBlock模 塊。結(jié) 構(gòu) 圖 中 輸 入 圖 像xi、xt、xj,首先經(jīng)過外觀編碼器得到128個64×32的特征圖,經(jīng)過4個DenseBlock模塊之后,輸出依舊為128×64×32,特征圖不變。其次,進行上采樣操作得到128個128×64的特征圖,第一次卷積是5×5,卷積后得到64個128×64的特征圖;同樣進行上采樣操作得到64個256×128的特征圖,進行第二次卷積操作得到32個256×128的特征圖;Conv3、Conv4、Conv5的卷積核分別為3×3、3×3、1×1,最終得到3×256×128大小的生成圖。
圖3 生成器結(jié)構(gòu)圖Fig.3 Generator block diagram
DenseNet是Huang等人[19]提出的 一 種 稠 密卷積網(wǎng)絡(luò),它主要從特征的角度提高網(wǎng)絡(luò)性能,并且隨著網(wǎng)絡(luò)深度的增加,能夠避免梯度消失問題。ResBlock主要含有一個跳躍連接,而Dense-Block中將所有的特征計算單元的結(jié)果以密連接的方式沿著某一維度進行壓縮,不是進行簡單的求和。DenseBlock結(jié)構(gòu)如圖4所示。DenseBlock結(jié)構(gòu)圖中除了輸入端,還包含4個模塊,每個模塊均為4層。以X0作為輸入,通過Hi進行非線性變化,依次進行歸一化、激活函數(shù)以及卷積操作,然后傳遞到后續(xù)網(wǎng)絡(luò)。本文采用即插即用型模塊DenseBlock代替原來的ResBlock模塊,一方面能夠提取更多特征信息,另一方面改善網(wǎng)絡(luò)的特征提取能力,減少過擬合現(xiàn)象的出現(xiàn)。經(jīng)過Dense-Block之后,特征圖大小不變。DenseBlock結(jié)構(gòu)的任何兩層之間都是直接連接的,而每層的特征圖也會直接傳遞給其后的所有層,傳遞方式為:
圖4 DenseBlock結(jié)構(gòu)圖Fig.4 DenseBlock structure diagram
其中,[X0,X1,…Xl-1]表示從第0層到第l層生成的特征圖并且各個特征圖大小一致,可在通道維度上連接。
鑒別網(wǎng)絡(luò)框架圖如圖5所示,通過共享外觀編碼器Ea作為行人再識別學習的主干,將鑒別網(wǎng)絡(luò)(同是識別模塊)嵌入在生成模塊中。生成網(wǎng)絡(luò)通過外觀編碼和結(jié)構(gòu)編碼生成圖像,鑒別網(wǎng)絡(luò)中提出特征學習與細粒度特征挖掘以及新加入的通道間的注意力機制NAM三者進行聯(lián)合學習判斷生成圖像真假,以更好地利用生成圖像。
圖5 鑒別網(wǎng)絡(luò)框架圖Fig.5 Discriminator network frame diagram
(1)主要特征學習。將真實圖像xi、xj與生成圖像xij、xji一起輸入Ea中作為訓練樣本,由于生成圖像的多樣性,采用帶有身份損失的卷積神經(jīng)網(wǎng)絡(luò)(即教師模型)、外觀編碼器學習主要特征,通過損失函數(shù)將預(yù)測概率分布與真實概率分布差異降到最低。
其中,K表示身份類別數(shù)量。
(2)細粒度特征挖掘。當生成的圖像用主要特征學習無法判斷真假時,本文采用細粒度挖掘。當相同身份的人穿著不同的衣服或者不同身份人穿著同樣的衣服時,鑒別模塊采用細粒度特征挖掘,使網(wǎng)絡(luò)被迫學習與衣服無關(guān)而與細粒度ID相關(guān)的特征(如頭發(fā)、體型等),進一步提高鑒別能力與行人再識別分類識別的精度。損失函數(shù)如式(9)所示:
該損失為鑒別模塊增加身份監(jiān)督,不僅學習到細節(jié)紋理特征,而且有利于解決行人外觀(如換衣)發(fā)生變化均導致識別下降的問題。
(3)注意力機制NAM。鑒別網(wǎng)絡(luò)結(jié)構(gòu)圖如圖6所示。輸入原圖像xi、xj與生成器生成的圖像xi
圖6 鑒別網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Discriminator network structure diagram
j、xi
j,首先用1×1的卷積得到32個256×128的特征圖,然后經(jīng)過通道注意力NAM,這里特征圖大小不變。然后在經(jīng)過4次卷積核為3×3的卷積運算,得到64個64×32的特征圖,并經(jīng)過4個DenseBlock模塊。這里后3個DenseBlock模塊前加入通道注意力NAM,不改變通道以及特征圖大小,依舊是64個64×32的特征圖。最后,經(jīng)過1×1的卷積得到一個64×32的特征圖,給出一個0~1之間的數(shù)值判斷圖像真假,同時對圖像進行分類識別。
除了主要特征學習與細粒度特征外,本文在鑒別器的第一次卷積之后與前3個DensesBlock模塊之后加入了2021年提出的新型注意模塊NAM,主要是通過利用訓練模型權(quán)重的方差度量來突出顯著特征。以前的注意力機制模塊大多數(shù)都是通過抑制不重要的權(quán)重來提高神經(jīng)網(wǎng)絡(luò)的性能,NAM作為一種高效、輕量級的注意力機制,在保持相似性能的同時計算效率更高。采用CBAM[20]的模塊集成,并重新設(shè)計了通道和空間注意力模塊,使用標準化BN中的比例因子,如式(11)所示,測量通道的方差并指示其重要性。
式中,μB和σB分別表示小批量B的平均值與標準偏差;γ和β是可訓練的仿射變換參數(shù)。通道注意力模塊如圖7所示。其中,F(xiàn)1表示輸入特征,γ是每個通道的比例因子,權(quán)重由公式Wγ=獲 得,Mc表 示 輸 出 特 征,如 式(12)所示:
圖7 通道注意力機制NAMFig.7 Channel attention mechanism NAM
由2.1節(jié)與2.2節(jié)介紹可得,總體損失函數(shù)為:
本文是基于PyTorch1.1、Python3.6深度學習框架下實現(xiàn)的。網(wǎng)絡(luò)模型中采用SGD優(yōu)化器來優(yōu)化外觀編碼器Ea,使用Adam優(yōu)化器來優(yōu)化結(jié)構(gòu)編碼器Es、生成器G和鑒別器D。本文參數(shù)β1=0,β2=0.999,設(shè) 置 初 始 學 習 率為0.001,共20個epoch,每個epoch迭代訓練10 k次,批尺寸(Batch size)為16。訓練過程中保持所有圖像的長寬比,將大小統(tǒng)一為256×128。
本文在行人再識別算法的公開數(shù)據(jù)集Market1501[21]、DukeMTMC-reID[22]上進行實驗。Market1501數(shù)據(jù)集共有1 501個行人的32 668個檢測行人矩形框,共6個攝像頭,包括訓練集、測試集、查詢集。DukeMTMC-reID共有1 812個行人的36 411個檢測行人矩形框,由8個攝像機采集。因為有408人沒有出現(xiàn)在兩個攝像頭以上,所以只選擇1 404個行人作為訓練集與測試集。該數(shù)據(jù)集包括訓練集、測試集、查詢集。公開數(shù)據(jù)集的詳細信息如表1所示。實驗室擁有一臺具備4塊TITAN V GPU的圖形工作站,具備良好的開發(fā)環(huán)境。本實驗將在Ubuntu 16.04.5 LTS操作系統(tǒng),TITAN V 12G×4顯卡,Pytorch1.1深度學習框架,python3.6的服務(wù)器下實現(xiàn)。
表1 公開數(shù)據(jù)集詳細信息Tab.1 Public datasets details
行人再識別模型用首位命中率(Rank-1)、平均精度均值(mean Average Precision,mAP)和累計匹配曲線(Cumulative Match Characteristic,CMC)3種評價指標衡量模型。這里,Rank-k表示在查詢集中行人特征相似度大小的排序列表中前k位存在檢索目標的準確率。
改進網(wǎng)絡(luò)通過切換姿態(tài)與外觀生成大量的高質(zhì)量圖像。給定輸入圖像xi和xj,網(wǎng)絡(luò)模型提取輸入圖像的外觀特征以及結(jié)構(gòu)特征,既可以生成具有xi的外觀、xj的結(jié)構(gòu)的假圖像xi j,又能生成具有xj的外觀、xi的結(jié)構(gòu)的假圖像xj i。兩個數(shù)據(jù)集生成的圖像如圖8所示。
圖8 交換外觀與結(jié)構(gòu)生成圖像示例Fig.8 Examples of images generated by swapping appearance and structure
假設(shè)每行每列輸入圖像都一致,通過切換外觀或結(jié)構(gòu)代碼在Market-1501、DukeMTMC-reID上生成圖像的示例如圖9所示,可以看出橫軸行人生成外觀不同、結(jié)構(gòu)相同的假圖像;同樣地,縱軸行人生成外觀相同、結(jié)構(gòu)不同的假圖像。在Market1501、DukeMTMC-reID數(shù) 據(jù) 集 上,模 型分別生成共計140 625張、123 201張假圖像。雖然改進生成對抗網(wǎng)絡(luò)方法能夠生成大量的高質(zhì)量圖像,但是由于數(shù)據(jù)集本身存在模糊、分辨率不高的問題,并且圖像的背景影響導致生成的圖像會出現(xiàn)少許效果差的結(jié)果圖像,如圖10所示。
圖9 切換外觀或結(jié)構(gòu)代碼生成圖像的示例Fig.9 Examples of images generated by switching the appearance or structure code
圖10 少許失敗案例Fig.10 A few failure cases
為了進一步證明該網(wǎng)絡(luò)的有效性,使用相應(yīng)的評價標準計算得到了該算法的Rank-1和mAP,并與現(xiàn)有算法在Market1501、DukeMTMC-reID數(shù)據(jù)集上的結(jié)果進行對比分析,如表2所示。
表2 本文算法與現(xiàn)有算法的比較Tab.2 Comparison of the algorithm in this paper with existing algorithms
將本文算法與8種基于GAN的ReID方法和5種有監(jiān)督的ReID方法進行性能比較。針對基于GAN的ReID方法性能比較可知:對于Market1501數(shù)據(jù)集,從表2的實驗結(jié)果可以分析到本文算法在Rank-1和mAP的指標上均優(yōu)于其他算法(除TransReID之外),Rank-1相比于DG-Net、CSL+MGL、PAGAN、AP-GAN、TransReID分別提高了0.8%、0.3%、1.5%、2.2%、0.4%;mAP相比于DG-Net、CSL+MGL、PAGAN、AP-GAN、Trans-ReID分別提高了2.6%、2.5%、3.4%、6.4%、-0.9%。對 于DukeMTMC-reID數(shù) 據(jù)集,本文算法在Rank-1和mAP的指標上僅次于CSL+MGL、TransReID算法。Rank-1相比于DGNet、CSL+MGL、PAGAN、AP-GAN、TransReID
分別提高了0.9%、-0.7%、1.5%、5.2%、-6.9%。針對5種有監(jiān)督的ReID方法性能比較可知:對于Market1501數(shù)據(jù)集,本文算法的Rank-1和mAP均優(yōu) 于 這5種 算 法,Rank-1和mAP分 別 比Euc、FGSAM、HOReID、MOPN、PAFM提高了1.9%、4.1%、1.4%、1.0%、0.5%和8.9%、3.2%、3.5%、3.5%、0.4%;對于DukeMTMC-reID數(shù)據(jù)集,本文算法的Rank-1和mAP高于FGSAM、HOReID算法,Rank-1和mAP分別比FGSAM、HOReID高1.2%、0.2%和1.6%、0.1%。說明本文算法在Market1501上的效果更顯著。同時進一步說明本文算法具有一定的優(yōu)勢。綜上所述,所提算法不僅能夠較好地提高行人識別的精度,還使模型有較強的泛化能力。
本文主要有2點改進:(1)使用新型注意力機制NAM;(2)將原有的DGNet網(wǎng)絡(luò)中的Res-Blocks替換為DenseBlocks,采用像素損失、對抗損失、身份損失等多種損失聯(lián)合優(yōu)化提高生成圖的質(zhì)量。以Market1501為例,對不同改進點進行性能評估,如表3所示。
表3 不同改進點的性能評估Tab.3 Performance evaluation of different improvement points
本文提出改進生成對抗網(wǎng)絡(luò)的換衣行人再識別算法,是一種將生成對抗網(wǎng)絡(luò)(GAN)數(shù)據(jù)生成和行人再識別學習端對端結(jié)合起來的聯(lián)合框架,通過切換外觀與結(jié)構(gòu)編碼,生成模塊中的自生成網(wǎng)絡(luò)與互生成網(wǎng)絡(luò)生成大量圖像,鑒別模塊與生成模塊之間在線循環(huán),將生成的圖像在線反饋給鑒別器,鑒別器通過主要特征學習、細粒度特征挖掘與注意力機制NAM三者聯(lián)合學習,進一步提高鑒別器鑒別能力與行人再識別分類識別的準確率。生成器與鑒別器中的殘差塊ResBlock替換為DenseBlock,加強特征傳播并且大幅度減少參數(shù)數(shù)量。本文算法不僅解決了行人再識別數(shù)據(jù)集不足的問題,而且提高了跨攝像頭下由于行人外觀(如衣服)改變的識別率,在圖像生成質(zhì)量和行人再識別分類識別精度方面都有顯著的改進,在Market1501和DukeMTMC-reID數(shù) 據(jù)集上Rank-1和mAP分別達到了95.7%/88.6%和87.1%/75.7%。