覃嘉輝
(深圳市鴻捷源自動化系統(tǒng)有限公司,廣東 深圳 518028)
隨著信息科技的快速發(fā)展,由于社會安全問題,對監(jiān)控圖像及視頻的研究成了一個重要方向,包括對目標(biāo)的檢測、識別、追蹤等,可與行人檢測/跟蹤技術(shù)相結(jié)合,廣泛應(yīng)用于智能視頻監(jiān)控、智能安保等領(lǐng)域[1]。
卷積神經(jīng)網(wǎng)絡(luò)是一種前饋神經(jīng)網(wǎng)絡(luò),它的人工神經(jīng)元可以響應(yīng)一部分覆蓋范圍內(nèi)的周圍單元,對于大型圖像處理有出色表現(xiàn)。
CNN主要有卷積層、池化層和全連接層。
卷積層通過對原始圖像進行卷積計算得到一個特征層,特點是參數(shù)共享及局部連接,降低了網(wǎng)絡(luò)參數(shù),提高性能。
池化層對得到的特征層進行降維操作,降低了計算量,擴大感受野。
全連接層用于分類任務(wù)中最后層級,該層神經(jīng)元個數(shù)即為網(wǎng)絡(luò)類別數(shù),當(dāng)前層的所有神經(jīng)元與前一層全部連接。
攝像頭的不同,同時行人兼具有剛性和柔性的特征,外觀易受穿著、尺度、遮擋、姿態(tài)和視角等影響,還涉及行人隱私問題。
用于行人重識別任務(wù)常用的數(shù)據(jù)集有以下幾種:
(1)Market1501數(shù)據(jù)集。拍攝于清華大學(xué),6個不同的攝像頭拍攝的行人圖像32217張。
(2)DukeMTMC-ReID數(shù)據(jù)集。來自Duke大學(xué),8個不同的攝像頭含1812個行人的圖像36441張。
(3)CUHK03數(shù)據(jù)集。共有2個攝像頭所拍攝的行人圖像14067張,拍攝于香港中文大學(xué)。
通用的評價指標(biāo)有以下幾種:
(1)第一匹配率(Rank-1)
Rank-1是指首位命中的概率,公式表達為:
m為查詢集中的行人圖片總數(shù),Si=1代表對于查詢集中的第i張行人圖像,恰好為同一行人圖像,結(jié)果越高,性能越好。
(2)第k匹配率(Rank-k)。Rank-k代表的是排序后若前k張圖像存在有查詢目標(biāo)圖像,稱為Rank-k命中,通常將Rank-k與k值作成曲線圖,橫坐標(biāo)為k值,縱坐標(biāo)為Rank-k值,稱為累計匹配特征CMC曲線,整體越高,性能越好。
(3)平均精度均值(mAP)。mAP(mean Average Precision)這一概念的提出,計算了所有正確圖像結(jié)果在排序中的先后位置,mAP值越高,算法的性能越好。
最開始的一種算法:基于表征學(xué)習(xí)的算法。訓(xùn)練集中行人的ID數(shù)即為網(wǎng)絡(luò)的類別數(shù),最后計算一個softmax損失。它不直接學(xué)習(xí)兩張圖像的相似性,僅有分類損失的網(wǎng)絡(luò)也稱為IDE網(wǎng)絡(luò)。
度量學(xué)習(xí)的目的是直接學(xué)習(xí)兩張圖像的相似性,通過構(gòu)造一個度量損失函數(shù),使得同一行人圖像之間的距離減小,不同行人之間的距離增大。
本文用到的用于行人重識別任務(wù)的度量損失有
Triplet loss和TriHard loss。
2.2.1 三元組損失(Triplet loss)
三元組損失每次輸入三張圖像,一張固定圖片a(Anchor),一張它的正樣本p(Positive),一張它的負樣本n(Negative),即每次輸入一對正樣本a和p,一對負樣本a和n三張圖片,三元組損失公式為:
當(dāng)同一行人圖像中噪聲區(qū)域較大時,經(jīng)過網(wǎng)絡(luò)得到的全局特征差異較大,計算圖像相似度時可能會分辨成不同行人導(dǎo)致結(jié)果出錯。為解決該問題,將兩幅圖像中行人的局部區(qū)域進行對比,提出了基于局部特征的方法,常用的有水平切片、姿態(tài)分割等。下面介紹一種基于水平切片算法:AlignedReID算法[2]。
AlignedReID是一種基于局部特征的行人重識別算法。將原始行人圖像水平分割成八份,然后將分割成的八個局部區(qū)域進行對齊,這里采用的是DMLI(Dynamically Matching Local Information)的思想,自動地將局部區(qū)域進行對齊,找出兩者之間的最短路徑作為度量依據(jù)。
計算局部特征之間的距離采用歐氏距離:
原始圖像經(jīng)過CNN后得到了一個特征,然后分別送入到兩個分支中。一個是全局分支,經(jīng)過全局池化后得到的是全局特征,可以計算一個分類損失(softmax損失);另一個是局部分支,進行水平池化后得到的是局部特征,再引入DLMI思想進行局部特征的自動對齊。最后利用全局特征找到的準(zhǔn)樣本,計算出TriHard loss。
針對行人重識別中存在遮擋的問題,引入了隨機擦除的思想,對數(shù)據(jù)集進行增廣以提升網(wǎng)絡(luò)的泛化性能。
方法是在訓(xùn)練階段,以一定的概率p對訓(xùn)練數(shù)據(jù)進行隨機擦除處理,對于大小為W×H的輸入圖像I(其面積為S=W×H),若生成的概率值小于p,則進行隨機擦除操作:隨機選取一塊矩形區(qū)域面積為Se,且矩形區(qū)域的縱
本文采用Market1501數(shù)據(jù)集,下載Market1501數(shù)據(jù)集后,里面共有五個文件夾,本次實驗用到其中的三個:訓(xùn)練集bounding_box_train,測試階段的查詢集bounding_box_test,候選集query。
4.1.1 訓(xùn)練集
訓(xùn)練集中的圖片在bounding_box_train文件夾中,共有行人圖片12937張,包括751個行人類別,每個行人的圖片數(shù)量不等。
4.1.2 查詢集
查詢集的圖片在bounding_box_test文件夾中,提取了候選集中750個行人的不同的區(qū)域作為待檢索圖像。
4.1.3 候選集
測試階段的候選集中的圖像在query文件夾中,需要注意的是候選集中的750類行人完全不同于訓(xùn)練集中的751類行人,這也是我們在表征學(xué)習(xí)訓(xùn)練階段必須舍棄最后一個FC層的原因所在。
上述測試集和訓(xùn)練集中的圖片的標(biāo)簽是以文件名的形式命名的,如0005_c1s1_001351_00,0005是行人的ID數(shù),ID數(shù)不連續(xù),c1代表拍攝的攝像頭標(biāo)號(從0到5),s1代表研究視頻ReID時用到的序列標(biāo)號,001351代表在序列中的第幾幀,00表示該序列中的第一段。
本文采用的模型為殘差網(wǎng)絡(luò)ResNet50。先將原始圖像(224,224,3)經(jīng)過五層堆疊的卷積層,得到(7,7,2048)維的特征,再經(jīng)過大小為7×7的窗口進行全局平均池化操作得到2048維的特征向量,最后經(jīng)過一個分類層,即神經(jīng)元個數(shù)為1000的FC層,計算softmax損失,進行1000類的分類任務(wù)[3]。
對于行人重識別任務(wù),需要對上述的ResNet50結(jié)構(gòu)進行改進,首先輸入圖像大小變?yōu)椋?56,128,3),由于經(jīng)過卷積層后需要進行水平池化操作且訓(xùn)練集行人ID數(shù)為751,所以將原始ResNet50中最后兩層去掉。
首先對所有圖片進行預(yù)處理,將訓(xùn)練集的圖片進行圖像大小的縮放、水平翻轉(zhuǎn)、轉(zhuǎn)化為Tensor、歸一化操作;將測試集的圖片進行大小的縮放、轉(zhuǎn)化為Tensor、歸一化操作。
表征學(xué)習(xí)分類數(shù)為訓(xùn)練集行人的ID數(shù)751,所以在上述改進的ResNet模型后還需要加一個維數(shù)為751的FC層,最后計算softmax損失。
訓(xùn)練好模型后,在測試階段,舍棄最后的FC層,通過前一層輸出的特征進行測試,對于查詢集中的每一張圖像,與候選集中所有圖像計算歐式距離,可以對結(jié)果進行排序,從而計算出mAP、Rank-1、Rank-5、Rank-10和Rank-20。
行人重識別現(xiàn)已成為計算機視覺的一個熱門研究方向,本文簡要就行人重識別的幾個深度學(xué)習(xí)算法進行研究。應(yīng)用到具體的視頻場景,這對算法的精度和效率有較高要求。目前行人重識別大部分算法是與行人檢測相對獨立的,能否實現(xiàn)從端到端的網(wǎng)絡(luò)也是行人重識別必然的發(fā)展方向。