This page is intended for users in Japan. Go to the page for users in United States.

pix2pixの紹介

みなさん、はじめまして。
クロスコンパスのインターンで働いている高澤です。

今回は画像生成の分野で注目されているpix2pixについて、
「Image-to-Image Translation with Conditional Adversarial Networks」
という論文を参考に紹介していきたいと思います。

pix2pixとは、GANを利用した画像生成アルゴリズムの一種で、2つのペアの画像から画像間の関係を学習することで、1枚の画像からその関係を考慮した補間をしてペアの画像を生成する技術です。

百聞は一見にしかずということで、以下にpix2pixによる実験結果例を紹介します。
本ブログの画像は,https://arxiv.org/pdf/1611.07004.pdf より引用しております。

ラベルから道路や建物の外観、白黒からカラー、航空写真から地図、昼から夜、フレームから写真などなど、例を挙げたらキリがありません。とにかく汎用性が高いのがpix2pixの特徴といえるのではないでしょうか。

これらの技術の基盤にはGANというアルゴリズムが用いられており、それに加えてU-NetとPatchGANという技術を組み合わせることで画像生成の精度を向上させています。

では、それらの技術について説明していきたいと思います。


まずはGAN。

GANとは簡単に説明すると、Generator(生成モデル)とDiscriminator(監視モデル)の2つのモデルが敵対することで精度を高めていくモデルです(敵対生成モデルというそうです)。

Generatorは訓練データで学習したものに近いデータを生成し、その一方でDiscriminatorは入力データがGeneratorによって生成されたデータなのか真値データなのかを判断します。つまり、GeneratorはDiscriminatorを騙す働きをし、DiscriminatorはGeneratorに騙されないような働きをします[1]。
(詳しくはhttps://www.wantedly.com/companies/xcompass/post_articles/66674にて)

これに加えて、pix2pixに用いられるGANにはcGAN(条件付きGAN)が用いられます。イメージ的にはGANのDiscriminatorは生成データなのか真値データなのかを判断することに対し、cGANのDiscriminatorは正解ペアなのか不正解ペアなのかを判断しているといった感じです[2](下図参考)。

次にU-Net。

これはCNNにおいて、Encoder-decoderのように全ての情報をボトルネックまでダウンサンプリングさせるのではなく、共通の特徴量はレイヤー間をスキップさせてボトルネックを回避させる方法です[3]。

pix2pixでは入力と出力の表面上の外見は異なりますが、基本構造は一緒のため、このような方法で共通の特徴量におけるデータ欠損を回避させます。


最後にPatachGAN。

これはcGANモデルにL1モデルを組み込むことで、大雑把な画像をL1で捉え、cGANがその詳細を捉えるという方法です。L1による画像生成だけでは細部がぼやけ、cGANのみの画像生成だけではDiscriminatorを騙すための違和感が生じてしまうので、これらを組み合わせることで互いの得意な作業を使い分け、精度を向上させます[4]。


以上のことをまとめると最終的なモデルの式は以下のようになります。

これに加えてCNNではEncoder-decoderではなく、前述のU-Netを用います。
では、さっそくですが結果を見ていきましょう。


まずはEncoder-decoderとU-Netの比較から。

下図よりEncoder-decoderだと写真の基本構造がぼやけてしまっている一方で、U-Netを用いることで写真の基本構造を維持できていることがわかります。やはりEncoder-decoderでは共通の特徴量が欠損しています。


次にL1/cGAN/L1+cGANの比較。

下図からL1だけではかなり画像がぼやけていていることがわかります。またcGANだけのときも、一見上手く生成できているように思えますが、よく見てみると一部違和感のある部分があります。こうして横並びで比較してみるとL1+cGANが一番上手く生成できていることがよくわかります。


最後にこのpix2pixモデルの特徴を捉えた一実験の説明。

下図は地図と航空写真間の生成結果です。pix2pixでは地図から航空写真のような一方向ではなく、両方向に生成可能という点で汎用性がかなり高いと考えられます。また、この実験では学習時のPatchサイズと実験時のPatchサイズを変えており、それでも尚このような精度の高い結果が生じています。一方で、このモデルは地図から航空写真のような単純な画像から複雑な画像の生成は得意なのですが、航空写真から地図のような複雑な画像から単純な画像の生成ではL1に劣ることもあります。


いかがでしたでしょうか。
この記事を読んでpix2pixに関する理解が少しでも深まっていただけたら幸いです。

最後に、宣伝になりますが、新しい論文を読みながら、知識として蓄えていき、知識のアウトプットを行っていく方を募集しています。
https://www.wantedly.com/projects/105313
特に、文系理系は問わず、論文を読み、調査する力も含めて付けていけると思いますので、ぜひご応募ください。

また、弊社では中途採用も積極的に行っております。
https://www.wantedly.com/projects/103913
または
recruit@xcompass.com
にてご連絡ください。
皆様のご応募お待ちしております。


参考文献
[1] I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D.Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Generative adversarial nets. In NIPS, 2014.
[2] M. Mirza and S. Osindero. Conditional generative adversarial nets. arXiv preprint arXiv:1411.1784, 2014.
[3] O. Ronneberger, P. Fischer, and T. Brox. U-net: Convolutional networks for biomedical image segmentation. In MICCAI, pages 234–241. Springer, 2015.
[4] D. Pathak, P. Krahenbuhl, J. Donahue, T. Darrell, and A. A. Efros. Context encoders: Feature learning by inpainting.CVPR,2016

株式会社クロスコンパスでは一緒に働く仲間を募集しています
Anonymous
Picture?height=40&width=40
Picture?height=40&width=40
Picture?height=40&width=40
Picture?height=40&width=40
4 いいね!
Anonymous
Picture?height=40&width=40
Picture?height=40&width=40
Picture?height=40&width=40
Picture?height=40&width=40
4 いいね!

今週のランキング

ランキングをみる

Page top icon