(57)【要約】【課題】ユーザが入力操作を行う際に接触する対象物までの距離が不明でも、入力操作を検出可能な入力装置を提供する。【解決手段】入力装置は、第１の撮像部（４−１）により得られた画像上での指先位置を検出する指領域検出部１１と、第２の撮像部（４−２）により得られた画像上で指先位置に対応する対応点を求め、指先位置と対応点とに基づいて、指の先端の実空間での位置を算出する指先位置算出部１２と、所定期間中に算出された指の先端の実空間での位置のそれぞれに基づいて算出した指の動作を表す特徴量が指で対象物８に触れる動作を表す条件を満たすか否かを判定する接触動作判定部１４と、特徴量が条件を満たす場合、投影装置２に所定のマークを投影させ、投影後の一定期間内に指の先端の実空間での位置がマークの投影位置に応じた高さ方向を含む所定範囲内に含まれる場合に入力操作が行われたと判定する確認動作判定部１７とを有する。【選択図】図９
2019204539.tif 000002
【特許請求の範囲】
【請求項１】
所定の撮影周期ごとに、指を撮影して当該指が表された第１の画像を生成する第１の撮像部と、
前記第１の撮像部と所定間隔離して配置され、かつ、前記所定の撮影周期ごとに、前記指を撮影して前記指が表された第２の画像を生成する第２の撮像部と、
投影装置と、
前記所定の撮影周期ごとに、前記第１の画像において前記指の先端に相当する指先位置を検出する指領域検出部と、
前記所定の撮影周期ごとに、前記指先位置に対応する前記第２の画像上の対応点を求め、前記第１の画像上の前記指先位置と前記第２の画像上の前記対応点とに基づいて、前記指の先端の実空間での位置を算出する指先位置算出部と、
所定期間中に算出された前記指の先端の実空間での位置のそれぞれに基づいて、前記指の動作を表す特徴量を算出し、前記特徴量が指で対象物に触れる動作を表す条件を満たすか否かを判定する接触動作判定部と、
前記特徴量が前記条件を満たす場合、前記投影装置に所定の位置へ所定のマークを投影させ、該投影後の一定期間内の何れかの時点で前記指の先端の実空間での位置が前記マークの投影位置に応じた高さ方向を含む所定範囲内に含まれる場合に入力操作が行われたと判定する確認動作判定部と、
を有する入力装置。
【請求項２】
前記確認動作判定部は、前記特徴量が前記条件を満たすと判定されたときの前記指の先端の実空間での位置よりも所定距離低い位置を前記所定の位置とし、前記所定の範囲を、高さ方向に関して前記所定のマークの高さから前記所定距離高い位置を含むように設定する、請求項１に記載の入力装置。
【請求項３】
前記接触動作判定部は、前記所定期間中に算出された前記指の先端の実空間の位置のうち、前記所定期間中で前記第１の撮像部から最も遠い前記指の先端の実空間での位置からの距離が所定値以下となる回数を前記特徴量として算出し、前記回数が前記所定期間中に算出された前記指の先端の実空間での位置の総数に対する所定割合以上となる場合に、前記特徴量は前記条件を満たすと判定する、請求項１または２に記載の入力装置。
【請求項４】
前記接触動作判定部は、前記所定期間中に算出された前記指の先端の実空間の位置のバラツキ度合いを表す指標を前記特徴量として算出し、前記バラツキ度合いが所定値以下となる場合に、前記特徴量は前記条件を満たすと判定する、請求項１または２に記載の入力装置。
【請求項５】
前記接触動作判定部は、前記所定期間中に算出された前記指の先端の実空間の位置のうち、前記第１の撮像部からの距離が極大値となる位置のバラツキ度合いを表す指標を前記特徴量として算出し、前記バラツキ度合いが所定値以下となる場合に、前記特徴量は前記条件を満たすと判定する、請求項１または２に記載の入力装置。
【請求項６】
前記確認動作判定部は、前記所定期間中で前記第１の撮像部から最も遠い前記指の先端の実空間での位置に応じて前記マークの投影位置を設定する、請求項１〜５の何れか一項に記載の入力装置。
【請求項７】
前記マーク投影後の前記一定期間内において前記指の先端の実空間での位置が前記所定範囲内に含まれた場合に、前記所定期間中で前記第１の撮像部から最も遠い前記指の先端の実空間の位置における、基準面からの前記指の先端の高さを当該位置における対象物の高さとして記憶部に記憶させる登録部と、
前記第１の画像上の前記指先位置と前記第２の画像上の前記対応点とに基づいて算出された前記指の先端の実空間での位置における、前記基準面からの前記指の先端の高さと前記記憶部に記憶されている当該位置での前記対象物の高さとの差が所定の許容範囲内である場合に入力操作が行われたと判定する接触判定部をさらに有し、
前記接触動作判定部は、前記差が前記所定の許容範囲に含まれない場合に、前記特徴量が前記条件を満たすか否かを判定する、請求項１〜６の何れか一項に記載の入力装置。
【請求項８】
所定の撮影周期ごとに第１の撮像部が指を撮影することにより生成した、当該指が表された第１の画像において前記指の先端に相当する指先位置を検出し、
前記所定の撮影周期ごとに、前記第１の撮像部と所定間隔離して配置された第２の撮像部が前記指を撮影することにより生成した第２の画像上で前記指先位置に対応する対応点を求め、前記第１の画像上の前記指先位置と前記第２の画像上の前記対応点とに基づいて、前記指の先端の実空間での位置を算出し、
所定期間中に算出された前記指の先端の実空間での位置のそれぞれに基づいて、前記指の動作を表す特徴量を算出し、前記特徴量が指で対象物に触れる動作を表す条件を満たすか否かを判定し、
前記特徴量が前記条件を満たす場合、投影装置に所定の位置へ所定のマークを投影させ、該投影後の一定期間内の何れかの時点で前記指の先端の実空間での位置が前記マークの投影位置に応じた高さ方向を含む所定範囲内に含まれる場合に入力操作が行われたと判定する、
ことを含む入力操作検出方法。
【請求項９】
所定の撮影周期ごとに第１の撮像部が指を撮影することにより生成した、当該指が表された第１の画像において前記指の先端に相当する指先位置を検出し、
前記所定の撮影周期ごとに、前記第１の撮像部と所定間隔離して配置された第２の撮像部が前記指を撮影することにより生成した第２の画像上で前記指先位置に対応する対応点を求め、前記第１の画像上の前記指先位置と前記第２の画像上の前記対応点とに基づいて、前記指の先端の実空間での位置を算出し、
所定期間中に算出された前記指の先端の実空間での位置のそれぞれに基づいて、前記指の動作を表す特徴量を算出し、前記特徴量が指で対象物に触れる動作を表す条件を満たすか否かを判定し、
前記特徴量が前記条件を満たす場合、投影装置に所定の位置へ所定のマークを投影させ、該投影後の一定期間内の何れかの時点で前記指の先端の実空間での位置が前記マークの投影位置に応じた高さ方向を含む所定範囲内に含まれる場合に入力操作が行われたと判定する、
ことをコンピュータに実行させるための入力操作検出用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、画像に写った指先の位置に応じた入力操作を検出する入力装置、及び、そのような入力装置で利用される入力操作検出方法及び入力操作検出用コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、人間の動作を検知して、その動作に応じた入力信号を生成するユーザインタフェースが研究されている。そのようなユーザインターフェースの一例として、予め設定された特定の物体を入力装置として、その入力装置に対する操作者の動作に依存して制御対象装置を操作する遠隔操作装置が提案されている（例えば、特許文献１を参照）。
【０００３】
特許文献１に開示された遠隔操作装置は、入力装置に対する操作動作を検出し、検出した操作動作の内容と、予め設定されている操作動作の内容と制御対象装置を操作する内容との対応関係とに基づいて、対応する制御対象装置への操作の内容を求める。この遠隔操作装置は、例えば、並行配置した二台のカメラによる撮影画像に対してステレオマッチングを行って、カメラ間で対応する点が撮影画像上でどれだけ離れているかを求め、その算出結果から操作者の手までの距離を求める。そしてこの遠隔操作装置は、その距離と、入力装置までの距離との比較により、操作者の手が入力装置に接触したか否かを判定し、その判定結果を利用して操作動作を検出する。
【０００４】
上記のように、カメラから操作者の手までの距離と、カメラから対象物までの距離との比較で操作者が対象物に接触したか否かを判定するためには、予めカメラから対象物までの距離を測定しておくことが求められる。そこで、上記の遠隔操作装置では、ステレオマッチングによりカメラから対象物までの距離が求められる。また、複数のコード化された各光パターンで被計測物体をそれぞれ照射し、その照射された被計測物体を異なる位置で撮像して得た画像を解析することで、被計測物体の位置を求める方法が知られている（例えば、特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１７２２１１号公報
【特許文献２】特開昭６０−１５２９０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献２に開示された方法では、対象物までの距離を測定するために、その対象物を、コード化された光で走査することが行われる。そのため、そのような走査を実行することを、ユーザが入力装置に対して指示しない場合には、対象物までの距離が求められず、ユーザの手がその対象物に接触したか否かを判定できないことがある。また、そのような走査にはある程度の時間が掛かるため、例えば、対象物が本であり、ユーザがその本のページをめくりながら何かの操作を行う場合のように、カメラから対象物までの距離が頻繁に変わると、その走査をユーザが指示することは煩雑である。また、対象物の表面が光を反射し易い物質で形成されていたり、あるいは、光の吸収率が高い物体で形成されていると、対象物に投影されたコード化された光を読み取ることが困難となり、正確に対象物までの距離を測定できないおそれがある。
【０００７】
一方、ステレオマッチングを利用する場合、対象物の表面に、その対象物を撮影して得られる画像上で検出が容易な特徴が無い場合、例えば、対象物の表面が無模様である場合、カメラから対象物までの距離を正確に測定することは困難である。特に、対象物と対象物が載置されるテーブルが同じ色でかつともに無模様である場合、画像上で対象物を識別することが非常に困難となる。そのため、カメラから対象物までの距離を正確に測定することは困難となる。
【０００８】
そこで本明細書は、ユーザが入力操作を行う際に接触する対象物までの距離が不明な場合でも、入力操作を検出可能な入力装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一実施形態によれば、入力装置が提供される。この入力装置は、所定の撮影周期ごとに、指を撮影してその指が表された第１の画像を生成する第１の撮像部と、第１の撮像部と所定間隔離して配置され、かつ、所定の撮影周期ごとに、指を撮影してその指が表された第２の画像を生成する第２の撮像部と、投影装置と、所定の撮影周期ごとに、第１の画像において指の先端に相当する指先位置を検出する指領域検出部と、所定の撮影周期ごとに、指先位置に対応する第２の画像上の対応点を求め、第１の画像上の指先位置と第２の画像上の対応点とに基づいて、指の先端の実空間での位置を算出する指先位置算出部と、所定期間中に算出された指の先端の実空間での位置のそれぞれに基づいて、指の動作を表す特徴量を算出し、その特徴量が指で対象物に触れる動作を表す条件を満たすか否かを判定する接触動作判定部と、特徴量がその条件を満たす場合、投影装置に所定の位置へ所定のマークを投影させ、投影後の一定期間内の何れかの時点で指の先端の実空間での位置がマークの投影位置に応じた高さ方向を含む所定範囲内に含まれる場合に入力操作が行われたと判定する確認動作判定部とを有する。
【００１０】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【００１１】
本明細書に開示された入力装置は、ユーザが入力操作を行う際に接触する対象物までの距離が不明な場合でも、入力操作を検出できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態による入力装置の一構成例を示す概略斜視図である。
【図２】図１に示された入力装置のハードウェア構成図である。
【図３】高さマップの一例を示す図である。
【図４】第１の実施形態による制御部の機能ブロック図である。
【図５】カメラ座標系と世界座標系の位置関係の一例を示す図である。
【図６】（ａ）及び（ｂ）は、それぞれ、ユーザが指先を対象物に触れる動作を行っている場合における、テーブルからの指の高さの時間変化の測定結果の一例を示す図である。
【図７】（ａ）及び（ｂ）は、それぞれ、ユーザが指先を空中で静止させる動作を行っている場合における、テーブルからの指の高さの時間変化の測定結果の一例を示す図である。
【図８】入力処理の動作フローチャートである。
【図９】第２の実施形態による制御部の機能ブロック図である。
【図１０】（ａ）及び（ｂ）は、それぞれ、操作確認用のボタンの一例を示す図である。
【図１１】（ａ）は、指先位置が対象物の表面に位置している場合における、対象物とボタンの関係の一例を示す図である。（ｂ）は、指先位置が空中に位置している場合における、対象物とボタンの関係の一例を示す図である。
【図１２】第２の実施形態による入力処理の動作フローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照しつつ、入力装置について説明する。この入力装置は、二つのカメラのそれぞれでユーザの指を撮影して得られる二つの画像から、指先の実空間での位置を求め、その位置におけるカメラから指先までの距離とカメラから対象物までの距離の比較結果により、指先が対象物に接触したか否かを判定する。その際、この入力装置は、距離の比較結果からは、指先が対象物に接触したことを検知できない場合に、直近の一定期間内の指の動作を表す特徴量を求めることで、指の動作が対象物に接触しようとする接触動作か否かを判定する。そしてこの入力装置は、ユーザの指の動作が接触動作であると判定した場合、ユーザの指が対象物に接触したとみなして、その指の位置に応じた入力操作に対応する処理を実行する。
【００１４】
図１は、第１の実施形態による入力装置の概略斜視図である。図２は、図１に示された入力装置のハードウェア構成図である。入力装置１は、投影装置２と、ミラー３と、二つのカメラ４−１、４−２と、通信部５と、記憶部６と、制御部７とを有する。入力装置１が有するこれらの各部は、側面から見て縦方向にコの字型をした筐体１０に収容される。なお、以下では説明の都合上、ユーザに面する側を正面と呼ぶ。
【００１５】
投影装置２は、例えば、液晶プロジェクタであり、筐体１０の正面側に、表示面を上方へ向けて配置される。投影装置２は、制御部７から受け取った映像信号に従って映像をその表示面に表示することで、映像を投影する。投影装置２から投影された映像は、正面側へ突出した筐体１０の天頂部１０ａの下側に設けられたミラー３により反射されて、例えば、ユーザの指先が接触したか否かの判定対象となる対象物８が載置される基準面となる、テーブル面などに投影される。なお、対象物８は、例えば、本、雑誌、ペーパーなどとすることができるが、そのような物体に限定されない。また、対象物８は、入力装置１が載置されるテーブルそのものであってもよい。
【００１６】
二つのカメラ４−１、４−２は、それぞれ、撮像部の一例であり、天頂部１０ａに、ミラー３を挟んで所定間隔だけ離して下方に向けて配置される。なお、テーブル面からカメラ４−１、４−２までの高さは、対象物８がカメラ４−１とカメラ４−２の両方の撮影範囲に含まれ、かつ、対象物８の近傍に位置する指先を画像上で識別できるように、例えば、600mmに設定される。そしてカメラ４−１、４−２は、それぞれ、所定の撮影周期（例えば、10msec〜50msec）でその撮影範囲が写った画像を生成する。本実施形態では、カメラ４−１、４−２により生成される画像は、RGB表色系により表されるカラー画像である。また、本実施形態では、カメラ４−１とカメラ４−２間の視差方向は、各カメラにより生成された画像において水平方向となる。カメラ４−１、４−２は、画像を生成する度に、その画像を制御部７へ出力する。
【００１７】
通信部５は、入力装置１を他の機器と接続するためのインタフェース及びその制御回路を有する。そして通信部５は、例えば、他の機器から受け取った映像信号を制御部７へ渡す。あるいは、通信部５は、制御部７から受け取った、ユーザの入力に応じた入力信号を他の機器へ出力する。
【００１８】
記憶部６は、例えば、揮発性又は不揮発性の半導体メモリ回路を有する。そして記憶部６は、投影装置２により投影される映像を表す映像信号及びユーザの操作入力を検出するために利用される各種の情報を記憶する。ユーザの操作入力を検出するために利用される情報には、例えば、カメラ４−１とカメラ４−２間の間隔、カメラ４−１、４−２の焦点距離、指先位置の検出または指の動作の検出に利用する各種のパラメータなどが含まれる。さらに、ユーザの操作入力を検出するために利用される情報には、テーブルと平行な面の位置ごとにおける、テーブルから対象物８の表面までの高さを表す高さマップが含まれてもよい。さらに、記憶部６は、カメラ４−１またはカメラ４−２から得られた画像を記憶してもよい。
【００１９】
図３は、高さマップの一例を示す図である。高さマップ３００は、テーブルの表面に平行な面における、世界座標系の水平方向の座標X及び垂直方向の座標Yごとに、テーブルから対象物８の表面までの高さZを格納する。例えば、高さマップ３００は、座標(0,0)の位置における高さが0mmであり、座標(249,159)の位置における高さが23mmであることを示している。
【００２０】
制御部７は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部７は、投影装置２、カメラ４−１、４−２、通信部５及び記憶部６と信号線を介して接続されており、入力装置１全体を制御する。
また制御部７は、カメラ４−１及びカメラ４−２のそれぞれから受け取った画像上での指先の位置を求めることで、ユーザの指先の実空間での位置（すなわち、三次元位置）を特定する。そして制御部７は、指先の実空間での位置に基づいて、ユーザによる入力操作が行われたか否かを判定し、入力操作が行われたと判定した場合、指先の位置に応じた処理を実行する。
【００２１】
以下、制御部７により実行される、入力処理に関する構成要素の詳細について説明する。
図４は、制御部７の機能ブロック図である。制御部７は、指領域検出部１１と、指先位置算出部１２と、接触判定部１３と、接触動作判定部１４と、更新部１５と、入力処理部１６とを有する。
制御部７が有するこれらの各部は、例えば、制御部７が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールとして実装されてもよい。なお、これらの各部は、それぞれ、別個の回路として、制御部７とは別個に入力装置１に実装されてもよく、あるいはこれらの各部の機能を実現する一つの集積回路として、制御部７とは別個に入力装置１に実装されてもよい。
【００２２】
指領域検出部１１は、カメラ４−１及びカメラ４−２のそれぞれから制御部７が画像を取得する度に、何れか一方のカメラから取得した画像上で指が写っている領域である指領域を検出する。以下の説明では、指領域検出部１１は、カメラ４−１から得られた画像上の指領域を検出するものとする。
【００２３】
本実施形態では、指領域検出部１１は、画像上で肌色に相当する色を持つ領域を、指領域として抽出する。そのために、指領域検出部１１は、画像の各画素の値を、次式に従って、RGB表色系で表される値からHSV表色系で表される値に変換する。
【数１】
2019204539.tif 000003
ここで、R、G、Bは、それぞれ、変換前の画素の赤色成分、緑色成分、青色成分を表す。またMAX、MINは、それぞれ、変換前の画素の赤色成分、緑色成分、青色成分のうちの最大値及び最小値を表す。そしてH、V、Ｓは、それぞれ、変換後の画素の色相、明度、彩度を表す。ただし、Hの値に関しては、（１）式により得られた値が負の場合、その値に360を加えた値が色相の値となる。
この例では、明度V及び彩度Sは、それぞれ、0〜255の範囲内の値を取る。また、色相Hは、0〜359の値を取る。
【００２４】
指領域検出部１１は、各画素の値がHSV表色系で表された画像から、次式の条件を満たす画素を肌色を持つ画素として抽出する。
【数２】
2019204539.tif 000004
【００２５】
指領域検出部１１は、抽出された肌色を持つ画素（以下、便宜上、肌色画素と呼ぶ）に対してラベリング処理を実行することにより、肌色画素同士が連結された領域を指領域とする。さらに、指領域検出部１１は、肌色画素同士が連結された領域に対してモルフォロジーの膨張収縮演算を行って得られた領域を指領域としてもよい。また、肌色画素同士が連結された領域が複数存在する場合、指領域検出部１１は、それら複数の領域のうち、輪郭線の長さが最大となる領域を指領域としてもよい。なお、指領域検出部１１は、画像から指領域を検出する様々な方法の何れか、例えば、特開２００３−３４６１６２号公報に開示されている方法にしたがって指領域を検出してもよい。
【００２６】
指領域が検出されると、指領域検出部１１は、指領域の先端を、その画像上での指先の位置として検出する。例えば、画像上では指の根元が上側に位置し、指先が下側に位置することが想定される場合、指領域検出部１１は、指領域の輪郭上に位置する画素のうち、垂直方向の座標が最も下方となる画素の位置を指先位置とする。あるいは、指領域検出部１１は、画像上での指先位置を検出する様々な方法の何れかにしたがって画像上の指先位置を検出してもよい。
【００２７】
指領域検出部１１は、画像上での指領域及び指先位置を指先位置算出部１２へ通知する。
【００２８】
指先位置算出部１２は、指領域検出部１１から指領域及び指先位置が通知される度に、画像上の指先位置と、他方の画像上の対応点とから、実空間での指先位置を算出する。なお、本実施形態では、カメラ４−２による得られた画像のうち、指先位置が検出された画像の撮影時刻と最も近い撮影時刻の画像を他方の画像とする。
【００２９】
そのために、指先位置算出部１２は、指領域及び指先位置が検出されたカメラ４−１による画像に対して、カメラ４−２による他方の画像とのマッチングに利用するテンプレートを設定する。テンプレートは、例えば、指先位置を含む、指領域の先端側の一部分が含まれるように設定されることが好ましい。
なお、指先位置算出部１２は、テンプレート内の指領域以外の画素の値によるテンプレートマッチングへの影響を低下させるために、テンプレート内の指領域以外の各画素の値を所定値（例えば、0）に書き換えてもよい。
【００３０】
指先位置算出部１２は、テンプレートと他方の画像との間でテンプレートマッチングを実行する。その際、指先位置算出部１２は、例えば、他方の画像に対するテンプレートの相対的な位置を水平方向（すなわち、カメラ４−１とカメラ４−２間の視差方向）にずらしながら、テンプレートと他方の画像間の正規化相互相関値を算出する。なお、指先位置算出部１２は、他方の画像に対するテンプレートの相対的な位置を、垂直方向にもずらしてもよい。そして指先位置算出部１２は、正規化相互相関値が最大となったときの他方の画像上でのテンプレートの位置を求める。指先位置算出部１２は、テンプレートを正規化相互相関値が最大となったときの他方の画像上の位置に位置合わせしたときのテンプレート内の指先位置に対応する、他方の画像上の点を、指先位置の対応点とする。
【００３１】
本実施形態では、各カメラの設置位置、画角及び解像度が分かっているので、指先位置算出部１２は、三角測量に基づいて、一方の画像上での指先位置と、他方の画像上での対応点の位置とから、指先の実空間での位置を求めることができる。例えば、指先位置算出部１２は、次式に従って、カメラ４−１の撮像光学系の前側主点を原点とするカメラ座標系における、指先の位置の三次元座標(XC,YC,ZC)を算出する。ただし、カメラ座標系では、カメラ４−１の撮像光学系の前側主点からカメラ４−２の撮像光学系の前側主点へ向かう方向をX軸方向とし、カメラ４−１の撮像光学系の光軸に平行な方向をZ軸方向とする。そしてX軸方向及びZ軸方向と直交する方向をY軸方向とする。
【数３】
2019204539.tif 000005
ここで、(xc1,yc1)は、カメラ４−１による画像上の指先位置の座標であり、(xc2,yc2)は、カメラ４−２による画像上の対応点の座標である。Dは、カメラ４−１の撮像光学系の前側主点とカメラ４−２の撮像光学系の前側主点間の距離、すなわち基線長(mm)である。Wは、各画像の水平方向の画素数である。Hは、各画像の垂直方向の画素数である。θは、カメラ４−１、４−２の対角方向の視野角である。
【００３２】
指先位置算出部１２は、テーブルに載置された対象物８に指先が接触しているか否かの判定を容易にするため、指先位置の実空間の座標を、カメラ座標系から、テーブル上の任意の点を原点とする世界座標系の座標に変換することが好ましい。
【００３３】
図５は、カメラ座標系と世界座標系の位置関係の一例を示す図である。カメラ座標系５００では、上述したように、カメラ４−１の撮像光学系の前側主点が原点に設定される。そしてカメラ４−１の撮像光学系の前側主点からカメラ４−２の撮像光学系の前側主点へ向かう方向がX軸方向となり、カメラ４−１の撮像光学系の光軸に平行な方向がZ軸方向となり、X軸方向及びZ軸方向と直交する方向がY軸方向となる。
【００３４】
一方、世界座標系５０１では、対象物８が載置されるテーブル５０２上に原点が設定される。この例では、投影装置２からの映像が投影される領域のコーナーのうちの一つが原点とされる。そして、テーブル５０２の表面と平行な面において、カメラ４−１の撮像光学系の前側主点とカメラ４−２の撮像光学系の前側主点とを結ぶ線と平行となるように世界座標系５０１のX軸方向が設定される。また、テーブル５０２の表面と平行な面において、X軸方向と直交する方向にY軸方向が設定される。そしてテーブル５０２の表面の法線方向が世界座標系５０１のZ軸方向となる。
【００３５】
指先位置算出部１２は、次式に従って、カメラ座標系における指先の位置の座標P=t(XC,YC,ZC)を、世界座標系における座標P'=t(Xf,Yf,Zf)に変換する。
【数４】
2019204539.tif 000006
ここで、Rは、カメラ座標系と世界座標系間の回転量を表す回転行列であり、Tは、カメラ座標系の原点と世界座標系の原点間の平行移動量を表す平行移動ベクトルである。図５に示されるように、カメラ座標系と世界座標系とが配置される場合、カメラ座標系のX軸を回転軸として、カメラ座標系と世界座標系とは、角度θ回転した関係になっているため、回転行列Rは次式で表される。
【数５】
2019204539.tif 000007
【００３６】
特に、カメラ４−１の撮像光学系の光軸が対象物８が載置されたテーブルの法線と平行となるようにカメラ４−１が設置されている場合、θ=180°となる。
【００３７】
また、カメラ座標系の原点と世界座標系の原点間の各軸における差が、それぞれ、Da、Db、Dcである場合、平行移動ベクトルTは次式で表される。
【数６】
2019204539.tif 000008
なお、回転行列R及び平行移動ベクトルTは、カメラ４−１及びカメラ４−２の設置位置、及び投影装置２の投影範囲に基づいて予め求められ、記憶部６に記憶される。
【００３８】
（４）式〜（６）式より、世界座標系における、指先の位置の座標P'= t(Xf,Yf,Zf)は、次式に従って算出される。
【数７】
2019204539.tif 000009
【００３９】
指先位置算出部１２は、世界座標系における、指先位置の座標P'を、その算出に用いられた画像についての撮影時刻と対応付けて記憶部６に記憶する。例えば、カメラ４−１及びカメラ４−２の撮影周期が１/60秒である場合、直近の2秒間において、最大120組の指先位置の座標P'が記憶部６に記憶される。
【００４０】
接触判定部１３は、ユーザの入力操作を検出するために、ユーザの指先が対象物８に接触したか否かを判定する。そして接触判定部１３は、ユーザの指先が対象物８に接触している場合、その接触位置に応じた入力操作が行われたと判定する。
【００４１】
接触判定部１３は、記憶部６の高さマップから、指先位置P'のうちのX方向及びY方向の座標(Xf,Yf)に対応する、対象物８の高さZtを読み込む。この高さZtも、世界座標系で表される。そして接触判定部１３は、指先位置P'のZ方向の座標であるZfと対象物８の高さZtとが下記の条件を満たす場合、すなわち、ZfとZtとの差が所定の許容範囲内である場合、指先は対象物８と接触したと判定する。一方、下記の条件が満たされない場合には、接触判定部１３は、指先は対象物８と接触していないと判定する。
【数８】
2019204539.tif 000010
ここで、FHは、例えば、指先部分における指の厚みに相当する値であり、例えば、10mmに設定される。また、Mzは、接触判定の際に、人による指の厚みの違い、あるいは、対象物８への指の触り方による指の高さの違いを考慮したマージンであり、例えば、5mmに設定される。Mzが大きくなるほど、指先が対象物８に実際には接触していない場合でも、接触したと判定され易くなる。
【００４２】
なお、接触判定部１３は、直近の所定期間に各カメラにより得られた画像から検出された指先位置P'に基づいて、指先が対象物８に接触したか否かを判定してもよい。例えば、接触判定部１３は、直近の所定期間（例えば、5フレーム分）の指先位置P'の平均値(Xfave, Yfave, Zfave)を算出してもよい。そして接触判定部１３は、その平均値における、Z座標の値Zfaveが(Zt+FH+Mz)以下である場合、指先が対象物８に接触したと判定してもよい。
【００４３】
接触判定部１３は、指先が対象物８に接触したと判定した場合、指先位置P'を入力処理部１６へ通知する。一方、接触判定部１３は、指先が対象物８に接触していないと判定した場合、その旨を接触動作判定部１４へ通知する。
【００４４】
接触動作判定部１４は、接触判定部１３が指先が対象物８に接触していないと判定した場合、直近の所定期間中に求められた指先位置のそれぞれに基づいて、指の動作を表す特徴量を算出する。そして接触動作判定部１４は、その特徴量が、指先を対象物８に触れようとする接触動作に相当する条件を満たすか否か判定する。その特徴量がその条件を満たす場合、接触動作判定部１４は、ユーザの指先は対象物８に接触したと判定する。
【００４５】
ここで、一般に、ユーザが対象物８に指先を接触させているにもかかわらず、入力装置１が何の反応も示さない場合にユーザが取り得る接触動作として、以下の２通りの動作が想定される。
（１）対象物に指を接触させたまま、指を動かさずに静止させる
（２）対象物の同一場所を指先で触れる動作を繰り返す。すなわち、対象物の同一場所を下端として、指を上下に繰り返し移動させる
【００４６】
図６（ａ）は、ユーザが上記の（１）の動作を行っている場合における、テーブルからの指の高さの時間変化の測定結果の一例を示す図である。また図６（ｂ）は、ユーザが上記の（２）の動作を行っている場合における、テーブルからの指の高さの時間変化の測定結果の一例を示す図である。図６（ａ）及び図６（ｂ）において、横軸は時間を表し、縦軸はテーブルからの高さを表す。そしてグラフ６００は、ユーザが上記の（１）の動作を行っている場合における、時間経過と指先の高さの関係を表す。また、グラフ６０１は、ユーザが上記の（２）の動作を行っている場合における、時間経過と指先の高さの関係を表す。
【００４７】
ユーザが上記（１）及び（２）の何れかの動作を行ったとする。この場合、グラフ６００及びグラフ６０１に示されるように、その動作中における指先位置の下端、すなわち、その動作中における、指先とテーブル間の距離の極小値（言い換えれば、カメラ４−１から指先までの距離の極大値）は、ほぼ一定となる。これは、ユーザの指が、その下端位置において対象物８と接触し、それ以上、テーブルへ近づける方向へ指を動かせないためである。
【００４８】
これに対して、図７（ａ）は、ユーザが指を下方へ移動させ、何かの物体に指が触れるよりも前に指を静止させた場合における、テーブルからの指の高さの時間変化の測定結果の一例を示す図である。図７（ａ）において、横軸は時間を表し、縦軸はテーブルからの高さを表す。そしてグラフ７００は、ユーザが上記の動作を行っている場合における、時間経過と指先の高さの関係を表す。また図７（ｂ）は、ユーザが指を下方へ移動させ、何かの物体に指が触れるよりも前に指を静止させる動作を繰り返した場合における、テーブルからの指の高さの時間変化の測定結果の一例を示す図である。図７（ｂ）において、横軸は時間を表し、縦軸はテーブルからの高さを表す。そしてグラフ７０１は、ユーザがその動作を繰り返した場合における、時間経過と指先の高さの関係を表す。
【００４９】
ユーザが指を空中で静止させる場合、グラフ７００及びグラフ７０１に示されるように、その動作中における、指先の位置の下端はばらつく。これは、その下端の位置で指が接触する物体が無いため、ユーザが同じ位置で指を静止させることが困難なためである。
【００５０】
そこで、接触動作判定部１４は、直近の所定期間（例えば、2秒間）中に求められた、実空間での指先位置のそれぞれから、上記の（１）または（２）の動作を行っているか否かを判定するために利用される、指の動作を表す特徴量を算出する。
【００５１】
例えば、接触動作判定部１４は、上記の（１）の動作を行っているか否かを判定するための特徴量として、所定期間における、実空間での指先位置のバラツキ度合いを表す指標を算出する。そのような指標として、例えば、接触動作判定部１４は、世界座標系の各軸ごとの指先位置(Xf,Yf,Zf)の最大値と最小値の差XD=|Xfmax-Xfmin|、YD=|Yfmax-Yfmin|、ZD=|Zfmax-Zfmin|を算出する。なお、Xfmax、Yfmax、Zfmaxは、異なるタイミングで得られた指先位置の座標値であってもよい。同様に、Xfmin、Yfmin、Zfminも、異なるタイミングで得られた指先位置の座標値であってもよい。
【００５２】
この場合、接触動作判定部１４は、特徴量(XD,YD,ZD)が下記の条件を満たす場合、ユーザは上記の（１）の動作を行ったと判定する。
【数９】
2019204539.tif 000011
ここで、Mxdiff、Mydiff、Mzdiffは、指先の位置が静止しているとみなせる指先位置の移動量の最大値であり、例えば、Mxdiff=Mydiff=Mzdiff=2mmに設定される。
【００５３】
また、接触動作判定部１４は、上記の（２）の動作を行っているか否かを判定するための特徴量として、所定期間中に求められた指先位置の高さZfのうち、その最小値Zfminとの差ZDがMzdiff以下となった回数NumZminを算出する。なお、指先位置の高さの最小値Zfminは、カメラ４−１から指先位置までの距離の最大値に対応する。この場合、接触動作判定部１４は、NumZminが所定回数ThNum以上となる条件を満たす場合に、ユーザは上記の（２）の動作を行ったと判定する。なお、所定回数ThNumは、例えば、所定期間中の指先位置の測定回数に0.5〜0.7を乗じた値に設定される。例えば、上記のように、所定期間が2秒間で、カメラ４−１及びカメラ４−２の撮影周期が60フレーム/秒である場合、所定期間中に指先位置が120回測定される。この場合、所定回数ThNumは、例えば、80回に設定される。さらに、接触動作判定部１４は、NumZminが所定回数ThNum以上となることに加えて、所定期間中にZD=(Zf-Zfmin)がMzdiffよりも大きくなった回数が所定回数ThNum2以上となったことを、ユーザが上記の（２）の動作を行ったと判定する条件としてもよい。この場合ThNum2は、例えば、(ThNum+ThNum2)が所定期間中の指先位置の測定回数以下となり、かつ、その測定回数に0.2〜0.4を乗じた値に設定される。
【００５４】
なお、接触動作が行われたか否かの判定に用いる特徴量は、上記の例に限られない。例えば、接触動作判定部１４は、上記の（１）の動作判定に用いられる、指先位置のバラツキ度合いの他の指標、例えば、所定期間中での、世界座標系の各軸ごとの指先位置の標準偏差または分散を、特徴量として算出してもよい。そして接触動作判定部１４は、軸ごとの指先位置の標準偏差または分散が、何れも所定の閾値以下となる場合に、上記の（１）の動作を行っていると判定してもよい。さらにまた、接触動作判定部１４は、指先位置のバラツキ度合いの指標を特徴量とする場合、高さ方向についてのみ、座標の最大値と最小値の差、標準偏差または分散を求めてもよい。
【００５５】
また、ユーザが上記の（２）の動作を行う場合、指先で繰り返し対象物８の同じ位置に触れると想定される。そのため、（２）の動作の実行中において、指先位置が下端に達する度に、テーブルの表面と平行な面（すなわち、水平面）における指先位置はほぼ同一となると想定される。そこで、接触動作判定部１４は、上記の（２）の動作判定用の特徴量として、所定期間における、指先位置の高さが極小値となるときの指先位置のバラツキ度合いの指標を特徴量として算出してもよい。その指標は、例えば、指先位置の高さが極小値となるときの指先位置のテーブル面に平行な面の座標(Xf,Yf)の各軸の最大値と最小値の差の絶対値(XD,YD)、分散または標準偏差とすることができる。そして接触動作判定部１４は、軸ごとの特徴量が何れも所定の閾値以下となる場合に上記の（２）の動作を行っていると判定してもよい。
【００５６】
なお、接触動作判定部１４は、上記の（１）の動作及び（２）の動作のうちの何れか一方についてのみ、対応する特徴量を算出し、その特徴量が接触動作に対応する条件を満たすか否かを判定してもよい。
【００５７】
接触動作判定部１４は、所定期間においてユーザが対象物８への接触動作を行ったと判定した場合、その所定期間中において指先位置の高さが最小となるときの指先位置をP'として、更新部１５及び入力処理部１６へ通知する。
【００５８】
更新部１５は、登録部の一例であり、接触動作判定部１４により、ユーザが接触動作を行ったと判定された場合、高さマップを更新する。これは、少なくとも、ユーザが接触動作を行ったと判定された場合における、指先位置P'では、高さマップに登録されている対象物８の高さが不正確であるためである。
【００５９】
例えば、更新部１５は、通知された指先位置P'(Xf,Yf,Zf)のうち、テーブルの表面に平行な面上の座標であるX方向及びY方向の座標(Xf,Yf)に対応する、地図マップに登録された対象物８の高さZtを次式で更新する。
【数１０】
2019204539.tif 000012
なお、Ztnewは、更新後の対象物８の高さである。またFHは、（８）式におけるFHと同様に、指の厚さの想定値である。
【００６０】
なお、更新部１５は、座標(Xf,Yf)だけでなく、高さマップに登録されている全ての位置について、対象物８の高さをZtnewに更新してもよい。あるいは、更新部１５は、対象物８が載置される可能性がある範囲が予め分かっている場合、その範囲に含まれる各位置について、対象物８の高さをZtnewに更新してもよい。
【００６１】
また、通知された指先位置P'における指先の高さZfが、その位置(Xf,Yf)における、高さマップに登録された対象物８の高さZtよりも低い場合、すなわち、次式が満たされる場合、一旦高さマップに登録された対象物が除去された可能性が高い。
【数１１】
2019204539.tif 000013
そこでこの場合、更新部１５は、その位置(Xf,Yf)における、対象物８の高さZtnewをテーブル面と同じ高さ、すなわち0に更新してもよい。あるいは、更新部１５は、（１１）式が満たされる場合、高さマップに登録されている、全ての位置、あるいは、対象物８が載置される可能性がある範囲に含まれる各位置について、対象物８の高さZtnewを0としてもよい。
【００６２】
なお、（１１）式が満たされる場合には、更新部１５は、接触動作判定部１４による、指先は対象物８に接触したとの判定結果を取り消すことを入力処理部１６に通知してもよい。
【００６３】
入力処理部１６は、ユーザの指先が対象物８と接触した位置P'に応じた入力処理を、例えば、制御部７で動作中のアプリケーションプログラムに応じて実行する。例えば、入力処理部１６は、投影装置２に、その位置P'を中心とする所定の色かつ所定のサイズの円を含む映像を投影させる。
【００６４】
この場合、入力処理部１６は、世界座標系での位置P'に相当する投影装置２の表示画面上の位置を特定する。そのために、入力処理部１６は、世界座標系での位置P'の座標を、投影装置２の表示画面の中心を原点とする座標系(以下、便宜上、プロジェクタ座標系と呼ぶ)での座標P''=t(Xp, Yp, Zp)に変換する。世界座標系からプロジェクタ座標系への座標の変換は、（４）式と同様の式により計算される。その際、回転行列Rは、世界座標系からプロジェクタ座標系への回転量を表し、平行移動ベクトルTは、世界座標系の原点からプロジェクタ座標系の原点への移動量を表す。そして入力処理部１６は、プロジェクタ座標系での位置P''の座標を、対応する投影装置２の表示画面上の二次元座標(xp, yp)に変換する。例えば、入力処理部１６は、投影装置２の表示画面上の二次元座標(xp, yp)を、次式に従って算出する。
【数１２】
2019204539.tif 000014
ここで、fpは、投影装置２の投影光学系の焦点距離である。pimageWは、投影装置２の水平方向の表示画素数である。pimageHは、投影装置２の垂直方向の表示画素数である。なお、投影装置２に、位置P'を中心とする所定の半径を持つ円を投影させるために、入力処理部１６は、対象物８が載置されるテーブル上でのその円に接する正方形の四隅の点の世界座標系での座標を求める。そして入力処理部１６は、その各点の座標を、投影装置２の表示画面上の二次元座標に変換する。そして入力処理部１６は、その各点を４隅とする正方形に内接する円を投影装置２の表示画面に描画させればよい。
【００６５】
入力処理部１６は、上記の処理に限られず、指先が対象物８に接触した位置P'に応じた様々な入力処理を実行できる。例えば、入力処理部１６は、位置P'に応じたアプリケーションを起動したり、位置P'に応じて投影装置２が投影する映像を変化させてもよい。また入力処理部１６は、位置P'の時間的な変化に応じた入力処理を実行してもよい。例えば、入力処理部１６は、位置P'の移動方向に沿って、投影装置２が投影する映像をスクロールさせたり、拡大あるいは縮小させてもよい。
【００６６】
図８は、制御部７により実行される入力操作検出処理の動作フローチャートである。
【００６７】
指領域検出部１１は、カメラ４−１から得られた画像上で指が写っている指領域を検出する（ステップＳ１０１）。そして指領域検出部１１は、指領域の先端を画像上での指先位置として検出する（ステップＳ１０２）。
【００６８】
指先位置算出部１２は、カメラ４−１から得られた画像上での指先位置に対する、カメラ４−２から得られた画像上の対応点を特定する（ステップＳ１０３）。そして指先位置算出部１２は、画像上での指先位置とその対応点とに基づいて、実空間での指先位置P'(Xf,Yf,Zf)を算出する（ステップＳ１０４）。
【００６９】
接触判定部１３は、実空間での指先位置P'における、テーブルから指先までの高さZfが（８）式の接触判定条件を満たすか否か判定する（ステップＳ１０５）。高さZfが（８）式の接触判定条件を満たさない場合（ステップＳ１０５−Ｎｏ）、接触動作判定部１４は、直近の所定期間中に求められた実空間での指先位置のそれぞれから、指の動作を表す特徴量を算出する（ステップＳ１０６）。そして接触動作判定部１４は、その特徴量が接触動作の実行に相当する条件を満たすか否か判定する（ステップＳ１０７）。
【００７０】
その特徴量が接触動作の実行に相当する条件を満たさない場合（ステップＳ１０７−Ｎｏ）、接触動作判定部１４は、ユーザは接触動作を行っていないと判定する。そして制御部７は、入力処理を終了する。
【００７１】
一方、その特徴量が接触動作の実行に相当する条件を満たす場合（ステップＳ１０７−Ｙｅｓ）、接触動作判定部１４は、ユーザは接触動作を行ったと判定する。そして更新部１５は、所定期間中の指先の高さの最小値に対応する指先位置を改めてP'とし、そのP'に基づいて高さマップを更新する（ステップＳ１０８）。
【００７２】
ステップＳ１０８の後、あるいは、ステップＳ１０５にて、高さZfが（８）式の接触判定条件を満たす場合（ステップＳ１０５−Ｙｅｓ）、入力処理部１６は、その指先位置P'に応じた処理を実行する（ステップＳ１０９）。そして制御部７は、入力処理を終了する。
【００７３】
以上に説明してきたように、この入力装置は、二つのカメラからの画像によって求めた指先のテーブルからの高さによって、指先が対象物に接触したことを検知できない場合、所定期間中のその指先の位置から、指の動作を表す特徴量を算出する。そしてこの入力装置は、その特徴量が接触動作に相当する条件を満たした場合、指先が対象物に接触したと判定する。そのため、この入力装置は、テーブルからの対象物の高さが不明であったり、あるいは、不正確である場合にも、ユーザが指先で対象物に触れるという入力操作を検出できる。
【００７４】
他の実施形態によれば、指の動作を表す特徴量が接触動作に相当する条件を満たした場合、制御部は、確認用に投影装置を介してボタンを表示させてもよい。そして制御部は、ユーザがそのボタンに触れる動作を行った場合に、ユーザが入力操作を行ったと判定してもよい。
【００７５】
図９は、第２の実施形態による制御部の機能ブロック図である。第２の実施形態による制御部７１は、指領域検出部１１と、指先位置算出部１２と、接触判定部１３と、接触動作判定部１４と、更新部１５と、入力処理部１６と、確認動作判定部１７とを有する。
第２の実施形態による制御部７１は、第１の実施形態による制御部７と比較して、確認動作判定部１７を有する点で異なる。そこで以下では、確認動作判定部１７及びその関連部分について説明する。入力装置１のその他の構成要素については上記の実施形態の対応する構成要素の説明を参照されたい。
【００７６】
接触動作判定部１４は、ユーザが接触動作を行ったと判定すると、ユーザの指先位置P'を、確認動作判定部１７へ通知する。
【００７７】
確認動作判定部１７は、接触動作判定部１４によりユーザが接触動作を行ったと判定された場合に、投影装置２により、操作確認用のマークの一例であるボタンをテーブル面へ向けて投影させる。
【００７８】
図１０（ａ）及び図１０（ｂ）は、それぞれ、操作確認用のボタンの一例を示す図である。図１０（ａ）に示されたボタン１０００は、指先位置P'(Xf,Yf,Zf)よりも右側に投影される。この場合、例えば、ボタン１０００の中心の位置BC(Xb,Yb,Zb)は、Xb=Xf+30mm、Yb=Yf、Zb=Zf-FHに設定され、ボタン１０００の半径Rcbは、例えば、15mmに設定される。
また、図１０（ｂ）に示されたボタン１００１は、指先位置P'(Xf,Yf,Zf)と重なるように投影される。この場合、例えば、ボタン１００１の中心の位置BC(Xb,Yb,Zb)は、Xb=Xf、Yb=Yf、Zb=Zf-FHに設定され、ボタン１０００の半径Rcbは、例えば、15mmに設定される。
【００７９】
なお、確認動作判定部１７は、投影面での操作確認用のボタンの位置及び範囲に対応する、投影装置２の表示画面上の位置及び範囲を、上記の実施形態における、入力処理部１６が円を投影するときと同様に決定すればよい。
【００８０】
また、操作確認用のボタンの形状及びサイズは、上記の例に限られない。例えば、ボタンは三角形、四角形または六角形でもよい。また、ボタンのサイズは、上記の例によるボタンのサイズよりも小さくてもよい。
【００８１】
図１１（ａ）は、接触動作判定部１４により求められた指先位置P'が対象物８の表面に位置している場合における、対象物８とボタンの関係の一例を示す図である。一方、図１１（ｂ）は、接触動作判定部１４により求められた指先位置P'が空中に位置している場合における、対象物８とボタンの関係の一例を示す図である。
【００８２】
図１１（ａ）に示されるように、指先が対象物８に触れている場合、すなわち、指先位置P'が対象物８の表面に位置している場合には、ボタン１１００は、対象物８の表面に投影される。そのため、ボタン１１００は意図した高さの位置に表示され、かつ、意図したサイズ（上記の例では、直径略30mm）となる。一方、図１１（ｂ）に示されるように、指先位置P'には、実際には対象物は存在せず、接触動作が誤検出されている場合には、ボタン１１０１は、意図した高さの位置よりも低い位置、例えばテーブル上に表示される。そのため、ボタン１１０１は意図したサイズよりも大きく（上記の例では、直径略37mm）となる。さらに、ボタンの投影方向が鉛直下方に対して斜め向きとなる場合には、その投影方向に応じてボタンの位置もずれる。
【００８３】
なお、確認動作判定部１７は、ボタンの投影位置を、指先位置P'とは無関係に設定してもよい。例えば、確認動作判定部１７は、ボタンを、投影装置２による投影範囲の中央、あるいは、投影範囲の左端または右端に投影してもよい。ただしこの場合には、ユーザがボタンに触れたときの指先位置の情報は、高さマップの更新には利用されない。
【００８４】
確認動作判定部１７は、ボタンが投影された後、一定の待ち時間（例えば、1秒間）を経過した時点から所定期間（例えば、1〜2秒間）内に得られた指先位置Pr(Xf',Yf',Zf')の何れかが、ボタンの投影位置に応じた許容範囲内に含まれるか否かを判定する。そして確認動作判定部１７は、指先位置Prがその許容範囲に含まれると判定した場合、ユーザは、指でボタンに触れる動作、すなわち、確認動作を行ったと判定する。この場合、確認動作判定部１７は、ユーザは、接触動作判定部１４から受け取った指先位置P'にて対象物８に触れる入力操作を行ったと判定する。そして確認動作判定部１７は、その指先位置P'を更新部１５及び入力処理部１６へ渡す。
なお、許容範囲は次式で表される。
【数１３】
2019204539.tif 000015
ここで、Mzは高さ方向の許容範囲であり、例えば、5mmに設定される。（１３）式に示されるように、許容範囲は、意図されたボタンの位置及びサイズに基づいて決定される。そのため、接触動作が誤検出され、その結果としてボタンの投影位置が意図した位置からずれている場合には、ユーザの指が実際に表示されているボタンの位置にあったとしても、（１３）式が満たされる可能性は低くなる。
【００８５】
確認動作判定部１７は、ユーザが確認動作を行ったと判定した場合、投影装置２にボタンの投影を停止させる。すなわち、確認動作判定部１７は、ボタンが表示されないようにする。あるいは、確認動作判定部１７は、ユーザが確認動作を行ったと判定した場合、投影装置２に、ボタンの色を変更させた後、ボタンの投影を停止させてもよい。
【００８６】
一方、確認動作判定部１７は、所定期間を経過してもユーザが確認動作を行ったと判定されない場合も、投影装置２にボタンの投影を停止させる。あるいは、確認動作判定部１７は、所定期間を経過してもユーザが確認動作を行ったと判定されない場合、投影装置２に、「ボタンに触れて下さい」などのメッセージを表示させたり、ボタンの色を変更させてもよい。そして確認動作判定部１７は、そのメッセージ表示後、あるいは、ボタンの色の変更後、さらに所定期間が経過した時点で投影装置２にボタンの投影を停止させてもよい。
【００８７】
さらに、確認動作判定部１７は、ボタン表示後に、ユーザが一旦指を上げてから、その後に指でボタンに触れる動作（すなわち、タップ動作）を行ったことを検知した場合に、ユーザが確認動作を行ったと判定してもよい。例えば、確認動作判定部１７は、指先位置Prが（１３）式の条件を満たした時点の直前の1〜2秒間の間に求められた指先位置のテーブルからの高さのそれぞれを、指先位置Prでのテーブルからの高さZf'と比較する。そして確認動作判定部１７は、指先位置の何れかが、Zf'よりも所定のオフセット（例えば、5mm〜10mm）以上高い場合に、ユーザが一旦指を上げてから、その後に指でボタンに触れる動作を行ったと判定してもよい。これにより、ユーザが指をボタンに触れることを意図していない場合に、確認動作判定部１７は、ユーザが確認動作を行ったと誤判定することを抑制できる。
【００８８】
図１２は、第２の実施形態による入力処理の動作フローチャートである。第２の実施形態による入力処理は、第１の実施形態による入力処理と比較して、ステップＳ１０６よりも後の処理が異なる。そこで以下では、ステップＳ１０６の後に実行される処理について説明する。
【００８９】
ステップＳ１０６にて、指の動作を表す特徴量が算出されると、接触動作判定部１４は、その特徴量が接触動作の実行に相当する条件を満たすか否か判定する（ステップＳ２０１）。
【００９０】
その特徴量が接触動作の実行に相当する条件を満たさない場合（ステップＳ２０１−Ｎｏ）、接触動作判定部１４は、ユーザは接触動作を行っていないと判定する。そして制御部７１は、入力処理を終了する。
【００９１】
一方、その特徴量が接触動作の実行に相当する条件を満たす場合（ステップＳ２０１−Ｙｅｓ）、確認動作判定部１７は、投影装置２に、テーブル面へ向けてボタンを投影させる（ステップＳ２０２）。そして確認動作判定部１７は、ボタン投影後の一定期間に求められた指先の実空間の位置Prがボタンの投影位置に応じた許容範囲に含まれるか否かを判定する（ステップＳ２０３）。
【００９２】
ボタン投影後の一定期間が経過しても、指先の実空間の位置Prが許容範囲に含まれることがない場合（ステップＳ２０３−Ｎｏ）、確認動作判定部１７は、ユーザは確認動作を行っていないと判定する。そして制御部７１は、入力処理を終了する。
【００９３】
一方、ボタン投影後の一定期間内の何れかの時点で指先の実空間の位置Prが許容範囲に含まれた場合（ステップＳ２０３−Ｙｅｓ）、確認動作判定部１７は、ユーザは確認動作を行ったと判定する。そして更新部１５は、接触動作判定における所定期間中の指先の高さの最小値に対応する指先位置をP'とし、そのP'に基づいて高さマップを更新する（ステップＳ２０４）。そして入力処理部１６は、指先位置P'に応じた処理を実行する（ステップＳ２０５）。そして制御部７１は、入力処理を終了する。
【００９４】
第２の実施形態によれば、入力装置は、接触動作を検出した後に表示させたボタンに指先が触れたことを条件として、入力操作が行われたと判定するので、接触動作を誤検出したとしても、ユーザが意図しない入力操作を誤検出することを抑制できる。
【００９５】
なお、変形例によれば、更新部１５は、接触動作判定部１４の処理と確認動作判定部１７の処理とを、互いに異なる複数個所（好ましくは、３ヵ所以上）で実行することで、複数個所のそれぞれでのテーブルから対象物８の表面までの高さを求めてもよい。そして更新部１５は、その各点を通る平面あるいは曲面を、例えば、最小二乗法を用いて求め、その平面または曲面により、対象物８の表面を近似的に表してもよい。
【００９６】
例えば、更新部１５は、次式で表される平面の式に対して、最小二乗法を適用することで、平面を規定するパラメータa,b,c,dを求めることができる。
【数１４】
2019204539.tif 000016
【００９７】
そして更新部１５は、対象物８の表面を近似的に表す平面または曲面に従って、テーブルと平行な面の位置ごとにおける、テーブルから対象物８の表面までの高さを求めることで高さマップを更新してもよい。
【００９８】
また他の変形例によれば、入力装置は、ユーザが接触動作を行ったと判定した場合、あるいはユーザが接触動作を行い、かつ、確認動作を行ったと判定した場合にのみ、入力操作が行われたと判定してもよい。この場合には、対象物の高さの情報は利用されないので、記憶部は、高さマップを記憶しなくてもよい。また、制御部で行われる処理のうち、接触判定部の処理及び更新部の処理が省略されてもよい。
【００９９】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【０１００】
１    入力装置
２    投影装置
３    ミラー
４−１、４−２    カメラ
５    通信部
６    記憶部
７    制御部
８    対象物
１１    指領域検出部
１２    指先位置算出部
１３    接触判定部
１４    接触動作判定部
１５    更新部
１６    入力処理部
１７    確認動作判定部
【図１】
2019204539.tif 000017
【図２】
2019204539.tif 000018
【図３】
2019204539.tif 000019
【図４】
2019204539.tif 000020
【図５】
2019204539.tif 000021
【図６】
2019204539.tif 000022
【図７】
2019204539.tif 000023
【図８】
2019204539.tif 000024
【図９】
2019204539.tif 000025
【図１０】
2019204539.tif 000026
【図１１】
2019204539.tif 000027
【図１２】
2019204539.tif 000028