作者 | VincentLee

来源 | 晓飞的算法工程笔记

介绍

实例分割是许多计算机视觉任务中的重要手段,目前大多数的算法都采用在给定的bbox中进行pixel-wise分割的方法。受snake算法和Curve-GCN的启发,论文采用基于轮廓的逐步调整策略,提出了Deep snake算法进行实时实例分割,该算法将初始轮廓逐渐优化为目标的边界,如图1所示,达到很好的性能且依然保持很高的实时性(32.3fps)  。  论文的主要贡献如下:

  • 提出基于学习的snake算法用于实时实例分割,对初始轮廓调整至目标边界,并且引入循环卷积(circular convolution)进行轮廓特征的学习。

  • 提出two-stage流程进行实例分割,先初始化轮廓再调整轮廓,两个步骤均可以用于修正初始定位的误差。

  • Deep snake能在多个实例分割数据集上达到SOTA,对于512的图片输入能达到32.3fps。

方法

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

Learning-based snake algorithm

传统的snake算法将顶点的坐标作为变量来优化人工设计的能量函数(energy function),通过最小化能量函数来拟合目标边界。由于能量函数通常是非凸的,而且需要基于低维图像特征进行人工设计,通常会陷于局部最优解。
  而deep snake则是直接从数据学习如何微调轮廓,对于个顶点,首先构造每个顶点的特征向量,顶点的特征为对应的网络特征和顶点坐标的concate,其中为主干网络输出的特征图,为顶点处的双线性差值输出,附加的用于描述顶点间的位置关系,是平移不变的,由每个顶点坐标减去轮廓中所有顶点的最小和得到相对坐标。

在获得顶点特征后,需要对轮廓特征进一步学习,顶点的特征可以视作1-D离散信号,然后使用标准卷积对顶点逐个进行处理,但这样会破坏轮廓的拓扑结构。因此,将顶点特征定义为公式1的周期信号,然后使用公式2的循环卷积进行特征学习,为可学习的卷积核,为标准卷积操作。

循环卷积操作如图2所示,与标准的卷积操作类似,可以很简单地集成到目前的网络中。在特征学习后,对每个顶点使用3个卷积层进行偏移的输出,实验中循环卷积的核大小固定为9。

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

Deep snake for instance segmentation

将deep snake加入到目标检测模型中进行实例分割,流程如图b所示。模型首先产生目标框,将其构建成菱形框,然后使用deep snake算法将菱形顶点调整为目标极点,构造八边形轮廓,最后进行迭代式deep snake轮廓调整得到目标形状

  • Initial contour proposal

论文采用ExtreNet的极点思想,能够很好地包围物体。在得到矩形框后,获取4条边的中心点连成菱形轮廓,使用deep snake对菱形轮廓调整成极点,然后每个极点放置一条边,连接边构造多边形,每个极点的边为其对应的bbox边的,若边超过原bbox范围会被截断。在实际使用时,菱形轮廓输入deep snake前会平均上采样到40个点(有助于deep snake计算),但损失函数计算只考虑的对应偏移

  • Contour deformation

对八边形平均采样个点,将上极点作为起点,同样地,GT轮廓对物体边缘平均采样个点,将靠近的点作为起点,一般为128。如果顶点离GT很远,很难直接正确调整,于是采用迭代式地进行deep snake调整,实验采用的迭代次数为3次。

轮廓是目标空间位置的一种扩展表示方法,通过调整轮廓到物体边缘能够帮助解决detector的定位误差

  • Handling multi-component objects

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

实现细节

Training strategy

极点的损失函数如公式3,为预测的极点。

迭代轮廓调整的损失函数如公式4,为调整后的顶点,为对应的GT边缘点。对于检测部分,则采用跟原检测函数一样的损失函数。

Detector

使用CenterNet作为检测器,对于物体检测,使用跟原来一样的设定输出类别相关的box,而对于组件检测,则使用类不可知的CenterNet,对于的特征图,输出的中心点heatmap和的box大小特征图。

实验

Ablation studies

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

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

Comparison with the state-of-the-art methods

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

Running time

结论

论文提出基于轮廓的实例分割方法Deep snake,轮廓调整是个很不错的方向,引入循环卷积,不仅提升了性能还减少了计算量,保持了实时性,但是Deep snake的大体结构不够优雅,应该还有一些工作可以补。

论文地址:https://arxiv.org/abs/2001.01629

论文代码:https://github.com/zju3dv/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

【end】◆精彩推荐◆推荐阅读百万人学AI:CSDN重磅共建人工智能技术新生态清华学霸组团的工业AIoT创企再获数千万融资:玩家应推动在边缘 AI 芯片上跑算法阿里文娱测试实战:机器学习+基于热度链路推荐的引流,让对比测试更精准另一种声音:容器是不是未来?1 分钟抗住 10 亿请求!某些 App 怎么做到的?| 原力计划探索比特币独特时间链、挖矿费用及场外交易的概念你点的每个“在看”,我都认真当成了AI

基于轮廓调整的SOTA实例分割方法,速度达32.3fps | CVPR 2020相关推荐

  1. 一种基于分层聚合的3D实例分割方法(ICCV 2021)

    Hierarchical Aggregation for 3D Instance Segmentation (ICCV 2021) 代码地址:https://github.com/hustvl/HAI ...

  2. CVPR 2021 | 基于Transformer的端到端视频实例分割方法

    实例分割是计算机视觉中的基础问题之一.目前,静态图像中的实例分割业界已经进行了很多的研究,但是对视频的实例分割(Video Instance Segmentation,简称VIS)的研究却相对较少.而 ...

  3. 干货丨计算机视觉必读:图像分类、定位、检测,语义分割和实例分割方法梳理(经典长文,值得收藏)

    文章来源:新智元 作者:张皓 [导读]本文作者来自南京大学计算机系机器学习与数据挖掘所(LAMDA),本文直观系统地梳理了深度学习在计算机视觉领域四大基本任务中的应用,包括图像分类.定位.检测.语义分 ...

  4. 语义分割源代码_综述 | 基于深度学习的实时语义分割方法:全面调研

    34页综述,共计119篇参考文献.本文对图像分割中的最新深度学习体系结构进行了全面分析,更重要的是,它提供了广泛的技术列表以实现快速推理和计算效率. A Survey on Deep Learning ...

  5. 2023-一种无监督目标检测和实例分割方法【Cut and Learn for Unsupervised Object Detection and Instance Segmentation】

    Cut and Learn for Unsupervised Object Detection and Instance Segmentation 无监督目标检测和实例分割的剪切与学习 Faceboo ...

  6. 2020CVPR解读之何恺明新作PointRend:将图像分割视作渲染问题,显著提升语义/实例分割性能

    2020CVPR解读之何恺明新作PointRend:将图像分割视作渲染问题,显著提升语义/实例分割性能 论文原文 源码 [导读]Facebook人工智能实验室何恺明团队提出一种高效.高质量的目标和场景 ...

  7. 隆重介绍!一款新型基于姿势的人像实例分割框架

    全文共2493字,预计学习时长15分钟或更长 拍摄:Jezael Melgoza 来源:Unsplash 近年来,由于现实应用需求大,在计算机视觉领域有关"人"的研究层出不穷,实体 ...

  8. 字节跳动实习生提出实例分割新方法:性能超过何恺明Mask R-CNN

    乾明 十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 框架更简单,但实现了比Mask R-CNN还好的性能. 这是字节跳动实习生提出的实例分割新方法,名为SOLO. 核心在于通过引入&qu ...

  9. “先粗后精”的实例分割,BPR:使用Crop-then-Refine的性能提高方法

    题目:Look Closer to Segment Better:Boundary Patch Refinement for Instance Segmentation 论文:https://arxi ...

最新文章

  1. IDC评述网:2012年11月全国IDC品牌排行榜
  2. jQuery框架学习第二天:jQuery中万能的选择器
  3. li在ie6 、ie7里莫名其妙的出现几px的margin
  4. Leetcode 127. 单词接龙 解题思路及C++实现
  5. 1123 Is It a Complete AVL Tree (30 分)【难度: 难 / 平衡树 未完成】
  6. 循环判定闰年的程序_C语言入门教程(六)for循环
  7. linux下查看mysql的当前连接情况
  8. easyui select ajax,easyui的combobox根据后台数据实现自动输入提示功能
  9. PHP标题获取数据库内容,php – 如何从数据库获取项目的标题并将其发送到CodeIgniter中的标题模板...
  10. 2.冒泡排序----还是不懂,先记录下来
  11. 大规模分布式系统概念介绍
  12. 数据挖掘实战—餐饮行业的数据挖掘之数据预处理
  13. 系统分析员要了解什么知识?
  14. 蓝牙音乐SRC侧的安卓实现
  15. 分享112个HTML娱乐休闲模板,总有一款适合您
  16. Visual Paradigm 在 Linux 和 Unix 系统电脑上安装教程
  17. 2021年上海第一批高新技术企业上海熙有网络科技集团榜上有名
  18. Linux驱动之 原子操作
  19. 教你成功在Win10系统中运行docker
  20. 爱情里没有谁对谁错 - 郑源

热门文章

  1. js中Dom元素及获取方法
  2. java web项目流程小结
  3. ls和find命令查找的一些小技巧
  4. HAProxy+Keepalived高可用负载均衡配置
  5. 炎热夏天到底如何让自己更凉快? - 生活至上,美容至尚!
  6. html图片缩放6,四款css 图片按比例缩放实例(兼容ie6,7,firefox)
  7. 易语言静态连接器提取_易语言静态编译链接器切换工具
  8. 电动汽车换电的优缺点分析
  9. 算法总结---最常用的五大算法(算法题思路)
  10. 前端 ----jQuery的动画效果