ECCV-2018
文章目錄
1 Background and Motivation
目前 feature pyramids 設計的結構仍 inefficient to integrate the semantic information over different scales.
作者爭對 SSD 和 FPN 結構的缺點,在 SSD 的基礎上,設計了新的 feature pyramids 結構,使得 object detection 模型具有更強的特徵表達能力!
SSD 是最早的用 feature pyramids 來做 object detection 的方法之一,
圖片來自 SSD詳解
缺點是 SSD 用 shallow-layer 的神經網絡來檢測小目標,但是低層的網絡沒有高級語義信息,小目標檢測的效果不理想
FPN 的 top-down 特徵融合是線性的,too simple to capture highly-nonlinear patterns for more complicate and practical cases. Several
2 Advantages / Contributions
- 提出了 global-local reconfigurations 的 feature pyramids,enhance multi-scale representations
- feature pyramids 中 all scales are performed simultaneously,比 layer-by-layer transformation 更efficient
3 Method
1)ConvNet Feature Hierarchy
目標檢測的 backbone 特徵集合可以表示成如下形式
- :表示 backbone 的總層數
- :表示 層的輸出
在 SSD 模型中,預測特徵圖集合可以表示爲
eg: 在 VGG 中爲 23
是高分辨率,limited semantic information,沒有 reuse deeper and semantic information,不利於小目標的檢測!
2)Lateral Connection
在 FPN 結構中,特徵進行了如下的融合
和 是 Conv(沒有 activation function) 和 up-sampling(雙線性插值),可以理解爲線性操作! 一般化的表示,FPN 對特徵做了如下形式的 polynomial expansions:
新生成的用來預測的特徵圖集合可以表示爲
這種 representation power,在複雜的目標檢測任務上是不夠的
3.1 Deep Feature Reconfiguration
首先是要從線性變成非線性
其中非線性函數 表示爲 a global attention 和 a local reconfiguration 操作!
3.1.1 Global Attention for Feature Hierarchy
用的 SENet 的方法,channel attention
SENet 的介紹可以參考 【SENet】《Squeeze-and-Excitation Networks》
第一步壓縮分辨率,把特徵圖保留爲一個只有通道數的向量
- 表示 行 列, channel
第二步接兩個 fully connection
這裏有點錯誤,應該是 和 , 是 relu, 的 sigmoid
把 channel dimension 的向量,壓縮 倍,
第三步,把學習到的通道權重,與原來的特徵圖做 channel-wise multiplication
最後用來預測的特徵圖集合表示爲
這裏把下標 去掉更好,加個下標多此一舉
3.1.2 Local Reconfiguration
resnet 的結構!把 channel attention 的輸出接一個 bottleneck,配合 1x1 conv 的 shortcut 分支
用殘差的好處是,it is easier to optimize the residual mapping than to optimize the desired underlying mapping.
和 resnet 的區別是,這裏是在 feature hierarchy 上進行,而 resnet 是在 one level of convolutional output
4 Experiments
4.1 Datasets
- PASCAL VOC 2007
- PASCAL VOC 2012
- MS COCO datasets
4.2 PASCAL VOC 2007
VOC 07+12 trainval sets, VOC 07 test set
re 表示自己復現,lateral 就是 FPN
速度比較是在 batch size 1 on a machine with NVIDIA Titan X, CUDA 8.0 and cuDNN v5 條件下進行的!
比 FPN 效果好一點點
再看看和其它方法的比較
紅線是召回率隨着檢測數量增加殘生的 變化!
橫座標是檢測的數量(要乘以一個係數),縱座標是 recall 的百分比,可以看出,作者的方法在這三類中,recall 高於 90%
4.3 PASCAL VOC 2012
VOC2012 trainval for training and VOC2012 test for testing
4.4 MS COCO
80 k train + 40 k val 來訓練,20 k test-dev 來測試(一般是 80+35 train,5 val,20 test)
比別人多用了 5k 來train 耶,比較公平嗎?
5 Conclusion(own)
- 把 SENet 和 ResNet 加到了 FPN 的結構中,創新點沒有太新穎,在 COCO 上比效果的時候,能不能保證訓練集是一樣的呢?比別人多 5k 來比?在 COCO 上應該也比較下 SSD+FPN 和 SSD+ours 的效果,會更有說服力(voc 提了不到一個點)
我們來分析下實驗的細節
一句話,一個公式,一個註釋可以看出,原來的特徵是如何融合成一個 tensor 的,也即通過 adaptive sampling 成固定大小的特徵圖,然後 concatenate
感覺是 通過 函數後,然後插值成不同分辨率成爲新的特徵圖, 只作用了一次,而不是 4 次(如果有理解錯誤的地方,歡迎指正)