重磅乾貨,第一時間送達
本文轉自:AI演算法修煉營
可形變卷積
使用可變形卷積,可以提升Faster R-CNN和R-FCN在物體檢測和分割上的效能。只要增加很少的計算量,就可以得到效能的提升。
(a) Conventional Convolution, (b) Deformable Convolution, (c) Special Case of Deformable Convolution with Scaling, (d) Special Case of Deformable Convolution with Rotation
傳統/常規卷積基於定義的濾波器大小,在輸入影象或一組輸入特徵圖的預定義矩形網格上操作
。該網格的大小可以是3×3和5×5等。然而,我們想要檢測和分類的物件可能會在影象中變形或被遮擋。
在DCN中
,網格是可變形的,因為
每個網格點都可以透過一個可學習的偏移量移動
。
卷積作用於這些移動的網格點
上,因此稱為可變形卷積,類似於可變形RoI池化的情況。透過使用這兩個新模組,DCN提高了DeepLab、Faster R-CNN、R-FCN、和FPN等的準確率。
最後,MSRA使用
DCN+FPN+Aligned Xception
在COCO Detection Challenge
中獲得
第二名,Segmentation Challenge
中獲得
第三名。發表於
2017 ICCV
,引用次數超過
200次
。
1。 可變形卷積
可變形卷積
規則的卷積是在一個規則的網格R上操作的。
對R進行可變形卷積運算,但每個點都增加一個可學習的偏移∆pn。
卷積生成2N個特徵圖,對應N個2D個偏移量∆pn(每個偏移量對應有x-方向和y-方向)。
標準卷積(左), 可變形卷積(右)
如上所示,可變形卷積將根據輸入影象或特徵圖在不同位置為卷積選擇值。
與Atrous convolution
相比,Atrous convolution在卷積過程中具有較大但固定的膨脹值。(Atrous convolution也稱為dilated convolution或hole演算法。
與Spatial Transformer Network (STN)
比較:STN對輸入影象或特徵圖進行變換,而可變形卷積可以被視為一個非常輕量級的STN。
2。 Deformable RoI Pooling
Deformable RoI Pooling
常規RoI Pooling將任意大小的輸入矩形區域轉換為固定大小的特徵。
在Deformable RoI Pooling中,
首先,在top path
中,我們仍然需要
常規的RoI Pooling
來生成池化的feature map。
然後,
使用一個全連線(fc)層生成歸一化的偏移
∆p̂ij,
然後轉化為偏移∆pij
(方程在右下角)其中γ= 0。1。
偏移量歸一化是必要的,使偏移量的學習不受RoI大小的影響。
最後,
在底部路徑,
我們執行
deformable RoI pooling。輸出特徵圖是基於具有增強偏移量的區域進行池化的
3。 Deformable Positive-Sensitive (PS) RoI Pooling
Deformable Positive-Sensitive (PS) RoI Pooling (在這裡顏色很重要)
對於原始的R-FCN中的Positive-Sensitive (PS) RoI pooling,所有的輸入特徵圖首先轉換為每個類別k²個得分圖(假設背景類總共C + 1個類別)(最好是讀一下R-FCN,理解一下最初的PS RoI pooling)
在deformable PS RoI pooling中,首先,在頂部路徑上,和原始的相似, 卷積用於生成2k²(C + 1)得分圖。
這意味著,對於每個類別,有k²個特性圖,這些特徵圖代表了我們要學習的物體的偏移量。
偏移量(頂部路徑)的原始的PS RoI Pooling是使用圖中相同的區域和相同的顏色來池化的。我們在這裡得到偏移量。
最後,
在底部路徑
中,我們執行
deformable PS RoI pooling
來池化偏移量增強的特徵圖。
可形變卷積的進階:RepPoints
論文地址:https://arxiv.org/abs/1904.11490
目前,Bounding Box(即包含物體的一個緊緻矩形框)幾乎主導了計算機視覺中對於物體的表示,其廣泛流行得益於它簡便且方便物體特徵提取的特點,但另一方面也限制了對物體更精細的定位和特徵提取。
北大、清華和微軟亞研的研究者們提出了一種新的視覺物體表示方法,稱作 RepPoints(representative points,代表性點集),這種方法能更精細地描述物體的幾何位置和進行影象特徵的提取,同時也兼有簡便和方便特徵提取的特點。利用這種表示,很自然能得到一個 anchor-free 的物體檢測框架,取得了和目前 anchor-based 方法可比的效能。
動機
在目標檢測任務中,邊界框描述了目標檢測器各階段的目標位置。
雖然邊界框便於計算,但它們僅提供目標的粗略定位,並不完全擬合目標的形狀和姿態。因此,從邊界框的規則單元格中提取的特徵可能會受到背景內容或前景區域的無效資訊的嚴重影響。這可能導致特徵質量降低,從而降低了目標檢測的分類效能。
本文提出一種新的表示方法,稱為 RepPoints,它提供了更細粒度的定位和更方便的分類。
如圖所示,RepPoints 是一組點,透過學習自適應地將自己置於目標之上,該方式限定了目標的空間範圍,並且表示具有重要語義資訊的區域性區域。
RepPoints 的訓練由目標定位和識別共同驅動的,因此,RepPoints 與 ground-truth 的邊界框緊密相關,並引導檢測器正確地分類目標。
Bounding Box Representation
邊界框是一個4維表示,編碼目標的空間位置,即,表示中心點,表示寬度和高度。
由於其使用簡單方便,現代目標檢測器嚴重依賴於邊界框來表示檢測 pipeline 中各個階段的物件。
效能最優的目標檢測器通常遵循一個 multi-stage 的識別正規化,其中目標定位是逐步細化的。其中,目標表示的角色如下:
RepPoints
如前所述,4維邊界框是目標位置的一個粗略表示。邊界框表示只考慮目標的矩形空間範圍,不考慮形狀、姿態和語義上重要的區域性區域的位置,這些可用於更好的定位和更好的目標特徵提取。
為了克服上述限制,RepPoints 轉而對一組自適應樣本點進行建模:
其中為表示中使用的樣本點的總數。在這項工作中,預設設定為 9。
Learning RepPoints
RepPoints 的學習是由目標定位損失和目標識別損失共同驅動的。為了計算目標定位損失,我們首先用一個轉換函式將 RepPoints 轉換為偽框 (pseudo box)。然後,計算轉換後的偽框與 ground truth 邊界框之間的差異。
RPDet
作者設計了一種不使用 anchor 的物件檢測器,它利用 RepPoints 代替邊界框作為目標的基本表示。
目標表示的演化過程如下:
RepPoints Detector (RPDet) 由兩個基於可變形卷積的識別階段構成,如圖所示。
可變形卷積與 RepPoints 很好地結合在一起,因為它的卷積是在一組不規則分佈的取樣點上計算的,另外,它的分類可以指導訓練這些點的定位。
上圖的第一個偏移量透過對角點監督學習得到,第二個偏移量在前一個偏移量的基礎上透過分類監督學習得到。
從另一個角度來理解RepPoints:
可形變卷積透過最後的分類分支和迴歸分支的監督,自適應的關注到合適的特徵位置,提取更好的特徵,但是我一直沒想明白的是可形變卷積真的能夠關注到合適的特徵位置嗎,可形變卷積的偏移量學習是非常自由的,可能會跑到遠離目標的位置,那麼這些特徵真的是有幫助的嗎,這些問題一直困擾著我,我覺得可形變卷積的中間過程太模糊了,太不直接了,是難以解釋的。而RepPoints透過定位和分類的監督訊號來直接監督偏移量的學習,這樣偏移量不就有可解釋性了嗎,
偏移的位置使得定位和分類更加準確(即偏移的位置可定位目標並且語義資訊可識別目標),這樣偏移量就不會亂跑了,而且是可解釋的。
從這個角度來想,RepPoints其實是對可形變卷積進一步的改進,相比可形變卷積有兩個優點:
1.透過定位和分類的直接監督來學習可形變卷積的偏移量,使得偏移量具有可解釋性。
2.可以透過取樣點來直接生成偽框 (pseudo box),不需要另外學習邊界框,並且分類和定位有聯絡。
參考文獻
[1] 《Deformable Convolutional Networks》
[2] 《Deformable ConvNets v2: More Deformable, Better Results》
[3] 《RepPoints: Point Set Representation for Object Detection》
[4] 《孔濤:Deformable ConvNets v2 paper reading》
[5]《北大、清華、微軟聯合提出RepPoints,比邊界框更好用的目標檢測方法》
本文僅作學術交流,如有侵權,請聯絡刪文
下載1:OpenCV-Contrib擴充套件模組中文版教程
下載2:Python視覺實戰專案52講
下載3:OpenCV實戰專案20講