(57)【要約】【課題】カメラで、使用者の両手の位置が移動しても正しく両手のキー入力動作を検出できるバーチャルキーボードの入力方法を提供する。【解決手段】左右の手の画像を細線化して画像の端点から指先位置を求めるステップＳ７と、左右の手の画像を細線化した画像の分岐点の位置、及び指先位置を特徴点として取得するステップＳ１０と、左右の手の画像の変化に追従させて分岐点の位置から指先位置までの長さと傾斜角度を計算して各指に沿わせて各々の矩形枠を描画し、その際に曲げられていない場合の指先の少なくとも一部が外にはみ出るように各矩形枠を描画するステップＳ１１と、各矩形枠で略指幅方向に描画された指先側の短辺の外側における指の肌色画素の有無により、各指の指先位置が少なくとも各矩形枠の内か外かを検出するステップＳ１２と、矩形枠内に指先位置がある指の指先位置と、バーチャルキーボードの各入力キー領域とから入力キーを推定するステップＳ１３を含む処理を実行するバーチャルキーボードシステムの入力方法。【選択図】図４
2014165660.tif 000002
【特許請求の範囲】
【請求項１】
左右の手の画像を撮像可能に設置された少なくとも１台のカメラと、前記カメラから入力する左右の手の画像から入力キーを推定する情報処理装置とを含むバーチャルキーボードシステムの入力方法であって、
前記情報処理装置は、
前記左右の手の重心位置を計算するステップを含む処理を実行し、
入力キーを推定するステップでは、前記重心位置を手の位置とし、当該位置の情報を用いてバーチャルキーボードの各入力キー領域から入力可能なキーを絞込んで入力キーを推定する
ことを含む処理を実行することを特徴とするバーチャルキーボードの入力方法。
【請求項２】
前記情報処理装置は、さらに
前記左右の手の画像を細線化して画像の端点から指先位置を求めるステップと、
前記左右の手の画像を細線化した画像の分岐点の位置、及び前記指先位置を特徴点として取得するステップと、
前記左右の手の画像の変化に追従させて前記分岐点の位置から前記指先位置までの長さと傾斜角度を計算して各指に沿わせて各々の矩形枠を描画し、その際に曲げられていない場合の指先の少なくとも一部が外にはみ出るように前記各矩形枠を描画するステップと、
前記各矩形枠で略指幅方向に描画された指先側の短辺の外側における指の肌色画素の有無により、前記各指の指先位置が少なくとも各矩形枠の内か外かを検出するステップと、
前記矩形枠内に指先位置がある指の指先位置と、前記バーチャルキーボードの各入力キー領域とから入力キーを推定するステップ
を含む処理を実行することを特徴とする請求項１に記載のバーチャルキーボードの入力方法。
【請求項３】
前記情報処理装置は、さらに
前記左右の手の画像の輪郭線から左右手首の位置を検出するステップと、
前記左右手首よりも先の左右の手を処理対象領域として設定するステップ
を含む処理を実行することを特徴とする請求項１又は２に記載のバーチャルキーボードの入力方法。
【請求項４】
前記情報処理装置は、さらに
前記左右の手の画像の輪郭線から各前腕の角度を求め、
入力キーを推定するステップでは、前記各前腕の角度と前記重心位置により各指の位置を推定し、当該各指の位置の情報を用いて前記バーチャルキーボードの各入力キー領域から入力可能なキーを絞込んで入力キーを推定する
ことを特徴とする請求項３に記載のバーチャルキーボードの入力方法。
【請求項５】
前記情報処理装置は、さらに
前記左右の手の画像の輪郭線から各手の大きさを求め、
入力キーを推定するステップでは、当該各手の大きさの情報を用いて前記バーチャルキーボードの各入力キー領域の範囲を拡大又は縮小してから入力可能なキーを絞込んで入力キーを推定する
ことを特徴とする請求項３又は４に記載のバーチャルキーボードの入力方法。
【請求項６】
前記情報処理装置は、さらに
前記指先位置が５個得られない場合に前記輪郭線から指先位置を求めるステップ
を含む処理を実行することを特徴とする請求項１〜５の何れか１項に記載のバーチャルキーボードの入力方法。
【請求項７】
前記情報処理装置は、さらに
前記各矩形枠を描画するステップでは、前記各矩形枠の内部に、前記指先側の短辺と同様に略指幅方向に少なくとも１本の短辺を追加して描画し、
前記各指の指先位置が各矩形枠内か外かを検出するステップでは、さらに前記各矩形枠内部に追加された少なくとも１本の短辺の外側における指の肌色画素の有無により、前記各指の指先位置が各矩形枠において前記追加された短辺の内か外かを検出し、
入力キーを推定するステップでは、前記指先側の短辺の外側に指の肌色画素が無い場合の前記入力キーと、前記追加された短辺の外側に指の肌色画素が無い場合の前記入力キーとでは異なる入力キーを推定する
ことを特徴とする請求項１〜６の何れか１項に記載のバーチャルキーボードの入力方法。
【請求項８】
前記情報処理装置は、さらに
前記各矩形枠を描画するステップでは、前記追加された短辺は複数であり、
前記各指の指先位置が各矩形枠内か外かを検出するステップでは、指先側から順に各短辺の外側における指の肌色画素の有無により、前記各指の指先位置が各短辺の内か外かを検出し、
入力キーを推定するステップでは、前記指先側の短辺及び前記追加された各短辺の外側における指の肌色画素の有無により、各々異なる入力キーを推定する
ことを特徴とする請求項７に記載のバーチャルキーボードの入力方法。
【請求項９】
前記情報処理装置は、さらに
入力キーを推定するステップでは、前記指先側の短辺による前記入力キーの推定から、最後の前記追加された短辺による前記入力キーの推定までの時間が所定時間内であり、左右の手の画像及び複数の入力キー領域が配置されたバーチャルキーボード画像を使用者に目視可能に出力する画像出力装置画像出力装置にキャプチャされた画像から推定された回数が最も多いキーを入力キーとして推定する
ことを特徴とする請求項７又は８に記載のバーチャルキーボードの入力方法。
【請求項１０】
前記情報処理装置は、さらに
前記画像出力装置に前記左右の手の画像及びバーチャルキーボード画像を使用者に目視可能に出力する際に、前記入力キーを推定するステップで推定されたキーについては、バーチャルキーボード画像内の当該キー画像領域についての色反転処理、線部分又は背景の色変更処理、線部分の太さ変更処理、背景画像追加処理を含む強調のための画像処理から少なくとも一つを実行する
ことを特徴とする請求項１〜９の何れか１項に記載のバーチャルキーボードの入力方法。
【請求項１１】
前記情報処理装置は、さらに
前記画像出力装置に前記左右の手の画像及びバーチャルキーボード画像を使用者に目視可能に出力する際に、前記左右の手の重心位置により、前記バーチャルキーボードにおける前記左右の手で入力可能なキーについて、当該キー画像領域についての色反転処理、線部分又は背景の色変更処理、線部分の太さ変更処理、背景画像追加処理を含む強調のための画像処理から少なくとも一つを実行する
ことを特徴とする請求項１〜１０の何れか１項に記載のバーチャルキーボードの入力方法。
【請求項１２】
前記情報処理装置は、さらに
前記画像出力装置に前記左右の手の画像及びバーチャルキーボード画像を使用者に目視可能に出力する際に、前記入力キーを推定するステップで推定されたキーについては、バーチャルキーボード画像とは別個の文字出力画面に当該キーを表示する
ことを特徴とする請求項１〜１１の何れか１項に記載のバーチャルキーボードの入力方法。
【請求項１３】
請求項１〜１２の何れか一つのバーチャルキーボードの入力方法における各ステップを実施するプログラム。
【請求項１４】
請求項１３のプログラムを記憶する記憶媒体。
【請求項１５】
左右の手の画像を撮像可能に設置された少なくとも１台のカメラと、
前記左右の手の画像及び複数の入力キー領域が配置されたバーチャルキーボード画像を使用者に目視可能に出力する画像出力装置と、
前記カメラから入力する左右の手の画像及び前記バーチャルキーボード画像とから入力キーを推定する情報処理装置と
を含んで構成され、
前記情報処理装置は、
請求項１３のプログラムがインストールされたプログラム記憶部と、
前記プログラムを実行可能にするための構成を含む
ことを特徴とするバーチャルキーボードシステム。
【請求項１６】
左右の手の画像を撮像可能に設置された少なくとも１台のカメラと、
前記左右の手の画像及び複数の入力キー領域が配置されたバーチャルキーボード画像を使用者に目視可能に出力する画像出力装置と、
前記カメラから入力する左右の手の画像及び前記バーチャルキーボード画像とから入力キーを推定する情報処理装置と
を含んで構成され、
前記情報処理装置は、
前記左右の手の画像を細線化する細線化部と、
前記細線化された画像から端点と分岐点を特徴点として検出する特徴点検出部と、
前記端点又は前記左右の手の画像の輪郭線から指先位置を検出する指先位置検出部と、
前記左右の手の画像の変化に追従させて前記分岐点の位置から前記指先位置までの長さと傾斜角度を計算して各指に沿わせて各々の矩形枠を描画し、その際に曲げられていない場合の指先の少なくとも一部が外にはみ出るように前記各矩形枠を描画する矩形枠描画部と、
前記各矩形枠で略指幅方向に描画された指先側の短辺の外側における指の肌色画素の有無により、前記各指の指先位置が少なくとも各矩形枠の内か外かを検出する枠内指先位置検出部と、
前記矩形枠内に指先位置がある指の指先位置と、前記バーチャルキーボードの各入力キー領域とから入力キーを推定する入力キー推定部と
を有することを特徴とするバーチャルキーボードシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジェスチャー入力でキー入力するバーチャルキーボードシステムに関し、特に一台のカメラで撮像した使用者の指先を正確に検出してキー入力の精度を高めたバーチャルキーボードシステムに関する。
【背景技術】
【０００２】
従来から情報機器への入力を行う入力インタフェースとして「バーチャルキーボード」が知られている。バーチャルキーボードは、実際のキーボードではなく机上、画像出力装置上あるいは仮想空間上に表示（又は空間に定義）されたキーボードに対して、その表示（又は空間に定義）されたキーボードを打つストロークのジェスチャー入力動作を検出することにより入力する装置である。換言すれば、バーチャルキーボードは、実体のキーボードが使えないか、あるいは使いにくい環境において、キーボードを入力する動作を任意平面又は空中で行うことにより、目的のキーの入力を意図通りに行うことを可能にする光学式のキーボードである。本物のキーボードが使いにくい環境とは、例えば、キーボードを置くスペースが無い場合や、３Ｄディスプレイに向かって入力操作を行う場合である。特に、３Ｄディプレイを使って入力操作を行う３Ｄデスクトップマネージャーの場合には、本物のキーボードの代わりにバーチャルキーボードを使用してジェスチャー入力する方が使い勝手がよくなる。
【０００３】
バーチャルキーボードを大まかに分類すると以下の４方式に分類できる。
（イ）使用者の腕や手指に装置を装着し、手指のジェスチャー入力動作を認識する、機器装着方式（例えば、非特許文献１、２参照）。
（ロ）使用者の機器装着は不要だが、キーボード投影面と、カメラ撮像画像から手指のジェスチャー入力動作を認識する、投影有り画像処理方式（例えば、非特許文献３、４参照）、
（ハ）使用者の機器装着が不要で、キーボードの投影も不要で、カメラ撮像画像のみで１本指キーのジェスチャー入力動作を認識する、投影無し単指画像処理方式（例えば、非特許文献５、６参照）。
【０００４】
（ニ）以上の（１）〜（３）の方式に当てはまらない（キーボードの投影無し、腕や手指への機器装着が無く、全指の画像を認識）ジェスチャー入力動作を認識する方式（例えば、非特許文献７参照）。より具体的には、例えば実際のキーボードに類似するバーチャルキーボードシステムを設定して各指にホームポジションと各指の移動先の位置に複数のキーを割り当てる。その一方で、カメラで撮像した手の画像にエッジ処理等で用いられる細線化処理を用いて擬似的な骨格化処理を施し、その骨格化された細線の先端を指先と設定する。そして、手の画像中の移動した指先の位置が割り当てられたキーの位置と一致して、例えば３フレーム以上経過した場合にキーが入力として検出する。つまり、指ごとに入力できるキーを割り当て、ホームポジションからの指先の移動が所定期間（３フレーム）以上でキー入力を判断する。なお、細線化の際の指先以外のノイズの先端については手の重心座標からの距離が一致値以内は無効として排除している。
【０００５】
なお、従来の一般的なジェスチャー入力は、カメラで使用者を撮像した手指画像の輪郭線形状から、３次元手指形状推定（hand pose estimation）等を用いて手の移動方向や移動量（hand tracking）を検出する。しかし、「手の形や姿勢」をカメラで撮像した画像中から検出する場合、以下の（ａ）、（ｂ）、（ｃ）の３点から、輪郭線形状により、手指形状、手の形や姿勢を正確に推定する事は困難であることが知られている。
（ａ）手指は、多関節構造であるため形状変化が複雑である点。
（ｂ）手指は、関節を曲げたり、握った場合に、輪郭線形状としては手の甲や手のひらに手指が隠れてしまう自己遮蔽が多い点。
（ｃ）手指は、身体全体に対する部位の占める比率は小さいが、可動空間が広い点。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】福本雅朗、 平岩明、 曽根原登：“ウェアラブルコンピュータ用キーボード”、電子情報通信学会論文誌。Ａ、基礎・境界 J79-A(2)、 460-470、1996-02-25。
【非特許文献２】藤本昌宏、井村誠孝、安室喜弘、眞鍋佳嗣、千原國宏：“小型カメラと傾斜センサを用いたバーチャルキーボード”日本バーチャルリアリティ学会論文誌9(4)、413-422、2004-12-31。
【非特許文献３】バーチャルキーボードＶＫＢ（製造元i-Tech Dynamic）の製品紹介記事：http://park16.wakwak.com/~ex4/kb/main_vkb.htm
【非特許文献４】Typing in thin air: the Canesta Projection Keyboard - a new method of interaction with electronic devices: CHI '03 Extended Abstract on Human Factors in Computing Systems Pages 712-713、 ACM New York、 NY、 USA c2003: http://delivery.acm.org/10.1145/770000/765944/p712-roeber.pdf?ip=130.158.95.176&acc=ACTIVE%20SERVICE&CFID=274451767&CFTOKEN=30972174&__acm__=1360300133_fb6b1b811dacaa375dc65a5224df46fc
【非特許文献５】廣部祐樹、船橋一訓、新倉雄大、渡辺義浩、小室孝、石川正俊：“単眼カメラを用いた携帯機器向け空中タイピングインターフェース（インタラクティブシステム・画像入力デバイス・方式、及び一般）”映像情報メディア学会技術報告33、65-68、2009-06-15
【非特許文献６】村磯友子、小川賀代、小室孝：“携帯機器向け三次元ジェスチャインターフェースにおける主成分分析を用いた入力動作識別(インタラクティブシステム・画像入力デバイス・方式、及び一般)” 映像情報メディア学会技術報告36(21)、9-12、2012-06-04
【非特許文献７】松井望、 山本喜一： “バーチャルキーボード：ビデオ画像からの頑健な実時間指先検出の実現” 日本ソフトウェア科学会  第３回プログラミングおよび応用のシステムに関するワークショップＳＰＡ２０００  オンライン論文集  ３月２１日（火）セッション８：データベースとアプリケーション：http://www.jaist.ac.jp/SPA2000/proceedings/matsui.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記（イ）の方式は腕や手指に装置を装着するので使用者を拘束して動作が制限され、上記（ロ）の方式は使用者が起立した状態では使用し難く、投射面となる平坦な机等が必須で入力が制限され、上記（ハ）の方式は画像処理方式である点では好ましいが一本指キー入力では入力効率が悪くなるという問題があった。
【０００８】
また、上記（ニ）の方式は、手全体の移動に伴う指先の移動と、タイピングによる指先の移動との判別が困難であるので、例えばバーチャルキーボード入力時に体動があったり、作業休憩等の中断や他の動作を間に挟む等により手全体が移動して手の指先位置がホームポジションから少しでも移動した場合にはキー認識が困難になっていた。そのため、使用者が机上等で一度ホームポジションを決めるとそこから手を動かせないので、表示画像内で自由に手を動かしキーを入力することができず、また使用者が３Ｄディプレイを使って入力操作を行う場合には、空中にかざした手の位置を動かすことができないという問題があった。
【０００９】
また、上記（ニ）の方式は、指先検出時に指間の影、机上の他の物体や汚れ等の指先以外のノイズの影響を充分に除去できず指先が正しく検出できないため、使用者が意図しない誤認識と同じキーが続く重複認識等の過剰な認識が多かった。また、指ごとに入力に使用できるキーが割り当てられているので、割り当てられた指以外では、目的のキー入力ができなかった。従って、初心者には、入力時に目的のキーを探すだけでなく、どの指に目的のキーが割り当てられているかを探しながら入力する必要があり、実体のキーボードよりも入力動作が煩雑であった。
【００１０】
また、従来の一般的なジェスチャー入力については、３次元手指形状推定をより正確にして、例えば、手の移動方向や移動量を検出するだけでなく、その手を検出する技術を利用して「手の形や姿勢」を検出して、ジェスチャー入力動作に対応させることが要望されている。
【００１１】
そこで本発明は、上記の課題を解決するために、少なくとも１台のカメラで、使用者の両手の位置が移動しても正しく両手のキー入力動作を検出できるバーチャルキーボードの入力方法、プログラム、記憶媒体、及びバーチャルキーボードシステムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
（１）上記課題を解決するために、本発明に係るバーチャルキーボードの入力方法は、左右の手の画像を撮像可能に設置された少なくとも１台のカメラと、カメラから入力する左右の手の画像とから入力キーを推定する情報処理装置とを含むバーチャルキーボードシステムの入力方法であって、情報処理装置は、左右の手の重心位置を計算するステップを含む処理を実行し、入力キーを推定するステップでは、重心位置を手の位置とし、当該位置の情報を用いてバーチャルキーボードの各入力キー領域から入力可能なキーを絞込んで入力キーを推定することを特徴とする。
本バーチャルキーボードの入力方法では、重心位置を計算して手の位置とした位置情報を用いて入力可能なキーを絞込んで入力キーを推定するので、入力可能なキーの絞込み精度を高めることができる。
【００１３】
（２）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに左右の手の画像を細線化して画像の端点から指先位置を求めるステップと、左右の手の画像を細線化した画像の分岐点の位置、及び指先位置を特徴点として取得するステップと、左右の手の画像の変化に追従させて分岐点の位置から指先位置までの長さと傾斜角度を計算して各指に沿わせて各々の矩形枠を描画し、その際に曲げられていない場合の指先の少なくとも一部が外にはみ出るように各矩形枠を描画するステップと、各矩形枠で略指幅方向に描画された指先側の短辺の外側における指の肌色画素の有無により、各指の指先位置が少なくとも各矩形枠の内か外かを検出するステップと、矩形枠内に指先位置がある指の指先位置と、バーチャルキーボードの各入力キー領域とから入力キーを推定するステップを含む処理を実行するようにしてもよい。
【００１４】
本バーチャルキーボードの入力方法では、手の画像の変化に追従させて描画される各矩形枠の短辺の外側における指の肌色画素（モノクロ画像の場合は肌色相当の階調の画素）の有無により指先位置を検出して、バーチャルキーボード画像から入力キーを推定するので、使用者の両手の位置が移動しても正しく両手のキー入力動作を検出できる。また、本バーチャルキーボードの入力方法では、指毎に手の動きに追従する矩形枠を設定し、各矩形枠内の指先位置を検出することで、手の移動とタイピング動作による指先の移動を区別することができ、手の位置が変化しても入力が可能となる。そのため画像内における手の位置情報から精度の高い指先位置情報を得ることができ、例えば３次元空間内で手の位置が変化しても入力が可能となるので、２次元平面ディスプレイ上に手とバーチャルキーボードを出力する場合に限らず、３次元の平面ディスプレイやヘッドマウントディスプレイ上に手とバーチャルキーボードを出力してキー入力することができる。
【００１５】
（３）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに左右の手の画像の輪郭線から左右手首の位置を検出するステップと、左右手首よりも先の左右の手を処理対象領域として設定するステップを含む処理を実行するようにしてもよい。
本バーチャルキーボードの入力方法では、手首よりも先の左右の手を処理対象領域として設定することで前腕により重心位置の誤差を減少させることができる。そのため、入力可能なキーの絞込み精度さらに高めることができる。
【００１６】
（４）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに左右の手の画像の輪郭線から各前腕の角度を求め、入力キーを推定するステップでは、各前腕の角度と重心位置により各指の位置を推定し、当該各指の位置の情報を用いてバーチャルキーボードの各入力キー領域から入力可能なキーを絞込んで入力キーを推定するようにしてもよい。
本バーチャルキーボードの入力方法では、各前腕の角度を求め、各前腕の角度と重心位置により各指の位置を推定するので、各前腕の角度による各指の位置の誤差を軽減できる。そのため、入力可能なキーの絞込み精度さらに高めることができる。
【００１７】
（５）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに左右の手の画像の輪郭線から各手の大きさを求め、入力キーを推定するステップでは、当該各手の大きさの情報を用いてバーチャルキーボードの各入力キー領域の範囲を拡大又は縮小してから入力可能なキーを絞込んで入力キーを推定するようにしてもよい。
本バーチャルキーボードの入力方法では、各手の大きさを求め、バーチャルキーボードの各入力キー領域の範囲を拡大又は縮小する。そのため、入力可能なキーの絞込み精度さらに高めることができる。
【００１８】
（６）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに指先位置が５個得られない場合に輪郭線から指先位置を求めるステップを含む処理を実行するようにしてもよい。
本バーチャルキーボードの入力方法では、指先位置が５個得られない場合に輪郭線から指先位置を求める。そのため、指先位置の位置精度を高めることができ、入力可能なキーの絞込み精度を高めることができる。
【００１９】
（７）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに各矩形枠を描画するステップでは、各矩形枠の内部に、指先側の短辺と同様に略指幅方向に少なくとも１本の短辺を追加して描画し、各指の指先位置が各矩形枠内か外かを検出するステップでは、さらに各矩形枠内部に追加された少なくとも１本の短辺の外側における指の肌色画素の有無により、各指の指先位置が各矩形枠において追加された短辺の内か外かを検出し、入力キーを推定するステップでは、指先側の短辺の外側に指の肌色画素が無い場合の入力キーと、追加された短辺の外側に指の肌色画素が無い場合の入力キーとでは異なる入力キーを推定するようにしてもよい。
本バーチャルキーボードの入力方法では、各矩形枠の内部に短辺を追加して描画し、当該短辺の外側における指の肌色画素の有無によって、異なる入力キーを推定する。そのため、一本の指に対して２個の異なる入力キーを推定させることができる。
【００２０】
（８）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに各矩形枠を描画するステップでは、追加された短辺は複数であり、各指の指先位置が各矩形枠内か外かを検出するステップでは、指先側から順に各短辺の外側における指の肌色画素の有無により、各指の指先位置が各短辺の内か外かを検出し、入力キーを推定するステップでは、指先側の短辺及び追加された各短辺の外側における指の肌色画素の有無により、各々異なる入力キーを推定するようにしてもよい。
本バーチャルキーボードの入力方法では、各矩形枠の内部に複数の短辺を追加して描画し、当該各短辺の外側における指の肌色画素の有無によって、各々異なる入力キーを推定する。そのため、一本の指に対して３個以上の異なる入力キーを推定させることができる。
【００２１】
（９）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに入力キーを推定するステップでは、指先側の短辺による入力キーの推定から、最後の追加された短辺による入力キーの推定までの時間が所定時間内であり、左右の手の画像及び複数の入力キー領域が配置されたバーチャルキーボード画像を使用者に目視可能に出力する画像出力装置にキャプチャされた画像から推定された回数が最も多いキーを入力キーとして推定するようにしてもよい。
本バーチャルキーボードの入力方法では、入力キーの推定時間を所定時間内としてその時間内の推定回数により入力キーとして推定する。そのため、入力キーの推定精度を高めることができる。
【００２２】
（１０）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに画像出力装置に左右の手の画像及びバーチャルキーボード画像を使用者に目視可能に出力する際に、入力キーを推定するステップで推定されたキーについては、バーチャルキーボード画像内の当該キー画像領域についての色反転処理、線部分又は背景の色変更処理、線部分の太さ変更処理、背景画像追加処理を含む強調のための画像処理から少なくとも一つを実行するようにしてもよい。
本バーチャルキーボードの入力方法では、推定されたキーを強調させて画像出力装置に出力する。そのため、推定されたキーの視認性を高めることができる。
【００２３】
（１１）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに画像出力装置に左右の手の画像及びバーチャルキーボード画像を使用者に目視可能に出力する際に、左右の手の重心位置により、バーチャルキーボードにおける左右の手で入力可能なキーについて、当該キー画像領域についての色反転処理、線部分又は背景の色変更処理、線部分の太さ変更処理、背景画像追加処理を含む強調のための画像処理から少なくとも一つを実行するようにしてもよい。
本バーチャルキーボードの入力方法では、左右の手で入力可能なキーを強調させて画像出力装置に出力する。そのため、左右の手で入力可能なキーの視認性を高めることができる。
【００２４】
（１２）好ましくは、本発明に係るバーチャルキーボードの入力方法では、情報処理装置は、さらに  画像出力装置に左右の手の画像及びバーチャルキーボード画像を使用者に目視可能に出力する際に、入力キーを推定するステップで推定されたキーについては、バーチャルキーボード画像とは別個の文字出力画面に当該キーを表示するようにしてもよい。
本バーチャルキーボードの入力方法では、推定されたキーを別個の文字出力画面に表示する。そのため、キー入力の確認が容易で入力効率を高めることができる。
【００２５】
（１３）上記課題を解決するために、本発明に係るプログラムは、上記した何れか一つのバーチャルキーボードの入力方法における各ステップを実施する。
本プログラムでは、プログラムにより情報処理装置で上記何れか一つのバーチャルキーボードの入力方法における各ステップを実行させることで、任意の情報処理装置を利用して、カメラにより撮像された撮像画像データから本発明のバーチャルキーボードの入力方法で、任意の使用者に対して使用者の両手の位置が移動しても正しく両手のキー入力動作を検出でき、入力キーの推定精度を高めることができる。
【００２６】
（１４）上記課題を解決するために、本発明に係る記憶媒体は、上記したプログラムを記憶する。
本記憶媒体では、記憶媒体に本発明に係るプログラム記憶させることで、プログラムに可搬性を持たせて、記憶媒体を移動させるのみで、異なる場所の任意の情報処理装置で、本発明に係るバーチャルキーボードの入力方法を実行することができる。
【００２７】
（１５）上記課題を解決するために、本発明に係るバーチャルキーボードシステムは、左右の手の画像を撮像可能に設置された少なくとも１台のカメラと、左右の手の画像及び複数の入力キー領域が配置されたバーチャルキーボード画像を使用者に目視可能に出力する画像出力装置と、カメラから入力する左右の手の画像及びバーチャルキーボード画像とから入力キーを推定する情報処理装置とを含んで構成され、情報処理装置は、上記したプログラムがインストールされたプログラム記憶部と、プログラムを実行可能にするための構成を含むことを特徴とする。
【００２８】
本バーチャルキーボードシステムは、上記したプログラムを実行できるので、手の画像の変化に追従させて描画される各矩形枠の短辺の外側における指の肌色画素の有無により指先位置を検出して、バーチャルキーボード画像から入力キーを推定することから、使用者の両手の位置が移動しても正しく両手のキー入力動作を検出できる。
【００２９】
（１６）上記課題を解決するために、本発明に係るバーチャルキーボードシステムは、左右の手の画像を撮像可能に設置された少なくとも１台のカメラと、左右の手の画像及び複数の入力キー領域が配置されたバーチャルキーボード画像を使用者に目視可能に出力する画像出力装置と、カメラから入力する左右の手の画像及びバーチャルキーボード画像とから入力キーを推定する情報処理装置とを含んで構成され、情報処理装置は、左右の手の画像を細線化する細線化部と、細線化された画像から端点と分岐点を特徴点として検出する特徴点検出部と、端点又は左右の手の画像の輪郭線から指先位置を検出する指先位置検出部と、左右の手の画像の変化に追従させて分岐点の位置から指先位置までの長さと傾斜角度を計算して各指に沿わせて各々の矩形枠を描画し、その際に曲げられていない場合の指先の少なくとも一部が外にはみ出るように各矩形枠を描画する矩形枠描画部と、各矩形枠で略指幅方向に描画された指先側の短辺の外側における指の肌色画素の有無により、各指の指先位置が少なくとも各矩形枠の内か外かを検出する枠内指先位置検出部と、矩形枠内に指先位置がある指の指先位置と、バーチャルキーボードの各入力キー領域とから入力キーを推定する入力キー推定部とを有することを特徴とする。
【００３０】
本バーチャルキーボードシステムは、汎用の情報処理装置を用いて、手の画像の変化に追従させて描画される各矩形枠の短辺の外側における指の肌色画素の有無により指先位置を検出して、バーチャルキーボード画像から入力キーを推定するので、使用者の両手の位置が移動しても正しく両手のキー入力動作を検出できる。
【発明の効果】
【００３１】
本発明のバーチャルキーボードの入力方法、プログラム、記憶媒体、及びバーチャルキーボードシステムによれば、画像出力装置を用いて装置上又はバーチャル空間に画像処理方式で表示させ、少なくとも１台のカメラで、使用者の両手の位置が移動しても正しく両手のキー入力動作を検出できる。
【図面の簡単な説明】
【００３２】
【図１】本発明に係るバーチャルキーボードシステムの一例の概略構成を示す図である。
【図２】本発明に係るバーチャルキーボードの表示の一例を示す図である。
【図３】第１実施形態の概略の構成の一例を示すブロック図である。
【図４】本発明に係る第１実施形態の概略の入力キー推定方法を示すフローチャートである。
【図５】第１実施形態の二値化された手の画像の左右の分離と、輪郭線処理と、ポリライン近似による単純化により線分同士の角度変化で手首位置を求められることを示す図である。
【図６】第１実施形態の二値化された手の画像の細線化と輪郭線を示す図である。
【図７】手の画像への矩形枠の描画合成を示す図である。
【図８】矩形枠による指先の検出を示す図である。
【図９】バーチャルキーボード上の推定されたキーを示す図である。
【図１０】タイピング速度と検出の関係を調べる実験結果を示す図である。
【図１１】タイピング速度と検出の関係を調べる実験結果を示す図である。
【図１２】実験回数と正答率又は入力時間の関係を調べる実験結果を示す図である。
【発明を実施するための形態】
【００３３】
＜システム概要＞
図１、２及び３を用いて本発明のバーチャルキーボードシステムの概要について説明する。図１（ａ）は、本発明に係るバーチャルキーボードシステムの一例として、ヘッドマウントディスプレイの画像出力装置１５０により空間上に３Ｄ投影されたバーチャルキーボード画像９００等を示す図である。本図は、本発明のバーチャルキーボードシステムを用いれば、空間座標でバーチャルキーボード画像９００の位置と両手画像の位置を検出することで、空間上に３Ｄ投影されたバーチャルキーボード画像９００でも入力が可能であることを示している。なお、画像出力装置１５０は、例えば手指をホームポジションからほとんど動かさない使用者が使用する場合には必要ない。
【００３４】
図１（ｂ）は、本発明に係るバーチャルキーボードシステムの実際的な一例として、机上の上側空間に固定（環境設置型）されたカメラ１００により撮像された使用者の両手画像２００（左手画像２１０と右手画像２２０）とバーチャルキーボード画像９００をフラットディスプレイの画像出力装置１５０上に表示させた状態を示す図である。カメラ１００は、使用者がフラットディスプレイの正面で、ディスプレイに向かって手を伸ばした時に、かざした両手が画像内に入るようにしてジェスチャー入力を行うことを想定して、机上にかざした両手の上側空間であって、使用者の両手画像２００（左手画像２１０と右手画像２２０）を撮像できる位置に設置されている。また、机上の両手の下には黒幕を敷いて、肌色の両手の前景に対する黒色の単色背景となるようにした。なお、本発明は、原理的にはモノクロカメラでも実施可能であるが、カラーカメラの方が両手の検出により好ましいためカラーカメラを用いた。
バーチャルキーボード画像９００は、数十個の入力キーが並べられており、キーの位置に対応する領域を指でタイプする動作が検出されることによって、当該入力キーの文字を入力することが可能である。本発明のバーチャルキーボード画像９００は、熟練者にはブラインドタッチを可能にするが、初心者には、各指にキーを割り当てて指毎に入力するキーを探させることなく、任意の指で目的のキーを入力することが可能である。
【００３５】
また、本発明の情報処理装置１については、机の下等に設置されているため図１（ｂ）には示されていないがカメラ１００と画像出力装置１５０に接続されている。両手画像２００の上には文字出力部２０１が示される。図１（ｃ）は、図１（ｂ）のカメラ１００と画像出力装置１５０を正面から見た図である。本発明のシステムは、例えば、画像のキャプチャサイズは640×480ピクセル、キャプチャレートは30fpsとし、システムの動作レートは10〜13fpsである。情報処理装置１の動作プログラムは、プログラム記憶部６１に格納される。
【００３６】
図２（ａ）は、図１（ｂ）に示された画像出力装置１５０に表示された両手画像２００（左手画像２１０と右手画像２２０）のみを拡大して表示した図である。図２（ｂ）は、図１（ｂ）に示された画像出力装置１５０に表示された両手画像２００（左手画像２１０と右手画像２２０）にバーチャルキーボード画像９００の一例を合成した場合を拡大して表示した図である。
【００３７】
図３は本発明に係るバーチャルキーボードシステムの概略の構成の一例として、カメラ１００と画像出力装置１５０、及びそれらに接続される情報処理装置１の内部構成を示すブロック図である。なお、図３において情報処理装置１は、一般的なパーソナルコンピュータ／サーバ等の情報処理装置であり、その内部構成の各ブロックは、本発明の説明のために関係する要素のみを抽出した一例の構成であり、その他の要素は記載を省略されている。従って、本発明に係る情報処理装置１は、以下と同様な情報処理が可能であれば、図３に示された構成に限られるものではない。
【００３８】
カメラ１００は、設置されており、情報処理装置１に接続されている。カメラ１００で撮像された画像は、情報処理装置１に送出される。情報処理装置１では、図２（ｂ）のような両手画像２００とバーチャルキーボード画像９００を合成し、その画像を表示装置２００に送出する。本発明では、両画像を合成する際に、両画像から曲げた指による入力キーの推定処理を行い、バーチャルキーボード９００からの入力として、当該推定された入力キーを画像出力装置１５０に、画像又は文字で表示させる。
【００３９】
＜情報処理装置における入力キーの推定処理＞
図４のフローチャートの各ステップに基づき、図３の情報処理装置１の内部ブロックを参照しながら、本発明のバーチャルキーボードシステムの動作の流れの概要について説明する。
【００４０】
（ステップＳ１：両手画像の撮像処理）
図１（ｂ）、（ｃ）に示したように、使用者の両手画像２００（左手画像２１０と右手画像２２０）を撮像可能に設置されたカメラ１００は、図２（ａ）に示したような両手画像２００を撮像する。撮像された両手の画像データは、カメラ１００から情報処理装置１に入力される。
【００４１】
（ステップＳ２：入力画像の二値化処理）
キーボードでの入力動作の性質上、左右の手が重なる、または交差するといった状況にはならないと考えられる
情報処理装置１に入力した両手の画像データは、画像データ記憶部１１に一旦格納され、さらに画像二値化部１２で、図５（ａ）の上段に示したような二値化両手画像２３０となる。二値化処理では、例えば、元の両手の画像における肌色の手が前景領域として白抜きされた白領域になり、後の机上の画像が背景領域として黒く塗りつぶされた黒領域となって、白領域と黒領域のみの両手の二値化両手画像２３０が得られる。
【００４２】
（ステップＳ３：左右手領域の分離処理）
左右手領域分離部１３では、両手の二値化両手画像２３０を、図５（ａ）の下段に示したような二値化左手画像２４０と二値化右手画像２５０に分離する。例えば、左右手領域分離部１３は、二値化両手画像２３０の白抜きされた前景領域に対してラベリング処理を行い、左右に分離された前景領域のうちの右側にある前景領域を二値化右手画像２５０とし、左側にある前景領域を二値化左手画像２４０として、左右の手領域の画像を二枚作成するようにして分離を行う。なお、ステップＳ４以降は左右の手領域の二枚の画像について同じ処理を２回行うことになるが、二枚の画像について同じ処理を２回記載すると煩雑になるため、以降の処理については二値化右手画像２５０のみを代表として説明する。
【００４３】
（ステップＳ４：手首位置の検出処理）
次に輪郭線検出部１４で、二値化右手画像２５０から図５（ｂ）に示すような手指領域の二値化輪郭線画像２６０を取得する。次いで、手首位置検出部１５で、取得した手指領域の輪郭線を用いて、図５（ｃ）に示すようにポリライン近似して単純化することで線分の群へ変化させて二値化輪郭線単純化線分群画像２７０を取得することができる。この二値化輪郭線単純化線分群画像２７０における線分同士の角度変化が大きい線分群大角度変化点（手首位置表示点）２７１を求めることで手首位置に相当する点の位置を検出することができる。
【００４４】
ここで手首位置を検出する理由としては、後段でキーの絞り込みが正しく行える両手の各重心６００の位置を得るためである。その各重心位置のために、前腕を除いた手指領域を「処理対象領域（ＲＯＩ：Region of interest、処理対象領域／特定絞り込み領域）として設定する」必要があり、その前腕を除いた手指領域を取得するために、二値化右手画像２５０における手首の位置を得る必要があるためである。仮に、両手の各重心位置を前腕を含む手指領域全体から求めると、使用者の手の移動量と重心の移動量が一致せず、キーの絞り込みが正しく行えないという問題が生じる。そこで、前腕の影響をなくすために手首位置を求め、前腕を除いた手首より先の手指領域を処理対象領域として取得することで、使用者の手の移動量と重心６００の移動量が一致して、キーの絞り込みが正しく行える重心位置を得ることができる。
【００４５】
（ステップＳ５：処理対象領域の設定処理）
処理対象領域検出部１６は、二値化右手画像２５０において、線分群大角度変化点（手首位置表示点）２７１のy座標を手首位置とする。そうすると二値化右手画像２５０の左上が原点なので、これより線分群大角度変化点のy座標よりも絶対値が小さい領域を処理領域であって、求めた手首位置と輪郭線のx、y 座標がそれぞれ最大、最小となる点から、前腕を除いた手指領域である図６（ａ）の処理対象領域二値化右手画像３０１を取得することができる。本バーチャルキーボードシステムでは、前腕の回旋、手首の内外転などの変化が小さいため、この手法による手首位置の算出が可能である。
【００４６】
（ステップＳ６：重心位置の計算処理）
重心位置検出部５１は、前腕を除いた手指領域である処理対象領域二値化右手画像３０１から手指領域の重心を計算し、その計算結果を手の重心位置とする。このように前段で処理対象領域が設定されることにより、前腕の影響を受けることなく重心の検出が可能となる。そして最終的には、その重心位置の情報を用いて入力可能なキーの絞込みが行われる。
【００４７】
（ステップＳ７：画像の細線化処理）
細線化部１７では、処理対象領域二値化右手画像３０１から図６（ｂ）に示した処理対象領域細線化画像３３０を得ている。細線化を行う前に、手指領域のうち深さが一定上の領域を除去し背景と同じ色にすることによって細線化による分岐点の取得を容易にすることが可能としている。
【００４８】
（（深さ一定以上の領域の除去処理））
ここで述べる深さとは処理対象領域二値化右手画像３０１内の図６（ｅ）に示したような手指領域の処理対象領域二値化輪郭線画像３５０に隣接する背景画素と前景画素との距離のことであり、以下の方法で図６（ｆ）の手首領域ラベル付け表示図３５１に示したように各画素に付けられるラベルが深さとなる。例えば、処理対象領域二値化右手画像３０１内の処理対象領域二値化輪郭線画像３５０部分のような輪郭線の全ての画素にラベル番号１を与える。次に、ラベル番号１に隣接する、ラベル番号を持たない手指領域の画素にラベル番号２を与える。同様に、ラベル番号ｎを持つ画素に隣接する画素にラベル番号ｎ＋１を与える処理を繰り返し、手指領域の全ての画素にラベルを与える。このとき、最も大きなラベル番号をMaxLabelとする。手指領域の画素のラベル番号LabelNumが以下の数式（１）を満たす場合、その画素を除去し背景画素とする処理を加える。
【００４９】
【数１】
2014165660.tif 000003
【００５０】
（（手指領域の細線化処理））
深さ領域の削除後に細線化を行うことにより図６（ｂ）のような画像を取得でき、指の根元にある分岐点を取得しやすくなる。細線化にはHilditchの細線化アルゴリズムを使用した。Hilditchの細線化アルゴリズムは細線化を行う過程で、周辺画素連結数検出部１８により注目画素の連結数を調べており、連結数を見ることでその注目画素がどういった点であるかを知ることができる。中心にある注目画素ｘ０とその周辺にある画素を図６（ｃ）のように表記すると、連結数を調べる式は以下の数式（２）のように表される。
【００５１】
【数２】
2014165660.tif 000004
【００５２】
周辺画素ｘｋが前景画素の場合ｆ（ｘｋ）＝１、 背景画素の場合はｆ（ｘｋ）＝０となる。この式では、注目画素の4近傍について反時計回りに「自身が前景で次か次の次が背景」の画素の数を数えており、例えば連結数N=0の時、その画素は孤立点または内部画素ということになる。
【００５３】
（ステップＳ８：細線化端部（指先）の数（５）の判断処理）
特徴点検出部１９は、N =1の点を端点３３１とし、図６（ｄ）に示されたように細線化された線の端点３３１（端部）を指先と判断し、端点３３１の数を数えることで指先の数を判断することができる。特徴点検出部１９は、細線化端部（指先）の数が５に達していない場合、例えば、指先位置検出部４４に通知し、擬似的な指先位置を特徴点検出部１９及び指の傾き検出部２０に送信させる。
【００５４】
（ステップＳ９：輪郭線を用いた指先位置の検出処理）
（（輪郭線画素走査による指先検出処理））
後述する矩形枠５００は各指の根元の点から各指先の端点方向に向かって描画されるが、タイピング動作によって指先が下向きに隠れて遮蔽が起こった状態だと矩形枠５００が正しく描画されない。これは細線化処理を行うと図７（ｅ）のようになり、遮蔽された指の端点が抽出できないために起こってしまう。そこで例外処理として、輪郭線画素の角度変化を用いた指先の検出を行う。
【００５５】
輪郭線角度変化検出部４１は、輪郭線画素の角度変化を用いて指先を検出し、例えば、処理対象領域内の手指領域の輪郭線上のすべての点について曲率を求め、曲率の大きい点が集中している箇所を指先として検出する。まず、図６（ｅ），（ｆ）のように処理対象領域内の手指領域の輪郭線の画素を一番右下から手首領域ラベル付け方向３５２に示したように反時計回りにラベル付けしていく。次に輪郭線上にある点Pi(xi,yi)からラベル番号がn離れた点Pi―ｎ(xi―ｎ,yi―ｎ)と点Pi＋ｎ(xi＋ｎ,yi＋ｎ)それぞれがX軸となす角度θii-nとθi+niを求める。θii-nとθi+niはそれぞれ以下の数式（３）、数式（４）と表される。
【００５６】
【数３】
2014165660.tif 000005
【００５７】
【数４】
2014165660.tif 000006
【００５８】
θii-nとθi+niを用いてθiを以下の数式（５）と表される。
【数５】
2014165660.tif 000007
このθi を点Piにおける角度とする。角度変化閾値比較部４２では、閾値記憶部４５から得た閾値と各点における角度とを比較し、閾値以上画素集中度検出部４３で、θiが閾値より大きい点Piが集中している箇所を検出し、その点を描画すると図７（ｄ）の薬指指先抽出点７０４のようになり、親指指先抽出点７０１、人差親指指先抽出点７０２、中指指先抽出点７０３、子指指先抽出点７０５と比較してみることで、遮蔽時でも指先の抽出ができていることがわかる。
【００５９】
細線化部１７で細線化した画像からでは、図７（ｅ）の薬指のように端点の取得が不可能な場合は、指先位置検出部４４で、上記したように輪郭線の角度変化による擬似的な指先位置を抽出することで後述する矩形枠５００を正しい方向へ描画することができる。
【００６０】
（ステップＳ１０：特徴点の取得処理）
特徴点検出部１９は、N=1の点を端点、N=3の点を分岐点として取得することで図６（ｄ）内に示す（細線化画像の）端点３３１及び（細線化画像の）分岐点３３２という特徴点を取得することができる。
【００６１】
（（特徴点の取得））
特徴点検出部１９は、上記のようにして左右に分離し処理対象領域を設定した後に、それぞれの処理対象領域で特徴点の取得を行う。特徴点検出部１９は、細線化処理及び指先位置検出部４４等による輪郭線画素の角度変化による指先抽出を行うことで、各処理対象領域から端点、分岐点といった特徴点を抽出し、これらの点から矩形枠５００を描画する際に必要な各指の「長さ」、「傾き」といった情報を取得する。分岐点については，Hilditchの細線化の際に各画素の連結数を計算し，連結数が３の画素を抽出することで分岐点が取得できる。
【００６２】
（ステップＳ１１：矩形枠の描画処理）
指の傾き検出部２０は、特徴点検出部１９で得られた各指の端点と分岐点をそれぞれ線分で結ぶ。この線分を各指の「長さ」、分岐点の座標を「指の根元の座標」とし、端点と分岐点の座標から「指の傾き」を計算してそれぞれ記録する。指の傾き検出部２０は、後述する指先位置の検出に必要な矩形枠５００を描画するためには指ごとに「長さ」、「傾き」、「根元の座標」を取得している。矩形枠描画部２１は、特徴点検出部１９及び指の傾き検出部２０で得られた情報を元に、図７（ａ）〜図７（ｄ）に示したように、各指の指先方向に各指に矩形枠５００を描画することが可能となり、矩形枠／画像合成部２２では、例えば矩形枠基本データ記憶部３２からの矩形枠データに基づいて、各指の画像上に矩形枠５００を合成する。
【００６３】
本発明では、手の移動による指先位置情報の変化の影響をなくすために図７（ｂ）のような手の移動に追従する矩形枠５００を指ごとに設定し、その中での指先位置を検出することでタイピング動作の検出を行う。矩形枠５００の割り当て位置については、関節ごとに割り当てるわけではなく、指の傾き検出部２０で得られた各指の根元の分岐点からの長さに応じて矩形の横線(短辺)を引いる。各指の根元の分岐点を基準として指先に近い順から，指の長さ×0.9，指の長さ×0.7，指の長さ×0.5の位置に短辺を引いている。また，短辺の長さは，一番長い指の長さの1/4にしている。また、矩形枠５００は、上段と下段に別れており、対応する領域内に指先位置を移動させることで異なる２種類のキーの入力が可能である。
【００６４】
（ステップＳ１２：各矩形枠内の指先位置の検出処理）
枠内指先位置検出部２３は、図８（ａ）〜（ｅ）に示したように、矩形枠５００内での、タイピング動作時の指の曲げ具合によって変化する指の画像上の先端を検出することで指先の位置を検出する。本発明では、矩形枠付加曲げ無し指画像８０１、矩形枠付加第１段階曲げ指画像８０２、矩形枠付加第２段階曲げ指画像８０３に示したような指の曲げ具合によって２種類の入力が可能になるように実装した。矩形枠描画部２１は、指に合わせて描画した矩形枠５００のうち、指先方面の領域を上段の第１矩形領域５１０と、下段の第２矩形領域５２０に分け、さらにその下を第３矩形領域５３０とする。枠内指先位置検出部２３は、第１矩形領域５１０と第２矩形領域５２０のそれぞれの領域内に指先（画像上の先端）が移動した場合に対応する出力を行う。本発明の手法では、各指で各領域に対応した「２種類の出力」と「出力なし」の３つの状態を表すことが可能である。領域内に指先が存在するかどうかは、各領域上部の横方向の線上に前景画素である指の肌色画素（二値化画像では白抜画素）が存在するかどうかによって判断する。
【００６５】
例えば図８（ｄ）の場合、第１短辺５５１の線上には前景画素がなく、第２短辺５５２の線上には前景画素があるため指先位置は上段の第１矩形領域５１０にあると判断し、上段の第１矩形領域５１０に対応した出力を行う。本発明では、肌色領域の面積変化ではなく，矩形枠５００の短辺上の前景画素(肌色)の有無によって曲がり具合を判断する。例えば、指先に近い順から３本の短辺（第１短辺５５１、第２短辺５５２、第３短辺５５３）を見た時に，図８（ｂ）又は図８（ｄ）のように最上段の第１短辺５５１のみ前景画素無しで残り２本（第２短辺５５２、第３短辺５５３）にはある場合は，第１短辺５５１の矩形内に指先があると判断する。また、図８（ｃ）又は図８（ｅ）のように、上から２本の短辺（第１短辺５５１、第２短辺５５２）には前景画素がなく，最下段の第３短辺５５３のみに前景画素がある場合は，２番目の第２矩形領域５２０内に指先があると判断する。
【００６６】
（ステップＳ１３：入力キーの推定処理）
キーデータ合成部２４は、バーチャルキーボードデータ記憶部２６から読み出されたバーチャルキーボードデータによるバーチャルキーボード９００と、使用者の両手画像２００とを合成する。入力キー推定部２５は、重心位置検出部５１で得られた手の重心情報と、枠内指先位置検出部２３で得られたどの矩形枠５００のどの部分に指先端が存在するかの矩形内指先情報から、各指の曲がり具合を推定し、その手の重心と指の曲がり具合から、打鍵された入力キーを推定する。
【００６７】
入力キーの推定に当たっては、物理型キーボードの場合キーボード上の手の位置によって入力が可能なキーはある程度絞られてくることから、本発明でも同様に画像内における手の重心位置情報を利用し、重心の位置によって現在入力が可能なキーの絞り込みを行い、矩形枠５００内の指先位置情報を用いてその中から入力されているキーの推定を行う。各手で曲げが一番大きな指のみ推定を行うため、同時に推定が可能なキーは左右の手で１つずつである。各指がキー押しする候補キーを決めておけば、絞り込みをより効率よくじっしできる。
【００６８】
本発明のバーチャルキーボードシステムは、図９（ａ）のようにバーチャルキーボード画像９００と文字の出力部分である文字出力部２０１に分けて画面に表示され、バーチャルキーボード画像９００で推定されたキー（指の表示と合っている場合）９２０が文字出力部２０１に表示される。バーチャルキーボード画像９００は手の重心位置によって入力可能なキーの文字色を変化させており、使用者は画面を見ることでどの指でどのキーを入力できるかがわかるようになっている。また、推定されたキー９２０の位置には赤い円が表示されることで使用者にフィードバックが与えられる。
【００６９】
また、本発明では、指を伸ばした状態から曲げることによってキーを入力するため、下段（第２矩形領域５２０）のキーを入力する場合も必ず指先が上段（第１矩形領域５１０）を通過することになる。そのため、毎フレーム結果の出力を行うと、下段のキーと上段のキー両方が出力されてしまう。また、タイピング速度には個人差があるため、一度のタイピング動作で推定されるキーの数も使用者によって異なってくる。これらの問題を解決するために、予備的にタイピング動作時の指先位置の時間変化を観察する実験を行い、その結果から入力キーの決定方法を決定する。
【００７０】
（タイピング動作時の指先位置の時間変化）
（（実験概要））
実験の被験者として熟練者1名と非熟練者4名（男性4名、女性1名）を採用した。非熟練者の被験者は本実験で初めてシステムを使用する。実験の前に被験者にシステムの説明を行い、一度システムを使用してもらった後に、左右6文字ずつ打鍵する文字列を入力してもらった。
（（実験結果））
5人分の指先位置の時間変化を入力時間ごとにまとめ図に示す。タイピング速度が速い場合を図１０（Ａ）に、並な場合を図１０（Ｂ）に、遅い場合を図１１（Ａ）に示す。各Figureのグラフは上からそれぞれ
(a):「j」を押すときの指先位置の時間変化
(b):「m」を押すときの指先位置の時間変化
(c):使用者が入力を意図していない場合に起こる誤検出
を示しており、グラフ中の破線は使用者が入力しようとしているキーを示す。
【００７１】
本発明のシステムでは、指の曲げ具合で２種類のキーが判別されるので、グラフの縦軸は入力がない状態を表す「伸」、指先位置が上段にある状態(今回は「j」)、指先位置が下段にある状態(今回は「m」)の3つになる。ここでの(c)の誤検出は、指の根元の点のずれにより矩形枠５００全体が本来の位置より指先方向にずれることにより、指を曲げない状態にも関わらずキーが推定されてしまう状態のことを示す。
【００７２】
図１０（Ａ）の(a)からはタイピングが速い場合も入力に0.4秒以上必要であることが、図１０（Ａ）の(b)からは0.6秒ほどで入力が可能であるが入力途中で「j」を誤検出してしまうことがわかる。図１０（Ａ）の(c)は図１０（Ａ）の(a)よりも入力時間が短く、図１０（Ａ）の(a)と比較してもキーを検出している時間に明確な差があることがわかる。
【００７３】
図１０（Ｂ）はタイピングの速度が並の場合の指先位置の時間変化である。図１０（Ｂ）の(a)、 (b)ともに図１０（Ａ）の(a)、(b)よりも入力に時間を要することがわかる。また図１０（Ａ）の(b)では「m」を入力する際に「m」を検出する前後1フレームで「j」を検出していることがわかる。しかし図１０（Ｂ）の(c)を見ると入力速度が並でも誤検出する場合の時間は図１０（Ｂ）の(c)とほとんど変わらず、誤検出の場合は図１０（Ｂ）の(c)も図１０（Ａ）の(a)よりキーを検出している時間が短いことがわかる。
【００７４】
図１１（Ａ）はタイピングの速度が遅い場合の指先位置の時間変化である。図１１（Ａ）の(a)、(b)から「j」、「m」ともに入力時間が長いことがわかる。図１１（Ａ）の(b)を見ると「m」を入力する際に「m」を検出する前後数フレームで「j」を検出していることがわかる。また、図１１（Ａ）の(c)の誤検出については図１０（Ａ）の(c)、図１０（Ｂ）の(c)と同様に、使用者が意図して入力する場合よりもキーを検出する時間が短いことがわかる。
【００７５】
図１０（Ａ）から図１１（Ａ）を見ると、どの場合も「m」を入力するときに「m」だけでなく「j」も検出していることがわかる。しかし入力開始から終了までの間に検出されたキーの数を数えてみると、どの場合も「m」の個数が「j」の個数よりも多いことがわかった。また、入力に必要な時間は最大で1.4秒であった。
【００７６】
（入力キー決定のための時間枠と決定方法）
実験の結果から「m」を入力するときに「m」だけでなく「j」も検出してしまう場合があるが、検出されたキーの個数を見ると「m」の個数が「j」の個数よりも多いことがわかった。また、図１１（Ｂ）に示すように入力時間が一番短い場合と誤検出した場合の入力時間を比較すると0.4秒を境にそれより大きいか小さいかで差が出ることがわかる。したがって、例えば、図３に示したタイマー２７、検出回数カウンター２８、検出回数記憶部２９等を用いて、入力時間の違いと指先位置の時間変化の傾向から「入力が開始されてから終了するまでの時間が0.4秒以上1.5秒以下の場合、その間で検出された回数が最も多いキーを入力キーとする」という方法で入力キーの決定が可能であると考えられる。
【００７７】
（評価実験）
提案した手法を用いて作成したシステムを複数の被験者に使用してもらった結果からシステムの評価を行った。被験者はシステムの熟練者1名と非熟練者2名(男性)を採用した。
（（実験概要））
被験者には画面上に表示されたキーボードを見ながらaからzまでアルファベット26文字を順に入力するというタスクを行ってもらった。非熟練者の被験者には実験の前にシステムの説明を交えながら同様のタスクを行ってもらった。システムの初心者と熟練者の違いを見るため、非熟練者が行う練習は1回のみとし、練習1回本番10回の計11回タスクを行ってもらった。本番での正答率や誤入力の傾向、入力に要した時間からシステムの評価を行った。また被験者にはシステムの使いやすさについての聞き取りも行った。
【００７８】
（（実験結果））
各被験者の平均正答率と平均入力時間を表1、表2にまとめる。また、実験回数と正答率の関係を図１２（ａ）に、入力に要した時間を図１２（ｂ）にまとめる。実験結果の図１２中の被験者Aは熟練者、被験者B、Cは非熟練者である。正答率は誤入力を含むすべての入力回数に対して正しく入力できた割合を表す。誤入力には、使用者のミスタイプによる誤入力とシステム側の誤検出による誤入力が想定されたが、後者が原因の誤入力は確認されなかった。
【００７９】
【表１】
2014165660.tif 000008
【００８０】
【表２】
2014165660.tif 000009
【００８１】
（（考察））
表１、表２が示すように、熟練者と非熟練者の間で正答率、入力時間ともに差がある。しかし図１２（ａ）から被験者全員に共通して試行回数と共に正答率が上昇するという傾向が見られ、被験者Cについては被験者Aと同程度の正答率も見られた。入力時間には熟練者と非熟練者で大きな差が見られるが、試行回数と共に入力時間が減少する傾向にあることからシステムへの慣れによって入力時間の短縮が可能であると考えられる。誤入力については、前述の通りシステムの誤検出による文字の入力は無かったため、提案した手法のうち「矩形枠５００内の指先位置の変化でタイピング動作を認識する」部分について有効性を示すことができた。
【００８２】
熟練者と非熟練者の正答率の違いが、上記した慣れに関係していると考えられることから、手の姿勢を考慮した絞り込みを行うことで改善できる。キーの絞り込み精度を向上させるために、画像内の重心の位置は同じでも、画像に入り込む前腕の角度が異なると指の位置が異なることがあることから、重心位置に加えて、手の姿勢を考慮させることで改善できる。また、図９（ａ）に示すようにシステムが入力可能と判断したキーと実際に使用者の指があるキーがずれてしまい、結果としてミスタイプを起こし誤入力となることがある。
【００８３】
また、熟練者と非熟練者の正答率の違いが、この慣れに関係していると考えられることから、キー配置を使用者に合わせて変更することで改善できる。現状のシステムでは画像内のキーボードの位置、大きさ、キー配置などはすべて固定であり、使用者はその表示に合わせる必要がある。しかし、バーチャルキーボード９００は、物理型キーボードとは異なりキーの配置や大きさを容易に変更できるという利点がある。その利点を活かし、例えば、例えば、図３に示したバーチャルキーボードデータ記憶部２６に異なるサイズのキーボード９００を格納し、図３に示した指寸法検出部３１で指寸法を計測し、使用者の手の大きさに合わせたキーボード９００を描画する、手の姿勢に合わせて使用者がタイピングしやすい位置にキーを配置する等の方法を実装することで、入力性の向上、誤入力の減少に効果を有する。
【００８４】
本実験ではタイピング動作の認識については提案手法の有効性を確認できたが、いっそうキーの絞り込み精度を高めることで、非熟練者も熟練者と同程度に入力が可能にできる。
【符号の説明】
【００８５】
１  情報処理装置、
１１  画像データ記憶部、
１２  画像二値化部、
１３  左右手領域分離部、
１４  輪郭線検出部、
１５  手首位置検出部、
１６  処理対象領域検出部、
１７  細線化部、
１８  周辺画素連結数検出部、
１９  特徴点検出部、
２０  指の傾き検出部、
２１  矩形枠描画部、
２２  矩形枠／画像合成部、
２３  枠内指先位置検出部、
２４  キーデータ合成部、
２５  入力キー推定部、
２６  バーチャルキーボードデータ記憶部、
２７  タイマー、
２８  検出回数カウンター、
２９  検出回数記憶部、
３１  指寸法検出部、
３２  矩形枠基本データ記憶部、
４１  輪郭線角度変化検出部、
４２  角度変化閾値比較部、
４３  閾値以上画素集中度検出部、
４４  指先位置検出部、
４５  閾値記憶部、
５１  重心位置検出部、
６１  プログラム記憶部、
１００  カメラ、
１５０  画像出力装置、
２００  両手画像、
２０１  文字出力部、
２１０  左手画像、
２２０  右手画像、
２３０  二値化両手画像、
２４０  二値化左手画像、
２５０  二値化右手画像、
２６０  二値化輪郭線画像
２７０  二値化輪郭線単純化線分群画像
２７１  線分群大角度変化点（手首位置表示点）
２９０  矩形枠付加両手画像、
３００  矩形枠付加処理対象領域右手画像、
３０１  処理対象領域二値化右手画像、
３０５  薬指折曲時の指先抽出点付加右手画像、
３３０  処理対象領域細線化画像、
３３１  （細線化画像の）端点、
３３２  （細線化画像の）分岐点、
３３５  薬指折曲時の細線化画像、
３４０  注目画素と周辺画その位置関係表記図、
３５０  処理対象領域二値化輪郭線画像、
３５１  手首領域ラベル付け表示図、
３５２  手首領域ラベル付け方向、
３６０  端点の無い薬指細線化画像部、
５００  矩形枠、
５１０  第１矩形領域、
５２０  第２矩形領域、
５３０  第３矩形領域、
５５１  第１短辺（最指先側短辺）、
５５２  第２短辺、
５５３  第３短辺、
６００  重心、
７０１  親指指先抽出点、
７０２  人差親指指先抽出点、
７０３  中指指先抽出点、
７０４  薬指指先抽出点、
７０５  子指指先抽出点、
８０１  矩形枠付加曲げ無し指画像、
８０２  矩形枠付加第１段階曲げ指画像、
８０３  矩形枠付加第２段階曲げ指画像、
９００  バーチャルキーボード画像、
９１０  推定されたキー（指の表示とずれる場合）、
９２０  推定されたキー（指の表示と合っている場合）。
【図１】
2014165660.tif 000010
【図２】
2014165660.tif 000011
【図３】
2014165660.tif 000012
【図４】
2014165660.tif 000013
【図５】
2014165660.tif 000014
【図６】
2014165660.tif 000015
【図７】
2014165660.tif 000016
【図８】
2014165660.tif 000017
【図９】
2014165660.tif 000018
【図１０】
2014165660.tif 000019
【図１１】
2014165660.tif 000020
【図１２】
2014165660.tif 000021