论文《Learning-based Sampling for Natural Image Matting》将基于采样的方法与当今的深度学习进行结合,在matting任务中取得了很好的效果。本文是我的阅读笔记,解释以及思考该模型的方法。
模型思路
在matting任务中,认为一张图像是由前景和背景线性组合而成,即下述公式:
很明显,要将前景背景分开需要知道的是公式中的,在目前已有的基于学习的方法中,基本上都是通过各种方法直接去推断。然而本文的方法是先推断出“不确定区域”的前景和背景,再由前景和背景推断出相应的alpha。整体的流程图如下
可以看到这是一个三阶段的方法,首先并且每一阶段都用到了前一阶段的结果。第一阶段输入trimap和原图得到背景,第二阶段输入trimap和原图和推测的背景得到前景,第三阶段输入trimap和原图和推测的背景与前景得到最终的alpha。
下面分别对这三个部分进行介绍。
背景采样
这一步的目的是对trimap对应的“不确定区域”中的背景进行推测。作者认为这与图像修复这一任务很相似,图像修复是利用已知的纹理与其他高层信息对缺失的区域进行“想象”(hallucinate)。这里的“想象”确实是作者介绍图像修复时的用词,并且这个说法在下面会用到。
由于两个任务的相似性,作者直接使用state-of-the-art的图像修复网络[1],进行些许的改动就用在生成背景的任务中。
第一个改动:
一般的图像修复任务的输入为下图所示,待修复区域是完全不可见的。但是在本文任务中,“不确定区域”并不是不可见的,并且该区域的包含了很多背景相关信息,因此为了利用这些信息这里直接输入了原图而不是遮挡后的图。
第二个改动:
只对“不确定区域”计算损失函数,这在该任务中是理所当然的,因为该任务就是要预测“不确定区域”的背景。损失函数如下
其中分别是预测的背景图和真实的背景图,代表不确定区域。
这里有一个疑问,损失函数中要求有真实的背景图,那么该模型的训练网络就应该只能用合成的图像进行训练(合成的意思是将某个前景与某个背景组合在一起),因为真实图像没有真实的背景图
前景采样
估计出背景之后再要去估计前景,那么问题就变为估计一个合适的背景,使得它与背景的混合是原图所示的样子。因此在这一步有两个约束,即两个损失函数,如下
前一函数是对比真实前景图的L1损失,后一个是与背景图结合之后的L1损失。
alpha matte 生成
其实得到前景图与背景之后,是可以直接计算出alpha的。但这里作者说为了得到更高质量的alpha,所以这里也使用了神经网络(这里作为博主有些不解)。
这里使用的网络是AlphaGAN[2]中的生成网络,损失函数是关于alpha图和最终合成图的L1损失
但是L1损失函数存在最终生成图会模糊的问题,因此作者又提出了对于梯度图的L1损失如下
引用
[1]. generative image inpainting with contextual attention
[2]. AlphaGAN: Generative adversarial networks for natural image matting
网友评论