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

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

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

特開2023-19221スタイルトランスファープログラムおよびスタイルトランスファー方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023019221
(43)【公開日】2023-02-09
(54)【発明の名称】スタイルトランスファープログラムおよびスタイルトランスファー方法
(51)【国際特許分類】
   G06T 1/00 20060101AFI20230202BHJP
【FI】
G06T1/00 500A
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021123760
(22)【出願日】2021-07-28
(71)【出願人】
【識別番号】308033283
【氏名又は名称】株式会社スクウェア・エニックス
(74)【代理人】
【識別番号】100155402
【弁理士】
【氏名又は名称】松田 真
(72)【発明者】
【氏名】ハンディ エドガー
(72)【発明者】
【氏名】三宅 陽一郎
(72)【発明者】
【氏名】坂田 新平
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057BA02
5B057CA01
5B057CA08
5B057CA12
5B057CA16
5B057CB01
5B057CB08
5B057CB12
5B057CB16
5B057CC03
5B057CD05
5B057CD08
5B057CE08
5B057DA20
5B057DB02
5B057DB06
5B057DB09
5B057DC36
5B057DC40
(57)【要約】
【課題】表現力に富むスタイルトランスファーを実現させる。
【解決手段】スタイルトランスファープログラムが、コンピュータに、画像データを取得する取得機能と、前記画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用する、スタイルトランスファー機能と、スタイルトランスファーが適用された後のデータを出力する出力機能と、を実現させる。
【選択図】図3

【特許請求の範囲】
【請求項1】
コンピュータに、
画像データを取得する取得機能と、
前記画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用する、スタイルトランスファー機能と、
スタイルトランスファーが適用された後のデータを出力する出力機能と、
を実現させるためのスタイルトランスファープログラム。
【請求項2】
前記スタイルトランスファー機能では、前記画像データに対して既に適用されたスタイルトランスファーに用いられたものと同じ一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用する機能を
実現させるための、請求項1に記載のスタイルトランスファープログラム。
【請求項3】
前記コンピュータに、
前記画像データにおける一部の領域についてスタイルトランスファーを抑制するマスクを取得する、マスク取得機能をさらに実現させ、
前記スタイルトランスファー機能では、前記マスクを用いて、前記画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを適用する機能を
実現させるための、請求項1または請求項2に記載のスタイルトランスファープログラム。
【請求項4】
前記スタイルトランスファー機能では、スタイルトランスファーを抑制する領域が異なる複数の前記マスクを用いて、前記画像データに対して、複数のスタイル画像からなる複数のスタイルに基づいたスタイルトランスファーを適用する機能を
実現させるための、請求項3に記載のスタイルトランスファープログラム。
【請求項5】
前記スタイルトランスファー機能では、前記画像データに含まれる一以上のオブジェクトに対応する対応領域であるか、または前記対応領域以外の領域である、前記一部の領域についてスタイルトランスファーを抑制するための前記マスクを用いて、前記スタイルトランスファーを適用する、
請求項3または請求項4に記載のスタイルトランスファープログラム。
【請求項6】
前記スタイルトランスファー機能では、前記画像データに対して適用されている一以上のエフェクトに対応する対応領域であるか、または前記対応領域以外の領域である、前記一部の領域についてスタイルトランスファーを抑制するための前記マスクを用いて、前記スタイルトランスファーを適用する、
請求項3から請求項5のうちいずれか一項に記載のスタイルトランスファープログラム。
【請求項7】
前記スタイルトランスファー機能では、前記画像データを構成する色であるコンテンツ色と、前記画像データに対して適用する一以上のスタイル画像を構成する色であるスタイル色との間の色で構成されたデータを出力するように、前記画像データに対してスタイルトランスファーを適用する機能
をさらに実現させるための、請求項1から請求項6のうちいずれか一項に記載のスタイルトランスファープログラム。
【請求項8】
請求項1から請求項7のうちいずれか一項に記載のスタイルトランスファープログラムがインストールされたコンピュータ。
【請求項9】
コンピュータによるスタイルトランスファー方法であって、
画像データを取得する取得処理と、
前記画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用する、スタイルトランスファー処理と、
スタイルトランスファーが適用された後のデータを出力する出力処理と、を含む、
スタイルトランスファー方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態の少なくとも一つは、スタイルトランスファープログラムおよびスタイルトランスファー方法に関する。
【背景技術】
【0002】
写真画像をゴッホ風やモネ風などの所定のスタイルに応じた画像へ変換する、スタイルトランスファーの技術が知られている。
【0003】
特許文献1には、スタイル変換(style transfer)についての記載がなされている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-187583号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のスタイルトランスファーは、入力画像全体をモネ風などの所定のスタイルに変換するものであった。しかしながら、入力画像を単に所定のスタイルに変換するだけでは、表現力の幅が狭いと考えられる。また、入力画像の一部をあるスタイルに変換し、他の一部を別のスタイルに変換するなどの、表現力に富む柔軟なスタイルトランスファーを行うことはできなかった。さらに、スタイルトランスファーを適用した後の画像は、スタイル画像の色に基づいた色で構成されるものであり、元の画像(コンテンツ画像)の色と、スタイル画像の色との間を動的に制御することはできず、この観点からも表現力に富むものではなかった。
【0006】
本発明の少なくとも一つの実施形態の目的は、上記課題を解決し、表現力に富むスタイルトランスファーを実現させることである。
【課題を解決するための手段】
【0007】
非限定的な観点によると、本発明の一実施形態に係るスタイルトランスファープログラムは、コンピュータに、画像データを取得する取得機能と、前記画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用する、スタイルトランスファー機能と、スタイルトランスファーが適用された後のデータを出力する出力機能と、を実現させるためのものである。
【0008】
非限定的な観点によると、本発明の一実施形態に係るスタイルトランスファー方法は、コンピュータによるスタイルトランスファー方法であって、画像データを取得する取得処理と、前記画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用する、スタイルトランスファー処理と、スタイルトランスファーが適用された後のデータを出力する出力処理とを含むものである。
【発明の効果】
【0009】
本願の各実施形態により1または2以上の不足が解決される。
【図面の簡単な説明】
【0010】
図1】本発明の実施形態の少なくとも一つに対応するビデオゲーム処理システムの構成の例を示すブロック図である。
図2】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図3】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
図4】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図5】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
図6】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図7】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
図8】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図9】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
図10】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図11】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
図12】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図13】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
図14】本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーに用いられるニューラルネットワークの構造例を示す概念図である。
図15】本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーに用いられるニューラルネットワークの構造例を示す概念図である。
図16】本発明の実施形態の少なくとも一つに対応する最適化処理の処理例を示すフローチャートである。
図17】本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーを複数回重ねて適用する処理例を示す概念図である。
図18】本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーを複数回重ねて適用する処理例を示す概念図である。
図19】本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーを複数回重ねて適用する処理例を示す概念図である。
図20】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図21】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
図22】本発明の実施形態の少なくとも一つに対応する、マスクを用いたスタイルトランスファーに用いられるニューラルネットワークの構造例を示す概念図である。
図23】本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーに用いられるマスクの例を示す概念図である。
図24】本発明の実施形態の少なくとも一つに対応する、処理層で行われる正規化に用いられるパラメータの計算方法を例示する概念図である。
図25】本発明の実施形態の少なくとも一つに対応する、処理層で行われる正規化に用いられるパラメータの計算方法を例示する概念図である。
図26】本発明の実施形態の少なくとも一つに対応する、処理層で行われる正規化を例示する概念図である。
図27】本発明の実施形態の少なくとも一つに対応する、正規化後のアフィン変換処理を例示する概念図である。
図28】本発明の実施形態の少なくとも一つに対応する、マスクを用いたスタイルトランスファー処理を例示する概念図である。
図29】本発明の実施形態の少なくとも一つに対応する、マスクを用いたスタイルトランスファー処理を例示する概念図である。
図30】本発明の実施形態の少なくとも一つに対応する、画像データを3つの領域に分けてそれぞれ異なるスタイルを適用したい場合のマスクを例示する概念図である。
図31】本発明の実施形態の少なくとも一つに対応する、処理層で行われる正規化を例示する概念図である。
図32】本発明の実施形態の少なくとも一つに対応する、正規化後のアフィン変換処理を例示する概念図である。
図33】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
図34】本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
図35】本発明の実施形態の少なくとも一つに対応し得る、スタイルトランスファーネットワークの学習(トレーニング)方法を例示する概念図である。
図36】本発明の実施形態の少なくとも一つに対応し得る、スタイルベクトルの構成を例示する概念図である。
図37】本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーネットワークの学習(トレーニング)方法を例示する概念図である。
図38】本発明の実施形態の少なくとも一つに対応する、スタイルベクトルの構成を例示する概念図である。
図39】本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーネットワークの学習方法の一部を例示する概念図である。
図40】本発明の実施形態の少なくとも一つに対応する、RGBブランチにおけるRGB最適化関数の計算例を示す概念図である。
図41】本発明の実施形態の少なくとも一つに対応する、YUVブランチにおけるYUV最適化関数の計算例を示す概念図である。
図42】本発明の実施形態の少なくとも一つに対応する、色の動的制御を行うスタイルトランスファーにおける最適化関数を例示する概念図である。
図43】本発明の実施形態の少なくとも一つに対応する、RGBブランチにおけるRGB最適化関数の計算例を示す概念図である。
図44】本発明の実施形態の少なくとも一つに対応する、YUVブランチにおけるYUV最適化関数の計算例を示す概念図である。
図45】本発明の実施形態の少なくとも一つに対応する最適化処理を例示する概念図である。
図46】本発明の実施形態の少なくとも一つに対応する、プロセッサによる色の動的(ランタイム)制御例を示す概念図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローやシーケンスを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
【0012】
[第1の実施形態]
本発明の第1の実施形態の概要について説明をする。以下では、第1の実施形態として、コンピュータの一例であるサーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。
【0013】
図1は、本発明の実施形態の少なくとも一つに対応するビデオゲーム処理システム100の構成の例を示すブロック図である。ビデオゲーム処理システム100は、ビデオゲーム処理サーバ10(サーバ10)と、ビデオゲーム処理システム100のユーザ(ゲームのプレイヤ等)が使用するユーザ端末20とを備える。ユーザ端末20A、20B、および20Cはそれぞれ、ユーザ端末20の一例である。ビデオゲーム処理システム100の構成はこれに限定されない。例えば、ビデオゲーム処理システム100は、単一のユーザ端末を複数のユーザが使用する構成であってよい。ビデオゲーム処理システム100が複数のサーバを備えてもよい。
【0014】
サーバ10とユーザ端末20は、コンピュータの一例である。サーバ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の外部に有する構成とされていてもよい。
【0019】
サーバ10は、ゲーム画像をレンダリング可能なゲームサーバなどの情報処理装置によって構成されてよい。
【0020】
ユーザ端末20はユーザによって管理され、ネットワーク配信型のゲームを行うことが可能な通信端末によって構成される。ネットワーク配信型のゲームを行うことが可能な通信端末の例として、例えば携帯電話端末、PDA(Personal Digital Assistant)、携帯型ゲーム装置、VRゴーグル、ARグラス、スマートグラス、所謂ウェアラブルデバイスなどがある。ビデオゲーム処理システム100が含み得るユーザ端末の構成はこれらに限定されず、ユーザが合成画像を認識し得る構成であればよい。ユーザ端末の構成の他の例には、各種通信端末を組み合わせたものやパーソナルコンピュータ、据置型ゲーム装置がある。
【0021】
ユーザ端末20は、通信ネットワーク30に接続し、サーバ10との通信を行うことにより各種処理を実行するためのハードウェア(例えば、座標に応じたブラウザ画面やゲーム画面を表示する表示装置など)およびソフトウェアを備える。なお、複数のユーザ端末20のそれぞれは、サーバ10を介さずに互いに直接通信を行うこともできる構成とされていてもよい。
【0022】
ユーザ端末20は表示装置が内蔵されていてよい。また、ユーザ端末20に対して、表示装置が無線接続あるいは有線接続されていてもよい。なお、表示装置は極めて一般的な構成であるため、ここでは図示を省略している。ゲーム画面は例えば、前述の合成画像として表示装置によって表示され、ユーザがこの合成画像を認識する。ゲーム画面は例えば、ユーザ端末が備える表示装置の一例であるディスプレイや、ユーザ端末と接続された表示装置の一例であるディスプレイに表示される。表示装置には、例えば、ホログラム表示が可能なホログラムディスプレイ装置や、画像(ゲーム画面を含む)をスクリーン等に映写する映写装置なども含まれる。
【0023】
ユーザ端末20は、プロセッサ21と、メモリ22と、記憶装置23とを備える。プロセッサ21は、例えば、各種の演算および制御を行うCPU(Central Processing Unit)等の中央処理装置である。また、ユーザ端末20がGPU(Graphics Processing Unit)を備える場合には、各種の演算および制御の一部をGPUによって行うようにしてもよい。ユーザ端末20は、メモリ22に読み出したデータを用いて各種の情報処理をプロセッサ21にて実行し、得られた処理結果を必要に応じて記憶装置23に記憶させる。記憶装置23は、各種情報を格納する記憶媒体としての機能を有する。
【0024】
ユーザ端末20には入力装置が内蔵されていてよい。また、ユーザ端末20に対して入力装置が無線接続あるいは有線接続されていてもよい。入力装置はユーザによる操作入力を受け付ける。ユーザによる操作入力に応じて、サーバ10が備えるプロセッサまたはユーザ端末20が備えるプロセッサが、各種の制御処理を実行する。入力装置の例として、携帯電話端末が備えるタッチパネル画面、ARグラスに無線接続あるいは有線接続されたコントローラなどがある。また、ユーザ端末20が備えるカメラも入力装置に相当し得る。ユーザはカメラの前で手を動かす等のジェスチャーにより、操作入力を行う(ジェスチャー入力)。
【0025】
その他、ユーザ端末20はスピーカ等の他の出力装置を備えていてよい。他の出力装置は、ユーザに対して音声やその他の各種の情報を出力する。
【0026】
図2は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Aは、取得部101と、スタイルトランスファー部102と、出力部103とを少なくとも備える。サーバ10Aが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101と、スタイルトランスファー部102と、出力部103とを機能的に実現する。
【0027】
取得部101は、画像データを取得する機能を有する。スタイルトランスファー部102Bは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを1回以上適用する機能を有する。スタイルトランスファー部102Bは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用してもよい。出力部103は、スタイルトランスファーが適用された後のデータを出力する機能を有する。
【0028】
次に、本発明の第1の実施形態におけるプログラム実行処理について説明する。図3は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
【0029】
取得部101は、画像データを取得する(St11)。スタイルトランスファー部102は、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用する(St12)。出力部103は、スタイルトランスファーが適用された後のデータを出力する(St13)。
【0030】
取得部101による画像データの取得元は、取得部101がアクセス可能な記憶装置であってよい。取得部101は例えば、サーバ10Aに設けられたメモリ12または記憶装置13から画像データを取得してよい。取得部101は、通信ネットワーク30を介して外部装置から画像データを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0031】
取得部101は、レンダリングに用いられるバッファ等から画像データを取得してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0032】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。スタイル画像とは、特定のスタイルを有する画像(静止画または動画)を意味している。
【0033】
スタイルトランスファー部102は、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。スタイルトランスファー部102がニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。
【0034】
出力部103によるスタイルトランスファー適用後のデータの出力先は、取得部101が画像データを取得したバッファとは異なるバッファであってよい。より特定的には、前記取得部101が画像データを取得したバッファを第1バッファとした場合、スタイルトランスファーの適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0035】
その他、出力部103によるスタイルトランスファーの適用後のデータの出力先は、サーバ10Aが備える記憶装置や出力装置であってよく、サーバ10Aから見た外部装置であってもよい。
【0036】
第1の実施形態の一側面として、一以上のスタイル画像で構成されたスタイル画像のグループを柔軟に適用することができ、表現力の幅を広くすることができる。
【0037】
[第2の実施形態]
本発明の第2の実施形態の概要について説明をする。以下では、第2の実施形態として、コンピュータの一例であるサーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。なお、サーバは、図1に記載のビデオゲーム処理システム100が備えるサーバ10であってよい。
【0038】
図4は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Bは、取得部101と、スタイルトランスファー部102Bと、出力部103とを少なくとも備える。サーバ10Bが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101と、スタイルトランスファー部102Bと、出力部103とを機能的に実現する。
【0039】
取得部101は、画像データを取得する機能を有する。スタイルトランスファー部102Bは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを1回以上適用する機能を有する。スタイルトランスファー部102Bは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用してもよい。この場合にスタイルトランスファー部102Bは、画像データに対して既に適用されたスタイルトランスファーに用いられたものと同じ一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用してよい。出力部103は、スタイルトランスファーが適用された後のデータを出力する機能を有する。
【0040】
次に、本発明の第2の実施形態におけるプログラム実行処理について説明する。図5は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
【0041】
取得部101は、画像データを取得する(St21)。スタイルトランスファー部102Bは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用する(St22)。ステップSt22においてスタイルトランスファー部102Bは、画像データに対して既に適用されたスタイルトランスファーに用いられたものと同じ一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用する。出力部103は、スタイルトランスファーが適用された後のデータを出力する(St23)。
【0042】
取得部101による画像データの取得元は、取得部101がアクセス可能な記憶装置であってよい。例えば、取得部101は、サーバ10Bに設けられたメモリ12または記憶装置13から画像データを取得してよい。取得部101は、通信ネットワーク30を介して外部装置から画像データを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0043】
取得部101は、レンダリングに用いられるバッファ等から画像データを取得してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0044】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。スタイル画像とは、特定のスタイルで描かれた画像(静止画または動画)を意味している。
【0045】
スタイルトランスファー部102Bは、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。スタイルトランスファー部102Bがニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。
【0046】
出力部103によるスタイルトランスファー適用後のデータの出力先は、取得部101が画像データを取得したバッファとは異なるバッファであってよい。より特定的には、前記取得部101が画像データを取得したバッファを第1バッファとした場合、スタイルトランスファーの適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0047】
その他、出力部103によるスタイルトランスファーの適用後のデータの出力先は、サーバ10Bが備える記憶装置や出力装置であってよく、サーバ10Bから見た外部装置であってもよい。
【0048】
第2の実施形態の一側面として、画像データに対して既に適用されたスタイルトランスファーに用いられたものと同じ一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用することにより、スタイル画像が有する特徴をより強調し、また変形をより強くした出力画像を得ることができる。
【0049】
[第3の実施形態]
本発明の第3の実施形態の概要について説明をする。以下では、第3の実施形態として、コンピュータの一例であるサーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。なお、サーバは、図1に記載のビデオゲーム処理システム100が備えるサーバ10であってよい。
【0050】
図6は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Cは、取得部101と、スタイルトランスファー部102Cと、出力部103と、マスク取得部104とを少なくとも備える。サーバ10Cが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101と、スタイルトランスファー部102Cと、出力部103と、マスク取得部104とを機能的に実現する。
【0051】
取得部101は、画像データを取得する機能を有する。スタイルトランスファー部102Cは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを1回以上適用する機能を有する。スタイルトランスファー部102Cは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用してもよい。出力部103は、スタイルトランスファーが適用された後のデータを出力する機能を有する。マスク取得部104は、画像データにおける一部の領域についてスタイルトランスファーを抑制するマスクを取得する機能を有する。スタイルトランスファー部102Cは、マスクを用いて、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを適用する機能を有する。
【0052】
次に、本発明の第3の実施形態におけるプログラム実行処理について説明する。図7は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
【0053】
取得部101は、画像データを取得する(St31)。マスク取得部104は、画像データにおける一部の領域についてスタイルトランスファーを抑制するマスクを取得する(St32)。スタイルトランスファー部102Cは、マスクを用いて、画像データに対して一以上のスタイル画像に基づいたスタイルトランスファーを適用する(St33)。出力部103は、スタイルトランスファーが適用された後のデータを出力する(St34)。
【0054】
取得部101による画像データの取得元は、取得部101がアクセス可能な記憶装置であってよい。例えば、取得部101は、サーバ10Cに設けられたメモリ12または記憶装置13から画像データを取得してよい。取得部101は、通信ネットワーク30を介して外部装置から画像データを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0055】
取得部101は、レンダリングに用いられるバッファ等から画像データを取得してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0056】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。スタイル画像とは、特定のスタイルで描かれた画像(静止画または動画)を意味している。
【0057】
マスクとは、画像データにおける一部の領域についてスタイルトランスファーを抑制する事に用いられるデータである。例えば、画像データがRGBの3つのカラーチャネルを有する縦256ピクセル、横256ピクセルの画像データ(256×256×3)であるとする。この画像データに対するマスクは、例えば縦256ピクセル、横256ピクセルのデータであって、各ピクセルに0から1の間の数値が与えられたデータ(256×256×1)であってよい。マスクは、ピクセルの値が0に近づくほど、画像データの対応するピクセルにおけるスタイルトランスファーがより強く抑制されるものであってよい。ただし、マスクは前記とは異なるフォーマットを有していてもよい。例えば、マスクはピクセルの値が1に近づくほど、画像データの対応するピクセルにおけるスタイルトランスファーがより強く抑制されるものであってよい。また、マスクが有するピクセルの最大値は1を超えた値などあってもよい。マスクが有するピクセルの最小値は0より小さい値であってもよい。マスクが有するピクセルの値は0または1のみであってもよい(ハードマスク)。
【0058】
マスク取得部104によるマスクの取得元は、マスク取得部104がアクセス可能な記憶装置であってよい。例えば、マスク取得部104は、サーバ10Cに設けられたメモリ12または記憶装置13からマスクを取得してよい。マスク取得部104は、通信ネットワーク30を介して外部装置からマスクを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0059】
マスク取得部104は、画像データに基づいてマスクを生成してもよい。マスク取得部104は、レンダリングに用いられるバッファ等から取得したデータに基づいてマスクを生成してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。マスク取得部104は、その他の各種データに基づいてマスクを生成してよい。その他の各種データには、生成対象となるマスクとは異なるマスクのデータが含まれる。
【0060】
スタイルトランスファー部102Cは、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。スタイルトランスファー部102Cがニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。
【0061】
スタイルトランスファー部102Cは、取得部101が取得した画像データと、マスク取得部104が取得したマスクとを、スタイルトランスファー用のニューラルネットワークに入力する。これにより、マスクを用いて、画像データに対して一以上のスタイル画像に基づいたスタイルトランスファーを適用することができる。
【0062】
出力部103によるスタイルトランスファー適用後のデータの出力先は、取得部101が画像データを取得したバッファとは異なるバッファであってよい。より特定的には、前記取得部101が画像データを取得したバッファを第1バッファとした場合、スタイルトランスファーの適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0063】
その他、出力部103によるスタイルトランスファーの適用後のデータの出力先は、サーバ10Cが備える記憶装置や出力装置であってよく、サーバ10Cから見た外部装置であってもよい。
【0064】
第3の実施形態の一側面として、画像データにおける一部の領域についてのスタイルトランスファーをマスクによって抑制しつつ、それ以外の領域については抑制無しでスタイルトランスファーを行うことができる。
【0065】
[第4の実施形態]
本発明の第4の実施形態の概要について説明をする。以下では、第4の実施形態として、コンピュータの一例であるサーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。なお、サーバは、図1に記載のビデオゲーム処理システム100が備えるサーバ10であってよい。
【0066】
図8は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Dは、取得部101と、スタイルトランスファー部102Dと、出力部103と、マスク取得部104とを少なくとも備える。サーバ10Dが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101と、スタイルトランスファー部102Dと、出力部103と、マスク取得部104とを機能的に実現する。
【0067】
取得部101は、画像データを取得する機能を有する。スタイルトランスファー部102Dは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを1回以上適用する機能を有する。スタイルトランスファー部102Dは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用してもよい。出力部103は、スタイルトランスファーが適用された後のデータを出力する機能を有する。マスク取得部104は、画像データにおける一部の領域についてスタイルトランスファーを抑制するマスクを取得する機能を有する。スタイルトランスファー部102Dは、スタイルトランスファーを抑制する領域が異なる複数のマスクを用いて、画像データに対して、複数のスタイル画像からなる複数のスタイルに基づいたスタイルトランスファーを適用する機能を有する。
【0068】
次に、本発明の第4の実施形態におけるプログラム実行処理について説明する。図9は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
【0069】
取得部101は、画像データを取得する(St41)。マスク取得部104は、画像データにおける一部の領域についてスタイルトランスファーを抑制するマスクを複数、取得する(St42)。なお、取得される複数のマスクは、スタイルトランスファーを抑制する領域がそれぞれ異なるものである。スタイルトランスファー部102Dは、スタイルトランスファーを抑制する領域が異なる複数のマスクを用いて、画像データに対して、複数のスタイル画像からなる複数のスタイルに基づいたスタイルトランスファーを適用する(St43)。出力部103は、スタイルトランスファーが適用された後のデータを出力する(St44)。
【0070】
取得部101による画像データの取得元は、取得部101がアクセス可能な記憶装置であってよい。例えば、取得部101は、サーバ10Dに設けられたメモリ12または記憶装置13から画像データを取得してよい。取得部101は、通信ネットワーク30を介して外部装置から画像データを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0071】
取得部101は、レンダリングに用いられるバッファ等から画像データを取得してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0072】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。スタイル画像とは、特定のスタイルで描かれた画像(静止画または画像)を意味している。
【0073】
マスクとは、画像データにおける一部の領域についてスタイルトランスファーを抑制する事に用いられるデータである。例えば、画像データがRGBの3つのカラーチャネルを有する縦256ピクセル、横256ピクセルの画像データ(256×256×3)であるとする。この画像データに対するマスクは、例えば縦256ピクセル、横256ピクセルのデータであって、各ピクセルに0から1の間の数値が与えられたデータ(256×256×1)であってよい。マスクは、ピクセルの値が0に近づくほど、画像データの対応するピクセルにおけるスタイルトランスファーがより強く抑制されるものであってよい。ただし、マスクは前記とは異なるフォーマットを有していてもよい。例えば、マスクはピクセルの値が1に近づくほど、画像データの対応するピクセルにおけるスタイルトランスファーがより強く抑制されるものであってよい。また、マスクが有するピクセルの最大値は1を超えた値などあってもよい。マスクが有するピクセルの最小値は0より小さい値であってもよい。マスクが有するピクセルの値は0または1のみであってもよい(ハードマスク)。
【0074】
マスク取得部104によるマスクの取得元は、マスク取得部104がアクセス可能な記憶装置であってよい。例えば、マスク取得部104は、サーバ10Dに設けられたメモリ12または記憶装置13からマスクを取得してよい。マスク取得部104は、通信ネットワーク30を介して外部装置からマスクを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0075】
マスク取得部104は、画像データに基づいてマスクを生成してもよい。マスク取得部104は、レンダリングに用いられるバッファ等から取得したデータに基づいてマスクを生成してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。マスク取得部104は、その他の各種データに基づいてマスクを生成してよい。その他の各種データには、生成対象となるマスクとは異なるマスクのデータが含まれる。
【0076】
スタイルトランスファー部102Dは、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。スタイルトランスファー部102Dがニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。
【0077】
スタイルトランスファー部102Dは、取得部101が取得した画像データと、マスク取得部104が取得した複数のマスクとを、スタイルトランスファー用のニューラルネットワークに入力する。これにより、複数のマスクを用いて、画像データに対して複数のスタイル画像に基づいたスタイルトランスファーを適用することができる。なお、スタイルトランスファーを抑制する領域が異なる他のマスクを、入力されたマスクに基づいて生成するような処理ブロックを、スタイルトランスファー用のニューラルネットワークに設けてもよい。そしてスタイルトランスファー部102Dは、マスク取得部104が取得した一以上のマスク(他のマスク以外のマスク)を、スタイルトランスファー用のニューラルネットワークに入力してもよい。
【0078】
出力部103によるスタイルトランスファー適用後のデータの出力先は、取得部101が画像データを取得したバッファとは異なるバッファであってよい。より特定的には、前記取得部101が画像データを取得したバッファを第1バッファとした場合、スタイルトランスファーの適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0079】
その他、出力部103によるスタイルトランスファーの適用後のデータの出力先は、サーバ10Dが備える記憶装置や出力装置であってよく、サーバ10Dから見た外部装置であってもよい。
【0080】
第4の実施形態の一側面として、スタイルトランスファーを抑制する領域が異なる複数のマスクを用いることにより、画像データに対して、画像データの領域毎に異なるスタイルを適用することができる。
【0081】
第4の実施形態の一側面として、マスクが有する値を適宜調整することにより、画像データにおけるある領域について、一以上のスタイル画像からなる第1のスタイルに基づいたスタイルトランスファーと、一以上のスタイル画像からなる第2のスタイルに基づいたスタイルトランスファーとをブレンドすることができる。
【0082】
[第5の実施形態]
本発明の第5の実施形態の概要について説明をする。以下では、第5の実施形態として、コンピュータの一例であるサーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。なお、サーバは、図1に記載のビデオゲーム処理システム100が備えるサーバ10であってよい。
【0083】
図10は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Eは、取得部101と、スタイルトランスファー部102Eと、出力部103とを少なくとも備える。サーバ10Eが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101と、スタイルトランスファー部102Eと、出力部103とを機能的に実現する。
【0084】
取得部101は、画像データを取得する機能を有する。スタイルトランスファー部102Eは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを1回以上適用する機能を有する。スタイルトランスファー部102Eは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用してもよい。
【0085】
スタイルトランスファー部102Eは、画像データに含まれる色であるコンテンツ色と、前記画像データに対して適用する一以上のスタイル画像に含まれる色であるスタイル色との間の色で構成されたデータを出力するように、前記画像データに対してスタイルトランスファーを適用する機能を有する。
【0086】
出力部103は、スタイルトランスファーが適用された後のデータを出力する機能を有する。
【0087】
次に、本発明の第5の実施形態におけるプログラム実行処理について説明する。図11は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
【0088】
取得部101は、画像データを取得する(St51)。スタイルトランスファー部102Eは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを適用する(St52)。ステップSt52においてスタイルトランスファー部102Eは、画像データに含まれる色であるコンテンツ色と、前記画像データに対して適用する一以上のスタイル画像に含まれる色であるスタイル色との間の色で構成されたデータを出力するように、前記画像データに対してスタイルトランスファーを適用する。出力部103は、スタイルトランスファーが適用された後のデータを出力する(St53)。
【0089】
取得部101による画像データの取得元は、取得部101がアクセス可能な記憶装置であってよい。例えば、取得部101は、サーバ10Eに設けられたメモリ12または記憶装置13から画像データを取得してよい。取得部101は、通信ネットワーク30を介して外部装置から画像データを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0090】
取得部101は、レンダリングに用いられるバッファ等から画像データを取得してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0091】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。スタイル画像とは、特定のスタイルで描かれた画像(静止画または動画)を意味している。
【0092】
スタイルトランスファー部102Eは、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。スタイルトランスファー部102Eがニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。
【0093】
出力部103によるスタイルトランスファー適用後のデータの出力先は、取得部101が画像データを取得したバッファとは異なるバッファであってよい。より特定的には、前記取得部101が画像データを取得したバッファを第1バッファとした場合、スタイルトランスファーの適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0094】
その他、出力部103によるスタイルトランスファーの適用後のデータの出力先は、サーバ10Eが備える記憶装置や出力装置であってよく、サーバ10Eから見た外部装置であってもよい。
【0095】
第5の実施形態の一側面として、出力画像を構成する色が、元の画像(コンテンツ画像)を構成する色であるコンテンツ色とスタイル画像を構成する色であるスタイル色との間の色になるようにしつつ、元の画像に対してスタイル変換を行った出力画像を得ることができる。
【0096】
[第6の実施形態]
本発明の第6の実施形態の概要について説明をする。以下では、第6の実施形態として、コンピュータの一例であるサーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。なお、サーバは、図1に記載のビデオゲーム処理システム100が備えるサーバ10であってよい。
【0097】
図12は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Xは、取得部101Xと、スタイルトランスファー部102Xと、出力部103Xとを少なくとも備える。サーバ10Xが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101Xと、スタイルトランスファー部102Xと、出力部103Xとを機能的に実現する。
【0098】
取得部101Xは、画像データを取得する機能を有する。スタイルトランスファー部102Xは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを1回以上適用する機能を有する。スタイルトランスファー部102Xは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用してもよい。この場合にスタイルトランスファー部102Xは、画像データに対して既に適用されたスタイルトランスファーに用いられたものと同じ一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用してよい。スタイルトランスファー部102Xは、画像データに対して既に適用されたスタイルトランスファーに用いられたものとは異なる画像を含む一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用してもよい。出力部103Xは、スタイルトランスファーが適用された後のデータを出力する機能を有する。
【0099】
次に、本発明の第6の実施形態におけるプログラム実行処理について説明する。図13は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
【0100】
取得部101Xは、画像データを取得する(St61)。スタイルトランスファー部102Xは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用する(St62)。出力部103Xは、スタイルトランスファーが適用された後のデータを出力する(St63)。
【0101】
取得部101Xによる画像データの取得元は、取得部101Xがアクセス可能な記憶装置であってよい。例えば、取得部101Xは、サーバ10Xに設けられたメモリ12または記憶装置13から画像データを取得してよい。取得部101Xは、通信ネットワーク30を介して外部装置から画像データを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0102】
取得部101Xは、レンダリングに用いられるバッファ等から画像データを取得してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0103】
レンダリングに用いられるバッファは3Dバッファであってよい。レンダリングに用いられる3Dバッファとは、例えば3次元空間を表現可能なデータを格納するバッファを意味する。
【0104】
レンダリングに用いられるバッファは中間バッファであってもよい。レンダリングに用いられる中間バッファとは、レンダリング処理の途中で用いられるバッファである。中間バッファの一例として、RGBバッファ、BaseColorバッファ、Metallicバッファ、Specularバッファ、Roughnessバッファ、Normalバッファなどがある。これらのバッファは、最終的に出力されるCG画像が格納される最終バッファより前に配置されたバッファであり、最終バッファとは異なるバッファである。レンダリングに用いられる中間バッファは、列挙された前述のバッファには限られない。
【0105】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。スタイル画像とは、特定のスタイルで描かれた画像(静止画または動画)を意味している。
【0106】
出力部103Xによるスタイルトランスファー適用後のデータの出力先は、取得部101Xが画像データを取得したバッファとは異なるバッファであってよい。より特定的には、前記取得部101Xが画像データを取得したバッファを第1バッファとした場合、スタイルトランスファーの適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0107】
その他、出力部103Xによるスタイルトランスファーの適用後のデータの出力先は、サーバ10Xが備える記憶装置や出力装置であってよく、サーバ10Xから見た外部装置であってもよい。
【0108】
(単一のスタイルに基づくスタイルトランスファー)
スタイルトランスファー部102Xは、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。スタイルトランスファー部102がニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。
【0109】
図14は、本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーに用いられるニューラルネットワークN1の構造例を示す概念図である。ニューラルネットワークN1は、入力画像に基づくピクセル群を潜在(Latent)パラメータに変換する第1変換層と、畳み込み(Convolution)等によりダウンサンプリングを行う1以上の層と、複数の残差ブロック(Residual Blocks)層と、アップサンプリングを行う層と、潜在(Latent)パラメータをピクセル群に変換する第2変換層とを含む。なお、第2変換層の出力であるピクセル群に基づいて出力画像が得られる。
【0110】
ニューラルネットワークN1の第1変換層とダウンサンプリングを行う層との間や、ダウンサンプリングを行う層に含まれる複数の畳み込み層同士の間等に、全結合層が配置される。全結合層は、アフィン層(Affine layer)とも呼ばれている。
【0111】
スタイルトランスファー部102Xは、取得部101Xが取得した画像データを、ニューラルネットワークN1の第1変換層に入力する。これにより、スタイルトランスファー適用後のデータがニューラルネットワークN1の第2変換層から出力される。
【0112】
(複数のスタイル画像をブレンドしたスタイルトランスファー)
スタイルトランスファー部102Xは、入力画像の同一箇所に対して複数のスタイルをブレンドしたスタイルトランスファーを行ってもよい。この場合にスタイルトランスファー部102Xは、ニューラルネットワークの所定の層において複数のスタイル画像に基づくパラメータを混入し、最適化関数に基づいて最適化処理を行って得られた学習済みのニューラルネットワークに、入力画像データを入力する。なお、最適化関数は、前記複数のスタイル画像に基づいて定義されたものであれば好適である。
【0113】
図15は、本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーに用いられるニューラルネットワークN2の構造例を示す概念図である。ニューラルネットワークN2は、入力画像に基づくピクセル群を潜在(Latent)パラメータに変換する第1変換層と、畳み込み(Convolution)等によりダウンサンプリングを行う1以上の層と、複数の残差ブロック(Residual Blocks)層と、アップサンプリングを行う層と、潜在(Latent)パラメータをピクセル群に変換する第2変換層とを含む。なお、第2変換層の出力であるピクセル群に基づいて出力画像が得られる。
【0114】
ニューラルネットワークN2の第1変換層とダウンサンプリングを行う層との間や、ダウンサンプリングを行う層に含まれる複数の畳み込み層同士の間等には全結合層が配置される。全結合層は、アフィン層(Affine layer)とも呼ばれている。
【0115】
ニューラルネットワークN2のアフィン層A1には、複数のスタイル画像に基づくパラメータが混入される。より具体的には、以下の通りである。
【0116】
ニューラルネットワークN2のアフィン層A1は、アフィン変換のパラメータをaおよびbとし、画像のピクセルの潜在(Latent)変数をxとした場合、畳み込み層の出力の潜在変数xを、x*a+bに変換する処理を行う層である。
【0117】
ここで、任意のスタイル1とスタイル2とをブレンドする場合、スタイルトランスファー部102Xによる制御の下で、アフィン層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%などのように、各スタイルに基づく影響度がそれぞれ異なる割合となるように重みづけを行った上でブレンドしてもよい。
【0118】
ブレンドするスタイルの数は3以上であってもよい。nが3以上の自然数である場合に、n個のスタイルをブレンドする場合のアフィン変換パラメータは、例えばa=(a+a……+a)/nと、b=(b+b……+b)/nとであってよい。なお、kが1からnまでの間の任意の自然数である場合に、スタイルkに係るスタイル画像から導出されたアフィン変換パラメータをaおよびbとする。各スタイルに基づく影響度がそれぞれ異なる割合となるように重みづけを行った上でブレンドしてもよい点については、前述のスタイルの数が2の場合と同様である。
【0119】
サーバ10Xのメモリ12等には、複数のスタイルについての変換パラメータaおよびbが保存されていてよい。また、複数のスタイルについての変換パラメータは、例えば(a,a,……,a)および(b,b,……,b)等のように、ベクトル形式でメモリ12や記憶装置13等に保存されていてもよい。各スタイルに基づく影響度がそれぞれ異なる割合となるように重みづけを行う場合は、各スタイルに応じたウェイトを示す値がメモリ12や記憶装置13等に保存されていてもよい。
【0120】
次に、ニューラルネットワークN2について機械学習を行うための最適化関数について説明する。最適化関数は損失関数とも呼ばれることがある。ニューラルネットワークN2に対して、複数のスタイル画像に基づいて定義された最適化関数に基づいて最適化処理を行うことにより、学習済みのニューラルネットワークN2が得られる。なお、説明の便宜上、学習前後のそれぞれのニューラルネットワークについて、同じ参照符号であるN2が用いられている。
【0121】
例えば、上述の関連する技術においては、以下のように定義された最適化関数が用いられている。
【0122】
スタイル最適化関数:
【数1】
【0123】
コンテンツ最適化関数:
【数2】
【0124】
上述の最適化関数において、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はフロベニウスノルムを意味する。
【0125】
上述のスタイル最適化関数およびコンテンツ最適化関数によって定義された最適化関数の値を最小化するようにニューラルネットワークに対して機械学習を行い、学習後のニューラルネットワークに入力画像を入力することにより、スタイル画像が示すスタイルに近づくように変換がなされた出力画像がニューラルネットワークから出力される。
【0126】
ここで、上記のような最適化関数を用いた最適化処理では、複数のスタイルをブレンドしてスタイルトランスファーを行う場合に、ブレンドの結果は改良の余地があるものとなった。
【0127】
そこでサーバ10Xは、複数のスタイル画像に基づいて定義された最適化関数に基づいて最適化処理を行う。これにより、複数のスタイル画像に基づいた最適化を行うことができる。その結果、入力画像に対して複数のスタイルがきれいにブレンドされた出力画像を得ることができる。
【0128】
より具体的には、最適化処理は、複数のスタイル画像から選ばれた任意の二つのスタイル画像に基づいて定義された第1の最適化関数を用いて最適化処理を行う、第1の最適化処理と、前記複数のスタイル画像における一つのスタイル画像に基づいて定義された第2の最適化関数を用いて最適化処理を行う、第2の最適化処理とを含んでいてよい。これにより、ブレンドしたいスタイルの数が3以上である場合に、好適な最適化を行う事ができる。その結果、入力画像に対して複数のスタイルがよりきれいにブレンドされた出力画像を得ることができる。
【0129】
次に、第1の最適化関数および第2の最適化関数について説明する。第6の実施形態の一側面として、第1の最適化関数は以下の式(1)で定義されてよい。
【0130】
【数3】
【0131】
第6の実施形態の一側面として、第2の最適化関数は以下の式(2)で定義されてよい。
【0132】
【数4】
【0133】
上記の式において、
【0134】
【数5】
【0135】
は複数のスタイル画像からなるスタイル画像群であり、qおよびrはスタイル画像群に含まれる任意のスタイル画像を示す。ただし、qとrは互いに異なるスタイル画像である。Ni,rはφ特徴マップの行数である。Ni,cはφ特徴マップの列数である。p、s(小文字のs)、G、φ、S、c(小文字のc)、およびFについては、上述の関連する技術におけるものと同様である。
【0136】
上記の第1の最適化関数は、生成された画像をpとし、複数のスタイル画像から選ばれた任意の二つのスタイル画像をqおよびrとしたときに、画像pに所定の演算を行って得られた値と、スタイル画像qおよびrにそれぞれ前記所定の演算を行って得られた値の平均値と、の間のノルムを合算する関数である。上記の式(1)は、所定の演算が、
【0137】
【数6】
【0138】
である場合を示している。所定の演算は、上記以外の演算であってもよい。
【0139】
上記の第2の最適化関数は、生成された画像をpとし、スタイル画像をsとしたときに、画像pに所定の演算を行って得られた値と、スタイル画像sに前記所定の演算を行って得られた値との間のノルムを合算する関数である。上記の式(2)は、所定の演算が、
【0140】
【数7】
【0141】
である場合を示している。所定の演算は、上記以外の演算であってもよい。
【0142】
次に、上述の第1の最適化関数および第2の最適化関数を用いた最適化処理の例について説明する。
【0143】
図16は、本発明の実施形態の少なくとも一つに対応する最適化処理の処理例を示すフローチャートである。ここでは、第1の最適化関数が上記の式(1)で定義される関数であり、第2の最適化関数が上記の式(2)で定義される関数である場合の処理例について説明する。
【0144】
最適化処理の処理主体は、装置が備えるプロセッサである。プロセッサを備えた装置(以下、装置A)は上述のサーバ10Xであってよい。この場合、図1に示したプロセッサ11が処理主体となる。プロセッサを備えた装置Aは、サーバ10X以外の他の装置(例えば、ユーザ端末20や他のサーバ等)であってもよい。
【0145】
ブレンドされるスタイルの数をnとする。プロセッサは、スタイル画像群に含まれるn個のスタイル画像の中から、任意の二つのスタイル画像qおよびrを選択する(St71)。
【0146】
プロセッサは、選択されたスタイル画像qおよびrについての第1の最適化関数の値を最小化するように最適化を行う(St72)。なお、生成された画像pについては、プロセッサがニューラルネットワークの出力画像を画像pとして取得する。ニューラルネットワークは、装置Aに実装されていてもよく、装置A以外の他の装置に実装されていてもよい。
【0147】
プロセッサは、通りの全パターンにつき最適化を行ったか否かを判定する(St73)。すなわちプロセッサは、n個のスタイル画像の中から任意の二つのスタイル画像qおよびrを選択することについて、全てのパターンを処理済みであるか否かを判定する。通りの全パターンにつき最適化を行った場合(St73:YES)、ステップSt74へと処理が遷移する。通りの全パターンにつき最適化を行っていない場合(St73:NO)、ステップSt71へと処理が戻り、プロセッサが次の二つのスタイル画像qおよびrの組み合わせを選択する。
【0148】
プロセッサは、スタイル画像群に含まれるn個のスタイル画像の中から、一つのスタイル画像sを選択する(St74)。
【0149】
プロセッサは、選択されたスタイル画像sについての第2の最適化関数の値を最小化するように最適化を行う(St75)。なお、生成された画像pについては、プロセッサがニューラルネットワークの出力画像を画像pとして取得する。ニューラルネットワークは、装置Aに実装されていてもよく、装置A以外の他の装置に実装されていてもよい。
【0150】
プロセッサは、通りの全パターンにつき最適化を行ったか否かを判定する(St76)。すなわちプロセッサは、n個のスタイル画像の中から任意のスタイル画像sを選択することについて、全てのパターンを処理済みであるか否かを判定する。通りの全パターンにつき最適化を行った場合(St76:YES)、図16に示した最適化処理は終了する。通りの全パターンにつき最適化を行っていない場合(St76:NO)、ステップSt74へと処理が戻り、プロセッサが次の一つのスタイル画像sを選択する。
【0151】
スタイルトランスファー部102Xは、例えば上記のようにして最適化が行われた学習済みのニューラルネットワークN2の第1変換層に、取得部101Xが取得した画像データを入力する。これにより、n個のスタイル画像がきれいにブレンドされたスタイルトランスファーの適用後のデータがニューラルネットワークN2の第2変換層から出力される。
【0152】
例えば上記のように、スタイルトランスファー部102Xは、単一のスタイル、または複数のスタイルに基づいて、画像データに対してスタイルトランスファーを適用することができる。
【0153】
(スタイルトランスファーの重ね適用)
ここで図13を再び参照すると、スタイルトランスファー部102Xは、一以上のスタイル画像に基づいたスタイルトランスファーを、複数回重ねて適用する(図13、ステップSt62)。以下、スタイルトランスファーを複数回重ねて適用する処理について説明する。
【0154】
図17は、本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーを複数回重ねて適用する処理例を示す概念図である。まず、同じ一以上のスタイル画像に基づいたスタイルトランスファーを数回重ねて適用する処理例について説明する。
【0155】
スタイルトランスファー用のニューラルネットワークは、例えば上述のニューラルネットワークN1またはN2であってよい。それ以外のニューラルネットワークであってもよい。スタイルトランスファー部102Xは、取得部101Xが取得した入力画像Xをスタイルトランスファー用のニューラルネットワークに入力する。すると、ニューラルネットワークから出力画像Xが出力される。入力画像Xを入力すると出力画像Xが出力されるものであるため、スタイルトランスファー用のニューラルネットワークを、入力画像Xを出力画像Xに変換するファンクションF(X)と表現する。
【0156】
スタイルトランスファー部102Xは、スタイルトランスファーが1回適用された後の出力画像Xを入力画像として、スタイルトランスファー用のニューラルネットワークに再度入力する。これにより、出力画像Xが出力される。出力画像Xは、入力画像Xに対して、スタイルトランスファーを2回重ねて適用して得られた画像に相当する。
【0157】
図18は、本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーを複数回重ねて適用する処理例を示す概念図である。
【0158】
スタイルトランスファー部102Xは、図17に示したのと同様にして、一つ前のスタイルトランスファーによる出力画像を入力画像としたスタイルトランスファーをN回重ねて適用する。その結果、出力画像Xが出力される。
【0159】
スタイルトランスファーが1回だけ適用された後の出力画像Xと、同じ一以上のスタイル画像に基づくスタイルトランスファーがN回重ねて適用された後の出力画像Xとを比較すると、出力画像Xの方が、適用されたスタイルの特徴がより強調されている。また、入力画像Xを基準とした出力画像Xの線の変形が、入力画像Xを基準とした出力画像Xの線の変形よりも大きい。
【0160】
このように、スタイルトランスファー部102Xが、画像データに対して既に適用されたスタイルトランスファーに用いられたものと同じ一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用することにより、スタイル画像が有する特徴をより強調し、また変形をより強くした出力画像を得ることができる。
【0161】
図19は、本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーを複数回重ねて適用する処理例を示す概念図である。ここでは、画像データに対して既に適用されたスタイルトランスファーに用いられたものとは異なる画像を含む一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用する処理例について説明する。
【0162】
スタイル画像A1に基づく1回のスタイルトランスファーの適用を、F(X)と表現する。スタイル画像A1とは異なるスタイル画像A2に基づく1回のスタイルトランスファーの適用を、F(X)と表現する。
【0163】
例えばスタイルトランスファー部102Xは、入力画像Xに対して、スタイル画像A1に基づくスタイルトランスファーを9回重ねて適用する。
【0164】
次に、スタイルトランスファー部102Xは、9回のスタイルトランスファーの重ね適用後の出力画像データを入力画像データとして、スタイル画像A2に基づくスタイルトランスファーの適用を1回行う。すなわちスタイルトランスファー部102Xは、画像データに対して既に適用されたスタイルトランスファーに用いられたもの(スタイル画像A1)とは異なるスタイル画像A2を含む一以上のスタイル画像に基づいたスタイルトランスファーを適用する。その結果、出力された出力画像X10は、スタイル画像A1およびスタイル画像A2の影響が動的にブレンドされた出力画像となる。
【0165】
なお、上記においては、それぞれ単一のスタイル画像(スタイル画像A1、スタイル画像A2)に基づくスタイルトランスファーを重ねて適用する処理例を説明した。しかし、スタイルトランスファー部102Xは、上述の複数のスタイル画像をブレンドしたスタイルトランスファーを複数回重ねて適用してもよい。
【0166】
下記の表は、スタイルトランスファーの重ね適用のパターン例を示している。ここでは、互いに異なるスタイル画像A1~A4があると仮定する。表中の数値は、スタイル画像の番号を示している。また、最大で10回の重ね適用が行われると仮定する。
【0167】
【表1】
【0168】
上記の表に記載されているパターンはあくまで一例であり、スタイルトランスファー部102Xは、これら以外の重ね適用のパターンに基づいてスタイルトランスファーを適用してもよい。スタイルトランスファーの重ね適用の回数も、10回には限定されない。
【0169】
上述のように、スタイルトランスファー部102Xは、画像データに対して既に適用されたスタイルトランスファーに用いられたものとは異なる画像を含む一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用する。これにより、画像データに対して、複数のスタイル画像を動的にスタイル適用することができる。
【0170】
第6の実施形態の一側面として、同じ一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用することにより、スタイルの特徴をより強調し、また変形をより強くした出力画像を得ることができる。
【0171】
第6の実施形態の一側面として、画像データに対して、複数のスタイル画像を動的にスタイル適用することができる。
【0172】
[第7の実施形態]
本発明の第7の実施形態の概要について説明をする。以下では、第7の実施形態として、サーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。なお、サーバは、図1に記載のビデオゲーム処理システム100が備えるサーバ10であってよい。
【0173】
図20は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Yは、取得部101Yと、スタイルトランスファー部102Yと、出力部103Yと、マスク取得部104Yとを少なくとも備える。サーバ10Yが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101Yと、スタイルトランスファー部102Yと、出力部103Yと、マスク取得部104Yとを機能的に実現する。
【0174】
取得部101Yは、画像データを取得する機能を有する。スタイルトランスファー部102Yは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを1回以上適用する機能を有する。スタイルトランスファー部102Yは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用してもよい。出力部103Yは、スタイルトランスファーが適用された後のデータを出力する機能を有する。マスク取得部104Yは、画像データにおける一部の領域についてスタイル変換を抑制するマスクを取得する機能を有する。スタイルトランスファー部102Yは、マスクを用いて、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを適用する機能を有する。
【0175】
次に、本発明の第7の実施形態におけるプログラム実行処理について説明する。図21は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
【0176】
取得部101Yは、画像データを取得する(St81)。マスク取得部104Yは、画像データにおける一部の領域についてスタイル変換を抑制するためのマスクを取得する(St82)。スタイルトランスファー部102Yは、マスクを用いて、画像データに対して一以上のスタイル画像に基づいたスタイルトランスファーを適用する(St83)。出力部103Yは、スタイルトランスファーが適用された後のデータを出力する(St84)。
【0177】
なお、ステップSt82においてマスク取得部104Yは、画像データにおける一部の領域についてスタイルトランスファーを抑制するマスクを複数、取得してもよい。この場合に取得される複数のマスクは、スタイルトランスファーを抑制する領域がそれぞれ異なるものである。ステップSt83においてスタイルトランスファー部102Yは、スタイルトランスファーを抑制する領域が異なる複数のマスクを用いて、画像データに対して、複数のスタイル画像からなる複数のスタイルに基づいたスタイルトランスファーを適用する。
【0178】
取得部101Yによる画像データの取得元は、取得部101Yがアクセス可能な記憶装置であってよい。例えば、取得部101Yは、サーバ10Yに設けられたメモリ12または記憶装置13から画像データを取得してよい。取得部101Yは、通信ネットワーク30を介して外部装置から画像データを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0179】
取得部101Yは、レンダリングに用いられるバッファ等から画像データを取得してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0180】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。スタイル画像とは、特定のスタイルで描かれた画像(静止画または動画)を意味している。
【0181】
マスクとは、画像データにおける一部の領域についてスタイルトランスファーを抑制する事に用いられるデータである。例えば、画像データがRGBの3つのカラーチャネルを有する縦256ピクセル、横256ピクセルの画像データ(256×256×3)であるとする。この画像データに対するマスクは、例えば縦256ピクセル、横256ピクセルのデータであって、各ピクセルに0から1の間の数値が与えられたデータ(256×256×1)であってよい。マスクは、ピクセルの値が0に近づくほど、画像データの対応するピクセルにおけるスタイルトランスファーがより強く抑制されるものであってよい。ただし、マスクは前記とは異なるフォーマットを有していてもよい。例えば、マスクはピクセルの値が1に近づくほど、画像データの対応するピクセルにおけるスタイルトランスファーがより強く抑制されるものであってよい。また、マスクが有するピクセルの最大値は1を超えた値などあってもよい。マスクが有するピクセルの最小値は0より小さい値であってもよい。マスクが有するピクセルの値は0または1のみであってもよい(ハードマスク)。
【0182】
マスク取得部104Yによるマスクの取得元は、マスク取得部104Yがアクセス可能な記憶装置であってよい。例えば、マスク取得部104Yは、サーバ10Yに設けられたメモリ12または記憶装置13からマスクを取得してよい。マスク取得部104Yは、通信ネットワーク30を介して外部装置からマスクを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0183】
マスク取得部104Yは、画像データに基づいてマスクを生成してもよい。マスク取得部104Yは、レンダリングに用いられるバッファ等から取得したデータに基づいてマスクを生成してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。マスク取得部104Yは、その他の各種データに基づいてマスクを生成してよい。その他の各種データには、生成対象となるマスクとは異なるマスクのデータが含まれる。
【0184】
スタイルトランスファー部102Yは、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。スタイルトランスファー部102Yがニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。
【0185】
スタイルトランスファー部102Yは、取得部101Yが取得した画像データと、マスク取得部104Yが取得したマスクとを、スタイルトランスファー用のニューラルネットワークに入力する。これにより、マスクを用いて、画像データに対して一以上のスタイル画像に基づいたスタイルトランスファーを適用することができる。
【0186】
スタイルトランスファー部102Yは、取得部101Yが取得した画像データと、マスク取得部104Yが取得した複数のマスクとを、スタイルトランスファー用のニューラルネットワークに入力してもよい。これにより、複数のマスクを用いて、画像データに対して複数のスタイル画像に基づいたスタイルトランスファーを適用することができる。なお、スタイルトランスファーを抑制する領域が異なる他のマスクを、入力されたマスクに基づいて生成するような処理ブロックを、スタイルトランスファー用のニューラルネットワークに設けてもよい。そしてスタイルトランスファー部102Yは、マスク取得部104Yが取得した一以上のマスク(他のマスク以外のマスク)を、スタイルトランスファー用のニューラルネットワークに入力してもよい。
【0187】
出力部103Yによるスタイルトランスファー適用後のデータの出力先は、取得部101Yが画像データを取得したバッファとは異なるバッファであってよい。より特定的には、取得部101Yが画像データを取得したバッファを第1バッファとした場合、スタイルトランスファーの適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0188】
その他、出力部103Yによるスタイルトランスファーの適用後のデータの出力先は、サーバ10Yが備える記憶装置や出力装置であってよく、サーバ10Yから見た外部装置であってもよい。
【0189】
図22は、本発明の実施形態の少なくとも一つに対応する、マスクを用いたスタイルトランスファーに用いられるニューラルネットワークN3の構造例を示す概念図である。
【0190】
ニューラルネットワークN3は、複数の処理層P~Pを有する。また、ニューラルネットワークN3は残差ブロックRを有する。
【0191】
処理層P図14および図15の第1変換層に相当する。処理層Pおよび処理層P図14および図15のダウンサンプリングを行う1以上の層に相当する。残差ブロックRは図14および図15の残差ブロック(Residual Blocks)層に相当する。処理層Pおよび処理層P図14および図15のアップサンプリングを行う層に相当する。図22のニューラルネットワークN3は、図14および図15に示した第2変換層をさらに有していてよい。
【0192】
処理層Pは256×256×32のサイズを有する。処理層Pは128×128×64のサイズを有する。処理層Pは64×64×128のサイズを有する。処理層Pは、128×128×64のサイズを有する。処理層Pは256×256×32のサイズを有する。なお、処理層の数および処理層のサイズはあくまで一例である。
【0193】
スタイルトランスファー部102Yは、入力画像とマスクとを処理層Pに入力する。処理層Pから処理層Pには、それぞれ、畳み込み処理(Convolution)と正規化処理(Normalization)とが含まれている。正規化処理の種類は、例えばconditional instance normalizationであってよい。
【0194】
基本的に、各処理層による処理後には特徴量データが抽出される。抽出された特徴量データは次の処理層に入力される。すなわち、処理層Pから抽出された特徴量データが処理層Pに入力される。処理層Pから抽出された特徴量データが処理層Pに入力される。処理層Pから抽出された特徴量データが処理層Pに入力される。処理層Pについては、処理層Pによる処理結果が残差ブロックRに入力される。残差ブロックRの出力が処理層Pに入力される。
【0195】
各処理層P~Pにはマスクが入力される。処理層のサイズは処理層によって異なるので、マスクのサイズも処理層に応じて適合化される。例えば、処理層Pには、処理層Pに入力されたマスクを縮小させたマスクが入力される。処理層Pには、処理層Pに入力されたマスクを縮小させたマスクが入力される。マスクの縮小は、例えばバイリニア(Bilinear)法に基づいた縮小であってよい。
【0196】
本実施の形態においては、処理層Pのサイズと処理層Pのサイズが同じであるため、処理層Pには処理層Pに入力されたマスクが入力される。同様に、処理層Pのサイズと処理層Pのサイズが同じであるため、処理層Pには処理層Pに入力されたマスクが入力される。
【0197】
図23は、本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーに用いられるマスクの例を示す概念図である。
【0198】
例えば処理層Pに入力されるマスクは、入力画像のタテ256×ヨコ256と同様の、タテ256×ヨコ256のサイズを有する。マスクにはソフトマスクとハードマスクが含まれる。本実施の形態では、ソフトマスクが処理層Pに入力されたと仮定して説明する。また、スタイルトランスファー部102Yが入力画像の左半分をスタイルAにスタイル変換し、入力画像の右半分をスタイルBにスタイル変換する場合を例示して以下に説明を行う。スタイルAは、一以上のスタイル画像に対応するスタイルである。すなわち、スタイルAは、一つのスタイル画像(ゴッホ風等)に対応する場合もある一方、複数のスタイル画像(ゴッホ風の画像とモネ風の画像のブレンド等)に対応する場合もある。スタイルBは、一つのスタイル画像(ゴーギャン風等)に対応する場合もある一方、複数のスタイル画像(ゴーギャン風の画像とピカソ風の画像のブレンド等)に対応する場合もある。なお、入力画像を左右に2分割してスタイル変換を行う事は例示にすぎない。マスクが有する値をどのように設定するかによって、例えば上下2分割してのスタイルトランスファー、3分割以上の分割を行ってのスタイルトランスファー、または、入力画像におけるある領域において複数のスタイルが混ざるようなスタイルトランスファー等を、柔軟に行うことができる。
【0199】
スタイルトランスファー部102Yが入力画像の左半分をスタイルAにスタイル変換し、入力画像の右半分をスタイルBにスタイル変換する場合、スタイルトランスファー部102Yは左半分と右半分とで異なる値を有するソフトマスクを処理層Pに入力する。
【0200】
図23に示した例においては、ソフトマスクの左半分である第1列から第128列において、第1行の値がそれぞれ1であり、第256行の値がそれぞれ0.5である。第1列から第128列の第2行から第255行は、1から0.5へ向けて徐々に値が小さくなるような数値を有する。
【0201】
図23に示した例においては、ソフトマスクの右半分である第129列から第256列において、第1行の値がそれぞれ0.49であり、第256行の値がそれぞれ0である。第129列から第256列の第2行から第255行は、0.49から0へ向けて徐々に値が小さくなるような数値を有する。
【0202】
次に、ハードマスクについて説明する。ハードマスクは、各行各列の数値が0または1であるようなマスクである。例えば、ハードマスクの左半分である第1列~第128列においては値が全て1であり、右半分である第129列~第256列においては値が全て0であるようなハードマスクが考えられる。このハードマスクは、前述のソフトマスクにおける各行各列の数値をそれぞれ四捨五入することによって生成することができる。
【0203】
図24は、本発明の実施形態の少なくとも一つに対応する、処理層で行われる正規化に用いられるパラメータの計算方法を例示する概念図である。図25は、本発明の実施形態の少なくとも一つに対応する、処理層で行われる正規化に用いられるパラメータの計算方法を例示する概念図である。図26は、本発明の実施形態の少なくとも一つに対応する、処理層で行われる正規化を例示する概念図である。図24から図26に基づいて、処理層で行われる正規化の例を説明する。
【0204】
処理層毎に、抽出される特徴量データのサイズは異なる(図22参照)。また、特徴量データのサイズは入力画像によっても変わり得る。ここでは、畳み込み(Convolution)後の128×128×64のサイズを有する特徴量を例示して、正規化について説明する。
【0205】
入力画像の左半分に適用するスタイルAに対応するハードマスク(スタイルA用ハードマスク)は、図24に示したような、左半分の値が全て1であり、右半分の値がすべて0であるような、タテ128×ヨコ128のハードマスクである。スタイルA用ハードマスクは、図22および図23に示したソフトマスク(スタイルA用ソフトマスクと表記することがある)における各行各列の数値をそれぞれ四捨五入することによって生成することができる。
【0206】
スタイルトランスファー部102Yは、畳み込み後のタテ128×ヨコ128の特徴量データに対して、上述のスタイルA用ハードマスクを適用する。マスクの適用方法は、例えばブーリアンマスク(boolean mask)であってよい。ただし、ブーリアンマスク以外のマスクの適用アルゴリズムを排除する意図はない。
【0207】
スタイルトランスファー部102Yが特徴量データ(128×128)に対して、ブーリアンマスクによって上記のスタイルA用ハードマスクを適用すると、タテ128×ヨコ64のデータが得られる。これを言い換えると、元の特徴量のうち、スタイルA用ハードマスクにおける値が1となっている部分(左半分)に対応する部分のみが残る。スタイルトランスファー部102Yは、マスク適用後の特徴量データについての平均μ1と標準偏差σ1を算出する。
【0208】
次に、入力画像の右半分に適用するスタイルBに対応するハードマスク(スタイルB用ハードマスク)は、図25に示したような、左半分の値が全て0であり、右半分の値がすべて1であるような、タテ128×ヨコ128のハードマスクである。スタイルB用ハードマスクは、上述のスタイルA用ハードマスクにおける左半分の値と右半分の値とを反転することによって生成することができる。なお、スタイルB用ハードマスクは、図22および図23に示したソフトマスク(スタイルA用ソフトマスク)における左半分の値と右半分の値とを反転することによってスタイルB用ソフトマスクを生成し、続いて、スタイルB用ソフトマスクにおける各行各列の数値をそれぞれ四捨五入することによって生成することもできる。ここで、スタイルA用ソフトマスクとスタイルB用ソフトマスクは、スタイルトランスファーを抑制する領域が異なる複数のマスクに該当する。スタイルA用ハードマスクとスタイルB用ハードマスクも、スタイルトランスファーを抑制する領域が異なる複数のマスクに該当する。
【0209】
スタイルトランスファー部102Yは、畳み込み後のタテ128×ヨコ128の特徴量データに対して、上述のスタイルB用ハードマスクを適用する。マスクの適用方法は、例えばブーリアンマスク(boolean mask)であってよい。ただし、ブーリアンマスク以外のマスクの適用アルゴリズムを排除する意図はない。
【0210】
スタイルトランスファー部102Yが特徴量データ(128×128)に対して、ブーリアンマスクによって上記のスタイルB用ハードマスクを適用すると、タテ128×ヨコ64のデータが得られる。これを言い換えると、元の特徴量のうち、スタイルB用ハードマスクにおける値が1となっている部分(右半分)に対応する部分のみが残る。スタイルトランスファー部102Yは、マスク適用後の特徴量データについての平均μ2と標準偏差σ2を算出する。
【0211】
次に、図26を参照して説明する。スタイルトランスファー部102Yは、畳み込み後の特徴量データに対して、平均μ1と標準偏差σ1とを用いて正規化を行う。これにより、部分的に正規化された特徴量FV1が得られる。スタイルトランスファー部102Yは、部分的に正規化された特徴量FV1に対してスタイルA用ソフトマスクを適用する。このソフトマスクの適用により得られた特徴量を、特徴量FV1Aとする。なお、特徴量FV1に対してスタイルA用ソフトマスクを適用するアルゴリズムは、例えば同じ行および同じ列の値同士を乗算するものであってよい。具体例を挙げると、特徴量FV1の第2行第2列における値と、スタイルA用ソフトマスクの第2行第2列における値とを乗算した結果が、特徴量FV1Aの第2行第2列における値となる。
【0212】
スタイルトランスファー部102Yは、畳み込み後の特徴量データに対して、平均μ2と標準偏差σ2とを用いて正規化を行う。これにより、部分的に正規化された特徴量FV2が得られる。スタイルトランスファー部102Yは、部分的に正規化された特徴量FV2に対してスタイルB用ソフトマスクを適用する。このソフトマスクの適用により得られた特徴量を、特徴量FV2Bとする。なお、特徴量FV2に対してスタイルB用ソフトマスクを適用するアルゴリズムは、例えば同じ行および同じ列の値同士を乗算するものであってよい。具体例を挙げると、特徴量FV2の第2行第2列における値と、スタイルB用ソフトマスクの第2行第2列における値とを乗算した結果が、特徴量FV2Bの第2行第2列における値となる。
【0213】
スタイルトランスファー部102Yは、特徴量FV1Aと特徴量FV2Bとを加算する。これにより、タテ128×ヨコ128の、正規化された特徴量が得られる。なお、特徴量FV1Aと特徴量FV2Bとの加算は、例えば同じ行および同じ列の値同士を加算するものであってよい。具体例を挙げると、特徴量FV1Aの第2行第2列における値と、特徴量FV2Bの第2行第2列における値とを足した結果が、正規化された特徴量の第2行第2列における値となる。
【0214】
図27は、本発明の実施形態の少なくとも一つに対応する、正規化後のアフィン変換処理を例示する概念図である。
【0215】
スタイルAについてのアフィン変換に用いられる2種類のパラメータをそれぞれβ1およびγ1とする。スタイルBについてのアフィン変換に用いられる2種類のパラメータをそれぞれβ2およびγ2とする。この例におけるβ1、β2、γ1、およびγ2はそれぞれ、128×128のサイズを有するデータである。
【0216】
スタイルトランスファー部102Yは、β1およびγ1に対してスタイルA用ソフトマスクを適用する。これにより、新しいβ1と新しいγ1とが得られる。なお、スタイルA用ソフトマスクを適用するアルゴリズムは、例えば同じ行および同じ列の値同士を乗算するものであってよい。具体例を挙げると、β1の第2行第2列における値と、スタイルA用ソフトマスクの第2行第2列における値とを乗算した結果が、新しいβ1の第2行第2列における値となる。γ1対するスタイルA用ソフトマスクの適用についても同様である。
【0217】
スタイルトランスファー部102Yは、β2およびγ2に対してスタイルB用ソフトマスクを適用する。これにより、新しいβ2と新しいγ2とが得られる。なお、スタイルB用ソフトマスクを適用するアルゴリズムは、例えば同じ行および同じ列の値同士を乗算するものであってよい。具体例を挙げると、β2の第2行第2列における値と、スタイルB用ソフトマスクの第2行第2列における値とを乗算した結果が、新しいβ2の第2行第2列における値となる。γ2対するスタイルB用ソフトマスクの適用についても同様である。
【0218】
スタイルトランスファー部102Yは、β1とβ2とを加算したデータと、γ1とγ2とを加算したデータとをパラメータとして、正規化された特徴量(図26参照)に対してアフィン変換を行う(図14および図15を併せて参照)。その結果、アフィン変換された特徴量が処理層から抽出される。
【0219】
図28は、本発明の実施形態の少なくとも一つに対応する、マスクを用いたスタイルトランスファー処理を例示する概念図である。
【0220】
取得部101Yは、犬が映り込んだ画像データを取得する(ステップSt81)。マスク取得部104Yは、画像データにおける一部の領域についてスタイルトランスファーを抑制するマスクM1を取得する(ステップSt82)。図28には、画像データにおける左端領域と右端領域についてのスタイル変換を抑制するためのマスクM1が例示されている。マスクM1の中央領域(黒色)は、1または1に近い値を有する。マスクM1の左端領域(白色)と右端領域(白色)は、0または0に近い値を有する。従って、例えば四捨五入を行ってマスクM1をハードマスクに変換した場合、ハードマスクの中央領域の値が1となり、左端領域および右端領域の値が0となる。
【0221】
また、マスク取得部104Yは、マスクM1の値を反転させたマスクM2を取得する(ステップSt82)。例えば、マスクM1の座標(i,j)におけるピクセルの値をaijとし、マスクM2の座標(i,j)におけるピクセルの値をbijとした時に、マスク取得部104Yは、bij=1-aijを計算することにより、マスクM1の値を反転させたマスクM2を取得してよい。なお、マスクM1が例えば図26に示したスタイルA用ソフトマスクのような値を有するものであれば、マスク取得部104Yは左側領域(1から0.5)と右側領域(0.49から0)とを入れ替えることによりマスクM2を取得してもよい。すなわちマスク取得部104Yは、反転の対象となるマスクの態様に応じた反転処理(左右反転、上下反転、1-aijなど)を行う。その他、マスクM2の各ピクセルの値をメモリ12や記憶装置13等にあらかじめ記憶しておき、マスク取得部104Yがメモリ12や記憶装置13等からマスクM2を取得してもよい。マスクM2の中央領域(白色)は、0または0に近い値を有する。マスクM2の左端領域(黒色)と右端領域(黒色)は、1または1に近い値を有する。従って、例えば四捨五入を行ってマスクM2をハードマスクに変換した場合、ハードマスクの中央領域の値が0となり、左端領域および右端領域の値が1となる。
【0222】
スタイルトランスファー部102Yは、マスクを用いて、画像データに対して一以上のスタイル画像に基づいたスタイルトランスファーを適用する(St83)。図28においてスタイルトランスファー部102Yは、マスクM1とマスクM2とを用いて、犬が映り込んだ画像データに対してスタイル画像A1、B1、およびB2に基づいたスタイルトランスファーを適用する。スタイルAは、スタイル画像A1単独で構成されるスタイルである。スタイルBは、スタイル画像B1およびスタイル画像B2をブレンドしたスタイルである。なお、図28は、マスクを用いたスタイルトランスファー処理を概念的に示すものである。そのため、図28に描かれているスタイル画像A1、B1およびB2は、出願人が実際に用いたスタイル画像ではない。説明の便宜上、各スタイル画像A1、B1およびB2の近傍に、斜線領域、横線領域、および縦線領域をそれぞれ示す3つの矩形が記載されている。斜線領域、横線領域、および縦線領域をそれぞれ示す3つの矩形は、各スタイル画像A1、B1およびB2が出力画像のどこにどの程度適用されるかを例示するために記載されている。マスクM1は、スタイルA用ソフトマスクに該当する。マスクM2は、スタイルB用ソフトマスクに該当する。
【0223】
出力部103Yは、スタイルトランスファーが適用された後のデータを出力する(St84)。図28においては、中央領域がスタイルAに、左端領域と右端領域とがスタイルBにそれぞれスタイルトランスファーされた出力画像を、出力部103Yが出力する。
【0224】
なお、マスクM1およびマスクM2が有する値は、0から1の間の連続値である。そのため、出力画像の一部の領域(中央領域と端領域との境目付近)において、1回の計算によってスタイルAとスタイルBとが単に平均化されるのではなくきれいに混ざり合う。図28には、出力画像のスタイル適用範囲を示す矩形が、出力画像の近傍に記載されている。出力画像の中央領域と端領域との境目付近では、斜線領域(スタイル画像A1に対応)と、横線領域(スタイル画像B1に対応)と、縦線領域(スタイル画像B2に対応)とが混ざり合うように適用されている。仮に、ハードマスクをマスクM1およびマスクM2として用いた場合は、出力画像において、スタイルAとスタイルBとが混ざり合わず、領域毎にスタイルを分けてスタイルトランスファーが行われることになる。
【0225】
図29は、本発明の実施形態の少なくとも一つに対応する、マスクを用いたスタイルトランスファー処理を例示する概念図である。
【0226】
取得部101Yは、犬が映り込んだ画像データを取得する(St81)。マスク取得部104Yは、画像データにおける一部の領域についてスタイルトランスファーを抑制するためのマスクM3を取得する(St82)。図29には、画像データにおける犬に相当する領域についてスタイルトランスファーを抑制するためのマスクM3が例示されている。マスクM3の犬以外の部分に相当する領域(黒色)の値は1である。マスクM3の犬に相当する領域(白色)の値は0である。
【0227】
また、マスク取得部104Yは、マスクM3の値を反転させたマスクM4を取得する(ステップSt82)。例えば、マスクM3の座標(i,j)におけるピクセルの値をcijとし、マスクM4の座標(i,j)におけるピクセルの値をdijとした時に、マスク取得部104Yは、dij=1-cijを計算することにより、マスクM3の値を反転させたマスクM4を取得してよい。なお、マスクM3が例えば図25に示したスタイルA用ハードマスクのような値を有するものであれば、マスク取得部104Yは左側領域(値は1)と右側領域(値は0)とを入れ替えることによりマスクM4を取得してもよい。すなわちマスク取得部104Yは、反転の対象となるマスクの態様に応じた反転処理(左右反転、上下反転、1-cijなど)を行う。その他、マスクM4の各ピクセルの値をメモリ12や記憶装置13等にあらかじめ記憶しておき、マスク取得部104Yがメモリ12や記憶装置13等からマスクM4を取得してもよい。マスクM4の犬以外の部分に相当する領域(白色)の値は0である。マスクM4の犬に相当する領域(黒色)の値は1である。
【0228】
スタイルトランスファー部102Yは、マスクを用いて、画像データに対して一以上のスタイル画像に基づいたスタイルトランスファーを適用する(St83)。図29においてスタイルトランスファー部102Yは、マスクM3とマスクM4とを用いて、犬が映り込んだ画像データに対してスタイル画像C1、C2、およびD1に基づいたスタイルトランスファーを適用する。スタイルCは、スタイル画像C1およびスタイル画像C2をブレンドしたスタイルである。スタイルDは、スタイル画像D1単独で構成されるスタイルである。なお、図29は、マスクを用いたスタイルトランスファー処理を概念的に示すものである。そのため、図29に描かれているスタイル画像C1、C2およびD1は、出願人が実際に用いたスタイル画像ではない。説明の便宜上、各スタイル画像C1、C2およびD1の近傍に、横線領域、縦線領域、および斜線領域をそれぞれ示す3つの矩形が記載されている。横線領域、縦線領域、および斜線領域をそれぞれ示す3つの矩形は、各スタイル画像C1、C2およびD1が出力画像のどこにどの程度適用されるかを例示するために記載されている。マスクM3は、スタイルC用ハードマスクに該当する。マスクM4は、スタイルD用ハードマスクに該当する。
【0229】
出力部103Yは、スタイルトランスファーが適用された後のデータを出力する(St84)。図29においては、犬以外の部分に相当する領域がスタイルCに、犬に相当する領域がスタイルDにそれぞれスタイルトランスファーされた出力画像を、出力部103Yが出力する。
【0230】
マスクM3およびマスクM4が有する値は、0または1である。すなわち、マスクM3およびマスクM4はハードマスクである。そのため、出力画像において、スタイルCとスタイルDとが混ざり合わず、犬と犬以外の領域とにスタイルを分けて1回の計算によってスタイルトランスファーが行われることになる。図29には、出力画像のスタイル適用範囲を示す矩形が、出力画像の近傍に記載されている。出力画像における犬に相当する領域では、斜線領域(スタイル画像D1に対応)が適用されている。出力画像における犬以外の部分に相当する領域では、横線領域(スタイル画像C1に対応)と縦線領域(スタイル画像C2に対応)とが適用されている。
【0231】
(領域を3分割以上に分割する場合のマスクの活用例)
なお、画像データの領域を3分割以上に分割して、それぞれ異なるスタイルを適用したい場合にも、マスクを用いることができる。図30は、本発明の実施形態の少なくとも一つに対応する、画像データを3つの領域に分けてそれぞれ異なるスタイルを適用したい場合のマスクを例示する概念図である。
【0232】
3つのマスクMA、MB、およびMCを用意する。例えば、マスクMAは、左側三分の一の領域が1の値を有し、それ以外の領域が0の値を有する。マスクMBは、中央部分の領域が1の値を有し、左側三分の一の領域と右側三分の一の領域とが0の値を有する。マスクMCは、右側三分の一の領域が1の値を有し、それ以外の領域が0の値を有する。ただし、左側、中央、右側の3つの分割は、厳密な三等分でなくともよい。実際、128ピクセルや256ピクセルは3で割り切れない。マスクMAはスタイルAに、マスクMBはスタイルBに、マスクMCはスタイルCに、それぞれ対応しているものとする。また、スタイルA、スタイルBおよびスタイルCは、それぞれ異なる一以上のスタイル画像に基づいたスタイルであるとする。
【0233】
図24および図25に基づいて説明したのと同様に、スタイルトランスファー部102Yは、畳み込み後の特徴量データに対してハードマスクを適用した後、平均と標準偏差を算出する。マスクMAに対応する平均および標準偏差を、それぞれμ1およびσ1とする。マスクMBに対応する平均および標準偏差を、それぞれμ2およびσ2とする。マスクMCに対応する平均および標準偏差を、それぞれμ3およびσ3とする。
【0234】
図31は、本発明の実施形態の少なくとも一つに対応する、処理層で行われる正規化を例示する概念図である。図26に基づいて説明したのと同様に、スタイルトランスファー部102Yは、畳み込み後の特徴量データに対して、平均μ1と標準偏差σ1とを用いて正規化を行う。これにより、部分的に正規化された特徴量FV1が得られる。スタイルトランスファー部102Yは、部分的に正規化された特徴量FV1に対してマスクMAを適用する。このマスクMAの適用により得られた特徴量を、特徴量FV1Aとする。なお、特徴量FV1に対してマスクMAを適用するアルゴリズムは、例えば同じ行および同じ列の値同士を乗算するものであってよい。具体例を挙げると、特徴量FV1の第2行第2列における値と、マスクMAの第2行第2列における値とを乗算した結果が、特徴量FV1Aの第2行第2列における値となる。
【0235】
スタイルトランスファー部102Yは、畳み込み後の特徴量データに対して、平均μ2と標準偏差σ2とを用いて正規化を行う。これにより、部分的に正規化された特徴量FV2が得られる。スタイルトランスファー部102Yは、部分的に正規化された特徴量FV2に対してマスクMBを適用する。このマスクMBの適用により得られた特徴量を、特徴量FV2Bとする。なお、特徴量FV2に対してマスクMBを適用するアルゴリズムは、例えば同じ行および同じ列の値同士を乗算するものであってよい。具体例を挙げると、特徴量FV2の第2行第2列における値と、マスクMBの第2行第2列における値とを乗算した結果が、特徴量FV2Bの第2行第2列における値となる。
【0236】
スタイルトランスファー部102Yは、畳み込み後の特徴量データに対して、平均μ3と標準偏差σ3とを用いて正規化を行う。これにより、部分的に正規化された特徴量FV3が得られる。スタイルトランスファー部102Yは、部分的に正規化された特徴量FV3に対してマスクMCを適用する。このマスクMCの適用により得られた特徴量を、特徴量FV3Cとする。なお、特徴量FV3に対してマスクMCを適用するアルゴリズムは、例えば同じ行および同じ列の値同士を乗算するものであってよい。具体例を挙げると、特徴量FV3の第2行第2列における値と、マスクMCの第2行第2列における値とを乗算した結果が、特徴量FV3Cの第2行第2列における値となる。
【0237】
スタイルトランスファー部102Yは、特徴量FV1Aと特徴量FV2Bと特徴量FV3Cとを加算する。これにより、タテ128×ヨコ128の、正規化された特徴量が得られる。なお、特徴量FV1Aと特徴量FV2Bと特徴量FV3Cの加算は、例えば同じ行および同じ列の値同士を加算するものであってよい。具体例を挙げると、特徴量FV1Aの第2行第2列における値と、特徴量FV2Bの第2行第2列における値と、特徴量FV3Cの第2行第2列における値とを足した結果が、正規化された特徴量の第2行第2列における値となる。
【0238】
図32は、本発明の実施形態の少なくとも一つに対応する、正規化後のアフィン変換処理を例示する概念図である。
【0239】
スタイルAについてのアフィン変換に用いられる2種類のパラメータをそれぞれβ1およびγ1とする。スタイルBについてのアフィン変換に用いられる2種類のパラメータをそれぞれβ2およびγ2とする。スタイルCについてのアフィン変換に用いられる2種類のパラメータをそれぞれβ3およびγ3とする。この例におけるβ1、β2、β3、γ1、γ2、およびγ3はそれぞれ、128×128のサイズを有するデータである。
【0240】
スタイルトランスファー部102Yは、β1およびγ1に対してマスクMAを適用する。これにより、新しいβ1と新しいγ1とが得られる。スタイルトランスファー部102Yは、β2およびγ2に対してマスクMBを適用する。これにより、新しいβ2と新しいγ2とが得られる。スタイルトランスファー部102Yは、β3およびγ3に対してマスクMCを適用する。これにより、新しいβ3と新しいγ3とが得られる。なお、マスクMA、MB、またはMCを適用するアルゴリズムは、例えば同じ行および同じ列の値同士を乗算するものであってよい。
【0241】
スタイルトランスファー部102Yは、β1とβ2とβ3を加算したデータと、γ1とγ2とγ3を加算したデータとをパラメータとして、正規化された特徴量(図31参照)に対してアフィン変換を行う(図14および図15を併せて参照)。その結果、アフィン変換された特徴量が処理層から抽出される。
【0242】
スタイルトランスファー部102Yは例えば、入力画像と、マスクMA、MBおよびMCとを、ニューラルネットワークN3に入力する。これにより、左端、中央、右端の3つの領域のそれぞれに異なるスタイルに基づいたスタイルトランスファーが行われた出力画像が、学習済みニューラルネットワークから出力される。
【0243】
(マスクの形状について)
マスク取得部104Yが取得するマスクの形状には、種々のものが考えられる。上述のように、マスクは、画像データにおける一部の領域についてスタイルトランスファーを抑制するために用いられる。画像データにおける一部の領域は、画像データに含まれる一以上のオブジェクトに対応する対応領域であるか、または、対応領域以外の領域であってよい。一以上のオブジェクトは、画像に映り込んだ何らかの物体であってよい。例えば図28および図29における入力画像に映り込んだ犬、犬が載っている台、または犬と台との組み合わせ等が、一以上のオブジェクトに該当する。一以上のオブジェクトは、画像に映り込んだ壁や建物であってもよく、壁や建物の模様等であってもよい。一以上のオブジェクトは、例えば画像に映り込んだ眼鏡のレンズ部分、またはキャラクタの右腕などの、オブジェクトの一部分であってもよい。
【0244】
オブジェクトは、ゲーム内オブジェクトであってもよい。ゲーム内オブジェクトとは、例えばビデオゲームに登場するキャラクタ、武器、乗り物、建物等を意味する。ゲーム内オブジェクトは、ゲームのマップを構成する山、森、林、木、川、海などであってもよい。また、ゲームはビデオゲームに限られず、例えば現実世界を用いて行われるイベント型のゲームや、XR技術を用いたゲームなども含まれる。
【0245】
画像データにおける一部の領域は、画像データに対して適用されている一以上のエフェクトに対応する対応領域であるか、または、対応領域以外の領域であってよい。エフェクトとは、画像に対して適用されるぼかし効果、強調効果などの加工を意味する。
【0246】
エフェクトは、ゲームにおいて画像データに対して適用されたエフェクトであってよい。例えば画像に映り込んだ剣に対して付与された炎のエフェクト、画像に映り込んだキャラクタに対して付与された必殺技のエフェクト、画像に映り込んだオブジェクトに対する光の当たり方についてのエフェクトなどが該当する。
【0247】
一部の領域は、画像データの画素値または画像データの生成に係るバッファのバッファデータが所定の基準を満たす部分に対応する対応領域であるか、または、対応領域以外の領域であってよい。画素値が所定の基準を満たす部分とは、例えばRGBの3チャネルを有するカラー画像データにおいて、Rの値が所定の閾値以上である(一定以上の赤味を有する)部分などを意味する。この場合、マスクは画像データの画素値に応じて生成されてよい。画像データの生成に係るバッファのバッファデータが所定の基準を満たす部分とは、例えば、バッファデータの値が所定の閾値以上である部分などを意味する。この場合、マスクはバッファデータの値に応じて生成されてよい。
【0248】
第7の実施形態の一側面として、画像データにおける一部の領域についてのスタイルトランスファーをマスクによって抑制しつつ、それ以外の領域については抑制無しでスタイルトランスファーを行うことができる。
【0249】
第7の実施形態の一側面として、スタイルトランスファーを抑制する領域が異なる複数のマスクを用いることにより、画像データに対して、画像データの領域毎に異なるスタイルを適用することができる。
【0250】
第7の実施形態の一側面として、マスクが有する値を適宜調整することにより、画像データにおけるある領域について、一以上のスタイル画像からなる第1のスタイルに基づいたスタイルトランスファーと、一以上のスタイル画像からなる第2のスタイルに基づいたスタイルトランスファーとをブレンドすることができる。
【0251】
第7の実施形態の一側面として、一以上のオブジェクトとそれ以外との間で、スタイルの適用態様を分けることができる。
【0252】
第7の実施形態の一側面として、一以上のゲーム内オブジェクトとそれ以外との間で、スタイルの適用態様を分けることができる。
【0253】
第7の実施形態の一側面として、一以上のエフェクトが適用されている領域とそれ以外の領域との間で、スタイルの適用態様を分けることができる。
【0254】
第7の実施形態の一側面として、ゲームにおいて一以上のエフェクトが適用されている領域とそれ以外の領域との間で、スタイルの適用態様を分けることができる。
【0255】
第7の実施形態の一側面として、画像データの画素値または画像データの生成に係るバッファのバッファデータが所定の基準を満たす部分に対応する領域とそれ以外の領域との間で、スタイルの適用態様を分けることができる。
【0256】
第7の実施形態の一側面として、マスクによる影響を、ニューラルネットワークで用いられるアフィン変換を介して導入してスタイルトランスファーを行うことができる。
【0257】
[第8の実施形態]
本発明の第8の実施形態の概要について説明をする。以下では、第8の実施形態として、サーバにおいて実行されるスタイルトランスファープログラムを例示して説明する。なお、サーバは、図1に記載のビデオゲーム処理システム100が備えるサーバ10であってよい。
【0258】
図33は、本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。サーバ10の構成の例であるサーバ10Zは、取得部101Zと、スタイルトランスファー部102Zと、出力部103Zとを少なくとも備える。サーバ10Zが備えるプロセッサは、記憶装置に保持されたスタイルトランスファープログラムを参照し、そのプログラムを実行することにより、取得部101Zと、スタイルトランスファー部102Zと、出力部103Zとを機能的に実現する。
【0259】
取得部101Zは、画像データを取得する機能を有する。スタイルトランスファー部102Zは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを1回以上適用する機能を有する。スタイルトランスファー部102Zは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用してもよい。
【0260】
スタイルトランスファー部102Zは、画像データを構成する色であるコンテンツ色と、前記画像データに対して適用する一以上のスタイル画像を構成する色であるスタイル色との間の色で構成されたデータを出力するように、前記画像データに対してスタイルトランスファーを適用する機能を有する。なお、画像データを構成する色とは、画像データに含まれる画素の色を意味する。スタイル画像を構成する色とは、スタイル画像に含まれる画素の色を意味する。
【0261】
出力部103Zは、スタイルトランスファーが適用された後のデータを出力する機能を有する。
【0262】
次に、本発明の第8の実施形態におけるプログラム実行処理について説明する。図34は、本発明の実施形態の少なくとも一つに対応するスタイルトランスファープログラムの処理例を示すフローチャートである。
【0263】
取得部101Zは、画像データを取得する(St91)。スタイルトランスファー部102Zは、画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを適用する(St92)。ステップSt92においてスタイルトランスファー部102Zは、画像データに含まれる色であるコンテンツ色と、前記画像データに対して適用する一以上のスタイル画像に含まれる色であるスタイル色との間の色で構成されたデータを出力するように、前記画像データに対してスタイルトランスファーを適用する。出力部103Zは、スタイルトランスファーが適用された後のデータを出力する(St93)。
【0264】
取得部101Zによる画像データの取得元は、取得部101がアクセス可能な記憶装置であってよい。例えば、取得部101Zは、サーバ10Zに設けられたメモリ12または記憶装置13から画像データを取得してよい。取得部101Zは、通信ネットワーク30を介して外部装置から画像データを取得してもよい。外部装置の例として、ユーザ端末20や他のサーバなどがあるが、これらには限定されない。
【0265】
取得部101Zは、レンダリングに用いられるバッファ等から画像データを取得してもよい。レンダリングに用いられるバッファとは、例えば3次元のCG画像をレンダリングする機能を有するレンダリングエンジンが用いるバッファなどを意味する。
【0266】
スタイルは、たとえば建築、美術、音楽などにおける様式または型などを意味する。スタイルは例えば、ゴッホ風やピカソ風などの画風を意味してもよい。スタイルは、画像の形式(例えば色、所定の模様、またはパターン等)を意味してもよい。スタイル画像とは、特定のスタイルで描かれた画像(静止画または動画)を意味している。
【0267】
スタイルトランスファー部102Zは、スタイルトランスファー用のニューラルネットワークを用いて良い。関連する技術として例えば、Vincent Dumoulin, et.al. 「A LEARNED REPRESENTATION FOR ARTISTIC STYLE」等がある。スタイルトランスファー部102Zがニューラルネットワークに所定のサイズの入力画像を入力することにより、スタイルトランスファーが適用された出力画像が得られる。
【0268】
出力部103Zによるスタイルトランスファー適用後のデータの出力先は、取得部101Zが画像データを取得したバッファとは異なるバッファであってよい。より特定的には、取得部101Zが画像データを取得したバッファを第1バッファとした場合、スタイルトランスファーの適用後のデータの出力先は、第1バッファとは異なる第2バッファであってよい。第2バッファは、レンダリング処理において第1バッファの後に用いられるバッファであってもよい。
【0269】
その他、出力部103Zによるスタイルトランスファーの適用後のデータの出力先は、サーバ10Zが備える記憶装置や出力装置であってよく、サーバ10Zから見た外部装置であってもよい。
【0270】
図35は、本発明の実施形態の少なくとも一つに対応し得る、スタイルトランスファーネットワークの学習(トレーニング)方法を例示する概念図である。図36は、本発明の実施形態の少なくとも一つに対応し得る、スタイルベクトルの構成を例示する概念図である。
【0271】
スタイルトランスファーネットワークの学習は、プロセッサを有する装置によって行われる。プロセッサを有する装置は例えばサーバ10Zであってよい。プロセッサを有する装置は、サーバ10Z以外の装置であってもよい。装置が備えるプロセッサがニューラルネットワークN4にコンテンツ画像(入力画像)を入力する。ニューラルネットワークN4は、スタイルトランスファーネットワークやモデル等と呼ばれることがある。ニューラルネットワークN4は、図14図15および図22におけるニューラルネットワークN1、N2、およびN3に相当する。プロセッサがニューラルネットワークN4にコンテンツ画像(入力画像)を入力すると、スタイル化結果画像(出力画像)が出力される。
【0272】
ニューラルネットワークN4の後段には、VGG16が配置されている。VGG16は既知であるため、詳しい説明は省略する。
【0273】
プロセッサは、コンテンツ画像と、スタイル画像と、スタイル化結果画像とをVGG16に入力する。プロセッサは、VGG16の後段で、最適化関数(損失関数)の計算を行い、ニューラルネットワークN4とスタイルベクトルとに対して逆伝搬を行う。なお、スタイルベクトルは、例えばメモリ12や記憶装置13等に保存されていてよい。逆伝搬を行うことによって、ニューラルネットワークN4に対して学習が行われる。その結果、プロセッサはコンテンツ画像(入力画像)をニューラルネットワークN4に入力することにより、スタイルトランスファーを行うことができる。
【0274】
図36に例示されているように、ニューラルネットワークN4と共に用いられるスタイルベクトルは、スタイル画像ごとに1つずつ規定される。例えば、スタイル画像E1についてのスタイルベクトルS1と、スタイル画像E2についてのスタイルベクトルS2と、スタイル画像E3についてのスタイルベクトルS3とが用いられる。これらのスタイルベクトルS1~S3はそれぞれ、スタイル画像に含まれる色情報に基づいて規定されたスタイル色のベクトルである。
【0275】
(色の動的制御を伴うスタイルトランスファー)
次に、色の動的制御を伴うスタイルトランスファーについて説明する。図37は、本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーネットワークの学習(トレーニング)方法を例示する概念図である。図38は、本発明の実施形態の少なくとも一つに対応する、スタイルベクトルの構成を例示する概念図である。
【0276】
スタイルトランスファーネットワークの学習は、プロセッサを有する装置によって行われる。プロセッサを有する装置は例えばサーバ10Zであってよい。プロセッサを有する装置は、サーバ10Z以外の装置であってもよい。装置が備えるプロセッサがニューラルネットワークN5にコンテンツ画像(入力画像)を入力する。ニューラルネットワークN5は、スタイルトランスファーネットワークやモデル等と呼ばれることがある。ニューラルネットワークN5は、図14図15および図22におけるニューラルネットワークN1、N2、およびN3に相当する。プロセッサがニューラルネットワークN5にコンテンツ画像(入力画像)を入力すると、スタイル化結果画像(出力画像)が出力される。
【0277】
ニューラルネットワークN5の後段には、VGG16が配置されている。VGG16は既知であるため、詳しい説明は省略する。
【0278】
プロセッサは、コンテンツ画像と、スタイル画像と、スタイル化結果画像とをVGG16に入力する。プロセッサは、VGG16の後段で、最適化関数(損失関数)の計算を行い、ニューラルネットワークN5とスタイルベクトルとに対して逆伝搬を行う。なお、スタイルベクトルは、例えばメモリ12や記憶装置13等に保存されていてよい。このようにすることによって、ニューラルネットワークN5に対して学習が行われる。その結果、プロセッサはコンテンツ画像(入力画像)をニューラルネットワークN5に入力することにより、スタイルトランスファーを行うことができる。
【0279】
図38に例示されているように、ニューラルネットワークN5と共に用いられるスタイルベクトルは、スタイル画像ごとに2つずつ規定される。例えば、スタイル画像E1についてのスタイルベクトルS1およびS4と、スタイル画像E2についてのスタイルベクトルS2およびS5と、スタイル画像E3についてのスタイルベクトルS3およびS6とが用いられる。一方で、スタイルベクトルS1~S3はそれぞれ、スタイル画像に含まれる色情報に基づいて規定されたスタイル色のベクトルである。他方で、スタイルベクトルS4~S6はそれぞれ、コンテンツ画像(入力画像)に含まれる色情報に基づいて規定されたコンテンツ色のベクトルである。
【0280】
図39は、本発明の実施形態の少なくとも一つに対応する、スタイルトランスファーネットワークの学習方法の一部を例示する概念図である。
【0281】
本発明の実施形態の少なくとも一つにおいては、ニューラルネットワークN5の学習を、第1の色空間と第2の色空間の二種類の色空間で行う。第1の色空間は例えばRGB色空間である。第2の色空間は、例えばYUV色空間である。逆伝搬による最適化に用いられる最適化関数(損失関数)として、RGB損失(RGB Loss)とYUV損失(YUV Loss)との二種類が用いられる。そのため、図39に示されているように、最適化関数の計算につきRGBブランチとYUVブランチの2系統がある。なお、RGB色空間やYUV色空間以外の色空間、例えばYCbCr色空間やYPbPr色空間などが用いられてもよい。
【0282】
(RGB最適化)
まず、RGB最適化について説明する。RGB最適化には、スタイル最適化とコンテンツ最適化が含まれる。スタイル最適化関数およびコンテンツ最適化関数は、それぞれ以下のようなものである。
【0283】
スタイル最適化関数:
【数8】
【0284】
コンテンツ最適化関数:
【数9】
【0285】
上述の最適化関数において、pは生成された画像を示す。生成された画像は、機械学習に用いられるニューラルネットワークの出力画像に相当する。s(小文字のs)は例えば抽象絵画などのスタイル画像を示す。Uはレイヤjのユニットの総数を示す。Gはグラムマトリクス(Gram matrix)を示す。φはVGG-16アーキテクチャの第i番目の活性化関数の出力を示す。φはVGG-16アーキテクチャの第j番目の活性化関数の出力を示す。S(大文字のS)はスタイルの最適化を計算するためのVGG-16のレイヤ群を示す。c(小文字のc)はコンテンツ画像を示す。C(大文字のC)はコンテンツ最適化関数を計算するためのVGG-16のレイヤ群であり、jは当該レイヤ群に含まれるレイヤのインデックスである。絶対値記号に付加されたFはフロベニウスノルムを意味する。添え字として付加されたrgbは、第1の色空間であるRGBについての最適化関数L、生成された画像p、スタイル画像s、およびコンテンツ画像cであることをそれぞれ示している。Ni,rはφ特徴マップの行数である。Ni,cはφ特徴マップの列数である。
【0286】
図40は、本発明の実施形態の少なくとも一つに対応する、RGBブランチにおけるRGB最適化関数の計算例を示す概念図である。図中のスタイル化結果画像がprgbに相当する。図中のコンテンツ画像(入力画像)がcrgbに相当する。図寺中のスタイル画像E1がsrgbに相当する。プロセッサは、スタイル最適化関数Lrgb,sの値とコンテンツ最適化関数Lrgb,cの値とを加算し、加算した結果の値を最小化するように逆伝搬を行う。
【0287】
(YUV最適化)
次に、YUV最適化について説明する。YUV最適化には、スタイル最適化とコンテンツ最適化が含まれる。スタイル最適化関数およびコンテンツ最適化関数は、それぞれ以下のようなものである。
【0288】
スタイル最適化関数:
【数10】
【0289】
コンテンツ最適化関数:
【数11】
ただし、
【数12】
【数13】
【0290】
p、s(小文字のs)、U、G、φ、φ、S(大文字のS)、c、C、F、Ni,r、およびNi,cは、上述のRGB最適化において説明したものと同様のものを意味する。添え字として付加されたyは、第2の色空間であるYUVにおけるYチャネルについての最適化関数L、生成された画像p、スタイル画像s、およびコンテンツ画像cであることをそれぞれ示している。添え字として付加されたuvは、第2の色空間であるYUVにおけるUVチャネルについての最適化関数L、生成された画像p、およびコンテンツ画像cであることをそれぞれ示している。
【0291】
図41は、本発明の実施形態の少なくとも一つに対応する、YUVブランチにおけるYUV最適化関数の計算例を示す概念図である。プロセッサは、スタイル化結果画像(出力画像)、コンテンツ画像(入力画像)、およびスタイル画像をYUV変換する。その上で、変換後のデータからYチャネルとUVチャネルとを取り出して、RGBに変換し直す。RGBに変換し直すのは、後続のVGG16がRGBを認識するように構成されているからである。
【0292】
図中のスタイル化結果画像(出力画像)をYUV変換してYチャネルおよびUVチャネルをそれぞれ取り出し、再度RGB変換したものが、それぞれpおよびpuvに対応する。図中のコンテンツ画像(入力画像)をYUV変換してYチャネルおよびUVチャネルをそれぞれ取り出し、再度RGB変換したものが、それぞれcおよびcuvに対応する。図中のスタイル画像をYUV変換してYチャネルを取り出し、再度RGB変換したものが、sに対応する。プロセッサは、スタイル最適化関数Lyuv,sの値とコンテンツ最適化関数Lyuv,cの値とを加算し、加算した結果の値を最小化するように逆伝搬を行う。
【0293】
図42は、本発明の実施形態の少なくとも一つに対応する、色の動的制御を行うスタイルトランスファーにおける最適化関数を例示する概念図である。プロセッサはさらに、下記の最適化関数Lを計算する。
【0294】
【数14】
【0295】
プロセッサは、最適化関数Lの値を最小化するように逆伝搬を行う。
【0296】
以上のように、プロセッサはRGBブランチとYUVブランチの2系統の最適化関数を用いた最適化を行う。逆伝搬に基づく最適化は、RGBブランチと、YUVブランチと、RGBブランチおよびYUVブランチをさらに合算したブランチとについて行われる。これにより、1つのスタイル画像に基づいたニューラルネットワークN5の学習が進行する。そしてプロセッサが、学習済みのニューラルネットワークN5にコンテンツ画像(入力画像)を入力することにより、コンテンツ画像に対してスタイルトランスファーが適用されたデータ(所望の画像データ)が出力される。
【0297】
(2以上のスタイル画像に基づいた、色の動的制御を伴うスタイルトランスファー)
次に、2以上のスタイル画像に基づいた、色の動的制御を伴うスタイルトランスファーについて説明する。図39に基づいて説明したのと同様に、ニューラルネットワークN5の学習を、第1の色空間と第2の色空間の二種類の色空間で行う。第1の色空間および第2の色空間の種類については、前述と同様であるため説明を省略する。
【0298】
(RGB最適化)
まず、RGB最適化について説明する。RGB最適化には、スタイル最適化とコンテンツ最適化が含まれる。スタイル最適化関数およびコンテンツ最適化関数は、それぞれ以下のようなものである。
【0299】
スタイル最適化関数:
【数15】
【0300】
コンテンツ最適化関数:
【数16】
【0301】
p、U、G、φ、φ、S(大文字のS)、c(小文字のc)、C(大文字のC)、F、Ni,r、およびNi,cは、図39から図42に基づいて説明したものと同様のものを意味する。
【0302】
【数17】
【0303】
は複数のスタイル画像からなるスタイル画像群であり、qおよびrはスタイル画像群に含まれる任意のスタイル画像を示す。ただし、qとrは互いに異なるスタイル画像である。
【0304】
添え字として付加されたrgbは、第1の色空間であるRGBについての最適化関数L、生成された画像p、スタイル画像q、スタイル画像r、およびコンテンツ画像cであることをそれぞれ示している。添え字として付加されたqおよびrは、スタイル画像群から選択された2つのスタイル画像qおよびrについての最適化関数Lであることを示している。添え字として付加されたcは、コンテンツ画像についての最適化関数Lであることを示している。
【0305】
図43は、本発明の実施形態の少なくとも一つに対応する、RGBブランチにおけるRGB最適化関数の計算例を示す概念図である。図中のスタイル化結果画像がprgbに相当する。図中のコンテンツ画像(入力画像)がcrgbに相当する。図中のスタイル画像E1およびE2がqrgbおよびrrgbにそれぞれ相当する。なおプロセッサは、スタイル最適化関数の値とコンテンツ最適化関数の値とを加算し、加算した結果の値を最小化するように逆伝搬を行うが、この逆伝搬については、図45を参照して後述する。
【0306】
(YUV最適化)
次に、YUV最適化について説明する。YUV最適化には、スタイル最適化とコンテンツ最適化が含まれる。スタイル最適化関数およびコンテンツ最適化関数は、以下のようなものである。
【0307】
スタイル最適化関数:
【数18】
【0308】
コンテンツ最適化関数:
【数19】
コンテンツ最適化関数(Y損失):
【数20】
コンテンツ最適化関数(UV損失):
【数21】
【0309】
p、U、G、φ、φ、S(大文字のS)、c(小文字のc)、C(大文字のC)、F、Ni,r、Ni,c、qおよびrは、2以上のスタイル画像に基づいた色の動的制御を伴うスタイルトランスファーにおける、RGB最適化について説明したものと同様のものを意味する。
【0310】
【数22】
【0311】
は複数のスタイル画像からなるスタイル画像群である。添え字として付加されたyは、第2の色空間であるYUVにおけるYチャネルついての最適化関数L、生成された画像p、スタイル画像q、スタイル画像r、およびコンテンツ画像cであることを示している。添え字として付加されたuvは、第2の色空間であるYUVにおけるUチャネルおよびVチャネルついての最適化関数L、生成された画像p、およびコンテンツ画像cであることを示している。添え字として付加されたqおよびrは、スタイル画像群から選択された2つのスタイル画像qおよびrについての最適化関数Lであることを示している。添え字として付加されたcは、コンテンツ画像についての最適化関数Lであることを示している。
【0312】
図44は、本発明の実施形態の少なくとも一つに対応する、YUVブランチにおけるYUV最適化関数の計算例を示す概念図である。プロセッサは、スタイル化結果画像(出力画像)およびコンテンツ画像(入力画像)をYUV変換する。その上で、変換後のデータからYチャネルとUVチャネルとを取り出して、RGBに変換し直す。プロセッサは、スタイル画像E1およびスタイル画像E2をYUV変換する。その上で、変換後のデータからYチャネルを取り出して、RGBに変換し直す。RGBに変換し直すのは、後続のVGG16がRGBを認識するように構成されているからである。
【0313】
図44中のスタイル化結果画像(出力画像)をYUV変換してYチャネルおよびUVチャネルをそれぞれ取り出し、再度RGB変換したものが、それぞれpおよびpuvに対応する。図44中のコンテンツ画像(入力画像)をYUV変換してYチャネルおよびUVチャネルをそれぞれ取り出し、再度RGB変換したものが、それぞれcおよびcuvに対応する。図44中のスタイル画像E1およびE2をYUV変換してYチャネルを取り出し、再度RGB変換したものが、qおよびrにそれぞれ対応する。なおプロセッサは、スタイル最適化関数の値とコンテンツ最適化関数の値とを加算し、加算した結果の値を最小化するように逆伝搬を行うが、この逆伝搬については、図45を参照して後述する。
【0314】
図45は、本発明の実施形態の少なくとも一つに対応する最適化処理を例示する概念図である。プロセッサは、RGBブランチとYUVブランチのそれぞれに対して、スタイル最適化関数の値とコンテンツ最適化関数の値とを加算し、加算した結果の値を最小化するように逆伝搬を行う。しかし、スタイルの数が2以上の場合、スタイル最適化関数の値は1つとはならない。例えばnを2以上の整数とするとき、n個のスタイル画像が含まれるスタイル画像群から任意の1つまたは2つのスタイル画像を選択する選び方は、
【0315】
【数23】
【0316】
通りある。プロセッサは、スタイル画像群から任意の1つまたは2つのスタイル画像を選択した上で、スタイル最適化関数の値を計算する。なお、スタイル画像を1つ選択する場合は、図39から図42に基づいて説明したスタイル最適化関数の式を用いる。コンテンツ画像の数が1つであるため、コンテンツ最適化関数の値は一意に定まる。
【0317】
そしてプロセッサは、計算されたスタイル最適化関数の値とコンテンツ最適化関数の値とを加算し、加算した結果の値を最小化するように逆伝搬を行う。この逆伝搬は、n個のスタイル画像が含まれるスタイル画像群から任意の1つまたは2つのスタイル画像を選択する選び方の数だけ行われる。
【0318】
具体例を示す。図45はスタイル画像群がn=4つのスタイル画像を含んでいる場合を示している。スタイル画像群から任意の1つまたは2つのスタイル画像を選択する選び方は1+2+3+4=10通りある。プロセッサは、スタイル画像群から任意の1つまたは2つのスタイル画像を選択し、選択されたスタイル画像に基づいてスタイル最適化関数の値を計算する。プロセッサは、スタイル最適化関数の値と、コンテンツ最適化関数の値とを加算し、加算した値を最小化するように逆伝搬を行う。この逆伝搬処理が、スタイル画像の選択の仕方に応じて、RGBブランチについて10回、YUVブランチについて10回、それぞれ行われる。
【0319】
以上のように、プロセッサはRGBブランチとYUVブランチの2系統の最適化関数を用いた最適化を行う。逆伝搬に基づく最適化は、RGBブランチと、YUVブランチとについて行われる。これにより、2以上のスタイル画像に基づいたニューラルネットワークN5の学習が進行する。なおプロセッサは、RGBブランチとYUVブランチの2系統の最適化関数の値を合算した値に基づく最適化関数(損失関数)を用いた、逆伝搬に基づく最適化をさらに行ってよい。そしてプロセッサが、学習済みのニューラルネットワークN5にコンテンツ画像(入力画像)を入力することにより、コンテンツ画像に対してスタイルトランスファーが適用されたデータ(所望の画像データ)が出力される。
【0320】
(色のランタイム制御)
スタイルトランスファー部102Zは、コンテンツ色とスタイル色との間の色で構成されたデータを構成する色を、所定のパラメータに基づいて制御する機能をさらに有してよい。
【0321】
図46は、本発明の実施形態の少なくとも一つに対応する、プロセッサによる色の動的(ランタイム)制御例を示す概念図である。一般的なスタイルトランスファーにおいては、コンテンツ画像(入力画像)のスタイルを、スタイル画像のように変換することが可能であった。しかしながら、変換後の画像を構成する色は、スタイル画像を構成する色に基づくものとなっていた。本発明の実施形態の少なくとも一つに対応する、色の動的制御を伴うスタイルトランスファーであれば、出力画像を構成する色を、コンテンツ画像を構成する色(コンテンツ色)と、スタイル画像を構成する色(スタイル色)との間で動的に制御することができる。
【0322】
図46に示されているように、色の動的制御を伴うスタイルトランスファーの場合、出力画像を構成する色を、コンテンツ色100%からスタイル色100%までの間で動的に制御することができる。
【0323】
スタイルトランスファー部102Zは、図37および図38に示したスタイルベクトルを用いて出力画像における色の動的制御を行う。例えば、入力画像をスタイル画像E1のスタイルに変換する場合であって、スタイル色80%、コンテンツ色20%であるような出力画像を得たい場合、スタイル画像E1に対応するスタイル色のベクトルS1と、コンテンツ色のベクトルS4とが用いられる。
【0324】
より具体的に例示すると、スタイルトランスファー部102Zは、アフィン変換の2つのパラメータであるscaleおよびbiasを以下のように計算する。
(動的制御用のscale,動的制御用のbias)=0.8*(S1のscale,S1のbias)+0.2*(S4のscale,S4のbias)
【0325】
そしてスタイルトランスファー部102Zは、動的制御用のscaleおよび動的制御用のbiasを用いて、ニューラルネットワークN5のアフィン層におけるアフィン変換を行う(図15参照)。
【0326】
このように、プロセッサがコンテンツ色のスタイルベクトルとスタイル色のスタイルベクトルとに基づいて、アフィン変換の2つのパラメータであるscaleおよびbiasを計算することにより、スタイルトランスファー後の出力画像における色の制御を動的に行うことができるようになる。
【0327】
なお、スタイルトランスファー後の出力画像における色の制御は、所定のパラメータに基づいて行われてよい。例えばビデオゲームにおいて出力される出力画像の場合、スタイルトランスファー部102Zは、ゲームのプレイ時間、ゲーム内のキャラクタに対応付けられた体力値などの属性値、バフ状態またはデバフ状態などのキャラクタの状態を示す値、ゲーム内のキャラクタが装備するアイテムの種類、キャラクタが所持するアイテムに対応付けられたレア度や魔力付与レベルなどの属性値、ゲーム内の所定のオブジェクトに応じた値など、所定の情報に応じて、スタイル色とコンテンツ色との間の比率(上述の80%:20%など)等を設定した上で、色の動的制御を行ってよい。
【0328】
第8の実施形態の一側面として、出力画像を構成する色が、元の画像(コンテンツ画像)を構成する色であるコンテンツ色とスタイル画像を構成する色であるスタイル色との間の色になるようにしつつ、元の画像に対してスタイル変換を行った出力画像を得ることができる。
【0329】
第8の実施形態の一側面として、出力画像を構成する色を、コンテンツ色とスタイル色との間で動的に変えることができる。
【0330】
以上に説明したように、本願の各実施形態により1または2以上の不足が解決される。なお、夫々の実施形態による効果は、非限定的な効果または効果の一例である。
【0331】
上述した各実施形態では、ユーザ端末20およびサーバ10は、自己が備える記憶装置に記憶されている各種制御プログラム(例えば、スタイルトランスファープログラム)に従って、上述した各種の処理を実行する。また、ユーザ端末20やサーバ10に限られない他のコンピュータが、自己が備える記憶装置に記憶されている各種制御プログラム(例えば、スタイルトランスファープログラム)に従って、上述した各種の処理を実行してもよい。
【0332】
また、ビデオゲーム処理システム100の構成は、上述した各実施形態の例として説明した構成に限定されない。例えばユーザ端末が実行する処理として説明した処理の一部または全部をサーバ10が実行する構成としてもよいし、サーバ10が実行する処理として説明した処理の一部または全部をユーザ端末20が実行する構成としてもよい。また、サーバ10が備える記憶部(記憶装置)の一部または全部をユーザ端末20が備える構成としてもよい。すなわち、ビデオゲーム処理システム100における、ユーザ端末とサーバのどちらか一方が備える機能の一部または全部を、他の一方が備える構成とされていてもよい。
【0333】
また、プログラムが、上述した各実施形態の例として説明した機能の一部または全部を、通信ネットワークを含まない装置単体に実現させる構成としてもよい。
【0334】
[付記]
上述した実施形態の説明は、少なくとも下記発明を、当該発明の属する分野における通常の知識を有する者がその実施をすることができるように記載した。
[1]
コンピュータに、
画像データを取得する取得機能と、
前記画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用する、スタイルトランスファー機能と、
スタイルトランスファーが適用された後のデータを出力する出力機能と、
を実現させるためのスタイルトランスファープログラム。
[2]
前記スタイルトランスファー機能では、前記画像データに対して既に適用されたスタイルトランスファーに用いられたものと同じ一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用する機能を
実現させるための、[1]に記載のスタイルトランスファープログラム。
[3]
前記スタイルトランスファー機能では、前記画像データに対して既に適用されたスタイルトランスファーに用いられたものとは異なる画像を含む一以上のスタイル画像に基づいたスタイルトランスファーを重ねて適用する機能を
実現させるための、[1]または[2]に記載のスタイルトランスファープログラム。
[4]
前記コンピュータに、
前記画像データにおける一部の領域についてスタイルトランスファーを抑制するマスクを取得する、マスク取得機能をさらに実現させ、
前記スタイルトランスファー機能では、前記マスクを用いて、前記画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを適用する機能を
実現させるための、[1]から[3]のうちいずれか一項に記載のスタイルトランスファープログラム。
[5]
前記スタイルトランスファー機能では、スタイルトランスファーを抑制する領域が異なる複数の前記マスクを用いて、前記画像データに対して、複数のスタイル画像からなる複数のスタイルに基づいたスタイルトランスファーを適用する機能を
実現させるための、[4]に記載のスタイルトランスファープログラム。
[6]
前記スタイルトランスファー機能では、前記画像データに含まれる一以上のオブジェクトに対応する対応領域であるか、または前記対応領域以外の領域である、前記一部の領域についてスタイルトランスファーを抑制するための前記マスクを用いて、前記スタイルトランスファーを適用する、
[4]または[5]に記載のスタイルトランスファープログラム。
[7]
前記オブジェクトはゲーム内オブジェクトである、
[6]に記載のスタイルトランスファープログラム。
[8]
前記スタイルトランスファー機能では、前記画像データに対して適用されている一以上のエフェクトに対応する対応領域であるか、または前記対応領域以外の領域である、前記一部の領域についてスタイルトランスファーを抑制するための前記マスクを用いて、前記スタイルトランスファーを適用する、
[4]から[7]のうちいずれか一項に記載のスタイルトランスファープログラム。
[9]
前記エフェクトはゲームにおいて前記画像データに対して適用されたエフェクトである、
[8]に記載のスタイルトランスファープログラム。
[10]
前記スタイルトランスファー機能では、前記画像データの画素値または前記画像データの生成に係るバッファのバッファデータが所定の基準を満たす部分に対応する対応領域であるか、または前記対応領域以外の領域である、前記一部の領域についてスタイルトランスファーを抑制するための前記マスクを用いて、前記スタイルトランスファーを適用する、
[4]から[9]のうちいずれか一項に記載のスタイルトランスファープログラム。
[11]
前記スタイルトランスファー機能では、ニューラルネットワークの処理層において、
畳み込み後の特徴量データに対して前記マスクに基づいたハードマスクを適用してから平均および標準偏差を算出し、
前記平均および前記標準偏差を用いて正規化された特徴量データに対して、スタイルに応じたアフィン変換用のパラメータに対して前記マスクを適用して得られたパラメータに基づいてアフィン変換を行うことにより、アフィン変換後の特徴量データを算出する機能を
実現させるための、[4]から[10]のうちいずれか一項に記載のスタイルトランスファープログラム。
[12]
前記スタイルトランスファー機能では、前記画像データを構成する色であるコンテンツ色と、前記画像データに対して適用する一以上のスタイル画像を構成する色であるスタイル色との間の色で構成されたデータを出力するように、前記画像データに対してスタイルトランスファーを適用する機能
をさらに実現させるための、[1]から[11]のうちいずれか一項に記載のスタイルトランスファープログラム。
[13]
前記スタイルトランスファー機能では、前記コンテンツ色と前記スタイル色との間の色で構成されたデータを構成する色を、所定のパラメータに基づいて制御する機能を
さらに実現させるための、[12]に記載のスタイルトランスファープログラム。
[14]
[1]から[13]のうちいずれか一項に記載のスタイルトランスファープログラムがインストールされたサーバ。
[15]
[1]から[13]のうちいずれか一項に記載のスタイルトランスファープログラムがインストールされたコンピュータ。
[16]
コンピュータによるスタイルトランスファー方法であって、
画像データを取得する取得処理と、
前記画像データに対して、一以上のスタイル画像に基づいたスタイルトランスファーを複数回重ねて適用する、スタイルトランスファー処理と、
スタイルトランスファーが適用された後のデータを出力する出力処理と、を含む、
スタイルトランスファー方法。
【産業上の利用可能性】
【0335】
本発明の実施形態の一つによれば、表現力に富むスタイルトランスファーを実現させるスタイルトランスファープログラムおよびスタイルトランスファー方法として有用である。
【符号の説明】
【0336】
10、10A、10B、10C、10D、10Y、10Z サーバ
11、21 プロセッサ
12、22 メモリ
13、23 記憶装置
20、20A、20B ユーザ端末
30 通信ネットワーク
100 ビデオゲーム処理システム
101、101X、101Y、101Z 取得部
102、102B、102C、102D、102X、102Y、102Z スタイルトランスファー部
103、103X、103Y、103Z 出力部
104、104Z マスク取得部

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46