説明

ジェスチャ認識装置、ジェスチャ認識方法およびジェスチャ認識プログラム

【課題】送り動作と振りかぶりを区別することができるジェスチャ認識装置を提供することである。
【解決手段】実施形態のジェスチャ認識装置は、物体あるいはユーザの体の特定部位の動きを認識する。時系列情報取得手段は、前記特定部位の位置あるいは大きさに関する時系列情報を取得する。操作区間検出手段は、前記時系列情報から前記特定部位の移動方向を検出し、前記時系列情報の開始点、前記移動方向が転換する転換点、前記時系列情報の終了点の何れか2つの組み合わせで区分される複数の操作区間を検出する。認識手段は、前記複数の操作区間のうち認識対象となる第1の操作区間およびこの第1の操作区間に後続する第2の操作区間を特定し、この第1の操作区間における前記時系列情報から抽出した第1の特徴量および前記第2の操作区間における前記時系列情報から抽出した第2の特徴量を用いて、前記第1の操作区間に対応する前記特定部位の動きを認識する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ジェスチャ認識装置、ジェスチャ認識方法およびジェスチャ認識プログラムに関する。
【背景技術】
【0002】
ユーザの手の動きを認識して、その動きに関連付けられた所望のコマンドを発生させるジェスチャ認識装置がある。ジェスチャ認識装置には、ユーザの手が上下左右前後など予め定められた方向に動く「送り動作」を認識するものがある。このジェスチャ認識装置では、ユーザの手が移動する速さ(移動速さ)が閾値より大きく、かつ、過去の所定時間内に他の送り動作が検出されていない場合に、送り動作が入力されたと認識していた。
【0003】
しかしながら、この技術では、送り動作の直前に発生する逆方向の手の動き(振りかぶり)における手の移動速さが閾値より大きい場合、この振りかぶりを送り動作と誤認識することがあった。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010‐182014号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
発明が解決しようとする課題は、送り動作と振りかぶりを区別することができるジェスチャ認識装置を提供することである。
【課題を解決するための手段】
【0006】
実施形態のジェスチャ認識装置は、物体あるいはユーザの体の特定部位の動きを認識する。時系列情報取得手段は、前記特定部位の位置あるいは大きさに関する時系列情報を取得する。操作区間検出手段は、前記時系列情報から前記特定部位の移動方向を検出し、前記時系列情報の開始点、前記移動方向が転換する転換点、前記時系列情報の終了点の何れか2つの組み合わせで区分される複数の操作区間を検出する。認識手段は、前記複数の操作区間のうち認識対象となる第1の操作区間およびこの第1の操作区間に後続する第2の操作区間を特定し、前記第1の操作区間における前記時系列情報から抽出した第1の特徴量および前記第2の操作区間における前記時系列情報から抽出した第2の特徴量を用いて、前記第1の操作区間に対応する前記特定部位の動きを認識する。
【図面の簡単な説明】
【0007】
【図1】第1の実施形態のジェスチャ認識装置を示すブロック図。
【図2】実施形態のジェスチャ認識装置のハードウェア構成を示す図。
【図3】実施形態の操作区間検出部の動作を説明する図。
【図4】実施形態のジェスチャ認識装置の画面表示を示す図。
【図5】実施形態のジェスチャ認識装置のフローチャート(全体処理)。
【図6】実施形態のジェスチャ認識装置のフローチャート(ステップS404)。
【図7】第2の実施形態のジェスチャ認識装置を示すブロック図。
【図8】実施形態のジェスチャ認識装置の画面表示を示す図。
【図9】実施形態のジェスチャ認識装置の画面表示を示す図。
【図10】実施形態のジェスチャ認識装置のフローチャート(表示制御部)。
【図11】変形例7のジェスチャ認識装置の画面表示を示す図。
【図12】変形例7のジェスチャ認識装置の画面表示を示す図。
【図13】変形例7のジェスチャ認識装置の画面表示を示す図。
【図14】変形例7のジェスチャ認識装置の画面表示を示す図。
【図15】応用例のジェスチャ認識装置の画面表示を示す図。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について図面を参照しながら説明する。
【0009】
(第1の実施形態)
第1の実施形態にかかるジェスチャ認識装置は、ユーザの手の動きによって画面表示を操作する装置であり、ユーザの送り動作を認識して対応する方向に画面を遷移させる機能を有する。例えば、本実施形態にかかるジェスチャ認識装置を、カメラを搭載したテレビ受像機に内蔵することにより、ユーザの送り動作を認識してテレビ受像機に表示されたオブジェクト(送り動作による制御対象物)の位置を遷移させることができる。ここで、「送り動作」とは、上下左右前後およびこれらの方向の組み合わせなど予め定められた方向への手の動きである。ユーザの手の動きには、ユーザが画面を遷移させたい方向への送り動作以外に、送り動作の直前に発生する逆方向の動きである「振りかぶり」および送り動作の後に手を元の位置に戻そうとする「振り戻し」が存在する。
【0010】
本実施形態にかかるジェスチャ認識装置は、送り動作における手の移動速さが振りかぶりおよび振り戻しにおける手の移動速さよりも高速であるとして、送り動作を検出する。具体的には、ユーザの手の位置に関する時系列情報を取得し、この時系列情報から手が動く移動方向および移動速さを検出する。そして、時系列情報の開始点、手の移動方向が転換する転換点、時系列情報の終了点の何れか2つの組み合わせで区分される複数の操作区間を検出する。認識対象となる第1の操作区間、第1の操作区間に後続する第2の操作区間、第1の操作区間に先行する第3の操作区間を特定し、第1の操作区間における手の移動速さ(第1の特徴量)が、第2および第3の操作区間にける手の移動速さ(第2および第3の特徴量)よりも高速である場合(大きい場合)、第1の操作区間に対応する手の動きを送り動作として認識する。
【0011】
このように、本実施形態のジェスチャ認識装置は、認識対象となる操作区間だけでなく前後の操作区間における手の位置に関する時系列情報を利用して送り動作を認識する。これにより、ユーザの振りかぶりおよび振り戻しを送り動作として誤認識することを防止することができる。
【0012】
(全体のブロック構成)
図1は、第1の実施形態にかかるジェスチャ認識装置を示すブロック図である。本実施形態のジェスチャ認識装置は、ユーザの手の位置に関する時系列情報を取得する時系列情報取得部101と、この時系列情報から手の移動方向を検出し、時系列情報の開始点、移動方向が転換する転換点、時系列情報の終了点の何れか2つの組み合わせで区分される複数の操作区間を検出する操作区間検出部102と、検出された複数の操作区間のうち認識対象となる第1の操作区間、第1の操作区間に後続する第2の操作区間、第1の操作区間に先行する第3の操作区間を特定し、第1の操作区間における手の移動速さが、第2および第3の操作区間にける手の移動速さよりも高速である場合、第1の操作区間に対応する手の動きを送り動作として認識する認識部103と、この認識結果に応じたコマンドを発生させるコマンド発生部104と、前記コマンドによる制御対象物の形態を表示する表示制御部105を備える。
【0013】
(ハードウェア構成)
本実施形態のジェスチャ認識装置は、図2に示すような通常のコンピュータを利用したハードウェアで構成されており、装置全体を制御するCPU(Central Processing Unit)等の制御部201と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶部202と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶部203と、ユーザの指示入力を受け付けるキーボードやマウスなどの操作部204と、外部装置との通信を制御する通信部205と、映像を取得するカメラ206と、映像を表示するディスプレイ207と、これらを接続するバス208を備えている。
【0014】
このようなハードウェア構成において、制御部201がROM等の記憶部202や外部記憶部203に記憶された各種プログラムを実行することにより以下の機能が実現される。
【0015】
(時系列情報取得部)
時系列情報取得部101は、ユーザの手の位置に関する時系列情報を取得する。手の位置に関する時系列情報は、カメラ206の撮像素子(イメージセンサなど)を用いて撮像された画像から特許文献1に記載の手法を用いて取得できる。手の位置は、撮像素子から得られる手領域の重心としてよく、撮像された画像上のx、y座標に限らず、距離センサや複数の撮像素子から推定された奥行き情報を用いてもよい。時系列情報は撮像した画像の各フレームについて取得でき、開始点は手が最初に検出された位置、終了点は手が最後に検出された位置あるいは現時点で検出された最新の手の位置とすることができる。例えば、ユーザの手の位置を画像上のx、y座標で表現する場合、時系列情報取得部101は、i番目のフレームでの位置(x,y)とともに取得時刻Tを取得する。取得時刻Tは、ジェスチャ認識装置の起動時、又は時系列情報取得部101による時系列情報の取得開始時を基準とした経過時間、経過クロック数、経過フレーム数などで表現できる。
【0016】
なお、手の位置に関する時系列情報を、カメラ206からではなく、外部記憶部203や通信部205によって接続された外部装置から直接取得することもできる。
【0017】
(操作区間検出部)
操作区間検出部102は、時系列情報から手の移動方向、移動速さ、移動距離を検出し、時系列情報の開始点、移動方向が転換する転換点、時系列情報の終了点の何れか2つの組み合わせで区分される複数の操作区間を検出する。
【0018】
手の移動方向は、時系列情報で表される手の位置が変化する方向とする。例えば、ジェスチャ認識装置が左右(x軸方向)の送り動作を認識する場合、フレーム間におけるx座標の差分値(x−xi-1)を計算する。そして、この差分値が正の場合は移動方向が右(x軸の正の向きが右方向であるとき)、負の場合は移動方向が左と判別する。手の移動速さは、時系列情報として得られる手の位置の微分値(フレーム間の差分値)で計算できる。つまり、x、xi−1の取得時刻をそれぞれT、Ti−1としたとき、移動速さは、|(x−xi−1)/(T−Ti−1)|で算出できる。手の移動距離は、各フレームの座標間におけるユークリッド距離で計算できる。
【0019】
操作区間検出部102は、時系列情報の開始点、移動方向が転換する転換点、時系列情報の終了点の何れか2つの組み合わせで区分される複数の操作区間を検出する。例えば、ユーザが手を「右から左」に動かす送り動作をする場合、前後の振りかぶりおよび振り戻しを考慮すると、手の移動方向は「左から右」、「右から左」、「左から右」のようになる。この場合、操作区間検出部102は、「左(開始点)から右(転換点)」、「右(転換点)から左(転換点)」、「左(転換点)から右(終了点)」のそれぞれの動きを操作区間として検出する。なお、操作区間検出部102は、手の移動が停止した時点を終了点あるいは開始点として操作区間を検出することができる。手の移動が停止したか否かは、所定フレームにわたる手の移動距離を観測することで判別する。
【0020】
操作区間検出部102は、各操作区間について取得時刻を取得する。ここで、取得時刻は各操作区間の終端における時刻を表しており、時系列情報取得部101で取得された取得時刻Tから求めることができる。
【0021】
操作区間検出部102は、操作区間をバッチ処理で検出しても、リアルタイム処理で検出してもよい。
【0022】
図3の時系列情報を用いて、バッチ処理による操作区間の検出方法を説明する。この例では、P〜Pは、時系列情報取得部101によって取得されたフレーム毎の時系列情報(手の位置情報)を示している。ジェスチャ認識装置が左右の動きを認識する場合、操作区間検出部102は、まず、開始点Pから直後の転換点Pまでの区間P〜Pを第1の操作区間、第1の操作区間の終端であるPから直後の転換点Pまでの区間P〜Pの区間を第2の操作区間として検出し、検出した操作区間の情報を認識部103に出力する。この場合、操作区間検出部102は、第3の操作区間は検出しない。続いて、操作区間検出部102は、P〜Pの区間を第3の操作区間、P〜Pの区間を第1の操作区間、P〜Pの区間を第2の操作区間として検出し、検出した操作区間の情報を認識部103に出力する。操作区間検出部102は、以上の処理を第1の操作区間の終端が時系列情報の終了点になるまで繰り返す。
【0023】
次に、操作区間をリアルタイムで検出する場合について説明する。操作区間をリアルタイムで検出する場合、バッチ処理の場合とは第1の操作区間および第2の操作区間の検出方法が異なる。操作区間検出部102は、転換点が存在する場合には最新の転換点、転換点が存在しない場合には時系列情報の開始点を始端とし、最新の時系列情報を取得してから所定時間T0aが経過するまでに転換点が存在する場合はこの転換点を、転換点が存在しない場合は所定時間T0aが経過するまで(この時刻を操作区間確定時刻とする)に取得された最新の時系列情報の位置(終了点)を終端として第1の操作区間を検出する。また、操作区間検出部102は、操作区間確定時刻においてこの第1の操作区間の終端を第2の操作区間の始端とし、この始端の後に転換点が存在する場合にはこの転換点を、転換点が存在しない場合には終了点を第2の操作区間の終端として検出する。
【0024】
操作区間検出部102は、操作区間の検出を開始してから第1および第2の操作区間の検出を確定するまでに、所定時間T0aを要する。つまり、操作区間検出部102は、時刻Tの時点で操作区間の検出を開始してから、所定時間T0a経過後、即ち時刻T+T0aの時点で第1および第2の操作区間の検出を確定する。このため、本実施形態では、第1および第2の操作区間をリアルタイムで検出するが、厳密には検出を確定するまでに所定時間T0aの遅延が生じ、後述の認識部103による認識も所定時間T0aの遅延が生じることになる。
【0025】
操作区間の検出過程について、図3を参照しながら時系列に説明する。まず、時系列情報取得部101により最新の時系列情報である最新点P(開始点)が取得される。この段階では、操作区間検出部102は、操作区間を検出しない。
【0026】
続いて、時系列情報取得部101により次の最新点Pが取得されると(この時点を時刻Tとする)、操作区間検出部102は、開始点Pを始端とし最新点Pを終端とする区間P〜Pを第1の操作区間として検出する。直前には区間が存在しないため、第3の操作区間は検出しない。この時点では、第1の操作区間の始端はPに確定するが、終端は確定しておらず、時刻Tの時点から所定時間T0aが経過するまでに最新点が取得された場合、第1の操作区間の終端が更新される。
【0027】
例えば、時刻Tから所定時間T0aが経過するまでにPまでが取得された場合、操作区間検出部102は、区間P〜Pを第1の操作区間として検出する。この場合、操作区間検出部102は、第1の操作区間の直前と直後には他の操作区間が存在しないため、第3および第2の操作区間を検出せず、検出した第1の操作区間の情報を、操作区間の検出開始時刻がTのときの情報として認識部103に出力する。
【0028】
時刻Tから所定時間T0aが経過するまでに点Pまで取得された場合、Pが第1の操作区間の始端Pの直後の転換点となるため、操作区間検出部102は、転換点Pを終端とする区間P〜Pを第1の操作区間として確定する。この場合、操作区間検出部102は、第1の操作区間の終端であるPを始端とし、最新点Pを終端とする区間P〜Pを第2の操作区間として確定する。
【0029】
時刻Tから所定時間T0aが経過するまでに点Pまでが取得された場合もPが第1の操作区間の始端直後の転換点となるため、操作区間検出部102は、転換点Pを終端とする区間P〜Pを第1の操作区間として確定する。この場合、操作区間検出部102は、転換点Pを始端とし、当該始点の直後の転換点であるPを終端とする区間P〜Pを第2の操作区間として確定する。
【0030】
一方で、時刻Tから所定時間T0aが経過するまでにPが取得されなかった場合、Pが終了点となるため、操作区間検出部102は、終了点Pを終端とする区間P〜Pを第1の操作区間に確定する。この場合、操作区間検出部102は、第2および第3の操作区間を検出せず、検出した第1の操作区間の情報を、操作区間の検出開始時刻がTのときの情報として認識部103に出力する。続いて、時系列情報取得部101により最新点Pが取得されると(この時点を時刻Tとする)、操作区間検出部102は、最新の転換点Pを始端、終了点Pを終端とする区間P〜Pを第1の操作区間として検出する。ここで、第1の操作区間の始端であるPを終端とする操作区間を第3の操作区間として確定する。
【0031】
以下、時系列情報取得部101により最新点Pが取得されるまで、同様な処理が行われる。
【0032】
なお、操作区間検出部102は、第1および第2の操作区間を確定してから、第1、第2および第3の操作区間の情報を認識部103に出力するのではなく、検出された操作区間の情報を逐次認識部103に出力してもよい。
【0033】
0aは0.4秒程度に設定できる。また、操作区間検出部102は、第1の操作区間での特定部位の移動速さに応じて所定時間T0aを変更してもよく、例えば、移動速さが速くなるほど所定時間T0aを短くするようにしてもよい。
【0034】
(認識部)
認識部103は、操作区間検出部102で検出された複数の操作区間のうち認識対象となる第1の操作区間が送り動作に該当するか否かを認識する。ここで、本実施形態の認識部103は、第2および第3の操作区間における時系列情報から抽出した特徴量(手の移動速さ)を用いて第1の操作区間の動きを認識する。具体的には、以下の2つの条件を満たす際に、第1の操作区間に対応する手の動きを送り動作として認識する。
【0035】
第1条件:第3の操作区間が存在しない、あるいは、第1の操作区間における手の移動速さVc(第1の特徴量)が第3の操作区間における手の移動速さVb(第3の特徴量)より高速
第2条件:第2の操作区間が存在しない、あるいは、第1の操作区間における手の移動速さVc(第1の特徴量)が第2の操作区間における手の移動速さVa(第2の特徴量)より高速
ここで、操作区間における手の移動速さは、それぞれの区間の各フレームで計算された移動速さの最大値とすることができる。
【0036】
認識部103で認識される送り動作の方向は、第1の操作区間の始端および終端の座標から計算できる。例えば、ジェスチャ認識装置が左右(x軸方向)の送り動作を認識する場合、第1の操作区間の始端および終端のx座標の差分値から送り動作の方向を計算できる。なお、第1の操作区間における手の移動速さが所定閾値以下になる場合は、送り動作に該当しないと認識してもよい。また、第1の操作区間の始端および終端間の距離を手の移動距離Lcとして計算し、この移動距離Lcが所定閾値以下になる場合は、送り動作に該当しないと認識してもよい。
【0037】
なお、操作区間検出部102がリアルタイム処理で各操作区間を検出する場合、操作区間の検出を開始してから第1および第2の操作区間の検出を確定するまでに、所定時間T0aを要する。このため、認識部103による認識も所定時間T0aの遅延が生じることになる。
【0038】
このように本実施形態のジェスチャ認識装置は、認識対象となる操作区間だけでなく前後の操作区間におけるユーザの手の位置に関する時系列情報を利用して送り動作を認識する。これにより、ユーザの振りかぶりおよび振り戻しを送り動作として誤認識することを防止することができる。
【0039】
(コマンド発生部)
コマンド発生部104は、認識部103での認識結果に応じたコマンドを発生させる。認識された送り動作が「右から左」への動きであった場合は、コマンド発生部104は、ジェスチャでの遷移対象となるオブジェクトを「右から左」へ移動させるようなコマンドを発生させる。その際、コマンドを発生したときは、その第1の操作区間の始端が同じうちは再度コマンドを発生させる必要はない。
【0040】
(表示制御部)
表示制御部105は、コマンド発生部104で発生したコマンドに応じて、ディスプレイ207に表示するオブジェクト(コマンドによる制御対象物)の形態を変更する。例えば、オブジェクトを「右から左」へ移動させるようなコマンドを受理した場合は、図4のように、301の画面に表示されるオブジェクト303〜305の位置を302の画面に表示されるように一つ左に遷移させる。つまり、中央にあったオブジェクト303は左側に、右側にあったオブジェクト304が中央に来るように遷移し、オブジェクト303の左側にあったオブジェクト305は画面から消え、オブジェクト304の右側にあったオブジェクト306が画面302に現れる。
【0041】
(フローチャート:全体処理)
図5のフローチャートを利用して、本実施形態にかかるジェスチャ認識装置の処理を説明する。まず、ステップS401では、時系列情報取得部101は、ユーザの手の位置に関する時系列情報を取得する。
【0042】
ステップS402では、操作区間検出部102は、時系列情報から手の移動方向、移動速さ、移動距離を計算する。
【0043】
ステップS403では、操作区間検出部102は、複数の操作区間を検出する。
【0044】
ステップS404では、認識部103は、認識対象となる第1の操作区間に対応する動きが送り動作に該当するか否かを認識する。ステップS404の詳細は後述する。
【0045】
ステップS405では、コマンド発生部104は、ステップS404における認識結果に応じたコマンドを発生させる。第1の操作区間が送り動作として認識された場合は、この送り動作に応じたコマンドを発生させる。一方、第1の操作区間が送り動作として認識されずに棄却された場合は、コマンドを発生させない。
【0046】
ステップS406では、表示制御部105は、コマンド発生部104でのコマンドに応じてユーザに提示する画面表示を更新する。
【0047】
(フローチャート:ステップS404)
図6のフローチャートを利用して、ステップS404の処理を説明する。まず、ステップS501では、認識部103は、認識対象となる第1の操作区間を特定する。
【0048】
ステップS502では、認識部103は、第1の操作区間の移動速さVcおよび移動距離Lcが、それぞれ所定の閾値V0および閾値L0を超えるか否かを判定する。閾値を超える場合は、ステップS503へ移行する。閾値を超えない場合は、ステップS508へ移行し、この第1の操作区間は送り動作ではないと認識する。
【0049】
ステップS503では、認識部103は、先行する第3の操作区間が操作区間検出部102で検出されているか否かを判定する。第3の操作区間が検出されていない場合はステップS505へ、検出されている場合はステップS504へ移行する。
【0050】
ステップS504では、認識部103は、第1の操作区間の移動速さVcと第3の操作区間の移動速さVbを比較する。VcがVbを超える場合はステップS505へ、それ以外の場合はステップS508へ移行する。このように、本実施形態のジェスチャ認識装置は、認識対象となる第1の操作区間と先行する第3の操作区間の移動速さを比較することにより、送り動作の後に発生する振り戻しを送り動作として誤認識することを防止する。
【0051】
ステップS505では、認識部103は、第2の操作区間が操作区間検出部102で検出されているか否かを判定する。第2の操作区間が検出されていない場合はステップS507へ、検出されている場合はステップS506へ移行する。
【0052】
ステップS506では、認識部103は、第1の操作区間の移動速さVcと第2の操作区間の移動速さVaを比較する。VcがVaを超える場合はステップS507へ、それ以外の場合はステップS508へ移行する。このように、本実施形態のジェスチャ認識装置は、認識対象となる第1の操作区間と後続する第2の操作区間の移動速さを比較することにより、送り動作の前に発生する振りかぶりを送り動作として誤認識することを防止する。(効果)
このように本実施形態のジェスチャ認識装置は、認識対象となる操作区間だけでなく前後の操作区間における手の位置に関する時系列情報を利用して送り動作を認識する。これにより、ユーザの振りかぶりおよび振り戻しを送り動作として誤認識することを防止することができる。
【0053】
(変形例1)
本実施形態における操作区間検出102では、リアルタイム処理で操作区間を検出する際、所定時間T0aの遅延が生じているが、所定時間T0a経過する前に操作区間を検出することもできる。例えば、図3において、第1の操作区間の終端をT(Pが取得された時刻)とし、Tから所定時間T0aが経過するまでにPまでの時系列情報が取得されるものとする。この場合、本変形例の操作区間検出部102は、所定時間T0aの経過を待つことなく、Pが転換点として検出された時点でPからPまでの区間を第2の操作区間として確定し、その情報を認識部103に出力することができる。これにより、認識に必要なタイムラグを減らすことができる。
【0054】
また、第1の操作区間の移動速さ(第1の特徴量)と第1の操作区間の終端以降に取得された時系列情報の各フレームでの移動速さを逐次比較し、各フレームでの移動速さが第1の操作区間の移動速さを超えた時点で、この第1の操作区間は送り動作ではないと認識することもできる。これにより、認識に必要なタイムラグを減らすことができる。
【0055】
(変形例2)
本実施形態にかかるジェスチャ認識装置は、送り動作における手の移動速さが振りかぶりと振り戻しにおける手の移動速さよりも高速であるとして送り動作を検出したが、送り動作における手の移動速さが振りかぶりと振り戻しにおける手の移動速さよりも低速であるとして送り動作を検出することもできる。例えば、図4のような画面表示を変更するアプリケーションにおいて、ユーザに対して意図する方向にゆっくり手を動かすよう指示した場合、本変形例のジェスチャ認識装置を用いることができる。
【0056】
本変形例における認識部103は、以下の2つの条件を満たす際に、第1の操作区間に対応する手の動きを送り動作として認識する。
【0057】
第1条件:第3の操作区間が存在しない、あるいは、第1の操作区間における手の移動速さVcが第3の操作区間における手の移動速さVbより低速
第2条件:第2の操作区間が存在しない、あるいは、第1の操作区間における手の移動速さVcが第2の操作区間における手の移動速さVaより低速
また、図6のステップS504およびS506おける条件は、それぞれVc<VbおよびVc<Vaになる。
【0058】
なお、各操作区間における時系列情報から抽出した特徴量として手の移動速さに−1を掛け合わせたものを用いると、本実施形態における処理と同様な方法で「送り動作における手の移動速さが振りかぶりと振り戻しにおける手の移動速さよりも低速である」とした送り動作を認識することができる。
【0059】
(変形例3)
本実施形態の認識部103は、第1〜第3の操作区間における時系列情報から抽出した特徴量として手の移動速さを利用したが、手の移動距離を特徴量として用いることもできる。送り動作の移動距離が振りかぶりおよび振り戻しの移動距離よりも長いとみなしたときは、第1の操作区間の移動距離Lcが第2および第3の操作区間の移動距離より長い場合、第1の操作区間に対応する手の動きを送り動作として認識することができる。
【0060】
この他にも、手の加速度の絶対値を特徴量として用いることもできる。送り動作の加速度の絶対値が振りかぶりおよび振り戻しの加速度の絶対値よりも大きいとみなしたときは、第1の操作区間の加速度の絶対値が第2および第3の操作区間の加速度の絶対値より大きい場合、第1の操作区間に対応する手の動きを送り動作として認識することができる。なお、各操作区間の加速度の絶対値には、その区間における時系列情報から計算された加速度の絶対値の最大値を用いる。
【0061】
さらに、数式1で表される評価値Eを各操作区間の特徴量として用いることもできる。
【0062】

評価値E = V×exp{α×(Q−P)×F(dir)} …(数式1)
ここで、Vは各操作区間における手の移動速さの最大値、αは正の係数、Qは操作区間の終端の位置、Pは基準位置、F(dir)は所定の関数である。Pは、例えば手を最初に検出した位置(時系列情報の開始点)とすることができる。F(dir)は、+1もしくは−1の値をとる関数である。例えば、左右方向の手の動きに着目する場合、F(dir)は、操作区間の移動方向がPを原点とする座標軸上で見たときに正の方向なら1、負の方向なら−1となる。つまり、基準位置Pよりも各操作区間の終点が右側にある場合において、移動方向が右である操作区間の評価値Eは、Vに1.0より大きな倍率をかけた値となり、移動方向が左である操作区間の評価値Eは、Vに1.0未満の倍率をかけた値となる。つまり、基準位置Pよりも右側の領域において同じ移動速さで左右に手を動かした場合、右方向へ移動する操作区間の評価値Eの方が高い値となる。これにより、手の移動速さに差がない場合でも、ユーザの振りかぶりおよび振り戻しを送り動作として誤認識することを防止することができる。なお、Pを肘の位置としてもよい。
【0063】
(変形例4)
ジェスチャ認識装置が、カメラ206に正対する方向に手のひらを押し引きする動きを送り動作として認識するようにすることもできる。この場合、時系列情報取得部101は、手の大きさ(例えば、手を囲む矩形領域の面積)を時系列情報として取得し、その時系列情報の変化方向(増大方向、減少方向)を手の移動方向とすることができる。手の移動速さは手の大きさの変化の速度(単位時間あたりの変化量の最大値)、手の移動距離は手の大きさの変化量でそれぞれ代替できる。
【0064】
(変形例5)
本実施形態のジェスチャ認識装置は、認識対象となる操作区間(第1の操作区間)だけでなく前後の操作区間(第2および第3の操作区間)における手の位置に関する時系列情報を利用して送り動作を認識したが、認識対象および後続の操作区間における手の位置に関する時系列情報のみを利用して送り動作を認識してもよい。これにより、送り動作の前に発生する振りかぶりを送り動作として誤認識することを防止することができる。
【0065】
また、本実施形態のジェスチャ認識装置は、ユーザの手の動きを認識したが、この他にもユーザの顔や足などの特定部位を認識するようにしてもよい。また、ユーザの体の特定部位ではなく、物体を認識してもよい。例えば、リモートコントローラ、センサ、マーカーなどの物体全体やその物体の特定部位の動きから送り動作を認識することもできる。
【0066】
また、操作区間検出部102および認識部103は、時系列情報取得部101で取得された時系列情報を間引いて操作区間を検出することもできる。例えば、フレームを1つおきに処理することにより演算量を削減することができる。
【0067】
(変形例6)
本実施形態においてリアルタイムで認識する場合は、操作区間検出部102は、時系列情報取得部101で点を取得するたびに第1から第3の操作区間の情報を検出/更新していたが、特にそれに限られることはなく、特定の時刻についてのみ操作区間の検出を開始してもよい。本変形例では、操作区間の検出にかかる演算量を削減するため、前のフレームでの認識部103の結果に応じて操作区間の検出を開始する時刻を定める。具体的には、以下の過程で操作区間を検出する。
【0068】
まず、開始点あるいは転換点をみつけたら、それ以降は時系列情報取得部101で最新点を取得するたびにその時刻における第1の操作区間および第3の操作区間から抽出した特徴量を比較する。ここで、第1の操作区間の特徴量が第3の操作区間の特徴量をはじめて超えた時刻を検出開始時刻Tとし、このときの情報を認識部103に出力してよい(その情報は時刻T+T0aの時点で確定する。確定後に出力してもよいし、確定するまでの間も時系列情報取得部101で点を取得するたびに逐次出力してもよい)。その後は、次の転換点を見つけるまでは認識部103に情報を出力しない。
【0069】
(第2の実施形態)
図7は、第2の実施形態にかかるジェスチャ認識装置の構成を示すブロック図である。第2の実施形態が第1の実施形態と異なるのは、表示制御部701が、操作区間検出部102における操作区間の検出状況および認識部103における認識状況に応じて、ユーザの送り動作によって制御される対象物の形態を変更する点である。ここで、対象物の形態は、対象物の外観だけでなく、対象物がディスプレイ207に表示される位置を意味する。
【0070】
本実施形態にかかるジェスチャ認識装置は、第1の操作区間の認識状況に応じてユーザに提示する画面表示を逐次更新する。例えば、図8のように、手の送り動作によってオブジェクト(コマンドによる制御対象物)を左右に移動させるようなアプリケーションを考える。オブジェクトを「左から右」へ動かす送り動作をする場合、その前に「右から左」の振りかぶりが、その後ろに「右から左」の振り戻しが発生する。本実施形態の表示制御部701は、「右から左」の所定の閾値以上の移動速さと移動距離をもった動きを検出した時点で802のようにオブジェクト303〜305を右から左へとゆっくりと移動させる。そして、「左から右」への動きがその直前の操作区間よりも特徴量が大きくなったら803のようにオブジェクト303〜305を左から右へとゆっくりと移動させる。最後に、認識部103がこの「左から右」への手の動きを送り動作として認識することが確定すると、804のようにオブジェクトを303〜305、805を素早く一つ右の位置に遷移させる。
【0071】
この他にも、送り動作の前に振りかぶりが発生しなかった場合は、「右から左」への手の送り動作を検出した時点で図9の902のようにオブジェクト303〜305を左から右へとゆっくりと移動させる。そして、認識部103がこの「右から左」への手の動きを送り動作として認識することが確定すると、903のようにオブジェクト303〜306を素早く一つ左の位置に遷移させる。
【0072】
このように、本実施形態のジェスチャ認識装置は、第1の操作区間の認識状況に応じてユーザに提示する情報を逐次更新する。これにより、認識状況をユーザに逐次フィードバックすることができ、ユーザが体感する操作性を向上させることができる。
【0073】
(フローチャート:表示制御部)
図10のフローチャートを利用して、本実施形態にかかるジェスチャ認識装置の表示制御部701の処理を説明する。表示制御部701は、操作区間検出部102における操作区間の検出状況および認識部103から取得した認識状況に関する情報を利用して、ユーザに提示する情報を制御する。ここでは、変形例6の場合で説明する。つまり、第1の操作区間が第2の操作区間よりも特徴量が大きくなった瞬間の時刻を検出開始時刻Tとし、時刻Tから認識部103の認識結果が確定する時刻T+T0aまでの表示について説明する。
【0074】
まず、ステップS1001では、認識部103によって認識対象となる第1の操作区間が特定される。
【0075】
ステップS1002では、操作区間検出部102によって後続する第2の操作区間が検出されているか否かが判別され、検出されている場合はステップS1003へ、検出されていない場合はステップS1004へ移行する。
【0076】
ステップS1003では、認識部103によって第1の操作区間の移動速さVcと第2の操作区間の移動速さVaが比較される。VcがVaを超える場合はステップS1004へ、それ以外の場合はステップS1006へ移行する。
【0077】
ステップS1003のNoの分岐では、認識部103によってVaがVc以上になると判別されている。つまり、第1の操作区間における手の動きが送り動作として認識されることはない。したがって、ステップS1006では、表示制御部701はオブジェクトの表示を次の認識対象となる第2の操作区間の移動方向へ動かす。
【0078】
なお、S1006に移行した際は、次のフレームからは上述の処理で第2の操作区間であった区間を第1の操作区間としてステップS1001からの処理を実行する。
【0079】
ステップS1004では、現在時刻Tと検出開始時刻Tの差分がT0aを超えているか否かを判別する。超えている場合は、第1の操作区間が送り動作として確定していることから、ステップS1007でオブジェクト表示の遷移を完了させる。それ以外の場合は、ステップS1005で制御対象となるオブジェクト表示を第1の操作区間の移動方向にゆっくりと移動させる。なお、この段階では、第1の操作区間における手の動きが送り動作として認識されることは確定していない。
【0080】
このように、本実施形態のジェスチャ認識装置は、送り動作の認識が確定する前に遷移対象となるオブジェクトの表示を更新する。これにより、認識状況をユーザに逐次フィードバックすることができ、ユーザが体感する操作性を向上させることができる。
【0081】
(効果)
このように、本実施形態のジェスチャ認識装置は、第1の操作区間の認識状況に応じてユーザに提示する画面表示を逐次更新する。これにより、認識状況をユーザに逐次フィードバックすることができ、ユーザが体感する操作性を向上させることができる。
【0082】
(変形例7)
表示制御部701による表示の制御は、オブジェクトをゆっくり動かすというものに限定されない。例えば、図11に示すように、オブジェクトを移動方向に傾けるように動かしたり(1101)、移動方向に回転するように動かしたり(1102)、移動方向に矢印を表示したり(1103)することで、認識部103における認識状況をユーザに逐次フィードバックすることができる。この他にも、図12〜14に示すような例が考えられる。
【0083】
図12では、例えば、図10のステップS1005において第1の操作区間の移動方向が「右から左」である場合、1201のようなゲージを表示し、認識部103での認識処理の進捗率に応じて1202〜1204と表示を切り替えることができる。ここで、進捗率は、検出開始時刻Tcから現在時刻Tまでの経過時間(T−Tc)とT0aを用いて数式2により計算できる。
【0084】

進捗率 =(T−Tc)/T0a …(数式2)
進捗率が0.33以下である場合は1201、進捗率が0.33より大きく0.66以下である場合は1202、進捗率が0.66より大きい場合は1203、進捗率が1になった場合は1204をそれぞれ表示する。なお、T0a経過する前に第1の操作区間における手の動きが送り動作として認識されることが確定した場合は、強制的に進捗率を1にすることができる。また、第1の操作区間が送り動作ではないことが確定した場合は、後続する第2の操作区間における手の移動方向にゲージを表示することができる。
【0085】
図13では、表示制御部701は、上下方向と左右方向の輪が縦横に回転するようなゲージを表示する。例えば、第1の操作区間の移動方向が左である場合は、水平方向の輪が左方向にゆっくり回転しはじめ、最初に右端にあった模様1301が中央付近に移動する。ここでは、送り動作が認識された時点で一つ左隣の位置に模様が移動するように、進捗率に応じて等速に移動する(右方向も同様)。一方、第1の操作区間の移動方向が上である場合は、垂直方向の輪が上方向にゆっくり回転し始め、最初に下端にあった模様1302が中央付近に移動する。ここでは、送り動作が認識された時点で一つ上隣の位置に模様が移動するように、進捗率に応じて等速に移動する(下方向も同様)。
【0086】
図14では、表示制御部701は、手の動きに連動したカーソル1401と二つの同心円1402、1403によるゲージを表示する。これまで記した画面表示は、第1の操作区間における手の移動距離や移動速さが閾値を超えて初めて発生するため、閾値以下のわずかな手の振りだと、その振りが検出されているのかどうかがユーザには提示されなかった。本ゲージでは、常に手の動きと連動させるようなカーソル1401を表示し、それが閾値を示す円1402の外に出た瞬間に認識処理が開始されたということを示す。カーソル1401は、手が最初に検出された位置(時系列情報の開始点)を基準とした現在の手の位置の方向に、手の移動距離と移動速さの積だけ円の中心から離れた位置に表示される。移動距離、移動速さの閾値がそれぞれL0、V0のとき、円1402の半径はL0×V0となる。カーソル1401が円1402の外に出た瞬間、進捗率とその方向を表す矢印1404が表示され、所定時間T0a経過したときに円1403に到達するように進捗率に応じた移動量で円の中心から離れる方向に動き出す。矢印1404が円1403に到達した瞬間、第1の操作区間における手の動きが送り動作として認識されることになる。なお、図14における進捗率は数式3で計算できる。
【0087】

進捗率 = MIN(移動距離、L0)×MIN(移動速さ、V0) …(数式3)
(変形例7)
図10のステップS1005、S1008およびS1009におけるオブジェクトの移動速さを各操作区間における時系列情報に応じて変化させてもよい。例えば、第1の操作区間における手の移動速さや加速度の絶対値に応じてオブジェクトの移動速さを変えたりすることができる。例えば、図12において、素早く手を振ったらゲージの増え方が素早くなるようにしてもよい。
【0088】
(応用例)
本実施形態のジェスチャ認識装置を電子書籍端末に内蔵した場合、ユーザのジェスチャで本をめくるよう制御することもできる。図15のように本をめくる途中であるかのような表示をすることにより、本をめくっているかのような効果を与えることができる。つまり、第1の操作区間の移動方向が左であると検出されたとき、進捗率が0のときには1501に、進捗率が0.33のときはめくる対象となるページ1502が1/3ほど左にめくられた状態を示す1503に、進捗率が0.66のときはページ1502が2/3ほど左にめくられた状態を示す1504に、進捗率が1になったらページが完全に左にめくられた状態にする。
【0089】
また、画面内に入りきらないようなウェブページの閲覧の直観的操作として、上下左右の移動を用いてもよい。このとき、1つのコマンドにつき、あらかじめ決められた距離だけウェブページ内を移動させてもよい。
【0090】
さらには、CGによる立体オブジェクトや全方位カメラの映像を好きな角度から眺める際の操作手段として用いてもよい。このとき、1つのコマンドにつき、あらかじめ決められた角度だけ回転させてもよい。
【0091】
(効果)
以上述べた少なくとも一つの実施形態のジェスチャ認識装置によれば、認識対象となる操作区間だけでなく前後の操作区間における手の位置に関する時系列情報を利用して送り動作を認識する。これにより、ユーザの振りかぶりおよび振り戻しを送り動作として誤認識することを防止することができる。
【0092】
なお、以上説明した本実施形態における一部機能もしくは全ての機能は、ソフトウェア処理により実現可能である。
【0093】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0094】
101 時系列情報取得部
102 操作区間検出部
103 認識部
104 コマンド発生部
105、701 表示制御部
201 制御部
202 記憶部
203 外部記憶部
204 操作部
205 通信部
206 カメラ
207 ディスプレイ
208 バス
301、302、801〜804、901〜903、1101〜1103、1501、1053、1504 画面表示
303〜306、805 オブジェクト
1201〜1203、1402、1403 ゲージ
1301、1302 模様
1401 カーソル
1502 ページ

【特許請求の範囲】
【請求項1】
物体あるいはユーザの体の特定部位の動きを認識するジェスチャ認識装置であって、
前記特定部位の位置あるいは大きさに関する時系列情報を取得する時系列情報取得手段と、
前記時系列情報から前記特定部位の移動方向を検出し、前記時系列情報の開始点、前記移動方向が転換する転換点、前記時系列情報の終了点の何れか2つの組み合わせで区分される複数の操作区間を検出する操作区間検出手段と、
前記複数の操作区間のうち認識対象となる第1の操作区間およびこの第1の操作区間に後続する第2の操作区間を特定し、この第1の操作区間における前記時系列情報から抽出した第1の特徴量および前記第2の操作区間における前記時系列情報から抽出した第2の特徴量を用いて、前記第1の操作区間に対応する前記特定部位の動きを認識する認識手段と、
を備えるジェスチャ認識装置。
【請求項2】
前記認識手段が、前記第1の操作区間に先行する第3の操作区間を特定し、前記第1および第2の特徴量に加え、前記第3の操作区間における前記時系列情報から抽出した第3の特徴量を用いて、前記第1の操作区間に対応する前記特定部位の動きを認識する請求項1記載のジェスチャ認識装置。
【請求項3】
前記認識手段が、前記第1の特徴量と前記第2の特徴量の大きさを比較して、前記第1の操作区間に対応する前記特定部位の動きを認識する請求項1乃至請求項2記載のジェスチャ認識装置。
【請求項4】
前記認識手段が、前記第1の特徴量が前記第2および第3の特徴量より大きい場合、前記第1の操作区間に対応する前記特定部位の動きを送り動作として認識する請求項2記載のジェスチャ認識装置。
【請求項5】
前記認識手段が、前記第1の特徴量が前記第2および第3の特徴量より小さい場合、前記第1の操作区間に対応する前記特定部位の動きを送り動作として認識する請求項2記載のジェスチャ認識装置。
【請求項6】
前記送り動作によって制御される対象物の形態を表示する表示制御手段を更に備え、
前記表示制御手段が、前記第1の特徴量と前記第2の特徴量の大きさの比較結果に応じて、前記対象物の形態を変更する請求項3記載のジェスチャ認識装置。
【請求項7】
前記送り動作によって制御される対象物の形態を表示する表示制御手段を更に備え、
前記表示制御手段が、前記第1の特徴量と前記第2の特徴量の大きさの比較結果および前記第1の特徴量と前記第3の特徴量の大きさの比較結果に応じて、前記対象物の形態を変更する請求項4乃至請求項5記載のジェスチャ認識装置。
【請求項8】
前記表示制御手段が、前記第1および第2の特徴量の大きさに応じて、前記対象物の形態を変更する請求項6記載のジェスチャ認識装置。
【請求項9】
前記表示制御手段が、前記第1から第3の特徴量の大きさに応じて、前記対象物の形態を変更する請求項7記載のジェスチャ認識装置。
【請求項10】
前記第1から第3の特徴量が、前記特定部位の移動速さ、移動距離、加速度の絶対値のうちの少なくとも1つを表す値である請求項1から請求項9の何れか1項に記載のジェスチャ認識装置。
【請求項11】
前記第1から第3の特徴量が、予め設定した基準位置からの前記特定部位の相対的な位置および前記特定部位の移動方向に応じて変化する値である請求項1から請求項9の何れか1項に記載のジェスチャ認識装置。
【請求項12】
物体あるいはユーザの体の特定部位の動きを認識するジェスチャ認識方法であって、
前記特定部位の位置あるいは大きさに関する時系列情報を取得するステップと、
前記時系列情報から前記特定部位の移動方向を検出し、前記時系列情報の開始点、前記移動方向が転換する転換点、前記時系列情報の終了点の何れか2つの組み合わせで区分される複数の操作区間を検出するステップと、
前記複数の操作区間のうち認識対象となる第1の操作区間およびこの第1の操作区間に後続する第2の操作区間を特定し、この第1の操作区間における前記時系列情報から抽出した第1の特徴量および前記第2の操作区間における前記時系列情報から抽出した第2の特徴量を用いて、前記第1の操作区間に対応する前記特定部位の動きを認識するステップと、
を備えるジェスチャ認識方法。
【請求項13】
物体あるいはユーザの体の特定部位の動きを認識するジェスチャ認識装置に、
前記特定部位の位置あるいは大きさに関する時系列情報を取得する機能と、
前記時系列情報から前記特定部位の移動方向を検出し、前記時系列情報の開始点、前記移動方向が転換する転換点、前記時系列情報の終了点の何れか2つの組み合わせで区分される複数の操作区間を検出する機能と、
前記複数の操作区間のうち認識対象となる第1の操作区間およびこの第1の操作区間に後続する第2の操作区間を特定し、この第1の操作区間における前記時系列情報から抽出した第1の特徴量および前記第2の操作区間における前記時系列情報から抽出した第2の特徴量を用いて、前記第1の操作区間に対応する前記特定部位の動きを認識する機能と、
を実現させるためのジェスチャ認識プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2013−37499(P2013−37499A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−172410(P2011−172410)
【出願日】平成23年8月5日(2011.8.5)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】