DeepReID (2014 CVPR)
DeepReID: Deep Filter Pairing Neural Network for Person Re-Identification
(香港中文大學Wei Li Rui Zhao Tong Xiao XiaogangWang?)
三個貢獻
1.提出了一個filter paring neural network(FPNN)
2.采用了dropout,data augmentation,data balancing,bootstrapping策略訓練網絡
3.建立了一個大型行人數據庫CUHK03,1360個行人,13164張圖片 ,同時提供手工裁剪和自動檢測的圖片
1.網絡結構
該結構用6層去處理Pre中的misalignment,cross-view photometric and geometric transform,occlusion and background clutter.
特征抽取
用一個卷積層和maxpooling完成特征提取。卷積核對個數K1:64,大小5*5,stride:1,
Him=64
Wim=32
K1=64
m1=5
經過卷積后:H0:60 W0:28
再經過3x3的max pooling H1:20 W1:9
經過卷積層,局部塊的響應被抽取成局部特征,每個局部塊被表示成K1 channel特征。一對過濾器表示相同的特征。
論文中沒有說明,我猜想這一對卷積層應當是共享參數的。
最大池化層作用:使得特征對局部misalignment有魯棒性。
塊匹配層
這部分是論文創新最大的地方。他們團隊原來在salience論文中用塊匹配進行person reid.這次又把這個思想用到DL中實現,真是膜拜啊。
把一張行人圖片水平分割成M(=20)個水平條紋,每個水平條紋有W1(=9)個塊。(就是卷積池化后的feature map大小20*9)
塊匹配在相同的條紋里面進行 。塊匹配層的輸出:K1MW1xW1塊錯位矩陣。
Sk(i,j)(i’,j’)=fkijgki’j’
也就是得到矩陣的值是匹配的兩個patch值的乘積。
不知道patch match layer是怎樣實現的
photometric transform
用maxout grouping把K1 個group分成T層。輸出是TMW1xW大小的錯位矩陣。
Modeling part displacement
卷積和最大池化層:以TMW1xW塊錯位矩陣為輸入,把它看成是T個通道的MW1xW1圖像。K2個m2xm2xT過濾器,產生了MW2xW2xK2個feature map.
T:16 m2:3 W2:3 K2:16
Modeling pose and viewpoint transform
卷積和最大池化層的輸出被看成是用一個特殊事件特征檢測到的部分錯位表示。這一層用N個通道的全連接層實現,可以看成是各種局部錯位表示的組合。其中,N=128。
Identity Recognition
Softmax layer
總結
根據論文描述,總結網絡結構如下表:
| conv1 | 64x32x3 | 60x28x64 | 5x5x3 | 64 | 1 | 0 |
| pool1(max) | 60x28x64 | 20x9x64 | 3x3(pool size) | 3 | ||
| match layer | 20x9x64 | 180x9x64 | ||||
| maxout1 | 180x9x64 | 180x9x16 | ||||
| conv2 | 180x9x16 | 180x9x16 | 3x3x16 | 16 | 1 | 1 |
| pool2(max) | 180x9x16 | 60x3x16 | 3x3(pool size) | 3 | ||
| FC1 | 60x3x16 | 1x1x128 | ||||
| FC2 | 1x1x128 | 1x1x2 | ||||
| softmaxloss |
2.訓練策略
Dropout
在第一個卷積池化層后,用dropout,使得訓練模型更穩定。
數據增廣
在[-0.05Him,0.05Him]x[-0.05Wim,0.05Wim]采樣5張相同大小的圖片。
數據平衡
開始訓練的時候選取所有的正樣本和相同數目的負樣本,在初始訓練后將會得到一個好的配置。隨著訓練過程不斷繼續,逐漸增大每個mini-batch中的負樣本,直到達到5:1.
Booststrapping
所謂的Bootstrapping法就是利用有限的樣本資料經由多次重復抽樣,重新建立起足以代表母體樣本分布之新樣本。
網絡穩定后,我們繼續選擇困難的負樣本進行訓練。困難負樣本指被當前網絡以高概率預測成匹配對的負樣本。在每一個epoch后對所有的負樣本都進行一次再預測是很費時的,我們只再預測在前一個epoch后的hard samples。因為這些樣本能被用于更新網絡,所有這些樣本的預測值在網絡更新后期待更大的改變。
每個負樣本x有一個分數sk(第k個epoch后的分數),擁有最小分數的樣本被選中用于網絡的再訓練。
初始:s0=1?P(x?is?a?matched?pair|?0)
如果這個樣本被選中,分數更新:
sk=1?p(x?is?a?matched?pair|?k)+sk?12
如沒有選中,分數更新:
sk=λsk?1
CUHK3數據庫
1.除了提供手工裁剪的行人圖像,也提供了檢測算法自動檢測到的圖像。這提供了更現實的場景,能發現現存數據庫中很難發現的問題。錯位排列、遮擋和身體的部分缺失在數據庫中很常見。不精確的檢測使得幾何轉換更復雜。另外,還提供了圖像的原始幀。
2.取自多個交叉視角對。并且攝像機是在一個開放環境,行人可以在任意方向走動。
3.圖像取自幾個月的視頻序列。因此,即使一個攝像機,由季節、太陽方向、影子分布也會引起光照變化。而且攝像機設置都不相同,也會引起光學轉換。
實驗
在CUHK03上進行實驗,取得了較好的效果。在較小的數據庫CUHK01上實驗,該數據庫一共971人,每人兩張圖片。100個人被用于測試,其他871人被用于訓練和驗證,實驗效果并不優于KISSME 。
這個方法適合大數據庫,對小數據集并不十分有效
總結
以上是生活随笔為你收集整理的DeepReID (2014 CVPR)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OverFeat: Integrated
- 下一篇: Deep Metric Learning