以下、本発明の一実施形態について、図面を参照して詳細に説明する。
図1は、本発明の一実施形態に係る位置検出システム100の概略構成を示す機能ブロック図である。本実施形態に係る位置検出システム100は、複数の撮像装置と、各撮像装置と通信可能に構成される情報処理装置130とを備える。本実施形態では、図1に示すように、位置検出システム100は、複数の撮像装置として、第1撮像装置110と、第2撮像装置120という、2つの撮像装置を備える。位置検出システム100は、3つ以上の撮像装置を備えていてもよい。
図2は、図1の位置検出システム100による位置検出原理について説明する概略図である。本実施形態に係る位置検出システム100では、第1撮像装置110及び第2撮像装置120が、位置検出の対象である対象物Pを撮像し、情報処理装置130が、第1撮像装置110及び第2撮像装置120が取得した撮像画像に基づいて、対象物Pの位置を算出する。第1撮像装置110及び第2撮像装置120は、図2に一例として示すように、それぞれ異なる方向から対象物Pを撮像する。本実施形態において、対象物Pは、例えば700〜1500nm程度の近赤外線を発する赤外線LED(発光ダイオード:Light Emitting Diode)であるとして説明する。
再び図1を参照すると、第1撮像装置110は、制御部111と、記憶部112と、通信部113と、第1撮像部114とを備える。第1撮像装置110は、対象物Pを撮像し、撮像画像を情報処理装置130に送信する。
制御部111は、第1撮像装置110が備える各機能ブロックをはじめとして、第1撮像装置110の全体を制御及び管理するプロセッサである。制御部111は、制御手順を規定したプログラムを実行するCPU(Central Processing Unit)等のプロセッサで構成される。プロセッサにより実行されるプログラムは、例えば記憶部112又は外部の記憶媒体等に格納される。制御部111は、例えば第1撮像部114による撮像処理の制御を行う。
記憶部112は、多様なメモリデバイスを有し、用途に応じてそれぞれ各種情報、例えば制御部111の動作に必要なデータ等を記憶する。また、記憶部112は、ワークメモリとして機能するRAM(Random Access Memory)等のデバイスも有する。記憶部112は、例えば第1撮像部114が撮像して取得した撮像画像(以下「第1撮像画像」ともいう)を記憶してもよい。
通信部113は、情報処理装置130と有線通信又は無線通信を行うことにより、各種情報の送受信を行う。例えば、第1撮像装置110は、通信部113を介して、第1撮像画像を情報処理装置130に送信する。
第1撮像部114は、対象物Pを撮像する。第1撮像部114は、光を電気信号に変換することにより素子上に投影された画像を撮像する撮像素子(イメージセンサ)を備える。本実施形態では、第1撮像部114は、対象物Pが発する近赤外光を検出する赤外線カメラである。
第2撮像装置120は、制御部121と、記憶部122と、通信部123と、第2撮像部124とを備える。制御部121、記憶部122、通信部123及び第2撮像部124の各機能は、それぞれ第1撮像装置110の制御部111、記憶部112、通信部113及び第1撮像部114と同様であるため、ここではその詳細な説明を省略する。なお、本明細書において、第2撮像部124が撮像して取得した撮像画像を、以下「第2撮像画像」ともいう。
情報処理装置130は、制御部131と、記憶部132と、通信部133とを備える。情報処理装置130は、第1撮像装置110及び第2撮像装置120が取得した撮像画像に基づいて、対象物Pの位置を算出する。
制御部131は、情報処理装置130が備える各機能ブロックをはじめとして、情報処理装置130の全体を制御及び管理するプロセッサである。制御部131は、制御手順を規定したプログラムを実行するCPU等のプロセッサで構成される。プロセッサにより実行されるプログラムは、例えば記憶部132又は外部の記憶媒体等に格納される。制御部131は、第1撮像装置110が取得した第1撮像画像と、第2撮像装置120が取得した第2撮像画像とに基づいて、検出対象の位置を算出する。制御部131による検出対象の位置の算出処理の詳細については、後述する。
記憶部132は、多様なメモリデバイスを有し、用途に応じてそれぞれ各種情報、例えば制御部131の動作に必要なデータ等を記憶する。また、記憶部132は、ワークメモリとして機能するRAM等のデバイスも有する。記憶部132は、例えば第1撮像装置110及び第2撮像装置120からそれぞれ取得した第1撮像画像及び第2撮像画像を記憶してもよい。また、記憶部132は、例えば算出した対象物の位置の履歴を記憶してもよい。情報処理装置130は、対象物の位置の履歴に基づき、対象物の変位(軌跡)を算出できる。
通信部133は、第1撮像装置110及び第2撮像装置120と有線通信又は無線通信を行うことにより、各種情報の送受信を行う。例えば、情報処理装置130は、通信部133を介して、第1撮像画像及び第2撮像画像を、それぞれ第1撮像装置110及び第2撮像装置120から取得する。
次に、図2を参照しながら、情報処理装置130による検出対象の位置の算出処理の詳細について説明する。
図2には、第1撮像装置110の撮像範囲A及び第2撮像装置120の撮像範囲Bが、それぞれ仮想的に示されている。すなわち、図2において、撮像範囲Aは、第1撮像装置110が取得した第1撮像画像を仮想的に示し、撮像範囲Bは、第2撮像装置120が取得した第2撮像画像を仮想的に示す。第1撮像画像及び第2撮像画像には、それぞれ画像平面上の所定の位置に、対象物Pが映っている。第1撮像画像及び第2撮像画像において、対象物Pが映っている位置の座標は、例えば、それぞれ第1撮像部114及び第2撮像部124の注視点を基準にして定められる。
本実施形態において、第1撮像装置110及び第2撮像装置120の位置ベクトルを、それぞれベクトルc1及びベクトルc2で示す。また、第1撮像装置110から対象物Pに向かう方向ベクトルをベクトルaで、第2撮像装置120から対象物Pに向かう方向ベクトルをベクトルbで示す。方向ベクトルaは、例えば第1撮像部114が備える撮像素子の位置から第1撮像画像の画像平面上における検出対象Pに向かう方向ベクトルとして定義される。また、同様に、方向ベクトルbは、例えば第2撮像部124が備える撮像素子の位置から第2撮像画像の画像平面上における対象物Pに向かう方向ベクトルとして定義される。方向ベクトルa及び方向ベクトルbは、例えば、情報処理装置130の制御部131が、それぞれ第1撮像画像及び第2撮像画像に基づいて算出する。なお、図2では、方向ベクトルa及び方向ベクトルbの長さは、例示的なものとして示している。また、対象物Pの位置ベクトルをベクトルpで表す。
対象物Pの位置ベクトルpは、位置ベクトルc1及び方向ベクトルaを用いて、下式(1)のように表される。情報処理装置130の制御部131は、位置ベクトルpを、下式(1)のように設定する。
式(1)において、nは、実数であり、例えば第1撮像部114のセンサ位置から検出対象Pまでの距離に応じて定まる。nが算出(決定)されることにより、位置ベクトルpが定まり、対象物Pの位置が定まる。
ここで、第2撮像装置120から対象物Pに向かう方向ベクトル(ここではベクトルdとする)は、第2撮像装置120の位置ベクトルc2を用いて、下式(2)のように表すことができる。制御部131は、方向ベクトルdを算出する。
上式(2)に示す方向ベクトルdは、第2撮像装置120から対象物Pに向かう方向ベクトルとして定義したため、方向ベクトルbと方向が等しい。従って、方向ベクトルdと方向ベクトルbとのなす角が0°であるため、方向ベクトルdと方向ベクトルbとの外積の大きさは0となる。これを式で表現すると、下式(3)のように表現される。
上式(3)を、nについて解くと、下式(4)が導出される。
上式(4)を、上式(1)に代入すると、位置ベクトルpは、下式(5)のように表される。
上式(5)において、位置ベクトルc1及び位置ベクトルc2は、それぞれ第1撮像装置110及び第2撮像装置120を設置した位置により定まる。また、方向ベクトルa及び方向ベクトルbは、それぞれ第1撮像装置110及び第2撮像装置120が取得した第1撮像画像及び第2撮像画像から、情報処理装置130が算出することができる。従って、情報処理装置130は、上式(5)を用いて、対象物Pの位置ベクトルpを算出できる。制御部131は、式(3)から式(5)に示すように、方向ベクトルdと方向ベクトルbとに基づいて、対象物Pの位置を算出する。とくに、制御部131は、方向ベクトルdと方向ベクトルbとの外積の値に基づいて、外積の値が0であると仮定して、対象物Pの位置を算出する。このようにして、位置検出システム100によれば、対象物Pの位置を特定可能である。
また、本実施形態に係る位置検出システム100によれば、第1撮像装置110及び第2撮像装置120が、それぞれ異なる方向から、対象物Pを撮像する。そのため、例えばステレオカメラ等のように、2つのカメラを使用して1つの方向から撮像した画像に基づいて、視差を利用して距離を算出するシステムと比較して、本実施形態に係る位置検出システム100は、位置検出の精度が向上する。
位置検出システム100は、第1撮像装置110及び第2撮像装置120による、各撮像フレームごと、又は所定の数フレームごとに、対象物Pの位置を特定してもよい。
ところで、特定の状況下では、情報処理装置130による上述の処理によっては、対象物Pの位置を特定できない状態となる場合がある。例えば、対象物Pが障害物によって隠れることにより、第1撮像装置110又は第2撮像装置120の撮像画像に映らなくなる場合がある。このように対象物Pが撮像画像に映らない状態を、以下、本明細書では「マスク状態」という。マスク状態では、制御部131は、方向ベクトルa又は方向ベクトルbを算出することができなくなり、上式(5)によって対象物Pの位置を特定できなくなる。
また、例えば、位置検出システム100による位置検出対象となる対象物Pが複数である場合であって、2つ以上の対象物Pが第1撮像装置110又は第2撮像装置120の注視方向に対して直列に並ぶことにより、撮像画像において複数の対象物Pが重なる場合がある。このように、撮像画像において複数の対象物Pが重なる状態を、以下、本明細書では「カスケード状態」という。カスケード状態では、制御部131は、撮像画像における複数の対象物Pが重なった状態が解消された場合に、当該複数の対象物Pの位置を取り違えることにより、複数の対象物Pの位置を誤って決定する可能性がある。
本実施形態に係る位置検出システム100は、対象物Pの位置を特定できない状態となった場合に、対象物Pの位置を特定できない状態がマスク状態に起因するものであるかカスケード状態に起因するものであるかを判定できる。ここで、位置検出システム100による、対象物Pの位置を特定できない状態がマスク状態に起因するものであるかカスケード状態に起因するものであるかの判定処理について説明する。なお、以下、本明細書では、マスク状態とカスケード状態とを合わせて、「ロスト状態」という。
対象物Pがマスク状態となった場合、第1撮像画像及び第2撮像画像の少なくともいずれかにおいて、対象物Pの個数が減少する。例えば、位置検出システム100において、1つの対象物Pの位置を検出する場合、対象物Pがマスク状態になると、第1撮像画像及び第2撮像画像の少なくともいずれかに映っている対象物Pの個数が0となる。また、対象物Pがカスケード状態となった場合も、第1撮像画像及び第2撮像画像の少なくともいずれかにおいて複数の対象物Pが重なるため、撮像画像に映る対象物Pの個数が減少する。このように、第1撮像画像及び第2撮像画像の少なくともいずれかにおいて、対象物Pの個数が減少した場合、情報処理装置130の制御部131は、対象物Pがロスト状態になったと決定する。
制御部131は、対象物Pがロスト状態であると決定した場合、ロスト状態がマスク状態に起因するものであるかカスケード状態に起因するものであるかを判定する。
ここで、まず、対象物Pがマスク状態である場合における制御部131の処理について説明する。ここでは、第1撮像装置110が撮像する第1撮像画像において、対象物Pが映らなくなった場合を例に説明する。
上述の制御部131による対象物Pの位置の算出処理の説明において、制御部131は、第1撮像画像及び第2撮像画像に基づいて方向ベクトルa及び方向ベクトルbを算出すると説明した。しかし、対象物Pが第1撮像画像においてマスク状態となり第1撮像画像に映っていない場合、制御部131は、方向ベクトルaを算出できない。この場合、制御部131は、対象物Pが最後に第1撮像画像に映っていたフレームの第1撮像画像に基づいて、方向ベクトルaを定める。すなわち、制御部131は、対象物Pの位置を、最後に対象物Pが映っていたフレームの位置であると決定(仮定)し、当該対象物Pの位置に基づいて方向ベクトルaを設定する。
制御部131は、マスク状態である場合、上述のようにして設定した方向ベクトルaを用いて、上式(5)により、対象物Pの位置ベクトルpを算出する。制御部131は、対象物Pが、次に第1撮像画像に映るまで、上述のように設定した方向ベクトルaを用いて対象物Pの位置ベクトルを算出する。制御部131は、対象物Pがマスク状態でなくなった場合、すなわち第1撮像画像に対象物Pが映り込んだ場合、再び第1撮像画像に基づいて方向ベクトルaを決定し、決定した方向ベクトルaを用いて位置ベクトルpを算出することにより対象物Pの位置を算出する。
ここで、対象物Pがマスク状態である間、制御部131は、最後に対象物Pが映っていたフレームの位置を対象物Pの位置であると仮定して算出処理を行うが、実際には、対象物Pは移動しており、対象物Pの位置が変化している場合がある。制御部131が仮定した対象物Pの位置と、実際の対象物Pの位置とが異なる場合、位置ベクトルaを用いて表される上記方向ベクトルd(上式(2))と、第2撮像画像に基づいて算出される方向ベクトルbとは、方向が等しくならない。すなわち、この場合、方向ベクトルdと方向ベクトルbとの外積の大きさは0にならない。これを利用して、制御部131は、方向ベクトルdと方向ベクトルbとの外積の大きさが0になるか否か、すなわち上式(3)が成立するか否かにより、対象物Pがマスク状態であるか否かを判断することができる。制御部131は、上式(3)が成立しない場合、対象物Pがマスク状態であると判断できる。また、制御部131は、上式(3)が成立する場合、対象物Pがマスク状態でないと判断できる。
一方、対象物Pがカスケード状態である場合、複数の対象物Pが撮像画像上で1つの対象物として映ることとなる。ここでは、第1撮像装置110が撮像する第1撮像画像において、複数の対象物Pが1つの対象物として映っている場合について説明する。この場合、第1撮像画像において複数の対象物Pの奥行き方向の位置関係が判定できなくなるが、複数の対象物Pが第1撮像画像に映っているため、制御部131は、第1撮像画像に基づいて方向ベクトルaを決定できる。対象物Pは、制御部131が決定した方向ベクトルa上に存在するため、位置ベクトルaを用いて表される上記方向ベクトルd(上式(2))と、第2撮像画像に基づいて算出される方向ベクトルbとは、方向が等しい。従って、方向ベクトルdと方向ベクトルbとの外積の大きさが0になる。
制御部131は、マスク状態である場合と、カスケード状態である場合との、方向ベクトルdと方向ベクトルbとの上記外積の性質を用いて、ロスト状態が、マスク状態に起因するものであるか、カスケード状態に起因するものであるか否かを判定できる。具体的には、制御部131は、方向ベクトルdと方向ベクトルbとの外積の大きさが0でない場合、ロスト状態がマスク状態に起因するものであると判定し、方向ベクトルdと方向ベクトルbとの外積の大きさが0である場合、ロスト状態がカスケード状態に起因するものであると判定できる。
制御部131は、判定処理のための所定の閾値を設定し、当該閾値と外積の大きさとの比較に基づいて、ロスト状態が、マスク状態に起因するものであるか、カスケード状態に起因するものであるか否かを判定してもよい。具体的には、制御部131は、方向ベクトルdと方向ベクトルbとの外積の大きさが閾値(例えば0.1)よりも大きい場合、ロスト状態がマスク状態に起因するものであると判定し、方向ベクトルdと方向ベクトルbとの外積の大きさが閾値以下である場合、ロスト状態がカスケード状態に起因するものであると判定してもよい。このように閾値を設定して判定を行うことにより、判定処理において一定の誤差が生じた場合であっても、当該誤差を考慮した判定を行うことができる。
図3は、情報処理装置130によるロスト状態の原因の判別処理の一例を示すフローチャートである。図3は、例えば情報処理装置130の制御部131が、対象物Pがロスト状態であると判断した場合に実行される。
制御部131は、まず、第1撮像画像及び第2撮像画像に基づいて、方向ベクトルd及び方向ベクトルbを算出する(ステップS101)。
制御部131は、ステップS101で算出した方向ベクトルdと方向ベクトルbとの外積の大きさを算出する(ステップS102)。
制御部131は、ステップS102で算出した外積の大きさが、所定の閾値以下であるか否かを判定する(ステップS103)。
制御部131は、外積の大きさが所定の閾値以下であると判定した場合(ステップS103のYes)、ロスト状態が、カスケード状態に起因すると判断する(ステップS104)。そして、制御部131は、このフローを終了する。
一方、制御部131は、外積の大きさが所定の閾値より大きいと判定した場合(ステップS103のNo)、ロスト状態がマスク状態に起因すると判断する(ステップS105)。そして、制御部131は、このフローを終了する。
なお、制御部131は、複数の対象物Pのそれぞれについて、3次元的な位置の追跡を行うことにより、対象物Pがカスケード状態となった場合であっても、各対象物Pの位置を取り違えることなく、検出することができる。具体的には、各対象物Pの位置の検出にあたり、例えば制御部131は、ロスト状態でない複数の対象物Pの位置を算出し、算出した対象物Pの位置の履歴から対象物Pの変位(軌跡)を算出する。制御部131は、算出した対象物Pの変位から、対象物Pの3次元的な進行方向を特定できる。そうすると、複数の対象物Pが、あるフレームにおいてカスケード状態となったとしても、制御部131は、特定した進行方向に基づいて、次のフレームにおける複数の対象物Pのそれぞれの位置を予測することができる。制御部131は、当該次のフレームにおける各対象物Pの位置と、予測した位置とを、例えば距離が近いもの同士を対応付けることにより、各対象物Pの位置を検出できる。このように、制御部131は、対象物Pの位置の追跡を行うことにより対象物Pの位置を予測し、予測した位置に基づいて、カスケード状態となった複数の対象物Pの位置を特定できる。
なお、制御部131は、算出した対象物Pの変位から、対象物Pの3次元的な進行方向を特定できるため、複数の対象物Pがカスケード状態となるか否かについて、予測を行うこともできる。制御部131は、複数の対象物Pがカスケード状態となるか否かについて予測を行うことにより、ロスト状態がマスク状態に起因するものであるか、カスケード状態に起因するものであるかを判定することもできる。つまり、制御部131は、複数の対象物Pがカスケード状態になると予測した場合に、ロスト状態が発生した場合、当該ロスト状態を、カスケード状態に起因するものであると判定することができ、複数の対象物Pがカスケード状態にならないと予測した場合に、ロスト状態が発生した場合、当該ロスト状態を、マスク状態に起因するものであると判定することができる。
次に、上述の位置検出システム100の応用例について説明する。本明細書では、位置検出システム100を、ユーザの頭部に装着される表示装置であるヘッドマウントディスプレイ(HMD:Head Mounted Display)の位置の特定に応用する場合の一例について説明する。位置検出システム100を応用した情報表示システムでは、上述の位置検出システム100によりHMDの位置を特定し、特定した位置に応じた情報をHMDが備える表示部に表示する。
図4は、位置検出システム100を応用した情報表示システム200の概略構成を示す機能ブロック図である。図4に示すように、情報表示システム200は、位置検出システム100が含む第1撮像装置110、第2撮像装置120及び情報処理装置130に加え、HMD140を備える。情報処理装置130と、HMD140とは、有線又は無線を介して通信可能に構成される。
図5は、HMD140の一例を示す外観斜視図である。HMD140は、ユーザが頭部に装着可能な略半球形状の装着部141と、ユーザがHMD140を装着した際にユーザに対して情報を表示する表示部142と、光源143とを備える。本実施形態では、HMD140は、図5に示すように、2つの光源143a及び143bを備えるとして説明する。なお、2つの光源143a及び143bを区別しない場合には、まとめて光源143と記載する。
再び図4を参照すると、HMD140は、表示部142と、光源143と、制御部144と、記憶部145と、通信部146と、角速度検出部147とを備える。
表示部142は、HMD140を装着したユーザに情報を表示する。表示部142は、例えば情報を表示する液晶ディスプレイ(LCD:Liquid Crystal Display)又は有機ELディスプレイ(OELD:Organic Electroluminescence Display)等のディスプレイと、ディスプレイを保持するハウジングとを有する。図5には、ユーザの視線を外界から遮断するハウジングを有する、いわゆる没入型の表示部142が示されているが、表示部142は、没入型に限られない。表示部142は、例えば、ユーザが表示部142を介して外界を視認可能ないわゆる透過型(シースルー型)であってもよい。
光源143は、第1撮像装置110及び第2撮像装置120により検出される光を発するものであり、図2で説明した対象物Pに相当するものである。光源143は、例えば図2で説明したものと同様に、近赤外光を発する赤外線LEDである。本実施形態では、2つの光源143a及び143bは、図5に一例として示すように、ユーザがHMD140を装着した際に、前後方向に配列されるように、装着部141に設けられる。
制御部144は、HMD140が備える各機能ブロックをはじめとして、HMD140の全体を制御及び管理するプロセッサである。制御部144は、制御手順を規定したプログラムを実行するCPU等のプロセッサで構成される。プロセッサにより実行されるプログラムは、例えば記憶部145又は外部の記憶媒体等に格納される。制御部144は、例えば、ユーザの位置及びユーザの頭部の向き等に基づいて、表示部142に多様な情報を表示する。具体的には、制御部144は、例えばユーザの位置及び頭部の向きに追従した仮想空間を表示部142に表示させる。なお、ユーザの位置は、情報処理装置130によって特定される、ユーザが装着したHMD140の位置により定められる。また、ユーザの頭部の向きは、例えば、頭部の3軸方向における向き又は向きの変化等を含む。
記憶部145は、多様なメモリデバイスを有し、用途に応じてそれぞれ各種情報、例えば制御部144の動作に必要なデータ等を記憶する。また、記憶部145は、ワークメモリとして機能するRAM等のデバイスも有する。また、記憶部145は、例えば表示部142に表示する仮想空間に関する各種データを記憶する。
通信部146は、情報処理装置130と有線通信又は無線通信を行うことにより、各種情報の送受信を行う通信インターフェースを有する。例えば、HMD140は、通信部146を介して、情報処理装置130から、第1撮像画像及び第2撮像画像に基づいて情報処理装置130が特定したHMD140の位置に関する情報を取得する。
角速度検出部147は、例えばHMD140の角速度の変化を検出するセンサである。角速度検出部147は、例えばジャイロセンサにより構成される。なお、角速度検出部147は、ジャイロセンサに限られない。角速度検出部147は、HMD140の角度変化を検出できればよい。従って、角速度検出部147は、例えば、加速度センサ、角度センサ、その他のモーションセンサ、又はこれらのセンサの組合せ等によって構成されていてもよい。角速度検出部147が検出した角速度の変化に関する情報は、制御部144に送信される。制御部144は、角速度検出部147から取得した角速度の変化に関する情報に基づき、ユーザの頭部の向きを推定できる。
次に、情報表示システム200における仮想空間の表示処理について、図6を参照して説明する。
まず、第1撮像装置110が、光源143の画像を撮像することにより、第1撮像画像を取得する(ステップS201)。
第1撮像装置110は、取得した第1撮像画像を情報処理装置130に送信する(ステップS202)。
また、第2撮像装置120が、光源143の画像を撮像することにより、第2撮像画像を取得する(ステップS203)。
第2撮像装置120は、取得した第2撮像画像を情報処理装置130に送信する(ステップS204)。
なお、第1撮像装置110によるステップS201及びS202の処理と、第2撮像装置120によるステップS203及びS204の処理とは、同時に実行されてもよい。
情報処理装置130は、第1撮像装置110及び第2撮像装置120から、それぞれ第1撮像画像及び第2撮像画像を取得すると、取得した撮像画像に基づいて、HMD140の位置を特定する(ステップS205)。具体的には、情報処理装置130は、例えば予め記憶部132に記憶された第1撮像装置110の位置及び第2撮像装置120の位置と、取得した撮像画像とを用いて、式(5)により、光源143の位置を算出することにより、HMD140の位置を特定する。
情報処理装置130は、特定したHMD140の位置に関する情報をHMD140に送信する(ステップS206)。
HMD140は、角速度検出部147を用いて、HMD140の角速度の変化に関する情報を取得する(ステップS207)。
そして、HMD140は、角速度検出部147が取得した角速度の変化に関する情報に基づいて、ユーザの頭部の向きを推定する(ステップS208)。
HMD140は、ステップS206で情報処理装置130から取得した位置に関する情報と、ステップS208で推定した頭部の向きに基づいて、表示部142に仮想空間を表示する(ステップS209)。
このようにして、情報表示システム200は、HMD140の位置とユーザの頭部の向きとに基づいて、表示部142に仮想空間を表示する。情報表示システム200では、上述の位置検出システム100を応用して、HMD140の位置を特定しているため、HMD140の位置を正確に特定しやすくなる。
なお、本発明は、上記実施形態にのみ限定されるものではなく、幾多の変形または変更が可能である。例えば、各構成部等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部等を1つに組み合わせたり、或いは分割したりすることが可能である。
例えば、上記実施形態においては、位置検出システム100は、2つの撮像装置110及び120を備えるとして説明したが、位置検出システム100は、3つ以上の撮像装置を備えていてもよい。位置検出システム100が3つ以上の撮像装置を備える場合、情報処理装置130は、任意の2つの撮像装置が取得した撮像画像に基づいて、対象物Pの位置を特定できる。この場合、一部の撮像装置による撮像画像において、対象物Pが、例えば障害物に遮られることにより映っていない場合であっても、情報処理装置130は、対象物Pが映った他の撮像画像を用いて対象物Pの位置を特定することができる。
また、上記応用例では、HMD140が2つの光源143a及び143bを備える場合について説明したが、HMD140が備える光源は2つに限られない。HMD140が備える光源は、1つであってもよく、3つ以上であってもよい。
また、上記応用例では、HMD140が光源143を備える場合について説明したが、応用例はこれに限られない。光源143は、HMD140以外の他の機器が備えていてもよく、この場合、情報処理装置130は、光源を備える装置の位置を特定できる。
また、HMD140は、ユーザの頭部の向きに関する情報を、例えば情報処理装置130等の外部装置へ送信してもよい。かかる構成によって、以下に説明するように情報表示システム200の利便性が更に向上する。
例えば、ユーザの頭部の向きに関する情報を受信した情報処理装置130は、HMD140の位置とユーザの頭部の向きとに基づく所定の映像を、例えば外部の表示装置等に表示させることができる。所定の映像は、例えばHMD140に表示される映像と略同一の映像、及び仮想空間におけるユーザの位置及び向きを示すマップ映像等、多様な映像を含んでもよい。ここで、情報表示システム200が複数のHMD140を備える場合、情報処理装置130は、例えば第1のHMD140に表示される映像を第2のHMD140に表示させたり、複数のユーザの位置及び向きを示すマップ映像を複数のHMD140に表示させたりすることができる。
また、ユーザの頭部の向きに関する情報を受信した情報処理装置130は、当該向きに関する情報に基づき、ユーザの位置が次に変位する方向を予測することもできる。
上記応用例において、情報処理装置130が実行するあらゆる処理をHMD140が実行できるようにしてもよい。このとき、情報表示システム200は、第1撮像装置110、第2撮像装置120及びHMD140からなるものであってよい。このとき、HMD140は、有線又は無線を介して、第1撮像装置110及び第2撮像装置120と通信可能に構成される。