轉載請注明出處:https://www.cnblogs.com/White-xzx/
原文地址:https://arxiv.org/abs/1811.07130
如有不准確或錯誤的地方,歡迎交流~
【作者的motivation】
https://zhuanlan.zhihu.com/p/53241545
當前的行人重識別方法,如PCB, MGN,為了使網絡學習到更精密有區分度的特征,一般將最后得到的feature map進行水平切分然后分別求loss,簡單做水平切分可能會造成一塊完整的feature,如背包,被丟失,失去信息。所以他們都做了相應的改進,如PCB加上了RPP,所以PCB之后加上了RPP把沒有切分好的feature重新划分,需要進行兩階段的訓練。而MGN的則是用了一個比較復雜包含多種切分的方法的網路,切兩次,切三次,最后把這些feature融合起來。
切分feature map的本質是為了不讓網絡太關注於那些太顯而易見的全局特征。因為行人重識別是一個zero shot learning的問題,就是說訓練中的人和測試中的人是不同的人,而且主流的行人數據集都較小,容易過擬合, 導致這些在訓練的時候表現很好的全局特征在測試的時候反而達不到最好的效果。那么除了這樣水平切分特征之外還有什么方法能夠達到同樣的效果呢?我們提出了一種新的方法叫做Batch Feature Erasing。
【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】作者在實驗中,用BFE方法與各種Dropout技術進行了對比。

【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】采用其他測度損失函數的性能對比

