沃保网会员专题:Deep Snake : 基于轮廓调整的SOTA实例支解方式,速率32.3fps | CVPR 2020

admin 2个月前 (05-01) 科技 10 0

论文提出基于轮廓的实例支解方式Deep snake,轮廓调整是个很不错的偏向,引入循环卷积,不仅提升了性能还减少了盘算量,保持了实时性,然则Deep snake的大要结构不够优雅,应该另有一些事情可以补,推荐人人阅读

泉源:晓飞的算法工程条记 民众号

论文: Deep Snake for Real-Time Instance Segmentation

  • 论文地址:https://arxiv.org/abs/2001.01629
  • 论文代码:https://github.com/zju3dv/snake/

Introduction

  实例支解是许多盘算机视觉义务中的主要手段,现在大多数的算法都接纳在给定的bbox中举行pixel-wise支解的方式。受snake算法和Curve-GCN的启发,论文接纳基于轮廓的逐步调整计谋,提出了Deep snake算法举行实时实例支解,该算法将初始轮廓逐渐优化为目的的界限,如图1所示,到达很好的性能且依然保持很高的实时性(32.3fps)。
  论文的主要孝敬如下:

  • 提出基于学习的snake算法用于实时实例支解,对初始轮廓调整至目的界限,而且引入循环卷积(circular convolution)举行轮廓特征的学习。
  • 提出two-stage流程举行实例支解,先初始化轮廓再调整轮廓,两个步骤均可以用于修正初始定位的误差。
  • Deep snake能在多个实例支解数据集上到达SOTA,对于512的图片输入能到达32.3fps。

Proposed approach

  Deep snake方式将初始轮廓逐渐优化为目的的界限来举行目的支解,即将物体轮廓作为输入,基于CNN主干特征展望每个极点的偏移量。为了充分利用轮廓拓扑结构,论文使用循环卷积(circular convolution)举行极点特征的学习,有助于学习轮廓的优化,并基于deep snake提出了一套实时实例支解的流程。

Learning-based snake algorithm

  传统的snake算法将极点的坐标作为变量来优化人工设计的能量函数(energy function),通过最小化能量函数来拟合目的界限。由于能量函数通常是非凸的,而且需要基于低维图像特征举行人工设计,通常会陷于局部最优解。
  而deep snake则是直接从数据学习若何微调轮廓,对于$N$个极点${ x_i | i=1, ..., N}$,首先组织每个极点的特征向量,极点$x_i$的特征$f_i$为对应的网络特征和极点坐标的concate$[F(x_i);x_i{'}]$,其中$F$为主干网络输出的特征图,$F(x_i)$为极点$x_i$处的双线性差值输出,附加的$x_i{'}$用于形貌极点间的位置关系,$x_i^{'}$是平移稳定的,由每个极点坐标减去轮廓中所有极点的最小$x$和$y$获得相对坐标。

  在获得极点特征后,需要对轮廓特征进一步学习,极点的特征可以视作1-D离散信号$f:\mathbb{Z}\to \mathbb{R}^D$,然后使用尺度卷积对极点逐个举行处置,但这样会损坏轮廓的拓扑结构。因此,将极点特征界说为公式1的周期信号,然后使用公式2的循环卷积举行特征学习,$k:[-r,r]\to \mathbb{R}^D$为可学习的卷积核,$*$为尺度卷积操作。

  循环卷积操作如图2所示,与尺度的卷积操作类似,可以很简单地集成到现在的网络中。在特征学习后,对每个极点使用3个$1\times 1$卷积层举行偏移的输出,实验中循环卷积的核巨细固定为9。

  图a展示了deep snake的细节结构,输入为初始轮廓,主干包罗8个"CirConv-Bn-ReLU"层,每层都使用残差毗邻,Fusion block用于融合主干网络中的多尺度轮廓特征,Prediction head使用3个$1\times 1$卷积输出每个极点的偏移。

Deep snake for instance segmentation

  将deep snake加入到目的检测模子中举行实例支解,流程如图b所示。模子首先发生目的框,将其构建成菱形框,然后使用deep snake算法将菱形极点调整为目的极点,组织八边形轮廓,最后举行迭代式deep snake轮廓调整获得目的形状

  • Initial contour proposal

  论文接纳ExtreNet的极点头脑,能够很好地笼罩物体。在获得矩形框后,获取4条边的中心点${x_i^{bb} | i=1,2,3,4 }$连成菱形轮廓,使用deep snake对菱形轮廓调整成极点${x_i^{ex} | i=1,2,3,4 }$,然后每个极点放置一条边,毗邻边组织多边形,每个极点的边为其对应的bbox边的$1/4$,若边跨越原bbox局限会被截断。在实际使用时,菱形轮廓输入deep snake前会平均上采样到40个点(有助于deep snake盘算),但损失函数盘算只思量$x_i^{bb}$的对应偏移

  • Contour deformation

  对八边形平均采样$N$个点,将上极点$x_1{ex}$作为起点,同样地,GT轮廓对物体边缘平均采样$N$个点,将靠近$x_1{ex}$的点作为起点,$N$一样平常为128。若是极点离GT很远,很难直接准确调整,于是接纳迭代式地举行deep snake调整,实验接纳的迭代次数为3次。
  轮廓是目的空间位置的一种扩展示意方式,通过调整轮廓到物体边缘能够辅助解决detector的定位误差

  • Handling multi-component objects

  由于遮挡,一个实例可能包罗多个组件,然而一个轮廓只能勾勒出bbox内的一个组件。为了解决这个问题,使用RoIAlign来提取初始bbox特征,然后配合detector来检测组件的box,再对每个box举行上述的轮廓调整,最后连系初始bbox内相同种别的组件输出最终的物体形状。

Implementation details

Training strategy

  极点的损失函数如公式3,$\tilde{x}_i^{ex}$为展望的极点。

  迭代轮廓调整的损失函数如公式4,$\tilde{x}_i$为调整后的极点,$x_i^{gt}$为对应的GT边缘点。对于检测部门,则接纳跟原检测函数一样的损失函数。

Detector

  使用CenterNet作为检测器,对于物体检测,使用跟原来一样的设定输出种别相关的box,而对于组件检测,则使用类不可知的CenterNet,对于$H\times W\times C$的特征图,输出$H\times W\times 1$的中心点heatmap和$H\times W\times 2$的box巨细特征图。

Experiments

Ablation studies

  Baseline将轮廓视为图结构,然后使用GCN举行轮廓调整,初始轮廓为围绕bbox的椭圆,Arichitecture加入Fusion block,Initial proposal加入论文的轮廓初始化方式,最后是将GCN修改为循环卷积,可以看到每个步骤都对AP有提升。

  论文也对比了卷积类型以及迭代次数对结构的影响,可以看到循环卷积的效果比GCN要好。

Comparison with the state-of-the-art methods

  论文在差别的数据集上都取得了不错的效果,作者在每个数据集上的训练参数都有点不一样,详细参数可以看看原文

Running time

Conclusion

  论文提出基于轮廓的实例支解方式Deep snake,轮廓调整是个很不错的偏向,引入循环卷积,不仅提升了性能还减少了盘算量,保持了实时性,然则Deep snake的大要结构不够优雅,应该另有一些事情可以补,推荐人人阅读

参考内容

  • Snakes: Active Contour Models - http://www.cs.ait.ac.th/~mdailey/cvreadings/Kass-Snakes.pdf
  • Fast Interactive Object Annotation with Curve-GCN - https://arxiv.org/pdf/1903.06874.pdf



若是本文对你有辅助,贫苦点个赞或在看呗~
更多内容请关注 微信民众号【晓飞的算法工程条记】

,

sunbet申官网下载

欢迎进入sunbet申官网下载!Sunbet 申博提供申博开户(sunbet开户)、SunbetAPP下载、Sunbet客户端下载、Sunbet代理合作等业务。

皇冠体育声明:该文看法仅代表作者自己,与本平台无关。转载请注明:沃保网会员专题:Deep Snake : 基于轮廓调整的SOTA实例支解方式,速率32.3fps | CVPR 2020

标签列表

    文章归档

    站点信息

    • 文章总数:391
    • 页面总数:0
    • 分类总数:8
    • 标签总数:746
    • 评论总数:0
    • 浏览总数:4901