前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVPR2020:Deep Snake 用于实时实例分割

CVPR2020:Deep Snake 用于实时实例分割

作者头像
小白学视觉
发布2020-06-11 10:24:57
1.2K0
发布2020-06-11 10:24:57
举报

源码:https://github.com/zju3dv/snake/

本文的贡献

1) 提出了一种基于学习的用于实时实例分割的蛇算法,介绍了用于轮廓学习的圆形卷积。

2) 提出了一个两阶段的管道进行实例分割:初始轮廓提议和轮廓变形。在Cityscapes,KINS,SBD和CoCo数据集上展示了该方法的最新性能。对于512x512图像,该算法以32.3fps的速度运行,这对于实时应用程序非常有效。

研究背景

实例分割是许多计算机视觉(例如视频分析,自动驾驶和机器人抓取)的基石,该任务需要准确性和效率。大多数最新的实例分割方法在对象检测器给出的边界框内执行逐像素分割,这可能对不准确的边界框敏感。将对象形状表示为密集的二进制像素通常会导致昂贵的后处理。

本文介绍了一种新颖的基于轮廓的方法,简称深度蛇,用在实时实例分割上面。

与最近的一些直接从图像中回归对象边界点的坐标不同,深度蛇使用神经网络迭代变形初始轮廓以匹配对象便捷,从而通过基于学习的方法实现蛇算法的经典算法。对于轮廓上的结构化特征学习,建议使用圆形卷积,与通用图卷积相比,可以更好地利用轮廓的循环图结构。在深蛇的基础上,开发了一个两阶段的管道进行实例分割:初始轮廓建议和轮廓变形,可以处理对象定位中的错误。

与基于像素的表示相反,轮廓不限于边界框内,且具有较少的参数。这便是蛇或活动轮廓,给定一个初始轮廓,snake算法通过优化以低级特征(例如图像增强或梯度)定义的能量函数,将其迭代变形以匹配对象边界。

当然最近也有一些基于学习的分割方法,将对象表示为轮廓,尝试直接从RGB图像中回归轮廓顶点的坐标。尽管该法速度很快,大多不抵基于像素的方法。

基于像素的方法。大多数方法在区域提议中的像素级别上执行实例分割,在标准CNN上特别有效。代表性的是Mask R-CNN,检测对象,然后使用掩码预测器对提议的框内的实例进行分段。还有PANet等,这些方法的局限性在于无法解决本地化错误。作者的方法能将检测到的盒子变形到对象边界,因此对象形状的空间扩展将不受限制。

还有一些没有区域提议的基于像素的方法。其间,每个像素都会产生辅助信息,然后一种聚类算法会根据其信息将像素分组称为对象实例。由于掩模由密集的像素组成,因此后聚类算法往往很耗时。

基于轮廓的方法。在这些方法中,对象形状包括沿对象边界的一系列顶点。传统的蛇算法,首先引入了基于轮廓的图像分割算法。通过相对于轮廓坐标优化手工制作的能量,将初始轮廓变形到对象边界。为了提高这些方法的鲁棒性,以数据驱动的方式学习能量函数。代替迭代优化轮廓,最近的一些基于学习的方法尝试从RGB图像中回归轮廓点的坐标,这要快得多。但准确性与基于最新像素的方法不相上下。

在半自动注释领域,尝试使用其他网络而不是标准CNN来执行轮廓标注。使用递归神经网络顺序预测轮廓点。以期避免顺序推理,遵循蛇算法的流水线,并使用图卷积来预测轮廓变形的顶点方向偏移。此策略与基于像素的方法一样准确,可显著提高注释速度。但缺乏实例分割的管道,并且没有充分利用轮廓的特殊拓扑。深度蛇不使用轮廓图作为一般图形,而是利用循环图拓扑结构并引入圆形卷积以在轮廓上进行有效的特征学习。

研究成果

作者提出了一种基于学习的snake algorithm,用于实时实例分割的深度蛇。深度蛇将初始轮廓作为输入,并通过回归顶点偏移来使其变形。创新之处在于引入圆卷积,以便在轮廓上进行有效的特征学习。

如图,观察到的轮廓是一个循环图,由闭合的循环中连接的一系列顶点组成,每个顶点的度都是2,因此可以在顶点特征上应用标准的1D卷积。周期性的缘故,深度蛇引入了圆形卷积,这表明非周期性函数(一维核)以标准方式与周期函数(轮廓上定义的特征)进行卷积。圆形卷积不仅对每个顶点的特征进行编码,而且对相邻顶点之间的关系进行编码,循环卷积中的核函数相当于一个可学习的聚合函数,与通用GCN相比,具有更高的表达力和更好的性能。

作者基于深度蛇,开发了用于实例分割恶管道,给定初始轮廓,迭代变形以匹配对象边界并获得对象形状。以下两个事实使基于学习的蛇快速而准确,1)作者之法可以处理物体定位阶段的错误,thus allows a light detector. 2)轮廓表示具有比基于像素的表示更少的参数,且无需昂贵的后处理。

3. 研究方法

作者通过变形初始轮廓以匹配对象边界来执行对象分割。深度蛇将轮廓作为输入并预测指向对象边界的每个顶点的偏移量。用CNN主干从输入图像提取轮廓顶点上的特征。提出圆形卷积算法,以高效地学习轮廓,这有助于深度蛇学习变形,基于深度层,还开发了用于实例分割的管道。

3.1 基于学习的蛇算法

传统的蛇算法将顶点的坐标视为一组变量,并针对这些变量优化能量函数。但是这样的做法,使得优化趋向于找到局部最优解。

深度蛇直接学习端到端的方式演变轮廓。给定具有N个顶点的轮廓{xi | i = 1,…,N},首先为每个顶点构造特征向量。顶点的输入特征是基于学习的特征和顶点坐标的连接

其中F表示特征图。通过再输入图像上应用CNN来获得特征图F。CNN主干在实例分割管道中与检测器共享。使用在顶点坐标xi处的双线性插值来计算图像特征F(xi)。附加的顶点坐标用于编码轮廓顶点之间的空间关系。变形不应受图像中轮廓的平移影响,因此作者将xi的每个维减去所有顶点上的最小值。

给定轮廓上定义的输入特征后,深度蛇会引入圆形卷积进行特征学习。通常,轮廓顶点的特征可以视为一维离散信号f:Z -> RD和由标准卷积处理。这破坏课轮廓的拓扑,所以,作者将f扩展为周期信号:

并且使用定义的圆形卷积对周期性特征进行编码:

类似于标准卷积,可基于循环卷积构建网络层进行特征学习。集成到现代网络体系结构中,特征学习后,深度蛇将三个1x1卷积层应用于每个顶点的输出特征,并预测轮廓点和目标点之间的顶点方向偏移,这些偏移用于变形轮廓。圆形卷积核大小固定为9。

与通用卷积相比,圆形卷积更好地利用了轮廓的圆形结构。深度蛇优于标准CNN的一个重要优势是对象结构化预测,顶点的偏移量预测取决于相同轮廓的其他顶点。深度蛇将为远离对象的顶点预测更合理的偏移。

网络结构

深度蛇由:骨架,融合块和预测头三部分组成。以轮廓为输入,并输出顶点偏移以使轮廓变形。基于深度蛇,提出了一个两阶段的管道进行实例分割;初始轮廓提议和轮廓变形。检测器建议的盒子给出菱形轮廓,通过深度蛇将四个顶点移动至极点。迭代变形。

骨干网由8个“CirConvBn-ReLU”层组成,并对所有剩余的跳过连接。CirConv表示圆形卷积。融合块旨在以多种比例将信息融合到所有轮廓点上。连接主干中所有层的要素,通过1x1卷积层转发之,进行最大池化。将融合的特征与每个顶点的特征连接在一起。预测头将三个1x1卷积层应用于顶点特征并输出顶点方向偏移。

3.2 深度蛇进行实例分割

上图b中,将深度蛇与目标检测器结合在一起。检测器首先产生用于构造钻石轮廓的物体边界框。然后,深度蛇将钻石顶点移动到极点,这些极点用于构造八边形轮廓。深度蛇将八边形作为初始轮廓,迭代变形以获得物体形状。

初始轮廓建议。大多需要精确的初始轮廓。选八边形作为初始轮廓,该八边形由四个极限点组成,

分别表示一个对象的顶部,最左侧,底部,最右侧的像素。给定一个检测到的对象框,在框的顶部,左侧,底部,右侧提取四个中心点

,将他们连接以获得菱形轮廓。将该轮廓作为输入并输出从每个顶点

指向

的四个偏移

。实际上是均匀的采样40个点以获得更多的上下文信息。

轮廓变形。从顶部极点开始,沿八边形轮廓均匀采样N个点。深度蛇将初始轮廓作为输入,并输出从每个顶点到目标节点的N个偏移,N:128可以覆盖大多数形状。

多组分检测。由于遮挡作用,某些对象分成多个部分。但是,轮廓只能勾勒出一个组件的轮廓。为克服之,建议使用另一个检测器来找到对象框中的对象组件。使用检测到的盒子,该方法执行RoIAlign来提取特征图,并在特征图上添加检测器分支以生成分量盒。对于检测到的组件,使用深度蛇进行分割,然后合并分割结果。

实施细节

训练策略。使用L1 loss学习两个变形过程。极端点预测的损失函数定义为:

是预测的极端点,迭代轮廓变形的损失函数定义为:

是变形的轮廓点,

地面真相边界点。

检测器。作者采用CenterNet作为所有实验的检测器。将任务重新定义为关键点检测问题,在速度和准确性之间折中。对象检测器输出特定于类的框,元件盒检测器,采用与类无关的CenterNet。给定HxWxC特征图,与类无关的CenterNet输出代表组件中心得HxWx1张量和代表盒子尺寸的HxWx2张量。

数据集和指标:

Cityscapes:2975training,500validation,1525 testing images。

KINS:7474个training,7517个testing images。

SBD:5623个训练图像和5732测试图像。

COCO:115k training,5K validation 和 20K testing images。

对SBD数据集进行消融研究,它可以充分评估各种物体形状的能力。对三个提议的组件进行了评估,包括网络体系结构,初始轮廓提议和圆形卷积。学习率从1e-4开始。

SBD val集的消融研究。基线是Curve-gcn与CenterNet的直接组合。第二种模型保留了图卷积,并用提出的模型替代了网络体系结构。

在SBD上具有不同卷积运算符和不同迭代的模型的结果。在所有推理迭代过程中,循环卷积的性能优于图卷积。作者发现添加更多的迭代并不一定会提高性能,这表明使用更多的迭代来训练网络可能会更加困难。

与最新方法的比较

SBD上的图形卷积(顶部)和圆形卷积(底部)之间的比较两次迭代的循环卷积的结果在视觉上要好于三次迭代的图形卷积的结果。

将本文方法与其他最新方法在Cityscapes验证和测试集上进行比较。仅使用精细注释,本文方法可以实现最新的性能。

在Ap度量上与KINS数据集上的比较,本文方法实现了最佳性能。

与SBD数据集上其他基于轮廓的方法进行了比较。通过回归形状矢量预测对象轮廓。本论文里的方法更加精确。

COCO表现,类似于SBD的实验,没有采用多成分检测策略。使用多尺度数据增强进行训练,没有技巧的情况下用原始图像分辨率进行测试。学习率从1e-4开始,在80和120epochs时下降一半。

本文算法在特定台式机上运行时间如上表格。CenterNet:18.4ms,初始轮廓建议3.1ms,轮廓变形:3.3ms。本法输出对象边界,不需要后采样之类的后处理。

结论

我们提出了一种基于学习的用于实时实例分割的蛇算法,该算法引入了圆形卷积,可以在轮廓上进行有效的特征学习,并为轮廓变形回归顶点方向的偏移量。在深度蛇的基础上我们开发了一个两阶段的管道用于实例分割:初始轮廓建议和轮廓变形。与直接回归对象边界点的坐标相比,该管线具有更好的性能。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白学视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档