【CVPR2021】Decoupled dynamic filter networks
阿新 • • 發佈:2022-01-19
論文:https://thefoxofsky.github.io/files/ddf.pdf
程式碼:https://github.com/thefoxofsky/ddfnet
主頁:https://thefoxofsky.github.io/project_pages/ddf
先從論文首頁的圖說起。第一行為普通靜態卷積,對於道路、車輛、建築使用相同的卷積核,這樣會導致一個問題:sub-optimal feature learning。第二行為動態卷積,每一個畫素都使用不同的卷積核,道路、車輛、建築使用的卷積核就不一樣了,有助於特徵學習。但是會引入一個新的問題:引數量大大增加。
可以看出,動態卷積的引數量從普通靜態卷積的 (\(c \times c \times k \times k\)
如圖所示,包含兩個步驟:
- 在 spatial 維度上,首先用 1x1 的卷積將 channel 數變成 \(k^2\),reshape後,就是每個空間位置上的卷積核,引數量是 \(k\times k \times h \times w\)
- 在 channel 維度上,通過 GAP + SE 操作,每個 channel 得到一個 \(k^2\)
好的,終極問題來了? 每個空間位置上有一個卷積核,每個 channel 上有一個卷積核,如何把卷積核作用到 \((c, h , w)\) 的三維矩陣中的每個畫素上?
具體方法是: 每個畫素點,找到與它 對應位置的卷積核 和 對應通道的卷積核 ,這兩個卷積核進行 逐畫素相乘 ,得到新的卷積核再對這個點進行卷積
論文中還有一個點值得注意,為了提升效能,卷積核歸一化時,作者設計了一個 Filter-Norm,效能會優於使用 Batch-Norm 和 Sigmoid,具體可以參考作者實驗,不再多說。