ディープラーニング(CycleGAN)を使ってフォートナイトをPUBGに変える

画像スタイルの変換のためのCycleGANの理解とゲームのグラフィックmodに応用することの探求

著者のChintan Trivedi氏は、アメリカの調査会社Creidt2Bで活躍するデータサイエンティストです。この記事では、CycleGANを使ってフォートナイトのグラフィックをPUBGに似たものとする試みが解説されています。

CycleGANとはGAN(Generative adversarial networks:敵対的生成ネットワーク)を複数活用した機械学習の一種で、入力データに任意の特徴を付加したデータを出力できるというものです。

例えば、ウマの画像に縞模様を付加してシマウマの画像を生成することができます。こうしたCycleGANを活用すると、カートゥーン調のゲームグラフィックであるフォートナイトのプレイ画面を、リアリスティックなグラフィックであるPUBGのそれに変換することができます。

そして、フォートナイトの応用事例をさらに一般化すれば、ゲームグラフィックをプレイヤーの好きなものに変換するグラフィックmodをゲーム開発者に頼ることなく作ることが可能となります。こうしたmodの作成は、紛れもなくCycleGANのビジネス的活用の一事例と見ることができるでしょう。

フォートナイトをPUBGのビジュアルで再創造するニューラルネットワークのひとつの試み

もしあなたがゲーマーならば、ふたつの極めて有名なバトルロイヤルゲームの名前を聞いたことがあるに違いない。そのふたつとは、フォートナイトとPUBGだ。このふたつは、小さな島で100人のプレイヤーが最後の一人になるまで戦うという非常によく似たゲームである。わたしはフォートナイトをプレイするのが好きなのだが、グラフィックに関してはフォートナイトよりリアルなPUBGの方を気に入っている。こうした私のゲームに関する嗜好に端を発して、次のようなアイデアを思い付いた。ゲーム開発者がプレイヤーに提供するオプション設定に頼ることなく、ゲームの視覚効果を自分の好みに変えられるようなグラフィックmod※を作ることはできないだろうか。もしPUBGのゲームビジュアルでフォートナイトの画面を描画することができるmodがあったらどうだろうか。

※mod(modification「変更する」を意味する英単語に由来。MODとも表記される)とは、主としてPCゲームにおける改造データのこと。オリジナルのPCゲームのグラフィックやステージ設定を変えるために作成される。1990年代にFPSの熱心なファンがmodを作成したのが始まりであり、現在ではmod作成ツールを公式に配布しているPCゲームもある。

こうした事情からわたしはディープランニングが自分のアイデアを実現する助けとなるかどうか検討することを決意し、画像スタイルの変換にうってつけであるCycleGANと呼ばれるニューラルネットワークを見つけ出したのだ。この記事ではCycleGANがどのように動作し、フォートナイトのビジュアルをPUBGのそれに変換するためにCycleGANをどう訓練するかについて解説したい。

カートゥーン調のビジュアルであるフォートナイト(左)とよりリアリスティックなグラフィックであるPUBG(右)

CycleGANとは?

CycleGANとは、異なる画像スタイルの領域を横断的に変換するのに使われる敵対的生成ネットワークの一種である。CycleGANは、フォートナイトのゲームグラフィックを違う領域、つまりPUBGのそれに変換するといった一方の画像スタイルを他方のそれに変換するために訓練することができる。この画像スタイルの変換処理は教師なしで実行される。つまり、一方の領域に属する画像を他方の領域に属する画像に対応させるような一対一の写像関係は存在しない。

Githubに掲載されたCycleGANの実行結果。詳細はこちらを参照

CycleGANは変換しようとするオリジナルな領域に属する画像群のなかにあるオブジェクトを理解して、変換対象となるターゲット領域に属する画像群のなかにあるオブジェクトの見た目上の特徴に合致させるのに不可欠な変換処理をオリジナル画像のオブジェクトに適用する。こうしたCycleGANのアルゴリズムを実行するオリジナル・ソースコードの手引書では、ウマをシマウマに、リンゴをオレンジに、写真を絵画に変換するという驚くべき結果が出力されるように訓練された事例を解説している。

・・・

CycleGANはどのように動作する?

CycleGANがどのように動作するかについて、フォートナイトを入力領域、PUBGをターゲット領域にした事例を引き合いにして理解できるように説明してみよう。まずフォートナイトとPUBGの大量のスクリーンショットを使って、それぞれのゲームに関する敵対的生成ネットワークの組を訓練する。こうしてできたふたつの敵対的生成ネットワークは、ひとつはフォートナイトの画像スタイルについて学習しており、もうひとつはPUBGのそれについて学習している。そして、このふたつのニューラルネットワークが円環的につながるように同時に訓練するのだ。そうすると、ふたつのニューラルネットワークはゲーム内の同じオブジェクトに関して関連性を作ることを学習して、ゲームビジュアルを適切に変換できるようになるのだ。以下の概略図は、説明事例におけるふたつのニューラルネットワークの円環的設定に関する一般的なアーキテクチャを示している。

「本物のフォートナイト」から「フェイクPUBG」を生成して、さらに「再構成されたフォートナイト」に回帰するサイクル

まずフォートナイトからオリジナルとなる画像を採取するところから、ニューラルネットワークの訓練を始めることになる。そして、生成ネットワークと識別ネットワークから成るふたつのディープ・ネットワークを訓練する。識別ネットワークはフォートナイトから採取した本物の画像と偽物の画像を区別することを徐々に学習していく。生成ネットワークは、(フォートナイトという)オリジナルな領域からから採取した画像を入力として、PUBGから採取したスクリーンショットから成る訓練データセットからランダムに選んだ画像を使って、ターゲットとなる領域(つまりPUBG)に属する画像に変換するように訓練する。

以上のような画像変換が確実に有意義なものにするために、画像を再構成する条件を強化する。この条件強化とは、(変換された画像が属する)フェイク領域からオリジナルの領域に属する画像を再構成するもう一組の生成ネットワークと識別ネットワークを同時に訓練することを意味する。(フェイク領域からオリジナル領域に変換する)この再構成はオリジナルな画像に似たものをもたらすに違いないのだが、この再構成を実現する条件を強化するわけである。この条件強化によって、再構成された画像を生成するために必要な訓練課程において(オリジナル画像から再構成された画像に)回帰する際に生じるロスを減らせるのである。こうしたオリジナル画像から再構成された画像を生成する一連の過程は、隠れ層における中間的な処理ステップを見ることはないがターゲット領域における画像を完全に見ることができるオートエンコーダ※に似ている。

※オートエンコーダとは、入力データの特徴を少ないニューロンで抽出して、その抽出された特徴を用いて入力データと同じようなデータを出力するニューラルネットワークの一種である。出力データが入力データと同じようになることが想定されているため、教師なし学習に分類される。入力データの情報を縮減する処理は、隠れ層と呼ばれる箇所で行われる。
オリジナルのフォートナイトをPUBGのようなゲームグラフィックのフォートナイトに変換するCycleGANがオートエンコーダに似ていると言われるのは、CycleGANの出力がオートエンコーダのそれのように入力データの特徴を保持しているからである。もっとも、CycleGANの出力は入力データとは同じようにならず、変換時に使う入力データ(この記事の場合ではフェイクPUBG)の特徴も反映されている。

すでに引用したCycleGANの概略図におけるF2P生成ネットワークの模式図

以上のような(オリジナルなフォートナイトからPUGBのグラフィックに似ている再構成されたフォートナイトを生成する「F2P」)生成ネットワークは、主要な3つの畳み込み層から成る構成を使っていると言える。最初の層は、フォートナイトのスクリーンショットをエンコーディングする低次元の隠れ層である。このエンコーディングが、先ほどと同じ隠れ層において(フェイク)PUBGを表現するエンコーディングに変換される。そして、デコーダーが変換されたエンコーディングから出力画像を構成することで、PUBGのように見えるフォートナイトの画像が得られるのである。

PUBGのように見えるフォートナイトを生成する訓練課程においては、わたしはひとつの制限に直面した。その制限とは、GPUメモリの限界という理由により256 x 256ピクセルサイズの画像のみ生成可能だったのだ。この制限が画像生成の結果に与える影響は大きいものだが、もしあなたが8GB以上のビデオメモリーを実装しているならば、512 x 512ピクセル以上の画像の生成に挑戦できるだろう。もしこうした挑戦を実行したならば、ぜひこのリンクを使ってわたしに知らせて欲しい。

結論

12時間の訓練を実行したCycleGANによる画像生成は、非常に望ましい結果となった。この生成ネットワークを使ってフォートナイトの空と樹木、そして草原の色をうまくPUBGのそれに変換できた。鮮やか過ぎるフォートナイトの色調をよりリアリスティックな色調のPUBGのそれに変えることができたのだ。

フォートナイトの鮮やかすぎる青空の青みは弱められ、カートゥーン調に描画された草原や樹木の緑色はPUBGにおけるそれに近づいた。さらにフォートナイトの画面下部にあるヘルスメーターも、使用武器と弾丸数がいっしょに表示されるPUBGのそれに置き換えるように学習されたのだ!フォートナイトとPUBGというふたつのゲームグラフィック領域を関連づけるリンクで不可能なことは、プレイヤーの外見の変換である。というのも、プレイヤーの外見を構成する画素が描く輪郭にはある種の不鮮明さがあるからだ。結局のところ、件の生成ネットワークはふたつの領域において明瞭にオブジェクトを特定できた時にうまく動作し、外見を変換するのだ。

変換結果をより長く見るには、以下に埋め込んだ動画を視聴してほしい。そして、もし見たものを気に入ってくれたのなら、ここをクリックしてわたしのYouTubeチャンネルを忘れずに登録してほしい。

ゲームのグラフィックmodへの応用

フォートナイトのグラフィックをPUBGのそれに変換した結果はわたしから見ると非常にうまくいったように見えるのだが、その一方で実際にPUBGのグラフィックでフォートナイトをプレイ可能となるまでには、まだまだ長い道のりが待っていることは明らかだ。しかし、グラフィックを変換する生成ネットワークを使ってリアルタイムにより高画質な画像を生成できるようになれば、ゲーム開発者に頼ることなくゲームのためのグラフィックmodエンジンを作ることが未来には可能となるだろう。そうした未来においては、自分が好きなゲームのビジュアルスタイルを選んで、そのビジュアルスタイルをほかのゲームに応用することができるのだ!

・・・

わたしは、この記事で論じたのと同じ技術を用い、ゲームビジュアルを実物を撮影した画像に変換することによって、ゲームをフォトリアルに表現する方法を探求しようと思っている。もしあなたがわたしの探求を追いかけたいと思ったならば、どうかわたしのMedium記事あるいはわたしのYouTubeチャンネルをフォローしてほしい。読んでくれてありがとう!

原文
『Turning Fortnite into PUBG with Deep Learning (CycleGAN)』

著者
Chintan Trivedi

翻訳
吉本幸記

編集
おざけん

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する