加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~
实例分割是计算机视觉领域重要任务,广泛应用于自动驾驶、视频分析、图像操作和机器人抓取等领域。但目前大多数方法都是基于逐像素的分割计算,这种类方法不仅会受到bbox不精确的影响,同时还会在后处理过程中耗费庞大的计算量。而基于轮廓的实例分割方法不会受到bbox的限制,并且含有更少的参数量,但已有基于轮廓方法无法完整地探索轮廓的空间拓扑结构,并且大多基于人工优化函数来进行计算。
为了充分探索基于轮廓的实例分割方法,来自浙江大学的研究人员对snake方法进行了有效的改进,通过引入圆卷积结构处理输入轮廓顶点,并基于学习到的特征得到每个顶点需要调整的偏移量以尽可能地准确包围实例,而后通过迭代得到更为精确的轮廓结果。实验表明这种方法可以更加迅速准确地进行实例分割。
DeepSnake的主要功能是通过深度学习给出输入初始轮廓顶点需要调整的偏移量,以得到更为准确的实例分割结果。在对基于轮廓的实例分割方法研究过程中,发现物体的轮廓其实是一个圆形的图结构,其中每个顶点都有两条边连接相邻的顶点,这意味着可以利用一维卷积来对顶点特征进行学习。由于闭合的轮廓可以视为周期性结构,于是研究人员引入了圆卷积来处理。与通常的图卷积方法不同,圆卷积核不仅可以编码每个顶点的特征还能编码临近顶点间的关系,具有更强的表达能力。
传统的snake算法将轮廓的顶点坐标视为一系列变量,并优化这些变量的能量函数来迭代顶点坐标。通过有效的能量函数设计,理论上可以将轮廓优化到目标边界上。但由于基于手工设计的能量函数一般都是非凸的,轮廓的优化过程易于陷入居于最优解。与之不同的是,DeepSnake则直接从数据中学习出目标的边界轮廓。对于包含N个顶点的轮廓{xi | i=1,…,N},首先为每个顶点建立特征矢量。这一特征矢量为fi=[F(xi); x’i ],其中前半部为基于CNN从输入图像上学习到的特征图,而后一个则是通过变换后得到的旋转不变坐标。
在得到每个点的特征矢量后,DeepSnake便利用圆卷积进行特征学习,下图显示了圆卷积的基本过程。
轮廓上的特征可以被视为一维离散信号并可利用标准卷积进行处理。为了避免破坏轮廓的拓扑结构,研究人员将轮廓上的特征视为周期性信号:
并提出了下面的圆卷积方法来学习特征,其中的k为圆核函数:
与常见的卷积算法类似,这种圆卷积方法可以方便地提取顶点特征并集成到相应的网络结构中。在圆卷积进行特征学习后,DeepSnake利用1x1卷积层对每个顶点的输出特征进行处理,为每个顶点预测出与目标轮廓间的偏移量,这一偏移量将用于调整轮廓形状不断逼近目标。
这种算法比一般的图卷积方法可以更好的探索轮廓的圆形结构特征,更重要的是他具有目标级别的结构预测能力,特别是对于那些初始化时远离目标位于背景上的顶点来说,这种方法可以更为有效的预测出需要调整的偏移量。而标准的CNN则由于初始化顶点归属物体的不确定性,难以预测出较为准确的偏移量。
上图显示了DeepSnake的基本网络架构,其中包含了三个重要的部分。第一部分为主干部分,包含了8个圆卷积层和相应的残差连接;第二部分为融合部分,融合了多尺度的轮廓信息,随后与主干信息叠加送入到最后的预测部分;第三部分预测模块由1x1卷积构成,用于预测逐顶点需要调整的偏移量。
在拥有了可以调整顶点位置,预测偏移量的DeepSnake算法后就可以构建出完整的实例分割框架了。下图展示了从输入图像、轮廓初始化到最终预测偏移量和计算轮廓结果的过程。
首先基于目标检测(CenterNet)得到的bbox,将每个边的中点提取出来构建出一个方块形的轮廓。而后第一次利用DeepSnake来计算这四个顶点需要的偏移量以获取图像中目标的极值点(最左,最上,最下,最右边点);在实际计算中,研究人员将四个中点构成的方块型轮廓上采样为40个点,以便涵盖更为丰富的上下文信息。
在获得了4极值点后也就得到了新的bbox,随后在每个点依照bbox的方向向两边生成1/4边长的线段,如果在生成过程中遇到bbox的顶点就停止。依次连接这四个线段的八个端点就可以获得一个八边形轮廓。
此时通过在八边形轮廓上进行采样就可以得到包含N个点的目标初始轮廓(N=128), DeepSnake将这N个点构成的轮廓作为输入预测出需要调整的偏移量。然而一次性预测出准确的偏移量还存在一定的困难,研究人员将迭代地进行三次预测以不断提高预测精度。通过这种方式可以不断地提高目标边缘的预测精度并解决目标检测器带来的初始定位误差。
研究人员最终在Cityscape、Kins和Sdb上进行了实验,并对初始网络结果、初始化轮廓方法和圆卷积进行了消融性分析。下表显示了三个部分对于最终结果的贡献情况。网络架构中的全局融合模块带来了1.4AP的提升;其中通过极值点的方法初始化轮廓不仅解决了目标检测误差,同时也有效处理了过于靠近的物体,带来了1.3的AP提升;
而后圆卷积的引入相比于图卷积提升了0.8AP,并且在迭代中两个迭代就超过了图卷积三个迭代0.6AP,显示了圆卷积强大的形变适应能力。下图中也显示了圆卷积对于物体边界的变形适应能力。
与各种先进的算法相比,基于DeepSnake的分割算法显示出了良好的性能优势:
在复杂的Cityscape、Kins和Sdb数据集上都得到了十分优秀的实例分割结果:
如果想要了解这一算法的细节实现和圆卷积的细节,请参看论文:
https://arxiv.org/pdf/2001.01629v1.pdf
不久之后还有代码可以配合学习:
https://github.com/zju3dv/snake/
参考:
https://github.com/zju3dv
http://www.cad.zju.edu.cn/zhongwen.html
http://www.zjucvg.net/publication.html
http://www.cad.zju.edu.cn/home/xzhou/
-END-
点击 阅读原文,可跳转浏览本文内所有网址链接
*延伸阅读
△长按添加极市小助手
△长按关注极市平台
觉得有用麻烦给个在看啦~