Robust Video Matting 论文精读
提取 $\alpha$ 与 $F$ 后即可把前景合成到新背景,实现背景替换。在视频会议、娱乐视频创作等场景里,用户希望无需绿幕、无需 trimap、无需预采集背景图,就能在普通视频流上实时替换人像背景。
论文给出的时序信息三重价值,是全文的动机基石 #Lin et al., 2021:
- 时序一致性:模型可见多帧及自身历史预测,显著降低闪烁,提升感知质量。
- 鲁棒性:当单帧歧义(前景色与背景过路物相近)时,可参考前帧更好猜边界。
- 背景学习:相机/主体运动逐步揭示被遮挡背景,更好理解背景 → 简化抠像任务。
由此 RVM 提出recurrent 架构显式利用时序信息,并辅以 matting + segmentation 联合训练策略对抗合成数据过拟合,做出一个 trimap-free、实时、高分辨率、且鲁棒的人像视频抠像模型。
RVM 由三大组件构成 #Lin et al., 2021:
- 特征提取编码器:MobileNetV3-Large 骨干 + LR-ASPP 模块,沿用 MobileNetV3 的语义分割设计(源自 DeepLabV3 / DeepLabV3+)。骨干最后一个 block 用 dilation rate=2、stride=1 的膨胀卷积,停在 1/16 尺度(不再下采样到 1/32)。编码器逐帧提取 1/2、1/4、1/8、1/16 四尺度特征。
- Recurrent 解码器:ConvGRU 在多尺度聚合时序信息,单向(uni-directional),因此既能直播流式用,也能后处理。
- Deep Guided Filter (DGF) 模块:高分辨率上采样。处理 4K/HD 时先对输入做 factor-$s$ 下采样过编码-解码网络,再用 DGF 把低分辨率 $\alpha$/$F$/hidden features + 高分辨率原图上采到全分辨率。DGF 可选,低分辨率视频可不用。
survey 对齐:单向 vs 双向时序引导
本系列(视频轮廓提取)模板中"时序引导"常被分为 previous / forward / backward 三类。需要强调:RVM 的时序引导严格单向(previous → current),通过 ConvGRU 隐状态 $h_{t-1} \to h_t$ 因果传播,没有 forward/backward 双向分支。这恰是它能用于直播流的前提。与 XMem 的"多级 memory + attention readout"或 BiLSTM 式双向时序模型形成对照——前者轻量因果适合实时,后者长程显存可控或后处理更优。
为何选 recurrent 而非 attention / 多帧拼接
论文给出了一个干净的设计论证 #Lin et al., 2021:recurrent 机制可在连续视频流上自适应学习保留与遗忘什么信息;而 attention 或多帧 feedforward 必须依赖一条固定规则,在固定间隔把旧信息移出、新信息插入到有限的 memory pool。recurrent 能同时保留长短期时序信息,更适合抠像这种"背景要长期记、运动要短期跟"的任务。
ConvGRU 公式
选 ConvGRU 而非 ConvLSTM,是因为门更少、参数更省 #Lin et al., 2021。更新规则为:
其中 $*$ 为卷积、$\odot$ 为逐元素乘;$z_t$ 是更新门,$r_t$ 是重置门,$o_t$ 是候选状态;隐状态 $h_t$ 既是输出也是下一时刻的输入 $h_{t-1}$;初始 $h_0$ 为全零张量。
解码器三类 block
- Bottleneck block(1/16 尺度,LR-ASPP 之后):ConvGRU 只作用于一半通道(split-and-concatenation),大幅省参省算,因为 ConvGRU 计算昂贵。
- Upsampling block(1/8、1/4、1/2 重复):先拼接三路——上一 block 双线性上采输出 + 编码器同尺度特征图 + 原图经 2×2 avg pool 下采样;再 conv+BN+ReLU 做特征融合与通道压缩;最后 ConvGRU 作用于半数通道。
- Output block(全分辨率):不用 ConvGRU(此尺度既贵又无效)。2 层 conv+BN+ReLU 堆叠得 final hidden features,1×1 投影输出 5 通道:1-ch $\alpha$ + 3-ch 前景 $F$ + 1-ch 分割预测 $S$。
T 帧并行化技巧
网络被改造为一次接收 $T$ 帧、每层处理完所有 $T$ 帧再传下一层 #Lin et al., 2021。训练时 BatchNorm 跨 batch+time 统计保证归一化一致;推理时 $T=1$ 处理直播、$T>1$ 当允许 buffering 时利用非 recurrent 层的 GPU 并行(一种 batching)。
这是全文最令人印象深刻的发现。论文可视化 recurrent 通道后发现,网络自动学会了 #Lin et al., 2021:
- 随时间重建被揭示的背景,并存入 recurrent channels 辅助未来预测;
- 用其他 recurrent channels 跟踪运动历史;
- 相机运动时仍尝试重建背景;
- 镜头切换时遗忘无用记忆——这是 recurrent 机制"自适应遗忘"的直接体现。
为何联合 matting + segmentation
三个理由 #Lin et al., 2021:(1) 人像抠像与人像分割强相关,trimap-free 网络必须语义理解场景;(2) matting 数据集只提供合成 $\alpha$/$F$ 真值,合成常因前后景光照不同而失真,分割数据集是真实复杂场景 → 联合训练防过拟合;(3) 分割数据量大得多。
数据集
| 类别 | 数据集 | 规模 | 用途 |
|---|---|---|---|
| Matting(视频) | VideoMatte240K (VM) | 484 个 4K/HD 片段 | 475/4/5 train/val/test |
| Matting(图像) | Distinctions-646 (D646) | 人像,420/15 train/val,11 test | 训练 + 评测 |
| Matting(图像) | Adobe Image Matting (AIM) | 10 test | 评测 |
| 背景视频 | DVM HD backgrounds | 3118 片段 × 100 帧 | 合成背景 |
| 背景图像 | 爬取(沿用 BGMv2) | 8000 张室内图 | 合成背景 |
| 分割(视频) | YouTubeVIS | 2985 含人片段 | 联合训练 |
| 分割(图像) | COCO | 64,111 含人图 | 联合训练 |
| 分割(图像) | SPD | 5711 样本 | 联合训练 |
四阶段渐进训练
设计思路:让网络逐步见更长序列与更高分辨率以省训练时间。Adam,batch $B=4$ 跨 4× V100 32G,混合精度训练 #Lin et al., 2021。
| 阶段 | 数据 | DGF | 序列 T | 分辨率 h,w | epochs | 关键 lr | 耗时 |
|---|---|---|---|---|---|---|---|
| Stage 1 | VM | 否 | 15 | Uniform(256,512) | 15 | backbone 1e-4 / 余 2e-4 | ~18h |
| Stage 2 | VM | 否 | 50 | Uniform(256,512) | 2 | 减半 | ~2h |
| Stage 3 | VM | 是 | 低分 40 / 高分 6 | (256,512) / (1024,2048), s=0.25 | 1 | DGF 2e-4 / 余 1e-5 | ~8h |
| Stage 4 | D646+AIM | 是 | 同 S3 | 同上 | 5 | decoder 5e-5 / 余 1e-5 | ~14h |
训练复现要点
Stage 1 短 $T=15$ 让网络更新更快;Stage 2 增 $T$ 到 50(显存上限)学长程依赖;Stage 3 同时跑低分长序列 + 高分短序列,避免 recurrent 网络对短序列过拟合——这是 recurrent 训练的常见坑。Stage 3/4 同时启用 DGF 端到端训练。
分割训练交错策略
分割训练穿插在每次 matting 迭代之间 #Lin et al., 2021:奇数次迭代后跑图像分割($T'=1$,$B'=B\times T$),偶数次后跑视频分割。图像被当作"仅第一帧"的序列喂入 → 迫使分割在无 recurrent 信息时也鲁棒,避免模型对时序状态的过度依赖。
损失函数
对所有 $t\in[1,T]$ 施损失。$\alpha$ 用 L1 + 拉普拉斯金字塔 + 时序一致性(沿用 FBA / Context-Aware Matting 的最佳实践)#Lin et al., 2021:
前景 $F$ 仅在 $\alpha^*_t>0$ 像素上算(沿用 BGMv2 做法)。总 matting 损失(时序一致性权重 ×5):
分割用 BCE(仅人这类):$L^S = S^*_t\bigl(-\log(S_t)\bigr) + (1-S^*_t)\bigl(-\log(1-S_t)\bigr)$。
合成基准:低分辨率 alpha 对比
在 VM/D646/AIM 上各取 100 帧 ×(5 视频 + 5 图像)背景合成测试集,对比 DeepLabV3、FBA(用 DeepLabV3 合成 trimap)、BGMv2(只见首帧 GT 背景)、MODNet #Lin et al., 2021。指标:MAD/MSE(×1e-3)、Grad、Conn、dtSSD(×1e-2,时序一致性)。
| 数据集 | 方法 | MAD | MSE | Grad | Conn | dtSSD |
|---|---|---|---|---|---|---|
| VM (512×288) | FBA | 8.36 | 3.37 | 2.09 | 0.75 | 2.09 |
| VM | MODNet | 9.41 | 4.30 | 1.89 | 0.81 | 2.23 |
| VM | Ours | 6.08 | 1.47 | 0.88 | 0.41 | 1.36 |
| D646 (512×512) | MODNet | 10.62 | 5.71 | 3.35 | 2.45 | 1.57 |
| D646 | Ours | 7.28 | 3.01 | 2.81 | 1.83 | 1.01 |
| AIM (512×512) | MODNet | 21.66 | 14.27 | 5.37 | 5.23 | 1.76 |
| AIM | Ours | 14.84 | 8.93 | 4.35 | 3.83 | 1.01 |
RVM 在 alpha 全指标领先,前景预测落后 BGMv2(其有 GT 背景)但优于 FBA、MODNet #Lin et al., 2021。注意 dtSSD 全面领先 → 时序一致性优势明确。
高分辨率 alpha 对比
DGF 端到端可训,故 MODNet 改用非可学 Fast Guided Filter (FGF) 上采样,两者均用 $s=0.25$ 下采样 #Lin et al., 2021。
| 数据集 | 方法 | SAD | MSE | Grad | dtSSD |
|---|---|---|---|---|---|
| VM 1920×1080 | MODNet+FGF | 11.13 | 5.54 | 15.30 | 3.08 |
| VM | Ours | 6.57 | 1.93 | 10.55 | 1.90 |
| D646 2048×2048 | MODNet+FGF | 11.27 | 6.13 | 30.78 | 2.19 |
| D646 | Ours | 8.67 | 4.28 | 30.06 | 1.64 |
| AIM 2048×2048 | MODNet+FGF | 17.29 | 10.10 | 35.52 | 2.60 |
| AIM | Ours | 14.89 | 9.01 | 34.97 | 1.71 |
模型大小与速度
| 方法 | 参数 (M) | 大小 (MB) |
|---|---|---|
| DeepLabV3 | 60.996 | 233.3 |
| FBA | 34.693 | 138.8 |
| BGMv2 | 5.007 | 19.4 |
| MODNet | 6.487 | 25.0 |
| Ours | 3.749 | 14.5 |
RVM 仅 MODNet 58% 参数,最轻量 #Lin et al., 2021。速度(FP32,Nvidia GTX 1080Ti,TorchScript + BN fusion):
| 分辨率 | s | 方法 | FPS | GMACs* |
|---|---|---|---|---|
| 512×288 | 1 | BGMv2 | 152.5 | 8.46 |
| 512×288 | 1 | MODNet | 104.9 | 8.80 |
| 512×288 | 1 | Ours | 131.9 | 4.57 |
| 1920×1080 | 0.25 | MODNet+FGF | 100.3 | 7.78 |
| 1920×1080 | 0.25 | Ours | 104.2 | 4.15 |
| 3840×2160 | 0.125 | MODNet+FGF | 88.6 | 7.78 |
| 3840×2160 | 0.125 | Ours | 76.5 | 4.15 |
- 时序信息作用 #Lin et al., 2021:alpha MAD 在前 15 帧显著下降后稳定;MODNet 即使用邻帧平滑仍大幅波动;关闭 recurrence(传零 recurrent state)质量与一致性均恶化。→ 时序信息确实提升质量与一致性。
- 分割训练目标:COCO 人像子集 mIOU——DeepLabV3 68.93、MobileNetV3+LR-ASPP 58.58、Ours(alpha 阈值 0.5)60.88 / Ours(分割输出)61.50;若仅用预训练权重初始化、去掉分割目标 → 仅 38.24。→ 联合训练目标使模型鲁棒,否则过拟合合成分布。
- DGF vs FGF:DGF 仅微小 size/速度开销(3.749M/104.2FPS vs FGF 3.748M/109.4FPS);DGF 的 Grad 更好(30.06 vs 31.44)且 dtSSD 更好(1.64 vs 1.89),因考虑了 recurrent decoder 的 hidden features。
- 静态 vs 动态背景:RVM 两者皆可,静态略好(易重建像素对齐背景);BGMv2 动态背景崩坏(MAD 42.45 vs 静态 4.33),MODNet 无偏好。
- 大模型变体:ResNet50 骨干 + 更多 decoder 通道 → 26.890M 参数 / 102.9MB / 71.1 FPS (HD) / MAD 5.81 / dtSSD 1.78,适合服务端。
- alpha 蒙版即发丝级精细轮廓。抠像输出的 $\alpha$ 是逐像素软前景概率,本质上是最精细的人体/物体轮廓(含半透明发丝边缘)。trimap-free 抠像 ≈ 自动提取发丝级轮廓。图 5 的发丝细节对比直观证明 RVM 在发丝边界远胜基线。
- 时序一致性 = 视频轮廓的时间稳定。视频轮廓提取的核心难点之一是帧间轮廓闪烁。RVM 的 ConvGRU recurrent state + 时序一致性损失 $L_{tc}$ 直接解决该问题,dtSSD 指标全面领先。图 6 直观对比 MODNet 栏杆处闪烁 vs RVM 一致。
- recurrent 时序引导范式。RVM 是"recurrent hidden state 作时序载体"这一范式在抠像/轮廓任务的 landmark。与 XMem 的"多级 memory + attention readout"范式互补——前者轻量因果适合直播,后者长程显存可控适合长视频。两者构成视频轮廓提取模型的两大时序机制分支。
- trimap-free 自动化。去掉 trimap/背景先验,使轮廓提取从交互式走向全自动,契合"全自动视频轮廓提取"主线。
- 背景建模的可解释通道。recurrent state 自动重建背景的发现(第 4 章)启示——视频轮廓提取可借助隐式背景建模消减背景干扰、稳定前景轮廓。
论文自述局限 #Lin et al., 2021:偏好目标主体清晰的视频;背景有人时主体歧义;偏好简单背景以产出更准确抠像。
survey 视角的开放问题
- 单向 recurrent 无法利用未来帧:后处理场景下,双向时序(forward+backward)可能更优,RVM 为直播牺牲了这部分上限。
- recurrent state 容量有限:长视频是否会出现 representation drift?XMem 用多级 memory 解决,可对比阅读本系列后续。
- 多主体/背景人群歧义未解:需语义先验或交互引导,纯 trimap-free 在复杂人群场景仍受限。
- 极精细发丝边界受限于 backbone 感受野与 DGF 上采样能力:trimap-free 的精度上限仍受骨干网络与上采样模块约束。
参考来源
- Lin, S., Yang, L., Saleemi, I., Sengupta, S. (2021). Robust High-Resolution Video Matting with Temporal Guidance. arXiv:2108.11515. arXiv:2108.11515 · 代码 PeterL1n/RobustVideoMatting
- Lin, S., Ryabtsev, A., Sengupta, S., Curless, B., Seitz, S., Kemelmacher-Shlizerman, I. (2021). Real-Time High-Resolution Background Matting. CVPR 2021. VideoMatte240K 数据集来源;BGMv2 基线。
- Sengupta, S. et al. (2020). Background Matting: The World is Your Green Screen. CVPR 2020. BGMv1 前作,需预采集背景。
- Chen, H. et al. MODNet: Real-Time Trimap-Free Portrait Matting via Decomposition. 人像抠像基线,邻帧平滑 trick。
- Fortes, F. et al. F, B, Alpha Matting (FBA). trimap-based 抠像 SOTA。
- Xu, N., Price, B., Cohen, S., Huang, T. (2017). Deep Image Matting. CVPR 2017. AIM 数据集来源,首个深度 trimap 抠像。
- Shi, X. et al. (2015). Convolutional LSTM Network: A Machine Learning Approach to Precipitation Nowcasting. NIPS 2015. ConvLSTM,recurrent 视觉谱系。
- Ballas, N., Yao, L., Pal, C., Courville, A. (2016). Delving Deeper into Convolutional Networks for Learning Video Representations. ICLR 2016. ConvGRU 出处。
- Wu, H., Zheng, S., Zhang, J., Huang, K. (2019). Fast End-to-End Trainable Guided Filter. ICCV 2019. Deep Guided Filter (DGF)。
- Howard, A. et al. (2019). Searching for MobileNetV3. 编码器骨干。
- Chen, L.-C. et al. Rethinking Atrous Convolution for Semantic Image Segmentation. DeepLabV3,LR-ASPP 设计来源。
- Cheng, H. K., Schwing, A. (2022). XMem: Long-Term Video Object Segmentation with an Atkinson-Shiffrin Memory Model. ECCV 2022. 本系列对照:多级 memory + attention readout 范式。