可变形卷积学习(RepPoints)

近来在学习anchor-free网络,看到了可变形卷积(Deformable Convolutional Networks(DCN))的内容,大致总结一下,便于后面回顾。
可变形卷积可从以下三篇论文去学习,它们也被称为DCNv1、DCNv2、RepPoints(DCNv3),
DCNv1:http://xxx.itp.ac.cn/pdf/1703.06211.pdf
DCNv2:http://cn.arxiv.org/pdf/1811.11168v2
RepPoints(DCNv3):http://xxx.itp.ac.cn/pdf/1904.11490v2

这几篇论文是可变形卷积的提出和发展,最基础的都是建立在可变形卷积之上,那就有必要仔细学一下什么是可变形卷积了。

由尺度、姿态、视角和部分形变等因素引起的几何变化是目标识别和检测的主要挑战。在卷积/RoI池化模块中,DCN通过学习采样点的位置来得到几何形变建模的能力。
在这里插入图片描述
采样点的个数一般是设置成9个,传统的卷积是图a所示,要实现可形变卷积,并不是卷积核具有变形的能力,而是对这9个样本点的位置增加了一个偏移量进行训练学习。

2D卷积包含两步:1)用规则的网格R(3*3)在输入特征映射x上采样;2)对w加权的采样值求和。网格R定义了感受野的大小和扩张。例如定义了一个扩张大小为1的3×3卷积核。
在这里插入图片描述
对于输出特征映射y上的每个位置p0,我们有

在这里插入图片描述
其中Pn枚举了R中的位置。
在可变形卷积中,规则的网格R通过偏移{∆pn|n=1,…,N}增大,其中N=|R|。方程(1)变为
在这里插入图片描述
现在,采样是在不规则且有偏移的位置Pn+∆pn上。由于偏移∆pn通常是小数,方程(2)可以通过双线性插值实现
在这里插入图片描述
其中p表示任意(小数)位置(公式(2)中p=Po+Pn+∆Pn),q枚举了特征映射x中所有整体空间位置,G()是双线性插值的核。注意G是二维的。它被分为两个一维核
在这里插入图片描述
如何进行双线性插值呢?
在这里插入图片描述
如图2所示,通过在相同的输入特征映射上应用卷积层来获得偏移。卷积核具有与当前卷积层相同的空间分辨率和扩张(例如,在图2中也具有扩张为1的3×3)。输出偏移域与输入特征映射具有相同的空间分辨率。通道维度2N对应于N个2D偏移量。在训练过程中,同时学习用于生成输出特征的卷积核和偏移量。为了学习偏移量,梯度通过方程(3)和(4)中的双线性插值运算进行反向传播。
在这里插入图片描述
对于输入的一张feature map,假设原来的卷积操作是3×3的,那么为了学习偏移量offset,我们定义另外一个3×3的卷积层(图中上面的那层),输出的维度其实就是原来feature map大小,channel数等于2N(分别表示x,y方向的偏移)。下面的可变形卷积可以看作先基于上面那部分生成的offset做了一个插值操作,然后再执行普通的卷积。

理解了上面这段话基本上就理解了可变形卷积,其余都是在这基础上的变化,上面那层的卷积是用于学习偏移量的,并没有对变形的区域进行卷积,卷积区域也不会突然变形。通过学习到的偏移量与对应像素的位置索引值相加,像素位置的索引值发生了变化,从整数变成了小数,不再对应之前位置的像素值。这时如何确定新的像素值?使用双线性插值,把每个样本点的4邻域像素值加权平均得到新的对应位置的像素值。这样,每个点对应着四个位置的像素,9个样本点最多可以表示36个位置的像素,而这个位置根据偏移量变化是不固定的,于是就实现了可变形卷积。

关于RepPoints,它是在可变形卷积的基础上实现的,增加了两个阶段的可变形卷积
在这里插入图片描述
提出RepPoints一组样本点集,默认是9个
在这里插入图片描述
在这里插入图片描述
通过学习样本点x和y方向的偏移量,结合像素特征进行分类回归。

在这里插入图片描述
这是这篇文章提出的检测器结构。输入图像进入FPN网络进行特征提取,这里只画了一层的处理过程。在这层,提取到的特征图有两条走向,上面那条是进行可变形卷积获得偏移量,下面那条是常规的卷积操作,得到新的特征图。学习到的偏移量与新特征图进行结合,上面提过,就是新特征图的像素索引加上偏移量,在进行双线性插值进一步得到新的特征图。在最新的特征图中,有9个样本点对应学习出来的目标边界,这时根据这些目标边界产生伪框与ground truth对比进行分类回归。
下面是一个更具体的检测器结构图。
在这里插入图片描述

参考博客:
全面解析可变形卷积家族(Deformable Convolutional Networks v1+ v2)
可变形卷积 deformable convolution 学习记录

### 回答1: RepPoints是一种目标检测算法,它通过提出“关键点”来检测图像中的对象。关键点是指对象的重要部位,例如人脸的眼睛、鼻子、嘴巴等。RepPoints使用一个神经网络来生成这些关键点,并将它们用于检测。 RepPointsV2是RepPoints的改进版,它主要改进了以下几个方面: 1. 更快的检测速度:RepPointsV2使用了一种新的技术来加速检测,因此比RepPoints更快。 2. 更准确的检测:RepPointsV2增加了一些新的特征来提高检测准确度。 3. 更好的可解释性:RepPointsV2可以更好地解释检测过程中神经网络的决策过程,使得用户可以更好地理解算法的工作原理。 总的来说,RepPointsV2是RepPoints的升级版,它在速度、精度和可解释性方面都得到了提高。 ### 回答2: RepPointsV2与RepPoint是两种不同的点检测方法,主要应用于目标检测和语义分割任务中。 首先,RepPoint是一种常用的基于点的目标检测方法。它通过选择特定尺度下的候选点来表示目标的位置和大小,同时利用卷积操作来预测目标的类别和边界框等信息。RepPoint主要依赖于先验知识,即预定义的一些锚点或参考点,来进行点的选择和预测。但是,由于锚点是固定的,可能无法适应各种尺度和形状的目标,这在一些复杂场景下限制了它的性能。 相比之下,RepPointsV2是对RepPoint的改进版本。RepPointsV2采用多尺度的表示方法来解决RepPoint中的尺度问题。具体而言,RepPointsV2在不同特征层上选择候选点,并利用自适应尺度特征辅助进行优化。这样做可以更好地适应不同尺度目标的检测,并提高整体的检测性能。此外,RepPointsV2还引入了可变形卷积来进一步提升点的定位精度和适应性,使得目标的表示更加准确和可靠。 总之,RepPointsV2是对RepPoint的改进版本,通过引入多尺度表示和可变形卷积等方法,弥补了RepPoint在尺度适应性方面的不足,并提高了目标检测的性能和准确性。 ### 回答3RepPointsV2与RepPoint是一种在目标检测领域中广泛使用的算法模型。它们之间的区别主要在于以下几个方面。 首先,RepPointsV2是对RepPoints的改进版本。RepPoint是一种基于点预测的目标检测算法,通过在特定位置生成一系列点,并预测每个点的类别和边界框信息来实现目标检测。而RepPointsV2在此基础上提出了一些新的改进,使其在精度和速度上都有了提升。 其次,RepPointsV2引入了Centerness分支。Centerness是一种用于衡量物体中心程度的指标,通过在每个点预测该点相对于物体中心的距离来进行计算。这样可以更准确地预测目标的边界框位置,并提高检测的精度。 此外,RepPointsV2还引入了特征金字塔网络(FPN)。FPN是一种用于多尺度目标检测的网络结构,通过在不同的层级上进行信息融合来提取不同尺度的特征。这使得RepPointsV2可以在处理不同大小目标时更加准确和有效。 最后,RepPointsV2还改进了训练策略。它采用了IoU损失作为目标函数,可以更好地优化目标检测任务。此外,RepPointsV2还采用了分布式训练和数据增强等技术,以提高训练的效率和模型的鲁棒性。 综上所述,RepPointsV2相较于RepPoint在精度和速度上都有所提升,并引入了Centerness分支、特征金字塔网络和改进的训练策略等新特性。这些改进使得RepPointsV2在目标检测任务中具有更好的性能和应用潜力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

清梦枕星河~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值