首页 > 编程知识 正文

深度学习从入门到女装Deformable CNN

时间:2023-05-03 19:51:06 阅读:242943 作者:4422

论文地址:Deformable Convolutional Networks

 

对于视觉识别任务中一个重要的关键就是如何根据物体的尺度、位置、视角和部分形变来调整模型的几何变化。传统的方式有两种,第一种就是对于训练数据集需要有足够的需要的变化,通常需要使用数据增强等方式来实现,但是会带来计算量增大和更多的模型参数等问题。第二种就是使用transformation-invariant的特征和算法,比如SIFT(scale invariant feature transform)特征和基于目标识别的滑窗法

在本文中提出两种新的模型用来增强cnn的模型几何变化。第一种就是deformable convolution,对于传统的网格采样位置加入2D的偏移(offsets),如下图所示,offsets通过上一层的特征图通过额外的卷积层进行学习

第二种就是deformable RoI pooling,对于普通的部分上一层RoI pooling加入offset。类似上面的,offsets通过上一层的特征图和RoIs进行学习,能够对于不同形状的目标都调整部分位置

两种模型都是light weight,只增加了少量的参数和计算量来进行offset的学习,能够轻易取代原本CNN中的任何一部分,并且可以end to end训练

Deformable Convolution

 

对于传统的卷积,我们可以这样定义,分为两个步骤,第一个步骤是对于输入的future map X选取网格R,第二个步骤是使用对应的权重W进行计算。网格R决定了感受野和空洞,例如3*3的卷积的R如下等式

对于输出feature map  Y中的每个位置P0,我们有

Pn代表了在R中的各个位置

对于deformable convolution,网格R被offset增强,其中,等式(1)变为

我们使用双线性插值定义为

其中,q枚举了在feature map x中的所有特征位置,G为双线性插值核函数,G为二维的,我们使用两个一维的核函数来定义

其中

如上图所示,offset用同样的input feature map作为输入的一个额外卷积来获得,卷积核采用和当前卷积层相同的大小,输出的offset field和input feature map一样大小,通道数为2N对应N个2D offsets,在训练过程中用来生成output feature和offset field的同时训练,使用反向梯度进行

具体来说,对于使用3*3(N=9)卷积对input feature map进行操作,就是使用卷积学习到一个18(2n=18)个channel和input feature map一样大小的特征图F_offset(包含了每个3*3卷积中的x、y方向的offset,也就是3*3*2=18个channel),然后进行deformable conv的时候,对每个点进行卷积的时候,就找到对应的F_offset上的3*3卷积的x、y方向的offset,然后使用双线性插值进行采样

Deformable RoI Pooling

deformable RoI pooling使用一个FC层进行offsets的学习

Position-Sensitive (PS) RoI Pooling使用全卷积结构,也就是用卷积层进行offsets的学习

将input feature map划分为k*k个bins,C为类别数,

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。