Indices Matter: Learning to Index for Deep Image Matting

会议:ICCV-2019
论文:Indices Matter: Learning to Index for Deep Image Matting
官方Codes: https://github.com/poppinace/indexnet_matting
数据集:Adobe Image Matting Dataset,alphamatting.com

索引很重要:学习为 深度图像抠图 建立索引

序:segmentation和matting

image segmentation

将图像中的每个像素都进行分类,即每一个像素有确定的类别。
Indices Matter: Learning to Index for Deep Image Matting

image matting

一种用RGB的图I,来估计透明度a,前景F和背景B的方法。
Indices Matter: Learning to Index for Deep Image Matting

原始图像看做是前景和背景按照一定权重(α透明度)叠加组成的。α透明度在[0,1]区间变化,1为不透明,0为完全透明。

image matting的基本步骤是从原图先得到一个由人工制作/粗分割(类似graph cut)得到草图trimap图,带内为前景,它是不透明的(α=1),而带外是背景,α=0,剩下的带中的像素是未知区域,它的α由计算机处理、学习,有可能是小数。
Indices Matter: Learning to Index for Deep Image Matting
Indices Matter: Learning to Index for Deep Image Matting

从trimap 获取到每个像素的α值后就可以生成一张α图,这张图看起来是只有前景是白的,其余都是黑的,这就像是我们都曾见过的在艺术创作中使用的蒙版(matte),只把前景露出来,其他背景被挡住。
只要继续按照上述公式,就可将抠出的前景移到新的背景中了(特效大片的绿慕)。Indices Matter: Learning to Index for Deep Image Matting

比较

图像分割是将原图分割成若干块,分割的好与不好就看分出来的块是否与图像的内容对应了。至于抠图技术,基本只会分成两块,一块是前景,另一块是背景,而大多数时候我们抠图也就是为了把前景给拿出来。
对于一个二分类的图像问题,用图像分割是很难完美解决的(比如细到头发丝这样的像素),这也是为什么在photoshop里面抠图的时候,有个边缘羽化的功能。而matting可以很好的解决这样的问题。

摘要

把索引操作作为一个特征映射函数,提出了一种学习索引的方法,进而提出了一个索引指导的编码器-解码器框架,索引指导的是池化和上采样操作。框架的核心模块是称为IndexNet

介绍

上采样算子(upsampling operators)

  • 转置卷积
  • 上池化
  • 周期混沌/深度到空间
  • 卷积后的朴素插值

双线性差值

已知的红色数据点与待插值,得到的绿色点。
假如我们想得到未知函数f在点P= (x,y) 的值,
假设我们已知函数f在Q11 = (x1,y1)、Q12 = (x1,y2),Q21 = (x2,y1) 以及Q22 = (x2,y2) 四个点的值。

Indices Matter: Learning to Index for Deep Image Matting
首先在x方向进行线性插值,得到R1和R2。然后在y方向进行线性插值,得到P.这样就得到所要的结果f(x,y).其中红色点Q11,Q12,Q21,Q22为已知的4个像素点。

第一步:X方向的线性插值,在Q12,Q22中插入蓝色点R2,Q11,Q21中插入蓝色点R1;
第二步 :Y方向的线性插值 ,通过第一步计算出的R1与R2在y方向上插值计算出P点。

多用在语义分割和深度(depth)预测中。
原因:通过上采样生成的特征图过于稀疏,而双线性插值很可能生成特征图,这个特征图可以描述语义一致区域。(同一个区域中的像素通常共享相同的类别标签或具有相似的深度)
**(UnSampling)**上采样
Indices Matter: Learning to Index for Deep Image Matting

在对边界敏感的任务中不适用。

采用最大池化索引的上池化(Unpooling)

在对边界敏感的任务中表现较好
这是bilinear方法不能比拟的。
Indices Matter: Learning to Index for Deep Image Matting

总结

不同的上采样算子有不同的特点,因此我们期望上采样算子在处理特定视觉任务中的特定图像内容时具有特定的行为。

提出问题:能不能设计一个通用的算子进行上采样过程,能同时预测边界和区域

Index

所有的上采样算子其实都是一种索引函数形式。因此,索引可以被建模、学习得到。
我们将索引建模为局部特征图的函数,并学习一个索引函数,以在深度神经网络中执行上采样。
提出一个索引指导下的编码器-解码器框架;
不用最大池化和普通的上池化,采用索引池化和索引上采样算子,池化和上采样过程由学习到的索引来指导。

近来研究

深度网络中的上采样(upsampling)

反卷积:语义分割
resize+卷积
打孔和上池化:生成稀疏索引来指导上采样。但是会在上采样之后变稀疏,因为必须在之后接一个滤波尺寸较大的卷积层来致密。(也是研究人员收到启发的结构)

深度图像抠图(Deep Image Matting)

被设计来解决抠图方程。Indices Matter: Learning to Index for Deep Image Matting

这些方法严重依赖于颜色线索,在颜色不能用作可靠线索的一般自然场景中,渲染抠图失败。

semi-deep mattingclosed-form matting KNN matting
现在仍被用作深度网络的后端(因为虽然网络是端到端训练的,并且可以提取强大的特征,但最终的性能受到传统后端的限制。)

fully-deep image matting:deep image matting approach based
on SegNet
这种基于SegNet的架构成为了最近许多深度抠图方法的标准配置
但是计算昂贵,内存开销大(当测试高分辨率图像时,推理只能在中央处理器上执行,这实际上是不方便的)