Deformable Convolutional Networks

欢迎来到带你读论文 
博客主页:卿云阁

欢迎关注点赞收藏⭐️留言

本文由卿云阁原创!

首发时间:2024年1月28日

✉️希望可以和大家一起完成进阶之路!

作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!


[1]github源码 Deformable-ConvNets

[2]论文 Deformable Convolutional Networks


Deformable convolution

       文章提出了可变卷积,添加了位移变量,这个变量根据数据的情况学习,偏移后,相当于卷积核每个方块可伸缩的变化,从而改变了感受野的范围,感受野成了一个多边形。

   Deformable Convolutional Networks_第1张图片

(a)是普通的卷积,卷积核大小为3*3,采样点排列非常规则,是一个正方形。

(b)是可变形的卷积,给每个采样点加一个offset(这个offset通过额外的卷积层学习得到),排列变得不规则。

(c)和(d)是可变形卷积的两种特例。

(c)加上offset,达到尺度变换的效果

(d)加上offset,达到旋转变换的效果。

      传统的卷积结构可以定义成公式1,其中是输出特征图的每个点,与卷积核中心点对应,假设我们有一个像素p0pn是p0在卷积核范围内的每个偏移量

     可变形卷积则在上述公式1的基础上为每个点引入了一个偏移量,偏移量是由输入特征图与另一个卷积生成的,通常是小数。

      由于加入偏移量后的位置非整数,并不对应feature map上实际存在的像素点,因此需要使用插值来得到偏移后的像素值,通常可采用双线性插值,用公式表示如下:将插值点位置的像素值设为其4领域像素点的加权和,领域4个点是离其最近的在特征图上实际存在的像素点,每个点的权重则根据它与插值点横、纵坐标的距离来设置,公式最后一行的max(0, 1-...)就是限制了插值点与领域点不会超过1个像素的距离。

Deformable Convolutional Networks_第2张图片

       额外的conv层来学习offset,共享input feature maps。然后input feature maps和offset共同作为deformable conv层的输入,deformable conv层操作采样点发生偏移,再进行卷积。Deformable Convolutional Networks_第3张图片


Deformable RoI pooling

     RoI pooling是把不同大小的RoI(w*h)对应的feature map 统一到固定的大小(k x k)。

     pooling则是先对RoI对应的每个bin按照RoI的长宽比例的倍数进行整体偏移(同样偏移后的位置是小数,使用双线性差值来求),然后再pooling。

      由于按照RoI长宽比例进行水平和竖直方向偏移,因此每一个bin的偏移量只需要一个参数来表示,具体可以用全连接来实现。

Deformable Convolutional Networks_第4张图片

你可能感兴趣的:(深度学习,人工智能)