【Image Matting】A Late Fushion CNN for Digital Matting

【CVPR 2019】A Late Fushion CNN for Digital Matting

摘要

  • 单张RGB图预测Alpha Matte。
  • 有两个Decoder分支,对前景和背景进行分类(观察到更好的分类的到硬分割的结果)。
  • Late Fusion是指在网络的后面,对两个分类网络的结果进行融合。
  • 设计Loss使得分类网络在前景和背景上达成一致,在Fusion 上对软分割的区域进行校正。
  • Fusion Layer不是简单的最大最小化或者求平均,而是通过网络学习一个fusion权重。
  • 构建了新的人像数据集

方法

3.1 方法概述

在这里插入图片描述

核心思想,用网络预测3个图:

  1. 前景概率图
  2. 背景概率图
  3. 混合权重概率图

然后利用以下Fusion公式来预测alpha的值
α p = β p F p ˉ + ( 1 − β p ) ( 1 − B p ˉ ) \alpha_p = \beta_p \bar{F_p} + (1 - \beta_p) (1 - \bar{B_p}) αp=βpFpˉ+(1βp)(1Bpˉ)
其中 F p ˉ \bar{F_p} Fpˉ B p ˉ \bar{B_p} Bpˉ分别是预测的前景和背景在p像素的概率值,$ \beta_p$是Fusion网络预测的融合权重

Fusion网络的输入是图片和两个分类网络逻辑回归前的特征。

注意:当 F p ˉ + B p ˉ = 1 \bar{F_p}+ \bar{B_p} = 1 Fpˉ+Bpˉ=1的时候, α p \alpha_p αp β p \beta_p βp求导梯度会消失。

利用上面的融合公式有两个好处:

  1. 如果预测的前景和背景准确的话,Fusion网络可以更关注于学习过渡的区域
  2. 仔细的设计Loss使得 F p ˉ + B p ˉ ≠ 1 \bar{F_p}+ \bar{B_p} \not = 1 Fpˉ+Bpˉ=1,使得过渡区域可以给Fusion Net提供有用的梯度。

3.2 语义分割网络

网络结构:
Encoder: DenseNet-201去掉全连接层当做特征提取器,共5个Encoder.
Decoder: 2个Decoder使用特征金字塔,对应5个Encoder,预测出前景和背景的概率。
额外使用Skip Connection:将Encoder中多尺度的特征图和,反卷积层的上采样特征concat到一起。

Loss函数:
Loss函数包括L1、L2、交叉熵。根据alpha区域给不同的像素不同的权重。
先看针对前景分类Decoder的Loss
在这里插入图片描述
第一个Loss首先计算预测出的前景和alpha的距离。在过渡区域使用L1距离(恢复alpha的细节),在前背景区域使用L2距离(惩罚分割的错误),这样能够更好地处理软分割和应分割的不同。
在这里插入图片描述

第二个Loss计算预测前景图的梯度的L1Loss,用于去除分类后的模糊
在这里插入图片描述
第三个Loss计算前景分类的交叉熵损失。

  • w p w_p wp,当 α p \alpha_p αp是1/0的时候(前景和背景区域)设为1,在过渡区域的时候设置为0.5.
  • α ^ p \hat{\alpha}_p α^p,当处在前景和过渡区域的时候设为1,背景的时候设置为0.

交叉熵损失鼓励语义分割的网络将输出的概率值1做为一个上界。但是并没有提供有用过渡区域的梯度,因此在过渡区域给一个小的权重,然后组合L1、L2 loss的到一个初步的分割的结果。
最终前景分类的总Loss如下:

在这里插入图片描述
先看针对背景分类Decoder的Loss
将上面的 α p = 1 − α p \alpha_p = 1- \alpha_p αp=1αp,剩下的同理。

注意:
在过渡区域组合交叉熵和L1 Loss,会输出比GT的值更大的概率值,这是因为交叉熵损失更倾向于让概率输出为1。因为 1 − B p 1-B_p 1Bp会比真实的aplha要小,因此真实的alpha的值会落在两个分类网络概率形成的区间中

  • 这种设计可以使得Fusion之后得到一个比较准确的回归的结果。
  • 强制让前景和背景的语义分割使用不同的Loss进行训练,可以学习到不同的特征。类似ensemble learning的思想。
  • 让alpha的[0,1]值大概率落在两个网络预测的概率的区间内。
    在这里插入图片描述
    例如中间是alpha的GT,右边输出的alpha的预测结果。其中红色的部分就是使用 F p F_p Fp 1 − B p 1-B_p 1Bp两个概率的中间值取得。

3.3 Fusion网络

Fusion网络的目的在于输出一个 β p \beta_p βp权重,融合前景和背景分类的结果。

网络结构:
5个卷积层和1一个sigmoid层,计算出混合的权重。
输入有两个,一部分是decoder的最后一层的特征图,另一部分是RBG输入原图卷积后的特征图(卷积核采用3×3大小)。

Loss:
假设前面的分类网络decoder已经对固定的像素预测出了可信的分割的类别,Fusion的loss的更倾向于过渡区域像素:
在这里插入图片描述

  • w p w_p wp等于1,当处于过渡区域时
  • w p w_p wp等于0.1,当处于其他区域时

训练细节

  • Encoder-使用DenseNet-201在ImageNet上pre-train
  • 预训练语义分割网络:先在语义分割的网络上预训练15个epoch
  • 预训练fusion网络:冻结语义分割的参数,单独训练4个epoch
  • End-to-End联合训练:7个epoch。此时冻结所有的BN层(节约内存)
  • 使用Cyclical learning策略加速收敛

在端到端联合训练的时候fine-tune整个网络,使用一个特殊的Loss,基于Fusion Loss和分割的Loss避免过拟合:
在这里插入图片描述

  • w 1 w_1 w1=0.5, w 2 w_2 w2 = 0.01
  • L s L_s Ls用来惩罚软分割像素的数量, γ \gamma γ设置为0.9

在这里插入图片描述

实验结果

1. 实验设置

测试数据集:

  1. Human Image Matting: 收集了40个人像,其中29个来自网上,alpha仔细的手动抠图。11个来自Composition 1-K testing dataset,从VOC中随机找25张背景图片进行合成。
  2. Composition-1K 测试集

训练数据集:

  1. 228张人像和211张从DIM中的人像,从COCO随机挑选背景进行合成,共28610张图片
  2. Composition-1K 数据集

数据增强,训练阶段:

  • 在trimap的过渡区域像素为中心,随机裁剪image和trimap到512512和800800尺寸
  • resize所有的训练图片到512*512用来warm-up
  • 对所有裁剪和resize过的训练数据进行随机翻转和旋转
  • 长边不超过800

P100,HIM上训练2.5天,DIM上训练4天。测试时800*800每张0.39秒

2. Human数据集下的结果:

在这里插入图片描述

  • 输入的Trimap的生成是在alpha的非0非1的像素处随机膨胀生成的。
  • 用于度量的trimap的过渡区域是通过25个像素膨胀生成的

如果只计算trimap过渡区域的指标,此方法比DIM要好(ours-raw-25, ours-refined-25)
在整张图上计算指标,指标略有下降(Ours-raw-full, Ours-refined-full)
Ours-FG/BG-Only-25和Ours-Fusion-Only-25显示了各个子网络是有效果的。

在这里插入图片描述
在各个姿势上和大小上效果都还不错

3. DIM数据集下的结果

DIM数据集下量化指标的对比:
在这里插入图片描述
量化指标全面超过传统方法,但是比DIM还差一点点,这是因为DIM的输入条件更强。
DIM-Trimap-less-25指的是不输入Trimap这个通道

DIM数据集下可视化效果:
在这里插入图片描述

在这里插入图片描述
上面这个图7b比较的是当Trimap的区域更大的时候,抠图的效果就更差了。

4. 自我比较

两个decoder分支的设计是为了让优化器平衡不同区域的得到更好结果,提供了3种方式的组合(前景概率,背景概率,Fusion概率)
在这里插入图片描述

  • Simgle branch: 忽略背景和Fusion的两支,类似DIM的做法。只使用卷积网络来refine和L1 Loss来做监督。
  • 本文使用Fusion,前景和背景预测的概率在非过渡区域更加的solid(是0就是0,是1就是1),因为语义分割的任务更偏向于一个硬分割。最后的Fusion部分能够更好的融合两个预测的概率图FG、BG 。

5. 网络图片比较

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值