(57)【特許請求の範囲】
【請求項１】
入力領域においてタッチされているタッチ位置を検出する検出手段と、
前記検出手段により検出されているタッチ位置が増加したことに基づいて、前記検出手段により検出されている複数のタッチ位置のうち、最新のタッチ位置ではないタッチ位置が有効かを判定する判定手段と、
前記判定手段により有効と判定されたタッチ位置に関する情報を、タッチ操作を入力するための入力情報として認識する認識手段と、
を備え、
前記判定手段は、前記最新のタッチ位置ではないタッチ位置が有効かを、前記最新のタッチ位置ではないタッチ位置がタッチされ続けている時間の長さに基づいて判定することを特徴とする情報処理装置。
【請求項２】
前記判定手段は、前記最新のタッチ位置ではないタッチ位置が、マルチタッチ操作を構成するタッチ位置として有効かを判定し、
前記認識手段は、前記複数のタッチ位置のうち最新のタッチ位置と前記判定手段により有効と判定されたタッチ位置とを含む複数のタッチ位置に関する情報を、マルチタッチ操作を入力するための入力情報として認識することを特徴とする請求項１の情報処理装置。
【請求項３】
前記判定手段は、前記最新のタッチ位置ではないタッチ位置のうち、前記タッチされ続けている時間の長さが所定の長さより長いタッチ位置は、有効ではないと判定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記判定手段は、前記最新のタッチ位置ではないタッチ位置について、タッチされ続けていて、かつ略停止している時間の長さに基づいて、前記最新のタッチ位置ではないタッチ位置が有効かを判定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記判定手段は、前記最新のタッチ位置ではないタッチ位置のうち、タッチされ続けていて、かつ略停止している時間の長さが所定の長さより長いタッチ位置は、有効ではないと判定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
入力領域においてタッチされているタッチ位置を検出する検出手段と、
前記検出手段により検出されている複数のタッチ位置のうち、一部のタッチ位置が所定の距離以上移動した最新の移動を検出したことに基づいて、前記複数のタッチ位置のうち、前記最新の移動を検出したタッチ位置ではないタッチ位置が有効かを判定する判定手段と、
前記判定手段により有効と判定されたタッチ位置に関する情報を、タッチ操作を入力するための入力情報として認識する認識手段と、
を備え、
前記判定手段は、前記最新の移動を検出したタッチ位置ではないタッチ位置において、前記所定の距離以上の移動が検出されていない時間の長さに基づいて、前記最新の移動を検出したタッチ位置ではないタッチ位置が有効かを判定することを特徴とする情報処理装置。
【請求項７】
前記判定手段は、前記最新の移動を検出したタッチ位置ではないタッチ位置が、マルチタッチ操作を構成するタッチ位置として有効かを判定し、
前記認識手段は、前記複数のタッチ位置のうち最新のタッチ位置と前記判定手段により有効と判定されたタッチ位置とを含む複数のタッチ位置に関する情報を、マルチタッチ操作を入力するための入力情報として認識することを特徴とする請求項６の情報処理装置。
【請求項８】
前記判定手段は、前記最新の移動を検出したタッチ位置ではないタッチ位置のうち、前記所定の距離以上の移動が検出されていない時間の長さが所定の時間より長いタッチ位置は、有効ではないと判定することを特徴とする請求項６または７に記載の情報処理装置。
【請求項９】
検出手段により、入力領域においてタッチされているタッチ位置を検出する検出工程と、
判定手段により、前記検出手段により検出されているタッチ位置が増加したことに基づいて、前記検出手段により検出されている複数のタッチ位置のうち、最新のタッチ位置ではないタッチ位置が有効かを判定する判定工程と、
認識手段により、前記判定工程において有効と判定されたタッチ位置に関する情報を、タッチ操作を入力するための入力情報として認識する認識工程と、
を備え、
前記判定工程では、前記最新のタッチ位置ではないタッチ位置が有効かを、前記最新のタッチ位置ではないタッチ位置がタッチされ続けている時間の長さに基づいて判定することを特徴とする情報処理装置の制御方法。
【請求項１０】
検出手段により、入力領域においてタッチされているタッチ位置を検出する検出手段と、
判定手段により、前記検出手段により検出されている複数のタッチ位置のうち、一部のタッチ位置が所定の距離以上移動した最新の移動を検出したことに基づいて、前記複数のタッチ位置のうち、前記最新の移動を検出したタッチ位置ではないタッチ位置が有効かを判定する判定工程と、
認識手段により、前記判定工程において有効と判定されたタッチ位置に関する情報を、タッチ操作を入力するための入力情報として認識する認識工程と、
を備え、
前記判定工程では、前記最新の移動を検出したタッチ位置ではないタッチ位置において、前記所定の距離以上の移動が検出されていない時間の長さに基づいて、前記最新の移動を検出したタッチ位置ではないタッチ位置が有効かを判定することを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータに読み込ませ実行させることで、請求項１乃至８のいずれか１項に記載された情報処理装置として動作させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチ操作が可能な装置において意図しないタッチを認識されることによる誤動作を改善する技術に関する。
【背景技術】
【０００２】
近年、ユーザの指あるいはスタイラスにより画面がタッチされたことに応答して、タッチされた位置のＸ，Ｙ座標値を入力値として取り込み、この入力値に基づいて各種処理を実行するタッチ入力機器が普及している。
このようなタッチ入力機器では、多くの場合、できるだけ装置全体を画面として設計することが望まれる。画面が装置の大部分を占めているような場合には、ユーザが手でタッチ入力機器を保持すると、無意識に画面をタッチしてしまう事も起こり得る。マルチタッチ操作が可能なタッチ入力機器において、上述したようにユーザが誤って画面を触ってしまった場合には、ユーザの意図よりも多くのタッチ入力が認識されてしまい、誤動作の原因となり得る。
従来、ユーザがテーブルトップ型のタッチ入力機器に手を触れた場合に、ユーザの指以外の部分が認識されたか否かによって、タッチ操作ではなく誤って画面に触れたと判定する技術が知られている。この場合、誤って触れたとされる領域を、タッチ入力を検出する対象から除外することで、誤認識を防止している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平２０１１‐１３４０６９号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、装置を支持するために画面の一部を触ってしまっているような場合には、この点がタッチされていると判定されることは好ましくない。
上記一部を触った状態で、ユーザが本来意図する操作を行おうとして、他のタッチ操作を行った場合を考える。
この場合、マルチタッチ操作が可能な製品であれば、最初に触っている一点と、新しく触った一点とによるマルチタッチとして検出されてしまい誤動作が生じる可能性がある。
本発明は上記課題に鑑みてなされたものであり、ユーザが本来意図する操作を行おうとしている状況を考慮し、好適なタイミングで他のタッチ点を無効とすることを主な目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は、入力領域においてタッチされているタッチ位置を検出する検出手段と、前記検出手段により検出されているタッチ位置が増加したことに基づいて、前記検出手段により検出されている複数のタッチ位置のうち、最新のタッチ位置ではないタッチ位置が有効かを判定する判定手段と、前記判定手段により有効と判定されたタッチ位置に関する情報を、タッチ操作を入力するための入力情報として認識する認識手段と、を備え、前記判定手段は、前記最新のタッチ位置ではないタッチ位置が有効かを、前記最新のタッチ位置ではないタッチ位置がタッチされ続けている時間の長さに基づいて判定することを特徴とする情報処理装置。
【発明の効果】
【０００６】
本発明によれば、マルチタッチの操作が可能な装置において、ユーザが本来意図する操作を行おうとしている状況を推測／考慮し、好適なタイミングで他の接触点を無効とする。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置の外観と構成の一例を示す図
【図２】ユーザのタッチ入力を認識する処理を示すフローチャート
【図３】タッチ点の入力が有効か無効かを判定する処理を示すフローチャート
【図４】情報処理装置の操作例を示す図
【図５】ユーザのタッチ入力を認識する処理を示すフローチャート
【図６】タッチ点の入力が有効か無効かを判定する処理を示すフローチャート
【図７】情報処理装置の操作例を示す図
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための形態について、図面を参照しながら説明する。なお、以下で説明する実施形態は、本発明を具体的に実施した場合の一例を示すものであり、これに限るものではない。
【０００９】
［第１の実施形態］
図１は、本実施形態に適用可能な情報処理装置１００の外観とハードウェア構成の一例を示す。図１（ａ）は、情報処理装置１００の一例である携帯端末を画面の正面及び側面から見た外観を示す図である。図１（ａ）において、匡体１０１は、入力領域１０２の外周部であり、合成樹脂や金属等で形成される。ユーザが情報処理装置１００を支持する場合、通常はこの匡体１０１の一部を手で掴むことになる。入力領域１０２は、情報処理装置１００に対するユーザのタッチによる入力を受け付ける領域であり、タッチセンサ等で構成される。本実施形態では、入力領域１０２は表示部であるディスプレイ上にタッチセンサを設置したタッチパネルディスプレイによって構成されるものとする。この表示画面には、情報処理装置１００、あるいは情報処理装置１００と接続された装置を操作するためのインタフェースを表示する。以降、本実施形態では、図１（ａ）のような携帯端末である情報処理装置１００の例を説明する。
【００１０】
本実施形態では、ユーザが入力領域１０２に触れた点（以下タッチ点と呼ぶ）のうち、情報処理装置１００を手で支持するために入力領域１０２に触れた点は、情報処理装置１００を操作するための入力ではないと考えられるため、入力としては無効とする。なお、タッチ点による入力が有効か無効かを判定する処理は、入力領域１０２において検出されているタッチ点が複数であって、かつ検出されるタッチ点の数が増加した時に実行される。これは、タッチ点の数が増加した時には、ユーザが何らかの操作を開始しようとしている可能性が高いため、有効な入力を正確に認識する必要があるからである。また、本実施形態では、検出された複数のタッチ点のうち、最新のタッチ点は、ユーザが操作を行うために入力領域１０２に触れた可能性が高いため、検出された複数のタッチ点のうち、最新ではないタッチ点が有効か無効かを判定する。
【００１１】
図１（ｂ）は、本実施形態に適用可能な情報処理装置１００のハードウェア構成を示すブロック図の一例である。図１（ｂ）において、ＣＰＵ１１１は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔである。また、ＲＯＭ１１２は、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙであり、ＨＤＤ１１３は、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅである。本実施形態では、ＣＰＵ１１１が、ＲＯＭ１１２やＨＤＤ１１３に格納されている制御プログラムを読み出して実行し、各デバイスを制御する。この制御プログラムは、本実施形態で説明される各種動作を情報処理装置１００に実行させるための制御プログラムである。ＲＯＭ１１２は、それらの制御プログラムやそのプログラムに利用される各種データを保持する。ＲＡＭ１１４は、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙであり、ＣＰＵ１１１の上記プログラムのワーク領域、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを有する。ＨＤＤ１１３は、上述の各種制御プログラムや各種データを格納する。タッチパネルディスプレイ１１５は、入力領域１０２におけるユーザの操作情報を取り込むためのタッチセンサ等と表示出力を行う表示画面を兼ねるデバイスである。出力Ｉ／Ｆ１１６はネットワーク等を介してディスプレイ以外の出力装置に各種情報を出力するためのインタフェースである。バス１１７は、ＣＰＵ１１１の制御の対象とする構成要素を指示するアドレス信号、各構成要素を制御するためのコントロール信号、各構成機器相互間でやりとりされるデータの転送を行う。なお、上述した制御プログラムは、ＲＯＭ１１２又はＨＤＤ１１３に予め記憶されていてもよいし、必要に応じてネットワークを介して外部装置などから受理し、ＲＯＭ１１２又はＨＤＤ１１３に記憶しても良い。ＣＰＵ１１１は、ＲＯＭ１１２又はＨＤＤ１１３等に記憶されているプログラムを実行することにより、後述する情報処理装置１００の各種機能あるいは後述するフローチャートの各種動作を実行する。
【００１２】
図１（ｃ）は、情報処理装置１００のソフトウェアの構成を示すブロック図の一例である。検出部１２１は、タッチパネルディスプレイ１１５のタッチセンサからの信号を取得し、ユーザによってタッチされているタッチ点に関する情報を検出する。タッチ点に関する情報とは、例えば入力領域１０２内でのタッチ点の位置を示す座標情報、その位置でタッチ点が検出された検出時刻、検出された順番等を示す情報である。判定制御部１２２は、検出部１２１が検出したタッチ点の数の変化を基に、判定部１２３を制御して、検出されているタッチ点が情報処理装置１００に対する入力として有効か無効か判定する処理を実行させる。判定部１２３は、判定制御部１２２の指示に従い、タッチ点が情報処理装置１００に対する入力として有効か無効かを判定する。保持部１２４は、検出部１２１が検出したタッチ点に関する情報を保持し、判定制御部１２２及び判定部１２３は保持された情報を参照して動作する。認識部１２５は、判定部１２３による判定結果を受け、保持部１２４に保持された中から、有効なタッチ点に関する情報を取得し、入力情報として認識する。ユーザのタッチによる入力が認識された場合には、入力に対応する結果を出力させる制御を行う。本実施形態では、これらの各機能部は、ＣＰＵ、ＲＯＭ、ＲＡＭによって構成され、ＣＰＵがＲＯＭに格納されたプログラムをＲＡＭに展開し実行することでその機能を実現する。
【００１３】
次に、図２のフローチャートに従い、本実施形態においてユーザのタッチ入力を認識する処理の流れを説明する。
【００１４】
まず、ステップＳ２０１において、検出部１２１がユーザによるタッチ点に関する情報を検出する。ここでは、ユーザが操作のために入力領域１０２において指をタッチさせたことをタッチパネルディスプレイ１１５のタッチセンサが検知し、検出部１２１は、タッチセンサから得られる情報を基に、入力領域１０２上でタッチされた位置の情報を検出する。更に、最初にタッチ点が検出された時刻（検出開始時刻）とタッチ点のＩＤを検出し、保持部１２４に保持する。同じＩＤのタッチ点が、異なる位置で検出された場合には、位置情報を更新するとともに、検出開始時間とは別に現在の位置における検出時刻を更新して保持する。本実施形態において、位置の情報は、入力領域１０２の左上を原点とした座標平面に基づく座標（ｘ，ｙ）で示される。またＩＤとは、検出部１２１が検出したタッチ点を識別するための識別情報である。本実施形態では、入力領域１０２を何番目にタッチした点かに基づき、検出順に１、２、…という番号のＩＤを割り当てることとする。また、検出部１２１は、検出されていたユーザの指によるタッチが、指と入力領域１０２とのタッチを維持したまま移動したことを検出した場合には、新たに位置の情報と、その位置でタッチ点を検出した時間の情報を追加する。さらに、入力領域１０２から離れた場合は、保持部１２４から離れたタッチ点に関する情報を削除する。
【００１５】
次に、ステップＳ２０２において、判定制御部１２２が、検出部１２１によって複数のタッチ点が検出されているかを判定する。この際、判定制御部１２２は、保持部１２４に保持された情報を参照し、保持されたＩＤの数からタッチ点数を求め、検出されているタッチ点の数が複数か否かを判定する。ステップＳ２０２において、複数のタッチ点が検出されていると判定された場合には、処理はステップＳ２０３に進む。複数のタッチ点が検出されていると判定されていない場合には、処理はステップＳ２０５に進む。
【００１６】
ステップＳ２０３では、判定制御部１２２が、検出部１２１によって検出されているタッチ点の数が増加したか否かを判定する。本実施形態では、検出部１２１が検出した複数のタッチ点に関する情報に基づき、検出部１２１によって検出されているタッチ点の数が増加したと判定された場合に、タッチ点による入力の有効性を判定する処理を実行するか否か判定する。これは、ユーザによるタッチ点の数が変わった時に情報処理装置１００に対する新しい操作が始まる可能性が高く、ユーザが入力する目的のためにタッチした点を正確に認識する必要があるためである。本実施形態では、検出部１２１は、ユーザが入力領域１０２を新たにタッチしたり、タッチした指を動かしたり、タッチを離したりして、検出しているタッチ点の状態が変化する度に、保持部１２４に保持されたタッチ点に関する情報を更新する。保持されている情報のうち、ＩＤは検出部１２１が検出しているタッチ点の識別情報であり、ＩＤの数が検出されているタッチ点の数に相当する。また、本実施形態では、タッチ点が検出された順番に対応した番号をＩＤとして割り当てる。従って、判定制御部１２２は、保持部１２４に保持された情報が更新される度にＩＤの情報を参照し、前回処理したフローでのタッチ点の数と、今回処理したフローのタッチ点の数を比較して、タッチ点の数が増加したか否かを判定する。検出されているタッチ点の数が増加したと判定された場合には、判定制御部１２２が判定部１２３に対し、タッチ点の有効性の判定を実行するように指示し、処理はステップＳ２０４に進む。一方、検出されているタッチ点の数が増加していないと判定された場合には、判定部１２３によるタッチ点の有効性を判定する処理は必要ないため、処理はステップＳ２０５に進む。
【００１７】
次に、ステップＳ２０４において、判定部１２３が、検出されている各タッチ点による情報処理装置１００に対する入力が有効か無効かを判定する。本実施形態では、タッチ点の数が増えた時に、既に所定時間以上、入力領域１０２に接触しているタッチ点による入力は、無効であると判定する。そして、所定時間以上検出されていないタッチ点による入力は有効であると判定し、判定した結果を認識部１２５に通知する。ステップＳ２０４において実行される処理の詳細は後述する。これは、ユーザが何らかの操作を開始するためにタッチ点を増やした時点において、既に所定以上の長い時間に渡ってタッチされ続けているタッチ点は、開始される操作とは関連しない可能性が高いためである。
【００１８】
一方、ステップＳ２０５では、検出されている全てのタッチ点による入力を有効であると判定し、判定結果示す情報を認識部１２５に通知する。
【００１９】
そして、ステップＳ２０６において、認識部１２５がタッチ点による有効な入力情報を認識し、ユーザのタッチ入力を認識する処理を終了する。
【００２０】
ここで、図３は、本実施形態のステップＳ２０４において実行される、タッチ点が入力として有効か無効かを判定する処理を示すフローチャートである。
【００２１】
まず、ステップＳ３０１では、判定部１２３が、最新のタッチ点を、情報処理装置１００への入力として有効であると判定する。そして以下のステップでは、最新ではないタッチ点についてのみ処理を行う。
【００２２】
ステップＳ３０２では、判定部１２３は、検出されているタッチ点のうち、最新ではないタッチ点の検出開始時刻を取得する。検出開始時刻とは、あるタッチ点が検出部１２１に最初に検出された時刻である。判定部１２３は、ステップＳ２０１で保持部１２４に保持されたタッチ点に関する情報を参照し、保持されている各タッチ点のＩＤ、現在の位置における検出時刻、そして検出開始時刻の情報を取得することができる。
【００２３】
次に、ステップＳ３０３において、判定部１２３は、取得した検出開始時刻と現在時刻との差分から、タッチ点が検出されている時間である検出時間を求める。ここで現在時刻とは、ステップＳ２０４の処理が開始された時刻であり、通常は最新のタッチ点の検出開始時刻に対応するため、保持部１２４に保持された情報から取得することができる。
【００２４】
ステップＳ３０４において、判定部１２３は、ステップＳ３０３で求めた検出時間と所定の閾値ａ（第一の閾値）の長さを比較する。ここで閾値ａは、ユーザがタッチ入力による操作を行うのにかかる一般的な時間より長い間、入力領域１０２と接触し続けていることを判定するための時間の閾値であって、任意に設定可能な値である。そして、ステップＳ３０５において、判定部１２３は、最新ではないタッチ点のうち、検出時間が閾値ａ以上のタッチ点の入力は無効、閾値ａ未満のタッチ点の入力を有効と判定する。ステップＳ３０５の処理が終了すると、処理は図２に示されるユーザのタッチ入力を認識する処理に戻る。
【００２５】
ここで、具体的に、第１の実施形態による情報処理装置１００をユーザが操作する操作例１を説明する。操作例１で操作する情報処理装置１００は、ユーザがタッチ操作を開始するために入力領域１０２を新たにタッチした時点で、既に３秒以上検出され続けていたタッチは、入力として認識しないように設定されているものとする。図４は、情報処理装置１００の操作例を示す図である。まず図４（ａ）は、ユーザが情報処理装置１００を持った状態を、入力領域１０２側から見た図である。ユーザは左手で情報処理装置１００を持っており、ユーザの左手の親指４０１が入力領域１０２に触れている。従って、検出部１２１によって親指４０１によるタッチ点の情報が検出され、保持部１２４に保持される（ステップＳ２０１）。タッチ点の位置は座標（１０，２００）、検出開始時刻は０［ｍｓ］、ＩＤは１として、タッチ点に関する情報を保持部１２４に保持する。この状態では、検出部１２１に検出されているタッチ点は複数ではないため、タッチ点による入力は全て有効であると判定され（ステップＳ２０５）、判定結果を受け取った認識部１２５によって入力情報が認識される（ステップＳ２０６）。
【００２６】
次に図４（ｂ）は、ユーザが図４（ａ）のように左手で情報処理装置１００を支持したまま、さらに右手でタッチした状態を、入力領域１０２側から見た図である。この時、ユーザの左手の親指４０１と右手の人差指４０２が入力領域１０２に触れている。従って、検出部１２１は、ユーザの親指４０１と、人差指４０２によるタッチ点を検出する（ステップＳ２０１）。各タッチ点に関する情報は、まず親指４０１はそのまま位置が座標（１０，２００）、検出された時刻が０［ｍｓ］、タッチＩＤが１であるものとする。そして、人差指４０２による最新のタッチ点は、位置が座標（２５０，１００）、検出開始時刻が５０００［ｍｓ］、ＩＤが２として情報が保持部１２４に保持される。この場合、検出されているタッチ点は２で複数であり、かつ１点から２点にタッチ点の数が増加していることから、判定制御部１２２は、タッチ点による入力が有効か無効かを判定する処理を行うと判定部１２３に指示する（ステップＳ２０３）。そして判定部１２３は、ＩＤが２であるタッチ点（以下、タッチ点２）について、最新のタッチ点であるため、入力として有効と判定する（ステップＳ３０１）。そして、その他のタッチ点による入力が有効か無効かを判定するため、保持部１２４に保持された情報から、検出されているタッチ点のうち、最新でないタッチ点の検出開始時刻を取得する（ステップＳ３０２）。操作例１では、最新のタッチ点は、タッチ点２であり、最新ではないタッチ点は、ＩＤが１であるタッチ点（タッチ点１）である。タッチ点１の検出開始時刻は０［ｍｓ］である。次に、判定部１２３は、取得した検出開始時刻と、最新のタッチ点が検出された現在時刻との差分から、検出時間を求める（ステップＳ３０３）。操作例１では、現在時刻は５０００［ｍｓ］であるため、検出時間は５０００［ｍｓ］であるとわかる。次に、判定部１２３は、検出時間と、所定の閾値ａとの長さを比較する（ステップＳ３０４）。ここで、閾値ａが３０００［ｍｓ］であるとすると、タッチ点１は検出時間が閾値ａよりも長いと判定される。従って、判定部１２３によって、タッチ点１による入力は無効であると判定される（ステップＳ３０５）。そして、有効とされたタッチ点２の情報が認識部１２５に通知され（ステップＳ２０５）、入力情報として、タッチ点２の位置情報である座標（２５０，１００）が認識部１２５に認識される（ステップＳ２０６）。
【００２７】
このように、操作例１では、本実施形態を適用することで、マルチタッチの操作が可能な情報処理装置１００において、ユーザが装置を支持する為に入力領域１０２に触れたタッチ点１が入力として認識されるために誤動作が発生することを避けることができる。
【００２８】
以上述べたように、第１の実施形態では、複数のタッチ点が検出された場合に、検出されている複数のタッチ点のうち、一部のタッチ点が入力として有効か無効かを判定する。特に、検出されているタッチ点の数が増加したときに、ユーザが最新のタッチ点によって操作を行おうとしていると推定し、検出されている複数のタッチ点のうち、最新ではないタッチ点が有効か無効かを判定する。また、第１の実施形態では、検出時間が所定の時間（閾値ａ）以上であるタッチ点による入力を無効と判定する。これは、ユーザが操作を開始することが推定される時点において、既に検出時間が長いタッチ点は、ユーザが開始する操作には関連せず、情報処理装置１００を支持する手が入力領域１０２に触れている可能性が高いと考えられるためである。
【００２９】
このように、検出されたタッチ点が増えた時に、最新ではないタッチ点の有効性を判定することによって、必要以上のタッチ点が無効になってユーザの操作が認識されなくなる恐れが軽減される。例えば、第１の実施形態の場合、検出時間が所定の時間以上であるタッチ点による入力を一律に無効と判定してしまうと、「長押し」を呼ばれるような一定時間以上の長い接触を伴う操作が認識されず、ユーザの意図に反する結果が生じてしまう。従って、新たなタッチ点が検出された時という、ユーザによる情報処理装置１００に対する操作を開始する可能性が高いタイミングで、以前から検出されていたタッチ点の有効性を判定する。従って、ユーザが操作を行う意図でタッチしたと推定される最新のタッチ点では、所定時間以上の長い接触を伴う操作を認識することが可能である。このようにして、第１の実施形態による情報処理装置１００では、ユーザの意図に反した誤動作を低減することができる。
【００３０】
なお、ステップＳ２０４において、更に判定部１２３が、最新ではないタッチ点の位置情報から移動距離を求め、所定の距離以上大きく移動したか否かを判定してもよい。そして、最新ではないタッチ点について、入力領域１０２をタッチしていて、かつ所定の距離以上大きく移動せずに略停止しているといえる停止時間が、閾値ａ以上であるタッチ点は無効と判定する。そして、検出時間が閾値ａ以上であっても、所定の距離以上移動している、すなわち停止していないタッチ点は、有効と判定する。こうすることで、ユーザは、例えば図４における親指４０１のように、装置を支持するために用いていた指であっても、位置を移動させることで、人差し指４０２などと連動したマルチタッチ操作に利用することができる。また、所定時間以上の長い接触を伴うタッチ操作をしている途中で、他の指によるタッチが加わった場合に、既に操作に使用しているタッチ点による入力が認識されなくなるという誤動作を防ぐことができる。このように、接触したまま移動されるタッチ点による入力を認識可能とすることにより、ユーザはより様々なパターンのマルチタッチ操作を行う事が出来る。
【００３１】
また、本実施形態では、最新ではないタッチ点の検出開始時刻から現在時刻までの時間を求める際、現在時刻として、最新のタッチ点の検出開始時刻を使用した。従って、初めから、最新ではないタッチ点の検出開始時刻と最新のタッチ点の検出開始時刻の差分から時間差を取得し、所定の時間との長さの比較を行っても構わない。
【００３２】
なお、上述したステップＳ３０４における、最新ではないタッチ点の検出時間と所定の時間（閾値ａ）の長さを比較する処理においては、タッチが検出された順番に基づいて、比較の対象とする閾値の時間の長さを変更してもよい。例えば、判定部１２３がタッチ点が検出された順番を示すＩＤの情報を保持部１２４から取得し、ＩＤが１、すなわち最初に検出されたタッチ点に対しては、閾値ａよりも短い閾値ａ´と、検出時間の長さを比較するとする。こうすることで、１番目に検出されたタッチ点を積極的に無効とする。これは、ユーザが情報処理装置１００を手で支持して操作する場合、１番目のタッチ点で情報処理装置１００を持ち、２番目以降のタッチ点で入力操作する可能性が高いと考えられるためである。すなわち、最初に検出されたタッチ点は情報処理装置１００を支持する手によるタッチである可能性が高いため、積極的に無効とすることで、速やかにタッチ点による入力が有効か無効かを判定することができる。
【００３３】
また、上述したステップＳ３０４における、最新ではないタッチ点の検出時間と所定の時間（閾値ａ）の長さを比較する処理においては、ユーザによってマルチタッチ操作が行われてからの経過時間に基づいて、比較の対象とする閾値の時間の長さを変更してもよい。例えば、保持部１２４が、タッチ点のＩＤ毎に、有効と判定されたことを示す有効フラグと、有効フラグの数が減少した時刻をマルチタッチ操作終了時刻として保持する。判定部１２３は、次にタッチ点が増えた時には、マルチタッチ操作終了時刻からの経過時間を算出する。そして、所定時間（閾値Ａ）未満であった場合には、ステップＳ３０４において、閾値ａよりも長い閾値Ａ´と、検出時間の長さを比較する処理を行い、経過時間が所定時間（閾値Ａ）以上であった場合には、閾値ａと検出時間との比較処理を行う。ここで閾値Ａは、マルチタッチ操作が一度中断されてから再開されたのか否かを判定するための時間の閾値であって、例えば３秒程度の短い値であることが好ましい。また、閾値Ａ´は、一般的に１回のマルチタッチ操作が行われる時間と閾値Ａの合計時間であって、例えば１０秒程度のように、閾値ａ及び閾値Ａよりも長い値であることが好ましい。こうすることで、マルチタッチ操作を行っていた複数のタッチ点のうちの一部が解除された後、すぐにユーザが入力領域１０２をタッチし直した場合には、所定時間（閾値ａ）以上検出され続けているタッチ点であっても有効であると判定される。従って、短時間の間指が浮くなどして検出されなくなったことにより、ユーザが、直前まで認識されていたマルチタッチ操作が急に認識されなくなるように感じてしまうことを防ぐことができる。
【００３４】
＜第２の実施形態＞
第１の実施形態では、検出部１２１に検出されているタッチ点の数が増加した場合に、タッチ点による入力の有効性を判定する処理を実行するか否かを判定した。それに対し、第２の実施形態として、検出されている複数のタッチ点の一部の位置の移動が検出された場合に、タッチ点による入力の有効性を判定する処理を実行するか否かを判定する点が異なる。ユーザがタッチ点を移動させた場合には、ユーザはその移動させたタッチ点を用いて何らかの操作を開始しようとする意図がある可能性が高い。従って、本実施形態では、ユーザがタッチ点を移動させた最新の時点において、その最新の移動が検出されたタッチ点ではないタッチ点が入力として有効か無効かを判定する。
【００３５】
図５は、第２の実施形態において実行される、ユーザのタッチ入力を認識する処理を示すフローチャートである。図２と同番号が付されているステップでは、第１の実施形態と同様の内容の処理が実行される。
【００３６】
ただし、本実施形態のステップＳ２０１では、既に検出されているＩＤのタッチ点が前回の処理と異なる位置で検出された場合には、保持部１２４において少なくともＩＤ、検出開始時刻、検出時刻、現在の位置情報に加えて前回の位置情報を更新し、移動フラグを上げる。既に検出されているＩＤのタッチ点が前回の処理と同じ位置で検出された場合には、情報を更新せず、移動フラグを下げる。なお、本実施形態において、検出開始時刻とは、所定の距離以上の移動が検出されたタッチ点の移動後の位置で最初に検出された時刻を示す。従って、本実施形態における検出時間とは、所定の距離以上の移動が検出されてからの経過時間であり、すなわち所定の距離以上の移動が検出されていない時間を示す。
【００３７】
ステップＳ２０２において、複数のタッチ点が検出されていると判定された場合には、ステップＳ５０１に進む。ステップＳ５０１では、判定制御部１２２が、タッチ点の移動距離を取得する。この際判定制御部１２２は、保持部１２４の移動フラグが上がっている場合にはステップＳ２０１で保持部１２４に保持されたタッチ点に関する情報を参照し、保持されている各タッチ点のＩＤ、移動前後の位置情報、検出時刻の情報から、各タッチ点の移動距離を算出する。このとき、前回の位置情報が保持されていないタッチ点については、移動距離は０であるとする。次に、ステップＳ５０２では、各タッチ点の移動距離と閾値ｂ（第２の閾値）との大きさを比較する。ここで、閾値ｂは、ユーザが、タッチによる操作を行うためにタッチ点を移動させたと判断できるか否かを判定するための、距離の閾値である。閾値ｂの値は、予め情報処理装置１００に登録されたタッチ操作が認識されるために必要な、タッチ点の最小限の移動距離程度の大きさとして設定される。次に、ステップＳ５０３では、判定制御部１２２が、比較の結果に基づき、検出されている複数のタッチ点の一部が、閾値ｂ以上移動したか否かを判定する。一部のタッチ点が閾値ｂ以上移動したと判定された場合、ステップＳ５０４に進み、タッチ点による入力が有効か無効かを判定する処理を実行する。ステップＳ５０４における処理内容は後述する。一方、検出されている複数のタッチ点のうち、閾値ｂ以上移動したタッチ点がない、あるいは全部のタッチ点が閾値ｂ以上移動したと判定された場合には、ステップＳ２０５に進み、判定部１２３が、検出されている全てのタッチ点による入力を有効であると判定する。ステップＳ２０６においては、第１の実施形態と同様、判定結果を受け取った認識部１２５によって入力情報が認識される。
【００３８】
図６は、第２の実施形態のステップＳ５０４において実行される、タッチ点が入力として有効か無効かを判定する処理を示すフローチャートである。
【００３９】
まず、ステップＳ６０１では、判定部１２３が、ステップＳ５０２で取得した各タッチ点の移動距離を基に、閾値ｂ以上の最新の移動が検出されたタッチ点を、情報処理装置１００への入力として有効であると判定する。さらに、有効と判定された閾値ｂ以上の最新の移動が検出されたタッチ点の検出開始時刻を、現在の位置における検出時刻に更新する。そして以下のステップでは、閾値ｂ以上移動していないタッチ点についてのみ処理を行う。
【００４０】
ステップＳ６０２において、判定部１２３は、検出されているタッチ点のうち、閾値ｂ以上移動していないタッチ点の検出開始時刻を取得する。ステップＳ６０３において、判定部１２３は、取得した検出開始時刻と、現在時刻との差分から、タッチ点の閾値ｂ以上の最新の移動が検出されていない時間を求め、検出時間とする。ここで現在時刻とは、タッチ点の閾値ｂ以上の最新の移動が検出された時刻であり保持部１２４に保持された情報から取得することができる。ステップＳ６０４では、求めた検出時間と閾値ｃ（第三の閾値）の長さを比較する。ここで閾値ｃは、ユーザがタッチ入力による操作を行うのにかかる一般的な時間より長い間、入力領域１０２と接触し続けていることを判定するための時間の閾値であって、任意に設定可能な値である。そして、ステップＳ６０５において、判定部１２３は、閾値ｂ以上移動していないタッチ点のうち、求めた検出時間が閾値ｃ以上のタッチ点の入力は無効、閾値ｃ未満のタッチ点の入力を有効と判定する。ステップＳ３０５の処理が終了すると、処理は図２に示されるユーザのタッチ入力を認識する処理に戻る。
【００４１】
ここで、具体的に、第２の実施形態による情報処理装置１００を、ユーザが操作する操作例２を説明する。図７は、情報処理装置１００の操作例を示す図である。操作例２で操作する情報処理装置１００は、ユーザがタッチ操作を開始するために入力領域１０２をタッチした指を所定の距離以上移動させた時点で、既に３秒以上移動せずに停止し続けていたタッチは、入力として認識しないように設定されているものとする。
【００４２】
まず図７（ａ）は、ユーザが情報処理装置を持った状態を、入力領域１０２側から見た図である。ユーザは左手で情報処理装置１００を持っており、ユーザの左手の親指７０１が入力領域１０２に触れている。従って、検出部１２１によって親指７０１によるタッチ点の情報が検出され、保持部１２４に保持される（ステップＳ２０１）。タッチ点の位置は座標（１０，２００）、タッチ点を最初に検出した検出開始時刻は０［ｍｓ］、ＩＤは１として、タッチ点に関する情報を保持部１２４に保持する。この状態では、検出部１２１に検出されているタッチ点は複数ではないため、タッチ点による入力は全て有効であると判定され（ステップＳ２０５）、入力情報が認識される（ステップＳ２０６）。
【００４３】
次に図７（ｂ）は、ユーザが図７（ａ）のように情報処理装置１００を支持したまま、さらにタッチによる入力を行った状態を、入力領域１０２側から見た図である。ユーザは左手で情報処理装置１００を持ち、右手で入力を行う。この時、ユーザの左手の親指７０１と右手の人差指７０２が入力領域１０２に触れている。従って、検出部１２１は、ユーザの親指７０１と、人差指７０２によるタッチ点を検出し、保持部１２４に保持された情報を更新する（ステップＳ２０１）。各タッチ点に関する情報は、親指７０１はそのまま位置が座標（１０，２００）、検出された時刻が０［ｍｓ］、タッチＩＤが１であるものとする。さらに、人差指４０２のタッチ点の位置が座標（２９０，１００）、検出された時刻が４５００［ｍｓ］、ＩＤが２であるものとして情報を保持部１２４に保持される。この場合、検出されているタッチ点は２点で複数であるため、判定制御部１２２は、検出されている各タッチ点の移動距離を取得する（ステップＳ５０１）。そして、取得した各タッチ点の移動距離と、閾値ｂを比較する（ステップＳ５０２）。ここでは、閾値ｂが１０［ｄｏｔ］であるとする。今、タッチ点１とタッチ点２ではともに移動距離は０［ｄｏｔ］となるので、いずれも閾値を超えていない。従って、タッチ点による入力は全て有効であると判定され（ステップＳ２０５）、タッチ点１及びタッチ点２による入力情報が認識部１２５によって認識される（ステップＳ２０６）。
【００４４】
次に、図７（ｃ）は、ユーザが人差し指７０２による入力領域１０２への接触を維持したまま移動させた状態を示している。ユーザは引き続き左手で情報処理装置１００を持ち、右手で入力を行っており、親指７０１と右手の人差指７０２が入力領域１０２に触れている。従って、検出部１２１は、ユーザの親指７０１と、人差指７０２によるタッチ点を検出し、保持部１２４に保持された情報を更新する（ステップＳ２０１）。各タッチ点に関する情報は、親指７０１はそのまま位置が座標（１０，２００）、検出された時刻が２０００［ｍｓ］、タッチＩＤが１である。さらに、人差指４０２のタッチ点の位置が座標（２９０，２５０）、検出された時刻が５０００［ｍｓ］、ＩＤが２であるとして情報を保持部１２４に保持される。この場合、ＩＤが２であるタッチ点（以下、タッチ点２）は座標が（２９０，１００）から（２９０，２５０）になっていることから、移動前の位置の座標（２９０，１００）の情報が保持部１２４に保持される。次に、検出されているタッチ点は２点で複数であるため、判定制御部１２２は、検出されている各タッチ点の移動距離を取得する（ステップＳ５０１）。ここで、タッチ点１の移動距離は０［ｄｏｔ］である。一方、タッチ点２の移動距離は、移動前後の位置情報から、図７（ｃ）の矢印方向（入力領域１０２の下方向）に１５０［ｄｏｔ］とわかる。操作例２では、閾値ｂは１０［ｄｏｔ］であるので、タッチ点２は閾値ｂ以上移動していることになる。従って、判定制御部１２２は、閾値ｂ以上移動した点が少なくとも１つあると判定し（ステップＳ５０３）、判定部１２３に、タッチ点の有効性を判定する処理を実行させる。判定部１２３は、まずタッチ点２について、入力として有効であると判定し、検出開始時間を５０００［ｍｓ］に更新する（ステップＳ６０１）。そして、その他のタッチ点による入力が有効か無効かを判定するため、保持部１２４に保持された情報から、検出されているタッチ点のうち、閾値ｂ以上の最新の移動が検出されていないタッチ点の検出開始時刻を取得する（ステップＳ６０２）。操作例２では、閾値ｂ以上移動したタッチ点はタッチ点２のみであり、移動していないタッチ点は、ＩＤが１であるタッチ点（タッチ点１）である。タッチ点１の検出開始時刻は０［ｍｓ］である。次に、判定部１２３は、取得した検出開始時刻と、現在時刻（タッチ点２の移動が検出された時刻）との差分から、検出時間を求める（ステップＳ６０３）。操作例２では、現在時刻は５０００［ｍｓ］であるため、タッチ点１が所定の距離以上移動していない検出時間は５０００［ｍｓ］であるとわかる。次に、判定部１２３は、検出時間と、所定の閾値ｃとの長さを比較する（ステップＳ６０４）。ここで、閾値ｃが３０００［ｍｓ］であるとすると、タッチ点１は検出時間が閾値ｃよりも長いと判定される。従って、判定部１２３によって、タッチ点１による入力は無効であると判定される（ステップＳ６０５）。そして、有効とされたタッチ点２の情報が認識部１２５に通知され（ステップＳ２０５）、入力情報として、タッチ点２の最新の位置情報である座標（２５０，１００）が認識部１２５に認識される（ステップＳ２０６）。
【００４５】
以上述べたように、第２の実施形態においても、複数のタッチ点が検出された場合に、検出されている複数のタッチ点のうち、一部のタッチ点が入力として有効か無効かを判定する。特に、複数のタッチ点の少なくとも１つの移動が検出されたときに、ユーザが移動したタッチ点によって操作を行おうとしていると推定し、最新の移動が検出されていないタッチ点による入力が有効か無効かを判定する。検出されているタッチ点が移動した時には、ユーザによる情報処理装置１００に対する操作が開始される可能性が高い。従って、その時にユーザが入力を行うためにタッチしたタッチ点と、操作に用いられないタッチ点を正確に区別し、入力情報を認識することで誤動作を防ぐことができる。その際、開始される操作に用いられる可能性が高い最新の移動が検出されたタッチ点は、有効と判定する。最新の移動が検出されていないタッチ点のうち、所定の距離以上の移動が検出されていない検出時間が所定の時間より長いタッチ点は無効と判定する。これは、ユーザがタッチ点の移動によって操作を開始することが推定される時点において、既に移動されていない時間がが長いタッチ点は、ユーザが開始する操作には関連せず、情報処理装置１００を支持する手が入力領域１０２に触れている可能性が高いためである。このようにして、第２の実施形態による情報処理装置１００では、ユーザの意図に反した誤動作を低減することができる。
【００４６】
なお、本実施形態においても、第１の実施形態と同様に、タッチ点を検出した順番によって閾値ａの大きさを変更することで、装置を支持するための指によるタッチである可能性が高い１番目のタッチ点を積極的に無効とすることができる。このようにすることで、速やかにタッチ点による入力が有効か無効かを判定することができる。
【００４７】
また、本実施形態においても、第１の実施形態と同様に、ユーザによってマルチタッチ操作が行われてからの経過時間に基づいて、比較の対象とする閾値ｃの時間の長さを変更してもよい。こうすることで、短時間の間、指が浮くなどして検出されなくなったことにより、ユーザが、直前まで認識されていたマルチタッチ操作が急に認識されなくなるように感じてしまうことを防ぐことができる。
【００４８】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005950597.tif 000002
【図２】
0005950597.tif 000003
【図３】
0005950597.tif 000004
【図４】
0005950597.tif 000005
【図５】
0005950597.tif 000006
【図６】
0005950597.tif 000007
【図７】
0005950597.tif 000008