(58)【調査した分野】(Int.Cl.,DB名)
前記2次元または3次元の仮想オブジェクトモデルは、少なくとも1つの相互作用的な特性を有し、前記少なくとも1つの相互作用的な特性は、前記第2のデバイス上のユーザからの相互作用に応答して前記2次元または3次元の仮想オブジェクトモデルの状態を変更する、請求項2に記載のサーバ。
前記仮想オブジェクトコンテンツは、前記コンテンツ識別子のリアルタイム画像と合わせて前記第2のデバイスのディスプレイに表示される追加情報を含む、請求項1に記載のサーバ。
前記テンプレートは、前記第1のデバイスから、前記コンテンツ識別子、前記仮想オブジェクトコンテンツ、及び前記コンテンツ識別子に関するメタデータを受け取るように構成される、請求項1に記載のサーバ。
前記第2のデバイスから受け取った分析データに基づいて分析結果を生成し、前記分析結果を前記体験コンテンツデータセット生成部に提供するように構成される分析計算モジュール、
をさらに備え、
前記体験コンテンツデータセット生成部は、前記分析結果に基づいて拡張体験コンテンツデータセットを生成するように構成される、
請求項2に記載のサーバ。
前記体験ジェネレータは、前記コンテンツ識別子として認識された物理オブジェクトに対する前記第2のデバイスの位置に基づいて、前記第2のデバイスのディスプレイにレンダリングすべき前記体験コンテンツデータセットを用いて仮想オブジェクトモデルを生成するように構成され、
前記第2のデバイスで撮影した前記物理オブジェクトのリアルタイム画像と関係する前記仮想オブジェクトモデルに対応する前記仮想オブジェクトを視覚化するように構成され、前記仮想オブジェクトモデルが、前記物理オブジェクトの画像と関連付けられている、
請求項1に記載のサーバ。
前記第2のデバイスで撮影した前記物理オブジェクトに対する前記第2のデバイスの姿勢の推定と、前記第2のデバイスで撮影した前記物理オブジェクトに対する前記第2のデバイスの姿勢の持続時間と、前記第2のデバイスで撮影した前記物理オブジェクトに対する前記第2のデバイスの姿勢の向きと、前記第2のデバイスで撮影した前記物理オブジェクトに対する前記第2のデバイスの姿勢の相互作用とを分析するように構成された分析計算モジュールを更に備え、
前記姿勢の推定は、前記第2のデバイスが向けられた前記物理オブジェクトまたは仮想オブジェクト上の位置を備え、
前記姿勢の持続時間は、前記物理オブジェクトまたは仮想オブジェクト上の同じ位置に前記第2のデバイスが向けられた持続時間を備え、
前記姿勢の向きは、前記物理オブジェクトまたは仮想オブジェクトに向けられた前記第2のデバイスの向きを備え、
前記姿勢の相互作用は、前記物理オブジェクトに対応する前記仮想オブジェクトに対して前記第2のデバイス上で起きる前記ユーザの相互作用を備える、
請求項9に記載のサーバ。
前記2次元または3次元の仮想オブジェクトモデルは、少なくとも1つの相互作用的な特性を有し、前記少なくとも1つの相互作用的な特性は、前記第2のデバイス上のユーザからの相互作用に応答して前記2次元または3次元の仮想オブジェクトモデルの状態を変更する、請求項12に記載のコンピュータ実装方法。
前記仮想オブジェクトコンテンツは、前記コンテンツ識別子のリアルタイム画像と合わせて前記第2のデバイスのディスプレイに表示される追加情報を含む、請求項11に記載のコンピュータ実装方法。
前記テンプレートは、前記第1のデバイスから、前記コンテンツ識別子、前記仮想オブジェクトコンテンツ、及び前記コンテンツ識別子に関するメタデータを受け取るように構成される、請求項11に記載のコンピュータ実装方法。
前記コンテンツ識別子として認識された物理オブジェクトに対する前記第2のデバイスの位置に基づいて、前記第2のデバイスのディスプレイにレンダリングすべき前記体験コンテンツデータセットを用いて仮想オブジェクトモデルを生成し、
前記第2のデバイスで撮影した前記物理オブジェクトのリアルタイム画像と関係する前記仮想オブジェクトモデルに対応する前記仮想オブジェクトを視覚化し、前記仮想オブジェクトモデルが、前記物理オブジェクトの画像と関連付けられること、
をさらに備える、請求項11に記載のコンピュータ実装方法。
【発明を実施するための形態】
【0007】
方法及びシステムの例は、コンテンツ作成ツールを対象としている。例は、単に可能な変形例の代表として示しているだけである。特に明記しない限り、コンポーネント及び機能は、任意選択のものであり、組み合わせても分割してもよく、動作は並び順が変わっても良いし、組み合わせても分割しても良い。以下の説明文では、例示的な実施形態を完全に理解してもらうために、説明目的で多くの特定の詳細を記載する。ただし、これらの特定の詳細がなくとも本主題を実現できることは、当業者には自明であろう。
【0008】
コンテンツ作成用のサーバについて記載する。サーバのコンテンツ作成ツールが、コンテンツ識別子(例えば物理的な雑誌に載っている写真)及び仮想オブジェクトコンテンツ(例えばアニメーション付の相互作用的な3次元オブジェクト)を処理するためのテンプレートを使用して、体験コンテンツデータセットを生成する。サーバの体験ジェネレータが体験コンテンツデータセットを、コンテンツ識別子を認識するデバイスに提供して、コンテンツ識別子に関連付けられた仮想オブジェクトコンテンツを含む相互作用的体験をデバイスで生成する。デバイスは、相互作用的体験を生成するための「拡張現実アプリケーション」を備えていて良い。
【0009】
拡張現実アプリケーションによってユーザは、例えば、デバイスのカメラで撮影した物理オブジェクトの写真に重ねた3次元の仮想オブジェクトの形態で、追加情報を体験できる。物理オブジェクトは、拡張現実アプリケーションが識別して認識できる視覚基準(コンテンツ識別子とも呼ばれる)を含んでいても良い。物理オブジェクトの画像と関係する3次元の仮想オブジェクトなどの追加情報の視覚化がデバイスのディスプレイで生じる。3次元仮想オブジェクトは、認識した視覚基準に基づくものであっても良い。3次元仮想オブジェクトの視覚化のレンダリングは、ディスプレイの視覚基準に対する位置に基づいていても良い。
【0010】
1つの実施形態では、コンテンツ作成ツールは、コンテンツ情報をコンテンツ作成者(例えばクライアント側のユーザ)から集めるためにテンプレートを使用する。例えば、テンプレートを使用して、コンテンツ識別子として使用する対象となる2次元画像または3次元オブジェクトのモデルをコンテンツ作成者から収集しても良い。テンプレートを使用して、仮想オブジェクトコンテンツに対する2次元または3次元の仮想オブジェクトモデルをコンテンツ作成者から収集しても良い。他の実施形態では、テンプレートによって、コンテンツ作成者は、仮想オブジェクトコンテンツに対する2次元または3次元の仮想オブジェクトモデルをストック(またはすでに提供されたもの)から選択することが可能になる。コンテンツ作成ツールは、コンテンツ識別子を仮想オブジェクトコンテンツに関連付けて体験コンテンツデータセットを生成しても良い。
【0011】
1つの実施形態では、コンテンツ作成ツールは、コンテンツ識別子の第1のフォーマットをコンテンツ識別子の第2のフォーマットに変換して、様々なレイアウト及び第三者のシステム接続を適合させても良い。例えば、2次元の写真を、メニュー表示用にサムネイルサイズに変換したり、レイアウト表示用に大きなフォーマットに変換したりしても良い。このほか、コンテンツ作成ツールは、使用するコンテンツ識別子の数学的ハッシュを生成して、認識したコンテンツ識別子をデバイスで追跡しても良い。
【0012】
1つの実施形態では、コンテンツ作成ツールは、仮想オブジェクトコンテンツの特性を判断し、仮想オブジェクトの特性に関する相互作用的な特色の表示をデバイスに生成することもできる。例えば、コンテンツ作成ツールは、「ドアが開いた」アニメーションが付いた赤い車に対して、「ドアを開く」のラベルを貼った赤いボタンを自動的に生成できる。赤いボタンは、起動されると、赤い車に対して「ドアを開けた」アニメーションを再生する。
【0013】
他の実施形態では、サーバは、デバイスから受け取った分析データに基づく分析結果も生成しても良い。分析結果は、分析結果に基づいて拡張体験コンテンツデータセットを生成するために、コンテンツ作成ツールに提供されても良い。例えば、ユーザのデバイス使用履歴、ユーザがデバイスを使用してどの写真を、かつ、写真のどの部分を指し示しているのか、デバイスで指し示された写真の部分に対応する時間の長さなどに基づいて、デバイスでの体験をカスタマイズできる。
【0014】
図1は、いくつかの例示的な実施形態によるデバイスの拡張現実アプリケーションを動作させるのに適したネットワーク環境100を示すネットワークの図である。ネットワーク環境100は、デバイス101、クライアント112、及びサーバ110を備え、これらはネットワーク108を介して互いに通信可能に接続されている。デバイス101、クライアント112、及びサーバ110は、各々が全体または部分的にコンピュータシステムに実装されてよく、これについては以下で
図13に関して説明する。
【0015】
サーバ110は、ネットワークベースのシステムの一部であって良い。例えば、ネットワークベースのシステムは、体験コンテンツデータセットを作成するためのコンテンツ作成ツールを提供するクラウドベースのサーバシステムであるか、同システムを備えていても良い。クライアント112は、ウェブブラウザまたはプログラマティッククライアント経由でサーバ110内のコンテンツ作成ツールにアクセスしても良い。
【0016】
ユーザ102は、サーバ110が生成した体験コンテンツデータセットが生成した相互作用的なコンテンツを体験するために、デバイス101を使用しても良い。他の例では、ユーザ102は、クライアント112を使用して、デバイス101で相互作用的なコンテンツを生成するために、サーバ110のコンテンツ作成ツールを使用しても良い。ユーザは、人間のユーザ(例えば、ヒト)、マシンのユーザ(例えば、デバイス101と相互作用するようにソフトウェアプログラムによって構成されたコンピュータ)、またはこれらを任意に適切に組み合わせたもの(例えば、マシンに補佐される人間、または人間に監督されるマシン)であって良い。ユーザ102は、ネットワーク環境100の一部ではなく、デバイス101と関連付けられていて、デバイス101のユーザであって良い。例えば、デバイス101は、ユーザ102が所有するデスクトップコンピュータ、車両コンピュータ、タブレットコンピュータ、ナビゲータデバイス、携帯型メディアデバイス、またはスマートフォンであって良い。
【0017】
ユーザ102は、デバイス101のアプリケーションのユーザであっても良い。アプリケーションは、ユーザ102に体験を提供するように構成された拡張現実アプリケーションを含んでいても良く、この体験は、2次元の物理オブジェクト104(例えば、写真)または3次元の物理オブジェクト106(例えば、車)などの物理オブジェクトで始動されても良い。例えば、ユーザ102は、2次元の物理オブジェクト104の画像を撮影するようにデバイス101のレンズを向けても良い。画像は、デバイス101の拡張現実アプリケーションのローカルコンテクスト認識データセットモジュールを使用して、デバイス101内でローカルに認識される。次に、拡張現実アプリケーションは、追加情報(例えば、相互作用的な3次元モデル)を生成し、認識した画像を識別するのに応答して追加情報をデバイス101のディスプレイに表示する。もし撮影した画像がデバイス101でローカルに認識されなければ、デバイス101は、ネットワーク108上にあるサーバ110のデータベースから、撮影した画像に対応する3次元モデルをダウンロードする。
【0018】
デバイス101は、使用法及びユーザ102がどのように物理オブジェクトと関わっているかについてさらに分析するために、分析データを収集しサーバ110に送っても良い。例えば、分析データは、ユーザ102が物理オブジェクトまたは仮想オブジェクトのどこを特に見たのか、ユーザ102が物理オブジェクトまたは仮想オブジェクトの各場所をどのくらいの間見たのか、物理オブジェクトまたは仮想オブジェクトを見るときにユーザ102はデバイス101をどのように保持したのか、ユーザ102は仮想オブジェクトのどの特性と関わったのか(例えば、ユーザが仮想オブジェクトにあるリンクを叩いたのかどうかなど)、またはこれらを任意に適切に組み合わせたものを含んでいて良い。分析データは、分析データの分析に基づいて、高度なコンテンツデータセットまたは修正したコンテンツデータセットを生成するためにサーバ110で処理されて良い。デバイス101は、追加の特性若しくは高度な特色または高度なコンテンツデータセットに基づく新たな体験を伴う仮想オブジェクトを受け取ることができ、かつこれを生成しても良い。
【0019】
図1に示したマシン、データベース、またはデバイスのいずれも、本明細書に記載した1つ以上の機能をそのマシン、データベース、またはデバイスに対して実施する専用コンピュータになるようにソフトウェアによって修正された(例えば、構成された、またはプログラムされた)汎用コンピュータに実装されて良い。例えば、本明細書に記載した方法のいずれか1つ以上を実装できるコンピュータシステムについて、以下で
図12に関して考察する。本明細書で使用するように、「データベース」とは、データストレージリソースであり、テキストファイル、テーブル、スプレッドシート、リレーショナルデータベース(例えば、オブジェクトリレーショナルデータベース)、トリプルストア、階層データストア、またはこれらを任意に適切に組み合わせたものとして構造化されたデータを保存しても良い。さらに、
図1に示したマシン、データベース、またはデバイスのいずれか2つ以上を単一のマシンに統一してよく、いずれか一つのマシン、データベース、またはデバイスに対して本明細書に記載した機能を、複数のマシン、データベース、またはデバイスの中でさらに分割しても良い。
【0020】
ネットワーク108は、マシン(例えば、サーバ110)、データベース及び装置(例えば、デバイス101)の間での、またはこれらの中での通信を可能にする、任意のネットワークであっても良い。したがって、ネットワーク108は、有線ネットワーク、無線ネットワーク(例えば、モバイルネットワークまたはセルラーネットワーク)、またはこれらの適切な任意の組み合わせであっても良い。ネットワーク108は、プライベートネットワーク、パブリックネットワーク(例えば、インターネット)、またはこれらの適切な任意の組み合わせを構成する、1つ以上の部分を含んでも良い。
【0021】
図2は、いくつかの例示的な実施形態によるサーバのモジュール(例えばコンポーネント)を示すブロック図である。サーバ110は、コンテンツ作成ツール202、体験ジェネレータ204、分析計算モジュール206、及びストレージデバイス内のデータベース208を備えている。
【0022】
コンテンツ作成ツール202は、クライアント112から受け取り、または選択したコンテンツ識別子及び仮想オブジェクトコンテンツを処理するためにテンプレートを使用して体験コンテンツデータセットを生成しても良い。コンテンツ作成202については、以下で
図3に関してさらに詳細に説明する。
【0023】
体験ジェネレータ204は、体験コンテンツデータセットをデバイス101に提供しても良く、デバイス101は、コンテンツ識別子を認識し、仮想オブジェクトコンテンツで相互作用的体験をデバイス101に生成する。1つの実施形態では、体験ジェネレータ204は、2次元の物理オブジェクト104(例えば、写真)または3次元の物理オブジェクト106(例えば、車)などの物理オブジェクトに対するデバイス101の位置に基づいて、デバイス101のディスプレイにレンダリングする対象の体験コンテンツデータセットを使用して仮想オブジェクトモデルを生成する。デバイス101は、2次元の物理オブジェクト104(例えば、写真)または3次元の物理オブジェクト106(例えば、車)をコンテンツ識別子として認識する。仮想オブジェクトの視覚化は、デバイス101で撮影された物理オブジェクトのリアルタイム画像と関係する仮想オブジェクトモデルに対応していても良い。仮想オブジェクトモデルは、物理オブジェクトの画像に基づくものであっても良い。
【0024】
分析計算モジュール206は、デバイス101から受け取った分析データに対して動作して分析結果を生成し、分析結果をコンテンツ作成ツール202に提供しても良く、その結果、コンテンツ作成ツール202は、分析結果に基づいて異なる体験コンテンツデータセットを生成できる。例えば、追加のアニメーションまたは特色を提供し、ユーザが最も頻繁に見た位置と関連付けて良い。他の例では、ユーザのお気に入りのスポーツチームのスコアまたは統計値を含む仮想コンテンツ(例えば、仮想的な掲示板)を表示して、個人向けの情報を提供しても良い。
【0025】
1つの実施形態では、分析計算モジュール206は、デバイス101で撮影した物理オブジェクトに対するデバイス101の姿勢の推定、デバイス101で撮影した物理オブジェクトに対するデバイス101の姿勢の持続時間、デバイス101で撮影した物理オブジェクトに対するデバイスの姿勢の向き、デバイス101で撮影した物理オブジェクトに対するデバイスの姿勢の相互作用、またはこれらを任意に適切に組み合わせたものを分析する。姿勢の推定は、デバイス101が向けられた物理オブジェクトまたは仮想オブジェクト上の位置を含んでいても良い。姿勢の持続時間は、物理オブジェクトまたは仮想オブジェクト上の同じ位置にデバイス101が向けられた持続時間を含んでいても良い。姿勢の向きは、物理オブジェクトまたは仮想オブジェクトに向けられたたデバイス101の向きを含んでいても良い。姿勢の相互作用は、デバイス101が向けられた物理オブジェクトに対応する仮想オブジェクトに対してデバイス101におけるユーザの相互作用を含んでいても良い。
【0026】
データベース208は、コンテンツ作成テンプレートデータ210、体験コンテンツデータセット212、ならびに分析及び結果データ214を含んでいても良い。
【0027】
コンテンツ作成テンプレートデータ210は、テンプレートを介してデバイス101から受け取ったコンテンツ識別子に対する2次元画像または3次元オブジェクトモデルと、テンプレートを介してデバイス101から受け取った仮想オブジェクトコンテンツに対する2次元または3次元の仮想オブジェクトモデルとを含んでいても良い。コンテンツ作成テンプレートデータ210は、他のデバイス及び第三者のシステムから受け取った他のコンテンツを含んでいても良い。例えば、コンテンツ作成テンプレートデータ210は、ユーザがデバイス101で選択しても良いストック画像及び3次元アニメーションモデルを含んでいても良い。
【0028】
体験コンテンツデータセット212は、コンテンツ作成ツール202を使用してコンテンツ作成テンプレートデータ210に基づいて生成したデータセットを含んでいても良い。例えば、データセットは、相互作用的仮想コンテンツ及びそれに対応する物理コンテンツのテーブルを含んでいても良い。
【0029】
分析及び結果データ214は、デバイス(例えば、デバイス101)から受け取った分析データを含んでいても良い。例えば、分析データは、とりわけ、姿勢の推定データ、姿勢の持続時間データ、姿勢の向きデータ、姿勢の相互作用データ、感情データを含んでいても良い。分析及び結果データ214は、分析データを分析計算モジュール206で分析して得られた結果データを含んでいても良い。結果データは、体験コンテンツデータセット212のうちの1つから生成した仮想コンテンツの最もよく使用された特性または最もよく見られた位置を含んでいても良い。
【0030】
図3は、いくつかの例示的な実施形態によるコンテンツ作成ツール202のモジュール(例えば、コンポーネント)を示すブロック図である。コンテンツ作成ツール202は、テンプレート301及び体験コンテンツデータセット生成部206を含んでいても良い。テンプレート301を使用して、事前に構成した様々な相互作用テンプレートの選択肢をユーザに提供することによって、クライアント112側のユーザ102がデバイス101に対して容易に体験を作成できるようにしても良い。例えば、
図14〜
図19は、各テンプレートに対して生成した独特の体験を示している。
【0031】
図14は、「浮遊オブジェクト」(例えば、靴)テンプレート1400を使用して生成したコンテンツの一例を示している。1402では、靴の印刷画像が提供されている。1404では、ユーザは、デバイスを靴の画像に向ける。1406では、靴のレンダリングされた3次元のモデルが印刷画像の周囲に生成される。ユーザは、デバイスを動かすことができ、どのような角度からでも靴を見ることができる。
【0032】
図15は、「マジックムービー」テンプレート1500を使用して生成したコンテンツの一例を示している。1502では、人気玩具ブランドのイラストが1ページに印刷されている。1504では、ユーザはデバイスを印刷されたイラストに向ける。1506では、レンダリングされた3次元の仮想オブジェクト(例えば玩具)が印刷されたイラスト画像の周囲に立って現れている。1508では、玩具は、アニメーション化され、ユーザは、どのような角度からでも玩具を見ることができる。
【0033】
図16A〜
図16Bは、「X線メガネ」テンプレート1600を使用して生成したコンテンツの一例を示している。1602では、博物館の入口の写真が1ページに印刷されている。1604では、ユーザは、モバイルデバイスを博物館の入口の写真に向ける。1606では、博物館の仮想ドアが開き、博物館の入口広間の3次元モデルが現れる。1608では、ユーザは、デバイスを右に動かして廊下の片側の建築面の細部を見ることができる。1610では、ユーザは、デバイスを左に動かして廊下の片側の建築面の細部を見ることができる。「X線メガネ」テンプレート1600は、2次元画像という1つの選択肢と3次元画像という他の選択肢とを備えていても良い。
【0034】
図17A〜
図17Bは、「ペーパードール」テンプレート1700を使用して生成したコンテンツの一例を示している。1702では、印刷したファッションカタログのページに写真が見えている。1704では、ユーザがデバイスを使用してそのページを見る。1706では、ファッションモデルが同じページの服一式を着てページ上を歩く。1708では、ユーザは、デバイスのディスプレイを端から端まで動かす身振りをして別の服一式を選択する。1710では、ファッションモデルが今度は別の服一式を着る。1712では、ユーザは、再びデバイスのディスプレイを端から端まで動かす身振りをして別の服一式を選択できる。1714では、ファッションモデルが今度は別の服一式を着る。
【0035】
図18A〜
図18Bは、「情報層」テンプレート1800を使用して生成したコンテンツの一例を示している。1802では、印刷地図が提供されている。1804では、ユーザがデバイスで印刷地図を見る。1806では、3次元のフラグピンが上から降りてきて、印刷地図の画像上に着地する。1808では、フラグピンは、印刷地図の画像上の特定の位置に自らを固定する。1810では、ユーザは、フラグピンに触れる。1812では、ディスプレイに情報パネルが現れてよく、このパネルは触れられたフラグピンの上で浮遊する。情報パネルは、触れられたフラグピンに対応する場所に関する情報を含んでいても良い。
【0036】
図19A〜
図19Bは、「相互作用的」テンプレート1900を使用して生成したコンテンツの一例を示している。1902では、人気のある車の印刷広告が提供されている。1904では、ユーザがデバイスの焦点を当てて、印刷広告のリアルタイム画像を撮影する。1906では、広告車の3次元モデルが印刷ページに降りてくる。デバイスには「オープン」ボタンが表示されていても良い。1908では、ユーザは、「オープン」ボタンに触れる。1910では、広告車の3次元モデルのドア及びトランクがサウンド効果と共に開く。1912では、ユーザは、どのような視点からでも車両内部を探検できる。広告車の3次元モデルのドア及びトランクを閉めるために、画面上に「クローズ」ボタンが現れても良い。
【0037】
1つの実施形態では、ユーザは、テンプレートを選択し、選択したテンプレートにコンテンツ(物理オブジェクト画像及び仮想コンテンツモデル)を提供する。他の実施形態では、ユーザは、テンプレートを選択し、かつ、ユーザに対して事前に構成されたコンテンツ(物理オブジェクト画像または仮想コンテンツモデル)の選択肢から選択しても良い。
【0038】
テンプレート301は、物理コンテンツ生成部302及び仮想コンテンツ生成部304を備えていても良い。物理コンテンツ生成部302を使用して、コンテンツ識別子に対する2次元画像または3次元オブジェクトモデルを受け取ることができる。仮想コンテンツ生成部304を使用して、仮想オブジェクトコンテンツに対する2次元または3次元の仮想オブジェクトモデルを受け取っても良い。このほか、テンプレート301は、コンテンツ識別子及び仮想オブジェクトコンテンツに関するメタデータ情報を収集しても良い。メタデータ情報は、例えば、位置、サイズ、色、ブランド、及びキーワードを含んでいても良い。コンテンツ識別子は、メタデータ情報を用いて最適化されても良い。例えば、写真をコンテンツ識別子として提示する。その写真に対応するメタデータは、その写真に関連するブランド製品名を含んでいても良い。
【0039】
体験コンテンツデータセット生成部306は、選択したテンプレートの特色に基づいて体験コンテンツデータセットを生成するために、物理コンテンツ生成部から得たコンテンツ識別子を仮想コンテンツ生成部から得た仮想オブジェクトコンテンツに関連付けも良い。1つの実施形態では、体験コンテンツデータセット生成部306は、フォーマットコンバータ308及びコンテンツ特性分析モジュール310を備えていても良い。
【0040】
フォーマットコンバータ308は、他の必要なコンポーネントに対するコンテンツ識別子のフォーマットの変換のために使用しても良い。例えば、フォーマットコンバータ308は、写真をメニューデザイン用のサムネイルに変換し、レイアウトデザイン用に大きなフォーマットに変換しても良い。フォーマットコンバータ308を使用して、認識したコンテンツ識別子をデバイスで追跡するためにコンテンツ識別子の数学ハッシュを生成できる。
【0041】
コンテンツ特性分析モジュール310は、仮想オブジェクトコンテンツの特性を決定し、かつ、仮想オブジェクトの特性に関する相互作用的な特性の表示をデバイスに生成しても良い。例えば、仮想オブジェクトのアニメーションに関連付けられたボタンを、デバイスの仮想オブジェクトの表示内に自動的に生成しても良い。
【0042】
図4は、いくつかの例示的な実施形態によるコンテンツ作成ツール202の動作の一例を示すブロック図である。物理コンテンツ生成部302は、テンプレートを介して、2次元画像402(例えば、写真)、3次元オブジェクトモデル404、及び3次元オブジェクトをスキャンしたモデル406を受け取る。仮想コンテンツ生成部304は、テンプレートを介して、3次元仮想コンテンツ408(例えば、アニメーション化した特性を有する3次元の仮想的な車)、2次元仮想コンテンツ410(例えば、写真)を受け取る。体験コンテンツデータセット生成部306は、物理コンテンツ生成部302で受け取った物理コンテンツモデルを仮想コンテンツ生成部304で受け取った対応する仮想コンテンツモジュールに関連付けて(例えば、マッピングする)、体験コンテンツデータセット412を生成する。体験コンテンツデータセット412は、デバイス101と通信でき、それによって、デバイス101が体験コンテンツデータセット412から得たスキャン写真を認識すると、認識したスキャン写真に対応する体験がデバイス101に生成される。体験は、ユーザ102が、デバイス101のディスプレイにあるスキャン写真のリアルタイムの描写と合わせて、デバイス101に表示された仮想オブジェクトの相互作用的な特性と相互作用できるようにすることを含んでいても良い。
【0043】
図5は、いくつかの例示的な実施形態によるコンテンツ作成ツールの動作の他の例を示すブロック図である。体験コンテンツデータセット生成部306は、体験コンテンツデータセット412の拡張バージョン(例えば拡張した体験コンテンツデータセット504)を生成するために、分析結果502にアクセスしても良い。拡張体験コンテンツデータセット504は、ユーザに対してカスタマイズされても良いし、他のデバイスのリアルタイムの分析結果に基づいて修正されても良い。例えば、拡張体験コンテンツデータセット504は、デバイスにある拡張現実アプリケーションを使用して、最も人気があると評判の仮想オブジェクトの描写を生成しても良い。
【0044】
図6は、いくつかの例示的な実施形態によるデバイス101のモジュール(例えば、コンポーネント)を示すブロック図である。デバイス101は、センサ602、ディスプレイ604、プロセッサ606、及びストレージデバイス616を備えていても良い。例えば、デバイス101は、ユーザのデスクトップコンピュータ、車両コンピュータ、タブレットコンピュータ、ナビゲータデバイス、携帯型メディアデバイス、またはスマートフォンであっても良い。ユーザは、人間のユーザ(例えば、ヒト)、マシンのユーザ(例えば、ソフトウェアプログラムによってデバイス101と相互作用するように構成されたコンピュータ)、またはこれらを任意に適切に組み合わせたもの(例えば、マシンに補佐される人間、または人間に監督されるマシン)であっても良い。
【0045】
センサ602は、例えば、近接センサ、光学センサ(例えば、電荷結合素子(CCD))、方向センサ(例えば、ジャイロスコープ)、音響センサ(例えば、マイクロフォン)を備えていても良い。例えば、センサ602は、デバイス101内に後ろ向きのカメラ及び前向きのカメラを備えていても良い。本明細書に記載するセンサは、例示的なものであるため、センサ602は記載したものに限定されないことに注意されたい。
【0046】
ディスプレイ604は、例えば、タッチスクリーンディスプレイ上の接触を介してユーザ入力を受け取るように構成されたタッチスクリーンディスプレイを備えていても良い。他の例では、ディスプレイ604は、プロセッサ606が生成した画像を表示するように構成された画面またはモニタを備えていても良い。
【0047】
プロセッサ606は、文脈的ローカル画像認識モジュール608、拡張現実アプリケーション609などの消費アプリケーション、及び分析追跡モジュール618を備えていても良い。
【0048】
拡張現実アプリケーション609は、デバイス101のカメラで撮影した物理オブジェクトの画像に重ねた3次元の仮想オブジェクトを視覚化したものを、デバイス101のディスプレイ604に生成しても良い。3次元の仮想オブジェクトの視覚化は、デバイス101のカメラに対する物理オブジェクトの位置を調整することで操作しても良い。同じく、3次元の仮想オブジェクトの視覚化は、物理オブジェクトに対するデバイス100の位置を調整することで操作しても良い。
【0049】
1つの実施形態では、拡張現実アプリケーション609は、撮影した画像に関連付けられた仮想オブジェクトの3次元モデルを取得すために、デバイス101にある文脈的ローカル画像認識データセットモジュール608と通信する。例えば、撮影した画像は、識別可能な画像、記号、文字、数字、マシン可読コードからなる視覚基準(マーカーとも呼ばれる)を含んでいても良い。例えば、視覚基準は、バーコード、QRコード(登録商標)、または以前に3次元の仮想オブジェクトと関連付けられた画像を含んでいても良い。
【0050】
文脈的ローカル画像認識データセットモジュール608は、撮影した画像が、画像のローカルデータベースにローカルに格納されている画像、及びデバイス101上の対応する追加情報(例えば3次元モデル及び相互作用的な特性)と一致しているかどうかを判断するように構成されても良い。1つの実施形態では、文脈的ローカル画像認識モジュール608は、サーバ110から1次コンテンツデータセットを取得し、デバイス101で撮影した画像に基づいて文脈的コンテンツデータセットを生成し更新する。
【0051】
分析追跡モジュール618は、ユーザ102が物理オブジェクトとどのように関係しているかについて分析データを追跡しても良い。例えば、分析追跡モジュール618は、ユーザ102は物理オブジェクトまたは仮想オブジェクトのどこを見たのか、ユーザ102は物理オブジェクトまたは仮想オブジェクトの各位置をどのくらいの間見たのか、ユーザ102は物理オブジェクトまたは仮想オブジェクトを見ているときデバイス101をどのように保持したか、ユーザ102は仮想オブジェクトのどの特性に接触したのか(例えば、ユーザが仮想オブジェクトにあるリンクを叩いたのかどうかなど)を追跡しても良い。
【0052】
ストレージデバイス616は、視覚基準(例えば、画像)及び対応する体験(例えば、3次元の仮想オブジェクト、3次元の仮想オブジェクトの相互作用的な特性)のデータベースを格納するように構成されていても良い。例えば、視覚基準は、マシン可読コードまたは事前に識別された画像(例えば、靴の写真)を含んでいても良い。事前に識別された靴の画像は、靴の3次元仮想モデルに対応していてよく、このモデルは、靴の写真に対するデバイス101の位置を操作して様々な角度から見られる。3次元の仮想的な靴の特性は、靴の3次元仮想モデル上に選択可能なアイコンを含んでいても良い。アイコンは、デバイス101をタップするか動かすことにより、選択されまたは作動させても良い。
【0053】
1つの実施形態では、ストレージデバイス604は、1次コンテンツデータセット610、文脈的コンテンツデータセット612、拡張コンテンツデータセット622、及び分析データ620を含んでいる。
【0054】
1次コンテンツデータセット610は、例えば、第1の画像セット及びそれに対応する体験(例えば相互作用的な3次元仮想オブジェクトモデル)を含んでいる。1次コンテンツデータセット610は、中核の画像セットまたはサーバ110が決定した最ポピュラーな画像を含んでいても良い。中核の画像セットは、サーバ110が識別した限定数の画像を含んでいても良い。例えば、中核の画像セットは、最もポピュラーな雑誌10冊の表紙画像及びそれに対応する体験(例えば仮想オブジェクト)を含んでいても良い。他の例では、サーバ110は、サーバ110が受け取った最もポピュラーな画像またはよくスキャンされる画像に基づいて、第1の画像セットを生成できる。
【0055】
文脈的コンテンツデータセット612は、例えば、サーバ110から取得した第2の画像セット及びそれに対応する体験(例えば、3次元の仮想オブジェクトモデル)を備えている。例えば、1次コンテンツデータセット610で認識されていないデバイス101で撮影した画像は、認識するためにサーバ110に送信される。もし撮影した画像がサーバに認識されていれば、対応する体験は、デバイス101にダウンロードされて文脈的コンテンツデータセット612に格納されても良い。
【0056】
分析データ620は、分析追跡モジュール618が収集した分析データに相当する。
【0057】
拡張コンテンツデータセット622は、例えば、拡張画像セット及びそれに対応する体験を備え、この体験は、分析追跡モジュール618が収集した分析データに基づいてサーバ110からダウンロードされる。
【0058】
1つの実施形態では、デバイス101は、視覚基準のデータベースの一部、それに対応する3次元仮想オブジェクト、及びそれに対応する3次元仮想オブジェクトの相互作用的な特性を取得するために、ネットワーク108上でサーバ110と通信しても良い。ネットワーク108は、マシン、データベース、及びデバイス(例えば、デバイス101)の間で通信できる任意のネットワークであっても良い。したがって、ネットワーク108は、有線ネットワーク、無線ネットワーク(例えば、モバイルまたはセルラーネットワーク)、またはこれらを任意に適切に組み合わせたものであっても良い。ネットワークは、プライベートネットワーク、パブリックネットワーク(例えばインターネット)、またはこれらを任意に適切に組み合わせたものを構成する1つ以上の部分を含んでいても良い。
【0059】
本明細書で説明される、任意の1つ以上のモジュールは、ハードウェア(例えば、マシンのプロセッサ)、またはハードウェアとソフトウェアの組み合わせを使用して実装されても良い。例えば、本明細書で説明される任意のモジュールは、そのモジュールのために、本明細書で説明される動作を実施するためのプロセッサを構成しても良い。その上、任意の2つ以上のこれらのモジュールは、単一のモジュールに結合されてもよく、かつ単一のモジュールに対して本明細書で説明される機能は、複数のモジュールの中で細分化されても良い。さらに、様々な実施例によれば、単一のマシン、データベース、またはデバイスの中で実装されるような、本明細書で説明されるモジュールは、複数のマシン、データベース、またはデバイスにわたって分散されても良い。
【0060】
図7は、いくつかの例示的な実施形態による文脈的ローカル画像認識モジュールのモジュール(例えばコンポーネント)を示すブロック図である。文脈的ローカル画像認識データセットモジュール608は、画像撮影モジュール702、ローカル画像認識モジュール704、コンテンツ要求モジュール706、及び文脈的コンテンツデータセット更新モジュール708を備えていても良い。
【0061】
画像撮影モジュール702は、デバイス101のレンズで画像を撮影しても良い。例えば、画像撮影モジュール702は、デバイス101が向けられた物理オブジェクトの画像を撮影しても良い。1つの実施形態では、画像撮影モジュール702は、1つの画像または一連のスナップショットを撮影しても良い。他の実施形態では、画像撮影モジュール702は、デバイス101がもう動いていないことをセンサ602(例えば、振動、ジャイロスコープ、コンパスなど)が検知した際に画像を撮影しても良い。
【0062】
ローカル画像認識モジュール704は、撮影した画像が1次コンテンツデータセット610に格納されている画像と一致しているかを判断し、デバイス101で撮影した画像が、デバイス101に格納されている1次コンテンツデータセット610の画像セットのうちの1つと一致している場合に、デバイス101で撮影した画像に対応する3次元の仮想オブジェクトモデルをローカルでレンダリングする。
【0063】
他の実施形態では、ローカル画像認識モジュール704は、撮影した画像が文脈的コンテンツデータセット612に格納されている画像と一致しているかを判断し、デバイス101で撮影した画像が、デバイス101に格納されている文脈的コンテンツデータセット612の画像セットのうちの1つと一致している場合に、デバイス101で撮影した画像に対応する3次元の仮想オブジェクトモデルをローカルでレンダリングする。
【0064】
コンテンツ要求モジュール706は、デバイス101で撮影した画像がストレージデバイス604内の1次コンテンツデータセット612及び文脈的コンテンツデータセット612にある画像セットのうちの1つと一致していない場合に、デバイス101で撮影した画像に対応する3次元の仮想オブジェクトモデルをサーバ110に要求しても良い。
【0065】
文脈的コンテンツデータセット更新モジュール708は、コンテンツ要求モジュール706が生成した要求に応答して、サーバ110からデバイス101で撮影した画像に対応する3次元の仮想オブジェクトモデルを受け取っても良い。1つの実施形態では、文脈的コンテンツデータセット更新モジュール708は、デバイス101で撮影した画像がデバイス101のストレージデバイス604にローカルで格納されているどの画像とも一致しない場合に、サーバ110から得たデバイス101で撮影した画像に対応する3次元の仮想オブジェクトモデルを用いて文脈的コンテンツデータセット612を更新しても良い。
【0066】
他の実施形態では、コンテンツ要求モジュール706は、デバイス101の使用状況を判断でき、その使用状況に基づいて、第3の画像セット及びそれに対応する3次元の仮想オブジェクトモデルの要求をサーバ110に対して生成しても良い。使用状況は、ユーザがいつ、どのくらいの頻度で、どこで、どのようにデバイス101を使用しているかに関わるものであっても良い。文脈的コンテンツデータセット更新モジュール708は、第3の画像セット及びそれに対応する3次元の仮想オブジェクトモデルを用いて文脈的コンテンツデータセットを更新できる。
【0067】
例えば、コンテンツ要求モジュール706は、ユーザ102が朝の時間に新聞のページをスキャンしていると判断する。すると、コンテンツ要求モジュール706は、ユーザ102の朝の使用法に関わる画像セット及びそれに対応する体験の要求をサーバ110に対して生成する。例えば、コンテンツ要求モジュール706は、ユーザ102が朝に最もスキャンしそうなスポーツ記事の画像、及びその記事に記載されているチームのそれに対応する更新された仮想スコアボードを取得しても良い。体験は、例えば、ユーザ102向けに個人設定した空想のリーグスコアボードの更新を含んでいても良い。
【0068】
他の例では、コンテンツ要求モジュール706は、ユーザ102が新聞のビジネス欄をよくスキャンすると判断する。すると、コンテンツ要求モジュール706は、画像セット及びそれに対応するユーザ102に関わる体験の要求をサーバ110に対して生成する。例えば、コンテンツ要求モジュール706は、次回発行のビジネス記事が入手可能になった時点で、新聞の次回発行のビジネス記事の画像を取得しても良い。体験は、例えば、次回発行のビジネス記事の画像に対応する映像レポートを含んでいても良い。
【0069】
さらに他の実施形態では、コンテンツ要求モジュール706は、デバイス101のユーザ102のソーシャル情報を判断し、そのソーシャル情報に基づいて他の画像セット及びそれに対応する3次元の仮想オブジェクトモデルの要求をサーバ110に対して生成しても良い。ソーシャル情報は、デバイス101内のソーシャルネットワークアプリケーションから取得しても良い。ソーシャル情報は、ユーザ102が、誰と関係しているか、ユーザ102がデバイス101の拡張現実アプリケーション609を使用して誰と体験を共有しているかに関するものであっても良い。文脈的コンテンツデータセット更新モジュール708は、他の画像セット及びそれに対応する3次元の仮想オブジェクトモデルを用いて文脈的コンテンツデータセットを更新しても良い。
【0070】
例えば、ユーザ102は、雑誌の複数のページをスキャンしても良い。コンテンツ要求モジュール706は、ユーザ102が、同じような関心事を共有し別の雑誌を読んでいる別のユーザと友人であることをソーシャルネットワークアプリケーションから判断する。このようにして、コンテンツ要求モジュール706は、他の雑誌に関する画像セット及びそれに対応する体験という要求をサーバ110に対して生成しても良い。
【0071】
他の例では、もしコンテンツ要求モジュール706が、ユーザ102が同じ雑誌から1つまたは2つの画像をスキャンしたと判断すれば、コンテンツ要求モジュール706は、同じ雑誌にある他の画像から追加のコンテンツを得るという要求を生成しても良い。
【0072】
図8は、いくつかの例示的な実施形態による分析追跡モジュール618のモジュール(例えば、コンポーネント)示すブロック図である。分析追跡モジュール618は、姿勢推定モジュール802、姿勢持続時間モジュール804、姿勢向きモジュール806、及び姿勢相互作用モジュール808を備えている。
【0073】
姿勢推定モジュール802は、デバイス101が向いている仮想オブジェクト、または物理オブジェクト上の位置を検知するように構成されていても良い。例えば、デバイス101は、物理オブジェクト104にデバイス101を向けることにより生成された仮想像の上部に焦点を当てても良い。他の例では、デバイス101は、雑誌の写真に載っている人物の靴に焦点を当てることができる。
【0074】
姿勢持続時間モジュール804は、デバイス101が物理オブジェクトまたは仮想オブジェクト上の同じ位置に向けている持続時間を判断するように構成されていても良い。例えば、姿勢持続時間モジュール804は、ユーザ102が雑誌に載っている人物の靴にデバイスを向けてそれを維持している時間の長さを計測しても良い。ユーザ102がデバイス101を靴に向けて保持した時間の長さに基づいて、靴に対する感情及び関心を推測しても良い。
【0075】
姿勢向きモジュール806は、物理オブジェクトまたは仮想オブジェクトに焦点を当てたデバイスの向きを判断するように構成されていても良い。例えば、姿勢の向きモジュール806は、ユーザ102がデバイス101を横向き形式で保持していると判断でき、それによって、そのデバイス101の向きに基づいて感情または関心を推測できる。
【0076】
姿勢相互作用モジュール808は、物理オブジェクトに対応する仮想オブジェクトに対してユーザ102がデバイス101で行う相互作用を判断するように構成されていても良い。例えば、仮想オブジェクトは、仮想のメニューまたはボタンなどの特性を含んでいても良い。ユーザ102が仮想ボタンを押すと、デバイス101内のブラウザアプリケーションが起動し、押した仮想のダイアログボックスと関連付けられた、事前に選択したウェブサイトを立ち上げる。姿勢相互作用モジュール408は、ユーザ102がどのボタンを押したのか、各仮想ボタンのクリックスルーレート、ユーザ102が拡張現実アプリケーション609から訪れたウェブサイトなどを測定し判断しても良い。
【0077】
図9は、いくつかの例示的な実施形態による体験している一例を示す概略図である。デバイス101は、デバイス101が認識している画像906を有する物理オブジェクト904に向けられても良い。デバイス101は、動作916で画像のハッシュをサーバ110に送信する。サーバ110は、画像906に対応する2次元の写真922、2次元の写真922に関連付けられた3次元の画像モデル924、及び2次元の写真922に関連付けられたメタデータ926を送信するためにクライアント112が使用したコンテンツ作成ツールを備えている。
【0078】
サーバ110においてコンテンツ作成ツールは、デバイス101のディスプレイ902に体験920を生成するために、デバイス101に対するハッシュ2次元画像916に対応する体験コンテンツデータセット918を生成する。体験は、3次元仮想オブジェクト908の関心箇所912、910、914を含む相互作用的な特性を含んでいてよく、これは3次元画像モデル924から形成されても良い。1つの実施形態では、デバイス101でレンダリングエンジンが3次元の仮想オブジェクト908をレンダリングする。
【0079】
図10は、いくつかの例示的な実施形態によるテンプレートを使用して体験コンテンツデータセットを作成する方法の一例を示しているフローチャートである。動作1002では、サーバ110のコンテンツ作成ツールのテンプレートを生成して体験コンテンツデータセットを構築する。
【0080】
動作1004では、テンプレートを使用して物理コンテンツデータを受け取る。物理コンテンツデータは、2次元の画像または3次元のオブジェクトモデルに対するデータを含んでいても良い。
【0081】
動作1006では、テンプレートを使用して仮想コンテンツデータを受け取る。仮想コンテンツデータは、2次元または3次元の仮想オブジェクトモデルに対するデータを含んでいても良い。
【0082】
動作1008では、コンテンツ作成ツールは、物理コンテンツデータおよび仮想コンテンツデータに基づいて体験コンテンツデータセットを生成する。
【0083】
図11は、いくつかの例示的な実施形態によるコンテンツ作成用テンプレートを使用するための例示的な方法を示すフローチャートである。動作1102では、コンテンツ作成ツールは、識別対象のオブジェクトの画像または立体形状を受け取る。動作1104では、コンテンツ作成ツールは、オブジェクトの画像または立体形状に関するメタデータを受け取る。動作1106では、コンテンツ作成ツールは、オブジェクトの画像または立体形状を追跡するためのハッシュを生成する。
【0084】
図12は、いくつかの例示的な実施形態によるコンテンツ作成用テンプレートを使用するための他の例示的な方法を示すフローチャートである。動作1202では、コンテンツ作成ツールは、2次元または3次元オブジェクトのコンテンツを受け取る。動作1204では、コンテンツ作成ツールは、2次元または3次元オブジェクトのコンテンツを識別対象の画像またはオブジェクトのハッシュに関連付ける。動作1206では、コンテンツ作成ツールは、2次元または3次元オブジェクトのコンテンツの特性を判断する。
【0085】
図13は、いくつかの例示的な実施形態による、マシン可読媒体(例えば、マシン可読型の記憶媒体、コンピュータ可読型の記憶媒体、またはこれらを任意に適切に組み合わせたもの)からの命令を読み取ることができ、本明細書で考察する任意の1つ以上の方法を全体的または部分的に実施できるマシン1300のコンポーネントを示すブロック図である。特に、
図13は、コンピュータシステムの例示的な形態であるマシン1300の概略図を示しており、このコンピュータシステム内部で、本明細書で考察する任意の1つ以上の方法をマシン1300に実施させるための命令1324(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリケーションプログラム、またはその他の実行可能なコード)を、全体的または部分的に実行できる。代替実施形態では、マシン1300は、独立型デバイスとして動作するか、または他のマシンに接続(例えばネットワーク接続)していても良い。ネットワーク化された展開では、マシン1300は、サーバ−クライアントネットワーク環境にあるサーバマシン、またはクライアントマシンの能力で、または分散型(例えば、ピアツーピア)ネットワーク環境にあるピアマシンとして動作できる。マシン1300は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、スマートフォン、webアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、または任意のマシンであって、そのマシンがとる行動を指定する命令1324を連続的に、又はそれ以外の方法で実行できるマシンであっても良い。さらに、単一のマシンのみを図示しているが、「マシン」という用語は、命令1324を個別にまたは同時に実行して本明細書で考察する任意の1つ以上の方法の全部又は一部を実施するマシンの集合も含むとみなすものとする。
【0086】
マシン1300は、プロセッサ1302(例えば中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、無線周波数集積回路(RFIC)、またはこれらを任意に適切に組み合わせたもの)、メインメモリ1304、及びスタティックメモリ1306を備え、これらはバス1308を介して互いに通信するように構成されている。マシン1300は、グラフィックディスプレイ1310(例えば、プラズマディスプレイパネル(PDP)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プロジェクタ、または陰極線管(CRT))をさらに備えていても良い。マシン1300は、英数字入力デバイス1312(例えば、キーボード)、カーソルコントロールデバイス1314(例えば、マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサ、またはその他のポインティング機器)、ストレージユニット1316、信号生成デバイス1318(例えば、スピーカ)、及びネットワークインターフェースデバイス1320も備えていても良い。
【0087】
ストレージユニット1316は、本明細書に記載した任意の1つ以上の方法または機能を具体化する命令1324が格納されているマシン可読媒体1322を備えている。命令1324は、マシン1300がこの命令を実行している間、完全または少なくとも部分的に、メインメモリ1304の中、プロセッサ1302の中(例えばプロセッサのキャッシュメモリの中)、またはこの両者の中にあっても良い。したがって、メインメモリ1304及びプロセッサ1302をマシン可読媒体とみなしても良い。命令1324は、ネットワークインターフェースデバイス1320を介してネットワーク1326(例えば、ネットワーク108)上で伝送または受信されても良い。
【0088】
本明細書で使用したとおり、「メモリ」という用語は、データを一時的または恒久的に格納できるマシン可読媒体を指し、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、バッファメモリ、フラッシュメモリ、及びキャッシュメモリを含むものと考えても良いが、これに限定されない。マシン可読媒体1322は、例示的な実施形態には単一の媒体であると示されているが、「マシン可読媒体」という用語は、命令を格納できる単一の媒体または複数の媒体(例えば、集中型または分散型データベース、またはそれに関連するキャッシュ及びサーバ)を含むものと考えるべきである。「マシン可読媒体」という用語は、任意の媒体、または複数の媒体を組み合わせたものも含むと考えるものとし、この媒体は、マシン(例えば、プロセッサ1302)の1つ以上のプロセッサが命令を実行した際に、その命令でマシンが本明細書に記載した任意の1つ以上の方法を実施するように、マシン(例えば、マシン1300)が実行するための命令を格納できる。したがって、「マシン可読媒体」とは、単一のストレージ装置またはストレージデバイスを指すとともに、複数のストレージ装置またはストレージデバイスを備える「クラウドベース」のストレージシステムまたはストレージネットワークも指す。したがって、「マシン可読媒体」という用語は、固体メモリ、光学媒体、磁気媒体、またはこれらを任意に適切に組み合わせた形態における一つ以上のデータリポジトリを含むと考えるものとするが、これに限定されない。
【0089】
この明細書を通して、複数の事例は、単一の事例として説明される構成要素、動作、または構造を実装しても良い。1つ以上の方法の個々の動作は、別個の動作として示され、かつ説明されてはいるが、1つ以上の個々の動作は同時に実施されてもよく、かつ示された順番で動作が実施されることは、要求されない。構成例において、別個の構成部品として提示された構造及び機能性は、組み合わされた構造または組み合わされた構成要素として実装されても良い。同様に、単一の構成要素として提示された構造及び機能性は、別個の構成要素として実装されても良い。これらの及び他の変形例、変更例、追加例、及び改善例は、本明細書おける主題の範囲内である。
【0090】
ある実施形態は、本明細書では、ロジックまたは多数の構成要素、モジュール、又は機械仕掛けを含むものとして説明される。モジュールは、ソフトウェアモジュール(例えば、マシン可読な媒体上において、または伝送信号において具体化されたコード)、またはハードウェアモジュールのいずれかを構成しても良い。「ハードウェアモジュール」は、ある動作を実施できる有形ユニットであり、かつある物理的方法において構成されるか、または配列されても良い。様々な実施例で、1つ以上のコンピュータシステム(例えば、スタンドアロン・コンピュータ・システム、クライアント・コンピュータ・システム、またはサーバ・コンピュータ・システム)、またはコンピュータシステム(例えば、プロセッサまたは一群のプロセッサ)の1つ以上のハードウェアモジュールは、本明細書で説明されるような、ある動作を実施するために動作するハードウェアモジュールとして、ソフトウェア(例えば、アプリケーションまたはアプリケーションの部分)によって構成されても良い。
【0091】
いくつかの実施形態では、ハードウェアモジュールは、機械的に、電子的に、またはこれらの適切な任意の組み合わせで実装されても良い。例えば、ハードウェアモジュールは、ある動作を実施するように恒久的に構成される、専用の回路またはロジックを含んでも良い。例えば、ハードウェアモジュールは、フィールド・プログラマブル・ゲートアレイ(FPGA)またはASICのような特殊用途プロセッサであっても良い。ハードウェアモジュールはまた、ある動作を実施するようにソフトウェアによって一時的に構成される、プログラム可能なロジックまたは回路を含んでも良い。例えば、ハードウェアモジュールは、汎用プロセッサまたは他のプログラム可能なプロセッサの中に包含されるソフトウェアを含んでも良い。専用の、かつ恒久的に構成された回路において、または一時的に構成された(例えば、ソフトウェアによって構成された)回路において、ハードウェアモジュールを機械的に実装するための決断は、コスト及び時間を考慮することによってなされることは、正しく理解される。
【0092】
したがって、表現「ハードウェアモジュール」は、有形実体を包含すると理解されるべきであり、実体とは、物理的に構築され、恒久的に構成されるか(例えば、ハードウェアにより実現される)、またはある方法で動作するように、もしくは本明細書で説明されたある動作を実行するように一時的に構成される(例えば、プログラムされる)、実体であるべきである。本明細書で使用されるように、「ハードウェア実装モジュール」は、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成される(例えば、プログラムされる)実施形態を考えれば、ハードウェアモジュールの各々は、時間におけるいずれの段階にあっても、構成される必要がないか、または実証される必要が無い。例えば、ハードウェアモジュールが、特殊用途プロセッサになるように、ソフトウェアによって構成された汎用プロセッサを備える場合、その汎用プロセッサは、異なる時間には、それぞれ異なる特殊用途のプロセッサ(例えば、異なるハードウェアモジュールを備える)として構成されても良い。ソフトウェアは、したがって、例えば、時間のある1つの段階では特別なハードウェアモジュールを構成し、時間の異なる段階では異なるハードウェアモジュールを構成するように、プロセッサを構成しても良い。
【0093】
ハードウェアモジュールは、他のハードウェアモジュールへ情報を提供し、かつ他のハードウェアモジュールから情報を受信することが可能である。したがって、説明されたハードウェアモジュールは、通信的に結合されていると見なされても良い。複数のハードウェアモジュールが同時に存在するところでは、通信は、2つ以上のハードウェアモジュール間での、または2つ以上のハードウェアモジュールの中での(例えば、適切な回路及びバスを通しての)信号伝送によって達成されても良い。複数のハードウェアモジュールが、異なる時間に構成される、または実証される実施形態では、そのようなハードウェアモジュール間の通信は、例えば、複数のハードウェアモジュールがアクセスするメモリ構造における情報の記憶及び取得によって達成されても良い。例えば、1つのハードウェアモジュールは、動作を実施し、かつ、その動作の出力を、該ハードウェアモジュールが結合されるメモリ装置に格納しても良い。更なるハードウェアモジュールは、その後、より遅い時間に、格納された出力を取得して処理するために、メモリ装置にアクセスしても良い。ハードウェアモジュールはまた、入力装置または出力装置との通信を開始してもよく、かつ、リソース上で動作することが可能である(例えば、情報の収集)。
【0094】
本明細書で説明された方法例の様々な動作は、少なくとも部分的には、1つ以上のプロセッサによって実施されてもよく、該1つ以上のプロセッサは、関連する動作を実施するように一時的に(例えば、ソフトウェアによって)構成されるか、または恒久的に構成される。一時的にまたは恒久的に構成される、そのようなプロセッサは、本明細書で説明された、1つ以上の動作または機能を実施するために動作する、プロセッサ実装モジュールを構成しても良い。本明細書で使用されるように、「プロセッサ実装モジュール」は、1つ以上のプロセッサを使用して実装されたハードウェアモジュールを指す。
【0095】
同様に、本明細書で説明された方法は、少なくとも部分的にはプロセッサ実装であってもよく、プロセッサはハードウェアの一例である。例えば、1つの方法の、少なくともいくつかの動作は、1つ以上のプロセッサ、またはプロセッサ実装モジュールによって実施されても良い。その上、1つ以上のプロセッサはまた、「クラウドコンピューティング」環境における、または「サービスとしてのソフトウェア(SaaS)」としての、関連する動作の性能を支援するために動作しても良い。例えば、少なくともいくつかの動作は、一群のコンピュータ(プロセッサを含むマシンの例として)によって実施されてもよく、これらの動作は、ネットワーク(例えば、インターネット)を介して、1つ以上の適切なインターフェース(例えば、アプリケーション・プログラム・インターフェース(API))を介してアクセス可能である。
【0096】
ある動作の性能は、1つ以上のプロセッサの中で分散されてもよく、これら1つ以上のプロセッサは、単一マシン内に常駐するだけでなく、多数のマシンにわたって配備される。いくつかの実施例では、1つ以上のプロセッサまたはプロセッサ実装モジュールは、単一の地理的場所(例えば、ホーム環境、オフィス環境、またはサーバファームの中)に位置しても良い。他の実施例では、1つ以上のプロセッサまたはプロセッサ実装モジュールは、多数の地理的場所にわたって分散されても良い。
【0097】
本明細書で説明された主題のいくつかの部分は、マシンメモリ(例えば、コンピュータメモリ)内でビットまたは2値のデジタル信号として格納されたデータ上の、動作のアルゴリズムまたは記号的表現の観点で提示されても良い。そのようなアルゴリズムまたは記号的表現は、データ処理技術において当業者によって使用される技術例であり、それによって、自分達の仕事の要旨を他の当業者に伝えるためのものである。本明細書で使用される、「アルゴリズム」は、自己矛盾がない動作系列、または望ましい結果に導く同様な処理である。この文脈では、アルゴリズム及び動作は、物理量の物理的操作を含む。典型的には、しかし必ずしもというわけではないが、そのような量は、電気的信号、磁気的信号、または光学的信号の形態を取ってもよく、これらの信号は、マシンによって、格納され、アクセスされ、転送され、組み合わされ、比較され、または他の方法で操作され得る。主に通常の使用においては、「データ」、「コンテンツ」、「ビット」、「値」、「構成要素」、「記号」、「文字」、「用語」、「数」、「数字」などのような単語を用いて、そのような信号を指すことが時には簡便である。しかしながら、これらの単語は単なる簡便な標識であり、適切な物理量に関連付けられるべきものである。
【0098】
特に明記しない限り、「処理する(processing)」、「演算する(computing)」、「計算する(calculating)」、「判断する(determining)」、「示す(presenting)」、「表示する(displaying)」などの単語を用いた本発明の考察は、情報を受け取ったり、格納したり、伝送したり、表示したりする1つ以上のメモリ(例えば、揮発メモリ、不揮発メモリ、またはこれらを任意に適切に組み合わせたもの)、レジスタ、またはその他のマシンコンポーネントの中に物理的な(例えば、電気的な、磁気的な、または光学的な)量として表現されたデータを操作したり変換したりするマシン(例えば、コンピュータ)の作用またはプロセスを指して良い。さらに、特に明記しない限り、「1つの(aまたはan)」という用語は、特許文献でよく用いられるように、本明細書では1つ以上の事例を含むために使用している。最後に、本明細書で使用したように、特に明記しない限り、「または」を組み合わせたものは、非排他的な「または」を指す。