(57)【要約】【課題】対象者に非対象者が重なる状況でもロバスト性を持つ動き検出システムの提供。【解決手段】動き検出システムは、画像センサからの画像に基づいて、対象者に係る画素領域である対象者領域を認識する対象者領域認識部と、前記画像センサから前記対象者までの距離を取得する距離取得部と、前記距離の二乗に応じた第１値を算出する第１算出部と、前記対象者領域のサイズに応じた第２値を算出する第２算出部と、前記画像における前記対象者領域内の情報と、前記第１値と、前記第２値とに基づいて、前記対象者の動きを検出する動き検出部とを含む。【選択図】図３
2018169720.tif 000002
【特許請求の範囲】
【請求項１】
画像センサからの画像に基づいて、対象者に係る画素領域である対象者領域を認識する対象者領域認識部と、
前記画像センサから前記対象者までの距離を取得する距離取得部と、
前記距離の二乗に応じた第１値を算出する第１算出部と、
前記対象者領域のサイズに応じた第２値を算出する第２算出部と、
前記画像における前記対象者領域内の情報と、前記第１値と、前記第２値とに基づいて、前記対象者の動きを検出する動き検出部とを含む、動き検出システム。
【請求項２】
前記動き検出部は、前記第１値と前記第２値との大小関係に基づいて、前記対象者の動きを検出する、請求項１に記載の動き検出システム。
【請求項３】
前記第１値は、前記距離の二乗に反比例する値であり、
前記第２値は、前記対象者領域のサイズに対応する値又は前記対象者領域のサイズに比例する値であり、
前記動き検出部は、前記第２値が前記第１値よりも大きい場合、前記対象者の動きの検出を禁止する、又は、前記対象者の動きの検出結果を無効化する、請求項２に記載の動き検出システム。
【請求項４】
前記動き検出部は、複数フレームで得られる前記画像に基づき認識された複数の前記対象者領域内の情報に基づいて、前記対象者の動きを検出し、
前記第１算出部は、前記複数フレームに係る前記画像が取得されている間の少なくとも１時点での前記距離に基づいて、前記第１値を算出し、
前記第２算出部は、前記複数フレームに係る前記画像が取得されている間の少なくとも１時点での前記対象者領域のサイズに基づいて、前記第２値を算出する、請求項１〜３のうちのいずれか１項に記載の動き検出システム。
【請求項５】
前記第１値は、前記対象者領域に前記対象者に係る画素のみが含まれる場合に前記第２値が取る上限値であって、前記距離が変化しない条件下で前記第２値が取る上限値に等しい、請求項３又は４に記載の動き検出システム。
【請求項６】
前記第１値は、前記対象者が片手を上に挙げる状態又は両手を上に挙げる状態で得られる前記第２値に基づいて設定される、請求項５に記載の動き検出システム。
【請求項７】
前記画像センサは、距離画像センサであり、
前記画像は、前記距離画像センサから物体までの距離情報を画素値とする距離画像である、請求項１〜６のうちのいずれか１項に記載の動き検出システム。
【請求項８】
前記距離取得部は、前記距離画像から得られる前記対象者の身体部位に係る前記距離情報に基づいて、前記距離を取得する、請求項７に記載の動き検出システム。
【請求項９】
前記距離取得部は、前記対象者の腰部に係る前記距離情報に基づいて、前記距離を取得する、請求項８に記載の動き検出システム。
【請求項１０】
前記動き検出部による前記対象者の動きの検出結果に基づいて、表示装置の表示状態を変更する機能実現部を更に含む、請求項１〜９のうちのいずれか１項に記載の動き検出システム。
【請求項１１】
前記機能実現部は、前記表示装置に表示されているボタンに対応付けられた所定の動きを前記動き検出部が検出した場合に、前記ボタンに対応付けられた機能を実現する、請求項１０に記載の動き検出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、動き検出システムに関する。
【背景技術】
【０００２】
画像センサからの画像に基づいて対象者の動きを検出する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2015-114762号公報
【特許文献２】特開2011-215922号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような従来技術では、動き検出の対象者に非対象者が重なる状況下では、非対象者に起因して対象者の動きを誤検出し易くなる。例えば、距離画像を用いる場合、距離画像には、対象者及び非対象者の双方の距離情報が含まれることになる。かかる距離画像においては、非対象者における対象者との接触個所付近の距離情報は、対象者における被接触個所の距離情報と同等となる。この場合、距離画像において非対象者と対象者との切り分けが困難となり、非対象者に起因した動きを、対象者の動きとして誤検出し易くなる。
【０００５】
そこで、１つの側面では、本発明は、対象者に非対象者が重なる状況でもロバスト性を持つ動き検出システムの提供を目的とする。
【課題を解決するための手段】
【０００６】
１つの側面では、画像センサからの画像に基づいて、対象者に係る画素領域である対象者領域を認識する対象者領域認識部と、
前記画像センサから前記対象者までの距離を取得する距離取得部と、
前記距離の二乗に応じた第１値を算出する第１算出部と、
前記対象者領域のサイズに応じた第２値を算出する第２算出部と、
前記画像における前記対象者領域内の情報と、前記第１値と、前記第２値とに基づいて、前記対象者の動きを検出する動き検出部とを含む、動き検出システムが提供される。
【発明の効果】
【０００７】
１つの側面では、本発明によれば、対象者に非対象者が重なる状況でもロバスト性を持つ動き検出システムが得られる。
【図面の簡単な説明】
【０００８】
【図１】一実施例によるジェスチャ入力システムを示す図である。
【図２】処理装置のハードウェア構成の一例を示す図である。
【図３】処理装置の機能の一例を示すブロック図である。
【図４】身体の各部位の分け方の一例を示す図である。
【図５】距離画像における注目点とオフセット点のイメージ図である。
【図６】画素毎に決定木を用いて身体部位を識別する方法の説明図である。
【図７】機械学習の概要を示す説明図である。
【図８】非関節部位の重心位置のイメージ図である。
【図９】関節部位等の重心位置のイメージ図である。
【図１０】骨格の認識結果のイメージ図である。
【図１１】重心位置の算出方法の一例の説明図である。
【図１２】対象者に非対象者が重なる状況で取得される距離画像の説明図である。
【図１３Ａ】指示点の説明図である。
【図１３Ｂ】押し動作及び引き動作の説明図である。
【図１４】対象者Ｓの上面図及び側面図である。
【図１５】対象者に非対象者が重なる状況と重ならない状況下との間の対象者領域サイズの相違の説明図である。
【図１６】タップ動作検出時の機能（画面遷移）の一例の説明図である。
【図１７】タップ動作に関連した腕伸ばし量の変化態様の説明図である。
【図１８】右手の移動速度と閾値を示す特性図である。
【図１９】移動速度を計測する方向を説明する図である。
【図２０】処理装置により実行される処理の一例を概略的に示すフローチャートである。
【図２１】図２０のステップＳ２２０のタップ動作検出処理の一例を概略的に示すフローチャートである。
【図２２】図２０に対する代替例を示すフローチャートである。
【図２３】図２０に対する更なる代替例を示すフローチャートである。
【図２４】図２３のステップＳ２２０−１のタップ動作検出処理の一例を概略的に示すフローチャートである。
【図２５】図２０に対する更なる代替例を示すフローチャートである。
【図２６】図２０に対する更なる代替例を示すフローチャートである。
【図２７】トリガジェスチャ時の距離画像の一例を示す図である。
【図２８】本実施例によるジェスチャ入力発生結果の説明図である。
【図２９】比較例によるジェスチャ入力発生検出結果の説明図である。
【図３０】他の適用例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら各実施例について詳細に説明する。
【００１０】
図１は、一実施例によるジェスチャ入力システム１（動き検出システムの一例）を示す図である。
【００１１】
ジェスチャ入力システム１は、処理装置１００を含み、処理装置１００には、投影装置４２及び画像センサ５０が接続される。
【００１２】
ジェスチャ入力システム１は、例えば、三次元空間でのシミュレーションやゲーム等において、ジェスチャ入力に基づくユーザインターフェースを形成してもよい。また、ジェスチャ入力システム１は、ジェスチャ入力に基づく２次元のユーザインターフェースを形成してもよい。２次元のユーザインターフェースの場合は、スクリーン４０及び投影装置４２の代わりに、例えば、液晶ディスプレイや有機ＥＬ（ElectroLuminescence）ディスプレイが使用されてもよい。
【００１３】
スクリーン４０は、例えば、プロジェクタ用スクリーンを用いることができる。スクリーン４０のサイズは、用途に応じて適宜設定すればよい。スクリーン４０には、投影装置４２によって投影される画像が表示される。ここでは、ボタン４１２、４１４、及びポインタ４１０を含む操作画像がスクリーン４０に表示されていることとする。
【００１４】
ジェスチャ入力システム１では、一例として、操作者である対象者Ｓがスクリーン４０に向けた手が指す方向にポインタ４１０が表示される。即ち、ポインタ４１０は、操作画像上に重畳表示され、対象者Ｓの指示点を表す。対象者Ｓは、右手の指を開いた状態にしても、右手を握った状態にしてもよい。対象者Ｓが右腕を動かして右手で指す方向において、スクリーン４０上にポインタ４１０が表示される。対象者Ｓは、右腕を動かすことで、スクリーン４０上のポインタ４１０を移動させることができる。対象者Ｓは、所望のボタン上にポインタ４１０を位置付けてから、右腕で決定動作を行うことで、ボタンに対応付けられた機能を実現できる。例えば、図１では、ボタン４１２上にポインタ４１０が位置付けられている。尚、ポインタ４１０に代えて、カーソル（選択中のボタンをハイライトする表示）が使用されてもよい。
【００１５】
投影装置４２は、スクリーン４０に操作画像を投影できる装置であればよく、例えば、プロジェクタを用いることができる。操作画像は、ボタン４１２、４１４の表示を含み、ボタン４１２、４１４の表示は、ボタン４１２、４１４に対応付けられた機能を表す文字表示等を含んでよい。ボタン４１２、４１４に対応付けられた機能は、任意であるが、スクリーン４０上の表示状態の変更を伴うものであってよい。例えば、表示状態の変更は、操作画像の遷移や、文字等の入力等であってよい。ボタン４１２、４１４に対応付けられた機能は、所定の対象機器の制御や設定変更等であってもよい。また、投影装置４２は、上述のポインタ４１０を表示する。
【００１６】
投影装置４２は、ケーブル４２１によって処理装置１００に接続されており、処理装置１００から入力される画像をスクリーン４０に投影する。ここでは、投影装置４２は、３Ｄ画像（立体視の画像）をスクリーン４０に投影できるタイプのものである。なお、スクリーン４０及び投影装置４２の代わりに、３Ｄ画像を見ることができるヘッドマウントディスプレイを用いてもよい。また、３Ｄ(3  Dimension)眼鏡が使用され、ジェスチャ入力システム１を利用する対象者Ｓが装着されてもよい。３Ｄ眼鏡は、投影装置４２によってスクリーン４０に投影される画像を３Ｄ画像に変換できる眼鏡であればよく、例えば、入射光を偏光する偏光眼鏡、又は、液晶シャッターを有する液晶シャッター眼鏡を用いることができる。
【００１７】
画像センサ５０は、対象者Ｓの体の位置及び形状等を三次元的に表すデータを取得する装置である。画像センサ５０は、スクリーン４０の上方に設置されており、スクリーン４０の正面に、検出範囲５０２を有する。画像センサ５０は、例えば、スクリーン４０の表示面に対して略面直方向で距離を検出するように配置される。画像センサ５０の検出範囲５０２は、スクリーン４０の正面にかけて延在する。画像センサ５０は、ケーブル５２１によって処理装置１００に接続されている。
【００１８】
本実施例では、一例として、画像センサ５０は、距離画像センサである。距離画像センサは、空間全体のセンシングを行って距離を計測し、デジタル画像のように画素毎に距離情報を持つ距離画像を取得する。距離情報の取得方式は任意である。例えば、距離情報の取得方式は、特定のパターンを対象に投影してそれをイメージセンサで読み取り、投影パターンの幾何学的な歪みから三角測量の方式により距離を取得するアクティブステレオ方式であってもよい。また、レーザー光を照射してイメージセンサで反射光を読み取り、その位相のずれから距離を計測するTime-of-Flight(TOF)方式であってもよい。
【００１９】
処理装置１００は、画像センサ５０からの画像に基づいて、対象者Ｓの動きを検出し、対象者Ｓの動きに応じた機能を実現する。例えば、処理装置１００は、ポインタ４１０がボタン４１２に位置付けられている状況下で、対象者Ｓの所定の手の動き（例えば手を前に出してから後に引く動きを伴う）に応じて、ボタン４１２に対応付けられた機能を実現する。
【００２０】
尚、図１では、グラフィカルユーザインターフェースとして機能する操作画像を出力するスクリーン４０及び投影装置４２（表示装置の一例）が設けられるが、表示装置自体が省略されてもよい。この場合、処理装置１００は、操作画像を用いずに、同様の機能（例えば対象機器の制御）を実現してもよいし、操作画像を用いない他の機能（例えば単なる対象者Ｓの動き検出機能）を実現してもよい。操作画像を用いない他の機能を実現する場合は、後述の映像出力部１４２及び操作画像データ保持部１５０（図３）は省略されてよい。
【００２１】
図２は、処理装置１００のハードウェア構成の一例を示す図である。図２には、処理装置１００のハードウェア構成に関連付けて、周辺機器８が模式的に図示されている。周辺機器８は、画像センサ５０や投影装置４２を含む。
【００２２】
処理装置１００は、バス１９で接続されたＣＰＵ（Central  Processing  Unit）１１、ＲＡＭ（Random  Access  Memory）１２、ＲＯＭ（Read  Only  Memory）１３、補助記憶装置１４、ドライブ装置１５、及び通信インターフェース１７、並びに、通信インターフェース１７に接続された有線送受信部２５及び無線送受信部２６を含む。
【００２３】
補助記憶装置１４は、例えばＨＤＤ（Hard  Disk  Drive）や、ＳＳＤ（Solid  State  Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。  
有線送受信部２５は、有線ネットワークを利用して通信可能な送受信部を含む。有線送受信部２５には、周辺機器８が接続される。但し、周辺機器８の一部又は全部は、バス１９に接続されてもよい。
【００２４】
無線送受信部２６は、無線ネットワークを利用して通信可能な送受信部である。無線ネットワークは、携帯電話の無線通信網、インターネット、World  Wide  Web、VPN（virtual  private  network）、WAN（Wide  Area  Network）等を含んでよい。また、無線送受信部２６は、近距離無線通信（ＮＦＣ：Near  Field  Communication）部、ブルーツース（Bluetooth、登録商標）通信部、Ｗｉ−Ｆｉ（Wireless-Fidelity）送受信部、赤外線送受信部などを含んでもよい。例えば、ケーブル５２１やケーブル４２１が省略され、周辺機器８と処理装置１００との間の通信は、無線送受信部２６により実現されてもよい。
【００２５】
尚、処理装置１００は、記録媒体１６と接続可能であってもよい。記録媒体１６は、所定のプログラムを格納する。この記録媒体１６に格納されたプログラムは、ドライブ装置１５を介して処理装置１００の補助記憶装置１４等にインストールされる。インストールされた所定のプログラムは、処理装置１００のＣＰＵ１１により実行可能となる。例えば、記録媒体１６は、ＣＤ(Compact  Disc)−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等であってよい。なお、記録媒体１６には、搬送波は含まれない。
【００２６】
図３は、処理装置１００の機能の一例を示すブロック図である。
【００２７】
処理装置１００は、図３に示すように、人体検出部１１０と、閾値計算部１２０（第１算出部の一例）と、指示点計算部１２２と、ジェスチャ認識処理部１３０と、閾値判定部１４０とを含む。また、処理装置１００は、図３に示すように、映像出力部１４２（機能実現部の一例）と、操作画像データ保持部１５０とを更に含む。尚、本実施例では、ジェスチャ認識処理部１３０及び閾値判定部１４０は、協動して、「動き検出部」の一例を実現する。
【００２８】
人体検出部１１０、閾値計算部１２０、及び指示点計算部１２２、図２に示したＣＰＵ１１がＲＯＭ１３等の記憶装置に記憶された１つ以上のプログラムを実行することでそれぞれ実現できる。また、ジェスチャ認識処理部１３０、閾値判定部１４０、及び映像出力部１４２は、図２に示したＣＰＵ１１がＲＯＭ１３等の記憶装置に記憶された１つ以上のプログラムを実行することでそれぞれ実現できる。操作画像データ保持部１５０は、ＲＯＭ１３等の記憶装置により実現できる。
【００２９】
人体検出部１１０は、画像センサ５０から対象者Ｓの距離画像に基づいて、対象者Ｓに係る画素領域である対象者領域のサイズを算出するとともに、画像センサ５０から対象者Ｓまでの距離情報（以下、「対象者距離情報」と称する）を生成する。対象者領域の認識方法は、距離画像における対象者Ｓの身体の各部位を識別することを含んでよい。この場合、身体の各部位の識別は、予め機械学習により得られる学習結果に基づいて実現できる。身体の各部位の識別方法の一例は、図５乃至図７を参照して後述する。或いは、対象者領域は、距離画像から人体の輪郭抽出を行うことで認識されてもよい。対象者距離情報は、後述のように、対象者Ｓの特定の関節位置における距離を表す情報であってよい。特定の関節位置は、好ましくは、対象者Ｓの腰部に係る関節位置である。これは、対象者Ｓの腰部の距離は、ジェスチャ入力のための対象者Ｓの腕などの動きに影響され難く、画像センサ５０から対象者Ｓの距離をロバストに表すことができるためである。
【００３０】
具体的には、人体検出部１１０は、身体部位識別部１１０１（対象者領域認識部の一例）と、非関節位置算出部１１０２と、関節位置算出部１１０３と、対象者領域サイズ算出部１１０４（第２算出部の一例）と、対象者距離情報生成部１１０５（距離取得部の一例）とを含む。尚、変形例では、非関節位置算出部１１０２は省略されてもよい。
【００３１】
身体部位識別部１１０１には、画像センサ５０から対象者Ｓの距離画像が入力される。身体部位識別部１１０１は、距離画像における対象者Ｓの身体の各部位を識別する。身体の各部位の識別は、予め機械学習により得られる学習結果に基づいて実現できる。身体の各部位の識別方法の一例は、図５乃至図７を参照して後述する。
【００３２】
図４は、身体の各部位の分け方の一例を示す図である。図４に示す例では、身体は、一例として、２９部位ａ１〜ａ２９に分けられている。身体は、関節部位（例えば、ａ１７、ａ１８、ａ２１、ａ２２等）と、非関節部位（例えば、ａ１９、ａ２０、ａ２３、ａ２４等）と、手や足の末端部位（ａ１５、ａ１６、ａ２８、ａ２９）とを含む。このようにして分けられた身体の各部位には、例えば固有のラベルが付与されてよい。以下では、身体の各部位（ラベルが付けられた各身体部位）を識別することを、「ラベル分け」とも称する。
【００３３】
ここで、図５乃至図７を参照して、身体の各部位の識別方法の一例について説明する。ここでは、機械学習方式としてランダムフォレストを用い、特徴量として注目画素と周辺画素の距離値の差を用いる例を説明する。ランダムフォレストでは複数の決定木を用い、入力データ（距離画像）の特徴量を算出してその結果に応じて決定木を分岐していき、最終的な結果を得る。本例においては、距離画像の各画素毎に特徴量を算出し、決定木で分岐していくことにより、最終的にその画素がどの身体部位(ラベル)に属するかを分類する。
【００３４】
特徴量ｆ（Ｉ，ｘ）は、距離画像内の注目点（ピクセル）とその周辺のオフセット点の間の距離値の差であり、数１の式で表される。
【００３５】
【数１】
2018169720.tif 000003
ここで、Ｉは距離画像、ｘは注目点の座標、ｄＩ（ｘ）は、注目点の距離、ｄＩ（ｘ＋Δ）は、オフセット点の距離である。オフセットΔは、以下のとおりである。
【００３６】
【数２】
2018169720.tif 000004
ここで、ｖは、注目点からのオフセット（正規化前）である。尚、オフセット点の位置については学習時に決まった位置を使い、画像センサ５０からの対象者Ｓの近さの変動に対応するために距離で正規化を行っている。即ち、対象者Ｓが近いほど距離画像が拡大されるため、オフセットΔは、注目点の距離で正規化されている。
【００３７】
図５は、距離画像における注目点とオフセット点のイメージ図である。図５において、印“＋”は注目点を表し、印“ｘ”はオフセット点を表し、矢印はオフセットΔを概念的に表す。図５において、例えば注目点が頭部の画素でありオフセット点が背景部分となっている場合、注目点とオフセット点の距離の差は大きくなる。他方、胴体部分のように注目点とオフセット点が両方とも上半身にある場合、距離の差は小さくなる。
【００３８】
図６は、画素毎に決定木を用いて身体部位を識別する方法の説明図である。図６には、決定木がT個の“tree  １”〜“tree  T”示されている。身体部位識別部１１０１は、距離画像から1画素ずつ、事前に学習した識別器（複数の決定木）に入力し、画素毎に身体部位の推定を行う。身体部位識別部１１０１は、決定木の各ノードNｋでは、その画素の特徴量ｆ（Ｉ、ｘ；Δｋ）を算出して閾値θｋと比較する。各ノードでの演算に使用するオフセットΔｋと閾値θｋは学習の際に最も正しく部位が識別できる値が選択される。身体部位識別部１１０１は、各ノードで比較結果に応じた方向へと分岐して次のノードへ進み、終端ノードまで至る。決定木の終端ノードに到達すると、その画素がどの身体部位に属するかの確率分布が得られる。図６において、P1(c)は、決定木“tree  １”における確率分布を模式的に表し、PT(c)は、決定木“tree  T”における確率分布を模式的に表す。ｃは、各身体部位（各ラベル）を表す。そして、確率分布をすべての木の結果で平均し、最も確率の大きい部位が推定結果となる。
【００３９】
図７は、機械学習（学習処理）の概要を示す説明図である。学習の際には様々な姿勢の距離画像と対応する部位ラベル付画像（ラベル分けデータ）のセットを大量に用意し、機械学習処理を行う。機械学習処理では、決定木でうまく分類できるように各ノードｋで比較する周辺画素のオフセットΔｋ、及び、分岐の判定に使用する閾値θｋが決定（学習）される。
【００４０】
ここでは、一例として、機械学習方式としてランダムフォレストを用い、特徴量として注目画素と周辺画素の距離値の差を用いているが、他の方法も可能である。例えば、距離画像を入力として各画素のマルチクラス分類(Multi-class  Classification)を行う方式であってもよい。また、ランダムフォレストの場合でも距離値の差以外の特徴量を使ってもよいし、特徴量に相当するパラメータも含めて学習を行う深層学習(Deep  Learning)を用いてもよい。
【００４１】
また、身体部位識別部１１０１は、手や足の末端部位については、機械学習の結果を用いずに、距離画像のみから人体の輪郭抽出を行うことで認識してもよい。これは、手や足の末端部位については、機械学習の結果を用いなくても輪郭抽出により精度高い認識結果が得られる可能性が高いためである。
【００４２】
非関節位置算出部１１０２は、身体部位識別部１１０１が識別した各非関節部位及び各末端部位の重心位置を算出する。非関節位置算出部１１０２は、図８に×マークで示すような、非関節部位ａ７、ａ８、ａ１１、ａ１２、ａ１９、ａ２０、ａ２３、ａ２４及び末端部位ａ１５、ａ１６、ａ２８、ａ２９の各重心位置を算出する。
【００４３】
関節位置算出部１１０３は、身体部位識別部１１０１が識別した各関節部位の重心位置を算出する。関節位置算出部１１０３は、図９に×マークで示すような、関節部位の各重心位置、及び、他の骨格基準位置Ｐ１、Ｐ２、Ｐ３を算出する。この場合、関節位置算出部１１０３は、更に、図１０に模式的に示すように、関節部位の各重心位置及び骨格基準位置Ｐ１、Ｐ２、Ｐ３に基づいて、骨格を認識してもよい。
【００４４】
図１１は、非関節位置算出部１１０２及び関節位置算出部１１０３で用いることができる重心位置の算出方法の一例の説明図である。図１１は、身体部位識別部１１０１による各部位の識別結果を示し、Ｘ１の拡大図を併せて示す。ここでは、図１１のＸ１の拡大図を参照して、左肩（関節部位）の重心位置を求める例を説明する。部位X1の拡大図において、白抜きの“×”で示す各点Piは、肩と分類された画素に対応する3次元座標を表す。この場合、黒塗りの“×”で示す重心位置Joint（ｘ，ｙ，ｚ）は、以下の数３の式のように、すべてのPiの座標（x，y，z）それぞれの平均を算出することによって求められてよい。なお、ｘ成分及びｙ成分は、画像平面内の２次元座標の値であり、ｘ成分は、水平方向の成分であり、ｙ成分は、垂直方向の成分である。また、ｚ成分は、距離を表す。
【００４５】
【数３】
2018169720.tif 000005
尚、数３の式において、“ｎ”は、各点Piの個数である。
【００４６】
対象者領域サイズ算出部１１０４は、対象者領域のサイズ（以下、「対象者領域サイズ」と称する）を算出する。例えば、対象者領域サイズ算出部１１０４は、身体部位識別部１１０１により識別された２９部位ａ１〜ａ２９の全ての画素数の合計値を、対象者領域サイズとして算出する。尚、変形例では、対象者領域サイズ算出部１１０４は、身体部位識別部１１０１により識別された２９部位ａ１〜ａ２９のうちの、特定の部位のみの画素数の合計値を、対象者領域サイズとして算出してもよい。特定の部位は、例えば上半身に属する各部位や、膝よりも上の各部位等であってもよい。
【００４７】
対象者距離情報生成部１１０５は、関節位置算出部１１０３により算出される関節部位の各重心位置及び骨格基準位置Ｐ１、Ｐ２、Ｐ３のｚ成分（距離）（身体部位に係る距離情報の一例）に基づいて、対象者距離情報を生成する。この際、関節位置算出部１１０３が得た関節部位の各重心位置及び骨格基準位置Ｐ１、Ｐ２、Ｐ３の１つ又は２つ以上の組合わせて使用されてもよい。対象者距離情報生成部１１０５は、例えば、対象者Ｓの股部の骨格基準位置Ｐ２（又は股関節ａ５，ａ６）のｚ成分（距離）（腰部に係る距離情報の一例）を、画像センサ５０から対象者Ｓまでの距離として対象者距離情報を生成する。尚、変形例では、非関節位置算出部１１０２により算出される各非関節部位及び各末端部位の重心位置のｚ成分（距離）（身体部位に係る距離情報の一例）が、対象者距離情報の生成に使用されてもよい。
【００４８】
以下、人体検出部１１０で上述のようにして取得（生成）される各部位の重心位置（関節部位の各重心位置や骨格基準位置Ｐ１、Ｐ２、Ｐ３等）を、「骨格情報」とも称する。人体検出部１１０は、例えば、画像センサ５０から距離画像が入力される毎（即ちフレーム周期毎）に、骨格情報を生成する。
【００４９】
閾値計算部１２０は、人体検出部１１０から得られる骨格情報に基づいて、閾値Ｔｈ（第１値の一例）を算出する。閾値Ｔｈは、後述のように、対象者領域サイズと比較される値であり、対象者Ｓに非対象者が重なる状況を検出できるように適合される。
【００５０】
図１２は、対象者Ｓに非対象者が重なる状況で取得される距離画像の説明図である。対象者Ｓに非対象者が重なる状況では、背景除去処理後の距離画像は、図１２に示すように、非対象者Ｓ２の距離情報が残存する。これは、非対象者Ｓ２が対象者Ｓと接触又は近接（以下、「接触」で代表する）しているためである。非対象者Ｓ２が対象者Ｓに接触している場合、接触部分を介して非対象者Ｓ２と対象者Ｓとの距離情報が連続してしまい（輪郭を抽出できず）、背景除去処理によって非対象者Ｓ２の距離情報を除去できないためである。
【００５１】
対象者Ｓに非対象者が重なる状況では、身体部位識別部１１０１は、非対象者Ｓ２に係る部位を、対象者Ｓに係る部位に含めて識別する場合があり、この場合、対象者領域サイズが大きくなる。即ち、対象者Ｓに非対象者が重なる状況では、対象者Ｓだけが正確に識別された場合に得られる対象者領域サイズよりも大きな対象者領域サイズが対象者領域サイズ算出部１１０４により算出される場合がある。このことから、対象者領域サイズを閾値Ｔｈと比較することで、対象者Ｓに非対象者が重なる状況であるか否かを判定できることが分かる。
【００５２】
具体的には、閾値計算部１２０は、対象者距離情報に基づいて、画像センサ５０から対象者Ｓまでの距離の二乗に反比例する態様で、閾値Ｔｈを算出する。即ち、画像センサ５０から対象者Ｓまでの距離を“ｄ”とすると、閾値Ｔｈは、以下のとおりである。
Ｔｈ＝Ａ／ｄ２
ここで、Ａは、定数であり、定数Ａは、適合値であってよい。定数Ａの具体的な設定方法の例は後述する。
【００５３】
ここで、対象者領域サイズは、対象者Ｓが同一人でありかつ同一の姿勢をしていても、画像センサ５０から対象者Ｓまでの距離に応じて変化する。具体的には、対象者領域サイズは、画像センサ５０から対象者Ｓまでの距離の二乗に反比例する。これは、対象者領域サイズは、面積のディメンジョンであるためである。従って、上述のように、画像センサ５０から対象者Ｓまでの距離の二乗に反比例する態様で閾値Ｔｈを算出することで、画像センサ５０から対象者Ｓまでの距離が変化に対してもロバストに、対象者Ｓに非対象者が重なる状況を検出することが可能となる。
【００５４】
指示点計算部１２２は、人体検出部１１０から得られる骨格情報に基づいて、対象者Ｓの指示点を計算する。指示点計算部１２２は、骨格情報に基づいて、例えば対象者Ｓの右肩（関節部位ａ１７）の重心位置と右手首（関節部位ａ２５）又は右手の末端部位ａ２８の重心位置を結ぶベクトルＶｓ（図１３Ａ参照）を算出する。そして、指示点計算部１２２は、図１３Ａに示すように、ベクトルＶｓがスクリーン４０に交わる交点を、指示点として計算する。例えば、交点（Ｐｘ，Ｐｙ，Ｐｚ）は、右手首の重心位置（Ｈｘ，Ｈｙ，Ｈｚ）とすると、以下のとおりである。
【００５５】
【数４】
2018169720.tif 000006
ここで、Δｓは、図１３Ａに示すように、ベクトルＶｓの方向に沿ったスクリーン４０と対象者ＳとのオフセットΔｓであり、画像センサ５０から対象者Ｓまでの距離が使用されてよい。
【００５６】
ジェスチャ認識処理部１３０は、人体検出部１１０から得られる骨格情報に基づいて、対象者Ｓの動きを検出する。検出対象の対象者Ｓの動きは、対象者Ｓの全ての動きであってもよいし、所定の動きであってもよい。対象者Ｓの全ての動きは、例えば対象者Ｓが要介護者であり、監視等の用途で検出されてよい。本実施例では、検出対象の対象者Ｓの動きは、所定の動きである。所定の動きは、任意に規定されてよいが、本実施例では、一例として、対象者Ｓの手（腕部を含む）の動きであり、所定の手の動きは、右手を前に出してから後に引く動きを伴うタップ動作である。
【００５７】
ジェスチャ認識処理部１３０は、トリガジェスチャ検出部１３２と、手部速度計算部１３４と、押し動作検出部１３６と、引き動作検出部１３８と、タップ動作検出部１３９とを含む。
【００５８】
トリガジェスチャ検出部１３２は、人体検出部１１０から得られる骨格情報に基づいて、所定のトリガジェスチャを検出する。所定のトリガジェスチャは、対象者Ｓがジェスチャ入力システム１に初期化（ジェスチャ入力機能の起動）を要求するためのジェスチャである。トリガジェスチャは、予め対象者Ｓに周知されるジェスチャ（ポーズ）である。本実施例では、一例として、トリガジェスチャは、対象者Ｓが右手を上げている状態を検出する。
【００５９】
手部速度計算部１３４は、フレームごとに得られる人体検出部１１０から得られる骨格情報に基づいて、右手の移動速度ＶＲを計算する。例えば、手部速度計算部１３４は、対象者Ｓの右手首（関節部位ａ２５）又は右手の末端部位ａ２８について、重心位置の変化量をフレーム間で算出し、該変化量を、フレーム間の時間間隔（即ちフレーム周期）で除算することで、右手の移動速度ＶＲを計算する。フレーム間での重心位置の変化量は、ｚ成分だけの変化量であってもよいし、ユークリッド距離で算出されてもよい。
【００６０】
押し動作検出部１３６は、フレームごとに得られる人体検出部１１０から得られる骨格情報に基づいて、右手を前に出す動作（以下、「押し動作」と称する）を検出する。図１３Ｂは、押し動作及び引き動作（後述）の説明図である。図１３Ｂでは、スクリーン４０の正面に立つ対象者Ｓの右手と、ポインタ４１０が位置付けられているボタン４１２との関係が、吹き出しにて模式的に上面視で示されている。図１３Ｂにて矢印Ｒ１で示すように、押し動作は、ポインタ４１０が位置付けられているボタン４１２を右手で押すイメージの動作である。
【００６１】
例えば、押し動作検出部１３６は、対象者Ｓの右手首（関節部位ａ２５）又は右手の末端部位ａ２８の重心位置と、胸部の重心位置（骨格基準位置Ｐ１）とに基づいて、対象者Ｓの胸部と右手首又は右手の末端部位との距離を算出する。尚、対象者Ｓの胸部と右手首又は右手の末端部位との距離（以下、「手−胸間距離」と称する）は、ｚ成分だけの距離であってもよいし、ユークリッド距離であってもよい。そして、押し動作検出部１３６は、手−胸間距離が増加方向に変化した場合に、押し動作を検出する。或いは、胸部の重心位置（骨格基準位置Ｐ１）に代えて、右肩（関節部位ａ１７）の重心位置が使用されてもよい（後述の腕伸ばし量参照）。或いは、押し動作検出部１３６は、右肘の角度（関節角度）θを算出し、角度θ（以下、「右肘角度θ」と称する）が所定閾値Ｔｈθを超えた場合に、押し動作を検出してもよい。右肘角度θは、例えば、図１４に模式的に示すように、肩及び肘の２つの関節部位の各重心位置を結ぶ直線Ｌ１２と、肘及び手首の２つの関節部位の各重心位置を結ぶ直線Ｌ１３とのなす角度として算出されてもよい。
【００６２】
引き動作検出部１３８は、フレームごとに得られる人体検出部１１０から得られる骨格情報に基づいて、右手を後ろに引く動作（以下、「引き動作」と称する）を検出する。図１３Ｂにて矢印Ｒ２で示すように、引き動作は、ポインタ４１０が位置付けられているボタン４１２を右手で押した後に右手を戻すイメージの動作である。例えば、引き動作検出部１３８は、手−胸間距離が減少方向に変化した場合に、引き動作を検出する。或いは、引き動作検出部１３８は、右肘角度θが所定閾値Ｔｈθを超えていた状態から所定閾値Ｔｈθを下回った場合に、引き動作を検出してもよい。
【００６３】
タップ動作検出部１３９は、手部速度計算部１３４により算出される右手の移動速度と、押し動作検出部１３６及び引き動作検出部１３８による検出結果とに基づいて、タップ動作を検出する。タップ動作は、上述のように、右手を前に出してから後に引く動きを伴う。例えば、タップ動作検出部１３９は、押し動作及び引き動作を連続して検出し、押し動作中の右手の移動速度ＶＲが閾値速度ＴｈＶ１以上であり、かつ、引き動作中の右手の移動速度ＶＲが閾値速度ＴｈＶ２（負の値）以下である場合に、タップ動作を検出する。閾値速度ＴｈＶ１、ＴｈＶ２は、有意に遅い右手の移動速度ＶＲでの押し動作及び引き動作に起因してタップ動作が検出されないようにするための閾値である。例えば、閾値速度ＴｈＶ１、ＴｈＶ２は、一般的な対象者Ｓの動作方法に基づき決定されてよい。タップ動作検出部１３９によるタップ動作検出方法の更なる具体例は、図１７乃至図１９を参照して、後述する。
【００６４】
閾値判定部１４０は、フレームごとに、閾値計算部１２０により算出された閾値Ｔｈと、対象者領域サイズ算出部１１０４により算出された対象者領域サイズとに基づいて、閾値判定処理を行う。具体的には、閾値判定部１４０は、対象者領域サイズが閾値Ｔｈを超えたか否かを判定する。閾値判定部１４０は、対象者領域サイズが閾値Ｔｈを超えたと判定した場合は、対象者Ｓに非対象者が重なる状況であると判断する。例えば、閾値判定部１４０は、対象者領域サイズが閾値Ｔｈを超えたと判定した場合は、認識結果マスクフラグを“１”にセットする。閾値判定部１４０は、認識結果マスクフラグを“１”にセットすると、対象者領域サイズが閾値Ｔｈを下回るまで、認識結果マスクフラグを“１”に維持する。この場合、ジェスチャ認識処理部１３０は、認識結果マスクフラグが“１”の間は動作を停止（禁止）してもよい。これにより、対象者Ｓに非対象者Ｓ２が重なる状況下での対象者Ｓの動きの誤検出（非対象者Ｓ２に起因した誤検出）を低減できる。或いは、認識結果マスクフラグが“１”の間、ジェスチャ認識処理部１３０は、通常通り認識処理を行うが、認識処理結果が無効化されてもよい。これにより、対象者Ｓに非対象者Ｓ２が重なる状況下でのジェスチャ入力の発生を低減できる。例えば、認識結果マスクフラグが“１”の間、後述の映像出力部１４２がジェスチャ認識処理部１３０から得られる認識処理結果を破棄する又は使用しないことで、認識処理結果が無効化されてもよい。或いは、認識結果マスクフラグが“１”の間は、ジェスチャ認識処理部１３０から映像出力部１４２への認識処理結果の入力が禁止されることで、認識処理結果が無効化されてもよい。閾値判定部１４０の更なる動作例は、後述する。
【００６５】
図１５は、対象者Ｓに非対象者が重なる状況と重ならない状況下との間の対象者領域サイズの相違の説明図である。図１５では、縦軸に対象者領域サイズ［pixel］を取り、横軸にフレーム（時間）を取り、対象者領域サイズ算出部１１０４による算出される対象者領域サイズの時系列波形が示される。また、図１５には、閾値Ｔｈが併せて示される。図１５では、対象者領域サイズ算出部１１０４による算出される対象者領域サイズの時系列波形において、Ｑ１部は、対象者Ｓに非対象者が重ならない状況での波形を示し、Ｑ１部は、対象者Ｓに非対象者が重なる状況での波形を示す。
【００６６】
対象者Ｓに非対象者が重ならない状況では、図１５にＱ１部にて示すように、対象者領域サイズ算出部１１０４による算出される対象者領域サイズは、閾値Ｔｈを超えることが略ない。他方、対象者Ｓに非対象者が重なる状況では、図１５にＱ２部にて示すように、対象者領域サイズ算出部１１０４による算出される対象者領域サイズは、閾値Ｔｈを超えるフレームが多くなる。
【００６７】
従って、閾値判定部１４０は、直近の所定数のフレームのうちの、対象者領域サイズ算出部１１０４による算出される対象者領域サイズが閾値Ｔｈを超えるフレーム数をカウントしてもよい。この場合、閾値判定部１４０は、例えば、フレーム数が所定数に対して例えば９０％以上である場合に、対象者Ｓに非対象者が重なる状況であると判断してもよい。この場合は、ノイズの影響等に対してロバストな態様で、対象者Ｓに非対象者が重なる状況であるか否かを判定できる。
【００６８】
映像出力部１４２は、ジェスチャ認識処理部１３０から得られる認識処理結果と、閾値判定部１４０の判定結果とに基づいて、スクリーン４０に操作画像を表示するための映像出力処理を行う。本実施例では、一例として、映像出力部１４２は、閾値判定部１４０が対象者領域サイズが閾値Ｔｈを超えたと判定した場合は、ジェスチャ認識処理部１３０から得られる認識処理結果に応じた映像出力処理を行わない。従って、映像出力部１４２は、例えばジェスチャ認識処理部１３０によりタップ動作が検出された場合でも、該タップ動作の検出に応答した画面遷移等を実行しない。この場合、ジェスチャ認識処理部１３０により検出されたタップ動作は、「ジェスチャ入力」を発生させない。これにより、対象者Ｓに非対象者が重なる状況下でのジェスチャ入力の発生を低減でき、誤検出である可能性が高いタップ動作に起因したジェスチャ入力の発生を低減できる。
【００６９】
他方、映像出力部１４２は、閾値判定部１４０が対象者領域サイズが閾値Ｔｈを超えないと判定した場合、ジェスチャ認識処理部１３０から得られる認識処理結果に応じた映像出力処理を行う。例えば、映像出力部１４２は、図１６に示すような対応関係にしたがって、タップ動作の検出（決定動作の検出）に応じて画面遷移を行う。図１６には、ある操作画像（操作画像Ａ）に関して、ボタンＡ１〜Ａｋのそれぞれごとに、ボタンにポインタ４１０が位置付けられているときのタップ動作検出時の機能が対応付けられている。尚、図１６に示すような対応関係は、操作画像ごとに規定されてよく、ＲＯＭ１３等の記憶装置に記憶されていてよい。図１６に示す例では、例えばポインタ４１０がボタンＡ１に位置付けられているときに、タップ動作が検出されると、該タップ動作の検出に応答して操作画像Ａへ操作画像Ｂ１に遷移が実現される。
【００７０】
操作画像データ保持部１５０は、スクリーン４０に表示される操作画像のデータを保持する。スクリーン４０に表示される操作画像の種類は任意であり、上述のように、ボタン４１２、４１４等を含んでよい。
【００７１】
以上のように、本実施例のジェスチャ入力システム１によれば、対象者Ｓに非対象者Ｓ２が重なる状況である場合に、ジェスチャ認識処理部１３０による認識処理結果が禁止され、又は、ジェスチャ認識処理部１３０から得られる認識処理結果が無効化される。これにより、対象者Ｓに非対象者Ｓ２が重なる状況でもロバスト性を持つジェスチャ入力システム１が得られる。
【００７２】
次に、図１７乃至図２７を参照して、ジェスチャ入力システム１の動作例について説明する。
【００７３】
先ず、図１７乃至図１９を参照して、図２０以降の処理で用いられるタップ動作検出方法について説明する。尚、タップ動作検出方法は、上述のように、他の方法が用いられてもよい。
【００７４】
図１７は、押し動作及び引き動作の際の腕伸ばし量を説明する図である。図１８は、右手の移動速度と閾値を示す特性図である。尚、腕伸ばし量は、対象者Ｓの右手首（関節部位ａ２５）又は右手の末端部位ａ２８の重心位置と右肩（関節部位ａ１７）の重心位置との間の距離として算出される。尚、上述の手−胸間距離と同様、腕伸ばし量は、ｚ成分だけの距離であってもよいし、ユークリッド距離であってもよい。
【００７５】
図１７（Ａ）に示すように、スクリーン４０の前に立っている対象者Ｓは、右腕をくの字に曲げて右手２Ｒを胸の手前に置いている。これは、押し動作を開始するときの状態である。
【００７６】
図１７（Ｂ）、（Ｃ）に示すように、対象者Ｓは、右腕を伸ばして右手２ＲをＺ軸正方向に突き出す。そして、図１７（Ｄ）に示すように、右手２ＲをＺ軸負方向に引き戻し、図１７（Ｅ）に示すように右腕をくの字に曲げて右手２Ｒを胸の手前に置く。Ｚ軸正方向における右手２Ｒの移動速度を正にすると、図１７（Ｂ）に示すように右手２Ｒを突き出すときの右手２Ｒの移動速度ＶＲは正の値であり、図１７（Ｄ）に示すように右手２Ｒを引き戻すときの右手２Ｒの移動速度ＶＲは負の値（−ＶＲ）である。
【００７７】
図１８において、横軸はフレーム数を表し、縦軸は右手２Ｒの移動速度を表す。フレーム数は、経過時間に対応しており、左から右に向かって経過時間が増える。また、移動速度は図１８の上方向が正である。
【００７８】
タップ動作の検出には、図１８に示すように、所定腕伸量ＴｈＬ、閾値速度ＴｈＶｐ、ＴｈＶｎを用いる。所定腕伸量ＴｈＬは、腕伸ばし量の閾値である。閾値速度ＴｈＶｐは、移動速度が正の領域における閾値であるため、正の値である。閾値速度ＴｈＶｎは、移動速度が負の領域における閾値であるため、負の値である。図１８では、腕伸ばし量を実線で示し、右手２Ｒの移動速度を破線で示す。
【００７９】
対象者Ｓがフレームｆ１で押し動作を開始すると、腕伸ばし量が増大し、移動速度は上昇する。図２０以降の処理では、腕伸ばし量が所定腕伸量ＴｈＬ以上であるときに、移動速度が閾値速度ＴｈＶｐ以上になり、その後閾値速度ＴｈＶｎ以下になった場合に、タップ動作が検出される。
【００８０】
ある程度腕を伸ばした状態で、素早く右手２Ｒを突き出し、その後に素早く右手２Ｒを引き込んだ場合に、タップ動作が検出されるようにするためである。このため、フレームｆ２で腕伸ばし量が所定腕伸量ＴｈＬ以上になり、フレームｆ３で右手２Ｒの移動速度が閾値速度ＴｈＶｐ以上になり、その後、フレームｆ４で右手２Ｒの移動速度が閾値速度ＴｈＶｎ以下になった場合には、タップ動作が検出される。但し、フレームｆ４で右手２Ｒの移動速度が閾値速度ＴｈＶｎ以下になり、かつ、フレームｆ５で腕伸ばし量が所定腕伸量ＴｈＬ未満になった場合に、タップ動作が検出されることとしてもよい。
【００８１】
図１９は、移動速度を計測する方向を説明する図である。右手２Ｒの移動速度は、図１９に示すように、対象者Ｓの右肩２ＲＳを始点とし、右手２Ｒを終点とするベクトル（矢印参照）に沿った移動速度であってよい。右肩２ＲＳ（関節部位ａ１７）の重心位置と右手２Ｒ（関節部位ａ２５又は右手の末端部位ａ２８）の重心位置は、ジェスチャ認識処理部１３０がフレームごとに人体検出部１１０から骨格情報として入手する。従って、手部速度計算部１３４は、右肩２ＲＳと右手２Ｒの重心位置に基づいて右手の移動速度ＶＲを算出すればよい。なお、右手の移動速度ＶＲの算出方法は、このような方法に限られず、Ｚ軸方向の速度成分を用いてもよい。
【００８２】
図２０は、処理装置１００により実行される処理の一例を示すフローチャートである。図２０では、一例として、図１に示すように、スクリーン４０にボタン４１２、４１４の画像を含む操作画像を表示させる場合について説明する。図２０に示す処理は、例えば、ジェスチャ入力システム１の電源がオンされると起動し、電源がオンである間、所定の処理周期毎に実行される。尚、所定の処理周期は、距離画像のフレーム周期に対応してよい。
【００８３】
ステップＳ２００では、人体検出部１１０は、画像センサ５０から距離画像を取得する。
【００８４】
ステップＳ２０２では、人体検出部１１０は、ステップＳ２００で得た距離画像に基づいて、距離画像における対象者Ｓの身体の各部位を識別し、対象者Ｓの骨格情報を生成する。身体の各部位の識別方法や骨格情報の生成方法は上述のとおりである。
【００８５】
ステップＳ２０４では、人体検出部１１０は、ステップＳ２００で得た距離画像に基づいて、人体（対象者Ｓ）が存在するか否かを判定する。尚、人体（対象者Ｓ）が存在するか否かは、ステップＳ２０２の処理中に判定されてもよい。判定結果が“ＹＥＳ”の場合は、ステップＳ２０８に進み、それ以外の場合は、ステップＳ２０６に進む。
【００８６】
ステップＳ２０６では、人体検出部１１０は、操作スタートフラグを“０”に設定又は維持する。操作スタートフラグが“０”であることは、対象者Ｓによる操作が開始されていない状態を表す。ステップＳ２０６が終了すると、リターンとなり（今回周期の処理はそのまま終了し）、次の処理周期でステップＳ２００からの処理となる。
【００８７】
ステップＳ２０８では、ジェスチャ認識処理部１３０は、操作スタートフラグが“１”であるか否かを判定する。判定結果が“ＹＥＳ”の場合は、ステップＳ２１８に進み、それ以外の場合は、ステップＳ２１０に進む。
【００８８】
ステップＳ２１０では、トリガジェスチャ検出部１３２は、ステップＳ２０２で得た骨格情報に基づいて、トリガジェスチャが検出されたか否か、即ち対象者Ｓが右手２Ｒを上げているか否かを判定する。判定結果が“ＹＥＳ”の場合は、ステップＳ２１２に進み、それ以外の場合は、リターンとなり、次の処理周期でステップＳ２００からの処理となる。
【００８９】
ステップＳ２１２では、閾値計算部１２０は、閾値Ｔｈの算出（ステップＳ２２８参照）で用いる定数Ａを算出する。具体的には、閾値計算部１２０は、ステップＳ２００で得た距離画像に基づき身体部位識別部１１０１により識別された全ての部位（例えば膝よりも上の各部位）の画素数の合計値P_t［pixel］に基づいて、定数Ａを算出する。例えば、定数Ａは、以下のとおりである。
A=  B×P_t+C  ・・・式（１）
ここで、Ｂ,Ｃはそれぞれ適当な定数である。
【００９０】
ステップＳ２１４では、閾値計算部１２０は、操作スタートフラグを“１”に設定する。
【００９１】
ステップＳ２１６では、映像出力部１４２は、操作画像（例えば初期の操作画像）を表示する。具体的には、映像出力部１４２は、操作画像データ保持部１５０から操作画像のデータを取得し、該データを用いて映像信号を生成し、投影装置４２に画像を投影させる。これにより、スクリーン４０にボタン４１２、４１４等を含む操作画像が表示される。ステップＳ２１６が終了すると、リターンとなり、次の処理周期でステップＳ２００からの処理となる。
【００９２】
ステップＳ２１８では、指示点計算部１２２は、ステップＳ２０２で得た骨格情報に基づいて、指示点を算出する。指示点は、上述のように、対象者Ｓの右肩と右手首とを結ぶベクトルＶｓがスクリーン４０に交わる交点である（図１３Ａ参照）。指示点の算出方法は上述のとおりである。
【００９３】
ステップＳ２２０では、ジェスチャ認識処理部１３０は、ステップＳ２０２で得た骨格情報に基づいて、タップ動作検出処理を行う。ステップＳ２２０のタップ動作検出処理の詳細は、図２１を参照して説明する。
【００９４】
ステップＳ２２２では、閾値判定部１４０は、タップ動作検出フラグが“１”であるか否かを判定する。タップ動作検出フラグが“１”であることは、ステップＳ２２０でのタップ動作検出処理によってタップ動作が検出されたことを表す。タップ動作検出フラグが“１”になる条件は、図２１を参照して説明する。判定結果が“ＹＥＳ”の場合は、ステップＳ２２４に進み、それ以外の場合は、ステップＳ２３８に進む。
【００９５】
ステップＳ２２４では、対象者領域サイズ算出部１１０４は、ステップＳ２０２で得た骨格情報に基づいて、対象者領域サイズを算出する。対象者領域サイズの算出方法は上述のとおりである。尚、対象者領域サイズ算出部１１０４は、今回周期の骨格情報に基づいて、対象者領域サイズを算出する。但し、対象者領域サイズ算出部１１０４は、直近の所定数の周期分の骨格情報に基づき、それぞれの周期での対象者領域サイズを算出し、平均値を対象者領域サイズとして算出してもよい。直近の所定数の周期分は、後述の押出動作検出フラグが“１”である間の周期分に対応してよい。
【００９６】
ステップＳ２２６では、対象者距離情報生成部１１０５は、ステップＳ２０２で得た骨格情報に基づいて、対象者距離情報を生成する。対象者距離情報の生成方法は上述のとおりである。尚、対象者距離情報生成部１１０５は、今回周期の骨格情報に基づいて、対象者距離情報を生成する。但し、対象者距離情報生成部１１０５は、直近の所定数の周期分の骨格情報に基づき、それぞれの周期での対象者Ｓの距離（例えば腰部の距離）の平均値に基づいて、対象者距離情報を生成してもよい。直近の所定数の周期分は、後述の押出動作検出フラグが“１”である間の周期分に対応してよい。
【００９７】
ステップＳ２２８では、閾値計算部１２０は、ステップＳ２１２で算出した定数Ａと、ステップＳ２２６で得た対象者距離情報とに基づいて、閾値Ｔｈを算出する。具体的には、上述のとおりであるが、ステップＳ２２６で得た対象者距離情報の距離を“ｄ”とすると、閾値Ｔｈは、以下のとおりである。
Ｔｈ＝Ａ／ｄ２
【００９８】
ステップＳ２３０では、閾値判定部１４０は、ステップＳ２２８で得た閾値Ｔｈと、ステップＳ２２４で得た対象者領域サイズとに基づいて、対象者領域サイズが閾値Ｔｈ以上であるか否かを判定する。判定結果が“ＹＥＳ”の場合は、ステップＳ２３６に進み、それ以外の場合は、ステップＳ２３２に進む。
【００９９】
ステップＳ２３２では、映像出力部１４２は、ステップＳ２２０でのタップ動作の検出に応答して映像出力処理を実行する。例えば、映像出力部１４２は、現在のポインタ４１０に対応付けられたボタンの機能（例えば操作画像を変化させる画面遷移）を、タップ動作の検出に応答して実現する。尚、画面遷移の場合、映像出力部１４２は、ステップＳ２１８で得た指示点に基づいて、新たな操作画像を表示するスクリーン４０上に、ポインタ４１０を表示してよい。
【０１００】
ステップＳ２３４では、閾値判定部１４０は、タップ動作検出フラグを“０”にリセットする。ステップＳ２３４が終了すると、リターンとなり、次の処理周期でステップＳ２００からの処理となる。
【０１０１】
ステップＳ２３６では、閾値判定部１４０は、タップ動作検出フラグを“０”にリセットする。
【０１０２】
ステップＳ２３８では、映像出力部１４２は、ステップＳ２１８で得た指示点に基づいて、スクリーン４０上にポインタ４１０を表示し又はポインタ４１０の表示位置を更新する。ステップＳ２３８が終了すると、リターンとなり、次の処理周期でステップＳ２００からの処理となる。
【０１０３】
図２０に示す処理によれば、タップ動作が検出された場合でも、対象者領域サイズが閾値Ｔｈ以上である場合には、タップ動作の検出が無効化され（ステップＳ２３６参照）、タップ動作の検出に応じた映像出力処理が禁止される。これにより、対象者Ｓに非対象者Ｓ２が重なる状況下でのジェスチャ入力の発生を低減できる。
【０１０４】
図２１は、図２０のステップＳ２２０のタップ動作検出処理の一例を概略的に示すフローチャートである。
【０１０５】
ステップＳ２２２０では、押し動作検出部１３６は、押し動作検出フラグが“０”であるか否かを判定する。押し動作検出フラグが“０”であることは、押し動作が検出されていない状態を表す。判定結果が“ＹＥＳ”の場合は、ステップＳ２２２２に進み、それ以外の場合は、ステップＳ２２３４に進む。
【０１０６】
ステップＳ２２２２では、押し動作検出部１３６は、ステップＳ２０２で得た今回周期の骨格情報に基づいて、現時点の腕伸ばし量を算出する。腕伸ばし量の算出方法は上述のとおりである（図１７参照）。
【０１０７】
ステップＳ２２２４では、タップ動作検出部１３９は、ステップＳ２２２２で得た腕伸ばし量が所定腕伸量ＴｈＬ以上であるか否かを判定する。判定結果が“ＹＥＳ”の場合は、ステップＳ２２２６に進み、それ以外の場合は、図２０のステップＳ２３８に進む。
【０１０８】
ステップＳ２２２６では、手部速度計算部１３４は、ステップＳ２０２で得た今回周期の骨格情報と、ステップＳ２０２で得た前回周期以前の骨格情報とに基づいて、現時点の右手の移動速度ＶＲを算出する。右手の移動速度ＶＲの算出方法は上述のとおりである。
【０１０９】
ステップＳ２２２８では、タップ動作検出部１３９は、ステップＳ２２２６で得た右手の移動速度ＶＲが閾値速度ＴｈＶｐ以上であるか否かを判定する。判定結果が“ＹＥＳ”の場合は、ステップＳ２２３０に進み、それ以外の場合は、図２０のステップＳ２３８に進む。
【０１１０】
ステップＳ２２３０では、タップ動作検出部１３９は、押し動作検出フラグを“１”に設定する。
【０１１１】
ステップＳ２２３２では、タップ動作検出部１３９は、所定時間ＴでタイムアウトするタイマＴｍを起動（クリア）する。ステップＳ２２３２が終了すると、図２０のステップＳ２３８に進む。
【０１１２】
ステップＳ２２３４では、タップ動作検出部１３９は、タイマＴｍがタイムアウトしたか否かを判定する。判定結果が“ＹＥＳ”の場合は、ステップＳ２２３６に進み、それ以外の場合は、ステップＳ２２３８に進む。
【０１１３】
ステップＳ２２３６では、タップ動作検出部１３９は、押し動作検出フラグを“０”にリセットする。ステップＳ２２３６が終了すると、図２０のステップＳ２３８に進む。
【０１１４】
ステップＳ２２３８では、手部速度計算部１３４は、ステップＳ２０２で得た今回周期の骨格情報と、ステップＳ２０２で得た前回周期以前の骨格情報とに基づいて、現時点の右手の移動速度ＶＲを算出する。右手の移動速度ＶＲの算出方法は上述のとおりである。
【０１１５】
ステップＳ２２４０では、タップ動作検出部１３９は、ステップＳ２２３８で得た右手の移動速度ＶＲが閾値速度ＴｈＶｎ以下であるか否かを判定する。判定結果が“ＹＥＳ”の場合は、ステップＳ２２４２に進む。他方、判定結果が“ＮＯ”の場合は、図２０のステップＳ２２２に進む。但し、図２０のステップＳ２２２が省略されてもよく、この場合、ステップＳ２２４０で判定結果が“ＮＯ”の場合は、図２０のステップＳ２３８に進んでよい。
【０１１６】
ステップＳ２２４２では、タップ動作検出部１３９は、タップ動作検出フラグを“１”に設定する。
【０１１７】
ステップＳ２２４４では、タップ動作検出部１３９は、押し動作検出フラグを“０”にリセットする。ステップＳ２２４４が終了すると、図２０のステップＳ２２２に進む。但し、図２０のステップＳ２２２が省略されてもよく、この場合、ステップＳ２２４４が終了すると、図２０のステップＳ２２４に進んでよい。
【０１１８】
図２１に示す処理によれば、腕伸ばし量が所定腕伸量ＴｈＬ以上かつ右手の移動速度が閾値速度ＴｈＶｐ以上になり、その後、所定時間Ｔ内に、右手移動速度が閾値速度ＴｈＶｎ以下になった場合には、タップ動作検出フラグが“１”に設定される。これにより、対象者Ｓの意図に適合した態様でタップ動作を検出できる。
【０１１９】
図２２は、図２０に対する代替例を示すフローチャートである。
【０１２０】
図２２は、図２０に対して、ステップＳ２２０乃至ステップＳ２３０の順序が異なり、かつ、ステップＳ２３６が省略されている点が異なる。以下、異なる部分について説明する。
【０１２１】
ステップＳ２１８が終了すると、ステップＳ２２４、ステップＳ２２６、及びステップＳ２２８を経てステップＳ２３０に進む。ステップＳ２３０での判定結果が“ＹＥＳ”の場合は、ステップＳ２３８に進み、それ以外の場合は、ステップＳ２２０に進む。ステップＳ２２０が終了すると、ステップＳ２２２に進む。ステップＳ２２２での判定結果が“ＹＥＳ”の場合は、ステップＳ２３２に進み、それ以外の場合は、ステップＳ２３８に進む。
【０１２２】
図２２に示す処理によれば、対象者領域サイズが閾値Ｔｈ以上である場合には、ステップＳ２２０の処理が実行されない。即ち、対象者領域サイズが閾値Ｔｈ以上である場合には、ステップＳ２２０のタップ動作検出処理が禁止される。これにより、対象者Ｓに非対象者Ｓ２が重なる状況下での非対象者Ｓ２に起因したタップ動作の誤検出を低減でき、対象者Ｓに非対象者Ｓ２が重なる状況下でのジェスチャ入力の発生を低減できる。
【０１２３】
図２３は、図２０に対する更なる代替例を示すフローチャートである。
【０１２４】
図２３は、図２２に対して、ステップＳ２４０及びステップＳ２４２が追加され、ステップＳ２２０がステップＳ２２０−１で置換された点が異なる。以下、異なる部分について説明する。
【０１２５】
ステップＳ２３０での判定結果が“ＹＥＳ”の場合は、ステップＳ２４０を介してステップＳ２２０−１に進む。また、ステップＳ２３０での判定結果が“ＮＯ”の場合は、ステップＳ２４２を介してステップＳ２２０−１に進む。
【０１２６】
ステップＳ２４０では、閾値判定部１４０は、マスクフラグを“１”にセットする。マスクフラグが“１”であることは、対象者領域サイズが閾値Ｔｈを超えている状態を表す。
【０１２７】
ステップＳ２４２では、閾値判定部１４０は、マスクフラグを“０”にセットする。
【０１２８】
ステップＳ２２０−１では、ジェスチャ認識処理部１３０は、ステップＳ２０２で得た骨格情報と、マスクフラグの状態とに基づいて、タップ動作検出処理を行う。ステップＳ２２０−１のタップ動作検出処理の詳細は、図２４を参照して説明する。
【０１２９】
図２４は、図２３のステップＳ２２０−１のタップ動作検出処理の一例を概略的に示すフローチャートである。
【０１３０】
図２４は、図２１に対して、ステップＳ２４０２乃至ステップＳ２４１０が追加された点が異なる。以下、異なる部分について説明する。
【０１３１】
ステップＳ２２２８での判定結果が“ＹＥＳ”の場合に、ステップＳ２４０２が実行される。尚、図２４では、一例として、ステップＳ２２３０の後にステップＳ２４０２が実行されるが、ステップＳ２４０２は、ステップＳ２２３０の前やステップＳ２２３２の後に実行されてもよい。ステップＳ２２３４での判定結果が“ＮＯ”の場合は、ステップＳ２４０４と、ステップＳ２４０６又はステップＳ２４０８とを介して、ステップＳ２２３８に進む。ステップＳ２２４０での判定結果が“ＹＥＳ”の場合は、ステップＳ２４１０に進む。
【０１３２】
ステップＳ２４０２では、タップ動作検出部１３９は、第１マスクカウンタのカウント値Ｃｔ１及び第２マスクカウンタのカウント値Ｃｔ２を“０”に設定（リセット）する。第１マスクカウンタのカウント値Ｃｔ１は、押し動作検出フラグが“１”である状態において、マスクフラグが“１”となるフレーム数を表す。第２マスクカウンタのカウント値Ｃｔ２は、押し動作検出フラグが“１”である状態において、マスクフラグが“０”となるフレーム数を表す。
【０１３３】
ステップＳ２４０４では、タップ動作検出部１３９は、マスクフラグが“１”であるか否かを判定する。判定結果が“ＹＥＳ”の場合は、ステップＳ２４０６に進み、それ以外の場合は、ステップＳ２４０８に進む。
【０１３４】
ステップＳ２４０６では、タップ動作検出部１３９は、第１マスクカウンタのカウント値Ｃｔ１を“１”だけインクリメントする。
【０１３５】
ステップＳ２４０８では、タップ動作検出部１３９は、第２マスクカウンタのカウント値Ｃｔ２を“１”だけインクリメントする。
【０１３６】
ステップＳ２４１０では、タップ動作検出部１３９は、第１マスクカウンタのカウント値Ｃｔ１と第２マスクカウンタのカウント値Ｃｔ２とに基づいて、今回の対象者Ｓの判定対象動作が、対象者Ｓに非対象者が重なる状況下で生じたか否かを判定する。対象者Ｓの判定対象動作とは、ステップＳ２２３０で押し動作検出フラグが“１”になってからステップＳ２２４０の判定結果が“ＹＥＳ”になるまでの対象者Ｓの動作である。押し動作検出フラグが“１”である状態において、マスクフラグが“１”となるフレーム数が、マスクフラグが“０”となるフレーム数よりも有意に大きい場合、第１マスクカウンタのカウント値Ｃｔ１が、第２マスクカウンタのカウント値Ｃｔ２よりも有意に大きくなる。従って、図２４では、一例として、タップ動作検出部１３９は、カウント値Ｃｔ１からカウント値Ｃｔ２を引いた差分値（＝Ｃｔ１−Ｃｔ２）が所定値Ｃｔｈ以上である場合に、今回の対象者Ｓの判定対象動作が、対象者Ｓに非対象者が重なる状況下で生じたと判定する。所定値Ｃｔｈは、０以上の値である。他の例では、タップ動作検出部１３９は、カウント値Ｃｔ２に対するカウント値Ｃｔ１の比（＝Ｃｔ１／Ｃｔ２）が所定値以上である場合に、今回の対象者Ｓの判定対象動作が、対象者Ｓに非対象者が重なる状況下で生じたと判定してもよい。判定結果が“ＹＥＳ”の場合は、そのまま、図２３のステップＳ２２２に進む。他方、判定結果が“ＮＯ”の場合は、ステップＳ２２４２に進む。
【０１３７】
図２４に示す処理によれば、押し動作検出フラグが“１”である状態におけるマスクフラグの状態に応じて、タップ動作検出フラグが“１”に設定されることが許可又は禁止される。即ち、押し動作検出フラグが“１”である状態において、マスクフラグが“１”となるフレーム数が、マスクフラグが“０”となるフレーム数よりも有意に大きい場合、タップ動作検出フラグが“１”に設定されることが禁止される。これにより、対象者Ｓに非対象者Ｓ２が重なる状況下でのジェスチャ入力の発生を低減できる。
【０１３８】
図２５は、図２０に対する更なる代替例を示すフローチャートである。
【０１３９】
図２５は、図２０に対して、ステップＳ２１２、ステップＳ２２８、及びステップＳ２３０が、ステップＳ２１２Ａ、ステップＳ２２８Ａ、及びステップＳ２３０Ａでそれぞれ置換された点が異なる。以下、異なる部分について説明する。
【０１４０】
ステップＳ２１２Ａでは、閾値計算部１２０は、閾値Ｔｈの算出（ステップＳ２２８Ａ参照）で用いる定数Ａを算出する。具体的には、閾値計算部１２０は、ステップＳ２００で得た今回周期の距離画像に基づき身体部位識別部１１０１により識別された全ての部位（例えば膝よりも上の各部位）の画素数の合計値P_t［pixel］に基づいて、定数Ａを以下のとおり算出する。
A=  （P_t+Ｍ）×ｄ０２  ・・・式（２）
ここで、ｄ０は、ステップＳ２００で得た今回周期の距離画像（トリガジェスチャが検出された距離画像）に基づく距離であって、画像センサ５０から対象者Ｓまでの距離である。距離ｄ０は、対象者距離情報生成部１１０５が生成する対象者距離情報と同じ身体部位（好ましくは腰部）に係る距離であることが望ましい。例えば、対象者Ｓの腰部の重心位置=(0,0,2.0)であった場合は、ｄ０は2.0である。
【０１４１】
また、Ｍは、定数であり、対象者領域サイズのとりうる最大の面積（サイズ）となるように経験的に設定される。より具体的には、Ｍは、（P_t+Ｍ）が上限値P_ｍａｘに等しくなるになるように設定される。「上限値P_ｍａｘに等しい」とは、厳密に等しい必要はなく、例えば上限値P_ｍａｘの１０%未満の誤差を許容する概念である。上限値P_ｍａｘとは、距離画像に対象者Ｓに係る画素のみが含まれる場合にP_tが取る上限値であって、距離ｄ０が変化しない条件下でP_tが取る上限値である。このように図２５では、定数Ａが式（１）に代えて式（２）で算出されるので、図２０に比べて、閾値Ｔｈの算出に用いる定数Ａが、対象者Ｓの姿勢変化を考慮したより適切な値となる。これにより、対象者Ｓに非対象者が重なる状況を、より精度良く検出できるようになる。尚、例えば、P_t＝15000、ｄ０＝2.0、M＝2000であるとき、式（２）を計算すると、A＝68000となる。
【０１４２】
ステップＳ２２８Ａでは、閾値計算部１２０は、ステップＳ２１２Ａで算出した定数Ａと、ステップＳ２２６で得た対象者距離情報とに基づいて、閾値Ｔｈを算出する。具体的には、上述のとおりであるが、ステップＳ２２６で得た対象者距離情報の距離を“ｄ”とすると、閾値Ｔｈは、以下のとおりである。
Ｔｈ＝Ａ／ｄ２
例えば、対象者Ｓの腰部の重心位置=(0,0,2.0)であった場合は、A＝68000であるとき、Ｔｈ＝17000となる。
【０１４３】
ステップＳ２３０Ａでは、閾値判定部１４０は、ステップＳ２２８Ａで得た閾値Ｔｈと、ステップＳ２２４で得た対象者領域サイズとに基づいて、対象者領域サイズが閾値Ｔｈ以上であるか否かを判定する。
【０１４４】
図２５に示す処理によれば、図２０と同様の効果が得られる。また、図２５に示す処理によれば、上述のように、閾値Ｔｈの算出に用いる定数Ａが、対象者Ｓの姿勢変化を考慮したより適切な値となる。これにより、対象者Ｓに非対象者が重なる状況を、より精度良く検出できるようになる。
【０１４５】
図２５についても、図２２や、図２３及び図２４に示したような変形が可能である。
【０１４６】
図２６は、図２０に対する更なる代替例を示すフローチャートである。
【０１４７】
図２６は、図２０に対して、ステップＳ２１２がステップＳ２１１Ｂ及びステップＳ２１２Ｂで置換され、かつ、ステップＳ２２８及びステップＳ２３０が、ステップＳ２２８Ｂ及びステップＳ２３０Ｂでそれぞれ置換された点が異なる。以下、異なる部分について説明する。
【０１４８】
ステップＳ２１１Ｂでは、閾値計算部１２０は、定数Ａの算出（ステップＳ２１２Ｂ）で用いる定数Ｍ２（所定の補正値の一例）を算出する。定数Ｍ２は、対象者領域サイズがとりうる最大の面積（サイズ）に一致するように設定される。具体的には、閾値計算部１２０は、ステップＳ２００で得た今回周期の距離画像（トリガジェスチャが検出された距離画像）に基づき身体部位識別部１１０１により識別された対象者Ｓの各部位（例えば膝よりも上の各部位）に基づいて、定数Ｍ２を算出する。定数Ｍ２は、トリガジェスチャ時（右手をあげているとき）の対象者Ｓの左半身の各部位の大きさ（画素数の合計）をP_tl  [pixel]、右半身の各部位の大きさをP_tr  [pixel]とすると、例えば以下の通りである。
Ｍ２=|P_tl-P_tr|
【０１４９】
図２７は、トリガジェスチャ時の距離画像の一例を示す図である。図２７には、説明用に対象者Ｓの左右の中心線Ｃｔが示される。中心線Ｃｔは、例えば骨格基準位置Ｐ１、Ｐ３（図９参照）を結んだ直線に対応する。閾値計算部１２０は、中心線Ｃｔを基準として、P_tl及びP_trをそれぞれ算出できる。
【０１５０】
ステップＳ２１２Ｂでは、閾値計算部１２０は、ステップＳ２１１Ｂで得た定数Ｍ２に基づいて、閾値Ｔｈの算出（ステップＳ２２８Ｂ参照）で用いる定数Ａを算出する。具体的には、閾値計算部１２０は、ステップＳ２００で得た距離画像に基づき身体部位識別部１１０１により識別された全ての部位（例えば膝よりも上の各部位）の画素数の合計値P_t［pixel］と、定数Ｍ２とに基づいて、定数Ａを以下のとおり算出する。
A=  （P_t+Ｍ２）×ｄ０２  ・・・式（３）
ここで、ｄ０は、式（２）の場合と同様、ステップＳ２００で得た今回周期の距離画像（トリガジェスチャが検出された距離画像）に基づく距離であって、画像センサ５０から対象者Ｓまでの距離である。
【０１５１】
定数Ｍ２は、上述のように、右手をあげているときの対象者Ｓの左半身と右半身との差に対応し、この差は、挙げている右腕及び右手に係る大きさ（画素数の合計）である。対象者領域サイズのとりうる最大の面積は、対象者Ｓが両手を挙げているときであり、従って、（P_t+Ｍ２）は、上限値P_ｍａｘに等しくなる。尚、上限値P_ｍａｘとは、上述のように、距離画像に対象者Ｓに係る画素のみが含まれる場合にP_tが取る上限値であって、距離ｄ０が変化しない条件下でP_tが取る上限値である。例えば、P_t＝15000、P_tl＝6500、P_tl＝8500、ｄ０＝2.0であるとき、定数Ｍ２＝2000となり、式（３）を計算すると、定数A＝68000となる。
【０１５２】
ステップＳ２２８Ｂでは、閾値計算部１２０は、ステップＳ２１２Ｂで算出した定数Ａと、ステップＳ２２６で得た対象者距離情報とに基づいて、閾値Ｔｈを算出する。具体的には、上述のとおりであるが、ステップＳ２２６で得た対象者距離情報の距離を“ｄ”とすると、閾値Ｔｈは、以下のとおりである。
Ｔｈ＝Ａ／ｄ２
例えば、対象者Ｓの腰部の重心位置=(0,0,2.0)であった場合は、A＝68000であるとき、Ｔｈ＝17000となる。
【０１５３】
ステップＳ２３０Ｂでは、閾値判定部１４０は、ステップＳ２２８Ｂで得た閾値Ｔｈと、ステップＳ２２４で得た対象者領域サイズとに基づいて、対象者領域サイズが閾値Ｔｈ以上であるか否かを判定する。
【０１５４】
図２６に示す処理によれば、図２０と同様の効果が得られる。また、図２６に示す処理によれば、上述のように、閾値Ｔｈの算出に用いる定数Ａが、対象者Ｓの姿勢変化を考慮したより適切な値となる。これにより、対象者Ｓに非対象者が重なる状況を、より精度良く検出できるようになる。また、図２６に示す処理によれば、図２５に示す処理に比べて、経験的に決める必要のあった定数Ｍの値を、定数Ｍ２として自動設定できる。これにより、対象者Ｓに非対象者が重なる状況を、更に精度良く検出できるようになる。
【０１５５】
図２６についても、図２２や、図２３及び図２４に示したような変形が可能である。
【０１５６】
図２８は、実際のジェスチャ入力システム１において、対象者Ｓに非対象者Ｓ２が重なる状況と重ならない状況とを形成したときの、タップ動作の検出に応答したジェスチャ入力の発生結果を示す。図２９は、比較例による同発生結果を示す。
【０１５７】
図２８及び図２９では、縦軸に対象者領域サイズ［pixel］を取り、横軸にフレーム（時間）を取り、対象者領域サイズ算出部１１０４による算出される対象者領域サイズの時系列波形が示される。また、図２８には、閾値Ｔｈ（＝１７０００）が併せて示される。図２８及び図２９では、対象者領域サイズ算出部１１０４による算出される対象者領域サイズの時系列波形において、Ｑ１部は、対象者Ｓに非対象者が重ならない状況での波形を示し、Ｑ１部は、対象者Ｓに非対象者が重なる状況での波形を示す。
【０１５８】
図２８では、対象者Ｓは、Ｑ１部に対応する期間中に、６回、タップ動作が検出されることを意図して、押し動作及び引き動作を行った。他方、対象者Ｓは、Ｑ２部に対応する期間中は、１回も、タップ動作が検出されることを意図した動作を、行うことはなかった。但し、非対象者Ｓ２は、Ｑ２部に対応する期間中、５回、対象者Ｓの背後で（対象者Ｓに近い距離で立ちながら）、自身が押し動作及び引き動作に相当する動作を行った。
【０１５９】
比較例は、例えば図２０に示す処理において、ステップＳ２１２、ステップＳ２２４乃至ステップＳ２３０、及びステップＳ２３６が省略された場合に対応する。図２９では、タップ動作の検出に起因したジェスチャ入力が発生したフレームＦ１〜Ｆ１１が示される。Ｑ１部に対応する期間中におけるフレームＦ１〜Ｆ６でのジェスチャ入力の発生（Ｅ１部参照）は“正解”であるが、Ｑ２部に対応する期間中におけるフレームＦ７〜Ｆ１１でのジェスチャ入力の発生は“不正解”である。このように比較例では、対象者Ｓに非対象者が重なる状況で、対象者Ｓの意図しないジェスチャ入力が発生し（Ｅ２部参照）、不正解率は約４５％である。
【０１６０】
これに対して、本実施例によれば、図２８に示すように、タップ動作の検出に起因したジェスチャ入力が発生したフレームＦ１〜Ｆ６が示される。Ｑ１部に対応する期間中におけるフレームＦ１〜Ｆ６でのジェスチャ入力の発生（Ｅ１部参照）は“正解”である。本実施例では、比較例とは対照的に、Ｑ２部に対応する期間中におけるジェスチャ入力は発生せず（Ｅ２部参照）、正解率は１００％である。この結果より、ジェスチャ入力システム１が、対象者Ｓに非対象者が重なる状況下で対象者Ｓの意図しないジェスチャ入力の発生を低減できることを確認することができた。
【０１６１】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１６２】
例えば、上述した実施例では、画像センサ５０からの画像として対象者Ｓの距離画像が用いられているが、これに限られない。例えば、画像センサ５０からの画像として、例えば距離情報の無い画像が用いられてもよい。この場合も、対象者Ｓを画像認識する際に、非対象者Ｓ２の重なりを検出するために、上述した手法を用いることができる。この場合、閾値Ｔｈの算出に用いる対象者Ｓまでの距離は、視差（例えばステレオカメラ）等に基づいて算出されてよい。
【０１６３】
また、上述した実施例では、タップ動作が検出対象の動作であった、検出対象の動作は、任意であり、腕を使う動作のみならず、足を使う動作や、体全体を使う動作など様々でありうる。
【０１６４】
また、上述した実施例では、ジェスチャ入力システム１は、ジェスチャ入力に係るタップ動作を検出する動き検出システムの一例であるが、これに限られない。例えば、本発明は、部品の組み付け作業性を検証するために作業者（対象者Ｓの一例）の動きを検出するシステムや、リハビリテーションなどの医療用に対象者Ｓの関節などの動きを検出するシステムにも適用できる。例えば、リハビリテーションの際には、対象者Ｓの関節などの動きが距離画像を用いて測定される場合がある。この際、非対象者である補助者が被験者（対象者Ｓ）の動きを補助する場合がある。このとき、例えば図３０に示すように、補助者Ｓ３が対象者Ｓに触れることで同様の課題が生じるためである。
【０１６５】
なお、以上の実施例に関し、さらに以下の付記を開示する。
［付記１］
画像センサからの画像に基づいて、対象者に係る画素領域である対象者領域を認識する対象者領域認識部と、
前記画像センサから前記対象者までの距離を取得する距離取得部と、
前記距離の二乗に応じた第１値を算出する第１算出部と、
前記対象者領域のサイズに応じた第２値を算出する第２算出部と、
前記画像における前記対象者領域内の情報と、前記第１値と、前記第２値とに基づいて、前記対象者の動きを検出する動き検出部とを含む、動き検出システム。
［付記２］
前記動き検出部は、前記第１値と前記第２値との大小関係に基づいて、前記対象者の動きを検出する、付記１に記載の動き検出システム。
［付記３］
前記第１値は、前記距離の二乗に反比例する値であり、
前記第２値は、前記対象者領域のサイズに対応する値又は前記対象者領域のサイズに比例する値であり、
前記動き検出部は、前記第２値が前記第１値よりも大きい場合、前記対象者の動きの検出を禁止する、又は、前記対象者の動きの検出結果を無効化する、付記２に記載の動き検出システム。
［付記４］
前記動き検出部は、複数フレームで得られる前記画像に基づき認識された複数の前記対象者領域内の情報に基づいて、前記対象者の動きを検出し、
前記第１算出部は、前記複数フレームに係る前記画像が取得されている間の少なくとも１時点での前記距離に基づいて、前記第１値を算出し、
前記第２算出部は、前記複数フレームに係る前記画像が取得されている間の少なくとも１時点での前記対象者領域のサイズに基づいて、前記第２値を算出する、付記１〜３のうちのいずれか１項に記載の動き検出システム。
［付記５］
前記第１値は、前記距離の二乗に反比例する値であり、
前記第２値は、前記対象者領域のサイズに対応する値又は前記対象者領域のサイズに比例する値であり、
前記動き検出部は、複数フレームで得られる前記画像に基づき認識された複数の前記対象者領域内の情報に基づいて、前記対象者の動きを検出し、
前記動き検出部は、前記複数の前記対象者領域内の情報のうちの、前記第１値以下となる前記第２値が算出される前記対象者領域内の情報のみを用いて、前記対象者の動きを検出する、付記１に記載の動き検出システム。
［付記６］
前記第１値は、前記距離の二乗に反比例する値であり、
前記第２値は、前記対象者領域のサイズに対応する値又は前記対象者領域のサイズに比例する値であり、
前記第１算出部は、複数フレームで得られる前記画像に対し、前記複数フレームのそれぞれごとに、前記第１値を算出し、
前記第２算出部は、前記複数フレームのそれぞれごとに、前記第２値を算出し、
前記動き検出部は、前記第２値が前記第１値よりも大きくなるフレーム数と、前記第２値が前記第１値以下となるフレーム数との関係に基づいて、前記対象者の動きを検出する、付記１に記載の動き検出システム。
［付記７］
前記第１値は、前記対象者領域に前記対象者に係る画素のみが含まれる場合に前記第２値が取る上限値であって、前記距離が変化しない条件下で前記第２値が取る上限値に等しい、付記３〜６のうちのいずれか１項に記載の動き検出システム。
［付記８］
前記第１値は、前記対象者が片手を上に挙げる状態又は両手を上に挙げる状態で得られる前記第２値に基づいて設定される、付記７に記載の動き検出システム。
［付記９］
前記第１値は、前記対象者が片手を上に挙げる状態で得られる前記第２値に、該片手に係る画素領域のサイズに応じた所定の補正値を加算することで設定される、付記８に記載の動き検出システム。
［付記１０］
前記画像センサは、距離画像センサであり、
前記画像は、前記距離画像センサから物体までの距離情報を画素値とする距離画像である、付記１〜９のうちのいずれか１項に記載の動き検出システム。
［付記１１］
前記距離取得部は、前記距離画像から得られる前記対象者の身体部位に係る前記距離情報に基づいて、前記距離を取得する、付記１０に記載の動き検出システム。
［付記１２］
前記距離取得部は、前記対象者の腰部に係る前記距離情報に基づいて、前記距離を取得する、付記１１に記載の動き検出システム。
［付記１３］
前記動き検出部による前記対象者の動きの検出結果に基づいて、表示装置の表示状態を変更する機能実現部を更に含む、付記１〜１２のうちのいずれか１項に記載の動き検出システム。
［付記１４］
前記機能実現部は、前記表示装置に表示されているボタンに対応付けられた所定の動きを前記動き検出部が検出した場合に、前記ボタンに対応付けられた機能を実現する、付記１３に記載の動き検出システム。
［付記１５］
前記所定の動きは、前に出してから後に引く前記対象者の手の動きを伴う、付記１４に記載の動き検出システム。
［付記１６］
画像センサからの画像に基づいて、対象者に係る画素領域である対象者領域を認識し、
前記画像センサから前記対象者までの距離を取得し、
前記距離の二乗に応じた第１値を算出し、
前記対象者領域のサイズに応じた第２値を算出し、
前記画像における前記対象者領域内の情報と、前記第１値と、前記第２値とに基づいて、前記対象者の動きを検出することを含む、コンピュータにより実行される動き検出方法。
［付記１７］
画像センサからの画像に基づいて、対象者に係る画素領域である対象者領域を認識し、
前記画像センサから前記対象者までの距離を取得し、
前記距離の二乗に応じた第１値を算出し、
前記対象者領域のサイズに応じた第２値を算出し、
前記画像における前記対象者領域内の情報と、前記第１値と、前記第２値とに基づいて、前記対象者の動きを検出する
処理をコンピュータに実行させる動き検出プログラム。
【符号の説明】
【０１６６】
１  ジェスチャ入力システム
８  周辺機器
１４  補助記憶装置
１５  ドライブ装置
１６  記録媒体
１７  通信インターフェース
１９  バス
２５  有線送受信部
２６  無線送受信部
４０  スクリーン
４２  投影装置
５０  画像センサ
１００  処理装置
１１０  人体検出部
１２０  閾値計算部
１２２  指示点計算部
１３０  ジェスチャ認識処理部
１３２  トリガジェスチャ検出部
１３４  手部速度計算部
１３６  押し動作検出部
１３８  引き動作検出部
１３９  タップ動作検出部
１４０  閾値判定部
１４２  映像出力部
１５０  操作画面データ保持部
４１０  ポインタ
４１２  ボタン
４１４  ボタン
４２１  ケーブル
５０２  検出範囲
５２１  ケーブル
１１０１  身体部位識別部
１１０２  非関節位置算出部
１１０３  関節位置算出部
１１０４  対象者領域サイズ算出部
１１０５  対象者距離情報生成部
【図１】
2018169720.tif 000007
【図２】
2018169720.tif 000008
【図３】
2018169720.tif 000009
【図４】
2018169720.tif 000010
【図５】
2018169720.tif 000011
【図６】
2018169720.tif 000012
【図７】
2018169720.tif 000013
【図８】
2018169720.tif 000014
【図９】
2018169720.tif 000015
【図１０】
2018169720.tif 000016
【図１１】
2018169720.tif 000017
【図１２】
2018169720.tif 000018
【図１３Ａ】
2018169720.tif 000019
【図１３Ｂ】
2018169720.tif 000020
【図１４】
2018169720.tif 000021
【図１５】
2018169720.tif 000022
【図１６】
2018169720.tif 000023
【図１７】
2018169720.tif 000024
【図１８】
2018169720.tif 000025
【図１９】
2018169720.tif 000026
【図２０】
2018169720.tif 000027
【図２１】
2018169720.tif 000028
【図２２】
2018169720.tif 000029
【図２３】
2018169720.tif 000030
【図２４】
2018169720.tif 000031
【図２５】
2018169720.tif 000032
【図２６】
2018169720.tif 000033
【図２７】
2018169720.tif 000034
【図２８】
2018169720.tif 000035
【図２９】
2018169720.tif 000036
【図３０】
2018169720.tif 000037