RepPoints:可形变卷积的进阶
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
一直以来都非常欣赏微软的研究,尤其是可形变卷积,这个工作在我看来非常的有创造力(很喜欢可形变卷积这个思路),这次借着RepPoints这篇最新的论文,回顾一下可形变卷积。
本文主要涉及DCNv1、DCNv2、RepPoints三篇文章,其中RepPoints可以认为是DCNv3。这三篇文章不断改进可形变卷积,提升模型的几何形变建模能力。
Review of DCNv1 and DCNv2
由尺度、姿态、视角和部分形变等因素引起的几何变化是目标识别和检测的主要挑战。在卷积/RoI池化模块中,DCN通过学习采样点的位置来得到几何形变建模的能力。
Deformable Convolution
由输入特征学习得到的偏移量来改变标准卷积的采样位置。
可形变卷积可以表示为:
给定一个有 个采样点的卷积核, 表示为第 个采样点的权值, 表示为第 个采样点预定义的偏移量(例如, 和 定义了一个3x3的卷积核)。 定义为输入特征位置 的特征, 定义为输出特征位置 的特征。 为卷积学习得到的第 个采样点的位置偏移量。因为 是小数,所以 通过双线性插值得到。
PS:偏移量特征的分辨率与输入特征的分辨率相同,且通道数为采样点个数的两倍(即每个位置都有x和y两个方向的偏移量)。
Modulated Deformable Convolution
相比可形变卷积多了一个调制因子。
调制可形变卷积可以表示为:
表示为第 个采样点的调制因子(范围在 之间)。
PS:调制因子特征的分辨率与输入特征的分辨率相同,且通道数为采样点的个数,加上偏移量特征后的通道数为采样点个数的三倍(即每个位置都有x和y两个方向的偏移量,还有一个调制因子)。
Deformable RoI Pooling
给定一个输入RoI,RoI pooling将它分成 个bins。首先通过RoI pooling得到池化后的feature maps,然后通过一个fc层产生归一化偏移量 (该偏移量可以转化为 )。
单个bin的输出特征可表示为:
表示为第 个bin的第 个采样点的位置, 表示为第 个bin的采样点数量。 通过双线性插值得到。 为第 个bin的偏移量。
PS:fc层的输出为bin个数的两倍(即每个bin都有x和y两个方向的偏移量)。
Modulated Deformable RoI Pooling
带调制因子的单个bin的输出特征可表示为:
为第 个bin的调制因子(范围在 之间)。
PS:有两个fc层,第二个fc层的输出为bin个数的三倍(即每个bin都有x和y两个方向的偏移量,还有一个调制因子)。
RepPoints
Motivation
在目标检测任务中,边界框描述了目标检测器各阶段的目标位置。
虽然边界框便于计算,但它们仅提供目标的粗略定位,并不完全拟合目标的形状和姿态。因此,从边界框的规则单元格中提取的特征可能会受到背景内容或前景区域的无效信息的严重影响。这可能导致特征质量降低,从而降低了目标检测的分类性能。
本文提出一种新的表示方法,称为 RepPoints,它提供了更细粒度的定位和更方便的分类。
如图所示,RepPoints 是一组点,通过学习自适应地将自己置于目标之上,该方式限定了目标的空间范围,并且表示具有重要语义信息的局部区域。
RepPoints 的训练由目标定位和识别共同驱动的,因此,RepPoints 与 ground-truth 的边界框紧密相关,并引导检测器正确地分类目标。
Bounding Box Representation
边界框是一个4维表示,编码目标的空间位置,即 , 表示中心点, 表示宽度和高度。
由于其使用简单方便,现代目标检测器严重依赖于边界框来表示检测 pipeline 中各个阶段的对象。
性能最优的目标检测器通常遵循一个 multi-stage 的识别范式,其中目标定位是逐步细化的。其中,目标表示的角色如下:
RepPoints
如前所述,4维边界框是目标位置的一个粗略表示。边界框表示只考虑目标的矩形空间范围,不考虑形状、姿态和语义上重要的局部区域的位置,这些可用于更好的定位和更好的目标特征提取。
为了克服上述限制,RepPoints 转而对一组自适应样本点进行建模:
其中 为表示中使用的样本点的总数。在这项工作中, 默认设置为 9。
Learning RepPoints
RepPoints 的学习是由目标定位损失和目标识别损失共同驱动的。为了计算目标定位损失,我们首先用一个转换函数 将 RepPoints 转换为伪框 (pseudo box)。然后,计算转换后的伪框与 ground truth 边界框之间的差异。
RPDet
作者设计了一种不使用 anchor 的对象检测器,它利用 RepPoints 代替边界框作为目标的基本表示。
目标表示的演化过程如下:
RepPoints Detector (RPDet) 由两个基于可变形卷积的识别阶段构成,如图所示。
可变形卷积与 RepPoints 很好地结合在一起,因为它的卷积是在一组不规则分布的采样点上计算的,另外,它的分类可以指导训练这些点的定位。
上图的第一个偏移量通过对角点监督学习得到,第二个偏移量在前一个偏移量的基础上通过分类监督学习得到。
从另一个角度来理解RepPoints:
可形变卷积通过最后的分类分支和回归分支的监督,自适应的关注到合适的特征位置,提取更好的特征,但是我一直没想明白的是可形变卷积真的能够关注到合适的特征位置吗,可形变卷积的偏移量学习是非常自由的,可能会跑到远离目标的位置,那么这些特征真的是有帮助的吗,这些问题一直困扰着我,我觉得可形变卷积的中间过程太模糊了,太不直接了,是难以解释的。而RepPoints通过定位和分类的监督信号来直接监督偏移量的学习,这样偏移量不就有可解释性了吗,偏移的位置使得定位和分类更加准确(即偏移的位置可定位目标并且语义信息可识别目标),这样偏移量就不会乱跑了,而且是可解释的。
从这个角度来想,RepPoints其实是对可形变卷积进一步的改进,相比可形变卷积有两个优点:
1.通过定位和分类的直接监督来学习可形变卷积的偏移量,使得偏移量具有可解释性。
2.可以通过采样点来直接生成伪框 (pseudo box),不需要另外学习边界框,并且分类和定位有联系。
好消息!
小白学视觉知识星球
开始面向外开放啦👇👇👇
下载1:OpenCV-Contrib扩展模块中文版教程 在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。 下载2:Python视觉实战项目52讲 在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。 下载3:OpenCV实战项目20讲 在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。 交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~