Improved Image Matting via Real-time User Clicks and Uncertainty Estimation

Improved Image Matting via Real-time User Clicks and Uncertainty Estimation


论文链接:https://arxiv.org/abs/2012.08323
发表出处:2020 CVPR

1.背景

基于trimap和无trimap的方法都有各自的优缺点。
具体来说,基于trimap的方法可以实现最先进的性能,但它们需要用户提供绘制良好的trimap来指示前景、背景和过渡区域。根
trimap-free方法不需要任何用户,但它们的性能明显更差。这是因为,如果没有先验,这样的方法经常会含糊不清哪些是目标前景对象,特别是在一些复杂的情况下。
为了解决模糊问题,一个典型的解决方案是为一个感兴趣的类别收集一个大规模的有标签的数据集,这样网络就可以依靠语义来识别前景。
然而,数据标记很昂贵,而且它不能扩展到除特定以外的类别,例如下图第一个案例中的“surfboard”。此外,即使是某一特定类别,在某些情况下也不能满足用户的需求。例如第二种情况中,用户可能只想保留其中一个目标画像。
在这里插入图片描述

2.观点

1)用户先验对于减少图像抠图的模糊性和扩展到新类别是一个非常重要的提示。
2) trimap是一个非常强的先验,但是它的获取太耗时。这促使改进一个更简单的用户先验,它足以用最小的努力识别前景对象。
首次尝试使用简单的用户点击作为抠图先验
3)额外的细化阶段可以进一步提高抠图质量,但是“全局优化”方案既不有效也不灵活
引入了一个新的不确定性估计模块,可以自动预测哪些局部零件需要更多polish。
有了不确定性指导和computation budget,用户可以灵活选择改进哪些部分和多少部分

3.网络

提出了一个新的抠图框架,如图所示,由两个关键部分组成:用户点击的交互式抠图和不确定性引导的局部细化。
用户点击的交互式抠图的输入类似于基于trimap的抠图,除了原始的RGB图像I,文章连接另一个单通道提示heatmap U作为先验的输入。当用户添加一个前景点击点时,将点击点周围半径r内的值填充为1。相反,如果点击一个背景点,相应的值将填充为-1。所有未指定的值都将用0填充。用户点击的交互式抠图网络用模拟用户交互来训练。
网络由一个编码器和两个解码器组成,alpha解码器输出原始的预测alpha matte,不确定解码器输出uncertainty map,得到uncertainty map之后,就可以知道alpha抠图网络不确定的区域,从而优化相应的局部部分。对每个局部裁剪小的k × k image patch和相应的alpha matte patch,然后将它们输入到一个小的细化网络中,得到细化后的alpha matte。
在这里插入图片描述

4.用户点击的交互式抠图

(1)抠图网络
设计了基于U-Net架构的交互式抠图网络。具体而言,在编码器部分,首先使用一个stride-1卷积层和两个stride-2卷积层,然后插入由四个阶段(3,4,4,2)组成的总共13个residual块。在最后三个阶段,输入分辨率将每次下降2。对称地,alpha解码器具有10个由四个阶段组成的residual块,随后是一个stride-1/2转换层和一个stride-1卷积层。除最后一个输出层之外,所有卷积层之后都是批处理归一化和ReLU。
(2)模拟用户点击交互
用模拟用户交互来训练抠图网络。具体来说,在训练期间,在每幅图像的前景和背景区域随机采样总共m个半径为r的点击点,其中m是从p = 1/6和r = 15的几何分布中绘制的。
(3)损失函数
为了训练抠图网络,分别采用图像空间和梯度空间两种类型的损失函数:
在这里插入图片描述
对于图像空间回归loss Lreg,在半透明区域T中采用L1损耗,在前景和背景区域S = {F, B}中采用L2损耗:
在这里插入图片描述
梯度损失Lgrad定义为预测值和ground-truth alpha mattes空间梯度上的‘L1损失’:
在这里插入图片描述
Lgrad可以促使网络产生更清晰的抠图结果。

5.不确定引导细化

(1)不确定估计模块
在抠图网络的编码器上增加了另一个类似的解码器。进一步将alpha matte预测建模为整个训练集D上的参数分布(p(α|I, U;D))学习问题。这里默认采用经典的单变量Laplace分布:
在这里插入图片描述
µ就是从抠图网络输出的目标alpha matte αp, σ就是从不确定性估计解码器输出的不确定性预测σp。为了优化不确定性解码器,从概率的角度使用负对数似然极小化:
在这里插入图片描述
其中N为D的图像总数,在训练过程中,以ground truth alpha matte为x,可以直接在训练集上对上述方程进行优化,σp越大,说明网络对抠图网络的输出值的不确定性越大。
(2)局部细化网络
得到不确定性图后,可以知道alpha抠图网络不确定的地方,并优化相应的局部部分。
具体来说,对每个局部裁剪小的k × k(默认k = 64)image patch和相应的alpha matte patch,然后将它们输入到一个小的细化网络中,得到细化后的alpha matte。
对于详细的网络结构,简单地设计了一个没有下采样层的全卷积网络。具体来说,除了开头和结尾的两个卷积层外,在中间插入四个residual块。由于k通常比原始图像大小小得多,所以每个局部部分的计算成本更小。该方法有效地避免了不需要优化的区域的冗余计算。
(3)损失函数
由于裁剪后的alpha matte patch中的大多数像素已经被正确预测,因此只有少数“hard”像素需要显著细化。为了使网络更加关注那些“hard”像素,采用简化的hard样本挖掘目标函数Lrefine如下:
在这里插入图片描述
其中C为整个像素集,H为“hard”像素集,其与ground truth的误差在整个patch中排名前20%。λ表示强调硬样本的权重,默认设置为1。

6.实验结果

(1)量化结果
在这里插入图片描述
No-Hints:无论是在训练还是测试之前,输入的都是没有任何提示的原始图像
hints - train:只使用模拟的用户点击提示来训练网络,而在没有任何用户点击的情况下进行测试
(2)视觉效果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/balabalabiubiu/article/details/115213233