[論文導讀]Genuine Knowledge from Practice: Diffusion Test-Time Adaptation for Video Adverse Weather Removal

Adam He
8 min readJun 20, 2024

--

CVPR 2024 本篇論文主要探討如何用Diffusion model來對video weather removal這個task來做test-time adaptation

Introduction — Task

這篇論文的task主要為以下兩點

  1. 針對video的adverse weather removal:將影片內的不好的天氣狀況給去除掉,舉例來說:去雨(Derain)、去霧(Dehaze)、去雪(Desnow)。
  2. 針對未知天氣的test-time adaptation: 作者希望模型可以針對訓練資料沒有的這些未知天氣,模型可以進行test-time adaptation來得到更好的天氣去除效果。

Introduction-Previous work

這裡主要探討之前相似的論文主要的缺陷

  1. 之前使用diffusion model的adverse weather removal的論文主要都是針對單一張image去做處理,沒有考慮到一部影片內每一張frame之間的相關性。
  2. 之前在做adverse weather removal的論文中還沒有在做test-time adaptation的

Introduciton-Contributions

以下是作者主要的貢獻

  1. 作者提出了第一個針對video adverse weather removal的diffusion架構
  2. 作者提出了第一個針對video adverse weather removal的test-time adaptation方法。

Proposed method

這裡主要會分成兩個部分來介紹

  1. 作者藉由他們提出的Temporal Noise Model來取得每一個frame之間的temporal資訊,以此達成video adverse weather removal
  2. 作者提出了一個Diffusion Tubelet Self-Calibration(Diff-TSC)來達成test-time adaptation

1. Temporal Noise Model

下圖為主要架構圖,其實基本上跟傳統DDPM是一樣的,唯一的差別差在,傳統的DDPM在forward process以及reverse process時,是從一個Ganssian distribution裏面Sample一個noise。而作者認為我們如果每張圖片都是個別去sample noise,這樣就忽略了frame與frame之間的相關性。因此這裡作者提出了這個temporal noise model取代原本的Gaussian distribution。也因此如下圖所示input的video clip(Vgt)不在是直接加上gaussian noise,而是透過這個Temporal Diffusion Process來加上富有temporal資訊的noise。而Noise predictor所要supervised的對象是從Temporal noise model sample出來的noise。

具體設計這個temporal noise model的方法,作者參考了Auto-regressive moving average這個方法。這裡補充一下auto-regressive model的概念是指每一個step的data都是之前step的data的線性組合。所以看下圖的公式,Xt會是Xt-1到Xt-p的線性組合。而Epsilon代表的是一個error term(這裡使用gaussian noise),最右邊那項代表的就是moving average項,就是將每一個step的error term也做一個線性組合。c為一個常數項。

而這個Temporal Noise model具體的公式如下:這個左式的epsilon代表的是一段影片內第i個frame所要sample的noise。看到右式,他是考慮前一個frame和後一個frame的noise做一個線性組合,並且也針對前一個和後一個frame的noise也做線性組合。如此一來,針對每一個frame,diffusion的每一次iteration都會隱含著temporal資訊,而不是獨立sample一個noise。

以下是這個Temporal noise model的pseudo-code

Objective function

底下是最終的objective function,原本的ddpm是一次一張圖,這裡的input是一次一個video clip。並且這裡supervised所sample的epsilon不在是gaussian noise,而是從前面介紹的temporal noise model來sample。

2. Diffusion Tubelet Self-Calibration(Diff-TSC)

接下來介紹這篇論文是如何做到test-time adaptation。具體做法是他們提出的這個Diffusion Tubelet Self-Calibration(Diff-TSC)。這個部分我根據下方架構圖來一步一步拆解。
首先,我們有一部test video並且這組test video是degraded by unknown weather,這裡標記Vk。我們將Vk輸入到訓練好的diffusion model,根據原始ddpm的方式去逐步的denoise,最終得到一個Vk head。除此之外,在每一步denoise的過程中,我們會根據前一部影片(Vk-1)來更新我們的model。我們將前一組Vk-1 head視為ground truth並與Vk-1組成training pair,我們從這些training pair隨機的crop數個tubelet,最後將這些成對tubelet拿來對model進行supervised training,訓練方法就如同前面介紹的Temporal noise model那樣,如此一來就能做到test-time adaptation。

而這樣的方法實際上不太make sense,畢竟我們是將Vk-1 head視為ground truth去訓練模型,感覺起來是拿模型自己產出的結果再去訓練模型。而這種方法自所以可行,其主要核心思想是,若我們今天random crop了一個做得很差的成對tubelet來更新模型,那模型的權重不會因此變差,頂多只是維持不變。而假設我們剛好random crop做得不錯的成對tubelet,那模型就能根據這個不錯的結果來更新權重,讓權重更傾向這個較好的結果。

以下是詳細的pseudo code。

Experiments

Original Weather:
Train on weather-specific set
Test on weather-specific set

Rain, Haze, Snow:
Train on mixed set
Test on weather-specific set

Train on mixed set
Test on unseen weather

Ablation study

Conclusion

  1. 這篇論文提出了第一篇用diffusion model來做video weather removal的方法
  2. 這篇論文提出了第一篇用diffusion model來針對video weather removal做test-time adaptation的方法。

--

--