(57)【特許請求の範囲】
【請求項１】
操作入力を行うための複数の操作入力装置と、複数の前記操作入力装置における操作入力をもとにアプリケーションを処理してアプリケーションの処理結果を示す画像信号を生成する処理装置と、空間を撮像する撮像装置と、前記処理装置において生成された画像信号を出力する画像表示装置とを備えたエンタテインメントシステムであって、
前記操作入力装置のそれぞれは、ユーザがアプリケーションを進行させる操作入力を行うための複数の入力部と、実行されるアプリケーションにおいて前記操作入力装置のそれぞれに設定される番号を表現するための発光素子を有するものであって、前記操作入力装置のそれぞれに設定される番号に応じて定められる異なるデューティ比をもつ点滅パターンにより発光素子の点灯と消灯を周期的に繰り返し、
前記処理装置は、
前記撮像装置により所定の撮像速度で連続して撮像された撮像画像から、点灯した発光素子の画像を抽出して、抽出した発光素子画像の撮像画像中の位置情報を生成する抽出部と、
前記抽出部において生成された、２つの連続する撮像画像における２つの位置情報から、２つの発光素子画像が撮像画像において所定の距離内にあることを判定した場合に、２つの連続する撮像画像における発光素子画像が同一の発光素子のものであることを判定して、その発光素子の点灯状態が連続して撮像された撮像画像の枚数をカウントする判定部と、を有し、
前記判定部は、複数の前記操作入力装置のそれぞれの点滅パターンを把握しており、同一の発光素子の点灯状態が連続して撮像された撮像画像の枚数から、その発光素子を保持する操作入力装置を特定し、
特定した操作入力装置の発光素子画像の位置情報がアプリケーションの処理に反映されることを特徴とするエンタテインメントシステム。
【請求項２】
異なるデューティ比をもつ点滅パターンのそれぞれにおいて、発光素子の連続点灯時間が、連続する２つの撮像画像の撮像時間以上であり、且つ、連続消灯時間が、連続する２つの撮像画像の撮像時間以上であることを特徴とする請求項１に記載のエンタテインメントシステム。
【請求項３】
前記処理装置は、複数の前記操作入力装置に対して、接続を確立した順に、よりデューティ比の低い点滅パターンを割り当てることを特徴とする請求項１または２に記載のエンタテインメントシステム。
【請求項４】
前記操作入力装置のそれぞれに対して割り当てられる点滅パターンは、同一の周期を有することを特徴とする請求項３に記載のエンタテインメントシステム。
【請求項５】
前記判定部は、同一の発光素子の点灯状態が連続して撮像された撮像画像の枚数がＮ枚であった場合に、前記発光素子の連続点灯時間が撮像画像（Ｎ−１）枚分の撮像時間から（Ｎ＋１）枚分の撮像時間の範囲にある点滅パターンを特定することで、その発光素子を保持する操作入力装置を特定することを特徴とする請求項１から４のいずれかに記載のエンタテインメントシステム。
【請求項６】
前記発光素子の点滅処理と、前記撮像装置の撮像処理とが非同期であることを特徴とする請求項５に記載のエンタテインメントシステム。
【請求項７】
前記操作入力装置は、複数の発光素子のうち当該操作入力装置に設定される番号に割り当てられる発光素子のみを点灯させることで、発光素子を、当該番号を表現するインジケータとして機能させることを特徴とする請求項１から６のいずれかに記載のエンタテインメントシステム。
【請求項８】
前記処理装置は、前記発光素子の点灯を制御する情報を前記操作入力装置に送り、
前記操作入力装置は、前記情報にしたがって前記発光素子を点灯することを特徴とする請求項１から７のいずれかに記載のエンタテインメントシステム。
【請求項９】
前記操作入力装置は、複数の発光素子のそれぞれの点灯を制御する複数のＰＷＭ制御部を有することを特徴とする請求項１から８のいずれかに記載のエンタテインメントシステム。
【請求項１０】
複数の操作入力装置における操作入力をもとにアプリケーションを処理するアプリケーション処理部と、
アプリケーションにおいて設定された番号に応じて定められる異なるデューティ比をもつ点滅パターンにより周期的に点滅する複数の前記操作入力装置の発光素子が存在する空間を撮像したフレーム画像データを取得する取得部と、
連続して撮像されたフレーム画像データから、点灯した発光素子の画像を抽出して、抽出した発光素子画像のフレーム画像中の位置情報を生成する抽出部と、
前記抽出部において生成された、２つの連続するフレーム画像における２つの位置情報から、２つの発光素子画像がフレーム画像において所定の距離内にあることを判定した場合に、２つの連続するフレーム画像における発光素子画像が同一の発光素子のものであることを判定して、その発光素子の点灯状態が連続して撮像されたフレーム画像の枚数をカウントする判定部と、を有し、
前記判定部は、複数の前記操作入力装置のそれぞれの点滅パターンを把握しており、同一の発光素子の点灯状態が連続して撮像されたフレーム画像の枚数から、その発光素子を保持する操作入力装置を特定し、
前記アプリケーション処理部は、特定した操作入力装置の発光素子画像の位置情報をアプリケーションの処理に反映することを特徴とする処理装置。
【請求項１１】
コンピュータに、
実行するアプリケーションにおける複数の操作入力装置の番号を設定する機能と、
複数の操作入力装置における操作入力をもとにアプリケーションを処理する機能と、
設定された番号に応じて定められる異なるデューティ比をもつ点滅パターンにより周期的に点滅する複数の前記操作入力装置の発光素子が存在する空間を撮像したフレーム画像データを取得する機能と、
連続して撮像されたフレーム画像データから、点灯した発光素子の画像を抽出して、抽出した発光素子画像のフレーム画像中の位置情報を生成する機能と、
生成された、２つの連続するフレーム画像における２つの位置情報から、２つの発光素子画像がフレーム画像において所定の距離内にあるか判定する機能と、
２つの発光素子画像がフレーム画像において所定の距離内にある場合に、２つの連続するフレーム画像における発光素子画像が同一の発光素子のものであることを判定して、その発光素子の点灯状態が連続して撮像されたフレーム画像の枚数をカウントする機能と、
同一の発光素子の点灯状態が連続して撮像されたフレーム画像の枚数から、その発光素子を保持する操作入力装置を特定する機能と、
特定した操作入力装置の発光素子画像の位置情報をアプリケーションの処理に反映する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実空間上に存在するオブジェクトを認識する技術に関する。
【背景技術】
【０００２】
近年、２次元コードをカメラで撮像してコードデータを認識し、そのコードデータに対応付けられた所定の処理を実行する技術が提案されている。１次元バーコードと比較すると２次元コードの方がコード化できる情報量が多く、現在では様々な種類の２次元コードが実用化されている。このような状況のもと、従来、２次元コードの画像認識に関する技術を提案するものがある（例えば、特許文献１参照）。
【０００３】
実空間上のオブジェクトの３次元的な位置などを取得するために、オブジェクトに設けた複数のＬＥＤをそれぞれ一意に定められる点滅パターンで点滅させ、２次元イメージセンサによる撮影画像を利用して３次元位置や姿勢を認識する技術が提案されている（例えば、特許文献２参照）。特許文献２では、マーカとして機能するＬＥＤが、ＬＥＤごとに一意に識別可能な識別情報を有している。
【特許文献１】特開２０００−８２１０８号公報
【特許文献２】特開２００３−２５４７１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
近年の技術進歩にともない、ゲームシステムのハードウェアスペックが飛躍的に向上している。これによりゲームアプリケーションも多様化し、最近では、カメラとゲーム装置を接続してユーザがカメラの前で体を動かすと、ゲーム装置が光学的にユーザの動きを認識してゲームへの入力として利用するゲームシステムも実現されている。このようなゲーム環境のもと、本発明者は、ゲーム装置と接続したカメラを効果的に利用することで、従来にないゲームシステムを想到するに至った。また、実空間におけるオブジェクトをカメラで撮像して、撮像画像からオブジェクトに関して加工処理を施した情報を画像表示装置に表示できれば、ゲームシステムだけでなく、他の環境、たとえば教育現場やビジネスの現場などのエンタテインメントシステムにおいても有効なアプリケーションを生み出すことができると考えられる。
【０００５】
そこで本発明は、カメラを効果的に利用したエンタテインメントシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様のエンタテインメントシステムは、ユーザが操作入力を行うための操作入力装置と、前記操作入力装置における操作入力をもとにアプリケーションを処理してアプリケーションの処理結果を示す画像信号を生成する処理装置と、空間を撮像する撮像装置と、前記処理装置において生成された画像信号を出力する画像表示装置とを備える。この態様のエンタテインメントシステムにおいて、前記操作入力装置は、ユーザがアプリケーションを進行させる操作入力を行うための複数の入力部と、実行されるアプリケーションにおいて当該操作入力装置に設定される番号を表現するための発光素子を複数有するものであって、設定される番号に応じて定められる点滅パターンにより発光素子の点灯と消灯を周期的に繰り返し、前記処理装置は、前記撮像装置により所定の撮像速度で連続して撮像された撮像画像をもとに、前記操作入力装置が前記撮像装置の撮像空間内に存在することを判定する。
【０００７】
また本発明の別の態様は、操作入力装置における操作入力をもとにアプリケーションを処理するアプリケーション処理部と、アプリケーションにおいて設定された番号にしたがって周期的に点滅する前記操作入力装置の発光素子が存在する空間を撮像したフレーム画像データを取得する取得部と、連続するフレーム画像データをもとに、前記操作入力装置がフレーム画像内に存在することを判定する判定部とを備える処理装置を提供する。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によると、カメラを効果的に利用したエンタテインメントシステムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施例にかかるゲームシステムの使用環境を示す。ゲームシステム１は、撮像装置２、画像表示装置３、音声出力装置４、ゲーム装置１０およびコントローラ２０を備える。撮像装置２、画像表示装置３、音声出力装置４およびコントローラ２０は、ゲーム装置１０に接続される。
【００１１】
コントローラ２０は、ユーザが操作入力を行うための操作入力装置であり、またゲーム装置１０は、コントローラ２０における操作入力をもとにゲームアプリケーションを処理して、ゲームアプリケーションの処理結果を示す画像信号を生成する処理装置である。なお、本実施例に示す技術は、ゲームアプリケーションに限らず、他の種類のアプリケーションを実行する処理装置を備えたエンタテインメントシステムにおいても実現できる。以下では、エンタテインメントシステムを代表して、ゲームアプリケーションを実行するゲームシステム１について説明する。
【００１２】
撮像装置２は、ＣＣＤ撮像素子またはＣＭＯＳ撮像素子などから構成されるビデオカメラであり、実空間を所定の撮像速度で撮像して、時間的に連続するフレーム画像を生成する。たとえば、撮像装置２の撮像速度は６０枚／秒であってよい。撮像装置２は、ＵＳＢ（Universal Serial Bus）あるいはその他のインタフェースを介してゲーム装置１０と接続する。撮像装置２の受光面の前面にはＲＧＢのカラーフィルタが配置されており、撮像装置２は、ＲＧＢのそれぞれの画素値が２５６階調で表現されたフレーム画像データを生成する。
【００１３】
画像表示装置３は画像信号を出力するディスプレイであって、ゲーム装置１０において生成された画像信号を受けて、ゲーム画面を表示する。音声出力装置４は音声を出力するスピーカであって、ゲーム装置１０において生成された音声信号を受けて、ゲーム音声を出力する。画像表示装置３および音声出力装置４は、ゲームシステム１における出力装置を構成する。
【００１４】
ゲーム装置１０と画像表示装置３は、有線により接続されてもよく、また無線により接続されてもよい。ゲーム装置１０と画像表示装置３とはＡＶケーブルによって接続されてもよく、またゲーム装置１０と画像表示装置３との間には、ネットワーク（ＬＡＮ）ケーブルやワイヤレスＬＡＮなどで構築したホームネットワークが構築されてもよい。
【００１５】
コントローラ２０は、ユーザによる操作入力をゲーム装置１０に伝送する機能をもち、本実施例ではゲーム装置１０との間で無線通信可能な無線コントローラとして構成される。コントローラ２０とゲーム装置１０は、Bluetooth（ブルートゥース）（登録商標）プロトコルを用いて無線接続を確立してもよい。ゲーム装置１０は、複数のコントローラ２０との無線接続を可能とし、すなわちゲームシステム１においては、ゲーム装置１０とコントローラ２０の１対Ｎ接続を実現できる。ゲーム装置１０は親機すなわちマスタとして機能し、コントローラ２０は子機すなわちスレーブとして機能する。なおコントローラ２０は、無線コントローラに限らず、ゲーム装置１０とケーブルを介して接続される有線コントローラであってもよい。
【００１６】
コントローラ２０は、バッテリにより駆動され、ゲームを進行させる操作入力を行うための複数のボタンやキーを有して構成される。ユーザがコントローラ２０のボタンやキーを操作すると、その操作入力が無線によりゲーム装置１０に送信される。ゲーム装置１０は、コントローラ２０からゲームアプリケーションに関する操作入力を受信し、操作入力に応じてゲーム進行を制御して、ゲーム画像信号およびゲーム音声信号を生成する。生成されたゲーム画像信号およびゲーム音声信号は、それぞれ画像表示装置３および音声出力装置４により出力される。またゲーム装置１０は、ゲームアプリケーションの進行状況に応じて、コントローラ２０を振動させる振動制御信号をコントローラ２０に送信する機能ももつ。コントローラ２０は振動子を有し、振動制御信号を受信すると振動子を振動させる。
【００１７】
本実施例のゲームシステム１において、コントローラ２０は、複数の発光素子を有して構成される。複数の発光素子はそれぞれ同色のＬＥＤであって、ゲームアプリケーションで設定されるコントローラ番号を表現するインジケータとしての役割をもつ。ゲームアプリケーションにおけるコントローラ番号は、たとえばゲーム開始時にゲームキャラクタを選択する際などにユーザに利用されるため、ユーザに何らかの手段でコントローラ番号を通知する必要がある。そのため、複数のＬＥＤのうち、たとえば１番目のＬＥＤが点灯していればコントローラ番号が１であり、２番目のＬＥＤが点灯していればコントローラ番号が２であるとして、ユーザがコントローラ番号を肉眼で確認できるようにする。また、２以上のＬＥＤの組合わせによりコントローラ番号を表現してもよい。なお複数の発光素子は、異なる色のＬＥＤであってよく、発光色の違いによりユーザがコントローラ番号を確認できるようにしてもよい。
【００１８】
コントローラ２０が有線コントローラである場合、一般には、コントローラ２０から延びるケーブルコネクタを接続したゲーム装置１０のポートで、ユーザはコントローラ番号を確認できる。しかしながら、複数のポートを備えたマルチポート装置をゲーム装置１０に外付けして使用するような場合には、ユーザはすぐにコントローラ番号を認識できないため、有線コントローラとして構成される場合であっても、複数のＬＥＤを用いてユーザにコントローラ番号を通知することが好ましい。
【００１９】
本実施例のゲームシステム１において、コントローラ２０のＬＥＤは、コントローラ番号に応じて定められる点滅パターンにより点灯と消灯を周期的に繰り返す。この点滅パターンでは、ＬＥＤの連続点灯時間が、撮像装置２により２枚のフレーム画像を連続して撮像するときにかかる時間以上に設定され、同様にＬＥＤの連続消灯時間も、撮像装置２により２枚のフレーム画像を連続して撮像するときにかかる時間以上に設定される。
【００２０】
ＬＥＤは、点灯と消灯を繰り返すことでバッテリ消費電力を抑える一方で、ＬＥＤの消灯がユーザの肉眼では判別できないように、繰り返し周期および連続消灯時間が設定される。したがって点滅しているＬＥＤは、肉眼では点灯状態としか確認されない。これにより、ＬＥＤを、ユーザに対してコントローラ番号を表現するインジケータとして機能させるとともに、詳細は後述するが、ゲーム装置１０に対してもコントローラ番号を表現するインジケータとして機能させることができる。概要としては、撮像装置２がＬＥＤを撮像すると、ゲーム装置１０は、点灯状態を撮像した複数のフレーム画像と、消灯状態を撮像した複数のフレーム画像とを取得できるため、ＬＥＤの点滅パターンと照らし合わせることで、そのＬＥＤを保持するコントローラ２０のコントローラ番号を特定できる。ＬＥＤの点滅パターンは、所定の周期におけるデューティ比を定めたものであってよい。
【００２１】
撮像装置２はコントローラ２０のＬＥＤを撮像し、フレーム画像を生成してゲーム装置１０に供給する。ゲーム装置１０は、フレーム画像を取得して、フレーム画像におけるＬＥＤ画像の位置からコントローラ２０のフレーム画像中の位置を推定して取得し、取得した位置情報をゲームアプリケーションの処理に反映してもよい。すなわち、本実施例のゲーム装置１０は、コントローラ２０において入力された操作入力だけでなく、取得したコントローラ２０の位置情報も用いてゲームアプリケーションを処理し、その処理結果を示す画像信号を生成する機能を有してもよい。
【００２２】
図２は、コントローラの外観構成を示す。コントローラ２０には、方向キー２１、アナログスティック２７と、４種の操作ボタン２６が設けられている。方向キー２１、アナログスティック２７、操作ボタン２６は、筐体上面３０に設けられた入力部である。４種のボタン２２〜２５には、それぞれを区別するために、異なる色で異なる図形が記されている。すなわち、○ボタン２２には赤色の丸、×ボタン２３には青色のバツ、□ボタン２４には紫色の四角形、△ボタン２５には緑色の三角形が記されている。コントローラ２０の筐体背面２９には、複数のＬＥＤが設けられている。
【００２３】
ユーザは左手で左側把持部２８ａを把持し、右手で右側把持部２８ｂを把持して、コントローラ２０を操作する。方向キー２１、アナログスティック２７、操作ボタン２６は、ユーザが左側把持部２８ａ、右側把持部２８ｂを把持した状態で操作可能なように、筐体上面３０上に設けられる。
【００２４】
筐体上面３０には、ＬＥＤ付きボタン３１も設けられる。ＬＥＤ付きボタン３１は、たとえば画像表示装置３にメニュー画面を表示させるためのボタンとして利用される。また、ＬＥＤの発光状態によりユーザへのメールの着信の知らせや、コントローラ２０のバッテリの充電状態などを示す機能ももつ。たとえば充電中は赤色、充電が終了すると緑色に点灯し、充電残存量が残り少ないときには赤色を点滅させるようにＬＥＤを点灯させる。
【００２５】
ユーザは画像表示装置３に表示されるゲーム画面を見ながらゲームを行うため、画像表示装置３は、矢印Ａで示すコントローラ２０の前方に存在している。そのため、通常は、画像表示装置３に対して、ＬＥＤを配置された筐体背面２９が向き合うことになる。本実施例において撮像装置２は、ゲームアプリケーションの実行中にＬＥＤを撮像する必要があるため、その撮像範囲が画像表示装置３と同じ方向を向くように配置されて、コントローラ２０の筐体背面２９と向き合うことが好ましい。一般にユーザは画像表示装置３の正面でゲームをプレイすることが多いため、撮像装置２は、その光軸の方向が画像表示装置３の正面方向と一致するように配置される。具体的に、撮像装置２は、画像表示装置３の近傍において、画像表示装置３の表示画面をユーザが視認可能な領域を、撮像空間に含むように配置されることが好ましい。これにより撮像装置２は、ユーザの身体およびコントローラ２０を撮像できる。
【００２６】
図３は、コントローラの背面側の外観構成を示す。図３では、コントローラ２０の筐体上面３０における方向キー２１や操作ボタン２６などの図示を省略している。筐体背面２９にはＬＥＤ配設領域４２が設けられ、ＬＥＤ配設領域４２内に第１ＬＥＤ４０ａ、第２ＬＥＤ４０ｂ、第３ＬＥＤ４０ｃおよび第４ＬＥＤ４０ｄが配置される。以下、第１ＬＥＤ４０ａ、第２ＬＥＤ４０ｂ、第３ＬＥＤ４０ｃおよび第４ＬＥＤ４０ｄを総称する場合には、「ＬＥＤ４０」と表記する。ＬＥＤ配設領域４２は、筐体背面２９における中央領域に形成される。
【００２７】
筐体背面２９側には、操作ボタン４８ａ、４８ｂ、４８ｃ、４８ｄがＬＥＤ配設領域４２を挟んで左右に設けられる。操作ボタン４８ａ、４８ｂ、４８ｃ、４８ｄは、ユーザが左側把持部２８ａ、右側把持部２８ｂを把持した状態でも人差指の先端で操作可能な位置に設けられる。ＬＥＤ配設領域４２を筐体背面２９の中央領域に設けることで、操作ボタン４８ａ、４８ｂ、４８ｃ、４８ｄの操作時に、ＬＥＤ４０は人差指によって隠れない。
【００２８】
第１ＬＥＤ４０ａ、第２ＬＥＤ４０ｂ、第３ＬＥＤ４０ｃおよび第４ＬＥＤ４０ｄは、図３に示すように、たとえば横並びに配設されてもよく、また所定の２次元パターンで配設されてもよい。ＬＥＤ４０は筐体内部に設けられて、筐体面側には半透明板が配設される。この半透明板には数字が刻印されており、ユーザは点灯しているＬＥＤ４０の数字をみて、コントローラ番号を知ることができる。
【００２９】
図４は、コントローラの内部構成を示す。コントローラ２０は、無線通信モジュール５８、処理部６０、ＬＥＤ４０および振動子４４を備える。無線通信モジュール５８は、ゲーム装置１０の無線通信モジュールとの間でデータを送受信する機能をもつ。処理部６０は、コントローラ２０における所期の処理を実行する。
【００３０】
処理部６０は、メイン制御部５０、入力受付部５２、ＰＷＭ制御部５４および駆動部５６を有する。メイン制御部５０は、無線通信モジュール５８との間で必要なデータの送受を行う。
【００３１】
入力受付部５２は、方向キー２１、操作ボタン２６、アナログスティック２７、操作ボタン４８などの入力部からの入力情報を受け付け、メイン制御部５０に送る。メイン制御部５０は、受け取った入力情報を無線通信モジュール５８に供給し、無線通信モジュール５８は、所定のタイミングでゲーム装置１０に送信する。また、無線通信モジュール５８はゲーム装置１０から振動制御信号を受け取ると、メイン制御部５０に供給し、メイン制御部５０は、振動制御信号をもとに振動子４４を振動させる駆動部５６を動作させる。駆動部５６は、振動子４４を駆動するためのスイッチとして構成されてもよく、また供給電圧のデューティ比を可変とするＰＷＭ制御部として構成されてもよい。
【００３２】
本実施例において、ＰＷＭ制御部５４は、第１ＰＷＭ制御部５４ａ、第２ＰＷＭ制御部５４ｂ、第３ＰＷＭ制御部５４ｃおよび第４ＰＷＭ制御部５４ｄから構成される。第１ＰＷＭ制御部５４ａ、第２ＰＷＭ制御部５４ｂ、第３ＰＷＭ制御部５４ｃおよび第４ＰＷＭ制御部５４ｄは、それぞれ第１ＬＥＤ４０ａ、第２ＬＥＤ４０ｂ、第３ＬＥＤ４０ｃおよび第４ＬＥＤ４０ｄの点灯を制御するために設けられる。ＰＷＭ制御部５４は、ＬＥＤ４０に印加する電圧をＰＷＭ（パルス幅変調）により制御する。ＰＷＭ制御部５４は、ユーザの肉眼にはＬＥＤ４０が点灯し続けているように見せつつ、撮像装置２にはＬＥＤ４０の点灯、消灯を撮像できるような周期で、ＬＥＤ４０の点灯と消灯を周期的に繰り返すように印加電圧を制御する。メイン制御部５０は、第１ＰＷＭ制御部５４ａから第４ＰＷＭ制御部５４ｄのいずれかを駆動することで、任意のＬＥＤ４０を点灯させることができる。
【００３３】
本実施例のゲームシステム１において、まず、ゲームシステム１に参加を希望するユーザのコントローラ２０が、ゲーム装置１０との間で通信を確立する。このとき、コントローラ２０の識別情報、たとえばブルートゥースアドレスがゲーム装置１０に受け渡され、以後の通信は、このブルートゥースアドレスをもとに行われる。なお、通信プロトコルとしてブルートゥースを利用しない場合には、ＭＡＣアドレスなどの機器アドレスが利用されてもよい。通信リンクの確立中、ＬＥＤ４０は、通信リンク確立中であることをユーザに知らせるために、点灯と消灯とが視認できる周期で点滅してもよい。接続確立後、ゲーム装置１０はコントローラ２０に対してコントローラ番号を割り当て、ユーザはゲームアプリケーションに参加できるようになる。
【００３４】
コントローラ２０には、ゲーム装置１０からコントローラ番号を指示する情報が送信される。メイン制御部５０は、この番号指示情報をもとに、設定されたコントローラ番号に対応するＬＥＤ４０のみを点滅制御する。この点滅制御では、ＬＥＤ４０の点灯と消灯とを周期的に繰り返すが、ユーザの肉眼には常に点灯しているように見えることが好ましい。これによりユーザは、自身のコントローラ２０に割り当てられたコントローラ番号を肉眼で確認できる。また、点灯と消灯とを交互に実行することで、消費電力を低減できる。
【００３５】
メイン制御部５０は、設定されたコントローラ番号に応じて定められる点滅パターンにより、コントローラ番号に対応するＬＥＤ４０を点滅制御する。本実施例のゲームシステム１においては、設定されたコントローラ番号に応じて、点灯するＬＥＤ４０と、点灯と消灯の時間を定める点滅パターンとが一意に定められる。メイン制御部５０は、コントローラ番号に対応付けて、点滅させるＬＥＤ４０を駆動するＰＷＭ制御部５４と、点滅パターンとを特定するテーブルを保持している。
【００３６】
図５は、メイン制御部５０が保持する対応テーブルの一例を示す。このテーブルでは、複数のコントローラ番号に対して、それぞれ異なるＬＥＤ４０を駆動するＰＷＭ制御部５４と、点滅パターンとが対応付けて記録されている。点滅パターン１〜４は、それぞれ異なるデューティ比を有して構成される。メイン制御部５０は、たとえばゲーム装置１０からコントローラ番号２を示す番号指示情報を受信すると、対応テーブルを参照して、第２ＰＷＭ制御部５４ｂを点滅パターン２にしたがって駆動し、第２ＬＥＤ４０ｂの点灯と消灯を周期的に繰り返す。
【００３７】
図６は、点滅パターンの例を示す。図６（ａ）は点滅パターン１、図６（ｂ）は点滅パターン２、図６（ｃ）は点滅パターン３、図６（ｄ）は点滅パターン４をそれぞれ示す。図６の例では、全ての点滅パターンが同一の周期（１０Ｔ）を有しており、１周期は、１つの連続点灯時間と１つの連続消灯時間とにより構成される。１周期において、点滅パターン１は、連続点灯時間を３Ｔ、連続消灯時間を７Ｔとするパターンであり、点滅パターン２は、連続点灯時間を５Ｔ、連続消灯時間を５Ｔとするパターンであり、点滅パターン３は、連続点灯時間を７Ｔ、連続消灯時間を３Ｔとするパターンであり、点滅パターン４は、連続点灯時間を９Ｔ、連続消灯時間をＴとするパターンである。点滅パターンの周期（１０Ｔ）は、撮像装置２の撮像速度に応じて設定される。
【００３８】
ゲームシステム１に複数のコントローラ２０が存在する場合、ゲーム装置１０は、接続を確立した順に、コントローラ番号を１から昇順に割り当てる。コントローラ番号と点滅パターン番号とを同一とすることで、結果的に点滅パターンは、点滅パターン１から昇順にコントローラ２０に割り当てられることになる。図示のように、点滅パターンのデューティ比は、点滅パターン番号が小さいほど低く、点滅パターン番号が大きくなるにつれて高くなるように設定されており、したがってデューティ比の低い順に利用されることになる。点灯のオンオフを定めるデューティ比は、低ければ低いほどコントローラ２０のバッテリの省電効果が高い。本実施例のように、デューティ比の低い点滅パターンから順に利用することで、コントローラ２０のバッテリの省電効率を高めることができる。
【００３９】
点滅パターンは、撮像装置２の撮像速度を基準に設定される。具体的に点滅パターンは、ＬＥＤ４０の連続点灯時間が、撮像装置２により連続して撮像される２つのフレーム画像の撮像時間以上となるように設定され、また連続消灯時間が、撮像装置２により連続して撮像される２つのフレーム画像の撮像時間以上となるように設定される。本実施例の撮像装置２の撮像速度は６０枚／秒であり、そのため連続点灯時間および連続消灯時間は、それぞれ２／６０秒（＝０．０３３秒）以上となるように設定される。
【００４０】
たとえば図６（ａ）〜図６（ｄ）に示す点滅パターンにおいて、連続点灯時間および連続消灯時間の最小時間は、図６（ｄ）に示す点滅パターンの連続消灯時間Ｔである。そのためＴは、連続する２フレーム分の時間以上、すなわち２／６０秒以上となるように設定される。なお、撮像装置２の撮像速度が１／３０秒であれば、図６（ｄ）における連続消灯時間Ｔは、２／３０秒（＝０．０６７秒）以上となるように設定される。
【００４１】
また点滅パターンは、ユーザの肉眼には点滅していることを認識させないような周期に設定されることが好ましい。ＬＥＤ４０の長い点滅周期は、ユーザの肉眼に光のちらつきとして認識させることがある。そのため、点滅パターンの周期は、肉眼により点滅が視認できない程度に短く、また撮像装置２により点灯状態と消灯状態とが区別して撮像可能な程度に長く設定されることが好ましい。
【００４２】
なお、上記した実施例では、ゲーム装置１０からコントローラ番号を示す番号指示情報が送信され、コントローラ２０が、番号指示情報をもとにＬＥＤ４０の点滅制御を行うとした。それ以外にも、番号指示情報の代わりに、コントローラ番号に対応するＬＥＤ４０の点滅を指示する制御情報がゲーム装置１０から送信されてもよい。この制御情報には、駆動するＬＥＤ４０またはＰＷＭ制御部５４を特定する情報と、点滅パターンとが含まれて、メイン制御部５０が、この制御情報をもとに所期のＰＷＭ制御部５４を駆動制御してもよい。また制御情報には、駆動するＬＥＤ４０またはＰＷＭ制御部５４を特定する情報と、点灯指示または消灯指示のいずれかの情報とが含まれてもよい。この場合、メイン制御部５０は、対応するＰＷＭ制御部５４を、点灯指示または消灯指示に応じて行動制御する。
【００４３】
本実施例のゲームシステム１において、ゲーム装置１０は、コントローラ２０がＬＥＤ４０ａ〜４０ｄのいずれか１つを点滅している状態で連続して撮像されたフレーム画像をもとに、コントローラ２０が撮像装置２の撮像空間内に存在することを判定する。ゲーム装置１０は、コントローラ２０の存在を判定すると同時に、コントローラ２０の空間内の位置を推定してもよい。推定した位置は、実行するゲームアプリケーションの入力として利用されてもよい。
【００４４】
なおゲーム装置１０は、その基本機能として、コントローラ２０の方向キー２１や操作ボタン２６などの操作入力も受け付け、これらの入力情報をもとに、ゲームアプリケーションのゲームパラメータを生成し、ゲームを進行制御して、ゲーム画像およびゲーム音声のＡＶデータを生成する機能をもつ。ＡＶデータは、画像表示装置３および音声出力装置４において出力される。ユーザは、ゲーム画面を見ながら、コントローラ２０を実空間上で動かし、さらには方向キー２１や操作ボタン２６を操作入力してゲームを行う。以下に、ゲーム装置１０における処理を説明する。
【００４５】
図７は、ゲーム装置の構成を示す。ゲーム装置１０は、入力部１００、画像処理部１０２、位置推定部１０４、無線通信モジュール１０８、アプリケーション処理部１１０および出力部１１２を備える。本実施例におけるゲーム装置１０の処理機能は、ＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現され、ここではそれらの連携によって実現される構成を描いている。プログラムは、ゲーム装置１０に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。図示の例では、ゲーム装置１０のＣＰＵが、画像処理部１０２、位置推定部１０４、アプリケーション処理部１１０としての機能をもつ。なお、ハードウェアの構成上、ゲーム装置１０は複数のＣＰＵを有してもよい。このような場合、１つのＣＰＵがゲームアプリケーションを実行するアプリケーション処理部１１０として機能し、他のＣＰＵが、撮像装置２による撮影画像を処理する画像処理部１０２、位置推定部１０４として機能してもよい。
【００４６】
無線通信モジュール１０８は、コントローラ２０の無線通信モジュール５８との間で無線通信を確立する。同期確立フェーズにおいては、無線通信モジュール１０８が、周辺のコントローラ２０を含む端末機器に対して接続照会すなわち「問い合わせ」処理を行う。具体的には、無線通信モジュール１０８が、近くにいる端末機器に対してＩＱ（問い合わせ）パケットをブロードキャストする。ＩＱパケットを受信したコントローラ２０の無線通信モジュール５８は、BluetoothアドレスとBluetoothクロック情報を含むＦＨＳ（Frequency Hop Synchronization）パケットをゲーム装置１０に返信する。この時点における送受信では、周波数ホッピングパターンに関する同意がゲーム装置１０とコントローラ２０との間で確立していないので、問い合わせ専用に定義された固定ホッピングパターンが用いられる。
【００４７】
無線通信モジュール１０８は、コントローラ２０からＦＨＳパケットを受け取り、どのようなコントローラ２０が存在するかを把握した後、特定のコントローラ２０に対してＩＤパケットを送信する。これは無線通信モジュール１０８による「呼び出し」処理である。特定のコントローラ２０からＩＤパケットに対する応答が返ると、無線通信モジュール１０８はＦＨＳパケットをコントローラ２０に送信し、自分のアドレスとクロックをコントローラ２０に知らせる。これにより、ゲーム装置１０とコントローラ２０は、同一のホッピングパターンを共有できるようになる。
【００４８】
「呼び出し」を行うと、コントローラ２０とゲーム装置１０との間にピコネットが形成され、「接続」状態に入る。ピコネットとは、Bluetooth端末同士を近づけたときに、端末の間で一時的に形成されるネットワークを意味し、最大で８台のBluetooth端末が１つのピコネットに参加することができる。接続したコントローラ２０は、無線通信モジュール１０８からスレーブ識別子、つまり接続中のコントローラ２０に与えられる３ビットのアドレス（１〜７）を割り振られる。このスレーブ識別子は、AM_ADDR（アクティブメンバーアドレス）と呼ばれる。「接続」状態になると、通信リンク設定のための制御パケットが送受信され、これにより「データ転送」が可能となる。なお、コントローラ２０は、この通信リンクの設定中、ＬＥＤ４０をユーザに視認可能な状態で点滅させ、ユーザに通信リンクの設定中であることを認識させてもよい。
【００４９】
接続状態になり、コントローラ２０がゲームアプリケーションに参加すると、アプリケーション処理部１１０は、コントローラ２０のコントローラ番号を割り当て、コントローラ番号を指示する番号指示情報を生成する。無線通信モジュール１０８は、番号指示情報をコントローラ２０に送信する。コントローラ２０は、番号指示情報を受信すると、図５に示す対応テーブルを参照して、対応するＬＥＤ４０を点滅制御する。なお、無線通信モジュール１０８は、番号指示情報の代わりに、コントローラ番号に対応するＬＥＤ４０の点灯を指示する制御情報をコントローラ２０に送信してもよい。この場合、コントローラ２０は、制御情報をもとに、対応するＬＥＤ４０を点滅制御する。
【００５０】
入力部１００はＵＳＢインタフェースとして構成され、撮像装置２から所定の撮像速度（たとえば６０フレーム／秒）でフレーム画像を取得する。画像処理部１０２は、時間的に連続して撮像されたフレーム画像をもとに、コントローラ２０が撮像装置２の撮像空間内に存在することを判定する。具体的には、点灯したＬＥＤ４０が連続して撮像されているフレーム画像の数を計数（カウント）し、その計数値をもとにコントローラ２０の存在判定を行う。画像処理部１０２は、撮像空間にコントローラ２０が存在していることを判定すると、フレーム画像からＬＥＤ画像を抽出する。位置推定部１０４は、抽出されたＬＥＤ画像からＬＥＤ画像の位置情報を取得し、コントローラ２０の位置を推定する。
【００５１】
本実施例のゲームシステム１において、点灯するＬＥＤ４０の位置から推定されるコントローラ２０の位置情報は、ゲームアプリケーションの入力として利用されてもよい。この場合、位置推定部１０４で推定されたコントローラ２０の位置情報は、アプリケーション処理部１１０に逐次送られて、アプリケーションの処理に反映される。アプリケーション処理部１１０には、ユーザがコントローラ２０の方向キー２１などを操作した入力も無線通信モジュール１０８を介して供給される。アプリケーション処理部１１０は、コントローラ２０の位置情報と、コントローラ２０における操作入力からゲームを進行させて、ゲームアプリケーションの処理結果を示す画像信号および音声信号を生成する。画像信号および音声信号は出力部１１２からそれぞれ画像表示装置３および音声出力装置４に送られ、出力される。
【００５２】
図８は、画像処理部の構成を示す。画像処理部１０２は、フレーム画像取得部１３０、２値化画像生成部１３２、判定部１３４およびＬＥＤ画像抽出部１３６を備える。
【００５３】
フレーム画像取得部１３０は、入力部１００からフレーム画像データを取得する。２値化画像生成部１３２は、フレーム画像データを所定の閾値を用いて２値化処理して、２値化された画像を生成する。閾値はＬＥＤ４０の発光色に応じて設定され、２値化画像生成部１３２は、２値化処理するためのＲＧＢの画素値の範囲を、可能であればフレーム画像から点灯ＬＥＤ画像のみを抽出するような範囲に設定する。ＬＥＤ４０の発光色が赤色の場合、２値化画像生成部１３２は、赤色（Ｒ）の画素値の範囲を２２０〜２５５、緑色（Ｇ）の画素値の範囲を０〜５０、青色（Ｂ）の画素値の範囲を０〜５０と設定する。この設定した閾値に基づいて、２値化画像生成部１３２は、この範囲内にあるＲＧＢの複合画素を抽出して、その画素値を“１”に符号化し、この範囲内にないＲＧＢの複合画素の画素値を“０”に符号化する。例えば、Ｒ画素値が２４５、Ｇ画素値が３０、Ｂ画素値が２０となる複合画素の画素値は“１”に符号化され、Ｒ画素値が１００、Ｇ画素値が１００、Ｂ画素値が２０となる複合画素の画素値は“０”に符号化される。フレーム画像の２値化画像を生成することで、フレーム画像において赤色の画素値が高いオブジェクトのみを抽出できる。２値化画像において、画素値“１”の画素は白色画素となり、画素値“０”の画素は黒色画素となる。
【００５４】
図３に示すように、ＬＥＤ４０は、細長の矩形状であるため、２値化画像において、点灯しているＬＥＤ４０の画像（以下、「点灯ＬＥＤ画像」と呼ぶ）は、細長矩形状に白色画素が連結した領域として存在する。ＬＥＤ画像抽出部１３６は、２値化画像から点灯ＬＥＤ画像を抽出する。
【００５５】
図９は、点灯ＬＥＤ画像の抽出処理の手順を示すフローチャートである。ＬＥＤ画像抽出部１３６は、２値化画像において、白色画素（画素値が“１”になっている画素）が連続して存在する領域を１つの連結領域として取得する（Ｓ１００）。以下、この連結領域を「白色画像」と呼ぶ。ＬＥＤ画像抽出部１３６は、白色画像の構成画素数（連続する白色画素の画素数）を計数して、所定値Ａ以上、所定値Ｂ以下の範囲に構成画素数が収まっているか否かを判定する（Ｓ１０２）。構成画素数がＡ以上で、且つＢ以下の場合（Ｓ１０２のＹ）、白色画像が細長矩形状であるか否かを判定する（Ｓ１０４）。Ｓ１０４では、ＬＥＤ画像抽出部１３６が、白色画像の縁部分を抽出して、短辺および長辺を決定し、長辺と短辺の長さの比が、予め定めた所定値程度である場合に、白色画像が細長矩形状であることを判定する（Ｓ１０４のＹ）。これにより、処理対象となった白色画像が点灯ＬＥＤ画像であることを決定して（Ｓ１０６）、その白色画像についての処理を終了する。
【００５６】
Ｓ１０２において、構成画素数がＡより少ない場合（Ｓ１０２のＮ）、この白色画像は小さすぎるため点灯ＬＥＤ画像ではないとして、この白色画像についての処理を終了する。また、構成画素数がＢよりも多い場合（Ｓ１０２のＮ）、この白色画像は大きすぎるため点灯ＬＥＤ画像ではないとして、この白色画像についての処理を終了する。また、Ｓ１０４において、形状が細長矩形状でない場合（Ｓ１０４のＮ）、この白色画像が点灯ＬＥＤ画像ではないとして、この白色画像についての処理を終了する。図９に示す抽出処理は、２値化画像ごとに、２値化画像に含まれる全ての白色画像に対して実行される。
【００５７】
判定部１３４は、２値化画像に点灯ＬＥＤ画像が含まれていることを判断すると、ＬＥＤ４０を点灯しているコントローラ２０が撮像装置２の撮像空間内に存在することを判定する。コントローラ２０の特定処理を行うために、判定部１３４は、複数のコントローラ２０に設定されたコントローラ番号と、それぞれの点滅パターンを把握している。コントローラ番号は、点灯ＬＥＤ画像の抽出処理を行う前に、アプリケーション処理部１１０から通知される。
【００５８】
本実施例のゲームシステム１では、点滅パターンとして、図６（ａ）〜図６（ｄ）に示す４種類の点滅パターン１〜４を利用する。既述したように、これらの点滅パターンの周期（１０Ｔ）は共通に設定されており、１周期内でのオンオフのデューティ比を異ならせることで、それぞれの点滅パターンが形成されている。以下、この周期１０Ｔを、たとえば０．５秒と設定する。このとき、Ｔ＝１／２０秒である。
【００５９】
図１０は、各点滅パターンにおける連続点灯時間と連続消灯時間を示す。たとえば、点滅パターン１では、連続点灯時間が３／２０秒（＝０．１５秒）であり、これはフレーム画像９枚分の撮像時間に相当する。また連続消灯時間が７／２０秒（０．３５秒）であり、これはフレーム画像２１枚分の撮像時間に相当する。点滅パターン２〜４の連続点灯時間および連続消灯時間については、図示のとおりである。判定部１３４は、各点滅パターンにおける連続点灯時間と連続消灯時間とを予めメモリ（図示せず）に保持しており、点灯したＬＥＤ４０が連続して撮像されているフレーム画像の数を取得すると、メモリに保持した連続点灯時間から、そのＬＥＤ４０を設けたコントローラ２０を特定する。
【００６０】
ＬＥＤ画像抽出部１３６は、点灯ＬＥＤ画像を抽出すると、抽出した点灯ＬＥＤ画像のフレーム画像中の位置に関する情報を判定部１３４に送る。この位置情報は、たとえば点灯ＬＥＤ画像の重心座標（Ｘ，Ｙ）であってよい。１枚の２値化画像中で複数のＬＥＤ画像が抽出されると、それぞれの位置情報が判定部１３４に送られる。
【００６１】
判定部１３４は、この位置情報を受け取ると、撮像装置２の撮像空間内に点灯したＬＥＤ４０が存在していることを認識する。この位置情報は、次のフレーム画像で抽出された点灯ＬＥＤ画像との間での個体認識を行うために用いられる。本実施例において、撮像装置２の撮像速度、すなわちフレーム画像の生成速度は１／６０秒であり、この時間でコントローラ２０の移動可能な距離には限界がある。そのため、あるフレーム画像において点灯したＬＥＤ４０が検出され、そのときの位置座標が（Ｘ１，Ｙ１）であるとすると、次のフレーム画像において、その点灯ＬＥＤ画像の位置変化量は、元の位置座標（Ｘ１，Ｙ１）から所定の半径内にあると考えられる。そこで、判定部１３４は、あるフレーム画像における点灯ＬＥＤ画像の位置座標（Ｘ１，Ｙ１）を受け取り、次のフレーム画像における点灯ＬＥＤ画像の位置座標（Ｘ２，Ｙ２）を受け取ると、以下の数式を利用して、連続するフレーム画像において取得された２つの位置座標が、同一ＬＥＤ４０の点灯位置を示すものであるか否かを判定する。
【００６２】
【数１】
0004443531.tif 000002
【００６３】
Ｄは、１／６０秒の間にフレーム画像中で移動可能な距離に設定される。一般にユーザは、ゲーム中、撮像装置２から少なくとも１メートル程度は離れてプレイすると考えられるため、その撮像装置２からの距離も加味して、フレーム画像中で移動可能な距離Ｄが定められることが好ましい。
【００６４】
Ｆ（Ｘ，Ｙ）が０より大きければ、この２つの位置座標（Ｘ１，Ｙ１）、（Ｘ２，Ｙ２）で抽出された点灯ＬＥＤ画像は、それぞれ異なるＬＥＤ４０による点灯状態を撮像したものであることが判断される。一方、Ｆ（Ｘ，Ｙ）が０以下であれば、この２つの位置座標（Ｘ１，Ｙ１）と（Ｘ２，Ｙ２）で抽出された点灯ＬＥＤ画像が、同一のＬＥＤ４０による点灯状態を撮像したものであることが判断される。さらに次のフレーム画像における点灯ＬＥＤ画像の位置座標（Ｘ３，Ｙ３）を受け取ると、以下の数式を利用して、連続するフレーム画像において取得された２つの位置座標（Ｘ２，Ｙ２）、（Ｘ３，Ｙ３）が、同一ＬＥＤ４０の点灯位置を示すものであるか否かが判定される。
【００６５】
【数２】
0004443531.tif 000003
【００６６】
このように、直前のフレーム画像における点灯ＬＥＤ画像の位置座標と、今回のフレーム画像における点灯ＬＥＤ画像の位置座標との距離が、所定の距離内であるか否かを算出することで、同一のＬＥＤ４０の点灯状態を撮像したものであるか、または異なるＬＥＤ４０の点灯状態を撮像したものであるかを判断できる。
【００６７】
以上のように、判定部１３４は、２つの連続するフレーム画像中の点灯ＬＥＤ画像が同一ＬＥＤ４０のものであることを判断すると、そのＬＥＤ４０の点灯状態が撮像されたフレーム画像の枚数を計数する。すなわち、あるフレーム画像においてＬＥＤ４０の点灯が確認されて、その点灯が確認されなくなるまで、判定部１３４は、フレーム画像の枚数をカウントする。
【００６８】
判定部１３４は、たとえば、連続する９枚のフレーム画像において同一のＬＥＤ４０の点灯状態が撮像されていることを確認すると、図１０に示す各点滅パターンの連続点灯時間から、そのＬＥＤ４０が点滅パターン１で点滅していることを判定する。同様に、判定部１３４は、連続する１５枚のフレーム画像において同一ＬＥＤ４０の点灯状態が撮像されていることを確認すると、そのＬＥＤ４０が点滅パターン２で点滅していることを確認する。判定部１３４は、各コントローラ２０に対して割り当てられている点滅パターンを把握しているため、そのＬＥＤ４０を保持しているコントローラ２０を特定することができる。
【００６９】
図１１は、ＬＥＤ画像抽出部１３６により連続するフレーム画像中で撮像される点灯ＬＥＤ画像について説明するための説明図である。図１１（ａ）は、点滅パターン１で点滅するＬＥＤ４０の点滅状態を示す。このＬＥＤ４０は、０．５秒の周期中、０．１５秒間連続点灯し、０．３５秒間連続消灯する。ＬＥＤ４０の点滅処理と撮像装置２の撮像処理は、非同期に実行される。連続点灯時間である０．１５秒は、撮像装置２の９フレーム分の撮像時間に相当する。
【００７０】
図１１（ｂ）〜図１１（ｆ）は、撮像装置２による撮像状況を示しており、図中、“１”は、点灯ＬＥＤ４０を撮像したことを、“０”は点灯ＬＥＤ４０を撮像しなかったことを示す。
【００７１】
図１１（ｂ）に示す撮像状況では、連続する９フレームにわたって点灯ＬＥＤ４０が撮像されている。この撮像状況では、偶然にも、ＬＥＤ４０の点滅処理と撮像装置２の撮像処理とが同期しており、連続する９のフレーム画像に、点灯ＬＥＤ画像が含まれることになる。
【００７２】
図１１（ｃ）に示す撮像状況では、連続する１０フレームにわたって点灯ＬＥＤ４０が撮像されている。ＬＥＤ４０の点滅処理と撮像装置２の撮像処理とが非同期であり、この撮像状況では、連続する１０のフレーム画像に、点灯ＬＥＤ画像が含まれることになる。
【００７３】
図１１（ｄ）に示す撮像状況では、連続する８フレームにわたって点灯ＬＥＤ４０が撮像されている。この撮像状況では、ＬＥＤ４０の点滅処理と撮像装置２の撮像処理とが非同期であって、その処理時間のずれは図１１（ｃ）に示す時間ずれと同一であるが、図１１（ｃ）に示す撮像状況とは異なり、ＬＥＤ４０の点灯開始時と点灯終了時の点灯画像が取得できなかったケースである。このケースでは、連続する８のフレーム画像に、点灯ＬＥＤ画像が含まれることになる。
【００７４】
図１１（ｅ）に示す撮像状況では、連続する９フレームにわたって点灯ＬＥＤ４０が撮像されている。ＬＥＤ４０の点滅処理と撮像装置２の撮像処理とが非同期であり、この撮像状況では、連続する９のフレーム画像に、点灯ＬＥＤ画像が含まれることになる。
【００７５】
図１１（ｆ）に示す撮像状況では、連続する９フレームにわたって点灯ＬＥＤ４０が撮像されている。ＬＥＤ４０の点滅処理と撮像装置２の撮像処理とが非同期であり、この撮像状況では、連続する９のフレーム画像に、点灯ＬＥＤ画像が含まれることになる。
【００７６】
以上のように、ＬＥＤ４０の点滅処理と撮像装置２の撮像処理とが非同期であることから、ＬＥＤ４０の連続点灯時間がＮフレーム分の撮像時間に相当する場合であっても、取得できる点灯ＬＥＤ画像の数は（Ｎ−１）、Ｎ、（Ｎ＋１）のいずれかとなる。したがって、判定部１３４は、同一ＬＥＤ４０による点灯ＬＥＤ画像が抽出されたフレーム画像を計数した値がＭであったとき、連続点灯時間が（Ｍ−１）フレームの撮像時間から（Ｍ＋１）フレームの撮像時間の範囲にある点滅パターンを特定することで、そのＬＥＤ４０を設けたコントローラ２０を特定することができる。
【００７７】
また、連続点灯時間がＮフレーム分の撮像時間に相当する場合であっても、撮像装置２により撮像されるフレーム数は、（Ｎ−１）、Ｎ、（Ｎ＋１）のいずれかとなるため、連続点灯時間が、１フレーム分の撮像時間に相当する場合には、その点灯ＬＥＤ画像を取得できない事態も生じる。そこで、コントローラ２０は、ＬＥＤ４０の連続点灯時間が、連続する２つのフレーム画像の撮像時間以上となる点滅パターンにより、ＬＥＤ４０を点灯させることが好ましい。
【００７８】
また、点滅パターンを区別して認識できるようにするために、各点滅パターンの連続点灯時間および連続消灯時間は、互いに２フレーム分の撮像時間以上異なっていることが好ましい。
【００７９】
以上の実施例では、連続点灯時間のみからＬＥＤ４０を識別する方法について説明したが、これに連続消灯時間を加味して、ＬＥＤ４０の識別精度を高めてもよい。この場合は、点灯ＬＥＤ画像を最後に抽出した時間から、その位置周辺において次に点灯ＬＥＤ画像を抽出するまでの間の時間を、ＬＥＤ４０が連続して消灯していた時間ととらえ、各点滅パターンの連続消灯時間と比較する。この方法は、連続点灯時間について説明したものと同様である。したがって、連続点灯時間と同様に、連続消灯時間についても、連続する２つのフレーム画像の撮像時間以上となることが好ましい。フレーム数を用いてＬＥＤ４０を識別する場合、点灯ＬＥＤ画像を撮像できなくなったフレームから、その位置周辺において次に点灯ＬＥＤ画像を撮像したフレームまでのフレーム数を、ＬＥＤ４０が連続して消灯していたフレーム数ととらえ、各点滅パターンの連続消灯時間に対応するフレーム数と比較してもよい。
【００８０】
以上のように、判定部１３４は、位置情報をもとにコントローラ２０を特定するため、ゲームシステム１に複数のコントローラ２０が存在する場合であっても、それぞれのコントローラ２０を識別できる。各コントローラ２０は、それぞれに対して設定されたコントローラ番号に割り当てられる１つのＬＥＤ４０の点灯と消灯を、そのコントローラ番号に応じて定められる点滅パターンにしたがって実行している。判定部１３４は、ゲームシステム１内に存在するコントローラ２０のそれぞれに対して割り当てているコントローラ番号および点滅パターンを把握しているため、ＬＥＤ画像抽出部１３６から送られる点灯ＬＥＤ画像の位置情報をもとに、それぞれのコントローラ２０を識別できる。
【００８１】
判定部１３４は、コントローラ番号を特定すると、その情報をＬＥＤ画像抽出部１３６に返す。ＬＥＤ画像抽出部１３６は、点灯しているＬＥＤ４０の位置情報と、そのＬＥＤ４０を保持するコントローラ２０のコントローラ番号とを対応付けて、位置推定部１０４に送る。
【００８２】
位置推定部１０４は、ＬＥＤ４０の位置情報を取得する。位置推定部１０４は、コントローラ２０からの電波の受信強度をもとに、コントローラ２０との間の距離を推定してもよい。これにより位置推定部１０４は、コントローラ２０の空間内の位置座標（Ｘ，Ｙ，Ｚ）を推定できる。位置推定部１０４は、推定したコントローラ２０の位置をアプリケーション処理部１１０に送る。なお、フレーム画像におけるＬＥＤ４０の位置情報のみを必要とするゲームアプリケーションの場合には、位置推定部１０４は、距離の推定処理を行わずに、コントローラ番号とその位置情報とを対応付けて、アプリケーション処理部１１０に送る。
【００８３】
アプリケーション処理部１１０は、推定されたコントローラ２０の位置を、ゲーム入力としてゲームアプリケーションの処理に反映する。この反映の手法は様々考えられるが、最も直観的には、推定したコントローラ２０の位置に対応したゲーム画像中の位置に、仮想オブジェクトを追従させて表示する。ユーザが撮像装置２に対してコントローラ２０を動かすと、その動きに追従してゲーム画像内の仮想オブジェクトを動かすことができる。
【００８４】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８５】
実施例ではＬＥＤ４０の点滅パターンを、連続点灯時間と連続消灯時間により特定したが、この連続点灯時間中、ＬＥＤ４０は、ＰＷＭ制御により高周波点滅してもよい。この点滅周波数は、ユーザには点滅していることが認識されないように設定される一方で、撮像装置２には点灯していることが撮像可能なように設定される。そのため点滅周波数は、撮像装置２のシャッタ速度などを加味して定められ、すなわち連続点灯時間中のＬＥＤ４０の点滅が、撮像装置２における露光時間中に点灯として認識されるように定められる必要がある。各コントローラ２０が、連続点灯時間中にそれぞれのＬＥＤ４０のＰＷＭ制御を実行することで、それぞれのＬＥＤ４０の発光輝度を等しくすることも可能となる。たとえば、図６（ａ）に示す点滅パターンにおける連続点灯時間３Ｔと、図６（ｂ）に示す点滅パターンにおける連続点灯時間５Ｔの発光輝度を等しくするためには、図６（ｂ）の連続点灯時間５Ｔにおけるデューティ比を、図６（ａ）の連続点灯時間３Ｔにおけるデューティ比の３／５倍に設定すればよい。共通の周期における各ＬＥＤ４０のデューティ比を等しくするように、連続点灯時間におけるデューティ比をそれぞれ設定することで、各ＬＥＤ４０の発光輝度を等しくできる。
【００８６】
本実施例では、コントローラ２０に搭載する発光素子としてＬＥＤ４０を示したが、たとえば赤外線を送信する素子を採用してもよい。また、各点滅パターンの周期を同一としたが、周期は異なっていてもよい。なお周期が異なる場合であっても、それぞれの周期におけるデューティ比を等しく設定することで、各ＬＥＤ４０の発光輝度を等しくできる。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施例にかかるゲームシステムの使用環境を示す図である。
【図２】コントローラの外観構成を示す図である。
【図３】コントローラの背面側の外観構成を示す図である。
【図４】コントローラの内部構成を示す図である。
【図５】メイン制御部が保持する対応テーブルの一例を示す図である。
【図６】点滅パターンの例を示す図である。
【図７】ゲーム装置の構成を示す図である。
【図８】画像処理部の構成を示す図である。
【図９】点灯ＬＥＤ画像の抽出処理の手順を示すフローチャートである。
【図１０】各点滅パターンにおける連続点灯時間と連続消灯時間を示す図である。
【図１１】ＬＥＤ画像抽出部により連続するフレーム画像中で撮像される点灯ＬＥＤ画像について説明するための説明図である。
【符号の説明】
【００８８】
１・・・ゲームシステム、２・・・撮像装置、３・・・画像表示装置、４・・・音声出力装置、１０・・・ゲーム装置、２０・・・コントローラ、４０・・・ＬＥＤ、５０・・・メイン制御部、５２・・・入力受付部、５４・・・ＰＷＭ制御部、５６・・・駆動部、５８・・・無線通信モジュール、６０・・・処理部、１００・・・入力部、１０２・・・画像処理部、１０４・・・位置推定部、１０８・・・無線通信モジュール、１１０・・・アプリケーション処理部、１１２・・・出力部、１３０・・・フレーム画像取得部、１３２・・・２値化画像生成部、１３４・・・判定部、１３６・・・ＬＥＤ画像抽出部。
【図１】
0004443531.tif 000004
【図２】
0004443531.tif 000005
【図３】
0004443531.tif 000006
【図４】
0004443531.tif 000007
【図５】
0004443531.tif 000008
【図６】
0004443531.tif 000009
【図７】
0004443531.tif 000010
【図８】
0004443531.tif 000011
【図９】
0004443531.tif 000012
【図１０】
0004443531.tif 000013
【図１１】
0004443531.tif 000014