JP6402611B2 - 入力制御方法、入力制御プログラム、及び情報処理装置 - Google Patents

入力制御方法、入力制御プログラム、及び情報処理装置 Download PDF

Info

Publication number
JP6402611B2
JP6402611B2 JP2014246238A JP2014246238A JP6402611B2 JP 6402611 B2 JP6402611 B2 JP 6402611B2 JP 2014246238 A JP2014246238 A JP 2014246238A JP 2014246238 A JP2014246238 A JP 2014246238A JP 6402611 B2 JP6402611 B2 JP 6402611B2
Authority
JP
Japan
Prior art keywords
hypothesis
likelihood
motion
pointer
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014246238A
Other languages
English (en)
Other versions
JP2016110333A (ja
Inventor
彬 陳
彬 陳
賀彦 村川
賀彦 村川
安川 裕介
裕介 安川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014246238A priority Critical patent/JP6402611B2/ja
Priority to US14/953,988 priority patent/US9921689B2/en
Publication of JP2016110333A publication Critical patent/JP2016110333A/ja
Application granted granted Critical
Publication of JP6402611B2 publication Critical patent/JP6402611B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/042Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
    • G06F3/0425Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/143Sensing or illuminating at different wavelengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/255Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/22Character recognition characterised by the type of writing
    • G06V30/228Character recognition characterised by the type of writing of three-dimensional handwriting, e.g. writing in the air
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、入力制御方法、入力制御プログラム、及び情報処理装置に関する。
例えば、実空間内に存在するテーブルや壁等の表面に対し、ユーザが指やポインタデバイス等を用いてタッチしたポインタの位置やタッチしながら移動する際の移動軌跡動作等をカメラ等から認識する手法がある。従来では、上述したポインタのタッチ動作やタッチ位置の追跡をそれぞれ別の処理モジュールで分離して行っている。
例えばユーザが指示したポインタのタッチ動作の認識としては、例えばDynamic Bayesian Networks(DBN)を利用したタッチ認識手法がある。DBNは、複数種類のセンサデータを複合して状態を推定するための方法である。また、タッチ位置を追跡する手法としては、例えばMultiple Hypothesis Tracking(MHT)を利用した追跡手法がある。MHTは、複数のポインタが交差したり、観測データが欠損したりする場合でも、ロバストな追跡を行える。
特表2012−515966号公報 特表2013−541088号公報 特表2014−504773号公報
しかしながら、従来手法では、タッチ動作の判別基準の設定が各ユーザの経験則やチューニング作業に依存してしまう。また、上述したように、ポインタのタッチ動作やタッチ位置の追跡を分離して行っているため、例えばポインタの位置がタッチ面から離れる状態(以下、必要に応じて「ホバー状態」という)の抽出や、ポインタの軌跡が交差したりする複数のポインタを同時に抽出することができず、ポインタ等の対象物(ターゲット)の入力状態を適切に認識できることができない。
一つの側面では、本発明は、ポインタ等の対象物を用いた入力精度を向上させることを目的とする。
一つの態様では、入力制御方法は、情報処理装置が、対象物の位置及び動作を測定して位置情報及び動作情報を取得し、取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、各動作を反映した前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する。
一つの側面として、対象物を用いた入力精度を向上させることができる。
情報処理装置の機能構成の一例を示す図である。 ハードウェア構成の一例を示す図である。 入力制御処理の一例を示すフローチャートである。 入力制御処理の概要を説明するための図である。 ポインタ軌跡抽出部における単純BNを説明するための図である。 DBNの概略構成例を示す図である。 MHTの初期化の一例を示す図である。 位置仮説ノードの追加例を示す図である。 タッチ動作尤度p(=1)の計算例を示す図である。 タッチ動作尤度p(=1)の計算例を示す図である。 ホバー動作尤度p(=0)の計算例を示す図である。 軌跡ツリーの生成例を示す図である。 軌跡ツリーの枝刈例を示す図である。 ポインタ動作の定義例を示す図である。 観測データとパラメータとの具体例を示す図である。 タッチDBN構造とパラメータの一例を示す図である。 ポインタが複数の場合の仮説例を示す図(その1)である。 ポインタが複数の場合の仮説例を示す図(その2)である。
以下、図面に基づいて実施形態を説明する。
<情報処理装置の機能構成例>
図1は、情報処理装置の機能構成の一例を示す図である。図1に示す情報処理装置10は、データ取得部11と、ポインタ軌跡抽出部(軌跡抽出部)12と、動作認識部13と、アプリ実行部14と、通信部15と、出力部16と、制御部17と、記憶部18とを有する。図1に示す情報処理装置10は、観測部20及びプロジェクタ30とに接続されている。
データ取得部11は、ポインタ等の対象物(ターゲット、オブジェクト)の位置や高さ、実空間上の所定の場所(テーブルや壁)のタッチの有無等のデータを取得する。対象物とは、例えばユーザの指先やタッチペン等の指示部材の先端部、ライトペン等のレーザーポインタから発光されたレーザの受光点(指示点)等であるが、これに限定されるものではない。
データ取得部11は、例えば情報処理装置10とは別体に設けられた観測部20等により得られる少なくとも1つの観測データ等を取得する。観測データとは、観測部20から得られるポインタ位置(ポインタ候補位置)、高さ、所定の面(例えば、テーブルの上面や壁)等をタッチしたか否かを判断するための情報等であるが、これに限定されるものではない。
ここで、図1に示す観測部20は、RGBカメラ21と、深度カメラ22とを有するが、これに限定されるものではなく、他のセンサを設けてもよい。RGBカメラ21は、例えばCharge Coupled Device(CCD)やComplementary Metal Oxide Semiconductor(CMOS)等のセンサ及びRGB各色のフィルタを備えたデジタルカメラである。RGBカメラ21は、所定時間間隔毎の画像フレームを有する映像等を取得する。データ取得部11は、RGBカメラ21から得られる観測データから、例えばポインタの位置(ポインタ候補位置)や、ポインタがある物体にタッチしたときに点灯する発光部(例えば、Light Emitting Diode(LED)等)の点灯の有無等を取得する。
深度カメラ22は、例えば赤外線等の光を用いて奥行き検出を行う。例えば、深度カメラ22は、発光部から照射された光に対する物体の反射光を受光することによって、各画素の深度値を有する反射光情報を取得する。データ取得部11は、深度カメラ22から得られる観測データからポインタの高さ等を取得する。
なお、観測部20に含まれるカメラの種類は、これらに限定されるものではなく、他の1又は複数のセンサ(観測センサ)等を有してもよい。例えば、観測部20は、RGBカメラ21と超音波センサとの組み合わせでもよく、深度カメラ22とモノクロカメラとの組み合わせでもよく、超音波センサとモノクロカメラとの組み合わせでもよく、上述した全ての組み合わせでもよい。
また、観測部20は、出力部16からプロジェクタ30等の表示部によりテーブルトップ(テーブル上面)や壁に投影されたアイコンやマーク等の画像と共に、ポインタの位置や高さ、タッチの有無を観測(以下、「タッチ観測」という)してもよい。これにより、情報処理装置10は、例えばアイコン等の画像とその画像へのタッチの有無との関係から動作認識部13により動作を認識し、その動作(例えば、アイコンのタッチ、フリック等)に対応する処理を実行することができる。また、観測部20及びプロジェクタ30の少なくとも1つは、情報処理装置10と一体に構成されていてもよい。
ポインタ軌跡抽出部12は、データ取得部11により得られる各情報に基づいて、各時刻におけるポインタの位置をセンシング(測定)してポインタの位置や高さ等の位置情報を取得する。また、ポインタ軌跡抽出部12は、ポインタの動作をセンシング(測定)して動作情報を取得する。また、ポインタ軌跡抽出部12は、取得した位置情報に基づいて各時刻におけるポインタの候補位置に関する位置仮説を生成したり、取得した動作情報に基づいて各位置仮説における動作を反映した動作仮説を生成する。また、ポインタ軌跡抽出部12は、各動作を反映した位置仮説に関連付ける位置仮説尤度(位置尤度)及び動作仮説尤度(動作尤度)を決定し、位置仮説尤度と、動作仮説尤度とに基づいてポインタの入力状態(ポインタ軌跡等)を決定(抽出)する。
例えば、ポインタ軌跡抽出部12は、各時刻での位置仮説をツリー(軌跡ツリー)で管理してもよい。ポインタ軌跡抽出部12は、位置仮説が生成される度に、新しい位置仮説をツリーのノードとして直前の位置仮説ノードへ追加することでツリーを生成する。この生成したツリーを用いて、例えばポインタの軌跡等の入力状態を確定することができる。また、ポインタ軌跡抽出部12は、位置仮説尤度と動作仮説尤度とを統合した仮説尤度に基づいてツリーの枝刈(選択と削除)を行い、ポインタの入力状態を決定してもよい。ポインタの入力状態とは、例えばタッチ状態でもよく、ホバー状態でもよい。タッチ状態とは、例えばユーザの指先、又は指示部材の先端部が所定の場所(面)をタッチしていると判断した状態である。ホバー状態とは、例えば所定の場所をタッチすることなく、タッチ面上方の所定の高さ範囲にポインタがある状態である。
例えば、ポインタ軌跡抽出部12は、ポインタの候補位置に関する位置仮説を、複数ポインタの同時追跡を目的とした追跡アルゴリズム(MHT)を用いて抽出してもよい。また、ポインタ軌跡抽出部12は、ポインタの候補動作に関する動作仮説を、タッチ認識(DBN)を用いて抽出してもよい。
動作認識部13は、ポインタ軌跡抽出部12により抽出された各時刻におけるポインタ位置や高さ、軌跡(追跡結果)、タッチの有無に基づいて、ユーザが指示した動作内容等を認識する。動作内容としては、例えばタッチ、ドラッグ、フリック、長押し等であるが、これに限定されるものではない。
アプリ実行部14は、記憶部18に記憶された1又は複数のアプリケーション18−1(以下、「アプリ18−1」と略称する)から選択されたアプリに関連付けられた処理を実行する。例えば、アプリ実行部14は、動作認識部13により認識された動作(例えば、ユーザ指示等)に基づいて、アプリ18−1を選択し、選択したアプリ18−1毎に、対応する動作を実行する。アプリの実行とは、例えばアプリの起動、終了、出力部16による出力(例えば、プロジェクタ30による投影表示等)、画面遷移、拡大、縮小、文字入力、編集、削除等であるが、これに限定されるものではない。
通信部15は、例えばインターネットやLocal Area Network(LAN)等に代表される通信ネットワークを介して接続されるサーバ等の外部装置とのデータの送受信を行う。通信ネットワークは、有線でも無線でもよく、これらの組み合わせでもよい。
出力部16は、アプリ18−1による所定の処理内容や各種データをプロジェクタ30等の表示部に出力する。なお、出力部16から出力される各種データ等の出力先は、プロジェクタ30に限定されるものではなく、通信部15を介して接続された他の外部装置等に出力してもよい。
制御部17は、情報処理装置10に含まれる各構成部を制御する。例えば、制御部17は、データ取得部11による観測データの取得、ポインタ軌跡抽出部12によるポインタの位置、高さ、軌跡等の抽出、動作認識部13によるポインタ動作の認識等を制御する。また、制御部17は、アプリ実行部14によるアプリ18−1の実行、通信部15によるデータの送受信、出力部16によるプロジェクタ30等へのデータ出力等を制御する。
制御部17による制御内容は、これに限定されるものではなく、例えば本実施形態における入力制御処理の開始や終了、エラー処理等を制御してもよい。また、制御部17は、例えば観測部20やプロジェクタ30等の制御を行ってもよい。
記憶部18は、本実施形態における入力制御処理において、必要な各種情報を読み出したり、書き込んだりする。記憶部18は、例えばアプリ実行部14により実行される1又は複数のアプリ18−1が記憶される。これらのアプリ18−1は、通信部15から通信ネットワーク等を介して接続された外部装置等から、ダウンロード等により取得することができ、情報処理装置10にインストールすることで、使用することができる。なお、記憶部18に記憶される情報としては、これに限定されるものではなく、例えば後述するConditional Probability Table(CPT、条件付確率表)等を記憶してもよい。また、記憶部18は、情報処理装置10を使用するユーザ情報、ポインタ入力エラー時に表示する表示メッセージ、入力情報のログ等を記憶してもよい。
情報処理装置10は、例えばPersonal Computer(PC)やサーバ等でもよく、スマートフォンや、タブレット端末等でもよい。
<ハードウェア構成例>
次に、情報処理装置10等のコンピュータのハードウェア構成例について、図を用いて説明する。図2は、ハードウェア構成の一例を示す図である。図2の例において、情報処理装置10は、入力装置41と、出力装置42と、ドライブ装置43と、補助記憶装置44と、主記憶装置45と、Central Processing Unit(CPU)46と、ネットワーク接続装置47とを有し、これらはシステムバスBで相互に接続されている。
入力装置41は、ユーザ等が操作するキーボード及びマウス等のポインティングデバイスやマイクロフォン等の音声入力デバイスを有しており、ユーザ等からのプログラムの実行指示、各種操作情報、ソフトウェア等を起動するための情報等の入力を受け付ける。また、入力装置41は、上述したデータ取得部11として観測部20等からの観測データを取得してもよい。
出力装置42は、本実施形態における処理を行うためのコンピュータ本体(情報処理装置10)を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイ等を有する。出力装置42は、CPU47が有する制御プログラムによりプログラムの実行経過や結果等を表示することができる。また、出力装置42は、上述した出力部16として、プロジェクタ30等の表示部を用いてデータを出力してもよい。
ドライブ装置43は、記録媒体48等に記録されている各種データを読み出したり、各種データを記録媒体48に書き込む。ここで、本実施形態において、例えば情報処理装置10等のコンピュータ本体にインストールされる実行プログラムは、記録媒体48等により提供される。記録媒体48は、ドライブ装置43にセット可能である。CPU47からの制御信号に基づき、記録媒体48に格納された実行プログラムが、記録媒体48からドライブ装置43を介して補助記憶装置44にインストールされる。
補助記憶装置44は、例えばHard Disk Drive(HDD)やSolid State Drive(SSD)等のストレージ手段等である。補助記憶装置44は、CPU47からの制御信号に基づき、本実施形態における実行プログラム(入力制御プログラム)や、コンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行う。補助記憶装置44は、CPU47からの制御信号等に基づいて、記憶された各情報から必要な情報を読み出したり、書き込むことができる。
主記憶装置45は、CPU47により補助記憶装置44から読み出された実行プログラム等を格納する。主記憶装置45は、Read Only Memory(ROM)やRandom Access Memory(RAM)等である。
CPU47は、Operating System(OS)等の制御プログラム、及び主記憶装置45に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して各処理を実現する。プログラムの実行中に必要な各種情報等は、補助記憶装置44から取得することができ、また実行結果等を格納することもできる。
例えば、CPU47は、入力装置41から得られるプログラムの実行指示等に基づき、補助記憶装置44にインストールされたプログラムを実行させることにより、主記憶装置45上でプログラムに対応する処理を行う。例えば、CPU47は、入力制御プログラムを実行させることで、上述したデータ取得部11における観測データ等の取得や、ポインタ軌跡抽出部12によるポインタの位置、高さ、軌跡等の抽出、動作認識部13による動作認識等の処理を行う。また、CPU47は、入力制御プログラムを実行させることで、アプリ実行部14によるアプリ18−1の実行、通信部15によるデータの送受信、出力部16によるプロジェクタ30等へのデータ出力等の処理を行う。CPU47における処理内容は、上述した内容に限定されるものではない。CPU47により実行された内容は、必要に応じて補助記憶装置44等に記憶される。
ネットワーク接続装置47は、例えばインターネットやLAN等の通信ネットワークを介して、他の外部装置との通信を行う。ネットワーク接続装置47は、CPU47からの制御信号に基づき、通信ネットワーク等と接続することにより、実行プログラムやソフトウェア、設定情報等を外部装置等から取得する。また、ネットワーク接続装置47は、プログラムを実行することで得られた実行結果を外部装置等に提供したり、本実施形態における実行プログラム自体を外部装置等に提供してもよい。
記録媒体48は、上述したように実行プログラム等が格納されたコンピュータで読み取り可能な記録媒体である。記録媒体48は、例えばフラッシュメモリ等の半導体メモリやCD−ROM、DVD等の可搬型の記録媒体であるが、これに限定されるものではない。
図2に示すハードウェア構成に実行プログラム(例えば、入力制御プログラム等)をインストールすることで、ハードウェア資源とソフトウェアとが協働して本実施形態における入力制御処理等を実現することができる。
<入力制御処理例について>
次に、上述した情報処理装置10における入力制御処理の一例についてフローチャートを用いて説明する。図3は、入力制御処理の一例を示すフローチャートである。
図3の例において、データ取得部11は、観測部20により所定時刻毎に少なくとも1つの観測データを取得する(S01)。S01の処理では、例えばLED等の点灯しているか否かの観測データやポインタの位置情報(ポインタ候補位置)や高さ情報等の観測データを取得するが、種類や数については、これに限定されるものではない。S01の処理により、ポインタの位置及び動作をセンシングして位置情報及び動作情報を取得する。
次に、ポインタ軌跡抽出部12は、ポインタの軌跡情報(追跡情報)の一例である軌跡ツリーが初期化済みであるか否かを判断する(S02)。軌跡ツリーとは、例えば予め設定された所定時刻毎のポインタ候補位置に関する位置仮説を生成し、生成した位置仮説を追跡してツリー状で管理したものである。軌跡ツリーが初期化済みでない場合(S02において、NO)、ポインタ軌跡抽出部12は、軌跡ツリーの初期化を行い(S03)、S01の処理に戻る。
また、観測データが初期化済みの場合(S02において、YES)、ポインタ軌跡抽出部12は、S01で取得した観測データと前時刻でのポインタ候補位置との関連付けを行う(S04)。次に、ポインタ軌跡抽出部12は、各時刻におけるポインタ候補位置に関する位置仮説を生成して位置仮説ノードを追加し(S05)、位置尤度を計算する(S06)。S05、S06の処理において、ポインタ候補位置に関する位置仮説は、例えば複数ポインタの同時追跡を目的とした追跡アルゴリズム(MHT)を用いて行うことができるが、これに限定されるものではない。また、S05、S06の処理では、例えば新しい位置仮説ノードが追加される度に、予め設定されたポインタの運動モデルに基づいて位置尤度を計算する。
次に、ポインタ軌跡抽出部12は、タッチ認識(Bayesian Networks(BN))と連携を行い(S07)、動作尤度を計算する(S08)。S07の処理では、ポインタ候補動作に関する動作仮説を、例えば動的ベイジアンネットワーク(DBN)を用いて行うが、これに限定されるものではない。
次に、ポインタ軌跡抽出部12は、各動作を反映させて位置仮説尤度を更新して軌跡ツリーを生成する(S09)。S09の処理では、例えば各位置仮説に連携したDBNに基づいて計算した動作仮説尤度やツリーの親仮説の尤度によって位置仮説尤度を更新することができる。
次に、ポインタ軌跡抽出部12は、S04の処理における関連付けが完了したか否かを判断する(S10)。関連付けが完了していない場合(S10において、NO)、ポインタ軌跡抽出部12は、S04の処理に戻る。また、関連付けが完了した場合(S10において、YES)、ポインタ軌跡抽出部12は、ここまでに生成された軌跡ツリーに含まれる各ノードの位置尤度等に基づいて、不要なノードの枝刈を行い(S11)、最終的なポインタの軌跡を確定する(S12)。
次に、動作認識部13は、S12の処理により得られるポインタの軌跡の内容に対応する動作を認識する(S13)。S13の処理では、認識結果の動作に応じたアプリを実行する等の処理を行ってもよいが、これに限定されるものではない。
ここで、制御部17は、処理を終了するか否かを判断し(S14)、処理を終了しない場合(S14において、NO)、S01の処理に戻る。また、S14の処理において、ユーザの指示等により処理を終了する場合(S14において、YES)、入力制御処理を終了する。
<入力制御処理の概要>
次に、上述した入力制御処理の概要について説明する。図4は、入力制御処理の概要を説明するための図である。図4(A)は、ユーザが行う入力動作の概要を示し、図4(B)は、入力動作によるポインタ軌跡を示している。
図4(A)の例では、情報処理装置10と、観測部20と、プロジェクタ30とを有する。図4(A)に示すように、テーブルトップ50にプロジェクタ30から所定のアイコン51−1,51−2等の各種画像データが投影されている。
例えば、実世界インタラクションの分野では、1又は複数のユーザ52が指示部材53−1,53−2等を用いて、その先端部にあるポインタ54−1,54−2を移動させ、そのポインタの位置や動作等で情報世界とのインタラクションを行っている。ここで、位置や動作とは、例えばタッチ、ドラッグ、フリック、長押し等の各状態であるが、これに限定されるものではない。このような場合に、観測部20を用いてユーザ52が操作するポインタ54−1,54−2の位置や軌跡を追跡して各ポインタによる入力状態を決定することで、例えば作業現場等における情報の入出力や複数人による同時使用が可能となる。
しかしながら、観測部20により得られた情報から入力状態等を判断する場合には、観測部20によるカメラ精度やセンサ精度の影響により、状態判断が難しい。例えば、RGBカメラ21により撮影された映像のみから、図4(B)の例に示すようなフリック方向へのタッチ移動軌跡において、テーブルトップ50からの高さに応じて、所定の高さ以上のポインタ54の入力状態をホバー状態と認識するのは難しく、ポインタ54の入力状態をロスト(欠損)しやすくなる。
そこで、本実施形態では、図4(B)に示すような状態になっても、ポインタ54の位置やジェスチャを認識する際に、テーブルトップ50にタッチしているポインタ54の軌跡を、より適切に抽出することで、ポインタ54の位置の入力精度を向上させる。例えば、本実施形態では、ポインタ54の位置や軌跡を認識するために、タッチ時のポインタ54をロストせず、ホバー時のポインタ54に引っ張られず、確実にタッチ移動軌跡を抽出するため、上述したMHT等によるポインタ追跡の処理結果とDBNによるタッチ認識の処理結果とを連携させる。
本実施形態では、所定時間間隔で撮影されるカメラの映像から各時刻でのポインタ候補位置に関する位置仮説を生成し、生成した各位置仮説を軌跡ツリーで管理する。また、本実施形態では、例えば各位置仮説が自己と連携している動作仮説の尤度で自己の尤度を更新し、位置仮説尤度と動作仮説尤度を統合した仮説尤度に基づいてタッチ軌跡を確定する。なお、タッチ軌跡を確定する場合、上述した軌跡ツリーを所定のタイミング(例えば、3階層毎等)で枝刈処理することで、データ容量を削減させることができ、処理量も削減することができる。
<ポインタ軌跡抽出部12におけるベイジアンネットワーク(BN)について>
ここで、ポインタ軌跡抽出部12におけるタッチ認識を用いられるBNについて図を用いて説明する。図5は、ポインタ軌跡抽出部における単純BNを説明するための図である。図5の例では、入力状態が「因」、各センサの観測データは「果」とし、「因」からどれくらい確率で「果」が発生するのかを示すConditional Probability Table(CPT、条件付確率表)を予め設定しておく。ポインタ軌跡抽出部12は、「果」が発生した時に、「因」をCPTに基づいて、確率的に推定する。
ベイジアンネットワーク(BN)は、例えば事象をノードとし、各事象間の因果関係を矢印で表したものである。パラメータ(CPT)は、例えば矢印の元の事象が発生した時に、矢印先の事象がどのくらい確率で起きるのかを示すデータである。CPTを用いることで、矢印の先の事象が発生した時に、矢印の元の事象が起きた確率を推定することができる。
また、推定確率は、矢印方向に向かって次々と先へ伝搬する。そのため、本実施形態では、動的ベイジアンネットワーク(DBN)を用いることで、時刻間のノードをリンクすることで、推定結果を時間軸上に伝搬できるようにする。
例えば、図5(A)に示すように、ポインタの入力状態xに対して1又は複数の観測センサ(観測部20)からの観測データがy1,2,・・・のように設定されている。なお、図5(A)の例において、入力状態xの変数は2値とし、一例として「1」をタッチ、「0」をホバーとするが、これに限定されるものではない。また、観測データy1,2,・・・の出力例としては、例えばポインタ54に設けられたLEDが入力状態時に点灯する状態を観測したり、ポインタの高さが一定値以上にある状態を観測し、その結果に応じてタッチかホバーかの観測の予測を出力する等があるが、これに限定されるものではない。
また、各観測センサにおけるCPTは、図5(B)に示すように設定することができる。図5(B)の例では、入力状態xとタッチ観測データy1,2,・・・におけるそれぞれのCPTが設定されている。なお、設定内容については、図5(B)の例に限定されるものではない。また、位置仮説尤度は、例えばそれぞれのタッチ観測センサの結果からp(x|y1,2,・・・)=ηp(y|x)p(y|x)・・・p(y|x)で求めることができる。ただし、ηは、所定の制御パラメータの一例である。
また、図5に示す単純BNに対し、本実施形態では2種類のDBNを構成することができる。図6は、DBNの概略構成例を示す図である。図6(A)に示すDBNの第1の構成例(以下、必要に応じて「DBN1」という)では、隣接時刻間における入力状態のノード同士をリンクする(xt−1→x)。DBN1では、例えば現時刻での実観測データに基づいてタッチを推定するものであり、タッチを観測するセンサの実データ(以下、必要に応じて「観測ノード」という)(y1,t,y2,t,・・・,yN,t)がある場合に使用される。
図6(B)に示すDBNの第2の構成例(以下、必要に応じて「DBN2」という)では、隣接時刻間の入力状態ノード同士、及びセンサ観測ノード同士をリンクする。
DBN2は、例えば1時刻前のDBNと同じ観測データに基づいてタッチを推定するものであり、タッチを観測するセンサの実データ(y1,t,y2,t,・・・,yN,t)がない場合に使用される。
<MHTとDBNとの連携>
本実施形態では、MHTとDBNと処理結果を連携することにより、ポインタの入力精度を向上させる。連携する場合には、まず上述した図3のS03の処理に示すようにMHTの初期化を行う。
図7は、MHTの初期化の一例を示す図である。MHTの初期化では、時刻t=0の時にセンサで計測したポインタ位置を初期化()し、MHTの根本ノードを生成する。なお、以下の説明では、便宜上、例えば観測データが1つの場合について説明するが、複数の場合には、同様の連携が観測データの数だけ行われる。
MHTの初期化では、例えば図7に示すように、タッチ観測センサデータから得られる単純BNの実体とMHTのルートノードとの連携を行い、入力状態、タッチ観測センサ1,02,0、・・・、N,0を生成する。つまり、単純BNととの連携により、内に単純BNが生成される。その後、位置仮説ノードの追加による軌跡ツリーを生成する。
<MHT:位置仮説ノードの追加例>
次に、MHTによる位置仮説ノードの追加例について図を用いて説明する。図8は、位置仮説ノードの追加例を示す図である。
MHTでは、例えばセンサ等から得られた観測データが、ポインタ等の対象物(ターゲット)由来であるか、ノイズであるか、別のポインタ由来であるかの曖昧さを解決する。例えば、時刻t−1におけるターゲットの位置に対して、時刻tにおける観測データがターゲット由来と仮定した場合には、ターゲット位置を観測データから更新する。また、仮に観測データがノイズと仮定した場合には、ターゲット位置を予測により更新する。つまり、上述した仮説(仮の割り当て)によって時刻tにおける位置仮説ノードを生成し、時刻t+1以降も同様に仮の割り当てを行うことで、ターゲット位置を更新し、軌跡ツリーを成長させる。また、各時刻で生成した位置仮説を軌跡ツリーで管理する。例えば、ターゲットの運動モデル(例えば、等速運動モデル等)に基づいて、位置仮説に基づいてターゲット位置を更新したり、各位置仮説尤度(位置尤度)を計算する。また、軌跡ツリーが所定の深さ(階層)になった後、位置尤度最大のノードから根本ノードに辿って、そのノードに行かない枝をカットする(枝刈処理)。これにより、この枝刈によって、仮の割り当てを確定する。
例えば、本実施形態では、予め複数のタイプを有する位置仮説ノードに対して、各タイプに対応するDBNを用いて、動作仮説尤度を取得する。例えば、ある時刻t=1の場合に、「タッチ観測型位置仮説ノード:」、「タッチ予測型位置仮説ノード:」、及び「ホバー予測型位置仮説ノード:」の3つのタイプのMHT位置仮説ノードを、図8(A)に示すように、時刻t=0の場合の親ノードの配下に子ノードとして追加する。
例えば、上述したタッチ観測型位置仮説ノードの場合、位置観測データyが親の由来とみなし、の値を観測データを用いて更新する。また、この位置仮説ノードの位置尤度p()が計算される。位置仮説ノードは、例えば更新した位置及び位置尤度を有する。
例えば、上述したタッチ予測型位置仮説ノードの場合、位置観測データyが親のS由来とみなさず、ただポインタがタッチ状態であるとし、の値をこれまでの移動速度や方向等の運動モデルに基づいて予測のみで更新する。更に、ノードの位置尤度p()が計算される。ノードは、例えば更新した位置及び位置尤度を有する。
例えば、上述したホバー予測型位置仮説ノードの場合、位置観測データyが親のS由来とみなさず、ただポインタがホバー状態であるとし、の値をこれまでの移動速度や方向等の運動モデルに基づいて予測のみで更新する。更に、ノードの位置尤度p()が計算される。ノードは、例えば更新した位置及び位置尤度を有する。
位置仮説ノードとDBNとの連携については、例えば図8(B)に示すような連携となる。例えば、時刻t=1の時に追加した位置仮説ノード()をそれぞれに対応したDBN(例えば、上述したDBN1,DBN2)と連携する。
例えば、タッチ観測型位置仮説ノードは、タッチを推定するために上述した図6(A)に示すDBN1を用いて連携する(図8(B)の(a))。この場合、タッチ動作仮説尤度(タッチ動作尤度)p(=1)を推定する(例えば、図5(A)に示すように、x=1がタッチ状態)。
例えば、タッチ予測型位置仮説ノードは、タッチを推定するために上述した図6(B)に示すDBN2を用いて連携する(図8(B)の(b))。この場合、タッチ動作尤度p(=1)を推定する(例えば、図5(A)に示すように、x=1がタッチ状態)。
例えば、ホバー予測型位置仮説ノードの場合、ホバーを推定する上述した図6(B)に示すDBN2を用いて連携する(図8(B)の(c))。この場合、ホバー動作尤度p(=0)を推定する(例えば、図5(A)に示すように、x=0がホバー状態)。
<タッチ動作尤度p(=1)の計算例>
次に、上述したタッチ動作尤度p(=1)の計算例について、図を用いて説明する。図9は、タッチ動作尤度p(=1)の計算例を示す図である。
タッチ動作尤度p(=1)の計算例では、例えばタッチ観測型位置仮説ノードは、上述したように図6(A)に示すDBN1を用いて連携する。なお、計算時におけるパラメータ1,12,1,・・・,N,1の値は、タッチ観測センサの実測値を使用する。
例えば、タッチ動作尤度p(=1)は、センサ観測尤度、動作遷移確率、及び前回の動作尤度を用いて求めることができ、例えば図9の式(1)に示すように計算することができる(ただし、t=1)。なお、タッチ動作尤度p(=1)の計算例は、式(1)の例に限定されるものではない。
また、タッチ動作尤度p(=1)における更新後の今回の位置尤度は、タッチ動作尤度、今回の位置尤度、及び前回の位置尤度を用いて求めることができ、例えば図9の式(2)に示すような計算を行い、位置尤度を更新する(ただし、t=1)。なお、更新後の今回の位置尤度の計算例は、式(2)の例に限定されるものではない。
<タッチ動作尤度p(=1)の計算例>
次に、上述したタッチ動作尤度p(=1)の計算例について、図を用いて説明する。図10は、タッチ動作尤度p(=1)の計算例を示す図である。
タッチ動作尤度p(=1)の計算例では、タッチ予測型位置仮説ノードは、
上述したように図6(B)に示すDBN2を用いて連携する。なお、計算時におけるパラメータ1,1,・・・,N,1は、前時刻でのデータ1,0,・・・,1,0をコピーして使用する。また、別方式として、これまでに最も頻度の高い観測データを使用してもよい。
例えば、タッチ動作尤度p(=1)は、センサ観測尤度、動作遷移確率、及び前回の動作尤度を用いて求めることができ、例えば図10の式(3)に示すように計算することができる(ただし、t=1)。なお、タッチ動作尤度p(=1)の計算例は、式(3)の例に限定されるものではない。
また、タッチ動作尤度p(=1)における更新後の今回の位置尤度は、タッチ動作尤度、今回の位置尤度、及び前回の位置尤度を用いて求めることができ、例えば図10の式(4)に示すような計算を行い、位置尤度を更新する(ただし、t=1)。なお、更新後の今回の位置尤度の計算例は、式(4)の例に限定されるものではない。
<ホバー動作尤度p(=0)の計算例>
次に、上述したホバー動作尤度p(=0)の計算例について、図を用いて説明する。図11は、ホバー動作尤度p(=0)の計算例を示す図である。
ホバー動作尤度p(=0)の計算例では、ホバー予測型位置仮説ノードは、上述したように図6(B)に示すDBN2を用いて連携する。なお、計算時におけるパラメータ1,1,・・・,N,1は、前時刻でのデータ1,0,・・・,N,0をコピーして使用する。また、別の方式として、これまでに最も頻度の高い観測データを使用してもよい。
例えば、ホバー動作尤度p(=0)は、センサ観測尤度、動作遷移確率、及び前回の動作尤度を用いて求めることができ、例えば図11に示す式(5)に示すように計算することができる(ただし、t=1)。なお、ホバー動作尤度p(=0)の計算例は、式(5)の例に限定されるものではない。
また、ホバー動作尤度p(=0)における更新後の今回の位置尤度は、ホバー動作尤度、今回の位置尤度、及び前回の位置尤度を用いて求めることができ、例えば図11の式(6)に示すような計算を行い、位置尤度を更新する(ただし、t=1)。なお、更新後の今回の位置尤度の計算例は、式(6)の例に限定されるものではない。
なお、上述の例では、時刻t=0からt=1に変わる場合の位置仮説ノードの追加例を示したが、t=2以降についても各時刻毎に位置仮説ノードの追加が行われ、軌跡ツリーが生成される。
<軌跡ツリーの生成例について>
次に、本実施形態における軌跡ツリー(位置仮説ツリー)の生成例について、図を用いて説明する。図12は、軌跡ツリーの生成例を示す図である。なお、軌跡ツリーの生成とは、時刻が1以上となった場合等におけるツリーの生成例を示すものである。
例えば、時刻t>1において、例えば親ノードがタッチ観測型位置仮説ノードt−1である場合、t=1と同様に、上述したように、3つの位置仮説ノード()を追加してから、ポインタ位置を更新し、位置尤度を計算する。また、位置仮説ノード()と連携するそれぞれのDBNに基づいて、動作尤度を計算してから、位置尤度を更新する。
また、時刻t>1において、例えば親ノードがタッチ予測型位置仮説ノードt−1の場合、図12(A)に示すように、上述した3つの位置仮説ノード()を追加する。
また、時刻t>1において、例えば親ノードがホバー予測型位置仮説ノードt−1の場合、図12(B)に示すように、新たな子ノードの追加をしない。
<軌跡ツリーの枝刈(選択と削除)例について>
次に、本実施形態における軌跡ツリーの枝刈(選択と削除)例について、図を用いて説明する。図13は、軌跡ツリーの枝刈例を示す図である。本実施形態における軌跡ツリーの枝刈では、図13に示すようにツリーの深さが所定の階層(3階層)以上になった場合、まず、末端の葉にある最大位置尤度を有するノードを選択する。次に、選択したノードから根本ノードまで辿る。そして、根本ノード直下にあり、最大位置尤度のノードに行かない他のノードへの枝をカットする。図13の例では、斜線領域で囲まれた部分がカットされる。カットされた枝については、DBNとの連携を解除し、そのDBNを削除する。これにより、図13の例では、の経路がタッチ軌跡として確定される。
本実施形態では、上述した軌跡ツリーの生成方法として、観測センサ等からのデータが入力される度に、新しい位置仮説が生成され、各新しい位置仮説をツリーのノードとして親の位置仮説ノードへ追加することでツリー全体(位置仮説ツリー)を成長させ、軌跡ツリーを生成することができる。また、タッチ移動軌跡の確定方法として、位置仮説尤度、動作仮説尤度、及び親仮説の尤度に基づいて、枝刈を行ってタッチ移動軌跡を確定し、削除された位置仮説に連携した動作仮説を削除する。これにより、データ量を削減できると共に、処理量を削減することができる。
<ポインタ動作(タッチ、ホバー等)の定義例>
ここで、ポインタ動作(タッチ、ホバー等)の定義例について、図を用いて具体的に説明する。図14は、ポインタ動作の定義例を示す図である。なお、定義内容は、図14に限定されるものではない。例えば、図14の例は、テーブルトップ61からのボールポインタ62の位置において、タッチの高さ範囲と、ホバーの高さ範囲と、その他の高さ範囲とを定義したものである。ボールポインタ62は、観測データを取得する対象であるポインタデバイスの一例であるが、これに限定されるものではない。
図14の例において、タッチ高さ範囲は、平均高さh(ボールポインタ62の直径)から上下に対し所定の範囲(図14におけるΣ)以内とする。また、ホバー高さ範囲は、タッチ高さ範囲(h)以上、ユーザ63の目線(h)より下の範囲とする。また、その他の高さ範囲は、センサ計測限界高さh以内とする。このように、各高さ範囲を予め定義しておき、観測データの結果に基づいて状態を予測することで、ポインタ動作をより適切に把握することができる。
<観測データとパラメータ(CPT)との具体例>
次に、観測データとパラメータ(CPT)との具体例について図を用いて説明する。図15は、観測データとパラメータとの具体例を示す図である。なお、以下の説明では、観測データを取得する対象のポインタデバイスの一例として、図15(A)に示すLED内蔵のボールポインタ62について説明するが、本実施形態においてはこれに限定されるものではなく、例えばユーザの指等や他のポインタデバイスでもよい。
ボールポインタ62は、図15(A)に示すように、下部にスイッチ(SW)を有し、上部に発光部の一例としてLEDを有している。ボールポインタ62は、例えばテーブルトップ61等の物体に下部が接触することで、SWがONになり、物体と非接触の場合にはSWがOFFとなる。上部のLEDは、SWがONのときに所定の色を点灯状態となり、SWがOFFのときに消灯状態となる。ボールポインタ62は、ユーザが操作する指示部材の先端部に設けられていてもよい。
上述したようなボールポインタ62を用いることにより、観測データとして、LEDのON/OFFや色情報、ボールポインタ62の高さ情報を取得することができる。なお、LEDのON/OFFや色情報は、RGBカメラ21等により取得することができ、ボールポインタ62の高さは、深度カメラ22等により取得することができる。
また、取得したそれぞれの観測データと図15(B)に示すパラメータ(CPT)とを比較することで、ポインタ候補位置に関する位置仮説から、各動作を反映した位置仮説に関連付ける位置仮説尤度を決定する。なお、図15(B)の例では、LEDの点灯、消灯に対応してタッチ、ホバーの状態を予測するCPT、高さhに対応してタッチ、ホバーの状態を予測するCPT、入力状態(タッチ、ホバー)のCPTがそれぞれ設定されているが、これに限定されるものではない。なお、高さhのCPTにおけるh〜h、Σは、図14に示す内容と同様であり、λは制御パラメータの一例である。CPT内の数値は、学習して獲得してもよく、経験に基づいて設定してもよい。
図16は、タッチDBN構造とパラメータの一例を示す図である。図16の例では、時刻t−1(直前)における入力状態((タッチ)ノード)及び観測ノードと、時刻t(現在)における入力状態((タッチ)ノード)及び観測ノードとが示されている。また、図16における観測ノードからの観測データは、例えば上述したボールポインタ62が有するLEDの点灯、消灯、及びボールポインタ62の高さであるが、これに限定されるものではない。
本実施形態では、図16に示すように、直前と現在の時刻におけるタッチDBNに対応させた入力状態のパラメータ(CPT)を設定しておくことで、各時刻における各動作を反映した位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定する。また、位置仮説尤度と動作仮説尤度とに基づいてポインタの入力状態を決定することで、ポインタを用いた入力精度を向上させることができる。
<同一センサからの観測データが複数の場合>
例えば、複数のユーザがそれぞれポインタを移動させた場合、同一センサからの複数の観測データが得られる。本実施形態では、観測データが複数の場合にも、各ポインタ入力の精度を向上させることができる。図17,図18は、ポインタが複数の場合の仮説例を示す図(その1,その2)である。
例えば、図17(A)に示すように、時刻tにおいて同一センサから観測データA、Bが得られた場合、ポインタ軌跡抽出部12は、ダミー観測データを1つ増やし、時刻t−1におけるターゲット(ポインタ)に対し、未確定ターゲット(ポインタ)1,2が存在するとみなして、複数の観測データに対し、それぞれ3つの位置仮説ノードの仮説を割り当てる。
次に、ポインタ軌跡抽出部12は、図17(A)に示す位置仮説ノードの割り当て仮説St,1〜St,9に対し、図17(B)に示すように予め設定された割り当て仮説表を用いて、各割り当て仮説St,1〜St,9の尤もらしさを計算する。図17(B)の例では、位置仮説ノードSt,1〜St,3については、所定の運動モデル(例えば、等速運動モデル)に基づく計算を行い、位置仮説ノードSt,4〜St,9については、予め設定された定数を用いて仮説の尤もらしさを求めているが、これに限定されるものではない。
また、ポインタ軌跡抽出部12は、図17(B)に示す割り当て仮説表の仮説の尤もらしさp(St,1)〜p(St,9)を図18に示すような行列に変換する。図18に示す行列では、例えば「ターゲット」、「未確定ターゲット1」、及び「未確定ターゲット2」と、「観測データA」、「観測データB」、「ダミー観測(誤警報)」、及び「ダミー観測」とからなる行列が示されている。ダミー観測(誤警報)とは、例えばターゲットではないノイズ等から発生した観測データ(信号)を示し、ダミー観測とは、例えばターゲットが観測できなかった場合に割り当てた観測データ(信号)を示す。
ポインタ軌跡抽出部12は、この変換した行列から、仮説の尤もらしさの和が最大である組み合わせを選択する。ただし、組み合わせは、行と列の対応付けが1対1である条件下で行うのが好ましい。例えば、図18の例では、「ターゲット」に含まれる仮説の尤もらしさp(St,1)〜p(St,3)の中から選択した1つと、「未確定ターゲット1」に含まれる仮説の尤もらしさp(St,4)〜p(St,6)の中から選択した1つとの和を計算する。また、例えば「ターゲット」に含まれる仮説の尤もらしさp(St,1)〜p(St,3)の中から選択した1つと、「未確定ターゲット2」に含まれる仮説の尤もらしさp(St,7)〜p(St,9)の中から選択した1つとの和を計算してもよい。また、例えば「未確定ターゲット1」に含まれる仮説の尤もらしさp(St,4)〜p(St,6)の中から選択した1つと、「未確定ターゲット2」に含まれる仮説の尤もらしさp(St,7)〜p(St,9)の中から選択した1つとの和を計算してもよい。なお、本実施形態では、予め設定された組み合わせの計算のみを行って、その和が最大となる組み合わせを選択してもよい。
また、選択された組み合わせに対応付けて、ポインタ(ターゲット)軌跡を更新し、上述したような処理を各時刻で行うことで、観測データが複数ある場合にも各ポインタ軌跡を適切に抽出することができ、動作認識の精度を向上させることができる。
上述したように、本実施形態によれば、ポインタを用いた入力精度を向上させることができる。例えば、本実施形態では、複数ポインタの同時追跡を目的とした追跡アルゴリズム(MHT)を、ポインタ動作を確率的に認識するDBNと連携させることで、MHTのデータ関連付け段階で生成した仮説の尤もらしさを、位置仮説及び動作仮説の2種類の仮説で評価する。また、本実施形態では、位置仮説と動作仮説で評価した尤もらしさに基づいて仮説の枝刈(例えば、選択と削除等)を行い、移動軌跡を確定する。
また、本実施形態では、位置仮説と動作仮説とを用いてポインタの位置精度を向上させる。例えば、センサの観測データと前時刻でのポインタ候補位置との関連付けによって位置仮説を生成する。仮説位置上にあるポインタがどのように動作しているかを仮定した仮説を、位置仮説と連携させる。
また、タッチ移動軌跡の延長の終了仮説を行う。また、仮説尤度の計算として、新しい位置仮説ノードが追加される度に、事前に設定したポインタの運動モデル(例えば、等速運動モデル)に基づいて位置仮説尤度(位置尤度)を計算する。この尤度は、各位置仮説に関連付けられたDBNに基づいて計算した動作仮説尤度、親仮説の尤度によって更新されることで、センシティブな閾値処理等は不要となる。また、遅延がなく、複数のタッチ軌跡を同時に抽出できる。
また、本実施形態では、ポインタのタッチ動作認識と、ポインタ追跡手法とを連携させることで、例えばタッチ動作を認識する基準の個別設定を不要にし、ユーザ等によるチューニング作業を削減することができる。また、上述した本実施形態では、入力状態として、タッチ状態又はホバー状態であるかを決定するが、入力状態の種類については、これに限定されるものではない。
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、上述した各実施例の一部又は全部を組み合わせることも可能である。
なお、以上の実施例に関し、更に以下の付記を開示する。
(付記1)
情報処理装置が、
対象物の位置及び動作を測定して位置情報及び動作情報を取得し、
取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、
取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、
各動作を反映した前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、
決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する、ことを特徴とする入力制御方法。
(付記2)
前記対象物の候補位置に関する前記位置仮説の生成は、
複数の前記対象物の同時追跡に対応する追跡アルゴリズムを用いることを特徴とする付記1に記載の入力制御方法。
(付記3)
前記対象物の候補動作に関する前記動作仮説の生成は、
ベイジアンネットワークを用いることを特徴とする付記1又は2に記載の入力制御方法。
(付記4)
前記位置仮説が生成される度に、新しい位置仮説をツリーのノードとして直前の位置仮説ノードへ追加することでツリーを生成し、
生成した前記ツリーを用いて前記対象物を用いた入力状態を確定することを特徴とする付記1乃至3の何れか1項に記載の入力制御方法。
(付記5)
前記位置仮説が前記ノードが追加される度に、予め設定された前記対象物の運動モデルを用いて前記位置仮説尤度を取得することを特徴とする付記4に記載の入力制御方法。
(付記6)
予め複数のタイプを有する前記位置仮説に対して、各タイプに対応する前記ベイジアンネットワークを用いて、前記動作仮説尤度を取得することを特徴とする付記3に記載の入力制御方法。
(付記7)
前記ツリーを所定の階層毎に、前記位置仮説尤度に基づいて枝刈を行うことを特徴とする付記4に記載の入力制御方法。
(付記8)
前記対象物の入力状態は、所定の位置へのタッチ状態又はホバー状態を含むことを特徴とする付記1乃至5の何れか1項に記載の入力制御方法。
(付記9)
対象物の位置及び動作を測定して位置情報及び動作情報を取得し、
取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、
取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、
各動作を反映した前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、
決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する、処理をコンピュータに実行させる入力制御プログラム。
(付記10)
対象物の位置及び動作を測定して位置情報及び動作情報を取得し、取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、各動作を反映した前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する軌跡抽出部と、
前記軌跡抽出部により抽出された情報から動作の認識を行う動作認識部とを有する情報処理装置。
10 情報処理装置
11 データ取得部
12 ポインタ軌跡抽出部
13 動作認識部
14 アプリ実行部
15 通信部
16 出力部
17 制御部
18 記憶部
20 観測部
21 RGBカメラ
22 深度カメラ
30 プロジェクタ
41 入力装置
42 出力装置
43 ドライブ装置
44 補助記憶装置
45 主記憶装置
46 CPU
47 ネットワーク接続装置
48 記録媒体
50,61 テーブルトップ
51 アイコン
52,63 ユーザ
53 指示部材
54 ポインタ
62 ボールポインタ

Claims (8)

  1. 情報処理装置が、
    対象物の位置及び動作を測定して位置情報及び動作情報を取得し、
    取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、
    取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、
    各動作を反映した前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、
    決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する、ことを特徴とする入力制御方法。
  2. 前記対象物の候補位置に関する前記位置仮説の生成は、
    複数の前記対象物の同時追跡に対応する追跡アルゴリズムを用いることを特徴とする請求項1に記載の入力制御方法。
  3. 前記対象物の候補動作に関する前記動作仮説の生成は、
    ベイジアンネットワークを用いることを特徴とする請求項1又は2に記載の入力制御方法。
  4. 前記位置仮説が生成される度に、新しい位置仮説をツリーのノードとして直前の位置仮説ノードへ追加することでツリーを生成し、
    生成した前記ツリーを用いて前記対象物を用いた入力状態を確定することを特徴とする請求項1乃至3の何れか1項に記載の入力制御方法。
  5. 前記位置仮説が前記ノード追加される度に、予め設定された前記対象物の運動モデルを用いて前記位置仮説尤度を取得することを特徴とする請求項4に記載の入力制御方法。
  6. 予め複数のタイプを有する前記位置仮説に対して、各タイプに対応する前記ベイジアンネットワークを用いて、前記動作仮説尤度を取得することを特徴とする請求項3に記載の入力制御方法。
  7. 対象物の位置及び動作を測定して位置情報及び動作情報を取得し、
    取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、
    取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、
    各動作を反映した前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、
    決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する、処理をコンピュータに実行させる入力制御プログラム。
  8. 対象物の位置及び動作を測定して位置情報及び動作情報を取得し、取得した前記位置情報に基づいて、各時刻における前記対象物の候補位置に関する位置仮説を生成し、取得した前記動作情報に基づいて、前記位置仮説における動作を反映した動作仮説を生成し、各動作を反映した前記位置仮説に関連付ける位置仮説尤度及び動作仮説尤度を決定し、決定した前記位置仮説尤度及び前記動作仮説尤度に基づいて、前記対象物の入力状態を決定する軌跡抽出部と、
    前記軌跡抽出部により抽出された情報から動作の認識を行う動作認識部とを有する情報処理装置。
JP2014246238A 2014-12-04 2014-12-04 入力制御方法、入力制御プログラム、及び情報処理装置 Expired - Fee Related JP6402611B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014246238A JP6402611B2 (ja) 2014-12-04 2014-12-04 入力制御方法、入力制御プログラム、及び情報処理装置
US14/953,988 US9921689B2 (en) 2014-12-04 2015-11-30 Information processing method, information processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014246238A JP6402611B2 (ja) 2014-12-04 2014-12-04 入力制御方法、入力制御プログラム、及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2016110333A JP2016110333A (ja) 2016-06-20
JP6402611B2 true JP6402611B2 (ja) 2018-10-10

Family

ID=56094310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014246238A Expired - Fee Related JP6402611B2 (ja) 2014-12-04 2014-12-04 入力制御方法、入力制御プログラム、及び情報処理装置

Country Status (2)

Country Link
US (1) US9921689B2 (ja)
JP (1) JP6402611B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294686B (zh) * 2016-08-05 2021-04-02 董涛 一种应用于计算机技术领域思维导图中快速更新树结点位置坐标的方法
JP7444604B2 (ja) * 2019-12-26 2024-03-06 キヤノン株式会社 画像処理装置及び方法、及び撮像装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6683968B1 (en) * 1999-09-16 2004-01-27 Hewlett-Packard Development Company, L.P. Method for visual tracking using switching linear dynamic system models
US7136507B2 (en) * 2003-11-17 2006-11-14 Vidient Systems, Inc. Video surveillance system with rule-based reasoning and multiple-hypothesis scoring
EP2389622A1 (en) 2009-01-26 2011-11-30 Zrro Technologies (2009) Ltd. Device and method for monitoring an object's behavior
JP5259456B2 (ja) * 2009-03-02 2013-08-07 株式会社東芝 学習装置及び物体検出装置
EP2616912B1 (en) 2010-09-15 2019-12-11 Advanced Silicon SA Method for detecting an arbitrary number of touches from a multi-touch device
GB201200643D0 (en) * 2012-01-16 2012-02-29 Touchtype Ltd System and method for inputting text
US8619047B2 (en) * 2011-02-04 2013-12-31 Perceptive Pixel Inc. Techniques for disambiguating touch data
CN102890576B (zh) * 2011-07-22 2016-03-02 宸鸿科技(厦门)有限公司 触控屏触摸轨迹检测方法及检测装置
WO2014109262A1 (ja) * 2013-01-09 2014-07-17 シャープ株式会社 タッチパネルシステム
JP6186834B2 (ja) * 2013-04-22 2017-08-30 富士通株式会社 目標追尾装置及び目標追尾プログラム

Also Published As

Publication number Publication date
JP2016110333A (ja) 2016-06-20
US20160162057A1 (en) 2016-06-09
US9921689B2 (en) 2018-03-20

Similar Documents

Publication Publication Date Title
RU2648573C2 (ru) Выделение ресурсов для машинного обучения
RU2605370C2 (ru) Система для распознавания и отслеживания пальцев
US20180348783A1 (en) Asynchronous image classification
US9619035B2 (en) Gesture detection and recognition
US9886094B2 (en) Low-latency gesture detection
EP2891950B1 (en) Human-to-computer natural three-dimensional hand gesture based navigation method
US20140204013A1 (en) Part and state detection for gesture recognition
US20120326995A1 (en) Virtual touch panel system and interactive mode auto-switching method
KR20150067250A (ko) 사용자 인터페이스를 위한 터치리스 입력
JP2015517134A (ja) 光フォールオフに基づく奥行き画像の生成
JP6438579B2 (ja) 所望のターゲットを判定するための装置及び方法
KR20160058117A (ko) 미래 사용자 입력을 예측한 상태 변화에 관한 정보를 사용하는 사용자 입력에 대한 반응을 제공하는 시스템 및 방법
KR101794148B1 (ko) 효율적인 자유 공간 손가락 인식
JP6942164B2 (ja) 拡大現実のためのリアルタイムモーションフィードバック
US20150193040A1 (en) Hover Angle
JP6402611B2 (ja) 入力制御方法、入力制御プログラム、及び情報処理装置
CN111986229A (zh) 视频目标检测方法、装置及计算机系统
US8749488B2 (en) Apparatus and method for providing contactless graphic user interface
JP2019079342A (ja) 状態判定方法、状態判定プログラム及び状態判定装置
JP2020518841A (ja) 自動化されたアクティビティ−時間訓練
CN108921129B (zh) 图像处理方法、系统、介质和电子设备
JP5790257B2 (ja) 文字入力装置,文字入力プログラムおよび文字入力方法
CN110192208B (zh) 共享物理图形的信号片段
CN114245093B (zh) 基于红外和热感的投影操作方法、电子设备及存储介质
WO2018103352A1 (zh) 一种移动终端的光标定位方法、装置及移动终端

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180814

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180827

R150 Certificate of patent or registration of utility model

Ref document number: 6402611

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees