(57)【要約】【課題】ユーザの動作からユーザの意図する動作と意図しない動作とを判別し、空間ジェスチャにおける検出精度を向上することが可能な操作制御装置を提供する。【解決手段】本発明の操作制御装置は、操作対象を操作するために行われるユーザの動作によって移動する検出対象点と、検出対象点の上位に位置する上位点とを検出する対象点検出部と、上位点に対する検出対象点の相対位置を算出する相対位置算出部と、前時間における位置から現在の位置への検出対象点の移動量および移動方向を示す移動ベクトルを算出する移動情報算出部と、上位点に対する検出対象点への向きを順方向として、検出対象点の移動方向が順方向であるか否かを判定する動き方向判定部と、動き方向判定部により検出対象点の移動方向が順方向であると判定された場合に、ユーザの動作と関連付けられた操作処理を実行する実行部と、を備える。【選択図】図５
2011003136.tif 000002
【特許請求の範囲】
【請求項１】
操作対象を操作するために行われるユーザの動作によって移動する検出対象点と、前記検出対象点の上位に位置する上位点とを検出する対象点検出部と、
前記上位点に対する前記検出対象点の相対位置を算出する相対位置算出部と、
前時間における位置から現在の位置への前記検出対象点の移動量および移動方向を示す移動ベクトルを算出する移動情報算出部と、
前記上位点に対する前記検出対象点への向きを順方向として、前記検出対象点の移動方向が前記順方向であるか否かを判定する動き方向判定部と、
前記動き方向判定部により前記検出対象点の移動方向が順方向であると判定された場合に、前記ユーザの動作と関連付けられた操作処理を実行する実行部と、
を備える、操作制御装置。
【請求項２】
前記移動情報算出部は、前記検出対象点の移動加速度をさらに算出し、
前記動き方向判定部は、前記前記検出対象点の移動方向が前記順方向ではないと判定した場合であっても、前記検出対象点の移動加速度が所定の移動加速度以上である場合には、前記実行部にユーザの動作と関連付けられた操作処理を実行させる、請求項１に記載の操作制御装置。
【請求項３】
前記動き方向判定部は、前記上位点を始点とし前記検出対象点を終点とする基準ベクトルの前記操作対象を移動させる方向における成分ベクトルの向きを順方向として、前記検出対象点の移動ベクトルの前記操作対象を移動させる方向における成分ベクトルの向きが前記順方向であるか否かを判定する、請求項１または２に記載の操作制御装置。
【請求項４】
前記移動情報算出部は、前記移動ベクトルの第１成分ベクトルおよび第２成分ベクトルを算出し、
前記動き方向判定部は、前記第１成分ベクトルと前記第２方向成分ベクトルとのうち、いずれか大きい方に対応する方向を前記操作対象を移動させる方向と判定する、請求項３に記載の操作制御装置。
【請求項５】
前記動き方向判定部は、ユーザの動作と検出対象点との関係に応じて、前記上位点に対する前記検出対象点への向きにより規定される順方向を変更する、請求項１に記載の操作制御装置。
【請求項６】
前記動き方向判定部は、
前記上位点を始点とし前記検出対象点を終点とする基準ベクトルを含む所定の領域を、前時間において設定した順方向を引き続き順方向とする引き継ぎ領域として設定し、
前記引き継ぎ領域に前記検出対象点が位置するとき、前記検出対象の移動方向が前時間における順方向であるか否かを判定する、請求項１に記載の操作制御装置。
【請求項７】
操作対象を操作するために行われるユーザの動作によって移動する検出対象点を検出するステップと、
前記検出対象点の上位に位置する上位点を検出するステップと、
前記上位点に対する前記検出対象点の相対位置を算出するステップと、
前時間における位置から現在の位置への前記検出対象点の移動量および移動方向を示す移動ベクトルを算出するステップと、
前記上位点に対する前記検出対象点への向きを順方向として、前記検出対象点の移動方向が前記順方向であるか否かを判定するステップと、
前記動き方向判定部により前記検出対象点の移動方向が順方向であると判定された場合に、前記ユーザの動作と関連付けられた操作処理を実行するステップと、
を含む、操作制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作制御装置および操作制御方法に関する。
【背景技術】
【０００２】
ＩＴの発達に伴い、高度な機能を有する電子機器が普及してきた。電子機器の高機能化につれて、ユーザが電子機器に機能を実行させるための指示の内容も多様化している。このため、分かりやすく操作性に優れたユーザインタフェース（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ：ＵＩ）の要求が高まっている。例えば、パーソナルコンピュータ（以下、「ＰＣ」とする。）においては、従来、ユーザがキーボードによりコマンド文字列を入力するキャラクタベースのＵＩが主として用いられていた。しかし、現在では、表示画面に提示されたアイコンやウィンドウ等の画像を、表示画面上のポインタをユーザがマウス等のポインティングデバイスにより操作して指示を入力するグラフィカルユーザインタフェース（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ：ＧＵＩ）が広く利用されている。
【０００３】
ＧＵＩを用いることによって、ＰＣ等の電子機器の操作性は向上した。しかし、マウス等の操作に慣れておらず抵抗を感じるユーザもおり、すべてのユーザにとって操作性のよいものではない。そこで、より直感的に、自然な感覚で指示を入力することの可能なＵＩの開発が要求されている。例えば、空間においてユーザの体の一部を動作させる動作と、その動作から直感的に想像しやすい操作内容とを関連付けておき、ユーザが体を動かすことで所定の操作を実行できるようにすることができる。
【０００４】
例えば、図９に示すように、画面１０上に音楽や映像などを再生、早送り、巻き戻し、停止等の操作を行う再生操作部１２や、音量を操作する音量調節部１４等が表示されているとする。このとき、ユーザは、指Ｆを左右に動かすことにより、音楽の再生状態を変更したり音量を調節したりする等再生操作部１２や音量調節部１４を操作することができる。また、例えば、ポインタ等を上下左右に移動させるとともに選択・決定を行うことができる５ｗａｙキーによる上下左右の移動操作を、空間上の腕や手のひら、指等の移動ジェスチャに割り当てて操作可能とした制御システムが開示されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３１７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、腕や指等を上下左右に移動させるような移動ジェスチャには、必ず、元の位置に戻す動作が発生する。すなわち、例えば指を右方向に繰り返し移動させるときには、右側に移動させる動作の終端位置から始端位置に向かって、指を左方向に移動させる必要がある。上記の従来の入力インタフェースでは、このようなユーザが意図しない元の位置に戻す操作を、意図する移動方向と逆方向の移動ジェスチャとして誤検出するという問題があった。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ユーザの動作からユーザの意図する動作と意図しない動作とを判別し、空間ジェスチャにおける検出精度を向上することが可能な、新規かつ改良された操作制御装置および操作制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、操作対象を操作するために行われるユーザの動作によって移動する検出対象点と、検出対象点の上位に位置する上位点とを検出する対象点検出部と、上位点に対する検出対象点の相対位置を算出する相対位置算出部と、前時間における位置から現在の位置への検出対象点の移動量および移動方向を示す移動ベクトルを算出する移動情報算出部と、上位点に対する検出対象点への向きを順方向として、検出対象点の移動方向が順方向であるか否かを判定する動き方向判定部と、動き方向判定部により検出対象点の移動方向が順方向であると判定された場合に、ユーザの動作と関連付けられた操作処理を実行する実行部と、を備える、操作制御装置が提供される。
【０００９】
本発明によれば、ユーザの動作の判定の対象となる検出対象点とその上位点との相対位置に対して、検出対象点の移動ベクトルの向きが順方向であるか否かを動き方向判定部により判定する。検出対象点の移動ベクトルの向きが順方向であれば、実行部によりユーザの動作と関連付けられた操作処理が実行され、検出対象点の移動ベクトルの向きが逆方向であれば、実行部によりユーザの動作と関連付けられた操作処理は実行されない。これにより、ユーザが意図する動作と意図しない動作とを区別し、空間ジェスチャにおける検出精度を向上させることができる。
【００１０】
移動情報算出部は、検出対象点の移動加速度をさらに算出することもできる。このとき、動き方向判定部は、検出対象点の移動方向が順方向ではないと判定した場合であっても、検出対象点の移動加速度が所定の移動加速度以上である場合には、実行部にユーザの動作と関連付けられた操作処理を実行させる。
【００１１】
また、動き方向判定部は、上位点を始点とし検出対象点を終点とする基準ベクトルの操作対象を移動させる方向における成分ベクトルの向きを順方向としてもよい。このとき、動き方向判定部は、このように決定された順方向を用いて、検出対象点の移動ベクトルの操作対象を移動させる方向における成分ベクトルの向きが順方向であるか否かを判定する。
【００１２】
さらに、移動情報算出部は、移動ベクトルの第１成分ベクトルおよび第２成分ベクトルを算出することもできる。このとき、動き方向判定部は、第１成分ベクトルと第２方向成分ベクトルとのうちいずれか大きい方に対応する方向を、操作対象を移動させる方向と判定する。
【００１３】
また、動き方向判定部は、ユーザの動作と検出対象点との関係に応じて、上位点に対する検出対象点への向きにより規定される順方向を変更してもよい。
【００１４】
さらに、動き方向判定部は、上位点を始点とし検出対象点を終点とする基準ベクトルを含む所定の領域を、前時間において設定した順方向を引き続き順方向とする引き継ぎ領域として設定することもできる。このとき、動き方向判定部は、引き継ぎ領域に検出対象点が位置するとき、検出対象の移動方向が前時間における順方向であるか否かを判定する。
【００１５】
また、上記課題を解決するために、本発明の別の観点によれば、操作対象を操作するために行われるユーザの動作によって移動する検出対象点を検出するステップと、検出対象点の上位に位置する上位点を検出するステップと、上位点に対する検出対象点の相対位置を算出するステップと、前時間における位置から現在の位置への検出対象点の移動量および移動方向を示す移動ベクトルを算出するステップと、上位点に対する検出対象点への向きを順方向として、検出対象点の移動方向が順方向であるか否かを判定するステップと、動き方向判定部により検出対象点の移動方向が順方向であると判定された場合に、ユーザの動作と関連付けられた操作処理を実行するステップと、を含む、操作制御方法が提供される。
【発明の効果】
【００１６】
以上説明したように本発明によれば、ユーザの動作からユーザの意図する動作と意図しない動作とを判別し、空間ジェスチャにおける検出精度を向上することが可能な、操作制御装置および操作制御方法を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】ユーザのジェスチャにより操作される画面構成の一例を示す説明図である。
【図２】本発明の実施形態にかかる操作制御装置のハードウェア構成を示すブロック図である。
【図３】同実施形態にかかる操作制御装置の機能構成を示す機能ブロック図である。
【図４】検出対象関節と上位関節との関係を示す説明図である。
【図５】同実施形態にかかる操作制御装置による操作制御方法を示すフローチャートである。
【図６】動きの順方向についての説明図である。
【図７】手首を検出対象関節とするときの操作処理の有効化の可否を示す説明図である。
【図８】指の付け根を検出対象関節とするときの操作処理の有効化の可否を示す説明図である。
【図９】従来の移動ジェスチャによる操作方法を示す説明図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１９】
なお、説明は以下の順序で行うものとする。
１．操作制御装置により操作制御される画面の操作例
２．操作制御装置の構成
３．操作制御装置による操作制御方法
【００２０】
＜１．操作制御装置により操作制御される画面の操作例＞
まず、図１に基づいて、本発明の実施形態にかかる操作制御装置によりユーザのジェスチャを認識して操作制御されている画面操作例について説明する。なお、図１は、ユーザのジェスチャにより操作される画面構成の一例を示す説明図である。
【００２１】
本実施形態では、テレビやゲームのインタフェースとして一般的に使用されている５ｗａｙキーによる操作を想定している。５ｗａｙキーを用いると、例えば、画面に表示されたアイコン等のオブジェクトの表示を上下左右にスクロールさせたり、オブジェクトを選択するポインタを移動させたりする操作やオブジェクトの選択・決定操作を容易に行うことができる。本実施形態にかかる操作制御装置では、このような５ｗａｙキーにより実行可能な操作を、ユーザのジェスチャにより実行可能とする。
【００２２】
例えば、本実施形態にかかる操作制御装置は、上下左右方向への手Ｈのフリックジェスチャを検出して、その方向に応じた画面インタラクションを行うことができる。画面インタラクションとしては、例えば図１に示すように、画面２００に表示されているコンテンツ一覧において、上下左右にコンテンツ２１０をスクロールさせるという操作が考えられる。手Ｈが右方向に移動されると、コンテンツ一覧が右方向にスクロールされ、手Ｈが左方向に移動されると、コンテンツ一覧が左方向にスクロールされる。本実施形態にかかる操作制御装置では、手Ｈのフリックジェスチャにおける手戻り操作の誤検出を防ぐことを目的としている。手戻り動作の誤検出を防ぐことにより、ユーザが意図しない動作に対して操作処理は実行されず、操作性を向上することができる。
【００２３】
なお、本実施形態では、コンテンツの決定や選択等の操作については、例えば手を握ったり開いたりするといった他の任意のジェスチャによって行うものとし、手Ｈ等を上下左右に移動させるジェスチャによってはスクロール処理のみが実行されるものとする。以下、ジェスチャの誤検出を防止することの可能な操作制御装置の構成とこれによる操作制御方法について詳細に説明していく。
【００２４】
＜２．操作制御装置の構成＞
［ハードウェア構成］
まず、図２に基づいて、本実施形態にかかる操作制御装置１００のハードウェア構成について説明する。なお、図２は、本実施形態にかかる操作制御装置１００のハードウェア構成を示すブロック図である。
【００２５】
本実施形態にかかる操作制御装置１００は、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２と、不揮発性メモリ１０３とを備える。さらに、操作制御装置１００は、ステレオカメラ１０４と、表示装置１０５とを備える。
【００２６】
ＣＰＵ１０１は、演算処理装置および制御装置として機能し、各種プログラムに従って操作制御装置１００内の動作全般を制御する。また、ＣＰＵ１０１は、マイクロプロセッサであってもよい。ＲＡＭ１０２は、ＣＰＵ１０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。これらはＣＰＵバスなどから構成されるホストバスにより相互に接続されている。不揮発性メモリ１０３は、ＣＰＵ１０１が使用するプログラムや演算パラメータ等を記憶する。不揮発性メモリ１０３は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等を用いることができる。
【００２７】
ステレオカメラ１０４は、奥行方向の位置を認識可能な入力デバイスである。ステレオカメラ１０４は、２つのカメラによって異なる方向からユーザにより動かされる複数の入力部位を同時撮像することにより、撮像画像の奥行方向の情報も記録することができる。ステレオカメラ１０４の代わりに、例えば視差を利用した距離計であるレンジファインダー等を用いてもよい。ステレオカメラ１０４は、ユーザの行うジェスチャを撮像する撮像手段と、撮像手段により撮像された撮像画像をＣＰＵ１０１に出力する入力制御回路などから構成されている。ユーザの行うジェスチャをステレオカメラ１０４で取得することにより、操作制御装置１００に対して各種のデータを入力したり処理動作を指示したりすることができる。
【００２８】
表示装置１０５は、情報を出力する出力装置の一例である。表示装置１０５として、例えばＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ装置、液晶ディスプレイ（ＬＣＤ）装置、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）装置などを用いることができる。
【００２９】
［機能構成］
次に、図３および図４に基づいて、本実施形態にかかる操作制御装置１００の機能構成について説明する。なお、図３は、本実施形態にかかる操作制御装置１００の機能構成を示す機能ブロック図である。図４は、検出対象関節と上位関節との関係を示す説明図である。以下では、ユーザが腕等を上下左右に動かすことにより画面の表示内容をスクロールさせる場合について説明する。本実施形態にかかる操作制御装置１００は、画面をスクロールさせる方向および速さを決定するために検出対象点を検出し、検出対象点とその上位点との関係からジェスチャに関連付けられた操作処理の実行の可否を判定する。本実施形態では、検出対象および上位点は、腕や手に備わる関節とするが、例えば人体の他の部位に備わる関節や、ユーザにより操作されるリモートコントローラ等の物体等を含む部位を設定することもできる。
【００３０】
本実施形態にかかる操作制御装置１００は、入力情報取得部１１０と、部位検出部１２０と、相対位置算出部１３０と、移動情報算出部１４０と、動き方向判定部１５０と、実行部１６０と、設定記憶部１７０とを備える。
【００３１】
入力情報取得部１１０は、ユーザにより動かされる複数の部位を検出する機能部であって、図２のステレオカメラ１０４に相当する。入力情報取得部１１０は、ユーザのジェスチャに対応付けられた操作処理を実行の可否を判定するとともに、操作処理における操作量を決定するために用いる部位を認識する画像を取得する。入力情報取得部１１０により取得された撮像画像は、部位検出部１２０に出力される。
【００３２】
部位検出部１２０は、撮像画像に含まれる腕や手などの部位や部位間にある関節を認識する。部位検出部１２０は、入力情報取得部１１０から入力された撮像画像の奥行情報および任意の画像認識手法を用いて画面を操作するユーザの検出対象関節および上位関節を認識する。奥行情報は、例えば対象物の３次元的な位置を測定可能なステレオ画像処理等を用いて取得することができる。また、部位や関節は、例えば形状検出や肌色検出、テクスチャマッチング等の画像処理手法を用いてその位置を推定することにより認識できる。
【００３３】
ここで、検出対象関節および上位関節について説明する。上述したように、操作制御装置１００は、ユーザのジェスチャを特定するためにその動きが検出される検出対象点と、検出対象点に対して動きの軸となる上位点とを認識する。本実施形態では、検出対象点および上位点となり得る箇所を人体の任意の関節とする。例えば、図４に示すように、腕の関節である肩ＡＡ、肘ＡＢ、手首ＡＣ、指の付け根ＡＤ、指Ｆの中から検出対象点である検出対象関節を設定することができる。また、上位点である上位関節は、各関節のより肩に近い側に隣接して位置する関節と規定される。すなわち、指Ｆの上位関節は指の付け根ＡＤ、指の付け根ＡＤの上位関節は手首ＡＣ、手首ＡＣの上位関節は肘ＡＢ、肘ＡＢの上位関節は肩ＡＡとなる。
【００３４】
検出対象関節は例えば設定記憶部１７０に予め設定されており、検出対象関節が定まることにより上位関節は決定する。部位検出部１２０は、撮像画像から特徴点としての関節を抽出し、既存の画像認識手法を用いて検出対象関節およびその上位関節を特定する。そして、部位検出部１２０は、検出対象関節および上位関節の位置情報を相対位置算出部１３０および移動情報算出部１４０へ出力する。
【００３５】
相対位置算出部１３０は、検出対象関節および上位関節の相対位置を算出する。相対位置算出部１３０は、部位検出部１２０から入力された検出対象関節および上位関節の位置情報から、上位関節を始点として検出対象関節を終点とするベクトル（以下、「基準ベクトル」という。）を算出する。基準ベクトルは、ユーザが行ったジェスチャに関連付けられた操作処理を実行するか否かを判定するために用いられる。相対位置算出部１３０は、算出した基準ベクトルを相対位置情報として動き方向判定部１５０へ出力する。
【００３６】
移動情報算出部１４０は、検出対象関節の移動量、移動方向、移動速度、移動加速度等の移動情報を算出する。移動情報算出部１４０は、部位検出部１２０により検出された検出対象関節について、前時間における位置から現時点での位置の移動量および移動方向を算出し、動き方向判定部１５０へ出力する。移動情報算出部１４０により算出された検出対象関節の移動量および移動方向は、実行される操作処理における操作対象の操作量および操作方向を決定する情報として用いられる。また、移動情報算出部１４０は、動き方向判定部１５０からの要求により、検出対象関節の移動加速度を算出して、動き方向判定部１５０へ出力する。
【００３７】
動き方向判定部１５０は、検出対象関節の動き方向が順方向であるか否かを判定する。動き方向判定部１５０は、まず、操作処理の有効化の可否の判定基準となる動きの順方向を決定する。動き方向判定部１５０は、相対位置算出部１３０から入力された相対位置情報から、上位関節から検出対象関節へ向かう基準ベクトルの向きを動きの順方向として決定する。そして、動き方向判定部１５０は、移動情報算出部１４０から入力された検出対象関節の移動方向と決定した動きの順方向とを比較し、比較結果に応じて実行部１６０へ操作実行指示を検出対象関節の移動情報とともに出力する。すなわち、動き方向判定部１５０は、検出対象関節の動き方向が順方向であるか否かを判定することによって、その動きがユーザの意図するジェスチャであるか否かを推定している。
【００３８】
また、動き方向判定部１５０は、比較結果に応じて、移動情報算出部１４０に検出対象関節の移動加速度を算出させて取得することもできる。このとき、動き方向判定部１５０は、検出対象関節の移動加速度を考慮して、実行部１６０に対して操作実行指示を出力するか否かを判定することができる。
【００３９】
実行部１６０は、ユーザにより行われたジェスチャに対応する操作処理を実行する。実行部１６０は、動き方向判定部１５０によって検出対象関節の動きが、ユーザが意図して行ったジェスチャであると判定した場合に、動き方向判定部１５０の操作実行指示によって機能する。実行部１６０は、ユーザの行うジェスチャに対応付けられた操作処理を検索するジェスチャ検索エンジンであって、動き方向判定部１５０から入力された検出対象関節の移動情報から、ジェスチャに対応する操作処理を記憶部（図示せず。）から検索し、実行する。実行部１６０により実行された操作処理は、例えば、ディスプレイやスピーカ等の出力部（図示せず。）の出力情報に反映される。
【００４０】
設定記憶部１７０は、操作制御処理に用いられる情報を記憶する記憶部であって、図２の不揮発性メモリに相当する。設定記憶部１７０は、例えば、検出対象点および上位点がどの関節や物体であるか、人体の部位や関節等の位置をモデル化した人体構造モデル等の設定情報を記憶する。
【００４１】
以上、本実施形態にかかる操作制御装置１００の機能構成について説明した。次に、図５〜図８に基づいて、本実施形態にかかる操作制御装置１００による操作制御方法を説明する。なお、図５は、本実施形態にかかる操作制御装置１００による操作制御方法を示すフローチャートである。図６は、動きの順方向についての説明図である。図７は、手首を検出対象関節とするときの操作処理の有効化の可否を示す説明図である。図８は、指の付け根を検出対象関節とするときの操作処理の有効化の可否を示す説明図である。
【００４２】
＜３．操作制御方法＞
上述したように、操作制御装置１００は、検出対象関節および上位関節を特定して、操作処理の実行の可否を判定し、ユーザが行ったジェスチャを認識して当該ジェスチャに関連付けられた操作処理を実行する。このため、操作処理装置１００による操作制御方法では、まず、部位検出部１２０により検出対象関節の位置を検出する（ステップＳ１００）。部位検出部１２０は、上述した任意の画像認識手法を用いて、入力情報取得部１１０により取得された撮像画像から特徴点である関節を抽出する。そして、部位検出部１２０は、抽出した各関節から検出対象関節の位置を検出する。検出対象関節の特定は、上述した任意の画像処理手法を用いて行うことができ、例えば記憶部１７０に記憶された人体構造モデルを参照して、検出対象関節として設定された関節の位置を推定することができる。
【００４３】
次いで、部位検出部１２０により検出対象関節に対する上位関節の位置を検出する（ステップＳ１１０）。部位検出部１２０は、撮像画像から抽出した特徴点のうち、検出対象関節との位置関係から検出対象関節に対して肩方向に隣接する特徴点を上位関節として検出する。このとき、検出対象関節と上位関節とが奥行方向に重なって上位関節が検出できなかった場合には、部位検出部１２０は、人体の重心位置から尤もらしい位置を上位関節の位置として推定する。部位検出部１２０は、ステップＳ１１０で算出した検出対象関節の空間における位置情報および上位関節の空間における位置を位置情報として、相対位置算出部１３０および移動情報算出部１４０へ出力する。
【００４４】
さらに、相対位置算出部１３０は、検出対象関節と上位関節との相対位置を算出する（ステップＳ１２０）。検出対象関節と上位関節との相対位置は、基準ベクトルとして算出することができ、ユーザの動作が意図して行われた動作であるか否かを判別するために用いられる。例えば、図６に、手首を検出対象関節としたときのフリックジェスチャの様子を示す。ここでフリックジェスチャとは、空間にて画面上に表示されたオブジェクト一覧やＷｅｂサイトなどを軽く払ったりさすったりする動作をいう。フリックジェスチャは、例えば図１に示したように、コンテンツ一覧等を、指等を払った方向にスクロールさせる操作に対応付けることができる。
【００４５】
図６（ａ）は、検出対象関節Ａ１である手首を左から右にフリックした場合を示す。このとき、検出対象関節Ａ１は、検出対象関節Ａ１の上位関節Ａ２である肘より右側に位置する。一方、図６（ｂ）に示すように、手首を右から左にフリックした場合には、検出対象関節Ａ１は、上位関節Ａ２より左側に位置する。なお、本実施形態では、ユーザが正面を向いた状態を基準として、検出対象関節Ａ１が上位関節Ａ２に対して左右いずれの方向に位置するかを判定している。図６より、一般に、ユーザがフリックしたい方向は、上位関節Ａ２に対する検出対象関節Ａ１の位置方向と同一であることがわかる。すなわち、この向きは、上位関節Ａ２の鉛直方向に直交する水平方向における位置Ｌ２から検出対象関節Ａ１の水平方向における位置Ｌ１へ向かう向きである。そこで、相対位置算出部１３０は、検出対象関節Ａ１と上位関節Ａ２との位置関係からユーザがフリックしたい方向を推定するため、検出対象関節Ａ１と上位関節Ａ２との相対位置を算出する。
【００４６】
その後、移動情報算出部１４０は、検出対象関節の移動情報を算出する（ステップＳ１３０）。移動情報算出部１４０は、前時間において算出された検出対象関節の位置と現時点における検出対象関節の位置とから、検出対象関節の移動量および移動方向（すなわち、移動ベクトル）を算出する。算出された移動情報は、移動情報算出部１４０から動き方向判定部１５０へ出力される。
【００４７】
次いで、動き方向判定部１５０により、検出対象関節の移動ベクトルが検出対象関節の上位関節に対する相対位置と順方向であるか否かを判定する（ステップＳ１４０）。動き方向判定部１５０は、まず、上位関節に対する検出対象関節の位置する方向を順方向とする。そして、動き方向判定部１５０は、検出対象関節の移動ベクトルの方向が順方向であるか否かを判定する。
【００４８】
順方向であるか否かの判定は、例えば検出対象関節の移動ベクトルと、上位関節に対する検出対象関節の位置を表す基準ベクトルとのなす角に基づいて行うことができる。このとき、検出対象関節の移動ベクトルと基準ベクトルとの方向が厳密に一致しなくとも、所定の範囲内であれば順方向であると判定することができる。例えば、上位関節での重力方向上向きを基準（０°）として、移動ベクトルの傾きθが０°＜θ＜１８０°の領域にある場合と−１８０°＜θ＜０°の領域にある場合とによって、移動ベクトルの方向を規定することができる。言い換えると、移動ベクトルを鉛直方向と鉛直方向に直交する水平方向との成分に分けたとき、移動ベクトルの水平成分の向きを移動ベクトルの方向とすることができる。
【００４９】
例えば、手首を検出対象関節とし、肘を上位関節とした場合の、検出対象関節の動きの順方向および逆方向を図７に示す。図７では、上位関節Ａ２の水平方向の位置Ｌ２から検出対象関節Ａ１の水平方向の位置Ｌ１へ向かう向きが順方向となっている。
【００５０】
図７（ａ）に示すように、ユーザに向かって検出対象関節Ａ１が上位関節Ａ２より左側に位置するときに、検出対象関節Ａ１が上位関節Ａ２からさらに離隔するように左方向へ移動された場合、検出対象関節Ａ１の移動ベクトルは上位関節に対する方向と順方向となる。したがって、かかる動作はユーザが意図して行ったものであると推定され、このジェスチャに関連付けられた操作処理は有効化される。一方、図７（ｂ）に示すように、ユーザに向かって検出対象関節Ａ１が上位関節より左側に位置するときに、検出対象関節Ａ１が上位関節Ａ２側に向かうように右方向へ移動された場合には、当該検出対象関節Ａ１の移動ベクトルは上位関節に対する方向の逆方向となる。この場合、かかる動作はユーザが移動しない動作であると推定され、このジェスチャに関連付けられた操作処理は実行されない。
【００５１】
同様に、例えば、指の付け根を検出対象関節とし、手首を上位関節とした場合の、検出対象関節の動きの順方向および逆方向を図８に示す。図８においても、上位関節Ａ２の水平方向の位置Ｌ２から検出対象関節Ａ１の水平方向の位置Ｌ１へ向かう向きが順方向となっている。
【００５２】
図８（ａ）に示すように、ユーザに向かって検出対象関節Ａ１が上位関節Ａ２より左側に位置するときに、検出対象関節Ａ１が上位関節Ａ２からさらに離隔するように左方向へ移動された場合には、当該検出対象関節Ａ１の移動ベクトルは上位関節に対する方向と順方向となる。したがって、かかる動作はユーザが意図して行ったものであると推定され、このジェスチャに関連付けられた操作処理は有効化される。一方、図８（ｂ）に示すように、ユーザに向かって検出対象関節Ａ１が上位関節より左側に位置するときに、検出対象関節Ａ１が上位関節Ａ２側に向かうように右方向へ移動された場合には、当該検出対象関節Ａ１の移動ベクトルは上位関節に対する方向の逆方向となる。この場合、かかる動作はユーザが移動しない動作であると推定され、このジェスチャに関連付けられた操作処理は実行されない。
【００５３】
このように、検出対象関節の移動ベクトルの方向が基準ベクトルの方向と順方向となる、動きとして自然な動作が検出された場合には、ユーザの意図する動作と判断して、ジェスチャに関連付けられた操作処理を有効化する。このようにして、ユーザが意図する動作と意図しない動作とを区別することができ、空間ジェスチャにおける検出精度を向上させることができる。
【００５４】
そして、検出対象関節の移動ベクトルが基準ベクトルと順方向であると判定した場合には、動き方向判定部１５０は、実行部１６０に対して検出対象関節の移動ベクトルおよび移動加速度とともに操作処理実行指示を出力する（ステップＳ１５０）。実行部１６０は、操作処理実行指示を受けて、検出対象関節の動きから推定されるジェスチャに対応付けられた操作処理を記憶部（図示せず。）から検索して、実行する（ステップＳ１６０）。
【００５５】
一方、ステップＳ１４０にて検出対象関節の移動ベクトルが基準ベクトルと順方向ではないと判定した場合には、動き方向判定部１５０は、移動ベクトルが加速する動作であるか否か判定する（ステップＳ１７０）。移動ベクトルが逆方向の場合、ユーザが意図しない動作とみなされてしまうが、そのような場合であってもユーザが意図した動作も起こり得る。そこで、ユーザが意図したにも関わらずステップＳ１４０において意図しない動作とみなされた動作も許容するため、検出対象関節の移動加速度が所定の値以上であるか否かを判定する。
【００５６】
検出対象関節を移動させてフリックジェスチャを行う場合、一般に、操作する方向に検出対象関節を移動させる動作は、検出対象関節を操作方向に移動させた後、元の位置に戻す動作に比べて加速度が大きい。この特性を利用して、移動加速度が所定の値以上である場合にはユーザが意図しない動作とみなされた動作もユーザが意図する動作とする。この場合には、ステップＳ１５０およびＳ１６０の処理を行い、当該ジェスチャに対応付けられた操作処理を実行する。一方、検出対象関節の移動加速度が所定の値より小さい場合には、当該ジェスチャに対応付けられた操作処理は実行されず、そのまま操作制御処理を終了する。
【００５７】
以上、本実施形態にかかる操作制御装置１００による操作制御方法について説明した。本実施形態によれば、ジェスチャ判定の対象となる検出対象関節とその上位関節との相対位置に対して、検出対象関節の移動が順方向であればそのジェスチャに対応付けられた操作処理の実行を有効化する。一方、検出対象関節とその上位関節との相対位置に対して、検出対象関節の移動が順方向ではない場合には、そのジェスチャに対応付けられた操作処理の実行を無効化する。これにより、ユーザの意図する動作と意図しない動作とを判別することができ、空間ジェスチャにおける検出精度を向上させることができる。
【００５８】
また、検出対象関節とその上位関節との相対位置に対して、検出対象関節の移動が順方向ではない場合であっても、その動作の加速度が所定の値以上である場合には、ユーザの意図する動作とみなして操作処理の実行を有効化することもできる。これにより、ユーザのジェスチャによる操作処理の実行を許容する範囲が広がり、ユーザの意図する動作をより的確に判別することができる。なお、図５に示した操作制御は、ジェスチャ認識が必要となる任意の時点で実行される。
【００５９】
［基準ベクトル引き継ぎ領域の設定］
本実施形態では、検出対象関節の移動ベクトルの方向が基準ベクトルの方向と順方向となる場合、あるいは検出対象関節の移動ベクトルの方向が基準ベクトルの方向と逆方向であっても所定の移動加速度以上で検出対象関節が移動している場合にのみ、このジェスチャに関連付けられた操作処理を実行した。このとき、検出対象関節の移動ベクトルの方向が基準ベクトルの方向と逆方向であっても、逆方向に移動する範囲が所定の範囲内である間は前時間における操作処理の有効性を引き継ぐようにしてもよい。
【００６０】
例えば、図７（ａ）に示すように、ユーザに向かって、基準ベクトルが左方向を向いている場合、上位関節Ａ２の水平方向の位置を示すＬ２より左側の領域において検出対象関節Ａ１が左方向に移動した場合には操作処理は有効化される。しかし、検出対象関節Ａ１を繰り返し左方向にフリックさせたいが、腕の振り方によっては位置Ｌ２の右側の領域から位置Ｌ２を通過して左方向に検出対象関節Ａ１を移動させるようになってしまうこともある。このような場合、検出対象関節Ａ１が位置Ｌ２の右側の領域にある場合でも、位置Ｌ２を通過するまでの基準ベクトルに対する逆方向の検出対象関節Ａ２の動きによる操作も有効となるように、前の基準ベクトルを引き継ぐ領域を設定することもできる。
【００６１】
図７（ａ）においては、上位関節Ａ２の位置Ｌ２の右側に位置Ｌ３を設け、位置Ｌ２から位置Ｌ３までの間では前の基準ベクトルを引き継いで、動き判定部１５０は操作処理の有効性を判定するようにしてもよい。この場合、検出対象関節Ａ１が位置Ｌ２と位置Ｌ３の間に位置し、左方向に移動している場合、実際の基準ベクトルは右方向であり、検出対象関節Ａ１の動きは逆方向であると判定されるが、前の基準ベクトルが左方向である場合には、順方向と判定される。これにより、繰り返し行われるフリックジェスチャをより的確に認識することができ、ユーザの動作に即した操作処理の実行が可能となる。
【００６２】
［基準ベクトルの変更］
また、上述の説明では、検出対象関節と上位関節とにより決定される基準ベクトルに基づき、検出対象関節の移動ベクトルの方向から操作処理の有効性を判断した。しかし、検出対象点および上位点の設定や検出対象点の移動方向によってはその判断が困難となる場合がある。例えば、検出対象点を指の付け根とし、上位点を手首とした場合に、ユーザが指の付け根を上下方向に移動させるとする。このとき、基準ベクトルを上記と同様、上位点である手首を始点として検出対象点である指の付け根を終点とするベクトルにより規定すると、自然な姿勢で指の付け根を動かすと基準ベクトルはほぼ常に鉛直上向き方向となる。したがって、鉛直下向きに検出対象点を動かす動作による操作処理が有効化され難くなる。
【００６３】
このような場合には、基準ベクトルを変更するようにしてもよい。例えば、上位点である手首を支点として検出対象点である指の付け根を上下に移動させたときに、指の付け根を鉛直上向きに最大移動させたときと鉛直下向きに最大移動させたときの中間位置を基準ベクトルとして設定することができる。このとき、基準ベクトルは、動作前にキャリブレーションして決定し、設定記憶部１７０に予め記憶させておく。動作に応じて基準ベクトルの設定を変更することにより、ユーザが意図して動作を行っているか否かを的確に判定することができる。また、ユーザは自然な姿勢で動作することができる。
【００６４】
なお、検出対象点を左右にフリックさせる場合と上下にフリックさせる場合との判別は、例えば、移動ベクトルの重力成分と水平成分の長さを比較して、長い方をフリック方向として決定することができる。
【００６５】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００６６】
１００    操作制御装置
１１０    入力情報取得部
１２０    部位検出部
１３０    相対位置算出部
１４０    移動情報算出部
１５０    動き方向判定部
１６０    実行部
１７０    設定記憶部
Ａ１      検出対象関節
Ａ２      上位関節
【図１】
2011003136.tif 000003
【図２】
2011003136.tif 000004
【図３】
2011003136.tif 000005
【図４】
2011003136.tif 000006
【図５】
2011003136.tif 000007
【図６】
2011003136.tif 000008
【図７】
2011003136.tif 000009
【図８】
2011003136.tif 000010
【図９】
2011003136.tif 000011