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