实例分割:Dense RepPoints论文个人见解

it2025-06-27  9

Dense RepPoints: Representing Visual Objects with Dense Point Sets

本文为个人阅读论文后总结,各板块只记录本人阅读时认为比较重要的部分

摘要

Dense RepPoints采取用大量点来描述一个物体的方法,包括在边框级别和在像素级别。


简介

RepPoints中只采样9个点限制了该类思想继续反映更加精细的结构如像素级别实例分割的能力。而这里采用了大量的点加上一些可选项来详细地表示一个物体。比如对于实例分割,Dense RepPoints可以建模出通用的物体分割器如下图二三列: 它还可以建模出一种binary boundary mask,结合了轮廓的描述效率和网格掩模对精确点定位的依赖性(这里还不太懂想表达什么,不过看图就知道效果了),如上图第四列。 为了学习和实现binary boundary mask,采用了三种方法,第一种是一个距离转换采样的方法(DTS),它基于目标轮廓的距离变换图,通过概率采样将ground-truth边界掩膜转换为点集。通过这个方法,Dense RepPoints的预测以及ground thuth都成为了点集。第二个方法是set-to-set的有监督loss,传统的点到点的损失需要给每个点提取一个几何意义,这通常很难并且不准确。第三种方法是基于Delaunayy triangulation的将RepPoints转换为任意分辨率mask的方法。 但是因为采取了大量的点,计算量直线上升,于是出现了复杂度的问题,这里采取的措施大致有两类。他们减少了计算量但是准确度基本不变。这两种方法分别是group pooling和shared offset/attribute fields (这简介啥都说了点啥都迷迷糊糊的)


相关工作

Bounding box representation 当下最强的two-stage的目标检测器在这个pipeline中用bounding box当做anchor,proposal以及最终的预测,有一些早期的工作还用过rotated boxes, 但是现在的主要还是矩形框形式。Non-box的物体检测 对于实例分割,物体的边框要么是有一个二分类的掩膜来决定,要么是由一系列polygons构成,但是现在最主要的还是二分类掩膜。Dense RepPoints在anchor free上以后大有可为。Point Set检测 现在有许多研究致力于在3-D空间中生成点云(point clouds)。一种直接实例化有序点集进行二维感知的方法是2D-pose,它直接解决了语义分割相关的一些问题。最近火起来的还有使用某种特殊的点来定位,包括corener points, extereme points, center point等.这些点的预测还是为了覆盖bbox, 实际上有些粗略并且欠缺少语义信息。RepPoints生成了可学习的点的集合,从定位和识别的反馈进行学习。但是用的点太少了,限制了表现更出色的潜能。

方法

引言介绍各部分在讲什么,这里不再写

回顾RepPoints在目标检测中的使用 一系列的自适应性点集用来表示一个物体: 其中 是第i个代表的点,xi和yi是初始化的位置,n是点的数目。点的特征F§从特征图中进行双线性插得到,另外一组点的特征F®被定义为如下所有点的连接: 这是用来识别分类的。而一组点的bbox可以通过一个转换来得到。在训练期间,精确的监督和annotation是不需要的。这些点会通过bbox的分类损失和定位损失移动到合适的位置: 由于双线性插值的转换公式和点—>bbox的转换公式对于点的位置都是可微的。于是这些点适合于同时预测物体分分类和精确位置。DenseRepPoints 以前的RepPoints选的点太少了,只够物体检测,因为分类和边界框只需要少数几个点就确定了。像素级别预测不行,需要精确预测,于是大量的点加上代表属性的向量就比较重要了,于是每组点的形式如下: 其中ai则是一个与点i个点相关的属性向量。在实例分割中,这个向量可以是一个标量,代表着每个点前景图的得分。loss分为了以下四项的和: 我先其中前两项是bbox级别的loss,后两项是点级别的loss高效计算

Group pooling: 它被用在分类网络分支上。现在给出n个点,我们均等地把他们划分成k个group,每个group有n/k个点,如果k不能整除那就最后一个group有更少的点。然后去算group 的feature的时候,通过max-pooling对group内的每个点的特征进行加和,然后提取出代表这一组的一个特征。最后一个1*1的卷积作用于连接起来的全部的group的group features,这样,目标的特征就是由整个group的特征来代替了,将计算的复杂度从O(n)降低到O(k)。实验还发现点更多时也不必要增加k的值,实验中k=9,效果不错

shared offset fields: RepPoints中计算offsets的复杂度是O(n^2),Dense RepPoints用不得。和分类网络不同的是,我们需要每个点的具体信息来定位和调整,于是不能简单的也使用group操作。实验人员发现,边框的调整其实只需要当前点的位置信息就够了。也就是说每次对一批点进行调整的时候只生成n个offset field maps,然后对于这n个点,第i个点的offset就从第i个offset field map中对应的图中位置读出来。(这里的offset map大小和特征图应该一样的,特征图有多大offset map就有多大),而原来的时候则是要对这个点再做一次卷积,即第i张图记录了一堆offset值,要再进行一下操作才得到最终的offset。现在呢则是直接用对应位置的offset值和当前的位置相连用一下双线性插值得到下一次的点。通过group pooling和shared offset fields,那么即使有很多很多点被使用,那么增加的浮点数运算次数和整个网络比起来也不算太多。

Shared attribute map 预测每个点的前景得分的思路和shared offset fields思路相近。将这些点分成几个通道,然后根据生成的图直接在对应通道中读出来分数,实际上每个通道都有明确的含义。

不同的采样策略 如何有效得表示物体的分割信息是一个核心问题。边框(Contours)和掩膜(binary masks)是两个经典的方法。在Dense RepPoints中,可以通过不同的采样策略模拟上述方式。如果要实现掩膜,那么可以对物体边框上的网格点进行均匀采样;如果要实现Contours,那么要在物体边界框上采样全部点。这两种方法被叫做Grid Sampling和Boundary Sampling,除此之外还有一种策略,叫他distance transfrom sampling,将前两者的优势结合起来。

Boundary Sampling 实例分割可以被定义为一个闭合的物体边框内部的区域。轮廓点是物体的表征,论文中把他们的得分全部设为1得到contour

Grid Sampling 一个二值的掩膜可以通过均匀采样网格中全部的点来实现,并且每个被采样的点都还带一个二分类的值,这个值用来表示它是前景还是背景。采样的公式如下: 其中n为点的个数, α 和 β \alpha 和 \beta αβ为可学习参数。

Distance transform sampling(Binary Boundary Mask) 前两者都既有优势和应用。一般来说,boundary sampling更适合小型的物体识别,grid sampling更适合于学习,这主要是因为它的额外分数(前景得分)避免了精确的点的定位。为了集合两种方法的优势,这里采用第三种方法。在这个策略中,在物体边界的点被采样的更多,其他地方的点采样的更少。在训练过程中,ground truth的采样也和物体边界的距离有关: 其中,P ( p ) 表示点p 的采样概率,D ( p ) 表示点p 到目标边界的正则化距离, ϵ \epsilon ϵ表示边界点集合,g表示衰减函数。衰减函数的定义为: 其中, δ \delta δ的值在论文中被设置为0.04。则这个公式的含义可以理解为如果点到边界的距离小于 δ \delta δ,则会以一定概率被采样到;否则不会被采样。

采样监督(Sampling supervision) 在训练中点的分类损失和回归损失(注意是点不是bbox)被用来监督不同的分割情况(different segment representations)。在论文中,分类损失就是普通的交叉熵函数加上之后的softmax激活层,如果这个点在前景就被打上标签为正的,否则就是负的。 对于回归的监督,可以采用一种point-to-point的方法,其中每个ground truth的点都被赋值给了特定的集合意义。 其中

分别表示预测点集合和真实点几何。但是,如何给每个点赋予几何信息是很困难的。因此,论文提出针对集合端的损失函数:

Represent Points to Object Segment Dense RepPoints通过一种稀疏的、无网格的方式来表示物体分割,因此一个额外的后处理(post-processing)是需要的,用来把points变成binary mask。这里有两种方式实现: Concave Hull 使用阈值将预测的点二值化,然后计算他们的凹包来获得其二值掩膜Triangulation 三角测量通常用于在计算机图形学中从点集合获得网格,论文基于三角测量获得目标掩膜。具体地,首先使用诺尼三角网根据预测得点集合将区域分割成三角形。然后,空间中得点会落入三角形内部,其得分通过三角形的重心坐标的线性插值得到。最后,使用阈值来将得分图二值化并获得最终的掩膜结果。

实验部分没有详读,略

最新回复(0)