IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社スクウェア・エニックスの特許一覧

特開2022-170757スタイルトランスファープログラムおよびスタイルトランスファー方法
<>
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図1
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図2
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図3
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図4
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図5
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図6
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図7
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図8
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図9
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図10
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図11
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図12
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図13
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図14
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図15
  • 特開-スタイルトランスファープログラムおよびスタイルトランスファー方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022170757
(43)【公開日】2022-11-11
(54)【発明の名称】スタイルトランスファープログラムおよびスタイルトランスファー方法
(51)【国際特許分類】
   G06T 11/80 20060101AFI20221104BHJP
   A63F 13/52 20140101ALI20221104BHJP
   G06T 1/00 20060101ALI20221104BHJP
【FI】
G06T11/80 A
A63F13/52
G06T1/00 500B
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021076919
(22)【出願日】2021-04-29
(71)【出願人】
【識別番号】308033283
【氏名又は名称】株式会社スクウェア・エニックス
(74)【代理人】
【識別番号】100155402
【弁理士】
【氏名又は名称】松田 真
(72)【発明者】
【氏名】ハンディ エドガー
(72)【発明者】
【氏名】三宅 陽一郎
(72)【発明者】
【氏名】坂田 新平
【テーマコード(参考)】
5B050
5B057
【Fターム(参考)】
5B050AA10
5B050BA11
5B050BA12
5B050BA13
5B050CA08
5B050DA04
5B050EA14
5B050FA02
5B050FA05
5B057CA08
5B057CA12
5B057CA16
5B057CA20
5B057CB08
5B057CB12
5B057CB16
5B057CB20
5B057CC03
5B057CE08
5B057CE20
(57)【要約】
【課題】ユーザに提供する画像の表現力を増大させる。
【解決手段】スタイルトランスファープログラムが、サーバに、レンダリングに用いられるバッファからバッファデータを取得する取得機能と、前記バッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する、スタイルトランスファー機能と、スタイルトランスファーが適用された後のデータを出力する出力機能とを実現させる。
【選択図】図3

【特許請求の範囲】
【請求項1】
サーバに、
レンダリングに用いられるバッファからバッファデータを取得する取得機能と、
前記バッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する、スタイルトランスファー機能と、
スタイルトランスファーが適用された後のデータを出力する出力機能と、
を実現させるためのスタイルトランスファープログラム。
【請求項2】
前記バッファは3Dバッファである、
請求項1に記載のスタイルトランスファープログラム。
【請求項3】
前記バッファは中間バッファである、
請求項1に記載のスタイルトランスファープログラム。
【請求項4】
前記サーバに、
所定の条件に基づいて、前記1以上のスタイル画像を選択する、スタイル画像選択機能を
実現させるための請求項1から請求項3のうちいずれか一項に記載のスタイルトランスファープログラム。
【請求項5】
前記スタイルトランスファー機能では、前記バッファデータに対して、複数のスタイル画像に基づいたスタイルトランスファーを適用する機能を実現させ、
前記スタイルトランスファーの適用は、ニューラルネットワークの所定の層において複数のスタイル画像に基づくパラメータを混入し、かつ、前記複数のスタイル画像に基づいて定義された最適化関数に基づいて最適化処理を行って得られた学習済みのニューラルネットワークに、前記バッファデータを入力することにより行われる、
請求項1から請求項4のうちいずれか一項に記載のスタイルトランスファープログラム。
【請求項6】
前記最適化処理は、前記複数のスタイル画像から選ばれた任意の二つのスタイル画像に基づいて定義された第1の最適化関数を用いて最適化処理を行う、第1の最適化処理と、
前記複数のスタイル画像おける一つのスタイル画像に基づいて定義された第2の最適化関数を用いて最適化処理を行う、第2の最適化処理とを含む、
請求項5に記載のスタイルトランスファープログラム。
【請求項7】
請求項1から請求項6のうちいずれか一項に記載のスタイルトランスファープログラムがインストールされたサーバ。
【請求項8】
コンピュータによるスタイルトランスファー方法であって、
レンダリングに用いられるバッファからバッファデータを取得する取得処理と、
前記バッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する、スタイルトランスファー処理と、
スタイルトランスファーが適用された後のデータを出力する出力処理とを含む、
スタイルトランスファー方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態の少なくとも1つは、スタイルトランスファープログラムおよびスタイルトランスファー方法に関する。
【背景技術】
【0002】
写真画像をゴッホ風やモネ風などの所定のスタイルに応じた画像へ変換する、スタイルトランスファーの技術が知られている。
【0003】
特許文献1には、スタイル変換(style transfer)についての記載がなされている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-187583号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、ビデオゲーム等において、画像のレンダリングに用いられるバッファは複数存在する。このバッファ単位でスタイル変換を行うことができれば、ユーザに提供する画像の表現力が増大する。
【0006】
本発明の少なくとも一つの実施形態の目的は、上記課題を解決し、ユーザに提供する画像の表現力を増大させることである。
【課題を解決するための手段】
【0007】
非限定的な観点によると、本発明の一実施形態に係るスタイルトランスファープログラムは、サーバに、レンダリングに用いられるバッファからバッファデータを取得する取得機能と、前記バッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する、スタイルトランスファー機能と、スタイルトランスファーが適用された後のデータを出力する出力機能と、を実現させるためのものである。
【0008】
非限定的な観点によると、本発明の一実施形態に係るスタイルトランスファー方法は、コンピュータによるスタイルトランスファー方法であって、レンダリングに用いられるバッファからバッファデータを取得する取得処理と、前記バッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する、スタイルトランスファー処理と、スタイルトランスファーが適用された後のデータを出力する出力処理とを含むものである。
【発明の効果】
【0009】
本願の各実施形態により1または2以上の不足が解決される。
【図面の簡単な説明】
【0010】
図1】本発明の実施形態の少なくとも一つに対応するビデオゲーム処理システムの構成の例を示すブロック図である。
図2】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図3】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
図4】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図5】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
図6】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図7】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
図8】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図9】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
図10】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図11】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
図12】本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーに用いられるニューラルネットワークの構造例を示す概念図である。
図13】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図14】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
図15】本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーに用いられるニューラルネットワークの構造例を示す概念図である。
図16】本発明の実施形態の少なくとも一つに対応する最適化処理の処理例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローやシーケンスを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
【0012】
[第1の実施形態]
本発明の第1の実施形態の概要について説明をする。以下では、第1の実施形態として、サーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。
【0013】
図1は、本発明の実施形態の少なくとも一つに対応するビデオゲーム処理システムの構成の例を示すブロック図である。ビデオゲーム処理システム100は、ビデオゲーム処理サーバ10(サーバ10)と、ビデオゲーム処理システム100のユーザ(ゲームのプレイヤ等)が使用するユーザ端末20とを備える。ユーザ端末20A、20B、および20Cはそれぞれ、ユーザ端末20の一例である。ビデオゲーム処理システム100の構成はこれに限定されない。例えば、ビデオゲーム処理システム100は、単一のユーザ端末を複数のユーザが使用する構成であってよい。ビデオゲーム処理システム100が複数のサーバを備えてもよい。
【0014】
サーバ10とユーザ端末20は、それぞれインターネットなどの通信ネットワーク30に通信可能に接続されている。通信ネットワーク30とサーバ10との間の接続、および通信ネットワーク30とユーザ端末20との間の接続は有線接続であっても無線接続であってもよい。例えば、ユーザ端末20は、通信事業者が管理する基地局と無線通信回線によるデータ通信を行うことにより、通信ネットワーク30と接続してよい。
【0015】
ビデオゲーム処理システム100は、サーバ10とユーザ端末20とを備えることにより、ユーザの操作に応じて各種処理を実行するための各種機能を実現する。
【0016】
サーバ10はビデオゲームの進行を制御する。サーバ10は、ビデオゲーム処理システム100の管理者によって管理され、複数のユーザ端末20に対して各種処理に関する情報を提供するための各種機能を有する。
【0017】
サーバ10は、プロセッサ11と、メモリ12と、記憶装置13とを備える。プロセッサ11は、例えば、各種の演算および制御を行うCPU(Central Processing Unit)等の中央処理装置である。また、サーバ10がGPU(Graphics Processing Unit)を備える場合には、各種の演算および制御の一部をGPUによって行うようにしてもよい。サーバ10は、メモリ12に読み出したデータを用いて各種の情報処理をプロセッサ11にて実行し、得られた処理結果を必要に応じて記憶装置13に記憶させる。
【0018】
記憶装置13は、各種情報を格納する記憶媒体としての機能を有する。記憶装置13の構成は特に限定されないが、ユーザ端末20にかかる処理負荷を軽減させるといった観点から、ビデオゲーム処理システム100にて行われる制御に必要な各種情報を全て記憶可能な構成であることが好ましい。このような例には、HDDやSSDがある。ただし、各種情報を記憶する記憶装置は、サーバ10がアクセス可能な状態で記憶領域を備えていればよく、例えば専用の記憶領域をサーバ10の外部に有する構成とされていてもよい。サーバ10は、ビデオゲーム処理システム100の管理者等によって管理され、複数のユーザ端末20に対して各種処理に関する情報を提供するための各種機能を有する。サーバ10は、ゲーム画像をレンダリング可能なゲームサーバなどの情報処理装置によって構成される。
【0019】
ユーザ端末20はユーザによって管理され、ネットワーク配信型のゲームを行うことが可能な通信端末によって構成される。ネットワーク配信型のゲームを行うことが可能な通信端末の例として、例えば携帯電話端末、PDA(Personal Digital Assistant)、携帯型ゲーム装置、VRゴーグル、ARグラス、スマートグラス、所謂ウェアラブルデバイスなどがある。ビデオゲーム処理システム100が含み得るユーザ端末の構成はこれらに限定されず、ユーザが合成画像を認識し得る構成であればよい。ユーザ端末の構成の他の例には、各種通信端末を組み合わせたものやパーソナルコンピュータ、据置型ゲーム装置がある。
【0020】
ユーザ端末20は、通信ネットワーク30に接続し、サーバ10との通信を行うことにより各種処理を実行するためのハードウェア(例えば、座標に応じたブラウザ画面やゲーム画面を表示する表示装置など)およびソフトウェアを備える。なお、複数のユーザ端末20のそれぞれは、サーバ10を介さずに互いに直接通信を行うこともできる構成とされていてもよい。
【0021】
ユーザ端末20には表示装置が内蔵されていてよい。また、ユーザ端末20に対して、表示装置が無線接続あるいは有線接続されていてもよい。なお、表示装置は極めて一般的な構成であるため、ここでは図示を省略している。ゲーム画面は例えば、前述の合成画像として表示装置によって表示され、ユーザがこの合成画像を認識する。ゲーム画面は例えば、ユーザ端末が備える表示装置の一例であるディスプレイや、ユーザ端末と接続された表示装置の一例であるディスプレイに表示される。表示装置には、例えば、ホログラム表示が可能なホログラムディスプレイ装置や、画像(ゲーム画面を含む)をスクリーン等に映写する映写装置なども含まれる。
【0022】
ユーザ端末20は、プロセッサ21と、メモリ22と、記憶装置23とを備える。プロセッサ21は、例えば、各種の演算および制御を行うCPU(Central Processing Unit)等の中央処理装置である。また、ユーザ端末20がGPU(Graphics Processing Unit)を備える場合には、各種の演算および制御の一部をGPUによって行うようにしてもよい。ユーザ端末20は、メモリ22に読み出したデータを用いて各種の情報処理をプロセッサ21にて実行し、得られた処理結果を必要に応じて記憶装置23に記憶させる。記憶装置23は、各種情報を格納する記憶媒体としての機能を有する。
【0023】
ユーザ端末20には入力装置が内蔵されていてよい。また、ユーザ端末20に対して入力装置が無線接続あるいは有線接続されていてもよい。入力装置はユーザによる操作入力を受け付ける。ユーザによる操作入力に応じて、サーバ10が備えるプロセッサまたはユーザ端末20が備えるプロセッサが、各種の制御処理を実行する。入力装置の例として、携帯電話端末が備えるタッチパネル画面、ARグラスに無線接続あるいは有線接続されたコントローラなどがある。また、ユーザ端末20が備えるカメラも入力装置に相当し得る。ユーザはカメラの前で手を動かす等のジェスチャーにより、操作入力を行う(ジェスチャー入力)。
【0024】
その他、ユーザ端末20はスピーカ等の他の出力装置を備えていてよい。他の出力装置は、ユーザに対して音声やその他の各種の情報を出力する。
【0025】
図2は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Aは、取得部101と、スタイルトランスファー部102と、出力部103とを少なくとも備える。サーバ10Aが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101と、スタイルトランスファー部102と、出力部103とを機能的に実現する。
【0026】
取得部101は、レンダリングに用いられるバッファからバッファデータを取得する機能を有する。スタイルトランスファー部102は、バッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する機能を有する。出力部103は、スタイルトランスファーが適用された後のデータを出力する機能を有する。
【0027】
次に、本発明の第1の実施形態におけるプログラム実行処理について説明する。図3は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
【0028】
取得部101は、レンダリングに用いられるバッファからバッファデータを取得する(St11)。スタイルトランスファー部102は、取得したバッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する(St12)。出力部103は、スタイルトランスファーが適用された後のデータを出力する(St13)。
【0029】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。
【0030】
レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0031】
スタイルトランスファー部102は、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。スタイルトランスファー部102がニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。
【0032】
出力部103によるスタイルトランスファー適用後のデータの出力先は、取得部101がバッファデータを取得したバッファとは異なるバッファであってよい。より特定的には、前記取得部101がバッファデータを取得したバッファを第1バッファとした場合、スタイルトランスファーの適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0033】
その他、出力部103によるスタイルトランスファーの適用後のデータの出力先は、サーバ10Aが備える出力装置であってよく、サーバ10Aから見た外部装置であってもよい。
【0034】
第1の実施形態の一側面として、レンダリングに用いられるバッファ単位でスタイルトランスファーを適用することができる。これにより、ユーザに提供する画像による表現力を増大させることができる。
【0035】
第1の実施形態の一側面として、取得部101およびスタイルトランスファー部102などを、上述のバッファの操作が可能なゲームエンジンに組み込むことにより、従来用いられていた写真などのデータよりもリッチな情報に基づいてスタイルトランスファーを行うことができる。例えば、ゲームエンジンがゲーム画面に表示させる特定のオブジェクトを認識して、特定のオブジェクトに対応するバッファに対してのみスタイルトランスファーを適用することができるようになる。
【0036】
第1の実施形態の一側面として、バッファに対してスタイルトランスファーを適用する構成であれば、バッファ毎に適用するスタイルトランスファーの種類を適宜選択することができるので、多彩なCG表現が可能となる。例えば、第1バッファに対してはゴッホ風にスタイルを変換するスタイルトランスファーを適用し、第2バッファに対してはゴーギャン風にスタイルを変換するスタイルトランスファーを適用する、などの事が新たに可能になる。
【0037】
第1の実施形態の一側面として、レンダリングに用いられるバッファに対してスタイルトランスファーを適用することにより、ゲーム画像のスタイルをリアルタイムに変化させることができる。
【0038】
[第2の実施形態]
本発明の第2の実施形態の概要について説明をする。以下では、第2の実施形態として、サーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。なお、サーバは、図1に記載のビデオゲーム処理システム100が備えるサーバ10であってよい。
【0039】
図4は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Bは、取得部101Bと、スタイルトランスファー部102と、出力部103とを少なくとも備える。サーバ10Bが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101Bと、スタイルトランスファー部102と、出力部103とを機能的に実現する。
【0040】
取得部101Bは、レンダリングに用いられる3Dバッファからバッファデータを取得する機能を有する。スタイルトランスファー部102は、バッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する機能を有する。出力部103は、スタイルトランスファーが適用された後のデータを出力する機能を有する。
【0041】
次に、本発明の第2の実施形態におけるプログラム実行処理について説明する。図5は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
【0042】
取得部101Bは、レンダリングに用いられる3Dバッファからバッファデータを取得する(St21)。スタイルトランスファー部102は、取得したバッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する(St22)。出力部103は、スタイルトランスファーが適用された後のデータを出力する(St23)。
【0043】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。
【0044】
レンダリングに用いられる3Dバッファとは、例えば3次元空間を表現可能なデータを格納するバッファを意味する。
【0045】
スタイルトランスファー部102および出力部103については、第1の実施形態と同様であるため、詳しい説明を省略する。
【0046】
第2の実施形態の一側面として、レンダリングに用いられる3Dバッファに対してスタイルトランスファーを適用することができる。これにより、ユーザに対して表示される3DCGのマップ全体のスタイルを、ゲームにおける各種の条件などに基づいて変換することができる。
【0047】
[第3の実施形態]
本発明の第3の実施形態の概要について説明をする。以下では、第3の実施形態として、サーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。
【0048】
図6は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Cは、取得部101Cと、スタイルトランスファー部102と、出力部103とを少なくとも備える。サーバ10Cが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101Cと、スタイルトランスファー部102と、出力部103とを機能的に実現する。
【0049】
取得部101Cは、レンダリングに用いられる中間バッファからバッファデータを取得する機能を有する。スタイルトランスファー部102は、取得したバッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する機能を有する。出力部103は、スタイルトランスファーが適用された後のデータを出力する機能を有する。
【0050】
次に、本発明の第3の実施形態におけるプログラム実行処理について説明する。図7は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
【0051】
取得部101Cは、レンダリングに用いられる中間バッファからバッファデータを取得する(St31)。スタイルトランスファー部102は、取得したバッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する(St32)。出力部103は、スタイルトランスファーが適用された後のデータを出力する(St33)。
【0052】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。
【0053】
レンダリングに用いられる中間バッファとは、レンダリング処理の途中で用いられるバッファである。中間バッファの一例として、RGBバッファ、BaseColorバッファ、Metallicバッファ、Specularバッファ、Roughnessバッファ、Normalバッファなどがある。これらのバッファは、最終的に出力されるCG画像が格納される最終バッファより前に配置されたバッファであり、最終バッファとは異なるバッファである。レンダリングに用いられる中間バッファは、列挙された前述のバッファには限られない。
【0054】
スタイルトランスファー部102および出力部103については、第1の実施形態と同様であるため、詳しい説明を省略する。
【0055】
第3の実施形態の一側面として、レンダリングに用いられる中間バッファに格納されたデータに対してスタイルトランスファーを適用することにより、スタイルトランスファーが適用されたデータを、中間バッファの出力として得ることができる。カラー情報や、光の反射情報などの各種の観点で切り出された、レンダリングの途中段階における一部のデータに対してスタイルトランスファーを適用することができるので、きめ細やかなスタイル変換やスタイル制御を行うことができるようになる。また、スタイトランスファーが適用されたデータを用いて最終画像を生成することにより、ユーザに提供する最終画像による表現力をさらに増大させることができる。
【0056】
[第4の実施形態]
本発明の第4の実施形態の概要について説明をする。以下では、第4の実施形態として、サーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。
【0057】
図8は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Dは、取得部101と、スタイルトランスファー部102Dと、出力部103とを少なくとも備える。サーバ10Dが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101と、スタイルトランスファー部102Dと、出力部103とを機能的に実現する。
【0058】
取得部101は、レンダリングに用いられるバッファからバッファデータを取得する機能を有する。スタイルトランスファー部102Dは、取得したバッファデータに対して、複数のスタイル画像に基づいたスタイルトランスファーを適用する機能を有する。スタイルトランスファーの適用は、ニューラルネットワークの所定の層において複数のスタイル画像に基づくパラメータを混入し、かつ、複数のスタイル画像に基づいて定義された最適化関数に基づいて最適化処理を行って得られた学習済みのニューラルネットワークに、前記バッファデータを入力することにより行われる。出力部103は、スタイルトランスファーが適用された後のデータを出力する機能を有する。
【0059】
次に、本発明の第4の実施形態におけるプログラム実行処理について説明する。図9は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
【0060】
取得部101は、レンダリングに用いられるバッファからバッファデータを取得する(St41)。スタイルトランスファー部102Dは、取得したバッファデータに対して、複数のスタイル画像に基づいたスタイルトランスファーを適用する(St42)。出力部103は、スタイルトランスファーが適用された後のデータを出力する(St43)。
【0061】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。
【0062】
レンダリングに用いられるバッファは、第1~第3の実施形態において説明したバッファのうちいずれかであってよい。
【0063】
スタイルトランスファー部102Dは、取得したバッファデータに対して、複数のスタイル画像に基づいたスタイルトランスファーを適用する機能を有する。スタイルトランスファー部102Dは、複数のスタイルをブレンドしたスタイルトランスファーを行う。
【0064】
スタイルトランスファー部102Dは、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。
【0065】
第4の実施形態においては、複数のスタイルをブレンドして適用する。そのために、学習時のニューラルネットワークの所定の層において複数のスタイル画像に基づくパラメータを混入する。所定の層は、例えばアフィン層(全結合層)であってよい。
【0066】
第4の実施形態においてはさらに、複数のスタイル画像に基づいて定義された最適化関数に基づいて、ニューラルネットワークについて最適化処理を行う。この最適化処理によって、複数のスタイル画像により適合した、学習済みのニューラルネットワークが得られる。
【0067】
スタイルトランスファー部102Dが、学習済みのニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。第4の実施形態において、入力画像は上述のバッファデータに対応する。
【0068】
出力部103については、第1の実施形態と同様であるため、詳しい説明を省略する。
【0069】
第4の実施形態の一側面として、ニューラルネットワークの所定の層において複数のスタイル画像に基づくパラメータを混入するだけでなく、複数のスタイル画像に基づいて定義された最適化関数に基づいて最適化処理が行われる。これにより、この最適化処理によって得られた学習済みのニューラルナットワークを用いて、複数のスタイル画像がきれいにブレンドされたスタイルトランスファーを実現することができる。
【0070】
[第5の実施形態]
本発明の第5の実施形態の概要について説明をする。以下では、第5の実施形態として、サーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。
【0071】
図10は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Yは、取得部101Yと、スタイルトランスファー部102Yと、出力部103Yと、スタイル画像選択部104Yとを少なくとも備える。サーバ10Yが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101Yと、スタイルトランスファー部102Yと、出力部103Yと、スタイル画像選択部104Yとを機能的に実現する。
【0072】
取得部101Yは、レンダリングに用いられるバッファからバッファデータを取得する機能を有する。スタイルトランスファー部102Yは、取得したバッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する機能を有する。出力部103Yは、スタイルトランスファーが適用された後のデータを出力する機能を有する。スタイル画像選択部104Yは、所定の条件に基づいて、前記1以上のスタイル画像を選択する機能を有する。
【0073】
次に、本発明の第5の実施形態におけるプログラム実行処理について説明する。図11は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
【0074】
スタイル画像選択部104Yは、所定の条件に基づいて、1以上のスタイル画像を選択する(St51)。取得部101Yは、レンダリングに用いられるバッファからバッファデータを取得する(St52)。スタイルトランスファー部102Yは、取得したバッファデータに対して、ステップSt51において選択された1以上のスタイル画像に基づいたスタイルトランスファーを適用する(St53)。出力部103Yは、スタイルトランスファーが適用された後のデータを出力する(St54)。
【0075】
所定の条件は、サーバ10Yが進行を制御しているビデオゲームにおける各種の条件であってよい。所定の条件として、例えば進行中のビデオゲームに登場するキャラクタの感情、該キャラクタが用いた技や魔法の種類、バフやデバフ、レベルアップ等の該キャラクタの状態変化などが挙げられる。なお、キャラクタはプレイヤーキャラクタ(PC)であってもよく、ノンプレイヤ―キャラクタ(NPC)であってもよい。キャラクタは味方キャラクタであっても敵キャラクタであってもよい。
【0076】
所定の条件は、進行中のビデオゲームにおけるキャラクタ以外のオブジェクトに係る条件であってもよい。オブジェクトの例としては、ビデオゲームのマップに配置された建物や生物、ビデオゲームの進行中に登場したアイテム等が挙げられる。所定の条件は、オブジェクトが登場したか否か、オブジェクトが何回登場したか、オブジェクトが破壊されるなどしてマップから消失したか否か、など、種々のものが考えられる。
【0077】
所定の条件は、進行中のビデオゲームにおけるメタ情報またはシステム情報に係る条件であってもよい。進行中のビデオゲームにおけるメタ情報に係る条件の一例としては、プレイヤーキャラクタが居るゲーム内の舞台の変更(例えば未来都市への舞台移動)などがある。進行中のビデオゲームにおけるシステム情報に係る条件の一例としては、ユーザによるビデオゲームのプレイ時間などがある。
【0078】
所定の条件は上記のものには限られず、その他の種々の条件であってよい。
【0079】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。
【0080】
レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0081】
レンダリングに用いられるバッファは3Dバッファであってよい。レンダリングに用いられる3Dバッファとは、例えば3次元空間を表現可能なデータを格納するバッファを意味する。
【0082】
レンダリングに用いられるバッファは中間バッファであってもよい。レンダリングに用いられる中間バッファとは、レンダリング処理の途中で用いられるバッファである。中間バッファの一例として、RGBバッファ、BaseColorバッファ、Metallicバッファ、Specularバッファ、Roughnessバッファ、Normalバッファなどがある。これらのバッファは、最終的に出力されるCG画像が格納される最終バッファより前に配置されたバッファであり、最終バッファとは異なるバッファである。レンダリングに用いられる中間バッファは、列挙された前述のバッファには限られない。
【0083】
スタイルトランスファー部102Yは、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。スタイルトランスファー部102Yがニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。
【0084】
図12は、本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーに用いられるニューラルネットワークN1の構造例を示す概念図である。ニューラルネットワークN1は、入力画像に基づくピクセル群を潜在(Latent)パラメータに変換する第1変換層と、畳み込み(Convolution)等によりダウンサンプリングを行う1以上の層と、複数の残差ブロック(Residual Blocks)層と、アップサンプリングを行う層と、潜在(Latent)パラメータをピクセル群に変換する第2変換層とを含む。なお、第2変換層の出力であるピクセル群に基づいて出力画像が得られる。
【0085】
ニューラルネットワークN1の第1変換層とダウンサンプリングを行う層との間や、ダウンサンプリングを行う層に含まれる複数の畳み込み層同士の間等に、全結合層が配置される。全結合層は、アフィン層(Affine layer)とも呼ばれている。
【0086】
スタイルトランスファー部102Yは、取得部101Yが取得したバッファデータを、ニューラルネットワークN1の第1変換層に入力する。これにより、スタイルトランスファー適用後のデータがニューラルネットワークN1の第2変換層から出力される。
【0087】
出力部103Yによるスタイルトランスファー適用後のデータの出力先は、取得部101Yがバッファデータを取得したバッファとは異なるバッファであってよい。より特定的には、取得部101Yがバッファデータを取得したバッファを第1バッファとした場合、スタイルトランスファー適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0088】
その他、出力部103Yによるスタイルトランスファー適用後のデータの出力先は、サーバ10Yが備える出力装置であってよく、サーバ10Yから見た外部装置であってもよい。
【0089】
第5の実施形態の一側面として、レンダリングに用いられるバッファ単位でスタイルトランスファーを適用することができる。これにより、ユーザに提供する画像による表現力を増大させることができる。
【0090】
第5の実施形態の一側面として、取得部101Yおよびスタイルトランスファー部102Yなどを、上述のバッファの操作が可能なゲームエンジンに組み込むことにより、従来用いられていた写真などのデータよりもリッチな情報に基づいてスタイルトランスファーを行うことができる。例えば、ゲームエンジンがゲーム画面に表示される特定のオブジェクトを認識して、特定のオブジェクトに対応するバッファに対してのみスタイルトランスファーを適用することができるようになる。
【0091】
第5の実施形態の一側面として、バッファに対してスタイルトランスファーを適用する構成であれば、バッファ毎に適用するスタイルトランスファーの種類を適宜選択することができるので、多彩なCG表現が可能となる。例えば、第1バッファに対してはゴッホ風にスタイルを変換するスタイルトランスファーを適用し、第2バッファに対してはゴーギャン風にスタイルを変換するスタイルトランスファーを適用する、などの事が新たに可能になる。
【0092】
第5の実施形態の一側面として、レンダリングに用いられるバッファに対してスタイルトランスファーを適用することにより、ゲーム画像のスタイルをリアルタイムに変化させることができる。
【0093】
第5の実施形態の一側面として、レンダリングに用いられる3Dバッファに対してスタイルトランスファーを適用することができる。これにより、ユーザに対して表示される3DCGのマップ全体のスタイルを、ゲームにおける各種の条件などに基づいて変換することができる。
【0094】
第5の実施形態の一側面として、レンダリングに用いられる中間バッファに格納されたデータに対してスタイルトランスファーを適用することにより、スタイルトランスファーが適用されたデータを、中間バッファの出力として得ることができる。カラー情報や、光の反射情報などの各種の観点で切り出された、レンダリングの途中段階における一部のデータに対してスタイルトランスファーを適用することができるので、きめ細やかなスタイル変換やスタイル制御を行うことができるようになる。また、スタイトランスファーが適用されたデータを用いて最終画像を生成することにより、ユーザに提供する最終画像による表現力をさらに増大させることができる。
【0095】
第5の実施形態の一側面として、進行中のビデオゲーム等に係る種々の条件に応じて、上述のバッファに対して異なるスタイルトランスファーを適用することができる。例えば、バッファが、ビデオゲームに登場するオブジェクトに対応するバッファである場合は、オブジェクト毎に異なるスタイルトランスファーを適用することができる。バッファが3Dバッファである場合は、例えばゲームに登場するキャラクタの感情(笑い、泣き、怒り等)に基づいて、マップ全体のタッチを変えることができる。キャラクタがゲーム中で用いた技や魔法の種類に基づいてマップ全体のタッチを変えることもできる。キャラクタの状態変化に基づいてマップ全体のタッチを変えても良い。バッファが中間バッファである場合は、キャラクタの感情、魔法の種類、状態変化等に基づいて、中間バッファが司る色(BaseColorバッファ)、表面をメタル状にするか否か(Metallicバッファ)、光の反射度合(Specularバッファ)、粗さ(Roughnessバッファ)などを、対象のスタイル画像に基づいて個別に変換することができるようになる。
【0096】
[第6の実施形態]
本発明の第6の実施形態の概要について説明をする。以下では、第6の実施形態として、サーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。
【0097】
図13は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Zは、取得部101Zと、スタイルトランスファー部102Zと、出力部103Zとを少なくとも備える。サーバ10Zが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101Zと、スタイルトランスファー部102Zと、出力部103Zとを機能的に実現する。
【0098】
取得部101Zは、レンダリングに用いられるバッファからバッファデータを取得する機能を有する。スタイルトランスファー部102Zは、バッファデータに対して、複数のスタイル画像に基づいたスタイルトランスファーを適用する機能を有する。出力部103Zは、スタイルトランスファーが適用された後のデータを出力する機能を有する。
【0099】
次に、本発明の第6の実施形態におけるプログラム実行処理について説明する。図14は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラム処理の例を示すフローチャートである。
【0100】
取得部101Zは、レンダリングに用いられるバッファからバッファデータを取得する(St61)。スタイルトランスファー部102Zは、取得したバッファデータに対して、複数のスタイル画像に基づいたスタイルトランスファーを適用する(St62)。出力部103Zは、スタイルトランスファーが適用された後のデータを出力する(St63)。
【0101】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。
【0102】
レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0103】
レンダリングに用いられるバッファは3Dバッファであってよい。レンダリングに用いられる3Dバッファとは、例えば3次元空間を表現可能なデータを格納するバッファを意味する。
【0104】
レンダリングに用いられるバッファは中間バッファであってもよい。レンダリングに用いられる中間バッファとは、レンダリング処理の途中で用いられるバッファである。中間バッファの一例として、RGBバッファ、BaseColorバッファ、Metallicバッファ、Specularバッファ、Roughnessバッファ、Normalバッファなどがある。これらのバッファは、最終的に出力されるCG画像が格納される最終バッファより前に配置されたバッファであり、最終バッファとは異なるバッファである。レンダリングに用いられる中間バッファは、列挙された前述のバッファには限られない。
【0105】
なお、取得部101Zは、レンダリングに用いられるバッファ以外の場所から、スタイルトランスファーを適用する対象となるデータを取得してもよい。例えば取得部101Zは、メモリ12や、サーバ10Zからみた外部装置などから、スタイルトランスファーを適用する対象となるデータを取得してもよい。取得されるデータは、典型的には画像データであるが、それ以外の種類のデータ(例えば音声データ等)であってもよい。
【0106】
スタイルトランスファー部102Zによるスタイルトランスファーの適用(ステップSt62)は、ニューラルネットワークの所定の層において複数のスタイル画像に基づくパラメータを混入し、かつ、前記複数のスタイル画像に基づいて定義された最適化関数に基づいて最適化処理を行って得られた学習済みのニューラルネットワークに、バッファデータを入力することにより行われる。以下、学習済みのニューラルネットワークについて説明する。
【0107】
図15は、本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーに用いられるニューラルネットワークN2の構造例を示す概念図である。ニューラルネットワークN2は、入力画像に基づくピクセル群を潜在(Latent)パラメータに変換する第1変換層と、畳み込み(Convolution)等によりダウンサンプリングを行う1以上の層と、複数の残差ブロック(Residual Blocks)層と、アップサンプリングを行う層と、潜在(Latent)パラメータをピクセル群に変換する第2変換層とを含む。なお、第2変換層の出力であるピクセル群に基づいて出力画像が得られる。
【0108】
ニューラルネットワークN2の第1変換層とダウンサンプリングを行う層との間や、ダウンサンプリングを行う層に含まれる複数の畳み込み層同士の間等には全結合層が配置される。全結合層は、アフィン層(Affine layer)とも呼ばれている。
【0109】
ニューラルネットワークN2のアフィン層A1には、複数のスタイル画像に基づくパラメータが混入される。より具体的には、以下の通りである。
【0110】
ニューラルネットワークN2のアフィン層A1は、アフィン変換のパラメータをaおよびbとし、画像のピクセルの潜在(Latent)変数をxとした場合、畳み込み層の出力の潜在変数xを、x*a+bに変換する処理を行う層である。
【0111】
ここで、任意のスタイル1とスタイル2とをブレンドする場合、スタイルトランスファー部102Zによる制御の下で、アフィン層A1で行われる処理は以下の通りである。スタイル1に係るスタイル画像から導出されたアフィン変換パラメータをaおよびbとする。スタイル2に係るスタイル画像から導出されたアフィン変換パラメータをaおよびbとする。このとき、スタイル1とスタイル2とをブレンドする場合のアフィン変換パラメータはa=(a+a)/2と、b=(b+b)/2とになる。そして、アフィン層A1においてx*a+bを計算することにより、スタイル1とスタイル2のブレンドを行うことができる。なお、前記はスタイル1とスタイル2とを均等に(それぞれ50%ずつ)ブレンドする場合の計算式を示している。当業者の通常の知識に基づいて、スタイル1が80%、スタイル2が20%などのように、各スタイルに基づく影響度がそれぞれ異なる割合となるように重みづけを行った上でブレンドしてもよい。
【0112】
ブレンドするスタイルの数は3以上であってもよい。nが3以上の自然数である場合に、n個のスタイルをブレンドする場合のアフィン変換パラメータは、例えばa=(a+a……+a)/nと、b=(b+b……+b)/nとであってよい。各スタイルに基づく影響度がそれぞれ異なる割合となるように重みづけを行った上でブレンドしてもよい点については、前述のスタイルの数が2の場合と同様である。
【0113】
サーバ10Zのメモリ12等には、複数のスタイルについての変換パラメータaおよびb(kは1からnまでの間の任意の自然数)が保存されていてよい。また、複数のスタイルについての変換パラメータは、例えば(a,a,……,a)および(b,b,……,b)等のように、ベクトル形式でメモリ12や記憶装置13等に保存されていてもよい。各スタイルに基づく影響度がそれぞれ異なる割合となるように重みづけを行う場合は、各スタイルに応じた重みを示す値がメモリ12や記憶装置13等に保存されていてもよい。
【0114】
次に、ニューラルネットワークN2について機械学習を行うための最適化関数について説明する。最適化関数は損失関数とも呼ばれることがある。ニューラルネットワークN2に対して、複数のスタイル画像に基づいて定義された最適化関数に基づいて最適化処理を行うことにより、学習済みのニューラルネットワークN2が得られる。なお、説明の便宜上、学習前後のそれぞれのニューラルネットワークについて、同じ参照符号であるN2が用いられている。
【0115】
例えば、上述の関連する技術においては、以下のように定義された最適化関数が用いられている。
【0116】
スタイル最適化関数:
【数1】
【0117】
コンテンツ最適化関数:
【数2】
【0118】
上述の最適化関数において、pは生成された画像を示す。生成された画像は、機械学習に用いられるニューラルネットワークの出力画像に相当する。s(小文字のs)は例えば抽象絵画などのスタイル画像を示す。Uは第iレイヤのユニットの総数を示す。Uは第jレイヤのユニットの総数を示す。Gはグラムマトリクス(Gram matrix)を示す。φはVGG-16アーキテクチャの第i番目の活性化関数の出力を示す。S(大文字のS)はスタイルの最適化を計算するためのVGG-16のレイヤ群を示す。c(小文字のc)はコンテンツ画像を示す。C(大文字のC)はコンテンツ最適化関数を計算するためのVGG-16のレイヤ群であり、jは当該レイヤ群に含まれるレイヤのインデックスである。絶対値記号に付加されたFはフロベニウスノルムを意味する。
【0119】
上述のスタイル最適化関数およびコンテンツ最適化関数によって定義された最適化関数の値を最小化するようにニューラルネットワークに対して機械学習を行い、学習後のニューラルネットワークに入力画像を入力することにより、スタイル画像が示すスタイルに近づくように変換がなされた出力画像がニューラルネットワークから出力される。
【0120】
ここで、上記のような最適化関数を用いた最適化処理では、複数のスタイルをブレンドしてスタイルトランスファーを行う場合に、ブレンドの結果は改良の余地があるものとなった。
【0121】
そこで、本発明の第6の実施形態においては、複数のスタイル画像に基づいて定義された最適化関数に基づいて最適化処理を行う。これにより、複数のスタイル画像に基づいた最適化を行うことができる。その結果、入力画像に対して複数のスタイルがきれいにブレンドされた出力画像を得ることができる。
【0122】
より具体的には、最適化処理は、複数のスタイル画像から選ばれた任意の二つのスタイル画像に基づいて定義された第1の最適化関数を用いて最適化処理を行う、第1の最適化処理と、前記複数のスタイル画像における一つのスタイル画像に基づいて定義された第2の最適化関数を用いて最適化処理を行う、第2の最適化処理とを含んでいてよい。これにより、ブレンドしたいスタイルの数が3以上である場合に、好適な最適化を行う事ができる。その結果、入力画像に対して複数のスタイルがよりきれいにブレンドされた出力画像を得ることができる。
【0123】
次に、第1の最適化関数および第2の最適化関数について説明する。第6の実施形態の一側面として、第1の最適化関数は以下の式(1)で定義されてよい。
【0124】
【数3】
【0125】
第6の実施形態の一側面として、第2の最適化関数は以下の式(2)で定義されてよい。
【0126】
【数4】
【0127】
上記の式において、
【0128】
【数5】
【0129】
は複数のスタイル画像からなるスタイル画像群であり、qおよびrはスタイル画像群に含まれる任意のスタイル画像を示す。ただし、qとrは互いに異なるスタイル画像である。Ni,rはφ特徴マップの行数である。Ni,cはφ特徴マップの列数である。p、s(小文字のs)、G、φ、S、c(小文字のc)、およびFについては、上述の関連する技術におけるものと同様である。
【0130】
上記の第1の最適化関数は、生成された画像をpとし、複数のスタイル画像から選ばれた任意の二つのスタイル画像をqおよびrとしたときに、画像pに所定の演算を行って得られた値と、スタイル画像qおよびrにそれぞれ前記所定の演算を行って得られた値の平均値と、の間のノルムを合算する関数である。上記の式(1)は、所定の演算が、
【0131】
【数6】
【0132】
である場合を示している。所定の演算は、上記以外の演算であってもよい。
【0133】
上記の第2の最適化関数は、生成された画像をpとし、スタイル画像をsとしたときに、画像pに所定の演算を行って得られた値と、スタイル画像sに前記所定の演算を行って得られた値との間のノルムを合算する関数である。上記の式(2)は、所定の演算が、
【0134】
【数7】
【0135】
である場合を示している。所定の演算は、上記以外の演算であってもよい。
【0136】
次に、上述の第1の最適化関数および第2の最適化関数を用いた最適化処理の例について説明する。
【0137】
図16は、本発明の実施形態の少なくとも一つに対応する最適化処理の処理例を示すフローチャートである。ここでは、第1の最適化関数が上記の式(1)で定義される関数であり、第2の最適化関数が上記の式(2)で定義される関数である場合の処理例について説明する。
【0138】
最適化処理の処理主体は、装置が備えるプロセッサである。プロセッサを備えた装置(以下、装置A)は上述のサーバ10Zであってよい。この場合、図1に示したプロセッサ11が処理主体となる。プロセッサを備えた装置Aは、サーバ10Z以外の他の装置(例えば、ユーザ端末20や他のサーバ等)であってもよい。
【0139】
ブレンドされるスタイルの数をnとする。プロセッサは、スタイル画像群に含まれるn個のスタイル画像の中から、任意の二つのスタイル画像qおよびrを選択する(St71)。
【0140】
プロセッサは、選択されたスタイル画像qおよびrについての第1の最適化関数の値を最小化するように最適化を行う(St72)。なお、生成された画像pについては、プロセッサがニューラルネットワークの出力画像を画像pとして取得する。ニューラルネットワークは、装置Aに実装されていてもよく、装置A以外の他の装置に実装されていてもよい。
【0141】
プロセッサは、通りの全パターンにつき最適化を行ったか否かを判定する(St73)。すなわちプロセッサは、n個のスタイル画像の中から任意の二つのスタイル画像qおよびrを選択することについて、全てのパターンを処理済みであるか否かを判定する。通りの全パターンにつき最適化を行った場合(St73:YES)、ステップSt74へと処理が遷移する。通りの全パターンにつき最適化を行っていない場合(St73:NO)、ステップSt71へと処理が戻り、プロセッサが次の二つのスタイル画像qおよびrの組み合わせを選択する。
【0142】
プロセッサは、スタイル画像群に含まれるn個のスタイル画像の中から、一つのスタイル画像sを選択する(St74)。
【0143】
プロセッサは、選択されたスタイル画像sについての第2の最適化関数の値を最小化するように最適化を行う(St75)。なお、生成された画像pについては、プロセッサがニューラルネットワークの出力画像を画像pとして取得する。ニューラルネットワークは、装置Aに実装されていてもよく、装置A以外の他の装置に実装されていてもよい。
【0144】
プロセッサは、通りの全パターンにつき最適化を行ったか否かを判定する(St76)。すなわちプロセッサは、n個のスタイル画像の中から任意のスタイル画像sを選択することについて、全てのパターンを処理済みであるか否かを判定する。通りの全パターンにつき最適化を行った場合(St76:YES)、図16に示した最適化処理は終了する。通りの全パターンにつき最適化を行っていない場合(St76:NO)、ステップSt74へと処理が戻り、プロセッサが次の一つのスタイル画像sを選択する。
【0145】
スタイルトランスファー部102Zは、例えば上記のようにして最適化が行われた学習済みのニューラルネットワークN2の第1変換層に、取得部101Zが取得したバッファデータを入力する。これにより、n個のスタイル画像がきれいにブレンドされたスタイルトランスファーの適用後のデータがニューラルネットワークN2の第2変換層から出力される。
【0146】
関連する技術における最適化処理に基づいて出力された画像データの場合、複数のスタイルのブレンド結果がぶれて、色が平均化されるだけであった。一方、本発明の第6の実施形態に係る上記の最適化処理に基づいて出力された出力画像の場合、色とパターンがきれいにブレンドされる。
【0147】
出力部103Zによるスタイルトランスファー適用後のデータの出力先は、取得部101Zがバッファデータを取得したバッファとは異なるバッファであってよい。より特定的には、前記取得部101がバッファデータを取得したバッファを第1バッファとした場合、スタイルトランスファーの適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0148】
その他、出力部103Zによるスタイルトランスファーの適用後のデータの出力先は、サーバ10Zが備える出力装置であってよく、サーバ10Zから見た外部装置であってもよい。
【0149】
第6の実施形態の一側面として、複数のスタイル画像に基づいたスタイルトランスファーにおいて、複数のスタイル画像に基づいて定義された最適化関数に基づいて最適化処理を行うことにより、出力画像におけるスタイルのブレンドについての品質を向上させることができる。
【0150】
第6の実施形態の一側面として、任意の二つのスタイル画像についての最適化を行ってから、各スタイル画像について最適化を行うことにより、出力画像におけるスタイルのブレンドについての品質をさらに向上させることができる。
【0151】
第6の実施形態の一側面として、二つのスタイル画像に由来するそれぞれの値の平均を取ってから、生成された画像との間のノルムを計算することにより、二つのスタイル画像に対してバランス良く最適化を行うことができる。
【0152】
第6の実施形態の一側面として、第1の最適化関数が上述の式(1)で定義される関数であることにより、複数のスタイル画像に応じて色とパターンがきれいにブレンドされた出力画像を得ることができる。
【0153】
第6の実施形態の一側面として、二つのスタイル画像を選択して最適化を行った後に、各スタイル画像についての最適化も行う事により、各スタイル画像のそれぞれに対してもバランス良く最適化を行うことができる。
【0154】
第6の実施形態の一側面として、第2の最適化関数が上述の式(2)で定義される関数であることにより、各スタイル画像に応じて色とパターンがきれいにブレンドされた出力画像を得ることができる。
【0155】
以上に説明したように、本願の各実施形態により1または2以上の不足が解決される。なお、夫々の実施形態による効果は、非限定的な効果または効果の一例である。
【0156】
上述した各実施形態では、ユーザ端末20およびサーバ10は、自己が備える記憶装置に記憶されている各種制御プログラム(例えば、スタイルトランスファープログラム)に従って、上述した各種の処理を実行する。また、ユーザ端末20やサーバ10に限られない他のコンピュータが、自己が備える記憶装置に記憶されている各種制御プログラム(例えば、スタイルトランスファープログラム)に従って、上述した各種の処理を実行してもよい。
【0157】
また、ビデオゲーム処理システム100の構成は、上述した各実施形態の例として説明した構成に限定されない。例えばユーザ端末が実行する処理として説明した処理の一部または全部をサーバ10が実行する構成としてもよいし、サーバ10が実行する処理として説明した処理の一部または全部をユーザ端末20が実行する構成としてもよい。また、サーバ10が備える記憶部(記憶装置)の一部または全部をユーザ端末20が備える構成としてもよい。すなわち、ビデオゲーム処理システム100における、ユーザ端末とサーバのどちらか一方が備える機能の一部または全部を、他の一方が備える構成とされていてもよい。
【0158】
また、プログラムが、上述した各実施形態の例として説明した機能の一部または全部を、通信ネットワークを含まない装置単体に実現させる構成としてもよい。
【0159】
[付記]
上述した実施形態の説明は、少なくとも下記発明を、当該発明の属する分野における通常の知識を有する者がその実施をすることができるように記載した。
[1]
サーバに、
レンダリングに用いられるバッファからバッファデータを取得する取得機能と、
前記バッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する、スタイルトランスファー機能と、
スタイルトランスファーが適用された後のデータを出力する出力機能と、
を実現させるためのスタイルトランスファープログラム。
[2]
前記バッファは3Dバッファである、
[1]に記載のスタイルトランスファープログラム。
[3]
前記バッファは中間バッファである、
[1]に記載のスタイルトランスファープログラム。
[4]
前記サーバに、
所定の条件に基づいて、前記1以上のスタイル画像を選択する、スタイル画像選択機能を
実現させるための[1]から[3]のうちいずれか一項に記載のスタイルトランスファープログラム。
[5]
前記スタイルトランスファー機能では、前記バッファデータに対して、複数のスタイル画像に基づいたスタイルトランスファーを適用する機能を実現させ、
前記スタイルトランスファーの適用は、ニューラルネットワークの所定の層において複数のスタイル画像に基づくパラメータを混入し、かつ、前記複数のスタイル画像に基づいて定義された最適化関数に基づいて最適化処理を行って得られた学習済みのニューラルネットワークに、前記バッファデータを入力することにより行われる、
[1]から[4]のうちいずれか一項に記載のスタイルトランスファープログラム。
[6]
前記最適化処理は、前記複数のスタイル画像から選ばれた任意の二つのスタイル画像に基づいて定義された第1の最適化関数を用いて最適化処理を行う、第1の最適化処理と、
前記複数のスタイル画像おける一つのスタイル画像に基づいて定義された第2の最適化関数を用いて最適化処理を行う、第2の最適化処理とを含む、
[5]に記載のスタイルトランスファープログラム。
[7]
前記第1の最適化関数が、
生成された画像をpとし、前記複数のスタイル画像から選ばれた任意の二つのスタイル画像をqおよびrとしたときに、画像pに所定の演算を行って得られた値と、スタイル画像qおよびrにそれぞれ前記所定の演算を行って得られた値の平均値と、の間のノルムを合算する関数である、
[6]に記載のスタイルトランスファープログラム。
[8]
前記第1の最適化関数が、
【数8】
である、
[7]に記載のスタイルトランスファープログラム。
[9]
前記第2の最適化関数が、
生成された画像をpとし、スタイル画像をsとしたときに、画像pに所定の演算を行って得られた値と、スタイル画像sに前記所定の演算を行って得られた値との間のノルムを合算する関数である、
[6]から[8]のうちいずれか一項に記載のスタイルトランスファープログラム。
[10]
前記第2の最適化関数が、
【数9】
である、
[9]に記載のスタイルトランスファープログラム。
[11]
[1]から[10]のうちいずれか一項に記載のスタイルトランスファープログラムがインストールされたサーバ。
[12]
[1]から[10]のうちいずれか一項に記載のスタイルトランスファープログラムがインストールされたコンピュータ。
[13]
コンピュータによるスタイルトランスファー方法であって、
レンダリングに用いられるバッファからバッファデータを取得する取得処理と、
前記バッファデータに対して、1以上のスタイル画像に基づいたスタイルトランスファーを適用する、スタイルトランスファー処理と、
スタイルトランスファーが適用された後のデータを出力する出力処理とを含む、
スタイルトランスファー方法。
【産業上の利用可能性】
【0160】
本発明の実施形態の一つによれば、ユーザに提供する画像の表現力を増大させるスタイルトランスファープログラムおよびスタイルトランスファー方法として有用である。
【符号の説明】
【0161】
10、10A、10B、10C、10D、10Y、10Z サーバ
11 プロセッサ
12 メモリ
13 記憶装置
20、20A、20B、20C ユーザ端末
21 プロセッサ
22 メモリ
23 記憶装置
30 通信ネットワーク
100 ビデオゲーム処理システム
101、101B、101C、101Y、101Z 取得部
102、102D、102Y、102Z スタイルトランスファー部
103、103Y、103Z 出力部
104Y スタイル画像選択部
N1、N2 ニューラルネットワーク

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16