認識装置、方法及びプログラム
【課題】認識精度の低下を防止する。
【解決手段】実施形態の認識装置は、取得部、算出部、主軸選定部、転換点設定部、区間設定部、決定部、及び提示部を備える。取得部は、第1軸〜第n軸を有する座標系で表される特定部位の位置を時系列で取得する。算出部は、位置毎に特定部位の移動ベクトルを算出する。主軸選定部は、移動ベクトル毎に、第1軸〜第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する。転換点設定部は、主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、移動ベクトルの方向が主軸成分において切り替わる位置を方向転換点に設定する。区間設定部は、判定対象区間、直前区間を設定する。決定部は、判定対象区間の評価値と直前区間の評価値とを用いて、判定対象区間における特定部位の移動に優位な軸を決定する。提示部は、決定結果に応じた提示を行う。
【解決手段】実施形態の認識装置は、取得部、算出部、主軸選定部、転換点設定部、区間設定部、決定部、及び提示部を備える。取得部は、第1軸〜第n軸を有する座標系で表される特定部位の位置を時系列で取得する。算出部は、位置毎に特定部位の移動ベクトルを算出する。主軸選定部は、移動ベクトル毎に、第1軸〜第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する。転換点設定部は、主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、移動ベクトルの方向が主軸成分において切り替わる位置を方向転換点に設定する。区間設定部は、判定対象区間、直前区間を設定する。決定部は、判定対象区間の評価値と直前区間の評価値とを用いて、判定対象区間における特定部位の移動に優位な軸を決定する。提示部は、決定結果に応じた提示を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、認識装置、方法及びプログラムに関する。
【背景技術】
【0002】
ジェスチャを認識する認識装置において、被写体の特定部位の速度が閾値以上となる区間で算出した速度ベクトルの角度に応じて、当該特定部位のジェスチャ(動き)が垂直方向であるか水平方向であるかを認識する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−352531号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述したような従来技術では、ジェスチャにノイズとなる動きが含まれると、認識精度が落ちてしまう。本発明が解決しようとする課題は、認識精度の低下を防止することができる認識装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【0005】
実施形態の認識装置は、取得部と、算出部と、主軸選定部と、転換点設定部と、区間設定部と、決定部と、提示部と、を備える。取得部は、第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する。算出部は、時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する。主軸選定部は、算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する。転換点設定部は、前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する。区間設定部は、前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記始点を終点とし、当該終点の前に前記方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に前記方向転換点が存在しない場合には前記開始点を始点とする直前区間を設定する。決定部は、前記判定対象区間の評価値と前記直前区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直前区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する。提示部は、決定結果に応じた提示を行う。
【図面の簡単な説明】
【0006】
【図1】図1は、第1実施形態の認識装置の例を示す構成図。
【図2】図2は、第1実施形態の特定部位のジェスチャの例を示す図。
【図3】図3は、第1実施形態の特定部位の位置の例を示す図。
【図4】図4は、第1実施形態の移動ベクトルの例を示す図。
【図5】図5は、第1実施形態の判定対象区間及び直前区間の設定例を示す説明図。
【図6】図6は、第1実施形態の特定部位のジェスチャの他の例を示す図。
【図7】図7は、第1実施形態の提示例を示す図。
【図8】図8は、第1実施形態の認識装置の処理例を示すフローチャート。
【図9】図9は、第1実施形態の転換点設定部の処理例を示すフローチャート。
【図10】図10は、第1実施形態の決定部の処理例を示すフローチャート。
【図11】図11は、第2実施形態の認識装置の例を示す構成図。
【図12】図12は、第2実施形態の特定部位のジェスチャの他の例を示す図。
【図13】図13は、第2実施形態の進捗率毎の優位な軸の例を示す図。
【図14】図14は、第2実施形態の進捗率毎の優位な軸の他の例を示す図。
【図15】図15は、第2実施形態の補助提示の例を示す図。
【図16】図16は、第2実施形態の補助提示の他の例を示す図。
【図17】図17は、第2実施形態の補助提示の他の例を示す図。
【図18】図18は、第2実施形態の認識装置の処理例を示すフローチャート。
【図19】図19は、第2実施形態の決定部の処理例を示すフローチャート。
【図20】図20は、第2実施形態の決定部の他の処理例を示すフローチャート。
【図21】図21は、第3実施形態の認識装置の例を示す構成図。
【図22】図22は、第3実施形態の第2軸方向転換点の設定例を示す図。
【図23】図23は、第3実施形態の進捗率毎の優位な方向の一例を示す図。
【図24】図24は、第3実施形態の進捗率毎の送り動作の候補の一例を示す図。
【図25】図25は、第3実施形態の認識装置の処理例を示すフローチャート。
【図26】図26は、第3実施形態の第2軸判定部の処理例を示すフローチャート。
【図27】図27は、第4実施形態で用いられる座標系の一例を示す図。
【図28】図28は、第4実施形態で用いられる座標系の他の例を示す図。
【図29】図29は、第1応用例のテレビ受像機の例を示す図。
【図30】図30は、第2応用例のパソコンの例を示す図。
【図31】図31は、第3応用例の情報端末の例を示す図。
【発明を実施するための形態】
【0007】
(第1実施形態)
図1は、第1実施形態の認識装置100の一例を示す構成図である。図1に示すように、認識装置100は、取得部102と、算出部104と、主軸選定部106と、転換点設定部108と、区間設定部110と、決定部112と、提示部114とを、備える。
【0008】
取得部102は、第1軸〜第2軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する。取得部102は、例えば、イメージセンサなどの撮像素子を用いて撮像された時系列の画像に対して、パターン認識法、背景差分法、肌色抽出法、及びフレーム間差分法などの少なくともいずれかの手法を適用して、各画像から特定部位の位置を検出し、検出した特定部位の位置を取得する。特定部位の位置は、例えば、検出された特定部位の領域の重心とすることができる。
【0009】
図2は、第1実施形態の特定部位のジェスチャの一例を示す図であり、図3は、第1実施形態の取得部102により時系列で取得される特定部位の位置の一例を示す図である。例えば、特定部位が図2に示すような移動軌跡をたどった場合、取得部102は、図3に示すように、時系列の画像からサンプリングした離散的な位置P1〜P6を特定部位の位置として時系列で取得する。
【0010】
本実施形態では、特定部位が被写体(ユーザ)の手である場合を例に取り説明するが、特定部位は、これに限定されるものではなく、被写体の指、頭、又はレーザポインタの発光部などであってもよい。
【0011】
また、特定部位の位置は、第1軸〜第2軸を有する座標系で表されるが、第1軸〜第2軸は、特定部位のジェスチャ(動き)の判別対象となる軸であればよい。本実施形態では、垂直(上下)方向のジェスチャと水平(左右)方向のジェスチャとを判別することを目的としているため、第1軸を垂直方向の軸とし、第2軸を水平方向の軸とし、第1軸と第2軸とが交差するものとするが、これに限定されるものではない。例えば、北西−南東方向のジェスチャと北東−南西方向のジェスチャとを判別することを目的としていれば、第1軸を北西−南東方向の軸、第2軸を北東−南西方向の軸とすればよい。また、撮像素子や距離センサから推定された奥行き情報を、第1軸〜第2軸のいずれかの軸としてもよい。
【0012】
また、第1軸〜第2軸を有する座標系で表される特定部位の位置は、これらの軸を成分とした座標で表現してもよいし、撮像素子により撮像された画像上で規定されている座標(ピクセルの位置)で表現してもよい。また、特定部位の位置を表現する座標は、絶対座標であってもよいし、ユーザの顔の位置からの相対座標としてもよい。また、特定部位の位置は、ユーザの顔や最初に検出した特定部位のサイズから正規化された座標値としてもよい。
【0013】
また取得部102は、特定部位の位置だけでなく、当該位置を取得した時刻も取得するようにしてもよい。例えば、特定部位の位置を画像上のx、y座標で表現する場合、取得部102は、i番目のフレームで位置(xi,yi)を取得するとともに、時刻Tiを取得する。時刻は、例えば、認識装置100の起動時、又は取得部102による位置取得開始時を基準とした経過時間、経過クロック数、経過フレーム数などで表現できる。ここでは取得されたフレーム毎に位置を取得する場合を例に説明するが、これに限定されない。
【0014】
算出部104は、時系列で取得される位置毎に特定部位の移動ベクトルを算出する。本実施形態では、移動ベクトルが、取得部102により前回取得された位置からの相対ベクトルである場合を例に取り説明するが、これに限定されるものではない。
【0015】
図4は、第1実施形態の算出部104により算出される移動ベクトルの一例を示す図である。算出部104は、例えば、取得部102により位置P2が取得されると、前回(前フレームで)取得された位置P1からの相対ベクトルである移動ベクトルR1を算出する。具体的には、位置P1の座標を(x1,y1)、位置P2の座標を(x2,y2)とすると(ここでは、第2軸をx軸、第1軸をy軸とする)、算出部104は、R1=(x2−x1,y2−y1)Tを計算して移動ベクトルR1を算出する。ここで、Tは、転置行列を示す。
【0016】
なお、移動ベクトルは、前回取得された位置ではなく、数回(数フレーム)前に取得された位置からの相対ベクトルであってもよいし、直前に存在する方向転換点(詳細は後述)からの相対ベクトルであってもよい。また、移動ベクトルは、前回(前フレームで)取得された位置、現在(現フレームで)取得された位置、及び次回(次フレームで)取得される位置から算出される傾きを有し、現在取得された位置を通過するようなベクトルとしてもよい。この場合の傾きは、前回取得された位置をP1(x1,y1)、現在取得された位置をP2(x2,y2)、次回取得される位置をP3(x3,y3)とすると、例えば、位置P1と位置P2とのベクトルの傾き(y2−y1/x2−x1)と位置P2と位置P3とのベクトルの傾き(y3−y2/x3−x2)との平均とすることができる。また、移動ベクトルは、撮像素子により撮像された画像上の特定部位のブラーの方向から特定部位の移動方向を推測することで算出される傾きを有し、現在取得された位置を通過するようなベクトルとしてもよい。
【0017】
主軸選定部106は、算出される移動ベクトル毎に、当該移動ベクトルと第1軸〜第2軸それぞれとの内積値である第1内積値〜第2内積値を算出し、算出した第1内積値〜第2内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する。つまり、主軸選定部106は、第1軸〜第2軸のうち特定部位のジェスチャの方向が近い方の軸を主軸に選定する。
【0018】
例えば、図4に示す例の場合、第1軸と第2軸とが直角に交差しているため、主軸選定部106は、第1軸に対する移動ベクトルの傾き、即ち、第1軸と移動ベクトルとの鋭角が±45°の範囲であれば第1軸を主軸に選定し、第2軸に対する移動ベクトルの傾き、即ち、第2軸と移動ベクトルとの鋭角が±45°の範囲であれば第2軸を主軸に選定する。この結果、主軸選定部106は、移動ベクトルR1の主軸に第1軸を選定し、移動ベクトルR2〜R5の主軸に第2軸を選定するため、P1〜P2時点での主軸は第1軸となり、P2〜P6時点での主軸は第2軸となる。
【0019】
なお主軸選定部106は、第1内積値〜第2内積値のうち前回算出された移動ベクトルの主軸を用いて算出した内積値に対して、当該内積値を増加させる補正を行うようにしてもよい。つまり、主軸選定部106は、ヒステリシスを設けて主軸を選定し、例えば、前回、第1軸を主軸に選定していれば、現在においても第1軸を主軸に選定しやすいように補正をかけて、主軸を選定するようにしてもよい。
【0020】
例えば、主軸選定部106は、移動ベクトルと前回主軸に選定された軸との内積値である主軸内積値と、移動ベクトルと前回主軸に選定されなかった軸との内積値である非主軸内積値とを、算出する。そして主軸選定部106は、主軸内積値に値を増加させるような補正関数をかけて補正し、補正後の主軸内積値と主軸内積値とを比較して絶対値の大きい方の内積値の算出に用いられた軸を主軸に選定する。補正関数は、例えば、γ(γ>1.0)とすることができる。また例えば、第1軸と第2軸とが直角に交差しているのであれば、前回主軸に選定された軸に対する移動ベクトルの傾きが±50°の範囲であれば当該軸を主軸に選定し、前回主軸に選定されなかった軸に対する移動ベクトルの傾きが±40°の範囲であれば当該軸を主軸に選定するようにしてもよい。
【0021】
転換点設定部108は、主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、移動ベクトルの方向が主軸成分において切り替わる位置を方向転換点に設定する。例えば、図4に示す例の場合、位置P2では、主軸が第1軸から第2軸に切り替わるため、転換点設定部108は、位置P2を主軸転換点かつ方向転換点に設定する。また、位置P5では、主軸である第2軸成分において移動ベクトルの方向が右方向から左方向へと切り替わるため、転換点設定部108は、位置P2を方向転換点に設定する。
【0022】
なお転換点設定部108は、主軸成分における移動ベクトルの方向の切り替わりを、移動ベクトルと主軸との内積値の符号の切り替わりで判定してもよい。また、位置P3及びP4では、主軸ではない第1軸成分において移動ベクトルの方向が切り替わっているが、主軸である第2軸成分において移動ベクトルの方向が切り替わっていないため、転換点設定部108は、位置P3及びP4を方向転換点に設定しない。
【0023】
区間設定部110は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部110は、当該判定対象区間の始点を終点とし、当該終点の前に方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に方向転換点が存在しない場合には開始点を始点とする直前区間を設定する。判定対象区間に設定された部分のジェスチャが、第1軸方向のジェスチャであるか第2軸方向のジェスチャであるかの判定対象となり、直前区間に設定された部分のジェスチャが、判定対象区間に設定された部分のジェスチャがノイズであるか否かの判定に用いられる。ノイズとは、被写体(ユーザ)が意図するジェスチャ(手振りなど)とは無関係な、不要な情報をさす。
【0024】
本実施形態では、区間設定部110は、判定対象区間及び直前区間をオンライン、即ち、リアルタイムで設定するものとするが、これに限定されるものではなく、バッチ処理、即ち、ジェスチャ終了後に設定するようにすることもできる。ここでは、説明の便宜上、判定対象区間及び直前区間をバッチ処理で設定する場合を最初に説明し、その後、リアルタイムで設定する場合について説明する。
【0025】
図5は、第1実施形態のバッチ処理による判定対象区間及び直前区間の設定手法の一例を示す説明図である。図5に示す例では、Qsは、取得部102により最初に取得された位置である開始点を示し、Q1〜Q4は、主軸転換点かつ方向転換点を示し、K1〜K2は、方向転換点を示し、Qeは、取得部102により取得された最後の位置である終了点を示す。
【0026】
判定対象区間及び直前区間をバッチ処理で設定する場合、区間設定部110は、Qs〜Qeが取得された後に、順番に判定対象区間及び直前区間を設定し、設定した判定対象区間及び直前区間の情報を決定部112に順次出力する。設定した判定対象区間及び直前区間の情報は、判定対象区間及び直前区間を区切る両端の位置でもよいし、当該位置を取得した時刻でもよいし、当該位置のIDであってもよい。
【0027】
具体的には、区間設定部110は、まず、Qsを始点とし、Q1を終点とする区間Qs〜Q1を判定対象区間に設定し、設定した判定対象区間の情報を決定部112に出力する。この場合、区間設定部110は、直前区間を設定しない。続いて、区間設定部110は、Q1を始点とし、Q2を終点とする区間Q1〜Q2を判定対象区間に設定するとともに、Qsを始点とし、Q1を終点とする区間Qs〜Q1を直前区間に設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。以下同様に、区間設定部110は、区間Q2〜Q3、区間K2〜Q2を、それぞれ判定対象区間、直前区間に設定して、決定部112に出力し、区間Q3〜Q4、区間Q2〜Q3を、それぞれ判定対象区間、直前区間に設定して、決定部112に出力し、区間Q4〜Qe、区間Q3〜Q4を、それぞれ判定対象区間、直前区間に設定して、決定部112に出力する。
【0028】
つまり、判定対象区間及び直前区間をバッチ処理で設定する場合、区間設定部110は、開始点又は主軸転換点を順次始点とし、始点の後に主軸転換点が存在する場合には直後の主軸転換点、始点の後に主軸転換点が存在しない場合には終了点を終点とする判定対象区間を設定する。また区間設定部110は、当該判定対象区間の始点を終点とし、当該終点の前に方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に方向転換点が存在しない場合には開始点を始点とする直前区間を設定する。
【0029】
次に、判定対象区間及び直前区間をリアルタイムで設定する場合について説明する。判定対象区間及び直前区間をリアルタイムで設定する場合、区間設定部110は、取得部102により位置が取得される毎に、判定対象区間及び直前区間を設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。
【0030】
図4を参照しながら、具体的に説明する。まず、取得部102により最新の位置である最新点(開始点)P1が取得されても、区間設定部110は、判定対象区間及び直前区間を設定しない。
【0031】
続いて、取得部102により最新点P2が取得されると、開始点P1を始点とし、最新点P2を終点とする区間P1〜P2を判定対象区間に設定し、設定した判定対象区間の情報を決定部112に出力する。この場合、区間設定部110は、直前区間を設定しない。
【0032】
続いて、取得部102により最新点P3が取得されると、P2が主軸転換点となるため、最新の主軸転換点P2を始点とし、最新点P3を終点とする区間P2〜P3を判定対象区間に設定するとともに、開始点P1を始点とし、主軸転換点P2を終点とする区間P1〜P2を直前区間に設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。
【0033】
続いて、取得部102により最新点P4が取得されると、最新の主軸転換点P2を始点とし、最新点P4を終点とする区間P2〜P4を判定対象区間に設定するとともに、開始点P1を始点とし、主軸転換点P2を終点とする区間P1〜P2を直前区間に設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。
【0034】
続いて、取得部102により最新点P5が取得されると、最新の主軸転換点P2を始点とし、最新点P5を終点とする区間P2〜P5を判定対象区間に設定するとともに、開始点P1を始点とし、主軸転換点P2を終点とする区間P1〜P2を直前区間に設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。
【0035】
続いて、取得部102により最新点P6が取得されると、最新の主軸転換点P2を始点とし、最新点P6を終点とする区間P2〜P6を判定対象区間に設定するとともに、開始点P1を始点とし、主軸転換点P2を終点とする区間P1〜P2を直前区間に設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。
【0036】
決定部112は、判定対象区間の評価値と直前区間の評価値とを算出し、算出した判定対象区間の評価値と直前区間の評価値とを用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する。具体的には、決定部112は、判定対象区間の評価値が直前区間の評価値を超えている場合、又は直前区間が存在しない場合、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。また決定部112は、判定対象区間の評価値が直前区間の評価値以下の場合、直前区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。
【0037】
ここで、評価値は、特定部位の位置又は大きさの変化量(移動距離)、特定部位の位置又は大きさの変化の速度(移動速度)、及び特定部位の位置又は大きさの変化の加速度(移動加速度)の少なくともいずれかであるものとする。例えば、評価値は、数式(1)に示すように、特定部位の移動距離及び移動速度を用いた関数で表現するようにしてもよいし、数式(2)に示すように、特定部位の移動距離、移動速度、及び移動加速度を用いた関数で表現するようにしてもよいし、特定部位の移動距離としてもよいし、特定部位の移動速度としてもよいし、特定部位の移動加速度としてもよい。
【0038】
【数1】
【0039】
E=V×L×α …(2)
【0040】
Eは評価値を示し、Vは移動速度を示し、Lは移動距離を示し、αは移動加速度を示すものとする。
【0041】
移動距離は、判定対象区間の移動ベクトルのユークリッド距離の和としてもよいし、移動ベクトルの主軸成分(移動ベクトルと主軸との内積の絶対値)の和としてもよい。例えば、図4に示す例の場合、最新点P5が取得された時点での判定対象区間である区間P2〜P5における移動距離は、移動ベクトルR2〜R4の各ユークリッド距離を合計した合計距離とすることができる。
【0042】
移動速度は、判定対象区間の移動ベクトルの速度のうちの最大速度としてもよいし、所定の閾値以上となる移動ベクトルの速度の平均値としてもよい。なお、移動ベクトルの速度は、当該移動ベクトルの両端点Pb、Pcの取得時刻をそれぞれTb、Tcとすると、|Pb〜Pcの距離/(Tb−Tc)|とできる。例えば、図4に示す例の場合、区間P2〜P5における移動速度は、移動ベクトルR2〜R4の速度のうちの最大速度とすることができる。移動ベクトルR2の速度は、P2、P3が取得された時刻をそれぞれT2、T3とすると、|移動ベクトルR2のユークリッド距離/(T3−T2)|となる。
【0043】
なお、特定部位の移動速度の算出手法は、これに限定されるものではなく、例えば、決定部112は、取得部102により取得される特定部位の位置の周辺の各画素の速度(オプティカルフロー)を計算し、計算した各画素の速度の平均値や最頻値を特定部位の移動速度とするようにしてもよい。
【0044】
また例えば、決定部112は、特定部位の画像内の位置を観測値、特定部位の位置と速度を状態変数とし、観測値と等速運動などの状態変数の運動モデルによって最適な状態を推定するカルマンフィルタなどのフィルタを用いて、特定部位の移動速度を計算するようにしてもよい。この際、決定部112は、観測値として、特定部位の画像内の位置の周辺の各画素の速度(オプティカルフロー)の平均値を更に用いるようにしてもよい。
【0045】
移動加速度は、判定対象区間の移動ベクトルの加速度のうちの最大加速度としてもよいし、所定の閾値以上となる移動ベクトルの加速度の平均値としてもよい。なお、移動ベクトルの加速度は、当該移動ベクトルの両端点Pb、Pcの取得時刻をそれぞれTb、Tc、当該移動ベクトルの直前の移動ベクトルの両端点Pa、Pbの取得時刻をそれぞれTa、Tbとすると、|Pb〜Pcの速度−Pa〜Pbの速度/(Tb−Tc)|とできる。
【0046】
ここで、図4に示す例を用いて、判定対象区間における特定部位の移動に優位な軸の決定方法を具体的に説明する。まず、区間設定部110により区間P1〜P2が判定対象区間に設定された場合、直前区間は存在しないため、決定部112は、区間P1〜P2では、主軸である第1軸が特定部位の移動に優位であると決定する。
【0047】
続いて、区間設定部110により区間P2〜P3が判定対象区間に設定され、区間P1〜P2が直前区間に設定された場合、決定部112は、区間P2〜P3の評価値と区間P1〜P2の評価値とを算出する。ここでは、区間P2〜P3(判定対象区間)の評価値が区間P1〜P2(直前区間)の評価値以下とする。この場合、決定部112は、区間P2〜P3では、主軸は第2軸であるが、区間P1〜P2の主軸である第1軸が特定部位の移動に優位であると決定する。つまり、この時点では、決定部112は、区間P2〜P3の移動軌跡をノイズとみなしている。
【0048】
続いて、区間設定部110により区間P2〜P4が判定対象区間に設定され、区間P1〜P2が直前区間に設定された場合、決定部112は、区間P2〜P4の評価値と区間P1〜P2の評価値とを算出する。なお、区間P1〜P2の評価値は、前回算出したものを使用してもよい。ここでは、区間P2〜P4(判定対象区間)の評価値が区間P1〜P2(直前区間)の評価値を超えているものとする。この場合、決定部112は、区間P2〜P4では、主軸である第2軸が特定部位の移動に優位であると決定する。つまり、この時点では、決定部112は、区間P2〜P4の移動軌跡をジェスチャとみなしている。
【0049】
以降、区間P2〜P5、区間P2〜P6が判定対象区間に設定された場合においても、判定対象区間の評価値が直前区間の評価値を超え、決定部112は、主軸である第2軸が特定部位の移動に優位であると決定する。
【0050】
図6は、第1実施形態の特定部位のジェスチャの他の例を示す図である。図6に示す例では、特定部位が右方向への軌跡を描いたあと(軌跡171、172)、上方向への軌跡を描いている(軌跡173)。なお、図6に示す例では、評価値として移動距離を用いるものとする。
【0051】
軌跡171、172の時点では、右方向への軌跡が判定対象区間となり、直前区間は存在しないため、決定部112は、判定対象区間の主軸となる水平方向の軸が特定部位の移動に優位であると決定する。
【0052】
軌跡173の時点では、上方向への軌跡が判定対象区間となり、右方向への軌跡が直前区間となる。決定部112は、上方向への軌跡の移動距離が右方向への軌跡の移動距離よりも短いため、右方向への軌跡の評価値が上方向への軌跡の評価値を超えると判定し、判定対象区間においても、直前区間の主軸である水平方向の軸が特定部位の移動に優位であると決定する。
【0053】
これにより、垂直方向へのジェスチャはノイズとみなされ、ジェスチャ全体としては水平方向が優位と決定されることになる。
【0054】
提示部114は、決定部112の決定結果に応じた提示を行う。提示部114は、例えば、ディスプレイに表示されている画面を、第1〜第2軸のうち決定部112により特定部位の移動に優位であると決定された軸方向に遷移する。
【0055】
図7は、第1実施形態の提示部114による提示の一例を示す図である。図7に示す例では、提示部114は、画面180の左側にオブジェクト181、中央にオブジェクト182、右側にオブジェクト183を表示している。ここで、ユーザが、特定部位である手186を矢印187方向、即ち左方向に動かすジェスチャを行ったとする。このジェスチャは、決定部112により水平方向の軸が手186の移動に優位であると決定されるので、提示部114は、画面180において、オブジェクトを水平方向(左側)に遷移させる。この結果、提示部114は、画面180の左側にオブジェクト182、中央にオブジェクト183、右側にオブジェクト184を表示する。
【0056】
なお、認識装置100が決定部112の決定結果に応じてコマンドを発行するコマンド発行部を備える場合、提示部114は、発行されたコマンドに応じた提示を行う。
【0057】
例えば、決定部112は、特定部位の移動に優位である決定した軸のIDをコマンド発行部に出力する。ここで、決定部112は、特定部位の移動に優位である決定した軸のIDとともに、判定対象区間の両端点のIDなど判定対象区間を指定する情報をコマンド発行部に出力してもよい。また、決定部112は、特定部位の移動に優位である決定した軸が変更した場合のみ、当該軸のIDをコマンド発行部に出力するようにしてもよい。
【0058】
そして、当該軸成分での特定部位の移動速度が閾値以上であれば、コマンド発行部は当該軸方向でのコマンドを発行する。例えば、図4に示す例において、区間P2〜P3が判定対象区間である場合、判定対象区間において特定部位の移動に優位である軸は第1軸となるので、移動ベクトルR2の第1軸成分の速さ(移動ベクトルR2と第1軸との内積値の絶対値)、即ち、移動ベクトルR2の上方向の速度成分が閾値以上であれば、コマンド発行部は上方向のコマンドを発行する。また、区間P2〜P4が判定対象区間である場合、判定対象区間において特定部位の移動に優位である軸は第2軸となるので、移動ベクトルR2、R3のうち第1軸成分の速さが速い方の右方向の速度成分が閾値以上であれば、コマンド発行部は右方向のコマンドを発行する。
【0059】
提示部114は、発行されたコマンドに従い、ディスプレイに表示されている画面を遷移する。
【0060】
図8は、第1実施形態の認識装置100で行われる処理の手順の流れの一例を示すフローチャートである。
【0061】
まず、取得部102は、第1軸〜第2軸を有する座標系で表される被写体の特定部位の位置を取得する(ステップS101)。
【0062】
続いて、算出部104は、取得部102により取得された位置に対する前回取得された位置からの相対ベクトルを特定部位の移動ベクトルとして算出する(ステップS102)。
【0063】
続いて、主軸選定部106は、算出部104により算出された移動ベクトルと第1軸〜第2軸それぞれとの内積値である第1内積値〜第2内積値を算出し、算出した第1内積値〜第2内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する(ステップS103)。
【0064】
続いて、転換点設定部108は、取得部102により前回取得された位置で主軸が切り替われば主軸転換点及び方向転換点に設定し、取得部102により前回取得された位置で移動ベクトルの方向が主軸成分において切り替われば方向転換点に設定する(ステップS104)。
【0065】
続いて、区間設定部110は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部110は、当該判定対象区間の始点を終点とし、当該終点の前に方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に方向転換点が存在しない場合には開始点を始点とする直前区間を設定する(ステップS105)。
【0066】
続いて、決定部112は、判定対象区間の評価値と直前区間の評価値とを算出し、算出した判定対象区間の評価値と直前区間の評価値とを用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する(ステップS106)。
【0067】
そして、取得部102により被写体の特定部位の最新の位置が取得される毎に(ステップS101)、ステップS102〜S106の処理が行われ、提示部114は、決定部112の決定結果に応じた提示を行う。
【0068】
図9は、第1実施形態の認識装置100で転換点設定部108により行われる処理の手順の流れの一例を示すフローチャートである。
【0069】
まず、転換点設定部108は、取得部102から最新フレームの特定部位の位置Pjを取得するとともに、主軸選定部106から最新フレームの主軸IDを取得する(ステップS120)。最新フレームの主軸IDは、位置Pjに対する前回のフレームの特定部位の位置Piからの相対ベクトルである移動ベクトルRiの主軸の主軸IDである。
【0070】
続いて、転換点設定部108は、取得した位置Pjが取得部102により特定部位の位置取得が開始されてから2フレーム以内に取得されたものか否かを判定する(ステップS121)。ここで、転換点設定部108が、位置Pjは位置取得が開始されてから2フレーム以内に取得されたものと判定した場合(ステップS121でYes)、処理は終了となる。これは、転換点を設定できるほど位置が取得されていないためである。
【0071】
一方、転換点設定部108が、位置Pjは位置取得が開始されてから2フレーム以内に取得されたものでないと判定したとする(ステップS121でNo)。この場合、転換点設定部108は、取得部102から前回のフレームの特定部位の位置Pi及び前々回のフレームの特定部位の位置Phを取得するとともに、主軸選定部106から前回のフレームの主軸IDを取得する(ステップS122)。前回のフレームの主軸IDは、位置Piに対する前々回のフレームの特定部位の位置Phからの相対ベクトルである移動ベクトルRhの主軸の主軸IDである。なお、転換点設定部108は、前回のフレームにおいて取得した最新フレームの主軸IDを保存しておき、前回のフレームの主軸IDとしてもよい。
【0072】
続いて、転換点設定部108は、最新フレームの主軸IDが前回のフレームの主軸IDと異なるか否かを判定する(ステップS123)。
【0073】
最新フレームの主軸IDが前回のフレームの主軸IDと異なる場合(ステップS123でYes)、転換点設定部108は、位置Piを主軸転換点及び方向転換点に設定する(ステップS124)。これにより、処理は終了となる。
【0074】
一方、最新フレームの主軸IDが前回のフレームの主軸IDと同一となる場合(ステップS123でNo)、転換点設定部108は、位置Piにおいて特定部位の移動軌跡(移動ベクトル)が主軸成分で方向転換しているか否かを判定する(ステップS125)。具体的には、転換点設定部108は、移動ベクトルRiと最新フレームの主軸との内積値と、移動ベクトルRjと前回のフレームの主軸との内積値と、の符号が異なっているか否かを判定する。但し、移動ベクトルRjと前回のフレームの主軸との内積値が0である場合、移動ベクトルRjでは主軸成分に変化が無かったことになる。この場合、転換点設定部108は、3回前の特定部位の位置Pgを取得し、位置Phに対する3回前のフレームの特定部位の位置Pgからの相対ベクトルである移動ベクトルRgと前々回のフレームの主軸との内積値を用いる。
【0075】
位置Piにおいて特定部位の移動軌跡(移動ベクトル)が主軸成分で方向転換している場合(ステップS125でYes)、即ち、両内積値の符号が異なっている場合、転換点設定部108は、位置Piを方向転換点に設定する(ステップS126)。これにより、処理は終了となる。
【0076】
一方、位置Piにおいて特定部位の移動軌跡(移動ベクトル)が主軸成分で方向転換していない場合(ステップS125でNo)、即ち、両内積値の符号が同一である場合、処理は終了となる。
【0077】
図10は、第1実施形態の認識装置100で決定部112により行われる処理の手順の流れの一例を示すフローチャートである。
【0078】
まず、決定部112は、直前区間が存在するか否かを確認する(ステップS130)。
【0079】
直前区間が存在する場合(ステップS130でYes)、決定部112は、判定対象区間の評価値Ecと直前区間の評価値Ebとを算出し、評価値Ecが評価値Eb以下であるか否かを判定する(ステップS131)。
【0080】
評価値Ecが評価値Eb以下である場合(ステップS131でYes)、決定部112は、直前区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS132)。これにより、処理は終了となる。
【0081】
一方、直前区間が存在しない場合(ステップS130でNo)、又は評価値Ecが評価値Eb以下でない場合(ステップS131でNo)、決定部112は、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS133)。これにより、処理は終了となる。
【0082】
以上のように第1実施形態では、直前区間を利用して判定対象区間のジェスチャを認識する。このため第1実施形態によれば、判定対象区間のジェスチャがノイズであるか否かを判別できるので、ジェスチャにノイズとなる動きが含まれていても正しく認識することができ、認識精度の低下を防止することができる。
【0083】
例えば、ジェスチャの最後にノイズとなる動きが含まれている場合には、正常なジェスチャ部分が直前区間、ノイズ部分が判定対象区間となる。そして、直前区間を利用することにより、判定対象区間のジェスチャをノイズと判別でき、直前区間の正常なジェスチャの移動方向に置き換えるので、ジェスチャにノイズとなる動きが含まれていても正しく認識することができる。
【0084】
(第2実施形態)
第2実施形態では、直後区間を利用して判定対象区間のジェスチャを認識する例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0085】
図11は、第2実施形態の認識装置200の一例を示す構成図である。第2実施形態の認識装置200では、区間設定部210、決定部212、及び提示部214が第1実施形態と相違する。
【0086】
区間設定部210は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、当該始点を設定してから所定時間が経過するまでに当該始点の後に主軸転換点が存在する場合には当該始点の直後の主軸転換点、所定時間が経過するまでに当該始点の後に主軸転換点が存在しない場合には所定時間が経過するまでに取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部210は、当該判定対象区間の終点を始点とし、当該始点の後に方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に最新点が存在する場合には最新点を終点とする直後区間を設定する。直後区間に設定された部分のジェスチャが、判定対象区間に設定された部分のジェスチャがノイズであるか否かの判定に用いられる。
【0087】
本実施形態においても、区間設定部210は、判定対象区間及び直後区間をリアルタイムで設定するものとするが、これに限定されるものではなく、バッチ処理、即ち、ジェスチャ終了後に設定するようにすることもできる。ここでも、説明の便宜上、判定対象区間及び直後区間をバッチ処理で設定する場合を最初に説明し、その後、リアルタイムで設定する場合について説明する。
【0088】
図5を参照しながら、判定対象区間及び直後区間をバッチ処理で設定する場合について説明する。判定対象区間及び直後区間をバッチ処理で設定する場合、区間設定部210は、Qs〜Qeが取得された後に、順番に判定対象区間及び直後区間を設定し、設定した判定対象区間及び直後区間の情報を決定部212に順次出力する。設定した判定対象区間及び直後区間の情報は、判定対象区間及び直後区間を区切る両端の位置でもよいし、当該位置を取得した時刻でもよいし、当該位置のIDであってもよい。
【0089】
具体的には、区間設定部210は、まず、Qsを始点とし、Q1を終点とする区間Qs〜Q1を判定対象区間に設定するとともに、Q1を始点とし、K1を終点とする区間Q1〜K1を直後区間に設定し、設定した判定対象区間及び直後区間の情報を決定部212に出力する。続いて、区間設定部210は、Q1を始点とし、Q2を終点とする区間Q1〜Q2を判定対象区間に設定するとともに、Q2を始点とし、Q3を終点とする区間Q2〜Q3を直後区間に設定し、設定した判定対象区間及び直後区間の情報を決定部212に出力する。以下同様に、区間設定部210は、区間Q2〜Q3、区間Q3〜Q4を、それぞれ判定対象区間、直後区間に設定して、決定部212に出力し、区間Q3〜Q4、区間Q4〜Q5を、それぞれ判定対象区間、直後区間に設定して、決定部212に出力する。最後に、区間設定部210は、区間Q4〜Q5を判定対象区間に設定して、決定部212に出力する。この場合、区間設定部210は、直後区間を設定しない。
【0090】
つまり、判定対象区間及び直後区間をバッチ処理で設定する場合、区間設定部210は、開始点又は主軸転換点を順次始点とし、始点の後に主軸転換点が存在する場合には直後の主軸転換点、始点の後に主軸転換点が存在しない場合には終了点を終点とする判定対象区間を設定する。また区間設定部210は、当該判定対象区間の終点を始点とし、当該始点の後に方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に方向転換点が存在しない場合には終了点を終点とする直後区間を設定する。
【0091】
次に、判定対象区間及び直後区間をリアルタイムで設定する場合について説明する。判定対象区間及び直後区間をリアルタイムで設定する場合、区間設定部210は、判定対象区間の設定を開始してから判定対象区間及び直後区間を確定するまでに、最大所定時間を要する。つまり、区間設定部210は、時刻Tiの時点で判定対象区間の設定を開始してから、所定時間T0a経過するまで、即ち時刻Ti+T0a時点までに判定対象区間及び直後区間を確定する。このため本実施形態では、判定対象区間及び直後区間をリアルタイムで設定するが、厳密には、判定対象区間及び直後区間を設定するまでに所定時間以内の遅延が生じ、後述の決定部212による決定も所定時間以内の遅延が生じることになる。
【0092】
なお本実施形態では、所定時間T0aを0.4秒に設定しているが、これに限定されるものではない。また、区間設定部210は、判定対象区間での特定部位の移動速度に応じて所定時間T0aを変更してもよく、例えば、移動速度が速くなるほど所定時間T0aを短くするようにしてもよい。
【0093】
図4を参照しながら、具体的に説明する。まず、取得部102により最新の位置である最新点(開始点)P1が取得されても、区間設定部210は、判定対象区間及び直後区間を設定しない。
【0094】
続いて、取得部102により最新点P2が取得されると(この時点を時刻T2とする)、区間設定部210は、開始点P1を始点とし、時刻T2の時点では最新点P2を終点とする区間P1〜P2を判定対象区間に設定する。なお、この時点では、判定対象区間の範囲は確定しておらず、時刻T2の時点から所定時間T0aが経過するまでに最新点が取得されれば、判定対象区間の終点が更新される場合もある。但し、図4に示す例では、P2が始点直後の主軸転換点となるため、判定対象区間の終点は、P2のままとなる。
【0095】
例えば、時刻T2から所定時間T0aが経過するまでに最新点P3が取得された場合、P2が始点直後の主軸転換点となるため、区間設定部210は、主軸転換点P2を終点とする区間P1〜P2を判定対象区間に確定する。この場合、区間設定部210は、主軸転換点P2を始点とし、最新点P3を終点とする区間P2〜P3を直後区間に設定し、設定(確定)した判定対象区間及び直後区間の情報を、判定対象区間の設定開始時刻がT2のときの情報として決定部212に出力する。
【0096】
また例えば、時刻T2から所定時間T0aが経過するまでに最新点P3〜P6までが取得された場合も、P2が始点直後の主軸転換点となるため、区間設定部210は、主軸転換点P2を終点とする区間P1〜P2を判定対象区間に確定する。この場合、区間設定部210は、主軸転換点P2を始点とし、当該始点の直後の方向転換点である方向転換点P5を終点とする区間P2〜P5を直後区間に設定し、設定(確定)した判定対象区間及び直後区間の情報を、判定対象区間の設定開始時刻がT2のときの情報として決定部212に出力する。
【0097】
また例えば、時刻T2から所定時間T0aが経過するまでに最新点P3が取得されなかった場合、P2が最新点となるため、区間設定部210は、最新点P2を終点とする区間P1〜P2を判定対象区間に確定する。この場合、区間設定部210は、直後区間を設定せず、確定した判定対象区間の情報を、判定対象区間の設定開始時刻がT2のときの情報として決定部212に出力する。
【0098】
続いて、取得部102により最新点P3が取得されると(この時点を時刻T3とする)、区間設定部210は、最新の主軸転換点P2を始点とし、時刻T3の時点では最新点P3を終点とする区間P2〜P3を判定対象区間に設定する。ここで、時刻T3から所定時間T0aが経過するまでに最新点P4が取得された場合、主軸転換点P2の後に主軸転換点が存在しないため、区間設定部210は、終点を最新点P4に更新し、区間P2〜P4を判定対象区間に更新する。この場合、区間設定部210は、直後区間を設定せず、更新した判定対象区間の情報を、判定対象区間の設定開始時刻がT3のときの情報として決定部212に出力する。
【0099】
以下、取得部102により最新点P6が取得されるまで、同様な処理が行われる。
【0100】
なお、区間設定部210は、判定対象区間及び直後区間を確定してから、判定対象区間及び直後区間の情報を決定部212に出力するのではなく、判定対象区間の設定を開始してから判定対象区間及び直後区間を確定するまでの間、判定対象区間及び直後区間の情報を逐次決定部212に出力してもよい。
【0101】
決定部212は、判定対象区間の評価値と直後区間の評価値とを算出し、算出した判定対象区間の評価値と直後区間の評価値とを用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する。具体的には、決定部212は、判定対象区間の評価値が直後区間の評価値を超えている場合、又は直後区間が存在しない場合、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。また決定部212は、判定対象区間の評価値が直後区間の評価値以下の場合、直後区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。
【0102】
例えば、判定希望時刻Tの時点での特定部位の移動に優位な軸を決定する場合、区間設定部210は、判定希望時刻Tの時点で判定対象区間の設定を開始し、判定希望時刻Tから所定時間T0aが経過するまでに判定対象区間を確定する。そして決定部212は、この時点(判定希望時刻Tから所定時間T0aが経過した時点)で、判定対象区間における時刻Tの時点での特定部位の移動に優位な軸を確定する。なお、判定希望時刻は、区間設定部210で用いられた判定対象区間の設定開始時刻となる。
【0103】
図12は、第2実施形態の特定部位のジェスチャの他の例を示す図である。図12に示す例では、特定部位が上方向への軌跡を描いたあと(軌跡161)、右方向への軌跡を描いている(軌跡162、163)。なお、図12に示す例では、評価値として移動距離を用いるものとする。
【0104】
軌跡161の時点(以下、時刻T161と称する)では、上方向への軌跡が判定対象区間となる。ここで、軌跡は、所定時間T0aが経過するまでに軌跡162を経由して軌跡163になったとする。この場合、判定希望時刻(判定対象区間の設定開始時刻)が時刻T161のときの判定対象区間及び直後区間の情報は、軌跡163の時点、即ち、時刻T161+所定時間T0aの時点では、上方向への軌跡が判定対象区間のままとなり、右方向への軌跡が直後区間となる。決定部212は、右方向への軌跡の移動距離が上方向への軌跡の移動距離よりも長いため、右方向への軌跡の評価値が上方向への軌跡の評価値よりも高いと判定し、直後区間の主軸である水平方向の軸が判定対象区間において特定部位の移動に優位であると決定する。これにより、垂直方向へのジェスチャはノイズとみなされ、ジェスチャ全体としては水平方向が優位と決定されることになる。
【0105】
なお決定部212は、区間設定部210から判定対象区間及び直後区間の情報が逐次出力される場合には、判定対象区間における特定部位の移動に優位な軸を、所定時間以内、即ち、判定対象区間及び直後区間が確定するまで逐次判定するようにしてもよい。この際、決定部212は、所定時間の進捗率を算出してもよい。進捗率は、判定対象区間の設定を開始する時点である時刻Tiを0、所定時間T0aが経過する時点である時刻Ti+T0aを1、時刻Ti〜時刻Ti+T0aの期間を線形に補間した値とすることができる。この場合、時刻t(Ti≦t≦Ti+T0a)の進捗率は、(t−Ti)/T0aとなる。
【0106】
図13は、第2実施形態の決定部212により判定された進捗率毎の優位な軸の一例を示す図である。図13に示す例では、判定希望時刻が時刻Tiのときの判定対象区間における特定部位の移動に優位な軸は、時刻Ti〜時刻Ti+20(進捗率0〜0.30)の時点では、第1軸となっており、時刻Ti+30〜時刻Ti+70(進捗率0.45〜1.00)の時点では、第2軸となっている。この結果、判定希望時刻が時刻Tiのときの判定対象区間における特定部位の移動に優位な軸は、第2軸に確定している。
【0107】
なお、進捗率は、取得部102により取得されたそれぞれの位置の取得時刻からの進捗率としてもよい。また決定部212は、特定の判定対象区間における特定部位の移動に優位な軸を決定する場合のみ、優位な軸を逐次判定するとともに所定時間の進捗率を算出するようにしてもよい。ここで、特定の判定対象区間とは、例えば、優位な軸が確定した直後に優位な軸の決定を開始する判定対象区間や移動ベクトルが閾値以上の速度や移動距離となる判定対象区間などが該当する。
【0108】
図14は、第2実施形態の決定部212により判定された進捗率毎の優位な軸の他の例を示す図である。図14は、優位な軸が確定した直後に優位な軸の決定を開始する判定対象区間において特定部位の移動に優位な軸を決定する場合のみ、優位な軸を逐次判定するとともに所定時間の進捗率を算出する例を示している。
【0109】
時刻Ti〜時刻Ti+70(進捗率0〜1.00)については、図13と同様である。時刻Tiの時点において優位な軸の決定を開始した判定対象区間の優位な軸は、時刻Ti+70の時点で第2軸に確定する。このため、決定部212は、時刻Ti+80の時点において優位な軸の決定を開始する判定対象区間については、優位な軸を逐次判定するとともに所定時間の進捗率を算出する。
【0110】
時刻Ti+80〜時刻Ti+150(進捗率0〜1.00)の時点での判定対象区間における特定部位の移動に優位な軸は、第2軸となっている。この結果、時刻Ti+80の時点において優位な軸の決定を開始した判定対象区間における特定部位の移動に優位な軸は、第2軸に確定する。
【0111】
時刻Ti+80の時点において優位な軸の決定を開始した判定対象区間の優位な軸は、時刻Ti+150の時点で第2軸に確定するため、決定部212は、時刻Ti+160の時点において優位な軸の決定を開始する判定対象区間についても、優位な軸を逐次判定するとともに所定時間の進捗率を算出する。
【0112】
提示部214は、決定部212により判定対象区間における特定部位の移動に優位な軸が所定時間以内で逐次判定される場合には、所定時間以内、即ち、判定対象区間及び直後区間が確定するまで決定結果に応じた補助提示を更に行うようにしてもよい。第2実施形態では、時刻Tiの時点で判定対象区間の設定を開始する場合、時刻Ti+T0aの時点までに、当該判定対象区間における特定部位の移動に優位な軸が確定する。このため、提示部214は、時刻Ti〜Ti+T0aの間の決定部212の判定結果に応じた補助提示を行う。なお、特定部位の移動に優位な軸が確定する時刻Ti+T0a以後の提示は、第1実施形態と同様である。
【0113】
図15は、第2実施形態の提示部214による補助提示の一例を示す図である。例えば、図13に示す例において、時刻Ti+30の時点において、時刻Tiの時点で設定を開始した判定対象区間における特定部位の移動に優位な軸は、第1軸から第2軸に切り替わっている。提示部214は、この時点で、図7に示す例において、左側にオブジェクト181、中央にオブジェクト182、右側にオブジェクト183が表示されている画面180を、図15に示すように、オブジェクト181〜183を水平方向(左方向)に傾けた画面280としてもよい。そして、時刻Ti+70の時点において、時刻Tiの時点で設定を開始した判定対象区間における特定部位の移動に優位な軸が第2軸に確定すると、提示部214は、画面280を、図7に示す例において、左側にオブジェクト182、中央にオブジェクト183、右側にオブジェクト184が表示されている画面180とする。これにより、ユーザにどちらの軸が優位と決定されつつあるかを知らせることができる。
【0114】
図16及び図17は、第2実施形態の提示部214による補助提示の他の例を示す図である。提示部214は、図7に示す例において、左側にオブジェクト181、中央にオブジェクト182、右側にオブジェクト183が表示されている画面180を、図15に示す画面280ではなく、オブジェクト181〜183を水平方向(左方向)に回転させた画面281や水平方向(左方向)への矢印283を更に表示させた画面282としてもよい。
【0115】
図18は、第2実施形態の認識装置200で行われる処理の手順の流れの一例を示すフローチャートである。
【0116】
ステップS201〜S204までの処理は、図8に示すフローチャートのステップS101〜S104までの処理と同様である。
【0117】
続いて、区間設定部210は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、当該始点を設定してから所定時間が経過するまでに当該始点の後に主軸転換点が存在する場合には当該始点の直後の主軸転換点、所定時間が経過するまでに当該始点の後に主軸転換点が存在しない場合には所定時間が経過するまでに取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部210は、当該判定対象区間の終点を始点とし、当該始点の後に方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に最新点が存在する場合には最新点を終点とする直後区間を設定する(ステップS205)。
【0118】
続いて、決定部212は、判定対象区間の評価値と直後区間の評価値とを算出し、算出した判定対象区間の評価値と直後区間の評価値とを用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する(ステップS206)。
【0119】
そして、取得部102により被写体の特定部位の最新の位置が取得される毎に(ステップS201)、ステップS202〜S206の処理が行われ、提示部214は、決定部212の決定結果に応じた提示を行う。
【0120】
図19は、第2実施形態の認識装置200で決定部212により行われる処理の手順の流れの一例を示すフローチャートである。
【0121】
まず、決定部212は、直後区間が存在するか否かを確認する(ステップS230)。
【0122】
直後区間が存在する場合(ステップS230でYes)、決定部212は、判定対象区間の評価値Ecと直後区間の評価値Eaとを算出し、評価値Ecが評価値Ea以下であるか否かを判定する(ステップS231)。
【0123】
評価値Ecが評価値Ea以下である場合(ステップS231でYes)、決定部212は、直後区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS232)。これにより、処理は終了となる。
【0124】
一方、直後区間が存在しない場合(ステップS230でNo)、又は評価値Ecが評価値Ea以下でない場合(ステップS231でNo)、決定部212は、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS233)。これにより、処理は終了となる。
【0125】
なお認識装置200では、判定対象区間の設定が開始されてから所定時間が経過する前に判定対象区間及び直後区間が確定し、所定時間が経過する前に判定対象区間における特定部位の移動に優位な軸が確定する場合がある。例えば、判定対象区間の設定が開始されてから所定時間が経過する前に、判定対象区間の始点の後に主軸転換点が存在し、主軸転換点の後に方向転換点が存在すれば、所定時間が経過する前に判定対象区間及び直後区間が確定する。また、判定対象区間の設定が開始されてから所定時間が経過する前に、直後区間の評価値が判定対象区間の評価値を超えてしまえば、判定対象区間における特定部位の移動に優位な軸は、直後区間の主軸に確定するため、所定時間の経過を待つ必要がない。このため、決定部212は、これらを考慮して処理を行ってもよい。
【0126】
図20は、第2実施形態の認識装置200で決定部212により行われる処理の手順の流れの他の例を示すフローチャートである。
【0127】
まず、決定部212は、現在の時刻Tと判定対象区間の設定を開始した時刻である判定希望時刻Tcとの差を計算し(ステップS241)、判定希望時刻Tcから所定時間T0aが経過したか否かを確認する(ステップS242)。
【0128】
判定希望時刻Tcから所定時間T0aが経過していない場合(ステップS242でNo)、決定部212は、直後区間が存在しているか否かを確認する(ステップS243)。直後区間が存在していない場合は(ステップS243でNo)、ステップS241に戻る。
【0129】
直後区間が存在している場合(ステップS243でYes)、決定部212は、判定対象区間の評価値Ecと直後区間の評価値Eaとを算出し、評価値Eaが評価値Ecを超えているか否かを判定する(ステップS244)。
【0130】
評価値Eaが評価値Ecを越えている場合(ステップS244でYes)、決定部212は、直後区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS247)。これにより、処理は終了となる。
【0131】
一方、評価値Eaが評価値Ecを越えていない場合(ステップS244でNo)、決定部212は、直後区間が確定しているか否かを確認する(ステップS245)。具体的には、決定部212は、直後区間の終点が方向転換点であるか否かを確認する。
【0132】
ここで、直後区間が確定している場合(ステップS245でYes)、即ち、直後区間の終点が方向転換点である場合、評価値Eaが評価値Ecを越えないため、決定部212は、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS246)。これにより、処理は終了となる。
【0133】
一方、直後区間が確定していない場合(ステップS245でNo)、即ち、直後区間の終点が方向転換点でない場合は、ステップS241に戻る。
【0134】
この結果、判定希望時刻Tcから所定時間T0aが経過している場合(ステップS242でYes)、直後区間が存在しないか、評価値Eaが評価値Ecを越えないかのいずれかとなるため、決定部212は、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS246)。これにより、処理は終了となる。
【0135】
なお、直後区間が存在している場合は(ステップS243でYes)、判定対象区間が確定していることになるため、以降は、算出済みの評価値Ecを利用すればよく、再度評価値Ecを算出する必要はない。
【0136】
以上のように第2実施形態では、直後区間を利用して判定対象区間のジェスチャを認識する。このため第2実施形態によれば、判定対象区間のジェスチャがノイズであるか否かを判別できるので、ジェスチャにノイズとなる動きが含まれていても正しく認識することができ、認識精度の低下を防止することができる。
【0137】
例えば、ジェスチャの最初にノイズとなる動きが含まれている場合には、ノイズ部分が判定対象区間、正常なジェスチャ部分が直後区間となる。そして、直後区間を利用することにより、判定対象区間のジェスチャをノイズと判別でき、直後区間の正常なジェスチャの移動方向に置き換えるので、ジェスチャにノイズとなる動きが含まれていても正しく認識することができる。
【0138】
(第3実施形態)
第3実施形態では、直前区間及び直後区間を利用して判定対象区間のジェスチャを認識し、判定対象区間における特定部位の移動に優位な軸のいずれの方向が指示されているかを認識する例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0139】
図21は、第3実施形態の認識装置300の一例を示す構成図である。第3実施形態の認識装置300では、区間設定部310、決定部312、及び提示部314が第1実施形態と相違し、更に、第1軸判定部316、第2軸判定部318、及び判定結果選定部320を更に備える。
【0140】
区間設定部310は、第1実施形態の区間設定部110と第2実施形態の区間設定部210とを合わせた機能を有する。
【0141】
つまり、区間設定部310は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部310は、当該判定対象区間の始点を終点とし、当該終点の前に方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に方向転換点が存在しない場合には開始点を始点とする直前区間を設定する。なお、この時点で、直前区間は確定するが、判定対象区間はまだ確定しない。
【0142】
そして区間設定部310は、判定対象区間を設定してから所定時間が経過するまでに判定対象区間の始点の後に主軸転換点が存在する場合には当該始点の直後の主軸転換点、所定時間が経過するまでに当該始点の後に主軸転換点が存在しない場合には所定時間経過後の最新点を判定対象区間の終点に更新する。また区間設定部310は、更新後の判定対象区間の終点を始点とし、当該始点の後に方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に最新点が存在する場合には所定時間経過後の最新点を終点とする直後区間を設定する。
【0143】
決定部312は、第1実施形態の決定部112と第2実施形態の決定部212とを合わせた機能を有する。つまり、決定部312は、判定対象区間の評価値、直前区間の評価値、及び直後区間の評価値を算出し、算出した判定対象区間の評価値、直前区間の評価値、及び直後区間の評価値を用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する。
【0144】
具体的には、決定部312は、判定対象区間の評価値が直前区間の評価値を超えている場合、又は直前区間が存在しない場合、かつ判定対象区間の評価値が直後区間の評価値を超えている場合、又は直後区間が存在しない場合、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。
【0145】
また決定部312は、判定対象区間の評価値が直前区間の評価値以下の場合、直前区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。これにより、所定時間の経過を待たずに、判定対象区間における特定部位の移動に優位な軸を直前区間の主軸に決定できる。
【0146】
また決定部312は、判定対象区間の評価値が直後区間の評価値以下の場合、直後区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。
【0147】
第1軸判定部316、第2軸判定部318は、それぞれ、第1軸、第2軸に対し、算出部104により算出される移動ベクトルを用いて、いずれの方向が優位であるか否かを判定する。これにより、第1軸判定部316は、第1軸のいずれの方向が指示されているかを判定し、第2軸判定部318は、第2軸のいずれの方向が指示されているかを判定する。例えば、第1軸が垂直方向の軸であれば、第1軸判定部316は、上、下のいずれの方向が指示されているかを判定し、第2軸が水平方向の軸であれば、第2軸判定部318は、右、左のいずれの方向が指示されているかを判定する。なお以下では、軸のいずれかの方向を指示することを「送り動作」と称する。送り動作とは、ユーザが手などの特定部位を振る動作であり、振った方向を指示するものとする。
【0148】
第2軸判定部318は、第2軸のいずれの方向に送り動作が行われたかを、以下で説明する判定方法を用いて判定すればよい。ここでは、第2軸判定部318を例に取り説明するが、第1軸判定部316についても同様である。
【0149】
第2軸判定部318は、算出部104により算出された移動ベクトルの第2軸成分の速度(移動ベクトルと第2軸との内積値)が閾値以上となった場合に、第2軸における当該移動ベクトルの方向に送り動作が行われたと判定する。
【0150】
ここで、移動ベクトルRsの始点であり、時刻Tsの時点で取得部102により取得された位置Psの座標を(xs,ys)、移動ベクトルRsの終点であり、時刻Ts+1の時点で取得部102により取得された位置Ps+1の座標を(xs+1,ys+1)とする。この場合、移動ベクトルRsの第2軸成分(x軸成分)は、xs+1−xsとなり、単位時間あたりの移動ベクトルRsの第2軸成分Ssは、Ss=(xs+1−xs)/(Ts+1−Ts)となる。
【0151】
そして、移動ベクトルRsの第2軸成分の速度Vsは、Vs=|Ss|と表現され、移動ベクトルRsの第2軸成分の方向は、Ssの符号が正であれば正方向、Ssの符号が負であれば負方向となる。このため、第2軸判定部318は、Vsが閾値以上となった場合に、Ssの符号が正であれば第2軸の正方向に送り動作が行われたと判定し、Ssの符号が負であれば第2軸の負方向に送り動作が行われたと判定する。
【0152】
なお第2軸判定部318は、一度送り動作が行われたと判定すれば、移動ベクトルの第2軸成分の方向が切り替わるまで判定を中止し、この判定結果を利用すればよい。第2軸判定部318は、Ssの符号が切り替わった場合に、移動ベクトルの第2軸成分の方向が切り替わったと判断する。ここで第2軸判定部318は、Ssの符号が切り替わるまでに0を挟んでいてもよい。例えば、Ss−2の符号が正、Ss−1の値が0、Ssの符号が負である場合、第2軸判定部318は、Ss−1の時点で移動ベクトルの第2軸成分の方向が切り替わったと判断せず、Ssの時点で移動ベクトルの第2軸成分の方向が切り替わったと判断する。
【0153】
また第2軸判定部318は、送り動作が行われたと判定した後に、逆方向への送り動作(以下、「復帰動作」と称する)が行われたと判定しないようにするため、送り動作が行われたと判定した直後の復帰動作を無視するようにしてもよい。
【0154】
更に第2軸判定部318は、送り動作が行われたと判定する前に、逆方向への送り動作(以下、「振りかぶり動作」と称する)が行われたと判定しないようにするとともに、送り動作が行われたと判定した後に、逆方向への送り動作(以下、「復帰動作」と称する)が行われたと判定しないようにしてもよい。この場合、第2軸判定部318は、判定対象とする操作区間の直前区間及び直後区間を用いて、当該操作区間で送り動作が行われたか否かを判定する。なお、操作区間とは、移動ベクトルの第2軸成分の方向が切り替わる第2軸方向転換点が存在する場合には最新の第2軸方向転換点、第2軸方向転換点が存在しない場合には最初に取得された位置である開始点を始点とし、始点の後に第2軸方向転換点が存在する場合には直後の第2軸方向転換点、始点の後に第2軸方向転換点が存在しない場合には最後に取得された位置である終了点を終点とする区間である。
【0155】
具体的に説明すると、まず、第2軸判定部318は、算出部104により算出されたベクトルの第2軸方向転換点を設定する。なお本実施形態では、第2軸判定部318は、操作区間において送り動作が行われたか否かをリアルタイムで判定するものとするが、これに限定されるものではなく、バッチ処理、即ち、ジェスチャ終了後に判定するようにすることもできる。ここでは、説明の便宜上、操作区間において送り動作が行われたか否かをバッチ処理で判定する場合を説明し、リアルタイムで判定する場合については後述する。
【0156】
図22は、第3実施形態の第2軸判定部318による第2軸方向転換点の設定例を示す図である。図22に示す例では、Usは、取得部102により最初に取得された位置である開始点を示し、U1、U2は、第2軸方向転換点を示し、Ueは、取得部102により取得された最後の位置である終了点を示す。この場合、第2軸判定部318は、区間Us〜U1、区間U1〜U2、区間U2〜Ueを順番に操作区間に設定し、それぞれの操作区間において送り動作が行われたか否かを判定する。
【0157】
具体的には、第2軸判定部318は、区間Us〜U1を操作区間に設定した場合、区間U1〜U2を直後区間に設定し、操作区間の評価値と直後区間の評価値とを算出し、操作区間である区間Us〜U1において送り動作が行われたか否かを判定する。同様に、第2軸判定部318は、区間U1〜U2を操作区間に設定した場合、区間Us〜U1を直前区間、区間U2〜Ueを直後区間に設定し、操作区間の評価値と直前区間の評価値と直後区間の評価値とを算出し、操作区間である区間U1〜U2において送り動作が行われたか否かを判定する。同様に、第2軸判定部318は、区間U2〜Ueを操作区間に設定した場合、区間U1〜U2を直前区間に設定し、操作区間の評価値と直前区間の評価値とを算出し、操作区間である区間U2〜Ueにおいて送り動作が行われたか否かを判定する。
【0158】
ここで、操作区間で送り動作が発生したと判定するための条件は、操作区間の評価値Enが閾値以上であり、かつ直前区間の評価値Em及び直後区間の評価値Elを超えていることとする。なお、評価値については、決定部312が用いる評価値と同様である。但し、ここでは、移動距離は、操作区間の移動ベクトルの第1軸成分(移動ベクトルと第1軸との内積の絶対値)の和としてもよい。また移動速度は、操作区間の移動ベクトルの第1軸成分の速度のうちの最大速度としてもよいし、所定の閾値以上となる移動ベクトルの速度の平均値としてもよい。また移動加速度は、操作区間の移動ベクトルの第1軸成分の加速度のうちの最大加速度としてもよいし、所定の閾値以上となる移動ベクトルの加速度の平均値としてもよい。なお、直前区間が存在しない場合には評価値Emの値は0となり、直後区間が存在しない場合には評価値Elの値は0となる。
【0159】
第2軸判定部318は、区間Us〜U1を操作区間に設定した場合、直前区間を設定せず、区間U1〜U2を直後区間に設定する。この場合、第2軸判定部318は、直前区間が存在せず、また、評価値Enが評価値Elを越えるため、操作区間が優位とし、評価値Enが閾値以上であれば、操作区間である区間Us〜U1において送り動作が行われたと判定する。なお第2軸判定部318は、区間U1〜U2の操作は、区間Us〜U1の復帰動作であると判定する。
【0160】
また第2軸判定部318は、区間U1〜U2を操作区間、区間Us〜U1を直前区間、区間U2〜Ueを直後区間に設定した場合、評価値Enが評価値Em及び評価値El以下となるため、操作区間である区間U1〜U2において送り動作が行われなかったと判定する。つまり、第2軸判定部318は、区間U1〜U2の操作は、区間Us〜U1の復帰動作であると判定する。
【0161】
また第2軸判定部318は、区間U2〜Ueを操作区間に設定した場合、区間U1〜U2を直前区間に設定し、直後区間を設定しない。この場合、第2軸判定部318は、評価値Enが評価値Emを越え、また、直後区間が存在しないため、操作区間が優位とし、評価値Enが閾値以上であれば、操作区間である区間U2〜Ueにおいて送り動作が行われたと判定する。なお第2軸判定部318は、区間U1〜U2の操作は、区間U2〜Ueの振りかぶり動作であると判定する。
【0162】
上記のように、操作区間において送り動作が行われたか否かをバッチ処理で判定する場合について説明したが、リアルタイムで判定する場合には、直後区間の設定の関係上、操作区間において送り動作が行われたか否かの判定に所定時間の遅延が生じることになる。なお、所定時間は、例えば、0.6秒とすることができる。また、操作区間での特定部位の移動速度に応じて所定時間を変更してもよく、例えば、移動速度が速くなるほど所定時間を短くするようにしてもよい。この場合、第2軸判定部318は、所定時間以内で、即ち、操作区間における優位な方向が確定するまでの間、操作区間における優位な方向を逐次判定するとともに、操作区間における優位な方向が確定するまでの進捗率を算出するようにしてもよい。なお進捗率は、決定部312が算出する進捗率と同様に表現することができる。また第2軸判定部318は、操作区間で優位と判定されている方向が切り替わった場合だけ優位な方向(判定結果)を出力するようにしてもよい。ここでは、第2軸判定部318を例に取り説明するが、第1軸判定部316についても同様である。
【0163】
図23は、第3実施形態の第2軸判定部318により判定された進捗率毎の優位な方向の一例を示す図である。時刻Ti〜時刻Ti+10の時点では、操作区間の評価値が、閾値未満、又は直前区間の評価値以下であるため、進捗率は算出されず、操作区間における優位な方向も判定されていない。
【0164】
また、時刻Ti+20〜時刻Ti+80(進捗率0〜0.90)の時点では、操作区間が直前区間よりも優位となり、操作区間における優位な方向は、左となっている。また、時刻Ti+90(進捗率1.00)の時点では、操作区間が直前区間及び直後区間よりも優位となり、操作区間における優位な方向は、左に確定する。これにより、第2軸判定部318は、操作区間において左方向への送り動作が行われたと判定する。
【0165】
また、時刻Ti+100〜時刻Ti+130の時点では、送り動作発生後も操作区間がそのまま続いている状態、若しくは操作区間の評価値が、閾値未満、又は直前区間の評価値以下であるため、進捗率は算出されず、操作区間における優位な方向も判定されていない。
【0166】
また、時刻Ti+140〜時刻Ti+150(進捗率0〜0.15)の時点では、操作区間が直前区間よりも優位となり、操作区間における優位な方向は、右となっている。
【0167】
また、時刻Ti+160〜Ti+220(進捗率0〜0.90)の時点では、操作区間が直前区間よりも優位となり、操作区間における優位な方向は、左となっている。また、時刻Ti+230(進捗率1.00)の時点では、操作区間が直前区間及び直後区間よりも優位となり、操作区間における優位な方向は、左に確定する。これにより、第2軸判定部318は、操作区間において左方向への送り動作が行われたと判定する。
【0168】
判定結果選定部320は、第1軸〜第2軸の判定結果の中から、決定部312により決定された判定対象区間における特定部位の移動に優位な軸の判定結果を選定する。
【0169】
例えば、決定部312により決定された優位な軸が図14に示すとおりであり、第2軸判定部318が時刻Tiの時点で左方向の送り動作が行われたと判定(確定)し、第1軸判定部316が時刻Tiの時点で上方向の送り動作が行われたと判定(確定)したとする。この場合、判定結果選定部320の選定結果は、以下のようになる。
【0170】
決定部312は、時刻Tiの時点で決定を開始した判定対象区間における特定部位の移動に優位な軸を、時刻Ti+70の時点で第2軸に確定する。このため判定結果選定部320は、時刻Ti+70の時点で、時刻Tiの時点での第2軸判定部318の判定結果を選定し、時刻Tiの時点では第2軸において左方向の送り動作が行われたとする。
【0171】
なお判定結果選定部320は、時刻Ti〜時刻Ti+20の時点で、時刻Tiの時点での第1軸判定部316の判定結果を選定し、時刻Ti+30〜時刻Ti+60の時点で、時刻Tiの時点での第2軸判定部318の判定結果を選定するようにしてもよい。つまり、判定結果選定部320は、時刻Ti〜時刻Ti+20の時点では、時刻Tiの時点での送り動作の候補を第1軸における上方向の送り動作とし、時刻Ti+30〜時刻Ti+60の時点では、時刻Tiの時点での送り動作の候補を左方向の送り動作としてもよい。また、送り動作の候補は、送り動作の方向及び進捗率としてもよい。送り動作の方向は、該当時刻において決定部312により優位な軸と決定されている軸における送り動作の方向とすればよく、進捗率は、決定部312の進捗率とすればよい。
【0172】
図24は、第3実施形態の判定結果選定部320により選定された進捗率毎の送り動作の候補の一例を示す図である。時刻Ti〜時刻Ti+20(進捗率0〜0.30)の時点では、時刻Tiの時点での送り動作の候補は左方向の送り動作となっている。また、時刻Ti+30〜時刻Ti+60(進捗率0.45〜0.90)の時点では、時刻Tiの時点での送り動作の候補は上方向の送り動作となっている。そして、時刻Ti+70(進捗率1.00)の時点では、時刻Tiの時点での送り動作は上方向の送り動作に確定している。
【0173】
なお、第1軸判定部316及び第2軸判定部318が操作区間における優位な方向を、進捗率を算出しながら逐次判定する場合には、判定結果選定部320は、第1軸〜第2軸の判定結果の中から、決定部312により決定された判定対象区間における特定部位の移動に優位な軸の判定結果及びその進捗率を選定するようにしてもよい。
【0174】
ここでは、判定結果選定部320が、決定部312により決定された判定対象区間における特定部位の移動に優位な軸の判定結果として第2軸の判定結果及びその進捗率を選定する場合を例に取り説明するが、判定結果選定部320が、第1軸の判定結果及びその進捗率を選定する場合についても同様である。
【0175】
この場合、第2軸判定部318が進捗率を算出しだすと、決定部312も進捗率を算出しだすようにする。つまり、第2軸判定部318が時刻Tiの時点で進捗率を算出しだすと、決定部312も時刻Tiの時点で進捗率を算出しだし、しばらくの間進捗率の算出が継続される。
【0176】
ここでは、説明を簡略化するため、決定部312が算出する進捗率が0.00〜0.99の時点で決定部312が判定対象区間における特定部位の移動に優位な軸を第2軸に決定している場合には、決定部312は、第2軸が優位な軸の候補である旨を出力するものとする。また決定部312が算出する進捗率が1.00の時点で決定部312が判定対象区間における特定部位の移動に優位な軸を第2軸に決定している場合には、決定部312は、第2軸が優位な軸に確定した旨を出力するものとする。また、上記以外の場合、即ち、決定部312が算出する進捗率が0.00〜1.00の時点で決定部312が判定対象区間における特定部位の移動に優位な軸を第1軸に決定している場合には、決定部312は、出力を行わないものとする。
【0177】
この場合、判定結果選定部320は、第2軸判定部318が算出する進捗率が所定の進捗率(例えば、0.00〜0.25)の時点で、決定部312により第2軸が優位な軸の候補である旨、又は第2軸が優位な軸に確定した旨が出力されると、この時点を開始時刻として、第2軸判定部318の判定結果及びその進捗率の選定を開始する。なお、これ以外の場合、判定結果選定部320は、第2軸判定部318の判定結果及びその進捗率を選定しない。
【0178】
そして判定結果選定部320は、選定を開始した開始時刻から第2軸判定部318により算出される進捗率が1.00となる時刻までに、決定部312が出力を行わなくなった場合、決定部312が出力を行わなくなった時点で選定を中止する。
【0179】
また、選定を開始した開始時刻から第2軸判定部318により算出される進捗率が1.00となる時刻までに、決定部312が出力を行わなくなることなく第2軸が優位な軸に確定した旨が出力されたとする。この場合、判定結果選定部320は、その後の第2軸判定部318の判定結果に関わらず第2軸判定部318により算出される進捗率を選定し続け、当該進捗率が1.00となった時点で、第2軸判定部318の判定結果が示す方向への送り動作が発生したことを確定する。
【0180】
また、選定を開始した開始時刻から第2軸判定部318により算出される進捗率が1.00となる時刻になっても、決定部312により第2軸が優位な軸の候補である旨が出力されているとする。この場合、判定結果選定部320は、決定部312により第2軸が優位な軸に確定した旨が出力されるまで、第2軸判定部318により算出される進捗率を0.99にして選定し続ける。そして判定結果選定部320は、決定部312により第2軸が優位な軸に確定した旨が出力されると、当該進捗率を1.00とし、第2軸判定部318の判定結果が示す方向への送り動作が発生したことを確定する。但し、判定結果選定部320は、第2軸判定部318により算出される進捗率を0.99にしている間に、決定部312が出力を行わなくなった場合、決定部312が出力を行わなくなった時点で選定を中止する。
【0181】
提示部314は、判定結果選定部320による判定結果の選定結果に応じた提示を行う。なお、判定結果選定部320が、第1軸〜第2軸の判定結果の中から、決定部312により決定された判定対象区間における特定部位の移動に優位な軸の判定結果及びその進捗率を選定する場合には、提示部314は、選定結果が確定するまで、即ち選定が継続している間は、第2実施形態で説明したような補助提示を行うようにしてもよい。なお、選定結果が確定した後の提示は、第1実施形態と同様である。
【0182】
図25は、第3実施形態の認識装置300で行われる処理の手順の流れの一例を示すフローチャートである。
【0183】
ステップS301〜S304までの処理は、図8に示すフローチャートのステップS101〜S104までの処理と同様である。
【0184】
続いて、区間設定部310は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部310は、当該判定対象区間の始点を終点とし、当該終点の前に方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に方向転換点が存在しない場合には開始点を始点とする直前区間を設定する。そして区間設定部310は、判定対象区間を設定してから所定時間が経過するまでに判定対象区間の始点の後に主軸転換点が存在する場合には当該始点の直後の主軸転換点、所定時間が経過するまでに当該始点の後に主軸転換点が存在しない場合には所定時間経過後の最新点を判定対象区間の終点に更新する。また区間設定部310は、更新後の判定対象区間の終点を始点とし、当該始点の後に方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に最新点が存在する場合には所定時間経過後の最新点を終点とする直後区間を設定する(ステップS305)。
【0185】
続いて、決定部312は、判定対象区間の評価値、直前区間の評価値、及び直後区間の評価値を算出し、算出した判定対象区間の評価値、直前区間の評価値、及び直後区間の評価値を用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する(ステップS306)。
【0186】
また、第1軸判定部316は、算出部104により算出される移動ベクトルを用いて、第1軸におけるいずれの方向が優位であるかを判定する(ステップS307)。
【0187】
また、第2軸判定部318は、算出部104により算出される移動ベクトルを用いて、第2軸におけるいずれの方向が優位であるかを判定する(ステップS308)。
【0188】
続いて、判定結果選定部320は、第1軸〜第2軸の判定結果の中から、決定部312により決定された判定対象区間における特定部位の移動に優位な軸の判定結果を選定する(ステップS310)。
【0189】
そして、取得部102により被写体の特定部位の最新の位置が取得される毎に(ステップS301)、ステップS302〜S310の処理が行われ、提示部314は、判定結果選定部320の選定結果に応じた提示を行う。
【0190】
次に、決定部312の処理の手順の流れの一例について説明する。決定部312の処理の手順の流れは、図10に示すフローチャートと図20に示すフローチャートとを合成したものとなる。具体的には、図10に示すフローチャートにおいて、評価値Ecが評価値Eb以下でない場合(ステップS131でNo)、ステップS133に進まずに、図20に示すフローチャートのステップS241に進むようにすればよい。
【0191】
図26は、第3実施形態の認識装置300で第2軸判定部318により行われる処理の手順の流れの一例を示すフローチャートである。なお、説明は省略するが、第1軸判定部316についても同様である。また、図26では、操作区間において送り動作が行われたか否かをリアルタイムで判定する例を示している。
【0192】
まず、第2軸判定部318は、判定対象区間として、移動ベクトルの第2軸成分の方向が切り替わる第2軸方向転換点が存在する場合には最新の第2軸方向転換点、第2軸方向転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする操作区間を設定する。そして第2軸判定部318は、操作区間の評価値を算出し、閾値以上であるか否かを確認する(ステップS351)。
【0193】
操作区間の評価値が閾値以上である場合(ステップS351でYes)、第2軸判定部318は、操作区間が直前の状況よりも優位であるか否かを確認する(ステップS352)。具体的には、第2軸判定部318は、操作区間の始点を終点とし、当該終点の前に第2軸方向転換点が存在する場合には当該終点の直前の第2軸方向転換点、当該終点の前に第2軸方向転換点が存在しない場合には開始点を始点とする直前区間を設定する。そして第2軸判定部318は、直前区間の評価値を算出し、操作区間の評価値が直前区間の評価値を超えているか否かを確認する。
【0194】
操作区間が直前の状況よりも優位である場合(ステップS352でYes)、即ち、操作区間の評価値が直前区間の評価値を超えている場合、第2軸判定部318は、操作区間が直後の状況よりも優位であるか否かを確認する(ステップS353)。具体的には、第2軸判定部318は、操作区間を設定してから所定時間が経過するまでに操作区間の始点の後に第2軸方向転換点が存在する場合には当該始点の直後の第2軸方向転換点、所定時間が経過するまでに当該始点の後に第2軸方向転換点が存在しない場合には所定時間経過後の最新点を操作区間の終点に更新する。また第2軸判定部318は、更新後の操作区間の終点を始点とし、当該始点の後に第2軸方向転換点が存在する場合には当該始点の直後の第2軸方向転換点、当該始点の後に最新点が存在する場合には所定時間経過後の最新点を終点とする直後区間を設定する。そして第2軸判定部318は、直後区間の評価値を算出し、操作区間の評価値が直後区間の評価値を超えているか否かを確認する。
【0195】
操作区間が直後の状況よりも優位である場合(ステップS353でYes)、即ち、操作区間の評価値が直後区間の評価値を超えている場合、第2軸判定部318は、操作区間において第2軸における移動ベクトルの方向に送り動作が行われたと決定する(ステップS354)。
【0196】
一方、操作区間の評価値が閾値未満である場合(ステップS351でNo)、操作区間が直前の状況よりも優位でない場合(ステップS352でNo)、又は操作区間が直後の状況よりも優位でない場合(ステップS353でNo)、第2軸判定部318は、操作区間において行われた動作は送り動作でないと決定する(ステップS355)。
【0197】
以上のように第3実施形態では、直前区間及び直後区間を利用して判定対象区間のジェスチャを認識する。このため第3実施形態によれば、判定対象区間のジェスチャがノイズであるか否かを判別できるので、ジェスチャにノイズとなる動きが含まれていても正しく認識することができ、認識精度の低下を防止することができる。例えば、ジェスチャの最初と最後にノイズとなる動きが含まれていても、正しく認識することができる。また第3実施形態では、各軸のいずれの方向が指示されているかを認識することもできる。
【0198】
(第4実施形態)
上記第1〜第3実施形態では、被写体の特定部位の位置を表す座標系が有する軸、即ち、特定部位のジェスチャの判別対象となる軸が2軸である場合を例に取り説明したが、第4実施形態では、被写体の特定部位の位置を表す座標系が有する軸が3軸以上であってもよい。但し、各軸は1点で交差するものとする。
【0199】
図27は、第4実施形態で用いられる座標系の一例を示す図である。図27に示す例では、3次元空間を規定する互いに独立なy、x、zに対応した第1軸〜第3軸が設定された座標系となっており、上下・左右・前後の判定が可能となっている。
【0200】
図28は、第4実施形態で用いられる座標系の他の例を示す図である。図28に示す例では、同一平面上での異なる3方向に対応した軸(例えば、同一平面上で120度ずつ回転させて設定した3つの軸)が可能となっている。
【0201】
主軸選定部106は、算出される移動ベクトル毎に、当該移動ベクトルと第1軸〜第3軸それぞれとの内積値である第1内積値〜第3内積値を算出し、算出した第1内積値〜第3内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する。
【0202】
なお、絶対値が最も大きい内積値が複数存在する場合には、主軸選定部106は、絶対値が最も大きい内積値の算出に用いられた軸の中に直前の主軸が存在すれば、当該直前の主軸を主軸に選定する。一方、主軸選定部106は、絶対値が最も大きい内積値の算出に用いられた軸の中に直前の主軸が存在しなければ、絶対値が最も大きい内積値の算出に用いられた任意の軸を主軸に選定する。
【0203】
(応用例)
上記各実施形態の認識装置の応用例について説明する。なお、以下で説明する応用例は、あくまでも例示であり、認識装置を他の機器に応用してもよい。
【0204】
(第1応用例)
図29は、第1応用例のテレビ受像機400の一例を示す図である。図29に示すテレビ受像機400には、上記各実施形態のいずれかの認識装置が適用されており、チャンネル操作がジェスチャで行われる。
【0205】
テレビ受像機400には、カメラ402が取り付けられており、視聴者を撮影している。テレビ受像機400は、視聴者の手404を特定部位として検出追跡し、送り動作を認識する。テレビ画面406には現在チャンネル4が表示されている。視聴者は手404を左にすばやく動かす送り動作を行うことによりチャンネル3に変更でき、右に送り動作を行うことによりチャンネル5に変更できる。
【0206】
(第2応用例)
図30は、第2応用例のパソコン500の一例を示す図である。図30に示すパソコン500には、上記各実施形態のいずれかの認識装置が適用されており、画面506のウィンドウ508内に表示されたウェブコンテンツや文書を、手504のジェスチャによってスクロールさせる。
【0207】
まず、パソコン500には、カメラ502が取り付けられており、ユーザを撮影している。パソコン500は、ユーザの手504を特定部位として検出追跡して送り動作を認識し、パソコン500に対して検出された送り動作の方向へのスクロールのコマンドを実行する。このとき、スクロールバー510で示されるスクロール量は予め定めておいた一定量でもよいし、速い送り動作ならスクロール量を大きくするなど、送り動作の速度に応じて変化させてもよい。
【0208】
これにより、ユーザは、送り動作を行った方向に、ウィンドウ508内の表示内容をスクロールさせて、ウェブコンテンツや文書などを閲覧することができる。
【0209】
(第3応用例)
図31は、第3応用例の医療用の情報端末600の一例を示す図である。図31に示す情報端末600は、上記各実施形態のいずれかの認識装置が適用されており、手術中の医者への情報提供に用いられる。
【0210】
手術中の医者は手604を清潔に保つ必要があるため、医者に患者のモニタリング情報や検査結果等の情報提供を行う情報端末600を手604で直接触って操作することができない。
【0211】
そこで、情報端末600に上記各実施形態のいずれかの認識装置を適用することにより、医者が手604のジェスチャによって非接触で情報端末600を操作できる。
【0212】
情報端末600にはカメラ602が取り付けられており、医者を撮影している。情報端末600は、医者の手604を特定部位として検出追跡して送り動作を認識し、情報端末600に対して検出された送り動作の方向へのスクロールコマンドや、表示情報の変更コマンドを実行する。
【0213】
(変形例)
本発明は上記各実施形態に限らず、その主旨を逸脱しない限り種々に変形することができる。
【0214】
例えば、上記第1実施形態と上記第2実施形態とを組み合わせるようにしてもよい。この場合、区間設定部、決定部、及び提示部の動作は、上記第3実施形態と同様となる。また上記第3実施形態では、区間設定部310は、直前区間及び直後区間の両区間を設定したが、上記第1実施形態や上記第2実施形態のように、いずれか一方のみを設定するようにしてもよい。
【0215】
また、上記応用例として、テレビ受像機400、パソコン500、医療用の情報端末600を例に取り説明したが、これに限らず、ゲーム機器などの他の機器に適用することもできる。つまり、ユーザがリモートコントローラ、センサ、マーカなどを持ったり、身に付けたりすることなく、機器を容易に操作するジェスチャインターフェースに関し、機器制御のためのメニュや機器に表示されたコンテンツ等の送り操作を行うことができる機器に応用できる。
【0216】
上記各実施形態及び上記各変形例の認識装置は、CPU(Central Processing Unit)などの制御装置と、ROMやRAMなどの記憶装置と、HDDやSSDなどの外部記憶装置と、ディスプレイなどの表示装置と、マウスやキーボードなどの入力装置と、通信I/Fなどの通信装置とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0217】
上記各実施形態及び上記各変形例の認識装置で実行される認識プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【0218】
また、上記各実施形態及び上記各変形例の認識装置で実行される認識プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記各実施形態及び上記各変形例の認識装置で実行される認識プログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記各実施形態及び上記各変形例の認識装置で実行される認識プログラムを、ROM等に予め組み込んで提供するようにしてもよい。
【0219】
上記各実施形態及び上記各変形例の認識装置で実行される認識プログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、CPUがHDDからプログラムをRAM上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【0220】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【0221】
以上のように、上記各実施形態及び上記各変形例の認識装置によれば、認識精度の低下を防止することができる。
【符号の説明】
【0222】
100、200、300 認識装置
102 取得部
104 算出部
106 主軸選定部
108 転換点設定部
110、210、310 区間設定部
112、212、312 決定部
114、214、314 提示部
316 第1軸判定部
318 第2軸判定部
320 判定結果選定部
【技術分野】
【0001】
本発明の実施形態は、認識装置、方法及びプログラムに関する。
【背景技術】
【0002】
ジェスチャを認識する認識装置において、被写体の特定部位の速度が閾値以上となる区間で算出した速度ベクトルの角度に応じて、当該特定部位のジェスチャ(動き)が垂直方向であるか水平方向であるかを認識する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−352531号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述したような従来技術では、ジェスチャにノイズとなる動きが含まれると、認識精度が落ちてしまう。本発明が解決しようとする課題は、認識精度の低下を防止することができる認識装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【0005】
実施形態の認識装置は、取得部と、算出部と、主軸選定部と、転換点設定部と、区間設定部と、決定部と、提示部と、を備える。取得部は、第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する。算出部は、時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する。主軸選定部は、算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する。転換点設定部は、前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する。区間設定部は、前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記始点を終点とし、当該終点の前に前記方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に前記方向転換点が存在しない場合には前記開始点を始点とする直前区間を設定する。決定部は、前記判定対象区間の評価値と前記直前区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直前区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する。提示部は、決定結果に応じた提示を行う。
【図面の簡単な説明】
【0006】
【図1】図1は、第1実施形態の認識装置の例を示す構成図。
【図2】図2は、第1実施形態の特定部位のジェスチャの例を示す図。
【図3】図3は、第1実施形態の特定部位の位置の例を示す図。
【図4】図4は、第1実施形態の移動ベクトルの例を示す図。
【図5】図5は、第1実施形態の判定対象区間及び直前区間の設定例を示す説明図。
【図6】図6は、第1実施形態の特定部位のジェスチャの他の例を示す図。
【図7】図7は、第1実施形態の提示例を示す図。
【図8】図8は、第1実施形態の認識装置の処理例を示すフローチャート。
【図9】図9は、第1実施形態の転換点設定部の処理例を示すフローチャート。
【図10】図10は、第1実施形態の決定部の処理例を示すフローチャート。
【図11】図11は、第2実施形態の認識装置の例を示す構成図。
【図12】図12は、第2実施形態の特定部位のジェスチャの他の例を示す図。
【図13】図13は、第2実施形態の進捗率毎の優位な軸の例を示す図。
【図14】図14は、第2実施形態の進捗率毎の優位な軸の他の例を示す図。
【図15】図15は、第2実施形態の補助提示の例を示す図。
【図16】図16は、第2実施形態の補助提示の他の例を示す図。
【図17】図17は、第2実施形態の補助提示の他の例を示す図。
【図18】図18は、第2実施形態の認識装置の処理例を示すフローチャート。
【図19】図19は、第2実施形態の決定部の処理例を示すフローチャート。
【図20】図20は、第2実施形態の決定部の他の処理例を示すフローチャート。
【図21】図21は、第3実施形態の認識装置の例を示す構成図。
【図22】図22は、第3実施形態の第2軸方向転換点の設定例を示す図。
【図23】図23は、第3実施形態の進捗率毎の優位な方向の一例を示す図。
【図24】図24は、第3実施形態の進捗率毎の送り動作の候補の一例を示す図。
【図25】図25は、第3実施形態の認識装置の処理例を示すフローチャート。
【図26】図26は、第3実施形態の第2軸判定部の処理例を示すフローチャート。
【図27】図27は、第4実施形態で用いられる座標系の一例を示す図。
【図28】図28は、第4実施形態で用いられる座標系の他の例を示す図。
【図29】図29は、第1応用例のテレビ受像機の例を示す図。
【図30】図30は、第2応用例のパソコンの例を示す図。
【図31】図31は、第3応用例の情報端末の例を示す図。
【発明を実施するための形態】
【0007】
(第1実施形態)
図1は、第1実施形態の認識装置100の一例を示す構成図である。図1に示すように、認識装置100は、取得部102と、算出部104と、主軸選定部106と、転換点設定部108と、区間設定部110と、決定部112と、提示部114とを、備える。
【0008】
取得部102は、第1軸〜第2軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する。取得部102は、例えば、イメージセンサなどの撮像素子を用いて撮像された時系列の画像に対して、パターン認識法、背景差分法、肌色抽出法、及びフレーム間差分法などの少なくともいずれかの手法を適用して、各画像から特定部位の位置を検出し、検出した特定部位の位置を取得する。特定部位の位置は、例えば、検出された特定部位の領域の重心とすることができる。
【0009】
図2は、第1実施形態の特定部位のジェスチャの一例を示す図であり、図3は、第1実施形態の取得部102により時系列で取得される特定部位の位置の一例を示す図である。例えば、特定部位が図2に示すような移動軌跡をたどった場合、取得部102は、図3に示すように、時系列の画像からサンプリングした離散的な位置P1〜P6を特定部位の位置として時系列で取得する。
【0010】
本実施形態では、特定部位が被写体(ユーザ)の手である場合を例に取り説明するが、特定部位は、これに限定されるものではなく、被写体の指、頭、又はレーザポインタの発光部などであってもよい。
【0011】
また、特定部位の位置は、第1軸〜第2軸を有する座標系で表されるが、第1軸〜第2軸は、特定部位のジェスチャ(動き)の判別対象となる軸であればよい。本実施形態では、垂直(上下)方向のジェスチャと水平(左右)方向のジェスチャとを判別することを目的としているため、第1軸を垂直方向の軸とし、第2軸を水平方向の軸とし、第1軸と第2軸とが交差するものとするが、これに限定されるものではない。例えば、北西−南東方向のジェスチャと北東−南西方向のジェスチャとを判別することを目的としていれば、第1軸を北西−南東方向の軸、第2軸を北東−南西方向の軸とすればよい。また、撮像素子や距離センサから推定された奥行き情報を、第1軸〜第2軸のいずれかの軸としてもよい。
【0012】
また、第1軸〜第2軸を有する座標系で表される特定部位の位置は、これらの軸を成分とした座標で表現してもよいし、撮像素子により撮像された画像上で規定されている座標(ピクセルの位置)で表現してもよい。また、特定部位の位置を表現する座標は、絶対座標であってもよいし、ユーザの顔の位置からの相対座標としてもよい。また、特定部位の位置は、ユーザの顔や最初に検出した特定部位のサイズから正規化された座標値としてもよい。
【0013】
また取得部102は、特定部位の位置だけでなく、当該位置を取得した時刻も取得するようにしてもよい。例えば、特定部位の位置を画像上のx、y座標で表現する場合、取得部102は、i番目のフレームで位置(xi,yi)を取得するとともに、時刻Tiを取得する。時刻は、例えば、認識装置100の起動時、又は取得部102による位置取得開始時を基準とした経過時間、経過クロック数、経過フレーム数などで表現できる。ここでは取得されたフレーム毎に位置を取得する場合を例に説明するが、これに限定されない。
【0014】
算出部104は、時系列で取得される位置毎に特定部位の移動ベクトルを算出する。本実施形態では、移動ベクトルが、取得部102により前回取得された位置からの相対ベクトルである場合を例に取り説明するが、これに限定されるものではない。
【0015】
図4は、第1実施形態の算出部104により算出される移動ベクトルの一例を示す図である。算出部104は、例えば、取得部102により位置P2が取得されると、前回(前フレームで)取得された位置P1からの相対ベクトルである移動ベクトルR1を算出する。具体的には、位置P1の座標を(x1,y1)、位置P2の座標を(x2,y2)とすると(ここでは、第2軸をx軸、第1軸をy軸とする)、算出部104は、R1=(x2−x1,y2−y1)Tを計算して移動ベクトルR1を算出する。ここで、Tは、転置行列を示す。
【0016】
なお、移動ベクトルは、前回取得された位置ではなく、数回(数フレーム)前に取得された位置からの相対ベクトルであってもよいし、直前に存在する方向転換点(詳細は後述)からの相対ベクトルであってもよい。また、移動ベクトルは、前回(前フレームで)取得された位置、現在(現フレームで)取得された位置、及び次回(次フレームで)取得される位置から算出される傾きを有し、現在取得された位置を通過するようなベクトルとしてもよい。この場合の傾きは、前回取得された位置をP1(x1,y1)、現在取得された位置をP2(x2,y2)、次回取得される位置をP3(x3,y3)とすると、例えば、位置P1と位置P2とのベクトルの傾き(y2−y1/x2−x1)と位置P2と位置P3とのベクトルの傾き(y3−y2/x3−x2)との平均とすることができる。また、移動ベクトルは、撮像素子により撮像された画像上の特定部位のブラーの方向から特定部位の移動方向を推測することで算出される傾きを有し、現在取得された位置を通過するようなベクトルとしてもよい。
【0017】
主軸選定部106は、算出される移動ベクトル毎に、当該移動ベクトルと第1軸〜第2軸それぞれとの内積値である第1内積値〜第2内積値を算出し、算出した第1内積値〜第2内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する。つまり、主軸選定部106は、第1軸〜第2軸のうち特定部位のジェスチャの方向が近い方の軸を主軸に選定する。
【0018】
例えば、図4に示す例の場合、第1軸と第2軸とが直角に交差しているため、主軸選定部106は、第1軸に対する移動ベクトルの傾き、即ち、第1軸と移動ベクトルとの鋭角が±45°の範囲であれば第1軸を主軸に選定し、第2軸に対する移動ベクトルの傾き、即ち、第2軸と移動ベクトルとの鋭角が±45°の範囲であれば第2軸を主軸に選定する。この結果、主軸選定部106は、移動ベクトルR1の主軸に第1軸を選定し、移動ベクトルR2〜R5の主軸に第2軸を選定するため、P1〜P2時点での主軸は第1軸となり、P2〜P6時点での主軸は第2軸となる。
【0019】
なお主軸選定部106は、第1内積値〜第2内積値のうち前回算出された移動ベクトルの主軸を用いて算出した内積値に対して、当該内積値を増加させる補正を行うようにしてもよい。つまり、主軸選定部106は、ヒステリシスを設けて主軸を選定し、例えば、前回、第1軸を主軸に選定していれば、現在においても第1軸を主軸に選定しやすいように補正をかけて、主軸を選定するようにしてもよい。
【0020】
例えば、主軸選定部106は、移動ベクトルと前回主軸に選定された軸との内積値である主軸内積値と、移動ベクトルと前回主軸に選定されなかった軸との内積値である非主軸内積値とを、算出する。そして主軸選定部106は、主軸内積値に値を増加させるような補正関数をかけて補正し、補正後の主軸内積値と主軸内積値とを比較して絶対値の大きい方の内積値の算出に用いられた軸を主軸に選定する。補正関数は、例えば、γ(γ>1.0)とすることができる。また例えば、第1軸と第2軸とが直角に交差しているのであれば、前回主軸に選定された軸に対する移動ベクトルの傾きが±50°の範囲であれば当該軸を主軸に選定し、前回主軸に選定されなかった軸に対する移動ベクトルの傾きが±40°の範囲であれば当該軸を主軸に選定するようにしてもよい。
【0021】
転換点設定部108は、主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、移動ベクトルの方向が主軸成分において切り替わる位置を方向転換点に設定する。例えば、図4に示す例の場合、位置P2では、主軸が第1軸から第2軸に切り替わるため、転換点設定部108は、位置P2を主軸転換点かつ方向転換点に設定する。また、位置P5では、主軸である第2軸成分において移動ベクトルの方向が右方向から左方向へと切り替わるため、転換点設定部108は、位置P2を方向転換点に設定する。
【0022】
なお転換点設定部108は、主軸成分における移動ベクトルの方向の切り替わりを、移動ベクトルと主軸との内積値の符号の切り替わりで判定してもよい。また、位置P3及びP4では、主軸ではない第1軸成分において移動ベクトルの方向が切り替わっているが、主軸である第2軸成分において移動ベクトルの方向が切り替わっていないため、転換点設定部108は、位置P3及びP4を方向転換点に設定しない。
【0023】
区間設定部110は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部110は、当該判定対象区間の始点を終点とし、当該終点の前に方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に方向転換点が存在しない場合には開始点を始点とする直前区間を設定する。判定対象区間に設定された部分のジェスチャが、第1軸方向のジェスチャであるか第2軸方向のジェスチャであるかの判定対象となり、直前区間に設定された部分のジェスチャが、判定対象区間に設定された部分のジェスチャがノイズであるか否かの判定に用いられる。ノイズとは、被写体(ユーザ)が意図するジェスチャ(手振りなど)とは無関係な、不要な情報をさす。
【0024】
本実施形態では、区間設定部110は、判定対象区間及び直前区間をオンライン、即ち、リアルタイムで設定するものとするが、これに限定されるものではなく、バッチ処理、即ち、ジェスチャ終了後に設定するようにすることもできる。ここでは、説明の便宜上、判定対象区間及び直前区間をバッチ処理で設定する場合を最初に説明し、その後、リアルタイムで設定する場合について説明する。
【0025】
図5は、第1実施形態のバッチ処理による判定対象区間及び直前区間の設定手法の一例を示す説明図である。図5に示す例では、Qsは、取得部102により最初に取得された位置である開始点を示し、Q1〜Q4は、主軸転換点かつ方向転換点を示し、K1〜K2は、方向転換点を示し、Qeは、取得部102により取得された最後の位置である終了点を示す。
【0026】
判定対象区間及び直前区間をバッチ処理で設定する場合、区間設定部110は、Qs〜Qeが取得された後に、順番に判定対象区間及び直前区間を設定し、設定した判定対象区間及び直前区間の情報を決定部112に順次出力する。設定した判定対象区間及び直前区間の情報は、判定対象区間及び直前区間を区切る両端の位置でもよいし、当該位置を取得した時刻でもよいし、当該位置のIDであってもよい。
【0027】
具体的には、区間設定部110は、まず、Qsを始点とし、Q1を終点とする区間Qs〜Q1を判定対象区間に設定し、設定した判定対象区間の情報を決定部112に出力する。この場合、区間設定部110は、直前区間を設定しない。続いて、区間設定部110は、Q1を始点とし、Q2を終点とする区間Q1〜Q2を判定対象区間に設定するとともに、Qsを始点とし、Q1を終点とする区間Qs〜Q1を直前区間に設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。以下同様に、区間設定部110は、区間Q2〜Q3、区間K2〜Q2を、それぞれ判定対象区間、直前区間に設定して、決定部112に出力し、区間Q3〜Q4、区間Q2〜Q3を、それぞれ判定対象区間、直前区間に設定して、決定部112に出力し、区間Q4〜Qe、区間Q3〜Q4を、それぞれ判定対象区間、直前区間に設定して、決定部112に出力する。
【0028】
つまり、判定対象区間及び直前区間をバッチ処理で設定する場合、区間設定部110は、開始点又は主軸転換点を順次始点とし、始点の後に主軸転換点が存在する場合には直後の主軸転換点、始点の後に主軸転換点が存在しない場合には終了点を終点とする判定対象区間を設定する。また区間設定部110は、当該判定対象区間の始点を終点とし、当該終点の前に方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に方向転換点が存在しない場合には開始点を始点とする直前区間を設定する。
【0029】
次に、判定対象区間及び直前区間をリアルタイムで設定する場合について説明する。判定対象区間及び直前区間をリアルタイムで設定する場合、区間設定部110は、取得部102により位置が取得される毎に、判定対象区間及び直前区間を設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。
【0030】
図4を参照しながら、具体的に説明する。まず、取得部102により最新の位置である最新点(開始点)P1が取得されても、区間設定部110は、判定対象区間及び直前区間を設定しない。
【0031】
続いて、取得部102により最新点P2が取得されると、開始点P1を始点とし、最新点P2を終点とする区間P1〜P2を判定対象区間に設定し、設定した判定対象区間の情報を決定部112に出力する。この場合、区間設定部110は、直前区間を設定しない。
【0032】
続いて、取得部102により最新点P3が取得されると、P2が主軸転換点となるため、最新の主軸転換点P2を始点とし、最新点P3を終点とする区間P2〜P3を判定対象区間に設定するとともに、開始点P1を始点とし、主軸転換点P2を終点とする区間P1〜P2を直前区間に設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。
【0033】
続いて、取得部102により最新点P4が取得されると、最新の主軸転換点P2を始点とし、最新点P4を終点とする区間P2〜P4を判定対象区間に設定するとともに、開始点P1を始点とし、主軸転換点P2を終点とする区間P1〜P2を直前区間に設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。
【0034】
続いて、取得部102により最新点P5が取得されると、最新の主軸転換点P2を始点とし、最新点P5を終点とする区間P2〜P5を判定対象区間に設定するとともに、開始点P1を始点とし、主軸転換点P2を終点とする区間P1〜P2を直前区間に設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。
【0035】
続いて、取得部102により最新点P6が取得されると、最新の主軸転換点P2を始点とし、最新点P6を終点とする区間P2〜P6を判定対象区間に設定するとともに、開始点P1を始点とし、主軸転換点P2を終点とする区間P1〜P2を直前区間に設定し、設定した判定対象区間及び直前区間の情報を決定部112に出力する。
【0036】
決定部112は、判定対象区間の評価値と直前区間の評価値とを算出し、算出した判定対象区間の評価値と直前区間の評価値とを用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する。具体的には、決定部112は、判定対象区間の評価値が直前区間の評価値を超えている場合、又は直前区間が存在しない場合、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。また決定部112は、判定対象区間の評価値が直前区間の評価値以下の場合、直前区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。
【0037】
ここで、評価値は、特定部位の位置又は大きさの変化量(移動距離)、特定部位の位置又は大きさの変化の速度(移動速度)、及び特定部位の位置又は大きさの変化の加速度(移動加速度)の少なくともいずれかであるものとする。例えば、評価値は、数式(1)に示すように、特定部位の移動距離及び移動速度を用いた関数で表現するようにしてもよいし、数式(2)に示すように、特定部位の移動距離、移動速度、及び移動加速度を用いた関数で表現するようにしてもよいし、特定部位の移動距離としてもよいし、特定部位の移動速度としてもよいし、特定部位の移動加速度としてもよい。
【0038】
【数1】
【0039】
E=V×L×α …(2)
【0040】
Eは評価値を示し、Vは移動速度を示し、Lは移動距離を示し、αは移動加速度を示すものとする。
【0041】
移動距離は、判定対象区間の移動ベクトルのユークリッド距離の和としてもよいし、移動ベクトルの主軸成分(移動ベクトルと主軸との内積の絶対値)の和としてもよい。例えば、図4に示す例の場合、最新点P5が取得された時点での判定対象区間である区間P2〜P5における移動距離は、移動ベクトルR2〜R4の各ユークリッド距離を合計した合計距離とすることができる。
【0042】
移動速度は、判定対象区間の移動ベクトルの速度のうちの最大速度としてもよいし、所定の閾値以上となる移動ベクトルの速度の平均値としてもよい。なお、移動ベクトルの速度は、当該移動ベクトルの両端点Pb、Pcの取得時刻をそれぞれTb、Tcとすると、|Pb〜Pcの距離/(Tb−Tc)|とできる。例えば、図4に示す例の場合、区間P2〜P5における移動速度は、移動ベクトルR2〜R4の速度のうちの最大速度とすることができる。移動ベクトルR2の速度は、P2、P3が取得された時刻をそれぞれT2、T3とすると、|移動ベクトルR2のユークリッド距離/(T3−T2)|となる。
【0043】
なお、特定部位の移動速度の算出手法は、これに限定されるものではなく、例えば、決定部112は、取得部102により取得される特定部位の位置の周辺の各画素の速度(オプティカルフロー)を計算し、計算した各画素の速度の平均値や最頻値を特定部位の移動速度とするようにしてもよい。
【0044】
また例えば、決定部112は、特定部位の画像内の位置を観測値、特定部位の位置と速度を状態変数とし、観測値と等速運動などの状態変数の運動モデルによって最適な状態を推定するカルマンフィルタなどのフィルタを用いて、特定部位の移動速度を計算するようにしてもよい。この際、決定部112は、観測値として、特定部位の画像内の位置の周辺の各画素の速度(オプティカルフロー)の平均値を更に用いるようにしてもよい。
【0045】
移動加速度は、判定対象区間の移動ベクトルの加速度のうちの最大加速度としてもよいし、所定の閾値以上となる移動ベクトルの加速度の平均値としてもよい。なお、移動ベクトルの加速度は、当該移動ベクトルの両端点Pb、Pcの取得時刻をそれぞれTb、Tc、当該移動ベクトルの直前の移動ベクトルの両端点Pa、Pbの取得時刻をそれぞれTa、Tbとすると、|Pb〜Pcの速度−Pa〜Pbの速度/(Tb−Tc)|とできる。
【0046】
ここで、図4に示す例を用いて、判定対象区間における特定部位の移動に優位な軸の決定方法を具体的に説明する。まず、区間設定部110により区間P1〜P2が判定対象区間に設定された場合、直前区間は存在しないため、決定部112は、区間P1〜P2では、主軸である第1軸が特定部位の移動に優位であると決定する。
【0047】
続いて、区間設定部110により区間P2〜P3が判定対象区間に設定され、区間P1〜P2が直前区間に設定された場合、決定部112は、区間P2〜P3の評価値と区間P1〜P2の評価値とを算出する。ここでは、区間P2〜P3(判定対象区間)の評価値が区間P1〜P2(直前区間)の評価値以下とする。この場合、決定部112は、区間P2〜P3では、主軸は第2軸であるが、区間P1〜P2の主軸である第1軸が特定部位の移動に優位であると決定する。つまり、この時点では、決定部112は、区間P2〜P3の移動軌跡をノイズとみなしている。
【0048】
続いて、区間設定部110により区間P2〜P4が判定対象区間に設定され、区間P1〜P2が直前区間に設定された場合、決定部112は、区間P2〜P4の評価値と区間P1〜P2の評価値とを算出する。なお、区間P1〜P2の評価値は、前回算出したものを使用してもよい。ここでは、区間P2〜P4(判定対象区間)の評価値が区間P1〜P2(直前区間)の評価値を超えているものとする。この場合、決定部112は、区間P2〜P4では、主軸である第2軸が特定部位の移動に優位であると決定する。つまり、この時点では、決定部112は、区間P2〜P4の移動軌跡をジェスチャとみなしている。
【0049】
以降、区間P2〜P5、区間P2〜P6が判定対象区間に設定された場合においても、判定対象区間の評価値が直前区間の評価値を超え、決定部112は、主軸である第2軸が特定部位の移動に優位であると決定する。
【0050】
図6は、第1実施形態の特定部位のジェスチャの他の例を示す図である。図6に示す例では、特定部位が右方向への軌跡を描いたあと(軌跡171、172)、上方向への軌跡を描いている(軌跡173)。なお、図6に示す例では、評価値として移動距離を用いるものとする。
【0051】
軌跡171、172の時点では、右方向への軌跡が判定対象区間となり、直前区間は存在しないため、決定部112は、判定対象区間の主軸となる水平方向の軸が特定部位の移動に優位であると決定する。
【0052】
軌跡173の時点では、上方向への軌跡が判定対象区間となり、右方向への軌跡が直前区間となる。決定部112は、上方向への軌跡の移動距離が右方向への軌跡の移動距離よりも短いため、右方向への軌跡の評価値が上方向への軌跡の評価値を超えると判定し、判定対象区間においても、直前区間の主軸である水平方向の軸が特定部位の移動に優位であると決定する。
【0053】
これにより、垂直方向へのジェスチャはノイズとみなされ、ジェスチャ全体としては水平方向が優位と決定されることになる。
【0054】
提示部114は、決定部112の決定結果に応じた提示を行う。提示部114は、例えば、ディスプレイに表示されている画面を、第1〜第2軸のうち決定部112により特定部位の移動に優位であると決定された軸方向に遷移する。
【0055】
図7は、第1実施形態の提示部114による提示の一例を示す図である。図7に示す例では、提示部114は、画面180の左側にオブジェクト181、中央にオブジェクト182、右側にオブジェクト183を表示している。ここで、ユーザが、特定部位である手186を矢印187方向、即ち左方向に動かすジェスチャを行ったとする。このジェスチャは、決定部112により水平方向の軸が手186の移動に優位であると決定されるので、提示部114は、画面180において、オブジェクトを水平方向(左側)に遷移させる。この結果、提示部114は、画面180の左側にオブジェクト182、中央にオブジェクト183、右側にオブジェクト184を表示する。
【0056】
なお、認識装置100が決定部112の決定結果に応じてコマンドを発行するコマンド発行部を備える場合、提示部114は、発行されたコマンドに応じた提示を行う。
【0057】
例えば、決定部112は、特定部位の移動に優位である決定した軸のIDをコマンド発行部に出力する。ここで、決定部112は、特定部位の移動に優位である決定した軸のIDとともに、判定対象区間の両端点のIDなど判定対象区間を指定する情報をコマンド発行部に出力してもよい。また、決定部112は、特定部位の移動に優位である決定した軸が変更した場合のみ、当該軸のIDをコマンド発行部に出力するようにしてもよい。
【0058】
そして、当該軸成分での特定部位の移動速度が閾値以上であれば、コマンド発行部は当該軸方向でのコマンドを発行する。例えば、図4に示す例において、区間P2〜P3が判定対象区間である場合、判定対象区間において特定部位の移動に優位である軸は第1軸となるので、移動ベクトルR2の第1軸成分の速さ(移動ベクトルR2と第1軸との内積値の絶対値)、即ち、移動ベクトルR2の上方向の速度成分が閾値以上であれば、コマンド発行部は上方向のコマンドを発行する。また、区間P2〜P4が判定対象区間である場合、判定対象区間において特定部位の移動に優位である軸は第2軸となるので、移動ベクトルR2、R3のうち第1軸成分の速さが速い方の右方向の速度成分が閾値以上であれば、コマンド発行部は右方向のコマンドを発行する。
【0059】
提示部114は、発行されたコマンドに従い、ディスプレイに表示されている画面を遷移する。
【0060】
図8は、第1実施形態の認識装置100で行われる処理の手順の流れの一例を示すフローチャートである。
【0061】
まず、取得部102は、第1軸〜第2軸を有する座標系で表される被写体の特定部位の位置を取得する(ステップS101)。
【0062】
続いて、算出部104は、取得部102により取得された位置に対する前回取得された位置からの相対ベクトルを特定部位の移動ベクトルとして算出する(ステップS102)。
【0063】
続いて、主軸選定部106は、算出部104により算出された移動ベクトルと第1軸〜第2軸それぞれとの内積値である第1内積値〜第2内積値を算出し、算出した第1内積値〜第2内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する(ステップS103)。
【0064】
続いて、転換点設定部108は、取得部102により前回取得された位置で主軸が切り替われば主軸転換点及び方向転換点に設定し、取得部102により前回取得された位置で移動ベクトルの方向が主軸成分において切り替われば方向転換点に設定する(ステップS104)。
【0065】
続いて、区間設定部110は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部110は、当該判定対象区間の始点を終点とし、当該終点の前に方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に方向転換点が存在しない場合には開始点を始点とする直前区間を設定する(ステップS105)。
【0066】
続いて、決定部112は、判定対象区間の評価値と直前区間の評価値とを算出し、算出した判定対象区間の評価値と直前区間の評価値とを用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する(ステップS106)。
【0067】
そして、取得部102により被写体の特定部位の最新の位置が取得される毎に(ステップS101)、ステップS102〜S106の処理が行われ、提示部114は、決定部112の決定結果に応じた提示を行う。
【0068】
図9は、第1実施形態の認識装置100で転換点設定部108により行われる処理の手順の流れの一例を示すフローチャートである。
【0069】
まず、転換点設定部108は、取得部102から最新フレームの特定部位の位置Pjを取得するとともに、主軸選定部106から最新フレームの主軸IDを取得する(ステップS120)。最新フレームの主軸IDは、位置Pjに対する前回のフレームの特定部位の位置Piからの相対ベクトルである移動ベクトルRiの主軸の主軸IDである。
【0070】
続いて、転換点設定部108は、取得した位置Pjが取得部102により特定部位の位置取得が開始されてから2フレーム以内に取得されたものか否かを判定する(ステップS121)。ここで、転換点設定部108が、位置Pjは位置取得が開始されてから2フレーム以内に取得されたものと判定した場合(ステップS121でYes)、処理は終了となる。これは、転換点を設定できるほど位置が取得されていないためである。
【0071】
一方、転換点設定部108が、位置Pjは位置取得が開始されてから2フレーム以内に取得されたものでないと判定したとする(ステップS121でNo)。この場合、転換点設定部108は、取得部102から前回のフレームの特定部位の位置Pi及び前々回のフレームの特定部位の位置Phを取得するとともに、主軸選定部106から前回のフレームの主軸IDを取得する(ステップS122)。前回のフレームの主軸IDは、位置Piに対する前々回のフレームの特定部位の位置Phからの相対ベクトルである移動ベクトルRhの主軸の主軸IDである。なお、転換点設定部108は、前回のフレームにおいて取得した最新フレームの主軸IDを保存しておき、前回のフレームの主軸IDとしてもよい。
【0072】
続いて、転換点設定部108は、最新フレームの主軸IDが前回のフレームの主軸IDと異なるか否かを判定する(ステップS123)。
【0073】
最新フレームの主軸IDが前回のフレームの主軸IDと異なる場合(ステップS123でYes)、転換点設定部108は、位置Piを主軸転換点及び方向転換点に設定する(ステップS124)。これにより、処理は終了となる。
【0074】
一方、最新フレームの主軸IDが前回のフレームの主軸IDと同一となる場合(ステップS123でNo)、転換点設定部108は、位置Piにおいて特定部位の移動軌跡(移動ベクトル)が主軸成分で方向転換しているか否かを判定する(ステップS125)。具体的には、転換点設定部108は、移動ベクトルRiと最新フレームの主軸との内積値と、移動ベクトルRjと前回のフレームの主軸との内積値と、の符号が異なっているか否かを判定する。但し、移動ベクトルRjと前回のフレームの主軸との内積値が0である場合、移動ベクトルRjでは主軸成分に変化が無かったことになる。この場合、転換点設定部108は、3回前の特定部位の位置Pgを取得し、位置Phに対する3回前のフレームの特定部位の位置Pgからの相対ベクトルである移動ベクトルRgと前々回のフレームの主軸との内積値を用いる。
【0075】
位置Piにおいて特定部位の移動軌跡(移動ベクトル)が主軸成分で方向転換している場合(ステップS125でYes)、即ち、両内積値の符号が異なっている場合、転換点設定部108は、位置Piを方向転換点に設定する(ステップS126)。これにより、処理は終了となる。
【0076】
一方、位置Piにおいて特定部位の移動軌跡(移動ベクトル)が主軸成分で方向転換していない場合(ステップS125でNo)、即ち、両内積値の符号が同一である場合、処理は終了となる。
【0077】
図10は、第1実施形態の認識装置100で決定部112により行われる処理の手順の流れの一例を示すフローチャートである。
【0078】
まず、決定部112は、直前区間が存在するか否かを確認する(ステップS130)。
【0079】
直前区間が存在する場合(ステップS130でYes)、決定部112は、判定対象区間の評価値Ecと直前区間の評価値Ebとを算出し、評価値Ecが評価値Eb以下であるか否かを判定する(ステップS131)。
【0080】
評価値Ecが評価値Eb以下である場合(ステップS131でYes)、決定部112は、直前区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS132)。これにより、処理は終了となる。
【0081】
一方、直前区間が存在しない場合(ステップS130でNo)、又は評価値Ecが評価値Eb以下でない場合(ステップS131でNo)、決定部112は、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS133)。これにより、処理は終了となる。
【0082】
以上のように第1実施形態では、直前区間を利用して判定対象区間のジェスチャを認識する。このため第1実施形態によれば、判定対象区間のジェスチャがノイズであるか否かを判別できるので、ジェスチャにノイズとなる動きが含まれていても正しく認識することができ、認識精度の低下を防止することができる。
【0083】
例えば、ジェスチャの最後にノイズとなる動きが含まれている場合には、正常なジェスチャ部分が直前区間、ノイズ部分が判定対象区間となる。そして、直前区間を利用することにより、判定対象区間のジェスチャをノイズと判別でき、直前区間の正常なジェスチャの移動方向に置き換えるので、ジェスチャにノイズとなる動きが含まれていても正しく認識することができる。
【0084】
(第2実施形態)
第2実施形態では、直後区間を利用して判定対象区間のジェスチャを認識する例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0085】
図11は、第2実施形態の認識装置200の一例を示す構成図である。第2実施形態の認識装置200では、区間設定部210、決定部212、及び提示部214が第1実施形態と相違する。
【0086】
区間設定部210は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、当該始点を設定してから所定時間が経過するまでに当該始点の後に主軸転換点が存在する場合には当該始点の直後の主軸転換点、所定時間が経過するまでに当該始点の後に主軸転換点が存在しない場合には所定時間が経過するまでに取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部210は、当該判定対象区間の終点を始点とし、当該始点の後に方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に最新点が存在する場合には最新点を終点とする直後区間を設定する。直後区間に設定された部分のジェスチャが、判定対象区間に設定された部分のジェスチャがノイズであるか否かの判定に用いられる。
【0087】
本実施形態においても、区間設定部210は、判定対象区間及び直後区間をリアルタイムで設定するものとするが、これに限定されるものではなく、バッチ処理、即ち、ジェスチャ終了後に設定するようにすることもできる。ここでも、説明の便宜上、判定対象区間及び直後区間をバッチ処理で設定する場合を最初に説明し、その後、リアルタイムで設定する場合について説明する。
【0088】
図5を参照しながら、判定対象区間及び直後区間をバッチ処理で設定する場合について説明する。判定対象区間及び直後区間をバッチ処理で設定する場合、区間設定部210は、Qs〜Qeが取得された後に、順番に判定対象区間及び直後区間を設定し、設定した判定対象区間及び直後区間の情報を決定部212に順次出力する。設定した判定対象区間及び直後区間の情報は、判定対象区間及び直後区間を区切る両端の位置でもよいし、当該位置を取得した時刻でもよいし、当該位置のIDであってもよい。
【0089】
具体的には、区間設定部210は、まず、Qsを始点とし、Q1を終点とする区間Qs〜Q1を判定対象区間に設定するとともに、Q1を始点とし、K1を終点とする区間Q1〜K1を直後区間に設定し、設定した判定対象区間及び直後区間の情報を決定部212に出力する。続いて、区間設定部210は、Q1を始点とし、Q2を終点とする区間Q1〜Q2を判定対象区間に設定するとともに、Q2を始点とし、Q3を終点とする区間Q2〜Q3を直後区間に設定し、設定した判定対象区間及び直後区間の情報を決定部212に出力する。以下同様に、区間設定部210は、区間Q2〜Q3、区間Q3〜Q4を、それぞれ判定対象区間、直後区間に設定して、決定部212に出力し、区間Q3〜Q4、区間Q4〜Q5を、それぞれ判定対象区間、直後区間に設定して、決定部212に出力する。最後に、区間設定部210は、区間Q4〜Q5を判定対象区間に設定して、決定部212に出力する。この場合、区間設定部210は、直後区間を設定しない。
【0090】
つまり、判定対象区間及び直後区間をバッチ処理で設定する場合、区間設定部210は、開始点又は主軸転換点を順次始点とし、始点の後に主軸転換点が存在する場合には直後の主軸転換点、始点の後に主軸転換点が存在しない場合には終了点を終点とする判定対象区間を設定する。また区間設定部210は、当該判定対象区間の終点を始点とし、当該始点の後に方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に方向転換点が存在しない場合には終了点を終点とする直後区間を設定する。
【0091】
次に、判定対象区間及び直後区間をリアルタイムで設定する場合について説明する。判定対象区間及び直後区間をリアルタイムで設定する場合、区間設定部210は、判定対象区間の設定を開始してから判定対象区間及び直後区間を確定するまでに、最大所定時間を要する。つまり、区間設定部210は、時刻Tiの時点で判定対象区間の設定を開始してから、所定時間T0a経過するまで、即ち時刻Ti+T0a時点までに判定対象区間及び直後区間を確定する。このため本実施形態では、判定対象区間及び直後区間をリアルタイムで設定するが、厳密には、判定対象区間及び直後区間を設定するまでに所定時間以内の遅延が生じ、後述の決定部212による決定も所定時間以内の遅延が生じることになる。
【0092】
なお本実施形態では、所定時間T0aを0.4秒に設定しているが、これに限定されるものではない。また、区間設定部210は、判定対象区間での特定部位の移動速度に応じて所定時間T0aを変更してもよく、例えば、移動速度が速くなるほど所定時間T0aを短くするようにしてもよい。
【0093】
図4を参照しながら、具体的に説明する。まず、取得部102により最新の位置である最新点(開始点)P1が取得されても、区間設定部210は、判定対象区間及び直後区間を設定しない。
【0094】
続いて、取得部102により最新点P2が取得されると(この時点を時刻T2とする)、区間設定部210は、開始点P1を始点とし、時刻T2の時点では最新点P2を終点とする区間P1〜P2を判定対象区間に設定する。なお、この時点では、判定対象区間の範囲は確定しておらず、時刻T2の時点から所定時間T0aが経過するまでに最新点が取得されれば、判定対象区間の終点が更新される場合もある。但し、図4に示す例では、P2が始点直後の主軸転換点となるため、判定対象区間の終点は、P2のままとなる。
【0095】
例えば、時刻T2から所定時間T0aが経過するまでに最新点P3が取得された場合、P2が始点直後の主軸転換点となるため、区間設定部210は、主軸転換点P2を終点とする区間P1〜P2を判定対象区間に確定する。この場合、区間設定部210は、主軸転換点P2を始点とし、最新点P3を終点とする区間P2〜P3を直後区間に設定し、設定(確定)した判定対象区間及び直後区間の情報を、判定対象区間の設定開始時刻がT2のときの情報として決定部212に出力する。
【0096】
また例えば、時刻T2から所定時間T0aが経過するまでに最新点P3〜P6までが取得された場合も、P2が始点直後の主軸転換点となるため、区間設定部210は、主軸転換点P2を終点とする区間P1〜P2を判定対象区間に確定する。この場合、区間設定部210は、主軸転換点P2を始点とし、当該始点の直後の方向転換点である方向転換点P5を終点とする区間P2〜P5を直後区間に設定し、設定(確定)した判定対象区間及び直後区間の情報を、判定対象区間の設定開始時刻がT2のときの情報として決定部212に出力する。
【0097】
また例えば、時刻T2から所定時間T0aが経過するまでに最新点P3が取得されなかった場合、P2が最新点となるため、区間設定部210は、最新点P2を終点とする区間P1〜P2を判定対象区間に確定する。この場合、区間設定部210は、直後区間を設定せず、確定した判定対象区間の情報を、判定対象区間の設定開始時刻がT2のときの情報として決定部212に出力する。
【0098】
続いて、取得部102により最新点P3が取得されると(この時点を時刻T3とする)、区間設定部210は、最新の主軸転換点P2を始点とし、時刻T3の時点では最新点P3を終点とする区間P2〜P3を判定対象区間に設定する。ここで、時刻T3から所定時間T0aが経過するまでに最新点P4が取得された場合、主軸転換点P2の後に主軸転換点が存在しないため、区間設定部210は、終点を最新点P4に更新し、区間P2〜P4を判定対象区間に更新する。この場合、区間設定部210は、直後区間を設定せず、更新した判定対象区間の情報を、判定対象区間の設定開始時刻がT3のときの情報として決定部212に出力する。
【0099】
以下、取得部102により最新点P6が取得されるまで、同様な処理が行われる。
【0100】
なお、区間設定部210は、判定対象区間及び直後区間を確定してから、判定対象区間及び直後区間の情報を決定部212に出力するのではなく、判定対象区間の設定を開始してから判定対象区間及び直後区間を確定するまでの間、判定対象区間及び直後区間の情報を逐次決定部212に出力してもよい。
【0101】
決定部212は、判定対象区間の評価値と直後区間の評価値とを算出し、算出した判定対象区間の評価値と直後区間の評価値とを用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する。具体的には、決定部212は、判定対象区間の評価値が直後区間の評価値を超えている場合、又は直後区間が存在しない場合、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。また決定部212は、判定対象区間の評価値が直後区間の評価値以下の場合、直後区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。
【0102】
例えば、判定希望時刻Tの時点での特定部位の移動に優位な軸を決定する場合、区間設定部210は、判定希望時刻Tの時点で判定対象区間の設定を開始し、判定希望時刻Tから所定時間T0aが経過するまでに判定対象区間を確定する。そして決定部212は、この時点(判定希望時刻Tから所定時間T0aが経過した時点)で、判定対象区間における時刻Tの時点での特定部位の移動に優位な軸を確定する。なお、判定希望時刻は、区間設定部210で用いられた判定対象区間の設定開始時刻となる。
【0103】
図12は、第2実施形態の特定部位のジェスチャの他の例を示す図である。図12に示す例では、特定部位が上方向への軌跡を描いたあと(軌跡161)、右方向への軌跡を描いている(軌跡162、163)。なお、図12に示す例では、評価値として移動距離を用いるものとする。
【0104】
軌跡161の時点(以下、時刻T161と称する)では、上方向への軌跡が判定対象区間となる。ここで、軌跡は、所定時間T0aが経過するまでに軌跡162を経由して軌跡163になったとする。この場合、判定希望時刻(判定対象区間の設定開始時刻)が時刻T161のときの判定対象区間及び直後区間の情報は、軌跡163の時点、即ち、時刻T161+所定時間T0aの時点では、上方向への軌跡が判定対象区間のままとなり、右方向への軌跡が直後区間となる。決定部212は、右方向への軌跡の移動距離が上方向への軌跡の移動距離よりも長いため、右方向への軌跡の評価値が上方向への軌跡の評価値よりも高いと判定し、直後区間の主軸である水平方向の軸が判定対象区間において特定部位の移動に優位であると決定する。これにより、垂直方向へのジェスチャはノイズとみなされ、ジェスチャ全体としては水平方向が優位と決定されることになる。
【0105】
なお決定部212は、区間設定部210から判定対象区間及び直後区間の情報が逐次出力される場合には、判定対象区間における特定部位の移動に優位な軸を、所定時間以内、即ち、判定対象区間及び直後区間が確定するまで逐次判定するようにしてもよい。この際、決定部212は、所定時間の進捗率を算出してもよい。進捗率は、判定対象区間の設定を開始する時点である時刻Tiを0、所定時間T0aが経過する時点である時刻Ti+T0aを1、時刻Ti〜時刻Ti+T0aの期間を線形に補間した値とすることができる。この場合、時刻t(Ti≦t≦Ti+T0a)の進捗率は、(t−Ti)/T0aとなる。
【0106】
図13は、第2実施形態の決定部212により判定された進捗率毎の優位な軸の一例を示す図である。図13に示す例では、判定希望時刻が時刻Tiのときの判定対象区間における特定部位の移動に優位な軸は、時刻Ti〜時刻Ti+20(進捗率0〜0.30)の時点では、第1軸となっており、時刻Ti+30〜時刻Ti+70(進捗率0.45〜1.00)の時点では、第2軸となっている。この結果、判定希望時刻が時刻Tiのときの判定対象区間における特定部位の移動に優位な軸は、第2軸に確定している。
【0107】
なお、進捗率は、取得部102により取得されたそれぞれの位置の取得時刻からの進捗率としてもよい。また決定部212は、特定の判定対象区間における特定部位の移動に優位な軸を決定する場合のみ、優位な軸を逐次判定するとともに所定時間の進捗率を算出するようにしてもよい。ここで、特定の判定対象区間とは、例えば、優位な軸が確定した直後に優位な軸の決定を開始する判定対象区間や移動ベクトルが閾値以上の速度や移動距離となる判定対象区間などが該当する。
【0108】
図14は、第2実施形態の決定部212により判定された進捗率毎の優位な軸の他の例を示す図である。図14は、優位な軸が確定した直後に優位な軸の決定を開始する判定対象区間において特定部位の移動に優位な軸を決定する場合のみ、優位な軸を逐次判定するとともに所定時間の進捗率を算出する例を示している。
【0109】
時刻Ti〜時刻Ti+70(進捗率0〜1.00)については、図13と同様である。時刻Tiの時点において優位な軸の決定を開始した判定対象区間の優位な軸は、時刻Ti+70の時点で第2軸に確定する。このため、決定部212は、時刻Ti+80の時点において優位な軸の決定を開始する判定対象区間については、優位な軸を逐次判定するとともに所定時間の進捗率を算出する。
【0110】
時刻Ti+80〜時刻Ti+150(進捗率0〜1.00)の時点での判定対象区間における特定部位の移動に優位な軸は、第2軸となっている。この結果、時刻Ti+80の時点において優位な軸の決定を開始した判定対象区間における特定部位の移動に優位な軸は、第2軸に確定する。
【0111】
時刻Ti+80の時点において優位な軸の決定を開始した判定対象区間の優位な軸は、時刻Ti+150の時点で第2軸に確定するため、決定部212は、時刻Ti+160の時点において優位な軸の決定を開始する判定対象区間についても、優位な軸を逐次判定するとともに所定時間の進捗率を算出する。
【0112】
提示部214は、決定部212により判定対象区間における特定部位の移動に優位な軸が所定時間以内で逐次判定される場合には、所定時間以内、即ち、判定対象区間及び直後区間が確定するまで決定結果に応じた補助提示を更に行うようにしてもよい。第2実施形態では、時刻Tiの時点で判定対象区間の設定を開始する場合、時刻Ti+T0aの時点までに、当該判定対象区間における特定部位の移動に優位な軸が確定する。このため、提示部214は、時刻Ti〜Ti+T0aの間の決定部212の判定結果に応じた補助提示を行う。なお、特定部位の移動に優位な軸が確定する時刻Ti+T0a以後の提示は、第1実施形態と同様である。
【0113】
図15は、第2実施形態の提示部214による補助提示の一例を示す図である。例えば、図13に示す例において、時刻Ti+30の時点において、時刻Tiの時点で設定を開始した判定対象区間における特定部位の移動に優位な軸は、第1軸から第2軸に切り替わっている。提示部214は、この時点で、図7に示す例において、左側にオブジェクト181、中央にオブジェクト182、右側にオブジェクト183が表示されている画面180を、図15に示すように、オブジェクト181〜183を水平方向(左方向)に傾けた画面280としてもよい。そして、時刻Ti+70の時点において、時刻Tiの時点で設定を開始した判定対象区間における特定部位の移動に優位な軸が第2軸に確定すると、提示部214は、画面280を、図7に示す例において、左側にオブジェクト182、中央にオブジェクト183、右側にオブジェクト184が表示されている画面180とする。これにより、ユーザにどちらの軸が優位と決定されつつあるかを知らせることができる。
【0114】
図16及び図17は、第2実施形態の提示部214による補助提示の他の例を示す図である。提示部214は、図7に示す例において、左側にオブジェクト181、中央にオブジェクト182、右側にオブジェクト183が表示されている画面180を、図15に示す画面280ではなく、オブジェクト181〜183を水平方向(左方向)に回転させた画面281や水平方向(左方向)への矢印283を更に表示させた画面282としてもよい。
【0115】
図18は、第2実施形態の認識装置200で行われる処理の手順の流れの一例を示すフローチャートである。
【0116】
ステップS201〜S204までの処理は、図8に示すフローチャートのステップS101〜S104までの処理と同様である。
【0117】
続いて、区間設定部210は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、当該始点を設定してから所定時間が経過するまでに当該始点の後に主軸転換点が存在する場合には当該始点の直後の主軸転換点、所定時間が経過するまでに当該始点の後に主軸転換点が存在しない場合には所定時間が経過するまでに取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部210は、当該判定対象区間の終点を始点とし、当該始点の後に方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に最新点が存在する場合には最新点を終点とする直後区間を設定する(ステップS205)。
【0118】
続いて、決定部212は、判定対象区間の評価値と直後区間の評価値とを算出し、算出した判定対象区間の評価値と直後区間の評価値とを用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する(ステップS206)。
【0119】
そして、取得部102により被写体の特定部位の最新の位置が取得される毎に(ステップS201)、ステップS202〜S206の処理が行われ、提示部214は、決定部212の決定結果に応じた提示を行う。
【0120】
図19は、第2実施形態の認識装置200で決定部212により行われる処理の手順の流れの一例を示すフローチャートである。
【0121】
まず、決定部212は、直後区間が存在するか否かを確認する(ステップS230)。
【0122】
直後区間が存在する場合(ステップS230でYes)、決定部212は、判定対象区間の評価値Ecと直後区間の評価値Eaとを算出し、評価値Ecが評価値Ea以下であるか否かを判定する(ステップS231)。
【0123】
評価値Ecが評価値Ea以下である場合(ステップS231でYes)、決定部212は、直後区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS232)。これにより、処理は終了となる。
【0124】
一方、直後区間が存在しない場合(ステップS230でNo)、又は評価値Ecが評価値Ea以下でない場合(ステップS231でNo)、決定部212は、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS233)。これにより、処理は終了となる。
【0125】
なお認識装置200では、判定対象区間の設定が開始されてから所定時間が経過する前に判定対象区間及び直後区間が確定し、所定時間が経過する前に判定対象区間における特定部位の移動に優位な軸が確定する場合がある。例えば、判定対象区間の設定が開始されてから所定時間が経過する前に、判定対象区間の始点の後に主軸転換点が存在し、主軸転換点の後に方向転換点が存在すれば、所定時間が経過する前に判定対象区間及び直後区間が確定する。また、判定対象区間の設定が開始されてから所定時間が経過する前に、直後区間の評価値が判定対象区間の評価値を超えてしまえば、判定対象区間における特定部位の移動に優位な軸は、直後区間の主軸に確定するため、所定時間の経過を待つ必要がない。このため、決定部212は、これらを考慮して処理を行ってもよい。
【0126】
図20は、第2実施形態の認識装置200で決定部212により行われる処理の手順の流れの他の例を示すフローチャートである。
【0127】
まず、決定部212は、現在の時刻Tと判定対象区間の設定を開始した時刻である判定希望時刻Tcとの差を計算し(ステップS241)、判定希望時刻Tcから所定時間T0aが経過したか否かを確認する(ステップS242)。
【0128】
判定希望時刻Tcから所定時間T0aが経過していない場合(ステップS242でNo)、決定部212は、直後区間が存在しているか否かを確認する(ステップS243)。直後区間が存在していない場合は(ステップS243でNo)、ステップS241に戻る。
【0129】
直後区間が存在している場合(ステップS243でYes)、決定部212は、判定対象区間の評価値Ecと直後区間の評価値Eaとを算出し、評価値Eaが評価値Ecを超えているか否かを判定する(ステップS244)。
【0130】
評価値Eaが評価値Ecを越えている場合(ステップS244でYes)、決定部212は、直後区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS247)。これにより、処理は終了となる。
【0131】
一方、評価値Eaが評価値Ecを越えていない場合(ステップS244でNo)、決定部212は、直後区間が確定しているか否かを確認する(ステップS245)。具体的には、決定部212は、直後区間の終点が方向転換点であるか否かを確認する。
【0132】
ここで、直後区間が確定している場合(ステップS245でYes)、即ち、直後区間の終点が方向転換点である場合、評価値Eaが評価値Ecを越えないため、決定部212は、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS246)。これにより、処理は終了となる。
【0133】
一方、直後区間が確定していない場合(ステップS245でNo)、即ち、直後区間の終点が方向転換点でない場合は、ステップS241に戻る。
【0134】
この結果、判定希望時刻Tcから所定時間T0aが経過している場合(ステップS242でYes)、直後区間が存在しないか、評価値Eaが評価値Ecを越えないかのいずれかとなるため、決定部212は、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する(ステップS246)。これにより、処理は終了となる。
【0135】
なお、直後区間が存在している場合は(ステップS243でYes)、判定対象区間が確定していることになるため、以降は、算出済みの評価値Ecを利用すればよく、再度評価値Ecを算出する必要はない。
【0136】
以上のように第2実施形態では、直後区間を利用して判定対象区間のジェスチャを認識する。このため第2実施形態によれば、判定対象区間のジェスチャがノイズであるか否かを判別できるので、ジェスチャにノイズとなる動きが含まれていても正しく認識することができ、認識精度の低下を防止することができる。
【0137】
例えば、ジェスチャの最初にノイズとなる動きが含まれている場合には、ノイズ部分が判定対象区間、正常なジェスチャ部分が直後区間となる。そして、直後区間を利用することにより、判定対象区間のジェスチャをノイズと判別でき、直後区間の正常なジェスチャの移動方向に置き換えるので、ジェスチャにノイズとなる動きが含まれていても正しく認識することができる。
【0138】
(第3実施形態)
第3実施形態では、直前区間及び直後区間を利用して判定対象区間のジェスチャを認識し、判定対象区間における特定部位の移動に優位な軸のいずれの方向が指示されているかを認識する例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0139】
図21は、第3実施形態の認識装置300の一例を示す構成図である。第3実施形態の認識装置300では、区間設定部310、決定部312、及び提示部314が第1実施形態と相違し、更に、第1軸判定部316、第2軸判定部318、及び判定結果選定部320を更に備える。
【0140】
区間設定部310は、第1実施形態の区間設定部110と第2実施形態の区間設定部210とを合わせた機能を有する。
【0141】
つまり、区間設定部310は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部310は、当該判定対象区間の始点を終点とし、当該終点の前に方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に方向転換点が存在しない場合には開始点を始点とする直前区間を設定する。なお、この時点で、直前区間は確定するが、判定対象区間はまだ確定しない。
【0142】
そして区間設定部310は、判定対象区間を設定してから所定時間が経過するまでに判定対象区間の始点の後に主軸転換点が存在する場合には当該始点の直後の主軸転換点、所定時間が経過するまでに当該始点の後に主軸転換点が存在しない場合には所定時間経過後の最新点を判定対象区間の終点に更新する。また区間設定部310は、更新後の判定対象区間の終点を始点とし、当該始点の後に方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に最新点が存在する場合には所定時間経過後の最新点を終点とする直後区間を設定する。
【0143】
決定部312は、第1実施形態の決定部112と第2実施形態の決定部212とを合わせた機能を有する。つまり、決定部312は、判定対象区間の評価値、直前区間の評価値、及び直後区間の評価値を算出し、算出した判定対象区間の評価値、直前区間の評価値、及び直後区間の評価値を用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する。
【0144】
具体的には、決定部312は、判定対象区間の評価値が直前区間の評価値を超えている場合、又は直前区間が存在しない場合、かつ判定対象区間の評価値が直後区間の評価値を超えている場合、又は直後区間が存在しない場合、判定対象区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。
【0145】
また決定部312は、判定対象区間の評価値が直前区間の評価値以下の場合、直前区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。これにより、所定時間の経過を待たずに、判定対象区間における特定部位の移動に優位な軸を直前区間の主軸に決定できる。
【0146】
また決定部312は、判定対象区間の評価値が直後区間の評価値以下の場合、直後区間の主軸が判定対象区間における特定部位の移動に優位であると決定する。
【0147】
第1軸判定部316、第2軸判定部318は、それぞれ、第1軸、第2軸に対し、算出部104により算出される移動ベクトルを用いて、いずれの方向が優位であるか否かを判定する。これにより、第1軸判定部316は、第1軸のいずれの方向が指示されているかを判定し、第2軸判定部318は、第2軸のいずれの方向が指示されているかを判定する。例えば、第1軸が垂直方向の軸であれば、第1軸判定部316は、上、下のいずれの方向が指示されているかを判定し、第2軸が水平方向の軸であれば、第2軸判定部318は、右、左のいずれの方向が指示されているかを判定する。なお以下では、軸のいずれかの方向を指示することを「送り動作」と称する。送り動作とは、ユーザが手などの特定部位を振る動作であり、振った方向を指示するものとする。
【0148】
第2軸判定部318は、第2軸のいずれの方向に送り動作が行われたかを、以下で説明する判定方法を用いて判定すればよい。ここでは、第2軸判定部318を例に取り説明するが、第1軸判定部316についても同様である。
【0149】
第2軸判定部318は、算出部104により算出された移動ベクトルの第2軸成分の速度(移動ベクトルと第2軸との内積値)が閾値以上となった場合に、第2軸における当該移動ベクトルの方向に送り動作が行われたと判定する。
【0150】
ここで、移動ベクトルRsの始点であり、時刻Tsの時点で取得部102により取得された位置Psの座標を(xs,ys)、移動ベクトルRsの終点であり、時刻Ts+1の時点で取得部102により取得された位置Ps+1の座標を(xs+1,ys+1)とする。この場合、移動ベクトルRsの第2軸成分(x軸成分)は、xs+1−xsとなり、単位時間あたりの移動ベクトルRsの第2軸成分Ssは、Ss=(xs+1−xs)/(Ts+1−Ts)となる。
【0151】
そして、移動ベクトルRsの第2軸成分の速度Vsは、Vs=|Ss|と表現され、移動ベクトルRsの第2軸成分の方向は、Ssの符号が正であれば正方向、Ssの符号が負であれば負方向となる。このため、第2軸判定部318は、Vsが閾値以上となった場合に、Ssの符号が正であれば第2軸の正方向に送り動作が行われたと判定し、Ssの符号が負であれば第2軸の負方向に送り動作が行われたと判定する。
【0152】
なお第2軸判定部318は、一度送り動作が行われたと判定すれば、移動ベクトルの第2軸成分の方向が切り替わるまで判定を中止し、この判定結果を利用すればよい。第2軸判定部318は、Ssの符号が切り替わった場合に、移動ベクトルの第2軸成分の方向が切り替わったと判断する。ここで第2軸判定部318は、Ssの符号が切り替わるまでに0を挟んでいてもよい。例えば、Ss−2の符号が正、Ss−1の値が0、Ssの符号が負である場合、第2軸判定部318は、Ss−1の時点で移動ベクトルの第2軸成分の方向が切り替わったと判断せず、Ssの時点で移動ベクトルの第2軸成分の方向が切り替わったと判断する。
【0153】
また第2軸判定部318は、送り動作が行われたと判定した後に、逆方向への送り動作(以下、「復帰動作」と称する)が行われたと判定しないようにするため、送り動作が行われたと判定した直後の復帰動作を無視するようにしてもよい。
【0154】
更に第2軸判定部318は、送り動作が行われたと判定する前に、逆方向への送り動作(以下、「振りかぶり動作」と称する)が行われたと判定しないようにするとともに、送り動作が行われたと判定した後に、逆方向への送り動作(以下、「復帰動作」と称する)が行われたと判定しないようにしてもよい。この場合、第2軸判定部318は、判定対象とする操作区間の直前区間及び直後区間を用いて、当該操作区間で送り動作が行われたか否かを判定する。なお、操作区間とは、移動ベクトルの第2軸成分の方向が切り替わる第2軸方向転換点が存在する場合には最新の第2軸方向転換点、第2軸方向転換点が存在しない場合には最初に取得された位置である開始点を始点とし、始点の後に第2軸方向転換点が存在する場合には直後の第2軸方向転換点、始点の後に第2軸方向転換点が存在しない場合には最後に取得された位置である終了点を終点とする区間である。
【0155】
具体的に説明すると、まず、第2軸判定部318は、算出部104により算出されたベクトルの第2軸方向転換点を設定する。なお本実施形態では、第2軸判定部318は、操作区間において送り動作が行われたか否かをリアルタイムで判定するものとするが、これに限定されるものではなく、バッチ処理、即ち、ジェスチャ終了後に判定するようにすることもできる。ここでは、説明の便宜上、操作区間において送り動作が行われたか否かをバッチ処理で判定する場合を説明し、リアルタイムで判定する場合については後述する。
【0156】
図22は、第3実施形態の第2軸判定部318による第2軸方向転換点の設定例を示す図である。図22に示す例では、Usは、取得部102により最初に取得された位置である開始点を示し、U1、U2は、第2軸方向転換点を示し、Ueは、取得部102により取得された最後の位置である終了点を示す。この場合、第2軸判定部318は、区間Us〜U1、区間U1〜U2、区間U2〜Ueを順番に操作区間に設定し、それぞれの操作区間において送り動作が行われたか否かを判定する。
【0157】
具体的には、第2軸判定部318は、区間Us〜U1を操作区間に設定した場合、区間U1〜U2を直後区間に設定し、操作区間の評価値と直後区間の評価値とを算出し、操作区間である区間Us〜U1において送り動作が行われたか否かを判定する。同様に、第2軸判定部318は、区間U1〜U2を操作区間に設定した場合、区間Us〜U1を直前区間、区間U2〜Ueを直後区間に設定し、操作区間の評価値と直前区間の評価値と直後区間の評価値とを算出し、操作区間である区間U1〜U2において送り動作が行われたか否かを判定する。同様に、第2軸判定部318は、区間U2〜Ueを操作区間に設定した場合、区間U1〜U2を直前区間に設定し、操作区間の評価値と直前区間の評価値とを算出し、操作区間である区間U2〜Ueにおいて送り動作が行われたか否かを判定する。
【0158】
ここで、操作区間で送り動作が発生したと判定するための条件は、操作区間の評価値Enが閾値以上であり、かつ直前区間の評価値Em及び直後区間の評価値Elを超えていることとする。なお、評価値については、決定部312が用いる評価値と同様である。但し、ここでは、移動距離は、操作区間の移動ベクトルの第1軸成分(移動ベクトルと第1軸との内積の絶対値)の和としてもよい。また移動速度は、操作区間の移動ベクトルの第1軸成分の速度のうちの最大速度としてもよいし、所定の閾値以上となる移動ベクトルの速度の平均値としてもよい。また移動加速度は、操作区間の移動ベクトルの第1軸成分の加速度のうちの最大加速度としてもよいし、所定の閾値以上となる移動ベクトルの加速度の平均値としてもよい。なお、直前区間が存在しない場合には評価値Emの値は0となり、直後区間が存在しない場合には評価値Elの値は0となる。
【0159】
第2軸判定部318は、区間Us〜U1を操作区間に設定した場合、直前区間を設定せず、区間U1〜U2を直後区間に設定する。この場合、第2軸判定部318は、直前区間が存在せず、また、評価値Enが評価値Elを越えるため、操作区間が優位とし、評価値Enが閾値以上であれば、操作区間である区間Us〜U1において送り動作が行われたと判定する。なお第2軸判定部318は、区間U1〜U2の操作は、区間Us〜U1の復帰動作であると判定する。
【0160】
また第2軸判定部318は、区間U1〜U2を操作区間、区間Us〜U1を直前区間、区間U2〜Ueを直後区間に設定した場合、評価値Enが評価値Em及び評価値El以下となるため、操作区間である区間U1〜U2において送り動作が行われなかったと判定する。つまり、第2軸判定部318は、区間U1〜U2の操作は、区間Us〜U1の復帰動作であると判定する。
【0161】
また第2軸判定部318は、区間U2〜Ueを操作区間に設定した場合、区間U1〜U2を直前区間に設定し、直後区間を設定しない。この場合、第2軸判定部318は、評価値Enが評価値Emを越え、また、直後区間が存在しないため、操作区間が優位とし、評価値Enが閾値以上であれば、操作区間である区間U2〜Ueにおいて送り動作が行われたと判定する。なお第2軸判定部318は、区間U1〜U2の操作は、区間U2〜Ueの振りかぶり動作であると判定する。
【0162】
上記のように、操作区間において送り動作が行われたか否かをバッチ処理で判定する場合について説明したが、リアルタイムで判定する場合には、直後区間の設定の関係上、操作区間において送り動作が行われたか否かの判定に所定時間の遅延が生じることになる。なお、所定時間は、例えば、0.6秒とすることができる。また、操作区間での特定部位の移動速度に応じて所定時間を変更してもよく、例えば、移動速度が速くなるほど所定時間を短くするようにしてもよい。この場合、第2軸判定部318は、所定時間以内で、即ち、操作区間における優位な方向が確定するまでの間、操作区間における優位な方向を逐次判定するとともに、操作区間における優位な方向が確定するまでの進捗率を算出するようにしてもよい。なお進捗率は、決定部312が算出する進捗率と同様に表現することができる。また第2軸判定部318は、操作区間で優位と判定されている方向が切り替わった場合だけ優位な方向(判定結果)を出力するようにしてもよい。ここでは、第2軸判定部318を例に取り説明するが、第1軸判定部316についても同様である。
【0163】
図23は、第3実施形態の第2軸判定部318により判定された進捗率毎の優位な方向の一例を示す図である。時刻Ti〜時刻Ti+10の時点では、操作区間の評価値が、閾値未満、又は直前区間の評価値以下であるため、進捗率は算出されず、操作区間における優位な方向も判定されていない。
【0164】
また、時刻Ti+20〜時刻Ti+80(進捗率0〜0.90)の時点では、操作区間が直前区間よりも優位となり、操作区間における優位な方向は、左となっている。また、時刻Ti+90(進捗率1.00)の時点では、操作区間が直前区間及び直後区間よりも優位となり、操作区間における優位な方向は、左に確定する。これにより、第2軸判定部318は、操作区間において左方向への送り動作が行われたと判定する。
【0165】
また、時刻Ti+100〜時刻Ti+130の時点では、送り動作発生後も操作区間がそのまま続いている状態、若しくは操作区間の評価値が、閾値未満、又は直前区間の評価値以下であるため、進捗率は算出されず、操作区間における優位な方向も判定されていない。
【0166】
また、時刻Ti+140〜時刻Ti+150(進捗率0〜0.15)の時点では、操作区間が直前区間よりも優位となり、操作区間における優位な方向は、右となっている。
【0167】
また、時刻Ti+160〜Ti+220(進捗率0〜0.90)の時点では、操作区間が直前区間よりも優位となり、操作区間における優位な方向は、左となっている。また、時刻Ti+230(進捗率1.00)の時点では、操作区間が直前区間及び直後区間よりも優位となり、操作区間における優位な方向は、左に確定する。これにより、第2軸判定部318は、操作区間において左方向への送り動作が行われたと判定する。
【0168】
判定結果選定部320は、第1軸〜第2軸の判定結果の中から、決定部312により決定された判定対象区間における特定部位の移動に優位な軸の判定結果を選定する。
【0169】
例えば、決定部312により決定された優位な軸が図14に示すとおりであり、第2軸判定部318が時刻Tiの時点で左方向の送り動作が行われたと判定(確定)し、第1軸判定部316が時刻Tiの時点で上方向の送り動作が行われたと判定(確定)したとする。この場合、判定結果選定部320の選定結果は、以下のようになる。
【0170】
決定部312は、時刻Tiの時点で決定を開始した判定対象区間における特定部位の移動に優位な軸を、時刻Ti+70の時点で第2軸に確定する。このため判定結果選定部320は、時刻Ti+70の時点で、時刻Tiの時点での第2軸判定部318の判定結果を選定し、時刻Tiの時点では第2軸において左方向の送り動作が行われたとする。
【0171】
なお判定結果選定部320は、時刻Ti〜時刻Ti+20の時点で、時刻Tiの時点での第1軸判定部316の判定結果を選定し、時刻Ti+30〜時刻Ti+60の時点で、時刻Tiの時点での第2軸判定部318の判定結果を選定するようにしてもよい。つまり、判定結果選定部320は、時刻Ti〜時刻Ti+20の時点では、時刻Tiの時点での送り動作の候補を第1軸における上方向の送り動作とし、時刻Ti+30〜時刻Ti+60の時点では、時刻Tiの時点での送り動作の候補を左方向の送り動作としてもよい。また、送り動作の候補は、送り動作の方向及び進捗率としてもよい。送り動作の方向は、該当時刻において決定部312により優位な軸と決定されている軸における送り動作の方向とすればよく、進捗率は、決定部312の進捗率とすればよい。
【0172】
図24は、第3実施形態の判定結果選定部320により選定された進捗率毎の送り動作の候補の一例を示す図である。時刻Ti〜時刻Ti+20(進捗率0〜0.30)の時点では、時刻Tiの時点での送り動作の候補は左方向の送り動作となっている。また、時刻Ti+30〜時刻Ti+60(進捗率0.45〜0.90)の時点では、時刻Tiの時点での送り動作の候補は上方向の送り動作となっている。そして、時刻Ti+70(進捗率1.00)の時点では、時刻Tiの時点での送り動作は上方向の送り動作に確定している。
【0173】
なお、第1軸判定部316及び第2軸判定部318が操作区間における優位な方向を、進捗率を算出しながら逐次判定する場合には、判定結果選定部320は、第1軸〜第2軸の判定結果の中から、決定部312により決定された判定対象区間における特定部位の移動に優位な軸の判定結果及びその進捗率を選定するようにしてもよい。
【0174】
ここでは、判定結果選定部320が、決定部312により決定された判定対象区間における特定部位の移動に優位な軸の判定結果として第2軸の判定結果及びその進捗率を選定する場合を例に取り説明するが、判定結果選定部320が、第1軸の判定結果及びその進捗率を選定する場合についても同様である。
【0175】
この場合、第2軸判定部318が進捗率を算出しだすと、決定部312も進捗率を算出しだすようにする。つまり、第2軸判定部318が時刻Tiの時点で進捗率を算出しだすと、決定部312も時刻Tiの時点で進捗率を算出しだし、しばらくの間進捗率の算出が継続される。
【0176】
ここでは、説明を簡略化するため、決定部312が算出する進捗率が0.00〜0.99の時点で決定部312が判定対象区間における特定部位の移動に優位な軸を第2軸に決定している場合には、決定部312は、第2軸が優位な軸の候補である旨を出力するものとする。また決定部312が算出する進捗率が1.00の時点で決定部312が判定対象区間における特定部位の移動に優位な軸を第2軸に決定している場合には、決定部312は、第2軸が優位な軸に確定した旨を出力するものとする。また、上記以外の場合、即ち、決定部312が算出する進捗率が0.00〜1.00の時点で決定部312が判定対象区間における特定部位の移動に優位な軸を第1軸に決定している場合には、決定部312は、出力を行わないものとする。
【0177】
この場合、判定結果選定部320は、第2軸判定部318が算出する進捗率が所定の進捗率(例えば、0.00〜0.25)の時点で、決定部312により第2軸が優位な軸の候補である旨、又は第2軸が優位な軸に確定した旨が出力されると、この時点を開始時刻として、第2軸判定部318の判定結果及びその進捗率の選定を開始する。なお、これ以外の場合、判定結果選定部320は、第2軸判定部318の判定結果及びその進捗率を選定しない。
【0178】
そして判定結果選定部320は、選定を開始した開始時刻から第2軸判定部318により算出される進捗率が1.00となる時刻までに、決定部312が出力を行わなくなった場合、決定部312が出力を行わなくなった時点で選定を中止する。
【0179】
また、選定を開始した開始時刻から第2軸判定部318により算出される進捗率が1.00となる時刻までに、決定部312が出力を行わなくなることなく第2軸が優位な軸に確定した旨が出力されたとする。この場合、判定結果選定部320は、その後の第2軸判定部318の判定結果に関わらず第2軸判定部318により算出される進捗率を選定し続け、当該進捗率が1.00となった時点で、第2軸判定部318の判定結果が示す方向への送り動作が発生したことを確定する。
【0180】
また、選定を開始した開始時刻から第2軸判定部318により算出される進捗率が1.00となる時刻になっても、決定部312により第2軸が優位な軸の候補である旨が出力されているとする。この場合、判定結果選定部320は、決定部312により第2軸が優位な軸に確定した旨が出力されるまで、第2軸判定部318により算出される進捗率を0.99にして選定し続ける。そして判定結果選定部320は、決定部312により第2軸が優位な軸に確定した旨が出力されると、当該進捗率を1.00とし、第2軸判定部318の判定結果が示す方向への送り動作が発生したことを確定する。但し、判定結果選定部320は、第2軸判定部318により算出される進捗率を0.99にしている間に、決定部312が出力を行わなくなった場合、決定部312が出力を行わなくなった時点で選定を中止する。
【0181】
提示部314は、判定結果選定部320による判定結果の選定結果に応じた提示を行う。なお、判定結果選定部320が、第1軸〜第2軸の判定結果の中から、決定部312により決定された判定対象区間における特定部位の移動に優位な軸の判定結果及びその進捗率を選定する場合には、提示部314は、選定結果が確定するまで、即ち選定が継続している間は、第2実施形態で説明したような補助提示を行うようにしてもよい。なお、選定結果が確定した後の提示は、第1実施形態と同様である。
【0182】
図25は、第3実施形態の認識装置300で行われる処理の手順の流れの一例を示すフローチャートである。
【0183】
ステップS301〜S304までの処理は、図8に示すフローチャートのステップS101〜S104までの処理と同様である。
【0184】
続いて、区間設定部310は、主軸転換点が存在する場合には最新の主軸転換点、主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定する。また区間設定部310は、当該判定対象区間の始点を終点とし、当該終点の前に方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に方向転換点が存在しない場合には開始点を始点とする直前区間を設定する。そして区間設定部310は、判定対象区間を設定してから所定時間が経過するまでに判定対象区間の始点の後に主軸転換点が存在する場合には当該始点の直後の主軸転換点、所定時間が経過するまでに当該始点の後に主軸転換点が存在しない場合には所定時間経過後の最新点を判定対象区間の終点に更新する。また区間設定部310は、更新後の判定対象区間の終点を始点とし、当該始点の後に方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に最新点が存在する場合には所定時間経過後の最新点を終点とする直後区間を設定する(ステップS305)。
【0185】
続いて、決定部312は、判定対象区間の評価値、直前区間の評価値、及び直後区間の評価値を算出し、算出した判定対象区間の評価値、直前区間の評価値、及び直後区間の評価値を用いて、第1軸〜第2軸のいずれの軸が判定対象区間における特定部位の移動に優位であるかを決定する(ステップS306)。
【0186】
また、第1軸判定部316は、算出部104により算出される移動ベクトルを用いて、第1軸におけるいずれの方向が優位であるかを判定する(ステップS307)。
【0187】
また、第2軸判定部318は、算出部104により算出される移動ベクトルを用いて、第2軸におけるいずれの方向が優位であるかを判定する(ステップS308)。
【0188】
続いて、判定結果選定部320は、第1軸〜第2軸の判定結果の中から、決定部312により決定された判定対象区間における特定部位の移動に優位な軸の判定結果を選定する(ステップS310)。
【0189】
そして、取得部102により被写体の特定部位の最新の位置が取得される毎に(ステップS301)、ステップS302〜S310の処理が行われ、提示部314は、判定結果選定部320の選定結果に応じた提示を行う。
【0190】
次に、決定部312の処理の手順の流れの一例について説明する。決定部312の処理の手順の流れは、図10に示すフローチャートと図20に示すフローチャートとを合成したものとなる。具体的には、図10に示すフローチャートにおいて、評価値Ecが評価値Eb以下でない場合(ステップS131でNo)、ステップS133に進まずに、図20に示すフローチャートのステップS241に進むようにすればよい。
【0191】
図26は、第3実施形態の認識装置300で第2軸判定部318により行われる処理の手順の流れの一例を示すフローチャートである。なお、説明は省略するが、第1軸判定部316についても同様である。また、図26では、操作区間において送り動作が行われたか否かをリアルタイムで判定する例を示している。
【0192】
まず、第2軸判定部318は、判定対象区間として、移動ベクトルの第2軸成分の方向が切り替わる第2軸方向転換点が存在する場合には最新の第2軸方向転換点、第2軸方向転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする操作区間を設定する。そして第2軸判定部318は、操作区間の評価値を算出し、閾値以上であるか否かを確認する(ステップS351)。
【0193】
操作区間の評価値が閾値以上である場合(ステップS351でYes)、第2軸判定部318は、操作区間が直前の状況よりも優位であるか否かを確認する(ステップS352)。具体的には、第2軸判定部318は、操作区間の始点を終点とし、当該終点の前に第2軸方向転換点が存在する場合には当該終点の直前の第2軸方向転換点、当該終点の前に第2軸方向転換点が存在しない場合には開始点を始点とする直前区間を設定する。そして第2軸判定部318は、直前区間の評価値を算出し、操作区間の評価値が直前区間の評価値を超えているか否かを確認する。
【0194】
操作区間が直前の状況よりも優位である場合(ステップS352でYes)、即ち、操作区間の評価値が直前区間の評価値を超えている場合、第2軸判定部318は、操作区間が直後の状況よりも優位であるか否かを確認する(ステップS353)。具体的には、第2軸判定部318は、操作区間を設定してから所定時間が経過するまでに操作区間の始点の後に第2軸方向転換点が存在する場合には当該始点の直後の第2軸方向転換点、所定時間が経過するまでに当該始点の後に第2軸方向転換点が存在しない場合には所定時間経過後の最新点を操作区間の終点に更新する。また第2軸判定部318は、更新後の操作区間の終点を始点とし、当該始点の後に第2軸方向転換点が存在する場合には当該始点の直後の第2軸方向転換点、当該始点の後に最新点が存在する場合には所定時間経過後の最新点を終点とする直後区間を設定する。そして第2軸判定部318は、直後区間の評価値を算出し、操作区間の評価値が直後区間の評価値を超えているか否かを確認する。
【0195】
操作区間が直後の状況よりも優位である場合(ステップS353でYes)、即ち、操作区間の評価値が直後区間の評価値を超えている場合、第2軸判定部318は、操作区間において第2軸における移動ベクトルの方向に送り動作が行われたと決定する(ステップS354)。
【0196】
一方、操作区間の評価値が閾値未満である場合(ステップS351でNo)、操作区間が直前の状況よりも優位でない場合(ステップS352でNo)、又は操作区間が直後の状況よりも優位でない場合(ステップS353でNo)、第2軸判定部318は、操作区間において行われた動作は送り動作でないと決定する(ステップS355)。
【0197】
以上のように第3実施形態では、直前区間及び直後区間を利用して判定対象区間のジェスチャを認識する。このため第3実施形態によれば、判定対象区間のジェスチャがノイズであるか否かを判別できるので、ジェスチャにノイズとなる動きが含まれていても正しく認識することができ、認識精度の低下を防止することができる。例えば、ジェスチャの最初と最後にノイズとなる動きが含まれていても、正しく認識することができる。また第3実施形態では、各軸のいずれの方向が指示されているかを認識することもできる。
【0198】
(第4実施形態)
上記第1〜第3実施形態では、被写体の特定部位の位置を表す座標系が有する軸、即ち、特定部位のジェスチャの判別対象となる軸が2軸である場合を例に取り説明したが、第4実施形態では、被写体の特定部位の位置を表す座標系が有する軸が3軸以上であってもよい。但し、各軸は1点で交差するものとする。
【0199】
図27は、第4実施形態で用いられる座標系の一例を示す図である。図27に示す例では、3次元空間を規定する互いに独立なy、x、zに対応した第1軸〜第3軸が設定された座標系となっており、上下・左右・前後の判定が可能となっている。
【0200】
図28は、第4実施形態で用いられる座標系の他の例を示す図である。図28に示す例では、同一平面上での異なる3方向に対応した軸(例えば、同一平面上で120度ずつ回転させて設定した3つの軸)が可能となっている。
【0201】
主軸選定部106は、算出される移動ベクトル毎に、当該移動ベクトルと第1軸〜第3軸それぞれとの内積値である第1内積値〜第3内積値を算出し、算出した第1内積値〜第3内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する。
【0202】
なお、絶対値が最も大きい内積値が複数存在する場合には、主軸選定部106は、絶対値が最も大きい内積値の算出に用いられた軸の中に直前の主軸が存在すれば、当該直前の主軸を主軸に選定する。一方、主軸選定部106は、絶対値が最も大きい内積値の算出に用いられた軸の中に直前の主軸が存在しなければ、絶対値が最も大きい内積値の算出に用いられた任意の軸を主軸に選定する。
【0203】
(応用例)
上記各実施形態の認識装置の応用例について説明する。なお、以下で説明する応用例は、あくまでも例示であり、認識装置を他の機器に応用してもよい。
【0204】
(第1応用例)
図29は、第1応用例のテレビ受像機400の一例を示す図である。図29に示すテレビ受像機400には、上記各実施形態のいずれかの認識装置が適用されており、チャンネル操作がジェスチャで行われる。
【0205】
テレビ受像機400には、カメラ402が取り付けられており、視聴者を撮影している。テレビ受像機400は、視聴者の手404を特定部位として検出追跡し、送り動作を認識する。テレビ画面406には現在チャンネル4が表示されている。視聴者は手404を左にすばやく動かす送り動作を行うことによりチャンネル3に変更でき、右に送り動作を行うことによりチャンネル5に変更できる。
【0206】
(第2応用例)
図30は、第2応用例のパソコン500の一例を示す図である。図30に示すパソコン500には、上記各実施形態のいずれかの認識装置が適用されており、画面506のウィンドウ508内に表示されたウェブコンテンツや文書を、手504のジェスチャによってスクロールさせる。
【0207】
まず、パソコン500には、カメラ502が取り付けられており、ユーザを撮影している。パソコン500は、ユーザの手504を特定部位として検出追跡して送り動作を認識し、パソコン500に対して検出された送り動作の方向へのスクロールのコマンドを実行する。このとき、スクロールバー510で示されるスクロール量は予め定めておいた一定量でもよいし、速い送り動作ならスクロール量を大きくするなど、送り動作の速度に応じて変化させてもよい。
【0208】
これにより、ユーザは、送り動作を行った方向に、ウィンドウ508内の表示内容をスクロールさせて、ウェブコンテンツや文書などを閲覧することができる。
【0209】
(第3応用例)
図31は、第3応用例の医療用の情報端末600の一例を示す図である。図31に示す情報端末600は、上記各実施形態のいずれかの認識装置が適用されており、手術中の医者への情報提供に用いられる。
【0210】
手術中の医者は手604を清潔に保つ必要があるため、医者に患者のモニタリング情報や検査結果等の情報提供を行う情報端末600を手604で直接触って操作することができない。
【0211】
そこで、情報端末600に上記各実施形態のいずれかの認識装置を適用することにより、医者が手604のジェスチャによって非接触で情報端末600を操作できる。
【0212】
情報端末600にはカメラ602が取り付けられており、医者を撮影している。情報端末600は、医者の手604を特定部位として検出追跡して送り動作を認識し、情報端末600に対して検出された送り動作の方向へのスクロールコマンドや、表示情報の変更コマンドを実行する。
【0213】
(変形例)
本発明は上記各実施形態に限らず、その主旨を逸脱しない限り種々に変形することができる。
【0214】
例えば、上記第1実施形態と上記第2実施形態とを組み合わせるようにしてもよい。この場合、区間設定部、決定部、及び提示部の動作は、上記第3実施形態と同様となる。また上記第3実施形態では、区間設定部310は、直前区間及び直後区間の両区間を設定したが、上記第1実施形態や上記第2実施形態のように、いずれか一方のみを設定するようにしてもよい。
【0215】
また、上記応用例として、テレビ受像機400、パソコン500、医療用の情報端末600を例に取り説明したが、これに限らず、ゲーム機器などの他の機器に適用することもできる。つまり、ユーザがリモートコントローラ、センサ、マーカなどを持ったり、身に付けたりすることなく、機器を容易に操作するジェスチャインターフェースに関し、機器制御のためのメニュや機器に表示されたコンテンツ等の送り操作を行うことができる機器に応用できる。
【0216】
上記各実施形態及び上記各変形例の認識装置は、CPU(Central Processing Unit)などの制御装置と、ROMやRAMなどの記憶装置と、HDDやSSDなどの外部記憶装置と、ディスプレイなどの表示装置と、マウスやキーボードなどの入力装置と、通信I/Fなどの通信装置とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0217】
上記各実施形態及び上記各変形例の認識装置で実行される認識プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【0218】
また、上記各実施形態及び上記各変形例の認識装置で実行される認識プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記各実施形態及び上記各変形例の認識装置で実行される認識プログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記各実施形態及び上記各変形例の認識装置で実行される認識プログラムを、ROM等に予め組み込んで提供するようにしてもよい。
【0219】
上記各実施形態及び上記各変形例の認識装置で実行される認識プログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、CPUがHDDからプログラムをRAM上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【0220】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【0221】
以上のように、上記各実施形態及び上記各変形例の認識装置によれば、認識精度の低下を防止することができる。
【符号の説明】
【0222】
100、200、300 認識装置
102 取得部
104 算出部
106 主軸選定部
108 転換点設定部
110、210、310 区間設定部
112、212、312 決定部
114、214、314 提示部
316 第1軸判定部
318 第2軸判定部
320 判定結果選定部
【特許請求の範囲】
【請求項1】
第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得部と、
時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出部と、
算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定部と、
前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定部と、
前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記始点を終点とし、当該終点の前に前記方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に前記方向転換点が存在しない場合には前記開始点を始点とする直前区間を設定する区間設定部と、
前記判定対象区間の評価値と前記直前区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直前区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定部と、
決定結果に応じた提示を行う提示部と、
を備えることを特徴とする認識装置。
【請求項2】
前記区間設定部は、前記判定対象区間を設定してから所定時間が経過するまでに前記判定対象区間の前記始点の後に前記主軸転換点が存在する場合には当該始点の直後の主軸転換点、前記所定時間が経過するまでに当該始点の後に前記主軸転換点が存在しない場合には前記所定時間経過後の最新点を前記判定対象区間の前記終点に更新し、更新後の前記判定対象区間の前記終点を始点とし、当該始点の後に前記方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に前記最新点が存在する場合には前記所定時間経過後の前記最新点を終点とする直後区間を設定し、
前記決定部は、前記直後区間の評価値を更に算出し、算出した前記直後区間の前記評価値を更に用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定することを特徴とする請求項1に記載の認識装置。
【請求項3】
前記決定部は、前記判定対象区間の前記評価値が前記直前区間の前記評価値を超えている場合、又は前記直前区間が存在しない場合、前記判定対象区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定し、前記判定対象区間の前記評価値が前記直前区間の前記評価値以下の場合、前記直前区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定することを特徴とする請求項1に記載の認識装置。
【請求項4】
前記決定部は、前記判定対象区間の前記評価値が前記直前区間の前記評価値を超えている場合、又は前記直前区間が存在しない場合、かつ前記判定対象区間の前記評価値が前記直後区間の前記評価値を超えている場合、又は前記直後区間が存在しない場合、前記判定対象区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定し、前記判定対象区間の前記評価値が前記直前区間の前記評価値以下の場合、前記直前区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定し、前記判定対象区間の前記評価値が前記直後区間の前記評価値以下の場合、前記直後区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定することを特徴とする請求項2に記載の認識装置。
【請求項5】
第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得部と、
時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出部と、
算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定部と、
前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定部と、
前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、当該始点を設定してから所定時間が経過するまでに当該始点の後に前記主軸転換点が存在する場合には当該始点の直後の主軸転換点、前記所定時間が経過するまでに当該始点の後に前記主軸転換点が存在しない場合には前記所定時間が経過するまでに取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記終点を始点とし、当該始点の後に前記方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に前記最新点が存在する場合には前記最新点を終点とする直後区間を設定する区間設定部と、
前記判定対象区間の評価値と前記直後区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直後区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定部と、
決定結果に応じた提示を行う提示部と、
を備えることを特徴とする認識装置。
【請求項6】
前記決定部は、前記判定対象区間の前記評価値が前記直後区間の前記評価値を超えている場合、又は前記直後区間が存在しない場合、前記判定対象区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定し、前記判定対象区間の前記評価値が前記直後区間の前記評価値以下の場合、前記直後区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定することを特徴とする請求項5に記載の認識装置。
【請求項7】
前記決定部は、前記判定対象区間における前記特定部位の移動に優位な軸を、前記所定時間以内で逐次判定し、
前記提示部は、前記所定時間以内で判定結果に応じた補助提示を更に行うことを特徴とする請求項2及び4〜6のいずれか1つに記載の認識装置。
【請求項8】
算出される移動ベクトルを用いて、前記第1軸〜前記第n軸に対し、それぞれ、いずれの方向が優位であるかを判定する第1軸判定部〜第n軸判定部と、
前記第1軸〜前記第n軸の判定結果の中から、前記決定部により決定された前記判定対象区間における前記特定部位の移動に優位な軸の判定結果を選定する判定結果選定部と、を更に備え、
前記提示部は、前記判定結果の選定結果に応じた提示を行うことを特徴とする請求項1〜7のいずれか1つに記載の認識装置。
【請求項9】
前記第1軸判定部〜第n軸判定部は、それぞれ、前記第1軸〜前記第n軸の判定結果の進捗率を更に算出し、
前記判定結果選定部は、前記第1軸〜前記第n軸のいずれかの軸の判定結果の前記進捗率が所定の進捗率以内であり、かつ前記いずれかの軸が前記決定部により前記判定対象区間における前記特定部位の移動に優位な軸に決定されている場合、前記進捗率が前記判定結果を確定する進捗率となり、かつ前記いずれかの軸が前記決定部により前記判定対象区間における前記特定部位の移動に優位な軸に確定されるまで、前記判定結果及び前記進捗率を選定し、
前記提示部は、前記判定結果選定部による選定が継続されている間選定結果に応じた補助提示を更に行うことを特徴とする請求項8に記載の認識装置。
【請求項10】
前記主軸選定部は、前記第1内積値〜前記第n内積値のうち前回算出された移動ベクトルの主軸を用いて算出した内積値に対して、当該内積値を増加させる補正を行うことを特徴とする請求項1〜9のいずれか1つに記載の認識装置。
【請求項11】
前記評価値は、前記特定部位の位置又は大きさの変化量、前記特定部位の位置又は大きさの変化の速度、及び前記特定部位の位置又は大きさの変化の加速度の少なくともいずれかであることを特徴とする請求項1〜10のいずれか1つに記載の認識装置。
【請求項12】
取得部が、第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得ステップと、
算出部が、時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出ステップと、
主軸選定部が、算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定ステップと、
転換点設定部が、前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定ステップと、
区間設定部が、前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記始点を終点とし、当該終点の前に前記方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に前記方向転換点が存在しない場合には前記開始点を始点とする直前区間を設定する区間設定ステップと、
決定部が、前記判定対象区間の評価値と前記直前区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直前区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定ステップと、
提示部が、決定結果に応じた提示を行う提示ステップと、
を含むことを特徴とする認識方法。
【請求項13】
取得部が、第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得ステップと、
算出部が、時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出ステップと、
主軸選定部が、算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定ステップと、
転換点設定部が、前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定ステップと、
区間設定部が、前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、当該始点を設定してから所定時間が経過するまでに当該始点の後に前記主軸転換点が存在する場合には当該始点の直後の主軸転換点、前記所定時間が経過するまでに当該始点の後に前記主軸転換点が存在しない場合には前記所定時間が経過するまでに取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記終点を始点とし、当該始点の後に前記方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に前記最新点が存在する場合には前記最新点を終点とする直後区間を設定する区間設定ステップと、
決定部が、前記判定対象区間の評価値と前記直後区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直後区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定ステップと、
提示部が、決定結果に応じた提示を行う提示ステップと、
を含むことを特徴とする認識方法。
【請求項14】
第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得ステップと、
時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出ステップと、
算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定ステップと、
前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定ステップと、
前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記始点を終点とし、当該終点の前に前記方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に前記方向転換点が存在しない場合には前記開始点を始点とする直前区間を設定する区間設定ステップと、
前記判定対象区間の評価値と前記直前区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直前区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定ステップと、
決定結果に応じた提示を行う提示ステップと、
をコンピュータに実行させるための認識プログラム。
【請求項15】
第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得ステップと、
時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出ステップと、
算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定ステップと、
前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定ステップと、
前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、当該始点を設定してから所定時間が経過するまでに当該始点の後に前記主軸転換点が存在する場合には当該始点の直後の主軸転換点、前記所定時間が経過するまでに当該始点の後に前記主軸転換点が存在しない場合には前記所定時間が経過するまでに取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記終点を始点とし、当該始点の後に前記方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に前記最新点が存在する場合には前記最新点を終点とする直後区間を設定する区間設定ステップと、
前記判定対象区間の評価値と前記直後区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直後区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定ステップと、
決定結果に応じた提示を行う提示ステップと、
をコンピュータに実行させるための認識プログラム。
【請求項1】
第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得部と、
時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出部と、
算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定部と、
前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定部と、
前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記始点を終点とし、当該終点の前に前記方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に前記方向転換点が存在しない場合には前記開始点を始点とする直前区間を設定する区間設定部と、
前記判定対象区間の評価値と前記直前区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直前区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定部と、
決定結果に応じた提示を行う提示部と、
を備えることを特徴とする認識装置。
【請求項2】
前記区間設定部は、前記判定対象区間を設定してから所定時間が経過するまでに前記判定対象区間の前記始点の後に前記主軸転換点が存在する場合には当該始点の直後の主軸転換点、前記所定時間が経過するまでに当該始点の後に前記主軸転換点が存在しない場合には前記所定時間経過後の最新点を前記判定対象区間の前記終点に更新し、更新後の前記判定対象区間の前記終点を始点とし、当該始点の後に前記方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に前記最新点が存在する場合には前記所定時間経過後の前記最新点を終点とする直後区間を設定し、
前記決定部は、前記直後区間の評価値を更に算出し、算出した前記直後区間の前記評価値を更に用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定することを特徴とする請求項1に記載の認識装置。
【請求項3】
前記決定部は、前記判定対象区間の前記評価値が前記直前区間の前記評価値を超えている場合、又は前記直前区間が存在しない場合、前記判定対象区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定し、前記判定対象区間の前記評価値が前記直前区間の前記評価値以下の場合、前記直前区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定することを特徴とする請求項1に記載の認識装置。
【請求項4】
前記決定部は、前記判定対象区間の前記評価値が前記直前区間の前記評価値を超えている場合、又は前記直前区間が存在しない場合、かつ前記判定対象区間の前記評価値が前記直後区間の前記評価値を超えている場合、又は前記直後区間が存在しない場合、前記判定対象区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定し、前記判定対象区間の前記評価値が前記直前区間の前記評価値以下の場合、前記直前区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定し、前記判定対象区間の前記評価値が前記直後区間の前記評価値以下の場合、前記直後区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定することを特徴とする請求項2に記載の認識装置。
【請求項5】
第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得部と、
時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出部と、
算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定部と、
前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定部と、
前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、当該始点を設定してから所定時間が経過するまでに当該始点の後に前記主軸転換点が存在する場合には当該始点の直後の主軸転換点、前記所定時間が経過するまでに当該始点の後に前記主軸転換点が存在しない場合には前記所定時間が経過するまでに取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記終点を始点とし、当該始点の後に前記方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に前記最新点が存在する場合には前記最新点を終点とする直後区間を設定する区間設定部と、
前記判定対象区間の評価値と前記直後区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直後区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定部と、
決定結果に応じた提示を行う提示部と、
を備えることを特徴とする認識装置。
【請求項6】
前記決定部は、前記判定対象区間の前記評価値が前記直後区間の前記評価値を超えている場合、又は前記直後区間が存在しない場合、前記判定対象区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定し、前記判定対象区間の前記評価値が前記直後区間の前記評価値以下の場合、前記直後区間の主軸が前記判定対象区間における前記特定部位の移動に優位であると決定することを特徴とする請求項5に記載の認識装置。
【請求項7】
前記決定部は、前記判定対象区間における前記特定部位の移動に優位な軸を、前記所定時間以内で逐次判定し、
前記提示部は、前記所定時間以内で判定結果に応じた補助提示を更に行うことを特徴とする請求項2及び4〜6のいずれか1つに記載の認識装置。
【請求項8】
算出される移動ベクトルを用いて、前記第1軸〜前記第n軸に対し、それぞれ、いずれの方向が優位であるかを判定する第1軸判定部〜第n軸判定部と、
前記第1軸〜前記第n軸の判定結果の中から、前記決定部により決定された前記判定対象区間における前記特定部位の移動に優位な軸の判定結果を選定する判定結果選定部と、を更に備え、
前記提示部は、前記判定結果の選定結果に応じた提示を行うことを特徴とする請求項1〜7のいずれか1つに記載の認識装置。
【請求項9】
前記第1軸判定部〜第n軸判定部は、それぞれ、前記第1軸〜前記第n軸の判定結果の進捗率を更に算出し、
前記判定結果選定部は、前記第1軸〜前記第n軸のいずれかの軸の判定結果の前記進捗率が所定の進捗率以内であり、かつ前記いずれかの軸が前記決定部により前記判定対象区間における前記特定部位の移動に優位な軸に決定されている場合、前記進捗率が前記判定結果を確定する進捗率となり、かつ前記いずれかの軸が前記決定部により前記判定対象区間における前記特定部位の移動に優位な軸に確定されるまで、前記判定結果及び前記進捗率を選定し、
前記提示部は、前記判定結果選定部による選定が継続されている間選定結果に応じた補助提示を更に行うことを特徴とする請求項8に記載の認識装置。
【請求項10】
前記主軸選定部は、前記第1内積値〜前記第n内積値のうち前回算出された移動ベクトルの主軸を用いて算出した内積値に対して、当該内積値を増加させる補正を行うことを特徴とする請求項1〜9のいずれか1つに記載の認識装置。
【請求項11】
前記評価値は、前記特定部位の位置又は大きさの変化量、前記特定部位の位置又は大きさの変化の速度、及び前記特定部位の位置又は大きさの変化の加速度の少なくともいずれかであることを特徴とする請求項1〜10のいずれか1つに記載の認識装置。
【請求項12】
取得部が、第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得ステップと、
算出部が、時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出ステップと、
主軸選定部が、算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定ステップと、
転換点設定部が、前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定ステップと、
区間設定部が、前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記始点を終点とし、当該終点の前に前記方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に前記方向転換点が存在しない場合には前記開始点を始点とする直前区間を設定する区間設定ステップと、
決定部が、前記判定対象区間の評価値と前記直前区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直前区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定ステップと、
提示部が、決定結果に応じた提示を行う提示ステップと、
を含むことを特徴とする認識方法。
【請求項13】
取得部が、第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得ステップと、
算出部が、時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出ステップと、
主軸選定部が、算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定ステップと、
転換点設定部が、前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定ステップと、
区間設定部が、前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、当該始点を設定してから所定時間が経過するまでに当該始点の後に前記主軸転換点が存在する場合には当該始点の直後の主軸転換点、前記所定時間が経過するまでに当該始点の後に前記主軸転換点が存在しない場合には前記所定時間が経過するまでに取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記終点を始点とし、当該始点の後に前記方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に前記最新点が存在する場合には前記最新点を終点とする直後区間を設定する区間設定ステップと、
決定部が、前記判定対象区間の評価値と前記直後区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直後区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定ステップと、
提示部が、決定結果に応じた提示を行う提示ステップと、
を含むことを特徴とする認識方法。
【請求項14】
第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得ステップと、
時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出ステップと、
算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定ステップと、
前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定ステップと、
前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記始点を終点とし、当該終点の前に前記方向転換点が存在する場合には当該終点の直前の方向転換点、当該終点の前に前記方向転換点が存在しない場合には前記開始点を始点とする直前区間を設定する区間設定ステップと、
前記判定対象区間の評価値と前記直前区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直前区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定ステップと、
決定結果に応じた提示を行う提示ステップと、
をコンピュータに実行させるための認識プログラム。
【請求項15】
第1軸〜第n(n≧2)軸を有する座標系で表される被写体の特定部位の位置を時系列で取得する取得ステップと、
時系列で取得される前記位置毎に前記特定部位の移動ベクトルを算出する算出ステップと、
算出される前記移動ベクトル毎に、当該移動ベクトルと前記第1軸〜前記第n軸それぞれとの内積値である第1内積値〜第n内積値を算出し、算出した前記第1内積値〜前記第n内積値のうち絶対値が最も大きい内積値の算出に用いられた軸を主軸に選定する主軸選定ステップと、
前記主軸が切り替わる位置を主軸転換点及び方向転換点に設定し、前記移動ベクトルの方向が主軸成分において切り替わる位置を前記方向転換点に設定する転換点設定ステップと、
前記主軸転換点が存在する場合には最新の主軸転換点、前記主軸転換点が存在しない場合には最初に取得された位置である開始点を始点とし、当該始点を設定してから所定時間が経過するまでに当該始点の後に前記主軸転換点が存在する場合には当該始点の直後の主軸転換点、前記所定時間が経過するまでに当該始点の後に前記主軸転換点が存在しない場合には前記所定時間が経過するまでに取得された最新の位置である最新点を終点とする判定対象区間を設定し、当該判定対象区間の前記終点を始点とし、当該始点の後に前記方向転換点が存在する場合には当該始点の直後の方向転換点、当該始点の後に前記最新点が存在する場合には前記最新点を終点とする直後区間を設定する区間設定ステップと、
前記判定対象区間の評価値と前記直後区間の評価値とを算出し、算出した前記判定対象区間の前記評価値と前記直後区間の前記評価値とを用いて、前記第1軸〜前記第n軸のいずれの軸が前記判定対象区間における前記特定部位の移動に優位であるかを決定する決定ステップと、
決定結果に応じた提示を行う提示ステップと、
をコンピュータに実行させるための認識プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【公開番号】特開2013−30134(P2013−30134A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2011−167608(P2011−167608)
【出願日】平成23年7月29日(2011.7.29)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願日】平成23年7月29日(2011.7.29)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]