楊 戈,葉杰強(qiáng)
1(北京師范大學(xué)珠海分校 智能多媒體技術(shù)重點(diǎn)實(shí)驗(yàn)室,珠海 519087)
2(北京大學(xué)深圳研究生院 深圳物聯(lián)網(wǎng)智能感知技術(shù)工程實(shí)驗(yàn)室,深圳 518055)
行人再識(shí)別(person Re-IDentification,ReID)是指在不同背景的非重疊攝像頭視域下,確認(rèn)在不同場(chǎng)景和不同時(shí)間出現(xiàn)的行人是否為同一個(gè)人,在視頻監(jiān)控中,當(dāng)出現(xiàn)一個(gè)目標(biāo)行人時(shí),行人再識(shí)別會(huì)判斷這個(gè)人是否在另一個(gè)地方(時(shí)間)被另一個(gè)攝像機(jī)觀察過.作為一個(gè)新興的方向,也是計(jì)算機(jī)視覺領(lǐng)域近年來研究熱點(diǎn)之一,近幾年越來受到的關(guān)注越來越高.這一方向的出現(xiàn)可以歸結(jié)為:(1)公眾安全需求的增加;(2)遍布于公園、大學(xué)校園和街道等地區(qū)的攝像機(jī)網(wǎng)絡(luò).這兩種原因都使得僅僅依靠蠻力的人為標(biāo)注來準(zhǔn)確和有效地識(shí)別或者追蹤目標(biāo)行人是非常昂貴的.從計(jì)算機(jī)視覺的角度來看,行人再識(shí)別中最具挑戰(zhàn)性的問題是如何在密集的外觀變化下,如照明、姿態(tài)和視點(diǎn)等,正確匹配同一人的兩幅圖像,其具有重要的科學(xué)價(jià)值和應(yīng)用前景.
近幾年,深度學(xué)習(xí)(Deep Learning,DL)的急速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)成功進(jìn)入人們的生產(chǎn)生活中,使用深度學(xué)習(xí)與卷積神經(jīng)網(wǎng)絡(luò)的解決行人再識(shí)別的問題是最有效的一種方式之一[1].按照訓(xùn)練損失將卷積神經(jīng)網(wǎng)絡(luò)分為度量學(xué)習(xí)與表征學(xué)習(xí),按照是否具有局部特征分為局部特征與全局特征,根據(jù)數(shù)據(jù)集的不同可以分為基于單幀和基于序列.一種生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Nets,GAN)的方法利用生成新數(shù)據(jù)來解決行人再識(shí)別的難點(diǎn)問題.
ReID 作為一個(gè)圖像檢索(Text-Based Image Retrieval,TBIR)的子問題,目的是找出兩張照片的相似度.度量學(xué)習(xí)(metric learning)是普遍用來解決TBIR的方法之一.也就是說:如果兩張照片的是同一行人ID,那么它們的相似度就大于別的照片.于是提出映射概念,由原始域映射圖片至特征域,定義距離度量函數(shù)對(duì)兩個(gè)特征向量間距離計(jì)算,再根據(jù)網(wǎng)絡(luò)最小化度量損失獲取最優(yōu)映射f(x),讓ID 相同的行人正樣本通過損失函數(shù)使其具有較短的余弦距離或者歐式距離,不同ID的行人負(fù)樣本通過損失函數(shù)使其具有更長(zhǎng)的余弦距離或者歐式距離,該f(x)映射為經(jīng)過訓(xùn)練獲得的深度卷積網(wǎng)絡(luò).
(1)對(duì)比損失(contrastive loss)
通常對(duì)比損失用來訓(xùn)練孿生網(wǎng)絡(luò)(Siamese Network)[2-4],該網(wǎng)絡(luò)的輸入一般為一對(duì)(兩張)照片,例如a和b,這對(duì)照片可以是正樣本對(duì)(同一行人),也可以為負(fù)樣本對(duì)(不同行人).
(2)三元組損失(triplet loss)
三元組損失是近幾年被大量運(yùn)用于度量學(xué)習(xí)中[5-8],很多度量學(xué)習(xí)的損失函數(shù)都是基于三元組損失的形式,該損失的特點(diǎn)是:需要每次輸入3 張圖片做為訓(xùn)練.包括:錨點(diǎn)圖片,正樣品圖片和負(fù)樣本圖片.
錨點(diǎn)圖片a和正樣本圖片p是來自同一行人ID,錨點(diǎn)圖片A和圖片N來自不同行人ID.
(3)四元組損失 (quadruplet loss)
四元組損失在三元組損失的基礎(chǔ)上的一個(gè)改進(jìn)[9].四元組損失需要4 張照片,包括:錨點(diǎn)圖片,正樣品圖片及兩張負(fù)樣本圖片.
文獻(xiàn)[9]作者認(rèn)為三元組損失考慮了正樣本和負(fù)樣本之間的相對(duì)距離,但沒有考慮正負(fù)樣本之間的絕對(duì)距離.為此提出了四元組損失.在神經(jīng)網(wǎng)絡(luò)中采用四元組損失可以學(xué)習(xí)到更明確的特征息.
行人再識(shí)別另一個(gè)基于損失函數(shù)的方法就是表征學(xué)習(xí)(representation learning),表征學(xué)習(xí)極其常見于卷積神經(jīng)網(wǎng)絡(luò).行人再識(shí)別的目的是獲取兩張不同圖間的相似程度,然而表征學(xué)習(xí)方法并未在訓(xùn)練網(wǎng)絡(luò)直接應(yīng)用時(shí)將圖片間的相似度考慮在內(nèi),而是看作分類問題或者驗(yàn)證問題來看待.其中分類問題是指將相同的行人ID 聚集為一類[10],使用ID 或者屬性分類,而驗(yàn)證問題是在行人重識(shí)別中是一個(gè)二分問題,直接讓網(wǎng)絡(luò)判斷輸入的兩張行人照片是否為一個(gè)ID.
分類方法的特點(diǎn):CNN 網(wǎng)絡(luò)中提取特征,提取到的特征經(jīng)過池化層,經(jīng)過一個(gè)FC 層.該FC的維度就是網(wǎng)絡(luò)中的ID 數(shù),將提取到的特征運(yùn)用分類損失(identification loss)函數(shù)進(jìn)行網(wǎng)絡(luò)訓(xùn)練.因?yàn)橛?xùn)練時(shí)候的FC 層是訓(xùn)練集的維度,測(cè)試時(shí),訓(xùn)練集和測(cè)試集的ID 一般不相同,也就是說訓(xùn)練集的全部FC 層在訓(xùn)練完后全部要丟棄.分類網(wǎng)絡(luò)中經(jīng)常采用一個(gè)屬性損失(attribute loss)[11],用一些行人屬性來輔助行人特征,能增強(qiáng)網(wǎng)絡(luò)的性能.分類損失在ReID 問題中也被稱為ID 損失,所以該網(wǎng)絡(luò)也被稱作IDE 網(wǎng)絡(luò).行人再識(shí)別中最主要的一項(xiàng)基準(zhǔn)(baseline)為IDE 網(wǎng)絡(luò).
這類方法就是將ReID 問題看為是一類二分問題,旨在讓網(wǎng)絡(luò)直接判別輸入網(wǎng)絡(luò)的行人ID 兩者是否是同一行人[11].每次輸入一對(duì)照片,進(jìn)入孿生網(wǎng)絡(luò)進(jìn)行特征提取.融合孿生網(wǎng)絡(luò)中每個(gè)網(wǎng)絡(luò)的特征信息計(jì)算一個(gè)二分類損失(驗(yàn)證損失),訓(xùn)練時(shí)可以和ID 損失一起使用.測(cè)試時(shí)輸入兩張圖片,網(wǎng)絡(luò)直接判斷兩張照片是否屬于同一行人.
全局特征是指每一張行人圖片的全局信息進(jìn)行一個(gè)特征抽取,這個(gè)全局特征沒有任何的空間信息.一般的卷積網(wǎng)絡(luò)提取的都是全局特征,然而行人數(shù)據(jù)集復(fù)雜性逐步上升,采用全局特征難以達(dá)到當(dāng)前需求.目前研究的熱點(diǎn)問題為提取復(fù)雜度較高的特征,局部特征為確定某個(gè)網(wǎng)絡(luò)或者網(wǎng)絡(luò)自動(dòng)對(duì)設(shè)計(jì)者注重的局部區(qū)域關(guān)注.常用的方法有切塊,關(guān)鍵點(diǎn)定位等方法.
圖片切塊是的提取局部特征方法主要為水平切塊.文獻(xiàn)[12]是這方面的內(nèi)容.每一塊圖像經(jīng)過CNN 網(wǎng)絡(luò)得到特征,局部特征按順序輸入到LSTM (Long Short-Term Memory)網(wǎng)絡(luò),自動(dòng)表達(dá)為圖像最終的特征.利用對(duì)比損失訓(xùn)練網(wǎng)絡(luò)水平切塊是比較早期的工作,目前已經(jīng)很少使用.改進(jìn)的水平切塊算法PCB[12]和Aligned ReID[13]是現(xiàn)在的主流方法.將圖像進(jìn)行水平方向的等分,每一個(gè)水平切塊通過水平池化提取一個(gè)特征,Gate Siamese和Aligned ReID 通過設(shè)計(jì)規(guī)則融合所有的局部特征計(jì)算距離就,PCB、ICNN、SCPNet對(duì)每一個(gè)局部特征計(jì)算一個(gè)ReID 損失,直接將局部特征拼接起來,聯(lián)合局部特征和全局特征往往能夠得到更好的結(jié)果.
圖像語義分割是一種極精細(xì)的像素級(jí)別part 信息,圖像分割分為粗粒度的行人前景分割和細(xì)粒度的肢體語義分割,分割結(jié)果通常作為圖像預(yù)處理的Mask 或者feature map 中的attention 相乘,目前基于分割的方法沒有取得特別廣泛的應(yīng)用.行人的局部特征被越來越多的論文來驗(yàn)證是極其有效的,一定程度上解決了行人姿勢(shì)不同的問題.融合全局特征和局部特征的方法在Person-ReID 領(lǐng)域越來越流行.如何很高效率和低消耗的提取局部特征是現(xiàn)在的研究熱點(diǎn)方向之一.
序列重識(shí)別也常被稱為視頻重識(shí)別(Video ReID),是指利用一段連續(xù)的行人圖片序列進(jìn)行行人再識(shí)別任務(wù),或者說是個(gè)序列搜索序列的問題.
有以下特點(diǎn):(1)姿態(tài)變化豐富.(2)遮擋現(xiàn)象普遍.(3)總有幾幀質(zhì)量好,也有幾幀質(zhì)量差.(4)需要考慮如何融合各幀的信息.
生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Nets,GAN)在最近幾年呈現(xiàn)快速發(fā)展?fàn)顟B(tài)[14],最主要的應(yīng)用為生成圖片.深度學(xué)習(xí)方法在實(shí)際應(yīng)用的前提條件為訓(xùn)練數(shù)據(jù)量龐大,然而當(dāng)前行人再識(shí)別數(shù)據(jù)集數(shù)量、規(guī)模上相對(duì)較少,采用GAN 進(jìn)行識(shí)別行人任務(wù)發(fā)展成為熱門,傳統(tǒng)GAN 網(wǎng)絡(luò)是以隨機(jī)方式生成圖片,再后期推出的DualGAN、CycleGAN 及DiscoGAN 等可以轉(zhuǎn)換圖片風(fēng)格[15],推動(dòng)在行人再識(shí)別領(lǐng)域廣泛運(yùn)用GAN.網(wǎng)絡(luò)中有生成器(Generator,G)和鑒別器(Discriminator,D).有兩個(gè)數(shù)據(jù)域分別為X,Y.
生成器G 用來生成數(shù)據(jù),生成的數(shù)據(jù)被鑒別器D識(shí)別是否為真實(shí)數(shù)據(jù),兩者存在一種矛盾關(guān)系.生成器G使用X 域中的數(shù)據(jù)生成的圖片越來越接近真實(shí)數(shù)據(jù).鑒別器D的鑒別能力越來越強(qiáng),越來越能夠把真實(shí)與偽造圖片分開來.最后生成器G 生成的照片已經(jīng)接近真實(shí)圖片,鑒別器D 分不清真實(shí)圖片與偽造圖片.到這時(shí),生成器G和鑒別器D 達(dá)到了動(dòng)態(tài)平衡的狀態(tài),我們就可以使用改GAN 來生成圖片,用來擴(kuò)充數(shù)據(jù)集.
訓(xùn)練完成后,一般不使用鑒別器,而只使用生成器來生成我們想要的數(shù)據(jù)圖片,CycleGAN 一個(gè)非常實(shí)用的地方就是輸入的兩張圖片可以是任意的兩張圖片,也就是非成對(duì),而且CycleGAN 可以使兩個(gè)域的圖像風(fēng)格進(jìn)行轉(zhuǎn)換.
目前傳統(tǒng)行人再識(shí)別方法缺少綜合考慮多幀信息以及多特征融合思想,因此本文綜合考慮全局特征和局部特征,提出了一種利用水平池化提取局部特征的HPLF(Horizontal Pooling for Local Feature)算法,在ResNet-50 網(wǎng)絡(luò)中對(duì)輸入的聯(lián)合數(shù)據(jù)集進(jìn)行預(yù)處理,提取特征,對(duì)特征圖進(jìn)行水平切割,計(jì)算兩兩特征之間的距離,再用難樣本三元組損失來作為局部特征損失函數(shù)訓(xùn)練,通過特征圖計(jì)算全局距離,提高了行人再識(shí)別精度.
本文的方法是:將數(shù)據(jù)集的數(shù)據(jù)輸入到ResNet-50網(wǎng)絡(luò)中進(jìn)行預(yù)處理,將提取到的特征進(jìn)入一個(gè)池化層進(jìn)行池化操作,得到特征圖.得到的特征圖分別進(jìn)入一個(gè)局部網(wǎng)絡(luò)分支,改網(wǎng)絡(luò)將特征圖進(jìn)行水平池化操作,將得到的特征圖進(jìn)行切割,將每個(gè)特征圖劃分為高為1的特征圖,之后用距離函數(shù)計(jì)算它們之間的距離.在另一個(gè)分支中,進(jìn)行一個(gè)傳統(tǒng)的度量學(xué)習(xí)操作,計(jì)算完距離后,兩個(gè)分支分別進(jìn)行一個(gè)難樣本三元組的構(gòu)造工作,然后用三元組損失進(jìn)行網(wǎng)絡(luò)訓(xùn)練,流程圖如圖1所示.
HPLF (Horizontal Pooling for Local Feature)方法主要涵蓋一個(gè)水平池化跟難樣本挖掘的方法.
水平池化層:在經(jīng)過一個(gè)ResNet-50的輸出后會(huì)得到一個(gè)(N×C×H×W)的向量,其中N是batchsize的大小,C是照片的像素大小,H為照片的高度,W為照片的寬度.HPLF 方法用一個(gè)1×W的窗口去剪裁該特征圖,最后會(huì)得到H個(gè)N×C×1×W的局部特征圖.用這個(gè)局部特征圖去訓(xùn)練網(wǎng)絡(luò),如圖2.
圖1 流程圖
圖2 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)
難樣本挖掘:傳統(tǒng)的度量學(xué)習(xí)方法是隨機(jī)采樣組成元祖樣本,但是這樣采集的樣本通常是一些非常容易識(shí)別的樣本,不利于訓(xùn)練表達(dá)能力強(qiáng)的ReID 網(wǎng)絡(luò).為了使網(wǎng)絡(luò)更好的識(shí)別行人,利用難樣本訓(xùn)練網(wǎng)絡(luò),讓網(wǎng)絡(luò)注意到更多的細(xì)節(jié)特征,利用難樣本來訓(xùn)練網(wǎng)絡(luò)的方法是很有效的方法.本文訓(xùn)練時(shí),會(huì)在一個(gè)batchsize(size)中找到一個(gè)最難的正樣本與一個(gè)最難的負(fù)樣本來作為一個(gè)三元組來訓(xùn)練網(wǎng)絡(luò).
本文構(gòu)建的網(wǎng)絡(luò)中應(yīng)用了2 種損失:Softmax 交叉熵?fù)p失(Softmax Cross Entropy Loss)函數(shù)和難樣本三元組損失(TriHard loss)函數(shù).
(1)Softmax 交叉熵?fù)p失:在神經(jīng)網(wǎng)絡(luò)中,最后一個(gè)輸出層的個(gè)數(shù)與分類任務(wù)的標(biāo)注數(shù)相等.假設(shè)最后的輸出層個(gè)數(shù)為N,那么對(duì)于神經(jīng)網(wǎng)絡(luò)可以有一個(gè)N維度的數(shù)組作為他的輸出結(jié)果.在理想的狀態(tài)下,假設(shè)某一個(gè)樣本屬于M,那么這個(gè)該樣本對(duì)于M的輸出值應(yīng)該為1,對(duì)于其他的輸出結(jié)果應(yīng)該為0.例如這種情況[0,1,0,0,…,0,0],這是最期望的結(jié)果,但一般實(shí)際輸出與這不相符.例如[0.02,0.01,0.7,0.05,…,0.01],這就是Softmax 所做的,將樣本的輸出值,做了加權(quán)和非線性處理之后,使其變成了一個(gè)概率值,概率和為1.
假設(shè)y1,y2,y3,…,yn是某神經(jīng)網(wǎng)絡(luò)的輸出,那么經(jīng)過Softmax 處理之后,如式(1)所示:
其中,yi網(wǎng)絡(luò)的第i個(gè)輸出,e是輸出的期望值.n是代表網(wǎng)絡(luò)有n個(gè)輸出.
交叉熵 (Cross Entropy,CE)所表達(dá)的是輸出與期望輸出的距離,如果輸出與期望輸出之間越接近,如式(2)所示:
其中,q為輸出,而p為期望輸出.
(2)難樣本三元組損失函數(shù)
在三元組損失的基礎(chǔ)上經(jīng)過改進(jìn)后形成難樣本三元組損失,TriHard loss的核心思想是:每一次訓(xùn)練批量挑選P個(gè)行人,將他們的ID 作為屬性.每個(gè)ID 行人,隨機(jī)挑選他們訓(xùn)練集中的照片,所以每一個(gè)批量一共有P×K張圖片.在P×K張照片中,選取對(duì)于網(wǎng)絡(luò)最困難分辨的照片,組成三元組,三元組需要每次輸入3 張圖片做為訓(xùn)練,3 張照片分別被命名為:
① 錨點(diǎn)圖片(anchor,a);
② 正樣品圖片(positive,p);
③ 負(fù)樣本圖片(negetive,n).
圖片集A是錨點(diǎn)圖片(anchor)ID 相同的行人圖片集合,B為與錨點(diǎn)圖片(anchor)ID 不同的圖片集合.如式(3)所示:
其中,batch為輸入批量,max為最難的正樣本對(duì),min為最難的負(fù)樣本對(duì).P為輸入的ID 數(shù),A,B是輸入的兩個(gè)不同ID.K為輸入的每個(gè)ID 數(shù)有幾張照片,a為錨點(diǎn)照片,p為正樣本照片,n為負(fù)樣本照片,d代表距離.α是人為設(shè)置的參數(shù).相對(duì)于傳統(tǒng)的三元組損失,TriHard loss 考慮了極端樣本的信息,而且一般有自適應(yīng)權(quán)重計(jì)算,即對(duì)于正樣本對(duì)來說,越接近的樣本,權(quán)重越大.對(duì)于負(fù)樣本拉說,距離越大,權(quán)重越小.
本文所使用的的參數(shù)如表1所示.
表1 實(shí)驗(yàn)環(huán)境表
訓(xùn)練過程以數(shù)據(jù)集Market1501[16],本數(shù)據(jù)集來自清華大學(xué)校園中6 個(gè)不同區(qū)域由攝像頭拍攝采集的圖像信息,該訓(xùn)練集中有751 個(gè)有標(biāo)記(ID)的行人圖像,包含12 936 張圖像,訓(xùn)練時(shí)將圖片像素轉(zhuǎn)為256×128,設(shè)置margin(損失函數(shù)的閾值)=0.3,設(shè)置batch-size(批量)=32,置num-instance(輸入行人ID的個(gè)數(shù))=4,每次輸入32 張照片,分別來自4 個(gè)ID 行人,每個(gè)行人8 張照片.設(shè)置迭代次數(shù)(epoch)=150,stepsize (步長(zhǎng))設(shè)置為50,其他參數(shù)默認(rèn).在HPLF 網(wǎng)絡(luò)中圖片經(jīng)過ResNet網(wǎng)絡(luò),對(duì)輸出結(jié)果最后用Triplet loss和Softmax的聯(lián)合損失函數(shù)來約束網(wǎng)絡(luò)進(jìn)行學(xué)習(xí).設(shè)定CNN的學(xué)習(xí)率為0.0002,并且150 個(gè)epoch 進(jìn)行一次學(xué)習(xí)率遞減為之前的1/10,進(jìn)行訓(xùn)練.采用梯度下降算法來逆向修正網(wǎng)絡(luò)的參數(shù),最后繪制訓(xùn)練和校驗(yàn)曲線圖.測(cè)試時(shí),在最后的卷積層提取圖像的特征,對(duì)歐式距離求解后排列測(cè)試集中的圖像或者指定圖像,并且在測(cè)試文件中,進(jìn)行mAP,Rank-1,Rank-5,Rank-10,Rank-20的測(cè)試.當(dāng)epoch=150 次以后loss 函數(shù)基本達(dá)到最小值.
本文測(cè)試所使用的指標(biāo)為mAP 以及Rank-1、Rank-5、Rank-10.表2和表3是Market1501 在本文算法下獲得測(cè)評(píng)結(jié)果,與文獻(xiàn)[17] 中描述的方法對(duì)比,精準(zhǔn)性大大提高.本文算法在單人檢索有著90.6%的Rank-1 指標(biāo)和77.7的mAP 指標(biāo).但是在某些方面數(shù)據(jù)集的提升不太明顯,主要考慮是圖片中目標(biāo)人體被遮擋.
表2 本文方法獲得性能(%)
本文實(shí)驗(yàn)結(jié)果與其他方法對(duì)比如表3所示.
表3 Market1501 數(shù)據(jù)集結(jié)果對(duì)比(%)
本文還做了自身對(duì)比實(shí)驗(yàn),在不使用本文的HFML算法的情況下得到的訓(xùn)練結(jié)果如表4所示.
表4 不使用HFML 算法獲得性能(%)
與表2比較,可以看出使用本文的HFML 算法的情況下mAP 指標(biāo)高了6.9%,Rank-1 指標(biāo)提升4.4%,Rank-5 指標(biāo)提升1.4%,Rank-10 指標(biāo)提升0.6%,Rank-20 指標(biāo)提升0.6%.可以看出本文的HFML 算法可以有效的提取特征,可以提升精度.
本文提出了一種利用水平池化提取局部特征的HPLF 算法,在特征圖進(jìn)行水平切割,將分割的特征圖通過難樣本三元組損失來作為局部特征損失函數(shù),同時(shí)原先特征圖也將通過難樣本三元組損失和Softmax損失函數(shù)來作為全局特征損失函數(shù),將3 個(gè)損失函數(shù)作為聯(lián)合損失函數(shù)進(jìn)行參數(shù)修正.未來考慮復(fù)雜場(chǎng)景下的行人再識(shí)別.
計(jì)算機(jī)系統(tǒng)應(yīng)用2021年3期