BlazeBVD: Make Scale-Time Equalization Great Again for Blind Video Deflickering¶
会议: ECCV2024
arXiv: 2403.06243
代码: 待确认
领域: 视频生成
关键词: blind video deflickering, histogram, scale-time equalization, temporal consistency, exposure correction
一句话总结¶
提出 BlazeBVD,利用经典 Scale-Time Equalization (STE) 在光照直方图空间提取 deflickering 先验(滤波光照图、曝光图、闪烁帧索引),将复杂的视频时空学习简化为 2D 空间网络逐帧处理 + 轻量 3D 时序一致性网络,在盲视频去闪烁任务上实现 SOTA 质量且推理速度比基线快 10 倍以上。
背景与动机¶
- 视频闪烁(flicker)是视频质量的常见退化问题:来源包括相机硬件限制、图像处理算法逐帧应用带来的不一致、以及 GAN/Diffusion 等生成模型产生的颜色畸变
- 盲视频去闪烁(Blind Video Deflickering, BVD)要求方法对闪烁类型和程度完全未知,不依赖额外参考视频或闪烁类型标注,是最通用但也最困难的设定
- 现有深度学习方法(如 Deflicker 基于 Neural Atlas)资源消耗极大:处理 8 秒视频建立 atlas 需约 10 分钟,且视频越长时间和显存开销越大
- 同时,既有方法在处理严重光照闪烁时会产生颜色伪影和颜色失真,过曝/欠曝区域的纹理细节无法恢复,甚至引入新的局部闪烁
核心问题¶
- 时空复杂度过高:像素级的时空数据量巨大,神经网络难以学习和维持全局视觉一致性
- 缺乏紧凑表示:闪烁本质上是光照的局部或瞬时偏移,需要比像素值更紧凑且能准确刻画光照波动的表示
- 局部曝光问题未被解决:过曝将纹理变为均匀纯色、欠曝导致黑暗区域,既有 BVD 方法无法补偿这些丢失的高频细节
方法详解¶
BlazeBVD 分为三个阶段,核心思想是利用 STE 在光照直方图空间提取先验信息,将原本需要处理整个视频时空数据的复杂任务分解为可独立逐帧处理的简单任务。
Stage 1: Deflickering 先验提取¶
- 光照图提取:将每帧 RGB 图像转换到 HSV 空间,取 V 通道(即 R/G/B 最大值)作为光照图 \(V_t\)
- 光照直方图计算:对每帧光照图计算直方图 \(H_t\),这些直方图紧凑地刻画了帧间光照变化——无明显光照变化的帧直方图相似,闪烁帧直方图分布异常
- STE 滤波:对光照直方图序列施加高斯时间平滑(在直方图空间而非像素空间),得到平滑后的直方图序列,再通过直方图匹配生成滤波光照图 \(\tilde{V}_t\)
- 闪烁帧检测:通过 STE 前后直方图的 KL 散度与局部移动平均的比较,识别出闪烁帧集合 \(S_{flicker}\)
- 曝光图生成:根据滤波光照图的像素值阈值生成二值曝光图 \(M_t\),标记过曝(\(>\epsilon_2\))和欠曝(\(<\epsilon_1\))区域
Stage 2: 全局与局部闪烁去除¶
- 全局闪烁去除模块 (GFRM):使用 2D-UNet 以闪烁帧 \(X_t\) 和滤波光照图 \(\tilde{V}_t\) 作为输入,逐帧独立校正颜色。由于 \(\tilde{V}_t\) 在时间维度已稳定,网络只需学习 2D 空间映射,大幅降低学习难度。训练使用 L2 损失
- 局部闪烁去除模块 (LFRM):仅对闪烁帧集合中的帧操作。利用 RAFT 计算前后帧的光流,将相邻帧的纹理细节通过光流 warp 迁移到当前帧的过曝/欠曝区域(由曝光图 \(M_t\) 标记),非曝光区域保留原始校正结果,最后通过融合网络合成
Stage 3: 自适应时序一致性¶
- 引入 Temporal Consistency Model (TCM),基于 RTN 架构的轻量级时空网络
- 设计自适应掩码加权 warping 损失:在曝光区域给予更高权重(\(M_t + 1\)),避免传统 warping 损失导致的全局模糊和颜色失真
- 总损失包含:重建损失 \(\mathcal{L}_{rec}\)、感知损失 \(\mathcal{L}_{per}\)、时空对抗损失 \(\mathcal{L}_{adv}\)、自适应 warping 损失 \(\mathcal{L}_{warp}\)
实验关键数据¶
定量结果(DAVIS-2017-Test 合成视频)¶
| 方法 | PSNR↑ | SSIM↑ | \(E_{warp}\)↓ |
|---|---|---|---|
| ConvLSTM | 24.110 | 0.9256 | 0.1369 |
| DVP | 24.136 | 0.9263 | 0.1415 |
| STE | 26.138 | 0.9321 | 0.1117 |
| Deflicker | 23.932 | 0.9243 | 0.0840 |
| BlazeBVD | 28.609 | 0.9638 | 0.0825 |
Blind Deflickering Dataset 合成视频(平均)¶
| 方法 | PSNR↑ | SSIM↑ | \(E_{warp}\)↓ |
|---|---|---|---|
| Deflicker | 25.30 | 0.9349 | 0.0856 |
| BlazeBVD | 28.15 | 0.9538 | 0.0897 |
效率对比¶
| 指标 | Deflicker | BlazeBVD |
|---|---|---|
| 推理时间 (80帧) | 614.19s | 58.37s (约 10.5× 加速) |
| 显存 | 5204M | 1389M |
| MACs | 260.7G | 251.4G |
| 参数量 | 12.48M | 17.77M |
用户研究(Real-world + Generation 视频)¶
在 7 个数据集上 50 名用户的偏好实验中,BlazeBVD 全面优于 Deflicker,偏好率从 61.33%(Expert)到 80.75%(OldAnime)不等。
亮点¶
- 巧妙的表示转换:将像素空间的时空复杂问题转化为光照直方图空间的时间平滑问题,利用经典 STE 为深度学习提供高质量先验,大幅降低学习难度
- 首次处理局部曝光问题:通过曝光图检测 + 光流 warp 邻帧纹理迁移,解决了过曝/欠曝区域纹理丢失这一既有方法忽视的问题
- 极快推理速度:2D 网络逐帧处理 + 轻量 3D 网络时序精修,实现 10× 加速且显存降低 73%
- 自适应掩码 warping 损失:在时序一致性优化中对曝光区域加权,避免了 Deflicker 中普遍存在的模糊和颜色失真问题
局限与展望¶
- LFRM 的局部纹理恢复依赖光流精度和邻帧质量——若连续多帧均处于闪烁/曝光状态,则无法从邻帧获取有效纹理
- 参数量略高于 Deflicker(17.77M vs 12.48M),但实际推理速度和显存大幅优于后者
- \(E_{warp}\) 在部分设置下略高于 Deflicker,作者分析为光流估计误差被 Deflicker 的图像模糊所掩盖,但这一论点未提供严格验证
- 曝光图的阈值 \(\epsilon_1, \epsilon_2\) 为手动设定,不同场景可能需要调整
与相关工作的对比¶
| 方法 | 类型 | 闪烁类型 | 局部曝光 | 速度 |
|---|---|---|---|---|
| STE | 传统滤波 | 轻微 | 不支持 | 快 |
| ConvLSTM / DVP | 时序一致性 | 需参考 | 不支持 | 中 |
| Deflicker | Neural Atlas | 通用 | 不支持 | 慢(614s/80帧) |
| BlazeBVD | 直方图先验 + 2D/3D 网络 | 通用 | 支持 | 快(58s/80帧) |
启发与关联¶
- 核心启发是紧凑表示 + 经典方法先验的范式:经典方法(如 STE)虽效果有限但提供了正确的先验信号,深度网络负责在先验指导下完成精细恢复——这一范式可推广到其他视频增强任务
- 光照直方图作为视频闪烁的紧凑表示,比像素值更适合刻画帧间光照变化,可借鉴到视频色彩一致性编辑等任务
- 局部曝光修复的光流 warp 思路可与视频修复 (video inpainting) 方法结合
评分¶
- 新颖性: 4/5(直方图先验 + STE 辅助深度去闪烁的思路新颖,Stage 分解清晰)
- 实验充分度: 4/5(合成/真实/生成视频全覆盖,用户研究完善,消融实验充分)
- 写作质量: 4/5(结构清晰,动机阐述有说服力)
- 价值: 4/5(10× 加速 + 首次解决局部曝光问题,实用价值高)