高精度分割 | SharpContour: 用于实例分割的轮廓边界细化算法
-
高精度分割 | SharpContour: 用于实例分割的轮廓边界细化算法
论文标题:SharpContour: A Contour-based Boundary Refinement Approach for Efficient and Accurate Instance Segmentation
论文地址: https://arxiv.org/pdf/2203.13312.pdf
论文代码:None
摘要
- 引入主题: 实例分割性能已经达到较高水平,但边界区域的质量仍然不令人满意,这导致边界细化受到越来越多的关注。对于实际应用,理想的后处理细化方案需要准确、通用和高效。
- 现存问题: 然而,大多数现有方法都支持像素级细化,这要么会带来巨大的计算成本,要么会专门针对不同的主干模型进行设计。而基于轮廓的模型是有效且通用的,可以与任何现有的分割方法相结合,但它们通常会生成过度平滑的轮廓,并且往往在拐角区域失败。
- 解决方法: 论文提出了一种有效的基于轮廓的边界细化方法SharpContour,用于处理边界区域的分割。结合实例感知点分类器设计了一种新的轮廓演化过程。通过以离散方式更新偏移来迭代变形轮廓。与现有的轮廓提取方法不同,SharpContour更独立地估计每个偏移量,以便预测更清晰、更准确的轮廓。值得注意的是,我们的方法是通用的,能够以较小的计算成本无缝地处理各种现有模型。
- 实验表明,SharpContour在保持高效率的同时获得了竞争优势。
算法
设C(0)C^{(0)}C(0):{xi | i=1,…,N}为初始轮廓顶点,由现成的实例分割方法获得。SharpContour通过迭代移动顶点以接近实例的实际边界。为了执行轮廓迭代操作,设计了一个迭代过程,使顶点沿其法线方向进行移动。
轮廓迭代方法的关键挑战是准确预测每个顶点的偏移量。与现有方法一次直接回归所有顶点的偏移量(这通常容易出错并导致轮廓过度平滑)不同,SharpContour以离散方式迭代调整顶点。
由于直接回归偏移量的固有挑战,SharpContour将此问题转换为基于分类的分类的问题来解决。具体而言,提出了一种实例感知点分类器(IPC)φ(xi)\varphi\left(x_{i}\right)φ(xi),该分类器预测顶点xix_ixi的状态,指示其相对于实际边界的相对位置(即内部或外部),以便可以确定顶点是否应沿法线方向的哪个方向行进。如图2所示。
Contour Evolution轮廓迭代
给定轮廓顶点xix_ixi,其在一次迭代中的移动过程可以写成:
其中did_idi是移动方向,sis_isi是移动步长,mmm是移动步数。
对于每个顶点,φ(xi)\varphi\left(x_{i}\right)φ(xi)将在[0,1]中输出一个标量值,表示xix_ixi位于对象外部(即φ(xi)\varphi\left(x_{i}\right)φ(xi)=1)或内部(即φ(xi)\varphi\left(x_{i}\right)φ(xi)=0)的概率。φ(xi)\varphi\left(x_{i}\right)φ(xi)=0.5表示IPC不确定该点是在对象内部还是外部,这意味着该点可能位于边界上。
为了定义sis_isi,考虑了对象大小(根据边界框的面积,表示为A)和IPC中顶点的不确定性。实际上,如果对象较大,步长也应为更大,反之亦然。如果顶点的不确定性较高,则步长应较小,以实现更精细的预测,反之亦然。
为了具体反映这些,将步长sis_isi定义为
其中|φ(xi)\varphi\left(x_{i}\right)φ(xi)− 0.5 |表示IPC的xix_ixi状态不确定度。
对于移动步数mmm,理想情况下,期望顶点逐渐向实际对象边界移动。因此,沿着did_idi方向一步一步地移动顶点,每次移动之后,检查当前位置上φ的值。如果到达一个位置,φ表示顶点从边界的内部移动到外部,或者相反,那么停止移动。称该点为位置翻转点。<u>从原始位置到翻转点的移动次数就是我移动步数mmm</u>。
实例感知点分类器(IPC)
实例感知点分类器(IPC)的目的是预测给定顶点xix_ixi的状态,以告知其相对于实际对象边界的相对位置。
简而言之,IPC将从高分辨率特征图中提取的xix_ixi的细粒度特征以及xix_ixi与其边界的相对位置作为输入,以预测xix_ixi位于对象内部还是外部的概率。
重要的是,动态预测每个实例的φ\varphiφ参数,使得φ\varphiφ具有实例意识,这在推断顶点相对于实例的位置方面起着重要作用。
细粒度特征
为了能够识别顶点迭代的细微细节,使用实例分割主干生成的高分辨率特征图中的细粒度特征作为φ\varphiφ的输入。并对高分辨率特征图上添加了一个卷积层,对特征进行进一步编码,以利于φ\varphiφ的轮廓重新细化和降维。
让xix_ixi的编码细粒度特征为fif_ifi。将fif_ifi与xix_ixi的相关坐标cic_ici连接,形成一个新的细粒度位置感知特征向量fic=[fi;ci]f_{i}^{c}=\left[f_{i} ; \quad c_{i}\right]fic=[fi;ci],它作为φ\varphiφ的输入来预测状态概率。
实例感知动态参数
仅根据细粒度特征,分类器仍然难以输出准确的不确定度。例如,具有相同特征的点可以位于一个实例的外部,但位于另一个实例的内部。
为了解决这个问题,分类器需要具有实例感知能力,并且有很强的全局信息捕捉能力来识别每个实例。
根据每个实例的特征,动态预测每个实例的分类因子φ\varphiφ的参数θ。该策略可以捕获强实例感知信息,因此可以区分不同实例下顶点的状态。
例如,在Mask R-CNN中加入了一个边界控制器头部,以获得每个实例的动态参数。边界控制器头是一个非常紧凑、重量轻的网络,有三个完全连接的层。该控制器头的输出尺寸与IPC的参数相同。通过与mask R-CNN的原始mask头共享特征,可以更好地利用实例感知特征,同时只需引入较小的计算成本。如图2所示。
因此,IPC可以写成φ(xi)=φθ([fi,ci])\varphi\left(x_{i}\right)=\varphi_{\theta}\left(\left[f_{i}, c_{i}\right]\right)φ(xi)=φθ([fi,ci])。
在论文的实现中,IPC是通过带有ReLU激活的三个隐藏层的MLP来实现的。sigmoid激活应用于其输出层。因此,IPC引入的额外成本是微乎其微的。
Instance Segmentation with SharpContour
在训练阶段,通过在真实实例边界附近随机采样像素来训练IPC。
在推理阶段,SharpContour从粗分割结果中获得初始轮廓,并可迭代轮廓演化过程进行细化。
通常,在使用现有实例分割方法时,SharpContour需要三个输入:初始轮廓、细粒度特征和动态参数。
实验
消融实验