轉載請註明出處: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分數,大幅超過了現有的方法。spa
【Introduction】3d
行人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-20十一、 CARS19六、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】採用其餘測度損失函數的性能對比