参考代码(训练部分未公开):ContextNet
1. 概述
导读:现有的一些基于CNN网络的matting网络都是使用三色图与原始图像作为输入,之后输出这张图对应的alpha图。而这篇文章则同时输出前景图和alpha图,对此文章提出了两个编码器:matting编码器(matting encoder,ME)和context编码器(context encoder,CE),分别用于获取表征范围在局部和较大范围的信息,之后将编码之后的两个特征进行concat,之后也是经过两个解码器分别得到需要的alpha图和前景图。对此文章还引入了两个损失函数:Laplacian loss和feature loss,前者用于产生更高性能的数值(MSE,SAD等),后一个用于产生更加符合视觉直观感知的结果。此外,文章还提出了一些数据增广的策略,可以借鉴使用。
这篇文章要解决的是natural图像的matting问题,也就是需要在输入三色图和原图的情况下预测出alpha图和前景图。现有的matting方法一般是通过已知与未知区域之间的inferring和sampling实现的。问了解决natural图的matting问题提出了带有2个编码器和2个解码器的网络。
2. 方法设计
2.1 网络结构
文章提出的方法其网络结构见下图所示:
Matting encoder(ME):
这里使用stride=4的Exception65作为其backbone,其中stride设置较小是为了使得特征图有较大的分辨率;
Context encoder(CE):
这里也是采用的Xception65作为backbone,不过这里将stride设置为16,通过双线性上采样使得特征图尺寸与ME的对应上;
Alpha和前景decoder:
这里通过2次堆叠matting encoder的特征图实现两种预测结果的输出,输出结果尺寸与原图尺寸一致;
2.2 损失函数
文章对于alpha图的监督使用的是Laplacian loss的形式,将alpha图分解到多个(5层)高斯金字塔层级上,之后再在各个层级上做L1损失,用于监督局部与全局alpha输出,还通过加权的形式进行组合,数学表达形式为:
L l a p α = ∑ i = 1 5 2 i − 1 ∣ ∣ L i α ^ − L i ( α ) ∣ ∣ 1 L_{lap}^{\alpha}=\sum_{i=1}^52^{i-1}||L^i\hat{\alpha}-L^i(\alpha)||_1 Llapα=i=1∑52i−1∣∣Liα^−L