例証目的のために、ここで、特定の例示的実施形態が、図面と併せて以下により詳細に説明される。
例示的eコマースプラットフォーム
いくつかの実施形態では、本明細書中で開示される方法は、コマースプラットフォーム上で、またはそれに関連付けられて実施され得、コマースプラットフォームは、本明細書中でeコマースプラットフォームと称される。従って、eコマースプラットフォームのある例が説明される。
図1は、一実施形態によるeコマースプラットフォーム100を例証している。eコマースプラットフォーム100は、商人の製品およびサービスを顧客に提供するために用いられ得る。本開示は、製品およびサービスを購入するための装置、システムおよびプロセスを用いることを想定しているが、本明細書中の説明は、単純化のため、製品に言及する。この開示全体にわたる製品への全ての言及は、物理的製品、デジタルコンテンツ、チケット、サブスクリプション、提供されるサービス等を含む製品および/またはサービスにも言及していることを理解されるべきである。
本開示は、全体にわたって、「商人」および「顧客」は、個人より多いこともあることを構想しているが、単純化のため、本明細書中の説明は、概してそのように商人および顧客に言及する。商人および顧客への全ての言及が、この開示全体にわたって、個人、会社、企業、コンピューティングエンティティ等の群に言及し、製品の営利または非営利の交換を表し得ることも理解されるべきである。さらに、本開示は、全体にわたって、「商人」および「顧客」に言及し、そのように彼らの役割を説明するが、eコマースプラットフォーム100は、eコマース環境においてユーザをより一般的にサポートすることを理解されるべきであり、この開示全体にわたる商人および顧客への全ての言及は、ユーザが、商人ユーザ(例えば、製品の売り手、小売業者、卸売業者、またはプロバイダ)、顧客ユーザ(例えば、製品の買い手、購入エージェント、または製品のユーザ)、潜在的ユーザ(例えば、閲覧しているユーザおよびまだ購入を確約していないユーザ、製品をマーケティングし販売することにおける潜在的な使用についてeコマースプラットフォーム100を評価するユーザ等)、サービスプロバイダユーザ(例えば、配送プロバイダ112、金融プロバイダ等)、会社ユーザまたは企業ユーザ(例えば、製品の購入、販売、または使用を代表する会社、事業者ユーザ、顧客関連または顧客管理の代理人等)、情報テクノロジーユーザ、コンピューティングエンティティユーザ(例えば、製品の購入、販売、または使用のためのコンピューティングボット)である場合等のユーザに言及していることも理解されるべきである。
eコマースプラットフォーム100は、商人に彼らのビジネスを管理するためのオンラインリソースおよびオンラインファシリティを提供する集中型システムを提供し得る。本明細書中で説明されるファシリティは、プラットフォーム100の一部または外部であり得る1つ以上のプロセッサにおいてコンピュータソフトウェア、モジュール、プログラムコード、および/または命令を実行する機械を通じて部分的または全体的に展開され得る。商人は、例えば、オンライン店舗138を通じて、チャンネル110A-Bを通じて、物理的場所にあるPOSデバイス152(例えば、キオスク、端末、リーダ、プリンタ、3Dプリンタ等を通じて物理的な店頭または他の場所)を通じて、顧客におけるeコマース体験を実装することによって、eコマースプラットフォーム100を通じて彼らのビジネスを管理することによって、eコマースプラットフォーム100の通信ファシリティ129を通じて顧客と相互作用することによって、またはこれらの任意の組み合わせによって、顧客とのコマースを管理するために、eコマースプラットフォーム100を活用し得る。商人は、顧客との唯一のコマースプレゼンスとして、または物理的店舗(例えば、「ブリックアンドモルタル」小売店)、プラットフォーム外の商人のウェブサイト104(例えば、コマースインターネットウェブサイト、またはeコマースプラットフォームとは別個で商人によって、またはその代理でサポートされた他のインターネットもしくはウェブプロパティまたはアセット)を通じて等、他の商人コマースファシリティと共にeコマースプラットフォーム100を活用し得る。しかしながら、これらの「他の」商人コマースファシリティも、eコマースプラットフォーム内に統合され得る(例えば、商人の物理的店舗内のPOSデバイス152がeコマースプラットフォーム100につながれる場合、プラットフォーム外の商人のウェブサイト104からオンライン店舗138にコンテンツをつなぐ「買うボタン」を通じて、プラットフォーム外の商人のウェブサイト104がeコマースプラットフォーム100内に結び付けられている場合等)。
オンライン店舗138は、複数の仮想的店頭を備えているマルチテナントファシリティを表し得る。実施形態では、商人は、例えば商人デバイス102(例えば、コンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス等)を通じて、オンライン店舗138内の1つ以上の店頭を管理し、数多くの異なるチャンネル110A-B(例えば、オンライン店舗138、POSデバイス152を通じた物理的店頭、(ソーシャルネットワーク、ソーシャルメディアページ、ソーシャルメディアメッセージシステム等のウェブサイトまたはソーシャルメディアチャンネルに統合された電子的買うボタンを通じた電子的市場等)を通じて製品を顧客に提供し得る。商人は、チャンネル110A-Bを横断して販売し、そして、eコマースプラットフォーム100を通じて彼らの販売を管理し得、チャンネル110Aは、eコマースプラットフォーム100の内部に、またはeコマースチャンネル110Bの外部から提供され得る。商人は、例えば彼らの物理的小売店で販売し、ポップアップで販売し、卸売りを通して販売し、電話で販売し、そして、eコマースプラットフォーム100を通じて彼らの販売を管理し得る。商人は、これらの全てまたは任意の組み合わせを使用し、POSデバイス152を活用している物理的店頭を通してビジネスを維持し、オンライン店舗138を通じて仮想的店頭を維持し、顧客相互作用に影響を与えるために通信ファシリティ129を活用し、販売の利益を向上させるために分析132を活用し得る。この開示全体にわたって、オンライン店舗138および店頭という語は、同義的に、eコマースプラットフォーム100を通じた商人のオンラインeコマース提供主体を指すために用いられ得、オンライン店舗138は、(例えば、複数の商人のための)eコマースプラットフォーム100によってサポートされた店頭のマルチテナント集合体、または個々の商人の店頭(例えば、商人のオンライン店舗)を指し得る。
いくつかの実施形態では、顧客は、顧客デバイス150(例えば、コンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス等)、POSデバイス152(例えば、小売りデバイス、キオスク、自動勘定システム等)、または業界で知られている任意の他のコマースインタフェースデバイスを通じて相互作用し得る。eコマースプラットフォーム100は、オンライン店舗138を通じて、物理的場所(例えば、商人の店頭または他の場所)にあるPOSデバイス152を通じて、顧客に到達すること、電気通信ファシリティ129を介した顧客との対話を通じて顧客とのコマースを促進すること等を可能にし得、顧客に到達し顧客と相互作用するために利用可能な実通路または仮想通路に関して、顧客に到達し商人サービスを促進するためのシステムを提供する。
いくつかの実施形態では、本明細書中でさらに説明されるように、eコマースプラットフォーム100は、プロセッサおよびメモリを含む処理ファシリティを通じて実装され得、処理ファシリティは、一連の命令を記憶しており、命令が実行されたとき、eコマースプラットフォーム100は、本明細書で説明されるようにeコマースを実施し、機能をサポートする。処理ファシリティは、サーバ、クライアント、ネットワークインフラストラクチャ、モバイルコンピューティングプラットフォーム、クラウドコンピューティングプラットフォーム、固定コンピューティングプラットフォーム、または他のコンピューティングプラットフォームの一部であり、eコマースプラットフォーム100の電子コンポーネント、商人デバイス102、支払いゲートウェイ106、アプリケーション開発者、チャンネル110A-B、配送プロバイダ112、顧客デバイス150、販売時点管理デバイス152等の間の電子的接続および通信を提供し得る。eコマースプラットフォーム100は、ソフトウェアがサブスクリプションベースでライセンスを与えられ、一元的にホストされた(たとえば、Webブラウザまたは他のアプリケーションを介してクライアント(例えば、シンクライアント)を用いてユーザによってアクセスされる、POSデバイスによってアクセスされる等)ソフトウェアおよび送達モデル等における、クラウドコンピューティングサービス、ソフトウェア・アズ・ア・サービス(SaaS)、インフラストラクチャ・アズ・ア・サービス(IaaS)、プラットフォーム・アズ・ア・サービス(PaaS)、デスクトップ・アズ・ア・サービス(DaaS)、管理型ソフトウェア・アズ・ア・サービス(MSaaS)、モバイル・バックエンド・アズ・ア・サービス(MBaaS)、情報テクノロジ管理・アズ・ア・サービス(ITMaaS)等として実装され得る。いくつかの実施形態では、eコマースプラットフォーム100の要素は、種々のプラットフォーム、およびiOS、Android(登録商標)等のオペレーティングシステムにおいて、ならびにWeb上等で動作するように実装され得る(例えば、アドミニストレータ114は、多くの場合、iOS、Android(登録商標)用の所与のオンライン店舗、およびWebにおいて実装され、各々は同様の機能を有する)。
いくつかの実施形態では、オンライン店舗138は、eコマースプラットフォーム100のサーバによって提供されるウェブページを通じて顧客デバイス150にサービス提供され得る。サーバは、ブラウザまたは顧客デバイス150にインストールされた他のアプリケーションからウェブページの要求を受信し得、ブラウザ(または他のアプリケーション)は、IPアドレスを通じてサーバに接続し、IPアドレスは、ドメイン名を翻訳することによって取得される。これに対し、サーバは、要求されたウェブページを送り返す。ウェブページは、Hypertext Markup Language(HTML)、テンプレート言語、JavaScript(登録商標)またはこれらの任意の組み合わせで記述されているか、またはそれらを含み得る。例えば、HTMLは、ウェブページのレイアウト、フォーマット、およびコンテンツ等のウェブページに関する静的情報を記述するコンピュータ言語である。ウェブサイトの設計者および開発者は、テンプレート言語を用いて、複数のページで同一である静的コンテンツと、1つのページから次のページへと変化する動的コンテンツとを組み合わせるウェブページを構築し得る。テンプレート言語は、オンライン店舗からのデータでページを動的に追加する一方で、ウェブページのレイアウトを画定する静的要素を再利用することを可能にし得る。静的要素は、HTMLで書かれ得、動的要素は、テンプレート言語で書かれ得る。ファイル内のテンプレート言語要素は、プレースホルダーとして機能し、それによって、ファイル内のコードは、コンパイルされて顧客デバイス150に送られ、その後、テンプレート言語は、テーマがインストールされるとき等に、オンライン店舗138からのデータによって置き換えられる。テンプレートおよびテーマは、タグ、オブジェクト、およびフィルタを考慮し得る。そして、クライアントデバイスウェブブラウザ(または他のアプリケーション)は、それに応じて、ページをレンダリングする。
いくつかの実施形態では、オンライン店舗138は、eコマースプラットフォーム100によって顧客に提供され得、顧客は、種々の取り扱い製品を閲覧および購入し得る(例えば、製品をカートに追加する、買うボタンを通じて即購入する等)。オンライン店舗138は、製品が(直接商人から購入するのではなく)eコマースプラットフォーム100を通じて提供されていることを顧客が必ずしも気付かない透明な手法で顧客に提供され得る。商人は、商人が構成可能なドメイン名、カスタマイズ可能なHTMLテーマ等を用いて、彼らのオンライン店舗138をカスタマイズし得る。商人は、テーマシステムを通じて彼らのウェブサイトの外観および雰囲気をカスタマイズし得、例えば、商人は、オンライン店舗138の製品のヒエラルキー内に示される同一の下位の製品およびビジネスデータを示しながらオンライン店舗のテーマを変更することによって、彼らのオンライン店舗の外観および雰囲気を選択および変更し得る。テーマは、テーマエディタおよびデザインインタフェースを通じてさらにカスタマイズされ得、デザインインタフェースは、ユーザが彼らのウェブサイトのデザインを柔軟にカスタマイズすることを可能にする。テーマは、特有の色、フォント、および予め構築されているレイアウトスキーム等の側面を変更するテーマ特有の設定を用いることによってもカスタマイズされ得る。オンライン店舗は、ウェブサイトコンテンツのためのコンテンツ管理システムを実装し得る。商人は、ブログ投稿または静的ページを作り、ブログ、記事等を通じて彼らのオンライン店舗138にそれらを発信するのみならず、ナビゲーションメニューも構成し得る。商人は、システムによる格納(例えば、データ134)等のために、画像(例えば、製品の画像)、ビデオ、コンテンツ、データ等をeコマースプラットフォーム100にアップロードし得る。いくつかの実施形態では、eコマースプラットフォーム100は、画像をサイズ変更し、画像を製品に関連付け、画像にテキストを追加し関連付け、新たな製品バリエーションの画像を追加し、画像を保護するため等の機能を提供し得る。
本明細書中で説明されるように、eコマースプラットフォーム100は、オンライン店舗138、電話を介してのみならず、本明細書中で説明されるような物理的POSデバイス152も含む多くの異なるチャンネル110A-Bを通じて、製品の取引ファシリティを商人に提供し得る。eコマースプラットフォーム100は、ビジネスサポートサービス116、アドミニストレータ114等を含み、それらは、彼らのオンライン店舗に関連付けられたドメインサービス118、顧客との取引を促進するための支払いサービス120、購入された製品の配送オプションを顧客に提供するための配送サービス122、製品の保護および信頼性に関連付けられたリスクおよび保証サービス124、商人の請求等を提供する等、オンラインビジネスを営業することに関連付けられ得る。サービス116は、支払処理のための支払いゲートウェイ106、製品の配送を捗らせるための配送プロバイダ112等を通じて、eコマースプラットフォーム100を介してまたは外部ファシリティに関連付けられて提供され得る。
いくつかの実施形態では、eコマースプラットフォーム100は、リアルタイムの最新情報、追跡、自動的レート計算、バルクオーダ―準備、ラベル印刷等を商人に提供する等、統合型配送サービス122を(例えば、eコマースプラットフォーム配送ファシリティを通じて、または第三の配送キャリアを通じて)提供し得る。
図2は、アドミニストレータ114のホームページに関する非限定的な実施形態を描写し、日ごとのタスク、店舗の現在の活動、および商人が彼らのビジネスを構築するために取るべき次のステップについての情報を示し得る。いくつかの実施形態では、商人は、商人デバイス102を介して(デスクトップコンピュータまたはモバイルデバイスから等)アドミニストレータ114にログインし、商人のオンライン店舗138の局面(オンライン店舗138の現在の活動を視認すること、オンライン店舗138のカタログを更新すること、注文、現在の訪問者の活動、および全体の注文活動等を管理すること等)を管理し得る。いくつかの実施形態では、商人は、例えば図2に示されるようなサイドバーを用いることによって、アドミニストレータ114の異なるセクションにアクセスすることが可能であり得る。アドミニストレータ114のセクションは、注文、製品、顧客、取り扱い報告および割引を含む商人のビジネスの核となる局面にアクセスし、それを管理するための種々のインタフェースを含み得る。アドミニストレータ114は、店舗のための販売チャンネルを管理するためのインタフェースも含み得、インタフェースは、オンライン店舗、店舗にアクセスするために顧客に利用可能にされたモバイルアプリケーション(単数または複数)(モバイルアプリ)、POSデバイス、および/または買うボタンを含む。アドミニストレータ114は、商人のアカウントにインストールされたアプリケーション(アプリ)を管理するためのインタフェース(商人のオンライン店舗138およびアカウントに適用される設定)も含み得る。商人は、製品、ページ、または他の情報を見つけるために検索バーを用い得る。商人が使用しているデバイス102またはソフトウェアアプリケーションに依存して、商人は、アドミニストレータ114を通じて異なる機能を可能にされ得る。例えば、商人がブラウザからアドミニストレータ114にログインする場合、彼らは、彼らのオンライン店舗138の全ての局面を管理することが可能であり得る。商人が彼らのモバイルデバイスから(例えばモバイルアプリケーションを介して)ログインする場合、彼らは、オンライン店舗138の現在の活動を眺める、オンライン店舗138のカタログを更新する、注文を管理する等、彼らのオンライン店舗138の側面の全てまたは一部を視認することが可能であり得る。
コマースおよびオンライン店舗138への訪問者に関するより詳細な情報は、商人のビジネス全体に関する売上概要、活動している販売チャンネルに関する特定の売上および従業員データ等を表示する等、獲得レポートまたはメトリクスを通じて見られ得る。レポートは、獲得レポート、行動レポート、顧客レポート、金融レポート、マーケティングレポート、売上レポート、カスタムレポート等を含み得る。商人は、ドロップダウンメニュー等を用いることによって、様々な期間(例えば、日、週、月等)から様々なチャンネル110A-Bに関する売上データを見ることが可能であり得る。概観ダッシュボードも、店舗の売上および契約データのより詳細な図を望む商人に提供され得る。ホームメトリクスセクションにおける活動フィードは、商人のアカウントにおける活動の概観を例証するために提供され得る。例えば、「全ての現在の活動を見る」ダッシュボードボタンをクリックすることによって、商人は、彼らのアカウントにおける現在の活動のより長いフィードを見ることが可能であり得る。ホームページは、例えばアカウントステータス、成長、現在の顧客の活動等に基づいて、商人のオンライン店舗138についての通知を示し得る。通知は、支払いを取り込む、履行された注文をマーキングする、完了した注文をアーカイブする等のプロセスを通じたナビゲーションで商人を支援するために提供され得る。
eコマースプラットフォーム100は、商人、顧客、商人デバイス102、顧客デバイス150、POSデバイス152等の間の通信相互作用を収集し分析するための電子メッセージ集約ファシリティを活用する等、電子通信を提供しマーケティングをするための通信ファシリティ129および関連付けられた商人インタフェースを提供し、製品の販売を提供するポテンシャルを増加させる等のために通信を集約し分析し得る。例えば、顧客は、製品に関連する質問を有し得、質問は、顧客と商人(または商人を代理する自動化されたプロセッサベースの代理人)との間の対話を生み出し得、通信ファシリティ129は、相互作用を分析し、販売に関する利益をどのように向上するかについて商人に分析を提供する。
eコマースプラットフォーム100は、例えばセキュアカードサーバ環境を通じて、顧客との安全な金融取引のための金融ファシリティ120を提供し得る。eコマースプラットフォーム100は、例えば、支払いカードインダストリーデータ(PCI)環境(例えば、カードサーバ)等にクレジットカード情報を記憶し得、金融情報を照合し、商人に請求書を送り、(例えば、現金を用いているとき)eコマースプラットフォーム100金融機関口座と商人の銀行口座との間の自動決済(ACH)振替を実施する。これらのシステムは、Sarbanes―Oxley Act(SOX)コンプライアンス、および、それらの開発および動作において要求される高いレベルの注意を有し得る。金融ファシリティ120は、例えば資金の貸し出し(例えば、貸出ファンド、現金前貸し等)および保険の付保を通して、商人に金融サポートも提供し得る。加えて、eコマースプラットフォーム100は、マーケティングおよびパートナーサービスのセットを提供し、eコマースプラットフォーム100とパートナーとの間の関係を制御し得る。それらは、新たな商人をeコマースプラットフォーム100に接続し、搭載し得る。これらのサービスは、商人がeコマースプラットフォーム100を横断して作業することを容易にすることによって商人の成長を可能にし得る。これらのサービスを通じて、商人は、eコマースプラットフォーム100を介したヘルプファシリティを提供され得る。
いくつかの実施形態では、オンライン店舗138は、数多くの独立して運営される店頭をサポートし、毎日の各種の製品に関する大量の取引データを処理し得る。取引データは、顧客連絡先情報、請求情報、配送情報、購入された製品の情報、与えられたサービスの情報、およびeコマースプラットフォーム100を通したビジネスに関連付けられた任意の他の情報を含み得る。いくつかの実施形態では、eコマースプラットフォーム100は、データファシリティ134内にこのデータを記憶し得る。取引データは、分析132を生み出すために処理され得、ひいては、商人または第三のコマースエンティティに提供されて、顧客の傾向、マーケティングおよび売上の洞察、売上を向上するための推薦、顧客行動の評価、マーケティングおよび売上のモデル化、詐欺の傾向等を提供し、オンラインコマースに関連付けられ、レポートを通してダッシュボードインタフェースで提供され得る。eコマースプラットフォーム100は、ビジネスおよび商人の取引についての情報を記憶し得、データファシリティ134は、データを強化し、データに貢献し、データを精錬し、データを抽出する多くの手段を有し得、収集されたデータは、経時的にeコマースプラットフォーム100の局面の改善を可能にし得る。
図1を再度参照すると、いくつかの実施形態では、eコマースプラットフォーム100は、コンテンツ管理、タスク自動化、およびデータ管理のためのコマース管理エンジン136で構成され、(例えば、製品、在庫、顧客、注文、提携、供給者、レポート、金融、リスクおよび詐欺等に関連付けられた)複数のオンライン店舗138のサポートおよびサービスを可能にし得るが、eコマースプラットフォーム100は、アプリケーション142A-Bを通して拡張可能であり得、アプリケーション142A-Bは、多種多様な商人オンライン店舗、POSデバイス、製品、およびサービスに適応するために要求されるより高い柔軟性およびカスタム処理を可能にし、アプリケーション142Aが、eコマースプラットフォーム100の内部に提供され得、または、アプリケーション142Bが、eコマースプラットフォーム100の外部に提供され得る。いくつかの実施形態では、アプリケーション142Aは、プラットフォーム100を提供する同じパーティによって、または異なるパーティによって提供され得る。いくつかの実施形態では、アプリケーション142Bは、プラットフォーム100を提供する同じパーティによって、または異なるパーティによって提供され得る。コマース管理エンジン136は、例えば顧客識別子、注文識別子、オンライン店舗識別子等による機能およびデータの分配(例えば、分割)を通じた柔軟性およびスケーラビリティのために構成され得る。コマース管理エンジン136は、店舗特有のビジネスロジックに適応し得、いくつかの実施形態では、アドミニストレータ114および/またはオンライン店舗138を統合し得る。
コマース管理エンジン136は、eコマースプラットフォーム100のベースまたは「核となる」機能を含み、そのため、本明細書中で説明されるように、オンライン店舗138をサポートする全ての機能が、含めるのに適切であるわけではないこともある。例えば、コマース管理エンジン136内に含まれる機能は、「核となる」機能性のしきい値を超える必要があり得、「核となる」機能性のしきい値を通して、機能がコマース体験にとっての核であること(例えば、横断チャンネル、アドミニストレータインタフェース、商人の場所、産業、製品タイプ等のオンライン店舗活動の大部分の共通性)、機能がオンライン店舗138を横断して再利用可能であること(例えば核となる機能を横断して再利用/修正され得る機能)、同時に単一のオンライン店舗138のコンテキストに限定されること(例えば、オンライン店舗「分離原理」を実装し、この原理において、コードは、同時に複数のオンライン店舗138と相互作用することが可能であるべきではなく、分離原理は、オンライン店舗138が互いのデータにアクセスできないことを保証する)、取引仕事量を提供すること等が決定され得る。多くの要求される特徴が、コマース管理エンジン136によって直接提供されるか、または、アプリケーション142A-Bおよびチャンネル110A-Bへのアプリケーションプログラミングインタフェース(API)接続を通じたその拡張等によってインタフェース140A-Bを通して可能にされる(インタフェース140Aは、eコマースプラットフォーム100内のアプリケーション142Aおよび/またはチャンネル110Aに提供され、または、インタフェース140Bは、eコマースプラットフォーム100の外部のアプリケーション142Bおよび/またはチャンネル110Bに提供され得る)かのいずれかである場合、どの機能が実装されるかということの制御をメンテナンスすることが、コマース管理エンジン136が応答可能であり続けることを可能にし得る。概して、プラットフォーム100は、(拡張機能、コネクタ、API等であり得る)インタフェース140A-Bを含み得、インタフェース140A-Bは、他のプラットフォーム、システム、ソフトウェア、データソース、コード等への接続およびそれらとの通信を促進する。そのようなインタフェース140A-Bは、さらに概略的に、コマース管理エンジン136のインタフェース140A、またはプラットフォーム100のインタフェース140Bであり得る。ケアがコマース管理エンジン136内の規制機能に与えられない場合、低速データベースまたは致命的ではないバックエンドの破壊を通じたインフラストラクチャの劣化を通して、オフラインになっているデータセンター等による致命的なインフラストラクチャの破壊を通して、新たなコードが展開され、それが予期されるより実行するために長い時間を要することを通して、応答性が損なわれ得る。これらの状況を防ぐためにまたは軽減させるために、コマース管理エンジン136は、例えばタイムアウト、クエリ、劣化を防ぐバックプレッシャー等を活用する構成を通じて応答性を維持するように構成され得る。
オンライン店舗データを分離することは、オンライン店舗138間および商人間のデータプライバシーを維持するために重要であるが、例えば注文リスク査定システムまたはプラットフォーム支払いファシリティ(注文リスク査定システムおよびプラットフォーム支払いファシリティの両方は、うまく実施するために複数のオンライン店舗138からの情報を要求する)において相互店舗データを収集し使用する理由が存在し得る。いくつかの実施形態では、分離原理に違反することなく、これらのコンポーネントをコマース管理エンジン136の外部に移動させること、およびeコマースプラットフォーム100内のそれら自身のインフラストラクチャ内に移動させることが好まれ得る。
いくつかの実施形態では、eコマースプラットフォーム100は、プラットフォーム支払いファシリティ120を提供し得、プラットフォーム支払いファシリティ120は、コマース管理エンジン136からのデータを活用するが分離原理に違反しないように外部に配置され得るコンポーネントの別の例である。プラットフォーム支払いファシリティ120は、オンライン店舗138と相互作用する顧客が、コマース管理エンジン136によって安全に記憶された彼らの支払い情報を有することを可能にし、それによって、彼らは一度しか支払い情報を入力する必要がない。顧客が異なるオンライン店舗138を訪問するとき、彼らが以前にその店舗に行ったことがない場合であっても、プラットフォーム支払いファシリティ120は、彼らの情報を回収し、より迅速で正確な勘定を可能にする。これは、クロスプラットフォームネットワーク効果を提供し得、例えば顧客の購入に関する使用の容易さのおかげでより頻繁に勘定をするより多くの顧客が存在するので、eコマースプラットフォーム100は、より多くの商人が参加するにつれてその商人により有用となる。このネットワークの効果を最大化するために、所与の顧客に関する支払い情報は、オンライン店舗の勘定から回収可能であり得、情報がオンライン店舗138にわたって全体的に利用可能になることを可能にする。各オンライン店舗138が任意の他のオンライン店舗138に接続してそこに記憶された支払い情報を回収することが可能であることは、困難であり、誤りを起こしやすい。結果的に、プラットフォーム支払いファシリティは、コマース管理エンジン136の外部で実装され得る。
コマース管理エンジン136内に含まれていない機能に関して、アプリケーション142A-Bは、eコマースプラットフォーム100に特徴を追加する手段を提供する。アプリケーション142A-Bは、例えば、商人のオンライン店舗138にあるデータにアクセスし、これを修正し、アドミニストレータ114を通じてタスクを実施し、ユーザインタフェースを通じて商人のための新たなフローを創出し得る(例えば、それは、拡張機能/APIを通じて示される)。商人は、アプリケーション検索、推薦およびサポート128を通じてアプリケーション142A-Bを発見しインストールすることが可能にされ得る。いくつかの実施形態では、核となる製品、核となる拡張ポイント、アプリケーション、およびアドミニストレータ114が、共に作業するように開発され得る。例えば、アプリケーション拡張ポイントは、アドミニストレータ114の内部に構築され得、それによって、核となる特徴が、アプリケーションによって拡張され得、アプリケーションは、拡張機能を通じて機能を商人に送達し得る。
いくつかの実施形態では、アプリケーション142A-Bは、インタフェース140A-Bを通じて機能を商人に送達し得、例えば、アプリケーション142A-Bは、取引データを商人に示すことが可能であり(例えば、アプリ:「エンジン、内臓アプリSDKを用いてモバイル管理およびウェブ管理内の私のアプリデータを示して」)、および/またはコマース管理エンジン136は、要求された作業を実施することをアプリケーションに依頼することが可能である(エンジン:「アプリ、この勘定に関する地方税計算を私に提示して」)。
アプリケーション142A-Bは、例えば、オンライン店舗138およびチャンネル110A-Bをサポートし、商人サポートを提供し、他のサービスと統合し得る。コマース管理エンジン136がオンライン店舗138にサービスの基盤を提供し得る場合、アプリケーション142A-Bは、商人が特定のニーズおよび時には独自のニーズを満足させるための手段を提供し得る。異なる商人は、異なるニーズを有するため、異なるアプリケーション142A-Bから恩恵を受け得る。アプリケーション142A-Bは、アプリケーション分類(カテゴリ)の開発を通じてeコマースプラットフォーム100を通してより見出され得、アプリケーション分類は、例えば、検索、ランキング、および推薦モデルをサポートするアプリケーションデータサービスを通じて、およびアプリケーションストア、ホーム情報カード、アプリケーション設定ページ等のアプリケーション発見インタフェースを通じて、アプリケーションが商人のために実施する機能のタイプによってアプリケーションがタグ付けされることを可能にする。
アプリケーション142A-Bは、インタフェース140A-Bを通じてコマース管理エンジン136に接続され得、例えば、APIを活用して、(REST、GraphQL等を通じて)コマース管理エンジン136を通じてまたはその中で利用可能な機能およびデータをアプリケーションの機能に公開する。例えば、eコマースプラットフォーム100は、アプリケーション拡張機能、プロセスフローサービス、開発者向けリソース等を含む商人およびパートナー向けの製品およびサービスにAPIインタフェース140A-Bを提供し得る。顧客がより頻繁にモバイルデバイスをショッピングのために用いることによって、モバイル使用に関連しているアプリケーション142A-Bは、関連する増大するコマーストラフィックをサポートするためのAPIのより拡張的な使用からの恩恵を受け得る。(例えばアプリケーション開発のために提供されるような)アプリケーションおよびAPIの使用を通じて提供される柔軟性は、eコマースプラットフォーム100が、コマース管理エンジン136に継続的な変更を要求することなく商人(および内部APIを通じた内部開発者)の新しい独自のニーズにより良く適応することを可能にし、従って、商人が必要とするものを商人が必要とするときに商人に提供する。例えば、配送サービス122は、配送またはキャリアサービスAPIを通じてコマース管理エンジン136と統合され得、従って、eコマースプラットフォーム100がコマース管理エンジン136で実行しているコードに直接的に影響を及ぼすことなく、配送サービス機能を提供することを可能にする。
バックオフィス動作に関連する問題(商人向けのアプリケーション142A-B)およびオンライン店舗138における問題(顧客向けのアプリケーション142A-B)等、多くの商人の問題は、パートナーがアプリケーション開発を通じて商人ワークフローを改善および拡張することによって解決され得る。ビジネスをする一部として、多くの商人は、バックオフィスタスク(例えば、販促、在庫、割引、履行等)およびオンライン店舗タスク(例えば、彼らのオンライン店舗ショップに関連したアプリケーション、フラッシュセール、新製品の注文等)のために毎日モバイルおよびウェブ関連のアプリケーションを用い、アプリケーション142A-Bは、拡張機能/API140A-Bを通じて、急速に成長する市場において製品を容易に見て購入することを助ける。いくつかの実施形態では、パートナー、アプリケーション開発者、内部アプリケーションファシリティ等は、例えばアプリケーションインタフェースをサンドボックスするアドミニストレータ114内のフレームを創出することを通じて、ソフトウェア開発キット(SDK)を提供され得る。いくつかの実施形態では、アドミニストレータ114は、フレーム内で発生することを制御せず、発生したことに気付かないこともある。SDKは、ユーザインタフェースキットと共に用いられ、例えばコマース管理エンジン136の拡張機能として機能するeコマースプラットフォーム100のルックアンドフィールを模したインタフェースを生成し得る。
APIを活用するアプリケーション142A-Bは、要求されたデータをプルし得るが、それらは、更新が発生するときにデータがプッシュされる必要もある。例えば顧客創出、製品変更、または注文取消等の更新イベントは、サブスクリプションモデルにおいて実装され得る。更新イベントは、ローカルデータベースを同期させること、外部統合パートナーに通知すること等のためにコマース管理エンジン136の変更された状態に関して必要とされる更新を商人に提供し得る。更新イベントは、例えば更新イベントサブスクリプションを通じて更新を確認するためにコマース管理エンジン136を常にポーリングする必要なく、この機能を可能にし得る。いくつかの実施形態では、更新イベントサブスクリプションに関連する変更が発生すると、コマース管理エンジン136は、予め定義されたコールバックURL等に要求を送り得る。この要求の本体は、オブジェクトの新たな状態と、アクションまたはイベントの記述とを含み得る。更新イベントサブスクリプションは、アドミニストレータファシリティ114において手動で、または(例えばAPI140A-Bを介して)自動で創出され得る。いくつかの実施形態では、更新イベントは、待ち行列に入れられ、それらをトリガした状態変更から非同期で処理され得、それは、リアルタイムで分配されない更新イベント通知を生み出し得る。
いくつかの実施形態では、eコマースプラットフォーム100は、アプリケーション検索、推薦およびサポート128を提供し得る。アプリケーション検索、推薦およびサポート128は、アプリケーションの開発において支援するための開発者製品およびツールと、(例えば、開発インタフェースを開発者に提供するため、アドミニストレータのアプリケーションの管理のため、商人のアプリケーションのカスタマイズのため等の)アプリケーションダッシュボードと、(例えば、インストールされる前に基準が満たされなければならない公衆アクセスのため、または商人による私的な使用のため等の公共アクセスのための)アプリケーション142A-Bへのアクセスを提供することに関する許可をインストールおよび提供するためのファシリティと、商人のオンライン店舗138のニーズを満足させるアプリケーション142A-Bを商人が検索することを容易にするためのアプリケーション検索と、商人がどのようにして彼らのオンライン店舗138を通じたユーザ体験を改善し得るかについての提案を商人に提供するためのアプリケーション推薦と、コマース管理エンジン136内の核となるアプリケーション能力の記述と等を含み得る。これらのサポートファシリティは、任意のエンティティによって実施されるアプリケーション開発によって活用され得、任意のエンティティは、彼ら自身のアプリケーション142A-Bを開発する商人、アプリケーション142A-Bを開発する第三開発者(例えば、アプリケーション142A-Bは、商人によって契約され、公衆に提供するために独自で開発され、eコマースプラットフォーム100に関連付けられた使用のために契約される)、またはeコマースプラットフォーム100に関連付けられた内部パーソナルリソースによって開発されるアプリケーション142Aもしくは142Bを含む。いくつかの実施形態では、アプリケーション142A-Bは、例えば、アプリケーションに(例えばAPIを通して)リンクするために、アプリケーションを検索するために、アプリケーション推薦を作成するために、アプリケーション識別子(ID)を割り当てられ得る。
コマース管理エンジン136は、eコマースプラットフォーム100のベース機能を含み、これらの機能をAPI140A-Bを通じてアプリケーション142A-Bに公開し得る。API140A-Bは、アプリケーション開発を通じて構築されたアプリケーションの異なるタイプを可能にし得る。アプリケーション142A-Bは、商人の多様なニーズを満足させることを可能にし得るが、大まかに3つのカテゴリにグループに分けられ得る:顧客向けアプリケーション、商人向けアプリケーション、統合アプリケーション等。顧客向けアプリケーション142A-Bは、オンライン店舗138またはチャンネル110A-Bを含み得、オンライン店舗138またはチャンネル110A-Bは、商人が製品をリストアップしそれらを購入してもらうことが可能な場所(例えば、オンライン店舗、フラッシュセールのためのアプリケーション(例えば、商人製品または第三者リソースによる突発的なセールス機会からのもの)、モバイルストアアプリケーション、ソーシャルメディアチャンネル、卸売り購入を提供するためのアプリケーション等)である。商人向けアプリケーション142A-Bは、商人が、(例えば、ウェブもしくはウェブサイト、またはモバイルデバイスに関連するアプリケーションを通じて)彼らのオンライン店舗138を管理すること、彼らのビジネスを(例えばPOSデバイスに関連するアプリケーションを通じて)営業すること、(例えば配送(例えば置き配)に関連するアプリケーション、自動化されたエージェントの使用、プロセスフロー開発および改善の使用を通じて)彼らのビジネスを成長させること等を可能にするアプリケーションを含む。統合アプリケーションは、配送プロバイダ112および支払いゲートウェイ等のビジネスの営業に関する有用な統合を提供するアプリケーションを含み得る。
いくつかの実施形態では、アプリケーション開発者は、アプリケーションプロキシを用いて、外部の場所からデータをフェッチし、それをオンライン店舗138のページに表示し得る。これらのプロキシページにおけるコンテンツは、例えば動的であり、更新されることが可能であり得る。アプリケーションプロキシは、画像ギャラリ、統計、カスタムフォーム、および他の種類の動的コンテンツを表示するために有用であり得る。eコマースプラットフォーム100の核となるアプリケーション構造は、アプリケーション142A-Bで構築される増加した数の商人体験を可能にし、それによって、コマース管理エンジン136は、より一般的に活用されるコマースのビジネスロジックに焦点を当て続けることができる。
eコマースプラットフォーム100は、商人が柔軟で透明性のある態様で顧客に接触することを可能にする洗練されたシステムアーキテクチャを通じてオンラインショッピング体験を提供する。典型的な顧客体験は、例示的な購入ワークフローの実施形態を通じてより理解され得、ワークフローにおいて、顧客は、チャンネル110A-Bにある商人の製品を閲覧し、彼らが買いたい物を彼らのカートに追加し、勘定に進み、彼らのカートのコンテンツの支払いをし、商人への注文の創出をもたらす。そして、商人は、注文をレビューおよび履行(または取消)し得る。そして、製品は、顧客に送達される。顧客が満足しない場合、彼らは製品を商人に返却し得る。
例示的な実施形態では、顧客は、チャンネル110A-Bにある商人の製品を閲覧し得る。チャンネル110A-Bは、顧客が製品を見て買い得る場所である。いくつかの実施形態では、チャンネル110A-Bは、アプリケーション142A-B(可能な例外は、コマース管理エンジン136内に統合されるオンライン店舗138である)としてモデル化され得る。販促コンポーネントは、商人が、彼らが販売したい物および彼らがそれを販売する場所を説明することを可能にし得る。製品とチャンネルとの間の関連付けは、製品出版物としてモデル化され、例えば製品リストアップAPIを介してチャンネルアプリケーションによってアクセスされ得る。製品は、サイズおよび色、ならびに、極小かつ緑であるバリエーション、または大きいサイズかつ青であるバリエーション等、利用可能なオプションを全てのオプションの特定の組み合わせに拡大する多くのバリエーション等の多くのオプションを有し得る。製品は、少なくとも1つのバリエーション(例えば、「デフォルトバリエーション」は、どのオプションもない製品として創出される)を有し得る。閲覧および管理を促進するために、製品は、例えば、コレクションにグルーピングされ、製品識別子(例えば、在庫品維持ユニット(SKU))等を提供され得る。製品のコレクションは、例えば手動で製品を1つのコレクションに分類すること(例えば、カスタムコレクション)か、または自動的な分類(例えばスマートコレクション)のためのルールセット等を構築することのいずれかによって構築され得る。製品は、例えば仮想現実または拡張現実インタフェースを通じて、2D画像、3D画像、回転図画像として閲覧され得る。
いくつかの実施形態では、顧客は、彼らが買いたい物を彼らのカートに追加し得る(代替となる実施形態では、製品は、本明細書中で説明されるように、例えば買うボタンを通じて直接購入され得る)。顧客は、彼らのショッピングカートに製品バリエーションを追加し得る。ショッピングカートモデルは、チャンネル特有であり得る。オンライン店舗138カートは、複数のカートラインアイテムから構成され得、各カートラインアイテムは、製品バリエーションに関する量を追跡する。商人は、カートスクリプトを用いて、顧客のカートのコンテンツに基づいて顧客に特別なプロモーションを提供し得る。製品をカートに追加することは、顧客または商人からの何らかの約束を意味せず、カートの予測される寿命は数分の単位(日ではない)であり得るので、カートは、短期データ記憶装置に持続させられ得る。
そして、顧客は、勘定に進む。勘定コンポーネントは、顧客向けの注文創出プロセスとしてウェブ勘定を実装し得る。勘定APIは、いくつかのチャンネルアプリケーションによって用いられるコンピュータ向けの注文創出プロセスとして提供され、(例えば、販売時点情報管理として)顧客に代わって注文を創出し得る。勘定は、カートから創出され、eメールアドレス、請求書、および配送詳細等の顧客の情報を記録し得る。勘定の時、商人は、価格設定を確約する。顧客が彼らの連絡先情報入力したが、勘定に進まない場合、eコマースプラットフォーム100は、顧客に再び係合するための機会(例えば破棄された勘定の特徴)を提供し得る。それらの理由のため、勘定は、カートより遥かに長い寿命(時間またはさらに日)を有し得、したがって持続される。勘定は、顧客の配送先住所に基づいて税および配送費用を計算し得る。勘定は、税コンポーネントに税の計算を委任し、送達コンポーネントに配送費用の計算を委任し得る。価格設定コンポーネントは、商人が割引コード(例えば、勘定において入力されると、勘定されるアイテムに新たな価格を適用する「秘密の」文字列)を創出することを可能にし得る。割引は、顧客を引き付け、マーケティングキャンペーンの成果を評価するために、商人によって用いられ得る。割引および他のカスタム価格システムは、例えば価格ルール(例えば、満たされたときに一連の資格を示す一連の必須条件)を通じて、同一のプラットフォームピースの上部に実装され得る。例えば、必須条件は、「注文の小計が$100より高い」または「配送費用が$10を下回る」等のアイテムであり得、資格は、「注文全体の20%割引」または「$10引き製品X、YおよびZ」等のアイテムであり得る。
そして、顧客は、彼らのカートのコンテンツの支払いをし、これは、商人への注文の創出をもたらす。チャンネル110A-Bは、コマース管理エンジン136を用いて、お金、通貨または店舗の価値の蓄え(ドルまたは暗号通貨等)を顧客と商人との間で移動させ得る。種々の支払いプロバイダ(例えば、オンライン支払いシステム、モバイル支払いシステム、デジタルウォレット、クレジットカードケートウェイ等)との通信は、支払い処理コンポーネント内で実装され得る。支払いゲートウェイ106との実際の相互作用は、カードサーバ環境を通じて提供され得る。いくつかの実施形態では、支払いゲートウェイ106は、例えば主要な国際クレジットカードプロセッサを組み込んだ国際支払いを承認し得る。カードサーバ環境は、カードサーバアプリケーション、カードシンク、ホステッドフィールド等を含み得る。この環境は、機密クレジットカード情報のセキュアゲートキーパーとして機能し得る。いくつかの実施形態では、ほとんどのプロセスは、支払い処理ジョブによって組織化され得る。コマース管理エンジン136は、サイト外支払いゲートウェイ106を通じたもの(例えば、顧客が別のウェブサイトに向け直される)、手動によるもの(例えば、現金)、オンライン支払方法(例えば、オンライン支払システム、モバイル支払いシステム、デジタルウォレット、クレジットカードゲートウェイ等)、ギフトカード等、多くの他の支払い方法をサポートし得る。勘定プロセスの最後に、注文が創出される。注文は、商人と顧客との間の販売契約であり、商人は、注文にリストアップされた商品およびサービス(例えば、注文ラインアイテム、配送ラインアイテム等)を提供することに同意し、顧客は、(税を含む)支払いを提供することに同意する。このプロセスは、販売コンポーネントでモデル化され得る。コマース管理エンジン136勘定によらないチャンネル110A-Bは、注文APIを用いて注文を創出し得る。注文が創出されると、通知コンポーネントを介して、注文確認通知が、顧客に送られ得、注文完了通知が商人に送られ得る。売り過ぎを回避するために、注文処理ジョブが始動するとき、在庫が予約され得る(例えば、商人は、各バリエーションの在庫方針からこの行動を制御し得る)。在庫予約は、短い時間スパン(数分)を有し得、フラッシュセール(例えば、ターゲットインパルス購入等の短時間提供される割引またはプロモーション)をサポートするために、非常に高速かつスケーラブルである必要があり得る。支払いが失敗した場合、予約が解除される。支払いが成功し、注文が創出されたとき、予約が、特定の場所に割り当てられた長期在庫確約に変換される。在庫コンポーネントは、バリエーションが保管される場所を記録し得、在庫追跡が可能であるバリエーションに関して、量を追跡する。在庫は、在庫アイテム(量および場所が管理されるアイテムを表す商人向けコンセプト)から製品バリエーション(製品リストのテンプレートを表す顧客向けコンセプト)を切り離し得る。在庫レベルコンポーネントは、販売取扱量、注文が確約された量、または在庫転送コンポーネントから(例えば、ベンダーから)の仕入れ量を追跡し得る。
そして、商人は、注文をレビューし、履行(または取消)し得る。レビューコンポーネントは、ビジネスプロセス商人の使用を実装し、実際にそれらを履行する前に注文が履行に適していることを保証し得る。注文は、詐欺であり得、確認(例えばIDチェック)を要求し、彼らの資金を受領することを確実するために待つことを商人に要求する支払い方法を有し得る。リスクおよび推薦は、注文リスクモデルで永続化され得る。注文リスクは、例えば、詐欺検出ツールから生成され、注文リスクAPIを通じて第三者によって提出され得る。履行に進む前、商人は、支払い情報(例えば、クレジットカード情報)を捕捉するか、または(例えば、銀行送金、小切手等を介して)それを受領することを待って注文が支払われたことをマークする必要があり得る。それから、商人は、送達のために製品を準備し得る。いくつかの実施形態では、このビジネスプロセスは、履行コンポーネントによって実装され得る。履行コンポーネントは、在庫場所および履行サービスに基づいて作業の論理的履行単位に注文のラインアイテムをグルーピングし得る。商人は、作業の単位をレビューし、これを調節し、商人が箱から製品を取り出して梱包するときに用いられる(例えば、商人に管理された場所における)手動履行サービスを通じて、関連する履行サービスをトリガし、配送ラベルを購入してその追跡番号を入力するか、または、単に履行されたことをアイテムにマークし得る。カスタム履行サービスは、eメールを(例えば、API接続を提供しない場所に)送り得る。API履行サービスは、第三者をトリガし得、第三者が、履行記録を作成する。レガシー履行サービスは、コマース管理エンジン136から第三者へのカスタムAPIコールをトリガし得る(例えば、Amazonによる履行)。ギフトカード履行サービスは、ギフトカードをプロビジョニングし(例えば、番号を生成する)、アクティブにし得る。商人は、注文プリンタアプリケーションを用い、梱包票を印刷し得る。履行プロセスは、アイテムが箱に梱包され、配送の準備がされるとき、配送されるとき、追跡されるとき、送達されるとき、顧客によって受領されたことが確認されるとき等に実行され得る。
顧客が満足しない場合、彼らは、製品(単数または複数)を商人に返却し得る。商人が、アイテムを「販売できない」ことを経験し得るビジネスプロセスは、返却コンポーネントによって実装され得る。返却は、各種の異なるアクションから成り得、各種の異なるアクションは、例えば、再入庫(販売された製品が実際にビジネスに復帰し、再び販売可能である場合)、払い戻し(顧客から集めたお金が部分的または全額返却される場合)、どのくらいのお金が払い戻されたかを通知する会計調節(例えば、何らかの再入庫料金が存在する場合、または商品が返却されておらず、顧客の手元に残っている場合を含む)等である。返却は、販売契約(例えば注文)の変更を表し得、eコマースプラットフォーム100は、(例えば、税に関する)法規違反に関するコンプライアンスの問題を商人に知らせ得る。いくつかの実施形態では、eコマースプラットフォーム100は、商人が経時的に販売契約の変更を追跡することを可能にし、これは、販売モデルコンポーネント(例えば、アイテムに発生した販売関連のイベントを記録する追加専用の日付ベースの台帳)を通じて実装される。
eコマースプラットフォームにおける拡張現実の実装
仮想コンテンツを使用して実世界体験を変更する拡張現実(AR)および複合現実(MR)(本明細書中では概して「AR」と記される)等のテクノロジが、向上させられた顧客体験を提供するためにコマースにおいて使用され得る。eコマースプラットフォーム100は、各種の異なる用途のうちのいずれかのためにARを実装し得、その例が、本明細書中の別の箇所で説明される。図3は、図1のeコマースプラットフォーム100であるが、ARエンジン300を含むものを例証している。ARエンジン300は、eコマースプラットフォーム100、顧客デバイス150および/または商人デバイス102による使用のためのARコンテンツを生成するコンピュータ実装システムのある例である。
ARエンジン300は、図3においてeコマースプラットフォーム100の別種の構成要素として例証されているが、これは単なる例である。同様に、または、代わりに、ARエンジンは、eコマースプラットフォーム100内またはその外部に常駐する別のコンポーネントによって提供され得る。いくつかの実施形態では、アプリケーション142A-Bの一方または両方が、顧客および/または商人に利用可能であるARエンジンを提供する。さらに、いくつかの実施形態では、コマース管理エンジン136は、ARエンジンを提供する。eコマースプラットフォーム100は、1つ以上のパーティによって提供される複数のARエンジンを含み得る。複数のARエンジンは、同一の態様で、同様の態様で、および/または別種の態様で実装され得る。加えて、ARエンジンの少なくとも一部は、商人デバイス102および/または顧客デバイス150において実装され得る。例えば、顧客デバイス150は、ソフトウェアアプリケーションとしてARエンジンを記憶し、それをローカルで実行し得る。
ARエンジン300は、本明細書中で説明される機能のうちの少なくともいくつかを実装し得る。以下で説明される実施形態は、eコマースプラットフォーム100等(しかしこれに限定されない)のeコマースプラットフォームに関連付けられて実装され得るが、以下で説明される実施形態は、図1~図3の特定のeコマースプラットフォーム100に限定されない。さらに、本明細書中で説明される実施形態は、必ずしもeコマースプラットフォームに関連付けられて実装されることも、それを伴うことも必要としない。概して、ARの任意のアプリケーションが、本明細書中で開示されるシステムおよび方法を実装することができる。
コマースにおけるARの用途
AR(またはそのバリエーション)は、ユーザの実世界環境を仮想コンテンツで補完し、実世界環境のユーザの知覚を変更することができる。いくつかの実装では、同時位置決めおよびマッピング(SLAM)として知られているプロセスを通して、ユーザの実世界環境の表現およびその実世界環境内のユーザの位置が、例えばARエンジンによって継続的または断続的に決定され得る。本明細書中で使用される場合、位置は向きと場所との両方を含み得ることが留意されるべきである。ユーザのためのAR体験は、実世界環境の表現に1つ以上の仮想モデルをマッピングすることによって生成され得る。ユーザのためのARコンテンツは、実世界環境上に重ねられた仮想モデルのレンダリング表現を含み得る。レンダリング表現は、実世界環境内のユーザの相対的位置と、実世界環境への仮想モデルのマッピングとを反映するために生成され得る。このようにして、ARコンテンツは、ユーザのための実世界環境との仮想モデルのほとんどシームレスな統合を提供し得る。
いくつかの実装では、AR体験は、マーカ(例えば、クイックレスポンス(QR)コード等)、顔の特徴(例えば、ユーザの目および/または鼻等)、および/または実世界環境内の他の特徴を追跡することによって提供され得る。そして、これらの特徴は、AR体験において仮想コンテンツを使用して除去および/または変更され得る。
ARは、顧客が実世界製品と物理的に相互作用することが可能でないときに顧客が仮想製品を視認し、それと相互作用することを可能にし得る。例えば、ARは、画像内に捕捉された実世界環境上に製品の仮想表現を重ね得、これは、製品が実世界環境内に存在するように見えるようにすることができる。画像は、顧客の家または顧客に関連する別の場所のものであり、顧客が彼の興味のある環境内で製品を視認することを可能にし得る。いくつかの実装では、家具小売店は、ARを使用して、顧客が彼らの家の中で仮想家具を視認することを可能にし得る。例えば、テレビの仮想表現が、ARを使用して顧客のリビングルームのビデオストリーム上に重ね合わせられ、リビングルームにおけるテレビのサイズおよび見え方が認識されることを可能にし得る。
ARは、「ブリックアンドモルタル」小売店内に数多くの異なる製品のバリエーションをストックする商人の必要性を低減させるために使用され得る。例えば、いくつかの製品は、異なるバリエーションで入手可能であり、異なるバリエーションは、同一の形状および機能を有するが、それらの視覚的外観が異なり得る。そのような製品バリエーションの非限定的な例は、製品に関する異なる色、模様、テクスチャ、および/またはグラフィックデザインを含む。商人が小売店を通して製品を販売しているとき、数多くの製品バリエーションのストックを維持することは、典型的に、広大な保管空間を要求する。さらに、顧客に多くの異なる製品バリエーションを物理的に示すことは、時間がかかり、顧客が興味を失うという結果になり得る。
例として、いくつかの家具は、多くの異なるバリエーションが入手可能であり得るが、小売店は、バリエーションの全てをストックするために十分な保管空間を有していないこともある。ARは、物理的にバリエーションを保管する必要なく、比較的迅速な態様で顧客に家具の多くの異なるバリエーションの仮想表現を示すために使用され得る。
衣類は、ARを使用して顧客に提示され得る製品の別のタイプである。スマートミラーおよびAR性能を有する他のデバイスが、小売店において顧客の身体の一部上に衣類の仮想表現を重ねるために使用され得る。これは、スマート試着室とみなされ得る。商人がストックされている物理的な衣服を有しない場合でさえ、顧客は、衣類の見え方およびフィット感を評価することができる。加えて、顧客は、異なる衣服を物理的に着用する(これは時間がかかり得る)必要なく、衣類の異なるバリエーション間を迅速に切り替えることができる。
ARを使用して製品の仮想表現を作成することの欠点は、多くの顧客が、製品を購入するか否かを決定する前に、製品と物理的に相互作用することを望むことである。例えば、ある衣服を購入することに興味のある顧客を考慮されたい。顧客の身体の一部上に重ねられた衣服の仮想表現は、顧客が衣服を購入するか否かを決定するために十分な情報を提供しないこともある。仮想表現は、顧客に衣服がどう見えるかのインジケーションを提供し得る一方で、衣類は顧客の身体上にただ重ねられるだけであるので、顧客は、衣類の素材、たるみ、感触、および構造を評価することが可能ではない。さらに、衣服の静的な仮想表現は、顧客が動くと衣類がどのようにしわを寄せ、流れるかを含む、衣類のいくらかの審美的特徴を実証することができないこともある。例えば、衣服の静的表現は、着用時に着用者の身体の周囲で流れ、かつ動く物理的衣服より、紙人形の服に似て見えることがあり得る。
従って、商人に各バリエーションを物理的に保管することを要求することなく、顧客が製品と物理的に相互作用し、製品の複数の異なるバリエーションを視認することを可能にするシステムおよび方法に対するニーズが存在している。
いくつかの実施形態がコマースアプリケーションの文脈で説明されるが、本開示はいかようにもコマースに限定されないことが留意されるべきである。本明細書中で開示されるシステムおよび方法は、ARの他のアプリケーションにおいても実装され得る。
歪められた3Dモデルを使用したARコンテンツの生成
本開示は、部分的に、実世界アイテムを重ね、そして実世界アイテムを変更するためのARコンテンツを生成することに関している。小売店アプリケーションにおいて、これは、顧客が、ARを使用して製品の複数の異なるバリエーションを視認する一方で、製品の単一の実世界アイテムと物理的に相互作用することを可能にし得る。その結果、商人は、彼らの在庫として保管されているアイテムの総数を低減させることが可能であり得る。オンラインショッピングアプリケーションでは、商人は、顧客に製品の単一の実世界アイテムを配送し、顧客がARを使用して製品の複数の異なるバリエーションを視認することを可能にし得る。これは、1つのアイテムしか配送される必要がないので、商人および/または顧客のための配送コストを低減させ得る。
例として、製品の限られた数の無地のアイテムまたは一般的アイテムが、小売店においてストックされ得る。無地のアイテムは、単一のソリッドカラーのアイテムであり得るが、以下で議論されるように、これは、常に当てはまるわけではない。顧客は、無地のアイテムを使用して、製品と物理的に相互作用し、製品の感触、フィット感、動き、および/または他の物理的特徴を認識し得る。そして、ARは、無地のアイテム上に製品の異なる視覚的バリエーションを描写するように実装され、顧客が異なるバリエーションを視認することを可能にし得る。例えば、異なる製品の色、模様、および/またはグラフィックデザインが、ARを使用して顧客に提示され得る。そして、顧客は、製品の特定のバリエーションを注文し得る。
無地のアイテムは、小売店における使用のために意図されているだけであり、顧客のために販売されないこともある。あるいは、無地のアイテムは、例えばベージュのカウチまたはソリッドカラーの衣料等、製品の基本的なバージョンであり得る。顧客がカウチをショッピングしている場合、顧客がカウチに座ることを可能にするために、無地のカウチが小売店において利用可能であり得る一方で、カウチに関して入手可能である異なる色、模様、テクスチャ、およびグラフィックデザインの全てを実証するために、ARが使用される。同様に、顧客がシャツをショッピングしている場合、複数の異なるサイズの無地のシャツが、シャツのサイズを顧客が選ぶことに役立つように小売店において利用可能であり得る。顧客が好むシャツのバリエーションを顧客が決定することに役立つように、異なる視覚的外観が、ARを使用して無地のシャツ上に付与され得る。異なる視覚的外観は、顧客がシャツを着用しているとき、および/またはシャツがラックに掛けられているとき、もしくは別様に小売店内で陳列されているときに、付与され得る。無地のアイテムは、製品の最も所望されるバリエーションではない可能性が高いので、小売店内に製品の無地のアイテムをストックすることは、いくつかの場合、窃盗を低減させ得る。いくつかの場合、無地のアイテムは、無地のアイテム上に目立つように印字されているお知らせまたは文字によるものを潜在的に含む、そのように特有にブランドを表示されるかまたはマークされ得る。
多くの製品は、軟質であり、可撓性であり、順応性があり、または別様に変形可能である。従って、これらの製品の形状は、固定されないだけでなく、数多くの異なる要因のうちのいずれかに基づいて変化し得る。例えばコットンシャツを考慮されたい。シャツの形状は、とりわけ、どのように着用されるか、どのように動かさられるか、どのように保持されるか、どのような向きに向けられるかに基づいて変化し得る。ARを使用して変形可能アイテムの視覚的外観を変更するとき、実世界アイテム上に新たな視覚的外観を写実的に重ねるために、アイテムの3D形状のリアルタイムの把握が要求され得る。
いくつかの実施形態では、実世界アイテムの3D形状を決定することに役立つように、変形可能な実世界アイテムの測定値が取得される。これらの測定値は、例えば、光学画像、lidarスキャン、および/またはレーダスキャンを含み得る。そして、測定値の分析は、実世界アイテムのおおよその3D形状を提供するアイテム上の複数の点の3D位置または相対位置を決定し得る。測定される実世界アイテム上の点の数を増加させることは、実世界アイテムの形状がより正確に決定されることを可能にし得る。測定値の分析は、実世界アイテムに対するユーザデバイスの位置も決定し得る。
実世界アイテム上の複数の点の相対位置が決定された後、アイテムに対応するARコンテンツがユーザのために生成され得る。このARコンテンツは、概して、ユーザの視点からの実世界アイテムに重ねられたアイテムの3Dモデルのレンダリング表現を含む。いくつかの場合、3Dモデルは、アイテムのための新たな視覚的外観を提供し得る。例えば、3Dモデルは、特定の製品のバリエーションを描写するために実世界アイテムに重ねられ得る模様、色、および/またはグラフィックデザインを提供し得る。
いくつかの実施形態では、ARコンテンツを生成することは、修正されたモデルの形状がアイテムの測定された3D形状に対応するように、アイテムの3Dモデルを修正するか、変形させるか、または歪めることを含み得る。この歪みは、実世界アイテム上の複数の点の測定された相対位置に基づき得る。例えば、3Dモデル上の複数の点は、実世界アイテム上の複数の点の相対位置にマッピングされ得る。マッピング中、3Dモデルの一部が、位置変更されるか、または別様に変更され得、これは、実世界アイテムの3D形状を3Dモデルの形状で再現することができる。
実世界アイテムの測定された3D形状に基づいて3Dモデルを歪めることの利点は、アイテムのリアルタイムの変形が3Dモデルにおいて反映され、3Dモデルのレンダリング表現が写実的態様で実世界アイテムに適切に合致し、それに重なることを可能にし得る。例えば、実世界アイテムにおける任意の曲げ、折れ曲がり、ひだ、または他の変形が、修正された3Dモデルで捕捉され得る。これは、3Dモデルが実世界アイテムに「シュリンクラップ」されていると考えられ得る。3Dモデルを修正することは、3Dモデルが変形させられたアイテムに容易に重ねられることができない複雑な模様を含むとき、特に重要であり得る。例えば、無地のカウチ上にゼブラプリント模様を仮想的に再現するように試みるとき、模様を提供する3Dモデルは、人がカウチ上に座り、カウチを変形させることに応答して、修正され得る。従って、ゼブラプリント模様は、カウチの形状に能動的に適合させられる。
さらに、実世界アイテムの測定された形状に基づいて3Dモデルを歪めることは、可撓性表面の動きおよび流れが捕捉されることを可能にし得る。衣類および衣料等のアイテムに関して、これは、これらのアイテムの重要な美的側面を捕捉することができる。例として、顧客は、シャツが動き、折れ曲がり、しわを寄せたときにシャツ上の模様がどのように見えるのかを見ることを望み得る。
対照的に、ARコンテンツを生成してアイテムに重ねるときに実世界アイテムの3D形状が決定されない場合を考慮されたい。代わりに、アイテムの2D輪郭のみが決定される。そして、ARコンテンツは、アイテムの輪郭内に模様を重ねる。これは、例えばクロマキー合成を使用して行われ得、アイテムは、色に基づいて周囲環境から分離される。そして、選択された模様が、アイテム上に重ね合わせられ得る。アイテムが変形させられないとき、および/または模様が均一な色であるとき、この手法が、アイテムのために好適な仮想外観を提供し得る。しかしながら、模様が不均一であり、アイテムが変形可能である場合、クロマキー合成は、変形させられたアイテム上に模様を写実的に重ねることができないこともある。例えば、アイテムが折れ曲がりを有するシャツであり、模様がチェッカー模様である場合、クロマキー合成は、折れ曲がりの領域内の模様を正確に描写しない可能性があり得る。これは、クロマキー合成が、単一の視点からシャツの境界を検出するだけであり、シャツの3D形状を検出しないこともあるからである。
変形可能な実世界アイテムのためのARコンテンツの生成に続いて、ARコンテンツは、デバイスに出力され、実世界アイテムに重ねられ得る。ARコンテンツは、ユーザがアイテムに対して動いたときに、3Dモデルのレンダリング表現がユーザの視点からのアイテムのサイズおよび向きに一致することを確実にするように更新され得る。ARコンテンツを更新することは、例えばビデオ内に捕捉されたアイテムの任意の変形に合致するようにリアルタイムで3Dモデルを歪めることを含み得る。さらに、ユーザは、アイテムの異なる物理的外観を取得するために、アイテムの異なる3Dモデル間で能動的に切り替え得る。これは、顧客が例えば製品の異なるバリエーションを視認することを可能にし得る。
図4は、ある実施形態による第1の時点におけるドレス400を着用するユーザを例証しており、図5は、ある実施形態による第2の時点におけるドレス400を着用するユーザを例証している。ドレス400は、模様のない白色可撓性衣料である。ドレス400は、第1の時点において第1の3D形状402を有し、第2の時点において第2の3D形状404を有する。示されるように、3D形状402は、3D形状404と異なる。この形状の変化は、ユーザが動き、それによって、例えばドレス400の布における湾曲、折れ曲がり、およびしわを変更することによって引き起こされ得る。
図6は、第1の時点におけるドレス400を着用するユーザを例証しており、図7は、第2の時点におけるドレス400を着用するユーザを例証しているが、仮想模様600がドレス400上に重ねられている。仮想模様600は、チェッカー模様を有するドレス400のバリエーションを描写するARコンテンツによって提供され得る。いくつかの実装では、仮想模様600は、ドレス400の3Dモデルに対応している。3Dモデルは、第1の時点におけるドレス400の3D形状402に基づいて歪められ得る。そして、歪められた3Dモデルのレンダリング表現は、図6に示される仮想模様600を提供するために使用され得る。同様に、第2の時点におけるドレス400の3D形状404に基づいて3Dモデルを歪めた後、歪められた3Dモデルのレンダリング表現が、図7に示される仮想模様600を提供するために使用され得る。
仮想模様600は、図6および図7における3D形状402、404に基づいているので、仮想模様600は、ドレス400の湾曲および折れ曲がりに写実的に描写される。このようにして、仮想模様600は、チェッカー模様を有するドレス400のバリエーションが実世界においてどのように見え得るかをより良く表現し得る。
図6および図7に例証されている仮想模様600は、本明細書中に開示されるシステムおよび方法を使用して生成され得るARコンテンツのある例である。
ARコンテンツを生成するための例示的システムおよび方法
図8は、ある実施形態による歪められた3Dモデルを使用するARコンテンツの生成のためのシステム800を例証するブロック図である。システム800は、ARエンジン802と、ネットワーク820と、ユーザデバイス830と、物理的実世界アイテム850とを含む。
いくつかの実装では、実世界アイテム850は、ユーザデバイス830に関連付けられたユーザがARエンジン802および/またはユーザデバイス830を使用して仮想的に変更するように意図し得る特定の製品のアイテムである。例えば、実世界アイテム850は、ARを使用して異なる色、模様、および/またはデザインを重ねられ、製品の異なるバリエーションを描写し得る。実世界アイテム850は、製品の無地のアイテムとみなされ得る。
実世界アイテム850は、シャツとして例証されているが、これは単なる例である。実世界アイテム850は、より概略的には、任意の物体またはエンティティであり得る。いくつかの実装では、実世界アイテム850は、1つ以上の可撓性表面を含む。可撓性表面は、概して、順応性のある表面、変形可能な表面、または別様に形状を変化させることが可能な表面である。可撓性表面の非限定的な例は、布、プラスチック、およびゴムから作製された表面を含む。いくつかの実装では、実世界アイテム850は、衣料であるか、またはそれを含む。
ユーザデバイス830は、携帯電話、タブレット、ラップトップ、プロジェクタ、ヘッドセットおよびコンピュータであるか、またはそれらを含み得る。ユーザデバイス830は、例えば、顧客によって所有されおよび/または動作させられる顧客デバイスであり得るか、または商人によって所有されおよび/または動作させられる商人デバイスであり得る。
ユーザデバイス830は、プロセッサ832と、メモリ834と、ユーザインタフェース836と、ネットワークインタフェース838と、センサ840とを含む。ユーザインタフェース836は、例えば、ディスプレイスクリーン(タッチスクリーンであり得る)、ジェスチャ認識システム、スピーカ、ヘッドフォン、マイクロフォン、ハプティクス、キーボード、および/またはマウスを含み得る。ユーザインタフェース836は、視覚コンテンツ、触覚コンテンツ、音響コンテンツを含むARコンテンツをユーザに提示し得る。いくつかの実装では、ユーザデバイス830は、ユーザが実世界を視認すると同時に実世界上に重ねられたARコンテンツを視認することを可能にする嵌め込み型ディスプレイを有する、衣類素材に埋め込まれたデバイス、または眼鏡等のユーザによって着用されるデバイス等の植え込み型デバイスまたはウェアラブルデバイスを含む。
ネットワークインタフェース838は、ネットワーク820上で通信するために提供される。ネットワークインタフェース838の構造は、ユーザデバイス830がどのようにネットワーク820とインタフェース接続するかに依存する。例えば、ユーザデバイス830が携帯電話、ヘッドセットまたはタブレットである場合、ネットワークインタフェース838は、ネットワーク820へ無線伝送を送信しネットワーク820から無線伝送を受信するためのアンテナを有するトランスミッタ/レシーバを含み得る。ユーザデバイスがネットワークケーブルを用いてネットワークに接続されるパーソナルコンピュータである場合、ネットワークインタフェース838は、例えば、ネットワークインタフェースカード(NIC)、コンピュータポート、および/またはネットワークソケットを含み得る。プロセッサ832は、ユーザデバイス830によって実施される動作のうちの全てを直接実施するか、またはそれを命令する。これらの動作の例は、ユーザインタフェース836から受信されたユーザ入力を処理することと、ネットワーク820上での伝送のための情報を準備することと、ネットワーク820上で受信されたデータを処理することと、ディスプレイスクリーンに情報を表示するように命令することとを含む。プロセッサ832は、メモリ834内に記憶されている命令を実行する1つ以上のプロセッサによって実装され得る。あるいは、プロセッサ832のうちのいくつかまたはそれら全てが、特定用途向け集積回路(ASIC)、グラフィクス処理ユニット(GPU)、またはプログラムされたフィールドプログラマブルゲートアレイ(FPGA)等の専用回路を使用して実装され得る。
センサ840は、例えば、1つ以上のカメラ、レーダセンサ、lidarセンサ、および/またはソナーセンサを含み得る。センサ840は、ユーザデバイス830のコンポーネントとして示されているが、センサ840はまた、あるいは、または、代わりに、ユーザデバイス830から分離して実装され得、例えば有線接続および/または無線接続を介してユーザデバイス830および/またはARエンジン802と通信し得る。
センサ840は、ユーザデバイス830のユーザのためのAR体験を提供することに役立つように、実世界空間の測定値を取得し得る。例えば、センサ840は、SLAMプロセスのうちの少なくとも一部を実施し得る。いくつかの実装では、センサ840によって取得された測定値は、実世界アイテム850の形状を決定することに役立つように使用される。これらの測定値は、実世界アイテム850上の複数の点852の相対位置を提供し得る。点852は、実世界アイテム850上の画定された模様、特徴、構造、部分、または部位に対応し、これらは、センサ840によって検出可能であり、かつ/または位置決め可能であり得る。例えば、点852の各々は、実世界アイテム850上の布の間の縫い目に沿った場所に対応し得る。点852の相対位置を決定した後、実世界アイテム850の全体形状が、概算され、または推定され得る。いくつかの実装では、センサ840によって取得された実世界アイテム850の測定値は、点852の相対位置を決定するための分析のために、ARエンジン802に伝送される。
実世界アイテム850上の点852の数および位置は単に例として提供されることが留意されるべきである。概して、センサ840によって取得された測定値は、実世界アイテム850上の任意の数の点の相対位置を決定することに役立ち得る。例えば、何十、何百、何千、何万、何十万、または何百万の点の位置が、実世界アイテム850上で決定され得る。いくつかの場合、実世界アイテム850上でより多くの数の点の位置を決定することは、正確性および精密性を増加させ得、これによって、実世界アイテム850の形状が推定される。センサ840の分解能を増加させることは、検出および位置決めされることができる実世界アイテム850上の点の数を増加させ得る。比較的高いセンシング分解能は、実世界アイテム850の可撓性表面における折れ曲がりまたはしわ等の小さな形状変動を検出するように実装され得る。
いくつかの実装では、点852は、実世界アイテム850上、またはその中に組み込まれたマーカの場所に対応している。これらのマーカの各々は、測定値を通して検出可能である物理的構造またはデバイスであり得る。異なるタイプのマーカの非限定的な例は、光学マーカ、電波マーカ、慣性マーカ、および磁気マーカを含む。マーカは、実世界アイテム850に内在するだけでなく、実世界アイテム850に追加される追加要素であり得る。例えば、実世界アイテム850は、実世界アイテム850の形状が決定されることを可能にするように特別に追加されたマーカを含む無地のアイテムであり得る。実世界アイテム850上の点852においてマーカを実装することにより、点852の位置は、マーカを検出および位置決めすることによって決定され得る。
光学マーカは、光学画像を通して検出可能であり得る。例えば、色、シンボル、模様、発光素子、および/または反射素子が、光学マーカとして実装され、光学画像を通して検出可能であり得る。複数の光学画像は、マーカの位置、または、少なくともあるマーカの他のマーカに対する相対位置を決定するために使用され得る。とりわけ、いくつかの場合、光学マーカは、折れ曲がり、着用者の身体の位置等に起因して塞がれ得る。いくつかの実装では、1つ以上のマーカが塞がれている一方で他のマーカが視認可能であるという事実が、可撓性アイテムにおける折れ曲がりを検出することにおいて使用され、かつ/または採用され得る。加えて、または、あるいは、いくつかの実装では、例えばバーコードおよびクイックレスポンス(QR)コード等のコンピュータ読み取り可能なコードまたは証印が、光学マーカとして使用される。これらのコンピュータ読み取り可能なコードは、各マーカが実世界アイテム上で区別されることを可能にする情報を提供し得る。例えば、複数のQRコード(登録商標)が実世界アイテム上で実装されるとき、各QRコード(登録商標)は、QR(登録商標)コードがアイテム上の特定の点に対応していることを示す情報を提供し得る。
電波マーカは、無線周波数識別(RFID)リーダによって検出および位置決めされることができるRFIDトランスポンダを含み得る。慣性マーカは、慣性センサを含み得、慣性センサは、アイテム内に組み込まれ、慣性データを伝送することができ、慣性データは、センサの位置を決定するために分析され得る。磁気マーカは、例えば磁束測定値を通して検出および位置決めされる磁石を含み得る。
ネットワーク820は、ARエンジン802およびユーザデバイス830を含む異なるデバイス間の有線接続および/または無線接続を実装するコンピュータネットワークであり得る。ネットワーク820は、当技術分野において公知である任意の通信プロトコルを実装し得る。通信プロトコルの非限定的な例は、ローカルエリアネットワーク(LAN)、無線LAN、インターネットプロトコル(IP)ネットワーク、およびセルラネットワークを含む。
ARエンジン802は、歪められた3Dモデルに基づくARコンテンツを含むARコンテンツの生成をサポートする。例証されるように、ARエンジン802は、プロセッサ804と、メモリ806と、ネットワークインタフェース808とを含む。プロセッサ804は、メモリ806内または別のコンピュータ読み取り可能な媒体内に記憶されている命令を実行する1つ以上のプロセッサによって実装され得る。あるいは、プロセッサ804のうちのいくつかまたはそれら全てが、ASIC、GPU、またはプログラムされたFPGA等の専用回路を使用して実装され得る。
ネットワークインタフェース808は、ネットワーク820上での通信のために提供される。ネットワークインタフェース808の構造は、実装特有である。例えば、ネットワークインタフェース808は、NIC、コンピュータポート(例えば、プラグまたはケーブルが接続する物理的差込口)、および/またはネットワークソケットを含み得る。
メモリ806は、3Dモデルレコード810と、画像アナライザ812と、3Dモデルディストータ814と、ARコンテンツジェネレータ816とを記憶している。
3Dモデルレコード810は、アイテム、物体、建物、場所、風景、人々、解剖学的特徴、動物、および/または任意の他のタイプのエンティティの仮想3Dモデルを含み得る。3Dモデルは、長さ、幅、および高さで画定されたエンティティの数学的表現である。3Dモデルは、3D仮想座標系内に位置付けられるか、または別様に画定され得、3D仮想座標系は、例えば、デカルト座標系、円筒座標系、または極座標系であり得る。3Dモデルは、3Dモデルが仮想座標系の中心にあるように、仮想座標系の原点にアンカされ得る。3Dモデルは、全体的にコンピュータ生成され得るか、または、実世界エンティティの測定値に基づいて生成され得る。実世界エンティティから3Dモデルを生成するための可能な方法は、写真測量(一連の2D画像から3Dモデルを作成すること)および3Dスキャニング(エンティティの周囲でスキャナを動かし、全角度を捕捉すること)を含む。
3Dモデルは、仮想アイテムがAR体験内の種々の異なる角度で視認されることを可能にするように、AR体験において実装され得る。さらに、ユーザが3D性能を有するデバイス(例えば、ヘッドセット等)を使用してAR体験と相互作用しているとき、3Dモデルは、仮想アイテムの3D表現が生成されることを可能にし得る。例えば、仮想アイテムの3D表現は、ユーザの各眼において仮想アイテムのわずかに異なる視点を表示し、物体に3D効果を与えることによって、実現され得る。
3Dモデルレコード810内に記憶されている3Dモデルは、音響コンテンツおよび/または触覚コンテンツも関連付けていることもある。例えば、3Dモデルレコード810は、モデルによって鳴らされるかまたは別様にモデルに関連付けられた音、および/またはモデルのための感触を提供することができる触覚フィードバックを記憶し得る。
いくつかの実装では、3Dモデルレコード810内に記憶されている1つ以上の3Dモデルは、製品に関する異なるバリエーションを提供する。例えば、複数の3Dモデルは、同一の製品に基づき得るが、その全てが、製品の異なるバリエーションを反映する異なる視覚コンテンツ、音響コンテンツ、および/または触覚コンテンツを有し得る。本明細書中の別の箇所で議論されるように、これらの3Dモデルは、これらの異なるバリエーションをユーザに提供するために、その製品の実世界アイテム上に重ねられ得る。
3Dモデルレコード810内に記憶されている3Dモデルは製品の一部のみを表現し得ることが留意されるべきである。一例では、3Dモデルは、シャツのためのロゴを表現し、それは、ユーザによって着用されている実世界のシャツの画像上にロゴを重ねるように実装され得る。これは、ロゴを含むシャツのバリエーションを描写し得る。別の例では、3Dモデルは、ベルを表現し、そのベルは、ベルを含む自転車のバリエーションを描写するために、実世界の自転車の画像上に重ねられ得る。
3Dレコード810内の3Dモデルは、数多くの異なる手法のうちのいずれかで取得され得る。いくつかの実装では、3Dモデルのうちの少なくともいくつかは、例えば、顧客から、または商人から等、ARエンジン802のユーザから取得される。商人は、彼らの店舗において販売されている製品のうちのいずれか、それらのうちの1つ、それらのうちのいくつか、またはそれら全てのための1つ以上の3Dモデルを生成し得る。これらの3Dモデルは、商人によってARエンジン802に直接提供され得るか、または、ARエンジン802は、eコマースプラットフォーム上の商人のアカウントから、および/または商人のオンライン店舗から3Dモデルを取得し得る。3Dモデルは、例えばソーシャルメディアプラットフォーム等の他のプラットフォームからも取得され得る。加えて、いくつかの3Dモデルは、ARエンジン802においてローカルで生成され得る。例えば、ARエンジン802によって取得される画像またはスキャンは、3Dモデルを生成するために使用され得る。
画像アナライザ812は、ARエンジン802によって受信され、かつ/または記憶されている画像を分析するために提供される。画像アナライザ812は、AR体験のためのSLAMプロセスの少なくとも一部を実装し得る。例えば、画像アナライザ812は、実世界空間の1つ以上の画像から実世界空間の表現を生成し、実世界空間内でユーザおよび/またはユーザデバイスを位置決めし得る。実世界空間の表現は、仮想座標系内に画定された表面、縁および/または角を含み得る。
いくつかの実装では、画像アナライザ812は、実世界アイテム850上の点852等の実世界アイテム上の複数の点の相対位置を決定することに役立つように、センサ840から受信された画像を分析するために使用される。例として、画像分析は、実世界アイテムの表面、縁、および/または角等の実世界アイテムの特徴を検出し、これらの特徴の3Dでの寸法および相対位置を決定し得る。そして、特徴の相対位置は、実世界アイテム上の複数の点の相対位置を取得するために使用され得る。
複数の画像が、画像アナライザ812に入力され得る。例えば、異なる位置から撮影された実世界アイテムの複数の画像が、実世界アイテム上の多くの数の点の検出および位置決めを可能にし得る。複数の画像は、例えば、ビデオストリームから、および/または複数の異なるカメラから取得され得る。画像アナライザ812が実世界アイテムのビデオストリームを受信する場合、画像アナライザ812は、実世界アイテムの特徴を位置特定するための初期特徴検出動作を実施し得る。そして、これらの特徴は、リアルタイムでビデオストリームから受信された連続する画像において追跡され得る。連続する画像において検出された新たな特徴は、実世界アイテム上のより多くの点の相対位置を決定するために使用され得る。
画像アナライザ812は、プロセッサ804によって実行可能であるソフトウェア命令の形式で実装され得る。数多くの異なるアルゴリズムのうちのいずれかが、画像アナライザ812内に含まれ得る。そのようなアルゴリズムのうちの非限定的な例は、
・表面、角、および/または縁検出アルゴリズム
・物体認識アルゴリズム
・運動検出アルゴリズム
・画像分割アルゴリズム
を含む。
画像分析アルゴリズムに関するさらなる詳細が、Richard Szeliskiによる「Computer Vision: Algorithms and Applications」(ISBN: 978-1-84882-935-0(Springer、2010))において見出されることができ、その内容は、それら全体が参照によって本明細書中に援用される。
実世界アイテムに組み込まれたマーカは、画像アナライザ812によって検出され、かつ位置決めされ得る。これらのマーカは、マーカが画像分析を通して比較的容易に検出可能であるように構成され得る。例えば、実世界アイテム上の明るい色、発光素子、および/または光反射素子は、画像分析を通して比較的容易に検出可能であり得る。画像アナライザ812は、マーカが対応している実世界アイテム上の点を決定するために、マーカによって提供される機械読み取り可能なコードを読み取るようにも構成され得る。
画像アナライザ812は、実世界アイテムの画像を分析し、アイテム上の複数の点の相対位置を決定するために、1つ以上の機械学習(ML)モデルを実装し得る。アイテムは、MLモデルによって検出されて位置決めされるマーカを含み得るが、これは常に当てはまるわけではない。MLモデルは、代わりに、アイテムの特定の内在する物理的特性を位置決めするように訓練され得る。
一例によると、画像アナライザ812によって実装されるMLモデルのための訓練データセットは、実世界アイテム上の複数の点にRFIDトランスポンダを組み込むことによって生成される。RFIDトランスポンダは、アイテム上に見えない。そして、アイテムの光学画像(例えば、デジタル写真)が取得され、RFIDトランスポンダの位置を同時に測定する。光学画像およびRFIDトランスポンダの測定された位置が、MLモデルのための訓練データセットを形成し得る。例えば、RFIDトランスポンダの位置は、光学画像をラベル付けするために使用され得、これは、MLモデルを訓練するためのラベル付けされたデータのセットを作成する。そして、MLモデルは、ある時点において捕捉された光学画像に基づいて、その時点での各RFIDトランスポンダの測定された位置を予測するように訓練され得る。訓練後、MLモデルは、そのアイテムおよび同様のアイテム(例えば、同一の製品のアイテム)の光学画像を処理し、RFIDトランスポンダが組み込まれた点に対応するアイテム上の点を検出して位置決めし得る。他の例では、実世界アイテム内のジャイロスコープからの慣性データ、実世界アイテム内の加速度計からの加速度データ、および/または光学画像の手動ラベル付けはまた、あるいは、または、代わりに、MLモデルのための訓練データセットを作成するために使用され得る。
3Dモデルディストータ814は、対応する実世界アイテム上の複数の点の相対位置に基づいて3Dモデルを歪めるために(可能ならば、プロセッサ804によって実行可能なソフトウェア命令の形式で)1つ以上のアルゴリズムを採用および/または実装する。結果として生じる歪められた3Dモデルの形状は、実質的に、実世界アイテムの形状に合致し得る。例として、3Dモデルディストータ814は、点852の相対位置に基づいて、実世界アイテム850に対応する3Dモデルを歪め得る。この3Dモデルは、3Dモデルレコード810から取得され得、点の相対位置が、センサ840からの測定値を使用して、画像アナライザ812によって決定され得る。
いくつかの実装では、3Dモデルディストータ814は、実世界アイテム上の点の測定された位置に基づいて、3Dモデルの点をマッピングし、または別様にその点を位置変更し得る。そして、多角形モデリング、曲線モデリング、および/またはデジタルスカルプティングが、位置変更された点に基づいて歪められた3Dモデルを形成するために、3Dモデルディストータ814によって使用され得る。このようにして、歪められた3Dモデルの形状は、実世界アイテムの形状に対応し得る。
ARコンテンツジェネレータ816は、1人以上のユーザのためのARコンテンツを生成するために(可能ならば、プロセッサ804によって実行可能なソフトウェア命令の形式で)1つ以上のアルゴリズムを採用および/または実装する。このARコンテンツは、AR体験をユーザに提供し得る。
ARを生成するために、ARコンテンツジェネレータ816への可能な入力は、以下を含み得る。
・1つ以上の3Dモデル。例えば、3Dモデルが、3Dモデルレコード810から取得され得る。
・1つ以上の歪められた3Dモデル。例えば、3Dモデルが、3Dモデルディストータ814から取得され得る。
・ユーザに関連付けられた実世界空間の表現。実世界空間の表現は、SLAMプロセスおよび/または画像アナライザ812を使用して取得され得る。実世界空間の表現は、仮想座標系内に画定され得る。
・実世界空間内のユーザおよび/またはユーザデバイスの位置(例えば、SLAMプロセスおよび/または画像アナライザ812を使用して決定される)。
・実世界空間内の1つ以上の実世界アイテムの位置(例えば、SLAMプロセスおよび/または画像アナライザ812を使用して決定される)。
・実世界空間内の実世界アイテム上の複数の点の位置(例えば、画像アナライザ812を使用して、ならびに/または、電波測定値、慣性測定値および/または磁気測定値の分析を通して決定される)。
ARコンテンツジェネレータ816によって出力されるARコンテンツは、視覚コンテンツ、触覚コンテンツ、および/または音響コンテンツを含み得る。この視覚コンテンツ、触覚コンテンツ、および/または音響コンテンツは、実世界空間内のユーザおよび/またはユーザデバイスの相対位置(場所および向きを含む)に基づいて生成され得る。このようにして、ARコンテンツは、文脈的に類似した態様で実世界空間のユーザの知覚を仮想的に変更し得る。
視覚コンテンツは、ユーザがAR体験内で仮想的な模様、グラフィクス、および/または物体を視認することを可能にし得る。いくつかの実装では、視覚コンテンツは、ユーザを囲う実世界空間上に重ねられ得る。これは、例えばカメラによって捕捉された実世界空間の画像に視覚コンテンツを合成することを含み得る。あるいは、視覚コンテンツは、例えばARヘッドセット内の透明ディスプレイを使用して実世界空間上に重ねられ得る。いくつかの実装では、ARコンテンツは、アイテムの物理的外観を変化させるように実世界アイテム上に重ねられた3Dモデルのレンダリング表現を含む。これは、製品の複数の視覚バリエーションが同一の実世界アイテム上で視認されることを可能にし得る。
触覚コンテンツは、ユーザがAR体験内で仮想テクスチャに接触し、感触を確かめることを可能にし得る。触覚コンテンツは、実世界アイテムのテクスチャを変更し得る。コマース用途において、これは、ユーザが製品の無地のアイテムと相互作用し、製品の1つ以上の他のバリエーションのテクスチャの感触を確かめることを可能にし得る。触覚コンテンツは、少なくとも部分的に嵌め込み型ハプティクスを有する衣類を使用して実装され得る。
音響コンテンツは、ユーザがAR体験内で音を聞くことを可能にし得る。音響コンテンツは、AR体験内での音響コンテンツの源に対するユーザの位置に対応する方向性を有する空間的音響を実装し得る。いくつかの実装では、空間的音響は、ユーザの各耳内へ再生される音を独立して制御することによって生み出される。
ARコンテンツは、AR体験における変化および/または修正を反映するために、ARコンテンツジェネレータ816によって、継続的または断続的に更新されることができる。例えば、3Dモデルが実世界アイテムの外観を変更するために使用されており、ユーザが実世界アイテムに対して動く場合、実世界アイテムに対するユーザの新たな位置を反映するために、新たなARコンテンツが生成され得る。新たなARコンテンツは、実世界アイテムに対するユーザの新たな位置に基づく3Dモデルの新たなレンダリング表現を含み得る。さらに、実世界アイテムが変形可能であり、かつ経時的に形状を変化させる場合、新たなARコンテンツは、実世界アイテムのリアルタイムの形状に基づいて歪められた3Dモデルを使用して生成され得る。
画像アナライザ812、3Dモデルディストータ814、およびARコンテンツジェネレータ816が、メモリ806内に別個に記憶されているように例証されているが、これは単なる例である。いくつかの実施形態は、画像アナライザ812、3Dモデルディストータ814、および/またはARコンテンツジェネレータ816の機能をメモリ806または別のコンピュータ読み取り可能な媒体内に記憶されている単一のソフトウェアインスタンスに組み合わせ得る。
ARエンジン802によって生成されたARコンテンツは、ユーザデバイス830における提示のために出力され得る。例えば、ARコンテンツは、ユーザインタフェース836上に表示され得る。従って、ユーザデバイス830は、ユーザがARエンジン802によって提供されるAR体験に関与することを可能にし得る。図5では、1つのユーザデバイスが例として示されている。しかしながら、複数のユーザデバイスが、ARエンジン802と通信し、および/またはARエンジンからARコンテンツを受信し得る。
ARエンジン802は、例として提供される。ARエンジンの他の実装も想定される。いくつかの実装では、ARエンジンは、eコマースプラットフォームのコア機能として、または、eコマースプラットフォームによってサポートされるかもしくはeコマースプラットフォームと通信するアプリケーションもしくはサービスとして、eコマースプラットフォームによって少なくとも部分的に提供される。いくつかの実装では、ARエンジンは、ARコンテンツを生成するためのスタンドアロン型サービスとして実装される。ARエンジン802は、単一のコンポーネントとして示されているが、ARエンジンは、代わりに、ネットワークを介して通信する複数の異なるコンポーネントによって提供され得る。
いくつかの実装では、ユーザデバイス830は、ARコンテンツ生成能力を有する。例えば、ARエンジン802と同様のARエンジンが、部分的または全体的にユーザデバイス830上で実装され得る。ソフトウェアアプリケーションまたはインスタンスは、ユーザデバイス830上にインストールされ、ARコンテンツをローカルで(すなわち、ユーザデバイス830上で)生成し得る。ソフトウェアアプリケーションは、3Dモデルレコード810、画像アナライザ812、3Dモデルディストータ814、および/またはARコンテンツジェネレータ816のうちの少なくともいくつかを、ARエンジン802から受信し得る。
ここで図9を参照すると、ある実施形態による歪められた3Dモデルを使用してARコンテンツを生成するための方法900を例証するフロー図が示されている。方法900は、実世界アイテム850を仮想的に変更するために図8のARエンジン802によって実施されるように説明される。しかしながら、代わりに、方法900の少なくとも一部が、例えばユーザデバイス830等の別の場所で実施され得る。さらに、方法900は実世界アイテム850に関連して上で説明されるが、方法900は、より概略的には、任意のアイテムおよび/またはアイテムの任意の部分を仮想的に変更するために適用され得る。これらのアイテムは、変形可能なアイテムであり得、その非限定的な例は、衣類、靴、および家具を含む。
ステップ902は、プロセッサ804が実世界アイテム850上の複数の点の相対位置を決定することを含む。これらの点は、限定ではないが、点852を含み得る。実世界アイテム850上の複数の点の相対位置は、ある時点における実世界アイテム850(または実世界アイテム850の少なくとも一部)のおおよその形状を示し、またはそれを提供し得、ステップ902の後、メモリ806内に記憶され得る。
いくつかの実装では、実世界アイテム850上の点の決定された位置は、AR体験の仮想座標系内に画定される。例えば、SLAMプロセスが、実世界アイテム850を囲む実世界空間に仮想座標系をマッピングするために使用され得る。そして、実世界アイテム850上の複数の点の位置は、仮想座標系内の座標として画定され得る。ユーザおよび/またはユーザデバイス830の位置も、仮想座標系内に画定され得る。
実世界アイテム上の点の決定された位置が場所および向きを含み得ることが留意されるべきである。例えば、実世界アイテム850の表面上の点は、表面上の点の場所(例えば、仮想座標系における点の座標等)と点における表面に対する法線ベクトルとによって画定され得る。
いくつかの実装では、ステップ902は、随意にセンサ840を使用して実世界アイテム850の測定値を取得することを含む。そのような測定値の非限定的な例は、光学測定値、電波測定値、慣性測定値、および/または磁気測定値を含む。測定値は、実世界アイテム850上の複数の点の相対位置を決定するために、ユーザデバイス830のプロセッサ832によって分析され得る。そして、点の相対位置は、ARエンジン802に伝送され得る。あるいは、または、加えて、測定値は、プロセッサ804による分析のために、ユーザデバイス830からARエンジン802に伝送され得る。例えば、光学画像は、実世界アイテム850上の複数の点の相対位置を決定するために、画像アナライザ812に入力され得る。
いくつかの実装では、実世界アイテム850上の複数の点の相対位置を決定することに役立つように、ステップ902においてMLモデルが使用される。本明細書中の別の箇所でさらに詳細に議論されるように、MLモデルは、実世界アイテム850の光学測定値および/または他の測定値を使用して実世界アイテム850上の点を検出して位置決めするように訓練され得る。ステップ902は、MLモデルにこれらの測定値を入力することと、MLモデルの出力を取得することとを含み得る。そして、実世界アイテム850上の点の相対位置は、MLモデルの出力に基づいて決定され得る。このMLモデルは、例えば画像アナライザ812によって実装され得る。
上で留意されるように、マーカが実世界アイテム850上の複数の点において実装され得る。ステップ902は、各マーカの相対位置を決定することを含み得、各マーカは、実世界アイテム850上のそれぞれの点の位置として使用され得る。いくつかの実装では、マーカは、光学マーカであるか、またはそれを含み得る。これらの実装では、ステップ902は、例えばセンサ840から実世界アイテム850の1つ以上の画像を取得することし(例えば画像アナライザ812を使用して)画像に画像分析を実施し、マーカを検出および/または位置決めすることを含み得る。
実世界アイテム850のいくつかの点は、特定の状況において、測定値を通して検出可能でないこともある。例えば、実世界アイテム850が衣類等の変形可能なアイテムであるとき、実世界アイテム850の流れまたは折れ曲がりは、いくつかの点が仮想的に塞がれるようにし得る。実世界アイテム850の一部の非検出は、実世界アイテム850の表面における折れ曲がりまたはしわとしてARエンジン802によって構築され得る。例として、実世界アイテム850がQRコード(登録商標)を含み、QRコード(登録商標)のうちのいくつかが光学測定値を通して検出可能ではないとき、塞がれたQRコード(登録商標)の位置は、1つ以上の折れ曲がりとして指定され得る。あるいは、または、加えて、実世界アイテム850の一部の非検出は、実世界アイテム850のその部分を遮断する別の物体としてARエンジン802によって構築され得る。画像分析を通した実世界アイテム850上の影の検出は、例えば、実世界アイテム850内の折れ曲がりまたはしわの位置を決定するための別の潜在的な方法である。
実世界アイテム850内の折れ曲がりまたはしわの検出は、例えばモーションキャプチャスーツの使用とは別物である。モーションキャプチャスーツは、画定された基準点にマーカを有し、スーツを皮膚に密着させることによって、それらのマーカがずれ、不必要に塞がれるようになることを抑止するように構成される。モーションキャプチャスーツの皮膚密着性質は、スーツの折れ曲がりをわざと低減させ得る。対照的に、例えば衣料等の多くの製品は、折れ曲がりやすく、折れ曲がるように設計されることさえあり得る。
ステップ904は、プロセッサ804がステップ902において決定された実世界アイテム850上の複数の点の相対位置に基づいて仮想アイテムの3Dモデルを歪めることを含む。仮想アイテムの3Dモデルは、実世界アイテム850に対応し得る。例えば、3Dモデルは、実世界アイテム850を表現するように生成され得、実世界アイテム850または同様のアイテム(例えば、商人によって販売されている同一の製品のアイテム)の3Dスキャンに基づいて生成されることさえあり得る。しかしながら、3Dモデルは、実世界アイテム850全体ではなく、実世界アイテム850の一部のみを表現し得る。
いくつかの実装では、ステップ904は、ステップ902において決定された点の相対位置に対応する相対位置内にあるように、3Dモデルにおいて点を位置変更するように3Dモデルを修正することを含む。そして、多角形モデリング、曲線モデリング、および/またはデジタルスカルプティングが、位置変更された点を接続して歪められた3Dモデルを形成するために使用され得る。その結果、歪められた3Dモデルの形状は、実世界アイテム850の形状に実質的に合致し得る。
いくつかの実装では、ステップ904は、実世界アイテム850の3Dモデルおよび/またはその複数の点の相対位置を3Dモデルディストータ814に入力することを含む。仮想アイテムの歪められた3Dモデルは、3Dモデルディストータ814からの出力から取得され得る。
ステップ904において生成された歪められた3Dモデルは、実世界アイテム850のユーザの知覚を変更するために使用され得る。いくつかの実装では、3Dモデルは、実世界アイテム850のための視覚的外観を含む。同様に、または代わりに、3Dモデルは、実世界アイテム850のための仮想的な音および/またはテクスチャを含み得る。視覚的外観、音、および/またはテクスチャは、実世界アイテム850の特定のバリエーションを刺激し得る。例えば、実世界アイテム850が商人によって販売されている特定の製品に対応するとき、3Dモデルは、その製品の特定のバリエーションを模し得る。
ステップ904において歪められた3Dモデルは、3Dモデルレコード810から取得され得る。3Dモデルレコード810から特定の3Dモデルを選択することは、数多くの異なる手法のうちのいずれかで実施され得る。いくつかの場合、3Dモデルは、例えばユーザデバイス830におけるユーザ入力を介して、3Dモデルのセットから能動的に選択され得る。選択された3Dモデルは、例えば、ユーザが仮想的に相互作用することを望む実世界アイテム850の特定のバリエーションに対応し得る。
いくつかの実装では、ステップ904において歪められた3Dモデルは、コンピュータプラットフォームによって自動的に選択され、提案され得る。例えば、ARエンジン802は、ユーザデバイス830のユーザのために1つ以上の3Dモデルを提案し得る。そして、ユーザは、ユーザインタフェース836における入力を介して、提案された3Dモデルのうちの1つを選択し得る。
実世界アイテム850のための3Dモデルを自動的に選択または提案することは、例えば実世界アイテム850に対応する製品もしくは製品タイプ、および/または、実世界アイテム850を販売する商人の身元等、実世界アイテム850に関するいくつかの情報の使用を伴い得る。製品、製品タイプ、および/または商人の身元は、ユーザデバイス830におけるユーザ入力を通してユーザによって提供され得る。あるいは、または、加えて、実世界アイテム850の測定値は、実世界アイテム850に対応する製品、製品タイプおよび/または商人を自動的に識別するために使用され得る。
一例によると、実世界アイテム850上のマーカの特定の配置は、商人によって販売される特定の製品に対応し得る。(可能ならばMLモデルを使用した)マーカの相対位置の分析を通して、プロセッサ804は、製品のための製品番号、および/または製品を販売する商人の身元を取得し得る。別の例によると、実世界アイテム850上のQRコード(登録商標)は、製品番号および/または商人を識別することに役立つような情報をエンコードし得る。製品番号および/または商人の身元を取得した後、ARエンジン802は、実世界アイテム850のための3Dモデルを選択し、提案し得る。これらの3Dモデルは、商人によって販売されるその製品の外観を変更する特定の目的のために生成され得る。
ユーザの好みはまた、あるいは、または、代わりに、実世界アイテム850のための3Dモデルを自動的に選択または提案することに役立つように使用され得る。例えば、実世界アイテム850に対応する製品および/または商人が識別されると、その製品および/または商人に対応する3Dモデルのリストが、3Dモデルレコード810から取得され得る。そして、ユーザの好みは、このリストから3Dモデルのサブセットを選択するために、ARエンジン802によって使用され得る。一例では、ユーザデバイス830のユーザが実世界アイテム850と同様の黄色の製品を過去に購入している場合、ユーザのために選択または提案される3Dモデルは、実世界アイテム850の黄色のバリエーションを提供し得る。別の例では、他のユーザが典型的に実世界アイテム850の特定のバリエーションを購入および/または視認する場合(すなわち、そのバリエーションは、顧客に人気である)、そのバリエーションに対応する3Dモデルが、ユーザデバイス830のユーザのためにARエンジン802によって選択または提案され得る。
ユーザの好みのレコードは、ユーザのために3Dモデルを自動的に選択または提案することに役立つようにARエンジン802によって記憶され得るが、これは常に当てはまるわけではない。ユーザの好みのレコードはまた、別の場所に記憶され、ARエンジン802によってアクセスされ得る。ユーザの好みのレコードは、例えばルックアップテーブルの形式で記憶され得る。
いくつかの実装では、随意にARエンジン802によって提供されるMLモデルが、ユーザの過去の購入、他のユーザの好み、および/または他のユーザの活動に基づいてユーザの好みを予測するように訓練される。ユーザの好みのレコードは、そのようなMLモデルのための訓練データセットの少なくとも一部を形成し得る。そして、訓練されたMLモデルは、ユーザデバイス830に関連付けられたユーザの好みに合致する実世界アイテム850のための3Dモデルを提案または選択するように実装され得る。
ステップ906は、プロセッサ804がユーザデバイス830または別の場所における提示のためにARコンテンツを生成することを含む。ステップ906において生成されるARコンテンツは、ステップ904において生成される歪められた3Dモデルに基づき得る。例えば、ステップ906は、歪められた3Dモデルをレンダリングすることを含み得る。ARコンテンツは、レンダリング表現を使用して実世界アイテム850に重ね、仮想的に実世界アイテム850の外観を変更し得る。図6~図7は、ARコンテンツを実世界アイテム上に重ね、実世界アイテムの外観を変更する例を提供する。同様に、または、代わりに、ステップ906において生成されるARコンテンツは、実世界アイテム850を変更する音および/またはテクスチャを提供し得る。
いくつかの実装では、ステップ906において生成されるARコンテンツは、歪められた3Dモデルと、画像処理技術(例えば、クロマキー合成等)との組み合わせに基づいている。均一な色であり1つの場所にロゴを有する実世界アイテム850のバリエーションを描写するようにARコンテンツが生成される場合を考慮されたい。クロマキー合成は、実世界アイテム850に均一な色を仮想的に追加するために使用され得る。歪められた3Dモデルは、ロゴのみを表現し得、3Dモデルのレンダリング表現は、実世界アイテム850の形状に基づくロゴの描写を提供するために使用され得る。これは、実世界アイテム850全体の3Dモデルではなく、ロゴ(またはロゴに対応する実世界アイテム850の一部)の3Dモデルのみが歪められ、レンダリングされるので、ARエンジン802における演算資源を節約し得る。
随意のステップ908では、ステップ906において生成されたARコンテンツが、ユーザデバイス830上での表示のためにプロセッサ804によって出力される。ARコンテンツの形式は、本明細書中で限定されない。ユーザデバイス830のセンサ840がカメラを含む場合、ARコンテンツは、カメラによって捕捉された実世界アイテム850の画像(またはビデオのフレーム)に合成された歪められた3Dモデルのレンダリング表現を含み得る。レンダリング表現は、画像上に実世界アイテム850の描写を重ね、実世界アイテム850の外観を変更し得る。
いくつかの実装では、歪められた3Dモデルは、実世界アイテム850の画像に対応する視座または視点からレンダリングされ、それによって、レンダリング表現は、画像内の実世界アイテム850のサイズおよび向きに実質的に合致する。画像分析(例えば、画像アナライザ812を使用するもの)が、画像に対応する視座を決定するために使用され得る。センサ840によって捕捉された同一の画像も、実世界アイテム850上の点の相対位置を決定するために、ステップ902において使用され得る。
ユーザデバイス830が透明ディスプレイを有するデバイスである場合、歪められた3Dモデルのレンダリング表現は、透明ディスプレイを通して実世界アイテム850のユーザの眺め上に重ねられ得る。ここで、歪められた3Dモデルは、ユーザの視点からの実世界アイテム850のサイズおよび向きを正確に反映するために、実世界アイテム850に対するユーザデバイス830および/またはユーザの位置に基づいてレンダリングされ得る。方法900は、実世界アイテム850に対するユーザおよび/またはユーザデバイス830のこの位置を決定することをさらに含み得る。例えば、センサ840によって捕捉された測定値は、随意にSLAMプロセスを使用して、実世界アイテム850に対するユーザデバイス830および/またはユーザの位置、視座および/または視点を決定するために分析され得る。
ステップ902、904、906、908は、経時的な実世界アイテム850に対するユーザおよび/またはユーザデバイス830の動きを反映する更新されたARコンテンツを提供するために複数回繰り返され得る。同様に、または、代わりに、更新されたARコンテンツは、実世界アイテム850の形状の変化を反映し得る。例えば、実世界アイテム850は、可撓性表面を有する衣料であり、実世界アイテム850が形状を変化させることを可能にし得る。ステップ902、904、906、908を断続的または継続的に実施することは、実世界アイテム850の変動する形状を追跡し、変動する形状に基づいて3Dモデルを歪め、ARコンテンツを生成して、その変動する形状を反映する態様で実世界アイテム850の外観を変更し得る。
一例によると、実世界アイテム850は、第1の形状で開始する。ステップ902の第1のインスタンスは、この第1の形状である実世界アイテム850上の複数の点の第1の相対位置を決定するために実施され、これは、第1の形状がARエンジン802によって決定されることを可能にし得る。ステップ904の第1のインスタンスでは、3Dモデルが、第1の形状を反映する第1の歪められた3Dモデルを生成するために、複数の点の第1の相対位置に基づいて歪められる。そして、ステップ906において、第1のARコンテンツが、第1の歪められたモデルに基づいて生成される。その後、実世界アイテム850は、第2の形状であり得る。ステップ902の第2のインスタンスは、第2の形状である実世界アイテム850上の複数の点の第2の相対位置を決定するために実施され、それによって、第2の形状を潜在的に決定する。そして、ステップ904、906の第2のインスタンスは、第2の歪められた3Dモデルに基づいて第2のARコンテンツを生成し得、第2の歪められた3Dモデルは、第1の歪められた3Dモデルを歪めることによって、または実世界アイテム850上の点の第2の相対位置に基づいて元の3Dモデルを歪めることによって、生み出され得る。
随意のステップ910は、プロセッサ804がステップ904において歪められた仮想アイテムの3Dモデル(第1の3Dモデルと称される)を仮想アイテムの第2の3Dモデルと取り替えるための命令を取得することを含む。この命令は、ユーザデバイス830におけるユーザ入力に由来し得る。例えば、第1の3Dモデルは、実世界アイテム850の1つのバリエーションに対応し得るが、ユーザデバイス830のユーザは、実世界アイテム850の異なるバリエーションを視認することを望み得る。ユーザデバイス830を使用して、ユーザは、ARコンテンツを介して異なるバリエーションを視認するための命令を生成し得、これは、ARエンジン802によって、第1の3Dモデルを第2の3Dモデルと取り替えるための命令として解釈される。そして、ステップ902、904、906、908は、第2の3Dモデルの歪められたバージョンに基づいてさらなるARコンテンツを生成するように繰り返され得る。
方法900は、商人が小売店内に製品の複数の異なるバリエーションを保管することを回避することを可能にし、それによって、比較的小さい店舗が広範な種類の製品のバリエーションを顧客に提供することを可能にするためのコマースアプリケーションとして実装され得る。方法900は、コマースのコンテキスト以外にも適用され得る。例えば、
・方法900は、ビデオチャットの参加者が彼らの衣類を仮想的に変更することを可能にするために適用され得る。参加者によって着用されている衣服は、衣類の形状を決定することに役立つようなマーカを含み得る。
・方法900は、スポーツイベントのプレーヤの衣類を仮想的に変更するために適用され得る。例えば、方法900は、試合中にホッケーセーター上のブランドマークを変更するために使用され得、放送中、プレーヤの衣類に地域のスポンサーを追加するために使用され得る。
・方法900は、ユーザが衣類上に仮想要素を配置することを可能にするために適用され得る。そのような要素の非限定的な例は、アポイントメントについての情報、時計、天気についての情報、および着用者の気分のインジケーションを含む。これらの要素は、透明ディスプレイを有するヘッドセットを使用して視認され得、要素は、着用者が動くと、衣類と共に流れ得る。
ARコンテンツを生成して実世界アイテムを仮想的に変更するさらなる例
図10~図18は、歪められた3Dモデルを使用して変形可能な実世界アイテムを仮想的に変更するために生成されるARコンテンツの例を提供する。
図10は、ある実施形態によるスクリーンページ1002を表示するユーザデバイス1000を例証している。スクリーンページ1002は、シャツ1010を着用して鏡の前に立っているユーザの画像1004を含む。例証される例では、画像1004は、ユーザデバイス1000上のカメラによって捕捉される。
いくつかの実装では、画像1004は、小売店内で捕捉され、ユーザは、小売店でシャツ1010を試着している。あるいは、シャツ1010は、ユーザに郵送されており、ユーザは、彼らの家の中でシャツ1010を試着していることもある。
シャツ1010は、商人によって販売される変形可能な実世界製品の1つのバリエーションであり、さらにその製品の無地のアイテムとみなされ得る。しかしながら、いくつかの場合、ユーザは、製品の異なるバリエーションを視認することに興味があることもある。これらの製品のバリーションは、小売店内で物理的に入手可能ではないこともあり、ユーザに郵送されていないこともあり、従って、ユーザは、異なるバリエーションを物理的に試着することが可能ではないこともある。
ユーザがユーザデバイス1000を介してシャツ1010の異なるバリエーションと仮想的に相互作用することを可能にするために、スクリーンページ1002は、複数のオプション1006、1008を含む。例証されるように、オプション1006、1008の各々は、シャツ1010のための異なる模様に対応する。これらの模様は、シャツ1010の異なるバリエーションを描写する。オプション1006、1008のうちの1つを選択することは、図9の方法900が対応する模様をシャツ1010に追加するARコンテンツを生成するように実装されることをもたらし得る。このようにして、方法900は、ユーザが異なる実世界アイテムを試着する必要なくシャツ1010の複数の異なるバリエーションを視認することを可能にし得る。
いくつかの実装では、オプション1006、1008は、ARエンジンによって自動的に生成された製品提案に基づいて提供される。ARエンジンは、例えば画像1004の分析を通して、シャツ1010のための製品番号および/またはシャツ1010を販売する商人の身元を決定し得る。製品番号および/または商人の身元を使用して、ARエンジンは、オプション1006、1008に対応する模様を提供する3Dモデルを取得し得る。これらの3Dモデルは、製品番号および/または商人に関連付けられた3Dモデルの全てであり得るか、または、それらは、全ての利用可能な3Dモデルのうちのサブセットであり得る。上でさらに詳細に概説されるように、このサブセットは、ユーザの好みに基づいて選択され得る。
図11は、スクリーンページ1002内のオプション1008のユーザ選択に応答して生成される歪められた3Dモデル1100を例証している。歪められた3Dモデル1100は、オプション1008で示されるシャツ1010のための模様を提供し、仮想座標系1102の原点に画定される。ユーザデバイス1000の位置1104も、仮想座標系1102内に画定される。この位置1104は、画像1004におけるシャツ1010の相対位置に対応する。つまり、仮想座標系1102における歪められた3Dモデル1100と位置1104との間の距離は、ユーザデバイス1000から鏡までの実世界の距離に、シャツ1010から鏡までの距離を加えたものにほぼ等しい。位置1104は、画像1004の分析を通して、および/または他の測定値の分析を通して決定され得る。
歪められた3Dモデル1100は、仮想座標系1102内に画定された複数の点1106を含む。点1106の相対位置は、方法900のステップ902において決定され得るシャツ1010上の複数の点の相対位置に対応する。例えば、画像1004および/または他の測定値が、シャツ1010上の点の相対位置を決定するために分析され得る。画像1004内に見えないが、シャツ1010は、点の相対位置を決定することに役立つようなマーカを含み得る。
歪められた3Dモデル1100は、随意に方法900のステップ904において、シャツ1010上の点の相対位置に対応する相対位置にあるように、点1106を位置変更することによって生成され得る。その結果、歪められた3Dモデル1100の形状は、画像1004に示されるシャツ1010の形状に実質的に合致する。これは、例えば歪められた3Dモデル1100の輪郭、折れ曲がり、およびしわとして反映される。そのうえ、歪められた3Dモデル1100によって提供される模様は、シャツ1010の形状に対応するように変形させられる。従って、歪められた3Dモデル1100は、写実的態様でシャツ1010の外観を変更するために使用され得る。
図12は、スクリーンページ1002内のオプション1008のユーザ選択に応答して生成されるスクリーンページ1202を表示するユーザデバイス1000を例証している。スクリーンページ1202は、歪められた3Dモデル1100のレンダリング表現1206を備えるARコンテンツ1204を含む。ARコンテンツ1204は、例えば方法900のステップ906において生成され得る。レンダリング表現1206は、歪められた3Dモデル1100に対する仮想座標系1102におけるユーザデバイス1000の位置1104に基づいて生成され、それによって、ARコンテンツ1204内のレンダリング表現1206のサイズおよび向きは、画像1004内のシャツ1010のサイズおよび向きに対応する。
ARコンテンツ1204において、レンダリング表現1206は、レンダリング表現1206がシャツ1010の外観を変更するように、画像1004に重ねられる。変更されたシャツ1010の外観は、歪められた3Dモデル1100によって提供される模様を含む。レンダリング表現1206は、シャツ1010における折れ曲がりおよびしわに当たり、従って、模様は、これらの折れ曲がりおよびしわとして写実的に反映される。このようにして、ユーザデバイス1000のユーザは、シャツ1010上で、歪められた3Dモデル1100によって提供される模様を仮想的に視認することが可能である。
ARコンテンツは、リアルタイムでユーザデバイス1000に継続的または断続的に更新され得、更新されたARコンテンツは、実世界におけるシャツ1010に対するユーザおよび/またはユーザデバイス1000の動きを反映し得る。とりわけ、そのようなリアルタイム/ほぼリアルタイムの実装では、ARコンテンツは、実世界内のシャツ1010の捕捉された画像に基づいて継続的または断続的に更新され得る。従って、少なくともいくつかのそのような実装では、バッファされた画像に基づくARコンテンツの生成を促進するために、シャツ1010の実世界画像は、連続して捕捉され、捕捉された画像のうちのいくつかまたはそれら全てをメモリ内のバッファ中に記憶すること等によって、一時的にバッファされ得る。加えて、または、あるいは、より概括的には、いくつかの実装では、実世界におけるシャツ1010の捕捉された画像は、リアルタイム/ほぼリアルタイムのARコンテンツの生成のために要求される時間より長い期間にわたって(例えば、メモリ内、バッファ内、または永久ストレージ内に)記憶され得る。そして、便宜上、ARコンテンツに類似するコンテンツが、いくらか後に、そのような記憶された画像に基づいて生成され得る。
図13は、図11の歪められた3Dモデル1100と、仮想座標系1102内のユーザデバイス1000の新たな位置1300を例証している。新たな位置1300は、実世界におけるシャツ1010に対するユーザデバイス1000の新たな位置(新たな場所および向きを含む)を反映し得る。例えば、位置1300は、ユーザが実世界においてユーザデバイス1000に対してシャツ1010を回転させた結果であり、それによって、ユーザデバイス1000は、シャツ1010の右側を画像化している。
図14は、仮想座標系1102内のユーザデバイス1000の位置1300に基づく更新されたARコンテンツ1404を含むスクリーンページ1402を表示するユーザデバイス1000を例証している。ARコンテンツ1404は、シャツ1010を着用しているユーザの右側を示す画像1408を含む。ARコンテンツ1404は、歪められた3Dモデル1100の更新されたレンダリング表現1406をさらに含み、これは、仮想座標系1102における歪められた3Dモデル1100に対するユーザデバイス1000の位置1300に基づいている。レンダリング表現1406は、歪められた3Dモデル1100の右側を描写し、画像1408の視座からのシャツ1010のサイズおよび向きに実質的に合致する。レンダリング表現1406は、ARコンテンツ1404においてシャツ1010に重ねるように画像1408と合成され、それによって、シャツ1010の外観を仮想的に変更する。
レンダリング表現1406は、画像1408において塞がれているシャツ1010の部分に当たる。例えば、図14において概して1410で示されるユーザの腕は、シャツ1010の一部を塞いでいる。このシャツ1010の塞がれた部分は、例えば方法900のステップ902における画像1408の分析を通して識別され得る。歪められた3Dモデル1100のレンダリング表現1406は、塞がれた部分に当たるように生成され、ユーザの腕1410に重ならない。
図11~図14は、方法900を使用して生成されたARコンテンツが、例えばAR体験におけるユーザデバイスに対する実世界アイテムの動きにどのように適応し得るかということのある例を例証している。
実世界におけるシャツ1010に対するユーザおよび/またはユーザデバイス1000の移動を反映することに加えて、同様に、または、代わりに、更新されたARコンテンツがシャツ1010のリアルタイムの変形を反映し得る。
図15は、仮想座標系1102内に画定される別の歪められた3Dモデル1500を例証している。ユーザデバイス1000の位置1502も、図15において仮想座標系1102内に画定される。歪められた3Dモデル1500は、歪められた3Dモデル1100と同一の模様をシャツ1010のために提供する。しかしながら、歪められた3Dモデル1500は、歪められた3Dモデル1100と異なるように歪められており、これは、図11に示される歪められた3Dモデル1100と図15に示される歪められた3Dモデル1500との異なる形状として反映される。いくつかの場合、歪められた3Dモデル1100、1500は、同一の元の3Dモデルの異なる歪みである。
歪められた3Dモデル1500は、シャツ1010が実世界において形状を変化させることに応答して生成され得る。例えば、歪められた3Dモデル1100は、ある時点において測定されたシャツ1010の第1の形状に対応し得、歪められた3Dモデル1500は、別の時点において測定されたシャツ1010の第2の形状に対応し得る。歪められた3Dモデル1500は、その第2の形状であるシャツ1010上の複数の点の相対位置に対応する相対位置に複数の点1506を含む。点1506は、歪められた3Dモデル1100上の点1106に対応し得るが、点1506は、歪められた3Dモデル1100、1500の異なる形状に起因して、点1106と異なる相対位置にある。
図16は、更新されたARコンテンツ1604を含むスクリーンページ1602を表示するユーザデバイス1000を例証している。ARコンテンツ1604は、その第2の形状にあるシャツ1010の画像1608を含む。ARコンテンツ1604は、仮想座標系1102における歪められた3Dモデル1500に対するユーザデバイス1000の位置1502に基づく歪められた3Dモデル1500のレンダリング表現1606をさらに含む。レンダリング表現1606は、ARコンテンツ1604においてシャツ1010に重ねられ、シャツ1010の第2の形状に適合する模様を提供する。
図11、図12、図15、および図16は、方法900を使用して生成されるARコンテンツが実世界アイテムのリアルタイムの変形にどのように適応するかといいうことのある例を例証している。
歪められた3Dモデル1100、1500によって提供される模様は、シャツ1010の外観を変更するために使用され得る模様の一例に過ぎない。いくつかの実装では、シャツ1010のための複数の異なる3Dモデルが利用可能であり、各3Dモデルは、異なる模様を提供する。異なる模様は、シャツ1010の異なるバリエーションに対応し得る。例として、スクリーンページ1002、1202、1402、1602に示されるオプション1006は、歪められた3Dモデル1100、1500によって提供される模様と異なるシャツ1010のための模様を提供する3Dモデルに対応する。スクリーンページ1202、1402、1602のいずれかにおけるオプション1006の選択は、歪められた3Dモデル1100または歪められた3Dモデル1500をこの異なる模様を提供する3Dモデルと取り替えるための命令を生成し得る。
図17は、スクリーンページ1202におけるオプション1006の選択に応答して生成される歪められた3Dモデル1700を例証している。歪められた3Dモデルは、仮想座標系1102内に画定される。歪められた3Dモデル1700上の複数の点1706の相対位置は、オプション1006の選択後のシャツ1010上の複数の点の測定された相対位置に対応する。従って、歪められた3Dモデル1700の形状は、オプション1006の選択後のシャツ1010の形状に概して対応する。ユーザデバイス1000の位置1702も、図17において、仮想座標系1102内に画定される。
図18は、スクリーンページ1202におけるオプション1006の選択に応答して生成されるスクリーンページ1802を表示するユーザデバイス1000を例証している。スクリーンページ1802は、歪められた3Dモデル1700のレンダリング表現1806を有するARコンテンツ1804を含む。ARコンテンツ1804において、レンダリング表現1806は、レンダリング表現1806が歪められた3Dモデル1700によって提供される模様をシャツ1010に追加するように、シャツ1010の画像1808に重ねられる。
図11、図12、図17および図18は、方法900を使用して生成されたARコンテンツが、どのようにして例えばユーザがAR体験において実世界アイテムの複数の異なるバリエーション間で仮想的に切り替えることを可能にし得るかということを例証している。
スクリーンページ1002、1202、1402、1602、1802、および歪められたモデル1100、1500、1700は、ユーザデバイス1000または他の場所上で実行されるソフトウェアアプリケーションによって生成され得る。このソフトウェアアプリケーションは、図9の方法900、または本明細書中で開示される任意の他の方法を実装し得る。ソフトウェアアプリケーションは、eコマースアプリケーションであり得、eコマースアプリケーションは、ユーザがARを使用してシャツ1010の複数のバリエーションと相互作用することを可能にし、ユーザがシャツ1010のバリエーションを購入することも可能にし得る。例えば、スクリーンページ1002、1202、1402、1602、1802のうちのいずれか、それらのうちの1つ、それらのうちのいくつか、またはそれら全てが、ユーザがシャツ1010のバリエーションを購入することを可能にするさらなるオプションを含み得る。
結論
本発明はその特定の特徴および実施形態を参照して説明されたが、本発明から逸脱せず、種々の修正物および組み合わせ物が作製され得る。よって、説明および図面は、単に、添付の請求項によって定義される本発明のいくつかの実施形態の例証とみなされるべきであり、本発明の範囲内に属する任意のおよび全ての修正物、変更物、組み合わせ物、または同等物を網羅するように想定される。したがって、本発明およびその利点が詳細に説明されたが、種々の変化、代用、および変更が、添付の請求項によって定義される本発明から逸脱せず、本明細書においてなされ得る。そのうえ、本願の範囲は、本明細書中で説明されるプロセス、機械、製造、化合物、手段、方法、およびステップの特定の実施形態に限定されるように意図されていない。当業者は、本発明の開示から、本明細書中で説明される対応する実施形態と実質的に同一の機能を実施し、または同一の結果を達成する、既存または今後開発されるプロセス、機械、製造、化合物、手段、方法、またはステップが、本発明によって活用され得ることを、容易に認識するだろう。よって、添付の請求項は、そのようなプロセス、機械、製造、化合物、手段、方法、またはステップ等のそれらの範囲内に含まれるように意図される。
そのうえ、命令を実行する本明細書中で例示される任意のモジュール、コンポーネント、またはデバイスは、非一過性のコンピュータ/プロセッサ読み取り可能なストレージ媒体(単数または複数)を含むか、さもなければそれらへのアクセスを有し得、非一過性のコンピュータ/プロセッサ読み取り可能なストレージ媒体(単数または複数)は、コンピュータ/プロセッサ読み取り可能な命令、データ構造、プログラムモジュール、および/または他のデータ等の情報のストレージのためである。非一過性のコンピュータ/プロセッサ読み取り可能なストレージ媒体の例の非網羅的なリストは、磁気カスケット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、光学ディスク(コンパクトディスク読み取り専用メモリ(CD-ROM)、デジタルビデオディスクもしくはデジタルバーサタイルディスク(DVD)、Blu-ray(登録商標) Disc、または任意の光学ストレージ等)、任意の方法またはテクノロジで実装される揮発性および不揮発性の除去可能および除去不可能媒体、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、フラッシュメモリまたは他のメモリテクノロジを含む。任意のそのような非一過性コンピュータ/プロセッサストレージ媒体は、デバイスの一部であるか、またはデバイスにアクセス可能もしくは接続可能であり得る。本明細書中で説明される任意のアプリケーションまたはモジュールは、そのような非一過性のコンピュータ/プロセッサ読み取り可能なストレージ媒体によって記憶されているか、さもなければ保持され得るコンピュータ/プロセッサ読み取り可能/実行可能な命令を用いて実装され得る。
本教示は、以下の採番された項目のうちの1つ以上の特徴にも拡張され得る。
(項目1)
コンピュータ実装方法であって、前記コンピュータ実装方法は、
実世界アイテム上の複数の点の相対位置を決定することと、
前記複数の点の前記相対位置に基づいて、仮想アイテムの3次元モデルを歪め、前記仮想アイテムの歪められた3次元モデルを生み出すことと、
提示のために拡張現実(AR)コンテンツを生成することであって、前記ARコンテンツは、前記歪められた3次元モデルに基づいている、ことと
を含む、コンピュータ実装方法。
(項目2)
前記ARコンテンツを生成することは、前記歪められた3次元モデルをレンダリングすることを含む、項目1に記載のコンピュータ実装方法。
(項目3)
前記歪められた3次元モデルは、前記実世界アイテムの捕捉された画像に対応する視座からレンダリングされ、
前記ARコンテンツを生成することは、前記実世界アイテムに重ねるように前記レンダリング表現を前記画像と合成することをさらに含む、項目2に記載のコンピュータ実装方法。
(項目4)
前記実世界アイテムに対するユーザの位置を決定することをさらに含み、前記歪められた3次元モデルは、前記ユーザの前記位置に基づいてレンダリングされる、項目2に記載のコンピュータ実装方法。
(項目5)
前記複数の点の前記相対位置に基づいて前記仮想アイテムの前記3次元モデルを歪めることは、前記3次元モデルを修正し、前記複数の点の前記相対位置に対応する相対位置にあるように前記3次元モデル内の点を位置変更することを含む、項目1に記載のコンピュータ実装方法。
(項目6)
前記実世界アイテムは、可撓性表面を含む、項目1に記載のコンピュータ実装方法。
(項目7)
前記実世界アイテムは、衣料であるか、または衣料を含む、項目6に記載のコンピュータ実装方法。
(項目8)
前記実世界アイテムは、複数のマーカを備え、前記複数のマーカの各々は、前記実世界アイテム上の前記複数の点のうちのそれぞれの異なる点であり、
前記実世界アイテム上の前記複数の点の前記相対位置を決定することは、前記複数のマーカの相対位置を決定することを含む、項目1に記載のコンピュータ実装方法。
(項目9)
前記複数のマーカは、光学マーカを備え、
前記方法は、前記実世界アイテムの少なくとも1つの画像を取得することをさらに含み、
前記複数のマーカの前記相対位置を決定することは、前記少なくとも1つの画像に画像分析を実施し、前記光学マーカを検出することを含む、項目8に記載のコンピュータ実装方法。
(項目10)
前記実世界アイテム上の前記複数の点の前記相対位置を決定することは、
前記実世界アイテムの測定値を取得することと、
前記測定値を機械学習(ML)モデルに入力することと、
前記MLモデルの出力を取得することであって、前記実世界アイテム上の前記複数の点の前記相対位置は、前記MLモデルの前記出力に基づいている、ことと
を含む、項目1に記載のコンピュータ実装方法。
(項目11)
前記複数の点の前記相対位置は、前記複数の点の第1の相対位置であり、前記仮想アイテムの前記歪められたモデルは、前記仮想アイテムの第1の歪められたモデルであり、前記ARコンテンツは、第1のARコンテンツであり、
前記複数の点の前記第1の相対位置は、第1の形状である前記実世界アイテムに対応し、
前記方法は、
前記実世界アイテム上の前記複数の点の第2の相対位置を決定することであって、第2の相対位置は、第2の形状である前記実世界アイテムに対応している、ことと、
前記複数の点の前記第2の相対位置に基づいて、前記仮想アイテムの前記3次元モデルを歪め、前記仮想アイテムの第2の歪められた3次元モデルを生み出すことと、
提示のために第2のARコンテンツを生成することであって、前記ARコンテンツは、前記第2の歪められた3次元モデルに基づいている、ことと
をさらに含む、項目1に記載のコンピュータ実装方法。
(項目12)
前記3次元モデルは、実世界アイテムのための視覚的外観を備える、項目1に記載のコンピュータ実装方法。
(項目13)
前記実世界アイテム上の前記複数の点の前記相対位置は、デバイスから取得された測定値に基づいており、
前記ARコンテンツは、前記デバイスにおける提示のためのものである、項目1に記載のコンピュータ実装方法。
(項目14)
前記仮想アイテムの前記3次元モデルは、前記仮想アイテムの第1の3次元モデルであり、前記複数の点の前記相対位置は、前記複数の点の第1の相対位置であり、前記ARコンテンツは、第1のARコンテンツであり、前記方法は、
前記仮想アイテムの前記第1の3次元モデルを前記仮想アイテムの第2の3次元モデルと取り替えるための命令を取得することであって、前記命令は、デバイスにおけるユーザ入力に由来する、ことと、
前記実世界アイテム上の前記複数の点の第2の相対位置を決定することと、
前記複数の点の前記第2の相対位置に基づいて、前記仮想アイテムの前記第2の3次元モデルを歪め、前記仮想アイテムの歪められた第2の3次元モデルを生み出すことと、
提示のために第2のARコンテンツを生成することであって、前記第2のARコンテンツは、前記歪められた第2の3次元モデルに基づいている、ことと
をさらに含む、項目1に記載のコンピュータ実装方法。
(項目15)
実世界アイテム上の複数の点の相対位置を記憶するためのメモリと、
少なくとも1つのプロセッサと
を備え、前記少なくとも1つのプロセッサは、
前記複数の点の前記相対位置に基づいて、仮想アイテムの3次元モデルを歪め、前記仮想アイテムの歪められた3次元モデルを生み出すことと、
提示のために拡張現実(AR)コンテンツを生成することであって、前記ARコンテンツは、前記歪められた3次元モデルに基づいている、ことと
を行う、システム。
(項目16)
前記少なくとも1つのプロセッサは、前記歪められた3次元モデルをレンダリングすることをさらに行い、
前記ARコンテンツは、前記レンダリング表現を含む、項目15に記載のシステム。
(項目17)
前記歪められた3次元モデルは、前記実世界アイテムの捕捉された画像に対応する視座からレンダリングされ、
前記ARコンテンツは、前記実世界アイテムに重ねるように前記画像と合成された前記レンダリング表現を含む、項目16に記載のシステム。
(項目18)
前記歪められた3次元モデルは、前記複数の点の前記相対位置に対応する相対位置にあるように位置変更された点を備える、項目15に記載のシステム。
(項目19)
前記実世界アイテムは、複数のマーカを備え、前記複数のマーカの各々は、前記実世界アイテム上の前記複数の点のうちのそれぞれの異なる点であり、
前記少なくとも1つのプロセッサは、前記複数のマーカの相対位置を決定することをさらに行う、項目15に記載のシステム。
(項目20)
前記複数のマーカは、光学マーカを備え、
前記少なくとも1つのプロセッサは、前記実世界アイテムの少なくとも1つの画像に画像分析を実施し、前記光学マーカを検出することをさらに行う、項目19に記載のシステム。
(項目21)
前記少なくとも1つのプロセッサは、
前記実世界アイテムの測定値を取得することと、
前記測定値を機械学習(ML)モデルに入力することと、
前記MLモデルの出力を取得することであって、前記実世界アイテム上の前記複数の点の前記相対位置は、前記MLモデルの前記出力に基づいている、ことと
をさらに行う、項目15に記載のシステム。
(項目22)
前記複数の点の前記相対位置は、前記複数の点の第1の相対位置であり、前記仮想アイテムの前記歪められたモデルは、前記仮想アイテムの第1の歪められたモデルであり、前記ARコンテンツは、第1のARコンテンツであり、
前記複数の点の前記第1の相対位置は、第1の形状である前記実世界アイテムに対応し、
前記メモリは、前記実世界アイテム上の前記複数の点の第2の相対位置を記憶することをさらに行い、前記第2の相対位置は、第2の形状である前記実世界アイテムに対応し、
前記少なくとも1つのプロセッサは、
前記複数の点の前記第2の相対位置に基づいて、前記仮想アイテムの前記3次元モデルを歪め、前記仮想アイテムの第2の歪められた3次元モデルを生み出すことと、
提示のために第2のARコンテンツを生成することであって、前記第2のARコンテンツは、前記歪められた第2の3次元モデルに基づいている、ことと
をさらに行う、項目15に記載のシステム。
(項目23)
前記実世界アイテム上の前記複数の点の前記相対位置は、デバイスから取得された測定値に基づいており、
前記ARコンテンツは、前記デバイスにおける提示のためのものである、項目15に記載のシステム。
(項目24)
前記仮想アイテムの前記3次元モデルは、前記仮想アイテムの第1の3次元モデルであり、前記複数の点の前記相対位置は、前記複数の点の第1の相対位置であり、前記ARコンテンツは、第1のARコンテンツであり、
前記少なくとも1つのプロセッサは、前記仮想アイテムの前記第1の3次元モデルを前記仮想アイテムの第2の3次元モデルと取り替えるための命令を取得することをさらに行い、前記命令は、デバイスにおけるユーザ入力に由来し、
前記メモリは、前記実世界アイテム上の前記複数の点の第2の相対位置を記憶することをさらに行い、
前記少なくとも1つのプロセッサは、
前記複数の点の前記第2の相対位置に基づいて、前記仮想アイテムの前記第2の3次元モデルを歪め、前記仮想アイテムの歪められた第2の3次元モデルを生み出すことと、
提示のために第2のARコンテンツを生成することであって、前記第2のARコンテンツは、前記歪められた第2の3次元モデルに基づいている、ことと
をさらに行う、項目15に記載のシステム。
(項目25)
コンピュータ実行可能な命令を記憶している非一過性のコンピュータ読み取り可能な媒体であって、前記コンピュータ実行可能な命令は、コンピュータによって実行されると、前記コンピュータに方法を実施させ、前記方法は、
実世界アイテム上の複数の点の相対位置を決定することと、
前記複数の点の前記相対位置に基づいて、仮想アイテムの3次元モデルを歪め、前記仮想アイテムの歪められた3次元モデルを生み出すことと、
提示のために拡張現実(AR)コンテンツを生成することであって、前記ARコンテンツは、前記歪められた3次元モデルに基づいている、ことと
を含む、非一過性のコンピュータ読み取り可能な媒体。