又是何恺明超越何恺明。
其团队最新论文一出,图像分割又往前一大步:
消耗的资源变得更少,算力仅需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也更强大。一方面体现在所需的资源上。
在输出224×224分辨率图像下,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等后续研究成果出现,也进一步说明了他并没有停下来,而是在不断寻找新的方法来提升模型的效果。
大神之所以是大神,这也是其中的原因之一吧。
你说呢?
— 完 —
“