Recycle-GANを試してみた

  • 投稿日:
  • カテゴリ:

はじめに

はじめまして。

京セラコミュニケーションシステム株式会社(KCCS)の上田です。

本日から、KCCS研究部で技術に関する記事の投稿を始めることになりました。

よろしくお願いします。

KCCSでは「AIをどこよりも身近に」というコンセプトを掲げています。

この記事を通じて、AIの使い方や利用シーンを紹介し、AIを身近に感じていただければと考えています。

私個人としては、画像解析のAIについて、最新の技術を使ってみるという内容を中心に書いていく予定です。

今回の記事では、2018年に話題に挙がった「Recycle-GAN」について触れていこうと思います。Deep LearningやGANの仕組みをある程度知っているという人向けに解説していきたいと思います。

Recycle-GAN

概要

「Recycle-GAN」は、カーネギー・メロン大学とFacebook Reality Labの研究者らが発表した技術で、ある人の動きから別の人が自然に動いている動画を生成できたり、花が開花する動画から別の花が開花する動画を生成できたりするDeep Learningの技術です。

発表の記事では、トランプ氏の動きからAIが作成したオバマ氏の動画など、さまざまな検証結果を見ることができます。

技術的には、2つの静止画像の変換を学習する「CycleGAN」に時間軸を学習するネットワークを加えることで、動画に対応したCycleGANとなります。「CycleGAN」は、例えば、しまうまを馬に変換したり、夏の風景を冬の風景に変換したりすることができる技術です。

アルゴリズムの概要

どのようなアルゴリズムで、このような動画生成を実現しているのかを説明したいと思います。

Recycle-GANでは、2種類の画像X,Yを利用して、以下の6つのネットワークで構成されます。次の図では、Xに花火、Yに桜の花びらの画像を使用しています。

20190328_1.png

20190328_2.png

①本物Xを生成Yへ変換するGenerator Gy

②本物Yを生成Xへ変換するGenerator Gx

③Xを偽物(AIによって生成された画像)か本物か判別するDiscriminator Dx

④Yを偽物か本物か判別するDiscriminator Dy

⑤tフレームまでの全ての画像Xからt+1フレームの画像を予測生成する Predictor Px

⑥tフレームまでの全ての画像Yからt+1フレームの画像を予測生成する Predictor Py

GxGyDxDyは、CycleGANと同じネットワーク構成となります。

PxPyは、Recycle-GAN特有のネットワーク構成となります。

それでは、実際にどのように学習されているのかをLossの設計を中心に説明していきます。各ネットワークは、以下の3種類のLoss設計により学習されます。

Adversarial Loss

20190328_3.png

Dyは生成Yをインプットにアウトプット(1 or 0)と偽物(0)の差分が最小化されるように、本物Yをインプットにアウトプットが(1 or 0)と本物(1)の差分が最小化されるように学習します。

Gyは、自身が生成した生成YをインプットにDyから出力されたアウトプット(1 or 0)と偽者(0)の差分が最大化されるように学習します。

GxDxに関しても同じように学習します。

Recurrent Loss

20190328_4.png

Pxは、tフレームまでの全ての本物Xを入力にt+1フレーム目を予測した予測Xを生成します。

Pxは、t+1フレームの本物Xと予測Xの差分を最小化するように学習します。

Pyに関しても同じように学習します。

Recycle Loss

20190328_5.png

Gyで、tフレームまでの全ての本物Xを入力に各フレームの生成Yを生成します。

Pyで、全てのフレームの生成Yからt+1フレーム目を予測した予測Yを生成します。

Gxで、予測Yから生成Xを生成します。

GyPyGxは、この生成Xとt+1フレーム目の本物Xの差分を最小化するように学習します。

XとYを逆にした場合も、GxPxGyに関して、同じように学習します。

実験

「Recycle-GAN」の発表記事では、顔から顔、花から花というように同じタイプの変換がほとんどです。そこで、異なるタイプへの変換でうまくいくケースがあるのか試してみました。具体的には、花火を桜の花びらに変換した動画の生成に挑戦しました。

実験では、カーネギー・メロン大学の研究者が公開しているGitHubのソースを利用させていただきました。

ハイパーパラメータは、以下となります。

図1.png

学習画像は、以下の実際の花火と桜の花びらが散る(イラスト)動画をそれぞれ1秒30フレームで合計800枚を学習しました。

hanabi.gif

sakura.gif

結果

sakura_hanabi.gif

左が本物の花火の動画、右が「Recycle-GAN」で生成した動画となります。

少し粗いですが、花火を桜の花びらに変換できているように見えます。

このような技術が発展すれば、AIで簡単なイラストから複雑な動きをするイラストを作成することができ、イラスト作成ツールの補助機能になりそうですね。

参考文献

Aayush, B., Shugao, M., Deva, R., Yaser, S.: Recycle-GAN: Unsupervised Video Retargeting. (2018)