(57)【要約】【課題】実空間での指先位置を高精度に検出可能な入力装置を提供する。【解決手段】入力装置は、第1の撮像部（４−１）により得た第１の画像において指が表された指領域及び指先位置を検出する指領域検出部（１１）と、指領域を含むテンプレートと、テンプレートを指領域の長手方向に沿って分割した複数のサブテンプレートとを設定するテンプレート設定部（１２）と、第１の撮像部（４−１）と所定間隔離して配置された第２の撮像部（４−２）により得た第２の画像上でテンプレートと最も一致する領域を指領域の長手方向に沿ってサブテンプレートの数と同じ数の探索領域に分割する探索領域設定部（１３）と、指先位置を含むサブテンプレートと対応する探索領域間でのテンプレートマッチングによりその指先位置に対応する対応点を求める照合部（１４）と、指先位置と対応点とに基づいて、指先の実空間での位置を算出する指先位置算出部（１５）とを有する。【選択図】図４
2016177491.tif 000002
【特許請求の範囲】
【請求項１】
指を撮影して当該指が表された第１の画像を生成する第１の撮像部と、
前記第１の撮像部と所定間隔離して配置され、かつ、前記指を撮影して前記指が表された第２の画像を生成する第２の撮像部と、
前記第１の画像において前記指が表された指領域及び前記指領域から前記指の先端に相当する指先位置を検出する指領域検出部と、
前記指領域を含むテンプレートと、前記テンプレートを前記指領域の長手方向に沿って分割した複数のサブテンプレートとを設定するテンプレート設定部と、
前記第２の画像上で前記テンプレートと最も一致する領域を求め、当該領域を前記指領域の長手方向に沿って前記サブテンプレートの数と同じ数の探索領域に分割する探索領域設定部と、
前記複数のサブテンプレートのうち、前記指先位置を含むサブテンプレートについて、対応する前記探索領域との間でテンプレートマッチングを行うことにより前記第1の画像上の前記指先位置に対応する前記第２の画像上の対応点を求める照合部と、
前記第1の画像上の前記指先位置と前記第２の画像上の前記対応点とに基づいて、前記指の先端の実空間での位置を算出する指先位置算出部と、
を有する入力装置。
【請求項２】
前記探索領域設定部は、前記複数のサブテンプレートのうち、前記指先位置を含むサブテンプレートに対応する前記探索領域の前記指領域の長手方向に直交する方向の幅を、前記領域の前記指領域の長手方向に直交する方向の幅よりも前記第１の撮像部と前記第２の撮像部間の視差が小さくなる方向に拡張する、請求項１に記載の入力装置。
【請求項３】
前記照合部は、前記複数のサブテンプレートのうちの前記指先位置を含まないサブテンプレートのそれぞれについて、対応する前記探索領域との間でテンプレートマッチングを行うことにより、当該サブテンプレートに含まれる前記指領域内の点に対応する前記第２の画像上の対応点を求め、
前記指先位置算出部は、前記複数のサブテンプレートのうちの前記指先位置を含まないサブテンプレートのそれぞれについて、当該サブテンプレートに含まれる前記指領域内の点と前記対応点とに基づいて、当該点の実空間の位置を求め、各点の実空間での位置と前記指先位置を含む前記サブテンプレートに基づいて算出された前記指の先端の実空間での位置とを直線近似することにより得られた直線の前記第１の撮像部から遠い方の先端の位置を、前記指の先端の実空間での位置とする、請求項１または２に記載の入力装置。
【請求項４】
前記探索領域設定部は、前記複数のサブテンプレートのうち、前記指先位置を含まないサブテンプレートのそれぞれについて、当該サブテンプレートが前記指の根元に近いほど、対応する前記探索領域の前記指領域の長手方向に直交する方向の幅を、前記領域の前記指領域の長手方向に直交する方向の幅よりも前記第１の撮像部と前記第２の撮像部間の視差が大きくなる方向に拡張する、請求項３に記載の入力装置。
【請求項５】
前記第１の撮像部または前記第２の撮像部から前記指の先端の実空間での位置までの距離と前記第１の撮像部または前記第２の撮像部から対象物までの距離のとの差が所定の閾値以下である場合、前記指が前記対象物に接触していると判定して前記指の先端の実空間での位置に応じた入力信号を生成する接触判定部をさらに有する、請求項１〜４の何れか一項に記載の入力装置。
【請求項６】
第１の撮像部が指を撮影することにより生成した、当該指が表された第１の画像において前記指が表された指領域及び前記指領域から前記指の先端に相当する指先位置を検出し、
前記指領域を含むテンプレートと、前記テンプレートを前記指領域の長手方向に沿って分割した複数のサブテンプレートとを設定し、
前記第１の撮像部と所定間隔離して配置された第２の撮像部が前記指を撮影することにより生成した、当該指が表された第２の画像上で前記テンプレートと最も一致する領域を求め、当該領域を前記指領域の長手方向に沿って前記サブテンプレートの数と同じ数の探索領域に分割し、
前記複数のサブテンプレートのうち、前記指先位置を含むサブテンプレートについて、対応する前記探索領域との間でテンプレートマッチングを行うことにより前記第1の画像上の前記指先位置に対応する前記第２の画像上の対応点を求め、
前記第1の画像上の前記指先位置と前記第２の画像上の前記対応点とに基づいて、前記指の先端の実空間での位置を算出する、
ことを含む指先位置検出方法。
【請求項７】
第１の撮像部が指を撮影することにより生成した、当該指が表された第１の画像において前記指が表された指領域及び前記指領域から前記指の先端に相当する指先位置を検出し、
前記指領域を含むテンプレートと、前記テンプレートを前記指領域の長手方向に沿って分割した複数のサブテンプレートとを設定し、
前記第１の撮像部と所定間隔離して配置された第２の撮像部が前記指を撮影することにより生成した、当該指が表された第２の画像上で前記テンプレートと最も一致する領域を求め、当該領域を前記指領域の長手方向に沿って前記サブテンプレートの数と同じ数の探索領域に分割し、
前記複数のサブテンプレートのうち、前記指先位置を含むサブテンプレートについて、対応する前記探索領域との間でテンプレートマッチングを行うことにより前記第1の画像上の前記指先位置に対応する前記第２の画像上の対応点を求め、
前記第1の画像上の前記指先位置と前記第２の画像上の前記対応点とに基づいて、前記指の先端の実空間での位置を算出する、
ことをコンピュータに実行させるための指先位置検出用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、画像に写った指先の位置に応じた入力信号を生成する入力装置、及び、そのような入力装置で利用される指先位置検出方法及び指先位置検出用コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、人間の動作を検知して、その動作に応じた入力信号を生成するユーザインタフェースが研究されている。そのようなユーザインターフェースを、例えば、パーソナルコンピュータ、あるいはスマートフォンといった情報端末へ応用することが検討されている。特に、オフィスで使用するパーソナルコンピュータなどの操作に上記のユーザインタフェースを適用する場合には、ユーザが大きなジェスチャーを伴う操作を行うことは困難である。そのため、ユーザインターフェースは、手または指などによる微妙なジェスチャーを認識可能であることが求められる。しかしながら、手または指などによる微妙なジェスチャーを認識するためにはユーザインタフェースとして高度の検出精度が要求される。
【０００３】
そこで、所定の視差でステレオ撮影して得られた左右の視差画像に基づき、画像中のオブジェクトに関する視差値を決定することで、ジェスチャーなどを認識する技術が提案されている（例えば、特許文献１を参照）。
【０００４】
特許文献１に開示された情報処理装置は、一方の視差画像を２以上のレベルを持つグレイスケール画像に変換し、変換したグレイスケール画像から所定方向に連続する同一レベルを有する連続画素群をオブジェクトとして抽出する。この情報処理装置は、オブジェクトごとに、オブジェクトの位置及び予め定めた最大許容視差に基づいて、一方の視差画像において基準領域を設定するとともに、他方の視差画像において探索エリアを設定する。そしてこの情報処理装置は、基準領域の画像をテンプレートとして探索エリア内においてテンプレートマッチングを行うことにより基準領域に類似する類似領域を探索し、基準領域と類似領域の位置の差に基づいてオブジェクトに関する視差値を決定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１７５３４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の技術では、テンプレートマッチングによるカメラ間の視差を算出する際に、オブジェクト全体についての視差値が算出されるので、その視差値に応じて求められる距離は、カメラからオブジェクト全体間の平均的な距離となる。そのため、オブジェクト全体でなく、オブジェクトの一部の位置、例えば、指先の位置に応じて入力信号を生成する用途では、上記のようなオブジェクト全体についての平均的な距離しか求められない場合、位置検出精度が十分でない。
【０００７】
そこで本明細書は、実空間での指先位置を高精度に検出可能な入力装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
一実施形態によれば、入力装置が提供される。この入力装置は、指を撮影してその指が表された第１の画像を生成する第１の撮像部と、第１の撮像部と所定間隔離して配置され、かつ、その指を撮影してその指が表された第２の画像を生成する第２の撮像部と、第１の画像において指が表された指領域及び指領域から指の先端に相当する指先位置を検出する指領域検出部と、指領域を含むテンプレートと、そのテンプレートを指領域の長手方向に沿って分割した複数のサブテンプレートとを設定するテンプレート設定部と、第２の画像上でテンプレートと最も一致する領域を求め、その領域を指領域の長手方向に沿ってサブテンプレートの数と同じ数の探索領域に分割する探索領域設定部と、複数のサブテンプレートのうち、指先位置を含むサブテンプレートについて、対応する探索領域との間でテンプレートマッチングを行うことにより第1の画像上の指先位置に対応する第２の画像上の対応点を求める照合部と、第1の画像上の指先位置と第２の画像上の対応点とに基づいて、指の先端の実空間での位置を算出する指先位置算出部とを有する。
【０００９】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【００１０】
本明細書に開示された入力装置は、実空間での指先位置を高精度に検出できる。
【図面の簡単な説明】
【００１１】
【図１】（ａ）及び（ｂ）は、それぞれ、対象物に対する指の傾きの一例を示す図である。
【図２】一つの実施形態による入力装置の一構成例を示す概略斜視図である。
【図３】図２に示された入力装置のハードウェア構成図である。
【図４】制御部の機能ブロック図である。
【図５】テンプレートの一例を示す図である。
【図６】図５に示されたテンプレートについて設定されるサブテンプレートの一例を示す図である。
【図７】図６に示された各サブテンプレートに対して設定される探索領域の一例を示す図である。
【図８】直線近似による、指先位置の算出の一例を示す図である。
【図９】（ａ）は、比較例として、指先が対象物に接触している場合に指を撮影して得られた画像上でのテンプレートそのものを用いて求めた対象物から指先までの高さの算出結果を表す図である。（ｂ）は、指先が対象物に接触している場合に指を撮影して得られた画像上でのテンプレートを２分割したサブテンプレートを用いて求めた対象物から指先までの高さの算出結果を表す図である。
【図１０】指先位置検出処理を含む入力処理の動作フローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照しつつ、入力装置について説明する。この入力装置は、二つのカメラのそれぞれでユーザの指を撮影して得られる二つの画像から、指先の実空間での位置を求め、その位置に応じて、指先が基準となる対象物に接触したか否かを判定する。そしてこの入力装置は、指先が対象物に接触したと判定した場合に、その指先の位置に応じた入力信号を生成する。
【００１３】
ここで、対象物に対する指の傾け方は、ユーザによって異なる。
図１（ａ）及び図１（ｂ）は、それぞれ、対象物に対する指の傾きの一例を示す図である。図１（ａ）に示される例では、指１００は、対象物１０１に対して相対的に大きく傾けられている。そのため、例えば、一方の画像上で、指先以外の指１００の部分１０３を含むようにテンプレートマッチング用のテンプレート１０２が設定されたとする。この場合、テンプレート１０２と他方の画像間での対応位置から算出される、対象物１０１からの指１００の高さは、テンプレート１０２内に含まれる指１００の部分１０３の平均的な高さh1となり、本来の指先の対象物１０１からの高さに対する誤差が大きくなる。
【００１４】
一方、図１（ｂ）に示される例では、対象物１０１に対する指１００の傾きは、相対的に小さい。そのため、指先以外の指１００の部分１１３を含むようにテンプレート１１２が設定されたとしても、対象物１０１からの指１００の高さh2は、指の部分１１３の平均的な高さとなり、図１（ａ）に示される例での高さh1よりも小さくなる。このように、テンプレートに含まれる指の部分が長くなるほど、対象物に対する指の傾きによる、対象物から指先までの高さの誤差が大きくなる可能性がある。
【００１５】
そこで、この入力装置は、一方の画像から指が写っている指領域を検出するとともに、画像上での指の長手方向に沿って指が写っている指領域を含むテンプレートを複数のサブテンプレートに分割する。そしてこの入力装置は、各サブテンプレートについて、他方の画像上に設定する、そのサブテンプレートに対応する探索領域に対してテンプレートマッチングを行って、サブテンプレート内の指の部分の対応点を求める。そしてこの入力装置は、一方の画像上の各サブテンプレートに写っている指の部分と他方の画像上の対応点とに基づいて、指先の実空間での位置を求める。これにより、この入力装置は、指先の実空間での位置の検出精度の向上を図る。
【００１６】
図２は、一例による入力装置の概略斜視図である。図３は、図２に示された入力装置のハードウェア構成図である。入力装置１は、投影装置２と、ミラー３と、二つのカメラ４−１、４−２と、通信部５と、記憶部６と、制御部７とを有する。入力装置１が有するこれらの各部は、側面から見て縦方向にコの字型をした筐体１０に収容される。なお、以下では説明の都合上、ユーザに面する側を正面と呼ぶ。
【００１７】
投影装置２は、例えば、液晶プロジェクタであり、筐体１０の正面側に、表示面を上方へ向けて配置される。投影装置２は、制御部７から受け取った映像信号に従って映像をその表示面に表示することで、映像を投影する。投影装置２から投影された映像は、正面側へ突出した筐体１０の天頂部１０ａの下側に設けられたミラー３により反射されて、例えば、ユーザの指先が接触したか否かの判定対象となる対象物８が載置されたテーブル面などに投影される。なお、対象物８は、例えば、シート状の物体とすることができるが、そのような物体に限定されない。また、対象物８は、入力装置１が載置されるテーブルそのものであってもよい。
【００１８】
二つのカメラ４−１、４−２は、それぞれ、撮像部の一例であり、天頂部１０ａに、ミラー３を挟んで所定間隔だけ離して鉛直下方に向けて配置される。なお、テーブル面からカメラ４−１、４−２までの高さは、対象物８がカメラ４−１とカメラ４−２の両方の撮影範囲に含まれ、かつ、対象物８の近傍に位置する指先を画像上で識別できるように、例えば、600mmに設定される。そしてカメラ４−１、４−２は、それぞれ、所定の撮影周期（例えば、10msec〜50msec）でその撮影範囲が写った画像を生成する。本実施形態では、カメラ４−１、４−２により生成される画像は、RGB表色系により表されるカラー画像である。また、本実施形態では、カメラ４−１とカメラ４−２間の視差方向は、各カメラにより生成された画像において水平方向となる。カメラ４−１、４−２は、画像を生成する度に、その画像を制御部７へ出力する。
【００１９】
通信部５は、入力装置１を他の機器と接続するためのインタフェース及びその制御回路を有する。そして通信部５は、例えば、他の機器から受け取った映像信号を制御部７へ渡す。あるいは、通信部５は、制御部７から受け取った、ユーザの入力に応じた入力信号を他の機器へ出力する。
【００２０】
記憶部６は、例えば、揮発性又は不揮発性の半導体メモリ回路を有する。そして記憶部６は、投影装置２により投影される映像を表す映像信号及びユーザの操作入力を検出するために利用される各種の情報を記憶する。ユーザの操作入力を検出するために利用される情報には、例えば、カメラ４−１とカメラ４−２間の間隔、カメラ４−１、４−２の焦点距離、指先位置の検出に利用する各種のパラメータなどが含まれる。さらに、ユーザの操作入力を検出するために利用される情報には、テーブルと平行な面の位置ごとにおける、カメラ４−１またはカメラ４−２から対象物８の表面までの距離が含まれてもよい。さらに、記憶部６は、カメラ４−１またはカメラ４−２から得られた画像を記憶してもよい。
【００２１】
制御部７は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部７は、投影装置２、カメラ４−１、４−２、通信部５及び記憶部６と信号線を介して接続されており、入力装置１全体を制御する。
また制御部７は、カメラ４−１及びカメラ４−２のそれぞれから受け取った画像上での指先の位置を求めることで、ユーザの指先の実空間での位置（すなわち、三次元位置）を特定する。そして制御部７は、指先の実空間での位置に基づいて、ユーザによる入力操作が行われたか否かを判定し、入力操作が行われたと判定した場合、指先の位置に応じた入力信号を生成して、その入力信号に応じた処理を実行する。
【００２２】
以下、制御部７により実行される、指先位置検出処理を含む入力処理に関する構成要素の詳細について説明する。
図４は、制御部７の機能ブロック図である。制御部７は、指領域検出部１１と、テンプレート設定部１２と、探索領域設定部１３と、照合部１４と、指先位置算出部１５と、接触判定部１６とを有する。
制御部７が有するこれらの各部は、例えば、制御部７が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールとして実装されてもよい。なお、これらの各部は、それぞれ、別個の回路として、制御部７とは別個に入力装置１に実装されてもよく、あるいはこれらの各部の機能を実現する一つの集積回路として、制御部７とは別個に入力装置１に実装されてもよい。
【００２３】
指領域検出部１１は、カメラ４−１及びカメラ４−２のそれぞれから制御部７が画像を取得する度に、何れか一方のカメラから取得した画像上で指が写っている領域である指領域を検出する。以下の説明では、指領域検出部１１は、カメラ４−１から得られた画像上の指領域を検出するものとする。
【００２４】
本実施形態では、指領域検出部１１は、画像上で肌色に相当する色を持つ領域を、指領域として抽出する。そのために、指領域検出部１１は、画像の各画素の値を、次式に従って、RGB表色系で表される値からHSV表色系で表される値に変換する。
【数１】
2016177491.tif 000003
ここで、R、G、Bは、それぞれ、変換前の画素の赤色成分、緑色成分、青色成分を表す。またMAX、MINは、それぞれ、変換前の画素の赤色成分、緑色成分、青色成分のうちの最大値及び最小値を表す。そしてH、V、Ｓは、それぞれ、変換後の画素の色相、明度、彩度を表す。ただし、Hの値に関しては、（１）式により得られた値が負の場合、その値に360を加えた値が色相の値となる。
この例では、明度V及び彩度Sは、それぞれ、0〜255の範囲内の値を取る。また、色相Hは、0〜359の値を取る。
【００２５】
指領域検出部１１は、各画素の値がHSV表色系で表された画像から、次式の条件を満たす画素を肌色を持つ画素として抽出する。
【数２】
2016177491.tif 000004
【００２６】
指領域検出部１１は、抽出された肌色を持つ画素（以下、便宜上、肌色画素と呼ぶ）に対してラベリング処理を実行することにより、肌色画素同士が連結された領域を指領域とする。なお、指領域検出部１１は、画像から指領域を検出する様々な方法の何れかに従って指領域を検出してもよい。
【００２７】
指領域が検出されると、指領域検出部１１は、指領域の先端を、その画像上での指先の位置として検出する。例えば、画像上では指の根元が上側に位置し、指先が下側に位置することが想定される場合、指領域検出部１１は、指領域の輪郭上に位置する画素のうち、垂直方向の座標が最も下方となる画素の位置を指先位置とする。あるいは、指領域検出部１１は、画像上での指先位置を検出する様々な方法の何れか、例えば、特開２００３−３４６１６２号公報に開示されている方法にしたがって画像上の指先位置を検出してもよい。
【００２８】
指領域検出部１１は、画像上での指領域及び指先位置をテンプレート設定部１２へ通知する。さらに、指領域検出部１１は、画像上での指先位置を指先位置算出部１５へ通知する。
【００２９】
テンプレート設定部１２は、指領域及び指先位置が検出された画像に対して、他方の画像とのマッチングに利用するテンプレート及びサブテンプレートを設定する。その際、テンプレート設定部１２は、指領域の少なくとも一部及び指先位置を含むようにテンプレートを設定し、そのテンプレートを、指の長手方向に沿って複数のサブテンプレートに分割する。
【００３０】
本実施形態では、テンプレート設定部１２は、指先位置を基準としてテンプレートを設定する。
なお、本実施形態では、画像上において指の根元が上側に位置し、指先が下側に位置するとともに、指は画像の垂直方向と略平行となるように写っているものとする。
【００３１】
図５は、テンプレートの一例を示す図である。テンプレート５００は、例えば、指５０１の一定部分、例えば、第１関節より先の部分がテンプレート５００に含まれるように設定される。例えば、画像上の指先位置Pの座標が(px,py)である場合、テンプレート５００の左上端座標R0(rx,ry)は、次式のように設定される。
rx=px-W/2
ry=y-H
ただし、Wは、テンプレート５００の水平方向の長さであり、Hは、テンプレート５００の垂直方向の長さである。カメラ４−１から指までの距離が略600mmであり、カメラ４−１の解像度がVGA(640x480画素)であり、かつ、画角が75°であれば、例えば、W=H=40に設定される。
【００３２】
テンプレート設定部１２は、テンプレートを、指の長手方向に沿って複数に分割して得られる個々の領域をサブテンプレートとする。
【００３３】
図６は、図５に示されたテンプレートについて設定されるサブテンプレートの一例を示す図である。テンプレート６００は、指領域６０１の長手方向に沿ってN個（この例では、N=4）のサブテンプレート６０２−１〜６０２−４に等分割される。そのため、各サブテンプレートは、指領域の一部を含む。なお、テンプレートを分割する数Ｎは、指先位置の高さ方向の誤差の許容範囲が狭いほど、あるいは、テンプレートの垂直方向の長さHが大きいほど、大きな値に設定される。
【００３４】
また、画像上での指の長手方向が特定の方向に限定されないことがある。この場合には、テンプレート設定部１２は、例えば、指領域の長手方向が垂直方向となるように画像をアフィン変換してから、上記のようにテンプレート及び各サブテンプレートを設定すればよい。その際、テンプレート設定部１２は、例えば、指先位置から指領域の輪郭の一方の側に沿って所定画素数（例えば、10〜20画素）だけ離れた第１の位置と、指先位置から指領域の輪郭の他方の側に沿って所定画素数だけ離れた第２の位置とを求める。そしてテンプレート設定部１２は、第１の位置と第２の位置間の中点と、指先位置とを結ぶ線の方向を、指の長手方向とすればよい。
【００３５】
なお、テンプレート設定部１２は、テンプレート内の指領域以外の画素の値によるテンプレートマッチングへの影響を低下させるために、テンプレート内の指領域以外の各画素の値を所定値（例えば、0）に書き換えてもよい。
【００３６】
テンプレート設定部１２は、テンプレートを探索領域設定部１３へわたし、各サブテンプレートを照合部１４へわたす。さらに、テンプレート設定部１２は、指先以外の部分を含むサブテンプレートについて、そのサブテンプレートに写っている指領域の中心の座標を指先位置算出部１５へ通知する。
【００３７】
探索領域設定部１３は、他方のカメラ（本実施形態では、カメラ４−２）により得られた画像上で、サブテンプレートごとに、対応する探索領域を設定する。なお、探索領域設定部１３は、カメラ４−２により生成された画像のうち、各サブテンプレートが設定されたカメラ４−１による画像の撮影時刻と最も近い撮影時刻の画像を、探索領域を設定する他方の画像とする。
【００３８】
探索領域設定部１３は、探索領域を設定するために、テンプレートと他方の画像との間でテンプレートマッチングを実行する。その際、探索領域設定部１３は、例えば、他方の画像に対するテンプレートの相対的な位置を水平方向（すなわち、視差方向）にずらしながら、テンプレートと他方の画像間の正規化相互相関値を算出する。なお、探索領域設定部１３は、他方の画像に対するテンプレートの相対的な位置を、垂直方向にもずらしてもよい。そして探索領域設定部１３は、正規化相互相関値が最大となったときの他方の画像上でのテンプレートを、探索領域決定のための基準領域とする。これにより、探索領域設定部１３は、指領域の広い範囲を利用して、他方の画像上でテンプレートと一致する領域を特定できるので、指以外が写っている領域を誤って探索領域とする可能性を軽減できる。
【００３９】
なお、テンプレート設定部１２が指領域の長手方向が垂直方向となるように画像をアフィン変換してから、テンプレート及び各サブテンプレートを設定している場合には、探索領域設定部１３も、他方の画像を指の長手方向が垂直となるようにアフィン変換する。そして探索領域設定部１３は、アフィン変換後の他方の画像をテンプレートマッチングに利用する。その際、探索領域設定部１３は、他方の画像の回転角度を、テンプレート設定部１２が求めた指領域の長手方向と画像の垂直方向間の角度とすればよい。
【００４０】
また、ユーザが指先で対象物８にタッチすることで入力操作が行われる場合、カメラ４−１及びカメラ４−２と対象物８及び指の位置関係上、指の付け根よりも指先の方がカメラ４−１及びカメラ４−２から離れていると想定される。そして本実施形態では、カメラ４−１及びカメラ４−２の何れも、同一方向へ向けて設置されているので、カメラ４−１及びカメラ４−２から遠い位置ほど、カメラ４−１とカメラ４−２間の視差は小さくなる。
【００４１】
そこで、探索領域設定部１３は、基準領域をテンプレートを分割した方向と同じ方向、すなわち、指領域の長手方向に沿って、サブテンプレートの数と同数の探索領域に等分割する。そして探索領域設定部１３は、指先に近い部分が写っているサブテンプレートほど、そのサブテンプレートに対応する探索領域の指領域の長手方向と直交する方向の幅を、基準領域のその方向の幅よりも視差が小さくなる方向に拡張する。なお、以下では、探索領域の指領域の長手方向と直交する方向の幅を、単に探索領域の幅と呼ぶ。逆に、探索領域設定部１３は、指の根元に近い部分が写っているサブテンプレートほど、そのサブテンプレートに対応する探索領域の幅を、視差が大きくなる方向に拡張する。これにより、各サブテンプレートに含まれる指領域と最も一致する部分が対応する探索領域に含まれる可能性が高くなる。一方、指領域と最も一致する部分が含まれる可能性が低い方については、探索領域は拡張されないので、探索領域設定部１３は、指領域と異なる部分を、指領域と最も一致する部分として誤検出する可能性が高くなることを抑制できる。
【００４２】
図７は、図６に示された各サブテンプレートに対して設定される探索領域の一例を示す図である。上記のように、カメラ４−１とカメラ４−２間の視差方向は、カメラ４−２による画像において水平方向となる。そのため、同一の被写体に対する視差が大きいほど、カメラ４−１による画像上での水平方向の位置とカメラ４−２による画像上での水平方向の位置の差が大きくなる。そこで、この例では、指先に最も近いサブテンプレート（図６のサブテンプレート６０２−１）に対応する探索領域７０２−１の幅は、対応するサブテンプレートの水平方向の位置に近づける方向に、画像上で検出された基準領域７０１の幅からm画素分拡張される。同様に、指先に２番目に近いサブテンプレート（図６のサブテンプレート６０２−２）に対応する探索領域７０２−２の幅は、対応するサブテンプレートの水平方向の位置に近づける方向に、基準領域７０１の幅からm/2画素分拡張される。逆に、指先から２番目に遠いサブテンプレート（図６のサブテンプレート６０２−３）に対応する探索領域７０２−３の幅は、対応するサブテンプレートの水平方向の位置から離れる方向に、基準領域７０１の幅からm/2画素分拡張される。さらに、指先から最も遠いサブテンプレート（図６のサブテンプレート６０２−４）に対応する探索領域７０２−４の幅は、対応するサブテンプレートの水平方向の位置から離れる方向に、基準領域７０１の幅からm画素分拡張される。
【００４３】
なお、mは、例えば、テンプレートの垂直方向の長さHに応じて決定され、例えば、テンプレート内でその長さHに相当する指の部分の実空間での長さに応じて生じる視差の最大値に応じた画像上でのずれ量に相当する画素数、例えば、5に設定される。
【００４４】
なお、変形例によれば、探索領域設定部１３は、全ての探索領域の幅を、基準領域の左側及び右側の少なくとも一方について同じ画素数だけ、拡張してもよい。あるいは、探索領域設定部１３は、基準領域をテンプレートを分割した方向と同方向に沿ってサブテンプレートの数で等分割して得られた各サブ領域そのものを探索領域としてもよい。
【００４５】
探索領域設定部１３は、各探索領域を照合部１４へ通知する。
【００４６】
照合部１４は、サブテンプレートごとに、対応する探索領域との間でテンプレートマッチングを実行して最も一致する位置を検出することで、各サブテンプレートに含まれる指の部分に対する他方の画像上での対応点を検出する。その際、照合部１４は、例えば、探索領域に対するサブテンプレートの相対的な位置を水平方向にずらしながら、サブテンプレートと探索領域間の正規化相互相関値を算出する。そして照合部１４は、サブテンプレートごとに、正規化相互相関値が最大となったときの探索領域上でのサブテンプレートの位置を求める。照合部１４は、指先を含むサブテンプレートについて、そのサブテンプレートを正規化相互相関値が最大となったときの探索領域の位置に位置合わせしたときのサブテンプレート内の指先位置P(px,py)に対応する、探索領域内の対応点の位置Q1(x1,y1)を求める。同様に、照合部１４は、その他の各サブテンプレートについて、サブテンプレート内の指領域の中心に対応する、探索領域内の対応点の位置Qi(xi,yi)(i=2,3,...,N)を求める。
【００４７】
照合部１４は、各サブテンプレートについて求めた対応点の位置Qiを指先位置算出部１５へ通知する。
【００４８】
指先位置算出部１５は、カメラ４−１による画像上の各サブテンプレートの指の部分の位置と、カメラ４−２による画像上の対応点の位置とに基づいて、実空間での指先位置を求める。
【００４９】
本実施形態では、各カメラの設置位置、画角及び解像度が分かっているので、指先位置算出部１５は、三角測量に基づいて、一方の画像上での指の特定部分の位置と、他方の画像上での対応点の位置とから、その特定部分の実空間での位置を求めることができる。例えば、指先位置算出部１５は、次式に従って、指先を含むサブテンプレートに基づいて求められた、その指先位置と対応点とから、カメラ４−１（あるいはカメラ４−２）から指先位置までのカメラ４−１の光軸方向に沿った距離Zを算出する。
【数３】
2016177491.tif 000005
ここでx0は、一方の画像における指先位置の水平方向座標であり、x1は、他方の画像における対応点の水平方向座標である。またfは、カメラ４−１及びカメラ４−２の焦点距離である。そしてTは、カメラ４−１とカメラ４−２間の距離である。
また、画像上の画素の位置は、カメラの光軸となす角と１対１に対応している。そのため、指先位置算出部１５は、カメラ４−１から指先までの距離と、画像上の指先の位置に対応する、光軸に対する角度とに基づいて、カメラ４−１の光軸に直交する面における指先の位置を特定できる。
【００５０】
ユーザが指で対象物８に触れる場合、指先近傍では、指は真っ直ぐに伸ばされていると想定される。そこで本実施形態では、指先位置算出部１５は、サブテンプレートごとに、そのサブテンプレートに含まれる指領域の中心に相当する指の部分と対応点の画像上の位置から、（３）式に従ってその指の部分の実空間の位置を算出する。そして指先位置算出部１５は、各サブテンプレートに対応する指の部分及び指先の実空間の位置に対して直線近似を適用することで、カメラ４−１から指先位置までの距離を求める。
【００５１】
図８は、直線近似による、指先位置の算出の一例を示す図である。この例では、P1は、指先位置を含むサブテンプレートについて求められた指先の実空間での位置を表し、P2〜P4は、それぞれ、その他のサブテンプレートについて求められた指の部分の実空間での位置を表す。指先位置算出部１５は、P1〜P4に対して例えば最小二乗法を適用することで線形近似した直線８００を求める。そして指先位置算出部１５は、点P1の水平方向座標と水平方向座標が一致する直線８００上の位置P0、すなわち、直線８００のカメラ４−１から遠い方の先端を、真の指先位置とする。そして指先位置算出部１５は、カメラ４−１から位置P0までの距離を、カメラ４−１から指先位置までの距離とする。
指先位置算出部１５は、指先位置の実空間での位置を接触判定部１６に通知する。
【００５２】
接触判定部１６は、カメラ４−１から指先位置までの距離と、その指先の位置に対応する対象物８とカメラ４−１間の距離とを比較する。そして接触判定部１６は、その距離の差が、指の厚さに相当する所定の接触判定閾値以下である場合、指先が対象物８に接触したと判定する。
【００５３】
接触判定部１６は、指先が対象物８に接触したと判定した場合、指先位置の対象物８の表面における位置に応じた入力信号を生成し、その入力信号を通信部５を介して他の機器へ出力する。あるいは、制御部７は、その入力信号に応じた処理を実行してもよい。
【００５４】
図９（ａ）は、比較例として、指先が対象物に接触している場合に指を撮影して得られた画像上でのテンプレートそのものを用いて求めた対象物から指先までの高さの算出結果を表す図である。一方、図９（ｂ）は、指先が対象物に接触している場合に指を撮影して得られた画像上でのテンプレートを２分割したサブテンプレートを用いて求めた対象物から指先までの高さの算出結果を表す図である。図９（ａ）及び図９（ｂ）において、横軸は、対象物に対する指の角度を表し、縦軸は、算出された対象物から指先までの高さ、すなわち、指先位置の高さ方向の誤差を表す。図９（ａ）に示される棒グラフ９０１は、テンプレートそのものを用いた場合における、対象物に対する指の角度と対象物から指先までの高さの算出値との関係を表す。また図９（ｂ）に示される棒グラフ９０２は、テンプレートを２分割したサブテンプレートを用いた場合における、対象物に対する指の角度と対象物から指先までの高さの算出値との関係を表す。棒グラフ９０１及び棒グラフ９０２に示されるように、本実施形態による指先位置の検出処理により、指先位置の高さ方向の誤差が減少することが分かる。
【００５５】
図１０は、指先位置検出処理を含む入力処理の動作フローチャートである。制御部７は、カメラ４−１及びカメラ４−２から画像を取得する度に、以下の動作フローチャートに従って入力処理を実行する。また、以下の動作フローチャートにおいて、ステップＳ１０１〜Ｓ１１０までが、指先位置検出処理に相当する。
【００５６】
指領域検出部１１は、カメラ４−１から得られた画像上で指が写っている指領域を検出する（ステップＳ１０１）。そして指領域検出部１１は、指領域の先端を画像上での指先位置として検出する（ステップＳ１０２）。
【００５７】
テンプレート設定部１２は、画像上での指先位置を含む、指領域の一部を含むようにテンプレートを設定する（ステップＳ１０３）。さらに、テンプレート設定部１２は、テンプレートを、指領域の長手方向に沿って複数のサブテンプレートに分割する（ステップＳ１０４）。
【００５８】
探索領域設定部１３は、テンプレートと他方の画像（すなわち、カメラ４−２から得られた画像）との間でテンプレートマッチングを実行することにより、他方の画像上でテンプレートと最も一致する領域を基準領域として検出する（ステップＳ１０５）。
【００５９】
探索領域設定部１３は、基準領域を、指領域の長手方向に沿ってサブテンプレートの数と同じ数の探索領域に分割する（ステップＳ１０６）。そして探索領域設定部１３は、指先に近いサブテンプレートに対応する探索領域ほど、視差が小さくなる方向に探索領域の幅を拡張する（ステップＳ１０７）。
【００６０】
照合部１４は、各サブテンプレートについて、対応する探索領域とテンプレートマッチングすることにより、対応する探索領域内でそのサブテンプレート内の指先位置または指領域中心の指の部分に対する対応点を検出する（ステップＳ１０８）。
【００６１】
指先位置算出部１５は、指先位置及び対応点に基づいて指先位置の実空間の位置を算出するとともに、各サブテンプレートについての指領域中心に対応する指の部分とその対応点に基づいて、その指の部分の実空間の位置を算出する（ステップＳ１０９）。そして指先位置算出部１５は、指先の実空間の位置及びそれぞれの指の部分の実空間の位置を直線近似して得られる指先の実空間の位置を、改めて指先の実空間の位置として更新する（ステップＳ１１０）。
【００６２】
接触判定部１６は、その指先位置におけるカメラ４−１から対象物８までの距離と、カメラ４−１から指先までの距離Zとの差が接触判定閾値D以下か否か判定する（ステップＳ１１１）。その差が接触判定閾値Dより大きい場合（ステップＳ１１１−Ｎｏ）、接触判定部１６は、ユーザの指は対象物８に接触していないと判定する。そして制御部７は、入力処理を終了する。
一方、その差が接触判定閾値D以下である場合（ステップＳ１１１−Ｙｅｓ）、接触判定部１６は、その指先の位置にてユーザの指が対象物８に接触したと判定する。そして接触判定部１６は、その指先の位置の実空間における座標に応じた入力信号を生成し、その入力信号を出力する（ステップＳ１１２）。そして制御部７は、入力処理を終了する。
【００６３】
以上に説明してきたように、この入力装置は、一方の画像から検出された指領域を含むテンプレートを指領域の長手方向に沿って分割することで複数のサブテンプレートを設定する。そしてこの入力装置は、サブテンプレートのそれぞれごとに、サブテンプレート内の指の部分に対応する、他方の画像での探索領域内の対応点を検出する。そしてこの入力装置は、サブテンプレートごとに検出された、指の部分と対応点とに基づいて、その指の部分の実空間での位置を求めて直線近似することで、指先位置の実空間での位置を算出する。そのため、この入力装置は、指先位置の決定の際に指先から離れた部分の影響を軽減できるので、より高精度に指先位置の実空間での位置を特定できる。
【００６４】
なお、変形例によれば、指先位置算出部１５は、直線近似を利用せず、指先を含むサブテンプレートに基づいて算出された指先の実空間の位置を、そのまま指先の実空間の位置としてもよい。この場合には、照合部１４は、指先位置を含まないサブテンプレートについては、テンプレートマッチングを行わなくてもよいので、演算量を削減できる。
【００６５】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【００６６】
１    入力装置
２    投影装置
３    ミラー
４−１、４−２    カメラ
５    通信部
６    記憶部
７    制御部
８    対象物
１１    指領域検出部
１２    テンプレート設定部
１３    探索領域設定部
１４    照合部
１５    指先位置算出部
１６    接触判定部
【図１】
2016177491.tif 000006
【図２】
2016177491.tif 000007
【図３】
2016177491.tif 000008
【図４】
2016177491.tif 000009
【図５】
2016177491.tif 000010
【図６】
2016177491.tif 000011
【図７】
2016177491.tif 000012
【図８】
2016177491.tif 000013
【図９】
2016177491.tif 000014
【図１０】
2016177491.tif 000015