以下、図面に基づいて、実施形態を説明する。
図1は、検出装置及び検出プログラムの一実施形態を示す。
図1に示した検出装置10は、撮像部11と、第1検出部12とを有する。検出装置10は、撮像部11により、表示装置DUの表示画面SCを撮影することで得られた画像IMGに基づいて、例えば、利用者の指fngによる表示画面SCへの接触を検出し、検出結果を処理装置PCに渡す。処理装置PCは、表示装置DU及び検出装置10の動作を制御する上位装置である。表示装置DU及び検出装置10がコンピュータ装置に含まれている場合に、処理装置PCは、コンピュータ装置の全体を制御するプロセッサなどである。
検出装置10に含まれる第1検出部12は、特定用途向けIC(Integrated Circuit)などを用いたハードウェアで実現されてもよいし、コンピュータ装置のプロセッサが、図3を用いて説明するプログラムを実行することで実現されてもよい。
検出装置10は、利用者が指fngで表示画面SCに触れる場合に限らず、例えば、表示画面SC上の位置の指示に用いられるスタイラスペンなどの指示部材で触れる場合にも、表示画面SCへの接触を検出することができる。以下では、利用者が指fngで表示画面SCに触れる場合に好適な検出装置10の実施形態について説明する。
撮像部11は、表示装置DUの表示画面SCを撮像し、撮像で得られた画像IMGを第1検出部12に渡す。
第1検出部12は、撮像部で得られた画像IMGに含まれる指fngの画像の大きさが、画像IMGにおける指fngの画像の位置毎に予め設定された第1閾値以下である場合に、指の画像の位置で示される表示画面SC上の箇所への指fngの接触を検出する。また、第1検出部12は、接触を検出した場合に、指fngの画像の位置で示される表示画面SC上の箇所に利用者の指fngが接触した旨を示す情報を処理装置PCに通知する。
ここで、図2を用いて、第1検出部12により、表示画面SCへの指fngの接触を検出する方法について説明する。
図2は、図1に示した撮像部11による撮像で得られる画像IMGの例を示す。なお、図2に示した構成要素のうち、図1に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図2に破線で囲んで示した画像IMGは、図1に示した撮像部11の撮像範囲が表示画面SCの全体を含むように撮像部11を配置した場合に得られる画像の例である。コンピュータ装置の利用者の手が、表示画面SC上に接触した場合や、利用者の手が表示画面SC上にかざされた場合に、画像IMGは、利用者の手の像ht(または像hf)を含む。
図2に実線で示した像htは、表示画面SC上に利用者の手が接触している場合に画像IMGに含まれる画像の例である。点線で示した像hfは、表示画面SC上に利用者の手がかざされている場合(即ち、利用者の手が表示画面SCから離れている場合)に画像IMGに含まれる画像の例である。
図2に示した像htと像hfとでは、画像IMGにおける指の先端部の位置が同一の点Pで示されている。即ち、画像IMGにおいて、指が表示画面SCに接触している状態と非接触である状態とで、画像IMGにおいて利用者の指が対向する表示画面SC上の点の見かけの位置が一致している。そして、画像IMGにおいて、表示画面SC上の同一の箇所に対向して見える2つの像htと像hfとの大きさとを比べると、像htよりも像hfの方が大きい。表示画面SC上の同一の箇所に対向して見える2つの像htと像hfとの大きさの違いは、表示画面SCに利用者の指が接触している場合に比べて、利用者の指が表示画面SCから離れている場合の方が、撮像部11から見た視野角が大きくなることによって生じる。
つまり、画像IMGに含まれる利用者の指の画像の大きさに基づいて、画像IMGにおける指の先端部の位置に対応する表示画面SC上の箇所に、利用者の指が接触しているか否かを判定することができる。例えば、第1検出部12は、表示画面SC上の点Pに利用者の指が接触した状態を撮像部11で撮像して得られた画像IMGに含まれる指の画像の幅Wtを、画像IMGにおける点Pに対応する第1閾値としてもよい。同様にして、第1検出部12は、画像IMGに含まれる各画素についての第1閾値を設定しておくことができる。また、第1検出部12は、画像IMGに含まれる指の画像の幅が、例えば、指の先端部に対応する画素について設定された第1閾値以下である場合に、表示画面SCの対応する箇所への指の接触を検出してもよい。
なお、各画素に対応する第1閾値は、例えば、撮像部11と表示画面SCとの位置関係から予め算出しておくことが望ましい。例えば、第1検出部12は、表示画面SCの各画素に対応する箇所に接触させた平均的な太さの指を撮像部11で撮像する場合の視野角に相当する画素数を、各画素の位置に対応する第1閾値として求め、求めた第1閾値を位置に対応して保持してもよい。また、第1検出部12は、図10及び図12を用いて後述するようにして、撮像部11により、表示画面SCに設定されたサンプル点に接触させた利用者の指を撮像して得られる画像IMGから、サンプル点に対応して求められた第1閾値を示す情報を受けてもよい。
また、第1検出部12が第1閾値として用いる値は、表示画面SCに接触した指を撮像した画像IMGにおける指の画像の幅に相当する値に限られない。つまり、第1検出部12が第1閾値として用いる値は、画像IMGにおいて表示画面SCの同じ箇所に対向して見える、表示画面SCに接触した指と非接触である指の画像の大きさの違いが反映される値であればよい。例えば、第1検出部12は、表示画面SCの各画素に対応する箇所に接触させた平均的な大きさの爪を持つ指を撮像部11で撮像して得た画像IMGに含まれる爪の部分の面積を示す値を第1閾値として設定してもよい。
図3は、図1に示した検出装置10の動作を示す。即ち、図3は、図1に示した撮像部11で得られた画像IMGに含まれる指の画像の大きさに基づいて、表示画面SCへの指の接触を検出するための検出プログラムの一実施形態を示す。
ステップS301において、撮像部11は、表示画面SCの画像IMGを取得する。
ステップS302において、第1検出部12は、画像IMGに含まれる利用者の指の画像の幅と、画像IMGにおける利用者の指の位置に対応する第1閾値とを比較する。
ステップS303において、第1検出部12は、画像IMGに含まれる指の画像の幅が第1閾値以下であるか否かを判定する。
指の画像の幅が第1閾値以下である場合に(ステップS303の肯定判定)、第1検出部12は、ステップS304の処理に進み、ステップS303の否定判定の場合に、第1検出部120は、ステップS304の処理を実行せずに、処理を終了する。
ステップS304において、第1検出部12は、画像IMGにおける指の画像の位置で示される表示画面SCの箇所に、利用者の指が接触したことを検出した旨の情報を処理装置PCに送出する。
上述のように、図1に示した検出装置10によれば、撮像部11で得られた画像IMGに含まれる利用者の指の画像の位置毎に設定された第1閾値と、指の画像の大きさとの比較に基づき、利用者の指が表示画面SCに接触したか否かを判定することができる。即ち、検出装置10によれば、画像IMGに含まれる指の画像の大きさが、指の画像の画像IMGにおける位置に対応する第1閾値以下である場合に、画像IMGにおける指の画像の位置に対応する表示画面SC上の箇所への利用者の指の接触を検出することができる。
これにより、図1に示した表示装置DUが指などの接触を感知する機能を持たない場合でも、表示画面SCを撮像することで得られた画像IMGに基づいて、表示画面SCへの利用者の指などの接触を検出することが可能となる。即ち、本件開示の検出装置10により、タッチパネルを用いた場合と同等のインタフェースを提供することが可能となる。つまり、タッチパネルを搭載していないコンピュータ装置に、本件開示の検出装置10を搭載することで、タッチパネルによる操作を前提としたオペレーティングシステムやアプリケーションプログラムの利用を可能にすることができる。
ところで、コンピュータ装置は、例えば、コンピュータ装置を操作する利用者の顔などを撮像するために、表示装置DUの筐体に組み込まれたカメラ(以下の説明ではフロントカメラと称する)を含んでいる場合がある。例えば、図4に示すように、フロントカメラCAMは、表示装置DUに設けられた表示画面SCの上側の中央付近に組み込まれる場合が多い。次に、図4〜図9を用いて、フロントカメラCAMが組み込まれた表示装置DUを有するコンピュータ装置に搭載される場合に好適な検出装置10の実施形態を説明する。
図4は、検出装置10の別実施形態を示す。なお、図4に示した構成要素のうち、図1に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図4に示した撮像部11は、フロントカメラCAMと、フロントカメラCAMに対向するミラーMIRとを含んでいる。また、検出装置10は、上述の撮像部11と、図1に示した第1検出部12に加えて、第2検出部13と、制御部14とを含んでいる。
撮像部11に含まれるミラーMIRは、フロントカメラCAMの光軸Z1を表示画面SCの法線Z2と角θをなして交差するように折り曲げる。即ち、フロントカメラCAMの光軸は、表示画面SCに斜めに当たる方向に屈曲される。これにより、フロントカメラCAMの撮影範囲に表示画面SCの全体が含まれる。
例えば、ミラーMIRは、フロントカメラCAMから法線Z2方向に数センチメートル離れた位置に配置された円錐状あるいは円筒状の反射面を持つ光学部材であり、ミラーMIRの反射面を表示画面SCに対して傾斜させて設置することが望ましい。また、ミラーMIRの反射面の傾斜角度は、例えば、フロントカメラCAMの光軸Z1を表示画面SCの中央部分に当たる方向に屈曲させる角度に調整されることが望ましい。また、ミラーMIRの反射面は、表示画面SCの全体からの光をフロントカメラCAMの方向に反射させる曲率を持つ曲面として設計されることが望ましい。
これにより、利用者の視界を妨げることなく、表示画面SCの全体をフロントカメラCAMの撮像範囲に収めることができる。なお、ミラーMIRによって折り曲げられた光軸Z1と表示画面SCの法線Z2とがなす角θは、フロントカメラCAMとミラーMIRとの距離を、フロントカメラCAMと表示画面SCの中心との距離で除した値を正接とする角度を用いて示すことができる。例えば、フロントカメラCAMとミラーMIRとの距離を10ミリメートルとし、フロントカメラCAMと表示画面SCの中心との距離を100ミリメートルとすると、角θは、角度90度からarctan(0.1)を差し引いた角度として示される。
ところで、図4に示した撮像部11によって表示画面SCを撮像することで得られた画像IMGは、表示画面SCに一部を覆う位置にある手の指fngの画像とともに、表示画面SCに映った指fngの鏡像を示す画像を含んでいる場合がある。以下の説明では、撮像部11により指fngを撮像することで画像IMGに含まれる像を「指fngの実像」と称し、撮像部11により、表示画面SCに映った指fngの鏡像を撮像することで画像IMGに含まれる像を「指fngの鏡像を示す画像」と称する。なお、指fngの実像は、図1〜図3を用いて説明した実施形態における「画像IMGに含まれる指の画像」と同等である。
第2検出部13は、表示画面SCの一部を覆う位置にある手の指fngの実像及び表示画面SCに映った指fngの鏡像を示す画像とを含む画像IMGを受ける。また、第2検出部13は、受けた画像IMGにおいて、指fngの実像と表示画面SCに映った指fngの鏡像を示す画像とが接続している場合に、指fngの実像の位置で示される表示画面SC上の箇所に指fngが接触したことを検出する。例えば、第2検出部13は、指fngの実像と表示画面SCに映った指fngの鏡像を示す画像との距離を求め、求めた距離が所定の第2閾値以下である場合に、指fngの実像の位置で示される表示画面SC上の箇所に指fngが接触したと判定してもよい。なお、第2検出部13は、平均的な太さの指が表示画面SCの中央部分に接触している状態を撮像部11で撮像することで得られた画像IMGに含まれる指の実像の幅の半分程度の値を第2閾値として設定することが望ましい。
制御部14は、指fngの実像の位置または実像の大きさに基づいて、第1検出部12と第2検出部13とのいずれか一方に、指fngによる表示画面SCへの接触を検出させる。
例えば、制御部14は、指fngの実像が、表示画面SCにおいてフロントカメラCAMからの距離に基づいて設定された所定の範囲に対応する画像IMGの領域に含まれる場合に、第1検出部12に表示画面SCへの利用者の指fngの接触を検出させる。また、制御部14は、指fngの実像が、表示画面SCに設定された所定の範囲に対応する画像IMGの領域の外側に含まれる場合に、第2検出部13に表示画面SCへの利用者の指の接触を検出させる。ここで、所定の範囲の境界は、例えば、第1検出部12による検出の精度が所定値以上となる範囲を示す境界と、第2検出部13による検出の精度が所定値以下となる範囲を示す境界との少なくとも一方に基づいて設定されることが望ましい。なお、所定の範囲の境界を設定する手法については、図6及び図8を用いて後述する。
ところで、指fngの実像の大きさは、指fngがフロントカメラCAMに近づくほど大きくなる。したがって、表示画面SCにおいてフロントカメラCAMからの距離に基づいて設定された所定の範囲は、指fngの実像の大きさが所定値以上である範囲として捉えることができる。
すなわち、制御部14は、指fngの実像の大きさが、指fngの実像の大きさを示す指標の一つである幅が所定値以上であるか否かにより、第1検出部12による検出と第2検出部13による検出とを切り替えてもよい。つまり、制御部14は、指fngの実像の幅が所定値以上である場合に、第1検出部12に表示画面SCへの利用者の指fngの接触を検出させ、指fngの実像の幅が所定値以下である場合に、第2検出部13に表示画面SCへの利用者の指の接触を検出させてもよい。
制御部14は、第1検出部12と第2検出部13とのそれぞれによる検出の限界に基づいて、指fngの実像の位置と比較する所定の範囲あるいは指fngの実像の幅と比較する所定値を設定することが望ましい。
図5は、図4に示した表示画面SCに映る利用者の指の鏡像の例を示す。なお、図5に示した構成要素のうち、図4に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図5(A)は、表示画面SCの中心よりもフロントカメラCAMから遠い位置で表示画面SCに接触している手h1と、表示画面SCに映った手h1を示す鏡像Ir1を示している。
また、図5(B)は、表示画面SCの中心よりもフロントカメラCAMに近い位置で表示画面SCに接触している手h2と、表示画面SCに映った手h2を示す鏡像Ir2を示している。
図4に示したフロントカメラCAMにより、図5(A)に示した表示画面SCを撮像した場合と、図5(B)に示した表示画面SCを撮像した場合とを比べると、画像IMGにおいて、鏡像Ir2の方が鏡像Ir1に比べて暗い像として写る場合がある。
画像IMGに含まれる利用者の指の鏡像を示す像の明るさは、図6を用いて後述する理由のために、利用者の指の位置がフロントカメラCAMに近づくほど、暗くなる傾向がある。このため、利用者の指の位置がフロントカメラCAMに近づくほど、画像IMGにおいて、指の鏡像を示す像を判別することが困難になり、これに伴って、指の実像の位置と指の鏡像を示す像の位置との距離を求めることも困難になる。即ち、利用者の指がフロントカメラCAMに近づくほど、第2検出部13により、利用者の指と表示画面SCとの接触の有無を判定することが難しくなる。
一方、フロントカメラCAMによって取得した画像IMGに含まれる利用者の指の実像の大きさは、フロントカメラCAMに利用者の指が近づくほど大きくなる。しかも、フロントカメラCAMと利用者の指との距離の変動に対する実像の大きさの変動は、フロントカメラCAMに利用者の指が近づくほど大きくなる。すなわち、表示画面SCにおいてフロントカメラCAMに近い領域では、フロントカメラCAMから遠い領域に比べて、第1検出部12により、利用者の指が表示画面SCに接触しているか否かを高い精度で判定することができる。
したがって、図4に示した第2検出部13による検出の限界に着目すれば、制御部14は、画像IMGに含まれる利用者の指の鏡像を示す像が、実像との距離を判定することが可能な程度以上の明るさを持つ範囲を所定の範囲として設定することが望ましい。また、図4に示した第1検出部12による検出限界に着目すれば、制御部14は、表示画面SCに利用者の指が接触しているか否かを、画像IMGに含まれる利用者の指の実像の大きさの変化として検出可能な範囲を所定の範囲として設定することが望ましい。
次に、図6を用いて、第2検出部13による検出の限界に着目した場合に、上述した所定の範囲の境界を示す閾値として好適なフロントカメラCAMからの距離について検討する。
図6は、表示画面SCに映った指fngの鏡像からの光がフロントカメラCAMに入射する光路の例を示す。なお、図6に示した構成要素のうち、図4に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図6に破線で示した光路rtは、利用者の指fngの先端部分と表示画面SCとの接点から、表示画面SCの法線方向に距離dだけ離れた点Qの鏡像Q’からの光がミラーMIRで反射されて、フロントカメラCAMに到達する経路を示す。即ち、光路rtは、点Qからの光が、表示画面SC上の点Uで反射された後に、更に、ミラーMIRで反射されて、フロントカメラCAMに到達する経路を示す。ここで、点Q及び点Qの鏡像Q’と表示画面SCとの距離dは、画像IMGにおいて、点Qから指fngの先端部までの実像と対応する部分の鏡像とをそれぞれ判別できる程度の長さに設定することが望ましい。例えば、距離dの好適な例は、長さ0.5センチメートルである。
フロントカメラCAMで得られる画像IMGにおいて指fngの鏡像を示す像が判別可能となる条件は、次の2つである。条件の一つは、指fngの鏡像からの光としてフロントカメラCAMに到達する光の強度Viが、フロントカメラCAMに含まれる撮像素子の感度で検出可能な最小の強度Vminよりも大きいことである。もう一つの条件は、鏡像からフロントカメラCAMに到達する光の強度Viと、鏡像からの光が辿る光路rtに沿って表示画面SC上の点Uから放射される光の強度Vdとの比R(R=Vi/Vd)が、所定の閾値Rth(例えば、Rth=2)を超えていることである。
光路rtにおいて、点Qからの光が表示画面SCで反射される際の表示画面SCへの入射角φは、指fngと表示画面SCとの接点とフロントカメラCAMとの距離に依存し、接点がフロントカメラCAMに近づくほど、入射角φは小さくなる。そして、入射角φが小さくなるほど、鏡像からフロントカメラCAMに到達する光の強度Viは小さくなる。なぜなら、表示画面SCは、入射角が小さくなるほど低い反射率で光を反射する特性を持っているためである。すなわち、フロントカメラCAMに到達する鏡像からの光の強度Viは、表示画面SCにおいて利用者の指が接触または近接している箇所がフロントカメラCAMに近くなるほど小さくなる。
一方、表示画面SCにアイコンなどの画像が表示されている場合に、表示画面SCから放射される光の強度は、表示画面SCの法線方向から計った角度が小さくなるに従って大きくなる。つまり、表示画面SC上の点Uから光路rtの方向に放射される光の強度Vdは、光路rtと表示画面SCの法線とがなす角、即ち、鏡像に対応する反射角φが小さくなるほど大きくなる。したがって、上述の比Rは、鏡像に対応する反射角φ、即ち、鏡像に対応する箇所からの光の表示画面SCへの入射角φが小さくなるほど小さくなる。つまり、上述の比Rは、表示画面SCにおいて利用者の指が接触または近接している箇所がフロントカメラCAMに近くなるほど小さくなる。
したがって、制御部14は、最初に述べた条件を満たす反射角φの最小値φ1と、2番目の条件を満たす入射角φの最小値φ2と大きい方で示される限界の入射角φmに対応する範囲を、第2検出部13による検出を適用する範囲として設定することが望ましい。つまり、表示画面SCに接触している利用者の指fngから上述の限界の入射角φで表示画面SCに入射した光がフロントカメラCAMに到達する表示画面SC上の位置が、第2検出部13によって接触の有無を判定可能な限界、即ち、検出限界を示す。
例えば、制御部14は、表示画面SCに接触している指fngの鏡像からの光としてフロントカメラCAMに到達する光の表示画面SCへの入射角φが、第3閾値に相当する入射角φm以下となる範囲を、画像IMGにおける所定の範囲として設定すればよい。
最初に述べた条件を満たす反射角φの最小値φ1は、式(1)を解くことで取得できる。式(1)において、図6に示した指fngの平均的な輝度を符号Vfで示し、表示画面SCの反射角φに対する反射特性を関数f(φ)として示した。
Vmin=Vi(φ1)=Vf×f(φ1) ・・・(1)
また、二番目に述べた条件を満たす反射角φの最小値φ2は、式(2)を解くことで取得できる。式(2)において、図6に示した指fngの平均的な輝度を符号Vfで示し、表示画面SCの平均的な輝度を符号Vgで示し、また、表示画面SCから放射される光の強度の角度依存性を関数g(φ)として示した。
なお、指fngの平均的な輝度Vfは、利用者として想定される人物の平均的な肌色や表示画面SCがおかれる環境において想定される平均的な照度などに基づいて、予め求めておくことができる。また、表示画面SCの反射角φに対する反射特性f(φ)は、表示画面SCの材質などに基づいて予め求めておくことができる。同様に、表示画面SCの平均的な輝度Vg及び表示画面SCから放射される光の強度の角度依存性を示す関数g(φ)は、表示画面SCの特性から予め求めておくことができる。
また、例えば、表示画面SCを覆う偏光フィルタを設置することで、フロントカメラCAMに入射する表示画面SCからの放射光の強度を低減させてもよい。表示画面SCを覆う偏光フィルタを設置した場合に、二番目に述べた条件を満たす反射角φの最小値φ2は、式(2)において、上述の輝度Vg(φ2)に偏光フィルタで除去される向きの偏光を持つ放射光の割合を反映した減衰率ρを乗じることで算出できる。なお、この場合に、利用者の指fngからの光の強度Vi(φ2)は、入射角度φに対する偏光フィルタの反射特性を示す関数f’(φ)を用いて求めることが望ましい。
上述のように、式(1)で示される最小値φ1および式(2)で示される最小値φ2は、例えば、コンピュータ装置に搭載される表示画面SC毎に予め求めておくことができる。また、予め求めた最小値φ1、φ2に基づいて、限界の入射角φmを予め求めておくことができる。
ここで、図6に示したミラーMIRからフロントカメラCAMまでの光路rtが表示画面SCに交差する角度を直角で近似すれば、上述の2つの条件を満たす入射角φmに対応する範囲の境界とフロントカメラCAMとの距離Lmを式(3)から求めることができる。なお、式(3)において、距離DmはフロントカメラCAMとミラーMIRとの距離を示し、反射角φmは、式(1)から求めた反射角φ1と式(2)から求めた反射角φ2との最大値、即ち、max(φ1,φ2)を示す。
Lm=(Dm+d)×cotan(φm) ・・・(3)
第2検出部13の検出限界に着目すれば、図4に示した制御部14は、フロントカメラCAMを中心とする半径Lmの半円の領域を所定の範囲として設定し、第1検出部12と第2検出部13との切り替えに用いることが望ましい。
図7は、図4に示した第2検出部13の検出限界に着目した切り替えを行う場合の検出装置10の動作を示す。なお、図7に示したステップのうち、図3に示したステップと同等の処理については、同一の符号を付して示し、その説明は省略する。
ステップS311において、制御部14は、ステップS301の処理で取得した画像IMGに含まれる指fngの実像の位置を特定する。制御部14は、例えば、所定の輝度よりも明るい肌色の領域を画像IMGから抽出し、抽出した領域の境界を示すエッジの集合から概ね平行な直線状のエッジを検出し、検出したエッジに挟まれた部分を、利用者の指fngの実像として抽出してもよい。なお、制御部14は、例えば、平均的な指fngの輝度と同程度に設定された基準の輝度よりも明るい肌色の領域を抽出することが望ましい。また、制御部14は、抽出した利用者の指の実像に含まれる画素のうち、平均的な肌色を基準として色相あるいは彩度の差が最も大きい色を示す画素を検出することで、画像IMGにおいて利用者の指の先端部を特定してもよい。
ステップS312において、制御部14は、ステップS311の処理で特定した位置が、第2検出部13の検出限界に着目して設定された所定の範囲内であるか否かを判定する。即ち、制御部14は、指fngの先端を示す画素が、フロントカメラCAMを中心とし、上述の式(3)で示される長さLmを半径とする半円の内部に対応する画像IMGの領域に含まれるか否かを判定する。
ステップS311の処理で特定した位置が、上述の範囲の外側である場合に(ステップS312の否定判定(NO))、制御部14は、第2検出部13にステップS313及びステップS314の処理を実行させる。
一方、ステップS311の処理で特定した位置が、上述の範囲内である場合に(ステップS312の肯定判定(YES))、制御部14は、第1検出部12にステップS302及びステップS303の処理を実行させる。
ステップS313において、第2検出部13は、制御部14からの指示に応じて、画像IMGに含まれる利用者の指fngの実像と、表示画面SCに映った指fngの鏡像を示す像との距離を求める。なお、第2検出部13は、ステップS313の処理の過程で、画像IMGに含まれる利用者の指fngの実像の位置の近傍の領域から、上述の基準の輝度よりも暗い肌色の領域を抽出することで、指fngの鏡像を示す像を抽出してもよい。
ステップS314において、第2検出部13は、ステップS313の処理で求めた距離が、例えば、平均的な指の太さに基づいて予め設定された第2閾値以下であるか否かを判定する。
ステップS313の処理で得られた距離が上述の第2閾値以下である場合に(ステップS314の肯定判定(YES))、第2検出部13は、ステップS304の処理に進む。一方、ステップS313の処理で得られた距離が上述の第2閾値よりも大きい場合に(ステップS314の否定判定(NO))、第2検出部13は、利用者の指fngは表示画面SCに触れていないと判断し,ステップS304の処理を行わずに、処理を終了する。
図4に示した制御部14が、ステップS311,S312の処理を行うことは、画像IMGにおける指fngの実像の位置に基づいて、第1検出部12による接触の検出と第2検出部13による接触の検出とを切り替える制御の一例である。
上述の制御を行う制御部14を有する検出装置10によれば、表示画面SCに映った利用者の指fngの鏡像をフロントカメラCAMで得られた画像IMGにおいて判別可能な場合に限って第2検出部13による検出を行わせることができる。
また、図4に示した制御部14は、利用者の指とフロントカメラCAMとの距離について、第1検出部12による検出が可能な上限に基づいて、第1検出部12に接触の検出を行わせる所定の範囲を設定してもよい。例えば、制御部14は、利用者の指とフロントカメラCAMとの距離について、指の接触の有無により画像IMGにおける指の実像の幅に1画素以上の変化が現れる距離の上限を求め、求めた距離の上限で示される範囲を所定の範囲として設定してもよい。
次に、図8を用いて、制御部14により、第1検出部12による検出の限界に着目した場合に、第1検出部12による検出と第2検出部13による検出とを切り替える閾値として好適なフロントカメラCAMからの距離について検討する。
図8は、画像IMGにおいて同じ位置に実像が結像される指の位置の例を示す。なお、図8に示した構成要素のうち、図4に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図8において、点線で示した光路rtは、指hcと表示画面SCとの接点Qcからの光がミラーMIRを介してフロントカメラCAMに到達する経路を示している。上述の光路rt上の点Qaと、表示画面SCから距離dtだけ離れている指haの指先とが一致する場合に、画像IMGにおいて、指haの実像は、指hcの実像と同じ位置に結像される。ここで、距離dtは、利用者の指が表示画面SCに接触していないと判定されることが望ましい距離の最小値に相当し、例えば、距離dtは0.1センチメートル程度である。
指hcの実像の幅Wcと指haの実像の幅Waとの差が、例えば、フロントカメラCAMに含まれる撮像素子の1画素のサイズよりも大きければ、図4に示した第1検出部12は、利用者の指の実像の幅に基づいて、表示画面SCへの接触の有無を判断できる。つまり、指hcの実像の幅Wcと指haの実像の幅Waとの差が1画素の幅となる表示画面SC上の位置が、第1検出部12によって接触の有無を判定可能な限界、即ち、現出限界を示す。
指hcの実像の幅Wcを与える視野角θcと指haの実像の幅Waを与える視野角θaとは、指hc,haの平均的な太さWsと、点Qc及び点Qaから光路rtとミラーMIRとの交点Qrまでの距離Dc,Daを用いてそれぞれ式(4)、(5)で示される。
なお、ミラーMIRからフロントカメラCAMまでの光路rtが表示画面SCに交差する角度を直角で近似すれば、上述の距離Daは、ミラーMIRとフロントカメラCAMとの距離Dmと上述の距離dtとを用いて、式(6)で示される。
また、上述の式(4)から(6)を用いれば、フロントカメラCAMに含まれる撮像素子の1画素に対応する視野角θmと、視野角θaと視野角θcとの差とが等しくなるための条件は、例えば、式(7)で示される。したがって、式(7)を解くことにより、視野角θaと視野角θcとの差がフロントカメラCAMに含まれる撮像素子の1画素に対応する視野角θmとなる距離Dcを求めることができる。
そして、上述の式(7)から求めた距離DcとミラーMIRからフロントカメラCAMまでの距離Dmとを用いて、第1検出部12による検出が可能な範囲を示すフロントカメラCAMからの距離の上限Luは、式(8)で示される。
第1検出部12の検出限界に着目すれば、図4に示した制御部14は、フロントカメラCAMを中心とする表示画面SC上の半径Luの半円の領域を所定の範囲として設定し、第1検出部12と第2検出部13との切り替えに用いることが望ましい。
例えば、図7に示したステップS312において、制御部14は、ステップS311の処理で特定された位置が、第1検出部12の検出限界に着目して設定された所定の範囲内であるか否かを判定すればよい。即ち、制御部14は、表示画面SC上で、フロントカメラCAMを中心とし、上述の式(8)で示される距離Luを半径とする半円の領域に対応する画像IMGの領域に、指fngの先端部の実像が含まれるか否かを判定すればよい。
また、上述の式(8)で示される距離Luで示される範囲に基づく判定結果に応じて、制御部14は、第1検出部12と第2検出部13との一方に指fngの表示画面SCへの接触を検出させればよい。これにより、制御部14は、利用者の指fngが表示画面SCに接触しているか否かによる画像IMGでの実像の幅の変化が検出可能である場合に限って、第1検出部12による検出を行わせることができる。
なお、第1検出部12と第2検出部13との少なくとも一方で、表示画面SCの任意の箇所への指fngの接触を検出するためには、上述の距離Lmが距離Lu以下であることが望ましい。ここで、式(3)及び式(8)から分かるように、距離Lm及び距離Luは、図6及び図8に示したミラーMIRとフロントカメラCAMとの距離Dmなど、撮像部11に含まれる光学部品の位置決めに依存する。したがって、距離Lmを距離Lu以下とする位置に、撮像部11に含まれるミラーMIRなどの光学部品を配置することが望ましい。
また、制御部14は、フロントカメラCAMからの距離が上述の距離Luとなる位置に利用者の指がある場合に画像IMGに含まれる指の実像の幅Wthに基づいて、第1検出部12と第2検出部13とを切り替えてもよい。ここで、上述の実像の幅Wthは、フロントカメラCAMに含まれる撮像素子において、表示画面SCの幅方向に対応して配列された画素数Nhと、フロントカメラCAMの表示画面SCの幅方向に対応する方向の視野角θsとを用いて、式(9)で示される。
Wth=(θc/θs)×Nh ・・・(9)
式(9)で示される実像の幅Wthは、第1検出部12による接触の検出が可能な範囲において画像IMGに含まれる利用者の指の実像の幅の最小値を示す。
図9は、図4に示した第1検出部12の検出限界に着目した切り替えを行う場合の検出装置10の動作の別例を示す。なお、図9に示したステップのうち、図3または図7に示したステップと同等の処理については、同一の符号を付して示し、その説明は省略する。
ステップS315において、制御部14は、ステップS301の処理で取得した画像IMGに含まれる指fngの実像について、画像IMGにおける広がりの幅を取得する。制御部14は、例えば、上述のステップS311と同様に、概ね平行なエッジに挟まれた肌色の領域を見つけ、見つけた領域を利用者の指の実像として抽出してもよい。また、制御部14は、利用者の指の実像として抽出した領域の境界に含まれる概ね平行なエッジの間隔を求めることで、指fngの実像の画像IMGにおける幅を取得してもよい。
ステップS316において、制御部14は、ステップS315の処理で取得した指fngの実像の幅が、第1検出部12の検出限界に着目して設定された利用者の指の実像の幅の最小値Wth以上であるか否かを判定する。
ステップS315の処理で特定した指fngの実像の幅が、上述の最小値Wthよりも小さい場合に(ステップS316の否定判定(NO))、制御部14は、第2検出部13にステップS313及びステップS314の処理を実行させる。
一方、ステップS315の処理で特定した特定した指fngの実像の幅が、上述の最小値Wth以上である場合に(ステップS316の肯定判定(YES))、制御部14は、第1検出部12にステップS302及びステップS303の処理を実行させる。
図4に示した制御部14が、ステップS315,S316の処理を行うことは、指fngの実像の大きさに基づいて、第1検出部12による接触の検出と、第2検出部13による接触の検出とを切り替える制御の一例である。
上述の制御を行う制御部14を有する検出装置10によれば、利用者の指fngが表示画面SCに接触しているか否かによる画像IMGでの実像の幅の変化が検出可能である場合に限って、第1検出部12による検出を行わせることができる。
図10は、検出装置10の別実施形態を示す。なお、図10に示した構成要素のうち、図1または図4に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図10に示した制御部14は、画像処理部141と、第1抽出部142と、第2抽出部143とを含んでいる。また、図10に示した設定部15は、閾値保持部151と、決定部152と、表示制御部153とを含んでいる。
画像処理部141は、処理装置PCを介して、フロントカメラCAMで得られた画像を取得する。また、画像処理部141は、取得した画像に対してゆがみ補正処理を行うことで、例えば、表示画面SCとほぼ同等の縦横比を持つ矩形の画像を生成し、生成した画像を撮像部11で得られた画像IMGとして第1抽出部142及び第2抽出部143に渡す。
第1抽出部142は、画像IMGのうち、図11を用いて後述するマスク画像Msk1で覆われていない部分から、利用者の指fngの実像を抽出する。
第2抽出部142は、画像IMGのうち、図11を用いて後述するマスク画像Msk2で覆われていない部分から、利用者の指fngの実像および指fngの鏡像を示す像を抽出する。
図11は、マスク画像Msk1,Msk2の例を示す。図11(A)は、第1抽出部142で用いるマスク画像Msk1を示し、図11(B)は、第2抽出部143で用いるマスク画像MSK2を示す。
図11(A)に示したマスク画像Msk1は、画像IMGにおいてフロントカメラCAMに対応する位置を中心とし、半径rmを持つ半円の外側の領域をマスクする。上述の半円の半径rmは、画像IMGにおいて、図6を用いて説明した距離Lmに相当する長さに設定することが望ましい。
図11(B)に示したマスク画像Msk2は、画像IMGにおいてフロントカメラCAMに対応する位置を中心とし、上述の半径rmを持つ半円の内側の領域をマスクする。
上述した距離Lmに対応する半径rmが設定されたマスク画像Msk1を用いれば、図10に示した第1抽出部142により、第2検出部13の検出限界に基づいて設定した所定の範囲内にある指fngの実像を抽出することができる。また、第1抽出部142は、上述の範囲から指fngの実像が得られた場合に、得られた実像の大きさや位置を示す情報を第2検出部13に渡す
つまり、図10に示した制御部14によれば、第1抽出部142で指fngの実像が得られた場合に、得られた実像を第1検出部12に渡すことで、第2の検出部13による接触の検出が困難な範囲において、第1検出部12に、接触の検出を行わせることができる。
同様に、上述した距離Lmに対応する半径rmが設定されたマスク画像Msk2を用いれば、図10に示した第2抽出部143により、第2検出部13による接触の検出が可能な範囲内にある指fngの実像及び鏡像を示す像を抽出することができる。また、第2抽出部143は、指fngの実像及び鏡像を示す像が得られた場合に、得られた実像及び鏡像を示す像を示す情報を第2検出部13に渡す。
つまり、図10に示した制御部14によれば、第2抽出部143で得られた実像及び鏡像を第2検出部13に渡すことで、第2の検出部13による接触の検出が可能な範囲に限って、第2検出部13に、指fngの表示画面SCへの接触を検出させることができる。
また、図10に示した閾値保持部151は、例えば、図11を用いて説明したマスク画像Msk2に対応する領域に含まれる画像IMGの各画素に対応して、第1検出部12による指fngの実像の幅との比較に用いられる第1閾値を保持する。
決定部152は、処理装置PCから受けた画像IMGに基づいて、マスク画像Msk2で示される領域内の各画素に対応して閾値保持部151に保持する第1閾値を決定する。
設定制御部153は、例えば、第1検出部12による接触の検出に先立って、処理装置PCを介して、図12を用いて後述する第1閾値の設定のための設定画面を表示装置DUに表示させる。また、設定制御部153は、表示装置DUに表示させた設定画面の状況に合わせて、決定部152に各画素に対応する第1閾値を決定させる。
図12は、図10に示した設定制御部153が処理装置PCを介して表示装置DUに表示させる設定画面の例を示す。
図12(A)に示した設定画面は、表示画面SCの上側の辺の中点を中心とする半円形の領域Arと、領域Arの内部に表示された複数のサンプル点Psamと、破線で囲んだメッセージMES1とを含んでいる。
また、図12(B)に示した設定画面は、上述の領域Arと、破線で囲んだメッセージMES2とを含んでいる。
図12(A),(B)に示した領域Arの半径は、図11(A)、(B)に示したマスク画像Mask1,Mask2の境界と同様に、図10に示した第1検出部12と第2検出部13との切り替えの閾値を示す半径rmに設定されることが望ましい。
また、図12(A)に示したサンプル点Psamは、例えば、領域Arの内部に、等間隔で配置されてもよいし、領域Arにおいてランダムに配置されてもよい。また、サンプル点Psamの数は、複数であれば、図12(A)に示したサンプル点Psamの数より多くてもよいし、逆に少なくてもよい。なお、図12(A)は、図10に示した設定制御部153により、サンプル点Psamの一つの表示を点滅させ、メッセージMES1として、表示画面SCをタッチする操作を促すテキスト「点滅している点をタッチしてください」を表示させた状態を示している。
図10に示した設定制御部153は、例えば、図12(A)に示した設定画面において、各サンプル点Psamを順次に強調表示させる。また、設定制御部153は、サンプル点Psamの一つを強調表示させる毎に、決定部152に対して、強調表示させたサンプル点に対応する領域Ar内の画素を特定する情報を渡すとともに、当該サンプル点の位置に対応する第1閾値の決定を指示する。
決定部152は、例えば、処理装置PCを介してフロントカメラCAMで得られる画像IMGを所定の時間間隔で取得することで、利用者の指が表示画面SCに近づく過程においてフロントカメラCAMで時系列的に得られる複数の画像IMGを取得する。また、決定部152は、取得した画像IMGのそれぞれに含まれる利用者の指の実像の幅を順次に比較することで、実像の幅の最小値、即ち、利用者の指が表示画面SCに接触した際の実像の幅を検出する。また、決定部152は、検出した実像の幅の最小値に基づいて、設定制御部153から受けた情報で示される画素に対応する第1閾値を決定する。決定部152は、例えば、検出した最小値に所定値αを加算した値を第1閾値として求め、求めた第1閾値を強調表示されたサンプル点に対応する画素に対応して、閾値保持部151に保持してもよい。なお、決定部152は、所定値αとして、例えば、フロントカメラCAMによる視野角の分解能の半分程度に対応する値を設定することが望ましい。また、決定部152は、図12(A)に示した各サンプル点Psamに対応して決定した第1閾値に基づいて、領域Ar内の各画素に対応する第1閾値を求め、求めた第1閾値を閾値保持部151に保持させる。例えば、決定部152は、各サンプル点Psamに対応して決定した第1閾値について線形補間処理を適用することで、領域Ar内の各画素に対応する第1閾値を求めてもよい。
一方、図12(B)に示した設定画面は、図10に示した設定制御部153により、メッセージMES2として、表示画面SCをなぞる操作を促すテキスト「半円部分を塗り潰して下さい」を表示させた例を示している。
設定制御部153は、図12(B)の設定画面が表示させた場合に、決定部152に対して、領域Arに含まれる各画素に対応する第1閾値の決定を指示する。つまり、図12(B)に示した設定画面は、図12(A)に示したサンプル点Psamとして領域Ar内の各画素を指定した場合に相当する。
決定部152は、例えば、設定制御部153からの指示を受けた後、所定の期間にわたって、処理装置PCを介してフロントカメラCAMで時系列的に得られる画像IMGを取得することで、領域Ar内をなぞる利用者の指の実像を含む複数の画像IMGを取得する。また、決定部152は、取得した画像IMGのそれぞれに含まれる指の実像の位置を特定するとともに、指の実像の幅を取得し、特定した位置に対応する第1閾値を指の実像の幅に基づいて決定する。決定部152は、例えば、領域Arに含まれる各画素の位置に先端部分が検出された指の実像の幅に上述の所定値αを加算した値を求め、求めた値を各画素の位置に対応する第1閾値として閾値保持部151に保持させればよい。
また、設定制御部153は、図12に示した領域Ar内に単一のサンプル点を表示させ、決定部152に、上述のサンプル点に利用者の指が接触する過程で得られる画像IMGに基づいて、領域Arに含まれる各画素に対応する第1閾値を決定させてもよい。
決定部152は、例えば、設定制御部153から、単一のサンプル点とフロントカメラCAMとの距離を示す情報を受け、受けた情報とフロントカメラCAMの焦点距離などに基づいて、表示画面SCに接触した利用者の指の太さを求める。また、決定部152は、求めた指の太さと、領域Arに含まれる各画素とフロントカメラCAMとの距離及びフロントカメラCAMの焦点距離などに基づいて、領域Arに含まれる各画素に接触した指の画像IMGにおける実像の幅を算出してもよい。また、決定部152は、算出した指の実像の幅に上述した所定値αを加算した値を、各画素に対応する第1閾値として閾値保持部151に保持させてもよい。
上述した閾値保持部151、決定部152及び設定制御部153を有する設定部15によれば、検出装置10による検出に先立って、図12(A),(B)に示した領域Ar内の各画素に対応する第1閾値を設定し、第1検出部12に渡すことができる。
つまり、図10に示した設定部15を有する検出装置10では、表示装置DUを含むコンピュータ装置を利用する利用者の実際の指の太さを反映した第1閾値を用いて、表示画面SCへの利用者の指の接触を検出することができる。
したがって、図10に示した検出装置10によれば、平均的な指の太さに基づいて設定された第1閾値を適用する場合に比べて、高い精度で、利用者の指による表示画面SCへの接触を検出することができる。
ところで、検出装置10に含まれる撮像部11は、図4に示したフロントカメラCAMとミラーMIRとの組み合わせに限らず、利用者の視界を妨げない位置に設置され、かつ、表示画面SCのほぼ全体を視野に含めるように配置された外付けのカメラでもよい。
また、図1,4,10に示した第1検出部12、第2検出部13および制御部14と、図10に示した設定部15とは、いずれもコンピュータ装置のプロセッサにより、アプリケーションプログラムを実行することで実現できる。
図13は、検出装置10のハードウェア構成例を示す。なお、図13に示した構成要素のうち、図1、図4に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図13に示したコンピュータ装置20は、プロセッサ21と、メモリ22と、ハードディスク装置23と、汎用インタフェース24と、表示制御部25と、ネットワークインタフェース26と、光学ドライブ装置27とを含んでいる。図13に示したプロセッサ21と、メモリ22と、ハードディスク装置23と、汎用インタフェース24と、表示制御部25と、ネットワークインタフェース26と、光学ドライブ装置27とは、バスを介して互いに接続されている。また、プロセッサ21は、汎用インタフェース24を介して、コンピュータ装置20に外付けされたカメラE_CAMに接続されている。また、プロセッサ21は、表示制御部25を介して、表示装置DUによる表示を制御する。
図13に示したプロセッサ21と、メモリ22と、ハードディスク装置23と汎用インタフェース24と、カメラE_CAMとは、検出装置10に含まれる。なお、カメラE_CAMは、例えば、魚眼レンズなど広い視野角を持つレンズを用いて実現してもよいし、図10に示したフロントカメラCAMと同等の焦点距離を持つ撮像装置と円錐形あるいは円筒形のミラーとを組み合わせた光学系で実現してもよい。
上述した光学ドライブ装置27は、光ディスクなどのリムーバブルディスク28を装着可能であり、装着したリムーバブルディスク28に記録された情報の読出および記録を行う。また、プロセッサ21は、ネットワークインタフェース26を介してネットワークNWに接続されており、ネットワークNWに設けられたサーバ装置SVとの間で情報の授受が可能である。
図13に示したメモリ22は、コンピュータ装置20のオペレーティングシステムとともに、プロセッサ21が上述した検出処理を実行するためのアプリケーションプログラムを格納している。なお、上述した検出処理を実行するためのアプリケーションプログラムは、例えば、光ディスクなどのリムーバブルディスク28に記録して頒布することができる。そして、このリムーバブルディスク28を光学ドライブ装置27に装着して読み込み処理を行うことにより、検出処理を実行するためのアプリケーションプログラムを、メモリ22およびハードディスク装置23に格納させてもよい。また、ネットワークインタフェース26を介して、検出処理を実行するためのアプリケーションプログラムをサーバ装置SVからダウンロードし、メモリ22およびハードディスク装置23に読み込ませることもできる。
また、プロセッサ21は、メモリ22に格納された検出処理のためのアプリケーションプログラムを実行することにより、図1、図4、図10に示した第1検出部12、第2検出部13、制御部14および図10に示した設定部15の機能を果たす。なお、図10に示した設定部15に含まれる閾値保持部151は、例えば、メモリ22あるいはハードディスク装置23に設けた記憶領域に、図15を用いて後述する設定処理で得られた第1閾値を保持させることで実現してもよい。また、プロセッサ21は、メモリ22などに格納されたオペレーティングシステムなどを実行することにより、図1、図4、図10に示した処理装置PCの機能を果たす。
図14は、図13に示したプロセッサ21が実行する検出処理を示す。なお、図14に示したステップのうち、図3または図7に示したステップと同等のものについては、同一の符号を付して示し、その説明は省略する。
図14に示したステップS301〜ステップS323の各処理は、図13に示したカメラE_CAMで得られる画像IMGに基づいて利用者の指の表示画面への接触を検出する処理、即ち、検出処理のためのアプリケーションプログラムに含まれる処理の一例である。また、ステップS301〜ステップS323の各処理は、プロセッサ21によって実行される。
ステップS301において、プロセッサ21は、汎用インタフェース24を介して、カメラE_CAMによって表示画面SCを撮像することで得られる画像IMGを取得する。
ステップS321において、プロセッサ21は、画像IMGのうち、図11(A)に示したマスク画像MSK1の外側、即ち、図12(A),(B)に示した領域Arに含まれる部分から、図13に示した利用者の指fngの実像を抽出する。プロセッサ21は、図7に示したステップS311と同様にして、画像IMGの上述の領域Arに含まれる部分から、上述の基準の輝度よりも明るい肌色の領域を指fngの実像として抽出することで、ステップS321の処理を実現してもよい。
ステップS322において、プロセッサ21は、ステップS321の処理で指fngの実像が抽出できたか否かを判定する。
画像IMGの領域Arから指fngの実像が抽出された場合に(ステップS322の肯定判定(YES))、プロセッサ21は、ステップS302及びステップS303の処理を実行することで、指fngの実像の大きさに基づく接触の検出を行う。
一方、画像IMGの領域Arから指fngの実像が抽出されなかった場合に(ステップS322の否定判定(NO))、プロセッサ21は、ステップS323、ステップS313及びステップS314の処理を実行する。
ステップS323において、プロセッサ21は、画像IMGのうち、図11(B)に示したマスク画像MSK2の外側、即ち、上述の領域Arの外側の部分から、利用者の指fngの実像及び表示画面SCに映った指fngの鏡像を示す像を抽出する。プロセッサ21は、画像IMGの上述の領域Arの外側の部分から、上述の基準の輝度よりも明るい肌色の領域と暗い肌色の領域とをそれぞれ指fngの実像及び指fngの鏡像を示す像として抽出することで、ステップS323の処理を実現してもよい。
ステップS313において、プロセッサ21は、図7を用いて説明したようにして、ステップS323の処理で画像IMGから抽出された指fngの実像と指fngの鏡像を示す像との画像IMGにおける距離を求める。
ステップS314において、プロセッサ21は、ステップS313の処理で得られた距離が第2閾値以下であるか否かを判定することで、指fngの実像と指fngの鏡像を示す像との間の距離に基づく接触の検出を行う。
以上に説明したようにして、プロセッサ21は、画像IMGに含まれる指fngの実像の位置に応じて、実像の大きさに基づく接触の検出と実像と鏡像を示す像との距離に基づく接触の検出との一方を選択的に実行することができる。
なお、プロセッサ21は、図14に示したステップS321の処理の代わりに、ステップS323の処理を先に実行してもよい。また、プロセッサ21は、ステップS323の処理で指fngの実像及び鏡像祖示す像が抽出できた場合に、ステップS313、S314の処理を実行し、抽出できなかった場合に、ステップS321、S302、S303の処理を実行してもよい。
更に、プロセッサ21は、ステップS321の処理とステップS323の処理とを並行して実行してもよい。この場合に、プロセッサ21は、ステップS321の処理とステップS323の処理とで得られた処理結果に基づいて、実像の大きさに基づく接触の検出と実像と鏡像を示す像との距離に基づく接触の検出とのどちらを実行するかを選択すればよい。
つまり、プロセッサ21が、図14に示した各処理を含むアプリケーションプログラムを実行することにより、図13に示したコンピュータ装置20のハードウェアを利用して、図10に示した検出装置10を実現することができる。
これにより、図4あるいは図10に示したようなフロントカメラCAMを含まないコンピュータ装置20の利用者にも、本件開示の検出装置10の機能、即ち、表示画面SCへの指などの接触を検出する機能を提供することができる。
次に、図15を用いて、図13に示した検出装置10による検出処理に先立って行われる設定処理について説明する。
図15は、図13に示したプロセッサ21が実行する設定処理を示す。図15に示したステップS331〜ステップS337の各処理は、図14に示した検出処理に先立って行われる設定処理のためのアプリケーションプログラムに含まれる処理の一例である。また、ステップS331〜ステップS337の各処理は、プロセッサ21によって実行される。
ステップS331において、プロセッサ21は、例えば、図12(A)に示した設定画面を表示するための表示情報を生成し、生成した表示情報を表示制御部25に渡すことにより、表示装置DUに設定画面を表示させる。
ステップS332において、プロセッサ21は、図12(A)に示した設定画面に含まれるサンプル点Psamを順次に強調表示させる。
ステップS333において、プロセッサ21は、図13に示したカメラE_CAMにより、所定の期間内に時系列的に得られる複数の画像IMGを、汎用インタフェース24を介して取得する。プロセッサ21は、例えば、図12(A)に示した設定画面に含まれるメッセージMES1に応じて利用者が指fngで表示画面SCに接触する操作にかかる平均的な時間に基づいて上述の所定の期間を設定することが望ましい。
ステップS334において、プロセッサ21は、取得した画像IMGのそれぞれから指fngの実像を抽出し、抽出した実像の幅を互いに比較することで、指fngの実像の幅の最小値を検出する。
ステップS335において、プロセッサ21は、ステップS334で検出された最小値に基づいて、ステップS332の処理で強調表示されたサンプル点Psamの位置に対応する第1閾値を設定する。例えば、プロセッサ21は、検出された最小値に所定値αを加算した値を、図13に示したハードディスク装置23などに設けられた閾値保持部151に、上述のサンプル点Psamの位置に対応して保持させればよい。
ステップS336において、プロセッサ21は、第1閾値の設定処理が完了していない位置に対応するサンプル点Psamがあるか否かを判定する。
未処理のサンプル点Psamがある場合に(ステップS336の肯定判定(YES))、プロセッサ21は、ステップS332の処理に戻って、新たなサンプル点Psamについての処理を開始する。
一方、図12(A)に示した全てのサンプル点Psamについての設定処理が完了した場合に(ステップS336の否定判定(NO))、プロセッサ21は、ステップS337の処理を実行する。
ステップS337において、プロセッサ21は、例えば、各サンプル点Psamについて得られた第1閾値を線形補間することで、図12(A)に示した領域Arに含まれる全ての画素に対応する第1閾値を求め、各画素に対応して閾値保持部151に保持させる。
上述のステップS331〜ステップS333及びステップS336の処理をプロセッサ21が実行することは、図10に示した設定制御部153の実施形態の一つである。また、ステップS333,S334及びS337の処理をプロセッサ21が実行することは、図10に示した決定部152の実施形態の一つである。なお、プロセッサ21は、ステップS333,S334及びS337の処理に代えて、図12(B)に示した設定画面に対応する処理を実行してもよい。また、プロセッサ21は、サンプル点Psamの一つに対応して得た最小値に基づいて利用者の指fngの太さを求め、求めた利用者の指fngの太さとカメラE_CAMの焦点距離などから、領域Arの各画素に対応する第1閾値を求める処理を実行してもよい。
以上に説明したように、プロセッサ21が、図15に示したステップS331〜ステップS337の処理を実行することにより、図13に示したコンピュータ装置20のハードウェアを用いて、図10に示した設定部15の機能を実現することができる。
つまり、コンピュータ装置20の利用者の実際の指の太さを反映した第1閾値を用いて、表示画面SCの領域Ar内の箇所への利用者の指の接触を検出することで、平均的な指の太さを反映した第1閾値を用いる場合に比べて、検出精度を向上することができる。
以上の詳細な説明により、実施形態の特徴点及び利点は明らかになるであろう。これは、特許請求の範囲が、その精神および権利範囲を逸脱しない範囲で、前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更を容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
以上の説明に関して、更に、以下の各項を開示する。
(付記1)
表示装置の表示画面を撮像する撮像部と、
前記撮像部による撮像で得られた画像に含まれる前記表示画面上の位置の指示に用いられる物体の画像の大きさが、前記物体の画像の位置毎に設定された第1閾値以下である場合に、前記物体の画像の位置で示される前記表示画面上の箇所への前記物体の接触を検出する第1検出部と
を備えたことを特徴とする検出装置。
(付記2)
付記1に記載の検出装置において、
前記第1検出部は、前記画像に含まれる前記物体の実像の幅を前記物体の実像の大きさを示す値として、前記第1閾値と比較する
ことを特徴とする検出装置。
(付記3)
付記1に記載の検出装置において、
前記撮像部の光軸は、前記表示画面に対して斜めに設定され、
更に、
前記撮像部による撮像で得られた画像に含まれる前記物体の画像の位置と前記表示画面に映った前記物体の鏡像を示す画像の位置との距離が第2閾値以下である場合に、前記物体の画像の位置で示される前記表示画面上の箇所への前記物体の接触を検出する第2検出部と、
前記撮像部による撮像で得られた画像に含まれる前記物体の画像の位置が前記表示画面に設定された所定の範囲に対応する領域に含まれる場合に、前記第1検出部に前記接触を検出させ、前記物体の画像の位置が前記領域の外側である場合に、前記第2検出部に前記接触を検出させる制御部とを備え、
前記制御部は、前記第1検出部による検出の精度が所定値以上となる範囲と前記第2検出部による検出の精度が所定値以下となる範囲との少なくとも一方に基づいて、前記所定の範囲を設定する
ことを特徴とする検出装置。
(付記4)
付記1に記載の検出装置において、
前記撮像部の光軸は、前記表示画面に対して斜めに設定され、
更に、
前記撮像部による撮像で得られた画像に含まれる前記物体の画像の位置と前記表示画面に映った前記物体の鏡像を示す画像の位置との距離が第2閾値以下である場合に、前記物体の画像の位置で示される前記表示画面上の箇所への前記物体の接触を検出する第2検出部と、
前記撮像部による撮像で得られた画像に含まれる前記物体の画像の大きさが所定値以上である場合に、前記第1検出部に前記接触を検出させ、前記物体の画像の大きさが前記所定値未満である場合に、前記第2検出部に前記接触を検出させる制御部と
を備えたことを特徴とする検出装置。
(付記5)
付記3に記載の検出装置において、
前記制御部は、前記表示画面に接触している前記物体の鏡像からの光として前記撮像部に到達する光の前記表示画面への入射角が所定の第3閾値以下となる前記表示画面上の範囲を前記所定の範囲として設定する
ことを特徴とする検出装置。
(付記6)
付記3に記載の検出装置において、
前記制御部は、前記撮像部による撮像で得られた画像における結像位置が同じ箇所を示す、前記表示画面に接触した物体と前記表示画面から所定の距離だけ離れた物体とのそれぞれを前記撮像部から見た視野角の差が所定の第4閾値以上となる前記表示画面上の範囲を前記所定の範囲として設定する
ことを特徴とする検出装置。
(付記7)
付記3乃至付記6のいずれか1に記載の検出装置において、
前記撮像部は、
前記表示装置に搭載され、前記表示画面に対向する所定の範囲を撮像するカメラと、
前記カメラの光軸を前記表示画面と斜めに当たる方向に屈曲させる反射部材とを有する
ことを特徴とする検出装置。
(付記8)
付記1乃至付記7のいずれか1に記載の検出装置において、
更に、
前記第1検出部による接触の検出に先立って、前記表示画面の少なくとも一部に対応する領域内に設定された少なくとも一つの箇所に接触した前記物体を前記撮像部によって撮像することで得られた画像に基づいて、前記少なくとも一つの箇所に対応する前記第1閾値を求め、求めた前記第1閾値を前記第1検出部に渡す設定部を有する
ことを特徴とする検出装置。
(付記9)
表示装置の表示画面を撮像部に撮像させ、
前記撮像部による撮像で得られた画像に含まれる前記表示画面上の位置の指示に用いられる物体の画像の大きさが、前記物体の画像の位置毎に設定された第1閾値以下である場合に、前記物体の画像の位置で示される前記表示画面上の箇所への前記物体の接触を検出する
処理をコンピュータに実行させることを特徴とする検出プログラム。
(付記10)
表示装置の表示画面に対して斜めの方向に光軸が設定された撮像部に前記表示画面を撮像させ、
前記撮像部による撮像で得られた画像に含まれる前記物体の画像の位置が前記表示画面に設定された所定の範囲に対応する領域に含まれる場合に、
前記撮像部による撮像で得られた画像に含まれる前記表示画面上の位置の指示に用いられる物体の画像の大きさが、前記物体の画像の位置毎に設定された第1閾値以下である場合に、前記物体の画像の位置で示される前記表示画面上の箇所への前記物体の接触を検出し、
前記物体の画像の位置が前記領域の外側である場合に、
前記撮像部による撮像で得られた画像に含まれる前記物体の画像の位置と前記表示画面に映った前記物体の鏡像を示す画像の位置との距離が第2閾値以下である場合に、前記物体の画像の位置で示される前記表示画面上の箇所への前記物体の接触を検出する
処理をコンピュータに実行させることを特徴とする検出プログラム。
(付記10)
表示装置の表示画面に対して斜めの方向に光軸が設定された撮像部に前記表示画面を撮像させ、
前記撮像部で撮像された画像に含まれる前記物体の画像の幅が所定値以上である場合に
前記撮像部による撮像で得られた画像に含まれる前記表示画面上の位置の指示に用いられる物体の画像の大きさが、前記物体の画像の位置毎に設定された第1閾値以下である場合に、前記物体の画像の位置で示される前記表示画面上の箇所への前記物体の接触を検出し、
前記物体の画像の幅が所定値未満である場合に、
前記撮像部による撮像で得られた画像に含まれる前記物体の画像の位置と前記表示画面に映った前記物体の鏡像を示す画像の位置との距離が第2閾値以下である場合に、前記物体の画像の位置で示される前記表示画面上の箇所への前記物体の接触を検出する
処理をコンピュータに実行させることを特徴とする検出プログラム。