Navigation

    Gpushare.com

    • Register
    • Login
    • Search
    • Popular
    • Categories
    • Recent
    • Tags

    高精度分割 | SharpContour: 用于实例分割的轮廓边界细化算法

    CV领域
    1
    1
    72
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 189****6672
      189****6672 last edited by

      高精度分割 | SharpContour: 用于实例分割的轮廓边界细化算法

      论文标题:SharpContour: A Contour-based Boundary Refinement Approach for Efficient and Accurate Instance Segmentation

      论文地址: https://arxiv.org/pdf/2203.13312.pdf

      论文代码:None

      image-20220609195438136

      摘要

      1. 引入主题: 实例分割性能已经达到较高水平,但边界区域的质量仍然不令人满意,这导致边界细化受到越来越多的关注。对于实际应用,理想的后处理细化方案需要准确、通用和高效。
      2. 现存问题: 然而,大多数现有方法都支持像素级细化,这要么会带来巨大的计算成本,要么会专门针对不同的主干模型进行设计。而基于轮廓的模型是有效且通用的,可以与任何现有的分割方法相结合,但它们通常会生成过度平滑的轮廓,并且往往在拐角区域失败。
      3. 解决方法: 论文提出了一种有效的基于轮廓的边界细化方法SharpContour,用于处理边界区域的分割。结合实例感知点分类器设计了一种新的轮廓演化过程。通过以离散方式更新偏移来迭代变形轮廓。与现有的轮廓提取方法不同,SharpContour更独立地估计每个偏移量,以便预测更清晰、更准确的轮廓。值得注意的是,我们的方法是通用的,能够以较小的计算成本无缝地处理各种现有模型。
      4. 实验表明,SharpContour在保持高效率的同时获得了竞争优势。

      image-20220609195532847

      算法

      image-20220609195627744

      设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​,其在一次迭代中的移动过程可以写成:

      image-20220609200751502

      其中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​定义为

      image-20220609201305257

      其中|φ(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需要三个输入:初始轮廓、细粒度特征和动态参数。

      实验

      image-20220609203512413

      image-20220609203529066

      消融实验

      image-20220609203609069

      image-20220609203625232

      1 Reply Last reply Reply Quote 2
      • First post
        Last post