(57)【要約】【課題】  より操作者の操作性を向上させたメニュー選択を実現することを課題とする。【解決手段】  コンピュータに、撮像装置から画像を取得し、前記画像における対象物の形状に基づき、該対象物における先端部分を構成する特徴点を検出し、前記特徴点と、該画像から抽出された該対象物の領域の情報とに基づき、該特徴点を支点とする押下操作がなされた面に対する前記対象物の角度を算出し、前記角度に基づき、複数の入力候補のうちの一つの入力候補を選択する処理を実行させる入力プログラム。【選択図】  図１
2014142737.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
撮像装置から画像を取得し、
前記画像における対象物の形状に基づき、該対象物における先端部分を構成する特徴点を検出し、
前記特徴点と、該画像から抽出された該対象物の領域の情報とに基づき、該特徴点を支点とする押下操作がなされた面に対する前記対象物の角度を算出し、
前記角度に基づき、複数の入力候補のうちの一つの入力候補を選択する処理を実行させる入力プログラム。
【請求項２】
前記画像よりも後に撮像された他の画像を取得し、
前記他の画像から特徴点を検出できない場合に、該他の画像から抽出された対象物の領域の情報と、前記画像から検出した前記特徴点とに基づき、該他の画像における前記対象物の角度を算出し、
前記他の角度に基づき、複数の入力候補のうちの一つの入力候補を選択する処理を実行する請求項１記載の入力プログラム。
【請求項３】
前記他の画像における特徴点を検出できない場合は、前記押下操作が継続しているかを判定し、
前記押下操作が継続していない場合に、過去に選択された前記一つの入力候補を、他の装置へ入力する処理を実行する請求項２に記載の入力プログラム。
【請求項４】
前記押下操作が継続しているかの判定は、前記画像から検出した特徴点と、前記他の画像における対象物の領域との位置関係に基づき行われることを特徴とする請求項２または３に記載の入力プログラム。
【請求項５】
撮像装置から画像を取得する取得部と
前記画像における対象物の形状に基づき、該対象物における先端部分を構成する特徴点を検出する検出部と、
前記特徴点と、該画像から抽出された該対象物の領域の情報とに基づき、該特徴点を支点とする押下操作がなされた面に対する前記対象物の角度を算出する演算部と、
前記角度に基づき、複数の入力候補のうちの一つの入力候補を選択する選択部とを有する入力装置。
【請求項６】
コンピュータが、
撮像装置から画像を取得し、
前記画像における対象物の形状に基づき、該対象物における先端部分を構成する特徴点を検出し、
前記特徴点と、該画像から抽出された該対象物の領域の情報とに基づき、該特徴点を支点とする押下操作がなされた面に対する前記対象物の角度を算出し、
前記角度に基づき、複数の入力候補のうちの一つの入力候補を選択する処理を実行することを特徴とする入力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示する技術は、情報処置装置への入力を制御する技術に関する。
【背景技術】
【０００２】
近年、スマートフォンやスレートＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やｉＰａｄ（登録商標）をはじめとしたタブレット型デバイスなど、キーボードやマウスを使用しないデバイスの市場が急拡大している。例えば、タッチパネルディスプレイを用いて指でメニューを選択する電子機器は、ユーザのタッチパネルに対する押下操作に基づき、複数のメニューを表示する。そして、当該電子機器は、タッチパネルに対する他の押下操作がなされたときのタッチ位置に基づき、複数のメニューのうちいずれかを選択する。
【０００３】
また、キーボードやマウスの代わりに入力ペンを利用する入力方式もある。例えば、複数のメニューから一つのメニューを選択可能なデジタイザも存在する（例えば、特許文献１）。デジタイザは、複数のループコイルが配列された座標検出部、および該座標検出部と電磁的に結合して指示位置を入力する入力ペンを備える。
【０００４】
デジタイザは、検出した電圧に基づき、入力ペンの指示位置情報および入力ペンの傾き方向を検出する。なお、ユーザが入力ペンを所定角度だけ傾けることで、主ピーク電圧Ｖａのほかに、傾けられた方向にサイドロープ的な副ピーク電圧Ｖｂが現れることにより、傾き方向が検出される。
【０００５】
デジタイザは、まず傾き方向に基づき、複数のメインメニューより一つのメインメニューを選択する。つぎに、デジタイザは、筆圧により、選択されたメインメニューに関する複数のサブメニューのうち、いずれかを決定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０８−９５７３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
タッチパネルを利用する電子機器は、ユーザはメニューを選択するために、所望のメニューに対応する位置を適格に指示する必要がある。また、先に述べたデジタイザは、特殊なペンや特殊なセンサを装着した指による操作が必要となる。
【０００８】
そこで、本実施例に開示の技術は、先の技術と比較して、より操作者の操作性を向上させたメニュー選択を実現することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決する為に、本実施例に開示の入力プログラムは、コンピュータに、撮像装置から画像を取得し、前記画像における対象物の形状に基づき、該対象物における先端部分を構成する特徴点を検出し、前記特徴点と、該画像から抽出された該対象物の領域の情報とに基づき、該特徴点を支点とする押下操作がなされた面に対する前記対象物の角度を算出し、前記角度に基づき、複数の入力候補のうちの一つの入力候補を選択する処理を実行させる。
【発明の効果】
【００１０】
本発明の一観点によれば、より操作者の操作性を向上させるメニュー選択を実現することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】図１は、情報処理装置の利用形態の一例を示す図である。
【図２】図２は、入力装置の機能ブロック図である。
【図３】図３Ａおよび図３Ｂは、対象物の領域を抽出する処理を説明するための図である。
【図４】図４は、押下操作を検出する処理を説明するための図である。
【図５】図５は、指の角度を算出する処理を説明するための図である。
【図６】図６は、表示用情報に基づき表示される表示イメージの図である。
【図７】図７は、入力処理のフローチャートである。
【図８】図８は、入力処理のフローチャートである。
【図９】図９Ａ乃至図９Ｃは、第一の押下継続判定を説明するための図である。
【図１０】図１０は、第二の押下継続判定を説明するための図である。
【図１１】図１１は入力装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下詳細な本発明の実施例に関して説明する。なお、以下の各実施例は、処理の内容を矛盾させない範囲で適宜組み合わせることが可能である。以下、図面に基づいて各実施例について説明する。
【００１３】
まず、実施例における入力方法について説明する。図１は、情報処理装置１の利用形態の一例を示す図である。なお、情報処理装置１は、本実施例にかかる入力装置を備えるコンピュータである。
【００１４】
情報処理装置１は、コンピュータであり、例えば、スマートフォンや、スレートＰＣ、タブレット型デバイスなどである。情報処理装置１は、キーボードやマウスを有さなくともよい。本実施例においては、情報処理装置１は、後述の入力装置からの入力を受け付けるとともに、入力に応じた処理を実行する。なお、入力装置は、操作領域５に対する手４の指３の角度に応じて、情報処理装置１に対して所定の入力を行う。
【００１５】
ここで、図１では、情報処理装置１にプロジェクター２が接続されている例を示す。プロジェクター２は、操作領域５へ画像を投影する機能を有する。なお、投影される画像は、情報処理装置１が備える入力装置によって指示される。プロジェクター２は、さらにカメラを備える。また、本実施例おいては、プロジェクター２は、カメラ２台を備える。２台のカメラは、所定のフレーム間隔で、各々操作領域５やユーザの手４、さらには指３を撮影する。
【００１６】
プロジェクター２が備えるカメラは、操作領域５を含む撮像範囲を撮影する。そして、情報処理装置１における入力装置は、プロジェクター２から画像を取得する。入力装置は、カメラが撮影した画像から対象物である手４の領域を抽出する。
【００１７】
本実施例においては、メニュー選択を望むユーザは、操作領域５に指３を接地させるとともに、接地点を支点として、指３を傾ける操作を実行する。なお、以下、面（例えば、図１の操作領域５）に指３を接地させるユーザの行為を、押下操作を称する。
【００１８】
一方、入力装置は、画像から抽出した手４の領域に基づき、指３の角度を算出する。そして、入力装置は、指３の角度に応じて、複数の入力候補のうちの一つを選択する。そして、入力装置は、情報処理装置１へ選択した入力内容を入力する。
【００１９】
情報処理装置１は、入力装置からの入力に基づき、対応する処理を実行する。なお、プロジェクター２は、複数のメニューを操作領域５に投影する。さらに、メニューが選択された場合には、プロジェクター２は、選択されたメニューを表示する。
【００２０】
なお、カメラは、図１に示された位置に限らず、他の位置に設置されていても良い。さらに、情報処理装置１が２台のカメラを有してもよい。さらに、情報処理装置１が有するディスプレイに、複数のメニューや選択されたメニューを表示するとしてもよい。
【００２１】
図２は、入力装置１０の機能ブロック図である。先に述べたように、入力装置１０は、情報処理装置１に備えられていても良い。また、入力装置１０は、撮像装置２１と表示装置２２と通信可能である。また、本実施例においては、撮像装置２１は、２つである。
【００２２】
撮像装置２１は、例えば、図１におけるプロジェクター２に備えられたカメラである。また、表示装置２２は、例えば、図１におけるプロジェクター２である。入力装置１０は、取得部１１、検出部１２、演算部１３、推定部１４、選択部１５、表示制御部１６、出力部１７、記憶部１８を有する。取得部１１は、撮像装置２１から画像を取得する。
【００２３】
取得部１１は、撮像装置２１が所定のフレーム間隔で撮影した画像を、順次取得する。なお、２つの撮像装置２１から、各々画像を取得する。ここで、２つの撮像装置２１における撮影タイミングは同期していることが望ましい。
【００２４】
検出部１２は、取得した画像における対象物の形状に基づき、対象物における先端部分を構成する特徴点を検出する。例えば、検出部１２は、画像から対象物の領域を検出する。対象物が手４である場合には、画像における各画素の色情報、および抽出するための色に関する条件に基づき、肌色領域を抽出する。
【００２５】
例えば、検出部１２は、色に関する条件として、以下の式１および式２を利用する。なお、式１は、画像の画素値がＨＳＶ表色系で示されたときの色相（Ｈ）の値に関する条件を示す。式１は、ＨＳＶ表色系で示されたときの彩度（Ｓ）の値に関する条件を示す。
０．１１＜Ｈ＜０．２２    （式１）
０．２＜Ｓ＜０．５    （式２）
検出部１２は、色に関する条件に該当する画素に「１（黒）」を設定し、該当しない画素に「０（白）」を設定することで、二値画像を生成する。二値画像において黒で表現されている領域が、肌色領域であって、つまり対象物である手４の領域である。なお、色情報が、ＨＳＶ表色系以外の表色系で表現されている場合には、検出部１２は、色情報をＨＳＶ表色系へ変換する。
【００２６】
図３Ａおよび図３Ｂは、対象物の領域を抽出する処理を説明するための図である。図３Ａは、取得部１１取得した画像を示す図である。なお、図３Ａは、２つの撮像装置２１から各々取得した画像のうちの一方である。ただし、検出部１２は、各々の画像に対して、同様の処理を実行することで、各々の画像における対象物の領域を抽出する。例えば、図３Ａに示す画像において、手４１、物体６０、物体６１および背景が撮影されているとする。ここで、手４１と、物体６０と、物体６１とは、実際の画像において各々異なる色を有するものとする。
【００２７】
図３Ｂは、図３Ａに対応する二値画像である。二値画像においては、手４１に対応する手領域４２のみが示されている。つまり、図３Ａの画像に対して、検出部１２が手領域を検出する処理を実行することで、図３Ａの画像において色に関する条件に合致する画素からなる領域が、手領域４２として二値画像に表される。
【００２８】
そして、検出部１２は、対象物の領域の形状に基づき、例えば、特徴点として、指の先端部分を構成する画素を検出する。具体的には、図３Ｂにおける手領域４２の形状を利用して、特徴点を検出する。そして、検出部１２は、各々の二値画像における特徴点の座標（ｘ，ｙ）を取得する。
【００２９】
ここで、特徴点の検出においては、指の先端の形状モデルと、抽出した手領域４２の形状とのパターンマッチングが利用される。また、手領域４２の形状を認識するとともに、指領域を抽出し、指領域の傾きを利用する方法が用いられてもよい。例えば、特開２００３−３４６１６２号公報に開示の技術が利用される。
【００３０】
次に、演算部１３は、特徴点と、対象物の領域とに基づき、押下操作がなされた面に対する対象物の角度を算出する。例えば、操作領域５に対する指３の角度を算出する。まず、演算部１３は、対象物と撮像装置２１との距離Ｚを算出する。例えば、２つの撮像装置が平行に設置されている場合には、以下の式３を用いて、距離Ｚが求められる。なお、本実施例においては、先に検出した特徴点を利用して、指先と撮像装置２１との距離Ｚが求められる。
2014142737.tif 000003
【００３１】
ｆはカメラの焦点距離である。Ｔはカメラ間の距離である。ｘ１は、一方のカメラが撮影した画像における特徴点の座標位置である。ｘ２は、他方のカメラが撮影した画像における特徴点の座標位置である。距離Ｚは、実空間における、２つのカメラの中間点から指先までの距離である。
【００３２】
次に、演算部１３は、距離Ｚを利用して、ユーザによる押下操作の有無を検出する。例えば、演算部１３は、距離Ｚが、撮像装置２１から操作領域５の１点までの距離Ｍと等しい場合に、押下操作を行われたと判定する。また、以下の式４のように、オフセットαを考慮して、押下操作の有無を判定してもよい。つまり、距離Ｚが、距離Ｍにオフセットαを加算した値よりも大きい場合に、演算部１３は、ユーザによる押下操作が行われたことを判定する。
2014142737.tif 000004
【００３３】
図４は、押下操作を検出する処理を説明するための図である。なお、図４において、撮像装置２１は、紙面の手前から奥方向（ｙ方向）に２つ存在する。また、２つの撮像装置が撮影する画像における横方向は、図４におけるｘ方向に相当する。そして、２つの撮像装置２１は、ｚ方向をカメラの中心軸として、互いに平行に設置されている。
【００３４】
例えば、距離Ｍは、ｘ方向における撮像装置２１の位置ｘ１から、ｚ方向の位置ｍ１までの距離である。なお、距離Ｍは、プロジェクター２が図１のようなスタンド型である場合のスタンドの高さに応じて予め設定される。
【００３５】
図４の例では、ユーザは押下操作を行っていない例である。なぜなら、撮像装置２１から指先までの距離Ｚは距離Ｍよりも小さいためである。なお、式４において利用される距離Ｍは、ｘ軸方向の複数の位置に対して、複数記憶されても良い。図４のように、位置ｘ２からｍ２までの距離Ｍ'など複数のＭを記憶することで、手指の位置に応じて、比較対照となるＭを適宜選択することも可能である。
【００３６】
演算部１３は、式４に基づき押下操作を検出した場合には、検出部１２が検出した特徴点および手領域に基づき、指の角度を算出する。なお、押下操作を検出しない場合は、後述の選択部１５へ押下操作を検出しない旨を出力する。
【００３７】
図５は、指の角度を算出する処理を説明するための図である。本実施例においては、特徴点と手領域の重心を利用して、角度を算出するが、これに限られない。例えば、重心の代わりに、指の付け根部分に相当する点を手領域から抽出し、特徴点および付け根部分に相当する点から、指の角度を算出しても良い。
【００３８】
演算部１３は、特徴点Ｐの三次元位置（ｐｘ，ｐｙ，ｐｚ）と、重心Ｇの三次元位置（ｇｘ，ｇｙ，ｇｚ）を取得する。ここでは、２つの撮像装置２１のうち一方の撮像装置により撮影された画像における特徴点の座標（ｘ，ｙ）を、特徴点Ｐの三次元位置（ｐｘ，ｐｙ）とする。さらに、上述の検出部１２により算出された、撮像装置２１と指先の距離Ｚを、特徴点Ｐの三次元位置ｐｚとする。
【００３９】
演算部１３は、二値画像における手領域の重心Ｇを、２つの撮像装置２１が撮影した画像それぞれに対して求める。なお、ここでは重心Ｇの位置として、ｘ座標およびｙ座標が求められる。２つの重心Ｇの座標および式３に基づき、撮像装置２１から手の重心Ｇまでの距離Ｚを求める。
【００４０】
演算部１３は、２つの二値画像のうちいずれかに対応するＧの座標（ｘ，ｙ）を、重心Ｇの三次元位置（ｇｘ，ｇｙ）として設定する。さらに、距離Ｚを、重心Ｇの三次元位置ｇｚに設定する。
【００４１】
演算部１３は、特徴点Ｐの三次元位置（ｐｘ，ｐｙ，ｐｚ）と、重心Ｇの三次元位置（ｇｘ，ｇｙ，ｇｚ）とを、以下の式５に代入することで、指の角度θを演算する。そして、演算部１３は、角度θを、選択部１５へ出力する。
2014142737.tif 000005
【００４２】
推定部１４は、検出部１２が特徴点を検出できなかった場合に、現在の指の角度を推定する。具体的には、推定部１４は、過去の画像における特徴点と、現画像における対象物の領域とに基づき、現在の指の角度を推定する。例えば、過去の画像における特徴点Ｐの三次元位置と、現在の画像（最新の画像）における対象物の重心Ｇの三次元位置とを式５に代入することで、推定の角度θを算出する。なお、推定部１４は、押下操作が継続しているか否かを判定して、指の角度の推定を行っても良い。特徴点が検出できない場合における、押下操作の継続判定については、後述する。
【００４３】
ここで、先に述べたとおり、ユーザが押下操作を行ったあとに、所望のメニューを選択するために、指の角度θを調節する場合がある。このとき、操作領域５に対する撮像装置２１の角度と、指の角度との関係によっては、押下操作の支点を含む指の全部または一部を画像に捉えることができない場合がある。撮像装置２１により撮影された画像には、指先部分が含まれない場合に、検出部１２は、特徴点を検出することができない。
【００４４】
例えば、一般的な指の長さＬに対して、Ｌ／ｎ以上の指が撮影されている場合に、指先を検出するアルゴリズムが、一般的に知られている。つまり、このアルゴリズムにおいては、指がＬ／ｎ以下しか写っていない場合には、指先を検出することはできないということになる。
【００４５】
ここで、カメラの中心軸と、操作領域５に対する垂線とのなす角γが、小さくなるほど、指を徐々に傾けていった場合に、指先が写らなくなる境界の角度が小さな値となる。つまり、カメラが操作領域５に対して、真下方向を向く形で取り付けられている場合ほど、指先を検出することができない状況が発生しやすくなる。
【００４６】
また、ｎが小さいほど、指を徐々に傾けていった場合に、指先が写らなくなる境界の角度が小さな値となる。つまり、ｎが小さいことは、指先を検出するアルゴリズムの検出精度が高い（誤検出を排除するために、より指らしいものを認識する）ことを示すが、検出精度が高いほど、指先を検出することができない状況が発生しやすくなる。例えば、指先が写らなくなる境界の角度βと、角度γおよびｎの間には、以下の式６が成り立つ。
2014142737.tif 000006
【００４７】
図２の説明に戻り、選択部１５は、演算部１３が演算した角度θ、および推定部１４が推定した角度θに基づき、複数の入力候補のうちの一つの入力候補を選択する。例えば、複数のメニューのうちの一つのメニューが選択される。
【００４８】
ここで、選択部１５は、一度押下操作が検出された以降に取得した画像において、押下操作が継続している間は、各々の画像における角度に基づき、メニューを仮決定する。ここで、予め複数のメニュー各々に対応する角度は、設定情報として予め設定されるものとする。記憶部１８に記憶された設定情報が、選択部１５によって参照される。
【００４９】
一方、押下操作が解除された場合には、選択部１５は、直前に仮決定したメニューを確定する。一度押下操作が検出された後に、演算部１３が押下操作を検出しなかった場合や、推定部１４が後述の押下継続判定において押下が継続していないことを判定した場合に、選択部１５は、押下操作が解除されたことを判定し、メニューを確定する。
【００５０】
仮決定されたメニューの情報は、表示制御部１６へ出力される。一方、確定されたメニューの情報は、出力部１７へ出力される。
【００５１】
表示制御部１６は、選択中のメニューを他のメニューとは異なる態様で表示するための表示用情報を生成する。例えば、表示制御部１６は、仮決定されたメニューを強調表示するための表示用情報を生成する。図６は、表示用情報に基づき、表示装置２２により表示される表示イメージの図である。
【００５２】
図６の例では、指の角度に応じてメニュー２が選択されていることを示している。ユーザは、強調表示されているメニューが所望のメニューであれば、押下操作を解除する。一方、強調表示されているメニューが所望のメニューでない場合は、ユーザは、指の角度を調整する。
【００５３】
出力部１７は、確定された入力内容を、情報処理装置１へ出力する。例えば、出力部１７は、確定されたメニューを情報処理装置１へ出力する。
【００５４】
記憶部１８は、設定情報を記憶する。設定情報は、入力候補ごとに、入力候補を選択するための、角度の最大値と最小値とを含む情報である。例えば、記憶部１８は、「メニュー１」に割り当てられた角度の範囲として、最大の角度と、最小の角度を記憶する。さらに、記憶部１８は、後述する処理の過程で生成される情報を記憶する。
【００５５】
次に、図７および図８を用いて、入力装置１０による処理を説明する。図７および図８は、入力処理のフローチャートである。
【００５６】
まず、取得部１１は、２つの撮像装置２１から、２つの画像を取得する（Ｏｐ．１）。なお、撮像装置２１における撮影タイミングは、入力装置１０の制御の下、同期していることが望ましい。次に、各々の画像について、検出部１２は、色空間を変換する（Ｏｐ．２）。例えば、ＲＧＢ表色系で示された色情報を、ＨＳＶ表色系へ変換する。
【００５７】
検出部１２は、色に関する条件を利用して、手領域を表す二値画像を、各々の撮像装置２１から取得した画像について生成する（Ｏｐ．３）。なお、二値画像においては、肌色に相当する画素が「１（黒）」で、それ以外の色に相当する画素が「０（白）」で表されている。よって、以下、二値画像において「１（黒）」が設定されている領域が、対象物である手指の領域である。
【００５８】
次に、検出部１２は、指先を検出できたか否かを判定する（Ｏｐ．４）。ここで、検出部１２は、先に述べた方法で、手指領域の形状に基づき、特徴点の検出を試みる。特徴点が検出された場合には、検出部１２は、指先を検出できたと判断する。
【００５９】
検出部１２が指先を検出できた場合には（Ｏｐ．４Ｙｅｓ）、演算部１３は、指先とカメラとの距離Ｚを、式３に基づき算出する（Ｏｐ．５）。なお、ここでは、距離Ｚの算出において、各々の画像から検出された２つの特徴点のｘ座標が、利用される。
【００６０】
つぎに、演算部１３は、距離Ｚをもちいて、ユーザによる押下操作を検出する（Ｏｐ．６）。なお、式４を満たす場合に、演算部１３は、押下操作がなされたことを検出する。
【００６１】
押下操作が検出された場合は（Ｏｐ．６Ｙｅｓ）、演算部１３は、Ｏｐ．１で取得した２枚の画像のうちのいずれかを利用して、手指領域の重心位置Ｇ１を算出する（Ｏｐ．７）。なお、重心位置Ｇ１は、以下の式７乃至式１０に基づき、算出される。
2014142737.tif 000007
【００６２】
2014142737.tif 000008
【００６３】
2014142737.tif 000009
【００６４】
2014142737.tif 000010
【００６５】
Ｆ（ｘ、ｙ）は、手領域を表す関数である。ｍ０，０は、手領域全体の面積を表す。ｍ１，０およびｍ０，１は一次モーメントである。手領域の重心位置Ｇ１（ｘ、ｙ）は、一次モーメントを手領域全体の面積で除算することで得られる。
【００６６】
つぎに、演算部１３は、過去に押下操作が検出されているかを判定する（Ｏｐ．８）。なお、過去に押下操作が検出されているか否かは、記憶部１８に、押下位置Ｐ１および、押下位置Ｐ１と重心位置Ｇ１との距離Ｌ１とが記憶されているか否かに基づき、行われる。
【００６７】
押下操作が検出されていない場合は（Ｏｐ．８Ｎｏ）、演算部１３は、押下位置Ｐ１と重心位置Ｇ１との距離Ｌ１を、算出する（Ｏｐ．９）。押下位置Ｐ１は、Ｏｐ．６において押下操作を検出した際の特徴点Ｐの三次元位置（ｐｘ，ｐｙ，ｐｚ）である。重心位置Ｇ１は、Ｏｐ．６において押下操作を検出した際の重心Ｇの三次元位置（ｇｘ，ｇｙ，ｇｚ）である。距離Ｌ１は、押下位置Ｐ１および重心位置Ｇ１の座標に基づき算出される。
【００６８】
つぎに、演算部１３は、初めて押下を検出した際の押下位置Ｐ１と、距離Ｌ１とを記憶部１８へ格納する（Ｏｐ．１０）。つまり、Ｏｐ．１０において、記憶部１８に押下位置Ｐ１と距離Ｌ１とが記憶されることで、Ｏｐ．８において、記憶部１８に押下位置Ｐ１および距離Ｌ１が記録されているか否かに基づき、過去に押下操作が検出されているか否かが判定できる。
【００６９】
過去に押下操作が検出されている場合（Ｏｐ．８Ｙｅｓ）、または、距離Ｌ１および押下位置Ｐ１を記憶（Ｏｐ．１０）した後、演算部１３は、押下位置Ｐ１および重心位置Ｇ１を用いて、指の角度θ１を算出する（Ｏｐ．１１）。なお、θ１は、式５に基づき算出される。
【００７０】
算出されたθ１に基づき、選択部１５は、複数のメニューのうち、いずれかのメニューを、仮メニューとして決定する（Ｏｐ．１２）。ここで決定された仮メニューは、一時的に記憶部１８へ記憶される。なお、新たに受け付けた画像に対して、同様の処理を行った結果、新たに仮メニューが決定された場合は、記憶部１８に記憶された仮メニューは、新たに決定された仮メニューで更新される。
【００７１】
つぎに、表示制御部１６は、表示装置２２に、仮メニューとして決定されたメニューを、他のメニューとは異なる態様で表示させる（Ｏｐ．１３）。つまり、表示制御部１６は、表示用の情報を生成し、出力部１７を介して、表示用の情報を表示装置２２へ出力する。
【００７２】
そして、入力装置１０は、一連の処理を終了するが、新たに画像を受け付けるため、再度Ｏｐ．１より処理を開始する。
【００７３】
ここで、Ｏｐ．６において、押下操作が検出されなかった場合は（Ｏｐ．６Ｎｏ）、検出部１２は、押下操作が検出されなかった旨を、選択部１５へ出力する。選択部１５は、過去に押下操作が検出されているか否かを判定する（Ｏｐ．１４）。なお、選択部１５は、記憶部１８に、押下位置Ｐ１および距離Ｌ１が記憶されている場合に、過去に押下操作が検出されたことを判定する。
【００７４】
過去に押下操作が検出されている場合には（Ｏｐ．１４Ｙｅｓ）、選択部１５は、過去に決定された仮メニューを、情報処理装置１に対する入力として確定する（Ｏｐ．１５）。つぎに、出力部１７は、選択部１５が確定したメニューを、情報処理装置１へ出力する（Ｏｐ．１６）。なお、選択部１５は、メニューを確定した後、記憶部１８に記憶されている押下位置Ｐ１および距離Ｌ１を消去する。
【００７５】
つまり、ある画像に基づき仮メニューが決定されたあとに、他の画像において押下操作を検出しなかった場合、選択部１５は、押下操作が解除されたとして、ある画像に基づき決定された仮メニューを、情報処理装置１に対する入力として決定する。
【００７６】
一方、過去に押下操作が検出されていない場合には（Ｏｐ．１４Ｎｏ）、入力装置１０は、処理を終了する。つまり、取得した画像において押下操作が検出されず（Ｏｐ．６Ｎｏ）、さらに過去にも押下操作が検出されていない場合には（Ｏｐ．１４Ｎｏ）、ユーザは押下操作を行っていないため、情報処理装置１に入力を行わない。
【００７７】
ここで、Ｏｐ，４において、検出部１２が、指先を構成する特徴点を検出できなかった場合に（Ｏｐ．４Ｎｏ）、推定部１２は、過去に押下操作を検出しているか否かを判定する（Ｏｐ．２１）。推定部１４は、記憶部１８に、押下位置Ｐ１および距離Ｌ１が記憶されている場合に、過去に押下操作が検出されたことを判定する。
【００７８】
過去に押下操作を検出していない場合は（Ｏｐ．２１Ｎｏ）、入力装置１０は、処理を終了する。このとき、メニューは選択されない。
【００７９】
一方、過去に押下操作を検出している場合は（Ｏｐ．２１Ｙｅｓ）、推定部１４は、押下が継続しているかを、判定する（Ｏｐ．２２）。なお、Ｏｐ．２２において行われる押下の継続判定を、第一の押下継続判定と称する。
【００８０】
ここで、第一の押下継続判定について説明する。図９Ａ乃至図９Ｃは、第一の押下継続判定を説明するための図である。なお、図９Ａ乃至図９Ｃは、２つの撮像装置２１に基づく２つの二値画像のうちの一方の二値画像における手指領域を示している。ただし、図９Ａ乃至図９Ｃでは、指先は、手の甲部分に隠れて、画像には写っていないことを示している。
【００８１】
図９Ａ乃至図９Ｃは、手指領域９１乃至手指領域９３と、記憶部１８に記憶されている押下位置Ｐ１との関係を示している。例えば、図９Ａを対象として、検出部１２が特徴点の検出処理を実行した結果、指先を検出することはできない。
【００８２】
そこで、推定部１４は、押下操作が継続しているか否かを、最新の二値画像における手指領域９１の情報と、記憶部１８に記憶されている押下位置Ｐ１とに基づき、推定する。ここでは、最新の二値画像における手指領域に、押下位置Ｐ１が含まれる場合に、推定部１４は、ユーザによる押下操作は継続していると判定する。
【００８３】
ユーザは、過去に押下操作を行った際の指先の位置（押下位置Ｐ１）を、固定した状態で、指の角度を調整するため、押下操作が継続されている限りは、押下位置Ｐ１は、最新の二値画像においても、ほぼ同様の位置であることが推定できる。言い換えると、押下操作が継続されている限り、押下位置Ｐ１に指先を配置することができる位置に手の甲も存在することになる。したがって、最新の画像における手指領域は、過去の押下位置Ｐ１を含むことができる場合、押下操作が継続していると判定することができる。例えば、図９Ａや図９Ｂの場合、推定部１４は、第一の押下継続判定において、押下操作が継続していることを判定する。
【００８４】
一方、最新の画像から指先を検出することができず、さらに、最新の画像における手指領域が過去の押下位置Ｐ１を含まない場合は、推定部１４は、押下操作が解除されたと推定することができる。例えば、図９Ｃの場合、推定部１４は、第一の押下継続判定において、押下操作が解除されたことを判定する。手領域９３と押下位置Ｐ１とが重複していないことは、押下位置Ｐ１をほぼ動かさない状態でユーザが指の角度を調節する限りはありえないためである。
【００８５】
押下操作が継続されている場合には（Ｏｐ．２２Ｙｅｓ）、２つの撮像装置が各々撮影した最新の画像の二値画像における手指領域にもとづき、重心位置Ｇ２を算出する（Ｏｐ．２３）。重心位置Ｇ２の算出方法は、重心位置Ｇ１の算出方法と同様である。重心位置Ｇ２は、重心位置Ｇ１と同様、いずれかの二値画像における重心位置（ｘ，ｙ）を、重心位置Ｇ２のＸ座標、およびＹ座標とする。さらに、実空間における、重心と撮像装置２１との距離を、重心位置Ｇ２のＺ座標とする。
【００８６】
つぎに、過去の押下位置Ｐ１と、最新の重心位置Ｇ２とに基づき、推定部１４は、過去の押下位置Ｐ１と最新の重心位置Ｇ２との距離Ｌ２を算出する（Ｏｐ．２４）。そして、推定部１４は、ここで、さらに押下操作が継続しているか否かを判定する（Ｏｐ．２５）。なお、Ｏｐ．２５において行われる押下の継続判定を、第二の押下継続判定と称する。
【００８７】
図１０は、第二の押下継続判定を説明するための図である。押下操作を検出した時点での、押下位置Ｐ１と過去の重心位置Ｇ１との距離Ｌ１よりも、押下位置Ｐ１と現時点での重心位置Ｇ２との距離Ｌ２のほうが大きければ、推定部１４は、押下操作は解除されていることが推定できる。図１０のように、距離Ｌ２のほうが距離Ｌ１よりも大きければ、ユーザは押下操作を解除している。
【００８８】
押下操作が継続されている場合には（Ｏｐ．２５Ｙｅｓ）、推定部１４は、過去の押下位置Ｐ１と、最新の重心位置Ｇ２を用いて、指の角度θ２を算出する（Ｏｐ．２６）。そして、算出されたθ２に基づき、選択部１５は、複数のメニューのうち、いずれかのメニューを、仮メニューとして決定する（Ｏｐ．２７）。ここで決定された仮メニューは、一時的に記憶部１８へ記憶される。
【００８９】
つぎに、表示制御部１６は、Ｏｐ．１３と同様、表示装置２２に、仮メニューとして決定されたメニューを、他のメニューとは異なる態様で表示させる（Ｏｐ．２８）。
【００９０】
一方、第一の押下継続判定において押下が解除されていることが判定された場合（Ｏｐ．２２Ｎｏ）、または、第二の押下継続判定において押下が解除されていることが判定された場合（Ｏｐ．２５Ｎｏ）、推定部１４は、押下の解除を、選択部１５へ通知する。そして、選択部１５は、記憶部１８を参照し、記憶部１８に仮メニューとして登録されているメニューを、情報処理装置１への入力として確定する（Ｏｐ．２９）。
【００９１】
さらに、つぎに、出力部１７は、選択部１５が確定したメニューを、情報処理装置１へ出力する（Ｏｐ．３０）。なお、選択部１５は、メニューを確定した後、記憶部１８に記憶されている押下位置Ｐ１および距離Ｌ１を消去する。
【００９２】
以上のように、入力装置１０は、押下操作およびそれに続く指の角度調節に応じて、ユーザが希望するメニューを、情報処理装置１へ入力することができる。ユーザは、タッチパネルを利用するメニュー選択方式等と比較して、より直感的にメニュー選択を行うことができる。つまり、ユーザにとって、操作性が向上する。
【００９３】
さらに、入力装置１０は、押下操作の支点となる指の先端が、手の甲に隠れている場合であっても、押下操作が継続しているか否かを判定することができる。そして、押下操作が継続している場合には、推定した指の角度に基づき、角度に応じた仮メニューを決定することができる。また、押下操作が解除された場合には、解除を検出して、メニューを確定することができる。
【００９４】
図１１は入力装置１０のハードウェア構成の一例を示す図である。コンピュータ１０００は、上述した入力処理を実行し、入力装置１０として機能する。なお、コンピュータ１０００は、入力装置１０を含む情報処理装置１として機能しても良い。さらに、図１に示すプロジェクター２が、入力装置１０として機能してもよい。この場合には、プロジェクター２がコンピュータ１０００である。
【００９５】
コンピュータ１０００はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１００２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１００３、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１００５、媒体読取装置１００６を有しており、各部はバス１００７を介して相互に接続されている。そしてＣＰＵ１００１による管理下で相互にデータの送受を行うことができる。
【００９６】
各実施例のフローチャートに示した入力処理が記述された入力プログラムは、コンピュータが読み取り可能な記録媒体に記録される。コンピュータが読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）などがある。
【００９７】
光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  −  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ  −  ＯＰｔｉｃａｌ  ｄｉｓｋ）などがある。このプログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売されることが考えられる。
【００９８】
そして入力プログラムを実行するコンピュータ１０００は、例えば媒体読取装置１００６が、入力プログラムを記録した記録媒体から、該プログラムを読み出す。ＣＰＵ１００１は、読み出されたプログラムをＨＤＤ１００５若しくはＲＯＭ１００２、ＲＡＭ１００３に格納する。
【００９９】
ＣＰＵ１００１は、入力装置１０全体の動作制御を司る中央処理装置である。そして、ＣＰＵ１００１が、入力プログラムをＨＤＤ１００５から読み出して実行することで、ＣＰＵ１００１は、図２に示す取得部１１、検出部１２、演算部１３、推定部１４、選択部１５、表示制御部１６、出力部１７として機能するようになる。入力プログラムはＣＰＵ１００１とアクセス可能なＲＯＭ１００２またはＲＡＭ１００３に格納されていても良い。
【０１００】
なお、取得部１１が、ネットワークを介して、撮像装置２１から画像を取得する場合は、通信装置１００４が取得部１１として機能する。つまり、コンピュータ１０００は、さらに通信装置１００４を有しても良い。また、入力装置１０が表示装置２２とネットワークを介して通信する場合は、通信装置１００４が出力部１７として機能する。
【０１０１】
さらにＨＤＤ１００５は、ＣＰＵ１００１の管理下で図２に示す記憶部１８として機能する。つまり、ＨＤＤ１００５は、設定情報を記憶する。プログラム同様、設定情報はＣＰＵ１００１とアクセス可能なＲＯＭ１００２またはＲＡＭ１００３に格納されても良い。
【０１０２】
また、図７および図８の処理の過程で生成される情報は、記憶部１８として機能するＲＡＭ１００３に、一時的に記憶される。つまり、記憶部１８のデータは、ＨＤＤ１００５や、ＲＯＭ１００２またはＲＡＭ１００３などの記憶装置に格納される。
【０１０３】
また、入力装置１０が通信装置１００４を有する場合は、ネットワークを介して他の装置からの信号を受信し、その信号の内容をＣＰＵ１００１に渡す。さらに通信装置１００４はＣＰＵ１００１からの指示に応じてネットワークを介して他の装置に信号を送信する。
【０１０４】
なお、入力装置１０または情報処理装置１が、撮像装置２１や表示装置２２を有してもよい。撮像装置２１は、所定のフレーム間隔で撮影を行い、デジタル信号に変換したのち、撮影した画像をＣＰＵ１００１に対して出力する。撮像装置２１は、例えばＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）センサ又はＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）センサを有し、例えば、ユーザの手を撮影する。
【０１０５】
表示装置２２は、例えばプロジェクターやディスプレイである。ユーザが、指の角度に対応して選択されているメニューがいずれのメニューであるかを、投影または表示する。
【０１０６】
（変形例）
ここで、図１に示す利用形態とは異なる他の利用形態の例を説明する。例えば、車内に設置されたカメラが、ユーザの手および指を撮影する。なお、操作領域はカメラから撮像可能な領域であって、例えば、ユーザの足（腿）等である。そして、カーナビゲーションシステムがカメラから画像を取得する。
【０１０７】
カーナビゲーションシステムは、入力装置を備えるとともに、情報処理装置としても機能する。カーナビゲーションシステムは、カメラから取得した画像に基づき、指の角度を算出し、メニューを選択する。そして、カーナビゲーションシステムは、選択されたメニューを実行する。また、選択されたメニューを、カーナビゲーションシステムが有するディスプレイに表示してもよい。
【符号の説明】
【０１０８】
１        情報処理装置
１０      入力装置
１１      取得部
１２      検出部
１３      演算部
１４      推定部
１５      選択部
１６      表示制御部
１７      出力部
１８      記憶部
２１      撮像装置
２２      表示装置
１０００    コンピュータ
１００１    ＣＰＵ
１００２    ＲＯＭ
１００３    ＲＡＭ
１００４    通信装置
１００５    ＨＤＤ
１００６    媒体読取装置
１００７    バス
【図１】
2014142737.tif 000011
【図２】
2014142737.tif 000012
【図３】
2014142737.tif 000013
【図４】
2014142737.tif 000014
【図５】
2014142737.tif 000015
【図６】
2014142737.tif 000016
【図７】
2014142737.tif 000017
【図８】
2014142737.tif 000018
【図９】
2014142737.tif 000019
【図１０】
2014142737.tif 000020
【図１１】
2014142737.tif 000021