###### tags: `Paper Notes` # DCNv2 (Deformable ConvNets v2) * 原文:[Deformable ConvNets v2: More Deformable, Better Results](https://arxiv.org/abs/1811.11168) * 機構:University of Science and Technology of China, Microsoft Research Asia * 時間:2018 年 ### Introduction * 雖然 Deformable ConvNets v1 (DCNv1) 緩和了傳統 CNN 幾何轉換的問題,但仍可發現它參考了很多不重要的位置,簡單的說就是效能不夠好。因此,作者提出了 Deformable ConvNets v2 (DCNv2) 來提升效能。 ### More Deformable ConvNets * DCNv2 的改進方式主要有兩個: * 將更多的 standard conv. 轉換成 deformable conv.。 * 提出 modulated deformable conv.。 * 更多的 deformable conv.: * 在第一版時,作者只有將 ResNet-50 中的 conv5 改成 deformable conv.。現在則將 conv3、conv4、conv5 (共 12 層) 都改用 deformable conv. layer。 * modulated deformable conv.: * modulated deformable conv. 作法:透過增加權重 $\Delta m_k \in [0, 1]$ 來調整該 grid 的重要性。 $$ y(p) = \sum_{k=1}^{K} w_k * x(p + p_k + \Delta p_k) * \Delta m_k $$ * $K$:kernel size * $w_k$:第 $k$ 個 grid 的 weight * $p_k$:第 $k$ 個 grid 在 kernel 中的座標 範例:$K = 3 \times 3 = 9,\ p_k \in \{ (-1, -1), (-1, 0), ..., (1, 1) \}$ * $x(p)$:feature map 中,位置為 $p$ 的值 * $y(p)$:deformable conv. 對位置為 $p$ 的 grid 輸出結果 > 問題:不是已經有 $w_k$ 了嗎?加 $\Delta m_k$ 真的有用嗎? * $\Delta m_k$ 與 $\Delta p_k$ 都是透過額外的 conv. layer 獲得的。該 conv. layer 的 filter 數為 $3K$。前面 $2K$ 表示各 grid 的 offset。剩下的 $K$ 則會被送進 sigmoid layer,才得到 $\Delta m_k$。該 conv. layer 的初始值為 0,learning rate 為 deformable conv. 的 0.1 倍。 > 原文:The kernel weights in this separate convolution layer are initialized to zero. Thus, the initial values of $\Delta p_k$ and $\Delta m_k$ are 0 and 0.5, respectively. > > 問題:$\Delta m_k$ 的初始值為啥是 0.5 不是 0? * modulated deformable RoIpooling: * 公式如下: $$ y(k) = \sum_{j=1}^{n_k} x(p_{kj} + \Delta p_k) * \Delta m_k / n_k $$ * $p_{kj}$:第 $k$ 個 bin 的第 $j$ 個 grid cell 的位置 * $n_k$:一個 bin 中的 grid cell 個數 * $\Delta p_k$:第 $k$ 個 bin 的 offset * $\Delta m_k$:第 $k$ 個 bin 的 modulation * 跟 modulated deformable conv. 的概念類似,只差在 $\Delta p_k、\Delta m_k$ 是用 fc layer 產生的。先將 feature map 經過 2 層 1024 維的 fc layer 後,再經過 1 層 $3K$ 維的 fc layer。($K$:bin 的個數) * 與 Deformable ConvNets v1 相同,$\Delta \hat{p_k}$ 還要再乘以 $(w, h)$ 才是最終的 $\Delta p_k$。($(w, h)$:bin size) * modulation 一樣要經過 1 層 sigmoid。 ### Experiemnts & Results * Table 4 為 DCNv2 實驗在 object detection 上的結果。DCNv1 只修改 ResNet 中 conv5 的部分,而 DCNv2 則修改了 conv3 ~ conv5。且 DCNv2 使用的是 modulated deformable conv.、modulated deformable ROIpooling,DCNv1 則是 deformable 版。 <center><img src="https://i.imgur.com/kXxtzww.png"></center> ### References [8] Deformable convolutional networks