论文名:F, B, Alpha Matting
FBA matting 在alphamatting官网上排名第一
http://www.alphamatting.com/eval_25_highres.php
ECCV2020
https://arxiv.org/abs/2003.07711
https://github.com/MarcoForte/FBA_Matting
摘要:在很多图像编辑任务中,分割出一个物体并估计其透明度掩膜(即抠图)是一项关键任务。深度学习通过编码-解码的分割网络取得了重要的进展,但是现有网络只预测alpha-matte,要恢复透明区域的原始前景和背景颜色需要后处理。最近出现了两种使用前景估计来改善结果的方法,但计算量和内存占用都很大。
本文提出一种低成本的修改方案,用在抠图网络上,以同时预测前景和背景颜色。我们研究了不同的训练方案,并探索了一系列现有的和新颖的损失函数用于联合训练。
我们的方法在AdobeComposition数据集上的alpha质量和合成颜色质量上取得最佳水平,也是在alphamatting.com评估基准上的最优方法。
关键词:抠图,合成,深度学习
1. 引言
抠图是指提取图像中物体的透明度掩膜(alpha matte)。合成公式如下:
其中,是我们观察到的在位置
处的颜色值,
和
分别是前景层和背景层在位置
处的颜色值,
是两者的混合系数,
如果取值为1表示在这个位置完全显示前景颜色,取值为0表示在这个位置完全显示背景颜色值。用户会指定一个trimap,用于划分哪里肯定是前景(
)、哪里肯定是背景(
)、哪里是过渡的、不明确的区域。
估计alpha-matte显然是不适定的问题,因为我们有3个非线性方程和7个未知数,没有任何明确的空间依赖关系可以利用。当前景和背景颜色相似或背景具有高度纹理时,求解alpha-matte就越难。
最近,深度卷积网络CNN通过更好地建模自然图像先验信息和alpha-mattes先验信息取得了最先进的结果(37,25,34,13),这些抠图网络是基于语义分割网络的核心结构。这是说得通的,因为抠图可看做是二值分割的一个扩展,而在抠图中,我们的预测的值域不是二值的{0,1},而是一个范围[0,1]内的浮点数。例如,DeepImageMatting[37]使用的是FCN结构[32],将原始图像和trimap作为输入,输出是alpha-matte,而不是二值的掩膜。
由于输出为alpha-matte要比分割的mask的精细程度要求高很多,因此大多数最近的工作关注的是修改网络结构,提高编码-解码结构的分辨率,参见[37,24,33,13]。奇怪的是,这些工作中的大多数都只估计alpha,不估计前景和背景,而大多数应用是需要估计前景和背景的。将前景和背景分离开通常是用后处理解决的,例如Levin[20]。最近一些工作认识到同时估计前景、背景和alpha并联合训练的重要性,但是由此造成网络的计算量大。本文提出一种新的联合估计前景、背景和alpha的网络结构,通过检查不同的可用损失函数来研究前景和背景估计的好处。
二值分割中,损失函数很好选,交叉熵或者IoU。而alpha-matte的特点促使我们考虑更多的选择。先前工作中使用的损失包括:Huber、L1、梯度上的L1、拉普拉斯金字塔、判别损失等。因为我们还有估计前景和背景,因此我们的损失函数的选项就更多了,我们建议系统地研究这些不同损失函数的优缺点。
除了要考虑损失函数和网络结构,我们还有考虑怎么训练。因为抠图是比分割任务要更难,训练要花更长时间,而且训练技巧要使用正确。看似无关紧要的细节实际上可能会非常重要。一些团队报告了复现DeepImageMatting的困难[10,25,16]。我们发现,简单地将[37]中的批量大小设置为1,对性能有关键的影响,并且可以解释这些报告中复现失败的原因。
贡献 我们提出,与网络结构设计同样重要的是训练方案和损失函数的选择。本文的主要贡献是提出一种新结构,用于联合训练前景、背景和alpha,以及系统地探讨损失函数和训练方案中的关键选择对性能的影响。我们的研究包含17个实验,对3个领域有贡献:
-- 对比小批量和随机梯度下降,以及对比批量归一化和组归一化;
-- 研究不同的alpha-matte的损失函数(L1、梯度的、拉普拉斯金字塔、复合损失)
-- 对同时预测前景和背景的潜在好处的研究,以及与此相关的损失函数(L1损失和排除损失)
第2节介绍相关工作,第3节介绍我们的方法,第4节实验,我们的方法在Adobe Composition-1k数据集的alpha-matte和合成颜色质量上,以及在alphamatting.com的在线评估基准上都取得最佳水平。
2. 相关工作
alpha matting 抠图是图像与视频编辑中的关键任务,目前业界做法是使用绿幕和手工圆镜(manual rotoscopy),这是迄今为止唯一可靠的方法。早期尝试在没有绿幕的情况下自动完成这项任务,包括使用采样策略为每个位置找到合适的候选的一对前景颜色和背景颜色。这些采样技术通常都缺乏空间一致性,只有在2007年Levin等人的标杆性论文[20]closed-form matting中,才首次提出一个综合的空间先验模型,自此之后,这种平滑模型已被文献[12,30,18]广泛采用,只有随着深度卷积神经网络的出现,才设计出更具表现力的空间先验[37,24]。
深度抠图网络 抠图网络主要被设计为是分割网络的一种调整。2017年DeepImageMatting[37]首次提出用深度学习抠图,以调整过的FCN结构[32],将RGB图像和用户制作的trimap作为4通道输入。自此之后,研究重点转向设计编码-解码结构,以获得高分辨率输出。例如2019年,VDRN Matting[34]提出更深的编码-解码网络,IndexNet[24]提出可学习的索引池化,ContextAware Matting[13]将两个具有空洞卷积的编码器融合在一起。其它一些工作关注更好地利用用户指定的trimap,例如2020年的GCA Matting[21]通过注意力机制来利用trimap,2019年的[3]中,提出两阶段策略,先对trimap进行refine,再预测alpha。
损失函数 输出alpha-matte的精确值是抠图的关键问题。在一些区域,alpha在{0,1}中取值,这使得有些类似于在分割任务中找到二值的标签。在另一些区域,alpha是[0,1]中的浮点数,这和自然图像的特点相似。这样我们就有了一系列的损失函数作为选项。DIM[37]提出使用简单地对alpha的Huber损失。之后的工作[3,13,21]中,L1损失是首选。alpha的值可能是没有alpha的梯度那么重要。事实上,对头发这样结构的错误要比总体透明度估计的错误要更明显。梯度保真程度实际上是抠图基准上的常用评估指标之一。关于梯度的损失包含L1梯度损失,见文献[34],以及拉普拉斯金字塔损失,见Context Aware Matting[13]。除了这些损失函数,[25](2018)还有提出判别性损失用在他们的生成式对抗网络结构中。
抠图的问题不仅仅局限在alpha上,因为alpha、前景、背景是相互关联的。DIM[37]提出把对alpha的Huber损失和合成损失组合起来,合成损失定义为使用在位置
处的前景真值
和背景真值
来重新合成出现的误差
,这个损失函数被后续的工作[25,34,33]所沿用。
前景和背景的预测 一些传统算法就已经在预测alpha的同时预测前景和背景[26,11,1],而用深度学习抠图中,直到最近[13,34]才开始联合预测前景和背景。在[13]中,前景和alpha是以一个共享的解码器以序列的方式解码出。在[34]中,背景、前景和alpha也是以序列建模的方式解码出的,但是是用的3个分别独立的编码-解码网络。这样做的主要问题是,序列估计成功与否取决于每个预测的成功与否。而且,[34]中堆叠完整的编码-解码器会导致非常大非常深的网络。
这些工作在预测前景和背景时用的是L1损失函数。在[13]中还对预乘前景使用了VGG16特征损失。
[34]还预测了背景,这样就可以在预测
和
时使用新的合成损失函数,其是基于alpha的真值:
。
还有其它的可能有用的损失函数。其中我们想研究的是互斥损失(exclusion loss):,这个是在去反光的工作[39]中以类似地形式被提出,目的是使前景和背景能干净地分离,且避免原始图像中的结构泄露到前景和背景中。
3 我们的方法
3.1 网络结构
和大多数先前工作相似,我们用了一个像Unet[28]模式的编码-解码结构。主要区别在于,我们的网络从单个的编码-解码结构中同时也直接地预测前景和背景。对alpha、前景、背景的联合估计的动机之一是,在合成图像的实际应用场景中需要做前景估计,另一个动机是多任务学习的成功[29]。我们选择使用最简单的方案,也就是直接将输出的通道数从1改为7,其中1个给alpha,3个给前景,3个给背景。和先前工作使用序列预测不同[13,39],我们的方法只会带来很少的额外参数,而且也不用很精细地去设计链式结构。
编码器 用的是ResNet-50,使用ImageNet分类预训练权重[7,27]来初始化。对编码器做了两点修改:
首先,将输入的通道数从3改为9,是为了放进trimap。我们使用明确前景区域和明确背景区域的掩膜在3中不同尺度下的高斯模糊对trimap进行编码,这与[19]中的交互式分割类似。这种trimap编码方式不同于现有的深度学习抠图方法,现行方法中的trimap是单通道的,明确前景为1,明确背景为0,未知的过渡区域为0.5。
其次,我们去掉ResNet-50的layer3和layer4的滑动步幅,并分别使用2和4的扩张率,这与AlphaGAN中提出的方法类似。这样,在不降低张量分辨率的情况下,可以在最高尺度上处理信息。
解码器 然后将编码器特征传递给金字塔池化层[40]。池化过的特征输入给一个包含7个卷积层的解码器,卷积层和3个双线性上采样层和跳连交叠在一起。我们在补充材料中提供完整的网络细节。
输出层 包含7个通道表示alpha、前景、背景。第4节实验了显示,使用DIM[37]中的hardtanh激活函数将alpha的取值限定在0和1之间,要比先前工作[33,21,34,25,13,3]中使用sigmoid要好。前景和背景的通道还是经过sigmoid激活函数,使得取值在0和1之间。
3.2 批量归一化和组归一化
训练Matting网络可能需要很长时间,而小的实现细节有时很重要。我们发现其中一个非常重要的细节是批量大小(mini-batch size),先前的抠图网络都使用了相对较小的mini-batch size,约为6-16[13,21]。但是我们在观察了DIM的开源复现后,我们发现将mini-batch size 设为1可以相比原论文精度有大大地提升。
然而,将min-batch size设为1
但通过观察深部图像抠图方法的开源重新实现[14],我们发现,在原始的深部图像抠图[37]论文中,一个小批量大小可以大大提高网络精度。然而,一个最小批量大小与我们的ResNet-50编码器不兼容,因为ResNet-50使用批量标准化,即假设i.i.d批量大于1。因此,我们建议使用组标准化(每组32个通道)和重量标准化
合并后的特征被输入一个解码器,解码器包含七个卷积层,三个双线性上采样层和跳转连接交织在一起。我们在补充材料中提供了完整的网络细节。
输出层包含ff;F;B的7个通道。
3.4
我们的联合预测方法的一个限制是,我们对^ ff,^ F和^ Bare的预测是解耦的,即使它们基于相同的解码器,也会导致
合成公式1给出的关系没有明确实施。本文提出了一种基于p(ff;F;Bj^ff;^F;^B)最大似然估计的融合机制。通过假设预测误差的独立性并忽略像素之间的任何空间相关性,我们可以建立一个简化的似然模型,从单个和重建损失中得出:
假设预测和重建误差的高斯分布:
本质上,我们通过忽略空间损耗(梯度和拉普拉斯金字塔)简化了模型,并用L2损耗代替了L1损耗。由于重建项是非线性的,这种简化模型仍然产生非线性优化,但是我们可以采用迭代块求解方法。从^F(0)=^F;^B(0)=^B;^ff(0)=^ff开始,更新公式如下:
除了f;B;Care的协方差矩阵不可用外,这些方程与贝叶斯Matting估计方案有关[6]。在实践中,我们发现通过这些块更新进行一次迭代就足够了。这些方程为我们提供了一个简单的机制,通过考虑公式1的铺垫模型来融合这3个预测。我们在第4节中的实验,在 2c; 2f; 2b=1; 2ff=10的情况下,显示这些更新的估计可靠地产生了更好的结果。
3.5培训数据集和修改
Xu等人[37]构建的大型深度图像抠图数据集近年来一直用于训练最先进的抠图算法。数据集是431个前景和alpha通道对的集合。通过使用alpha通道和合成公式1创建训练样本,将前景合成到从MSCOCO数据集随机选择的背景上[22]。
问题是,提供的前景图像仅对非零alpha值有效,训练期间的数据增强可能会将无效颜色“溢出”到这些区域。例如,像调整大小和旋转这样的操作不分青红皂白地从有效区域和无效区域重新采样像素(参见图2)。为了解决这个问题,我们使用Levin的F;B估计技术重新估计了所有图像的前景颜色[20]。这允许我们将前景估计扩展到整个图片,而不仅仅是ff>0的区域。这样,增强技术成为可能,使这种改进的深度图像抠图训练集适合前景预测。
3.6培训细节
与文献中发现的相似,我们的训练补丁的维数为640 640;480 480;320 320是从trimap的未知区域随机裁剪的。训练trimaps是由地面真实ff亚光通过3到25个像素的随机腐蚀和膨胀生成的。对于数据增强,我们采用随机ip、镜像、gamma和亮度增强。
为了进一步增加数据集的多样性,我们以50%的概率随机合成了一个新的前场对象,如[34]所示。训练数据在每个历元之后被洗牌。另外,在前一幅图像的第二幅图像上,每一个小批量采样一次,以增加对尺度的不变性。
我们在RAdam Optimizer[23]中使用阶跃衰减学习率策略,动量和权重衰减分别设置为0.9和0.0001。初始学习速率设置为10 5,然后在40个周期内降至10 6,再微调5个周期。我们分别对卷积权值和GN参数采用0:005;105的权值衰减。使用一个1080tigpu,培训过程需要16天。在推理过程中,全分辨率的输入图像和trimaps被连接成4通道输入,并被送入网络。
3.7试验时间延长(TTA)
卷积神经网络对输入的翻转、旋转、缩放和裁剪不是不变的。以这些非破坏性的方式随机增加训练样本具有扩大训练集和提高最终网络精度的效果[34,21]。然而,用增广的例子训练并不能保证增广的完全不变性。来自增广输入的预测是正态分布的,并且变换的平均值趋向于真值[35]。Tang等人[33]使用了输入图像和trimap的测试时间八向旋转,但其对alpha蒙版精度的影响尚未公布。我们使用了一个综合的测试时间扩展,结合了旋转、翻转和缩放,结果如表4和表3所示。
4实验结果
在本节中,我们将报告我们的模型的定量和定性结果。我们对我们的模型进行了烧蚀研究,并与现有的消光方法进行了比较。我们使用Composition-1k[37]数据集进行测试,因为它包含1000个测试图像,并且其他方法已经在上面报告了它们的结果以供比较。该数据集提供了50个地面真实前景图像和alpha蒙版,它们由20个不同的背景组成,每个背景来自Pascal[9]。
我们评估了阿尔法蒙版和组合^ff^F前景合成的结果;背景预测的补充结果可在补充材料中找到。
alpha matte结果使用四个标准度量[8]、绝对差和(SAD)、均方误差(MSE)、梯度误差(GRAD)和连通性误差(CONN)进行计算。梯度和连通性指标在当时被证明更符合人类对哑光质量的感知。为了测量前景合成结果,我们测量了预测的^ ff ^ F和地面真值的MSE和SAD。
大部分消融研究是在20个时期的训练中完成的。在最完整的模型上,培训被推到45个阶段,包括5个阶段的微调,学习率为106。
由于实验规模很大,每次训练需要两到四周的时间来完成,所以实验只在一次训练中进行。因此,精确的置信区间尚不清楚,但我们先前的实验似乎表明,下面所作的大多数观察结果是一致的。4.1评估ff损失函数
正如前面所讨论的,四个现有的alpha-matting损失是我们网络培训的合理选择。它们是L1损失,成分损失,拉普拉斯损失和梯度损失。在这里,我们用这些损失的组合来评估我们训练的网络,模型(1-4)如表2所示。我们看到,除了梯度误差,合成损失减少了所有度量的误差。Houet等人[13]提出的laplacian损失大大减少了所有度量的误差。我们注意到这种网络、训练和损耗配置足以达到最先进的效果,见表4。Tang等人[34]提出的梯度损失似乎增加了所有度量的误差。
这一点在[21]中也有报道。由于这一发现是在我们的研究后期发现的,所以我们随后的所有模型中都包含了梯度损失。我们把这一损失的进一步检查留给今后的工作。
我们还对α通道激活函数的选择进行了实验(表2)。在最初的深度图像铺垫工作[37]中使用了剪切激活,然而所有后续工作都使用了乙状结肠激活,没有提及这一变化。然而,我们发现乙状结肠激活与剪接激活(模型(6)对(7))相比执行不足,另见表3模型(9)对(10)。这也违背了将sigmoid用于其他图像到图像转换任务的趋势[15,38],但是在这些情况下,rgb值通常不是0或1,而alpha蒙版通常是0或1。对于无限值输入,sigmoid激活只能达到0和1。因此,我们对后续模型使用剪辑激活。
4.2批量大小和批次标准与组标准
正如在建议的方法一节中所讨论的,我们发现1的最小批量大小大大提高了ff matting的网络精度。我们在表2中报告了这方面的实验结果。我们使用一个批大小为6和批范数(模型(4))训练的模型作为基线。然而,根据定义,BatchNorm与最小批量大小为1的训练不兼容,因此我们对单图像最小批量(模型6)使用加权标准化(WS)[36,27]的组标准化。
我们还训练了一个带有GroupNorm和WS的中间模型(5),以分离批量大小的影响。正如预期的那样,我们看到从模型(4,5)到模型(6)的误差显著减少,表明批量大小为1最适合ff铺垫。当比较批量大小为6的BN和GN时,很明显,分组标准化对我们的假设没有隐藏的优势
4.3评估联合估算F;B;ff的影响
在表3中,我们检验了联合估计F;B;ff相对于单独估计ff的潜在益处。我们在Composition-1k测试集上测量了ff-F合成的MSE和SAD,以及alpha单独的SAD。我们还记录了我们的方法的烧蚀研究,以显示每个组件的好处。我们看到,使用我们的前景和背景损失L FB保持α亚光ac准确度,并允许前景预测,模型(6)对(9)。我们的前景,背景排除损失提供了一个小的好处,所有指标,(8)对(9)。
我们观察到一个有趣的趋势,前景预测的结果从上下文感知垫[13],见图4。在边界附近或高度透明的区域,预测前景非常差,在ff=0的附近区域,预测前景根本不正确。当合成到新的背景上时,这会导致颜色流失的问题。我们认为这是因为他们只计算ff>0的区域的前景损失,这导致网络没有在透明度非常高的区域优先考虑前景预测。我们使用新的前景数据集来处理这个问题,该数据集对所有像素都具有有效的前景地面真值,因此我们可以计算整个图像的前景预测损失。我们的数据集还允许我们对前景损失使用拉普拉斯损失函数。在表3中,我们看到在整个图像中使用L FB进行训练,我们改进了合成ff结果(10)与(11)。
我们在测试时使用的F;B;ff融合方法提高了合成质量和α亚光质量的结果(11)与我们的FB ff公司。在我们的实验中一直观察到这种微小的改进。
4.4与其他工程的比较
我们比较了我们的模型,我们的ff和我们的FB ff与现有的最先进的方法阿尔法床垫。
Composition-1k数据集
在Composition-1k数据集(表4)上,我们的每个模型在所有四个指标上都显著优于以前的方法。我们看到我们的模型我们的ff和我们的FB ff都达到了最先进的效果。该模型融合了前景和背景的损失,提高了连通性和梯度测度,但在SAD测度上有所下降。我们的最佳模型FB-ff-TTA在测试时间增加的情况下,每个度量的平均误差降低了34%,而梯度误差的相对改善最大。我们在图3中给出了α亚光质量的定性比较。我们的方法可以将非常精细的结构从背景中分离出来,即使前景和背景颜色非常相似。在图4中,我们显示了我们方法的前景、背景和alpha输出,并将我们预测的合成与上下文感知的matting进行了比较[13]。我们看到,对于CA-Matting,前景预测可能在alpha接近于零的区域非常差,并且颜色溢出仍然在^ff^F合成中可见。另一方面,我们的方法与实际情况更为吻合。在第一幅图像中,我们的背景预测成功地从图像中去除了玻璃,这表明我们的方法对于从图像中去除半透明对象(例如水印)有额外的用途。
这个alphamatting.com数据集
这个alphamatting.combenchmark是一种已建立的自然图像抠图方法的在线评价方法。它包括27幅训练图像和8幅测试图像,包括3种不同的trimaps,即小、大和用户。虽然只有8个测试图像,但它是比较alpha matting方法的一个重要工具,因为没有发布地面真值mattes,基准包含最流行的matting方法的条目。在表5中,我们看到我们的方法FB-ff-TTA在前四种方法中平均排名最低。特别是我们看到,我们的方法是一个明确的领导者,在连通性指标的深度学习为基础的铺垫方法通常表现不佳。为了比较,在这些连通性方法中,深度图像抠图[37]排名最好,但总体排名第9位,紧随闭式抠图[20]排名第7位之后,我们的方法排名第一。我们还提交了我们的ff TTA模型来评估前景和背景丢失和融合的效果,我们发现我们的fbfftta在除梯度外的所有度量中都表现最好。完整的表格连同alpha matte预测可在www.alphamatting.com。
5结论
本文提出了一种从单个自然图像和trimap图中同时估计前景、背景和alpha图的深度学习方法。我们对alpha matting训练机制的主要贡献是使用一个批量大小。这一点,再加上45个时期的长期训练和TTA,比损失函数的选择有更大的影响。
最后,我们提出的同时预测ff,F,B的解决方案,可以在不增加计算或内存开销的情况下实现所有预测的最新性能。我们重新设计的前景数据集,新的排除损失和融合机制,提高了最终的合成质量,可以很容易地纳入未来的工作。