指示位置検出方法
【課題】 イメージセンサに設定された解像度の高低に関係なく、実用に足る、指示位置の検出精度を確保できる指示位置検出方法を提供する。
【解決手段】 赤外光の照射時及び非照射時に画面14に取り付けられたマーカ12を撮像するステップと、撮像によって得られた両画像の差分画像中のマーカ12の像を構成するピクセルのうち、最も高い輝度値を持つピクセルの位置情報(Xc,Yc)を求めるステップと、そのピクセル及び両側のピクセルの輝度値Bc,Bl,Brに基づき、補間法によって、最も高い輝度値より高い輝度値に対応する位置情報(Xt,Yt)を求めるステップと、位置情報(Xt,Yt)に基づいて、画面14上の指し示された位置を特定するステップと、を含む。
【解決手段】 赤外光の照射時及び非照射時に画面14に取り付けられたマーカ12を撮像するステップと、撮像によって得られた両画像の差分画像中のマーカ12の像を構成するピクセルのうち、最も高い輝度値を持つピクセルの位置情報(Xc,Yc)を求めるステップと、そのピクセル及び両側のピクセルの輝度値Bc,Bl,Brに基づき、補間法によって、最も高い輝度値より高い輝度値に対応する位置情報(Xt,Yt)を求めるステップと、位置情報(Xt,Yt)に基づいて、画面14上の指し示された位置を特定するステップと、を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象物上の指し示された位置を特定可能な指示位置検出方法及びその関連技術に関する。
【背景技術】
【0002】
特許文献1には、画面位置指示装置が開示されている。これは、表示装置の画面を撮像する撮像装置を有するガン型コントローラを備える。表示装置の画面の4隅にはマークが形成されており、これらのマークを撮像装置により撮像する。そして、得られた撮像画像に写っているマークの検出結果に基づいて、ガン型コントローラによって指し示されている、表示装置の画面上の位置を算出する。
【0003】
【特許文献1】特開2003−140832号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、撮像画像に写ったマークの位置検出の精度は、撮像装置の解像度に依存する。つまり、ガン型コントローラによる指示位置の検出精度は、撮像装置の解像度に依存する。このため、比較的高い解像度の撮像装置を使用する必要があり、コストが高くなる。一方、低い解像度の撮像装置を使用すると、指示位置の検出精度が低くなり、実用が困難である。
【0005】
そこで、本発明は、撮像装置に設定された解像度の高低に関係なく、実用に足る、指示位置の検出精度を確保できる指示位置検出方法及びその関連技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の形態によると、指示位置検出方法は、操作者により把持されて対象物上の任意の位置を指し示す指示装置によって指し示された位置を検出する指示位置検出方法であって、前記対象物に取り付けられたマーカを撮像する撮像ステップと、撮像によって得られた画像中の前記マーカの像を構成するピクセルのうち、最も高い輝度値を持つピクセルの位置情報を求める第1の位置導出ステップと、前記最も高い輝度値を持つ前記ピクセルを含む所定数のピクセルの位置情報、及び、その所定数のピクセルの輝度値に基づき、補間法によって、前記最も高い輝度値より高い輝度値に対応する位置情報を求める第2の位置導出ステップと、前記最も高い輝度値より高い輝度値に対応する前記位置情報に基づいて、前記対象物上の指し示された位置を特定する位置特定ステップと、を含む。
【0007】
この構成によれば、最終的に補間法によってマーカの位置を求めているので、撮像装置の解像度を実質的に高くすることができる。このため、撮像装置に設定された解像度の高低に関係なく、実用に足る、指示位置の検出精度を確保できる。
【0008】
上記指示位置検出方法において、前記補間法による補間式は、放物線を示す式である。この構成によれば、輝度分布に即した補間式となるので、指示位置の検出精度をより向上できる。
【0009】
上記指示位置検出方法において、前記所定数のピクセルは、前記最も高い輝度値を持つ前記ピクセル及びその両側のピクセルである。この構成によれば、3ピクセルの処理で済むので、処理負荷の軽減を図りながらも、指示位置の特定が可能となる。
【0010】
上記指示位置検出方法において、撮像によって得られた前記画像は、第1の方向及びその第1の方向に垂直な第2の方向に並んだピクセルの二次元配列からなり、前記位置情報は、前記第1の方向の成分及び前記第2の方向の成分を含む。この構成によれば、第1の方向(例えば、水平方向)及び第2の方向(例えば、垂直方向)の双方において、解像度を実質的に高くできる。
【0011】
上記指示位置検出方法において、前記対象物は、矩形領域を含み、前記指示装置は、前記矩形領域上の任意の位置を指し示す。前記対象物は、映像を表示する表示装置であり、前記矩形領域は、前記表示装置の画面である。
【0012】
この構成によれば、画面に表示された映像と、指示装置が指し示す画面上の位置と、の関係に応じて、対応する処理を行うソフトウェア(例えば、シューティングゲームのソフトウェア等)の作成が可能になる。
【0013】
上記指示位置検出方法において、前記対象物には、単一の前記マーカが取り付けられる。この構成によれば、位置の導出は、1つマーカに対してのみ行えばよいので、処理負荷の軽減を図ることができる。
【0014】
上記指示位置検出方法において、前記単一のマーカは、アスペクト比が異なる。この構成によれば、光軸周りに回転した撮像装置によりマーカが撮像された場合でも、その回転量を検出できるので、撮像装置の回転を反映した指示位置の特定ができる(回転補正)。このため、指示位置の検出精度をより向上できる。
【0015】
上記指示位置検出方法において、前記対象物には、2つの前記マーカが取り付けられる。この構成によれば、光軸周りに回転した撮像装置によりマーカが撮像された場合でも、その回転量を検出できるので、上記と同様に回転補正ができる。
【0016】
この場合、前記矩形領域の所定の辺に沿って2つの前記マーカが取り付けられ、前記2つのマーカ間の距離は、前記所定の辺の長さより短い。この構成によれば、2つのマーカ間の距離が所定の辺の長さと実質的に等しい場合と比べて、2つのマーカの双方が撮像範囲に入りやすくなる。このため、撮像装置が光軸周りに回転したことの検知をより確実に行うことができるので、指示位置の検出精度をより一層向上できる。
【0017】
一方、前記2つのマーカ間の距離を、前記所定の辺の長さと実質的に等しくできる。この構成によれば、リアルタイムで2つのマーカ間の距離を求めることができるので、撮像装置と対象物との間の距離が変わっても、補正が可能になり(遠近補正)、指示位置の検出精度をより一層向上できる。また、回転補正も可能である。
【0018】
上記指示位置検出方法において、前記矩形領域の対角線上又はその延長線上に2つの前記マーカが取り付けられ、前記2つのマーカ間の距離は、前記対角線の長さと実質的に等しい。この構成によれば、2つのマーカの像に基づいて、矩形領域のサイズを算出できるので、矩形領域のサイズを計測するための処理及び操作が不要になる。
【0019】
上記指示位置検出方法は、前記指示装置が前記対象物上の複数の所定箇所を個々に指し示したときのそれぞれの前記マーカの像に基づいて、前記第1の位置導出ステップ及び前記第2の位置導出ステップによって、前記補間法による前記位置情報を求めるステップをさらに含む。
【0020】
この構成によれば、指示位置を特定するために必要な前処理(キャリブレーション)を、指示位置を特定するための処理と同様の処理により行うことができる。
【0021】
上記指示位置検出方法において、前記対象物は、映像を表示する表示装置であり、前記指示装置は、前記表示装置の画面上の任意の位置を指し示し、前記指示位置検出方法は、前記表示装置の前記画面の複数の所定箇所の各々にターゲットを表示するステップと、前記指示装置が前記ターゲットを指し示したときの前記マーカの像に基づいて、前記第1の位置導出ステップ及び前記第2の位置導出ステップによって、前記補間法による前記位置情報を求めるステップと、をさらに含む。
【0022】
この構成によれば、指示位置を特定するために必要な前処理(キャリブレーション)のためのターゲットをそのためだけに表示装置に取り付ける必要もなく、利便性の向上を図ることができる。
【0023】
上記指示位置検出方法において、前記操作者によるトリガが発生したときに、前記第1の位置導出ステップ、前記第2の位置導出ステップ、及び前記位置特定ステップを実行する。この構成によれば、前記操作者によるトリガが発生したときにのみ、前記対象物上の指し示された位置を特定するので、処理負荷の軽減を図ることができる。
【0024】
上記指示位置検出方法は、前記マーカに、予め定められた周期で、赤外光を照射するステップをさらに含み、前記撮像ステップは、前記赤外光の照射時に、赤外線フィルタを介して前記対象物を撮像して、照射時画像データを取得するステップと、前記赤外光の非照射時に、前記赤外線フィルタを介して前記対象物を撮像して、非照射時画像データを取得するステップと、前記照射時画像データと前記非照射時画像データとの差分を求めて、差分画像データを生成するステップと、を含み、前記第1の位置導出ステップでは、前記差分画像データに基づく差分画像上の前記マーカの像に基づいて、前記位置情報を求め、前記マーカは、再帰反射体で構成される。
【0025】
この構成によれば、マーカの像以外のノイズ成分を簡易な処理で除去できる。このため、処理負荷の増大を招くことなく、より精度良くマーカの位置情報を求めることができる。
【0026】
上記指示位置検出方法において、前記マーカは、自発光可能である。この構成によれば、対象物に対して光を照射することなく、マーカの像を取得できるので、対象物からの反射光が撮像されることを防止できる。
【発明を実施するための最良の形態】
【0027】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
【0028】
図1(a)は、本発明の実施の形態におけるガン型コントローラ1の外観斜視図である。図1(b)は、本発明の実施の形態におけるマーカ12を取り付けたテレビジョンモニタ10の外観斜視図である。
【0029】
図1(a)に示すように、ガン型コントローラ1の銃口に相当する部分(以下、「銃口」と呼ぶ。)には、円板状の赤外線フィルタ5が取り付けられ、それを囲むように、4つの赤外発光ダイオード3が配置される。赤外線フィルタ5は、赤外光以外の光を遮断し、赤外光のみを透過させる。赤外線フィルタ5の背面側には、後述のイメージセンサ20が、面平行に配置される。また、ガン型コントローラ1は、トリガスイッチ7を有する。
【0030】
ガン型コントローラ1は、A/Vケーブル(図示せず)により、図1(b)のテレビジョンモニタ10に接続される。テレビジョンモニタ10は、液晶テレビ、プラズマテレビ、プロジェクションテレビ、及びブラウン管テレビ等、その形式は問わずいずれでもよい。A/Vケーブルは、例えば、ガン型コントローラ1の弾倉底板に相当する部分に接続される。また、ガン型コントローラ1には、図示していないが、電池又はACアダプタにより電源電圧が供給される。
【0031】
テレビジョンモニタ10の画面14の上縁中央部付近であって、画面14の外側に、円形のマーカ12が取り付けられる。マーカ12は、例えば、再帰反射シート等の再帰反射体である。
【0032】
プレイヤは、ガン型コントローラ1の銃口をテレビジョンモニタ10に向けて、画面14上の位置を指し示し、トリガスイッチ7を引く。その時、後述のイメージセンサ20に撮影されたマーカ12の位置に基づいて、トリガスイッチ7を引いた時の画面14上の指し示された位置が特定される。
【0033】
次に、マーカ12の位置を算出する手順を説明する。
【0034】
[マーカ12の撮影]
ガン型コントローラ1に搭載される後述のマルチメディアプロセッサ22は、赤外発光ダイオード3を一定周期で間欠的に駆動する。従って、テレビジョンモニタ10にガン型コントローラ1の銃口が向けられると、テレビジョンモニタ10に、赤外光が間欠的に照射される。
【0035】
イメージセンサ20は、赤外発光ダイオード3の発光時と消灯時の双方において撮影処理を行う。従って、マルチメディアプロセッサ22は、イメージセンサ20から、発光時画像データと消灯時画像データを取得する。画像データは、輝度データである。
【0036】
[差分画像の生成]
マルチメディアプロセッサ22は、発光時画像データと消灯時画像データとの差分を求めて、差分画像データを生成する。これにより、マーカ12だけを抽出できる。つまり、差分画像データに基づく差分画像には、マーカ12だけが写りこむ。この理由を説明する。
【0037】
赤外光発光時の画像と消灯時の画像とで、輝度値が大きく異なるのは、マーカ12だけである。なぜなら、マーカ12が再帰反射体だからである。
【0038】
詳しくは次の通りである。赤外発光ダイオード3は、赤外線フィルタ5の近傍に配置されているため、再帰反射された赤外光は、赤外線フィルタ5に入射し、さらに背後のイメージセンサ20に入射する。従って、マーカ12は、赤外光発光時では赤外光をイメージセンサ20に向けて反射するため輝度が大きくなり(強く光り)、赤外光消灯時では再帰反射がないため輝度が極端に小さくなる(ほとんど光らない)。
【0039】
一方、マーカ12以外の物体は、再帰反射体ではないため、赤外光発光時においても、イメージセンサ20に向けて強い反射光を返すことはない。つまり、マーカ12以外の物体は、赤外光発光時と消灯時とで、輝度値に大きな差はない。従って、差分をとることにより、マーカ12以外の物体の像を除去でき、マーカ12だけを抽出できるのである。しかも、イメージセンサ20による撮影は、赤外線フィルタ5を介して行われるので、赤外光以外の光が除去され、差分の効果は一層大きくなる。
【0040】
以上のように、赤外線フィルタ5を介して差分画像データ(つまり差分画像)を求めることで、処理負荷の増大を招くことなく、マーカ12からの反射光以外の光によるノイズを極力除去でき、精度良くマーカ12を検出できる。
【0041】
なお、テレビジョンモニタ10の画面14の更新よりも速いタイミングで、赤外発光ダイオード3の発光と消灯の1サイクルを行えば、差分を求めることで、画面14の像を除去できる。また、画面14の像は、必ずしも写りこむとは限らない。
【0042】
[マーカ12の位置算出]
図2は、イメージセンサ20による差分画像IMに写ったマーカ12の像の例示図である。図2を参照して、イメージセンサ20による差分画像IMの左下角を原点Oとし、単位がイメージセンサ20のピクセルであるXY座標系を想定する。以下、XY座標系というときは、この座標系を意味する。また、本実施の形態では、イメージセンサ20として、32×32ピクセルのCMOSイメージセンサを用いる。
【0043】
マルチメディアプロセッサ22は、差分画像IMの全ピクセルをスキャンして、最も輝度値が大きいピクセルを抽出する。図2では、最も輝度値が大きいピクセルの座標を、(X,Y)=(Xc,Yc)とする。しかしながら、このようにして求めた座標値は、ピクセル単位で算出されるので、本実施の形態のような、低解像度のイメージセンサ20を使用したのでは、求める座標値の精度が低くなる。当然、マーカ12の座標値を基に、ガン型コントローラ1により指し示される位置が特定されるため、指示位置特定の精度も低くなる。そこで、以下の補正を行う。
【0044】
[マーカ12の位置補正]
図3は、マーカ12の位置補正の説明図である。図3を参照して、横軸は、図2のX座標を示し、縦軸は、ピクセルの輝度値を示す。図2と同様に、最も輝度値が大きいピクセルの座標を、(X,Y)=(Xc,Yc)とする。また、(Xl,Yc)=(Xc−1,Yc)のピクセルの輝度値を「Bl」、(Xc,Yc)のピクセルの輝度値を「Bc」、(Xr,Yc)=(Xc+1,Yc)のピクセルの輝度値を「Br」とする。
【0045】
本実施の形態では、マルチメディアプロセッサ22は、放物線の式により、輝度分布を近似する。そして、マルチメディアプロセッサ22は、放物線pbの頂点に対応するX座標Xtを求める。具体的には、マルチメディアプロセッサ22は、(数1)により、補正値Xdを求める。
【0046】
【数1】
Y座標の補正値Ydも、(数1)を用いて算出される。ただし、(Xc,Yb)=(Xc,Yc−1)のピクセルの輝度値を「Bl」、(Xc,Yc)のピクセルの輝度値を「Bc」、(Xc,Yu)=(Xc,Yc+1)のピクセルの輝度値を「Br」とする。
【0047】
そして、マルチメディアプロセッサ22は、マーカ12の位置を(Xt,Yt)=(Xc+Xd,Yc+Yd)とする。
【0048】
このように、補間式を用いて、輝度分布を近似し、補正値Xd及びYdを求め、補正を行うことで、イメージセンサ20の解像度を実質的に高くしている。従って、低解像度のイメージセンサ20を使用する場合であっても、マーカ12の位置を精度良く求めることができる。マーカ12の座標値を基に、ガン型コントローラ1により指し示される位置が特定されるため、指示位置特定の精度も向上する。
【0049】
次に、ガン型コントローラ1による指示位置の特定のための前処理として行われるキャリブレーションについて説明する。
【0050】
図4は、キャリブレーション画面の説明図である。キャリブレーションを行う際、まず、図4(a)に示すように、画面14の左下隅に第1ターゲットAが表示される。プレイヤは、ガン型コントローラ1の銃口を第1ターゲットAに向けて、第1ターゲットAを指し示し、トリガスイッチ7を引く。
【0051】
次に、図4(b)に示すように、画面14の右上隅に第2ターゲットBが表示される。プレイヤは、ガン型コントローラ1の銃口を第2ターゲットBに向けて、第2ターゲットBを指し示し、トリガスイッチ7を引く。
【0052】
以上で、キャリブレーションのためのプレイヤの操作は終了する。一方において、マルチメディアプロセッサ22によるキャリブレーション処理が実行される。
【0053】
図5は、マルチメディアプロセッサ22によるキャリブレーション処理の説明図である。図5を参照して、図4(a)の第1ターゲットAが指し示されたときに撮影されたマーカ12の位置a(Xa,Ya)、及び、図4(b)の第2ターゲットBが指し示されたときに撮影されたマーカ12の位置b(Xb,Yb)が、上記のようにして、マルチメディアプロセッサ22により算出される。
【0054】
第1ターゲットA及びBは、それぞれ画面14の左下隅及び右上隅に表示されるので、XY座標上の線分Lは、画面14の対角線に相当する。つまり、テレビジョンモニタ10の画面14は、XY座標上では、画面Sとして表される。
【0055】
マルチメディアプロセッサ22は、位置a及びbから、画面Sの中心位置f(Xf,Yf)、縦サイズV2、及び横サイズH2を算出する。これにより、マルチメディアプロセッサ22によるキャリブレーション処理が終了する。
【0056】
図6は、マルチメディアプロセッサ22による指示位置特定処理の説明図である。プレイヤが、ガン型コントローラ1により、画面14上の位置Pを指し示したとする。位置Pが、画面14上の右上隅付近である例を挙げる。そうすると、図6(a)に示すように、マーカ12の像の位置p(Xp,Yp)は、XY座標上の画面S上の左下隅付近になる。
【0057】
従って、図6(b)に示すように、ガン型コントローラ1により指し示された画面14上の位置Pに相当する画面S上の位置p#は、画面Sの中心位置fを中心として位置pを180度回転した位置(X#,Y#)となる。そして、XY座標系の位置p#をスクリーン座標系の位置P(画面14上の指し示された位置P)に変換する。スクリーン座標系は、テレビジョンモニタ10の画面14に表示されるピクセルの位置を表す座標系であり、本実施の形態では、画面14の中心を原点とする。
【0058】
具体的には、マルチメディアプロセッサ22は、Xm=Xf−Xp、Ym=Yf−Ypを求める。そして、xm=Xm×(2/H2)×(H1/2)、ym=Ym×(2/V2)×(V1/2)、を求め、(xm,ym)を画面14上の指し示された位置Pとする。ここで、画面14のサイズを横H1×縦V1ピクセル、画面Sのサイズを横H2×縦V2ピクセルとした。
【0059】
図7は、ガン型コントローラ1の電気的構成を示す図である。図7に示すように、ガン型コントローラ1は、マルチメディアプロセッサ22、イメージセンサ20、赤外発光ダイオード3、トリガスイッチ7、ROM(read only memory)24、及びバス26を含む。
【0060】
マルチメディアプロセッサ22は、バス26を通じて、ROM24にアクセスできる。従って、マルチメディアプロセッサ22は、ROM24に格納されたプログラムを実行でき、また、ROM24に格納されたデータをリードして処理することができる。このROM24に、プログラム、画像データ、及び音声データ等が予め格納される。
【0061】
このマルチメディアプロセッサ22は、図示しないが、中央演算処理装置(以下、「CPU」と呼ぶ。)、グラフィックスプロセシングユニット(以下、「GPU」と呼ぶ。)、サウンドプロセシングユニット(以下、「SPU」と呼ぶ。)、ジオメトリエンジン(以下、「GE」と呼ぶ。)、外部インタフェースブロック、メインRAM、及びA/Dコンバータ(以下、「ADC」と呼ぶ。)などを具備する。
【0062】
CPUは、ROM24に格納されたプログラムを実行して、各種演算やシステム全体の制御を行う。グラフィックス処理に関するCPUの処理として、ROM24に格納されたプログラムを実行して、各オブジェクト及び各スプライトの拡大・縮小、回転、及び/又は平行移動のパラメータ、視点座標(カメラ座標)、並びに視線ベクトルの算出等を行う。ここで、1または複数のポリゴンから構成され、同じ拡大・縮小、回転、及び平行移動の変換が適用される単位を「オブジェクト」と呼ぶ。
【0063】
GPUは、ポリゴン及びスプライトから構成される三次元イメージをリアルタイムに生成し、アナログのコンポジットビデオ信号に変換する。SPUは、PCM(pulse code modulation)波形データ、アンプリチュードデータ、及びメインボリュームデータを生成し、それぞれアナログ信号に変換し、結果をアナログ乗算して、アナログオーディオ信号を生成する。GEは、三次元イメージを表示するための幾何演算を実行する。具体的には、GEは、行列積、ベクトルアフィン変換、ベクトル直交変換、透視投影変換、頂点明度/ポリゴン明度計算(ベクトル内積)、及びポリゴン裏面カリング処理(ベクトル外積)などの演算を実行する。
【0064】
外部インタフェースブロックは、周辺装置(本実施の形態ではイメージセンサ20、赤外発光ダイオード3、及びトリガスイッチ7)とのインタフェースであり、24チャンネルのプログラマブルなデジタル入出力(I/O)ポートを含む。ADCは、4チャンネルのアナログ入力ポートに接続され、これらを介して、アナログ入力装置(本実施の形態ではイメージセンサ20)から入力されたアナログ信号をデジタル信号に変換する。メインRAMは、CPUのワーク領域、変数格納領域、および仮想記憶機構管理領域等として利用される。
【0065】
図7を参照して、テレビジョンモニタ10に取り付けられたマーカ12は、赤外発光ダイオード3の赤外光に照射され、その赤外光を再帰反射する。このマーカ12からの反射光がイメージセンサ20によって撮影され、したがって、イメージセンサ20からはマーカ12の像を含む画像データが出力される。上記のように、マルチメディアプロセッサ22は、ストロボ撮影のために、赤外発光ダイオード3を間欠的に駆動するので、赤外光消灯時の画像データも出力される。イメージセンサ20からのこれらのアナログ画像データはマルチメディアプロセッサ22に内蔵されたADCによってデジタルデータに変換される。
【0066】
マルチメディアプロセッサ22は、イメージセンサ20からADCを介して入力されるデジタル画像データから差分画像データIM(差分画像IM)を生成して、これに基づき、XY座標上のマーカ12の位置pを求める。これと、キャリブレーションの結果を参照して、ガン型コントローラ1によるスクリーン座標系の指示位置Pを求める。
【0067】
マルチメディアプロセッサ22は、求めた指示位置Pに応じて、演算、グラフィック処理、及びサウンド処理等を実行し、ビデオ信号およびオーディオ信号を出力する。ビデオ信号およびオーディオ信号は、A/Vケーブル(図示せず)によりテレビジョンモニタ10に与えられ、応じて、テレビジョンモニタ10に映像が表示され、そのスピーカ(図示せず)から音声が出力される。
【0068】
図8は、マルチメディアプロセッサ22によるキャリブレーション処理の流れの一例を示すフローチャートである。図8を参照して、ステップS1にて、マルチメディアプロセッサ22は、システムの初期設定を実行する。ステップS2にて、マルチメディアプロセッサ22は、イメージセンサ20を制御して撮影処理を行う。
【0069】
図9は、図8のステップS2の撮影処理の流れの一例を示すフローチャートである。図9を参照して、ステップS30において、マルチメディアプロセッサ22は、赤外発光ダイオード3を点灯する。ステップS31で、マルチメディアプロセッサ22は、イメージセンサ20から、赤外光点灯時の画像データを取得して、メインRAMに格納する。
【0070】
ここで、本実施の形態では、イメージセンサ20は、32×32ピクセルの解像度である。従って、イメージセンサ20からは、画像データとして、32×32ピクセルのピクセルデータが出力される。このピクセルデータは、A/Dコンバータにより、デジタルデータに変換されて、メインRAM上の二次元配列P1[X][Y]に格納される。X=0〜31、Y=0〜31である。
【0071】
ステップS32で、マルチメディアプロセッサ22は、赤外発光ダイオード3を消灯する。ステップS33にて、マルチメディアプロセッサ22は、イメージセンサ20から、赤外光消灯時の画像データ(32×32ピクセルのピクセルデータ)を取得して、メインRAMに格納する。この場合、赤外光消灯時の画像データは、メインRAM上の二次元配列P2[X][Y]に格納される。X=0〜31、Y=0〜31である。
【0072】
以上のようにして、ストロボ撮影が行われる。なお、ピクセルデータは、対応するピクセルの輝度データである。
【0073】
図8に戻って、ステップS3にて、マルチメディアプロセッサ22は、赤外発光ダイオード3の点灯時のピクセルデータ(つまり配列P1[X][Y]の要素)と、赤外発光ダイオード3の消灯時のピクセルデータ(つまり配列P2[X][Y]の要素)と、の差分を算出して、差分データを二次元配列Dif[X][Y]に代入する。
【0074】
ステップS4にて、マルチメディアプロセッサ22は、キャリブレーション終了フラグをチェックして、キャリブレーションが終了した場合はステップS18に進んで、キャリブレーションが終了したことをプレイヤに通知するための画面設定(画像データの格納位置や表示座標の設定など)を行う。一方、終了していない場合はステップS5に進む。
【0075】
ステップS5では、マルチメディアプロセッサ22は、第1ターゲットA(図4(a)参照)へのシューティングが完了したか否か、つまり、プレイヤがガン型コントローラ1で第1ターゲットAを指し示しトリガスイッチ7を引いた(オンした)か否か、を判断し、第1ターゲットAのシューティングが完了している場合は、ステップS7に進み、完了していない場合は、ステップS6に進む。
【0076】
ステップS6では、マルチメディアプロセッサ22は、第1ターゲットAを画面14に表示するための設定(第1ターゲットAの画像格納位置や表示座標の設定など)を行う。一方、ステップS7では、マルチメディアプロセッサ22は、第2ターゲットBを画面14に表示するための設定(第2ターゲットBの画像格納位置や表示座標の設定など)を行う。
【0077】
ステップS8では、マルチメディアプロセッサ22は、トリガスイッチ7が引かれた(オンされた)か否かを判断し、トリガスイッチ7が引かれた場合はステップS9に進み、それ以外はステップS15に進む。ステップS9にて、マルチメディアプロセッサ22は、マーカ12の位置を算出する。
【0078】
図10は、図8のステップS9のマーカ位置算出処理の流れの一例を示すフローチャートである。図10を参照して、ステップS40にて、マルチメディアプロセッサ22は、差分画像データから、最も大きい輝度値のピクセルデータを抽出し、その座標(Xc,Yc)を求める。
【0079】
ステップS41にて、マルチメディアプロセッサ22は、(数1)により、放物線近似を行い、X座標の補正値Xdを算出する。ステップS42にて、マルチメディアプロセッサ22は、原座標Xcに補正値Xdを加算して、加算結果Xtをマーカ12のX座標とする。
【0080】
Y座標の補正が済んでいないので(ステップS43)、マルチメディアプロセッサ22は、ステップS41及びS42に進み、補正値Ydを求め、原座標Ycに補正値Ydを加算して、加算結果Ytをマーカ12のY座標とする。そして、図8のルーチンにリターンする。
【0081】
図8に戻って、ステップS10では、マルチメディアプロセッサ22は、マーカ12の位置(Xt,Yt)をメインRAMに格納する。
【0082】
ステップS11では、マルチメディアプロセッサ22は、第2ターゲットB(図4(b)参照)へのシューティングが完了したか否か、つまり、プレイヤがガン型コントローラ1で第2ターゲットBを指し示しトリガスイッチ7を引いた(オンした)か否か、を判断し、第2ターゲットBのシューティングが完了している場合は、ステップS12に進み、完了していない場合は、ステップS15に進む。
【0083】
ステップS12にて、マルチメディアプロセッサ22は、第1ターゲットAがシューティングされたときのマーカ12の位置および第2ターゲットBがシューティングされたときのマーカ12の位置に基づいて、差分画像IM上の画面14の像S(図5参照)の中心位置(Xf,Yf)及びサイズV2,H2を算出する。そして、ステップS13にて、マルチメディアプロセッサ22は、像Sの中心位置(Xf,Yf)及びサイズV2,H2をメインRAMに格納し、ステップS14にて、キャリブレーション終了フラグをオンにする。
【0084】
ステップS15にて、マルチメディアプロセッサ22は、ビデオ同期の割込み待ちであれば(ビデオ同期信号による割り込みがなければ)、同じステップS15に戻る。一方、ステップS15で、ビデオ同期信号による割り込みがあれば、ステップS16に進む。
【0085】
ステップS16では、マルチメディアプロセッサ22は、テレビジョンモニタ10に表示される画面(ビデオフレーム)の更新処理を実行し、続くステップS17にて、音楽や効果音を出力するための音声処理を実行し、ステップS2に進む。
【0086】
図11は、マルチメディアプロセッサ22によるゲーム処理の流れの一例を示すフローチャートである。図11を参照して、ステップS50にて、マルチメディアプロセッサ22は、システムの初期設定を実行する。ステップS51にて、マルチメディアプロセッサ22は、イメージセンサ20を制御して撮影処理を行う。この撮影処理は、図8のステップS2の撮影処理と同じである。
【0087】
ステップS52にて、マルチメディアプロセッサ22は、赤外発光ダイオード3の点灯時のピクセルデータ(つまり配列P1[X][Y]の要素)と、赤外発光ダイオード3の消灯時のピクセルデータ(つまり配列P2[X][Y]の要素)と、の差分を算出して、差分データを二次元配列Dif[X][Y]に代入する。この処理は、図8のステップS3の処理と同じである。
【0088】
ステップS53にて、マルチメディアプロセッサ22は、テレビジョンモニタ10にターゲット(図示せず)を表示するための設定(ターゲットの画像格納位置及び表示座標の設定など)を行う。ステップS54にて、マルチメディアプロセッサ22は、トリガスイッチ7が引かれた(オンされた)か否かを判断し、引かれていればステップS55に進み、そうでなければステップS61に進む。
【0089】
ステップS55にて、マルチメディアプロセッサ22は、XY座標上のマーカ12の位置を算出する。この処理は、図8のステップS9の処理と同じである。ステップS56にて、マルチメディアプロセッサ22は、ステップS55で求めたマーカ12の位置、XY座標上の画面Sの中心位置(Xf,Yf)、画面14のサイズV1,H1、及び画面SのサイズV2,H2に基づいて、プレイヤがガン型コントローラ1により指し示した画面14上の位置P(つまり、シューティング位置P)を算出する。
【0090】
ステップS57にて、マルチメディアプロセッサ22は、シューティング位置Pが、ターゲットの表示範囲に存在するか否か(つまり、ヒットしたか否か)を判定する。ステップS58では、ヒットの場合はステップS60に進み、ミスの場合はステップS59に進む。
【0091】
ステップS60では、マルチメディアプロセッサ22は、ヒット後の処理(加点やエフェクト画像の設定など)を行う。一方、ステップS59では、ミス後の処理(エフェクト画像の設定など)を行う。
【0092】
そして、マルチメディアプロセッサ22は、ステップS61〜S63の処理を行って、ステップS51に進む。ステップS61〜S63の処理は、それぞれ、図8のステップS15〜S17と同じである。
【0093】
さて、上記では、円形状かつ単一のマーカ12を使用した。しかし、マーカの形状あるいは配置によっては、さらに回転補正を行うことができる。この場合でも、マーカは、再帰反射シート等の再帰反射体である。
【0094】
図12は、回転補正の説明図である。図12(a)に示すように、アスペクト比が異なる矩形状のマーカ50を、テレビジョンモニタ10に取り付ける。このようなアスペクト比が異なるマーカ50を使用すると、イメージセンサ20がその光軸周りに回転したことを検知できる。
【0095】
ゲーム処理中、プレイヤのガン型コントローラ1の持ち方によっては、キャリブレーション時のイメージセンサ20の状態に対して、イメージセンサ20がその光軸周りに回転することもある。この場合、この回転をリアルタイムに考慮した補正ができれば、より精度良く、指示位置の特定が可能になる。
【0096】
図12(b)を参照して、キャリブレーション時を基準にして、ゲーム処理中、イメージセンサ20が、反時計回りに、角度θだけ回転したとする。この場合、マルチメディアプロセッサ22は、XY座標系で表されたマーカ50の位置を、XY座標系を角度θだけ反時計回りに回転したUV座標系で表す。具体的には、マルチメディアプロセッサ22は、(数2)により、座標変換を行う(回転補正)。回転角θは、リアルタイムで取得できるので、リアルタイムで回転補正を行うことができる。
【0097】
【数2】
図12(c)を参照して、2つのマーカ12を一定間隔だけ離して配置し、これを撮影することによっても、イメージセンサ20の回転角θを検知できるので、上記同様、回転補正をリアルタイムで行うことができる。なお、キャリブレーションは、いずれか1つのマーカ12を用いて行う。また、2つのマーカ12の検出は、例えば、差分画像から最大輝度値のピクセル(1つ目のマーカ12)を抽出し、さらに、そのピクセルを含む一定範囲をマスクしてから、最大輝度値のピクセル(2つ目のマーカ12)を抽出することにより行う。
【0098】
図12(c)のように、2つのマーカ12間の距離を、画面14の辺の長さより短くすることにより、2つのマーカ12間の距離が画面14の辺の長さと実質的に等しい場合と比べて(後述の図13(a)参照)、2つのマーカ12の双方が撮像範囲に入りやすくなる。このため、イメージセンサ20の回転の検知をより確実に行うことができる。
【0099】
さて、マーカ12の配置によっては、さらに、遠近補正を行うことができる。図13は、遠近補正の説明図である。図13(a)に示すように、マーカ12を画面14の左上角近傍に配置し、他方のマーカ12を画面14の右上角近傍に配置する。このような配置にすると、キャリブレーション時を基準にして、イメージセンサ20とテレビジョンモニタ10との間の遠近を検知できる。なぜなら、イメージセンサ20が離れた場合は、その程度に応じてXY座標上のマーカ12間の距離が短くなり、イメージセンサ20が近づいた場合は、その程度に応じてXY座標上のマーカ12間の距離が長くなるからである。
【0100】
ゲーム処理中、ガン型コントローラ1を持ったプレイヤの立ち位置が、キャリブレーション時と異なってくる場合もある。この場合、プレイヤの立ち位置、つまり、イメージセンサ20の遠近をリアルタイムに考慮した補正ができれば、より一層精度良く、指示位置の特定が可能になる。
【0101】
図13(b)を参照して、XY座標系において、キャリブレーション時では、画面14は画面Scに相当し、イメージセンサ20がテレビジョンモニタ10に近づいたときでは、画面14は画面Ssに相当し、イメージセンサ20がテレビジョンモニタ10から離れたときでは、画面14は画面Slに相当する。従って、イメージセンサ20とテレビジョンモニタ10との距離によって、テレビジョンモニタ10の画面14に相当するXY座標上の画面のサイズV2,H2が異なってくる。
【0102】
マルチメディアプロセッサ22は、イメージセンサ20の遠近を考慮すべく、XY座標上の画面SのサイズV2,H2をリアルタイムで求めることにより、より的確なスクリーン座標系への変換を行うことができるので、画面14上の指示位置をより一層精度良く求めることができる(遠近補正)。なお、キャリブレーション時のマーカ12間の距離を基準に、拡大率あるいは縮小率が分かるので、容易に、サイズV2,H2を算出できる。
【0103】
さて、次に、マーカ12の他の配置例を説明する。図14は、マーカ12の配置例の説明図である。図14(a)に示すように、マーカ12を画面14の右上角の近傍に配置し、他のマーカ12を画面14の左下角の近傍に配置する。この場合、キャリブレーションは、いずれか一方のマーカ12を使用して行う。また、図4と同様に、プレイヤに2点を指し示させてキャリブレーションを行うこともできるが、プレイヤに画面14の中央を指し示させてキャリブレーションを行うこともできる。なぜなら、マーカ12が、画面14の右上角及び左下角に配置されているため、2点の検出を行わなくとも、XY座標系での画面Sのサイズを算出できるからである。ただし、後者の場合は、イメージセンサ20の光軸周りの回転を検知できないので、回転補正ができない。遠近補正は可能である。また、後者の場合、プレイヤにとってキャリブレーションのための操作が1つ減るので、煩わしさが軽減する。
【0104】
図14(b)を参照して、図14(a)の2つのマーカ12に加えて、他のマーカ12を画面14の右下角の近傍に配置する。この場合、プレイヤに画面14の中央を指し示させてキャリブレーションを行うだけで、回転補正も可能となる。また、遠近補正も可能である。さらに、XY座標上の画面Sの歪を検出できるので、歪補正を行うことができる。例えば、プレイヤが、画面14の正面ではなく、斜めの位置でプレイする場合は、XY座標上の画面Sの形状が若干歪むこともあるが、これを考慮して、スクリーン座標系への変換を行うことができ、より一層精度良く指示位置の特定ができる(歪補正)。
【0105】
図14(c)に示すように、4つのマーカ12を、画面14の4つの角の近傍に配置する。この場合は、図14(b)と同様のキャリブレーションで、回転補正、遠近補正及び歪補正が可能になる。
【0106】
図15は、本発明の実施の形態の変形例の説明図である。図15を参照して、テレビジョンモニタ10の上面に、発光装置60を載置する。発光装置60は、2つの赤外発光ダイオード62を備えており、常に、赤外光を発光する。発光装置60は、例えば、電池で駆動する。このように、マーカとして自発光する発光装置60を設けることで、ガン型コントローラ1の赤外発光ダイオード3が不要になる。また、より鮮明なマーカの像を取得できる。なお、1つの赤外発光ダイオード62が、1つのマーカに相当する。
【0107】
さて、以上のように、本実施の形態によれば、最終的に補間法によってマーカ12の位置を求めているので、イメージセンサ20の解像度を実質的に高くすることができる。このため、イメージセンサ20に設定された解像度の高低に関係なく、実用に足る、指示位置の検出精度を確保できる。しかも、補間式は、放物線を示す式であり、輝度分布に即したものなので、指示位置の検出精度をより向上できる。
【0108】
また、本実施の形態では、補間に使用するピクセル数は、3ピクセルであり、必要最小限の数である。さらに、単一のマーカ12を取り付けているので、位置の導出は、1つマーカ12に対してのみ行えばよい。さらに、赤外線フィルタ5を介した撮影および差分画像によるマーカ12の抽出を行っている。よって、処理負荷の増大を招くことなく、精度良くマーカ12の位置を求めることができる。また、トリガスイッチ7が引かれたときにのみ、画面14上の指し示された位置を特定するので、これも処理負荷の軽減に寄与する。
【0109】
さらに、本実施の形態では、ガン型コントローラ1により指し示す対象として、テレビジョンモニタ10の画面14を例に挙げている。従って、画面14に表示された映像と、ガン型コントローラ1が指し示す画面14上の位置と、の関係に応じて、対応する処理を行うソフトウェア(例えば、図11のシューティングゲームのソフトウェア等)の作成が可能になる。
【0110】
さらに、本実施の形態では、キャリブレーションの際、プレイヤに指し示させる画面14上の位置に、第1ターゲットA及び第2ターゲットBを表示する。従って、キャリブレーションのためのターゲットをそのためだけに画面14上に取り付ける必要もなく、利便性の向上を図ることができる。
【0111】
本実施の形態の変形例では、テレビジョンモニタ10に対して赤外光を照射することなく、マーカ(赤外発光ダイオード62)の像を取得できるので、画面14からの反射赤外光が撮像されることを防止できる。その他、実施の形態と同様の効果を奏する。一方、図1(a)の構成で、画面14からの反射赤外光が写りこむ場合は、差分画像IMに、上下に並んだ高輝度領域が存在すると考えられる。よって、このときは、上に位置する高輝度領域がマーカ12の像と判断する。なぜなら、マーカ12は、画面14の上に配置されるからである。
【0112】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【0113】
(1)上記では、円形のマーカ12を使用したが、マーカ12の形状は、矩形等、任意の形状をとることができる。回転が認識できる形状であれば、マーカ50の形状は、図12(a)のものに限られない。マーカ12及び50の位置は、図1(b)、図12(a)、図12(c)、及び図13(a)に示した位置に限定されず、画面14の周辺の任意の位置に配置できる。画面14の上に配置することもできる。図15において、赤外発光ダイオード62間の距離は任意に設定できる。発光装置60は、画面14の周辺の任意の位置に配置できる。赤外発光ダイオード62は、1つでもよい。1つの赤外発光ダイオード62を1つのマーカと考えて、各々1つの赤外発光ダイオード62を有する複数の発光装置を用意し、図12(c)、図13(a)、及び図14に示したマーカ12にならって配置することにより、回転補正、遠近補正、及び歪補正が可能になる。なお、図15の発光装置60の使用で、回転補正は可能である。
【0114】
(2)上記では、テレビジョンモニタ10の画面14上の指し示された位置を求めた。ただし、テレビジョンモニタ10のような表示装置の画面上の位置だけでなく、ボード、ポスター、壁など、様々な領域上の指し示された位置を特定できる。また、滑らかで平坦な面上の位置の特定に限られない。さらに、指し示す対象は、画面などの矩形のものに限られず、円形など、任意の形状に適用できる。
【0115】
(3)上記では、最も高い輝度値のピクセル及びその両側に位置するピクセルに基づいて、補間法による補正値Xd,Ydの導出を行った。ただし、3ピクセルの情報に限らず、5ピクセル等、任意の数のピクセルの情報を用いて、補間法による補正値の算出を行うことができる。また、補間式は、より高次の式など、放物線の式に限定されない。
【図面の簡単な説明】
【0116】
【図1】(a)本発明の実施の形態におけるガン型コントローラ1の外観斜視図。(b)本発明の実施の形態におけるマーカ12を取り付けたテレビジョンモニタ10の外観斜視図。
【図2】イメージセンサ20による差分画像IMに写ったマーカ12の像の例示図。
【図3】マーカ12の位置補正の説明図。
【図4】キャリブレーション画面の説明図。
【図5】マルチメディアプロセッサ22によるキャリブレーション処理の説明図。
【図6】マルチメディアプロセッサ22による指示位置特定処理の説明図。
【図7】ガン型コントローラ1の電気的構成を示す図。
【図8】マルチメディアプロセッサ22によるキャリブレーション処理の流れの一例を示すフローチャート。
【図9】図8のステップS2の撮影処理の流れの一例を示すフローチャート。
【図10】図8のステップS9のマーカ位置算出処理の流れの一例を示すフローチャート。
【図11】マルチメディアプロセッサ22によるゲーム処理の流れの一例を示すフローチャート。
【図12】回転補正の説明図。
【図13】遠近補正の説明図。
【図14】マーカ12の配置例の説明図。
【図15】本発明の実施の形態による変形例の説明図。
【符号の説明】
【0117】
1…ガン型コントローラ、3,62…赤外発光ダイオード、5…赤外線フィルタ、7…トリガスイッチ、10…テレビジョンモニタ、12,50…マーカ、14…画面、20…イメージセンサ、22…マルチメディアプロセッサ、24…ROM、26…バス、60…発光装置。
【技術分野】
【0001】
本発明は、対象物上の指し示された位置を特定可能な指示位置検出方法及びその関連技術に関する。
【背景技術】
【0002】
特許文献1には、画面位置指示装置が開示されている。これは、表示装置の画面を撮像する撮像装置を有するガン型コントローラを備える。表示装置の画面の4隅にはマークが形成されており、これらのマークを撮像装置により撮像する。そして、得られた撮像画像に写っているマークの検出結果に基づいて、ガン型コントローラによって指し示されている、表示装置の画面上の位置を算出する。
【0003】
【特許文献1】特開2003−140832号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、撮像画像に写ったマークの位置検出の精度は、撮像装置の解像度に依存する。つまり、ガン型コントローラによる指示位置の検出精度は、撮像装置の解像度に依存する。このため、比較的高い解像度の撮像装置を使用する必要があり、コストが高くなる。一方、低い解像度の撮像装置を使用すると、指示位置の検出精度が低くなり、実用が困難である。
【0005】
そこで、本発明は、撮像装置に設定された解像度の高低に関係なく、実用に足る、指示位置の検出精度を確保できる指示位置検出方法及びその関連技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の形態によると、指示位置検出方法は、操作者により把持されて対象物上の任意の位置を指し示す指示装置によって指し示された位置を検出する指示位置検出方法であって、前記対象物に取り付けられたマーカを撮像する撮像ステップと、撮像によって得られた画像中の前記マーカの像を構成するピクセルのうち、最も高い輝度値を持つピクセルの位置情報を求める第1の位置導出ステップと、前記最も高い輝度値を持つ前記ピクセルを含む所定数のピクセルの位置情報、及び、その所定数のピクセルの輝度値に基づき、補間法によって、前記最も高い輝度値より高い輝度値に対応する位置情報を求める第2の位置導出ステップと、前記最も高い輝度値より高い輝度値に対応する前記位置情報に基づいて、前記対象物上の指し示された位置を特定する位置特定ステップと、を含む。
【0007】
この構成によれば、最終的に補間法によってマーカの位置を求めているので、撮像装置の解像度を実質的に高くすることができる。このため、撮像装置に設定された解像度の高低に関係なく、実用に足る、指示位置の検出精度を確保できる。
【0008】
上記指示位置検出方法において、前記補間法による補間式は、放物線を示す式である。この構成によれば、輝度分布に即した補間式となるので、指示位置の検出精度をより向上できる。
【0009】
上記指示位置検出方法において、前記所定数のピクセルは、前記最も高い輝度値を持つ前記ピクセル及びその両側のピクセルである。この構成によれば、3ピクセルの処理で済むので、処理負荷の軽減を図りながらも、指示位置の特定が可能となる。
【0010】
上記指示位置検出方法において、撮像によって得られた前記画像は、第1の方向及びその第1の方向に垂直な第2の方向に並んだピクセルの二次元配列からなり、前記位置情報は、前記第1の方向の成分及び前記第2の方向の成分を含む。この構成によれば、第1の方向(例えば、水平方向)及び第2の方向(例えば、垂直方向)の双方において、解像度を実質的に高くできる。
【0011】
上記指示位置検出方法において、前記対象物は、矩形領域を含み、前記指示装置は、前記矩形領域上の任意の位置を指し示す。前記対象物は、映像を表示する表示装置であり、前記矩形領域は、前記表示装置の画面である。
【0012】
この構成によれば、画面に表示された映像と、指示装置が指し示す画面上の位置と、の関係に応じて、対応する処理を行うソフトウェア(例えば、シューティングゲームのソフトウェア等)の作成が可能になる。
【0013】
上記指示位置検出方法において、前記対象物には、単一の前記マーカが取り付けられる。この構成によれば、位置の導出は、1つマーカに対してのみ行えばよいので、処理負荷の軽減を図ることができる。
【0014】
上記指示位置検出方法において、前記単一のマーカは、アスペクト比が異なる。この構成によれば、光軸周りに回転した撮像装置によりマーカが撮像された場合でも、その回転量を検出できるので、撮像装置の回転を反映した指示位置の特定ができる(回転補正)。このため、指示位置の検出精度をより向上できる。
【0015】
上記指示位置検出方法において、前記対象物には、2つの前記マーカが取り付けられる。この構成によれば、光軸周りに回転した撮像装置によりマーカが撮像された場合でも、その回転量を検出できるので、上記と同様に回転補正ができる。
【0016】
この場合、前記矩形領域の所定の辺に沿って2つの前記マーカが取り付けられ、前記2つのマーカ間の距離は、前記所定の辺の長さより短い。この構成によれば、2つのマーカ間の距離が所定の辺の長さと実質的に等しい場合と比べて、2つのマーカの双方が撮像範囲に入りやすくなる。このため、撮像装置が光軸周りに回転したことの検知をより確実に行うことができるので、指示位置の検出精度をより一層向上できる。
【0017】
一方、前記2つのマーカ間の距離を、前記所定の辺の長さと実質的に等しくできる。この構成によれば、リアルタイムで2つのマーカ間の距離を求めることができるので、撮像装置と対象物との間の距離が変わっても、補正が可能になり(遠近補正)、指示位置の検出精度をより一層向上できる。また、回転補正も可能である。
【0018】
上記指示位置検出方法において、前記矩形領域の対角線上又はその延長線上に2つの前記マーカが取り付けられ、前記2つのマーカ間の距離は、前記対角線の長さと実質的に等しい。この構成によれば、2つのマーカの像に基づいて、矩形領域のサイズを算出できるので、矩形領域のサイズを計測するための処理及び操作が不要になる。
【0019】
上記指示位置検出方法は、前記指示装置が前記対象物上の複数の所定箇所を個々に指し示したときのそれぞれの前記マーカの像に基づいて、前記第1の位置導出ステップ及び前記第2の位置導出ステップによって、前記補間法による前記位置情報を求めるステップをさらに含む。
【0020】
この構成によれば、指示位置を特定するために必要な前処理(キャリブレーション)を、指示位置を特定するための処理と同様の処理により行うことができる。
【0021】
上記指示位置検出方法において、前記対象物は、映像を表示する表示装置であり、前記指示装置は、前記表示装置の画面上の任意の位置を指し示し、前記指示位置検出方法は、前記表示装置の前記画面の複数の所定箇所の各々にターゲットを表示するステップと、前記指示装置が前記ターゲットを指し示したときの前記マーカの像に基づいて、前記第1の位置導出ステップ及び前記第2の位置導出ステップによって、前記補間法による前記位置情報を求めるステップと、をさらに含む。
【0022】
この構成によれば、指示位置を特定するために必要な前処理(キャリブレーション)のためのターゲットをそのためだけに表示装置に取り付ける必要もなく、利便性の向上を図ることができる。
【0023】
上記指示位置検出方法において、前記操作者によるトリガが発生したときに、前記第1の位置導出ステップ、前記第2の位置導出ステップ、及び前記位置特定ステップを実行する。この構成によれば、前記操作者によるトリガが発生したときにのみ、前記対象物上の指し示された位置を特定するので、処理負荷の軽減を図ることができる。
【0024】
上記指示位置検出方法は、前記マーカに、予め定められた周期で、赤外光を照射するステップをさらに含み、前記撮像ステップは、前記赤外光の照射時に、赤外線フィルタを介して前記対象物を撮像して、照射時画像データを取得するステップと、前記赤外光の非照射時に、前記赤外線フィルタを介して前記対象物を撮像して、非照射時画像データを取得するステップと、前記照射時画像データと前記非照射時画像データとの差分を求めて、差分画像データを生成するステップと、を含み、前記第1の位置導出ステップでは、前記差分画像データに基づく差分画像上の前記マーカの像に基づいて、前記位置情報を求め、前記マーカは、再帰反射体で構成される。
【0025】
この構成によれば、マーカの像以外のノイズ成分を簡易な処理で除去できる。このため、処理負荷の増大を招くことなく、より精度良くマーカの位置情報を求めることができる。
【0026】
上記指示位置検出方法において、前記マーカは、自発光可能である。この構成によれば、対象物に対して光を照射することなく、マーカの像を取得できるので、対象物からの反射光が撮像されることを防止できる。
【発明を実施するための最良の形態】
【0027】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
【0028】
図1(a)は、本発明の実施の形態におけるガン型コントローラ1の外観斜視図である。図1(b)は、本発明の実施の形態におけるマーカ12を取り付けたテレビジョンモニタ10の外観斜視図である。
【0029】
図1(a)に示すように、ガン型コントローラ1の銃口に相当する部分(以下、「銃口」と呼ぶ。)には、円板状の赤外線フィルタ5が取り付けられ、それを囲むように、4つの赤外発光ダイオード3が配置される。赤外線フィルタ5は、赤外光以外の光を遮断し、赤外光のみを透過させる。赤外線フィルタ5の背面側には、後述のイメージセンサ20が、面平行に配置される。また、ガン型コントローラ1は、トリガスイッチ7を有する。
【0030】
ガン型コントローラ1は、A/Vケーブル(図示せず)により、図1(b)のテレビジョンモニタ10に接続される。テレビジョンモニタ10は、液晶テレビ、プラズマテレビ、プロジェクションテレビ、及びブラウン管テレビ等、その形式は問わずいずれでもよい。A/Vケーブルは、例えば、ガン型コントローラ1の弾倉底板に相当する部分に接続される。また、ガン型コントローラ1には、図示していないが、電池又はACアダプタにより電源電圧が供給される。
【0031】
テレビジョンモニタ10の画面14の上縁中央部付近であって、画面14の外側に、円形のマーカ12が取り付けられる。マーカ12は、例えば、再帰反射シート等の再帰反射体である。
【0032】
プレイヤは、ガン型コントローラ1の銃口をテレビジョンモニタ10に向けて、画面14上の位置を指し示し、トリガスイッチ7を引く。その時、後述のイメージセンサ20に撮影されたマーカ12の位置に基づいて、トリガスイッチ7を引いた時の画面14上の指し示された位置が特定される。
【0033】
次に、マーカ12の位置を算出する手順を説明する。
【0034】
[マーカ12の撮影]
ガン型コントローラ1に搭載される後述のマルチメディアプロセッサ22は、赤外発光ダイオード3を一定周期で間欠的に駆動する。従って、テレビジョンモニタ10にガン型コントローラ1の銃口が向けられると、テレビジョンモニタ10に、赤外光が間欠的に照射される。
【0035】
イメージセンサ20は、赤外発光ダイオード3の発光時と消灯時の双方において撮影処理を行う。従って、マルチメディアプロセッサ22は、イメージセンサ20から、発光時画像データと消灯時画像データを取得する。画像データは、輝度データである。
【0036】
[差分画像の生成]
マルチメディアプロセッサ22は、発光時画像データと消灯時画像データとの差分を求めて、差分画像データを生成する。これにより、マーカ12だけを抽出できる。つまり、差分画像データに基づく差分画像には、マーカ12だけが写りこむ。この理由を説明する。
【0037】
赤外光発光時の画像と消灯時の画像とで、輝度値が大きく異なるのは、マーカ12だけである。なぜなら、マーカ12が再帰反射体だからである。
【0038】
詳しくは次の通りである。赤外発光ダイオード3は、赤外線フィルタ5の近傍に配置されているため、再帰反射された赤外光は、赤外線フィルタ5に入射し、さらに背後のイメージセンサ20に入射する。従って、マーカ12は、赤外光発光時では赤外光をイメージセンサ20に向けて反射するため輝度が大きくなり(強く光り)、赤外光消灯時では再帰反射がないため輝度が極端に小さくなる(ほとんど光らない)。
【0039】
一方、マーカ12以外の物体は、再帰反射体ではないため、赤外光発光時においても、イメージセンサ20に向けて強い反射光を返すことはない。つまり、マーカ12以外の物体は、赤外光発光時と消灯時とで、輝度値に大きな差はない。従って、差分をとることにより、マーカ12以外の物体の像を除去でき、マーカ12だけを抽出できるのである。しかも、イメージセンサ20による撮影は、赤外線フィルタ5を介して行われるので、赤外光以外の光が除去され、差分の効果は一層大きくなる。
【0040】
以上のように、赤外線フィルタ5を介して差分画像データ(つまり差分画像)を求めることで、処理負荷の増大を招くことなく、マーカ12からの反射光以外の光によるノイズを極力除去でき、精度良くマーカ12を検出できる。
【0041】
なお、テレビジョンモニタ10の画面14の更新よりも速いタイミングで、赤外発光ダイオード3の発光と消灯の1サイクルを行えば、差分を求めることで、画面14の像を除去できる。また、画面14の像は、必ずしも写りこむとは限らない。
【0042】
[マーカ12の位置算出]
図2は、イメージセンサ20による差分画像IMに写ったマーカ12の像の例示図である。図2を参照して、イメージセンサ20による差分画像IMの左下角を原点Oとし、単位がイメージセンサ20のピクセルであるXY座標系を想定する。以下、XY座標系というときは、この座標系を意味する。また、本実施の形態では、イメージセンサ20として、32×32ピクセルのCMOSイメージセンサを用いる。
【0043】
マルチメディアプロセッサ22は、差分画像IMの全ピクセルをスキャンして、最も輝度値が大きいピクセルを抽出する。図2では、最も輝度値が大きいピクセルの座標を、(X,Y)=(Xc,Yc)とする。しかしながら、このようにして求めた座標値は、ピクセル単位で算出されるので、本実施の形態のような、低解像度のイメージセンサ20を使用したのでは、求める座標値の精度が低くなる。当然、マーカ12の座標値を基に、ガン型コントローラ1により指し示される位置が特定されるため、指示位置特定の精度も低くなる。そこで、以下の補正を行う。
【0044】
[マーカ12の位置補正]
図3は、マーカ12の位置補正の説明図である。図3を参照して、横軸は、図2のX座標を示し、縦軸は、ピクセルの輝度値を示す。図2と同様に、最も輝度値が大きいピクセルの座標を、(X,Y)=(Xc,Yc)とする。また、(Xl,Yc)=(Xc−1,Yc)のピクセルの輝度値を「Bl」、(Xc,Yc)のピクセルの輝度値を「Bc」、(Xr,Yc)=(Xc+1,Yc)のピクセルの輝度値を「Br」とする。
【0045】
本実施の形態では、マルチメディアプロセッサ22は、放物線の式により、輝度分布を近似する。そして、マルチメディアプロセッサ22は、放物線pbの頂点に対応するX座標Xtを求める。具体的には、マルチメディアプロセッサ22は、(数1)により、補正値Xdを求める。
【0046】
【数1】
Y座標の補正値Ydも、(数1)を用いて算出される。ただし、(Xc,Yb)=(Xc,Yc−1)のピクセルの輝度値を「Bl」、(Xc,Yc)のピクセルの輝度値を「Bc」、(Xc,Yu)=(Xc,Yc+1)のピクセルの輝度値を「Br」とする。
【0047】
そして、マルチメディアプロセッサ22は、マーカ12の位置を(Xt,Yt)=(Xc+Xd,Yc+Yd)とする。
【0048】
このように、補間式を用いて、輝度分布を近似し、補正値Xd及びYdを求め、補正を行うことで、イメージセンサ20の解像度を実質的に高くしている。従って、低解像度のイメージセンサ20を使用する場合であっても、マーカ12の位置を精度良く求めることができる。マーカ12の座標値を基に、ガン型コントローラ1により指し示される位置が特定されるため、指示位置特定の精度も向上する。
【0049】
次に、ガン型コントローラ1による指示位置の特定のための前処理として行われるキャリブレーションについて説明する。
【0050】
図4は、キャリブレーション画面の説明図である。キャリブレーションを行う際、まず、図4(a)に示すように、画面14の左下隅に第1ターゲットAが表示される。プレイヤは、ガン型コントローラ1の銃口を第1ターゲットAに向けて、第1ターゲットAを指し示し、トリガスイッチ7を引く。
【0051】
次に、図4(b)に示すように、画面14の右上隅に第2ターゲットBが表示される。プレイヤは、ガン型コントローラ1の銃口を第2ターゲットBに向けて、第2ターゲットBを指し示し、トリガスイッチ7を引く。
【0052】
以上で、キャリブレーションのためのプレイヤの操作は終了する。一方において、マルチメディアプロセッサ22によるキャリブレーション処理が実行される。
【0053】
図5は、マルチメディアプロセッサ22によるキャリブレーション処理の説明図である。図5を参照して、図4(a)の第1ターゲットAが指し示されたときに撮影されたマーカ12の位置a(Xa,Ya)、及び、図4(b)の第2ターゲットBが指し示されたときに撮影されたマーカ12の位置b(Xb,Yb)が、上記のようにして、マルチメディアプロセッサ22により算出される。
【0054】
第1ターゲットA及びBは、それぞれ画面14の左下隅及び右上隅に表示されるので、XY座標上の線分Lは、画面14の対角線に相当する。つまり、テレビジョンモニタ10の画面14は、XY座標上では、画面Sとして表される。
【0055】
マルチメディアプロセッサ22は、位置a及びbから、画面Sの中心位置f(Xf,Yf)、縦サイズV2、及び横サイズH2を算出する。これにより、マルチメディアプロセッサ22によるキャリブレーション処理が終了する。
【0056】
図6は、マルチメディアプロセッサ22による指示位置特定処理の説明図である。プレイヤが、ガン型コントローラ1により、画面14上の位置Pを指し示したとする。位置Pが、画面14上の右上隅付近である例を挙げる。そうすると、図6(a)に示すように、マーカ12の像の位置p(Xp,Yp)は、XY座標上の画面S上の左下隅付近になる。
【0057】
従って、図6(b)に示すように、ガン型コントローラ1により指し示された画面14上の位置Pに相当する画面S上の位置p#は、画面Sの中心位置fを中心として位置pを180度回転した位置(X#,Y#)となる。そして、XY座標系の位置p#をスクリーン座標系の位置P(画面14上の指し示された位置P)に変換する。スクリーン座標系は、テレビジョンモニタ10の画面14に表示されるピクセルの位置を表す座標系であり、本実施の形態では、画面14の中心を原点とする。
【0058】
具体的には、マルチメディアプロセッサ22は、Xm=Xf−Xp、Ym=Yf−Ypを求める。そして、xm=Xm×(2/H2)×(H1/2)、ym=Ym×(2/V2)×(V1/2)、を求め、(xm,ym)を画面14上の指し示された位置Pとする。ここで、画面14のサイズを横H1×縦V1ピクセル、画面Sのサイズを横H2×縦V2ピクセルとした。
【0059】
図7は、ガン型コントローラ1の電気的構成を示す図である。図7に示すように、ガン型コントローラ1は、マルチメディアプロセッサ22、イメージセンサ20、赤外発光ダイオード3、トリガスイッチ7、ROM(read only memory)24、及びバス26を含む。
【0060】
マルチメディアプロセッサ22は、バス26を通じて、ROM24にアクセスできる。従って、マルチメディアプロセッサ22は、ROM24に格納されたプログラムを実行でき、また、ROM24に格納されたデータをリードして処理することができる。このROM24に、プログラム、画像データ、及び音声データ等が予め格納される。
【0061】
このマルチメディアプロセッサ22は、図示しないが、中央演算処理装置(以下、「CPU」と呼ぶ。)、グラフィックスプロセシングユニット(以下、「GPU」と呼ぶ。)、サウンドプロセシングユニット(以下、「SPU」と呼ぶ。)、ジオメトリエンジン(以下、「GE」と呼ぶ。)、外部インタフェースブロック、メインRAM、及びA/Dコンバータ(以下、「ADC」と呼ぶ。)などを具備する。
【0062】
CPUは、ROM24に格納されたプログラムを実行して、各種演算やシステム全体の制御を行う。グラフィックス処理に関するCPUの処理として、ROM24に格納されたプログラムを実行して、各オブジェクト及び各スプライトの拡大・縮小、回転、及び/又は平行移動のパラメータ、視点座標(カメラ座標)、並びに視線ベクトルの算出等を行う。ここで、1または複数のポリゴンから構成され、同じ拡大・縮小、回転、及び平行移動の変換が適用される単位を「オブジェクト」と呼ぶ。
【0063】
GPUは、ポリゴン及びスプライトから構成される三次元イメージをリアルタイムに生成し、アナログのコンポジットビデオ信号に変換する。SPUは、PCM(pulse code modulation)波形データ、アンプリチュードデータ、及びメインボリュームデータを生成し、それぞれアナログ信号に変換し、結果をアナログ乗算して、アナログオーディオ信号を生成する。GEは、三次元イメージを表示するための幾何演算を実行する。具体的には、GEは、行列積、ベクトルアフィン変換、ベクトル直交変換、透視投影変換、頂点明度/ポリゴン明度計算(ベクトル内積)、及びポリゴン裏面カリング処理(ベクトル外積)などの演算を実行する。
【0064】
外部インタフェースブロックは、周辺装置(本実施の形態ではイメージセンサ20、赤外発光ダイオード3、及びトリガスイッチ7)とのインタフェースであり、24チャンネルのプログラマブルなデジタル入出力(I/O)ポートを含む。ADCは、4チャンネルのアナログ入力ポートに接続され、これらを介して、アナログ入力装置(本実施の形態ではイメージセンサ20)から入力されたアナログ信号をデジタル信号に変換する。メインRAMは、CPUのワーク領域、変数格納領域、および仮想記憶機構管理領域等として利用される。
【0065】
図7を参照して、テレビジョンモニタ10に取り付けられたマーカ12は、赤外発光ダイオード3の赤外光に照射され、その赤外光を再帰反射する。このマーカ12からの反射光がイメージセンサ20によって撮影され、したがって、イメージセンサ20からはマーカ12の像を含む画像データが出力される。上記のように、マルチメディアプロセッサ22は、ストロボ撮影のために、赤外発光ダイオード3を間欠的に駆動するので、赤外光消灯時の画像データも出力される。イメージセンサ20からのこれらのアナログ画像データはマルチメディアプロセッサ22に内蔵されたADCによってデジタルデータに変換される。
【0066】
マルチメディアプロセッサ22は、イメージセンサ20からADCを介して入力されるデジタル画像データから差分画像データIM(差分画像IM)を生成して、これに基づき、XY座標上のマーカ12の位置pを求める。これと、キャリブレーションの結果を参照して、ガン型コントローラ1によるスクリーン座標系の指示位置Pを求める。
【0067】
マルチメディアプロセッサ22は、求めた指示位置Pに応じて、演算、グラフィック処理、及びサウンド処理等を実行し、ビデオ信号およびオーディオ信号を出力する。ビデオ信号およびオーディオ信号は、A/Vケーブル(図示せず)によりテレビジョンモニタ10に与えられ、応じて、テレビジョンモニタ10に映像が表示され、そのスピーカ(図示せず)から音声が出力される。
【0068】
図8は、マルチメディアプロセッサ22によるキャリブレーション処理の流れの一例を示すフローチャートである。図8を参照して、ステップS1にて、マルチメディアプロセッサ22は、システムの初期設定を実行する。ステップS2にて、マルチメディアプロセッサ22は、イメージセンサ20を制御して撮影処理を行う。
【0069】
図9は、図8のステップS2の撮影処理の流れの一例を示すフローチャートである。図9を参照して、ステップS30において、マルチメディアプロセッサ22は、赤外発光ダイオード3を点灯する。ステップS31で、マルチメディアプロセッサ22は、イメージセンサ20から、赤外光点灯時の画像データを取得して、メインRAMに格納する。
【0070】
ここで、本実施の形態では、イメージセンサ20は、32×32ピクセルの解像度である。従って、イメージセンサ20からは、画像データとして、32×32ピクセルのピクセルデータが出力される。このピクセルデータは、A/Dコンバータにより、デジタルデータに変換されて、メインRAM上の二次元配列P1[X][Y]に格納される。X=0〜31、Y=0〜31である。
【0071】
ステップS32で、マルチメディアプロセッサ22は、赤外発光ダイオード3を消灯する。ステップS33にて、マルチメディアプロセッサ22は、イメージセンサ20から、赤外光消灯時の画像データ(32×32ピクセルのピクセルデータ)を取得して、メインRAMに格納する。この場合、赤外光消灯時の画像データは、メインRAM上の二次元配列P2[X][Y]に格納される。X=0〜31、Y=0〜31である。
【0072】
以上のようにして、ストロボ撮影が行われる。なお、ピクセルデータは、対応するピクセルの輝度データである。
【0073】
図8に戻って、ステップS3にて、マルチメディアプロセッサ22は、赤外発光ダイオード3の点灯時のピクセルデータ(つまり配列P1[X][Y]の要素)と、赤外発光ダイオード3の消灯時のピクセルデータ(つまり配列P2[X][Y]の要素)と、の差分を算出して、差分データを二次元配列Dif[X][Y]に代入する。
【0074】
ステップS4にて、マルチメディアプロセッサ22は、キャリブレーション終了フラグをチェックして、キャリブレーションが終了した場合はステップS18に進んで、キャリブレーションが終了したことをプレイヤに通知するための画面設定(画像データの格納位置や表示座標の設定など)を行う。一方、終了していない場合はステップS5に進む。
【0075】
ステップS5では、マルチメディアプロセッサ22は、第1ターゲットA(図4(a)参照)へのシューティングが完了したか否か、つまり、プレイヤがガン型コントローラ1で第1ターゲットAを指し示しトリガスイッチ7を引いた(オンした)か否か、を判断し、第1ターゲットAのシューティングが完了している場合は、ステップS7に進み、完了していない場合は、ステップS6に進む。
【0076】
ステップS6では、マルチメディアプロセッサ22は、第1ターゲットAを画面14に表示するための設定(第1ターゲットAの画像格納位置や表示座標の設定など)を行う。一方、ステップS7では、マルチメディアプロセッサ22は、第2ターゲットBを画面14に表示するための設定(第2ターゲットBの画像格納位置や表示座標の設定など)を行う。
【0077】
ステップS8では、マルチメディアプロセッサ22は、トリガスイッチ7が引かれた(オンされた)か否かを判断し、トリガスイッチ7が引かれた場合はステップS9に進み、それ以外はステップS15に進む。ステップS9にて、マルチメディアプロセッサ22は、マーカ12の位置を算出する。
【0078】
図10は、図8のステップS9のマーカ位置算出処理の流れの一例を示すフローチャートである。図10を参照して、ステップS40にて、マルチメディアプロセッサ22は、差分画像データから、最も大きい輝度値のピクセルデータを抽出し、その座標(Xc,Yc)を求める。
【0079】
ステップS41にて、マルチメディアプロセッサ22は、(数1)により、放物線近似を行い、X座標の補正値Xdを算出する。ステップS42にて、マルチメディアプロセッサ22は、原座標Xcに補正値Xdを加算して、加算結果Xtをマーカ12のX座標とする。
【0080】
Y座標の補正が済んでいないので(ステップS43)、マルチメディアプロセッサ22は、ステップS41及びS42に進み、補正値Ydを求め、原座標Ycに補正値Ydを加算して、加算結果Ytをマーカ12のY座標とする。そして、図8のルーチンにリターンする。
【0081】
図8に戻って、ステップS10では、マルチメディアプロセッサ22は、マーカ12の位置(Xt,Yt)をメインRAMに格納する。
【0082】
ステップS11では、マルチメディアプロセッサ22は、第2ターゲットB(図4(b)参照)へのシューティングが完了したか否か、つまり、プレイヤがガン型コントローラ1で第2ターゲットBを指し示しトリガスイッチ7を引いた(オンした)か否か、を判断し、第2ターゲットBのシューティングが完了している場合は、ステップS12に進み、完了していない場合は、ステップS15に進む。
【0083】
ステップS12にて、マルチメディアプロセッサ22は、第1ターゲットAがシューティングされたときのマーカ12の位置および第2ターゲットBがシューティングされたときのマーカ12の位置に基づいて、差分画像IM上の画面14の像S(図5参照)の中心位置(Xf,Yf)及びサイズV2,H2を算出する。そして、ステップS13にて、マルチメディアプロセッサ22は、像Sの中心位置(Xf,Yf)及びサイズV2,H2をメインRAMに格納し、ステップS14にて、キャリブレーション終了フラグをオンにする。
【0084】
ステップS15にて、マルチメディアプロセッサ22は、ビデオ同期の割込み待ちであれば(ビデオ同期信号による割り込みがなければ)、同じステップS15に戻る。一方、ステップS15で、ビデオ同期信号による割り込みがあれば、ステップS16に進む。
【0085】
ステップS16では、マルチメディアプロセッサ22は、テレビジョンモニタ10に表示される画面(ビデオフレーム)の更新処理を実行し、続くステップS17にて、音楽や効果音を出力するための音声処理を実行し、ステップS2に進む。
【0086】
図11は、マルチメディアプロセッサ22によるゲーム処理の流れの一例を示すフローチャートである。図11を参照して、ステップS50にて、マルチメディアプロセッサ22は、システムの初期設定を実行する。ステップS51にて、マルチメディアプロセッサ22は、イメージセンサ20を制御して撮影処理を行う。この撮影処理は、図8のステップS2の撮影処理と同じである。
【0087】
ステップS52にて、マルチメディアプロセッサ22は、赤外発光ダイオード3の点灯時のピクセルデータ(つまり配列P1[X][Y]の要素)と、赤外発光ダイオード3の消灯時のピクセルデータ(つまり配列P2[X][Y]の要素)と、の差分を算出して、差分データを二次元配列Dif[X][Y]に代入する。この処理は、図8のステップS3の処理と同じである。
【0088】
ステップS53にて、マルチメディアプロセッサ22は、テレビジョンモニタ10にターゲット(図示せず)を表示するための設定(ターゲットの画像格納位置及び表示座標の設定など)を行う。ステップS54にて、マルチメディアプロセッサ22は、トリガスイッチ7が引かれた(オンされた)か否かを判断し、引かれていればステップS55に進み、そうでなければステップS61に進む。
【0089】
ステップS55にて、マルチメディアプロセッサ22は、XY座標上のマーカ12の位置を算出する。この処理は、図8のステップS9の処理と同じである。ステップS56にて、マルチメディアプロセッサ22は、ステップS55で求めたマーカ12の位置、XY座標上の画面Sの中心位置(Xf,Yf)、画面14のサイズV1,H1、及び画面SのサイズV2,H2に基づいて、プレイヤがガン型コントローラ1により指し示した画面14上の位置P(つまり、シューティング位置P)を算出する。
【0090】
ステップS57にて、マルチメディアプロセッサ22は、シューティング位置Pが、ターゲットの表示範囲に存在するか否か(つまり、ヒットしたか否か)を判定する。ステップS58では、ヒットの場合はステップS60に進み、ミスの場合はステップS59に進む。
【0091】
ステップS60では、マルチメディアプロセッサ22は、ヒット後の処理(加点やエフェクト画像の設定など)を行う。一方、ステップS59では、ミス後の処理(エフェクト画像の設定など)を行う。
【0092】
そして、マルチメディアプロセッサ22は、ステップS61〜S63の処理を行って、ステップS51に進む。ステップS61〜S63の処理は、それぞれ、図8のステップS15〜S17と同じである。
【0093】
さて、上記では、円形状かつ単一のマーカ12を使用した。しかし、マーカの形状あるいは配置によっては、さらに回転補正を行うことができる。この場合でも、マーカは、再帰反射シート等の再帰反射体である。
【0094】
図12は、回転補正の説明図である。図12(a)に示すように、アスペクト比が異なる矩形状のマーカ50を、テレビジョンモニタ10に取り付ける。このようなアスペクト比が異なるマーカ50を使用すると、イメージセンサ20がその光軸周りに回転したことを検知できる。
【0095】
ゲーム処理中、プレイヤのガン型コントローラ1の持ち方によっては、キャリブレーション時のイメージセンサ20の状態に対して、イメージセンサ20がその光軸周りに回転することもある。この場合、この回転をリアルタイムに考慮した補正ができれば、より精度良く、指示位置の特定が可能になる。
【0096】
図12(b)を参照して、キャリブレーション時を基準にして、ゲーム処理中、イメージセンサ20が、反時計回りに、角度θだけ回転したとする。この場合、マルチメディアプロセッサ22は、XY座標系で表されたマーカ50の位置を、XY座標系を角度θだけ反時計回りに回転したUV座標系で表す。具体的には、マルチメディアプロセッサ22は、(数2)により、座標変換を行う(回転補正)。回転角θは、リアルタイムで取得できるので、リアルタイムで回転補正を行うことができる。
【0097】
【数2】
図12(c)を参照して、2つのマーカ12を一定間隔だけ離して配置し、これを撮影することによっても、イメージセンサ20の回転角θを検知できるので、上記同様、回転補正をリアルタイムで行うことができる。なお、キャリブレーションは、いずれか1つのマーカ12を用いて行う。また、2つのマーカ12の検出は、例えば、差分画像から最大輝度値のピクセル(1つ目のマーカ12)を抽出し、さらに、そのピクセルを含む一定範囲をマスクしてから、最大輝度値のピクセル(2つ目のマーカ12)を抽出することにより行う。
【0098】
図12(c)のように、2つのマーカ12間の距離を、画面14の辺の長さより短くすることにより、2つのマーカ12間の距離が画面14の辺の長さと実質的に等しい場合と比べて(後述の図13(a)参照)、2つのマーカ12の双方が撮像範囲に入りやすくなる。このため、イメージセンサ20の回転の検知をより確実に行うことができる。
【0099】
さて、マーカ12の配置によっては、さらに、遠近補正を行うことができる。図13は、遠近補正の説明図である。図13(a)に示すように、マーカ12を画面14の左上角近傍に配置し、他方のマーカ12を画面14の右上角近傍に配置する。このような配置にすると、キャリブレーション時を基準にして、イメージセンサ20とテレビジョンモニタ10との間の遠近を検知できる。なぜなら、イメージセンサ20が離れた場合は、その程度に応じてXY座標上のマーカ12間の距離が短くなり、イメージセンサ20が近づいた場合は、その程度に応じてXY座標上のマーカ12間の距離が長くなるからである。
【0100】
ゲーム処理中、ガン型コントローラ1を持ったプレイヤの立ち位置が、キャリブレーション時と異なってくる場合もある。この場合、プレイヤの立ち位置、つまり、イメージセンサ20の遠近をリアルタイムに考慮した補正ができれば、より一層精度良く、指示位置の特定が可能になる。
【0101】
図13(b)を参照して、XY座標系において、キャリブレーション時では、画面14は画面Scに相当し、イメージセンサ20がテレビジョンモニタ10に近づいたときでは、画面14は画面Ssに相当し、イメージセンサ20がテレビジョンモニタ10から離れたときでは、画面14は画面Slに相当する。従って、イメージセンサ20とテレビジョンモニタ10との距離によって、テレビジョンモニタ10の画面14に相当するXY座標上の画面のサイズV2,H2が異なってくる。
【0102】
マルチメディアプロセッサ22は、イメージセンサ20の遠近を考慮すべく、XY座標上の画面SのサイズV2,H2をリアルタイムで求めることにより、より的確なスクリーン座標系への変換を行うことができるので、画面14上の指示位置をより一層精度良く求めることができる(遠近補正)。なお、キャリブレーション時のマーカ12間の距離を基準に、拡大率あるいは縮小率が分かるので、容易に、サイズV2,H2を算出できる。
【0103】
さて、次に、マーカ12の他の配置例を説明する。図14は、マーカ12の配置例の説明図である。図14(a)に示すように、マーカ12を画面14の右上角の近傍に配置し、他のマーカ12を画面14の左下角の近傍に配置する。この場合、キャリブレーションは、いずれか一方のマーカ12を使用して行う。また、図4と同様に、プレイヤに2点を指し示させてキャリブレーションを行うこともできるが、プレイヤに画面14の中央を指し示させてキャリブレーションを行うこともできる。なぜなら、マーカ12が、画面14の右上角及び左下角に配置されているため、2点の検出を行わなくとも、XY座標系での画面Sのサイズを算出できるからである。ただし、後者の場合は、イメージセンサ20の光軸周りの回転を検知できないので、回転補正ができない。遠近補正は可能である。また、後者の場合、プレイヤにとってキャリブレーションのための操作が1つ減るので、煩わしさが軽減する。
【0104】
図14(b)を参照して、図14(a)の2つのマーカ12に加えて、他のマーカ12を画面14の右下角の近傍に配置する。この場合、プレイヤに画面14の中央を指し示させてキャリブレーションを行うだけで、回転補正も可能となる。また、遠近補正も可能である。さらに、XY座標上の画面Sの歪を検出できるので、歪補正を行うことができる。例えば、プレイヤが、画面14の正面ではなく、斜めの位置でプレイする場合は、XY座標上の画面Sの形状が若干歪むこともあるが、これを考慮して、スクリーン座標系への変換を行うことができ、より一層精度良く指示位置の特定ができる(歪補正)。
【0105】
図14(c)に示すように、4つのマーカ12を、画面14の4つの角の近傍に配置する。この場合は、図14(b)と同様のキャリブレーションで、回転補正、遠近補正及び歪補正が可能になる。
【0106】
図15は、本発明の実施の形態の変形例の説明図である。図15を参照して、テレビジョンモニタ10の上面に、発光装置60を載置する。発光装置60は、2つの赤外発光ダイオード62を備えており、常に、赤外光を発光する。発光装置60は、例えば、電池で駆動する。このように、マーカとして自発光する発光装置60を設けることで、ガン型コントローラ1の赤外発光ダイオード3が不要になる。また、より鮮明なマーカの像を取得できる。なお、1つの赤外発光ダイオード62が、1つのマーカに相当する。
【0107】
さて、以上のように、本実施の形態によれば、最終的に補間法によってマーカ12の位置を求めているので、イメージセンサ20の解像度を実質的に高くすることができる。このため、イメージセンサ20に設定された解像度の高低に関係なく、実用に足る、指示位置の検出精度を確保できる。しかも、補間式は、放物線を示す式であり、輝度分布に即したものなので、指示位置の検出精度をより向上できる。
【0108】
また、本実施の形態では、補間に使用するピクセル数は、3ピクセルであり、必要最小限の数である。さらに、単一のマーカ12を取り付けているので、位置の導出は、1つマーカ12に対してのみ行えばよい。さらに、赤外線フィルタ5を介した撮影および差分画像によるマーカ12の抽出を行っている。よって、処理負荷の増大を招くことなく、精度良くマーカ12の位置を求めることができる。また、トリガスイッチ7が引かれたときにのみ、画面14上の指し示された位置を特定するので、これも処理負荷の軽減に寄与する。
【0109】
さらに、本実施の形態では、ガン型コントローラ1により指し示す対象として、テレビジョンモニタ10の画面14を例に挙げている。従って、画面14に表示された映像と、ガン型コントローラ1が指し示す画面14上の位置と、の関係に応じて、対応する処理を行うソフトウェア(例えば、図11のシューティングゲームのソフトウェア等)の作成が可能になる。
【0110】
さらに、本実施の形態では、キャリブレーションの際、プレイヤに指し示させる画面14上の位置に、第1ターゲットA及び第2ターゲットBを表示する。従って、キャリブレーションのためのターゲットをそのためだけに画面14上に取り付ける必要もなく、利便性の向上を図ることができる。
【0111】
本実施の形態の変形例では、テレビジョンモニタ10に対して赤外光を照射することなく、マーカ(赤外発光ダイオード62)の像を取得できるので、画面14からの反射赤外光が撮像されることを防止できる。その他、実施の形態と同様の効果を奏する。一方、図1(a)の構成で、画面14からの反射赤外光が写りこむ場合は、差分画像IMに、上下に並んだ高輝度領域が存在すると考えられる。よって、このときは、上に位置する高輝度領域がマーカ12の像と判断する。なぜなら、マーカ12は、画面14の上に配置されるからである。
【0112】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【0113】
(1)上記では、円形のマーカ12を使用したが、マーカ12の形状は、矩形等、任意の形状をとることができる。回転が認識できる形状であれば、マーカ50の形状は、図12(a)のものに限られない。マーカ12及び50の位置は、図1(b)、図12(a)、図12(c)、及び図13(a)に示した位置に限定されず、画面14の周辺の任意の位置に配置できる。画面14の上に配置することもできる。図15において、赤外発光ダイオード62間の距離は任意に設定できる。発光装置60は、画面14の周辺の任意の位置に配置できる。赤外発光ダイオード62は、1つでもよい。1つの赤外発光ダイオード62を1つのマーカと考えて、各々1つの赤外発光ダイオード62を有する複数の発光装置を用意し、図12(c)、図13(a)、及び図14に示したマーカ12にならって配置することにより、回転補正、遠近補正、及び歪補正が可能になる。なお、図15の発光装置60の使用で、回転補正は可能である。
【0114】
(2)上記では、テレビジョンモニタ10の画面14上の指し示された位置を求めた。ただし、テレビジョンモニタ10のような表示装置の画面上の位置だけでなく、ボード、ポスター、壁など、様々な領域上の指し示された位置を特定できる。また、滑らかで平坦な面上の位置の特定に限られない。さらに、指し示す対象は、画面などの矩形のものに限られず、円形など、任意の形状に適用できる。
【0115】
(3)上記では、最も高い輝度値のピクセル及びその両側に位置するピクセルに基づいて、補間法による補正値Xd,Ydの導出を行った。ただし、3ピクセルの情報に限らず、5ピクセル等、任意の数のピクセルの情報を用いて、補間法による補正値の算出を行うことができる。また、補間式は、より高次の式など、放物線の式に限定されない。
【図面の簡単な説明】
【0116】
【図1】(a)本発明の実施の形態におけるガン型コントローラ1の外観斜視図。(b)本発明の実施の形態におけるマーカ12を取り付けたテレビジョンモニタ10の外観斜視図。
【図2】イメージセンサ20による差分画像IMに写ったマーカ12の像の例示図。
【図3】マーカ12の位置補正の説明図。
【図4】キャリブレーション画面の説明図。
【図5】マルチメディアプロセッサ22によるキャリブレーション処理の説明図。
【図6】マルチメディアプロセッサ22による指示位置特定処理の説明図。
【図7】ガン型コントローラ1の電気的構成を示す図。
【図8】マルチメディアプロセッサ22によるキャリブレーション処理の流れの一例を示すフローチャート。
【図9】図8のステップS2の撮影処理の流れの一例を示すフローチャート。
【図10】図8のステップS9のマーカ位置算出処理の流れの一例を示すフローチャート。
【図11】マルチメディアプロセッサ22によるゲーム処理の流れの一例を示すフローチャート。
【図12】回転補正の説明図。
【図13】遠近補正の説明図。
【図14】マーカ12の配置例の説明図。
【図15】本発明の実施の形態による変形例の説明図。
【符号の説明】
【0117】
1…ガン型コントローラ、3,62…赤外発光ダイオード、5…赤外線フィルタ、7…トリガスイッチ、10…テレビジョンモニタ、12,50…マーカ、14…画面、20…イメージセンサ、22…マルチメディアプロセッサ、24…ROM、26…バス、60…発光装置。
【特許請求の範囲】
【請求項1】
操作者により把持されて対象物上の任意の位置を指し示す指示装置によって指し示された位置を検出する指示位置検出方法であって、
前記対象物に取り付けられたマーカを撮像する撮像ステップと、
撮像によって得られた画像中の前記マーカの像を構成するピクセルのうち、最も高い輝度値を持つピクセルの位置情報を求める第1の位置導出ステップと、
前記最も高い輝度値を持つ前記ピクセルを含む所定数のピクセルの位置情報、及び、その所定数のピクセルの輝度値に基づき、補間法によって、前記最も高い輝度値より高い輝度値に対応する位置情報を求める第2の位置導出ステップと、
前記最も高い輝度値より高い輝度値に対応する前記位置情報に基づいて、前記対象物上の指し示された位置を特定する位置特定ステップと、を含む指示位置検出方法。
【請求項2】
前記補間法による補間式は、放物線を示す式である、請求項1記載の指示位置検出方法。
【請求項3】
前記所定数のピクセルは、前記最も高い輝度値を持つ前記ピクセル及びその両側のピクセルである、請求項1又は2記載の指示位置検出方法。
【請求項4】
撮像によって得られた前記画像は、第1の方向及びその第1の方向に垂直な第2の方向に並んだピクセルの二次元配列からなり、
前記位置情報は、前記第1の方向の成分及び前記第2の方向の成分を含む、請求項1から3記載の指示位置検出方法。
【請求項5】
前記対象物は、矩形領域を含み、前記指示装置は、前記矩形領域上の任意の位置を指し示す、請求項1から4記載の指示位置検出方法。
【請求項6】
前記対象物は、映像を表示する表示装置であり、前記矩形領域は、前記表示装置の画面である、請求項5記載の指示位置検出方法。
【請求項7】
前記対象物には、単一の前記マーカが取り付けられる、請求項1から6記載の指示位置検出方法。
【請求項8】
前記単一のマーカは、アスペクト比が異なる、請求項7記載の指示位置検出方法。
【請求項9】
前記対象物には、2つの前記マーカが取り付けられる、請求項1から6記載の指示位置検出方法。
【請求項10】
前記矩形領域の所定の辺に沿って2つの前記マーカが取り付けられ、前記2つのマーカ間の距離は、前記所定の辺の長さより短い、請求項9記載の指示位置検出方法。
【請求項11】
前記2つのマーカ間の距離は、前記所定の辺の長さと実質的に等しい、請求項9記載の指示位置検出方法。
【請求項12】
前記矩形領域の対角線上又はその延長線上に2つの前記マーカが取り付けられ、前記2つのマーカ間の距離は、前記対角線の長さと実質的に等しい、請求項5又は6記載の指示位置検出方法。
【請求項13】
前記指示装置が前記対象物上の複数の所定箇所を個々に指し示したときのそれぞれの前記マーカの像に基づいて、前記第1の位置導出ステップ及び前記第2の位置導出ステップによって、前記補間法による前記位置情報を求めるステップをさらに含む請求項1から4記載の指示位置検出方法。
【請求項14】
前記対象物は、映像を表示する表示装置であり、前記指示装置は、前記表示装置の画面上の任意の位置を指し示し、
前記指示位置検出方法は、
前記表示装置の前記画面の複数の所定箇所の各々にターゲットを表示するステップと、
前記指示装置が前記ターゲットを指し示したときの前記マーカの像に基づいて、前記第1の位置導出ステップ及び前記第2の位置導出ステップによって、前記補間法による前記位置情報を求めるステップと、をさらに含む請求項1から4記載の指示位置検出方法。
【請求項15】
前記操作者によるトリガが発生したときに、前記第1の位置導出ステップ、前記第2の位置導出ステップ、及び前記位置特定ステップを実行する、請求項1から14記載の指示位置検出方法。
【請求項16】
前記指示位置検出方法は、前記マーカに、予め定められた周期で、赤外光を照射するステップをさらに含み、
前記撮像ステップは、
前記赤外光の照射時に、赤外線フィルタを介して前記対象物を撮像して、照射時画像データを取得するステップと、
前記赤外光の非照射時に、前記赤外線フィルタを介して前記対象物を撮像して、非照射時画像データを取得するステップと、
前記照射時画像データと前記非照射時画像データとの差分を求めて、差分画像データを生成するステップと、を含み、
前記第1の位置導出ステップでは、前記差分画像データに基づく差分画像上の前記マーカの像に基づいて、前記位置情報を求め、
前記マーカは、再帰反射体で構成される、請求項1から15記載の指示位置検出方法。
【請求項17】
前記マーカは、自発光可能である、請求項1から16記載の指示位置検出方法。
【請求項1】
操作者により把持されて対象物上の任意の位置を指し示す指示装置によって指し示された位置を検出する指示位置検出方法であって、
前記対象物に取り付けられたマーカを撮像する撮像ステップと、
撮像によって得られた画像中の前記マーカの像を構成するピクセルのうち、最も高い輝度値を持つピクセルの位置情報を求める第1の位置導出ステップと、
前記最も高い輝度値を持つ前記ピクセルを含む所定数のピクセルの位置情報、及び、その所定数のピクセルの輝度値に基づき、補間法によって、前記最も高い輝度値より高い輝度値に対応する位置情報を求める第2の位置導出ステップと、
前記最も高い輝度値より高い輝度値に対応する前記位置情報に基づいて、前記対象物上の指し示された位置を特定する位置特定ステップと、を含む指示位置検出方法。
【請求項2】
前記補間法による補間式は、放物線を示す式である、請求項1記載の指示位置検出方法。
【請求項3】
前記所定数のピクセルは、前記最も高い輝度値を持つ前記ピクセル及びその両側のピクセルである、請求項1又は2記載の指示位置検出方法。
【請求項4】
撮像によって得られた前記画像は、第1の方向及びその第1の方向に垂直な第2の方向に並んだピクセルの二次元配列からなり、
前記位置情報は、前記第1の方向の成分及び前記第2の方向の成分を含む、請求項1から3記載の指示位置検出方法。
【請求項5】
前記対象物は、矩形領域を含み、前記指示装置は、前記矩形領域上の任意の位置を指し示す、請求項1から4記載の指示位置検出方法。
【請求項6】
前記対象物は、映像を表示する表示装置であり、前記矩形領域は、前記表示装置の画面である、請求項5記載の指示位置検出方法。
【請求項7】
前記対象物には、単一の前記マーカが取り付けられる、請求項1から6記載の指示位置検出方法。
【請求項8】
前記単一のマーカは、アスペクト比が異なる、請求項7記載の指示位置検出方法。
【請求項9】
前記対象物には、2つの前記マーカが取り付けられる、請求項1から6記載の指示位置検出方法。
【請求項10】
前記矩形領域の所定の辺に沿って2つの前記マーカが取り付けられ、前記2つのマーカ間の距離は、前記所定の辺の長さより短い、請求項9記載の指示位置検出方法。
【請求項11】
前記2つのマーカ間の距離は、前記所定の辺の長さと実質的に等しい、請求項9記載の指示位置検出方法。
【請求項12】
前記矩形領域の対角線上又はその延長線上に2つの前記マーカが取り付けられ、前記2つのマーカ間の距離は、前記対角線の長さと実質的に等しい、請求項5又は6記載の指示位置検出方法。
【請求項13】
前記指示装置が前記対象物上の複数の所定箇所を個々に指し示したときのそれぞれの前記マーカの像に基づいて、前記第1の位置導出ステップ及び前記第2の位置導出ステップによって、前記補間法による前記位置情報を求めるステップをさらに含む請求項1から4記載の指示位置検出方法。
【請求項14】
前記対象物は、映像を表示する表示装置であり、前記指示装置は、前記表示装置の画面上の任意の位置を指し示し、
前記指示位置検出方法は、
前記表示装置の前記画面の複数の所定箇所の各々にターゲットを表示するステップと、
前記指示装置が前記ターゲットを指し示したときの前記マーカの像に基づいて、前記第1の位置導出ステップ及び前記第2の位置導出ステップによって、前記補間法による前記位置情報を求めるステップと、をさらに含む請求項1から4記載の指示位置検出方法。
【請求項15】
前記操作者によるトリガが発生したときに、前記第1の位置導出ステップ、前記第2の位置導出ステップ、及び前記位置特定ステップを実行する、請求項1から14記載の指示位置検出方法。
【請求項16】
前記指示位置検出方法は、前記マーカに、予め定められた周期で、赤外光を照射するステップをさらに含み、
前記撮像ステップは、
前記赤外光の照射時に、赤外線フィルタを介して前記対象物を撮像して、照射時画像データを取得するステップと、
前記赤外光の非照射時に、前記赤外線フィルタを介して前記対象物を撮像して、非照射時画像データを取得するステップと、
前記照射時画像データと前記非照射時画像データとの差分を求めて、差分画像データを生成するステップと、を含み、
前記第1の位置導出ステップでは、前記差分画像データに基づく差分画像上の前記マーカの像に基づいて、前記位置情報を求め、
前記マーカは、再帰反射体で構成される、請求項1から15記載の指示位置検出方法。
【請求項17】
前記マーカは、自発光可能である、請求項1から16記載の指示位置検出方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2007−41910(P2007−41910A)
【公開日】平成19年2月15日(2007.2.15)
【国際特許分類】
【出願番号】特願2005−226504(P2005−226504)
【出願日】平成17年8月4日(2005.8.4)
【出願人】(396025861)新世代株式会社 (138)
【Fターム(参考)】
【公開日】平成19年2月15日(2007.2.15)
【国際特許分類】
【出願日】平成17年8月4日(2005.8.4)
【出願人】(396025861)新世代株式会社 (138)
【Fターム(参考)】
[ Back to top ]