(57)【要約】【課題】  第１の入力とそれに後続する入力とで構成される操作を認識可能な場合に、前記第１の操作に対応する出力を開始することを速やかに判定可能とする。【解決手段】  第１の入力によって構成される第１の操作と、前記第１の入力と前記第１の入力に後続する入力とによって構成される第２の操作とを認識可能な情報処理装置であって、操作オブジェクトによる入力を検出し（Ｓ２０１）、前記操作オブジェクトによる前記第１の入力が検出された直後（Ｓ２０５−ＹＥＳ）の、前記操作オブジェクトの移動に関する情報が所定の条件を満たす場合は（Ｓ２１２−ＹＥＳ）、前記第１の入力に後続する入力の有無にかかわらず、前記第１の操作に対応する応答を開始する（Ｓ２１３）。【選択図】  図２
2015007946.tif 000002
【特許請求の範囲】
【請求項１】
第１の入力によって構成される第１の操作と、前記第１の入力と前記第１の入力に後続する入力とによって構成される第２の操作とを認識可能な情報処理装置であって、
操作オブジェクトによる入力を検出する検出手段と、
前記検出手段によって前記操作オブジェクトによる前記第１の入力が検出された直後の、前記操作オブジェクトの移動に関する情報が所定の条件を満たす場合は、前記第１の入力に後続する入力の有無にかかわらず、前記第１の操作に対応する応答を開始する出力制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１の入力が検出された直後の前記操作オブジェクトに関する情報が前記所定の条件を満たさない場合、
前記検出手段は、前記出力制御手段によって前記第１の操作に対応する応答を開始する前に、前記検出手段によって前記第１の入力に後続する入力を検出したかを判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検出手段は、入力対象面に対する前記操作オブジェクトのタッチ位置を検出するタッチ位置検出手段であって、
前記操作オブジェクトによる入力とは、前記タッチ位置検出手段が検出するタッチ位置に基づく入力であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記入力対象面に対する前記操作オブジェクトの近接位置を検出する近接位置検出手段とを更に備え、
前記検出手段によって前記操作オブジェクトによる前記第１の入力が検出された直後の、前記操作オブジェクトに関する情報とは、前記タッチ位置検出手段によって前記タッチ位置が検出されなくなった時点以降に、前記近接位置検出手段によって検出される近接位置の情報であることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１の入力とは、前記タッチ位置検出手段によって前記タッチ位置が検出されなくなった時点までに前記タッチ位置検出手段が検出していたタッチ位置に基づく入力であって、
前記出力制御手段は、
前記判定手段により、前記タッチ位置検出手段によって前記タッチ位置が検出されなくなった時点以降に、前記近接位置検出手段によって検出される近接位置が前記所定の条件を満たすと判定されたことに応じて、前記第１の操作に対する応答を開始することを備えることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記判定手段は、前記タッチ位置検出手段によって前記タッチ位置が検出されなくなった時点以降に、前記近接位置検出手段が検出する近接位置に基づいて、前記操作オブジェクトが前記入力対象面に近接した状態で移動した移動距離を取得し、
前記所定の条件とは、前記移動距離が所定の閾値を超えることであることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記判定手段は、前記タッチ位置検出手段によって前記タッチ位置が検出されなくなった時点以降に、前記近接位置検出手段が所定の時間間隔で前記近接位置を検出する度に、前記操作オブジェクトが前記入力対象面に近接した状態で移動した移動距離を取得し、
前記所定の条件とは、前記移動距離が所定の回数以上連続して閾値を超えることであることを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記判定手段は、前記タッチ位置検出手段によって前記タッチ位置が検出されなくなった時点以降に、前記近接位置検出手段が検出する近接位置に基づいて、前記操作オブジェクトが前記入力対象面に近接した状態で移動した移動方向を取得し、
前記所定の条件とは、前記移動方向が特定の方向であることであることを特徴とする請求項５に記載の情報処理装置。
【請求項９】
前記特定の方向とは、前記第１の入力に後続する入力を行うために、前記操作オブジェクトが次にタッチする位置に向かう方向であって、
前記操作オブジェクトが次にタッチする位置を特定する特定手段を更に備えることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記特定手段は、前記第１の入力の開始位置を、前記操作オブジェクトが次にタッチする位置とすることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記第１の操作は、シングルタップ操作であって、前記第２の操作とは、ダブルタップ操作であることを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記第１の操作および第２の操作とは、前記入力対象面に対する手書き入力操作であって、
前記特定手段は、予め記憶された情報に基づいて、前記第１の入力に対応する一連のタッチ位置が構成する軌跡の次画として記憶されている軌跡の開始位置を、前記操作オブジェクトが次にタッチする位置とすることを特徴とする請求項９に記載の情報処理装置。
【請求項１３】
前記特定手段は、予め記憶された情報に基づいて、前記第１の入力と対応付けて記憶された第２の入力の開始位置を、前記操作オブジェクトが次にタッチする位置とすることを特徴とする請求項９に記載の情報処理装置。
【請求項１４】
前記特定手段は、前記情報処理装置が有する表示部においてＧＵＩオブジェクトが表示されている位置、あるいは前記情報処理装置が有する物理オブジェクトの設置位置を、前記操作オブジェクトが次にタッチする位置とすることを特徴とする請求項９に記載の情報処理装置。
【請求項１５】
更に、前記第２の操作と前記入力対象面内の領域を対応付けて記憶する記憶手段を備え、
前記出力制御手段は、前記タッチ位置検出手段が検出した前記第１の入力に対応するタッチ位置が、前記領域の外で検出された場合は、前記第１の入力に後続する入力の有無にかかわらず、前記第１の操作に対応する応答を開始すること特徴とする請求項３に記載の情報処理装置。
【請求項１６】
更に、前記第２の操作が認識される毎に、前記タッチ位置検出手段が検出した、前記第２の操作に対応するタッチ位置の情報に基づいて、前記操作に対応する前記領域を補正する領域補正手段
を備えることを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
前記検出手段は、前記操作オブジェクトの三次元位置を検出する検出手段であって、
前記操作オブジェクトによる入力とは、前記検出された三次元位置に基づく入力であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項１８】
前記検出手段によって前記操作オブジェクトによる前記第１の入力が検出された直後の、前記操作オブジェクトに関する情報とは、前記操作オブジェクトが操作中の状態から脱した時点以降に、前記検出手段によって検出される三次元位置の情報であることを特徴とする請求項１７に記載の情報処理装置。
【請求項１９】
第１の入力によって構成される第１の操作と、前記第１の入力と前記第１の入力に後続する入力とによって構成される第２の操作とを認識可能な情報処理装置の制御方法であって、
検出手段により、操作オブジェクトによる入力を検出する検出工程と、
前記検出工程で前記操作オブジェクトによる前記第１の入力が検出された直後の、前記操作オブジェクトの移動に関する情報が所定の条件を満たす場合は、出力制御手段により、前記第１の入力に後続する入力の有無にかかわらず、前記第１の操作に対応する応答を開始する出力制御工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項２０】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項１乃至１８のいずれか１項に記載された情報処理装置の各手段として動作させるためのプログラム。
【請求項２１】
請求項２０のプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数種類の入力操作を認識する技術に関する。
【背景技術】
【０００２】
近年、ユーザの指あるいはスタイラスなどの操作オブジェクトによりタッチパネル等の入力部がタッチされた位置のＸ，Ｙ座標値に基づいてタッチ操作を認識し、タッチ操作に応じた各種処理を実行するタッチ入力機器が普及している。タッチ操作の中には、タッチパネル等を操作オブジェクトによってタッチして離す動作を複数回繰り返すことで、ある１つの処理の実行を指示するタッチ操作として認識されるものが存在する。つまり、操作中に一旦、タッチパネル等から指あるいはスタイラスを離す（以下ではリリースする、という）場合がある。このように、第１の入力とそれに後続する入力とで構成されるタッチ操作として、ダブルタップが知られている。ダブルタップは、タップ（タッチパネル上をタッチして素早くリリースする操作）が、所定の期間の間に２回連続して入力されたことに応じて認識される。ダブルタップに対し、１回タップするだけで終了される操作を一般的にシングルタップと呼ぶ。
【０００３】
特許文献１には、１回目にタッチパネルがタッチされた時点から所定時間内に２回目のタッチがされないことを確認した後でシングルタップを示す信号を通知することで、ダブルタップとシングルタップを区別する方法が開示されている。
【０００４】
また、第１の入力とそれに後続する入力とで構成されるタッチ操作としては、２画以上の文字を手書き入力する操作なども知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第７１８０５０６号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
現在、第１の入力とそれに後続する入力とで構成される操作が有効な場面では、特許文献１のように所定時間の待機時間（一般的に３００ｍｓ程度）を設けることで、リリースの後にさらに操作が継続されるか否かを判断するのが一般的である。しかし、ユーザが第１の入力のみで構成される操作を意図して入力した場合でも、待機時間が経過しなければ次の処理が実行されないため、ユーザが行った操作への追従性が低下する場合がある。
【０００７】
本発明は上記課題に鑑みてなされ、第１の入力とそれに後続する入力とで構成される操作を認識可能な場合でも、第１の入力のみよって構成される操作に対応する応答を速やかに開始することを主な目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明は、第１の入力に構成される第１の操作と、前記第１の入力と前記第１の入力に後続する入力とによって構成される第２の操作とを認識可能な情報処理装置であって、操作オブジェクトによる入力を検出する検出手段と、前記検出手段によって前記操作オブジェクトによる前記第１の入力が検出された直後の、前記操作オブジェクトに関する情報が所定の条件を満たす場合は、前記第１の入力に後続する入力を待たずに前記第１の操作に対応する出力を開始する出力制御手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、第１の入力とそれに後続する入力とで構成される操作を認識可能な場合でも、第１の入力のみよって構成される操作に対応する応答を速やかに開始可能となる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置のハードウェア構成及び機能構成の一例を示すブロック図
【図２】タッチ操作を認識する処理の流れの一例を示すフローチャート
【図３】タップが行われる際に検出される一連のタッチ位置及び近接位置の一例を示す図
【図４】タッチ操作を認識する処理の流れの一例を示すフローチャート
【図５】スタート位置特定処理の流れの一例を示すフローチャート
【図６】フリック操作が行われる際に検出される一連のタッチ位置及び近接位置の一例を示す図
【図７】ＧＵＩオブジェクトや物理オブジェクトに座標を割り当てる一例を示す図
【図８】手書き文字入力が行われる際に検出される軌跡の一例を示す図
【図９】手書きジェスチャ入力が行われる際に検出される軌跡の一例を示す図
【図１０】タッチ操作と対応付けた操作領域を設定する方法の一例を示す図
【図１１】情報処理装置のハードウェア構成及び機能構成の一例を示すブロック図
【図１２】操作を認識する処理の流れの一例を示すフローチャート
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１２】
＜第１の実施形態＞
本実施形態では、タッチ入力後の操作オブジェクトが、入力部が有するタッチ入力の対象面に近接した状態での移動距離が所定の条件を満たすかに基づいて、後続する入力の有無に関わらずにタッチ操作に対する応答を開始するか否かを判定する。
【００１３】
図１（ａ）は、本実施形態に係る情報処理装置１００のハードウェア構成の一例を示す図である。システムバス１０１は、情報処理装置１００を構成する各構成要素を接続し、相互に情報のやり取りを行う。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０２は、各種処理のための演算や論理判断などを行い、システムバス１０１に接続された各構成要素を制御する。この情報処理装置１００には、プログラムメモリとデータメモリを含むメモリが搭載されている。ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３は、プログラムメモリであって、後述する各種処理手順を含むＣＰＵ１０２による制御のためのプログラムを格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０４は、データメモリであり、ＣＰＵ１０２の上記プログラムのワーク領域、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを有する。入出力インタフェース１０７を介して外部記憶装置１１１などからＲＡＭ１０４にプログラムをロードすることで、プログラムメモリを実現しても構わない。ここで、外部記憶装置１１１は、例えば、メディア（記録媒体）と、当該メディアへのアクセスを実現するための外部記憶ドライブとで実現することができる。このようなメディアとしては、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、ＵＳＢメモリ、ＭＯ、フラッシュメモリ等が知られている。また、外部記憶装置１１１は、ネットワークで接続されたサーバ装置などであってもよい。本実施形態において必要な情報は、ＲＡＭ１０４や外部記憶装置１１１に保持される。入力インタフェース１０５は、ポインティングデバイスなどの入力部を制御し、入力信号を取得して、システムバス１０１を介してシステムに通知する。出力インタフェース１０６は、表示部を有する出力部に対して、少なくとも、後述する各種の処理を実行した結果の出力を制御する信号を出力する。タッチセンサ１０８は、入力部が有する入力対象面に対するタッチ位置を検出し、入力インタフェース１０５に通知する。タッチセンサ１０８としては、抵抗膜方式、静電容量方式、赤外線方式、超音波方式、音響波方式、振動検出方式等の各種タッチパネルが利用できる。他にも、距離画像センサや、ステレオカメラなどの三次元空間での位置を検出できるもので入力対象面に触れたかどうかを検出し、入力対象面上で定義される位置情報を取得してもよい。近接センサ１０９は、入力対象面に操作オブジェクトが近接している状態（入力対象面と操作オブジェクトとが、非接触ではあるが近傍に存在する状態）でも入力対象面に対する位置情報を検出し、入力インタフェース１０５に通知する。なお、近接状態にある操作オブジェクトの位置検出は、ホバー状態での検出、ホバー位置の検出と呼ばれることもある。近接センサ１０９としては、静電容量方式、赤外線方式、超音波方式、音響波方式などのタッチパネルを用いることができる。これらタッチパネルの感度を高めることで、操作オブジェクトが入力対象面に近接している状態（以下では、近接状態という）でも位置情報を検出できる。他にも、距離画像センサや、ステレオカメラなどの三次元空間での位置を検出することで、入力対象面か��離れた状態での位置を取得してもよい。ディスプレイ１１０は、情報処理装置１００での各種処理の実行結果を表示する。ディスプレイ１１０としては、液晶ディスプレイ、テレビモニタ、プロジェクタなどがある。本実施形態においては、タッチセンサ１０８、近接センサ１０９に静電容量方式のタッチパネルを利用し、ディスプレイ１１０である液晶ディスプレイの表示画面に重畳するように設置されたものである。つまり、ディスプレイ上に設置されたタッチパネル表面が入力対象面に相当する。なお、タッチセンサ１０８と近接センサ１０９の信号は、タッチパネルが出力する信号としてまとめて通知されてもよい。タッチパネルと液晶ディスプレイは、一体化したタッチパネル内蔵ディスプレイであってもよい。本実施形態では、タッチパネルは、操作オブジェクトと、タッチパネル表面とが接触する面を検出し、タッチ位置としてそのうちの１点の座標を特定する。静電容量の検出感度を高めた検出方式により、近接状態においても同様にタッチパネル表面に近接するユーザの指の位置を検出し、１点の座標を近接位置として特定する。この時、タッチ状態で検出された位置と、近接状態で検出された位置は区別可能であり、タッチパネルからタッチ状態と近接状態を区別する情報と共に位置情報が情報処理装置へ通知される。なお、本実施形態においては、タッチセンサ１０８によって、タッチパネル表面に接触していることが検出されている操作オブジェクトに関しては、近接センサ１０９は近接位置を検出しない。あくまでも近接位置としては、タッチパネル表面と非接触状態にあり、かつ、位置情報を検出可能な程度に近接している操作オブジェクトの先端部（例えば、ユーザの指先）の位置情報が検出される。
【００１４】
図１（ｂ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。なお、以下、本実施形態では、操作オブジェクトとしてユーザの１本以上の指が使用される例を説明するが、ユーザがスタイラス等を利用する場合であっても行われる処理は同じである。
【００１５】
まず、本実施形態の情報処理装置１００は、タッチ位置検出部１２１、近接位置検出部１２２、認識部１２３、判定部１２４、出力制御部１２５を有する。これらの各機能部は、ＣＰＵ１０２が、ＲＯＭ１０３に格納されたプログラムをＲＡＭ１０４に展開し、後述する各フローチャートに従った処理を実行することで実現されている。ただし、本発明は、これらの機能部をハードウェアで実現する情報処理装置によっても同様に実現可能である。以下、各要素について説明する。
【００１６】
タッチ位置検出部１２１は、入力インタフェース１０５から通知された信号に基づき、ユーザによってタッチされたタッチ位置に関する情報を検出する。その際、本実施形態では、入力インタフェース１０５が、入力部であるタッチパネルが検出しているタッチ位置の情報を一定の間隔で参照し、タッチ位置の情報を取得する毎に順次、タッチ位置検出部１２１に信号を通知する。タッチ位置検出部１２１が検出するタッチ位置に関する情報には、少なくともタッチイベントの位置情報が含まれる。タッチイベントとは、通知されるタッチ情報の種別を表す情報である。本実施形態では、操作オブジェクトが新たにタッチパネル表面に接触したこと、あるいは接触が継続されていることに応じたタッチ情報の通知時は「ＴＯＵＣＨ」というイベントが通知される。また、操作オブジェクトがタッチパネルからリリースされたことに応じたタッチ情報の通知時には「ＲＥＬＥＡＳＥ」というタッチイベントが通知される。すなわち、タッチイベントが「ＴＯＵＣＨ」であった場合には、通知される情報には操作オブジェクトによってタッチされているタッチ位置を示す座標情報が含まれる。「ＲＥＬＥＡＳＥ」であった場合には、操作オブジェクトはタッチパネル表面に接触していないので、タッチ位置の情報は検出されない。本実施形態において、タッチ位置検出部１２１が検出するタッチ位置に関する情報には、更にタッチ位置あるいはタッチイベントが検出された時間を示す情報や、タッチ位置を識別するためのＩＤを含む。ＩＤには、タッチ位置が検出された順番を関連させた識別子を用いることで、検出されるタッチ位置の数が複数である場合に管理がしやすくなる。また、本実施形態では、タッチ位置検出部１２１は、ＩＤを基にタッチ位置の最新の情報を検出し、同じＩＤのタッチ位置が以前に検出された位置と異なる位置で検出されたことに基づき、タッチ位置が移動したことを検出することができる。ただし、同じＩＤのタッチ位置が以前に検出された位置と異なる位置で検出されたことに応じたタッチ情報の通知時に「ＭＯＶＥ」というタッチイベントが通知される検出システムに適応しても構わない。
【００１７】
近接位置検出部１２２は、タッチ位置検出部１２１と同様に、操作オブジェクトが入力対象面（タッチパネル表面）に近接している状態での位置に関する情報を検出する。なお、ここで検出する近接位置は、タッチパネル表面に平行な二次元平面における、操作オブジェクトの先端部（例えば、ユーザの指先）座標である。本実施形態では、タッチパネル表面に垂直な方向（高さ方向）の位置に関する情報は検出されない。また、本実施形態においては、タッチパネル表面に接触している操作オブジェクトに関しては、近接位置は検出されない。ただし、タッチ位置検出部１２１が取得したタッチイベントの通知が「ＲＥＬＥＡＳＥ」であった場合には、操作オブジェクトはタッチパネル表面から離れている。従って、「ＲＥＬＥＡＳＥ」イベントの通知と略同時のタイミングで、近接位置検出部１２２によって近接位置が検出されることがある。
【００１８】
本実施形態においては、タッチ位置検出部１２１と検出間隔や近接位置検出部１２２によって通知される情報（タッチイベント、ＩＤ、位置を示す座標情報、検出時刻等）の内容は、同じ形式に統一され、ＲＡＭ１０４上に保持されて処理される。ただし、近接位置検出部１２２による通知情報には、近接状態で検出したことを示す情報が付加される。例えば、近接フラグの値を「ＯＮ」とする。
【００１９】
認識部１２３は、タッチ位置検出部１２１にて検出されたタッチ位置に基づいてタッチ操作を認識する。例えば、１つ以上の操作オブジェクトによるシングルタップ、ダブルタップ、トリプルタップ、スワイプ（タッチパネル表面を特定の一方向になぞる操作）、フリック（タッチパネル表面を指で弾くように高速で動かしてリリースする操作）などを認識する。また、複数の操作オブジェクトによる複数のタッチ位置の相対距離等に基づいて、表示画像を拡大縮小させるピンチ、表示画像を回転させるローテート等のマルチタッチ操作や、タッチ位置の軌跡によって図形や文字を描く手書き入力操作を認識する。なお、トリプルタップを認識する場合は、第１の入力に相当するタップに後続する第２の入力のタップ、さらに後続する第３の入力のタップを検出する必要がある。このように、第１の入力に後続する入力とは、複数回分の入力である場合もある。
【００２０】
判定部１２４は、ユーザによって指がリリースされた直後から近接位置検出部１２２にて検出される一連の近接位置が所定の条件を満たすかに基づいて、後続する入力を待たずに出力を開始するかを判定する。具体的には、近接位置の移動距離や、移動速度、移動方向などが所定の条件を満たす場合には、タッチ操作が継続されていると判定する。ここで、操作が継続中ではないと判定された場合、すなわち１つのタッチ操作が終了と判定された場合、直前に指がリリースされるまでに検出されたタッチ位置に基づいて、認識部１２３が認識するタッチ操作の内容を即座に出力制御部１２５に通知する。一方で操作が継続されていると判定された場合、続くタッチ位置の情報を待ち受け、出力制御部１２５に対して通知は行わない。
【００２１】
出力制御部１２５は、入力された操作に対して応答する為、情報処理装置１００の各機能部を制御する。本実施形態では、少なくとも判定部１２４から通知された操作内容に基づいて表示画像を生成し、出力部であるディスプレイ１１０に出力する。
【００２２】
図２は、本実施形態において、情報処理装置１００がタッチ操作を認識する処理の流れの一例を示すフローチャートである。図２のフローチャートの処理は、入力インタフェース１０５からタッチセンサにおいて検出されたタッチ位置の情報又は近接センサにおいて検出された近接位置の情報の通知があったことに応じて起動される。また、入力インタフェース１０５からタッチセンサによって検出されていたタッチ位置、又は近接センサによって検出されていた近接位置が検出されなくなったことを示すリリースの通知があったことに応じても起動される。タッチ位置の情報の通知及びリリースの通知は、所定の時間間隔で、センサの最新の状況を参照して通知されるため、図２のフローチャートの処理は所定時間間隔で繰り返されることとなる
まず、ステップＳ２０１では、タッチ位置検出部１２１がタッチ位置に関する情報を検出する。タッチ位置検出部１２１は、タッチセンサ１０８が検出する情報に基づいて入力インタフェース１０５から通知されるタッチ位置の情報を検出する。また、入力インタフェース１０５からリリースの通知があった場合は、その検出時間に対応するタッチ位置に触れていた操作オブジェクトが離されたことを検出する。タッチ位置検出部１２１は、検出した情報をＲＡＭ１０４に保持する。本実施形態では、少なくとも、あるＩＤのタッチ位置が最初と最後に検出された時の情報を保持する。従って、既に検出されているＩＤのタッチ位置の移動が検出された場合には、新しく検出された情報で、最後に検出されたタッチ点の情報を更新する。タッチパネル表面に触れている操作オブジェクトがない場合は、タッチセンサ１０８からタッチ位置の情報通知が無いため、タッチ位置検出部１２１はタッチ位置を検出しない。
【００２３】
次に、ステップＳ２０２では、近接位置検出部１２２が近接位置に関する情報を検出する。近接位置検出部１２２は、近接センサ１０９が検出する情報に基づいて入力インタフェース１０５から通知される近接位置の情報を検出する。また、直前の検出では検出されていた操作オブジェクトが、タッチパネル表面に近接しなくなった場合には、入力インタフェース１０５から近接位置のリリースが通知される。この通知があった場合は、操作オブジェクトが入力対象面から十分に離れたことを意味する。近接位置検出部１２２は、検出した情報をＲＡＭ１０４に保持する。この際、ＩＤ、位置を示す座標情報、検出時刻等に加えて、近接状態で検出されたことを示す情報を保持する。例えば、近接フラグを「ＯＮ」とする。タッチパネル表面に近接する操作オブジェクトがない場合（操作オブジェクトがタッチパネル表面に接触している場合も含む）は、近接センサ１０９から近接位置の情報通知は無い。従って、近接位置検出部１２２は近接位置を検出しない。
【００２４】
ステップＳ２０３では、認識部１２３が、タッチ位置検出部１２１がステップＳ２０１においてタッチ位置を検出したか否かを判定する。タッチ位置検出部１２１がタッチ位置を検出した場合には（ステップＳ２０３でＹＥＳ）、処理はステップＳ２０４に進む。一方、タッチ位置検出部１２１がタッチ位置を検出しなかった場合には（ステップＳ２０３でＮＯ）、処理はステップＳ２０５に進む。
【００２５】
ステップＳ２０４では、認識部１２３が、ＲＡＭ１０４に蓄積されているうち、タッチ位置検出部１２１が検出したタッチ位置に関する情報を、タッチ操作を認識する為に必要な情報として抽出し保持する。具体的には、例えばＲＡＭ１０４に保持されている情報のうち、所定の条件を満たす情報を専用の記憶領域に読み出す、あるいはタッチ操作情報フラグを「ＯＮ」として操作に用いない情報と区別して処理対象と特定する。所定の条件とは、例えば近接フラグが「ＯＦＦ」である情報であることや、直近の所定時間の間に検出されたタッチの情報であること等である。
【００２６】
ステップＳ２０５では、認識部１２３が、この時点が、操作オブジェクトがリリースされた直後、すなわち第１の入力が検出された直後か否かを判定する。リリース直後か否かの判定は、ステップＳ２０１において通知されたタッチイベントの履歴に基づいて、最後に通知されたイベントが「ＲＥＬＥＡＳＥ」であったか否かによって判定する。また例えば、タッチ位置が検出されている間は「ＯＮ」となるタッチフラグを設定すれば、タッチ位置が検出されなくなった時にタッチフラグが「ＯＮ」のままであれば、前回の通知時はタッチされていた、すなわちリリース直後であるという判定が可能になる。タッチフラグは、リリース直後と判定された後に「ＯＦＦ」にすればよい。認識部１２３によって、リリース直後であると判定された場合には（ステップＳ２０５でＹＥＳ）、処理はステップＳ２０６に進む。一方、リリース直後でないと判定された場合には（ステップＳ２０５でＮＯ）、処理はステップＳ２０９に進む。
【００２７】
ステップＳ２０６では、認識部１２３がステップＳ２０４にて保持しているタッチ操作を認識するための情報を参照し、ユーザにより入力されたタッチ操作を認識する。認識部１２３は、情報処理装置１００が実行する様々な処理を指示するコマンドに対応付けられたタッチ操作と、当該タッチ操作を構成するタッチ位置の条件が登録されている辞書情報を参照し、検出された情報によって条件が満たされているかを判断する。そして、辞書情報に含まれる複数のタッチ操作のうち、ＲＡＭ１０４上のタッチ操作を認識するための情報と合致すると判断されるタッチ操作を、ユーザが入力したタッチ操作として認識する。ここで辞書情報には、例えば、フリックやピンチが認識される条件としてのタッチ位置の移動距離や移動時間、タッチ位置の間の距離の閾値の情報や、手書きコマンドの形状を示す情報等が含まれる。ただし、既にステップＳ２０６の処理によって何らかのタッチ操作を認識されていた場合には、後続して入力された情報を含めた一連の入力に応じて改めてタッチ操作を認識する。従って、第１の入力のリリース直後にステップＳ２０６の処理が実行される場合には、直前までに入力されていた第１の入力によって構成される第１の操作が認識される。第１の入力に後続する入力のリリース直後にステップＳ２０６の処理が実行される場合には、第１の入力とそれに後続する入力とで構成される第２の操作が認識される。なお、認識部１２３は、ＲＡＭ１０４上のタッチ操作を認識するための情報が、辞書情報に登録されたタッチ操作のいずれにも合致しない場合は、タッチ操作を特定しない。ステップＳ２０６では、予め辞書情報に登録されたタッチ操作のうち、ユーザが入力したタッチ操作が特定したことをもって、タッチ操作が認識されたとする。この段階では、特定されたタッチ操作に対応するコマンドの発行及び通知はなされない。なお、本実施形態では、リリース直後と判定された時点で（ステップＳ２０５）、タッチ操作を認識しているが、リリース前のタイミング（ステップＳ２０４）で入力中のタッチ操作を認識してもよい。いずれのタイミングで判断をするかは、予め辞書情報に登録されたタッチ操作によって適切に選択する。本実施形態の辞書情報には、シングルタップ操作のように、第１の入力（１回ずつのタッチとリリースと、その間の操作オブジェクトの動作を含む）によって構成される操作が含まれる。それとともに、ダブルタップのように、第１の入力とそれに後続する入力（複数回のタッチとリリースと、その間の操作オブジェクトの動作を含む）によって構成される操作とが含まれる。
【００２８】
ステップＳ２０７では、判定部１２４が、ステップＳ２０６においてタッチ操作が認識されたか否かを判定する。すなわち、本実施形態では、認識部１２３によって、辞書情報に登録されたタッチ操作のうち、ユーザが入力したタッチ操作が特定されたか否かを判定する。タッチ操作が認識されたと判定された場合には（ステップＳ２０７でＹＥＳ）、処理はステップＳ２０８に進む。一方、タッチ操作が認識されていないと判定された場合には（ステップＳ２０７でＮＯ）、タッチ操作を認識する処理は終了する。この場合、次に検出されるタッチ位置あるいは近接位置に応じて再び図２のフローチャートが起動され、タッチ操作が認識されるまで同様の処理が繰り返される。
【００２９】
ステップＳ２０８では、判定部１２４が、次に検出される近接位置に基づいて操作の継続判定を行うことを示す継続判定フラグを「ＯＮ」に設定し、ＲＡＭ１０４に情報を保持する。このように、本実施形態では、操作オブジェクトがリリースされたためにタッチ位置検出部１２１によってタッチ位置が検出されなくなったことに応じて、後続する入力を待たずにタッチ操作に対する出力を開始するかの判定を行うことを決定する。そして、それを示すフラグを設定する。
【００３０】
一方、ステップＳ２０９は、判定部１２４が、ステップＳ２０２において近接位置検出部１２２が近接位置を検出したか否かを判定する。近接位置を検出したと判定された場合には（ステップＳ２０９でＹＥＳ）、処理はステップＳ２１０に進む。一方、ステップＳ２０２においてリリースの通知を受けた場合等、近接位置を検出しなかったと判定された場合には（ステップＳ２０９でＮＯ）、処理はステップＳ２１５に進む。
【００３１】
ステップＳ２１０では、判定部１２４が、保持されている継続判定フラグが「ＯＮ」か否かを判定する。継続判定フラグが「ＯＮ」であると判定された場合には（ステップＳ２１０でＹＥＳ）、処理はステップＳ２１１に進む。このように、継続判定フラグを用いて、タッチ位置検出部１２１によってタッチ位置が検出されなくなった時点以降に検出される近接位置の情報を、後続する入力を待たずにタッチ操作に対する出力を開始するかの判定に用いることができる。一方で、継続判定フラグが「ＯＦＦ」であると判定された場合には（ステップＳ２１０でＮＯ）、タッチ操作を認識する処理は終了する。継続判定フラグが「ＯＮ」ではない場合、検出されている近接位置は、タッチ操作の直前など、タッチ位置が検出されなくなった時点以降に検出されたものではないからである。この場合にも、次に検出されるタッチ位置あるいは近接位置に応じて再び図２のフローチャートが起動され、同様の処理が繰り返される。
【００３２】
ステップＳ２１１では、判定部１２４が、ステップＳ２０２において検出された近接位置を用いて、操作オブジェクトが近接状態を継続したまま移動した移動距離を取得する。具体的には、タッチ位置のリリース後に最初に検出された近接位置から、最後に検出された近接位置までの直線距離を、移動距離として取得する。計算量を削減した上で、移動の影響が顕著に表れる位置の組み合わせであるからである。ただし、移動距離の取得方法はこれに限らない。例えば、検出された一連の近接位置を保持しておいて、近接位置の分布から平均線を取得して平均線の移動距離を取得してもよい。これにより近接位置検出時のブレを含まずに移動距離を取得できる。また、前回の近接位置を保持しておき、前回の近接位置から今回の近接位置までの移動距離を取得してこれまでに取得済みの移動距離に足していってもよい。これにより、実際に移動した距離を取得することもできる。更に、入力対象面に対する高さ方向の近接位置を検出可能なシステムを利用する場合には、高さ方向の位置情報も考慮して移動距離を取得してもよい。これにより、入力対象面から高さ方向に大きく操作オブジェクトが離れた場合には、次の操作は入力されないと判定できる。また、ここまでは全て移動距離を用いて説明しているが、移動距離の代わりに移動速度を用いても同様の処理が可能である。
【００３３】
ステップＳ２１２では、判定部１２４が、ステップＳ２１１にて取得された移動距離が予め設定された閾値より大きいか否かを判定する。ここで用いられる移動距離の閾値は、タッチ操作が終了したか継続されるかを判定するための閾値である。本実施形態では、移動距離が閾値より大きい場合には、ユーザが操作を終了させたために、操作オブジェクトをタッチパネルから遠ざけた可能性が高く、１つのタッチ操作を構成する続くタッチが継続して入力される可能性は低いとみなす。一般に、操作が終了した場合には、操作オブジェクトは操作を行った位置付近に待機させるよりも、タッチパネルからは移動させる方が、表示出力された内容を視認しやすくするためにも自然であるからである。一方、移動距離が閾値より小さい場合、ユーザは１つのタッチ操作を入力途中であるため、指をタッチパネル表面の近傍で待機させている可能性が高いとみなす。移動距離が閾値より大きいと判定された場合（ステップＳ２１２でＹＥＳ）には、ステップＳ２１３に進む。移動距離が閾値より小さいと判定された場合（ステップＳ２１２でＮＯ）には、タッチ操作を認識する処理は終了する。そして、次に検出されるタッチ位置あるいは近接位置に応じて再び図２のフローチャートが起動され、後続するタッチ入力が検出されるか否かに応じた処理が繰り返される。
【００３４】
ステップＳ２１３では、認識部１２３が、ステップＳ２０６において認識されたタッチ操作に対応する処理を実行するため、認識されたタッチ操作に対応する指示を出力制御部１２５に通知する。これにより、出力制御部１２５は、ステップＳ２０６にて認識されたタッチ操作に対する応答を開始し、ディスプレイ１１０の表示内容を更新する。
【００３５】
ステップＳ２１４では、判定部１２４が継続判定フラグを「ＯＦＦ」にする。ステップＳ２１４の処理は、入力されたタッチ操作が確定した場合に実行される。従って、ＲＡＭ１０４に保持されているタッチ位置及び近接位置に関する一連の情報を削除する。
【００３６】
一方、ステップＳ２１５では、判定部１２４が継続判定フラグを「ＯＦＦ」にする。ステップＳ２１５の処理は、継続されているか否かの判断に用いる近接位置が検出されなくなった場合に実行される。従って、ユーザが操作オブジェクトを大きく移動させてタッチパネルから遠ざけた、すなわち閾値よりも十分大きい距離の移動があった可能性がある。同時に、例えばタッチパネル表面に直交する方向の移動や、タッチパネルの外縁付近での操作等、本実施形態の近接位置検出部１２２での検出が困難であるが、閾値を越える程の移動距離が生じていない可能性がある。
【００３７】
従って、ステップＳ２１６では、認識部１２３が、近接位置以外の情報に基づいてタッチ操作が終了したかを判断し、タッチ操作を通知する。本実施形態では、タッチ位置がリリースされてから所定時間、次のタッチが検出されないか否かに基づく判断を行う。タッチ位置がリリースされてから所定時間が経過していた場合には、ステップＳ２０６において認識されたタッチ操作に対応する処理を実行するため、認識されたタッチ操作に対応する指示を出力制御部１２５に通知する。これにより、出力制御部１２５は、ステップＳ２０６にて認識されたタッチ操作に対する応答を開始し、ディスプレイ１１０の表示内容を更新する。ただし、近接センサ１０９の感度等から、近接位置を検出可能な範囲の大きさが十分であると考えられる場合には、ステップＳ２１６では、条件判定処理を設けずにタッチ操作を通知してもよい。
【００３８】
なお、本実施形態では、ステップＳ２０８においてはどんな場合でも継続判定フラグを「ＯＮ」としたが、さらにステップＳ２０６にて認識されたタッチ操作の種類に応じて、継続判定フラグを「ＯＮ」とするか否かを決定する処理ステップを加えてもよい。例えば、辞書情報にシングルタップ操作とダブルタップ操作が登録されている情報処理装置１００において、認識されたタッチ操作がシングルタップであった場合、ユーザはダブルタップとするために直後に再びタップを入力する可能性がある。従って、継続判定フラグを「ＯＮ」にする。そして、例えばダブルタップ以外に、第１の入力とそれに後続する入力とで構成されるタッチ操作が辞書情報に含まれないのであれば、タップ以外のタッチ操作が認識された場合には、継続判定フラグは「ＯＦＦ」として構わない。従って、ステップＳ２０９以降の処理を省略し、認識部１２３によって認識されたタッチ操作を出力制御部１２５に通知してもよい。
【００３９】
また、本実施形態では、ステップＳ２１２では、近接状態における移動距離が閾値以上か否かを１回判定した結果に応じて、タッチ操作を速やかに通知するか否かを判定したが、これに限らない。例えば、近接位置の移動距離の閾値は小さく設定した上で、所定の時間間隔毎に検出される近接位置の、前回の位置から今回の位置までの移動距離、もしくは移動速度が所定の回数連続で閾値を超えた場合に次の操作は入力されないと判定してもよい。こうすることで、最初の近接位置と最後の近接位置の直線距離が、大きな閾値を越えるのを待つよりも速やかな判断が可能となる場合がある。他にも、所定の回数連続して、移動方向が概ね同一方向の場合に次の操作は入力されないと判定してもよい。
【００４０】
以上説明したようにして、本実施形態の情報処理装置１００は、ユーザがタッチ操作を終了したのか、第１の入力とそれに後続する入力とで構成される操作が継続されているのかを速やかに区別して処理を行う。
【００４１】
なお、トリプルタップ等、３回以上連続する入力によって構成される操作を認識する場合は、操作オブジェクトのリリースがある毎に上記の処理が繰り返される。
【００４２】
（操作例１）
ここで、具体的に、第１の実施形態による情報処理装置１００をユーザが操作する操作例１を説明する。
【００４３】
図３は、タップが行われる際に検出される一連のタッチ位置及び近接位置の一例を示す。図３（ａ）は、本実施形態で使用するタッチパネルの一例を説明する図である。タッチパネル表面の入力領域３００は、図面に向かって左上を原点とし、ｘ軸方向に９６０ｄｏｔ、ｙ軸方向に５４０ｄｏｔの幅を持つ座標平面として、タッチ位置及び近接位置を座標情報として扱う。タッチパネルの解像度は、ディスプレイに合わせてあるものとし、単位はｄｏｔとする。タッチ位置及び近接位置の検出情報は、入力インタフェース１０５から２０ｍｓ毎に通知されるものとする。なお、入力領域３００は、入力対象面としてのタッチパネル表面の全体であってもよいし、入力対象面内の一部の領域であってもよい。操作オブジェクトとしてのユーザの指３０１は、入力領域３００に対してシングルタップ操作、あるいはダブルタップ操作を入力する。図３（ｂ）は、図３（ａ）における指３０１付近を、紙面に向かって下から上方向に見た状態に相当する。そして、指３０１が、図３（ａ）に示された位置で、シングルタップを入力し、その後、近接状態で指３０１が移動するのに伴い、一連の近接位置が検出される様子を示す。図３（ｄ）は、図３（ｂ）に示されるタッチ位置、及び近接位置が検出される際に保持される関連情報をまとめた図である。
【００４４】
同様に図３（ｃ）は、図３（ａ）の位置で、指３０１によりダブルタップが入力された後に近接状態で検出される一連の位置情報を示している。図３（ｅ）は、図３（ｃ）に示されるタッチ位置、及び近接位置が検出される際に保持される関連情報をまとめた図である。
【００４５】
まず、シングルタップ操作かダブルタップ操作かに関わらず、ユーザが入力領域３００にタッチしようと指３０１を近付けた際に、情報処理装置１００において実行される処理を説明する。まず、ユーザが指３０１をタッチパネルに接触させるまでの間に、近接センサ１０９が近付いてきた指３０１を検出する場合、入力インタフェース１０５を介して近接位置が情報処理装置１００に通知される。これにより、タッチ操作を認識する処理（図２のフローチャート）が開始される。ただし、まだタッチ操作は開始されていないため、ステップＳ２０３、ステップＳ２０５でＮＯ、ステップＳ２０９でＹＥＳ、ステップＳ２１０でＮＯという処理により処理は終了し、次の通知を待つことになる。
【００４６】
次に、ユーザが指３０１を進めて入力領域３００にタッチしたことに応じて、タッチセンサ１０８が指３０１を検出し、入力インタフェース１０５を介してタッチ位置が情報処理装置１００に通知される。これにより、図２のフローチャートのタッチ操作を認識する処理が開始される。この場合、タッチ位置検出部１２１が入力インタフェース１０５を介して通知されたタッチ位置を検出する（ステップＳ２０１）。近接位置検出部１２２は、近接位置を検出しようとするが、この時はタッチされている状態であるため、近接位置としては検出されない（ステップＳ２０２）。そして、認識部１２３は、タッチ位置が検出されたと判定し（ステップＳ２０３でＹＥＳ）、タッチ操作を認識するために必要な情報を保持し、タッチ操作を認識する処理を終了する（ステップＳ２０４）。これ以降、タッチ位置の情報が２０ｍｓ毎に通知される度に、タッチ操作を認識する処理が起動され、指３０１がリリースされるまでは同様の処理が繰り返される。
【００４７】
ここまでの操作は、シングルタップ操作とダブルタップ操作に共通した。ここからは、後続する入力を待たずにタッチ操作に対する出力を開始するかを判定するために用いられる移動距離の閾値を２０ｄｏｔとして、シングルタップ操作が行われる場合とダブルタップ操作が行われる場合をそれぞれ示す。
【００４８】
まず、図３（ｂ）及び図３（ｄ）に基づいて、ユーザがシングルタップ操作を行う場合に、本実施形態の情報処理装置１００で実行される処理を説明する。点３１１はタッチ位置であり、ユーザがシングルタップを入力した際に指３０１を入力領域３００から離す直前に検出していたタッチ位置である。説明を簡単にするため、ここではこの時の検出時刻を０ｍｓとする。このタッチ位置が検出されたことに応じて、上述した通りステップＳ２０３でＹＥＳ、ステップＳ２０４の処理が実行される。次に、点３１２〜３１６は一連の近接位置であり、ユーザがシングルタップを入力して、指３０１を入力領域３００から離した後、近接センサ１０９が入力領域３００から離れた指３０１の位置を検出したものである。検出された近接位置は、入力インタフェース１０５を介して近接位置が情報処理装置１００に通知される。
【００４９】
初めの近接位置３１２が通知されたことに応じて、図２のフローチャートの処理が起動される。操作オブジェクトはタッチパネルに接触していないため、タッチ位置は検出されず、近接位置検出部１２２が近接位置を検出する（ステップＳ２０２）。ここでは、認識部１２３は、タッチ位置を検出しておらず（ステップＳ２０３でＮＯ）、また、リリース直後であると判定する（ステップＳ２０５でＹＥＳ）。さらに認識部１２３は、ステップＳ２０４にて保持している最初に検出されたタッチ位置と時刻、最後に検出されたタッチ位置とその時刻を利用してシングルタップ操作を認識する（ステップＳ２０６）。例えば、最初のタッチ位置から最後のタッチ位置までの移動距離が閾値以内であり、最初のタッチ位置が検出された時間から最後のタッチ位置が検出された時間までの経過時間が閾値以内である場合にシングルタップと認識する。なお、ここではシングルタップのみを例に挙げているが、もちろん他の操作に適応することも可能である。次に、判定部１２４は、シングルタップが認識されたと判定し（ステップＳ２０７でＹＥＳ）、継続判定フラグを「ＯＮ」にする（ステップＳ２０８）。近接位置を検出し（ステップＳ２０９でＹＥＳ）、継続判定フラグが「ＯＮ」であるため（ステップＳ２１０でＹＥＳ）、判定部１２４は、近接状態での移動距離を求める（ステップＳ２１１）。ただし、この時は近接位置が点３１２のみしか検出されていないため、移動距離が０で取得閾値以上とならず（ステップＳ２１２でＮＯ）、タッチ操作を認識する処理を終了する。
【００５０】
次に、近接位置３１３が通知されると、タッチ操作を認識する処理が開始され、ステップＳ２０５までは近接位置３１２を用いた説明と同様に処理が実行される。ただし、今回はリリース直後でない。従って、ステップＳ２０５でＮＯ、ステップＳ２０９でＹＥＳ、ステップＳ２１０でＹＥＳという順に処理が進む。そして、判定部１２４により、前回保持した最初の近接位置３１２（３９７，２９９）から今回の近接位置３１３（４０３，２９８）までの移動距離が約６．０８ｄｏｔと取得される（ステップＳ２１１）。そして、判定部１２４は、取得された移動距離取得約６．０８ｄｏｔは閾値２０ｄｏｔを超えないため、タッチ操作を認識する処理を終了し、次のタッチの入力を待つ。
【００５１】
次に、近接位置３１４が通知されると、タッチ操作を認識する処理が開始され、ステップＳ２１１までは近接位置３１３を用いた説明と同様に進む。そして判定部１２４により、保持されている最初の近接位置３１２（３９７，２９９）から今回の近接位置３１４（４１０，２８４）までの移動距離を約２１．７４ｄｏｔと取得される（ステップＳ２１１）。今回取得された移動距離約２１．７４ｄｏｔは閾値２０ｄｏｔを超えているため（ステップＳ２１２でＹＥＳ）、判定部１２４がステップＳ２０６にて認識されたタッチ操作であるシングルタップを出力制御部１２５に通知する（ステップＳ２１３）。判定部１２４は、継続判定を停止するために継続判定フラグをＯＦＦにし、タッチ操作を認識する処理を終了する（ステップＳ２１４）。図３（ｄ）に示すように、近接位置３１４の検出時間は、シングルタップ操作の最後のタッチ位置が検出された時刻を０ｍｓとして、６０ｍｓ後である。
【００５２】
この後、近接位置３１５〜近接位置３１６が通知されても、継続判定フラグがＯＦＦになっているため、ステップＳ２１０でＮＯに進み、継続判定処理は行われない。
【００５３】
このように、ユーザがシングルタップを入力した場合には、タップ入力後に指をどけるために近接状態での指の移動距離が大きくなる。この例では、タッチ位置の最後の検出時刻から６０ｍｓ後には、シングルタップ操作が入力されたことを速やかに判断することができる。
【００５４】
次に、図３（ｃ）と図３（ｅ）を用いて、ダブルタップが入力される場合の例を説明する。点３２１はタッチ位置であり、ユーザがダブルタップ操作を構成する１回目のタップを入力し、入力領域３００から指３０１をリリースする直前に検出されたタッチ位置である。このタッチ位置が検出された際に、タッチ操作を認識する処理は、上述の通り、ステップＳ２０３でＹＥＳ、ステップＳ２０４の処理が実行される。点３２２〜３２５は近接位置であり、ユーザが１回目のタップを入力してから一旦、指３０１を入力領域３００から離して再び接触させるまでの間に、近接センサ１０９が検出したものである。検出された近接位置は、入力インタフェース１０５を介して近接位置が情報処理装置１００に通知される。点３２６はタッチ位置であり、ユーザがダブルタップの２回目のタップを入力するために指３０１を再び入力領域３００に接触させた際のタッチ位置である。
【００５５】
最初に、近接位置３２２が通知される場合に行われる処理は、図３（ｂ）の近接位置３１２の場合と同じであるため省略する。
【００５６】
近接位置３２３が通知されると、タッチ操作を認識する処理が開始され、近接位置３１３を用いた説明と同様に処理される。ただし、ステップＳ２１１では、保持されている最初の近接位置３２２（４００，３０１）から今回の近接位置３２３（４００，２９９）までの移動距離を約２．００ｄｏｔと取得する。取得移動距離約２．００ｄｏｔは、閾値２０ｄｏｔを超えないため（ステップＳ２１２でＮＯ）、タッチ操作を認識する処理を終了し、次の操作を待ち受ける。
【００５７】
これ以降、近接位置３２４〜３２５の情報が通知される度、同様の処理に従って移動距離を取得する。近接位置３２３から近接位置３２４（４０２，２９８）までの移動距離は４．２４ｄｏｔ、近接位置３２５（４０２，２９７）までの移動距離は５．２４ｄｏｔとなり、いずれも閾値２０ｄｏｔを超えない。
【００５８】
タッチ位置３２６が通知されると、タッチ操作を認識する処理が開始され、２回目のタップを認識する処理が実行される。この後、２回目のタップがリリースされると、ステップＳ２０６にてダブルタップが認識される。この後も同様に、近接状態における継続判定が行われ、継続しないと判定された場合には即座にダブルタップを通知し、継続すると判定されている間はトリプルタップのための３回目のタップを待ち合わせる。ただし、例えば予め辞書情報に登録されたタッチ操作に、トリプルタップが含まれない場合には、ステップＳ２０８において継続フラグを「ＯＦＦ」とし、ダブルタップを認識したとして、出力制御部１２５に対する通知を行ってもよい。
【００５９】
また、近接位置の移動距離を直線距離で算出したが、これをｘ軸方向、ｙ軸方向で別々に移動距離を算出しても良い。こうすることで、二乗やルートの計算を省くことができ、計算時間を短くできる。更に、ｘ軸とｙ軸で閾値を別々に設定することで、入力領域３００のアスペクト比の違いによる微妙な指３０１の移動量の変化にも対応することができる。
【００６０】
このように、ユーザがダブルタップを入力しようとしている場合には、タップ入力後に次の操作のために指を待機させるため、近接状態での指の移動距離が小さくなる。これを判定することで次の操作を待つことができる。また、２点以上を利用するマルチタッチによるタップにおいても、複数の操作オブジェクトに対応する近接位置において移動距離を求めて閾値と比較することで継続判定を行う事ができる。マルチタッチの場合は、全ての近接位置の移動距離が閾値未満の場合のみ、次操作が継続されないと判定するのが望ましい。
【００６１】
以上説明したように、本実施形態では、タッチ操作を認識した後、入力対象面から操作オブジェクトを離した近接状態での移動距離が大きいか否かを判定することで、次の操作が継続して入力されるか否かを判定する。近接状態での移動距離が大きい場合はユーザが操作を終了し、指を移動させた可能性が高いとみなし、直前まで検出されていたタッチ位置に関する情報から認識されるタッチ操作に対する出力を速やかに指示する。近接状態での移動距離が小さい場合はユーザが操作を続けて入力するために指を待機させている可能性が高いとみなし、タッチ操作を通知せずに次の入力を待つ。この判断方法は、第１の入力とそれに後続する入力とでタッチ操作が構成される場合でも、第１の入力と後続する入力とのタッチ開始位置が同じあるいは近傍であることが予想される操作について判断を行う場合、特に有効である。これにより、ユーザの意図に従いつつ、次の入力を待機する必要が無い場合には速やかに操作に対するフィードバックを示すことが可能となるので、操作の追従性を損なう恐れが低減される。装置によっては、アプリケーションの違い等により、シングルタップ操作とダブルタップ操作がいずれも有効な場面と、シングルタップ操作のみが有効な場面が両方存在する場合がある。その場合、シングルタップ操作のみが有効な場面においては、次の入力を待機する必要がないため、速やかにタッチ操作に対する応答がなされることが多い。本実施形態によれば、シングルタップ操作とダブルタップ操作がいずれも有効な場面においても、シングルタップ操作に対しても速やかに反応できるので、ユーザに対して、場面毎に操作感が異なるという違和感を、感じさせ難くなる。
【００６２】
＜第２の実施形態＞
第２の実施形態では、タッチ操作入力後に操作オブジェクトが、入力部が有するタッチ入力の対象面から離れた後の近接状態での移動方向が所定の条件を満たすかに基づいて次の操作が入力されるか否かを判定する。より具体的には、操作オブジェクトが操作を継続するために次にタッチする位置（次の入力のスタート位置）を特定し、操作オブジェクトが近接状態でその位置に向かう方向へ移動する場合は、操作は継続されていると判定する方法を説明する。第２の実施形態によれば、さらに、１つのタッチ操作を構成する複数のタッチ入力を連続して入力するために、操作オブジェクトが近接状態で大きく移動する場合でも、タッチ操作が終了されたのか、あるいは継続されているかを速やかに区別可能となる。
【００６３】
第２の実施形態に係る情報処理装置１００のハードウェア構成は、第１の実施形態の図１（ａ）と同様であるため、説明を省略する。図１（ｃ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。なお、図１（ｂ）と同じ要素については同符号を付し、その説明を省略する。
【００６４】
スタート位置特定部１３１は、タッチ位置検出部１２１が検出した一連のタッチ位置や、認識部１２３が認識したタッチ操作に基づいて、次に連続して入力される可能性がある操作のスタート位置を特定する。次に連続して入力される可能性がある操作が複数存在する場合には、スタート位置も複数の候補が特定される。判定部１２４は、近接位置検出部１２２が検出した近接位置に基づいて、近接状態での移動方向を取得し、スタート位置特定部１３１が特定したスタート位置に向かう特定の方向であるかどうかを判定する。移動方向がスタート位置の方向である場合、次の操作が入力されると判定し、次の操作を待ち受ける。移動方向がスタート位置に向かう特定の方向でない場合、操作は完了したと判定し、認識部１２３が認識したタッチ操作内容を出力制御部１２５に通知する。
【００６５】
図４は、本実施形態において、情報処理装置１００がタッチ操作を認識する処理の流れの一例を示すフローチャートである。なお、図２と同様の処理については、同符号を付し、その説明を省略する。
【００６６】
ステップＳ４０１は、ユーザが入力したタッチ操作が認識された場合に実行される。ここでは、スタート位置特定部１３１がステップＳ２０１にて検出された一連のタッチ位置や、ステップＳ２０６にて認識されたタッチ操作に基づいて、次に入力される可能性がある操作のスタート位置を特定する。詳細な処理内容は後述する。
【００６７】
ステップＳ４０２は、近接位置を検出し、継続判定フラグがＯＮの場合に実行される。ここでは、判定部１２４が、ステップＳ２０２にて検出された一連の近接位置を用いて近接状態での移動方向を取得する。
【００６８】
ステップＳ４０３では、判定部１２４がステップＳ４０２にて取得された移動方向が、ステップＳ４０１にて特定したスタート位置に向かう方向であるか否かを判定する。移動方向がスタート位置の方向であると判定された場合には（ステップＳ４０３でＹＥＳ）、処理はステップＳ４０４に進む。移動方向がスタート位置の方向でないと判定された場合には（ステップＳ４０３でＮＯ）、タッチ操作を認識する処理は終了する。
【００６９】
ステップＳ４０４では、判定部１２４が情報処理装置１００の各モジュールに対して操作が継続されることを通知する。これにより、次操作を先読みすることで次操作の閾値を変更して判定され易くしたり、システムの状態や画面表示の準備を予め行っておいたりすることができる。
【００７０】
なお、ステップＳ４０３でＮＯに進んだ場合、操作が継続されないと判定されたとして、ステップＳ２１６に進んでもよい。また、本実施形態では、近接状態における移動方向の情報に基づいて後続する入力を待たずにタッチ操作に対する出力を開始するかを判定することで、独立した２つのタッチ操作の間に関連性に応じた制御を加えることができる。例えば、同じ操作が繰り返し入力される場合には、繰り返し回数に応じて閾値や待機時間を調整するような制御である。このように、次の入力まで、１つ目の入力に対する応答を待機する必要が無い場合は、ステップＳ２０８に継続判定フラグは「ＯＮ」するとともに、認識されたタッチ操作を速やかに通知することができる。
【００７１】
また、近接状態になった直後の近接位置はブレが多いため、最初から所定の回数までの近接位置は無視してもよい。もしくは、タッチ操作時の移動方向も取得しておき、その方向への近接位置の変化は無視するとしてもよい。また、近接位置のブレによる影響を軽減するために、所定の回数近接位置が通知されてから移動方向を取得してもよいし、所定の移動距離を超えて移動してから移動方向を取得してもよい。
【００７２】
図５（ａ）〜（ｄ）は、ステップＳ４０１で実行されるスタート位置特定処理の流れの一例を示すフローチャートである。Ａ〜Ｄのいずれの特定方法、またはその組み合わせを並列処理として用いるかは、情報処理装置１００が認識可能な操作として辞書情報に登録されている操作の内容に基づいて選択される。
【００７３】
＜特定方法Ａ＞
まず、図５（ａ）は、同じ動作のタッチ入力を繰り返して入力するような場合を想定したものである。特に、繰り返される動作に、操作オブジェクトをタッチパネルに接触させた状態での移動が含まれる場合に有効である。
【００７４】
ステップＳ５０１では、スタート位置特定部１３１が、直前まで入力されたタッチ入力のスタート位置を、次の操作として入力される可能性があるスタート位置として特定する。具体的には、図４のステップＳ２０６にて認識されたタッチ操作のために最初にタッチされたタッチ位置をスタート位置として特定する。すなわち、直前までタッチ位置検出部１２１に検出されていた一連のタッチ位置のうち、最初に検出されたタッチ位置をスタート位置とする。なお、最初にタッチされたタッチ位置は、ステップＳ２０４にて保持しているものを利用すればよい。
【００７５】
例えば、タッチ操作を認識可能な情報処理装置の多くでは、画面に表示された画像を切り替える場合に、フリックという操作が利用される。フリックとは、上述したように、タッチパネル表面をタッチした指を払うように高速で動かしてリリースする操作である。フリックをスワイプと区別するためには、一般的に、指がリリースされる直前におけるタッチ位置の移動速度が所定の閾値を超えることが条件とされる。ユーザが所望とする画像を探しているような場合には、フリックを連続して入力し、画像を次々と切り替える指示を入力することがある。画像を次々と切り替えている間は、フリックされる度に、ディスプレイに高解像度データを描画すると、不要な負荷がかかったり、ユーザが画像の内容を把握するのに時間がかかったりする場合がある。ただし、ユーザが表示させたい画像の狙いを定め１回だけ入力する、あるいはゆっくりと繰り返す場合には、優先して高解像度の画像データの描画処理を行うことで、ユーザに速やかに閲覧環境を提供することが求められる。このような課題に対し、図５（ａ）のフローチャートに基づいて特定されたスタート位置と、近接位置から取得される操作オブジェクトの移動方向に基づく判定を行えば、ユーザがタッチ入力を終了させたか、繰り返し入力する途中かを区別することができる。従って、ステップＳ４０４の通知に応じて、負荷がかかる処理を開始するタイミングを適切に決定することができる。例えばフリック操作による表示画像の変更においては、操作終了が確定した時点から速やかに高解像度データの描画処理を開始することができる。そして、繰り返し入力がなされている途中であれば、低解像度画像やサムネイル画像の描画を行いながら、次に入力されるフリック操作を待機することで、処理負荷を軽減しつつ、ユーザに対しては画像の内容を視認可能とする。また、フリックにより画像を次々と切り替えたい場合には、速いスピードで指を往復させる動作が必要となるため、ユーザは入力が雑になる傾向があり、フリックと認識されるための条件を満たすことができない場合が生じやすい。このような課題に対しても、近接位置から取得される操作オブジェクトの移動方向に基づく判断により、再びフリックが入力されることを事前に判断することで、ステップＳ４０４の通知に応じて閾値を調整するなどの対策が可能となる。
【００７６】
（操作例２）
ここで、具体的に、第２の実施形態の特定方法Ａによって次のタッチ入力のスタート位置を特定する情報処理装置１００をユーザが操作する操作例２を説明する。
【００７７】
図６は、フリックが行われる際に検出される一連のタッチ位置及び近接位置の一例を示す。図６（ａ）は、ユーザが操作オブジェクトとしての指３０１でフリックを行った様子の一例である。点６０１〜６０２は、番号の順通りに検出されるタッチ位置であり、タッチ位置６０１はフリック操作のために最初にタッチしたタッチ位置で、タッチ位置６０２は、フリック操作の最後のタッチ位置である。図６（ｂ）は、図６（ａ）の中央付近を拡大したものであり、図６（ａ）の位置でフリックが入力された後に、操作オブジェクトが近接状態で移動する様子の一例を示す。点６１１〜６１５は、番号の順通りに検出される近接位置であり、点６１１は、図６（ａ）のタッチ位置６０２において指３０１がリリースされた直後に検出される近接位置であるので、タッチ位置６０２と座標が略一致する。また、点６１６は、連続するフリック操作を入力するためにユーザが再びタッチしたタッチ位置であるとする。タッチ位置及び近接位置の座標や、タッチ位置、近接位置の通知間隔等の条件は、図３と同様とする。図６（ｃ）は、検出される一連のタッチ位置及び近接位置に関する情報をまとめたものである。ここでは、１回目のフリックを開始するためにユーザがタッチを開始した時刻を、０ｍｓとしている。
【００７８】
まず、タッチセンサ１０８がタッチ位置６０１を検出し、タッチ位置６０１が入力インタフェース１０５を介して情報処理装置１００に通知されると、タッチ操作を認識する処理（図４のフローチャート）が開始される。ここではタッチ位置を検出しているため、ステップＳ２０４にてタッチ操作の認識に必要な情報を保持して処理を終了する。これ以降、タッチ位置６０２が検出されるまで同様の処理が繰り返される。
【００７９】
次に、ユーザがフリックを完了し、指３０１を入力領域３００からリリースされた直後に、近接センサ１０９が指３０１を近接位置６１１として検出する（ステップＳ２０２）。近接位置６１１は、入力インタフェース１０５を介して情報処理装置１００に通知されると、タッチ操作を認識する処理が開始される。ここではリリース直後であるため、ステップＳ２０６にてタッチ操作の認識を行い、フリックと認識される。具体的には、ステップＳ２０４にて保持した情報に基づいて、例えばタッチ位置の移動距離や移動速度等を取得し、それらと予め設定された閾値とを比較し、条件を満たしていればフリックと判定される。本実施形態では、予め登録された辞書情報において、フリック後に入力される入力との組み合わせで、フリック入力とは異なる処理を指示する処理コマンドは存在しないとする。従って、ステップＳ２０６においてフリック操作が認識された場合、次の入力を待機する必要はないため、速やかにフリック操作が出力制御部１２５に通知され、同時に継続判定フラグは「ＯＮ」となる（ステップＳ２０８）。続いて、スタート位置判定処理として、図５（ａ）の処理が実行される。保持されているタッチ位置６０１の位置情報を、次の操作のスタート位置として特定する（ステップＳ５０１）。初めは近接位置が近接位置６１１しか検出されていないため、移動方向は取得されない（ステップＳ４０２）。ただし、近接位置６１１から、特定されたスタート位置に至る方向が取得される（ステップＳ４０３）。ここでは、方向を取得する方法の一例として、アークタンジェントを用いて説明する。これにより、ｘ軸方向に進む場合、すなわち入力領域３００に対して向かって右方向に進む場合が０度となり、時計回りに移動方向がずれると角度が増加する。近接位置６１１（５１４，２３６）からスタート位置であるタッチ位置６０１（４００，３００）までの方向は、アークタンジェントにより求めると約１５０．６９度という角度になる。この角度も保持しておく。今、移動方向は取得されていないので、ステップＳ４０３でＮＯと判定され、処理は終了する。
【００８０】
近接位置６１２が通知されると、ステップＳ４０２にて保持していた近接位置６１１から近接位置６１２に至る移動方向を取得する。ここでもアークタンジェントを用いて取得すると、約１５０．６４度という角度になる。ステップＳ４０３では、ステップＳ４０２にて取得された角度約１５０．６４度と、ステップＳ４０２にて保持していたスタート位置までの角度１５０．６９度との差分が所定の閾値以内であるか否かを判定する。本操作例では所定の閾値を２０度とし、角度の差分の絶対値が２０度以内の場合は同一方向と判定する。ここでは、角度の差分の絶対値が０．０５度であるため、閾値以内となり、同一方向と判定される。これにより、ステップＳ４０４にて操作が継続されることが情報処理装置の各モジュールに通知される。ここでは、具体的に再度フリックが入力される旨を通知してもよい。これにより、次に入力されるタッチ操作がフリックか否かを判定する閾値を緩くすることで、フリックに入り易くするといった使い方ができる。また、本操作例のように、同じ操作が繰り返し入力される場合は、次の操作が入力されるまで応答を待機する必要は無い。従って、フリックの通知はステップＳ２０６にてフリックと認識された時点、あるいはステップＳ２０８で継続判定フラグを「ＯＮ」とする時に通知してよい。
【００８１】
＜特定方法Ｂ＞
次に、図５（ｂ）は、タッチ操作から連続してＧＵＩオブジェクトもしくは物理ボタンを操作する場合を想定したものである。
【００８２】
ステップＳ５１１では、スタート位置特定部１３１が、ＧＵＩオブジェクトが表示されている位置や、物理オブジェクトの設置位置を、次に入力される可能性があるタッチのスタート位置として特定する。物理オブジェクトとは、物理ボタンや物理ダイヤルのことであり、その位置は、タッチパネル及びディスプレイの座標系にマッピングすることで割り当てた座標情報として扱う。
【００８３】
図７は、ＧＵＩオブジェクトや物理オブジェクトに座標を割り当てた状態の一例を示す図である。
【００８４】
ＧＵＩオブジェクト７０１はＯＫボタンであり、（６００，４８０）という座標が割り当てられている。図５（ｂ）のステップＳ５１１では、近接位置がこの座標の方向へ移動しているかどうかを判定することで、ＯＫボタンが操作されるか否かを判定できる。割り当てる座標は、例えばＧＵＩオブジェクトの重心の座標とすればよい。正確に位置を特定したい場合には、ＧＵＩオブジェクトの外接矩形情報を上下左右の座標として保持してもよいし、ＧＵＩオブジェクトが描画されている全座標点を保持してもよい。同様に、ＧＵＩオブジェクト７０２にも（８００，４８０）という座標が割り当てられている。なお、ＧＵＩオブジェクトはボタンに限らず、画面上の画像、テキスト、ラジオボタン、チェックボックス、コンボボックス、スライダー、テキストエリア、テキストフィールド等、画面上に配置されるオブジェクトであれば何でもよい。
【００８５】
物理オブジェクト７０３はＭＥＮＵボタンであり、（１１００，２００）という座標が割り当てられている。物理オブジェクトは画面外に存在するが、仮想的に画面と同様の座標系を割り当てることで方向の取得が可能となる。同様に、物理オブジェクト７０４〜７０５にも座標を割り当てられている。なお、物理オブジェクトはボタンに限らず、ダイヤル、ズームレバー等の指により操作するオブジェクトであれば何でもよい。
【００８６】
なお、物理オブジェクトは画面外に存在するため、座標はマイナス値であってもよい。
【００８７】
例えば、ディスプレイに表示された複数のＧＵＩオブジェクトのうちの一部をそれぞれタップすることで、オブジェクトの選択を行うようなＧＵＩが提供される場合がある。選択操作が終了した場合には、速やかに応答が開始されるのが望ましい。しかし、さらに選択を継続して行きたい場合には、操作の途中で何らかの応答が開始されるのは煩わしい。従って、このような場合には、図５（ｂ）のフローチャートに基づいて、未選択状態にあるＧＵＩオブジェクトが表示された方向をスタート位置として特定し、近接位置から取得される操作オブジェクトの移動方向に基づき、選択操作が継続されるかを判断する。従って、ステップＳ４０４の通知に応じて、応答開始までの待機時間の長さを制御することができる。
【００８８】
また例えば、ディスプレイのサイズが小さい場合等は、ＧＵＩとして表示されたインジケータを、指によるタッチ操作で細かく制御するのは困難である場合がある。そのような場合に、タッチパネル上のＧＵＩで大まかに指示された値を、物理ボタン（例えばカーソルキー）の操作によって微調整するようなユーザインタフェースが提供される場合がある。この時、ユーザがＧＵＩ上でタッチ操作による指示された値で確定させたい場合には、物理キーを操作することなく速やかに設定処理が終了できることが望ましい。一方で、物理キーによる微調整を行いたい場合には、タッチパネルから指を離して物理キーまで指を動かすだけの時間の猶予が必要となる。このような場合には、図５（ｂ）のフローチャートに基づいて特定されたスタート位置と、近接位置から取得される操作オブジェクトの移動方向に基づき、ユーザが物理キーを利用することを事前に判断することができる。従って、ステップＳ４０４の通知に応じて、物理ボタンによる操作を待機するか否かを制御することができる。
【００８９】
＜特定方法Ｃ＞
次に、図５（ｃ）は、手書きジェスチャ、手書き図形、手書き文字入力等で、複数画の入力が必要な操作を想定したものである。
【００９０】
ステップＳ５２１では、スタート位置特定部１３１が、図４のステップＳ２０６にて認識されたタッチ操作の軌跡、すなわち軌跡を構成する一連のタッチ位置を取得する。
【００９１】
ステップＳ５２２では、スタート位置特定部１３１が、ステップＳ５２１にて取得した直前に入力されていた軌跡を用いて、予め記憶されている手書き認識文字の辞書情報から、次画に相当する軌跡のスタート位置を検索する。
【００９２】
ステップＳ５２３では、スタート位置特定部１３１が、ステップＳ５２２にて検索された次画のスタート位置を次に入力される可能性があるタッチのスタート位置として特定する。
【００９３】
タッチパネルに対するタッチ入力を利用した操作には、手書きで文字を入力し、情報処理装置１００に認識させ、活字に置き変えて出力させる手書き文字入力と呼ばれる操作がある。手書き文字入力の場合、次画が入力されるか否かで違う文字が認識される場合がある。例えば、「Ｅ」という文字は「Ｆ」という文字に４画目として横棒が追加されたものである。「Ｅ」を入力したい場合には４画目の横棒が入力されるまで文字認識処理を待機する必要があるが、「Ｆ」を入力したい場合には、速やかに認識結果が出力されることが望ましい。手書き文字入力のような場合、前後関係にあるタッチ入力の終了位置と開始位置が離れている場合がある。このような場合には、図５（ｃ）のフローチャートに基づいて特定されたスタート位置と、近接位置から取得される操作オブジェクトの移動方向に基づき、ユーザが次画を入力することを事前に判断することができる。従って、ステップＳ４０４の通知に応じて、文字認識処理の開始を待機するか否かを制御することができる。
【００９４】
（操作例３）
ここで、具体的に、第２の実施形態の特定方法Ｃによって次のタッチ入力のスタート位置を特定する情報処理装置１００をユーザが操作する操作例３を説明する。図８は、手書き文字入力が行われる際に検出される軌跡の一例を示す図である。
【００９５】
図８（ａ）は、手書き文字を認識するための辞書に、次画のスタート位置を示す情報を付加したものの一例である。図８（ｂ）は、ユーザが実際に入力した「Ａ」の文字の軌跡の一例である。８０１〜８０４は、「Ａ」の文字を入力する際の各軌跡のスタート位置やエンド位置を示すタッチ位置である。
【００９６】
ユーザが「Ａ」の文字の１画目を描くため、タッチ位置８１１（４００，１５０）からタッチ位置８１２（３００，４５０）へ指３０１にて軌跡を描いて入力領域３００から指３０１を離したとする。この時、図５（ｃ）のステップＳ５２１にて入力された軌跡データを取得し、ステップＳ５２２にて図８（ａ）の辞書データとのマッチングが行われる。入力された軌跡を辞書データと比較するため、１００ｄｏｔ×１００ｄｏｔの座標系に正規化すると、左下へ向かって（１００，０）から（０，１００）へ軌跡を描いたことになる。正規化されたことで、図８（ａ）の表と比較すると、文字「Ａ」の画数「１」と合致することが分かる。これにより、正規化された座標系において次画のスタート位置は（１００，０）だと分かる。これを実際の座標系に戻すと、（４００，１５０）となる。具体的に実際の座標系に戻す計算方法の一例を説明する。まず、実際に入力された軌跡と正規化された辞書データの軌跡との比率を求める。ｘ軸方向の比率は入力された軌跡のｘ軸方向の距離（３００−４００＝−１００）を辞書データのｘ軸方向の距離（０−１００＝−１００）で割ることで求まり、結果は１となる。同様に、ｙ軸方向の比率は入力された軌跡のｙ軸方向の距離（４５０−１５０＝３００）を辞書データのｙ軸方向の距離（１００−０＝１００）で割ることで求まり、結果は３となる。これで、正規化された辞書データに対して、実際の軌跡がｘ軸方向とｙ軸方向それぞれでどの程度大きいかが分かる。次に、辞書データのエンド位置から次画のスタート位置までの距離の差分を取得する。結果は、ｘ軸方向が１００−０で１００となり、ｙ軸方向が０−１００で−１００となる。これに、先程取得した比率を掛けると、差分の距離も実際の座標系に変換される。結果は、ｘ軸方向が１００×１で１００となり、ｙ軸方向が−１００×３で−３００となる。これを実際に入力された軌跡のエンド位置に足すことで、実際の座標系における次画の座標を求めることができる。結果は、ｘ座標が３００＋１００で４００となり、ｙ座標は４５０−３００で１５０となる。これで、先に示した座標（４００，１５０）を取得することができる。
【００９７】
また、予め辞書データの軌跡と次画のスタート位置までの距離との比率を求めておくことで計算量を減らすことも可能である。具体的には、ｘ軸方向の比率は辞書軌跡のエンド位置から次画のスタート位置までの距離（１００−０＝１００）を辞書軌跡のスタート位置からエンド位置までの距離（０−１００＝−１００）で割ることで求まり、結果は−１となる。ただし、分母であるスタート位置からエンド位置までの距離が０の場合は、結果も０とする。同様にｙ軸方向の比率は、（０−１００＝−１００）を（１００−０＝１００）で割ることで求まり、結果は−１となる。この比率を実際に入力された軌跡のスタート位置からエンド位置までの距離に掛けて、実際に入力された軌跡のエンド位置の座標に足すことで、実際の座標系での次画のスタート位置が取得できる。実際に入力された軌跡のスタート位置からエンド位置までの距離（３００−４００＝−１００）に比率−１を掛けると１００となり、実際に入力された軌跡のエンド位置の座標３００に足すと、ｘ座標は４００となる。同様にｙ座標は、（４５０−１５０＝３００）に比率−１を掛けて−３００となり、実際に入力された軌跡のエンド位置の座標４５０に足すと１５０となる。この方法でも先に示した座標（４００，１５０）を取得することができる。この比率は、辞書データのみに依存するため、予め辞書データに保持しておくことができる。例えば、図８（ａ）の比率の列に示すように、ｘ軸とｙ軸それぞれの比率を予め保持しておくことで、計算量を削減することができる。ステップＳ５２３では、取得された次画のスタート位置を、次操作のスタート位置と特定する。これにより、図４のステップＳ４０３において近接状態での移動方向と、取得されたスタート位置への方向が概ね一致しているか否かを判定できる。方向が概ね一致している場合、次操作として次画が入力されると判定できる。こうすることで、次画の入力を待ってから文字を認識することができる。例えば、「Ｆ」と「Ｅ」は、「Ｆ」の３画目の後の近接状態での移動方向が「Ｅ」の４画目のスタート位置の方向か否かを判定することで区別できる。近接状態での移動方向が「Ｅ」の４画目のスタート位置の方向でない場合は、その時点で即座に「Ｆ」である旨を通知してよい。
【００９８】
なお、文字を入力するエリアが小さく限られている場合には、おおよその次画のスタート位置を辞書に保持させておいてもよい。また、図４のステップＳ２０６にて「Ａ」の文字の１画目が認識されたとして、この時点で次画のスタート位置を特定してもよい。
【００９９】
＜特定方法Ｄ＞
図５（ｄ）は、異なるタッチ操作を組み合わせて連続入力する場合を想定したものである。
【０１００】
ステップＳ５３１では、スタート位置特定部１３１が、図４のステップＳ２０６にて認識されたタッチ操作の後に入力される可能性がある別の操作のスタート位置を、予め記憶されている辞書情報から検索する。本実施形態では、辞書情報に、直前までタッチ位置検出部１２１に検出されていた一連のタッチ位置が構成する軌跡に対応して保持された、次に入力可能な軌跡の開始位置を検索する。
【０１０１】
ステップＳ５３２では、スタート位置特定部１３１が、ステップＳ５３１にて検索された別の操作のスタート位置を次に入力される可能性があるタッチのスタート位置として特定する。
【０１０２】
例えば、情報処理装置１００のサイズが小さく物理ボタンや多くのＧＵＩオブジェクトを配置できない場合や、表示内容を視認せずに入力可能なタッチ操作環境を提供したい場合には、複数のタッチ操作を組み合わせて多様な処理に対応させることがある。このような場合には、図５（ｄ）のフローチャートに基づいて特定されたスタート位置と、近接位置から取得される操作オブジェクトの移動方向に基づき、ユーザが次に入力するタッチ入力を推定し、入力される可能性の高いコマンドを絞り込むことができる。従って、ステップＳ４０４の通知に応じて、多様な処理にタッチ操作が対応している場合でも、タッチ操作の終了に応じて速やかに応答処理を開始することができる。
【０１０３】
（操作例４）
ここで、具体的に、第２の実施形態の特定方法Ｄによって次のタッチ入力のスタート位置を特定する情報処理装置１００をユーザが操作する操作例４を説明する。図９は、手書きジェスチャ入力が行われる際に検出される軌跡の一例を示す図である。図９（ａ）は、各手書きジェスチャの後に入力される可能性のある別操作のスタート位置を保持したものである。図９（ｂ）は、実際に入力された手書きジェスチャの一例である。
【０１０４】
まず、図９（ｂ）のように、タッチ位置９０１から始まる「上方向に進んでから左方向に進む」のような手書きジェスチャを入力した場合、図５（ｄ）のステップＳ５３１において次に入力される可能性がある別操作のスタート位置を検索する。具体的には、図９（ａ）のデータを検索すると、「上方向に進んでから左方向に進む」の次には３つの別操作が入力される可能性があると分かる。そして、別操作のスタート位置は、（４８０，４４０）もしくは（４８０，１００）のいずれかであることが分かる。ステップＳ５３２では、検索された別操作のスタート位置を次操作のスタート位置として特定する。図９（ｂ）の例では、「上方向に進んでから左方向に進む」の後にタッチ位置９０２（４８０，１００）から「下方向に進んでから右方向に進む」のジェスチャを入力している。この場合、「上方向に進んでから左方向に進む」を入力して指３０１を入力領域３００から離した時に、図４のステップＳ４０３において、近接状態での移動方向が次操作のスタート位置の方向であると判定され、ステップＳ４０４にて操作継続通知が行われる。
【０１０５】
なお、入力される操作は手書きジェスチャに限らず、一般的なタッチ操作でもよい。また、入力領域全域を使わないタッチ操作の場合は次の別操作がどこに入力されるか特定しにくいが、ユーザの癖や利用アプリに応じて連続操作のパターンが決まっているものがあるため、そのパターンを学習し、次操作のスタート位置を管理してもよい。
【０１０６】
また、本実施形態においても、マルチタッチ操作に適用しても良く、複数の操作オブジェクトに対応したそれぞれの近接位置が全て次操作のスタート位置の方向へ進んでいる場合に次操作が継続されると判定すればよい。また、次操作のスタート位置は、全点が同じ方向へ進むような次操作であれば１つで構わないし、ピンチ操作のようにスタート位置が別方向になる場合は、別々のスタート位置を設定しても構わない。
【０１０７】
以上説明したように、本実施形態では、タッチ操作を認識した後、入力対象面から操作オブジェクトを離した近接状態での移動方向が次操作のスタート位置か否かを判定することで、次の操作が継続して入力されるか否かを判定する。近接状態での移動方向が次操作のスタート位置の方向である場合は、次の操作が入力される旨を通知し、次操作の待ち合わせ処理や、次操作を判定され易くする処理、次操作を処理する準備等の処理を実行できる。
【０１０８】
＜変形例＞
変形例では、入力対象面内において、第１の入力とそれに後続する入力とで構成されるタッチ操作が入力され易い領域を限定することで、不要な場合には後続する入力を待たずにタッチ操作の出力を開始するかを判定する処理を省略可能とする例を説明する。なお、変形例は、第１の実施形態および第２の実施形態のいずれとも組み合わせて実行することができる。
【０１０９】
変形例に係る情報処理装置１００のハードウェア構成は、第１の実施形態の図１（ａ）と同様であるため、説明を省略する。変形例に係る情報処理装置１００の機能構成は、第１の実施形態の図１（ｂ）や第２の実施形態の図１（ｃ）に領域記憶部を追加したものである。領域記憶部は、判定部１２４に接続され、判定部１２４は、記憶された領域に基づいて操作の継続判定を行うことができる。
【０１１０】
図１０は、タッチ操作と対応付けた操作領域を設定する方法の一例を示す図である。変形例の情報処理装置１００では、一例として、予め辞書情報に、ダブルタップ操作は表示画像の拡大を指示する操作として登録されているとする。図１０の領域１００１は操作領域であり、本図の例では、ダブルタップが入力される可能性が高い領域として設定されている。ダブルタップによる画像の拡大操作は、画像が画面一杯に表示されている場合には、画面上のどこをダブルタップしてもよいため、ユーザは画面中央をダブルタップすることが多い。従って、図１０の例では画面中央部にタップの操作領域１００１を設けている。ただし、この例は、ユーザが装置自体を指示する手と、タッチ操作を入力する手が異なる場合を想定している。デバイスの種類によっては、片手で装置を支持して同時にタッチ操作も入力されることが自然なものもある。その場合には、持っている手の親指で押し易い位置（画面の端など）等に操作領域を設定しても構わない。
【０１１１】
このように、領域記憶部は、各操作に対応付けて、各操作が入力され易い領域を操作領域として記憶しておく。判定部１２４は、操作領域内で対応付けられた操作が入力された場合には、再度同じ操作が繰り返される可能性があるとして、次の操作を待ち合わせる。一方で、操作領域外で操作が入力された場合、もしくは操作領域内でも対応付けられていない操作が入力された場合には、後続する入力を待たずに出力を開始するかを判断することなく、速やかに検出したタッチ情報に対応するタッチ操作を通知する。図１０の例では、操作領域１００１内で検出されたタッチ位置に基づき、タップ操作が認識された場合には、ダブルタップとして次のタップが入力される可能性が高いため、次の入力を待機する。一方、操作領域１００１外で検出されたタッチ位置に基づき、タップ操作が認識された場合には、ダブルタップである可能性が低いため、速やかにシングルタップ操作が入力されたことを出力制御部１２５に通知する。なお、図１０では、操作領域１００１を矩形としているが、これに限らず丸や三角、画面上のオブジェクトの形状に合わせるなど、領域判定が行えればどのような形状であってもよい。
【０１１２】
また、タッチ操作が通知される、すなわち入力された操作が確定する毎に、操作領域１００１を補正する処理を加えてもよい。図１０（ｂ）、図１０（ｃ）は、実際に確定した操作の位置に応じて、操作領域１００１を補正する方法の一例を示す。この場合には、機能構成として、第１の実施形態の図１（ｂ）や第２の実施形態の図１（ｃ）に領域補正部を追加し、領域記憶部に接続する。領域補正部は、実際に確定した操作の位置と、その時の操作領域１００１の位置とのずれから、操作領域１００１の位置や大きさ、形状等を補正する。図１０（ｂ）は、例えばダブルタップが、設定されていた操作領域１００１よりも実際には狭い領域で入力されていた場合を示している。このため、領域補正部は、記憶されていた操作領域１００１を操作領域１００２まで狭めて領域記憶部に通知し、領域記憶部はタップに対応付けて操作領域１００２を記憶する。この時、操作領域１００１は破棄してもよい。図１０（ｃ）は、例えばダブルタップが、設定されていた操作領域１００１よりも実際には広い領域で入力されていた場合を示している。このため、領域補正部は、記憶されていた操作領域１００１を操作領域１００３まで広げて領域記憶部に通知し、領域記憶部はタップに対応付けて操作領域１００３を記憶する。この時、操作領域１００１は破棄してもよい。なお、領域の補正は、操作が確定した座標の情報が、ある程度の数蓄積されてから行うのが望ましい。
【０１１３】
以上説明したように、本実施形態では、タッチ操作が入力される可能性が高い領域を記憶しておくことで、その領域内では当該タッチ操作が連続して入力される可能性が高いと判定することができる。これにより、領域内では、ユーザの意図通りに、次の操作の入力を待つことができ、領域外では、ユーザの意図通りに即座に入力に対しての処理を実行することができる。
【０１１４】
＜第３の実施形態＞
第３の実施形態では、第１の実施形態及び第２の実施形態のようにタッチ位置と近接位置を異なる検出手段によって別々に検出するのではなく、操作オブジェクトの三次元位置として検出する例を説明する。第３の実施形態は、例えばスクリーンやテーブルトップ等、センサを有しない平面上に投影された表示画像によるＧＵＩに対し、ユーザが行うタッチ操作を三次元位置情報に基づいて認識するような情報処理装置で有効に利用することができる。
【０１１５】
操作オブジェクトの三次元位置を検出する場合にも、入力対象面（投影面や物体の表面等）にタッチすることで行う操作、あるいは略タッチしたと見なせる程度に近づくことで行う操作が、終了されたのか、継続されているのかを、近接状態での移動に基づいて判断する。ただし、三次元位置を検出する場合での近接状態（非接触状態）は、操作オブジェクトが入力対象面に略接触していると判定される場合よりも、操作オブジェクトと入力対象面との間に距離がある状態として定義される。
【０１１６】
図１１（ａ）は、本実施形態における情報処理装置１００のハードウェア構成の一例を示す図である。ただし、図１（ａ）と同じ要素については同符号を付し、その説明を省略する。
【０１１７】
三次元位置センサ１１０１は、操作オブジェクトの三次元空間での位置を検出し、入力インタフェース１０５に通知する。三次元位置センサ１１０１は、距離画像センサやステレオカメラ等を用いる。
【０１１８】
図１１（ｂ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。なお、図１（ｂ）と同じ要素については同符号を付し、その説明を省略する。
【０１１９】
三次元位置検出部１１２１は、入力インタフェース１０５から通知された信号に基づき、ユーザが操作した時と、操作後の三次元位置を検出する。その際、本実施形態では、入力インタフェース１０５が、三次元位置センサ１１０１が検出している三次元位置の情報を一定の間隔で参照し、三次元位置の情報を取得する毎に順次、三次元位置検出部１１２１に信号を通知する。
【０１２０】
第３の実施形態における認識部１１２２は、三次元位置検出部１１２１にて検出された三次元位置に基づいてユーザの空間的な操作やスクリーンや机等に投射された映像をタッチする操作を認識する。判定部１２４は、認識部１１２２にて操作が認識された後、三次元位置検出部１１２１にて検出された三次元位置に基づいて、操作が継続されるか否かを判定する。判定方法は、基本的に第１の実施形態や、第２の実施形態と同様であり、移動距離や移動速度、移動方向等により判定する。
【０１２１】
図１１（ｃ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。本図は、図１（ｃ）のタッチセンサ１０８、近接センサ１０９、タッチ位置検出部１２１、近接位置検出部１２２、認識部１２３の代わりに図１１（ｂ）の三次元位置センサ１１０１、三次元位置検出部１１２１、認識部１１２２に置き換えている。図１（ｃ）及び図１１（ｂ）と同じ要素については同符号を付し、その説明を省略する。
【０１２２】
図１２（ａ）は、操作を認識する処理の流れの一例を示すフローチャートである。なお、図２と同じ処理については同符号を付し、その説明を省略する。
【０１２３】
ステップＳ１２０１は、三次元位置検出部１１２１が三次元位置センサ１１０１から入力インタフェース１０５に通知された三次元位置を検出する。
【０１２４】
ステップＳ１２０２は、認識部１１２２が、ステップＳ１２０１にて三次元位置が検出されたか否かを判定する。三次元位置を検出したと判定された場合には（ステップＳ１２０２でＹＥＳ）、処理はステップＳ１２０３に進む。一方、三次元位置を検出しなかったと判定された場合には（ステップＳ１２０２でＮＯ）、処理はステップＳ２１５に進む。
【０１２５】
ステップＳ１２０３は、認識部１１２２が、ステップＳ１２０１にて検出された三次元位置情報のうち、タッチしたとみなせる位置の情報に基づいてユーザが行ったタッチ操作を認識する。ここで認識する操作は、第１の実施形態および第２の実施形態と同様、予め辞書情報として情報処理装置１００に登録されているタッチ操作に基づいて認識される。
【０１２６】
ステップＳ１２０４は、ステップＳ１２０３にてタッチ操作が認識されたか否かを判定する。操作が認識されたと判定された場合には（ステップＳ１２０４でＹＥＳ）、処理はステップＳ２０８に進む。一方、操作が認識されなかったと判定された場合には（ステップＳ１２０４でＮＯ）、処理はステップＳ２１０に進む。
【０１２７】
タッチ操作が認識された場合はステップＳ２０８に進むことで、継続判定フラグがＯＮとなる。そして、これ以降、第１の実施形態の場合と図２と同様に、近接状態として定義された状態における操作オブジェクトの移動について、検出される一連の三次元位置に基づいて、移動距離を取得する。そして、取得した移動距離が閾値を超えたか否かによって、操作が継続されるか否かを判定する。
【０１２８】
また、第１の実施形態と同様、第３の実施形態においても、移動距離の閾値を小さく設定し、前回の三次元位置から今回の三次元位置までの移動距離が連続して所定の回数以上連続して閾値を超えたか否かによって、操作が継続されるか否かを判定してもよい。また、前回の三次元位置から今回の三次元位置までの移動方向が連続して所定の回数概ね同一方向か否かによって、操作が継続されるか否かを判定してもよい。なお、第１の実施形態と同様、移動距離に替えて移動速度の情報を利用しても構わない。
【０１２９】
図１２（ｂ）は、操作を認識する処理の流れの一例を示すフローチャートである。本図は、図４に対して図１２（ａ）と同様にタッチ位置と近接位置による操作判定部分を、三次元位置に置き換えたものであり、同じ処理については同符号を付し、その説明を省略する。これも図４と同様に、操作後の三次元位置により取得された移動方向が次操作のスタート位置の方向か否かによって、操作が継続されるか否かを判定する。
【０１３０】
以上説明したように、第３の実施形態では、三次元位置を検出することで、ユーザが行ったタッチ操作を認識し、タッチのリリース後に、三次元位置により取得される移動距離、移動速度、移動方向に基づいて、次の操作が継続して入力されるか否かを判定する。これにより、三次元空間上で行われるタッチ操作についても、操作が終了したのか、継続中なのかを速やかに区別して操作に対するフィードバックを出力することができる。
【０１３１】
なお、三次元位置を検出することができる装置においては、操作中の状態と、操作が終了あるいは中断している状態という２段階の状態を定義することで、操作が終了したのか、継続中なのかを速やかに区別する処理を応用することが可能である。例えば、ユーザが手を動かすことによって行うジェスチャ操作について、ある特定の認識領域（ジェスチャ切り出し領域ともいう）内での手の三次元位置を追跡してジェスチャ操作として認識するシステムを用いるとする。この場合であれば、認識領域から出た時点以降での手の移動距離や移動方向に基づいて、ジェスチャ操作が終了されたのか、継続されているのかを区別することが可能となる。このように、操作オブジェクトが、操作中の状態から脱した時点からの三次元位置情報を用いることで、タッチ操作に限らないジェスチャ操作についても操作が終了したのか、継続中なのかを速やかに区別することができる。
【０１３２】
＜その他の実施形態＞
なお、本発明はタッチパネルへのタッチ操作による入力に限られず、ユーザによる第１の入力によって構成される第１の操作と、前記第１の入力とそれに後続するユーザによる第２の入力とによって構成される第２の操作とを認識可能な場合に適用可能である。この場合に、ユーザーによる入力に用いるペンや指などの操作オブジェクトが、第１の入力が検出された直後の移動内容から第２の入力に移行しないと判断した際に、第２の入力の有無に関わらず、速やかに第１の操作に対応する応答を開始する。上記ユーザによる入力とは操作ボタンを押す動作でも良いし、ジェスチャ入力を行うための人間の動作であっても良い。また上記応答は、各操作に対応して装置が実行する各種処理が相当し、例えば、画像を表示するための描画処理であっても良いし、音声出力などであっても良い。
【０１３３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１３４】
１２１  タッチ位置検出部
１２２  近接位置検出部
１２３  認識部
１２４  判定部
１２５  出力制御部
【図１】
2015007946.tif 000003
【図２】
2015007946.tif 000004
【図３】
2015007946.tif 000005
【図４】
2015007946.tif 000006
【図５】
2015007946.tif 000007
【図６】
2015007946.tif 000008
【図７】
2015007946.tif 000009
【図８】
2015007946.tif 000010
【図９】
2015007946.tif 000011
【図１０】
2015007946.tif 000012
【図１１】
2015007946.tif 000013
【図１２】
2015007946.tif 000014