JP2015043154A - 情報処理装置とその制御方法、コンピュータプログラム、記憶媒体 - Google Patents

情報処理装置とその制御方法、コンピュータプログラム、記憶媒体 Download PDF

Info

Publication number
JP2015043154A
JP2015043154A JP2013174678A JP2013174678A JP2015043154A JP 2015043154 A JP2015043154 A JP 2015043154A JP 2013174678 A JP2013174678 A JP 2013174678A JP 2013174678 A JP2013174678 A JP 2013174678A JP 2015043154 A JP2015043154 A JP 2015043154A
Authority
JP
Japan
Prior art keywords
touch
recognition target
information processing
processing apparatus
event
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.)
Granted
Application number
JP2013174678A
Other languages
English (en)
Other versions
JP2015043154A5 (ja
JP6202942B2 (ja
Inventor
基起 仲間
Motoki Nakama
基起 仲間
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013174678A priority Critical patent/JP6202942B2/ja
Priority to US14/464,436 priority patent/US9513715B2/en
Priority to CN201410425710.9A priority patent/CN104423881B/zh
Publication of JP2015043154A publication Critical patent/JP2015043154A/ja
Publication of JP2015043154A5 publication Critical patent/JP2015043154A5/ja
Application granted granted Critical
Publication of JP6202942B2 publication Critical patent/JP6202942B2/ja
Active 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/0304Detection arrangements using opto-electronic means
    • G06F3/0325Detection arrangements using opto-electronic means using a plurality of light emitters or reflectors or a plurality of detectors forming a reference frame from which to derive the orientation of the object, e.g. by triangulation or on the basis of reference deformation in the picked up image
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/0304Detection arrangements using opto-electronic means
    • 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
    • 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
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/041012.5D-digitiser, i.e. digitiser detecting the X/Y position of the input means, finger or stylus, also when it does not touch, but is proximate to the digitiser's interaction surface and also measures the distance of the input means within a short range in the Z direction, possibly with a separate measurement setup
    • 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/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • 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/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03547Touch pads, in which fingers can move on a surface

Abstract

【課題】 認識対象とタッチ対象面の近接状態に基づいて認識されるタッチ操作での、タッチ開始位置の検出精度を向上させることを目的とする。
【解決手段】 上記課題を解決するため、本発明の情報処理装置は、操作面と認識対象との近接状態に基づいて、前記操作面が前記認識対象によってタッチされているかを判定する状態判定部306と、前記認識対象によって示される指示位置を検出する位置検出部302と、前記操作面が前記認識対象によってタッチされていると判定されている間に、前記位置検出手段によって検出された指示位置が初めに静止したとみなされる位置を、前記認識対象によるタッチ入力が開始された位置であると推定する推定部308と、を備えることを特徴とする。
【選択図】 図1

Description

本発明は、認識対象とタッチ対象面の近接状態に基づいて、当該認識対象によって行われるタッチ操作を認識する技術に関する。
近年では、AR(Augmented Reality)やMR(Mixed Reality)といった環境において、物理的には存在しない操作面(仮想面)に対するタッチ操作が行われる場面がある。また、プロジェクションによってユーザインタフェース(以下、UI)を壁や机など任意の操作面に投影し、投影したUIに対してタッチ操作が行われる場面がある。このような場面においては、ステレオカメラや距離画像センサ等を用い、操作面と、操作を行う指示部として認識すべき認識対象(例えばユーザの指先)との間の距離に基づく判断により、両者が接触しているか否かを判断することが多い。具体的には、操作面と、ユーザの指先との間の距離に所定の閾値を設ける。そして、当該距離が閾値より小さければ、操作面がタッチされている状態を示す「タッチ状態」、閾値より大きければ操作面がタッチされていない状態を示す「非タッチ状態(リリース状態)」であるという判定を行う。そして、タッチ状態から非タッチ状態に移行した時点での指先の位置を、タッチ位置と推定する。そして、非タッチ状態からタッチ状態に移行した時点での指先の位置を、タッチが終了する位置リリース位置と推定する。
しかし、検出できる距離の分解能が低い(粗い)場合には、状態を判定するタイミング及び推定される位置に誤差が生じることがある。また、距離の分解能が高い場合でも、タッチ状態と非タッチ状態を区別するための閾値を大きく設定(例えば指先の太さより大きく設定)してしまうと、同様の課題が生ずることがある。
光学式タッチパネルでは、操作面と平行な検出面に照射された光が遮られたことを検知した場合に、操作面と指示部の間の距離が所定の闘値より小さくなったと判断する。特許文献1では、操作面をタッチする指の傾きによって検出面の高さと実際の操作面の高さとに生じる指示部の位置のずれを補正するため、2段階の検出面で指示部の位置を検出して指に傾き方を認識する。
特開平5−241733
しかし、特許文献1の先行技術は、操作面と2段階の検出面の位置関係は、設計時から固定されている。従って、操作面が仮想面に設定されたり、もしくは操作面を任意の平面に設定されたりする場合に適応することは考慮されていない。
本発明は上記課題を考慮したものであり、認識対象とタッチ対象面の近接状態に基づいて認識されるタッチ操作での、タッチ開始位置の検出精度を向上させることを目的とする。
上記課題を解決するため、本発明に係る情報処理装置は、操作面と認識対象との近接状態に基づいて、前記操作面が前記認識対象によってタッチされているかを判定する状態判定手段と、前記認識対象によって示される指示位置を検出する位置検出手段と、前記状態判定手段により、前記操作面が前記認識対象によってタッチされていると判定されている間に、前記位置検出手段によって検出された指示位置が初めに静止したとみなされる位置を、前記認識対象によるタッチ入力が開始された位置であると推定する推定手段と、備えることを特徴とする。
本発明によれば、認識対象とタッチ対象面の近接状態に基づいて認識されるタッチ操作での、タッチ開始位置の検出精度を向上する。
情報処理装置の外観と使用環境の一例 情報処理装置のハードウェア構成、及び機能構成を示すブロック図 指先と操作面の接触位置に誤差が生じてしまう理由を示す図 本発明における情報処理装置が実行するメイン処理のフローチャート 第1の実施形態におけるタッチ判定処理のフローチャート 情報処理装置を使ってタップ操作を行った際に取得できるデータの一例 情報処理装置を使ってムーブ操作を行った際に取得できるデータの一例 第1の実施形態の変形例におけるタッチ判定処理のフローチャート
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、以下で説明する実施形態は、本発明を具体的に実施した場合の一例を示すものであり、これに限るものではない。
<第1の実施形態>
まず第1の実施形態として、認識対象と操作面との距離に基づいてタッチ状態と非タッチ状態を区別した上で、タッチ状態においてユーザの指先の動きが静止したとみなされる位置をタッチ位置として特定する実施形態を説明する。タッチ位置とは、タッチ入力によって指示される操作面に平行な二次元(xy平面)における位置座標を示し、少なくとも、タッチ入力が開始されるタッチ開始位置と、タッチ入力が終了されるタッチ終了位置を含む。なお、本実施形態では、情報処理装置に対する操作を行う指示部として認識すべき認識対象の一例として、ユーザの手及びその指先を挙げて説明する。ただし、本実施形態は認識対象をスタイラスペンや差し棒などの操作器具に置き換えても適応可能である。
図1は、本実施形態で説明する情報処理装置100を設置したシステムの外観の一例を示している。
図2(A)は、本実施形態における情報処理装置100のハードウェア構成の一例を示すブロック図である。同図において、CPU200は、バス203を介して接続する各デバイスを統括的に制御する。オペレーティングシステム(OS)をはじめ、後述するフローチャートに示されるような本発明に係る各処理プログラム、デバイスドライバ等はROM202に記憶されており、RAM201に一時記憶され、CPU200によって適宜実行される。RAM201は、高速にアクセス可能なCPU200の主メモリ、ワークエリア等の一時記憶領域として用いられる。ここでOSおよび各処理プログラム等は外部の記憶装置211に記憶されていてもよく、その場合は電源投入時に必要な情報がRAM201に適宜読み込まれる。また、ディスプレイI/F204は、情報処理装置100内部で生成される表示オブジェクト(表示画像)をプロジェクタ209が処理可能な信号に変換する。入力I/F205は、赤外カメラ208が生成する赤外画像を入力信号として受信し、情報処理装置100が処理可能な情報に変換する。出力I/F206は、情報処理装置100内部で生成される赤外発光命令を赤外発光部207が処理可能な信号に変換する。
本実施形態では、情報処理装置100で投影するデジタルデータは記憶装置211に格納されているものとする。記憶装置211としては、ディスクデバイスやフラッシュメモリ、ネットワークやUSBなどの各種I/F210を介して接続される記憶装置211を使用する。
赤外カメラ208は、本実施形態において、認識対象の動きを画像情報から検出するために用いられる撮像部である。赤外カメラ208で生成された赤外強度画像は入力画像としてRAM201で一時保存され、CPU200によって適宜処理され、破棄されるが、適宜必要なデータは記憶装置211に蓄積しても構わない。
以下、他図を用いて同じものを説明する場合には同一の符号を付し、その説明を省略する。
図1に示すように情報処理装置100は、プロジェクタ209の投影光照射部105から投影光を照射することにより、任意の平面を操作面として設定できる。図1の場合は、情報処理装置100をテーブル101上に設置し、テーブル面上に投影していることを示している。ここで、図1の102a〜dは、プロジェクタ209によってテーブル面上に投影された電子データやボタンなどのUI部品(以下、まとめてオブジェクトと記載する)を示している。本実施形態では、ユーザが手指103を使って、前記オブジェクトに対してタッチ操作を行う場合について説明する。また本実施形態ではテーブル101に画像を投影する例を述べる。ただし、操作面101はテーブル以外でもよく、例えば壁面に投影光を照射して操作面として利用してもよく、また、表面は必ずしも平面でなくとも操作面とすることができる。また、赤外光発光部207によって発光される赤外光は、発光素子104から投影面に向けて照射され、ユーザの手指103等に反射し、赤外反射光として赤外カメラ208において撮像される。図1において、レンズ106は赤外カメラ208の撮像用レンズである。情報処理装置100は、赤外カメラ208によって得られた赤外強度画像に対して各種画像処理することによって手指の三次元位置を計測した結果から手指とテーブル面の近接状態を判断し、テーブル面へのタッチ判定を行う。なお、本実施形態では、図1に示されるように操作面101に対して平行な二次元平面にx軸とy軸、操作面101に直交する高さ方向にz軸を設定し三次元位置情報を座標値として扱う。ただし、操作面が平面でない場合やユーザと操作面との位置関係によっては、必ずしも操作面に平行あるいは直交の関係の座標軸ではなくてもよい。その場合も、z軸は認識対象と操作面との近接関係(両者の間の距離の大きさの程度)を検出する方向、z軸と交わる方向にx軸とy軸とが設定される。
図2(B)は、本実施形態における情報処理装置100の機能構成の一例を示すブロック図である。情報処理装置100は、画像取得部300、領域検出部301、位置検出部302、輝度取得部304から構成される。さらに、情報処理装置100は、変換部305、状態判定部306、推定部307、認識部308、表示制御部309から構成される。これらの各機能部は、CPU200が、ROM202に格納されたプログラムをRAM201に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、上記CPU200を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
本実施形態では、情報処理装置100は、起動されたのに応じて赤外発光部207からプロジェクタ209の投影方向と同じ方向に赤外光を常時照射する。プロジェクタ209の投影範囲にユーザの手指が入ると、赤外光は手指の表面で反射し、赤外カメラ208に赤外反射強度として撮像される。
画像取得部300は、赤外カメラ208で撮像された赤外強度画像を所定時間毎に取得し、RAM201に随時保持する。赤外強度画像は、赤外反射強度を示す輝度値によって構成される。保持された赤外強度画像は、情報処理装置100の各機能ブロックにおいて順次処理される。なお、本実施形において、画像取得部300が赤外強度画像を取得する周期は、赤外カメラ208が撮像する映像のフレームレートに一致するものとする。ただし、フレームレートに限らない所定時間を画像取得の周期として設定することもできる。
領域検出部301は、RAM201に保持されている赤外強度画像を解析することによって、認識対象であるユーザの手が写る領域を検出する。以下では、ユーザの手が写る領域を単に手領域という。さらに、領域検出部301は、検出した手領域をラベリングし、その結果をRAM201に保持する。
位置検出部302は、領域検出部301によってラベリングされた手領域から、指示位置を推定し、その結果をRAM201に保持する。本実施形態では、指示位置は、ユーザの手の指先の位置である。なお、差し棒やスタイラスペンのような操作器具を認識対象とする場合は、その先端の位置を指示位置とすればよい。
距離取得部303は、領域検出部301によって検出されている移動領域の赤外強度情報と、位置検出部302によって検出された指示位置に基づいて、ユーザの指先と操作面との間の距離を取得する。本実施形態の距離取得部303は、輝度取得部304と変換部305を有する。輝度取得部304は、画像取得部300で取得した赤外強度画像と位置検出部302で検出した指示位置を利用して指示位置の赤外反射強度の輝度値を取得し、RAM201に保持する。そして、変換部305は、輝度取得部304で取得した輝度値を、予め保持されている対応情報に基づいて距離に変換し、その結果を、距離取得部303が取得した距離情報としてRAM201に保持する。
状態判定部306は、距離取得部303で取得した、ユーザの指先と操作面との距離に基づいて、ユーザの手指103が操作面101をタッチしている状態か否かを判定し、判定した状態を示す情報を認識部308に通知する。本実施形態の状態判定部306は、ユーザの指先と操作面との距離が所定の閾値以下である場合に、操作面101がタッチされている状態(タッチ状態)であると判定する。一方、ユーザの指先と操作面との距離が所定の閾値より大きい場合に、操作面101がタッチされていない状態(非タッチ状態)であると判定する。以下では、操作面101がタッチされている状態であるか否かを判定する処理を、「タッチ判定」という。
推定部307は、推定部位置検出部302が検出している指示位置の動きを追跡し、タッチ状態の間の1以上の通過点から、所定の条件に基づいて、タッチの開始位置と終了位置とを推定する。本実施形態では、タッチ状態の間に指示位置が静止したとみなされる時の位置を、タッチの開始位置あるいは終了位置と推定する。両者は一致する場合もある。本実施形態の推定部307は、まず画像取得部300によって取得された前のフレームの赤外強度画像から検出された指示位置と、最新のフレームの赤外強度画像から検出された指示位置との差分を、指示位置の移動距離として取得する。そして、取得した移動距離が所定の距離の閾値よりも小さい場合に、指示位置が静止したとみなし、最新のフレームの赤外強度画像から検出された指示位置を、タッチ位置であると推定する。このような推定方法を用いることで、指示位置が静止したとみなせるか否かを判定するために保持しておくべき情報が、少なくてすむ。ただし、連続するフレームについて指示位置が静止し続けているとみなされる場合には、再び動き始めるまでをまとめて指示位置が静止した回数は1回であると捉えてもよい。
ただし、指示位置が静止したとみなされる位置の推定方法は、これに限らない。例えば、操作面101がタッチされている状態にある間は、連続する2フレームから検出される指示位置の差分、すなわちフレーム間隔毎の移動距離を、赤外強度画像が取得される毎に記録する。そして、記録された一連の情報のうち当該差分が極小となった位置を、指示位置が静止したとみなすこともできる。この方法の場合は、記憶する必要がある情報が上述の方法より多いという一方で、ユーザの指先の動きが速く、連続する2フレーム間の移動距離が所定の距離の閾値を下回ることがないような場合でも、タッチ位置を推定できる利点がある。
認識部308は、状態判定部306の判定結果や推定部307が推定したタッチ位置に基づいて、ユーザによる入力の状況を認識し、タッチイベントとして表示制御部309など入力に応答するアプリケーションに関連する機能部に通知する。アプリケーションでは、タッチ入力によって構成されるタッチ操作に対して応答を変える。本実施形態の認識部308は、状態判定部306によって判定されている状態が、非タッチ状態からタッチ状態へ移行した時は、タッチが開始されたことを示すタッチイベントとして「タッチ」を通知する。また、逆にタッチ状態から非タッチ状態へ移行した時は、タッチされていた指先が操作面から離れたことを示すタッチイベントとして「リリース」を通知する。そして、「タッチ」が通知されてから、「リリース」が通知されるまでに、指先による指示位置の座標が変化しなかったとみなされる場合には、1点の位置座標が指示されたことを示すイベントとして「タップ」を通知する。それに対し「タッチ」が通知されてから、「リリース」が通知されることなく、指先による指示位置の座標が変化した場合には、タッチ状態のままタッチ位置が移動を開始したことを示す「ムーブスタート」イベントを通知する。さらに移動が続いた場合には「ムーブ」イベントを通知する。
本実施形態では、「タップ」イベントが通知されるのは、タッチの開始位置と終了位置が一致する場合に相当する。タッチの開始位置と終了位置が一致するか否かは、両者の座標の差異が所定の範囲に収まるか否かに応じて判断される。タップ操作によって示された位置をタップ位置という。タップ位置に、装置に対して何かしらのコマンドが発生するような操作に関わるUI部品が表示されていれば、認識部308は、当該コマンドを発生させ、アプリケーションの応答に関わる表示制御部309などの機能部に通知する。表示制御部309は、通知を受け、タップされたUI部品に対応する表示画像を生成し、プロジェクタ209によって操作面101に表示させる。それに対し、タッチの開始位置と最新の指示位置に違いが生じた時点で「ムーブスタート」イベントが通知され、以降はタッチ状態が続く限り「ムーブ」イベントが通知される。ムーブは、例えばタッチの開始位置に表示されていたオブジェクトを、終了位置まで移動させる操作として認識される。なお、例示した各イベントは、上述したようにタッチ状態の移行や行われた操作の種別を示す情報と、それらのイベントに関連するxy平面上の位置を示す情報とを関連付けた情報として、表示制御部309を始めとする各機能部に伝えられる。x座標とy座標は、操作面に平行な二次元方向の座標軸として定義される。
認識部308が通知するタッチイベントとして例示したうち、「タッチ」イベントと「リリース」イベントは、タッチ状態と非タッチ状態との間の遷移を示すイベントである。それに対し、「ムーブスタート」イベント(又は「ムーブ」イベント)と「タップ」イベントは、それぞれ排他的な2つの入力種別を示すイベントである。従って「ムーブスタート」イベント(又は「ムーブ」イベント)と「タップ」イベントが重複して通知されることはない。一方で、タッチの開始位置と終了位置が一致するか否かは、タッチが終了した後でなければ判定できないため、「タップ」イベントは、必ず「リリース」イベントが通知された後で通知される。「ムーブスタート」イベント(又は「ムーブ」イベント)は、タッチ状態が継続されているときに、指示位置が移動したか否かに基づいて通知されるため、必ず「リリース」イベントの通知前に通知される。「ムーブスタート」及び「ムーブ」イベントの次に「リリース」イベントが通知された場合には、表示制御部309は、タッチ入力の終了位置を、ムーブ操作の終了位置であるとして表示制御を行う。
表示制御部309は、認識部308から通知されたイベントに応じて記憶装置211と入出力I/F210の機能部である記憶部310から取得した各種オブジェクトを用いて、投影面に投影させる表示画像を生成し、プロジェクタ209に出力する。本実施形態では、表示画像には電子データやUI部品(ボタンなど)がオブジェクトとして配置されている。また表示制御部309は、認識部308から通知されたコマンドに応じて表示画像の内容を制御し、入力されたタッチ操作に対するフィードバックを示す。
本実施形態の情報処理装置100の処理を詳細に記載する前に、従来の方法によるタッチ位置の推定方法では誤差が生じやすい理由を、図3を用いて簡単に説明する。
上述したように、一般的に操作面とユーザの指先との間の距離に閾値を設けてタッチ判定する場合、当該距離が閾値以下ならばタッチ状態、閾値より大きいなら非タッチ状態と判定される。そして、非タッチ状態からタッチ状態に移行した時点での指先の位置がタッチ位置であると推定される。また、非タッチ状態からタッチ状態に移行した時点での指先の位置が、リリース位置であると推定される。また、タップ操作に係るタップ位置は、タッチ位置によって定義されることが多い。このとき使用される閾値は、距離を検出する手段の分解能に適した値が設定される。例えば、分解能に一致する値とすれば、操作面が触れられているか否かをより厳密に区別することになる。また例えば、ユーザの使い勝手に合わせて、分解能より大きい値(数cm)とすることで、必ずしも操作面に触れなくとも、操作面に指先をある程度近づけた段階でタッチ状態と判定することができるようになる。
図3は、上記の方法において、タッチ位置およびリリース位置が推定される様子の具体例を示す図である。図3では、図中に示される座標軸のように、(A1)(B1)はxy平面に相当する操作面を上方から見た状態を示し、(A2)(B2)は横から見た状態を示す。タッチ判定に用いる操作面とユーザの指先との間の距離の閾値は、z軸の値、すなわち操作面からの高さ方向の距離の閾値として設定される。
図3の(A1)(A2)は、ユーザが指先を操作面に対して垂直に動かすようにして、Pos0の位置をタップする様子を示している。
ここでは、図3(A2)で示すように、ユーザの指先は400a⇒400bの経路を通過してPos0をタップしたとする。タッチ判定に用いる閾値を、図3の高さ401して、状態が移行したと判定される時点での指先の位置をタッチ位置、リリース位置であると推定すると、両者はともにPos1(x1,z1)となる。この時、本来のタップ位置Pos0(x0,z0)とはzの値が異なるが、タップ操作など操作面に対して入力されるタッチ操作は、xy平面上でのタッチ位置を基に認識されるため、ユーザの意図通りの位置がタップ位置として認識される。
一方、図3の(B1)(B2)は、ユーザが指先を操作面に対して平行方向に移動させている途中でPos0の位置をタップする様子を示している。多くの場合、ユーザはタッチ判定の閾値を意識して操作を行ったり、操作面に対して垂直な動きを心がけたりしている訳ではないので、このように平行方向にも多少の移動しながらタッチ操作を行うことが多い。
ここでは、図3(B2)で示すように、ユーザの指先が400c⇒400dの経路を通過してPos0をタップしたとする。(A1)(A2)と同様、タッチ判定に用いる閾値を高さ401とすると、タッチ位置はPos2(x2,z2)、リリース位置はPos3(x3,z3)と推定される。この場合、本来ユーザがタップしたい位置Pos0(x0,z0)とはx、y、zともに異なるため、ユーザの意図しているタップ位置は認識されない。図3(B1)では、位置402が本来のユーザが意図してタップした位置を示しており、タッチ位置及びリリース位置と誤差が生じていることがわかる。タッチ位置とリリース位置が一致しているかを判定するための閾値によっては、両者の位置が不一致であると判定され、ムーブ操作が認識されてしまうことがあり得る。また、一致していると判定されたとしても、タップ位置の定義の仕方によっては誤動作の原因となる。例えば、タッチ位置をタップ位置と定義する場合、ユーザが意図したタップ位置Pos0(x0,z0)と従来法で推定されたタッチの開始位置Pos2(x2,z2)に、異なるコマンドに対応するUI部品が表示されていれば、ユーザにとって誤動作の原因となる。タッチの終了位置がタップ位置と定義される場合でも同様である。
本実施形態は、このように生じるタッチ位置の誤差を低減し、ユーザの意図に沿ったタッチ位置あるいはリリース位置を推定するためのものである。
次に、図4、図5のフローチャートを用いて本実施形態における情報処理装置100の処理過程を詳細に説明する。
図4は、本実施形態の情報処理装置100が実行する、タッチ操作を認識するメイン処理の流れの一例を示すフローチャートである。本実施形態では、情報処理装置100の電源がONになることで図4のフローチャートが開始される。
まず図4のステップS100において、表示制御部309は、記憶部310からデータを取得する。そして表示制御部309は、取得したデータとUI部品を配置した表示画像を生成し、プロジェクタ209へ出力する。その結果、操作面101にはプロジェクタ209から投影された表示画像が表示される。
ステップS101において、情報処理装置100は、プロジェクタ209の投影方向と同じ方向に赤外光を照射する。赤外光は情報処理装置100に搭載されている赤外発光部207から照射される。赤外光はステップS101が実行されて以降、情報処理装置100の電源がONの状態の時は常に照射されている。プロジェクタ209の投影範囲内に認識対象であるユーザの手指や、その他の物体が入り込むと、赤外光はその表面で反射される。ここで、投影範囲内の全ての領域において適切に赤外光が反射されるように、赤外照射範囲はキャリブレーションされる。また、赤外反射光は、情報処理装置100に搭載されている赤外カメラ208によって、赤外強度画像として撮像される。
ステップS102において、画像取得部300は、赤外カメラ208によって撮像された赤外度画像を規定のフレーム間隔で取得し、フレーム毎にRAM201に保持する。
ステップS103において、領域検出部301は、RAM201に保持されている赤外強度画像を解析し、投影範囲内で物体が検出されたかを判定する。本実施形態では、赤外光の反射強度が物体によって異なる性質を利用して、何らかの物体が写り込んだ際の赤外強度画像と、操作面101のみが写っている赤外強度画像との差分(背景差分)を抽出する処理を行うことによって、物体が写る領域の検出を行う。但し、検出方法はこの限りではない。例えば、赤外カメラ208の代わりに、ステレオカメラや距離画像センサを、認識対象を検出するための撮像部として利用する場合は、肌色情報や手のモデル情報などを利用して物体が写る移動領域を検出できる。物体が検出されたと判定された場合(ステップS103でYES)、ステップS104に進む。物体が検出されていないと判定された場合(ステップS103でNO)は、ステップS102に処理が戻り、物体が検出されるまでステップS102とS103の処理を繰り返す。
ステップS104では、操作面101が認識対象によってタッチされている状態かを判定し、タッチ入力を認識するタッチ判定処理が行われる。ステップS104のタッチ判定処理では、判定結果に基づいてタッチ操作が認識されると、認識部308から、「タッチ」、「リリース」、「タップ」、「ムーブスタート」、「ムーブ」のうちいずれかのタッチイベントが、アプリケーションに対して通知される。本実施形態のタッチ判定処理の詳細は、図5のフローチャートを参照して後述する。
ステップS105では、ステップS104において認識されたタッチ入力がタッチ操作として解釈された結果が、アプリケーションにより出力される。本実施形態では特に、表示制御部309が、プロジェクタ209によって投影される表示画像の内容を制御する。例えば、「タッチ」が通知されたことに応じて、タッチ開始位置に表示されているオブジェクトが明示されるように表示形態を変える、あるいはタッチ開始位置に表示されたGUIオブジェクトに対応する処理の結果を表示画像に反映する。あるいは「ムーブスタート」と「ムーブ」のいずれかが通知されたことに応じて指示位置に表示されているオブジェクトを移動させる。あるいは「リリース」が通知されたことに応じて、移動されてきたオブジェクトの位置を確定させる。あるいは「タップ」イベントが通知されたことに応じてタッチ開始位置に表示されたGUIオブジェクトに対応する処理の結果を表示画像に反映する。
ステップS105の処理が終了すると、ステップS106において、情報処理装置100は、電源をOFFするかを判定する。本実施形態では、物理ボタンやGUIに対する入力により、電源をOFFする指示が入力された場合、もしくは認識対象が検出されないまま所定時間が経過した場合に電源をOFFすると判断する。電源をOFFしないと判定された場合(ステップS106でNO)は、ステップS102へ処理が移行し、認識対象が検出される度に、前述した処理を繰り返しながら、タッチ操作の認識を繰り返す。一方、電源をOFFすると判定された場合(ステップS106でYES)は、情報処理装置100は全ての処理を終了する。
ここで、図5のフローチャートを参照して、本実施形態のステップS104において実行されるタッチ判定処理の詳細を説明する。
ステップS103の処理完了に応じてステップS104の処理が開始されると、まずステップS200において、領域検出部301は、領域検出部301が検出した領域が、手領域であるかを判定する。すなわち、当該領域に写る本実施形態では、検出された物体領域の大きさと縦横比を用い、簡単な手形状の認識を行うことによって手領域かの判定を行う。検出した領域が手領域であると判定された場合(ステップS200でYES)、ステップS201へ処理が移行する。この時、領域検出部301は、赤外強度画像のうち手領域に該当するピクセルに対してラベリングを行い、ラベリング後の赤外強度画像をRAM201に保持する。一方、検出した領域が手領域ではないと判定された場合(ステップS200でNO)は、ステップS104の処理が終了する。
なお、検出された領域が手領域か否かの判定方法は、縦横比を用いる方法に限らず、例えば検出された領域の形状と、予め登録された人間の手の形状モデルとをとマッチングし、所定以上の尤度が算出された場合に、手領域であると判定することもできる。また、本実施形態では予め操作を行う認識対象としてユーザの手指が設定されているため、手領域か否かの判定とするが、ステップS103の処理は、すなわち領域検出部301が検出した領域に写る物体が、認識対象か否かを判定する処理に他ならない。従って、認識対象がユーザの手ではなかった場合にも、適応可能である。
次に、ステップS201において、位置検出部302は、ラベリング情報に基づいて赤外強度画像中の手領域を特定し、さらにその手領域内において指示位置を推定する。本実施形態では、「手領域と撮影範囲の境界線とが交わる位置の平均位置」を手指の侵入位置と定義し、侵入位置から最も遠い手領域の点を、指示位置として推定する。本実施形態において、指示位置は、ユーザの指先の位置である。検出された指示位置を示す情報は、RAM201に保持される。本実施形態では、指示位置は、図3で示した座標軸に基づく座標情報で示される。
次に、ステップS202、およびステップS203において、距離取得部303が、ユーザの指先と操作面との間の距離を取得する処理を実行する。本実施形態では、まずステップS202において、輝度取得部304が、RAM201に保持されている赤外強度画像と、指示位置の情報から、ユーザの指先によって反射された赤外光の輝度を取得する。具体的には、指先の位置に対応するピクセルの赤外強度を示す輝度値を取得する。その際、指示位置の1ピクセルの輝度だけだと輝度がバラついてしまうため、本実施形態では、指示位置を含む規定のピクセル領域の輝度平均を指示位置の輝度として算出し、RAM201に保存する。
次に、ステップS203において、変換部305は、算出した指先輝度を指先と赤外カメラ208間の垂直距離hLに変換する。本実施例では、空間上での座標が既知である複数の点群の輝度を予め測定しておくことによって、任意の座標に位置する指先の輝度から垂直距離hLを取得する。つまり、変換式を作成して垂直距離hLを算出する。また、赤外カメラ208からテーブル101までの垂直距離Ltも予め分かっているので、指先とテーブル間の垂直距離hL(高さ)は、以下の式1で求められる。
hL=Lt−Lf(>0) ・・・(式1)
ここで、本実施形態の情報処理装置100に搭載されている赤外発光部207と赤外カメラ208を使って算出できる指先とテーブル面との垂直距離の分解能(精度)は20mmであるとする。つまり、指先が操作面101から垂直距離20mm以下の位置にある場合、垂直距離hLが0mmなのか20mmなのか、それとも0〜20mm範囲内の異なる値なのかを正確に求めることはできないことを想定する。
本実施形態では、認識対象を検出するために赤外強度画像を利用する。従った上記のような方法では、同じ赤外強度画像に基づいて、指先と操作面との間の距離を取得することができる点で効率が良い。ただし、距離取得部303がユーザの指先と操作面との間の距離を取得する方法はこれに限らない。例えば、ステレオカメラを使用するなどして得た多視点撮像画像に基づいて指先と操作面との距離情報を取得するおとも可能である。また、操作面側に近接位置センサを設置することで、操作面に近接する指先の高さを直接検出することも可能である。
次に、状態判定部306によるタッチ判定処理を説明する。以降の説明を簡単にするため、ステップS102、ステップS103、ステップS200、ステップS201、ステップS202、ステップS203という一連の処理ステップの流れを「前処理」と名付ける。
前処理が完了すると、ステップS204において、状態判定部306は、取得された垂直距離hLと、予め設定されたタッチ判定のための閾値1との比較し、垂直距離hLが閾値1以下であるかを判定する。閾値1は、情報処理装置100が非タッチ状態からタッチ状態に移行したかを判定するための闘値である。垂直距離hLが閾値1以下であると判定された場合(ステップS204でYES)は、ステップS205に進む。この場合は、操作面101はタッチされている状態、つまりタッチ状態であると判定されたことになる。一方、垂直距離hLが閾値1より大きいと判定された場合(ステップS204でNO)は、ステップS208に進む。この場合は、操作面101はタッチされていない状態、つまり非タッチ状態であると判定されたことになる。
ステップS205では、状態判定部306が、既に操作面101がタッチ状態であったかを判定する。つまり、前回ステップS204の判定がなされたときの判定結果が、タッチ状態であったかを判定する。本実施形態では、ステップS204の判定結果を示す情報がRAM201に保持される。一例として、ここではタッチ判定フラグを保持する。タッチ判定フラグが「0」であれば非タッチ状態、「1」であればタッチ状態であることが示される。タッチ判定フラグの値は、初期状態では「0」であり、ステップS206あるいはステップS210において、必要に応じて更新される。つまり、ステップS205において状態判定部306は、その時点でRAM201に保持されているタッチ判定フラグが「1」である場合に、既にタッチ状態であったと判定する。既にタッチ状態であったと判定された場合(ステップS205でYES)には、ステップS214に進む。それに対し、それまではタッチ状態ではなかった、すなわち非タッチ状態であったと判定された場合(ステップS205でNO)には、ステップS206に進む。
ステップS206では、状態判定部306が、RAM201に保持されているタッチ判定フラグを「1」に更新する。
ステップS207では、認識部308が、「タッチ」イベントを通知する。「タッチ」イベントに含まれる位置情報は、情報処理装置100が非タッチ状態からタッチ状態に移行した時点で検出された指示位置のxy座標である。これは、情報処理装置100によって、認識対象が操作面101に近接したことが検出され始めた近接開始位置を示す。なお、本実施形態の近接開始位置は、図3で説明した従来法ではタッチ位置に当たる。
以上説明したように、前処理の後のステップS205〜S207の処理は、操作面101がユーザの手指103によってタッチされ始めたことを示す「タッチ」イベントを通知する処理の流れである。
一方、ステップS204からステップS208に進んだ場合、状態判定部306は、取得された垂直距離hLと、予め設定されたタッチ判定のための闘値2との比較し、垂直距離hLが闘値2以上であるかを判定する。閾値2は、操作面101がタッチ状態から非タッチ状態に移行したかを判定するための閾値である。閾値1と閾値2は、同じ値であってもよいが、閾値1より闘値2を大きく設定しておくことで、高さ情報のぶれの影響を抑え、ユーザの指先が十分に操作面101から離れて初めて非タッチ状態への移行を確定させることができる。従って、本実施形態では閾値1より闘値2を大きく設定し、非タッチ状態への移行が誤検出されることを防ぐ。垂直距離hLが闘値2以上であると判定された場合(ステップS208でYES)は、ステップS209に進む。この場合は、操作面101は非タッチ状態であると判定されたことになる。一方、垂直距離hLが閾値2より小さいと判定された場合(ステップS208でNO)は、処理を終了しメイン処理にリターンする。この場合は、タッチ状態が継続されているか、終了されようとしているかが確定できない状態であるため、改めて前処理により移動領域に基づいて垂直距離hLを取得する。
ステップS209では、状態判定部306が、既に情報処理装置100が非タッチ状態であったかを判定する。つまり、前回ステップS208の判定がなされたときの判定結果が非タッチ状態であったかを判定する。本実形態では、RAM201に保持されているタッチ判定フラグが「0」である場合に、既に非タッチ状態であったと判定する。既に非タッチ状態であったと判定された場合(ステップS209でYES)には、タッチ入力は行われていないとみなし、処理を終了しメイン処理にリターンする。それに対し、それまでは非タッチ状態ではなかった、すなわちタッチ状態であったと判定された場合(ステップS209でNO)には、ステップS210に進む。
ステップS210では、状態判定部306が、RAM201に保持されているタッチ判定フラグを「0」に更新する。
ステップS211では、認識部308が、「リリース」イベントを通知する。「リリース」イベントに含まれる位置情報は、近接終了位置及びタッチ終了位置の少なくともいずれかを示す位置情報である。近接終了位置とは、操作面101がタッチ状態から非タッチ状態に移行した時点で検出されていた指示位置xy座標である。なお、本実施形態の近接終了位置は、情報処理装置100がタッチを検出しなくなった位置であり、図3で説明した従来法ではリリース位置に当たる。タッチ終了位置は、ユーザが操作面101を触るのを意図してやめたときの指示位置を示す座標情報である。本実施形態においてタッチ終了位置は、タッチ状態の間に検出される指示位置が最後に静止したとみなされる位置である。タッチ終了位置を特定する方法は、ステップS214の説明において後述する。
ステップS212では、認識部308が、その時点までに「タップ」イベントがRAM201上に保持されているかを判定する。上述したように、タップ操作が行われたか否かは、タッチがリリースされてからでなければ確定できない。従って本実施形態では、「タッチ」イベントを通知した後、タッチ状態に間に指示位置の移動が検出されない間は、認識部308が「タップ」イベントを生成し、RAM201に保持して待機する。ステップS211において「リリース」イベントが通知された時点で、「タップ」イベントがRAM201上に保持されていれば、タップ操作が行われたことが確定可能となる。そして、「タップ」イベントがRAM201上に保持されていない場合は、タッチ状態の間に指示位置が移動した、すなわちムーブ操作が行われたことが確定する。「タップ」イベントがRAM201上に保持されていると判定された場合には(ステップS212でYES)、ステップS213に進む。「タップ」イベントがRAM201上に保持されていないと判定された場合には(ステップS212でNO)、処理を終了しメイン処理にリターンする。この処理フローとなる場合は、ステップS211で「リリース」イベントが通知される前に、既に「ムーブスタート」もしくは「ムーブ」イベントが通知されている。。従って、「リリース」イベントが通知されたことをもって、ムーブ操作が終了したことが確定する。そして、「リリース」イベントに含まれたタッチ終了位置の情報が、ムーブ操作の終了位置として、ムーブ操作への応答を返す各機能部に伝えられる。
ステップS213では、認識部308が、「タップ」イベントを通知し、メイン処理にリターンする。「タップ」イベントに含まれる位置情報は、タップ操作によって示される1点の座標を示す。本実施形態では、後述するステップS214で、推定部307によって推定され、RAM201に保持されているタッチ開始位置の座標情報がタップ位置となる。
以上説明したように、前処理の後のステップS208〜S213の処理は、ユーザの手指103による操作面101へのタッチが終了したことを示す「リリース」イベントを通知する処理の流れである。「タッチ」イベントが通知されてから、「リリース」イベントが通知されるまでに指示位置が移動していなければ、「リリース」イベントに続いて「タップ」イベントが通知され、ユーザが行った操作がタップ操作であったことが確定される。
次に、ステップS205において、状態判定部306が、既に操作面101がタッチ状態であったと判定し、ステップS214に進んだ場合を説明する。
ステップS214では、推定部307が、タッチ状態が開始されてから継続している間に、指示位置が静止したとみなされる位置を検出し、タッチ位置であると推定する。本実施形態では、上述したように、連続する2フレーム分の赤外強度画像から検出された指示位置の、xy座標の差分が所定の闘値よりも小さい場合に、指示位置が静止したとみなす。そして、最新のフレームの赤外強度画像から検出された指示位置の座標情報をRAM201に保持する。本実施形態において、推定部307は、タッチが開始されてから指示位置が初めて静止したとみなされる位置を、ユーザが意識してタッチを開始した位置を示すタッチ開始位置であると推定する。これは、ユーザの手指が操作面101に接触した瞬間に生じる摩擦などによって、その動きが一時的に静止することを利用した推定方法である。これにより、認識対象が高さの閾値を越えたときの位置と、ユーザが意図してタッチした位置が異なる場合であっても、ユーザが実際に触った位置を、タッチの開始位置として推定することができる。また、推定部307は、タッチ状態が継続されている間に、複数回指示位置が静止したとみなされる位置が検出される場合には、その度にその位置をRAM201に保持する。そして、ステップS211において、「リリース」イベントが通知される時に、RAM201に保持されている指示位置が静止したとみなされる位置の中で、最後に検出された位置を、タッチ終了位置と推定する。タップ操作が行われた場合には、タッチ開始位置とタッチ終了位置は一致することもある。RAM201にはxy座標とともに、タッチ開始位置の座標であることを示す情報を保持する。RAM201には、xy座標とともに、タッチ終了位置の座標であることを示す情報が保持される。なお、ステップS214において指示位置が静止したとみなされる位置が検出不可能な場合、すなわちユーザの手指が静止せずに動き続けている間は、タッチ位置の情報を保持せずにステップS215に進む。
ステップS215では、認識部308が、タッチ開始位置から、最新のフレームから検出された指示位置までの、指示位置の移動距離を取得し、RAM201に保持する。認識部308は、RAM201に保持されているタッチ開始位置のxy座標と、ステップS201で推定した最新の指示位置を示すxy座標を用い、2点の間の最短距離を求める。ただし、タッチ開始位置がRAM201に保持されていない場合には、例外処理として、ステップS208で通知された「タッチ」イベントに含まれた近接開始位置のxy座標と、最新の指示位置のxy座標を利用して、2点間の距離を求める。この例外処理は、ユーザが手指103を静止させることなく操作を行った場合に処理不能となることを防ぐために行う。従って、タッチ開始位置がRAM201に保持された後は、例外処理によって取得されていた近接開始位置に基づく移動距離の情報は削除される。
ステップS216では、認識部308が、ステップS215で取得したタッチ開始位置からの移動距離が、所定の闘値3以上であるかを判定する。闘値3は、ユーザの手指103が、操作面101へのタッチを継続したままxy方向に十分移動したかを判定するため闘値である。すなわちステップS216の判定は、タップ操作とムーブ操作を区別するための処理である。なお、閾値3の値は、一般的なタッチ操作における、近接開始位置とタッチ開始位置の間の距離より十分大きく設定される。これは、上述した例外処理によって取得された移動距離が、指示位置が静止するよりも前に闘値3の大きさを超えてしまうことを防ぐためである。もしくは、例外処理によって取得された移動距離と比較する閾値は異なる閾値とすることによって、指示位置が静止するよりも前に闘値の大きさを超えないようにすることもできる。タッチ開始位置からの移動距離が、所定の闘値3以上であると判定された場合(ステップS216でYES)には、ステップS218に進む。一方、タッチ開始位置からの移動距離が、所定の闘値3より小さいと判定された場合(ステップS216でNO)には、ステップS217に進む。RAM201に保持された移動距離の情報は、ステップS216の判定結果が確定した時点で毎回削除される。
ステップS217では、認識部308が、「タップ」イベントを生成しRAM201に保持する。ここで生成される「タップ」イベントは、タップ操作が行われたことを各機能部に通知するための情報と、タッチ開始位置の座標情報が含まれる。
一方、ステップS218では、認識部308が、RAM201上に既にステップS217で生成された「タップ」イベントが保持されているかを判定する。このとき、タッチ状態での指示位置の移動距離は闘値3以上であるため、ユーザが行った操作はタップ操作ではないことが確定している。従って、後に続く処理では、ムーブ操作が開始あるいは継続していることを示す情報を通知する必要がある。「タップ」イベントが保持されていると判定された場合(ステップS218でYES)には、ステップS219に進む。「タップ」イベントが保持されていないと判定された場合(ステップS218でNO)には、ステップS220に進む。
ステップS219では、認識部308が、保持されている「タップ」イベントを「ムーブスタート」イベントに変更して、通知する。「ムーブスタート」イベントに含まれる位置情報は、タッチ開始位置の座標情報である。
また、ステップS220では、認識部308が、「ムーブ」イベントを通知し、メイン処理にリターンする。「ムーブ」イベントに含まれる位置情報もまた、最新の指示位置を示すxy座標の情報である。
以上説明したように、前処理の後のステップS214〜S220の処理は、タッチ状態が維持されたまま、ユーザの手指103が移動したことを示す「ムーブスタート」イベント及び「ムーブ」イベントを通知する処理の流れである。「ムーブ」イベントと「ムーブスタート」イベントがいずれかが通知されていれば、後に「リリース」イベントが通知された時点でムーブ操作の終了が確定する。この場合、「リリース」イベントに含まれる位置情報は、最後に指示位置が静止したとみなされたタッチ終了位置のxy座標の情報となる。ただし、指示位置が静止したとみなせる位置が検出されなかった場合には、例外処理として、近接終了位置のxy座標の情報を通知する。これは、ステップS215における例外処理と同様、ユーザが手指103を静止させることなく操作を行った場合に処理不能となることを防ぐための処理である。「ムーブスタート」イベントあるいは「ムーブ」イベントの通知を受けた表示制御部309は、ステップS105において、例えばタッチ開始位置に表示されたオブジェクトを、最新の指示位置まで移動させる処理を実行する。
本実施形態では、ステップS217で生成された「タップ」イベントは、ステップS219において「ムーブスタート」イベントに変更されない限り、RAM201に保持され続ける。そして、ステップS212においてRAM201に「タップ」イベントが保持されているか否かを判定することによって、タッチ状態の間には区別が困難なタップ操作とムーブ操作を、「リリース」イベントの通知後に確実に区別することが可能となる。
次に、本実施形態にかかる情報処理装置100に対して、タップ操作とムーブ操作が行われたときの具体的な処理の流れを、図6及び図7を参照して説明する。
まず、図6は、ユーザによってタップ操作が行われた場合に本実施形態の情報処理装置100が行う処理の流れと、推定されるタップ位置を説明する図である。図6(A)は、操作面101(xy平面)を上方から見た状態を示す。ここでユーザの手指103はタップ操作によりpos0(x0,y0)を指示しようとしている。図6(B)は、このタップ操作の様子を、横(y軸マイナス側)から見たところを示す。図6(A)(B)は、図3(B1)(B2)に示されたのと同様、タップ操作を行う際にユーザがxy方向に指を移動させている場合を示している。図6(C)は、一連のタップ操作中に取得されるユーザの指先と操作面との垂直距離hL(Height)と、フレーム毎の前のフレームとのxy座標の差分が示すフレーム間移動距離mL(moveLen)とを、横軸をフレーム数として示したグラフとなる。Heightは、ステップS201〜S203の処理において、moveLenはステップS214の処理においてそれぞれ取得される値である。
また、図6(B)(C)では、ステップS204の判定に用いる閾値1を点線700、ステップS208の判定に用いる闘値2を点線701で表す。一例として、閾値1は20mm、閾値2は50mmに設定されるものとする。本実施形態では、このように闘値1と闘値2を異なる値とすることで、位置検出部302によって検出される指示位置にぶれがあったとしてもそれを吸収することができる。つまり、ユーザの指先が十分に操作面101に近づいた段階で、タッチ状態への移行を判定でき、ユーザの指先が十分に操作面101から離れた段階で、非タッチ状態への移行を判定できる。また図6(B)は、ユーザがpos0をタップ操作する際に、指先が図6(B)のr0⇒r1の経路を通過することを示す。
まず、ユーザの指先が、点線700で示される闘値1を通過する。このとき取得される垂直距離hLは、図6(C)の点702に対応する。垂直距離hLが闘値1より小さく(ステップS204でYES)、これまでは非タッチ状態であったことから(ステップS205でNO)、 タッチ判定フラグが「1」に更新され(ステップS206)、「タッチ」イベントが通知される(ステップS208)。
さらにユーザは操作面101に触れ、Pos0に対してタップを行う。ユーザの指先が操作面101に触れたことにより、極短時間の間指先は静止する。このとき、垂直距離hLは0であり、図6(C)の点703に対応する。既にタッチ状態にある(ステップS205でYES)ため、フレーム間移動距離mLが取得される(ステップS214)。指先は静止しており、図6(C)に示されるように、点703と同時に検出されるフレーム間移動距離mLは0である。従ってPos0(x0,y0)が、タッチ開始位置と推定され(ステップS215)、指示位置は移動していない(ステップS216でNO)ため、「タップ」イベントが生成され、保持される(ステップS217)。「タップ」イベントにはタップ位置として、タッチ状態においてユーザの指先が初めに静止したとみなされた位置Pos0(x0,y0)であるタップ位置の座標が含まれる。
そして、ユーザは操作面101から指先を離し、点線701で示される闘値2を通過する。このとき取得される垂直距離hLは、図6(C)の点704に対応する。垂直距離hLが閾値2より大きく(ステップS208でYES)、これまではタッチ状態であったことから(ステップS209でNO)、タッチ判定フラグが「0」に更新され(ステップS210)、「リリース」イベントが通知される(ステップS211)。ステップS217で生成された「タップ」イベントがRAM201上に保持されているため(ステップS212でYES)、タップ位置情報を含む「タップ」イベントが通知される(ステップS213)。これに応じ、表示制御部309は、投影される画像の表示を更新する。このように、本実施形態では、ユーザがタップ操作の前後において操作面に平行な方向(xy平面上)で指先を動かした場合でも、タップ位置としてユーザが実際に触れた操作面101上の位置を特定できる。なお、本実施形態では、タップ位置を、タッチ状態においてユーザの指先が初めに静止したとみなされる位置(タッチ開始位置)によって定義した。しかし、ユーザの指先が最後に静止した位置タッチ終了位置をタップ位置としてもよい。タップ操作の場合、タッチ開始位置とタッチ終了位置はほぼ一致するため、タッチ終了位置をタップ位置としても同様の効果を得ることができる。
次に、図7は、ユーザによってムーブ操作が行われた場合に本実施形態の情報処理装置100が行う処理の流れと、推定されるムーブ操作の開始位置、終了位置を説明する図である。図6と同名称、及び同番号で示されるものの定義は図6に準ずる。図7(B)は、ユーザがpos1からpos2までのムーブ操作する際に、指先がr2⇒r3⇒r4の経路を通過することを示す。ムーブ操作の場合も、まずユーザの指先が、点線700で示される闘値1を通過する。このとき取得される垂直距離hLは、図7(C)の点706に対応する。図6のタップ操作の場合と同様の処理により、この段階で「タッチ」イベントが通知される(ステップS208)。
さらにユーザは操作面101に触れ、pos1(x1,y1)をタッチする。ユーザの指先が操作面101に触れたことにより、極短時間の間、指先は静止する。このとき、垂直距離hLは0であり、図7(C)の点707に対応する。図6のタップ操作の場合と同様に、pos1(x1,y1)が、タッチ開始位置と推定され(ステップS215)、指示位置はまだ移動していない(ステップS216でNO)ため、「タップ」イベントが生成され、保持される(ステップS217)。
この後、ユーザが操作面101に触れたまま指先をpos2まで移動させる。移動中も、フレーム毎に指示位置が検出され、タッチ開始位置から最新の指示位置までの距離が閾値3を越えるまでの間は、「タップ」イベントを生成して待機するまでの処理が繰り返される。タッチ開始位置からの移動距離が闘値3よりも大きくなると(ステップS216でYES)、保持されていた「タップ」イベントが「ムーブスタート」イベントに変更され、通知される(ステップS219)。以降、指先がリリースされるまでは指示位置が検出される度に「ムーブ」イベントが通知される(ステップS220)。表示制御部309は、最新の指示位置をムーブ位置として、表示オブジェクトを移動させるなどの表示制御を行う。なお、本実施形態では、赤外力メラ208から取得されるフレーム毎にイベントを通知しているため、最大の分解能でムーブ操作に応答することができる。ただし、表示制御にかかる処理負荷の条件などによっては、操作に対する追従性が低くなる場合がある。そこで、適切な間隔にフレームを間引いて、所定時間毎に処理を行うようにすれば、情報処理装置100にかかる処理負荷を低減しつつ、ユーザのムーブ操作に対する追従性を良くすることができる。例えば、図7(C)では、5フレーム毎にムーブイベントの通知を行う場合のタイミングを示している。イベントを通知する処理の間隔は、情報処理装置100が扱うグラフィカルユーザインタフェースの内容や、処理能力に応じて設定されればよい。
本実施形態では、ユーザの指先が最後に静止した位置を、タッチ入力の終了位置として推定する。これは、ユーザの指先がムーブ操作の終了する位置を決める際に、極短時間、指先を止める傾向を利用する方法である。従って、指先がpos2でムーブ操作を終えたときに検出される指示位置のxy座標pos2(x2,y2)は、垂直距離hL、フレーム間の移動距離mLがいずれもほぼ0となる図7(C)の点708に対応する。本実施形態では、最後にユーザの指先が静止したpos2(x2,y2)が、ムーブ操作の終了位置として、「リリース」イベントとともに通知されることとなる。
最後に、ユーザが操作面101から指先を離すことで、指先が点線701で示される閾値2を通過する。このとき取得される垂直距離hLは、図7(C)の点706に対応する。垂直距離hLが閾値2より大きく(ステップS208でYES)、これまではタッチ状態であったことから(ステップS209でNO)、タッチ判定フラグが「0」に更新され(ステップS21の、「リリース」イベントが通知される(ステップS211)。「タップ」イベントは既に保持されていないため(ステップS212でNO)、ムーブ操作の終了が確定する。表示制御部309は、ムーブ操作に対する応答を終了する。
以上説明したように、本実施形態では、ユーザの指先が、タッチの開始時および終了時に動きを静止する性質を利用して、タッチ入力の開始位置と終了位置を推定する。従ってタッチの対象が、任意の平面であって、当該平面とユーザの指先の間の距離に闘値を設けてタッチ判定を行う場合でも、タッチ位置(タッチ入力の開始位置と終了位置)の検出精度を向上させることができる。なお、タッチの開始時および終了時にユーザが指先を静止させる傾向は、ユーザが無意識のうちに生じているため、必ずしも起こりえるものではなく、静止する時間も検出の分解能に適した時間であるとは限らない。従って本実施形態では、ユーザの指先が静止したとみなされる位置が検出できなかった場合は、近接開始位置(点705に相当)から近接終了位置(点708に相当)までがムーブ操作がなされた区間として補完される。従って、ユーザの指先が静止した位置を検出できなかったとしても、ムーブ操作が検出不能となることはない。従って、ユーザが無意識に指を静止させなったからと言って、突然ムーブ操作ができなくなるといった不便を生じさせることはない。
また、装置100が非タッチ状態からタッチ状態に移行してから、最初に指先が静止するまでの間、及び、最後に指先が静止してから、タッチ状態から非タッチ状態に移行するまでの間は、「操作面101に対して近接している状態の指先」が検出されている。一般的に、操作面101に対して近接した認識対象によって行われる操作はホバー操作(フローティング操作)と言われる。本実施形態では、「操作面101に対して近接している状態の指先」の動きを利用することで、ホバー操作を認識し、情報処理装置100の操作性をさらに向上させることが可能である。具体的には、「タッチ」イベントが通知されたことに応じて、ホバー操作が開始されたと判断することができる。従って、例えば「タッチ」イベントに含まれる近接開始位置の位置情報を基に、特定の表示オブジェクトの大きさを変更したり、フォーカスを合わせたりして、その後に行われるタッチ操作を誘導することなどが可能となる。
なお、上述した本実施形態では、指示位置が最初に静止したとみなされる位置の情報は、「タップ」イベントを通知するか「ムーブスタート」イベントを通知するかを確定してから通知した。しかし、イベントの確定を待たずにタップ位置の情報を先に通知しておいても構わない。例えば、ホバー操作とタッチ操作が連動した操作を認識する場合には、指示位置が最初に静止したとみなされる位置が特定された時点で位置情報を関連する各機能部に通知することで、より追従性の良い操作環境を提供することが可能となる。
また、本実施形態では、赤外光発光部207と赤外カメラ208を利用して、ユーザの手指の三次元位置を取得したが、ステレオカメラや距離画像センサを利用することもできる。認識対象と操作面との近接状態に基づいてタッチ判定を行う方法は、三次元位置に基づく距離の判定に限らず、例えば感熱センサや静電容量センサ等を利用し、操作面に対してユーザの手指がどの程度近接したかを検出した結果に基づく判定に置き換えてもよい。また、本実施形態では、プロジェクタによる投影対象面をタッチ操作の操作面とする例について説明したが、ヘッドマウントディスプレイを利用し、ARやMR空間上の仮想面(仮想的に表示された物体の表面など)を操作面とする場合にも適応可能である。
<第1の実施形態の変形例>
上述した第1の実施形態では、「タッチ」、「リリース」、「タップ」、「ムーブスタート」、「ムーブ」という5種類のタッチイベントを利用することで、イベント情報を受けた機能部に対して実行すべき動作を一意に特定させていた。それに対し、扱うイベント数を減らすことで、処理を単純化する変形例を説明する。以下、変形例について図面を参照して詳細に説明する。なお、第1の実施形態において説明したのと共通する内容については同番号を付し、適宜説明を省略する。
変形例にかかる情報処理装置100のハードウェア構成、及び機能構成は第1の実施形態に準じる。ただし、変形例では、認識部308が通知するタッチイベントは、「タッチ」、「リリース」、「ムーブ」の3種類となる。変形例では「タッチ」イベントに含まれる位置情報は、タップイベントを示す座標情報となる。つまり、表示制御部309などアプリケーションによる応答に関わる機能部は、「タッチ」イベントと「リリース」イベントが連続して通知された場合にタップ操作が入力されたと解釈して応答する。また、「タッチ」イベントの直後に「ムーブ」イベントが通知された場合には、「リリース」イベントが通知されるまでムーブ操作が入力され続けると解釈して応答する。
変形例において情報処理装置100が実行する、タッチ操作の認識処理は、第1の実施形態と同様、図4のフローチャートに従って実行される。ただし、変形例では、ステップS104のタッチ判定処理は、図8のフローチャートに従う。
図8のフローチャートは、図5のフローチャートと、前処理の段階では共通している。一方で、ステップS212、ステップS213、ステップS217、ステップS218、ステップS219の処理が省略され、かつステップS900及びステップS901の処理が追加されている点が異なる。以下、図5と異なる点を中心に詳細を説明する。
変形例においても、前処理が完了すると、ステップS204において、状態判定部306が、垂直距離hLが闘値1以下であるかを判定する。垂直距離hLが閾値1以下であると判定された場合(ステップS204でYES)はステップS205に進み、既に操作面101がタッチ状態であったかが判定される。そして、それまではタッチ状態ではなかった、すなわち非タッチ状態であったと判定された場合(ステップS205でNO)には、ステップS206で状態判定部306によりタッチ判定フラグが「1」に更新され、ステップS900に進む。
ステップS900では、認識部308が、最新のフレームから検出された指示位置の情報をRAM201に保持し、メイン処理にリターンする。第1の実施形態とは異なり、この段階では「タッチ」イベントは通知されない。
一方、垂直距離hLが閾値1より大きいと判定された場合(ステップS204でNO)はステップS208に進み、状態判定部306が、垂直距離hLが閾値2以上であるかを判定する。垂直距離hLが闘値2以上であると判定された場合(ステップS208でYES)は、ステップS209に進み、既に情報処理装置100が非タッチ状態であったかが判定される。そして、それまでは非タッチ状態ではなかった、すなわちタッチ状態であったと判定された場合(ステップS209でNO)には、ステップS210でタッチ判定フラグが「0」に更新され、ステップS211で認識部308が「リリース」イベントを通知する。変形例において、「リリース」イベントに含まれる位置情報は、タッチ終了位置を示す位置情報である。「リリース」イベントの通知を受けた表示制御部309は、直前に受けたイベントが「タッチ」イベントであれば、タップ操作が入力されたことを解釈し、「タッチ」イベントに含まれたタップ位置情報に基づく表示制御を行う。それに対し、直前に受けたイベントが「ムーブ」イベントであれば、「リリース」イベントに含まれるタッチ終了位置をムーブ操作の終了位置として、位置情報に基づく表示制御を行う。
一方、ステップS205において、情報処理装置100が既にタッチ状態であったと判定された場合(ステップS205でYES)には、ステップS214で、推定部307が、タッチ状態の間に指示位置が静止したとみなされる位置を推定する。ステップS215では、認識部308が、タッチ開始位置から最新のフレームから検出された指示位置までの、指示位置の移動距離が取得し、ステップS216において、移動距離が、所定の閾値3以上であるかを判定する。変形例では、タッチ開始位置からの移動距離が、所定の閾値3より小さいと判定された場合(ステップS216でNO)には、ステップS901に進む。
ステップS901では、認識部308が、「タッチ」イベントを通知する。このように、変形例では、「タッチ」イベントを通知するタイミングが第1の実施形態と異なっている。このとき「タッチ」イベントに含まれる位置情報は、タッチ状態の間に指示位置が最初に静止したとみなされる位置である、タッチ開始位置のxy座標情報である。ステップS901では、このタッチ開始位置の情報が、タップ位置を示す情報としてとして通知される。このようにして、変形例では、「タッチ」イベントにタップ位置の情報を含ませることで、「タップ」イベントを省略している。
一方、タッチ開始位置からの移動距離が、所定の閾値3以上であると判定された場合(ステップS216でYES)には、ステップS220で認識部308により「ムーブ」イベントが通知される。「ムーブ」イベントに含まれる位置情報は、最新の指示位置を示すxy座標の情報である。変形例では、「タッチ」イベントに含まれるタップ位置(タッチ開始位置)の情報が、すなわちムーブ操作の開始位置を示す。従って「タッチ」イベントの直後に「ムーブ」イベントが通知された場合には、通知を受けた表示制御部309が、「タッチ」イベントに含まれるタップ位置の情報を、ムーブ開始位置として解釈するので、「ムーブスタート」イベントが省略可能となる。
以上説明したように、変形例では、「タッチ」、「リリース」、「ムーブ」の3種類のイベントが通知される順番に応じてタップ操作とムーブ操作を区別するため、イベント処理を単純化している。さらに、第1の実施形態と同様、ユーザの指先が、タッチの開始時および終了時に動きを静止する性質を利用して、タッチ入力の開始位置と終了位置を推定する。従ってタッチの対象が、任意の平面であり、当該平面とユーザの指先の間の距離に闘値を設けてタッチ判定を行う場合でも、タッチ操作の開始位置と終了位置の検出精度を向上させることができる。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
300 画像取得部
301 領域検出部
302 位置検出部
303 距離取得部
306 状態判定部
307 推定部
308 認識部
309 表示制御部

Claims (16)

  1. 操作面と認識対象との近接状態に基づいて、前記操作面が前記認識対象によってタッチされているかを判定する状態判定手段と、
    前記認識対象によって示される指示位置を検出する位置検出手段と、
    前記状態判定手段により、前記操作面が前記認識対象によってタッチされていると判定されている間に、前記位置検出手段によって検出された指示位置が初めに静止したとみなされる位置を、前記認識対象によるタッチ入力が開始された位置であると推定する推定手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記推定手段は、さらに、前記状態判定手段により、前記操作面が前記認識対象によってタッチされていると判定されている間において、前記位置検出手段によって検出された指示位置が最後に静止したとみなされる位置を、前記認識対象によるタッチ入力が終了された位置であると推定すること
    を特徴とする請求項1に記載の情報処理装置。
  3. 前記状態判定手段は、前記操作面と前記認識対象との間の距離が、第1の閾値より小さくなってから、第2の閾値より大きくなるまでの間は、前記操作面が前記認識対象によってタッチされていると判定することを特徴とする請求項2に記載の情報処理装置。
  4. 前記第2の閾値は、前記第1の閾値よりも大きいことを特徴とする請求項3に記載の情報処理装置。
  5. 前記推定手段は、さらに、前記操作面と前記認識対象との間の距離が、第1の閾値より小さくなった位置を、前記認識対象によるホバー操作の開始位置であると推定し、前記操作面と前記認識対象との間の距離が、第2の閾値より大きくなった位置を、前記認識対象によるホバー操作の終了位置であると推定することを特徴とする請求項3又は4に記載の情報処理装置。
  6. 前記推定手段によって、前記認識対象によるタッチ入力が開始された位置であると推定された位置と、前記認識対象によるタッチ入力が終了された位置であると推定された位置が一致する場合に、タップ操作が入力されたと認識する認識手段を更に備えることを特徴とする請求項2乃至5のいずれか1項に記載の情報処理装置。
  7. 前記認識手段は、前記推定手段によって、前記認識対象によるタッチ入力が開始された位置であると推定された位置と、前記位置検出手段によって最後に検出された指示位置との間の距離が、所定の閾値より大きい場合に、ムーブ操作が開始されたと認識することを特徴とする請求項6に記載の情報処理装置。
  8. 前記認識手段は、ムーブ操作が開始されたと認識してから、前記位置検出手段によって検出された指示位置が最後に静止したとみなされる位置を、前記ムーブ操作の終了位置と認識することを特徴とする請求項7に記載の情報処理装置。
  9. 前記認識手段は、前記推定手段によって、前記認識対象によるタッチ入力が開始された位置であると推定された位置と、前記認識対象によるタッチ入力が終了された位置であると推定された位置が、一致しない場合に、ムーブ操作が入力されたと認識することを特徴とする請求項6に記載の情報処理装置。
  10. 前記操作面に表示される画像を制御する表示制御手段を更に備え、
    前記表示制御手段は、前記認識手段により、タップ操作が入力されたと認識された場合、前記推定手段によって推定された前記タッチ入力が開始された位置に表示されたオブジェクトに対応する画像を前記操作面に表示させることを特徴とする請求項6乃至9のいずれか1項に記載の情報処理装置。
  11. 前記表示制御手段は、前記認識手段により、ムーブ操作が開始されたと認識された場合、前記推定手段によって推定された前記タッチ入力が開始された位置に表示されたオブジェクトを、前記位置検出手段によって最後に検出された指示位置に移動させることを特徴とする請求項6乃至10のいずれか1項に記載の情報処理装置。
  12. 撮像部が撮像した入力画像から、前記認識対象が写る移動領域を検出する領域検出手段を更に備え、
    前記位置検出手段は、前記領域検出手段によって検出された移動領域の形状に基づいて、前記認識対象による指示位置を検出することを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
  13. 前記撮像部は、赤外光を撮像する赤外カメラであって、前記入力画像は、前記赤外カメラによって検出された赤外光の輝度値によって構成される情報であることを特徴とする請求項12に記載の情報処理装置。
  14. 状態判定手段により、操作面と認識対象との近接状態に基づいて、前記操作面が前記認識対象によってタッチされているかを判定する状態判定工程と、
    位置検出手段により、前記認識対象によって示される指示位置を検出する位置検出工程と、
    推定手段により、前記状態判定工程において前記操作面が前記認識対象によってタッチされていると判定されている間に、前記位置検出工程において検出された指示位置が初めに静止したとみなされる位置を、前記認識対象によるタッチ入力が開始された位置であると推定する推定工程と、
    を有することを特徴とする情報処理装置の制御方法。
  15. コンピュータに読み込ませ実行させることで、前記コンピュータを請求項1に記載の情報処理装置の各手段として機能させるプログラム。
  16. 請求項15に記載のプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
JP2013174678A 2013-08-26 2013-08-26 情報処理装置とその制御方法、コンピュータプログラム、記憶媒体 Active JP6202942B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013174678A JP6202942B2 (ja) 2013-08-26 2013-08-26 情報処理装置とその制御方法、コンピュータプログラム、記憶媒体
US14/464,436 US9513715B2 (en) 2013-08-26 2014-08-20 Information processing apparatus, method for controlling information processing apparatus, and storage medium
CN201410425710.9A CN104423881B (zh) 2013-08-26 2014-08-26 信息处理装置及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013174678A JP6202942B2 (ja) 2013-08-26 2013-08-26 情報処理装置とその制御方法、コンピュータプログラム、記憶媒体

Publications (3)

Publication Number Publication Date
JP2015043154A true JP2015043154A (ja) 2015-03-05
JP2015043154A5 JP2015043154A5 (ja) 2016-09-29
JP6202942B2 JP6202942B2 (ja) 2017-09-27

Family

ID=52479895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013174678A Active JP6202942B2 (ja) 2013-08-26 2013-08-26 情報処理装置とその制御方法、コンピュータプログラム、記憶媒体

Country Status (3)

Country Link
US (1) US9513715B2 (ja)
JP (1) JP6202942B2 (ja)
CN (1) CN104423881B (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017027311A (ja) * 2015-07-21 2017-02-02 キヤノン株式会社 情報処理装置、その制御方法、プログラム、および記憶媒体
JP2017146927A (ja) * 2016-02-19 2017-08-24 ソニーモバイルコミュニケーションズ株式会社 制御装置、制御方法及びプログラム
WO2017149719A1 (ja) * 2016-03-03 2017-09-08 日立マクセル株式会社 入力操作検出装置及び映像投射装置
JP2018055257A (ja) * 2016-09-27 2018-04-05 キヤノン株式会社 情報処理装置、およびその制御方法ならびにプログラム
WO2018092627A1 (ja) * 2016-11-21 2018-05-24 セイコーエプソン株式会社 プロジェクターシステム
JP2018525709A (ja) * 2015-06-30 2018-09-06 シナプティクス インコーポレイテッド ランドリフトイベントの位置フィルタリング
WO2019159587A1 (ja) * 2018-02-14 2019-08-22 パナソニックIpマネジメント株式会社 リスク評価システム及びリスク評価方法
JP2019204539A (ja) * 2019-07-31 2019-11-28 富士通株式会社 入力装置、入力操作検出方法及び入力操作検出用コンピュータプログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9218090B2 (en) * 2013-04-03 2015-12-22 Dell Products, Lp System and method for controlling a projector via a passive control strip
JP6349838B2 (ja) * 2014-01-21 2018-07-04 セイコーエプソン株式会社 位置検出装置、位置検出システム、及び、位置検出装置の制御方法
US9563956B2 (en) * 2014-03-26 2017-02-07 Intel Corporation Efficient free-space finger recognition
WO2016036352A1 (en) * 2014-09-03 2016-03-10 Hewlett-Packard Development Company, L.P. Presentation of a digital image of an object
US9983745B2 (en) * 2014-09-19 2018-05-29 Kabushiki Kaisha Tokai Rika Denki Seisakusho Touch sensor device and controller
WO2016064311A1 (en) * 2014-10-22 2016-04-28 Telefonaktiebolaget L M Ericsson (Publ) Method and device for providing a touch-based user interface
US10001857B2 (en) * 2015-05-13 2018-06-19 Seiko Epson Corporation Display apparatus and method of controlling display apparatus
JP6566767B2 (ja) 2015-07-29 2019-08-28 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、コンピュータプログラム、及び記憶媒体
US10685211B2 (en) 2015-08-04 2020-06-16 Sony Interactive Entertainment Inc. Head-mounted display, display control method, and program
US10963063B2 (en) * 2015-12-18 2021-03-30 Sony Corporation Information processing apparatus, information processing method, and program
JP2017134638A (ja) * 2016-01-28 2017-08-03 株式会社東海理化電機製作所 操作検出装置
CN107402654B (zh) * 2016-05-18 2021-07-16 原相科技股份有限公司 触控侦测方法以及触控侦测系统
KR102604520B1 (ko) * 2016-08-17 2023-11-22 삼성전자주식회사 온라인으로 상품을 구매하는 방법 및 장치
KR102469722B1 (ko) * 2018-09-21 2022-11-22 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
CN113867522A (zh) * 2021-08-31 2021-12-31 歌尔科技有限公司 一种互动投影控制方法及装置、感应垫、互动投影仪

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124839A (ja) * 1997-07-07 1999-01-29 Sony Corp 情報入力装置
JP3933139B2 (ja) * 2004-03-09 2007-06-20 日産自動車株式会社 コマンド入力装置
JP2010042207A (ja) * 2008-08-18 2010-02-25 Fujifilm Corp 入力装置、医療機器
JP2011175623A (ja) * 2010-01-29 2011-09-08 Shimane Prefecture 画像認識装置および操作判定方法並びにプログラム
JP2012073658A (ja) * 2010-09-01 2012-04-12 Shinsedai Kk コンピュータシステム
JP2014220720A (ja) * 2013-05-09 2014-11-20 株式会社東芝 電子機器、情報処理方法及びプログラム

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241733A (ja) 1992-02-27 1993-09-21 Hitachi Ltd タッチパネルの入力誤差補正方式
US6624833B1 (en) * 2000-04-17 2003-09-23 Lucent Technologies Inc. Gesture-based input interface system with shadow detection
EP1739528B1 (en) * 2000-07-05 2009-12-23 Smart Technologies ULC Method for a camera-based touch system
US20020015064A1 (en) * 2000-08-07 2002-02-07 Robotham John S. Gesture-based user interface to multi-level and multi-modal sets of bit-maps
US20050122308A1 (en) * 2002-05-28 2005-06-09 Matthew Bell Self-contained interactive video display system
US7728825B2 (en) * 2005-03-22 2010-06-01 Microsoft Corporation Targeting in a stylus-based user interface
US20100045705A1 (en) * 2006-03-30 2010-02-25 Roel Vertegaal Interaction techniques for flexible displays
US8284165B2 (en) * 2006-10-13 2012-10-09 Sony Corporation Information display apparatus with proximity detection performance and information display method using the same
US8519963B2 (en) * 2007-01-07 2013-08-27 Apple Inc. Portable multifunction device, method, and graphical user interface for interpreting a finger gesture on a touch screen display
US8130211B2 (en) * 2007-09-24 2012-03-06 Microsoft Corporation One-touch rotation of virtual objects in virtual workspace
US20090174679A1 (en) * 2008-01-04 2009-07-09 Wayne Carl Westerman Selective Rejection of Touch Contacts in an Edge Region of a Touch Surface
US8627231B2 (en) * 2008-03-28 2014-01-07 Sprint Communications Company L.P. List-position locator
US8375336B2 (en) * 2008-05-23 2013-02-12 Microsoft Corporation Panning content utilizing a drag operation
US8514251B2 (en) * 2008-06-23 2013-08-20 Qualcomm Incorporated Enhanced character input using recognized gestures
US9030418B2 (en) * 2008-06-24 2015-05-12 Lg Electronics Inc. Mobile terminal capable of sensing proximity touch
US8502787B2 (en) * 2008-11-26 2013-08-06 Panasonic Corporation System and method for differentiating between intended and unintended user input on a touchpad
US8549432B2 (en) * 2009-05-29 2013-10-01 Apple Inc. Radial menus
US20120327009A1 (en) * 2009-06-07 2012-12-27 Apple Inc. Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface
US8547327B2 (en) * 2009-10-07 2013-10-01 Qualcomm Incorporated Proximity object tracker
US20110181510A1 (en) * 2010-01-26 2011-07-28 Nokia Corporation Gesture Control
US20110185320A1 (en) * 2010-01-28 2011-07-28 Microsoft Corporation Cross-reference Gestures
US8751970B2 (en) * 2010-02-25 2014-06-10 Microsoft Corporation Multi-screen synchronous slide gesture
US9098138B2 (en) * 2010-08-27 2015-08-04 Apple Inc. Concurrent signal detection for touch and hover sensing
JP5708083B2 (ja) * 2011-03-17 2015-04-30 ソニー株式会社 電子機器、情報処理方法、プログラム、及び電子機器システム
US9195321B2 (en) * 2011-03-17 2015-11-24 Intellitact Llc Input device user interface enhancements
CN102841733B (zh) * 2011-06-24 2015-02-18 株式会社理光 虚拟触摸屏系统以及自动切换交互模式的方法
US10082950B2 (en) * 2011-11-09 2018-09-25 Joseph T. LAPP Finger-mapped character entry systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124839A (ja) * 1997-07-07 1999-01-29 Sony Corp 情報入力装置
JP3933139B2 (ja) * 2004-03-09 2007-06-20 日産自動車株式会社 コマンド入力装置
JP2010042207A (ja) * 2008-08-18 2010-02-25 Fujifilm Corp 入力装置、医療機器
JP2011175623A (ja) * 2010-01-29 2011-09-08 Shimane Prefecture 画像認識装置および操作判定方法並びにプログラム
JP2012073658A (ja) * 2010-09-01 2012-04-12 Shinsedai Kk コンピュータシステム
JP2014220720A (ja) * 2013-05-09 2014-11-20 株式会社東芝 電子機器、情報処理方法及びプログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018525709A (ja) * 2015-06-30 2018-09-06 シナプティクス インコーポレイテッド ランドリフトイベントの位置フィルタリング
JP7007916B2 (ja) 2015-06-30 2022-01-25 シナプティクス インコーポレイテッド ランドリフトイベントの位置フィルタリング
JP2017027311A (ja) * 2015-07-21 2017-02-02 キヤノン株式会社 情報処理装置、その制御方法、プログラム、および記憶媒体
JP2017146927A (ja) * 2016-02-19 2017-08-24 ソニーモバイルコミュニケーションズ株式会社 制御装置、制御方法及びプログラム
WO2017149719A1 (ja) * 2016-03-03 2017-09-08 日立マクセル株式会社 入力操作検出装置及び映像投射装置
JP2018055257A (ja) * 2016-09-27 2018-04-05 キヤノン株式会社 情報処理装置、およびその制御方法ならびにプログラム
WO2018092627A1 (ja) * 2016-11-21 2018-05-24 セイコーエプソン株式会社 プロジェクターシステム
JP2018085552A (ja) * 2016-11-21 2018-05-31 セイコーエプソン株式会社 プロジェクターシステム
US10754474B2 (en) 2016-11-21 2020-08-25 Seiko Epson Corporation Projector system
WO2019159587A1 (ja) * 2018-02-14 2019-08-22 パナソニックIpマネジメント株式会社 リスク評価システム及びリスク評価方法
JP2019204539A (ja) * 2019-07-31 2019-11-28 富士通株式会社 入力装置、入力操作検出方法及び入力操作検出用コンピュータプログラム

Also Published As

Publication number Publication date
CN104423881A (zh) 2015-03-18
CN104423881B (zh) 2018-09-25
US9513715B2 (en) 2016-12-06
JP6202942B2 (ja) 2017-09-27
US20150054735A1 (en) 2015-02-26

Similar Documents

Publication Publication Date Title
JP6202942B2 (ja) 情報処理装置とその制御方法、コンピュータプログラム、記憶媒体
JP2015043154A5 (ja)
US9400562B2 (en) Image projection device, image projection system, and control method
US10156938B2 (en) Information processing apparatus, method for controlling the same, and storage medium
US9916043B2 (en) Information processing apparatus for recognizing user operation based on an image
JP6452456B2 (ja) 情報処理装置とその制御方法、プログラム、記憶媒体
US10642422B2 (en) Information processing apparatus, control method for the information processing apparatus, and storage medium
KR102347248B1 (ko) 터치 제스쳐 인식 방법 및 장치
US9035889B2 (en) Information processing apparatus and information processing method
US20160077631A1 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium
JP2015022624A (ja) 情報処理装置およびその制御方法、コンピュータプログラム、記憶媒体
JP2010244480A (ja) ジェスチャ認識に基づく制御装置及び制御方法
JP2010205223A (ja) 仮想対象に対するジェスチャーに従う制御を行うシステム及び装置
US10379678B2 (en) Information processing device, operation detection method, and storage medium that determine the position of an operation object in a three-dimensional space based on a histogram
JP6245938B2 (ja) 情報処理装置とその制御方法、コンピュータプログラム、記憶媒体
US9489077B2 (en) Optical touch panel system, optical sensing module, and operation method thereof
EP2957998A1 (en) Input device
US10416814B2 (en) Information processing apparatus to display an image on a flat surface, method of controlling the same, and storage medium
JP6555958B2 (ja) 情報処理装置、その制御方法、プログラム、および記憶媒体
JP6579866B2 (ja) 情報処理装置とその制御方法、プログラム、記憶媒体
JP6570376B2 (ja) 情報処理装置、その制御方法、プログラム、記憶媒体
TWI464626B (zh) 移動感測裝置以及移動感測方法
US10185490B2 (en) Information processing apparatus, information processing method, and storage medium
JP2018181169A (ja) 情報処理装置、及び、情報処理装置の制御方法、コンピュータプログラム、記憶媒体
TWI697827B (zh) 控制系統及其控制方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160809

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170621

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: 20170801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170829

R151 Written notification of patent or utility model registration

Ref document number: 6202942

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151