(57)【要約】【課題】  タッチ操作に用いられる指示物体の先端部分の位置をタッチ位置とみなせるようにすることで、ユーザの意図に合ったタッチ操作を可能とする。【解決手段】  指示物体によって行われるタッチ操作を認識する情報処理装置１００であって、前記タッチ操作の対象面上で、前記対象面に近接している前記指示物体の先端部分に対応する位置を特定する先端位置特定部１１３と、前記指示物体の前記タッチ操作の対象面への接触に連動して、前記先端位置特定部１１３によって特定された先端位置の情報に基づいて、前記指示物体によって行われるタッチ操作を認識する認識部１１７と、を備える。【選択図】  図１
2015219601.tif 000002
【特許請求の範囲】
【請求項１】
指示物体によって行われるタッチ操作を認識する情報処理装置であって、
前記タッチ操作の対象面上で、前記対象面に近接している前記指示物体の先端部分に対応する位置を特定する先端位置特定手段と、
前記指示物体の前記タッチ操作の対象面への接触に連動して、前記先端位置特定手段によって特定された先端位置の情報に基づいて、前記指示物体によって行われるタッチ操作を認識する認識手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記指示物体が接触している前記対象面上のタッチ位置を取得するタッチ位置取得手段と、
前記タッチ位置取得手段によって前記タッチ位置が取得されている場合に、前記タッチ位置または前記先端位置特定手段が特定した先端位置のいずれかを、前記タッチ操作を構成する指示位置として特定する指示位置特定手段を更に備え、
前記認識手段は、前記指示位置特定手段によって特定された指示位置に基づいて、前記タッチ操作を認識することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記指示位置特定手段は、前記タッチ位置取得手段によって取得されたタッチ位置と、前記先端位置特定手段が特定した先端位置が一致しない場合は、前記先端位置を、前記タッチ操作を構成する指示位置として特定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記指示位置特定手段は、前記タッチ位置取得手段によって前記タッチ位置が取得されている間は、前記先端位置を、前記タッチ操作を構成する指示位置として特定することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記指示位置特定手段は、前記タッチ位置取得手段によって、前記タッチ位置が検出され続けていて、かつ、前記先端位置が前記タッチ位置と一致する位置から移動した場合に、前記先端位置を、前記タッチ操作を構成する指示位置として特定することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記先端位置特定手段は、前記指示物体が近接している前記タッチ操作の対象面上の範囲を取得する近接範囲の形状に基づいて、前記指示物体が所定の指示物体のいずれであるかを識別し、前記識別された指示物体に応じた位置を、前記先端位置として特定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記指示物体の近接が検知されている前記タッチ操作の対象面上の位置と、当該位置における前記指示物体の近接度を取得する近接範囲取得手段を更に備え、
前記先端位置特定手段は、前記近接範囲取得手段が取得した近接度の分布に基づいて、前記指示物体が近接している前記タッチ操作の対象面上の範囲を取得する近接範囲の形状を特定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
指示物体によって行われるタッチ操作を認識する情報処理装置の制御方法であって、
先端位置特定手段により、前記タッチ操作の対象面上で、前記対象面に近接している前記指示物体の先端部分に対応する位置を特定する先端位置特定工程と、
認識手段により、前記指示物体の前記タッチ操作の対象面への接触に連動して、前記先端位置特定工程において特定された先端位置の情報に基づいて、前記指示物体によって行われるタッチ操作を認識する認識工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項９】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項１に記載の情報処理装置として機能させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチ操作を認識する技術に関する。
【背景技術】
【０００２】
近年、ユーザの指あるいはスタイラスなど（以下、指示物体という）により、タッチパネル等のタッチ対象面上をタッチされた位置に基づいてタッチ操作を認識し、タッチ操作に応じた各種処理を実行する機器が普及している。タッチ操作としては、タッチ対象面であるディスプレイに表示されたオブジェクトをタッチして指定する操作や、タッチした位置を所定の規則に従って動かすことでコマンドを入力する操作が広く用いられている。
【０００３】
しかしながら、タッチ対象面において検出されるタッチ位置は、必ずしもユーザが操作を行うために指示物体を接触した位置とは限らない。そこで特許文献１では、タッチ対象面内に設けたタッチ無効領域内では、タッチ位置が検出されても、操作入力としては無効とすることで、ユーザに意図されないタッチ操作が誤認識されることを防ぐ。
【０００４】
また、特許文献２では、指示物体がタッチ対象面に接触する前段階として近接した状態（以下、近接状態という）にあるときの位置情報を取得可能である。特許文献２ではこれを利用し、近接状態の間に指示物体が近づいた表示オブジェクトを拡大することで、タッチ操作前に、ユーザに対して、その後認識されやすいタッチ操作を提示し、ユーザに意図を確認することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−８８９２９号公報
【特許文献２】特開２０１３−１９０８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
多くの場合、ユーザは指示物体の先端部分がタッチ対象面に接触しているというつもりで、その面をタッチする。しかしながら、タッチセンサの方式によっては、実際に指示物体の先端がタッチ対象面に接触しているかに関わらず、実際のタッチ位置を検出する。この場合、ユーザが意図してタッチした場所とは異なる位置がタッチ位置として検出されたり、ユーザはタッチしたつもりがなくてもタッチ操作が認識されたりする場合がある。そのような方式では、ユーザが、指示物体の先端を用いてタッチを行う可能性が高いことまでは考慮してはいなかった。
本発明は、上記の課題を鑑みてなされたものであり、タッチ操作に用いられる指示物体の先端部分の位置をタッチ位置とみなせるようにすることで、ユーザの意図に合ったタッチ操作を可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明は、指示物体によって行われるタッチ操作を認識する情報処理装置であって、前記タッチ操作の対象面上で、前記対象面に近接している前記指示物体の先端部分に対応する位置を特定する先端位置特定手段と、前記指示物体の前記タッチ操作の対象面への接触に連動して、前記先端位置特定手段によって特定された先端位置の情報に基づいて、前記指示物体によって行われるタッチ操作の認識を認識する認識手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、タッチ操作に用いられる指示物体の先端部分の位置をタッチ位置とみなせるようにすることで、ユーザの意図に合ったタッチ操作を可能とすることができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置のハードウェア構成及び機能構成の一例を示すブロック図
【図２】タッチイベントを生成する処理の流れの一例を示すフローチャート
【図３】先端位置を特定する処理の流れの一例を示すフローチャート
【図４】指示物体が指である場合に取得される近接範囲と形状の一例を示す図
【図５】予め保持される所定の指示物体の情報の一例を示すテーブル
【図６】本実施形態の操作例の流れを示す図
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１１】
＜第１の実施形態＞
本実施形態では、指示物体の前記タッチ操作の対象面への接触に連動して、指示物体がタッチ対象面に近接している部分の形状を取得し、指示物体の先端部分が近接しているとみなされる位置をタッチ操作の認識に利用する例を説明する。
【００１２】
図１（ａ）は、本実施形態に係る情報処理装置１００のハードウェア構成の一例を示す図である。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、各種処理のための演算や論理判断などを行い、システムバス１１０に接続された各構成要素を制御する。システムバス１１０は、情報処理装置１００を構成する各構成要素を接続し、相互に情報のやり取りを行う。この情報処理装置１００には、プログラムメモリとデータメモリを含むメモリが搭載されている。ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２は、プログラムメモリであって、後述する各種処理手順を含むＣＰＵ１０１による制御のためのプログラムを格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３は、データメモリであり、ＣＰＵ１０１の上記プログラムのワーク領域、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを有する。ＨＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０４などからＲＡＭ１０３にプログラムをロードすることで、プログラムメモリを実現しても構わない。また、ＨＤ１０４に代わってインタフェースで接続された外部記憶装置を利用することもできる。外部記憶装置は、例えば、メディア（記録媒体）と、当該メディアへのアクセスを実現するための外部記憶ドライブとで実現することができる。このようなメディアとしては、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、ＵＳＢメモリ、ＭＯ、フラッシュメモリ等が知られている。また、外部記憶装置は、ネットワークで接続されたサーバ装置などであってもよい。本実施形態において必要な情報は、予めＲＯＭ１０２やＨＤ１０４に保持される。
【００１３】
入力インタフェース１０５は、タッチセンサ１０６や近接センサ１０７から入力信号を取得して、システムバス１１０を介してシステムに通知する。出力インタフェース１０８は、ディスプレイ１０９に対して、少なくとも、後述する各種の処理を実行した結果の出力を制御する信号を出力する。タッチセンサ１０６は、入力部が有するタッチ対象面に対するタッチ位置を検出し、入力インタフェース１０５に通知する。タッチセンサ１０６としては、抵抗膜方式、静電容量方式、赤外線方式、超音波方式、音響波方式、振動検出方式等の各種タッチパネルが利用できる。他にも、距離画像センサや、ステレオカメラなどの三次元空間での位置を検出できるものでタッチ対象面に触れたかどうかを検出し、タッチ対象面上で定義される位置情報を取得してもよい。近接センサ１０７は、タッチ対象面に指示物体が近接している状態（タッチ対象面と指示物体とが、非接触ではあるが近傍に存在する状態）でもタッチ対象面に対する位置情報を検出し、入力インタフェース１０５に通知する。なお、近接状態にある指示物体の位置検出は、ホバー状態での検出、ホバー位置の検出と呼ばれることもある。近接センサ１０７としては、静電容量方式、赤外線方式、超音波方式、音響波方式などのタッチパネルを用いることができる。また、タッチセンサ１０６の感度を高めることで、タッチ対象面に近接している近接状態にある指示物体の位置情報を検出可能としてもよい。ただしこのとき、タッチ位置として検出された位置情報と、近接状態における指示物体の位置情報として検出された位置情報とは区別して取得される。近接センサ１０７としては、他に距離画像戦さやステレオカメラなどで三次元空間における指示物体の位置を検出し、タッチ対象面から離れた状態にある指示物体の位置を検出するシステムを採用してもよい。
【００１４】
ディスプレイ１０９は、情報処理装置１００での各種処理の実行結果を表示する。ディスプレイ１０９としては、液晶ディスプレイ、テレビモニタ、プロジェクタなどがある。本実施形態においては、タッチセンサ１０６、近接センサ１０７に静電容量方式のタッチパネルが、ディスプレイ１０９である液晶ディスプレイの表示画面に重畳するように設置されたものである。つまり、ディスプレイ１０９の表示面上に設置されたタッチパネル面がタッチ対象面に相当する。タッチパネルは、タッチセンサ１０６としては、指示物体とタッチパネル表面とが接触している面を特定し、そのうち１点の座標をタッチ位置として特定し、情報処理装置１００に通知する。近接センサ１０７としては、接触部分に比べて静電容量の変化が比較的小さい部分を、指示物体がタッチパネルに接触はしていないが近接している（タッチ対象面から少し浮いた状態にある）領域とみなす。そして、その範囲を示す位置情報を、当該領域内の各，点での近接度（指示物体とタッチパネルの間の距離の程度）を示す情報とともに、情報処理装置１００に通知する。なお、タッチセンサ１０６と近接センサ１０７の信号は、それぞれによる出力信号としてではなく、１台のタッチパネルが出力する信号としてまとめて通知されてもよい。タッチパネルとディスプレイは、一体化したタッチパネル内蔵ディスプレイであってもよい。
【００１５】
図１（ｂ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。以下説明する各機能部は、ＣＰＵ１０１が、ＲＯＭ１０２に格納されたプログラムをＲＡＭ１０３に展開し、後述する各フローチャートに従った処理を実行することで実現されている。ただし、本発明は、これらの機能部をハードウェアで実現する情報処理装置によっても同様に実現可能である。以下、各要素について説明する。
【００１６】
タッチ位置取得部１１１は、タッチセンサ１０６から通知される入力信号に基づいて、タッチ対象面上で検出されたタッチ位置に関する情報を取得する。タッチ位置に関する情報には、少なくともタッチイベントと、位置情報が含まれる。タッチイベントとは、通知されるタッチ情報の種別を表す情報である。本実施形態では、指示物体が新たにタッチパネル表面に接触したこと、あるいは接触が継続されていることに応じたタッチ情報の通知時は「ＴＯＵＣＨ」というイベントが通知される。つまり通知されたイベントが「ＴＯＵＣＨ」の場合、指示物体のタッチ対象面への接触があることを意味する。また、指示物体がタッチパネルから離された（リリースされた）ことに応じたタッチ情報の通知時には「ＲＥＬＥＡＳＥ」というタッチイベントが通知される。すなわち、タッチイベントが「ＴＯＵＣＨ」であった場合には、通知される情報には指示物体によってタッチされているタッチ位置を示す座標情報が含まれる。「ＲＥＬＥＡＳＥ」であった場合には、指示物体はタッチパネル表面に接触していないので、タッチ位置の情報は検出されない。本実施形態において、タッチ位置取得部１１１が検出するタッチ位置に関する情報には、更にタッチ位置あるいはタッチイベントが検出された時間を示す情報や、タッチ位置を識別するためのＩＤを含む。ＩＤには、タッチ位置が検出された順番を関連させた識別子を用いることで、検出されるタッチ位置の数が複数である場合に管理がしやすくなる。また、本実施形態では、タッチ位置取得部１１１は、ＩＤを基にタッチ位置の最新の情報を検出し、同じＩＤのタッチ位置が以前に検出された位置と異なる位置で検出されたことに基づき、タッチ位置が移動したことを検出することができる。ただし、同じＩＤのタッチ位置が以前に検出された位置と異なる位置で検出されたことに応じたタッチ情報の通知時に「ＭＯＶＥ」というタッチイベントが通知される検出システムに適応しても構わない。
【００１７】
近接範囲取得部１１２は、近接センサ１０７から通知される入力信号に基づいて、タッチ対象面において物体の近接が検知されている１点以上の位置座標と、当該位置での近接度とを示す情報を取得する。先端位置特定部１１３は、近接範囲取得部１１２が取得した情報に基づいて、タッチ対象面の物体が近接している範囲のうち、指示物体の先端部分が近接しているとみなされる位置を特定し、その位置情報を取得する。その際、保持部１１４に予め保持されている指示物体の形状情報を参照することで、近接範囲取得部１１２が取得した情報が示す範囲が、所定の指示物体のいずれが近接している範囲かを識別した上で、指示物体の先端が近接しているとみなされる位置を特定する。指示位置特定部１１５は、タッチ位置取得部１１１が取得したタッチ位置と、先端位置特定部１１３が特定した、指示物体の先端が近接しているとみなされる位置とのいずれかを、ユーザによって指示されている指示位置として特定する。本実施形態では特に、タッチ位置が検出されているときに両者が不一致となる場合には、近接範囲に基づいて特定された先端位置（指示物体の先端が近接しているとみなされる位置）を、指示位置として特定する。イベント生成部１１６は、指示位置特定部１１５が特定した指示位置を追跡することで、タッチイベントを生成する。本実施形態では、イベント生成部１１６によって生成されるタッチイベントは、タッチセンサ１０６から通知されるタッチイベントを補正したものに相当する。イベント生成部１１６では、指示物体がタッチ対象面に触れている状態であることを示す「タッチＤＯＷＮ」、タッチを継続したまま指示物体が移動したことを示す「タッチＭＯＶＥ」、指示物体がタッチ対象面から離されたことを示す「タッチＵＰ」のいずれかが生成される。そして、「タッチＤＯＷＮ」および「タッチＭＯＶＥ」は認識部１１７に指示位置の位置情報と関連付けて通知される。「タッチＵＰ」が生成された時点では指示位置は取得されていないので、「タッチＵＰ」が通知される場合は位置情報が付与されない。また「タッチＤＯＷＮ」は、タッチが開始されたことを示す「タッチＯＮ」と区別して生成されてもよい。なお、タッチセンサ１０６から通知されるイベントと区別するため、異なる名称で説明するが、各イベントが示す状態が区別されれば、名称は問わない。
【００１８】
認識部１１７は、イベント生成部１１６から通知されるタッチイベントと位置情報とに基づいて、指示位置の移動方向、移動速度などが所定の条件を満たすか否かに応じ、入力されたタッチ操作の種別を認識する。例えば、１つ以上の操作オブジェクトによるシングルタップ、ダブルタップ、トリプルタップ、スワイプ（タッチパネル表面を特定の一方向になぞる操作）、フリック（タッチパネル表面を指で弾くように高速で動かしてリリースする操作）などを認識する。そして認識した結果を、アプリケーションなどに通知する。タッチ操作としては、出力制御部１１８は、入力された操作に対して応答する為、情報処理装置１００の各機能部を制御する。本実施形態では、少なくともイベント生成部１１６から通知された操作内容に対するアプリケーションの応答を反映した表示画像を生成し、出力部であるディスプレイ１０９に出力することで、ディスプレイ１０９に表示画像を表示させる。
【００１９】
図２は、本実施形態において、情報処理装置１００がタッチイベントを生成する処理の流れの一例を示すフローチャートである。図２のフローチャートの処理は、入力インタフェース１０５からタッチセンサにおいて検出されたタッチ入力の情報、又は近接センサにおいて検出された近接範囲の情報の通知があったことに応じて起動される。
【００２０】
まず、ステップＳ２０１では、近接範囲取得部１１２が、近接センサ１０７から通知される入力信号に基づいて、タッチ対象面において物体の近接が検知されている１点以上の位置を示す情報と、当該位置での近接度とを示す情報の取得を開始する。以降の処理において、カレント処理の段階に寄らず、近接範囲取得部１１２は最新の情報を取得し、ＲＡＭ１０３に保持させる処理を繰り返す。近接範囲取得部１１２は、直前の検出では検出されていた指示物体が、タッチパネル表面に近接しなくなった場合には、入力インタフェース１０５からリリース通知を取得する。この通知があった場合は、指示物体がタッチ対象面から十分に離れた（検出可能な範囲を出た）ことを意味する。タッチパネル表面に近接する指示物体がない場合（指示物体がタッチパネル表面に接触している場合も含む）は、近接センサ１０７から近接位置の情報通知は無い。従って、近接範囲取得部１１２は近接位置を検出しない。
【００２１】
ステップＳ２０２では、タッチ位置取得部１１１がタッチ位置に関する情報を取得する。本実施形態のタッチ位置取得部１１１は、タッチセンサ１０６が検出する情報に基づいて、少なくともタッチ位置を示す座標情報と、タッチイベントを取得する。タッチ位置取得部１１１は、検出した情報をＲＡＭ１０３に保持する。本実施形態では、ＲＡＭ１０３に、あるＩＤのタッチ位置が最初に取得された時の情報と、最後に検出された時の情報とが保持される。従って、既に検出されているＩＤのタッチ位置について、ＲＡＭ１０３に保持されている最後の位置情報と異なる位置情報が取得された場合、当該タッチ位置は移動したことになる。その場合、タッチ位置取得部１１１は、新しく取得された情報で、ＲＡＭ１０３に保持されている最後に検出されたタッチ点の情報を更新する。なお、本実施形態では、ステップＳ２０２の処理が開始されてから所定時間の間に、タッチセンサ１０６からタッチ位置を示す入力信号が取得できない場合、タッチは行われていないので以降の処理を行わずにフローチャートを終了する。
【００２２】
ステップＳ２０３では、タッチ位置取得部１１１が、ステップＳ２０２で取得したタッチイベントが「ＴＯＵＣＨ」かを判定する。タッチイベントが「ＴＯＵＣＨ」であると判定される場合（ステップＳ２０３でＹＥＳ）、ステップＳ２０４に進む。タッチイベントが「ＴＯＵＣＨ」ではない、すなわり「ＲＥＬＥＡＳＥ」であると判定される場合（ステップＳ２０３でＹＥＳ）、ステップＳ２１１に進む。つまりステップＳ２０４の処理は、指示物体のタッチ対象面に対する接触に連動して開始される。
【００２３】
ステップＳ２０４では、先端位置特定部１１３が、近接範囲取得部１１２が取得している近接範囲に基づいて、タッチ対象面上で、物体が近接している範囲のうち、指示物体の先端部分が近接しているとみなされる位置を特定する。ここで、図３のフローチャートを参照して、ステップＳ２０４において実行される先端位置特定処理の詳細を説明する。
【００２４】
ステップＳ３０１では、先端位置特定１１３が、近接範囲取得部１１２によってＲＡＭ１０３に保持されている最新の情報を参照し、タッチ対象面において、物体の近接が検知されている１点以上の位置での、近接度の分布を取得する。ここで最新の情報とは、ステップＳ２０２においてタッチ位置が取得された時点での物体が近接している範囲と、当該範囲の各点における近接度とを示す情報である。ステップＳ３０２では、先端位置特定部１１３が、近接度の分布に基づいて、近接範囲の形状を取得する。すなわち、近接度が低い（物体がタッチ対象面から遠い）部分のかすれを補正することによって、タッチ対象面に平行な二次元に投影された指示物体の輪郭を、近接範囲の形状として得る。
【００２５】
ステップＳ３０３では、先端位置特定部１１３が、ステップＳ３０２で取得した近接範囲の形状に基づいて、タッチ対象面に近接している指示物体を識別する。本実施形態では、予め保持部１１４において、１以上の種類の所定の指示物体の形状情報が保持されている。先端位置特定部１１３は、近接範囲の形状と所定の指示物体の形状を比較し、同一とみなすことが可能な指示物体を特定する。詳細は後述する。ステップＳ３０４では、先端位置特定部１１３が、ステップＳ３０３において、指示物体の識別に成功したか否かを判定する。指示物体の識別に成功したと判定される場合（ステップＳ３０４でＹＥＳ）、ステップＳ３０５に進む。指示物体の識別に成功したと判定される場合（ステップＳ３０４でＮＯ）、先端位置は特定されなかったとして、位置情報を特定せずに、図２のフローチャートにリターンする。
【００２６】
ステップＳ３０５では、先端位置特定部１１３が、ステップＳ３０２で取得した近接範囲の形状に基づいて、指示物体の先端部分が近接しているとみなされる位置（先端位置）を特定する。そして、先端位置の位置情報を取得してＲＡＭ１０３に保持し、図２のフローチャートにリターンする。
【００２７】
図２に戻り、ステップＳ２０５では、指示位置特定部１１５が、ステップＳ２０２で取得したタッチ位置と、ステップＳ２０４で特定された先端位置とが一致するかを判定する。なお、「一致する」とは座標が同一であることだけでなく、その差異が予め定められた許容量の範囲に収まる場合を含む。タッチ位置と先端位置が一致すると判定された場合（ステップＳ２０５でＹＥＳ）、ステップＳ２０６に進む。タッチ位置と先端位置が一致しないと判定された場合（ステップＳ２０５でＹＥＳ）、ステップＳ２０７に進む。
【００２８】
ステップＳ２０６では、指示位置特定部１１５が、ステップＳ２０２で取得したタッチ位置の位置情報を、ユーザによって入力された指示位置として特定する。そして、特定した位置情報を、タッチ位置と同様にＩＤに関連付けてＲＡＭ１０３に保持する。ステップＳ２０７では、指示位置特定部１１５が、ステップＳ２０４で特定された先端位置の位置情報を、ユーザによって入力された指示位置として特定する。そして、特定した位置情報をＲＡＭ１０３に保持する。本実施形態では、指示位置についても、タッチ位置と同様に、ＲＡＭ１０３などの保持部に、最初に特定された時の情報と、最後に特定された時の情報とが保持される。既に情報が保持されたＩＤの指示位置について、ＲＡＭ１０３に保持されている最後の指示位置の位置情報と異なる位置情報が取得された場合、当該指示位置は移動したことになる。その場合、本実施形態では、タッチ位置取得部１１１は、新しく取得された情報で、ＲＡＭ１０３に保持されている最後に検出されたタッチ点の情報を更新し、ＲＡＭ１０３において、指示位置が移動したことを示す移動フラグの値を「１」とする。移動フラグの値は、あるＩＤのタッチが開始された直後、および、指示位置の移動又はリリースが検出されない間は「０」であるとする。ただし、移動したタッチ位置を示す情報を保持する方法は、このような移動フラグを使う方法には限られない。
【００２９】
ステップＳ２０８では、イベント生成部１１６が、指示位置が移動したか否かを判定する。本実施形態では、ＲＡＭ１０３に保持された移動フラグの値を参照することで判定する。指示位置が移動したと判定される場合（ステップＳ２０８でＹＥＳ）、ステップＳ２０９に進む。指示位置が移動していないと判定される場合（ステップＳ２０８でＮＯ）、ステップＳ２０９に進む。
【００３０】
ステップＳ２０９では、イベント生成部１１６が、イベント「タッチＭＯＶＥ」を生成して、認識部１１７に通知する。このとき、イベントには指示位置のＩＤと、最新の指示位置の位置情報とが関連付けられている。ステップＳ２１０では、イベント生成部１１６が、イベント「タッチＤＯＷＮ」を生成して、認識部１１７に通知する。この場合も、イベントには指示位置のＩＤと、最新の指示位置の位置情報とが関連付けられている。認識部１１７は、通知されたイベントに基づいてタッチ操作を認識し、認識結果をアプリケーションや出力制御部１１８にユーザ入力として通知する。イベントの通知が完了すると、図２のフローチャートの処理を終了する。
【００３１】
一方、ステップＳ２０２で取得されたタッチイベントが「ＴＯＵＣＨ」ではない、すなわり「ＲＥＬＥＡＳＥ」であった場合は、ステップＳ２１１において、指示位置特定部１１５が、ＲＡＭ１０３に保持された指示位置の情報をクリアする。ただし、認識部１１７において、ダブルタップなど、一旦指示物体がタッチ対象面から離される工程を含めて１つの操作が構成されるような操作の認識が可能な場合はこの限りではない。ステップＳ２１２では、イベント生成部１１６が、イベント「タッチＵＰ」を生成して、認識部１１７に通知する。このとき、イベントには指示位置のＩＤが関連付けられている。イベントの通知が完了すると、図２のフローチャートの処理を終了する。
【００３２】
ここで、図４及び図５を参照して、ステップＳ３０２およびステップＳ３０３の処理の具体例を説明する。図４（ａ）は指示物体４００（人の指であるとする）が入力対象面４０１へ近接している状態を示す。図４（ｂ）は、図４（ａ）の状態のときにステップＳ３０１で取得される近接度の分布を示す。領域４０２内に分布している各値は、各点で検出された静電容量の大きさを、簡易的に３段階の値で示している。入力対象面４０１と指示物体との距離が近い部分は静電容量の大きさが大きい箇所であり、近接度は高いとして、大きい数字として示されている。一方、入力対象面４０１と指示物体との距離が遠い部分では、近接度は低いとして、小さい数字として示されている。図４（ｃ）は、同じ状態において、図４（ａ）の状態のときにステップＳ３０２で取得される近接範囲の形状を示す。領域４０３は、図４（ｂ）の静電容量の分布から、近接度が低い部分のかすれなどを補正することによって得られる、タッチ対象面に平行な二次元に投影された指示物体の近接範囲である。  図５は、所定の指示物体の種別、形状と近接範囲の形状と比較する際に認められる許容誤差を対応づけたテーブルであり、本実施形態では予め保持部１１４に保持されている。指示物体種別５０１では、一例として「指」と「スタイラス」が定義されている。なお図５では、指示物体の種別をわかりやすく示すため、指示物体の形状５０２を示しているが、保持部１１４に保持する指示物体の形状としては、必ずしも指示物体の形状が保持されていなくてもよい。近接範囲の形状５０３は、ステップＳ３０３において、近接範囲の形状と比較される形状の基準の情報である。近接範囲の形状として取得される形状の、縦サイズ５０４、横サイズ５０５、先頭位置オフセット５０６、の大きさや比率が予め指定されている。この情報基づいて、先端位置特定部１１３は、近接範囲の形状が取得された後、いずれの位置が先端部分にあたるかを特定する。許容誤差５０４では、指示物体の個体差やセンサの検出誤差を吸収するために許容される誤差範囲が定義される。本実施形態のステップＳ３０３において、図５のテーブルで定義された近接範囲の形状の基準と、ステップＳ３０２で取得された近接範囲の大きさを比較した際に、その差が許容誤差５０４に収まる範囲内であればその種別を、指示物体の種別であると識別する。
【００３３】
図４及び図５の例では、ステップＳ３０２で取得された近接範囲の形状４０３が、図５のテーブルで定義された指示物体の種別「指」と「スタイラス」のいずれかであるかを識別するため、それぞれの形状を比較する。このとき、近接範囲の形状４０３の縦横サイズの比率は、「スタイラス」の許容誤差に収まらず、一方で「指」では、全ての指標が許容誤差に収まるとする。この場合、指示物体は「指」であると識別される。
【００３４】
次に、図６を参照して、本発明をテンキー形式のソフトウェアキーボードで文字入力を行うアプリケーション（以下、テンキーアプリケーションと省略する）へ適用した操作例を説明する。指示物体６００、６１０、６２０はユーザの指であり、徐々にタッチ対象領域６０１に近づいてタッチした後、フリック操作のために動かされている様子を示している。また、破線６０２、６１２、６１３は、タッチ対象面６０１のうち近接センサ１０７によって指示物体が近接していると検知される部分の位置を示す（ただし、見やすくするためにタッチ対象面６０１とはずらして図示している）。
【００３５】
図６（ａ１）は指示物体５０１が水平に置いたタッチ対象面６０１へ近接した状態を図示している。また、その際にディスプレイ１０９に出力されているテンキーアプリケーションの表示画像を図６（ａ２）に示している。このとき、指示物体の近接は検知される（ステップＳ２０１）が、タッチは行われていないので、タッチ対象面６０１上には、タッチ位置および指示位置のいずれも存在しない。
【００３６】
図６（ｂ１）と（ｂ２）は、指示物体がタッチ対象面６０１をタッチした状態を示している。この時、近接範囲取得部１１２は、破線６１２で示す部分が、指示物体の近接範囲として取得されている（ステップＳ２０１）。タッチセンサ１０６では、丸６１１で示す部分で指示物体の接触を検知し、この範囲の重心あるいは中心となる座標が、タッチ位置取得部１１１によってタッチ位置として取得される（ステップＳ２０２）。このとき、近接範囲は破線６１２で示す部分となり、その先端は、三角形６１３で示す部分となるため、先端位置特定部１１３は、三角形６１３の部分の代表座標を、先端位置として特定する（ステップＳ２０４）。図６（ｂ１）のように、ユーザが指の先端でタッチ対象面に触れている場合には、丸６１１と三角形６１３の位置は略一致する。従って、タッチ位置が指示位置として特定され（ステップＳ２０６）、イベント生成部１１６は「タッチＤＯＷＮ」のイベントを認識部１１７に通知する（ステップ２１０）。このようにして、ユーザが指の先端で行ったタッチ操作が、情報処理装置１００に認識される。この状態におけるテンキーアプリケーションの表示状態を、図６（ｂ２）に示す。丸６１１に相当する部分は、図６（ｂ２）では丸６１４で示す。このとき、ユーザは「な」の位置をタッチしているので、認識部１１７及び出力制御部１１８の処理により、テンキーアプリケーション画面が、図６（ｃ２）のように変更される。
【００３７】
図６（ｃ１）は、図６（ｂ１）の状態の後で、ユーザが指でフリックを行った状態を示す。フリックとは、タッチパネル表面を指で弾くように、高速で動かしてリリースするまでの動きである。図６（ｃ１）では、ユーザは指の先端を紙面に向かって左側に移動させており、指の先端は既にタッチ対象面６０１から離れているにも関わらず、ユーザの指の腹の部分が、タッチ対象面６０１に接触し続けている場合を示している。この状態は例えば、親指でタッチパネルを掌の外側へフリックした際に、親指が画面に対して反ってしまい、指の先が画面から離れてしまったときなどに発生する。ここで、タッチセンサ１０６に検知されるタッチ部分丸６２１の位置は、図６（ｂ１）の丸６１１から略変わっていない（ステップＳ２０２）。一方、近接範囲取得部１１２は、破線６２２で示す部分を近接範囲として取得するので、その先端位置は、三角形６２３で示す部分の代表座標となる（ステップＳ２０４）。タッチ位置が検出されているにも関わらず（ステップＳ２０３でＹＥＳ）、タッチ位置と先端位置が一致しないので（ステップＳ２０５でＮＯ）、本実施形態ではこの場合、先端位置が指示位置として特定される（ステップ２０７）。直前の指示位置から今回の指示位置にかけ移動があるので、イベント生成部１１６は「タッチＭＯＶＥ」のイベントを認識部１１７に通知する（ステップ２１０）。この状態におけるテンキーアプリケーションの表示状態は、図６（ｃ２）に示される。丸６２１に相当する部分は、図６（ｂ２）では丸６２４で示す。このとき、ユーザは実際には「な」の位置をタッチし続けているが、本実施形態では、三角形６２３に対応する三角形６２５の位置が、指示位置となるので、ユーザは「に」の位置までタッチ位置を移動させたと認識できる。この時点でユーザはフリック操作を入力するための接触を終えており、このあとユーザの指はタッチ対象面からさらに離れる。指が十分に離れたことに応じて「タッチＵＰ」が通知され、ユーザの意図通り、フリック操作が認識される。
【００３８】
ここまで説明した第１の実施形態では、指示物体によるタッチ対象面へのタッチが検出されていて、かつ、タッチ位置と先端位置が一致しない場合に、指示物体の先端部分が近接しているとみなされる位置を、指示位置として特定した。これにより、先端部分が接触していることが確実な状況では、なるべくタッチ位置を用いることで、ユーザが視認できるタッチ位置とのずれを抑えることができる。ただし、これに限らず、例えば指示物体によるタッチ対象面へのタッチが検出されている間は常に、指示物体の先端部分が近接しているとみなされる先端位置を、指示位置として特定してもよい。この場合は、タッチ位置から先端位置、先端位置からタッチ位置と特定される指示位置が変化される際に生じやすい座標のぶれを抑えることができる。また例えば、タッチ位置が検出され続けていて、かつ、先端位置がタッチ位置と一致する位置から移動したことを判定した場合に、指示物体の先端部分が近接しているとみなされる位置を、指示位置として特定してもよい。判定は、タッチ位置と先端位置の履歴を参照することで行う。このような状況は、ユーザは当初は指示物体の先端を使ってタッチを行っていたにも関わらず、先端位置とタッチ位置が不一致となってしまったことになる。しかしながらユーザは、引き続き指示物体の先端でタッチ操作を行う可能性が高い。従ってこのような状況であることを判定した場合に、先端位置を、タッチ操作を構成する指示認識することで、ユーザが継続して入力を追跡できるようになり、ユーザの意図に沿った操作を認識しやすくなる。なおこの時、タッチ位置は、略同じ位置で検出され続けていることを更に判定することもできる。その場合、図６（ｃ１）及び（ｃ２）で示したように、ユーザが指などの指示物体を移動させたつもりであるにも関わらず、移動が検出されていないという、特に誤認識が生じやすい場合において、ユーザの意図に沿った操作を認識しやすくなる。
【００３９】
以上説明したように、本実施形態では、タッチ対象面においてタッチが検出されている間は、当該タッチに用いられている指示物体の先端位置を追跡し、タッチ操作の指示位置として利用する。これにより、指示物体の先端部分を用いて行われるタッチ操作の認識精度を向上させることができる。
【００４０】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００４１】
１１１  タッチ位置取得部
１１２  近接範囲取得部
１１３  先端位置特定部
１１５  指示位置特定部
１１６  イベント決定部
１１７  認識部
１１８  出力制御部
【図１】
2015219601.tif 000003
【図２】
2015219601.tif 000004
【図３】
2015219601.tif 000005
【図４】
2015219601.tif 000006
【図５】
2015219601.tif 000007
【図６】
2015219601.tif 000008