(57)【特許請求の範囲】
【請求項１】
拡張された実世界設定の表現をモバイルデバイスを使用して提示するための方法であって、
複数の画像にアクセスするステップであって、前記複数の画像は、1つまたは複数のオブジェクトを描写する第1の組の画像と、実世界設定を描写する第2の組の画像とを含む、ステップと、
前記第1の組の画像内の少なくとも１つの実世界オブジェクトおよび前記第2の組の画像内の実世界設定を検出するステップであって、前記検出するステップは、前記複数の画像の画像分析を使用して実行される、ステップと、
前記第1の組の画像に基づいて前記検出された実世界オブジェクトのオブジェクトモデルを自動的に作成するステップと、
前記第2の組の画像に基づいて前記設定の設定モデルを作成するステップと、
前記設定を拡張することを求める要求を識別するユーザ入力を示す情報を受信するステップと、
前記オブジェクトモデルおよび前記設定モデルを含む変更された設定モデルを作成するステップと、
前記変更された設定モデルを前記モバイルデバイスを使用して提示するステップと
を含む方法。
【請求項２】
前記実世界オブジェクトのビデオからフレームを自動的に抽出するステップであって、前記抽出されたフレームが、前記実世界オブジェクトの前記第1の組の画像を含む、ステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記オブジェクトモデルは、前記オブジェクトの推定された質量または密度を含む、請求項1に記載の方法。
【請求項４】
前記モバイルデバイスのユーザから前記オブジェクトの前記推定された質量または密度を受信するステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記オブジェクトモデルに含まれる詳細の度合いは、前記実世界オブジェクトのうちのいくつの画像がアクセスされたかに依存する、請求項1に記載の方法。
【請求項６】
前記オブジェクトモデルに含まれる詳細の度合いは、少なくとも部分的に、前記モバイルデバイスのユーザによる入力を示す情報に基づいて決定され、前記モバイルデバイスの前記ユーザによる前記入力は、詳細の前記度合いと前記オブジェクトの前記オブジェクトモデルの作成に関連する処理時間との間のバランスを示す、請求項1に記載の方法。
【請求項７】
前記実世界オブジェクトの前記第1の組の画像をキャプチャするステップと
前記実世界設定の前記第2の組の画像をキャプチャするステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
前記方法は、その全体が前記モバイルデバイス上で実行される、請求項1に記載の方法。
【請求項９】
前記変更された設定モデルは、前記モバイルデバイスを介してユーザからのモデル変更入力を受信すると作成される、請求項8に記載の方法。
【請求項１０】
前記オブジェクトモデルは、第1のモデル作成ユーザ入力を示す第1のモデル作成情報を受信すると作成され、前記設定モデルは、第2のモデル作成ユーザ入力を示す第2のモデル作成情報を受信すると作成される、請求項8に記載の方法。
【請求項１１】
実世界オブジェクトのモデルを共有するための方法であって、
複数の画像にアクセスするステップであって、前記複数の画像は、1つまたは複数のオブジェクトを描写する第1の組の画像を含む、ステップと、
前記第1の組の画像内の少なくとも1つの実世界オブジェクトを検出するステップであって、前記検出するステップは、前記複数の画像の画像分析を使用して実行される、ステップと、
前記第1の組の画像に基づいて前記検出された実世界オブジェクトの3次元モデルを自動的に作成するステップと、
前記オブジェクトの前記3次元モデルを別のユーザと共有することを求める要求を識別するユーザ入力を示す情報を受信するステップと、
ネットワークを介して別のモバイルデバイスに前記3次元モデル送信するステップと
を含む方法。
【請求項１２】
前記3次元モデルは、ソーシャルネットワーキングウェブサイトを通して前記ネットワークを介して送信される、請求項11に記載の方法。
【請求項１３】
実世界オブジェクトのモデルを共有するための前記方法は、その全体がセルラーフォン上で実行される、請求項11に記載の方法。
【請求項１４】
拡張された実世界設定の表現をモバイルデバイスを使用して提示するためのシステムであって、
実世界設定の第1の組の画像および実世界オブジェクトの第2の組の画像をキャプチャするように構成されたイメージングデバイスと、
前記第1の組の画像内の少なくとも1つの実世界オブジェクトと、前記第2の組の画像内の実世界設定とを検出するように構成された特徴識別器であって、前記検出は、複数の画像の画像分析を使用して実行される、特徴識別器と、
前記第1の組の画像に基づいて前記検出された実世界オブジェクトのオブジェクトモデルを自動的に生成し、前記第2の組の画像に基づいて前記実世界設定の設定モデルを生成するように構成されたモデルジェネレータと、
前記設定を拡張することを求める要求を識別するユーザ入力を示す情報を受信するように構成されたユーザ入力構成要素と、
前記オブジェクトモデルおよび前記設定モデルを含む変更された設定モデルを作成するように構成されたモデルインタラクタと、
前記変更された設定モデルを提示するように構成されたディスプレイと
を含むシステム。
【請求項１５】
前記モデルインタラクタは、前記オブジェクトにより前記設定モデルを拡張するように構成された設定モデル拡張器を含む、請求項14に記載のシステム。
【請求項１６】
前記設定モデルは複数のオブジェクトのモデルを含み、前記複数のオブジェクトのうちの1つは前記実世界オブジェクトである、請求項14に記載のシステム。
【請求項１７】
前記オブジェクトモデルは前記オブジェクトの実世界寸法を含み、前記設定モデルは前記設定の実世界寸法を含む、請求項14に記載のシステム。
【請求項１８】
拡張された実世界設定の表現をモバイルデバイスを使用して提示するためのシステムであって、
複数の画像にアクセスするための手段であって、前記複数の画像は、1つまたは複数のオブジェクトを描写する第1の組の画像と、実世界設定を描写する第2の組の画像とを含む、手段と、
前記第1の組の画像内の少なくとも１つの実世界オブジェクトと、前記第2の組の画像内の実世界設定とを検出するための手段であって、前記検出するための手段は、前記複数の画像の画像分析を使用して実行される、手段と、
前記第1の組の画像に基づいて前記検出された実世界オブジェクトのオブジェクトモデルを自動的に作成するための手段と、
前記第2の組の画像に基づいて前記設定の設定モデルを作成するための手段と、
前記設定を拡張することを求める要求を識別するユーザ入力を示す情報を受信するための手段と、
前記オブジェクトモデルおよび前記設定モデルを含む変更された設定モデルを作成するための手段と、
前記変更された設定モデルを提示するための手段と
を含むシステム。
【請求項１９】
前記変更された設定モデルは、前記実世界設定の寸法と比較して前記実世界オブジェクトの寸法の比率を正確に反映する、請求項18に記載のシステム。
【請求項２０】
前記設定モデルおよび前記オブジェクトモデルはそれぞれ、前記それぞれのモデルに関連する全世界的に共通の縮尺の寸法を示すメタデータを含む、請求項18に記載のシステム。
【請求項２１】
前記オブジェクトを描写する前記第１の組の画像の画像による領域を、前記オブジェクトを描写する前記第2の組の画像の画像による領域とマッチングするための手段をさらに含み、
前記マッチングされた領域は、同じ実世界特徴に対応すると予測される、請求項18に記載のシステム。
【請求項２２】
複数の画像にアクセスするステップであって、前記複数の画像は、1つまたは複数のオブジェクトを描写する第1の組の画像と、実世界設定を描写する第2の組の画像とを含む、ステップと、
前記第1の組の画像内の少なくとも１つの実世界オブジェクトと、前記第2の組の画像内の実世界設定とを検出するステップであって、前記検出するステップは、前記複数の画像の画像分析を使用して実行される、ステップと、
前記第1の組の画像に基づいて前記検出された実世界オブジェクトのオブジェクトモデルを自動的に作成するステップと、
前記第2の組の画像に基づいて前記設定の設定モデルを作成するステップと、
前記設定を拡張することを求める要求を識別するユーザ入力を示す情報を受信するステップと、
前記オブジェクトモデルおよび前記設定モデルを含む変更された設定モデルを作成するステップと、
前記変更された設定モデルを提示するステップと
を実行するプログラムを含むコンピュータ可読記録媒体。
【請求項２３】
前記変更された設定モデルは、前記実世界設定内に存在する初期のオブジェクトを前記オブジェクトに置き換えるように前記設定モデルを変更することによって作成される、請求項22に記載のコンピュータ可読記録媒体。
【請求項２４】
前記実世界オブジェクトは、前記実世界設定内のオブジェクトであり、前記変更された設定モデルを作成するステップは、前記設定内の前記オブジェクトを移動させるステップを含む、請求項22に記載のコンピュータ可読記録媒体。
【請求項２５】
前記実世界オブジェクトは、前記実世界設定内のオブジェクトであり、前記変更された設定モデルを作成するステップは、前記設定から前記オブジェクトを除去するように前記設定モデルを変更するステップを含む、請求項22に記載のコンピュータ可読記録媒体。
【請求項２６】
拡張された実世界設定の表現をモバイルデバイスを使用して提示するための方法であって、
検出された実世界オブジェクトのオブジェクトモデルに、前記オブジェクトを描写する第1の組の画像に基づいてアクセスするステップであって、前記オブジェクトモデルが、前記オブジェクトの前記第1の組の画像に基づいて自動的に作成されている、ステップと、
実世界設定の設定モデルに、前記設定を描写する第2の組の画像に基づいてアクセスするステップであって、前記設定モデルが、前記設定の前記第2の組の画像に基づいて作成されている、ステップと、
前記設定を拡張することを求める要求を識別するユーザ入力を示す情報を受信するステップと、
変更された設定モデルを前記設定モデルおよび前記オブジェクトモデルに基づいて作成するステップと、
前記変更された設定モデルを提示するステップと
を含む方法。
【請求項２７】
前記オブジェクトを描写する前記第1の組の画像は、別のモバイルデバイスのユーザによってキャプチャされている、請求項26に記載の方法。
【請求項２８】
前記オブジェクトモデルは、ウェブサイトを介してアクセスされる、請求項26に記載の方法。
【請求項２９】
前記オブジェクトモデルは、別のデバイスのユーザによって前記モバイルデバイスの前記ユーザと共有されるモデルを含む、請求項26に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2011年12月1日に出願された「METHODS AND SYSTEMS FOR CAPTURING AND MOVING 3D MODELS AND TRUE-SCALE METADATA OF REAL WORLD OBJECTS」と題する米国仮出願第61/565,663号および2012年7月27日に出願された「METHODS AND SYSTEMS FOR CAPTURING AND MOVING 3D MODELS AND TRUE-SCALE METADATA OF REAL WORLD OBJECTS」と題する米国非仮出願第13/560,678号の利益および優先権を主張する。これらの文献は各々、すべての目的のために参照によりその全体が本明細書に組み込まれる。
【背景技術】
【０００２】
様々な設定(setting：セッティング、環境)におけるオブジェクトを思い描くことは、様々な状況で頻繁に遭遇する困難なタスクである。たとえば、潜在的購入者が、店に陳列されている長椅子がその人のリビングルームではどのように見えるかを思い描きたいと思うことがある。その人は、店にある長椅子の色が気に入っても、リビングルームの他の要素とどのようにマッチングするかを思い描くのが難しいことがある。
【発明の概要】
【課題を解決するための手段】
【０００３】
いくつかの実施形態では、変更された実世界または仮想設定がどのように見えるかをユーザが視覚化するのを支援するための方法およびシステムが提供される。イメージングデバイスが、1つまたは複数のオブジェクトまたは設定の複数の画像をキャプチャすることができる。画像に基づいて、各オブジェクトまたは設定の3次元モデルが作成され得る。次いで、これらのモデルを使用して、変更された設定の現実的画像を作成することができる。たとえば、画像が、(たとえば、新しい長椅子により実世界のリビングルーム設定のモデルを拡張し、または実世界のトラックにより仮想ビデオゲーム設定のモデルを拡張して)追加オブジェクトを中に有する設定を表示することができる。画像は、設定内の寸法に対してオブジェクトの寸法を正確に表すことができるという点で、現実的であり得る。さらに、画像ベースのモデル生成は、潜在的な(potential：可能性がある)設定変更をユーザが正確に思い描くことができるように、設定およびオブジェクトの色、テクスチャなどを正確に描くことを可能にし得る。さらに、1つまたは複数のモデルは、たとえば、特定の位置にあるオブジェクトが安定しているかどうか、別のオブジェクトを押しつぶす(rush)かどうか、特定の力が加わることで移動する可能性があるかどうかなどが推定され得るように、他の物理的特性(たとえば、質量または密度)の推定値を含むことができる。設定とオブジェクトの両方のために3次元モデルが作成され得るので、ユーザは画像を操作して、たとえば設定内のオブジェクトの位置および/または方向を変更し、様々なパースペクティブから設定を見ることが可能であり得る。いくつかの実施形態では、画像のキャプチャ、モデルの作成、変更された設定の生成、および変更された設定の表示がすべて、単一のモバイルデバイス上で実行される。
【０００４】
いくつかの実施形態では、拡張された実世界設定の表現をモバイルデバイスを使用して提示するための方法が提供される。本方法は、実世界オブジェクトの複数の画像を示す第1の情報にアクセスするステップと、実世界設定の複数の画像を示す第2の情報にアクセスするステップとを含むことができる。本方法はまた、第1の情報に基づいてオブジェクトのオブジェクトモデルを作成するステップと、第2の情報に基づいて設定の設定モデルを作成するステップとを含むことができる。本方法はまた、設定を拡張することを求める要求を識別するユーザ入力を示す第3の情報を受信するステップと、変更された設定モデルをオブジェクトモデルおよび設定モデルに基づいて作成するステップとを含むことができる。本方法はさらに、変更された設定モデルをモバイルデバイスを使用して提示するステップを含むことができる。
【０００５】
いくつかの実施形態では、実世界オブジェクトのモデルを共有するための方法が提供される。本方法は、実世界オブジェクトの複数の画像を示す第1の情報にアクセスするステップを含むことができる。本方法はまた、第1の情報に基づいてオブジェクトの3次元モデルを作成するステップと、オブジェクトの3次元モデルを別のユーザと共有することを求める要求を識別するユーザ入力を示す第2の情報を受信するステップを含むことができる。本方法はまた、ネットワークを介して別のモバイルデバイスに3次元モデルを送信するステップを含むことができる。
【０００６】
いくつかの実施形態では、拡張された実世界設定の表現をモバイルデバイスを使用して提示するためのシステムが提供される。本システムは、実世界設定の画像および実世界オブジェクトの画像をキャプチャするように構成されたイメージングデバイスを含むことができる。本システムはまた、実世界オブジェクトの画像に基づいて実世界オブジェクトのオブジェクトモデルを生成し、実世界設定の画像に基づいて実世界設定の設定モデルを生成するように構成されたモデルジェネレータを含むことができる。本システムはさらに、設定を拡張することを求める要求を識別するユーザ入力を示す情報を受信するように構成されたユーザ入力構成要素を含むことができる。本システムはさらに、変更された設定モデルをオブジェクトモデルおよび設定モデルに基づいて作成するように構成されたモデルインタラクタと、変更された設定モデルを提示するように構成されたディスプレイとを含むことができる。
【０００７】
いくつかの実施形態では、拡張された実世界設定の表現をモバイルデバイスを使用して提示するためのシステムが提供される。本システムは、実世界オブジェクトの複数の画像を示す第1の情報にアクセスするための手段と、実世界設定の複数の画像を示す第2の情報にアクセスするための手段とを含むことができる。本システムはまた、第1の情報に基づいてオブジェクトのオブジェクトモデルを作成するための手段と、第2の情報に基づいて設定の設定モデルを作成するための手段とを含むことができる。本システムはさらに、設定を拡張することを求める要求を識別するユーザ入力を示す第3の情報を受信するための手段と、変更された設定モデルをオブジェクトモデルおよび設定モデルに基づいて作成するための手段とを含むことができる。本システムはさらに、変更された設定モデルを提示するための手段を含むことができる。
【０００８】
いくつかの実施形態では、実世界オブジェクトの複数の画像を示す第1の情報にアクセスするステップと、実世界設定の複数の画像を示す第2の情報にアクセスするステップとを実行するプログラムを含むコンピュータ可読媒体が提供される。本プログラムはまた、第1の情報に基づいてオブジェクトのオブジェクトモデルを作成するステップと、第2の情報に基づいて設定の設定モデルを作成するステップとを実行することができる。本プログラムはさらに、設定を拡張することを求める要求を識別するユーザ入力を示す第3の情報を受信するステップと、変更された設定モデルをオブジェクトモデルおよび設定モデルに基づいて作成するステップと、変更された設定モデルを提示するステップとを実行することができる。
【０００９】
いくつかの実施形態では、拡張された実世界設定の表現をモバイルデバイスを使用して提示するための方法が提供される。本方法は、実世界オブジェクトの複数の画像に基づくオブジェクトのオブジェクトモデルにアクセスするステップであって、オブジェクトモデルが、オブジェクトの複数の画像に基づいて作成されている、ステップと、実世界設定の複数の画像に基づく設定の設定モデルにアクセスするステップであって、設定モデルが、設定の複数の画像に基づいて作成されている、ステップとを含むことができる。本方法はまた、設定を拡張することを求める要求を識別するユーザ入力を示す情報を受信するステップと、変更された設定モデルを設定モデルおよびオブジェクトモデルに基づいて作成するステップとを含むことができる。本方法はさらに、変更された設定モデルを提示するステップを含むことができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態による、変更された現実的設定をユーザが視覚化できるようにするための方法を示す図である。
【図２】一実施形態による、モデルを生成するための方法を示す図である。
【図３Ａ】画像にわたる特徴を識別しマッチングする例を示す図である。
【図３Ｂ】画像にわたる特徴を識別しマッチングする例を示す図である。
【図３Ｃ】画像にわたる特徴を識別しマッチングする例を示す図である。
【図４】一実施形態による、1つまたは複数のモデルを生成するための方法を示す図である。
【図５Ａ】新しいオブジェクトにより設定モデルを拡張するためのユーザインターフェースの例を示す図である。
【図５Ｂ】新しいオブジェクトにより設定モデルを拡張するためのユーザインターフェースの例を示す図である。
【図５Ｃ】新しいオブジェクトにより設定モデルを拡張するためのユーザインターフェースの例を示す図である。
【図６Ａ】モデル作成および/または変更システムと対話するためのユーザインターフェースの例を示す図である。
【図６Ｂ】モデル作成および/または変更システムと対話するためのユーザインターフェースの例を示す図である。
【図７】一実施形態による、仮想設定モデルを拡張する方法を示す図である。
【図８】一実施形態による、3次元モデルを作成、変更および/または表示するためのシステムを示す図である。
【図９】一実施形態による、3次元モデルを作成、変更および/または表示するためのシステムを示す図である。
【図１０】コンピュータシステムの一実施形態を示す図である。
【発明を実施するための形態】
【００１１】
いくつかの実施形態では、変更された実世界または仮想設定がどのように見えるかをユーザが視覚化するのを支援するための方法およびシステムが提供される。イメージングデバイスが、1つまたは複数のオブジェクトまたは設定の複数の画像をキャプチャすることができる。たとえば、複数の個別の画像(たとえば、写真)がキャプチャされることがあり、またはビデオがキャプチャされることがあり、かつ複数のフレームが識別されることがある(たとえば、すべてのフレームが自動的に抽出されることがあり、規則的に離れたフレームが抽出されることがあり、または区別可能性、明確性などのような特徴を有するフレームが抽出されることがある)。画像に基づいて、各オブジェクトまたは設定の3次元モデルが作成され得る。次いで、これらのモデルを使用して、変更された設定の現実的画像を作成することができる。たとえば、画像が、(たとえば、新しい長椅子により実世界のリビングルーム設定のモデルを拡張し、または実世界のトラックにより仮想ビデオゲーム設定のモデルを拡張して)追加オブジェクトを中に有する設定を表示することができる。画像は、設定内の寸法に対してオブジェクトの寸法を正確に表すことができるという点で、現実的であり得る。さらに、画像ベースのモデル生成は、潜在的な(potential：可能性がある)設定変更をユーザが正確に思い描くことができるように、設定およびオブジェクトの色、テクスチャなどを正確に描くことを可能にし得る。さらに、1つまたは複数のモデルは、たとえば、特定の位置にあるオブジェクトが安定しているかどうか、別のオブジェクトを押しつぶすかどうか、特定の力が加わることで移動する可能性があるかどうかなどが推定され得るように、他の物理的特性(たとえば、質量または密度)の推定値を含むことができる。設定とオブジェクトの両方のために3次元モデルが作成され得るので、ユーザは画像を操作して、たとえば設定内のオブジェクトの位置および/または方向を変更し、様々なパースペクティブから設定を見ることが可能であり得る。いくつかの実施形態では、画像のキャプチャ、モデルの作成、変更された設定の生成、および変更された設定の表示がすべて、単一のモバイルデバイス上で実行される。
【００１２】
図1は、一実施形態による、変更された現実的設定をユーザが視覚化できるようにするための方法100を示す。105において、複数の画像がキャプチャされる。画像は、デジタル画像または非デジタル画像を含むことができる。画像は、カメラ(たとえば、モバイルデバイス上もしくはモバイルフォン上のカメラ)または他のイメージングデバイスによってキャプチャされ得る。複数の画像は、単一のオブジェクト、複数のオブジェクトおよび/または1つの設定をすべて含むことができる。複数の画像は、様々なパースペクティブでキャプチャされ得る。複数の画像は、少なくとも2つ、少なくとも3つ、またはそれ以上の画像を含むことができる。場合によっては、単一の画像のみがキャプチャされる。場合によっては、ビデオがキャプチャされ、このビデオは複数の画像に変換され得る。
【００１３】
一例では、システムは、キャプチャされるべき画像の数を決定または示唆する。その場合にユーザは、(たとえば、モバイルデバイス上のディスプレイを介して)その数の画像をキャプチャするように命令され得る。システムは、固定数または動的な数の画像を推奨することができる。たとえば、キャプチャされたオブジェクトまたは設定が大きいか、または複雑である場合、以前の画像の品質が低かった場合、以前の画像が(たとえば、ズーム、画像の重複、または画像のパースペクティブにより)オブジェクトまたは設定の実質的部分をキャプチャしていない場合などには、より多くの画像が推奨または要求され得る。システムは、どのタイプの画像を取得すべきか(たとえば、「オブジェクトの後ろの画像をキャプチャする」)についてユーザに命令またはアドバイスすることができる。一例では、ユーザは、画像をいくつキャプチャするか、かつ/またはどのタイプの画像をキャプチャするかを決定する。ユーザは、オブジェクトの全部または一部のそれ以上の詳細をキャプチャすることで、後に生成されるモデルの推定が改善され得ることを知らされることがある。一例では、ユーザ入力(たとえば、キャプチャされる画像の数、設定など)は、モデルの詳細の度合いおよび/または処理労力(たとえば、モデルを作成および/または使用する計算処理労力)を指定することができる。ユーザ入力は、詳細度合いと処理労力との間のバランスを含むことができる。
【００１４】
一般に、適切な画像キャプチャの品質および多様性により、追加の詳細をキャプチャすると、後に作成されるモデルは、画像化されたモデルまたは設定の視覚的外観および/または構造に関する追加の詳細を含むことが可能になり得る。しかしながら、処理要件、記憶容量および画像キャプチャ時間が、追加の画像キャプチャの詳細とともに増えることもある。システムおよび/またはユーザは、所望の詳細さ、処理速度、モデル目標などに基づいて、要求または示唆された画像キャプチャ数を調整することができる。
【００１５】
110において、モデル生成を要求するユーザ入力が受信される。場合によっては、入力は、複数の画像がキャプチャされた後に受信される。たとえば、デバイスが3つの画像をキャプチャすることがあり、デバイスが画像を記憶することがあり、ユーザが画像を選択することがあり、ユーザが、画像に基づいてモデルを作成することを指示することがある。別の例として、デバイスが2つの画像をキャプチャすることがあり、次いでユーザが、最近キャプチャされた画像に基づいてモデルを作成することを指示することがある。場合によっては、入力は、複数の画像がキャプチャされる前に受信される。たとえば、ユーザは、デバイスを使用してモデル生成オプションを選択し、画像をキャプチャすることに進むことができる。場合によっては、複数の入力(たとえば、画像がキャプチャされる前にモデル選択を要求する1つの入力、およびモデル化するために画像内のオブジェクトを識別する第2の入力)が受信される。入力は、作成されるモデルのタイプ(たとえば、設定またはオブジェクト)を含むことができる。入力は、モデル化されるべき1つまたは複数の画像内の特定のオブジェクトを識別することができる。たとえば、ユーザは、画像中のオブジェクトを(たとえば、マウス、タッチスクリーンまたは矢印の選択を介して)指すことができ、またはユーザは画像中のオブジェクトの周りに境界を描くことができる。
【００１６】
115において、複数の画像を使用してモデルが生成され得る。複数の画像の一部または全部が使用され得る。たとえば、低い画像品質の画像または実質的に他の画像と重複する画像は除外され得る。場合によっては、少なくとも2つまたは少なくとも3つの画像を使用してモデルを生成する。下記でさらに詳細に説明するように、モデルは、少なくとも部分的に、複数の画像および/または固有イメージングデバイスパラメータ(たとえば、焦点距離、スキュー係数、ひずみ、主点など)に基づいて生成され得る。モデルは、1つもしくは複数のオブジェクトおよび/または1つの設定のモデルを含むことができる。場合によっては、設定のモデルは、1つまたは複数のオブジェクトのモデルを含む。たとえば、リビングルームのモデルは、長椅子、コーヒーテーブル、照明およびテレビのモデル、オブジェクト間の距離、部屋の寸法の推定値などを含むことができる。生成されるモデルのタイプは、(たとえば、モデルのタイプを示す)ユーザ入力、画像特性(たとえば、キャプチャされた画像内に存在するオブジェクトの数)などに基づき得る。
【００１７】
120において、モデルが記憶され得る。記憶されるモデルは、たとえば、1つまたは複数のオブジェクトの現実的3次元表現、モデルの実世界寸法の推定値、モデルに関連する名前、モデルに関連するグラフィカル表現(たとえば、オブジェクトの1つのビュー)、モデル生成パラメータ、モデルを生成するために使用された画像の識別情報、モデル生成および/または画像キャプチャの時間などを含むことができる。
【００１８】
モデルは、データベースに記憶され得る。いくつかの実施形態では、オブジェクトデータベースおよび設定データベースなど、複数のデータベースが存在する。モデルは、複数のデータベースのうちの1つに記憶されてよく、データベース間の選択は、たとえば、ユーザ入力、作成されたモデルのタイプなどに基づき得る。たとえば、110において受信されたユーザ入力は、オブジェクトのモデルの生成を要求し得る。次いで、生成されたモデルはオブジェクトデータベースに記憶され得る。いくつかの実施形態では、単一のデータベースが存在する。一例では、設定データベースは、設定内にあるものとしてオブジェクトデータベース内のオブジェクトを識別するパラメータ、オブジェクト間距離、オブジェクトロケーション、設定パラメータ(たとえば、部屋のサイズ、壁の色、カーペットのテクスチャなど)を含む。
【００１９】
ユーザは、1つまたは複数のデータベースに記憶されているモデルを見ること、追加すること、および/または削除することが可能であり得る。たとえば、ユーザは、オブジェクトデータベースに記憶されているすべてのモデルの表現(たとえば、アイコンまたは名前)を見ること、および特定のモデルオブジェクトを削除することが可能であり得る。場合によっては、ユーザは生成されたモデルを、モデルが記憶される前またはモデルが記憶された後に見ることおよび/または承認することが可能であり得る。たとえば、ユーザは、モデルオブジェクトの表現を見ること、およびそれを回転することが可能であり得る。ユーザがモデルに満足しない場合、特定の入力が、(たとえば、長椅子の長さを指定する、色を変えるなどして)モデルがどのように改善されるべきかを示すことがあり、またはユーザは、代替または追加の画像をキャプチャして、新しいモデルの生成を可能にすることができる。
【００２０】
図1に示すように、(たとえば、105〜120を繰り返すことによって)複数のモデルを生成すること、および/または記憶することができる。よって、複数のモデル(たとえば、少なくとも1つの設定モデルおよび/または少なくとも1つのオブジェクトモデル)のデータベースが生成され得る。
【００２１】
図1は、ユーザによってキャプチャされた画像に基づいてモデルを生成し記憶するための技法を示しているが、モデルは同じくまたは代替的に、他の方法で発生することもある。たとえば、システムは、1つまたは複数のデフォルトモデル(たとえば、「長椅子」、「リビングルーム」、「コルベット」など)を有し得る。他のユーザの画像から、または他のユーザのコードから発生するモデルが(たとえば、ワイヤレスネットワークを介して)受信され得る。
【００２２】
125において、変更されたモデルの生成を要求するユーザ入力が受信され得る。要求される変更は、上述のユーザが要求するモデル改善とは異なる。モデル改善は、モデルの精度を改善することに関係するが、モデル変更はそうではない。たとえば、モデル変更は、設定に(設定関連画像に存在しなかった)追加オブジェクトを含めるように設定モデルを改変すること、設定からオブジェクトを除去すること、設定内のオブジェクトを移動させること、設定内のあるオブジェクトを別のオブジェクトと交換することなどを含むことができる。125において受信されたユーザ入力は、たとえば、特定のタイプの変更(たとえば、「追加オブジェクトを含めるように設定を変更すること」)、一般的な変更(「設定を変更する」)などを要求するユーザ入力を受信することを含み得る。
【００２３】
130において、1つまたは複数のモデルを選択するユーザ入力が受信される。たとえば、ユーザは、変更されるべき設定、設定に追加されるべきオブジェクト、設定から除去されるべきオブジェクト、設定内の移動すべきオブジェクトなどを選択することができる。一例では、ユーザに対し、オブジェクトおよび/または設定の表現(たとえば、テキスト表現またはグラフィカル表現)が、選択できるように提示される。たとえば、ユーザが設定にオブジェクトを追加したいと思っていることを示した後、設定モデルおよびオブジェクトモデルの視覚的表現が、設定およびオブジェクトを選択できるように(たとえば、デバイスディスプレイを介して)ユーザに提示され得る。別の例として、ユーザが設定内のオブジェクトを移動させたいと思っていることを示した後、ユーザに対し、設定モデルの表現が提示され、その後、設定内のオブジェクトの(独立型または設定内)表現が、移動すべき設定内のオブジェクトを選択できるように提示され得る。
【００２４】
一例では、ユーザは(たとえば、拡張、オブジェクト除去、オブジェクト平行移動(object translation)などのために)設定モデルを選択することができる。一例では、設定モデルはデフォルトに設定され得る。たとえば、ユーザはビデオゲームをしていることがある。ビデオゲームは、実世界オブジェクトにより拡張され得る設定を含み得る。ユーザはその場合に、(たとえば、ユーザの画像から発生する、ワイヤレスネットワークを介して別のユーザから受信される、などの)実世界オブジェクトのモデルを選択することができ、仮想設定にオブジェクトが追加され得る。
【００２５】
追加のユーザ入力が受信され得る。たとえば、ユーザは、オブジェクトを挿入する設定内のロケーションを識別することが可能であり得る。ユーザは、オブジェクトを設定に挿入する前またはオブジェクトを設定に挿入した後に、オブジェクトを回転することが可能であり得る。ユーザは、オブジェクトの移動先となる設定内の最終目的地点を識別することが可能であってよく、または第1のロケーションから別のロケーションにオブジェクトをドラッグしてよい。
【００２６】
135において、選択されたモデルのうちの少なくとも1つ(たとえば、設定モデル)が、ユーザ入力に従って変更され得る。変更されたモデルは、実生活で変更が生じた場合にモデルがどのように見えるかを表す現実的表現を含むことができる。たとえば、8フィートの長椅子の第1のオブジェクトモデルが作成され、壁と戸口との間に7フィートの空間を有するリビングルームの第2の設定モデルが作成される場合、長椅子を含めた変更されたリビングルーム設定モデルは、長椅子が壁と戸口との間に縦方向に配置された場合に適合できないことを反映すべきである。別の例として、仮想デフォルト模擬戦場モデルが、ユーザの靴のモデルを含めるように拡張され得る場合、ユーザはビデオゲーム内で自分の靴をスロー(throw)することが可能であり得る。
【００２７】
140において、変更されたモデルが表示され得る。表示は、モデルの2次元表現を含むことができる。表示は、要求された変更が可能ではない場合(たとえば、小さい設定に大きいオブジェクトを挿入すること)のユーザへの警告を含むことができる。表示は、設定が変更されるとどのように見えるかの視覚的推定値を含むことができる。表示はまた、(たとえば、設定内の様々なオブジェクト間の距離を示す)非現実的特徴および/またはテキスト特徴を含むことができる。
【００２８】
145において、ユーザは、変更されたモデルと対話できるようになり得る。たとえば、ユーザは、モデルの新しいパースペクティブが示されるように、表示された変更されたモデルを回転することが可能であり得る。ユーザは、変更されたモデル内のオブジェクトの移動(たとえば、スライド(slide)、スロー(throw)、ドロップ(drop))、変更されたモデルからのオブジェクトの除去、変更されたモデル内の色の変更(たとえば、壁塗り)などを行うことが可能であり得る。ユーザはさらに、変更されたモデルを保存または削除することが可能であり得る。
【００２９】
場合によっては、130〜145は動的で変わりやすいプロセスで結合される。たとえば、ユーザは、変更されるべき設定モデルを選択することができる。設定の比較的大きい表現が表示され得る。オブジェクトモデルの小さい表現は、選択された設定モデルのより大きい表現の次に表示され得る。次いでユーザは、設定へのオブジェクトのドラッグアンドドロップ、設定からのオブジェクトのドラッグアンドドロップ、設定内のオブジェクトの移動などを行うことが可能であり得る。
【００３０】
いくつかの実施形態では、元のモデルおよび/または変更されたモデルが、たとえばネットワーク(たとえば、ワイヤレスネットワーク)を介して送信され得る。場合によっては、1つまたは複数のモデルが1つもしくは複数のインターネットサイトに送られ、かつ/または他のユーザと共有され得る。たとえば、モデルは、ファイル共有サイト、ソーシャルネットワーキングサイト、オークションサイト(たとえば、Craigslist)、販売サイト(たとえば、www.amazon.com)などに掲載するために送信されることがある。同様に、ユーザはモデルをダウンロードすることが可能であり得る。たとえば、ユーザは家具店のウェブサイトを訪問することがある。その場合にユーザは、コンピュータまたはモバイルデバイスに長椅子のモデルをダウンロードすることが可能であり得る。次いで、設定モデルを変更するために(たとえば、ユーザ自身のリビングルームにおいて長椅子がどのように見えるかを推定するために)オブジェクトが使用され得る。別の例として、ユーザのグループがビデオゲームをしていることがある。各ユーザは、実世界オブジェクトのモデルを作成できることがあり、モデルは、ワイヤレスネットワークを介して(たとえば、無料で、ユーザがチームに属している場合は無料で、有料で、許可された場合のみ、など)交換され得る。ゲームは、モデル化されたオブジェクトにより設定を拡張するように構成され得る。
【００３１】
図2は、一実施形態による、モデルを生成するための方法200を示す。205において、複数の画像が(たとえば、ネットワークを介して、かつ/またはローカルデータベースもしくはリモートデータベースから)受信される。これらの画像は、105においてキャプチャされた画像などの画像を含み得る。画像はそれぞれ、1つまたは複数のオブジェクトまたは設定の部分的または完全な描写を含み得る。画像は、様々なパースペクティブにおけるものであり得る。複数の画像は、少なくともまたは厳密に2つまたは3つの画像を含むことができる。画像の数は、図1の105に関して説明したように、固定されているか、もしくは動的であってよく、かつ/またはユーザもしくはシステムによって決定されてよい。図3Aは、教会オブジェクトの1つの画像の一例を示す。
【００３２】
210において、画像特徴が識別され得る。場合によっては、画像特徴を識別することは、1つまたは複数の画像を処理することを含む。たとえば、画像のフィルタ処理、切り取りなどが行われ得る。次いで、高い空間コントラスト(spatial contrast)またはしきい値を上回る空間コントラストを示すこと、他の特徴から区別されること、画像中の他のピクセル強度と比較して顕著なピクセル強度を示すこと、画像中の他のピクセル強度パターンと比較して顕著な空間ピクセル強度パターンを示すこと、直線を含むことなどに該当する画像の部分として、画像特徴が検出され得る。画像特徴は、1つまたは複数の定性的タイプの特徴を含むことができる。たとえば、1つまたは複数の特徴は、エッジ(edge：端部)、顕著なテクスチャ、コーナー(corner：屈曲部)、色パターン、顕著な色などに対応し得る。場合によっては、画像特徴は、特定のタイプの定性的特徴に関連付けられない。コンピュータビジョン技法および/または定性的ピクセル分析を使用して特徴を識別することができる。
【００３３】
場合によっては、画像の複数の部分または領域の各々は、多次元空間を使用して特徴付けられる。よって、たとえば、第1の次元は、領域内コントラスト(intra-region contrast)を識別することができ、第2の次元は、平均相対ピクセル強度を識別することができる、といった具合である。領域は、同じまたは異なる形状(たとえば、円)またはサイズであってよく、重複することも重複しないこともある。最も顕著な領域は、多次元空間内の分析に基づいて識別され得る。図3Bは、(それぞれ赤で輪郭が描かれた)識別された特徴を有する1つの画像の一例を示す。
【００３４】
215において、画像対応が識別され得る。画像対応は、複数の画像中に存在する同じ実世界特徴を識別しようとする試みで識別され得る。画像対応を識別することは、たとえば、複数の画像の各々における画像特徴を識別し、特徴のうちの1つまたは複数をマッチングすることを含み得る。たとえば、画像が様々なパースペクティブでキャプチャされた場合には、特徴は画像内の同じロケーションには存在しないことがある。よって、画像特徴は、特徴の品質の分析に基づいて(たとえば、複数の画像における同様の空間パターンを識別して)マッチングされ得る。いくつかの実施形態では、画像は、たとえば、同様の輝度、縮尺(scale)などを有するように処理され得る。図3Cは、識別された画像対応の一例を示す。具体的には、描かれた線は、ある画像中の特徴を別の画像中の対応する特徴と結び付けるように示されている。
【００３５】
220において、固有イメージングデバイスパラメータ(たとえば、カメラの焦点距離、レンズひずみ、スキュー係数、主点)が推定され得る。これらは既知の特性であり得る。たとえば、これらのパラメータは、記憶され、受信された画像の各々に関連付けられ得る。別の例として、方法200を実行するデバイスは、画像をキャプチャした同じデバイスであることがあり、画像をキャプチャしたときに使用されたパラメータを知っていることがある。
【００３６】
225において、画像および対応に基づいてオブジェクト形状が推定され得る。形状は、現実的な比率(proportion：釣り合い)を含む部分的または完全な3次元形状を含み得る。形状は、画像の様々なパースペクティブを考慮することによって推定され得る。たとえば、カメラは、第1の画像をキャプチャしている間、第2の画像における位置と比較して、傾けられ、異なる高さにあり得る。画像対応を識別すると、現実的に釣り合いのとれたオブジェクト形状を推定できるようにパースペクティブが推定され得る。一例では、複数の画像の各々について変換が推定される。変換は、2次元画像を3次元画像空間に変換することを可能にし得る。変換は、少なくとも部分的に、識別された画像対応および/または固有イメージングデバイスパラメータに基づいて計算され得る。いくつかの実施形態では、225は三角行列化技法を伴う。
【００３７】
230において、パラメータに基づいて実生活オブジェクト寸法が識別され得る。いくつかの実施形態では、3次元モデルが画像空間中に作成される。次いで画像空間は、パラメータに基づいて実生活空間または絶対空間に変換され得る。たとえば、カメラの焦点距離を識別することによって、オブジェクトの1つまたは複数の現実的寸法が推定され得る。具体的には、センサにおける画像化された寸法は、焦点距離に実際のオブジェクト寸法を掛けて、レンズからオブジェクトまでの距離で割った値に近くなり得る。よって、焦点距離およびそのオブジェクトを示す複数のオブジェクトを使用することによって、実際のオブジェクト寸法が推定され得る。同様の技法は、225において推定された3次元形状の複数の寸法に適用され得る縮尺(magnification)または倍率(scaling factor)の推定を可能にし得る。
【００３８】
画像は、複数のオブジェクトを含み得る。よって、いくつかの実施形態では、225は画像内の別個のオブジェクトを識別することを含む。たとえば、各画像は、画像中のオブジェクトを識別するために分析され得る。次いで、十分な数の画像中に表されるオブジェクトが(たとえば、オブジェクトの形状および寸法を推定することによって)モデル化され得る。場合によっては、オブジェクトは、オブジェクトを示す画像の数に関係なくモデル化される。たとえば、単一の画像に基づくモデルがおそらく正確ではないことを示すために、各モデルに信頼性尺度が関連付けられ得る。これは、ユーザが複雑な設定をモデル化することに関心があり、設定内の各オブジェクトの詳細な説明には関心がないときに特に有利であり得る。
【００３９】
方法200は、全般的な色、空間の色の分布、テクスチャなどのような他のオブジェクト特性を推定することをさらに含むことができる。
【００４０】
図4は、一実施形態による、1つまたは複数のモデルを生成するための方法400を示す。405において、複数の画像が受信される。これらの画像は、105においてキャプチャされた画像などの画像を含み得る。画像はそれぞれ、1つまたは複数のオブジェクトまたは設定の部分的または完全な描写を含み得る。画像は、様々なパースペクティブにおけるものであり得る。複数の画像は、少なくともまたは厳密に2つまたは3つの画像を含むことができる。画像の数は、図1の105に関して説明したように、固定されているか、または動的であってよい。
【００４１】
410において、画像がオブジェクトの画像であるか、それとも設定の画像であるかが判断され得る。この判断は、部分的または完全に(たとえば、画像をキャプチャの前または後に「オブジェクト」または「設定」として特徴付ける、「リビングルーム」または「テーブル」などのオブジェクトタイプまたは設定タイプの記述子により画像を特徴付ける、など)ユーザ入力に基づいて行われ得る。この判断は、部分的または完全に画像分析に基づいて行われ得る。たとえば、単一のオブジェクトが、写真のうちの1つ、複数、もしくはすべての大きい割合を費やしているとエッジ検出アルゴリズムが推定した場合に、画像はオブジェクトの画像であると判断されることがあり、または中央のピクセルもしくはピクセルの大部分が(たとえば、色、テクスチャなどにおいて)かなり一貫している場合、画像はオブジェクトの画像であると判断され得る。
【００４２】
画像はオブジェクトの画像であると判断された場合、方法400は415に進み、画像がマッチングされる。具体的には、1つまたは複数のオブジェクト特徴の各々が、画像のうちの1つ、2つ、またはそれ以上において検出され得る。たとえば、オブジェクトの最上部が、第1の画像ではピクセル(5,5)からピクセル(5,505)の範囲にあり、第2の画像ではピクセル(10,15)から(20,395)の範囲にあると判断されることがある。オブジェクト特徴は、非定性的ピクセルグルーピング、および/または、たとえばエッジ、顕著なテクスチャ、コーナーなどのうちの1つもしくは複数を含むことができる。
【００４３】
マッチングされた画像に少なくとも部分的に基づいて、420においてオブジェクトの形状が推定され得る。形状は、3次元形状を含み得る。モデルは現実的に釣り合いがとられ得る。たとえば、ソファーの長さが幅の3倍である場合、ソファーのモデルはこの特徴を表すことができる。
【００４４】
425において、オブジェクト寸法が推定され得る。推定される寸法は現実的なものであり得る。たとえば、長椅子が7フィートの長さである場合、モデルは同様の長さを含み得る。場合によっては、推定される寸法は、420において推定された形状に適用されるべき1つまたは複数の倍率を推定することを含む。寸法は、複数の画像をキャプチャしたイメージングデバイスに固有のパラメータに少なくとも部分的に基づいて推定され得る。たとえば、カメラ固有の特性および/またはカメラ設定(たとえば、焦点距離、レンズひずみ、スキュー係数、主点など)を使用して、画像化された寸法を実生活寸法に変換することができる。場合によっては、実世界寸法は推定されない。たとえば、寸法は代わりに、画像空間内でのみ(たとえば、カメラ固有の特性に基づいて)推定され得る。
【００４５】
430において、オブジェクトの寸法以外の他の物理関連特性が推定され得る。たとえば、オブジェクトの質量または密度が推定され得る。物理関連特性は、オブジェクトの移動または持ち上げに必要な力、オブジェクトの押しつぶす特性などに関係し得る。物理関連特性は、たとえば、オブジェクトの推定される材料(たとえば、オブジェクトは、画像化された表面に基づいて木から作られていると推定される)、データベースのマッチング、および/またはユーザ入力に基づいて推定され得る。たとえば、ユーザは、オブジェクトがアルミニウムから作られていることを入力することがある。オブジェクトの質量は、アルミニウムの密度を調べ、420および425において推定された形状および寸法に基づいてオブジェクトの量を推定することによって推定され得る。別の例として、オブジェクトデータベースは、複数のオブジェクトの形状および材料を含むことができる。したがって、画像化されたオブジェクトは、たとえば、その形状および色に基づいて、データベースオブジェクトのうちの1つに対応するものとして識別されてよく、次いで材料がデータベース中で調べられ得る。データベースがすべてのタイプのオブジェクトを含んでよく、またはオブジェクトのタイプごとに別個のデータベースが使用されてよい。
【００４６】
435において、データベースにオブジェクトモデルが記憶され得る。モデルは、複数の端点(corner point)、エッジ、表面、色、テクスチャ、境界、寸法、倍率(scaling)、重量、密度などを含み得る。記憶されたモデルは、(たとえば、推定された形状と実世界寸法の両方を含む)1つの完全な3次元モデルを含み得る。たとえば、長椅子のモデルは、長椅子の形状とともに、長椅子の平らな土台(flat base)が8フィートの長さであること、長椅子の前部分が2フィートの高さであること、長椅子のクッションが1フィートの深さであることなどを示す指示を含み得る。記憶されたモデルは、複数の構成要素(たとえば、オブジェクトの形状を表す1つの構成要素、および実世界寸法に変換するために形状に適用され得る倍率を表す別の構成要素)を含み得る。記憶されたモデルは信頼性インジケータを含んでもよく、このインジケータは、モデルが寸法、テクスチャなどを正確に反映してはいない可能性があること、またはモデルがオブジェクトのすべての部分を完全に反映してはいないことを示し得る。たとえば、405における画像が低い品質のものであった場合、またはオブジェクトの後ろの描写を含んでいなかった場合、モデルに関連する信頼性インジケータは低いものになり得る。
【００４７】
410に戻ると、画像が設定の画像であると判断された場合、方法400は440に進む。440において、画像がマッチングされる。440において実行されるマッチングは、415において説明した技法のような1つまたは複数の技法を含み得る。場合によっては、415および440におけるマッチング技法は同じであるか、または同様である。場合によっては、440におけるマッチングは、画像にわたる複数の設定内オブジェクトの各々からの特徴をマッチングすることを含む。440において、画像にわたって設定境界(たとえば、床、壁、天井、地面など)がマッチングされ得る。したがって、いくつかの実施形態では、画像をマッチングすることは、設定内の1つまたは複数のオブジェクトおよび/または境界を識別し、画像にわたってオブジェクトおよび/または境界をマッチングすることを含む。
【００４８】
445において、設定内の形状が推定される。形状は、設定内のオブジェクトまたは境界の形状を含み得る。各オブジェクト形状は、1つまたは複数の3次元形状を含み得る。境界形状は、2次元形状および方位を含み得る。たとえば、壁は3:4のアスペクト比を有する方形であって、床に対して垂直であると推定され得る。
【００４９】
450において、設定寸法が推定され得る。設定寸法は、(たとえば、425において説明したような)オブジェクト寸法を含み得る。設定寸法は、オブジェクト間距離および/またはオブジェクト間方位(あるオブジェクトから別のオブジェクトまでのかなりの距離を表す、よりコンパクトな方法であり得る)を含み得る。
【００５０】
455において、1つまたは複数の設定物理関連特性が推定され得る。たとえば、(たとえば、430において説明したように)設定における1つまたは複数のオブジェクトの質量、密度、剛性または希薄性が推定され得る。
【００５１】
460において、設定データベースに設定モデルが記憶され得る。設定データベースは、部分的または完全にオブジェクトデータベースから独立したものであり得る。一例では、設定内の各オブジェクトは、独立してモデル化され、オブジェクトデータベースに記憶される。次いで設定データベースは、どのオブジェクトが特定の設定に関連付けられるかを示す指示、オブジェクト間距離、境界形状などの追加データを記憶することができる。記憶された設定モデルデータは、オブジェクトモデルデータベースに関して上述した信頼性インジケータのような信頼性インジケータを含み得る。
【００５２】
いくつかの実施形態では、410における判断は方法400に含まれない。たとえば、すべての画像が常に、それらが設定を示すかのように分析され得る。1つまたは複数のオブジェクトが設定内で識別され、独立してモデル化され得る。オブジェクトデータに加えて、設定データがさらに判断および/または記憶され得る。別の例として、すべての画像が常に、それらがオブジェクトを示すかのように分析され得る。これは、デフォルト設定モデルがすでに作成されている(たとえば、ビデオゲームプログラマーが、設定モデルを作成しており、ユーザのみが、1つまたは複数のオブジェクトにより設定を拡張する能力を有する)状況において特に望ましいことがある。
【００５３】
図5A〜図5Cは、ユーザにモデルを提示し、かつ/またはユーザがデバイスを介してモデルと対話できるようにするために使用され得るユーザインターフェースを示す。
【００５４】
図5Aでは、ユーザにメニュースクリーンが提示される。複数の設定モデルの表現がユーザに提示される。図示のように、表現は、設定またはオブジェクトの2次元グラフィカル表現を含む。表現は、たとえば、関連する設定またはオブジェクトのモデルを作成するために使用される生画像、設定またはオブジェクトの2次元描写、設定またはオブジェクトのテキスト記述(たとえば、「リビングルーム」または「設定1」)などを含み得る。場合によっては、すべてのモデルが同様の方法で提示される。場合によっては、オブジェクトモデルおよび設定モデルは別個に提示される。場合によっては、設定モデルのみが提示される。ユーザは、マウスまたはポインタを使用してモデル表現をクリックすること、デバイスキー(たとえば、矢印)を使用して設定を選択すること、設定が表されているスクリーンをタッチすることなどによって、モデルを選択することが可能であり得る。ユーザには、他のオプション(たとえば、モデルを結合すること、1つまたは複数のモデルを追加すること、モデルを削除すること、モデルの名前を変更することなど)が提示され得る。図5Aは、ユーザが提示された設定モデルのうちの1つを(関連する画像をタッチすることによって)選択する一例を示す。
【００５５】
図5Bにおいて、ユーザに対し、設定の拡大された表現が(たとえば、特定の設定モデルの選択に応答して)提示される。ユーザは、たとえば、設定の回転、設定のズームインまたはズームアウト、壁の色の変更、カーペットの変更などによって、設定と対話することが可能であり得る。ユーザが設定寸法もしくは設定内オブジェクト寸法および/またはオブジェクト間距離を識別できるように、1つまたは複数のスケールバーおよび/または仮想測定デバイスが提供され得る。
【００５６】
ユーザはさらに、設定の3次元アスペクトを変更することが可能であり得る。たとえば、設定内の3次元オブジェクトが移動し、かつ/またはその方向が変更されてよく、新しい3次元オブジェクトが設定に追加されてよく、3次元オブジェクトが設定から除去されてよい。図5Bは、ユーザがテレビにタッチし、テレビを所望の目的場所にドラッグすることによって、設定内のテレビを移動させる一例を示す。
【００５７】
図5Bはまた、ユーザがコーヒーテーブルオブジェクトを設定に追加することを指示する一例を示す。この場合、ユーザはオブジェクトの表現を設定にドラッグしている。場合によっては、ユーザは、オブジェクトの表現を選択する(たとえば、タップまたはクリックする)だけで、1つまたは複数のデフォルトロケーション(たとえば、中央のロケーションまたは空いているロケーション)にオブジェクトを追加することができる。
【００５８】
場合によっては、ユーザは、新しいオブジェクトが配置されるべきロケーション、または設定にすでに表示されているオブジェクトの新しい位置を指定する。ユーザは、3次元座標(たとえば、部屋における実生活座標)を入力して、オブジェクトの一部分(たとえば、中央、コーナー、土台など)のロケーションを指定することができる。別の例では、ユーザは2次元座標を指定する。たとえば、ユーザは(たとえば、配置をタッチまたはクリックすることによって)設定の2次元描写内の位置を識別することができる。ユーザがオブジェクトの土台が設定の地面または床にあるようにオブジェクトを置くつもりであったと仮定され得る。さらに、識別されたロケーションがオブジェクトの土台または中央のロケーションであると仮定され得る。場合によっては、ユーザは設定上で、または設定内へオブジェクトをドラッグする。したがって、ユーザはオブジェクトの第1の部分をクリックし、それを設定内の位置にドラッグする。最終位置は、オブジェクトの第1の部分が位置すべき位置であり得る。たとえば、ユーザがコーヒーテーブルの最上部を選択し、それを設定内へドラッグする場合、コーヒーテーブルの土台が設定内の床に置かれ、コーヒーテーブルの選択された最上部地点が最終目的地点にあるように、設定が変更され得る。
【００５９】
図示のように、ユーザはまた、設定内のオブジェクトを(たとえば、それらを設定の外にドラッグすること、または各設定内オブジェクトに明確に関連する除去オプションを選択することによって)除去することが可能であり得る。設定からオブジェクトを除去すること、または設定内のオブジェクトを移動させることは、設定の一部分を外挿することを含み得る。たとえば、図5Bにおいて設定から長椅子が除去される場合、長椅子の下にある設定の床がどのように見えるかが、画像がこの情報を明確には提供していないにもかかわらず予測され得る。場合によっては、この外挿は、ユーザによる変更の前に実行されている。たとえば、設定モデルの生成は、(利用不可能な設定部分の推定および/または外挿に依存して)土台の設定環境を推定することと、設定内の個々のオブジェクトモデルを生成することとを含み得る。
【００６０】
ユーザは設定内のオブジェクトのモデルを変更することが可能であり得る。たとえば、ユーザは、7フィートの長椅子を8フィートの長椅子に拡大するなど、オブジェクトのサイズまたは色を非現実的なサイズまたは色に意図的に変更することが可能であり得る。
【００６１】
いくつかの実施形態では、(たとえば、設定内にあるものとして、または追加オブジェクトとして)提示されるオブジェクトおよび/または設定は、ユーザによって提供されたか、デバイスによって提供されたか、またはデバイスによって処理された画像に少なくとも部分的に基づいてモデル化されたオブジェクトであり得る。すなわち、たとえば、オブジェクトは、一般的なオブジェクトではなく(たとえば、ユーザが関心を抱く長椅子の特定のタイプ/スタイル/サイズ/型の)特定のオブジェクトであり得る。さらなる例として、リビングルーム設定は、ユーザのリビングルームとして特定の敷物類、壁装飾などを含み得る。いくつかの実施形態では、提示されたオブジェクトは追加または代替として、ユーザによって提供されたか、デバイスによって提供されたか、またはデバイスによって処理された画像に基づかない、より一般的なモデルを含む。たとえば、一般的な長椅子またはリビングルームが提示され得る。ユーザはこれらの一般的なオブジェクトおよび/または設定を(たとえば、寸法、色などを変更することによって)カスタマイズし、画像ベースのオブジェクトおよび/または設定のために上述したようにそれらと対話することが可能であり得る。
【００６２】
図5Cでは、設定の変更された表現がユーザに提示される。この例では、図5Bに示すユーザのアクションに応答して、変更された設定は、対応するモデル生成画像がキャプチャされた時点では設定内に実際には存在していないコーヒーテーブル、および対応するモデル生成画像がキャプチャされた時点におけるテレビ受信機の実際のロケーションと比較して変更されたテレビ受信機のロケーションを含む。ユーザは、変更された設定を保存すること、変更されていない設定に復帰すること、設定と対話すること(たとえば、設定の回転、ズームイン、追加のオブジェクトの追加、オブジェクトの除去、オブジェクトの移動など)などが可能であり得る。
【００６３】
図6A〜図6Bは、モデル作成および/または変更システムと対話するためのユーザインターフェースの他の例を示す。図示のように、ポータブル電子デバイス600は、画像を示し得るディスプレイ605を含むことができる。画像は、デバイスによってキャプチャされた画像を含むことができる。デバイスは、モデルプログラムオプション610を含むことができる。
【００６４】
ユーザがモデルプログラムオプションを(たとえば、スクリーン上の関連する視覚的アイコンをタッチすることによって)選択したとき、図6Bに示すようにユーザに1つまたは複数のオプションが提示され得る。たとえば、モデル生成オプションが(たとえば、モデル生成アイコンを表示することによって)提示され得る。このオプションの選択により、プロセッサは、画像中に表示されている1つまたは複数のオブジェクトのモデルを生成し得る。図6Bに示す例では、像のモデルが生成され得る。
【００６５】
測定オプションが(たとえば、測定アイコン620を表示することによって)提示され得る。このオプションの選択により、プロセッサは、画像中の寸法の測定値を決定すること、および/または測定値を表示することができる。たとえば、表示されているオブジェクトの寸法(たとえば、ダビデ像の高さおよび/または幅)が提示され得る。場合によっては、このアイコンの選択により、ユーザが(たとえば、スクリーン上の端点を選択することによって)測定したいと思う寸法を識別できるようになる。場合によっては、ユーザが画像中の寸法を測定できるように、仮想定規がスクリーン上に現れる。
【００６６】
拡張オプションが(たとえば、拡張アイコン625を表示することによって)提示され得る。このオプションの選択により、追加オブジェクトを含むように画像または(たとえば、画像化されている)設定を変更することが可能になり得る。たとえば、デバイスは1つまたは複数のオブジェクトのモデルを記憶することができる。ユーザは、オブジェクトを選択することができる。また、画像中の設定がモデル化され得る。次いで設定モデルがオブジェクトを含むように拡張されてよく、拡張されたモデルがユーザに表示され得る。
【００６７】
オブジェクト除去オプションが(たとえば、除去アイコン630を表示することによって)提示され得る。このオプションの選択により、1つまたは複数のオブジェクトが設定または画像から除去され得る。たとえば、ユーザはオブジェクトをクリックするか、またはオブジェクトの周りに仮想ボックスを形作って、それが設定から除去されるべきであることを示すことが可能であり得る。設定のモデルを変更して、識別されたオブジェクトを除去することができ、または変更されたモデルをユーザに表示することができる。
【００６８】
図7は、一実施形態による、仮想設定モデルを拡張するための方法700を示す。705において、仮想設定モデルが生成される。仮想設定モデルは、想像上の町、建物、部屋、戦場などのようなビデオゲーム設定を含むことができる。仮想設定モデルは、複数の無生物オブジェクトを含むことができる。場合によっては、仮想設定モデルは、ビデオゲームのキャラクター(たとえば、ユーザのキャラクター、敵のキャラクターなど)のような単数または複数の生物オブジェクトを含むこともできる。仮想設定モデルは、複数の寸法(たとえば、シーン寸法、設定内オブジェクト寸法など)によって特徴付けられ得る。寸法は少なくとも合理的に見て実世界であってよく、それにより、設定モデルが別の実世界オブジェクトモデルにより拡張された場合に、相対寸法が合理的な(sensical：道理にかなった)ものになる。仮想設定内の無生物オブジェクトおよび/または生物オブジェクトは、質量、密度、強さ、剛性などのような物理関連特性に関連付けられ得る。
【００６９】
710において、1人または複数のユーザは、実世界オブジェクトの1つまたは複数のモデルを生成することができる。モデルは、たとえば本明細書で説明するような1つの技法を使用して生成され得る。たとえば、ユーザは、実世界オブジェクトの1つ、2つ、またはそれ以上の画像をキャプチャすることができ、キャプチャされた画像に基づいてモデルが生成され得る。
【００７０】
オブジェクトモデルはユーザデバイス上および/またはリモートサーバ上に記憶され得る。オブジェクトモデルは、それらの生成を開始したユーザに一意に関連付けられることも関連付けられないこともある。場合によっては、715において、ユーザは1つまたは複数のオブジェクトモデルを共有することができる。共有は、ユーザが共有を開始した後に、かつ/または自動的に発生し得る。たとえば、モデルはチームメンバー全員で自動的に共有され得る。オブジェクトモデルの共有は、ユーザによる許可および/またはユーザもしくはシステムへの支払いを必要とすることも必要としないこともある。オブジェクトモデルは、ネットワークを介して共有され得る。たとえば、ウェブサイト(たとえば、ソーシャルネットワーキングサイト)は、ユーザがオブジェクトモデルを共有することを可能にする。ウェブサイトは、ビデオゲーム会社によって所有または支配されることも、そうでないこともある。
【００７１】
場合によっては、モデルを共有することは、それ自体が最終目標である。たとえば、あなたが車の購入を検討していることを誰かに言ったり、車の写真をその人に送ったりする代わりに、モデルがその人に送られ得る。これにより、対象オブジェクトの受信側の理解が向上し得る。したがってそれは、写真を共有することに対する、優れた、より詳細な代用物(substitution：置き換え)として使用され得る。場合によっては、受信した人は、オブジェクトの受信したモデルを自ら使用することがある。たとえば、モデルは3D印刷に、または製造仕様として使用され得る。他の例として、受信した人はモデルと対話することがある。
【００７２】
720において、利用可能なオブジェクトモデルがユーザに提示され得る。たとえば、ビデオゲームをしているユーザは、ユーザが使用可能なオブジェクトモデルを識別するアイコン、画像、または記述子を見ることが可能であり得る。
【００７３】
725において、提示されたオブジェクトモデルのうちの1つを選択するユーザ入力が受信される。たとえば、ユーザは、マウス、ジョイスティック、ビデオゲームコントローラ、またはタッチスクリーンを使用して、オブジェクトモデルの表現を選択することができる。
【００７４】
730において、選択されたオブジェクトモデルにより仮想設定モデルが拡張される。拡張された設定モデルは、設定モデルとオブジェクトモデルとの間の合理的な寸法の比率のために、少なくともある程度現実的に見え得る。オブジェクトは、たとえば、仮想設定内に存在するオブジェクトに対する重複としてレンダリングされ得る。
【００７５】
735において、ユーザは、(たとえば、拡張された設定モデル内のオブジェクトと対話することによって)拡張された設定モデルと対話できるようになり得る。ユーザは、オブジェクトを移動させること、回転すること、持ち上げること、スローすること、もしくは設定モデルから除去することが可能であってよく、かつ/または、ユーザは、モデル中の他のオブジェクト(たとえば、仮想設定内オブジェクト)を追加オブジェクトに接触させることが可能であってよい。たとえば、ユーザは、仮想現実における追加オブジェクトの移動、ドロップ、またはスローを行うことが可能であり得る。これらの仮想アクションの効果は、オブジェクトモデルおよび設定モデルの寸法および物理関連特性を踏まえると、少なくとも幾分か現実的なものであり得る。したがって、たとえば、システムは、ビデオゲームのキャラクターがどのくらい遠くまでオブジェクトをスローできるかを、オブジェクトの推定重量およびキャラクターの強さを踏まえて推定することが可能であってよく、またはシステムは、2つのオブジェクト間の衝突に基づいて生じた破壊の量を推定することが可能であってよい。たとえば、ユーザは、ユーザのテレビ受信機のモデルにより仮想設定を拡張することができる。その場合にビデオゲームのキャラクターは、テレビ受信機に仮想設定のアングリーバード(angry bird)、ボールなどをスローすることがあり、テレビ受信機は、別の設定内オブジェクト上に落下するオブジェクトによって、落下するオブジェクトの推定質量および設定内オブジェクトの強さを背景に、テレビ受信機に関連する推定される物理関連特性に基づいて、現実的であるが仮想の損害または破壊に見舞われることがある。
【００７６】
図8は、一実施形態による、3次元モデルを生成、変更、および/または表示するためのシステム800を示す。システムは、デバイスを含むことができ、このデバイスは、電子デバイスおよび/またはモバイルデバイス(たとえば、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、ハンドヘルドゲーミングデバイスなど)であり得る。図示のように、システム800は、ユーザ810によって使用され得るセルラーフォン805を含む。デバイス805は、トランシーバ815を含むことができ、このトランシーバ815は、デバイスがデータおよび/または音声通信を送信および/または受信するのを可能にし得る。デバイス805は、(たとえば、トランシーバ815を介して)ネットワーク820(たとえば、ワイヤレスネットワークおよび/またはインターネット)に接続され得る。ワイヤレスネットワークを通じて、デバイス805は外部サーバ825と通信することが可能であり得る。
【００７７】
デバイス805は、マイクロフォン830を含むことができる。マイクロフォン830は、モバイルデバイス805がデバイスの周囲の物理的環境から音声データを収集またはキャプチャすることを可能にし得る。デバイス805は、(たとえば、通話中に別のデバイスのユーザから受信されたか、またはユーザ810に命令もしくは通知するためにデバイスによって生成された)音声データを出力するスピーカー835を含み得る。デバイス805は、ディスプレイ840を含むことができる。ディスプレイ840は、図5A〜5Cに示すディスプレイのようなディスプレイを含むことができる。ディスプレイ840はユーザに、元のまたは変更されたモデルの表現、(たとえば、ユーザがデバイスを使用して画像をキャプチャする前の)周囲環境の動画像などを提示することができる。ディスプレイ840はユーザ810に、(たとえば、ユーザ810が新しいモデルの作成、モデルの変更、変更されたモデルの保存、モデルのビューの回転などを行うことができるように)対話オプションを提示することができる。デバイス805は、ユーザ入力構成要素845を含むことができる。ユーザ入力構成要素845は、たとえば、ボタン、キーボード、ナンバーパッド、タッチスクリーン、マウスなどを含むことができる。ユーザ入力構成要素845は、たとえば、ユーザ810が設定モデルを変更すること、および/または、たとえば図5A〜5Cに示す対話を可能にすることによって、作成もしくは変更されている3次元モデルとユーザ810が対話することを可能にし得る。図示されていないが、デバイス805は、イメージング構成要素(たとえば、カメラ)を含むこともできる。イメージング構成要素は、たとえば、レンズ、光源などを含むことができる。
【００７８】
デバイス805は、プロセッサ850を含んでよく、かつ/またはデバイス805は、プロセッサ855を有する外部サーバ825に結合され得る。プロセッサ850および/または855は、上記のプロセスの一部または全部を実行することができる。場合によっては、モデル生成およびモデル変更がデバイス上でローカルに実行される。場合によっては、外部サーバのプロセッサ855は、モデルの作成、変更、または表示に関与しない。場合によっては、モデルは外部サーバのプロセッサ855を使用して作成され、リモートプロセッサ850を使用して変更される。
【００７９】
デバイス805は、記憶デバイス860を含んでよく、かつ/またはデバイス805は、記憶デバイス865を有する外部サーバ825に結合され得る。記憶デバイス860および/または865は、設定モデルおよび/またはオブジェクトモデルなどのモデルを記憶することができる。設定モデル(元の設定モデルおよび/または変更された設定モデルを含み得る)は、オブジェクトモデルを記憶するオブジェクトモデルデータベース875から独立した設定モデルデータベース870に記憶され得る。代替として、すべてのモデルが単一のデータベースに記憶され得る。一例では、すべてのモデルがオブジェクトモデルに分解され得る。設定モデルデータベースは、オブジェクトを設定に結び付ける(たとえば、設定内にあるオブジェクト、設定寸法、オブジェクト間距離などを識別する)パラメータを記憶し得る。記憶デバイス860および/または865は、モデルを生成するために使用されたすべての画像、デバイス805によって取得されたすべての画像、ユーザ810によって保存されたすべての画像など、画像を記憶する画像データベース880を含むことができる。
【００８０】
図9は、一実施形態による、3次元モデルを生成、変更、および/または表示するためのシステム900を示す。システム900の一部または全部は、たとえば、1つまたは複数のモバイルデバイスおよび/または電子デバイス(たとえば、モバイルフォン)に組み込まれ得る。システム900の一部または全部は、リモートサーバおよび/またはクラウドサーバに組み込まれ得る。
【００８１】
システム900は、画像および/またはビデオをキャプチャするように構成され得るイメージングデバイス905を含む。イメージングデバイス905は、セルフォンカメラなどのカメラを含むことができる。イメージングデバイス905は、ユーザ入力構成要素910を介してユーザからコマンドを受信すると画像および/またはビデオをキャプチャするように構成され得る。たとえば、ユーザは画像収集ボタンをクリックすることがある。
【００８２】
イメージングデバイス905によってキャプチャされた画像は、モデルジェネレータ915によって処理され得る。モデルジェネレータ915は、自動的に、またはユーザ入力構成要素910を介してユーザからコマンドを受信すると、画像を処理することができる。モデルジェネレータ915は、1つまたは複数の画像に基づいて設定モデルおよび/またはオブジェクトモデルを生成するように構成され得る。本明細書で説明するモデル生成技法は、モデルジェネレータ915によって実施され得る。
【００８３】
モデルジェネレータ915は、画像内の特徴を識別し、位置特定するための特徴識別器920を含むことができる。たとえば、特徴識別器920は、エッジ検出器、コーナー検出器、高コントラスト検出器などを含むことができる。
【００８４】
モデルジェネレータ915は、画像にわたり特徴をマッチングするように構成された画像対応識別器925を含むことができる。マッチングされた特徴ごとに、画像対応識別器925は、画像の各々における特徴の画像ベースのロケーションを互いに関連付けることができる。場合によっては、画像対応識別器925は、マッチングされた特徴に基づいて画像間および/または画像と実生活との間の変換を識別する。
【００８５】
モデルジェネレータ915は、形状/寸法推定器930を含むことができる。形状/寸法推定器930は、オブジェクト、設定内のオブジェクト、または設定を特徴付ける、形状および/または1つもしくは複数の寸法を推定することができる。推定される形状および/または寸法は、イメージングデバイスパラメータ、特徴の画像ベースの寸法、特徴間の画像ベースの距離などに基づき得る。
【００８６】
モデルジェネレータ915は、物理的特性推定器935を含むことができ、物理的特性推定器935は、オブジェクト、設定内のオブジェクト、またはシーンの物理関連特性を推定することができる。たとえば、物理的特性推定器935は、オブジェクトの質量、密度、剛性、強さなどを推定することができる。推定は、画像を通じて明らかな視覚的特性(たとえば、オブジェクトの表面上のテクスチャ)に基づいてよく、またはユーザ入力構成要素910を介して受信されたユーザ入力に基づいてよい。場合によっては、物理的特性推定器935は、オブジェクトおよび材料特性を含むデータベースにアクセスする。物理的特性推定器935は、画像化されているオブジェクトの正体(たとえば、「3つの引き出しがある机#459」)を推定し、オブジェクトの材料を調べ、材料の密度に基づいてオブジェクトの質量を推定する。データベースは、一般に入手可能なアイテム(たとえば、家具アイテム)に関する、かつ/または(たとえば、店が、その店で販売されているアイテムの拡張モデル機能を提示できるように)精選された店に保存されているアイテムに関するこのタイプの情報を含むことができる。
【００８７】
モデルジェネレータ915によって生成されたモデルは、モデルデータベース940に記憶され得る。モデルデータベース940は、場合によってはオブジェクトおよび設定のモデルを含むことができる。場合によっては、別個のデータベースがモデルおよび設定を記憶する。場合によっては、あるデータベースがオブジェクトのモデルを記憶し、別のデータベースが、設定を形成するためにオブジェクトをどのように組み合わせるかについての指示を記憶する。場合によっては、オブジェクトモデルのみまたは設定モデルのみが記憶される。
【００８８】
次いでユーザは、モデルインタラクタ945を介してモデルデータベース940に記憶されているモデルと対話することができる。したがって、ユーザは、ユーザ入力構成要素910を通じて入力を記入し、それにより1つまたは複数のモデルと対話することができる。
【００８９】
モデルインタラクタ945は、モデル変更器950を含むことができる。モデル変更器950は、ユーザが、たとえば、作成されたモデルの色、寸法、形状などを変更することを可能にし得る。たとえば、ユーザは、長椅子オブジェクトモデルを白色から茶色に変更することができる。したがって、ユーザはモデル変更器950を通じて、オブジェクトまたは設定の物理的特性に関係するモデル特性を変更することができる。
【００９０】
モデルインタラクタ945は、設定モデル拡張器955を含むことができる。設定モデル拡張器955は、オブジェクトモデルにより設定モデルを拡張するように構成され得る。ユーザは、拡張されるべき設定モデル、および設定モデルを拡張することになるオブジェクトモデルを選択することができる。拡張された設定モデルは、両方のモデルに関連する推定された寸法による設定とオブジェクトの間の現実的な比率を含み得る。
【００９１】
モデルインタラクタ945は、設定内オブジェクト除去器960を含むことができる。設定モデルは、モデル中に複数のオブジェクトを含み得る。ユーザは、(たとえば、ユーザ入力構成要素910を介して)1つのオブジェクトを選択し、それを除去するように要求することがある。その場合、設定内オブジェクト除去器960は、設定からオブジェクトを除去することができる。
【００９２】
モデルインタラクタ945は、設定内オブジェクトマニピュレータ965を含むことができる。ユーザは設定内オブジェクトマニピュレータ965(およびたとえばユーザ入力構成要素910)を通じて、設定内のオブジェクトの移動、ドロップ、スライド、回転などを行うことが可能であり得る。オブジェクトは、設定内に元から存在したオブジェクト、または設定に追加されたオブジェクトであり得る。モデル対話推定器970は、そのような操作の効果を推定することができる。たとえば、ユーザが、あるオブジェクトを別のオブジェクトの上に配置しようとする場合、モデル対話推定器970は、下にあるオブジェクトが押しつぶされるかどうかを推定することができ、またはユーザが、あるオブジェクトを別のオブジェクトに向けてスローしようとする場合、モデル対話推定器970は、接触を受けるオブジェクトが損害を被るか、破壊されるか、傾くか、影響されないかなどを推定することができる。場合によっては、操作の効果は、キャラクターの強さに依存する。たとえば、操作は、ビデオゲームのキャラクターがオブジェクトを操作しようとしていることを含み得る。操作の効果は、部分的に、キャラクターの強さに依存し得る。
【００９３】
(たとえば、生成されたとおりの、またはモデルの変更、モデルの拡張、モデルからのオブジェクトの除去、もしくは設定内のオブジェクトの操作のためにユーザがモデルと対話した後の)モデルは、モデルトランシーバ975によって送信および/または受信され得る。たとえば、モデルはモデル共有またはソーシャルネットワーキングウェブサイトを横断して共有され得る。
【００９４】
システム900は、ディスプレイ980をさらに含むことができる。ディスプレイ980は、イメージングデバイス905によってキャプチャされた画像、モデルジェネレータ915によって生成されたモデル940の表現、対話後の表現、またはモデルインタラクタ945によって変更された変更後のモデルなどを表示することができる。ディスプレイ980はさらに、ユーザに命令を提示することができる。
【００９５】
図10は、本明細書で説明するような様々な実施形態によって提供される方法を実行することができ、かつ/または本明細書で説明するような1つもしくは複数のシステム構成要素を含み得るコンピュータシステム1000の一実施形態の概略図を提供する。図10は、必要に応じて、そのうちのいずれかまたはすべてを利用することができる様々な構成要素の一般化された例示を提供することだけを意味することに留意されたい。したがって、図10は、個々のシステム要素を、比較的分離して、または比較的統合して、どのように実装することができるかを大まかに示す図である。
【００９６】
コンピュータシステム1000は、バス1005を介して電気的に結合され得る(または適宜、他の何らかの形で通信しているものとしてよい)ハードウェア要素を備えるように図示されている。ハードウェア要素は、限定することなく、1つもしくは複数の汎用プロセッサおよび/または1つもしくは複数の専用プロセッサ(デジタル信号処理チップ、グラフィックスアクセラレーションプロセッサ、および/または同様のものなど)を含む、1つまたは複数のプロセッサ1010、限定することなく、マウス、キーボード、および/または同様のものを含み得る、1つまたは複数の入力デバイス1015、および限定することなく、表示デバイス、プリンタ、および/または同様のものを含み得る、1つまたは複数の出力デバイス1020を含むものとしてよい。
【００９７】
コンピュータシステム1000は、1つまたは複数の記憶デバイス1025をさらに含む(かつ/あるいはこれらと通信する)ことができ、この1つまたは複数の記憶デバイス1025は、ローカル記憶装置および/またはネットワークアクセス可能記憶装置(ただしこれらに限定されない)を含むことができ、かつ/あるいはプログラマブルかつ/またはフラッシュ更新可能などにすることができるディスクドライブ、ドライブアレイ、光学記憶デバイス、ランダムアクセスメモリ(「RAM」)および/または読取り専用メモリ(「ROM」)などの固体状態記憶デバイス(ただしこれらに限定されない)を含むことができる。そのような記憶デバイスは、限定はしないが、様々なファイルシステム、データベース構造、および/または同様のものを含む任意の適切なデータストアを実装するように構成されてよい。
【００９８】
コンピュータシステム1000は、限定することなく、モデム、ネットワークカード(ワイヤレスもしくは有線)、赤外線通信デバイス、ワイヤレス通信デバイスおよび/またはチップセット(Bluetooth(登録商標)デバイス、802.11デバイス、WiFiデバイス、WiMaxデバイス、セルラー通信設備など)、および/または同様のものを含み得る、通信サブシステム1030を備えることも可能である。通信サブシステム1030は、データが、ネットワーク(一例を挙げると、下記で説明するネットワークなど)、他のコンピュータシステム、および/または本明細書で説明する任意の他のデバイスと交換されることを可能にし得る。多くの実施形態では、コンピュータシステム1000は、上述のようにRAMデバイスまたはROMデバイスを含んでよい作業メモリ1035をさらに備える。
【００９９】
コンピュータシステム1000は、本明細書で説明するように、オペレーティングシステム1040、デバイスドライバ、実行可能ライブラリ、および/または様々な実施形態によって提供されるコンピュータプログラムを含み得、かつ/もしくは方法を実装し、かつ/もしくは他の実施形態によって実現されるシステムを構成するように設計され得る、1つもしくは複数のアプリケーションプログラム1045などの他のコードを含む、作業メモリ1035内に現在配置されているものとして図示されている、ソフトウェア要素も備えることができる。単に例としてであるが、上述の方法に関して説明されている1つまたは複数の手順は、コンピュータ(および/またはコンピュータ内のプロセッサ)によって実行可能なコードおよび/または命令として実装することも可能であり、次いで、一態様において、そのようなコードおよび/または命令は、説明されている方法に従って1つまたは複数のオペレーションを実行するように汎用コンピュータ(または他のデバイス)を構成し、および/または適合させるために使用され得る。
【０１００】
1組のこれらの命令および/またはコードは、上述の1つまたは複数の記憶デバイス1025などのコンピュータ可読記憶媒体に記憶することができる。場合によっては、記憶媒体は、システム1000などのコンピュータシステム内に組み込むこともできる。他の実施形態では、記憶媒体は、コンピュータシステムから分離し(たとえば、コンパクトディスクなどの取り外し可能な媒体)、および/またはインストレーションパッケージで提供されることも可能であり、これにより、記憶媒体を使用して、そこに格納されている命令/コードで汎用コンピュータをプログラムし、構成し、かつ/または適合させることができる。これらの命令は、コンピュータシステム1000によって実行可能である、実行可能コードの形態をとることも可能であり、かつ/またはコンピュータシステム1000でコンパイルおよび/もしくはインストールした後に(たとえば、様々な一般的に利用可能なコンパイラ、インストールプログラム、圧縮/展開ユーティリティなどのいずれかを使用して)、実行可能コードの形態をとるソースコードおよび/もしくはインストール可能コードの形態をとることも可能である。
【０１０１】
特定の要件に従って実質的な変形を行ってよいことが、当業者には明らかであろう。たとえば、カスタマイズされたハードウェアが使用されてもよく、かつ/あるいは特定の要素はハードウェア、ソフトウェア(アプレットなどのような移植可能なソフトウェアを含む)、またはその両方に実装されてよい。さらに、ネットワーク入出力デバイスのような他のコンピューティングデバイスとの接続を使用してよい。
【０１０２】
上述のように、一態様において、いくつかの実施形態はコンピュータシステム(コンピュータシステム1000など)を使用して様々な実施形態による方法を実行してよい。たとえば、コンピュータシステムは、方法100、方法200、方法400、または方法700の一部または全部を実行することができる。さらに、システム800または900の1つまたは複数の構成要素は、(個別に、または全体として)コンピュータシステム(たとえば、コンピュータシステム1000)を含み得る。一組の実施形態によれば、このような方法の手順の一部または全部は、プロセッサ1010が作業メモリ1035内に収められている1つまたは複数の命令(オペレーティングシステム1040および/またはアプリケーションプログラム1045などの他のコードに組み込むことも可能である)の1つまたは複数のシーケンスを実行することに応答してコンピュータシステム1000によって実行される。そのような命令は、記憶デバイス1025のうちの1つまたは複数のような別のコンピュータ可読媒体から作業メモリ1035に読み込まれてよい。単に例として、作業メモリ1035内に含まれる命令のシーケンスの実行では、プロセッサ1010に、本明細書で説明する方法の1つまたは複数の手順を実行させ得る。
【０１０３】
本明細書で使用する「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械を特定の方式で動作させるデータを与えることに関与する任意の媒体を指す。コンピュータ可読媒体および記憶媒体は、一時的な伝搬信号は指さない。コンピュータシステム1000を用いて実施される実施形態では、様々なコンピュータ可読媒体が、命令/コードを実行するために1つまたは複数のプロセッサ1010に提供する際に必要となる可能性があり、かつ/あるいはこれらの命令/コードを記憶するために使用される可能性がある。多くの実装形態において、コンピュータ可読媒体は物理記憶媒体および/または有形記憶媒体である。そのような媒体は非揮発性媒体または揮発性媒体の形をとってよい。非揮発性媒体には、たとえば、記憶デバイス1025のような光ディスクおよび/または磁気ディスクが含まれる。揮発性媒体には、限定はしないが、作業メモリ1035などのダイナミックメモリが含まれる。
【０１０４】
物理的な、かつ/または有形のコンピュータ可読媒体の一般的な形態としては、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、またはその他の任意の磁気媒体、CD-ROM、その他の任意の光学媒体、パンチカード、紙テープ、穴のパターンを有するその他の任意の物理的媒体、RAM、PROM、EPROM、フラッシュEPROM、その他の任意のメモリチップまたはカートリッジなどが挙げられる。
【０１０５】
上記で論じた方法、システム、およびデバイスは、例である。様々な構成において、様々な手順または構成要素を、適宜、省略し、置換し、または加えることができる。たとえば、代替構成では、本方法は、説明される順序とは異なる順序で実行されてもよく、かつ/または、様々なステージが加えられ、省略され、かつ/もしくは組み合わされてもよい。また、いくつかの構成に関して説明される特徴が、様々な他の構成と組み合わされてもよい。構成の様々な態様および要素を同様に組み合わせることができる。また、技術は発展するものであり、したがって、要素の多くは、例であり、本開示または請求項の範囲を限定しない。
【０１０６】
例示的な構成(実装形態を含む)を完全に理解するために、説明には具体的な詳細が記載されている。しかしながら、構成は、これらの具体的な詳細なしに実践することができる。たとえば、構成を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不要な詳細なしに示してきた。この説明は、例示的な構成のみを提供し、請求項の範囲、適用可能性、または構成を限定しない。むしろ、これらの構成の上述の説明は、説明した技法を実装するための有効な説明を当業者に提供することになる。本開示の趣旨または範囲から逸脱することなく、要素の機能および構成に様々な変更を行うことができる。
【０１０７】
また、各構成は、流れ図またはブロック図として示されるプロセスとして記述され得る。各構成では動作を逐次プロセスとして記述し得るが、動作の多くを並行して実行するかあるいは同時に実行することができる。加えて、動作の順序は並び替えられ得る。プロセスは、図に含まれていない追加のステップを有することができる。さらに、方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体などの非一時的コンピュータ可読媒体に記憶され得る。プロセッサは説明したタスクを実行し得る。
【０１０８】
いくつかの例示的な構成について説明してきたが、様々な変更、代替構造、および均等物は、本開示の趣旨から逸脱することなく使用され得る。たとえば、上記の要素は、より大きいシステムの構成要素であってよく、他の規則は、本発明の適用例に優先するか、そうでなければ適用例を変更することができる。また、上記の要素が考慮される前、間、または後に、いくつかのステップを行うことができる。したがって、上記の説明は、請求項の範囲を制限しない。
【符号の説明】
【０１０９】
100  方法
200  方法
400  方法
600  ポータブル電子デバイス
605  ディスプレイ
610  モデルプログラムオプション
620  測定アイコン
625  拡張アイコン
630  除去アイコン
700  方法
800  システム
805  セルラーフォン、デバイス
810  ユーザ
815  トランシーバ
820  ネットワーク
825  外部サーバ
830  マイクロフォン
835  スピーカー
840  ディスプレイ
845  ユーザ入力構成要素
850  プロセッサ、リモートプロセッサ
855  プロセッサ
860  記憶デバイス
865  記憶デバイス
870  設定モデルデータベース
875  オブジェクトモデルデータベース
880  画像データベース
900  システム
905  イメージングデバイス
910  ユーザ入力構成要素
915  モデルジェネレータ
920  特徴識別器
925  画像対応識別器
930  形状/寸法推定器
935  物理的特性推定器
940  モデルデータベース、モデル
945  モデルインタラクタ
950  モデル変更器
955  設定モデル拡張器
960  設定内オブジェクト除去器
965  設定内オブジェクトマニピュレータ
970  モデル対話推定器
975  モデルトランシーバ
980  ディスプレイ
1000  コンピュータシステム、システム
1005  バス
1010  プロセッサ
1015  入力デバイス
1020  出力デバイス
1025  記憶デバイス
1030  通信サブシステム
1035  作業メモリ
1040  オペレーティングシステム
1045  アプリケーションプログラム
【図１】
0005833772.tif 000002
【図２】
0005833772.tif 000003
【図３Ａ】
0005833772.tif 000004
【図３Ｂ】
0005833772.tif 000005
【図３Ｃ】
0005833772.tif 000006
【図４】
0005833772.tif 000007
【図５Ａ】
0005833772.tif 000008
【図５Ｂ】
0005833772.tif 000009
【図５Ｃ】
0005833772.tif 000010
【図６Ａ】
0005833772.tif 000011
【図６Ｂ】
0005833772.tif 000012
【図７】
0005833772.tif 000013
【図８】
0005833772.tif 000014
【図９】
0005833772.tif 000015
【図１０】
0005833772.tif 000016