JP2024504063A - サードパーティ資産を用いて拡張現実体験を促進するためのコンピューティングプラットフォーム - Google Patents

サードパーティ資産を用いて拡張現実体験を促進するためのコンピューティングプラットフォーム Download PDF

Info

Publication number
JP2024504063A
JP2024504063A JP2023541344A JP2023541344A JP2024504063A JP 2024504063 A JP2024504063 A JP 2024504063A JP 2023541344 A JP2023541344 A JP 2023541344A JP 2023541344 A JP2023541344 A JP 2023541344A JP 2024504063 A JP2024504063 A JP 2024504063A
Authority
JP
Japan
Prior art keywords
data
augmented reality
rendering
computing device
data asset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2023541344A
Other languages
English (en)
Other versions
JP7457211B2 (ja
Inventor
イヴァン・ネウランダー
イアン・ジョセフ・ロス
ハオ・ワン
アグスティン・サード・オリヴァン・ベネズエラ
スブラマニアン・シャムサンダー・マートゥール
シュエメイ・ジャオ
ヴァルドリン・コシ
ジェームズ・スロー・シン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2024504063A publication Critical patent/JP2024504063A/ja
Priority to JP2024031999A priority Critical patent/JP2024061750A/ja
Application granted granted Critical
Publication of JP7457211B2 publication Critical patent/JP7457211B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

データ資産の取得および難読化のためのシステムと方法は、拡張現実レンダリングデータ資産をサードパーティから取得するために役立つ。ソフトウェア開発キットを送信し、データ資産を返送することにより、データ資産がユーザインターフェースにおいて拡張現実レンダリング体験と互換性があることを確認することができる。難読化を備えたデータ取得システムにより、サードパーティによって生成されたコードからセマンティクスが取り除かれ、可読性が低下することも保証される。

Description

関連出願
本出願は、2021年1月7日に出願された米国非仮特許出願第17/144,002号の優先権および利益を主張する。米国非仮特許出願第17/144,002号は、その全体が参照により本明細書に組み込まれる。
本開示は、一般に、データ資産の取得に関する。より詳細には、本開示は、拡張現実体験をユーザに提供するためのサードパーティからのデータ資産の取得に関する。
拡張現実(AR)は、現実世界に存在するオブジェクトがコンピュータで生成された知覚情報によって強化される、現実世界環境のインタラクティブな体験の作成と実行を指すことができる。一例として、AR体験は、ユーザのカメラによってキャプチャされたシーンを、シーンに仮想オブジェクトを挿入すること、および/または、シーンに含まれる現実世界のオブジェクトの外観を修正することによって拡張することを含むことができる。
特定のエンティティは、そのエンティティによって製造または配布されたオブジェクトに関連するAR体験に参加する機能をユーザに提供し得る(たとえば、拡張現実の「試着(try-on)」)。しかしながら、ほとんどのエンティティは、これらのAR体験を独自のウェブサイトでのみ提供している。拡張現実製品の「試着」に対するアクセシビリティが制限されているため、消費者は、様々なオブジェクトに対して様々なAR体験に参加するために(たとえば、様々な製品を試着して製品を比較するために)、あるウェブサイトから別のウェブサイトに移動する必要がある可能性がある。この問題により、消費者は様々なARセッションへの参加を促進するために、様々なウェブサイト間を移動するために、より多くのコンピューティングリソースを費やす可能性がある。
さらに、拡張現実体験をウェブベースで実装すると、ネイティブアプリケーションにおいて提供される拡張現実体験と比較して、フレームレートが低くなり、レンダリングがより現実的ではなくなる可能性がある。
様々な拡張現実体験に参加する場合のもう1つの問題は、様々なARアプリケーションが様々なコーディング言語でコーディングされる可能性があることである。特定のコーディング言語はセキュリティ上の問題を引き起こす可能性があり、アプリケーションがユーザの顔の画像またはビデオを処理する場合に特に懸念されることがある。
本開示の実施形態の態様および利点は、以下の説明において部分的に記載されるか、説明から知ることができるか、または実施形態の実践を通じて知ることができる。
本開示の1つの例示的な態様は、サードパーティのデータ資産をクライアントに提供するためのコンピュータ実装方法を対象とする。本方法は、コンピューティングデバイスによってソフトウェア開発キットを送信するステップを含むことができる。ソフトウェア開発キットは、1つまたは複数のレンダリング効果シェーダを構築するためのテンプレートを含むことができる。本方法は、コンピューティングデバイスによってデータ資産を受信するステップを含むことができる。いくつかの実装形態では、データ資産は、ソフトウェア開発キットを使用して構築された1つまたは複数のレンダリング効果シェーダを含むことができる。本方法は、コンピューティングデバイスによってデータ資産を記憶するステップと、コンピューティングデバイスによって拡張現実レンダリング体験を提供するステップとを含むことができる。いくつかの実装形態では、拡張現実レンダリングは少なくとも部分的にデータ資産に基づくことができる。
本開示の別の例示的な態様は、コンピューティングシステムを対象とする。コンピューティングシステムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると、コンピューティングシステムに、動作を実行させる命令を集合的に記憶する1つまたは複数の非一時的コンピュータ可読媒体とを含むことができる。本動作は、拡張現実体験を生成するためのテンプレートを備えるソフトウェア開発キットを受信することを含むことができる。本動作は、テンプレートを修正するための1つまたは複数の入力を受信することを含むことができる。いくつかの実装形態では、テンプレートを修正すると、製品固有の拡張現実体験を生成することができる。いくつかの実装形態では、本動作は、1つまたは複数の入力に少なくとも部分的に基づいてデータ資産を生成することと、データ資産を第2のコンピューティングデバイスに送信することとを含むことができる。
本開示の別の例示的な態様は、1つまたは複数のプロセッサによって実行されると、コンピューティングシステムに、動作を実行させる命令を集合的に記憶する1つまたは複数の非一時的コンピュータ可読媒体を対象とする。本動作は、コンピューティングデバイスによってソフトウェア開発キットを送信することを含むことができる。いくつかの実装形態では、ソフトウェア開発キットは、1つまたは複数のレンダリング効果シェーダを構築するためのテンプレートを含むことができる。本動作は、コンピューティングデバイスによってデータ資産を受信することを含むことができる。データ資産は、ソフトウェア開発キットを使用して構築された1つまたは複数のレンダリング効果シェーダを含むことができる。本動作は、コンピューティングデバイスによってデータ資産を記憶することと、コンピューティングデバイスによって拡張現実レンダリング体験を提供することとを含むことができる。いくつかの実装形態では、拡張現実レンダリングは少なくとも部分的にデータ資産に基づくことができる。
本開示の他の態様は、様々なシステム、装置、非一時的コンピュータ可読媒体、ユーザインターフェース、および電子デバイスを対象とする。
本開示の様々な実施形態のこれらおよび他の特徴、態様、および利点は、以下の説明および添付の特許請求の範囲を参照することにより、よりよく理解されるであろう。本明細書に組み込まれ、その一部を構成する添付の図面は、本開示の例示的な実施形態を示しており、説明とともに関連する原理を説明するために役立つ。
当業者を対象とした実施形態の詳細な説明は、添付の図面を参照して本明細書に記載される。
本開示の例示的な実施形態による、データ資産取得を実行する例示的なコンピューティングシステムのブロック図である。 本開示の例示的な実施形態による、データ資産の取得および難読化を実行する例示的なコンピューティングシステムのブロック図である。 本開示の例示的な実施形態による、データ資産の取得および難読化を実行する例示的なコンピューティングデバイスのブロック図である。 本開示の例示的な実施形態による、データ資産の取得および難読化を実行する例示的なコンピューティングデバイスのブロック図である。 本開示の例示的な実施形態による、例示的なデータ資産取得システムのブロック図である。 本開示の例示的な実施形態による、例示的な難読化のブロック図である。 本開示の例示的な実施形態による例示的なデータ資産取得システムのブロック図である。 本開示の例示的な実施形態による、例示的な拡張現実レンダリング体験モデルのブロック図である。 本開示の例示的な実施形態による、データ資産取得を実行するための例示的な方法のフローチャート図である。 本開示の例示的な実施形態による、データ資産生成を実行するための例示的な方法のフローチャート図である。 本開示の例示的な実施形態による、データ資産の取得および難読化を実行するための例示的な方法のフローチャート図である。
複数の図面にわたって繰り返される参照番号は、様々な実装形態において同じ特徴を識別することが意図されている。
概観
一般に、本開示は、拡張現実レンダリング体験をユーザに提供するために、サードパーティからのデータ資産の収集を容易にするプラットフォームを対象とする。たとえば、プラットフォームは、ユーザに提供するレンダリング効果を構築および/または提出するためのインターフェースをサードパーティに提供することができる。プラットフォームは、拡張現実レンダリング体験をユーザに提供し得、ユーザは、ユーザデータを入力し、出力として拡張ユーザデータを受信することができる。さらに、別の例示的な態様によれば、プラットフォームは、サードパーティのコードを保護するために、受信したサードパーティのデータ資産に対して様々な難読化技法を実行することができる。
したがって、本開示の例示的な態様は、サードパーティの機密情報を保護するために、拡張現実レンダリングのためにサードパーティのデータ資産を取得することと、取得したコードを難読化することとを行うためのシステムを提供することができる。いくつかの実装形態では、システムおよび方法は、ソフトウェア開発キットをサードパーティに送信することを含むことができる。ソフトウェア開発キットは、レンダリング効果シェーダを構築するためのテンプレートを含み得る。一例として、AR効果は、共有テンプレートと製品ごとの複数のプリセットに編成することができる。テンプレートは、特定のファミリにおけるすべての製品(たとえば、特定のベンダからのすべての口紅)に共通のシェーダおよび他のリソースを含むことができる。プリセットは、それらのシェーダに対応するパラメータを含み、均一な値およびテクスチャを含むことができる。サードパーティは、データ資産をプラットフォームに提供することができる(たとえば、SDK内にパッケージ化されている)。例として、データ資産は、ソフトウェア開発キットを使用して構築された1つまたは複数のレンダリング効果シェーダを含むことができる。受信したデータ資産は記憶することができる。次いで、拡張現実レンダリング体験を促進するためにデータ資産を使用することができ、データ資産は拡張現実試着体験を生成する際に役立つ。
データ資産取得のためのシステムおよび方法は、1つまたは複数のシステムまたはデバイスが関与する場合がある。第1のコンピューティングデバイスは、サーバ、促進コンピューティングデバイス、または仲介コンピューティングデバイスであってもよい。第2のコンピューティングデバイスは、サードパーティのコンピューティングデバイスであってもよい。サードパーティは、ビデオゲーム会社、製品メーカ、または製品ブランドとすることができる。第1のコンピューティングデバイスと第2のコンピューティングデバイスは、ユーザのために拡張現実レンダリング体験を生成するために、データを交換することができる。拡張現実レンダリング体験は、1つまたは複数の製品または品目を含む拡張現実ビューのレンダリングを含むことができる。製品は、化粧品(たとえば、口紅、アイシャドウなど)、家具もしくは他の家庭用品(たとえば、電子機器、調理器具、ガラス製品、装飾品、植物など)、衣類、ペイントカラー、自動車、様々な電子機器、または他の品目であり得る。
データ資産の取得は、第1のコンピューティングデバイスがソフトウェア開発キットを第2のコンピューティングデバイスに送信することを含むことができる。ソフトウェア開発キットは、レンダリング効果シェーダを構築するためのテンプレートを含むことができる。ソフトウェア開発キットは、例示的な効果、レンダリング効果を構築するためのツール、および拡張現実レンダリングを構築するために役立つプレビューモードを含むことができる。第2のコンピューティングデバイスは、レンダリング効果を構築するために使用することができ、レンダリング効果が構築されると、第2のコンピューティングデバイスは、構築されたレンダリング効果データを、レンダリング効果を再作成するために必要なデータ資産を含めることができるレンダリング可能な圧縮ファイル(たとえば、.ZIPファイル)にエクスポートすることができる。次いで、データ資産を第1のコンピューティングデバイスに送信することができる。第1のコンピューティングデバイスは、データ資産を受信すると、ユーザに提供される拡張現実レンダリング体験において使用するためにデータ資産を記憶することができる。提供される拡張現実レンダリング体験は、ユーザに提供することができ、ユーザは、処理のためにユーザデータを入力することができ、出力は、第2のコンピューティングデバイス上に構築されたレンダリング効果を含む拡張ユーザデータとすることができる。ユーザデータは、ユーザデバイスによってキャプチャされた画像データまたはビデオデータであり得る。いくつかの実装形態では、ユーザデータはライブカメラフィードであり得る。
いくつかの実装形態では、1つまたは複数のレンダリング効果シェーダは、レンダリング機能を記述するデータを含むことができる。拡張現実体験のためのレンダリング効果をレンダリングするために、1つまたは複数のレンダリング効果シェーダが使用され得る。たとえば、拡張現実を使用して顔に口紅をレンダリングすることは、口紅シェーダ、テクスチャ、ユニフォーム、およびフィルタリングシェーダの利用を含むことができる。いくつかの実装形態では、レンダリング効果を生成する際に支援するために、テクスチャとユニフォームをシェーダに入力することができる。いくつかの実装形態では、データ資産はレンダリング効果シェーダを含むことができる。いくつかの実装形態では、レンダリング効果シェーダは、レンダリングされた画像を生成するために、ユーザデータとともにレンダリング計算機によって処理することができる。
いくつかの実装形態では、拡張現実レンダリングの生成を容易にするために、受信したデータ資産を使用することができる。メッシュモデルは、メッシュおよびセグメンテーションマスクを生成するために、入力データを処理できる場合がある。次いで、拡張モデルはメッシュおよびセグメンテーションマスクを受信し得、特定のレンダリングをどこでどのようにレンダリングするかを決定するためにデータ資産を使用することができる。たとえば、データ資産は、アンカーランドマークデータを含むことができる。したがって、どこでレンダリングを行う必要があるかを決定するために、データ資産を使用することができる。いくつかの実装形態では、データ資産はシェーダデータを含むことができる。シェーダデータは、ユーザに対するメイクアップ拡張現実レンダリングを生成する際に支援するために、口紅の色またはアイシャドウの色を記述してもよい。さらに、シェーダデータは、製品の色、光沢度、不透明度、および/または他の様々な特性を記述し得る。
拡張現実レンダリング体験は、データ資産に少なくとも部分的に基づいてレンダリングを生成するレンダリング計算機を含むことができる。いくつかの実装形態では、拡張現実レンダリング体験はレンダリングエンジンを含むことができ、レンダリングエンジンはレンダリング計算機を含むことができる。
拡張現実レンダリング体験は、知覚サブグラフとレンダリングサブグラフを含み得る。知覚サブグラフはシステム全体で均一にすることができる。知覚サブグラフは、様々な異なるレンダリングサブグラフとともに使用され得る。レンダリングサブグラフは、ユーザに提供するレンダリング効果を生成するために、サードパーティによって構築することができる。レンダリングサブグラフは、構築され、次いで、知覚サブグラフを記憶する拡張現実レンダリング体験プラットフォームによって使用され得る。レンダリングサブグラフは、レンダリング効果とサードパーティによって異なる場合がある。いくつかの実装形態では、拡張されたユーザ画像またはビデオにおいて複数のレンダリングをレンダリングするために単一の知覚サブグラフを複数のレンダリングサブグラフとともに使用することができる。たとえば、顔の口紅、アイシャドウ、およびマスカラの拡張現実レンダリングを生成するために、ユーザの顔の写真またはビデオを処理することができる。処理は、単一の知覚サブグラフを含み得るが、それぞれの製品(すなわち、口紅、アイシャドウ、およびマスカラ)のレンダリングサブグラフを含み得る。
いくつかの実装形態では、データ資産は、サードパーティによって販売される製品を記述する製品データを含むことができる。いくつかの実装形態では、本明細書に開示されるシステムおよび方法は、消費者が様々な異なるブランドまたはプロバイダからの異なる製品を仮想試着できるように、小売業者向けの製品拡張現実レンダリング体験をコンパイルするために使用することができる。小売業者はオンライン小売業者であり、消費者は自宅で快適に製品を仮想的に試着することができる。いくつかの実装形態では、小売業者は物理的な店舗小売業者であってもよく、その場合、拡張現実体験は、店舗内にあるモバイルアプリケーションまたはコンピューティングデバイスを通じて有効にすることができる。いくつかの実装形態では、本明細書で開示されるシステムおよび方法は、消費者が製品のブランド、製品のタイプ、製品の色などを検索し得る検索エンジンアプリケーション内での拡張現実レンダリング体験を可能にすることができ、検索エンジンは、検索クエリに基づいて結果を提供することができ、その結果は、拡張現実を使用して決定された結果を試着するオプションを含む。
いくつかの実装形態では、受信したデータ資産により、様々な拡張現実体験を生成できるようになる。たとえば、データ資産は、家庭内で自社の製品のうちの1つまたは複数をレンダリングする際に役立つように、家具または他の家庭用品の製造業者、流通業者、販売業者などによって生成されたデータ資産を含むことができる。この実装形態では、サードパーティがソフトウェア開発キットを修正および微調整して、家具または他の家庭用品の拡張現実体験を生成できるようにし得る。サードパーティが生成された体験に満足した場合、記憶するために、データ資産を促進システム/プラットフォームにエクスポートして送信し得る。促進システムは、ユーザが拡張現実レンダリング体験にアクセスできるようにするために、データ資産を使用することができる。
拡張現実レンダリングは、ユーザデータを受信することと、ユーザメッシュを生成するためにユーザデータをエンコーダモデルで処理することと、拡張現実レンダリングを生成するためにユーザメッシュを拡張モデルで処理することとを行うことによって、生成することができる。いくつかの実装形態では、メッシュは多角形メッシュであり得る。いくつかの実装形態では、拡張モデルは、データ資産に少なくとも部分的に基づくシェーダを含むことができる。いくつかの実装形態では、拡張モデルは、カスタムシェーダを使用して多角形メッシュをレンダリングし、カメラフィード画像に重ね合わせることによって拡張現実レンダリングを生成することができる。
いくつかの実装形態では、システムおよび方法は、ソフトウェア開発キットを取り込んで修正するサードパーティのコンピューティングデバイスを含むことができる。本方法は、拡張現実体験を生成するために修正されるように構成されたソフトウェア開発キットを受信するステップを含むことができる。さらに、本方法は、ソフトウェア開発キットを修正するために1つまたは複数の入力を受信するステップを含むことができ、ソフトウェア開発キットを修正するステップは、製品固有の拡張現実体験を生成する。本方法は、1つまたは複数の入力に少なくとも部分的に基づいてデータ資産を生成するステップと、データ資産を第2のコンピューティングデバイスに送信するステップを含むことができる。
いくつかの実装形態では、サードパーティのコンピューティングデバイスは、微調整のために拡張現実体験をテストし得る。拡張現実体験のテストは、レンダリングされた画像と事前レンダリングされた参照(「ゴールデン」)画像とを比較することを含むことができる。あるいは、いくつかの実装形態では、テストは、トレーニングデータを入手することと、拡張現実メディアを生成するためにトレーニングデータを拡張現実体験で処理することと、拡張現実メディアと参照データを比較することとを含むことができる。データ資産の1つまたは複数のパラメータは、比較に少なくとも部分的に基づいて(たとえば、拡張現実メディアと参照データとを比較する損失関数に基づいて)調整することができる(たとえば、機械学習アルゴリズムを使用して自動的に)。
いくつかの実装形態では、システムおよび方法は、コードを難読化するために、受信したデータ資産を処理し得る。難読化は、コードから空白を削除することと、コードから1つまたは複数のコメントを削除することと、コード内の用語および記号を名前変更することとを含むことができる。1つまたは複数のコメントは、コードのセマンティクスを記述するテキストを含み得るため、削除され得る。データ資産のコード内の1つまたは複数の用語を名前変更するステップは、ファイル全体での均一な名前変更を含むことができる。均一な名前変更プロセスは、将来の均一な名前変更のための参照を提供するためのインデックス用語を含むことができる。いくつかの実装形態では、名前変更はハッシュ関数の使用を含むことができる。ハッシュは、グローバルレジストリまたはインデックステーブルにおいてインデックス付けされ得る。新しい記号は、受信時にインデックスにアクティブに追加され得る。名前変更された用語および記号は、決定的な用語である可能性がある。いくつかの実装形態では、システムは複数のファイル間で共有される関数名などの記号を名前変更することができる。
名前変更は、シェーダコードの解析と、置換する特定の宣言の分離が含まれる場合がある。空白を削除すると、特定の方法でフォーマットコードに含まれる一部のロジックを削除するために、コードの編成を削除することができる。難読化は、サードパーティが公開したくないシェーダ情報(たとえば、OpenGLコード、GLSL、または他のネイティブソースにある機密情報)を含む可能性のあるセマンティックコンテンツを削除することを含むことができる。
いくつかの実装形態では、プラットフォームは、製品レンダリングのディレクトリを生成するために使用することができる。広告、ビデオウェブアプリケーション、またはモバイルアプリのレンダリングを提供するために、拡張現実レンダリングのディレクトリを実装することができる。いくつかの実装形態では、共有コードがライブラリの依存関係としてディレクトリに統合され得る。
データ資産の受信または取込みは、様々な方法を通じて行うことができる。いくつかの実装形態では、プラットフォームに組み込まれたエクスポート機能を通じて取込みを行うことができる。他の実装形態では、データ資産は、単一のトップレベルファイルにおいて定義されたシェーダユニフォームによってパラメータ化された単一の効果テンプレートを電子メールで送信することを通じて配信することができる。たとえば、口紅のレンダリングの場合、サードパーティは、ユーザに提供したい口紅製品ごとにシェーダ均一値を送信することができる。このシステムおよび方法は、効果テンプレートと製品ごとのシェーダユニフォームを組み合わせて、製品ごとにAR効果(たとえば、美容効果)を生成することができる。いくつかの実装形態では、電子メールの代わりにインターネットベースのデータフィードを通じてデータ資産を取り込むことができる。データ資産は個別に取り込むことも、まとめて取り込むこともできる。
いくつかの実装形態では、ソフトウェア開発キットは、様々な製品タイプに合わせて構成することができる。たとえば、口紅をレンダリングするためのデータ資産を構築するためのソフトウェア開発キットには、ソファをレンダリングするためのデータ資産を構築するためのソフトウェア開発キットとは異なるテンプレートおよびプリセットを含むことができる。さらに、美容効果を共有の「テンプレート」および製品ごとの複数のプリセットに編成することで、サードパーティが特定の製品をレンダリングするためのデータ資産を構築する際に役立つ。テンプレートは、特定のファミリにおけるすべての製品(たとえば、ベンダAからのすべての口紅など)に共通のシェーダおよび他のリソースを含むことができる。プリセットは、それらのシェーダに対応するパラメータを含むことができ、均一な値およびテクスチャを含むことができる。
いくつかの実装形態では、本明細書で開示されるシステムおよび方法は、ネイティブアプリケーションとして実装することができる。ネイティブアプリケーションは、クライアントによって選択されるサードパーティ製品のレンダリングを含む拡張現実レンダリング体験をクライアントに提供することができる。
本明細書で開示されるシステムおよび方法はまた、複合現実を含む他の技術に適用可能である。いくつかの実装形態では、インタラクティブなレンダリングを構築するために、サードパーティがソフトウェア開発キットを使用することができる。たとえば、家具ブランドは、様々なリクライニングチェアや様々な拡張可能なテーブルに対して様々なレンダリング効果を構築し得る。ユーザが自宅において家具をレンダリングできる複合現実レンダリング体験を提供するために、レンダリング効果シェーダを拡張現実レンダリング体験プラットフォームに転送することができる。次いで、ユーザは、デフォルトの位置および別の位置における家具のレンダリングを確認するために、レンダリングと対話することができる。したがって、ユーザは、リクライニングチェアが直立位置とリクライニング位置で自宅にどのように適合し得るかをテストすることができる。ユーザは、拡張されたテーブルが所与の部屋に収まるかどうかを決定するために、複合現実体験を使用することができる。
さらに、データ資産の取得および難読化のプラットフォームは、サポートされるユーザ体験を生成するために他の様々なプラットフォームに適用することができる。データ取得用のプラットフォームは、サポートされるアプリケーションの作成、組込み機能の作成、およびウィジェットの作成に利用することができる。
さらに、いくつかの実装形態では、システムおよび方法は、視覚的な互換性計算機として使用され得る。たとえば、システムおよび方法は、特定の製品または部品が所望の空間または場所に適合することを保証するために使用することができる。システムおよび方法は、仮想現実を使用して製品の寸法/サイズを仮想的にテストするために使用することができる。サードパーティは、製品の測定値を記述するデータを含むデータ資産を提供することができる。次いで、データ資産は、サードパーティによって提供される測定値に従って製品がレンダリングされる拡張現実レンダリング体験をユーザに提供するために使用することができる。この態様により、製品が占有する空間を視覚化するために、消費者は製品を「試着」することができる。
本開示のシステムおよび方法は、多くの技術的効果および利点を提供する。一例として、システムおよび方法は、クライアントがアプリケーションにおいて製品を仮想的に見ることを可能にするために、拡張現実のためのパラメータをサードパーティから受信することができる。このシステムおよび方法は、サードパーティから提供されるデータのセキュリティを確保するためにさらに使用することもできる。さらに、このシステムおよび方法により、ユーザが、ウェブサイトからウェブサイトへ、または独自のアプリケーションから独自のアプリケーションへと移動することなく、複数のベンダからの製品を試着できるようにするために、様々なベンダからの仮想試着用の拡張現実データセットの一元的な収集が可能になる。
さらに、いくつかの実装形態では、開示されたシステムおよび方法は、ネイティブアプリケーションに実装することができる。ネイティブアプリケーションにおけるシステムおよび方法の実装形態により、ウェブアプリケーションの代替と比較して、より高いフレームレートとより現実的なレンダリングを提供することができる。
本開示のシステムおよび方法の別の技術的利点は、コード(たとえば、シェーダコード)を難読化できることである。このシステムおよび方法により、最初に提供されたソースコードに含まれる機密情報を漏らすコメントまたは記号なしでコードがクラスタ化される可能性がある。このシステムおよび方法は受信したデータ資産を難読化することもできるため、サードパーティは特定の機密情報を漏らすことなくデータを提供することができる。
次に、図面を参照して、本開示の例示的な実施形態をさらに詳細に説明する。
例示的なデバイスおよびシステム
図1Aは、本開示の例示的な実施形態による、データ資産取得を実行する例示的なコンピューティングシステム80のブロック図を示している。システム80は、クライアントコンピューティングシステム20、拡張現実プラットフォーム30、およびサードパーティコンピューティングシステムを含む。
図1Aに示されるように、拡張現実プラットフォーム30は、サードパーティ拡張現実(AR)資産ライブラリ40を生成するために、サードパーティコンピューティングシステム60と通信することができる。クライアントインターフェース32を介してクライアントコンピューティングシステム20に拡張現実(AR)体験を提供するために、サードパーティAR資産ライブラリ40を活用することができる。
たとえば、拡張現実プラットフォーム30は、テンプレートを備えたソフトウェア開発キット(SDK)をサードパーティコンピューティングシステム60に提供することができる。サードパーティコンピューティングシステム60は、サードパーティによって販売される製品を記述する拡張現実レンダリング効果を構築するために、テンプレートを備えたSDKを使用することができる。完成したレンダリング効果は、完成したデータ資産として拡張現実プラットフォーム30に戻すことができる。完成した各データ資産は、拡張現実プラットフォーム30のサードパーティAR資産ライブラリ40に記憶することができる。サードパーティAR資産ライブラリ40に記憶されている製品資産は、単一のサードパーティからのものであってもよく、多数のサードパーティからのものであってもよい。たとえば、製品1資産42、製品2資産44から、製品N資産46に至るまでは、単一のサードパーティコンピューティングシステムからのものであってよく、サードパーティによって提供される様々な製品を含むことができる。あるいは、製品1資産42および製品2資産44は、異なるサードパーティによって提供することができ、異なるブランドの異なる製品を記述するデータ資産を含むことができる。
拡張現実プラットフォーム30は、レンダリングエンジン34によって処理されて、AR体験をクライアントコンピューティングシステム20に提供するために、クライアントインターフェース32を介してクライアントデータを取り込むことができる。レンダリングエンジン34は、知覚モデルおよび拡張モデルを用いてクライアントデータを処理することができる。知覚モデルは、拡張モデルに入力することができる1つまたは複数のメッシュと1つまたは複数のセグメンテーションマスクを出力することができる。拡張モデルは、拡張現実クライアント画像またはビデオを出力するためにクライアントデータ、1つまたは複数のメッシュ、および1つまたは複数のセグメンテーションマスクを処理することができ、これは、クライアントインターフェース32を介してクライアントコンピューティングシステム20に送信することができる。
いくつかの実装形態では、AR体験は、「試着」する所望の製品を示すために、クライアントコンピューティングシステム20が拡張現実プラットフォーム30に選択を送信することを含むことができる。拡張現実プラットフォームは、データ資産を使用してレンダリングエンジン34の拡張モデルをパラメータ化することによって、クライアントが提供する画像またはビデオにおいて製品をレンダリングするために、サードパーティのAR資産ライブラリ40からの記憶されたデータ資産を使用することができる。たとえば、クライアントコンピューティングシステム20は、仮想的に試着する製品1を選択するために、クライアントインターフェース32を使用し得る。製品1資産42は、クライアントデータのセットとともにレンダリングエンジン34に提供され得る。レンダリングエンジン34は、クライアントコンピューティングシステム20によって提供される画像またはビデオにおいて製品1の画像またはビデオを生成するために、クライアントデータのセットおよび製品1資産42を処理することができる。
図1Bは、本開示の例示的な実施形態による、データ資産の取得および難読化を実行する例示的なコンピューティングシステム100のブロック図を示している。システム100は、ネットワーク180を介して通信可能に結合されたユーザコンピューティングデバイス102、サーバコンピューティングシステム130、およびトレーニングコンピューティングシステム150を含む。
ユーザコンピューティングデバイス102は、たとえば、パーソナルコンピューティングデバイス(たとえば、ラップトップもしくはデスクトップ)、モバイルコンピューティングデバイス(たとえば、スマートフォンもしくはタブレット)、ゲームコンソールもしくはコントローラ、ウェアラブルコンピューティングデバイス、組込みコンピューティングデバイス、または任意の他のタイプのコンピューティングデバイスなどの、任意のタイプのコンピューティングデバイスであり得る。
ユーザコンピューティングデバイス102は、1つまたは複数のプロセッサ112およびメモリ114を含む。1つまたは複数のプロセッサ112は、任意の適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサまたは動作可能に接続された複数のプロセッサであり得る。メモリ114は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的コンピュータ可読ストレージ媒体を含むことができる。メモリ114は、ユーザコンピューティングデバイス102に動作を実行させるためにプロセッサ112によって実行されるデータ116および命令118を記憶することができる。
いくつかの実装形態では、ユーザコンピューティングデバイス102は、1つまたは複数の拡張現実レンダリングモデル120を記憶または含むことができる。たとえば、拡張現実レンダリングモデル120は、ニューラルネットワーク(たとえば、ディープニューラルネットワーク)または非線形モデルおよび/もしくは線形モデルを含む他のタイプの機械学習モデルなどの様々な機械学習モデルであってもよく、そうでなければそれを含むことができる。ニューラルネットワークは、フィードフォワードニューラルネットワーク、リカレントニューラルネットワーク(たとえば、長期短期記憶リカレントニューラルネットワーク)、畳み込みニューラルネットワーク、または他の形式のニューラルネットワークを含むことができる。例示的な拡張現実レンダリングモデル120については、図2および図4を参照して説明する。
いくつかの実装形態では、1つまたは複数の拡張現実レンダリングモデル120は、ネットワーク180を介してトレーニングコンピューティングシステム150から受信され、ユーザコンピューティングデバイスメモリ114に記憶され、次いで、1つまたは複数のプロセッサ112によって使用または実装されるデータ資産を含むことができる。いくつかの実装形態では、ユーザコンピューティングデバイス102は、単一の拡張現実レンダリングモデル120の複数の並列インスタンスを実装することができる(たとえば、効果の並列レンダリングを実行するために)。
より具体的には、サーバコンピューティングシステム130およびトレーニングコンピューティングシステム150は、拡張現実レンダリングモデルが画像またはビデオデータを処理し、拡張画像データまたは拡張ビデオデータを出力できるようにすることができるデータ資産を生成するために、データを交換することができる。
さらに、または代わりに、1つまたは複数の拡張現実レンダリングモデル140は、クライアント-サーバ関係に従ってユーザコンピューティングデバイス102と通信するサーバコンピューティングシステム130に含まれるか、またはそれによって記憶および実装され得る。たとえば、拡張現実レンダリングモデル140は、ウェブサービス(たとえば、メイクアップ、衣類、電子機器、自動車、または家具もしくは他の家庭用品の「ライブ試着」サービス)の一部としてサーバコンピューティングシステム130によって実装することができる。したがって、1つもしくは複数のモデル120をユーザコンピューティングデバイス102に記憶および実装することができ、ならびに/または1つもしくは複数のモデル140をサーバコンピューティングシステム130に記憶および実装することができる。
ユーザコンピューティングデバイス102はまた、ユーザ入力を受信する1つまたは複数のユーザ入力コンポーネント122を含むこともできる。たとえば、ユーザ入力コンポーネント122は、ユーザ入力オブジェクト(たとえば、指またはスタイラス)のタッチを感知するタッチ感知コンポーネント(たとえば、タッチ感知表示画面またはタッチパッド)であり得る。タッチ感知コンポーネントは、仮想キーボードを実装するために機能する。他の例示的なユーザ入力コンポーネントは、マイク、従来のキーボード、またはユーザがユーザ入力を提供することができる他の手段を含む。
サーバコンピューティングシステム130は、1つまたは複数のプロセッサ132およびメモリ134を含む。1つまたは複数のプロセッサ132は、任意の適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサまたは動作可能に接続された複数のプロセッサであり得る。メモリ134は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的コンピュータ可読ストレージ媒体を含むことができる。メモリ134は、サーバコンピューティングシステム130に動作を実行させるためにプロセッサ132によって実行されるデータ136および命令138を記憶することができる。
いくつかの実装形態では、サーバコンピューティングシステム130は、1つまたは複数のサーバコンピューティングデバイスを含むか、またはそれによって実装される。サーバコンピューティングシステム130が複数のサーバコンピューティングデバイスを含む場合、そのようなサーバコンピューティングデバイスは、逐次コンピューティングアーキテクチャ、並列コンピューティングアーキテクチャ、またはそれらの何らかの組合せに従って動作することができる。
上述したように、サーバコンピューティングシステム130は、1つまたは複数の機械学習された拡張現実レンダリングモデル140を記憶するか、またはそれを含むことができる。たとえば、モデル140は、様々な機械学習されたモデルであってもよく、そうでなければそれを含むこともできる。例示的な機械学習モデルは、ニューラルネットワークまたは他の多層非線形モデルを含む。ニューラルネットワークの例は、フィードフォワードニューラルネットワーク、ディープニューラルネットワーク、リカレントニューラルネットワーク、畳み込みニューラルネットワークなどを含む。例示的なモデル140については、図2および図4を参照して説明する。
ユーザコンピューティングデバイス102および/またはサーバコンピューティングシステム130は、ネットワーク180を介して通信可能に結合されたトレーニングコンピューティングシステム150との対話を介して、モデル120および/または140をトレーニングすることができる。トレーニングコンピューティングシステム150は、サーバコンピューティングシステム130とは別個であってもよく、またはサーバコンピューティングシステム130の一部であってもよい。
トレーニングコンピューティングシステム150は、1つまたは複数のプロセッサ152およびメモリ154を含む。1つまたは複数のプロセッサ152は、任意の適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサまたは動作可能に接続された複数のプロセッサであり得る。メモリ154は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的コンピュータ可読ストレージ媒体を含むことができる。メモリ154は、トレーニングコンピューティングデバイス150に動作を実行させるためにプロセッサ152によって実行されるデータ156および命令158を記憶することができる。いくつかの実装形態では、トレーニングコンピューティングデバイス150は、1つまたは複数のサーバコンピューティングデバイスを含むか、またはそれによって実装される。
トレーニングコンピューティングシステム150は、たとえば誤差の逆方向伝播などの様々なトレーニングまたは学習技法を使用して、ユーザコンピューティングデバイス102および/またはサーバコンピューティングシステム130に記憶された機械学習モデル120および/または140をトレーニングするモデルトレーナ160を含むことができる。たとえば、損失関数は、(たとえば、損失関数の勾配に基づいて)モデルの1つまたは複数のパラメータを更新するために、モデルを通じて逆伝播され得る。平均二乗誤差、尤度損失、クロスエントロピ損失、ヒンジ損失、および/または他の様々な損失関数など、様々な損失関数を使用することができる。トレーニングを何回も繰り返してパラメータを繰り返し更新するために、勾配降下法を使用することができる。
いくつかの実装形態では、誤差の逆伝播の実行は、時間の経過に伴う切捨て逆伝播の実行を含むことができる。モデルトレーナ160は、トレーニングされているモデルの一般化能力を向上させるために、多くの一般化技法(たとえば、重みの減衰、ドロップアウトなど)を実行することができる。
特に、モデルトレーナ160は、トレーニングデータ162のセットに基づいて、拡張現実レンダリングモデル120および/または140をトレーニングすることができる。トレーニングデータ162は、たとえば、ソフトウェア開発キットを使用してサードパーティによって構築されたシェーダを含むことができ、この場合、サードパーティは、促進コンピューティングデバイスまたはサーバコンピューティングシステム130からソフトウェア開発キットを受信した。サードパーティは、ソフトウェア開発キットを使用して拡張現実体験を構築およびテストすることによって、シェーダおよびデータ資産を生成した可能性がある。
いくつかの実装形態では、ユーザが同意した場合、ユーザコンピューティングデバイス102によってトレーニング例を提供することができる。したがって、そのような実装形態では、ユーザコンピューティングデバイス102に提供されるモデル120は、ユーザコンピューティングデバイス102から受信したユーザ固有のデータに基づいてトレーニングコンピューティングシステム150によってトレーニングすることができる。場合によっては、このプロセスをモデルのパーソナライズと呼ぶことができる。
モデルトレーナ160は、所望の機能を提供するために利用されるコンピュータロジックを含む。モデルトレーナ160は、ハードウェア、ファームウェア、および/または汎用プロセッサを制御するソフトウェアにおいて実装することができる。たとえば、いくつかの実装形態では、モデルトレーナ160は、ストレージデバイスに記憶され、メモリにロードされ、1つまたは複数のプロセッサによって実行されるプログラムファイルを含む。他の実装形態では、モデルトレーナ160は、RAMハードディスク、または光学媒体もしくは磁気媒体などの有形のコンピュータ可読ストレージ媒体に記憶されるコンピュータ実行可能命令の1つまたは複数のセットを含む。
ネットワーク180は、ローカルエリアネットワーク(たとえば、イントラネット)、ワイドエリアネットワーク(たとえば、インターネット)、またはそれらの何らかの組合せなどの任意のタイプの通信ネットワークであり得、任意の数のワイヤードまたはワイヤレスリンクを含むことができる。一般に、ネットワーク180上の通信は、様々な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTP)、エンコーディングもしくはフォーマット(たとえば、HTML、XML)、および/または保護スキーム(たとえば、VPN、セキュアHTTP、SSL)を使用して、あらゆる種類のワイヤードおよび/またはワイヤレス接続を介して伝送することができる。
本明細書に置いて記述されている機械学習モデルは、様々なタスク、アプリケーション、および/またはユースケースにおいて使用され得る。
いくつかの実装形態では、本開示の機械学習モデルへの入力は画像データであり得る。機械学習モデルは、出力を生成するために画像データを処理することができる。一例として、機械学習モデルは、画像認識出力(たとえば、画像データの認識、画像データの潜在的な埋込み、画像データのエンコードされた表現、画像データのハッシュなど)を生成するために、画像データを処理することができる。別の例として、機械学習モデルは、画像セグメンテーション出力を生成するために、画像データを処理することができる。別の例として、機械学習モデルは、画像分類出力を生成するために、画像データを処理することができる。別の例として、機械学習モデルは、画像データ修正出力(たとえば、画像データの変更など)を生成するために、画像データを処理することができる。別の例として、機械学習モデルは、エンコードされた画像データ出力(たとえば、画像データのエンコードされた、および/または圧縮された表現など)を生成するために、画像データを処理することができる。別の例として、機械学習モデルは、アップスケールされた画像データ出力を生成するために画像データを処理することができる。別の例として、機械学習モデルは、予測出力を生成するために画像データを処理することができる。
いくつかの実装形態では、本開示の機械学習モデルへの入力は、テキストまたは自然言語データであり得る。機械学習モデルは、出力を生成するために、テキストまたは自然言語データを処理することができる。一例として、機械学習モデルは、言語エンコード出力を生成するために自然言語データを処理することができる。別の例として、機械学習モデルは、潜在的なテキスト埋込み出力を生成するためにテキストまたは自然言語データを処理することができる。別の例として、機械学習モデルは、翻訳出力を生成するためにテキストまたは自然言語データを処理することができる。別の例として、機械学習モデルは、分類出力を生成するためにテキストまたは自然言語データを処理することができる。別の例として、機械学習モデルは、テキストのセグメンテーション出力を生成するために、テキストまたは自然言語データを処理することができる。別の例として、機械学習モデルは、セマンティック意図出力を生成するために、テキストまたは自然言語データを処理することができる。別の例として、機械学習モデルは、アップスケールされたテキストまたは自然言語出力(たとえば、入力テキストまたは自然言語よりも高品質のテキストまたは自然言語データなど)を生成するために、テキストまたは自然言語データを処理することができる。別の例として、機械学習モデルは、予測出力を生成するために、テキストまたは自然言語データを処理することができる。
いくつかの実装形態では、本開示の機械学習モデルへの入力は、潜在的なエンコーディングデータ(たとえば、入力の潜在的な空間表現など)であり得る。機械学習モデルは、出力を生成するために、潜在的なエンコーディングデータを処理することができる。一例として、機械学習モデルは、認識出力を生成するために、潜在的なエンコーディングデータを処理することができる。別の例として、機械学習モデルは、再構築出力を生成するために、潜在的なエンコーディングデータを処理することができる。別の例として、機械学習モデルは、検索出力を生成するために、潜在的なエンコーディングデータを処理することができる。別の例として、機械学習モデルは、再クラスタリング出力を生成するために、潜在的なエンコーディングデータを処理することができる。別の例として、機械学習モデルは、予測出力を生成するために、潜在的なエンコーディングデータを処理することができる。
いくつかの実装形態では、本開示の機械学習モデルへの入力は、センサデータであり得る。機械学習モデルは、出力を生成するためにセンサデータを処理することができる。一例として、機械学習モデルは、認識出力を生成するためにセンサデータを処理することができる。別の例として、機械学習モデルは、予測出力を生成するためにセンサデータを処理することができる。別の例として、機械学習モデルは、分類出力を生成するためにセンサデータを処理することができる。別の例として、機械学習モデルは、セグメンテーション出力を生成するためにセンサデータを処理することができる。別の例として、機械学習モデルは、セグメンテーション出力を生成するためにセンサデータを処理することができる。別の例として、機械学習モデルは、視覚化出力を生成するためにセンサデータを処理することができる。別の例として、機械学習モデルは、診断出力を生成するためにセンサデータを処理することができる。別の例として、機械学習モデルは、検出出力を生成するためにセンサデータを処理することができる。
場合によっては、機械学習モデルは、信頼性の高いおよび/または効率的な送信もしくは記憶(および/または対応するデコーディング)のために入力データをエンコードすることを含むタスクを実行するように構成することができる。別の例では、入力は視覚データ(たとえば、1つまたは複数の画像またはビデオ)を含み、出力は圧縮視覚データを備え、タスクは視覚データ圧縮タスクである。別の例では、タスクは、入力データ(たとえば、視覚データ)の埋込みを生成することを備え得る。
場合によっては、入力は視覚データを含み、タスクはコンピュータビジョンタスクである。場合によっては、入力は1つまたは複数の画像のピクセルデータを含み、タスクは画像処理タスクである。たとえば、画像処理タスクは画像分類であり、出力はスコアのセットであり、各スコアは異なるオブジェクトクラスに対応し、1つまたは複数の画像がそのオブジェクトクラスに属するオブジェクトを描写する可能性を表す。画像処理タスクはオブジェクト検出であってもよく、画像処理出力は、1つまたは複数の画像内の1つまたは複数の領域、および領域ごとに、その領域が対象のオブジェクトを表す可能性を識別する。別の例として、画像処理タスクは画像セグメンテーションであってよく、画像処理出力は、1つまたは複数の画像内のピクセルごとに、あらかじめ定められたカテゴリのセット内のカテゴリごとのそれぞれの可能性を定義する。たとえば、カテゴリのセットは前景と背景にすることができる。別の例として、カテゴリのセットをオブジェクトクラスにすることができる。別の例として、画像処理タスクは深度推定であり、画像処理出力は、1つまたは複数の画像内のピクセルごとに、それぞれの深度値を定義する。別の例として、画像処理タスクは動き推定であり、ネットワーク入力は複数の画像を含み、画像処理出力は入力画像のうちの1つのピクセルごとに、ネットワーク入力における画像間のピクセルに描かれたシーンの動きを定義する。
図1Bは、本開示を実装するために使用できる、1つの例示的なコンピューティングシステムを示している。他のコンピューティングシステムも同様に使用することができる。たとえば、いくつかの実装形態では、ユーザコンピューティングデバイス102は、モデルトレーナ160およびトレーニングデータセット162を含むことができる。このような実装形態では、モデル120は、ユーザコンピューティングデバイス102において、ローカルにトレーニングおよび使用の両方を行うことができる。そのような実装形態のいくつかでは、ユーザコンピューティングデバイス102は、ユーザ固有のデータに基づいてモデル120をパーソナライズするために、モデルトレーナ160を実装することができる。
図1Cは、本開示の例示的な実施形態に従って実行する例示的なコンピューティングデバイスのブロック図を示している。コンピューティングデバイス10は、ユーザコンピューティングデバイスであってもよく、サーバコンピューティングデバイスであってもよい。
コンピューティングデバイス10は、多数のアプリケーション(たとえば、アプリケーション1からN)を含む。各アプリケーションは、独自の機械学習ライブラリと機械学習モデルとを含む。たとえば、各アプリケーションは機械学習モデルを含むことができる。例示的なアプリケーションは、テキストメッセージングアプリケーション、電子メールアプリケーション、ディクテーションアプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどを含む。
図1Cに示されるように、各アプリケーションは、たとえば、1つまたは複数のセンサ、コンテキストマネージャ、デバイス状態コンポーネント、および/または追加のコンポーネントなどの、コンピューティングデバイスの他の多くのコンポーネントと通信することができる。いくつかの実装形態では、各アプリケーションは、API(たとえば、パブリックAPI)を使用して各デバイスコンポーネントと通信することができる。いくつかの実装形態では、各アプリケーションによって使用されるAPIはそのアプリケーションに固有である。
図1Dは、本開示の例示的な実施形態に従って実行する例示的なコンピューティングデバイス50のブロック図を示している。コンピューティングデバイス50は、ユーザコンピューティングデバイスであってもよく、サーバコンピューティングデバイスであってもよい。
コンピューティングデバイス50は、多数のアプリケーション(たとえば、アプリケーション1からN)を含む。各アプリケーションは中央のインテリジェンス層と通信する。例示的なアプリケーションは、テキストメッセージングアプリケーション、電子メールアプリケーション、ディクテーションアプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどを含む。いくつかの実装形態では、各アプリケーションは、API(たとえば、すべてのアプリケーションにわたる共通のAPI)を使用して、中央インテリジェンス層(およびそこに記憶されたモデル)と通信することができる。
中央インテリジェンス層には、多数の機械学習モデルを含む。たとえば、図1Dに示されるように、それぞれの機械学習モデル(たとえば、モデル)をアプリケーションごとに提供し、中央インテリジェンス層によって管理することができる。他の実装形態では、2つ以上のアプリケーションが単一の機械学習モデルを共有することができる。たとえば、いくつかの実装形態では、中央インテリジェンス層は、すべてのアプリケーションに対して単一のモデル(たとえば、単一のモデル)を提供することができる。いくつかの実装形態では、中央インテリジェンス層は、コンピューティングデバイス50のオペレーティングシステム内に含まれるか、またはそれによって実装される。
中央インテリジェンス層は、中央デバイスデータ層と通信することができる。中央デバイスデータ層は、コンピューティングデバイス50のためのデータの集中リポジトリであり得る。図1Dに示されるように、中央デバイスデータ層は、たとえば、1つまたは複数のセンサ、コンテキストマネージャ、デバイス状態コンポーネント、および/または追加のコンポーネントなどの、コンピューティングデバイスの他の多くのコンポーネントと通信することができる。いくつかの実装形態では、中央デバイスデータ層は、API(たとえば、プライベートAPI)を使用して各デバイスコンポーネントと通信することができる
例示的なモデル配置
いくつかの実装形態では、システムおよび方法は、レンダリングパイプラインとして使用することができる。パイプラインは、レンダリング可能な圧縮ファイル(たとえば、ZIPファイル)を構築するために必要なすべてのツールを含むことができるソフトウェア開発キット(SDK)を含むことができる。いくつかの実装形態では、圧縮ファイル(たとえば、ZIPファイル)を含むソフトウェア開発キットは、様々なプラットフォームのビューアを用いてテストすることができる。静止画像またはビデオを拡張するために、ソフトウェア開発キットを使用した構築中に生成されたソース資産を使用することができる。
ソフトウェア開発キットはサードパーティに送信することができる。サードパーティは、内向きのレンダリングパイプラインを構築してプレビューすることができる。パイプラインは、コンピュータやモバイルデバイスを使用した美容製品の試着など、様々な用途に使用することができるが、これに限定されない。
ソフトウェア開発キットには、関連付けられるバイナリを含むスクリプト、プレビューツールのセット、ドキュメント、およびサンプル効果のセットを含むことができる。スクリプトと関連付けられるバイナリは、プロダクト効果ソースをレンダリング可能な圧縮ファイルにコンパイルするために使用することができる。プレビューツールのセットは、レンダリング結果を視覚化するために使用することができる。さらに、プレビューツールは、編集とプレビューのための統合インターフェース、または2つのインターフェース間の素早い切り替えを提供することができる。ドキュメントは、構築プロセスを支援するためのレビュー用の生のHTMLまたは他の形式のドキュメントを含むことができる。サンプル効果のセットは、ベースラインを提供しながら、サードパーティがソフトウェア開発キットを理解するために役立つ。
ソフトウェア開発キットは、自己完結型で、移植が容易で、ストックハードウェア上で実行することができ、高速で、安全であるように設計することができる。ソフトウェア開発キットは、サードパーティまたは他の作成者が、他のアプリケーションに依存することなく、ソフトウェア開発キットを使用してレンダリングを構築できるように、依存関係なしで実行できるように設計することができる。バックエンドは、消費者とインターフェースするシステムによって使用されるバックエンドをミラーリングすることができる。さらに、移植が簡単なため、サードパーティは最小限の修正で、または修正を加えずに、既存のシェーダを使用することができる。さらに、ソフトウェア開発キットは、ソフトウェア開発キットの外部にソフトウェアをインストールする必要がなく、様々なオペレーティングシステム上で実行できるように設計することができる。いくつかの実装形態では、ソフトウェア開発キットは、カスタマイズのためにレンダグラフおよびGPUシェーダを開くことを可能にする機能を含むことができる。このインターフェースにより、消費者とインターフェースするシステムにサードパーティのGPUコードを実装する必要がなくなり、ユーザのセキュリティを維持することができる。ソフトウェア開発キットは、受信データを送信データに変換するために、レンダリング計算機を使用することができる。
内向きの拡張現実効果の生成は、2つのコンポーネントを含む場合がある。第1のコンポーネントは知覚を含む場合がある。知覚コンポーネントは、画像内のランドマーク(たとえば、顔の唇)のピクセル座標を計算して出力することができる。第2のコンポーネントはレンダリングコンポーネントを含む場合がある。レンダリングコンポーネントは、位置の特定を容易にする計算されたランドマークを使用して、元の受信フレームに拡張現実効果をレンダリングすることを含むことができる。次いで、結果を出力することができる。
拡張現実レンダリングのグラフは、サードパーティのサブグラフとファシリテータのサブグラフに分割することができる。ファシリテータのサブグラフは知覚サブグラフにすることができ、サードパーティのサブグラフはサードパーティとファシリテータの両方によって編集することができるレンダリングサブグラフにすることができる。分離により、レンダリングサブグラフに影響を与えることなく、ファシリテータによる知覚サブグラフの修正が可能になる。さらに、この分離により、複数の拡張現実効果がレンダリングされている場合でも、単一の知覚サブグラフを使用できるようになる。したがって、単一の知覚モデルプロセスの計算を用いて複数のレンダリングを生成するために、複数のレンダリングサブグラフが1つの知覚サブグラフに重ねられ得る。
知覚サブグラフとレンダリングサブグラフを集約すると、完全なグラフまたは拡張現実メディアを生成することができる。
サードパーティの効果ソースは、レンダリングサブグラフファイルと、サブグラフ内のレンダリング計算機によって使用される資産の1つまたは複数のディレクトリを含むことができる。
いくつかの実装形態では、ソフトウェア開発キットは知覚モデルを含み得る。ソフトウェア開発キットは、各タイプのソースファイルを処理済みの形式に変換するために、バンドルされたバイナリを呼び出すことができ、これにより、途中で発生した誤差を生成しながら、入力のディレクトリ構造を生成されたレンダリング可能な圧縮ファイルに保存することができる。グラフプロト、シェーダ、ブループリントなどの資産ファイルは、ソフトウェア開発キットに含めることができる、または効果ソースの一部である他のファイルを参照し得る。テクスチャは、変換をカスタマイズする効果ごとのimage_conversion.txtファイルに基づいてWebP形式に変換することができる。
いくつかの実装形態では、ソフトウェア開発キットで構築された製品効果は、ランタイムコンパイルのためにユーザのデバイスに提供できるGLSLシェーダを含むことができる。これらのシェーダは、サードパーティの技術プロバイダからの貴重な知的財産を表すことができる。本明細書に開示されるシステムおよび方法は、情報の保護を支援するためにシェーダを難読化することができる。難読化は、コメントと構文的に余分な空白を削除し、次いで、セマンティクスを不明瞭にするためにほとんどの予約されていない記号の名前を体系的に変更することを含むことができる。いくつかの実装形態では、難読化された記号をファイル間で均一に難読化することができる。難読化は、サードパーティパートナから入手した元のシェーダを検査およびテストした後に発生する可能性がある。
システムおよび方法は、メイクアップレンダリング、家具レンダリング、アパレルレンダリング、ビデオゲームレンダリング、および建築構造レンダリングを含むがこれらに限定されない、様々な拡張現実レンダリングに適用することができる。
図2は、本開示の例示的な実施形態による、例示的なデータ資産取得システム200のブロック図を示している。いくつかの実装形態では、データ資産取得システム200は、拡張現実レンダリング体験を構築するためのソフトウェア開発キット212を送信し、ソフトウェア開発キット212を送信した結果として、サードパーティからテンプレートおよびプリセット228を受信するようにトレーニングされる。したがって、いくつかの実装形態では、データ取得システム200は、ファシリテータ210、サードパーティ220、およびユーザ250を含むことができる。
特に、図2は、拡張現実レンダリング体験を生成する際に使用するデータ資産取得のためのシステムを示している。ファシリテータ210は、サードパーティ220と通信することによって拡張現実レンダリングのためのデータ資産をコンパイルするための促進システムであり得る。ファシリテータ210は、サーバ、ウェブアプリケーション、または促進コンピューティングシステムとすることができる。ファシリテータ210がデータ資産を受信すると、促進システムは拡張現実レンダリング体験をユーザ250に提供することができる。
データ資産の取得は、サードパーティ220に送信される、ファシリテータが構築したソフトウェア開発キット(SDK)212を含むことができる。サードパーティは、レンダリング体験を構築するために、ソフトウェア開発キット222を使用することができる。ソフトウェア開発キット222は、データ資産224をコンパイルすることができ、生成されたレンダリング体験のレンダリングプレビュー226を可能にすることができる。
サードパーティ220は、それらのデータ資産のテンプレートおよびプリセット228に対してソース修正230を行う必要がある場合には、どのような修正を行う必要があるかを決定するために、レンダリングプレビューを使用し得る。構築、テスト、および微調整が完了すると、サードパーティは、テンプレートおよびプリセット228とサードパーティメタデータ232を含むデータ資産を促進システムに送信することができる。促進システム210は、効果214を取り込み、サードパーティ220によって構築されたレンダリング効果を含むことができる拡張現実レンダリング体験を後で提供するためにそれらを記憶することができる。ファシリテータは、ユーザ250からユーザデータ252を取り込むことができ、拡張ユーザデータに含まれるレンダリング効果を含む拡張ユーザデータを出力することができる。
図3は、本開示の例示的な実施形態による、例示的な難読化300のブロック図を示している。難読化300は、データ資産を難読化するために、図2のデータ資産取得システム200に含めることができる。
より具体的には、図3は、難読化に対する3つの側面からの手法を示している。この実装形態では、難読化コード306を生成するために、難読化システム304を用いて元のコード302を難読化することができる。いくつかの実装形態では、元のコード302は、拡張現実レンダリング用のデータ資産コードであり得る。
さらに、この実装形態では、難読化システム304は、記号または用語の名前変更308、空白の削除310、およびセマンティクスに関するコメントの削除312を含むことができる。
名前変更308は、元のコードから記号および用語のインデックスを作成することと、元の記号および用語を割り当てられた記号および用語で置き換えることとを含むことができる。いくつかの実装形態では、名前変更308は、ハッシュ関数の利用を含むことができる。名前変更は、様々なファイル全体で均一にすることができる。
空白の削除310は、インデント、空白行、および改行の除去を含むことができる。空白を削除すると、コードの論理形式が不明瞭になり、コードが読みにくくなる可能性がある。
コメントの削除312は、コードセマンティクスに関連する1つまたは複数のコメントを削除することを含むことができる。難読化システムはコードを処理し、コメントがセマンティックコメントであるかどうかを決定し得る。コメントがコードのセマンティクスを説明するために役立つ場合、そのコメントは削除することができる。
これらの3つのコンポーネントにより、コードの可読性が低下すると同時に、サードパーティの記号および用語が隠蔽される可能性がある。
図4は、本開示の例示的な実施形態による例示的なデータ資産取得システム400のブロック図を示している。データ資産取得システム400は、データ資産取得システム400が美容効果レンダリング用に特に構成できることを除いて、図2のデータ資産取得システム200と同様である。
この実装形態では、美容効果402はメイクアップレンダリングを含むことができる。美容効果は様々なデータセットを含むことができる。データセットは、ブループリント、GLSLシェーダ406、テクスチャ、およびジオメトリファイルを含むレンダエンティティ404のデータセットを含むことができる。美容効果402は、レンダリングサブグラフ、シェーダユニフォーム、および画像変換をさらに含むことができる。拡張現実レンダリング体験を構築するために、これらのデータセットをソフトウェア開発キット408に入力することができる。ソフトウェア開発キット408により、構築者は新しく構築された体験をプレビューし、テストすることができる。特に、美容効果のGLSLシェーダ406は、ソフトウェア開発キット内のシェーダパイプラインに変換することができる。構築された拡張現実レンダリング体験は、ソフトウェア開発キット408の外部で以前から存在していた美容効果402のレンダリング体験と並行することができる。構築が完了すると、ソフトウェア開発キットは、別のデバイス上で拡張現実レンダリング体験を再作成する際に使用するためのレンダリング可能なzipファイル410を生成することができる。
図5は、本開示の例示的な実施形態による例示的な拡張現実レンダリング体験モデル500のブロック図を示している。拡張現実レンダリング体験モデル500は、拡張現実レンダリング体験モデル500が、生成されたデータ資産を使用するメッシュモデルによるカメラフィードおよび拡張モデルによる拡張モデルの処理をさらに含むことを除いて、図2のデータ資産取得システム200と同様である。
特に、図5は、レンダリング画像510を生成するためにカメラフィード502を処理するために使用される例示的な知覚サブグラフ504および例示的なレンダリングサブグラフ508を示している。知覚サブグラフ504は、メッシュおよびセグメンテーションマスクを生成するために、メッシュモデル506を用いてカメラフィード502を処理することができる。メッシュおよびセグメンテーションマスクは、レンダリング計算機512によって処理することができる。レンダリング計算機512は、レンダリングサブグラフ508に含めることができ、シェーダによって影響を受けることができる。メッシュ、セグメンテーションマスク、およびカメラフィード502は、レンダリング画像を生成するために、レンダリング計算機512によって処理され得る。レンダリングされた画像は、拡張現実レンダリングを含むことができる。レンダリングは、ソフトウェア開発キットを使用してサードパーティによって生成されたレンダリングであってもよい。さらに、いくつかの実装形態では、レンダリングはメイクアップレンダリングであってもよく、メッシュモデルはフェイストラッカであってもよく、シェーダは口紅シェーダ、テクスチャシェーダ、ユニフォームシェーダ、および/またはフィルタリングシェーダを含むことができる。
例示的な方法
図6は、本開示の例示的な実施形態に従って実行するための例示的な方法のフローチャート図を示している。図6は、例示および議論の目的で特定の順序で実行されるステップを示しているが、本開示の方法は、特に図示された順序または配置に限定されない。方法600の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略、再配置、組合せ、および/または適合させることができる。
602において、コンピューティングシステムはソフトウェア開発キットを送信することができる。いくつかの実装形態では、ソフトウェア開発キットは、1つまたは複数のレンダリング効果シェーダを構築するためのテンプレートを含むことができる。ソフトウェア開発キットには、ソース効果をレンダリング可能なファイルにコンパイルするためのスクリプトと関連付けられるバイナリを含み得る。ソフトウェア開発キットは、微調整およびテストのために構築中にレンダリングビルドをプレビューするための、構成サードパーティ用のプレビューツールをさらに含み得る。いくつかの実装形態では、ソフトウェア開発キットは、ソフトウェア開発キットを使用して効果を構築および微調整する方法についてサードパーティを支援するためのドキュメントとサンプル効果を含むことができる。
604において、コンピューティングシステムはデータ資産を受信することができる。いくつかの実装形態では、データ資産は、ソフトウェア開発キットを使用して構築された1つまたは複数のレンダリング効果シェーダを含むことができる。データ資産は、レンダリング可能なファイル(たとえば、.ZIPファイル)の形式で受信することができる。データ資産は、サードパーティによって販売または提供される製品または品目をレンダリングするためのシェーダデータを含むことができる。製品は、化粧品(たとえば、口紅、アイシャドウなど)、家具もしくは他の家庭用品(たとえば、電子機器、調理器具、ガラス製品、装飾品、植物など)、衣類、ペイントカラー、自動車、または他の品目であり得る。
606において、コンピューティングシステムはデータ資産を記憶することができる。データ資産は、サーバ、ユーザコンピューティングデバイス、またはファシリテータコンピューティングデバイスに記憶することができる。
608において、コンピューティングシステムは拡張現実レンダリング体験を提供することができる。いくつかの実装形態では、拡張現実レンダリングは少なくとも部分的にデータ資産に基づくことができる。拡張現実レンダリングは、サードパーティによって販売される製品の製品レンダリングを含むことができる。
図7は、本開示の例示的な実施形態に従って実行するための例示的な方法のフローチャート図を示している。図7は、例示および議論の目的で特定の順序で実行されるステップを示しているが、本開示の方法は、特に図示された順序または配置に限定されない。方法700の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略、再配置、組合せ、および/または適合させることができる。
702において、コンピューティングシステムはソフトウェア開発キットを受信することができる。ソフトウェア開発キットは、拡張現実体験を生成するためのテンプレートを含むことができる。ソフトウェア開発キットは、ユーザに提供するためのレンダリング体験をコンパイルするために、促進コンピューティングシステムまたは仲介システムによって送信され得る。
704において、コンピューティングシステムは、ソフトウェア開発キットを修正するための入力を受信することができる。ソフトウェア開発キットを修正すると、テンプレートを修正することができ、製品固有の拡張現実体験を生成することができる。たとえば、ソフトウェア開発キットは、メイクアップレンダリング効果を生成するように構築および構成することができる。メイクアップレンダリング効果は、ユーザがパーソナルコンピューティングデバイスを使用して提供される様々な口紅の色またはタイプを「試着」できる拡張現実レンダリング体験に実装することができる。
706において、コンピューティングシステムはデータ資産を生成することができる。いくつかの実装形態では、データ資産は、受信した入力に少なくとも部分的に基づいて生成することができる。データ資産は、送信用にレンダリング可能な圧縮ファイルに変換することができる。
708において、コンピューティングシステムは、データ資産を第2のコンピューティングデバイスに送信することができる。第2のコンピューティングデバイスは、ソフトウェア開発キットの送信者であってもよい。いくつかの実装形態では、第2のコンピューティングデバイスは、促進コンピューティングデバイス、または拡張現実レンダリング体験をユーザに提供するためにユーザと対話する仲介コンピューティングデバイスであり得る。
図8は、本開示の例示的な実施形態に従って実行するための例示的な方法のフローチャート図を示している。図8は、例示および議論の目的で特定の順序で実行されるステップを示しているが、本開示の方法は、特に図示された順序または配置に限定されない。方法800の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略、再配置、組合せ、および/または適合させることができる。
802において、コンピューティングシステムはソフトウェア開発キットを送信することができる。いくつかの実装形態では、ソフトウェア開発キットは、1つまたは複数のレンダリング効果シェーダを構築するためのテンプレートを含むことができる。基本アプリケーションは、新しいレンダリングを構築したり、以前に構築されたレンダリング効果を変換したりするための例示的な効果および指示を備えた拡張現実レンダリングアプリケーションとすることができる。
804において、コンピューティングシステムはデータ資産を受信することができる。いくつかの実装形態では、データ資産は、ソフトウェア開発キットを使用して構築された1つまたは複数のレンダリング効果シェーダを含むことができる。データ資産はレンダリング可能なファイルとして受信することができる。
806において、コンピューティングシステムはデータ資産を難読化することができる。データ資産の難読化は、コードからの空白の削除、コードのセマンティクスに関するコメントの削除、ならびに記号および用語の名前変更を含むことができる。難読化により、コードの可読性が低下し、用語またはコメントに含まれる可能性のある機密情報が削除される可能性がある。難読化は、サードパーティのビルダを保護するために役立つ。
808において、コンピューティングシステムはデータ資産を記憶することができる。データ資産はローカルに記憶することも、サーバを介して記憶することもできる。データ資産は、ウェブアプリケーションまたはモバイルアプリケーションで使用するためにすぐにアクセスできるように記憶することができる。
810において、コンピューティングシステムは拡張現実レンダリング体験を提供することができる。いくつかの実装形態では、拡張現実レンダリングは少なくとも部分的にデータ資産に基づくことができる。拡張現実レンダリング体験は、サードパーティによって構築されたレンダリング効果を含めるようにユーザの画像とビデオを拡張する体験を提供することを含むことができる。レンダリング効果は、ビデオゲームまたは「ライブ試着」体験の一部とすることができる。さらに、拡張現実レンダリング体験は、ウェブアプリケーション、モバイルアプリケーション、または店舗内のキオスクを介して提供することができる。
追加開示
本明細書で説明する技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステム、ならびにそのようなシステムで行われるアクション、およびそのようなシステムとの間で送受信される情報について言及する。コンピュータベースのシステムが本来持つ柔軟性により、コンポーネント間でのタスクと機能の多種多様な構成、組合せ、分割が可能になる。たとえば、本明細書で説明するプロセスは、単一のデバイスもしくはコンポーネント、または組み合わせて動作する複数のデバイスもしくはコンポーネントを使用して実装することができる。データベースとアプリケーションは、単一のシステムに実装することもでき、複数のシステムに分散して実装することもできる。分散コンポーネントは、順次または並行して動作することができる。
本発明の主題をその様々な特定の例示的な実施形態に関して詳細に説明してきたが、各例は説明のために提供されたものであり、本開示を限定するものではない。当業者は、前述の内容を理解すれば、そのような実施形態に対する変更、変形、および等価物を容易に生み出すことができる。したがって、本開示は、当業者には容易に明らかなような、本主題に対するそのような修正、変形、および/または追加を含むことを妨げるものではない。たとえば、さらに別の実施形態を得るために、一実施形態の一部として図示または説明した特徴を別の実施形態とともに使用することができる。したがって、本開示はそのような変更、変形、および等価物を網羅することが意図されている。
10 コンピューティングデバイス
20 クライアントコンピューティングシステム
30 拡張現実プラットフォーム
32 クライアントインターフェース
34 レンダリングエンジン
40 サードパーティ拡張現実(AR)資産ライブラリ
42 製品1資産
44 製品2資産
46 製品N資産
50 コンピューティングデバイス
60 サードパーティコンピューティングシステム
80 コンピューティングシステム
102 ユーザコンピューティングデバイス
112 プロセッサ
114 メモリ
116 データ
118 命令
120 拡張現実レンダリングモデル
120 機械学習モデル
122 ユーザ入力コンポーネント
130 サーバコンピューティングシステム
132 プロセッサ
134 メモリ
136 データ
138 命令
140 拡張現実レンダリングモデル
140 機械学習モデル
150 トレーニングコンピューティングシステム
152 プロセッサ
154 メモリ
156 データ
158 命令
160 モデルトレーナ
162 トレーニングデータ
162 トレーニングデータセット
180 ネットワーク
200 データ資産取得システム
210 ファシリテータ
210 促進システム
212 ソフトウェア開発キット
214 効果
220 サードパーティ
222 ソフトウェア開発キット
224 データ資産
226 レンダリングプレビュー
228 テンプレートおよびプリセット
230 ソース修正
232 サードパーティメタデータ
250 ユーザ
252 ユーザデータ
300 難読化
302 元のコード
304 難読化システム
306 難読化コード
308 名前変更
310 空白の削除
312 コメントの削除
400 データ資産取得システム
402 美容効果
404 レンダエンティティ
406 GLSLシェーダ
408 ソフトウェア開発キット
410 レンダリング可能なzipファイル
500 拡張現実レンダリング体験モデル
502 カメラフィード
504 知覚サブグラフ
506 メッシュモデル
508 レンダリングサブグラフ
510 レンダリング画像
512 レンダリング計算機
600 方法
700 方法
800 方法

Claims (20)

  1. サードパーティのデータ資産をクライアントに提供するためのコンピュータ実装方法であって、
    コンピューティングデバイスによってソフトウェア開発キットを送信するステップであって、前記ソフトウェア開発キットが、1つまたは複数のレンダリング効果シェーダを構築するためのテンプレートを備える、ステップと、
    前記コンピューティングデバイスによってデータ資産を受信するステップであって、前記データ資産が、前記ソフトウェア開発キットを使用して構築された1つまたは複数のレンダリング効果シェーダを備える、ステップと、
    前記コンピューティングデバイスによって前記データ資産を記憶するステップと、
    前記コンピューティングデバイスによって拡張現実レンダリング体験を提供するステップであって、拡張現実レンダリングが少なくとも部分的に前記データ資産に基づく、ステップと
    を備える、方法。
  2. 前記コンピューティングデバイスによって前記データ資産を難読化するステップをさらに備え、難読化するステップが、
    前記コンピューティングデバイスによって、データ資産のコードから空白を削除するステップと、
    前記コンピューティングデバイスによって、前記データ資産のコードから1つまたは複数のコメントを削除するステップと、
    前記コンピューティングデバイスによって、前記データ資産のコード内の1つまたは複数の用語を名前変更するステップと
    を備える、請求項1に記載の方法。
  3. 前記データ資産がアンカーランドマークデータを備える、請求項1または2に記載の方法。
  4. 前記データ資産がシェーダデータを備える、請求項1から3のいずれか一項に記載の方法。
  5. 前記シェーダデータは、口紅の色、口紅の光沢度、または口紅の不透明度のうちの少なくとも1つを記述する、請求項4に記載の方法。
  6. 前記シェーダデータがアイシャドウの色を記述する、請求項4に記載の方法。
  7. 前記データ資産がサードパーティからのデータを備える、請求項1から6のいずれか一項に記載の方法。
  8. 前記コンピューティングデバイスによる前記データ資産の難読化が、前記コンピューティングデバイスによって拡張現実レンダリング体験を提供するステップであって、拡張現実レンダリングが少なくとも部分的に前記データ資産に基づく、ステップの前に行われる、請求項1から7のいずれか一項に記載の方法。
  9. 前記拡張現実レンダリングが、メイクアップ拡張現実レンダリングである、請求項1から8のいずれか一項に記載の方法。
  10. 前記拡張現実レンダリングは、家具の拡張現実レンダリングである、請求項1から9のいずれか一項に記載の方法。
  11. 前記拡張現実レンダリングが、ビデオゲームの拡張現実レンダリングである、請求項1から10のいずれか一項に記載の方法。
  12. 前記データ資産が、サードパーティによって販売される製品を記述する製品データを備える、請求項1から11のいずれか一項に記載の方法。
  13. 前記拡張現実レンダリングが、
    前記コンピューティングデバイスによってユーザデータを受信するステップと、
    前記コンピューティングデバイスによって、ユーザメッシュを生成するために、エンコーダモデルを使用して前記ユーザデータを処理するステップと、
    前記コンピューティングデバイスによって、前記拡張現実レンダリングを生成するために、拡張モデルを用いて前記ユーザメッシュを処理するステップであって、前記拡張モデルが前記データ資産に少なくとも部分的に基づくシェーダを備える、ステップと
    によって生成される、請求項1から12のいずれか一項に記載の方法。
  14. 前記1つまたは複数のコメントが、コードのセマンティクスを記述するテキストを備える、請求項1から13のいずれか一項に記載の方法。
  15. 前記コンピューティングデバイスによって、前記データ資産のコード内の1つまたは複数の用語を名前変更するステップが、ファイル全体での均一な名前変更を備える、請求項1から14のいずれか一項に記載の方法。
  16. 1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムに、動作を実行させる命令を集合的に記憶する1つまたは複数の非一時的コンピュータ可読媒体と
    を備え、前記動作が、
    拡張現実体験を生成するためのテンプレートを備えるソフトウェア開発キットを受信することと、
    前記テンプレートを修正するための1つまたは複数の入力を受信することであって、前記ソフトウェア開発キットを修正することが、製品固有の拡張現実体験を生成する、ことと、
    前記1つまたは複数の入力に少なくとも部分的に基づいてデータ資産を生成することと、
    前記データ資産を第2のコンピューティングデバイスに送信することと
    を備える、コンピューティングシステム。
  17. 前記拡張現実体験をテストすることをさらに備える、請求項16に記載のコンピューティングシステム。
  18. 前記拡張現実体験をテストすることが、
    トレーニングデータを入手することと、
    拡張現実メディアを生成するために、前記拡張現実体験を用いて前記トレーニングデータを処理することと、
    前記拡張現実メディアとグラウンドトゥルースデータとの比較に少なくとも部分的に基づいて損失関数を評価することと、
    前記損失関数に少なくとも部分的に基づいて1つまたは複数のパラメータを調整することと
    を備える、請求項16または17に記載のコンピューティングシステム。
  19. 前記1つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムに、動作を実行させる命令を集合的に記憶する1つまたは複数の非一時的コンピュータ可読媒体であって、前記動作が、
    コンピューティングデバイスによってソフトウェア開発キットを送信することであって、前記ソフトウェア開発キットが、1つまたは複数のレンダリング効果シェーダを構築するためのテンプレートを備える、ことと、
    前記コンピューティングデバイスによってデータ資産を受信することであって、前記データ資産が、前記ソフトウェア開発キットを使用して構築された1つまたは複数のレンダリング効果シェーダを備える、ことと、
    前記コンピューティングデバイスによって前記データ資産を記憶することと、
    前記コンピューティングデバイスによって拡張現実レンダリング体験を提供することであって、拡張現実レンダリングが少なくとも部分的に前記データ資産に基づく、ことと
    を備える、1つまたは複数の非一時的コンピュータ可読媒体。
  20. 前記ソフトウェア開発キットが知覚モデルを備える、請求項19に記載の1つまたは複数の非一時的コンピュータ可読媒体。
JP2023541344A 2021-01-07 2022-01-04 サードパーティ資産を用いて拡張現実体験を促進するためのコンピューティングプラットフォーム Active JP7457211B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2024031999A JP2024061750A (ja) 2021-01-07 2024-03-04 サードパーティ資産を用いて拡張現実体験を促進するためのコンピューティングプラットフォーム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/144,002 2021-01-07
US17/144,002 US11521358B2 (en) 2021-01-07 2021-01-07 Computing platform for facilitating augmented reality experiences with third party assets
PCT/US2022/011064 WO2022150273A1 (en) 2021-01-07 2022-01-04 Computing platform for facilitating augmented reality experiences with third party assets

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024031999A Division JP2024061750A (ja) 2021-01-07 2024-03-04 サードパーティ資産を用いて拡張現実体験を促進するためのコンピューティングプラットフォーム

Publications (2)

Publication Number Publication Date
JP2024504063A true JP2024504063A (ja) 2024-01-30
JP7457211B2 JP7457211B2 (ja) 2024-03-27

Family

ID=80445765

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2023541344A Active JP7457211B2 (ja) 2021-01-07 2022-01-04 サードパーティ資産を用いて拡張現実体験を促進するためのコンピューティングプラットフォーム
JP2024031999A Pending JP2024061750A (ja) 2021-01-07 2024-03-04 サードパーティ資産を用いて拡張現実体験を促進するためのコンピューティングプラットフォーム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2024031999A Pending JP2024061750A (ja) 2021-01-07 2024-03-04 サードパーティ資産を用いて拡張現実体験を促進するためのコンピューティングプラットフォーム

Country Status (6)

Country Link
US (2) US11521358B2 (ja)
EP (1) EP4256447A1 (ja)
JP (2) JP7457211B2 (ja)
KR (1) KR20230122172A (ja)
CN (1) CN116868187A (ja)
WO (1) WO2022150273A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230343037A1 (en) * 2022-04-25 2023-10-26 Snap Inc. Persisting augmented reality experiences
US20240019979A1 (en) * 2022-07-15 2024-01-18 Lenovo (Singapore) Pte. Ltd. Conversion of 3d virtual actions into 2d actions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013023705A1 (en) * 2011-08-18 2013-02-21 Layar B.V. Methods and systems for enabling creation of augmented reality content
US9262865B2 (en) 2013-03-15 2016-02-16 Daqri, Llc Content creation tool
GB2518589B (en) * 2013-07-30 2019-12-11 Holition Ltd Image processing
US20150082298A1 (en) * 2013-09-19 2015-03-19 Qiu Shi WANG Packaging and deploying hybrid applications
US10157593B2 (en) * 2014-02-24 2018-12-18 Microsoft Technology Licensing, Llc Cross-platform rendering engine
US9373223B1 (en) 2014-12-17 2016-06-21 Jackpot Rising Inc. Method and system for gaming revenue
US10169917B2 (en) * 2015-08-20 2019-01-01 Microsoft Technology Licensing, Llc Augmented reality
US10049500B2 (en) 2015-09-22 2018-08-14 3D Product Imaging Inc. Augmented reality e-commerce for home improvement
US20170206708A1 (en) * 2016-01-19 2017-07-20 Immersv, Inc. Generating a virtual reality environment for displaying content
CN107632824B (zh) 2016-07-18 2019-01-01 腾讯科技(深圳)有限公司 一种增强现实模块的生成方法、生成装置以及生成系统
CN110140144B (zh) * 2017-10-31 2023-08-08 谷歌有限责任公司 用于验证渲染的数据的图像处理系统
GB2593093B (en) * 2018-11-08 2022-11-23 Appdome Ltd Artificial intelligence mobile integration
US11449713B2 (en) * 2018-11-16 2022-09-20 Uatc, Llc Attention based feature compression and localization for autonomous devices
US10665011B1 (en) * 2019-05-31 2020-05-26 Adobe Inc. Dynamically estimating lighting parameters for positions within augmented-reality scenes based on global and local features

Also Published As

Publication number Publication date
JP7457211B2 (ja) 2024-03-27
US20230092068A1 (en) 2023-03-23
WO2022150273A1 (en) 2022-07-14
US20220215633A1 (en) 2022-07-07
KR20230122172A (ko) 2023-08-22
EP4256447A1 (en) 2023-10-11
JP2024061750A (ja) 2024-05-08
US11521358B2 (en) 2022-12-06
CN116868187A (zh) 2023-10-10

Similar Documents

Publication Publication Date Title
US11670061B2 (en) Generating augmented reality prerenderings using template images
US10620921B2 (en) Application system for generating 3D applications
Gecer et al. Synthesizing coupled 3d face modalities by trunk-branch generative adversarial networks
US20230092068A1 (en) Computing Platform for Facilitating Augmented Reality Experiences with Third Party Assets
Flotyński et al. Ontology‐Based Representation and Modelling of Synthetic 3D Content: A State‐of‐the‐Art Review
US20230102055A1 (en) Generating modified digital images utilizing a global and spatial autoencoder
Li et al. Dynamic facial asset and rig generation from a single scan.
Stemasov et al. The road to ubiquitous personal fabrication: Modeling-free instead of increasingly simple
US20230090253A1 (en) Systems and methods for authoring and managing extended reality (xr) avatars
Zeng et al. 3D human body reshaping with anthropometric modeling
Jaspe-Villanueva et al. Web-based exploration of annotated multi-layered relightable image models
Vilchis et al. A survey on the pipeline evolution of facial capture and tracking for digital humans
Yang et al. Architectural sketch to 3D model: An experiment on simple-form houses
Pucihar et al. FUSE: Towards AI-Based Future Services for Generating Augmented Reality Experiences
US11972534B2 (en) Modifying materials of three-dimensional digital scenes utilizing a visual neural network
US20230281952A1 (en) Generating object images with different lighting conditions
US11869136B1 (en) User-context aware rendering dataset selection
Gillespie User-appropriate viewer for high resolution interactive engagement with 3D digital cultural artefacts.
Robertson Visualizing spatial data: The problem of paradigms
Sorokin et al. Deep learning in tasks of interior objects recognition and 3D reconstruction
Corsini et al. DELIVERABLE REPORT
Corsini et al. Analysis of Visualisation and Interaction Tools Authors

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230901

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230901

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240314

R150 Certificate of patent or registration of utility model

Ref document number: 7457211

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150