Open shimopino opened 4 years ago
[arXiv:2003.04858] Unpaired Image-to-Image Translation using Adversarial Consistency Loss
Yihao Zhao, Ruihai Wu, Hao Dong
2020-03-10
既存のCycle-Consistencyを元の画像と復元させた画像とのピクセル間のL2距離を計算していた。本研究では、Cycle-Consistencyに敵対的損失関数を採用し、同一ドメインでの復元させた画像と重要な特徴量を保持させた画像で分布間距離が最小化するように学習を行うACL-GANを提案した。
従来のCycle-Consistency損失関数では、ソースドメインの画像と生成されたターゲットドメインの画像を元のソースドメインに変換した画像との間でピクセル間の距離を計算している。
直接ピクセル間距離を計算しているため、メガネなどの物体やテクスチャ情報などが保持されてしまい、幾何的な変換に制限がかかっている。
本論文では、互いのドメインで共有される情報を最大化させるために、ピクセル間距離ではなく生成された画像との分布間距離を計算するACL-GANを提案した。
全体としては2つのGeneratorと3つのDiscriminatorで構成されている。通常の敵対的損失関数に加えて、2つの新たな損失関数を採用している。
通常のCycleGANと同様に、生成された画像が対象のドメインからサンプリングされたものか識別させる敵対的損失関数を使用する。
ソースドメインに復元させた画像に対しては、ターゲットから復元した画像と、もとのソースドメインの重要な特徴量を保持させた画像に対して本物かどうか識別を行う。
通常のCycle-Consistency損失関数は、右図のように元の実画像と復元された偽物画像とのピクセル間のL2損失関数を計算している。
今回提案された損失関数では、復元された画像と重要な特徴量を保持させた画像の2つの画像に対して、同一のドメインであるか識別させるDiscriminatorを採用している。
以下のように対象となる2つの画像の分布間距離を最小化するように学習させていく。
恒等損失では、ノイズベクトルと同一ドメインの画像から再構成された画像と元の画像とのL1損失関数を計算する。これで学習を安定化させたり、モード崩壊を避ける目的がある。
Generatorが正しく画像変換を行うために、変換させる領域を指定し、他の領域は何も変換しないようにする。このために、Generatorから4チャンネルの画像を生成させ、最後のチャンネルにどの領域を変換するのかを示す2値マスク画像を生成させている。
それぞれの損失に重みを考慮した損失関数を採用している。
今回提案された損失関数がどの程度性能に寄与しているのか検証を行った。どの損失関数も性能向上に貢献しており、すべてを採用したモデルが最も高い性能を発揮している。
以下に3つのタスク(glasses removal, make-to-female, selfie-to-anime)に本モデルを適用させた場合の生成結果を、既存の手法と比較する。
そこまで性能が向上している感じはしない気がする。
本手法の特徴は、既存の精度の高いモデルと比較して、パラメータ数が軽量なことである。
それぞれのデータセットに対する性能評価を比較しても、どの評価指標においても既存のモデルよりも高い性能を発揮していることがわかる。
しかし生成がうまく行っていないケースも存在する。メガネ除去に関して、ソースの画像ではそもそも眼鏡のフレームや色のために目立っていない場合はうまく行っていない。アニメ顔変換では、ソースの画像がぼやけていたり、画像の端に顔が位置していたりすると生成がうまくいっていない。
もともとCycle-Consistency Lossの論文はこの解説スライドが参考になる。
論文へのリンク
[arXiv:2003.04858] Unpaired Image-to-Image Translation using Adversarial Consistency Loss
著者・所属機関
Yihao Zhao, Ruihai Wu, Hao Dong
投稿日時(YYYY-MM-DD)
2020-03-10
1. どんなもの?
既存のCycle-Consistencyを元の画像と復元させた画像とのピクセル間のL2距離を計算していた。本研究では、Cycle-Consistencyに敵対的損失関数を採用し、同一ドメインでの復元させた画像と重要な特徴量を保持させた画像で分布間距離が最小化するように学習を行うACL-GANを提案した。
2. 先行研究と比べてどこがすごいの?
従来のCycle-Consistency損失関数では、ソースドメインの画像と生成されたターゲットドメインの画像を元のソースドメインに変換した画像との間でピクセル間の距離を計算している。
直接ピクセル間距離を計算しているため、メガネなどの物体やテクスチャ情報などが保持されてしまい、幾何的な変換に制限がかかっている。
本論文では、互いのドメインで共有される情報を最大化させるために、ピクセル間距離ではなく生成された画像との分布間距離を計算するACL-GANを提案した。
3. 技術や手法の"キモ"はどこにある?
3.1 ネットワーク構造
全体としては2つのGeneratorと3つのDiscriminatorで構成されている。通常の敵対的損失関数に加えて、2つの新たな損失関数を採用している。
3.2 Adversarial-Translation Loss
通常のCycleGANと同様に、生成された画像が対象のドメインからサンプリングされたものか識別させる敵対的損失関数を使用する。
ソースドメインに復元させた画像に対しては、ターゲットから復元した画像と、もとのソースドメインの重要な特徴量を保持させた画像に対して本物かどうか識別を行う。
3.3 Adversarial-Consistency Loss
通常のCycle-Consistency損失関数は、右図のように元の実画像と復元された偽物画像とのピクセル間のL2損失関数を計算している。
今回提案された損失関数では、復元された画像と重要な特徴量を保持させた画像の2つの画像に対して、同一のドメインであるか識別させるDiscriminatorを採用している。
以下のように対象となる2つの画像の分布間距離を最小化するように学習させていく。
3.4 Identity loss
恒等損失では、ノイズベクトルと同一ドメインの画像から再構成された画像と元の画像とのL1損失関数を計算する。これで学習を安定化させたり、モード崩壊を避ける目的がある。
3.5 Bounded focus mask
Generatorが正しく画像変換を行うために、変換させる領域を指定し、他の領域は何も変換しないようにする。このために、Generatorから4チャンネルの画像を生成させ、最後のチャンネルにどの領域を変換するのかを示す2値マスク画像を生成させている。
3.6 損失関数の全体像
それぞれの損失に重みを考慮した損失関数を採用している。
4. どうやって有効だと検証した?
今回提案された損失関数がどの程度性能に寄与しているのか検証を行った。どの損失関数も性能向上に貢献しており、すべてを採用したモデルが最も高い性能を発揮している。
以下に3つのタスク(glasses removal, make-to-female, selfie-to-anime)に本モデルを適用させた場合の生成結果を、既存の手法と比較する。
そこまで性能が向上している感じはしない気がする。
本手法の特徴は、既存の精度の高いモデルと比較して、パラメータ数が軽量なことである。
それぞれのデータセットに対する性能評価を比較しても、どの評価指標においても既存のモデルよりも高い性能を発揮していることがわかる。
しかし生成がうまく行っていないケースも存在する。メガネ除去に関して、ソースの画像ではそもそも眼鏡のフレームや色のために目立っていない場合はうまく行っていない。アニメ顔変換では、ソースの画像がぼやけていたり、画像の端に顔が位置していたりすると生成がうまくいっていない。
5. 議論はあるか?
6. 次に読むべき論文はあるか?
論文情報・リンク