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

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

▶ グーグル インコーポレイテッドの特許一覧

特許7594611敵対的生成ネットワークを使用したビジュアルアセット開発
<>
  • 特許-敵対的生成ネットワークを使用したビジュアルアセット開発 図1
  • 特許-敵対的生成ネットワークを使用したビジュアルアセット開発 図2
  • 特許-敵対的生成ネットワークを使用したビジュアルアセット開発 図3
  • 特許-敵対的生成ネットワークを使用したビジュアルアセット開発 図4
  • 特許-敵対的生成ネットワークを使用したビジュアルアセット開発 図5
  • 特許-敵対的生成ネットワークを使用したビジュアルアセット開発 図6
  • 特許-敵対的生成ネットワークを使用したビジュアルアセット開発 図7
  • 特許-敵対的生成ネットワークを使用したビジュアルアセット開発 図8
  • 特許-敵対的生成ネットワークを使用したビジュアルアセット開発 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-26
(45)【発行日】2024-12-04
(54)【発明の名称】敵対的生成ネットワークを使用したビジュアルアセット開発
(51)【国際特許分類】
   G06T 7/00 20170101AFI20241127BHJP
   G06V 10/82 20220101ALI20241127BHJP
   G06N 3/094 20230101ALI20241127BHJP
【FI】
G06T7/00 350C
G06V10/82
G06N3/094
【請求項の数】 13
(21)【出願番号】P 2022574632
(86)(22)【出願日】2020-06-04
(65)【公表番号】
(43)【公表日】2023-07-03
(86)【国際出願番号】 US2020036059
(87)【国際公開番号】W WO2021247026
(87)【国際公開日】2021-12-09
【審査請求日】2023-01-24
【前置審査】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ホフマン-ジョン,エリン
(72)【発明者】
【氏名】ポプリン,ライアン
(72)【発明者】
【氏名】トーア,アンディープ・シング
(72)【発明者】
【氏名】ドットソン,ウィリアム・リー
(72)【発明者】
【氏名】リ,トラング・ツアン
【審査官】藤原 敬利
(56)【参考文献】
【文献】米国特許出願公開第2019/0057519(US,A1)
【文献】特開2019-185295(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06T 1/00- 1/40
G06T 3/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実行される方法であって、
ビジュアルアセットの三次元(3D)デジタル表現の第1の画像を取り込むステップと、
敵対的生成ネットワーク(GAN:generative adversarial network)における生成器を使用して、前記ビジュアルアセットのバリエーションを表す第2の画像を生成して、前記GANにおける識別器において前記第1の画像と前記第2の画像とを区別しようとするステップと、
前記識別器が前記第1の画像と前記第2の画像とを成功裏に区別したかどうかに基づいて、前記識別器における第1のモデルおよび前記生成器における第2のモデルのうちの少なくとも1つを更新するステップと、
前記更新された第2のモデルに基づいて、前記生成器を使用して第3の画像を生成するステップとを備え、
前記3Dデジタル表現は、多角形またはパッチのセットから構成されるプリミティブと、前記プリミティブの解像度よりも高い解像度を有する視覚的詳細を組み込むために前記プリミティブに適用されるテクスチャとを含む、方法。
【請求項2】
前記ビジュアルアセットの前記3Dデジタル表現から前記第1の画像を取り込むステップは、さまざまな視点から、および、さまざまな照明条件下で前記第1の画像を取り込むバーチャルカメラを使用して前記第1の画像を取り込むステップを含む、請求項1に記載の方法。
【請求項3】
コンピュータによって実行される方法であって、
ビジュアルアセットの三次元(3D)デジタル表現の第1の画像を取り込むステップと、
敵対的生成ネットワーク(GAN:generative adversarial network)における生成器を使用して、前記ビジュアルアセットのバリエーションを表す第2の画像を生成して、前記GANにおける識別器において前記第1の画像と前記第2の画像とを区別しようとするステップと、
前記識別器が前記第1の画像と前記第2の画像とを成功裏に区別したかどうかに基づいて、前記識別器における第1のモデルおよび前記生成器における第2のモデルのうちの少なくとも1つを更新するステップと、
前記更新された第2のモデルに基づいて、前記生成器を使用して第3の画像を生成するステップとを備え、
前記ビジュアルアセットの前記3Dデジタル表現から前記第1の画像を取り込むステップは、さまざまな視点から、および、さまざまな照明条件下で前記第1の画像を取り込むバーチャルカメラを使用して前記第1の画像を取り込むステップを含み、
前記第1の画像を取り込むステップは、前記ビジュアルアセットのタイプ、前記バーチャルカメラの位置、前記バーチャルカメラの姿勢、前記ビジュアルアセットに適用されるテクスチャ、および前記ビジュアルアセットの色のうちの少なくとも1つに基づいて前記第1の画像をラベル付けするステップを含む、方法。
【請求項4】
前記第1の画像を取り込むステップは、前記第1の画像を、前記ビジュアルアセットのさまざまな部分に関連付けられた部分にセグメント化して、前記ビジュアルアセットの前記さまざまな部分を示すように前記第1の画像の前記部分をラベル付けするステップを含む、請求項3に記載の方法。
【請求項5】
前記更新された第2のモデルに基づいて、前記生成器を使用して第3の画像を生成するステップは、前記ビジュアルアセットの少なくとも1つのラベル付けされた部分と別のビジュアルアセットの少なくとも1つのラベル付けされた部分とを組み合わせることによって、前記更新された第2のモデルに基づいて前記ビジュアルアセットのバリエーションを表すように少なくとも1つの第3の画像を前記GANにおける前記生成器において生成するステップを含む、請求項4に記載の方法。
【請求項6】
前記第1のモデルおよび前記第2のモデルのうちの少なくとも1つを更新するステップは、前記第2の画像が前記識別器によって前記第1の画像から区別可能でないという第1の可能性、および、前記識別器が前記第1の画像と前記第2の画像とを成功裏に区別するという第2の可能性のうちの少なくとも1つを示す損失関数を適用するステップを含む、請求項1~のいずれか1項に記載の方法。
【請求項7】
前記第1のモデルは、前記第1の画像におけるパラメータの第1の分布を含み、前記第2のモデルは、前記生成器によって推論されるパラメータの第2の分布を含む、請求項に記載の方法。
【請求項8】
前記損失関数を適用するステップは、知覚的損失関数を適用するステップを含み、前記知覚的損失関数は、前記第1の画像および前記第2の画像から特徴を抽出して、前記第1の画像と前記第2の画像との間の差を前記抽出された特徴間の距離として符号化する、請求項に記載の方法。
【請求項9】
前記GANにおける前記生成器において、前記第1のモデルに基づいて前記ビジュアルアセットのバリエーションを表すように少なくとも1つの第3の画像を生成するステップをさらに含む、請求項1~のいずれか1項に記載の方法。
【請求項10】
前記少なくとも1つの第3の画像を生成するステップは、前記ビジュアルアセットに関連付けられたラベルまたは前記ビジュアルアセットの一部のアウトラインのデジタル表現のうちの少なくとも1つに基づいて前記少なくとも1つの第3の画像を生成するステップを含む、請求項に記載の方法。
【請求項11】
前記少なくとも1つの第3の画像を生成するステップは、前記ビジュアルアセットの少なくとも1つの部分と別のビジュアルアセットの少なくとも1つの部分とを組み合わせることによって前記少なくとも1つの第3の画像を生成するステップを含む、請求項または10に記載の方法。
【請求項12】
実行可能な命令のセットを具現化するコンピュータプログラムであって、前記実行可能な命令のセットは、請求項1~11のいずれか1項に記載の方法を実行するように少なくとも1つのプロセッサを操作する、コンピュータプログラム。
【請求項13】
請求項12に記載のコンピュータプログラムを格納するように構成されたメモリと、
前記コンピュータプログラムを実行するように構成された少なくとも1つのプロセッサとを備える、システム。
【発明の詳細な説明】
【発明の概要】
【発明が解決しようとする課題】
【0001】
背景
ビデオゲームの制作に割り当てられる予算および資源のかなりの部分は、ビデオゲームのビジュアルアセットを作成するプロセスによって消費される。たとえば、多人数参加型オンラインゲームは、何千ものプレーヤアバタおよびノンプレーヤキャラクタ(NPC:Non-Player Character)を含んでおり、これらは、通常、個別化されたキャラクタを作成するためにゲームの開発中に手動でカスタマイズされる三次元(3D)テンプレートを使用して作成される。別の例では、ビデオゲームの中の場面の環境または文脈は、木、岩、雲などの多数の仮想物体を含んでいることが多い。これらの仮想物体は、森が何百個もの同じ木または一群の木の繰り返しパターンを含む場合に起こり得るような過度な繰り返しまたは同質性を回避するために、手動でカスタマイズされる。キャラクタおよび物体の生成には手続き型コンテンツ生成が使用されてきたが、コンテンツ生成プロセスは、制御するのが困難であり、往々にして、視覚的に均一であったり、同質であったり、反復性であったりする出力を生成する。ビデオゲームのビジュアルアセットを生成するコストが高いことは、ビデオゲームの予算を跳ね上がらせることになり、ビデオゲーム制作者の側でのリスク回避を増大させる。また、コンテンツ生成のコストは、高忠実度のゲームデザインを求めて市場に参入しようとする小さなスタジオ(それに対応して、予算が少ない)にとっては相当な参入障壁になる。さらに、ビデオゲームプレーヤ、特にオンラインプレーヤは、頻繁なコンテンツ更新を期待するようになっており、このことは、ビデオアセットの生成コストが高いことに関連付けられた問題をさらに悪化させる。
【課題を解決するための手段】
【0002】
概要
提案されている解決策は、特に、コンピュータによって実行される方法に関し、上記方法は、ビジュアルアセットの三次元(3D)デジタル表現の第1の画像を取り込むステップと、敵対的生成ネットワーク(GAN:Generative Adversarial Network)における生成器を使用して、上記ビジュアルアセットのバリエーションを表す第2の画像を生成して、上記GANにおける識別器において上記第1の画像と上記第2の画像とを区別しようとするステップと、上記識別器が上記第1の画像と上記第2の画像とを成功裏に区別したかどうかに基づいて、上記識別器における第1のモデルおよび上記生成器における第2のモデルのうちの少なくとも1つを更新するステップと、上記更新された第2のモデルに基づいて、上記生成器を使用して第3の画像を生成するステップとを備える。第1のモデルは、第2の画像を生成するための基礎として生成器によって使用されるのに対して、第2のモデルは、生成された第2の画像を評価するための基礎として識別器によって使用される。生成器が生成する第1の画像のバリエーションは、特に、第1の画像の少なくとも1つの画像パラメータのバリエーション、たとえば第1の画像の少なくとも1つまたは全ての画素またはテクセル値のバリエーションに関連し得る。したがって、生成器によるバリエーションは、たとえば、色、明るさ、テクスチャ、粒度、またはそれらの組み合わせのうちの少なくとも1つのバリエーションに関連し得る。
【0003】
たとえば画像データベース上で訓練されるニューラルネットワークを使用した画像の生成には機械学習が使用されてきた。この文脈において使用される画像生成の1つのアプローチは、一対の対話する畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)を使用してさまざまなタイプの画像をどのように作成するかを学習する敵対的生成ネットワーク(GAN)として知られている機械学習アーキテクチャを使用する。第1のCNN(生成器)は、訓練データセットの中の画像に対応する新たな画像を作成し、第2のCNN(識別器)は、生成された画像と訓練データセットからの「本物の」画像とを区別しようとする。場合によっては、生成器は、画像生成プロセスを導くヒントおよび/またはランダムノイズに基づいて画像を生成し、この場合、GANは条件付きGAN(CGAN:Conditional GAN)と称される。一般に、この文脈における「ヒント」は、たとえば、コンピュータ読取可能なフォーマットの画像コンテンツ特徴付けを含むパラメータであってもよい。ヒントの例としては、画像に関連付けられたラベル、動物または物体のアウトラインなどの形状情報などが挙げられる。次いで、生成器および識別器は、生成器によって生成された画像に基づいて競い合う。識別器が生成された画像を本物の画像として分類する(または、その逆)場合には生成器の「勝利」であり、識別器が生成された画像および本物の画像を正しく分類する場合には識別器の「勝利」である。生成器および識別器は、勝敗を正しいモデルからの「距離」として符号化する損失関数に基づいてそれらのそれぞれのモデルを更新し得る。生成器および識別器は、他のCNNによって生成された結果に基づいてそれらのそれぞれのモデルを改良し続ける。
【0004】
訓練されたGANにおける生成器は、訓練データセットの中の人、動物または物体の特徴を模倣しようとする画像を生成する。上記のように、訓練されたGANにおける生成器は、ヒントに基づいて画像を生成することができる。たとえば、訓練されたGANは、「熊」というラベルを含むヒントを受信したことに応答して、熊に似た画像を生成しようとする。しかし、訓練されたGANによって生成される画像は、(少なくとも一部が)訓練データセットの特徴によって判断され、この訓練データセットは、生成された画像の所望の特徴を反映することができない。たとえば、ビデオゲームデザイナは、印象的な視点、画像構成および照明効果によって特徴付けられるファンタジーまたはサイエンスフィクションスタイルを使用してゲームのビジュアルアイデンティティを作成することが多い。これに対して、従来の画像データベースは、さまざまな照明条件下でさまざまな環境において撮影されたさまざまな異なる人、動物または物体の実世界写真を含む。さらに、撮影された顔のデータセットは、顔が傾いたり、ガウスぼかしを背景に適用することによって修正されたりしないようにするために回転される限られた数の視点を含むように事前処理されることが多い。したがって、従来の画像データベース上で訓練されるGANは、ゲームデザイナによって作成されたビジュアルアイデンティティを維持する画像を生成することができない。たとえば、実世界写真の中の人、動物または物体を模倣する画像は、ファンタジーまたはサイエンスフィクションスタイルで生成された場面の視覚的一貫性を狂わせるであろう。さらに、GANの訓練に使用され得るイラストの大きなリポジトリは、所有権、スタイルコンフリクトの問題にさらされ、または単に、ロバストな機械学習モデルを構築するのに必要な多様性が欠如している。
【0005】
したがって、提案されている解決策は、ビジュアルアセットの三次元(3D)デジタル表現から取り込まれた画像を使用して条件付き敵対的生成ネットワーク(CGAN)の生成器および識別器を訓練することによって多様で視覚的に一貫性のあるコンテンツを生成するためのハイブリッド手続き型パイプラインを提供する。3Dデジタル表現は、ビジュアルアセットの3D構造のモデルを含み、場合によってはモデルの表面に適用されるテクスチャを含む。たとえば、熊の3Dデジタル表現は、プリミティブと総称される三角形、他の多角形またはパッチのセットと、毛皮、歯、つめおよび目などの、プリミティブの解像度よりも高い解像度を有する視覚的詳細を組み入れるためにプリミティブに適用されるテクスチャとによって表すことができる。訓練画像(「第1の画像」)は、さまざまな視点から、および場合によっては、さまざまな照明条件下で画像を取り込むバーチャルカメラを使用して取り込まれる。ビジュアルアセットの3Dデジタル表現の訓練画像を取り込むことによって、訓練データセットの向上をもたらすことができ、ビデオゲームの中で変更されたビジュアルアセットの3D表現において別々にまたは組み合わせて使用され得るさまざまな第2の画像で構成された多様で視覚的に一貫性のあるコンテンツがもたらされる。バーチャルカメラによって訓練画像(「第1の画像」)を取り込むことは、ビジュアルアセットの3D表現のさまざまな視点または照明条件に関連する訓練画像のセットを取り込むことを含み得る。訓練セットの中の訓練画像の数または視点または照明条件は、ユーザまたは画像取込アルゴリズムによって予め決定されている。たとえば、訓練セットの中の訓練画像の数、視点および照明条件のうちの少なくとも1つは、予め設定されてもよく、または、訓練画像が取り込まれるビジュアルアセット次第であってもよい。これは、たとえば、ビジュアルアセットを画像取込システムにロードした後および/またはバーチャルカメラを実装する画像取込プロセスを起動した後に訓練画像の取り込みが自動的に実行され得ることを含む。
【0006】
また、画像取込システムは、取り込まれた画像に、物体のタイプ(たとえば、熊)、カメラ位置、カメラ姿勢、照明条件、テクスチャ、色などを示すラベルを含むラベルを適用し得る。いくつかの実施形態では、画像は、動物の頭、耳、首、足および腕などのビジュアルアセットのさまざまな部分にセグメント化される。画像のセグメント化された部分は、ビジュアルアセットのさまざまなパーツを示すようにラベル付けされ得る。ラベル付けされた画像は、訓練データベースに格納され得る。
【0007】
GANを訓練することによって、生成器および識別器は、3Dデジタル表現から生成された訓練データベースの中の画像を表すパラメータの分布を学習する。すなわち、GANは、訓練データベースの中の画像を使用して訓練される。最初に、訓練データベースの中の画像に基づいて3Dデジタル表現の「本物の」画像を識別するように識別器が訓練される。次いで、生成器は、たとえばラベルまたはビジュアルアセットのアウトラインのデジタル表現などのヒントに応答して、(第2の)画像を生成することを開始する。次いで、生成器および識別器は、たとえば生成器がビジュアルアセットを表す画像をどれぐらい上手く生成しているか(たとえば、それが識別器をどれぐらい上手く「だまして」いるか)および識別器が生成された画像と訓練データベースからの本物の画像とをどれぐらい上手く区別しているかを示す損失関数に基づいて、それらの対応するモデルを繰り返しおよび同時に更新し得る。生成器は、訓練画像におけるパラメータの分布をモデル化し、識別器は、生成器によって推論されるパラメータの分布をモデル化する。したがって、生成器の第1のモデルは、第1の画像におけるパラメータの分布を含み得て、識別器の第2のモデルは、生成器によって推論されるパラメータの分布を含む。
【0008】
いくつかの実施形態では、損失関数は、別のニューラルネットワークを使用して画像から特徴を抽出して2つの画像間の差を抽出された特徴間の距離として符号化する知覚的損失関数を含む。いくつかの実施形態では、損失関数は、識別器からの分類判断を受信し得る。損失関数は、識別器に提供された第2の画像のアイデンティティ(または、少なくとも本物または偽物ステータス)を示す情報も受信し得る。次いで、損失関数は、受信された情報に基づいて分類誤差を生成し得る。分類誤差は、生成器および識別器がそれらのそれぞれの目標をどれぐらい上手く達成するかを表す。
【0009】
GANは、訓練されると、生成器によって推論されるパラメータの分布に基づいて、ビジュアルアセットを表す画像を生成するために使用される。いくつかの実施形態では、これらの画像は、ヒントに応答して生成される。たとえば、訓練されたGANは、「熊」というラベルまたは熊のアウトラインの表現を含むヒントを受信したことに応答して熊の画像を生成することができる。いくつかの実施形態では、これらの画像は、ビジュアルアセットのセグメント化された部分の合成物に基づいて生成される。たとえば、恐竜の頭、胴体、足および尾ならびにコウモリの翼などの異なる生き物を表す画像(それぞれのラベルによって示される)のセグメントを組み合わせることによってキメラを生成することができる。
【0010】
いくつかの実施形態では、GANにおける生成器において、第1のモデルに基づいてビジュアルアセットのバリエーションを表すように少なくとも1つの第3の画像が生成され得る。そして、少なくとも1つの第3の画像を生成することは、たとえば、ビジュアルアセットに関連付けられたラベルまたはビジュアルアセットの一部のアウトラインのデジタル表現のうちの少なくとも1つに基づいて少なくとも1つの第3の画像を生成することを含み得る。代替的にまたはさらに、少なくとも1つの第3の画像を生成することは、ビジュアルアセットの少なくとも1つのセグメントと別のビジュアルアセットの少なくとも1つのセグメントとを組み合わせることによって少なくとも1つの第3の画像を生成することを含み得る。
【0011】
提案されている解決策はさらに、システムに関し、上記システムは、ビジュアルアセットの三次元(3D)デジタル表現から取り込まれた第1の画像を格納するように構成されたメモリと、生成器および識別器を備える敵対的生成ネットワーク(GAN)を実現するように構成された少なくとも1つのプロセッサとを備え、上記生成器は、上記ビジュアルアセットのバリエーションを表す第2の画像を、たとえば上記識別器が上記第1の画像と上記第2の画像とを区別しようとするのと同時に、生成するように構成されており、上記少なくとも1つのプロセッサは、上記識別器が上記第1の画像と上記第2の画像とを成功裏に区別したかどうかに基づいて、上記識別器における第1のモデルおよび上記生成器における第2のモデルのうちの少なくとも1つを更新するように構成されている。
【0012】
提案されているシステムは、特に、提案されている方法の実施形態を実現するように構成され得る。
【0013】
添付の図面を参照することによって、本開示をよりよく理解することができ、その多数の特徴および利点を当業者に明らかにすることができる。異なる図における同一の参照符号の使用は、同様または同一の要素を示す。
【図面の簡単な説明】
【0014】
図1】いくつかの実施形態に係る、技術開発のためのハイブリッド手続き型機械語(ML:Machine Language)パイプラインを実装するビデオゲーム処理システムのブロック図である。
図2】いくつかの実施形態に係る、技術開発のためのハイブリッド手続き型MLパイプラインを実装するクラウドベースのシステムのブロック図である。
図3】いくつかの実施形態に係る、ビジュアルアセットのデジタル表現の画像を取り込むための画像取込システムのブロック図である。
図4】いくつかの実施形態に係る、ビジュアルアセットの画像およびビジュアルアセットを表すラベル付きデータのブロック図である。
図5】いくつかの実施形態に係る、ビジュアルアセットのバリエーションである画像を生成するように訓練される敵対的生成ネットワーク(GAN)のブロック図である。
図6】いくつかの実施形態に係る、ビジュアルアセットの画像のバリエーションを生成するようにGANを訓練する方法のフロー図である。
図7】いくつかの実施形態に係る、ビジュアルアセットの画像を特徴付けるパラメータの正解分布およびGANにおける生成器によって生成される対応するパラメータの分布の進展を示す図である。
図8】いくつかの実施形態に係る、ビジュアルアセットのバリエーションである画像を生成するように訓練されたGANの一部のブロック図である。
図9】いくつかの実施形態に係る、ビジュアルアセットの画像のバリエーションを生成する方法のフロー図である。
【発明を実施するための形態】
【0015】
詳細な説明
図1は、いくつかの実施形態に係る、技術開発のためのハイブリッド手続き型機械語(ML)パイプラインを実装するビデオゲーム処理システム100のブロック図である。処理システム100は、ダイナミックランダムアクセスメモリ(DRAM:Dynamic Random-Access Memory)などの非一時的なコンピュータ読取可能媒体を使用して実現されるシステムメモリ105または他のストレージ要素を含むか、またはシステムメモリ105または他のストレージ要素にアクセスできる。しかし、メモリ105のいくつかの実施形態は、スタティックRAM(SRAM:Static RAM)、不揮発性RAMなどを含む他のタイプのメモリを使用して実現される。処理システム100は、メモリ105などの、処理システム100に実装されるエンティティ間の通信をサポートするためのバス110も含む。処理システム100のいくつかの実施形態は、他のバス、ブリッジ、スイッチ、ルータなどを含むが、これらは明確にするために図1には示されていない。
【0016】
処理システム100は、中央処理装置(CPU:Central Processing Unit)115を含む。CPU115のいくつかの実施形態は、同時にまたは並行して命令を実行する複数の処理要素(明確にするために図1には示されていない)を含む。これらの処理要素は、プロセッサコア、コンピュートユニットと称され、または他の用語を使用して呼ばれる。CPU115は、バス110に接続されており、CPU115は、バス110を介してメモリ105と通信する。CPU115は、メモリ105に格納されたプログラムコード120などの命令を実行し、CPU115は、実行された命令の結果などの情報をメモリ105に格納する。CPU115は、ドローコールを発行することによってグラフィックス処理を起動することもできる。
【0017】
入力/出力(I/O)エンジン125は、スクリーン135上に画像または映像を表示するディスプレイ130に関連付けられた入力または出力動作を処理する。示されている実施形態では、I/Oエンジン125は、ゲームコントローラ140に接続されており、ゲームコントローラ140は、ユーザがゲームコントローラ140上の1つまたは複数のボタンを押したこと、またはたとえば加速度計によって検出される動きを使用するといった他の方法でユーザがゲームコントローラ140と対話したことに応答して、I/Oエンジン125に制御信号を提供する。I/Oエンジン125は、振動、ライトの点灯などの応答をゲームコントローラ140において作動させるための信号もゲームコントローラ140に提供する。示されている実施形態では、I/Oエンジン125は、コンパクトディスク(CD:Compact Disk)、デジタルビデオディスク(DVD:Digital Video Disc)などの非一時的なコンピュータ読取可能媒体を使用して実現される外部ストレージ要素145に格納された情報を読み取る。また、I/Oエンジン125は、CPU115による処理の結果などの情報を外部ストレージ要素145に書き込む。I/Oエンジン125のいくつかの実施形態は、キーボード、マウス、プリンタ、外部ディスクなどの処理システム100の他の要素に結合されている。I/Oエンジン125は、メモリ105、CPU115、またはバス110に接続された他のエンティティとI/Oエンジン125が通信するようにバス110に結合されている。
【0018】
処理システム100は、たとえばスクリーン135を構成する画素を制御することによって、画像をレンダリングしてディスプレイ130のスクリーン135上に表示するグラフィックス処理ユニット(GPU:Graphics Processing Unit)150を含む。たとえば、GPU150は、ディスプレイ130に提供される画素の値を生成するように物体をレンダリングし、ディスプレイ130は、これらの画素値を使用して、レンダリングされた物体を表す画像を表示する。GPU150は、同時にまたは並行して命令を実行するコンピュートユニットのアレイ155などの1つまたは複数の処理要素を含む。GPU150のいくつかの実施形態は、汎用コンピューティングに使用される。示されている実施形態では、GPU150は、バス110を介してメモリ105(および、バス110に接続された他のエンティティ)と通信する。しかし、GPU150のいくつかの実施形態は、直接接続を介して、または他のバス、ブリッジ、スイッチ、ルータなどを介してメモリ105と通信する。GPU150は、メモリ105に格納された命令を実行し、GPU150は、実行された命令の結果などの情報をメモリ105に格納する。たとえば、メモリ105は、GPU150によって実行されるプログラムコード160を表す命令を格納する。
【0019】
示されている実施形態では、CPU115およびGPU150は、ビデオゲームアプリケーションを実現するための対応するプログラムコード120,160を実行する。たとえば、ゲームコントローラ140を介して受信されたユーザ入力は、ビデオゲームアプリケーションの状態を変更するようにCPU115によって処理される。次いで、CPU115は、ビデオゲームアプリケーションの状態を表す画像をレンダリングしてディスプレイ130のスクリーン135上に表示するようにGPU150に指示するためのドローコールを送信する。本明細書に記載されているように、GPU150は、物理演算エンジンまたは機械学習アルゴリズムを実行するなど、ビデオゲームに関連する汎用コンピューティングを実行することもできる。
【0020】
CPU115またはGPU150は、技術開発のためのハイブリッド手続き型機械語(ML)パイプラインを実現するためのプログラムコード165も実行する。ハイブリッド手続き型MLパイプラインは、さまざまな視点から、および場合によっては、さまざまな照明条件下でビジュアルアセットの三次元(3D)デジタル表現の画像170を取り込む第1の部分を含む。いくつかの実施形態では、バーチャルカメラがさまざまな視点から、および/または、さまざまな照明条件下でビジュアルアセットの3Dデジタル表現の第1の画像または訓練画像を取り込む。画像170は、自動的に、すなわちプログラムコード165に含まれる画像取込アルゴリズムに基づいて、バーチャルカメラによって取り込まれ得る。たとえばモデルとバーチャルカメラとを含む部分といった、ハイブリッド手続き型MLパイプラインの第1の部分によって取り込まれた画像170は、メモリ105に格納される。画像170が取り込まれるビジュアルアセットは、(たとえば、コンピュータ支援のデザインツールを使用して)ユーザによって生成されて、メモリ105に格納され得る。
【0021】
ハイブリッド手続き型MLパイプラインの第2の部分は、ボックス175によって示される、プログラムコードおよび関連データ(モデルパラメータなど)によって表される敵対的生成ネットワーク(GAN)を含む。GAN175は、異なるニューラルネットワークとして実現される生成器および識別器を含む。生成器は、ビジュアルアセットのバリエーションを表す第2の画像を、識別器が第1の画像と第2の画像とを区別しようとするのと同時に、生成する。識別器または生成器においてMLモデルを定義するパラメータは、識別器が第1の画像と第2の画像とを成功裏に区別したかどうかに基づいて更新される。生成器において実現されるモデルを定義するパラメータは、訓練画像170におけるパラメータの分布を決定する。識別器において実現されるモデルを定義するパラメータは、たとえば生成器のモデルに基づいて生成器によって推論されるパラメータの分布を決定する。
【0022】
GAN175は、訓練されたGAN175に提供されるヒントまたはランダムノイズに基づいてビジュアルアセットのさまざまなバージョンを生成するように訓練され、この場合、訓練されたGAN175は条件付きGANと称され得る。たとえば、GAN175が赤色の竜のデジタル表現の画像のセット170に基づいて訓練されている場合、GAN175における生成器は、赤色の竜のバリエーション(たとえば、青色の竜、緑色の竜、より大きな竜、より小さな竜など)を表す画像を生成する。生成器によって生成された画像または訓練画像170は、(たとえば、訓練画像170と生成された画像との間でランダムに選択を行うことによって)識別器に選択的に提供され、識別器は、「本物の」訓練画像170と生成器によって生成された「偽物の」画像とを区別しようとする。次いで、生成器および識別器において実現されるモデルのパラメータは、識別器が本物の画像と偽物の画像とを成功裏に区別したかどうかに基づいて決定される値を有する損失関数に基づいて更新される。いくつかの実施形態では、この損失関数は、別のニューラルネットワークを使用して本物の画像および偽物の画像から特徴を抽出して2つの画像間の差を抽出された特徴間の距離として符号化する知覚的損失関数も含む。
【0023】
GAN175における生成器は、訓練されると、訓練画像のバリエーションを生成し、これらの訓練画像のバリエーションは、ビデオゲームの画像または動画の生成に使用される。図1に示される処理システム100は、画像取込、GANモデル訓練、および訓練されたモデルを使用したその後の画像生成を実行するが、これらの動作は、いくつかの実施形態では他の処理システムを使用して実行される。たとえば、第1の処理システム(図1に示される処理システム100と同様の態様で構成される)が、画像取込を実行して、第2の処理システムがアクセス可能なメモリにビジュアルアセットの画像を格納する、またはこれらの画像を第2の処理システムに送信することができる。第2の処理システムが、GAN175のモデル訓練を実行して、第3の処理システムがアクセス可能なメモリに、訓練されたモデルを定義するパラメータを格納する、またはこれらのパラメータを第3の処理システムに送信することができる。次いで、第3の処理システムが、訓練されたモデルを使用してビデオゲームの画像または動画を生成するのに使用されることができる。
【0024】
図2は、いくつかの実施形態に係る、技術開発のためのハイブリッド手続き型MLパイプラインを実装するクラウドベースのシステム200のブロック図である。クラウドベースのシステム200は、ネットワーク210と相互接続されたサーバ205を含む。1つのサーバ205が図2に示されているが、クラウドベースのシステム200のいくつかの実施形態は、ネットワーク210に接続された2つ以上のサーバを含む。示されている実施形態では、サーバ205は、ネットワーク210の方に信号を送信したりネットワーク210から信号を受信したりする送受信機215を含む。送受信機215は、1つまたは複数の別々の送信機および受信機を使用して実現することができる。サーバ205は、1つまたは複数のプロセッサ220および1つまたは複数のメモリ225も含む。プロセッサ220は、メモリ225に格納されたプログラムコードなどの命令を実行し、プロセッサ220は、実行された命令の結果などの情報をメモリ225に格納する。
【0025】
クラウドベースのシステム200は、ネットワーク210を介してサーバ205に接続されたコンピュータ、セットトップボックス、ゲーム機などの1つまたは複数の処理デバイス230を含む。示されている実施形態では、処理デバイス230は、ネットワーク210の方に信号を送信したりネットワーク210から信号を受信したりする送受信機235を含む。送受信機235は、1つまたは複数の別々の送信機および受信機を使用して実現することができる。処理デバイス230は、1つまたは複数のプロセッサ240および1つまたは複数のメモリ245も含む。プロセッサ240は、メモリ245に格納されたプログラムコードなどの命令を実行し、プロセッサ240は、実行された命令の結果などの情報をメモリ245に格納する。送受信機235は、スクリーン255上に画像または映像を表示するディスプレイ250、ゲームコントローラ260、および他のテキストまたは音声入力デバイスに接続されている。したがって、クラウドベースのシステム200のいくつかの実施形態は、クラウドベースのゲームストリーミングアプリケーションによって使用される。
【0026】
プロセッサ220、プロセッサ240、またはそれらの組み合わせは、画像取込、GANモデル訓練、および訓練されたモデルを使用したその後の画像生成を実行するためのプログラムコードを実行する。サーバ205内のプロセッサ220と処理デバイス230内のプロセッサ240との間の分業は、実施形態が異なれば異なる。たとえば、サーバ205は、リモートビデオキャプチャ処理システムによって取り込まれた画像を使用してGANを訓練して、訓練されたGANにおけるモデルを定義するパラメータを送受信機215,235を介してプロセッサ220に提供し得る。次いで、プロセッサ220は、訓練されたGANを使用して、訓練画像の取り込みに使用されるビジュアルアセットのバリエーションである画像または動画を生成し得る。
【0027】
図3は、いくつかの実施形態に係る、ビジュアルアセットのデジタル表現の画像を取り込むための画像取込システム300のブロック図である。画像取込システム300は、図1に示される処理システム100および図2に示される処理システム200のいくつかの実施形態を使用して実現される。
【0028】
画像取込システム300は、1つまたは複数のプロセッサ、メモリまたは他の回路を使用して実現されるコントローラ305を含む。コントローラ305は、バーチャルカメラ310およびバーチャル光源315に接続されているが、明確にするために全ての接続が図3に示されているわけではない。画像取込システム300は、デジタル3Dモデルとして表示されるビジュアルアセット320の画像を取り込むのに使用される。いくつかの実施形態では、ビジュアルアセット320(この例では、竜)の3Dデジタル表現は、プリミティブと総称される三角形、他の多角形またはパッチのセットと、竜の頭、つめ、翼、歯、目および尾のテクスチャおよび色などの、プリミティブの解像度よりも高い解像度を有する視覚的詳細を組み込むためにプリミティブに適用されるテクスチャとによって表される。コントローラ305は、図3に示されるバーチャルカメラ310の3つの位置などの、バーチャルカメラ310の位置、向きまたは姿勢を選択する。コントローラ305は、ビジュアルアセット320を照明するためにバーチャル光源315によって生成される光の光度、方向、色および他の特性も選択する。さまざまな光特徴または特性をバーチャルカメラ310のさまざまな露出で使用して、ビジュアルアセット320のさまざまな画像を生成する。バーチャルカメラ310の位置、向きまたは姿勢の選択、および/または、バーチャル光源315によって生成される光の光度、方向、色および他の特性の選択は、ユーザ選択に基づいていてもよく、または画像取込システム300によって実行される画像取込アルゴリズムによって自動的に決定されてもよい。
【0029】
コントローラ305は、(たとえば、画像に関連付けられたメタデータを生成することによって)画像をラベル付けして、それらをラベル付き画像325として格納する。いくつかの実施形態では、これらの画像は、ビジュアルアセット320のタイプ(たとえば、竜)、画像が取得されたときのバーチャルカメラ310の位置、画像が取得されたときのバーチャルカメラ310の姿勢、光源315によって生成される照明条件、ビジュアルアセット320に適用されるテクスチャ、ビジュアルアセット320の色などを示すメタデータを使用してラベル付けされる。いくつかの実施形態では、これらの画像は、ビジュアルアセット320の頭、つめ、翼、歯、目および尾などの、提案されている技術開発プロセスにおいて変更され得るビジュアルアセット320のさまざまなパーツを示すビジュアルアセット320のさまざまな部分にセグメント化される。画像のセグメント化された部分は、ビジュアルアセット320のさまざまなパーツを示すようにラベル付けされる。
【0030】
図4は、いくつかの実施形態に係る、ビジュアルアセットの画像400およびビジュアルアセットを表すラベル付きデータ405のブロック図である。画像400およびラベル付きデータ405は、図3に示される画像取込システム300のいくつかの実施形態によって生成される。示されている実施形態では、画像400は、飛行中の鳥を含むビジュアルアセットの画像である。画像400は、頭410、くちばし415、翼420,421、胴体425および尾430を含むさまざまな部分にセグメント化される。ラベル付きデータ405は、画像400と、「鳥」という関連付けられたラベルとを含む。ラベル付きデータ405は、画像400のセグメント化された部分および関連付けられたラベルも含む。たとえば、ラベル付きデータ405は、画像部分410および「頭」という関連付けられたラベルと、画像部分415および「くちばし」という関連付けられたラベルと、画像部分420および「翼」という関連付けられたラベルと、画像部分421および「翼」という関連付けられたラベルと、画像部分425および「胴体」という関連付けられたラベルと、画像部分430および「尾」という関連付けられたラベルとを含む。
【0031】
いくつかの実施形態では、画像部分410,415,420,421,425,430を使用して、他のビジュアルアセットの対応する部分を作成するようにGANを訓練する。たとえば、画像部分410を使用して、別のビジュアルアセットの「頭」を作成するようにGANの生成器を訓練する。画像部分410を使用したGANの訓練は、1つまたは複数の他のビジュアルアセットの「頭」に対応する他の画像部分を使用したGANの訓練とともに実行される。
【0032】
図5は、いくつかの実施形態に係る、ビジュアルアセットのバリエーションである画像を生成するように訓練されるGAN500のブロック図である。GAN500は、図1に示される処理システム100および図2に示されるクラウドベースのシステム200のいくつかの実施形態において実現される。
【0033】
GAN500は、パラメータのモデル分布に基づいて画像を生成する、ニューラルネットワーク510を使用して実現される生成器505を含む。生成器505のいくつかの実施形態は、ランダムノイズ515、ビジュアルアセットのラベルまたはアウトラインの形式のヒント520などの入力情報に基づいて画像を生成する。GAN500は、生成器505によって生成された画像と正解画像を表すビジュアルアセットのラベル付き画像535とを区別しようとする、ニューラルネットワーク530を使用して実現される識別器525も含む。したがって、識別器525は、生成器505によって生成された画像またはラベル付き画像535のうちの1つのいずれかを受信して、分類判断540を出力し、分類判断540は、受信された画像が、生成器505によって生成された(偽物の)画像であると識別器525が思うか、受信された画像がラベル付き画像535のセットからの(本物の)画像であると識別器525が思うかを示す。
【0034】
損失関数545は、分類判断540を識別器525から受信する。損失関数545は、識別器525に提供された対応する画像のアイデンティティ(または、少なくとも本物または偽物ステータス)を示す情報も受信する。次いで、損失関数545は、受信された情報に基づいて分類誤差を生成する。この分類誤差は、生成器505および識別器525がそれらのそれぞれの目標をどれぐらい上手く達成するかを表す。示されている実施形態では、損失関数545は、本物の画像および偽物の画像から特徴を抽出して本物の画像と偽物の画像との間の差を抽出された特徴間の距離として符号化する知覚的損失関数550も含む。知覚的損失関数550は、ラベル付き画像535および生成器505によって生成された画像に基づいて訓練されるニューラルネットワーク555を使用して実現される。したがって、知覚的損失関数550は、損失関数545全体に寄与する。
【0035】
生成器505の目標は、識別器525をだますこと、すなわち(偽物の)生成された画像をラベル付き画像535から抜き取られた(本物の)画像として識別器525に識別させたり、本物の画像を偽物の画像として識別器525に識別させたりすることである。したがって、ニューラルネットワーク510のモデルパラメータは、損失関数545によって表される(本物の画像と偽物の画像との間の)分類誤差を最大化するように訓練される。識別器525の目標は、本物の画像と偽物の画像とを正しく区別することである。したがって、ニューラルネットワーク530のモデルパラメータは、損失関数545によって表される分類誤差を最小化するように訓練される。生成器505および識別器525の訓練は、繰り返し行われて、それらの対応するモデルを定義するパラメータは、各繰り返しの間に更新される。いくつかの実施形態では、分類誤差を増大させるように生成器505において実現されるモデルを定義するパラメータを更新するのに勾配上昇法が使用される。分類誤差を減少させるように識別器525において実現されるモデルを定義するパラメータを更新するのに勾配降下法が使用される。
【0036】
図6は、いくつかの実施形態に係る、ビジュアルアセットの画像のバリエーションを生成するようにGANを訓練する方法600のフロー図である。方法600は、図1に示される処理システム100、図2に示されるクラウドベースのシステム200、および図5に示されるGAN500のいくつかの実施形態において実現される。
【0037】
ブロック605において、GANの識別器において実現される第1のニューラルネットワークは、最初に、ビジュアルアセットの画像を、これらのビジュアルアセットから取り込まれるラベル付き画像のセットを使用して識別するように訓練される。ラベル付き画像のいくつかの実施形態は、図3に示される画像取込システム300によって取り込まれる。
【0038】
ブロック610において、GANの生成器において実現される第2のニューラルネットワークは、ビジュアルアセットのバリエーションを表す画像を生成する。いくつかの実施形態では、この画像は、入力されたランダムノイズ、ヒントまたは他の情報に基づいて生成される。ブロック615において、生成された画像またはラベル付き画像のセットから選択された画像のいずれかが識別器に提供される。いくつかの実施形態では、GANは、(偽物の)生成された画像と識別器に提供される(本物の)ラベル付き画像との間でランダムに選択を行う。
【0039】
判断ブロック620において、識別器は、生成器から受信された本物の画像と偽物の画像とを区別しようとする。識別器は、識別器が画像を本物として識別するか偽物として識別するかを示す分類判断を行って、この分類判断を損失関数に提供し、この損失関数は、識別器が画像を本物として正しく識別したか偽物として正しく識別したかを判断する。識別器からの分類判断が正しい場合、方法600はブロック625に流れていく。識別器からの分類判断が正しくない場合、方法600はブロック630に流れていく。
【0040】
ブロック625において、生成器における第1のニューラルネットワークによって使用されるモデル分布を定義するモデルパラメータは、生成器によって生成された画像が識別器を上手くだまさなかったという事実を反映するように更新される。ブロック630において、識別器における第2のニューラルネットワークによって使用されるモデル分布を定義するモデルパラメータは、受信された画像が本物であるか偽物であるかを識別器が正しく識別しなかったという事実を反映するように更新される。図6に示される方法600は、生成器および識別器におけるモデルパラメータが独立して更新されていることを示しているが、GANのいくつかの実施形態は、識別器が分類判断を提供したことに応答して決定される損失関数に基づいて、生成器および識別器のモデルパラメータを同時に更新する。
【0041】
判断ブロック635において、GANは、生成器および識別器の訓練が収束したかどうかを判断する。収束は、第1および第2のニューラルネットワークにおいて実現されるモデルのパラメータの変化の大きさ、パラメータの分数変化、パラメータの変化率、それらの組み合わせに基づいて、または他の基準に基づいて評価される。訓練が収束したとGANが判断すると、方法600はブロック640に流れていって、方法600は終了する。訓練が収束していないとGANが判断すると、方法600はブロック610に流れていって、別の繰り返しが実行される。方法600の各繰り返しは、1つの(本物または偽物の)画像について実行されているが、方法600のいくつかの実施形態は、各繰り返しにおいて複数の本物および偽物の画像を識別器に提供し、次いで、これらの複数の画像について識別器によって返される分類判断に基づいて損失関数およびモデルパラメータを更新する。
【0042】
図7は、いくつかの実施形態に係る、ビジュアルアセットの画像を特徴付けるパラメータの正解分布およびGANにおける生成器によって生成される対応するパラメータの分布の進展を示す図である。これらの分布は、たとえば図6に示される方法600に従ったGANの訓練の連続的な繰り返しに対応する3つの連続的な時間間隔701,702,703で示されている。ビジュアルアセットから取り込まれたラベル付き画像(本物の画像)に対応するパラメータの値は、白丸705によって示されているが、明確にするために時間間隔701~703の各々において1つだけが参照番号によって示されている。
【0043】
第1の時間間隔701において、GANにおける生成器によって生成される画像(偽物の画像)に対応するパラメータの値は、黒丸710によって示されているが、明確にするために1つだけが参照番号によって示されている。偽物の画像のパラメータ710の分布は、本物の画像のパラメータ705の分布とは著しく異なっている。したがって、GANにおける識別器が本物の画像と偽物の画像とを成功裏に識別する可能性は、第1の時間間隔710の間は大きい。したがって、生成器において実現されるニューラルネットワークは、識別器をだます偽物の画像を生成する能力を向上させるように更新される。
【0044】
第2の時間間隔702において、生成器によって生成される画像に対応するパラメータの値は、黒丸715によって示されているが、明確にするために1つだけが参照番号によって示されている。偽物の画像を表すパラメータ715の分布は、本物の画像を表すパラメータ705の分布にいっそう類似しており、これは、生成器におけるニューラルネットワークが成功裏に訓練されていることを意味する。しかし、偽物の画像のパラメータ715の分布は、依然として、本物の画像のパラメータ705の分布とは(さほどではないが)著しく異なっている。したがって、GANにおける識別器が本物の画像と偽物の画像とを成功裏に識別する可能性は、第2の時間間隔702の間は大きい。やはり、生成器において実現されるニューラルネットワークは、識別器をだます偽物の画像を生成する能力を向上させるように更新される。
【0045】
第3の時間間隔703において、生成器によって生成される画像に対応するパラメータの値は、黒丸720によって示されているが、明確にするために1つだけが参照番号によって示されている。ここでは、偽物の画像を表すパラメータ720の分布は、本物の画像を表すパラメータ705の分布とほぼ区別できず、これは、生成器におけるニューラルネットワークが成功裏に訓練されていることを意味する。したがって、GANにおける識別器が本物の画像と偽物の画像とを成功裏に識別する可能性は、第3の時間間隔703の間は小さい。したがって、生成器において実現されるニューラルネットワークは、ビジュアルアセットのバリエーションを生成するためのモデル分布に収束している。
【0046】
図8は、いくつかの実施形態に係る、ビジュアルアセットのバリエーションである画像を生成するように訓練されたGANの一部800のブロック図である。GANの一部800は、図1に示される処理システム100および図2に示されるクラウドベースのシステム200のいくつかの実施形態において実現される。GANの一部800は、パラメータのモデル分布に基づいて画像を生成するニューラルネットワーク810を使用して実現される生成器805を含む。本明細書に記載されているように、パラメータのモデル分布は、ビジュアルアセットから取り込まれたラベル付き画像のセットに基づいて訓練されている。訓練されたニューラルネットワーク810を使用して、たとえばビデオゲームによって使用するための、ビジュアルアセットのバリエーションを表す画像または動画815を生成する。生成器805のいくつかの実施形態は、ランダムノイズ820、ビジュアルアセットのラベルまたはアウトラインの形式のヒント825などの入力情報に基づいて画像を生成する。
【0047】
図9は、いくつかの実施形態に係る、ビジュアルアセットの画像のバリエーションを生成する方法900のフロー図である。方法900は、図1に示される処理システム100、図2に示されるクラウドベースのシステム200、図5に示されるGAN500、および図8に示されるGANの一部800のいくつかの実施形態において実現される。
【0048】
ブロック905において、ヒントが生成器に提供される。いくつかの実施形態では、ヒントは、ビジュアルアセットの一部(アウトラインなど)のスケッチのデジタル表現である。ヒントは、画像の生成に使用されるラベルまたはメタデータも含み得る。たとえば、ラベルは、たとえば「竜」または「木」といったビジュアルアセットのタイプを示し得る。別の例では、ビジュアルアセットがセグメント化される場合、ラベルはセグメントのうちの1つまたは複数を示し得る。
【0049】
ブロック910において、ランダムノイズが生成器に提供される。ランダムノイズは、生成器によって生成された画像のバリエーションにランダム性の度合いを追加するために使用され得る。いくつかの実施形態では、ヒントもランダムノイズも生成器に提供される。しかし、他の実施形態では、ヒントまたはランダムノイズの一方または他方が生成器に提供される。
【0050】
ブロック915において、生成器は、ヒント、ランダムノイズまたはそれらの組み合わせに基づいて、ビジュアルアセットのバリエーションを表す画像を生成する。たとえば、ラベルがビジュアルアセットのタイプを示す場合、生成器は、対応するラベルを有する画像を使用してビジュアルアセットのバリエーションの画像を生成する。別の例では、ラベルがビジュアルアセットのセグメントを示す場合、生成器は、対応するラベルを有するセグメントの画像に基づいてビジュアルアセットのバリエーションの画像を生成する。したがって、異なるラベル付き画像またはセグメントを組み合わせることによって、ビジュアルアセットの多数のバリエーションを作成することができる。たとえば、1つの動物の頭と別の動物の胴体および第3の動物の翼とを組み合わせることによってキメラを作成することができる。
【0051】
いくつかの実施形態では、上記の技術の特定の局面は、ソフトウェアを実行する処理システムの1つまたは複数のプロセッサによって実現され得る。このソフトウェアは、非一時的なコンピュータ読取可能記憶媒体に格納されるかまたは有形に組み込まれた実行可能な命令の1つまたは複数のセットを含む。このソフトウェアは、1つまたは複数のプロセッサによって実行されると、上記の技術の1つまたは複数の局面を実行するように1つまたは複数のプロセッサを操作する命令および特定のデータを含み得る。非一時的なコンピュータ読取可能記憶媒体は、たとえば、磁気または光ディスク記憶装置、フラッシュメモリなどのソリッドステート記憶装置、キャッシュ、ランダムアクセスメモリ(RAM:Random Access Memory)または他の不揮発性メモリデバイスなどを含み得る。非一時的なコンピュータ読取可能記憶媒体に格納された実行可能な命令は、1つまたは複数のプロセッサによって解釈されるかまたは実行可能であるソースコード、アセンブリ言語コード、オブジェクトコードまたは他の命令フォーマットであってもよい。
【0052】
コンピュータ読取可能記憶媒体は、命令および/またはデータをコンピュータシステムに提供するために使用中にコンピュータシステムによってアクセス可能である任意の記憶媒体または記憶媒体の組み合わせを含み得る。このような記憶媒体は、光媒体(たとえば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイディスク)、磁気媒体(たとえば、フロッピー(登録商標)ディスク、磁気テープもしくは磁気ハードドライブ)、揮発性メモリ(たとえば、ランダムアクセスメモリ(RAM)もしくはキャッシュ)、不揮発性メモリ(たとえば、リードオンリメモリ(ROM:Read-Only Memory)もしくはフラッシュメモリ)、または微小電気機械システム(MEMS:Microelectromechanical System)ベースの記憶媒体を含み得るが、それらに限定されるものではない。コンピュータ読取可能記憶媒体は、コンピューティングシステムに組み込まれてもよく(たとえば、システムRAMもしくはROM)、コンピューティングシステムに固定的に取り付けられてもよく(たとえば、磁気ハードドライブ)、コンピューティングシステムに取り外し可能に取り付けられてもよく(たとえば、光ディスクもしくはユニバーサルシリアルバス(USB:Universal Serial Bus)ベースのフラッシュメモリ)、またはワイヤードもしくはワイヤレスネットワークを介してコンピュータシステムに結合されてもよい(たとえば、ネットワークアクセス可能なストレージ(NAS:Network Accessible Storage))。
【0053】
なお、概要に上記されている動作または要素は全てが必要なわけではなく、特定の動作またはデバイスの一部は不要であってもよく、上記のものに加えて1つまたは複数のさらなる動作が実行されてもよく、1つまたは複数のさらなる要素が含まれていてもよい。さらに、動作が列挙される順序は、必ずしもそれらが実行される順序ではない。また、特定の実施形態を参照して概念が説明されてきた。しかし、当業者は、以下の特許請求の範囲に記載されている本開示の範囲から逸脱することなくさまざまな修正および変更が実施可能であることを理解する。したがって、明細書および図面は、限定的な意味ではなく例示的な意味で解釈されるべきであり、全てのこのような修正は本開示の範囲内に含まれるよう意図されている。
【0054】
利益、他の利点、および問題に対する解決策について、特定の実施形態に関して上述してきた。しかし、これらの利益、利点、問題に対する解決策、および任意の利益、利点もしくは解決策を生じさせ得るか、またはより顕著にさせ得る任意の特徴は、いずれかの請求項または全ての請求項の重要な特徴、必要な特徴または不可欠な特徴として解釈されるべきではない。さらに、開示されている主題は、本明細書における教示の利益を有する当業者に明らかな異なっているが等価の態様で修正および実施され得るので、上記に開示されている特定の実施形態は例示にすぎない。以下の特許請求の範囲に記載されているもの以外に、本明細書に示されている構造または設計の詳細を限定することは意図されていない。したがって、上記に開示されている特定の実施形態は変更または修正されてもよく、全てのこのような変形は開示されている主題の範囲内であると考えられる、ということが明らかである。したがって、本明細書で求められる保護は、以下の特許請求の範囲に記載されているとおりである。
図1
図2
図3
図4
図5
図6
図7
図8
図9