(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023038895
(43)【公開日】2023-03-17
(54)【発明の名称】ニューラル・ネットワークを使用した3Dアセット・レンダリングにおける幾何学的スタイル及びテクスチャ・スタイルの転送
(51)【国際特許分類】
G06T 7/11 20170101AFI20230310BHJP
G06T 7/00 20170101ALI20230310BHJP
【FI】
G06T7/11
G06T7/00 350C
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022089998
(22)【出願日】2022-06-02
(31)【優先権主張番号】17/467,792
(32)【優先日】2021-09-07
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
2.BLUETOOTH
(71)【出願人】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】カンシュエ イン
(72)【発明者】
【氏名】ジュン ガオ
(72)【発明者】
【氏名】メイシャ シュグリナ
(72)【発明者】
【氏名】サメア カーミス
(72)【発明者】
【氏名】サーニャ フィドラー
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA09
5L096DA01
5L096DA02
5L096FA02
5L096FA25
5L096FA46
5L096FA64
5L096FA66
5L096GA10
5L096HA11
5L096JA09
5L096KA04
(57)【要約】
【課題】スタイル転送ネットワークを用いた幾何学的特徴及びテクスチャ構成要素のパート認識型スタイル変換を提供すること。
【解決手段】3次元3Dオブジェクト・モデルの生成は、コンテンツ作成の十分なスキル・セットがないユーザにとって困難であり、リソースを大量に消費する場合もある。1つ又は複数のスタイル転送ネットワークを使用して、ソース・アセットの幾何学的特徴とテクスチャ構成要素との両方をターゲット・アセットにパート認識型スタイル変換してもよい。ソース・アセットは特定のパートになるようセグメント化されてもよく、特定のパートとターゲット・アセットとの対応に従って楕円体近似がワープされてもよい。さらに、ターゲット・アセットに関連付けられたテクスチャを使用してソース・テクスチャをワープ又は調節してもよく、ワープされたパートに新しいテクスチャを適用することができる。
【選択図】
図2A
【特許請求の範囲】
【請求項1】
ソース3次元(3D)オブジェクト・モデルを受信するステップと、
ターゲット3Dオブジェクト・モデルを受信するステップと、
前記ソース3Dオブジェクト・モデルに対応する1つ又は複数のソース幾何学的セグメントを決定するステップと、
前記ターゲット3Dオブジェクト・モデルに対応する1つ又は複数のターゲット幾何学的セグメントを決定するステップと、
前記1つ又は複数のターゲット幾何学的セグメントの対応するターゲット形状に少なくとも部分的に基づいて、前記1つ又は複数のソース幾何学的セグメントのそれぞれの形状を調節するステップと、
前記1つ又は複数のソース幾何学的セグメントの前記調節されたそれぞれの形状に少なくとも部分的に基づいて、スタイル化された3Dオブジェクト・モデルを生成するステップと
を含む、コンピュータ実装方法。
【請求項2】
ソース・テクスチャを決定するステップと、
ターゲット・テクスチャを決定するステップと、
1つ又は複数の訓練済みニューラル・ネットワークを使用して、スタイル化されたテクスチャを生成するステップと、
前記スタイル化されたテクスチャを前記スタイル化された3Dオブジェクト・モデルに適用するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記スタイル化された3Dオブジェクト・モデルの複数のビューを生成するステップと、
前記複数のビューの各ビューにマスクを適用して、1つ又は複数の背景画素を識別するステップと、
前記1つ又は複数の背景画素から計算された1つ又は複数の特徴を、前記スタイル化された3Dオブジェクト・モデルから削除するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記それぞれの形状を調節するステップが、前記1つ又は複数のソース幾何学的セグメントに3Dアフィン変換を適用することを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記ターゲット・オブジェクトの前記1つ若しくは複数の幾何学的セグメント又は前記ソース・オブジェクトの前記1つ若しくは複数の幾何学的セグメントの前記セグメンテーションの少なくとも一部分が半教師ありである、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記1つ又は複数のソース幾何学的セグメントについて、1つ又は複数の楕円体近似を決定するステップをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記ソース3Dオブジェクト・モデル及び前記ターゲット3Dオブジェクト・モデルに関連付けられたオブジェクト・タイプを決定するステップと、
前記オブジェクト・タイプに少なくとも部分的に基づいて、前記1つ又は複数のソース幾何学的セグメントに対するセグメントの数を決定するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記それぞれの形状を調節する前記ステップが、幾何学的スタイル転送ネットワークを使用して前記それぞれの形状を調節することを含み、前記幾何学的スタイル転送ネットワークが、少なくとも部分的に、非テクスチャ化幾何学的形状のセットで訓練されている、請求項1に記載のコンピュータ実装方法。
【請求項9】
1つ又は複数の画像データセットに少なくとも部分的に基づいて、テクスチャ・スタイル転送ネットワークを訓練するステップをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
訓練済みの第1のニューラル・ネットワークを使用して、ソース・オブジェクトを処理し、前記ソース・オブジェクトの1つ又は複数のソース幾何学的特徴を決定するステップと、
前記訓練済みの第1のニューラル・ネットワークを使用して、ターゲット・オブジェクトを処理し、前記ターゲット・オブジェクトの1つ又は複数のターゲット幾何学的特徴を決定するステップと、
前記1つ又は複数のターゲット幾何学的特徴に少なくとも部分的に基づいて、選択済みのソース幾何学的特徴を調節するステップと、
前記調節された選択済みのソース幾何学的特徴に少なくとも部分的に基づいて、出力オブジェクトを生成ステップと
を含む、方法。
【請求項11】
訓練済みの第2のニューラル・ネットワークを使用して、前記ソース・オブジェクトを処理し、前記ソース・オブジェクトのソース・テクスチャを決定するステップと、
前記訓練済みの第2のニューラル・ネットワークを使用して、前記ターゲット・オブジェクトを処理し、前記ターゲット・オブジェクトのターゲット・テクスチャを決定するステップと、
前記ターゲット・テクスチャに少なくとも部分的に基づいて、前記ソース・テクスチャの1つ又は複数の特徴を調節するステップと、
前記調節された1つ又は複数の特徴に少なくとも部分的に基づいて、出力テクスチャを生成するステップと、
前記出力テクスチャを前記出力オブジェクトに適用するステップと
をさらに含む、請求項10に記載の方法。
【請求項12】
前記出力オブジェクトの複数のビューを生成するステップであって、前記複数のビューの各ビューが異なる角度にある、ステップと、
前記複数のビューを使用して、背景に関連付けられた前記出力オブジェクトの1つ又は複数の特徴を決定するステップと
をさらに含む、請求項10に記載の方法。
【請求項13】
前記1つ又は複数の特徴に少なくとも部分的に基づいて、前記出力オブジェクトを調節して、前記背景に関連付けられた前記1つ又は複数の特徴を削除するステップをさらに含む、請求項12に記載の方法。
【請求項14】
前記ソース・オブジェクトの前記1つ又は複数のソース幾何学的特徴に関して前記ソース・オブジェクトをセグメント化するステップと、
前記ターゲット・オブジェクトの前記1つ又は複数のターゲット幾何学的特徴に関して前記ターゲット・オブジェクトをセグメント化ステップと
をさらに含む、請求項10に記載の方法。
【請求項15】
セグメント化する前記ステップのためのセグメントの数が、前記ソース・オブジェクト又は前記ターゲット・オブジェクトのうちの少なくとも一方のオブジェクト・タイプに少なくとも部分的に基づく、請求項14に記載の方法。
【請求項16】
ソース3次元(3D)オブジェクトを1つ又は複数のソース構成要素になるようセグメント化するステップと、
ターゲット3Dオブジェクトを1つ又は複数のターゲット構成要素になるようセグメント化するステップと、
前記1つ又は複数のソース構成要素のうちの少なくとも1つと、前記1つ又は複数のターゲット構成要素のうちのそれぞれ少なくとも1つとの間の差異を決定するステップと、
前記差異に少なくとも部分的に基づいて、前記1つ又は複数のソース構成要素のうちの前記少なくとも1つをワープするステップと、
前記1つ又は複数のソース構成要素のうちの前記ワープされた少なくとも1つに少なくとも部分的に基づいて、1つ又は複数のスタイル化された構成要素を生成するステップと
を含む、方法。
【請求項17】
前記1つ又は複数のスタイル化された構成要素を使用して、スタイル化されたオブジェクトを生成するステップをさらに含む、請求項16に記載の方法。
【請求項18】
前記差異が、面取り距離に少なくとも部分的に基づく、請求項16に記載の方法。
【請求項19】
ワープする前記ステップが、少なくとも部分的にアフィン変換を使用して実行される、請求項16に記載の方法。
【請求項20】
前記ソース3Dオブジェクトに対するセグメントの数が、前記ソース3Dオブジェクトのオブジェクト・タイプに少なくとも部分的に基づく、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラル・ネットワークを使用した3Dアセット・レンダリングにおける幾何学的スタイル及びテクスチャ・スタイルの転送に関するものである。
【背景技術】
【0002】
ビデオ、アニメーション化されたメディア、ビデオ・ゲーム、又は他のタイプのコンテンツなどの様々なアプリケーションにおいてユーザにコンテンツを提供するために、3次元(3D)オブジェクト・モデルが使用されることがある。これらのオブジェクト・モデルの開発は困難を伴う可能性があり、制作者は、多くの場合、著しく高いレベルのスキルを有しており、リアルな外観のモデルを生成するために多大な時間を費やす。多くの場合、オブジェクト・モデルの生成を検討しているユーザにとって、時間及びスキル・レベルは参入障壁となる。さらに、シーン内に背景となる登場人物が多数存在するもののアクティビティの注目点とはならないビデオ・ゲームなどのアプリケーションでは、時間の制約により、コピー及び貼り付けが増える可能性がある。その結果、ユーザ主導のコンテンツ作成は、コンテンツ生成のための十分な時間及びリソースを有する特定の個人又はエンティティに限定される場合がある。
【発明の概要】
【課題を解決するための手段】
【0003】
図面を参照しながら、本開示による様々な実施例を説明する。
【図面の簡単な説明】
【0004】
【
図1】少なくとも一実施例による、コンテンツ生成のための環境の概略図である。
【
図2A】少なくとも一実施例による、スタイル転送ネットワークの概略図である。
【
図2B】少なくとも一実施例による、スタイル転送ネットワークの概略図である。
【
図3】少なくとも一実施例による、幾何学的スタイル転送ネットワークの概略図である。
【
図4】少なくとも一実施例による、例示的なセグメンテーション手順を示す図である。
【
図5】少なくとも一実施例による、例示的なスタイル転送手順を示す図である。
【
図6A】少なくとも一実施例による、スタイル化されたオブジェクト・モデルを生成するための例示的なプロセスを示す図である。
【
図6B】少なくとも一実施例による、スタイル化されたオブジェクト・モデルを生成するための例示的なプロセスを示す図である。
【
図7】少なくとも一実施例による、例示的なデータ・センタ・システムを示す図である。
【
図8】少なくとも一実施例による、コンピュータ・システムを示す図である。
【
図9】少なくとも一実施例による、コンピュータ・システムを示す図である。
【
図10】少なくとも一実施例による、1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【
図11】少なくとも一実施例による、1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【発明を実施するための形態】
【0005】
様々な実施例による手法は、形状スタイル及びテクスチャ・スタイルを、ある3Dアセット(たとえば、3Dオブジェクト・モデル)から別の3Dアセットに共同で転送するための3次元(3D)オブジェクト生成のためのシステム及び方法を提供する。様々な実施例は、ユーザがカスタム3Dコンテンツを生成できるようにするコンテンツ生成ツールを使用可能にすることができる。ユーザは、入力としてソース3Dモデルを選択し、所望の出力スタイルを表すターゲット3Dモデルを選択してもよい。さらに、1つ又は複数の実施例では、所望の出力がターゲットの幾何学的外観とターゲットのテクスチャ(たとえば、視覚的な)外観との両方を共有するように、パターン又は視覚的外観を含み得るテクスチャを出力3D画像に適用するために、テクスチャ・マップが提供されてもよい。大域的な幾何学的スタイルは、オブジェクトの近似的な意味的パート(part)形状として提示されてもよく、オブジェクトの様々な構成要素は、セグメント化され、次いで、選択的且つ個別に調節される。様々な実施例では、スタイル化は、ソースの局所的な幾何学的細部を変更せずに残し、これにより、特徴を歪めない又は他の方法で誇張しない、より高品質のモデルをもたらすことができる。様々な実装は、幾何学的スタイル転送ネットワークとテクスチャ・スタイル転送ネットワークとの少なくとも2つのネットワーク構成要素を含んでもよい。しかし、様々な実施例がより多くの又はより少ないネットワーク構成要素を含んでもよいこと、及び1つ若しくは複数の機能を実行するために特定の特徴が再使用され得る又は他の方法で別の目的に再利用され得ることを認識すべきである。幾何学的スタイル転送ネットワークは、非テクスチャ化形状のセットを使用して訓練された訓練済みニューラル・ネットワークであってもよい。対照的に、テクスチャ・スタイル転送ネットワークは、1つ又は複数の画像データセット上で訓練されてもよい。幾何形状とテクスチャとの両方を最適化するために、これらのネットワークの出力は、組み合わされ、次いで、精緻化されてもよい。
【0006】
本開示の1つ又は複数の実施例は、オブジェクトの特定のセグメント化された構成要素に適用される1つ又は複数の変換(たとえば、アフィン変換)を目的とし得る。さらに、幾何学的スタイル転送ネットワークを訓練するために、パート認識型(part-aware)幾何学的損失が利用されてもよい。前述のように、パート認識型幾何学的損失の評価により、3Dオブジェクトの様々な構成要素パートのより精緻なワーピング又は調節が可能になり、それによって出力の改善が実現する。少なくとも一実施例では、セグメンテーションは、たとえば評価されるオブジェクトのタイプに少なくとも部分的に基づいて、事前決定される。他の実例では、セグメンテーションはユーザ定義され、ユーザは、オブジェクトの様々な特徴を選択する。さらに、1つ又は複数の実施例では、オブジェクトの一部分を調節するときの損失を最小限に抑えるために、パートのセグメンテーションは、1つ又は複数の機械学習システムによって、訓練データに少なくとも部分的に基づいて学習される。
【0007】
本開示の様々な実施例は、3Dオブジェクトの幾何学的転送とスタイル転送との両方に対する3Dオブジェクトのマルチビュー・レンダリングをさらに利用してもよい。たとえば、どの特徴又は特徴に対するどの調節がオブジェクトではなく背景情報に起因し得るかを決定するために、1つ又は複数のマスクが適用されてもよい。その結果、オブジェクトに対する調節及び変更をさらに精緻化するために、背景に起因する調節が削除(たとえば、ゼロに重み付け)されてもよい。したがって、システム及び方法を利用して、コンテンツ生成に使用できる高品質の3Dオブジェクト・モデルを生成することができる。さらに、ユーザは、そのようなシステム及び方法を利用して、3Dモデルのための訓練データセットを拡張する場合があるが、この拡張は、様々なアプリケーションにとって不十分である場合がある。
【0008】
図1に示すように、環境100は、3次元(3D)オブジェクト・モデルであり得る1つ又は複数のオブジェクト(たとえば、アセット)を受信及び消費するためのユーザ・デバイス102を含む。たとえば、ユーザ・デバイス102は、ネットワーク104を介してコンテンツ・プロバイダ環境106に要求を送出してもよい。様々な機能及び構成要素が、単に便宜上同じ環境内でホストされているものとして示されていること、及び、これらのシステムが、たとえば異なる分散コンピューティング・システムによって別々にホスト又は提供され得ることを認識すべきである。さらに、サポート・システム、機械学習システム、データベースなどの追加の機能又は構成要素も含まれてもよい。コンテンツ・プロバイダ環境106は、コンテンツ送信及びコンテンツ生成を容易にする1つ又は複数のシステムを含んでもよい。少なくとも一実施例では、ユーザ・デバイス102は、コンテンツ・プロバイダ環境106を利用して、コンテンツ・プロバイダ環境によって提供される1つ又は複数のモジュール又はソフトウェア・パッケージを使用して3Dオブジェクトを生成するよう求める要求を送出してもよい。したがって、少なくとも一実施例では、コンテンツ・プロバイダ環境106は、様々なタイプのコンテンツの消費と生成との両方を可能にしてもよい。
【0009】
情報を受信し、適切な場所へ方向付けるために、インターフェース108が含まれる。インターフェース108は、コンテンツ・プロバイダ環境106内で1つ又は複数の機能を実行するために、たとえば権限付与されたアカウントを介してユーザがアクセスすることができるAPIを含んでもよい。異なるアカウントは、異なる許可レベル、及びコンテンツ・プロバイダ環境106又は他の関連システムの異なる部分へのアクセスを有してもよい。単に一例として、ユーザ・デバイス102のユーザは、コンテンツ・プロバイダ環境106によってホスト及び配布される特定のソフトウェア・パッケージにアクセスするための制限付きの許可を有してもよく、他のユーザは、より拡張されたアクセスを有してもよい。したがって、本開示の実施例は、ユーザがコンテンツ・プロバイダ環境106によって提供されるソフトウェア・システムを利用するための適切な許可を有する構成を対象とし得る。
【0010】
一実例では、コンテンツ・プロバイダ環境106は、コンテンツ・ライブラリ110を含み、コンテンツ・ライブラリ110は、3Dオブジェクト・モデル、ビデオ・コンテンツ、画像コンテンツ、オーディオ・コンテンツ、テキスト・コンテンツ、又はそれらの組合せなどの1つ又は複数のコンテンツを格納してもよい。コンテンツ・ライブラリ110は、ユーザ及び/又は他のシステムによってアクセス可能であってもよく、他の選択肢のなかでもとりわけ、追加のコンテンツを生成するために、又は消費用の単独型コンテンツとして利用されてもよい。少なくとも一実施例では、コンテンツ・マネージャ112は、ユーザ・デバイス102から、特定のコンテンツを取得する又は1つ若しくは複数のソフトウェア・パッケージへのアクセスを提供するよう求める要求を受信し、方向付ける。上記のように、コンテンツ・マネージャ112はさらに、たとえば1つ又は複数の資格情報を評価することによって、ユーザがコンテンツ・プロバイダ環境106の1つ又は複数の部分にアクセスする権限が付与されているかどうかを検証してもよい。
【0011】
図1は、コンテンツを作成するためにユーザによってアクセス可能であり得るコンテンツ生成モジュール114をさらに示す。コンテンツ生成モジュール114は、1つ又は複数のメモリに記憶されたソフトウェア・コマンドを実行するために、1つ若しくは複数のメモリ若しくはプロセッサを含むか又はそれらへのアクセスを有してもよい。少なくとも一実施例では、コンテンツ生成モジュール114は、1つ又は複数のタスクを実行するための命令セットを含む1つ又は複数のアルゴリズムの形式のコマンドを実行する。この実例では、コンテンツ生成モジュール114は、1つ又は複数の3Dオブジェクト・モデルを生成するために利用されてもよく、次いで、1つ又は複数の3Dオブジェクト・モデルは、コンテンツ・プロバイダ環境106の公開モジュール116、統合モジュール118、又はテスト・モジュール120などの他の部分とともに使用されてもよい。公開モジュール116が、コンテンツを公開するため又は消費可能にするために使用されてもよいこと、統合モジュール118が、モデルをゲームにロードするなどの生成されたコンテンツを他のコンテンツ・タイプに組み込むために使用されてもよいこと、及びテスト・モジュール120が、生成されたコンテンツをテスト又はデバッグするために使用されてもよいことを認識すべきである。
【0012】
コンテンツ生成は、ユーザとシステム・リソースとの両方の観点から困難なタスクである可能性がある。たとえば、ユーザは、オブジェクト・モデルの比率を決定し、様々な特徴の様々な形状を決定し、オブジェクト・モデルに適用するテクスチャを決定し、次いで、使用するモデルをレンダリングしてもよい。ビデオ・ゲーム、AR/VRコンテンツ、アニメーション化された映画、又は他のユーザが消費するコンテンツについての実例では、ユーザが登場人物と頻繁に且つ長期的に対話するビデオ・ゲーム内の主人公などの個々の登場人物を個々のユーザが生成するために、手動でコンテンツを生成することは、十分な費用対効果がある可能性がある。しかし、重要性の低い登場人物、背景内の登場人物などをコンピュータでレンダリングする又は他の方法で自動的に生成して、リソースをより適切に方向付けることが好ましい場合がある。たとえば、スポーツ・ゲームの場合、ユーザが群衆の中の観客に注目する可能性は低いので、自動化されたプロセスを介して群衆の中の観客を生成することが望ましい場合がある。別の実例では、機械学習システムは、訓練目的でライブラリを利用することが多く、ネットワークを効果的に訓練するのに十分な数の高品質の3Dオブジェクト・モデルを取得することは困難である場合がある。したがって、本開示のシステム及び方法は、ソース3Dアセット及びターゲット3Dアセットが与えられると、形状スタイル及びテクスチャ・スタイルをある3Dアセットから別の3Dアセットに共同で転送して新しい3Dアセットを生成することができる、3Dアセット・スタイル転送を目的とし得る。その結果、3Dコンテンツ生成は、コンテンツ生成と潜在的な訓練オブジェクト・モデルの生成との両方について簡素化される可能性がある。
【0013】
本開示のシステム及び方法は、3Dアセット間の変形転送を利用するスタイル転送方法に関連する問題を克服する。これらの方法は、1つ若しくは複数のガイダンス形状対応付け、又は歪みエネルギーを最小化することによるテクスチャ・マッピングの転送を含むことがあるが、これらは形状の対応関係に依存しているので、新しいアセットを正確に生成できない可能性がある。さらに、これらの方法は、リソースを大量に消費し得るメッシュ生成を含む場合がある。深層学習方法は、テクスチャ・マップを転送することはできず、他の方法を使用して画像スタイルをマップに転送すると、新しい3Dアセット上でテクスチャ・マップをスタイル化することができない。したがって、幾何形状とテクスチャとの両方を新しい3Dアセットに共同で転送するために、本システム及び方法が利用されてもよい。
【0014】
本開示の様々な実施例は、コンテンツを表す入力ソース3Dモデルと、所望のスタイル又は所望の出力を表すターゲット3Dモデルを利用してもよい。広範な3Dモデルの変形形態を生成するために、ターゲット3Dモデルの表面幾何形状とテクスチャ・マップとの両方が利用されてもよい。少なくとも一実施例では、オブジェクトのスタイルは、少なくとも部分的に、オブジェクトの意味的パート形状によって近似される大域的な幾何学的スタイルとして表される。その結果、ソースの局所的な幾何学的細部は、変更されない又は実質的に変更されないままとすることができ、これにより、より高品質なモデルがもたらされる可能性がある。1つ又は複数の実施例では、システム及び方法は、1つ又は複数のパート認識型変換を介して入力アセットをスタイル化してもよい。3Dオブジェクトのテクスチャ・スタイルは、少なくとも部分的に、1つ又は複数の画像スタイル転送技法によって定義されてもよい。少なくとも一実施例では、スタイル転送ネットワークは、幾何学的スタイル転送ネットワーク及びテクスチャ・スタイル転送ネットワークを利用して、出力3Dオブジェクト・モデルを生成してもよい。たとえば、幾何学的スタイル転送ネットワークは、非テクスチャ化形状で訓練されてもよく、テクスチャ・スタイル転送ネットワークは、画像データセットで訓練される。これらのネットワークの共同動作は、1つ又は複数の最適化ステップ(たとえば、共同最適化)によって可能にされてもよい。最適化は、3Dアセットの幾何学的転送及びテクスチャ転送を実現するためのマルチビュー・レンダリング設定を含んでもよい。
【0015】
図2Aは、本開示の1つ又は複数の実施例で使用され得る環境200を示す。この実例では、環境200は、幾何学的スタイル転送ネットワーク204及びテクスチャ・スタイル転送ネットワーク206を組み込んだスタイル・ネットワーク202を含む。ネットワーク204、206が1つ又は複数の訓練済み機械学習システムを含んでもよく、1つ又は複数の訓練済み機械学習システムが1つ又は複数のニューラル・ネットワーク、訓練データを含むデータベース、入力APIなどをさらに組み込んでもよいことを認識すべきである。例として、幾何学的スタイル転送ネットワーク204は、非テクスチャ化形状のセットで訓練されてもよく、テクスチャ・スタイル転送ネットワーク206は、画像データセットで訓練されてもよい。
【0016】
さらに、パート認識型幾何学的損失モジュール208が図示されており、パート認識型幾何学的損失モジュール208は、オブジェクト・モデルなどのソース3Dアセットに対応し得るソース210及びターゲット3Dアセットに対応し得るターゲット212から入力情報を受信してもよい。さらに、ネットワーク204、206の出力214も、パート認識型幾何学的損失モジュール208に提供されてもよい。様々な実施例では、パート認識型幾何学的損失は、半教師ありBAE-NETを使用して形状のパート・ラベルを予測し得る意味的パート・ラベルを用いて手動でラベル付けされた訓練形状のセットなどを用いたネットワーク202の訓練(たとえば、ネットワーク204、206のうちの1つ又は複数の訓練)において利用される。以下で説明するように、セグメンテーション・ノイズの影響を受けにくくするために、BAE-NETの訓練はさらに精緻化されてもよい。
【0017】
動作に際して、コンテンツ環境216は、コンテンツ・データベース218及び/又はテクスチャ・マップ・データベース220を含んでもよい。コンテンツが、関連するオブジェクト・モデルとともに格納され得るように、コンテンツ・データベース218とテクスチャ・マップ・データベース220とが統合されてもよいことを認識すべきである。様々な実施例では、ソース・アセット(たとえば、オブジェクト・モデル)は、ターゲット・アセット(たとえば、オブジェクト・モデル)とともに選択される。次いで、ネットワーク202は、ソース210及びターゲット212を入力として取り、その後、たとえば形状(たとえば、幾何形状)と外観(たとえば、テクスチャ)との両方において、よりターゲット212のように見えるようにソース210を操作又はワープするように訓練されてもよい。一例として、ソース210が小型犬であり、ターゲット212が漫画の犬である場合、ソース210の1つ又は複数の特徴は、ターゲット212の特徴のより厳密に近似した特性又は態様に対応するようにワープ又は調節されてもよい。例を続けると、漫画の犬は、実際の犬よりも頭と体との比率が大きい、顔のサイズに比べて目が大きいなどの場合がある。したがって、これらの特徴のうちの1つ又は複数は、ソース210の様々な態様を維持しながらターゲット212と同様の特徴を有する出力214を生成するように調節又はワープされてもよい。
【0018】
様々な実施例では、以下に説明するように、たとえば微分可能レンダラを使用して、出力214がさらに処理されてもよいことを認識すべきである。さらに、明確且つ単純にするために、以下の開示では、様々な訓練データベース、変換モジュールなどの本開示の様々な態様が除去されている。
【0019】
図2Bは、本開示の1つ又は複数の態様で使用され得る環境250を示す。この実例では、
図2Aの環境200が、ソース210からスタイル化された出力214へのより高品質の変換を提供するために利用され得る調整ネットワーク252を含むように拡張されている。他の実施例では調整ネットワーク252がスタイル・ネットワーク202内に組み込まれ得ること、及び異なるネットワークとしての表現が例示を目的としており本開示の範囲を限定することを意図するものではないことを認識すべきである。
【0020】
この実例では、スタイル化された出力214は、精緻化及び調節のために調整ネットワーク252に提供される。たとえば、微分可能レンダラ254は、テクスチャ化されスタイル化されたオブジェクトを、ラスタ化ベースの微分可能レンダラを用いて複数のビューでレンダリングしてもよい。たとえば、スタイル化された出力214を複数の角度から評価するために、6つの異なるビューが生成されてもよい。さらに、最適化モジュール256は、幾何形状とテクスチャとの両方の共同最適化のために、微分可能レンダラ254のマルチビュー・レンダリングにおけるマスクされたコンテンツ及びスタイル損失を評価してもよい。様々な実施例では、2つのネットワークはともに、ターゲットの識別情報及びソースの細部を考慮したテクスチャを幻覚化し、テクスチャ転送をより容易にするために幾何学的変換を調節する。マルチビュー・レンダリングは、調整ネットワーク252の各反復においてランダムに回転される6つの直交するビューを含んでもよい。その結果、設定された数のビューだけに焦点を合わせるのではなく、パスごとに複数のビューが評価される可能性がある。しかし、最適化のために、パスの数又は特定の角度、たとえば使用中のオブジェクトにふさわしい視野角に対応し得る角度を指定することによって、処理リソースを節約できることを認識すべきである。
【0021】
様々な実施例では、無関係な背景画素から計算された特徴をマスクするために、微分レンダラ254によって背景マスクが出力される。この背景マスクは、異なるビューごとに生成され、次いで、どの特徴がオブジェクトに関連しておらず背景に起因して生成されているかを識別するために、様々なビューの個々のビュー間で比較されてもよい。したがって、改善されスタイル化されたオブジェクトを生成するために、マスク評価に少なくとも部分的に基づいて、幾何学的損失が精緻化されてもよい。様々な実施例では、生成されたマスクは、マスクされたスタイル損失とマスクされたコンテンツ損失との両方の評価のために利用されてもよい。すなわち、マスクを介して、テクスチャ特徴と幾何学的特徴との両方の転送を最適化することができる。
【0022】
図3は、本開示の実施例で使用され得るスタイル転送ネットワーク300を示す。もう1つの実施例では、ネットワーク200、250からの特徴は、スタイル転送ネットワーク300に組み込まれてもよい。この実例では、入力302は、ソース・オブジェクト210及びターゲット・オブジェクト212を含む。本明細書に記載のように、ソース・オブジェクト210及びターゲット・オブジェクト212は、幾何学的特徴及び/又はテクスチャ・マップなどのテクスチャ特徴を含む3Dオブジェクト・モデルに対応してもよい。1つ又は複数の実施例では、幾何学的特徴は、3D空間内の点を表す点群として表されてもよい。少なくとも一実施例では、点群は、1つ又は複数の3D幾何学的スタイル転送ネットワークによって利用されてもよく、テクスチャ・マップは、1つ又は複数のテクスチャ・スタイル転送ネットワークによって利用されてもよい。
【0023】
入力300は、点群及び/又はテクスチャ・マップを評価するために1つ又は複数の機械学習システムを含み得る検出ネットワーク304に提供される。この実例では、特徴検出モジュール306は、深層学習のための点ボクセルCNN(PVCNN:point-voxel CNN)などの1つ又は複数のニューラル・ネットワークを含んでもよい。単に一例として、特徴検出モジュール306は、PVCNNエンコーダ内に4つのPVCOnv層を含んでもよい。PV-Convの開始ボクセル化解像度は32であってもよく、特徴が集約されている間に16、8、及び1に減少してもよい。PVCNNが単に一例として提供されていること、及び、代替の実施例では、PVCNNの代わりに又はPVCNNに加えて、異なる構造を有する異なるネットワークが利用され得ることを認識すべきである。
【0024】
次いで、集約された特徴は、多層パーセプトロン(MLP:multilayer perceptron)、CNN、又は任意の他の合理的な分類器を含み得る分類器308によって評価される。MLPを含む実例では、4つの全結合層が使用されてもよく、最新の特徴ベクトルは、ネットワーク内の4つのFC層すべてに結合されてもよい。このような構成は、N×m個の出力を提供し、ここで、Nは、意味的パートの数であり、mは、各パートのそれぞれの楕円体及び/又は変換(たとえば、アフィン変換)を表すために必要なパラメータの数である。例として、楕円体は、9個のパラメータを必要とする可能性がある。別の例として、アフィン変換は、さらに9個のパラメータを必要とする可能性がある。したがって、11個の意味的パートを伴うこのような構成には、MLPの出力として198個のパラメータが必要になる。オブジェクトの1つ又は複数のカテゴリを表す意味的パートの数を低減することによって出力が低減され得ることを認識すべきである。
【0025】
分類された意味的パートは、出力されて、ソース・アセットをターゲット・アセットのスタイルに一致するように変換する転送モジュール310に送信されてもよい。この実例では、変換識別子312は、オブジェクトの1つ又は複数の意味的パートを近似するための楕円体に対応してもよい。すなわち、予測された楕円体表現を利用して、オブジェクトのどのパート又は構成要素が変換されるかを表してもよい。楕円体はEiとして表されてもよく、ここで、iは、ソース形状の各意味的パートである。
【0026】
さらに、少なくとも一実施例では、変換評価314は、Aiとして表される3Dアフィン変換であり得る変換関数に対応してもよい。すなわち、3Dアフィン変換を利用して、オブジェクトの識別されたパートをどのように変形するかを表すことができる。アフィン変換が3つの軸に沿った回転、平行移動、及びスケーリングの構成要素を含み得ることを認識すべきである。少なくとも一実施例では、ターゲットにより良好に一致するように意味的パートをワープするために、3Dアフィン変換が使用されてもよい。この実例はアフィン変換を含むが、1つ又は複数の他の実施例では、アフィン変換の代わりに又はアフィン変換に加えて様々な他の変換が利用され得ることを認識すべきである。単に一例として、とりわけ、ユークリッド変換の射影的類似性も利用されてもよい。次いで、微細な幾何学的細部を保持しながらソース・幾何形状を変形するために、出力を利用して、滑らかなアフィン変換フィールドを計算してもよい。
【0027】
上記のように、本開示の様々な実施例は、パート認識型変換を可能にする。変換識別子312のパラメータを使用して、ソース形状上の任意の点に対するスムーズ・スキニング重みを計算する。変換評価314と組み合わせて、任意のソース点についての形成が決定されてもよい。アライメント・モジュール316は、方程式(1)に示すように、3Dガウス分布を定義することによる予測に沿って(たとえば、楕円体に沿って)、点をアライメントしてもよい。
gi(p)=G(p|Ti,λSiRi(SiRi)T) (1)
【0028】
ここで、pはソース形状P上の点であり、Tiはガウス分布の平均であり、λSiRi(SiRi)Tは共分散行列であり、λは広がりを制御するための固定スカラである。この一連の関数は、Nチャネル混合フィールド(blending field)を定義するために利用されてもよい。変換モジュール318を介して、正規化された混合フィールドを使用して、すべての意味的パートのアフィン変換Aiを補間し、単一の3Dアフィン変換フィールドφを取得することができる。したがって、ソース形状Pをアフィン変換フィールドでワープすることによって、スタイル化された出力214が生成されてもよく、これは、φ(P)として表されてもよい。処理を減らすため又は他の方法でリソースを節約するために、ガウス分布及び混合フィールドが、ソース・メッシュのすべての頂点においてなど、間隔を置いて又は特定の領域において生成され得ることを認識すべきである。
【0029】
様々な実施例はまた、ネットワーク200、250、300の1つ又は複数の部分を訓練するために使用され得る、パート認識型幾何学的損失モジュール208を含む。訓練は、少なくとも部分的に、入力データセットの手動で決定された又はラベル付けされた意味的パートを含んでもよい。これらの手動でラベル付けされたパートがグラウンド・トゥルースを表し得ることを認識すべきである。しかし、他の実施例では、訓練は、閾値を超える信頼値を用いてラベル付けされたパートなどの様々なパートの自動ラベル付けを可能にしてもよい。1つ又は複数の実施例は、パート・ラベルを予測するための半教師ありBAE-NETを含んでもよい。以下で説明するように、入力オブジェクトは、スタイル化された出力を生成するために、1つ又は複数の変換手順で使用される意味的パートになるようセグメント化されてもよい。
【0030】
一例として、入力オブジェクトは、任意の数のパートになるようセグメント化されてもよく、その数は、入力オブジェクトのタイプ又は識別に少なくとも部分的に基づいて事前決定されてもよい。たとえば、ある一定のオブジェクトは、より多くの又はより少ないセグメント化されたパートを含んでもよい。1つ又は複数の実施例では、予測品質は、より大きな領域に対してより高くなる可能性があり、その結果、ノイズを低減するためにセグメント化するための様々な構成要素の閾値サイズを設定することが有益である場合がある。しかし、方程式(2)に従ってパート認識型幾何学的距離を定義することによって、セグメンテーション・ノイズが低減されてもよい。
【数1】
【0031】
ここで、P、Qはそれぞれソース形状及びターゲット形状のサンプリングされた点集合であり、Pi及びQiはパートiの点部分集合を示し、ChL1(P,Q)はL1-面取り距離である。BAE-NETからのパート・ラベルに関連するノイズが、パート別の面取り距離に対する部分的な依存のみをもたらすことを認識すべきである。少なくとも一実施例では、損失関数は、方程式(3)に従って定義されてもよい。
Loss(P,Q,φ)=Dpart-aware(φ(P),Q)+Dpart-aware(ξ(P),P) (3)
【0032】
ここで、ξ(P)は、ソース形状Pに対して予測されたすべての楕円体{Ei}の表面点であり、φ(P)は、前述のように、ソース形状のワープである。
【0033】
上記のように、様々な実施例はまた、1つ又は複数のテクスチャ・スタイル転送ネットワークを組み込んでもよい。これらのネットワークは、ラベル付けされていないテクスチャ画像だけには存在しない可能性がある、転送されたテクスチャに関する幾何学的特性の認識を可能にするために、上記の調整モジュールと組み合わせて利用されてもよい。少なくとも一実施例では、テクスチャ・スタイル転送ネットワークは、ImageNetなどのデータセット上で事前訓練されたVGG-19に関連付けられたエンコーダを組み込んでもよく、デコーダは、MS-COCOなどの別の画像セットで訓練されてもよい。さらに、特定の実施例では、線形変換モジュールは、コンテンツ画像セットとしてMS-COCOで、またタイル画像セットとしてWikiArtデータセットで訓練されてもよい。
【0034】
図3には図示されていないが、上記のように、特定のソースとターゲットとのペアについて幾何形状・スタイル転送ネットワークとテクスチャ・スタイル転送ネットワークとの両方を微調整するために、本開示の実施例とともに1つ又は複数の調整ネットワーク252が利用されてもよい。微分レンダラ254は、Nvdiffrastなどのラスタ化ベースの微分可能レンダラを用いて、テクスチャ化されスタイル化されたオブジェクトを複数のビューでレンダリングしてもよい。さらに、実施例では、マルチビュー・レンダリングでのマスクされたコンテンツ及びスタイル損失を、幾何形状及びテクスチャの共同最適化のために利用してもよい。たとえば、方程式(4)に示すように、分類器308(たとえば、MLP)のパラメータとテクスチャ・スタイル転送ネットワークの1つ又は複数の線形変換モジュールのパラメータとの共同最適化を使用して、スタイル化されたオブジェクトの幾何形状とマルチビュー・レンダリングとの両方にわたって定義される損失を最小化することができる。
【数2】
【0035】
ここで、m及びm’は、ソースP及びターゲットQのテクスチャ画像であり、
【数3】
はスタイル化されたテクスチャ画像である。1つ又は複数の実施例では、ソースuvマップは固定されたままであってもよい。F
v(P,m)は、カメラ・ビューvの下でテクスチャmを伴う形状Pのレンダリングされた画素のマルチレベルVGG特徴のセットである。上記のように、レンダラによって出力された背景マスクを使用して、無関係な背景画素から計算された特徴をマスクすることができる。さらに、方程式(3)からの損失が組み込まれてもよい。動作に際して、スタイル損失及び/又はコンテンツ損失に対して異なる層が利用され得ることを認識すべきである。さらに、スタイル化されたオブジェクトの表面をカバーするカメラ・ビューを生成することが望ましい場合があり、その結果、最適化の各反復で共通のオイラ角を使用して、ビュー間の回転はランダムに回転され得る。
【0036】
図4は、例示的なセグメンテーション及び予測400シーケンスを示す。この実例では、ソース画像402は、訓練画像404に関連付けられたセグメンテーションに従って様々な意味的パートになるようセグメント化されるように、上記のBAE-NETなどの1つ又は複数のネットワークに提供されてもよい。特定の実施例では、訓練画像は手動でラベル付けされてもよく、いくつかの意味的パートは、ソース画像402のタイプ又は分類に少なくとも部分的に基づいて決定されてもよい。この実例では、ソース画像402は動物に対応し、その分類について、訓練画像404は、11個の意味的パートを含む。他の分類がより多くの又はより少ない意味的パートを含み得ること、さらに、動物もより多い又はより少ない意味的パートで定義され得ることを認識すべきである。さらに、意味的パートに少なくとも部分的に基づいて予測された楕円体を含む楕円体画像406が図示されている。
【0037】
この実例では、訓練画像404は、右前脚408A、左前脚408Bなどの異なる意味的パート408を含む。図示のように、ネットワークは、ソース画像402内のこれらの特徴を区別及び識別するように学習し、その結果、とりわけ右前脚408Aなどの同様の意味的パート408が識別される。上記のように、次いで、とりわけ前右脚の楕円体近似410Aなど、これらの意味的パートの楕円体近似410が生成されてもよい。その後、画像の変換又はワープは、ソース画像402をターゲット画像のスタイルに一致するように調節すること可能にしてもよい。
【0038】
図5は、本開示の実施例で利用され得る例示的なスタイル転送手順500を示す。この実例では、スタイル化された出力506を生成するために、ソース・オブジェクト502は、ターゲット・オブジェクト504を参照してワープ及び調節され、これは、ソース・オブジェクト502の1つ又は複数の特徴を維持してもよいが、ターゲット・オブジェクト504に関連付けられたスタイルに向けて様々な特徴をワープ又は他の方法で調節してもよく、スタイルは、1つ又は複数の幾何学的特性、テクスチャの外観、又はそれらの組合せを指す。この実例では、ターゲット・オブジェクト504は、ターゲット・テクスチャ508、ターゲット・セグメンテーション510、及びターゲット楕円体推定512に関連付けられる。これらの構成要素のそれぞれが生成されない場合があるが、ソース・オブジェクト502のワープ又は変換を説明するために例として提供されていることを認識すべきである。
【0039】
ソース・オブジェクト502は、1つ又は複数のネットワーク200、250、300に提供されてもよく、1つ又は複数の特徴を識別するために処理されてもよく、1つ又は複数の特徴は、ソース・オブジェクト502を分割してパート認識型変換を可能にするための1つ又は複数の意味的パート514に対応してもよい。この実例では、ソース・セグメンテーション516は、異なる意味的パート514を有するソース・オブジェクト502の輪郭を含み、異なる意味的パート514は、ターゲット・セグメンテーション510の意味的パートに対応してもよい。上記のように、1つ又は複数の実施例では、意味的セグメンテーション用に事前設定された数のパートを選択するために、ターゲット・オブジェクト504及び/若しくはソース・オブジェクト502のタイプ又は分類が決定されてもよい。他の実施例では、ターゲット・オブジェクト504はセグメント化されてもよく、次いで、ソース・オブジェクト502についても同様の数が使用されてもよい。上記のように、ソース楕円体推定518は、ソース・セグメンテーション516からの情報に少なくとも部分的に基づいて生成されてもよい。さらに、この実例では、ソース・テクスチャ・マップ520も図示されている。ソース・テクスチャ・マップ520は、たとえばスポットではなくストライプを含む点で、ターゲット・テクスチャ508とは異なる。
【0040】
1つ又は複数の実施例では、ソース・オブジェクト502の1つ又は複数の意味的パートを幾何学的外観においてターゲット・オブジェクト504に近づくように調節するために、ソース楕円体推定518に対応する楕円体は、ワープされるか又は他の方法で変換されてもよい。たとえば、この実例では、ソース・オブジェクト502の頭は拡大される。さらに、ソース・オブジェクト502の尻尾は、ターゲット・オブジェクト504に対応するように除去及び/又は短縮される。このようにして、スタイル化された出力506は、ソース・オブジェクト502の特定の特性を含むように生成されるが、ターゲット・オブジェクト504のスタイルに変換されてもよい。さらに、様々な実施例では、上記のように、ターゲット・テクスチャ508もまた転送され、スタイル化された出力506に適用される。
【0041】
図6Aは、スタイル化された3Dオブジェクト・モデルを生成するための例示的なプロセス600を示す。本明細書で提示する上記のプロセス及び他のプロセスについて、同様の順番で、若しくは代替的な順番で、又は少なくとも一部が並行して実行される追加の、より少ない、又は代替的なステップが、別段の記載のない限り様々な実施例の範囲内で存在してもよいことが理解されるべきである。この実例では、ソース3Dオブジェクト・モデルが受信される602。たとえば、ソース3Dオブジェクト・モデルは、要求に関連付けられたユーザによって提供されてもよく、又はデータベースなどの格納場所から検索されてもよい。少なくとも一実施例では、ターゲット3Dオブジェクト・モデルが受信されてもよい604。上記のように、ターゲット3Dオブジェクト・モデルはまた、ユーザによって提供されてもよく、データベースから選択されてもよく、又は1つ若しくは複数の格納場所から検索されてもよい。様々な実施例では、ターゲット3Dオブジェクト・モデルは、特定のコンテンツに関連付けられてもよく、その結果、所望の成果に少なくとも部分的に基づいて、一定のコンテンツ・タイプに限定されるか又は他の方法で制限されてもよい。
【0042】
様々な実施例では、ソース3Dオブジェクト・モデルから、1つ又は複数のソース幾何学的セグメントが決定される606。たとえば、1つ又は複数の機械学習システムは、ソース3Dオブジェクト・モデル内の特徴を識別し、次いで、特徴をラベル付けするか又は他の方法で分類し、セグメント化してもよい。少なくとも一実施例では、ターゲット3Dオブジェクト・モデルから、1つ又は複数のターゲット幾何学的セグメントが決定される608。ターゲット3Dオブジェクト・モデルは、スタイル化された3Dオブジェクト・モデルについての所望の成果又は少なくともガイドとして使用されてもよい。したがって、1つ又は複数のソース幾何学的セグメントは、関連する1つ又は複数のターゲット幾何学的セグメントに少なくとも部分的に基づいて調節されてもよい610。例として、動物の頭部又は車両のフロントガラスなどの関連する幾何学的セグメントが調節されてもよい。相関関係は、調節がパート別に提供されるようにオブジェクトがどのようにセグメント化されたかに基づいてもよい。スタイル化された3Dオブジェクト・モデルが生成されてもよい612。たとえば、調節は、楕円体推定に適用されてもよく、1つ又は複数の変換が、楕円体を調節又はワープしてもよい。さらに、さらなる訓練又は精緻化のために、様々なパート認識型幾何学的損失モジュールが利用されてもよい。このようにして、オブジェクト・モデルの幾何学的特徴が評価及び調節されてもよい。
【0043】
図6Bは、スタイル化された3Dオブジェクト・モデルを生成するための例示的なプロセス620を示す。この実例では、ソース3Dオブジェクト・モデルが受信される622。たとえば、ソース3Dオブジェクト・モデルは、要求に関連付けられたユーザによって提供されてもよく、又はデータベースなどの格納場所から検索されてもよい。少なくとも一実施例では、ターゲット3Dオブジェクト・モデルが受信されてもよい624。上記のように、ターゲット3Dオブジェクト・モデルはまた、ユーザによって提供されてもよく、データベースから選択されてもよく、又は1つ若しくは複数の格納場所から検索されてもよい。様々な実施例では、ターゲット3Dオブジェクト・モデルは、特定のコンテンツに関連付けられてもよく、その結果、所望の成果に少なくとも部分的に基づいて、一定のコンテンツ・タイプに限定されるか又は他の方法で制限されてもよい。さらに、1つ又は複数の実施例では、ターゲット・テクスチャ・マップが受信される626。ターゲット・テクスチャ・マップは、ターゲット3Dオブジェクト・モデルの視覚的外観に関連付けられてもよい。
【0044】
少なくとも一実施例では、ソース3Dオブジェクト・モデルの1つ又は複数の幾何学的セグメントに対して1つ又は複数の変換が決定される628。たとえば、ソース3Dオブジェクト・モデルは、セグメント化されてもよく、楕円体推定が生成され、ターゲット3Dオブジェクト・モデルの関連セグメントと比較されてもよい。変換を使用して、スタイル化された3Dオブジェクト・モデルを生成してもよい。このようにして、構成要素の形状を変更する又はターゲット・テクスチャ・マップからの特徴をスタイル化された3Dオブジェクト・モデルに適用するなどして、ソース3Dオブジェクト・モデルをワープ又は他の方法で調節して、ターゲット3Dオブジェクト・モデルの特徴を組み込んだスタイル化された3Dオブジェクト・モデルを生成してもよい630。
【0045】
様々な実施例では、追加の調整又は精緻化が適用されてもよい。スタイル化された3Dオブジェクト・モデルのマルチビュー・レンダリングが生成される632。マルチビュー・レンダリングは、複数の異なる角度からの事前設定された数のビューを含んでもよい。少なくとも1つの実施例では、ビューごとに1つ又は複数の背景マスクが生成され634、背景画素に関連する1つ又は複数の特徴を決定するために利用される。次いで、これらの背景画素は、スタイル化された3Dオブジェクト・モデルから削除されてもよい636。
【0046】
データ・センタ
図7は、少なくとも一実施例が使用されてもよい例示的なデータ・センタ700を示す。少なくとも一実施例では、データ・センタ700は、データ・センタ・インフラストラクチャ層710、フレームワーク層720、ソフトウェア層730、及びアプリケーション層740を含む。
【0047】
図7に示すように、少なくとも一実施例では、データ・センタ・インフラストラクチャ層710は、リソース・オーケストレータ712と、グループ化済みコンピューティング・リソース714と、ノード・コンピューティング・リソース(「ノードC.R.」)716(1)~716(N)とを含んでもよく、ここで「N」は任意の正の整数を表す。少なくとも一実施例では、ノードC.R.716(1)~716(N)は、任意の数の中央処理装置(「CPU」)又は(アクセラレータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサなどを含む)他のプロセッサ、メモリ・デバイス(たとえば、ダイナミック読取り専用メモリ)、ストレージ・デバイス(たとえば、半導体ドライブ又はディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」:network input/output)デバイス、ネットワーク・スイッチ、仮想機械(「VM」:virtual machine)、電源モジュール、及び冷却モジュールを含んでもよいが、これらに限定されない。少なくとも一実施例では、ノードC.R.716(1)~716(N)のうち1つ又は複数のノードC.R.は、上述したコンピューティング・リソースのうちの1つ又は複数を有するサーバであってもよい。
【0048】
少なくとも一実施例では、グループ化済みコンピューティング・リソース714は、1つ若しくは複数のラック(図示せず)内に収容されたノードC.R.の別々のグループ、又は様々なグラフィカル・ロケーション(同じく図示せず)においてデータ・センタに収容された多数のラックを含んでもよい。グループ化済みコンピューティング・リソース714内のノードC.R.の別々のグループは、1つ若しくは複数のワークロードをサポートするように構成又は配分されてもよいグループ化済みのコンピュート・リソース、ネットワーク・リソース、メモリ・リソース、又はストレージ・リソースを含んでもよい。少なくとも一実施例では、CPU又はプロセッサを含むいくつかのノードC.R.は、1つ又は複数のラック内でグループ化されて、1つ又は複数のワークロードをサポートするためのコンピュート・リソースが提供されてもよい。少なくとも一実施例では、1つ又は複数のラックはまた、任意の数の電源モジュール、冷却モジュール、及びネットワーク・スイッチを任意の組合せで含んでもよい。
【0049】
少なくとも一実施例では、リソース・オーケストレータ712は、1つ又は複数のノードC.R.716(1)~716(N)及び/若しくはグループ化済みコンピューティング・リソース714を構成してもよく、又は他のやり方で制御してもよい。少なくとも一実施例では、リソース・オーケストレータ712は、データ・センタ700用のソフトウェア設計インフラストラクチャ(「SDI」:software design infrastructure)管理エンティティを含んでもよい。少なくとも一実施例では、リソース・オーケストレータは、ハードウェア、ソフトウェア、又はこれらの何らかの組合せを含んでもよい。
【0050】
図7に示す少なくとも一実施例では、フレームワーク層720は、ジョブ・スケジューラ722、構成マネージャ724、リソース・マネージャ726、及び分配ファイル・システム728を含む。少なくとも一実施例では、フレームワーク層720は、ソフトウェア層730のソフトウェア732、及び/又はアプリケーション層740の1つ若しくは複数のアプリケーション742をサポートするためのフレームワークを含んでもよい。少なくとも一実施例では、ソフトウェア732又はアプリケーション742はそれぞれ、アマゾン・ウェブ・サービス、グーグル・クラウド、及びマイクロソフト・アジュールによって提供されるものなど、ウェブ・ベースのサービス・ソフトウェア又はアプリケーションを含んでもよい。少なくとも一実施例では、フレームワーク層720は、大規模なデータ処理(たとえば「ビック・データ」)のために分配ファイル・システム728を使用することができるApache Spark(登録商標)(以下「Spark」)など、無料でオープン・ソースのソフトウェア・ウェブ・アプリケーション・フレームワークの一種であってもよいが、これに限定されない。少なくとも一実施例では、ジョブ・スケジューラ722は、データ・センタ700の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含んでもよい。少なくとも一実施例では、構成マネージャ724は、ソフトウェア層730、並びに大規模なデータ処理をサポートするためのSpark及び分配ファイル・システム728を含むフレームワーク層720などの異なる層を構成することが可能であってもよい。少なくとも一実施例では、リソース・マネージャ726は、分配ファイル・システム728及びジョブ・スケジューラ722をサポートするようにマッピング若しくは配分されたクラスタ化済み又はグループ化済みのコンピューティング・リソースを管理することが可能であってもよい。少なくとも一実施例では、クラスタ化済み又はグループ化済みのコンピューティング・リソースは、データ・センタ・インフラストラクチャ層710にあるグループ化済みコンピューティング・リソース714を含んでもよい。少なくとも一実施例では、リソース・マネージャ726は、リソース・オーケストレータ712と連携して、これらのマッピング又は配分されたコンピューティング・リソースを管理してもよい。
【0051】
少なくとも一実施例では、ソフトウェア層730に含まれるソフトウェア732は、ノードC.R.716(1)~716(N)、グループ化済みコンピューティング・リソース714、及び/又はフレームワーク層720の分配ファイル・システム728のうちの少なくとも一部分によって使用されるソフトウェアを含んでもよい。1つ又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含んでもよいが、これらに限定されない。
【0052】
少なくとも一実施例では、アプリケーション層740に含まれるアプリケーション742は、ノードC.R.716(1)~716(N)、グループ化済みコンピューティング・リソース714、及び/又はフレームワーク層720の分配ファイル・システム728のうちの少なくとも一部分によって使用される1つ若しくは複数のタイプのアプリケーションを含んでもよい。1つ若しくは複数のタイプのアプリケーションは、任意の数のゲノム学アプリケーション、認識コンピュート、並びに訓練若しくは推論のソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)を含む機械学習アプリケーション、又は1つ若しくは複数の実施例と併せて使用される他の機械学習アプリケーションを含んでもよいが、これらに限定されない。
【0053】
少なくとも一実施例では、構成マネージャ724、リソース・マネージャ726、及びリソース・オーケストレータ712のうちのいずれかは、任意の技術的に実行可能なやり方で取得された任意の量及びタイプのデータに基づき、任意の数及びタイプの自己修正措置を実装してもよい。少なくとも一実施例では、自己修正措置は、データ・センタ700のデータ・センタ演算子が、不良の恐れのある構成を決定しないようにし、十分に利用されていない且つ/又は性能の低いデータ・センタの部分をなくせるようにしてもよい。
【0054】
少なくとも一実施例では、データ・センタ700は、1つ若しくは複数の機械学習モデルを訓練し、又は本明細書に記載の1つ若しくは複数の実施例による1つ若しくは複数の機械学習モデルを使用して情報を予測若しくは推論するためのツール、サービス、ソフトウェア、又は他のリソースを含んでもよい。たとえば、少なくとも一実施例では、機械学習モデルは、データ・センタ700に関して上述したソフトウェア及びコンピューティング・リソースを使用して、ニューラル・ネットワーク・アーキテクチャに従って重みパラメータを計算することによって、訓練されてもよい。少なくとも一実施例では、1つ又は複数のニューラル・ネットワークに対応する訓練済み機械学習モデルは、本明細書に記載の1つ又は複数の技法によって計算された重みパラメータを使用することにより、データ・センタ700に関して上述したリソースを使用して、情報を推論又は予測するために使用されてもよい。
【0055】
少なくとも一実施例では、データ・センタは、上述したリソースを使用して訓練及び/又は推論を実行するために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、又は他のハードウェアを使用してもよい。さらに、上述した1つ又は複数のソフトウェア及び/又はハードウェアのリソースは、画像認識、音声認識、又は他の人工知能サービスなどの情報の訓練又は推論の実行を、ユーザが行えるようにするためのサービスとして構成されてもよい。
【0056】
こうした構成要素を使用して、スタイル転送を生成することができる。
【0057】
コンピュータ・システム
図8は、例示的なコンピュータ・システムを示すブロック図であり、このコンピュータ・システムは、少なくとも一実施例による、命令を実行するための実行ユニットを含んでもよいプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SoC)、又はこれら800の何らかの組合せを有するシステムであってもよい。少なくとも一実施例では、コンピュータ・システム800は、本明細書に記載の実施例などにおいて本開示に従ってデータを処理するためのアルゴリズムを実行する論理を含む実行ユニットを使用するための、プロセッサ802などの構成要素を、限定することなく含んでもよい。少なくとも一実施例では、コンピュータ・システム800は、カリフォルニア州サンタクララのインテルコーポレーションから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、XeonTM、Itanium(登録商標)、XScaleTM及び/又はStrongARMTM、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含んでもよいが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含め)他のシステムが使用されてもよい。少なくとも一実施例では、コンピュータ・システム800は、ワシントン州、レドモンドのマイクロソフトコーポレーションから入手可能なWINDOWS(登録商標)のオペレーティング・システムのあるバージョンを実行してもよいが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースが使用されてもよい。
【0058】
実施例は、携帯型デバイス及び組み込みアプリケーションなど、他のデバイスで使用されてもよい。携帯型デバイスのいくつかの例は、セルラー・フォン、インターネット・プロトコル・デバイス、デジタル・カメラ、パーソナル・デジタル・アシスタント(「PDA」:personal digital assistants)、及び携帯型PCを含む。少なくとも一実施例では、組み込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(「DSP」:digital signal processor)、システム・オン・チップ、ネットワーク・コンピュータ(「NetPC」:network computers)、エッジ・コンピューティング・デバイス、セット・トップ・ボックス、ネットワーク・ハブ、広域ネットワーク(「WAN」:wide area network)スイッチ、又は少なくとも一実施例による1つ又は複数の命令を実行することができる任意の他のシステムを含んでもよい。
【0059】
少なくとも一実施例では、コンピュータ・システム800は、限定することなくプロセッサ802を含んでもよく、このプロセッサ802は限定することなく、本明細書に記載の技法による機械学習モデルの訓練及び/又は推論を実行するための1つ又は複数の実行ユニット808を含んでもよい。少なくとも一実施例では、コンピュータ・システム800は、シングル・プロセッサのデスクトップ又はサーバ・システムであるが、別の実施例では、コンピュータ・システム800はマルチプロセッサ・システムであってもよい。少なくとも一実施例では、プロセッサ802は、限定することなく、複合命令セット・コンピュータ(「CISC」:complex instruction set computer)マイクロプロセッサ、縮小命令セット・コンピューティング(「RISC」)マイクロプロセッサ、超長命令語(「VLIW」)マイクロプロセッサ、命令セットの組合せを実装するプロセッサ、又は任意の他のプロセッサ・デバイス、たとえばデジタル信号プロセッサなどを含んでもよい。少なくとも一実施例では、プロセッサ802は、プロセッサ・バス810に結合されてもよく、このプロセッサ・バスは、プロセッサ802とコンピュータ・システム800内の他の構成要素との間でデータ信号を送信してもよい。
【0060】
少なくとも一実施例では、プロセッサ802は、限定することなく、レベル1(「L1」)の内部キャッシュ・メモリ(「キャッシュ」)804を含んでもよい。少なくとも一実施例では、プロセッサ802は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ802の外部にあってもよい。他の実施例は、特定の実装形態及び必要性に応じて、内部キャッシュと外部キャッシュの両方の組合せも含んでよい。少なくとも一実施例では、レジスタ・ファイル806は、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタを限定することなく含む様々レジスタに、異なるタイプのデータを記憶してもよい。
【0061】
少なくとも一実施例では、整数及び浮動小数点の演算を実行するための論理を限定することなく含む実行ユニット808も、プロセッサ802にある。少なくとも一実施例では、プロセッサ802は、ある一定のマクロ命令のためのマイクロコードを記憶するマイクロコード(「uコード」)読取り専用メモリ(「ROM」:read only memory)も含んでよい。少なくとも一実施例では、実行ユニット808は、パック命令セット809に対処する論理を含んでもよい。少なくとも一実施例では、パック命令セット809を、命令を実行する関連回路とともに汎用プロセッサの命令セットに含めることにより、多くのマルチメディア・アプリケーションによって使用される演算を、汎用プロセッサ802のパック・データを使用して実行することができる。1つ又は複数の実施例では、プロセッサのデータ・バスの全幅を使用してパック・データの演算を実行することによって、多くのマルチメディア・アプリケーションを加速し、より効率的に実行することができ、これにより、1度に1つのデータ要素に対して1つ又は複数の演算を実行するためにプロセッサのデータ・バス間でより小さい単位のデータを転送する必要をなくすことができる。
【0062】
少なくとも一実施例では、実行ユニット808はまた、マイクロコントローラ、組み込みプロセッサ、グラフィックス・デバイス、DSP、及び他のタイプの論理回路において使用されてもよい。少なくとも一実施例では、コンピュータ・システム800は、限定することなくメモリ820を含んでもよい。少なくとも一実施例では、メモリ820は、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)デバイス、スタティック・ランダム・アクセス・メモリ(「SRAM」)デバイス、フラッシュ・メモリ・デバイス、又は他のメモリ・デバイスとして実装されてもよい。少なくとも一実施例では、メモリ820は、プロセッサ802によって実行されてもよいデータ信号によって表される命令819、及び/又はデータ821を記憶してもよい。
【0063】
少なくとも一実施例では、システム論理チップが、プロセッサ・バス810及びメモリ820に結合されてもよい。少なくとも一実施例では、システム論理チップは、限定することなく、メモリ・コントローラ・ハブ(「MCH」:memory controller hub)816を含んでもよく、プロセッサ802は、プロセッサ・バス810を介してMCH816と通信してもよい。少なくとも一実施例では、MCH816は、命令及びデータを記憶するため、及びグラフィックス・コマンド、データ、及びテクスチャを記憶するために、高帯域幅メモリ経路818をメモリ820に提供してもよい。少なくとも一実施例では、MCH816は、プロセッサ802と、メモリ820と、コンピュータ・システム800の他の構成要素との間でデータ信号を導き、プロセッサ・バス810と、メモリ820と、システムI/Oインターフェース822との間でデータ信号をブリッジしてもよい。少なくとも一実施例では、システム論理チップは、グラフィックス・コントローラに結合するためのグラフィックス・ポートを提供してもよい。少なくとも一実施例では、MCH816は、高帯域幅メモリ経路818を介してメモリ820に結合されてもよく、グラフィックス/ビデオカード812は、アクセラレーテッド・グラフィックス・ポート(「AGP」:Accelerated Graphics Port)相互接続814を介してMCH816に結合されてもよい。
【0064】
少なくとも一実施例では、コンピュータ・システム800は、MCH816をI/Oコントローラ・ハブ(「ICH」:I/O controller hub)830に結合するためのプロプライエタリ・ハブ・インターフェース・バスであるシステムI/O822を使用してもよい。少なくとも一実施例では、ICH830は、ローカルのI/Oバスを介していくつかのI/Oデバイスに直接接続を提供してもよい。少なくとも一実施例では、ローカルI/Oバスは、周辺装置をメモリ820、チップセット、及びプロセッサ802に接続するための高速I/Oバスを、限定することなく含んでもよい。例としては、オーディオ・コントローラ829、ファームウェア・ハブ(「フラッシュBIOS」)828、ワイヤレス・トランシーバ826、データ・ストレージ824、ユーザ入力及びキーボードのインターフェース825を含むレガシーI/Oコントローラ823、ユニバーサル・シリアル・バス(「USB」:Universal Serial Bus)などのシリアル拡張ポート827、及びネットワーク・コントローラ834が、限定することなく含まれてもよい。データ・ストレージ824は、ハード・ディスク・ドライブ、フロッピー(登録商標)・ディスク・ドライブ、CD-ROMデバイス、フラッシュ・メモリ・デバイス、又は他の大容量ストレージ・デバイスを備えてもよい。
【0065】
少なくとも一実施例では、
図8は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、一方他の実施例では、
図8は例示的なシステム・オン・チップ(「SoC」)を示してもよい。少なくとも一実施例では、デバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)、又はこれらの何らかの組合せで相互接続されてもよい。少なくとも一実施例では、コンピュータ・システム800の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL:compute express link)相互接続を使用して相互接続されてもよい。
【0066】
こうした構成要素を使用して、スタイル転送を生成することができる。
【0067】
図9は、少なくとも一実施例による、プロセッサ910を利用するための電子デバイス900を示すブロック図である。少なくとも一実施例では、電子デバイス900は、たとえば限定することなく、ノートブック、タワー・サーバ、ラック・サーバ、ブレード・サーバ、ラップトップ、デスクトップ、タブレット、モバイル・デバイス、電話、組み込みコンピュータ、又は任意の他の好適な電子デバイスであってもよい。
【0068】
少なくとも一実施例では、システム900は、任意の好適な数又は種類の構成要素、周辺装置、モジュール、若しくはデバイスに通信可能に結合されたプロセッサ910を、限定することなく含んでもよい。少なくとも一実施例では、プロセッサ910は、I°Cバス、システム・マネージメント・バス(「SMBus」:System Management Bus)、ロー・ピン・カウント(LPC:Low Pin Count)バス、シリアル・ペリフェラル・インターフェース(「SPI」:Serial Peripheral Interface)、ハイ・デフィニション・オーディオ(「HDA」:High Definition Audio)バス、シリアル・アドバンス・テクノロジー・アタッチメント(「SATA」:Serial Advance Technology Attachment)バス、ユニバーサル・シリアル・バス(「USB」)(バージョン1、2、3)、又はユニバーサル非同期レシーバ/トランスミッタ(「UART」:Universal Asynchronous Receiver/Transmitter)バスなどのバス若しくはインターフェースを使用して結合される。少なくとも一実施例では、
図9は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、一方他の実施例では、
図9は例示的なシステム・オン・チップ(「SoC」)を示してもよい。少なくとも一実施例では、
図9に示すデバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)、又はこれらの何らかの組合せで相互接続されてもよい。少なくとも一実施例では、
図9の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL)相互接続を使用して相互接続されてもよい。
【0069】
少なくとも一実施例では、
図9は、ディスプレイ924、タッチ画面925、タッチ・パッド930、近距離無線通信ユニット(「NFC」:Near Field Communications unit)945、センサ・ハブ940、熱センサ946、エクスプレス・チップセット(「EC」:Express Chipset)935、トラステッド・プラットフォーム・モジュール(「TPM」:Trusted Platform Module)938、BIOS/ファームウェア/フラッシュ・メモリ(「BIOS、FWフラッシュ」:BIOS/firmware/flash memory)922、DSP960、ソリッド・ステート・ディスク(「SSD」:Solid State Disk)若しくはハード・ディスク・ドライブ(「HDD」:Hard Disk Drive)などのドライブ920、ワイヤレス・ローカル・エリア・ネットワーク・ユニット(「WLAN」:wireless local area network unit)950、Bluetoothユニット952、ワイヤレス広域ネットワーク・ユニット(「WWAN」:Wireless Wide Area Network unit)956、全地球測位システム(GPS:Global Positioning System)ユニット955、USB3.0カメラなどのカメラ(「USB3.0カメラ」)954、及び/又は、たとえばLPDDR3規格に実装された低電力ダブル・データ・レート(「LPDDR」:Low Power Double Data Rate)メモリ・ユニット(「LPDDR3」)915を含んでもよい。これらの構成要素は、それぞれ任意の好適なやり方で実装されてもよい。
【0070】
少なくとも一実施例では、上述した構成要素を介して、他の構成要素がプロセッサ910に通信可能に結合されてもよい。少なくとも一実施例では、加速度計941、周囲光センサ(「ALS」:Ambient Light Sensor)942、コンパス943、及びジャイロスコープ944が、センサ・ハブ940に通信可能に結合されてもよい。少なくとも一実施例では、熱センサ939、ファン937、キーボード946、及びタッチ・パッド930が、EC935に通信可能に結合されてもよい。少なくとも一実施例では、スピーカ963、ヘッドフォン964、及びマイクロフォン(「mic」)965が、オーディオ・ユニット(オーディオ・コーデック及びクラスdアンプ)962に通信可能に結合されてもよく、このオーディオ・ユニットが、DSP960に通信可能に結合されてもよい。少なくとも一実施例では、オーディオ・ユニット964は、たとえば限定することなく、オーディオ・コーダ/デコーダ(「コーデック」)及びクラスDアンプリファイアを含んでもよい。少なくとも一実施例では、SIMカード(「SIM」)957は、WWANユニット956に通信可能に結合されてもよい。少なくとも一実施例では、WLANユニット950及びBluetoothユニット952などの構成要素、並びにWWAN956は、次世代フォーム・ファクタ(「NGFF」:Next Generation Form Factor)に実装されてもよい。
【0071】
こうした構成要素を使用して、スタイル転送を生成することができる。
【0072】
図10は、少なくとも一実施例による処理システムのブロック図である。少なくとも一実施例では、システム1000は、1つ又は複数のプロセッサ1002、及び1つ又は複数のグラフィックス・プロセッサ1008を含み、単一プロセッサのデスクトップ・システム、マルチプロセッサのワークステーション・システム、又は多数の一括で若しくは別々に管理されるプロセッサ1002若しくはプロセッサ・コア1007を有するサーバ・システム若しくはデータ・センタであってもよい。少なくとも一実施例では、システム1000は、モバイル・デバイス、携帯型デバイス、又は組み込みデバイスで使用するためのシステム・オン・チップ(SoC)集積回路内に組み込まれた処理プラットフォームである。
【0073】
少なくとも一実施例では、システム1000は、サーバ・ベースのゲーミング・プラットフォーム、クラウド・コンピューティング・ホスト・プラットフォーム、仮想化コンピューティング・プラットフォーム、ゲーム及びメディアのコンソールを含むゲーム・コンソール、携帯型ゲーム・コンソール、ハンドヘルド・ゲーム・コンソール、若しくはオンライン・ゲーム・コンソールを含んでもよく、又はそれらに組み込まれてもよい。少なくとも一実施例では、システム1000は、モバイル・フォン、スマート・フォン、タブレット・コンピューティング・デバイス、又はモバイル・インターネット・デバイスである。少なくとも一実施例では、処理システム1000はまた、スマート・ウォッチ・ウェアラブル・デバイス、スマート・アイウェア・デバイス、拡張現実デバイス、エッジデバイス、モノのインターネット(「IoT:Internet of Things」)デバイス、若しくは仮想現実デバイスなどのウェアラブル・デバイスを含んでもよく、それらに結合されてもよく、又はそれらのなかに一体化されてもよい。少なくとも一実施例では、処理システム1000は、1つ又は複数のプロセッサ1002と、1つ又は複数のグラフィックス・プロセッサ1008によって生成されるグラフィカル・インターフェースとを有するテレビ又はセット・トップ・ボックス・デバイスである。
【0074】
少なくとも一実施例では、1つ又は複数のプロセッサ1002はそれぞれ、実行されたときにシステム及びユーザ・ソフトウェアのための動作を実行する命令を処理するための1つ又は複数のプロセッサ・コア1007を含む。少なくとも一実施例では、1つ又は複数のプロセッサ・コア1007のそれぞれは、特定の命令セット1009を処理するように構成される。少なくとも一実施例では、命令セット1009は、複合命令セット・コンピューティング(CISC)、縮小命令セット・コンピューティング(RISC)、又は超長命令語(VLIW)を介したコンピューティングを容易にしてもよい。少なくとも一実施例では、プロセッサ・コア1007はそれぞれ、異なる命令セット1009を処理してもよく、この命令セットは、他の命令セットのエミュレーションを容易にする命令を含んでもよい。少なくとも一実施例では、プロセッサ・コア1007はまた、デジタル信号プロセッサ(DSP)などの他の処理デバイスを含んでもよい。
【0075】
少なくとも一実施例では、プロセッサ1002はキャッシュ・メモリ1004を含む。少なくとも一実施例では、プロセッサ1002は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ1002の様々な構成要素間で共有される。少なくとも一実施例では、プロセッサ1002はまた、外部キャッシュ(たとえば、レベル3(L3)キャッシュ又はラスト・レベル・キャッシュ(LLC))(図示せず)を使用し、このキャッシュは、知られているキャッシュ・コヒーレンス技法を使用して、プロセッサ・コア1007間で共有されてもよい。少なくとも一実施例では、さらにレジスタ・ファイル1006がプロセッサ1002に含まれ、このレジスタ・ファイルは、異なるタイプのデータを記憶するための異なるタイプのレジスタ(たとえば、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタ)を含んでもよい。少なくとも一実施例では、レジスタ・ファイル1006は、汎用レジスタ又は他のレジスタを含んでもよい。
【0076】
少なくとも一実施例では、1つ又は複数のプロセッサ1002は、1つ又は複数のインターフェース・バス1010に結合されて、アドレス、データ、又は制御信号などの通信信号を、プロセッサ1002とシステム1000内の他の構成要素との間で送信する。少なくとも一実施例では、インターフェース・バス1010は、一実施例では、ダイレクト・メディア・インターフェース(DMI)バスのバージョンなどのプロセッサ・バスとすることができる。少なくとも一実施例では、インターフェース1010は、DMIバスに限定されず、1つ又は複数のペリフェラル・コンポーネント・インターコネクト・バス(たとえば、PCI、PCIエクスプレス)、メモリ・バス、又は他のタイプのインターフェース・バスを含んでもよい。少なくとも一実施例では、プロセッサ1002は、統合メモリ・コントローラ1016、及びプラットフォーム・コントローラ・ハブ1030を含む。少なくとも一実施例では、メモリ・コントローラ1016は、メモリ・デバイスとシステム1000の他の構成要素との間の通信を容易にし、一方でプラットフォーム・コントローラ・ハブ(PCH)1030は、ローカルI/Oバスを介してI/Oデバイスへの接続を提供する。
【0077】
少なくとも一実施例では、メモリ・デバイス1020は、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス、スタティック・ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュ・メモリ・デバイス、相変化メモリ・デバイス、又はプロセス・メモリとしての役割を果たすのに好適な性能を有する何らかの他のメモリ・デバイスとすることができる。少なくとも一実施例では、メモリ・デバイス1020は、システム1000のためのシステム・メモリとして動作して、1つ又は複数のプロセッサ1002がアプリケーション若しくはプロセスを実行するときに使用するためのデータ1022及び命令1021を記憶することができる。少なくとも一実施例では、メモリ・コントローラ1016はまた、任意選択の外部グラフィックス・プロセッサ1012と結合しており、このグラフィックス・プロセッサは、プロセッサ1002内の1つ又は複数のグラフィックス・プロセッサ1008と通信して、グラフィックス及びメディアの動作を実行してもよい。少なくとも一実施例では、ディスプレイ・デバイス1011は、プロセッサ1002に接続することができる。少なくとも一実施例では、ディスプレイ・デバイス1011は、モバイル電子デバイス又はラップトップ・デバイスのような内部ディスプレイ・デバイス、又はディスプレイ・インターフェース(たとえば、ディスプレイ・ポートなど)を介して取り付けられる外部ディスプレイ・デバイスのうちの1つ又は複数を含むことができる。少なくとも一実施例では、ディスプレイ・デバイス1011は、仮想現実(VR)アプリケーション又は拡張現実(AR)アプリケーションで使用するための立体ディスプレイ・デバイスなどの頭部装着型ディスプレイ(HMD)を含むことができる。
【0078】
少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030は、周辺装置が高速I/Oバスを介してメモリ・デバイス1020及びプロセッサ1002に接続できるようにする。少なくとも一実施例では、I/O周辺装置は、オーディオ・コントローラ1046、ネットワーク・コントローラ1034、ファームウェア・インターフェース1028、ワイヤレス・トランシーバ1026、タッチ・センサ1025、データ・ストレージ・デバイス1024(たとえば、ハード・ディスク・ドライブ、フラッシュ・メモリなど)を含むが、これらに限定されない。少なくとも一実施例では、データ・ストレージ・デバイス1024は、ストレージ・インターフェース(たとえば、SATA)を介して、又はペリフェラル・コンポーネント・インターコネクト・バス(たとえば、PCI、PCIエクスプレス)などのペリフェラル・バスを介して、接続することができる。少なくとも一実施例では、タッチ・センサ1025は、タッチ画面センサ、圧力センサ、又は指紋センサを含むことができる。少なくとも一実施例では、ワイヤレス・トランシーバ1026は、WiFiトランシーバ、Bluetoothトランシーバ、又は3G、4G、若しくはLong Term Evolution(LTE)トランシーバなどのモバイル・ネットワーク・トランシーバとすることができる。少なくとも一実施例では、ファームウェア・インターフェース1028は、システム・ファームウェアとの通信を可能にし、たとえば、ユニファイド・エクステンシブル・ファームウェア・インターフェース(UEFI)とすることができる。少なくとも一実施例では、ネットワーク・コントローラ1034は、有線ネットワークへのネットワーク接続を可能にすることができる。少なくとも一実施例では、高性能ネットワーク・コントローラ(図示せず)は、インターフェース・バス1010と結合する。少なくとも一実施例では、オーディオ・コントローラ1046は、多チャネル・ハイ・デフィニション・オーディオ・コントローラである。少なくとも一実施例では、システム1000は、レガシー(たとえば、パーソナル・システム2(PS/2))デバイスをシステムに結合するための任意選択のレガシーI/Oコントローラ1040を含む。少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030は、キーボードとマウス1043の組合せ、カメラ1044、又は他のUSB入力デバイスなど、1つ又は複数のユニバーサル・シリアル・バス(USB)コントローラ1042の接続入力デバイスにも接続することができる。
【0079】
少なくとも一実施例では、メモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030のインスタンスは、外部グラフィックス・プロセッサ1012などの個別の外部グラフィックス・プロセッサに一体化されてもよい。少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030及び/又はメモリ・コントローラ1016は、1つ又は複数のプロセッサ1002の外部にあってもよい。たとえば、少なくとも一実施例では、システム1000は、外部のメモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030を含むことができ、これらは、プロセッサ1002と通信するシステム・チップセット内のメモリ・コントローラ・ハブ及び周辺装置コントローラ・ハブとして構成されてもよい。
【0080】
こうした構成要素を使用して、スタイル転送を生成することができる。
【0081】
図11は、少なくとも一実施例による、1つ又は複数のプロセッサ・コア1102A~1102N、統合メモリ・コントローラ1114、及び統合グラフィックス・プロセッサ1108を有するプロセッサ1100のブロック図である。少なくとも一実施例では、プロセッサ1100は、破線の四角によって表される追加コア1102Nを含むそれ以下の数の追加コアを含むことができる。少なくとも一実施例では、プロセッサ・コア1102A~1102Nのそれぞれは、1つ又は複数の内部キャッシュ・ユニット1104A~1104Nを含む。少なくとも一実施例では、各プロセッサ・コアはまた、1つ又は複数の共有キャッシュ・ユニット1106にアクセスできる。
【0082】
少なくとも一実施例では、内部キャッシュ・ユニット1104A~1104N、及び共有キャッシュ・ユニット1106は、プロセッサ1100内のキャッシュ・メモリ階層を表す。少なくとも一実施例では、キャッシュ・メモリ・ユニット1104A~1104Nは、各プロセッサ・コア内の命令及びデータのキャッシュの少なくとも1つのレベル、並びにレベル2(L2)、レベル3(L3)、レベル4(L4)などの共有中間レベル・キャッシュの1つ又は複数のレベル、又はキャッシュの他のレベルを含んでもよく、ここで外部メモリの前の最高レベルのキャッシュは、LLCとして分類される。少なくとも一実施例では、キャッシュ・コヒーレンス論理は、様々なキャッシュ・ユニット1106及び1104A~1104N間でコヒーレンスを維持する。
【0083】
少なくとも一実施例では、プロセッサ1100はまた、1つ又は複数のバス・コントローラ・ユニット1116とシステム・エージェント・コア1110のセットを含んでもよい。少なくとも一実施例では、1つ又は複数のバス・コントローラ・ユニット1116は、1つ又は複数のPCI若しくはPCIエクスプレス・バスなどのペリフェラル・バスのセットを管理する。少なくとも一実施例では、システム・エージェント・コア1110は、様々なプロセッサ構成要素のための管理機能を提供する。少なくとも一実施例では、システム・エージェント・コア1110は、様々な外部メモリ・デバイス(図示せず)へのアクセスを管理するための1つ又は複数の統合メモリ・コントローラ1114を含む。
【0084】
少なくとも一実施例では、プロセッサ・コア1102A~1102Nの1つ又は複数は、同時マルチスレッディングのサポートを含む。少なくとも一実施例では、システム・エージェント・コア1110は、マルチスレッドの処理中にコア1102A~1102Nを調整し動作させるための構成要素を含む。少なくとも一実施例では、システム・エージェント・コア1110はさらに、電力制御ユニット(PCU)を含んでもよく、このユニットは、プロセッサ・コア1102A~1102N及びグラフィックス・プロセッサ1108の1つ又は複数の電力状態を調整するための論理及び構成要素を含む。
【0085】
少なくとも一実施例では、プロセッサ1100はさらに、グラフィックス処理動作を実行するためのグラフィックス・プロセッサ1108を含む。少なくとも一実施例では、グラフィックス・プロセッサ1108は、共有キャッシュ・ユニット1106と、1つ又は複数の統合メモリ・コントローラ1114を含むシステム・エージェント・コア1110とに結合する。少なくとも一実施例では、システム・エージェント・コア1110はまた、1つ又は複数の結合されたディスプレイに対してグラフィックス・プロセッサの出力を行わせるためのディスプレイ・コントローラ1111を含む。少なくとも一実施例では、ディスプレイ・コントローラ1111はまた、少なくとも1つの相互接続を介してグラフィックス・プロセッサ1108に結合された別個のモジュールであってもよく、又はグラフィックス・プロセッサ1108内に一体化されていてもよい。
【0086】
少なくとも一実施例では、プロセッサ1100の内部構成要素を結合するために、リング・ベースの相互接続ユニット1112が使用される。少なくとも一実施例では、ポイントツーポイント相互接続、スイッチ相互接続、又は他の技法などの代替的な相互接続ユニットが使用されてもよい。少なくとも一実施例では、グラフィックス・プロセッサ1108は、I/Oリンク1113を介してリング相互接続1112と結合する。
【0087】
少なくとも一実施例では、I/Oリンク1113は、様々なプロセッサ構成要素と、eDRAMモジュールなどの高性能組み込みメモリ・モジュール1118との間の通信を容易にするオン・パッケージI/O相互接続を含む多様なI/O相互接続のうちの少なくとも1つを表す。少なくとも一実施例では、プロセッサ・コア1102A~1102Nのそれぞれ及びグラフィックス・プロセッサ1108は、共有ラスト・レベル・キャッシュとして組み込みメモリ・モジュール1118を使用する。
【0088】
少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、共通の命令セット・アーキテクチャを実行する同種のコアである。少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、命令セット・アーキテクチャ(ISA)の観点から見れば異種であり、ここでプロセッサ・コア1102A~1102Nのうちの1つ又は複数は、共通の命令セットを実行するが、プロセッサ・コア1102A~1102Nのうちの1つ又は複数の他のコアは、共通の命令セットのサブセット、又は異なる命令セットを実行する。少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、マイクロ・アーキテクチャの観点から見れば異種であり、ここで電力消費量が相対的に高い1つ又は複数のコアは、電力消費量がより低い1つ又は複数のコアと結合する。少なくとも一実施例では、プロセッサ1100は、1つ又は複数のチップ上に、又はSoC集積回路として実装することができる。
【0089】
こうした構成要素を使用して、スタイル転送を生成することができる。
【0090】
他の変形形態は、本開示の範囲内にある。したがって、開示した技法は、様々な修正及び代替的な構成が可能であるが、それらのうち一定の例示的な実施例が図面に示され、上で詳細に説明されてきた。しかし、特定の1つ又は複数の開示された形に本開示を限定する意図はなく、その反対に、特許請求の範囲に定義される開示の趣旨及び範囲に入るすべての修正形態、代替的な構成、及び等価物を網羅することを意図している。
【0091】
開示される実施例を説明する文脈において(特に、以下の特許請求の範囲の文脈において)「a」及び「an」及び「the」という用語、並びに同様の指示語を使用することは、本明細書に別段の記載のない限り、又は文脈によって明らかに否定されない限り、単数と複数の両方を網羅すると解釈されるべきであり、用語の定義であると解釈されるべきではない。「備える(comprising)」、「有する(having)」、「含む(including)」、「収容する(containing)」という用語は、別段の記載のない限り、オープンエンドの用語(「含むが、これに限定されない」を意味する)と解釈される。「接続される」という用語は、修飾されずに物理的接続を指している場合には、何か介在するものがあったとしても、部分的に又は完全に中に収容される、取り付けられる、又は互いに接合されるものとして解釈される。本明細書において値の範囲を詳述することは、本明細書において別段の記載がない限り、またそれぞれ別々の値が、本明細書に個々に詳述されているかのように明細書に組み込まれていない限り、範囲内に含まれるそれぞれ別々の値を個々に参照する簡潔な方法として機能することを単に意図しているにすぎない。「セット」(たとえば、「アイテムのセット」)又は「サブセット」という用語の使用は、文脈によって別段の記載がない、又は否定されていない限り、1つ又は複数の部材を備える空ではない集合として解釈されるべきである。さらに、文脈によって別段の記載がない、又は否定されていない限り、対応するセットの「サブセット」という用語は、対応するセットの厳密なサブセットを必ずしも指すのではなく、サブセットと対応するセットは等しくてもよい。
【0092】
「A、B、及びCのうちの少なくとも1つ」又は「A、B、及びCのうちの少なくとも1つ」という形の言い回しなどの結合語は、別段の具体的な記載のない限り、又は文脈によって明確に否定されていない限り、項目、用語などが、AかBかCである、又はAとBとCのセットのいずれかの空でないサブセットであることを提示するために一般に使用される文脈で理解される。たとえば、3つの部材を有するセットの説明的な例では、「A、B、及びCのうちの少なくとも1つ」並びに「A、B、及びCのうちの少なくとも1つ」という結合句は、次のセットのうちのいずれかを指す:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。したがって、こうした結合語は、ある一定の実施例が、少なくとも1つのA、少なくとも1つのB、及び少なくとも1つのCのそれぞれの存在を必要とすることを全体的に暗示するものではない。さらに、別段の記載のない、又は文脈によって否定されていない限り、「複数」という用語は、複数である状態を示す(たとえば、「複数の項目(a plurality of items)」は複数の項目(multiple items)を示す)。複数とは、少なくとも2つの項目であるが、明示的に、又は文脈によって示されている場合にはそれより多くてもよい。さらに、別段の記載のない、又は文脈からそうでないことが明らかでない限り、「~に基づく」という言い回しは、「少なくとも部分的に~に基づく」を意味し、「~だけに基づく」を意味しない。
【0093】
本明細書に記載のプロセスの動作は、本明細書に別段の記載のない、又は文脈によって明確に否定されない限り、任意の好適な順序で実行することができる。少なくとも一実施例では、本明細書に記載のプロセス(又はその変形及び/又は組合せ)などのプロセスは、実行可能命令で構成された1つ又は複数のコンピュータ・システムの制御下で実行され、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せによって集合的に実行されるコード(たとえば、実行可能な命令、1つ若しくは複数のコンピュータ・プログラム、又は1つ若しくは複数のアプリケーション)として実装される。少なくとも一実施例では、コードは、たとえば1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータ・プログラムの形で、コンピュータ読取り可能ストレージ媒体に記憶される。少なくとも一実施例では、コンピュータ読取り可能ストレージ媒体は、一時的な信号(たとえば、伝播する一時的な電気若しくは電磁送信)を除外するが、一時的な信号のトランシーバ内の非一時的なデータ・ストレージ回路(たとえば、バッファ、キャッシュ、及びキュー)を含む非一時的なコンピュータ読取り可能ストレージ媒体である。少なくとも一実施例では、コード(たとえば、実行可能コード又はソース・コード)は、1つ又は複数の非一時的なコンピュータ読取り可能ストレージ媒体のセットに記憶され、このストレージ媒体には、コンピュータ・システムの1つ又は複数のプロセッサによって実行されたときに(すなわち、実行された結果として)、コンピュータ・システムに本明細書に記載の動作を実行させる実行可能命令が記憶されている(又は、実行可能命令を記憶するための他のメモリを有する)。非一時的なコンピュータ読取り可能ストレージ媒体のセットは、少なくとも一実施例では、複数の非一時的なコンピュータ読取り可能ストレージ媒体を備え、複数の非一時的なコンピュータ読取り可能ストレージ媒体の個々の非一時的なストレージ媒体のうちの1つ又は複数には、すべてのコードがないが、複数の非一時的なコンピュータ読取り可能ストレージ媒体は、集合的にすべてのコードを記憶している。少なくとも一実施例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行され、たとえば、非一時的なコンピュータ読取り可能ストレージ媒体は命令を記憶し、メインの中央処理装置(「CPU」)は一部の命令を実行し、グラフィックス・プロセッシング・ユニット(「GPU」)及び/又はデータ・プロセッシング・ユニット(「DPU」)は他の命令を実行する。少なくとも一実施例では、コンピュータ・システムの異なる構成要素は、別々のプロセッサを有し、異なるプロセッサは、命令の異なるサブセットを実行する。
【0094】
したがって、少なくとも一実施例では、コンピュータ・システムは、本明細書に記載のプロセスの動作を単独で又は集合的に実行する1つ又は複数のサービスを実装するように構成され、こうしたコンピュータ・システムは、動作の実行を可能にする適用可能なハードウェア及び/又はソフトウェアで構成される。さらに、本開示の少なくとも一実施例を実装するコンピュータ・システムは、単一のデバイスであり、別の実施例では、異なるやり方で動作する複数のデバイスを備える分散型のコンピュータ・システムであり、それにより単一のデバイスがすべての動作を実行しないように分散型のコンピュータ・システムが本明細書に記載の動作を実行する。
【0095】
本明細書に提供されるあらゆる例、又は例示的な言葉(たとえば、「など」)の使用は、本開示の実施例をより明らかにすることだけを意図しており、別段の主張のない限り、本開示の範囲に制限を加えるものではない。本明細書のいかなる言葉も、特許請求されていない任意の要素を、本開示の実践に不可欠なものとして示すと解釈されるべきではない。
【0096】
本明細書に引用される出版物、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照により組み込まれることがあたかも個別に明確に示され、その全体が本明細書に記載されたかのように、それと同程度まで参照により本明細書に組み込まれる。
【0097】
明細書及び特許請求の範囲において、「結合される」及び「接続される」という用語が、その派生語とともに使用されてもよい。これらの用語は、互いに同義語として意図されていない場合があることを理解すべきである。むしろ、特定の例では、「接続される」又は「結合される」は、2つ以上の要素が物理的又は電気的に互いに直接又は間接的に接触していることを示すために使用されてもよい。また「結合される」は、2つ以上の要素が直接互いに接触していないが、なお互いに連動又は相互作用することを意味してもよい。
【0098】
別段の具体的な記載のない限り、明細書全体を通して「処理する」、「コンピューティング」、「計算する」、又は「判定する」などの用語は、コンピューティング・システムのレジスタ及び/又はメモリ内の、電子的などの物理的な量として表されるデータをコンピューティング・システムのメモリ、レジスタ、又は他のそのような情報ストレージ・デバイス、送信デバイス、若しくはディスプレイ・デバイス内の物理的な量として同様に表される他のデータになるよう操作及び/又は変換するコンピュータ若しくはコンピューティング・システム、又は同様の電子コンピューティング・デバイスの行為及び/又はプロセスを指す。
【0099】
同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、その電子データを、レジスタ及び/又はメモリに記憶することができる他の電子データに変換する任意のデバイス、又はデバイスの一部分を指してもよい。非限定的な例として、「プロセッサ」は、CPU、GPU、又はDPUなどの汎用処理が可能な任意のプロセッサであってもよい。非限定的な例として、「プロセッサ」は、任意のマイクロコントローラ、又はDSP、画像信号プロセッサ(「ISP:image signal processor」)、算術論理装置(「ALU:arithmetic logic unit」)、視覚処理装置(「VPU:vision processing unit」)、ツリー・トラバーサル・ユニット(「TTU:tree traversal unit」)、レイ・トレーシング・コア、テンソル・トレーシング・コア、テンソル処理装置(「TPU:tensor processing unit」)、組み込み制御ユニット(「ECU:embedded control unit」)などの専用処理装置であってもよい。非限定的な例として、「プロセッサ」は、PVA:programmable vision accelerator(プログラマブル・ビジョン・アクセラレータ)、DLA:deep learning accelerator(深層学習アクセラレータ)などのハードウェア・アクセラレータであってもよい。非限定的な例として、「プロセッサ」はまた、1つ又は複数の仮想マシンを実行する基礎となるハードウェア構成要素上でホストされる、CPU、GPUなどの1つ又は複数の仮想インスタンスを含んでもよい。「コンピューティング・プラットフォーム」は、1つ又は複数のプロセッサを備えてもよい。本明細書で使用する「ソフトウェア」プロセスは、たとえば、タスク、スレッド、及び知的エージェントなど、経時的にワークを実行するソフトウェア及び/又はハードウェアのエンティティを含んでもよい。また、各プロセスは、命令を直列で又は並列で連続的に又は断続的に実行するための複数のプロセスを指してもよい。「システム」及び「方法」という用語は、1つ又は複数の方法をシステムが具体化することができ、方法がシステムと考えられてもよい場合に限り、本明細書において交換可能に使用される。
【0100】
本明細書では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又はそれらをサブシステム、コンピュータ・システム、又はコンピュータ実装機械に入力することに言及することができる。アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力することは、関数呼出し、又はアプリケーション・プログラミング・インターフェースへの呼出しのパラメータとしてデータを受信するなど、様々なやり方で実現することができる。いくつかの実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、直列又は並列のインターフェースを介してデータを転送することによって実現することができる。別の実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、提供するエンティティから取得するエンティティにコンピュータ・ネットワークを介してデータを転送することによって実現することができる。また、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示することにも言及することができる。様々な例では、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示するプロセスは、関数呼出しの入力又は出力のパラメータ、アプリケーション・プログラミング・インターフェース若しくはプロセス間通信機構のパラメータとしてデータを転送することによって実現することができる。
【0101】
上の議論は、説明した技法の例示的な実装形態について述べているが、記載した機能を実装するために他のアーキテクチャが使用されてもよく、この他のアーキテクチャは、本開示の範囲内にあることが意図される。さらに、議論を目的として、役割の具体的な分配が定義されているが、様々な機能及び役割は、状況に応じて異なるやり方で分配及び分割されてもよい。
【0102】
さらに、主題は、構造的特徴及び/又は方法論的動作に特有の言語で説明されてきたが、添付の特許請求の範囲で特許請求される主題は、説明した特有の特徴又は動作に必ずしも限定されないことが理解されるべきである。むしろ、特有の特徴及び動作は、特許請求の範囲を実装する例示的な形として開示されている。
【外国語明細書】