以下、図を参照しつつ、一つの実施形態による、入力装置が実装された操作表示システムについて説明する。この操作表示システムは、指示装置と、入力装置とを有し、入力装置が、ユーザが指示装置を対象物に接触させた位置に応じた入力処理を実行する。そのために、この入力装置は、2台のカメラによりその指示装置を撮影して得られる2枚の画像のそれぞれから指示装置を検出し、各画像上の指示装置の先端位置から指示装置の先端の実空間上の位置を特定する。これにより、この入力装置は、指示装置が対象物に接触したか否かを判定する。さらに、この操作表示システムでは、各画像での指示装置の識別性を向上するため、指示装置の先端側の表面に、所定の色と所定の形状を持つベースカラー部と、その所定の色と異なる色を持つ1以上のサブカラー部とが設けられる。一方、入力装置は、各画像上で、ベースカラー部の色及び形状に相当する色及び形状を持つ領域を検出する。そして入力装置は、検出した領域に対してベースカラー部とサブカラー部の位置関係と同じ位置関係となる位置にサブカラー部の色に相当する色を持つ画素が所定数以上有るか否かを調べることで、指示装置の先端の位置を特定する。
図1は、入力システムの一例である操作表示システム100が有する入力装置の概略斜視図である。図2は、図1に示された入力装置1のハードウェア構成図である。操作表示システム100は、入力装置1と、指示装置20とを有する。入力装置1は、投影装置2と、ミラー3と、二つのカメラ4−1、4−2と、通信部5と、記憶部6と、制御部7とを有する。入力装置1が有するこれらの各部は、側面から見て縦方向にコの字型をした筐体10に収容される。なお、以下では、説明の便宜上、ユーザに面する側の面を正面と呼ぶ。
投影装置2は、例えば、液晶プロジェクタであり、筐体10の正面側に、表示面を上方へ向けて配置される。投影装置2は、制御部7から受け取った映像信号に従って映像をその表示面に表示することで、映像を投影する。投影装置2から投影された映像は、正面側へ突出した筐体10の天頂部10aの下側に設けられたミラー3により反射されて、例えば、指示装置20が接触したか否かの判定対象となる対象物30が載置されたテーブル面などに投影される。
対象物30は、例えば、シート状の物体とすることができるが、そのような物体に限定されない。
なお、投影装置2は、テーブルの上方に所定距離(例えば、500mm)だけ離れた位置に表示面を鉛直下方へ向けて配置されてもよい。この場合には、ミラー3は省略されてもよい。
二つのカメラ4−1、4−2は、それぞれ、撮像部の一例であり、天頂部10aに、ミラー3を挟んで所定間隔だけ離して鉛直下方に向けて配置される。なお、テーブル面からカメラ4−1、4−2までの高さは、対象物30がカメラ4−1とカメラ4−2の両方の撮影範囲に含まれ、かつ、対象物30の近傍に位置する指示装置20の表面のパターンを画像上で識別できるように、例えば、400mmに設定される。そしてカメラ4−1、4−2は、それぞれ、所定の撮影周期(例えば、10msec〜50msec)でその撮影範囲が写った画像を生成する。カメラ4−1、4−2は、画像を生成する度に、その画像を制御部7へ出力する。
通信部5は、入力装置1を他の機器と接続するためのインターフェース及びその制御回路を有する。そして通信部5は、例えば、他の機器から受け取った映像信号を制御部7へ渡す。あるいは、通信部5は、制御部7から受け取った、ユーザの入力に応じた入力信号を他の機器へ出力する。
記憶部6は、例えば、揮発性又は不揮発性の半導体メモリ回路を有する。そして記憶部6は、投影装置2により投影される映像を表す映像信号及びユーザの操作入力を検出するために利用される各種の情報を記憶する。ユーザの操作入力を検出するために利用される情報には、例えば、カメラ4−1とカメラ4−2間の間隔、カメラ4−1、4−2の焦点距離、テーブルの表面から対象物30の表面までの位置ごとの高さ、指示装置20の検出に利用する各種の閾値などが含まれる。さらに、記憶部6は、カメラ4−1またはカメラ4−2から得られた画像を記憶してもよい。
制御部7は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部7は、投影装置2、カメラ4−1、4−2、通信部5及び記憶部6と信号線を介して接続されており、入力装置1全体を制御する。
また制御部7は、カメラ4−1またはカメラ4−2から受け取った画像を解析することにより、指示装置20の先端の実空間での位置を検出する。そして制御部7は、指示装置20の先端の位置に基づいて、ユーザによる入力を検出し、その入力に応じた処理を実行する。
図3(a)は、入力装置1による検出対象となる指示装置20の外観図であり、図3(b)は、ユーザにより把持された状態の指示装置20を示す図である。指示装置20は、略円柱状の形状を有しており、その先端側の一部が指示装置20の中心軸に沿って平行な平面となるように形成されたマーカ部21となっている。また、マーカ部21以外の、略円柱状の部分は、ユーザが指示装置20を把持する把持部22となっている。
マーカ部21の平面には、指示装置20の長手方向に沿った略長方形で、かつ指示装置20の先端側が半円状となったベースカラー部23が設けられている。さらに、マーカ部21の平面には、ベースカラー部23の把持部22側に隣接する第1のサブカラー部24と、第1のサブカラー部24の把持部22側に隣接する第2のサブカラー部25とが設けられている。ベースカラー部23、第1のサブカラー部24及び第2のサブカラー部25は、それぞれ、互いに異なる色で着色されている。そしてマーカ部21の平面における、ベースカラー部23、第1のサブカラー部24及び第2のサブカラー部25の周囲の縁部26は、ベースカラー部23、第1のサブカラー部24及び第2のサブカラー部25の何れとも異なる色に着色される。本実施形態では、ベースカラー部23、第1のサブカラー部24及び第2のサブカラー部25は、それぞれ、マーカ部21と他の物体との区別が付き易いように、青色(色相値200°)、紫色(色相値280°)、緑色(色相値120°)に着色される。さらに、縁部26は白色である。
なお、指示装置20は、一つ又は三つ以上サブカラー部を有してもよい。指示装置20が互いに異なる色を持つ複数の領域を有することにより、何れか一つの領域の色と似た色を持つ物体が指示装置20の周囲に存在する場合でも、指示装置20が写った画像から指示装置20を正確に検出することが容易となる。
指示装置20で対象物30に接触する際、指示装置20上に投影装置2からの映像が投影されることがある。そのため、ベースカラー部23、第1のサブカラー部24及び第2のサブカラー部25の色は、投影装置2から投影された映像が重なっても、カメラ4−1またはカメラ4−2から見てあまり変わらないように見える色であることが好ましい。
図4は、彩度が互いに異なる緑系の6種類の色について、それらの色で着色された領域に光が当たらない状態から、投影される光の色を赤、青、緑、白と変化させたときに、その着色領域の色相の測定値の変化を表すグラフである。図4において、横軸は彩度を表し、縦軸は、色相の変化量を表す。そして曲線400は、彩度が異なる各色についての色相の測定値の変化から求めた、彩度と色相の変化量間の関係を表す近似曲線である。なお、実験に利用した緑系の6種類の色は、それらの色の彩度のうちの最大値が、彩度としての最大値となるように、RGB表色系におけるR(赤色)またはB(青色)の成分が0となる色とした。
図4に示されるように、彩度が高いほど、投影される光の色の変化による、色相の変化量が少なくなることが分かる。そこで、ベースカラー部23、第1のサブカラー部24及び第2のサブカラー部25の色は、できるだけ彩度が高い色、例えば、彩度が200以上となる色とすることが好ましい。
図5は、指示装置20のマーカ部21のサイズ仕様の一例を示す図である。マーカ部21に含まれる各部のサイズは、例えば、カメラ4−1及びカメラ4−2の解像度に基づいて決定される。例えば、カメラ4−1及びカメラ4−2が有するイメージセンサの画素数が、640×360画素であり、対象物30が載置されたテーブル面上でカメラ4−1及びカメラ4−2の撮影範囲が640×360mmであるとする。この場合、カメラ4−1及びカメラ4−2は、1mm2あたり1画素の解像度で撮影できる。マーカ部21がテーブルよりもカメラ4−1、4−2に近づくほど、カメラ4−1、4−2により生成される画像上でマーカ部21が写る範囲が大きくなる。そこで、テーブル上に指示装置20が載置されたとして、画像上でマーカ部21に含まれる各部を検出できるサイズを以下に検討する。
指示装置20の長手方向と直交する方向における、ベースカラー部23、第1のサブカラー部24及び第2のサブカラー部25の長さ、すなわち幅BASEWは、例えば、撮影時のマーカ部21の動きによるぼけを考慮しても最低5画素以上あればよい。また、縁部26の幅QZLENは3画素以上あれば、縁部26は検出可能とする。この場合、BASEWは5mm以上、QZLENは3mm以上となる。また、指示装置20の長手方向に沿った、第1のサブカラー部24の長さSUBLEN1及び第2のサブカラー部25の長さSUBLEN2は、BASEWと同様に画像上で最低5画素あればよいとすると、SUBLEN1及びSUBLEN2は5mm以上となる。マーカ部21の各部のサイズが上記のような条件を満たすことで、カメラ4−1及びカメラ4−2が、640×360画素といった少ない画素数の画像を生成する場合でも、入力装置1は、その画像から指示装置20を検出できる。
図5に示される例では、BASEWは10mmである。また、BASELENは、BASEWよりも長く、43mmである。また、SUBLEN1及びSUBLEN2は、それぞれ、6mm、5mmであり、QZLENは5mmである。
以下、制御部7により実行される、入力処理に関する詳細について説明する。なお、以下では、説明の便宜上、カメラ4−1により生成された画像を第1の画像と呼び、カメラ4−2により生成された画像を第2の画像と呼ぶ。
図6は、指示装置20とテーブル上に載置された対象物30とを撮影して得られた画像600の一例を示す。対象物30には、ベースカラー部23の色と類似する色を持つ領域601も含まれるものの、領域601は、ベースカラー部23と異なる形状を有している。さらに、領域601に対して、ベースカラー部23と各サブカラー部間の相対的な位置関係と同一の位置関係となる位置に、各サブカラー部と類似した色を持つ領域が存在する可能性は低い。そこで本実施形態では、制御部7は、先ず、ベースカラー部23の色に相当する色を持つ画素の集合をベースカラー部23が写っている可能性が有る候補領域として検出する。制御部7は、候補領域のうち、画像上で想定されるベースカラー部の形状及びサイズと一致する形状及びサイズを持つ候補領域を選択する。そして制御部7は、選択した候補領域に対してベースカラー部23と各サブカラー部間の相対的な位置関係と同一の位置関係となる位置に、各サブカラー部の色に相当する色を持つ画素がある場合に、その候補領域をベースカラー部として検出する。そして制御部7は、検出したベースカラー部から、画像上での指示装置20の先端の位置を検出する。制御部7は、撮影タイミングがほぼ同時となる第1の画像及び第2の画像の両方について同様の処理を行って、第1の画像及び第2の画像のそれぞれにおける指示装置20の先端の位置を検出することで、三角測量により、実空間でのその先端の位置を求める。そして制御部7は、実空間での指示装置20の先端の位置と、対象物30間の距離が互いに接触しているとみなせるほど短い場合に、指示装置20が対象物30に接触していると判定し、その接触位置に応じた入力処理を実行する。
図7は、制御部7の機能ブロック図である。制御部7は、候補領域検出部11と、形状判定部12と、相対位置判定部13と、先端検出部14と、先端位置決定部15と、接触判定部16と、入力処理部17とを有する。
制御部7が有するこれらの各部は、例えば、制御部7が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールとして実装されてもよい。なお、これらの各部は、それぞれ、別個の回路として、制御部7とは別個に入力装置1に実装されてもよく、あるいはこれらの各部の機能を実現する一つの集積回路として、制御部7とは別個に入力装置1に実装されてもよい。
候補領域検出部11は、制御部7がカメラ4−1から第1の画像を取得する度に、その第1の画像上でベースカラー部23が持つ色に相当する色を持つ画素の集合を、ベースカラー部23が写っている可能性がある候補領域として検出する。同様に、候補領域検出部11は、制御部7が第2のカメラ4−2から第2の画像を取得する度に、その第2の画像上でベースカラー部23が持つ色に相当する色を持つ画素の集合を、ベースカラー部23が写っている可能性がある候補領域として検出する。なお、候補領域検出部11は、第1の画像及び第2の画像に対して同一の処理を実行するので、以下では、第1の画像に対する処理を例として説明する。
候補領域検出部11は、第1の画像からベースカラー部23に相当する色を持つ画素を検出する。例えば、候補領域検出部11は、第1の画像の各画素の色がRGB表色系で表されている場合、次式に従って、第1の画像の各画素の値をHSV(Hue, Saturation, Brightness)表色系の値に変換する。
ここで、R、G、Bは、それぞれ、変換前の画素の赤色成分、緑色成分、青色成分を表す。またMAX、MINは、それぞれ、変換前の画素の赤色成分、緑色成分、青色成分のうちの最大値及び最小値を表す。そしてH、V、Sは、それぞれ、変換後の画素の色相、明度、彩度を表す。ただし、Hの値に関しては、(1)式により得られた値が負の場合、その値に360を加えた値が色相の値となる。この例では、明度V及び彩度Sは、それぞれ、0〜255の範囲内の値を取る。また、色相Hは、0〜359の値を取る。なお、第1の画像の各画素の値が元々HSV表色系で表されている場合には、上記の変換処理は省略されてよい。
候補領域検出部11は、第1の画像内の各画素について、その画素のHSV値がベースカラー部23の色に相当する色の範囲に含まれるか否か判定する。なお、ベースカラー部23の色に相当する色の範囲は、例えば、次式で表される。
ここで、Hbmax及びHbminは、ベースカラー部23の色に相当する色相の上限値及び下限値を表す。本実施形態では、ベースカラー部23の色相の値が200°である。この場合、投影装置2から指示装置20上に投影される映像による色相の変化量が±20°であるとすると、Hbmax=220°、Hbmin=180°に設定される。また、Sbmax及びSbminは、ベースカラー部23の色に相当する彩度の上限値及び下限値を表す。さらに、Vbmax及びVbminは、ベースカラー部23の色に相当する明度の上限値及び下限値を表す。Sbmax、Sbmin、Vbmax及びVbminも、Hbmax及びHbminと同様に、投影装置2から指示装置20上に投影される映像を様々に変化させて明度及び彩度の変化範囲を測定し、その変化範囲の上限及び下限の値に設定されればよい。
候補領域検出部11は、第1の画像上で(2)式の条件を満たす画素と(2)式の条件を満たさない画素とが互いに異なる画素値を持つ2値画像を、ベースカラー部23の色に相当する色を持つ画素を表す情報として生成する。例えば、候補領域検出部11は、第1の画像上で(2)式の条件を満たす画素に対応する位置の2値画像上の画素の値を'255'とする。一方、候補領域検出部11は、第1の画像上で(2)式の条件を満たさない画素に対応する位置の2値画像上の画素の値を'0'とする。
図8は、図6に示された画像から検出された(2)式の条件を満たす画素を表す2値画像の一例を示す図である。2値画像800では、(2)式の条件を満たす画素が白で表され、一方、(2)式の条件を満たさない画素が黒で表されている。図8に示されるように、2値画像800では、指示装置20のベースカラー部23だけでなく、対象物30上でベースカラー部23の色に相当する色を持つ画素も検出されていることが分かる。
第1の画像から、ベースカラー部23の色に相当する色を持つ画素を検出すると、候補領域検出部11は、その検出された画素、すなわち、2値画像上で、'255'の画素を持つ画素に対してラベリング処理を実行する。これにより、候補領域検出部11は、ベースカラー部23の色に相当する色を持つ画素が互いに連結された、その色を持つ画素の集合を検出できる。
候補領域検出部11は、ベースカラー部23の色に相当する色を持つ画素の集合ごとに、その集合に含まれる画素の数が、第1の画像上でのベースカラー部23のサイズの下限値AreaMinからそのサイズの上限値AreaMaxの範囲に含まれるか否かを判定する。そして候補領域検出部11は、画素の数が下限値AreaMin以上、かつ、上限値AreaMax以下となる画素の集合を候補領域とする。
なお、テーブル上に指示装置20が載置されたとき、すなわち、カメラ4−1から指示装置20までの距離が最も離れているときの第1の画像上でのベースカラー部23の面積が150画素である場合、下限値AreaMinは、150画素に設定される。あるいは、下限値AreaMinは、150画素から所定のマージンを減じた値、例えば、130画素に設定されてもよい。同様に、カメラ4−1と指示装置20間の距離が、その想定される距離の最小値である場合に、第1の画像上でのベースカラー部23の面積が1500画素であれば、上限値AreaMaxは、1500画素に設定される。あるいは、上限値AreaMaxは、1500画素に所定のマージンを加算した値、例えば、1550画素に設定されてもよい。
図9は、図6に示された画像から検出された候補領域の一例を示す図である。この例では、5個の候補領域901〜905が検出されている。
候補領域検出部11は、検出された候補領域ごとに、その候補領域を識別する情報を生成し、その情報を形状判定部12へわたす。なお、候補領域を識別する情報は、例えば、第1の画像と同じサイズを持ち、かつ、候補領域ごとに、その候補領域に含まれる画素の値がその候補領域の識別番号(例えば、ラベリング処理により設定される)となる画像とすることができる。
形状判定部12は、候補領域検出部11から、第1の画像から検出されたベースカラー部23の候補領域についての情報を受け取る度に、各候補領域について、候補領域の形状がベースカラー部23の形状と一致するか否か判定する。同様に、形状判定部12は、候補領域検出部11から、第2の画像から検出されたベースカラー部23の候補領域についての情報を受け取る度に、各候補領域について、候補領域の形状がベースカラー部23の形状と一致するか否か判定する。なお、形状判定部12は、第1の画像及び第2の画像に対して同一の処理を実行するので、以下では、第1の画像に対する処理を例として説明する。
本実施形態では、ベースカラー部23は、一端側が半円状に形成された、略長方形の形状を有している。そのため、形状判定部12は、第1の画像上でベースカラー部23が写っている領域を楕円で近似できる。そこで、形状判定部12は、ベースカラー部23の候補領域ごとに、その候補領域に対して以下の慣性等価楕円式を適用することで、その候補領域を楕円近似したときの長軸方向を求める。
ここで、座標(xG,yG)は、候補領域の重心座標である。M2,0、M0,2、M1,1は、それぞれ、正規化された重心二次モーメントである。thetaは、第1の画像上での水平方向(すなわち、x軸)に対する、候補領域を近似した楕円の長軸方向の角度を表す。またRは、候補領域を表す。
候補領域が、ベースカラー部23か否かを判定するために、形状判定部12は、候補領域を近似する楕円(以下、単に近似楕円と呼ぶ)の長軸と候補領域の輪郭との交点の数をカウントする。
図10(a)は、候補領域がベースカラー部23を表している場合の近似楕円の長軸と候補領域の輪郭との交点の一例を示す。上記のように、ベースカラー部23は、一端側が半円状に形成された、略長方形の形状を有している。そのため、候補領域1000がベースカラー部23を表している場合、近似楕円の長軸1001と、候補領域1000の輪郭との交点(点1002、1003)の数は2となる。
一方、図10(b)は、候補領域がベースカラー部23でない場合の近似楕円の長軸と候補領域の輪郭との交点の一例を表す。図10(b)に示されるように、候補領域1010がベースカラー部23でない場合には、近似楕円の長軸1011と、候補領域1010の輪郭との交点(点1012〜1015)の数は、2よりも多くなることがある。
そこで、形状判定部12は、候補領域ごとに、重心座標(xG,yG)を通り、かつ、x軸となす角がthetaの直線をその候補領域の近似楕円の長軸として求める。そして形状判定部12は、長軸と、候補領域の輪郭との交点の数をカウントする。なお、形状判定部12は、候補領域に含まれる画素のうち、隣接する何れかの画素が候補領域に含まれない画素を、候補領域の輪郭に位置する画素とすることができる。
形状判定部12は、候補領域の輪郭と長軸との交点の数が2よりも多い場合、その候補領域はベースカラー部23とは異なると判定する。そして形状判定部12は、その候補領域をベースカラー部23か否かの判定対象から外す。一方、形状判定部12は、候補領域の輪郭と長軸との交点の数が2個である場合、その候補領域は、ベースカラー部23を表している可能性があると判定する。そして形状判定部12は、その候補領域に対して、後述する、ベースカラー部23の形状に関する他の判定基準を適用して、その候補領域がベースカラー部23を表しているか否かをさらに判定する。
ベースカラー部23は、指示装置20の長手方向に沿った中心線に対して線対称な形状を有している。このことは、ユーザが指示装置20をテーブルに対して傾けて把持した場合であっても、第1の画像上でのベースカラー部23の形状が台形になるだけで、その形状が線対称であることに変わりはない。さらに、指示装置20の周囲に、ベースカラー部23の色と類似する色の領域があったとしても、ベースカラー部23とその周囲とは、縁部26によって分離されているため、第1の画像上でのベースカラー部23の形状は線対称であると想定される。そこで、形状判定部12は、候補領域の輪郭と近似楕円の長軸との交点の数が2個である候補領域に対して、近似楕円の長軸に対する形状の対称性を判定する。
図11は、形状の対称性の判定方法を説明するための候補領域を表す図である。本実施形態では、形状判定部12は、候補領域1100の近似楕円の長軸1101と候補領域1100の輪郭との二つの交点1102、1103間を、長軸1101に沿って6等分したときの長軸1101上の等分点を求める。そして形状判定部12は等分点ごとに、その等分点をとおり、かつ長軸1101と直交する法線と候補領域1100の輪郭との交点1104〜1113を求める。図11に示されるように、候補領域1100がベースカラー部23を表している場合、各法線について、2個の交点、合計10個の交点が検出されるはずである。そこで形状判定部12は、各法線と候補領域の輪郭との交点の数が11個以上となる場合、候補領域はベースカラー部23を表していないと判定し、その候補領域をベースカラー部23か否かの判定対象から外す。一方、各法線と候補領域の輪郭との交点の数が10個である場合、形状判定部12は、法線ごとに、その法線と候補領域の輪郭との二つの交点のそれぞれから長軸までの距離を算出する。そして形状判定部12は、各法線について、その二つの交点から長軸までの距離の差が所定の許容範囲(例えば、2画素)以内であれば、候補領域は、ベースカラー部23を表している可能性が有ると判定する。一方、何れかの法線について、その二つの交点から長軸までの距離の差が所定の許容範囲から外れていれば、形状判定部12は、その候補領域はベースカラー部23を表していないと判定し、その候補領域をベースカラー部23か否かの判定対象から外す。
なお、形状判定部12は、各法線と候補領域の輪郭との各交点から長軸までの距離の最大値と最小値を求め、その最大値と最小値の差が所定の許容範囲から外れていれば、その候補領域はベースカラー部23を表していないと判定してもよい。
候補領域が近似楕円の長軸に対して線対称であると判定された場合、ベースカラー部23の長辺と短辺は既知のため、形状判定部12は、その候補領域のアスペクト比がベースカラー部23のアスペクト比に相当する範囲内に含まれるか否か判定する。例えば、形状判定部12は、候補領域の輪郭とその近似楕円の長軸との二つの交点(xi1, yi1)と(xi2, yi2)間の距離を候補領域の長辺の長さLen1として算出する。また、形状判定部12は、長軸に対する上記の各法線について、その法線と候補領域の輪郭との二つの交点間の距離を算出し、その距離の平均値を候補領域の短辺の長さLen2とする。そして形状判定部12は、候補領域のアスペクト比(Len1/Len2)が次式を満たすか否か判定する。
ここで、アスペクト比の下限値Amin及び上限値Amaxは、例えば、 (BASELEN+SUBLEN1+SUBLEN2)/BASEWを基準値として、指示装置20の把持の仕方によるアスペクト比の変化を考慮した値に設定され、例えば、Amin=2.5、Amax=6.5に設定される。
形状判定部12は、(4)式を満たさない候補領域は、ベースカラー部23を表していないと判定し、ベースカラー部23の判定対象から除外する。一方、形状判定部12は、(4)式を満たす候補領域を表す情報を、相対位置判定部13へ渡す。
相対位置判定部13は、形状判定部12から受け取った、第1の画像及び第2の画像のそれぞれについての候補領域を表す情報に基づいて、その候補領域がベースカラー部23か否か判定する。その際、相対位置判定部13は、候補領域に対して、ベースカラー部23と各サブカラー部との相対的な位置関係と同じ位置関係にある領域に、そのサブカラー部の色に相当する色を持つ画素が含まれる場合、候補領域にベースカラー部23が写っていると判定する。なお、相対位置判定部13は、第1の画像及び第2の画像に対して同一の処理を実行するので、以下では、第1の画像に対する処理を例として説明する。
相対位置判定部13は、候補領域に対して、ベースカラー部23と第1のサブカラー部24間の相対的な位置関係と同じ位置関係となる領域を、第1のサブカラー部24の色に相当する色を持つ画素の探索範囲に設定する。
本実施形態では、図3(a)に示されるように、第1のサブカラー部24は、指示装置20の長手方向に沿って、すなわち、ベースカラー部23の長手方向に沿って、ベースカラー部23の把持部22側に隣接している。そこで、相対位置判定部13は、候補領域の長手方向の両端近傍に、それぞれ、探索範囲を設定する。
図12は、第1のサブカラー部24の色に相当する色を持つ画素の探索範囲の一例を示す図である。探索範囲1201は、形状判定部12で求めた候補領域1200の近似楕円の長軸1210と候補領域1200の輪郭との一方の交点(xi1, yi1)から、長軸1210に沿って候補領域1200から離れる方向へ所定距離だけ離れた位置までの範囲に設定される。一方、探索範囲1202は、長軸1210と候補領域1200の輪郭との他方の交点(xi2, yi2)から、長軸1210に沿って候補領域1200から離れる方向へ所定距離だけ離れた位置までの範囲に設定される。所定距離は、二つの交点(xi1, yi1)と(xi2, yi2)間の距離Len1に、ベースカラー部23の長さBASELENに対する第1のサブカラー部24の長さSUBLEN1の比を乗じた値(Len1*SUBLEN1/BASELEN)とすることができる。
相対位置判定部13は、探索範囲ごとに、その探索範囲に含まれ、かつ、長軸上に位置する各画素のHSV値を取得する。そして相対位置判定部13は、探索範囲ごとに、その探索範囲内の各画素のうち、HSV値が下記の条件を満たす画素の数が所定数(例えば、1〜3)以上となるか否か判定する。
何れかの探索範囲について、HSV値が(5)式の条件を満たす画素が所定数以上存在する場合、相対位置判定部13は、その探索範囲が第1のサブカラー部24を表している可能性があると判定する。
なお、Hsmax1及びHsmin1は、第1のサブカラー部24の色に相当する色相の上限値及び下限値を表す。本実施形態では、第1のサブカラー部24の色相の値が280°である。そこで、投影装置2から指示装置20上に投影される映像による色相の変化量を考慮して、例えば、Hsmax1=300°、Hsmin1=260°に設定される。また、Ssmax1及びSsmin1は、第1のサブカラー部24の色に相当する彩度の上限値及び下限値を表す。さらに、Vsmax1及びVsmin1は、第1のサブカラー部24の色に相当する明度の上限値及び下限値を表す。Ssmax1、Ssmin1、Vsmax1及びVsmin1も、Hsmax1及びHsmin1と同様に、投影装置2から指示装置20上に投影される映像を様々に変化させて第1のサブカラー部24の色の明度及び彩度の変化範囲を測定し、その変化範囲の上限及び下限の値に設定されればよい。
何れの探索範囲についても、第1のサブカラー部24の色に相当する色を持つ画素が所定数未満しか検出されなかった場合、相対位置判定部13は、候補領域はベースカラー部23を表していないと判定し、その候補領域をベースカラー部23の判定対象から外す。一方、何れかの探索範囲において、第1のサブカラー部24の色に相当する色を持つ画素が所定数以上検出された場合、相対位置判定部13は、第2のサブカラー部25の色に相当する色を持つ画素を探索する第2の探索範囲を設定する。
第2の探索範囲は、第1のサブカラー部24の色に相当する色を持つ画素が所定数以上検出された探索範囲を基準として設定される。すなわち、相対位置判定部13は、その探索範囲に対して、候補領域が隣接する側と反対側の端部に隣接し、かつ、候補領域の近似楕円の長軸に沿って、第1の画像上での第2のサブカラー部25の長さSUBLEN2に相当する範囲を第2の探索範囲に設定する。すなわち、相対位置判定部13は、長軸に沿った第2の探索範囲の長さをLen1*SUBLEN2/BASELENとすればよい。
相対位置判定部13は、第2の探索範囲に含まれ、かつ、長軸上に位置する各画素のHSV値を取得する。そして相対位置判定部13は、第2の探索範囲内の各画素のうち、HSV値が下記の条件を満たす画素の数が所定数(例えば、1〜3)以上となるか否か判定する。
HSV値が(6)式の条件を満たす画素の数が所定数以上である場合、相対位置判定部13は、候補領域は、第1の画像上でベースカラー部23を表しているベースカラー領域であると判定する。一方、HSV値が(6)式の条件を満たす画素の数が所定数未満である場合、相対位置判定部13は、候補領域はベースカラー部23を表していないと判定する。
なお、Hsmax2及びHsmin2は、第2のサブカラー部25の色に相当する色相の上限値及び下限値を表す。本実施形態では、第2のサブカラー部25の色相の値が120°である。そこで、投影装置2から指示装置20上に投影される映像による色相の変化量を考慮して、例えば、Hsmax2=140°、Hsmin2=100°に設定される。また、Ssmax2及びSsmin2は、第2のサブカラー部25の色に相当する彩度の上限値及び下限値を表す。さらに、Vsmax2及びVsmin2は、第2のサブカラー部25の色に相当する明度の上限値及び下限値を表す。Ssmax2、Ssmin2、Vsmax2及びVsmin2も、Hsmax2及びHsmin2と同様に、投影装置2から指示装置20上に投影される映像を様々に変化させて第2のサブカラー部25の色の明度及び彩度の変化範囲を測定し、その変化範囲の上限及び下限の値に設定されればよい。
相対位置判定部13は、候補領域がベースカラー領域であると判定した場合、ベースカラー領域に関する情報を先端検出部14に通知する。例えば、相対位置判定部13は、ベースカラー領域に関する情報として、ベースカラー領域の近似楕円の長軸を表す式、及び、その長軸と候補領域の輪郭との二つの交点(xi1, yi1)、(xi2, yi2)の座標を先端検出部14に通知する。さらに、相対位置判定部13は、その二つの交点のうち、各サブカラー部の色に相当する色を持つ画素が検出された探索範囲に近い方を示す情報を、ベースカラー領域に関する情報として先端検出部14に通知する。
先端検出部14は、位置特定部の一例であり、第1の画像について、相対位置判定部13から、ベースカラー領域に関する情報が通知されると、その情報に基づいて第1の画像上での指示装置20の先端位置を検出する。同様に、先端検出部14は、第2の画像について、相対位置判定部13から、ベースカラー領域に関する情報が通知されると、その情報に基づいて第2の画像上での指示装置20の先端位置を検出する。なお、先端検出部14は、第1の画像及び第2の画像に対して同一の処理を実行するので、以下では、第1の画像に対する処理を例として説明する。
先端検出部14は、ベースカラー領域の近似楕円の長軸と候補領域の輪郭との二つの交点(xi1, yi1),(xi2, yi2)のうち、各サブカラー部に相当する色を持つ画素が検出された探索範囲に近い方を、把持部22側のベースカラー部23の端部の中心点(xb, yb)とする。一方、先端検出部14は、その二つの交点のうち、各サブカラー部の色に相当する色を持つ画素が検出された探索範囲から遠い方を、指示装置20の先端側のベースカラー部23の端点(xt, yt)とする。
図13は、第1の画像上でのベースカラー部23と指示装置20の先端との位置関係の一例を示す図である。指示装置20の先端(xc, yc)は、ベースカラー部23を表すベースカラー領域の近似楕円の長軸1301に沿って、ベースカラー部23の先端(xt, yt)から、第1の画像上での縁部26の幅だけ離れた位置にあると推定される。そのため、先端検出部14は、例えば、次式に従って、指示装置20の先端(xc, yc)を求める。
ここで、QZLENは、縁部26の幅の長さであり、BASELENは、ベースカラー部23の長手方向の長さである。
先端検出部14は、第1の画像上で求められた指示装置20の先端の座標と、第2の画像上で求められた指示装置20の先端の座標とを、先端位置決定部15へ通知する。なお、説明の便宜上、以下では、第1の画像上での指示装置20の先端の座標を(xc1, xc1)と表記し、第2の画像上での指示装置20の先端の座標を(xc2, xc2)と表記する。また、(xc1, xc1)は、カメラ4−1の撮像光学系の光軸に対応する画像上の点、すなわち、第1の画像の中心を原点とする座標系での座標である。同様に、(xc2, xc2)も、カメラ4−2の撮像光学系の光軸に対応する画像上の点、すなわち、第2の画像の中心を原点とする座標系での座標である。
先端位置決定部15は、実空間位置特定部の一例であり、最新の第1の画像と第2の画像の組について、それぞれ、指示装置20の先端の座標が検出されている場合、実空間における指示装置20の先端の位置を求める。
本実施形態では、先端位置決定部15は、三角測量の原理に基づいて、第1の画像上の先端の座標(xc1, xc1)と、第2の画像上の先端の座標(xc2, xc2)から、実空間での指示装置20の先端の位置を求める。例えば、先端位置決定部15は、次式に従って、指示装置20の先端のカメラ4−1の撮像光学系の前側主点を原点とするカメラ座標系における、指示装置20の先端の位置の三次元座標(XC,YC,ZC)を算出する。ただし、カメラ座標系では、カメラ4−1の撮像光学系の前側主点からカメラ4−2の撮像光学系の前側主点へ向かう方向をX軸方向とし、カメラ4−1の撮像光学系の光軸に平行な方向をZ軸方向とする。そしてX軸方向及びZ軸方向と直交する方向をY軸方向とする。
ここで、Dは、カメラ4−1の撮像光学系の前側主点と第2のカメラ4−2の撮像光学系の前側主点間の距離、すなわち基線長(mm)である。Wは、第1及び第2の画像の水平方向の画素数である。Hは、第1及び第2の画像の垂直方向の画素数である。θは、カメラ4−1、4−2の対角方向の視野角である。
先端位置決定部15は、テーブルに載置された対象物30に指示装置20の先端が接触しているか否かの判定を容易にするため、指示装置20の先端の座標を、カメラ座標系から、テーブル上の任意の点を原点とする世界座標系の座標に変換することが好ましい。
図14は、カメラ座標系と世界座標系の位置関係の一例を示す図である。カメラ座標系1400では、上述したように、カメラ4−1の撮像光学系の前側主点が原点に設定される。そしてカメラ4−1の撮像光学系の前側主点からカメラ4−2の撮像光学系の前側主点へ向かう方向がX軸方向となり、カメラ4−1の撮像光学系の光軸に平行な方向がZ軸方向となり、X軸方向及びZ軸方向と直交する方向がY軸方向となる。
一方、世界座標系1401では、対象物30が載置されるテーブル1402上に原点が設定される。この例では、投影装置2からの映像が投影される領域のコーナーのうちの一つが原点とされる。そして、テーブル1402の表面と平行な面において、カメラ4−1の撮像光学系の前側主点とカメラ4−2の撮像光学系の前側主点とを結ぶ線と平行となるように世界座標系1401のX軸方向が設定される。また、テーブル1402の表面と平行な面において、X軸方向と直交する方向にY軸方向が設定される。そしてテーブル1402の表面の法線方向が世界座標系1401のZ軸方向となる。
先端位置決定部15は、次式に従って、カメラ座標系における指示装置20の先端の位置の座標P=t(XC,YC,ZC)を、世界座標系における座標P'= t(Xf,Yf,Zf)に変換する。
ここで、Rは、カメラ座標系と世界座標系間の回転量を表す回転行列であり、Tは、カメラ座標系の原点と世界座標系の原点間の平行移動量を表す平行移動ベクトルである。図14に示されるように、カメラ座標系と世界座標系とが配置される場合、カメラ座標系のX軸を回転軸として、カメラ座標系と世界座標系とは、角度θ回転した関係になっているため、回転行列Rは次式で表される。
特に、カメラ4−1の撮像光学系の光軸が対象物30が載置されたテーブルの法線と平行となるようにカメラ4−1が設置されている場合、θ=180°となる。
また、カメラ座標系の原点と世界座標系の原点間の各軸における差が、それぞれ、Da、Db、Dcである場合、平行移動ベクトルTは次式で表される。
なお、回転行列R及び平行移動ベクトルTは、カメラ4−1及びカメラ4−2の設置位置、及び投影装置2の投影範囲に基づいて予め求められ、記憶部6に記憶される。
(9)式〜11(式)より、世界座標系における、指示装置20の先端の位置の座標P'= t(Xf,Yf,Zf)は、次式に従って算出される。
先端位置決定部15は、世界座標系における、指示装置20の先端の位置の座標P'を、その算出に用いられた第1の画像または第2の画像の生成時刻と対応付けて記憶部6に記憶する。例えば、カメラ4−1及びカメラ4−2の撮影周期が1/60秒である場合、直近の2秒間において、最大120組の指示装置20の先端の座標P'が記憶部6に記憶される。
接触判定部16は、指示装置20を用いた入力操作を検出するために、指示装置20の先端が対象物30に接触したか否かを判定する。そして接触判定部16は、指示装置20の先端が対象物30に接触している場合、その接触位置に応じた入力操作が行われたと判定する。
接触判定部16は、記憶部6から、指示装置20の先端の位置P'のうちのX方向及びY方向の座標(Xf,Yf)に対応する、対象物30の高さZtを読み込む。この高さZtも、世界座標系で表される。そして接触判定部16は、指示装置20の先端の位置P'のZ方向の座標であるZfと対象物30の高さZtとが下記の条件を満たす場合、指示装置20の先端は対象物30と接触したと判定する。一方、下記の条件が満たされない場合には、接触判定部16は、指示装置20の先端は対象物30と接触していないと判定する。
ここで、FHは、例えば、指示装置20の先端部分における厚みに相当する値であり、例えば、10mmに設定される。あるいは、FHは、指示装置20の先端部分における厚みに2〜3mm程度のマージンを加算した値、例えば、12〜13mmに設定されてもよい。
なお、接触判定部16は、直近の所定期間(例えば、1/12秒)の第1及び第2の画像から検出された指示装置20の先端の位置P'に基づいて、指示装置20の先端が対象物30に接触したか否かを判定してもよい。例えば、接触判定部16は、過去の所定期間(例えば、5フレーム分)の指示装置20の先端の位置P'の平均値(Xfave, Yfave, Zfave)における、Z座標の値Zfaveが≦(Zt+FH)以下である場合、指示装置20の先端が対象物30に接触したと判定してもよい。
接触判定部16は、指示装置20の先端が対象物30に接触したと判定した場合、その先端の位置P'を入力処理部17へ通知する。
入力処理部17は、指示装置20の先端が対象物30に接触した位置、すなわち、先端が対象物30に接触したと判定されたときのその先端の位置P'に応じた入力処理を、例えば、制御部7で動作中のアプリケーションプログラムに応じて実行する。例えば、入力処理部17は、投影装置2に、その位置P'を中心とする所定の色かつ所定のサイズの円を含む映像を投影させる。
この場合、入力処理部17は、世界座標系での位置P'に相当する投影装置2の表示画面上の位置を特定する。そのために、入力処理部17は、世界座標系での位置P'の座標を、投影装置2の表示画面の中心を原点とする座標系(以下、便宜上、プロジェクタ座標系と呼ぶ)での座標P''=t(Xp, Yp, Zp)に変換する。世界座標系からプロジェクタ座標系への座標の変換は、(9)式と同様の式により計算される。その際、回転行列Rは、世界座標系からプロジェクタ座標系への回転量を表し、平行移動ベクトルTは、世界座標系の原点からプロジェクタ座標系の原点への移動量を表す。そして入力処理部17は、プロジェクタ座標系での位置P''の座標に対応する、投影装置2の表示画面上の二次元座標(xp, yp)に変換する。例えば、入力処理部17は、投影装置2の表示画面上の二次元座標(xp, yp)を、次式に従って算出する。
ここで、fpは、投影装置2の投影光学系の焦点距離である。pimageWは、投影装置2の水平方向の表示画素数である。pimageHは、投影装置2の垂直方向の表示画素数である。なお、投影装置2に、位置P'を中心とる所定の半径を持つ円を投影させるために、入力処理部17は、対象物30が載置されるテーブル上でのその円に接する正方形の四隅の点の世界座標系での座標を求め、その各点の座標に対応する、投影装置2の表示画面上の二次元座標に変換する。そして入力処理部17は、その各点を4隅とする正方形に内接する円を投影装置2の表示画面に描画させればよい。
入力処理部17は、上記の処理に限られず、指示装置20の先端が対象物30に接触した位置P'に応じた様々な入力処理を実行できる。例えば、入力処理部17は、位置P'に応じたアプリケーションを起動したり、位置P'に応じて投影装置2が投影する映像を変化させてもよい。また入力処理部17は、位置P'の時間的な変化に応じた入力処理を実行してもよい。例えば、入力処理部17は、位置P'の移動方向に沿って、投影装置2が投影する映像をスクロールさせたり、拡大あるいは縮小させてもよい。
図15は、入力装置1の制御部7により実行される、入力処理の動作フローチャートである。制御部7は、カメラ4−1、4−2から、第1及び第2の画像を受け取る度に、下記の動作フローチャートに従って入力処理を実行する。
候補領域検出部11は、カメラ4−1で生成された第1の画像及び第2のカメラ4−2で生成された第2の画像のそれぞれから、ベースカラー部の色に相当する色を持つ領域を、ベースカラー部の候補領域として検出する(ステップS101)。形状判定部12は、第1の画像及び第2の画像のそれぞれについて、各候補領域のうち、ベースカラー部の形状と一致する形状を持つ候補領域を選択する(ステップS102)。
相対位置判定部13は、第1の画像及び第2の画像のそれぞれについて、選択された候補領域に対して、ベースカラー部と各サブカラー部間の相対的な位置関係と同じ位置関係となる位置に探索範囲を設定する。そして相対位置判定部13は、選択された候補領域のうち、その探索範囲内に、対応するサブカラー部の色に相当する色を持つ画素が所定数以上ある候補領域を、ベースカラー部が表されたベースカラー領域とする(ステップS103)。なお、ステップS101〜S103の何れかにて、該当する候補領域またはベースカラー領域が検出されない場合、制御部7は、入力処理を終了する。
先端検出部14は、第1の画像及び第2の画像のそれぞれについて、ベースカラー領域に対して、ベースカラー部23と指示装置20の先端間の相対的な位置関係に対応する位置関係となる位置を、指示装置20の先端の画像上での位置とする(ステップS104)。先端位置決定部15は、第1の画像上の指示装置20の先端の位置と、第2の画像上の指示装置の先端の位置とから、実空間での指示装置20の先端の位置、すなわち、世界座標系でのその先端の位置P'=(Xf, Yf, Zf)を特定する(ステップS105)。
接触判定部16は、指示装置20の先端の位置P'の高さZfが、位置(Xf, Yf)における、対象物30の高さZtにオフセットFHを加えた高さ以下か否か判定する(ステップS106)。高さZfが(Zt+FH)以下である場合(ステップS106−Yes)、接触判定部16は、指示装置20の先端が対象物30に接触したと判定する。そして入力処理部17は、その接触位置(Xf, Yf)に応じた入力操作を実行する(ステップS107)。ステップS107の後、あるいは、ステップS106にて高さZfが(Zt+FH)よりも高い場合(ステップS106−No)、制御部7は、入力処理を終了する。
以上に説明してきたように、この操作表示システムでは、入力装置が、各カメラにより生成された画像から、指示装置のベースカラー部に相当する色を持つ領域を候補領域として検出する。そして入力装置は、その候補領域について、形状及び候補領域の周囲に指示装置のサブカラー部に相当する色を持つ画素が存在するか否かにより、候補領域がベースカラー部を表しているか否か判定する。これにより、この入力装置は、画像上での指示装置が写っている領域を正確に検出できる。そしてこの入力装置は、各画像上での指示装置の先端の位置から、実空間での指示装置の先端の位置を求めて対象物か否かを判定するので、指示装置が対象物に接触したか否かを正確に判定できる。そのため、この入力装置は、指示装置を用いるユーザの意図に応じた入力処理を正確に実行できる。
なお、相対位置判定部13により、同一の画像上でベースカラー領域が複数検出される可能性がある。この場合、何れのベースカラー領域がベースカラー部を表しているかが特定されない。そこで変形例によれば、制御部は、ベースカラー領域が複数検出された場合、ベースカラー領域ごとに、指示装置20の特徴を表す度合いであるスコアを算出し、そのスコアが最大となるベースカラー領域に基づいて、指示装置20の先端の位置を求めてもよい。
図16は、この変形例による、制御部71の機能ブロック図である。制御部71は、候補領域検出部11と、形状判定部12と、相対位置判定部13と、先端検出部14と、先端位置決定部15と、接触判定部16と、入力処理部17と、スコア算出部18とを有する。この変形例による制御部71は、上記の実施形態による制御部7と比較して、スコア算出部18を有する点で異なる。そこで以下では、スコア算出部18と、その関連部分について説明する。制御部71が有するその他の構成要素の詳細については、上記の実施形態における対応する構成要素の説明を参照されたい。
スコア算出部18は、選択部の一例であり、第1の画像または第2の画像において、ベースカラー領域が複数検出された場合、複数のベースカラー領域のそれぞれごとに、指示装置20の特徴を表す度合いであるスコアを算出する。そしてスコア算出部18は、そのスコアに基づいて、ベースカラー部23が表されているベースカラー領域を特定する。なお、スコア算出部18は、第1の画像及び第2の画像に対して同一の処理を実行するので、以下では、第1の画像に対する処理を例として説明する。
本実施形態では、スコア算出部18は、最初に、各ベースカラー領域について、そのベースカラー領域の周囲に、指示装置20の縁部26に相当する色を持つ領域が有るか否か判定する。
図3(a)に示されるように、縁部26は、ベースカラー部23の周囲を囲うように設けられている。そこでスコア算出部18は、ベースカラー領域ごとに、そのベースカラー領域の周囲に、縁部26の色に相当する色を持つ画素を探索する探索範囲を設定する。
図17は、ベースカラー領域の周囲に設定される縁部26の探索範囲の一例を示す図である。この例では、スコア算出部18は、ベースカラー領域1700の近似楕円の長軸1701とベースカラー領域1700の輪郭との二つの交点間の線分を6等分する位置のそれぞれについて、長軸に対する法線を算出する。そしてスコア算出部18は、各法線について、ベースカラー領域の輪郭との交点1711〜1720を求める。
同様に、スコア算出部18は、各サブカラー部に相当する第1の画像上の領域(すなわち、相対位置判定部13により設定される探索範囲)内でも、長軸1701に対する法線を算出する。スコア算出部18は、その法線に沿って、長軸1701から離れる方向に、順次画素の色を調べる。そしてスコア算出部18は、サブカラー領域の色に相当する色を持つ画素のうちの長軸1701から最も離れた画素を、第1の画像上でのサブカラー部が写っている領域の輪郭とその法線との交点1721〜1724とする。
スコア算出部18は、各法線について、その法線上のベースカラー領域の輪郭またはサブカラー部が写っている領域の輪郭との交点から、長軸1701から離れる方向に所定距離の範囲を探索範囲とする。なお、所定距離は、第1の画像上での縁部26の幅に相当する長さであり、例えば、Len1*QZLEN/BASELENに設定される。さらに、スコア算出部18は、長軸1701に沿って、第2のサブカラー部25の色に相当する色を持つ範囲のうち、ベースカラー領域1700から最も遠い位置を、第2のサブカラー部25が写っている領域の輪郭と長軸1701との交点1725とする。そしてスコア算出部18は、その交点1725から、長軸1701に沿ってベースカラー領域1700から離れる方向に所定距離の範囲も探索範囲としてよい。
スコア算出部18は、各探索範囲について、法線または長軸1701に沿った画素のうち、縁部26の色に相当する色を持つ画素を検出する。
例えば、スコア算出部18は、HSV値が下記の条件を満たす画素を、縁部26の色に相当する色を持つ画素として検出する。
ここで、Hqmax及びHqminは、縁部26の色に相当する色相の上限値及び下限値を表す。また、Sqmax及びSqminは、縁部26の色に相当する彩度の上限値及び下限値を表す。さらに、Vqmax及びVqminは、縁部26の色に相当する明度の上限値及び下限値を表す。
スコア算出部18は、各ベースカラー領域について、各探索範囲のうち、縁部26の色に相当する色を持つ画素が検出された探索範囲の数を第1のスコアとして算出する。スコア算出部18は、第1のスコアが所定数(例えば、8)以上有る場合、対応するベースカラー領域に、ベースカラー部23が表されている可能性が有ると判定する。一方、スコア算出部18は、第1のスコアが所定数未満のベースカラー領域は、ベースカラー部23を表していないと判定する。
スコア算出部18は、第1のスコアが所定数以上となるベースカラー領域が一つだけである場合、そのベースカラー領域は、ベースカラー部23を表していると判定する。一方、スコア算出部18は、第1のスコアが所定数以上となるベースカラー領域が複数有る場合、それら複数のベースカラー領域の第1のスコアのうちの最大値を求める。そしてスコア算出部18は、第1のスコアが最大値となるベースカラー領域が一つだけである場合、そのベースカラー領域がベースカラー部23を表していると判定する。
一方、第1のスコアが最大値となるベースカラー領域が複数存在する場合、スコア算出部18は、第1のスコアが最大値となる各ベースカラー領域について、ベースカラー領域の輪郭の直線性を第2のスコアとして算出する。
図18は、第2のスコアの算出基準となる、ベースカラー領域の輪郭線を示す図である。スコア算出部18は、ベースカラー領域1800の近似楕円の長軸1801とベースカラー領域1800の輪郭との二つの交点間の線分を6等分する各位置での長軸1801に対する法線とベースカラー領域1800の輪郭との交点1811〜1820を求める。そしてスコア算出部18は、長軸1801に対して一方の側に存在する5個の交点1811〜1815の近似直線1821を、例えば最小二乗法により算出する。またスコア算出部18は、長軸1801に対して他方の側に存在する5個の交点1816〜1820の近似直線1822を、例えば最小二乗法により算出する。
スコア算出部18は、各ベースカラー領域について、次式に従って第2のスコアLScoreを算出する。
ここでDmaxは、交点1811〜1815から近似直線1821までの距離の最大値と、交点1816〜1820から近似直線1822までの距離の最大値のうちの大きい方の値である。なお、(16)式において、ベースカラー部23の幅BASEWの代わりに、各法線について求められた二つの輪郭点間の距離の平均値が利用されてもよい。
第2のスコアLScoreは、ベースカラー領域の長手方向に沿った輪郭が直線らしいほど、高い値となる。すなわち、第2のスコアLScoreは、近似直線1821、1822と、ベースカラー部24と縁部26間の境界との類似度合いが高いほど、高い値となる。
図19は、第2のスコアLScoreが低くなるベースカラー領域の例を示す図である。ベースカラー領域1900に示されるように、長手方向に沿ったベースカラー領域の輪郭が曲線の組み合わせとなっている場合、Dmaxが比較的大きな値となるため、第2のスコアLScoreは小さくなる。また、ベースカラー領域1901に示されるように、長手方向に沿ったベースカラー領域の輪郭が折れ線状に形成される場合も、Dmaxが比較的大きな値となるため、第2のスコアLScoreは小さくなる。
スコア算出部18は、各ベースカラー領域の第2のスコアのうちの最大値を求める。そしてスコア算出部18は、第2のスコアが最大値となるベースカラー領域が一つだけである場合、そのベースカラー領域がベースカラー部23を表していると判定する。
一方、第2のスコアが最大値となるベースカラー領域が複数存在する場合、スコア算出部18は、第2のスコアが最大値となる各ベースカラー領域について、ベースカラー領域内の色のバラツキ度合いを第3のスコアとして算出する。
スコア算出部18は、各ベースカラー領域について、そのベースカラー領域内の全ての画素、あるいはそのベースカラー領域内で近似楕円の長軸上の各画素の赤色(R)成分、緑色(G)成分、青色(B)成分のそれぞれについて標準偏差を算出する。そしてスコア算出部18は、その標準偏差を用いて、次式に従って第3のスコアCScoreを算出する。
ここで、関数max(a,b,c)は、変数{a,b,c}のうちの最大値を出力する関数である。またσr、σg、σbは、それぞれ、赤色成分、緑色成分、青色成分についての標準偏差である。
第3のスコアCScoreは、各色の成分について、色のばらつきが少ないほど高くなる。したがって、ベースカラー領域内に文字が含まれていたり、ベースカラー領域内の色がグラデーション状に変化する場合には、第3のスコアCScoreは低くなる。本実施形態では、ベースカラー部23は、単色で着色されているので、ベースカラー領域がベースカラー部23を表している場合、色のバラツキ度合いは小さくなる。そこでスコア算出部18は、第2のスコアが最大値となる各ベースカラー領域のうち、第3のスコアCScoreが最大となるベースカラー領域が、ベースカラー部23を表していると判定する。
なお、スコア算出部18は、第1のスコア〜第3のスコアの算出順序を入れ替えてもよい。例えば、スコア算出部18は、第3のスコアが最大となるベースカラー領域が複数存在する場合に、その複数のベースカラー領域に対して第2のスコアを算出し、第2のスコアが最大となるベースカラー領域にベースカラー部23が表されていると判定してもよい。
以上に説明してきたように、この変形例によれば、入力装置は、指示装置の周囲に、ベースカラー部と各サブカラー部の色及び相対的な位置関係と似たパターンが存在する場合でも、各画像上で指示装置が写っている領域を正確に検出できる。
また、他の変形例によれば、操作表示システムは、二つのカメラの代わりに、一つのカメラと、画素ごとに、その画素に写っている被写体までの距離を画素値として表す距離画像を生成するデプスカメラとを有していてもよい。この場合には、入力装置は、一つのカメラにより生成された画像上で指示装置のベースカラー部及び各サブカラー部が写っている領域と、指示装置の先端の位置を検出する。入力装置は、距離画像上でベースカラー部及び各サブカラー部が写っている領域と最も一致する領域を検出することで、距離画像上での指示装置の先端の位置を特定する。そして入力装置は、その特定された位置における画素の値に基づいて、指示装置の先端の世界座標系での座標を求めてもよい。
さらに他の変形例によれば、指示装置のマーカ部に含まれるベースカラー部と各サブカラー部は、同一の方向から見える位置に付されていれば、上記の実施形態と異なる配列に従って設けられていてもよい。例えば、指示装置の長手方向に沿って、ベースカラー部よりも先端側に、一つ以上のサブカラー部が設けられていてもよい。あるいは、サブカラー部のうちの少なくとも一つが、指示装置の長手方向と直交する方向に沿ってベースカラー部と並ぶように、ベースカラー部と各サブカラー部は配列されていてもよい。あるいはまた、ベースカラー部と各サブカラー部とは、互いに隣接していなくてもよい。
上記の実施形態または変形例による入力装置の制御部が有する各機能をコンピュータに実現させるコンピュータプログラムは、コンピュータによって読取り可能な媒体、例えば、磁気記録媒体、光記録媒体、または半導体メモリに記憶された形で提供されてもよい。
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。