最小限のユーザ入力による追跡システムの較正
【解決手段】位置センサを較正するために、追跡対象オブジェクトがリッチモーションパスに沿って移動されるときに、追跡対象オブジェクトの複数の画像の位置及び画像の大きさが取得される。追跡対象オブジェクトがリッチモーションパスに沿って移動されるときに、追跡対象オブジェクトから慣性データが取得される。複数の画像の位置のそれぞれが、対応する画像の大きさ及び位置センサの視野に基づいて、位置センサの三次元座標系に変換される。位置センサの三次元座標系における追跡対象オブジェクトの加速度が算出される。慣性データは、位置センサを較正するために、算出された加速度に融合される。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、米国仮出願第61/138,499号(2008年12月17日出願)及び米国出願第12/435,386号(2009年5月4日出願)に関するとともに、それらの優先権を主張し、それらの出願は本明細書に援用される。
【0002】
本出願は、同時係属中の米国出願第12/435,285号(2009年5月4日出願、発明の名称「追跡システムにおける角度誤差の補正」)に関する。
【0003】
本発明は、一般に、追跡システムの較正に関し、とくに、オブジェクトの位置データ及びオブジェクトに関する更に取得した又は既知のデータに基づいてオブジェクトの位置を追跡するために用いられる追跡システムの較正に関する。
【背景技術】
【0004】
コンピュータゲーム産業において、ユーザとゲームシステムとの間のインタラクションを増加させるゲームの開発がトレンドになっている。よりリッチな対話式の体験を達成するための一つの方法は、ゲームコントローラを用いて、ゲームシステムがゲームコントローラの動きを追跡することによりユーザの動きを追跡し、その動きをゲームの入力として用いることである。一般に、ジェスチャー入力は、コンピュータシステム、ビデオゲームコンソール、スマートアプライアンスなどの電子機器を、オブジェクトを追跡するビデオカメラ又は他の位置センサにより取得されたジェスチャーに反応させるために適用される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ユーザの位置及び動きの信頼できる測定を行うためには、一般に、ゲームシステムを較正する必要がある。このような較正は、ゲームシステムが使用されるたびに必要となる。従来のシステムにおいては、ゲームシステムの較正は、ビデオカメラの傾き、ユーザからビデオカメラまでの距離などのプロパティをユーザが測定するための制御された正確なプロセスを必要とする。従来のゲームシステムは、このような制御された正確なプロセスなしでは較正を実行することができない。
【課題を解決するための手段】
【0006】
本発明は、本発明の実施の形態を説明するために用いられる、下記の説明及び添付の図面を参照することにより、最も良く理解されうる。
【図面の簡単な説明】
【0007】
【図1】本発明の一つの実施の形態における、追跡システムの透視図を示す図である。
【0008】
【図2】図2(a)は、本発明の一つの実施の形態における、ボール部を有するゲームコントローラを示す図である。
【0009】
図2(b)は、本発明の一つの実施の形態における、ボール部を有する別のゲームコントローラを示す図である。
【0010】
図2(c)は、本発明の一つの実施の形態における、ユーザに配置された複数のモーションキャプチャボールを示す図である。
【0011】
【図3】本発明の一つの実施の形態における、リッチモーション経路に沿って移動されるオブジェクトの例を示す図である。
【0012】
【図4】本発明の一つの実施の形態における、追跡システムのブロック図を示す図である。
【0013】
【図5】一つの実施の形態における、マルチプレイヤー環境の概略図を示す図である。
【0014】
【図6】追跡システムを較正する方法の一つの実施の形態のフロー図を示す図である。
【0015】
【図7】追跡システムを較正する方法の別の実施の形態のフロー図を示す図である。
【0016】
【図8】本発明の一つの実施の形態に係る、カメラの画像平面における異なる位置に投影された球を示す図である。
【0017】
【図9】カメラの撮像平面上への球の楕円投影を用いてカメラの視野を決定する方法の一つの実施の形態のフロー図を示す図である。
【0018】
【図10】本発明の一つの実施の形態において、カメラの撮像平面上に楕円として投影された球を示す図である。
【0019】
【図11】本発明の一つの実施の形態に関連して、コントローラの位置を決定するために用いられうるハードウェア及びユーザインタフェースを示す図である。
【0020】
【図12】本発明の一つの実施の形態における、命令の処理に利用可能な追加のハードウェアを示す図である。
【発明を実施するための形態】
【0021】
本明細書では、ゲームシステムにおいて用いられる追跡システムを較正するための方法及び装置が説明される。一つの実施の形態において、追跡システムを較正するために、追跡対象オブジェクトが動きに富んだ経路(rich motion path:リッチモーションパス)に沿って移動されるときに、追跡対象オブジェクトの位置データ(例えば画像の位置及び画像の大きさ)が位置センサにより取得される。さらに、追跡対象オブジェクトが動きに富んだ経路に沿って移動されるときに、追跡対象オブジェクトに対応する慣性データが取得される。位置データは、位置センサの三次元座標系に変換される。一つの実施の形態において、画像の位置は、対応する画像の大きさ及び位置センサの視野に基づいて、三次元座標系に変換される。位置センサの視野は、既知であっても未知であってもよい。位置センサの三次元座標系における追跡対象オブジェクトの加速度が算出される。慣性データは、追跡システムを較正するために、算出された加速度と調整される。慣性データと算出された加速度との調整は、位置センサのピッチの算出と、位置センサと追跡対象オブジェクトとの間の相対ヨーの算出を含む。慣性データと算出された加速度との調整は、位置センサの視野の算出を更に含んでもよい。
【0022】
下記の説明においては、特定の数値的な詳細が示される。しかしながら、本発明が、これらの特定の詳細なしに実施されることが可能であることは、当業者には明らかである。いくつかの例において、本発明を不明瞭にするのを避けるために、詳細よりもむしろ、既知の構造及び装置がブロック図の形で示される。
【0023】
下記の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビット上の演算のアルゴリズム及び記号表現の観点から示される。これらのアルゴリズムの記述及び表現は、その成果を最も効果的に他の当業者に伝えるために、データ処理の分野の当業者により用いられる手段である。アルゴリズムは、本明細書において、及び一般的に、所望の結果を達成する自己矛盾のない一連のステップであると理解されている。ステップは、物理量の必要な物理操作である。通常、必然的ではないが、これらの量は格納可能な電気的又は磁気的信号の形式をとり、送信され、結合され、比較され、及びその他の操作を受ける。これらの信号を、ビット、値、要素、記号、文字、項、数などと呼ぶことが、主に共通の使用のために、時に便利であることが立証されている。
【0024】
しかしながら、これらの語及び類義語の全ては、適当な物理量に関連付けられるもので、これらの量に適用される単なる便利なラベルであることに留意するべきである。以下の議論から明らかであるように、とくにそうではないと断らない限り、詳細な説明の全体にわたって、「処理」「計算」「変換」「調整」「決定」などの語を用いた議論は、物理的(例えば電気的)な量としてコンピュータシステムのレジスタ及びメモリ内で表現されるデータを操作し、コンピュータシステムのメモリ又はレジスタ、又は、他の同様な情報ストレージ、通信又は表示装置の中で物理量として同様に表現される他のデータに変換するコンピュータシステム又は同様の電気的計算装置の動作及び処理のことを指すことが理解される。
【0025】
本発明は、また、本明細書の手順を実行するための装置に関する。この装置は、要求される目的のために特別に構築されてもよいし、コンピュータに格納されたコンピュータプログラムにより選択的に作動された又は再構成された汎用コンピュータを備えてもよい。一つの実施の形態において、本明細書の手順を実行するための装置は、ゲームコンソール(例えば、ソニープレイステーション(登録商標)、ニンテンドーWii(登録商標)、マイクロソフトXbox(登録商標)など)を含む。コンピュータプログラムは、例えば、フロッピー(登録商標)ディスクを含む任意の種類のディスク、光ディスク(例えば、コンパクトディスクリードオンリーメモリ(CD−ROM)、ディジタルビデオディスク(DVD)、ブルーレイディスク(登録商標)など)、及び磁気光学ディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光学カード、又は電気的命令を格納するために適した任意の種類の媒体などのコンピュータ読み取り可能な記録媒体に格納されてもよい。
【0026】
マシン読み取り可能な媒体は、マシン(例えばコンピュータ)により読み取り可能な形式で情報を格納又は送信するための任意のメカニズムを含む。例えば、マシン読み取り可能な媒体は、マシン読み取り可能な記録媒体(例えば、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記録媒体、光記録媒体、フラッシュメモリ装置など)、マシン読み取り可能な通信媒体(電気、光、音響又は他の形式の伝送信号、例えば、搬送波、赤外線信号、ディジタル信号など)などを含む。
【0027】
図1は、本発明の一つの実施の形態における、追跡システム100の透視図を示す。追跡システム100は、位置センサ105、位置センサ105により追跡されるオブジェクト110、及び位置センサ105及びオブジェクト110により取得されたデータを処理する計算装置115を含む。一つの実施の形態において、追跡システム100は、ゲームシステムの構成要素である。または、追跡システム100は、モーションキャプチャシステムの構成要素であってもよい。
【0028】
位置センサ105により検知される位置データ(例えば画像)は、撮像平面と撮像平面に垂直なベクトルにより定義される位置センサ105の参照フレーム150内のデータである。本明細書では、参照フレームは、オブジェクトの位置、方向及び他のプロパティを測定するための座標系として定義される。参照フレーム及び座標系という語は、本出願を通して交換可能に用いられる。
【0029】
図示されるように、位置センサ105は、テレビジョンセット120の上面に、床150に対して負のピッチ145をもって設置される。ピッチ145は、位置センサ105の測定平面内にある位置センサの参照フレーム150の水平軸と重力135に垂直な平面との間の角である。ピッチ145がゼロでない値をとる限り、位置センサ105は、ワールド参照フレーム(重力135の向きに沿った軸(例えばy2)を有する参照フレームとして定義される)とは異なる参照フレーム150を有する。
【0030】
本発明の一つの実施の形態において、位置センサ105は標準的なビデオカメラである。この実施の形態において、位置センサ105は、深さ方向の情報(位置センサ105及びオブジェクト110の間の距離)を、オブジェクト110の大きさを特定する予め定義された情報及び/又は位置センサ105の視野(field of view:FOV)を特定する予め定義された情報に基づいて取得してもよい。視野125は、位置センサ105により撮像される所与のシーンの角度範囲である。視野は、カメラのレンズにより発生する画像の歪み(例えばズームの量)を定義する。オブジェクト110が位置センサ105から遠くへ移動するにつれて(すなわち、距離130が増加するにつれて)、位置センサ105により撮像されるオブジェクト110の画像は小さくなる。したがって、位置センサ105に対するオブジェクト110の距離130は、位置センサ105の視野125が既知であれば、追跡対象のオブジェクト110の画像の大きさ(例えば、ピクセルで測定される)の、追跡対象のオブジェクト110の既知の実際の大きさに対する比に基づいて決定できる。視野125又はオブジェクト110の大きさのいずれかが未知であれば、未知の値は、例えば、図9を参照して後述されるようにして求められる。
【0031】
本発明の別の実施の形態において、位置センサ105は、Zカメラ(映像を深さ方向の情報とともに撮像可能な単一レンズのビデオカメラ)又はステレオカメラ(三次元画像を撮像可能な2以上のレンズを有するビデオカメラ)である。この実施の形態において、位置センサ105は、オブジェクト110の大きさを特定するための情報を予め設定することなく、深さ方向の情報を取得することができる。
【0032】
本発明の更に別の実施の形態において、位置センサ105は、超音波センサアレイ又は光検出器などのセンサアレイである。このような位置センサ105は、例えば光又は音の飛行時間又は位相のコヒーレンスを用いて、位置センサ105とオブジェクト110の間の距離を検出し、三角測量を用いてオブジェクト110の垂直及び水平方向の位置を検出する。
【0033】
オブジェクト110は、1以上の慣性センサを含む電子機器である。慣性センサは、単一又は複数の軸に沿った加速度を測定可能でもよく、直線方向だけでなく角加速度を測定可能であってもよい。一つの実施の形態において、オブジェクト110は、図2(a)及び2(b)に示されたゲームコントローラなどの携帯型電子機器又は携帯型電子機器の一部である。別の実施の形態において、オブジェクト110は、図2(c)に示されたモーションキャプチャ(モーキャプ)ボールである。オブジェクト110は、正方形、球、三角形、又はより複雑な形状など、任意の形状を有してもよい。一つの実施の形態において、オブジェクト110は、球状の形状を有する。
【0034】
図2(a)は、本発明の一つの実施の形態における、ボール部205を有するゲームコントローラ200を示す。図2(b)は、本発明の別の実施の形態における、ボール部215を有する別のゲームコントローラ210を示す。ある実施の形態において、ボール部205及び215は、図1のオブジェクト110に相当する。
【0035】
ボール部205及び215は、異なる色であってもよく、一つの実施の形態において、ボール部205及び215は、発光してもよい。球状のボール部が示されているが、ボール205及び215は、球の一部、完全ではない球、アメリカンフットボール又はラグビーで使われるような引き伸ばされたボール、立方体状の形状など、視覚的に追跡する目的のために、他の形状を有していてもよい。一つの実施の形態において、ボール部205及び215は、直径4cmである。しかしながら、より大きい、又は、より小さい大きさであってもよい。より大きい場合は、視覚的に認識しやすい。例えば、直径が5cmのボールでは、4cmのボールに比べて、画像認識におけるピクセル数が約55パーセント多くなる。
【0036】
図2(c)は、本発明の一つの実施の形態における、ユーザ225に配置された複数のモーキャプボール220を示す。モーキャプボール220は、位置センサがモーキャプボール220の間の位置又は角度に基づいてユーザの動きを取得し認識するために、それぞれ近接して接合するようにユーザ225により装着されるマーカである。一つの実施の形態において、モーキャプボール220は、モーションキャプチャスーツに装着される。
【0037】
図1に戻り、オブジェクト110及び位置センサ105は、有線及び/又は無線接続を介して計算装置115に接続される。有線接続は、例えば、IEEE1394(ファイヤーワイヤー(登録商標))ケーブル、イーサネット(登録商標)ケーブル、及びユニバーサルシリアルバス(USB)ケーブルなどを介した接続を含む。無線接続は、例えば、無線忠実(WiFi)接続、ブルートゥース(登録商標)接続、ジグビー(登録商標)接続などを含む。図示された実施の形態において、オブジェクト110は、無線により計算装置115に接続し、位置センサ105は、有線により計算装置115に接続する。
【0038】
計算装置115は、ビデオゲームコンソール、パーソナルコンピュータ、ゲーム機、又は他の計算装置であってもよい。計算装置115は、オブジェクト110からのユーザ入力に応答可能なゲーム又は他のアプリケーションを実行してもよい。オブジェクト110は追跡され、オブジェクト110の動きはユーザ入力を提供する。
【0039】
追跡システム100がオブジェクト110を正確に追跡可能となる前に、追跡システム100は較正される必要がある。例えば、追跡システム100のキャリブレーションは、位置センサ105のピッチ145の算出及び位置センサ105とオブジェクト110との間の相対的なヨーの算出を含んでもよい。オブジェクト110と位置センサ105との間の相対ヨーは、オブジェクト110と位置センサ105の間の向きの差を表す。一つの実施の形態において、オブジェクトが位置センサ105の撮像平面に対して垂直な方向に向いているときに、位置センサ105とオブジェクト110との間のゼロヨーが達成されると定義される。または、オブジェクト110が位置センサ105の方へ真っ直ぐ向いているときに、ゼロヨーが達成されると定義されてもよい。位置センサ105が、視野125の不明なカメラである場合、追跡システム100のキャリブレーションは、位置センサ105の視野125の算出を含む。オブジェクト110の大きさが不明である場合、追跡システム100のキャリブレーションは、オブジェクト110の大きさの決定を含んでもよい。
【0040】
オブジェクト110の内部に配置された慣性センサがキャリブレーションのために十分な慣性データを収集可能とするために、オブジェクト110はユーザにより移動されるべきである。オブジェクト110は、それぞれの慣性データの測定値が対応する位置の測定値(例えば、対応する画像の大きさ及び画像の位置の測定)を有することを保証するために、位置センサ105の視野125の範囲で移動されるべきである。キャリブレーションの効果は、オブジェクト110が、位置センサ105の視野の中にあるリッチモーションパスに沿って移動されることにより増大させることができる。リッチモーション経路は、本明細書において、少なくとも二次元(例えば平面)において生じる、最小限の加速度のしきい値を越える動きとして定義される。一つの実施の形態において、リッチモーション経路は、位置センサ105に近づく及び/又は遠ざかるような動きを含んでもよい。一つの実施の形態において、三次元の加速度を含むリッチモーション経路は、二次元のみの加速度を含むリッチモーション経路よりも好ましい。
【0041】
取得された慣性データは、慣性データに付随する信号ノイズの量により定義される不確定さを有する。オブジェクト110により測定された加速度の大きさが減少するにつれて、信号ノイズ比(信号を改悪するノイズ強度に対する信号強度の比)は増加する。信号ノイズ比の減少により、慣性データはより不正確になる。一つの実施の形態において、慣性データが最小限の信号ノイズ比を下回ることを防ぐために、最小限の加速度のしきい値が設定される。
【0042】
図3は、本発明の一つの実施の形態における、リッチモーション経路に沿って移動されるオブジェクトの例を示す。図示されるように、オブジェクトは、ゲームコントローラ310の端に取り付けられたボール305であり、リッチモーション経路315は、ユーザの頭の周囲の環状の経路である。環状の経路は、円内の動きが一定の加速度を提供する点で有利である。したがって、環状の経路は、増加された慣性データを提供する。リッチモーション経路315の全体は、位置センサの視野320の内部にあり、位置センサに近づく動き及び遠ざかる動きを含む。
【0043】
図4は、本発明の一つの実施の形態における、追跡システム400のブロック図を示す。追跡システム400は、位置センサ405に物理的に接続され、位置センサ405により追跡されるオブジェクト410に無線接続される計算装置415を含む。計算装置415は、位置センサ405に無線接続され、及び/又は、オブジェクト410に物理的に接続されてもよいことが留意されるべきである。一つの実施の形態において、追跡システム400は、図1の追跡システム100に相当する。
【0044】
オブジェクト410は、オブジェクト410の内部の固定的な位置に設けられた1以上の慣性センサ420を含む。一つの実施の形態において、慣性センサ420は、1以上のジャイロスコープ及び1以上の加速度計を含む。ジャイロスコープは、向きの変化(例えば、ピッチ、ロール、及びねじりの変化)を検出するために、角運動量を用いる。加速度計は、1以上の軸に沿った加速度を測定する。ジャイロスコープ及び加速度計は、分離された複数のセンサであってもよいし、一つのセンサに結合されていてもよい。一つの実施の形態において、ジャイロスコープ及び加速度計は、マイクロエレクトロメカニカルシステム(micro-electromechanical systems:MEMS)装置である。オブジェクト410が(例えばリッチモーション経路に沿って)移動されるとき、慣性センサ420は、慣性データを収集し、計算装置415へ送信する。慣性センサ420により収集された慣性データは、オブジェクト410の参照フレームのデータである。
【0045】
位置センサ405は、ビデオカメラ、Z−カメラ、ステレオカメラ、超音波センサアレイ、光検出器、又は画像を撮像可能な他の装置であってもよい。オブジェクト410が(例えばリッチモーション経路に沿って)移動されるとき、位置センサ405は、オブジェクト410の位置データ(例えば画像)を取得する。位置データは、画像の大きさ及び画像の位置の情報を含んでもよい。位置センサ405は、計算装置415に位置データを送信する。一つの実施の形態において、位置センサ405は、位置データが取得されるとリアルタイムに計算装置415に位置データを流す。
【0046】
一つの実施の形態において、オブジェクト410が位置センサ405により追跡されるとき、オブジェクト410の位置の変更は、ゲームやコンピュータアプリケーションなどを制御するために、計算装置415に対する入力として使用される。例えば、オブジェクト410の位置の変更は、一人称又は三人称の視点のゲームにおけるキャラクタを制御したり、画面上のマウスカーソルを移動させたりするために用いられてもよい。別の実施の形態において、オブジェクト410から取得された慣性データは、計算装置415に対する入力して使用される。または、慣性データは、計算装置415のための精密かつ正確な入力を提供するために、位置センサ405により得られた位置データと組み合わせて用いられてもよい。
【0047】
計算装置415は、ビデオゲームコンソール、パーソナルコンピュータ、ゲーム機などであってもよい。一つの実施の形態において、計算装置415は、位置センサ405から取得された位置データとオブジェクト410から取得された慣性データに基づいて追跡システム400を較正する較正ロジック432を含む。更なる実施の形態において、較正ロジック432は、それぞれが較正に関連した異なる演算を実行する、慣性データロジックコンポーネント425、位置データロジックコンポーネント430、及び調整ロジックコンポーネント435を含む。
【0048】
位置データロジックコンポーネント430は、(例えば画像内のオブジェクト410を検出するために)位置センサ405から取得した位置データ(例えば画像)を分析する。一つの実施の形態において、オブジェクト410の画像の位置は、画像内のオブジェクト410を表すピクセルのグループを分析することにより決定され、オブジェクトの中心が検出される。一つの実施の形態において、それぞれのピクセルのガウス分布が算出され、中心位置のピクセル以下の正確さを提供するために用いられてもよい。
【0049】
一つの実施の形態において、位置データロジックコンポーネント430は、画像位置情報を位置センサ405の三次元座標系に変換する。画像位置は、以下の数式を用いて、三次元座標系に変換されうる。
【数1】
【数2】
【数3】
ここで、Xwはワールド参照フレームにおける水平方向の位置、Ywはワールド参照フレームにおける垂直方向の位置、Xiは画像における水平方向の位置、Yiは画像における垂直方向の位置、Zwは位置センサとオブジェクトとの間の距離、fは位置センサの焦点距離(視野に比例する値)、Rはオブジェクトの大きさ(例えば球の半径をmmで表したもの)、rはオブジェクトの画像の大きさ(例えば球の投影の半径をピクセルで表したもの)である。
【0050】
位置データ(例えば画像位置)が三次元座標系に変換されると、位置データロジックコンポーネント430は、時間に対する位置情報の二階微分をとり、中心の位置の時間変化に基づいて、位置センサ405の三次元座標系におけるオブジェクト410の加速度を算出する。位置データロジックコンポーネント430は、算出された位置センサ加速度データを調整ロジックコンポーネント435に提供する。一つの実施の形態において、位置データロジックコンポーネント430は、加速度を算出する前に、位置データ(例えば画像位置)を平滑化する。
【0051】
慣性データロジックコンポーネント425は、算出された加速度に一致させた状態になるように、慣性データを処理する。一つの実施の形態において、慣性データロジックコンポーネント425は、慣性データから重力によって生じる加速度を除去し、慣性データを調整ロジックコンポーネント435に伝達する。
【0052】
一つの実施の形態において、位置センサの参照フレームと慣性データについて用いられる参照フレームとの間の相対的な差は、不変に保たれる必要がある。しかしながら、オブジェクト410の参照フレームは、オブジェクト410のピッチ及びロールが変化するにつれて、位置センサ405の参照フレームに対して変化する。さらに、オブジェクト410のピッチ及びロールが実質的に固定されない場合、慣性データは、ピッチの変化及び/又はロールの変化により生じる加速度の測定値を含む。このような加速度は、オブジェクト410の位置の変化を反映せず、そのため、較正のための有用な情報を提供しない可能性がある。このような加速度は、位置データに基づいて算出可能ではない可能性があるので、位置データロジックコンポーネント430により決定される算出された加速度に反映されない可能性がある。これにより、較正において誤差が生じる。
【0053】
一つの実施の形態において、慣性データロジックコンポーネント425は、慣性データをオブジェクト410の参照フレームのままとする。慣性データロジックコンポーネント425は、例えば、オブジェクトがリッチモーション経路を通して実質的に固定されたピッチ及びロールを維持する場合に、慣性データをオブジェクト410の参照フレームのままとしてもよい。さらに、リッチモーション経路にわたってピッチ及びロールの変化が相殺される場合は、慣性データの参照フレームの変更により重大な較正誤差が生じない可能性がある。ピッチ及びロールの変化の平均がゼロとなる場合、参照フレーム間の変更により生じる誤差と、ピッチ及びロールの変化に起因する加速度により生じる誤差とは、ほぼ相殺される。これは、例えば、リッチモーション経路がユーザの前面の小さな環状経路であり、ユーザが手首又は方を動かさずに肘の周りでオブジェクト410を回転する場合に達成されうる。このような条件下では、慣性データロジックコンポーネント425は、慣性データをオブジェクト410の参照フレームのままとしてもよい。
【0054】
一つの実施の形態において、慣性データロジックコンポーネント425は、慣性データを処理して、慣性データをオブジェクト410の参照フレームからワールド参照フレーム(重力に沿った軸を有する参照フレーム)に変換する。重力は、慣性センサ420により測定可能な下向きの一定の力をアサートする。慣性データは、慣性センサ420により検出された下向きの重力に基づいて、ワールド参照フレームに対するオブジェクト410のピッチ及びロールを算出することにより、ワールド参照フレームに変換されうる。オブジェクト410が移動されるとき、ジャイロスコープを用いて角加速度を決定し、オブジェクト410が静止していたときに測定されたピッチ及びロールの初期値に対するオブジェクト410のピッチ及びロールの変化を決定することができる。したがって、オブジェクト410が移動されるとき、慣性データはワールド参照フレームに変換可能である。これにより、そうでなければ参照フレーム間の関係の変更により導入されるであろう誤差が補正される。
【0055】
一つの実施の形態において、慣性センサ420は、オブジェクト410の中心に配置されない。位置センサ405により測定される加速度は、オブジェクト410の中心に基づいているから、慣性センサ420は、位置データに基づいて位置データロジックコンポーネント430が算出する加速度と同じ加速度を測定しない。例えば、オブジェクト410が弧の周りで振られた場合、位置センサ405は、慣性センサ420により記録されるよりも大きな加速度を観測する可能性がある。この不一致は、慣性センサ420が、オブジェクト410の中心よりも弧の中心に近いために生じる。
【0056】
慣性センサ420とオブジェクト410の中心の間の位置のずれにより生じる不一致は、ずれが既知であれば除去可能である。(向心力として測定される)角速度は、ジャイロスコープにより測定可能であり、位置のずれとともに、オブジェクト410の中心に配置された慣性センサ420により観測されるであろう加速度を算出するために用いられる。一つの実施の形態において、調整ロジックコンポーネント435に渡されるのは、この加速度である。
【0057】
調整ロジックコンポーネント435は、追跡システム400を較正するために、位置データロジックコンポーネント430により算出された加速度を、慣性データロジックコンポーネント425からの慣性データに融合させる。
【0058】
慣性データの算出された加速度への融合は、位置センサ405のピッチ及び位置センサ405と追跡対象オブジェクト410との間の相対ヨーの算出を含む。位置センサ405のピッチの算出は、位置センサを重力に垂直な方向に向かせる回転角度を与える。ヨーに関しては、オブジェクト410は、当初、未知の方向へ向いている。したがって、オブジェクト410の初期の向きは、ゼロの向きとして任意に選択される。オブジェクト410の初期のゼロの向きと位置センサ405の向き(ヨー)が算出される。そして、オブジェクト410のゼロの向きは、位置センサ405の向きに合わせるように修正される。追跡システム400は、例えばオブジェクト410の内部に設けられたジャイロスコープを用いて、オブジェクト410のゼロの向きからのずれを監視することにより、オブジェクト410が向いている方向を検出することができる。
【0059】
慣性データは、第1のベクトルセットとして表現され、算出された加速度は、第2のベクトルセットとして表現されうる。算出された加速度及び慣性データは、同じオブジェクトの動きの異なる測定値を表す。したがって、算出された加速度及び慣性データは、第1のベクトルセットのそれぞれのベクトルが第2のベクトルセットのベクトルに対応する、合致したベクトルセットを含む。対応するベクトルは、同じ原点と同じ大きさを有する。2つのベクトルセットの唯一の違いは、それらが測定された参照フレームである。したがって、慣性データは、参照フレームを揃えるために必要な空間内の回転を求めることにより、算出された加速度と融合される。位置センサ405の視野が未知である一つの実施の形態において、慣性データを算出された加速度に融合させるために、スケーリング変換が実行される。
【0060】
一つの実施の形態において、ピッチ及びヨーは、複数の可能性のある第1の角度(ピッチを表す)及び複数の可能性のある第2の角度(ヨーを表す)により、一つのベクトルセットのベクトルを回転させることにより求められる。可能性のある第1の角度及び可能性のある第2の角度の異なる多数の組み合わせが試されてもよい。回転された第1のセットのベクトルと対応する第2のセットのベクトルとの間の差を最小にする、可能性のある第1の角度と可能性のある第2の角度の組み合わせが、正しい第1及び第2の角度である。最急降下法、部分最小二乗法、最小二乗適合技術、又は他の誤差最小化技術が、正しい第1及び第2の角度を算出するために試される、可能性のある第1の角度及び可能性のある第2の角度の組み合わせの数を最小限にするために用いられてもよい。
【0061】
オブジェクトの動きを含むそれぞれのベクトルViは、第1のベクトルセットにおいてはVi1と表され、第2のベクトルセットにおいてはVi2と表される。第1のベクトルセットにおける全てのベクトルVi1について、ベクトルVi1は、第1及び第2の可能性のある角度に基づいて三次元回転により変換され、変換されたベクトルVi1’となる。それぞれのベクトルViについて、Vi1’とVi2との間の差Dθが算出される。差は、誤差最小化技術を用いて結合されてもよい。例えば、それぞれのベクトル組の差が平均化されてもよい。一つの実施の形態において、第1のベクトルセットの回転されたベクトルVi1’と、第2のベクトルセットのマッチしたベクトルVi2との間の差の平均化された和が算出される。別の実施の形態において、例えば次のアルゴリズムを用いて、差の二乗の和が計算されてもよい。
【数4】
他の誤差最小化技術がベクトルの差を結合するために用いられてもよい。
【0062】
最小のDθを与える角θが、正しい推定された三次元の角度である。したがって、三次元の角度θを与える、可能性のある第1の角度及び可能性のある第2の角度が、位置センサ405のピッチと、位置センサ405とオブジェクト410との間の相対ヨーを表す。いずれのセットのベクトルが回転されたとしても2つのベクトルセットの間の角度は同じになるから、いずれのセットのベクトルが回転されるかは問題ではない。
【0063】
別の実施の形態において、慣性データは、座標系を揃える三次元回転を算出することにより、算出された加速度に調整される。三次元回転は、軸及び角度により定義されうる。三次元回転の回転軸は、第1のベクトルセットのベクトルVi1と第2のベクトルセットのベクトルVi2とのクロス積をとることにより求められる。
【数5】
【0064】
下記のように、Vi1のVi2への投影を表すスカラーsを求めるために、Vi1とVi2のドット積(内積)もとられる。
【数6】
【0065】
三次元回転角θは、下記のように、回転軸及びスカラーを用いて求められる。
【数7】
【0066】
三次元回転は、いずれかの参照フレームに分解され、その参照フレームのそれぞれの軸の周りの回転角が決定されてもよい。例えば、三次元回転は、x軸の周りの回転量を決定するためにyz平面(x軸に垂直な平面)に投影されてもよく、y軸の周りの回転量を決定するためのxz平面(y軸に垂直な平面)に投影されてもよい。三次元の角度がワールド参照フレームに投影される場合、重力に沿った軸の周りの回転はヨーであり、重力に垂直で位置センサの画像平面内の軸の周りの回転はピッチである。三次元回転は、例えば、3つの直交する行列、回転行列、又は四元数を用いて、参照フレームの軸の周りの回転に分解されうる。
【0067】
四元数は、実数上の四次元のノルム多元体を形成する。四元数は、行列変換よりも高速に計算することができ、その直交性を失わないから、座標変換の有用な表現を提供する。回転の四元数表現は、四次元ベクトルとして記述される。
【数8】
【0068】
ワールド参照フレームにおいて、四元数の要素は下記のように表現される。
【数9】
【数10】
【数11】
【数12】
ここで、ex、ey、及びezは、それぞれ、オブジェクトの参照フレームのx、y、及びz軸に平行な単位ベクトルを表す。
【0069】
四元数は、参照フレームに揃えることが必要なヨー及びピッチ回転の双方を完全に表現する。しかしながら、さらに直感的な結果を提供するために、四元数は、下記の式によりピッチ及びヨーのオイラー角に変換されてもよい。ロール、ピッチ、及びヨーは、次式にしたがって、四元数から計算されうる。
【数13】
【数14】
【数15】
【0070】
ヨー、ピッチ、及びロール角は、それぞれのベクトル組について決定されてもよい。ヨー、ピッチ、及びロール角は、位置センサのピッチと、位置センサ405と追跡対象オブジェクト410との間の相対ヨーとを決定するために結合されてもよい。ヨー、ピッチ、及びロール角は、平均、重み付き平均、又は他の結合関数を用いて結合されてもよい。
【0071】
一つの実施の形態において、位置センサは、ゼロのロールを有すると仮定される。したがって、一つの実施の形態において、ベクトル組のロールもゼロであると仮定されてもよい。しかし、ある実施の形態において、ノイズが、ベクトル組のベクトル間でロールがゼロではないことを示す差を生じる可能性がある。このような実施の形態において、ロールはゼロであるとは仮定されず、代わりに、後述のように算出されてもよい。または、ロールはゼロであると仮定されてもよく、ロールがゼロではないことを示すベクトル組は無視されてもよい。一つの実施の形態において、ロールは、ロールがゼロではないことを示す事例においてもゼロであると仮定される。ベクトル組を無視するよりも、ベクトル組について、ロールがゼロであると仮定されることにより生じる差の値が決定されてもよい。最小の差の値を有するベクトル組が、位置センサのピッチと、位置センサ405と追跡対象オブジェクト410との間の相対ヨーを決定するために用いられてもよい。ノイズを補償する他の方法が用いられてもよい。
【0072】
図5は、一つの実施の形態における、プレイヤーにより把持された異なるコントローラの位置を決定するために視覚情報が用いられる、マルチプレイヤー環境500の概略図を示す。マルチプレイヤー環境500において、位置センサ508はプレイフィールド518の画像データを取得し、画像データはボールが設けられたコントローラC1、C2、C4、及びC5の位置を取得するために分析される。距離dz1、dz2、dz4、及びdz5は、取得された画像におけるそれぞれのボールの形状及び大きさを分析することにより推定される。計算装置502は、取得された座標及び距離を用いて、画面504におけるプレイヤーの表現としてアバター512a及び512bをそれぞれ生成する。良好な画像認識のための典型的な距離は、約10フィート(3メートル)である。視覚認識の一つの利点は、コントローラを変更する必要なく、画像取得及び画像認識の向上をシステムに取り込めることである。
【0073】
図6は、一つの実施の形態に係る追跡システム較正する方法600の例を示すフロー図である。方法は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(例えば、処理装置上で実行される命令)、又はそれらの組み合わせを含む処理ロジックにより実行されてもよい。一つの実施の形態において、方法600は、図1の計算装置115により実行される。一つの実施の形態において、方法600は、ゲーム又は他のアプリケーションが計算装置115上で起動されるたびに実行される。または、方法600は、追跡対象オブジェクトが一定期間不動であった後に動きが検出されるたびに実行されてもよい。
【0074】
図6を参照して、ブロック605において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるときに、位置センサから追跡対象オブジェクトの位置データ(例えば画像の位置及び画像の大きさ)を取得する。一つの実施の形態において、計算装置は、位置センサの二次元参照フレームにおけるオブジェクトの画像を取得する。
【0075】
ブロック610において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるときに、追跡対象オブジェクトから慣性データを取得する。取得された慣性データは、追跡対象オブジェクトの参照フレームのデータであってもよい。
【0076】
一つの実施の形態において、位置センサの参照フレームと慣性センサについて用いられる参照フレームとの間の相対的な差は、不変に保たれる必要がある。しかしながら、オブジェクトのピッチ及びロールが変化するにつれて、カメラの参照フレームに対するオブジェクトの参照フレームは変化する。したがって、ブロック615において、追跡システムは、オブジェクトがリッチモーション経路に沿って移動されるときに、追跡対象オブジェクトのピッチ及び/又はロールがほぼ固定されたままであるか否かを決定する。追跡対象オブジェクトの方向がほぼ固定されたままであれば、方法はブロック625に進む。しかし、追跡対象オブジェクトのピッチ及び/又はロールが変化している場合は、方法はブロック620へ続く。一つの実施の形態において、ピッチ及びロールの変化の平均がゼロであれば、参照フレーム間の変化により生じる誤差はほぼ相殺されうる。これは、例えば、リッチモーション経路が環状の経路である場合に達成されうる。このような条件下では、方法はブロック625に進む。
【0077】
ブロック620において、位置センサは、取得された慣性データを三次元ワールド参照フレームに変換する。この変換は、追跡対象オブジェクトに設けられた慣性センサは常時下向きの重力を測定するためになしうる。ブロック625において、画像位置は、(例えば、位置センサの二次元座標系から)位置センサの三次元座標系に変換される。
【0078】
ブロック630において、位置センサの三次元座標系における追跡対象オブジェクトの加速度が算出される。追跡対象オブジェクトの加速度を算出するために、画像位置の時間に関する二階微分がとられる。一つの実施の形態において、加速度は、位置データが取得されるとリアルタイムに算出される。または、加速度は定期的に(例えば10ミリ秒ごと、0.5秒ごとなど)算出されてもよいし、リッチモーションが完了したときに算出されてもよい。
【0079】
ブロック635において、取得された慣性データは、位置センサの較正を完了するために、算出された加速度に融合される。慣性データと算出された加速度の融合は、参照フレームを揃えるために必要な回転の決定を含む。回転の決定は、位置センサのピッチ及び位置センサと追跡対象オブジェクトの間の相対ヨーの算出を含む。一つの実施の形態において、ピッチ及びヨーは、可能性のある複数の第1の角度及び可能性のある複数の第2の角度により、一つのベクトルセットのベクトルを回転させ、参照フレーム間で最も良い整列を与える、可能性のある第1の角度及び可能性のある第2の角度を選択することにより求められる。別の実施の形態において、ピッチ及びヨーは、明示的に求められる。ピッチ及びヨーは、回転行列、オイラー角を定義する3つの直交行列、単位四元数などを用いて求められてもよい。
【0080】
図7は、追跡システムを較正する方法700の別の実施の形態のフロー図を示す。方法は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(例えば、処理装置上で実行される命令)、又はそれらの組み合わせを含む処理ロジックにより実行されてもよい。一つの実施の形態において、方法700は、図1の計算装置115により実行される。一つの実施の形態において、方法700は、ゲーム又は他のアプリケーションが計算装置115上で起動されるたびに実行される。または、方法700は、追跡対象オブジェクトが一定期間不動であった後に動きが検出されるたびに実行されてもよい。
【0081】
図7を参照して、ブロック705において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるとき、追跡対象オブジェクトの位置データ(例えば、画像位置及び画像サイズ)を位置センサから取得する。ブロック710において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるとき、追跡対象オブジェクトから慣性データを取得する。慣性データは、追跡対象オブジェクトの参照フレーム又はワールド参照フレームにおけるデータであってもよい。
【0082】
ブロック715において、位置データ(例えば画像位置)が、位置センサの三次元座標系に変換される。ブロック720において、位置センサの三次元座標系における追跡対象オブジェクトの加速度が算出される。追跡対象オブジェクトの加速度を算出するために、画像位置の時間に関する二階微分がとられてもよい。
【0083】
ブロック725において、計算装置は、慣性データが算出された加速度に同期されているか否かを判断する。算出された加速度のそれぞれのベクトルは、慣性データのベクトルに対応する。しかし、通信時間や計算時間などの遅延のために、慣性データのベクトルと、算出された加速度の対応するベクトルとの間のタイミングがずれる可能性がある。慣性データが算出された加速度に同期されていない場合、方法はブロック730に続く。慣性データと算出された加速度が同期されている場合、方法はブロック735に続く。
【0084】
ブロック730において、計算装置は、ベクトルの大きさに基づいて、第1のセット(慣性データ)のベクトルと、時間的に近接した第2のセット(算出された加速度)のベクトルをマッチングする。例えば、第1のセットのベクトルが、第2のセットのベクトルから1/10秒ずれているが、2つのベクトルの大きさはほぼ等しい場合、2つのベクトルは時間的に揃えられてもよい。第1のセットの全てのベクトルを第2のセットの対応するベクトルに揃えることにより、慣性データ及び算出された加速度が同期される。
【0085】
ブロック735において、取得された慣性データは、位置センサの較正を完了するために、算出された加速度に調和される。慣性データと算出された加速度の調和は、参照フレームを揃えるために必要な回転の決定を含む。慣性データと算出された加速度の調和は、位置センサのピッチ及び位置センサと追跡対象オブジェクトの間の相対ヨーの算出を含む。
【0086】
ピッチ及びヨーは、それぞれのベクトルの組について、慣性データ及び算出された加速度からの対応するベクトルから別々に算出されうる。信号ノイズのため、異なるベクトルの組について算出されたピッチ及びヨーは一致しない可能性がある。一つの実施の形態において、ピッチ及びヨーは、より正確な解を提供するために、複数のベクトルの組にわたって平均化される。ベクトルの組は、ピッチ及びヨーの精度を更に向上させるために、重み付けされ、及び/又は、フィルタリングされてもよい。
【0087】
一つの実施の形態において、ブロック740において、加速度のしきい値よりも小さいベクトルは、算出された加速度及び慣性データから除去される。取得された慣性データは、慣性データに付随する信号ノイズの量により定義される不正確さを有する。オブジェクトにより測定された加速度の大きさが小さくなるにつれて、信号ノイズ比は大きくなる。信号ノイズ比が小さくなると、慣性データはより不正確になる。したがって、最小限の加速度のしきい値が、誤差を最小限にするために設定されてもよい。
【0088】
一つの実施の形態において、ブロック745において、ベクトルは大きさに基づいて重み付けされる。より大きなベクトル(より大きな加速度を表す)は、小さなベクトルよりも重く重み付けされる。ベクトルの大きさが大きいほど、ベクトルはノイズにより影響されにくい(例えば、信号ノイズ比が大きい)。したがって、ベクトルを重み付けすることにより、較正の精度を向上させることができる。ベクトルは、大きさに基づいて比例的に重み付けされてもよいし、大きさの二乗に基づいて重み付けされてもよいし、他の重み付け関数にしたがって重み付けされてもよい。いくつかの重み付け技術について、ブロック740において実行されるようなベクトルのフィルタリングは必要とされなくてもよい。例えば、重み付け関数が、ベクトルの大きさの二乗に基づく場合、小さいベクトルは、ほぼゼロになるように重み付けされる。
【0089】
方法600及び700は、オブジェクトの参照フレーム及び/又はワールド参照フレームに対する位置センサの向きを、ユーザが便利かつ簡易に実行できるような態様で検出して、追跡システムを較正する。双方の方法により、計算装置は、最小限のユーザ入力に基づいて、追跡システムを正確に較正することができる。
【0090】
カメラを含むいくつかの追跡システムにおいて、カメラの視野(field of view:FOV)は既知である可能性がある。しかし、いくつかの追跡システムは、カメラの視野を識別する情報を含まない可能性がある。例えば、未知の固定された視野を有するカメラが追跡システムに含まれうる。または、複数の既知の視野の設定を有するが、いずれの視野の設定が選択されたのかが直ちに明確ではないカメラが追跡システムに含まれうる。カメラの視野が未知であるこのような実施の形態において、実際の視野が決定される、又は、視野が求められるまで、異なる視野が推測されうる。
【0091】
カメラの視野が未知である一つの実施の形態において、複数の異なる視野が仮定される。方法600及び700が、それぞれの仮定された視野について独立して実行されてもよい。回転された(例えば位置センサの)参照フレームと、回転されない参照フレーム(例えばワールド参照フレーム)との間の差を最小にする仮定された視野が、正しい視野であると決定される。
【0092】
いくつかの追跡システムにおいて、追跡対象オブジェクトのサイズは未知である可能性がある。このような実施の形態において、実際のオブジェクトの大きさが決定される、又は、オブジェクトの大きさが求められるまで、異なるオブジェクトの大きさが推測されうる。オブジェクトの大きさが未知である一つの実施の形態において、複数の異なるオブジェクトの大きさが仮定される。方法600及び700が、それぞれの仮定されたオブジェクトの大きさについて独立して実行されてもよい。回転された(例えば位置センサの)参照フレームと、回転されない参照フレーム(例えばワールド参照フレーム)との間の差を最小にする仮定されたオブジェクトの大きさが、正しいオブジェクトの大きさであると決定される。
【0093】
未知の視野を求める一つの方法は、カメラの撮像平面上への既知のサイズの追跡対象球の楕円投影に基づく。視野が既知であれば、同様の方法が、未知の球のサイズを求めるために用いられうる。球が視線に垂直でない平面上にある場合、球は楕円として投影される。この現象は、図8において観測することができる。図8は、本発明の一つの実施の形態に係る、カメラの画像平面815における異なる位置においてカメラの画像平面上に投影された球を示す。図示されるように、画像平面815の中心810に球が位置するとき、完全な円805がカメラの画像平面上に投影される。球が画像平面815の中心810から離れると、球は楕円として投影される。それぞれの楕円は、長軸825及び短軸820により表現することができる。図示されるように、楕円の短軸820は、常に視野815の中心810の方へ向いている。球が画像平面815の中心810から離れるほど、楕円の短軸820は短くなる。
【0094】
図9は、カメラの撮像平面上への球の楕円投影を用いてカメラの視野を決定する方法900の一つの実施の形態のフロー図を示す。方法900は、カメラの視野が既知である場合に、未知のオブジェクトの大きさを決定するために用いられてもよい。方法は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(例えば、処理装置上で実行される命令)、又はそれらの組み合わせを含む処理ロジックにより実行されてもよい。一つの実施の形態において、方法900は、図1の計算装置115により実行される。
【0095】
図9に戻り、ブロック905において、計算装置は、球の画像データを取得する。球の画像データは、カメラの撮像平面上に、短軸が画像の中心に向いた楕円として投影される。ブロック910において、計算装置は、カメラの撮像平面における球の位置を決定する。楕円の中心が探索され、画像の中心からの距離として表現される。ブロック915において、楕円の長軸a及び短軸bは、次式にしたがって計算される。
【数16】
【数17】
ここで、ixは画像の水平方向の大きさを(例えばピクセル単位で)表し、iyは画像の垂直方向の大きさを(例えばピクセル単位で)表し、Zはカメラと球との間の距離であり、rは球の半径であり、fは投影された楕円の中心から画像の中心までの距離(例えばピクセル単位)である。
【0096】
数式16及び17は、図10を参照することにより、より良く理解されうる。図10は、本発明の一つの実施の形態において、カメラの撮像平面1015上に楕円1010として投影された球1005を示す。
【0097】
図9に戻り、ブロック920において、計算装置は、画像内の投影の位置と楕円の長軸と短軸との間の比に基づいて、カメラの視野を算出する。短軸に対する長軸の比は、画像内の楕円の中心の位置に依存する。したがって、比は、画像内の楕円の位置に基づいて決定されうる。さらに、球とカメラとの間の距離は、球の半径よりもずっと長いと予想される。このような予想が成立する場合、(z2−r2)はほぼz2に等しい。したがって、長軸と短軸との間の比は、次式で表現されうる。
【数18】
【0098】
距離fは、次式で表現されうる。
【数19】
【0099】
距離fは、視野に変換されうる。距離fを用いて、水平方向の視野FOVxと垂直方向の視野FOVyを、標準的な三角関数により次式のように算出することができる。
【数20】
【数21】
ここで、wは画像の幅をピクセルで表したものであり、hは画像の高さをピクセルで表したものである。
【0100】
ブロック925において、算出された視野は、可能性のある視野の設定と比較される。実際の視野は、算出された視野に最も近い視野の設定の視野であると決定される。投影された画像内の球の楕円変形がわずかである(例えば、楕円の長軸と短軸との間の差がわずかしかない)一つの実施の形態において、算出された視野の誤差は大きい。このような実施の形態において、算出された視野は、視野の範囲である。実際の視野は、視野の範囲内のどこにでもなりうる。視野の範囲は視野の設定と比較され、算出された視野の範囲内にある視野の設定が視野であると決定される。
【0101】
ブロック930において、カメラを用いて三次元空間内で球を追跡するために視野が用いられる。方法はこれで終了する。
【0102】
図11は、本発明の一つの実施の形態に関連して、コントローラの位置を決定するために用いられうるハードウェア及びユーザインタフェースを示す。図11は、本発明の一つの実施の形態に係る三次元コントローラ位置探索システムの実装に互換性のあるコンソールであるソニープレイステーション3(登録商標)エンタテインメント装置の全体システム構成を概略的に示す。システムユニット1400とともに、システムユニット1400に接続可能な種々の周辺装置が設けられる。システムユニット1400は、セルプロセッサ1428、ランバス(登録商標)ダイナミックランダムアクセスメモリ(XDRAM)ユニット1426、専用のビデオランダムアクセスメモリ(VRAM)ユニット1432とともに設けられたリアリティシンセサイザーグラフィックスユニット1430、及び入出力ブリッジ1434を備える。システムユニット1400は、さらに、入出力ブリッジ1434を介してアクセス可能な、ディスク1440Aから読み出すためのブルーレイ(登録商標)ディスクBD−ROM光ディスクリーダ1440及び脱着可能なスロットインハードディスクドライブ(HDD)1436を備える。システムユニット1400は、オプションで、入出力ブリッジ1434を介して同様にアクセス可能な、コンパクトフラッシュ(登録商標)メモリカード、メモリスティック(登録商標)メモリカードなどを読み出すためのメモリカードリーダ1438をさらに備える。
【0103】
入出力ブリッジ1434は、さらに、複数のユニバーサルシリアルバス(USB)2.0ポート1424、ギガビットイーサネット(登録商標)ポート1422、IEEE802.11b/g無線ネットワーク(Wi−Fi)ポート1420、7つのブルートゥース(登録商標)接続までサポート可能なブルートゥース無線リンクポート1418に接続する。
【0104】
動作中、入出力ブリッジ1434は、1以上のゲームコントローラ1402〜1403からのデータを含む全ての無線、USB及びイーサネット(登録商標)データを扱う。例えば、ユーザがゲームをプレーするとき、入出力ブリッジ1434は、ブルートゥースリンクを介してゲームコントローラ1402〜1403からデータを受信し、セルプロセッサ1428に伝える。セルプロセッサ1428は、ゲームの現在の状態をそのように更新する。
【0105】
無線、USB及びイーサネット(登録商標)ポートは、ゲームコントローラ1402〜1403に加えて、リモートコントローラ1404、キーボード1406、マウス1408、ソニープレイステーションポータブル(登録商標)エンタテインメント装置などの携帯型エンタテインメント装置1410、アイトイ(登録商標)ビデオカメラなどのビデオカメラ1412、マイクロフォンヘッドセット1414、及びマイクロフォン1415などの他の周辺装置との接続も提供する。これらの周辺装置は、原則として、システムユニット1400に無線で接続されてもよい。例えば、携帯型エンタテインメント装置1410は、Wi−Fiアドホック接続を介して通信してもよいし、マイクロフォンヘッドセット1414は、ブルートゥースリンクを介して通信してもよい。
【0106】
これらのインタフェースの提供は、プレイステーション3装置が、ディジタルビデオレコーダ(DVR)、セットトップボックス、ディジタルカメラ、携帯型メディアプレーヤ、ボイスオーバーIP電話、携帯電話、プリンタ、及びスキャナなどの他の周辺装置との互換性をも潜在的に有することを意味する。
【0107】
さらに、プレイステーション(登録商標)又はプレイステーション2(登録商標)装置により用いられる種類のメモリカード1448の読み出しを可能にするレガシーメモリカードリーダ1416が、USBポート1424を介してシステムユニットに接続されてもよい。
【0108】
ゲームコントローラ1402〜1403は、ブルートゥースリンクを介してシステムユニット1400と無線通信可能であるか、USBポートを介して接続して、ゲームコントローラ1402〜1403のバッテリを充電するための電源も提供可能である。ゲームコントローラ1402〜1403は、メモリ、プロセッサ、メモリカードリーダ、フラッシュメモリなどの永続メモリ、LED又は赤外光などの光照射部、超音波通信のためのマイクロフォン及びスピーカ、音響チャンバ、ディジタルカメラ、内部クロック、ゲームコンソールに面した球などの認識可能な形状、及びブルートゥース、WiFiなどのプロトコルを用いた無線通信を含んでもよい。
【0109】
図2A〜2Bにおいて前述したように、ゲームコントローラ1402は両手で用いられるように設計されたコントローラであり、ゲームコントローラ1403は、ボールが設けられた、片手で扱うコントローラである。1以上のアナログジョイスティック及び従来の制御ボタンに加えて、ゲームコントローラは、三次元位置決定が可能である。したがって、ゲームコントローラのユーザのジェスチャー及び動きが、従来のボタン又はジョイスティックのコマンドに加えて、又はそれに代えて、ゲームに対する入力として翻訳されてもよい。オプションとして、プレイステーションポータブル装置などの他の無線通信可能な周辺装置がコントローラとして用いられてもよい。プレイステーションポータブル装置の場合、装置の画面に、更なるゲーム又は制御情報(例えば、制御命令又はライフの数)が提供されてもよい。ダンスマット(図示せず)、光線銃(図示せず)、ステアリングホイール及びペダル(図示せず)、又は早押しクイズゲームのための単一又はいくつかの大きなボタンなどの専用コントローラ(図示せず)などの他の代替又は追加の制御装置が用いられてもよい。
【0110】
リモートコントローラ1404は、ブルートゥースリンクを介してシステムユニット1400と無線通信可能である。リモートコントローラ1404は、ブルーレイディスクBD−ROMリーダ1440の動作及びディスク内容のナビゲーションのために適した制御を備える。
【0111】
ブルーレイディスクBD−ROMリーダ1440は、従来の記録済み及び記録可能なCD及びいわゆるスーパーオーディオCDに加えて、プレイステーション及びプレイステーション2装置に互換なCD−ROMを読み出し可能である。リーダ1440は、従来の記録済み及び記録可能なDVDに加えて、プレイステーション2及びプレイステーション3装置に互換なDVD−ROMを更に読み出し可能である。リーダ1440は、さらに、従来の記録済み及び記録可能なブルーレイディスクだけでなく、プレイステーション3装置に互換なBD−ROMを読み出し可能である。
【0112】
システムユニット1400は、生成された、又は、リアリティシンセサイザーグラフィックスユニット1430を介してプレイステーション3装置によりデコードされた音声及び映像を、音声及び映像コネクタを介して、モニタ又はディスプレー1444と1以上のラウドスピーカ1446を有するテレビジョンセットなどの表示及び音声出力装置1442に対して供給可能である。音声コネクタ1450は、従来のアナログ及びディジタル出力を含んでもよく、映像コネクタ1452は、コンポーネントビデオ、S−ビデオ、コンポジットビデオ、及び1以上の高解像度マルチメディアインタフェース(HDMI)出力などを含んでもよい。結果として、映像出力は、PAL又はNTSC、又は、720p、1080i又は1080p高解像度の形式であってもよい。
【0113】
音声処理(生成、デコードなど)は、セルプロセッサ1428により実行される。プレイステーション3装置のオペレーティングシステムは、ドルビー(登録商標)5.1サラウンド音声、ドルビーシアターサラウンド(DTS)、及びブルーレイディスクからの7.1サラウンド音声のデコードをサポートする。
【0114】
本発明の一つの実施の形態によれば、ビデオカメラ1412は、単一の電荷結合素子(CCD)、LEDインジケータ、及びハードウェアベースのリアルタイムデータ圧縮エンコード装置を備え、圧縮されたビデオデータは、システムユニット1400によりデコードするために、画像間ベースのMPEG(motion picture expert group)スタンダードなどの適当な形式で送信されてもよい。カメラLEDインジケータは、例えば逆光条件を知らせるなどのシステムユニット1400からの適切な制御データに応答して光る。ビデオカメラ1412の実施の形態は、USB、ブルートゥース、又はWi−Fiの通信ポートを介してシステムユニット1400に接続してもよい。ビデオカメラの実施の形態は、1以上の結合されたマイクロフォンを含み、音声データを送信可能であってもよい。ビデオカメラの実施の形態において、CCDは、高精細ビデオキャプチャに適した解像度を有してもよい。使用中、ビデオカメラにより撮像された画像は、例えば、ゲーム内に組み込まれてもよいし、ゲーム制御入力として解釈されてもよい。カメラの別の実施の形態において、カメラは、赤外光を検出するのに適した赤外線カメラである。
【0115】
一般に、システムユニット1400の通信ポートの一つを介して、ビデオカメラ又はリモートコントローラなどの周辺装置との間で発生するデータ通信を成功させるために、デバイスドライバなどの適切なソフトウェアが提供されるべきである。デバイスドライバの技術は既知であり、ここでは詳述しないが、本実施の形態においてデバイスドライバ又は類似のソフトウェアインタフェースが要求されることは、当業者には理解されるところである。
【0116】
図12は、本発明の一つの実施の形態における、命令の処理に利用可能な追加のハードウェアを示す。図11のセルプロセッサ1428は、メモリコントローラ1560及びデュアルバスインタフェースコントローラ1570A、1570Bを備える外部入出力構成、パワープロセッシングエレメント(PPE)1550と呼ばれるメインプロセッサ、シナジスティックプロセッシングエレメント(SPE)1510A〜Hと呼ばれる8個のコプロセッサ、要素相互接続バス1580と呼ばれる、上記の要素を接続する環状データバスの4つの基本要素を備えた構成を有する。セルプロセッサの全体の浮動小数点演算は、プレイステーション2装置のエモーションエンジンの6.2Gフロップスであるのに対して、218Gフロップスである。
【0117】
パワープロセッシングエレメント(PPE)1550は、3.2GHzの内部クロックで動作するパワーPC(PowerPC)コア(PPU)1555に互換な、双方向平行マルチスレッドパワー1470に基づいている。これは、512kBのレベル2(L2)キャッシュ及び32kBのレベル1(L1)キャッシュを備える。PPE1550は、クロックサイクルごとに8つの単精度演算を行うことができ、これは3.2GHzにおいて25.6ギガフロップスにあたる。PPE1550の主要な役割は、ほとんどの計算作業負荷を扱うSPE1510A〜Hのためのコントローラとして機能することである。動作において、PPE1550は、ジョブのキューを保持し、SPE1510A〜Hのジョブをスケジューリングし、それらの進行を監視する。それぞれのSPE1510A〜Hは、ジョブを取ってきて実行するのが役割であるカーネルを実行し、PPE1550に同期される。
【0118】
それぞれのSPE1510A〜Hは、シナジスティックプロセッシングユニット(SPU)1520A〜Hを備え、それぞれのメモリフローコントローラ(MFC:Memory Flow Controller)1540A〜Hは、ダイナミックメモリアクセスコントローラ(DMAC:Dynamic Memory Access Controller)1542A〜H、メモリ管理ユニット(MMU)1544A〜H、及びバスインタフェース(図示せず)を備える。それぞれのSPU1520A〜Hは、クロックが3.2GHzで、原則として4GBまで拡張可能な256kBのローカルRAM1530A〜Hを備える、RISCプロセッサである。それぞれのSPEは、理論上、25.6GFLOPSの単精度性能を与える。SPUは、4つの単精度浮動小数演算、4つの32ビット演算、8つの16ビット整数演算、又は16の8ビット整数演算を、1つのクロックサイクルで実行可能である。同じクロックサイクルにて、メモリ命令を実行することもできる。SPU1520A〜Hは、システムメモリXDRAM1426に直接アクセスしない。SPU1520A〜Hにより生成される64ビットのアドレスは、MFC1540A〜Hに渡され、要素相互接続バス1580及びメモリコントローラ1560を介してメモリにアクセスするためのDMAコントローラ1542A〜Hに命令される。
【0119】
要素相互接続バス(EIB)1580は、セルプロセッサ1428の内部の論理的に巡回した通信バスである。EIBは、上述のプロセッサエレメント、すなわち、PPE1550、メモリコントローラ1560、デュアルバスインタフェース1570A、B、及び8つのSPE1510A〜Hの、合計12の要素を接続する。要素は、クロックサイクルごとに8バイトの速度でバスを同時に読み、及び書き込むことができる。前述したように、それぞれのSPE1510A〜Hは、より長いリード又はライトシーケンスをスケジュールするためのDMAC1542A〜Hを備える。EIBは4つのチャンネルを備え、2つは時計回りで、2つは反時計回りの方向である。12の要素の間で、任意の2つの要素の間のうち最も長いデータフローは、適切な方向に6ステップとなる。EIBの12スロットの帯域の理論上のピークの瞬間は、要素間の調停を通じて全てが利用されたとき、クロックごとに96バイトである。これは、クロックレートが3.2GHzのときの理論上のピークバンド幅の307.2GB/s(ギガバイト毎秒)と同じである。
【0120】
メモリコントローラ1560は、ランバス社により開発されたXDRAMインタフェース1562を備える。メモリコントローラは、理論上はピークバンド幅毎秒25.6ギガバイトで、ランバスXDRAM1426と接続する。
【0121】
デュアルバスインタフェース1570A、Bは、ランバスフレックスIO(登録商標)システムインタフェース1572A、Bを備える。インタフェースは、それぞれが8ビット幅である、入力5経路、出力7経路の12チャンネルに組織化される。これは、セルプロセッサ及びコントローラ170Aを介した入出力ブリッジ700及びコントローラ170Bを介したリアリティシミュレータグラフィックスユニット200の間の62.4GB/s(出力36.4GB/s、入力26GB/s)の理論的ピークバンド幅を提供する。
【0122】
セルプロセッサ1428によりリアリティシミュレータ(Reality Simulator)グラフィクスユニット1430に送られたデータは、典型的には、表示リスト、頂点の描画命令列、ポリゴンに対するテクスチャの適用、光条件の特定などを含む。
【0123】
上述の説明は、例示を意図しており、制限を意図していないことが理解されるべきである。上述の説明を読み、理解した当業者には、多数の別の実施の形態が明らかとなろう。本発明が、いくつかの特定の実施の形態に関して説明されたが、本発明は説明された実施の形態に限られず、添付された特許請求の範囲の精神及び範囲内で変更及び代替が可能であることは、当業者に認識されるところである。したがって、詳細な説明は、限定ではなく例示であるとみなされるべきである。本発明の範囲は、特許請求の範囲に与えられる全ての範囲の均等物とともに、特許請求の範囲を参照して決定されるべきである。
【技術分野】
【0001】
本出願は、米国仮出願第61/138,499号(2008年12月17日出願)及び米国出願第12/435,386号(2009年5月4日出願)に関するとともに、それらの優先権を主張し、それらの出願は本明細書に援用される。
【0002】
本出願は、同時係属中の米国出願第12/435,285号(2009年5月4日出願、発明の名称「追跡システムにおける角度誤差の補正」)に関する。
【0003】
本発明は、一般に、追跡システムの較正に関し、とくに、オブジェクトの位置データ及びオブジェクトに関する更に取得した又は既知のデータに基づいてオブジェクトの位置を追跡するために用いられる追跡システムの較正に関する。
【背景技術】
【0004】
コンピュータゲーム産業において、ユーザとゲームシステムとの間のインタラクションを増加させるゲームの開発がトレンドになっている。よりリッチな対話式の体験を達成するための一つの方法は、ゲームコントローラを用いて、ゲームシステムがゲームコントローラの動きを追跡することによりユーザの動きを追跡し、その動きをゲームの入力として用いることである。一般に、ジェスチャー入力は、コンピュータシステム、ビデオゲームコンソール、スマートアプライアンスなどの電子機器を、オブジェクトを追跡するビデオカメラ又は他の位置センサにより取得されたジェスチャーに反応させるために適用される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ユーザの位置及び動きの信頼できる測定を行うためには、一般に、ゲームシステムを較正する必要がある。このような較正は、ゲームシステムが使用されるたびに必要となる。従来のシステムにおいては、ゲームシステムの較正は、ビデオカメラの傾き、ユーザからビデオカメラまでの距離などのプロパティをユーザが測定するための制御された正確なプロセスを必要とする。従来のゲームシステムは、このような制御された正確なプロセスなしでは較正を実行することができない。
【課題を解決するための手段】
【0006】
本発明は、本発明の実施の形態を説明するために用いられる、下記の説明及び添付の図面を参照することにより、最も良く理解されうる。
【図面の簡単な説明】
【0007】
【図1】本発明の一つの実施の形態における、追跡システムの透視図を示す図である。
【0008】
【図2】図2(a)は、本発明の一つの実施の形態における、ボール部を有するゲームコントローラを示す図である。
【0009】
図2(b)は、本発明の一つの実施の形態における、ボール部を有する別のゲームコントローラを示す図である。
【0010】
図2(c)は、本発明の一つの実施の形態における、ユーザに配置された複数のモーションキャプチャボールを示す図である。
【0011】
【図3】本発明の一つの実施の形態における、リッチモーション経路に沿って移動されるオブジェクトの例を示す図である。
【0012】
【図4】本発明の一つの実施の形態における、追跡システムのブロック図を示す図である。
【0013】
【図5】一つの実施の形態における、マルチプレイヤー環境の概略図を示す図である。
【0014】
【図6】追跡システムを較正する方法の一つの実施の形態のフロー図を示す図である。
【0015】
【図7】追跡システムを較正する方法の別の実施の形態のフロー図を示す図である。
【0016】
【図8】本発明の一つの実施の形態に係る、カメラの画像平面における異なる位置に投影された球を示す図である。
【0017】
【図9】カメラの撮像平面上への球の楕円投影を用いてカメラの視野を決定する方法の一つの実施の形態のフロー図を示す図である。
【0018】
【図10】本発明の一つの実施の形態において、カメラの撮像平面上に楕円として投影された球を示す図である。
【0019】
【図11】本発明の一つの実施の形態に関連して、コントローラの位置を決定するために用いられうるハードウェア及びユーザインタフェースを示す図である。
【0020】
【図12】本発明の一つの実施の形態における、命令の処理に利用可能な追加のハードウェアを示す図である。
【発明を実施するための形態】
【0021】
本明細書では、ゲームシステムにおいて用いられる追跡システムを較正するための方法及び装置が説明される。一つの実施の形態において、追跡システムを較正するために、追跡対象オブジェクトが動きに富んだ経路(rich motion path:リッチモーションパス)に沿って移動されるときに、追跡対象オブジェクトの位置データ(例えば画像の位置及び画像の大きさ)が位置センサにより取得される。さらに、追跡対象オブジェクトが動きに富んだ経路に沿って移動されるときに、追跡対象オブジェクトに対応する慣性データが取得される。位置データは、位置センサの三次元座標系に変換される。一つの実施の形態において、画像の位置は、対応する画像の大きさ及び位置センサの視野に基づいて、三次元座標系に変換される。位置センサの視野は、既知であっても未知であってもよい。位置センサの三次元座標系における追跡対象オブジェクトの加速度が算出される。慣性データは、追跡システムを較正するために、算出された加速度と調整される。慣性データと算出された加速度との調整は、位置センサのピッチの算出と、位置センサと追跡対象オブジェクトとの間の相対ヨーの算出を含む。慣性データと算出された加速度との調整は、位置センサの視野の算出を更に含んでもよい。
【0022】
下記の説明においては、特定の数値的な詳細が示される。しかしながら、本発明が、これらの特定の詳細なしに実施されることが可能であることは、当業者には明らかである。いくつかの例において、本発明を不明瞭にするのを避けるために、詳細よりもむしろ、既知の構造及び装置がブロック図の形で示される。
【0023】
下記の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビット上の演算のアルゴリズム及び記号表現の観点から示される。これらのアルゴリズムの記述及び表現は、その成果を最も効果的に他の当業者に伝えるために、データ処理の分野の当業者により用いられる手段である。アルゴリズムは、本明細書において、及び一般的に、所望の結果を達成する自己矛盾のない一連のステップであると理解されている。ステップは、物理量の必要な物理操作である。通常、必然的ではないが、これらの量は格納可能な電気的又は磁気的信号の形式をとり、送信され、結合され、比較され、及びその他の操作を受ける。これらの信号を、ビット、値、要素、記号、文字、項、数などと呼ぶことが、主に共通の使用のために、時に便利であることが立証されている。
【0024】
しかしながら、これらの語及び類義語の全ては、適当な物理量に関連付けられるもので、これらの量に適用される単なる便利なラベルであることに留意するべきである。以下の議論から明らかであるように、とくにそうではないと断らない限り、詳細な説明の全体にわたって、「処理」「計算」「変換」「調整」「決定」などの語を用いた議論は、物理的(例えば電気的)な量としてコンピュータシステムのレジスタ及びメモリ内で表現されるデータを操作し、コンピュータシステムのメモリ又はレジスタ、又は、他の同様な情報ストレージ、通信又は表示装置の中で物理量として同様に表現される他のデータに変換するコンピュータシステム又は同様の電気的計算装置の動作及び処理のことを指すことが理解される。
【0025】
本発明は、また、本明細書の手順を実行するための装置に関する。この装置は、要求される目的のために特別に構築されてもよいし、コンピュータに格納されたコンピュータプログラムにより選択的に作動された又は再構成された汎用コンピュータを備えてもよい。一つの実施の形態において、本明細書の手順を実行するための装置は、ゲームコンソール(例えば、ソニープレイステーション(登録商標)、ニンテンドーWii(登録商標)、マイクロソフトXbox(登録商標)など)を含む。コンピュータプログラムは、例えば、フロッピー(登録商標)ディスクを含む任意の種類のディスク、光ディスク(例えば、コンパクトディスクリードオンリーメモリ(CD−ROM)、ディジタルビデオディスク(DVD)、ブルーレイディスク(登録商標)など)、及び磁気光学ディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光学カード、又は電気的命令を格納するために適した任意の種類の媒体などのコンピュータ読み取り可能な記録媒体に格納されてもよい。
【0026】
マシン読み取り可能な媒体は、マシン(例えばコンピュータ)により読み取り可能な形式で情報を格納又は送信するための任意のメカニズムを含む。例えば、マシン読み取り可能な媒体は、マシン読み取り可能な記録媒体(例えば、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記録媒体、光記録媒体、フラッシュメモリ装置など)、マシン読み取り可能な通信媒体(電気、光、音響又は他の形式の伝送信号、例えば、搬送波、赤外線信号、ディジタル信号など)などを含む。
【0027】
図1は、本発明の一つの実施の形態における、追跡システム100の透視図を示す。追跡システム100は、位置センサ105、位置センサ105により追跡されるオブジェクト110、及び位置センサ105及びオブジェクト110により取得されたデータを処理する計算装置115を含む。一つの実施の形態において、追跡システム100は、ゲームシステムの構成要素である。または、追跡システム100は、モーションキャプチャシステムの構成要素であってもよい。
【0028】
位置センサ105により検知される位置データ(例えば画像)は、撮像平面と撮像平面に垂直なベクトルにより定義される位置センサ105の参照フレーム150内のデータである。本明細書では、参照フレームは、オブジェクトの位置、方向及び他のプロパティを測定するための座標系として定義される。参照フレーム及び座標系という語は、本出願を通して交換可能に用いられる。
【0029】
図示されるように、位置センサ105は、テレビジョンセット120の上面に、床150に対して負のピッチ145をもって設置される。ピッチ145は、位置センサ105の測定平面内にある位置センサの参照フレーム150の水平軸と重力135に垂直な平面との間の角である。ピッチ145がゼロでない値をとる限り、位置センサ105は、ワールド参照フレーム(重力135の向きに沿った軸(例えばy2)を有する参照フレームとして定義される)とは異なる参照フレーム150を有する。
【0030】
本発明の一つの実施の形態において、位置センサ105は標準的なビデオカメラである。この実施の形態において、位置センサ105は、深さ方向の情報(位置センサ105及びオブジェクト110の間の距離)を、オブジェクト110の大きさを特定する予め定義された情報及び/又は位置センサ105の視野(field of view:FOV)を特定する予め定義された情報に基づいて取得してもよい。視野125は、位置センサ105により撮像される所与のシーンの角度範囲である。視野は、カメラのレンズにより発生する画像の歪み(例えばズームの量)を定義する。オブジェクト110が位置センサ105から遠くへ移動するにつれて(すなわち、距離130が増加するにつれて)、位置センサ105により撮像されるオブジェクト110の画像は小さくなる。したがって、位置センサ105に対するオブジェクト110の距離130は、位置センサ105の視野125が既知であれば、追跡対象のオブジェクト110の画像の大きさ(例えば、ピクセルで測定される)の、追跡対象のオブジェクト110の既知の実際の大きさに対する比に基づいて決定できる。視野125又はオブジェクト110の大きさのいずれかが未知であれば、未知の値は、例えば、図9を参照して後述されるようにして求められる。
【0031】
本発明の別の実施の形態において、位置センサ105は、Zカメラ(映像を深さ方向の情報とともに撮像可能な単一レンズのビデオカメラ)又はステレオカメラ(三次元画像を撮像可能な2以上のレンズを有するビデオカメラ)である。この実施の形態において、位置センサ105は、オブジェクト110の大きさを特定するための情報を予め設定することなく、深さ方向の情報を取得することができる。
【0032】
本発明の更に別の実施の形態において、位置センサ105は、超音波センサアレイ又は光検出器などのセンサアレイである。このような位置センサ105は、例えば光又は音の飛行時間又は位相のコヒーレンスを用いて、位置センサ105とオブジェクト110の間の距離を検出し、三角測量を用いてオブジェクト110の垂直及び水平方向の位置を検出する。
【0033】
オブジェクト110は、1以上の慣性センサを含む電子機器である。慣性センサは、単一又は複数の軸に沿った加速度を測定可能でもよく、直線方向だけでなく角加速度を測定可能であってもよい。一つの実施の形態において、オブジェクト110は、図2(a)及び2(b)に示されたゲームコントローラなどの携帯型電子機器又は携帯型電子機器の一部である。別の実施の形態において、オブジェクト110は、図2(c)に示されたモーションキャプチャ(モーキャプ)ボールである。オブジェクト110は、正方形、球、三角形、又はより複雑な形状など、任意の形状を有してもよい。一つの実施の形態において、オブジェクト110は、球状の形状を有する。
【0034】
図2(a)は、本発明の一つの実施の形態における、ボール部205を有するゲームコントローラ200を示す。図2(b)は、本発明の別の実施の形態における、ボール部215を有する別のゲームコントローラ210を示す。ある実施の形態において、ボール部205及び215は、図1のオブジェクト110に相当する。
【0035】
ボール部205及び215は、異なる色であってもよく、一つの実施の形態において、ボール部205及び215は、発光してもよい。球状のボール部が示されているが、ボール205及び215は、球の一部、完全ではない球、アメリカンフットボール又はラグビーで使われるような引き伸ばされたボール、立方体状の形状など、視覚的に追跡する目的のために、他の形状を有していてもよい。一つの実施の形態において、ボール部205及び215は、直径4cmである。しかしながら、より大きい、又は、より小さい大きさであってもよい。より大きい場合は、視覚的に認識しやすい。例えば、直径が5cmのボールでは、4cmのボールに比べて、画像認識におけるピクセル数が約55パーセント多くなる。
【0036】
図2(c)は、本発明の一つの実施の形態における、ユーザ225に配置された複数のモーキャプボール220を示す。モーキャプボール220は、位置センサがモーキャプボール220の間の位置又は角度に基づいてユーザの動きを取得し認識するために、それぞれ近接して接合するようにユーザ225により装着されるマーカである。一つの実施の形態において、モーキャプボール220は、モーションキャプチャスーツに装着される。
【0037】
図1に戻り、オブジェクト110及び位置センサ105は、有線及び/又は無線接続を介して計算装置115に接続される。有線接続は、例えば、IEEE1394(ファイヤーワイヤー(登録商標))ケーブル、イーサネット(登録商標)ケーブル、及びユニバーサルシリアルバス(USB)ケーブルなどを介した接続を含む。無線接続は、例えば、無線忠実(WiFi)接続、ブルートゥース(登録商標)接続、ジグビー(登録商標)接続などを含む。図示された実施の形態において、オブジェクト110は、無線により計算装置115に接続し、位置センサ105は、有線により計算装置115に接続する。
【0038】
計算装置115は、ビデオゲームコンソール、パーソナルコンピュータ、ゲーム機、又は他の計算装置であってもよい。計算装置115は、オブジェクト110からのユーザ入力に応答可能なゲーム又は他のアプリケーションを実行してもよい。オブジェクト110は追跡され、オブジェクト110の動きはユーザ入力を提供する。
【0039】
追跡システム100がオブジェクト110を正確に追跡可能となる前に、追跡システム100は較正される必要がある。例えば、追跡システム100のキャリブレーションは、位置センサ105のピッチ145の算出及び位置センサ105とオブジェクト110との間の相対的なヨーの算出を含んでもよい。オブジェクト110と位置センサ105との間の相対ヨーは、オブジェクト110と位置センサ105の間の向きの差を表す。一つの実施の形態において、オブジェクトが位置センサ105の撮像平面に対して垂直な方向に向いているときに、位置センサ105とオブジェクト110との間のゼロヨーが達成されると定義される。または、オブジェクト110が位置センサ105の方へ真っ直ぐ向いているときに、ゼロヨーが達成されると定義されてもよい。位置センサ105が、視野125の不明なカメラである場合、追跡システム100のキャリブレーションは、位置センサ105の視野125の算出を含む。オブジェクト110の大きさが不明である場合、追跡システム100のキャリブレーションは、オブジェクト110の大きさの決定を含んでもよい。
【0040】
オブジェクト110の内部に配置された慣性センサがキャリブレーションのために十分な慣性データを収集可能とするために、オブジェクト110はユーザにより移動されるべきである。オブジェクト110は、それぞれの慣性データの測定値が対応する位置の測定値(例えば、対応する画像の大きさ及び画像の位置の測定)を有することを保証するために、位置センサ105の視野125の範囲で移動されるべきである。キャリブレーションの効果は、オブジェクト110が、位置センサ105の視野の中にあるリッチモーションパスに沿って移動されることにより増大させることができる。リッチモーション経路は、本明細書において、少なくとも二次元(例えば平面)において生じる、最小限の加速度のしきい値を越える動きとして定義される。一つの実施の形態において、リッチモーション経路は、位置センサ105に近づく及び/又は遠ざかるような動きを含んでもよい。一つの実施の形態において、三次元の加速度を含むリッチモーション経路は、二次元のみの加速度を含むリッチモーション経路よりも好ましい。
【0041】
取得された慣性データは、慣性データに付随する信号ノイズの量により定義される不確定さを有する。オブジェクト110により測定された加速度の大きさが減少するにつれて、信号ノイズ比(信号を改悪するノイズ強度に対する信号強度の比)は増加する。信号ノイズ比の減少により、慣性データはより不正確になる。一つの実施の形態において、慣性データが最小限の信号ノイズ比を下回ることを防ぐために、最小限の加速度のしきい値が設定される。
【0042】
図3は、本発明の一つの実施の形態における、リッチモーション経路に沿って移動されるオブジェクトの例を示す。図示されるように、オブジェクトは、ゲームコントローラ310の端に取り付けられたボール305であり、リッチモーション経路315は、ユーザの頭の周囲の環状の経路である。環状の経路は、円内の動きが一定の加速度を提供する点で有利である。したがって、環状の経路は、増加された慣性データを提供する。リッチモーション経路315の全体は、位置センサの視野320の内部にあり、位置センサに近づく動き及び遠ざかる動きを含む。
【0043】
図4は、本発明の一つの実施の形態における、追跡システム400のブロック図を示す。追跡システム400は、位置センサ405に物理的に接続され、位置センサ405により追跡されるオブジェクト410に無線接続される計算装置415を含む。計算装置415は、位置センサ405に無線接続され、及び/又は、オブジェクト410に物理的に接続されてもよいことが留意されるべきである。一つの実施の形態において、追跡システム400は、図1の追跡システム100に相当する。
【0044】
オブジェクト410は、オブジェクト410の内部の固定的な位置に設けられた1以上の慣性センサ420を含む。一つの実施の形態において、慣性センサ420は、1以上のジャイロスコープ及び1以上の加速度計を含む。ジャイロスコープは、向きの変化(例えば、ピッチ、ロール、及びねじりの変化)を検出するために、角運動量を用いる。加速度計は、1以上の軸に沿った加速度を測定する。ジャイロスコープ及び加速度計は、分離された複数のセンサであってもよいし、一つのセンサに結合されていてもよい。一つの実施の形態において、ジャイロスコープ及び加速度計は、マイクロエレクトロメカニカルシステム(micro-electromechanical systems:MEMS)装置である。オブジェクト410が(例えばリッチモーション経路に沿って)移動されるとき、慣性センサ420は、慣性データを収集し、計算装置415へ送信する。慣性センサ420により収集された慣性データは、オブジェクト410の参照フレームのデータである。
【0045】
位置センサ405は、ビデオカメラ、Z−カメラ、ステレオカメラ、超音波センサアレイ、光検出器、又は画像を撮像可能な他の装置であってもよい。オブジェクト410が(例えばリッチモーション経路に沿って)移動されるとき、位置センサ405は、オブジェクト410の位置データ(例えば画像)を取得する。位置データは、画像の大きさ及び画像の位置の情報を含んでもよい。位置センサ405は、計算装置415に位置データを送信する。一つの実施の形態において、位置センサ405は、位置データが取得されるとリアルタイムに計算装置415に位置データを流す。
【0046】
一つの実施の形態において、オブジェクト410が位置センサ405により追跡されるとき、オブジェクト410の位置の変更は、ゲームやコンピュータアプリケーションなどを制御するために、計算装置415に対する入力として使用される。例えば、オブジェクト410の位置の変更は、一人称又は三人称の視点のゲームにおけるキャラクタを制御したり、画面上のマウスカーソルを移動させたりするために用いられてもよい。別の実施の形態において、オブジェクト410から取得された慣性データは、計算装置415に対する入力して使用される。または、慣性データは、計算装置415のための精密かつ正確な入力を提供するために、位置センサ405により得られた位置データと組み合わせて用いられてもよい。
【0047】
計算装置415は、ビデオゲームコンソール、パーソナルコンピュータ、ゲーム機などであってもよい。一つの実施の形態において、計算装置415は、位置センサ405から取得された位置データとオブジェクト410から取得された慣性データに基づいて追跡システム400を較正する較正ロジック432を含む。更なる実施の形態において、較正ロジック432は、それぞれが較正に関連した異なる演算を実行する、慣性データロジックコンポーネント425、位置データロジックコンポーネント430、及び調整ロジックコンポーネント435を含む。
【0048】
位置データロジックコンポーネント430は、(例えば画像内のオブジェクト410を検出するために)位置センサ405から取得した位置データ(例えば画像)を分析する。一つの実施の形態において、オブジェクト410の画像の位置は、画像内のオブジェクト410を表すピクセルのグループを分析することにより決定され、オブジェクトの中心が検出される。一つの実施の形態において、それぞれのピクセルのガウス分布が算出され、中心位置のピクセル以下の正確さを提供するために用いられてもよい。
【0049】
一つの実施の形態において、位置データロジックコンポーネント430は、画像位置情報を位置センサ405の三次元座標系に変換する。画像位置は、以下の数式を用いて、三次元座標系に変換されうる。
【数1】
【数2】
【数3】
ここで、Xwはワールド参照フレームにおける水平方向の位置、Ywはワールド参照フレームにおける垂直方向の位置、Xiは画像における水平方向の位置、Yiは画像における垂直方向の位置、Zwは位置センサとオブジェクトとの間の距離、fは位置センサの焦点距離(視野に比例する値)、Rはオブジェクトの大きさ(例えば球の半径をmmで表したもの)、rはオブジェクトの画像の大きさ(例えば球の投影の半径をピクセルで表したもの)である。
【0050】
位置データ(例えば画像位置)が三次元座標系に変換されると、位置データロジックコンポーネント430は、時間に対する位置情報の二階微分をとり、中心の位置の時間変化に基づいて、位置センサ405の三次元座標系におけるオブジェクト410の加速度を算出する。位置データロジックコンポーネント430は、算出された位置センサ加速度データを調整ロジックコンポーネント435に提供する。一つの実施の形態において、位置データロジックコンポーネント430は、加速度を算出する前に、位置データ(例えば画像位置)を平滑化する。
【0051】
慣性データロジックコンポーネント425は、算出された加速度に一致させた状態になるように、慣性データを処理する。一つの実施の形態において、慣性データロジックコンポーネント425は、慣性データから重力によって生じる加速度を除去し、慣性データを調整ロジックコンポーネント435に伝達する。
【0052】
一つの実施の形態において、位置センサの参照フレームと慣性データについて用いられる参照フレームとの間の相対的な差は、不変に保たれる必要がある。しかしながら、オブジェクト410の参照フレームは、オブジェクト410のピッチ及びロールが変化するにつれて、位置センサ405の参照フレームに対して変化する。さらに、オブジェクト410のピッチ及びロールが実質的に固定されない場合、慣性データは、ピッチの変化及び/又はロールの変化により生じる加速度の測定値を含む。このような加速度は、オブジェクト410の位置の変化を反映せず、そのため、較正のための有用な情報を提供しない可能性がある。このような加速度は、位置データに基づいて算出可能ではない可能性があるので、位置データロジックコンポーネント430により決定される算出された加速度に反映されない可能性がある。これにより、較正において誤差が生じる。
【0053】
一つの実施の形態において、慣性データロジックコンポーネント425は、慣性データをオブジェクト410の参照フレームのままとする。慣性データロジックコンポーネント425は、例えば、オブジェクトがリッチモーション経路を通して実質的に固定されたピッチ及びロールを維持する場合に、慣性データをオブジェクト410の参照フレームのままとしてもよい。さらに、リッチモーション経路にわたってピッチ及びロールの変化が相殺される場合は、慣性データの参照フレームの変更により重大な較正誤差が生じない可能性がある。ピッチ及びロールの変化の平均がゼロとなる場合、参照フレーム間の変更により生じる誤差と、ピッチ及びロールの変化に起因する加速度により生じる誤差とは、ほぼ相殺される。これは、例えば、リッチモーション経路がユーザの前面の小さな環状経路であり、ユーザが手首又は方を動かさずに肘の周りでオブジェクト410を回転する場合に達成されうる。このような条件下では、慣性データロジックコンポーネント425は、慣性データをオブジェクト410の参照フレームのままとしてもよい。
【0054】
一つの実施の形態において、慣性データロジックコンポーネント425は、慣性データを処理して、慣性データをオブジェクト410の参照フレームからワールド参照フレーム(重力に沿った軸を有する参照フレーム)に変換する。重力は、慣性センサ420により測定可能な下向きの一定の力をアサートする。慣性データは、慣性センサ420により検出された下向きの重力に基づいて、ワールド参照フレームに対するオブジェクト410のピッチ及びロールを算出することにより、ワールド参照フレームに変換されうる。オブジェクト410が移動されるとき、ジャイロスコープを用いて角加速度を決定し、オブジェクト410が静止していたときに測定されたピッチ及びロールの初期値に対するオブジェクト410のピッチ及びロールの変化を決定することができる。したがって、オブジェクト410が移動されるとき、慣性データはワールド参照フレームに変換可能である。これにより、そうでなければ参照フレーム間の関係の変更により導入されるであろう誤差が補正される。
【0055】
一つの実施の形態において、慣性センサ420は、オブジェクト410の中心に配置されない。位置センサ405により測定される加速度は、オブジェクト410の中心に基づいているから、慣性センサ420は、位置データに基づいて位置データロジックコンポーネント430が算出する加速度と同じ加速度を測定しない。例えば、オブジェクト410が弧の周りで振られた場合、位置センサ405は、慣性センサ420により記録されるよりも大きな加速度を観測する可能性がある。この不一致は、慣性センサ420が、オブジェクト410の中心よりも弧の中心に近いために生じる。
【0056】
慣性センサ420とオブジェクト410の中心の間の位置のずれにより生じる不一致は、ずれが既知であれば除去可能である。(向心力として測定される)角速度は、ジャイロスコープにより測定可能であり、位置のずれとともに、オブジェクト410の中心に配置された慣性センサ420により観測されるであろう加速度を算出するために用いられる。一つの実施の形態において、調整ロジックコンポーネント435に渡されるのは、この加速度である。
【0057】
調整ロジックコンポーネント435は、追跡システム400を較正するために、位置データロジックコンポーネント430により算出された加速度を、慣性データロジックコンポーネント425からの慣性データに融合させる。
【0058】
慣性データの算出された加速度への融合は、位置センサ405のピッチ及び位置センサ405と追跡対象オブジェクト410との間の相対ヨーの算出を含む。位置センサ405のピッチの算出は、位置センサを重力に垂直な方向に向かせる回転角度を与える。ヨーに関しては、オブジェクト410は、当初、未知の方向へ向いている。したがって、オブジェクト410の初期の向きは、ゼロの向きとして任意に選択される。オブジェクト410の初期のゼロの向きと位置センサ405の向き(ヨー)が算出される。そして、オブジェクト410のゼロの向きは、位置センサ405の向きに合わせるように修正される。追跡システム400は、例えばオブジェクト410の内部に設けられたジャイロスコープを用いて、オブジェクト410のゼロの向きからのずれを監視することにより、オブジェクト410が向いている方向を検出することができる。
【0059】
慣性データは、第1のベクトルセットとして表現され、算出された加速度は、第2のベクトルセットとして表現されうる。算出された加速度及び慣性データは、同じオブジェクトの動きの異なる測定値を表す。したがって、算出された加速度及び慣性データは、第1のベクトルセットのそれぞれのベクトルが第2のベクトルセットのベクトルに対応する、合致したベクトルセットを含む。対応するベクトルは、同じ原点と同じ大きさを有する。2つのベクトルセットの唯一の違いは、それらが測定された参照フレームである。したがって、慣性データは、参照フレームを揃えるために必要な空間内の回転を求めることにより、算出された加速度と融合される。位置センサ405の視野が未知である一つの実施の形態において、慣性データを算出された加速度に融合させるために、スケーリング変換が実行される。
【0060】
一つの実施の形態において、ピッチ及びヨーは、複数の可能性のある第1の角度(ピッチを表す)及び複数の可能性のある第2の角度(ヨーを表す)により、一つのベクトルセットのベクトルを回転させることにより求められる。可能性のある第1の角度及び可能性のある第2の角度の異なる多数の組み合わせが試されてもよい。回転された第1のセットのベクトルと対応する第2のセットのベクトルとの間の差を最小にする、可能性のある第1の角度と可能性のある第2の角度の組み合わせが、正しい第1及び第2の角度である。最急降下法、部分最小二乗法、最小二乗適合技術、又は他の誤差最小化技術が、正しい第1及び第2の角度を算出するために試される、可能性のある第1の角度及び可能性のある第2の角度の組み合わせの数を最小限にするために用いられてもよい。
【0061】
オブジェクトの動きを含むそれぞれのベクトルViは、第1のベクトルセットにおいてはVi1と表され、第2のベクトルセットにおいてはVi2と表される。第1のベクトルセットにおける全てのベクトルVi1について、ベクトルVi1は、第1及び第2の可能性のある角度に基づいて三次元回転により変換され、変換されたベクトルVi1’となる。それぞれのベクトルViについて、Vi1’とVi2との間の差Dθが算出される。差は、誤差最小化技術を用いて結合されてもよい。例えば、それぞれのベクトル組の差が平均化されてもよい。一つの実施の形態において、第1のベクトルセットの回転されたベクトルVi1’と、第2のベクトルセットのマッチしたベクトルVi2との間の差の平均化された和が算出される。別の実施の形態において、例えば次のアルゴリズムを用いて、差の二乗の和が計算されてもよい。
【数4】
他の誤差最小化技術がベクトルの差を結合するために用いられてもよい。
【0062】
最小のDθを与える角θが、正しい推定された三次元の角度である。したがって、三次元の角度θを与える、可能性のある第1の角度及び可能性のある第2の角度が、位置センサ405のピッチと、位置センサ405とオブジェクト410との間の相対ヨーを表す。いずれのセットのベクトルが回転されたとしても2つのベクトルセットの間の角度は同じになるから、いずれのセットのベクトルが回転されるかは問題ではない。
【0063】
別の実施の形態において、慣性データは、座標系を揃える三次元回転を算出することにより、算出された加速度に調整される。三次元回転は、軸及び角度により定義されうる。三次元回転の回転軸は、第1のベクトルセットのベクトルVi1と第2のベクトルセットのベクトルVi2とのクロス積をとることにより求められる。
【数5】
【0064】
下記のように、Vi1のVi2への投影を表すスカラーsを求めるために、Vi1とVi2のドット積(内積)もとられる。
【数6】
【0065】
三次元回転角θは、下記のように、回転軸及びスカラーを用いて求められる。
【数7】
【0066】
三次元回転は、いずれかの参照フレームに分解され、その参照フレームのそれぞれの軸の周りの回転角が決定されてもよい。例えば、三次元回転は、x軸の周りの回転量を決定するためにyz平面(x軸に垂直な平面)に投影されてもよく、y軸の周りの回転量を決定するためのxz平面(y軸に垂直な平面)に投影されてもよい。三次元の角度がワールド参照フレームに投影される場合、重力に沿った軸の周りの回転はヨーであり、重力に垂直で位置センサの画像平面内の軸の周りの回転はピッチである。三次元回転は、例えば、3つの直交する行列、回転行列、又は四元数を用いて、参照フレームの軸の周りの回転に分解されうる。
【0067】
四元数は、実数上の四次元のノルム多元体を形成する。四元数は、行列変換よりも高速に計算することができ、その直交性を失わないから、座標変換の有用な表現を提供する。回転の四元数表現は、四次元ベクトルとして記述される。
【数8】
【0068】
ワールド参照フレームにおいて、四元数の要素は下記のように表現される。
【数9】
【数10】
【数11】
【数12】
ここで、ex、ey、及びezは、それぞれ、オブジェクトの参照フレームのx、y、及びz軸に平行な単位ベクトルを表す。
【0069】
四元数は、参照フレームに揃えることが必要なヨー及びピッチ回転の双方を完全に表現する。しかしながら、さらに直感的な結果を提供するために、四元数は、下記の式によりピッチ及びヨーのオイラー角に変換されてもよい。ロール、ピッチ、及びヨーは、次式にしたがって、四元数から計算されうる。
【数13】
【数14】
【数15】
【0070】
ヨー、ピッチ、及びロール角は、それぞれのベクトル組について決定されてもよい。ヨー、ピッチ、及びロール角は、位置センサのピッチと、位置センサ405と追跡対象オブジェクト410との間の相対ヨーとを決定するために結合されてもよい。ヨー、ピッチ、及びロール角は、平均、重み付き平均、又は他の結合関数を用いて結合されてもよい。
【0071】
一つの実施の形態において、位置センサは、ゼロのロールを有すると仮定される。したがって、一つの実施の形態において、ベクトル組のロールもゼロであると仮定されてもよい。しかし、ある実施の形態において、ノイズが、ベクトル組のベクトル間でロールがゼロではないことを示す差を生じる可能性がある。このような実施の形態において、ロールはゼロであるとは仮定されず、代わりに、後述のように算出されてもよい。または、ロールはゼロであると仮定されてもよく、ロールがゼロではないことを示すベクトル組は無視されてもよい。一つの実施の形態において、ロールは、ロールがゼロではないことを示す事例においてもゼロであると仮定される。ベクトル組を無視するよりも、ベクトル組について、ロールがゼロであると仮定されることにより生じる差の値が決定されてもよい。最小の差の値を有するベクトル組が、位置センサのピッチと、位置センサ405と追跡対象オブジェクト410との間の相対ヨーを決定するために用いられてもよい。ノイズを補償する他の方法が用いられてもよい。
【0072】
図5は、一つの実施の形態における、プレイヤーにより把持された異なるコントローラの位置を決定するために視覚情報が用いられる、マルチプレイヤー環境500の概略図を示す。マルチプレイヤー環境500において、位置センサ508はプレイフィールド518の画像データを取得し、画像データはボールが設けられたコントローラC1、C2、C4、及びC5の位置を取得するために分析される。距離dz1、dz2、dz4、及びdz5は、取得された画像におけるそれぞれのボールの形状及び大きさを分析することにより推定される。計算装置502は、取得された座標及び距離を用いて、画面504におけるプレイヤーの表現としてアバター512a及び512bをそれぞれ生成する。良好な画像認識のための典型的な距離は、約10フィート(3メートル)である。視覚認識の一つの利点は、コントローラを変更する必要なく、画像取得及び画像認識の向上をシステムに取り込めることである。
【0073】
図6は、一つの実施の形態に係る追跡システム較正する方法600の例を示すフロー図である。方法は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(例えば、処理装置上で実行される命令)、又はそれらの組み合わせを含む処理ロジックにより実行されてもよい。一つの実施の形態において、方法600は、図1の計算装置115により実行される。一つの実施の形態において、方法600は、ゲーム又は他のアプリケーションが計算装置115上で起動されるたびに実行される。または、方法600は、追跡対象オブジェクトが一定期間不動であった後に動きが検出されるたびに実行されてもよい。
【0074】
図6を参照して、ブロック605において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるときに、位置センサから追跡対象オブジェクトの位置データ(例えば画像の位置及び画像の大きさ)を取得する。一つの実施の形態において、計算装置は、位置センサの二次元参照フレームにおけるオブジェクトの画像を取得する。
【0075】
ブロック610において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるときに、追跡対象オブジェクトから慣性データを取得する。取得された慣性データは、追跡対象オブジェクトの参照フレームのデータであってもよい。
【0076】
一つの実施の形態において、位置センサの参照フレームと慣性センサについて用いられる参照フレームとの間の相対的な差は、不変に保たれる必要がある。しかしながら、オブジェクトのピッチ及びロールが変化するにつれて、カメラの参照フレームに対するオブジェクトの参照フレームは変化する。したがって、ブロック615において、追跡システムは、オブジェクトがリッチモーション経路に沿って移動されるときに、追跡対象オブジェクトのピッチ及び/又はロールがほぼ固定されたままであるか否かを決定する。追跡対象オブジェクトの方向がほぼ固定されたままであれば、方法はブロック625に進む。しかし、追跡対象オブジェクトのピッチ及び/又はロールが変化している場合は、方法はブロック620へ続く。一つの実施の形態において、ピッチ及びロールの変化の平均がゼロであれば、参照フレーム間の変化により生じる誤差はほぼ相殺されうる。これは、例えば、リッチモーション経路が環状の経路である場合に達成されうる。このような条件下では、方法はブロック625に進む。
【0077】
ブロック620において、位置センサは、取得された慣性データを三次元ワールド参照フレームに変換する。この変換は、追跡対象オブジェクトに設けられた慣性センサは常時下向きの重力を測定するためになしうる。ブロック625において、画像位置は、(例えば、位置センサの二次元座標系から)位置センサの三次元座標系に変換される。
【0078】
ブロック630において、位置センサの三次元座標系における追跡対象オブジェクトの加速度が算出される。追跡対象オブジェクトの加速度を算出するために、画像位置の時間に関する二階微分がとられる。一つの実施の形態において、加速度は、位置データが取得されるとリアルタイムに算出される。または、加速度は定期的に(例えば10ミリ秒ごと、0.5秒ごとなど)算出されてもよいし、リッチモーションが完了したときに算出されてもよい。
【0079】
ブロック635において、取得された慣性データは、位置センサの較正を完了するために、算出された加速度に融合される。慣性データと算出された加速度の融合は、参照フレームを揃えるために必要な回転の決定を含む。回転の決定は、位置センサのピッチ及び位置センサと追跡対象オブジェクトの間の相対ヨーの算出を含む。一つの実施の形態において、ピッチ及びヨーは、可能性のある複数の第1の角度及び可能性のある複数の第2の角度により、一つのベクトルセットのベクトルを回転させ、参照フレーム間で最も良い整列を与える、可能性のある第1の角度及び可能性のある第2の角度を選択することにより求められる。別の実施の形態において、ピッチ及びヨーは、明示的に求められる。ピッチ及びヨーは、回転行列、オイラー角を定義する3つの直交行列、単位四元数などを用いて求められてもよい。
【0080】
図7は、追跡システムを較正する方法700の別の実施の形態のフロー図を示す。方法は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(例えば、処理装置上で実行される命令)、又はそれらの組み合わせを含む処理ロジックにより実行されてもよい。一つの実施の形態において、方法700は、図1の計算装置115により実行される。一つの実施の形態において、方法700は、ゲーム又は他のアプリケーションが計算装置115上で起動されるたびに実行される。または、方法700は、追跡対象オブジェクトが一定期間不動であった後に動きが検出されるたびに実行されてもよい。
【0081】
図7を参照して、ブロック705において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるとき、追跡対象オブジェクトの位置データ(例えば、画像位置及び画像サイズ)を位置センサから取得する。ブロック710において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるとき、追跡対象オブジェクトから慣性データを取得する。慣性データは、追跡対象オブジェクトの参照フレーム又はワールド参照フレームにおけるデータであってもよい。
【0082】
ブロック715において、位置データ(例えば画像位置)が、位置センサの三次元座標系に変換される。ブロック720において、位置センサの三次元座標系における追跡対象オブジェクトの加速度が算出される。追跡対象オブジェクトの加速度を算出するために、画像位置の時間に関する二階微分がとられてもよい。
【0083】
ブロック725において、計算装置は、慣性データが算出された加速度に同期されているか否かを判断する。算出された加速度のそれぞれのベクトルは、慣性データのベクトルに対応する。しかし、通信時間や計算時間などの遅延のために、慣性データのベクトルと、算出された加速度の対応するベクトルとの間のタイミングがずれる可能性がある。慣性データが算出された加速度に同期されていない場合、方法はブロック730に続く。慣性データと算出された加速度が同期されている場合、方法はブロック735に続く。
【0084】
ブロック730において、計算装置は、ベクトルの大きさに基づいて、第1のセット(慣性データ)のベクトルと、時間的に近接した第2のセット(算出された加速度)のベクトルをマッチングする。例えば、第1のセットのベクトルが、第2のセットのベクトルから1/10秒ずれているが、2つのベクトルの大きさはほぼ等しい場合、2つのベクトルは時間的に揃えられてもよい。第1のセットの全てのベクトルを第2のセットの対応するベクトルに揃えることにより、慣性データ及び算出された加速度が同期される。
【0085】
ブロック735において、取得された慣性データは、位置センサの較正を完了するために、算出された加速度に調和される。慣性データと算出された加速度の調和は、参照フレームを揃えるために必要な回転の決定を含む。慣性データと算出された加速度の調和は、位置センサのピッチ及び位置センサと追跡対象オブジェクトの間の相対ヨーの算出を含む。
【0086】
ピッチ及びヨーは、それぞれのベクトルの組について、慣性データ及び算出された加速度からの対応するベクトルから別々に算出されうる。信号ノイズのため、異なるベクトルの組について算出されたピッチ及びヨーは一致しない可能性がある。一つの実施の形態において、ピッチ及びヨーは、より正確な解を提供するために、複数のベクトルの組にわたって平均化される。ベクトルの組は、ピッチ及びヨーの精度を更に向上させるために、重み付けされ、及び/又は、フィルタリングされてもよい。
【0087】
一つの実施の形態において、ブロック740において、加速度のしきい値よりも小さいベクトルは、算出された加速度及び慣性データから除去される。取得された慣性データは、慣性データに付随する信号ノイズの量により定義される不正確さを有する。オブジェクトにより測定された加速度の大きさが小さくなるにつれて、信号ノイズ比は大きくなる。信号ノイズ比が小さくなると、慣性データはより不正確になる。したがって、最小限の加速度のしきい値が、誤差を最小限にするために設定されてもよい。
【0088】
一つの実施の形態において、ブロック745において、ベクトルは大きさに基づいて重み付けされる。より大きなベクトル(より大きな加速度を表す)は、小さなベクトルよりも重く重み付けされる。ベクトルの大きさが大きいほど、ベクトルはノイズにより影響されにくい(例えば、信号ノイズ比が大きい)。したがって、ベクトルを重み付けすることにより、較正の精度を向上させることができる。ベクトルは、大きさに基づいて比例的に重み付けされてもよいし、大きさの二乗に基づいて重み付けされてもよいし、他の重み付け関数にしたがって重み付けされてもよい。いくつかの重み付け技術について、ブロック740において実行されるようなベクトルのフィルタリングは必要とされなくてもよい。例えば、重み付け関数が、ベクトルの大きさの二乗に基づく場合、小さいベクトルは、ほぼゼロになるように重み付けされる。
【0089】
方法600及び700は、オブジェクトの参照フレーム及び/又はワールド参照フレームに対する位置センサの向きを、ユーザが便利かつ簡易に実行できるような態様で検出して、追跡システムを較正する。双方の方法により、計算装置は、最小限のユーザ入力に基づいて、追跡システムを正確に較正することができる。
【0090】
カメラを含むいくつかの追跡システムにおいて、カメラの視野(field of view:FOV)は既知である可能性がある。しかし、いくつかの追跡システムは、カメラの視野を識別する情報を含まない可能性がある。例えば、未知の固定された視野を有するカメラが追跡システムに含まれうる。または、複数の既知の視野の設定を有するが、いずれの視野の設定が選択されたのかが直ちに明確ではないカメラが追跡システムに含まれうる。カメラの視野が未知であるこのような実施の形態において、実際の視野が決定される、又は、視野が求められるまで、異なる視野が推測されうる。
【0091】
カメラの視野が未知である一つの実施の形態において、複数の異なる視野が仮定される。方法600及び700が、それぞれの仮定された視野について独立して実行されてもよい。回転された(例えば位置センサの)参照フレームと、回転されない参照フレーム(例えばワールド参照フレーム)との間の差を最小にする仮定された視野が、正しい視野であると決定される。
【0092】
いくつかの追跡システムにおいて、追跡対象オブジェクトのサイズは未知である可能性がある。このような実施の形態において、実際のオブジェクトの大きさが決定される、又は、オブジェクトの大きさが求められるまで、異なるオブジェクトの大きさが推測されうる。オブジェクトの大きさが未知である一つの実施の形態において、複数の異なるオブジェクトの大きさが仮定される。方法600及び700が、それぞれの仮定されたオブジェクトの大きさについて独立して実行されてもよい。回転された(例えば位置センサの)参照フレームと、回転されない参照フレーム(例えばワールド参照フレーム)との間の差を最小にする仮定されたオブジェクトの大きさが、正しいオブジェクトの大きさであると決定される。
【0093】
未知の視野を求める一つの方法は、カメラの撮像平面上への既知のサイズの追跡対象球の楕円投影に基づく。視野が既知であれば、同様の方法が、未知の球のサイズを求めるために用いられうる。球が視線に垂直でない平面上にある場合、球は楕円として投影される。この現象は、図8において観測することができる。図8は、本発明の一つの実施の形態に係る、カメラの画像平面815における異なる位置においてカメラの画像平面上に投影された球を示す。図示されるように、画像平面815の中心810に球が位置するとき、完全な円805がカメラの画像平面上に投影される。球が画像平面815の中心810から離れると、球は楕円として投影される。それぞれの楕円は、長軸825及び短軸820により表現することができる。図示されるように、楕円の短軸820は、常に視野815の中心810の方へ向いている。球が画像平面815の中心810から離れるほど、楕円の短軸820は短くなる。
【0094】
図9は、カメラの撮像平面上への球の楕円投影を用いてカメラの視野を決定する方法900の一つの実施の形態のフロー図を示す。方法900は、カメラの視野が既知である場合に、未知のオブジェクトの大きさを決定するために用いられてもよい。方法は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(例えば、処理装置上で実行される命令)、又はそれらの組み合わせを含む処理ロジックにより実行されてもよい。一つの実施の形態において、方法900は、図1の計算装置115により実行される。
【0095】
図9に戻り、ブロック905において、計算装置は、球の画像データを取得する。球の画像データは、カメラの撮像平面上に、短軸が画像の中心に向いた楕円として投影される。ブロック910において、計算装置は、カメラの撮像平面における球の位置を決定する。楕円の中心が探索され、画像の中心からの距離として表現される。ブロック915において、楕円の長軸a及び短軸bは、次式にしたがって計算される。
【数16】
【数17】
ここで、ixは画像の水平方向の大きさを(例えばピクセル単位で)表し、iyは画像の垂直方向の大きさを(例えばピクセル単位で)表し、Zはカメラと球との間の距離であり、rは球の半径であり、fは投影された楕円の中心から画像の中心までの距離(例えばピクセル単位)である。
【0096】
数式16及び17は、図10を参照することにより、より良く理解されうる。図10は、本発明の一つの実施の形態において、カメラの撮像平面1015上に楕円1010として投影された球1005を示す。
【0097】
図9に戻り、ブロック920において、計算装置は、画像内の投影の位置と楕円の長軸と短軸との間の比に基づいて、カメラの視野を算出する。短軸に対する長軸の比は、画像内の楕円の中心の位置に依存する。したがって、比は、画像内の楕円の位置に基づいて決定されうる。さらに、球とカメラとの間の距離は、球の半径よりもずっと長いと予想される。このような予想が成立する場合、(z2−r2)はほぼz2に等しい。したがって、長軸と短軸との間の比は、次式で表現されうる。
【数18】
【0098】
距離fは、次式で表現されうる。
【数19】
【0099】
距離fは、視野に変換されうる。距離fを用いて、水平方向の視野FOVxと垂直方向の視野FOVyを、標準的な三角関数により次式のように算出することができる。
【数20】
【数21】
ここで、wは画像の幅をピクセルで表したものであり、hは画像の高さをピクセルで表したものである。
【0100】
ブロック925において、算出された視野は、可能性のある視野の設定と比較される。実際の視野は、算出された視野に最も近い視野の設定の視野であると決定される。投影された画像内の球の楕円変形がわずかである(例えば、楕円の長軸と短軸との間の差がわずかしかない)一つの実施の形態において、算出された視野の誤差は大きい。このような実施の形態において、算出された視野は、視野の範囲である。実際の視野は、視野の範囲内のどこにでもなりうる。視野の範囲は視野の設定と比較され、算出された視野の範囲内にある視野の設定が視野であると決定される。
【0101】
ブロック930において、カメラを用いて三次元空間内で球を追跡するために視野が用いられる。方法はこれで終了する。
【0102】
図11は、本発明の一つの実施の形態に関連して、コントローラの位置を決定するために用いられうるハードウェア及びユーザインタフェースを示す。図11は、本発明の一つの実施の形態に係る三次元コントローラ位置探索システムの実装に互換性のあるコンソールであるソニープレイステーション3(登録商標)エンタテインメント装置の全体システム構成を概略的に示す。システムユニット1400とともに、システムユニット1400に接続可能な種々の周辺装置が設けられる。システムユニット1400は、セルプロセッサ1428、ランバス(登録商標)ダイナミックランダムアクセスメモリ(XDRAM)ユニット1426、専用のビデオランダムアクセスメモリ(VRAM)ユニット1432とともに設けられたリアリティシンセサイザーグラフィックスユニット1430、及び入出力ブリッジ1434を備える。システムユニット1400は、さらに、入出力ブリッジ1434を介してアクセス可能な、ディスク1440Aから読み出すためのブルーレイ(登録商標)ディスクBD−ROM光ディスクリーダ1440及び脱着可能なスロットインハードディスクドライブ(HDD)1436を備える。システムユニット1400は、オプションで、入出力ブリッジ1434を介して同様にアクセス可能な、コンパクトフラッシュ(登録商標)メモリカード、メモリスティック(登録商標)メモリカードなどを読み出すためのメモリカードリーダ1438をさらに備える。
【0103】
入出力ブリッジ1434は、さらに、複数のユニバーサルシリアルバス(USB)2.0ポート1424、ギガビットイーサネット(登録商標)ポート1422、IEEE802.11b/g無線ネットワーク(Wi−Fi)ポート1420、7つのブルートゥース(登録商標)接続までサポート可能なブルートゥース無線リンクポート1418に接続する。
【0104】
動作中、入出力ブリッジ1434は、1以上のゲームコントローラ1402〜1403からのデータを含む全ての無線、USB及びイーサネット(登録商標)データを扱う。例えば、ユーザがゲームをプレーするとき、入出力ブリッジ1434は、ブルートゥースリンクを介してゲームコントローラ1402〜1403からデータを受信し、セルプロセッサ1428に伝える。セルプロセッサ1428は、ゲームの現在の状態をそのように更新する。
【0105】
無線、USB及びイーサネット(登録商標)ポートは、ゲームコントローラ1402〜1403に加えて、リモートコントローラ1404、キーボード1406、マウス1408、ソニープレイステーションポータブル(登録商標)エンタテインメント装置などの携帯型エンタテインメント装置1410、アイトイ(登録商標)ビデオカメラなどのビデオカメラ1412、マイクロフォンヘッドセット1414、及びマイクロフォン1415などの他の周辺装置との接続も提供する。これらの周辺装置は、原則として、システムユニット1400に無線で接続されてもよい。例えば、携帯型エンタテインメント装置1410は、Wi−Fiアドホック接続を介して通信してもよいし、マイクロフォンヘッドセット1414は、ブルートゥースリンクを介して通信してもよい。
【0106】
これらのインタフェースの提供は、プレイステーション3装置が、ディジタルビデオレコーダ(DVR)、セットトップボックス、ディジタルカメラ、携帯型メディアプレーヤ、ボイスオーバーIP電話、携帯電話、プリンタ、及びスキャナなどの他の周辺装置との互換性をも潜在的に有することを意味する。
【0107】
さらに、プレイステーション(登録商標)又はプレイステーション2(登録商標)装置により用いられる種類のメモリカード1448の読み出しを可能にするレガシーメモリカードリーダ1416が、USBポート1424を介してシステムユニットに接続されてもよい。
【0108】
ゲームコントローラ1402〜1403は、ブルートゥースリンクを介してシステムユニット1400と無線通信可能であるか、USBポートを介して接続して、ゲームコントローラ1402〜1403のバッテリを充電するための電源も提供可能である。ゲームコントローラ1402〜1403は、メモリ、プロセッサ、メモリカードリーダ、フラッシュメモリなどの永続メモリ、LED又は赤外光などの光照射部、超音波通信のためのマイクロフォン及びスピーカ、音響チャンバ、ディジタルカメラ、内部クロック、ゲームコンソールに面した球などの認識可能な形状、及びブルートゥース、WiFiなどのプロトコルを用いた無線通信を含んでもよい。
【0109】
図2A〜2Bにおいて前述したように、ゲームコントローラ1402は両手で用いられるように設計されたコントローラであり、ゲームコントローラ1403は、ボールが設けられた、片手で扱うコントローラである。1以上のアナログジョイスティック及び従来の制御ボタンに加えて、ゲームコントローラは、三次元位置決定が可能である。したがって、ゲームコントローラのユーザのジェスチャー及び動きが、従来のボタン又はジョイスティックのコマンドに加えて、又はそれに代えて、ゲームに対する入力として翻訳されてもよい。オプションとして、プレイステーションポータブル装置などの他の無線通信可能な周辺装置がコントローラとして用いられてもよい。プレイステーションポータブル装置の場合、装置の画面に、更なるゲーム又は制御情報(例えば、制御命令又はライフの数)が提供されてもよい。ダンスマット(図示せず)、光線銃(図示せず)、ステアリングホイール及びペダル(図示せず)、又は早押しクイズゲームのための単一又はいくつかの大きなボタンなどの専用コントローラ(図示せず)などの他の代替又は追加の制御装置が用いられてもよい。
【0110】
リモートコントローラ1404は、ブルートゥースリンクを介してシステムユニット1400と無線通信可能である。リモートコントローラ1404は、ブルーレイディスクBD−ROMリーダ1440の動作及びディスク内容のナビゲーションのために適した制御を備える。
【0111】
ブルーレイディスクBD−ROMリーダ1440は、従来の記録済み及び記録可能なCD及びいわゆるスーパーオーディオCDに加えて、プレイステーション及びプレイステーション2装置に互換なCD−ROMを読み出し可能である。リーダ1440は、従来の記録済み及び記録可能なDVDに加えて、プレイステーション2及びプレイステーション3装置に互換なDVD−ROMを更に読み出し可能である。リーダ1440は、さらに、従来の記録済み及び記録可能なブルーレイディスクだけでなく、プレイステーション3装置に互換なBD−ROMを読み出し可能である。
【0112】
システムユニット1400は、生成された、又は、リアリティシンセサイザーグラフィックスユニット1430を介してプレイステーション3装置によりデコードされた音声及び映像を、音声及び映像コネクタを介して、モニタ又はディスプレー1444と1以上のラウドスピーカ1446を有するテレビジョンセットなどの表示及び音声出力装置1442に対して供給可能である。音声コネクタ1450は、従来のアナログ及びディジタル出力を含んでもよく、映像コネクタ1452は、コンポーネントビデオ、S−ビデオ、コンポジットビデオ、及び1以上の高解像度マルチメディアインタフェース(HDMI)出力などを含んでもよい。結果として、映像出力は、PAL又はNTSC、又は、720p、1080i又は1080p高解像度の形式であってもよい。
【0113】
音声処理(生成、デコードなど)は、セルプロセッサ1428により実行される。プレイステーション3装置のオペレーティングシステムは、ドルビー(登録商標)5.1サラウンド音声、ドルビーシアターサラウンド(DTS)、及びブルーレイディスクからの7.1サラウンド音声のデコードをサポートする。
【0114】
本発明の一つの実施の形態によれば、ビデオカメラ1412は、単一の電荷結合素子(CCD)、LEDインジケータ、及びハードウェアベースのリアルタイムデータ圧縮エンコード装置を備え、圧縮されたビデオデータは、システムユニット1400によりデコードするために、画像間ベースのMPEG(motion picture expert group)スタンダードなどの適当な形式で送信されてもよい。カメラLEDインジケータは、例えば逆光条件を知らせるなどのシステムユニット1400からの適切な制御データに応答して光る。ビデオカメラ1412の実施の形態は、USB、ブルートゥース、又はWi−Fiの通信ポートを介してシステムユニット1400に接続してもよい。ビデオカメラの実施の形態は、1以上の結合されたマイクロフォンを含み、音声データを送信可能であってもよい。ビデオカメラの実施の形態において、CCDは、高精細ビデオキャプチャに適した解像度を有してもよい。使用中、ビデオカメラにより撮像された画像は、例えば、ゲーム内に組み込まれてもよいし、ゲーム制御入力として解釈されてもよい。カメラの別の実施の形態において、カメラは、赤外光を検出するのに適した赤外線カメラである。
【0115】
一般に、システムユニット1400の通信ポートの一つを介して、ビデオカメラ又はリモートコントローラなどの周辺装置との間で発生するデータ通信を成功させるために、デバイスドライバなどの適切なソフトウェアが提供されるべきである。デバイスドライバの技術は既知であり、ここでは詳述しないが、本実施の形態においてデバイスドライバ又は類似のソフトウェアインタフェースが要求されることは、当業者には理解されるところである。
【0116】
図12は、本発明の一つの実施の形態における、命令の処理に利用可能な追加のハードウェアを示す。図11のセルプロセッサ1428は、メモリコントローラ1560及びデュアルバスインタフェースコントローラ1570A、1570Bを備える外部入出力構成、パワープロセッシングエレメント(PPE)1550と呼ばれるメインプロセッサ、シナジスティックプロセッシングエレメント(SPE)1510A〜Hと呼ばれる8個のコプロセッサ、要素相互接続バス1580と呼ばれる、上記の要素を接続する環状データバスの4つの基本要素を備えた構成を有する。セルプロセッサの全体の浮動小数点演算は、プレイステーション2装置のエモーションエンジンの6.2Gフロップスであるのに対して、218Gフロップスである。
【0117】
パワープロセッシングエレメント(PPE)1550は、3.2GHzの内部クロックで動作するパワーPC(PowerPC)コア(PPU)1555に互換な、双方向平行マルチスレッドパワー1470に基づいている。これは、512kBのレベル2(L2)キャッシュ及び32kBのレベル1(L1)キャッシュを備える。PPE1550は、クロックサイクルごとに8つの単精度演算を行うことができ、これは3.2GHzにおいて25.6ギガフロップスにあたる。PPE1550の主要な役割は、ほとんどの計算作業負荷を扱うSPE1510A〜Hのためのコントローラとして機能することである。動作において、PPE1550は、ジョブのキューを保持し、SPE1510A〜Hのジョブをスケジューリングし、それらの進行を監視する。それぞれのSPE1510A〜Hは、ジョブを取ってきて実行するのが役割であるカーネルを実行し、PPE1550に同期される。
【0118】
それぞれのSPE1510A〜Hは、シナジスティックプロセッシングユニット(SPU)1520A〜Hを備え、それぞれのメモリフローコントローラ(MFC:Memory Flow Controller)1540A〜Hは、ダイナミックメモリアクセスコントローラ(DMAC:Dynamic Memory Access Controller)1542A〜H、メモリ管理ユニット(MMU)1544A〜H、及びバスインタフェース(図示せず)を備える。それぞれのSPU1520A〜Hは、クロックが3.2GHzで、原則として4GBまで拡張可能な256kBのローカルRAM1530A〜Hを備える、RISCプロセッサである。それぞれのSPEは、理論上、25.6GFLOPSの単精度性能を与える。SPUは、4つの単精度浮動小数演算、4つの32ビット演算、8つの16ビット整数演算、又は16の8ビット整数演算を、1つのクロックサイクルで実行可能である。同じクロックサイクルにて、メモリ命令を実行することもできる。SPU1520A〜Hは、システムメモリXDRAM1426に直接アクセスしない。SPU1520A〜Hにより生成される64ビットのアドレスは、MFC1540A〜Hに渡され、要素相互接続バス1580及びメモリコントローラ1560を介してメモリにアクセスするためのDMAコントローラ1542A〜Hに命令される。
【0119】
要素相互接続バス(EIB)1580は、セルプロセッサ1428の内部の論理的に巡回した通信バスである。EIBは、上述のプロセッサエレメント、すなわち、PPE1550、メモリコントローラ1560、デュアルバスインタフェース1570A、B、及び8つのSPE1510A〜Hの、合計12の要素を接続する。要素は、クロックサイクルごとに8バイトの速度でバスを同時に読み、及び書き込むことができる。前述したように、それぞれのSPE1510A〜Hは、より長いリード又はライトシーケンスをスケジュールするためのDMAC1542A〜Hを備える。EIBは4つのチャンネルを備え、2つは時計回りで、2つは反時計回りの方向である。12の要素の間で、任意の2つの要素の間のうち最も長いデータフローは、適切な方向に6ステップとなる。EIBの12スロットの帯域の理論上のピークの瞬間は、要素間の調停を通じて全てが利用されたとき、クロックごとに96バイトである。これは、クロックレートが3.2GHzのときの理論上のピークバンド幅の307.2GB/s(ギガバイト毎秒)と同じである。
【0120】
メモリコントローラ1560は、ランバス社により開発されたXDRAMインタフェース1562を備える。メモリコントローラは、理論上はピークバンド幅毎秒25.6ギガバイトで、ランバスXDRAM1426と接続する。
【0121】
デュアルバスインタフェース1570A、Bは、ランバスフレックスIO(登録商標)システムインタフェース1572A、Bを備える。インタフェースは、それぞれが8ビット幅である、入力5経路、出力7経路の12チャンネルに組織化される。これは、セルプロセッサ及びコントローラ170Aを介した入出力ブリッジ700及びコントローラ170Bを介したリアリティシミュレータグラフィックスユニット200の間の62.4GB/s(出力36.4GB/s、入力26GB/s)の理論的ピークバンド幅を提供する。
【0122】
セルプロセッサ1428によりリアリティシミュレータ(Reality Simulator)グラフィクスユニット1430に送られたデータは、典型的には、表示リスト、頂点の描画命令列、ポリゴンに対するテクスチャの適用、光条件の特定などを含む。
【0123】
上述の説明は、例示を意図しており、制限を意図していないことが理解されるべきである。上述の説明を読み、理解した当業者には、多数の別の実施の形態が明らかとなろう。本発明が、いくつかの特定の実施の形態に関して説明されたが、本発明は説明された実施の形態に限られず、添付された特許請求の範囲の精神及び範囲内で変更及び代替が可能であることは、当業者に認識されるところである。したがって、詳細な説明は、限定ではなく例示であるとみなされるべきである。本発明の範囲は、特許請求の範囲に与えられる全ての範囲の均等物とともに、特許請求の範囲を参照して決定されるべきである。
【特許請求の範囲】
【請求項1】
コンピュータにより実行される、追跡システムを較正する方法であって、
追跡対象オブジェクトが動きに富んだ経路に沿って移動されるとき、ビデオゲームコンソールが位置センサから前記追跡対象オブジェクトの位置データを取得するステップと、
前記追跡対象オブジェクトが前記動きに富んだ経路に沿って移動されるとき、前記ビデオゲームコンソールが前記追跡対象オブジェクトに対応する慣性データを取得するステップと、
前記位置データを前記位置センサの三次元座標系に変換するステップと、
前記位置センサの前記三次元座標系における前記追跡対象オブジェクトの加速度を算出するステップと、
算出された加速度に前記慣性データを融合させるステップと、
を備えることを特徴とする方法。
【請求項2】
前記位置センサは、ビデオカメラであり、
前記位置データは、複数の画像の位置及び画像の大きさを含み、
前記位置データを変換するステップは、前記複数の画像の位置のそれぞれを、対応する画像の大きさ及び前記ビデオカメラの視野に基づいて、前記位置センサの三次元座標系に変換するステップを含む
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記動きに富んだ経路は、前記位置センサに近づく動き、及び、前記位置センサから遠ざかる動きのうちの少なくとも一つを含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記動きは、最小限の加速度のしきい値を越える加速度を生じさせることを特徴とする請求項1に記載の方法。
【請求項5】
前記追跡対象オブジェクトは、前記動きに富んだ経路に沿って移動されるとき、ほぼ固定されたピッチ及びロールを保ち、
ピッチ及びロールがほぼ固定されることにより、前記慣性データは、三次元ワールド座標系に変換されることなく、算出された加速度に融合されることが可能である
ことを特徴とする請求項1に記載の方法。
【請求項6】
取得された慣性データを、重力に沿った軸を有する三次元ワールド座標系に変換するステップを更に備えることを特徴とする請求項1に記載の方法。
【請求項7】
前記慣性データは、第1のセットのベクトルを含み、算出された加速度は、第2のセットのベクトルを含み、
算出された加速度に前記慣性データを融合させるステップは、
前記位置センサのピッチを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第1の角度を決定するステップと、
前記位置センサと前記追跡対象オブジェクトとの間の相対ヨーを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第2の角度を決定するステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項8】
算出された加速度に前記慣性データを融合させるステップは、
可能性のある複数の第1の角度と可能性のある複数の第2の角度を選択するステップと、
前記可能性のある複数の第1の角度のうちの一つと、前記可能性のある複数の第2の角度のうちの一つとのそれぞれの組み合わせにより、前記第1のセットのベクトルを回転させるステップと、
前記可能性のある複数の第1の角度のうちの一つと、前記可能性のある複数の第2の角度のうちの一つとのそれぞれの組み合わせについて、回転された第1のセットのベクトルと、第2のセットのベクトルとの間の差を算出するステップと、
回転された第1のセットのベクトルと、第2のセットのベクトルとの間の差を最小にする、可能性のある第1の角度と可能性のある第2の角度との組み合わせを、前記第1の角度及び前記第2の角度として特定するステップと、
を更に含むことを特徴とする請求項7に記載の方法。
【請求項9】
算出された加速度に前記慣性データを融合させるステップは、
前記第1のセットのベクトルと前記第2のセットのベクトルとの間の三次元角度を決定するステップと、
前記三次元角度を、前記第1の角度及び前記第2の角度に分解するステップと、
を更に含むことを特徴とする請求項7に記載の方法。
【請求項10】
前記第1のセットのベクトル及び前記第2のセットのベクトルのそれぞれについて、最小限のしきい値よりも小さいベクトルを除去するステップを更に含むことを特徴とする請求項7に記載の方法。
【請求項11】
前記第1のセットのベクトル及び前記第2のセットのベクトルのそれぞれを、大きいベクトルは小さいベクトルよりも重く重み付けされるように、ベクトルの大きさに基づいて重み付けをするステップを更に備えることを特徴とする請求項7に記載の方法。
【請求項12】
前記第1のセットのベクトルのそれぞれと、時間的に近接する前記第2のセットのベクトルとの大きさを比較するステップと、
前記第1のセットの第1のベクトルが、時間的に近接する前記第2のセットの第2のベクトルと、ほぼ同じ大きさである場合、前記第1のベクトルは、三次元ワールド座標系における動きを表現し、前記第2のベクトルは、前記位置センサの三次元座標系における動きを表現すると決定するステップと、
を更に備えることを特徴とする請求項7に記載の方法。
【請求項13】
前記位置センサは、カメラ、Z−カメラ、超音波センサ、及び光検出器のうちの一つであることを特徴とする請求項1に記載の方法。
【請求項14】
前記慣性データは、前記追跡対象オブジェクトの中心から所定のずれを有する慣性センサにより収集され、
前記方法は、ジャイロスコープにより提供される観測値及び加速度計と前記中心との間の既知の距離に基づいて、慣性データ及び算出された加速度のうちの一つに、前記所定のずれを補償するオフセットを適用するステップを更に備えることを特徴とする請求項1に記載の方法。
【請求項15】
前記位置センサの視野が未知であり、
前記方法は、前記位置センサの視野を求めるステップを更に備えることを特徴とする請求項1に記載の方法。
【請求項16】
前記視野を求めるステップは、
1以上の可能性のある視野を仮定するステップと、
それぞれの可能性のある視野について、前記慣性データの算出された加速度への融合を試みるステップと、
前記慣性データが算出された加速度に最良に融合される、前記可能性のある視野を、前記位置センサの視野として特定するステップと、
を含むことを特徴とする請求項14に記載の方法。
【請求項17】
カメラの視野を算出する方法であって、
前記カメラの撮像平面への球の楕円投影を含む、前記球の画像データを取得するステップと、
前記画像データから、前記カメラの撮像平面における前記球の位置を決定するステップと、
前記楕円投影の長軸及び短軸を算出するステップと、
前記球の位置及び前記長軸と前記短軸との間の差に基づいて、前記カメラの視野を算出するステップと、
三次元平面において前記球を追跡するために前記視野を用いるステップと、
を備えることを特徴とする方法。
【請求項18】
前記カメラは、複数の既知の視野の設定を有することを特徴とする請求項17に記載の方法。
【請求項19】
前記複数の既知の視野の設定のそれぞれと、算出された視野とを比較するステップと、
前記カメラの現在の視野が、算出された視野に最も近い視野の設定に等しいと決定するステップと、
を更に備えることを特徴とする請求項18に記載の方法。
【請求項20】
処理システムにより実行されたとき、前記処理システムに方法を実行させる命令を含むコンピュータ読み取り可能な記録媒体であって、
前記方法は、
追跡対象オブジェクトが動きに富んだ経路に沿って移動されるとき、位置センサから前記追跡対象オブジェクトの位置データを取得するステップと、
前記追跡対象オブジェクトが前記動きに富んだ経路に沿って移動されるとき、前記追跡対象オブジェクトに対応する慣性データを取得するステップと、
前記位置データを前記位置センサの三次元座標系に変換するステップと、
前記位置センサの前記三次元座標系における前記追跡対象オブジェクトの加速度を算出するステップと、
算出された加速度に前記慣性データを融合させるステップと、
を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項21】
前記位置センサは、ビデオカメラであり、
前記位置データは、複数の画像の位置及び画像の大きさを含み、
前記位置データを変換するステップは、前記複数の画像の位置のそれぞれを、対応する画像の大きさ及び前記ビデオカメラの視野に基づいて、前記位置センサの三次元座標系に変換するステップを含む
ことを特徴とする請求項20に記載のコンピュータ読み取り可能な記録媒体。
【請求項22】
前記慣性データは、第1のセットのベクトルを含み、算出された加速度は、第2のセットのベクトルを含み、
算出された加速度に前記慣性データを融合させるステップは、
前記位置センサのピッチを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第1の角度を決定するステップと、
前記位置センサと前記追跡対象オブジェクトとの間の相対ヨーを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第2の角度を決定するステップと、
を含むことを特徴とする請求項20に記載のコンピュータ読み取り可能な記録媒体。
【請求項23】
前記位置センサの視野が未知であり、
前記追跡対象オブジェクトは球であり、
前記方法は、前記位置センサの視野を求めるステップを更に備え、
前記視野を求めるステップは、
前記位置センサの画像平面への前記球の楕円投影を含む、前記球の画像データを取得するステップと、
前記画像データから、前記位置センサの画像平面における前記球の位置を決定するステップと、
前記楕円投影の長軸及び短軸を算出するステップと、
前記球の位置及び前記長軸と前記短軸との間の差に基づいて、前記位置センサの視野を算出するステップと、
を含むことを特徴とする請求項20に記載のコンピュータ読み取り可能な記録媒体。
【請求項24】
追跡対象オブジェクトが動きに富んだ経路に沿って移動されるときに、慣性データを収集し、前記慣性データを計算装置に送信する、1以上の慣性センサを含む追跡対象オブジェクトと、
前記追跡対象オブジェクトが動きに富んだ経路に沿って移動されるとき、前記追跡対象オブジェクトの位置データを収集し、前記位置データを前記計算装置に送信する位置センサと、
前記慣性データ及び前記位置データを取得し、前記位置データを前記位置センサの三次元座標系に変換し、前記位置センサの前記三次元座標系における前記追跡対象オブジェクトの加速度を算出し、算出された加速度に前記慣性データを融合させる計算装置と、
を備えることを特徴とする追跡システム。
【請求項25】
前記位置センサは、ビデオカメラであり、
前記位置データは、複数の画像の位置及び画像の大きさを含み、
前記位置データの変換は、前記複数の画像の位置のそれぞれを、対応する画像の大きさ及び前記ビデオカメラの視野に基づいて、前記位置センサの三次元座標系に変換することを含む
ことを特徴とする請求項24に記載の追跡システム。
【請求項26】
前記動きに富んだ経路は、前記位置センサに近づく動き、及び、前記位置センサから遠ざかる動きのうちの少なくとも一つを含むことを特徴とする請求項25に記載の追跡システム。
【請求項27】
前記動きは、最小限の加速度のしきい値を越える加速度を生じさせることを特徴とする請求項25に記載の追跡システム。
【請求項28】
前記計算装置は、更に、取得された慣性データを、重力に沿った軸を有する三次元ワールド座標系に変換することを特徴とする請求項25に記載の追跡システム。
【請求項29】
前記慣性データは、第1のセットのベクトルを含み、算出された加速度は、第2のセットのベクトルを含み、
算出された加速度に前記慣性データを融合させることは、
前記位置センサのピッチを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第1の角度を決定することと、
前記位置センサと前記追跡対象オブジェクトとの間の相対ヨーを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第2の角度を決定することと、
を含むことを特徴とする請求項25に記載の追跡システム。
【請求項30】
算出された加速度に前記慣性データを融合させることは、
可能性のある複数の第1の角度と可能性のある複数の第2の角度を選択することと、
前記可能性のある複数の第1の角度のうちの一つと、前記可能性のある複数の第2の角度のうちの一つとのそれぞれの組み合わせにより、前記第1のセットのベクトルを回転させることと、
前記可能性のある複数の第1の角度のうちの一つと、前記可能性のある複数の第2の角度のうちの一つとのそれぞれの組み合わせについて、回転された第1のセットのベクトルと、第2のセットのベクトルとの間の差を算出することと、
回転された第1のセットのベクトルと、第2のセットのベクトルとの間の差を最小にする、可能性のある第1の角度と可能性のある第2の角度との組み合わせを、前記第1の角度及び前記第2の角度として特定することと、
を更に含むことを特徴とする請求項29に記載の追跡システム。
【請求項31】
算出された加速度に前記慣性データを融合させることは、
前記第1のセットのベクトルと前記第2のセットのベクトルとの間の三次元角度を決定することと、
前記三次元角度を、前記第1の角度及び前記第2の角度に分解することと、
を更に含むことを特徴とする請求項29に記載の追跡システム。
【請求項32】
前記計算装置は、更に、前記第1のセットのベクトル及び前記第2のセットのベクトルのそれぞれについて、最小限のしきい値よりも小さいベクトルを除去することを特徴とする請求項29に記載の追跡システム。
【請求項33】
前記計算装置は、更に、前記第1のセットのベクトル及び前記第2のセットのベクトルのそれぞれを、大きいベクトルは小さいベクトルよりも重く重み付けされるように、ベクトルの大きさに基づいて重み付けをするステップを更に備えることを特徴とする請求項29に記載の追跡システム。
【請求項34】
前記計算装置は、更に、
前記第1のセットのベクトルのそれぞれと、時間的に近接する前記第2のセットのベクトルとの大きさを比較し、
前記第1のセットの第1のベクトルが、時間的に近接する前記第2のセットの第2のベクトルと、ほぼ同じ大きさである場合、前記第1のベクトルは、三次元ワールド座標系における動きを表現し、前記第2のベクトルは、前記位置センサの三次元座標系における動きを表現すると決定する
ことを特徴とする請求項29に記載の追跡システム。
【請求項35】
前記位置センサは、カメラ、Z−カメラ、超音波センサ、及び光検出器のうちの一つであることを特徴とする請求項25に記載の追跡システム。
【請求項36】
前記慣性データは、前記追跡対象オブジェクトの中心から所定のずれを有する1以上の慣性センサにより収集され、
前記計算装置は、ジャイロスコープにより提供される観測値及び加速度計と前記中心との間の既知の距離に基づいて、慣性データ及び算出された加速度のうちの一つに、前記所定のずれを補償するオフセットを適用することを特徴とする請求項25に記載の追跡システム。
【請求項37】
前記位置センサの視野が未知であり、
前記計算装置は、更に、前記位置センサの視野を求めることを特徴とする請求項25に記載の追跡システム。
【請求項38】
前記視野を求めることは、
1以上の可能性のある視野を仮定することと、
それぞれの可能性のある視野について、前記慣性データの算出された加速度への融合を試みることと、
前記慣性データが算出された加速度に最良に融合される、前記可能性のある視野を、前記位置センサの視野として特定することと、
を含むことを特徴とする請求項37に記載の追跡システム。
【請求項39】
1以上の慣性センサを含む、半径が既知の球と、
カメラの撮像平面への前記球の楕円投影を含む、前記球の画像データを収集して、前記画像データを計算装置に送信するカメラと、
前記画像データを取得して、前記画像データから前記カメラの撮像平面における前記球の位置を決定し、前記楕円投影の長軸及び短軸を算出し、前記球の位置及び前記長軸と前記短軸との間の差に基づいて前記カメラの視野を算出し、三次元平面において前記球を追跡するために前記視野を用いる計算装置と、
を備えることを特徴とする追跡システム。
【請求項40】
前記カメラは、複数の既知の視野の設定を有し、
前記計算装置は、更に、前記複数の既知の視野の設定のそれぞれと算出された視野とを比較して、前記カメラの現在の視野が算出された視野に最も近い視野の設定に等しいと決定することを特徴とする請求項39に記載の追跡システム。
【請求項1】
コンピュータにより実行される、追跡システムを較正する方法であって、
追跡対象オブジェクトが動きに富んだ経路に沿って移動されるとき、ビデオゲームコンソールが位置センサから前記追跡対象オブジェクトの位置データを取得するステップと、
前記追跡対象オブジェクトが前記動きに富んだ経路に沿って移動されるとき、前記ビデオゲームコンソールが前記追跡対象オブジェクトに対応する慣性データを取得するステップと、
前記位置データを前記位置センサの三次元座標系に変換するステップと、
前記位置センサの前記三次元座標系における前記追跡対象オブジェクトの加速度を算出するステップと、
算出された加速度に前記慣性データを融合させるステップと、
を備えることを特徴とする方法。
【請求項2】
前記位置センサは、ビデオカメラであり、
前記位置データは、複数の画像の位置及び画像の大きさを含み、
前記位置データを変換するステップは、前記複数の画像の位置のそれぞれを、対応する画像の大きさ及び前記ビデオカメラの視野に基づいて、前記位置センサの三次元座標系に変換するステップを含む
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記動きに富んだ経路は、前記位置センサに近づく動き、及び、前記位置センサから遠ざかる動きのうちの少なくとも一つを含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記動きは、最小限の加速度のしきい値を越える加速度を生じさせることを特徴とする請求項1に記載の方法。
【請求項5】
前記追跡対象オブジェクトは、前記動きに富んだ経路に沿って移動されるとき、ほぼ固定されたピッチ及びロールを保ち、
ピッチ及びロールがほぼ固定されることにより、前記慣性データは、三次元ワールド座標系に変換されることなく、算出された加速度に融合されることが可能である
ことを特徴とする請求項1に記載の方法。
【請求項6】
取得された慣性データを、重力に沿った軸を有する三次元ワールド座標系に変換するステップを更に備えることを特徴とする請求項1に記載の方法。
【請求項7】
前記慣性データは、第1のセットのベクトルを含み、算出された加速度は、第2のセットのベクトルを含み、
算出された加速度に前記慣性データを融合させるステップは、
前記位置センサのピッチを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第1の角度を決定するステップと、
前記位置センサと前記追跡対象オブジェクトとの間の相対ヨーを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第2の角度を決定するステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項8】
算出された加速度に前記慣性データを融合させるステップは、
可能性のある複数の第1の角度と可能性のある複数の第2の角度を選択するステップと、
前記可能性のある複数の第1の角度のうちの一つと、前記可能性のある複数の第2の角度のうちの一つとのそれぞれの組み合わせにより、前記第1のセットのベクトルを回転させるステップと、
前記可能性のある複数の第1の角度のうちの一つと、前記可能性のある複数の第2の角度のうちの一つとのそれぞれの組み合わせについて、回転された第1のセットのベクトルと、第2のセットのベクトルとの間の差を算出するステップと、
回転された第1のセットのベクトルと、第2のセットのベクトルとの間の差を最小にする、可能性のある第1の角度と可能性のある第2の角度との組み合わせを、前記第1の角度及び前記第2の角度として特定するステップと、
を更に含むことを特徴とする請求項7に記載の方法。
【請求項9】
算出された加速度に前記慣性データを融合させるステップは、
前記第1のセットのベクトルと前記第2のセットのベクトルとの間の三次元角度を決定するステップと、
前記三次元角度を、前記第1の角度及び前記第2の角度に分解するステップと、
を更に含むことを特徴とする請求項7に記載の方法。
【請求項10】
前記第1のセットのベクトル及び前記第2のセットのベクトルのそれぞれについて、最小限のしきい値よりも小さいベクトルを除去するステップを更に含むことを特徴とする請求項7に記載の方法。
【請求項11】
前記第1のセットのベクトル及び前記第2のセットのベクトルのそれぞれを、大きいベクトルは小さいベクトルよりも重く重み付けされるように、ベクトルの大きさに基づいて重み付けをするステップを更に備えることを特徴とする請求項7に記載の方法。
【請求項12】
前記第1のセットのベクトルのそれぞれと、時間的に近接する前記第2のセットのベクトルとの大きさを比較するステップと、
前記第1のセットの第1のベクトルが、時間的に近接する前記第2のセットの第2のベクトルと、ほぼ同じ大きさである場合、前記第1のベクトルは、三次元ワールド座標系における動きを表現し、前記第2のベクトルは、前記位置センサの三次元座標系における動きを表現すると決定するステップと、
を更に備えることを特徴とする請求項7に記載の方法。
【請求項13】
前記位置センサは、カメラ、Z−カメラ、超音波センサ、及び光検出器のうちの一つであることを特徴とする請求項1に記載の方法。
【請求項14】
前記慣性データは、前記追跡対象オブジェクトの中心から所定のずれを有する慣性センサにより収集され、
前記方法は、ジャイロスコープにより提供される観測値及び加速度計と前記中心との間の既知の距離に基づいて、慣性データ及び算出された加速度のうちの一つに、前記所定のずれを補償するオフセットを適用するステップを更に備えることを特徴とする請求項1に記載の方法。
【請求項15】
前記位置センサの視野が未知であり、
前記方法は、前記位置センサの視野を求めるステップを更に備えることを特徴とする請求項1に記載の方法。
【請求項16】
前記視野を求めるステップは、
1以上の可能性のある視野を仮定するステップと、
それぞれの可能性のある視野について、前記慣性データの算出された加速度への融合を試みるステップと、
前記慣性データが算出された加速度に最良に融合される、前記可能性のある視野を、前記位置センサの視野として特定するステップと、
を含むことを特徴とする請求項14に記載の方法。
【請求項17】
カメラの視野を算出する方法であって、
前記カメラの撮像平面への球の楕円投影を含む、前記球の画像データを取得するステップと、
前記画像データから、前記カメラの撮像平面における前記球の位置を決定するステップと、
前記楕円投影の長軸及び短軸を算出するステップと、
前記球の位置及び前記長軸と前記短軸との間の差に基づいて、前記カメラの視野を算出するステップと、
三次元平面において前記球を追跡するために前記視野を用いるステップと、
を備えることを特徴とする方法。
【請求項18】
前記カメラは、複数の既知の視野の設定を有することを特徴とする請求項17に記載の方法。
【請求項19】
前記複数の既知の視野の設定のそれぞれと、算出された視野とを比較するステップと、
前記カメラの現在の視野が、算出された視野に最も近い視野の設定に等しいと決定するステップと、
を更に備えることを特徴とする請求項18に記載の方法。
【請求項20】
処理システムにより実行されたとき、前記処理システムに方法を実行させる命令を含むコンピュータ読み取り可能な記録媒体であって、
前記方法は、
追跡対象オブジェクトが動きに富んだ経路に沿って移動されるとき、位置センサから前記追跡対象オブジェクトの位置データを取得するステップと、
前記追跡対象オブジェクトが前記動きに富んだ経路に沿って移動されるとき、前記追跡対象オブジェクトに対応する慣性データを取得するステップと、
前記位置データを前記位置センサの三次元座標系に変換するステップと、
前記位置センサの前記三次元座標系における前記追跡対象オブジェクトの加速度を算出するステップと、
算出された加速度に前記慣性データを融合させるステップと、
を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項21】
前記位置センサは、ビデオカメラであり、
前記位置データは、複数の画像の位置及び画像の大きさを含み、
前記位置データを変換するステップは、前記複数の画像の位置のそれぞれを、対応する画像の大きさ及び前記ビデオカメラの視野に基づいて、前記位置センサの三次元座標系に変換するステップを含む
ことを特徴とする請求項20に記載のコンピュータ読み取り可能な記録媒体。
【請求項22】
前記慣性データは、第1のセットのベクトルを含み、算出された加速度は、第2のセットのベクトルを含み、
算出された加速度に前記慣性データを融合させるステップは、
前記位置センサのピッチを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第1の角度を決定するステップと、
前記位置センサと前記追跡対象オブジェクトとの間の相対ヨーを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第2の角度を決定するステップと、
を含むことを特徴とする請求項20に記載のコンピュータ読み取り可能な記録媒体。
【請求項23】
前記位置センサの視野が未知であり、
前記追跡対象オブジェクトは球であり、
前記方法は、前記位置センサの視野を求めるステップを更に備え、
前記視野を求めるステップは、
前記位置センサの画像平面への前記球の楕円投影を含む、前記球の画像データを取得するステップと、
前記画像データから、前記位置センサの画像平面における前記球の位置を決定するステップと、
前記楕円投影の長軸及び短軸を算出するステップと、
前記球の位置及び前記長軸と前記短軸との間の差に基づいて、前記位置センサの視野を算出するステップと、
を含むことを特徴とする請求項20に記載のコンピュータ読み取り可能な記録媒体。
【請求項24】
追跡対象オブジェクトが動きに富んだ経路に沿って移動されるときに、慣性データを収集し、前記慣性データを計算装置に送信する、1以上の慣性センサを含む追跡対象オブジェクトと、
前記追跡対象オブジェクトが動きに富んだ経路に沿って移動されるとき、前記追跡対象オブジェクトの位置データを収集し、前記位置データを前記計算装置に送信する位置センサと、
前記慣性データ及び前記位置データを取得し、前記位置データを前記位置センサの三次元座標系に変換し、前記位置センサの前記三次元座標系における前記追跡対象オブジェクトの加速度を算出し、算出された加速度に前記慣性データを融合させる計算装置と、
を備えることを特徴とする追跡システム。
【請求項25】
前記位置センサは、ビデオカメラであり、
前記位置データは、複数の画像の位置及び画像の大きさを含み、
前記位置データの変換は、前記複数の画像の位置のそれぞれを、対応する画像の大きさ及び前記ビデオカメラの視野に基づいて、前記位置センサの三次元座標系に変換することを含む
ことを特徴とする請求項24に記載の追跡システム。
【請求項26】
前記動きに富んだ経路は、前記位置センサに近づく動き、及び、前記位置センサから遠ざかる動きのうちの少なくとも一つを含むことを特徴とする請求項25に記載の追跡システム。
【請求項27】
前記動きは、最小限の加速度のしきい値を越える加速度を生じさせることを特徴とする請求項25に記載の追跡システム。
【請求項28】
前記計算装置は、更に、取得された慣性データを、重力に沿った軸を有する三次元ワールド座標系に変換することを特徴とする請求項25に記載の追跡システム。
【請求項29】
前記慣性データは、第1のセットのベクトルを含み、算出された加速度は、第2のセットのベクトルを含み、
算出された加速度に前記慣性データを融合させることは、
前記位置センサのピッチを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第1の角度を決定することと、
前記位置センサと前記追跡対象オブジェクトとの間の相対ヨーを表現する、前記第1のセットのベクトルと前記第2のセットのベクトルとの間の第2の角度を決定することと、
を含むことを特徴とする請求項25に記載の追跡システム。
【請求項30】
算出された加速度に前記慣性データを融合させることは、
可能性のある複数の第1の角度と可能性のある複数の第2の角度を選択することと、
前記可能性のある複数の第1の角度のうちの一つと、前記可能性のある複数の第2の角度のうちの一つとのそれぞれの組み合わせにより、前記第1のセットのベクトルを回転させることと、
前記可能性のある複数の第1の角度のうちの一つと、前記可能性のある複数の第2の角度のうちの一つとのそれぞれの組み合わせについて、回転された第1のセットのベクトルと、第2のセットのベクトルとの間の差を算出することと、
回転された第1のセットのベクトルと、第2のセットのベクトルとの間の差を最小にする、可能性のある第1の角度と可能性のある第2の角度との組み合わせを、前記第1の角度及び前記第2の角度として特定することと、
を更に含むことを特徴とする請求項29に記載の追跡システム。
【請求項31】
算出された加速度に前記慣性データを融合させることは、
前記第1のセットのベクトルと前記第2のセットのベクトルとの間の三次元角度を決定することと、
前記三次元角度を、前記第1の角度及び前記第2の角度に分解することと、
を更に含むことを特徴とする請求項29に記載の追跡システム。
【請求項32】
前記計算装置は、更に、前記第1のセットのベクトル及び前記第2のセットのベクトルのそれぞれについて、最小限のしきい値よりも小さいベクトルを除去することを特徴とする請求項29に記載の追跡システム。
【請求項33】
前記計算装置は、更に、前記第1のセットのベクトル及び前記第2のセットのベクトルのそれぞれを、大きいベクトルは小さいベクトルよりも重く重み付けされるように、ベクトルの大きさに基づいて重み付けをするステップを更に備えることを特徴とする請求項29に記載の追跡システム。
【請求項34】
前記計算装置は、更に、
前記第1のセットのベクトルのそれぞれと、時間的に近接する前記第2のセットのベクトルとの大きさを比較し、
前記第1のセットの第1のベクトルが、時間的に近接する前記第2のセットの第2のベクトルと、ほぼ同じ大きさである場合、前記第1のベクトルは、三次元ワールド座標系における動きを表現し、前記第2のベクトルは、前記位置センサの三次元座標系における動きを表現すると決定する
ことを特徴とする請求項29に記載の追跡システム。
【請求項35】
前記位置センサは、カメラ、Z−カメラ、超音波センサ、及び光検出器のうちの一つであることを特徴とする請求項25に記載の追跡システム。
【請求項36】
前記慣性データは、前記追跡対象オブジェクトの中心から所定のずれを有する1以上の慣性センサにより収集され、
前記計算装置は、ジャイロスコープにより提供される観測値及び加速度計と前記中心との間の既知の距離に基づいて、慣性データ及び算出された加速度のうちの一つに、前記所定のずれを補償するオフセットを適用することを特徴とする請求項25に記載の追跡システム。
【請求項37】
前記位置センサの視野が未知であり、
前記計算装置は、更に、前記位置センサの視野を求めることを特徴とする請求項25に記載の追跡システム。
【請求項38】
前記視野を求めることは、
1以上の可能性のある視野を仮定することと、
それぞれの可能性のある視野について、前記慣性データの算出された加速度への融合を試みることと、
前記慣性データが算出された加速度に最良に融合される、前記可能性のある視野を、前記位置センサの視野として特定することと、
を含むことを特徴とする請求項37に記載の追跡システム。
【請求項39】
1以上の慣性センサを含む、半径が既知の球と、
カメラの撮像平面への前記球の楕円投影を含む、前記球の画像データを収集して、前記画像データを計算装置に送信するカメラと、
前記画像データを取得して、前記画像データから前記カメラの撮像平面における前記球の位置を決定し、前記楕円投影の長軸及び短軸を算出し、前記球の位置及び前記長軸と前記短軸との間の差に基づいて前記カメラの視野を算出し、三次元平面において前記球を追跡するために前記視野を用いる計算装置と、
を備えることを特徴とする追跡システム。
【請求項40】
前記カメラは、複数の既知の視野の設定を有し、
前記計算装置は、更に、前記複数の既知の視野の設定のそれぞれと算出された視野とを比較して、前記カメラの現在の視野が算出された視野に最も近い視野の設定に等しいと決定することを特徴とする請求項39に記載の追跡システム。
【図1】
【図2A】
【図2B】
【図2C】
【図3】
【図4】
【図6】
【図7】
【図8】
【図9】
【図10】
【図12】
【図5】
【図11】
【図2A】
【図2B】
【図2C】
【図3】
【図4】
【図6】
【図7】
【図8】
【図9】
【図10】
【図12】
【図5】
【図11】
【公表番号】特表2012−512485(P2012−512485A)
【公表日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2011−542152(P2011−542152)
【出願日】平成21年9月2日(2009.9.2)
【国際出願番号】PCT/US2009/055779
【国際公開番号】WO2010/071699
【国際公開日】平成22年6月24日(2010.6.24)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
【公表日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願日】平成21年9月2日(2009.9.2)
【国際出願番号】PCT/US2009/055779
【国際公開番号】WO2010/071699
【国際公開日】平成22年6月24日(2010.6.24)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
[ Back to top ]