浙江大学 CVPR 2020 oral
文章目录
从论文题目就可以看出论文要做的事情:实时的实例分割。方法,就是利用snake algorithm,但是这里结合深度学习,进而表述为Deep snake
overview
本文使用基于轮廓(contour-based)的deep snake方法,其中,论文提出自己的做法(Innovation)circlular convolution来更好取捕捉contour信息。将整个方法步骤分为2个阶段: initial contour proposal和contour deformation
最终论文的结果:可以在Cityscapes, Kins and Sbdatasets上获得了最好的成绩,且real-time(32.3fps, 512x512 images on 1080Ti GPU)。
Related work
现在有许多的pixel-wise分割方法,同样也有另一种形状表达:object contour
- 轮廓表达:这个方法用在实例分割上也有很长一段历史了,可追溯到1988年Kass的论文Snakes。
整体思想:给定一个初始的轮廓,之后利用snakes algorithm来迭代的调整轮廓到物体的边界,这个迭代优化的过程就是不断优化一个energy functional,能量函数指的是轮廓能量和图能量的总和(一般只能达到局部最优) - 近来也有利用contour去表达目标的实时分割方法,但是效果同pixel-wise仍有和的那差距。
- CVPR2019的一篇论文Fast interactive object annotation with curve-gcn,论文也使用了
Snake algorithm向object boundary调整初始contour(将contour视为graph,并且使用graph convolutional network去预测offset)。做到的结果就已经很好了,且很快。所以本文算是对Snakes: Active contour models、Fast ineractive object annotation with curve-gcn的上层工作啦。大致步骤如下:
Detail
-
Learning-based snake algorithm
- 对于
Deep snake,给定contour作为输入,contour的表达则用N个顶点(vertices),对每个顶点,构建一个feature vectors:,是CNN产生的feature maps(需要通过插值来精确vertex coordinate处的feature map值)和vertex coordinate的concat。 - 对于
circular conv,是可以直接使用一维标准卷积实现的。但是,这样的话需要将contour作为一个一维序列信号,当作一位序列信号的话会打破原来contour的拓扑结构,故将contour视作一个周期信号,定义如下(略懵。。。) -
network architecture
就是在detector的基础上后续加上deep snake的处理
- 对于
-
Deep snake for instance segmentation
整个流程:-
Detector去做检测,得到box - 然后通过
box取每个边的中点然后连线得到Diamond contour - Deformation:
Deep snake来对四个点进行offset预测,目标是物体四周的极值点(object extreme point) - 以极值点为中心,向极值点所在的边线的两个方向均匀延申,最后为原边长的, 然后连线,作为
deep snake的输入contour -
deep snake迭代调整contour
-
Contour Deformation:N=128,在Contour上均匀采样N个,序列开始于顶点极值点,GT也是均匀在物体边界采样N个,
-
Implementation details
-
loss
是极值点的offset预测loss,使用L1 loss
是N个采样点的loss - Detector
使用CenterNet作为Detector -
Datasets- Kins :该数据集用于无模式实例分割,这是实例分割的一种变体,旨在即使在遮挡下也能恢复完整的实例形状。 Kins由7,474个训练图像和7,517个测试图像组成。
- Sbd:使用实例级边界重新注释Pascal Voc数据集中的11355个图像,并具有相同的20个对象类别。 论文说之所以不直接在Pascal Voc上进行实验,是因为其批注包含漏洞,这不适用于基于轮廓的方法。 Sbd数据集可分裂为5,623个训练图像和5,732个测试图像。
-
Result
在Sbd数据集上,以下是对比网络的不同配置
- Baseline:Curve-gcn和CenterNet结合
- Architecture;graph convolution
- Circular convolution:使用circular conv代替graph conv
在Sbd数据集上,对比graph conv 和 circular convCityscapes数据集上跟其他方法的对比Kins数据集上的测试sbd val
速度