(58)【調査した分野】(Int.Cl.,DB名)
前記未知の対象物に関連付けられている前記少なくとも1つの物理的属性は、前記未知の対象物の形状、前記未知の対象物のサイズ、前記未知の対象物の配置、前記未知の対象物の姿勢、前記未知の対象物の他の対象物に関する出現順序、前記表示対象物の前記レンダリングに関連付けられているアプリケーションのモード、および他の未知の対象物の属性のうちの1つまたは複数を含む、請求項1に記載の方法。
前記対象物テンプレートに関連付けられている前記少なくとも1つの表示特性は、グラフィック特性およびアニメーション特性のうちの1つまたは複数を含む、請求項1に記載の方法。
前記未知の対象物は、複数の未知の対象物のうちの1つであり、前記対象物テンプレートは、前記複数の未知の対象物からの複数の未知の対象物に関連付けられる、請求項1に記載の方法。
前記表示対象物をレンダリングするステップは、モバイルデバイスのディスプレイ画面上に表示されるべき前記物理的光景を表現する画像上に前記表示対象物をレンダリングするステップを含む、請求項1に記載の方法。
前記未知の対象物に関連付けられている前記少なくとも1つの物理的属性は、前記未知の対象物の形状、前記未知の対象物のサイズ、前記未知の対象物の配置、前記未知の対象物の姿勢、前記未知の対象物の他の対象物に関する出現順序、前記表示対象物の前記レンダリングに関連付けられているアプリケーションのモード、および他の未知の対象物の属性のうちの1つまたは複数を含む、請求項9に記載のモバイルデバイス。
前記表示対象物をレンダリングするステップは、前記モバイルデバイスのディスプレイ画面上に表示されるべき前記物理的光景を表現する画像上に前記表示対象物をレンダリングするステップを含む、請求項9に記載のモバイルデバイス。
前記未知の対象物に関連付けられている前記少なくとも1つの物理的属性は、前記未知の対象物の形状、前記未知の対象物のサイズ、前記未知の対象物の配置、前記未知の対象物の姿勢、前記未知の対象物の他の対象物に関する出現順序、前記表示対象物の前記レンダリングに関連付けられているアプリケーションのモード、および他の未知の対象物の属性のうちの1つまたは複数を含む、請求項17に記載の非一時的コンピュータ可読記憶媒体。
前記表示対象物をレンダリングするステップは、モバイルデバイスのディスプレイ画面上に表示されるべき前記物理的光景を表現する画像上に前記表示対象物をレンダリングするステップを含む、請求項17に記載の非一時的コンピュータ可読記憶媒体。
前記未知の対象物に関連付けられている前記少なくとも1つの物理的属性は、前記未知の対象物の形状、前記未知の対象物のサイズ、前記未知の対象物の配置、前記未知の対象物の姿勢、前記未知の対象物の他の対象物に関する出現順序、前記表示対象物の前記レンダリングに関連付けられているアプリケーションのモード、および他の未知の対象物の属性のうちの1つまたは複数を含む、請求項25に記載の装置。
【発明を実施するための形態】
【0022】
次に、いくつかの例示的な実施形態について、本明細書の一部を形成する添付の図面に関連して説明する。本開示の1つまたは複数の態様が実装され得る特定の実施形態について以下で説明するが、本開示の範囲、または添付の特許請求の範囲の趣旨を逸脱することなく、他の実施形態を使用することができ、様々な変更を行うことができる。
【0023】
モバイル拡張現実は、現実の対象物の検出および追跡、ならびにこれらの現実の対象物に関して仮想コンテンツをレンダリングするステップを伴う。現実のコンテンツと仮想コンテンツとの間の納得のゆくインタラクションを生み出すために対象物の姿勢および形状を知ることが望ましいことがある。現実の対象物が、アプリケーションの開発時に知られている対象物として識別され得る場合、アプリケーション開発者は、知られている現実の対象物の知られている幾何学的形状、および3次元(3D)オーサリングツールを使用して精巧な拡張現実体験を作り出すことができる。たとえば、開発者は、グラフィックス、アニメーション、衝突検出などの、知られている現実の対象物に対する仮想コンテンツを作成することができる。対象物が知られている場合、現実の対象物とのすべてのインタラクションは、3Dオーサリングツールにおけるこの対象物の仮想表現によりシミュレートされ得る。たとえば、アプリケーション開発者が、物理的光景が台所用トップテーブルであり得ることを知っている場合、開発者は、ティーカップに対して仮想コンテンツ特性を定義し得る。実行時に、アプリケーション側でティーカップを識別するときに、アプリケーションは、ティーカップに対して開発者によって定義された仮想コンテンツを使用し得る。
【0024】
アプリケーション開発者または開発者は、アプリケーションをエディタモードで作成するために、3Dオーサリングツールなどの、編集ツールのユーザを指すものとしてよい。エディタモードは、アプリケーションがアプリケーション開発者によって開発される際の編集ツールの一モードを指すものとしてよい。編集ツールは、限定することなく、アプリケーションを開発するためのユーザインターフェースを備え得る。一実装において、開発者は、アプリケーションを開発するために編集ツールによって提供されるユーザインターフェースをエディタモードで使用し得る。ユーザインターフェースは、グラフィカルまたはコマンドインターフェースであってよい。
【0025】
後の時点であってもよい、実行時に、エディタモードで開発されたアプリケーションは、同じまたは異なるデバイス上で同じまたは異なるユーザによって実行され得る。実行時は、エディタモードでのアプリケーションの開発後の、後の時点におけるアプリケーションに関連付けられている命令またはオブジェクトコードの実行を指すものとしてよい。実行時に、アプリケーションは、デバイスのリアルタイム環境とインタラクションすることができる。
【0026】
本明細書で説明されている技法は、アプリケーションの開発時に未知または未確認である現実の対象物(これ以降、未知の対象物)に対する仮想コンテンツ特性を定義するための方法を提供する。たとえば、ARアプリケーションの開発時に、アプリケーション開発者は、モバイルデバイスおよびモバイルデバイス上で実行されるARアプリケーションが動作している可能性のある状況、したがって現実の対象物のタイプまたはクラス、およびARアプリケーションが遭遇し得る現実の対象物の数を知り得ない。状況が知られている場合でも、ARアプリケーションは、なおも未知の対象物に遭遇し得る。現実の対象物の形状、サイズ、相対的姿勢、および相対的位置決めなどの、対象物の物理的属性を知らないと、実行時に遭遇し得る未知の対象物に対する仮想コンテンツを開発者が生成することが困難な場合がある。さらに、モバイルデバイスおよびモバイルデバイスに結合されたカメラが物理的光景を横切って移動するときに、モバイルデバイスの観点から見たときの、形状、サイズ、または姿勢などの、対象物の寸法は、時間とともに変化し得る。
【0027】
いくつかの実施形態において、物理的光景を表現するために光景の妥当な抽象化が使用され得る。たとえば、開発者は、エディタモードで、対象物を上に載せて平面状表面を操作し得る。実行時に、モバイルデバイスは、物理的光景が平面状表面として表現され得ると決定し、モバイルデバイスのディスプレイ画面上に光景のデジタル表現をレンダリングする際に開発者によって開発された仮想コンテンツを使用し得る。対象物を上に載せた平面状表面は、光景の抽象化の一例にすぎないが、平面状表面は、屋内のARアプリケーション、たとえば、テーブルおよび床にとってごく一般的なものである。本発明の実施形態、および図は、平面状表面を使用して説明され得るけれども、物理的光景の他の表現も、本発明の範囲から逸脱することなく使用され得る。
【0028】
一実施形態において、3Dオーサリングツールは、未知の対象物に対するモデルを表現する、対象物テンプレートを開発者に提供する。開発者は、対象物テンプレートに対して、グラフィックスおよびアニメーションなどの、表示特性を定義し得る。対象物テンプレートに対するグラフィック特性は、限定することなく、色、サイズ、質感、形状、衝突検出、閉塞、および/または透明度のうちの1つまたは複数を含み得る。さらに、異なる対象物テンプレートも、定義され、エディタモードで光景の表現に追加され得る。
【0029】
エディタモードでは、ツールは、実行時に対象物テンプレートを未知の対象物に関連付けるための1つまたは複数の修飾子を定義するためのインターフェースも提供し得る。たとえば、エディタモードでは、開発者は、赤レンガ色の建造物のように見えるように対象物テンプレートに対する特性を定義し得る。さらに、開発者は、対象物テンプレートが実行時に検出された未知の対象物に適用され得るかどうかを決定し得る修飾子を定義し得る。たとえば、修飾子はエディタモードにおいて定義されるものとしてよく、したがって、赤色レンガ造りの建物に対する対象物テンプレートは、未知の対象物が特定のサイズおよび形状のものである場合に未知の対象物に使用され得る。一実装において、実行時に、対象物テンプレートは、修飾子の条件が対象物テンプレートについて満たされている場合に、レンダリングされる画像で、現実の未知の対象物の代わりに対象物テンプレートを(いくつかの場合において、未知の対象物のサイズに合わせてスケーリングして)表示するようにも定義され得る。
【0030】
上で説明されているように、対象物テンプレートの追加の特性は、コライダーであるものとしてよい。一般的に、衝突検出は、光景内に表現される各対象物に対してコライダーを定義することによって使用可能にされ得る。実行時に、コライダー特性は、未知の対象物に関連付けられている対象物テンプレートの定義に基づき、未知の対象物に自動的に適応することができる。たとえば、堅い建物を定義する対象物テンプレートに対するコライダー特性は、滝を定義するものとは異なるであろう。一実装において、衝突は、未知の対象物のメッシュ(すなわち、幾何学的定義)を使用して、計算され得る。別の実装では、衝突は、対象物の形状に対して定義されている境界ボックスを使用して計算され得る。
【0031】
実行時に、未知の対象物は、エディタツールを使用して開発時に開発された対象物テンプレートのうちの1つに関連付けられ得る。上で説明されているように、モバイルデバイスは、未知の対象物に対して識別された物理的属性に基づき未知の対象物を対象物テンプレートに関連付け得る。一実装において、対象物テンプレートは、未知の対象物の識別された物理的属性とマッチングされるものに関連付けられている修飾子を有し得る。未知の対象物の物理的属性は、限定することなく、未知の対象物の形状、未知の対象物のサイズ、未知の対象物の配置、未知の対象物の姿勢、未知の対象物の他の対象物に関する出現順序、表示対象物のレンダリングに関連付けられているアプリケーションのモード、および他の未知の対象物の物理的属性のうちの1つまたは複数を含み得る。修飾子が満たされ、対象物テンプレートが未知の対象物に関連付けられている場合、その仮想コンテンツを含む、対象物テンプレートは、物理的光景から未知の対象物の3次元(3D)姿勢で拡張現実ビューにおいて使用可能にされ、位置決めされ、レンダリングされ得る。
【0032】
一実装において、エディタモードでは、対象物テンプレートは、現実の対象物の形状が開発時には知られ得ないので、その物体に対して3Dボックスまたは他の任意の形状として視覚化されてよい。別の実装では、対象物テンプレートの表示対象物特性が定義されると、対象物テンプレートは、事前定義された形状に成形され得る。たとえば、表示対象物特性が、赤レンガ造りの家について選択された場合、対象物テンプレートは、赤レンガ造りの家を表現する形状および色にモーフィングし得る。一実装において、実行時に、3Dボックスは現実の(ただし未知の)対象物の幾何学的形状によって置き換えられ得る。未知の対象物に対するレンダリング設定は、3Dボックス上でエディタにおいて定義され、プレビューされ得る。可能な表示対象物特性は、対象物は、衝突にしか使用され得ないという理由から、まったくレンダリングされないという特性であってよい。
【0033】
一実装において、各対象物テンプレートは、特定の対象物に対するすべての仮想コンテンツが定義され得る、局所座標系を使用して定義されるものとしてよい。実行時に、局所座標系は、未知の対象物の3D姿勢に対する座標系に移動または変換され得る。いくつかの実装では、未知の対象物のサイズに基づき仮想コンテンツをスケーリングするか、または元のスケールを使用することが可能であり得る。
【0034】
特定の実施形態において、対象物テンプレートを使用する表示対象物は、現実の対象物の数および形状がモバイルデバイスに結合されたカメラによって知覚されたとおりに変化するときに自動的に更新される。たとえば、モバイルデバイスのユーザがモバイルデバイスを移動させると、表示対象物の形状およびサイズは、モバイルデバイスの姿勢の変化に基づき、変化し得る。加えて、いくつかの実装では、アプリケーションは、新しい対象物の検出または既存の対象物の修正などの、特定のトリガーに基づくイベントを受信し得る。これは、開発者が、実行時のファクタの予測に基づき、開発中にインタラクションをカスタマイズすることを可能にし得る。たとえば、ARゲームにおいて、新しい対象物は、障害物を表現するものとしてよく、ユーザは、新しい障害物が検出される毎にサウンドバイトによるアラートを受け取るものとしてよい。
【0035】
本発明の実施形態は、開発者が、未知の対象物に対して、エディタモードにおいて拡張現実コンテンツを作成することを可能にする。実行時に、モバイルデバイス上で実行されているARアプリケーションは、未知の対象物を、未知の対象物の物理的特性に基づき、対象物テンプレートに関連付け得る。本発明の実施形態は、拡張現実アプリケーションにおける未知の対象物を除く、現実世界を含めることを、アプリケーションが実行時に未知の対象物の少数の物理的属性しか検出し得ない場合であっても、可能にする。
【0036】
本発明の実施形態を使用してモバイルデバイス上で実行されるARアプリケーションに対する非限定的な例は、テーブルに載っている様々な形状およびサイズの多数の対象物を伴う会議用テーブルなどの物理的光景のデジタル表現の変換を含み得る。物理的光景は、モバイルデバイスの前面カメラによって取得され、モバイルデバイスのディスプレイ画面上で本発明の実施形態によるプロセッサを使用して修正され、レンダリングされ得る。一実施形態において、モバイルデバイス上で実行されているARアプリケーションは、物理的光景をモバイルデバイス上にデジタル表現されるように変換することを可能にする。ARアプリケーションの一例は、モバイルデバイスの画面上に表示される物理的光景のデジタル表現上で自動車レースが行われるゲームであってよい。
【0037】
本発明のいくつかの実施形態によれば、上記の例において、現実世界からの未知の対象物は、モバイルデバイスの画面上に示されている拡張現実に建物として変換され得る。本明細書で説明されている技法を使用することで、物理的光景からの未知の対象物は、異なる物理的属性を有する建物のレンダリングで置き換えられ得る。したがって、一例において、多数の対象物がテーブルの上に載っているテーブルは、自動車(仮想対象物)が多数の建物を通過する経路/道路上を走っているモバイルデバイスによって表示されるAR内の都市の光景として表現され得る。ユーザがモバイルデバイスを移動させると、モバイルデバイスの画面上に提示されているビューは、モバイルデバイスに結合されているカメラに関する物理的光景内の様々な対象物の姿勢の変化に適応させられる。
【0038】
一実装において、いくつかの事前定義された対象物テンプレートが利用可能であるものとしてよい。各対象物テンプレートは、それに関連付けられているサイズ、形状、色、閉塞などの、多数の特性を有し得る。実行時に、対象物テンプレートは、未知の対象物の物理的属性に基づきテーブルに載っている未知の対象物に関連付けられ得る。たとえば、モバイルデバイスは、物理的光景からの未知の対象物に関連付けられている形状、サイズ、姿勢、色、配置などの、修飾子物理的属性を検出し、対象物の物理的属性に基づき未知の対象物を置き換える/レンダリングするのに適している対象物テンプレートを選択し得る。たとえば、未知の対象物の物理的属性に基づき、モバイルデバイスは、モバイルデバイス上の物理的光景のレンダリングされたデジタル表現内の未知の対象物を置き換えるためにアニメーション能力のある建物、樹木、さらには生き物などの異なる構造特性に関連付けられた対象物テンプレートを選択し得る。
【0039】
これらの実施形態を説明する際に、「未知の対象物」および「未知の対象物の物理的属性」などの用語が使用されているけれども、いくつかの場合において、本発明から逸脱することなく「再構築された対象物」が代わりに使用され得る。一実施形態において、再構築された対象物は、物理的属性の関連付けられているセットを有する未知の対象物を指すものとしてよい。たとえば、モバイルデバイス側で、未知の対象物に対する1つまたは複数の物理的属性を決定し、これらの物理的属性を未知の対象物に関連付けると、未知の対象物は、再構築された対象物と称され得る。一態様において、モバイルデバイスが移動すると、再構築された対象物の形状およびサイズは、3D姿勢の変化とともに変化し得る。
【0040】
図1を参照すると、例示的なコンピューティングデバイス100は、本開示の1つまたは複数の態様を実装するように構成されているものとしてよい。たとえば、コンピューティングデバイス100は、スマートフォン、タブレットコンピュータ、携帯情報端末、またはコンピューティングデバイス100が画像または他のデータを入力の形態で受信することを可能にする1つまたは複数のセンサを備えた他のモバイルデバイスでよい。別の例では、コンピューティングデバイス100は、頭部搭載型デバイスまたは任意の他のコンピューティングデバイスであってよい。いくつかの実施形態では、コンピューティングデバイス100は、モバイルデバイスではなく、たとえば、デスクトップコンピュータ、ゲーム機、静止センサもしくはカメラ、またはワイヤレス方式でもしくは有線方式で一緒に結合された機械のシステムであってよい。コンピューティングデバイス100は、1つまたは複数の前面110もしくは背面カメラ、モノレンズカメラ、深度カメラ、レーザーセンサ、ソナーセンサ、および/または他のセンサを装備し、通信可能に結合され、および/または他の何らかの形で備え得る。モバイルデバイスは、デバイスとインタラクションするための1つまたは複数のユーザインターフェースも備え得る。たとえば、モバイルデバイスは、ユーザがデータを入力するためにインタラクションすることできるタッチスクリーン120を備え得る。コンピューティングデバイス100は、以下でより詳しく説明されるように、1つまたは複数のプロセッサ、メモリユニット、および/または他のハードウェアコンポーネントも備え得る。
図1のコンピューティングデバイス100は、
図11においてより詳しく説明されている1つまたは複数のコンポーネントを使用して、実装され得る。
【0041】
1つまたは複数の構成では、コンピューティングデバイス100は、画像または物理境界を画定するための他の手段のいずれかに基づいて、コンピューティングデバイス100の自然周囲についてのデータを取得するために、センサのいずれかおよび/またはすべてを単独でまたは組み合わせて使用し得る。たとえば、コンピューティングデバイス100は、コンピューティングデバイス100の自然周囲の1つまたは複数のグラフィックビューを取得するために1つまたは複数のカメラを使用し得る。特定の一例において、自然周囲は、テーブルまたは他の平坦な表面、およびテーブルの上に載っている複数の対象物を含み得る。
【0042】
図2Aは、本発明の1つまたは複数の実施形態による、エディタモードで1つまたは複数の対象物テンプレートを生成するためのインターフェースの例示的な視覚的表現を示している。エディタモードで生成された対象物テンプレートは、未知の対象物の表示を表示対象物で置き換える/拡張するために後で使用される。3Dオーサリングツールは、
図11で説明されているデバイスに類似するコンピューティングデバイス上で実行し得る。
図2Aは、3Dオーサリングツールの編集モードにおける平面状表面の抽象化を表している。編集モードで、開発者は、対象物テンプレートを追加し、定義し、編集し得る。たとえば、
図2Aでは、異なる色を有する2つの対象物テンプレート、赤色ボックス202(陰影1として示されている赤色)および青色ボックス204(陰影2として示されている青色)が、3Dオーサリングツールで作成され、画像ターゲット206のいずれかの側に位置決めされる。一実施形態において、3Dオーサリングツール内の赤色および青色ボックスのそのような配置は、画像ターゲット206に関するボックスの相対的位置に基づき、表示特性(すなわち、色)を対象物テンプレートに関連付け得る。たとえば、実行中に、ターゲット画像206の左側(ユーザの視点から)の未知の対象物は、赤で着色され、ターゲット画像206の右側の未知の対象物は、青で着色され得る。
【0043】
図2Bは、本発明の1つまたは複数の実施形態による、実行時にレンダリングされるような表示対象物の一例を示している。一実施形態において、
図2Bでは、コンピューティングデバイス100は、対象物テンプレートおよびARアプリケーションを生成するために使用される、コンピューティングデバイスと異なっているものとしてよい。さらに、コンピューティングデバイス100は、
図2Aで説明されているように、オーサリングツールによって生成される1つまたは複数の対象物テンプレートを使用するように構成され得る。たとえば、ユーザの視点に関して、ターゲット画像の左にある対象物は赤色を表示するように構成されるものとしてよく、ユーザの視点に関して、ターゲット画像の右にある対象物は、青色を表示するように構成されるものとしてよい。実行時に、コンピューティングデバイス100は、未知の対象物を発見して選択し、それらの未知の対象物を、画像ターゲットに関するグラウンド平面上の位置に従って編集モードで(
図2Aに示されているように)定義されている赤色ボックス202または青色ボックス204のいずれかである、2つの対象物テンプレートのうちの一方に関連付け得る。たとえば、画像ターゲット(対象物214)の右側のすべての対象物(たとえば、214)は、青色ボックス204の対象物テンプレートに関連付けられ、画像ターゲットの左側のすべての対象物(すなわち、対象物210および対象物212)は、赤色ボックス202の対象物テンプレートに関連付けられる。いくつかの場合において、210および212について
図2Bに示されているように、表示対象物に対する高さおよび幅などの、いくつかの表示特性は、未知の対象物のサイズに基づきスケーリングされ得る。
【0044】
図2Bに示されている単純化された例において、未知の対象物が検出され、それらの属性は、これらの対象物を対象物テンプレートに関連付ける前に評価される。
図2Bでは、画像ターゲットに関する未知の対象物の相対的配置は、対象物テンプレートを未知の対象物に関連付けるための修飾子として使用される。対象物テンプレートが選択されると、対象物テンプレートは、未知の対象物の属性に従って修正される。たとえば、対象物210は、対象物212よりも比較的小さく、したがって、対象物テンプレートも、対象物の高さに従ってスケーリングされる。次いで、対象物テンプレートの修正されたインスタンスは、物理的光景のデジタル表現とともにモバイルデバイスのディスプレイ上にレンダリングされ得る。
【0045】
図3Aは、本発明の一実施形態による、一度目の例示的な物理的光景のデジタル表現を示している。
図3Aは、仮想対象物、すなわちティーポット302、および未知の対象物304を有する光景を示している。
図3Aでは、対象物テンプレートは、未知の対象物に関連付けられている。一実装において、対象物テンプレートは、未知の対象物を視覚的にはっきり見える仮想コンテンツと重ね合わせるのではなく未知の対象物それ自体のレンダリングすることを可能にするように定義され得る。さらに、対象物テンプレートは、閉塞および衝突に対する対象物表示特性を有するようにさらに定義され得る。たとえば、対象物テンプレートは、深度マスクでレンダリングされるように定義されるものとしてよく、これは、その背後の仮想対象物が実行時に閉塞され得ることを意味し得る。
【0046】
図3Bは、本発明の一実施形態による、二度目の
図3Aからの例示的な物理的光景のデジタル表現を示している。
図3Bに示されているように、ティーカップ302の一部は、未知の対象物304の背後で閉塞されるが、それは、未知の対象物304が、不透明閉塞特性を有する対象物テンプレートに関連付けられているからである。同様に、対象物テンプレートは、衝突特性を有するように定義されるものとしてよく、したがって、ティーポット302が未知の対象物304にぶつかった場合に、ティーポット302は、それが移動していた方向に進行するのを妨げられる。別の実施形態では、ティーポット302の特性および衝撃の速度に基づき、ティーポットは壊れ、粉々になり得る。
【0047】
図4は、本発明の実施形態による対象物テンプレートの例示的な表現である。
図4では、対象物テンプレート400は、修飾子モジュール402および対象物表示特性モジュール406の物理的属性を有するように示されている。
図4で説明されているモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の他の組合せを使用して実装され得る。対象物テンプレート400は、本発明の範囲から逸脱することなく、追加のモジュールを有し得る。
【0048】
対象物テンプレート400は、一実装においてデータ構造として記憶され得る。一実装において、開発者は、開発時に、エディタツールを使用して対象物テンプレート400を作成するものとしてよい。開発者は、実行時に未知の対象物のいくつかの異なるクラスに適合するようにエディタツールを使用していくつかの対象物テンプレートを作成し得る。開発者は、物理的属性修飾子402に対する物理的属性(
図5に示されているように)および対象物表示特性406に対する表示特性(
図6に示されているように)を手動で選択し得る。
【0049】
物理的属性修飾子402は、未知の対象物のレンダリングを拡張するために対象物表示特性406を選択する際にモバイルデバイスによって実行時にフィルタとして使用される物理的属性を保持する。未知の対象物の物理的属性が、物理的属性修飾子402の物理的属性特性の下でマッチするか、または適格である場合に、対象物表示特性406は、未知の対象物または未知の対象物の代わりの仮想対象物のレンダリングにおいて使用され得る。たとえば、未知の対象物の高さおよび幅が、特定の範囲内にある場合、モバイルデバイスは、未知の対象物の代わりに建物をレンダリングし得る。別の例では、モバイルデバイスは、未知の対象物それ自体をレンダリングするが、対象物のコライダー特性などの、他の表示特性を使用し得る。
【0050】
開発環境において、編集ツールで、対象物モジュールは、
図2Aおよび
図8Aに示されているように、視覚的に表現され得る。
図4および
図5は、対象物モジュールを作成し、更新するためのメニュースタイルの方法を示すとしても、いくつかの実装では、視覚的なドラッグ、ドロップ、および編集ツールが、対象物テンプレートを操作するために円滑にされ得る。特定の実施形態において、対象物モジュールを開発するためのいくつかの技法がサポートされ得る。たとえば、開発者は、最初に、
図5および
図6からの例示的なメニューを使用して大まかな対象物モジュールを生成し、次いで、
図2Aおよび
図8Aに示されている、視覚的ツールを使用して対象物テンプレートをさらに微調整することができる。
【0051】
図5は、
図4からの物理的属性修飾子402に対する物理的属性を選択するための例示的なユーザインターフェースを示している。
図5は、エディタモードで物理的属性修飾子402に対する物理的属性を選択するための編集ツールによって提供される例示的なメニューユーザインターフェース500を示している。
図5に示されているユーザインターフェース500は、非限定的であり、コマンドラインインターフェース、またはドラッグ&ドロップユーザインターフェースなどの、様々な方法で実装され得る。
【0052】
メニューユーザインターフェース500を使用することで、対象物テンプレート400の開発者は、アプリケーションが実行中に遭遇し得る潜在的に未知の対象物に対して、エディタモードで編集ツールにより多数の物理的属性修飾子を選択することができる。編集ツールを使用して開発者によって選択された物理的属性は、対象物テンプレート500を作成する際に使用される。実行時に、アプリケーションは、未知の対象物の物理的属性を検出し、それらの物理的属性を、対象物テンプレート400の物理的属性修飾子402における記憶されている物理的属性と照合し、この特定の対象物テンプレート400が未知の対象物に対する表示特性を決定するために選択されるべきかどうかを決定する。
【0053】
図5には、潜在的な未知の対象物に対する高さ502、幅504、形状506、色508、順序510、配置512、および姿勢514などの、例示的な物理的属性修飾子が示されている。開発者は、値を入力するか、または様々な物理的属性に対するドロップダウンメニューから選択するものとしてよい。たとえば、
図5において、開発者は、未知の対象物の高さ502に対する上限として3インチを、未知の対象物の幅504に対する下限として1インチを選択している。特定の実施形態において、未知の対象物のサイズは、表示画像全体に関する表示比に関して表され得る。他の実施形態では、固定されたサイズまたはサイズの範囲が、高さ502および幅504のパラメータを使用して表され得る。
【0054】
形状506については、開発者側で、卵形516などの、形状をドロップダウンメニューから選択することができる。同様に、開発者は、色508、順序510、配置512、および姿勢514を選択し得る。いくつかの実施形態では、未知の対象物が出現し得る順序510も、重要である場合がある。たとえば、アプリケーションの開発者は、対象物テンプレート400の他のすべての修飾子の条件を満たす3番目の未知の対象物を星形に変えたいが、適格である他の対象物に対して「ノーアクション」としたい場合がある。同様に、アプリケーションの開発者は、アプリケーションに、表示領域全体に対する修飾子を使用させたい、および使用させたくない特定の配置(たとえば、中心、右上隅、など)を選択し得る。
【0055】
実行時に、アプリケーションは、個別に、または対象物テンプレートにおけるオプションを選択することによって(たとえば、詳細ボタン518を通じて)のいずれかで、条件のサブセット、条件のすべてにマッチするか、または階層方式で条件にマッチする(たとえば、条件1がマッチする場合に、条件2にマッチする)ように構成され得る。
【0056】
図5に示されているフィールドは、例示することを目的としており、限定することを意図していない。本発明の範囲から逸脱することなく、物理的属性修飾子を表すために、追加の、またはより少ないフィールドが使用され得る。さらに、特定の実施形態において、未知の対象物の物理的属性に対する詳細パラメータが、詳細518タブを使用して定義され得る。
【0057】
開発者が、物理的属性に対して対象物テンプレート400を構成することを完了すると、開発者は、次のオプション520を選択し、対象物テンプレートの生成を完了し得る。
【0058】
図6は、未知の対象物が置かれた拡張現実における画像または画像の一部のレンダリングのために表示特性を選択するための例示的なユーザインターフェースを示している。実行時において、対象物テンプレート400が選択されると、対象物表示特性は、画像または画像の一部をレンダリングする際に使用され得る。
【0059】
これらの対象物表示特性600は、対象物テンプレート400を作成する時点において開発者によって選択される。たとえば、
図6に示されているように、開発者は、表示されるべき表示対象物の高さ602および幅604を選択し得る。特定の実施形態において、表示対象物のサイズは、表示画像全体に関する表示比に関して表され得る。他の実施形態では、固定されたサイズまたはサイズの範囲が、高さ602および幅604のパラメータを使用して表され得る。
【0060】
開発者は、建物、形状、対象物などの構造を選択するか、またはカスタムボタン620を使用して、それらの固有の構造を定義し得る。特定の実施形態において、開発者は、ドロップダウンメニューから色608を選択し得る。
図6では、開発者が、ドロップダウンメニューから赤色622の色を選択しているように示されている。代わりに、または加えて、開発者は、スケーリング610パラメータを使用して、未知の対象物のサイズに関して表示対象物をスケーリングすることを選択し得る。言い換えれば、表示対象物のサイズは、未知の対象物のサイズの関数であってよい。特定の実施形態において、色および質感などの、表示対象物の他の視覚的特性も、未知の対象物それ自体の関数であってよい。開発者は、表示対象物に対する特定の質感612またはパラメータも定義し得る。
【0061】
さらに、開発者は、対象物に対して透明度618も定義し得る。対象物の透明度は、表示対象物によって重ね合わされている画像の部分に対する見えている情報の量を指すものとしてよい。特定の実施形態において、透明度は、パーセンテージまたは比行列によって指示されるものとしてよく、これは、表示対象物の下の(1つまたは複数の)層内の情報に関連付けられている情報に関する表示対象物に関連付けられている情報を表示するための相対的スケールをもたらす。
【0062】
上で説明されているような、静的な視覚的対象物表示特性に加えて、対象物テンプレート400の対象物表示特性600は、衝突614および閉塞616などの、動的視覚的対象物表示特性も記述し得る。
【0063】
対象物テンプレート400の衝突614特性は、表示対象物の衝突特性を定義するものとしてよい。たとえば、自動車などの、移動する仮想対象物が、表示対象物と衝突した場合、表示対象物は、部分的に、および一時的にまたは永久的にのいずれかでくぼみ、いくつかの場合において、表示対象物の押しつぶし可能な(一時的なくぼみ)、または可鍛性を有する(永久的なくぼみ)対象物表面の視覚的効果をもたらし得る。特定の実施形態において、衝突614特性は、たとえば、表示対象物の表面が建物のセメント壁を表現する場合に、表面がまったくくぼまないような特性であってよい。特定の実施形態において、対象物の衝突614特性は、移動する仮想対象物が表示対象物の対象物表面を完全に、および一時的にまたは永久的に変形することができるような特性であってよい。たとえば、滝(表示対象物)を通り抜ける自動車(すなわち、仮想対象物)は、滝の対象物表面を一時的に完全に変形し得る。衝突614の特性も、表示対象物の表面に加えられる力の関数であってよい。たとえば、仮想対象物の可鍛性および衝突特性、仮想対象物が表示対象物に接近する速度、および他の多くのファクタが、表示対象物をディスプレイ上にレンダリングする前に、表示対象物に対する衝突の実際の視覚的効果を決定する際に考慮され得る。いくつかの場合において、衝突614特性は、コライダースケール(図示せず)を使用して、一般化され得る。他の場合には、より多くの詳細特性が、詳細624ボタンを使用して選択され得る。
【0064】
閉塞616は、表示を見ている人によって知覚されるとおりに別の対象物を見ることを視覚的に遮る、またはブロックする表示対象物の能力を指すものとしてよい。一般的に、表示対象物が、別の対象物のビューを部分的にブロックするときに、表示を見ている人は、表示対象物をより近いものとして知覚する。したがって、実行時に、閉塞616特性は、表示オブジェクトに適切に適用されたときに、対象物が複数の対象物に関して適切に順序付けられているものとして知覚されることを可能にする。図示されていないけれども、いくつかの他の実装および構成オプションは、詳細624タブを介して個別のプラガブルモジュールまたはより詳細な構成を開発者が提供することを可能にすることによって表され、適応され得る。たとえば、いくつかの実装では、表示特性は、上で説明されているようなグラフィック特性だけでなく、アニメーション特性も含み得る。たとえば、未知の対象物に関連付けられている特定の条件の検出後に、未知の対象物は、モンスターまたは小爆発などの、アニメーション化された特徴にモーフィングし得る。開発者が、対象物テンプレート400を構成することを完了すると、開発者は、終了オプション624を選択し、対象物テンプレートの生成を完了し得る。
【0065】
図7は、本発明の一実施形態による、実行時にディスプレイ上に画像をレンダリングするためのモバイルデバイス100内に実装された例示的なモジュールに対するブロック図を示している。モバイルデバイス100は、
図11で説明されている1つまたは複数のコンポーネントを使用して実装されたコンピュータデバイスであってよい。
図7で説明されているモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはこれらの他の組合せを使用して実装され得る。一実施形態において、
図7で説明するモジュールのうちのいくつかは、任意の磁気、電子、光学、または他のコンピュータ可読記憶媒体であり得るコンピュータ可読媒体700上にソフトウェアモジュールとして記憶され得る。一実装において、コンピュータ可読記憶媒体700は、画像キャプチャモジュール704、未知の対象物セレクタモジュール706、物理的属性検出器モジュール708、対象物テンプレートセレクタモジュール710、スケーリングモジュール712、およびレンダリングモジュール714を含み得る。
【0066】
実行時に、モバイルデバイスのユーザは、1つまたは複数のカメラ702を物理的光景に向け、光景から画像/ビデオを取得/キャプチャし得る。いくつかの場合において、カメラのレンズは、選択されたカメラパラメータ(ズーム、シャッター速度、露出など)に基づき、感知技術の一部として、またはアナログ/デジタル変換ロジックを通じて、デジタル情報に変換され得る生のアナログ情報を取得する。
【0067】
画像キャプチャモジュール704は、取得/キャプチャ画像/ビデオ情報を取り出すことができ、その情報を、さらなる処理のためにメモリバッファ内に記憶する。いくつかの場合において、画像キャプチャモジュール704は、画像データをさらに処理する前に、生のデータをExchangeable image file format(EXIF)、ビットマップ、Joint Photographic Experts Group(JPEG)、またはMoving Picture Experts Group-4(MPEG-4)などの標準によるデータに変換するものとしてよい。
【0068】
未知の対象物セレクタモジュール706は、画像キャプチャモジュール704から受信またはアクセスされた画像データから未知の対象物を検出し、選択し得る。一実装において、未知の対象物を検出する前に、未知の対象物セレクタモジュール706が、物理的光景の特性を検出し得る。たとえば、未知の対象物セレクタモジュール706は、表面を平面状表面として検出するものとしてよく、そのいくつかの対象物は、平面状表面に置かれる。未知の対象物セレクタモジュール706は、表面検出、エッジ検出、特徴検出、および対象物検出などの、知られている方法を使用することによって平面状表面を検出し、物理的光景内のいくつかの(知られている、および未知の)対象物を描写し得る。特定の実施形態において、未知の対象物セレクタモジュール706は、光景から未知である対象物を選択し得るか、または知られている方法を使用して物理的光景から識別され得ない。特定の他の実施形態では、平面状表面よりも上の物理的光景内で検出されたすべての対象物は、未知の対象物として取り扱われ得る。未知の対象物セレクタモジュール706は、複数の画像からの情報を使用し得る。未知の対象物は、それらが検出された後時間とともに追跡され得る。
【0069】
1つまたは複数の未知の対象物が検出されると、それらの未知の対象物のうちの1つまたは複数が、物理的属性検出器モジュール708によるさらなる処理のために選択され得る。物理的属性検出器モジュール708は、未知の対象物のサイズ、形状、色、順序付け、配置、および姿勢などの、未知の対象物の1つまたは複数の物理的属性を検出し得る。
【0070】
対象物テンプレート選択モジュール710は、物理的属性検出器モジュール708によって検出された、選択された未知の対象物の物理的属性を、1つまたは複数の対象物テンプレート400の物理的属性修飾子402と比較し、対象物テンプレートを選択するものとしてよい。エディタモードで対象物テンプレート400に対する物理的属性修飾子402の物理的属性を定義するプロセスは、
図4および
図5においてより詳しく説明されている。
【0071】
特定の実施形態において、スケーリングモジュール712およびレンダリングモジュール714は、選択された未知の対象物の配置において表示対象物をレンダリングする際に選択された対象物テンプレート400からの対象物表示特性406を使用し得る。たとえば、スケーリングモジュール712は、編集モードで開発時に開発者によって選択されたスケーリング610パラメータを使用して表示対象物に対して未知の対象物のサイズに関してサイズのスケーリングが行われるべきかどうかを決定し得る。レンダリングモジュール714は、表示対象物に対する高さ602、幅604、構造606、色608、スケール610、質感612、衝突614、閉塞616、および透明度618などの、選択された対象物テンプレート400からの選択された対象物表示特性406を使用して表示対象物をさらにレンダリングし得る。レンダリングモジュール714は、未知の対象物の代わりに、または未知の対象物の表示を拡張することによって、実行時にモバイルデバイス100のディスプレイ716上に未知の対象物の配置で表示対象物をレンダリングし得る。
【0072】
図8Aは、本発明の1つまたは複数の実施形態による、エディタモードで視覚的に表現されるような2つの対象物テンプレートを示している。
図8Aに示されている2つの建物モデル(802および804)は、各々、異なる対象物テンプレートを表し得る。建物モデルの構造は、表示対象物に対する構造606を、外観を定義することの一部として提供し得る。対象物テンプレートは、エディタモードで編集ツールを使用して開発者によって開発される。
【0073】
図8Bは、モバイルデバイス100に結合されたカメラ702によって取得された物理的光景の、修正なしの入力画像を示している。
図8Bは、
図8Aに示されている対象物テンプレートの開発よりも後の時点で取得される画像を表している。
図8Bからの画像は、2つの未知の対象物、背の高い対象物806および背の低い対象物808を表示する。本発明の実施形態は、対象物の高さおよびサイズなどの未知の対象物に関連付けられている属性を(物理的属性検出器モジュール708を使用して)推定する。
図8Cは、モバイルデバイス100のディスプレイ画面716上に表示され得る拡張現実レンダリング画像の一例を示している。
図8Cにおいて、対象物テンプレートは、物理的光景から未知の対象物についてそれらの高さに基づき(対象物テンプレートセレクタモジュール710を使用して)選択される。たとえば、対象物テンプレート804(
図8A)は、現実の未知の対象物806(
図8B)に関連付けられ、次いで、それぞれの対象物テンプレートの表示特性に基づき、
図8Cにおいて対象物810としてレンダリングされ得る。同様に、対象物テンプレート802(
図8A)は、現実の未知の対象物808(
図8B)に関連付けられ、次いで、
図8Cにおいて対象物812としてレンダリングされる。したがって、
図8Cは、モバイルデバイス100のディスプレイ画面716上に表示され得る拡張現実光景の一例を表している。
【0074】
図9は、本発明の1つまたは複数の実施形態による、編集モードで対象物テンプレートを生成するための方法に対する流れ図を示している。1つまたは複数の態様によれば、
図9に示されている、流れ
図900において説明されている方法および/または方法ブロックのどれかおよび/またはすべては、コンピューティングデバイスによって、および/またはコンピューティングデバイス内に実装されるものとしてよく、そのコンポーネントは、たとえば、
図11においてより詳しく説明されている。一実施形態において、
図9に関して以下で説明されている方法ブロックのうちの1つまたは複数は、プロセッサ1110または別のプロセッサなどのコンピューティングデバイスのプロセッサによって実装される。加えて、または代替的に、本明細書で説明されている方法および/またはブロックのどれか、および/またはすべては、メモリ1135、記憶装置1125、または別のコンピュータ可読媒体などのコンピュータ可読媒体上に記憶されているコンピュータ可読命令などのコンピュータ可読命令で実装され得る。
【0075】
特定の実施形態において、コンピューティングデバイスは、アプリケーションに対する1つまたは複数の対象物テンプレートを開発するための編集ツールを使用して編集モードを円滑にし得る。後のある時点において、モバイルデバイスなどの、同じデバイスまたは異なるデバイス上で実行しているアプリケーションは、物理的光景から拡張現実ディスプレイ画面への未知の対象物の代わりの表示対象物のレンダリングにおいて1つまたは複数の対象物テンプレートを使用し得る。
【0076】
ブロック902で、コンピューティングデバイスのコンポーネントは、少なくとも1つのユーザ選択物理的属性を受信し得る。物理的属性は、未知の対象物の形状、未知の対象物のサイズ、未知の対象物の配置、未知の対象物の姿勢、未知の対象物の他の対象物に関する出現順序、表示対象物のレンダリングに関連付けられているアプリケーションのモード、および他の未知の対象物の物理的属性のうちの1つまたは複数を含み得る。
図5に示されているように、一例において、コンピューティングデバイスは、ユーザ選択物理的属性を受信するためのユーザインターフェースを備え得る。
【0077】
ブロック904で、コンピューティングデバイスのコンポーネントは、少なくとも1つのユーザ選択表示特性を受信し得る。対象物テンプレートの表示は、グラフィック特性およびアニメーション特性のうちの1つまたは複数を含み得る。対象物テンプレートのグラフィック特性は、限定することなく、色、サイズ、質感、形状、衝突検出、閉塞、および/または透明度のうちの1つまたは複数を含み得る。
図6に示されているように、一例において、コンピューティングデバイスは、ユーザ選択物理的属性を受信するためのユーザインターフェースを備え得る。
【0078】
ブロック906で、コンピューティングデバイスのコンポーネントは、少なくとも1つのユーザ選択物理的属性およびユーザ選択表示特性を含む対象物テンプレートを生成するものとしてよく、実行時に、対象物テンプレートは、ユーザ選択表示特性に少なくとも基づき表示対象物をレンダリングするためにユーザ選択物理的属性とマッチするか、またはその条件を満たす物理的光景から検出された未知の対象物の物理的属性に基づき選択される。
【0079】
図9では、1つの対象物テンプレートを生成することを説明しているけれども、実行中に後で使用するためにエディタモードで複数の対象物テンプレートが生成され得る。
【0080】
図9に示す具体的なブロックは、本発明の一実施形態による、動作のモードの間を切り替える特定の方法を提供することを了解されたい。ブロックの他のシーケンスも、代替的な実施形態においてしかるべく実行され得る。たとえば、本発明の代替的な実施形態は、異なる順序で、上で概説されたブロックを実行することができる。説明のために、ユーザは、第3の動作モードから第1の動作モードに、第4のモードから第2のモードに、またはこれらのモード間の組合せに変更することを選択することができる。その上、
図9に示される個々のブロックは、個々のブロックに対して様々なシーケンスで適宜実行され得る、複数のサブブロックを含み得る。その上、特定の用途に応じて追加のブロックが追加されるか、または削除される可能性がある。当業者であれば、プロセスの多くの変形形態、修正形態、および代替形態を認識し、了解するであろう。
【0081】
図10は、本発明の1つまたは複数の実施形態による、方法を実行することによって表示画像をレンダリングすることに対する流れ図を示している。1つまたは複数の態様によれば、
図10に示されている、流れ
図1000において説明されている方法および/または方法ブロックのどれかおよび/またはすべては、モバイルデバイスによって、および/またはモバイルデバイス内に実装されるものとしてよく、そのコンポーネントは、たとえば、
図11においてより詳しく説明されている。一実施形態において、
図10に関して以下で説明する方法ブロックのうちの1つまたは複数は、プロセッサ1110または別のプロセッサなどの、モバイルデバイスのプロセッサによって実装される。加えて、または代替的に、本明細書で説明されている方法および/またはブロックのどれか、および/またはすべては、メモリ1135、記憶装置1125、または別のコンピュータ可読媒体などのコンピュータ可読媒体上に記憶されているコンピュータ可読命令などのコンピュータ可読命令で実装され得る。
【0082】
ブロック1002で、モバイルデバイスのコンポーネントは、物理的光景に関する情報を取得する。たとえば、モバイルデバイス100は、光景が、テーブルまたは床などの平面状表面を有することを検出し得る。ブロック1004で、未知の対象物セレクタモジュール706などの、モバイルデバイス100のコンポーネントは、物理的光景から未知の対象物を選択する。特定の実施形態において、モバイルデバイス100のコンポーネントは、未知の対象物の姿勢も決定する。
【0083】
ブロック1006で、物理的属性検出器モジュール708などの、モバイルデバイス100のコンポーネントは、未知の対象物に関連付けられている物理的属性を決定する。いくつかの実施形態において、未知の対象物に関連付けられている属性は、未知の対象物の形状、未知の対象物のサイズ、未知の対象物の配置、未知の対象物の姿勢、未知の対象物の他の対象物に関する出現順序、表示対象物のレンダリングに関連付けられているアプリケーションのモード、および他の未知の対象物の属性のうちの1つまたは複数を含み得る。
【0084】
ブロック1008で、対象物テンプレートセレクタモジュール710などの、モバイルデバイス100のコンポーネントは、未知の対象物に関連付けられている物理的属性に基づき対象物テンプレートを選択する。特定の実施形態において、モバイルデバイス100のコンポーネントは、対象物テンプレートを選択する際に未知の対象物に関連付けられている物理的属性と対象物テンプレートからの物理的属性修飾子とを比較し得る。
【0085】
ブロック1010で、レンダリングモジュール714などの、モバイルデバイス100のコンポーネントは、対象物テンプレートに関連付けられている少なくとも1つの表示特性を使用して未知の対象物の姿勢で表示対象物をレンダリングし得る。一態様において、表示対象物をレンダリングするステップは、モバイルデバイスのディスプレイ画面上に表示されるべき物理的光景を表現する画像上に表示対象物をレンダリングするステップを含み得る。
【0086】
特定の実施形態において、対象物テンプレートの少なくとも1つの表示特性は、グラフィックおよびアニメーション特性のうちの1つまたは複数を含み得る。対象物テンプレートのグラフィック特性は、色、サイズ、質感、形状、衝突検出、閉塞、および/または透明度のうちの1つまたは複数を含み得る。一実装において、対象物テンプレートの特性は、アプリケーションの開発時に編集インターフェースを使用して開発者によって選択され得る。
【0087】
一実施態様において、複数の対象物テンプレートが定義され得る。別の実装において、未知の対象物は、複数の未知の対象物のうちの1つであり得、対象物テンプレートは、複数の未知の対象物からの複数の未知の対象物に関連付けられ得る。
【0088】
図10に示す具体的なブロックは、本発明の一実施形態による、動作のモードの間を切り替える特定の方法を提供することを了解されたい。ブロックの他のシーケンスも、代替的な実施形態に従って実行され得る。たとえば、本発明の代替的な実施形態は、異なる順序で、上で概説されたブロックを実行することができる。説明のために、ユーザは、第3の動作モードから第1の動作モードに、第4のモードから第2のモードに、またはそれらの間の任意の組合せで変化させることを選択することができる。さらに、
図10に示される個々のブロックは、個々のブロックに対して様々なシーケンスで適宜実行され得る、複数のサブブロックを含み得る。その上、特定の用途に応じて追加のブロックが追加されるか、または削除される可能性がある。当業者であれば、プロセスの多くの変形形態、修正形態、および代替形態を認識し、了解するであろう。
【0089】
図11は、本発明の実施形態を実施する際に使用されるデバイスの部品を組み込んだ例示的なコンピューティングデバイスを示している。
図11に示されているようなコンピュータデバイスは、本明細書では、どのコンピュータ化されたシステムの一部として組み込まれてもよい。たとえば、コンピューティングデバイス1100は、モバイルデバイスのコンポーネントのうちのいくつか、または3D編集ツールを実行するコンピューティングデバイスを表現し得る。コンピューティングデバイス1100の例は、限定することなく、デスクトップ、ワークステーション、パーソナルコンピュータ、スーパーコンピュータ、ビデオゲーム機、タブレット、スマートフォン、ラップトップ、ネットブック、または他のポータブルデバイスを含む。
図11は、本明細書で説明されているような、様々な他の実施形態によって提供される方法を実行することができ、および/またはホストコンピューティングデバイス、リモートキヨスク/端末、販売時点情報管理デバイス、モバイル多機能デバイス、セットトップボックス、および/またはコンピューティングデバイスとして機能し得るコンピューティングデバイス1100の一実施形態の概略図を示している。
図11は、様々なコンポーネントの一般化された図を示すことのみを目的としており、そのどれか、またはすべてが適切に利用され得る。
図11は、したがって、個別のシステム要素が比較的個別化された様式または比較的一体化された様式でどのように実装され得るかをおおざっぱに示している。
【0090】
コンピューティングデバイス1100は、バス1105を介して電気的に結合され得る(または適宜、他の何らかの形で通信しているものとしてよい)ハードウェア要素を備えるように図示されている。ハードウェア要素は、限定することなく、1つもしくは複数の汎用プロセッサ、ならびに/または(デジタル信号処理チップ、および/もしくはグラフィックス加速プロセッサなど)1つもしくは複数の専用プロセッサを含む、1つまたは複数のプロセッサ1110と、限定することなく、カメラ、センサ1150、マウス、および/またはキーボードなどを含むことができる、1つまたは複数の入力デバイス1115と、限定することなく、ディスプレイユニット、および/またはプリンタなどを含むことができる、1つまたは複数の出力デバイス1120とを含むことができる。
【0091】
コンピューティングデバイス1100は、限定することなく、ローカルおよび/またはネットワークアクセス可能な記憶装置を含むことができ、かつ/あるいは限定することなく、ディスクドライブ、ドライブアレイ、光記憶デバイス、プログラム可能、フラッシュ書換可能であるものとしてよい、ランダムアクセスメモリ(「RAM」)および/もしくはリードオンリーメモリ(「ROM」)などのソリッドフォーム記憶デバイス、ならびに/または同様のものを含むことができる、1つまたは複数の非一時的記憶デバイス1125を、さらに備える(かつ/または通信する)ことができる。そのような記憶装置デバイスは、限定することなく、様々なファイルシステム、データベース構造などを含む、任意の適切なデータストレージを実装するように構成され得る。
【0092】
コンピューティングデバイス1100は、通信サブシステム1130も備え得る。通信サブシステム1130は、データを送受信するためのトランシーバまたは有線および/もしくはワイヤレス媒体を備え得る。通信サブシステム1130は、限定することなく、モデム、ネットワークカード(ワイヤレスまたは有線)、赤外線通信デバイス、ワイヤレス通信デバイスおよび/またはチップセット(Bluetooth(登録商標)デバイス、802.11デバイス、WiFiデバイス、WiMaxデバイス、セルラー通信設備など)、および/または同様のものも含み得る。通信サブシステム1130は、データが、ネットワーク(一例を挙げると、以下で説明するネットワークなど)、他のコンピュータデバイス、および/または本明細書で説明する任意の他のデバイスと交換されることを可能にし得る。多くの実施形態では、コンピューティングデバイス1100は、上で説明されているように、RAMまたはROMデバイスを含み得る、非一時的作業メモリ1135をさらに備える。
【0093】
コンピューティングデバイス1100は、本明細書で説明するように、オペレーティングシステム1140、デバイスドライバ、実行可能ライブラリ、および/または様々な実施形態によって提供されるコンピュータプログラムを含み得、かつ/もしくは方法を実装し、かつ/もしくは他の実施形態によって実現されるシステムを構成するように設計され得る、1つもしくは複数のアプリケーションプログラム1145などの他のコードを含む、作業メモリ1135内に現在配置されているものとして図示されている、ソフトウェア要素を備えることができる。単に例として、上記で説明した方法に関して説明した1つまたは複数の手順は、コンピュータ(および/またはコンピュータ内のプロセッサ)によって実行可能なコードおよび/または命令として実装することも可能であり、次いで、一態様において、そのようなコードおよび/または命令は、説明した方法に従って1つまたは複数のオペレーションを実行するように汎用コンピュータ(または他のデバイス)を構成し、および/または適合させるために使用され得る。
【0094】
これらの命令および/またはコードのセットは、上記で説明した記憶装置デバイス1125などのコンピュータ可読記憶媒体上に記憶され得る。いくつかの場合において、記憶媒体は、コンピューティングデバイス1100などの、コンピューティングデバイス内に組み込まれることもあり得る。他の実施形態では、記憶媒体は、コンピューティングシステムから分離され(たとえば、コンパクトディスクなどの取り外し可能な媒体)、および/またはインストレーションパッケージで提供されることも可能であり、これにより、記憶媒体は、中に記憶されている命令/コードで汎用コンピュータをプログラムし、構成し、および/または適合させるために使用され得る。これらの命令は、コンピューティングデバイス1100によって実行可能である、実行可能コードの形態をとることも可能であり、かつ/またはコンピューティングデバイス1100でコンパイルおよび/もしくはインストールした後に(たとえば、様々な一般的に利用可能なコンパイラ、インストールプログラム、圧縮/展開ユーティリティなどのいずれかを使用して)、実行可能コードの形態をとるソースコードおよび/もしくはインストール可能コードの形態をとることも可能である。
【0095】
大幅な変形が、特定の要件に従って行われ得る。たとえば、カスタマイズされたハードウェアも使用されることがあり、および/または特定の要素がハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、または両方で実装されることがある。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイス1100への接続が利用され得る。
【0096】
いくつかの実施形態は、本開示による方法を実施するために、コンピュータデバイス(コンピュータデバイス1100など)を使用し得る。たとえば、説明されている方法の手順の一部または全部は、プロセッサ1110が作業メモリ1135内に収められている1つまたは複数の命令(オペレーティングシステム1140および/またはアプリケーションプログラム1145などの他のコードに組み込むことも可能である)の1つまたは複数のシーケンスを実行することに応答してコンピューティングシステム1100によって実行され得る。このような命令は、記憶装置デバイス1125の1つまたは複数などの、別のコンピュータ可読媒体から作業メモリ1135内に読み込まれ得る。単なる例として、作業メモリ1135に収められている命令のシーケンスの実行は、プロセッサ1110が本明細書で説明されている方法の1つまたは複数の手順を実行することを引き起こすことも可能である。
【0097】
本明細書で使用する「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械を特定の方式で動作させるデータを与えることに関与する任意の媒体を指す。コンピューティングデバイス1100を使用して実装される一実施形態において、様々なコンピュータ可読媒体が、実行のためにプロセッサ1110に命令/コードを与えることに関与し、かつ/またはそのような命令/コード(たとえば、信号)を記憶および/または搬送するために使用されることがある。多くの実装では、コンピュータ可読媒体は物理的な、かつ/または有形の記憶媒体である。そのような媒体は、限定することなく、不揮発性媒体、揮発性媒体、および伝送媒体を含む、多くの形態をとることができる。不揮発性媒体は、たとえば、記憶装置デバイス1125などの光および/または磁気ディスクを含む。揮発性媒体は、限定することなく、作業メモリ1135などのダイナミックメモリを含む。伝送媒体は、限定することなく、バス1105を構成する電線を含む、同軸ケーブル、銅線、および光ファイバ、さらには通信サブシステム1130の様々なコンポーネント(および/または通信サブシステム1130が他のデバイスとの通信を行う際に使用する媒体)を含む。したがって、伝送媒体はまた、(限定することなく、無線波通信および赤外線データ通信中に生成されるような無線波、音波、および/または光波を含めて)波の形態をとり得る。代替的な実施形態において、カメラなどの、イベント駆動型のコンポーネントおよびデバイスが使用されてもよく、処理の一部は、アナログ領域で実行され得る。
【0098】
一般的な形態の物理的および/または有形コンピュータ可読媒体は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD-ROM、任意の他の光媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップまたはカートリッジ、後に説明するような搬送波、または、コンピュータが命令および/またはコードを読み取ることができる任意の他の媒体を含む。
【0099】
様々な形態のコンピュータ可読媒体は、実行のために1つまたは複数の命令の1つまたは複数のシーケンスをプロセッサ1110に搬送することに関与し得る。単なる例として、命令は当初、リモートコンピュータの磁気ディスクおよび/または光ディスク上で搬送され得る。リモートコンピュータは、命令をそのリモートコンピュータのダイナミックメモリ内にロードし、命令を伝送媒体を介して信号として送信し、コンピューティングデバイス1100によって受信され、および/または実行されるようにすることが可能である。電磁信号、音響信号、光信号、および/または同様の信号の形態をとり得る、これらの信号は、すべて、本発明の様々な実施形態により命令が符号化されて載せられる搬送波の例である。
【0100】
通信サブシステム1130(および/またはそのコンポーネント)は、一般に信号を受信し、次いで、バス1105は、信号(および/または、信号によって搬送されるデータ、命令など)を作業メモリ1135に搬送することができ、プロセッサ1110は、作業メモリ1135から命令を取り出し、実行する。作業メモリ1135によって受信された命令は、オプションで、プロセッサ1110による実行の前または後のいずれかに、非一時的記憶デバイス1125上に記憶され得る。
【0101】
上記で説明した方法、システム、およびデバイスは、例である。様々な実施形態は、適宜に、様々な手順またはコンポーネントを省略、置換、または追加することができる。たとえば、代替構成では、説明する本方法は、説明する順序とは異なる順序で実施されてもよく、ならびに/または、様々なステージが追加され、省略され、および/もしくは組み合わされてもよい。さらに、特定の実施形態に関して説明した特徴は、様々な他の実施形態で組み合わされ得る。実施形態の異なる態様および要素は、同様にして組み合わされ得る。また、技術が発展し、したがって、要素の多くは、本開示の範囲を特定の例に限定しない例である。
【0102】
実施形態の完全な理解を与えるために、説明に具体的な詳細が与えられている。しかしながら、実施形態は、これらの具体的な詳細なしに実施され得る。たとえば、実施形態が不明瞭になることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法を、不必要な詳細を記載せずに示した。この説明は、例示的な実施形態のみを提供し、本発明の範囲、適用可能性、または構成を限定するものではない。むしろ、実施形態の上述の説明は、本発明の実施形態を実装することを可能にする説明を当業者に与える。本発明の趣旨および範囲から逸脱することなく、要素の機能および構成に様々な変更を行うことができる。
【0103】
また、いくつかの実施形態について、流れ図またはブロック図として示すプロセスとして説明した。各々は動作を順次プロセスとして説明するが、動作の多くは、並列にまたは同時に実施することができる。加えて、動作の順序は並べ替えられ得る。プロセスは、図に含まれていない追加のブロックを有していてもよい。さらに、本方法の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、関連するタスクを実施するためのプログラムコードまたはコードセグメントが、記憶媒体などのコンピュータ可読媒体内に格納され得る。プロセッサは、関連するタスクを実施し得る。
【0104】
複数の実施形態について説明してきたが、本開示の精神から逸脱することなく、多様な変更、代替構造、および等価物が使用され得る。たとえば、上記の要素は単により大きいシステムのコンポーネントであってもよく、他のルールが本発明の適用に優先してもよく、または他の方法で本発明の適用を修正してもよい。さらに、上記の要素が考慮される前、考慮される間、または考慮される後に、いくつかのブロックが着手され得る。したがって、上記の説明は本開示の範囲を限定しない。