可变形卷积网络

1、什么是可变形卷积?

可变形卷积是指卷积核在每一个元素上额外增加了一个参数方向参数,这样卷积核就能在训练过程中扩展到很大的范围。

注意:这里有一个非常非常非常容易混淆的点,所谓的deformable,到底deformable在哪?很多人可能以为deformable conv学习的是可变形的kernel,其实不是不是不是!本文并不是对kernel学习offset而是对feature的每个位置学习一个offset。
在这里插入图片描述
(a)是传统的标准卷积核,尺寸为3x3(图中绿色的点);
(b)就是我们今天要谈论的可变形卷积,通过在图(a)的基础上给每个卷积核的参数添加一个方向向量(图b中的浅绿色箭头),使的我们的卷积核可以变为任意形状;
(c)和(d)是可变形卷积的特殊形式。

2、为什么要可变形卷积?

CNNs对大型,未知形状变换的建模存在固有的缺陷,这种缺陷来源于CNNs模块固有的几何结构:

  • 卷积单元对输入特征图的固定位置进行采样;
  • 池化层以固定的比例进行池化;

即使是ROI pooling也是将ROI分割到固定的bin中去。这些特性是有影响的,例如,在同一层Conv中,所有的激活单元的感受野是一样的,但由于不同位置可能对应着不同尺度或变形的物体,因此对尺度或者感受野大小进行自适应是进行精确定位所需要的。为了解决或者减轻这个问题,本文提出了两种新的模块,可变形卷积(deformable conv)和可变形感兴趣区域池化(deformable ROI Pooling),来提高对形变的建模能力。这两个模块都是基于一个平行网络学习offset(偏移),使得卷积核在input feature map的采样点发生偏移,集中于我们感兴趣的区域或者目标。通过研究发现,标准卷积中的规则格点采样是导致网络难以适应几何形变的“罪魁祸首”,为了削弱这个限制,对卷积核中每个采样点的位置都增加了一个偏移变量,可以实现在当前位置附近随意采样而不局限于之前的规则格点。

3、可变形卷积结构形式

在这里插入图片描述
上图是可变形卷积的学习过程,首先偏差是通过一个卷积层获得,该卷积层的卷积核与普通卷积核一样。输出的偏差尺寸和输入的特征图尺寸一致。生成通道维度是2N,对应偏移位置的x坐标和y坐标。卷积核通过双线性插值后向传播算法同时学习。

4、可变形卷积结构与普通卷积结构的比较

在这里插入图片描述

5、可变形卷积的学习过程

在这里插入图片描述
图a是标准卷积的采样过程,图b是可变形卷积的采样过程。

可变性卷积的流程为:

  • 原始图片batch(大小为b*h*w*c),记为U,经过一个普通卷积,卷积填充为same,即输出输入大小不变,对应的输出结果为(b*h*w*2c),记为V,输出的结果是指原图片batch中每个像素的偏移量(x偏移与y偏移,因此为2c)。
  • U中图片的像素索引值与V相加,得到偏移后的position(即在原始图片U中的坐标值),需要将position值限定为图片大小以内。position的大小为(b*h*w*2c),但position只是一个坐标值,而且还是float类型的,我们需要这些float类型的坐标值获取像素。
  • 例,取一个坐标值(a,b),将其转换为四个整数,floor(a), ceil(a), floor(b),ceil(b),将这四个整数进行整合,得到四对坐标(floor(a),floor(b)), ((floor(a),ceil(b)), ((ceil(a),floor(b)), ((ceil(a),ceil(b))。这四对坐标每个坐标都对应U中的一个像素值,而我们需要得到(a,b)的像素值,这里采用双线性差值的方式计算(一方面得到的像素准确,另一方面可以进行反向传播)。
  • 在得到position的所有像素后,即得到了一个新图片M,将这个新图片M作为输入数据输入到别的层中,如普通卷积。

6、可变形卷积的具体实现

在这里插入图片描述
1、首先声明一点,在可变形卷积中,可变形卷积操作和池化操作都是2维的,都是在同一channel上进行的,常规的卷积操作主要可以分为两部分:

  • (1)在输入的feature map上使用规则网格R进行采样;
  • (2)进行加权运算,R定义了感受野的大小和扩张在这里插入图片描述
    对于在输出的feature map上的每个位置P0,通过下列式子进行计算:
    在这里插入图片描述
    其中,Pn是对R中所列位置的枚举

2、可变形卷积的操作是不同的,在可变形网络的操作中,常规的规则网格R通过增加一个偏移量进行扩张,同样的位置P0变为:
在这里插入图片描述
现在,采样的位置变成了不规则位置,由于偏移量△Pn通常是小数,因此我们通过双线性插值法进行实现,公式为:
在这里插入图片描述
完整的示意图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绛洞花主敏明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值