徐智明,戚 湧
(南京理工大學計算機科學與工程學院,南京 210094)
行人重識別是智能交通、計算機視覺等領(lǐng)域的研究熱點,其目標是在不同拍攝環(huán)境下通過對行人身份進行精確匹配,判斷不同角度、不同時刻所拍攝的行人圖像與給定行人是否為同一目標,從而有效節(jié)省檢索特定行人所需的時間。
現(xiàn)有行人重識別主要包括基于度量學習、基于深度特征學習的方法?;诙攘繉W習的方法首先使用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)從圖像中提取特征圖,通過優(yōu)化特征圖之間的特征距離來增強行人之間的判別性,通常使用余弦距離、歐式距離[1]或馬氏距離[2]計算特征圖的相似度,使用Triplet Loss[3]、Focal Loss[4]、Circle Loss[5]等損失函數(shù)優(yōu)化特征圖之間的特征距離,使得特征圖之間實現(xiàn)類類聚合且類間分離。
隨著深度學習的快速發(fā)展,許多研究人員開始將深度學習方法應用于行人重識別任務中?;谏疃忍卣鲗W習的行人重識別主要分為基于局部特征學習、基于注意力機制學習、基于生成對抗網(wǎng)絡(Generative Adversarial Network,GAN)學習這三類。
早期的研究工作主要關(guān)注全局特征,由于通過全局特征無法針對性地學習到行人的細粒度特征,因此學者們開始聚焦于局部特征。PCB[6]將行人特征按照水平方向均勻切分,然后在每一個切分的特征圖上進行表征學習,并設(shè)計RPP 模塊,計算各個像素的特征向量和局部平均特征向量之間的相似度,從而調(diào)整各個像素的區(qū)域歸屬。MGN[7]提出一種多分支網(wǎng)絡架構(gòu),該架構(gòu)由一個用于全局特征表示的分支和兩個用于局部特征表示的分支組成,通過分割區(qū)域與構(gòu)造分支結(jié)構(gòu)的方法獲得全局特征和更加細粒度的局部特征,然后對各個分支進行特征提取,將區(qū)分度較好的多粒度細節(jié)信息與行人整體信息進行融合,但是,由于構(gòu)造的分支數(shù)目較多,導致MGN訓練出的模型參數(shù)量龐大。
基于局部特征學習的方法有效地推進了行人重識別的發(fā)展,增強了對圖片中人體不完整部分和遮擋部分的特征魯棒性,并進一步通過引入注意力機制加強了對這些特征的學習。STA(Spatial-Temporal Attention)[8]網(wǎng)絡中加入時空注意力機制,將特征圖按照長度劃分為4 個局部區(qū)域,分別提取每個部分中注意力分值最高的分區(qū)得到判別性信息。ABDNet[9]網(wǎng)絡中加入復合注意力機制,提出將通道注意力和局部注意力相結(jié)合的行人重識別方法,其中,通道注意力機制促進了信道級、特征級的信息聚合,局部注意力捕獲了身體和部分位置的有效信息,從而高效地進行深層次的特征學習。還有一些行人重識別方法,如DG-Net[10]基 于GAN 生成訓練數(shù)據(jù)以提升數(shù)據(jù)量,通過生成大量數(shù)據(jù)提高模型精度,但是,由于行人重識別數(shù)據(jù)集中圖像像素較低,導致生成的圖像過于模糊,對模型精度提升并不明顯。
現(xiàn)有的行人重識別研究大多學習人體在二維平面上的特征表示,往往忽略了人體自身的拓撲約束以及人體外形信息,這導致現(xiàn)有方法對特征學習比較局限。在現(xiàn)實中,人體以一種對稱的三維形式存在,三維人體結(jié)構(gòu)相較二維平面像素含有更多的體型、取向、外觀等特征,本文認為學習有效且可擴展的行人特征的關(guān)鍵是要考慮人體特征在三維空間中的特征表現(xiàn)。例如,事先給孩子看過一張熊貓的圖片,孩子在動物園中就可以立刻判別出哪種動物是熊貓,原因在于,當孩子看到一張熊貓圖片時,已經(jīng)在腦海中通過先驗知識重構(gòu)了熊貓的三維剛體模型,在動物園中看到熊貓就能立刻判別出是否為同一對象。因此,讓計算機學習人體特征在三維空間中的特征表示,是當前行人重識別研究中的一項重要任務。
基于網(wǎng)格重構(gòu)的三維人體建模方法[11-14]在近些年發(fā)展迅速,HMR[15]網(wǎng)絡實現(xiàn)了端到端恢復人體三維mesh 的模型,通過輸入含有人體的RGB 圖片建立人體三維模型,對于三維模型的生成,主要借助SMPL 方法,將shape 和三維關(guān)節(jié)點(joints)的角度(angles)作為輸入,建立三維人體模型。DecoMR[16]提出一種三維人體網(wǎng)格估計框架,建立三維人體模型單元網(wǎng)格與圖像特征在UV 空間中的映射關(guān)系。OG-NET[17]網(wǎng)絡中最早使用3D 點云數(shù)據(jù)開展行人重識別研究,在三維空間中通過生成的點云數(shù)據(jù)來實現(xiàn)人體匹配,利用三維空間的人體結(jié)構(gòu)化信息和二維平面的外觀RGB 信息來學習行人特征表示,具體地,OG-NET 首先估計三維人體模型的姿態(tài)信息,然后與二維平面中的RGB 信息進行匹配,將原始圖像數(shù)據(jù)集轉(zhuǎn)換為點云數(shù)據(jù)后進一步設(shè)計網(wǎng)絡來學習點云特征。但是,OG-NET 使用3D 點云數(shù)據(jù)作為輸入,3D 點云數(shù)據(jù)包含人體姿態(tài)、背景等信息,雖能大幅提高精度,但是無法提升行人重識別算法的魯棒性。
深度學習技術(shù)的快速發(fā)展使得行人重識別的精度得到顯著提升,但其仍面臨由身體錯位、遮擋、背景擾動、姿勢不同所帶來的眾多挑戰(zhàn),且算法在不同數(shù)據(jù)集上表現(xiàn)出延伸性差、魯棒性低等問題。本文提出一種基于UV 貼圖優(yōu)化人體特征的行人重識別方法。借助三維重構(gòu)技術(shù)與人體幾何信息先驗知識,從含有人體圖像的RGB 圖片中恢復人體三維模型,以研究行人特征在三維空間中的表示為目標,建立二維圖像與三維人體模型的映射關(guān)系。從特征優(yōu)化角度出發(fā),通過研究人體不變的特征,從數(shù)據(jù)中提取人體的外觀、體型、視角等參數(shù),重構(gòu)出固定姿態(tài)(T-pose[18])的三維人體模型,并將三維人體模型展開到二維UV 空間中對行人特征進行優(yōu)化,使得計算機可以學習到更多在二維圖像中看不到的行人特征,從而提高行人重識別模型在不同數(shù)據(jù)集上的性能表現(xiàn)。
本文基于UV 貼圖優(yōu)化人體特征的行人重識別方法分為特征優(yōu)化和行人重識別這2 個過程。
特征優(yōu)化過程分為2 個階段,具體如下:
1)第一階段,如圖1 所示,首先對二維圖像I∈R3×W×H進行特征提取,提取出形狀β∈R10、姿 態(tài)θ∈R72、視角P∈R3的特征向量;然后通過姿態(tài)θ、形狀β、視角P以及二維圖像中的行人RGB 像素特征重構(gòu)SMPL 三維人體模型M∈R6890×6,三維人體模型M由6 890 個網(wǎng)格頂點G∈R6890×3與RGB 像素點C∈R6890×3組成,表示相對于對應的三維人體模版上端點的偏移量與色彩像素值大小。在重構(gòu)三維人體模型時,首先通過對SMPL 模型進行調(diào)整生成三維人體網(wǎng)格(mesh)圖,然后利用視角P將二維圖像中的RGB 信息映射到三維人體網(wǎng)格圖中,生成三維人體模型。
圖1 UV 貼圖生成過程Fig.1 UV map generation process
本文主要研究人體不變特征,由于二維圖像中各個行人的姿態(tài)不同,因此通過式(1)將三維人體模型轉(zhuǎn)化為統(tǒng)一姿態(tài)的人體模型T-pose:
其中:gi是網(wǎng)格頂點G中的一個元素;bs,i(β)、bp,i(θ)分別為形狀參數(shù)β的線性矩陣、姿態(tài)參數(shù)θ的線性矩陣中的元素;Tk為第k個關(guān)節(jié)點的轉(zhuǎn)換矩陣。
2)第二階段,將重構(gòu)后的三維人體模型轉(zhuǎn)化到UV 空間中進行優(yōu)化,建立三維人體模型與UV 空間的映射關(guān)系,生成相對應的UV 貼圖A,映射關(guān)系如下:
其中:是三維人體模型每個頂點的坐標;X是位置貼圖;vi、ui為UV 坐標。
由于行人重識別數(shù)據(jù)集中人體特征受到不同光照與拍攝角度的影響,因此難以學習到有效的特征表達,本文通過UV 貼圖來優(yōu)化行人特征在三維空間中的特征表現(xiàn)。特征優(yōu)化網(wǎng)絡結(jié)構(gòu)如圖2 所示,在每個卷積層中:Conv(i,o,m×m,s)、BN、ReLU 表示輸入圖像的通道數(shù)是i,卷積后產(chǎn)生的通道數(shù)為o,卷積核大小是m×m,步長是s,卷積層后添加一個批歸一化層BN 和一個激活層(激活函數(shù)采用ReLU)。特征優(yōu)化過程為:對UV 貼圖A進行特征提取,經(jīng)過上采樣與下采樣后得到深度圖d∈R64×64×1與色彩特征圖a∈R64×64×3,通過深度圖d與 色彩特征圖a重構(gòu)出,其中,=(a/μ+σ)×d×μ-1,μ、σ是實驗中設(shè)置的權(quán)重。將進行水平翻轉(zhuǎn)得到,使用L1損 失函數(shù)計算A與、A 與之間的誤差,令A ≈?A ≈。損失函數(shù)如下:
圖2 特征優(yōu)化網(wǎng)絡框架Fig.2 Feature optimization network framework
其中:λ是實驗中損失函數(shù)的權(quán)重。
本節(jié)介紹行人重識別過程中使用的網(wǎng)絡結(jié)構(gòu)以及損失函數(shù)。本文通過建立行人在三維空間的特征表示,學習二維圖像與三維人體的互補關(guān)系,在實驗中加入了人體形狀參數(shù)β進行特征學習,并使用三元組損失函數(shù)以及動量的交叉熵損失函數(shù)來增強行人特征之間的判別性,同時區(qū)分行人身份標簽信息。
行人重識別模型結(jié)構(gòu)如圖3 所示,采用在ImageNet[19]數(shù)據(jù)集上進行預訓練 的ResNest 網(wǎng)絡作為特征提取模塊,ResNest網(wǎng)絡中加入split-Attention機制,將特征圖按照通道(channel)維度分為數(shù)個Split-Attention 子塊,使用注意力機制對劃分的子模塊進行特征聚焦,獲得需要關(guān)注的行人特征信息,抑制其他無用特征,相較ResNet[20]網(wǎng)絡,能更精確地提取到更多有用的特征。具體地,本文行人重識別網(wǎng)絡基于改進的ResNest-50,在原始ResNest 網(wǎng)絡的基礎(chǔ)上將其4 層卷積輸出的特征矩陣分別添加池化層(最大值池化層、全局平均池化層)與全連接層以進行特征降維,然后融合得到特征圖,最后建立損失函數(shù)訓練該網(wǎng)絡。
圖3 行人重識別模型結(jié)構(gòu)Fig.3 Person re-identification model structure
首先使用三元組損失法對特征圖進行細節(jié)區(qū)分,當2 個特征圖很相似時,使用三元組損失法對這2 個差異性較小的輸入向量進行優(yōu)化,從而學習到更優(yōu)的特征表示。設(shè)樣本為x,f()為正樣本映射函數(shù),f()為負樣本映射函數(shù),將正樣本和負樣本分開,即實現(xiàn)類類聚合、類間分離。三元組損失表示為:
使用加入label smooth 的交叉熵損失函數(shù)來增強行人之間的判別性,計算行人圖片信息之間的身份標簽損失,將其記為Lid,交叉熵損失函數(shù)如下:
其中:hθ(x(i))是對圖片信息的標簽進行Softmax 操作;y(i)為對應的行人身份標簽信息。
如圖2 所示,由ResNest layer1 提取后的特征圖經(jīng)過池化層(Mix Pool)、全連接層、一個ReLU 激活層后,得到預測人體的形狀參數(shù)β。在本文實驗中觀察到,由于人體形狀參數(shù)β中的每一個參數(shù)對人體作用部位不同,因此每個參數(shù)對應的權(quán)重對網(wǎng)絡的影響不同,通過馬氏距離來構(gòu)建人體形狀損失函數(shù)能進一步增強行人重識別網(wǎng)絡的判別性,該損失函數(shù)如下:
其中:βi為提取的人體形狀參數(shù)樣本信息;si為對應的人體形狀參數(shù)標簽信息。
行人重識別網(wǎng)絡整體損失函數(shù)表示為:
其中:γ、η為損失函數(shù)的權(quán)重。
本次實驗設(shè)置具體如下:
1)數(shù)據(jù)集。在Market-1501[21]、DukeMTMC-reID[22]、MSMT17[23]等行人重識別數(shù)據(jù)集上進行大量實驗,以驗證所提方法的有效性。
2)數(shù)據(jù)預處理:
(1)由于圖像底庫中圖片的分辨率大小不同,因此將圖片調(diào)整為統(tǒng)一大小的圖像。
(2)在深度學習模型的訓練過程中,數(shù)據(jù)量的大小將嚴重影響模型的準確率,因此,通過Rand Augment數(shù)據(jù)增廣方法生成大量的訓練數(shù)據(jù),對輸入圖像進行隨機裁剪、水平翻轉(zhuǎn)、應用仿射變換、平移、旋轉(zhuǎn)、剪切等變換方式來擴充訓練數(shù)據(jù),從而在訓練過程中減小參數(shù)空間,同時保持圖像數(shù)據(jù)的多樣性,有助于防止數(shù)據(jù)過擬合現(xiàn)象的發(fā)生。
3)評價指標。本文使用平均正確率均值(mAP)和匹配率(rank-i)這2 個指標來衡量行人重識別方法的性能。
4)實驗環(huán)境。使用Pytorch1.6 深度學習框架進行代碼編寫,在配置64 GB 內(nèi)存、Hygon C86 7185 32-core 處理器和NVIDIA Tesla V100 GPU 的服務器上進行實驗。
5)訓練策略。本文使用apex 混合精度方法加速神經(jīng)網(wǎng)絡訓練,該網(wǎng)絡每個批次輸入圖像為256 張,輸入圖像大小為384×128 像素。采用SGD 損失函數(shù)優(yōu)化器優(yōu)化整個行人重識別網(wǎng)絡,其中,動量、衰減率和初始學習率分別設(shè)置為0.5、0.000 5 和0.000 35。設(shè)計相應的訓練策略加速神經(jīng)網(wǎng)絡收斂,從而提高模型精度,具體為:
(1)由于數(shù)據(jù)集各類別的圖像數(shù)據(jù)量差別較大,因此本文使用均衡采樣器(Balance Sampler)均勻采樣不同類別中的圖片,使得每一個批次中各類別圖像數(shù)目相等,從而提高模型參數(shù)在訓練過程中的穩(wěn)定性。
(2)結(jié)合預熱學習率與余弦退火動態(tài)調(diào)整學習率,通過先預熱模型,即以一個較小學習率開始逐步上升到特定的學習率,使模型收斂效果更佳,且當損失函數(shù)接近全局最小值時學習率可以隨著余弦函數(shù)動態(tài)減小。
(3)通過凍結(jié)骨干網(wǎng)絡(Backbone Freeze)的訓練,如凍結(jié)5 個批次的訓練,將更多的資源放在訓練后續(xù)部分的網(wǎng)絡參數(shù),使得時間和資源利用都能得到很大改善。待后續(xù)網(wǎng)絡參數(shù)訓練一段時間后再解凍這些被凍結(jié)的部分,然后所有批次一起進行訓練。
6)測試過程。給定一張查詢圖像,提取經(jīng)過批歸一化模塊后的特征圖,使用余弦距離計算查詢圖像與查詢底庫圖像間的特征距離,使用重排序(reranking)對查詢結(jié)果作進一步優(yōu)化,輸出為從高到低排在前十位的查詢結(jié)果。
行人重識別的目標是在不同攝像頭下精確捕捉同一個目標,精準學習圖片中行人的特征表示。目前,多數(shù)行人重識別方法中加入背景條件,讓模型學習到較多的非有效特征,雖然能夠提高模型精度,但是在一定程度上對行人重識別結(jié)果造成一種誤判,這也是行人重識別方法魯棒性不高的原因。
本文首先比較二維整體特征、二維人體部分特征、三維人體部分特征、三維人體部分特征加上背景特征的輸出結(jié)果。由人體與背景構(gòu)成不同組合的輸入數(shù)據(jù),將其輸入到模型中,對4 種數(shù)據(jù)進行相同配置的實驗,得到結(jié)果如表1~表3 所示,從中可以看出,三維人體部分特征輸入的檢索結(jié)果不如二維整體特征,原因是:一方面人體特征從二維映射到三維時存在誤差,如圖2 所示,頭發(fā)、衣服、背包等重要的判別信息并未完全重構(gòu);另一方面是由于三維人體部分輸入沒有加入背景信息,三維人體部分與二維人體部分特征(mAP 為6.75%)結(jié)果相比,mAP 達到62.21%,這表明三維位置信息與二維顏色信息互補,三維空間可以降低匹配難度,突出幾何結(jié)構(gòu)。
表1 Market-1501 數(shù)據(jù)集下的模型性能對比結(jié)果Table 1 Comparison results of models performance under Market-1501 dataset %
表2 DukeMTMC 數(shù)據(jù)集下的模型性能對比結(jié)果Table 2 Comparison results of models performance under DukeMTMC dataset %
表3 MSMT17 數(shù)據(jù)集下的模型性能對比結(jié)果Table 3 Comparison results of models performance under MSMT17 dataset %
本文通過將給定行人重識別數(shù)據(jù)集中的每一張圖像轉(zhuǎn)化為UV 貼圖,對查詢圖像進行特征提取,計算其與查詢底庫中圖像的特征距離以得到查詢結(jié)果。圖4 所示為查詢圖像、相應的UV貼圖轉(zhuǎn)化結(jié)果和檢索到的前5 名候選人查詢結(jié)果,其中,虛線框內(nèi)表示錯誤的檢索結(jié)果,其余為正確的檢索結(jié)果。
圖4 檢索結(jié)果可視化Fig.4 Visualization of search results
將本文方法與先進的行人重識別方法進行比較,對比方法包括基于點云特征的學習方法(DGCNN、PointNet++、OG-Net)、基于二維圖像的行人重識別方法(MGN、ABD-NET、M3-reid、VA-NET)。從表4 可以看出:1)相比點云特征學習方法,如DGCNN、PointNet++、OG-Net,本文方法的識別性能大幅提升,從而驗證了該方法的正確性;2)在不添加背景條件的情況下,在3 個不同數(shù)據(jù)集上本文方法的表現(xiàn)與現(xiàn)有基于深度特征學習的方法[7-10]相近,并且可以結(jié)合現(xiàn)有行人重識別方法來對訓練精度作進一步提升。實驗結(jié)果表明,本文方法對行人重識別效果具有較好的提升作用,為行人重識別研究提供了一種新思路,其可以有效優(yōu)化訓練數(shù)據(jù)并提高模型的魯棒性。在Market-1501 數(shù)據(jù)集下進行消融實驗,結(jié)果如表5 所示,該結(jié)果驗證了本文方法的有效性。
表4 各方法在3 種數(shù)據(jù)集上的性能對比結(jié)果Table 4 Performance comparison results of each method on three datasets %
表5 Market-1501 數(shù)據(jù)集下的消融實驗結(jié)果Table 5 Ablation experimental results under Market-1501 dataset %
本文將行人重識別研究從二維平面拓展到三維空間,提出一種基于UV 貼圖優(yōu)化人體特征的行人重識別方法。利用人體是一種三維對稱的剛體結(jié)構(gòu)這一先驗事實,將圖片中的部分行人特征從二維平面重構(gòu)到三維空間中,從而有效擴展特征維度并提高行人特征的可優(yōu)化性。將重構(gòu)后的三維人體模型轉(zhuǎn)化為UV 貼圖,即將人體特征從三維空間映射到二維平面,從而大幅降低模型參數(shù)量,同時設(shè)計損失函數(shù)使得模型自主優(yōu)化UV 貼圖。為了更好地學習UV 貼圖中的特征表示,設(shè)計相對應的損失函數(shù)與相關(guān)的訓練策略以提高訓練精度。行人重識別數(shù)據(jù)集上的實驗結(jié)果表明,相較OGNset 模型,在添加背景的條件下,本文方法在Market-1501 數(shù)據(jù)集中的行人重識別rank-1 檢測準確率提高13.82%,mAP 準確率提高22.56%;在不添加背景的條件下,行人重識別rank-1 檢測準確率提高5.26%,mAP準確率提高13.66%。
本文方法的行人重識別性能得到一定提升,但是仍然存在以下不足:1)使用固定的三維人體模板對人體信息進行三維重構(gòu),頭發(fā)、衣服、背包等具有重要判別信息的行人特征未得到具體顯現(xiàn);2)在行人特征優(yōu)化方面,優(yōu)化粒度欠佳。下一步將在三維空間中優(yōu)化人體細粒度特征,增強行人特征之間的判別性,進而提高行人重識別網(wǎng)絡的精度與魯棒性。