説明

発光体識別装置、発光体識別方法、および発光体識別プログラム

【課題】発光体の発光を入力情報として、発光体の発光色に基づき簡易な手順で入力情報を識別する。
【解決手段】発光体識別装置100は、IRカメラ150およびカラーカメラ152で同一の対象物を同時に撮像してそれぞれ得たIR画像およびカラー画像を取得する画像取得部112と、IR画像から、輝度値が所定の閾値以上となる第1の画素を発光体の存在位置として検出して、当該存在位置を示す第1の位置情報を取得する位置情報取得部114と、位置情報取得部114が取得した第1の位置情報に基づき、カラー画像から第1の位置に対応する位置の第2の画素を含む発光体の発光色判定領域を選択する発光色判定領域選択部116と、カラー画像の発光色判定領域に含まれる画素の色成分情報に基づき、発光体の発光色を判定する発光色判定部118と、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、発光体識別装置、発光体識別方法、および発光体識別プログラムに関する。
【背景技術】
【0002】
近年、ユーザに模擬的なペンを用いて電子黒板等への描画を行わせ、ペンの軌跡を取得してプロジェクタ等で画像データを表示する技術が開発されている。
【0003】
たとえば、特許文献1(特開2002−079792号公報)には、弾性波振動を伝達する振動伝達板と、該振動伝達板に弾性波振動を入力する振動入力手段(振動入力ペン)と、振動伝達板の外縁に設けた、弾性波振動を検出する振動検出手段と、振動入力手段からの弾性波振動が振動検出手段まで到達する時間に応じて、振動入力手段の振動伝達板上の座標位置を算出する座標算出手段とを備えた電子黒板装置が記載されている。ここで、振動入力ペンは、インクで描画することができるマーカーペンとしても機能する構成とすることが記載されている。
【0004】
また、特許文献2(特開2005−135081号公報)には、撮像素子による画像取り込みによってポインタの座標を取得するスクリーンに用いるライトペンであって、ポインタの先端に設けた発光手段と、前記ポインタの先端が前記スクリーンに押圧されていることを検知する押圧検知手段と、前記発光手段を制御する発光制御手段とを備えるライトペンが記載されている。これによりライトペンの動作を受光素子によって知ることができ、プロジェクタに対して画像データを生成することができるとされている。
【0005】
また、ゲームを行う際に、ユーザが手に持って操作するコントローラが用いられている。たとえば特許文献3(特開2007−313354号公報)には、片手でも安定して操作できることを目的としたコントローラ(ゲーム用操作装置)の構成が記載されている。ここでは、ゲーム機とコントローラとが、Bluetoothによる無線通信を行う例が記載されている。当該文献に記載の技術においては、コントローラとゲーム機とが初期設定等により互いのBluetoothアドレスを予め記憶した構成とすることにより、ゲーム機に対して複数のコントローラを接続可能としている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−079792号公報
【特許文献2】特開2005−135081号公報
【特許文献3】特開2007−313354号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、従来、ペンやコントローラ等の入力手段を複数のユーザがそれぞれ用いる場合に、簡易な手順でそれら複数の入力手段を区別する方法がなかった。たとえば特許文献3に記載されたように、Bluetoothによる無線通信を用いて予めBluetoothアドレスを記憶しておく構成とすることにより、各入力手段を区別することが可能となる。しかし、このような方法では、入力手段側にも無線通信機能を持たせる必要があり、構成が複雑となる。
【0008】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、発光体の発光を入力情報として、発光体の発光色に基づき簡易な手順で入力情報を識別する技術を提供することにある。
【課題を解決するための手段】
【0009】
本発明によれば、
IRカメラおよびカラーカメラで同一の対象物を同時に撮像してそれぞれ得たIR画像およびカラー画像を取得する画像取得部と、
前記IR画像から、輝度値が所定の閾値以上となる第1の画素を発光体の存在位置として検出して、当該存在位置を示す第1の位置情報を取得する位置情報取得部と、
前記位置情報取得部が取得した前記第1の位置情報に基づき、前記カラー画像から前記第1の位置に対応する位置の第2の画素を含む発光体の発光色判定領域を選択する発光色判定領域選択部と、
前記発光色判定領域選択部が選択した前記カラー画像の前記発光色判定領域に含まれる画素の色成分情報に基づき、前記発光体の発光色を判定する発光色判定部と、
を含む発光体識別装置が提供される。
【0010】
本発明によれば、
IRカメラおよびカラーカメラで同一の対象物を同時に撮像してそれぞれ得たIR画像およびカラー画像を取得する工程と、
前記IR画像から、輝度値が所定の閾値以上となる第1の画素を発光体の存在位置として検出して、当該存在位置を示す第1の位置情報を取得する工程と、
前記第1の位置情報を取得する工程で取得された前記第1の位置情報に基づき、前記カラー画像から前記第1の位置に対応する位置の第2の画素を含む発光体の発光色判定領域を選択する工程と、
前記発光色判定領域を選択する工程で選択された前記カラー画像の前記発光色判定領域に含まれる画素の色成分情報に基づき、前記発光体の発光色を判定する工程と、
を含む発光体識別方法が提供される。
【0011】
発光体を含む風景をIRカメラで撮像して得たIR画像は近赤外線だけを取得しているため、照明等の環境光の影響を低減することができ、カラーカメラで得られたカラー画像に比べてノイズを低減することができ、画素の輝度値に基づき、発光体とそれ以外の部分との違いを判断しやすい。本発明の発光体識別装置および発光体識別方法によると、まずIR画像から発光体の存在位置を検出するので、発光体の検出を精度よく迅速に行うことができる。その後、カラー画像の対応する位置の色成分情報に基づき発光色判定処理を行うので、発光体の発光色判定も精度よく簡易に行うことができる。このような構成によれば、たとえば発光色を異ならせた複数の発光体を準備した場合、各発光体の発光色判定を行い、各発光体を発光色に基づき識別する処理を簡易に行うことができる。そのため、発光体を入力デバイスとして用いた際に、複数の入力デバイスを簡易に識別することができる。
【0012】
本発明の発光体識別装置において、前記発光色判定部は、前記発光体の発光色と前記IR画像の第1の位置情報または前記カラー画像の前記第2の画素の位置を示す第2の位置情報とを対応付けて出力することができる。このようにすれば、発光体を識別する発光色が発光体により特定される第1の位置情報または第2の位置情報とともに得られるので、たとえばディスプレイの対応する位置に識別された発光体による出力を行うようにすることができる。
【0013】
また、本発明の発光体識別装置は、前記発光色判定部が出力した前記発光体の発光色および前記第1の位置情報または前記第2の位置情報に基づき、当該発光色で識別される入力デバイスから当該第1の位置情報または当該第2の位置情報への入力があったことを受け付ける入力受付部をさらに含むことができる。このようにすれば、入力デバイスによる入力情報を発光体の位置情報に基づき受け付けるとともに、カラー画像の色成分情報から判定された発光色に応じて入力デバイスを識別することができる。そのため、発光色の異なる発光体をそれぞれ含む複数の入力デバイスを用いて複数のユーザにより入力される入力情報をそれぞれ識別することができる。
【0014】
本発明の発光体識別装置において、
前記発光色判定領域選択部は、選択した前記発光色判定領域に含まれる画素の輝度値Yiが所定の必要輝度値Yd以上か否かを判定し、前記輝度値Yiが前記必要輝度値Ydより低い場合に当該発光色判定領域をノイズであると判定するとともに、前記輝度値Yiが前記必要輝度値Yd以上の場合に当該発光色判定領域をノイズでないと判定することができ、
前記発光色判定部は、前記発光色判定領域選択部により前記発光色判定領域がノイズでないと判定された場合に、当該カラー画像の前記発光色判定領域に含まれる画素の色成分情報に基づき、前記発光体の発光色を判定することができ、
前記必要輝度値Ydは、前記カラー画像の中心部と前記発光色判定領域との距離Diに応じて当該距離Diが大きい方が値が低くなるように設定することができる。
【0015】
発光体がカメラのレンズの中心軸の延長上付近にあり、カメラレンズへの入射角が小さい場合には輝度値が比較的大きくなるが、発光体がカメラのレンズの中心軸の延長上から離れた位置にあり、カメラレンズへの入射角が大きい場合には輝度値が小さくなってしまう。以上の構成によれば、カラー画像の発光色判定領域のノイズ判定処理において、判定に用いる必要輝度値Ydは、カラー画像の中心部と発光色判定領域との距離Diに応じて距離Diが大きい方、すなわちカメラレンズへの入射角が大きい場合には値が低くなるように設定されるので、発光体が検出される場所における輝度値の出方の特性も考慮して精度よくノイズを除去することができる。
【0016】
本発明によれば、上記発光体識別装置と、発光色が異なる複数の発光体と、前記発光体を撮像するIRカメラと、カラーカメラと、を含む発光体識別システムが提供される。
【0017】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラム等の間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0018】
本発明によれば、発光体の発光を入力情報として、発光体の発光色に基づき簡易な手順で入力情報を識別することができる。
【図面の簡単な説明】
【0019】
【図1】本発明の実施の形態における発光体識別システムの構成の一例を模式的に示す図である。
【図2】本発明の実施の形態における入力デバイスの構成の一例を模式的に示す図である。
【図3】本発明の実施の形態における入力デバイスにより描かれた軌跡が発光体識別装置から出力されて描画ボードに表示された状態を示す図である。
【図4】本発明の実施の形態における発光体識別装置の構成の一例を示すブロック図である。
【図5】対応記憶部の構成の一例を示す図である。
【図6】本発明の実施の形態における発光体識別装置の処理手順を示すフローチャートである。
【図7】本発明の実施の形態における暗化撮像条件決定部による処理を説明するための模式図である。
【図8】本発明の実施の形態における暗化撮像条件決定部による処理を説明するための模式図である。
【図9】図6のステップS18の処理手順を詳細に示すフローチャートである。
【図10】IR画像およびカラー画像への処理の一例を模式的に示す図である。
【図11】IR画像およびカラー画像への処理の他の例を模式的に示す図である。
【図12】図6のステップS20の処理手順を詳細に示すフローチャートである。
【図13】図12のステップS130の処理手順の一例を詳細に示すフローチャートである。
【図14】図12のステップS134の処理手順の一例を詳細に示すフローチャートである。
【図15】図12のステップS136の処理手順の一例を詳細に示すフローチャートである。
【図16】設定値記憶部の構成の一例を示す図である。
【図18】前処理時にプロジェクタ用投影フィルムに投影され、描画ボードの描画面側にいるユーザに表示される画面の一例を示す図である。
【図17】シャッタスピードの設定手順において、設定者であるユーザに提示される画面の一例を示す図である。
【図19】図6に示したフローチャートのステップS16からステップS20の処理の変形例を示すフローチャートである。
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【0021】
まず、本実施の形態における発光体識別システム10の構成を簡単に説明する。図1は、本実施の形態における発光体識別システム10の構成の一例を模式的に示す図である。
発光体識別システム10は、支持台162により支持された描画ボード160、撮像手段148、プロジェクタ154、複数の入力デバイス170および発光体識別装置100を含む。図1(a)は、ユーザが入力デバイス170により描画を行う描画面から見た描画ボード160の平面図、図1(b)は、描画ボード160の側面図である。
【0022】
本実施の形態において、撮像手段148は、IRカメラ150(赤外線カメラ)およびカラーカメラ152を含む構成とすることができる。ここで、IRカメラ150およびカラーカメラ152は、それぞれ動画を取得する。IRカメラ150は、対象物を赤外線で撮像してIR画像を得る。カラーカメラ152は、対象物を可視光で撮像してカラー画像を得る。本実施の形態において、IRカメラ150で撮像したIR画像は、発光体の位置情報(座標)を検出するために用いられる。本実施の形態において、カラーカメラ152で撮像したカラー画像は、発光体の発光色を判定するために用いられる。
【0023】
また、IRカメラ150とカラーカメラ152とは、同一の対象物を略同時に撮像可能に配置される。つまり、IRカメラ150とカラーカメラ152とが略同じ方向を向くように配置しておく。たとえば、IRカメラ150とカラーカメラ152とを上下に並べたり、IRカメラ150とカラーカメラ152とを左右に並べて配することができる。
【0024】
また、本実施の形態において、IRカメラ150およびカラーカメラ152は、描画ボード160から距離を隔てて設置され、それぞれその撮像可能な領域内に描画ボード160が収まるとともに、領域内のほぼ全体に描画ボード160が撮像されるように配置することができる。IRカメラ150およびカラーカメラ152は、たとえば描画ボード160の中心部と重なる位置に配置することができる。これにより、IRカメラ150またはカラーカメラ152のレンズの中心軸の延長上の対象物がIRカメラ150またはカラーカメラ152により取得される画像の中心部に撮像されるようになる。
【0025】
IRカメラ150は、たとえば光学フィルタにより可視光をカットすることにより構成することができる。IRカメラ150は、たとえば920nm以下の可視光をカットした構成とすることができる。カラーカメラ152は、たとえば光学フィルタにより近赤外線および赤外線をカットすることにより構成することができる。ただし、IRカメラ150およびカラーカメラ152は、入力デバイス170の発光体172として用いるLED(Light Emitting Diode)等の発光体を検出可能に構成される。
【0026】
本実施の形態において、IRカメラ150およびカラーカメラ152は、たとえば同じ構成のカメラを用いて、カットする光の波長がそれぞれ異なる光学フィルタを設けることにより準備することもできる。一例として、IRカメラ150およびカラーカメラ152は、それぞれ640×480ピクセルのVGA(Video Graphics Array)や1280×960ピクセルのXGA等を用いることができる。
【0027】
本実施の形態において、描画ボード160は、たとえば透明アクリル板により構成することができる。また、描画ボード160の描画面と反対側の面には、プロジェクタ154から投影するデータを表示するためのプロジェクタ用投影フィルム164を設けた構成とすることができる。発光体識別装置100から出力されるデータは、プロジェクタ154からプロジェクタ用投影フィルム164に投影されて描画ボード160の描画面側のユーザに表示される。また、本実施の形態において、ユーザは、プロジェクタ用投影フィルム164に投影される画面を見て、入力デバイス170を用いて各種入力操作を行う。
【0028】
図2は、入力デバイス170の構成の一例を模式的に示す図である。入力デバイス170は、先端に発光体172が取り付けられた構成とすることができる。また、入力デバイス170には、発光体172の発光のオンオフを制御するスイッチ174が設けられている。ここで、スイッチ174は、たとえばユーザがスイッチ174を押している間だけ発光体172が発光する構成とすることができる。これにより、ユーザが入力デバイス170のスイッチ174を瞬間的に押すことにより発光体172を瞬間的に発光させることができ、クリックボタンを有するマウス等と同様に用いることができる。また、スイッチ174は、発光体172を連続的に発光させておくモードに切り替え可能に構成することもできる。これにより、入力デバイス170をたとえばユーザが文字や絵を描いたりするためのペンとしても簡易に用いることができるようになる。本実施の形態において、発光体172は、LEDにより構成することができる。なお、入力デバイス170の構成はこれに限られず、たとえばスイッチ174は、発光体172と本体との間に設けられ、入力デバイス170の発光体172を描画ボード160に押しつけることにより、スイッチ174がオンとされる構成として、発光体172が発光するようにすることもできる。このようにすれば、ユーザが入力デバイス170の発光体172を描画ボード160に押しつけるだけで発光体172を発光させることができ、ユーザが入力デバイス170で描画する動作をスムーズにすることができる。
【0029】
図1に戻り、本実施の形態における発光体識別システム10では、発光色の異なる発光体をそれぞれ含む複数の入力デバイス170が用いられる構成とすることができる。たとえば、本実施の形態において、発光体識別システム10は、入力デバイス170として、発光体172が白色LEDである白色入力デバイス170a、発光体172が青色LEDである青色入力デバイス170b、発光体172が緑色LEDである緑色入力デバイス170c、および発光体172が赤色LEDである赤色入力デバイス170dを含む構成とすることができる。
【0030】
本実施の形態において、発光体識別装置100は、各発光体172の発光色を判定し、発光色に応じて入力デバイス170を識別する。これにより、発光体識別装置100は、複数のユーザがそれぞれ入力デバイス170を用いて入力操作を行う場合でも、発光色に基づき入力デバイス170を識別することができるので、各入力デバイス170による入力操作を区別して把握することができる。
【0031】
このような状態で、ユーザは、入力デバイス170の発光体172を描画ボード160に押し当てて、発光体172を発光させたまま文字や図形等を描画したり、発光体172を点滅させたりする。発光体識別装置100は、発光体172を撮像手段148で撮像して得られた画像から輝度値に基づき発光体172の存在およびその位置情報を入力操作として取得する。発光体識別装置100は、検出した発光体172の入力操作に基づき制御されるデータをプロジェクタ154に出力する。プロジェクタ154から出力されたデータは、プロジェクタ用投影フィルム164に投影され、描画ボード160に表示される。
【0032】
図3は、入力デバイス170により描かれた軌跡166および軌跡168が発光体識別装置100から出力されて描画ボード160に表示された状態を示す図である。
ここで、たとえば軌跡166は白色入力デバイス170aにより描かれた軌跡、軌跡168は青色入力デバイス170bにより描かれた軌跡であるとする。本実施の形態において、発光体識別装置100は、これらの軌跡を白色入力デバイス170aの発光体172の発光色と青色入力デバイス170bの発光体172の発光色とに基づき識別して、それぞれ区別して出力するようにすることができる。
【0033】
図4は、本実施の形態における発光体識別装置100の構成の一例を示すブロック図である。発光体識別装置100は、たとえばパーソナルコンピュータ等により構成することができる。
発光体識別装置100は、IR画像入力部102、カラー画像入力部104、データ出力部106、画像取得部112、位置情報取得部114、発光色判定領域選択部116、発光色判定部118、暗化撮像条件決定部120、入力受付部122、プログラム実行処理部124、設定値記憶部130、発光色判定情報記憶部132、対応記憶部134、および画像記憶部136を含む。
【0034】
IR画像入力部102は、IRカメラ150とUSBやシリアルポート等の接続インタフェースを介して接続されており、IRカメラ150が撮像したIR画像を入力する。カラー画像入力部104は、カラーカメラ152とUSBやシリアルポート等の接続インタフェースを介して接続されており、カラーカメラ152が撮像したカラー画像を入力する。
【0035】
データ出力部106は、発光体識別装置100の各種データを外部のディスプレイに出力する。本実施の形態において、データ出力部106は、プロジェクタ154とアナログRGBコネクタ(ディスプレイポート)等の接続インタフェースを介して接続されており、プロジェクタ154にデータを出力する。なお、IRカメラ150とIR画像入力部102との間、カラーカメラ152とカラー画像入力部104との間、およびデータ出力部106とプロジェクタ154との間の画像の送受信の接続インタフェースはとくに限定されず、他の例において、たとえばそれぞれ無線通信等により行う構成とすることもできる。
【0036】
画像取得部112は、IRカメラ150およびカラーカメラ152で同一の対象物を略同時に撮像して得たIR画像およびカラー画像を取得する。画像取得部112は、IR画像入力部102を介してIRカメラ150からIR画像を、カラー画像入力部104を介してカラーカメラ152からカラー画像を取得する。画像取得部112が取得したIR画像およびカラー画像は、画像記憶部136に記憶される。
【0037】
位置情報取得部114は、画像取得部112が取得したIR画像から、発光体172の存在位置を検出する。発光色判定領域選択部116は、位置情報取得部114がIR画像から検出した入力デバイス170の存在位置の位置情報に基づき、そのIR画像と略同時に取得されたカラー画像の対応する位置を含む発光色判定領域を選択する。発光色判定部118は、発光色判定領域選択部116により選択されたカラー画像の発光色判定領域の色成分情報に基づき、発光体172の発光色を判定する。暗化撮像条件決定部120は、IRカメラ150およびカラーカメラ152の撮像条件を決定する。
【0038】
入力受付部122は、発光色判定部118が判定した発光体172の発光色およびその位置情報に基づき、当該発光色で識別される入力デバイス170から当該位置情報への入力操作があったことを受け付ける。
【0039】
対応記憶部134は、入力デバイス170の発光体172の発光色と、入力デバイスの識別情報との対応付けを記憶する。図5は、対応記憶部134の構成の一例を示す図である。ここでは、発光体172の発光色にそれぞれ入力デバイスIDが対応付けられている。たとえば、発光色「白色」が入力デバイスID「1」、発光色「青色」が入力デバイスID「2」、発光色「緑色」が入力デバイスID「3」、発光色「赤色」が入力デバイスID「4」となっている。入力受付部122は、対応記憶部134にアクセスして、発光色判定部118が判定した発光色に対応する入力デバイスIDを取得する。入力受付部122は、識別した結果に基づき、対応する位置に識別した入力デバイス170のポインタ等が表示されるような表示データをデータ出力部106から出力するようにすることもできる。
【0040】
プログラム実行処理部124は、入力受付部122が受け付けた入力操作に基づき、プログラムを実行する。
【0041】
設定値記憶部130は、位置情報取得部114、発光色判定領域選択部116、および暗化撮像条件決定部120等が画像の輝度値を判定する際や、その他の各種判定を行う際に参照する基準値等の設定値や各種設定を記憶する。発光色判定情報記憶部132は、発光色判定部118が発光体の発光色を判定する際に参照する基準値等の設定値や各種設定を記憶する。
【0042】
次に、本実施の形態における発光体識別装置100の処理手順を詳細に説明する。図6は、本実施の形態における発光体識別装置100の処理手順を示すフローチャートである。
【0043】
(前処理:暗化撮像条件決定)
まず、前処理として、発光体172の発光による入力を受け付ける際に発光体識別装置100を実際に適用する環境(以下適用環境という。)に応じて、IRカメラ150およびカラーカメラ152が撮像する画像に環境光が映り込まないように画像を暗化する暗化撮像条件を決定する(S4)。
【0044】
発光体172の発光による入力を受け付ける際に、IRカメラ150およびカラーカメラ152が撮像する画像中に目的の発光体172だけでなく、照明やプロジェクタ154からプロジェクタ用投影フィルム164に投影されるデータの光等の環境光が映り込むと、環境光を発光体172の発光として誤検出する可能性が高くなってしまう。そこで、本実施の形態において、環境光が存在している適用環境において発光体172の発光がないときにIRカメラ150およびカラーカメラ152で撮像した画像の画素値が全体にわたって、一般的な画像処理の色判定において黒と判定される値となるように画像を暗化する暗化撮像条件を予め決定しておく。このように決定した暗化撮像条件で発光体172を発光させてIRカメラ150およびカラーカメラ152で撮像した画像では発光体172の存在位置以外の画素値は黒となるので、発光体172の検出を精度よく行うようにすることができる。暗化撮像条件は、たとえば、IRカメラ150やカラーカメラ152のシャッタスピード、絞り量、ゲイン調整量、または露光量等とすることができる。ただし、発光体172の発光強度は環境光の発光強度より充分強く、IRカメラ150およびカラーカメラ152で撮像した画像に環境光が映り込まない暗化撮像条件で撮像した画像においてもある程度の輝度値やRGB値等の画素値を有するものとする。
【0045】
以下、暗化撮像条件としてIRカメラ150およびカラーカメラ152のシャッタスピードを制御する構成を例として説明する。
まず、カラーカメラ152のシャッタスピードの決定手順を説明する。
環境光が存在している適用環境に発光体識別システム10を設置し、目的の発光体172の発光がない状態をカラーカメラ152のシャッタスピードを適宜変更しながら順次撮像する。ここで、シャッタスピードは、スピードが速くなる方向に適宜変更していくようにすることができる。画像取得部112は、カラーカメラ152により撮像されたカラー画像である第1の前処理画像をカラー画像入力部104を介して取得する。暗化撮像条件決定部120は、画像取得部112が取得した第1の前処理画像をその画像が撮像されたときのカラーカメラ152のシャッタスピードに対応付けて取得する。シャッタスピード制御部120は、第1の前処理画像に含まれる複数の位置の画素値をそれぞれ当該画素値が黒色か否かを判定するための所定値sと比較する。所定値sは、予め設定値記憶部130に記憶しておくことができ、暗化撮像条件決定部120は、設定値記憶部130にアクセスして複数の位置の画素値を所定値sと比較する。所定値sとは、環境光の色情報がほとんどない状態、たとえば一般的な画像処理の色判定において黒と判定される値とすることができる。画素値はRGB値とすることができる。この場合、所定値sは、RGB値のすべてがそれぞれほぼゼロとなる値、たとえば20以上30以下(RGB値それぞれが0から255の値をとる場合)程度とすることができる。暗化撮像条件決定部120は、複数の位置の画素値すべてが所定値s以下となる第1のシャッタスピードをこの適用環境におけるカラーカメラ152の暗化撮像条件として決定する。ここで、第1の前処理画像に含まれる複数の位置は、たとえば中心部とその周囲の外周部を含む。
【0046】
目的の発光体172の発光がない状態をカラーカメラ152のシャッタスピードをたとえば1/125秒として撮像して得られた第1の前処理画像に含まれる複数の位置の画素値のいずれかが所定値s以下でない場合、カラーカメラ152のシャッタスピードをさらに速くし、たとえば1/250秒とする。次いで、カラーカメラ152のシャッタスピードを1/250秒として撮像して得られた第1の前処理画像に含まれる複数の位置の画素値すべてが所定値s以下となるか否かを判定する。このようにして、複数の位置の画素値すべてが所定値s以下となるシャッタスピードを検出する。シャッタスピードは、連続的に変更してもよいが、たとえば1/60秒、1/125秒、1/250秒、1/500秒等、カメラのシャッタスピードとして一般的に多く用いられているシャッタスピードに段階的に変更するようにすることもできる。
【0047】
図7は、画像取得部112が取得した描画ボード160のカラー画像である第1の前処理画像180を模式的に示す図である。ここでは、第1の前処理画像180のほぼ全体に描画ボード160の画像182が表示されている。暗化撮像条件決定部120は、たとえば画像の中心部eと、その周囲の外周部の位置aから位置dおよび位置fから位置iの計9箇所のそれぞれのRGB値を取得することができる。また、複数の位置は、たとえば画像182を均等に等分した各領域の中心位置とすることもできる。たとえば、複数の位置は、画像182を縦×横を3×3の9等分にした各領域の中心位置としてもよい。各位置のRGB値は、順次取得するようにしてもよいが、略リアルタイムで取得するようにすることもできる。暗化撮像条件決定部120は、位置aから位置iのすべてでそれぞれ所定値s以下となる第1のシャッタスピードを検出し、当該第1のシャッタスピードを暗化撮像条件として決定する。
【0048】
次に、IRカメラ150のシャッタスピードの決定手順を説明する。
この手順も、基本的にはカラーカメラ152のシャッタスピードの決定手順と同様とすることができる。環境光が存在している適用環境に発光体識別システム10を設置し、目的の発光体172の発光がない状態をIRカメラ150のシャッタスピードを適宜変更しながら順次撮像する。画像取得部112は、IRカメラ150により撮像されたIR画像である第2の前処理画像をIR画像入力部102を介して取得する。暗化撮像条件決定部120は、画像取得部112が取得した第2の前処理画像をその画像が撮像されたときのIRカメラ150のシャッタスピードに対応付けて取得する。シャッタスピード制御部120は、第2の前処理画像に含まれる複数の位置の画素値をそれぞれ当該画素値が黒色か否かを判定するための所定値sと比較する。所定値sは、予め設定値記憶部130に記憶しておくことができ、暗化撮像条件決定部120は、設定値記憶部130にアクセスして複数の位置の画素値を所定値sと比較する。所定値sとは、環境光の色情報がほとんどない状態、たとえば一般的な画像処理の色判定において黒と判定される値とすることができる。画素値はRGB値とすることができる。この場合、所定値sは、RGB値のすべてがそれぞれほぼゼロとなる値、たとえば25以上40以下(RGB値それぞれが0から255の値をとる場合)程度とすることができる。暗化撮像条件決定部120は、複数の位置の画素値すべてが所定値s以下となる第2のシャッタスピードをこの適用環境におけるIRカメラ150の暗化撮像条件として決定する。ここで、第2の前処理画像に含まれる複数の位置は、たとえば中心部とその周囲の外周部を含む。
なお、所定値sおよび所定値sは、RGB値それぞれに対して一定ではなく、R値、G値、およびB値それぞれに対して異なる値とすることもできる。また、これらの所定値sおよび所定値sは、判定すべき位置が画像の中心部か外周部によって、異なる値とすることもできる。たとえば、後述するように、同じ光源を撮像した場合、画像の中心部において画像の周辺部よりも輝度が大きくなる。そのため、画像の周辺部において所定値sおよび所定値sの値を中心部よりも厳しく、すなわち小さい値に設定することもできる。
以上の処理において、IRカメラ150およびカラーカメラ152のシャッタスピードは、ユーザが手動で制御する構成とすることもでき、また暗化撮像条件決定部120により自動制御される構成とすることもできる。
【0049】
(前処理:閾値、所定値決定)
図6に戻り、IRカメラ150およびカラーカメラ152の暗化撮像条件であるシャッタスピードが決定された後、決定されたシャッタスピードに応じて以下で説明する各種判定で用いる閾値や所定値を決定し、設定値記憶部130や発光色判定情報記憶部132に記憶する(S6)。各閾値や所定値の具体例や決定方法は後述する。
以上で前処理が終了する。
【0050】
(暗化撮像条件設定)
次いで、発光体172の発光による入力を受け付ける処理の開始に先立ち、IRカメラ150およびカラーカメラ152をステップS4で決定した暗化撮像条件に設定する(S8)。具体的には、IRカメラ150のシャッタスピードを第1のシャッタスピードに、カラーカメラ152のシャッタスピードを第2のシャッタスピードに設定する。このIRカメラ150およびカラーカメラ152のシャッタスピードも、ユーザが手動で制御する構成とすることもでき、また暗化撮像条件決定部120により自動制御される構成とすることもできる。
【0051】
(IR画像およびカラー画像取得)
以上の設定処理が終了した後、発光体172の発光による入力の受け付ける処理を開始する(S10)。画像取得部112は、IRカメラ150およびカラーカメラ152で同一の対象物を略同時に撮像して得たIR画像およびカラー画像を取得する(S12)。画像取得部112は、略同時に得られたIR画像およびカラー画像をそれぞれ、フレーム数、取得時刻、撮像時刻、またはタイムコード等の対応関係を示す情報に対応付けて取得することができる。なお、IRカメラ150およびカラーカメラ152は、同じフレームレートで動画を取得する構成とすることができる。略同時とは、ユーザが入力デバイス170により描画を行う際の発光体172の移動をIRカメラ150およびカラーカメラ152でそれぞれ撮像した場合に、発光体172の位置が互いに対応する位置に存在するよう認識し得る状態とすることができる。たとえば、画像取得部112は、IR画像入力部102およびカラー画像入力部104から略同時に取得したIR画像およびカラー画像に同じフレーム数を順次付与してもよい。また、画像取得部112は、IR画像入力部102およびカラー画像入力部104から取得したIR画像およびカラー画像に、それぞれの画像を取得した取得時刻を付与してもよい。また、他の例として、発光体識別システム10は、たとえば同期発生器を有する構成とすることができ、同期発生器によりIRカメラ150およびカラーカメラ152がそれぞれ撮像した画像に撮像時刻やタイムコード等を付与するようにすることもできる。以下では、画像取得部112がIR画像入力部102およびカラー画像入力部104から略同時に取得したIR画像およびカラー画像に同じフレーム数を順次付与する場合を例として説明する。画像取得部112は、IR画像およびカラー画像をそれぞれ対応関係を示す情報に対応付けて画像記憶部136に記憶する。
【0052】
(IR画像から発光体の存在位置検出)
つづいて、位置情報取得部114は、画像取得部112が取得して画像記憶部136に記憶されたIR画像から、輝度値が所定の閾値t以上となる第1の画素を発光体として検出して、当該第1の画素の位置を示す第1の位置情報を取得する(S14)。具体的には、第1の位置情報として第1の画素の座標(ピクセル座標)を取得する。IR画像の輝度値は、各画素のRGB値に基づき、たとえば「輝度値=0.298912×R+0.586611×G+0.114478×B(R、B、GはそれぞれR値、B値、G値)」から算出することができる。閾値tは、たとえば60以上100以下程度の値とすることができる。閾値tは、図6のステップS6において決定することができ、設定値記憶部130に記憶しておくことができる。
【0053】
図10は、IR画像およびカラー画像への処理の一例を模式的に示す図である。以下、図10も適宜参照して説明する。
図10(a)に示すように、IR画像200の横方向の座標をx座標、縦方向の座標をy座標とする。位置情報取得部114は、IR画像200の全画素を順次走査して各画素の輝度値が閾値t以上か否かを順次判断する。ここで、輝度値が閾値t以上となる第1の画素があると、当該第1の画素を発光体172の存在位置として検出する。そして、その第1の画素の位置を示す第1の位置情報としてその座標(xi,yi)を取得する。たとえばIRカメラ150が640×480ピクセルのVGAで構成されており、IR画像の解像度が640×480ピクセルの場合、xiは0以上640未満の実数、yiは0以上480未満の実数となる。次いで、位置情報取得部114は、第1の位置情報およびそのIR画像のフレーム数を発光色判定領域選択部116に通知する。これにより、発光色判定領域選択部116において後述する発光色判定領域の選択処理が行われる。位置情報取得部114は、この処理を、画像取得部112が取得したIR画像200の全画素に対して順次行っていく。
【0054】
(カラー画像から発光色判定領域選択)
図6に戻り、発光色判定領域選択部116は、位置情報取得部114からIR画像の第1の位置情報およびそのIR画像のフレーム数が通知されると、画像記憶部136にアクセスして対応するフレーム数のカラー画像から第1の位置に対応する位置の第2の画素を含む発光体の発光色判定領域を選択する(S16)。
【0055】
図10(b)に示すように、カラー画像202の横方向の座標をm座標、縦方向の座標をn座標とする。発光色判定領域選択部116は、位置情報取得部114が取得したIR画像の第1の位置情報(xi,yi)に基づき、カラー画像から第1の位置に対応する位置の第2の画素を含む発光体の発光色判定領域204を選択する。ここで、IR画像の第1の画素の座標(xi,yi)に対応するカラー画像の第2の画素の座標(ピクセル座標)を(mi,ni)とする。
【0056】
ここで、たとえばステップS6において、IRカメラ150により撮像されるIR画像の解像度およびカラーカメラ152により撮像されるカラー画像の解像度も予め設定値記憶部130に記憶しておくことができる。発光色判定領域選択部116は、設定値記憶部130に記憶されたIR画像の解像度とカラー画像の解像度との比に基づき、IR画像の第1の画素に対応するカラー画像の第2の画素の座標を決定することができる。たとえばカラーカメラ152が640×480ピクセルのVGAで構成されており、IR画像の解像度が640×480ピクセルの場合、miは0以上640未満の実数、niは0以上480未満の実数となる。また、画像取得部112が取得するIR画素の解像度とカラー画像の解像度とが等しい場合、mi=xi、ni=yiとなる。
【0057】
発光色判定領域選択部116が選択する発光色判定領域は、図10(b)に示したように、位置情報取得部114が取得したIR画像の第1の画素に対応する位置の第2の画素のみを含む構成とすることもできるが、第2の画素を含むさらに多くの画素を含む構成とすることもできる。たとえば発光色判定領域選択部116は、発光色判定領域として、第2の画素とその周囲の所定数の画素とを含む広い範囲の画素を選択することができる。
【0058】
図11は、IR画像200およびカラー画像202への処理の他の例を模式的に示す図である。図11(b)に示すように、発光色判定領域選択部116は、第2の画素とその周囲の画素を含む領域を発光色判定領域204として選択することもできる。どのような範囲を発光色判定領域204として選択するかの設定範囲は、予め設定値記憶部130に記憶しておくことができる。発光色判定領域選択部116は、設定値記憶部130に記憶された設定範囲に基づき、発光色判定領域204を選択することができる。
【0059】
なお、発光色判定領域選択部116は、IRカメラ150が取得するIR画像とカラーカメラ152が取得するカラー画像にずれが生じる場合は、そのずれ部分を補正して対応する第2の画素を選択して第2の位置情報を取得する構成とすることができる。IR画像およびカラー画像中の発光体の存在位置のずれは、たとえば前処理として描画ボード160をIRカメラ150およびカラーカメラ152でそれぞれ撮像し、取得したIR画像およびカラー画像中の描画ボード160の位置のずれを検出することにより、同様にずれが生じているとして設定することができる。IR画像およびカラー画像中の描画ボード160の位置のずれは、パターンマッチング等のソフトウェアプログラムを用いて自動的に補正するようにしたり、IR画像およびカラー画像中の描画ボード160の位置をユーザに指定させた後にソフトウェアプログラムで補正するようにすることができる。
【0060】
(カラー画像に対するノイズ除去)
図6に戻り、発光色判定領域選択部116は、選択した発光色判定領域の輝度値に基づきノイズ除去を行う(S18)。具体的には、発光色判定領域選択部116は、選択した発光色判定領域に含まれる画素の輝度値Yiが所定の必要輝度値Yd以上か否かを判定し、輝度値が必要輝度値Ydより低い場合に当該発光色判定領域をノイズであると判定するとともに、輝度値が必要輝度値Yd以上の場合に当該発光色判定領域をノイズでないと判定する。
【0061】
発光体をカラーカメラ152で撮像した場合、発光体の明るさが同じであっても、その発光体の光点の中心部と外周部では得られた画像中の輝度が異なる。とくに、LEDのような指向性が高い発光体を用いた場合、発光体がカメラのレンズの中心軸の延長上付近にあり、カメラレンズへの入射角が小さい場合には発光体の光点の中心部が撮像されて輝度値が大きくなる。一方、発光体がカメラのレンズの中心軸の延長上から離れた位置にあり、カメラレンズへの入射角が大きい場合には光点の外周部が撮像されて輝度値が小さくなってしまう。とくに、カラー画像の場合この傾向は顕著に現れる。つまり、同じ発光体を撮像した場合でも、発光体がカラーカメラ152で撮像したカラー画像の中心部に存在する場合は、その発光体の光点の中心部が撮像されることになるのでその発光体の輝度値が大きくなる。一方、発光体がカラーカメラ152で撮像したカラー画像の外周部に存在する場合は、その発光体の光点の外周部が撮像されることになるのでその発光体の輝度値が小さくなる。そのため、カラー画像の中心部と外周部とで同じ必要輝度値を用いた場合、たとえば外周部では発光体の存在が検出されにくくなる一方、中心部ではノイズまでもを発光体であると判定してしまう可能性が高くなる。そこで、本実施の形態においては、発光色判定領域選択部116が判定に用いる必要輝度値Ydは、カラー画像の中心部と発光色判定領域との距離Diに応じて距離Diが大きい方が値が低くなるように設定する。
【0062】
図9は、この手順を詳細に示すフローチャートである。
まず、発光色判定領域選択部116は、カラー画像の発光色判定領域の輝度値Yiを算出する(S104)。カラー画像の輝度値は、各画素のRGB値に基づき、たとえば「輝度値=0.298912×R+0.586611×G+0.114478×B(R、G、BはそれぞれR値、G値、B値)」から算出することができる。ここで、発光色判定領域に複数の画素が含まれる場合、発光色判定領域選択部116は、発光色判定領域に含まれる画素の輝度値Yiとして、複数の画素の輝度値の平均値を用いることもでき、また複数の画素の中の中心に位置する画素の輝度値を用いることもできる。また、複数の画素のうち、中心に位置する画素の輝度値ほど貢献比率が高くなるような加重平均値を用いることもできる。
【0063】
次いで、発光色判定領域選択部116は、カラー画像の中心部と発光色判定領域との距離Diを算出する(S106)。ここで、発光色判定領域に複数の画素が含まれる場合、発光色判定領域選択部116は、距離Diとして、カラー画像の中心部と発光色判定領域の中心部との距離を用いることができる。
【0064】
距離Diは、カラー画像の中心座標を(mc,nc)とすると、
Di=sqrt((mi−mc)+(ni−nc)
から算出することができる(ただし、sqrtは平方根を求める関数)。
【0065】
図10(c)および図11(c)に示すように、発光色判定領域選択部116は、カラー画像202の中心座標(mc,nc)から発光色判定領域204の中心座標までの距離Diに基づき、必要輝度値Ydを算出して発光色判定領域204のノイズ判定を行う。
【0066】
図9に戻り、この後、発光色判定領域選択部116は、距離Diに基づき、必要輝度値Ydを算出する(S108)。必要輝度値Ydは、たとえば以下の式に基づき算出することができる。以下の式に基づけば、必要輝度値Ydは、距離Diが大きい程値が連続的に低くなるように設定される。
【0067】
Yd=(Yf−Yc)×Di/Df+Yc (式1)
【0068】
ここで、「Yc」はカラー画像の中心部における必要輝度値、「Yf」はカラー画像の最外周部における必要輝度値、「Df」は、カラー画像の中心部から最外周部までの距離である(Yf<Yc)。Ycは、たとえば80以上120以下程度の値とすることができる。Yfの値はDfの値にもよるが、たとえばカラー画像の解像度が640×480ピクセルでDf=640ピクセルの場合、15以上30以下程度の値とすることができる。必要輝度値YcおよびYfは、図6のステップS6において決定することができ、設定値記憶部130に記憶しておくことができる。式1やその他の値についても予め設定値記憶部130に記憶しておくことができる。
【0069】
なお、以上の例では、必要輝度値Ydがカラー画像の中心部と発光色判定領域との距離Diに応じて連続的に変化する例を示したが、カラー画像の中心部と発光色判定領域との距離Diに応じて距離Diが大きい方が値が低くなるように設定されていれば、他の例において、必要輝度値Ydは、距離Diの範囲に応じて段階的に変更されるように設定することもできる。
【0070】
つづいて、発光色判定領域選択部116は、輝度値Yiが必要輝度値Yd以上か否かを判定する(S110)。輝度値Yiが必要輝度Yd以上の場合(S110のYES)、発光色判定領域選択部116は、この発光色判定領域で発光体が検出されたと判定し(S112)、発光色判定部118にその旨通知する。この後、発光色判定部118は、図6のステップS20の発光色判定処理を行う。一方、ステップS110において、輝度値Yiが必要輝度値Yd以上でない場合(S110のNO)、発光色判定領域選択部116は、この発光色判定領域がノイズであると判定し(S114)、処理を終了する。
【0071】
(発光色の判定)
図6に戻り、ステップS18で発光体検出判定が行われ、発光色判定領域選択部116から通知があると、発光色判定部118は、発光色判定領域選択部116が選択したカラー画像の発光色判定領域に含まれる画素の色成分情報(RGB値)に基づき、発光体の発光色を判定する(S20)。ここで、画素の色成分情報は、RGB値とすることができる。
【0072】
図12は、図6のステップS20の処理手順を詳細に示すフローチャートである。
ここで、発光体172の発光色が白色、青色、緑色、および赤色のいずれかである場合を例として説明する。このような場合、発光色判定部118は、まず発光体の発光色が白色か否かの判定から行う。発光体の発光色が白色の場合、RGB値のいずれかが突出するという傾向が少なく、RGB値のバランスを考慮して白色か否かを判定する。そのため、R値、G値、B値の出方にばらつきが生じるような場合でも誤判定される可能性を低減することができ、判定精度を向上させることができる。
【0073】
(白色判定)
発光体が白色の場合は、RGB値それぞれの値が同じように平均的となるとともに、これらの平均値の値が比較的高くなるという特徴がある。
【0074】
まず、発光色判定部118は、発光色判定領域に含まれる画素の色成分情報(RGB値)に基づき、RGB値の平均値aveCが所定値sより大きいか否かを判定する(S122)。ここで、発光色判定領域に含まれる画素のRGB値をそれぞれsR、sG、sBとすると、RGB値の平均値aveC=(sR+sG+sB)/3となる。なお、図11(b)および図11(c)を参照して説明した例のように、発光色判定領域204が複数の画素を含む場合、たとえばsR、sG、およびsBは、複数の画素の平均値とすることができる。また、この場合、たとえば発光色判定領域204の中心に位置する画素の値が高くなるような加重平均値とすることもできる。
【0075】
RGB値の平均値aveCが所定値sより大きい場合(S122のYES)、発光色判定部118は、各成分が平均的か否かを判定する(S124)。各成分が平均的か否かの判定は、以下のように行うことができる。
【0076】
まず、sR、sG、sBの中の最小値minCを検出する。次いで、sR、sG、sBからそれぞれminCを減じたtR=sR−minC、tG=sG−minC、tB=sB−minCをそれぞれ算出する。次いで、tR、tG、tBの平均値aveTC=(tR+tG+tB)/3を算出する。各成分が平均的な場合、sR、sG、sBの中の最小値minCをそれぞれsR、sG、sBから減じて得られるtR、tG、tBの値は小さくなる。発光色判定部118は、各成分が平均的か否かの判定として、aveTCが所定値sより小さいか否かを判定することができる。
【0077】
つまり、発光色判定部118は、aveC>所定値s(S122のYES)かつaveTC<所定値s(S124のYES)の場合に、発光体の発光色が白色であると判定することができる。この場合、発光色判定部118は、発光体の発光色として白色を出力する(S126)。ここで、所定値sは、白色であると判定するための限界閾値(white_color_limit)であり、たとえば50以上70以下程度の値とすることができる。また、所定値sは、たとえば15以上25以下程度の値とすることができる。
【0078】
以上の手順で、発光体の発光色が白色と判定できなかった場合(S122のNO、またはS124のNO)、発光色判定部118は、発光体の発光色が白色以外の青色、緑色、赤色か否かの判定を行う。
【0079】
(青色、緑色、赤色判定)
白色以外の発光色の判定処理は、発光色判定領域に含まれる画素のsR、sG、sBに応じて、最も値が大きい成分の色判定を行う。すなわち、B成分(sB)が最も大きい場合(S128のYES)、青色判定処理を行う(S130)。また、G成分(sG)が最も大きい場合(S128のNO、S132のYES)、緑色判定処理を行う(S134)。また、R成分(sR)が最も大きい場合(S132のNO)、赤色判定処理を行う(S136)。次に、各色の判定処理の具体例を説明する。
【0080】
(a)青色判定処理
まず、ステップS130の青色判定処理の一例を説明する。図13は、図12のステップS130の処理手順の一例を詳細に示すフローチャートである。
まず、発光色判定部118は、青色成分に対する緑色成分の比率perG=tG/tBを算出し、perG=tG/tBが所定値s以下か否かを判断する(S160)。ここで、所定値sは、たとえば0.2以上0.3以下程度の値とすることができる。perG=tG/tBが所定値s以下の場合(S160のYES)、発光色判定部118は、カラー画像の中心部と発光色判定領域との距離Diが所定値d以内か否かを判断する(S162)。
【0081】
本発明者らの検討により、発光色が青色の場合は、発光色判定領域がカラー画像の中心部に近いと、sBが大きく出ることが明らかになった。そのため、本実施の形態において、判定対象の画素がカラー画像の中心部に位置するか否かによって判定手順を異ならせている。所定値dは、たとえばカラー画像の長辺の画素数をnとした場合に、n/20以上n/5以下の範囲の値とすることができる。たとえば、カラーカメラ152の解像度が640×480(横×縦)ピクセルのVGAサイズの場合、カラー画像の長辺である横辺の画素数n=640ピクセルとなるが、一例として、所定値dをn/10となる64ピクセルとすることができる。つまり、この場合、判定対象の画素がカラー画像の中心部から半径64ピクセル以内か否かによって判定手順が異なるようにすることができる。所定値dは、実際に青色入力デバイスを用いてカラー画像を取得し、カラー画像の各位置のsBの値を測定して、どの範囲でsBが大きく出るかを検出することにより設定することができる。
【0082】
ステップS162で距離Diが所定値d以内でない場合(S162のNO)、青色判定とする(S164)。一方、距離Diが所定値d以内の場合(S162のYES)、sBが所定値s以上か否かを判断する(S166)。ここで、所定値sは、たとえば96以上120以下程度の値とすることができる。sBが所定値s以上の場合(S166のYES)、青色判定とするが(S164)、所定値s以上でない場合(S166のNO)、ノイズ判定とする(S168)。
【0083】
なお、他の例として、ステップS162で距離Diが所定値d以内でない場合、すなわち発光色判定領域がカラー画像の中心部にない場合でも、基準値を設けておき、sBが当該基準値以上か否かを判定して、基準値以上の場合のみ青色判定とし、基準値より小さい場合はノイズ判定とするようにすることもできる。この場合の基準値としては、発光色判定領域がカラー画像の中心部にある場合に用いた所定値所定値sよりも値の小さい所定値sを用いることができる。
【0084】
また、ステップS160でperG=tG/tBが所定値s以下でない場合(S160のNO)、perG=tG/tBが所定値s(ただし所定値s>所定値s)以上か否かを判定する(S170)。ここで、所定値sは、たとえば0.7以上0.9以下程度の値とすることができる。
【0085】
perG=tG/tBが所定値s以上の場合(S170のYES)、発光体の発光色が緑色である可能性が高い。この場合、発光色判定部118は、ステップS170で判定に用いたtBの値が所定値s以上であるか否かを判定する(S172)。ここで、所定値sは、たとえば30以上50以下程度の値とすることができる。tBの値があまりにも小さい場合、ノイズによってtGが微量変化してしまうと、perGが極端に変動してしまうため、tBが所定値sより小さい場合はノイズ処理とするためである。tBが所定値s以上である場合(S172のYES)、緑色判定とする(S173)。
【0086】
ただし、ステップS172でtBが所定値sより小さい場合でも(S172のNO)、sBが所定値s10(ただし所定値s10>所定値s)以上の場合(S174のYES)、ステップS164に進み、青色判定とする。これは、sBの値が大きい場合は、青色が明るすぎるためにカメラの色分解能力を超えてしまい、G成分が飽和状態で高く出力されてしまう可能性があることを考慮しての処理である。ここで、所定値s10は、たとえば200以上220以下程度の値とすることができる。
【0087】
ステップS174でsBが所定値s10以上でない場合(S174のNO)、ノイズ判定とする(S176)。ステップS170でperG=tG/tBが所定値s以上でない場合(S170のNO)もノイズ判定とする(S178)。
【0088】
(b)緑色判定処理
次に、緑色判定処理の一例を説明する。図14は、図12のステップS134の処理の一例を詳細に示すフローチャートである。
ここでも、発光色判定部118は、緑色成分に対する赤色成分の比率perR=tR/tGを算出し、perRが所定値s11以下の場合(S180のYES)は緑色判定とする(S182)。ここで、所定値s11は、たとえば0.4以上0.6以下程度の値とすることができる。一方、ステップS180でperRが所定値s11以下でない場合(S180のNO)は、ノイズ判定とする(S184)。
【0089】
(c)赤色判定処理
次に、赤判定処理の一例を説明する。図15は、図12のステップS136の処理手順の一例を詳細に示すフローチャートである。
ここでも、発光色判定部118は、赤色成分に対する緑色成分の比率perG=tG/tRを算出し、perGが所定値s12以下の場合(S190のYES)は赤色判定とする(S192)。ここで、所定値s12は、たとえば0.7以上0.9以下程度の値とすることができる。一方、ステップS190でperGが所定値s12以下でない場合(S190のNO)は、ノイズ判定とする(S194)。
以上により発光色の判定が終了する。発光色判定部118は、判定した発光体の発光色を示すデータを位置情報取得部114に通知する。位置情報取得部114は、発光色判定部118から取得した発光色を示すデータと、そのIR画像の第1の画素の位置を示す第1の位置情報(xi,yi)とを入力受付部122に通知する。なお、他の例において、位置情報としては、カラー画像の第2の画素の位置を示す第2の位置情報(mi,ni)を用いてもよい。
【0090】
(入力操作受付)
図6に戻り、入力受付部122は、発光色判定部118が出力した発光体172の発光色および第1の位置情報(または第2の位置情報)に基づき、当該発光色で識別される入力デバイス170から当該第1の位置情報(または第2の位置情報)への入力があったことを受け付ける(S22)。具体的には、入力受付部122は、対応記憶部134を参照して、発光体172の発光色を示すデータに基づき、入力情報がどの入力デバイス170によるものかを識別するとともに、IR画像の座標(xi,yi)(またはカラー画像の座標(mi,ni))への入力を受け付ける。たとえば、発光色判定部118から出力された発光色が白色の場合、入力受付部122は、対応記憶部134にアクセスして、白色に対応する入力デバイスのID「1」の入力デバイスにより、第2の位置情報への入力があったことを受け付ける。入力受付部122は、受け付けた入力をプログラム実行処理部124に通知する。
【0091】
その後、プログラム実行処理部124は、入力受付部122が受け付けた入力操作に応じてプログラムを実行する(S24)。プログラム実行処理部124が実行するプログラムにより形成されたデータはデータ出力部106から出力される。データ出力部106から出力されたデータは、プロジェクタ154によりプロジェクタ用投影フィルム164に投影され、描画ボード160の描画面に表示されるようにすることができる。これにより、入力デバイス170を用いて入力を行っているユーザは、描画ボード160を見ながら自己の入力が反映されたデータを確認することができる。
【0092】
ここで、プログラム実行処理部124が実行するプログラムは、たとえばユーザが入力デバイス170を用いて図形等を描画するための描画プログラムとすることができる。この場合、たとえばプログラム実行処理部124は、画像取得部112が取得したIR画像またはカラー画像中の発光体の軌跡に対応する軌跡をデータ出力部106から出力するようにすることができる。また、プログラム実行処理部124は、各ユーザが描画した図形等の色を設定するためのカラーパレット等をたとえば描画ボード160に表示されるようにすることができる。プログラム実行処理部124は、ユーザがカラーパレットのいずれかの色を選択すると、表示しているカラーパレットの位置情報、入力デバイス170の位置情報、ユーザが入力デバイス170を用いて行う発光体172の発光タイミングの制御動作(クリックに対応)、および入力デバイス170の発光色に基づき、各ユーザが選択した色を判断して、データ出力部106から出力する発光体172の軌跡の色が選択された色となるようにすることができる。
【0093】
次に、本実施の形態における発光体識別装置100の効果を説明する。
本実施の形態における発光体識別装置100によれば、入力デバイスによる入力情報を発光体の位置情報に基づき受け付けるとともに、カラー画像の色成分情報から判定された発光色に応じて入力デバイスを識別することができる。そのため、発光色の異なる発光体をそれぞれ含む複数の入力デバイスを用いて複数のユーザにより入力される入力情報をそれぞれ識別することができる。また、まずIR画像から発光体の位置を検出して、カラー画像の対応する位置の色成分情報に基づき発光色判定処理を行うので、発光体の検出および発光色判定を精度よく迅速に行うことができる。
【0094】
また、本実施の形態において、入力デバイスの発光体としてはLEDを用いている。上述したように、カメラレンズへの発光体からの光の入射角は発光体の位置により変化する。以上の実施の形態において、カラー画像の発光色判定領域のノイズ判定処理において、判定に用いる必要輝度値Ydは、カラー画像の中心部と発光色判定領域との距離Diに応じて距離Diが大きい方が値が低くなるように設定されている。そのため、カメラレンズへの発光体からの光の入射角の違いによる発光体の輝度値の違いも考慮してノイズ除去が行われるので、精度よくノイズを除去することができる。
【0095】
以上のような構成の発光体識別装置100を含む発光体識別システム10は、コンピュータ用ソフトウェアの操作において、発光体172をカメラ等の撮像手段148で撮像し、その座標を認識することで入力を受け付ける構成となっている。その際に、発光色の異なる発光体172を用いることにより、複数の発光体172をリアルタイムに認識し、コンピュータ用ソフトウェアの操作を多人数で同時に行えるようにする。これにより、たとえばゲーム等のエンタテインメント用ソフト、イベント用ソフト、教育用ソフト等のアプリケーションソフトの操作において、多人数同時操作を行うようにすることができる。また、これにより、入力デバイスにより、マウスやタッチパネル、タブレットのような自由で直観的な操作と同様の操作ができるようになる。
【0096】
なお、図1に示した発光体識別装置100の各構成要素は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。発光体識別装置100の各構成要素は、任意のコンピュータのCPU、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスク等の記憶ユニット、ネットワーク接続用インタフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。また、発光体識別装置100の各構成要素は、一つの装置内に設けられる必要はなく、複数の装置に分散配置されて互いにネットワークを介してデータの授受を行う構成とすることもできる。
【0097】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【0098】
(変形例1)
以上の実施の形態においては、図6のステップS6で説明したように、ステップS4で環境光が存在している適用環境における暗化撮像条件を決定した後に決定された暗化撮像条件に応じて各種判定で用いる閾値や所定値を決定し、設定値記憶部130や発光色判定情報記憶部132に記憶する例を示した。しかし、他の例として、各種判定で用いる閾値や所定値は、図6のステップS4の処理に先立ち、複数の撮像条件に対してそれぞれ予め決定しておき、設定値記憶部130や発光色判定情報記憶部132に記憶しておくようにすることもできる。一例を図16に示す。図16は、設定値記憶部130の内部構成の一部の一例を示す図である。ここでは、暗化撮像条件としてシャッタスピードを制御している場合を示している。たとえば、シャッタスピードとしては、1/500秒、1/250秒、1/125秒、1/60秒等が想定され、それぞれに対して用いられる閾値t、必要輝度値YfおよびYc等が記憶されている。このような構成とした場合、ステップS4で決定された暗化撮像条件であるカラーカメラ152の第1のシャッタスピードおよびIRカメラ150の第2のシャッタスピードに応じて、対応する設定値を各種判定で用いるようにすることができる。たとえば、図示した例では、IRカメラ150の暗化撮像条件である第2のシャッタスピードが1/250秒の場合、ステップS14で用いられる閾値tは70、第2のシャッタスピードが1/125秒の場合、閾値tは75等とすることができる。
【0099】
このようにすれば、図6のおよびステップS4で暗化撮像条件が決定される度にステップS6の設定値を決定する処理を行う必要がなくなる。また、発光体識別システム10をある環境下に設置した後に環境光の状態が変化した場合でも、再度設定値を決定しなおす必要がない。そのため、発光体識別システム10周囲の環境光の変化に柔軟に対応可能とすることができる。よって、発光体識別装置100を起動する度に周囲の環境光の状態に応じてIRカメラ150およびカラーカメラ152の暗化撮像条件を決定し、決定された暗化撮像条件に対応する設定値を用いて各種判定を行うようにすることができる。
【0100】
図8は、周囲の環境光の状態に応じてIRカメラ150およびカラーカメラ152の暗化撮像条件を決定する際にプロジェクタ用投影フィルム164に投影され、描画ボード160の描画面側にいるユーザに表示される画面の一例を示す図である。
ここでは、前処理中にユーザが入力デバイス170の発光体172を発光させないように、たとえば「準備中です。入力デバイスのスイッチを入れないでください。」等のメッセーを表示するようにすることができる。これにより、実際に発光体識別装置100を用いる場所でのそのときの環境光を考慮して暗化撮像条件を決定するすることができる。
【0101】
(変形例2)
以上の実施の形態においては、図6のステップS4で説明した暗化撮像条件の決定手順において、暗化撮像条件決定部120がIRカメラ150およびカラーカメラ152で撮像された第1の前処理画像および第2の前処理画像の複数の位置の画素値がそれぞれ所定値sまたは所定値s以下となるか否かを判定して暗化撮像条件を決定する例を示した。しかし、IRカメラ150およびカラーカメラ152で撮像された第1の前処理画像および第2の前処理画像に環境光が映り込まない状態となっているか否かは、ユーザが判定するようにすることもできる。この場合、暗化撮像条件決定部120は、現在のIRカメラ150またはカラーカメラ152のシャッタスピードと、画像取得部112が取得したIR画像またはカラー画像の複数の位置におけるRGB値とをデータ出力部106から出力してユーザ(設定者)に提示するようにすることができる。図17は、ユーザに提示される画面184の一例を示す図である。画面184には、描画ボードの画像186を含む画像188(カラー画像またはIR画像)が表示されている。また、画像188中の複数の位置a〜iの各位置におけるRGB値がそれぞれ表示されている。ユーザは画面184に表示された複数の位置a〜iの各位置におけるRGB値を見て、すべての位置におけるRGB値がそれぞれ所定値以下か否かによって現在のシャッタスピードを暗化撮像条件として決定するか否かを判断することができる。また、さらに他の例として、各位置におけるRGB値をグラフ化してユーザに提示するようにすることもできる。
【0102】
(変形例3)
入力デバイス170の発光体としてLEDを用いた場合、LEDには、製造ばらつきが生じやすいという問題がある。たとえば、青色の発光体であっても、製造ばらつきによってRGB値が大きく異なることがある。そのため、たとえば、発光体識別装置100は、前処理として、ユーザに発光色を指示して用いる予定のその発光色の入力デバイスの発光体を発光させた状態をカラーカメラ152により撮像し、各発光色の発光体の色成分情報を取得して参考値として発光色判定情報記憶部132に記憶しておくことができる。そして、発光色判定部118は、発光色の判定を行う際に、発光色判定情報記憶部132に記憶された参考値を参照して、参考値との類似度に基づき発光色の判定をすることもできる。
【0103】
図18は、以上の前処理時にプロジェクタ用投影フィルム164に投影され、描画ボード160の描画面側にいるユーザに表示される画面の一例を示す図である。
ここでは、前処理中にユーザが各発光色の入力デバイス170の発光体172を発光させるように、たとえば「赤色の入力デバイスのスイッチを入れてこの円の中を塗ってください。」等のメッセーを表示するようにすることができる。画像取得部112は、この状態で取得した発光体の色成分情報を赤色の発光体の参考値として発光色判定情報記憶部132に記憶することができる。また、赤色以外の他の発光色についても同様の手順で参考値を取得することができる。
【0104】
(変形例4)
また、以上の実施の形態では、描画ボード160を設け、ユーザが入力デバイス170の発光体172を描画ボード160に押し当てて描画等する例を示した。しかし、他の例として、ユーザが入力デバイス170の発光体172を描画ボード160に押し当てるのではなく、ユーザが入力デバイス170を手に持って自在に操ることにより描画等される構成や、発光体識別システム10が描画ボード160を含まず、IRカメラ150およびカラーカメラ152の撮像手段148が、ユーザが入力デバイス170を手に持って自在に操る状態を撮影する構成とすることもできる。
【0105】
(変形例5)
また、以上の実施の形態において、データ出力部106から出力される情報がプロジェクタ154によりプロジェクタ用投影フィルム164に投影される例を示した。複数人でプレーするためには、表示装置としてこのような比較的大きいものを用いることが好ましい。しかし、表示装置としては、プロジェクタによる投影に限定されるものではなく、通常のディスプレイ等を用いることもできる。
【0106】
(変形例6)
図6のステップS16からステップS20の処理の変形例を示す。図19にこの処理手順のフローチャートを示す。
図6のステップS14の処理においてIR画像から発光体が検出され、位置情報取得部114から当該IR画像のフレーム数(例として10)および第1の位置情報(例として(x1,y1))が通知されると(S202のYES)、発光色判定領域選択部116は、通知されたフレーム数(10)および第1の位置情報(x1,y1)を記憶部(不図示)に記憶する(S204)。この後、発光色判定領域選択部116および発光色判定部118は、この記憶部に記憶されたフレーム数(10)に対応するフレーム数(10)が対応付けられたカラー画像の第1の位置情報に対応する位置(例として(m1,n1))を対象として発光色の判定処理を行う(S206)。このフレーム数(10)のカラー画像から発光体の発光色が判定された場合(S208のYES)、この処理は終了して、図6のステップS22の処理に進む。一方、このフレーム数(10)のカラー画像から発光体の発光色が判定されない場合(S208のNO)、発光色判定領域選択部116は、フレーム数を+1増加し(S210)、ステップS204に戻って記憶部のフレーム数(11)を更新する。この後、更新されたフレーム数(11)が対応付けられたカラー画像の位置(m1,n1)を対象として発光色の判定処理を行い(S206)、カラー画像から発光体の発光色が判定されるまで同様の処理を行うことができる。
【0107】
ただし、フレーム数を所定数以上増加させてもカラー画像から発光体の発光色が判定されない場合は、この位置(m1,n1)に対する処理を終了するようにすることもできる。また、図6のステップS14の処理で新たなIR画像から発光体が検出され、新たなIR画像のフレーム数(例として15)および第1の位置情報(例として(x2,y2))が位置情報取得部114から通知されると(S202のYES)、カラー画像の位置(m1,n1)に対する処理はフレーム数(14)までとし、カラー画像から発光体の発光色が判定されない場合でも処理を終了するようにすることができる。
【符号の説明】
【0108】
10 発光体識別システム
100 発光体識別装置
102 IR画像入力部
104 カラー画像入力部
106 データ出力部
112 画像取得部
114 位置情報取得部
116 発光色判定領域選択部
118 発光色判定部
120 暗化撮像条件決定部
122 入力受付部
124 プログラム実行処理部
130 設定値記憶部
132 発光色判定情報記憶部
134 対応記憶部
136 画像記憶部
148 撮像手段
150 IRカメラ
152 カラーカメラ
154 プロジェクタ
160 描画ボード
162 支持台
164 プロジェクタ用投影フィルム
166 軌跡
168 軌跡
170 入力デバイス
170a 白色入力デバイス
170b 青色入力デバイス
170c 緑色入力デバイス
170d 赤色入力デバイス
172 発光体
174 スイッチ
182、186、188 画像
180 第1の前処理画像
184 画面
200 IR画像
202 カラー画像
204 発光色判定領域

【特許請求の範囲】
【請求項1】
IRカメラおよびカラーカメラで同一の対象物を同時に撮像してそれぞれ得たIR画像およびカラー画像を取得する画像取得部と、
前記IR画像から、輝度値が所定の閾値以上となる第1の画素を発光体の存在位置として検出して、当該存在位置を示す第1の位置情報を取得する位置情報取得部と、
前記位置情報取得部が取得した前記第1の位置情報に基づき、前記カラー画像から前記第1の位置に対応する位置の第2の画素を含む発光体の発光色判定領域を選択する発光色判定領域選択部と、
前記発光色判定領域選択部が選択した前記カラー画像の前記発光色判定領域に含まれる画素の色成分情報に基づき、前記発光体の発光色を判定する発光色判定部と、
を含む発光体識別装置。
【請求項2】
請求項1に記載の発光体識別装置において、
前記発光色判定部は、前記発光体の発光色と前記IR画像の第1の位置情報または前記カラー画像の前記第2の画素の位置を示す第2の位置情報とを対応付けて出力する発光体識別装置。
【請求項3】
請求項2に記載の発光体識別装置において、
前記発光色判定部が出力した前記発光体の発光色および前記第1の位置情報または前記第2の位置情報に基づき、当該発光色で識別される入力デバイスから当該第1の位置情報または当該第2の位置情報への入力があったことを受け付ける入力受付部をさらに含む発光体識別装置。
【請求項4】
請求項1から3いずれかに記載の発光体識別装置において、
前記発光色判定領域選択部は、選択した前記発光色判定領域に含まれる画素の輝度値Yiが所定の必要輝度値Yd以上か否かを判定し、前記輝度値Yiが前記必要輝度値Ydより低い場合に当該発光色判定領域をノイズであると判定するとともに、前記輝度値Yiが前記必要輝度値Yd以上の場合に当該発光色判定領域をノイズでないと判定し、
前記発光色判定部は、前記発光色判定領域選択部により前記発光色判定領域がノイズでないと判定された場合に、当該カラー画像の前記発光色判定領域に含まれる画素の色成分情報に基づき、前記発光体の発光色を判定し、
前記必要輝度値Ydは、前記カラー画像の中心部と前記発光色判定領域との距離Diに応じて当該距離Diが大きい方が値が低くなるように設定された発光体識別装置。
【請求項5】
IRカメラおよびカラーカメラで同一の対象物を同時に撮像してそれぞれ得たIR画像およびカラー画像を取得する工程と、
前記IR画像から、輝度値が所定の閾値以上となる第1の画素を発光体の存在位置として検出して、当該存在位置を示す第1の位置情報を取得する工程と、
前記第1の位置情報を取得する工程で取得された前記第1の位置情報に基づき、前記カラー画像から前記第1の位置に対応する位置の第2の画素を含む発光体の発光色判定領域を選択する工程と、
前記発光色判定領域を選択する工程で選択された前記カラー画像の前記発光色判定領域に含まれる画素の色成分情報に基づき、前記発光体の発光色を判定する工程と、
を含む発光体識別方法。
【請求項6】
請求項5に記載の発光体識別方法において、
前記カラーカメラを、当該カラーカメラが撮像するカラー画像に前記発光体の発光以外の環境光が映り込まない暗化撮像条件に設定する工程をさらに含み、
前記カラー画像から前記発光色判定領域を選択する工程において、前記暗化撮像条件に設定された前記カラーカメラが撮像した前記カラー画像から、前記発光色判定領域を選択する発光体識別方法。
【請求項7】
請求項5または6に記載の発光体識別方法において、
前記IRカメラを、当該IRカメラが撮像するIR画像に前記発光体の発光以外の環境光が映り込まない暗化撮像条件に設定する工程をさらに含み、
前記IR画像から前記第1の位置情報を取得する工程において、前記暗化撮像条件に設定された前記IRカメラが撮像した前記IR画像から、前記第1の画素を発光体の存在位置として検出して、当該存在位置を示す第1の位置情報を取得する発光体識別方法。
【請求項8】
コンピュータを、
IRカメラおよびカラーカメラで同一の対象物を同時に撮像してそれぞれ得たIR画像およびカラー画像を取得する画像取得手段、
前記IR画像から、輝度値が所定の閾値以上となる第1の画素を発光体の存在位置として検出して、当該存在位置を示す第1の位置情報を取得する位置情報取得手段、
前記位置情報取得手段が取得した前記第1の位置情報に基づき、前記カラー画像から前記第1の位置に対応する位置の第2の画素を含む発光体の発光色判定領域を選択する発光色判定領域選択手段、
前記発光色判定領域選択手段が選択した前記カラー画像の前記発光色判定領域に含まれる画素の色成分情報に基づき、前記発光体の発光色を判定する発光色判定手段、
として機能させる発光体識別プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
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

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−226507(P2012−226507A)
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願番号】特願2011−92679(P2011−92679)
【出願日】平成23年4月19日(2011.4.19)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(508370717)株式会社スカイワーカーズ (3)
【Fターム(参考)】