(57)【特許請求の範囲】
【請求項１】
情報処理装置が、
対象物の位置及び動作を測定して位置情報及び動作情報を取得し、
取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、
取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、
各動作を反映した、前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、
決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する、ことを特徴とする入力制御方法。
【請求項２】
前記対象物の候補位置に関する前記位置仮説の生成は、
複数の前記対象物の同時追跡に対応する追跡アルゴリズムを用いることを特徴とする請求項１に記載の入力制御方法。
【請求項３】
前記対象物の候補動作に関する前記動作仮説の生成は、
ベイジアンネットワークを用いることを特徴とする請求項１又は２に記載の入力制御方法。
【請求項４】
前記位置仮説が生成される度に、新しい位置仮説をツリーのノードとして直前の位置仮説ノードへ追加することでツリーを生成し、
生成した前記ツリーを用いて前記対象物を用いた入力状態を確定することを特徴とする請求項１乃至３の何れか１項に記載の入力制御方法。
【請求項５】
前記位置仮説が前記ノードに追加される度に、予め設定された前記対象物の運動モデルを用いて前記位置仮説尤度を取得することを特徴とする請求項４に記載の入力制御方法。
【請求項６】
予め複数のタイプを有する前記位置仮説に対して、各タイプに対応する前記ベイジアンネットワークを用いて、前記動作仮説尤度を取得することを特徴とする請求項３に記載の入力制御方法。
【請求項７】
対象物の位置及び動作を測定して位置情報及び動作情報を取得し、
取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、
取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、
各動作を反映した、前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、
決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する、処理をコンピュータに実行させる入力制御プログラム。
【請求項８】
対象物の位置及び動作を測定して位置情報及び動作情報を取得し、取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、各動作を反映した、前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する軌跡抽出部と、
前記軌跡抽出部により抽出された情報から動作の認識を行う動作認識部とを有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力制御方法、入力制御プログラム、及び情報処理装置に関する。
【背景技術】
【０００２】
例えば、実空間内に存在するテーブルや壁等の表面に対し、ユーザが指やポインタデバイス等を用いてタッチしたポインタの位置やタッチしながら移動する際の移動軌跡動作等をカメラ等から認識する手法がある。従来では、上述したポインタのタッチ動作やタッチ位置の追跡をそれぞれ別の処理モジュールで分離して行っている。
【０００３】
例えばユーザが指示したポインタのタッチ動作の認識としては、例えばＤｙｎａｍｉｃ  Ｂａｙｅｓｉａｎ  Ｎｅｔｗｏｒｋｓ（ＤＢＮ）を利用したタッチ認識手法がある。ＤＢＮは、複数種類のセンサデータを複合して状態を推定するための方法である。また、タッチ位置を追跡する手法としては、例えばＭｕｌｔｉｐｌｅ  Ｈｙｐｏｔｈｅｓｉｓ  Ｔｒａｃｋｉｎｇ（ＭＨＴ）を利用した追跡手法がある。ＭＨＴは、複数のポインタが交差したり、観測データが欠損したりする場合でも、ロバストな追跡を行える。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１２−５１５９６６号公報
【特許文献２】特表２０１３−５４１０８８号公報
【特許文献３】特表２０１４−５０４７７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来手法では、タッチ動作の判別基準の設定が各ユーザの経験則やチューニング作業に依存してしまう。また、上述したように、ポインタのタッチ動作やタッチ位置の追跡を分離して行っているため、例えばポインタの位置がタッチ面から離れる状態（以下、必要に応じて「ホバー状態」という）の抽出や、ポインタの軌跡が交差したりする複数のポインタを同時に抽出することができず、ポインタ等の対象物（ターゲット）の入力状態を適切に認識できることができない。
【０００６】
一つの側面では、本発明は、ポインタ等の対象物を用いた入力精度を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様では、入力制御方法は、情報処理装置が、対象物の位置及び動作を測定して位置情報及び動作情報を取得し、取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、各動作を反映した、前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する。
【発明の効果】
【０００８】
一つの側面として、対象物を用いた入力精度を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置の機能構成の一例を示す図である。
【図２】ハードウェア構成の一例を示す図である。
【図３】入力制御処理の一例を示すフローチャートである。
【図４】入力制御処理の概要を説明するための図である。
【図５】ポインタ軌跡抽出部における単純ＢＮを説明するための図である。
【図６】ＤＢＮの概略構成例を示す図である。
【図７】ＭＨＴの初期化の一例を示す図である。
【図８】位置仮説ノードの追加例を示す図である。
【図９】タッチ動作尤度ｐ（０ｘ１＝１）の計算例を示す図である。
【図１０】タッチ動作尤度ｐ（１ｘ１＝１）の計算例を示す図である。
【図１１】ホバー動作尤度ｐ（２ｘ１＝０）の計算例を示す図である。
【図１２】軌跡ツリーの生成例を示す図である。
【図１３】軌跡ツリーの枝刈例を示す図である。
【図１４】ポインタ動作の定義例を示す図である。
【図１５】観測データとパラメータとの具体例を示す図である。
【図１６】タッチＤＢＮ構造とパラメータの一例を示す図である。
【図１７】ポインタが複数の場合の仮説例を示す図（その１）である。
【図１８】ポインタが複数の場合の仮説例を示す図（その２）である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて実施形態を説明する。
【００１１】
＜情報処理装置の機能構成例＞
図１は、情報処理装置の機能構成の一例を示す図である。図１に示す情報処理装置１０は、データ取得部１１と、ポインタ軌跡抽出部（軌跡抽出部）１２と、動作認識部１３と、アプリ実行部１４と、通信部１５と、出力部１６と、制御部１７と、記憶部１８とを有する。図１に示す情報処理装置１０は、観測部２０及びプロジェクタ３０とに接続されている。
【００１２】
データ取得部１１は、ポインタ等の対象物（ターゲット、オブジェクト）の位置や高さ、実空間上の所定の場所（テーブルや壁）のタッチの有無等のデータを取得する。対象物とは、例えばユーザの指先やタッチペン等の指示部材の先端部、ライトペン等のレーザーポインタから発光されたレーザの受光点（指示点）等であるが、これに限定されるものではない。
【００１３】
データ取得部１１は、例えば情報処理装置１０とは別体に設けられた観測部２０等により得られる少なくとも１つの観測データ等を取得する。観測データとは、観測部２０から得られるポインタ位置（ポインタ候補位置）、高さ、所定の面（例えば、テーブルの上面や壁）等をタッチしたか否かを判断するための情報等であるが、これに限定されるものではない。
【００１４】
ここで、図１に示す観測部２０は、ＲＧＢカメラ２１と、深度カメラ２２とを有するが、これに限定されるものではなく、他のセンサを設けてもよい。ＲＧＢカメラ２１は、例えばＣｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ（ＣＣＤ）やＣｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ（ＣＭＯＳ）等のセンサ及びＲＧＢ各色のフィルタを備えたデジタルカメラである。ＲＧＢカメラ２１は、所定時間間隔毎の画像フレームを有する映像等を取得する。データ取得部１１は、ＲＧＢカメラ２１から得られる観測データから、例えばポインタの位置（ポインタ候補位置）や、ポインタがある物体にタッチしたときに点灯する発光部（例えば、Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ（ＬＥＤ）等）の点灯の有無等を取得する。
【００１５】
深度カメラ２２は、例えば赤外線等の光を用いて奥行き検出を行う。例えば、深度カメラ２２は、発光部から照射された光に対する物体の反射光を受光することによって、各画素の深度値を有する反射光情報を取得する。データ取得部１１は、深度カメラ２２から得られる観測データからポインタの高さ等を取得する。
【００１６】
なお、観測部２０に含まれるカメラの種類は、これらに限定されるものではなく、他の１又は複数のセンサ（観測センサ）等を有してもよい。例えば、観測部２０は、ＲＧＢカメラ２１と超音波センサとの組み合わせでもよく、深度カメラ２２とモノクロカメラとの組み合わせでもよく、超音波センサとモノクロカメラとの組み合わせでもよく、上述した全ての組み合わせでもよい。
【００１７】
また、観測部２０は、出力部１６からプロジェクタ３０等の表示部によりテーブルトップ（テーブル上面）や壁に投影されたアイコンやマーク等の画像と共に、ポインタの位置や高さ、タッチの有無を観測（以下、「タッチ観測」という）してもよい。これにより、情報処理装置１０は、例えばアイコン等の画像とその画像へのタッチの有無との関係から動作認識部１３により動作を認識し、その動作（例えば、アイコンのタッチ、フリック等）に対応する処理を実行することができる。また、観測部２０及びプロジェクタ３０の少なくとも１つは、情報処理装置１０と一体に構成されていてもよい。
【００１８】
ポインタ軌跡抽出部１２は、データ取得部１１により得られる各情報に基づいて、各時刻におけるポインタの位置をセンシング（測定）してポインタの位置や高さ等の位置情報を取得する。また、ポインタ軌跡抽出部１２は、ポインタの動作をセンシング（測定）して動作情報を取得する。また、ポインタ軌跡抽出部１２は、取得した位置情報に基づいて各時刻におけるポインタの候補位置に関する位置仮説を生成したり、取得した動作情報に基づいて各位置仮説における動作を反映した動作仮説を生成する。また、ポインタ軌跡抽出部１２は、各動作を反映した位置仮説に関連付ける位置仮説尤度（位置尤度）及び動作仮説尤度（動作尤度）を決定し、位置仮説尤度と、動作仮説尤度とに基づいてポインタの入力状態（ポインタ軌跡等）を決定（抽出）する。
【００１９】
例えば、ポインタ軌跡抽出部１２は、各時刻での位置仮説をツリー（軌跡ツリー）で管理してもよい。ポインタ軌跡抽出部１２は、位置仮説が生成される度に、新しい位置仮説をツリーのノードとして直前の位置仮説ノードへ追加することでツリーを生成する。この生成したツリーを用いて、例えばポインタの軌跡等の入力状態を確定することができる。また、ポインタ軌跡抽出部１２は、位置仮説尤度と動作仮説尤度とを統合した仮説尤度に基づいてツリーの枝刈（選択と削除）を行い、ポインタの入力状態を決定してもよい。ポインタの入力状態とは、例えばタッチ状態でもよく、ホバー状態でもよい。タッチ状態とは、例えばユーザの指先、又は指示部材の先端部が所定の場所（面）をタッチしていると判断した状態である。ホバー状態とは、例えば所定の場所をタッチすることなく、タッチ面上方の所定の高さ範囲にポインタがある状態である。
【００２０】
例えば、ポインタ軌跡抽出部１２は、ポインタの候補位置に関する位置仮説を、複数ポインタの同時追跡を目的とした追跡アルゴリズム（ＭＨＴ）を用いて抽出してもよい。また、ポインタ軌跡抽出部１２は、ポインタの候補動作に関する動作仮説を、タッチ認識（ＤＢＮ）を用いて抽出してもよい。
【００２１】
動作認識部１３は、ポインタ軌跡抽出部１２により抽出された各時刻におけるポインタ位置や高さ、軌跡（追跡結果）、タッチの有無に基づいて、ユーザが指示した動作内容等を認識する。動作内容としては、例えばタッチ、ドラッグ、フリック、長押し等であるが、これに限定されるものではない。
【００２２】
アプリ実行部１４は、記憶部１８に記憶された１又は複数のアプリケーション１８−１（以下、「アプリ１８−１」と略称する）から選択されたアプリに関連付けられた処理を実行する。例えば、アプリ実行部１４は、動作認識部１３により認識された動作（例えば、ユーザ指示等）に基づいて、アプリ１８−１を選択し、選択したアプリ１８−１毎に、対応する動作を実行する。アプリの実行とは、例えばアプリの起動、終了、出力部１６による出力（例えば、プロジェクタ３０による投影表示等）、画面遷移、拡大、縮小、文字入力、編集、削除等であるが、これに限定されるものではない。
【００２３】
通信部１５は、例えばインターネットやＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）等に代表される通信ネットワークを介して接続されるサーバ等の外部装置とのデータの送受信を行う。通信ネットワークは、有線でも無線でもよく、これらの組み合わせでもよい。
【００２４】
出力部１６は、アプリ１８−１による所定の処理内容や各種データをプロジェクタ３０等の表示部に出力する。なお、出力部１６から出力される各種データ等の出力先は、プロジェクタ３０に限定されるものではなく、通信部１５を介して接続された他の外部装置等に出力してもよい。
【００２５】
制御部１７は、情報処理装置１０に含まれる各構成部を制御する。例えば、制御部１７は、データ取得部１１による観測データの取得、ポインタ軌跡抽出部１２によるポインタの位置、高さ、軌跡等の抽出、動作認識部１３によるポインタ動作の認識等を制御する。また、制御部１７は、アプリ実行部１４によるアプリ１８−１の実行、通信部１５によるデータの送受信、出力部１６によるプロジェクタ３０等へのデータ出力等を制御する。
【００２６】
制御部１７による制御内容は、これに限定されるものではなく、例えば本実施形態における入力制御処理の開始や終了、エラー処理等を制御してもよい。また、制御部１７は、例えば観測部２０やプロジェクタ３０等の制御を行ってもよい。
【００２７】
記憶部１８は、本実施形態における入力制御処理において、必要な各種情報を読み出したり、書き込んだりする。記憶部１８は、例えばアプリ実行部１４により実行される１又は複数のアプリ１８−１が記憶される。これらのアプリ１８−１は、通信部１５から通信ネットワーク等を介して接続された外部装置等から、ダウンロード等により取得することができ、情報処理装置１０にインストールすることで、使用することができる。なお、記憶部１８に記憶される情報としては、これに限定されるものではなく、例えば後述するＣｏｎｄｉｔｉｏｎａｌ  Ｐｒｏｂａｂｉｌｉｔｙ  Ｔａｂｌｅ（ＣＰＴ、条件付確率表）等を記憶してもよい。また、記憶部１８は、情報処理装置１０を使用するユーザ情報、ポインタ入力エラー時に表示する表示メッセージ、入力情報のログ等を記憶してもよい。
【００２８】
情報処理装置１０は、例えばＰｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ（ＰＣ）やサーバ等でもよく、スマートフォンや、タブレット端末等でもよい。
【００２９】
＜ハードウェア構成例＞
次に、情報処理装置１０等のコンピュータのハードウェア構成例について、図を用いて説明する。図２は、ハードウェア構成の一例を示す図である。図２の例において、情報処理装置１０は、入力装置４１と、出力装置４２と、ドライブ装置４３と、補助記憶装置４４と、主記憶装置４５と、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）４６と、ネットワーク接続装置４７とを有し、これらはシステムバスＢで相互に接続されている。
【００３０】
入力装置４１は、ユーザ等が操作するキーボード及びマウス等のポインティングデバイスやマイクロフォン等の音声入力デバイスを有しており、ユーザ等からのプログラムの実行指示、各種操作情報、ソフトウェア等を起動するための情報等の入力を受け付ける。また、入力装置４１は、上述したデータ取得部１１として観測部２０等からの観測データを取得してもよい。
【００３１】
出力装置４２は、本実施形態における処理を行うためのコンピュータ本体（情報処理装置１０）を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイ等を有する。出力装置４２は、ＣＰＵ４７が有する制御プログラムによりプログラムの実行経過や結果等を表示することができる。また、出力装置４２は、上述した出力部１６として、プロジェクタ３０等の表示部を用いてデータを出力してもよい。
【００３２】
ドライブ装置４３は、記録媒体４８等に記録されている各種データを読み出したり、各種データを記録媒体４８に書き込む。ここで、本実施形態において、例えば情報処理装置１０等のコンピュータ本体にインストールされる実行プログラムは、記録媒体４８等により提供される。記録媒体４８は、ドライブ装置４３にセット可能である。ＣＰＵ４７からの制御信号に基づき、記録媒体４８に格納された実行プログラムが、記録媒体４８からドライブ装置４３を介して補助記憶装置４４にインストールされる。
【００３３】
補助記憶装置４４は、例えばＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）やＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）等のストレージ手段等である。補助記憶装置４４は、ＣＰＵ４７からの制御信号に基づき、本実施形態における実行プログラム（入力制御プログラム）や、コンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行う。補助記憶装置４４は、ＣＰＵ４７からの制御信号等に基づいて、記憶された各情報から必要な情報を読み出したり、書き込むことができる。
【００３４】
主記憶装置４５は、ＣＰＵ４７により補助記憶装置４４から読み出された実行プログラム等を格納する。主記憶装置４５は、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）やＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）等である。
【００３５】
ＣＰＵ４７は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）等の制御プログラム、及び主記憶装置４５に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して各処理を実現する。プログラムの実行中に必要な各種情報等は、補助記憶装置４４から取得することができ、また実行結果等を格納することもできる。
【００３６】
例えば、ＣＰＵ４７は、入力装置４１から得られるプログラムの実行指示等に基づき、補助記憶装置４４にインストールされたプログラムを実行させることにより、主記憶装置４５上でプログラムに対応する処理を行う。例えば、ＣＰＵ４７は、入力制御プログラムを実行させることで、上述したデータ取得部１１における観測データ等の取得や、ポインタ軌跡抽出部１２によるポインタの位置、高さ、軌跡等の抽出、動作認識部１３による動作認識等の処理を行う。また、ＣＰＵ４７は、入力制御プログラムを実行させることで、アプリ実行部１４によるアプリ１８−１の実行、通信部１５によるデータの送受信、出力部１６によるプロジェクタ３０等へのデータ出力等の処理を行う。ＣＰＵ４７における処理内容は、上述した内容に限定されるものではない。ＣＰＵ４７により実行された内容は、必要に応じて補助記憶装置４４等に記憶される。
【００３７】
ネットワーク接続装置４７は、例えばインターネットやＬＡＮ等の通信ネットワークを介して、他の外部装置との通信を行う。ネットワーク接続装置４７は、ＣＰＵ４７からの制御信号に基づき、通信ネットワーク等と接続することにより、実行プログラムやソフトウェア、設定情報等を外部装置等から取得する。また、ネットワーク接続装置４７は、プログラムを実行することで得られた実行結果を外部装置等に提供したり、本実施形態における実行プログラム自体を外部装置等に提供してもよい。
【００３８】
記録媒体４８は、上述したように実行プログラム等が格納されたコンピュータで読み取り可能な記録媒体である。記録媒体４８は、例えばフラッシュメモリ等の半導体メモリやＣＤ−ＲＯＭ、ＤＶＤ等の可搬型の記録媒体であるが、これに限定されるものではない。
【００３９】
図２に示すハードウェア構成に実行プログラム（例えば、入力制御プログラム等）をインストールすることで、ハードウェア資源とソフトウェアとが協働して本実施形態における入力制御処理等を実現することができる。
【００４０】
＜入力制御処理例について＞
次に、上述した情報処理装置１０における入力制御処理の一例についてフローチャートを用いて説明する。図３は、入力制御処理の一例を示すフローチャートである。
【００４１】
図３の例において、データ取得部１１は、観測部２０により所定時刻毎に少なくとも１つの観測データを取得する（Ｓ０１）。Ｓ０１の処理では、例えばＬＥＤ等の点灯しているか否かの観測データやポインタの位置情報（ポインタ候補位置）や高さ情報等の観測データを取得するが、種類や数については、これに限定されるものではない。Ｓ０１の処理により、ポインタの位置及び動作をセンシングして位置情報及び動作情報を取得する。
【００４２】
次に、ポインタ軌跡抽出部１２は、ポインタの軌跡情報（追跡情報）の一例である軌跡ツリーが初期化済みであるか否かを判断する（Ｓ０２）。軌跡ツリーとは、例えば予め設定された所定時刻毎のポインタ候補位置に関する位置仮説を生成し、生成した位置仮説を追跡してツリー状で管理したものである。軌跡ツリーが初期化済みでない場合（Ｓ０２において、ＮＯ）、ポインタ軌跡抽出部１２は、軌跡ツリーの初期化を行い（Ｓ０３）、Ｓ０１の処理に戻る。
【００４３】
また、観測データが初期化済みの場合（Ｓ０２において、ＹＥＳ）、ポインタ軌跡抽出部１２は、Ｓ０１で取得した観測データと前時刻でのポインタ候補位置との関連付けを行う（Ｓ０４）。次に、ポインタ軌跡抽出部１２は、各時刻におけるポインタ候補位置に関する位置仮説を生成して位置仮説ノードを追加し（Ｓ０５）、位置尤度を計算する（Ｓ０６）。Ｓ０５、Ｓ０６の処理において、ポインタ候補位置に関する位置仮説は、例えば複数ポインタの同時追跡を目的とした追跡アルゴリズム（ＭＨＴ）を用いて行うことができるが、これに限定されるものではない。また、Ｓ０５、Ｓ０６の処理では、例えば新しい位置仮説ノードが追加される度に、予め設定されたポインタの運動モデルに基づいて位置尤度を計算する。
【００４４】
次に、ポインタ軌跡抽出部１２は、タッチ認識（Ｂａｙｅｓｉａｎ  Ｎｅｔｗｏｒｋｓ（ＢＮ））と連携を行い（Ｓ０７）、動作尤度を計算する（Ｓ０８）。Ｓ０７の処理では、ポインタ候補動作に関する動作仮説を、例えば動的ベイジアンネットワーク（ＤＢＮ）を用いて行うが、これに限定されるものではない。
【００４５】
次に、ポインタ軌跡抽出部１２は、各動作を反映させて位置仮説尤度を更新して軌跡ツリーを生成する（Ｓ０９）。Ｓ０９の処理では、例えば各位置仮説に連携したＤＢＮに基づいて計算した動作仮説尤度やツリーの親仮説の尤度によって位置仮説尤度を更新することができる。
【００４６】
次に、ポインタ軌跡抽出部１２は、Ｓ０４の処理における関連付けが完了したか否かを判断する（Ｓ１０）。関連付けが完了していない場合（Ｓ１０において、ＮＯ）、ポインタ軌跡抽出部１２は、Ｓ０４の処理に戻る。また、関連付けが完了した場合（Ｓ１０において、ＹＥＳ）、ポインタ軌跡抽出部１２は、ここまでに生成された軌跡ツリーに含まれる各ノードの位置尤度等に基づいて、不要なノードの枝刈を行い（Ｓ１１）、最終的なポインタの軌跡を確定する（Ｓ１２）。
【００４７】
次に、動作認識部１３は、Ｓ１２の処理により得られるポインタの軌跡の内容に対応する動作を認識する（Ｓ１３）。Ｓ１３の処理では、認識結果の動作に応じたアプリを実行する等の処理を行ってもよいが、これに限定されるものではない。
【００４８】
ここで、制御部１７は、処理を終了するか否かを判断し（Ｓ１４）、処理を終了しない場合（Ｓ１４において、ＮＯ）、Ｓ０１の処理に戻る。また、Ｓ１４の処理において、ユーザの指示等により処理を終了する場合（Ｓ１４において、ＹＥＳ）、入力制御処理を終了する。
【００４９】
＜入力制御処理の概要＞
次に、上述した入力制御処理の概要について説明する。図４は、入力制御処理の概要を説明するための図である。図４（Ａ）は、ユーザが行う入力動作の概要を示し、図４（Ｂ）は、入力動作によるポインタ軌跡を示している。
【００５０】
図４（Ａ）の例では、情報処理装置１０と、観測部２０と、プロジェクタ３０とを有する。図４（Ａ）に示すように、テーブルトップ５０にプロジェクタ３０から所定のアイコン５１−１，５１−２等の各種画像データが投影されている。
【００５１】
例えば、実世界インタラクションの分野では、１又は複数のユーザ５２が指示部材５３−１，５３−２等を用いて、その先端部にあるポインタ５４−１，５４−２を移動させ、そのポインタの位置や動作等で情報世界とのインタラクションを行っている。ここで、位置や動作とは、例えばタッチ、ドラッグ、フリック、長押し等の各状態であるが、これに限定されるものではない。このような場合に、観測部２０を用いてユーザ５２が操作するポインタ５４−１，５４−２の位置や軌跡を追跡して各ポインタによる入力状態を決定することで、例えば作業現場等における情報の入出力や複数人による同時使用が可能となる。
【００５２】
しかしながら、観測部２０により得られた情報から入力状態等を判断する場合には、観測部２０によるカメラ精度やセンサ精度の影響により、状態判断が難しい。例えば、ＲＧＢカメラ２１により撮影された映像のみから、図４（Ｂ）の例に示すようなフリック方向へのタッチ移動軌跡において、テーブルトップ５０からの高さに応じて、所定の高さ以上のポインタ５４の入力状態をホバー状態と認識するのは難しく、ポインタ５４の入力状態をロスト（欠損）しやすくなる。
【００５３】
そこで、本実施形態では、図４（Ｂ）に示すような状態になっても、ポインタ５４の位置やジェスチャを認識する際に、テーブルトップ５０にタッチしているポインタ５４の軌跡を、より適切に抽出することで、ポインタ５４の位置の入力精度を向上させる。例えば、本実施形態では、ポインタ５４の位置や軌跡を認識するために、タッチ時のポインタ５４をロストせず、ホバー時のポインタ５４に引っ張られず、確実にタッチ移動軌跡を抽出するため、上述したＭＨＴ等によるポインタ追跡の処理結果とＤＢＮによるタッチ認識の処理結果とを連携させる。
【００５４】
本実施形態では、所定時間間隔で撮影されるカメラの映像から各時刻でのポインタ候補位置に関する位置仮説を生成し、生成した各位置仮説を軌跡ツリーで管理する。また、本実施形態では、例えば各位置仮説が自己と連携している動作仮説の尤度で自己の尤度を更新し、位置仮説尤度と動作仮説尤度を統合した仮説尤度に基づいてタッチ軌跡を確定する。なお、タッチ軌跡を確定する場合、上述した軌跡ツリーを所定のタイミング（例えば、３階層毎等）で枝刈処理することで、データ容量を削減させることができ、処理量も削減することができる。
【００５５】
＜ポインタ軌跡抽出部１２におけるベイジアンネットワーク（ＢＮ）について＞
ここで、ポインタ軌跡抽出部１２におけるタッチ認識を用いられるＢＮについて図を用いて説明する。図５は、ポインタ軌跡抽出部における単純ＢＮを説明するための図である。図５の例では、入力状態が「因」、各センサの観測データは「果」とし、「因」からどれくらい確率で「果」が発生するのかを示すＣｏｎｄｉｔｉｏｎａｌ  Ｐｒｏｂａｂｉｌｉｔｙ  Ｔａｂｌｅ（ＣＰＴ、条件付確率表）を予め設定しておく。ポインタ軌跡抽出部１２は、「果」が発生した時に、「因」をＣＰＴに基づいて、確率的に推定する。
【００５６】
ベイジアンネットワーク（ＢＮ）は、例えば事象をノードとし、各事象間の因果関係を矢印で表したものである。パラメータ（ＣＰＴ）は、例えば矢印の元の事象が発生した時に、矢印先の事象がどのくらい確率で起きるのかを示すデータである。ＣＰＴを用いることで、矢印の先の事象が発生した時に、矢印の元の事象が起きた確率を推定することができる。
【００５７】
また、推定確率は、矢印方向に向かって次々と先へ伝搬する。そのため、本実施形態では、動的ベイジアンネットワーク（ＤＢＮ）を用いることで、時刻間のノードをリンクすることで、推定結果を時間軸上に伝搬できるようにする。
【００５８】
例えば、図５（Ａ）に示すように、ポインタの入力状態ｘに対して１又は複数の観測センサ（観測部２０）からの観測データがｙ１，ｙ２，・・・，ｙＮのように設定されている。なお、図５（Ａ）の例において、入力状態ｘの変数は２値とし、一例として「１」をタッチ、「０」をホバーとするが、これに限定されるものではない。また、観測データｙ１，ｙ２，・・・，ｙＮの出力例としては、例えばポインタ５４に設けられたＬＥＤが入力状態時に点灯する状態を観測したり、ポインタの高さが一定値以上にある状態を観測し、その結果に応じてタッチかホバーかの観測の予測を出力する等があるが、これに限定されるものではない。
【００５９】
また、各観測センサにおけるＣＰＴは、図５（Ｂ）に示すように設定することができる。図５（Ｂ）の例では、入力状態ｘとタッチ観測データｙ１，ｙ２，・・・，ｙＮにおけるそれぞれのＣＰＴが設定されている。なお、設定内容については、図５（Ｂ）の例に限定されるものではない。また、位置仮説尤度は、例えばそれぞれのタッチ観測センサの結果からｐ（ｘ｜ｙ１，ｙ２，・・・，ｙＮ）＝ηｐ（ｙ１｜ｘ）ｐ（ｙ２｜ｘ）・・・ｐ（ｙＮ｜ｘ）で求めることができる。ただし、ηは、所定の制御パラメータの一例である。
【００６０】
また、図５に示す単純ＢＮに対し、本実施形態では２種類のＤＢＮを構成することができる。図６は、ＤＢＮの概略構成例を示す図である。図６（Ａ）に示すＤＢＮの第１の構成例（以下、必要に応じて「ＤＢＮ１」という）では、隣接時刻間における入力状態のノード同士をリンクする（ｘｔ−１→ｘｔ）。ＤＢＮ１では、例えば現時刻での実観測データに基づいてタッチを推定するものであり、タッチを観測するセンサの実データ（以下、必要に応じて「観測ノード」という）（ｙ１，ｔ，ｙ２，ｔ，・・・，ｙＮ，ｔ）がある場合に使用される。
【００６１】
図６（Ｂ）に示すＤＢＮの第２の構成例（以下、必要に応じて「ＤＢＮ２」という）では、隣接時刻間の入力状態ノード同士、及びセンサ観測ノード同士をリンクする。
【００６２】
ＤＢＮ２は、例えば１時刻前のＤＢＮと同じ観測データに基づいてタッチを推定するものであり、タッチを観測するセンサの実データ（ｙ１，ｔ，ｙ２，ｔ，・・・，ｙＮ，ｔ）がない場合に使用される。
【００６３】
＜ＭＨＴとＤＢＮとの連携＞
本実施形態では、ＭＨＴとＤＢＮと処理結果を連携することにより、ポインタの入力精度を向上させる。連携する場合には、まず上述した図３のＳ０３の処理に示すようにＭＨＴの初期化を行う。
【００６４】
図７は、ＭＨＴの初期化の一例を示す図である。ＭＨＴの初期化では、時刻ｔ＝０の時にセンサで計測したポインタ位置を初期化（０ｓ０）し、ＭＨＴの根本ノードを生成する。なお、以下の説明では、便宜上、例えば観測データが１つの場合について説明するが、複数の場合には、同様の連携が観測データの数だけ行われる。
【００６５】
ＭＨＴの初期化では、例えば図７に示すように、タッチ観測センサデータから得られる単純ＢＮの実体とＭＨＴのルートノードとの連携を行い、入力状態０ｘ０、タッチ観測センサ０ｙ１，０、０ｙ２，０、・・・、０ｙＮ，０を生成する。つまり、単純ＢＮと０ｓ０との連携により、０ｓ０内に単純ＢＮが生成される。その後、位置仮説ノードの追加による軌跡ツリーを生成する。
【００６６】
＜ＭＨＴ：位置仮説ノードの追加例＞
次に、ＭＨＴによる位置仮説ノードの追加例について図を用いて説明する。図８は、位置仮説ノードの追加例を示す図である。
【００６７】
ＭＨＴでは、例えばセンサ等から得られた観測データが、ポインタ等の対象物（ターゲット）由来であるか、ノイズであるか、別のポインタ由来であるかの曖昧さを解決する。例えば、時刻ｔ−１におけるターゲットの位置に対して、時刻ｔにおける観測データがターゲット由来と仮定した場合には、ターゲット位置を観測データから更新する。また、仮に観測データがノイズと仮定した場合には、ターゲット位置を予測により更新する。つまり、上述した仮説（仮の割り当て）によって時刻ｔにおける位置仮説ノードを生成し、時刻ｔ＋１以降も同様に仮の割り当てを行うことで、ターゲット位置を更新し、軌跡ツリーを成長させる。また、各時刻で生成した位置仮説を軌跡ツリーで管理する。例えば、ターゲットの運動モデル（例えば、等速運動モデル等）に基づいて、位置仮説に基づいてターゲット位置を更新したり、各位置仮説尤度（位置尤度）を計算する。また、軌跡ツリーが所定の深さ（階層）になった後、位置尤度最大のノードから根本ノードに辿って、そのノードに行かない枝をカットする（枝刈処理）。これにより、この枝刈によって、仮の割り当てを確定する。
【００６８】
例えば、本実施形態では、予め複数のタイプを有する位置仮説ノードに対して、各タイプに対応するＤＢＮを用いて、動作仮説尤度を取得する。例えば、ある時刻ｔ＝１の場合に、「タッチ観測型位置仮説ノード：０Ｓ１」、「タッチ予測型位置仮説ノード：１Ｓ１」、及び「ホバー予測型位置仮説ノード：２Ｓ１」の３つのタイプのＭＨＴ位置仮説ノードを、図８（Ａ）に示すように、時刻ｔ＝０の場合の親ノード０Ｓ０の配下に子ノードとして追加する。
【００６９】
例えば、上述したタッチ観測型位置仮説ノード０Ｓ１の場合、位置観測データｙ１が親の０Ｓ０由来とみなし、０Ｓ０の値を観測データを用いて更新する。また、この位置仮説ノード０Ｓ１の位置尤度ｐ（０Ｓ１）が計算される。位置仮説ノード０Ｓ１は、例えば更新した位置及び位置尤度を有する。
【００７０】
例えば、上述したタッチ予測型位置仮説ノード１Ｓ１の場合、位置観測データｙ１が親のＳ０由来とみなさず、ただポインタがタッチ状態であるとし、０Ｓ０の値をこれまでの移動速度や方向等の運動モデルに基づいて予測のみで更新する。更に、ノード１Ｓ１の位置尤度ｐ（１Ｓ１）が計算される。ノード１Ｓ１は、例えば更新した位置及び位置尤度を有する。
【００７１】
例えば、上述したホバー予測型位置仮説ノード２Ｓ１の場合、位置観測データｙ１が親のＳ０由来とみなさず、ただポインタがホバー状態であるとし、０Ｓ０の値をこれまでの移動速度や方向等の運動モデルに基づいて予測のみで更新する。更に、ノード２Ｓ１の位置尤度ｐ（２Ｓ１）が計算される。ノード２Ｓ１は、例えば更新した位置及び位置尤度を有する。
【００７２】
位置仮説ノードとＤＢＮとの連携については、例えば図８（Ｂ）に示すような連携となる。例えば、時刻ｔ＝１の時に追加した位置仮説ノード（０Ｓ１、１Ｓ１、２Ｓ１）をそれぞれに対応したＤＢＮ（例えば、上述したＤＢＮ１，ＤＢＮ２）と連携する。
【００７３】
例えば、タッチ観測型位置仮説ノード０Ｓ１は、タッチを推定するために上述した図６（Ａ）に示すＤＢＮ１を用いて連携する（図８（Ｂ）の（ａ））。この場合、タッチ動作仮説尤度（タッチ動作尤度）ｐ（０ｘ１＝１）を推定する（例えば、図５（Ａ）に示すように、ｘ＝１がタッチ状態）。
【００７４】
例えば、タッチ予測型位置仮説ノード１Ｓ１は、タッチを推定するために上述した図６（Ｂ）に示すＤＢＮ２を用いて連携する（図８（Ｂ）の（ｂ））。この場合、タッチ動作尤度ｐ（１ｘ１＝１）を推定する（例えば、図５（Ａ）に示すように、ｘ＝１がタッチ状態）。
【００７５】
例えば、ホバー予測型位置仮説ノード２Ｓ１の場合、ホバーを推定する上述した図６（Ｂ）に示すＤＢＮ２を用いて連携する（図８（Ｂ）の（ｃ））。この場合、ホバー動作尤度ｐ（２ｘ１＝０）を推定する（例えば、図５（Ａ）に示すように、ｘ＝０がホバー状態）。
【００７６】
＜タッチ動作尤度ｐ（０ｘ１＝１）の計算例＞
次に、上述したタッチ動作尤度ｐ（０ｘ１＝１）の計算例について、図を用いて説明する。図９は、タッチ動作尤度ｐ（０ｘ１＝１）の計算例を示す図である。
【００７７】
タッチ動作尤度ｐ（０ｘ１＝１）の計算例では、例えばタッチ観測型位置仮説ノード０Ｓ１は、上述したように図６（Ａ）に示すＤＢＮ１を用いて連携する。なお、計算時におけるパラメータ０ｙ１，１，０ｙ２，１，・・・，０ｙＮ，１の値は、タッチ観測センサの実測値を使用する。
【００７８】
例えば、タッチ動作尤度ｐ（０ｘ１＝１）は、センサ観測尤度、動作遷移確率、及び前回の動作尤度を用いて求めることができ、例えば図９の式（１）に示すように計算することができる（ただし、ｔ＝１）。なお、タッチ動作尤度ｐ（０ｘ１＝１）の計算例は、式（１）の例に限定されるものではない。
【００７９】
また、タッチ動作尤度ｐ（０ｘ１＝１）における更新後の今回の位置尤度は、タッチ動作尤度、今回の位置尤度、及び前回の位置尤度を用いて求めることができ、例えば図９の式（２）に示すような計算を行い、位置尤度を更新する（ただし、ｔ＝１）。なお、更新後の今回の位置尤度の計算例は、式（２）の例に限定されるものではない。
【００８０】
＜タッチ動作尤度ｐ（１ｘ１＝１）の計算例＞
次に、上述したタッチ動作尤度ｐ（１ｘ１＝１）の計算例について、図を用いて説明する。図１０は、タッチ動作尤度ｐ（１ｘ１＝１）の計算例を示す図である。
【００８１】
タッチ動作尤度ｐ（１ｘ１＝１）の計算例では、タッチ予測型位置仮説ノード１Ｓ１は、
上述したように図６（Ｂ）に示すＤＢＮ２を用いて連携する。なお、計算時におけるパラメータ１ｙ１，１，・・・，１ｙＮ，１は、前時刻でのデータ０ｙ１，０，・・・，０ｙ１，０をコピーして使用する。また、別方式として、これまでに最も頻度の高い観測データを使用してもよい。
【００８２】
例えば、タッチ動作尤度ｐ（１ｘ１＝１）は、センサ観測尤度、動作遷移確率、及び前回の動作尤度を用いて求めることができ、例えば図１０の式（３）に示すように計算することができる（ただし、ｔ＝１）。なお、タッチ動作尤度ｐ（１ｘ１＝１）の計算例は、式（３）の例に限定されるものではない。
【００８３】
また、タッチ動作尤度ｐ（１ｘ１＝１）における更新後の今回の位置尤度は、タッチ動作尤度、今回の位置尤度、及び前回の位置尤度を用いて求めることができ、例えば図１０の式（４）に示すような計算を行い、位置尤度を更新する（ただし、ｔ＝１）。なお、更新後の今回の位置尤度の計算例は、式（４）の例に限定されるものではない。
【００８４】
＜ホバー動作尤度ｐ（２ｘ１＝０）の計算例＞
次に、上述したホバー動作尤度ｐ（２ｘ１＝０）の計算例について、図を用いて説明する。図１１は、ホバー動作尤度ｐ（２ｘ１＝０）の計算例を示す図である。
【００８５】
ホバー動作尤度ｐ（２ｘ１＝０）の計算例では、ホバー予測型位置仮説ノード２Ｓ１は、上述したように図６（Ｂ）に示すＤＢＮ２を用いて連携する。なお、計算時におけるパラメータ２ｙ１，１，・・・，２ｙＮ，１は、前時刻でのデータ０ｙ１，０，・・・，０ｙＮ，０をコピーして使用する。また、別の方式として、これまでに最も頻度の高い観測データを使用してもよい。
【００８６】
例えば、ホバー動作尤度ｐ（２ｘ１＝０）は、センサ観測尤度、動作遷移確率、及び前回の動作尤度を用いて求めることができ、例えば図１１に示す式（５）に示すように計算することができる（ただし、ｔ＝１）。なお、ホバー動作尤度ｐ（２ｘ１＝０）の計算例は、式（５）の例に限定されるものではない。
【００８７】
また、ホバー動作尤度ｐ（２ｘ１＝０）における更新後の今回の位置尤度は、ホバー動作尤度、今回の位置尤度、及び前回の位置尤度を用いて求めることができ、例えば図１１の式（６）に示すような計算を行い、位置尤度を更新する（ただし、ｔ＝１）。なお、更新後の今回の位置尤度の計算例は、式（６）の例に限定されるものではない。
【００８８】
なお、上述の例では、時刻ｔ＝０からｔ＝１に変わる場合の位置仮説ノードの追加例を示したが、ｔ＝２以降についても各時刻毎に位置仮説ノードの追加が行われ、軌跡ツリーが生成される。
【００８９】
＜軌跡ツリーの生成例について＞
次に、本実施形態における軌跡ツリー（位置仮説ツリー）の生成例について、図を用いて説明する。図１２は、軌跡ツリーの生成例を示す図である。なお、軌跡ツリーの生成とは、時刻が１以上となった場合等におけるツリーの生成例を示すものである。
【００９０】
例えば、時刻ｔ＞１において、例えば親ノードがタッチ観測型位置仮説ノード０Ｓｔ−１である場合、ｔ＝１と同様に、上述したように、３つの位置仮説ノード（０Ｓ１、１Ｓ１、２Ｓ１）を追加してから、ポインタ位置を更新し、位置尤度を計算する。また、位置仮説ノード（０Ｓ１、１Ｓ１、２Ｓ１）と連携するそれぞれのＤＢＮに基づいて、動作尤度を計算してから、位置尤度を更新する。
【００９１】
また、時刻ｔ＞１において、例えば親ノードがタッチ予測型位置仮説ノード１Ｓｔ−１の場合、図１２（Ａ）に示すように、上述した３つの位置仮説ノード（０Ｓ１、１Ｓ１、２Ｓ１）を追加する。
【００９２】
また、時刻ｔ＞１において、例えば親ノードがホバー予測型位置仮説ノード２Ｓｔ−１の場合、図１２（Ｂ）に示すように、新たな子ノードの追加をしない。
【００９３】
＜軌跡ツリーの枝刈（選択と削除）例について＞
次に、本実施形態における軌跡ツリーの枝刈（選択と削除）例について、図を用いて説明する。図１３は、軌跡ツリーの枝刈例を示す図である。本実施形態における軌跡ツリーの枝刈では、図１３に示すようにツリーの深さが所定の階層（３階層）以上になった場合、まず、末端の葉にある最大位置尤度を有するノードを選択する。次に、選択したノードから根本ノードまで辿る。そして、根本ノード直下にあり、最大位置尤度のノードに行かない他のノードへの枝をカットする。図１３の例では、斜線領域で囲まれた部分がカットされる。カットされた枝については、ＤＢＮとの連携を解除し、そのＤＢＮを削除する。これにより、図１３の例では、０Ｓ０→０Ｓ１の経路がタッチ軌跡として確定される。
【００９４】
本実施形態では、上述した軌跡ツリーの生成方法として、観測センサ等からのデータが入力される度に、新しい位置仮説が生成され、各新しい位置仮説をツリーのノードとして親の位置仮説ノードへ追加することでツリー全体（位置仮説ツリー）を成長させ、軌跡ツリーを生成することができる。また、タッチ移動軌跡の確定方法として、位置仮説尤度、動作仮説尤度、及び親仮説の尤度に基づいて、枝刈を行ってタッチ移動軌跡を確定し、削除された位置仮説に連携した動作仮説を削除する。これにより、データ量を削減できると共に、処理量を削減することができる。
【００９５】
＜ポインタ動作（タッチ、ホバー等）の定義例＞
ここで、ポインタ動作（タッチ、ホバー等）の定義例について、図を用いて具体的に説明する。図１４は、ポインタ動作の定義例を示す図である。なお、定義内容は、図１４に限定されるものではない。例えば、図１４の例は、テーブルトップ６１からのボールポインタ６２の位置において、タッチの高さ範囲と、ホバーの高さ範囲と、その他の高さ範囲とを定義したものである。ボールポインタ６２は、観測データを取得する対象であるポインタデバイスの一例であるが、これに限定されるものではない。
【００９６】
図１４の例において、タッチ高さ範囲は、平均高さｈ０（ボールポインタ６２の直径）から上下に対し所定の範囲（図１４におけるΣｈ）以内とする。また、ホバー高さ範囲は、タッチ高さ範囲（ｈ１）以上、ユーザ６３の目線（ｈ２）より下の範囲とする。また、その他の高さ範囲は、センサ計測限界高さｈ３以内とする。このように、各高さ範囲を予め定義しておき、観測データの結果に基づいて状態を予測することで、ポインタ動作をより適切に把握することができる。
【００９７】
＜観測データとパラメータ（ＣＰＴ）との具体例＞
次に、観測データとパラメータ（ＣＰＴ）との具体例について図を用いて説明する。図１５は、観測データとパラメータとの具体例を示す図である。なお、以下の説明では、観測データを取得する対象のポインタデバイスの一例として、図１５（Ａ）に示すＬＥＤ内蔵のボールポインタ６２について説明するが、本実施形態においてはこれに限定されるものではなく、例えばユーザの指等や他のポインタデバイスでもよい。
【００９８】
ボールポインタ６２は、図１５（Ａ）に示すように、下部にスイッチ（ＳＷ）を有し、上部に発光部の一例としてＬＥＤを有している。ボールポインタ６２は、例えばテーブルトップ６１等の物体に下部が接触することで、ＳＷがＯＮになり、物体と非接触の場合にはＳＷがＯＦＦとなる。上部のＬＥＤは、ＳＷがＯＮのときに所定の色を点灯状態となり、ＳＷがＯＦＦのときに消灯状態となる。ボールポインタ６２は、ユーザが操作する指示部材の先端部に設けられていてもよい。
【００９９】
上述したようなボールポインタ６２を用いることにより、観測データとして、ＬＥＤのＯＮ／ＯＦＦや色情報、ボールポインタ６２の高さ情報を取得することができる。なお、ＬＥＤのＯＮ／ＯＦＦや色情報は、ＲＧＢカメラ２１等により取得することができ、ボールポインタ６２の高さは、深度カメラ２２等により取得することができる。
【０１００】
また、取得したそれぞれの観測データと図１５（Ｂ）に示すパラメータ（ＣＰＴ）とを比較することで、ポインタ候補位置に関する位置仮説から、各動作を反映した位置仮説に関連付ける位置仮説尤度を決定する。なお、図１５（Ｂ）の例では、ＬＥＤの点灯、消灯に対応してタッチ、ホバーの状態を予測するＣＰＴ、高さｈに対応してタッチ、ホバーの状態を予測するＣＰＴ、入力状態（タッチ、ホバー）のＣＰＴがそれぞれ設定されているが、これに限定されるものではない。なお、高さｈのＣＰＴにおけるｈ０〜ｈ２、Σｈは、図１４に示す内容と同様であり、λは制御パラメータの一例である。ＣＰＴ内の数値は、学習して獲得してもよく、経験に基づいて設定してもよい。
【０１０１】
図１６は、タッチＤＢＮ構造とパラメータの一例を示す図である。図１６の例では、時刻ｔ−１（直前）における入力状態（（タッチ）ノード）及び観測ノードと、時刻ｔ（現在）における入力状態（（タッチ）ノード）及び観測ノードとが示されている。また、図１６における観測ノードからの観測データは、例えば上述したボールポインタ６２が有するＬＥＤの点灯、消灯、及びボールポインタ６２の高さであるが、これに限定されるものではない。
【０１０２】
本実施形態では、図１６に示すように、直前と現在の時刻におけるタッチＤＢＮに対応させた入力状態のパラメータ（ＣＰＴ）を設定しておくことで、各時刻における各動作を反映した位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定する。また、位置仮説尤度と動作仮説尤度とに基づいてポインタの入力状態を決定することで、ポインタを用いた入力精度を向上させることができる。
【０１０３】
＜同一センサからの観測データが複数の場合＞
例えば、複数のユーザがそれぞれポインタを移動させた場合、同一センサからの複数の観測データが得られる。本実施形態では、観測データが複数の場合にも、各ポインタ入力の精度を向上させることができる。図１７，図１８は、ポインタが複数の場合の仮説例を示す図（その１，その２）である。
【０１０４】
例えば、図１７（Ａ）に示すように、時刻ｔにおいて同一センサから観測データＡ、Ｂが得られた場合、ポインタ軌跡抽出部１２は、ダミー観測データを１つ増やし、時刻ｔ−１におけるターゲット（ポインタ）に対し、未確定ターゲット（ポインタ）１，２が存在するとみなして、複数の観測データに対し、それぞれ３つの位置仮説ノードの仮説を割り当てる。
【０１０５】
次に、ポインタ軌跡抽出部１２は、図１７（Ａ）に示す位置仮説ノードの割り当て仮説Ｓｔ，１〜Ｓｔ，９に対し、図１７（Ｂ）に示すように予め設定された割り当て仮説表を用いて、各割り当て仮説Ｓｔ，１〜Ｓｔ，９の尤もらしさを計算する。図１７（Ｂ）の例では、位置仮説ノードＳｔ，１〜Ｓｔ，３については、所定の運動モデル（例えば、等速運動モデル）に基づく計算を行い、位置仮説ノードＳｔ，４〜Ｓｔ，９については、予め設定された定数を用いて仮説の尤もらしさを求めているが、これに限定されるものではない。
【０１０６】
また、ポインタ軌跡抽出部１２は、図１７（Ｂ）に示す割り当て仮説表の仮説の尤もらしさｐ（Ｓｔ，１）〜ｐ（Ｓｔ，９）を図１８に示すような行列に変換する。図１８に示す行列では、例えば「ターゲット」、「未確定ターゲット１」、及び「未確定ターゲット２」と、「観測データＡ」、「観測データＢ」、「ダミー観測（誤警報）」、及び「ダミー観測」とからなる行列が示されている。ダミー観測（誤警報）とは、例えばターゲットではないノイズ等から発生した観測データ（信号）を示し、ダミー観測とは、例えばターゲットが観測できなかった場合に割り当てた観測データ（信号）を示す。
【０１０７】
ポインタ軌跡抽出部１２は、この変換した行列から、仮説の尤もらしさの和が最大である組み合わせを選択する。ただし、組み合わせは、行と列の対応付けが１対１である条件下で行うのが好ましい。例えば、図１８の例では、「ターゲット」に含まれる仮説の尤もらしさｐ（Ｓｔ，１）〜ｐ（Ｓｔ，３）の中から選択した１つと、「未確定ターゲット１」に含まれる仮説の尤もらしさｐ（Ｓｔ，４）〜ｐ（Ｓｔ，６）の中から選択した１つとの和を計算する。また、例えば「ターゲット」に含まれる仮説の尤もらしさｐ（Ｓｔ，１）〜ｐ（Ｓｔ，３）の中から選択した１つと、「未確定ターゲット２」に含まれる仮説の尤もらしさｐ（Ｓｔ，７）〜ｐ（Ｓｔ，９）の中から選択した１つとの和を計算してもよい。また、例えば「未確定ターゲット１」に含まれる仮説の尤もらしさｐ（Ｓｔ，４）〜ｐ（Ｓｔ，６）の中から選択した１つと、「未確定ターゲット２」に含まれる仮説の尤もらしさｐ（Ｓｔ，７）〜ｐ（Ｓｔ，９）の中から選択した１つとの和を計算してもよい。なお、本実施形態では、予め設定された組み合わせの計算のみを行って、その和が最大となる組み合わせを選択してもよい。
【０１０８】
また、選択された組み合わせに対応付けて、ポインタ（ターゲット）軌跡を更新し、上述したような処理を各時刻で行うことで、観測データが複数ある場合にも各ポインタ軌跡を適切に抽出することができ、動作認識の精度を向上させることができる。
【０１０９】
上述したように、本実施形態によれば、ポインタを用いた入力精度を向上させることができる。例えば、本実施形態では、複数ポインタの同時追跡を目的とした追跡アルゴリズム（ＭＨＴ）を、ポインタ動作を確率的に認識するＤＢＮと連携させることで、ＭＨＴのデータ関連付け段階で生成した仮説の尤もらしさを、位置仮説及び動作仮説の２種類の仮説で評価する。また、本実施形態では、位置仮説と動作仮説で評価した尤もらしさに基づいて仮説の枝刈（例えば、選択と削除等）を行い、移動軌跡を確定する。
【０１１０】
また、本実施形態では、位置仮説と動作仮説とを用いてポインタの位置精度を向上させる。例えば、センサの観測データと前時刻でのポインタ候補位置との関連付けによって位置仮説を生成する。仮説位置上にあるポインタがどのように動作しているかを仮定した仮説を、位置仮説と連携させる。
【０１１１】
また、タッチ移動軌跡の延長の終了仮説を行う。また、仮説尤度の計算として、新しい位置仮説ノードが追加される度に、事前に設定したポインタの運動モデル（例えば、等速運動モデル）に基づいて位置仮説尤度（位置尤度）を計算する。この尤度は、各位置仮説に関連付けられたＤＢＮに基づいて計算した動作仮説尤度、親仮説の尤度によって更新されることで、センシティブな閾値処理等は不要となる。また、遅延がなく、複数のタッチ軌跡を同時に抽出できる。
【０１１２】
また、本実施形態では、ポインタのタッチ動作認識と、ポインタ追跡手法とを連携させることで、例えばタッチ動作を認識する基準の個別設定を不要にし、ユーザ等によるチューニング作業を削減することができる。また、上述した本実施形態では、入力状態として、タッチ状態又はホバー状態であるかを決定するが、入力状態の種類については、これに限定されるものではない。
【０１１３】
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、上述した各実施例の一部又は全部を組み合わせることも可能である。
【０１１４】
なお、以上の実施例に関し、更に以下の付記を開示する。
（付記１）
情報処理装置が、
対象物の位置及び動作を測定して位置情報及び動作情報を取得し、
取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、
取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、
各動作を反映した前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、
決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する、ことを特徴とする入力制御方法。
（付記２）
前記対象物の候補位置に関する前記位置仮説の生成は、
複数の前記対象物の同時追跡に対応する追跡アルゴリズムを用いることを特徴とする付記１に記載の入力制御方法。
（付記３）
前記対象物の候補動作に関する前記動作仮説の生成は、
ベイジアンネットワークを用いることを特徴とする付記１又は２に記載の入力制御方法。
（付記４）
前記位置仮説が生成される度に、新しい位置仮説をツリーのノードとして直前の位置仮説ノードへ追加することでツリーを生成し、
生成した前記ツリーを用いて前記対象物を用いた入力状態を確定することを特徴とする付記１乃至３の何れか１項に記載の入力制御方法。
（付記５）
前記位置仮説が前記ノードが追加される度に、予め設定された前記対象物の運動モデルを用いて前記位置仮説尤度を取得することを特徴とする付記４に記載の入力制御方法。
（付記６）
予め複数のタイプを有する前記位置仮説に対して、各タイプに対応する前記ベイジアンネットワークを用いて、前記動作仮説尤度を取得することを特徴とする付記３に記載の入力制御方法。
（付記７）
前記ツリーを所定の階層毎に、前記位置仮説尤度に基づいて枝刈を行うことを特徴とする付記４に記載の入力制御方法。
（付記８）
前記対象物の入力状態は、所定の位置へのタッチ状態又はホバー状態を含むことを特徴とする付記１乃至５の何れか１項に記載の入力制御方法。
（付記９）
対象物の位置及び動作を測定して位置情報及び動作情報を取得し、
取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、
取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、
各動作を反映した前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、
決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する、処理をコンピュータに実行させる入力制御プログラム。
（付記１０）
対象物の位置及び動作を測定して位置情報及び動作情報を取得し、取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、各動作を反映した前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する軌跡抽出部と、
前記軌跡抽出部により抽出された情報から動作の認識を行う動作認識部とを有する情報処理装置。
【符号の説明】
【０１１５】
１０  情報処理装置
１１  データ取得部
１２  ポインタ軌跡抽出部
１３  動作認識部
１４  アプリ実行部
１５  通信部
１６  出力部
１７  制御部
１８  記憶部
２０  観測部
２１  ＲＧＢカメラ
２２  深度カメラ
３０  プロジェクタ
４１  入力装置
４２  出力装置
４３  ドライブ装置
４４  補助記憶装置
４５  主記憶装置
４６  ＣＰＵ
４７  ネットワーク接続装置
４８  記録媒体
５０，６１  テーブルトップ
５１  アイコン
５２，６３  ユーザ
５３  指示部材
５４  ポインタ
６２  ボールポインタ
【図１】
0006402611.tif 000002
【図２】
0006402611.tif 000003
【図３】
0006402611.tif 000004
【図４】
0006402611.tif 000005
【図５】
0006402611.tif 000006
【図６】
0006402611.tif 000007
【図７】
0006402611.tif 000008
【図８】
0006402611.tif 000009
【図９】
0006402611.tif 000010
【図１０】
0006402611.tif 000011
【図１１】
0006402611.tif 000012
【図１２】
0006402611.tif 000013
【図１３】
0006402611.tif 000014
【図１４】
0006402611.tif 000015
【図１５】
0006402611.tif 000016
【図１６】
0006402611.tif 000017
【図１７】
0006402611.tif 000018
【図１８】
0006402611.tif 000019