【解決手段】ユーザの頭部に装着される表示装置140は、光源143と、頭部の3軸まわりの角度変化を検出するセンサ147と、複数の撮像装置によってそれぞれ撮像された光源143の複数の撮像画像に基づき特定される光源の位置に関する情報を取得する通信インターフェース146と、光源143の位置と、センサ147の出力に基づき推定される頭部の向きと、に基づいて表示制御を実行する制御部144と、を備える。
【発明を実施するための形態】
【0011】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
【0012】
図1は、本発明の一実施形態に係る位置検出システム100の概略構成を示す機能ブロック図である。本実施形態に係る位置検出システム100は、複数の撮像装置と、各撮像装置と通信可能に構成される情報処理装置130とを備える。本実施形態では、
図1に示すように、位置検出システム100は、複数の撮像装置として、第1撮像装置110と、第2撮像装置120という、2つの撮像装置を備える。位置検出システム100は、3つ以上の撮像装置を備えていてもよい。
【0013】
図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)であるとして説明する。
【0014】
再び
図1を参照すると、第1撮像装置110は、制御部111と、記憶部112と、通信部113と、第1撮像部114とを備える。第1撮像装置110は、対象物Pを撮像し、撮像画像を情報処理装置130に送信する。
【0015】
制御部111は、第1撮像装置110が備える各機能ブロックをはじめとして、第1撮像装置110の全体を制御及び管理するプロセッサである。制御部111は、制御手順を規定したプログラムを実行するCPU(Central Processing Unit)等のプロセッサで構成される。プロセッサにより実行されるプログラムは、例えば記憶部112又は外部の記憶媒体等に格納される。制御部111は、例えば第1撮像部114による撮像処理の制御を行う。
【0016】
記憶部112は、多様なメモリデバイスを有し、用途に応じてそれぞれ各種情報、例えば制御部111の動作に必要なデータ等を記憶する。また、記憶部112は、ワークメモリとして機能するRAM(Random Access Memory)等のデバイスも有する。記憶部112は、例えば第1撮像部114が撮像して取得した撮像画像(以下「第1撮像画像」ともいう)を記憶してもよい。
【0017】
通信部113は、情報処理装置130と有線通信又は無線通信を行うことにより、各種情報の送受信を行う。例えば、第1撮像装置110は、通信部113を介して、第1撮像画像を情報処理装置130に送信する。
【0018】
第1撮像部114は、対象物Pを撮像する。第1撮像部114は、光を電気信号に変換することにより素子上に投影された画像を撮像する撮像素子(イメージセンサ)を備える。本実施形態では、第1撮像部114は、対象物Pが発する近赤外光を検出する赤外線カメラである。
【0019】
第2撮像装置120は、制御部121と、記憶部122と、通信部123と、第2撮像部124とを備える。制御部121、記憶部122、通信部123及び第2撮像部124の各機能は、それぞれ第1撮像装置110の制御部111、記憶部112、通信部113及び第1撮像部114と同様であるため、ここではその詳細な説明を省略する。なお、本明細書において、第2撮像部124が撮像して取得した撮像画像を、以下「第2撮像画像」ともいう。
【0020】
情報処理装置130は、制御部131と、記憶部132と、通信部133とを備える。情報処理装置130は、第1撮像装置110及び第2撮像装置120が取得した撮像画像に基づいて、対象物Pの位置を算出する。
【0021】
制御部131は、情報処理装置130が備える各機能ブロックをはじめとして、情報処理装置130の全体を制御及び管理するプロセッサである。制御部131は、制御手順を規定したプログラムを実行するCPU等のプロセッサで構成される。プロセッサにより実行されるプログラムは、例えば記憶部132又は外部の記憶媒体等に格納される。制御部131は、第1撮像装置110が取得した第1撮像画像と、第2撮像装置120が取得した第2撮像画像とに基づいて、検出対象の位置を算出する。制御部131による検出対象の位置の算出処理の詳細については、後述する。
【0022】
記憶部132は、多様なメモリデバイスを有し、用途に応じてそれぞれ各種情報、例えば制御部131の動作に必要なデータ等を記憶する。また、記憶部132は、ワークメモリとして機能するRAM等のデバイスも有する。記憶部132は、例えば第1撮像装置110及び第2撮像装置120からそれぞれ取得した第1撮像画像及び第2撮像画像を記憶してもよい。また、記憶部132は、例えば算出した対象物の位置の履歴を記憶してもよい。情報処理装置130は、対象物の位置の履歴に基づき、対象物の変位(軌跡)を算出できる。
【0023】
通信部133は、第1撮像装置110及び第2撮像装置120と有線通信又は無線通信を行うことにより、各種情報の送受信を行う。例えば、情報処理装置130は、通信部133を介して、第1撮像画像及び第2撮像画像を、それぞれ第1撮像装置110及び第2撮像装置120から取得する。
【0024】
次に、
図2を参照しながら、情報処理装置130による検出対象の位置の算出処理の詳細について説明する。
【0025】
図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の注視点を基準にして定められる。
【0026】
本実施形態において、第1撮像装置110及び第2撮像装置120の位置ベクトルを、それぞれベクトルc
1及びベクトルc
2で示す。また、第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で表す。
【0027】
対象物Pの位置ベクトルpは、位置ベクトルc
1及び方向ベクトルaを用いて、下式(1)のように表される。情報処理装置130の制御部131は、位置ベクトルpを、下式(1)のように設定する。
【0029】
式(1)において、nは、実数であり、例えば第1撮像部114のセンサ位置から検出対象Pまでの距離に応じて定まる。nが算出(決定)されることにより、位置ベクトルpが定まり、対象物Pの位置が定まる。
【0030】
ここで、第2撮像装置120から対象物Pに向かう方向ベクトル(ここではベクトルdとする)は、第2撮像装置120の位置ベクトルc
2を用いて、下式(2)のように表すことができる。制御部131は、方向ベクトルdを算出する。
【0032】
上式(2)に示す方向ベクトルdは、第2撮像装置120から対象物Pに向かう方向ベクトルとして定義したため、方向ベクトルbと方向が等しい。従って、方向ベクトルdと方向ベクトルbとのなす角が0°であるため、方向ベクトルdと方向ベクトルbとの外積の大きさは0となる。これを式で表現すると、下式(3)のように表現される。
【0034】
上式(3)を、nについて解くと、下式(4)が導出される。
【0036】
上式(4)を、上式(1)に代入すると、位置ベクトルpは、下式(5)のように表される。
【0038】
上式(5)において、位置ベクトルc
1及び位置ベクトルc
2は、それぞれ第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の位置を特定可能である。
【0039】
また、本実施形態に係る位置検出システム100によれば、第1撮像装置110及び第2撮像装置120が、それぞれ異なる方向から、対象物Pを撮像する。そのため、例えばステレオカメラ等のように、2つのカメラを使用して1つの方向から撮像した画像に基づいて、視差を利用して距離を算出するシステムと比較して、本実施形態に係る位置検出システム100は、位置検出の精度が向上する。
【0040】
次に、上述の位置検出システム100の応用例について説明する。本明細書では、位置検出システム100を、ユーザの頭部に装着される表示装置であるヘッドマウントディスプレイ(HMD:Head Mounted Display)の位置の特定に応用する場合の一例について説明する。位置検出システム100を応用した情報表示システムでは、上述の位置検出システム100によりHMDの位置を特定し、特定した位置に応じた情報をHMDが備える表示部に表示する。
【0041】
図3は、位置検出システム100を応用した情報表示システム200の概略構成を示す機能ブロック図である。
図3に示すように、情報表示システム200は、位置検出システム100が含む第1撮像装置110、第2撮像装置120及び情報処理装置130に加え、HMD140を備える。情報処理装置130と、HMD140とは、有線又は無線を介して通信可能に構成される。
【0042】
図4は、HMD140の一例を示す外観斜視図である。HMD140は、ユーザが頭部に装着可能な略半球形状の装着部141と、ユーザがHMD140を装着した際にユーザに対して情報を表示する表示部142と、光源143とを備える。本実施形態では、HMD140は、
図4に示すように、2つの光源143a及び143bを備えるとして説明する。なお、2つの光源143a及び143bを区別しない場合には、まとめて光源143と記載する。
【0043】
再び
図3を参照すると、HMD140は、表示部142と、光源143と、制御部144と、記憶部145と、通信部146と、角速度検出部147とを備える。
【0044】
表示部142は、HMD140を装着したユーザに情報を表示する。表示部142は、例えば情報を表示する液晶ディスプレイ(LCD:Liquid Crystal Display)又は有機ELディスプレイ(OELD:Organic Electroluminescence Display)等のディスプレイと、ディスプレイを保持するハウジングとを有する。
図4には、ユーザの視線を外界から遮断するハウジングを有する、いわゆる没入型の表示部142が示されているが、表示部142は、没入型に限られない。表示部142は、例えば、ユーザが表示部142を介して外界を視認可能ないわゆる透過型(シースルー型)であってもよい。
【0045】
光源143は、第1撮像装置110及び第2撮像装置120により検出される光を発するものであり、
図2で説明した対象物Pに相当するものである。光源143は、例えば
図2で説明したものと同様に、近赤外光を発する赤外線LEDである。本実施形態では、2つの光源143a及び143bは、
図4に一例として示すように、ユーザがHMD140を装着した際に、前後方向に配列されるように、装着部141に設けられる。
【0046】
制御部144は、HMD140が備える各機能ブロックをはじめとして、HMD140の全体を制御及び管理するプロセッサである。制御部144は、制御手順を規定したプログラムを実行するCPU等のプロセッサで構成される。プロセッサにより実行されるプログラムは、例えば記憶部145又は外部の記憶媒体等に格納される。制御部144は、例えば、ユーザの位置及びユーザの頭部の向き等に基づいて、表示部142に多様な情報を表示する。具体的には、制御部144は、例えばユーザの位置及び頭部の向きに追従した仮想空間を表示部142に表示させる。なお、ユーザの位置は、情報処理装置130によって特定される、ユーザが装着したHMD140の位置により定められる。また、ユーザの頭部の向きは、ユーザの頭部に装着されたHMD140の向きにより定められる。
【0047】
記憶部145は、多様なメモリデバイスを有し、用途に応じてそれぞれ各種情報、例えば制御部144の動作に必要なデータ等を記憶する。また、記憶部145は、ワークメモリとして機能するRAM等のデバイスも有する。また、記憶部145は、例えば表示部142に表示する仮想空間に関する各種データを記憶する。
【0048】
通信部146は、情報処理装置130と有線通信又は無線通信を行うことにより、各種情報の送受信を行う通信インターフェースを有する。例えば、HMD140は、通信部146を介して、情報処理装置130から、第1撮像画像及び第2撮像画像に基づいて情報処理装置130が特定したHMD140の位置に関する情報を取得する。
【0049】
角速度検出部147は、例えばHMD140の角速度の変化を検出するセンサである。角速度検出部147は、例えばジャイロセンサにより構成される。なお、角速度検出部147は、ジャイロセンサに限られない。角速度検出部147は、HMD140の角度変化を検出できればよい。従って、角速度検出部147は、例えば、加速度センサ、角度センサ、その他のモーションセンサ、又はこれらのセンサの組合せ等によって構成されていてもよい。角速度検出部147が検出した角速度の変化に関する情報は、制御部144に送信される。制御部144は、角速度検出部147から取得した角速度の変化に関する情報に基づき、ユーザの頭部の向きを推定できる。本実施形態では、角速度検出部147は、例えば
図4に示すように、ピッチ軸(x軸)、ヨー軸(y軸)、及びロール軸(z軸)の3軸まわりの角速度の変化を検出する。また、制御部144は、角速度検出部147の出力に基づき、ユーザの頭部の3軸まわりの角度、具体的にはピッチ角θ、ヨー角ψ、及びロール角φを推定する。
【0050】
次に、情報表示システム200における仮想空間の表示処理について、
図5を参照して説明する。
【0051】
まず、第1撮像装置110が、光源143の画像を撮像することにより、第1撮像画像を取得する(ステップS101)。
【0052】
第1撮像装置110は、取得した第1撮像画像を情報処理装置130に送信する(ステップS102)。
【0053】
また、第2撮像装置120が、光源143の画像を撮像することにより、第2撮像画像を取得する(ステップS103)。
【0054】
第2撮像装置120は、取得した第2撮像画像を情報処理装置130に送信する(ステップS104)。
【0055】
なお、第1撮像装置110によるステップS101及びS102の処理と、第2撮像装置120によるステップS103及びS104の処理とは、同時に実行されてもよい。
【0056】
情報処理装置130は、第1撮像装置110及び第2撮像装置120から、それぞれ第1撮像画像及び第2撮像画像を取得すると、取得した撮像画像に基づいて、HMD140の位置を特定する(ステップS105)。具体的には、情報処理装置130は、例えば予め記憶部132に記憶された第1撮像装置110の位置及び第2撮像装置120の位置と、取得した撮像画像とを用いて、式(5)により、光源143の位置を算出することにより、HMD140の位置を特定する。
【0057】
情報処理装置130は、特定したHMD140の位置に関する情報をHMD140に送信する(ステップS106)。
【0058】
HMD140は、角速度検出部147を用いて、HMD140の角速度の変化に関する情報を取得する(ステップS107)。
【0059】
そして、HMD140は、角速度検出部147が取得した角速度の変化に関する情報に基づいて、ユーザの頭部の向きを推定する(ステップS108)。
【0060】
HMD140は、ステップS106で情報処理装置130から取得した位置に関する情報と、ステップS108で推定した頭部の向きに基づいて、表示部142に仮想空間を表示する(ステップS109)。
【0061】
このようにして、情報表示システム200は、HMD140の位置とユーザの頭部の向きとに基づいて、表示部142に仮想空間を表示する。情報表示システム200では、上述の位置検出システム100を応用して、HMD140の位置を特定しているため、HMD140の位置を正確に特定しやすくなる。
【0062】
また、情報表示システム200では、HMD140がユーザの頭部の向きを推定するので、例えば第1撮像画像及び第2撮像画像に基づき情報処理装置130が推定したユーザの頭部の向きをHMD140に通知する構成と比較して、ユーザの頭部の向きの変化に対する映像のディレイが低減される。このため、情報表示システム200の利便性が向上する。
【0063】
なお、本発明は、上記実施形態にのみ限定されるものではなく、幾多の変形又は変更が可能である。例えば、各構成部等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部等を1つに組み合わせたり、或いは分割したりすることが可能である。
【0064】
例えば、上記実施形態においては、位置検出システム100は、2つの撮像装置110及び120を備えるとして説明したが、位置検出システム100は、3つ以上の撮像装置を備えていてもよい。位置検出システム100が3つ以上の撮像装置を備える場合、情報処理装置130は、任意の2つの撮像装置が取得した撮像画像に基づいて、対象物Pの位置を特定できる。この場合、一部の撮像装置による撮像画像において、対象物Pが、例えば障害物に遮られることにより映っていない場合であっても、情報処理装置130は、対象物Pが映った他の撮像画像を用いて対象物Pの位置を特定することができる。
【0065】
また、上記応用例では、HMD140が2つの光源143a及び143bを備える場合について説明したが、HMD140が備える光源143の数は2つに限られない。HMD140が備える光源140の数は、1つであってもよく、3つ以上であってもよい。
【0066】
また、上記応用例では、HMD140が光源143を備える場合について説明したが、応用例はこれに限られない。光源143は、HMD140以外の他の機器が備えていてもよく、この場合、情報処理装置130は、光源143を備える装置の位置を特定できる。
【0067】
また、HMD140は、ユーザの頭部の向きに関する情報を、例えば情報処理装置130等の外部装置へ送信してもよい。かかる構成によって、以下に説明するように情報表示システム200の利便性が更に向上する。
【0068】
例えば、ユーザの頭部の向きに関する情報を受信した情報処理装置130は、HMD140の位置とユーザの頭部の向きとに基づく所定の映像を、例えば外部の表示装置等に表示させることができる。所定の映像は、例えばHMD140に表示される映像と略同一の映像、及び仮想空間におけるユーザの位置及び向きを示すマップ映像等、多様な映像を含んでもよい。ここで、情報表示システム200が複数のHMD140を備える場合、情報処理装置130は、例えば第1のHMD140に表示される映像を第2のHMD140に表示させたり、複数のユーザの位置及び向きを示すマップ映像を複数のHMD140に表示させたりすることができる。
【0069】
また、ユーザの頭部の向きに関する情報を受信した情報処理装置130は、当該向きに関する情報に基づき、ユーザの位置が次に変位する方向を予測することもできる。
【0070】
上記応用例において、情報処理装置130が実行するあらゆる処理をHMD140が実行できるようにしてもよい。このとき、情報表示システム200は、第1撮像装置110、第2撮像装置120及びHMD140からなるものであってよい。このとき、HMD140は、有線又は無線を介して、第1撮像装置110及び第2撮像装置120と通信可能に構成される。
【0071】
また、上記実施形態に係る撮像装置110及び120、情報処理装置130、並びにHMD140として機能させるために、コンピュータ又は携帯電話等の情報処理装置を好適に用いることができる。このような情報処理装置は、実施形態に係る撮像装置110、120、情報処理装置130、又はHMD140の各機能を実現する処理内容を記述したプログラムを、情報処理装置の記憶部に格納し、情報処理装置のプロセッサによって当該プログラムを読み出して実行させることによって実現可能である。