説明

位置検出システム、プログラム、情報記憶媒体及び画像生成装置

【課題】高い精度でポインティング位置の検出が可能な位置検出システム、プログラム、情報記憶媒体、画像生成装置の提供。
【解決手段】位置検出システム10は、位置検出用パターンであるマーカ画像が原画像に対して埋め込まれた表示画像のうち、ポインティング位置PPに対応する撮像領域IMRの画像がカメラ12(撮像デバイス)により撮像された場合に、撮像デバイス12からの撮像画像を取得する画像取得部20と、取得された撮像画像に基づいて、撮像画像に埋め込まれたマーカ画像を検出する演算処理を行うことで、撮像領域IMRに対応するポインティング位置PPを求める位置検出処理部24を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、位置検出システム、プログラム、情報記憶媒体及び画像生成装置等に関する。
【背景技術】
【0002】
従来より、ガン型コントローラを用いて画面上のターゲットオブジェクトをシューティングして楽しむガンゲームと呼ばれる分野のゲームが人気を博している。このガンゲームでは、プレーヤ(操作者)がガン型コントローラの引き金を引くと、ショットの着弾位置(ポインティング位置)が、ガン型コントローラが内蔵する光センサを利用して光学的に検出される。そして、検出された着弾位置にターゲット(標的)オブジェクトが存在する場合には当たりと判定され、ターゲットオブジェクトが存在しない場合には外れと判定される。このようなガンゲームをプレイすることによりプレーヤは、現実世界における射撃を仮想体験できるようになる。
【0003】
このようなガンゲームに用いられる位置検出システムの従来例として、特許文献1、2に開示される従来技術がある。
【0004】
例えば特許文献1の従来技術では、表示画面の近傍に少なくとも1つの目標を設け、この目標の位置を撮像画像から検出し、その目標の検出位置に基づいてガン型コントローラによる着弾位置を検出する。また特許文献2の従来技術では、モニタ画面の枠を表示し、この枠の検出位置に基づいてガン型コントローラによる着弾位置を検出する。
【0005】
しかしながら、これらの従来技術では、目標や枠の検出位置に基づいて着弾位置を検出するため、検出精度が低いという課題がある。また、ゲーム開始前の初期設定として、目標の位置を特定するためのキャリブレーションが必要になるため、プレーヤに煩雑な作業を強いてしまうという課題がある。
【0006】
また、画像に対して秘匿データを埋め込む電子透かしと呼ばれる技術が知られている。しかしながら、この電子透かしにおいて埋め込まれるデータは、位置検出用のデータではなく、ガンゲーム等の位置検出システムに電子透かしの技術を適用した例については知られていない。
【特許文献1】特開平8−226793号公報
【特許文献2】特開平11−319316号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明の幾つかの態様によれば、高い精度でポインティング位置の検出が可能な位置検出システム、プログラム、情報記憶媒体及びゲーム装置を提供できる。
【課題を解決するための手段】
【0008】
本発明は、ポインティング位置を検出するための位置検出システムであって、位置検出用パターンであるマーカ画像が原画像に対して埋め込まれた表示画像のうち、前記ポインティング位置に対応する撮像領域の画像が撮像デバイスにより撮像された場合に、前記撮像デバイスからの撮像画像を取得する画像取得部と、取得された前記撮像画像に基づいて、前記撮像画像に埋め込まれた前記マーカ画像を検出する演算処理を行うことで、前記撮像領域に対応する前記ポインティング位置を求める位置検出処理部とを含む位置検出システムに関係する。
【0009】
本発明によれば、マーカ画像が原画像に対して埋め込まれた表示画像が、撮像デバイスにより撮像されると、その撮像画像が取得される。そして取得された撮像画像に基づいて、マーカ画像を検出する演算処理が行われて、撮像領域に対応するポインティング位置が求められる。このようにすれば、撮像画像に埋め込まれたマーカ画像を検出することで、ポインティング位置が求められるため、高い精度でのポインティング位置の検出が可能になる。
【0010】
また本発明では、前記表示画像は、前記原画像の各画素データを前記マーカ画像の各画素データで変換することで生成された画像であってもよい。
このようにすれば、原画像の状態を維持しつつ、マーカ画像の埋め込み処理を実現できる。
【0011】
また本発明では、前記表示画像は、前記原画像の各画素のR成分データ、G成分データ、B成分データ、色差成分データ及び輝度成分データの少なくとも1つを、前記マーカ画像の各画素データにより変換することで生成された画像であってもよい。
このようにすれば、原画像の各画素のR、G、B成分や色差成分や輝度成分のデータに対して、マーカ画像のデータを埋め込むことが可能になる。
【0012】
また本発明では、前記マーカ画像は、前記表示画像の各分割領域単位においてユニークなデータパターンとなる画素データにより構成されてもよい。
このようにすれば、マーカ画像のデータパターンが各分割領域単位でユニークであることを利用して、ポインティング位置を特定できる。
【0013】
また本発明では、前記マーカ画像の各画素データは、M系列を用いた乱数データにより生成されてもよい。
このようにすれば、マーカ画像のユニークなデータパターンを簡素な手法で生成できる。
【0014】
また本発明では、前記撮像デバイスは、前記表示画像の表示領域よりも狭い一部の領域を前記撮像領域として、画像を撮像するようにしてもよい。
このようにすれば、例えば撮像デバイスの撮像画素数が少ない場合にも、広い領域を撮像する場合に比べて、相対的な解像度を高くでき、ポインティング位置の検出精度を向上できる。
【0015】
また本発明では、前記位置検出処理部は、前記撮像画像と前記マーカ画像との相互相関を演算し、前記相互相関の演算結果に基づいて前記ポインティング位置を求めてもよい。
このようにすれば、撮像画像とマーカ画像との相互相関演算により、高い精度でのポインティング位置の検出が可能になる。
【0016】
また本発明では、前記位置検出処理部は、前記相互相関の演算結果又は前記マーカ画像に対してハイパスフィルタ処理を行ってもよい。
このようにすれば、原画像に起因するノイズのパワーを低減できるため、検出精度を向上できる。
【0017】
また本発明では、前記相互相関の最大値と前記相互相関の値の分布とに基づいて、前記相互相関の演算結果の信頼度を求める信頼度演算部を含んでもよい。
このようにすれば、求められた信頼度を利用した様々な処理が可能になる。
【0018】
また本発明では、前記撮像画像に対して画像補正を行う画像補正部を含み、前記位置検出処理部は、前記画像補正部での画像補正後の撮像画像に基づいて、前記ポインティング位置を求めてもよい。
このような画像補正を行えば、撮像デバイスとの位置関係等が変化した場合にも、適正な位置検出を実現できる。
【0019】
また本発明は、位置検出用パターンであるマーカ画像が原画像に対して埋め込まれた表示画像を生成して表示部に出力する画像生成部と、前記表示画像の撮像画像に基づいて、前記撮像画像に埋め込まれた前記マーカ画像が検出され、前記撮像画像の撮像領域に対応するポインティング位置が求められた場合に、求められた前記ポインティング位置に基づいて、演算処理を行う処理部とを含む画像生成装置に関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0020】
本発明によれば、マーカ画像が原画像に対して埋め込まれた表示画像が生成されて、表示部に表示される。そして、この表示画像の撮像画像に基づいてマーカ画像が検出されて、ポインティング位置が求められると、求められたポインティング位置に基づいて、様々な演算処理が行われるようになる。このようにすれば、撮像画像に埋め込まれたマーカ画像を検出することで、ポインティング位置が求められるため、高い精度でポインティング位置を検出して、様々な演算処理に利用することが可能になる。
【0021】
また本発明では、前記処理部は、前記ポインティング位置に基づいて、ゲーム成績演算処理を含むゲーム処理を行ってもよい。
このようにすれば、高い精度で求められたポインティング位置を用いたゲーム成績演算処理等のゲーム処理が可能になる。
【0022】
また本発明では、前記画像生成部は、前記原画像の各画素データを前記マーカ画像の各画素データで変換することで、前記表示画像を生成してもよい。
【0023】
また本発明では、前記画像生成部は、前記原画像の各画素のR成分データ、G成分データ、B成分データ、色差成分データ及び輝度成分データの少なくとも1つを、前記マーカ画像の各画素データにより変換することで、前記表示画像を生成してもよい。
【0024】
また本発明では前記マーカ画像は、前記表示画像の各分割領域単位においてユニークなデータパターンとなる画素データにより構成されてもよい。
【0025】
また本発明では、前記マーカ画像の各画素データは、M系列を用いた乱数データにより生成されてもよい。
【0026】
また本発明では、前記処理部は、前記マーカ画像を、時間経過に応じて変化させる処理を行ってもよい。
このようにすれば、マーカ画像のトータルの情報量を増やすことができ、検出精度を向上できる。
【0027】
また本発明では、前記処理部は、前記ポインティング位置を求めるために前記撮像画像と前記マーカ画像との相互相関が演算され、前記相互相関の演算結果の信頼度が求められた場合に、求められた前記信頼度に基づいて、前記マーカ画像を変化させる処理を行ってもよい。
このようにすれば、位置検出の信頼度が高いマーカ画像が原画像に埋め込まれるようになるため、検出精度を向上できる。
【0028】
また本発明では、前記処理部は、前記マーカ画像を、前記原画像に応じて変化させる処理を行ってもよい。
このようにすれば原画像の状態に適合したマーカ画像を埋め込むことが可能になる。
【0029】
また本発明では、外乱の測定情報を取得する外乱測定情報取得部を含み、前記処理部は、前記マーカ画像を、前記外乱測定情報に基づいて変化させる処理を行ってもよい。
このようにすれば、外乱の測定情報に応じて最適なマーカ画像を埋め込むことができるため、適正な位置検出を実現できる。
【0030】
また本発明では、前記画像生成部は、特定条件が満たされていない場合には、マーカ画像が埋め込まれていない原画像を前記表示画像として出力し、前記特定条件が満たされた場合には、前記マーカ画像が埋め込まれた画像を前記表示画像として出力してもよい。
このようにすれば、特定条件が満たされた場合にだけ、マーカ画像が埋め込まれた画像表示されるようになるため、マーカ画像の存在を目立たなくすることが可能になり、表示画像の品質を向上できる。
【0031】
また本発明では、前記画像生成部は、前記特定条件が満たされた場合に、前記原画像として位置検出用原画像を生成し、前記位置検出用原画像に対して前記マーカ画像が埋め込まれた画像を前記表示画像として出力してもよい。
このようにすれば、位置検出用原画像を利用した演出等の実現も可能になる。
【0032】
また本発明では、前記画像生成部は、ポインティングデバイスからの指示情報に基づいて、位置検出を行うタイミングであると判断した場合に、前記マーカ画像が埋め込まれた画像を前記表示画像として出力してもよい。
このようにすれば、ポインティングデバイスからの指示情報に基づいて、位置検出を行うタイミングであると判断された場合に、マーカ画像が埋め込まれた画像が表示されるようになるため、マーカ画像の存在を目立たなくすることが可能になり、表示画像の品質を向上できる。
【0033】
また本発明では、前記処理部は、前記ポインティング位置に基づいて、ゲーム成績演算処理を含むゲーム処理を行い、前記画像生成部は、前記ゲーム処理において特定のゲームイベントが発生した場合に、前記マーカ画像が埋め込まれた画像を前記表示画像として出力してもよい。
このようにすれば、特定のゲームイベントが発生した場合に、マーカ画像が埋め込まれた画像が表示されるようになるため、ゲームイベントに応じたマーカ画像の埋め込み処理を実現できる。
【0034】
また本発明では、特定条件が満たされた際の前記表示画像の前記撮像画像に基づいて、前記ポインティング位置が求められてもよい。
このようにすれば、例えば特定条件が満たされたか否かに依らずにマーカ画像が埋め込まれた表示画像を常に表示しておき、特定条件が満たされた際の表示画像の撮像画像を取得することで、ポインティング位置を求めることができる。例えば、ポインティングデバイスからの指示情報に基づいて、位置検出を行うタイミングであると判断した場合や、ゲーム処理において特定のゲームイベントが発生した場合に、特定条件が満たされたと判断し、そのタイミングでの撮像画像を用いて、ポインティング位置を求めることが可能になる。
【発明を実施するための最良の形態】
【0035】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0036】
1.位置検出システム
図1に本実施形態の位置検出システムの構成例を示す。図1において、CRT、LCD等で構成される表示部190には、マーカ画像が埋め込まれた表示画像が表示されている。例えば、ゲーム画像等の原画像(ゲームキャラクタ等のオブジェクトが表示される画像、背景画像)に対して、位置検出用パターンであるマーカ画像(位置検出用画像、電子透かし画像)を埋め込むことで(マーカ画像を合成することで)、表示画像が生成されて、表示部190に表示される。具体的には、この表示画像は、原画像の各画素データ(RGBデータやYUVデータ)を、マーカ画像の各画素データ(原画像の各画素に対応したデータ)で変換することで生成された画像である。更に具体的には、表示画像は、原画像の各画素のR成分データ、G成分データ、B成分データ、色差成分データ及び輝度成分データの少なくとも1つを、マーカ画像の各画素データ(M配列等)により変換することで生成された画像である。この場合、例えばマーカ画像は、表示画像(表示画面)の各分割領域単位(複数行、複数列の画素の領域単位)においてユニークなデータパターンとなる画素データにより構成される。即ち表示画像の任意の第1の分割領域と第2の分割領域において、マーカ画像の位置検出用パターンは異なったパターンになっている。また、マーカ画像の各画素データは、例えばM系列を用いた乱数データ(疑似乱数データ)により生成してもよい。
【0037】
位置検出システム10は、画像取得部20、画像補正部22、位置検出処理部24、信頼度演算部26を含む。なお、本実施形態の位置検出システム10は図1の構成に限定されず、これらの一部の構成要件(例えば画像補正部、信頼度演算部等)を省略したり、他の構成要件(例えば画像合成部)を追加するなどの様々な変形実施が可能である。例えば、後述する画像生成装置で生成されるゲーム画像等の原画像に対して、マーカ画像を埋め込む機能(合成機能)を、位置検出システム10に持たせてもよい。
【0038】
画像取得部20は、カメラ12(広義には撮像デバイス)により撮像(撮影)された撮像画像を取り込んで取得する。具体的には、位置検出用パターンであるマーカ画像が原画像に対して埋め込まれた表示画像(原画像とマーカ画像の合成画像)のうち、ポインティング位置PP(別の言い方をすれば撮像位置)に対応する撮像領域IMRの画像が、カメラ12により撮像された場合に、その撮像画像を取得する。
【0039】
なお、ポインティング位置PPは、例えば撮像領域IMR内の位置であり、撮像領域IMRの中心位置(注視点位置)であってもよいし、四隅の位置等であってもよい。また図1では、説明の都合上、撮像領域IMRは、大きな領域になっているが、実際には表示画面に対して十分に小さな領域になる。また、カメラ12の実際の撮像領域のうち、カメラ12の注視点位置付近の領域を、位置検出用の撮像領域に設定し、その撮像領域の撮像画像に基づいてポインティング位置PPを検出することができる。
【0040】
即ちカメラ12が内蔵する撮像デバイスは、表示画像の表示領域よりも狭い一部の領域を撮像領域IMRとして、画像を撮像する。そして画像取得部20が、このようにして撮像された撮像画像を取得し、位置検出処理部24が、この一部の領域である撮像領域IMRでの撮像画像に基づいてポインティング位置PPを検出する。こうすれば、撮像デバイスの画素数が少なくても、相対的に解像度を高くでき、ポインティング位置PPの検出精度を向上できる。
【0041】
画像補正部22は、撮像画像に対する画像補正処理を行う。具体的には、例えば撮像画像の回転処理、スケーリング処理の少なくとも一方を行う。例えばカメラ12のパン、チルト、視軸回りの回転、表示画面との距離の変化に対応して、それを打ち消すための回転処理やスケーリング処理などの画像補正を行う。例えばカメラ12に回転等を検出するためのセンサを設け、画像補正部22は、このセンサからの検出情報に基づいて、撮像画像の補正処理を行う。或いは、表示画面の画素やブラックマトリックスなどの直線部分の傾きを、撮像画像に基づいて検出し、この検出結果に基づいて撮像画像の補正処理を行ってもよい。
【0042】
位置検出処理部24は、取得された撮像画像(例えば画像補正後の撮像画像)に基づいて、ポインティング位置PP(指示位置)の検出処理を行う。例えば、取得された撮像画像に基づいて、撮像画像に埋め込まれたマーカ画像を検出する演算処理を行うことで、撮像領域IMRに対応するポインティング位置PP(指示位置)を求める。
【0043】
位置検出処理部24が行う演算処理としては、撮像画像とマーカ画像のマッチングの度合いを調べる画像マッチング処理がある。例えば撮像画像と、マーカ画像の各分割領域との画像マッチング処理を行い、画像のマッチング度合いが最も大きくなる分割領域の位置を、ポインティング位置PPとして検出する。
【0044】
更に具体的には位置検出処理部24は、画像マッチング処理として、撮像画像とマーカ画像との相互相関を演算する処理を行う。そして相互相関の演算結果(相互相関値、相互相関の最大値)に基づいて、ポインティング位置PPを求める。なおこの場合に、相互相関の演算結果や、マーカ画像に対して、ハイパスフィルタ処理を行ってもよい。このようにすれば、相互相関の演算結果の高周波数領域だけを利用することができ、検出精度を向上できる。即ち、原画像は低周波数領域に大きなパワーを持っていると考えられるため、この低周波数成分をハイパスフィルタ処理で除去することで、検出精度を向上できる。
【0045】
信頼度演算部26は信頼度の演算処理を行う。例えば撮像画像とマーカ画像との画像マッチング処理の結果に対する信頼度を求める。そして、信頼度が高い場合には、得られたポインティング位置の情報を正常な情報として出力し、信頼度が低い場合には、エラー情報等を出力する。例えば位置検出処理部24が、画像マッチング処理として相互相関の演算処理を行う場合には、信頼度演算部26は、相互相関の最大値と相互相関の値の分布とに基づいて、相互相関の演算結果の信頼度を求めればよい。
【0046】
図2に本実施形態の第1の比較例の手法を示す。この第1の比較例では、表示部(ディスプレイ)の4隅等に赤外線LED501、502、503、504を配置する。そして図2のA1に示すように、カメラ12により撮像された画像から、これらの赤外線LED501〜504の位置を検出し、これらの位置に基づいて、A2に示すようにカメラ12のポインティング位置PPを求める。
【0047】
しかしながら、この第1の比較例では、カメラ12以外に、赤外線LED501〜504を用意する必要がある。このため、コストの増加等を招く。また、赤外線LED501〜504の配置位置をカメラ12に認識させるために、ゲームプレイの開始前に、初期設定としてキャリブレーションを行う必要がある。従って、プレーヤに対して煩雑な作業を強いることになるという問題がある。また、限られた個数の赤外線LED501〜504に基づいてポインティング位置を検出しているため、検出精度が低いと共に、外乱耐性も低いという問題もある。
【0048】
この点、本実施形態の位置検出手法によれば、図2に示すような赤外線LED501〜504を設けなくても済むため、低コスト化を図れる。また、キャリブレーション処理は行わなくても済むため、プレーヤの利便性を向上できる。また、マーカ画像が埋め込まれた表示画像を用いて、ポインティング位置が検出されるため、図2の第1の比較例に比べて検出精度や外乱耐性を向上できる。
【0049】
図3(A)、図3(B)に本実施形態の第2の比較例の手法を示す。この第2の比較例では、マーカ画像の埋め込み処理は行わずに、原画像についての画像マッチング処理だけを行っている。即ち図3(A)に示すように、カメラ12が内蔵する撮像デバイスにより、撮像領域IMRの撮像画像を取得し、この撮像画像と原画像との画像マッチング処理を行って、ポインティング位置PPを求める。
【0050】
この第2の比較例では、例えば図3(B)のB1に示すような撮像領域IMR1がカメラ12により撮像された場合には、B2に示すようにその撮像位置を特定できる。しかしながら、B3に示すような撮像領域IMR2が撮像された場合には、B4、B5、B6のいずれの位置が撮像されたのかを特定できないという問題がある。
【0051】
そこで本実施形態では、図4に示すような位置検出用パターンであるマーカ画像を用意する。そして、このマーカ画像を原画像に対して埋め込む(合成する)。例えば電子透かしなどの手法と同様の手法でデータを埋め込んで、表示画像を生成し、この表示画像を表示部190に表示する。
【0052】
そして、図5のC1に示すようにカメラ12(撮像デバイス)により撮像領域IMR1の撮像画像が撮像されると、この撮像画像とマーカ画像とのパターンマッチングにより、C2に示すように撮像領域IMR1の撮像位置であるポインティング位置PP1が特定される。またC3に示すようにカメラ12により撮像領域IMR2の撮像画像が撮像されると、この撮像画像とマーカ画像とのパターンマッチングにより、C4に示すように撮像領域IMR2の撮像位置であるポインティング位置PP2が特定される。即ち図3(B)のB3、B4、B5、B6では特定できなかったポインティング位置の特定が、マーカ画像を用いることで可能になる。従って、赤外線LED等を設けることなく、高い精度でのポインティング位置の特定が可能になる。
【0053】
図6(A)に本実施形態のマーカ画像を概念的に示す。このマーカ画像は、表示画面上の位置を検出するためのパターンである。例えば電子透かしでは、ユーザに見られたくない秘匿情報を埋め込むが、本実施形態では、このような秘匿情報ではなく、位置検出用のパターンを埋め込む。
【0054】
この場合の位置検出用パターンは図6(A)に模式的に示されるように、表示画像(表示画面)の各分割領域においてユニークなデータのパターンになっている。例えば図6(A)では、表示画像の領域が8行、8列の分割領域に分割され、各分割領域は、例えば複数行、複数列の画素の領域になっている。また各分割領域には00〜77というようにユニークなマーカ画像のデータが設定されている。即ち、任意の2つの撮像領域の撮像画像に対して埋め込まれたマーカ画像が異なるような、特殊なパターンを設定する。
【0055】
例えば図6(B)のD1では、撮像領域IMRの撮像画像から、「55」となるマーカ画像のデータが抽出(検出)されている。そしてマーカ画像のデータが「55」となる分割領域は、D2に示す領域となる。これにより、ポインティング位置PPが特定される。
【0056】
この場合、撮像画像と原画像とがマッチングする必要はなく、撮像画像に埋め込まれたマーカ画像と、それに対応する分割領域でのマーカ画像とがマッチングすればよい。即ち、図6(B)のD1に示す撮像領域IMRの撮像画像に埋め込まれたマーカ画像と、このD1に示す分割領域でのマーカ画像とがマッチングすると、D2に示すようにポインティング位置PPが特定される。
【0057】
2.位置検出処理
次に位置検出処理の一例について説明する。なお本実施形態の位置検出処理は以下に示す手法に限定されず、種々の画像マッチング処理を用いた様々な変形実施が可能である。
【0058】
2.1 M配列のマーカ画像を用いた位置検出
マーカ画像のデータパターンはM系列(maximal-length sequence)の乱数を用いて設定できる。具体的にはM系列を2次元に拡張したM配列によってマーカ画像の各画素データを設定する。なおマーカ画像のデータ生成に使用する乱数データは、M系列に限定されず、例えばGold系列などの種々のPN系列を採用できる。
【0059】
M系列は、ある長さのシフトレジスタとフィードバックにより生成される符号系列のうち、その周期が最長となる系列である。例えばk次(kはシフトレジスタの段数に相当)のM系列の周期はL=2−1と表される。そしてM配列とは、M系列乱数の2次元配列である。
【0060】
具体的には、k次のM系列a〜aL−1を作成し、これを次の規則でM行N列の配列であるM配列に配置する。
(I)aを、M行N列の配列の一番左上に配置する。
(II)aの右下にaを配置し、以下、順に右下に並べて行く。
(III)配列の上端と下端はつながっているものとして取り扱う。つまり、最下行まで来たら、次は最上行に移る。同様に、配列の左端と右端もつながっているものとして取り扱う。
【0061】
例えばk=4、L=15、M=3、N=5の場合には、下記に示すような3行、5列のM配列が生成される。
【数1】

【0062】
本実施形態では、このようにして生成されたM配列をマーカ画像の各画素データに設定する。そして原画像の各画素データを、M配列により設定されたマーカ画像の各画素データで変換することで、マーカ画像の埋め込み処理を実現する。
【0063】
例えば図7に、M配列により生成されたマーカ画像の位置検出用パターンのデータ例を示す。各マスが画素を表し、各マスに設定される「0」、「1」がマーカ画像の画素データを表す。M系列の乱数(疑似乱数)は「0」と「1」の2値をとる乱数列であり、これを2次元化したM配列も「0」と「1」の2値をとるが、図7では、「0」を「−1」と表している。原画像とマーカ画像の合成処理のためには、このように「0」を「−1」とすることが、処理の都合上、好ましい。
【0064】
図8は、原画像(ゲーム画像)の左上の一部分でのデータ例である。各マスが画素を表し、各マスに設定される数値が、原画像の画素データを表す。この画素データとしては、例えば原画像の各画素のR成分データ、G成分データ、B成分データ、色差成分データ(U、V)、輝度成分データ(Y)等が考えられる。
【0065】
図9は、原画像にマーカ画像を埋め込むことで得られる表示画像の左上の一部分でのデータ例である。図9の表示画像データでは、図8の原画像の各画素データが、M配列によって+1又は−1されている。即ち原画像の各画素データが、M配列により設定されたマーカ画像の各画素データで変換されている。
【0066】
図10は、撮像デバイス(カメラ)の撮像画像のデータ例である。具体的には図9のE1に示す部分を撮像した場合の撮像画像のデータ例である。
【0067】
本実施形態では図10の撮像画像のデータから、撮像位置であるポインティング位置を検出する。具体的には撮像画像とマーカ画像との相互相関を演算し、相互相関の演算結果に基づいてポインティング位置を検出する。
【0068】
例えば図11に撮像画像とマーカ画像との相互相関演算により得られた相互相関値の例を示す。図11のE2に示す部分が図9のE1に示す部分に対応する。そして図11のE3に示す位置での値が最大値=255になっている。このE3に示す位置が撮像位置に対応することになる。即ち撮像画像とマーカ画像の相互相関値の最大値を探索することで、撮像位置に対応するポインティング位置を検出できる。なお図11のE3では、撮像領域の左上の位置がポインティング位置として特定されているが、撮像領域の中心位置や右上、左下、右下の位置であってもよい。
【0069】
2.2 処理フロー
次に本実施形態の位置検出手法の処理フローについて図12〜図15のフローチャートを用いて説明する。
【0070】
図12はマーカ画像の埋め込み処理のフローチャートである。まず、原画像(ゲーム画像)を取得(生成)する(ステップS1)。次に、図4に示すように原画像に対してマーカ画像(M配列)を合成して、図9に例示される、マーカ画像が合成された表示画像を生成する(ステップS2)。このような原画像へのマーカ画像の合成(埋め込み)は、後述する画像生成装置(ゲーム装置)が実行してもよいし、ガン型コントローラ等のポインティングデバイス(位置検出装置)が、画像生成装置から原画像を受けて、実行してもよい。
【0071】
図13は位置検出処理のフローチャートである。まず撮像デバイス(カメラ)により、図5、図10で説明したように、表示部190の表示画面を撮像する(ステップS11)。次に、撮像画像に対して回転、スケーリング等の画像補正を行う(ステップS12)。即ち撮像デバイスの位置や方向のずれを担保するための画像補正を行う。そして、撮像画像とマーカ画像の相互相関演算処理を行い(ステップS13)、図11で説明したような相互相関値を求める。
【0072】
次に、相互相関値の最大値の位置を探索して、ポインティング位置(指示位置)を求める(ステップS14)。例えば図11ではE3に示す位置において相互相関値が最大値になっているため、この位置がポインティング位置として求められる。
【0073】
次に、ポインティング位置の信頼度の演算処理を行う(ステップS15)。そして、そのポインティング位置の信頼度が高い場合には、そのポインティング位置の情報を、後述する画像生成装置(ゲーム装置)等に出力する(ステップS16、S17)。一方、信頼度が低い場合にはエラー情報を出力する(ステップS18)。
【0074】
図14は、図13のステップS13の相互相関演算処理のフローチャートである。まず、図10で説明した撮像画像に対して2次元DFT処理を行う(ステップS21)。また図7で説明したマーカ画像に対して2次元DFT処理を行う(ステップS22)。
【0075】
次に、マーカ画像の2次元DFT処理結果に対してハイパスフィルタ処理を行う(ステップS23)。ゲーム画像等の原画像は、低周波数領域に大きなパワーを持つ一方で、M配列の画像は全周波数領域で等しいパワーを持つ。そして原画像の低周波数領域でのパワーは、位置検出のノイズになる。従って、低周波成分を除去するハイパスフィルタ処理により、低周波数領域のパワーを減少させれば、ノイズのパワーが減少し、誤検出を低減できる。
【0076】
なお、相互相関演算の結果に対してハイパスフィルタ処理を行ってもよいが、相互相関をDFTで実現する場合、M配列であるマーカ画像の2次元DFTの結果に対してハイパスフィルタ処理を行った方が、処理を高速化できる。またマーカ画像をリアルタイムに変化させない場合には、マーカ画像に対する2次元DFT処理や、2次元DFTの処理結果に対するハイパスフィルタ処理は、初期化時に1回だけ行えばよい。
【0077】
次に、ステップS21で得られた撮像画像の2次元DFTの処理結果と、ステップS23で得られたハイパスフィルタ処理後のマーカ画像の2次元DFTの処理結果の乗算処理を行う(ステップS24)。そして乗算結果に対して逆2次元DFT処理を行って、図11に示すような相互相関値を求める(ステップS25)。
【0078】
図15は、図13のステップS15の信頼度演算処理のフローチャートである。まず相互相関値を、平均=0、分散=1に正規化する(ステップS31)。そして、図11のE3で説明したように、相互相関値の最大値を探索する(ステップS32)。
【0079】
次に、相互相関値の分布が正規分布であると仮定して、相互相関値の最大値の出現確率を求める(ステップS33)。そして、相互相関値の最大値の出現確率と、相互相関値の個数に基づき、信頼度を求める(ステップS34)。
【0080】
2.3 相互相関演算
次に、図14の相互相関の演算処理の詳細について説明する。まず2次元DFTについて説明する。
【0081】
例えばM×N画素の画像データx(m,n)の2次元DFT(2次元離散フーリエ変換)であるX(k,l)は下式(1)のように表される。
【数2】

【0082】
但し、k=0、1、・・・・・・、M−1、l=0、1、・・・・、N−1であり、iは虚数単位である。
【0083】
この2次元DFTは、1次元DFTを用いて求めることができる。まず、x(m,n)の行方向に1行ずつ1次元DFTを行って、配列X’を作成する。つまり、配列x(m,n)の1行目x(0,n)の1次元DFTを行い、下式(2)に示すように、その1次元DFTの結果を配列X’の1行目に設定する。
【数3】

【0084】
同様に、2行目の1次元DFTを行い、その結果をX’の2行目に設定する。以下、この処理をN行分だけ繰り返すことで、配列X’が得られる。次に、配列X’を、列方向に1列ずつ1次元DFTを行う。その結果が、2次元DFTであるX(k,l)になる。逆2次元DFTについても、同様に、逆1次元DFTを行・列ごとに適用すればよい。
【0085】
1次元DFTとしては、様々な高速フーリエ変換(FFT)アルゴリズムが知られている。これらのアルゴリズムを用いることで、高速に2次元DFT処理を実行することができる。
【0086】
なおX(k、l)は、画像データx(m,n)のスペクトルに対応している。例えば画像データにハイパスフィルタ処理を行う場合には、X(k、l)の低域成分を削除すればよい。即ち、低域成分は、X(k、l)の配列の4隅に相当するので、その4隅の部分の値を0に置き換えることで、ハイパスフィルタ処理を実現できる。
【0087】
次に相互相関について説明する。二つのM行N列の2次元配列A、Bがあったとする。この配列A、Bの相互相関R(i,j)は下式(3)のように表される。
【数4】

【0088】
但し、m+i>M−1になったときには、m+i−Mに設定する。つまり、配列Bの右端と左端は循環的につながっているものと考える。上端、下端についても同様である。
【0089】
AとBが同一のM配列のときは、R(0,0)だけが突出して大きな値をとり、他は0に近い値になる。Aをi行、j列だけずらすと、R(i,j)だけが突出して大きな値をとる。この性質を利用すれば、2つのM配列の位置のずれを、Rの最大値から求めることができる。
【0090】
相互相関Rを上式(3)で直接計算する代わりに、2次元DFTを用いて求めることもできる。この場合、高速フーリエ変換アルゴリズムを用いることができるので、直接計算する場合よりも、高速に処理できる。
【0091】
まず、AとBに対して、それぞれ2次元DFT処理を行い、得られた結果をA’、B’とする。次に、A’とB’の対応する値を乗算し、Cを作成する。つまり、A’のm行n列目の値とB’のm行n列目の値を乗算(複素数であるため複素乗算)し、Cのm行n列目の値とする。即ちC(m,n)=A’(m,n)×B’(m,n)となる。このC(m,n)に対して逆2次元DFTを行えば、R(i,j)が求まる。
【0092】
2.4 信頼度
次に、図15に示す信頼度の演算処理の詳細について説明する。ここで、図16に示すように相互相関は正規分布になっていると仮定する。
【0093】
まず相互相関R(i,j)に含まれるN×M個のデータの平均と分散を求め、これを用いて、R(i,j)を、平均=0、分散=1に正規化する。そして図16のF1に示すように、正規化されたデータの最大値(これが、ポインティング位置に対応するデータである)をuとする。この最大値uの正規分布における上側確率P(u)を求める。即ち最大値uの正規分布における生起確率を求める。
【0094】
例えば平均=0、分散=1の正規分布の上側確率P(u)は下式(4)のように表される。
【数5】

【0095】
この上側確率P(u)を求めるには、例えば下式(5)に示されるShentonの連分数展開を用いる。
【数6】

【0096】
この時、信頼度sを下式(6)のように定義する。
【数7】

【0097】
この信頼度sは、0〜1の値であり、信頼度sが1に近いほど、最大値uから求められた位置情報(ポインティング位置、撮像位置)が信頼できることを意味する。この信頼度sは、位置情報が正確である確率ではない。即ちP(u)は、マーカ画像の透かしを挿入しない場合に、この位置情報の値が出てくる確率に相当し、信頼度sは、1−P(u)に応じた値であり、例えば上式(6)のようにs={1−P(u)}N×Mと表される。つまり、信頼度sが1に近い場合には、マーカ画像の透かしが挿入されていないとは考えづらいため、マーカ画像の透かしが検出されており、位置情報は信頼できると考える。
【0098】
なお、確率P(u)をそのまま信頼度として利用することも可能である。即ち、信頼度の大小関係と、P(u)の大小関係は一致するため、単に「信頼度が所定値以上の場合にだけ、それに対応する位置情報を信頼する」という使い方であれば、P(u)をそのまま信頼度として使用できる。
【0099】
3.画像生成装置
次に本実施形態の位置検出システムが適用される画像生成装置やポインティングデバイス(ガン型コントローラ)の構成例について図17を用いて説明する。なお本実施形態の画像生成装置等は図17の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば図17では、画像補正部44、位置検出処理部46、信頼度演算部48が、ガン型コントローラ30側に設けられているが、これらを画像生成装置90側に設けてもよい。
【0100】
図17では、プレーヤは、銃を模して作られたガン型コントローラ30(広義にはポインティングデバイス、シューティングデバイス)を持ち、表示部190の画面上に映し出されるターゲットオブジェクト(標的)を狙って、引き金(トリガ)34を引く。すると、ガン型コントローラ30の撮像デバイス38により、ガン型コントローラ30のポインティング位置に対応する撮像領域IMRの画像が撮像される。そして得られた撮像画像に基づいて図1〜図16で説明した手法により、ガン型コントローラ30(ポインティングデバイス)のポインティング位置PP(指示位置)が検出される。そしてガン型コントローラ30のポインティング位置PPが、画面上に表示されるターゲットオブジェクトの位置と一致した場合には当たりと判定され、一致しなかった場合には外れと判定される。
【0101】
ガン型コントローラ30は、銃の形を模して形成された指示体32(ケーシング)と、指示体32の握り部に設けられた引き金34と、指示体32の銃口付近に内蔵されるレンズ36(光学系)及び撮像デバイス38を含む。また処理部40や通信部50を含む。なお、ガン型コントローラ30(ポインティングデバイス)は図17の構成に限定されず、これらの構成要素の一部を省略したり、他の構成要素(記憶部等)を追加するなどの種々の変形実施が可能である。
【0102】
撮像デバイス38は、CCDやCMOSセンサなどの画像の撮像が可能なセンサにより構成される。処理部40(制御回路)は、ガン型コントローラ全体の制御や指示位置の演算などを行う。通信部50は、本体装置である画像生成装置90との間でのデータの通信処理を行う。なお、処理部40や通信部50の機能は、例えば、ASICなどのハードウェアにより実現してもよいし、各種プロセッサ(CPU)とソフトウェアの組み合わせにより実現してもよい。
【0103】
処理部40は、画像取得部42、画像補正部44、位置検出処理部46、信頼度演算部48を含む。
【0104】
画像取得部42は、撮像デバイス38からの撮像画像を取得する。具体的には、マーカ画像が原画像に対して合成された表示画像のうち、ポインティング位置PPに対応する撮像領域IMRの画像が撮像デバイス38により撮像された場合に、その撮像画像を取り込む。画像補正部44は、撮像画像に対して回転処理やスケーリング処理などの画像補正を行う。
【0105】
位置検出処理部46は、撮像画像に基づいて、撮像画像に合成されたマーカ画像を検出する演算処理を行って、撮像領域IMRに対応するポインティング位置PPを求める。具体的には撮像画像とマーカ画像との相互相関演算により、ポインティング位置PPを求める。信頼度演算部48はポインティング位置PPの信頼度を演算する。具体的には、相互相関の最大値と相互相関の値の分布とに基づいて、信頼度を求める。
【0106】
画像生成装置90(本体装置)は、処理部100、画像生成部150、記憶部170、インターフェース(I/F)部178、通信部196を含む。なお、これらの構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0107】
処理部100(プロセッサ)は、ガン型コントローラ30などの操作部からのデータや、プログラムなどに基づいて、装置全体の制御やゲーム処理などの種々の処理を行う。具体的には処理部100は、表示部190の表示画像の撮像画像に基づいて、撮像画像に埋め込まれたマーカ画像が検出され、撮像領域IMRに対応するポインティング位置PPが求められた場合に、求められたポインティング位置PPに基づいて、種々の演算処理を行う。例えばポインティング位置に基づいて、ゲーム成績演算処理を含むゲーム処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0108】
画像生成部150(描画部)は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、ゲーム画像を生成し、表示部190に出力する。例えば、いわゆる3次元ゲームの画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点(構成点)に付与される位置座標、テクスチャ座標、色(輝度)データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、ジオメトリ処理後のオブジェクト(1又は複数プリミティブ面)の画像が、描画バッファ176(フレームバッファ、ワークバッファ等の画素単位で画像情報を記憶できるバッファ)に描画される。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成されるようになる。なお、本実施形態により生成されて表示部190に表示される画像は、3次元画像であってもよいし、2次元画像であってもよい。
【0109】
そして本実施形態では画像生成部150は、位置検出用パターンであるマーカ画像が原画像に対して埋め込まれた表示画像を生成して、表示部190に出力する。具体的には、画像生成部150が有する変換部152が、原画像の各画素データをマーカ画像の各画素データ(M配列)で変換することで、表示画像を生成する。例えば原画像の各画素のR、G、B成分データの少なくとも1つや、YUVにおける色差成分及び輝度成分データの少なくとも1つを、マーカ画像の各画素データにより変換することで、表示画像を生成する。
【0110】
また画像生成部150は、特定条件が満たされていない場合には、原画像を表示画像として出力し、特定条件が満たされた場合には、マーカ画像が原画像に対して埋め込まれた画像を表示画像として出力してもよい。例えば、特定条件が満たされた場合に、原画像として位置検出用原画像(位置検出用の専用の画像)を生成し、位置検出用原画像に対してマーカ画像が埋め込まれた画像を表示画像として出力してもよい。或いは、ガン型コントローラ30(ポインティングデバイス)からの指示情報(トリガ入力情報)に基づいて、位置検出を行うタイミングであると判断した場合に、マーカ画像が埋め込まれた画像を表示画像として出力してもよい。更に、ゲーム処理において特定のゲームイベントが発生した場合に、マーカ画像が埋め込まれた画像を表示画像として出力してもよい。
【0111】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。この記憶部170は、マーカ画像記憶部172、描画バッファ176などを含む。
【0112】
インターフェース(I/F)部178は、情報記憶媒体180との間のインターフェースを行うものであり、情報記憶媒体180にアクセスして、プログラムやデータを読み出す。
【0113】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0114】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0115】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイなどにより実現できる。
【0116】
通信部196は、有線や無線のネットワークを介して外部(例えばガン型コントローラ30等)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0117】
処理部100は、ゲーム処理部102、変化処理部104、外乱測定情報取得部106、条件判断部108を含む。
【0118】
ゲーム処理部102は、ゲーム成績演算処理などの各種のゲーム処理を行う。この場合のゲーム処理としては、ゲーム成績演算処理の他に、ゲームの内容やゲームモードを決定する処理、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0119】
例えばゲーム処理部102は、ガン型コントローラ30で検出されたポインティング位置PPに基づいて、ヒットチェック処理を行う。即ち、ガン型コントローラ30(武器型コントローラ)からの仮想弾(ショット)とターゲットオブジェクト(標的)とのヒットチェック処理を行う。
【0120】
更に具体的には、ゲーム処理部102(ヒット処理部)は、撮像画像から求められたポインティング位置PPに基づいて、仮想弾の軌道を決定し、この軌道が、オブジェクト空間内のターゲットオブジェクトに交わったか否かを判定する。そして、交わった場合には、ターゲットオブジェクトに仮想弾がヒットしたと判定し、ターゲットオブジェクトの耐久値(体力値)を減らす処理や、爆発エフェクトを発生する処理や、ターゲットオブジェクトの位置、方向、モーション、色又は形状を変化させる処理などを行う。一方、軌道がターゲットオブジェクトに交わらなかった場合には、仮想弾がターゲットオブジェクトにヒットしなかったと判定し、仮想弾を削除し消滅させる処理などを行う。なお、ターゲットオブジェクトの形状を簡略化して表した簡易オブジェクト(バウンディングボリューム、バウンディングボックス)を用意し(ターゲットオブジェクトの位置に配置し)、この簡易オブジェクトと仮想弾(仮想弾の軌道)とのヒットチェックを行うようにしてもよい。
【0121】
変化処理部104は、マーカ画像等を変化させる処理を行う。例えばマーカ画像を、時間経過に応じて変化させる処理を行う。例えばゲーム処理部102のゲーム処理により進行するゲームの状況等に応じて、マーカ画像を変化させる。或いは、ポインティング位置PPの信頼度等に基づいてマーカ画像を変化させる。また、例えば撮像画像とマーカ画像との相互相関が演算され、相互相関の演算結果の信頼度が求められた場合に、求められた信頼度に基づいて、マーカ画像を変化させる処理を行う。或いは、マーカ画像を、原画像に応じて変化させる処理を行ってもよい。例えばゲームステージに応じて、生成されるゲーム画像が異なる場合には、これに応じてマーカ画像も変化させる。なお、マーカ画像として複数種類のマーカ画像を用いる場合には、これらのマーカ画像のデータはマーカ画像記憶部172に記憶される。
【0122】
外乱測定情報取得部106は、太陽光などの外乱の測定情報を取得する。即ち、図示しない外乱測定センサから、外乱測定情報を取り込む。そして変化処理部104は、マーカ画像を、取得された外乱測定情報に基づいて変化させる処理を行う。例えば、周囲の光の強さや色などに応じて、マーカ画像を変化させる。
【0123】
条件判断部106は、シューティング動作が行われたり、ゲームイベントが発生して、マーカ画像を変更するための特定条件が満たされたか否かを判断する。そして変化処理部104は、特定条件が満たされた場合に、マーカ画像を変化させる処理(切り替える処理)を行う。また画像生成部150は、特定条件が満たされていない場合には、原画像を表示画像として出力し、特定条件が満たされた場合には、マーカ画像が埋め込まれた画像を表示画像として出力する。
【0124】
4.マーカ画像の変化処理
本実施形態では、原画像に埋め込むマーカ画像のパターンを変化させることもできる。例えば図18(A)では、マーカ画像を時間経過に伴い変化させている。具体的には、フレームf1ではマーカ画像MI1を埋め込んだ表示画像を生成し、フレームf2(f1<f2)ではMI1とは異なるマーカ画像MI2を埋め込んだ表示画像を生成し、フレームf3(f2<f3)ではマーカ画像MI1を埋め込んだ表示画像を生成している。
【0125】
例えばマーカ画像MI1は、第1のM配列M1を用いて生成し、マーカ画像MI2は、第2のM配列M2を用いて生成する。例えば第1のM配列M1としては、前述の図7に示すような配列を用い、第2のM配列M2としては、図19に示すような配列を用いる。これらの第1、第2のM配列M1、M2は異なったパターンの配列になっている。
【0126】
図20は、第1のM配列M1のマーカ画像MI1のイメージ図であり、図21は、第2のM配列M2のマーカ画像MI2のイメージ図である。図20、図21では、「1」を黒画素として模式的に表し、「−1」を白画素として模式的に表している。
【0127】
このようにマーカ画像を時間経過に応じて変化させれば、マーカ画像のトータルの情報量が増えるため、検出精度を向上できる。例えば周囲の環境等の条件により、第1のM配列M1のマーカ画像MI1では、ポインティング位置の検出精度を高くできない場合にも、第2のM配列M2のマーカ画像MI2を埋め込んだ画像を表示することで、検出精度を向上できる。このようにマーカ画像を変化させることは、例えば印刷物にマーカ画像を埋め込む手法では実現できないが、マーカ画像が埋め込まれた画像を表示部190に表示する本実施形態の手法によれば実現できる。
【0128】
なお図18(A)のようにマーカ画像を変化させる場合には、図17の画像生成装置90(処理部)は、ガン型コントローラ30に対して、表示部190に現在表示される画像に使用されているマーカ画像の種別を知らせるデータを送ればよい。即ち、ガン型コントローラ30側において位置検出を行うためには、表示画像に埋め込まれたマーカ画像の情報が必要である。従って、ガン型コントローラ30側にも、マーカ画像記憶部172に相当する機能を持たせ、現在使用されているマーカ画像の種別を示す何らかの情報を、画像生成装置90からガン型コントローラ30に送る必要がある。この場合に、毎回、マーカ画像の情報を送ることは処理の無駄であるため、例えばゲーム開始時等に、当該ゲームに使用するマーカ画像のIDとパターン情報を送って、ガン型コントローラ30の図示しない記憶部に記憶させればよい。
【0129】
また、例えば図15等で説明した信頼度に基づいて、埋め込むマーカ画像を変化させてもよい。例えば図18(B)において、フレームf1では、第1のM配列M1によるマーカ画像MI1が埋め込まれている。そして、このマーカ画像MI1を用いた場合の信頼度が計算され、その信頼度が所定の基準値よりも低かった場合には、その後のフレームf2では、第2のM配列M2によるマーカ画像MI2を埋め込んで、ポインティング位置を検出する。このようにすれば、周囲環境が変化した場合にも、それに応じた最適なマーカ画像を選択されて原画像に埋め込まれるようになるため、1種類のマーカ画像を用いる場合に比べて、検出精度を格段に向上できる。
【0130】
なお、図18(A)、図18(B)では、2種類のマーカ画像を切り替える場合について示しているが、3種類以上のマーカ画像を切り替えてもよい。また複数種類のマーカ画像は、図20、図21のように、その生成に使用される配列パターン自体が異なるものであってもよいし、そのパターンの濃さを異ならせたものであってもよい。
【0131】
例えば図22(A)では、濃いパターンのマーカ画像MI1を使用しており、図22(B)では薄いパターンのマーカ画像MI2を使用している。このように、濃さが異なるマーカ画像MI1、MI2を時間経過に応じて切り替えて使用してもよい。
【0132】
即ち図22(A)のように濃いパターンを使用すると、プレーヤにとって、マーカ画像の存在が目立ってしまうが、図22(B)のように薄いパターンを使用すれば、マーカ画像の存在が目立たなくなる。図22(A)の濃いパターンは、原画像のR、G、Bのデータ値(輝度)に対して加減算するマーカ画像のデータ値を大ききすることで生成でき、図22(B)の薄いパターンは、原画像のR、G、Bのデータ値に対して加減算するマーカ画像のデータ値を小さくすることで生成できる。
【0133】
表示部190の表示画像の高品質化のためには、マーカ画像の存在がなるべく目立たないようにすることが望ましく、図22(B)のような薄いパターンが望ましい。そして、マーカ画像の存在を更に目立たなくするためには、原画像の色差成分に対してマーカ画像のデータ値を加算することが望ましい。具体的には原画像のRGBデータを公知の手法によりYUVデータに変化する。そしてYUVデータのうちの色差データU、V(Cb、Cr)の少なくとも一方に対して、マーカ画像のデータ値を加減算して、マーカ画像を埋め込む。このようにすれば、人間にとって、輝度の変化よりも、色差の変化の方が気づきにくいという性質を利用して、マーカ画像の存在を目立たなくすることができる。
【0134】
また本実施形態では、原画像に応じてマーカ画像を変化させてもよい。例えば図23(A)、図23(B)では、原画像であるゲーム画像が、ゲームにおける昼のステージの画像なのか、夜のステージの画像なのかに応じて、原画像に埋め込むマーカ画像を異ならせている。
【0135】
即ち昼のステージでは、原画像の輝度が全体的に明るいため、輝度が高い濃いパターンのマーカ画像を埋め込んでも、それほど目立たない。また、原画像の周波数成分が全体的に高域側にシフトしているため、輝度が高い濃いパターンのマーカ画像を埋め込むことで、位置検出の精度を向上できる。そこで図23(A)のように昼のステージでは濃いパターンのマーカ画像を使用する。
【0136】
一方、夜のステージでは、原画像の輝度が全体的に暗いため、輝度が高い濃いパターンのマーカ画像を埋め込むと、昼のステージに比べてマーカ画像の存在が目立ってしまう。また、原画像の周波数帯域が全体的に低域側にシフトしているため、マーカ画像の輝度がそれほど高くなくても、適正な位置検出を実現できる。そこで図23(A)のように夜のステージでは薄いパターンのマーカ画像を使用する。
【0137】
なお図23(A)では、ステージの種類に応じてマーカ画像を変更しているが、本実施形態の手法はこれに限定されない。例えば各フレームでの原画像の全体的な輝度をリアルタイムに演算し、その演算結果に基づいて、原画像に埋め込むマーカ画像を変更してもよい。例えば、原画像の全体的な輝度が高い場合には、輝度が高いマーカ画像を埋め込み、原画像の全体的な輝度が低い場合には、輝度が低いマーカ画像を埋め込む。或いは、ゲームステージの切り替え以外のゲームイベントの発生(例えばストーリーの切り替えイベント、キャラクタの発生イベント)によって、使用するマーカ画像を変更してもよい。また、マーカ画像の存在が目立つことが予めわかっている原画像に対しては、薄いパターンのマーカ画像を対応づけておき、そのような原画像が表示される時に、薄いパターンのマーカ画像を選択して埋め込むようにしてもよい。
【0138】
また、表示部190の周囲の状況に応じて、マーカ画像を変更してもよい。例えば図23(B)では、フォトセンサ等の外乱測定センサ60により、表示画像に対する外乱となる周囲光の強さ等を測定している。そして、この外乱測定センサ60からの外乱測定情報に基づいて、マーカ画像を変化させる。
【0139】
例えば、昼の時間帯であり、部屋が明るいことが検知されると、輝度が高い濃いパターンのマーカ画像を原画像に埋め込む。即ち、部屋が明るい場合には、マーカ画像の輝度が高くても、マーカ画像の存在がそれほど目立たない。また部屋の明るさに応じてマーカ画像の輝度を高くすることで、位置検出の精度を高めることができる。そこでこの場合には、高い輝度のマーカ画像を埋め込む。
【0140】
一方、夜の時間帯であり、部屋が暗いことが検知されると、輝度が低い薄いパターンのマーカ画像を原画像に埋め込む。即ち、部屋が暗い場合には、マーカ画像の輝度が高いと、マーカ画像の存在が目立ってしまう。また、マーカ画像の輝度をそれほど高くしなくても、適正な位置検出を実現できる。そこでこの場合には、低い輝度のマーカ画像を埋め込む。
【0141】
以上の手法によれば、表示部190の周囲の状況に応じて最適なマーカ画像が選択されて埋め込まれるため、適正な位置検出を実現できる。
【0142】
5.特定条件によるマーカ画像の埋め込み
マーカ画像の埋め込みを常に行うことは、必ずしも必要ではなく、特定条件が満たされた場合にのみ、マーカ画像を埋め込んで出力するようにしてもよい。具体的には、特定条件が満たされていない場合には、マーカ画像が埋め込まれていない原画像を表示画像として出力し、特定条件が満たされた場合には、マーカ画像が埋め込まれた画像を表示画像として出力する。
【0143】
例えば図24(A)において、フレームf1では、マーカ画像が埋め込まれていない原画像のみが表示されている。そしてフレームf1の後のフレームf2では、ガン型コントローラ30のトリガ34が引かれたと判断され、原画像に対してマーカ画像が埋め込まれた画像が表示される。そして、フレームf2の後のフレームf3では、マーカ画像が埋め込まれていない原画像のみが表示される。
【0144】
このように図24(A)では、ガン型コントローラ30のトリガ34が引かれたという特定条件が満たされた場合にのみ、マーカ画像が原画像に埋め込まれた画像を表示する。このようにすれば、シューティングのタイミングにおいてのみ、マーカ画像が原画像に埋め込まれて表示されるため、マーカ画像の存在を目立たなくすることが可能になり、表示画像の品質を向上できる。即ち、トリガ34を引いた一瞬のタイミングにだけ、マーカ画像が表示されるようになるため、マーカ画像が埋め込まれたことを、プレーヤに気づかれにくくすることが可能になる。
【0145】
なお、トリガ34を引いたフレームと、マーカ画像が埋め込まれた画像が表示されるフレームは、必ずしも同じフレームである必要はなく、例えばトリガ34を引いたフレームから、数フレーム遅れて、マーカ画像が埋め込まれた画像を表示してもよい。また、本実施形態における特定条件は、図23(A)に示すようなトリガ34が引かれたという条件には限定されない。例えばトリガ34を引くという操作以外の他の操作により、特定条件が満たされたと判断してもよい。即ち、ガン型コントローラ30などのポインティングデバイスからの指示情報に基づいて、位置検出を行うタイミングであると判断された場合に、特定条件が満たされたと判断して、マーカ画像が埋め込まれた画像を表示してもよい。例えば音楽ゲームにおいて、音符がラインに重なったタイミングでプレーヤがボタン等を押した場合に、マーカ画像が埋め込まれた画像を表示してもよい。
【0146】
或いは、特定のゲームイベントが発生した場合に、特定条件が満たされたと判断して、マーカ画像が埋め込まれた画像を表示してもよい。この場合の特定イベントとしては、ゲームのストーリーの変化イベント、ゲームステージの変化イベント、キャラクタの発生イベント、ターゲットオブジェクトのロックオンイベント、或いはオブジェクトとの接触イベントなどがある。
【0147】
例えば、標的であるターゲットオブジェクトの出現前では、シューティングのヒットチェックのためのマーカ画像は不要であるため、原画像だけを表示する。一方、ターゲットオブジェクトであるキャラクタが発生すると、特定条件が満たされたと判断して、マーカ画像が埋め込まれた画像を表示して、ターゲットオブジェクトと仮想弾(ショット)とのヒットチェック処理が可能な状態にする。そして、ターゲットオブジェクトが画面から消えると、ヒットチェック処理は不要になるため、マーカ画像を埋め込まず、原画像だけを表示するようにする。或いは、ターゲットオブジェクトがロックオンされる前では、原画像のみを表示し、ターゲットオブジェクトのロックオンイベントが発生した場合に、マーカ画像が埋め込まれた画像を表示して、仮想弾とターゲットオブジェクトとのヒットチェック処理を行えるようにしてもよい。
【0148】
また、このようにトリガ34等が引かれて、特定条件が満たされた場合に、図24(B)に示すように、位置検出用原画像(位置検出用に専用の画像)を表示してもよい。例えば図24(B)では、トリガ34が引かれると、仮想弾の発射を演出する画像が、位置検出用原画像として生成され、この位置検出用原画像に対してマーカ画像が埋め込まれて表示される。
【0149】
以上のようにすれば、プレーヤは、マーカ画像が埋め込まれた位置検出用原画像を、演出画像であると認識するため、マーカ画像の存在を更に目立たなくすることが可能になる。
【0150】
なお、位置検出用原画像は、図24(B)に示すような画像に限定されず、例えば、図24(B)とは異なる表示形態の演出画像であってもよいし、全画面が所定色(例えば白)になるような画像であってもよい。
【0151】
また例えば、特定条件が満たされたか否かに依らずに、マーカ画像が埋め込まれた画像を常に表示しておき、特定条件が満たされた際の表示画像の撮像画像に基づいて、ポインティング位置PPを求めるようにしてもよい。例えば、図17の表示部190には、マーカ画像が埋め込まれた表示画像を常に表示しておく。そして、ガン型コントローラ30のトリガ34が引かれるなどの特定条件が満たされると、そのタイミングで取得された表示画像の撮像画像に基づいて、位置検出処理部46(或いは処理部100に設けられる図示しない位置検出処理部)が、ポインティング位置PPを求める。このようにすれば、例えばガン型コントローラ30のトリガ34が引かれたタイミングでの撮像画像に基づいて、ポインティング位置PPを求めることが可能になる。
【0152】
6.画像生成装置の処理
次に本実施形態の画像生成装置90の詳細な処理例について、図25のフローチャートを用いて説明する。
【0153】
まず、フレーム(1/60秒)の更新タイミングか否かを判断する(ステップS41)。そしてフレーム更新タイミングである場合には、ガン型コントローラ30のトリガ34が引かれたか否かを判断し(ステップS42)、引かれた場合には図24(A)、図24(B)で説明したように、マーカ画像の埋め込み処理を行う(ステップS43)。
【0154】
次に、着弾位置(ポインティング位置)の取り込みタイミングか否かを判断し(ステップS44)、取り込みタイミングである場合には、ガン型コントローラ30から着弾位置を取り込む(ステップS45)。そして、取り込んだ着弾位置の信頼度が高いか否かを判断し(ステップS46)、信頼度が高い場合には、今回に取り込まれた着弾位置を採用する(ステップS47)。一方、信頼度が低い場合には、前回に取り込まれて記憶部に保存されている着弾位置を採用する(ステップS48)。そして、採用された着弾位置に基づいて、ヒットチェック処理やゲーム成績演算処理などのゲーム処理を行う(ステップS49)。
【0155】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語(ポインティングデバイス、ポインティング位置等)として引用された用語(ガン型コントローラ、着弾位置等)は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0156】
また、ポインティング位置の検出手法、マーカ画像の埋め込み手法、マーカ画像の変化手法等は、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含むことができる。また本発明は種々のゲームに適用でき、またゲーム以外の用途にも適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成装置に適用できる。
【図面の簡単な説明】
【0157】
【図1】本実施形態の位置検出システムの構成例。
【図2】第1の比較例の手法の説明図。
【図3】図3(A)、図3(B)は第2の比較例の手法の説明図。
【図4】原画像へのマーカ画像の埋め込み手法の説明図。
【図5】本実施形態の位置検出手法の説明図。
【図6】図6(A)、図6(B)は本実施形態のマーカ画像の説明図。
【図7】本実施形態で使用されるM配列のデータ例。
【図8】原画像のデータ例。
【図9】原画像にマーカ画像が埋め込むことで得られる表示画像のデータ例。
【図10】撮像画像のデータ例。
【図11】撮像画像とマーカ画像との相互相関演算により得られた相互相関値の例。
【図12】マーカ画像の埋め込み処理のフローチャート。
【図13】位置検出処理のフローチャート。
【図14】相互相関の演算処理のフローチャート。
【図15】信頼度の演算処理のフローチャート。
【図16】信頼度の説明図。
【図17】本実施形態の画像生成装置、ガン型コントローラの構成例。
【図18】図18(A)、図18(B)はマーカ画像を変化させる処理の説明図。
【図19】第2のM配列のデータ例。
【図20】第1のM配列のマーカ画像のイメージ図。
【図21】第2のM配列のマーカ画像のイメージ図。
【図22】図22(A)、図22(B)は異なる濃さのマーカ画像の使用例。
【図23】図23(A)、図23(B)はマーカ画像を変化させる手法の説明図。
【図24】図24(A)、図24(B)は特定条件が満たされた場合にマーカ画像が埋め込まれた画像を表示する手法の説明図。
【図25】画像生成装置の処理のフローチャート。
【符号の説明】
【0158】
IMR、IMR1、IMR2 撮像領域、PP、PP1、PP2 ポインティング位置、
10 位置検出システム、12 カメラ(撮像デバイス)、20 画像取得部、
22 画像補正部、24 位置検出処理部、26 信頼度演算部、
30 ガン型コントローラ(ポインティングデバイス)、32 指示体、
34 トリガ、36 レンズ、38 撮像デバイス、40 処理部、
42 画像取得部、44 画像補正部、46 位置検出処理部、48 信頼度演算部、
50 通信部、90 画像生成装置、100 処理部、102 ゲーム処理部、
104 変化処理部、106 外乱測定情報取得部、108 条件判断部、
150 画像生成部、152 変換部、170 記憶部、172 マーカ画像記憶部、
176 描画バッファ、178 I/F部、180 情報記憶媒体、196 通信部

【特許請求の範囲】
【請求項1】
ポインティング位置を検出するための位置検出システムであって、
位置検出用パターンであるマーカ画像が原画像に対して埋め込まれた表示画像のうち、前記ポインティング位置に対応する撮像領域の画像が撮像デバイスにより撮像された場合に、前記撮像デバイスからの撮像画像を取得する画像取得部と、
取得された前記撮像画像に基づいて、前記撮像画像に埋め込まれた前記マーカ画像を検出する演算処理を行うことで、前記撮像領域に対応する前記ポインティング位置を求める位置検出処理部と、
を含むことを特徴とする位置検出システム。
【請求項2】
請求項1において、
前記表示画像は、前記原画像の各画素データを前記マーカ画像の各画素データで変換することで生成された画像であることを特徴とする位置検出システム。
【請求項3】
請求項2において、
前記表示画像は、前記原画像の各画素のR成分データ、G成分データ、B成分データ、色差成分データ及び輝度成分データの少なくとも1つを、前記マーカ画像の各画素データにより変換することで生成された画像であることを特徴とする位置検出システム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記マーカ画像は、前記表示画像の各分割領域単位においてユニークなデータパターンとなる画素データにより構成されることを特徴とする位置検出システム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記マーカ画像の各画素データは、M系列を用いた乱数データにより生成されることを特徴とする位置検出システム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記撮像デバイスは、前記表示画像の表示領域よりも狭い一部の領域を前記撮像領域として、画像を撮像することを特徴とする位置検出システム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記位置検出処理部は、
前記撮像画像と前記マーカ画像との相互相関を演算し、前記相互相関の演算結果に基づいて前記ポインティング位置を求めることを特徴とする位置検出システム。
【請求項8】
請求項7において、
前記位置検出処理部は、
前記相互相関の演算結果又は前記マーカ画像に対してハイパスフィルタ処理を行うことを特徴とする位置検出システム。
【請求項9】
請求項7又は8において、
前記相互相関の最大値と前記相互相関の値の分布とに基づいて、前記相互相関の演算結果の信頼度を求める信頼度演算部を含むことを特徴とする位置検出システム。
【請求項10】
請求項1乃至9のいずれかにおいて、
前記撮像画像に対して画像補正を行う画像補正部を含み、
前記位置検出処理部は、
前記画像補正部での画像補正後の撮像画像に基づいて、前記ポインティング位置を求めることを特徴とする位置検出システム。
【請求項11】
位置検出用パターンであるマーカ画像が原画像に対して埋め込まれた表示画像を生成して表示部に出力する画像生成部と、
前記表示画像の撮像画像に基づいて、前記撮像画像に埋め込まれた前記マーカ画像が検出され、前記撮像画像の撮像領域に対応するポインティング位置が求められた場合に、求められた前記ポインティング位置に基づいて、演算処理を行う処理部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項12】
請求項11において、
前記処理部は、
前記ポインティング位置に基づいて、ゲーム成績演算処理を含むゲーム処理を行うことを特徴とするプログラム。
【請求項13】
請求項11又は12において、
前記画像生成部は、
前記原画像の各画素データを前記マーカ画像の各画素データで変換することで、前記表示画像を生成することを特徴とするプログラム。
【請求項14】
請求項13において、
前記画像生成部は、
前記原画像の各画素のR成分データ、G成分データ、B成分データ、色差成分データ及び輝度成分データの少なくとも1つを、前記マーカ画像の各画素データにより変換することで、前記表示画像を生成することを特徴とするプログラム。
【請求項15】
請求項11乃至14のいずれかにおいて、
前記マーカ画像は、前記表示画像の各分割領域単位においてユニークなデータパターンとなる画素データにより構成されることを特徴とするプログラム。
【請求項16】
請求項11乃至15のいずれかにおいて、
前記マーカ画像の各画素データは、M系列を用いた乱数データにより生成されることを特徴とするプログラム。
【請求項17】
請求項11乃至16のいずれかにおいて、
前記処理部は、
前記マーカ画像を、時間経過に応じて変化させる処理を行うことを特徴とするプログラム。
【請求項18】
請求項11乃至17のいずれかにおいて、
前記処理部は、
前記ポインティング位置を求めるために前記撮像画像と前記マーカ画像との相互相関が演算され、前記相互相関の演算結果の信頼度が求められた場合に、求められた前記信頼度に基づいて、前記マーカ画像を変化させる処理を行うことを特徴とするプログラム。
【請求項19】
請求項11乃至18のいずれかにおいて、
前記処理部は、
前記マーカ画像を、前記原画像に応じて変化させる処理を行うことを特徴とするプログラム。
【請求項20】
請求項11乃至19のいずれかにおいて、
外乱の測定情報を取得する外乱測定情報取得部として、
コンピュータを機能させ、
前記処理部は、
前記マーカ画像を、前記外乱測定情報に基づいて変化させる処理を行うことを特徴とするプログラム。
【請求項21】
請求項11乃至20のいずれかにおいて、
前記画像生成部は、
特定条件が満たされていない場合には、マーカ画像が埋め込まれていない原画像を前記表示画像として出力し、前記特定条件が満たされた場合には、前記マーカ画像が埋め込まれた画像を前記表示画像として出力することを特徴とするプログラム。
【請求項22】
請求項21において、
前記画像生成部は、
前記特定条件が満たされた場合に、前記原画像として位置検出用原画像を生成し、前記位置検出用原画像に対して前記マーカ画像が埋め込まれた画像を前記表示画像として出力することを特徴とするプログラム。
【請求項23】
請求項21又は22において、
前記画像生成部は、
ポインティングデバイスからの指示情報に基づいて、位置検出を行うタイミングであると判断した場合に、前記マーカ画像が埋め込まれた画像を前記表示画像として出力することを特徴とするプログラム。
【請求項24】
請求項21乃至23のいずれかにおいて、
前記処理部は、
前記ポインティング位置に基づいて、ゲーム成績演算処理を含むゲーム処理を行い、
前記画像生成部は、
前記ゲーム処理において特定のゲームイベントが発生した場合に、前記マーカ画像が埋め込まれた画像を前記表示画像として出力することを特徴とするプログラム。
【請求項25】
請求項11乃至20のいずれかにおいて、
特定条件が満たされた際の前記表示画像の前記撮像画像に基づいて、前記ポインティング位置が求められることを特徴とするプログラム。
【請求項26】
コンピュータ読み取り可能な情報記憶媒体であって、請求項11乃至25のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項27】
位置検出用パターンであるマーカ画像が原画像に対して埋め込まれた表示画像を生成して表示部に出力する画像生成部と、
前記表示画像の撮像画像に基づいて、前記撮像画像に埋め込まれた前記マーカ画像が検出され、前記撮像画像の撮像領域に対応するポインティング位置が求められた場合に、求められた前記ポインティング位置に基づいて、演算処理を行う処理部と、
を含むことを特徴とする画像生成装置。

【図3】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図23】
image rotate

【図25】
image rotate

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図5】
image rotate

【図17】
image rotate

【図22】
image rotate

【図24】
image rotate


【公開番号】特開2009−245349(P2009−245349A)
【公開日】平成21年10月22日(2009.10.22)
【国際特許分類】
【出願番号】特願2008−93518(P2008−93518)
【出願日】平成20年3月31日(2008.3.31)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】