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