?

基于Transformer的行人重識別網絡

2023-10-22 08:00莫建文莫倫麟
桂林電子科技大學學報 2023年3期
關鍵詞:分塊全局行人

莫建文,莫倫麟

(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)

行人重識別(person re-identification,簡稱ReID)是一種利用計算機視覺來判斷圖像或者視頻序列中是否存在特定行人的技術。它根據待檢索的行人圖像,在目標圖片庫中找到不同攝像頭下的同一行人。早在2017年,Transformer[1]開始在NLP自然語言處理領域出圈,且在后續GPT[2]、BERT[3]中被繼續發揚光大。鑒于此,谷歌的ViT[4]也成功將Transformer引入了CV圖像領域,用于建模圖像塊path之間的關聯性,證明了Transformer在圖像領域也具備強大的表征能力。TransReID[5]作為第一個應用ViTs架構到行人重識別領域的方法,其在車輛重識別和行人重識別中都取得了較好的性能。AAformer[6]則應用ViT[4]主干網絡以及額外的部件tokens向量來表征和匯聚行人的部件信息。LATransformer[7]則是將PCB 的主干ResNet-50替換成Transformer,并將全局token向量融入各人體部件中。但這些方法都是直接將ViT[4]引入ReID中,將行人進行補丁式分塊建模。

為了解決由于CNN 感受野重疊帶來的分塊數量限制問題,即當分塊達到一定數量時,CNN 的感受野之間存在重疊現象(如圖1所示)。當CNN 中分塊數達到一定數量時,塊與塊之間就會重復,塊數越多,重復就越多,經ReLU 激活后,很多重復區域會被置零,從而實際視野會產生很多暗幕。當無對齊算法的輔助時,分塊數就會成為限制模型性能的主要因素之一。鑒于此,將CNN 與Transformer相結合,提出一種基于Transformer 的行人重識別網絡(CNN with INOUT_transformer,簡稱CIT)。利用Transformer內部的多頭注意力機制和全局建模能力,對多分塊條件下CNN 感受野重疊區域自動分配低權重,并把塊與塊之間的關鍵信息分別匯聚到全局token向量中,進而更高效地利用有效信息。在Market-1501和DukeMTMC-reID 的實驗結果表明,本方法能夠提高切片數量,并能進一步提高模型性能。

圖1 感受野重疊展示

1 相關研究

深度學習行人重識別相關方法主要分為姿態關鍵點[8-9]、分割[10]、網格[11]、跨域[12]、水平切片[13-16]等。除此之外,無監督行人重識別方法[17-18]也開始涌現。對于姿態關鍵點,它是利用人體姿態估計得到的關鍵點信息來對行人進行部件分塊,從而得到更有針對性的特征。類似地,分割和網格方法則是利用分割和網格信息來得到更有效的特征。在水平切片方法中,PCB[14]利用水平切片分塊思想,將行人水平分成6塊,并對每塊特征利用softmax和交叉熵損失單獨進行分類,最終也取得了不錯的性能。而AlignedReID++[13]也是一種切片方法,其利用動態局部對齊算法DMLI來解決分塊對齊問題,從而將分塊切片數量提高到了8塊。直到ViT[4]出現后,Transformer才開始應用到圖像領域。TransReID[5]、AAformer[6]、LA-Transformer[7]參 考ViT 基 于Transformer提出了各自的行人重識別網絡,并取得了不錯的性能。

2 CIT方法

CIT總的網絡設計框圖如圖2所示??偟膩碚f,CIT中的卷積神經網絡CNN 用于抽取圖像特征F。對F進行分塊后,利用TransformerIN 建模分塊內部像素token向量之間的關聯性,并將每塊中的有用信息融合到全局token向量中。Transformer-OUT則用來對TransformerIN 融合的各個分塊全局token向量做進一步建模,最終將各分塊全局token向量的信息融合到一個分類token向量中,然后通過對最終的分類token向量c進行softmax和交叉熵損失來對行人進行分類。

圖2 CIT網絡設計框架圖

2.1 Transformer 簡介

Transformer[1]主要由以下4個部分組成:

2)Multi-head Self-Attention:如果只利用上述的一組Wq、Wk、Wv矩陣得到的注意力輸出,難免過于單一,難以適應實際復雜的應用環境。不同的環境下,不同的任務中,模型需要能注意到不同部分之間的關聯性。所以,需要設置多組(多頭)可學習的Wq、Wk、Wv矩陣來應對復雜情況下的表征,多頭自注意力機制可表示為

其中,Zout為多頭自注意力的輸出矩陣,維度與輸入矩陣相同,

總的來說,就是對上述m組Wq、Wk、Wv分別進行式(2)的Attention操作,得到m組輸出,對m組的輸出矩陣進行Concat拼接,然后通過乘上一個WZ矩陣來降維匹配輸入矩陣的維度,從而得到與輸入矩陣Tin同維度的編碼輸出矩陣Zout。

3)MLP 和Residual Connection 以及Layer-Norm:類似于為了解決CNN 中網絡過深帶來的梯度消失問題而引入殘差連接(residual connection,簡稱RC)一樣,在每個Transformer模塊都引入殘差跳躍連接。此外,還包括簡單的多層感知機(multi layer perceptron,簡稱MLP)以及層歸一化Layer-Norm,如圖3所示。

圖3 Transformer結構

4)Position Encoding: 一維位置編碼主要用來編碼各個輸入token的位置信息,可通過網絡自主學習得到,或者直接通過正余弦函數的組合來指定絕對位置信息。

2.2 CNN均等分塊切片

PCB[1]利用分塊均值池化(global average pooling,簡稱GAP)來對F進行切片,當分塊數達到一定數量時,這種做法會因為CNN 的感受野重疊和激活函數的雙重影響在原圖上產生暗幕(如圖1所示),從而影響模型的性能。這也是為什么切片分塊方法有分塊數量限制的原因。首先,輸入圖像X,經過卷積神經網絡CNN得到特征圖F(F∈RH×W×C)。然后,對F進行平均等切片分塊,但不池化。將F分成n塊,即

2.3 TransformerIN與TransformerOUT

TransformerIN 和TransformerOUT 都是標準的Transformer結構,但兩者各自所在的位置不同,擔任的任務也不同。TransformerIN用于建模Pi內的像素級token向量信息,而TransformerOUT 則用于建模各個Pi得到的全局token向量之間的關聯性,并做進一步的信息融合。在將Pi送入TransformerIN模塊建模之前,需對Pi作進一步拆分,對拆分后的像素級token向量添加一個全局token向量gi和網絡可自動學習的位置編碼e??偟倪^程可表示為

其中:pk∈R1×1×C為Pi的像素級token向量;Tin1∈為TransformerIN的輸入;ej∈R1×1×C為可學習的位置編碼向量;gi∈R1×1×C為第i個分塊Pi的全局token向量。

同理,對所有分塊Pi,i=1,2,…,n,利用式(7)得到TransformerOUT的輸入g,將g輸入TransformerOUT前,加入全局分類token向量c,然后再進行位置編碼,表達式為

2.4 損失函數

通過式(8)得到全局分類token向量c后,利用兩層全連接(fully connected,簡稱FC)和softmax激活函數將分類token向量c映射并歸一化到預測向量,維度和訓練集中的行人類別數保持一致。這里參考PCB網絡,采取簡單的交叉熵損失函數,與其不同的是,只對融合后的分類token向量c做一路損失,而不是對每個分塊部件向量都做一路損失。因此,本損失函數更加簡單高效,其表達式為

其中:qi為真實標簽值;softmax(FC(c))i為網絡的預測值。

3 實驗與結果分析

實驗基于Intel? CoreTMi9-10900X CPU @3.70 GHz處理器,64 GiB 內存和英偉達的RTX-2080Ti顯卡,采用基于Python的PyTorch深度學習框架來對網絡進行實現。

3.1 數據集

采用行人重識別領域中較常用的2個數據集Market1501和DukeMTMC-ReID 作為主要的實驗數據集。Market1501包含32 217張圖片和1 501個行人標簽以及6個攝像頭視角,其中751個行人身份用于訓練集,750個行人身份用于測試集。DukeMTMC-reID共收集了36 441張行人圖片,包含由8個攝像頭采集的1 812個行人身份,其中702個行人身份作為訓練集,1 110個行人身份作為測試集。數據集的具體參數如表1所示。訓練和測試時輸入圖像都裁剪為192像素×384像素。

表1 數據集參數

3.2 實現細節

CIT模型實驗中使用的CNN 主干網絡為Res-Net-50,并將其中的conv5_x的步幅2改為1。對ResNet-50的輸出進行0.5的dropout后,進行一次1×1的卷積,將通道數從2 048降為512,隨后進行PReLU 激活函數[20]處理。然后通過Tensor的重編排操作將Tensor的寬高維度合并,最后通過算法1基于Transformer的核心代碼進行處理。

在訓練過程中,對輸入圖像進行水平翻轉和歸一化,并將batch size設置為64。模型學習率初始化為0.001,并使用不同的激活函數進行消融實驗??偟挠柧歟poch數為60。

算法1

3.3 結果及分析

實驗主要采用的評價指標為rank-1和mAP[19]。對于rank-k,即算法返回的排序列表中,若前k位存在檢索目標,則稱rank-k命中,rank-k指的是搜索結果中最靠前的k張圖片是正確結果的概率。mAP指的是前k位每個目標的AP值的平均,而AP值指的是返回的排序列表中含有目標的每個位置前包括當前位置目標的頻率。mAP能夠衡量模型在所有目標行人上的好壞。

3.3.1 激活函數的作用

在Market-1501數據集上,保持其他超參數不變,對PCB中的分塊數設為12,將激活函數進行替換,每種激活函數訓練5次并訓練60個epoch取mAP平均值,得到結果如表2所示。

表2 激活函數的影響

由表2可看出,對于分成12塊的PCB,由PCB的原文知道此時的感受野是存在重疊區的,ReLU 激活函數會將負值強制置零,相比之下更易產生暗幕,信息丟失得更多。而其他激活函數則在負值時仍有激活值保存下來,雖說可能在重疊區會保存一些重復信息,但CIT 因為內部Transformer擅長把握全局信息和信息融合的特性,仍能達到PCB 及PCB+RPP分成6塊時的表現效果。

3.3.2 分塊數的影響

由于圖像在輸入前都裁剪為192像素×384像素,圖像經過CNN后得到的特征圖大小為24×12×C,于是分塊數n的可能取值只能為1、2、4、6、8、12、24。但對于Transformer,若分塊數過小,則會導致輸入CIT中第一個TransformerIN 的像素級token向量過多,從而加大相應的計算量。因此,對于CIT,分塊數由4開始。對每種分塊數進行實驗,分別得到如圖4、5所示的rank-1和mAP曲線。

圖4 分塊數量對rank-1的影響

圖5 分塊數量對mAP的影響

從圖4、5可看出,當分塊數小于等于6塊時,由于分塊特征感受野之間并無過多的重復區域,PCB和PCB+RPP的性能都隨分塊數的增多而提升。當分塊數大于6時,特征感受野之間的重疊現象加重,導致CNN從中提取有用信息更加困難,模型表現開始隨著分塊數量的增多而下降。但對于CIT而言,內部的2個Transformer結構中的一個在分塊內進行全局建模,在有效去除冗余信息的同時,將塊內主要信息融合到全局token向量中,而另一個則將各個塊的全局token向量的信息進一步融合到分類token向量當中。因此,CIT性能夠隨著分塊數量的增多而提升。

3.3.3 特征圖大小的影響

將輸入圖像重塑成192像素×576像素后,再輸入網絡中,此時得到的特征圖變為36×12×C,比之前的24×12×C大了144個像素級token向量。因此,CIT可對其進行更加細粒度的建模。在分塊數方面進行對比實驗,其rank-1和mAP指標的結果分別如圖6、7所示。

圖6 不同特征圖大小的分塊數量對rank-1的影響

圖7 不同特征圖大小的分塊數量對mAP的影響

從圖6、7可看出,對于不同特征圖大小的分塊結果,模型性能總體上還是隨著分塊數量的增加而提升。對于相同或相近的分塊數,如3、4、6、8、9、12,特征圖大的無論在rank-1還是mAP上都比特征圖小的高一點。也就是說,CIT確實能夠對更加細粒度的特征進行建模,從中學習到了更多有用的信息。

3.3.4 與其他方法的比較

將CIT與其他切片方法在數據集Market-1501、DukeMTMC-reID上進行比較,結果如表3所示。

表3 CIT與其他方法在數據集Market1501和DukeMTMC-reID上的比較

從表3可看出,CIT比PCB及PCB+RPP表現要好,無論是在rank-1還是mAP都有小幅度提升。主要是因為CIT內部的2個Transformer結構能夠更加高效地去除冗余信息,融合有效信息。但相比AlignedReID++,則略微遜色,主要是因為AlignedReID++中用到了動態局部對齊DMLI算法和reranking技術。但CIT和PCB+RPP在rank-1的指標上仍比AlignedReID++高一點,每個模型都有自己的擅長點與偏重點。

4 結束語

針對行人重識別中由于特征圖感受野帶來的切片分塊限制問題,提出一種基于Transformer的行人重識別網絡CIT。通過CIT中的TransformerIN 對分塊特征進行更細粒度的特征建模,同時有效去除由感受野重疊帶來的冗余信息。此外,CIT 中的TransformerOUT對由TransformerIN 得到的每個分塊全局token向量進行建模,做進一步的信息提取,并融合到全局分類token向量中。實驗結果表明,CIT確實能夠很好地對更加細粒度的特征進行建模,善于把控全局,從中去除冗余的同時提取出有用信息。未來工作可以嘗試直接去除CNN,利用單純的Transformer來搭建整個特征提取網絡,從而對更加細粒度的特征進行建模。

猜你喜歡
分塊全局行人
Cahn-Hilliard-Brinkman系統的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
毒舌出沒,行人避讓
分塊矩陣在線性代數中的應用
路不為尋找者而設
落子山東,意在全局
我是行人
反三角分塊矩陣Drazin逆新的表示
基于自適應中值濾波的分塊壓縮感知人臉識別
基于多分辨率半邊的分塊LOD模型無縫表達
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合