论文地址:https://arxiv.org/pdf/1809.01354.pdf
内容简介
- 这个网络是用来做人像抠图的(Matting),只能抠人不能抠别的
- 制作了一个很大的高质量人像抠图数据集(52511train+1400test),据论文介绍花了1200小时;不过好像还没开源
- 属于自动抠图,不需要手动输入额外trimap
网络结构
简单来说就是把两个网络装起来做个pipeline,其中:
- T-Net: 负责进行trimap生成。虽然本文并不需要手工去输入trimap,但是对于matting这个任务来说,trimap还是需要的。
因此这里采用了自动生成的trimap。trimap由三部分组成,前景区域,背景区域,未知区域,那么其实就相当于一个语义分割问题。由于这里前景类别是固定的(人),那么分割出来的人就可以作为前景,在此基础上进行dirate就可以得到未知区域,剩下的就是背景了。 - M-Net: 负责生成alpha matte。那这个用的抠图问题中经典的Encoder-Decoder结构了,没有什么特别的。输入是原图和T-Net输出叠加得到的六通道特征图,Encoder用的是VGG16,修改了输入为六通道,然后把conv6、deconv6去掉了(参数过多容易造成过拟合)
- Fusion: 其实就是这么个公式:
α p = F s + U s α r \alpha_{p}=F_{s}+U_{s} \alpha_{r} αp=Fs+Usαr
其中, α p \alpha_{p} αp是Fusion模块的输出,即网络最终得到的alpha matte; F s F_{s} Fs为前景的概率图,表示每个像素属于前景的概率; U s U_{s} Us为未知区域的概率图,表示每个像素属于未知区域的概率; α r \alpha_{r} αr是M-Net输出的粗alpha matte。
这个公式的大概意思是,如果 U s U_{s} Us接近0,表示这块基本是确定区域,那么我们可以直接用trimap级别的信息(因为这个时候 α \alpha α不是0就是1,再跑个网络反而可能不准);而如果 U s U_{s} Us接近1,表示这块不确定,那么我们主要利用的就是matting网络下的结果。
Loss
用了两种loss:
- alpha-prediction loss: 在Deep Image Matting一文中被提出。其实就是预测alpha matte和gt alpha matte之间的逐像素差绝对值。不过因为绝对值本身是一次的不可导,因此这里先平方,加上一个小项
ϵ
\epsilon
ϵ,再开根号来进行近似
L α i = ( α p i − α g i ) 2 + ϵ 2 , α p i , α g i ∈ [ 0 , 1 ] \mathcal{L}_{\alpha}^{i}=\sqrt{\left(\alpha_{p}^{i}-\alpha_{g}^{i}\right)^{2}+\epsilon^{2}}, \quad \alpha_{p}^{i}, \alpha_{g}^{i} \in[0,1] Lαi=(αpi−αgi)2+ϵ2,αpi,αgi∈[0,1]
其中 α p i \alpha_{p}^{i} αpi为预测 α \alpha α值, α g i \alpha_{g}^{i} αgi为真实 α \alpha α值, ϵ = 1 0 − 6 \epsilon={10^{ - 6}} ϵ=10−6。 - classification loss:
∥ F s + U s α r − α g ∥ \left\|F_{s}+U_{s} \alpha_{r}-\alpha_{g}\right\| ∥Fs+Usαr−αg∥
其实变形下就是
∥ α p − α g ∥ \left\| \alpha_{p}-\alpha_{g}\right\| ∥αp−αg∥
没太懂这个损失的意义,但是从消融研究看确实是有用的。
最终的损失是这两者的加权和:
L
=
L
p
+
λ
L
t
\mathcal{L}=\mathcal{L}_{p}+\lambda \mathcal{L}_{t}
L=Lp+λLt
λ
\lambda
λ在文中取0.01。
训练
由于组成pipline的两个网络其任务并不相同,一个是生成trimap(分割任务),一个是生成alpha matte(matting任务),因此这两个网络只能拆开来先各自pretrain,然后最后“真正的训练”其实是在这两个pretrain网络上进行finetune。
其他
语义分割和Matting的区别:
语义分割更关注某一个像素进行尽可能精准的分类,算是分类问题;Matting更关注给每个像素分配一个透明度(也就是α值),算是回归问题。因此,他们两个在loss函数的设计上也会有很大差异。