(57)【特許請求の範囲】
【請求項１】
電子機器であって、
カメラによって撮影された映像内の顔を認識し、前記映像内における前記顔の位置を検出する顔検出手段と、
前記映像内の第１の形状の手を認識し、前記映像内における前記第１の形状の手の位置を検出する手形状検出手段と、
前記顔の検出位置に対する前記第１の形状の手の検出位置の相対位置を示す第１の値を算出し、前記第１の値に基づいて、複数の操作モードから第１の操作モードを選択する操作モード選択手段と、
前記映像を用いて、前記選択された前記第１の操作モードで使用されるべきハンドジェスチャに関連する手の形状および動きを認識し、前記認識結果に応じて前記電子機器の動作を制御するハンドジェスチャ認識手段とを具備し、
前記操作モード選択手段は、前記第１の値と、前記複数の操作モードに対応する複数の基準値それぞれとの間の一致度を算出し、所定の閾値よりも高い一致度を有する操作モードを前記第１の操作モードとして選択するように構成されている電子機器。
【請求項２】
前記操作モード選択手段は、前記選択された前記第１の操作モードに対応するグラフィカルユーザインタフェースをディスプレイに表示する請求項１記載の電子機器。
【請求項３】
前記操作モード選択手段は、前記所定の閾値よりも高い一致度を有する操作モードが存在しない場合、前記複数の操作モードのいずれも選択せずに、前記複数の操作モードに対応する複数のグラフィカルユーザインタフェースを、前記算出された一致度に基づくサイズでディスプレイに表示するように構成されている請求項１記載の電子機器。
【請求項４】
前記操作モード選択手段は、前記映像内の前記顔の位置または前記第１の形状の手の位置が変化した時に前記一致度を再算出する請求項３記載の電子機器。
【請求項５】
ユーザの操作に応じて、顔の位置に対する前記複数の操作モードそれぞれの相対位置を示す複数の基準値を設定する設定手段をさらに具備し、
前記操作モード選択手段は、前記第１の値と、前記設定手段によって設定された前記複数の基準値それぞれとの間の一致度を算出し、所定の閾値よりも高い一致度を有する操作モードを前記第１の操作モードとして選択する請求項１記載の電子機器。
【請求項６】
カメラによって撮影された映像内の顔を認識し、前記映像内における前記顔の位置を検出し、
前記映像内の第１の形状の手を認識し、前記映像内における前記第１の形状の手の位置を検出し、
前記顔の検出位置に対する前記第１の形状の手の検出位置の相対位置を示す第１の値を算出し、前記第１の値に基づいて、複数の操作モードから第１の操作モードを選択し、
前記映像を用いて、前記選択された前記第１の操作モードで使用されるべきハンドジェスチャに関連する手の形状および動きを認識し前記認識結果に応じて電子機器の動作を制御することを具備し、
前記操作モードを選択することは、前記第１の値と、前記複数の操作モードに対応する複数の基準値それぞれとの間の一致度を算出し、所定の閾値よりも高い一致度を有する操作モードを前記第１の操作モードとして選択することを含む、制御方法。
【請求項７】
コンピュータに、
カメラによって撮影された映像内の顔を認識し、前記映像内における前記顔の位置を検出する手順と、
前記映像内の第１の形状の手を認識し、前記映像内における前記第１の形状の手の位置を検出する手順と、
前記顔の検出位置に対する前記第１の形状の手の検出位置の相対位置を示す第１の値を算出し、前記第１の値に基づいて、複数の操作モードから第１の操作モードを選択する手順と、
前記映像を用いて、前記選択された前記第１の操作モードで使用されるべきハンドジェスチャに関連する手の形状および動きを認識し、前記認識結果に応じて前記コンピュータの動作を制御する手順とを実行させ、
前記操作モードを選択する手順は、前記第１の値と、前記複数の操作モードに対応する複数の基準値それぞれとの間の一致度を算出し、所定の閾値よりも高い一致度を有する操作モードを前記第１の操作モードとして選択することを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電子機器および同機器を制御するための制御方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（ＰＣ）等の電子機器においては、キーボード、マウス、リモコンユニット等の操作デバイスを使うことなく、電子機器を制御するための新たな入力インタフェースの開発が進められている。
【０００３】
このような新たな入力インタフェースの一つに、ハンドジェスチャインタフェースがある。ハンドジェスチャインタフェースは、カメラによって撮影された画像を用いてユーザの手の形状及び動き（ハンドジェスチャ）を認識し、その認識結果に基づいて電子機器を制御する。
【０００４】
しかし、一般に、認識可能なハンドジェスチャの種類には限りがある。一方、電子機器の機能の多様化および複雑化により、電子機器を制御するための操作の種類は増える傾向にある。
【０００５】
このため、最近では、操作の種類に対応する幾つかの操作モードを有するハンドジェスチャインタフェースが開発され始めている。使用する操作モードを切り替える方法としては、トップメニューのような操作モードメニューを表示し、その操作モードメニュー上の多数の項目から目的の操作モードに対応する項目を選択するという方法が考えられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２３０４６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
項目の選択はハンドジャスタを用いて行ってもよい。しかし、この場合には、操作モードメニュー上の目的の項目にカーソルを移動させるためのハンドジェスチャ、およびエンタキーを入力するためのハンドジェスチャといった幾つかのハンドジェスチャを認識することが必要となるかもしれない。したがって、操作モードメニューを用いる上述の方法では、目的の操作モードが利用可能になるまでに時間がかかり、これによってハンドジェスチャインタフェースの操作性が低下される可能性がある。
【０００８】
本発明は、ハンドジェスチャ認識で使用される操作モードを容易に選択することができる電子機器及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態によれば、電子機器は、顔検出手段と、手形状検出手段と、操作モード選択手段と、ハンドジェスチャ認識手段とを具備する。前記顔検出手段は、カメラによって撮影された映像内の顔を認識し、前記映像内における前記顔の位置を検出する。前記手形状検出手段は、前記映像内の第１の形状の手を認識し、前記映像内における前記第１の形状の手の位置を検出する。前記操作モード選択手段は、前記顔の検出位置に対する前記第１の形状の手の検出位置の相対位置を示す第１の値を算出し、前記第１の値に基づいて、複数の操作モードから第１の操作モードを選択する。前記ハンドジェスチャ認識手段は、前記映像を用いて、前記選択された前記第１の操作モードで使用されるべきハンドジェスチャに関連する手の形状および動きを認識し、前記認識結果に応じて前記電子機器の動作を制御する。前記操作モード選択手段は、前記第１の値と、前記複数の操作モードに対応する複数の基準値それぞれとの間の一致度を算出し、所定の閾値よりも高い一致度を有する操作モードを前記第１の操作モードとして選択するように構成されている。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る電子機器の外観を示す斜視図。
【図２】同実施形態の電子機器のシステム構成例を示すブロック図。
【図３】同実施形態の電子機器で実行されるハンドジェスチャ認識プログラムの構成例を示すブロック図。
【図４】同実施形態の電子機器で用いられる操作モードの配置例を示す図。
【図５】同実施形態の電子機器で用いられる操作モードの１つであるセレクト操作モードの実行例を示す図。
【図６】同実施形態の電子機器で用いられる操作モードの１つであるＡＶコントロールメニューモードの実行例を示す図。
【図７】同実施形態の電子機器で用いられる操作モードの１つである音量操作モードの実行例を示す図。
【図８】同実施形態の電子機器で用いられる操作モードの他の配置例を示す図。
【図９】同実施形態の電子機器で用いられる操作モードの選択を説明する図。
【図１０】同実施形態の電子機器で用いられる操作モード選択画面を示す図。
【図１１】同実施形態の電子機器で用いられる各操作モードの基準値を説明する図。
【図１２】同実施形態の電子機器において、操作モードを選択する際に用いられる一致度を説明する図。
【図１３】同実施形態の電子機器によって実行される操作モード切り替え処理の手順の例を示すフローチャート。
【図１４】同実施形態の電子機器で実行される操作モード選択時の操作モードの座標位置の一例を示す図。
【図１５】同実施形態の電子機器で実行されるハンドジェスチャ認識プログラムの使用時に表示される表示画面の例を示す図。
【発明を実施するための形態】
【００１１】
以下、実施の形態について図面を参照して説明する。
【００１２】
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えばノートブックタイプのパーソナルコンピュータ１０として実現されている。これ以外にも、電子機器は例えば、デジタルテレビであってもよい。図１に示すように、本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成されている。ディスプレイユニット１２には、ＬＣＤ（liquid crystal display）１７及びビデオカメラ２０が組み込まれている。ディスプレイユニット１２は、コンピュータ本体１１の上面が露出される開放位置とコンピュータ本体１１の上面を覆う閉塞位置との間を回動自在にコンピュータ本体１１に取り付けられている。
【００１３】
ビデオカメラ２０は、ディスプレイユニット１２の上端部のほぼ中央位置に設けられている。ビデオカメラ２０は、ユーザの画像を撮影するためのカメラである。このカメラ２０によって撮影される画像（映像）は、ユーザの手の形状および動きを認識するハンドジェスチャ認識に用いられる。なお、ビデオカメラ２０が設けられる位置はディスプレイユニット１２の上端部でなくてもよく、例えばディスプレイユニット１２の下端部であってもよい。さらに、ビデオカメラ２０は、例えばＵＳＢインタフェースを備えた外付けのビデオカメラでもよい。
【００１４】
コンピュータ本体１１は、薄い箱形の筐体を有しており、その上面には、キーボード１３、本コンピュータ１０を電源オン／電源オフするためのパワーボタン１４、入力操作パネル１５、タッチパッド１６、スピーカ１８Ａ，１８Ｂなどが配置されている。入力操作パネル１５上には、各種操作ボタンが設けられている。また、コンピュータ本体１１の右側面には、ＵＳＢケーブルやＵＳＢデバイスを接続するためのＵＳＢコネクタ１９が設けられている。
【００１５】
図２は、本コンピュータ１０のシステム構成を示す図である。  
本コンピュータ１０は、図２に示されているように、中央処理装置（ＣＰＵ）１０１、ノースブリッジ１０２、主メモリ１０３、サウスブリッジ１０４、グラフィクスプロセッシングユニット（ＧＰＵ））１０５、ビデオメモリ（ＶＲＡＭ）１０５Ａ、サウンドコントローラ１０６、ＢＩＯＳ−ＲＯＭ１０７、ＬＡＮコントローラ１０８、ハードディスクドライブ（ＨＤＤ）１０９、光ディスクドライブ（ＯＤＤ）１１０、ビデオカメラ２０、ＵＳＢコントローラ１１１Ａ、カードコントローラ１１１Ｂ、無線ＬＡＮコントローラ１１２、エンベデッドコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）１１３、ＥＥＰＲＯＭ１１４等を備える。
【００１６】
ＣＰＵ１０１は、本コンピュータ１０内の各部の動作を制御するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０９から主メモリ１０３にロードされる、オペレーティングシステム（ＯＳ）２０１、及びハンドジェスチャ認識プログラム２０２のような各種アプリケーションプログラムを実行する。ハンドジェスチャ認識プログラム２０２は、例えばビデオカメラ２０によって取得された各画像フレーム（つまり、映像）を用いてユーザの手の形状や手の動き（ハンドジェスチャ）を認識し、その認識結果に基づいて本コンピュータ１０の動作を制御するプログラムである。より詳しくは、本コンピュータ１０によって実行される幾つかのアプリケーションプログラムが、ハンドジェスチャの認識結果に基づいて制御される。また、ハンドジェスチャ認識プログラム２０２はこれ以外にも映像に含まれる顔（顔画像）を検出し認識する。
【００１７】
ハンドジェスチャ認識プログラム２０２によって制御されるアプリケーションプログラム（ハンドジェスチャ対応アプリケーション）としては、例えば、ウェブブラウザ、メディアコンテンツ再生アプリケーション、ファイルシステムによって管理されている多数のフォルダおよび多数のファイルを閲覧するためのファイル操作プログラム、ＴＶ放送番組等のコンテンツを再生するＴＶアプリケーションである。
【００１８】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０７に格納されたＢＩＯＳ（basic input/output system）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００１９】
ノースブリッジ１０２は、ＣＰＵ１０１のローカルバスとサウスブリッジ１０４との間を接続するブリッジデバイスである。ノースブリッジ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１０２は、例えば、PCI EXPRESS規格のシリアルバスなどを介してＧＰＵ１０５との通信を実行する機能も有している。
【００２０】
ＧＰＵ１０５は、本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７を制御する表示コントローラである。このＧＰＵ１０５によって生成される表示信号はＬＣＤ１７に送られる。
【００２１】
サウスブリッジ１０４は、ＰＣＩ（Peripheral Component Interconnect）バス上の各デバイス及びＬＰＣ（Low Pin Count）バス上の各デバイスを制御する。また、サウスブリッジ１０４は、ＨＤＤ１０９及びＯＤＤ１１０を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラを内蔵している。さらに、サウスブリッジ１０４は、サウンドコントローラ１０６との通信を実行する機能も有している。
【００２２】
サウンドコントローラ１０６は音源デバイスであり、再生対象のオーディオデータをスピーカ１８Ａ，１８Ｂに出力する。ＬＡＮコントローラ１０８は、例えばIEEE 802.3規格の有線通信を実行する有線通信デバイスであり、一方、無線ＬＡＮコントローラ１１２は、例えばIEEE 802.11規格の無線通信を実行する無線通信デバイスである。ＵＳＢコントローラ１１１Ａは、外部機器との通信を実行する。カードコントローラ１１１Ｂは、コンピュータ本体１１に設けられたカードスロットに挿入される、ＳＤカードのようなメモリカードに対するデータの書き込み及び読み出しを実行する。
【００２３】
ＥＣ／ＫＢＣ１１３は、電力管理のためのエンベデッドコントローラと、キーボード１３及びタッチパッド１６を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１１３は、ユーザによるパワーボタン１４の操作に応じて本コンピュータ１０を電源オン／電源オフする機能を有している。
【００２４】
次に図３を参照して、ハンドジェスチャ認識プログラム２０２の動作について説明する。  
図３は、本実施形態のハンドジェスチャ認識プログラム２０２の機能や動作のシステム構成を示すブロック図の一例である。  
ハンドジェスチャ認識プログラム２０２は、ハンドジェスチャ認識部３００、顔検出部３０４、及び制御部３０５から構成される。ハンドジェスチャ認識部３００は、手形状検出部３０１、手の動き検出部３０２、及び機能実行部３０３から構成される。また、制御部３０５は、操作モード選択部３０６、グラフィカルユーザインタフェース（ＧＵＩ）表示部３０７、位置記憶部３０８、及び位置設定部３０９から構成される。
【００２５】
具体的な各ブロックの機能について説明する前に、本実施形態で実施されるハンドジェスチャ認識プログラム２０２を使用するインタフェース（以下、ハンドジェスチャインタフェースとも称す）における操作モード選択の方法の概要について説明する。
【００２６】
ハンドジェスチャ認識プログラム２０２はアプリケーションを操作するための複数の操作の種類にそれぞれ対応する複数の操作モードを有している。操作の種類（操作モード）の例としては、例えば、AVコントロール（再生、一時停止、早送り等）、セレクト操作（矢印キー、決定、戻る）、マウスカーソル操作、ランチャーメニュー選択操作、音量操作等が挙げられる。
【００２７】
ハンドジェスチャ対応のアプリケーションをユーザが使用する際、ユーザは必要に応じて複数の操作モードを選択的に使用して、そのアプリケーションを操作するかもしれない。認識可能なハンドジェスチャの種類には限りがある等の理由により、ハンドジェスチャインタフェースによって上述のすべての種類の操作を同時にサポートすることは困難である。従って、操作モードを切り替える必要が生じる。また、ユーザにとって、アプリケーションの使用時に、複数の操作モードをスムーズに切り替えることができなければ不便である。そこで、本実施形態では、ビデオカメラ２０によって撮影された映像（画像フレーム群）を用いてユーザの顔と操作トリガとなる特定の手形状（例えば掌）とが検出され、顔の位置に対する特定の手形状の位置の相対位置に基づいて、複数の操作モードの一つが選択される。複数の操作モードに対しては、顔に対するそれら操作モードそれぞれの位置（相対位置）が予め決められている。ユーザは、顔の位置に対して予め設定された複数の操作モードの位置の内、目的の操作モードに対応する位置に手（例えば掌）を出すことで、その目的の操作モードを選択することができる。操作モードを切り替える際には、ユーザは手をいったん下げ、別の目的の操作モードに対応する位置に再びが手（例えば掌）を出すことで、その別の目的の操作モードに切り替えることができる。
【００２８】
以下、図３の各ブロックの機能等について述べる。  
ビデオカメラ２０によって撮影された映像は、ハンドジェスチャ認識部３００及び顔検出部３０４に送られる。顔検出部３０４は、ビデオカメラ２０から送られてきた映像を用いて、映像内の顔（顔画像）を認識する。また、顔検出部３０４は、映像内における顔の位置を検出する。映像内の顔の位置とは、例えば、画像フレーム内における顔（顔画像）の位置である。また、顔検出部３０４は、顔の位置以外に顔の傾きや顔の向きを検出する。例えば、映像内の顔が所定の軸に対して左にいくらか傾いていた場合、顔検出部３０４は、映像内の顔が左にいくらか傾いていると認識する。さらに、顔検出部３０４は、認識された顔（顔画像）のサイズも検出する。さらに、顔検出部３０４はこれらの顔に関する検出結果を操作モード選択部３０６に送る。また、顔検出部３０４は、制御部３０５からの制御命令に従い動作する。制御命令は、例えば、映像内に複数の顔が含まれていた場合、認識可能な複数の顔の内最もサイズの大きい顔を認識対象の顔として、複数の顔から検出すべき顔を選択させる制御命令でもよい。
【００２９】
ハンドジェスチャ認識部３００は、ビデオカメラ２０から送られてくる映像を用いてユーザのハンドジェスチャ（手の形状および動き）の認識または解釈を行う（以下、認識と称す）。ハンドジェスチャ認識部３００は、上述の複数の操作モードを有しており、制御部３０５によって指定された操作モードに対応するハンドジェスチャ認識を実行する。各操作モードには、認識対象の１以上のハンドジェスチャと、これら１以上のハンドジェスチャが認識された時に実行すべき機能とが定義されていてもよい。ハンドジェスチャ認識部３００は、制御部３０５によって選択された操作モードで動作する。つまり、ハンドジェスチャ認識部３００は、選択された操作モードで使用されるべきハンドジェスチャに関連する手の形状および動きを認識し、その認識結果に応じてハンドジェスチャ対応アプリケーション３１１にコマンドを送信し、これによってコンピュータ１０の動作を制御する。
【００３０】
手形状検出部３０１は、ビデオカメラ２０から送られてきた映像内の手の形状（または、手形状と称す）を認識し、その映像内の手形状の位置を検出する。映像内の手形状の位置は、画像フレーム内における手形状（手形状画像）の位置である。手形状検出部３０１によって検出される手形状には、握り手（fist）、特定の指（親指）を立てたような手形状（thumb up）、掌（palm）等がある。手形状検出部３０１は、手形状の検出結果を機能実行部３０３及び操作モード選択部３０６に送る。
【００３１】
手の動き検出部３０２は、ビデオカメラ２０から送られてきた映像内の手の動きを検出する。手の動きとは、例えば検出された手が上下または左右に移動する動きやビデオカメラ２０に対する前後の動きなどである。手の動き検出部３０２によって検出された手の動きの検出結果は機能実行部３０３に送られる。
【００３２】
機能実行部３０３は、ハンドジェスチャの認識結果に基づき、つまり、手形状検出部３０１からの手形状の検出結果及び手の動き検出部３０２からの手の動きの検出結果に基づき、ハンドジェスチャ対応アプリケーション３１１にコマンドを送る。例えば、映像の再生を指示する手の動きが検出されたならば、機能実行部３０３は、映像の再生を指示するコマンドをハンドジェスチャ対応アプリケーション３１１に送る。また、機能実行部３０３は、ハンドジェスチャの認識結果に応じてＬＣＤ１７上の操作画面（グラフィカルユーザインタフェース）に変化が生じるように、ハンドジェスチャの認識結果にしたがって操作画面（グラフィカルユーザインタフェース）の表示形態を制御する。なお、ここでは、機能実行部３０３はがハンドジェスチャ認識部３００内の１つのモジュールとして実現されている場合を例示したが、機能実行部３０３は制御部３０５内の１つのモジュールとして実現されてもよい。
【００３３】
ハンドジェスチャ対応アプリケーション３１１は、ハンドジェスチャ認識プログラム２０２等によって制御されるハンドジェスチャに対応したアプリケーションである。ハンドジェスチャ対応アプリケーション３１１は機能実行部３０３からのコマンドに従いその機能を実行する。
【００３４】
ＧＰＵ１０５は、グラフィカルユーザインタフェース表示部３０７機能実行部３０３またはグラフィカルユーザインタフェース表示部３０７からのコマンド等に従いＬＣＤ１７に操作モード画面（グラフィカルユーザインタフェース）などを表示させる。
【００３５】
制御部３０５は、ハンドジェスチャ認識プログラム２０２の制御を行う。例えば、制御部３０５は、ハンドジェスチャ認識部３００に対して、認識対象とすべき手形状を指示してもよい。また、制御部３０５は、顔検出部３０４に対して、顔認識処理の開始を指示してもよい。
【００３６】
次に、制御部３０５に含まれる位置設定部３０９について説明する。  
位置設定部３０９は、複数の操作モードそれぞれの位置を設定する。詳細は後述するが、各操作モードの位置は顔の位置に対する位置（相対位置）に設定することができる。位置設定部３０９は操作モード毎にこの相対位置の設定を行う。この相対位置は、各操作モードの基準位置として用いられる。
【００３７】
位置記憶部３０８は、位置設定部３０９によって設定された各操作モードの位置に関するデータを格納する。
【００３８】
操作モード選択部３０６は、顔検出部３０４による顔検出結果、手形状検出部３０１による手形状検出結果、及び位置記憶部３０８に格納されている位置に関するデータに基づいて、複数の操作モードの中から何れかの操作モードを選択する。この選択方法の具体的な説明は後述するが、例えば、顔の検出位置に対する特定の手形状の検出位置の相対位置を示す値が算出され、その値に基づいて、複数の操作モードの一つが選択される。例えば、操作モード選択部３０６は、何れかの操作モードを選択する際に、顔の検出位置に対する手の検出位置の相対位置を示す値を算出し、算出された値と各操作モードに対応する各基準値との間の一致度を算出する。操作モード選択部３０６は、算出した各一致度を比較して、その中で最も一致度の高い一致度を判定する。さらに、操作モード選択部３０６は、この一致度と所定の閾値とを比較する。操作モード選択部３０６は、所定の閾値よりも高い一致度を有する操作モードを選択する。操作モード選択部３０６は、選択された操作モードを、グラフィカルユーザインタフェース表示部３０７およびハンドジェスチャ認識部３００に通知する。
【００３９】
グラフィカルユーザインタフェース表示部３０７は、操作モード選択部３０６によって通知された操作モードに対応する操作画面（グラフィカルユーザインタフェース）を、ＧＰＵ１０５を介してＬＣＤ１７の表示画面上に表示する。
【００４０】
次に、図４を参照し、顔の位置と各操作モードの位置との関係について説明する。  
図４は、本実施形態のハンドジェスチャ認識プログラムによって使用される操作モードの配置の一例を示す図である。  
各操作モードの位置は、ビデオカメラ２０によって撮影される画像内における顔の位置を基準に予め決められている。顔４０６は、コンピュータ１０を使用するユーザの顔を示している。顔４０６の位置に対して例えば３つの操作モードが割り当てられている。３つの操作モードは、セレクト操作４００、ＡＶコントロールメニュー４０２、及び音量操作４０４である。図４に示されているように、セレクト操作４００、ＡＶコントロールメニュー４０２、及び音量操作４０４は、ユーザから見て、顔４０６の左側、右側、及び上側に配置されている。ユーザがユーザから見て自身の顔の左側の位置に手を出すと、セレクト操作４００が選択される。ユーザがユーザから見て自身の顔の右側の位置に手を出すと、ＡＶコントロールメニュー４０２が選択される。ユーザがユーザから見て自身の顔の上側の位置に手を出すと、音量操作４０４が選択される。
【００４１】
なお、３つの操作モードは各々、図の点線で示されるように四角の一定の領域を持っているが、四角以外にも円形や三角の領域でもよい。さらに、図では操作モードの領域は２次元の領域で示されているが、例えば３次元の空間の操作モードの領域を顔４０６の周辺に配置してもよい。セレクト操作４００は、アプリケーション内での方向を選択するため操作モードであり、「矢印キー」、「決定」、「戻る」といったコマンドをアプリケーションに送るために用いられる。ＡＶコントロールメニュー４０２は、映像再生機器等で使用される操作モードの１つであり、「再生」、「一時停止」、「早送り」等のコマンドをアプリケーションに送るために用いられる。音量操作４０４は、アプリケーションの使用時に例えばスピーカ１８Ａ、１８Ｂ等から出力される音の音量調節等の操作を行う操作モードである。
【００４２】
次に、図５乃至図７を参照し、図４に示した３つの各操作モードについて説明する。  
図５は、本実施形態の操作モードの１つであるセレクト操作モードの一例を示す図である。  
図５の左側の図は、顔４０６の位置に対してユーザが左側に手を出した場合を想定している。ユーザが顔４０６の位置に対して左側に手を出すことによって、図５の右側に示されるような操作画面５００がＬＣＤ１７に表示される。操作画面５００は、セレクト操作モードに対応したグラフィカルユーザインタフェースである。操作画面５００には、図に示されるように、例えばセレクトキー５０１、５０２、５０３、及び５０４が表示されている。セレクトキー５０１、５０２、５０３、及び５０４は、各々上、右、下、及び左を示す矢印のマークで示される。なお、セレクトキー５０１、５０２、５０３、及び５０４が示す向きは、上、右、下、及び左に限らず、例えば右斜め上や、左斜め下等を示していてもよい。さらに、セレクトキー５０１、５０２、５０３、及び５０４の形状は、ユーザがセレクトしたい方向の矢印のマークでなくてもよく、例えばセレクトキー５０１、５０２、５０３、及び５０４の全てを円形のマークで示してもよい。あるいは、セレクトキー５０１、５０２、５０３、及び５０４に、各々に「上」、「右」、「下」、「左」の文字を示した任意のマークを使用してもよい。手のマーク５０５は、「エンター」に対応するマークである。また、セレクトキー５０１、５０２、５０３、及び５０４は、ユーザによってユーザがセレクトしたい方向に手を移動させた時に、画面上の色を変えるなどのエフェクト効果を示してもよい。
【００４３】
セレクト操作モードにおける、ユーザの手の動き（ジェスチャー）の一例について説明する。ユーザが、右方向のセレクトキー５０２を選択したい場合、ユーザは手を右に振ることによってセレクトキー５０２が選択され、アプリケーションに右の選択したことを示すコマンド（右矢印キーコマンド）が送られる。なお、右方向のセレクトキーが５０２を選択したい場合のジェスチャーは右に手を振る以外にも、例えば手の形状を変えずに手を右に移動させてもよい。手（例えば掌）を押し出すようなジェスチャーによって、「決定」を示すコマンド（エンターキーコマンド）をアプリケーションに送る。エンターキーコマンドをアプリケーションに入力するためのジェスチャーは、手を押し出す以外にも、例えば手を特定の形状に変化させるジェスチャーでもよい。
【００４４】
図６は、本実施形態の操作モードの１つであるＡＶコントロールメニューモードの一例を示す図である。  
図６の左側の図は、顔４０６の位置に対してユーザが右側に手を出した場合を想定している。ユーザが顔４０６の位置に対して右側に手を出すことによって、図６の右側に示されるようなＡＶコントロールメニュー画面６００がＬＣＤ１７に表示される。ＡＶコントロールメニュー画面６００はＡＶコントロールメニューモードに対応するグラフィカルユーザインタフェースである。ＡＶコントロールメニュー画面６００は、アイコン６０１乃至６０７から構成される。アイコン６０１は、アプリケーションによって再生される映像等の再生または一時停止を行う機能を示したアイコンである。アイコン６０２乃至６０５は、アプリケーションによって再生される映像等の早送り、巻き戻し、またはチャプターの移動等の機能を示すアイコンである。アイコン６０６は、アプリケーションを終了する機能を示したアイコンである。アイコン６０７は、他の特定の機能を実行するためのアイコンである。これら以外にも、映像等を再生するアプリケーションの制御に必要な機能を示したアイコンが表示されてもよい。
【００４５】
ＡＶコントロールメニューモードにおける、ユーザのジェスチャーの一例について説明する。ユーザが手を左または右に振ることによって、メニュー選択のフォーカスがアイコン６０１乃至６０７間で移動する。フォーカスをアイコン６０１乃至６０７間で移動する代わりに、ユーザが手を左または右に振ることによって、画面６００に表示されているアイコン６０１乃至６０７の各々が移動してもよい。例えば、図６の右側に示されようにアイコンが配置されていた場合、ユーザが右に手を一回振ることによって、現在一番手前に位置しているアイコン６０１がアイコン６０３の位置に移動すると同時に、アイコン６０２が一番手前に位置に移動する。また、ユーザが右に手を３回振った場合、現在一番手前に位置しているアイコン６０１がアイコン６０７の位置に、アイコン６０６が一番手前に位置の位置に移動する。このように、ユーザが使用したい機能を示したアイコンを一番手前の位置、図中ではアイコン６０１の位置に、手を複数回振ることによって移動させる。その後、ユーザは手（例えば掌）を前に押し出す等のジェスチャーを行うことによって、一番手前の位置に位置するアイコンが示す機能を実行するためのコマンドをアプリケーションに送ることができる。なお、手を振る以外のジェスチャーとして、例えば手の形状を変えずに、アイコンを移動させたい方向に手を移動させるジェスチャーを用いてもよい。
【００４６】
図７は、本実施形態の操作モードの１つである音量操作モードの一例を示す図である。  
図７の左側の図は、ユーザが顔４０６の位置に対して手を上側に出した場合を想定している。ユーザは顔４０６の位置に対して上側に手を出すことによって、例えば図７の右側に示されるような操作画面７００がＬＣＤ１７に表示される。操作画面７００は音量操作モードに対応するグラフィカルユーザインタフェースである。この操作画面７００は、円を描く矢印７０１を示している。ユーザが音量を調節したい場合は、矢印７０１に示すような円を描くように手を動かせばよい。例えば、ユーザが音量を上げたいならば、矢印７０１が示す方向（時計回り）に手を動かせばよい。反対に、音量を下げたい場合は矢印７０１が示す方向と逆の方向（反時計回り）に手を動かせばよい。また、ユーザが円を描くように手を動かした時、矢印７０１の表示を変化させてもよい。例えば、音量を上げるためにユーザが手を時計周りに動かした場合、矢印７０１の形状と現在の音量のレベルを対応させて、矢印７０１の形状を変化させてもよい。
【００４７】
以上のような各操作モードにおけるグラフィカルユーザインタフェースに関しては様々な表示形態を用いることができる。また、各操作メニューモードにおける、各操作と手のジェスチャーとの対応関係は様々なものを利用することができる。
【００４８】
このように、顔４０６の位置に対する手の位置の相対的な位置に基づいて、その位置に対応した操作モードが選択される。その後、選択された操作モードにおいて、手のジェスチャーを行うことによってユーザはその操作モードで様々な機能を行うことができる。
【００４９】
次に図８を参照し、図４に示すような操作モードの配置とは異なる操作モードの別の配置の例について説明する。  
図８は、本実施形態における操作モードの配置の他の例を示す図である。  
図８では、４つの操作メニューモードが顔４０６の位置に対して配置されている。４つの操作メニューは、セレクト操作４００、ＡＶコントロールメニュー４０２、音量操作４０４、及びマウスカーソル操作８００である。４つの操作メニューは、図に示すように顔４０６の位置に対して例えば放射状に等間隔に配置されていてもよい。なお、各操作メニューモードの領域、図中の点線で示される領域のサイズや形状等は図に示されるような領域以外でもよい。
【００５０】
４つの操作メニューの中で、図４と同様の機能については説明を省略する。  
マウスカーソル操作８００について、ユーザが前述した他の操作メニューの選択方法と同様に、手の位置を顔４０６の位置に対して右下に出すとマウスカーソル操作８００が選択される。マウスカーソル操作８００は、例えばタッチパッド１６のようなポインティングデバイスの操作によって行われる操作と同等の機能をハンドジェスチャによって行う操作モードの１つである。例えば、ＬＣＤ１７に表示されるマウスカーソルを手の相対的な移動距離に基づいて移動させる。また、手の形状を変えることによって、ＬＣＤ１７に表示されている所望の場所をクリックすることができる。
【００５１】
以上のように顔の４０６の位置と手の相対的な位置関係に基づいて、操作メニューモードが選択され、選択された操作メニューモードにおける操作を様々なハンドジェスチャに従って行うことができる。すなわち、ユーザは複数の操作モードによって操作可能なハンドジェスチャ対応のアプリケーションをハンドジェスチャで操作する際に、複数の操作モードを例えば手の形状を変える等の特定のハンドジェスチャを行うことなく、顔の位置とユーザが出した手の位置との相対的な位置に基づき操作モードをスムーズに選択することができる。なお、グラフィカルユーザインタフェースはＬＣＤ１７に必ずしも表示される必要はない。つまり、ユーザは顔４０６の位置に対して出した手の位置によって操作モードを選択し、選択された操作モードにおけるハンドジェスチャをグラフィカルユーザインタフェースが表示されている場合と同様の方法で行ってもよい。ＡＶコントロールメニューモードにおいては、「再生」、「一時停止」、「早送り」に対して異なる手形状を割り当ててもよい。
【００５２】
図９は、操作モードを選択するまでの過程を説明するための図である。  
図９は、図４の場合と同様に、顔４０６の位置に対して３つの操作モードがある場合を想定している。図９において、Ｐ１は顔４０６の位置に対するセレクト操作モード４００の領域（領域の中心位置）の相対位置を示し、Ｐ２は顔４０６の位置に対するＡＶコントロールメニューモード４０２の領域（領域の中心位置）の相対位置を示し、Ｐ３は顔４０６の位置に対する音量操作モードの領域（領域の中心位置）の相対位置を示している。またＰ４は、顔４０６の位置に対する操作開始トリガの手形状（例えば掌）の位置（掌の中心位置）の相対位置を示している。顔４０６の位置は、その顔４０６の中心位置であってもよい。Ｐ１〜Ｐ４のいずれも、顔４０６の位置を基準に定められている。ハンドジェスチャ認識プログラム２０２は、各操作モードの領域の位置Ｐ１乃至Ｐ３それぞれと手の位置Ｐ４との間の距離（一致度または該当度）を算出する。算出された一致度の中で最も高い一致度を有する操作モードが選択される。一致度が高いとは、図９において、例えばＰ２とＰ４との間の距離がＰ１とＰ４との間の距離またはＰ３とＰ４との間の距離よりも短いことを意味している。なお、Ｐ１乃至Ｐ３は、各操作モードの中心位置以外でもよく、例えば各操作モードの領域の中で顔４０６に最も近い位置や最も遠い位置でもよい。
【００５３】
また、一致度が所定の閾値を越えることによって、閾値よりも高い一致度を有する操作モードが選択されてもよい。つまり、図９において、ＡＶコントロールメニュー４０２に対応する一致度であるＰ２とＰ４との間の距離が、Ｐ１またはＰ３とＰ４との間の距離によって示される他の一致度と比較して短いが、例えばＡＶコントロールメニュー４０２に対応する一致度が所定の閾値を越えていない場合は、その時点ではまだＡＶコントロールメニュー４０２が選択されない。その後、手の位置Ｐ４または顔４０６の位置が移動し、ＡＶコントロールメニュー４０２に対応する一致度が高くなり、さらにこの一致度が所定の閾値を越えると、ＡＶコントロールメニュー４０２が選択される。
【００５４】
次に、ユーザが出した手の位置Ｐ４に従って算出される一致度が所定の閾値を越えていない場合に実行される処理について図９及び図１０を参照して説明する。  
図１０は、本実施形態の操作モードメニュー画面の一例を示した図である。  
図１０は、ＡＶコントロールメニューＧＵＩ１００１、セレクト操作ＧＵＩ１００２、及び音量操作ＧＵＩ１００３を表示した操作画面８００を示している。これら３つのＧＵＩは、図９に示すような顔４０６に対する３つの操作モードの位置と対応している。例えば、画面８００上の上側に音量操作モードに対応した音量操作ＧＵＩ１００３が表示されている。なお、画面８００は例えばＬＣＤ１７に表示される。
【００５５】
一致度が閾値を越えていない場合、図１０に示すように、ユーザが選択可能なすべての操作モードのＧＵＩを表示する。ただし、ユーザが手を出した時点で既に一致度が閾値を越えていた場合でも、図１０に示されるような画面８００を表示し、その後、所定の時間（例えば、０．５秒程の短時間）で画面８００はフェードアウトし、閾値を越えた一致度に対応した操作モードのＧＵＩが表示されるようにしてもよい。このように、選択可能なすべての操作モードのＧＵＩを表示することによって、もしユーザが選択可能な操作モードの種類やその操作モードの位置を知らない場合であっても、ユーザにそれを知らせることができる。さらに、ユーザが手を出してから所望の操作モードが選択されるまでの過程及び状態がアニメーションによって示されるため、ユーザは所望の操作モードを選択するまでの過程や手順を理解しやすくなる。
【００５６】
また、一致度が所定の閾値を越えなかった場合、図１０に示すように３つの操作モードのＧＵＩそれぞれのサイズを変えて画面８００に表示してもよい。具体的には、図９に示すように３つの操作モードの各々に対応した３つの一致度が算出され、算出された一致度と各操作モードのＧＵＩのサイズを関連付ける。例えば、算出された３つの一致度の内、最も一致度の高い一致度に対応した操作モードのＧＵＩを画面８００上に最も大きく表示してもよい。このようにすることで、手の位置Ｐ４の変化によって算出される一致度の変化に応じて各操作モードのＧＵＩのサイズも変化するため、ユーザは視覚的にどの操作モードが選択されようとしているか理解しやすくなる。
【００５７】
次に図１１を参照し、前述したような一致度の算出時等に利用する、操作モード領域の中心位置Ｐ１乃至Ｐ３の設定に関して述べる。  
図１１は、本実施形態の各操作モード位置の設定を説明するための図である。  
Ｐ１乃至Ｐ３は、一致度を算出する際に利用される以外にも、顔４０６の位置に対する各操作モードの位置を定めるために利用される。つまり、Ｐ１乃至Ｐ３は各操作モードの位置の基準となる位置でもある。
【００５８】
具体的に説明すると、始めに図１１に示されるように、ＸＹの平面座標系において、原点Ｐ０に検出された顔４０６の中心位置を設定する。Ｐ０は、顔の中心以外にも、顔４０６の目の位置の中点や、鼻の位置でもよい。次に、顔４０６のサイズが計測される。図中では、横がｘ、縦がｙの四角の点線で囲まれた領域を顔４０６のサイズとする。計測された顔４０６のサイズに基づき、Ｐ１乃至Ｐ３の座標が定まる。例えば、Ｐ１及びＰ２の座標を図に示すように、（-ax、-by）及び（ax、-by）となるように、パラメータa及びbを設定する。同様に、Ｐ３の座標が(０、cy)となるようにパラメータｃを設定する。なお、パラメータa、b、及びcに関して、例えば、Ｐ０とＰ１との間の距離と、Ｐ０とＰ２との間の距離と、Ｐ０とＰ３との間の距離とが互いに等しくなるようにパラメータa、b、及びcを設定してもよいが、それ以外にも任意のパラメータを設定することができる。
【００５９】
以上のような、図１１に示されるような各操作モードの位置の基準となる位置Ｐ１乃至Ｐ３の設定方法とは異なる方法について説明する。  
図示されないが、例えば、Ｐ１乃至Ｐ３の位置を上述したような方法で決定し、その後、Ｐ１乃至Ｐ３の位置にユーザが任意の操作モードを自由に設定できるようにしてもよい。例えば、上述したようなセレクト操作４００、ＡＶコントロールメニュー４０２、音量操作４０４、及びマウスカーソル操作８００の４つの操作モードが利用可能な操作モードであった場合、ユーザはＰ１の位置にこれら４つの操作モードから選択される任意の１つの操作モードを設定することができる。Ｐ２及びＰ３に関しても同様に設定することができる。
【００６０】
さらに他の操作モードの位置の設定方法について、例えばＰ１乃至Ｐ３の位置を図１１に示したような方法で設定するのではなく、ユーザが自由にＰ１乃至Ｐ３の位置を設定できる設定方法でもよい。例えば、前述したような利用可能な操作モードが４つあった場合、操作画面上に４つの操作モードの位置候補を表示し、ユーザは表示された位置候補をキャリブレーションのような操作によって調整することによって、自由に各操作モードの位置を設定することができる。
【００６１】
次に図１２を参照し、図１１で述べたＰ１乃至Ｐ３の位置と手の位置Ｐ４との関係について説明する。  
図１２は、本実施形態の操作モードの選択の過程における一致度の算出を説明する図である。  
図１１を用いて説明したように、操作モードの基準点Ｐ１乃至Ｐ３が設定された後、図１２の手の位置Ｐ４に示されるような手形状の手をユーザが出した場合を想定して述べる。ユーザが図に示すような座標位置、すなわち顔４０６の位置に対して左上の位置、に手を出すことによって、ハンドジェスチャ認識プログラム２０２は、顔の位置に対する手の位置の相対位置と３つの操作モードそれぞれの基準値との間の一致度、つまり、手の位置Ｐ４と基準値Ｐ１との間の距離、手の位置Ｐ４と基準値Ｐ２との間の距離、手の位置Ｐ４と基準値Ｐ３との間の距離を算出する。図中において、Ｐ３とＰ４との間の距離が最も短いので、基準値Ｐ３と関連付けられた操作モードの一致度が最も高いことになる。なお、前述したような一致度の閾値を考慮しない場合、一致度が最も高い基準値Ｐ３と関連付けられた操作モードが選択される。
【００６２】
図１３を参照して、上述したようなハンドジェスチャ認識プログラム２０２によって実行される操作モードの切り替え処理の手順を説明する。  
ブロック１３００で、ハンドジェスチャ認識プログラム２０２が実行される。なお、ハンドジェスチャ認識プログラム２０２はハンドジェスチャ認識プログラムに対応したアプリケーションが実行されると同時に自動的に実行されるようにしてもよい。
【００６３】
ブロック１３０２で、ハンドジェスチャ認識プログラム２０２は、顔検出部３０４によってユーザの顔４０６が検出されたかを判定する。顔４０６が検出されなかった場合、顔４０６が検出されるまでハンドジェスチャ認識プログラム２０２は待機する。顔４０６が検出された場合、ブロック１３０４に進む。
【００６４】
ブロック１３０４で、ハンドジェスチャ認識プログラム２０２は、手形状検出部３０１によってユーザの手が検出されたかを判定する。ここで検出対象とされる手は、特定の手形状の手（例えば掌）である。もちろん、掌に限る必要はなく、握り手のような手形状を検出してもよい。
【００６５】
手が検出されなかった場合、ブロック１３０２に戻り、顔４０６と特定の手形状の手の双方が検出されるまでハンドジェスチャ認識プログラムは待機する。ブロック１３０４で手が検出された場合、ブロック１３０６に進む。なお、ブロック１３０４はブロック１３０２よりも前に処理されてもよい。すなわち、顔４０６が検出される前に手が検出され、その後、顔４０６が検出されるとブロック１３０６に進む処理手順でもよい。
【００６６】
ブロック１３０６で、ハンドジェスチャ認識プログラム２０２の操作モード選択部３０６は、ブロック１３０２で検出された顔４０６の位置及びブロック１３０４で検出された手の位置に基づき、顔４０６の位置に対する手の位置の相対位置を示す値を算出し、その値と、複数の操作モードそれぞれに対応する基準との間の一致度を算出する。
【００６７】
ブロック１３０８で、操作モード選択部３０６がブロック１３０６で算出された一致度に基づき、顔４０６に対する手の相対位置が、顔４０６に対するセレクト操作モードの相対位置に該当するか判定する。セレクト操作モードに該当するとは、例えば、ブロック１３０６で算出された複数の操作モードのそれぞれに対応した一致度の内最も高い一致度がセレクト操作モードに対応しており、かつその一致度が閾値を越えていることを意味する。セレクト操作モードに該当した場合、ブロック１３１８に進む。セレクト操モードに該当しない場合、ブロック１３１０に進む。
【００６８】
ブロック１３１０で、操作モード選択部３０６は、ブロック１３０６で算出された一致度に基づき、顔４０６に対する手の相対位置が、顔４０６に対するＡＶコントロールメニューモードの相対位置に該当するか判定する。該当するかどうかの判定はブロック１３０８の説明で述べたことと同様である。ＡＶコントロールメニューモードに該当した場合、ブロック１３２４に進み、ＡＶコントロールメニューモードに該当しない場合ブロック１３１２に進む。
【００６９】
ブロック１３１２で、操作モード選択部３０６は、ブロック１３０６で算出された一致度に基づき、顔４０６に対する手の相対位置が、顔４０６に対する音量操作モードの相対位置に該当するか判定する。該当するかどうかの判定はブロック１３０８の説明で述べたことと同様である。音量操作モードに該当した場合、ブロック１３３０に進み、音量操作モードに該当しない場合ブロック１３１４に進む。
【００７０】
ブロック１３１４で、ブロック１３０８、ブロック１３１０、及びブロック１３１２において選択可能な操作モードの何れにも該当しない場合、表示可能な全ての操作モードのＧＵＩを図１０の操作画面８００に示されるように表示する。また図１０を参照して上述したように、グラフィカルユーザインタフェース表示部３０７がブロック１３０６で算出された複数の一致度に対応させて各操作モードのＧＵＩの大きさを変化、変更、または調整して画面５００に表示する。つまり、各操作モードのＧＵＩは、その操作モードに対応する一致度に基づくサイズで表示される。
【００７１】
ブロック１３１６で、操作モード選択部３０６は、手の動き検出部３０２および顔検出部３０４それぞれから受信される検出結果に基づき、手の位置または顔の位置が変化したかどうかを判定する。手または顔の位置の変化が検出された場合、ブロック１３０６に進み、操作モード選択部３０６は、再び一致度を算出する。
【００７２】
次に、ブロック１３０８において、顔４０６に対する手の相対位置がセレクト操作モードに該当すると判定された場合について説明する。  
この場合、ブロック１３１８に進み、機能実行部３０３の指示に従って、操作画面５００のようなセレクト操作モードのＧＵＩが表示される。ブロック１３２０で、ハンドジェスチャ認識部３００は、セレクト操作ハンドジェスチャを、つまりセレクト操作モードで使用されるべきハンドジェスチャに関連する１以上の手の形状および動きを、認識する。そして、ハンドジェスチャ認識部３００は、認識結果に基づいて、セレクト操作モードで規定されたコマンド（矢印キー、決定、等）を発行する。
【００７３】
ブロック１３２２で、ハンドジェスチャ認識部３００は手を下げる動きを検出したかを判定する。手を下げる動きを検出しない場合ブロック１３２０に戻り、再びセレクト操作モードにおけるジェスチャーを認識する。ハンドジェスチャ認識部３００が手を下げる動きを検出した場合、ブロック１３０２に戻る。つまり、ユーザが手を下げるというジェスチャーを行うことによってセレクト操作モードが選択された状態が解除される、すなわちセレクト操作モードの操作が終了される。なお、手を下げるというジェスチャーは、例えばビデオカメラ２０によって撮影できる撮影領域の外に手を移動させるようなジェスチャーである。もちろん、手を下げるというジェスチャーは、ブロック１３２０でハンドジェスチャ認識部３００が認識するセレクト操作モードにおけるジェスチャーに含まれないジェスチャーであればよく、特定の手形状の変化を示すジェスチャーであってもよい。
【００７４】
このように、ユーザは手を下げるという簡単な手の動きやジェスチャーによって操作モードを終了させ、さらにその後、上述したように手を所定の位置に再び出すことによって操作モードを容易に切り替えることができる。
【００７５】
ブロック１３１０で、顔４０６に対する手の相対位置がＡＶコントロールメニューモードに該当すると判定された場合、ブロック１３２４に進む。ブロック１３２４で、機能実行部３０３の指示に従って、操作画面６００のようなＡＶコントロールメニューのＧＵＩが表示される。ブロック１３２６で、ハンドジェスチャ認識部３００は、ＡＶコントロールメニューハンドジェスチャを、つまりＡＶコントロールメニューモードで使用されるべきハンドジェスチャに関連する１以上の手の形状および動きを、認識する。そして、ハンドジェスチャ認識部３００は、認識結果に基づいて、ＡＶコントロールメニューモードで規定されたコマンド（再生、一時停止、早送り、等）を発行する。
【００７６】
ブロック１３２８で、ハンドジェスチャ認識部３００が手を下げる動きを検出したかを判定する。手を下げる動きが検出された場合、ブロック１３０２に戻り、ＡＶコントロールメニューモードの操作が終了した状態になる。
【００７７】
同様に、ブロック１３１２で、顔４０６に対する手の相対位置が音量操作モードに該当すると判定された場合、ブロック１３３０に進む。ブロック１３３０で、機能実行部３０３の指示に従って操作画面７００のような音量操作のＧＵＩが表示される。ブロック１３３２で、音量操作モードにおけるジェスチャーをハンドジェスチャ認識部３００が認識する。ブロック１３３４で、ハンドジェスチャ認識部３００が手を下げる動きを検出したかを判定する。手を下げる動きが検出された場合、ブロック１３０２に戻り、音量操作モードの操作が終了した状態になる。
【００７８】
次に図１４を参照し、さらに顔４０６の向きをも考慮して、顔４０６に対する手の相対位置に対応する操作モードを選択する処理について説明する。
【００７９】
顔４０６の向きが図１４に示されるように左に傾いていた場合において、ハンドジェスチャ認識プログラム２０２は顔４０６の向きを検出する。その顔４０６の向きに合わせて各操作モードの位置を決定するが、例えば、検出された顔４０６の向き及びその傾きに合わせて、図１１及び図１２に示されるような座標を回転させてもよい。つまり、図１１及び図１２に示されるような座標に基づいて設定されたＰ１乃至Ｐ３の座標を、回転行列などを利用して変換した座標に基づいて、顔４０６が傾いていた場合のＰ１乃至Ｐ３の座標を設定してもよい。なお、顔４０６が傾いていた場合の画面５００に表示される各操作モードのＧＵＩは、図１０と同様の表示であってもよい。すなわち、顔４０６が傾いていたとしても、画面５００に表示される各操作モードのＵＩの表示向きは変化しなくてもよい。
【００８０】
最後に図１５を参照して、本実施形態のハンドジェスチャ認識プログラムに対応したアプリケーションの使用時の表示画面について説明する。  
図１５は、ハンドジェスチャ認識プログラム２０２の使用時に表示される表示画面例を示す図。  
ＬＣＤ１７には、ハンドジェスチャ認識プログラムに対応したアプリケーションのウィンドウ１５００、サブウィンドウ１５０１、及び操作モードのＧＵＩ１５０２が表示されている。ウィンドウ１５００は、例えばウェブブラウザのウィンドウや映像再生アプリケーションのウィンドウである。サブウィンドウ１５０１は、例えばビデオカメラ２０によって撮影された映像を表示してもよいし、その撮影された映像を用いた手形状または顔を解析していることユーザが視覚的に分かるものを表示してもよい。操作モードのＧＵＩ１５０２は、図中ではセレクト操作モードのＧＵＩが表示されているが、上述したようなＡＶコントロールメニューモードのＧＵＩ等を表示してもよい。なお、サブウィンドウ１５０１のＬＣＤ１７上の位置やサイズは任意に変更可能であり、また操作モードのＧＵＩ１５０２と同様な第２の操作モードのＧＵＩをＬＣＤ１７上に追加で表示してもよい。
【００８１】
以上のように、本実施形態によれば、顔の検出位置に対する、ある形状の手の検出位置の相対位置を示す値が算出され、その算出された値に基づいて、複数の操作モードから該当する操作モードが自動的に選択される。したがって、手を出す位置に応じた操作モードを選択できるため、目的の操作モードを利用可能になるまでの時間を短縮することができる。よって、ハンドジェスチャ認識で使用される操作モードを容易に選択することができる。例えば、ユーザがハンドジェスチャ認識プログラムを利用したインタフェースを使用する際に、ユーザは顔の位置に対する手の相対的な位置によって瞬時に操作モードを選択できる。つまり、ユーザが操作を開始する際に、目的の操作をスムーズに行うことができる。さらに、操作モードを切り替える際に、手を一旦下げ再び顔の位置に対するある相対的な位置に手を移動させるだけで、操作モードをスムーズに切り替えることができる。
【００８２】
なお、特定の操作モード切換えジェスチャ（例えば掌を握って横に振る）を用いて操作モードを切り替えることも可能であるが、例えば、操作開始トリガとなる手形状を出すとセレクト操作モードが先に始まる場合においては、再生・一時停止のような操作を行うにためには、操作モード切換えジェスチャーを行った後、再生・一時停止メニューを選択、決定する必要がある。本実施形態では、上述のように、操作開始トリガとなる手形状を出す位置に応じた操作モードを選択できるため、目的の操作モードを利用可能になるまでの時間を大幅に短縮することができる。
【００８３】
なお、本実施形態では、顔の位置に対する特定の手形状の手の位置の相対位置に基づいて操作モードを選択するようにしたが、これは、操作モードの選択に要する時間をできるだけ短くするためである。
【００８４】
また、この特定の手形状は、ハンドジェスチャ認識プログラム２０２のハンドジェスチャ認識処理を開始させるトリガとして使用される特定の手形状であってもよい。ユーザは、ハンドジェスチャ認識処理を開始したい時に、特定の手形状の手を出す。この時、ユーザは使用したい操作に対応する目的の操作モードに対応する位置に手を出すことにより、ハンドジェスチャ認識処理を目的の操作モードですぐに開始させることができる。
【００８５】
また、本実施形態のハンドジェスチャインタフェースの処理の手順は全てソフトウェアによって実行することができる。このため、この処理手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００８６】
また、図３に示した各部の機能は、例えば、専用ＬＳＩ、ＤＳＰのようなハードウェアによって実現しても良い。
【００８７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８８】
２０…ビデオカメラ、２０２…ハンドジェスチャ認識プログラム、３００…ハンドジェスチャ認識部、３０１…手形状検出部、３０２…手の動き検出部、３０３…機能実行部、３０４…顔検出部、３０６…操作モード選択部、３０７…操作メニュー表示部、３０８…位置記憶部、３０９…位置設定部、３１１…ハンドジェスチャ対応アプリケーション。
【図１】
0005865615.tif 000002
【図２】
0005865615.tif 000003
【図３】
0005865615.tif 000004
【図４】
0005865615.tif 000005
【図５】
0005865615.tif 000006
【図６】
0005865615.tif 000007
【図７】
0005865615.tif 000008
【図８】
0005865615.tif 000009
【図９】
0005865615.tif 000010
【図１０】
0005865615.tif 000011
【図１１】
0005865615.tif 000012
【図１２】
0005865615.tif 000013
【図１３】
0005865615.tif 000014
【図１４】
0005865615.tif 000015
【図１５】
0005865615.tif 000016