(57)【特許請求の範囲】
【請求項１】
画像を入力する入力手段と、
ジェスチャ表現の基になる１以上の形状を記憶した記憶手段と、
前記記憶手段に記憶された形状と一致する形状が、前記入力手段により入力された画像内に含まれているか否かを検出する形状認識部と、
前記記憶手段に記憶された形状と一致する形状が、前記入力された画像内に含まれていることが前記形状認識部により検出された場合、当該一致する形状の動きに基づいてコマンドの実行を制御するコマンド実行制御部と、
を具備し、
前記コマンド実行制御部は、前記一致する形状の動きが第１の条件を満たす場合、コマンドを実行した後、コマンドを実行できないコマンド無効状態になり、このコマンド無効状態において、前記一致する形状の動きが、前記第１の条件とは異なる第２の条件を満たす場合、コマンドを実行させることの可能なコマンド有効状態に移行し、
前記第１の条件は、前記一致する形状の移動量が第１の閾値以上であることを条件とし、
前記第２の条件は、前記第１の条件を満たして前記コマンド無効状態になった後、前記一致する形状が、前記第１の閾値以上移動した方向とは逆方向に移動し、かつその移動量が第２の閾値以上であることを条件として含む、情報処理装置。
【請求項２】
前記第２の条件は、前記移動量が前記第２の閾値以上であることに加え、前記一致する形状が、前記第２の閾値以上移動した方向とは逆方向に移動し、かつその移動量が第３の閾値以上であることを条件とする、
請求項１記載の情報処理装置。
【請求項３】
前記第１の条件を満たして前記コマンド無効状態になった後、所定の時間が経過することを条件とする第３の条件を満たした場合、前記コマンド有効状態に移行する、
請求項１記載の情報処理装置。
【請求項４】
ディスプレイをさらに備え、
前記一致する形状が検出されると、この一致する形状の移動方向に対応するコマンドを示すガイドが前記ディスプレイに表示される、
請求項１ないし３のいずれか１項に記載の情報処理装置。
【請求項５】
ディスプレイをさらに備え、
前記コマンドを実行しているときに、該コマンドを実行していることを示すユーザインターフェースが前記ディスプレイに表示される、
請求項１ないし３のいずれか１項に記載の情報処理装置。
【請求項６】
ジェスチャ表現の基になる１以上の形状を記憶した記憶手段を有する情報処理装置において、コマンドの実行を制御するコマンド実行制御方法であって、
画像を入力するステップと、
前記記憶手段に記憶された形状と一致する形状が、前記入力された画像内に含まれているか否かを検出するステップと、
前記記憶手段に記憶された形状と一致する形状が、前記入力された画像内に含まれていることが検出された場合、当該一致する形状の動きに基づいてコマンドの実行を制御するステップと、
を有し、
前記制御するステップでは、前記一致する形状の動きが第１の条件を満たす場合、コマンドを実行した後、コマンドを実行できないコマンド無効状態になり、このコマンド無効状態において、前記一致する形状の動きが、前記第１の条件とは異なる第２の条件を満たす場合、コマンドを実行させることの可能なコマンド有効状態に移行し、
前記第１の条件は、前記一致する形状の移動量が第１の閾値以上であることを条件とし、
前記第２の条件は、前記第１の条件を満たして前記コマンド無効状態になった後、前記一致する形状が、前記第１の閾値以上移動した方向とは逆方向に移動し、かつその移動量が第２の閾値以上であることを条件として含む、コマンド実行制御方法。
【請求項７】
ジェスチャ表現の基になる１以上の形状を記憶した記憶手段を有する情報処理装置に、画像を入力する手順と、
前記記憶手段に記憶された形状と一致する形状が、前記入力された画像内に含まれているか否かを検出する手順と、
前記記憶手段に記憶された形状と一致する形状が、前記入力された画像内に含まれていることが検出された場合、当該一致する形状の動きに基づいてコマンドの実行を制御する手順と、
を実行させ、
前記一致する形状の動きが第１の条件を満たす場合、コマンドを実行した後、コマンドを実行できないコマンド無効状態になり、このコマンド無効状態において、前記一致する形状の動きが、前記第１の条件とは異なる第２の条件を満たす場合、コマンドを実行させることの可能なコマンド有効状態に移行し、
前記第１の条件は、前記一致する形状の移動量が第１の閾値以上であることを条件とし、
前記第２の条件は、前記第１の条件を満たして前記コマンド無効状態になった後、前記一致する形状が、前記第１の閾値以上移動した方向とは逆方向に移動し、かつその移動量が第２の閾値以上であることを条件として含む、コマンド実行制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、情報処理装置、コマンド実行制御方法及びコマンド実行制御プログラムに関する。より詳細には、本発明は、ユーザのジェスチャを認識し、認識されたジェスチャに基づく制御を行う情報処理装置、コマンド実行制御方法及びコマンド実行制御プログラムに関する。
【背景技術】
【０００２】
従来、テレビやパーソナルコンピュータ（ＰＣ）等の情報処理装置をユーザのジェスチャによって操作する方法が提案されている。このような方法によれば、マウス、キーボード又はリモートコントローラといった入力装置を使用せずに、情報処理装置を遠隔操作することができる。
【０００３】
例えば、カメラによる撮影領域内に設定された認識領域における認識対象オブジェクトの動きを検出し、検出した情報に基づいて認識対象オブジェクトの動きのカテゴリを決定し、カテゴリに対応したコマンドを実行する技術が提案されている（特許文献１参照）。
【０００４】
また、ユーザの特定の手形状を移動することにより、カメラを用いて撮影されたその特定の手形状に対応させてカーソルを表示画面上で移動させ、その表示画面上に表示された仮想ボタンを選択する技術が提案されている（特許文献２及び３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３４５２５号公報
【特許文献２】特開平８−４４４９０号公報
【特許文献３】特開２００４−７８９７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した技術では、カメラにより撮影されたユーザのジェスチャが認識される必要があるが、認識精度の悪さに起因してジェスチャによるポインティング（表示画面上のカーソル）にブレが生じ、そのブレがユーザにとって煩わしく感じられる原因となり得る。
【０００７】
本発明が解決しようとする課題は、上述の事情を鑑みてなされたものであり、入力した画像から検出されたジェスチャにより、表示画面上での操作性を向上させることが可能な情報処理装置、コマンド実行制御方法及びコマンド実行制御プログラムを提供することである。
【課題を解決するための手段】
【０００８】
上述の課題を解決するため、実施の形態の情報処理装置は、入力手段、記憶手段、形状認識部及びコマンド実行制御部を備えている。入力手段は、画像を入力する。記憶手段は、ジェスチャ表現の基になる１以上の形状を記憶している。形状認識部は、記憶手段に記憶された形状と一致する形状が、入力手段により入力された画像内に含まれているか否かを検出する。コマンド実行制御部は、前記記憶手段に記憶された形状と一致する形状が、前記入力された画像内に含まれていることが前記形状認識部により検出された場合、当該一致する形状の動きに基づいてコマンドの実行を制御する。さらに、前記コマンド実行制御部は、前記一致する形状の動きが第１の条件を満たす場合、コマンドを実行した後、コマンドを実行できないコマンド無効状態になり、このコマンド無効状態において、前記一致する形状の動きが、前記第１の条件とは異なる第２の条件を満たす場合、コマンドを実行させることの可能なコマンド有効状態に移行する。また、前記第１の条件は、前記一致する形状の移動量が第１の閾値以上であることを条件とする。さらに、前記第２の条件は、前記第１の条件を満たして前記コマンド無効状態になった後、前記一致する形状が、前記第１の閾値以上移動した方向とは逆方向に移動し、かつその移動量が第２の閾値以上であることを条件として含む。
【発明の効果】
【０００９】
本発明によれば、入力した画像から検出されたジェスチャにより、表示画面上での操作性を向上させることが可能な情報処理装置、コマンド実行制御方法及びコマンド実行制御プログラムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る情報処理装置を示す斜視図。
【図２】図１に示す情報処理装置のシステム構成を示すブロック図。
【図３】図１に示す情報処理装置のシステム構成の一部を、より詳細に示すブロック図。
【図４】本実施形態において用いられる手形状の例を示す図。
【図５】カメラを介して撮影された画像で用いられる、手形状の移動量の判定軸の例を示す図。
【図６】図１に示す情報処理装置における、図３に示すコマンド実行制御部の動作の一例を示すフローチャート。
【図７】所定の判定軸における移動ベクトルの移動量の一例を説明する図。
【図８】所定の判定軸における移動ベクトルの移動量の別の例を説明する図。
【図９】所定の判定軸における移動ベクトルの移動量のさらに別の例を説明する図。
【図１０】図１に示す情報処理装置における、図３に示すコマンド実行制御部の動作の別の例を示すフローチャート。
【図１１】（ａ）は所定の手形状が検出されたときに、移動方向に対応するコマンドを示すガイドが画面に表示されるユーザインターフェースの一例を示す図、（ｂ）は移動方向が検出されコマンドが実行されているときに、画面に表示されるユーザインターフェースの一例を示す図。
【図１２】別の実施形態に係る、移動ベクトルの判定軸の例を示す図。
【発明を実施するための形態】
【００１１】
（第１の実施形態）
以下、図面を参照しながら、本発明の第１の実施形態について説明する。
【００１２】
まず、図１及び図２を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、例えばバッテリ駆動可能なノートブック型パーソナルコンピュータ１００（以下、コンピュータ１００と省略する）として実現される。
【００１３】
図１は、ディスプレイユニットを開いた状態におけるコンピュータ１００の斜視図である。コンピュータ１００は、本体ユニット１０１とディスプレイユニット１０２とから構成される。
【００１４】
ディスプレイユニット１０２には、ＬＣＤ（Liquid Crystal Display）１０３から構成される表示装置が組み込まれている。ＬＣＤ１０３の表示部は、ディスプレイユニット１０２のほぼ中央に配置されている。ＬＣＤ１０３の表示部の上側中央部には、カメラ１０７が設けられている。
【００１５】
ディスプレイユニット１０２は、本体ユニット１０１に支持されており、本体ユニット１０１の上面が露出される開放位置と本体ユニット１０１の上面を覆う閉塞位置との間を本体ユニット１０１に対して回動自在に取り付けられている。
【００１６】
本体ユニット１０１は、薄い箱形の筐体を有しており、本体ユニット１０１の上面には、コンピュータ１００をパワーオン／オフするための電源ボタン１０４、キーボード１０５、及びタッチパッド１０６等が配置されている。
【００１７】
図２は、コンピュータ１００のシステム構成を示すブロック図である。
【００１８】
図２に示されるように、コンピュータ１００は、ＣＰＵ２０１、メインメモリ２０２、ノースブリッジ２０３、グラフィクスコントローラ２０４、ＬＣＤ１０３、ＶＲＡＭ２０５、サウスブリッジ２０６、ＵＳＢコントローラ２０７、ＩＤＥコントローラ２０８、カメラ１０７、ＵＳＢデバイス２０９、ハードディスクドライブ（ＨＤＤ）２１０、光ディスクドライブ（ＯＤＤ）２１１、ＢＩＯＳ−ＲＯＭ２１２、電源ボタン１０４、キーボード１０５、タッチパッド１０６、組み込みコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）２１３、電源回路２２１、バッテリ２２２、及びＡＣアダプタ２２３等を備えている。
【００１９】
ＣＰＵ２０１は、コンピュータ１００の動作全般を制御するプロセッサである。ＣＰＵ２０１は、メインメモリ２０２にロードされたＯＳ及び各種アプリケーションプログラムを実行する。このＯＳ及び各種アプリケーションプログラムは、ＨＤＤ２１０に搭載される磁気ディスク記憶媒体（ハードディスク）等に記憶されており、こうした記憶媒体からメインメモリ２０２にロードされる。
【００２０】
また、ＣＰＵ２０１は、ＢＩＯＳ−ＲＯＭ２１２に格納されたＢＩＯＳプログラム２３０（以下、ＢＩＯＳと呼ぶ）も実行する。ＢＩＯＳ−ＲＯＭ２１２は、プログラム書き換え可能なように、フラッシュＥＥＰＲＯＭのような不揮発性メモリの形態をとる。
【００２１】
ＢＩＯＳ２３０は、コンピュータ１００の各種ハードウェアコンポーネントを制御するプログラムであり、コンピュータ１００の起動時に、ＢＩＯＳ−ＲＯＭ２１２から読み出される。
【００２２】
ノースブリッジ２０３は、ＣＰＵ２０１のローカルバスと、サウスブリッジ２０６とを接続するブリッジデバイスである。ノースブリッジ２０３は、メインメモリ２０２をアクセス制御するメモリコントローラを備えている。また、ノースブリッジ２０３は、ＡＧＰ（Accelerated Graphics Port）バス等を介してグラフィクスコントローラ２０４と通信する機能を有する。
【００２３】
グラフィクスコントローラ２０４は、コンピュータ１００のディスプレイモニタとして使用されるＬＣＤ１０３を制御するコントローラである。このグラフィクスコントローラ２０４は、ＯＳ又はアプリケーションプログラムによってＶＲＡＭ２０５に書き込まれた表示データに対応する映像信号を、ＬＣＤ１０３に出力する。
【００２４】
サウスブリッジ２０６は、ＬＰＣ（Low Pin Count）バス及びＰＣＩ（Peripheral Component Interconnect）バス上の各デバイスを制御する。また、サウスブリッジ２０６は、カメラ１０７及びＵＳＢデバイス２０９を制御するためのＵＳＢコントローラ２０７と、ＨＤＤ２１０及びＯＤＤ２１１を制御するためのＩＤＥコントローラ２０８とを内蔵している。
【００２５】
カメラ１０７は、ＣＣＤ（Charge Coupled Device）イメージセンサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサにより構成されている。このカメラ１０７は、コンピュータ１００の周辺の画像（動画像）を取り込んで、その画像を後述する手形状認識部３０１に供給する。また、カメラ１０７によって撮影された画像（動画像）は、コンピュータ１００のディスプレイモニタに表示することができる。カメラ１０７によって供給される画像のフレームレートは、例えば、３０フレーム／秒である。本実施形態では、カメラ１０７は、ＵＳＢ規格に準拠したＵＳＢデバイスであると想定している。なお、カメラ１０７は、外付け型であってもよいし、内蔵型であってもよい。
【００２６】
ＨＤＤ２１０は、ハードディスクコントローラ及び磁気ディスク記憶媒体を有する記憶装置である。この磁気ディスク記憶媒体には、ＯＳを含む各種ソフトウェア及び各種データが格納される。ＯＤＤ２１１は、ＤＶＤタイトルのようなビデオコンテンツが格納されたＤＶＤや音楽データが格納されたＣＤなどの記憶媒体を駆動するためのドライブユニットである。
【００２７】
ＥＣ／ＫＢＣ２１３は、電力管理のための組み込みコントローラ（ＥＣ）と、キーボード１０５及びタッチパッド１０６を制御するためのキーボードコントローラ（ＫＢＣ）とが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ２１３は、コンピュータ１００の電源がオンされているかオフされているかに関わらず、電源回路２２１からの電力によって常時電源がオンされている。このＥＣ／ＫＢＣ２１３は、ユーザによる電源ボタン１０４の操作に応答して、電源回路２２１と協働してコンピュータ１００の電源をオン／オフする。
【００２８】
電源回路２２１は、ＥＣ／ＫＢＣ２１３の制御の下、本体ユニット１０１内に設けられたバッテリ２２２からの電力、又はＡＣアダプタ２２３を介して供給される外部電源からの電力を用いて、コンピュータ１００における各デバイスに電力を供給する。
【００２９】
図３は、コンピュータ１００の構成の一部を、より詳細に示すブロック図である。
【００３０】
図３に示されるように、カメラ１０７によって撮影された画像は、手形状認識部３０１に供給される。
【００３１】
手形状認識部３０１は、カメラ１０７から供給された画像が手形状データベース３０２に予め格納（登録）されている手形状のうちのいずれか１つと一致する手形状を含んでいるか否かを判定する。例えば、手形状認識部３０２は、カメラ１０７から供給される画像内から、手形状データベース３０２に予め格納されている手形状のうちの１つを検索する。
【００３２】
手形状データベース３０２には、図４に示されるように、握り拳（５本の指を曲げた状態（図４（ａ）））、平手（５本の指を伸ばした状態（図４（ｂ）））、及びサムアップサイン（親指のみ伸ばし、他の４本の指は曲げた状態（図４（ｃ）））等の手形状が、対応する識別子と関連付けられて予め格納されている。
【００３３】
手形状認識部３０１はさらに、画像内の二次元座標系における手形状の位置情報（座標）を算出する。本実施形態において、手形状認識部３０１は、手形状に外接する矩形領域の中心を、手形状の位置情報（Ｘ，Ｙ）として用いる。なお、手形状の位置情報は、上記手形状に外接する矩形領域の中心とすることに限定されず、例えば、手形状の重心の座標としてもよい。
【００３４】
コマンド実行制御部３０３は、手形状認識部３０１により検出された手形状の識別子と、その手形状の位置情報とを、手形状認識部３０１から受信する。そして、コマンド実行制御部３０３は、受信した手形状の識別子と、位置情報とを、撮影された各フレームについて、例えばメインメモリ２０２に記憶する。なお、コマンド実行制御部３０３は、各フレームについてではなく、所定の時間ごと（例えば、２フレームや３フレームごと）に上記識別子及び位置情報を記憶してもよい。また、コマンド実行制御部３０３は、カメラによって撮影された手形状の移動に応じて、表示画面上に表示されているアイコンの選択や実行ファイルの実行といったコマンドの実行を制御する。コマンド実行制御部３０３の動作については、図５〜図９を参照して以下で詳述する。
【００３５】
本実施形態では、手形状認識部３０１は、専用のハードウェアエンジン（ＬＳＩ；不図示）で実現され、コマンド実行制御部３０３は、ＣＰＵ２０１（図２）により実行されるソフトウェアで実現される。しかしながら、手形状認識部３０１及びコマンド実行制御部３０３は、ハードウェアで実現されてもよいし、ソフトウェアで実現されてもよい。また、上記ソフトウェア及び手形状データベース３０２は例えば、ＨＤＤ２１０（図２）に格納されている。
【００３６】
次に、図５〜図９を参照しながら、コマンド実行制御部３０３の動作を説明する。
【００３７】
図５は、カメラを介して撮影された画像で用いられる、手形状の移動量の判定軸の例を示している。一例では、図５（ａ）に示されるように、手形状の移動量の判定軸として、単位ベクトルが（１，０）及び（０，１）である２方向が用いられる。しかしながら、手形状の移動量の判定軸としては、上記のものに限定されず、例えば図５（ｂ）に示されるように、単位ベクトルが（１／√２，１／√２）及び（−１／√２，１／√２）である２方向としてもよい。
【００３８】
以下、本実施形態では、手形状の移動量の判定軸として、単位ベクトルが（１，０）及び（０，１）である２方向が用いられることを想定して説明する。
【００３９】
図６は、コンピュータ１００におけるコマンド実行制御部３０３の動作の一例を示すフローチャートである。ここで、手形状は二次元座標系の座標によりその位置が特定される。すなわち、手形状は、横方向（Ｘ軸方向；第１の軸方向）及び縦方向（Ｙ軸方向；第２の軸方向）からなる二次元空間上で移動するものである。
【００４０】
まず、ステップＳ６０１において、コマンド実行制御部３０３は、カメラ１０７を介して所定の手形状（本実施形態では、図４（ａ）の握り拳）が手形状認識部３０１により検出されるのを待つ。
【００４１】
握り拳が手形状認識部３０１により検出され、コマンド実行制御部３０３が、その検出されたことを示す信号（握り拳に対応する識別子及び握り拳の位置情報を含む）を受信すると、握り拳に対応する識別子及び握り拳の位置情報を、例えばメインメモリ２０２に記憶する。以下では、握り拳が手形状認識部３０１により継続的に検出されているものと仮定している。
【００４２】
さらに、コマンド実行部３０３は、カメラ１０７を介して撮影された次のフレームにおける握り拳の位置情報を受信して、直前のフレームから現フレームに至る握り拳の移動ベクトル７０１（図７参照）を算出する。
【００４３】
具体的には、直前のフレームにおける握り拳の位置情報を（Ｘｎ−１，Ｙｎ−１）、現フレームにおける握り拳の位置情報を（Ｘｎ，Ｙｎ）とする。図７に示されるように、前述の移動ベクトル７０１は、（Ｘｎ−Ｘｎ−１，Ｙｎ−Ｙｎ−１）となる。また、横方向の軸を判定軸（所定の判定軸）７００とした場合、この判定軸７００における移動ベクトル７０１の移動量Ｖｎは、移動ベクトル７０１と単位ベクトル（１，０）との内積、すなわち、
Ｖｎ＝（Ｘｎ−Ｘｎ−１）×１＋（Ｙｎ−Ｙｎ−１）×０＝Ｘｎ−Ｘｎ−１
となる。
【００４４】
なお、本実施形態では、移動ベクトルは、現フレームとその直前のフレームとに基づいて算出したが、現フレームと所定の時間前（例えば、２フレームや３フレーム前）のフレームとに基づいて算出してもよい。
【００４５】
次いで、コマンド実行制御部３０３は、判定軸７００における移動ベクトル７０１の移動量Ｖｎの絶対値が、所定の第１の閾値（例えば、０．０５ｍ）以上であるか否かを判定する（ステップＳ６０２）。ステップＳ６０２では、コマンド実行制御部３０３は、上記の判定とともに、どの判定軸が用いられたか（この例では、判定軸７００）と、移動量Ｖｎの正負とを、例えばメインメモリ２０２に記憶する。
【００４６】
移動ベクトル７０１の移動量Ｖｎの絶対値が、所定の第１の閾値以上でないと判定されると（ステップＳ６０２のＮＯ）、本動作は再度ステップＳ６０２に戻る。
【００４７】
一方、図７に示されるように、移動ベクトル７０１の移動量Ｖｎの絶対値が、所定の第１の閾値以上であると判定されると（ステップＳ６０２のＹＥＳ）、コマンド実行制御部３０３は、その手形状の移動に関連付けられたコマンドを実行する（ステップＳ６０３）。このようなコマンドには、例えば、フォーカスの移動、メディアの再生、メディアの一時停止等がある（図１１参照）。コマンド実行（ステップＳ６０３）が終了すると、以下で説明するＳ６０５の判定においてＹＥＳと判定されるまで、コマンドの実行ができない状態（コマンド実行無効状態）となる。
【００４８】
次いで、コマンド実行制御部３０３は、コマンド実行直後にカメラ１０７を介して撮影されたフレームにおける握り拳の識別子及び位置情報を受信して、例えばメインメモリ２０１に記憶する。そして、コマンド実行制御部３０３は、その受信した位置情報に対応するフレームの直前のフレームから、現フレームに至る握り拳の移動ベクトル８０１（図８参照）を算出する。
【００４９】
具体的には、直前のフレームにおける握り拳の位置情報を（Ｘｍ−１，Ｙｍ−１）、現フレームにおける握り拳の位置情報を（Ｘｍ，Ｙｍ）とする。図８に示されるように、前述の移動ベクトル８０１は、（Ｘｍ−Ｘｍ−１，Ｙｍ−Ｙｍ−１）となる。また、ステップＳ６０２で用いられた判定軸７００における移動ベクトル８０１の移動量Ｖｍは、移動ベクトル８０１と単位ベクトル（１，０）との内積、すなわち、
Ｖｍ＝（Ｘｍ−Ｘｍ−１）×１＋（Ｙｍ−Ｙｍ−１）×０＝Ｘｍ−Ｘｍ−１
となる。
【００５０】
なお、本実施形態では、移動ベクトルは、現フレームとその直前のフレームとに基づいて算出したが、現フレームと所定の時間前（例えば、２フレームや３フレーム前）のフレームとに基づいて算出してもよい。
【００５１】
次いで、コマンド実行制御部３０３は、判定軸７００における移動ベクトル８０１の移動量Ｖｍの絶対値が、所定の第２の閾値（例えば、０．００５ｍ）以上であるか否かを判定する（ステップＳ６０４）。ステップＳ６０４では、コマンド実行制御部３０３は、上記の判定とともに、移動量Ｖｍの正負が、ステップＳ６０２で記憶された移動量Ｖｎの正負と反対であるか同じであるかも判定する。
【００５２】
移動ベクトル８０１の移動量Ｖｍの絶対値が、所定の第２の閾値以上ではないか、又は移動量Ｖｍの正負が、移動量Ｖｎの正負と同じであると判定されると（ステップＳ６０４のＮＯ）、本動作は再度ステップＳ６０４に戻る。
【００５３】
一方、図８に示されるように、移動ベクトル８０１の移動量Ｖｍの絶対値が、所定の第２の閾値以上であり、かつ移動量Ｖｍの正負が、移動量Ｖｎの正負と反対であると判定されると（ステップＳ６０４のＹＥＳ）、本動作はステップＳ６０５に進む。
【００５４】
次いで、コマンド実行制御部３０３は、ステップＳ６０５直後にカメラ１０７を介して撮影されたフレームにおける握り拳の識別子及び位置情報を受信して、例えばメインメモリ２０１に記憶する。そして、コマンド実行制御部３０３は、その受信した位置情報に対応するフレームの直前のフレームから、現フレームに至る握り拳の移動ベクトル９０１（図９参照）を算出する。
【００５５】
具体的には、直前のフレームにおける握り拳の位置情報を（Ｘｌ−１，Ｙｌ−１）、現フレームにおける握り拳の位置情報を（Ｘｌ，Ｙｌ）とする。図９に示されるように、前述の移動ベクトル９０１は、（Ｘｌ−Ｘｌ−１，Ｙｌ−Ｙｌ−１）となる。また、ステップＳ６０２で用いられた判定軸７００における移動ベクトル９０１の移動量Ｖｌは、移動ベクトル９０１と単位ベクトル（１，０）との内積、すなわち、
Ｖｌ＝（Ｘｌ−Ｘｌ−１）×１＋（Ｙｌ−Ｙｌ−１）×０＝Ｘｌ−Ｘｌ−１
となる。
【００５６】
なお、本実施形態では、移動ベクトルは、現フレームとその直前のフレームとに基づいて算出したが、現フレームと所定の時間前（例えば、２フレームや３フレーム前）のフレームとに基づいて算出してもよい。
【００５７】
次いで、コマンド実行制御部３０３は、判定軸７００における移動ベクトル９０１の移動量Ｖｌの絶対値が、所定の第３の閾値（例えば、０．００３ｍ）以上であるか否かを判定する（ステップＳ６０５）。ステップＳ６０５では、コマンド実行制御部３０３は、上記の判定とともに、移動量Ｖｌの正負が、ステップＳ６０２で記憶された移動量Ｖｎの正負と同じであるか反対であるかも判定する。
【００５８】
移動ベクトル９０１の移動量Ｖｍの絶対値が、所定の第３の閾値以上ではないか、又は移動量Ｖｌの正負が、移動量Ｖｎの正負と反対であると判定されると（ステップＳ６０５のＮＯ）、本動作は再度ステップＳ６０５に戻る。
【００５９】
一方、図９に示されるように、移動ベクトル９０１の移動量Ｖｌの絶対値が、所定の第３の閾値以上であり、かつ移動量Ｖｌの正負が、移動量Ｖｎの正負と同じであると判定されると（ステップＳ６０５のＹＥＳ）、本動作は終了して、ステップＳ６０１及びステップＳ６０２の処理を行うことにより、再びコマンドが実行できる状態（コマンド実行有効状態）となる。
【００６０】
本実施形態において、好ましくは、所定の第２の閾値及び第３の閾値は、所定の第１の閾値より小さい。さらに、所定の第２の閾値及び第３の閾値は、約０．５といった非常に小さな値であることが好ましい。
【００６１】
以上、横方向に関する判定軸ついてのみ説明したが、縦方向に関する判定軸についてもコマンド実行制御部３０３により同様の制御が行われる。
【００６２】
（第２の実施形態） 
次に、図面を参照しながら、本発明の第２の実施形態について説明する。第２の実施形態は、コマンド実行制御部３０３（図３）の動作を除いて前述した第１の実施形態と同様の構成をとるため、ここでは、コマンド実行制御部３０３の動作のみについて説明する。
【００６３】
本実施形態では、手形状の移動量の判定軸として、単位ベクトルが（１，０）及び（０，１）である２方向が用いられることを想定して説明する。
【００６４】
図１０は、コンピュータ１００におけるコマンド実行制御部３０３の動作の別の例を示すフローチャートである。ここで、手形状は二次元座標系の座標によりその位置が特定される。すなわち、手形状は、横方向（Ｘ軸方向；第１の軸方向）及び縦方向（Ｙ軸方向；第２の軸方向）からなる二次元空間上で移動するものである。
【００６５】
まず、ステップＳ１００１において、コマンド実行制御部３０３は、カメラ１０７を介して所定の手形状（本実施形態では、図４（ａ）の握り拳）が手形状認識部３０１により検出されるのを待つ。
【００６６】
握り拳が手形状認識部３０１により検出され、コマンド実行制御部３０３が、その検出されたことを示す信号（握り拳に対応する識別子及び握り拳の位置情報を含む）を受信すると、握り拳に対応する識別子及び握り拳の位置情報を、例えばメインメモリ２０２に記憶する。以下では、握り拳が手形状認識部３０１により継続的に検出されているものと仮定している。
【００６７】
さらに、コマンド実行部３０３は、カメラ１０７を介して撮影された次のフレームにおける握り拳の位置情報を受信して、直前のフレームから現フレームに至る握り拳の移動ベクトル７０１（図７参照）を算出する。
【００６８】
具体的には、直前のフレームにおける握り拳の位置情報を（Ｘｎ−１，Ｙｎ−１）、現フレームにおける握り拳の位置情報を（Ｘｎ，Ｙｎ）とする。図７に示されるように、前述の移動ベクトル７０１は、（Ｘｎ−Ｘｎ−１，Ｙｎ−Ｙｎ−１）となる。また、横方向の軸を判定軸（所定の判定軸）７００とした場合、この判定軸７００における移動ベクトル７０１の移動量Ｖｎは、移動ベクトル７０１と単位ベクトル（１，０）との内積、すなわち、
Ｖｎ＝（Ｘｎ−Ｘｎ−１）×１＋（Ｙｎ−Ｙｎ−１）×０＝Ｘｎ−Ｘｎ−１
となる。
【００６９】
なお、本実施形態では、移動ベクトルは、現フレームとその直前のフレームとに基づいて算出したが、現フレームと所定の時間前（例えば、２フレームや３フレーム前）のフレームとに基づいて算出してもよい。
【００７０】
次いで、コマンド実行制御部３０３は、判定軸７００における移動ベクトル７０１の移動量Ｖｎの絶対値が、所定の第１の閾値（例えば、０．０５ｍ）以上であるか否かを判定する（ステップＳ１００２）。ステップＳ１１０２では、コマンド実行制御部３０３は、上記の判定とともに、どの判定軸が用いられたか（この例では、判定軸７００）を、例えばメインメモリ２０２に記憶する。
【００７１】
移動ベクトル７０１の移動量Ｖｎの絶対値が、所定の第１の閾値以上でないと判定されると（ステップＳ６０２のＮＯ）、本動作は再度ステップＳ１００２に戻る。
【００７２】
一方、図７に示されるように、移動ベクトル７０１の移動量Ｖｎの絶対値が、所定の第１の閾値以上であると判定されると（ステップＳ１００２のＹＥＳ）、コマンド実行制御部３０３は、その手形状の移動に関連付けられたコマンドを実行する（ステップＳ１００３）。このようなコマンドには、例えば、フォーカスの移動、メディアの再生、メディアの一時停止等がある（図１１参照）。コマンド実行（ステップＳ１１０３）が終了すると、以下で説明するＳ１１０５の判定においてＹＥＳと判定されるまで、コマンドの実行ができない状態（コマンド実行無効状態）となる。
【００７３】
次いで、コマンド実行制御部３０３は、コマンド実行されてから所定の時間（例えば、３秒）経過したか否かを判定する（ステップＳ１００４）。所定の時間経過していなければ、コマンド実行制御部３０３は、所定の時間経過するのを待つ（ステップＳ１００４）。
【００７４】
一方、所定の時間経過すると、本動作は終了して、ステップＳ１００１及びステップＳ１００２の処理を行うことにより、再びコマンドが実行できる状態（コマンド実行有効状態）となる。
【００７５】
以上、横方向に関する判定軸ついてのみ説明したが、縦方向に関する判定軸についてもコマンド実行制御部３０３により同様の制御が行われる。
【００７６】
図１１は、前述の第１及び第２の実施形態において、実行されるコマンドがユーザに分かるように、所定の手形状（握り拳）が検出されたときに、移動方向に対応するコマンドを示すガイドが画面に表示されるユーザインターフェース１１０１の一例を示している（図１１（ａ））。また、図１１は、移動方向が検出されコマンドが実行されているときに、実行されているコマンドが分かるよう画面に表示されるユーザインターフェース１１０２の一例も示している（図１１（ｂ））。
【００７７】
第１及び第２の実施形態によれば、ユーザの意図しない微妙な手の動きが発生しても、コマンド実行を抑制することができる（ステップＳ６０２及びステップＳ１００２）。
【００７８】
また、第１の実施形態によれば、ユーザが手を移動しすぎた場合でも、連続的なコマンド実行を抑制することができる（ステップＳ６０４）。
【００７９】
また、第１の実施形態によれば、ユーザが手を一旦戻すことによって、すぐに次のコマンド実行操作が可能となる。さらに、ユーザが手を一旦戻すことによって、手を戻しすぎたことによる反対方向に対応するコマンド実行を抑制することができる（ステップＳ６０５）。
【００８０】
また、第２の実施形態によれば、手を一旦戻すことがうまくできない場合や手を戻すことを忘れていた場合に、所定の時間経過すれば次のコマンド操作が可能となる。
【００８１】
以上、本発明の好適な実施形態について説明したが、本発明は、上記実施形態そのままに限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【００８２】
例えば、本発明は、本実施形態で説明したノートブック型パーソナルコンピュータの他にも、デスクトップ型パーソナルコンピュータ、携帯電話機、携帯情報端末（ＰＤＡ）、ゲーム機、テレビ等の様々な情報処理装置に適用することができる。
【００８３】
また、例えば、本発明は、図１２に示されるように、上下左右方向の判定軸に加えて、斜め方向の判定軸を用い、斜め方向への移動を検出した場合には、何もコマンドを実行しないといったことも可能である。このようにすることにより、手形状を中途半端に斜め方向に対して移動させたとしても、コマンドの実行を抑制することができる。
【００８４】
また、前述した実施形態において記載した処理は、コンピュータに実行させることができるプログラムとして、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記録媒体に書き込んで各種装置に提供することができる。また、通信媒体により伝送して各種装置に提供することも可能である。コンピュータは、記録媒体に記録されたプログラムを読み込み、又は通信媒体を介してプログラムを受信し、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【００８５】
以上、本発明によれば、カメラにより撮影されたユーザのジェスチャにより、表示画面上での操作性を向上させることが可能な情報処理装置、コマンド実行制御方法及びコマンド実行制御プログラムを提供することができる。
【００８６】
以下に、本願原出願の特許査定時の特許請求の範囲に記載された発明を付記する。
【００８７】
［１］情報処理装置であって、前記情報処理装置に接続されたカメラと、１つ又は複数の手形状を記憶した記憶手段と、前記記憶手段に記憶された１つ又は複数の手形状と一致する所定の手形状が、前記カメラにより撮影された画像内に含まれているか否かを検出する手形状認識部と、前記手形状認識部により、前記記憶手段に記憶された１つ又は複数の手形状と一致する前記所定の手形状が、前記カメラにより撮影された前記画像内に含まれていることが検出された場合、前記所定の手形状の動きに基づいて、コマンドの実行を制御するコマンド実行制御部とを具備し、前記カメラにより撮影された前記所定の手形状の移動量が第１の閾値以上であった場合、前記コマンド実行制御部は、コマンドを実行し、このコマンドを実行した後、コマンドを実行できないコマンド無効状態になることを特徴とする情報処理装置。
【００８８】
［２］前記コマンド無効状態になった後、前記コマンド実行制御部は、前記移動量が第１の閾値以上であることが検出されたときに前記所定の手形状が移動した方向とは逆方向に当該所定の手形状が移動し、かつその移動量が第２の閾値以上であるか否かを判定することを特徴とする前記［１］記載の情報処理装置。
【００８９】
［３］前記移動量が第１の閾値以上であることが検出されたときに前記所定の手形状が移動した方向とは逆方向に当該所定の手形状が移動し、かつその移動量が第２の閾値以上であると判定され、さらに、前記移動量が第２の閾値以上であることが検出されたときに前記所定の手形状が移動した方向とは逆方向に当該所定の手形状が移動し、かつその移動量が第３の閾値以上であった場合、前記コマンド実行制御部は、コマンドを実行させることの可能なコマンド有効状態になることを特徴とする前記［２］記載の情報処理装置。
【００９０】
［４］前記コマンド実行制御部は、前記コマンド無効状態になった後、所定の時間経過すると、コマンドを実行させることの可能なコマンド有効状態になることを特徴とする前記［１］記載の情報処理装置。
【００９１】
［５］前記情報処理装置はさらにディスプレイを備え、前記所定の手形状が検出されると、前記所定の手形状の移動方向に対応するコマンドを示すガイドが前記ディスプレイに表示されることを特徴とする前記［１］記載の情報処理装置。
【００９２】
［６］前記情報処理装置はさらにディスプレイを備え、前記コマンドを実行しているときに、該コマンドを実行していることを示すユーザインターフェースが前記ディスプレイに表示されることを特徴とする前記［１］記載の情報処理装置。
【００９３】
［７］１つ又は複数の手形状を記憶した記憶手段を有する情報処理装置において、コマンドの実行を制御するコマンド実行制御方法であって、前記情報処理装置に接続されたカメラを介して画像を取得し、前記記憶手段に記憶された１つ又は複数の手形状と一致する所定の手形状が、前記カメラにより撮影された画像内に含まれているか否かを検出し、前記記憶手段に記憶された１つ又は複数の手形状と一致する前記所定の手形状が、前記カメラにより撮影された前記画像内に含まれていることが検出された場合、前記所定の手形状の動きに基づいて、コマンドの実行を制御し、前記カメラにより撮影された前記所定の手形状の移動量が第１の閾値以上であった場合、コマンドを実行し、このコマンドを実行した後、コマンドを実行できないコマンド無効状態になることを特徴とするコマンド実行制御方法。
【００９４】
［８］前記コマンド無効状態になった後、前記移動量が第１の閾値以上であることが検出されたときに前記所定の手形状が移動した方向とは逆方向に当該所定の手形状が移動し、かつその移動量が第２の閾値以上であるか否かを判定することを特徴とする前記［７］記載のコマンド実行制御方法。
【００９５】
［９］前記移動量が第１の閾値以上であることが検出されたときに前記所定の手形状が移動した方向とは逆方向に当該所定の手形状が移動し、かつその移動量が第２の閾値以上であると判定され、さらに、前記移動量が第２の閾値以上であることが検出されたときに前記所定の手形状が移動した方向とは逆方向に当該所定の手形状が移動し、かつその移動量が第３の閾値以上であった場合、コマンドを実行させることの可能なコマンド有効状態になることを特徴とする前記［８］記載のコマンド実行制御方法。
【００９６】
［１０］前記コマンド無効状態になった後、所定の時間経過すると、コマンドを実行させることの可能なコマンド有効状態になることを特徴とする前記［７］記載のコマンド実行制御方法。
【００９７】
［１１］前記情報処理装置はさらにディスプレイを備え、前記所定の手形状が検出されると、前記所定の手形状の移動方向に対応するコマンドを示すガイドが前記ディスプレイに表示されることを特徴とする前記［７］記載のコマンド実行制御方法。
【００９８】
［１２］前記情報処理装置はさらにディスプレイを備え、前記コマンドを実行しているときに、該コマンドを実行していることを示すユーザインターフェースが前記ディスプレイに表示されることを特徴とする前記［７］記載のコマンド実行制御方法。
【００９９】
［１３］１つ又は複数の手形状を記憶した記憶手段を有する情報処理装置に、前記情報処理装置に接続されたカメラを介して画像を取得する手順と、前記記憶手段に記憶された１つ又は複数の手形状と一致する所定の手形状が、前記カメラにより撮影された画像内に含まれているか否かを検出する手順と、前記記憶手段に記憶された１つ又は複数の手形状と一致する前記所定の手形状が、前記カメラにより撮影された前記画像内に含まれていることが検出された場合、前記所定の手形状の動きに基づいて、コマンドの実行を制御する手順とを実行させ、前記カメラにより撮影された前記所定の手形状の移動量が第１の閾値以上であった場合、コマンドを実行し、このコマンドを実行した後、コマンドを実行できないコマンド無効状態になることを特徴とするコマンド実行制御プログラム。
【符号の説明】
【０１００】
１００  コンピュータ
１０１  本体ユニット
１０２  ディスプレイユニット
１０３  ＬＣＤ
１０４  電源ボタン
１０５  キーボード
１０６  タッチパッド
１０７  カメラ
２０１  ＣＰＵ
２０２  メインメモリ
２０３  ノースブリッジ
２０６  サウスブリッジ
２１０  ＨＤＤ
２１１  ＯＤＤ
２１２  ＢＩＯＳ−ＲＯＭ
２１３  ＥＣ／ＫＢＣ
２３０  ＢＩＯＳ
３０１  手形状認識部
３０２  手形状データベース
３０３  コマンド実行制御部
【図１】
0005422694.tif 000002
【図２】
0005422694.tif 000003
【図３】
0005422694.tif 000004
【図４】
0005422694.tif 000005
【図５】
0005422694.tif 000006
【図６】
0005422694.tif 000007
【図７】
0005422694.tif 000008
【図８】
0005422694.tif 000009
【図９】
0005422694.tif 000010
【図１０】
0005422694.tif 000011
【図１１】
0005422694.tif 000012
【図１２】
0005422694.tif 000013