如何在不同摄像头里识别行人?多层相似度感知CNN网络解析
?
阿里妹導讀:行人重識別是指給定一個攝像頭下某個行人的圖片,在其他攝像頭對應的圖片中準確地找到同一個人。行人重識別技術有十分重要的科研和實際應用價值,近來廣泛應用到交通、安防等領域,對于創建平安城市、智慧城市具有重要的意義。可能有人會說“人臉技術”的應用已經很成熟了,然而在復雜的實際場景中,由于低分辨率、遮擋、不同角度等各種原因,“人臉”很難看清。因此,利用人的全身信息來做檢索就變得非常有必要。本篇論文收錄于ACM MM 2017(多媒體領域世界頂級會議),提出了全新的基于 CNN 的行人重識別方法,接下來,我們一起進行深入思考。
作者:申晨、金仲明、趙一儒、付志航、蔣榮欣、陳耀武、華先勝
摘要
行人重識別(person re-ID)的目的是識別多個攝像頭視角中的相關行人,這項任務在計算機視覺社區中已經得到了越來越多的關注。我們在本論文中提出了一種基于卷積神經網絡(CNN)和多級相似度感知的全新深度孿生架構。根據不同特征圖的不同特性,我們有效地在訓練階段將不同的相似度約束應用到了低層級和高層級特征圖上。因此,我們的網絡可以有效地學習不同層級的有判別性的(discriminative)特征表征,這能顯著提升 re-ID 的表現。
此外,我們的框架還有另外兩個優勢。第一,可以輕松地將分類約束整合到該框架中,從而形成一個帶有相似度約束的統一的多任務網絡。第二,因為相似度的信息已經通過反向傳播被編碼在了該網絡的學習參數中,所以在測試時并不必需成對的輸入。這就意味著我們可以提取每張圖庫圖像的特征并以一種離線的方式來構建索引,這對大規模真實世界應用而言至關重要。我們在多個有挑戰性的基準上進行了實驗,結果表明我們的方法相比于當前最佳方法表現出色。
1 引言
行人重識別(person re-ID)的目的是匹配一個行人在多個無交集的攝像頭視角中的圖像,這項任務憑借其研究和應用價值正獲得越來越大的關注。但是,行人重識別仍然是一項非常具有挑戰性的任務,因為不同身份實體之間的外觀可能差異不大(見圖 1(a)),而同一身份實體在不同光照、視角和部分遮擋(見圖 1(b)、1(c)、1(d))情況下又可能差異很大。
?
圖 1:行人重識別的各種復雜性示意圖,來自 CUHK03 數據集的。綠框表示同一個身份,而紅框則表示不同的身份。(d) 中的粉色框標示了一個突出的局部圖案(手提袋),由于部分遮擋這很容易丟失。
從技術上講,行人重識別有兩大基本組成:特征表征和距離度量。最近,基于 CNN 的深度學習方法已經在行人重識別上表現出了出色的優越性,因為它能夠聯合學習復雜的特征表征和可區分的距離度量。
在本論文中,我們提出了一種全新的基于 CNN 的行人重識別方案,稱為多級相似度感知卷積神經網絡(MSP-CNN)。在訓練階段,我們會使用一種孿生模型(Siamese model),其使用圖像對作為輸入,并且所有圖像都要經過同樣的共享參數的深度 CNN 網絡的處理。該基準網絡是精心設計的,其中使用了非常小的卷積過濾器和 Inception 模塊。接下來,我們深入思考了如何有效地將相似度約束應用到不同的特征圖上。
圖 2 給出了我們提出的網絡在訓練階段的整體架構。圖 3 給出了該網絡在測試階段的整體架構。
?
圖 2:訓練階段的多任務框架示意圖。具體說明一下,我們在低層級的 Pool1 層和高層級的 FC7 層分別優化相似度約束。正例(或負例)圖像的 Pool1 層特征圖上的紫色區域表示在獲取局部形義模式時互相關所使用的寬搜索區域。另外也同時使用了 softmax 損失來優化分類約束,M 表示行人身份實體的數量。
圖 3:測試時間的網絡架構
因此,我們的工作有三大關鍵優勢和主要貢獻。
- 我們提出了一種用于行人重識別的全新孿生模型,并且創新地在不同的特征圖上應用了相應的距離度量。這種多級相似度感知機制能巧妙地匹配不同層級特征圖的特性并顯著提升表現。
- 我們使用了一種多任務架構來同時優化分類約束和相似度約束。多任務學習可以在解決多個相關任務的同時實現知識共享,從而將兩者的優勢組合到一起。
- 在測試時間,我們可以避免成對輸入的時間低效的流程并且可以提取圖像特征來事先構建索引,這對于大規模真實世界應用場景而言至關重要。
2 我們提出的方法
2.1 方法概述
借鑒[1]中提出的用于行人重識別的網絡結構,我們精心設計了一個基于CNN的基礎骨架網絡,并期望它能僅使用單個 softmax 損失就得到優于大多數已有深度學習框架的強大基準結果。為了適應大多數行人圖像的尺寸(通常很小而且不是正方形的),所有的輸入圖像都重新調整為 160×64 大小,并且為了數據增強而隨機裁剪為 144×56 大小。
然后,我們從一種互補的角度考慮了相似度約束,并構建了一種分類任務的多任務架構。這種設計的目的是兼取二者之長,即充分利用行人重識別標注以及正例負例對之間相似度相當的信息。為了利用不同層級的特征圖的相關性信息來更好地描述相似度約束(之前的大多數研究都忽略了這一點),我們可視化了我們的基本 CNN 分類網絡所學習到的某些典型層的特征圖。
如圖 4 所示,低層級特征圖的響應通常很密集并且反映了局部形義區域。比如,來自 Conv1 層 #0 通道的特征會強烈響應黑色區域(頭發和褲子),而來自 Conv2 層 #9 通道的特征則重點強調明亮的白色區域(短袖衫)。這種現象也可以根據 Pool1 層的特征圖進行驗證。隨著層越來越深,它們的特征圖也會逐漸變得稀疏,而且往往會編碼更加抽象的全局特征。比如,Inception(1a) 層的某些通道仍然反映的是局部形義區域(紅色背包,#11),但大部分通道反映的都非常稀疏(#91)。其內部機制是:低層級卷積層所得到的可區分的局部特征會傳播給高層級層(尤其是全連接層),這些特征會變得抽象并形成全局表征。
?
圖 4:我們的基本 CNN 分類網絡學習到的特征圖的可視化。每一行都表示一個人的圖像從低層級到高層級的某些典型特征圖。第一行:錨圖像;第二行:正例圖像;最后一行:負例圖像。我們也標注了每個特征圖對應的通道號,用 # 號標記。
就低層級特征圖而言,典型的局部區域(比如圖 4 中的紅色背包)在同一個人的圖像中都有,這對區分正例對和負例對而言至關重要。因此,我們假設,對于第一張圖像的特征圖上的特定圖塊(patch),如果我們可以從另一張正例圖像的對應特征圖上找到其最相似的圖塊,那么這樣的圖塊對就非常有可能表示了可區分的局部區域。根據以上假設,我們可以自然而然地設計出尋找和強調這個可區分的區域的目標,這樣我們的網絡就能向更高層傳播更相關的特征。
受 [2] 的啟發,我們采用了歸一化互相關(normalized cross-correlation)作為一種非精確的匹配技術來匹配廣大區域中的像素區域。[2] 中已經證明,使用歸一化互相關和在更大區域上進行搜索能在視角變化很大、光照變化或部分遮擋的情況中保持穩健(robust)。歸一化互相關分數取值范圍為 [-1,1],其中 -1 表示特征向量完全不相似,1 表示特征向量非常相似。
因此,對于第一個特征圖的每個局部圖塊,我們都要通過選擇圖塊來找到第二個特征圖中與其最相似的圖塊——該圖塊有最大的互相關響應。之后,我們設計了損失函數,其目的是根據正例對(即可區分的區域)來增強互相關分數,同時根據負例對(即某種擾動)減弱互相關分數。
因此,我們的設計可以適應性地更加重點關注正例對之間共有的局部語義可區分區域,并且能夠通過前向傳播沿更高層的方向放大這種局部相似度。應當指出,正例圖像和負例圖像之間也有一些共有的語義模式(比如黑發),但這些模式不能看作是可區分的信息。因此,對于負例對而言,我們會忽略這樣的情況。
至于高層級特征圖,尤其是全連接層的特征圖,我們直接在 L2 歸一化之后使用歐幾里德距離來表示它們的相似度,并設計了用來降低正例對之間的距離并增加負例對之間的距離的損失函數。
2.2 多級相似度感知
低層級相似度。我們在 Pool1 層的特征圖上應用了低層級相似度約束,如圖 2 所示。
高層級相似度。高層級相似度約束(即優化歐式距離)應用在最后的全連接層的特征上(即圖 2 中的 FC7 層)。
2.3 多任務網絡架構
聯合訓練。前面已經提到,我們提出了一種全新的孿生網絡,可以在訓練階段將不同的相似度約束應用到對應的特征圖上。此外,我們將相似度約束和分類約束結合到一起構建了一個統一的多任務網絡。
如圖 2 所示,低層級和高層級相似度約束分別應用在 Pool1 層和 FC7 層上。這個選擇也是由驗證集決定的。
我們提出的訓練 MSP-CNN 的流程分為兩個階段。我們首先使用 softmax 損失和歐式距離損失在對應的數據集上從頭開始訓練一個精心設計的 CNN 多任務網絡。然后,我們加入低層級的互相關損失并繼續訓練該 CNN 幾個 epoch。因為低層級層的梯度通常很小,所以直接為低層級層提供梯度的互相關損失應該在相對穩定的階段得到更好的準確優化。此外,互相關損失收斂速度很快,所以我們只需要優化它少數幾個 epoch 來防止過擬合即可。
測試。前面已經提到,每張圖庫圖像的特征都可以按照圖 3 給出的過程事先提取出來。當發生查詢時,圖庫中的圖像根據它們與探針圖像(probe image)的相似度進行排序,其中圖像特征之間的相似度是根據歐式距離計算的。我們甚至可以利用某些索引技術(比如倒排索引或哈希)來基于這些圖像特征構建索引,從而進一步提升檢索效率(尤其是對于大規模數據集)。
3 實驗
3.1 數據集和協議
我們在大數據集 CUHK03、Market-1501 和小數據集 CUHK01 上進行了實驗。在我們的實驗中,我們使用了最常用的累積匹配特征(CMC)top-k 準確度來評估所有方法。我們還為 Market-1501 數據集使用了平均精度均值(mAP)。所有的評估結果都是單次查詢的結果。
3.2 實現細節
受 [1] 的啟發,我們精心設計了一個基本 CNN 網絡,它主要由 3 個 CONV 模塊、6 個 Inception 模塊和 1 個 FC 模塊組成。CONV 模塊中有一個卷積(conv)層,后面跟著批歸一化(BN)層和 ReLU 層。conv 層使用了一個非常小的過濾器(3×3)(受 VGGNet 的啟發),BN 層的作用是加快收斂速度。Inception 模塊是指 GoogLeNet,而且我們將每個 5×5 卷積都替換成了 2 個 3×3 卷積,就像 Inception-v3 建議的那樣。FC 模塊由一個全連接層以及后續的 BN 層、ReLU 層和 dropout 層構成。表 1 給出了詳細結構。
表 1:基本網絡結構
我們的算法是基于深度學習框架 Caffe 實現的,運行在配置了一塊英偉達 M40 GPU 卡的工作站上。
3.3 訓練策略
我們設計了一種訓練階段的采樣策略,讓負例對的數量和正例對的數量之比為 2:1。如圖 5 所示。
?
圖 5:采樣過程示意圖。紅色圓圈表示錨圖像,橙色圓圈表示正例圖像,藍色圓圈表示負例圖像。
數據增強。我們遵循了 AlexNet [3] 提出的經典技術。
4 結果和討論
4.1 與當前最佳方法的比較
?
表 2:在 CUHK03 數據集上 CMC rank 分別為 1、5、10、20 時當前最佳方法的表現比較。(a)人工標注人類框的設置。(b)檢測得到人類框的設置。
?
表 3:在 CUHK01 數據集上 CMC rank 分別為 1、5、10、20 時當前最佳方法的表現比較。(a)測試中有 100 個身份。(b)測試中有 486 個身份。
?
表 4:在 Market-1501 數據集上當前最佳方法的表現比較。
4.2 算法組成部分的有效性
以 CUHK03 有標注數據集為例,我們還詳細研究了我們提出的算法中各個模塊的效果,包括單獨的基本分類深度網絡、與高層級或低層級相似度約束相結合的分類約束、以及上述三者的綜合。表 5 給出了結果。
?
表 5:在 CUHK03 有標注數據集上,算法的不同組成部分以及它們的組合所得到的表現比較。cls 是指分類約束(即 softmax 損失),sim_high 是指高層級相似度約束(即歐式距離損失),sim_low 是指低層級相似度約束(即歸一化互相關損失)。
5 結論和未來工作
對于未來,我們打算尋找一個用于中層級層的合適優化目標并探索利用更多層特征圖的效果。
參考內容:
[1]Tong Xiao, Hongsheng Li, Wanli Ouyang, and Xiaogang Wang. 2016. Learning deep feature representations with domain guided dropout for person reidenti cation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 1249–1258.
[2] Arulkumar Subramaniam, Moitreya Chatterjee, and Anurag Mittal. 2016. Deep Neural Networks with Inexact Matching for Person Re-Identication. In Advances in Neural Information Processing Systems. 2667–2675.
[3]Alex Krizhevsky, Ilya Sutskever, and Georey E Hinton. 2012. Imagenet classication with deep convolutional neural networks. In Advances in neural information processing systems. 1097–1105.
論文原文地址:
https://dl.acm.org/citation.cfm?id=3123452&dl=ACM&coll=DL#URLTOKEN#
?
每天一篇技術文章,
看不過癮?
關注“阿里巴巴機器智能”微信公眾號
發現更多AI干貨。
總結
以上是生活随笔為你收集整理的如何在不同摄像头里识别行人?多层相似度感知CNN网络解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从DevOps到AIOps,阿里如何实现
- 下一篇: 关于阿里基础设施,你要知道的都在这里