狠狠撸

狠狠撸Share a Scribd company logo
U-GAT-IT:
Unsupervised Generative Attentional Networks
with Adaptive Layer-Instance Normalization
for Image-to-Image Translation
【画像処理 & 機械学習】論文LT会! #8@LPIXEL
meow (id: meow_noisy)
2019/11/21(木)
論文概要
? 画像変換タスクにおいて、輪郭が大きく変わるターゲット
への変換を教師なしで獲得する手法の提案
? 手法の特徴
1. CAMライクな補助分類器の導入によりattention mapを作成
2. AdaLINによりcontentとstyleをちょうど良く混ぜて正規化
? 著者
? Junho Kim ?, Minjae Kim ?, Hyeonwoo Kang ?, Kwanghee Lee?
? ? NCSOFT, ? Boeing Korea Engineering and Technology Center
? 学会情報: なし
? URL: https://arxiv.org/abs/1907.10830
背景
? 画像変換タスクにおいては、局所的なテクスチャの変換は
目覚ましい成功を収めた
? 写真?ゴッホの絵画
? 馬?シマウマ
? しかし、形がそもそも変わっているものへ変換することは難しい
? 猫?犬
? 顔写真?アニメ
提案手法: U-GAT-IT
? GANをベースにしつつ
下記の機能をGenerator
に組み込むことで、
画像変換能力の獲得を
実現
? ①補助分類器を利用して
attention mapを作成
? ②AdaLINレイヤーで
contentとstyleを
バランス良く混ぜる
①補助
分類器
②AdaLIN
※図はsource→targetの例
(逆のネットワークも用意する)
Unsupervised
Generative Attentional Networks
with Adaptive Layer-Instance Normalization
for Image-to-Image Translation
(?-`).?oO(You got it.とかけたかったのだろうか)
CAMライクな補助分類器
? CAM(Class Activation Map)
? CNNの判断根拠の可視化手法のひとつ
? 特徴マップとsoftmaxへの重みを線形結合しActivation Mapを作成
auxiliary classifier
図は元論文より: https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Zhou_Learning_Deep_Features_CVPR_2016_paper.pdf
CAMライクな補助分類器(p.3)
auxiliary classifier
? 補助分類器? ?
? 入力された画像がsourceから来た確率を出力
する二値分類器
? 特徴マップのGlobal Avg Pooling, Global Max
Poolingを結合したもの入力
? Encoderから出力された特徴マップの重みで
CAMを作成
※図はsource→targetの例
(逆のネットワークも用意する)
?
補助分類器の効果(p.5 Fig 2)
? あり/なしで顕著な効果がある (元画像) あり なし
CAMライクな補助分類器(p.3)
auxiliary classifier
? CAMをattention mapとする
? 例えば、? ? = ? ? ? ?
?
? attentionを全結合層に流し、後段のAdaLINで使う
アフィンパラメータγ、βを推定
※図はsource→targetの例
(逆のネットワークも用意する)
Decoderへの入力
? attention mapと、パラメータγ,βを
後段のDecoderへ入力
※図はsource→targetの例
(逆のネットワークも用意する)
AdaLIN:
Adaptive Layer-Instance Normalization
? DecoderのRes BlockにおいてAdaLINレイヤーを挟む
? 処理内容: attention mapに対して、Instance Normalization(IN)
とLayer Normalization(LN)の混合和を計算
? IN: チャネル単位で正規化
? LN: レイヤー(すべての特徴マップ)単位で正規化
(p.3)
AdaLINの効果(p.6; Fig.4)
? スタイル変換タスクで提案されたNormalize手法を比較
? INはターゲットドメイン(anime)の情報が少なく、LNはソースドメイン
(selfie)の情報が少ない。したがって、折衷すると上手くいく
? AdaINはcontent(selfie?)のパターンが少ないらしい(p.3,col.2,l.16)
(元画像) AdaLIN IN LN AdaIN GN
p.7 Tab.1 定量評価(小さいほど良い)でも最良
実験(p.5)
? 比較手法
? U-GAT-ITを含む5つの画像変換手法
? データセット
? selfie?animeを含む5つのデータセット
? 評価尺度
? 定性評価: ユーザーテスト(n=135)
? 変換前後の画像と、変換先のドメインのみを教え、
ベストだと思う画像を選んでもらう
? 定量評価: KID(Kernel Inception Distance)
? FIDより信頼できるらしい(p.7; 5.3.4項)
定性評価の結果(p.8 Tab.2)
? 4つのデータセットで提案手法が最良
元画像 提案 CycleGAN UNIT MUNIT DRIT
photo2portrait
dataset
定量評価の結果(p.8 Tab.3)
? KIDで測る。小さいほど良い。
? 3つのデータセットで提案手法が最良
? 他2つで劣るが、トップとの差は微々たるものと主張
まとめ
? attentionの導入と正規化の工夫で、形状や輪郭の大きく異
なるドメイン間での画像変換を教師無しで実現した
個人的な疑問
? 正規化で画像の質がなぜコントロールできるのかわかってい
ない
? 正規化する単位の違いでそんなにcontentとstyleの情報が変化する?
(元画像) AdaLIN IN LN AdaIN GN
参考文献
1. ニューラルネットワークでStyle Transferを行う論文の紹
介
? https://qiita.com/kidach1/items/0e7af5981e39955f33d6
2. Class activation mappingを用いたCNNの可視化
? https://qiita.com/KDOG08/items/74ef0a342f100bf0c5d5
ご清聴ありがとうございました
ふろく:
U-GAT-ITでselfie2animeをする
すぐに試したい方向け
? 有志の人がリリースしたWebApp版が存在
? https://selfie2anime.com/
? バックエンドに鲍-骋础罢-滨罢を使用している
公式リポジトリのclone
? 公式のTF版repoをclone
? https://github.com/taki0112/UGATIT
? readme.mdに記載されているselfie2anime datasetをダウンロード
? readme.mdに記載されているpretrained modelをダウンロード
? ※公式のPyTorch版repoもあるが、pretrained modelが提
供されていない
? https://github.com/znxlwm/UGATIT-pytorch
? pytorch版のissueにTFのモデルを公開している人もいてややこしい
データ
? データセット
? datasetディレクトリに配置
? trainA,trainB,testA,testBというディレクトリ名は固定
? testAにselfieを入れればいい
? 画像ファイル名の拡張子や名前は気にしなくていい
? ※ selfie2anime datasetはanime側(trainB, testB)が
jpgだが実態はpng
? pretrained model
? repoのルートに落としてきたzipファイルを展開
? checkpointディレクトリができるはず
? あとは何もいじらなくていい
推論
? python main.py --dataset <dataset_name> --phase test
? repoルート下にresultsディレクトリができ、その中に変換
後のhtmlファイルと画像ができている
[備考] モデル学習
? $ python main.py [opt] -–dataset <dataset_name>
? 多分、GPUメモリが足りないはず
? 通常モデルの想定GPUスペックはV100 32GB
? light版モデルへ変更
? --lightオプションを追加
? モデルの想定GPUスペックは1080Ti 11GB
? それよりお手持ちのGPUメモリが少ない場合は、1層あた
りのチャネルを削減する
? ---ch <int>オプションを追加
? <int>には64以下を設定

More Related Content

【论文绍介】鲍-骋础罢-滨罢