《Deformable Convolutional Networks》論文筆記
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;可以被整合到任意網路模型;增加的參數量較少
參考:
可變形的卷積網路 Deformable Convolutional Networks - Learning by Hacking
推薦閱讀:
※Deep Image Prior:深度卷積網路先天就理解自然圖像
※超解析度重建還有什麼可以研究的嗎??
※一個加速trick一種相關濾波解釋
※你必須要知道CNN模型:ResNet
※本田與商湯牽手共謀自動駕駛,為何相中這家中國AI獨角獸?