《Robust High-Resolution Video Matting with Temporal Guidance》论文笔记
这篇文章提出了一种在视频场景下实现实时matting的算法,在1080Ti GPU下达到4K分辨率76 FPS和HD分辨率104 FPS。该算法通过引入ConvGRU处理帧间信息,并结合语义分割与matting任务进行多任务学习,从而提升了预测的鲁棒性和细节精度。文中详细介绍了网络架构的设计与优化策略,并提出了包含L1损失、拉普拉斯金字塔损失和时序相关性损失在内的多目标优化方法。实验结果表明该算法在低分辨率和高分辨率下均表现出色,在保持高性能的同时实现了对背景假设的松耦合。
主页:Homepage
开源代码库:RobustVideoMatting
1. 概述
本文提出了一种适用于视频场景的实时matting算法,在考虑到视频的时序特性的情况下,在解码器模块中引入了ConvGRU网络(输入维度为[B*T*3*H*W]),该网络设计用于传递帧间信息以增强对视频稳定性的支持。在此基础之上结合语义分割技术构建多任务学习框架,在实现对matting任务的同时实现深度预测目标。该方法通过将语义分割与matting任务相结合实现了多任务训练的目标,并且能够兼容当前广泛使用的语义分割数据集所呈现的各种场景带来的预测鲁棒性和高分辨率细节预测能力。该pipeline体系的优势在于无需依赖传统的trimap引导或固定背景假设的前提下仍然能够实现高精度的深度估计效果,并通过引入DGF(Deep Guided Filter)技术实现了对高分辨率matting结果的有效提取。
传统的background matting算法通常是逐帧预测,在缺乏对视频帧时空序列特性的有效利用上存在不足之处;然而并未充分利用视频帧自身的时空序列特性;这种时空序列特性实际上能够显著提升matting效果;其主要体现在...
- 1)视频帧间的预测结果具有时间上的依存关系,在此基础上可获得更为可靠的matting效果;
- 2)通过连续帧作为输入信息,在目标运动过程中可逐步积累丰富的背景知识;
- 3)视频所具有的时空特性为引入类LSTM模型奠定了基础,在特征提取方面也展现出更高的效率;
在引入视频序列进入pipeline这一方面上文已经有所提及之外,在整个网络架构设计上将该系统构建为同时兼顾语义分割与matting两个目标的任务型网络,并非简单的并行处理关系。这种设计理念的核心优势在于通过整合不同任务的需求特征,在提升整体系统性能的同时实现了两个目标间的协同提升。其主要原因包括以下几点:1)通过多任务学习框架能够充分利用数据资源;2)各任务之间具有天然的关联性;3)能够有效避免单一任务模型带来的性能瓶颈问题。
-
- 人像语义分割与mattin任务具有相似性, 这一特点为其结合应用奠定了基础;
-
- 当前的人像语义分割数据集展示了多样化的应用场景, 采用整合训练策略能够有效缓解mattin阶段因数据"假"所带来的过拟合问题;
-
- 在数量与标注成本两个维度上, 人像语义分割的数据集均显著优于mattin数据集。
文章得到的效果可以参考下图所示:

2. 方法设计
2.1 整体pipeline
这篇文章提出的pipeline见下图所示:

通过视觉观察可知,文章所提出的架构呈现出典型的U型特征,在解码环节实现了技术突破。具体而言,在解码过程中引入了ConvGRU、补充了原图下采样方法,并结合了DGF(Deep Guided Filter)等优化措施以进一步提升性能。
2.2 编码器单元
在编码器前端阶段之前阶段性地对原始高分辨率图片实施下采样操作以生成低分辨率输入图像随后该网络架构采用MobileNetV3-Large结构并在最后一层采用膨胀卷积取代传统下采样层其后缀多尺度融合模块完成特征融合工作输出特征图尺寸依次为(\frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \frac{1}{16})
2.3 解码器单元
在解码器模块中存在显著区别的是采用了ConvGRU结构来处理时序数据。特征信号经过通道划分后会将数据分为两部分:一部分继续采用传统解码方式完成解码运算;另一部分则利用ConvGRU模型进行时序特性的提取与建模。该方法旨在有效融合当前帧与历史帧的空间与时间信息以提升解码效果。其中z_t表示...计算过程如下:其中z_t表示... r_t表示... o_t表示... h_t表示... 除了上述改进外,在低分辨率的解码模块中融入原始图像信息有助于补充细节线索并增强重建质量
在高分辨率预测阶段的末尾段落中采用了DGF方法进行实现技术方案
2.4 损失函数
该方法采用图像语义分割与matting融合训练,并由此导致网络损失的主要原因在于这两个任务。
matting损失:
首先,在matting方法中采用L1损失和拉普拉斯金字塔_loss_来处理alpha通道,并在此基础上结合视频的时间序列特性引入alpha帧差的回归_loss_(即对时间变化趋势进行建模):
L_{l1}^\alpha=||\alpha_t-\alpha_t^{*}||_1
L_{lap}^\alpha=\sum_{s=1}^5\frac{2^{s-1}}{5}||L_{pyr}^s(\alpha_t)-L_{pyr}^s(\alpha_t^{*})||_1
L_{tc}^\alpha=||\frac{d\alpha_t}{dt}-\frac{d\alpha_t^{*}}{dt}||_2
对于matting中的前景部分,则采用L1_loss_与时间相关性相关的综合形式作为loss函数:
L_{l1}^F=||(\alpha_t^{*}\gt0)*(F_t-F_t^{*})||_1
L_{tc}^F=||(\alpha_t^{*}\gt0)*(\frac{dF_t}{dt}-\frac{dF_t^{*}}{dt})||_2
因此,在综合考虑各因素后,总loss函数可表示为:
L^M=L_{l1}^\alpha+L_{lap}^\α+5L_{tc}^\α+L_{l1}^F+5L_{tc}^F
图像语义分割损失:
该损失采用的是二元区分熵形式:
L^S = S_t^{*}(-\ln(S_t)) + (1 - S_t^{*})(-\ln(1 - S_t))
特别提醒:在阅读本文时,请注意以下几点:首先,在介绍本文方法的过程中,默认会将整个训练过程划分为四个阶段,并在后续部分进行详细说明

3. 实验结果
低分辨率下性能比较:

高分辨率下性能比较:

