1. 程式人生 > >【論文閱讀】Batch Feature Erasing for Person Re-identification and Beyond

【論文閱讀】Batch Feature Erasing for Person Re-identification and Beyond

轉載請註明出處:https://www.cnblogs.com/White-xzx/

原文地址:https://arxiv.org/abs/1811.07130

【Abstract】

  這篇文章展示了行人ReID的一個新的訓練機制——批特徵擦除(Batch Feature Erasing,BFE)。作者運用這個方法來訓練一個新的網路,該網路由以ResNet50為主網路和兩個分支組成,這兩個分支分別由一個全卷積分支和一個特徵擦除分支構成。當訓練特徵擦除分支時,隨機擦除整個batch中所有特徵圖的相同區域。然後通過兩個分支的特徵級聯來進行行人ReID。該方法雖然簡單,但在行人ReID中達到了最新水平,同時能夠應用於一般的影象檢索問題的一般測度學習任務。例如,該方法在CUHK03-Detect資料集上的Rank1達到了75.4%的準確率,在Stanford Online Products資料集上達到了83.0%的Recall-1分數,大幅超過了現有的方法。

【Introduction】

  行人ReID相當於,從沒有視覺重疊的多個攝像頭檢測到的不同行人圖片中,鑑定是否為同一個人。這在視訊監控中有重要應用,也是一個有意義的計算機視覺挑戰。近期的大部分工作都聚焦於學習合適的特徵表達來達到對姿勢、光照、視覺角度改變的魯棒性來促進行人ReID。其中,許多工作設法定位不同的肢體部分和對齊相關聯的特徵,其他工作則使用粗分割和注意力選擇網路來提高特徵學習。

  這篇文章研究訓練行人ReID神經網路的優化過程。作者展示了一個簡單但有效的訓練機制,BFE,其隨機裁剪掉同一batch中所有圖片學習到的特徵圖的一個區域。不同於DropBlock,作者提倡使用批處理,即同一batch中的所有圖片使用相同的方式裁剪。當所有的輸入圖片粗略地對齊,這種批操作對測度學習任務尤其有效,如行人ReID的場景。直觀上來說,它禁用了同一batch的所有圖片中與語義部分相關的所有特徵,如頭,腿,包等等,來強化網路對剩餘特徵學習更好的表達。如圖1。

圖1:(a)同一batch的輸入圖片。

(b)來自上一個基礎網路resnet50的輸出,通過特徵向量L2正則化的灰度強度視覺化的相應特徵圖。

  這些簡單的訓練策略使行人ReID的結果得到了提高。Resnet-50和hard triplet loss損失函式與BFE的網路結構,在CUHK03-

Detect 資料集上達到了74.4%的Rank1準確率,這比最新成果高了7.6%。

  BFE也能夠被不同的測量學習方案所採用,包括triplet loss、lifted structure loss、weighted sampling based margin loss和histogram loss。在CUB200-2011、 CARS196、In Shop Clothes Retrieval資料集和 Stanford online products資料集上進行影象檢索任務的測試,BFE也能夠在不同方案中同樣提高Rank1準確率。

【Related work】

 【Problem Formulation】

  行人ReID經常被公式表示為一個圖片檢索問題,其目標是從一個大的候選圖片集合中找到最相似的圖片。這個檢索問題可以通過找到標定函式f(·)和度量函式D(· , ·)來解決,其通過標定一張輸入圖片x為高維特徵向量f(x),然後再通過可度量的D(f(x), f(y))來度量兩個標定向量f(x)和f(y)的的相似度。

  在這篇文章中,作者簡單地使用了歐氏距離作為度量函式D(· ,  ·)和訓練一個神經網路來學習標定函式f(·)。可以用如下公式表達一般的影象檢索問題,提供C類的資料集X,並將X劃分為擁有Ctrain類的訓練集Xtrain和擁有Ctest類的測試集Xtest,注意Ctrain和Ctest的沒有相同的類別。然後在Xtrian圖片樣本上使用合適的損失函式訓練一個神經網路來學習標定函式f(·)。在測試中,首先對Xtest中的所有圖片計算特徵標定來建立一個標定向量的資料庫Ftest。然後對每一張Xtest中的測試圖q,計算它的標定fq,並在標定資料庫Ftest中搜索K-最近鄰,標定的檢索圖片本身不包括在那些KNN中。對每一個返回的KNN結果,如果其類別與檢索圖片的類別是一致的我們則認為是正確的。

  因為每個人可以看作是同一個類,所以行人ReID問題能夠被當做一個影象檢索問題。另外,每張行人圖片都有一個攝像機ID來指明是由哪個攝像機抓拍到的。在人ReID中,在測試集Xtest中每個人的檢索圖片被選來建立檢索資料庫Xquery,剩餘的測試圖片組成gallery資料集Xgallery。換句話說,X被分割成train、query和gallery,train有Ctrain個ID,query和gallery擁有相同的Ctest個ID。訓練過程與一般的圖片檢索相同,在測試時,計算gallery資料集的標定資料庫Fgallery並在query資料集中搜索每張檢索圖片的KNN結果。為了使問題更具有挑戰性,作者僅認為當具有相同人ID和不同攝像機ID時,檢索圖片返回的結果是正確的。

【Batch Feature Erasing (BFE) Network】

  【Backbone Network】作者使用ResNet50作為backbone來提特徵,並對網路結果進行了輕微的改動,在stage4中沒有采用下采樣的操作,從而得到尺寸為2048×24×8的更大特徵圖。

  【ResNet-50 Baseline】在backbone網路頂部添加了一個global branch的分支。確切地說,在殘差網路stage4 後使用了全域性平均池化來得到一個2048維特徵向量,通過一個1×1卷積層、bn層和一個ReLU層維度減少為512,輸入triplet loss和softmax loss,作者將這個全域性平均池化分支和backbone一起表示為ResNet50.

    【Baseline

   【Batch Feature Erasing Layer】在單個batch中,輸入圖片由backbone網路產生的特徵向量T,被BFE層隨機擦除相同的區域。所有的擦除區域都以零為輸出,所有的演算法細節都在Algorithm 1。

    在Figure 2中可視化了BFE層在triplet loss中的應用,同時其也能在其他損失函式中採用。擦除區域的高度和寬度會因不同task而不同。但是通常擦除的區域必須足夠大到能夠覆蓋輸入特徵圖的一個語義區域。

 Figure 2:BFE在triplet loss函式中的表示

    【Structure of the BFE Network】Figure 3展示了BFE網路的結構,由global branch和特徵擦除branch組成。global branch有兩個目的。第一,為了提供全域性特徵表達;第二,用於監督特徵擦除分支的訓練。特徵擦除分支使用BFE層處理特徵圖T並提供批量擦除特徵圖T'。然後用全域性最大池化得到2048維的特徵向量,最終在triplet loss和softmax loss中減到1024維,網路中沒有用到Dropout。

  應用在特徵圖T上的多層卷積ResNet bottleneck模組是十分重要的,如果缺少該模組,則全域性平均池化層和全域性最大池化必須同時應用在特徵圖T上,從而造成網路難以收斂。根據作者的觀察,經過特徵擦除層後平均池化是不穩定的,因此在特徵擦除分支中使用全域性最大池化代替平均池化。

  來自global branch和feature erasing branch的特徵進行級聯然後作為一張行人圖片的標定向量。有三點值得注意的是,①BFE層不會增加網路大小;②BFE層能夠應用到除了人ReID的其他度量學習任務;③BFE超引數能夠經過微調而不改變網路結構來適應不同的task。

Figure 3:batch hard triplet loss的BFE網路結構在人ReID中的表示。在ResNet50 stage4之後添加了 global branch,feature erasing branch引入了一個掩膜來裁剪 bottleneck特徵圖中的一個較大區域;在測試時,對來自兩個分支的特徵進行級聯來作為最終的行人圖片的描述子。

  【Loss function】損失函式是在兩個分支上soft margin batch-hard triplet loss與softmax loss的和。soft margin batch-hard triplet loss 的定義如下,

P:不同人的數量;K:每個人的圖片數量;所以在一個batch中有P×K個的三元組。

lBH(·) 表示batch-hard triplet loss。對每一個錨圖片Xai,從ID都為i的圖片中選擇最大距離的圖片作為正圖片Xpi ,在不同的ID=j的圖片中選擇距離最小的圖片作為負圖片Xnj。因此,Xai、Xpi、Xaj建立了一個三元組。lSBH(·) 是在一個batch中的所有三元組的soft margin batch-hard triplet loss之和。D(·, ·) 表示歐氏距離函式,fθ 是BFE網路學習的特徵標定函式。

【Experiments】 

   訓練時,輸入圖片resize為384×128,然後通過水平翻轉、歸一化和隨機擦除進行資料增強。在BFE層,作者設定擦除的高度比率為0.5,寬度比率為1.0,這些比率在所有的人reid資料集中設定均相同。測試圖片被resize到384×128,僅通過歸一化進行資料增強。

  對每張檢索圖片,我們將所有的gallery圖片按它們與檢索圖片歐氏距離大小進行降序排列,然後計算CMC曲線。作者使用rank1的準確率和mAP作為評價標準。具有相同人ID和攝像機ID的結果沒有被計算在內,值得注意的是,為了簡便,所有的實驗都是單一查詢設定並沒有reranking。

   作者用了4個GTX1080 GPU,batchsize為128,每個id包含4張圖片在一個batch中,所以有32個id每個batch;使用batch hard soft margin triplet loss和Adam優化器。

    實驗結果比較,BFE256+512表示global branch的特徵維度為256,feature erasing branch的特徵維度為512,

    【Benefit of Triplet and Softmax Joint Training.】以下顯示了Market1501在不同的loss組合訓練的效果,聯合訓練的方法對提高效能有幫助。

    【Benefit of Global and Feature Erasing Branches】沒有global branch的情況下,BFE網路的表現比backbone網路的表現略差。BFE層相當於正則化方法的作用,兩個分支能夠完成同時從global branch學習突出的外貌特徵,從 feature erasing branch學習可區分的細粒度特徵,兩個分支互相作用並對最終的結果同樣重要。

    【Comparison with Dropout Strategies】

      【Impact of BFE Layer Hyper-parameters】【Impact of Embedding Dimensions】擦除比率引數對效能的CMC分數和mAP的影響。(a)固定了寬度比率為1,高度比率變化對指標的影響。(b)在 CUHK03-Detect資料集上,特徵維度對指標的影響。高維度的特徵描述子具有更加的表達性但在測試時容易過擬合。

    【Average Pooling vs Max Pooling in Feature Erasing Branch】實驗表明,feature erasing branch中,在不同的高度擦除比下,最大池化對收斂的魯棒性更強、對效能提高影響更大。

    【Image Retrieval Experiments】在圖片檢索資料集上直接進行圖片檢索實驗,訓練圖片的操作:保持寬高比,經過填充和resize為256*256,再隨機裁剪為224*224。測試時,CUB200-2011, In-Shop Clothes資料集的圖片填充較短邊,然後縮放到256*256,其他資料集直接縮放到256*256,高度和寬度的擦除比都設定為0.5,

      【Adapt to Other Metric Learning Methods】採用其他測度損失函式的效能對比