PointRend:Image Segementation as Rendering

论文地址:https://arxiv.org/pdf/1912.08193.pdf

代码链接:https://github.com/facebookresearch/detectron2/tree/master/projects/PointRend

摘要:本文提出了一种新的方法用于有效的从高质量的图像中进行物体和场景的分割。通过类比传统的计算图形学用于渲染高清图片的处理办法,我们借鉴了其渲染(rendering)的思路用于图像的分割。为此,我们提出了一种新的神经网络模块,PointRend,该模块能够通过一种不断迭代的算法来自适应的挑选出有问题的区域,并对该区域的像素点进行精细化的调整预测。PointRend模块能够很灵活的被嵌套加载运用于现今存在的各个实例和语义分割模型上。定性的讲,PointRend能够对物体的边缘进行更好的分割(crisp object boundaries);定量的讲,在COCO相关的数据集上均取得了长足的进步,并且其显存的高效利用使得其输出的分辨率是其他现有模型所不能做到的。

核心思想:

图像分割任务通常都涉及到将像素点映射到规则的网格上,然后据此生成一个标签网格或多个标签网格(label maps)。对于语义分割来说,每组标签网格就代表了每一个像素点的类别。而对于实例分割来说,一个二分的前景和背景的标签网格就可以用于每一个目标的检测。用于图像分割的CNNs网络通常都是在规则的网格上进行操作的,输入的图片会被表征成规则的像素网格,它们的隐藏特征也就是每一个网格点的特征向量,它们的输出就是每一个网格的预测标签结果。PointRend设计了一种新的难点(分割问题上的话,可以默认为就是边缘点)采样方法。

实现步骤:

  1. 一种选择少量合适像素点的策略。这种策略能帮助模型尽可能少的去选择那些真正需要去进一步判断的点,从而避免计算量过大的问题。

训练阶段:

采用一种基于随机采样的非迭代式策略。而该策略的实行目标就是在特征图上选取N点,但是呢这N个点又要倾向于那种不确定性高的区域(也就是边界),同时还得保证一定的均匀覆盖。

1)Over generation:从均匀分布中随机选取kN个候选点。

2)Importance sampling:通过插值计算出选中的kN个点,对该任务的不确定性估计,再从中选择个点。

3)Coverage:剩下的个点就从剩下的候选点均匀采样。

 

推理阶段:

对于每一个区域,我们都要用一种从粗糙到精细(coarse-to-fine)的迭代式方法,来“渲染”输出的蒙版(mask)。该“渲染”方法就是从常规的网络的最后一层输出开始(意思就是从网络的最深层,即感受野最大的那层开始上采样迭代),在每一次迭代的过程中,PointRend都会用双线性差值(bilinear interpolation)的办法进行上采样,并且从中选取N个不确定的点(比如那些在二分蒙版的情况下概率接近0.5的),生产该点的特征,并预测它们的标签。这一方法将被迭代使用,直到达到输出的分辨率大小。


(2)对于每一个被选出来的点,如何对该点构建特征向量(point-wise feature representation)。将两种不同的特征(细粒度特征和粗粒度特征)进行拼接,作为每一个点的特征表示。两者的作用分别是提供目标的细节信息以及全局的上下文信息。对于细粒度特征,其来源应该就是在粗粒度特征上选取的点通过双线性插值的办法又映射回原图尺寸,从而得到对应点的细粒度特征。而粗粒度特征对于实例分割来说是从RoI特征经过预测得到的K类别Mask中进行插值提取。粗预测特征提供更多的上下文信息,同时表达语义类别。

 
(3)根据每一个点提取出的特征,去预测该点所属的类别。就是给定每个点的特征表示,采用MLP(multi-layer perceptron)进行分割预测,预测点的类别标签。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值