論文閱讀——Deformable Convolutional Networks

黃小米吖發表於2020-12-25

Deformable Convolutional Networks
可變形卷積網路

from MSRA
Paper
Code

Abstract

受限於卷積操作本身具有固定的幾何結構,卷積神經網路僅能建模幾何變換。本文則引入了兩個新的模組來增強CNN的模型變換能力,分別是可變形卷積(deformable pooling)和可變形RoI池化(deformable RoI pooling),通過增加偏移量來增加空間取樣位置,bong從目標任務中學習這一偏移量無需額外的監督資訊。這種模組可以很方便的取代現在CNN中的現有模組,並且可以通過反向傳播進行端到端的訓練。進行了廣泛的實驗驗證了可變形卷積網路的有效性,並且首次驗證了在深度神經網路中學習密集的空間變換對於複雜的視覺任務(如目標檢測、語義分割)是十分有效的。

Section I Introduction

視覺識別任務的一大挑戰就是如何適應物體、姿態、視覺以及一些部位的幾何變形。主要由兩種方法:一是構建具有足夠多樣性的資料集,這就需要藉助資料增強手段擴充訓練樣本,比如通過仿射變換。二就是使用一些幾何不變的特徵或演算法,如SIFT,sliding window等。



但上述方法有兩大缺陷:一是幾何變換都是固定模式的,無法產生新的模式,抑制了應對未知幾何變換的泛化性,對未知情況難以正確建模。二是一些人為設計的特徵或演算法無法處理一些複雜的變換,即使它們是已知的。



卷積神經網路雖然在許多視覺識別任務上大放異彩但仍然存在以上侷限,受限於模型規模和未知的變換。原因在於卷積模組基於固定的幾何結構,卷積單元在固定的位置取樣輸入特徵;池化操作以固定的比例降低空間解析度;通過RoI池化將RoI區域以固定比例分離到不同的bin中。這些都缺少應對幾何變換的內部機制,這就容易產生問題:每一層啟用單元的感受野大小是一樣大的;而對於高層次語義特徵藉助空間位置來編碼顯然是不可取的;幾乎所有的物體檢測演算法都依賴於根據特徵取得bounding box,顯然不是最優的。




因此本文提出應對影像幾何變換的兩個模組:deformable convolution和deformable RoI pooling。




deformable convolution在標準卷積操作的常規網格取樣中加入了2D偏移,這樣可使取樣網格的形狀自由變換。這些偏移基於前面的特徵對映進行學習,因此具體的變形取決於輸入特徵的區域性、密集程度,自適應的進行調整。





deformable RoI pooling會對前一層RoI pooling每一個bin的位置新增一個偏移量,偏移量依舊是基於前層的特徵對映和RoI學習的,會根據物體的形狀自適應的進行定位。
這兩個模組均是輕量級的,偏移量的學習金輝增加少量的引數和計算成本,但可以很方便的替代傳統卷積的對應部分並進行反向傳播,基於此搭建的網路叫做可變形卷積網路(deformable Convnets)。
本文的方法與空間變換網路(spatial transform networks)和deformable part models類似,它們都有內部變形引數,引數是從資料中學習的。本文的獨特之處在於使用一種簡單高效的端到端的方法處理密集的空間變換。下面來介紹一下可變形卷積的優越性。

Section II Deformable Convolutional Networks

卷積神經網路中的特徵圖和卷積操作都是三維的,而本文的可變卷積和RoIpooling都是在二維空間進行的變換,在通道維度上保持不變。





在這裡插入圖片描述

Fig1展示了常規卷積和可變卷積的取樣方式(3x3大小),(a)為常規卷積,(b)©(d)為可變卷積,與常規卷積相比,多了一個藍色代表的偏移量。而(c)(d)則是(b)的特例,表明可變卷積可以進行不同程度的比例縮放,分別代表著縮放和旋轉。
在這裡插入圖片描述

Part A Deformable Convolution

二維卷積包含兩個步驟:(1)對輸入的特徵圖以一定網格大小取樣;(2)計算取樣值的加權和。
取樣的網格R決定了感受野的大小和膨脹的多少,輸出特徵圖的每一點的計算可以表述為:
在這裡插入圖片描述

而在可變卷積中取樣的網格形狀多包涵了偏移量,也就是說每一點的輸出是基於不規則的偏移量作用後的結果。
每個畫素點pn的權重為w,po代表的是輸出的每個畫素點,而偏移量△pn就是需要學習的偏移量,
在這裡插入圖片描述

對應於FIG2中的offset field,因此offset field的大小和輸入特徵圖的尺寸是一樣的,而卷積操作在offset field上進行就得到了偏移的效果。
而offset field的通道數為2N代表著N個二維的偏移量。在訓練過程中offset field的引數會和卷積和引數同時學習。

Part B Deformable RoI Pooling
在目標檢測做region proposal時都會進行RoI pooling。作用就是將任意大小的區域對映到同樣大小。
RoI Pooling:會將任意大小的RoI分成kxk個bin中。
在這裡插入圖片描述

在這裡插入圖片描述
nij就是每一塊bin中包含的畫素綜述,而Deformable RoI pooling依舊是對每一個輸出畫素增加一個偏移量△pij。Fig3展示了具體的操作過程;首先通過RoI pooling獲得池化後的特徵圖,而後通過一個fc生成normalized offset後再計算每一個bin對應的offset:
在這裡插入圖片描述
在這裡插入圖片描述

其中gamma設定為0.1。而使用偏移歸一化是十分有必要的,這兩確保offset的學習與RoISize無關。
Position-Sensitive(PS)
在這裡插入圖片描述

RoI Pooling
位置敏感的RoI Pooling
它和RoI Pooling完全不同。經過一層卷積後,所有的輸入featuremap,對應每一類物體類別都會變成一個k2的score map,然後在這些score map上進行pooling。相應變成deformable PS RoI Pooling進行的變化也只是把輸入畫素x替換為xij,但是這個引數量學習起來就和前面不一樣了。
Part C Defoemable ConvNets
Defoemable Convolution和Deformable RoI pooling和它們對應的常規版本的輸入輸出是同樣的,所以可以非常方便的作為常規版本的替代。在訓練時可變卷積中增加的卷積層和FC層的權重都初始化為0,lr分別為1和0,1(0.1用於目標檢測)。

為了可以將本文的deformable ConvNet與目前的SOTA作對比,本文將網路分成兩部分搭建,第一部分搭建一個深層次的全卷積神經網路用來產生特徵圖;隨後搭建淺層次的任務網路根據前面的特徵圖產生結果。
Deformable Convolution for Feature Extraction
本文用於特徵提取的網路有:ResNet1-1和改動過後的Inception-ResNet,都是在ImageNet預訓練後的。
因為原始的Inception-ResNet網路是用來影像識別的,會有特徵失配的問題,因此對它進行了修改-Alogned-Inception-ResNet.


兩個模型都包括卷積模組、均值池化和1000類的fc層用於ImageNet分類,本文中移除了均值池化和fc層,而是通過1x1conv將輸出壓縮到1024.;最後一個卷積模組的有效步長從32pixel降到16pixel這樣可以有效提升featuremap的解析度。然後本文會有選擇性的將最後幾層卷積層替換為deformable convolution,並且實驗結果表明替換3層權衡下來效果最好。

Segmentation and Detection Networks
任務相關網路需要基於特徵提取網路提取到的feature map進行分割或者目標檢測。
C代表分類的類別
DeepLab是一個用於語義分割的網路,通過對特徵圖進行1X1卷積獲得(C+1)張分割圖譜代表每一個畫素的分類得分,隨後經過softmax獲得每一個畫素點的類別概率。


Category-Aware RPN和RPN網路沒什麼不同,除了最後的2分類卷積分類器替換成了(C+1)類的分類器。可以看做是SSD的一種簡化版本。


Faster R-CNN是當前目標檢測的SOTA。在前人的工作中在conv4和conv5之間插入了RoI pooling,雖然達到了很好的檢測精度但也增加了每一個RoI的計算成本,因為每一個RoI要計算10層。因此本文采用了一種簡化版本,僅在最後進行RoIpooling。前面是兩層1024個維度的fc層,隨後進行bbox迴歸和最後的分類。雖然精度有所下降但仍然可以作為baseline。


本文可也以選擇性的將RoI pooling替換為deformable pooling。
檢測任務還用了另一個網路-R-FCN,也可以將其中的RoI pooling進行替換。

Section III Understanding Deformable ConvNets

本文的出發點在於藉助學習偏移量增強卷積和RoI pooling的空間取樣資訊。當可變卷積堆疊使用,這種複合變形產生的影響是十分深遠的。


在這裡插入圖片描述

Fig 5展示了常規卷積和可變卷積的感受野的對比。


(a)是常規卷積,(b)是可變卷積。


最上面是兩個不同尺度不同形狀目標的啟用點;第二層則是對應的3x3感受野,可以看到兩者啟用神經元就已經不同了;而最後一層則顯示出啟用了不同的兩組神經元。而在常規卷積中感受野和取樣的位置都是固定不變的,而在可變卷積中會根據物體的尺度、形狀進行自適應的變換。


在這裡插入圖片描述

Fig 6進一步展示了一些樣本基於三種不同層次可變卷積上的啟用效果;可變RoI pooling的效果也是類似的,可以看到常規的RoI pooling的那種規律性不再存在,而一部分RoI偏離了bin,並且移動到了物體附近區域;可變RoI尤其對非剛性物件的定位能力增強了。


在這裡插入圖片描述

Part A In context of Related Works



與其他工作的對比




Spatial Transform Networks(STN)是第一個藉助深度學習框架從資料中學習空間變換的網路。它通過全域性的引數變換(如仿射變換)來扭曲特徵對映。但是這一扭曲引數學習起來十分困難,而且僅在尺度較小的分類任務上效果較好。而本文對偏移量的學習可以認為是STN中超級輕量級的空間變換但是並沒有通過一個全域性的引數變換來扭曲特徵,而是對特徵圖的區域性進行密集取樣,而為了產生新的特徵圖譜還有一步來求加權和計算,這也是STN沒有的。
而且可變卷積可以非常方便的集合進CNN框架,訓練也很簡單,並且對於一些需要密集分類/分割的視覺任務非常有效,這是STN所不具備的。




Active convolution:在Active convolution中也使用偏離來增強取樣的位置資訊,從而有效提升了分類任務的效能。
和本文可變卷積的區別在於Active convolution的泛化性和自適應性交叉,因為在不同位置共享offset,而且學習到的offset是靜態的。而本文中使用的是動態模型,還適用於做密集預測,比如分割和目標檢測。





RoI pooling
中的空間調控:空間金字塔池化在不同尺度上手動進行池化,也是基於深度學習進行目標檢測的主流方法。但是對池化空間佈局的研究很少。比如[28]的工作是從一個大的過完備的集合中學習池化區域的子集,但是整個大的集合是手工設計的,學習也不是端到端的。因此Deformable RoI pooling是第一個在CNN中進行端到端學習池化區域的工作,雖然現在區域的規模還都一樣大小,但擴充套件到多個大小的空間金字塔池化也是可行的。





Transformation invariant features and their learning
在變換不變形特徵的學習上已經開展了諸多研究,最著名的有SIFT和ORB。有的工作聚焦於不同變換的不變形或等價表示,比如(scattering networks,convolutional jungles),有的工作聚焦於如何特定的變換不變形特徵的學習,比如非對稱性、scale尺度和旋轉。
但是他們都是基於先驗知識,比如已經研究過的SIFT,或者是CNN已經學習過的一些引數,是無法應對沒有見過的變形的。而本文的變換模組對各種變形都是可泛化的,是根據特定的任務來學習變換不變形特徵的。





Dynamic Filter:與deformable convolution相似,也會基於輸出的特徵進行調整,但是區別在於僅學習filter的權重,而不是像本文學習取樣的地點。Dynamic Filter在視訊識別中進行了測試。







Combination of low level filters
:高斯濾波及其導數廣泛用於提取影像低階特徵,比如邊緣、角、,以這種型別的filter為基進行線性組合可以形成新的filter提取其他不同形狀不同尺度的特徵。





Effective Receptive Field:
ERF的主要發現是感受野中的每個畫素點對輸出的貢獻是不一樣等貢獻的,實際有效的感受野僅佔很小一部分,服從高斯分佈。雖然會隨著卷積層數目理論上感受野的範圍線性增加,但是實際上是卷積層數的平方根,也就是增加的比率比預想的要低。
基於這一發現即使最頂層的單元對應的感受野也不會很大,這也解釋了為什麼在一些視覺任務中廣泛使用空洞卷積,也體現出自適應的學習感受野是多麼重要。







Atrous Convolution
:空洞卷積與常規卷積的區別在於其步長>1,從而有效增加了感受野的規模還不會引起引數量的增加,已經被廣泛的用於語義分割、目標檢測和影像分類等任務。而本文的可變卷積正是空洞卷積的一般形式(參見Fig1©)。






Deformable Part Models:本文的RoI Pooling與DPM很類似,因為都是通過學習檢測物體的形狀來提升分類精度,但是本文的Deformable RoI pooling更加簡單因為沒有考慮空間關係。而DPM層次不深,學習空間變換的能力有限,並且訓練不是端到端的;而Deformable RoI pooling一方面可以端到端學習,另一方面可以通過堆疊module的形式提升模型的學習能力。







**DeepID-Net:**在DeepID-Net中引入了一種變形受限的池化層,也一定程度考慮了目標變形的情況,與Deformable RoI pooling類似但是實現起來更加複雜,並且是基於RCNN進行的,暫時還不知道應該如何端到端的遷移到其他SO他的目標檢測任務中。







上述工作都與本文工作有一定程度的相關,比如結合使用不同尺度的多個filter最終就是本文deformable filter的效果。但是可變卷積學習的是取樣的位置而不是filter的權重。

Section IV Experiments

Part A實驗準備







語義分割:








資料集 PASCAL VOC,CityScapes








PASCAL VOC:training:test=10582:1449








CityScapes:training:test=2975:500








評價指標:mIoU








目標檢測:








資料集:
PASCAL VOC
 COCO
在目標檢測中,根據標註框資訊和filter中心在哪裡將可變卷積分為四類:small medium,large,background.
在這裡插入圖片描述

Table II展示了effective dilation的具體資料,可以簡潔明瞭的看出:

(1)可變卷積感受野的大小很明顯和識別物體的代銷有關,這也說明是根據影像的內容來學習變形資訊的;
(2)背景區域的filter size介於medium和large之間說明相對較大範圍的感受野對於背景區域的識別很有必要。
在這裡插入圖片描述

隨後還測試了不同膨脹率的空洞卷積的效果,結果參見Table III.可以得出以下結論:


(1)使用更大的膨脹係數精度越高說明原始網路的感受野都太小了;


(2)不同的任務對應最佳的膨脹率是不同的;


(3)可變卷積取得最佳的精確度。
Part B 消融實驗

Deformable convolution
在這裡插入圖片描述

Table I展示了基於ResNet-101使用可變卷積進行特徵提取的效果,可以看到當更多層使用可變卷積準確率是逐漸提升的,尤其是對於DeepLab和class-aware RPN.後續試驗中使用3層可變卷積。
根據觀察結果也顯示出學習到的偏移量是自適應的(參考Fig5 Fig6).


為了能夠更好的理解可變卷積的機制,本文定義了一個矩陣-有效膨脹(effective dilation)來衡量可變卷積的有效性。這是所有相鄰filter之間距離的平均值,可以粗略評估感受野的大小。
DeformableRoI pooling:

Table III也展示了DeformableRoI pooling的效果。


Table 4還展示了模型的複雜度及執行時間,可以看到使用可變卷積僅僅增加了一小部分的模型引數和計算成本,但卻對效能有很大提升,得益於其對幾何變形的建模能力。


在這裡插入圖片描述Table 5展示了基於COCO資料集做目標檢測的結果。


在這裡插入圖片描述

Section V Conclusion

本文提出了可變卷積,是一種簡單高效的,用於端到端學習模型密集的空間變換的解決方案。首次闡明瞭基於可變卷積可以有效學習一些複雜視覺任務中的空間變換資訊,比如用於目標檢測和語義分割。

相關文章