分享

何恺明团队新作:图像分割精细度空前,边缘自带抗锯齿,算力仅需Mask R-CNN的2.6%

 2016xing 2019-12-20

又是何恺明超越何恺明。

其团队最新论文一出,图像分割又往前一大步:

消耗的资源变得更少,算力仅需Mask R-CNN的2.6%。

不仅能实现准确的分割,甚至连张开的五指都能精准抠出:

秀长腿的长颈鹿,分割后腿也能保持修长的模样了:

右为新方法

如此效果,已然超越了默认mask head的Mask R-CNN。

这是一种名为PointRend的新方法,“实现了前所未有的输出分辨率”。

也可以在现有模型的基础上构建,灵活应用于实例分割、语义分割任务。

其中诀窍在于:将图像分割当做一个渲染问题

如此研究,同样也引起了业内人士的围观。

有人盛赞称,这是一项“伟大的工作”,也有人惊叹于研究思路:“从经典方法中获取知识,牛。”

PointRend:将图像分割视作渲染问题

渲染是将3D模型显示为2D平面上的规则像素网格。

尽管输出表现形式是规则网格,但其底层物理实体是连续的,并且其物理占用率等属性,可以通过物理和几何推理(如射线追踪),在图像平面上的任何实值点进行查询。

图像分割,同样可以视作底层连续实体的占用图,然后从中输出预测标签的矩形网格。

实体被编码在网络特征图中,可以通过插值在任意点进行访问。

PointRend就是基于这种类比提出的,可以应用于实例分割和语义分割。

PointRend原理

以实例分割举例,首先,使用轻量级的分割头,对每个检测到的对象(红框)进行粗略的mask预测。

接下来,选择一组点(红色点),用小规模的多层感知器(MLP)为每个点进行独立预测。

对这样的细分算法进行迭代,以从粗到细的方式计算mask。

具体而言,PointRend分为三个主要组成部分。

用于推理和训练的点选择(Point Selection)

PointRend的核心思想是,在图像平面中自适应地选择预测分割标签的点。

类似于光线追踪中的抗锯齿问题,这些点应该更密集地分布于高频区域(例如对象边界)附近。

推理部分,如上文所说,是一个以从粗到细的方式迭代“渲染”输出mask的过程。在每次迭代中,PointRend使用双线性插值,对其先前预测的输出结果进行上采样。

然后再次密度较高的网格上选择N个最不确定的点(如上图黑点),举个例子,对于二进制mask而言,就是概率最接近0.5的那些点。

计算每一个点的逐点(point-wise)特征表示, 预测它们的标签,以恢复精细网格上的细节。

直到输出结果达到预设的分辨率,迭代结束。

训练部分,还需要选择部分点,在其上构建逐点特征,用来训练点头(Point Head)。

这里依然采用推理部分介绍的细分策略,只是引入了顺序步骤。并且,在训练中不进行迭代,而是使用基于随机抽样的非迭代策略。

为了提高性能,每个区域仅对少量点进行采样,并采取轻度偏差的采样策略,提高系统在训练期间的效率。

逐点 (point-wise) 表示

PointRend通过组合低层特征 (fine-grained features) 和高层特征 (coarse prediction),在选定的点上构造逐点特征。

在细粒度特征(fine-grained features)方面,为了让PointRend呈现出精细的分割细节,研究人员为CNN特征图中的每个采样点提取了特征向量。

不过,细粒度特征虽然可以解析细节,但也存在两方面的不足:

  • 1、不包含特定区域信息,对于实例分割任务,就可能在同一点上预测出不同的标签。

  • 2、用于细粒度特征的特征映射,可能仅包含相对较低级别的信息。

这就需要粗略分割预测 (coarse prediction) 来进行补充,提供更多全局背景。

这样的粗略预测类似于现有架构的输出。以实例分割为例,coarse prediction可以是Mask R-CNN中 7×7 轻量级mask head的输出。

点头 (Point Head)

对于每个选定点的逐点特征表示,PointRend使用简单的多层感知器进行逐点分割预测。

多层感知器在所有点(所有区域)上共享权重。

并且,由于多层感知器会针对每个点预测分割标签,可以通过特定任务的分割损失进行训练。

更少的消耗,更好的结果

何恺明等人在研究中给出了结果证明,无论是在定性和定量维度上,都取得了显著的效果。

与此同时,这一思路也进一步降低了消耗的资源,在当前人工智能算法模型在端侧部署的大趋势下,意义更大。

此外,这一方法不仅仅能够应用在实例分割中,在语义分割中也取得了显著的效果。

首先,他们将PointRend与Mask R-CNN默认的4×conv mask head进行了对比,使用的数据集是COCO和Cityscapes。

结果显示,在相同的分辨率上,PointRend的预测效果要明显强过默认的4×conv mask head。

从定性效果上来看,在Mask R-CNN使用PointRend(右图)在预测Mask时更加精细。

此外,输出图像的分辨率更高的情况下(细分推理),PointRend也更强大。一方面体现在所需的资源上。

在输出224x224分辨率图像下,PointRend只需0.9B FLOPs,而4×conv需要34B,相比之下优化了30多倍。

另一方面体现在效果上,从下图来看,分辨率更高的情况下,AP出现了饱和的情况。

但直观效果随着分辨率提高变得更好,使用PointRend还能够抗锯齿。

在语义分割方面,他们的研究结果表明,使用PointRend能够进一步提升DeeplabV3和 SemanticFPN的效果。在实验对比中,采用的是Cityscapes语义分割集。

首先是在DeeplabV3上的效果,基于PointRend的DeeplabV3的语义分割效果明显更好。

在推理过程中对res4阶段进行扩展,可以产生更大、更准确的预测,但是需要更高的计算和内存开销,而且结果仍然不如使用PointRend。直观来看,PointRend也可以恢复更小的对象和细节。

此外,通过自适应采样点, PointRend只预测32k点,就可以达到1024×2048分辨率(即2M点)。

在SemanticFPN上,在8×和4×输出步长变体上,用了PointRend之后,效果也有明显提升。

又双叒叕来自何恺明团队

PointRend是何恺明团队的最新研究成果,一共有四名作者,全部来自Facebook AI研究院。

第一作者是Alexander Kirillov,毕业于海德堡大学,是FAIR致力于计算机视觉研究的科学家。

除了何恺明之外,作者中还有一位华人学者,名为吴育昕。他在2015年从清华大学计算机系毕业,之后在CMU获得硕士学位,现在是Facebook研究工程师。

最后一位作者是Ross Girshick,博士毕业于芝加哥大学,也是FAIR致力于计算机视觉研究的科学家。

对于何恺明来说,PointRend是他在图像分割领域的最新探索。

这篇论文中被改进的Mask R-CNN,就是出自他手,自2017年3月提出以来,到现在已经成为图像分割的主流算法。这一成果也在2017年的ICCV上获得了最佳论文奖。

在此之前,他在计算机视觉领域的研究成果也获得了CVPR 2009和CVPR2016的最佳论文奖,可以说是传奇般的存在。

PointRend等后续研究成果出现,也进一步说明了他并没有停下来,而是在不断寻找新的方法来提升模型的效果。

大神之所以是大神,这也是其中的原因之一吧。

你说呢?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多