概述
这篇论文是2019年的,它的特色在于他的全自动抠图。这里的全自动指的是不需要绿幕,也不需要输入trimap图,甚至连背景图也不需要。在只需要输入一张原图的情况下,就能很好的抠图,并且论文中效果不错。不过2020年的其他论文中也复现了这篇论文并加以比较,说这篇论文的方法效果太差。
个人认为的确是远远达不到论文中所说的那么好的效果,这种全自动的话,你输入中没有辅助图,也没有深度信息,神经网络再好,也学习不到人想要的前景吧???比如你在人后面放一把椅子,那么请问:这把椅子会不会被抠出来呢?如果抠出来就证明与预期效果不符,如果没有抠出来就说明你这网络并不能抠出真实的前景 ,这不是自我矛盾吗?(当然这只是我个人浅薄的认知)
知乎大佬的质疑: [质疑][CVPR2019][A Late Fusion… Matting].
作者的澄清: 澄清误解-对CVPR 2019 LFM论文质疑的回复.
详细解读
这篇论文以单一RGB图像为输入,研究了一种深度卷积神经网络预测前景alpha matte的结构。网络是完全卷积的,有两个分别用于前景分类和背景分类的解码器分支。然后利用融合分支对两个分类结果进行融合,得到alpha值作为软分割结果。网络可以在没有用户交互的情况下隐式生成三角图,这就实现了全自动alpha matting。网络结构如下:
从上述的网络结构我们可以看出网络主要分为两个阶段:segmentation网络和fusion网络,主要预测了三个值:前景概率图、背景概率图、混合权重概率图。通过混合权重概率图吧前景和背景概率图进行融合就是最终的输出了。
Segmentation Network
使用没有全连接的层头的DenseNet-201 作为编码器。每个分支由与五个编码器块相对应的五个解码器块组成,并且解码器块遵循特征金字塔网络结构的设计。使用了Skip Connection,将编码器块中的多尺度特征(在平均下采样之前)与通过反卷积层上采样的特征连接起来。
编码器: DenseNet-201去掉全连接层当做特征提取器,共5个Encoder.编码器从输入图像中提取语义特征。这两个解码器共享相同的编码结果,并分别预测前景和背景概率图
解码器: 2个Decoder各有5个Encoder,遵循特征金字塔网络结构的设计。
Loss函数:L1、L2、交叉熵。通过根据alpha遮罩为不同的像素设置不同的权重来控制网络训练过程的行为。
前景预测最终的损失函数:
其中 各个部分计算公式如下:
背景分类Loss将上面的 αp = 1 − αp替换即可。
这样算出的真实的alpha的值会落在两个分类网络概率形成的区间中。
Fusion Network
目的是在像素处输出β以融合前景和背景分类结果。
5个卷积层和1一个sigmoid层,计算出混合的权重。
网络的输入包括:(1)来自前景和背景解码器最后一块的特征图; (2)来自与输入RGB图像卷积的特征。 我们根据实验将卷积核的大小设置为3×3,发现具有这种核大小的融合网络可以更好地生成alpha matte的细节。
loss函数:
当处于过渡区域时wp等于1,当处于其他区域时wp等于0.1
总结
这篇文章的思想优点在于分别预测前后景,因为网络有一定的偏好性(因为交叉熵损失更倾向于让概率输出为1),所以作者分别使用两个分支预测前景和后景,前景预测会比真实的alpha大,背景预测的1-Bp会比真实的alpha小。如下图所示,中间是alpha的GT,右边输出的alpha的预测结果。其中红色的部分就是使用 Fp和 1 − Bp 两个概率的中间值取得.
我认为这种思想一定程度上解决了过拟合情况,并且输出结果不是单一的参考,使得结果更具与泛性。