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的完整開源實作。它提供即用型預訓練模型、清晰的測試腳本,以及足夠詳盡的文件,讓研究人員能重現結果或在自己的影片資料上微調模型。

相關

  • 專案
  • 專案
  • 專案
  • 專案