林 通,陳 新,唐 曉,賀 玲,李 浩
(中國(guó)人民解放軍空軍預(yù)警學(xué)院,湖北 武漢430019)
行人重識(shí)別(ReID)的目的是利用計(jì)算機(jī)視覺(jué)技術(shù)判斷圖像或者視頻序列中是否存在特定行人的技術(shù)。 由于其在安全和監(jiān)控方面的重要應(yīng)用,受到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。這一任務(wù)極具挑戰(zhàn)性,因?yàn)椴煌鄼C(jī)拍攝的圖像往往包含由背景、視角、人體姿勢(shì)等變化引起的顯著變化。
在過(guò)去的幾十年中,大多數(shù)現(xiàn)有的研究都集中在度量學(xué)習(xí)和特征學(xué)習(xí)上,設(shè)計(jì)盡可能抵消類內(nèi)變化的算法已經(jīng)成為了行人重識(shí)別的主要目標(biāo)之一。起初,行人重識(shí)別的研究主要是基于全局特征,即基于全局圖像獲得特征向量。 為獲得更好的效果,開(kāi)始引入局部特征, 常用的局部特征提取方法包括圖像分割、骨架關(guān)鍵點(diǎn)定位和姿態(tài)校正。 行人重識(shí)別任務(wù)還面臨一個(gè)非常大的問(wèn)題,即很難獲得數(shù)據(jù)。 到目前為止,最大的數(shù)據(jù)集只有幾千個(gè)目標(biāo)和上萬(wàn)張圖片。隨著生成性對(duì)抗網(wǎng)絡(luò)(GAN)技術(shù)的發(fā)展,越來(lái)越多的學(xué)者試圖利用這種方法來(lái)擴(kuò)展數(shù)據(jù)集。 然而,大多數(shù)現(xiàn)有的針對(duì)行人重識(shí)別的算法需要大量標(biāo)記數(shù)據(jù), 這限制了它在實(shí)際應(yīng)用場(chǎng)景中的魯棒性和可用性,因?yàn)槭謩?dòng)標(biāo)記一個(gè)大型數(shù)據(jù)集是昂貴和困難的。最近的一些文獻(xiàn)在使用無(wú)監(jiān)督學(xué)習(xí)來(lái)解決此問(wèn)題,改進(jìn)人工標(biāo)注的特征。 由于不同數(shù)據(jù)集之間的圖像有明顯差異,在提取圖片特征問(wèn)題上效果仍不理想。本文方法的貢獻(xiàn)主要有兩個(gè)方面。 一方面,采用均衡采樣策略和姿勢(shì)遷移方法對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)充有效地緩解了行人姿勢(shì)各異造成的干擾。 另一方面,利用兩種不同的網(wǎng)絡(luò)結(jié)構(gòu)從圖像的不同方面提取特征,使模型能學(xué)習(xí)到更為豐富全面的信息。 實(shí)驗(yàn)結(jié)果表明,該方法具有較高的精度。 例如,在Market-1501 數(shù)據(jù)集上,這一模型Rank-1 準(zhǔn)確度達(dá)到了96.0%,mAP達(dá)到了90.1%,與現(xiàn)有算法相比,性能有較大提升。
行人重識(shí)別的研究最開(kāi)始主要是基于全局特征,即基于全局圖像獲得特征方向。 為了得到更好的性能,研究人員逐步研究局部特征。 常用的局部特征提取方法包括圖像分割、骨架關(guān)鍵點(diǎn)定位和姿態(tài)校正。 圖像分割是一種非常常用的提取局部特征的方法。 將圖片垂直分成幾個(gè)部分[1-2]。 然后,將分割后的圖像塊按順序送入神經(jīng)網(wǎng)絡(luò)。 最后一個(gè)特征融合了所有圖像塊的局部特征。 然而,這種方法的缺點(diǎn)是對(duì)圖像對(duì)齊的要求相對(duì)較高。 如果兩幅圖像沒(méi)有對(duì)齊,很可能會(huì)造成頭部和上身的對(duì)比,從而導(dǎo)致模型判斷錯(cuò)誤。 為了解決圖像錯(cuò)位問(wèn)題,一些文獻(xiàn)首先利用先驗(yàn)知識(shí)對(duì)行人進(jìn)行對(duì)齊。 這些先驗(yàn)知識(shí)主要是經(jīng)過(guò)訓(xùn)練的人體姿勢(shì)(骨架)模型和骨架關(guān)鍵點(diǎn)(骨架)模型。 例如,文獻(xiàn)[3]首先利用姿態(tài)估計(jì)模型對(duì)行人的關(guān)鍵點(diǎn)進(jìn)行估計(jì),然后利用仿射變換對(duì)相同的關(guān)鍵點(diǎn)進(jìn)行對(duì)齊。
行人重識(shí)別任務(wù)面臨一個(gè)非常嚴(yán)重的問(wèn)題,那就是很難獲得數(shù)據(jù)。 到目前為止,最大的行人重識(shí)別數(shù)據(jù)集只有幾千個(gè)行人和上萬(wàn)張圖片。 隨著生成式對(duì)抗網(wǎng)絡(luò)(GAN)技術(shù)的發(fā)展,越來(lái)越多的學(xué)者試圖利用這種方法來(lái)擴(kuò)展數(shù)據(jù)集。
文獻(xiàn)[4]是第一篇以基于生成式對(duì)抗網(wǎng)絡(luò)技術(shù)解決行人重識(shí)別的論文,發(fā)表在ICCV17 會(huì)議上。 雖然論文比較簡(jiǎn)單,但卻引出了一系列的佳作。 行人重識(shí)別的一個(gè)問(wèn)題是不同的相機(jī)提供的照片存在差異。這種差異可能來(lái)自各種因素,如光線和角度。為了解決這個(gè)問(wèn)題,文獻(xiàn)[5]使用生成式對(duì)抗網(wǎng)絡(luò)將圖像從一個(gè)相機(jī)風(fēng)格遷移到另一個(gè)相機(jī)。 除了相機(jī)的差異外,行人重識(shí)別面臨的另一個(gè)問(wèn)題是不同數(shù)據(jù)集中存在差異。 這很大程度上是由圖片拍攝環(huán)境造成的。 為了克服這種環(huán)境變化的影響,文獻(xiàn)[6]使用GAN 將行人從一個(gè)數(shù)據(jù)集的拍攝環(huán)境遷移到另一個(gè)數(shù)據(jù)集拍攝環(huán)境。 行人重識(shí)別還要解決的困難之一是行人姿勢(shì)的不同。 為了應(yīng)對(duì)這一問(wèn)題,文獻(xiàn)[7]用生成式對(duì)抗網(wǎng)絡(luò)制作了一系列標(biāo)準(zhǔn)的姿態(tài)圖,共提取了8 個(gè)姿態(tài),基本涵蓋了各個(gè)角度。對(duì)每個(gè)行人生成一組標(biāo)準(zhǔn)的8 個(gè)姿勢(shì)圖片,以解決不同的姿勢(shì)問(wèn)題。
在這部分,提出了一種新的模型來(lái)解決ReID 問(wèn)題,如圖1 所示。該模型包含兩個(gè)部分:基于生成式對(duì)抗網(wǎng)絡(luò)的模型和一個(gè)集成CNN 模型。 該模型先將已有的數(shù)據(jù)集進(jìn)行擴(kuò)充,再利用擴(kuò)充的數(shù)據(jù)集訓(xùn)練集成模型完成行人重識(shí)別任務(wù)。
圖1 模型結(jié)構(gòu)
姿勢(shì)圖片Pc,關(guān)鍵點(diǎn)向量Sc經(jīng)過(guò)2 層降采樣卷積層;Pt也經(jīng)過(guò)兩層降采樣卷積層,而后輸入到姿勢(shì)-注意轉(zhuǎn)移網(wǎng)絡(luò)中。 姿勢(shì)-注意轉(zhuǎn)移網(wǎng)絡(luò)是由幾個(gè)特別設(shè)計(jì)的姿勢(shì)-狀態(tài)轉(zhuǎn)移塊構(gòu)成的,每個(gè)轉(zhuǎn)移塊只傳輸它所關(guān)注的某些區(qū)域, 逐步生成人物圖像,允許每個(gè)傳輸塊在訓(xùn)練上時(shí)行局部傳遞,因此避免了捕獲全局的復(fù)雜結(jié)構(gòu)。 所有姿勢(shì)轉(zhuǎn)移塊均具有相同的結(jié)構(gòu),它有兩條相互獨(dú)立的支路構(gòu)成:圖像支路和姿勢(shì)支路,分別算出生成圖片的圖像編碼和姿勢(shì)編碼。 最后將姿勢(shì)-注意轉(zhuǎn)移網(wǎng)絡(luò)的輸出——圖像編碼和姿勢(shì)編碼輸入到解碼器,通過(guò)3 個(gè)反卷積網(wǎng)絡(luò)從圖像編碼生成圖像Pg,如圖2 所示。
鑒別器也分為兩部分:外觀鑒別器和姿勢(shì)鑒別器。 外觀鑒別器用來(lái)判斷Pg和原圖Pt是否為同一個(gè)人,姿勢(shì)鑒別器則判斷Pg的姿勢(shì)是否與Pc相同,兩個(gè)鑒別器結(jié)構(gòu)相似。 先將Pg分別與Pt、Pc在深度軸上結(jié)合,而后分別送入外觀鑒別器和姿勢(shì)鑒別器,得到輸出外觀相似度RA和姿勢(shì)相似度RS。 最終的評(píng)分R=RARS。
為了解決行人重識(shí)別任務(wù)中用于識(shí)別的圖片人物位置遠(yuǎn)近不一的問(wèn)題,提出的行人重識(shí)別模型采用多層次的卷積核來(lái)提取圖片特征,將這些特征拼接,而后進(jìn)行分類,如圖3 所示。
特征提取部分采用兩個(gè)算法分別提取特征,將圖片分別輸入到ResNet[9]、Densenet[10]之中,分別提取卷積層輸出,得到特征向量L1、 L2將之連接,作為特征向量L。
在全連接層,借鑒PCB 模型的思路,采用6 個(gè)全連接層和6 個(gè)分類器。 這里采用交叉熵?fù)p失函數(shù)。 在訓(xùn)練階段,每個(gè)分類器用于預(yù)測(cè)給定圖像的分類(人的身份)。 測(cè)試階段,給出兩張圖片Ii和Ij(i和j 圖片在數(shù)據(jù)集中的標(biāo)簽)。
圖2 GAN 模型結(jié)構(gòu)
圖3 CNN 模型結(jié)構(gòu)
使用特征提取模型提取特征并獲得兩個(gè)特征向量, 分別為L(zhǎng)i和Lj。 根據(jù)余弦距離計(jì)算相似度。
所有實(shí)驗(yàn)是在Pytorch1.0.1、Python3.6 環(huán)境下實(shí)現(xiàn)的,硬件設(shè)備是2 塊Titan RTX,顯存24 GB,E5-2680 v3 24 核處理器。
當(dāng)前的ReID 數(shù)據(jù)集已大大推動(dòng)了有關(guān)的研究。 充足的訓(xùn)練數(shù)據(jù)使得有可能開(kāi)發(fā)更深的模型并展現(xiàn)出較強(qiáng)的識(shí)別能力。 盡管目前的算法已在這些數(shù)據(jù)集上實(shí)現(xiàn)了很高的精度,但距離在實(shí)際場(chǎng)景中得到了廣泛應(yīng)用還很遙遠(yuǎn)。 因此,有必要分析現(xiàn)有數(shù)據(jù)集的局限性。
與實(shí)際場(chǎng)景中收集的數(shù)據(jù)相比,當(dāng)前數(shù)據(jù)集在四個(gè)方面存在局限性:(1)任務(wù)種類和攝像機(jī)的數(shù)量不夠大,尤其是與真實(shí)監(jiān)控視頻數(shù)據(jù)相比時(shí)。目前,最大的數(shù)據(jù)集DukeMTMC-reID 也只有8 個(gè)攝像頭,不到2 000 個(gè)人物身份。 (2)現(xiàn)有的大多數(shù)數(shù)據(jù)集僅包括單個(gè)場(chǎng)景,即室內(nèi)或室外場(chǎng)景。 (3)現(xiàn)有的大多數(shù)數(shù)據(jù)集都是由短時(shí)監(jiān)控視頻構(gòu)建的,沒(méi)有明顯的光照變化。 這些局限性使得采用一些方法擴(kuò)充或增強(qiáng)數(shù)據(jù)集很有必要。
這里采用DukeMTMC-reID 數(shù)據(jù)集,它是Duke-MTMC 數(shù)據(jù)集的子集,用于基于圖像的行人重識(shí)別。有1 404 個(gè)行人出現(xiàn)在兩個(gè)及以上的攝像頭中,408個(gè)行人只出現(xiàn)在1 個(gè)攝像頭。 選擇702 人作為訓(xùn)練集,其余702 人被用作測(cè)試集。 在測(cè)試集中,為每個(gè)攝像機(jī)中的每個(gè)行人選取一張查詢圖像,并將其余圖像放入圖庫(kù)中。 這樣,就可以得到702 個(gè)人的16 522 張 訓(xùn) 練 圖 像, 其 他702 人 的2 228 張 查 詢 圖像和17 661 張圖庫(kù)圖像。 每張圖像都包含其相機(jī)ID 和時(shí)間戳。
由于行人重識(shí)別數(shù)據(jù)集由不同人的圖像組成,每個(gè)人都有不同數(shù)量的圖像樣本。 通常情況下,每批次練訓(xùn)練數(shù)據(jù)是從全部訓(xùn)練集中隨機(jī)選取的,這樣就會(huì)使輸入的訓(xùn)練數(shù)據(jù)對(duì)于每個(gè)ID 不平等,擁有更多圖像樣本的ID 訓(xùn)練的次數(shù)就越多,圖像樣本越少的ID 訓(xùn)練得越少。 這樣訓(xùn)練出來(lái)的模型會(huì)對(duì)擁有更多圖像樣本的ID 提供更多的信息,但是每個(gè)人都應(yīng)具有同樣的重要性,應(yīng)該受到平等的對(duì)待, 因此引入了均衡采樣策略。對(duì)于樣本少的ID,利用GAN 模型加以擴(kuò)充。
在訓(xùn)練姿勢(shì)遷移網(wǎng)絡(luò)時(shí),采用Adam 優(yōu)化器,迭代120 輪,β1=0.5,β1=0.999,初始學(xué)習(xí)率為2×10-4,采用指數(shù)衰減。 在每一層卷積層和歸一化層后使用Leaky ReLU 做激活函數(shù),負(fù)斜率系數(shù)設(shè)置為0.2。 將生成圖片與原數(shù)據(jù)集合并,得到一個(gè)10 萬(wàn)張圖片的訓(xùn)練集。
在CNN 部分,先進(jìn)行圖像預(yù)處理將圖像尺寸調(diào)整為384×192×3,然后以0.5 的概率對(duì)圖像水平翻轉(zhuǎn),改變圖像的亮度對(duì)比度為1.7 和飽和度1.5,并使用隨機(jī)擦除,用均值[0.485,0.456,0.406]和標(biāo)準(zhǔn)差[0.229,0.224,0.225]分別對(duì)每個(gè)通道的數(shù)據(jù)進(jìn)行正則化。
Resnet 采用Pytorch 預(yù)訓(xùn)練的模型resnet101,Densenet 采用Pytorch 預(yù)訓(xùn)練的模型densenet121,均使用訓(xùn)練好的參數(shù)。 將兩個(gè)模型卷積層的輸出設(shè)置為1×1 024,將兩個(gè)輸出連接得到1×2 048 的向量作為圖片特征向量。
用Softmax 進(jìn)行分類,在訓(xùn)練階段,6 個(gè)分類器獨(dú)立預(yù)測(cè)給定圖像的類別(人的身份),從而獲得更高的準(zhǔn)確性。 將Dropout rate 設(shè)置為0.3,使用SGD 優(yōu)化器,并將momentum 設(shè)置為0.9,權(quán)重衰減因子設(shè)置為5×10-4,訓(xùn)練時(shí)初始學(xué)習(xí)率設(shè)置為0.1,每訓(xùn)練40 個(gè)epoch 衰減為原來(lái)的0.1,一共訓(xùn)練120 輪。
該算法分別在Market-1501 和DukeMTMC-ReID上進(jìn)行了測(cè)試。 與現(xiàn)有的算法相比,取得了更好的效果。
圖4 采用不同的識(shí)別策略的性能
從圖4 可以看出,在沒(méi)有使用GAN 擴(kuò)充數(shù)據(jù)集前,單純的ReID Model 在DukeMTMC-reID 數(shù)據(jù)集數(shù)據(jù)集上測(cè)試時(shí),Rank-1 為86.90%, mAP 為78.25%。在使用了GAN 模型,隨機(jī)對(duì)一些行人的圖片進(jìn)行擴(kuò) 充(GAN+reID Model Ⅰ)后,Rank-1 和mAP(mean average precision)分別提高到了87.95%、80.41%,但是效果提升并不明顯。 而針對(duì)性地挑選出圖像相對(duì)較少的行人進(jìn)行GAN 增強(qiáng), 并采用了一系列數(shù)據(jù)增強(qiáng)措施, 在ReID Model 部分采用resnet101 代替resnet50(GAN+reID Model Ⅱ)后,可以看到模型的效果 有 明 顯 提 升。 最 后, 使 用 re-ranking 方 法,在Market-1501 數(shù)據(jù)集上Rank-1 的提升到96.00%,mAP 提升到90.10%,在DukeMTMC-reID 數(shù)據(jù)集上Rank-1 提升到92.10%,mAP 提升到84.60%。
將這一模型與最近的方法[11-15]進(jìn)行比較,在Market-1501 數(shù)據(jù)集上就行測(cè)試。 這些方法主要是基于表示學(xué)習(xí)、局部特征和GAN 映射的行人重識(shí)別方法。 詳情見(jiàn)表1。 在每個(gè)數(shù)據(jù)集上,這種方法都有很好的性能,并且與以前的方法相比性能有所提高。
本文提出的基于姿勢(shì)遷移和CNN 的模型應(yīng)用在行人重識(shí)別中,通過(guò)兩個(gè)方面提高模型性能。 首先,使用均衡采樣策略和姿態(tài)轉(zhuǎn)移方法來(lái)擴(kuò)展數(shù)據(jù)集,從而解決了數(shù)據(jù)量少和不平衡的問(wèn)題。 這使得能夠訓(xùn)練更復(fù)雜的神經(jīng)網(wǎng)絡(luò)并提取更多特征。 其次,該方法使用兩種不同的卷積網(wǎng)絡(luò)結(jié)構(gòu)提取圖像特征,使所獲得的信息更加全面,從而進(jìn)一步提高了準(zhǔn)確性。 盡管該方法有效,但仍有待改進(jìn)。 更好的策略是考慮使用不同尺寸的卷積核以提取不同級(jí)別的特征。 在未來(lái)的工作中將繼續(xù)研究更有效的模型。
表1 模型性能比較