【转】Deformable ConvNets论文笔记
2017-12-27 10:20
183 查看
转自:http://m.blog.csdn.net/yucicheung/article/details/78113843
2.1 Deformable Convolution
2D的卷积包括两个步骤:1)用一个规则的网格R在输入特征图上进行采样;2)对于采样的值用w进行加权再求和。网格R定义了感受野大小和扩张量。比如
R={(−1,−1),(−1,0),…,(0,1),(1,1)}
定义了一个3×3的核并且扩张量(空洞)为1。
对于在输出特征图y上的每一个位置p0来说,我们有
y(p0)=∑pn∈Rw(pn)⋅x(p0+pn), (1)
其中pn会穷举在R中的位置。
在可变形卷积中,用偏移{Δpn|n=1,…,N}对规则的网格R进行扩充,其中N=|R|.公式(1)就变成
y(p0)=∑pn∈Rw(pn)⋅x(p0+pn+Δpn). (2)
现在,采样就在不规则有偏移的位置pn+Δpn上进行。因为这个偏移Δp通常是小数,等式(2)要按以下进行双线性插值
x(p)=∑qG(q,p)⋅x(q), (3)
其中p表示一个任意的(小数)位置(对于等式(2)p=p0+pn+Δpn),q穷举在特征图x上的所有整数空间位置,并且G(⋅,⋅)是双线性插值的核。注意G是二维的。它被分成两个一维的核
G(q,p)=g(qx,px)⋅g(qy,py), (4)
其中g(a,b)=max(0,1−|a−b|).等式(3)的计算会很快因为G(q,p)只在几个q上是非零的。
正如在图2中描述的一样,偏移是通过在同一个输入特征图上再应用一个卷积层来获得的。卷积核的空间分辨率和扩张量和目前的卷积层一样(比如,在图2中也是3×3扩张量为1)。输出的偏移的域的和输入的特征图有相同的空间分辨率。通道维度2N对应着N个2D的偏移。在训练中,用于产生输出特征和偏移的卷积核同时在进行学习。要学习到偏移量,梯度通过等式(3)和(4)中的双线性操作进行反向传播。详情参见附录A.
2.2 Deformable RoI pooling
在所有基于region proposal候选区域的物体检测方法中都有用到RoI pooling。它把一个输入的任意大小的矩形区域转化为一个固定大小的特征。
RoI pooling 给定一个输入特征图x和一个大小为w×h的RoI以及其左上角p0,RoI
pooling把RoI分成k×k(k是自由参数)个长方块并且输出一个k×k的特征图y。对第(i,j)个长方块(0≤i,j<k),有
y(i,j)=∑p∈bin(i,j)x(p0+p)/nij (5)
其中nij是在长方块中的像素点数。第(i,j)个长方块范围是⌊iwk⌋≤px<⌈(i+1)wk⌉并且⌊jhk⌋≤py<⌈(j+1)hk⌉.
类似于等式(2),在可变形RoI pooling中,偏移{Δpij|0≤i,j<k}会被加入到空间长方块的位置上。这样等式(5)就变成
y(i,j)=∑p∈bin(i,j)x(p0+p+Δpij)/nij (6)
Δpij往往是小数。等式(6)通过等式(3)和(4)中的双线性插值来实现。
Fig3画出了如何获取偏移。首先,RoI pooling(等式5)产生pooled的特征图。从这些图中,一个fc层产生归一化后的偏移Δp^ij,这个归一化的量之后会被转化为公式(6)中的偏移量Δpij,通过与RoI的宽和高做元素间的乘法,即Δpij=γ⋅Δp^ij∘(w,h).这里面的γ是一个提前定义好的标量用来调节偏移的幅度。跟据经验设为γ=0.1。偏移归一化是有必要的,为了让偏移的学习不因RoI的尺寸不同而变化。fc层用反向传播来学习,细节在附录A中。
Position-Sensitive(PS) RoI Pooling 这是全卷积的,并且和RoI Pooling不同。 通过一个卷积层,所有的输入特征图都首先被转化,对每个物体类别有k2个分数图(如果物体类别是C,那么总共有C+1种),就如在图4中最底下的那个分支一样。不需要在类别之间进行区分,这种分数图被表示为{xi,j}其中(i,j)对所有长方块进行穷举。Pooling会在这些分数图上进行,对于第(i,j)个长方块的输出值是通过相应的长方块的分数图xi,j进行求和而获得的。简言之,与等式(5)中的RoI
Pooling不同的地方是一个本来是一个整体的特征图x,现在换成了一个特定的对位置敏感的分数图xi,j.
在deformable PS RoI pooling中,只在等式(6)中更改了一处,就是将x改为了xi,j。然而,学习偏移的方式是不同的。它遵循了论文全卷积的精神,就如同图4描述的一样。在最高的分支中,一个卷积层生成完全的空间像素偏移域。对于每一个RoI(同时也对于每一个类别),PS
RoI pooling会被应用在这些域上以获取归一化的偏移量Δp^ij,然后通过上述deformable
RoI pooling中一样的方法变成真正的偏移量Δpij。
2.3 Deformable ConvNets
deformable convolution和RoI pooling模块与它们的平凡版本有相同的输入和输出,因此,就能方便地替换现有CNN中对应的普通模块。在实际训练中,这些添加的用于学习偏移的conv和fc层都以零权重初始化。学习率设为现有层的学习率的β倍(默认β=1,在Faster
R-CNN中的fc层设β=0.01)。它们要利用等式(3)和(4)中的双线性插值,通过BP的方法训练。最终的CNN就叫做deformable
ConvNets。
要把deformable ConvNets和目前为止最好的CNN架构结合起来,我们注意到这些架构都是由两个阶段组成:第一,一个深度的全卷积网络在整张输入图上产生特征图;第二,一个范围窄的针对特定任务的网络由特征图来生成结果。我们在以下内容中对这两点进行详细说明。
Deformable Convolution for Feature Extraction
2.1 Deformable Convolution
2D的卷积包括两个步骤:1)用一个规则的网格R在输入特征图上进行采样;2)对于采样的值用w进行加权再求和。网格R定义了感受野大小和扩张量。比如
R={(−1,−1),(−1,0),…,(0,1),(1,1)}
定义了一个3×3的核并且扩张量(空洞)为1。
对于在输出特征图y上的每一个位置p0来说,我们有
y(p0)=∑pn∈Rw(pn)⋅x(p0+pn), (1)
其中pn会穷举在R中的位置。
在可变形卷积中,用偏移{Δpn|n=1,…,N}对规则的网格R进行扩充,其中N=|R|.公式(1)就变成
y(p0)=∑pn∈Rw(pn)⋅x(p0+pn+Δpn). (2)
现在,采样就在不规则有偏移的位置pn+Δpn上进行。因为这个偏移Δp通常是小数,等式(2)要按以下进行双线性插值
x(p)=∑qG(q,p)⋅x(q), (3)
其中p表示一个任意的(小数)位置(对于等式(2)p=p0+pn+Δpn),q穷举在特征图x上的所有整数空间位置,并且G(⋅,⋅)是双线性插值的核。注意G是二维的。它被分成两个一维的核
G(q,p)=g(qx,px)⋅g(qy,py), (4)
其中g(a,b)=max(0,1−|a−b|).等式(3)的计算会很快因为G(q,p)只在几个q上是非零的。
正如在图2中描述的一样,偏移是通过在同一个输入特征图上再应用一个卷积层来获得的。卷积核的空间分辨率和扩张量和目前的卷积层一样(比如,在图2中也是3×3扩张量为1)。输出的偏移的域的和输入的特征图有相同的空间分辨率。通道维度2N对应着N个2D的偏移。在训练中,用于产生输出特征和偏移的卷积核同时在进行学习。要学习到偏移量,梯度通过等式(3)和(4)中的双线性操作进行反向传播。详情参见附录A.
2.2 Deformable RoI pooling
在所有基于region proposal候选区域的物体检测方法中都有用到RoI pooling。它把一个输入的任意大小的矩形区域转化为一个固定大小的特征。
RoI pooling 给定一个输入特征图x和一个大小为w×h的RoI以及其左上角p0,RoI
pooling把RoI分成k×k(k是自由参数)个长方块并且输出一个k×k的特征图y。对第(i,j)个长方块(0≤i,j<k),有
y(i,j)=∑p∈bin(i,j)x(p0+p)/nij (5)
其中nij是在长方块中的像素点数。第(i,j)个长方块范围是⌊iwk⌋≤px<⌈(i+1)wk⌉并且⌊jhk⌋≤py<⌈(j+1)hk⌉.
类似于等式(2),在可变形RoI pooling中,偏移{Δpij|0≤i,j<k}会被加入到空间长方块的位置上。这样等式(5)就变成
y(i,j)=∑p∈bin(i,j)x(p0+p+Δpij)/nij (6)
Δpij往往是小数。等式(6)通过等式(3)和(4)中的双线性插值来实现。
Fig3画出了如何获取偏移。首先,RoI pooling(等式5)产生pooled的特征图。从这些图中,一个fc层产生归一化后的偏移Δp^ij,这个归一化的量之后会被转化为公式(6)中的偏移量Δpij,通过与RoI的宽和高做元素间的乘法,即Δpij=γ⋅Δp^ij∘(w,h).这里面的γ是一个提前定义好的标量用来调节偏移的幅度。跟据经验设为γ=0.1。偏移归一化是有必要的,为了让偏移的学习不因RoI的尺寸不同而变化。fc层用反向传播来学习,细节在附录A中。
Position-Sensitive(PS) RoI Pooling 这是全卷积的,并且和RoI Pooling不同。 通过一个卷积层,所有的输入特征图都首先被转化,对每个物体类别有k2个分数图(如果物体类别是C,那么总共有C+1种),就如在图4中最底下的那个分支一样。不需要在类别之间进行区分,这种分数图被表示为{xi,j}其中(i,j)对所有长方块进行穷举。Pooling会在这些分数图上进行,对于第(i,j)个长方块的输出值是通过相应的长方块的分数图xi,j进行求和而获得的。简言之,与等式(5)中的RoI
Pooling不同的地方是一个本来是一个整体的特征图x,现在换成了一个特定的对位置敏感的分数图xi,j.
在deformable PS RoI pooling中,只在等式(6)中更改了一处,就是将x改为了xi,j。然而,学习偏移的方式是不同的。它遵循了论文全卷积的精神,就如同图4描述的一样。在最高的分支中,一个卷积层生成完全的空间像素偏移域。对于每一个RoI(同时也对于每一个类别),PS
RoI pooling会被应用在这些域上以获取归一化的偏移量Δp^ij,然后通过上述deformable
RoI pooling中一样的方法变成真正的偏移量Δpij。
2.3 Deformable ConvNets
deformable convolution和RoI pooling模块与它们的平凡版本有相同的输入和输出,因此,就能方便地替换现有CNN中对应的普通模块。在实际训练中,这些添加的用于学习偏移的conv和fc层都以零权重初始化。学习率设为现有层的学习率的β倍(默认β=1,在Faster
R-CNN中的fc层设β=0.01)。它们要利用等式(3)和(4)中的双线性插值,通过BP的方法训练。最终的CNN就叫做deformable
ConvNets。
要把deformable ConvNets和目前为止最好的CNN架构结合起来,我们注意到这些架构都是由两个阶段组成:第一,一个深度的全卷积网络在整张输入图上产生特征图;第二,一个范围窄的针对特定任务的网络由特征图来生成结果。我们在以下内容中对这两点进行详细说明。
Deformable Convolution for Feature Extraction
相关文章推荐
- 【论文笔记】物体检测与分割系列 Deformable Convolution Network
- [论文笔记5]A Discriminatively Trained, Multiscale, Deformable Part Model
- 论文阅读笔记:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
- 【论文笔记】Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
- 【论文笔记】A Foundational Approach to Mining Itemset Utilities from Databases
- Boilerplate Detection Using Shallow Text Features论文小笔记
- [深度学习论文笔记][Instance Segmentation] Instance-aware Semantic Segmentation via Multi-task Network Cascad
- Online Object Tracking: A Benchmark 论文笔记(转)
- Linux根文件系统裁剪 论文阅读笔记
- [论文笔记]Feature Enhancement Network: A Refined Scene Text Detector
- Faster R-CNN 论文笔记
- 【论文笔记】HyperFace: ADeep Multi-task Learning Framework for Face Detection
- 论文笔记 | SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
- 【论文笔记】Spatial Transformer Networks
- YOLO9000: Better,Faster,Stronger论文笔记
- 论文笔记:A Survey on Tag Recommendation Methods 下
- [论文笔记] Monitoring Dependencies for SLAs: The MoDe4SLA Approach (SCC, 2008)
- 论文笔记 [3] CNN去compression artifacts
- 论文笔记之:Hybrid computing using a neural network with dynamic external memory
- 论文笔记《HyperFace: A Deep Multi-task Learning Framework ...》