Is a Green Screen Really Necessary for Real-Time Portrait Matting?



论文链接:https://arxiv.org/pdf/2011.11961v2.pdf


1.背景


目前,实时获得高质量前景蒙版仍需要绿幕的辅助。


而当前大部分不使用绿幕的抠图方法都会使用预定义 trimap 做作为输入。但trimap 需要人类标注,所需成本高昂,并且如果是通过深度相机捕获,还会出现低精度问题。

而trimap-free 方法由于受到标注训练数据不足的影响在实践中常遇到域偏移问题,也就是说模型无法很好地泛化至现实数据。


2.内容概述


针对上面的问题,这篇论文提出了一个仅以RGB图像作为输入的单模型网络MODNet


为了克服域偏移问题,引入了一种基于子目标一致性(SOC)的自监督策略。该策略利用子目标之间的一致性来减少预测alpha matte中的伪像(artifacts)。


并且提出了一个单帧延迟(OFD)的技巧从而在视频抠图的应用中获得更平滑的输出。

绿幕抠图有绿边 python_绿幕抠图有绿边 python


3.MODNet思想概述


作者认为神经网络更擅长学习一组简单目标,而不是一个复杂目标。因此,解决多个抠图子目标可以实现更好的性能。其次,对每个子目标应用显式监督信号,可以使模型的不同部分学习解耦的知识,从而实现一个模型解决所有子目标。所以将 作者将trimap-free 抠图目标分解为语义估计、细节预测和语义 - 细节融合三个子目标。


语义估计就是通过编码器来提取图像的高级语义


细节预测是结合了输入图像的信息和语义估计部分的输出对人像边缘进行单独地约束学习


语义细节融合就是将语义输出和细节输出结果拼起来后得到最终的 alpha 结果


4.网络


作者将模型学习分为语义估计、细节预测和语义细节融合三个部分:


绿幕抠图有绿边 python_深度学习_02


语义估计部分:


采用了MobileNetV2 去提取低级特征和高级语义S(I)


在分析S(I)中的特征映射时,作者注意到有些通道比其他通道具有更准确的语义。所以在MobileNetV2之后增加了一个通道式注意机制SE-Block从而鼓励使用更准确的语义,通过GT matte α

g的缩略图来监督S

p

作者在这里使用L2损失:


绿幕抠图有绿边 python_深度学习_03


(G表示的是一个对ground truth matte的下采样和高斯模糊的操作)


细节预测部分:


主要是负责处理前景肖像周围的过渡区域


这个部分以I, S(I)和I的低级特征作为输入,作者将细节预测的输出表示为D(I,S(I)),这也表明了高级人类语义S(I)是细节预测的先验,也就说子目标之间是存在依赖性的。


根据D(I,S(I))计算边界细节matte d

p,并通过L1损失优化它:


绿幕抠图有绿边 python_绿幕抠图有绿边 python_04


其中m

d是一个二进制掩码,让L

d聚焦在肖像边界上。m

d是通过的α

g膨胀和侵蚀产生的。如果像素在过渡区域内,则其值为1,否则为0。


语义-细节融合部分:


结合了语义和细节,首先对S(I)进行上采样,使其形状与D(I,S(I))相匹配。然后,将S(I)和D(I,S(I))连接起来,预测最终的α

p约束条件这个公式:


绿幕抠图有绿边 python_抠图_05


5.SOC


为了更加适应真实世界的数据,文章提出了子目标一致性的方法.


对于一个未标记图像,MODNet中的三个子对象可能具有不一致的输出。例如,属于背景的某个像素的前景概率在预测的alpha matte α

p中可能是错误的,但是在预测的粗略语义遮罩S

p中是正确的。直觉上这个像素在 α

p和S

p上应该有接近的值。受此启发,我们的自监督SOC策略在子目标的预测之间施加了一致性约束,以提高MODNet的泛化能力。


形式上,用M来表示MODNet。对于未标记的图像I

~,M有三个输出:


绿幕抠图有绿边 python_人工智能_06


我们通过以下方式强制α

~p中的语义与S

~p一致,而α

~p中的细节与d

~p一致:


绿幕抠图有绿边 python_深度学习_07


其中m

d表示 α

p中的过渡区,G与方程2中的含义相同(G代表16×下采样,然后是高斯模糊)


然而,在模糊G(α

p~)上增加L2损失将平滑优化α

p中的边界。因此, α

p和 d

p之间的一致性将去除高分辨率分支预测的细节。为了防止这个问题,我们将M复制到M’,并在执行SOC之前固定。由于M’在输出 d

p

~中保留了精细边界,我们附加了一个额外的约束来维护M中的细节,如下所示:


绿幕抠图有绿边 python_抠图_08


我们通过同时优化L

cons和L

dd将MODNet推广到目标域


6.OFD


对每个视频帧独立应用图像处理算法通常会导致输出中的时间不一致。在抠图中,这种现象通常以闪烁的形式出现。由于一帧中的像素在相邻帧中可能是正确的,作者认为可以利用前一帧和后一帧来固定这些像素。


假设我们有三个连续的帧,它们对应的alpha mattes是α

t-1、α

t和α

t+1,其中t是帧索引。如果α满足下列条件,我们认为它是一个闪烁的像素(如图所示):


绿幕抠图有绿边 python_人工智能_09


绿幕抠图有绿边 python_绿幕抠图有绿边 python_10


在实践中,作者设置ξ = 0.1来度量像素值的相似性。


这种状况通过下面这个公式解决


绿幕抠图有绿边 python_绿幕抠图有绿边 python_11


c表示存在闪烁,如果α

t-1i和α 
 t+1i的值很接近,并且α 
 ti与α 
 t-1i和α 
 t+1i的值相差很大,则α 
 ti中会出现闪烁。我们通过平均α 
 t-1i和α 
 t+1i来替换的值

7.结果


(1)这个是在论文自己提出的PPM-100数据集上的测试结果


绿幕抠图有绿边 python_深度学习_12


在trimap-free的方法中效果表现得很好


当有trimap作为输入时,也可以获得较好的结果


(2)PPM100上的消融实验


绿幕抠图有绿边 python_人工智能_13


验证了语义估计子任务优化和细节预测优化以及通道注意力机制和SPS上的预训练的效果


(3)这是作用于真实世界视频上的效果截图


绿幕抠图有绿边 python_子目标_14


(a) Input,


(b) MODNet,


© MODNet + SOC,


(d) MODNet + SOC + OFD


蓝色方框显示了SOC的有效性

橙色方框显示了OFD的有效性