(57)【特許請求の範囲】
【請求項１】
手を撮影する撮影部により入力される画像から手領域を抽出する抽出部と、
前記手領域に基づき、前記画像内の所定線を押下基準線に決定する基準線決定部と、
前記手領域の最下部が前記押下基準線を超える場合に押下と判定する判定部と、
前記判定部により押下と判定された場合の前記手領域の縦横比に基づき、奥行き方向の位置を決定する第１位置決定部と、
前記判定部により押下と判定された場合の前記手領域の最下部の位置に基づき、横方向の位置を決定する第２位置決定部と、
決定された前記奥行き方向の位置及び前記横方向の位置により入力キーを決定する入力キー決定部と、
を備える情報処理装置。
【請求項２】
前記抽出部は、
基準となる前記手領域の縦横比を算出し、該縦横比に基づき１又は複数の閾値を設定し、
前記第１位置決定部は、
前記閾値と、前記判定部により押下と判定された場合の前記手領域の縦横比とを比較することで、前記奥行き方向の位置を決定する請求項１記載の情報処理装置。
【請求項３】
前記判定部は、
前記押下基準線を前記手領域の縦横比に応じて変更する請求項２記載の情報処理装置。
【請求項４】
前記第２位置決定部は、
前記手領域の横幅と前記手領域の最下部の位置とに基づき、前記横方向の位置を決定する請求項１乃至３いずれか一項に記載の情報処理装置。
【請求項５】
前記第２位置決定部は、
前記手領域の最下部がどの指であるかを推定し、推定された指に基づき、前記横方向の位置を決定する請求項１乃至３いずれか一項に記載の情報処理装置。
【請求項６】
前記抽出部は、
明度又は輝度に基づき手のひら部分を除去して手領域を抽出する請求項１乃至５いずれか一項に記載の情報処理装置。
【請求項７】
前記基準線決定部は、
前記奥行き方向の入力段毎に押下基準線を決定する請求項１乃至６いずれか一項に記載の情報処理装置。
【請求項８】
手を撮影する撮影部により入力される画像から手領域を抽出し、
前記手領域に基づき、前記画像内の所定線を押下基準線に決定し、
前記手領域の最下部が前記押下基準線を超える場合に押下と判定し、
押下と判定された場合の前記手領域の縦横比に基づき、奥行き方向の位置を決定し、
押下と判定された場合の前記手領域の最下部の位置に基づき、横方向の位置を決定し、
決定された前記奥行き方向の位置及び前記横方向の位置により入力キーを決定する、
処理をコンピュータが実行する入力制御方法。
【請求項９】
手を撮影する撮影部により入力される画像から手領域を抽出し、
前記手領域に基づき、前記画像内の所定線を押下基準線に決定し、
前記手領域の最下部が前記押下基準線を超える場合に押下と判定し、
押下と判定された場合の前記手領域の縦横比に基づき、奥行き方向の位置を決定し、
押下と判定された場合の前記手領域の最下部の位置に基づき、横方向の位置を決定し、
決定された前記奥行き方向の位置及び前記横方向の位置により入力キーを決定する、
処理をコンピュータに実行させる入力制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理的なキーボードを用いずにキー入力を制御する情報処理装置、入力制御方法及び入力制御プログラムに関する。
【背景技術】
【０００２】
近年、スマートフォンやスレートＰＣ（Personal Computer）／ｉＰａｄ（登録商標）をはじめとしたタブレット型デバイスなど、キーボードレスデバイスが急拡大している。しかし、キーボードレスデバイスでは、ＱＷＥＲＴＹ型物理キーボードに匹敵する操作感を有する文字入力インターフェースは実現されておらず，特に長文入力を必要とするユーザの最大のデメリットの一つとなっている。【０００３】
スマートフォンをはじめとした携帯端末では、タッチパネル式および物理的なテンキーを使った入力インターフェースが多く用いられる。画面に表示をするキー数よりも入力対象の文字種類が多い場合、１つのキーに複数の文字種類が割り当てられ、複数回キーを押下して文字が選択される。例えば、画面にテンキーが表示され、テンキーの「２」の位置のキーに「Ａ」「Ｂ」「Ｃ」が割り当てられ、押下された回数により何れかの文字が選択される。【０００４】
また、ｉＰｈｏｎｅ（登録商標）は、フリック式と呼ばれるインターフェースを備えている。フリック式は、所定キーが押下されると、そのキーに割り当てられている文字を、上下左右に表示する。【０００５】
例えば、画面にテンキーが表示され、テンキーの「２」の位置にある「Ａ」のキーが押下されると、その左側に「Ｂ」、その上側に「Ｃ」が表示される。それらの何れかのキーの位置で指が離されると、その位置の文字種類が選択される。キーを複数回押下して、入力をする文字種類を選択する方法に比べて、キー押下回数を削減することができる。【０００６】
上記の入力方式は、片手での入力が可能であり、電車内など移動中の入力や短文入力に適している。しかし、携帯端末の小型化により、文字入力領域が小さくなっているため、キーの操作性が良くなく、長文入力については適していない。【０００７】
また、タブレット型デバイスは、１０型程度の比較的大きなタッチパネル式ディスプレイの採用が多く、ＱＷＥＲＴＹ型フルキーボードを画面上に表示させるソフトウェアキーボードの搭載が主流である。【０００８】
タブレット型デバイスで、ソフトウェアキーボードを実用可能なサイズで表示させると、表示領域に占めるキーボードの表示面積が大きくなり、アプリケーション表示が見にくくなるといった課題がある。【０００９】
これに対し、仮想キーボードに対する指先の位置を検出してキー入力を行う技術がある。例えば、２台のカメラを用いて操作者の指先を撮影し、撮影した映像から指先の３次元位置を検出して、その位置に対応する仮想キーボードのキーを決定する技術がある（特許文献１、２）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−２８２４２８号公報
【特許文献２】特開２００３−２８８１５６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従来技術では、物理的なキーボード（物理キーボードとも言う）が必要ない代わりに、２台のカメラが必要になる。そもそも、物理キーボードがない端末（物理キーボードレス端末とも言う）は、物理キーボードを搭載しないことで、薄型化、小型化を目指している。【００１２】
しかし、従来技術では、２台のカメラを搭載し、この２台のカメラは３次元の動きを検出するため、操作者の指の正面及び上面から撮影しなければならず、２台のカメラの設置位置が限られる。よって、設置位置が限られる２台のカメラを搭載する１つのデバイスを実装することは、コスト増であるとともに携帯性に優れるものではない。【００１３】
そこで、開示の技術は、１台のカメラによる１方向からの撮影画像に基づき推定した指の３次元位置に応じて入力コマンドを決定することができる情報処理装置、入力制御方法及び入力制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
開示の一態様の情報処理装置は、手を撮影する撮影部により入力される画像から手領域を抽出する抽出部と、前記手領域に基づき、前記画像内の所定線を押下基準線に決定する基準線決定部と、前記手領域の最下部が前記押下基準線を超える場合に押下と判定する判定部と、前記判定部により押下と判定された場合の前記手領域の縦横比に基づき、奥行き方向の位置を決定する第１位置決定部と、前記判定部により押下と判定された場合の前記手領域の最下部の位置に基づき、横方向の位置を決定する第２位置決定部と、決定された前記奥行き方向の位置及び前記横方向の位置により入力キーを決定する入力キー決定部と、を備える。
【発明の効果】
【００１５】
開示の技術によれば、１台のカメラによる１方向からの撮影画像に基づき推定した指の３次元位置に応じて入力コマンドを決定することができる。
【図面の簡単な説明】
【００１６】
【図１】実施例における情報処理装置の利用形態の一例を示す図。
【図２】情報処理装置のハードウェアの一例を示す図。
【図３】情報処理装置の機能の一例を示すブロック図。
【図４】抽出された手領域の一例を示す図。
【図５】仮想キーボードの一例を示す図。
【図６】押下基準線の一例を示す図。
【図７】キー押下の一例を示す図。
【図８】等分に分割した手領域の一例を示す図。
【図９】各閾値の一例を示す図。
【図１０Ａ】上段を操作するときの手領域の一例を示す図。
【図１０Ｂ】中段を操作するときの手領域の一例を示す図。
【図１０Ｃ】下段を操作するときの手領域の一例を示す図。
【図１１】入力キー決定の一例を示す図。
【図１２】実施例１におけるキャリブレーション処理の一例を示すフローチャート図。
【図１３】実施例１におけるキー入力処理の一例を示すフローチャート。
【図１４】手領域抽出処理の一例を示すフローチャート。
【図１５】実施例３におけるキー入力処理の一例を示すフローチャート。
【符号の説明】
【００１７】
１０  情報処理装置
１０１  制御部
１０２  主記憶部
１０３  補助記憶部
１０４  カメラ
１０５  表示部
２０１  キー入力部
２０２  撮影部
２０３  記憶部
２１１  抽出部
２１２  基準線決定部
２１３  判定部
２１４  横方向位置決定部
２１５  奥行き方向位置決定部
２１６  入力キー決定部
【発明を実施するための形態】
【００１８】
まず、実施例における情報処理装置の利用形態について説明する。図１は、実施例における情報処理装置１０の利用形態の一例を示す図である。図１に示す例では、例えば、情報処理装置１０のカメラ１０４を下部にし、情報処理装置１０を平面に対して立てた状態にする。このとき、ユーザは、カメラ１０４から撮影できる範囲内に両手を置き、キーボードを操作する動作を行う。このとき、ユーザは、タッチタイピングをすることができることが望ましい。
【００１９】
カメラ１０４は、ユーザの両手の動きを撮影する。情報処理装置１０は、カメラ１０４の撮影画像から手の指先の３次元位置を推定、検出する。情報処理装置１０は、検出した３次元位置に応じてキーを決定し、キー入力を行う。
【００２０】
情報処理装置１０は、物理キーボードレス端末であり、例えば、スマートフォンや、スレートＰＣ、タブレット型デバイスなどである。以下、図面に基づいて各実施例について説明する。
【００２１】
［実施例１］
＜ハードウェア＞
図２は、情報処理装置１０のハードウェアの一例を示す図である。図１に示す情報処理装置１０は、制御部１０１、主記憶部１０２、補助記憶部１０３、カメラ１０４、表示部１０５を有する。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【００２２】
制御部１０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵ（Central Processing Unit）である。また、制御部１０１は、主記憶部１０２や補助記憶部１０３に記憶されたプログラムを実行する演算装置である。また、制御部１０１は、入力されたデータを演算、加工した上で、表示部１０５や補助記憶部１０３などに出力する。
【００２３】
主記憶部１０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部１０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００２４】
補助記憶部１０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００２５】
カメラ１０４は、例えばＣＣＤ（Charge Coupled Device）センサ又はＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサを有し、例えば、ユーザの手を撮影する。
【００２６】
表示部１０５は、ＬＣＤ（Liquid Crystal Display）等により構成され、制御部１０１から入力される表示データに応じた表示が行われる。
【００２７】
なお、実施例では、情報処理装置１０にカメラ１０４を内蔵する例について説明するが、カメラ１０４は必ずしも情報処理装置１０に必要な構成ではない。情報処理装置１０は、外部にあるカメラに接続して、制御部１０１がカメラから撮影画像を取得すればよい。
【００２８】
また、情報処理装置１０は、さらに記録媒体とのインターフェースとなるドライブ装置や、他の機器と通信を行うためのネットワークＩ／Ｆ部などを有してもよい。
【００２９】
例えば、ドライブ装置は、記録媒体（例えばフレキシブルディスク）からプログラムを読み出し、補助記憶部１０３などにインストールする。
【００３０】
また、記録媒体に、所定のプログラムを格納し、この記録媒体に格納されたプログラムはドライブ装置を介して情報処理装置１０にインストールされる。インストールされた所定のプログラムは、情報処理装置１０により実行可能となる。
【００３１】
ネットワークＩ／Ｆ部は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介して接続された通信機能を有する周辺機器と情報処理装置１０とのインターフェースである。
【００３２】
＜機能＞
図３は、情報処理装置１０の機能の一例を示すブロック図である。図３に示す例では、情報処理装置１０は、キー入力部２０１、撮影部２０２、記憶部２０３を有する。
【００３３】
キー入力部２０１は、例えば制御部１０１やワークメモリとしての主記憶部１０２により実現され、撮影部２０２は、例えばカメラ１０４により実現され、記憶部２０３は、例えば主記憶部１０２又は補助記憶部１０３により実現されうる。
【００３４】
撮影部２０２は、例えば、ユーザの手を含む範囲を撮影する。キー入力部２０１は、撮影部２０２から撮影画像を取得し、この撮影画像から指の３次元位置を検出し、この指の３次元位置に基づき入力コマンドを決定する。入力コマンドは、例えば文字コードである。入力コマンドは記憶部２０３に記憶される。
【００３５】
記憶部２０３は、キー入力部２０１から取得したデータ、例えば入力コマンドなどを記憶する。
【００３６】
次に、キー入力部２０１について詳細に説明する。キー入力部２０１は、抽出部２１１、基準線決定部２１２、判定部２１３、横方向位置決定部２１４、奥行き方向位置決定部２１５、入力キー決定部２１６を有する。
【００３７】
なお、実施例１における情報処理装置１０では、入力制御処理として、キャリブレーション処理と、キー入力処理とを行うため、各処理についての各部の機能を説明する。
【００３８】
（キャリブレーション処理）
このキャリブレーション処理は、入力制御処理を開始し、ユーザが、両手をホームポジションの形にしてカメラ１０４の前に置いたときに行われる。例えば、ユーザが机上に両手を置くことが考えられる。
【００３９】
抽出部２１１は、撮影部２０２から入力される撮影画像から手の領域（手領域とも言う）を抽出する。手領域の抽出については、ユーザの手の肌色抽出による抽出や、あらかじめ登録した手の形状の特徴量を基に、撮影画像内から手領域を抽出する方法などがある。
【００４０】
また、抽出部２１１は、後述するように、手領域から手のひらを削除する処理を行ってもよい。手のひらを削除するためには、例えば、指のエッジを抽出すればよい。以下に示す例では、手のひらを削除した領域を手領域とする例について説明するが、必ずしも手のひらを削除する必要はない。手領域の抽出については、公知の技術のいずれかを用いればよい。
【００４１】
抽出部２１１は、左右の手領域の縦横比Ｒを算出する。縦横比Ｒは、式（１）、（２）により求められる。例えば、抽出部２１１は、手領域の縦横比を算出する際、手領域の外接矩形を求め、この外接矩形の縦横比を算出すればよい。
ＲＲ＝Ｈ（Ｒｉｇｈｔ）／Ｗ（Ｒｉｇｈｔ）  ・・・式（１）
ＲＬ＝Ｈ（Ｌｅｆｔ）／Ｗ（Ｌｅｆｔ）  ・・・式（２）
ＲＲ：右手の縦横比
Ｈ（Ｒｉｇｈｔ）：右手の縦（高さ）
Ｗ（Ｒｉｇｈｔ）：右手の横（幅）
ＲＬ：左手の縦横比
Ｈ（Ｌｅｆｔ）：左手の縦（高さ）
Ｗ（Ｌｅｆｔ）：左手の横（幅）
なお、抽出部２１１は、ＲＲとＲＬとの平均値を算出し、この平均値を使用してもよい。
【００４２】
図４は、抽出された手領域の一例を示す図である。図４に示すように、撮影部２０２により撮影された画像に対し、抽出部２１１により手領域が抽出され、抽出された左右の手領域に対して縦横比が算出される。
【００４３】
なお、図４に示す例では、左手の親指が他の指の後ろに隠れていて検出されていないが、親指は英数字のキー押下にはあまり影響しないので問題はない。
【００４４】
また、抽出部２１１は、縦横比Ｒを用いて、奥行き方向の位置を判定するのに用いる閾値を算出する。抽出部２１１は、例えば、各手の縦横比Ｒに対し、所定の係数を乗算することで閾値ＴＨを算出する。閾値ＴＨは、次の式（３）〜（６）により求められる。閾値ＴＨは、下記の各閾値の総称である。
ＴＨＵＲ＝ＲＲ×Ｘ１  ・・・式（３）
ＴＨＤＲ＝ＲＲ×Ｘ２  ・・・式（４）
ＴＨＵＬ＝ＲＬ×Ｘ１  ・・・式（５）
ＴＨＤＬ＝ＲＬ×Ｘ２  ・・・式（６）
ＴＨＵＲ：上段（Ｕｐ）、右手（Ｒｉｇｈｔ）の閾値
ＴＨＤＲ：下段（Ｄｏｗｎ）、右手（Ｒｉｇｈｔ）の閾値
ＴＨＵＬ：上段（Ｕｐ）、左手（Ｌｅｆｔ）の閾値
ＴＨＤＬ：下段（Ｄｏｗｎ）、左手（Ｌｅｆｔ）の閾値
Ｘ１：１より小さい値（Ｘ１＜１．０）
Ｘ２：１より大きい値（Ｘ２＞１．０）
ただし、画像左上を原点とする。
【００４５】
ここで、Ｘ１、Ｘ２は、奥行き方向の手指の移動量に比例する値であり、ユーザの使用感に合わせて調整されてもよいし、あらかじめ設定されていてもよい。予め設定される場合は、Ｘ１が例えば０．８、Ｘ２が例えば１．２とする。
【００４６】
抽出部２１１は、算出した各閾値を奥行き方向位置決定部２１５に出力する。なお、各閾値の算出は、抽出部２１１が行うのではなく、抽出部２１１から縦横比を取得した奥行き方向位置決定部２１５が行うようにしてもよい。
【００４７】
図３に戻り、基準線決定部２１２は、キーの押下を判定するための基準を決定する。この基準の位置を押下基準線と呼ぶ。基準線決定部２１２は、押下基準線について、抽出部２１１により抽出された手領域に基づいて決定する。
【００４８】
基準線決定部２１２は、例えば、抽出された手領域から、各指先を検出し、各指先を結ぶ近似直線を押下基準線にしてもよい。これは、ユーザが机上に指を置いた位置が押下基準線となるので、ユーザは机をキーボードのように操作できるので操作感が向上する。
【００４９】
図５は、仮想キーボードの一例を示す図である。図５に示す例では、ＱＷＥＲＴＹ型のキーボードの３段を示すが、３段に限らず、４段、５段などでもよい。
【００５０】
基準線決定部２１２は、ユーザから見て手前側のキー（例えば、図５に示すＺ，Ｘなど）を入力するときの位置が、撮影画像の２次元画像上では指先が最も高い（上の）位置にくるので、この位置を押下基準線としてもよい。
【００５１】
図６は、押下基準線の一例を示す図である。図６に示す押下基準線は、画像の上端からの距離Ｍで表されている。図６に示す例では、ホームポジション時（図５に示す中段のキーに指先があると想定した場合）の指先の位置を押下基準線としている。
【００５２】
なお、基準線決定部２１２は、図５に示すような３段の仮想キーボードがある場合、中段の入力時の手の位置（Ｍ）を検出し、下段時の縦横比Ｒの大きさに応じた係数αをＭに乗算した値を押下基準線として使用してもよい。
【００５３】
また、図６に示す例では、左右の手で同じ押下基準線を用いるが、左右の手で、異なる押下基準線を用いるようにしてもよい。この場合、基準線決定部２１２は、左右の手それぞれで、指先を結び近似直線を求めればよい。
【００５４】
縦横比Ｒ（下段時）は、奥行き方向（ユーザの手前側）の距離を表す値であるため、Ｒの値が大きければ押下基準線がより奥行き方向側になり、下段のキーの押下を適切に検出できるようになる。
【００５５】
基準線決定部２１２は、決定した押下基準線の位置（例えば画像上端からの距離Ｍ）を判定部２１３に通知する。
【００５６】
以上で、キャリブレーション処理が終了する。キャリブレーション処理は、キー入力処理に必要な押下基準線となるＭと、閾値ＴＨとを設定するための処理である。なお、キャリブレーション処理は、ユーザの指紋などのユーザ識別情報に、Ｍと閾値ＴＨとを関連付けて記憶部２０３に記憶させておけば、毎回キャリブレーション処理を行う必要はない。
【００５７】
（キー入力処理）
撮影部２０２は、ユーザの手の動作を撮影し、抽出部２１１に出力する。抽出部２１１は、キャリブレーション処理と同様にして、撮影部２０２から入力された画像から手領域を抽出する。また、抽出部２１１は、抽出した手領域の縦横比Ｒ'（現在の縦横比）を算出する。
【００５８】
抽出部２１１は、抽出した手領域を判定部２１３、横方向位置決定部２１４に出力し、算出した縦横比Ｒ'を奥行き方向位置決定部２１５に出力する。
【００５９】
図３に示す判定部２１３は、基準線決定部２１２により通知された押下基準線と、抽出部２１１により抽出された手領域の最下部とを比較し、最下部の方が押下基準線よりも低い位置にあれば、キー押下と判定する。また、最下部が押下基準線よりも低い位置にあるとは、最下部が押下基準線を画像の下側に超えることを意味する。
【００６０】
なお、撮影画像に対し、左上の位置を原点とし、下方向に値が増加する座標の場合、判定部２１３は、最下部の縦方向の座標がＭよりも大きければ、キー押下と判定する。
【００６１】
判定部２１３は、最下部の縦方向の座標がＭよりも小さければ（最下部が押下基準線を超えていなければ）、キー押下はないと判定する。
【００６２】
判定部２１３は、次のキー押下を判定する条件として、一度押下基準線を超えた最下部が押下基準線よりも上に移動することを条件とする。例えば、判定部２１３は、押下基準線より下にあった最下部が、一度押下基準線よりも上にきた場合に、次のキー押下の判定を開始する。
【００６３】
図７は、キー押下の一例を示す図である。図７に示す例では、ユーザの右手の人差し指が、押下基準線を超えており、判定部２１３は、キー押下を判定する。この場合、人差し指の縦方向の座標がＭよりも大きな値となっている。
【００６４】
判定部２１３は、キー押下を判定した場合、横方向位置決定部２１４、奥行き方向位置決定部２１５にキー押下された旨を通知する。
【００６５】
図３に戻り、横方向位置決定部２１４は、キー押下を通知されると、抽出部２１１により抽出された手領域の最下部の位置に基づいて、横方向位置を決定する。
【００６６】
例えば、横方向位置決定部２１４は、手領域の幅に対する最下部の相対位置を算出する。図５に示すキー入力を行う場合には、横方向に１０種類のキーがあるため、各手に５種類のキーを割り当てる。
【００６７】
横方向位置決定部２１４は、各手領域の幅を５分割し、分割された領域に１つずつキーを割り当てる。横方向位置決定部２１４は、最下部の位置が、５分割されたどの領域に該当するかを決定する。
【００６８】
なお、分割方法については、等分に分割されてもよいし、ユーザの指の特性に合った割合に分割されてもよい。ユーザの特性に合った割合とは、例えば、ユーザの指の位置や大きさに応じて、人差し指と中指の領域を他の領域よりも広くするなどが考えられる。また、分割方法は、ユーザによりどのように分割するかを設定されていてもよい。
【００６９】
図８は、等分に分割した手領域の一例を示す図である。図８に示すように、各手領域の幅を５等分にし、各領域にキーが割り当てられる。これにより、横方向位置決定部２１４は、押下された指の横方向の位置を決定する。
【００７０】
押下された指の横方向の位置が決まると、入力キーの列候補が決定される。横方向位置決定部２１４は、決定された横方向の位置を入力キー決定部２１６に出力する。図７を例にすれば、横方向位置決定部２１４は、右手の左から２番目の領域が横方向の位置であると決定し、ｕの列を入力キー決定部２１６に出力する。
【００７１】
図３に戻り、奥行き方向位置決定部２１５は、キャリブレーション処理で、抽出部２１１が算出した閾値ＴＨを取得しておく。
【００７２】
図９は、各閾値の一例を示す図である。図９に示すように、仮想キーボードの奥行き方向を判定するため、各閾値が用いられる。図９に示す仮想キーボードは、Ｚ、Ｎの段がユーザから見て手前の段（撮影画像では下段）、Ａ、Ｈの段がユーザから見て中段（撮影画像では中段）、Ｑ、Ｙの段がユーザから見て奥の段（撮影画像では上段）になる。
【００７３】
奥行き方向位置決定部２１５は、判定部２１３により押下が判定された手領域の縦横比Ｒ'（現在の縦横比）と、押下が判定された同じ手の閾値とを比較する。例えば、右手で押下が判定されたとする。このとき、奥行き方向位置決定部２１５は、
ＲＲ'＞ＴＨＤＲ  であれば、下段
ＴＨＵＲ≦ＲＲ'≦ＴＨＤＲ  であれば、中段
ＲＲ'＜ＴＨＵＲ  であれば、上段
と判定する。
【００７４】
上記のように判断できる理由について図１０を用いながら説明する。仮想キーボードの上段のキーを入力するときは、指を前方のカメラ１０４方向に伸ばすため、手の領域が上下方向につぶれる形状となる。よって、縦横比（Ｈ（高さ）／Ｗ（幅））が小さくなる。
【００７５】
図１０Ａは、上段を操作するときの手領域の一例を示す図である。図１０Ａに示すように、縦横比Ｒが小さくなる。図１０Ａに示す例では、左手のみ、高さ（Ｈ）と幅（Ｗ）との表示を行う。図１０Ｂ、Ｃについても同様である。
【００７６】
仮想キーボードの中段のキーを入力するときは、ホームポジション時の位置と同様であるため、この場合の縦横比は、押下基準線を決定する際のＲと同様である。
【００７７】
図１０Ｂは、中段を操作するときの手領域の一例を示す図である。図１０Ｂに示すように、この場合の縦横比は、キャリブレーション時の縦横比と同様である。
【００７８】
仮想キーボードの下段を入力するときは、指がユーザ側（手前側）に移動するため、指が立つ形状となる。よって、縦横比が大きくなる。
【００７９】
図１０Ｃは、下段を操作するときの手領域の一例を示す図である。図１０Ｃに示すように、縦横比が大きくなる。
【００８０】
図１０Ａ〜Ｃに示すように、発明者らは、入力キー（ユーザが押下したとされるキー）の奥行き方向の位置により、ユーザの手領域が変化することを発見した。この発見に基づき、ユーザの手領域の縦横比を用いることで、奥行き方向の手の位置を推定することができる。
【００８１】
奥行き方向位置決定部２１５は、決定した奥行き方向（例えば、上段（Ｑ、Ｙの段）、中段（Ａ、Ｈの段）、下段（Ｚ、Ｎの段）のいずれか）を入力キー決定部２１６に出力する。
【００８２】
入力キー決定部２１６は、横方向位置決定部２１４から取得した横方向の位置と、奥行き方向位置決定部２１５から取得した奥行き方向の位置とにより、ユーザが押下したとされるキー（入力キー）を一意に決定することができる。
【００８３】
図１１は、入力キー決定の一例を示す図である。図１１に示す例では、左手による入力であり、横方向の位置がＥ列を表し、奥行き方向の位置がＡ列（中段）を現すとき、入力キーは、「Ｄ」であると決定される。
【００８４】
入力キー決定部２１６は、決定された入力キーに対応する入力コマンドを記憶部２０３に記憶する。この場合の入力コマンドは文字コードである。記憶部２０３に記憶された文字コードは、文字列として表示部１０５に出力されてもよい。
【００８５】
＜動作＞
次に、実施例１における情報処理装置１０の動作について説明する。
【００８６】
（キャリブレーション処理）
図１２は、実施例１におけるキャリブレーション処理の一例を示すフローチャートである。図１２に示すステップＳ１０１で、撮影部２０２は、ユーザの手の撮影を行う。このとき、例えば、ユーザの手は、ホームポジション時の手の形をしている。
【００８７】
ステップＳ１０２で、抽出部２１１は、撮影部２０２により撮影された画像から手領域を抽出する。
【００８８】
ステップＳ１０３で、抽出部２１１は、抽出された手領域を用いて、基準となる縦横比を算出する。抽出部２１１は、この縦横比を用いて閾値ＴＨを算出し、奥行き方向位置決定部２１５に出力しておくとよい。
【００８９】
ステップＳ１０４で、基準線決定部２１２は、抽出された手領域に基づいて、押下判定に用いられる押下基準線を算出する。基準線決定部２１２は、例えば、画像上端からの距離Ｍを算出して、画像上端からの距離Ｍの位置を押下基準線とする。これにより、キャリブレーション処理が終了する。
【００９０】
（キー入力処理）
図１３は、実施例１におけるキー入力処理の一例を示すフローチャートである。図１３に示すキー入力処理は、１フレームに対する処理である。
【００９１】
ステップＳ２０１で、撮影部２０２は、ユーザの手の撮影を行う。この場合、ユーザは、例えば机上をキーボードに見立てて、キー入力の動作を行う。
【００９２】
ステップＳ２０２で、抽出部２１１は、撮影部２０２により撮影された画像から手領域を抽出する。
【００９３】
ステップＳ２０３で、判定部２１３は、抽出された手領域の最下部と、押下基準線とを比較し、最下部が押下基準線を超えているか否かを判定する。最下部が押下基準線を超えて押下されていると判定された場合（ステップＳ２０３−ＹＥＳ）ステップＳ２０４に進み、最下部が押下基準線を超えておらず押下されていないと判定された場合（ステップＳ２０３−ＮＯ）次のフレームに移る。
【００９４】
ステップＳ２０４で、横方向位置決定部２１４は、抽出された手領域の最下部の位置に基づいて、入力キーの横方向の位置を決定する。例えば、最下部と手領域の幅の相対位置を用いて横方向位置が決定される。
【００９５】
ステップＳ２０５で、奥行き方向位置決定部２１５は、算出された縦横比Ｒ'と、閾値ＴＨとを比較し、入力キーの奥行き方向の位置を決定する。
【００９６】
ステップＳ２０６で、入力キー決定部２１６は、決定された横方向の位置と、決定された奥行き方向の位置とにより、入力キーを決定する。これにより、１フレームに対するキー入力処理が終了する。
【００９７】
（手領域抽出処理）
次に、手領域抽出処理について説明する。前述したように、手のひら部分を除去して手領域を抽出した方が、精度よく入力キー判定ができる。よって、手のひら部分を除去する手領域抽出処理の具体的な処理について図１４を用いて説明する。
【００９８】
図１４は、手領域抽出処理の一例を示すフローチャートである。ステップＳ３０１で、抽出部２１１は、画像のＲＧＢ値を、色相、彩度、明度を用いるＨＳＶ値に変換する。
【００９９】
ステップＳ３０２で、抽出部２１１は、ＨＳＶ値から肌色を抽出する。
【０１００】
ステップＳ３０３で、抽出部２１１は、抽出された肌色領域の明度Ｖが、所定の閾値より大きいか否かを判定する。所定の閾値は、実験により適切な値が設定されればよい。
【０１０１】
ステップＳ３０４で、抽出部２１１は、肌色領域を明度Ｖを用いて２値化する。例えば、抽出部２１１は、明度Ｖが閾値より大きければ「１」、明度Ｖが閾値より小さければ「０」とする。これにより、「０」の領域を除くことで、肌色領域から手のひら部分を除去することができる。抽出部２１１は、手のひら部分を除去した肌色領域を手領域としてもよい。
【０１０２】
図１４に示す処理で、指のエッジを抽出して手のひら部分を除去し、手の上面だけを抽出して手領域とすることで、手のひら部分による誤入力を防ぐことができる。また、手の上面のみを抽出することで、手のひら部分が手領域の最下部になることを防止する。
【０１０３】
なお、図１４に示す処理は、ＲＧＢ値をＨＳＶ値に変換したが、ＲＧＢ値を輝度と色差とを示すＹＵＶ値に変換してもよい。この場合、輝度Ｙを用いて閾値判定をすることで、手のひら部分を削除することができる。
【０１０４】
また、図１４に示す処理では、明度Ｖ（又は輝度Ｙ）の閾値判定を説明したが、照明環境や個々人の肌色の特性によっては、明度Ｖ（又は輝度Ｙ）の閾値判定が逆になる場合がある。さらに、手領域抽出処理で、色相Ｈや彩度Ｓ（又は色差ＵＶ）を考慮して閾値判定をしてもよい。
【０１０５】
以上、実施例１によれば、１台のカメラによる１方向からの撮影画像に基づき推定した指の３次元位置に応じてキー入力を行うことができる。また、カメラは１台でよいため、デバイスのコストを下げ、仮想キーボードによる入力装置の実装を容易にすることができる。
【０１０６】
また、実施例１によれば、手のひら部分を削除して手領域を抽出することで、手のひら部分が最下部となることによる誤入力を防ぐことができ、仮想キーボードによる入力精度を上げることができる。
【０１０７】
また、実施例１による仮想キーボードは、キーが手に追従することから、ユーザの手の可動領域を従来技術よりも広げることができ、操作感を向上させることができる。
【０１０８】
なお、表示部１０５は、撮影部２０２により撮影された画像を表示したり、記憶部２０３に記憶された文字コードに対応する文字列を表示したりしてもよい。また、表示部１０５は、撮影画像を表示する際、仮想キーボードが重畳された撮影画像を表示してもよい。仮想キーボードは、抽出部２１１により、抽出された手領域の位置に基づいて重畳されればよい。
【０１０９】
情報処理装置は、例えば、仮想キーボードの操作に対してどのように認識しているかを画面に表示する。あるいは、情報処理装置は、ユーザがタッチタイピングをすることができる場合は、仮想キーボードの操作に関する画面を表示しなくてもよい。
【０１１０】
図６，７，１０に示す例は、仮想キーボードが重畳された撮影画像の一例を示す図でもある。また、表示部１０５は、仮想キーボード全体を表示してもよいし、選択されているキーのみを表示するようにしてもよい。
【０１１１】
例えば、表示部１０５は、横方向位置決定部２１４により決定された横方向の位置（キー）又は奥行き方向位置決定部２１５により決定された奥行き方向の位置（キー）を取得し、このキーを強調表示するようにしてもよい。
【０１１２】
［実施例２］
次に、実施例２における情報処理装置について説明する。実施例２では、横方向の位置の推定処理に代わり、指の推定処理を行い、予め設定した指に対応したキー配列にする。
【０１１３】
実施例２における情報処理装置１０のハードウェア、機能の構成については、実施例１と同様であるため、実施例１と同じ符号を用いて説明する。実施例２では、横方向位置決定部２１４による横方向の位置決定処理が実施例１と異なる。
【０１１４】
＜機能＞
実施例２における情報処理装置の横方向位置決定部２１４は、爪の色を抽出し、指を推定する。また、横方向位置決定部２１４は、指にマーカー等の何らかの印を付与して、画像処理によりこのマーカーを認識して指を推定してもよい。また、手指の形状（指の先端の半円状など）の特徴量から指を推定してもよい。
【０１１５】
横方向位置決定部２１４は、手領域内の指の位置から推定して指がどの指かを特定する。例えば、左手領域の一番左の指から小指、薬指、中指、人差し指と判断される。
【０１１６】
横方向位置決定部２１４は、例えば、ホームポジション時の右手人差し指には、「Ｊ」、右手中指には「Ｋ」、左手人差し指には「Ｆ」を割り当てる。これにより、どの指が押下されたかにより、横方向におけるどのキー（横方向の位置）が押下されたかを決定することができる。
【０１１７】
なお、人差し指には２つのキーが割り当てられる。この場合、横方向位置決定部２１４は、例えば、右手人差し指の押下移動量に基づいて、「Ｊ」のキーか「Ｈ」のキーが押下されたかを特定することができる。
【０１１８】
具体的には、横方向位置決定部２１４は、押下時の右手人差し指の位置と、所定フレーム前の右手人差し指の位置との横方向の移動量を求める。この移動量により、ホームポジション位置から下に指を下ろして押下したか、斜めに指を下ろして押下したかが分かる。下に指を下ろして押下している場合は、入力キーは「Ｊ」と決定され、斜めに指を下ろして押下している場合は、入力キーは「Ｈ」と決定される。左手人差し指にも同様の決定を行う。
【０１１９】
横方向位置決定部２１４は、決定したキーの列を入力キー決定部２１６に出力する。その他の機能は、実施例１と同様である。
【０１２０】
＜動作＞
実施例２における情報処理装置の動作について説明する。実施例１と異なる処理は、図１３に示すステップＳ２０４の入力キー横方向決定処理である。
【０１２１】
実施例２では、このステップＳ２０４で、横方向位置決定部２１４は、手領域内の指を推定し、どの指が押下されたかを決定する。横方向位置決定部２１４は、決定された指、必要であれば指の位置により、横方向の入力キー（横方向の位置）を決定する。その他の処理は、実施例１と同様である。
【０１２２】
以上、実施例２によれば、押下された指がどの指であるかを推定することができ、実施例１同様の効果を得ることができる。
【０１２３】
なお、実施例２では、指推定処理を行って、横方向の位置を決定したが、実施例１の横方向の位置決定処理と組み合わせてもよい。この場合、横方向位置決定部２１４は、押下された指と、その指の手領域内の位置とに基づき、横方向の入力キーを決定する。例えば、右手人差し指が押下された指だと推定された場合、右手人差し指の位置が右手領域内のどの位置にあるかにより、入力キーが「Ｊ」か「Ｈ」かが決定される。
【０１２４】
また、実施例２における判定部２１３は、押下判定の他の方法として、次の判定方法を用いてもよい。判定部２１３は、推定された指毎に押下基準線と比較し、押下基準線を超えている指について、キーが押下されたと判定する。
【０１２５】
これにより、指毎に押下基準線と判定することで、最下部を用いる判定に比べ、複数の指による入力を一度に行うことができ、入力を高速に行うことができる。
【０１２６】
［実施例３］
次に、実施例３における情報処理装置について説明する。実施例３では、押下基準線を複数容易し、押下の誤判定を軽減する。
【０１２７】
実施例３における情報処理装置１０のハードウェア、機能の構成については、実施例１と同様であるため、実施例１と同じ符号を用いて説明する。実施例３では、基準線決定部２１２は、仮想キーボードの入力段毎に、押下基準線を決定する。
【０１２８】
＜機能＞
実施例３における情報処理装置の基準線決定部２１２は、仮想キーボードの入力段毎に押下基準線を決定する。例えば、図１２に示すキャリブレーション処理が、入力段毎に行われる。図５に示す仮想キーボードの場合、上段、中段、下段の押下基準線が決定される。
【０１２９】
基準線決定部２１２は、仮想キーボードの入力段毎に関連付けた押下基準線を判定部２１３に通知する。判定部２１３は、仮想キーボードの入力段毎に押下基準線を関連付けて記憶しておく。
【０１３０】
奥行き方向位置決定部２１５は、抽出部２１１から取得した手領域の縦横比に基づき、奥行きの位置を決定する。この場合、例えば、現在の縦横比Ｒ'が上段であると判定された場合、奥行き方向位置決定部２１５は、奥行き方向の位置として上段であることを判定部２１３に通知する。
【０１３１】
判定部２１３は、奥行き方向位置決定部２１５から、奥行き方向の位置を取得すると、その奥行き方向の位置に対応する入力段の押下基準線を用いて押下判定を行う。押下判定は実施例１と同様である。その他の機能は、実施例１と同様である。
【０１３２】
＜動作＞
次に、実施例３における情報処理装置の動作について説明する。実施例３におけるキャリブレーション処理は、仮想キーボードの入力段毎に行われる。例えば、表示部１０５によるガイダンスなどに従って、各入力段時の手領域に基づいて押下基準線が決定される。
【０１３３】
（キー入力処理）
図１５は、実施例３におけるキー入力処理の一例を示すフローチャートである。図１５に示すキー入力処理は、１フレームに対する処理である。
【０１３４】
ステップＳ４０１で、撮影部２０２は、ユーザの手の撮影を行う。この場合、ユーザは、例えば机上をキーボードに見立てて、キー入力の動作を行う。
【０１３５】
ステップＳ４０２で、抽出部２１１は、撮影部２０２により撮影された画像から手領域を抽出する。抽出された手領域からＲ'が算出される。
【０１３６】
ステップＳ４０３で、奥行き方向位置決定部２１５は、算出された縦横比Ｒ'と、閾値ＴＨとを比較し、入力キーの奥行き方向の位置を決定する。
【０１３７】
ステップＳ４０４で、判定部２１３は、決定された奥行き方向の位置に対応すると押下基準線と、抽出された手領域の最下部とを比較し、最下部が押下基準線を超えているか否かを判定する。最下部が押下基準線を超えて押下されていると判定された場合（ステップＳ４０４−ＹＥＳ）ステップＳ４０５に進み、最下部が押下基準線を超えておらず押下されていないと判定された場合（ステップＳ４０４−ＮＯ）次のフレームに移る。
【０１３８】
ステップＳ４０５で、横方向位置決定部２１４は、抽出された手領域の最下部の位置に基づいて、入力キーの横方向の位置を決定する。例えば、最下部と手領域の幅の相対位置を用いて横方向位置が決定される。
【０１３９】
ステップＳ４０６で、入力キー決定部２１６は、決定された横方向の位置と、決定された奥行き方向の位置とにより、入力キーを決定する。これにより、１フレームに対するキー入力処理が終了する。
【０１４０】
以上、実施例３によれば、１台のカメラによる１方向からの撮影画像に基づき推定した指の３次元位置に応じてキー入力を行うことができ、また、押下判定の精度を向上させることができる。
【０１４１】
［変形例］
次に、変形例について説明する。上記実施例では、インターフェースとして、キーボードを例に説明したが、メニュー選択のボタンやポイント操作にも上記各実施例を適用することができる。
【０１４２】
また、上記実施例では、３段の仮想キーボードを例にして説明したが、３段に限らず、４段、５段などでもよい。この場合、奥行き方向の閾値を、入力段が４段の場合は３つ、入力段が５段の場合は４つとそれぞれ設ければよい。
【０１４３】
変形例では、図１２〜１５に示した入力制御方法を実現するためのプログラムを記録媒体に記録することで、各実施例での処理をコンピュータシステムに実施させることができる。
【０１４４】
このように、各実施例で説明した入力制御処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、前述した入力制御処理を実現することができる。
【０１４５】
また、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータや携帯端末に読み取らせて、前述した入力制御処理を実現させることも可能である。
【０１４６】
なお、記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【０１４７】
各実施例の情報処理装置で実行されるプログラムは、前述した各部を含むモジュール構成となっている。実際のハードウェアとしては、制御部１０１が補助記憶部１０３からプログラムを読み出して実行することにより上記各部のうち１又は複数の各部が主記憶部１０２上にロードされ、１又は複数の各部が主記憶部１０２上に生成されるようになっている。
【０１４８】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した各実施例の構成要素を全部又は複数を組み合わせることも可能である。
【図１】
0005621927.tif 000002
【図２】
0005621927.tif 000003
【図３】
0005621927.tif 000004
【図４】
0005621927.tif 000005
【図５】
0005621927.tif 000006
【図６】
0005621927.tif 000007
【図７】
0005621927.tif 000008
【図８】
0005621927.tif 000009
【図９】
0005621927.tif 000010
【図１０Ａ】
0005621927.tif 000011
【図１０Ｂ】
0005621927.tif 000012
【図１０Ｃ】
0005621927.tif 000013
【図１１】
0005621927.tif 000014
【図１２】
0005621927.tif 000015
【図１３】
0005621927.tif 000016
【図１４】
0005621927.tif 000017
【図１５】
0005621927.tif 000018