LoginSignup
10
3

More than 5 years have passed since last update.

Attentive Generative Adversarial Network for Raindrop Removal from A Single Imageを読んだ

Last updated at Posted at 2018-10-22

Rui Qian, Robby T. Tan, Wenhan Yang, Jiajun Su, and Jiaying Liu
CVPR2018
pdf, arXiv, github

どんなもの?

画像からの雨滴除去をGANを用いて行う.
雨滴有り画像から雨滴無し画像を生成する.
image.png

先行研究との差分

  • Generator, Discriminator共に (visual) attentionを使用する.
  • GeneratorのAttentive-Recurrent Networkでattention mapを生成し,Contextual Autoencoderで雨滴除去画像を生成する.

技術や手法のキモ

提案手法の全体図.
Generatorは前半のAttentive-Recurrent Network, 後半のContextual Autoencoderで構成される.
image.png

Generative Network

Attentive-Recurrent Networkでは雨滴の場所やContextual Autoencoderが注目すべき点を表すAttention mapを生成する.
Contextual Autoencoderでは雨滴有り画像とAttention mapを入力として,雨滴無し画像を生成する.

Attentive-Recurrent Network

4つのBlockで構成されており,各Blockは5層(5 x Residual Block)のResNet, LSTM, Convsで構成される.
各Blockへの入力は,入力の雨滴有り画像と前のBlockからのAttention map.

マスクと異なりAttention mapは0~1の値を持つため,雨滴領域内でも値が変化,雨滴外でも値を持ち,雨滴周辺にもAttentionを持つことができる.
image.png
※ Figure 2を加工

ロスはAttention mapとマスクのMSEの和.
$\theta = 0.8$は割引率.

L_{ATT}(\{A\}, M) = \sum_{t=1}^{N}\theta^{N-t}L_{MSE}(A_t, M)

以下のようなAttention map(epoch毎の$A_{N}$)が生成される.
image.png

以下はtime stepごとのAttention map.
stepを重ねるごとに雨滴周辺により強くAttentionがかかっていることが分かる.
image.png

Contextual Autoencoder

Contextual Autoencoderへは,入力の雨滴有り画像とAttention mapが入力される.
16個のconv-relu blockで構成され,雨滴除去画像を生成する.
image.png
※ Figure 2を加工

以下はContextual Autoencoder部分の詳細.
ロスはmulti-scale losses $L_M$とperceptual loss $L_P$の二つが存在.
image.png
$L_M$は異なる層の出力$S_i$とそのスケールにリサイズした真値画像$T_i$のMSEの和.
$\lambda$は重みで0.6, 0.8, 1.0

L_M(\{S\}, \{T\}) = \sum_{i=1}^{M}\lambda_iL_{MSE}(S_i, T_i)

$L_P$はContextual Autoencoderの出力画像$O$と真値画像$T$のVGG特徴のMSE.

L_P(O, T) = L_{MSE}(VGG(O), VGG(T))

Generative Network全体のロスは以下のようにまとめられる.

L_G = 10^{-2}L_{GAN}(O) + L_{ATT}(\{A\}, M) + L_M(\{S\}, \{T\}) + L_P(O, T) \\
L_{GAN}(O) = log(1 - D(O))

Discriminative Network

DiscriminatorはAttentive discriminator.
局所的な部分に注目して判別するために,Attention mapを使用する.
image.png
※ Figure 2を加工

Discriminative Networkのロスは以下で表される.
$D_{map}$はDiscriminative Networkによって2Dマップが生成されるプロセスを表す.
$O$はContextual Autoencoderの出力画像,$R$は雨滴無し画像群からの画像.
$A_N$はAttention map.

L_{map}(O, R, A_N) = L_{MSE}(D_{map}(O), A_N) + L_{MSE}(D_{map}(R), 0) \\
L_D(O, R, A_N) = -log(D(R)) - log(1 - D(O)) + \gamma L_{map}(O, R, A_N)

どうやって有効性を検証したか

Raindrop Dataset

実験には背景が同一の雨滴有り画像と雨滴無し画像のペアが必要.
そのような画像を撮影するために,普通(濡れていない)のレンズと水を吹きかけたレンズを付け替えて画像ペアを作成.
作成したRaindrop Datasetは1119ペアの画像データセット.
image.png

Quantitative Evaluation

PSNRは生成画像の真値画像の画素値が平均的にどれだけ変わったかで評価.
SSIMは生成画像と真値画像間の画素値,コントラスト,構造の変化で評価.
どちらも高い値の方が良.
PSNR, SSIMについて

  • A (autoencoder alone without the attention map)
  • A+D (non-attentive autoencoder plus non- attentive discriminator)
  • A+AD (non-attentive autoencoder plus attentive discriminator).
  • AA+AD (attentive autoencoder plus attentive discriminator, proposed)

提案手法が最も良いスコアを出している.
このことからGenerative, Discriminative network両方でAttention mapを使用する有効性が分かる.
image.png

Qualitative Evaluation

以下は別手法との比較.
提案手法が最も効果的に雨滴除去できていることが分かる.
image.png

以下は提案手法の要素の有無で比較したもの.
(b) -> (e)の順により良い雨滴除去が可能になっている.
定性的にもAttention mapを使用する有効性が分かる
image.png

より細かく生成画像を比較すると,ノイズが少なく,背景の構造を維持した雨滴除去ができていることが分かる.
image.png

Application

Google Vision API (https://cloud.google.com/vision/) を使った比較.
オリジナルの画像と雨滴除去後の画像を入力し,認識結果で比較する.
雨滴除去後の画像の方が認識結果が良く,また多くの物体を認識できている.
image.png

以下はtest dataset全ての画像による結果をまとめたもの.
雨滴除去後の方がscoreが高く,多くの物体を認識できる.
image.png

議論はあるか

  • Single-image basedの画像からの雨滴除去手法を提案
  • Generative NetworkはAttention mapを生成し,それに基づき画像を生成する
  • Discriminative NetworkでもAttention mapを用いて画像を判別する

次に読むべき論文

ロゴを生成するGAN
Logo Synthesis and Manipulation
with Clustered Generative Adversarial Networks

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3