DLOW簡介 - Domain Flow for Adaptation and Generalization

Rui Gong, Wen Li, Yuhua Chen, Luc Van Gool. “DLOW: Domain Flow for Adaptation and Generalization”. In CVPR’19.

CVPR 2019 Paper

Paper link : https://arxiv.org/abs/1812.05418

Github (Apr.20.2019,尚未釋出) : https://github.com/ETHRuiGong/DLOW

前備知識

Cycle-GAN,

如果不清楚 Domain Adaptation 或是 Domain Shift 的,

可以先看我之前寫過的 AdaptSegNet簡介

簡介

提出 DLOW - domain flow generation 來達成 Domain Adaptation 以及 Domain Generalization 的效果,

對於 Domain Shift 問題,

最簡單的想法是將 Source domain(S) 的畫風轉換為 Target domain(T) 的樣子,

這可以有效的減緩 domain shift 所帶來的傷害(降低準確度)。

本文提出的是產生介於 S 以及 T 之間的圖片來減緩 S 與 T 之間的 domain Shift 的差異,

這邊將它視為 Data Augmentation 可能更好理解。

因此主要想法是透過提出一個 Image to Image Translation Model 來達到上述的效果。

本文的 Image to Image Translation 是基於 Cycle-GAN 的延伸,

配合 AdaptSegNet:Learning to Adapt Structured Output Space for Semantic Segmentation 的方法。

突破之處:

  • 圖片可產生介於 S ~ T 之間的圖片,

並非像以往 Cycle-GAN 以及 CyCADA(DA 的任務) 只是單純的轉換至 Target Domain。

  • DLOW 可接受多個 Target Domain 的圖像,

超越 Cycle-GAN One-to-One 的轉換,

成為 One-to-Many 的圖像轉換,

藉此可生成出更多種不同風格的圖像,

甚至是混合不同 Domain 的圖像產生出沒看過的圖像,

以達成 Domain Generalization。

概念

基於 Cycle-GAN 作延伸,

原本是 Source Domain 與 Target Domain 轉換,

而現在我們希望能夠生成出 Source Domain 與 Target Domain 之間的圖片,

舉例來說 40% 的 Source Domain 與 60% 的 Target Domain。

而這邊的做法也很直覺,

加入一個常數 z in [0, 1] 來控制模型。

希望求得一個 M, 其介於與 S 的距離為 z 而與 T 的距離為 (1-z),

寫成式子變成

而訓練的方式其實是相像 Cycle-GAN,只是我們多了 z 這個權重

還有 L1 loss 來確保轉換後再還原還是相像的圖片

為了確保轉換後再還原的圖片還保有著 z 這個權重,

提出再訓練一個 Regressor - R 來評估

最終的 Objective Function

Domain Adaptation 部分

其想法是透過上面的方法生成介於 S ~ T 的影像 S˜ 來訓練模型,

藉此來緩和 S 與 T 之間的 Domain shift 問題。

我們看看直接將 S 轉成 T (DLOW(z = 1)) 以及 生成介於 S ~ T 的影像 S˜ (DLOW) 來訓練模型的比較。

細節部分:

使用 Conditional Instance Normalization (CN) layer 將 z => [0, 1] 的參數加入至模型中。

在最後使用 sqrt(1-z) 當作權重去訓練 Adversarial loss,

當 z 越大時代表圖片越相像 Target Domain,那 adv loss 的權重就要小一點,

其實這邊論文沒有描述得太多,我看了也沒有很有感覺就是了。

Style Gerneralization 部分

許多現存的 Image-to-Image Translation 方法都只能夠轉換 2 個不同的 Domain,

而此文的 DLOW 架構可以訓練不同 Domain 的資料集,

想法也很簡單,原本我們給的 z 是個純量 scalar,

現在改成 Vector 的方式用 One hot encoding 的方式訓練即可,

因此公式如下

透過這個特性,我們可以設定不同 Domain 的權重,

藉此混搭出沒有看過的圖片。

成果

參考資料:

DLOW: Domain Flow for Adaptation and Generalization

Github:DLOW

AdaptSegNet簡介

AdaptSegNet:Learning to Adapt Structured Output Space for Semantic Segmentation


© 2018-2019 XiaoSean. All rights reserved.

Powered by Hydejack v8.1.1