语义边缘精化方法_PointRend: Image Segmentation as Rendering

代码链接:https://github.com/zsef123/PointRend-PyTorch

文章链接:https://arxiv.org/pdf/1912.08193.pdf

参考阅读:https://www.cnblogs.com/Trevo/p/12172615.html

一、核心思想

语义分割在最后上采样的时候,一般存在一个直接的多倍上采样,以如下PSPNET为例,最后预测时8倍的上采样层,对于物体边缘的预测十分不利。

语义边缘精化方法_PointRend: Image Segmentation as Rendering

从采样的角度来看,图片存在高频区域(物体边缘,变化剧烈)和低频区域(相对平滑,颜色变化小),而低频区域大概率是属于某一类别,不需要过多的点,而在高频区域采样点稀疏将导致分割出的物体边界过于平滑,应在高频区域(物体边缘,变化剧烈)多采样,低频区域(相对平滑,颜色变化小)少采样。 

基于此思路,作者提出基于点的渲染模块(PointRend),输入可为一个或多个定义在常规格网上的CNN网络特征图,并在更高分辨率的格网中输出。先通过合理的点选择方式选择采样点,计算出采样点的分割效果,并对其进行优化。

 

二、点的渲染模块(PointRend)

主要有以下三部分构成:

1、点选择:为避免在高分辨率的输出中过量的计算所有的像素,对分割结果(步上一回合骤3预测结果)进行2倍双线性插值上采样得到coarse prediction feature,只选择少数的困难点,这些点的选择采取分割结果(上一回合步骤3小型网络预测)概率值最低的一些 ;

2、point-wise特征表示,包括两个部分,第一是提取出选出的困难点的特征,由步骤1得到,第二是低层特征(fine-grained features),类似于ROI;

3、point head:小型网络,可使用简单的多层感知机, 对上采样出的特征图进行预测,更新coarse
prediction feature。

以上过程一直重复直到上采样到需要的大小。

 

语义边缘精化方法_PointRend: Image Segmentation as Rendering

三、实验效果

语义边缘精化方法_PointRend: Image Segmentation as Rendering

语义边缘精化方法_PointRend: Image Segmentation as Rendering