本文针对自己所看的 Deep Snake 做一个总结和存档,也方便其他同学学习 —— 阿波,2020.4.23
论文原文:Deep Snake for Real-Time Instance Segmentation
代码地址: snake
本篇文章工作有以下贡献:
•提出了一种基于学习的snake算法用于实时实例分割,该算法将初始轮廓变形到对象边界,并引入循环卷积来进行轮廓特征学习。
•提出了一个两阶段的管道(pipeline ),例如分割:初始轮廓建议和轮廓变形。这两个阶段都可以处理初始对象定位中的错误。
•在城市景观、KIN 和 Sbd 数据集上展示了我们方法的最新表现。对于512×512幅图像,我们的算法以32.3fps的速度运行,这对于实时的实例分割是非常有效的。
检索目录
Abstract
本文提出了一种基于轮廓的深度snake方法用于实例的实时分割。与最近一些直接从图像中回归物体边界点坐标的方法不同,deep snake使用神经网络迭代地将初始轮廓变形到物体边界,这一方法用基于学习的方法实现了snake算法的经典思想。对于轮廓的结构化特征学习,我们提出在deep snake中使用循环卷积,与一般的图卷积相比,它更好地利用了轮廓的循环图结构。在deep snake的基础上,提出了一种两阶段的管道分割算法:初始轮廓提议和轮廓变形,可以处理初始目标定位中的误差。实验表明,该方法在实时分割实例的同时,在城市景观、Kins和Sbd数据集上都取得了良好的效果,在1080tigpu上对512×512幅图像的分割速度达到了32.3fps。
1. Introduction
实例分割是许多计算机视觉任务的基础,如视频分析、自动驾驶和机器人抓取等,这些任务要求准确和高效。大多数最先进的实例分割方法[17、25、4、18]在由对象检测器[34]给出的边界框内执行逐像素分割,该边界框可能对不精确的边界框敏感。此外,将对象形状表示为密集的二值像素通常会导致代价高昂的后处理。
[17] Kaiming He, Georgia Gkioxari, Piotr Doll´ar, and Ross Girshick. Mask r-cnn. In ICCV, 2017. 1, 2, 5, 6, 7, 8
[25] Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, and Jiaya Jia. Path aggregation network for instance segmentation. In CVPR, 2018. 1, 2, 6, 7
[4] Kai Chen, Jiangmiao Pang, Jiaqi Wang, Yu Xiong, XiaoxiaoLi,ShuyangSun,WansenFeng,ZiweiLiu,JianpingShi, Wanli Ouyang, et al. Hybrid task cascade for instance segmentation. In CVPR, 2019. 1
[18] Zhaojin Huang, Lichao Huang, Yongchao Gong, Chang Huang, and Xinggang Wang. Mask scoring r-cnn. In CVPR, 2019. 1
[34] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. In NeurIPS, 2015. 1
另一种形状表示是对象轮廓,它由沿对象轮廓的一系列顶点组成。与基于像素的表示相比,轮廓不受边界框的限制,参数较少。自从Kass等人的研讨会以来,这种基于轮廓的表示方法一直被用于图像分割。[20] 它被称为snake算法或活动轮廓模型。给定初始轮廓,snake算法迭代地将其变形到对象上.
[20] Michael Kass, Andrew Witkin, and Demetri Terzopoulos. Snakes: Active contour models. IJCV, 1(4):321–331, 1988. 1, 2, 3, 4
图1。深蛇的基本思想。给定初始轮廓,在每个顶点
(a)处提取图像特征。由于轮廓是一个循环图,因此在轮廓
(b)上应用循环卷积进行特征学习。蓝色、黄色和绿色节点分别表示输入特征、循环卷积核和输出特征
(c)最后,在每个顶点处回归偏移,使轮廓变形到对象边界
通过优化由低级图像特征(如图像强度或梯度)定义的能量函数来确定边界。虽然文献中已经开发了许多变体[5,6,14],但由于目标函数是手工构建的,且优化通常是非线性的,因此这些方法倾向于寻找局部最优解。
[5] Laurent D Cohen. On active contour models and balloons. CVGIP: Image understanding, 53(2):211–218, 1991. 1, 2
[6] Timothy F Cootes, Christopher J Taylor, David H Cooper, andJimGraham. Activeshapemodels-theirtrainingandapplication. CVIU, 61(1):38–59, 1995. 1, 2
[14] SteveRGunnandMarkSNixon. Arobustsnakeimplementation; a dual active contour. PAMI, 19(1):63–68, 1997. 1, 2
最近一些基于学习的分割方法[19,39]也将物体表示为轮廓,并尝试从RGB图像直接回归物体边界点的坐标。尽管这样的方法要快得多,但它们的性能不如基于像素的方法。相反,Ling等人。[23]采用传统snake算法的变形管道,训练神经网络将初始轮廓演化到目标边界。给定一个具有图像特征的轮廓,将输入轮廓视为一个图,利用图卷积网络(GCN)预测轮廓点与目标边界点之间的顶点偏移量。与基于像素的方法相比,该方法在速度上具有竞争力。然而,文献[23]中提出的方法是为了帮助注释而设计的,并且缺乏完整的自动实例分割管道。此外,将等高线视为具有一般GCN的一般图并不能充分利用等高线的特殊拓扑。
[19] Saumya Jetley, Michael Sapienza, Stuart Golodetz, and Philip HS Torr. Straight to shapes: Real-time detection of encoded shapes. In CVPR, 2017. 1, 2, 7, 8
[39] Wenqiang Xu, Haiyang Wang, Fubo Qi, and Cewu Lu. Explicitshapeencodingforreal-timeinstancesegmentation. In ICCV, 2019. 1, 2, 7, 8
[23] HuanLing,JunGao,AmlanKar,WenzhengChen,andSanja Fidler. Fast interactive object annotation with curve-gcn. In CVPR, 2019. 1, 2, 3, 4, 5, 6
本文提出了一种基于学习的snake算法deepsnake,用于实例的实时分割。受前面方法的启发[20,23],deep snake将初始轮廓作为输入,并通过回归顶点偏移使其变形。我们的创新之处在于引入循环卷积,以便在轮廓上进行有效的特征学习,如图1所示。我们观察到轮廓是一个循环图,由一个封闭循环中连接的顶点序列组成。由于每个顶点的相同阶数都等于2,因此我们可以对顶点特征应用标准的一维卷积。考虑到轮廓是周期性的,deep snake引入了循环卷积,这意味着非周期函数(1D核)以标准的方式卷积为周期函数(轮廓上定义的特征)。圆卷积的核心不仅对每个顶点的特征进行编码,而且对相邻顶点之间的关系进行编码。相反,通用GCN执行池来聚合来自相邻顶点的信息。循环卷积中的核函数相当于一个可学习的聚合函数,它比一般的GCN更具表现力,性能也更好,我们在第5.2节的实验结果证明了这一点。
[20] Michael Kass, Andrew Witkin, and Demetri Terzopoulos. Snakes: Active contour models. IJCV, 1(4):321–331, 1988. 1, 2, 3, 4
基于deep snake,我们开发了一个管道实例分割。给定初始轮廓,deep snake可以迭代地将其变形到对象边界并获得对象形状。剩下的问题是如何初始化轮廓,经典snake算法已经证明了轮廓的重要性。受[30,27,42]的启发,我们建议生成一个由物体极值点形成的八角形作为初始轮廓,它通常将物体紧紧地包围起来。具体来说,我们在检测模型中加入了深蛇。检测到的方块首先通过连接以其边界为中心的四个点来给出菱形轮廓。然后,deep snake将菱形作为输入,并将该点从四个顶点偏移到四个端点,这些端点用于构造后面的八边形[42]。最后,deep snake将八角形轮廓变形到对象边界。
[30] Dim P Papadopoulos, Jasper RR Uijlings, Frank Keller, and Vittorio Ferrari. Extreme clicking for efficient object annotation. In ICCV, 2017. 2
[27] Kevis-Kokitsi Maninis, Sergi Caelles, Jordi Pont-Tuset, and Luc Van Gool. Deep extreme cut: From extreme points to object segmentation. In CVPR, 2018. 2
[42] Xingyi Zhou, Jiacheng Zhuo, and Philipp Krahenbuhl. Bottom-up object detection by grouping extreme and center points. In CVPR, 2019. 2, 4
我们的方法在Cityscapes[7]、Kins[33]和Sbd[15]数据集上展示了最先进的性能,同时在GTX 1080ti GPU上对512×512个图像进行了32.3fps的实时实例分割。基于学习的snake之所以快速而准确,有两个原因。首先,我们的方法可以处理目标定位中的错误,从而允许光检测器。其次,与基于像素的表示相比,对象轮廓具有更少的参数,并且不需要昂贵的后处理,例如掩模上采样。
[7] Marius Cordts, Mohamed Omran, Sebastian Ramos, Timo Rehfeld, Markus Enzweiler, Rodrigo Benenson, Uwe Franke, Stefan Roth, and Bernt Schiele. The cityscapes dataset for semantic urban scene understanding. In CVPR, 2016. 2, 5
[33] Lu Qi, Li Jiang, Shu Liu, Xiaoyong Shen, and Jiaya Jia. Amodal instance segmentation with kins dataset. In CVPR, 2019. 2, 5, 7
[15] Bharath Hariharan, Pablo Arbel´aez, Lubomir Bourdev, SubhransuMaji,andJitendraMalik.Semanticcontoursfrom inverse detectors. In ICCV, 2011. 2, 5
2.Related work
基于像素的方法。大多数方法[8、22、17、25]在区域建议内的像素级上执行实例分割,这对于标准cnn尤其有效。一个典型的例子是Mask R-CNN[17]。它首先检测对象,然后使用掩码预测器在建议的框中分割实例。为了更好地利用盒子里的空间信息,PANet[25]融合了来自完全连接层和卷积层的掩模预测。这种基于提议的方法实现了最先进的性能。这些方法的一个限制是它们不能解决本地化中的错误,例如太小或移位的框。相比之下,我们的方法将检测到的框变形到对象边界,因此对象形状的空间扩展将不受限制。
[8] Jifeng Dai, Kaiming He, and Jian Sun. Instance-aware semantic segmentation via multi-task network cascades. In CVPR, 2016. 2, 6, 7, 8
[22] YiLi,HaozhiQi,JifengDai,XiangyangJi,andYichenWei. Fully convolutional instance-aware semantic segmentation. In CVPR, 2017. 2, 6, 7, 8
[17] Kaiming He, Georgia Gkioxari, Piotr Doll´ar, and Ross Girshick. Mask r-cnn. In ICCV, 2017. 1, 2, 5, 6, 7, 8
[25] Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, and Jiaya Jia. Path aggregation network for instance segmentation. In CVPR, 2018. 1, 2, 6, 7
有一些基于像素的方法[2,29,26,11,40]没有区域建议。在这些方法中,每个像素产生辅助信息,然后聚类算法根据像素的信息将其分组到对象实例中。辅助信息可以是多种多样的,也可以是分组算法。[2] 预测每个像素的边界感知能量,并使用分水岭变换算法进行分组。[29]通过学习实例级嵌入来区分实例。[26,11]将输入图像视为一个图,并回归像素仿射度,然后通过图合并算法进行处理。由于掩模是由密集像素组成的,因此后聚类算法往往比较耗时。
[2] Min Bai and Raquel Urtasun. Deep watershed transform for instance segmentation. In CVPR, 2017. 2
[29] Davy Neven, Bert De Brabandere, Marc Proesmans, and Luc Van Gool. Instance segmentation by jointly optimizing spatial embeddings and clustering bandwidth. In CVPR, 2019. 2, 6, 7
[26] Yiding Liu, Siyu Yang, Bin Li, Wengang Zhou, Jizheng Xu, Houqiang Li, and Yan Lu. Affinity derivation and graph merge for instance segmentation. In ECCV, 2018. 2, 7
[11] Naiyu Gao, Yanhu Shan, Yupei Wang, Xin Zhao, Yinan Yu, Ming Yang, and Kaiqi Huang. Ssap: Single-shot instance segmentation with affinity pyramid. In ICCV, 2019. 2
[40] Ze Yang, Yinghao Xu, Han Xue, Zheng Zhang, Raquel Urtasun, Liwei Wang, Stephen Lin, and Han Hu. Dense reppoints: Representing visual objects with dense point sets. arXiv preprint arXiv:1912.11473, 2019. 2
基于轮廓的方法。在这些方法中,对象形状包含沿对象边界的一系列顶点。传统的snake算法[20,5,6,14]首先引入了基于轮廓的图像分割方法。它们通过优化相对于轮廓坐标的手工能量,将初始轮廓变形到对象边界。为了提高这些方法的稳健性,[28]提出以数据驱动的方式学习能量函数。最近的一些基于学习的方法[19,39]没有迭代优化轮廓,而是尝试从RGB图像中回归轮廓点的坐标,这要快得多。然而,它们与最先进的基于像素的方法相比并不精确。
[20] Michael Kass, Andrew Witkin, and Demetri Terzopoulos. Snakes: Active contour models. IJCV, 1(4):321–331, 1988. 1, 2, 3, 4
[5] Laurent D Cohen. On active contour models and balloons. CVGIP: Image understanding, 53(2):211–218, 1991. 1, 2
[6] Timothy F Cootes, Christopher J Taylor, David H Cooper, andJimGraham. Activeshapemodels-theirtrainingandapplication. CVIU, 61(1):38–59, 1995. 1, 2
[14] SteveRGunnandMarkSNixon. Arobustsnakeimplementation; a dual active contour. PAMI, 19(1):63–68, 1997. 1, 2
[19] Saumya Jetley, Michael Sapienza, Stuart Golodetz, and Philip HS Torr. Straight to shapes: Real-time detection of encoded shapes. In CVPR, 2017. 1, 2, 7, 8
[39] Wenqiang Xu, Haiyang Wang, Fubo Qi, and Cewu Lu. Explicitshapeencodingforreal-timeinstancesegmentation. In ICCV, 2019. 1, 2, 7, 8
在半自动标注领域,[3,1,23]尝试用其他网络代替标准cnn进行轮廓标注。[3,1]使用递归神经网络依次预测轮廓点。为了避免顺序推理,[23]遵循snake算法的流程,使用图卷积网络来预测轮廓变形的顶点偏移。该策略在保证基于像素的方法精度的同时,显著提高了标注速度。然而,[23]缺少例如分段的管道,并且没有充分利用轮廓的特殊拓扑。deep snake利用循环图的拓扑结构,引入了循环卷积的概念,代替了将轮廓视为一般图形的方法,提高了轮廓特征的学习效率。
[3] Lluis Castrejon, Kaustav Kundu, Raquel Urtasun, and Sanja Fidler. Annotating object instances with a polygon-rnn. In CVPR, 2017. 3
[1] David Acuna, Huan Ling, Amlan Kar, and Sanja Fidler. Efficient interactive annotation of segmentation datasets with polygon-rnn++. In CVPR, 2018. 3, 7
[23] HuanLing,JunGao,AmlanKar,WenzhengChen,andSanja Fidler. Fast interactive object annotation with curve-gcn. In CVPR, 2019. 1, 2, 3, 4, 5, 6
3.Proposed approach
受[20,23]的启发,我们通过将初始轮廓变形到对象边界来执行对象分割。具体地说,deep snake根据CNN主干的图像特征输入轮廓,并预测指向对象边界的每个顶点偏移量。为了充分利用轮廓拓扑结构,我们引入了圆卷积算法对轮廓进行有效的特征学习,这有助于deep snake学习变形。在deep snake的基础上,开发了一个管道分割实例。
[20] Michael Kass, Andrew Witkin, and Demetri Terzopoulos. Snakes: Active contour models. IJCV, 1(4):321–331, 1988. 1, 2, 3, 4
[23] HuanLing,JunGao,AmlanKar,WenzhengChen,andSanja Fidler. Fast interactive object annotation with curve-gcn. In CVPR, 2019. 1, 2, 3, 4, 5, 6
3.1.Learning-based snake algorithm 基于学习的snake算法
在给定初始轮廓的情况下,传统snake算法将顶点坐标视为一组变量,并针对这些变量优化能量函数。通过在轮廓坐标系下设计适当的图像力,主动轮廓模型可以优化到目标边界的轮廓。然而,由于能量泛函通常是非凸的,并且是基于低层图像特征手工构建的,变形过程往往会找到局部最优解。
相反,deep snake直接从数据中学习以端到端的方式进化轮廓。给定一个具有n个顶点{xi|i = 1,…,N}的轮廓,我们首先构造每个顶点的特征向量。顶点席的输入特征FI是基于学习的特征和顶点坐标的拼接,, where F 是特征映射 and 是顶点席的平移不变版本。在我们的实例分割模型中,通过在输入图像上应用CNN骨干网得到特征映射F,deep snake与检测器共享。图像特征 F(xi) 是利用顶点坐标席上的特征的双线性插值来计算的。附加的顶点坐标用于建立轮廓顶点之间的空间关系模型。由于变形不受轮廓绝对位置的影响,所以我们分别通过减去所有顶点上沿x轴和y轴的最小值来计算平移变量坐标 x0i 。
图2。循环卷积。蓝色节点是轮廓上定义的输入特征,黄色节点表示核函数,绿色节点表示输出特征。突出显示的绿色节点是核函数和突出显示的蓝色节点之间的内积,这与标准卷积相同。循环卷积的输出特征与输入特征具有相同的长度。
给定轮廓上定义的输入特征,deep snake引入了用于特征学习的循环卷积,如图2所示。一般来说,轮廓顶点的特征可以看作是一维离散信号 f : Z→RD,并通过标准卷积进行处理。但这会破坏轮廓的拓扑结构。因此,我们将轮廓上的特征视为周期信号,定义为:
( f N ) i ≜ ∑ j = − ∞ ∞ f i − j N = f i ( m o d N ) \left(f_{N}\right)_{i} \triangleq \sum_{j=-\infty}^{\infty} f_{i-j N}=f_{i(\bmod N)} (fN)i≜j=−∞∑∞fi−jN=fi(modN)
并建议通过循环卷积对周期特征进行编码,定义为:
( f N ∗ k ) i = ∑ j = − r r ( f N ) i + j k j \left(f_{N} * k\right)_{i}=\sum_{j=-r}^{r}\left(f_{N}\right)_{i+j} k_{j} (fN∗k)i=j=−r∑r(fN)i+jkj
类似于标准卷积,我们可以构造一个基于循环卷积的网络层用于特征学习,这很容易集成到现代网络结构中。特征学习后,deep snake对每个顶点的输出特征应用三个1×1卷积层,并预测轮廓点与目标点之间的逐顶点偏移量,用于轮廓变形。在所有的实验中,循环卷积的核大小都被固定为9。
正如在引言中所讨论的,与一般的图卷积相比,所提出的循环卷积更好地利用了轮廓的循环结构。我们将在第5.2节中展示实验比较。另一种方法是使用标准CNNs从输入图像中回归像素级向量场,以指导初始轮廓的演化[35、31、38]。我们认为,与标准CNNs相比,deep snake的一个重要优点是对象级的结构化预测,即一个顶点的偏移预测依赖于同一轮廓的其他顶点。因此,对于位于背景中且远离目标的顶点,deep snake更合理地预测其偏移量,这在初始轮廓中非常常见。在这种情况下,标准cnn很难输出有意义的偏移量,因为决定背景像素属于哪个对象是不明确的。图3(a)显示了详细的示意图。根据[32,37,21]的思想,deep snake 由三部分组成:主干、融合块和预测头。
[35] Christian Rupprecht, Elizabeth Huaroc, Maximilian Baust, and Nassir Navab. Deep active contours. arXiv preprint arXiv:1607.05074, 2016. 3
[31] SidaPeng,YuanLiu,QixingHuang,XiaoweiZhou,andHujun Bao. Pvnet: Pixel-wise voting network for 6dof pose estimation. In CVPR, 2019. 3
[21] Guohao Li, Matthias M¨uller, Ali Thabet, and Bernard Ghanem. Can gcns go as deep as cnns? In ICCV, 2019. 4
主干网由8个“CirConvBn ReLU”层组成,并对所有层使用剩余跳过连接,其中“CirConv”表示循环卷积。融合块的目的是在多个尺度上融合所有轮廓点的信息。它将骨干网中所有层的特征连接起来,然后通过1×1卷积层和max池转发它们。然后将融合特征与每个顶点的特征连接起来。预测头将三个1×1卷积层应用于顶点特征并输出顶点偏移量。
图3。提出了基于轮廓的实例分割模型。
(a)deep snake 合块和预测头。它将轮廓作为输入,并输出顶点方向的偏移以使轮廓变形。
(b)基于deep snake,我们提出了一种两阶段的管道分割方法:初始轮廓提议和轮廓变形。探测器提出的盒子给出了一个菱形轮廓,其四个顶点被深蛇变形为目标的极值点。八边形是根据极值点构造的。以八边形作为初始轮廓,deep snake迭代地将其变形到对象边界。
3.2.Deep snake for instance segmentation 以deep snake为例的分割
图3(b)概述了提议的用于实例分段的管道。在目标检测模型中加入了deepsnake。探测器首先生成用于构建菱形轮廓的对象框。然后deep snake将菱形顶点变形为对象极值点,用于构造八边形轮廓。最后,以八边形为初始轮廓,进行迭代轮廓变形,得到目标形状。
轮廓建议。大多数活动轮廓模型需要精确的初始轮廓。由于[42]中提出的八角形通常紧紧地包围着物体,我们选择它作为初始轮廓,如图3(b)所示。八边形由四个端点构成,分别是对象中的顶部、最左侧、底部和最右侧像素,用表示。给定一个检测到的对象框,我们提取四个以{xbbi | i=1,2,3,4}表示的上、左、下、右框边界为中心的点,然后将它们连接起来得到菱形轮廓。Deep snake将此轮廓作为输入,并输出从每个顶点xbbi到极值点xexi(即xexi-xbbi)的4个偏移。在实际应用中,为了获取更多的上下文信息,钻石轮廓被均匀地上采样到40个点,深蛇相应地输出40个偏移量。损失函数只考虑xbbi处的偏移量。
我们通过基于极值点生成四条直线并连接它们的端点来构造八边形。具体来说,这四个极端点形成了一个新的对象框。对于每个极端点,一条线从它沿着相应的框边界在两个方向延伸到边界长度的1/4。如果这条线与方框角相交,它将被截断。然后四条线的端点连接起来形成八边形。
轮廓变形。我们首先沿它的边均匀地采样八角形轮廓N点,并让它从顶点xex1开始。类似地,通过沿对象边界均匀采样N个顶点并将其第一个顶点指定为最接近xex1的顶点来生成地面真值轮廓。Deep snake以初始轮廓为输入,输出从每个顶点到目标边界点的N个偏移量。在所有的实验中,我们将N设为128,可以均匀地覆盖大多数物体形状。
但是,在一个过程中回归偏移是一个挑战,特别是对于远离对象的顶点。受[20,23,36]的启发,我们以迭代优化的方式处理这个问题。具体地说,我们的方法首先基于当前轮廓预测N个偏移,然后通过逐顶点添加偏移到其顶点坐标来变形该轮廓。变形后的轮廓可以用于下一次变形或直接输出为对象形状。在实验中,除非另有说明,否则推理迭代次数设置为3。
[20] Michael Kass, Andrew Witkin, and Demetri Terzopoulos. Snakes: Active contour models. IJCV, 1(4):321–331, 1988. 1, 2, 3, 4
[23] HuanLing,JunGao,AmlanKar,WenzhengChen,andSanja Fidler. Fast interactive object annotation with curve-gcn. In CVPR, 2019. 1, 2, 3, 4, 5, 6
[36] Nanyang Wang, Yinda Zhang, Zhuwen Li, Yanwei Fu, Wei Liu, and Yu-Gang Jiang. Pixel2mesh: Generating 3d mesh models from single rgb images. In ECCV, 2018. 4
请注意,轮廓是对象空间延伸的另一种表示。该方法通过将初始轮廓变形到目标边界,解决了探测器的定位误差。
图4。在给定一个目标盒的情况下,我们通过roalign来获得特征图,并使用检测器来检测组件盒。
处理多组件对象。由于遮挡,许多实例包含多个连接组件。但是,一个轮廓只能为每个边界框勾勒一个连接的组件。为了克服这一问题,我们提出在对象盒中检测对象组件。具体地说,使用检测到的盒,我们的方法执行roalign[17]以提取特征映射,并在特征映射上添加检测器分支以生成组件盒。图4显示了基本思想。以下分段管道保持不变。我们的方法通过合并来自同一对象盒的组件轮廓来获得最终的对象形状。
[17] Kaiming He, Georgia Gkioxari, Piotr Doll´ar, and Ross Girshick. Mask r-cnn. In ICCV, 2017. 1, 2, 5, 6, 7, 8
4.Implementation details
培训策略。对于深蛇的训练,我们利用文[13]中提出的光滑1损失来学习这两种变形过程。极值点预测的损失函数定义为:
L
e
x
=
1
4
∑
i
=
1
4
ℓ
1
(
x
~
i
e
x
−
x
i
e
x
)
L_{e x}=\frac{1}{4} \sum_{i=1}^{4} \ell_{1}\left(\tilde{\mathbf{x}}_{i}^{e x}-\mathbf{x}_{i}^{e x}\right)
Lex=41i=1∑4ℓ1(x~iex−xiex)
式中,x˜exi是预测的极值点。迭代轮廓变形的损失函数定义为:
L i t e r = 1 N ∑ i = 1 N ℓ 1 ( x ~ i − x i g t ) L_{i t e r}=\frac{1}{N} \sum_{i=1}^{N} \ell_{1}\left(\tilde{\mathbf{x}}_{i}-\mathbf{x}_{i}^{g t}\right) Liter=N1i=1∑Nℓ1(x~i−xigt)
其中x˜exi是变形轮廓点,xgti是地面真值边界点。对于检测部分,我们采用与原始检测模型相同的损失函数。培训细节随数据集的变化而变化,将在第5.3节中描述。
探测器。所有实验均采用 CenterNet[41] 作为探测器。CenterNet将检测任务重新定义为一个关键点检测问题,在速度和精度之间取得了令人印象深刻的折衷。对于对象盒检测器,我们采用与[41]相同的设置,后者输出类特定的盒。组件盒检测器采用类不可知中心网。具体地说,给定一个H×W×C特征映射,类不可知中心网输出一个H×W×1张量表示分量中心,一个H×W×2张量表示盒大小。
[41] Xingyi Zhou, Dequan Wang, and Philipp Kr¨ahenb¨uhl. Objects as points. arXiv preprint arXiv:1904.07850, 2019. 5, 6
5.Experiments
我们将我们的方法与城市景观[7]、Kins[33]和Sbd[15]数据集的最新方法进行了比较。我们进行了全面的烧蚀研究,以分析所提出的元件在我们的方法中的重要性。
[33] Lu Qi, Li Jiang, Shu Liu, Xiaoyong Shen, and Jiaya Jia. Amodal instance segmentation with kins dataset. In CVPR, 2019. 2, 5, 7
[15] Bharath Hariharan, Pablo Arbel´aez, Lubomir Bourdev, SubhransuMaji,andJitendraMalik.Semanticcontoursfrom inverse detectors. In ICCV, 2011. 2, 5
5.1 DatasetsandMetric 数据集和度量
Cityscapes[7]是一个广泛使用的城市场景实例分割基准。它包含2975个培训,500个验证和1525个高质量注释的测试图像。此外,它有20k个图像,带有粗略的注释。由于场景的拥挤和对象尺度的广泛性,该数据集具有一定的挑战性。性能是根据数据集的8个语义类的平均精度(AP)度量来评估的。我们在验证和测试集上报告结果。
[7] Marius Cordts, Mohamed Omran, Sebastian Ramos, Timo Rehfeld, Markus Enzweiler, Rodrigo Benenson, Uwe Franke, Stefan Roth, and Bernt Schiele. The cityscapes dataset for semantic urban scene understanding. In CVPR, 2016. 2, 5
Kins[33]是最近通过使用实例级语义注释另外注释Kitti[12]数据集而创建的。该数据集用于amodal实例分割,是实例分割的一种变体,目的是在遮挡情况下恢复完整的实例形状。Kins由7474幅训练图像和7517幅测试图像组成。在设置之后,我们根据AP度量对7个对象类别的方法进行了评估。
[33] Lu Qi, Li Jiang, Shu Liu, Xiaoyong Shen, and Jiaya Jia. Amodal instance segmentation with kins dataset. In CVPR, 2019. 2, 5, 7
[12] Andreas Geiger, Philip Lenz, Christoph Stiller, and Raquel Urtasun. Vision meets robotics: The kitti dataset. IJRR, 32(11):1231–1237, 2013. 5
Sbd[15]使用实例级边界重新注释来自Pascal Voc[9]数据集的11355个图像,并且具有相同的20个对象类别。我们不直接在Pascal Voc上进行实验的原因是它的注释包含孔洞,这不适合于基于轮廓的方法。Sbd数据集分为5623个训练图像和5732个测试图像。我们报告2010年的业绩Voc APvol[16],AP50,AP70度量。APvol是AP的平均值,9个阈值从0.1到0.9。
[15] Bharath Hariharan, Pablo Arbel´aez, Lubomir Bourdev, SubhransuMaji,andJitendraMalik.Semanticcontoursfrom inverse detectors. In ICCV, 2011. 2, 5
[9] Mark Everingham, Luc Van Gool, Christopher KI Williams, JohnWinn,andAndrewZisserman. Thepascalvisualobject classes (voc) challenge. IJCV, 88(2):303–338, 2010. 5
[16] Bharath Hariharan, Pablo Arbel´aez, Ross Girshick, and Jitendra Malik. Simultaneous detection and segmentation. In ECCV, 2014. 5
5.2 Ablation studies 消融研究
我们对Sbd数据集进行了消蚀研究,考虑到它有20个语义类别,可以充分评估各种物体轮廓的变形能力。对提出的三个组件进行了评估,包括我们的网络结构、初始轮廓建议和循环卷积。在这些实验中,利用多尺度数据增强技术,对160个时期的探测器和深蛇进行了端到端的训练。学习率从1-4开始,在80和120个阶段下降0.5。表1总结了消融研究的结果。
行“基线”列出曲线gcn[23]与中心网[41]直接组合的结果。具体地说,探测器生成对象框,从而在对象周围生成椭圆。然后通过图ResNet将椭圆变形为对象边界。请注意,基线将轮廓表示为图形,并使用图形卷积网络进行轮廓变形。
[23] HuanLing,JunGao,AmlanKar,WenzhengChen,andSanja Fidler. Fast interactive object annotation with curve-gcn. In CVPR, 2019. 1, 2, 3, 4, 5, 6
表1 Sbd-val set 的消融研究。基线是曲线gcn[23]和中心网[41]的直接组合。第二个模型保留了图卷积,并用我们提出的模型替换了网络结构,使APvol提高了1.4apvol。然后在轮廓变形前加入初始轮廓方案,使APvol提高1.3。第四行表明,用循环卷积代替图卷积,进一步提高了0.8apvol。
[23] HuanLing,JunGao,AmlanKar,WenzhengChen,andSanja Fidler. Fast interactive object annotation with curve-gcn. In CVPR, 2019. 1, 2, 3, 4, 5, 6
[41] Xingyi Zhou, Dequan Wang, and Philipp Kr¨ahenb¨uhl. Objects as points. arXiv preprint arXiv:1904.07850, 2019. 5, 6
表2。Sbd-val集上图卷积与圆卷积的比较。结果是根据APvol度量。图卷积和循环卷积是指网络中的卷积算子。这些列显示了不同推理迭代的结果。循环卷积在所有推理迭代中都优于图卷积。此外,两次迭代的循环卷积比三次迭代的图形卷积的性能提高了0.6ap,显示出更强的变形能力。
为了验证我们的网络的优势,第二行的模型保留了卷积算子作为图卷积,并用我们提出的结构替换了图ResNet,使APvol改进了1.4apvol。这两种网络的主要区别在于,我们的架构在预测头之前附加了一个全局融合块。
在研究轮廓初始化的影响时,我们在轮廓变形之前加入初始轮廓建议。建议步骤不直接使用椭圆,而是通过预测四个目标极值点来生成八边形初始化,这样不仅解决了检测误差,而且将目标包围得更紧密。第二行和第三行之间的比较显示,APvol的性能提高了1.3。
最后用循环卷积代替图卷积,使APvol提高了0.8apvol。为了充分验证循环卷积的重要性,我们进一步比较了具有不同卷积算子和不同推理迭代的模型,如表2所示。循环卷积在所有推理迭代中都优于图卷积。两次迭代的循环卷积比三次迭代的图卷积性能好0.6apvol。图5显示了Sbd上图形和循环卷积的定性结果,其中循环卷积给出了更清晰的边界。定量和定性分析结果表明,具有圆卷积的模型具有较强的轮廓变形能力。
图5 Sbd上图卷积(top)与圆卷积(bottom)的比较。两次迭代的循环卷积结果比三次迭代的图卷积结果直观。
5.3 Comparison with the state-of-the-artmethods 与最新方法的比较
城市景观表演。由于碎片化实例在城市景观中非常常见,因此我们采用所提出的策略来处理多组件对象。我们的网络采用多尺度数据增强训练,并在1216×2432的单分辨率下进行了测试。不使用测试技巧。探测器首先单独训练140个阶段,学习率从1e-4开始,到80120个阶段下降一半。然后对检测分支和蛇分支进行200个阶段的端到端训练,学习率从1e-4开始,在80、120、150个阶段下降一半。我们选择一个在验证集上表现最好的模型。
表3将我们的结果与城市景观验证和测试集的其他最新方法进行了比较。所有的方法都经过测试,没有技巧。仅使用精细的注释,我们的方法就可以在验证集和测试集上实现最新的性能。在验证集上,我们的性能优于PANet,分别为0.9ap和1.3ap50。根据[29]中的近似定时结果,PANet以小于1.0fps的速度运行。相比之下,我们的模型在1080ti GPU上以4.6fps的速度运行,生成1216×2432幅图像,速度大约快5倍。当不采用处理多分量对象的策略时,我们的方法在测试集上达到28.2ap。可视化结果如图6所示。
在金斯的表演。Kins数据集作为一个用于amodal实例分割的数据集,其对象都是作为单个组件连接的,因此不采用处理多组件对象的策略。我们对探测器和蛇进行了150个阶段的端对端训练。学习率从1e-4开始,在80和120个阶段分别下降0.5和0.1。我们进行了多尺度训练,并在768×2496的单分辨率下对模型进行了测试。
图6 城市景观测验和Kins测验的定性结果。前两行显示城市景观的结果,最后一行列出Kins的结果。注意,Kins上的结果用于amodal实例分割。
表3 城市景观val(“AP[val]” 列)和测试(剩余列)集的结果。我们的方法达到了最先进的性能,在val集上的性能比PANet[25]高0.9ap,在测试集上的性能比PANet[25]高1.3ap50。根据[29]中的计时结果,我们的方法大约比PANet快5倍。
[25] Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, and Jiaya Jia. Path aggregation network for instance segmentation. In CVPR, 2018. 1, 2, 6, 7
表4 根据AP量表在Kins测试集上的结果。在检测任务中,使用 amodal 包围盒作为背景真相。× 表示在相应的方法中没有这样的输出。
表4显示了与Kins数据集上的[8,22,10,17,25]在AP度量方面的比较。Kins[33]指出,同时处理amodal和inmodal分割可以提高性能,如表4的第四行和第五行所示。我们的方法只学习amodal分割任务,并在所有方法中获得最佳性能。我们发现蛇形分支可以提高检测性能。当CenterNet单独训练时,检测到30.5ap。用蛇枝训练时,2.3ap验证了其性能。对于Kins数据集上的768×2496幅图像,我们的方法在1080ti GPU上以7.6fps的速度运行。图7显示了Kins.Performance在Sbd上的一些定性结果。Sbd数据集上的大多数对象都作为单个组件连接,因此我们不处理碎片实例。对于多分量对象,我们的方法是分别检测其分量,而不是检测整个对象。在多尺度数据增强的基础上,对150个时期的检测和蛇形分支进行了端到端的训练。学习率从1e-4开始,在80和120个阶段下降一半。对网络进行了512×512的单标度测试。
[8] Jifeng Dai, Kaiming He, and Jian Sun. Instance-aware semantic segmentation via multi-task network cascades. In CVPR, 2016. 2, 6, 7, 8
[22] YiLi,HaozhiQi,JifengDai,XiangyangJi,andYichenWei. Fully convolutional instance-aware semantic segmentation. In CVPR, 2017. 2, 6, 7, 8
[10] Patrick Follmann, Rebecca K¨o Nig, Philipp H¨a Rtinger, Michael Klostermann, and Tobias B¨o Ttger. Learning to see the invisible: End-to-end trainable amodal instance segmentation. In WACV, 2019. 6, 7
[17] Kaiming He, Georgia Gkioxari, Piotr Doll´ar, and Ross Girshick. Mask r-cnn. In ICCV, 2017. 1, 2, 5, 6, 7, 8
[25] Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, and Jiaya Jia. Path aggregation network for instance segmentation. In CVPR, 2018. 1, 2, 6, 7
表5 Sbd val 集合的结果。我们的方法在很大程度上优于其他基于轮廓的方法。随着IoU阈值、21.4ap50和36.2ap70的增加,改善程度增加。
在表5中,我们根据Voc AP指标与Sbd数据集上其他基于轮廓的方法[19,39]进行了比较。[19,39]通过回归形状向量来预测物体轮廓。STS[19]将目标轮廓定义为来自目标中心的径向向量,ESE[39]用切比雪夫多项式的20和50个系数近似目标轮廓。相反,我们的方法将初始轮廓变形到对象边界。我们的性能比这些方法至少高出19.1apvol。注意,我们的方法得到了21.4ap50和36.2ap70的改进,这表明改进随着IoU阈值的增加而增加。这表明我们的算法能更好地勾勒出物体的边界。对于Sbd数据集上的512×512图像,我们的方法在1080ti上以32.3fps的速度运行。一些定性结果如图7所示。
[19] Saumya Jetley, Michael Sapienza, Stuart Golodetz, and Philip HS Torr. Straight to shapes: Real-time detection of encoded shapes. In CVPR, 2017. 1, 2, 7, 8
[39] Wenqiang Xu, Haiyang Wang, Fubo Qi, and Cewu Lu. Explicitshapeencodingforreal-timeinstancesegmentation. In ICCV, 2019. 1, 2, 7, 8
图7 关于Sbd-val 集的定性结果。我们的方法在大多数情况下处理对象定位中的错误。例如,在第一幅图像中,虽然检测到的盒子没有完全覆盖男孩,但是我们的方法恢复了完整的对象形状。放大查看详细信息。
5.4.Runningtime 运行时间
表6 Pascal Voc数据集上的运行时间。“MS”代表Mask R-CNN[17],“OURS”代表我们的方法。最后三种方法是基于轮廓的方法。
表6将我们的方法与其他方法[8、22、17、19、39]在Pascal Voc数据集上的运行时间进行了比较。由于Sbd数据集与Pascal Voc共享图像并且具有相同的语义类别,因此Sbd数据集上的运行时间在技术上与Pascal Voc上的运行时间相同。我们从[39]中得到了其他方法在Pascal Voc上的运行时间。
[8] Jifeng Dai, Kaiming He, and Jian Sun. Instance-aware semantic segmentation via multi-task network cascades. In CVPR, 2016. 2, 6, 7, 8
[22] YiLi,HaozhiQi,JifengDai,XiangyangJi,andYichenWei. Fully convolutional instance-aware semantic segmentation. In CVPR, 2017. 2, 6, 7, 8
[17] Kaiming He, Georgia Gkioxari, Piotr Doll´ar, and Ross Girshick. Mask r-cnn. In ICCV, 2017. 1, 2, 5, 6, 7, 8
[19] Saumya Jetley, Michael Sapienza, Stuart Golodetz, and Philip HS Torr. Straight to shapes: Real-time detection of encoded shapes. In CVPR, 2017. 1, 2, 7, 8
[39] Wenqiang Xu, Haiyang Wang, Fubo Qi, and Cewu Lu. Explicitshapeencodingforreal-timeinstancesegmentation. In ICCV, 2019. 1, 2, 7, 8
对于Sbd数据集上的512×512图像,我们的算法在桌面上以32.3fps的速度运行,采用Intel i7 3.7GHz和GTX 1080Ti GPU,这对于实时实例分割非常有效。具体来说,CenterNet需要18.4ms,初始轮廓建议需要3.1ms,轮廓变形的每次迭代需要3.3ms。由于我们的方法输出了对象边界,因此不需要像上采样这样的后处理。如果采用处理碎片实例的策略,则检测器额外需要3.6ms。
6.Conclusion
提出了一种新的基于轮廓的实例实时分割模型。受传统snake算法的启发,我们的方法将初始轮廓变形到目标边界,得到目标形状。为此,我们提出了一种基于学习的snake算法deep snake,该算法引入了循环卷积来有效地进行轮廓特征学习,并对轮廓变形进行了顶点偏移回归。基于deep snake,我们开发了一个两阶段的管道分割实例:初始轮廓提议和轮廓变形。结果表明,与直接回归目标边界点坐标相比,该流水线具有更好的性能。我们还证明了圆卷积比图卷积更有效地学习轮廓的结构信息。为了克服轮廓线只能勾勒出一个连通分量的局限性,提出了在目标盒内检测目标分量的方法,并在城市景观中验证了该方法的有效性。该模型在城市景观、Kins和Sbd数据集上取得了最新的结果,具有实时性。