顾道长生

V1

2022/08/20阅读:14主题:自定义主题1

Deformable Convolutional Networks

2. Deformable Convolutional Networks

CNN 中的特征图和卷积是 3D 的。可变形卷积和 RoI 池化模块都在 2D 空间域上运行。该操作在通道维度上保持不变。在不失一般性的情况下,为清楚起见,此处以 2D 形式描述模块。扩展到 3D 很简单。

2.1. Deformable Convolution


2D 卷积包括两个步骤:1)在输入特征图 上使用规则网格 进行采样; 2) 用 加权的采样值求和。网格 定义了感受野的大小和扩张。比如说。

定义了一个 的核,扩张率为 1。

对于输出特征图 上的每个位置 ,我们有

其中 枚举 中的位置。

在可变形卷积中,规则网格 增加了偏移量 ,其中 。等式(1)变为

现在,采样是在不规则和偏移位置 上。由于偏移量 通常是小数,公式(2)通过双线性插值实现为

其中 表示任意(分数)位置( 对于等式(2)), 枚举特征图 中的所有整数空间位置, 是双线性插值核。请注意, 是二维的。它被分成两个一维内核

其中 。等式 (3) 计算速度很快,因为 仅在几个 内不为零。

图2
图2

图 2:3 × 3 可变形卷积的图示。

如图 2 所示,偏移量是通过在相同的输入特征图上应用卷积层来获得的。卷积核具有与当前卷积层相同的空间分辨率和膨胀率(例如,图 2 中的膨胀率 1 的 卷积)。输出偏移字段与输入特征图具有相同的空间分辨率。通道维度 对应于 个 2D 偏移。在训练期间,同时学习用于生成输出特征的卷积核和偏移量。为了学习偏移量,梯度通过 Eq (3) 和 Eq(4) 中的双线性操作进行反向传播。附录 A 中有详细说明。

A. Deformable Conv

在可变形卷积公式(2)中,关于偏移量 的梯度计算为

其中 项可以从 Eq(4) 推导出来。请注意,偏移量 是 2D 的,为了简单起见,我们使用 来表示

2.2. Deformable RoI Pooling


RoI 池用于所有基于区域proposal的目标检测方法 [16,15,47,7]。它将任意大小的输入矩形区域转换为固定大小的特征。

RoI Pooling[15] 给出输入的特征图 和大小为 的RoI以及左上角 ,RoI池化将RoI划分为 (k是自由参数)个bin,并输出 个特征图 。对于第 个bin ,我们有

其中 是 bin 中的像素数。第 个 bin 跨越

与等式(2)类似,在可变形 RoI 池中,偏移量 被添加到空间bin位置。等式(5)变为

通常情况下, 是小数。公式(6)通过公式(3)和(4)的双线性插值来实现。

图3说明了如何获得偏移量。首先,RoI池化(公式(5))产生池化的特征图。从map中,fc层生成归一化的偏移量 ,然后通过与RoI的宽度和高度的元素相乘,将其转换为公式(6)中的偏移量 ,即 . Here 。这里的γ是一个预定义的标量,用于调节偏移量的大小。根据经验,它被设定为 。为了使偏移量的学习不受RoI大小的影响,偏移量的归一化是必要的。fc层是通过反向传播学习的,详见附录A。

A. RoI Pooling Backpropagation

同样地,在可变形的RoI Pooling模块中,关于偏移量 的梯度可以通过以下方式计算出来

通过计算 . 中的导数,可以很容易地得到关于归一化偏移 的梯度。

分类:

人工智能

标签:

深度学习

作者介绍

顾道长生
V1