王曉,李丹
(四川大學錦城學院,四川成都,611371)
行人重識別的目的是在不同的場景和攝像機視圖中關(guān)聯(lián)特定的對象,其重要組成部分是提取魯棒特征和判別性特征,長期以來一直被基于CNN的方法所主導[1],但是基于CNN方法主要集中在較小鑒別區(qū)域以及其采用的降采樣操作(池化和卷積步長)降低了輸出特征圖的空間分辨率,極大影響對相似外觀物體的區(qū)分能力[2]。而基于注意力機制的方法大多數(shù)嵌入在深層,更偏愛較大的連續(xù)區(qū)域,并且很難提取多個多樣化的可判別區(qū)域。隨著多頭注意力模塊的引入,以及卷積和降采樣操作的去除,基于Transformer的模型適合于解決基于CNN的行人重識別中的上述問題。其中多頭注意模塊捕獲了遠程依賴關(guān)系,激勵模型參與人體的不同部位。而Transformer無需降采樣操作,可以保留更詳細的信息。但為了應(yīng)對圖像中的大變化(例如遮擋,姿態(tài)多樣性,攝像機視角等問題),Transformer仍需要專門針對行人重識別進行設(shè)計。因此構(gòu)建了一個針對行人重識別的框架——TransReID。
首先構(gòu)建一個基于Transformer的強基線框架Vit-BoT,該方法主要分為特征提取和監(jiān)督獲取兩個階段。如圖1所示,給定一幅圖像x∈RH×W×C,其中H,W,C分別表示其高度,通道的寬度和通道數(shù)。我們把它分成N個固定大小的塊{xip|i=1,2,…,N}。將其中一個可學習的向量[cls]嵌入標記為xcls,添加到輸入序列之前,輸入到Transformer層的輸入序列可表示為:

圖1 基于Transformer的強基線框架Vit-BoT

其中Z0表示輸入序列嵌入,P∈(N+1)×D為嵌入的位置。F是一個線性投影映射到D維。此外采用Transformer層來學習特征表示。由于所有的Transformer層都有一個全局的感受野,從而解決了基于CNN方法的有限感受野問題。同時由于沒有采用降采樣操作,詳細的信息得以保留。
原始ViT針對圖像分類任務(wù)所設(shè)計,不能用于行人重識別任務(wù),為此,對其進行了幾點適應(yīng)性調(diào)整。
2.1.1 重疊補丁(Overlapping Patches)
在預處理階段,ViT需要將圖像塊分割為N個不重疊塊,這時會導致每個塊的局部鄰近結(jié)構(gòu)信息無法較好的保留,故采用滑動窗口形式生成重疊塊。假設(shè)滑動窗口的步長為S像素,每個塊的尺寸P=16,那么重疊部分的形狀為(P-S)×P。基于上述定義,如果輸入圖像的尺寸為H×W,那么所得到的圖像塊數(shù)量如下:

從上式可以得出:重疊區(qū)域越大,所提圖像塊數(shù)量越多。而更多的塊通常可以帶來更好的性能,但同時也會造成更高的計算量。為了更好的區(qū)分表示,S通常設(shè)置為小于P的值,而S=P時則忽略下角標。
2.1.2 位置嵌入(Position Embedding)
位置嵌入ρi則表示編碼圖像塊Pi的位置信息,它有助于Transformer的Encoder編碼空間信息。由于行人重識別任務(wù)的圖像分辨率不同于圖像分類時的原始圖像分辨率,故ImageNet網(wǎng)絡(luò)模型上位置嵌入無法直接應(yīng)用,因此采用雙線性插值輔助ViT-BoT處理任意輸入尺寸的圖像。
盡管前述所設(shè)計的ViT-BoT可以在目標ReID任務(wù)上取得很好的效果,但它并未充分利用ReID數(shù)據(jù)的特性。為更好的探索邊界信息與細粒度信息,我們提出了拼圖補丁模塊(JPM)與邊信息嵌入向量(SIE),并將所提框架稱之為TranReID,其結(jié)構(gòu)信息見圖2。

圖2 TransReID框架
2.2.1 拼圖補丁模塊(jigsaw patches module, JPM)
為了擴展遠程依賴關(guān)系并增強特征的魯棒性,我們提出了JPM,通過移位和補丁洗牌操作重新安排補丁嵌入,并重新對它們進行分組以進一步的進行特征學習。對ViTBoT的最后一層調(diào)整為雙并行分之結(jié)構(gòu)(采用兩個獨立Transformer層分別用于學習全局特征與局部特征)并行提取魯棒特征。因此,該網(wǎng)絡(luò)傾向于提取具有全局上下文的擾動不變和魯棒特征。
為了解決上述的問題,我們提出了一個拼圖補丁模塊(JPM)對嵌入的塊重新排列然后將它們重新分組到不同的部分中,每一個都包含整個圖像的幾個隨機嵌入塊。具體描述如下:
第一步:移位操作
第二步:補丁洗牌操作
經(jīng)過前述移動后的塊進一步通過置換操作(group=k)進行處理,此時隱含特征變?yōu)椋骸?/p>
我們將置換后的特征分成k組,JPM可以將其編碼為k個局部特征,因此每個特征可以編碼不同的部件,全局特征與局部特征分別采用分類損失£ID,£T進行訓練,整體損失定義如下:

2.2.2 邊信息嵌入向量SIE
獲取更詳細的特征之后,特征仍然容易受到攝像機或視點變化的影響。換一種說法,由于場景的偏差,訓練模型在對同一對象的不同角度的識別上很容易失敗。因此,我們提出了一種邊信息嵌入向量(SIE)去合并非視覺信息,例如將攝像機或視點去嵌入表示以學習不變特征。通過可學習向量有效地整合非視覺線索,以緩解不同攝像機或視覺以及其他因素導致的視覺偏差,以攝像機為例,所提出的SIE有助于解決攝像機間和攝像機內(nèi)匹配所產(chǎn)生的巨大成對相似性差異。SIE也可以很容易地擴展到包括除了我們已經(jīng)演示的那些以外的任何非視覺線索。
具體的說,如果圖像的相機ID為C,那么它對應(yīng)的相機嵌入可以表示為 S(C),不同位置嵌入會隨圖像塊變化,相機嵌入則對所有塊相同。另外,如果視角信息V可知,我們同樣可以將其編碼到所有塊中。
接下來,我們就需要考慮如何集成這兩種不同類型的信息了。最簡單的一個想法:直接進行相加,即S(C)+S(V)。但這種方式可能導致信息抵消。我們提出采用聯(lián)合編碼方式:S(C,V)。也就是說,如果有 CN個相機ID,VN個視角標簽,那么S(C,V)總計有CN×VN個不同的值。那么第i個塊的輸入定義如下:

因為每個塊的嵌入位置不同,但在不同的圖像中是相同的,S(C,V)對于每個塊是相同的,但是對于不同的圖像可能有不同的值。Transformer層能夠編碼具有不同分布特性、可以直接插入的嵌入向量。
本文采用Market1501[3]數(shù)據(jù)集對所提出的基于TransReID的方法進行實驗Market1501數(shù)據(jù)集包括6個攝像頭所拍攝到的1501個行人。其中訓練集有751人,包含12936張圖像,測試集有750人,包含19732張圖像,平均每人有26.3張測試數(shù)據(jù)。
本文算法基于Colab平臺實施,迭代次數(shù)為120,GPU為TeslaT4。在訓練模型時,將所有圖片大小調(diào)整為256×256。訓練圖像通過隨機水平翻轉(zhuǎn)、填充、隨機裁剪、隨機擦除進行圖像增強。Batch=8,采用SGD優(yōu)化算法,動量為0.9,權(quán)值衰減為1e-4。學習率初始化為0.008。
為了測試TransReID學習的有效性,本文分別在Market1501數(shù)據(jù)集上進行實驗驗證,訓練模型Loss函數(shù)收斂情況如圖3所示,圖中展示了Loss函數(shù)的收斂情況隨迭代次數(shù)的不斷增加而不斷變化的情況,由圖片可以看出,模型在迭代100次時趨于收斂。行人重識別檢測圖如圖4所示。

圖3 損失函數(shù)圖像

圖4 行人重識別檢測圖
隨著道路監(jiān)控設(shè)施及城市監(jiān)控網(wǎng)絡(luò)的日益完善,視頻偵查作為信息化背景下對現(xiàn)場勘查方法的創(chuàng)新逐漸被利用在刑事偵查之中,成為公安機關(guān)辦理案件的新技法[4]。然而由于監(jiān)控設(shè)備是24小時不間斷工作,且監(jiān)控攝像頭數(shù)量龐大,導致數(shù)據(jù)集也非常大,同時由于不同攝像頭之間的差異性,在追蹤嫌疑人時增加了一定的難度。在警方確定嫌疑犯基本信息后,采用人力查找監(jiān)控視頻中嫌疑人的行為軌跡是非常費時費力的。故先大致確定嫌疑犯出現(xiàn)的范圍,調(diào)出視頻圖像并對其解碼預處理,對解碼后的視頻圖像進行行人檢測,并在數(shù)據(jù)庫中存儲檢測結(jié)果。通過已知某嫌疑犯的照片,輸入到匹配系統(tǒng)中與數(shù)據(jù)庫中行人進行比對,收集監(jiān)控系統(tǒng)中嫌疑犯出現(xiàn)的時間和地點,并對檢測到的目標在視頻中的幀序列進行跟蹤,可以將嫌疑犯在各個攝像頭中的行蹤串聯(lián)起來,實現(xiàn)跨攝像頭追蹤,嫌疑犯的行為軌跡一旦確定,將對警方破案刑偵有非常大的幫助。

圖5 匹配系統(tǒng)
本文研究了一個用于行人重識別的TransReID框架,并且提出兩個新的模塊,即拼圖補丁模塊(JPM)和邊信息嵌入向量(SIE)。其中JPM可以幫助模型學習更多的全局信息和更具有辨別力的部分,使得模型對擾動具有魯棒性。而SIE減弱了由不同攝像機和視點引起的場景偏差的負面影響。基于TransReID的方法有著很大的潛力,可以進一步探索重識別的任務(wù),以便更好的應(yīng)用于我們的日常生活中。