可變形卷積系列(一) 打破常規,MSRA提出DCNv1 | ICCV 2017 Oral

論文提出可變形卷積幫助模型高效地學習幾何變換能力,能夠簡單地應用到分類模型和檢測模型中,思想新穎,效果顯著,十分值得學習

來源:曉飛的算法工程筆記 公眾號

論文: Deformable Convolutional Networks

Introduction


  常規卷積操作的感受域是固定的,但不同大小的目標應該需要不同大小的感受域,甚至是不規則的感受域。為此,論文提出兩個模塊來使 CNN 具備幾何變換的建模能力:

  • deformable convolution,在常規的卷積中增加 2D 偏移值,可以將採樣區域自由變形,如圖 1(d)。偏移值是可學習的,通過額外的卷積層獲得,取決於輸入的特徵。
  • deformable RoI pooling,為 RoI pooling 中的每個 bin 添加一個偏移值做整體的移動,能夠自適應不同形狀目標的局部定位。同樣,偏移值是可學習的,取決於輸入特徵和 RoI 區域。

Deformable Convolutional Networks


Deformable Convolution

  2D 卷積包含兩個步驟,首先採樣輸入特徵的規則區域\mathcal{R},然後求和採樣值與權重w間的乘積,區域\mathcal{R}由卷積核大小和膨脹(dilation)決定,如上為3\times 3、膨脹為 1 的卷積區域。

  輸出特徵圖y中的點p_0的值計算如公式 1,p_n\mathcal{R}中所有採樣點。

  在可變性卷積中,使用偏移\{\Delta p_n | n=1,…,N \}將區域\mathcal{R}的每個點進行位移,公式 1 轉換成了公式 2

  由於\Delta p通常為小數,使用公式 3 的雙線性插值計算偏移位置的值,G(\cdot, \cdot)為雙線性插值權重,q為特徵圖x上所有的點,g(a, b)=max(0, 1-|a-b|)

  如圖 2 所示,偏移特徵圖通過旁路的卷積層獲得,N為主幹的卷積核大小,對輸入特徵進行變形卷積時取偏移特徵圖上對應點的偏移值向量組合成完整的 offsets。訓練時,同時學習兩條路徑,對於偏移值,通過公式 3 進行梯度的回傳。

Deformable RoI Pooling

  • RoI Pooling

  對於輸入特徵圖x和 RoI 區域w\times h,左上角坐標為p_0,RoI pooling 將區域分為k\times k個 bin,輸出大小k\times k的特徵圖

  對於序號為(i,j)的 bin,輸出的計算如公式 5,n_{i,j}為 bin 中的像素總數,範圍為\lfloor i \frac{w}{k} \rfloor \le p_x < \lceil (i+1) \frac{w}{k} \rceil\lfloor j \frac{h}{k} \rfloor \le p_y < \lceil (j+1) \frac{h}{k} \rceil

  類似於公式 2,可變形 RoI pooling 採用偏移值\{ \Delta p_{ij} | 0 \le i,j < k \}對 bin 進行整體移動,輸出計算如公式 6,由於\Delta p_{ij}是小數,同樣需要公式 3 和公式 4 進行雙線性插值計算

  可變形 RoI pooling 的邏輯如圖 3,偏移值通過旁路卷積層獲得,旁路的輸入為 RoI 區域池化後的特徵,接一個 fc 層輸出歸一化的偏移值\Delta \hat{p}_{ij},與 RoI 的尺寸無關,然後根據 RoI 區域大小轉換為偏移值\Delta p_{ij}=\gamma \cdot \Delta \hat{p}_{ij} \circ (w, h)\gamma=0.01為預設的幅值,偏移值在 RoI 區域內所有 channel 共用,取對應的位置。

  • Position-Sensitive (PS) RoI Pooling

  可變形 PS RoI pooling 遵循 RFCN 的全卷積理念,先用一個卷積層獲得 channel 為2k^2(C+1)的偏移特徵圖,單圖大小與主幹的 score map 一樣,然後通過 PS RoI pooling 得到歸一化的偏移值\Delta \hat{p}_{ij},然後根據 RoI 大小轉換為最終的偏移值\Delta p_{ij}。在實際實現中,一般會在 PS RoI Pooling 後接一個輸出為2N全連接層,與可變形 RoI pooling 類似。

Deformable Convolution/RoI Pooling Backpropagation

  公式 2 可變形卷積的偏移值\Delta p_n的梯度就算如公式 7,\frac{\partial G(q,p_0+p_n+\Delta p_n)}{\partial \Delta p_n}由公式 4 計算,\Delta o_n是 2D 的,\partial \Delta p_n實際表示\partial \Delta p_n^x\partial \Delta p_n^y

  可變形 RoI pooling 的偏移值計算如公式 8,而歸一化偏移值\Delta \hat{p}_{ij}則可以通過計算\Delta p_{ij}=\gamma \cdot \Delta \hat{p}_{ij} \circ (w, h)的導數獲得。

Understanding Deformable ConvNets


  如圖 5 所示,可變形卷積將原本固定的感受域根據目標自適應地調整,隨着可變形卷積地疊加,高維像素點對應的感受域將會有很大的差異。

  圖 6 為圖 5 中高層像素對應的低維像素的對應圖,可以看到高層像素的感受域大都跟物體的位置相關。

  圖 7 為 RoI 區域對應的 bin 的位置,可以看到 bin 移動到了與物體更相關的位置。

Experiments


Ablation Study

  • Deformable Convolution

  表 1 測試了在不同的位置加入可變形卷積的效果,不同的網絡的效果不一致,整體都是可以提升的。而表 2 則是統計了不同大小物體的平均偏移值,偏移值跟物體大小相關,而背景的偏移介於中大物體之間,說明背景需要更大的感受域進行識別。表 3 與空洞卷積進行了對比,更大的膨脹值能有更好的性能,說明原來的感受域太小了,而不同的任務最優的膨脹值不太一樣,說明可變形卷積是有存在意義的。

  • Deformable RoI Pooling

  如表 3,可變形 RoI Pooling 搭配可變形卷積能夠達到最優的模型。

  • Model Complexity and Runtime

  可變形卷積只增加了少量參數量和計算耗時,說明可變形卷積是通過提升模型的幾何變化能力來提高性能,而不是堆參數。

Object Detection on COCO

Conclusion


  論文提出可變形卷積幫助模型高效地學習幾何變換能力,能夠簡單地應用到分類模型和檢測模型中,思想新穎,效果顯著,十分值得學習



如果本文對你有幫助,麻煩點個贊或在看唄 ~
更多內容請關注 微信公眾號【曉飛的算法工程筆記】

work-life balance.