1. 程式人生 > >《Deformable Convolutional Networks》論文簡單理解筆記

《Deformable Convolutional Networks》論文簡單理解筆記

作者:起名什麼的最煩啦
連結:https://zhuanlan.zhihu.com/p/27965213
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
 

CNN由於固定的幾何結構,導致對幾何形變的建模受到限制。為了解決或減輕這個問題,這篇論文的工作便是提出deformable convolution 和deformable RoI pooling ,來提高對形變的建模能力。deformable convolution 和deformable RoI pooling都是基於一個平行網路學習offset(偏移),使卷積核在input map的取樣點發生偏移,集中於我們感興趣的區域或目標。

背景:如何有效地建模幾何形變或變化(包括尺度、姿勢等變化)一直以來都是一個挑戰。大體上有兩種方法來處理該問題:1)構建一個包含各種變化的資料集。其實就是資料擴增。2)使用具有形變不變性的特徵和演算法(例如SIFT )。然而,以上的方法存在著如下缺點:1)幾何形變被假設是固定和已知的,這是一種先驗資訊,用這些有限的、已知的形變來進行資料擴增或設計演算法,可想而知,對於新的、未知的形變則無法處理。2)手工設計的特徵或演算法無法應對過度複雜的形變,即便該形變是已知的。

Deformable Convolution :

 

上圖是在二維平面上deformable convolution和普通的convolution的描述圖。(a)是普通的卷積,卷積核大小為3*3,取樣點排列非常規則,是一個正方形。(b)是可變形的卷積,給每個取樣點加一個offset(這個offset通過額外的卷積層學習得到),排列變得不規則。(c)和(d)是可變形卷積的兩種特例。對於(c),加上offset,達到尺度變換的效果;對於(d),加上offset,達到旋轉變換的效果。

如上圖所示,有一個額外的conv層來學習offset,共享input feature maps。然後input feature maps和offset共同作為deformable conv層的輸入,deformable conv層操作取樣點發生偏移,再進行卷積。

Deformable RoI Pooling :

 

如上圖所示,RoI被分為3*3個bin,被輸入到一個額外的fc層來學習offset,然後通過一個deformable RoI pooling層來操作使每個bin發生偏移。

 

 

上圖展示了兩層的3*3卷積層的對映。對於標準的卷積,後面層的feature map上的一個點,對映到前面層所對應的感受野是規則的,無法考慮到不同目標的外形、大小不同;而可變形的卷積則考慮到了目標的形變,對映到前面層的取樣點大多會覆蓋在目標上面,取樣到更多我們感興趣的資訊。

 

 

上圖是可變形卷積取樣點的一個視覺化。三張圖片為一組,綠點表示啟用點,紅點表示啟用點對映到原圖的取樣點,三張圖片分別對應背景、小目標和大目標的取樣點視覺化。

 

notes:end to end;可以被整合到任意網路模型;增加的引數量較少

更詳細的理解:https://blog.csdn.net/qq_21997625/article/details/84899914

參考:

可變形的卷積網路 Deformable Convolutional Networks - Learning by Hacking