PointRend论文不完全不精准翻译笔记

@


@

自己翻的。。欢迎多喷,多喷多改进,可能会逐渐完善,可能也就这样了。

PointRend: Image Segmentation as Rendering

Alexander Kirillov Yuxin Wu Kaiming He Ross Girshick
Facebook AI Research (FAIR)

摘要

我们呈现了一种新的方式,用于高效高质量的图像的目标或场景分割。通过类比经典的计算机图形高效渲染方法,在像素分割任务中面对的过采样和欠采样挑战,我们从独特的视角中,将图形分割看作是一种渲染问题。基于此,我们提出了PointRend神经网络模型: 该模块,基于迭代细分算法在自适应选择的位置执行基于点的分割预测。PointRend通过部署在SOTA模型,可以被灵活地应用在实例分割与语义分割任务中。虽然许多通常的想法都可以实现,但是我们展示了一种简单的设计理念且达到了出色的效果。 定性地说,之前的方法会输出过度平滑的边界,而Point Rend输出准确清晰的对象边界。从数字上来看,在COCO和Cityscapes上,PointRend产生了显著的指标提升,不论是实例分割还是语义分割。PointRend的高效率使得输出分辨率提升,对比现有的方法,提升的分辨率按照现有的方法在内存和计算上都是不切实际的。代码可以在这里获得: https://github.com/facebookresearch/detectron2/tree/master/projects/PointRend

在这里插入图片描述
图1 Instance segmentation with PointRend.
我们介绍了pointrend模型,该模型使用一种新的基于点的特征表示自适应采样点来做预测。(见图3)。PointRend可以被灵活的集成到现有的语义分割实例分割系统当中。使用他去替代了MaskRcnn默认的MASK HEAD,PointRend产生了显著的细节效果。在处理当中,PointRend会迭代的计算预测。每一步使用双线性差值去上采样,在平滑区域当中,并且得到了更高分辨率的预测图,仅仅使用了少量自适应采样点当中。这些点最可能是物体的边界。

1.介绍

图像分割任务涉及将在常规网格上采样的像素映射到同一网格上的一个标签图或一组标签图。对于语义分割,标注图表明了每一个像素上的预测分类。在实例分割的情况下,对于每一个检测目标,用二值化来表示前景和背景预测。当前的选择工具就是卷积神经网络[27,26]。
CNN在图像分割上通常都是在规则网格上操作:输入图像是一个规则像素网格,他们隐藏的表达都是规则网格上的特征向量,并且他们的输出也是在规则网格上的标签图。规则网格很方便,但是对于图像分割来说,是一种不必要的计算思维。预测得到的标签图,应该尽量平滑,举例来说,相邻的像素通常得到相同的标签。因为高频区域基本都限制在了目标与目标之间的稀疏边界上。规则网格会不必要地在平滑区域过采样,同时下采样了目标与目标之间的边界。结果就是平滑区域和模糊轮廓上过度计算。图像分割通常都是在一个低分辨率的规则网格上去预测标签,例如下采样了1/8,,或者是28*28的特征图用于实例分割,这是一种在欠采样和过采样之间的折中。
类似的采样问题已经在计算机图像学中研究了数十年。举例来说, 渲染器将模型(例如,3D网格)映射到光栅化图像,或规则像素网格。。 当输出在规则网格上时,计算不会在网格上均匀分配。相反,一种常见的图形策略是计算图像平面中自适应选择点的不规则子集的像素值。 [48]的经典细分技术,作为一个例子,产生了一个四叉树样的采样模式,有效地呈现了一个抗锯齿,高分辨率的图像。
文章的中心思想就是把图像分割当做一种渲染问题,并且从计算机图像学中的经典思想汲取灵感,高效的渲染高质量精细的标注图。我们将此计算思想封装在一个称为PointRend的新神经网络模块中,该模块使用细分策略来自适应地选择要在其上计算标签的一组非均匀点。PointRend可以并入流行的元架构中,以进行实例细分和语义细分。 它的细分策略使用的浮点运算比直接的密集计算要少一个数量级,从而可以有效地计算高分辨率分割图。
Point Rend是一个通用模块,它允许许多可能的实现。从抽象角度看,PointRend模块接受一个或多个在常规网格上定义的典型CNN特征图f(xi,yi),并在更精细的网格上输出高分辨率预测p(x0i,y0i)。 不是对输出网格上的所有点进行过度预测,PointRend仅仅在仔细挑选的点上进行预测。为了做出预测,它通过抽取选取点的范围特征描述,并通过插值特征图f,使用一个小的point head子网络从点范围特征当中来预测输出标签。

2 相关工作

渲染

计算机图形学中的渲染算法可输出规则的像素网格。 但是,他们通常会计算这些一组非均匀点上的像素值。 有效处理,例如细分[48]和自适应采样[38,42]改善像素值所在区域的粗光栅化具有更大的差异。 光线跟踪渲染器通常使用过度采样[50],该技术会对一些点进行更多采样比输出网格密集,以避免混叠效果。 这里,我们将经典细分应用于图像分割。

非均匀网格表示。

规则网格上的计算是2D图像分析的主要范例,但其他视觉任务却并非如此。在3D识别中,由于三次缩放,大型3D网格是不可行的。大多数基于CNN的方法都不会超出粗糙的64×64×64网格[12,8]。 相反,最近的工作考虑更有效的非均匀表示,例如网格[47、14],有符号距离函数[37]和八叉树[46]。 类似于带符号的距离函数,PointRend可以在任何点计算细分值。最近,Marin等人。 [36]提出了一种有效的语义分割网络,该网络基于输入图像的非均匀子采样,然后使用标准的语义分割网络进行处理。 相反,PointRend专注于在输出上进行非均匀采样。 尽管目前尚无关于实例分割的证明[36],但可以将两种方法结合起来使用。

3 方法

我们将计算机视觉中的(对象和/或场景的)图像分割模拟为计算机图形学中的图像渲染。渲染是将一个模型显示为规则像素网格/图像。虽然输出表示形式是规则网格,但是基础物理实体(例如3D模型)是连续的,并且可以使用物理和几何推理在图像平面上的任何实值点查询其物理占用率和其他属性,例如 光线追踪(实在不懂跟光追啥关系)。类似地,在计算机视觉中,我们可以将图像分割视为基础连续实体的占用图,然后从中“渲染”分割输出,该分割输出是预测标签的规则网格。实体被编码在神经网络的特征图当中,并且可以通过插值的方式查找到任何点。经过训练的参数化功能可以根据这些内插的点状特征表示来预测占用率,与物理和几何推理相对应。
基于此类比,我们认为PointRend作为一种新的方法,使用点的表征,对图像进行分割,一个pointrend模块可以使用一个或多个典型的CNN特征图,每一个都在规则网格上定义(相比于原图片,通常都是4倍到16倍粗糙)。
并且给K个类别的分割图(KHW)输出预测,同样也是规则网格(可能分辨率更高)。

一个PointRend module 有三个主要部件组成

  • 1:点选择策略:选择少量 实值点进行预测,避免对高分辨率输出中的所有像素进行过多的计算
  • 2:对于每个被选中的点,提取其逐点特征表达。真值点的特征通过双线性插值来计算,使用点的最近邻4点来计算。结果,它能够利用在f的通道中,像素中编码的子像素信息。,以预测具有分辨率高于f。
  • 3:Point head,经过训练的神经网络,可以从该点的点范围特征表达预测标签,独立于每个点。

3.1 点的选择,面向推理和训练

我们方法的核心思想是在图像平面中灵活,自适应地选择点来预测分割标签。直观地讲,这些要点应该更加密集地位于高频区域附近,例如对象边界,类似于中的抗锯齿问题光线追踪。我们为推理和训练发展了这个想法。

在这里插入图片描述
图4 利用双线性插值方法,对4×4网格上的预测进行了2×上采样。 然后,点Rend对N个最模糊的点(黑点)进行预测,以恢复更精细的网格上的细节。 这个过程重复,直到达到所需的网格分辨率。

推断

我们的推理选择策略受到启发通过经典的自适应细分(adaptive subdivision)技术[48]计算机图形学。这个技术用来高效的渲染高分辨率的图像,通过计算大概率不同于其周围点的点。 对于所有其他位置,这些值是通过插值已经计算的输出值(从粗网格开始)获得的)。 对于每个区域,我们迭代地“粗到细的方式“渲染”输出掩码。最粗糙水平的预测是在规则网格上的点上进行的(例如,通过使用标准的粗分割预测头)。在每次迭代中,PointRend使用双线性插值对其先前预测的分割进行上采样,然后选择N个最不确定点(例如,概率最接近0.5的点,对于二进制掩码)在这个更密集的网格上。 然后,PointRend计算这些N个点的点状特征表示(在§3.2中描述),并预测它们的标签。 此过程被重复,直到分割被提升到所需的分辨率。 这个程序的一个步骤 在图中的一个玩具示例上示出。 Figure 4.
输出分辨率MM,起始分辨率M0M0,选取的点数量有限制

选点的细节问题:
在这里插入图片描述
当期望输出分辨率为MM的时候,起始分辨率为M0M0。PointRend要求选取不超过Nlog(M/M0)个点。这比MM要小的多,这允许PointRend做到更高分辨率的掩码预测。
4.25是因为第一步上采样点不够28个

训练

在训练期间,PointRend还需要选择要在其上构建逐点特征的点,以训练Point head。 原则上,点选择策略可以类似于推理中使用的细分策略。训练过程中选择基于随机采样的非迭代选点策略,采样策略在一个特
征图上选择N个点进行训练。它的目的是使选择偏向不确定的区域,同时保持一定程度的均匀覆盖,使用三个原则:
➢ Over generation: 在均匀分布中随机采样kN个候选点(k>1)。
➢ Importance sampling: 重点关注着插值后kN个候选点中不确定的点:对这些点进行不确定性估计,在kN中选择βN个最不确定的点β∈[0,1]
➢ Coverage:剩下的(1-β)N个点从均匀分布采样
同时训练过程中,额外对这N个点进行监督

3.2 点范围表达与point head

点Rend通过组合(例如级联)两种特征类型,细粒度和粗预测特征,在选定的点上构造点状特征。

细粒度特征

为了允许pointrend渲染精细的分割细节,我们从CNN特征图上抽取了每一个点的特征向量。 由于一个点是一个实值二维坐标,我们在特征映射上进行双线性插值来计算特征向量,这是遵循标准实践的。特征可以被抽取从一个单独的特征图上。他们也可以被从多层特征图上抽取或者是对应的金字塔特征,最后按照HyperColumn方法连接。

粗糙预测特征

细粒度的特性可以解决细节问题,但在两个方面也有缺陷。首先,他们不包含区域指定的信息(我猜是属于哪个类),因此相同的点被两个实例的bounding box包含的时候会有同样的细粒度特征。然而呢,一个点只能被一个实例前景所包含。因此,对于实例分割任务,同一个点,不同的区域可能预测不同的标签。因此就需要更多的区域指定信息。

其次,根据哪些特征映射用于细粒度特征,这些特征可能只包含相对较低级别的信息(例如,我们将使用Res2与DeepLabV3)。 在这种情况下,有更多上下文和语义信息的特征源就会很有帮助。这个问题对实例分割和语义分割都有影响。
考虑到这些问题呢,第二种特征类型就是粗糙特征预测。每个点上的K维度的向量,。每个box上都有很多点,代表了K个类别的预测。通过设计,粗糙分辨率提供了全局上下文信息,通道就是语义类别。这些粗糙预测与现有的架构输出很类似,并且是监督训练。对于实例分割(在MaskRcnn中),粗糙预测可以是一个轻权重的7*7分辨率的mask head,。对于语义分割可能是16倍下采样的特征图。

Point head

得到了每个点的【点范围特征表达】,pointrend使用MLP来进行点范围上的分割预测。MLP分享权重(所有点,所有区域),类似于图卷积或者Pointnet。
MLP的结构可以从这当中收到启发。
N个点 80个类
得到的组合特征为N*(256+80),其中N为行,每一行分别放入MLP中,所以MLP的结构应该是336输入(256256256*256)输出1个,代表是否保留该点
在这里插入图片描述

4 实验:实例分割

轻量权重,粗糙掩码预测头

为了计算粗糙预测,我们使用一个更轻量化的权重设计,很像Mask Rcnn的box head,去代替四个卷积掩码头,最后生成7*7的掩码预测。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值