ジェスチャー認識装置、方法、プログラム、および該プログラムを格納したコンピュータ可読媒体
【課題】自由空間を移動する物体の軌跡によって表わされるジェスチャーを認識するためのジェスチャー認識装置を提供する。
【解決手段】本発明のジェスチャー認識装置(1000)は、前記物体を撮像した動画像を構成するフレーム画像における前記物体の位置する画素座標を求め、撮像時刻に基づく時系列の画素座標データを生成する物体追跡手段(20)と、前記求めた画素座標における前記物体の移動方向を求め、時系列の移動方向データを生成する移動方向特定部(40)と、予め用意した移動方向の組み合わせからなる複数のジェスチャーパターンの中から前記移動方向データと一致するジェスチャーパターンを検索し、一致したジェスチャーパターンを前記物体のジェスチャーと判断するパターンマッチング手段(60)とを備える。また、前記移動方向特定部は、前記物体の移動方向を9種類(静止状態を含む)の何れかに近似して求める。
【解決手段】本発明のジェスチャー認識装置(1000)は、前記物体を撮像した動画像を構成するフレーム画像における前記物体の位置する画素座標を求め、撮像時刻に基づく時系列の画素座標データを生成する物体追跡手段(20)と、前記求めた画素座標における前記物体の移動方向を求め、時系列の移動方向データを生成する移動方向特定部(40)と、予め用意した移動方向の組み合わせからなる複数のジェスチャーパターンの中から前記移動方向データと一致するジェスチャーパターンを検索し、一致したジェスチャーパターンを前記物体のジェスチャーと判断するパターンマッチング手段(60)とを備える。また、前記移動方向特定部は、前記物体の移動方向を9種類(静止状態を含む)の何れかに近似して求める。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ジェスチャーを認識する装置、方法、プログラム、および該プログラムを格納したコンピュータ可読媒体に関し、より詳細には、自由空間を移動する物体の軌跡によって表わされるジェスチャーを認識する装置、方法、プログラム、および該プログラムを格納したコンピュータ可読媒体に関する。
【背景技術】
【0002】
パーソナルコンピュータの操作を目的とした種々の入力デバイスが市販されている。この入力デバイスの例としては、マウス、トラックボール、ジョイスティック、タッチパネルなどが挙げられる。このような入力デバイスはキーボードとは異なり、ユーザに種々の直観的な操作を提供することができる。
【0003】
特にタッチパネルは他の入力デバイスと異なり、専用の作業領域を必要とせず、指や専用のペンをディスプレイの表面に接触させることで様々な操作が可能となるため、主にモバイル用のコンピュータに加え、自動販売機、携帯電話、カーナビ、OA機器など多種の機器に搭載されている。
【0004】
タッチパネルは、液晶などのディスプレイの表面に接触を検知するための素子を配置し、さらにそれを透明なスクリーンで覆うことで作成される(特許文献1参照)。画面への接触を感知する方式は感圧式と静電式との2種類があり、前者は圧力の変化を感知し、後者は静電気による電気信号を感知する。
【0005】
しかし、タッチパネルは常にユーザの指やペンによって触れられるため、ディスプレイの表面が汚れて視認し難くなる。さらに、強く押圧することにより、ディスプレイの表面に傷がつく、あるいは破損する等の不具合が発生するおそれがある。
【0006】
上述の不具合点を改善したものがジェスチャー認識装置である。特許文献2はジェスチャー認識装置の一例であるインターフェイス装置を開示している。このように、ジェスチャー認識装置は、自由空間中の所定の移動物体(ユーザの掌、指先等)をカメラで撮像し、それを基にその物体の形状の変化または移動の軌跡を認識し、それに応じた操作を処理装置に行わせている。すなわち、ユーザは、カメラの前の自由空間内で所定の動作を行うことで処理装置に所望の操作を行わせることができる。この種の装置はタッチパネル方式と異なって非接触方式を採用しているため、ディスプレイに悪影響を与えることはない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平05−006152
【特許文献2】特開2004−78977
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、現行のジェスチャー認識装置には、認識精度において幾つかの不都合な点がある。被認識物体は自由空間中を移動するため、描かれる軌道は不安定、かつ不規則になる。例えば、自由空間にユーザが指で直線を描くことを想定する。その場合、ユーザは正確な直線を描いたと思っていても、実際に描かれた軌道は曲線になっていることが多い。また、指先を空中に停止させても、実際には手振れなどの影響で多少揺動し得る。したがって、ユーザの意図するジェスチャーを装置が正確に認識することができずに誤操作が発生する可能性がある。
【0009】
また、現行の装置は、ユーザの描いた軌道を構成する画素座標の一覧の列と、予め用意した複数のジェスチャーパターンの画素座標の一覧の列とをマッチングし、一致したジェスチャーパターンを当該軌道のジェスチャーとして認識している。この場合、まず、ジェスチャーの開始点を検出して、その開始点を基準点としてマッチングを行う。しかし、所定のジェスチャーを行う場合には、最初に被認識物体をそのジェスチャーの開始点に移動させる予備的動作が必要である。この予備的動作と実際のジェスチャー動作との識別が困難であり、それゆえ正確にジェスチャーの開始点を検出することができない。そのために開始点を検出するための複雑なアルゴリズムを用いるか、あるいは検出した被認識物体の画素座標のすべてを開始点と想定して総当り的にマッチング処理を行う必要があり、ジェスチャー認識装置を処理能力の低いコンピュータなどに適用した場合にコンピュータの応答が不安定となり、ユーザは操作にストレスを感じてしまう。
【0010】
発明者は上述に示したような不都合点を解決するために本発明を創案した。本発明の目的は、自由空間中のジェスチャーを高い確度で認識することが可能な物体の認識装置、方法、プログラム、並びに該プログラムを格納したコンピュータ可読媒体を提供することである。
【0011】
本発明の別の目的は、複雑な演算処理等を用いずにジェスチャーを認識可能なジェスチャー認識装置、方法、プログラム、並びに該プログラムを格納したコンピュータ可読媒体を提供することである。
【0012】
本発明のさらに別の目的は、ジェスチャーの開始点の不定に影響されずにジェスチャーを認識可能なジェスチャー認識装置、方法、プログラム、並びに該プログラムを格納したコンピュータ可読媒体を提供することである。
【課題を解決するための手段】
【0013】
前記課題を解決するために創案された請求項1の発明は、自由空間を移動する物体の軌跡によって表わされる所定のジェスチャーを認識するためのジェスチャー認識装置であって、前記物体を撮像した動画像を受け取る画像受信手段と、前記動画像を構成するフレーム画像における前記物体の位置する画素座標を求め、撮像時刻に基づく時系列の画素座標データを生成する物体追跡手段と、前記求めた画素座標における前記物体の移動方向を求め、時系列の移動方向データを生成する移動方向特定部と、予め用意した移動方向の組み合わせからなる複数のジェスチャーパターンの中から前記移動方向データと一致するジェスチャーパターンを検索し、一致したジェスチャーパターンを前記物体が表わしたジェスチャーと判断するパターンマッチング手段と、を備え、前記移動方向特定部は、前記物体の移動方向を上、右上、右、右下、下、左下、左、左上、静止状態の何れかに近似して求めることを特徴とする。
【0014】
前記課題を解決するために創案された請求項2の発明は、請求項1に記載のジェスチャー認識装置であって、前記移動方向特定部が前記物体の移動方向を近似する際に、前記右上、右下、左下、左上の移動方向の近似範囲を前記上、右、下、左の移動方向の近似範囲よりも広く設定することを特徴とする。
【0015】
前記課題を解決するために創案された請求項3の発明は、請求項1または2に記載のジェスチャー認識装置であって、前記移動方向データにおいて同一の移動方向が隣接する場合には、その隣接する移動方向同士を単一の移動方向にまとめる処理を行う補正手段をさらに備えることを特徴とする。
【0016】
前記課題を解決するために創案された請求項4の発明は、請求項3に記載のジェスチャー認識装置であって、前記補正手段は、前記移動方向が静止状態である場合には、該静止状態の持続時間と、該静止状態の1つ前の移動方向の持続時間とを比較し、該静止状態の持続時間の方が長い場合には該静止状態に対応する画素座標をジェスチャーの終了点と判断し、該静止状態の持続時間の方が短い場合には該静止状態に対応する画素座標をジェスチャーの角部と判断する処理を行うことを特徴とする。
【0017】
前記課題を解決するために創案された請求項5の発明は、請求項4に記載のジェスチャー認識装置であって、前記パターンマッチング手段は、前記終了点に該当するデータ列の1つ前のデータ列と、前記ジェスチャーパターンを構成するデータ列の最後の列と、を合わせた状態でマッチングを行うことを特徴とする。
【0018】
前記課題を解決するために創案された請求項6の発明は、請求項1ないし5の何れか一項に記載のジェスチャー認識装置であって、他のジェスチャーと混同を生ずるおそれのあるジェスチャーが挙げられた類似ジェスチャーリストと、前記パターンマッチング手段が特定したジェスチャーが前記類似ジェスチャーリストに含まれていた場合には、該ジェスチャーを構成する画素座標の相対位置を基にジェスチャーを再度特定する類似ジェスチャー再特定手段と、をさらに備えることを特徴とする。
【0019】
前記課題を解決するために創案された請求項7の発明は、請求項1ないし6の何れか一項に記載のジェスチャー認識装置であって、前記物体追跡手段が生成した画素座標データに平滑処理を施す平滑処理手段をさらに備えることを特徴とする。
【0020】
前記課題を解決するために創案された請求項8の発明は、自由空間を移動する物体の軌跡によって表わされる所定のジェスチャーを認識するためのジェスチャー認識方法であって、前記物体を撮像した動画像を受け取る画像受信段階と、前記動画像を構成するフレーム画像における前記物体の位置する画素座標を求め、撮像時刻に基づく時系列の画素座標データを生成する物体追跡段階と、前記求めた画素座標における前記物体の移動方向を求め、時系列の移動方向データを生成する移動方向特定段階と、予め用意した移動方向の組み合わせからなる複数のジェスチャーパターンの中から前記移動方向データと一致するジェスチャーパターンを検索し、一致したジェスチャーパターンを前記物体が表わしたジェスチャーと判断するパターンマッチング段階と、を含み、前記移動方向特定段階では、前記物体の移動方向を上、右上、右、右下、下、左下、左、左上、静止状態の何れかに近似して求めることを特徴とする。
【0021】
前記課題を解決するために創案された請求項9の発明は、請求項8に記載のジェスチャー認識方法であって、前記移動方向特定段階において、前記物体の移動方向を近似する場合には、前記右上、右下、左下、左上の移動方向の近似範囲を前記上、右、下、左の移動方向の近似範囲よりも広く設定することを特徴とする。
【0022】
前記課題を解決するために創案された請求項10の発明は、請求項8または9に記載のジェスチャー認識方法であって、前記移動方向特定段階と前記パターンマッチング段階との間に行われる補正段階をさらに含み、該補正段階において、前記移動方向データ内に同一の移動方向が隣接して存在する場合には、その隣接する移動方向同士を単一の移動方向にまとめる処理を行うことを特徴とする。
【0023】
前記課題を解決するために創案された請求項11の発明は、請求項10に記載のジェスチャー認識方法であって、前記補正段階において、前記移動方向が静止状態である場合には、該静止状態の持続時間と、該静止状態の1つ前の移動方向の持続時間とを比較し、該静止状態の持続時間の方が長い場合には該静止状態に対応する画素座標をジェスチャーの終了点と判断し、該静止状態の持続時間の方が短い場合には該静止状態に対応する画素座標をジェスチャーの角部と判断する処理を行うことを特徴とする。
【0024】
前記課題を解決するために創案された請求項12の発明は、請求項11に記載のジェスチャー認識方法であって、前記パターンマッチング段階において、前記終了点に該当するデータ列の1つ前のデータ列と、前記ジェスチャーパターンを構成するデータ列の最後の列と、を合わせた状態でマッチングを行うことを特徴とする。
【0025】
前記課題を解決するために創案された請求項13の発明は、請求項8ないし12の何れか一項に記載のジェスチャー認識方法であって、前記パターンマッチング段階で判断したジェスチャーが他のジェスチャーと混同を生ずるおそれのあるジェスチャーであるかどうかを判断する類似判断段階と、前記類似判断段階で該ジェスチャーが他のジェスチャーと混同を生ずるおそれのあると判断された場合には、該ジェスチャーを構成する画素座標の相対位置を基にジェスチャーを再度特定する類似ジェスチャー再特定段階と、をさらに含むことを特徴とする。
【0026】
前記課題を解決するために創案された請求項14の発明は、請求項8ないし13の何れか一項に記載のジェスチャー認識方法であって、前記物体追跡段階と移動方向特定段階との間に行われ、前記物体追跡段階で生成された画素座標データに平滑処理を施す平滑処理段階をさらに含むことを特徴とする。
【0027】
前記課題を解決するために創案された請求項15の発明は、請求項8ないし14の何れか一項に記載のジェスチャー認識方法を実行する電子回路である。
【0028】
前記課題を解決するために創案された請求項16の発明は、請求項8ないし14の何れか一項に記載のジェスチャー認識方法を処理装置に実行させるプログラムである。
【0029】
前記課題を解決するために創案された請求項17の発明は、請求項16に記載のプログラムを格納したコンピュータ可読媒体である。
【0030】
請求項1および請求項8の発明では、被認識物体の描く軌道の各画素座標で移動方向を求め、時系列の移動方向データを生成している。そして、この移動方向を9種類(静止状態を含む)で分類している。そのため、取り扱われるデータの構造が簡単となり、演算能
力の低い処理装置でも安定して処理を行うことができる。
【0031】
人間が自由空間中に直線軌跡を描く場合には、垂直方向または水平方向の直線は比較的正確であるが、斜め方向の直線は不正確になる傾向がある。そのため、請求項2および請求項9の発明では、斜め方向の近似範囲を水平および垂直方向の近似範囲よりも広く設定することで、上記の傾向を適切に補正している。
【0032】
請求項3および請求項10の発明では、移動方向データ内において2つ以上の隣接するデータ列が同一の移動方向を示す場合には、そのデータ列群では一定の移動が継続していると判断して、単一のデータ列にまとめる処理を行う。これにより、データ量を低減し、且つデータを単純化することが可能となる。
【0033】
請求項4および請求項11の発明は、静止状態はジェスチャーの角部(移動方向の変化点)およびジェスチャーの終了点に発生し、かつ角部と終了点ではその持続時間が異なるという事実に基づいている。この事実を利用することにより、認識すべきジェスチャーの形状をより正確に把握することが可能となる。
【0034】
通常、データのマッチング処理を行う場合には、データ列の開始点を基点にしてマッチングを行うのが一般的である。しかし、自由空間中に指等の物体で軌道を描いて所定のジェスチャーを表現する場合には、その軌道の開始点まで物体を移動させる予備的動作が必要となる。この予備的動作によって、ジェスチャーの開始点を正確に検出することが困難となる。一方、ジェスチャーの終了点は必ず一定期間動作が停止するため、比較的容易に検出することができる。請求項5および請求項12の発明では、移動方向データの終了点を基点とし、データの配列順序に遡ってジェスチャーパターンとマッチングを行う。これにより、高い確度でジェスチャーを特定することができ、さらにデータの総当り的なマッチング処理を行う必要が無いため、処理装置に高い負荷を与えるおそれもない。
【0035】
物体が描くジェスチャーの中には文字「U」と「V」、数字「0」と「6」、数字「0」と文字「O」など、紛らわしい組み合わせが存在し、これらの組み合わせがジェスチャーの誤認識の原因となり得る。請求項6および請求項13の発明では、これらの紛らわしいジェスチャーを類似ジェスチャーとして他のジェスチャーと区分けし、パターンマッチングでこれらの類似ジェスチャーの何れかに特定された場合にのみ、画素座標の相対位置などを用いて再度特定処理を行う。これにより、ジェスチャーの認識確度を高めることが可能となる。また、この再特定処理が必要な類似ジェスチャーの数は限られているため、処理を顕著に複雑化することはない。
【0036】
自由空間では指先等の物体で正確に所望の軌道を描くことが事実上不可能である。また、物体を静止させるつもりでも実際には常に揺動してしまう。この現象が正確な軌道の把握を困難にしている。請求項7および請求項14の発明では、物体の画素座標データに対して平滑処理を行うことで揺動等から生じる軌道の不正確さを補正する。
【0037】
請求項15の発明は、本発明を電子回路の形態で提供している。
【0038】
請求項16の発明は、本発明をプログラムの形態で提供している。
【0039】
請求項17の発明は、本発明をコンピュータ可読媒体の形態で提供している。
【発明の効果】
【0040】
本発明では、データの平滑処理、類似ジェスチャーの再特定処理などを用いることにより、高い確度で物体のジェスチャーを認識することが可能である。また、取り扱うデータを9種類の移動方向データに限定することで処理を簡単にし、処理装置の負担を低減させている。さらに、物体の軌道の開始点ではなく、終了点を基点としてマッチング処理を行うことで、開始点の不定により受ける影響を回避している。
【図面の簡単な説明】
【0041】
【図1】本発明の一実施形態に係るジェスチャー認識装置の機能ブロック図である。
【図2】ジェスチャー認識装置の平滑処理部が行う処理を説明するための図である。
【図3】ジェスチャー認識装置の挙動ベクトル特定部が行う処理を説明するための図であり、(a)被認識物体が描いた軌道であり、(b)は挙動ベクトル特定部が特定するベクトルパターンであり、(c)は挙動ベクトル特定部が(a)に示す軌道に対して特定した挙動ベクトルである。
【図4】ジェスチャー認識装置の特徴点解析部が行う処理を説明するための図である。
【図5】特徴点解析部が行う処理を説明するための図であり、(a)は被認識物体が描いた軌道と、その画素座標と、当該画素座標における挙動ベクトルであり、(b)は同一の挙動ベクトルを1つにまとめたものであり、(c)は静止状態における角部と終了点とを識別方法を説明するための図であり、(d)最終的に求めた挙動ベクトルである。
【図6】ジェスチャー認識装置のパターンマッチング部が行う処理を説明するための図であり、(a)は文字Uのジェスチャーを示し、(b)は右回りのジェスチャーを示す。
【図7】ジェスチャー認識装置の類似パターン識別部が行う処理を説明するための図であり、(a)は数字0のジェスチャーを示し、(b)は数字6のジェスチャーを示す。
【図8】本発明の一実施形態に係るジェスチャー認識方法のフロー図である。
【図9】図8のフロー図のステップS500の処理の詳細を示したフロー図である。
【図10】図8のフロー図のステップS600の処理の詳細を示したフロー図である。
【図11】図8のフロー図のステップS700の処理の詳細を示したフロー図である。
【発明を実施するための形態】
【0042】
本発明の一実施形態に係るジェスチャー認識装置の構成や機能について添付図面を参照して以下に詳細に説明する。
このジェスチャー認識装置は、コンピュータ、携帯情報端末(PDA)などの処理装置に搭載され、カメラ等で撮像された動画像を介してユーザの指先、所定の専用ツールなどが自由空間内に描いた軌道を認識し、この認識した軌道に対応する操作コマンドを当該処理装置に送る機能を有する。
すなわち、ユーザはカメラ等の前の自由空間に指先等で所定の軌道を描くことで処理装置に所望の操作を行わせることができる。ここで、ユーザによって描かれる軌道は特に限定するものではないが、右回し、左回し、文字、記号、数字などが挙げられる。本実施形態ではこれらを「ジェスチャー」と称する。例えば、右回しのジェスチャーを行えば処理装置の画面が上方向にスクロールされ、左回しのジェスチャーを行えば画面が下方向にスクロールされる。このようなジェスチャーと操作との関連付けは事前に行われている。しかし、ユーザが適宜この関連付けを変更または設定してもよい。
【0043】
本実施形態において、ユーザが行うジェスチャーは大別して2種類存在する。文字、数字などのように明確な終了点が存在するものと、「右回し」、「左回し」のように同様の動作が繰り返され、明確な終了点が存在しないものである。以下、前者を「終了点のあるジェスチャー」、後者を「終了点がないジェスチャー」と称して区別する。
【0044】
図1は、本発明の一実施形態に係るジェスチャー認識装置1000の機能ブロックを示している。図示のように、物体認識装置1000は、機能要素として、フレーム画像受信部10と、対象物体追跡部20と、平滑処理部30と、挙動ベクトル特定部40と、特徴点解析部50と、パターンマッチング部60と、類似パターン識別部70と、コマンド出力部80と、データ格納部90とから構成される。また、当該装置の入力部には撮像装置が接続され、出力部には処理装置が接続されている。撮像装置は、自由空間に位置する被認識物体を所定のフレームレートで撮像し、その撮像したデータを所定の形式の動画像データとしてリアルタイムに出力する機能を有する。この撮像装置には汎用ビデオカメラを用いてよい。一方、処理装置には汎用コンピュータを用いてよく、ジェスチャー認識装置1000をその処理装置の機能の一部によって実現してもよい。なお、ジェスチャーを行う被認識物体は特定のものに限定されるものではないが、ユーザの指先、棒状のツールの先などであることが好ましい。本実施形態では被認識物体を「ユーザの指先」とする。
【0045】
[フレーム画像受信部]
フレーム画像受信部10は、撮像装置から動画像データをリアルタイムに受け取る機能を有する。具体的には、撮像装置が生成した所定の形式の動画像データをフレーム画像単位で受け取り、必要に応じてそのフレーム画像のデータを後段の機能要素が処理可能なデータ形式に変換する。
【0046】
[対象物体追跡部]
対象物体追跡部20は、フレーム画像受信部10から受け取った複数のフレーム画像データ内に位置する被認識物体である指先の画素座標を求める機能を有する。指先の位置の求め方については特に限定するものではなく、既存の移動物体追跡手法を用いてよい。例えば、時系列に隣接する2つのフレーム画像の間でそれぞれの画素における差分を抽出して、変化があった領域にテンプレートマッチング処理を施すことで指先を検出してよい。あるいは、特開2010−152791で開示している、赤外線などの光を指先に照射して、その反射光で指先を検出する手法を用いてもよい。
以上の処理により、フレーム画像のデータは、1つのフレーム画像における指先の画素座標データを1ブロックとして、そのブロックが時系列(撮像時刻順に)配列した一連のデータに変換される。このデータは平滑処理部30に送られる。
【0047】
[平滑処理部]
平滑処理部30は、対象物体追跡部20が求めた指先の画素座標データに平滑処理を施す。例えば、ユーザが自由空間中に指先で水平な直線を描くと仮定する。この場合、図2に示すように、ユーザが直線を描いたつもりでも、実際に描かれた軌道は手振れや外乱光または周囲の振動などの影響によって一点斜線で示すような波状の曲線となることが多い。この波形状を直線形状に補正するためにこの平滑処理を行う。
【0048】
具体的には、相互に隣接する指先の画素座標のペアの中点を求め、これを平滑処理後の画素座標とする。例えば、図2の「座標n−2」および「座標n−1」と、「座標n−1」および「座標n」のペアは、それぞれ相互に隣接する指先の画素座標である。まず、「座標n−2」と「座標n−1」との間の中点を求め、この中点を平滑処理後の指先の画素座標n−1とする。同様に、「座標n−1」と「座標n」との間の中点を求めて平滑処理後の指先の画素座標nとする。
この平滑処理によって、手振れ等による軌道の誤差を補正することができる。補正後の指先の画素座標は挙動ベクトル特定部40に送られる。
なお、本実施形態における平滑処理はこの手法に限定されるものではない。代替的に最小二乗法などの周知の近似手法を用いてもよい。
【0049】
[挙動ベクトル特定部]
挙動ベクトル特定部40は、平滑処理後の指先の画素座標のデータを基に、指先の移動方向をベクトル(以下、「挙動ベクトル」と称する)で求める機能を有する。
図3(a)は、指先の軌道の例を示しており、軌動上の点1ないし5は平滑処理後の指先の画素座標である。この画素座標に対してそれぞれの挙動ベクトルを求める。なお、ベクトルは通常大きさと方向の2つの要素を有するが、本実施形態で求める挙動ベクトルは方向の要素のみを有する。挙動ベクトルの求め方は特に限定するものではないが、相互に隣接する画素座標同士を直線で結ぶことで求めてよい。
【0050】
本実施例では、後段で行う演算処理を簡略化するために、求めた挙動ベクトルを図3(b)に示すような9種類のベクトルパターン、すなわち、右、右下、下、左下、左、左上、上、右上、静止状態の何れかに分類する。具体的には、各画素座標における挙動ベクトルを求め、求めたベクトルに最も類似するベクトルパターンを選択し、そのベクトルパターンを該当の座標での挙動ベクトルとする。なお、本発明の発明者は種々の実験と経験により、ユーザが自由空間に描く直線軌跡は、垂直方向と水平方向は比較的正確であるが、斜め方向は不正確になるという事実を発見した。そこで、本実施形態では、ベクトルパターンの類似範囲を均等ではなく、ベクトルパターン1、3、5、7を±15°の範囲と比較的狭く設定し、ベクトルパターン2、4、6、8を±30°の範囲と広く設定した。これにより、より正確に挙動ベクトルを求めることができる。
【0051】
以上の方法で求めた挙動ベクトルを図3(c)に示す。画素座標1ないし5の挙動ベクトルのパターンは、それぞれ1、2、3、2、1となった。このように、各画素座標における挙動ベクトルを9種類のパターンに限定することによって、以降に行う処理を単純化することができる。
【0052】
上述の挙動ベクトルパターンの中の「静止状態」について補足説明する。自由空間中に文字や数字などを描く場合には、必ずその軌道がその終了点で一旦停止する。したがって、隣接する画素座標の間の移動量が一定以下の場合は「静止状態」にあると見なす。なお、「一定量」の範囲は撮像装置のフレームレートやフレーム画像の解像度に依存して決定されるが、例えば、5〜10画素の範囲であってよい。
【0053】
また、「静止状態」の発生箇所は上述の終了点だけに限定されるものではない。図4では、指先が矢印に示す軌道を描いた場合における指の位置する画素座標の推移を示している。ここで、軌道の角部付近の箇所である座標4ないし7では、指先が顕著に移動していないことがわかる。このように、軌道の角、すなわち、挙動ベクトルの方向が大きく変わる箇所では被認識物体である指先の移動量が減少する。本実施形態では、座標4ないし7を「静止状態」と特定する。
以上の処理により得られたデータは、1つのフレーム画像に対応する指の挙動ベクトルを1ブロックとして構成した時系列のデータとなる。この挙動ベクトルのデータは特徴点解析部50に送られる。
【0054】
[特徴点解析部]
特徴点解析部50は、挙動ベクトル特定部40が求めたデータ内の「特徴点」を示すデータブロックに着目し、適切な処理を行う機能を有する。なお、本実施形態で「特徴点」とは、隣接し、かつ同一の挙動ベクトルを示す一群のデータブロック、並びに、「静止状態」と特定されたデータブロックである。
詳細は図5を参照して説明する。図5(a)は、ユーザが自由空間中に指先で「L」の文字の軌道を描いたときの指の位置1ないし10とそれぞれの指の位置の挙動ベクトルを示している。ここで指の位置1および2の挙動ベクトルは「パターン3」であり、指の位置3ないし6の挙動ベクトルは「静止状態」であり、指の位置7ないし9の挙動ベクトルは「パターン1」であり、画素座標10は「静止状態」である。実際の挙動ベクトルのデータ構造は、それぞれの指の位置における挙動ベクトルを1つのデータブロックとして、位置1ないし10の順番で並列している。まず、同一の挙動ベクトルを示すデータブロックが隣接する場合には、単一のデータブロックにまとめる。すなわち、図5(b)に示すように指の位置1および2と、3ないし6と、7ないし9とをそれぞれ単一のデータブロックとする。
【0055】
次に、「静止状態」を示す指の位置3および10に着目する。上述のように「静止状態」のデータブロックは、ジェスチャーの終了点と角部の何れかに指が位置した状態に該当するため、そのどちらであるかを識別する必要がある。図5(c)は、図5(b)に示した挙動ベクトルのそれぞれの持続時間を示している。ここで、データブロック1で挙動ベクトル「パターン3」が持続した時間を「a」、データブロック3で挙動ベクトル「静止状態」が持続した時間を「b」、データブロック7で挙動ベクトル「パターン1」が持続した時間を「c」、データブロック10で挙動ベクトル「静止状態」が持続した時間を「d」とする。
【0056】
各挙動ベクトルの持続時間を求めた後は、「静止状態」のデータブロックにおけるその持続時間と、その1つ前のデータブロックの挙動ベクトルの持続時間とを比較し、「静止状態」の持続時間が1つ前の挙動ベクトルの持続時間よりも短ければ、「静止状態」は軌道の「角部」に該当すると断定する。一方、「静止状態」の持続時間が1つ前の挙動ベクトルの持続時間よりも長ければ、「静止状態」は軌道の「終了点」に該当すると断定する。従って、図5(c)では、画素座標3が軌跡の「角部」に該当し、画素座標10が軌跡の「終了点」に該当する。その結果、ユーザがジェスチャーとして自由空間中に描いた軌道は、図5(d)に示す、挙動ベクトル3および1から構成されるL形の文字であることがわかる。
特徴点解析部50が解析した結果はパターンマッチング部60に送られる。
【0057】
[パターンマッチング部]
パターンマッチング部60は、特徴点解析部50から受け取ったデータを基にユーザの指先によって描かれた軌道、すなわち、指先のジェスチャーを特定する機能を有する。詳細には、予め作成されてデータ格納部90に記録された複数のジェスチャーパターンのデータの中で特徴点解析部50から受け取ったデータと一致するものがあるかどうかを検索する。一致するジェスチャーパターンがある場合にはそのジェスチャーパターンがユーザの行ったジェスチャーであると判断する。
上述のようにジェスチャーには、終了点を有するものと、終了点を有しないものの2通りがある。それぞれの場合について処理内容を説明する。
【0058】
1、終了点があるジェスチャーを求める場合
図6(a)に示す軌道に該当するジェスチャーを求める場合を例にして説明する。ユーザが指先で自由空間中に点線で示す文字「U」の軌道を描いたとする。この軌道のデータをジェスチャー認識装置1000のフレーム画像受信部10ないし特徴点解析部50で処理し、その結果得られたデータを表1に示す。この表では画素座標「A」ないし「J」における挙動ベクトルパターンの値がそれぞれ示されている。
【0059】
【表1】
【0060】
次に、データ格納部90に記録されたジェスチャーパターンの中で、ジェスチャー「U」に該当するパターンを表2にそれぞれ示す。
【0061】
【表2】
【0062】
パターンマッチング部60は、特徴点解析部50から受け取ったデータを参照して、最初に終了点を捜索する。表1を参照すると、データ列Iに終了点が存在していることがわかる。そのため、終了点の1つ前のデータ列Hに着目し、最後のデータ列(ブロック)の挙動ベクトルが「パターン8」であるジェスチャーパターンを検索する。次に、最後から2番目の挙動ベクトルが「パターン7」であるジェスチャーパターンを検索する。この検索処理を繰り返し、データ列BないしHの軌道がジェスチャー「U」に該当すると認識する。
以降は、挙動ベクトルデータのデータ列AないしIの内容をクリアし、新たにデータ列Jから同様のマッチング処理を繰り返す。このように、終了点を基準とし、かつデータ列の配列順序に遡ってマッチング処理を行えば、開始点の不定により受ける影響を回避することができる。
認識した結果は、類似パターン識別部70に送られる。
【0063】
2、終了点がないジェスチャーを求める場合
図6(b)に示す軌道からジェスチャーを求める場合を例にして説明する。ユーザが指先で自由空間中に点線で示す右回りの軌道を描いたとする。この軌道のデータをジェスチャー認識装置1000のフレーム画像受信部10ないし特徴点解析部50で処理し、その結果得られたデータを表3に示す。この表には画素座標「A」ないし「K」における挙動ベクトルパターンの値がそれぞれ示されている。
【0064】
【表3】
【0065】
次に、データ格納部90に記録されたジェスチャーパターンの中で、右回りのジェスチャーに該当するパターンを参考として表4に示す。
【0066】
【表4】
【0067】
パターンマッチング部60は、最初に特徴点解析部50から受け取ったデータを参照して、終了点を捜索する。表3を参照すると終了点は存在しないことがわかる。そのため、最後のデータ列Kを基点として、かつ基点を含め1つ遡ったデータ列Kの挙動ベクトル「パターン1」で終わるジェスチャーパターンを捜索する。該当するパターンが存在しない場合は、そこで捜索を終了し、該当ジェスチャーは「なし」となる。該当するパターンが1つ以上存在した場合は、捜索の範囲を、基点からさらに1つ遡ったデータ列Jまでの挙動ベクトル「パターン1およびパターン8」で終わるジェスチャーパターンを捜索する。該当するパターンが1つ以上存在した場合は、さらに1つ前のデータ列までを捜索する。以上の手順を繰り返し、画素座標CないしKの軌跡が「右回り」のジェスチャーに該当すると認識する。
認識した結果は類似パターン識別部70に送られる。
【0068】
[類似パターン識別部]
類似パターン識別部70は、パターンマッチング部60が特定したジェスチャーが類似パターン群に含まれる場合のみ該当のデータに対して処理を行う。
類似パターンとは、形状が相互に類似している文字、記号等であり、例えば、数字の「6」と数字の「0」、文字の「U」と「V」などが挙げられる。これらの数字または文字のペアは、共に終了点を有し、かつ形状が類似している。そのため、パターンマッチング部60が行うマッチング処理だけではこれらを混同して誤認識を起こすおそれがある。そこで、ジェスチャー認識装置の認識確度を高めるために類似パターン識別部70を設けている。パターンマッチング部60は、画素座標の挙動ベクトルのパターンのみでジェスチャーを特定していたが、この類似パターン識別部70は、画素座標の相対位置を用いてジェスチャーを特定する。
【0069】
図7を参照して、類似パターン識別部70が行う処理について説明する。図7(a)はジェスチャーが数字「0」を示すときの挙動パターン群を示し、図7(b)は数字「6」を示すときの挙動パターン群を示している。双方ともに矢印の画素座標が開始点であり、星印の画素座標が終了点である。図7(a)に示す「0」では、終了点の高さは、開始点の位置とほぼ同一となる。一方、図7(b)に示す「6」では、終了点の高さは、開始点と最下位の点とのほぼ中間の位置となる。このように、開始点および終了点を含む、各画素座標位置の相対位置によって類似パターンの識別を行う。なお、各画素座標位置の相対位置に加えて、角の位置などを基に識別を行ってよい。
類似パターン識別部70によって識別を行った結果は、コマンド出力部80に送られる。
【0070】
[コマンド出力部]
コマンド出力部80はデータ格納部90にアクセスして、パターンマッチング部60または類似パターン識別部70が特定したジェスチャーに対応するコマンドを選択して、そのコマンドを所定のフォーマットで後段の処理装置に出力する機能を有する。コマンドの例としては、特に限定するものではないが「画面を上または下にスクロールする」、「カーソルを所定の方向に移動する」、「所定のプログラムの起動」などが挙げられる。
【0071】
[データ格納部]
データ格納部90は、メモリ、ハードディスク、CD、DVDなどで実装される格納手段であり、所定のデータをその内部に記録する機能を有する。記録するデータの例としては、パターンマッチング部60がマッチング処理に用いる「挙動ベクトルのパターンとジェスチャーとの関連データ」、類似パターン識別部が類似パターンのジェスチャーを識別するために用いる「類似パターンの一覧とその識別方法のデータ」、コマンド出力部80がジェスチャーに対応するコマンドを選択するための「ジェスチャーとコマンドの対応データ」などである。
【0072】
以上、本実施形態に係るジェスチャー認識装置1000の機能要素について説明した。次は、このジェスチャー認識装置1000が行うジェスチャー認識方法について図8ないし図11のフロー図を参照して説明する。
【0073】
[物体のジェスチャー認識方法]
図8のフロー図を参照して説明する。最初に、フレーム画像受信部10が撮像装置からユーザの指先を撮像したフレーム画像をリアルタイムで受け取る(ステップS100)。フレーム画像を受け取ると、対象物体追跡部20がこのフレーム画像における指先の画素座標を検出し、時系列の画素座標データを生成する(ステップS200)。画素座標データを生成すると、平滑処理部30がこのデータに対して平滑処理を施す(ステップS300)。
【0074】
次に、挙動ベクトル特定部40が、各画素座標における挙動ベクトルを求め、図3(b)示すベクトルパターン1ないし9(パターン9は「静止状態」)の何れかに特定し、時系列の挙動ベクトルデータを生成する(ステップS400)。
【0075】
特定した挙動ベクトル群に対して特徴点解析部50が処理を行うが(ステップS500)、この処理手順については図9のフロー図を参照して詳細に説明する。
最初に、時系列の挙動ベクトルデータの中に同一の挙動ベクトルを示すデータブロックが連続して存在していないかどうかを調査する(ステップS510)。同一の挙動ベクトルを示す2つ以上のデータブロックが連続して存在していた場合には(ステップS510で「YES」)、それらの画素座標を単一のデータブロックにまとめて(ステップS520)、ステップS530の処理に進む。一方、同一の挙動ベクトルを有する2つ以上のデータブロックが連続して存在していない場合には(ステップS510で「NO」)、そのままステップS530の処理に進む。
【0076】
次に、時系列の挙動ベクトルデータの中に「パターン9」、すなわち「静止状態」と特定されたデータブロックが存在するかどうかを調査する(ステップS530)。「静止状態」のデータブロックが存在する場合には(ステップS530で「YES」)、該当の「静止状態」の持続時間T1を求め、さらに、その1つ前の挙動ベクトルの持続時間T2を求め、双方の持続時間T1およびT2を比較する(ステップS540)。
【0077】
比較の結果、持続時間T2の方が持続時間T1よりも長い場合には(ステップS550で「YES」)、該当の「静止状態」の画素座標は「角部」に該当すると判断する(S560)。そして、ステップS600の処理に進む。一方、持続時間T2の方が持続時間T1よりも短い場合には(ステップS550で「NO」)、該当の「静止状態」の画素座標は「終了点」に該当すると判断する(S570)。そして、ステップS600の処理に進む。
【0078】
また、挙動ベクトルデータの中に「静止状態」、すなわち「パターン9」と特定されたデータブロックが存在しない場合には(ステップS530で「NO」)、ステップS600の処理にそのまま進む。
【0079】
次の図8のステップS600の処理では、パターンマッチング部60がデータ格納部90にアクセスし、このデータ格納部90に記録されたジェスチャーパターンの中で処理対象の挙動ベクトル群と一致するものがあるかどうかを検索する(ステップS600)。この処理を図10のフロー図を参照して詳細に説明する。
【0080】
最初に、処理対象の画素座標群の中に「終了点」と特定されたデータブロックが存在するかどうかを調査する。「終了点」の画素座標が存在する場合には(ステップS601で「YES」)、その「終了点」の一つ前のデータ列を基点として、データ列の配列順序に遡ってデータ格納部90に記録されたジェスチャーパターンとマッチング処理を行う(ステップS602)。マッチング処理の結果、一致するジェスチャーパターンが存在する場合には(ステップS603で「YES」)、その一致したジェスチャーパターンを該当の挙動ベクトル群が示すジェスチャーであると特定する(ステップS604)。最後に「終了点」までのデータブロックの内容をすべてクリアして(ステップS605)、特定したジェスチャーを類似パターン識別部70に出力する(ステップS606)。
【0081】
一方、マッチング処理の結果、一致するジェスチャーパターンが存在しない場合には(ステップS603で「NO」)、「終了点」のデータ列より後のデータ列群を新たな処理対象とし(ステップS607)、「終了点」のデータ列までのデータをすべてクリアして(ステップS608)、再度ステップS601からの処理を繰り返す。
【0082】
また、処理対象の画素座標群の中に「終了点」と特定された画素座標が存在しない場合には(ステップS601で「NO」)、処理対象は終了点のないジェスチャーと判断して、最後のデータ列を基点として、データ列の配列順序に遡ってマッチング処理を行う(ステップS609)。マッチング処理の結果、一致するジェスチャーパターンが存在する場合には(ステップS610で「YES」)、その一致したジェスチャーパターンを該当の挙動ベクトル群のジェスチャーであると特定する(ステップS611)。最後に一時保管可能データ列数を超えるデータをクリアして(ステップS612)、特定したジェスチャーを類似パターン識別部70に出力する(ステップS606)。
【0083】
一方、マッチング処理の結果、一致するジェスチャーパターンが存在しない場合には(ステップS610で「NO」)、基点を次のデータ列に変更し、ステップS609以降の処理を繰り返す(ステップS613)。
【0084】
次に、図8に示す類似パターン識別部70が行うステップS700の処理は、図11のフロー図を参照して詳細に説明する。まず、パターンマッチング部60が出力したジェスチャーのデータを受け取ると、そのジェスチャーが類似パターンに該当するかどうかを調査する(ステップS710)。類似パターンに該当する場合には(ステップS710で「YES」)、該当するジェスチャーのデータを構成する画素座標のそれぞれの値を比較し、その相対値でジェスチャーを特定する(ステップS720)。なお、必要に応じて角部の座標も用いる。再特定したジェスチャーのデータはコマンド出力部80に出力する(ステップS730)。一方、類似パターンに該当しない場合には(ステップS710で「NO」)、該当するジェスチャーのデータをそのままコマンド出力部80に出力する(ステップS730)。
【0085】
再び図8を参照すると、類似パターン識別部70が出力したデータは、コマンド出力部80が受け取り、受け取ったジェスチャーのデータに対応するコマンドをデータ格納部90にアクセスして検索する。そして検索したコマンドを必要に応じて後段の処理装置が取り扱う形式に変換した後に当該後段の処理装置に出力する(ステップS800)。
以上が本実施形態に係るジェスチャー認識方法の処理手順である。
【0086】
本発明の一実施形態に係るジェスチャー認識装置1000が適応される処理装置は特に限定するものではない。例えばパーソナルコンピュータ、携帯端末、ATM、カーナビゲーション、自動販売機、携帯電話、OA機器等の様々な機器に適用してよい。
【0087】
なお、本発明の一実施形態にジェスチャー認識装置1000が有する機能は、特定のハードウェア資源またはソフトウェア処理に限定されないことに留意されたい。すなわち、この機能を実現できる限り、如何なるハードウェア(電子回路等)、ソフトウェア(プログラム)、あるいはそれらの組み合わせ等を用いてよい。
【0088】
上述した本発明の一実施形態に係るジェスチャー認識方法を、プログラムとして実装する場合には、このプログラムを外部のサーバ等から該方法を実行する情報処理装置にダウンロードするか、あるいはコンピュータ可読媒体の形態で分配されることが好ましい。コンピュータ可読媒体の例としては、CD−ROM、DVD、磁気テープ、フレキシブルディスク、光磁気ディスク、ハードディスク、メモリ媒体などが挙げられる。
【0089】
以上、本発明を図面に示した実施形態を用いて説明したが、これらは例示的なものに過ぎず、本技術分野の当業者ならば、本発明の範囲および趣旨から逸脱しない範囲で多様な変更および変形が可能なことは理解できるであろう。したがって、本発明の範囲は、説明された実施形態によって定められず、特許請求の範囲に記載された技術的趣旨により定められねばならない。
【符号の説明】
【0090】
10 フレーム画像受信部
20 対象物体追跡部
30 平滑処理部
40 挙動ベクトル特定部
50 特徴点解析部
60 パターンマッチング部
70 類似パターン識別部
80 コマンド出力部
90 データ格納部
1000 ジェスチャー認識装置
【技術分野】
【0001】
本発明は、ジェスチャーを認識する装置、方法、プログラム、および該プログラムを格納したコンピュータ可読媒体に関し、より詳細には、自由空間を移動する物体の軌跡によって表わされるジェスチャーを認識する装置、方法、プログラム、および該プログラムを格納したコンピュータ可読媒体に関する。
【背景技術】
【0002】
パーソナルコンピュータの操作を目的とした種々の入力デバイスが市販されている。この入力デバイスの例としては、マウス、トラックボール、ジョイスティック、タッチパネルなどが挙げられる。このような入力デバイスはキーボードとは異なり、ユーザに種々の直観的な操作を提供することができる。
【0003】
特にタッチパネルは他の入力デバイスと異なり、専用の作業領域を必要とせず、指や専用のペンをディスプレイの表面に接触させることで様々な操作が可能となるため、主にモバイル用のコンピュータに加え、自動販売機、携帯電話、カーナビ、OA機器など多種の機器に搭載されている。
【0004】
タッチパネルは、液晶などのディスプレイの表面に接触を検知するための素子を配置し、さらにそれを透明なスクリーンで覆うことで作成される(特許文献1参照)。画面への接触を感知する方式は感圧式と静電式との2種類があり、前者は圧力の変化を感知し、後者は静電気による電気信号を感知する。
【0005】
しかし、タッチパネルは常にユーザの指やペンによって触れられるため、ディスプレイの表面が汚れて視認し難くなる。さらに、強く押圧することにより、ディスプレイの表面に傷がつく、あるいは破損する等の不具合が発生するおそれがある。
【0006】
上述の不具合点を改善したものがジェスチャー認識装置である。特許文献2はジェスチャー認識装置の一例であるインターフェイス装置を開示している。このように、ジェスチャー認識装置は、自由空間中の所定の移動物体(ユーザの掌、指先等)をカメラで撮像し、それを基にその物体の形状の変化または移動の軌跡を認識し、それに応じた操作を処理装置に行わせている。すなわち、ユーザは、カメラの前の自由空間内で所定の動作を行うことで処理装置に所望の操作を行わせることができる。この種の装置はタッチパネル方式と異なって非接触方式を採用しているため、ディスプレイに悪影響を与えることはない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平05−006152
【特許文献2】特開2004−78977
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、現行のジェスチャー認識装置には、認識精度において幾つかの不都合な点がある。被認識物体は自由空間中を移動するため、描かれる軌道は不安定、かつ不規則になる。例えば、自由空間にユーザが指で直線を描くことを想定する。その場合、ユーザは正確な直線を描いたと思っていても、実際に描かれた軌道は曲線になっていることが多い。また、指先を空中に停止させても、実際には手振れなどの影響で多少揺動し得る。したがって、ユーザの意図するジェスチャーを装置が正確に認識することができずに誤操作が発生する可能性がある。
【0009】
また、現行の装置は、ユーザの描いた軌道を構成する画素座標の一覧の列と、予め用意した複数のジェスチャーパターンの画素座標の一覧の列とをマッチングし、一致したジェスチャーパターンを当該軌道のジェスチャーとして認識している。この場合、まず、ジェスチャーの開始点を検出して、その開始点を基準点としてマッチングを行う。しかし、所定のジェスチャーを行う場合には、最初に被認識物体をそのジェスチャーの開始点に移動させる予備的動作が必要である。この予備的動作と実際のジェスチャー動作との識別が困難であり、それゆえ正確にジェスチャーの開始点を検出することができない。そのために開始点を検出するための複雑なアルゴリズムを用いるか、あるいは検出した被認識物体の画素座標のすべてを開始点と想定して総当り的にマッチング処理を行う必要があり、ジェスチャー認識装置を処理能力の低いコンピュータなどに適用した場合にコンピュータの応答が不安定となり、ユーザは操作にストレスを感じてしまう。
【0010】
発明者は上述に示したような不都合点を解決するために本発明を創案した。本発明の目的は、自由空間中のジェスチャーを高い確度で認識することが可能な物体の認識装置、方法、プログラム、並びに該プログラムを格納したコンピュータ可読媒体を提供することである。
【0011】
本発明の別の目的は、複雑な演算処理等を用いずにジェスチャーを認識可能なジェスチャー認識装置、方法、プログラム、並びに該プログラムを格納したコンピュータ可読媒体を提供することである。
【0012】
本発明のさらに別の目的は、ジェスチャーの開始点の不定に影響されずにジェスチャーを認識可能なジェスチャー認識装置、方法、プログラム、並びに該プログラムを格納したコンピュータ可読媒体を提供することである。
【課題を解決するための手段】
【0013】
前記課題を解決するために創案された請求項1の発明は、自由空間を移動する物体の軌跡によって表わされる所定のジェスチャーを認識するためのジェスチャー認識装置であって、前記物体を撮像した動画像を受け取る画像受信手段と、前記動画像を構成するフレーム画像における前記物体の位置する画素座標を求め、撮像時刻に基づく時系列の画素座標データを生成する物体追跡手段と、前記求めた画素座標における前記物体の移動方向を求め、時系列の移動方向データを生成する移動方向特定部と、予め用意した移動方向の組み合わせからなる複数のジェスチャーパターンの中から前記移動方向データと一致するジェスチャーパターンを検索し、一致したジェスチャーパターンを前記物体が表わしたジェスチャーと判断するパターンマッチング手段と、を備え、前記移動方向特定部は、前記物体の移動方向を上、右上、右、右下、下、左下、左、左上、静止状態の何れかに近似して求めることを特徴とする。
【0014】
前記課題を解決するために創案された請求項2の発明は、請求項1に記載のジェスチャー認識装置であって、前記移動方向特定部が前記物体の移動方向を近似する際に、前記右上、右下、左下、左上の移動方向の近似範囲を前記上、右、下、左の移動方向の近似範囲よりも広く設定することを特徴とする。
【0015】
前記課題を解決するために創案された請求項3の発明は、請求項1または2に記載のジェスチャー認識装置であって、前記移動方向データにおいて同一の移動方向が隣接する場合には、その隣接する移動方向同士を単一の移動方向にまとめる処理を行う補正手段をさらに備えることを特徴とする。
【0016】
前記課題を解決するために創案された請求項4の発明は、請求項3に記載のジェスチャー認識装置であって、前記補正手段は、前記移動方向が静止状態である場合には、該静止状態の持続時間と、該静止状態の1つ前の移動方向の持続時間とを比較し、該静止状態の持続時間の方が長い場合には該静止状態に対応する画素座標をジェスチャーの終了点と判断し、該静止状態の持続時間の方が短い場合には該静止状態に対応する画素座標をジェスチャーの角部と判断する処理を行うことを特徴とする。
【0017】
前記課題を解決するために創案された請求項5の発明は、請求項4に記載のジェスチャー認識装置であって、前記パターンマッチング手段は、前記終了点に該当するデータ列の1つ前のデータ列と、前記ジェスチャーパターンを構成するデータ列の最後の列と、を合わせた状態でマッチングを行うことを特徴とする。
【0018】
前記課題を解決するために創案された請求項6の発明は、請求項1ないし5の何れか一項に記載のジェスチャー認識装置であって、他のジェスチャーと混同を生ずるおそれのあるジェスチャーが挙げられた類似ジェスチャーリストと、前記パターンマッチング手段が特定したジェスチャーが前記類似ジェスチャーリストに含まれていた場合には、該ジェスチャーを構成する画素座標の相対位置を基にジェスチャーを再度特定する類似ジェスチャー再特定手段と、をさらに備えることを特徴とする。
【0019】
前記課題を解決するために創案された請求項7の発明は、請求項1ないし6の何れか一項に記載のジェスチャー認識装置であって、前記物体追跡手段が生成した画素座標データに平滑処理を施す平滑処理手段をさらに備えることを特徴とする。
【0020】
前記課題を解決するために創案された請求項8の発明は、自由空間を移動する物体の軌跡によって表わされる所定のジェスチャーを認識するためのジェスチャー認識方法であって、前記物体を撮像した動画像を受け取る画像受信段階と、前記動画像を構成するフレーム画像における前記物体の位置する画素座標を求め、撮像時刻に基づく時系列の画素座標データを生成する物体追跡段階と、前記求めた画素座標における前記物体の移動方向を求め、時系列の移動方向データを生成する移動方向特定段階と、予め用意した移動方向の組み合わせからなる複数のジェスチャーパターンの中から前記移動方向データと一致するジェスチャーパターンを検索し、一致したジェスチャーパターンを前記物体が表わしたジェスチャーと判断するパターンマッチング段階と、を含み、前記移動方向特定段階では、前記物体の移動方向を上、右上、右、右下、下、左下、左、左上、静止状態の何れかに近似して求めることを特徴とする。
【0021】
前記課題を解決するために創案された請求項9の発明は、請求項8に記載のジェスチャー認識方法であって、前記移動方向特定段階において、前記物体の移動方向を近似する場合には、前記右上、右下、左下、左上の移動方向の近似範囲を前記上、右、下、左の移動方向の近似範囲よりも広く設定することを特徴とする。
【0022】
前記課題を解決するために創案された請求項10の発明は、請求項8または9に記載のジェスチャー認識方法であって、前記移動方向特定段階と前記パターンマッチング段階との間に行われる補正段階をさらに含み、該補正段階において、前記移動方向データ内に同一の移動方向が隣接して存在する場合には、その隣接する移動方向同士を単一の移動方向にまとめる処理を行うことを特徴とする。
【0023】
前記課題を解決するために創案された請求項11の発明は、請求項10に記載のジェスチャー認識方法であって、前記補正段階において、前記移動方向が静止状態である場合には、該静止状態の持続時間と、該静止状態の1つ前の移動方向の持続時間とを比較し、該静止状態の持続時間の方が長い場合には該静止状態に対応する画素座標をジェスチャーの終了点と判断し、該静止状態の持続時間の方が短い場合には該静止状態に対応する画素座標をジェスチャーの角部と判断する処理を行うことを特徴とする。
【0024】
前記課題を解決するために創案された請求項12の発明は、請求項11に記載のジェスチャー認識方法であって、前記パターンマッチング段階において、前記終了点に該当するデータ列の1つ前のデータ列と、前記ジェスチャーパターンを構成するデータ列の最後の列と、を合わせた状態でマッチングを行うことを特徴とする。
【0025】
前記課題を解決するために創案された請求項13の発明は、請求項8ないし12の何れか一項に記載のジェスチャー認識方法であって、前記パターンマッチング段階で判断したジェスチャーが他のジェスチャーと混同を生ずるおそれのあるジェスチャーであるかどうかを判断する類似判断段階と、前記類似判断段階で該ジェスチャーが他のジェスチャーと混同を生ずるおそれのあると判断された場合には、該ジェスチャーを構成する画素座標の相対位置を基にジェスチャーを再度特定する類似ジェスチャー再特定段階と、をさらに含むことを特徴とする。
【0026】
前記課題を解決するために創案された請求項14の発明は、請求項8ないし13の何れか一項に記載のジェスチャー認識方法であって、前記物体追跡段階と移動方向特定段階との間に行われ、前記物体追跡段階で生成された画素座標データに平滑処理を施す平滑処理段階をさらに含むことを特徴とする。
【0027】
前記課題を解決するために創案された請求項15の発明は、請求項8ないし14の何れか一項に記載のジェスチャー認識方法を実行する電子回路である。
【0028】
前記課題を解決するために創案された請求項16の発明は、請求項8ないし14の何れか一項に記載のジェスチャー認識方法を処理装置に実行させるプログラムである。
【0029】
前記課題を解決するために創案された請求項17の発明は、請求項16に記載のプログラムを格納したコンピュータ可読媒体である。
【0030】
請求項1および請求項8の発明では、被認識物体の描く軌道の各画素座標で移動方向を求め、時系列の移動方向データを生成している。そして、この移動方向を9種類(静止状態を含む)で分類している。そのため、取り扱われるデータの構造が簡単となり、演算能
力の低い処理装置でも安定して処理を行うことができる。
【0031】
人間が自由空間中に直線軌跡を描く場合には、垂直方向または水平方向の直線は比較的正確であるが、斜め方向の直線は不正確になる傾向がある。そのため、請求項2および請求項9の発明では、斜め方向の近似範囲を水平および垂直方向の近似範囲よりも広く設定することで、上記の傾向を適切に補正している。
【0032】
請求項3および請求項10の発明では、移動方向データ内において2つ以上の隣接するデータ列が同一の移動方向を示す場合には、そのデータ列群では一定の移動が継続していると判断して、単一のデータ列にまとめる処理を行う。これにより、データ量を低減し、且つデータを単純化することが可能となる。
【0033】
請求項4および請求項11の発明は、静止状態はジェスチャーの角部(移動方向の変化点)およびジェスチャーの終了点に発生し、かつ角部と終了点ではその持続時間が異なるという事実に基づいている。この事実を利用することにより、認識すべきジェスチャーの形状をより正確に把握することが可能となる。
【0034】
通常、データのマッチング処理を行う場合には、データ列の開始点を基点にしてマッチングを行うのが一般的である。しかし、自由空間中に指等の物体で軌道を描いて所定のジェスチャーを表現する場合には、その軌道の開始点まで物体を移動させる予備的動作が必要となる。この予備的動作によって、ジェスチャーの開始点を正確に検出することが困難となる。一方、ジェスチャーの終了点は必ず一定期間動作が停止するため、比較的容易に検出することができる。請求項5および請求項12の発明では、移動方向データの終了点を基点とし、データの配列順序に遡ってジェスチャーパターンとマッチングを行う。これにより、高い確度でジェスチャーを特定することができ、さらにデータの総当り的なマッチング処理を行う必要が無いため、処理装置に高い負荷を与えるおそれもない。
【0035】
物体が描くジェスチャーの中には文字「U」と「V」、数字「0」と「6」、数字「0」と文字「O」など、紛らわしい組み合わせが存在し、これらの組み合わせがジェスチャーの誤認識の原因となり得る。請求項6および請求項13の発明では、これらの紛らわしいジェスチャーを類似ジェスチャーとして他のジェスチャーと区分けし、パターンマッチングでこれらの類似ジェスチャーの何れかに特定された場合にのみ、画素座標の相対位置などを用いて再度特定処理を行う。これにより、ジェスチャーの認識確度を高めることが可能となる。また、この再特定処理が必要な類似ジェスチャーの数は限られているため、処理を顕著に複雑化することはない。
【0036】
自由空間では指先等の物体で正確に所望の軌道を描くことが事実上不可能である。また、物体を静止させるつもりでも実際には常に揺動してしまう。この現象が正確な軌道の把握を困難にしている。請求項7および請求項14の発明では、物体の画素座標データに対して平滑処理を行うことで揺動等から生じる軌道の不正確さを補正する。
【0037】
請求項15の発明は、本発明を電子回路の形態で提供している。
【0038】
請求項16の発明は、本発明をプログラムの形態で提供している。
【0039】
請求項17の発明は、本発明をコンピュータ可読媒体の形態で提供している。
【発明の効果】
【0040】
本発明では、データの平滑処理、類似ジェスチャーの再特定処理などを用いることにより、高い確度で物体のジェスチャーを認識することが可能である。また、取り扱うデータを9種類の移動方向データに限定することで処理を簡単にし、処理装置の負担を低減させている。さらに、物体の軌道の開始点ではなく、終了点を基点としてマッチング処理を行うことで、開始点の不定により受ける影響を回避している。
【図面の簡単な説明】
【0041】
【図1】本発明の一実施形態に係るジェスチャー認識装置の機能ブロック図である。
【図2】ジェスチャー認識装置の平滑処理部が行う処理を説明するための図である。
【図3】ジェスチャー認識装置の挙動ベクトル特定部が行う処理を説明するための図であり、(a)被認識物体が描いた軌道であり、(b)は挙動ベクトル特定部が特定するベクトルパターンであり、(c)は挙動ベクトル特定部が(a)に示す軌道に対して特定した挙動ベクトルである。
【図4】ジェスチャー認識装置の特徴点解析部が行う処理を説明するための図である。
【図5】特徴点解析部が行う処理を説明するための図であり、(a)は被認識物体が描いた軌道と、その画素座標と、当該画素座標における挙動ベクトルであり、(b)は同一の挙動ベクトルを1つにまとめたものであり、(c)は静止状態における角部と終了点とを識別方法を説明するための図であり、(d)最終的に求めた挙動ベクトルである。
【図6】ジェスチャー認識装置のパターンマッチング部が行う処理を説明するための図であり、(a)は文字Uのジェスチャーを示し、(b)は右回りのジェスチャーを示す。
【図7】ジェスチャー認識装置の類似パターン識別部が行う処理を説明するための図であり、(a)は数字0のジェスチャーを示し、(b)は数字6のジェスチャーを示す。
【図8】本発明の一実施形態に係るジェスチャー認識方法のフロー図である。
【図9】図8のフロー図のステップS500の処理の詳細を示したフロー図である。
【図10】図8のフロー図のステップS600の処理の詳細を示したフロー図である。
【図11】図8のフロー図のステップS700の処理の詳細を示したフロー図である。
【発明を実施するための形態】
【0042】
本発明の一実施形態に係るジェスチャー認識装置の構成や機能について添付図面を参照して以下に詳細に説明する。
このジェスチャー認識装置は、コンピュータ、携帯情報端末(PDA)などの処理装置に搭載され、カメラ等で撮像された動画像を介してユーザの指先、所定の専用ツールなどが自由空間内に描いた軌道を認識し、この認識した軌道に対応する操作コマンドを当該処理装置に送る機能を有する。
すなわち、ユーザはカメラ等の前の自由空間に指先等で所定の軌道を描くことで処理装置に所望の操作を行わせることができる。ここで、ユーザによって描かれる軌道は特に限定するものではないが、右回し、左回し、文字、記号、数字などが挙げられる。本実施形態ではこれらを「ジェスチャー」と称する。例えば、右回しのジェスチャーを行えば処理装置の画面が上方向にスクロールされ、左回しのジェスチャーを行えば画面が下方向にスクロールされる。このようなジェスチャーと操作との関連付けは事前に行われている。しかし、ユーザが適宜この関連付けを変更または設定してもよい。
【0043】
本実施形態において、ユーザが行うジェスチャーは大別して2種類存在する。文字、数字などのように明確な終了点が存在するものと、「右回し」、「左回し」のように同様の動作が繰り返され、明確な終了点が存在しないものである。以下、前者を「終了点のあるジェスチャー」、後者を「終了点がないジェスチャー」と称して区別する。
【0044】
図1は、本発明の一実施形態に係るジェスチャー認識装置1000の機能ブロックを示している。図示のように、物体認識装置1000は、機能要素として、フレーム画像受信部10と、対象物体追跡部20と、平滑処理部30と、挙動ベクトル特定部40と、特徴点解析部50と、パターンマッチング部60と、類似パターン識別部70と、コマンド出力部80と、データ格納部90とから構成される。また、当該装置の入力部には撮像装置が接続され、出力部には処理装置が接続されている。撮像装置は、自由空間に位置する被認識物体を所定のフレームレートで撮像し、その撮像したデータを所定の形式の動画像データとしてリアルタイムに出力する機能を有する。この撮像装置には汎用ビデオカメラを用いてよい。一方、処理装置には汎用コンピュータを用いてよく、ジェスチャー認識装置1000をその処理装置の機能の一部によって実現してもよい。なお、ジェスチャーを行う被認識物体は特定のものに限定されるものではないが、ユーザの指先、棒状のツールの先などであることが好ましい。本実施形態では被認識物体を「ユーザの指先」とする。
【0045】
[フレーム画像受信部]
フレーム画像受信部10は、撮像装置から動画像データをリアルタイムに受け取る機能を有する。具体的には、撮像装置が生成した所定の形式の動画像データをフレーム画像単位で受け取り、必要に応じてそのフレーム画像のデータを後段の機能要素が処理可能なデータ形式に変換する。
【0046】
[対象物体追跡部]
対象物体追跡部20は、フレーム画像受信部10から受け取った複数のフレーム画像データ内に位置する被認識物体である指先の画素座標を求める機能を有する。指先の位置の求め方については特に限定するものではなく、既存の移動物体追跡手法を用いてよい。例えば、時系列に隣接する2つのフレーム画像の間でそれぞれの画素における差分を抽出して、変化があった領域にテンプレートマッチング処理を施すことで指先を検出してよい。あるいは、特開2010−152791で開示している、赤外線などの光を指先に照射して、その反射光で指先を検出する手法を用いてもよい。
以上の処理により、フレーム画像のデータは、1つのフレーム画像における指先の画素座標データを1ブロックとして、そのブロックが時系列(撮像時刻順に)配列した一連のデータに変換される。このデータは平滑処理部30に送られる。
【0047】
[平滑処理部]
平滑処理部30は、対象物体追跡部20が求めた指先の画素座標データに平滑処理を施す。例えば、ユーザが自由空間中に指先で水平な直線を描くと仮定する。この場合、図2に示すように、ユーザが直線を描いたつもりでも、実際に描かれた軌道は手振れや外乱光または周囲の振動などの影響によって一点斜線で示すような波状の曲線となることが多い。この波形状を直線形状に補正するためにこの平滑処理を行う。
【0048】
具体的には、相互に隣接する指先の画素座標のペアの中点を求め、これを平滑処理後の画素座標とする。例えば、図2の「座標n−2」および「座標n−1」と、「座標n−1」および「座標n」のペアは、それぞれ相互に隣接する指先の画素座標である。まず、「座標n−2」と「座標n−1」との間の中点を求め、この中点を平滑処理後の指先の画素座標n−1とする。同様に、「座標n−1」と「座標n」との間の中点を求めて平滑処理後の指先の画素座標nとする。
この平滑処理によって、手振れ等による軌道の誤差を補正することができる。補正後の指先の画素座標は挙動ベクトル特定部40に送られる。
なお、本実施形態における平滑処理はこの手法に限定されるものではない。代替的に最小二乗法などの周知の近似手法を用いてもよい。
【0049】
[挙動ベクトル特定部]
挙動ベクトル特定部40は、平滑処理後の指先の画素座標のデータを基に、指先の移動方向をベクトル(以下、「挙動ベクトル」と称する)で求める機能を有する。
図3(a)は、指先の軌道の例を示しており、軌動上の点1ないし5は平滑処理後の指先の画素座標である。この画素座標に対してそれぞれの挙動ベクトルを求める。なお、ベクトルは通常大きさと方向の2つの要素を有するが、本実施形態で求める挙動ベクトルは方向の要素のみを有する。挙動ベクトルの求め方は特に限定するものではないが、相互に隣接する画素座標同士を直線で結ぶことで求めてよい。
【0050】
本実施例では、後段で行う演算処理を簡略化するために、求めた挙動ベクトルを図3(b)に示すような9種類のベクトルパターン、すなわち、右、右下、下、左下、左、左上、上、右上、静止状態の何れかに分類する。具体的には、各画素座標における挙動ベクトルを求め、求めたベクトルに最も類似するベクトルパターンを選択し、そのベクトルパターンを該当の座標での挙動ベクトルとする。なお、本発明の発明者は種々の実験と経験により、ユーザが自由空間に描く直線軌跡は、垂直方向と水平方向は比較的正確であるが、斜め方向は不正確になるという事実を発見した。そこで、本実施形態では、ベクトルパターンの類似範囲を均等ではなく、ベクトルパターン1、3、5、7を±15°の範囲と比較的狭く設定し、ベクトルパターン2、4、6、8を±30°の範囲と広く設定した。これにより、より正確に挙動ベクトルを求めることができる。
【0051】
以上の方法で求めた挙動ベクトルを図3(c)に示す。画素座標1ないし5の挙動ベクトルのパターンは、それぞれ1、2、3、2、1となった。このように、各画素座標における挙動ベクトルを9種類のパターンに限定することによって、以降に行う処理を単純化することができる。
【0052】
上述の挙動ベクトルパターンの中の「静止状態」について補足説明する。自由空間中に文字や数字などを描く場合には、必ずその軌道がその終了点で一旦停止する。したがって、隣接する画素座標の間の移動量が一定以下の場合は「静止状態」にあると見なす。なお、「一定量」の範囲は撮像装置のフレームレートやフレーム画像の解像度に依存して決定されるが、例えば、5〜10画素の範囲であってよい。
【0053】
また、「静止状態」の発生箇所は上述の終了点だけに限定されるものではない。図4では、指先が矢印に示す軌道を描いた場合における指の位置する画素座標の推移を示している。ここで、軌道の角部付近の箇所である座標4ないし7では、指先が顕著に移動していないことがわかる。このように、軌道の角、すなわち、挙動ベクトルの方向が大きく変わる箇所では被認識物体である指先の移動量が減少する。本実施形態では、座標4ないし7を「静止状態」と特定する。
以上の処理により得られたデータは、1つのフレーム画像に対応する指の挙動ベクトルを1ブロックとして構成した時系列のデータとなる。この挙動ベクトルのデータは特徴点解析部50に送られる。
【0054】
[特徴点解析部]
特徴点解析部50は、挙動ベクトル特定部40が求めたデータ内の「特徴点」を示すデータブロックに着目し、適切な処理を行う機能を有する。なお、本実施形態で「特徴点」とは、隣接し、かつ同一の挙動ベクトルを示す一群のデータブロック、並びに、「静止状態」と特定されたデータブロックである。
詳細は図5を参照して説明する。図5(a)は、ユーザが自由空間中に指先で「L」の文字の軌道を描いたときの指の位置1ないし10とそれぞれの指の位置の挙動ベクトルを示している。ここで指の位置1および2の挙動ベクトルは「パターン3」であり、指の位置3ないし6の挙動ベクトルは「静止状態」であり、指の位置7ないし9の挙動ベクトルは「パターン1」であり、画素座標10は「静止状態」である。実際の挙動ベクトルのデータ構造は、それぞれの指の位置における挙動ベクトルを1つのデータブロックとして、位置1ないし10の順番で並列している。まず、同一の挙動ベクトルを示すデータブロックが隣接する場合には、単一のデータブロックにまとめる。すなわち、図5(b)に示すように指の位置1および2と、3ないし6と、7ないし9とをそれぞれ単一のデータブロックとする。
【0055】
次に、「静止状態」を示す指の位置3および10に着目する。上述のように「静止状態」のデータブロックは、ジェスチャーの終了点と角部の何れかに指が位置した状態に該当するため、そのどちらであるかを識別する必要がある。図5(c)は、図5(b)に示した挙動ベクトルのそれぞれの持続時間を示している。ここで、データブロック1で挙動ベクトル「パターン3」が持続した時間を「a」、データブロック3で挙動ベクトル「静止状態」が持続した時間を「b」、データブロック7で挙動ベクトル「パターン1」が持続した時間を「c」、データブロック10で挙動ベクトル「静止状態」が持続した時間を「d」とする。
【0056】
各挙動ベクトルの持続時間を求めた後は、「静止状態」のデータブロックにおけるその持続時間と、その1つ前のデータブロックの挙動ベクトルの持続時間とを比較し、「静止状態」の持続時間が1つ前の挙動ベクトルの持続時間よりも短ければ、「静止状態」は軌道の「角部」に該当すると断定する。一方、「静止状態」の持続時間が1つ前の挙動ベクトルの持続時間よりも長ければ、「静止状態」は軌道の「終了点」に該当すると断定する。従って、図5(c)では、画素座標3が軌跡の「角部」に該当し、画素座標10が軌跡の「終了点」に該当する。その結果、ユーザがジェスチャーとして自由空間中に描いた軌道は、図5(d)に示す、挙動ベクトル3および1から構成されるL形の文字であることがわかる。
特徴点解析部50が解析した結果はパターンマッチング部60に送られる。
【0057】
[パターンマッチング部]
パターンマッチング部60は、特徴点解析部50から受け取ったデータを基にユーザの指先によって描かれた軌道、すなわち、指先のジェスチャーを特定する機能を有する。詳細には、予め作成されてデータ格納部90に記録された複数のジェスチャーパターンのデータの中で特徴点解析部50から受け取ったデータと一致するものがあるかどうかを検索する。一致するジェスチャーパターンがある場合にはそのジェスチャーパターンがユーザの行ったジェスチャーであると判断する。
上述のようにジェスチャーには、終了点を有するものと、終了点を有しないものの2通りがある。それぞれの場合について処理内容を説明する。
【0058】
1、終了点があるジェスチャーを求める場合
図6(a)に示す軌道に該当するジェスチャーを求める場合を例にして説明する。ユーザが指先で自由空間中に点線で示す文字「U」の軌道を描いたとする。この軌道のデータをジェスチャー認識装置1000のフレーム画像受信部10ないし特徴点解析部50で処理し、その結果得られたデータを表1に示す。この表では画素座標「A」ないし「J」における挙動ベクトルパターンの値がそれぞれ示されている。
【0059】
【表1】
【0060】
次に、データ格納部90に記録されたジェスチャーパターンの中で、ジェスチャー「U」に該当するパターンを表2にそれぞれ示す。
【0061】
【表2】
【0062】
パターンマッチング部60は、特徴点解析部50から受け取ったデータを参照して、最初に終了点を捜索する。表1を参照すると、データ列Iに終了点が存在していることがわかる。そのため、終了点の1つ前のデータ列Hに着目し、最後のデータ列(ブロック)の挙動ベクトルが「パターン8」であるジェスチャーパターンを検索する。次に、最後から2番目の挙動ベクトルが「パターン7」であるジェスチャーパターンを検索する。この検索処理を繰り返し、データ列BないしHの軌道がジェスチャー「U」に該当すると認識する。
以降は、挙動ベクトルデータのデータ列AないしIの内容をクリアし、新たにデータ列Jから同様のマッチング処理を繰り返す。このように、終了点を基準とし、かつデータ列の配列順序に遡ってマッチング処理を行えば、開始点の不定により受ける影響を回避することができる。
認識した結果は、類似パターン識別部70に送られる。
【0063】
2、終了点がないジェスチャーを求める場合
図6(b)に示す軌道からジェスチャーを求める場合を例にして説明する。ユーザが指先で自由空間中に点線で示す右回りの軌道を描いたとする。この軌道のデータをジェスチャー認識装置1000のフレーム画像受信部10ないし特徴点解析部50で処理し、その結果得られたデータを表3に示す。この表には画素座標「A」ないし「K」における挙動ベクトルパターンの値がそれぞれ示されている。
【0064】
【表3】
【0065】
次に、データ格納部90に記録されたジェスチャーパターンの中で、右回りのジェスチャーに該当するパターンを参考として表4に示す。
【0066】
【表4】
【0067】
パターンマッチング部60は、最初に特徴点解析部50から受け取ったデータを参照して、終了点を捜索する。表3を参照すると終了点は存在しないことがわかる。そのため、最後のデータ列Kを基点として、かつ基点を含め1つ遡ったデータ列Kの挙動ベクトル「パターン1」で終わるジェスチャーパターンを捜索する。該当するパターンが存在しない場合は、そこで捜索を終了し、該当ジェスチャーは「なし」となる。該当するパターンが1つ以上存在した場合は、捜索の範囲を、基点からさらに1つ遡ったデータ列Jまでの挙動ベクトル「パターン1およびパターン8」で終わるジェスチャーパターンを捜索する。該当するパターンが1つ以上存在した場合は、さらに1つ前のデータ列までを捜索する。以上の手順を繰り返し、画素座標CないしKの軌跡が「右回り」のジェスチャーに該当すると認識する。
認識した結果は類似パターン識別部70に送られる。
【0068】
[類似パターン識別部]
類似パターン識別部70は、パターンマッチング部60が特定したジェスチャーが類似パターン群に含まれる場合のみ該当のデータに対して処理を行う。
類似パターンとは、形状が相互に類似している文字、記号等であり、例えば、数字の「6」と数字の「0」、文字の「U」と「V」などが挙げられる。これらの数字または文字のペアは、共に終了点を有し、かつ形状が類似している。そのため、パターンマッチング部60が行うマッチング処理だけではこれらを混同して誤認識を起こすおそれがある。そこで、ジェスチャー認識装置の認識確度を高めるために類似パターン識別部70を設けている。パターンマッチング部60は、画素座標の挙動ベクトルのパターンのみでジェスチャーを特定していたが、この類似パターン識別部70は、画素座標の相対位置を用いてジェスチャーを特定する。
【0069】
図7を参照して、類似パターン識別部70が行う処理について説明する。図7(a)はジェスチャーが数字「0」を示すときの挙動パターン群を示し、図7(b)は数字「6」を示すときの挙動パターン群を示している。双方ともに矢印の画素座標が開始点であり、星印の画素座標が終了点である。図7(a)に示す「0」では、終了点の高さは、開始点の位置とほぼ同一となる。一方、図7(b)に示す「6」では、終了点の高さは、開始点と最下位の点とのほぼ中間の位置となる。このように、開始点および終了点を含む、各画素座標位置の相対位置によって類似パターンの識別を行う。なお、各画素座標位置の相対位置に加えて、角の位置などを基に識別を行ってよい。
類似パターン識別部70によって識別を行った結果は、コマンド出力部80に送られる。
【0070】
[コマンド出力部]
コマンド出力部80はデータ格納部90にアクセスして、パターンマッチング部60または類似パターン識別部70が特定したジェスチャーに対応するコマンドを選択して、そのコマンドを所定のフォーマットで後段の処理装置に出力する機能を有する。コマンドの例としては、特に限定するものではないが「画面を上または下にスクロールする」、「カーソルを所定の方向に移動する」、「所定のプログラムの起動」などが挙げられる。
【0071】
[データ格納部]
データ格納部90は、メモリ、ハードディスク、CD、DVDなどで実装される格納手段であり、所定のデータをその内部に記録する機能を有する。記録するデータの例としては、パターンマッチング部60がマッチング処理に用いる「挙動ベクトルのパターンとジェスチャーとの関連データ」、類似パターン識別部が類似パターンのジェスチャーを識別するために用いる「類似パターンの一覧とその識別方法のデータ」、コマンド出力部80がジェスチャーに対応するコマンドを選択するための「ジェスチャーとコマンドの対応データ」などである。
【0072】
以上、本実施形態に係るジェスチャー認識装置1000の機能要素について説明した。次は、このジェスチャー認識装置1000が行うジェスチャー認識方法について図8ないし図11のフロー図を参照して説明する。
【0073】
[物体のジェスチャー認識方法]
図8のフロー図を参照して説明する。最初に、フレーム画像受信部10が撮像装置からユーザの指先を撮像したフレーム画像をリアルタイムで受け取る(ステップS100)。フレーム画像を受け取ると、対象物体追跡部20がこのフレーム画像における指先の画素座標を検出し、時系列の画素座標データを生成する(ステップS200)。画素座標データを生成すると、平滑処理部30がこのデータに対して平滑処理を施す(ステップS300)。
【0074】
次に、挙動ベクトル特定部40が、各画素座標における挙動ベクトルを求め、図3(b)示すベクトルパターン1ないし9(パターン9は「静止状態」)の何れかに特定し、時系列の挙動ベクトルデータを生成する(ステップS400)。
【0075】
特定した挙動ベクトル群に対して特徴点解析部50が処理を行うが(ステップS500)、この処理手順については図9のフロー図を参照して詳細に説明する。
最初に、時系列の挙動ベクトルデータの中に同一の挙動ベクトルを示すデータブロックが連続して存在していないかどうかを調査する(ステップS510)。同一の挙動ベクトルを示す2つ以上のデータブロックが連続して存在していた場合には(ステップS510で「YES」)、それらの画素座標を単一のデータブロックにまとめて(ステップS520)、ステップS530の処理に進む。一方、同一の挙動ベクトルを有する2つ以上のデータブロックが連続して存在していない場合には(ステップS510で「NO」)、そのままステップS530の処理に進む。
【0076】
次に、時系列の挙動ベクトルデータの中に「パターン9」、すなわち「静止状態」と特定されたデータブロックが存在するかどうかを調査する(ステップS530)。「静止状態」のデータブロックが存在する場合には(ステップS530で「YES」)、該当の「静止状態」の持続時間T1を求め、さらに、その1つ前の挙動ベクトルの持続時間T2を求め、双方の持続時間T1およびT2を比較する(ステップS540)。
【0077】
比較の結果、持続時間T2の方が持続時間T1よりも長い場合には(ステップS550で「YES」)、該当の「静止状態」の画素座標は「角部」に該当すると判断する(S560)。そして、ステップS600の処理に進む。一方、持続時間T2の方が持続時間T1よりも短い場合には(ステップS550で「NO」)、該当の「静止状態」の画素座標は「終了点」に該当すると判断する(S570)。そして、ステップS600の処理に進む。
【0078】
また、挙動ベクトルデータの中に「静止状態」、すなわち「パターン9」と特定されたデータブロックが存在しない場合には(ステップS530で「NO」)、ステップS600の処理にそのまま進む。
【0079】
次の図8のステップS600の処理では、パターンマッチング部60がデータ格納部90にアクセスし、このデータ格納部90に記録されたジェスチャーパターンの中で処理対象の挙動ベクトル群と一致するものがあるかどうかを検索する(ステップS600)。この処理を図10のフロー図を参照して詳細に説明する。
【0080】
最初に、処理対象の画素座標群の中に「終了点」と特定されたデータブロックが存在するかどうかを調査する。「終了点」の画素座標が存在する場合には(ステップS601で「YES」)、その「終了点」の一つ前のデータ列を基点として、データ列の配列順序に遡ってデータ格納部90に記録されたジェスチャーパターンとマッチング処理を行う(ステップS602)。マッチング処理の結果、一致するジェスチャーパターンが存在する場合には(ステップS603で「YES」)、その一致したジェスチャーパターンを該当の挙動ベクトル群が示すジェスチャーであると特定する(ステップS604)。最後に「終了点」までのデータブロックの内容をすべてクリアして(ステップS605)、特定したジェスチャーを類似パターン識別部70に出力する(ステップS606)。
【0081】
一方、マッチング処理の結果、一致するジェスチャーパターンが存在しない場合には(ステップS603で「NO」)、「終了点」のデータ列より後のデータ列群を新たな処理対象とし(ステップS607)、「終了点」のデータ列までのデータをすべてクリアして(ステップS608)、再度ステップS601からの処理を繰り返す。
【0082】
また、処理対象の画素座標群の中に「終了点」と特定された画素座標が存在しない場合には(ステップS601で「NO」)、処理対象は終了点のないジェスチャーと判断して、最後のデータ列を基点として、データ列の配列順序に遡ってマッチング処理を行う(ステップS609)。マッチング処理の結果、一致するジェスチャーパターンが存在する場合には(ステップS610で「YES」)、その一致したジェスチャーパターンを該当の挙動ベクトル群のジェスチャーであると特定する(ステップS611)。最後に一時保管可能データ列数を超えるデータをクリアして(ステップS612)、特定したジェスチャーを類似パターン識別部70に出力する(ステップS606)。
【0083】
一方、マッチング処理の結果、一致するジェスチャーパターンが存在しない場合には(ステップS610で「NO」)、基点を次のデータ列に変更し、ステップS609以降の処理を繰り返す(ステップS613)。
【0084】
次に、図8に示す類似パターン識別部70が行うステップS700の処理は、図11のフロー図を参照して詳細に説明する。まず、パターンマッチング部60が出力したジェスチャーのデータを受け取ると、そのジェスチャーが類似パターンに該当するかどうかを調査する(ステップS710)。類似パターンに該当する場合には(ステップS710で「YES」)、該当するジェスチャーのデータを構成する画素座標のそれぞれの値を比較し、その相対値でジェスチャーを特定する(ステップS720)。なお、必要に応じて角部の座標も用いる。再特定したジェスチャーのデータはコマンド出力部80に出力する(ステップS730)。一方、類似パターンに該当しない場合には(ステップS710で「NO」)、該当するジェスチャーのデータをそのままコマンド出力部80に出力する(ステップS730)。
【0085】
再び図8を参照すると、類似パターン識別部70が出力したデータは、コマンド出力部80が受け取り、受け取ったジェスチャーのデータに対応するコマンドをデータ格納部90にアクセスして検索する。そして検索したコマンドを必要に応じて後段の処理装置が取り扱う形式に変換した後に当該後段の処理装置に出力する(ステップS800)。
以上が本実施形態に係るジェスチャー認識方法の処理手順である。
【0086】
本発明の一実施形態に係るジェスチャー認識装置1000が適応される処理装置は特に限定するものではない。例えばパーソナルコンピュータ、携帯端末、ATM、カーナビゲーション、自動販売機、携帯電話、OA機器等の様々な機器に適用してよい。
【0087】
なお、本発明の一実施形態にジェスチャー認識装置1000が有する機能は、特定のハードウェア資源またはソフトウェア処理に限定されないことに留意されたい。すなわち、この機能を実現できる限り、如何なるハードウェア(電子回路等)、ソフトウェア(プログラム)、あるいはそれらの組み合わせ等を用いてよい。
【0088】
上述した本発明の一実施形態に係るジェスチャー認識方法を、プログラムとして実装する場合には、このプログラムを外部のサーバ等から該方法を実行する情報処理装置にダウンロードするか、あるいはコンピュータ可読媒体の形態で分配されることが好ましい。コンピュータ可読媒体の例としては、CD−ROM、DVD、磁気テープ、フレキシブルディスク、光磁気ディスク、ハードディスク、メモリ媒体などが挙げられる。
【0089】
以上、本発明を図面に示した実施形態を用いて説明したが、これらは例示的なものに過ぎず、本技術分野の当業者ならば、本発明の範囲および趣旨から逸脱しない範囲で多様な変更および変形が可能なことは理解できるであろう。したがって、本発明の範囲は、説明された実施形態によって定められず、特許請求の範囲に記載された技術的趣旨により定められねばならない。
【符号の説明】
【0090】
10 フレーム画像受信部
20 対象物体追跡部
30 平滑処理部
40 挙動ベクトル特定部
50 特徴点解析部
60 パターンマッチング部
70 類似パターン識別部
80 コマンド出力部
90 データ格納部
1000 ジェスチャー認識装置
【特許請求の範囲】
【請求項1】
自由空間を移動する物体の軌跡によって表わされる所定のジェスチャーを認識するためのジェスチャー認識装置であって、
前記物体を撮像した動画像を受け取る画像受信手段と、
前記動画像を構成するフレーム画像における前記物体の位置する画素座標を求め、撮像時刻に基づく時系列の画素座標データを生成する物体追跡手段と、
前記求めた画素座標における前記物体の移動方向を求め、時系列の移動方向データを生成する移動方向特定部と、
予め用意した移動方向の組み合わせからなる複数のジェスチャーパターンの中から前記移動方向データと一致するジェスチャーパターンを検索し、一致したジェスチャーパターンを前記物体が表わしたジェスチャーと判断するパターンマッチング手段と、
を備え、
前記移動方向特定部は、前記物体の移動方向を上、右上、右、右下、下、左下、左、左上、静止状態の何れかに近似して求めることを特徴とするジェスチャー認識装置。
【請求項2】
前記移動方向特定部が前記物体の移動方向を近似する際に、前記右上、右下、左下、左上の移動方向の近似範囲を前記上、右、下、左の移動方向の近似範囲よりも広く設定することを特徴とする請求項1に記載のジェスチャー認識装置。
【請求項3】
前記移動方向データにおいて同一の移動方向が隣接する場合には、その隣接する移動方向同士を単一の移動方向にまとめる処理を行う補正手段をさらに備えることを特徴とする請求項1または2に記載のジェスチャー認識装置。
【請求項4】
前記補正手段は、前記移動方向が静止状態である場合には、該静止状態の持続時間と、該静止状態の1つ前の移動方向の持続時間とを比較し、該静止状態の持続時間の方が長い場合には該静止状態に対応する画素座標をジェスチャーの終了点と判断し、該静止状態の持続時間の方が短い場合には該静止状態に対応する画素座標をジェスチャーの角部と判断する処理を行うことを特徴とする請求項3に記載のジェスチャー認識装置。
【請求項5】
前記パターンマッチング手段は、前記終了点に該当するデータ列の1つ前のデータ列と、前記ジェスチャーパターンを構成するデータ列の最後の列と、を合わせた状態でマッチングを行うことを特徴とする請求項4に記載のジェスチャー認識装置。
【請求項6】
他のジェスチャーと混同を生ずるおそれのあるジェスチャーが挙げられた類似ジェスチャーリストと
前記パターンマッチング手段が特定したジェスチャーが前記類似ジェスチャーリストに含まれていた場合には、該ジェスチャーを構成する画素座標の相対位置を基にジェスチャーを再度特定する類似ジェスチャー再特定手段と、
をさらに備えることを特徴とする請求項1ないし5の何れか一項に記載のジェスチャー認識装置。
【請求項7】
前記物体追跡手段が生成した画素座標データに平滑処理を施す平滑処理手段をさらに備えることを特徴とする請求項1ないし6の何れか一項に記載のジェスチャー認識装置。
【請求項8】
自由空間を移動する物体の軌跡によって表わされる所定のジェスチャーを認識するためのジェスチャー認識方法であって、
前記物体を撮像した動画像を受け取る画像受信段階と、
前記動画像を構成するフレーム画像における前記物体の位置する画素座標を求め、撮像時刻に基づく時系列の画素座標データを生成する物体追跡段階と、
前記求めた画素座標における前記物体の移動方向を求め、時系列の移動方向データを生成する移動方向特定段階と、
予め用意した移動方向の組み合わせからなる複数のジェスチャーパターンの中から前記移動方向データと一致するジェスチャーパターンを検索し、一致したジェスチャーパターンを前記物体が表わしたジェスチャーと判断するパターンマッチング段階と、
を含み、
前記移動方向特定段階では、前記物体の移動方向を上、右上、右、右下、下、左下、左、左上、静止状態の何れかに近似して求めることを特徴とするジェスチャー認識方法。
【請求項9】
前記移動方向特定段階において、前記物体の移動方向を近似する場合には、前記右上、右下、左下、左上の移動方向の近似範囲を前記上、右、下、左の移動方向の近似範囲よりも広く設定することを特徴とする請求項8に記載のジェスチャー認識方法。
【請求項10】
前記移動方向特定段階と前記パターンマッチング段階との間に行われる補正段階をさらに含み、該補正段階において、前記移動方向データ内に同一の移動方向が隣接して存在する場合には、その隣接する移動方向同士を単一の移動方向にまとめる処理を行うことを特徴とする請求項8または9に記載のジェスチャー認識方法。
【請求項11】
前記補正段階において、前記移動方向が静止状態である場合には、該静止状態の持続時間と、該静止状態の1つ前の移動方向の持続時間とを比較し、該静止状態の持続時間の方が長い場合には該静止状態に対応する画素座標をジェスチャーの終了点と判断し、該静止状態の持続時間の方が短い場合には該静止状態に対応する画素座標をジェスチャーの角部と判断する処理を行うことを特徴とする請求項10に記載のジェスチャー認識方法。
【請求項12】
前記パターンマッチング段階において、前記終了点に該当するデータ列の1つ前のデータ列と、前記ジェスチャーパターンを構成するデータ列の最後の列と、を合わせた状態でマッチングを行うことを特徴とする請求項11に記載のジェスチャー認識方法。
【請求項13】
前記パターンマッチング段階で判断したジェスチャーが他のジェスチャーと混同を生ずるおそれのあるジェスチャーであるかどうかを判断する類似判断段階と、
前記類似判断段階で該ジェスチャーが他のジェスチャーと混同を生ずるおそれのあると判断された場合には、該ジェスチャーを構成する画素座標の相対位置を基にジェスチャーを再度特定する類似ジェスチャー再特定段階と、
をさらに含むことを特徴とする請求項8ないし12の何れか一項に記載のジェスチャー認識方法。
【請求項14】
前記物体追跡段階と移動方向特定段階との間に行われ、前記物体追跡段階で生成された画素座標データに平滑処理を施す平滑処理段階をさらに含むことを特徴とする請求項8ないし13の何れか一項に記載のジェスチャー認識方法。
【請求項15】
請求項8ないし14の何れか一項に記載のジェスチャー認識方法を実行する電子回路。
【請求項16】
請求項8ないし14の何れか一項に記載のジェスチャー認識方法を処理装置に実行させるプログラム。
【請求項17】
請求項16に記載のプログラムを格納したコンピュータ可読媒体。
【請求項1】
自由空間を移動する物体の軌跡によって表わされる所定のジェスチャーを認識するためのジェスチャー認識装置であって、
前記物体を撮像した動画像を受け取る画像受信手段と、
前記動画像を構成するフレーム画像における前記物体の位置する画素座標を求め、撮像時刻に基づく時系列の画素座標データを生成する物体追跡手段と、
前記求めた画素座標における前記物体の移動方向を求め、時系列の移動方向データを生成する移動方向特定部と、
予め用意した移動方向の組み合わせからなる複数のジェスチャーパターンの中から前記移動方向データと一致するジェスチャーパターンを検索し、一致したジェスチャーパターンを前記物体が表わしたジェスチャーと判断するパターンマッチング手段と、
を備え、
前記移動方向特定部は、前記物体の移動方向を上、右上、右、右下、下、左下、左、左上、静止状態の何れかに近似して求めることを特徴とするジェスチャー認識装置。
【請求項2】
前記移動方向特定部が前記物体の移動方向を近似する際に、前記右上、右下、左下、左上の移動方向の近似範囲を前記上、右、下、左の移動方向の近似範囲よりも広く設定することを特徴とする請求項1に記載のジェスチャー認識装置。
【請求項3】
前記移動方向データにおいて同一の移動方向が隣接する場合には、その隣接する移動方向同士を単一の移動方向にまとめる処理を行う補正手段をさらに備えることを特徴とする請求項1または2に記載のジェスチャー認識装置。
【請求項4】
前記補正手段は、前記移動方向が静止状態である場合には、該静止状態の持続時間と、該静止状態の1つ前の移動方向の持続時間とを比較し、該静止状態の持続時間の方が長い場合には該静止状態に対応する画素座標をジェスチャーの終了点と判断し、該静止状態の持続時間の方が短い場合には該静止状態に対応する画素座標をジェスチャーの角部と判断する処理を行うことを特徴とする請求項3に記載のジェスチャー認識装置。
【請求項5】
前記パターンマッチング手段は、前記終了点に該当するデータ列の1つ前のデータ列と、前記ジェスチャーパターンを構成するデータ列の最後の列と、を合わせた状態でマッチングを行うことを特徴とする請求項4に記載のジェスチャー認識装置。
【請求項6】
他のジェスチャーと混同を生ずるおそれのあるジェスチャーが挙げられた類似ジェスチャーリストと
前記パターンマッチング手段が特定したジェスチャーが前記類似ジェスチャーリストに含まれていた場合には、該ジェスチャーを構成する画素座標の相対位置を基にジェスチャーを再度特定する類似ジェスチャー再特定手段と、
をさらに備えることを特徴とする請求項1ないし5の何れか一項に記載のジェスチャー認識装置。
【請求項7】
前記物体追跡手段が生成した画素座標データに平滑処理を施す平滑処理手段をさらに備えることを特徴とする請求項1ないし6の何れか一項に記載のジェスチャー認識装置。
【請求項8】
自由空間を移動する物体の軌跡によって表わされる所定のジェスチャーを認識するためのジェスチャー認識方法であって、
前記物体を撮像した動画像を受け取る画像受信段階と、
前記動画像を構成するフレーム画像における前記物体の位置する画素座標を求め、撮像時刻に基づく時系列の画素座標データを生成する物体追跡段階と、
前記求めた画素座標における前記物体の移動方向を求め、時系列の移動方向データを生成する移動方向特定段階と、
予め用意した移動方向の組み合わせからなる複数のジェスチャーパターンの中から前記移動方向データと一致するジェスチャーパターンを検索し、一致したジェスチャーパターンを前記物体が表わしたジェスチャーと判断するパターンマッチング段階と、
を含み、
前記移動方向特定段階では、前記物体の移動方向を上、右上、右、右下、下、左下、左、左上、静止状態の何れかに近似して求めることを特徴とするジェスチャー認識方法。
【請求項9】
前記移動方向特定段階において、前記物体の移動方向を近似する場合には、前記右上、右下、左下、左上の移動方向の近似範囲を前記上、右、下、左の移動方向の近似範囲よりも広く設定することを特徴とする請求項8に記載のジェスチャー認識方法。
【請求項10】
前記移動方向特定段階と前記パターンマッチング段階との間に行われる補正段階をさらに含み、該補正段階において、前記移動方向データ内に同一の移動方向が隣接して存在する場合には、その隣接する移動方向同士を単一の移動方向にまとめる処理を行うことを特徴とする請求項8または9に記載のジェスチャー認識方法。
【請求項11】
前記補正段階において、前記移動方向が静止状態である場合には、該静止状態の持続時間と、該静止状態の1つ前の移動方向の持続時間とを比較し、該静止状態の持続時間の方が長い場合には該静止状態に対応する画素座標をジェスチャーの終了点と判断し、該静止状態の持続時間の方が短い場合には該静止状態に対応する画素座標をジェスチャーの角部と判断する処理を行うことを特徴とする請求項10に記載のジェスチャー認識方法。
【請求項12】
前記パターンマッチング段階において、前記終了点に該当するデータ列の1つ前のデータ列と、前記ジェスチャーパターンを構成するデータ列の最後の列と、を合わせた状態でマッチングを行うことを特徴とする請求項11に記載のジェスチャー認識方法。
【請求項13】
前記パターンマッチング段階で判断したジェスチャーが他のジェスチャーと混同を生ずるおそれのあるジェスチャーであるかどうかを判断する類似判断段階と、
前記類似判断段階で該ジェスチャーが他のジェスチャーと混同を生ずるおそれのあると判断された場合には、該ジェスチャーを構成する画素座標の相対位置を基にジェスチャーを再度特定する類似ジェスチャー再特定段階と、
をさらに含むことを特徴とする請求項8ないし12の何れか一項に記載のジェスチャー認識方法。
【請求項14】
前記物体追跡段階と移動方向特定段階との間に行われ、前記物体追跡段階で生成された画素座標データに平滑処理を施す平滑処理段階をさらに含むことを特徴とする請求項8ないし13の何れか一項に記載のジェスチャー認識方法。
【請求項15】
請求項8ないし14の何れか一項に記載のジェスチャー認識方法を実行する電子回路。
【請求項16】
請求項8ないし14の何れか一項に記載のジェスチャー認識方法を処理装置に実行させるプログラム。
【請求項17】
請求項16に記載のプログラムを格納したコンピュータ可読媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−123608(P2012−123608A)
【公開日】平成24年6月28日(2012.6.28)
【国際特許分類】
【出願番号】特願2010−273457(P2010−273457)
【出願日】平成22年12月8日(2010.12.8)
【出願人】(592161372)日本システムウエア株式会社 (31)
【Fターム(参考)】
【公開日】平成24年6月28日(2012.6.28)
【国際特許分類】
【出願日】平成22年12月8日(2010.12.8)
【出願人】(592161372)日本システムウエア株式会社 (31)
【Fターム(参考)】
[ Back to top ]