一、概要
《PointRend: Image Segmentation as Rendering》:论文地址
PointRend,是何凯明及其团队对图像分割领域的又一次最新探索,将图像分割当做一个渲染问题,思路清奇,源于经典而高于经典,又是一次突破传统的成功。
论文提供了一个可以预测高像素蒙版的新思路新方法。可以将该方法用于图像的实例分割和语义分割。
二、实例分割
实例分割:机器自动从图像中用目标检测方法框出不同实例,再用语义分割方法在不同实例区域内进行逐像素标记。
三、论文主要内容介绍
PointRend并不是一个完整的实例分割方法,而是一个模块,也可以理解为在实例分割过程中的一个步骤或方法,这个方法能有效的进行高质量高像素的实例分割。
PointRend(基于点的渲染)神经网络模块:
- 一个轻量级的粗粒度预测头(LightWeight,coarse mask prediction head)生成一个Mask预测。
- 通过选点策略选出一些点。
- 在每个选择的点上,提取出相应的特征(fine-grained features & coarse prediction),并对预测点的分类,生成新的Mask预测(这里的Mask预测比第一步骤的预测更加高质量高像素)。
- 重复步骤2、步骤3直到达到像素要求。
1)、问题
传统方法中要实现高像素的实例分割,需要对像素进行逐一计算,必然会带来算力大的问题,因此就需要权衡算力和高像素Mask之间的关系。论文主要解决的问题就是 如何快速的计算出高像素Mask?
2)、解决方法
论文通过迭代一步步生成高质量Mask,在迭代过程中并没有计算每一个点的分类预测,而是选取边界点不确定的点,对边界不断完善修复最终达到高质量高像素的要求。
1.预测头
使用一个轻量级的预测头,对目标框产生一个粗略的掩模预测。具体细节如下:
对于每个边界框,我们使用双线性插值从FPN的P2层提取14×14特征映射。特征是在边界框内的规则网格上计算的(此操作可以看作是ROIallign的一个简单版本)。接下来,我们使用了一个步长为2×2的卷积层,该卷积层具有256个输出通道,后面跟着ReLU,从而将空间大小减小到7×7。最后,类似于掩模R-CNN的盒形头部,应用两个1024宽的隐藏层的MLP,对每个K类产生7×7的掩模预测。
2.选点策略
PointRend的核心思想是,在图像平面中自适应地选择预测分割标签的点。
应该选择那些点? 应该是边界,为什么了,边界描绘的更清晰图像越能实现高质量分割。如下图通过不断上采样升高像素,并同时增加边界的细节,使得分割更加清晰,实现高质量的分割。
又怎样去选择这些点?由于在推理过程中有迭代的步骤,对点分类网络模型的训练不适用(使用反向传播算法),因此对推理和训练使用不同的选点策略。
推理:在每次迭代中,PointRend使用双线性插值对其先前预测的分割进行上采样,然后在此更密集的网格上选择N个最不确定的点(例如,对于 binary Mask,最接近0.5的点)。如图:
训练:(1):我们通过从均匀分布中随机抽样kN点(k>1)来过度生成候选点。
(2):从kN个点中选取βN(β ∈[0,1])个最不确定的点。使用0.5与概率之间的距离作为逐点不确定性度量,概率指的是对真实值的粗略预测概率(个人理解)。原文:(We use the distance between 0.5 and the probability of the ground truth class interpolated from the coarse prediction as the point-wise uncertainty measure.)。
(3):在从均匀分布中选取 (1 - β)N 个点。
如图:
3.点的特征提取
点的特征提取只针对上一步中选择出来的点,点的特征包含两部分(fine-grained features & coarse prediction)。
4.点的分类预测
3)、总结与成果展示