論文閱讀:Deformable ConvNets v2

論文地址:http://arxiv.org/abs/1811.11168html

做者:pprpgit

時間:2019年5月11日github

0. 摘要

DCNv1引入了可變形卷積,能更好的適應目標的幾何變換。可是v1可視化結果顯示其感覺野對應位置超出了目標範圍,致使特徵不受圖像內容影響(理想狀況是全部的對應位置分佈在目標範圍之內)。網絡

爲了解決該問題:提出v2, 主要有性能

  1. 擴展可變形卷積,加強建模能力
  2. 提出了特徵模擬方案指導網絡培訓:feature mimicking scheme

結果:性能顯著提高,目標檢測和分割效果領先。學習

1. 簡介

Geometric variations due to scale, pose, viewpoint and part deformation present a major challenge in object recognition and detection.測試

目標檢測一個主要挑戰:尺度姿式視角部件變形引發的幾何變化ui

v1 引入兩個模塊:spa

  • Deformable Convolution : 可變形卷積
    • 經過相對普通卷積基礎上添加的偏移解決
  • Deformable RoI pooling : 可變形 RoI pooling
    • 在RoI pooling 中的bin學習偏移

爲了理解可變形卷積,進行了可視化操做:.net

  • samples for an activation unit tend to cluster around the object on which it lies.

  • 激活單元樣本點彙集在目標附近

  • 可是覆蓋範圍不夠精確,超出the area of interest

由此提出DCNv2, 具備加強建模的能力,可用於學習可變形卷積

with enhanced modeling power for learning deformable convolutions.

添加了兩種互補的模式:

  • 更普遍應用可變形卷積,在更多層上使用可變形卷積
  • 在原有基礎上不只加上偏移(offset),並且加上幅值(amplitude)的控制

爲了充分利用可變形卷積提取的信息,吸收知識蒸餾的手段,進行培訓。

  • 教師網絡:R-CNN, 針對裁剪內容進行分類的一個網絡,防止學習不在目標範圍之外的內容
  • 學生網絡:Faster R-CNN

2. 可變形卷積行爲分析

2.1 空間支持可視化

可視化三個內容:

  1. 有效感覺野 : 可視化感覺野
  2. 有效採樣位置: 對採樣點求梯度,而後可視化
  3. 偏差界限顯著性區域 : 參考顯著性分析理論,進行可視化

2.2 可變形網絡空間支持

Faster R-CNN中Conv1-Conv4使用在Head中的,Conv5使用在Classification network上

ResNet-50 Conv5裏邊的3$\times​$3的卷積層都使用可變形卷積替換。Aligned RoI pooling 由 Deformable RoI Pooling取代,當offset學習率設置爲0,那麼Deformable RoI Pooling就退化爲Aligned RoI Pooling。 ps: 這是V1中的操做。

從中觀察到:

  1. 常規卷積能夠必定程度上模擬幾何變化,經過網絡權重作到的
  2. 可變形卷積模擬幾何變化能力顯著提高,可是不夠精確。

3. 更多可變形卷積層

v2 中進行改進的部分主要有三點

3.1 使用更多的可變形卷積

在Conv3, Conv4, Conv5中全部的3$\times​$3的卷積層所有被替換掉。對於pascal voc簡單數據集,堆疊三層以上就會飽和。

3.2 在DCNv1基礎(添加offset)上添加幅值參數

回顧一下DCNv1:

R 是至關於3$\times$3的kernel, \(p_0\)是當前中心點,\(p_n\)枚舉每個點。

可見,在普通卷積基礎上,offset \(\Delta p_n​\)是主要改進點。

那DCNv2主要改了哪些地方?

在v1基礎上,添加了\(\Delta m_k\), 一個控制幅值變化的量。

ROI pooling是如何改進的?

先看Faster R-CNN中的ROI Pooling:

而後先看DCNv1的Deformable RoI Pooling

主要是添加了offset fields \(\Delta p_{ij}\) 來控制偏移部分。

DCNv2的Deformable RoI Pooling也是將幅值引入,以下圖:

相似的也添加了幅值變量,在訓練的過程當中進行學習。

3.3 R-CNN Feature Mimicking

採用了相似知識蒸餾的方法,用一個R-CNN分類網絡做爲teacher network 幫助Faster R-CNN更好收斂到目標區域內。

獲得ROI以後,在原圖中摳出這個ROI,resize到224x224,再送到一個RCNN中進行分類,這個RCNN只分類,不迴歸。而後,主網絡fc2的特徵去模仿RCNN fc2的特徵,實際上就是二者算一個餘弦類似度,1減去類似度做爲loss便可

代碼

GitHub幾個源碼

  1. <https://github.com/msracver/Deformable-ConvNets> 官方提供的版本,有DeepLab, Faster R-CNN, FPN, R-FCN等。源碼使用的是mxnet。

  2. https://github.com/open-mmlab/mmdetection 集成了可變形卷積,源碼使用的是pytorch。

  3. https://github.com/ChunhuanLin/deform_conv_pytorch 測試deform_conv_V1的準確度的demo.py,源碼使用的是pytorch。
  4. https://github.com/4uiiurz1/pytorch-deform-conv-v2一個簡單版本的DCNv2 ,源碼使用的是pytorch
  5. https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0 Pytorch 1.0 最新的完整的DCNv2

參考文獻

http://www.javashuo.com/article/p-xyoutjdt-dh.html

http://arxiv.org/abs/1811.11168

http://www.javashuo.com/article/p-rpgebowo-gc.html

https://www.jianshu.com/p/23264e17d860

相關文章
相關標籤/搜索