(第1の実施形態)
図1は、第1の実施形態に係る認識装置の構成例を示すブロック図である。図1に示すように、認識装置100は、取得部110と、算出部120と、判定部130と、制御部140とを有する。例えば、認識装置100は、カメラ及びイメージセンサ等の撮像素子を搭載したPC(Personal Computer)等の情報処理装置に適用され、ユーザのジェスチャを認識して、認識したジェスチャに応じて該PCの操作を制御する。カメラは、時系列の画像を撮像する。また、認識装置100は、PCが有する表示部1に接続されている。
図2は、認識装置を適用した情報処理装置の例を示す図である。図2に示す情報処理装置10には、以下の実施形態の何れかの認識装置が適用される。例えば、情報処理装置10には、カメラ11が搭載されており、被写体であるユーザを撮像する。ユーザは、情報処理装置10の画面12のウィンドウ13内に表示されたウェブコンテンツや文書を閲覧するために、手14によってジェスチャを行なう。これにより、スクロールバー15がジェスチャに応じて移動し、ウィンドウ13がスクロールする。或いは、ユーザは、情報処理装置10の画面12(表示部1)に表示されたカーソルを移動するために、手14によってジェスチャを行なう。これにより、カーソルがジェスチャに応じて移動する。
取得部110は、カメラ11によって撮像された時系列の画像に対して、被写体であるユーザの手や指等の特定部位を画像毎に検出して、時系列に追跡することにより、ユーザの特定部位の位置を時系列で取得する。取得する特定部位の位置は、例えば、撮像素子から得られる手や指等である特定部位の検出領域の重心とする。また、取得する特定部位の位置は、撮像画像上で規定されているピクセル位置等の座標で表現しても良いし、検出されたユーザの顔等の部位の位置からの相対座標で表現しても良い。
また、位置だけでなく、各位置を取得した時刻も保存しても良い。時刻は、認識装置100の起動時或いは位置取得の開始時を「0」として、開始時からの経過時間、経過クロック数、経過フレーム数等で表現される。例えば、撮像画像上の(x,y)座標で位置を表現する場合、i番目のフレームで取得した位置(xi,yi)と、取得時の時刻「Ti」とを対応付けて保存する。
図3は、時系列で取得される特定部位の位置の例を示す図である。図3に示すように、特定部位の動きは、「P1」、「P2」、「P3」、「P4」、「P5」、「P6」、「P7」、「P8」の順に、破線の矢印で表されるように連続した軌跡を辿る。取得部110では、撮像素子でサンプリングされた離散的な点それぞれとして、「P1」〜「P8」それぞれの位置が取得される。なお、図3に示す「P3」や「P6」は、「折り返し点」と呼ぶ場合がある。
算出部120は、取得部110によって取得された位置から、被写体であるユーザの手や指等の特定部位の動きの特徴量を算出する。ここで、特徴量として、手の移動速度を例に挙げて説明する。例えば、算出部120は、取得部110によって取得された位置について、時刻「T8」に取得された最も直近の位置を「P8」とし、時刻「T7」に取得された前回の位置を「P7」としたときに、手の移動速度「V」を「|P8からP7までの距離/(T8−T7)|」により算出する。
判定部130は、算出部120によって算出された手の移動速度を特徴量として、手の移動速度と、移動速度の特定の値を表す第1閾値との大小関係を判定する。そして、判定部130は、手の移動速度と第1閾値との大小関係の判定結果を制御部140に対して出力する。かかる第1閾値は、ユーザのジェスチャに応じた制御を実行する場合において、手や指等の特定部位の位置又は動きの認識方法を用いる第1モードにするのか、又は、該第1モードとは異なる認識方法を用いる第2モードにするのか、を判定するために利用される。つまり、本実施形態の一つの様態では、手の移動速度に応じて、第1モード或いは第2モードが選択される。
制御部140は、判定部130による判定結果を受け付けて、手の移動速度が第1閾値未満である場合に第1モードを選択し、手の移動速度が第1閾値以上である場合に第2モードを選択する。また、制御部140は、選択した第1モード或いは第2モードそれぞれにおいて、ユーザのジェスチャに応じて表示部1に表示する画面の表示処理を制御する。例えば、制御部140は、第1モードである場合に表示部1に表示されるカーソルの移動を制御したり、第2モードである場合に表示部1に表示された画面のスクロールを制御したりする。ここで、第1モードにおけるカーソルの移動とは、ポインティングによるカーソルの移動を指す。
図4は、第1モードにおける画面表示の例を示す図である。図4では、第1モードにおける制御の一例として、画面上のカーソルを移動させる場合を例に挙げる。図4上段に示すウィンドウ13の状態において、ユーザによって手を下方向に移動させるジェスチャが行なわれた場合に、図4下段に示すウィンドウ13のように、カーソル16が下方向に移動する。なお、第1モードである場合には、スクロールバー15は移動しない。
図5は、第2モードにおける画面表示の例を示す図である。図5では、第2モードにおける制御の一例として、画面上のスクロールバーを移動させる場合を例に挙げる。図5上段に示すウィンドウ13の状態において、ユーザによって手を下方向に移動させるジェスチャが行なわれた場合に、図5下段に示すウィンドウ13のように、スクロールバー15が下方向に移動することにより、ウィンドウ13が下方向にスクロールする。また、図5では、スクロールバー15の移動方向に応じてブロック矢印17が表示される例を示している。なお、第2モードである場合には、カーソル16は移動しない。
次に、図6を用いて、第1の実施形態に係る全体処理の流れを説明する。図6は、第1の実施形態に係る全体処理の流れの例を示すフローチャートである。
図6に示すように、取得部110によってユーザの手の位置が取得された場合に(ステップS101肯定)、算出部120は、手の動きから得られる手の移動速度を算出する(ステップS102)。また、取得部110によってユーザの手の位置が取得されない場合に(ステップS101否定)、該位置の取得待ちの状態となる。
また、判定部130は、算出部120によって算出された手の移動速度と、第1閾値との大小関係を比較する(ステップS103)。このとき、判定部130によって手の移動速度が第1閾値未満であると判定された場合に(ステップS104肯定)、制御部140は、第1モードを選択する(ステップS105)。一方、判定部130によって手の移動速度が第1閾値以上であると判定された場合に(ステップS104否定)、制御部140は、第2モードを選択する(ステップS106)。
本実施形態によれば、ユーザによるジェスチャでの特定部位の移動速度に応じて、表示部に表示する画面の表示処理の制御に係るジェスチャ認識のモードを選択するので、ジェスチャに応じた操作対象装置の操作のモードの切り替えに係る操作性を向上させることができる。つまり、本実施形態によれば、操作対象装置の操作のモードを切り替えるための操作をユーザに行なわせなくて良いので、操作性の向上をはかることができる。
(第1の実施形態の変形例1)
図7は、第1の実施形態の変形例1に係る認識装置の構成例を示すブロック図である。第1の実施形態の変形例1では、第1の実施形態と同様の構成については同一の符号を付し、同様の構成については詳細な説明を省略する場合がある。第1の実施形態の変形例1では、以下に示す判定部130a、制御部140a以外の各部の機能及び構成、処理については第1の実施形態と同様である。
図7に示すように、認識装置100aは、取得部110と、算出部120と、判定部130aと、制御部140aとを有する。また、第1の実施形態と同様に、認識装置100aは、表示部1に接続されている。
判定部130aは、算出部120によって算出された手の移動速度を特徴量として、手の移動速度と第1閾値との大小関係、さらには、手の移動速度と第1閾値よりも小さい値を表す第2閾値との大小関係を判定する。そして、判定部130aは、手の移動速度と第1閾値との大小関係の判定結果、手の移動速度と第2閾値との大小関係の判定結果を制御部140aに対して出力する。かかる第2閾値は、ユーザのジェスチャに応じた制御を実行する場合において、第1モードから第2モードに移行する前段階の手の移動速度に該当するか否かを判定するために利用される。第1モードから第2モードに移行する前段階とは、条件「第2閾値≦手の移動速度<第1閾値」を満たす場合である。つまり、本実施形態の一つの様態では、手の移動速度に応じて、第1モードから第2モードへ移行する可能性があることや、第2モードから第1モードに移行したこと等を、ユーザに報知することができる。
制御部140aは、判定部130aによる判定結果を受け付けて、手の移動速度が第1閾値未満(第2閾値未満である場合を含む)である場合に第1モードを選択し、手の移動速度が第1閾値以上である場合に第2モードを選択する。また、制御部140aは、選択した第1モード或いは第2モードそれぞれにおいて、ユーザのジェスチャに応じて表示部1に表示する画面の表示処理を制御し、手の移動速度が第2閾値以上且つ第1閾値未満である場合に、該手の移動速度に応じて表示部1に表示する画面の表示処理を制御する。手の移動速度が第2閾値以上且つ第1閾値未満である場合の表示部1に表示する画面の表示処理の制御では、例えば、カーソルを第1モードとは異なる表示である暫定表示としてユーザに報知する。
図8は、第1の実施形態の変形例1に係る特徴量に応じた制御の例を示す図である。図8では、特徴量である手の移動速度と、第1閾値及び第2閾値との現状での大小関係を表す「現在の状態」、現在の状態に応じた制御を表す「制御」がそれぞれ示されている。これらのうち、現在の状態が「手の移動速度<第2閾値」である場合には、認識方法及び表示処理が「第1モード」に応じたものとなる。また、現在の状態が「第2閾値≦手の移動速度<第1閾値」である場合には、認識方法が「第1モード」に応じたものとなり、表示処理が「暫定表示」となる。また、現在の状態が「第1閾値≦手の移動速度」である場合には、認識方法及び表示処理が「第2モード」に応じたものとなる。
図9は、カーソルの暫定表示の例を示す図である。図9に示すように、暫定表示は、第1モードに応じたカーソル表示がカーソル20である場合に、透明度を変更したカーソル表示であるカーソル21、明度を変更したカーソル表示であるカーソル22、大きさを変更したカーソル表示であるカーソル23等がある。また、これらの他に、彩度や点滅速度やカーソルの移動速度(移動の停止を含む)を変化させたり、3次元表示が可能であれば飛び出し量を変化させたりしても良い。
また、透明度、明度及び大きさ等は、透明度を50パーセントにする等、予め定めた一定の割合にしても良いし、特徴量である手の移動速度に応じて変化させても良い。例えば、手の移動速度が第1閾値である場合に透明度を100パーセントにして、手の移動速度が第2閾値である場合に透明度を0パーセントになるように変化させる。このとき、特徴量を「E」、第1閾値を「E1」、第2閾値を「E2」とすると、透明度は、「100×(E−E2)/(E1−E2)」となる。
次に、図10を用いて、第1の実施形態の変形例1に係る全体処理の流れを説明する。図10は、第1の実施形態の変形例1に係る全体処理の流れの例を示すフローチャートである。
図10に示すように、取得部110によってユーザの手の位置が取得された場合に(ステップS201肯定)、算出部120は、手の動きから得られる手の移動速度を算出する(ステップS202)。また、取得部110によってユーザの手の位置が取得されない場合に(ステップS201否定)、該位置の取得待ちの状態となる。
また、判定部130aは、算出部120によって算出された手の移動速度と第1閾値との大小関係、手の移動速度と第2閾値との大小関係を比較する(ステップS203)。このとき、判定部130aによって手の移動速度が第2閾値未満であると判定された場合に(ステップS204肯定,ステップS205肯定)、制御部140aは、第1モードを選択する(ステップS206)。
また、判定部130aによって手の移動速度が第2閾値以上且つ第1閾値未満であると判定された場合に(ステップS204肯定,ステップS205否定)、制御部140aは、第1モードを選択し、手の移動速度に応じて画面の表示処理を制御する(ステップS207)。また、判定部130aによって手の移動速度が第1閾値以上であると判定された場合に(ステップS204否定)、制御部140aは、第2モードを選択する(ステップS208)。
本実施形態によれば、第1モードから第2モードへ移行する前段階においてカーソル等の表示を暫定表示にするので、第1モードから第2モードへ移行する可能性があることや、第2モードから第1モードへ移行したことをユーザに認識させることができる。また、本実施形態によれば、操作対象装置の操作のモードを切り替えるための操作をユーザに行なわせなくて良いので、操作性の向上をはかることができる。
(第1の実施形態の変形例2)
図11は、第1の実施形態の変形例2に係る認識装置の構成例を示すブロック図である。第1の実施形態の変形例2では、第1の実施形態と同様の構成については同一の符号を付し、同様の構成については詳細な説明を省略する場合がある。第1の実施形態の変形例2では、以下に示す判定部130b、制御部140b以外の各部の機能及び構成、処理については第1の実施形態と同様である。
図11に示すように、認識装置100bは、取得部110と、算出部120と、判定部130bと、制御部140bとを有する。また、第1の実施形態と同様に、認識装置100bは、表示部1に接続されている。第1の実施形態の変形例2では、特徴量である手の移動速度と、第1閾値及び第2閾値との現状での大小関係を表す「現在の状態」、直前のモードが第1モード又は第2モードの何れであるかを表す「直前のモード」に応じて、認識方法及び表示処理が変化する。以下では、図12〜図18を用いて、それぞれのパターンにおける認識方法及び表示処理について説明する。図12〜図18は、第1の実施形態の変形例2に係る現在の状態と直前のモードとの関係における認識方法及び表示処理の例を示す図である。
図12において、判定部130bは、手の移動速度が第2閾値未満であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。また、制御部140bは、直前のモードが第2モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。
また、図12において、判定部130bは、手の移動速度が第2閾値以上且つ第1閾値未満であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法を「第1モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示」として制御する。また、制御部140bは、直前のモードが第2モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。
また、図12において、判定部130bは、手の移動速度が第1閾値以上であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御する。また、制御部140bは、直前のモードが第2モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御する。
また、図13において、判定部130b及び制御部140bは、図12で説明した処理と同様の処理を行なう。これに加えて、算出部120は、ユーザの特定部位である手の移動距離を特徴量として算出する。そして、制御部140bは、第2モードを選択している状態において、算出部120によって算出された手の移動距離が所定時間以上継続して所定範囲内である場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。手の移動距離が所定時間以上継続して所定範囲内である場合とは、手の静止が検出されたことを指す。つまり、ユーザの手は若干揺れたりして動きが発生する場合もあるため、手の移動距離が所定時間以上継続して所定範囲内であれば、手が静止したこととして検出する。
また、図14において、判定部130bは、手の移動速度が第2閾値未満であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。また、制御部140bは、第2モードを選択している状態において、判定部130bによる判定において第1閾値未満(第2閾値未満を含む)である状態が所定時間以上続いた場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。なお、所定時間の一定割合を経過した時点で、第1モードに移行する可能性があることをユーザに報知するために、暫定表示をするようにしても良い。
また、図14において、判定部130bは、手の移動速度が第2閾値以上且つ第1閾値未満であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法を「第1モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示」として制御する。また、制御部140bは、第2モードを選択している状態において、判定部130bによる判定において第1閾値未満である状態が所定時間以上続いた場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。なお、所定時間の一定割合を経過した時点で、第1モードに移行する可能性があることをユーザに報知するために、暫定表示をするようにしても良い。
また、図14において、手の移動速度が第1閾値以上である場合に、判定部130b及び制御部140bは、図12で説明した処理と同様の処理を行なう。なお、第1モードを選択している状態において、判定部130bによる判定において第1閾値以上である状態が所定時間以上続いた場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御するようにしても良い。
また、図15において、判定部130bは、第1閾値以上であると判定する。これにより、制御部140bは、第1モードを選択している状態において、判定部130bによる判定において第1閾値以上である状態の継続時間が所定閾値未満である場合に、認識方法を「第1モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示」として制御する。一方、制御部140bは、第1モードを選択している状態において、判定部130bによる判定において第1閾値以上である状態の継続時間が所定閾値以上である場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御する。また、制御部140bは、直前のモードが第2モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御する。なお、図15において、手の移動速度が第1閾値未満(第2閾値未満を含む)である場合に、判定部130b及び制御部140bは、図14で説明した処理と同様の処理を行なう。図15の例によれば、特徴量としての手の移動速度の値に、1フレームだけノイズが入った場合等でも、該ノイズの影響を抑制した制御を実現することができる。
また、図16において、判定部130bは、手の移動速度が第2閾値以上且つ第1閾値未満であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法を「第1モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示A」として制御する。また、制御部140bは、直前のモードが第2モードである場合に、認識方法を「第1モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示B」として制御する。「暫定表示A」と「暫定表示B」とは、それぞれ異なる暫定表示であることを表す。なお、図16において、手の移動速度が第2閾値未満である場合、手の移動速度が第1閾値以上である場合に、判定部130b及び制御部140bは、図12で説明した処理と同様の処理を行なう。
また、図17の例においては、第1閾値よりも大きい第3閾値をさらに利用する。図17において、判定部130bは、手の移動速度が第2閾値以上且つ第1閾値未満であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法を「第1モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示A」として制御する。また、制御部140bは、直前のモードが第2モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。
また、図17において、判定部130bは、手の移動速度が第1閾値以上且つ第3閾値未満であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御する。また、制御部140bは、直前のモードが第2モードである場合に、認識方法を「第2モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示B」として制御する。
また、図17において、判定部130bは、手の移動速度が第3閾値以上であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御する。また、制御部140bは、直前のモードが第2モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御する。なお、手の移動速度が第2閾値未満である場合に、判定部130b及び制御部140bは、図12で説明した処理と同様の処理を行なう。
また、図18においても、図17の例と同様に第3閾値を利用する。図18において、判定部130bは、手の移動速度が第2閾値未満であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。また、制御部140bは、第2モードを選択している状態において、判定部130bによる判定において第2閾値未満である状態の継続時間が所定閾値未満である場合に、認識方法を「第2モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示B」として制御する。一方、制御部140bは、第2モードを選択している状態において、判定部130bによる判定において第2閾値未満である状態の継続時間が所定閾値値以上である場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。
また、図18において、判定部130bは、手の移動速度が第2閾値以上且つ第1閾値未満であると判定する。これにより、制御部140bは、直前のモードが第1モードである場合に、認識方法を「第1モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示A」として制御する。また、制御部140bは、第2モードを選択している状態において、判定部130bによる判定において第2閾値以上且つ第1閾値未満である状態の継続時間が所定閾値未満である場合に、認識方法を「第2モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示B」として制御する。一方、制御部140bは、第2モードを選択している状態において、判定部130bによる判定において第2閾値以上且つ第1閾値未満である状態の継続時間が所定閾値以上である場合に、認識方法及び表示部1に表示する画面の表示処理を「第1モード」に応じたものとして制御する。
また、図18において、判定部130bは、手の移動速度が第1閾値以上且つ第3閾値未満であると判定する。これにより、制御部140bは、第1モードを選択している状態において、判定部130bによる判定において第1閾値以上且つ第3閾値未満である状態の継続時間が所定閾値未満である場合に、認識方法を「第1モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示A」として制御する。一方、制御部140bは、第1モードを選択している状態において、判定部130bによる判定において第1閾値以上且つ第3閾値未満である状態の継続時間が所定閾値以上である場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御する。また、制御部140bは、直前のモードが第2モードである場合に、認識方法を「第2モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示B」として制御する。
また、図18において、判定部130bは、手の移動速度が第3閾値以上であると判定する。これにより、制御部140bは、第1モードを選択している状態において、判定部130bによる判定において第3閾値以上である状態の継続時間が所定閾値未満である場合に、認識方法を「第1モード」に応じたものとして制御し、表示部1に表示する画面の表示処理を「暫定表示A」として制御する。一方、制御部140bは、第1モードを選択している状態において、判定部130bによる判定において第3閾値以上である状態の継続時間が所定閾値以上である場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御する。また、制御部140bは、直前のモードが第2モードである場合に、認識方法及び表示部1に表示する画面の表示処理を「第2モード」に応じたものとして制御する。
本実施形態によれば、第1モードと第2モードとのそれぞれへ移行する前段階においてカーソルの表示を暫定表示にするので、各モードへ移行する可能性があることや、各モードへ移行したことをユーザに認識させることができる。また、本実施形態によれば、手の移動速度等の特徴量の状態の継続時間に応じて、各モードへ移行したり、カーソルの表示を暫定表示にしたりするので、各モードへ移行する可能性があることや、各モードへ移行したことをユーザに認識させることができる。また、本実施形態によれば、操作対象装置の操作のモードを切り替えるための操作をユーザに行なわせなくて良いので、操作性の向上をはかることができる。
(第1の実施形態の変形例3)
図19は、第1の実施形態の変形例3に係る認識装置の構成例を示すブロック図である。第1の実施形態の変形例3では、第1の実施形態と同様の構成については同一の符号を付し、同様の構成については詳細な説明を省略する場合がある。第1の実施形態の変形例3では、以下に示す判定部130c、制御部140c以外の各部の機能及び構成、処理については第1の実施形態と同様である。
図19に示すように、認識装置100cは、取得部110と、算出部120と、判定部130cと、制御部140cとを有する。また、第1の実施形態と同様に、認識装置100cは、表示部1に接続されている。第1の実施形態の変形例3では、第1閾値が第1の実施形態とは異なる。具体的には、第1の実施形態の変形例3では、第1閾値よりも所定値だけ大きい又は小さい値を閾値として利用する。詳細には、第1モードが選択されている状態においては、第1閾値よりも所定値だけ大きい値を第4閾値とする。一方、第2モードが選択されている状態においては、第1閾値よりも所定値だけ小さい値を第5閾値とする。
判定部130cは、現在の状態が「第1モード」である場合に、第1閾値よりも所定値だけ大きい第4閾値を利用して、算出部120によって算出された手の移動速度と第4閾値との大小関係を判定する。そして、判定部130cは、手の移動速度と第4閾値との大小関係の判定結果を制御部140cに対して出力する。一方、判定部130cは、現在の状態が「第2モード」である場合に、第1閾値よりも所定値だけ小さい第5閾値を利用して、算出部120によって算出された手の移動速度と第5閾値との大小関係を判定する。そして、判定部130cは、手の移動速度と第5閾値との大小関係の判定結果を制御部140cに対して出力する。
制御部140cは、判定部130cによる判定結果を受け付けて、手の移動速度が第4閾値未満である場合に第1モードを選択し、手の移動速度が第4閾値以上である場合に第2モードを選択する。また、制御部140cは、判定部130cによる判定結果を受け付けて、手の移動速度が第5閾値未満である場合に第1モードを選択し、手の移動速度が第5閾値以上である場合に第2モードを選択する。また、制御部140cは、選択した第1モード或いは第2モードそれぞれにおいて、ユーザのジェスチャに応じて表示部1に表示する画面の表示処理を制御する。
次に、図20を用いて、第1の実施形態の変形例3に係る全体処理の流れを説明する。図20は、第1の実施形態の変形例3に係る全体処理の流れの例を示すフローチャートである。
図20に示すように、取得部110によってユーザの手の位置が取得された場合に(ステップS301肯定)、算出部120は、手の動きから得られる手の移動速度を算出する(ステップS302)。また、取得部110によってユーザの手の位置が取得されない場合に(ステップS301否定)、該位置の取得待ちの状態となる。
また、判定部130cは、現在の状態が第1モードである場合に(ステップS303肯定)、第1閾値よりも所定値だけ大きい値である第4閾値を利用することを決定する(ステップS304)。一方、判定部130cは、現在の状態が第2モードである場合に(ステップS303否定)、第1閾値よりも所定値だけ小さい値である第5閾値を利用することを決定する(ステップS305)。これらにより、判定部130cは、手の移動速度と、利用することを決定した第4閾値又は第5閾値との大小関係を比較する(ステップS306)。
このとき、判定部130cによって手の移動速度が第4閾値未満又は第5閾値未満であると判定された場合に(ステップS307肯定)、制御部140cは、第1モードを選択する(ステップS308)。一方、判定部130cによって手の移動速度が第4閾値以上又は第5閾値以上であると判定された場合に(ステップS307否定)、制御部140cは、第2モードを選択する(ステップS309)。
本実施形態によれば、第1モードである場合に第1閾値よりも所定値だけ大きい第4閾値を利用し、第2モードである場合に第1閾値よりも所定値だけ小さい第5閾値を利用するので、モードを切り替わりにくくすることができる。つまり、本実施形態によれば、不用意なジェスチャにより安易にモードが切り替わることを抑制することができる。
(第1の実施形態の変形例4)
図21は、第1の実施形態の変形例4に係る認識装置の構成例を示すブロック図である。第1の実施形態の変形例4では、第1の実施形態と同様の構成については同一の符号を付し、同様の構成については詳細な説明を省略する場合がある。第1の実施形態の変形例4では、以下に示す制御部140d、第1認識部150d、第2認識部160d以外の各部の機能及び構成、処理については第1の実施形態と同様である。
図21に示すように、認識装置100dは、取得部110と、算出部120と、判定部130と、制御部140dと、第1認識部150dと、第2認識部160dとを有する。また、第1の実施形態と同様に、認識装置100dは、表示部1に接続されている。
第1認識部150dは、第1モードに対応する認識方法により、取得部110によって時系列で取得された位置から、ユーザの手や指等の特定部位の位置や動きを認識する。そして、第1認識部150dは、認識した位置や動きを制御部140dに対して出力する。第1認識部150dによる上記認識処理は、取得部110による位置の取得ごとに実行される。ここで、第1モードは、一つの様態として、カーソル移動のためのジェスチャを認識するためのモードである。
また、第1認識部150dによる認識処理では、取得部110によって取得された位置をそのまま出力しても良いし、取得された位置を補正してから出力しても良い。位置の補正については、例えば、手の検出を開始した位置からの相対位置を出力対象の位置としても良い。また、カルマンフィルタ等を適用して動きを平滑化し、得られる位置を出力対象の位置としても良い。また、上述したように、第1モードはカーソル移動のためのモードであるため、カーソルが画面外に移動しないように、移動範囲を制限した位置を出力することが好ましい。
第2認識部160dは、第2モードに対応する認識方法により、取得部110によって時系列で取得された位置から、ユーザの手や指等の特定部位の位置や動きを認識する。そして、第2認識部160dは、認識した位置や動きの方向に応じたコマンドを制御部140dに対して出力する。第2認識部160dによる上記認識処理は、取得部110による位置の取得ごとに実行される。ここで、第2モードは、一つの様態として、画面上のスクロールバーを移動させる等、対応方向のコマンドのためのジェスチャを認識するためのモードである。
また、第2認識部160dによる認識処理では、コマンドの方向やコマンド確定までの進捗率(0〜1)を出力しても良い。かかる進捗率は、例えば、取得部110による位置取得の開始時点である時刻「Tj」を「0」、所定時間「T0a」が経過する時点である時刻「Tj+T0a」を「1」、時刻「Tj」から時刻「Tj+T0a」の期間を線形に補間した値とする。この場合、時刻「t(Tj≦t≦Tj+T0a)」の進捗率は、「(t−Tj)/T0a」となる。つまり、進捗率が「1」であれば、コマンドが確定した状態となる。なお、上記の手法に限られるものではなく、折り返し点の前後も含んだ手の移動軌跡から、ユーザの意図した方向へのジェスチャを認識して、該当する方向へのコマンドを出力する手法でも良い。
制御部140dは、判定部130による判定結果に応じて第1モード或いは第2モードを選択する。そして、制御部140dは、現在の状態が第1モードである場合に、第1認識部150dによる認識結果の出力を選定し、該認識結果に応じて表示部1に表示する画面の表示処理を制御する。一方、制御部140dは、現在の状態が第2モードである場合に、第2認識部160dによる認識結果の出力を選定し、該認識結果に応じて表示部1に表示する画面の表示処理を制御する。なお、制御部140dは、現在の状態が第2モードである時に第2認識部160dによって進捗率が出力されている場合に、進捗率の出力が継続していれば、第1モードに移行していても第2認識部160dによる認識結果だけを選定しても良い。或いは、第2認識部160dによる認識結果だけでなく、第1認識部150dによる認識結果も選定し、第1認識部150d及び第2認識部160dによる認識結果に応じて表示部1に表示する画面の表示処理を制御しても良い。
次に、図22を用いて、第1の実施形態の変形例4に係る全体処理の流れを説明する。図22は、第1の実施形態の変形例4に係る全体処理の流れの例を示すフローチャートである。
図22に示すように、取得部110によってユーザの手の位置が取得された場合に(ステップS401肯定)、ステップS402、ステップS403及びステップS404の各処理が実行される。また、取得部110によってユーザの手の位置が取得されない場合に(ステップS401否定)、該位置の取得待ちの状態となる。
ここで、第1認識部150dは、取得部110によって時系列で取得された位置から、第1モードに対応する認識方法によりユーザの手の位置や動きを認識して、認識結果となるカーソル位置を制御部140dに対して出力する(ステップS402)。また、第2認識部160dは、取得部110によって時系列で取得された位置から、第2モードに対応する認識方法によりユーザの手の位置や動きを認識して、認識結果となるコマンドの方向を制御部140dに対して出力する(ステップS403)。また、算出部120は、手の動きから得られる手の移動速度を算出する(ステップS404)。
また、判定部130は、算出部120によって算出された手の移動速度と、第1閾値との大小関係を比較する(ステップS405)。このとき、判定部130によって手の移動速度が第1閾値未満であると判定された場合に(ステップS406肯定)、制御部140dは、第1モードを選択し、第1認識部150dによって出力された認識結果であるカーソル位置に応じた画面の表示処理を制御する(ステップS407)。一方、判定部130によって手の移動速度が第1閾値以上であると判定された場合に(ステップS406否定)、制御部140dは、第2モードを選択し、第2認識部160dによって出力された認識結果であるコマンドの方向に応じて表示部1に表示する画面の表示処理を制御する(ステップS408)。
本実施形態によれば、ユーザによるジェスチャにおける特定部位の移動速度に応じて、表示部に表示する画面の表示処理の制御に係るジェスチャの認識方法を選択し、選択した認識方法に対応するジェスチャの認識結果を選定して、選定した認識結果に応じて表示部に表示する画面の表示処理を制御する。この結果、ジェスチャに応じた操作対象装置の操作のモードの切り替えに係る操作性を向上させることができるとともに、該当するモードに応じたジェスチャの認識結果に応じて表示部に表示する画面の表示処理を制御することができる。
(第1の実施形態の変形例5)
図23は、第1の実施形態の変形例5に係る認識装置の構成例を示すブロック図である。第1の実施形態の変形例5では、第1の実施形態と同様の構成については同一の符号を付し、同様の構成については詳細な説明を省略する場合がある。第1の実施形態の変形例5では、以下に示す判定部130e、制御部140e、第1認識部150e、第2認識部160e以外の各部の機能及び構成、処理については第1の実施形態と同様である。
図23に示すように、認識装置100eは、取得部110と、算出部120と、判定部130eと、制御部140eと、第1認識部150eと、第2認識部160eとを有する。また、第1の実施形態と同様に、認識装置100eは、表示部1に接続されている。
判定部130eは、算出部120によって算出された手の移動速度を特徴量として、手の移動速度と第1閾値との大小関係を判定する。そして、判定部130eは、手の移動速度と第1閾値との大小関係の判定結果について、手の移動速度が第1閾値未満である場合に、該判定結果を第1認識部150eに対して出力する。一方、判定部130eは、手の移動速度と第1閾値との大小関係の判定結果について、手の移動速度が第1閾値以上である場合に、該判定結果を第2認識部160eに対して出力する。
つまり、手の移動速度が第1閾値未満である場合には、第1モードに応じた認識処理、すなわち第1認識部150eによる認識処理のみが実行されれば良いため、判定結果を第1認識部150eに対して出力している。同様に、手の移動速度が第1閾値以上である場合には、第2モードに応じた認識処理、すなわち第2認識部160eによる認識処理のみが実行されれば良いため、判定結果を第2認識部160eに対して出力している。
第1認識部150eは、判定部130eから判定結果を受け付けた場合に、取得部110から時系列の位置を取得し、第1モードに対応する認識方法により、取得した位置からユーザの手や指等の特定部位の位置や動きを認識する。そして、第1認識部150eは、認識した位置や動きを制御部140eに対して出力する。第1認識部150eによる上記認識処理は、判定部130eからの判定結果を受け付けた場合に実行される。なお、第1認識部150eによる認識処理における位置の補正等については、上記第1認識部150dと同様である。
第2認識部160eは、判定部130eから判定結果を受け付けた場合に、取得部110から時系列の位置を取得し、第2モードに対応する認識方法により、取得した位置からユーザの手や指等の特定部位の位置や動きを認識する。そして、第2認識部160eは、認識した位置や動きの方向に応じたコマンドを制御部140eに対して出力する。第2認識部160eによる上記認識処理は、判定部130eからの判定結果を受け付けた場合に実行される。なお、第2認識部160eによる認識処理における進捗率の出力等については、上記第2認識部160dと同様である。
制御部140eは、第1認識部150eによって認識結果が出力された場合に、第1モードを選択し、出力された認識結果に応じて表示部1に表示する画面の表示処理を制御する。一方、制御部140eは、第2認識部160eによって認識結果が出力された場合に、第2モードを選択し、出力された認識結果に応じて表示部1に表示する画面の表示処理を制御する。
次に、図24を用いて、第1の実施形態の変形例5に係る全体処理の流れを説明する。図24は、第1の実施形態の変形例5に係る全体処理の流れの例を示すフローチャートである。
図24に示すように、取得部110によってユーザの手の位置が取得された場合に(ステップS501肯定)、算出部120は、手の動きから得られる手の移動速度を算出する(ステップS502)。また、取得部110によってユーザの手の位置が取得されない場合に(ステップS501否定)、該位置の取得待ちの状態となる。
また、判定部130eは、算出部120によって算出された手の移動速度と、第1閾値との大小関係を比較する(ステップS503)。このとき、判定部130eは、手の移動速度が第1閾値未満であると判定した場合に(ステップS504肯定)、判定結果を第1認識部150eに対して出力する。一方、判定部130eは、手の移動速度が第1閾値以上であると判定した場合に(ステップS504否定)、判定結果を第2認識部160eに対して出力する。
また、判定部130eから判定結果を受け付けた第1認識部150eは、取得部110から時系列の位置を取得し、第1モードに対応する認識方法によりユーザの手の位置や動きを認識して、認識結果となるカーソル位置を制御部140eに対して出力する(ステップS505)。この後、第1認識部150eから認識結果を受け付けた制御部140eは、第1モードを選択し、認識結果であるカーソル位置に応じて表示部1に表示する画面の表示処理を制御する(ステップS506)。
また、判定部130eから判定結果を受け付けた第2認識部160eは、取得部110から時系列の位置を取得し、第2モードに対応する認識方法によりユーザの手の位置や動きを認識して、認識結果となるコマンドの方向を制御部140eに対して出力する(ステップS507)。この後、第2認識部160eから認識結果を受け付けた制御部140eは、第2モードを選択し、認識結果であるコマンドの方向に応じて表示部1に表示する画面の表示処理を制御する(ステップS508)。
本実施形態によれば、モードの判定結果の出力後から、何れかのモードに対応するジェスチャの認識処理のみを実行するので、処理負荷を軽減しつつ、該当するモードに応じたジェスチャの認識結果に応じて表示部に表示する画面の表示処理を制御することができる。
(第2の実施形態)
図25は、第2の実施形態に係る認識装置の構成例を示すブロック図である。第2の実施形態では、第1の実施形態と同様の構成については同一の符号を付し、同様の構成については詳細な説明を省略する場合がある。第2の実施形態では、以下に示す取得部110の機能及び構成、処理については第1の実施形態と同様である。
図25に示すように、認識装置200は、取得部110と、算出部220と、判定部230と、制御部240とを有する。また、第1の実施形態と同様に、認識装置200は、表示部1に接続されている。
算出部220は、手や指等の特定部位の移動ベクトルと、所定の座標軸ベクトルとの内積の符号の切り替わりから、次の切り替わりまでの時間が所定時間内となる動きが連続して発生する回数を特徴量として算出する。例えば、算出部220は、折り返し点(或いは、検出開始時の点)から次の折り返し点までが「350ms」等の所定時間以内となる手の動きが連続して発生する回数を特徴量として算出する。つまり、ユーザによって手が左右に振られる等、手の往復運動がジェスチャとして行なわれた場合に、所定時間以内における該往復運動の折り返しの発生の回数を特徴量とする。
判定部230は、算出部220によって算出された所定時間以内における手の往復運動の折り返しの発生の回数を特徴量として、回数と、回数の特定の値を表す第6閾値との大小関係を判定する。そして、判定部230は、回数と第6閾値との大小関係の判定結果を制御部240に対して出力する。例えば、第6閾値は、「4」である。つまり、判定部230では、第2モードに対応するコマンドが手の往復運動に応じて実行されるものである場合に、往復運動の折り返しの発生の回数が「4」回より多いか又は少ないかの判定が行なわれる。これは、第1モードに対応する手の払いによるカーソル移動と、第2モードに対応する手の往復運動によるコマンドとが、類似したジェスチャであることに起因する。
制御部240は、判定部230による判定結果を受け付けて、回数が第6閾値未満である場合に第1モードを選択し、回数が第6閾値以上である場合に第2モードを選択する。また、制御部240は、選択した第1モード或いは第2モードそれぞれにおいて、ユーザのジェスチャに応じて表示部1に表示する画面の表示処理を制御する。つまり、第2の実施形態では、手の往復運動に応じて第2モードに対応するコマンドが実行される場合に、第1モードと第2モードとの何れかを選択する処理において、両方のモードが選択されるのを抑止する効果がある。
図26は、ジェスチャの類似について説明する図である。例えば、図26の上段に示すように、画面30には、複数のアプリケーションのアイコンが表示されている。このとき、カーソル31によりアプリケーション32がフォーカスされている状態、すなわちアプリケーション32が選択されている状態において、手の往復運動が行なわれた場合には、図26の下段左方と、図26の下段右方とに示す認識結果となってしまう。
具体的には、図26の下段左方では、右方向への連続的な手の払いに伴って左右方向に手が移動したことにより、画面33においてカーソル31が右方向に移動し、アプリケーション34が選択された状態となる。また、図26の下段右方では、手の往復運動によって左右方向に手が移動したことにより、画面35においてアプリケーション32が起動された状態となる。第2の実施形態では、手の往復運動に応じて第2モードに対応するコマンドが実行される場合に、第1モードと第2モードとの何れかを選択する処理において、両方のモードが選択される(図26参照)のを抑止できる。以下に、第2の実施形態に係る各モードにおける画面の表示例を説明する。
図27は、第2の実施形態に係る第1モードにおける画面の表示例を示す図である。図27に示すように、右方向に手が払われたことにより、画面40においてカーソル41が右方向に移動する。このとき、カーソル41を右方向に移動することを表す表示42を画面に出力するようにしても良い。
図28は、第2の実施形態に係る第2モードにおける画面の表示例を示す図である。図28に示すように、画面50でカーソル51によりアプリケーション52がフォーカスされている状態において、左右方向に手が払われたことにより、アプリケーション52が起動する。このとき、手のアイコンが左右に往復している(アプリケーション52を起動する)ことを表す表示53を画面に出力するようにしても良い。なお、表示53については、進捗率が出力されている間に出力するようにしても良い。
次に、図29を用いて、第2の実施形態に係る全体処理の流れを説明する。図29は、第2の実施形態に係る全体処理の流れの例を示すフローチャートである。
図29に示すように、取得部110によってユーザの手の位置が取得された場合に(ステップS601肯定)、算出部220は、ユーザの手の往復運動の折り返しの発生の回数を特徴量として算出する(ステップS602)。また、取得部110によってユーザの手の位置が取得されない場合に(ステップS601否定)、該位置の取得待ちの状態となる。
また、判定部230は、算出部220によって算出された回数と第6閾値との大小関係を比較する(ステップS603)。このとき、判定部230によって回数が第6閾値未満であると判定された場合に(ステップS604肯定)、制御部240は、第1モードを選択する(ステップS605)。一方、判定部230によって回数が第6閾値以上であると判定された場合に(ステップS604否定)、制御部240は、第2モードを選択する(ステップS606)。
本実施形態によれば、第1モードと第2モードとで認識されるジェスチャが類似する場合に、手の往復運動等を検出することによりモードを切り分けるので、両方のモードが同時に選択されるのを抑止することができる。
(第3の実施形態)
さて、これまで認識装置の実施形態について説明したが、上述した実施形態以外にも種々の異なる形態にて実施されて良い。そこで、(1)特定部位の位置、(2)特徴量、(3)暫定表示、(4)移行中であることのユーザへの報知、(5)閾値の補正、(6)類似するジェスチャ、(7)認識結果の出力、(8)その他適用例、(9)ハードウェア構成、について異なる実施形態を説明する。
(1)特定部位の位置
上記実施形態では、カメラによって撮像された時系列の画像に対して、被写体であるユーザの手や指等の特定部位を画像毎に検出して、時系列に追跡することにより、ユーザの特定部位の位置を時系列で取得する場合を説明した。かかる特定部位の位置は、被写体であるユーザの顔や最初に検出されたある部位のサイズによって正規化した座標値としても良い。また、特定部位の位置は、撮像画像上の位置に限られるものではなく、距離センサや複数の撮像素子から推定された奥行き情報を座標軸の1つとして利用しても良い。また、特定部位は、手や指等の他にも、頭、レーザポインタの発光部等でも良い。また、特定部位の位置を取得する取得部110による処理は、特開2006−268825号公報で開示されているパターン認識法や、特許第3777650号公報で開示されている背景差分法等を利用して、ユーザの特定部位の位置を時系列で取得しても良い。
(2)特徴量
また、上記実施形態では、手の移動速度や手の往復運動の折り返しの発生の回数等を特徴量として利用する場合を説明した。手の移動速度「V」としての特徴量は、最も直近の位置から、直前の折り返し点或いは位置取得の開始点までの区間ベクトルの速さのうち最大のものを利用しても良い。さらに、特徴量は、移動加速度「α」としても良い。最新のベクトルの加速度を求める場合、移動加速度「α」は、時刻「T8」に取得された最も直近の位置を「P8」(図3参照)とし、時刻「T7」に取得された前回の位置を「P7」とし、時刻「T6」に取得された前々回の位置を「P6」としたときに、「[(P8からP7までの速さ)−(P7からP6までの速さ)]/(T8−T7)」により算出される。また、移動加速度「α」は、最も直近の位置から、直前の折り返し点或いは位置取得の開始点までの区間ベクトルの加速度のうち最大のものを利用しても良い。
また、特徴量は、特定部位の操作距離「L」、移動速度「V」、移動加速度「α」で表現される関数の値としても良い。操作距離「L」は、直前の折り返し点或いは位置取得の開始点から、最も直近の位置までのベクトルのユークリッド距離の和とする。特徴量を「E」とすると、「E=V×L×α」のように単純に掛け合わせても良いし、重みを加えた掛け合わせ「E=V×√L」としても良い。また、以下のように、条件に応じて変化する値としても良い。
E=V (L≧閾値L1)
0 (L<閾値L1)
また、光源を有する光学ポインタ等を利用してジェスチャ操作を実行する形態のときには、例えば、加速度を特徴量として利用することもできる。もちろん、手によるジェスチャにおいても加速度を用いても良い。手によるジェスチャの場合、手がぶれることが多いため、光学ポインタによるジェスチャにおいて加速度を特徴量として利用すると、より精度が高い。
(3)暫定表示
また、上記実施形態では、特徴量や直前のモードに応じてカーソルを暫定表示する場合を説明した。暫定表示については、カーソルと図5に示したブロック矢印17との両方を表示し、特徴量が第1閾値である場合に、第1モードに応じた表示0パーセントとし、第2モードに応じた表示100パーセントとする割合で大きさや明度を変化させても良い。このとき、特徴量が第2閾値である場合には、第1モードに応じた表示100パーセントとし、第2モードに応じた表示0パーセントとする割合で大きさや明度を変化させる。また、上記の割合でカーソルとブロック矢印17とを、モーフィングさせても良い。
(4)移行中であることのユーザへの報知
また、上記実施形態では、カーソルを暫定表示することにより、モードが移行中であることをユーザに報知する場合を説明した。モードの移行に係るユーザへの報知は、現在何れのモードであるかを画面上の任意の位置に表示するようにしても良い。図30及び図31は、モードの移行に係るユーザへの報知の例を示す図である。図30に示すように、「第1モード」、「移行中」、「第2モード」の何れかを点灯又は点滅させた表示とする。なお、図30に示した「移行中」とは、カーソルの暫定表示が行なわれている状態を指す。
また、図31に示すように、「第1モード」、「第2モードに移行中」、「第2モード」、「第1モードに移行中」の何れかを点灯又は点滅させた表示とする。なお、図31に示した「第1モードに移行中」及び「第2モードに移行中」とは、それぞれ異なるカーソルの暫定表示が行なわれている状態を指す。具体的には、「第1モードに移行中」は「暫定表示B」に該当し、「第2モードに移行中」は「暫定表示A」に該当する。
(5)閾値の補正
また、上記実施形態では、第1閾値よりも所定値だけ大きい値を第4閾値とし、第1閾値よりも所定値だけ小さい値を第5閾値として、モードに応じて補正した閾値を利用する場合を説明した。かかる閾値の補正については、上記とは逆の補正を行なった閾値を利用しても良い。具体的には、第1モードである場合に第1閾値よりも所定値だけ小さい第4閾値を利用し、第2モードである場合に第1閾値よりも所定値だけ大きい第5閾値を利用する。また、第1閾値だけでなく、第2閾値及び第3閾値についても同様に補正後の閾値を利用するようにしても良い。第2閾値及び第3閾値の補正については、第1閾値の補正で加えた又は引いた値と同一の値を加える又は引くことにしても良いし、「第4閾値/第1閾値」又は「第5閾値/第1閾値」の比を第2閾値及び第3閾値に掛けた値を利用しても良い。
また、閾値の補正については、ユーザに応じて閾値を変化させても良い。図32は、第3の実施形態に係る識別部を追加した認識装置の構成例を示すブロック図である。図32に示すように、認識装置100fは、取得部110と、算出部120と、判定部130fと、制御部140と、識別部170fとを有する。また、第1の実施形態と同様に、認識装置100fは、表示部1に接続されている。図32では、第1の実施形態と同様の構成については同一の符号を付し、同様の構成については詳細な説明を省略する場合がある。図32では、以下に示す判定部130f、識別部170f以外の各部の機能及び構成、処理については第1の実施形態と同様である。
認識装置100fでは、ユーザの過去の操作履歴からジェスチャを行なうときの手の振りの大きさや移動速度等について、ユーザごとに平均値を求めておく。識別部170fは、被写体であるユーザを識別する。例えば、識別部170fは、カメラ11によって撮像された映像からジェスチャを行なったユーザの顔認証を行ない、識別結果を判定部130fに対して出力する。なお、ユーザの識別については、顔認証ではなく、指紋認証等のユーザを識別可能な任意の手法を利用すれば良い。
判定部130fは、識別部170fからユーザの識別結果を受け付けた場合に、該ユーザに対応する手の移動速度の平均値と、想定された標準の手の移動速度との比率から、第1閾値の値を補正する。そして、判定部130fは、算出部120によって算出された手の移動速度を特徴量として、手の移動速度と補正後の第1閾値との大小関係を判定する。その後、判定部130fは、手の移動速度と補正後の第1閾値との大小関係の判定結果を制御部140に対して出力する。なお、閾値の補正は、第1閾値だけでなく第2閾値に対しても上記と同様に行なっても良い。
また、閾値の補正については、特定部位の形状を利用して閾値を変化させても良い。図33は、第3の実施形態に係る形状認識部を追加した認識装置の構成例を示すブロック図である。図33に示すように、認識装置100gは、取得部110と、算出部120と、判定部130gと、制御部140と、形状認識部180gとを有する。また、第1の実施形態と同様に、認識装置100gは、表示部1に接続されている。図33では、第1の実施形態と同様の構成については同一の符号を付し、同様の構成については詳細な説明を省略する場合がある。図33では、以下に示す判定部130g、形状認識部180g以外の各部の機能及び構成、処理については第1の実施形態と同様である。
認識装置100gでは、モード選択の精度向上のために、手や指等の特定部位の形状を利用して閾値を補正する。形状認識部180gは、手や指等の特定部位の形状を認識する。例えば、形状認識部180gは、カメラ11によって撮像された映像から、ジェスチャを行なったユーザの手のひらの形状の認識を行ない、認識結果を判定部130gに対して出力する。
判定部130gは、形状認識部180gから手のひらの形状の認識結果を受け付けた場合に、認識結果である手のひらの形状と、所定形状との一致度合いを算出し、一致度合いが所定の一致度よりも大きい場合に、第1閾値を所定値だけ大きくする。また、判定部130gは、一致度合いが所定の一致度よりも小さい場合に、第1閾値を所定値だけ小さくする。そして、判定部130gは、算出部120によって算出された手の移動速度と、補正後の第1閾値との大小関係を判定する。その後、判定部130gは、手の移動速度と補正後の第1閾値との大小関係の判定結果を制御部140に対して出力する。なお、閾値の補正は、第1閾値だけでなく第2閾値に対しても上記と同様に行なっても良い。つまり、ジェスチャを行なう特定部位の形状と所定形状との一致度が高ければ、カーソル移動を行なうような動きの少ない簡易なジェスチャが多い第1モードに応じたジェスチャを行なっている可能性が高い。このため、一致度が高い場合には、第1モードとして判定されやすくするために、第1閾値よりも所定値だけ大きな閾値を利用する。
(6)類似するジェスチャ
また、上記実施形態では、所定時間以内における手の往復運動の折り返しの発生の回数を特徴量として、類似するジェスチャについても好適にモードを選択する場合を説明した。かかる特徴量としては、特定部位の移動ベクトルと所定の座標軸ベクトルとの内積の符号が、過去の所定時間内に切り替わった動きの回数を利用しても良い。例えば、図3の例で説明すると、「P1」から「P8」までを過去の時間を所定時間内とする場合に、算出部220は、「P1」から「P8」それぞれの移動ベクトルと、固定の座標軸ベクトルとの内積を求める。図3の例では、「P1」から「P3」までが左方向、「P3」から「P6」までが右方向、「P6」から「P8」までが左方向のベクトルとなっている。このため、移動ベクトルそれぞれと固定の座標軸ベクトルとの内積の符号は、「正」、「負」、「正」若しくは「負」、「正」、「負」の順で切り替わる。これにより、図3の例では、回数は「2」となる。なお、判定部230や制御部240による処理については、上記実施形態と同様である。
また、手の往復運動の行き帰りの距離がより短ければ、第2モードに応じたジェスチャを行なっていることが多いと考えられる。このため、特徴量の算出においては、移動ベクトルと所定の座標軸ベクトルとの内積の符号の切り替わりから、次の切り替わりまでの距離が所定スカラー以内となる手の往復運動であることを条件として加える。例えば、図3の例で説明すると、算出部220は、「P1」から「P3」、「P3」から「P6」、「P6」から「P8」のそれぞれの距離が所定スカラー以内であれば、内積の符号の切り替わり回数を全てカウントして特徴量として算出する。
(7)認識結果の出力
また、上記実施形態では、第1認識部150dや第2認識部160d等によってジェスチャの認識結果が出力される場合を説明した。第1モードの認識方法によっては、コマンドが確定するまでの間に進捗率を出力しても良い。また、第2モードの認識方法でも、手の往復動作であると確定するまでの間、すなわち所定時間内に手の往復動作が継続している間に、進捗率を出力しても良い。第1モードで第1認識部150dによる進捗率の出力が継続している間は、第2モードに移行したとしても、第1認識部150dによる認識結果を出力しても良い。これは、第2モードについても同様に、第2モードで第2認識部160dによる進捗率の出力が継続している間は、第1モードに移行したとしても、第2認識部160dによる認識結果を出力しても良い。つまり、第1認識部150d及び第2認識部160dの両方からの認識結果が出力されている状態となる。この状態であるときには、例えば、一方で進捗率が「0.8」以上になった場合に、もう一方の認識結果を出力しないようにしても良い。
(8)その他適用例
また、上記実施形態では、認識装置をPC等の情報処理装置に適用する場合を説明した。認識装置は、その適用がPCに限られるわけではなく、種々の機器に適用することができる。図34は、認識装置をテレビ受像機に適用する例を説明する図である。図34に示すテレビ受像機60には、カメラ61が搭載されており、テレビ受像機60の視聴者を撮像している。テレビ受像機60は、視聴者の手62を特定部位として検出及び追跡し、手62のジェスチャを認識する。テレビ画面63には、現在「チャンネル4」が表示されている。視聴者は、手62を左方向に動かすジェスチャを行なうことにより、「チャンネル3」へ変更させることができ、手62を右方向に動かすジェスチャを行なうことにより、「チャンネル5」へ変更させることができる。
図35は、認識装置を医療用の情報端末に適用する例を説明する図である。図35に示す情報端末70は、上記実施形態の何れかの認識装置が搭載されており、手術中の医者への情報提供に用いられる。手術中の医者は、手71を清潔に保つことが好ましいため、医者に患者のモニタリング情報や検査結果等の情報提供を行なう情報端末70に手71を直接触れることは困難である。そこで、情報端末70に上記実施形態の何れかの認識装置を適用することにより、医者が手71のジェスチャによって非接触で情報端末70の操作を可能とする。情報端末70には、カメラ72が搭載されており、医者を撮像している。情報端末70は、医者の手71を特定部位として検出及び追跡してジェスチャを認識し、情報端末70に対して検出されたジェスチャの方向へスクロールさせるためのコマンドや、表示情報を変更するためのコマンド等を実行する。
なお、認識装置の適用については、PC、テレビ受像機、医療用の情報端末に限られるわけではなく、ゲーム機器等、他の機器に適用することもできる。つまり、ユーザがリモートコントローラ、センサ、マーカ等を持ったり、身につけたりすることなく、機器を容易に操作するジェスチャインタフェースに関し、機器制御のためのメニューや機器に表示されたコンテンツ等の切り替えの操作を行なうことができる機器に応用できる。
(9)ハードウェア構成
図36は、認識プログラムがコンピュータを用いて実現されることを示す図である。図36に示すように、認識装置としてのコンピュータ1000は、バス1009で接続された、CPU1001等の制御装置と、ROM1002やRAM1003等の記憶装置と、HDD(Hard Disk Drive)1004、ディスクドライブ1005等の外部記憶装置と、ディスプレイ1006等の表示装置と、キーボード1007やマウス1008等の入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
認識装置で実行される認識プログラムは、一つの様態として、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、認識装置で実行される認識プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、認識装置で実行される認識プログラムをインターネット等のネットワーク経由で提供又は配布するように構成しても良い。また、認識プログラムを、ROM等に予め組み込んで提供するように構成しても良い。
認識装置で実行される認識プログラムは、上述した各部(取得部110、算出部120、判定部130、制御部140)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が記憶媒体から認識プログラムを読み出して実行することにより、上記各部が主記憶装置上にロードされ、取得部110、算出部120、判定部130、制御部140が主記憶装置上に生成されるようになっている。
また、上述してきた実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。また、各実施形態は、内容を矛盾させない範囲で適宜組み合わせることが可能である。また、各実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。