(57)【要約】【課題】操作性および視認性に優れた新規なユーザインターフェースを提供する。【解決手段】対象物検出部３ｂは、時系列的な一連のセンサ画像のそれぞれにおいて、操作者の右手および左手を検出する。仮想操作領域保持部３ｃは、センサ画像における左右の手の検出位置に基づいて、同一の実操作領域に対応付けられ、かつ、互いにオーバーラップしないようにセンサ空間上に設定された複数の仮想操作領域の設定位置を保持する。位置指示部３ｄは、一連のセンサ画像のそれぞれにおける左右の手の検出位置を、対応する仮想操作領域の設定位置に基づいて、実操作領域の座標系に変換して、実操作領域における複数の操作子の指示位置を出力する。【選択図】図２
2017211739.tif 000002
【特許請求の範囲】
【請求項１】
操作者のジェスチャに応じて、複数の操作子を制御するユーザインターフェース装置において、
時系列的な一連のセンサ画像のそれぞれにおいて、操作者の右手または右手によって操作される物体として予め定められた第１の対象物と、操作者の左手または左手によって操作させる物体として予め定められた第２の対象物とを検出する対象物検出部と、
第１のセンサ画像における前記第１の対象物の検出位置に基づいて、所定の実操作領域に対応付けてセンサ空間上に設定された第１の仮想操作領域の設定位置を保持すると共に、前記第１のセンサ画像における前記第２の対象物の検出位置に基づいて、前記第１の仮想操作領域と同一の実操作領域に対応付けられ、かつ、前記第１の仮想操作領域とはオーバーラップしないようにセンサ空間上に設定された第２の仮想操作領域の設定位置を保持する仮想操作領域保持部と、
前記一連のセンサ画像のそれぞれにおける前記第１の対象物の検出位置を、前記第１の仮想操作領域の設定位置に基づいて前記実操作領域の座標系に変換することによって、前記実操作領域における第１の操作子の指示位置を指示すると共に、前記一連のセンサ画像のそれぞれにおける前記第２の対象物の検出位置を、前記第２の仮想操作領域の設定位置に基づいて前記実操作領域の座標系に変換することによって、前記実操作領域における第２の操作子の指示位置を特定する位置指示部と
を有することを特徴とするユーザインターフェース装置。
【請求項２】
前記対象物検出部は、
前記センサ画像に基づいて、操作者の顔を検出する顔検出部と、
前記センサ画像における顔の位置に基づいて、前記第１の対象物の検索領域および前記第２の対象物の検索領域を互いにオーバーラップしないようにセンサ空間上に設定し、前記検索領域のそれぞれを検索することによって、前記センサ画像において、前記第１の対象物および前記第２の対象物を検出する両手検出部と
を有することを特徴とする請求項１に記載されたユーザインターフェース装置。
【請求項３】
前記両手検出部は、前記顔検出部によって顔が複数検出された場合、前記第１の対象物および前記第２の対象物の検出を顔毎に行い、
前記仮想操作領域保持部は、前記第１の仮想操作領域および前記第２の仮想操作領域の設定を、前記両手検出部によって検出された前記第１の対象物および前記第２の対象物の個数分行うことを特徴とする請求項２に記載されたユーザインターフェース装置。
【請求項４】
前記両手検出部は、前記顔検出部によって検出された顔の大きさに応じて、前記検索領域のサイズを可変に設定することを特徴とする請求項３に記載されたユーザインターフェース装置。
【請求項５】
前記対象物検出部は、前記第１の対象物の検出位置に基づいて設定された前記第１の仮想操作領域と、前記第２の対象物の検出位置に基づいて設定された前記第２の仮想操作領域とがオーバーラップする場合、当該オーバーラップが解消するように、前記第１の仮想操作領域および前記第２の仮想操作領域を水平方向にシフトさせることを特徴とする請求項１に記載されたユーザインターフェース装置。
【請求項６】
前記対象物検出部によって検出された前記第１の対象物の形状の変化に応じて、前記第１の操作子の指示位置における操作内容を指示すると共に、前記対象物検出部によって検出された前記第２の対象物の形状の変化に応じて、前記第２の操作子の指示位置における操作内容を指示する操作指示部をさらに有することを特徴とする請求項１から５のいずれかに記載されたユーザインターフェース装置。
【請求項７】
前記センサ画像は、前記センサとしてのカメラによって撮像された撮像画像であることを特徴とする請求項１から６のいずれかに記載されたユーザインターフェース装置。
【請求項８】
操作者のジェスチャに応じて、複数の操作子を制御するユーザインターフェースプログラムにおいて、
コンピュータが、時系列的な一連のセンサ画像のそれぞれにおいて、操作者の右手または右手によって操作される物体として予め定められた第１の対象物と、操作者の左手または左手によって操作させる物体として予め定められた第２の対象物を検出する第１のステップと、
コンピュータが、第１のセンサ画像における前記第１の対象物の検出位置に基づいて、所定の実操作領域に対応付けてセンサ空間上に設定された第１の仮想操作領域の設定位置を保持すると共に、前記第１のセンサ画像における前記第２の対象物の検出位置に基づいて、前記第１の仮想操作領域と同一の実操作領域に対応付けられ、かつ、前記第１の仮想操作領域とはオーバーラップしないようにセンサ空間上に設定された第２の仮想操作領域を設定位置を保持する第２のステップと、
コンピュータが、前記一連のセンサ画像のそれぞれにおける前記第１の対象物の検出位置を、前記第１の仮想操作領域の設定位置に基づいて前記実操作領域の座標系に変換することによって、前記実操作領域における第１の操作子の指示位置を指示すると共に、前記一連のセンサ画像のそれぞれにおける前記第２の対象物の検出位置を、前記第２の仮想操作領域の設定位置に基づいて前記実操作領域の座標系に変換することによって、前記実操作領域における第２の操作子の指示位置を特定する第３のステップと
を有する処理をコンピュータに実行させることを特徴とするユーザインターフェースプログラム。
【請求項９】
前記第１のステップは、
コンピュータが、前記センサ画像に基づいて、操作者の顔を検出する第４のステップと、
コンピュータが、前記センサ画像における顔の位置に基づいて、前記第１の対象物の検索領域および前記第２の対象物の検索領域を互いにオーバーラップしないようにセンサ空間上に設定し、前記検索領域のそれぞれを検索することによって、センサ画像において、前記第１の対象物および前記第２の対象物とを検出する第５のステップと
を有することを特徴とする請求項８に記載されたユーザインターフェースプログラム。
【請求項１０】
前記第５のステップは、
前記第４のステップによって顔が複数検出された場合、前記第１の対象物および前記第２の対象物の検出を顔毎に行い、
前記第２のステップは、
前記第１の仮想操作領域および前記第２の仮想操作領域の設定を、前記第５のステップによって検出された前記第１の対象物および前記第２の対象物の個数分行うことを特徴とする請求項９に記載されたユーザインターフェースプログラム。
【請求項１１】
前記第５のステップは、
前記第４のステップによって検出された顔の大きさに応じて、前記検索領域のサイズを可変に設定することを特徴とする請求項１０に記載されたユーザインターフェースプログラム。
【請求項１２】
前記第１のステップは、
前記第１の対象物の検出位置に基づいて設定された前記第１の仮想操作領域と、前記第２の対象物の検出位置に基づいて設定された前記第２の仮想操作領域とがオーバーラップするか否かを判断するステップと、
前記第１の仮想操作領域および前記第２の仮想操作領域がオーバーラップすると判断された場合、当該オーバーラップが解消するように、前記第１の仮想操作領域および前記第２の仮想操作領域を水平方向にシフトさせるステップと
を有することを特徴とする請求項８に記載されたユーザインターフェースプログラム。
【請求項１３】
前記第１のステップによって検出された前記第１の対象物の形状の変化に応じて、前記第１の操作子の指示位置における操作内容を指示すると共に、前記第１のステップによって検出された前記第２の対象物の形状の変化に応じて、前記第２の操作子の指示位置における操作内容を指示する第７のステップをさらに有することを特徴とする請求項８から１１１のいずれかに記載されたユーザインターフェースプログラム。
【請求項１４】
前記センサ画像は、前記センサとしてのカメラによって撮像された撮像画像であることを特徴とする請求項８から１２のいずれかに記載されたユーザインターフェースプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインターフェース装置およびユーザインターフェースプログラムに係り、特に、ジェスチャ認識を用いたカーソル操作に関する。
【背景技術】
【０００２】
従来より、ジェスチャ認識を用いた様々なユーザインターフェースが提案されている。例えば、特許文献１には、ＣＣＤカメラによって撮像された画像に基づき操作者の片手を認識し、認識された片手の動き（手振り）に応じて、カーソルにてアイコン選択を行うインターフェース装置が開示されている。また、特許文献２には、カメラによって操作者の両手を撮像し、撮像画像より認識された両手の動きに応じて、カーソルの移動やオブジェクトの選択といった操作を行う情報入力装置が開示されている。具体的には、選択領域内における一方の手の指の動きに応じてカーソルを移動させ、他方の手のひらの開閉によって、このカーソルによって選択されたアイコンのクリック等が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−０７８９７７号公報
【特許文献２】特開２０１４−０７１６７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した従来技術において、片手または両手で操作される対象は、単一のカーソルである。そのため、複数のアイコンを同時に選択するといった如く、表示画面の異なる位置に配置された複数のオブジェクトを同時に操作することはできない。この点、操作者の左右の手のそれぞれにカーソルを割り当てれば、複数のカーソルによるオブジェクトの同時操作が可能となり、操作性の向上を図ることができる。しかしながら、その際、複数のカーソルを移動させるために、カメラと向き合っている操作者が自身の顔の手前で両手を重ねたり、両腕を交差させるといった動作を伴うことは好ましくない。両手や両腕によって、操作者の視界が妨げられ、表示画面の一部が見えなくなってしまうからである。
【０００５】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、操作性および視認性に優れた新規なユーザインターフェースを提供することである。
【課題を解決するための手段】
【０００６】
かかる課題を解決すべく、第１の発明は、操作者のジェスチャに応じて、複数の操作子を制御するユーザインターフェース装置を提供する。このユーザインターフェース装置は、対象物検出部と、仮想操作領域保持部と、位置指示部とを有する。対象物検出部は、時系列的な一連のセンサ画像のそれぞれにおいて、第１の対象物および第２の対象物を検出する。第１の対象物は、操作者の右手、または、この右手によって操作される物体として予め定められている。第２の対象物は、操作者の左手、または、この左手によって操作させる物体として予め定められている。仮想操作領域保持部は、第１のセンサ画像における第１の対象物の検出位置に基づいて、第１の仮想操作領域の設定位置を保持する。第１の仮想操作領域は、所定の実操作領域に対応付けてセンサ空間上に設定される。また、仮想操作領域保持部は、第１のセンサ画像における第２の対象物の検出位置に基づいて、第２の仮想操作領域の設定位置を保持する。第２の仮想操作領域は、第１の仮想操作領域と同一の実操作領域に対応付けられ、かつ、第１の仮想操作領域とはオーバーラップしないようにセンサ空間上に設定される。位置指示部は、実操作領域における第１の操作子の指示位置と、第２の操作子の指示位置とを特定する。第１の操作子の指示位置は、一連のセンサ画像のそれぞれにおける右手の検出位置を、第１の仮想操作領域の設定位置に基づいて、実操作領域の座標系に変換することによって特定される。また、第２の操作子の指示位置は、一連のセンサ画像のそれぞれにおける左手の検出位置を、第２の仮想操作領域の設定位置に基づいて、実操作領域の座標系に変換することによって特定される。
【０００７】
ここで、第１の発明において、上記対象物検出部は、顔検出部と、両手検出部とを有することが好ましい。顔検出部は、センサ画像に基づいて、操作者の顔を検出する。両手検出部は、センサ画像における顔の位置に基づいて、第１の対象物の検索領域および第２の対象物の検索領域のそれぞれをセンサ空間上に設定し、検索領域のそれぞれを検索することによって、第１の対象物および第２の対象物を検出する。この場合、上記両手検出部は、顔検出部によって顔が複数検出された場合、第１の対象物および第２の対象物の検出を顔毎に行うと共に、上記仮想操作領域保持部は、第１の仮想操作領域および第２の仮想操作領域の設定を、両手検出部によって検出された第１の対象物および第２の対象物の個数分行うことが好ましい。また、上記両手検出部は、顔検出部によって検出された顔の大きさに応じて、検索領域のサイズを可変に設定してもよい。
【０００８】
第１の発明において、上記対象物検出部は、第１の対象物の検出位置に基づいて設定された第１の仮想操作領域と、第２の対象物の検出位置に基づいて設定された第２の仮想操作領域とがオーバーラップする場合、このオーバーラップが解消するように、第１の仮想操作領域および第２の仮想操作領域を水平方向にシフトさせてもよい。
【０００９】
第１の発明において、操作指示部をさらに設けてもよい。操作指示部は、対象物検出部によって検出された第１の対象物の形状の変化に応じて、第１の操作子の指示位置における操作内容を指示する。また、操作指示部は、対象物検出部によって検出された第２の対象物の形状の変化に応じて、第２の操作子の指示位置における操作内容を指示する。
【００１０】
第２の発明は、操作者のジェスチャに応じて、複数の操作子を制御するユーザインターフェースプログラムを提供する。このユーザインターフェースプログラムは、以下の第１から第３のステップまでを有する処理をコンピュータに実行させる。まず、第１のステップでは、コンピュータが、時系列的な一連のセンサ画像のそれぞれにおいて、操作者によって操作される第１の対象物および第２の対象物を検出する。第１の対象物は、操作者の右手、または、この右手によって操作される物体として予め定められている。第２の対象物は、操作者の左手、または、この左手によって操作させる物体として予め定められている。第２のステップでは、コンピュータが、第１のセンサ画像における右手の検出位置に基づいて、第１の仮想操作領域の設定位置を保持する。第１の仮想操作領域は、所定の実操作領域に対応付けてセンサ空間上に設定される。それとともに、第２のステップでは、コンピュータが、第１のセンサ画像における左手の検出位置に基づいて、第２の仮想操作領域の設定位置を保持する。第２の仮想操作領域は、第１の仮想操作領域と同一の実操作領域に対応付けられ、かつ、第１の仮想操作領域とはオーバーラップしないようにセンサ空間上に設定される。第３のステップでは、コンピュータが、実操作領域における第１の操作子の指示位置と、第２の操作子の指示位置とを特定する。第１の操作子の指示位置は、一連のセンサ画像のそれぞれにおける右手の検出位置を、第１の仮想操作領域の設定位置に基づいて、実操作領域の座標系に変換することによって特定される。また、第２の操作子の指示位置は、一連のセンサ画像のそれぞれにおける右手の検出位置を、第２の仮想操作領域の設定位置に基づいて、実操作領域の座標系に変換することによって特定される。
【００１１】
ここで、第２の発明において、上記第１のステップは、コンピュータが、センサ画像に基づいて、操作者の顔を検出する第４のステップと、コンピュータが、センサ画像における顔の位置に基づいて、第１の対象物の検索領域および第２の対象物の検索領域のそれぞれをセンサ空間上に設定し、検索領域のそれぞれを検索することによって、第１の対象物および第２の対象物を検出する第５のステップとを有することが好ましい。この場合、上記第５のステップは、第４のステップによって顔が複数検出された場合、第１の対象物および第２の対象物の検出を顔毎に行うと共に、上記第２のステップは、第１の仮想操作領域および第２の仮想操作領域の設定を、第５のステップによって検出された第１の対象物および第２の対象物の個数分行うことが好ましい。また、上記第５のステップは、第４のステップによって検出された顔の大きさに応じて、検索領域のサイズを可変に設定してもよい。
【００１２】
第２の発明において、上記第１のステップは、第１の対象物の検出位置に基づいて設定された第１の仮想操作領域と、第２の対象物の検出位置に基づいて設定された第２の仮想操作領域とがオーバーラップするか否かを判断するステップと、第１の仮想操作領域および第２の仮想操作領域がオーバーラップすると判断された場合、このオーバーラップが解消するように、第１の仮想操作領域および第２の仮想操作領域を水平方向にシフトさせるステップとを有していてもよい。
【００１３】
第２の発明において、第７のステップをさらに設けてもよい。第７のステップでは、コンピュータが、第１のステップによって検出された第１の対象物の形状の変化に応じて、第１の操作子の指示位置における操作内容を指示すると共に、第１のステップによって検出された第２の対象物の形状の変化に応じて、第２の操作子の指示位置における操作内容を指示する。
【００１４】
また、第１または第２の発明において、上記センサ画像は、上記センサとしてのカメラによって撮像された撮像画像であってもよい。
【発明の効果】
【００１５】
本発明によれば、同一の実操作領域に対応付けて、第１および第２の仮想操作領域を設定し、それぞれの仮想操作領域における第１および第２の対象物の検出位置より、実操作領域における第１および第２の操作子の指示位置が個別に指示される。このような位置の指示をセンサ画像毎に繰り返すことで、実操作領域の全体に亘って、左右の手の動きに追従して、第１および第２の操作子を高い自由度で別々に移動させることができる。また、第１および第２の仮想操作領域は、センサ空間上において互いにオーバーラップしないように設定される。これにより、実操作領域上の第１および第２の操作子がどのような位置的関係であろうとも、操作者が自身の顔の手前で両手を重ねたり、両腕を交差させたりする必要はない。その結果、操作性および視認性に優れたユーザインターフェースを実現できる。
【図面の簡単な説明】
【００１６】
【図１】ジェスチャ認識システムの全体構成図
【図２】ユーザインターフェース装置のブロック図
【図３】第１の実施形態に係るユーザインターフェース処理のフローチャート
【図４】ユーザインターフェース処理のフローチャート
【図５】センサ画像の一例を示す図
【図６】センサ画像上に設定される検索領域の説明図
【図７】センサ画像上に設定される仮想操作領域の説明図
【図８】左右の手の動きに追従したカーソルの移動を示す図
【図９】センサ画像の他の一例を示す図
【図１０】第２の実施形態に係るユーザインターフェース処理のフローチャート
【図１１】第2の実施形態に係る仮想操作領域の説明図
【発明を実施するための形態】
【００１７】
（第１の実施形態）
図１は、本実施形態に係るジェスチャ認識システムの全体構成図である。このジェスチャ認識システム１は、カメラ２と、ユーザインターフェース装置３と、コンピュータ４と、表示装置５とを主体に構成されている。イメージセンサであるカメラ２は、操作者Ｕと向き合うように配置されており、少なくとも操作者Ｕの上半身を含むセンサ空間（撮像空間）を所定のフレーム間隔で撮像する。ユーザインターフェース装置３は、カメラ２によって時系列的に取得された一連のセンサ画像（撮像画像）に基づき、操作者Ｕのジェスチャ、具体的には、操作者Ｕの左右の手の挙動を検出・認識し、これらの挙動に追従するように、表示装置５の画面上に表示された複数のカーソル（ポインタ）を制御する。コンピュータ４は、オペレーティングシステムやアプリケーションプログラムが実行されている状態において、ユーザインターフェース装置３からの指示に基づいて、表示画面上のカーソルの移動や各種の操作を実行する。
【００１８】
操作者Ｕは、表示装置５の表示画面を見ながら、カメラ２に左右の手のひらを向けた状態で、左右の手を動かしたり、左右の手の形状を変化させたりする。左手に割り当てられたカーソル（左手カーソル）は、左手の動きに追従して表示画面上を移動すると共に、左手の形状の変化に応じて、このカーソルの指示位置における所定の操作が行われる。また、右手に割り当てられたカーソル（右手カーソル）は、右手の動きに追従して表示画面上を移動すると共に、右手の形状の変化に応じて、このカーソルの指示位置における所定の操作が行われる。
【００１９】
なお、図１の構成では、ユーザインターフェース装置３をカメラ２およびコンピュータ４とは別個のユニットとして例示しているが、インターフェース装置３にカメラ２を内蔵してもよい。また、ユーザインターフェース装置３の機能をコンピュータ４に担わせてもよく、この場合、コンピュータ４自体が「ユーザインターフェース装置」となる。すなわち、本発明において、図示したユーザインターフェース装置３の機能を備えるユニットが「ユーザインターフェース装置」に相当する。
【００２０】
図２は、ユーザインターフェース装置３のブロック図である。このユーザインターフェース装置３は、フレームメモリ３ａと、対象物検出部３ｂと、仮想操作領域保持部３ｃと、位置指示部３ｄと、操作指示部３ｅとを有する。フレームメモリ３ａには、カメラ２によって時系列的に取得された一連のセンサ画像がフレーム単位で格納・更新される。
【００２１】
対象物検出部３ｂは、フレームメモリ３ａからセンサ画像をフレーム単位で読み出し、このセンサ画像において、操作者Ｕの右手と左手とを検出する。本実施形態において、対象物検出部３ｂは、左右の手を検出する両手検出部３ｇの他に、顔検出部３ｆを含んでいる。顔検出部３ｆは、操作者Ｕの顔を検出する。両手検出部３ｇは、センサ画像における顔の検出位置を基準に検索領域を設定し、その上で、検索領域内における左右の手の検出を行う。操作者Ｕを正面から撮影した場合、センサ画像における顔の位置および両手の位置には関連性がある。そこで、左右の手を検索する検索領域を顔の位置を基準に設定し、その範囲を限定すれば、センサ画像全体を検索する場合と比較して、演算量を有効に低減できる。検索領域を限定することは、センサ画像のフレームレートを上げて、カーソルの応答性を高める上で有利である。ただし、演算量や時間的制約を考慮する必要がなければ、顔の検出を行うことなく、センサ画像全体を検索して左右の手の検出を行ってもよい。また、対象物検出部３ｂは、操作者Ｕの左右の手の形状の変化も併せて検出する。
【００２２】
仮想操作領域保持部３ｃは、左右の手の仮想操作領域に関する設定位置を保持する。左手の仮想操作領域は、左手の動きが左手カーソルの動きとして反映される範囲に相当し、右手の仮想操作領域は、右手の動きが右手カーソルの動きとして反映される範囲に相当する。後述するように、これらの仮想操作領域は、カーソルが実際に移動する同一の実操作領域に対応付けられている。
【００２３】
位置指示部３ｄは、仮想操作領域保持部３ｃによって保持された左手の仮想操作領域の設定位置に基づき、左手の検出位置を座標変換することによって、実操作領域上における左手カーソルの指示位置（座標））を算出する。それとともに、位置指示部３ｄは、仮想操作領域保持部３ｃによって保持された右手の仮想操作領域の設定位置に基づき、右手の検出位置を座標変換することによって、実操作領域上における右手カーソルの指示位置（座標）を算出する。仮想操作領域上の座標と、実操作領域上の座標とは、一対一の位置的関係にあり、手の検出位置が仮想操作領域内にあることを前提として、手の検出位置からカーソルの指示位置が一義的に特定される。位置指示部３ｄによって算出された左右のカーソルの指示位置は、コンピュータ４に出力・指示される。
【００２４】
操作指示部３ｅは、対象物検出部３ｂによって検出された右手の形状の変化に応じて、右手カーソルによって指示された位置における操作内容を特定する。それとともに、操作指示部３ｅは、対象物検出部３ｂによって検出された左手の形状の変化に応じて、左手カーソルによって指示された位置における操作内容を特定する。例えば、手を開いた状態から親指を残して手を閉じた状態に変えると、カーソルの指示位置においてクリック操作が行われるといった如くである。このような操作者Ｕのジェスチャと、実行されるアクションとの対応関係は、システム上、予め設定されている。操作指示部３ｅによって特定された操作内容は、コンピュータ４に出力・指示される。
【００２５】
つぎに、図３および図４に示すフローチャートを参照しつつ、ユーザインターフェース装置３において実行される処理について詳述する。同図に示した一連の処理は、カメラ２によって取得された各フレームのセンサ画像を対象に行われ、所定のフレーム間隔で繰り返される。また、処理対象となるセンサ画像の一例として、図５に示すように、表示装置５の表示画面を見ている１名の操作者Ｕが、カメラ２に向かって左右の手Ｌ，Ｒ（手のひら）をかざしている状態を想定する。
【００２６】
まず、ステップ１において、対象物検出部３ｂは、センサ画像の座標系において、左右の手の仮想操作領域が設定済みであるか否かを判定する。仮想操作領域が設定済みでない場合とは、典型的には、システム起動直後の初期状態や、設定済みの仮想操作領域が途中で解除された直後の状態である。この場合、ステップ１の判断からステップ２に進み、仮想操作領域の設定と、左右の手の動きに追従したカーソルの位置の指示とが行われる（ステップ２〜９）。一方、仮想操作領域が設定済みの場合、すなわち、一旦設定された仮想操作領域が解除されることなく維持されている状態では、ステップ１の判断からステップ１０に進み、センサ画像の座標系に仮想操作領域を固定・維持したままで、左右の手の動きに追従したカーソルの位置の指示が行われる（ステップ１０〜１３）
【００２７】
つぎに、ステップ２において、顔検出部３ｆは、センサ画像を検索することによって、操作者Ｕの顔Ｏ（図５参照）の検出を行う。顔Ｏの検出を含めた物体検出手法そのものは、デジタルカメラやスマートフォン等でも広く実装されているように、古くから研究が行われている周知技術であり、トラッキングや物体認識の任意の手法を広く採用することができる。例えば、ユーザーによる探索領域指定、トラッキングを行うことによる探索空間の削減、深度画像取得を利用した三次元形状取得や背景除去といったセンサデータ自体の高度化、画像の色や輝度の分布やWaveletやＦＦＴ画像といった画像全体を特徴量とする手法、二値化画像の輪郭の凹凸パターンなどの形状要素を特徴量とする手法、Log-Polar変換画像を併用するFFT画像などのアフィン変換不変特徴量を使用する手法、SIFTなどに代表される種々の局所画像特徴量と様々な統計的機械学習手法を併用する特定物体認識、特徴量の表現方法をバイナリ化やハッシュなどにより簡素化したりカーネル関数を用いることで計算量を削減する手法、局所的な画像の誤差を許容するテンプレートマッチング手法を用いた特定物体認識、三次元形状モデルやスケルトンモデルなどの形状モデルや運動モデルとセンサデータのデータ融合、認識対象物体の個々の要素への分解と再構築を用いる手法、Haar-likeやHoG（Histograms of Oriented Gradients）やそれらのJoint特徴量などの画像認識のために人為的に設計された特徴量と不要特徴量削減を含めた各種の統計的機械学習手法を併用する一般物体認識手法、Deep Learningをはじめとする特徴量の自動生成と物体認識を行う一般物体認識手法、といった如くである。また、このステップ２において、顔Ｏが検出された場合、センサ画像上における顔Ｏの位置および縦横の大きさ（顔の横幅および顔の長さ）も併せて特定される。
【００２８】
ステップ３において、顔検出部３ｆは、センサ画像上に顔Ｏが検出されたか否かを判断する。顔Ｏが検出されなかった場合、今回のサイクルにおける処理を終了し、次回のサイクルにおける処理の開始を待つ。これに対して、顔Ｏが検出された場合、ステップ４に進む。
【００２９】
ステップ４において、両手検出部３ｇは、左手の検索領域Ｓｌと、右手の検索領域Ｓｒとをセンサ画面上に個別に設定する。図６は、センサ画像上に設定される検索領域Ｓｌ，Ｓｒの説明図である。通常、センサ画像における左右の手Ｌ，Ｒは顔Ｏよりも低い位置に左右対称で、かつ、同じ高さに存在するので、そのような位置に検索領域Ｓｌ，Ｓｒが設定される。ただし、左右の手の具体的な位置は、操作者Ｕの体格（大人・子供、体の大きさ）によって異なる。そこで、顔Ｏの検出領域Ｓoの中心から横幅に比例した位置に検索領域Ｓｒ，Ｓｌが設定される。両手検出部３ｇは、顔検出部３ｆによって検出された顔Ｏの大きさに応じて、検索領域Ｓｌ，Ｓｒのサイズを可変に設定する。すなわち、検索領域Ｓｌ，Ｓｒの縦横の大きさは、顔の検出領域Ｓｏの縦横の大きさに比例する。
【００３０】
なお、検索領域Ｓｌ，Ｓｒの設定位置や大きさは、目的や用途に応じて可変に設定できるようにしてもよい。これにより、センサ画像上の特定の位置で左右の手を操作させるなどの調整が可能となる。また、第２の実施形態で述べるように、演算量や時間的制約を考慮する必要がなければ、ステップ２〜４を省略し、部分的な検索領域Ｓｌ，Ｓｒを設定することなく、センサ画像全体を対象として左右の手の検出を行ってもよい。
【００３１】
本実施形態において、左右の手の検索領域Ｓｌ，Ｓｒは、水平方向において十分に離れていることが条件となる。ここで、「十分に離れている」とは、操作者Ｕが検索領域Ｓｌ，Ｓｒ内でどのように両手をかざしたとしても（ワーストケースとして、両手を最も近づけた場合）、あるいは、後述する仮想操作領域Ｖｌ，Ｖｒをどのような大きさに設定したとしても（ワーストケースとして、最大サイズに設定した場合）、仮想操作領域Ｖｌ，Ｖｒが互いにオーバーラップしないことを保証できる程度の距離をいう。
【００３２】
ステップ５において、操作者Ｕに対して両手をかざすことを促した上で、両手検出部３ｇは、センサ画像に設定されたそれぞれの検索領域Ｓｌ，Ｓｒ内を検索し、左右の手Ｌ，Ｒの検出を行う。顔Ｏと同様、左右の手Ｌ，Ｒの検出についても、周知の物体検出手法を広く採用することができる。なお、検出すべき左右の手Ｌ，Ｒは、ステップ２で検出された顔Ｏの大きさに対応したものとする。そして、ステップ６において、両手検出部３ｇは、検索領域Ｓｌ，Ｓｒ内において左右の手Ｌ，Ｒが検出されたか否かを判断する。左右の手Ｌ，Ｒが検出されなかった場合、今回のサイクルにおける処理を終了する。これに対して、左右の手Ｌ，Ｒが検出された場合、ステップ７に進む。
【００３３】
ステップ７において、両手検出部３ｇは、左手の仮想操作領域Ｖｌと、右手の仮想操作領域Ｖｒとをセンサ画面上に個別に設定する。図７は、センサ画像上に設定される仮想操作領域Ｖｌ，Ｖｒの説明図である。左手の仮想操作領域Ｖｌは、センサ画像における左手の検出位置（例えば左手の中心）を基準に設定され、所定の大きさを有する。また、右手の仮想操作領域Ｖｒは、センサ画像における右手の検出位置（例えば右手の中心）を基準に設定され、左手の仮想操作領域Ｖｌと同じ大きさを有する。これらの仮想操作領域Ｖｌ，Ｖｒは、センサ画面における高さが一致しており、左右どちらか先に検出された手の仮想操作領域と同じ高さに、残りの手（検出されたことが条件とされる。）の仮想操作領域が設定される。
【００３４】
仮想操作領域Ｖｌ，Ｖｒの設定に関しては、以下の２つの条件を満たすことが要求される。
（１）同一の実操作領域に対応付けられていること
（２）センサ画像の座標系において、互いにオーバーラップ（部分的なオーバーラップを含む。）しないこと
【００３５】
条件（１）により、仮想操作領域Ｖｌ，Ｖｒに対応付けられた実操作領域が、左手カーソルおよび右手カーソルによって共有された単一の操作領域となる。ここで、実操作領域とは、カーソル（操作子）による操作を行うことができる範囲をいい、この範囲内において、カーソルの移動が行われる。カーソルの画面表示を行う場合、実操作領域は、画面に表示されたカーソルが移動する表示画面領域に相当する。この表示画面領域は、表示画面全体であってもよいし、表示画面の一部であってもよい。ただし、実操作領域上の位置が指示されたカーソルを表示すべきではない状況や必須ではない状況が考えられるので、カーソルの画面表示が常に行われることは、本発明の必須事項ではない。例えば、ＶＲ（Virtual Reality）やＭＲ（Mixed Reality）の分野において、手や操作体が視界にあり、カーソルを表示する必要がない場合や表示すべきでない場合がある。また、手や操作体で円を描くなどのジェスチャー操作により、特定の機能(例えば、映像の再生や停止）への割り当てを行う場合には、カーソルが非表示でも機能を果たすことができる。
【００３６】
また、条件（１）の「対応付けられる」とは、仮想操作領域Ｖｌ，Ｖｒ上の位置と、実操作領域上の位置とが一対一の関係にあることをいう。この関係から、座標変換によって、仮想操作領域Ｖｌ，Ｖｒ上の位置（座標）および実操作領域上の位置（座標）の一方から他方が一義的に特定される。
【００３７】
また、条件（２）により、実操作領域上において、左手カーソルと、右手カーソルとがどのような位置的関係にあろうとも、操作者Ｕが自身の顔の手前で両手を重ねたり、両腕を交差させたりする必要はない。本実施形態において、検索領域Ｓｌ，Ｓｒは、互いにオーバーラップしないように、センサ画像の水平方向にある程度離れて設定され、その範囲内で左右の手Ｌ，Ｒの検出が行われる。したがって、検索領域Ｓｌ，Ｓｒを離すことをもって、仮想操作領域Ｖｌ，Ｖｒがオーバーラップしないことが保証される。
【００３８】
なお、仮想操作領域Ｖｌ，Ｖｒの大きさは可変に設定できるようにしてもよい。これにより、左右の手Ｌ，Ｒの動きに対するカーソルの移動量を調整することができる。例えば、手Ｌ，Ｒの動きに対してカーソルの動きが大きすぎる場合、仮想操作領域Ｖｌ，Ｖｒを現在のサイズよりも大きくする。逆に、手Ｌ，Ｒの動きに対してカーソルの動きが小さすぎるすぎる場合、仮想操作領域Ｖｌ，Ｖｒを現在のサイズよりも小さくする。これにより、操作者Ｕによって扱い易い最適な状態を個別に設定することができる。このような仮想操作領域Ｖｌ，Ｖｒの調整は、オペレーティングシステムやアプリケーションプログラムの指示に基づいて、行うことができる。
【００３９】
ステップ８において、両手検出部３ｇは、左右の手の検出位置として、図７に示した操作点ｐｌ，ｐｒを設定する。操作点ｐｌ，ｐｒは、手のひらの特定の位置、例えば、手のひらの中心として特定される。そして、ステップ９において、位置指示部３ｅは、仮想操作領域上の操作点ｐｌ，ｐｒよりカーソルの指示位置Ｐｌ，Ｐｒ（実操作領域上の指示点）を特定する。すなわち、左手カーソルの指示位置Ｐｌは、左手の仮想操作領域Ｖｌの設定位置に基づき、左手の操作点ｐｌを実操作領域の座標系に変換することによって、算出される。また、右手カーソルの指示位置Ｐｒは、右手の仮想操作領域Ｖｒの設定位置に基づき、右手の操作点ｐｒを実操作領域の座標系に変換することによって、算出される。これらの指示位置Ｐｌ，Ｐｒは、位置指示部３ｅよりコンピュータ４に出力・指示される。これにより、図７に示した実操作領域上の指示位置Ｐｌに左手カーソルＰｌが表示されると共に、指示位置Ｐｒに右手カーソルＰｌが表示される。以上をもって、今回のサイクルにおける処理を終了する。
【００４０】
一方、仮想操作領域Ｖｌ，Ｖｒが設定された次回以降のサイクルでは、図３のステップ１の判定結果を経て、図４のステップ１０に進む。ステップ１０において、両手検出部３ｇは、センサ画像における左右の手の検出を行う。ただし、前後のフレーム間における手の変化量は少ないので、前フレームで検出された手の位置を基準とした狭い範囲内で手の検索を行えばよい。そして、ステップ１１において、両手検出部３ｇは、左右の手Ｌ，Ｒが検出されたか否かを判断する。左右の手Ｌ，Ｒが検出されなかった場合、設定済みの仮想操作領域Ｖｌ，Ｖｒを解除した上で（ステップ１４）、今回のサイクルにおける処理を終了する。これにより、次回のサイクルにおいて、仮想操作領域Ｖｌ，Ｖｒの設定が再度行われる。一方、左右の手Ｌ，Ｒが検出された場合、ステップ１２に進む。
【００４１】
ステップ１２において、両手検出部３ｇは、ステップ８と同様、左右の手の検出位置として、操作点ｐｌ，ｐｒを設定する。そして、ステップ１３において、位置指示部３ｅは、ステップ９と同様、操作点ｐｌ，ｐｒよりカーソルの指示位置Ｐｌ，Ｐｒを特定する。以上をもって、今回のサイクルにおける処理を終了する。
【００４２】
図８は、左右の手の動きに追従したカーソルの移動を示す図である。図３および図４に示した処理が繰り返し実行されることで、実操作領域に表示された２つのカーソルＰｌ，Ｐｒは、仮想操作領域Ｖｌ，Ｖｒ内における左右の手の動きに追従しながら移動する。具体的には、タイミングｔ１において、左右の手の仮想操作領域Ｖｌ，Ｖｒが設定されると共に、操作点ｐｌ，ｐｒに対応した実操作領域上の位置にカーソルＰｌ，Ｐｒが表示される。それ以降、タイミングｔ２，ｔ３・・・と時間が経過するにつれて、固定された仮想操作領域Ｖｌ，Ｖｒ内で操作点ｐｌ，ｐｒが移動すると、これらに追従して、実操作領域上のカーするＰｌ，Ｐｒも経時的に移動していく。
【００４３】
図９は、センサ画像の他の一例を示す図である。この例は、複数の操作者Ｕが、カメラ２に向かって左右の手Ｌ，Ｒ（手のひら）をかざした状態を示している。このセンサ画像では、顔検出部３ｆによって複数の顔Ｏが検出される。この場合、両手検出部３ｇは、右手および左手の検出を顔毎に行う。そして、仮想操作領域保持部３ｃは、仮想操作領域Ｖｌ，Ｖｒの設定を、両手検出部によって検出された左右の手のセットの個数分行う。これにより、実操作領域上には、左右の手のカーソルのセットが人数分表示されることになる。
【００４４】
このように、第１の実施形態によれば、同一の実操作領域に対応付けられた左右の手の仮想操作領域Ｖｌ，Ｖｒを個別に設定し、それぞれの仮想操作領域Ｖｌ，Ｖｒにおける左右の手の位置、すなわち、操作点ｐｌ，ｐｒに基づき、実操作領域におけるカーソルＰｌ，Ｐｒの指示位置が決められる。これにより、同一の実操作領域において、左右の手に割り当てられたカーソルＰｌ，Ｐｒを、それぞれの手の動きに追従して、高い自由度で別々に移動させることができる。
【００４５】
また、第１の実施形態によれば、左右の手を検索する検索領域Ｓｌ，Ｓｒを水平方向に十分に離すことで、仮想操作領域Ｖｌ，Ｖｒが互いにオーバーラップしないことを保証できる。これにより、実操作領域上のカーソルＰｌ，Ｐｒがどのような位置的関係にあっても、操作者Ｕが自身の顔の手前で両手を重ねたり、両腕を交差させたりする必要が生じないので、操作性および視認性に優れたユーザインターフェースを実現できる。また、仮想操作領域Ｖｌ，Ｖｒをオーバーラップしないようにすることは、ジェスチャの認識精度の点でも有利である。カメラの撮像空間のようなセンサ空間（三次元）での挙動は、タッチパネルのような平面上（二次元）での挙動とは異なり、奥行き方向の自由度がある（タッチパネル上の挙動では奥行き方向の自由度は殆どない）。そのため、特に、両手が重ねられた状態で左右の手の形状を精度よく認識することは、システム処理上、必ずしも容易ではない。この点、本実施形態では、カーソルＰｌ，Ｐｒを操作するためのジェスチャとして、このような挙動を考慮しなくてよいので、認識精度の確保に寄与する。
【００４６】
さらに、第１の実施形態によれば、検索領域Ｓｌ，Ｓｒを設けて、左右の手Ｌ，Ｒを検索する領域を限定することで、センサ画像全体を検索する場合と比較して、検索に要する演算量を低減できる。
【００４７】
（第２の実施形態）
本実施形態では、第１の実施形態とは異なり、検索領域Ｓｌ，Ｓｒを設定することなく、センサ画像全体を検索することによって、互いにオーバーラップしない仮想操作領域Ｖｌ，Ｖｒを設定する。図１０は、第２の実施形態に係るユーザインターフェース処理のフローチャートである。図３のフローチャートと異なるのは、図３のステップ２からステップ７の処理を、ステップ２０からステップ２５の処理に置換した点である。それ以外の点については、基本的に第１の実施形態と同様なので、図２と同一のステップ番号を付して、ここでの説明を省略する。
【００４８】
まず、ステップ２０において、操作者Ｕに対して両手をかざすことを促した上で、両手検出部３ｇは、センサ画像全体を検索し、左右の手Ｌ，Ｒの検出を行う。ステップ２１において、両手検出部３ｇは、センサ画像内において左右の手Ｌ，Ｒが検出されたか否かを判断する。左右の手Ｌ，Ｒが検出されなかった場合、仮想操作領域Ｖｌ，Ｖｒを設定することなく、今回のサイクルにおける処理を終了する。これに対して、左右の手Ｌ，Ｒが検出された場合、ステップ２２に進む。
【００４９】
ステップ２２において、両手検出部３ｇは、左手の仮想操作領域Ｖｌと、右手の仮想操作領域Ｖｒとをセンサ画面上に個別に初期設定する。第１の実施形態のステップ７と同様、仮想操作領域Ｖｌ，Ｖｒの初期位置としては、例えば、それぞれの手の中心を基準に設定することができる。
【００５０】
ステップ２３において、両手検出部３は、左右の仮想操作領域Ｖｌ，Ｖｒがセンサ画像の座標系において、互いにオーバーラップするか否かを判断する。仮想操作領域Ｖｌ，Ｖｒがオーバーラップしない場合、仮想操作領域Ｖｌ，Ｖｒの現在位置が設定位置として確定した上で、左右の手の操作点の設定（ステップ８）と、指示位置の特定（ステップ９）とが行われる。これに対して、仮想操作領域Ｖｌ，Ｖｒがオーバーラップする場合、ステップ２４の判断を経て、オーバーラップが低減するように、すなわち、仮想操作領域Ｖｌ，Ｖｒが離れるように、仮想操作領域Ｖｌ，Ｖｒを水平方向に所定量だけシフトさせた上で（ステップ２５）、ステップ２３のオーバーラップ判定に戻る。これにより、図１１に示すように、初期設定された仮想操作領域Ｖｌ’，Ｖｒ’がオーバーラップしている場合、このオーバーラップが解消する方向に仮想操作領域Ｖｌ’，Ｖｒ’が少しずつシフトしていき、オーバーラップが解消された位置に仮想操作領域Ｖｌ，Ｖｒが設定されることになる。なお、仮想操作領域Ｖｌ，Ｖｒを所定の最大シフト量だけシフトさせても、オーバーラップが解消されない場合、ステップ２４の判断により、仮想操作領域Ｖｌ，Ｖｒを設定することなく、今回のサイクルにおける処理を終了する。
【００５１】
このように、第２の実施形態によれば、第１の実施形態と同様、操作性および視認性に優れたユーザインターフェースを実現できる他、検索領域Ｓｌ，Ｓｒを設けなくとも、オーバーラップしないような仮想操作領域Ｖｌ，Ｖｒを適切に設定することができる。
【００５２】
なお、上述した各実施形態では、操作者Ｕが操作する対象として、カーソル（ポインタ）を例に説明したが、本発明はこれに限定されるものではなく、操作者Ｕによって表示画面上を移動可能な、所定の操作を行うための「操作子」に対して広く適用することができる。例えば、ピアノを演奏するアプリケーションプログラムにおいて、画面上に表示されたピアノのキーを、手の形をした操作子で押し下げることで、両手で演奏するといった如くである。
【００５３】
また、上述した各実施形態では、操作者Ｕのジェスチャとして、操作者Ｕの左右の手そのものを認識する例について説明したが、ジェスチャの認識対象は、本発明はこれに限定されるものではなく、左右の手によって操作される物体であってもよい。例えば、左右の手のそれぞれに握られた刀や杖を認識するといった如くである。ユーザインターフェース装置３によって認識される対象物（手や物体）を予め定めておき、その形状的な特徴と、形状の変化パターンとを適切に設定しておけば、認識対象が物体であっても、本実施形態と同様のユーザインターフェースを実現できる。
【００５４】
また、上述した各実施形態では、操作者Ｕのジェスチャを認識するためのセンサとして、単眼カメラを用いているが、ステレオカメラやマルチカメラ、一台もしくは複数台の深度画像を取得できるセンサを用いてもよい。ただし、本発明は、単眼カメラにも適用し得ることから、不要なコストアップを避ける観点からは、単眼カメラを用いた方が好適である。また、カメラに代えてレーザを用い、レーザ画像（レーザの反射強度の二次元的な分布）をセンサ画像とすることも可能である。さらに、カメラやレーザ等のセンサの配置位置は、操作者Ｕと向き合うように位置に限定されるものではなく、例えば、操作者Ｕの頭部に装着されたヘッドマウントディスプレイ（ＨＭＤ）の内蔵カメラによって、操作者Ｕの両手（手の甲）を撮像してもよいし、天井に設置されたカメラによって、上方から操作者Ｕの両手を撮像してもよい。
【００５５】
さらに、上述したユーザインターフェース装置３の機能をコンピュータ４に担わせる場合、図３および図４は、コンピュータプログラムにおける一連の手順を示すフローチャートとしても捉えることができる。
【符号の説明】
【００５６】
１  ジェスチャ認識システム
２  カメラ
３  ユーザインターフェース装置
３ａ  フレームメモリ
３ｂ  対象物検出部
３ｃ  仮想操作領域保持部
３d  位置指示部
３ｅ  操作指示部
３ｆ  顔検出部
３ｇ  両手検出部
４  コンピュータ
５  表示装置
【図１】
2017211739.tif 000003
【図２】
2017211739.tif 000004
【図３】
2017211739.tif 000005
【図４】
2017211739.tif 000006
【図５】
2017211739.tif 000007
【図６】
2017211739.tif 000008
【図７】
2017211739.tif 000009
【図８】
2017211739.tif 000010
【図９】
2017211739.tif 000011
【図１０】
2017211739.tif 000012
【図１１】
2017211739.tif 000013