JingyunLiang/VRT

VRT: A Video Restoration Transformer (official repository)

VRT – 视频修复Transformer

是什么 – VRT 是论文《VRT: A Video Restoration Transformer》(arXiv 2201.12288)中描述的 视频修复Transformer 的研究级 PyTorch 实现。它处理多种视频修复任务,包括视频超分辨率、去模糊、去噪、帧插值和时空超分辨率。

为何重要 – 传统视频修复网络要么逐帧处理(递归式),要么使用短滑动窗口,限制了捕捉长程时间信息的能力。VRT 引入了 时间互相关自注意力(TMSA)机制,能够联合估计运动、对齐特征并融合多帧信息,同时仍支持并行处理。作者报告在九个基准数据集上实现了最高水平的性能提升,最高达 2.16 dB


主要特性(README中所述)

  • 多任务模型 – 单一架构适用于视频SR、去模糊、去噪、帧插值和时空SR。
  • 长程时间建模 – TMSA 将视频分割为短片段进行互相关注意力,再通过层间序列偏移实现跨片段交互。
  • 并行变形 – 额外的变形分支进一步融合邻近帧信息。
  • 预训练权重 – GitHub Releases 页面提供所有支持任务的可下载模型。
  • 基准级性能 – 视频SR提升 +0.33 – 0.51 dB,去模糊提升 +1.47 – 2.15 dB,去噪提升 +1.56 – 2.16 dB 等。
  • Colab演示 – 一键式 Google Colab 笔记本,无需本地安装即可运行模型。

快速开始(仅测试)

# 克隆仓库并安装依赖
git clone https://github.com/JingyunLiang/VRT
cd VRT
pip install -r requirements.txt   # Python 3.8+, PyTorch >=1.9.1, 推荐 CUDA 11.1

# 示例:6帧 REDS 模型的视频超分辨率
python main_test_vrt.py \
  --task 001_VRT_videosr_bi_REDS_6frames \
  --folder_lq testsets/REDS4/sharp_bicubic \
  --folder_gt testsets/REDS4/GT \
  --tile 40 128 128 \
  --tile_overlap 2 20 20

脚本会自动下载所需预训练模型和测试数据(Vimeo-90K 测试集除外)。若 GPU 内存不足,请调整 --tile 参数——较小的块使用更少内存,但可能略微降低 PSNR。


训练(概览)

  • 数据集 – README 列出了每个任务的精确训练与测试划分(例如:REDS 用于视频SR,Vimeo-90K 用于SR/BI/BD,DVD/GoPro 用于去模糊,DAVIS 用于去噪等)。
  • LMDB转换 – 为提升速度,作者建议使用 KAIR 工具箱提供的 create_lmdb.py 脚本,将PNG图像序列转换为LMDB格式。
  • 测试无需数据集准备main_test_vrt.py 会自动获取测试集。

资源


引用

若在研究中使用 VRT,请引用原始论文(arXiv 2201.12288)。README 中的 Citation 部分提供了可直接复制的 BibTeX 条目。


许可与致谢

该仓库遵循 LICENSE 文件中指定的许可协议(学术代码标准)。感谢 ETH Zurich Computer Vision Lab 和 Meta Inc. 作为支持机构。


总结 – VRT 是一个功能完整的开源实现,针对一系列视频修复问题提供了最先进的Transformer模型。它提供即用型预训练模型、清晰的测试脚本,以及足够详尽的文档,使研究人员能够复现结果或在自己的视频数据上微调模型。

相关

  • 项目
  • 项目
  • 项目
  • 项目