論文地址
代碼實現:Matconvnet、caffe、keras
Motivation
- 現在主流的兩種re-ID卷積網絡:verification and identification models,這兩種網絡因爲損失函數的不同各有優缺點
- 那麼能不能把這兩種網絡結合一下來得到一個能學習到更具區分能力的表示呢?
Contribution
- 提出了siamese network結合了identification loss與verification loss
- 這種網絡可以同時學習到discriminative embedding與similarity measurement
- 在大型數據集上與得到了與SOTA相當的準確率
Introduction:
- 近幾年re-ID領域進步的因素:
- 大規模數據集的出現
- 使用卷積神經網絡來學習行人的embedding,能學到更加魯棒對的特徵
常用的兩種模型(a)identification(b)verification,如下圖:
verification model的缺點:只利用了弱re-ID標籤,沒有考慮圖像對以及其他圖像之間的關係
identification model的缺點:訓練目標與最後的測試目標不符合,沒有考慮圖像對之間的相似度度量
那麼有沒有可能結合上述兩種模型來達到互補呢?–> 本文提出的模型(見下文)
Related Work
A.Verification Models
- 1993, Bromley第一次使用verification models
- 通常輸入一個圖像對,輸出爲通過計算低維特徵的餘弦距離得到的相似性得分,學習使用contrastive loss
- 2014 Yi et al.首次使用了verification models來進行Person Re-ID等等~
B.Identification Models
- 隨着數據集的增大,可以在不過擬合的情況下訓練深層的分類模型來得到discriminative embeddings
C.Verification-identification Models
- 結合兩種loss的模型在人臉識別中已經有一些工作,eg.DeepID networks等
- 本文工作與人臉識別工作的不同:
- 數據集大小對於loss的選擇:人臉識別數據集一般很大,訓練集有202599張圖片,10177個身份,而Re-ID通常只有12936張751個身份的圖片,前者可以使用contrastive loss,而後者使用contr loss會過擬合,本文使用了cross-entropy loss,下文會進一步解釋原因
- dropout的使用:dropout會在隨機的位置產生0值,不能在contrastive loss前使用,相反,採用crooss-entropy可以使用dropout來減少過擬合
- DeepID從頭開始訓練,本文藉助了pretrained model on ImageNet,即使用了transfer learning(一定程度上彌補了數據不足吧)
Proposed Method
Preview
- 上圖說明了verication models、identification models與our model在一個batch上圖像對之間的關係圖。
- 實線代表由verification loss建立的直接聯繫,eg.通過pair-wise的比較直接建立相似度的聯繫
- 虛線代表由indetification loss建立的間接聯繫,通過cross-entropy: ,其中 ,爲了最大化 ,當 與 與 有相似向量方向時網絡達到收斂
- 正如之前提到的(a)、(b)的不足,很容易看出our model結合了(a)、(b)兩種模型的優勢
Overall Network
上圖爲本文提出的網絡結構:
- two ImageNet pre-trained CNN models
- three additional Convolutional Layers, one Square Layer and three losses
- 本文用卷積層代替了全連接層,用1x1x4096x751得到1x1x751的輸出向量
- 之前工作在中間層含有matchingfunction,本文直接比較 作爲相似性度量
- Square Layer:用來比較高級特徵
- Square Layer後跟着一個卷積層將 作爲輸入得到2維向量 來表示兩張輸入圖片屬於一個人的概率,從而將行人驗證看成一個二分類問題,使用類似identification loss的cross-entropy loss,式子如下:
- Square Layer後跟着一個卷積層將 作爲輸入得到2維向量 來表示兩張輸入圖片屬於一個人的概率,從而將行人驗證看成一個二分類問題,使用類似identification loss的cross-entropy loss,式子如下:
爲什麼沒有使用Contrastive loss而使用softmax loss呢?
- contrastive loss是一種迴歸loss,使相同類別的嵌入儘可能的近,由於re-ID數據集中的identity很少,很容易過擬合
- dropout會引入0值不適合在contrastive loss前使用
爲了比較三種模型的效果:本文訓練了三個網絡來做實驗得到了下圖:
- 實驗結果如下:
- 可視化的角度說明了本文的方法結合了Verif、Classfi兩種model的優勢
- 實驗結果如下:
文中通過對網絡得到的embed進行可視化發現衣服顏色可能是re-ID最重要的線索,同時也發現本文的方法對於一些viewpoint variations很魯棒
Traning and Optimization
- Input preparation:
- 圖片resize 256 * 256
- 減去訓練集上的均值
- crop 227*227 或 224*224(CaffeNet、ResNet50、VGG16)
- 對數據集進行了打亂,使用隨機的圖片順序,然後選擇從相同或不同類別中選擇一個張圖片與其組成P、N對
- 初始negative : positive = 1:1,在每個epoch後乘以1.01直到1:4,來防止過擬合
- Training
- 訓練epoch:ResNet50、VGG16、CaffeNet分別爲75、65、155
- batchsize:48、48、128
- 初始學習率:0.001 最後5個epoch 0.0001
- SGD
- 對三個loss分別計算梯度然後進行了加權,verification loss權重爲1,其他兩個identifcation loss爲0.5
- Testing
- 先把gallery中的圖片通過網絡計算得到4096-dim的pedestrian descriptor ,並存儲起來,然後在線計算query的descriptor。
- 對query與gallery的features計算餘弦距離並排序得到最後的rank結果
- 特徵經過L2-normalized後,餘弦距離等價於歐式距離
EXPERIMENTS
- 在Market1501、CUHK03以及Oxford Buildings上進行了實驗
- baseline:
- 直接fine-tune pretrained model on ImageNet
- 下表爲在Market1501上的baseline
- Cross-entropy vs. Contrastive loss:
- 將cross-entropy loss換成Contrastive loss性能有所下降,原因可能是不能使用類似dropout的正則化手段引起了過擬合。
其他一些結果
對上圖的結果的思考:對於第三行的rank1來說,我們人很容易從髮型來區分出來,如何設計結構來區分這種種細節特徵呢,之前的Gated SCNN感覺是一種思路。
- Results between camera pairs:比較了不同攝像頭下的性能
Large-scale experiments:gallery中多了500K的圖片
- 當多了500K圖像時候,本文的模型比之前的baseline精度降的快,作者給的原因是Market數據集相對較小,文中的模型可能過擬合比較嚴重一些。
- Instance Retrieval:在Oxford5k上取得了不錯的效果,說明了模型的通用性
CONCLUSION
- 總結了提出的模型
- Future work:
- 將方法用到新的場景:車輛識別、細粒度分類
- 研究如何學習robust descriptor,進一步提高Person Re-ID在大的gallery的性能