RobustVideoMatting

Robust High-Resolution Video Matting with Temporal Guidance

作者:Shanchuan Lin, Linjie Yang, Imran Saleemi, Soumyadip Sengupta

单位:University of Washington , ByteDance Inc.

日期:25 Aug 2021

原文:https://arxiv.org/abs/2108.11515

开源:https://peterl1n.github.io/RobustVideoMatting/#/

我们介绍了一种鲁棒、实时、高分辨率的人类视频抠图方法,实现了最新的性能。我们的方法比以前的方法轻得多,可以在Nvidia GTX 1080Ti GPU上以76 FPS的速度处理4K和104 FPS的高清。与大多数将视频抠图逐帧作为独立图像执行的现有方法不同,我们的方法使用循环架构来利用视频中的时间信息,并在时间一致性和抠图质量方面实现显著改进。此外,我们还提出了一种新的训练策略,该策略可以使我们的网络同时满足抠图和分割目标。这显著提高了我们模型的鲁棒性。我们的方法不需要任何辅助输入,例如 trimap或预先拍照的背景图像,因此它可以广泛应用于现有的人类抠图应用。

1. 引言

抠图是从输入帧预测阿尔法抠图和前景颜色的过程。形式上,帧I可以通过α系数被视为前景F和背景B的线性组合:

I=αF+(1-α)B    (1)

通过提取αF,我们可以将前景对象合成为新背景,实现背景替换效果。

背景替换具有许多实际应用。许多正在兴起的用例,例如视频会议和娱乐视频创作,需要在没有绿色屏幕道具的情况下实时替换人体对象的背景。

神经模型用于这个具有挑战性的问题,但是当前的解决方案并不总是鲁棒的,并且经常产生伪影。我们的研究重点是提高此类应用的抠图质量和鲁棒性。

大多数现有的方法[18、22、34]尽管是为视频应用而设计的,但将单个帧处理为独立图像。这些方法忽略了视频中最广泛可用的特征:时间信息。由于许多原因,时间信息可以改善视频抠图性能。首先,它允许预测更一致的结果,因为模型可以看到多个帧和自己的预测。这显著减少了闪烁并提高了感知质量。其次,时间信息可以提高抠图的鲁棒性。在单个帧可能不明确的情况下,例如前景颜色变得类似于背景中经过的对象,模型可以通过参考先前的帧更好地猜测边界。第三,时间信息允许模型随着时间学习更多关于背景的信息。当相机移动时,由于透视变化,被摄体后面的背景被显示出来。即使相机是固定的,由于主体的运动,被遮挡的背景仍然经常显示出来。更好地理解背景可以简化抠图任务。因此,我们提出了一种利用时间信息的循环架构。我们的方法显著提高了抠图质量和时间一致性。它可以应用于所有视频,而无需任何辅助输入,如手动注释的trimap或预先拍照的背景图像。

此外,我们还提出了一种新的训练策略,以同时在matting和语义分割目标上实施我们的模型。大多数现有方法[18、22、34]都是在合成抠图数据集上训练的。这些样本通常看起来是假的,并防止网络推广到真实图像。先前的工作[18,22]尝试使用在分割任务上训练的权重初始化模型,但在抠图训练期间,模型仍然过度拟合合成分布。其他人尝试在未标记的真实图像上进行对抗性训练[34]或半监督学习[18],作为额外的适应步骤。我们认为,人类抠图任务与人类分割任务密切相关。同时,具有分割目标的训练可以有效地正则我们的模型,而无需额外的适配步骤。

我们的方法比以前最先进的方法更轻、更快。我们的模型仅使用58%的参数,可以在Nvidia GTX 1080Ti GPU上以4K 76 FPS和HD 104 FPS的速度处理实时高分辨率视频。

2    相关工作

基于trimap的抠图。    经典(非学习)算法[1,5,7,10,20,21,38]需要手动trimap注释来解决trimap的未知区域。Wang和Cohen[43]在调查中回顾了这些方法。Xu等人[45]首次将深度网络用于基于Trimap的抠图,最近的许多研究继续了这种方法。FBA[9]是最新的之一。基于Trimap的方法通常是对象不可知的(不限于人类)。它们适用于交互式照片编辑应用,其中用户可以选择目标对象并提供手动指导。为了将其扩展到视频,Sun等人提出了DVM[39],它只需要第一帧上的trimap图,并且可以将其传播到视频的其余部分。

基于背景的抠图。    Soumyadip等人提出了背景抠图(BGM)[34],这需要额外的预捕获背景图像作为输入。该信息用作前景选择的隐式方式,并提高了抠图精度。Lin和Ryabtsev等人进一步提出了性能改进的BGMv2[22],重点关注实时高分辨率。但是,背景抠图无法处理动态背景和大型摄像机移动。

分割。    语义分割是预测每个像素的类标签,通常没有辅助输入。它的二值分割掩模可用于定位人体对象,但直接用于背景替换将导致强伪影。然而,分割任务类似于无辅助输入设置中的matting任务,分割的研究启发了我们的网络设计。DeepLabV3[3]提出了ASPP(Atrus Spatial Pyramid Pooling)模块,并在其编码器中使用扩展卷积来提高性能。该设计已被许多后续工作采用,包括MobileNet v3[15],它将ASPP简化为LR-ASPP。

无辅助输入的抠图。    还有一些无任何辅助输入的全自动抠图。像[29,46]这样的方法适用于任何前景对象,但不那么鲁棒,而像[18,35,47]这样的其他方法则专门针对人像进行训练。MODNet[18]是最新的肖像抠图方法。相反,我们的方法经过训练,可以在整个人体上很好地工作。(MODNet [18] is the latest portrait matting method. In contrast, our method is trained to work well on the full human body.)

视频抠图。    很少有神经抠图方法是为视频设计的。MODNet[18]提出了一种后处理技巧,比较相邻帧的预测,以抑制闪烁,但它不能处理快速移动的身体部位,模型本身仍然作为独立图像在帧上运行。BGM[34]探索了将几个相邻帧作为额外的输入通道,但这仅提供短期时间线索,其影响不是研究的重点。DVM[45]是视频原生的,但专注于利用时间信息传播trimap注释。相反,我们的方法侧重于使用时间信息来改善无辅助输入设置中的抠图质量。

循环架构。    循环神经网络已广泛用于序列任务。最流行的两种架构是LSTM(长期短期记忆)[13]和GRU(门控循环单元)[6],它们也被用于视觉任务,如ConvLSTM[36]和ConvGRU[2]。先前的工作已经探索了使用循环架构来执行各种视频视觉任务,并显示出与基于图像的任务相比性能有所改善[42、28、41]。我们的工作采用了循环架构来完成抠图任务。

高分辨率抠图。    PointRend[19]对分割和BGMv2[22]对基于patch的细化进行了探索。它仅对选择性patch执行卷积。另一种方法是使用引导滤波器[11],这是一种后处理滤波器,在给定高分辨率帧作为指导的情况下,联合对低分辨率预测进行上采样。深度引导滤波器(DGF)[44]被提出作为一个可学习模块,可使用网络端到端进行训练,无需手动超参数。尽管基于滤波器的上采样功能较弱,但我们选择它是因为它速度更快,并得到所有推理框架的良好支持。

3    模型架构

我们的架构包括一个提取单个帧特征的编码器、一个聚合时间信息的循环解码器和一个用于高分辨率上采样的深度引导滤波器模块。图2显示了我们的模型架构。

图2. 我们的网络包含一个特征提取编码器,一个循环解码器,深度导向滤波模块(DGF)。 为了处理高分辨率视频,输入首先下采样给编码-解码网络,然后DGF对结果做上采样。

3.1.特征提取编码器

我们的编码器模块遵循最先进的语义分割网络[3,4,15]的设计,因为准确定位人体对象的能力是matting任务的基础。我们采用MobileNetV3 Large[15]作为我们的有效主干,然后是MobileNet v3提出的用于语义分割任务的LR-ASPP模块。值得注意的是,MobileNetV3的最后一个块使用了扩展卷积,而没有下采样步长。编码器模块对单个帧进行操作,并为循环解码器提取1/2、1/4、1/8和1 /16尺度的特征。

3.2    循环解码器

出于几个原因,我们决定使用循环架构来代替注意力或简单地将多个帧作为额外的输入通道进行前馈。循环机制可以学习在连续视频流中自己保留和忘记哪些信息,而其他两种方法必须依赖于固定规则,在每个设置的时间间隔将旧信息移除并将新信息插入有限的内存池。自适应保持长期和短期时间信息的能力使循环机制更适合我们的任务。

我们的解码器采用多尺度的ConvGRU来聚集时间信息。我们选择ConvGRU,因为它比ConvLSTM具有更少的门,因此参数效率更高。形式上,ConvGRU定义为:

z_t = \sigma (w_{zx} * x_t + w_{zh} * h_{t-1} + b_z)

r_t = \sigma (w_{rx} * x_t + w_{rh} * h_{t-1} + b_r)

o_t = tanh(w_{ox} * x_t + w_{oh} * (r_t \odot h_{t-1}) + b_o)

h_t = z_t \odot h_{t-1} + (1 - z_t) \odot o_t    (2)

其中操作*\odot分别表示卷积和元素乘积;tanhσ分别表示双曲正切函数和sigmoid函数。wb是卷积核和偏置项。隐藏状态h_t既作为输出,又作为循环状态给下一个时间步(作为h_{t-1})(The hidden state $h_t$ is used as both the output and the recurrent state to the next time step as $h_{t-1}$.)。初始循环状态h_0是全零张量。

如图2所示,我们的解码器由瓶颈块、上采样块和输出块组成。

瓶颈块    在LR-ASPP模块之后处理1/16特征尺度。ConvGRU层通过拆分和拼接仅在一半通道上运行。这显著减少了参数和计算,因为ConvGRU在计算上是可扩展的(expansive)。(编者注:作者是不是笔误,将expensive写成expansive?)

上采样块    在1/8、1/4和1/2尺度上重复。首先,它将来自前一块的双线性上采样输出、来自编码器的相应尺度的特征映射,以及通过重复的2×2平均池化下采样的输入图像拼接起来。然后,应用卷积、批量归一化[16]和ReLU[26]激活,以执行特征合并和通道缩减。最后,通过拆分和拼接将ConvGRU应用于一半的通道。

输出块    不使用ConvGRU,因为我们发现它是可扩展的(expansive),在这个规模上没有影响。该块仅使用规则卷积来细化结果。它首先将输入图像与前一块的双线性上采样输出拼接起来。然后,它使用2个重复卷积、批量归一化和ReLU堆栈生成最终隐藏特征。最后,将特征投影到输出,包括1通道阿尔法预测、3通道前景预测和1通道分割预测。分割输出用于分割训练目标,如第4节所述。

我们发现通过拆分和拼接将ConvGRU应用于一半通道是有效的。这种设计有助于ConvGRU专注于聚集时间信息,而另一个分支传递特定于当前帧的空间特征。所有卷积使用3×3核,除了最后一个投影使用1×1核。

我们修改我们的网络,使得它可以一次给定T帧作为输入,并且每个层在传递到下一层之前处理所有T帧。在训练期间,这允许批量标准化计算批次和时间的统计数据,以确保标准化是一致的。在推断过程中,如果允许缓冲帧,则T=1可用于处理实时视频,T>1可用于利用非循环层的更多GPU并行性作为批处理的形式。我们的循环解码器是单向的,因此可以用于实时流和后处理。

3.3    深度导向过滤器模块

我们采用[44]中提出的深度引导滤波器(DGF)进行高分辨率预测。在处理高分辨率视频(如4K和HD)时,在通过编码器-解码器网络之前,我们将输入帧按因子s进行下采样。然后,将低分辨率阿尔法、前景、最终隐藏特征以及高分辨率输入帧提供给DGF模块,以产生高分辨率阿尔法和前景。整个网络按照第4节所述进行端到端训练。请注意,DGF模块是可选的,如果要处理的视频分辨率较低,编码器网络可以独立运行。

我们的整个网络不使用任何特殊操作,可以部署到大多数现有的推理框架。更多架构细节见补充资料。

4    训练

出于以下几个原因,我们建议同时使用matting和语义分割目标来训练我们的网络:

首先,人类抠图任务与人类分割任务密切相关。与基于trimap和背景的抠图方法不同,我们的网络必须学习从语义上理解场景,并在定位人体对象时保持鲁棒。

第二,大多数现有的抠图数据集仅提供必须合成为背景图像的真值阿尔法和前景。由于前景和背景具有不同的照明,合成有时看起来是假的。另一方面,语义分割数据集以真实图像为特征,其中人类主体包含在所有类型的复杂场景中。使用语义分割数据集进行训练可以防止我们的模型过度拟合合成分布。

第三,有更多的训练数据可用于语义分割任务。我们收集了各种公开可用的数据集,包括基于视频和基于图像的,以训练鲁棒模型。

4.1    Matting数据集

我们的模型是在VideoMatte240K(VM)[22]、Districtions-646(D646)[30]和Adobe Image Matting(AIM)[45]数据集上训练的。VM提供484个4K/HD视频片段。

我们将数据集划分为475/4/5个片段,用于训练/验证/测试。D646和AIM是图像抠图数据集。我们只使用人类的图像,并将它们组合成420/15训练/验证,用于训练。为了评估,D646和AIM分别提供11和10个测试图像。

对于背景,[39]中的数据集提供了适用于抠图合成的高清背景视频。视频包括各种各样的动作,如汽车经过、树叶晃动和相机动作。我们选择3118个不包含人类的剪辑,并从每个剪辑中提取前100帧。我们还按照[22]的方法抓取8000个图像背景。图像中有更多的室内场景,如办公室和客厅。

我们对前景和背景应用运动和时间增强,以增加数据的多样性。运动增强包括仿射平移、缩放、旋转、剪切、亮度、饱和度、对比度、色调、噪声和模糊,它们随时间不断变化。运动应用不同的缓和函数(easing functions),使得变化不总是线性的。增强还将人工运动添加到图像数据集。此外,我们对视频应用时间增强,包括剪辑反转、速度变化、随机暂停和帧跳过。其他离散增强,即水平翻转、灰度和锐化,一致应用于所有帧。

4.2    分割数据集

我们使用视频分割数据集YouTubeVIS,选择了2985个包含人类的片段。我们还使用图像分割数据集COCO[23]和SPD[40](supervise.ly. Supervisely person dataset. supervise.ly, 2018)。COCO提供了64111张包含人类的图像,而SPD提供了额外的5711份样本。我们应用了类似的增强,但没有运动,因为YouTubeVIS已经包含了大量的摄像机运动,并且图像分割数据集不需要运动增强。

4.3    程序

我们的抠图训练分为四个阶段。它们旨在让我们的网络逐步看到更长的序列和更高的分辨率,以节省训练时间。我们使用Adam优化器进行训练。所有阶段都使用批量大小B=4划分,并在4个Nvidia V100 32G GPU上进行。(All stages use batch size B = 4 split across 4 Nvidia V100 32G GPUs.)(编者注:总的batch应该是4×4=16)

第1阶段:    我们首先在VM上以低分辨率进行训练,不使用DGF模块,训练15个epochs。我们设置短序列长度T=15帧,以便网络可以更快地更新。MobileNet v3主干网使用预训练的ImageNet[32]权重初始化,并使用1e−4学习率,而网络其余部分使用2e−4。我们分别地采样输入分辨率的高度和宽度h、w,在256和512像素之间。这使得我们的网络对不同的分辨率和纵横比具有鲁棒性。

第2阶段:    我们将T增加到50帧,将学习速率减少一半,并保留第1阶段的其他设置,以训练我们的模型再经历2个epoch。这使我们的网络能够看到更长的序列,并学习长期依赖关系。T=50是我们可以在GPU上使用的最长时间。

第3阶段:    我们连接DGF模块,并在VM上训练1个epoch的高分辨率样本。由于高分辨率会消耗更多GPU内存,因此序列长度必须设置为非常短。为了避免我们的循环网络过度拟合非常短的序列,我们在低分辨率长序列和高分辨率短序列上训练我们的网络。具体而言,低分辨率pass不采用DGF,并且具有T=40和h,w ∼ (256, 512)。高分辨率pass包含低分辨率通道,使用DGF,并采用下采样因子s=0.25、\hat{T}=6和\hat{h},\hat{w}∼ (1024, 2048)。我们将DGF的学习率设置为2e−4,网络的其余部分为1e−5。

第4阶段:    我们在D646的组合数据集上进行训练,目标是5个epoch。我们将解码器学习速率提高到5e−5,让我们的网络适应并保留第3阶段的其他设置。

分割:    我们的分割训练是在每个matting训练迭代之间交织的。在每次奇数迭代后,在图像分割数据上训练网络;在每次偶数迭代后,在视频分割数据进行训练。分割训练应用于所有阶段。对于视频分割数据,我们在每个抠图阶段之后使用相同的B、T、h和w设置。对于图像分割数据,我们将其视为仅1帧的视频序列,因此T’=1。这给了我们应用更大批量大小B’=B \times T的空间。由于图像作为第一帧被前馈,因此即使在不存在循环信息的情况下,也会强制分割具有鲁棒性。(Since the images are feedforwarded as the first frame, it forces the segmentation to be robust even in the absence of recurrent information.)

4.4    损失

我们将损失应用于所有t \in [1, T]帧。如[9,14]所报告的,要从alpha真值\alpha^*_t学习α,我们使用L1损失\mathcal{L}^{\alpha}_{l1}和金字塔拉普拉斯损失\mathcal{L}^{\alpha}_{lap}来产生最佳结果。我们还应用了[39]中使用的时间一致损失\mathcal{L}^{\alpha}_{tc},以减少闪烁:

 \mathcal{L}^{\alpha}_{l1} = || \alpha_t - \alpha^*_t ||_1    (3)

 \mathcal{L}^{\alpha}_{lap} = \sum_{s=1}^{5} \frac{2^{s-1}}{5} ||L^{s}_{pyr}(\alpha_t) - L^{s}_{pyr}(\alpha^*_t) ||_1    (4)

 \mathcal{L}^{\alpha}_{tc} = || \frac{\text{d}\alpha_t}{\text{d}t} - \frac{\text{d}\alpha^*_t}{\text{d}t} ||_2    (5)

遵循[22]中的方法,要从前景真值F^*_t学习F_t,我们计算\alpha^*_t > 0的像素上的L1损失\mathcal{L}^{F}_{l1}和时间一致损失\mathcal{L}^{F}_{tc}

  \mathcal{L}^{F}_{l1} = || (a^*_t > 0) * (F_t - F^*_t) ||_1    (6)

 \mathcal{L}^{F}_{tc} = || (a^*_t > 0) * (\frac{\text{d}F_t}{\text{d}t} - \frac{\text{d}F^*_t}{\text{d}t}) ||_2    (7)

总抠图损失\mathcal{L}^{M}为:

  \mathcal{L}^{M} = \mathcal{L}^{\alpha}_{l1} + \mathcal{L}^{\alpha}_{lap} + 5 \mathcal{L}^{\alpha}_{tc} + \mathcal{L}^{F}_{l1} + 5 \mathcal{L}^{F}_{tc}    (8)

对于语义分割,我们的网络仅在人类类别上进行训练。为了从真值二值标签S^*_t学习分割概率S_t,我们计算二元交叉熵损失:

  \mathcal{L}^{S} = S^*_t (-\log(S_t)) + (1-S^*_t)(-\log(1-S_t))    (9)

5    实验评估

5.1    合成数据集的评估

我们通过将来自VM、D646和AIM数据集的每个测试样本合成到5个视频和5个图像背景上来构建我们的基准。每个测试片段有100帧。图像样本应用运动增强。

我们将我们的方法与最先进的基于trimap的方法(FBA[9])、基于背景的方法(MobileNetV2[33]主干的BGMv2[22])以及无辅助方法(MODNet[18])进行了比较。为了公平地比较它们用于全自动抠图,FBA使用由语义分割方法ResNet101[12]主干的DeepLabV3[3]扩展和侵蚀生成的合成trimap;BGMv2只看到第一帧的真实背景;MODNet应用其相邻帧平滑技巧。我们试图根据我们的数据重新训练MODNet,但由于训练过程中的问题,结果可能会更差,因此MODNet使用其官方权重;BGMv2已经在所有三个数据集上进行了训练;FBA在编写本报告时尚未发布训练代码。

我们使用MAD(平均绝对差)、MSE(均方误差)、Grad(空间梯度)[31]和Conn(连通性)[31]评估α相对于真值\alpha^* ,并采用dtSSD[8]进行时间一致性。对于F,我们只测量\alpha^*>0处的像素, 通过MSE。MAD和MSE按1e^3缩放,dtSSD按1e^2缩放,以获得更好的可读性。F不在VM上测量,因为它包含有噪声的真值。MODNet不预测F,因此我们将输入帧作为其前景预测进行评估。这模拟在输入上直接应用alpha蒙版。

表1比较了使用低分辨率输入的方法。在这种情况下,我们的方法不使用DGF。我们预测所有数据集的阿尔法更加准确和一致。特别是,FBA受到不准确的合成trimap的限制。BGMv2在动态背景下表现不佳。MODNet产生的结果不如我们的精确和一致。对于前景预测,我们的预测落后于BGMv2,但优于FBA和MODNet。

表2进一步在高分辨率上比较了我们的方法与MODNet。由于DGF必须与网络端到端地训练,我们修改了MODNet,使用非学习快速引导滤波器(FGF)对预测进行上采样。对于编码器网络,两种方法都使用下采样尺度s=0.25。我们删除了Conn度量,因为它过于expansive,难以高分辨率进行计算。我们的方法在所有指标上都优于MODNet。

5.2    对真实视频的评估

图3显示了真实视频的定性比较。在图3a中,我们比较了所有方法的alpha预测,发现我们的预测更准确地预测了精细细节,如发丝。在图3b中,我们在随机的YouTube视频上进行了实验。我们从比较中删除BGMv2,因为这些视频没有预先捕获的背景。我们发现我们的方法对语义错误更为鲁棒。在图3c和图3d中,我们进一步比较了手机和网络摄像头视频上的实时matting和MODNet。我们的方法比MODNet更好地处理快速移动的身体部位。

图3:定性比较。 与其他方法相比,我们的方法生成更多细节的alpha。 在YouTube、手机和网络摄像头视频上进行评估时,我们的视频始终比其他视频更鲁棒。更多结果见补充。 YouTube视频是从互联网上抓取的;手机视频来自公共数据集[17]; 一些网络摄像头示例已录制,而其他示例摘自[24]。

5.3    尺寸和速度比较

表3和表4显示,我们的方法明显更轻,与MODNet相比,只有58%的参数。我们在高清(1920×1080)上是最快的,但比512×288上的BGMv2和4K(3840×2160)上的MODNet+FGF慢一点。我们的检查发现,DGF和FGF的性能差异非常小。我们的方法在4K中比MODNet慢,因为我们的方法除了预测alpha外还预测前景,因此在高分辨率下处理3个额外通道的速度较慢。我们使用[37]测量GMACs(乘法-累加运算),但它只测量卷积,忽略了在DGF和FGF中使用最多的resize和许多张量运算,因此GMACs只是一个粗略的近似值。我们的方法实现了高清104 FPS和4K 76 FPS,这在许多应用中被认为是实时的。

6    消融研究

6.1    时间信息的作用

图4显示了所有VM测试片段的平均alpha-MAD度量随时间的变化。我们模型的误差在前15帧中显著下降,然后度量保持稳定。MODNet,即使使用其相邻帧平滑技巧,在度量中也有很大的波动。我们还通过传递零张量作为循环状态来实验禁用网络中的循环。质量和一致性按预期恶化。这证明时间信息提高了质量和一致性。

图5比较了视频样本上的时间一致性与MODNet。我们的方法在扶手区域产生一致的结果,而MODNet产生闪烁,这显著降低了感知质量。有关更多结果,请参阅我们的补充资料。

我们进一步研究了循环隐藏状态。在图6中,我们发现我们的网络已经自动学习了随着时间的推移重建背景,并将这些信息保留在其循环通道中,以帮助未来预测。它还使用其他循环通道来跟踪运动历史。我们的方法甚至尝试在视频包含摄像机运动时重建背景,并能够忘记镜头剪辑时的无用记忆。补充资料中有更多的例子。

6.2    分割训练目标的作用

表5显示,我们的方法与语义分割方法一样鲁棒,当对包含人类的COCO验证图像子集进行评估时,仅对人类类别进行评估。我们的方法实现了61.50mIOU,考虑到模型大小的差异,这在MobileNetV3和在COCO上训练的DeepLabV3的性能之间是合理的。我们还尝试通过将α>0.5阈值化为二值掩码来评估α输出的鲁棒性,我们的方法仍然达到60.88mIOU,表明α预测也是鲁棒性的。为了比较,我们通过初始化MobileNetV3编码器和LR-ASPP模块,使用COCO上的预训练权重并去除分割目标,来训练单独的模型。该模型过度拟合合成抠图数据,并显著regressesCOCO性能,仅达到38.24mIOU。

6.3    深度导向滤波的作用

表6显示,与FGF相比,DGF在大小和速度上仅具有较小的开销。DGF具有更好的梯度度量,表明其高分辨率细节更精确。DGF还产生由dtSSD度量指示的更一致的结果,这可能是因为它考虑了来自循环解码器的隐藏特征。MAD和MSE度量是非决定性的,因为它们由分割级误差控制,而DGF或FGF都不会校正这些误差。

6.4    静态与动态背景

表7比较了静态和动态背景下的性能。动态背景包括背景对象移动和相机移动。我们的方法可以处理这两种情况,并在静态背景上表现稍好,可能是因为更容易重建像素对齐的背景,如图6所示。另一方面,BGMv2在动态背景上表现不佳,MODNet没有表现出任何偏好。在度量方面,BGMv2在静态背景上优于我们的,但在实际情况下,当预先拍照的背景未对准时,预计会表现更差。

6.5    更大的型号以获得更高的性能

我们尝试将主干切换到ResNet50[12],并增加解码器通道。表8显示了性能改进。大型模型更适合服务器端应用程序。

6.6    限制

我们的方法更喜欢具有清晰目标对象的视频。当背景中有人时,感兴趣对象变得模糊不清。它还支持更简单的背景,以产生更精确的抠图。图7显示了挑战性案例的示例。

7    结论

我们提出了一种用于鲁棒人类视频抠图的循环架构。我们的方法实现了新的技术状态,同时更轻更快。我们的分析表明,时间信息在提高质量和一致性方面起着重要作用。我们还引入了一种新的训练策略来训练我们的模型,以达到匹配和语义分割的目标。这种方法有效地增强了我们的模型对各种类型的视频的鲁棒性。

A    概述

我们在本补充文件中提供了更多细节。在B节中,我们描述了我们的网络架构的细节。在C节中,我们解释了训练的细节。在D节中,我们展示了合成抠图数据样本的示例。在E节中,我们展示了我们方法的其他结果。我们还在补充文件中附上视频结果。请查看我们的视频以获得更好的可视化效果。

B    网络

表9描述了我们的网络及其变体的特征通道。我们的默认网络使用MobileNetV3-Large[15]主干网,而大型变体使用ResNet50[12]主干网。

编码器:    编码器主干对单个帧进行操作,并以k∈ [1/2,1/4,1/8,1/16]尺度提取E_k个通道的特征图。与常规MobileNetV3和ResNet主干网处理1/32尺度不同,我们按照[3,4,15]的设计修改了最后一个块,以使用扩展率为2和步长为1的卷积。最后的特征图E_\frac{1}{16}被提供给LR-ASPP模块,该模块将其压缩为AS通道。

解码器:    所有ConvGRU层通过拆分和拼接在一半通道上运行,因此循环隐藏状态在尺度k下具有\frac{D_k}{2}通道。在拆分给ConvGRU之前,对于上采样块,卷积、批量归一化和ReLU堆栈将拼接特征压缩到D_k通道。对于输出块,前两个卷积具有16个滤波器,最终隐藏特征具有16个通道。最终投影卷积输出5个通道,包括3通道前景、1通道阿尔法和1通道分割预测。所有卷积使用3×3核,除了最后一个投影使用1×1核。平均池化使用步长为2的2×2核。

深度导向滤波器:    DGF内部包含几个1×1卷积。我们修改它,将预测的前景、alpha和最终隐藏的特征作为输入。所有内部卷积使用16个滤波器。更多specifications请参考[44]。

我们的整个网络是在PyTorch建立和训练的[27]。我们将阿尔法和前景预测输出clamp到[0,1]范围,而不使用[9,22]之后的激活函数。在训练和推理过程中都进行了clamp。分割预测输出是 sigmoid的logits。

C    训练

算法1显示了我们提出的训练策略的训练循环。序列长度参数T,\hat{T}根据我们的主要文本中规定的阶段设置;批量参数设置为B=4,B’=B \times T;输入分辨率随机采样为h, w ∼ Uniform(256, 512)和h^,w^  ∼ Uniform(1024,2048)。

我们的网络使用4个Nvidia V100 32G GPU进行训练。我们使用混合精度训练[25]来减少GPU内存消耗。每个阶段的训练时间分别约为18、2、8和14小时。

D    数据样本

图8显示了来自matting数据集的合成训练样本示例。片段包含与视频合成时的自然运动以及由运动增强生成的人工运动。

图9显示了合成测试样本的示例。测试样本仅对图像前景和背景应用运动增强。运动增强仅由仿射变换组成。与训练增强相比,增强的强度也较弱,以使测试样本尽可能逼真。

E    其他结果

图10显示了与MODNet的其他定性比较。我们的方法始终更鲁棒。图11将时间一致性与MODNet进行了比较。MODNet在低置信区域有闪烁,而我们的结果是一致的。图12显示了我们模型的循环隐藏状态的其他示例。这表明,我们的模型已经学会在其循环状态中存储有用的时间信息,并且能够在镜头切换时忘记无用的信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,454评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,553评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,921评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,648评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,770评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,950评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,090评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,817评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,275评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,592评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,724评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,409评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,052评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,815评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,043评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,503评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,627评论 2 350

推荐阅读更多精彩内容