抠图是一个基本的计算机视觉问题,具有许多应用前景。当图像具有相似的前景和背景颜色或复杂的纹理时,以前的算法的性能较差。
主要原因是以前的方法
1) 只使用低级特性,
2) 缺乏高级上下文。
本文提出了一种新的基于深度学习的算法,可以解决这两个问题。我们的深度模型有两部分。
抠图是图像和视频中准确前景的问题,具有重要的现实意义。它是图像编辑和电影制作的关键技术,有效的自然抠图方法可以大大改善现有的专业工作流程。它需要在无约束的场景中处理真实世界图像的方法。不幸的是,目前的抠图方法并不能很好地推广到典型的日常场景。这部分是由于问题的困难:如上所述,抠图问题的约束不足,每像素有7个未知值,但只有3个已知值:
I i = α i F i + ( 1 − α i ) B i α i ∈ [ 0 , 1 ] I_{i}=\alpha_{i} F_{i}+\left(1-\alpha_{i}\right) B_{i} \quad \alpha_{i} \in[0,1] Ii=αiFi+(1−αi)Biαi∈[0,1]
其中,像素i,I_i处的RGB颜色已知,前景颜色Fi、背景色Bi和抠图估计αi未知。然而,目前的方法也受到了进一步的限制。
第一个限制是由于目前设计的方法被设计来求解matting方程(Eq。 1).这个方程将抠图问题表述为两种颜色的线性组合,因此目前的大多数算法在很大程度上作为一个颜色问题来处理它。标准方法包括采样前景和背景颜色[3,9],根据匹配方程[14,31,22]传播alpha值,或两个[32,13,28,16]的混合。
这种方法在很大程度上依赖于颜色作为区别特征(通常以及像素的空间位置),这使得它们对前景和背景颜色分布重叠的情况非常敏感,不幸的是,这些方法是自然图像的常见情况,通常导致低频“smearing(涂抹、污点)”或高频“chunky(厚实的)”伪影,这取决于方法(见图1)。甚至最近提出的深度学习方法也高度依赖于颜色相关的传播方法
第二个限制是由于关注一个非常小的数据集。为抠图生成真实图像非常难,而alphamatting.com数据集[25]通过提供groundtruth data 真实数据集对抠图研究做出了重要的贡献。不幸的是,它只包含27张训练图像和8张测试图像,其中大多数是显示器上图像前面的对象。由于它的大小和数据集的限制(例如室内实验室场景,室内照明,没有人或动物),它的本质上是有偏见的,很多方法出于发表论文的目的,努力来适合这些数据。就像所有的数据集一样,特别是规模较小的数据集一样,在某些程度上,这些方法将过拟合数据集,并很难泛化到真实的场景。一个最近的视频匹配数据集,有着3个训练视频和10个测试视频是[10],其中5个是从绿色屏幕镜头提取和剩下的是用类似于25的方法实现的。
在这项工作中,我们提出了一种旨在克服这些限制的方法。给定一幅输入图像和Trimap,我们的方法使用深度学习来直接计算alpha值。我们的网络不是主要依赖于颜色信息,而是可以学习alpha matte中存在的自然结构。例如,头发和皮毛(通常需要抠图)具有很强的结构和纹理图案。其他需要匹配的情况(例如物体的边缘、光学或运动模糊区域,或半透明区域)几乎总是有一个可以预期的共同结构或alpha轮廓。虽然低级特性不会捕获这种结构,但深度网络是表示它的理想结构。我们的两阶段网络包括一个编码器-解码器阶段,然后是一个用于改进的小型的残差网络进行细化,并包括一个新的组成损失和alpha上的损失。我们是第一个证明在给定图像和Trimap后,模型具备能够端到端的进行学习的能力。
为了训练一个在无约束场景的自然图像中表现出色的模型,我们需要一个比目前可用的更大的数据集。使用[25]的方法获得一个真实数据集将是非常昂贵的,并且不能处理任何运动程度的场景(因此不能捕捉人类或动物)。相反,受其他合成数据集的启发,这些数据集已经被证明足以训练模型用于真实图像(例如[4]),我们使用组合创建了一个大规模的匹配数据集。在简单背景上仔细提取具有对象的图像,并将其组合到新的背景图像上,以创建一个包含49300张训练图像和1000张测试图像的数据集。
我们进行了广泛的评估来证明我们的方法的有效性。我们的方法不仅在alphamatting.com挑战上取得了第一名,而且在我们的合成测试集上也大大优于之前的方法。我们展示了我们泛化到到自然图像的学习模型,一项用户研究比较了 31 种图像上的许多先前方法以不同场景和不同光照条件下的人物、动物和其他物体为特征的自然图像。
这项研究对我们的结果有强烈的偏好,但也表明,在人类判断时,一些在alphamatting.com数据集上表现良好的方法实际上比其他方法差,这表明方法在alphamatting.com测试集上过拟合。最后,我们还表明,我们的trimap的放置位置比其他方法更加Rubust。事实上,即使在Trimap中没有已知的前景和/或背景,我们也可以产生很好的结果,而大多数方法不能返回任何结果(见图1下行)。
目前的抠图方法主要依赖于颜色来确定alpha matte,伴随着位置或其他低水平的特征。它们通过采样、传播或两者的组合来实现。
在基于采样的方法[3,9,32,13,28,16]中,对已知的前景和背景区域进行采样,以找到给定像素的前景和背景的候选颜色,然后使用一个度量来确定最佳的前景/背景组合。不同的采样方法有:
在采样候选样本之间决定的度量几乎总是包括一个匹配 matting方程来重建误差,可能是测量样本从给定像素[32,16]的距离或前景和背景样本[32,28]的相似性,公式包括稀疏编码[12]和kl-divergence发散方法[19,18]。纹理[27]等高阶特征很少被使用,而且效果也很有限。
在传播的方法种,方程1被重新表述,这样它就允许alpha值从已知的前景和背景区域传播到未知区域。一种流行的方法是封闭形式的匹配(Closed-form Matting) [22],它通常被用作采样[32,16,28]后的后处理。从前景和背景颜色的局部光滑假设*(local smoothness assumption)推导出一个成本函数,并通过求解稀疏线性方程组找到全局最优的alpha matte。其他传播方法包括随机游动(random walks)*[14]、求解泊松方程[31]和非局部传播方法
近年来,一些关于图像匹配的深度学习工作被提出来了。然而,给定图像和Trimap,他们并没有直接学习alpha matte。沈等人[29]使用深度学习在肖像图像中创建一个人的Trimap,并使用[22]进行抠图,通过它matting error被反向传播到网络。Cho等人。[8]将[22]和[5]的抠图结果和标准化的RGB颜色作为输入,并学习一个端到端深度网络来预测一个新的alpha matte。虽然我们的算法和两者都利用了深度学习,但我们的算法与他们的算法有很大的不同。给定一个图像的图像和它的trimap,我们的算法直接学习alpha matte,而其他的两种工作依赖于现有的算法来计算实际的matting,使他们的方法容易遭受与以前的抠图方法相同的问题。
alphamatting.com[25]上的抠图基准在加快抠图研究速度方面取得了巨大的成功。然而,由于获得真实图像需要精心控制的设置,该数据集仅由27张训练图像和8张测试图像组成。这不仅不足以训练神经网络,而且其多样性受到严重限制,仅局限于带有静态物体的小规模实验室场景。
为了训练我们的匹配网络,我们通过将真实图像中的对象合成到新的背景上来创建一个更大的数据集。我们可以在简单或简单的背景上找到图像。2a),包括[25]的27张训练图像和[26]视频的每五分之一帧。使用PS,我们仔细地手动创建了一个alpha matte(图 2b)和纯前景颜色(图 2c)。因为这些物体有简单的背景,所以我们可以为它们绘制精确的matte。然后我们将这些作为真实图像,对于每个alpha matte和前景图像,我们在MSCOCO[23]和PascalVOC[11]中随机抽取N个背景图像,并将物体复合(composite)到这些背景图像上。
我们用上述方法创建一个训练数据集和一个测试数据集。我们的训练数据集有493个独特的前景对象和49,300张图像(N=100),而我们的测试数据集有50个独特的对象和1000张图像(N=20)。每幅图像的Trimap都是随机从其真实图像alpha matte扩展的。
和先前的抠图数据集作比较,我们的新数据集有几个优势:
早期的一个担忧是,由于图像的合成性质**,此过程是否会产生偏差**,从而使网络学会对前景和背景照明、噪声水平等的差异进行抠像。然而,我们通过实验发现,与之前的方法相比,我们在自然图像上取得了远远更好的结果(见Sec。5.3)
我们利用深度学习来解决抠图问题。给定我们的新数据集,我们训练一个神经网络来充分利用这些数据。该网络由两个阶段组成。
我们的网络的第一阶段是一个深度编码器-解码器网络(见图。3),在图像分割[2]、边界预测[33]和空穴填充[24]等许多其他计算机视觉任务中都取得了成功。
对网络的输入是一个图像patch(合成的图像)和相应的trimap,它们在通道这个维度相Concat,从而产生一个4信道的输入。整个网络由一个编码器网络和一个解码器网络组成。
编码器网络的输入通过随后的卷积层和最大池化层转换为降采样特征图。解码器网络依次使用后续的反池化层,反转最大池化操作和反卷积层(图中的Deconv),对特征图进行上采样,并获得所需的输出,在我们的例子中是alpha matte。
对于解码器网络,我们使用一个比编码器网络更小的结构来减少参数的数量,加快训练过程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cc0yMuVg-1636273838912)(https://raw.githubusercontent.com/Quincy756/picutres/main/img/deep%20image%20Matting/image-20211103214716058.png)]
我们的网络利用了两个损失函数。
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是指预测层的对每个像素的i输出,范围在0到1之间。 α g i \alpha_{g}^{i} αgi是真实图像每个像素的alpha输出。 ϵ \epsilon ϵ是一个很小的值,在我们的实验中等于 1 0 − 6 10^{-6} 10−6。其微分 ∂ L α i ∂ α p i \frac{\partial \mathcal{L}_{\alpha}^{i}}{\partial \alpha_{p}^{i}} ∂αpi∂Lαi是简单明了的
∂ L α i ∂ α p i = α p i − α g i ( α p i − α g i ) 2 + ϵ 2 \frac{\partial \mathcal{L}_{\alpha}^{i}}{\partial \alpha_{p}^{i}}=\frac{\alpha_{p}^{i}-\alpha_{g}^{i}}{\sqrt{\left(\alpha_{p}^{i}-\alpha_{g}^{i}\right)^{2}+\epsilon^{2}}} ∂αpi∂Lαi=(αpi−αgi)2+ϵ2αpi−αgi
虽然我们的训练数据集有49,300张图像,但只有493个独一无二的对象。为了避免过拟合以及更有效地利用训练数据,我们使用了几种训练策略。
网络的编码器部分用VGG-16[30]的前14个卷积层初始化(第14层是全连接的层“fc6”,可以转换为卷积层)。由于网络有4通道的输入,我们用零初始化第一层卷积核的一个额外通道。所有的解码器参数都用Xavier随机变量初始化。当测试时,图像和相应的Trimap被连接起来作为输入。通过网络的前向传播来输出alpha matte预测。当GPU内存不足以容纳大图像时,可以执行CPU测试。
虽然我们网络第一部分的alpha预测已经比现有的匹配算法好得多,但由于编码器-解码器的结构,结果有时过于光滑。因此,我们扩展了我们的网络,以进一步细化第一部分的结果。这个扩展的网络通常可以预测更准确的alpha matte和更清晰的边缘。
我们的网络的第二阶段的输入是一个图像patch的和它从第一阶段的alpha预测(在0到255之间扩展)的通道相concat,从而产生一个4通道的输入。输出是相应的真实的alpha matte。该网络是一个包含4个卷积层的完全卷积网络。前3个卷积层后都是一个非线性的“ReLU”层。**没有降采样层,因为我们希望保持在第一阶段遗漏的非常微妙的结构。**此外,我们还使用了一个“skip model”结构,其中,输入数据的第4个通道首先在0到1之间缩放,然后被添加到网络的输出中。详细的配置如图3所示。 我们的细化阶段的效果如图所示。 4.请注意,它不会对alpha matte进行大规模的更改,而只是细化和锐化alpha值。
注: 图4。我们的匹配细化网络的效果。(a)输入的图像。(b)我们的匹配编码器-解码器阶段的结果。©我们的匹配细化阶段的结果。
在训练过程中,我们首先更新编码器-解码器部分,而没有细化部分。编码解码器部分收敛后,修复其参数,然后更新细化部分。只有alpha预测损失由于其结构简单而被使用。除第四阶段外,我们也使用第一阶段的所有训练策略。在细化部分也收敛后,我们一起对整个网络进行微调(fifine-tune)。我们使用Adam[20]来更新这两个部分。在训练过程中不断地设置一个小的学习率 l r = 1 0 − 5 lr=10^{-5} lr=10−5。在测试过程中,给定一个图像和一个Trimap,我们的算法首先使用抠图的编码器-解码器阶段来获得一个初始的alpha matte预测值。然后将图像和阿尔法预测值concat为细化阶段的输入,以产生最终的alpha matte预测。
在本节中,我们将在3个数据集上评估我们的方法。
与alphamatting.com基准测试上的所有其他方法相比,我们的方法取得了最好的结果。具体来说,我们的方法在SAD度量方面排名第一。我们的方法对所有3个Trimap的5个图像也有最小的SAD误差(图。 5)。此外,我们的方法在MSE和梯度*(Gradient metrics)*度量方面都排名第二。总的来说,我们的方法是在这个数据集上性能最好的方法之一。
我们成功的一个关键原因是我们的网络学习结构和语义的能力,这对于在背景场景复杂或背景和前景颜色相似时准确估计alpha 蒙版非常重要。例如,在图6中,“Troll”的例子的头发和桥的颜色非常相似,而“Doll”的例子有很强的纹理背景*(textured background)*。以前的方法的最佳结果(从第3列到第6列)在这些困难区域都有非常明显的错误。相比之下,我们的方法直接学习对象结构和图像上下文。因此,我们的方法不仅避免了以前的方法所犯的类似错误,而且预测了更多的细节。值得注意的是,虽然DCNN matting的[8]也是一个基于深度学习的方法。值得注意的是,虽然DCNN匹配[8]也是一种基于深度学习的方法,但它在小的局部补丁中学习以前的匹配方法的非线性组合。因此,该方法不能真正理解语义,因此具有与以前非基于深度学习的方法相同的局限性。
我们进一步评估了在组合-1k测试数据集上使用了7种性能最好的方法和我们的方法的每个组件。对于所有之前的方法,都使用了作者提供的代码。
我们的方法的不同变体包括:matting 编码器-解码器网络
1)只有alpha预测损失
2)有alpha预测损失和成分损失
3)由引导滤波器[17]进行后处理
4)通过匹配细化网络进行后处理
[25]提出的SAD、MSE、梯度和连通性误差下的定量结果如表1所示。
显然,我们的方法的所有变体都比其他方法有更好的结果。主要原因仍然是我们的深度模型能够理解图像的复杂上下文,而其他方法则不能。主要原因仍然是我们的深度模型能够理解图像的复杂上下文,而其他方法则不能。通过比较我们的方法的变体,我们还可以验证我们的方法的每个组件的有效性:
1)组合损失有助于我们的模型学习组合操作,从而导致更好的结果,
2)我们的matting 编码器-解码器网络的结果可以通过结合以前的边缘保持滤波器(例如引导滤波器[17])以及我们的matting 细化网络来改进
但后者在视觉上和定量上都有更明显的改进,因为它是直接用编码器-解码器网络的输出进行训练的。
我们在图7中测试了我们的方法对Trimap放置位置的敏感性。
我们对数据集的一个子集进行评估,其中包括为每个唯一对象随机选择的一个图像,总共有50张图像。为了形成Trimap,我们将每幅图像的真实alpha扩张d像素,以增加d的值。
在一个特定的参数d上的SAD误差是所有图像的平均值。所有方法在参数d∈[1,4,7,10,13,16,19]下的结果如图7所示。显然,随着d值的增加,我们的方法的错误率较低且稳定,而其他方法的错误率则迅速增加。我们良好的表现来自于我们的训练策略和对图像背景的良好理解。
一些可视化的示例如图8所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QmUPrayI-1636273838920)(https://raw.githubusercontent.com/Quincy756/picutres/main/img/deep%20image%20Matting/image-20211104163342378.png)]
证实了我们的方法在不同的匹配情况下,如头发、孔和半透明上的良好性能。此外,我们的方法还可以处理没有纯前景像素的对象,如图中的最后一个例子所示。由于以前的基于采样和基于传播的方法必须利用已知的前景和背景像素,它们不能处理这种情况,而我们的方法可以直接从数据中学习细节的外观。
抠图方法应该能很好地推广到现实世界的图像中,来验证我们的方法和其他方法在真实图像上的性能,我们对真实图像数据集进行用户研究。这些图像包括从互联网上提取的图像以及ICCV2013图像matting教程提供的图像。
因为我们的研究对象可能不熟悉aplpha蒙版,相反,我们评估了成分的结果。对于每种方法,计算出的alpha蒙版都用于将测试图像混合到黑色背景和白色背景上。对于用户测试,我们给用户展示了两种随机选择的方法的图像和两种合成结果,并询问用户哪些结果更准确和现实,特别是在细节区域(例如头发、物体边缘和半透明区域)。为了避免评估偏差,我们在Amazon Mechanical Turk公司上进行了用户研究。结果,共有392名用户参与了用户研究,一张图像上的每个方法对应由5到6个唯一的用户进行评估。
成对的比较结果显示在表2中,其中每一列表示一种方法相对于其他方法的偏好。例如,用户更喜欢83.7%的结果,而不是[13]。值得注意的是,5个用户中几乎有4个比之前的方法更喜欢我们的方法,这很好地证明了我们的方法确实产生了更好的视觉结果。
表2:用户对真实图像数据集的研究。每个成对比较中的首选方法都以粗体强调。
同样值得注意的是,在这个测试中,其他方法的排名与其他两个实验相比有所不同。
例如,在我们在这里比较的方法中, Closed-Form Matting [22]是alphamatting.com上排名最低的方法,但对用户来说,它比除我们自己的方法和[28]之外的所有其他方法都更好。
另一方面,虽然DCNN[8]是alphamatting.com上先前最先进的方法,但在真实图像上只比两种方法更可取。目前尚不清楚这是由于方法过度拟合alphamatting.com数据集,还是标准误差度量不能准确地测量人类对alpha 抠图结果的感知判断。
为了将其推广到自然图像中,抠图算法必须超越以颜色作为主要线索,并利用更多的结构和语义特征。在这项工作中,我们证明了一个神经网络能够捕获这样的高阶特征,并应用它们来计算改进的匹配结果。我们的实验表明,我们的方法不仅在标准数据集上优于以前的方法,而且它推广到真实图像也明显更好。