(57)【要約】      （修正有）【課題】同一画面において、入力位置の移動に追従したスクロール操作の入力と、入力位置の移動軌跡の形状を認識する手描き図形の入力の両方を受付可能とする場合、入力がいずれを意図しているかを区別する。【解決手段】入力領域に対して入力される入力位置を取得する取得部１２１と、取得される入力位置の移動に応じて、表示画面に表示される画像の少なくとも一部をスクロール表示させる表示制御部１２６と、取得される一連の入力位置のうち、所定の条件が満たされた後で取得される入力位置を、予め定められた図形を構成する入力位置の候補として特定する特定部１２２と、特定された入力位置の移動軌跡の形状を認識する認識部１２３とを備える。表示制御部１２６は、図形を構成する入力位置の候補と特定された入力位置の移動に応じては、画像をスクロール表示させない。【選択図】図１
2016110518.tif 000002
【特許請求の範囲】
【請求項１】
入力領域に対して入力される入力位置を取得する取得手段と、
前記取得手段によって取得される入力位置の移動に応じて、表示画面に表示される画像の少なくとも一部をスクロール表示させる表示制御手段と、
前記取得手段によって取得される一連の入力位置のうち、所定の条件が満たされた後で取得される入力位置を、予め定められた図形を構成する入力位置の候補として特定する特定手段と、
前記特定手段によって特定された入力位置の移動軌跡の形状を認識する認識手段とを備え、
前記表示制御手段は、前記特定手段によって前記図形を構成する入力位置の候補と特定された入力位置の移動に応じては、前記画像をスクロール表示させないことを特徴とする情報処理装置。
【請求項２】
前記特定手段は、前記取得手段によって取得された入力位置に関する、座標以外の情報によって第１の条件が満たされた後で、前記取得手段によって取得される入力位置を、前記予め定められた図形を構成する入力位置の候補として特定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定手段は、前記取得手段によって取得される入力位置に関する情報によって第１の条件が満たされた後で、前記取得手段によって取得される入力位置のうち、第２の条件を満たす部分は、前記予め定められた図形を構成する入力位置の候補から除外することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第１の条件とは、前記取得手段によって取得される入力位置が、所定の範囲内に所定の時間より長く留まっていることであることを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記認識手段は、前記取得手段によって取得される入力位置に関する情報が、前記入力領域において接触が検知されなくなったことを示す場合、前記第１の条件が満たされた後で、前記接触が検知されていた間に取得された入力位置が構成する軌跡の形状を認識することを特徴とする請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記認識手段は、前記特定手段によって特定された入力位置の移動軌跡の形状と、予め辞書として記憶された、１以上のストロークから構成される１以上の図形の形状との比較に基づいて、前記前記特定手段によって特定された入力位置の移動軌跡の形状を特定することを特徴とする請求項２乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記認識手段は、さらに、前記辞書として記憶された情報に基づいて、前記特定手段によって特定された入力位置の移動軌跡の形状に対応する前記情報処理装置に対する指示を認識することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記特定手段は、前記取得手段によって取得される入力位置が、前記入力領域に対する長押し操作が入力されたことを示す場合、前記長押し操作の後で前記取得手段によって取得される入力位置を、前記予め定められた図形を構成する入力位置の候補として特定することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記特定手段は、前記予め定められた図形を構成する入力位置の候補として特定した入力位置の移動軌跡を構成するストロークのうち、１画目に入力されたストロークの長さに基づいて、当該１画目に入力されたストロークを、前記予め定められた図形を構成する入力位置の候補から除外することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記特定手段は、前記１画目に入力されたストロークが所定の長さよりも短い場合、当該１画目に入力されたストロークを、前記予め定められた図形を構成する入力位置の候補から除外することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記特定手段は、前記予め定められた図形を構成する入力位置の候補として特定した入力位置の移動軌跡を構成するうち、１画目に入力されたストロークが、前記認識手段による認識の結果、前記予め定められた図形を構成しないと判定され、かつ、所定の長さよりも短い場合、当該１画目に入力されたストロークを、前記予め定められた図形を構成する入力位置の候補から除外することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１２】
前記特定手段は、前記予め定められた図形を構成する入力位置の候補として特定した入力位置の移動軌跡を構成するストロークのうち、１画目に入力されたストロークの曲がり方に基づいて、当該１画目に入力されたストロークのうち前記図形の書き出し位置を特定し、前記書き出し位置までに入力された部分を、前記予め定められた図形を構成する入力位置の候補から除外することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１３】
前記表示制御手段は、前記特定手段によって前記図形を構成する入力位置の候補と特定された入力位置を受け付ける間は、前記表示画面に表示させる画像の色、明るさ、濃淡の少なくとも１つを変更することを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
情報処理装置の制御方法であって、
取得手段により、入力領域に対して入力される入力位置を取得する取得工程と、
表示制御手段により、前記取得工程において取得される入力位置の移動に応じて、表示画面に表示される画像の少なくとも一部をスクロール表示させる表示制御工程と、
特定手段により、前記取得工程において取得される一連の入力位置のうち、所定の条件が満たされた後で取得される入力位置を、予め定められた図形を構成する入力位置の候補として特定する特定工程と、
認識手段により、前記特定工程において特定された入力位置の移動軌跡の形状を認識する認識工程とを有し、
前記表示制御工程では、前記特定工程において前記図形を構成する入力位置の候補と特定された入力位置の移動に応じては、前記画像をスクロール表示させないことを特徴とする情報処理装置の制御方法。
【請求項１５】
コンピュータに読み込ませ実行させることによって、前記コンピュータに、請求項１４に記載された情報処理装置の制御方法を実行させるプログラム。
【請求項１６】
請求項１５に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置の入力に基づく操作を認識する技術に関する。
【背景技術】
【０００２】
近年、ユーザの指あるいはスタイラスにより画面がタッチされたことに応答して、タッチされた位置のＸ、Ｙ座標値を入力値として取り込み、この入力値に基づいてユーザによるタッチ操作を認識するタッチ入力機器が普及している。一般的なタッチ操作の１つに、入力位置の移動に追従して画像を移動させるスクロール操作がある。また、タッチ入力機器では、入力位置の移動軌跡の形状が所定の形状と一致する場合に、予め該形状に対応付けられたコマンドの入力として認識する手描き図形の認識機能が搭載されることがある。
【０００３】
同一画面において、入力位置の移動に追従したスクロール操作の入力と、入力位置の移動軌跡の形状を認識する手描き図形の入力の両方を受付可能とする場合、入力位置の移動が、いずれを意図した移動であるかを区別して認識する必要がある。特許文献１では、画面上に２つ領域を設定し、入力位置がどちらの領域に含まれているかに応じて、その入力位置の移動従ったスクロールを実行するか、移動軌跡の形状を認識してジェスチャ操作を実行するかを決定することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１４６５５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の方法では、ユーザは目的とする操作に応じてタッチする位置を制限される。しかしながら表示される画像の内容や画面の大きさによっては、ユーザにとってタッチしやすい場所又はタッチしにくい場所が生じることがあるため、タッチする位置が制限されることは、操作効率の低下につながる場合もある。
【０００６】
本発明は上記課題に鑑みてなされたものであり、入力領域の任意の位置に入力された位置の移動に関して、表示された画像のスクロールには反映させずに、移動軌跡の形状を認識する処理の対象とすべき部分を特定することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は上記課題を解決するため、本発明に係る情報処理装置は、入力領域に対して入力される入力位置を取得する取得手段と、前記取得手段によって取得される入力位置の移動に応じて、表示画面に表示される画像の少なくとも一部をスクロール表示させる表示制御手段と、前記取得手段によって取得される一連の入力位置のうち、所定の条件が満たされた後で取得される入力位置を、予め定められた図形を構成する入力位置の候補として特定する特定手段と、前記特定手段によって特定された入力位置の移動軌跡の形状を認識する認識手段とを備え、前記表示制御手段は、前記特定手段によって前記図形を構成する入力位置の候補と特定された入力位置の移動に応じては、前記画像をスクロール表示させない。
【発明の効果】
【０００８】
本発明によれば、入力領域の任意の位置に入力された位置の移動に関して、表示された画像のスクロールには反映させずに、移動軌跡の形状を認識する処理の対象とすべき部分を特定することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置の外観と構成の一例を示す図
【図２】タッチ操作を認識する処理の流れの一例を示すフローチャート
【図３】スクロール表示を抑制するトリガーとなる入力位置の取得状態を示す図
【図４】一連の入力位置が取得される流れを示すタイミングチャート
【図５】スクロール操作の操作例を示す図
【図６】ジェスチャ操作の操作例を示す図
【図７】ジェスチャ操作で認識する手描き図形の一例を示す図
【図８】タッチ操作を認識する処理の流れの一例を示すフローチャート
【図９】軌跡の形状を認識する処理の流れの一例を示すフローチャート
【図１０】軌跡の形状を認識する処理の流れの一例を示すフローチャート
【図１１】操作例において取得される入力位置が構成する軌跡の一例を示す図
【図１２】操作例において一連の入力位置が取得される流れを示すタイミングチャート
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について、図面を参照しながら説明する。なお、以下で説明する実施形態は、本発明を具体的に実施した場合の一例を示すものであり、これに限るものではない。
【００１１】
＜第１の実施形態＞
図１は、本実施形態に適用可能な情報処理装置の外観とハードウェア構成とソフトウェア構成の一例を示す。
【００１２】
図１（ａ）は、情報処理装置１００の一例である携帯端末を画面の正面及び側面から見た外観を示す図である。図１（ａ）において、筐体１０１は、入力領域１０２の外周を囲み、合成樹脂や金属等で形成される。入力領域１０２は、ユーザがタッチの対象とする対象領域であり、情報処理装置１００に対する操作入力に用いられるタッチ入力を受け付ける。本実施形態では、入力領域１０２は表示部である液晶ディスプレイの表示画面部分にタッチセンサを設置したタッチパネルディスプレイによって構成される。この表示画面は、情報処理装置１００、あるいは情報処理装置１００と接続された他装置を操作するための各種画像を表示するインタフェースである。本実施形態では、入力領域１０２は、４８０［ｄｏｔ］×６４０［ｄｏｔ］の解像度を有し、紙面に向かって左上を原点とする座標平面として位置情報を管理することができるものとする。以降、本実施形態では、図１（ａ）に示す携帯端末を、情報処理装置１００の一例として説明する。
【００１３】
本実施形態の情報処理装置１００では、表示画面上をタッチした状態のまま、指などをスライドするように移動させることで、その移動に合わせて表示されている画像の少なくとも一部をスクロールさせることができる。これはスクロール操作と呼ばれる。スクロール操作では、タッチ位置の移動軌跡の形状に関わらず、移動前後のタッチ位置の座標の変化量に基づく移動量で、操作対象の画像をスライド移動させることが可能となる。移動される操作対象の画像は、表示画面に表示された全体でもよいが、タッチされた画像やタッチされたウィンドウ内のコンテンツなど、表示された画像のうちの限定された一部であってもよい。なお以下では、ユーザが指やスタイラスを移動させることで、タッチ位置が変更されることを「タッチ位置（入力位置）が移動する」と省略して表現する。
【００１４】
本実施形態では、スクロール操作を受付可能であるとともに、予め定められた図形を手描きすることよるコマンド入力が可能となる。これはジェスチャ操作、手描きジェスチャ操作、タッチジェスチャ操作などと呼ばれる。手描き図形によるコマンド入力としては、例えば、１つの画像のみが表示されている画面に対してサンカク（△）の形状の軌跡を描くことで、複数のサムネイル画像の一覧画面への画面遷移を指示するコマンドが入力でききる。また、１つの画像が表示されている画面に対してバツ（×）の形状の軌跡を描くことで、表示されている画像の削除を指示するコマンドが入力できる。さらに、１画像が表示されている画面に対してマル（○）の形状の軌跡を描くことで、表示されている画像がお気に入りであることを示す属性情報を付与することができる。ここで挙げた手描き図形によるコマンドは一例であって、他にも様々な形状の軌跡に対し、様々な指示内容を対応付けておくことができる。本実施形態では、予め定められた図形の形状とコマンドの内容の対応関係は、予め辞書として記憶されているが、ユーザ操作やネットワークを介したダウンロードなどにより、辞書を更新可能であってもよい。なお、以下この明細書では、タッチされたまま指などをスライドすることで入力された複数の入力位置を、入力順につなげたものを「軌跡」と総称する。ただし、バツ（×）のように、入力途中で一旦タッチをやめて２画目以降を描く場合、１画分の軌跡のそれぞれを「ストローク」と称する。つまり、サンカクは１つのストロークで構成される軌跡であり、バツは２つのストロークで構成される軌跡である。
【００１５】
このように、本実施形態の情報処理装置１００では、スクロール操作のように、タッチ位置の移動軌跡の形状を問わない操作と、ジェスチャ操作のように、タッチ位置の移動軌跡の形状が意味をもつ操作の両方を、同一画面で受付可能とする。同一画面で両方の操作を受け付けるとは、画面やモードの切り替えを行うことなく表示され続ける画面に対して、任意に入力される両方の操作を受付可能であることを意味する。ユーザにとっては、例えば図形を描くなど、タッチ位置の移動軌跡の形状が意味をもつ操作を入力している間に、画像がスクロール移動してしまうと、タッチ位置の移動量が解りにくくなったり、操作の対象となる画像が識別しにくくなったりして煩わしい。従って、本実施形態では、検出されたタッチ位置の移動軌跡のうち、形状を認識する処理の対象とするタッチ部分は、タッチ開始直後に長押し操作が入力された後で移動されたタッチ位置が構成する軌跡の部分に限定する。そして、長押し操作が入力された後で入力位置移動されている間（手描き図形を描くことを意図するタッチ位置の移動が行われている間）は、タッチ位置が移動しても、画像がスクロール表示されないように制御を行う。ここで長押し操作とは、所定の時間の間、タッチ位置の移動量が小さく保たれ、静止しているとみなせる状態が継続されることをいう。
【００１６】
なお、手描き図形の入力と区別されるべき、タッチ位置の移動軌跡の形状を問わない操作とは、スクロールに限定されない。例えば、２点のタッチ位置の間の距離を変化させることに応じて画像の拡大、縮小を指示するピンチ操作や、２点のタッチ位置を相対的に回転させることに応じて画像を回転させるローテーション操作なども挙げられる。以下では、タッチ位置の移動軌跡の形状を問わず、タッチ位置の移動軌跡の形状ではなく座標の変化量に基づいて表示されている画像に変化を加える操作の一例としてスクロール操作を受け付ける場合を例に説明する。
【００１７】
図１（ｂ）は、本実施形態に適用可能な情報処理装置１００のハードウェア構成を示すブロック図の一例である。図１（ｂ）において、ＣＰＵ１１１は、Central Processing Unitである。また、ＲＯＭ１１２は、Read Only Memoryであり、ＨＤＤ１１３は、Hard Disk Driveである。本実施形態では、ＣＰＵ１１１が、ＲＯＭ１１２やＨＤＤ１１３に格納されている制御プログラムを読み出して実行し、各デバイスを制御する。この制御プログラムは、後述するフローチャート等に示される各種動作を情報処理装置１００に実行させるための制御プログラムである。ＲＯＭ１１２は、それらの制御プログラムやそのプログラムに利用される各種データを保持する。ＲＡＭ１１４は、Random Access Memoryであり、ＣＰＵ１１１の上記プログラムのワーク領域、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを有する。ＨＤＤ１１３は、上述の各種制御プログラムや各種データを格納する。本実施形態では、操作の対象として画面に表示させる写真等の画像群はＨＤＤ１１３に記憶されている。
【００１８】
タッチパネルディスプレイ１１５は、入力領域１０２におけるユーザの操作情報を取り込むためのタッチセンサ等と表示出力を行う表示画面を兼ねるデバイスである。タッチパネルディスプレイ１１５は、入力領域１０２が人の手指などでタッチされた場合にその接触部分を検出し、入力領域１０２に定義される座標平面上で、タッチされている位置を１つの座標点として特定する。接触部分が面積を有する場合にはその重心あるいは中心の座標を特定する。以下では、当該点を入力位置と言う。なお、入力位置は、タッチパネルに検出されている１以上の接触部分のうち、独立しているとみなされる１以上の接触部分のそれぞれについて検出可能とする。例えば、複数の指でタッチされた場合、独立した接触部分は複数存在するため、複数の入力位置が検出される。すなわち本実施形態のタッチパネルディスプレイ１１５は、いわゆるマルチタッチ検出が可能なものであって、同時刻において指示されている１以上の入力位置を全て検出することができるものである。タッチの検出方式は、抵抗膜方式、静電容量方式、赤外線方式、超音波方式、音響波方式、振動検出方式等の各種タッチパネルが利用できる。他にも、距離画像センサや、ステレオカメラなどの三次元空間での位置を検出できるもので入力対象面に触れたかどうかを検出し、入力対象面上で定義される位置情報を取得してもよい。また、情報処理装置の表面に接触していない、近接した状態でのユーザの指などの位置情報を検出できる検出手段を用いて得られた近接状態での位置（近接位置）情報を、入力位置として扱うことも可能である。なお、本実施形態では、入力位置は１点の座標点として検出するものとするが、これに限らない。面積を持った接触部分全体を入力位置とみなしてもよく、また例えば入力領域１０２をアレイ状のタッチエリアに区分し、いずれのエリアにおいてタッチが検出されているかを示すエリアの識別情報を、入力位置として扱うこともできる。
【００１９】
入出力Ｉ／Ｆ１１６はネットワーク等を介して接続される外部装置から入力情報を得たり、各種情報を出力したりするためのインタフェースである。バス１１７は、ＣＰＵ１１１の制御の対象とする構成要素を指示するアドレス信号、各構成要素を制御するためのコントロール信号、各構成機器相互間でやりとりされるデータの転送を行う。なお、上述した制御プログラムは、ＲＯＭ１１２又はＨＤＤ１１３に予め記憶されていてもよいし、必要に応じてネットワークを介して外部装置などから受理し、ＲＯＭ１１２又はＨＤＤ１１３に記憶しても良い。
【００２０】
図１（ｃ）は、情報処理装置１００のソフトウェアの構成を示すブロック図の一例である。これらの各機能部は、ＣＰＵ１１１が、ＲＯＭ１１２に格納されたプログラムをＲＡＭ１１４に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、ＣＰＵ１１１を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００２１】
取得部１２１は、タッチパネルディスプレイ１１５のタッチセンサから通知される信号に基づき、入力領域１０２上で、ユーザの指やスタイラスによってタッチされている入力位置に関する情報を取得する。ただし、ユーザの指やスタイラス等が、必ずしも入力領域と接触している状態にはなく、近接した状態で指し示される位置（近接位置）の情報を取得する場合も、入力位置の取得に含む。なお、本実施形態で用いるタッチセンサは、複数の入力位置が同時にタッチされている場合（いわゆるマルチタッチ状態）でも、１点ずつ順に情報を通知してくるものとする。そして、通知された入力位置に関する情報を、ＲＡＭ１１４に保持する。入力位置に関する情報とは、例えば入力領域１０２内での入力位置を示す座標情報、入力位置が検出された検出時刻、検出された順番を示すＩＤ、タッチイベントが含まれる。
【００２２】
タッチイベントとは、通知されるタッチ情報の種別を表す情報である。本実施形態では、操作オブジェクトが新たに入力領域に接触したこと、あるいは接触が継続されていることに応じたタッチ情報の通知時は「ＴＯＵＣＨ」というイベントが通知される。また、操作オブジェクトがタッチパネルからリリースされたことに応じたタッチ情報の通知時には「ＲＥＬＥＡＳＥ」というタッチイベントが通知される。入力位置のリリースとは、例えばタッチパネルディスプレイ１１５からユーザが操作している指が離れて、この指による接触が検出されなくなったことである。つまり「ＲＥＬＥＡＳＥ」は、接触が検知されなくなったことを示す情報である。タッチイベントが「ＴＯＵＣＨ」であった場合には、通知される情報には操作オブジェクトによってタッチされている入力位置を示す座標情報が含まれる。「ＲＥＬＥＡＳＥ」であった場合には、操作オブジェクトは入力領域に接触していないため、接触された位置座標の情報は取得されない。ただし本実施形態では、「ＲＥＬＥＡＳＥ」イベントが通知された時、または直後に検出された近接位置を、リリース位置として取得する。本実施形態において、入力位置を識別するためのＩＤを含む。近接位置を検出しないタッチパネルを用いる場合等は、「ＲＥＬＥＡＳＥ」イベントが通知された直前に検出されたタッチ位置の座標を、リリース位置として取得すればよい。センサの座標検出周期は、人の指の動きに比較して十分に短いため、実際にリリースするよりも先に検出された直前のタッチ位置であっても、実際のリリース位置との誤差は微小であるとみなせる。ＩＤには、入力位置が検出された順番を関連させた識別子を用いることで、検出される入力位置の数が複数である場合に管理がしやすくなる。また、本実施形態では、取得部１２１は、ＩＤを基に入力位置の最新の情報を検出し、同じＩＤの入力位置が以前に検出された位置と異なる位置で検出されたことに基づき、入力位置が移動したことを検出することができる。ただし、同じＩＤの入力位置が以前に検出された位置と異なる位置で検出されたことに応じたタッチ情報の通知時に「ＭＯＶＥ」というタッチイベントが通知される検出システムに適用しても構わない。
【００２３】
特定部１２２は、取得部１２１によって取得された入力位置に関する情報に基づいて、取得された入力位置の移動軌跡のうち、手描きされた図形を構成する入力位置の候補を特定する。つまり、取得された入力位置の移動軌跡のうち、コマンド入力として解釈するために、移動軌跡の形状を認識する処理の対象とすべき部分を特定する。本実施形態では、取得部１２１によって取得されＲＡＭ１１４に保持された情報に基づいて、長押し操作が入力されたことを判定し、長押し操作が入力された後で入力される入力位置を、移動軌跡の形状を認識処理の対象とすべき入力位置として特定する。すなわち、長押し操作が入力された後で入力される入力位置は、スクロール操作を意図したものではなく、図形を構成する入力位置の候補であると特定する。
【００２４】
認識部１２３は、特定部１２２によって特定された入力位置の情報と、辞書１２４として予め記憶されている情報とに基づいて、入力された手描き図形の形状を特定し、特定された形状に予め対応付けられたコマンドの入力として認識する。ただし、特定部１２２によって、図形を構成する入力位置の候補と特定された場合でも、必ずしも辞書１２４の情報と一致せず、形状認識できないという認識結果が得られる場合もある。本実施形態では、辞書１２４は、サンカクやバツやマルを形成する形状の情報と、情報処理装置１００に指示可能なコマンドとが対応付けられた情報のであって、予めＨＤＤ１１３に記憶され、ＣＰＵ１１１によってＲＡＭ１１４に読み出されて参照される。
【００２５】
スクロール制御部１２５は、取得部１２１によって取得されている入力位置が、手描き図形としての形状認識の対象となるか否かに応じて、入力位置の移動に追従したスクロール表示を抑制するか否かを制御する。本実施形態では、特定部１２２の処理によって、長押し操作が入力されたと判定された場合にはスクロール表示を抑制し、長押し操作が入力されていない間や、手描き図形の認識が完了した後にはその抑制を解除する。スクロール表示が抑制されていないときは、取得部１２１によって取得された入力位置の座標の変化量に基づいて、スクロール操作の対象となる画像の移動量を特定し、表示制御部１２６に通知する。
【００２６】
表示制御部１２６は、ユーザ操作に応じて実行された各機能部の処理の結果を反映した描画データを生成し、タッチパネルディスプレイ１１５に出力することで、表示画面に表示する内容を制御する。例えば、認識部１２３によって認識された手描き図形の形状に対応するコマンドに対する情報処理装置１００の応答結果を表示する描画データを生成する。あるいは、スクロール制御部１２５からの通知に従って表示される対象画像のスクロール表示を行う。受付部１２７は、表示画面に表示されたＧＵＩ画面に対するタッチ操作を受け付ける。ＧＵＩは、Graphical User Interfaceである。ＧＵＩ画面とは、タッチすることによって対応するコマンドの発行を指示することが可能となるアイコンなどの表示アイテムを含んで構成される画像である。受付部１２７は、取得部１２１が取得した入力位置の座標と、表示アイテムの画面上での位置情報とに基づいて、タッチ操作によって指示されたコマンドを特定し、応答に関わる各機能部に通知する。
【００２７】
次に、図２のフローチャートに従い、本実施形態において、タッチ操作を認識する処理の流れを説明する。なお、本実施形態では、情報処理装置１００の電源が入れられたことに応じて以下で説明する一連の処理が開始され、情報処理装置１００の起動中は所定の周期で、その処理が繰り返される。ただし、一連の処理が開始されるきっかけはこれに限らず、装置のロックが解除されたり、特定のアプリケーションが起動されたり、あるいは表示画面で所定の画像の描画が完了したことに応じてタッチ入力を認識する処理が開始されても構わない。
【００２８】
ステップＳ２０１では、取得部１２１が、タッチパネルディスプレイ１１５から通知された信号に基づき、入力領域１０２上で指示された入力位置に関する情報を取得する。取得部１２１は、タッチセンサから得られる情報を基に、入力位置の座標、検出された時刻等に関する情報を取得し、ＲＡＭ１１４に保持する。
【００２９】
次に、ステップＳ２０２では、特定部１２２がＲＡＭ１１４に保持された入力位置に関する情報に基づいて、長押し操作が検出されたかを判定する。本実施形態では、タッチ開始直後に長押し操作が入力されたことが、最新の入力位置（最後に取得された入力位置）に基づいて判定可能かを判定する。「長押し」とはある程度の期間、入力状態が継続されることを示す名称であり、長押し操作において入力位置に押圧力が加わっているかは問わない。一般に「長押し操作が入力されたか」の判定条件は、入力位置が所定の時間以上、所定の範囲内にとどまっていることとする。所定の範囲とは例えば、最初にタッチされた入力位置の座標を中心とした半径ｄ１［ｄｏｔ］の円内である。
【００３０】
ここで、長押し操作の判定方法を、図３（ａ）と図４（ａ）を用いて説明する。図３（ａ）は長押し操作中に取得される一連の入力位置の座標を示し、図４（ａ）は長押し操作中に入力位置が取得されるタイミングを示すタイミングチャートである。図３（ａ）では、ｐ１が、タッチ開始時に最初にタッチされた入力位置であり、ｐ１を中心とする半径ｄ１の円（破線で示す円）の内部が所定の範囲内となる。今、長押し操作を定義する入力の継続時間を、Ｔ［ｍｓｅｃ］とする。ｔ２−ｔ１＜Ｔ＜ｔ３−ｔ１であるとすると、図３（ａ）の例の場合、時刻ｔ３に入力位置ｐ３が取得された時点で、長押し操作が検出されたと判定される。なお、所定の範囲の定義の方法は、半径を指定した円の範囲に限らず、例えば、Ｘ座標とＹ座標のそれぞれの変化量がｄ２［ｄｏｔ］以内に収まる矩形の範囲とすることもできる。
【００３１】
タッチ開始から所定時間が経過するより先に入力位置が移動した場合、長押し操作はなされていないと判定される。本実施形態では、このような場合は、スクロールのように、入力位置の移動軌跡の形状を問わないタッチ操作のために入力位置が移動された可能性が高いとみなす。また本実施形態では、タッチ開始直後に長押し操作が入力されたと少なくとも１回は判定がなされた後で、リリースされずに入力が続いている場合も、最新の座標がその直前入力位置の座標から移動していれば、ステップＳ２０２の判定結果はＮＯとなる。タッチ開始直後に長押し操作が入力されたことは、最新の入力位置が取得される以前に既に判定可能となったからである。本実施形態では、タッチ開始直後に長押し操作が入力された後で、入力位置がリリースされずに検出され続けている状態での移動は、手描き図形を入力するための移動である可能性が高いとみなす。特定部１２２は、手描き図形を構成する入力位置の候補である入力位置を、形状認識処理の対象として特定し、ＲＡＭ１１４に情報を蓄積する。
【００３２】
タッチ開始直後に長押し操作が入力されたと判定された場合（ステップＳ２０２でＹＥＳ）に、ステップＳ２０３に進む。一方、タッチ開始直後に長押し操作が入力されたと判定されなかった場合（ステップＳ２０２でＮＯ）は、ステップＳ２０５に進む。
【００３３】
ステップＳ２０３では、スクロール制御部１２５が、入力位置の移動に追従して画像をスクロールする処理の実行を抑制する。スクロール制御部１２５は、スクロール表示の抑制中は、表示制御部１２６に対して、画像のスライド移動を指示する信号の通知を行わず、手描き入力画面を表示することを指示する通知を行う。
【００３４】
ステップＳ２０４では、表示制御部１２６が、タッチパネルディスプレイ１１５に、手描き入力画面を表示させるための描画データを生成し、出力する。本実施形態では、手描き図形の入力が可能な状態であることをユーザに示すため、手描き入力画面として、表示画面に灰色の領域を元の表示内容に重ねて表示する。これにより、ユーザは、情報処理装置１００が手描き図形を受け付ける手描き入力モードに移行したことを認識可能となる。手描き入力画面の描画が完了したら、一連の処理は終了する。そして、情報処理装置１００が起動中はステップＳ２０１から再び処理が繰り返される。なお、ステップＳ２０４で表示される灰色の領域は、灰色ベースの透過色の矩形領域で、表示画面内で灰色の透過物体が前面に表示される領域ともいえる。その大きさは表示画面の最大サイズに一致するものとする。つまり、ユーザには、画面が一様に暗くなったように見える。
【００３５】
ステップＳ２０５では、特定部１２２が、取得部１２１によって取得された入力位置の情報に基づいて、タッチがリリースされたかの判定を行う。具体的には、最新の入力位置に関する情報として取得されたタッチイベントが「ＲＥＬＥＡＳＥ」であった場合に、入力位置がリリースされたと判定される。手描き入力のために入力位置がリリースされたと判定された場合（ステップＳ２０５でＹＥＳ）には、ステップＳ２０５に進む。一方、リリースされたと判定されなかった場合（ステップＳ２０５でＮＯ）には、ステップＳ２１９に進む。
【００３６】
次に、ステップＳ２０６では、認識部１２３が、特定部１２２によって形状認識処理の対象として特定されＲＡＭ１１４に蓄積された入力位置に関する情報に基づいて、入力位置を入力順につないだ軌跡の形状認識を行う。本実施形態では、サンカクやバツやマル等、情報処理装置１００に指示可能なコマンドに対応している軌跡の形状情報が、予め辞書１２４に記憶されている。認識部１２３は、入力位置を繋いだ軌跡が、辞書１２４に記憶されているうちどの形状と一致するとみなされるか否かを認識し、一致するとみなされる形状を特定する。具体的な認識処理の内容は、図５に示す具体例を参照して後述する。ステップＳ２０７では、認識部１２３が、ステップＳ２０６で実行した認識処理によって、辞書１２４に予め記憶されていた情報の中から、入力された軌跡に対応する形状が特定されたかを判定する。すなわち、辞書１２４として記憶された情報の中に、入力された軌跡に対応するコマンドがあるか否かを判定する。入力された軌跡に対応するコマンドがあると判定された場合（ステップＳ２０７でＹＥＳ）には、ステップＳ２０８に進む。一方、入力された軌跡に対応するコマンドはないと判定された場合（ステップＳ２０７でＮＯ）には、ステップＳ２１４に進む。
【００３７】
ステップＳ２０８では、認識部１２３が、入力された軌跡に対応するコマンドの通知に応じて、表示画面に表示されるＧＵＩ画面があるかを判定する。本実施形態では、表示されている画像の削除コマンドに対応するバツの形状のジェスチャが入力された場合、それに応じて画像の削除を実行するかを確認するためのＧＵＩ画面が表示される。例えば、「Ｙｅｓ」または「Ｎｏ」のボタンへのタッチを促すような画面が表示される。それに対し、複数のサムネイル画像の一覧画面への画面遷移を指示するサンカクの形状のジェスチャが入力された場合は、確認目的などのＧＵＩ画面は表示されずに、即時コマンドが実行される。
【００３８】
コマンドに応じて表示されるＧＵＩ画面がある場合、辞書１２４に予めその対応情報が記憶されている。認識部１２３は、それを参照して判定を行う。コマンドに応じて表示されるＧＵＩ画面があると判定される場合（ステップＳ２０８でＹＥＳ）には、ステップＳ２０９に進む。一方、コマンドに応じて表示されるＧＵＩ画面がないと判定される場合（ステップＳ２０８でＮＯ）には、ステップＳ２１３に進む。
【００３９】
ステップＳ２０９では、表示制御部１２６が、認識部１２３から通知される指示に応じて、入力された手描き図形に応じたＧＵＩ画面を表示する。このとき、ステップＳ２０４で表示した表示画面に表示した灰色領域を削除してもよい。例えば、バツの場合、画像削除を行うかの確認画面がポップアップした画像を生成し、タッチパネルディスプレイ１１５に出力する。
【００４０】
次に、ステップＳ２１０では、受付部１２７が、ステップＳ２０９で表示されたＧＵＩ画面に対するユーザの操作を受け付ける。例えば、画像の削除を実行するかの確認画面が表示された場合、ユーザは、削除を実行したい場合は「Ｙｅｓ」のボタンをタッチし、削除を実行したくない場合は「Ｎｏ」のボタンをタッチする。受付部１２７は、入力位置の座標に基づいて、いずれのボタンがタッチされたかを特定する。
【００４１】
次に、ステップＳ２１１では、受付部１２７が、ステップＳ２１０で受け付けた操作を表示制御部などＣＰＵ１１１の各機能部に通知し、各機能部が、ユーザ操作への応答処理を実行するする。例えば、画像削除を行うかの確認画面で「Ｙｅｓ」のボタンがタッチされた場合は、ＣＰＵ１１１は画面に表示されている画像を、ＨＤＤ１１３から削除する。一方、「Ｎｏ」のボタンがタッチされた場合は、画像は削除されない。
【００４２】
次に、ステップＳ２１２では、スクロール制御部１２５が、スクロール表示の抑制を解除する。スクロール制御部１２５は、ステップＳ２１２の処理の後で検出される入力位置が長押しされずに移動した場合、その座標の変化量に基づいて、スクロール操作の対象画像の移動量を決定し、表示制御部１２６に通知する。なおステップＳ２１２の処理時点で、ステップＳ２０４で表示した表示画面に表示した灰色領域が表示され続けていれば、表示制御部１２６によって削除する。そして、情報処理装置１００が起動中はステップＳ２０１から再び処理が繰り返される。
【００４３】
一方、ステップＳ２０８においてＮＯと判定され、ステップＳ２１３に進んだ場合、認識部１２３は、ステップＳ２０６で認識した手書き図形の形状に対応付けられた指示コマンドが入力されたと認識する。そして、認識部１２３から入力されたコマンドの通知を受けたＣＰＵ１１１の各種機能部によって、入力された軌跡に対応する操作コマンドへの応答処理が実行される。例えば、サンカクの軌跡が入力された場合、表示制御部１２６が、複数のサムネイル画像の一覧画面を表示させるための描画データを生成し、タッチパネルディスプレイ１１５に出力する。
【００４４】
また、ステップＳ２０７でＮＯと判定され、ステップＳ２１４に進んだ場合、特定部１２２が、形状認識処理の対象として特定した入力位置の軌跡を構成するストローク数が、予め辞書１２４に記憶されているストローク数の中での最大数であるか否か判定する。ストロークは、最初に「ＴＯＵＣＨ」イベントとともに通知された入力位置から、「ＲＥＬＥＡＳＥ」イベントが通知されるまでの一連の入力位置で構成される。つまり、「ＲＥＬＥＡＳＥ」イベントの通知を受ける度に入力されたストロークの数はカウントアップされる。サンカクのストローク数は「１」で、バツのストローク数は「２」である。例えば、この２つの図形が辞書１２４に記憶されていた場合、最大ストローク数は「２」となる。入力されたストローク数が最大ストローク数であると判定された場合（ステップＳ２１４でＹＥＳ）には、ステップＳ２１２に進む。一方、入力ストローク数が最大ストローク数ではないと判定された場合（ステップＳ２１４でＮＯ）には、ステップＳ２１５に進む。
【００４５】
ステップＳ２１５では、特定部１２２が、入力待ちタイマーを起動する。入力待ちタイマーとは、入力位置がリリースされてから（取得部１２１が直前に「ＲＥＬＥＡＳＥ」イベントを取得してから）の経過時間が、所定時間の長さに至るまでを計測する処理である。入力待ちタイマーの処理は、ユーザが２つ以上のストロークから構成される形状の手書き図形を描こうとしている可能性を考慮するために実行される。つまり、１画目のストロークを描き終わった後、続くストロークが描き込まれる可能性がある期間の間は、手描き図形によるコマンドの入力がなされたかの判断を保留する。タイマーで計測する所定時間とは、入力位置がリリースされてから次の入力位置の入力を待つ時間である。その長さは、ユーザがタッチ点をリリースした後、連続して次のタッチ点を入力できることと、リリース後の次の処理の待ち時間を考慮して、適当な値が予め設定される。例えば１秒とする。
【００４６】
ステップＳ２１６では、取得部１２１が、タッチセンサから新たな入力位置の情報が通知されたかを判定する。具体的には、「ＴＯＵＣＨ」イベントとともに新たな入力位置の座標情報が得られたかを判定する。タッチセンサから新たな入力位置の情報が通知されたと判定された場合（ステップＳ２１６でＹＥＳ）、ステップＳ２１８で特定部１２２が入力待ちタイマーを停止し、ステップＳ２０１に戻って、以降の処理が続く。一方、タッチセンサから新たな入力位置の情報が通知されない場合（ステップＳ２１６でＮＯ）、ステップＳ２１７に進む。
【００４７】
ステップＳ２１７では、入力待ちタイマーが満了したかを判定する。すなわち、リリース後に、続くストロークが描き込まれる可能性がある時間が経過したかが判定される。入力待ちタイマーが満了したと判定された場合（ステップＳ２１７でＹＥＳ）にはステップＳ２１２に進む。この場合、次のストロークが入力される可能性は低いと考えられるため、手描き図形の入力はキャンセルされたとみなされ、ステップＳ２１２においてスクロール表示の抑制を解除する。一方、入力待ちタイマーが満了していないと判定された場合（ステップＳ２１７でＮＯ）には、ステップＳ２１６に戻る。
【００４８】
ところで、ステップＳ２０２にて長押し操作が検出されず、かつ、ステップＳ２０５の判断で入力位置がリリースされていない間は、ステップＳ２１９において、表示制御部１２６が、入力位置の座標変化に応じたスクロール表示を実行する。本実施形態では、スクロール制御部１２５が、入力位置の座標の変化量が所定の距離よりも大きい場合に、入力位置が移動されたとみなし、当該移動量に合わせて表示している画像をスライド移動させる移動量を表示制御部１２６に通知する。所定の距離は、例えばｄ３［ｄｏｔ］とする。
【００４９】
ステップＳ２１９において表示制御部１２６は、画像が移動した状態で表示される画像の描画用データを生成し、タッチパネルディスプレイ１１５に出力して、処理を終了する。ただし、表示制御部１２６は、スクロール制御部１２５によってスクロール表示が抑制されている間は、画像の移動量の指示を受信しないため、タッチパネルディスプレイ１１５への描画データの出力を行わずに処理を終了する。このように、ステップＳ２０３でスクロール表示が抑制された状態にあれば、例え入力位置が移動されていても、該移動はスクロール操作としては無効となり、表示画面で画像の移動は行われない。スクロール表示が抑制されていて、かつ、入力位置がリリースされずに移動している場合、ステップＳ２０１・ステップＳ２０５・ステップＳ２１９の処理が繰り返され、取得された入力位置に関する情報はＲＡＭ１１４に蓄積される。そして、入力位置がリリースされたことに応じて、ステップＳ２０５からステップＳ２０６に処理が進み、ＲＡＭ１１４に蓄積されている入力位置の軌跡をもとに、形状の認識処理が実行される。
【００５０】
以上が、第１の実施形態において、タッチされた入力位置の移動が、スクロール操作を意図したものか、ジェスチャ操作を意図したものか区別して認識する処理の一例である。本実施形態では、取得される入力位置の情報に基づいて、長押し操作を検出したことに応じて、スクロール表示を抑制し、その後で入力される一連の入力位置を、ジェスチャ操作を意図して入力された手書き図形の認識処理の対象と特定する。
【００５１】
＜第１の実施形態の操作例＞
第１の実施形態による情報処理装置１００に対して、ユーザがスクロール操作を入力する場合の操作例を、図５を参照して説明する。図５（ａ）は、情報処理装置１００の表示画面に、画像５０１が表示されている状態を示す。ユーザが指５００によるタッチを開始したことで、入力位置５０２が取得される。次に、図５（ｂ）では、指５００が左下（Ｘ座標、Ｙ座標ともに小さくなる方向）に移動され、入力位置５０３が検出された状態を示す。ただし、図５（ａ）の状態から図５（ｂ）の状態に移行する間に、長押し操作はなされていない（ステップＳ２０２でＮＯ）。指５００はリリースされていない（ステップＳ２０３でＮＯ）ので、情報処理装置１００は、取得されたＩＤに基づいて、同一の入力位置が、入力位置５０２の座標から入力位置５０３の座標に移動したとみなす。本実施形態によれば、タッチ開始直後に長押し操作が入力されない場合、入力位置の移動は、スクロール表示に反映される（ステップＳ２１９）。従って図５（ｂ）では、画像５０１が、入力位置の移動に追従して左方向にスクロールされ、右側から新たに画像５０４が出現している。
【００５２】
なお、図５（ｂ）では、入力位置がＸ軸方向にも移動したとしても、画像５０１のスクロール方向はＹ軸方向に限定される例を示した。ただし、入力位置の移動に追従して二次元のスクロール表示がなされてもよい。
【００５３】
次に、第１の実施形態による情報処理装置１００に対して、ユーザが手書き図形を描くことによるジェスチャ操作を入力する場合の操作例を、図６及び図７を参照して説明する。図６（ａ）は、図５（ａ）と同一の状態を示すため、共通する要素には同一の番号を付している。図５（ｂ）は、指５００が、入力位置５０２に対して長押し操作を行った場合（ステップＳ２０２でＹＥＳ）の、情報処理装置１００の変化を示す。図６（ｂ）では、情報処理装置１００が長押し操作を認識したことに応じて、入力位置の移動による画面のスクロール表示が抑制され（ステップＳ２０３）、表示画面には灰色領域が表示される（ステップＳ２０４）。ユーザは、画面が灰色になったことを視認することで、手描き図形の入力が可能になったことを認識しやすくなる。このとき、灰色領域の透過度を調節することで、ユーザは、ジェスチャ操作の対象となる画像を、十分に認識することができる。この時、情報処理装置１００では、灰色領域を表示する前に表示されていた表示画面の描画データは保持しておき、ジェスチャ入力がキャンセルされた場合には速やかに元の表示状態に戻す処理を行う。
【００５４】
図６（ｃ）は、ユーザの指５００が移動し、入力位置５０３が取得された状態を示す。ここで入力位置５０３は、図５（ｂ）に示した座標と同一であるとする。しかし、図５（ｂ）では、入力位置の移動に追従して画像５０１がスクロール表示されたのに対し、図６（ｃ）では、スクロールが抑制されているので、画像５０１は移動されない。なお、ここでは、移動された入力位置の軌跡を示す線を表示するなどの処理を加えてもよい。その場合、ユーザは情報処理装置１００に認識されている軌跡の形状を把握しながら、ジェスチャ操作の入力を行うことができる。
【００５５】
ここで、図７を参照して、ユーザがタッチ状態で手書き図形を描いてから指を離した（リリースした）後で、ステップＳ２０６で実行される軌跡の形状の認識処理について具体例を説明する。図７（ａ）及び図７（ｄ）は、それぞれ、長押し操作の後に情報処理装置１００で取得される一連の入力位置の軌跡を示す。タッチが開始された後、長押し操作中に取得された入力位置は除外して、長押し操作の後で取得された入力位置の移動軌跡が示されている。図７（ａ）はサンカク、図７（ｄ）はバツの形状の手書き図形が入力された場合に対応する。それぞれ白い丸で示す点は、リリースが検出された入力位置であり、１つのストロークの中で最後に取得された入力位置を意味する。
【００５６】
図７（ａ）は、ユーザがサンカクの手書き図形を入力した状態を示す。取得された一連の入力位置は、ｐ１からｐ７の７点である。ｐ１が、タッチが開始された後、長押し操作中に取得された入力位置は除外して、長押し操作の後で取得された入力位置となり、入力された順に入力位置の情報が追加され、軌跡を構成する。なお、入力位置の検出周期やディスプレイの大きさによっては、７点より多くの入力位置が取得され、それらによって軌跡が描かれる場合もある。その場合にも本実施形態では、入力位置のリリース後に７点の入力位置を特定してストロークを７つに分割する。本実施形態では、認識処理に用いる軌跡の分割数は、辞書１２４に登録されたストロークの形状を構成している座標点の数に一致させるものとする。つまり、本実施形態の辞書１２４には、７つの座標点によって構成されるモデルが、コマンドに対応する手描き図形の形状として登録されているものとする。ここで、図７（ｂ）・（ｃ）は、サンカクの形状情報として辞書１２４に登録されているモデルの例を示し、図７（ｅ）・（ｆ）は、バツの形状情報として辞書１２４に登録されているモデルの例を示す。
【００５７】
ステップＳ２０６では、図７（ａ）・（ｄ）の示すような入力と、図７（ｂ）・（ｃ）・（ｅ）・（ｆ）に示すように辞書１２４情報に基づいて、入力位置の移動軌跡の形状を認識する処理が行われる。具体的には、ユーザにより入力された入力位置の移動軌跡と、予め登録されているモデルの形状を比較し、形状が一致するとみなされるものを特定する。辞書１２４に登録されている軌跡の情報は、入力順が定められた複数の座標で構成される。図７（ｂ）・（ｃ）のサンカクは、１つのストロークで構成され、図７（ｅ）・（ｆ）のバツは２つのストロークで構成される。同じ形状の図形であっても、入力順が異なる場合に対応する複数のモデルを辞書１２４に記憶しておくことで、ユーザが異なる書き順でストロークを描いた場合でも、同一の形状であると認識することができる。図７（ｂ）・（ｃ）は書き順が異なるサンカクの軌跡のモデル、図７（ｅ）・（ｆ）は書き順が異なるバツの軌跡のモデルを示す。軌跡の形状比較の計算方法としては、まず、入力された手書き図形を構成する入力位置の座標と、辞書１２４に登録された図形を構成する座標のうち、入力順が一致する点同士の間の距離を計算する。入力の開始点からリリース点までの全ての点について距離の計算を行い、計算結果として得られる距離を積算した値を、入力された軌跡と辞書１２４情報との形状の差異の大きさを示す値として用いる。例えば、図７（ａ）のｐ１と図７（ｂ）のＰ１の距離を計算し、同様の距離計算を順に７つの座標について実行し、計算結果の合計を形状の差異の大きさとする。よって、得られた値が小さいほど形状が似ていることになる。本実施形態では、この積算値が、予め設定された閾値以下の場合、ユーザが入力した手書き図形の形状と、計算対象となったモデルの形状が一致するとみなされる。図７（ａ）の入力に対しては、図７（ｂ）のサンカクの形状が、入力された手書き図形の認識結果として特定される。更に辞書１２４には、サンカクの手書き図形に対して、複数のサムネイル画像の一覧画面への画面遷移を指示するコマンドが対応づけられている。よって認識処理後、画面遷移が実行される（ステップＳ２１３）。それとともに、表示されている灰色領域を消し、スクロール表示の抑制を解除される（ステップＳ２１２）。
【００５８】
図７（ｄ）は、ユーザが、手書き図形としてバツの形状を構成する２つのストロークを入力した状態を示す。バツの一画目のストロークを構成する入力位置がｐ１からｐ３、２画目のストロークを構成する入力位置がｐ４からｐ６となる。ｐ３で一度入力位置がリリースされた後で、ｐ４からｐ６が入力され、再びリリースされる。リリースが検出される度に、ステップＳ２０６の認識処理は実行される。本実施形態では、辞書１２４の中に、ｐ１からｐ３までの直線形状に一致するモデルは登録されていない。従って、ｐ３のリリース点が検出された時は入力されたストロークに対応するコマンドはない（ステップＳ２０７でＮＯ）。さらに、入力されたストローク数が辞書１２４の最大ストローク数の「２」ではないので（ステップＳ２１４でＮＯ）、リリース後の経過時間の長さがタイマー処理で判断される。１秒以内に入力位置ｐ４が検出された場合（ステップＳ２１６でＹＥＳ）、引き続き入力位置の移動軌跡の座標が蓄積され、ｐ６のリリース点が検出された時点で再び形状の認識処理が実行される。
【００５９】
手書き図形の認識結果としては、図７（ｅ）のバツの形状が特定される。本実施形態の辞書１２４では、バツには、その時点で表示されている操作対象の画像の削除機能の呼び出しコマンドと、コマンドに応じて表示するＧＵＩ画面の情報が関連付けられている。よって、認識処理が終わると、灰色領域の表示を消し、画像の削除を実行するかの確認画面が表示される（ステップＳ２０９）。確認画面で受け付けたユーザ操作に応じた処理が実行され（ステップＳ２１１）、スクロール表示の抑制が解除され（ステップＳ２１２）、状況に応じた表示内容の変更が行われる。例えば、ＧＵＩ画面の操作によって、削除処理の実行が指示された場合、画像データがＨＤＤから削除され、削除された画像の前もしくは後の画像が表示される。削除処理のキャンセルが指示された場合、スクロールの抑制が解除されたら元の表示状態に戻る。このように、回復が容易でないような処理を実行する場合は、確認画面を表示することで、ユーザ操作の重大な誤りを回避することができる。例えば、ユーザが意図する操作のために手書き図形の形状を誤って記憶していた場合でも、誤操作を低減できる。
【００６０】
＜変形例＞
上述した図２のフローチャートの処理では、スクロール表示を抑制する第1の条件として、長押し操作が入力されたことを例示したが、ここで判断する条件は長押しに限定されない。例えば、長押しの代わりに、タップ、連続タップ、マルチタッチを適用してもよい。タップ操作とは、検出された入力位置が所定の範囲内から動かず、所定の時間内に検出されなくなった時に認識される操作である。
【００６１】
連続ダブルタップ操作とは、所定の時間内にタップ操作が連続して２回以上行わる操作である。マルチタッチ操作とは、２点以上の入力位置が同時に検出される操作である。連続タップ操作の一例として、２回連続でタップ操作が入力されるダブルタップについて、図３（ｂ）と図４（ｂ）を用いて説明する。図３（ｂ）はダブルタップ操作中に取得される一連の入力位置を示し、黒丸がタッチされた入力位置で、白丸はタッチがリリースされたリリース点である。図４（ｂ）は、ダブルタップ操作中に入力位置が取得されるタイミングを示すチャートである。ダブルタップ操作を検出する場合は、ｔ３−ｔ２の時間の長さに閾値処理を行い、所定の時間に収まるほど短い間隔で２回連続のタップ操作が行われたことが判定された場合、ｐ３が取得された時点でダブルタップがなされたと判定される。スクロール表示を抑制する条件を連続タップとする場合は、図２のＳ２０３を連続タップの検出処理に変更すればよい。
【００６２】
マルチタッチとは、２点以上の入力位置が略同時に取得される操作である。ただし、２点のマルチタッチによる操作は、画像の拡大や回転等の操作に割り当てられることが多いため、手描き入力モードに移行しスクロール表示を抑制する条件は、３点以上での入力とすることで区別できる。一例として、３点のマルチタッチ入力が認識される状態を、図３（ｃ）と図４（ｃ）を用いて説明する。図３（ｃ）はマルチタッチ操作の入力位置を示し、黒丸が入力位置で、白丸はリリース点である。図４（ｃ）は図３（ｃ）に対応するタイミングチャートである。本実施形態では、マルチタッチされた状態でも、タッチセンサからは入力位置の情報が１点ずつ通知されるため、時刻ｔ３においてマルチタッチであることが認識され、スクロール表示の抑制が実行される。その後、手描き図形として認識するのは、検出されている複数の入力位置のどれか１つ、もしくは複数の入力位置の中点や重心点の座標の移動軌跡とする。なお、検出されている複数の入力位置のどれか１つを追跡して移動軌跡を認識する場合には、ステップＳ２０４で灰色領域が表示され、手描き入力モードに移行した後で、入力位置の数が１つに減ったことを検出するステップを加える。例えば、図３（ｃ）のように３点の入力位置によるマルチタッチが、手描き入力を開始するトリガーとなった場合、２点分のリリースを検出し、リリースされた入力位置の座標情報はＲＡＭ１１４に保持する軌跡から削除する。そして残った１点の座標を蓄積し、リリースを検出したことに応じて移動軌跡の形状を認識する。
【００６３】
本実施形態では、このようにタッチ開始直後に取得される少なくとも１以上の入力位置の情報が、第１の条件を満たす場合に、スクロール表示を抑制することで、スクロール操作とジェスチャ操作を容易に切換えて入力可能な環境を提供する。第１の条件は、入力位置の座標以外の情報（例えば、入力の継続時間、連続回数、数など）によって規定される条件である。いずれの条件を用いるかは、情報処理装置１００が受付可能なタッチ操作に応じて選択されればよい。例えば、長押し操作に個別のコマンドが割り当てられる場合には、タップなど別の条件を選択することで、スクロール操作とジェスチャ操作を容易に切り替えて入力可能な環境を提供することができる。
【００６４】
また、上述したステップＳ２０２では、タッチ開始直後に長押し操作が入力されたかを判定したが、タイミングをタッチ直後に限定せず、長押し操作が入力されたかを判定するように変形してもよい。つまり、入力位置が所定の距離以上移動した後に行われる長押し操作を検出して、スクロール表示を抑制してもよい。ただし、この場合には、タッチ開始直後から長押し操作が行われるまでの入力位置の座標情報をクリアして、その後に行われるジェスチャ操作の認識処理の対象からは除外する。つまり、ジェスチャ操作としての移動軌跡の形状の認識は、長押し操作の後に続く移動軌跡に限定される。また、入力位置が所定の距離以上移動した後に行われる長押し操作は、タッチ開始直後の長押し操作とは、継続時間の長さの条件を変更してもよい。具体的には、より長い時間、入力位置が所定の範囲内に留まっていることを長押し操作が入力されたことを判定する条件とする。上記のように、長押しの継続時間の条件を長く設定することで、画面スクロール操作との操作の干渉を低減しつつ、長押し操作の操作効率を向上することができる。
【００６５】
なお、上述した所定の実施形態では、スクロール表示を抑制した場合、手描き図形の入力を受け付けることを示すために灰色領域を表示するとしたが、これに限らない。灰色以外の色の領域を用いても良いし、また色に限定せず表示画面の濃淡や明るさを変更してもよい。また、ボタン等の表示アイテムを非表示としたり、入力できるジェスチャ形状のガイダンスを表示したりすることによっても、ユーザに手描き図形の入力が可能であることを示すことができる。
【００６６】
＜第２の実施形態＞
第１の実施形態では、長押し操作を検出したことに応じて手描き図形の入力を受け付ける状態へ移行し、その後入力位置のリリースを検出したことに応じて、長押し操作後に取得した入力位置の軌跡の形状を認識した。つまり、長押し操作の後、ユーザが入力位置をリリースすることなく、手描き図形の入力を開始することを前提としていた。そのため、形状を認識する移動軌跡の開始点は、常に長押し操作が入力された位置に一致していた。それに対し、第２の実施形態では、長押し操作に応じてスクロール表示が抑制され、手書き図形の入力が可能となった後で取得される入力位置の１以上のストロークから、第２の条件を用いて形状を認識すべきストロークを限定する処理を加える例を説明する。第２の条件とは、第１の条件とは異なる条件で、既に入力された入力位置の軌跡の状態に関して規定される条件である。本実施形態では、具体的には、１画目のストロークが、形状認識の対象とすべきストロークかを判断するため、１画目のストロークの長さに注目する。これにより、長押し操作が情報処理装置１００に認識された時点でユーザが一度表示画面から手を離し、改めてストロークを入力し始める場合にも、ユーザの意図に沿った手描き図形の認識を行うことが可能となる。
【００６７】
本実施形態に係る情報処理装置１００の外観及び構成は、図１を参照して説明した第１の実施形態と同一であるため、詳細な説明を省略する。ただし、第２の実施形態の特定部１２２は、長押し操作の後で取得される入力位置が構成するストロークのうち、１画目のストロークを、形状を認識する処理の対象とするかを判断した上で、認識処理を実行する。具体的には、１画目のストロークが、手書き図形の一部を構成するストロークとしては短すぎる場合は、当該ストロークを構成する入力位置は、手書き図形を構成する入力位置の候補とはならないとみなし、形状を認識する処理の対象から除外する。第２の実施形態の辞書１２４にも、少なくとも第１の実施形態で例示したサンカク、バツ、マルの形状のストロークが記憶されているものとする。
【００６８】
本実施形態では、図８のフローチャートに従って、タッチ操作を認識する処理が実行される。第１の実施形態で説明した図２のフローチャートと共通するステップには同じ番号を付し、詳細な説明は省略する。図２のフローチャートとの異なる点は、ステップＳ２０５において入力位置のリリースが検出された場合（ステップＳ２０５でＹＥＳ）、ステップＳ８０１に進み、ジェスチャ操作の認識処理が実行されることである。
【００６９】
図９（ａ）は、第２の実施形態において、ステップＳ８０１において実行されるジェスチャ操作の認識処理の詳細を示すフローチャートである。ステップＳ９０１では、特定部１２２が、長押し操作以降に入力された入力位置の軌跡のうち、１画目に当たるストロークの長さが、所定の長さより短いかを判定する。ここでの所定の長さとは、辞書１２４に手描き図形として記憶されているストロークのうち、最も短いストロークの長さに合わせて設定される長さの閾値である。１画目のストロークが所定の長さより短いと判定された場合（ステップＳ９０１でＹＥＳ）には、ステップＳ９０２に進む。一方、１画目のストロークが所定の長さより短くないと判定された場合（ステップＳ９０１でＮＯ）には、ステップＳ９０３に進む。ステップＳ９０２では、閾値として設定された長さよりも短い１画目のストロークは、手描き図形のストロークを構成するために入力されたものではないとみなし、軌跡形状の認識対象から除外する。例えば、ＲＡＭ１１４から情報を削除する。あるいは、認識対象ではないことを示す属性情報を関連づけて保持する。ステップＳ９０３では、特定部１２２が、ＲＡＭ１１４に記憶された入力位置の情報のうち、ステップＳ９０２で除外されていない残りの入力位置の情報を対象として、軌跡形状の認識処理を実行する。認識処理は、第１の実施形態において説明した処理（図２のフローチャートのステップＳ２０６）と同じであるので、詳細な説明は省略する。認識処理が完了すると、図８のフローチャートの処理に戻り、ステップＳ２０７に進む。
【００７０】
＜第２の実施形態の操作例＞
ここで、図１１（ａ）・（ｂ）及び図１２（ａ）・（ｂ）を参照して、第２の実施形態に係る情報処理装置１００に、ユーザがジェスチャ操作を入力する操作例を説明する。まず、ユーザが、長押し操作の後、タッチをリリースせずにサンカクの手書き図形を入力する場合と、長押し操作の後一旦タッチをリリースしてから、改めてサンカクの手書き図形を入力する場合とを比較して説明する。
【００７１】
ユーザが、長押し操作の後、タッチをリリースせずにサンカクの手書き図形を入力する場合を、操作例Ａとして説明する。図１１（ａ）は、長押し操作の後で、タッチをリリースせずにサンカクの手書き図形を入力する場合に取得される一連の入力位置ｐ１〜ｐ７を表す。また、図１２（ａ）は図１１（ａ）に対応するタイミングチャートで、入力位置ｐ１〜ｐ７のそれぞれが取得されたタイミングを表す。まずｐ１〜ｐ６については、入力位置に関する情報が取得されると（ステップＳ２０１）、既に長押しが入力済みであり、今回は長押しが検出されないため（ステップＳ２０２でＮＯ）、リリースはされていない（ステップＳ２０５でＮＯ）ので、無効とされているスクロール表示は実行されず終了する。これが繰り返される。ｔ７の時点でｐ７の情報が取得されると、リリースが検出されるので（ステップＳ２０５でＹＥＳ）、ステップＳ８０１の認識処理が実行される。操作例Ａの場合、ｐ１からｐ７で構成される１画目のストロークは、十分に長いので（ステップＳ９０１でＮＯ）、辞書１２４を使った形状の認識処理が実行され（ステップＳ９０３）、サンカクのストロークが特定される。以降は第１の実施形態と同様で、サンカクの形状のストロークに対応付けられたコマンド（複数のサムネイル画像の一覧画面への遷移）が実行される。
【００７２】
次に、ユーザが、長押し操作の後、一旦タッチをリリースして、改めてサンカクの手書き図形を入力する場合を、操作例Ｂとして説明する。図１１（ｂ）は、タッチを一旦リリースしてからサンカクの手書き図形を入力する場合に取得される一連の入力位置ｐ１〜ｐ９を表す。また、図１２（ｂ）は図１１（ｂ）に対応するタイミングチャートで、入力位置ｐ１〜ｐ９のそれぞれが取得されたタイミングを表す。操作例Ｂでは、ｐ１とｐ２で構成されるのが１画目のストローク、ｐ３からｐ９で構成されるのが２画目のストロークである。ここで１画目のストロークは、手描き図形を描くことを意図したものではなく、極短いとする。以降、先に説明した操作例と重複した処理については詳細を省略しながら説明する。
【００７３】
操作例Ｂでは、まず１画目のストロークについて、ｔ２においてｐ２のリリース情報が取得されると（ステップＳ２０５でＹＥＳ）、ステップＳ８０１の認識処理が実行される。ｐ１からｐ２の長さは、閾値より短い（ステップＳ９０１でＹＥＳ）。従って、ｐ１とｐ２は形状を認識する対象から除外され（ステップＳ９０２）、この時点では、認識処理の対象となる軌跡が保持されていないことになる。従って、認識処理（ステップＳ９０３）の結果、特定されるストロークはない（ステップＳ２０７でＮＯ）。この時点でのストローク数は「１」で、最大ストローク数ではない（ステップＳ２１４でＮＯ）。入力待ちタイマーが満了する前に、ｐ３が取得されることで、タイマーは停止され（ステップＳ２１８）、ｐ３に対して処理が開始される。ｐ３からｐ８が取得される間は、ストロークの形状は特定されず、スクロール表示も抑制されたまま、入力位置の情報が蓄積される。そして、ｔ９においてｐ９のリリースが検出されたとき（ステップＳ２０５でＹＥＳ）、ステップＳ８０１の認識処理が実行される。ｐ３からｐ９の長さは、閾値より長い（ステップＳ９０１でＮＯ）ので、形状を認識する処理が実行され（ステップＳ９０３）、サンカクのストロークが特定される。そして、サンカクに対応付けられたコマンド（複数のサムネイル画像の一覧画面への遷移）が実行される。
【００７４】
このように、第２の実施形態によれば、手書き図形の入力が可能となった後で、ユーザがタッチをリリースせずにストロークの入力を開始した場合も、一旦タッチをリリースしてから入力を開始した場合でも、適切な入力位置を対象とした認識処理が可能となる。本実施形態では、長押し操作を取得した時点で、スクロール表示を抑制すると同時に、灰色領域を表示することで、ユーザに対して手描き入力が可能になったことを明示する。ユーザは、画面の内容に大きな変化があった時点で、無意識に手を離すこともある。第２の実施形態によれば、そのような場合でも、再び長押し操作を行う必要はなく、自然に操作を継続できるようになる。
【００７５】
以上説明したように、第２の実施形態によれば、入力された複数のストロークのうち、ユーザが手描き図形として意図したストロークを特定して認識処理を行うことが可能となるので、より多様な手描き図形を認識することが可能となる。なお、第２の実施形態に対しても、第１の実施形態と同様の変形を適用できる。
【００７６】
＜第３の実施形態＞
第２の実施形態では、長押し操作の後で取得される入力位置の１以上のストロークから、形状を認識すべきストロークを選択する際に、１画目のストロークが短いことを、形状認識の対象から除外する第２の条件とした。それに対し、第３の実施形態では、１画目に短いストロークを含む形状が辞書１２４に登録されている可能性も考慮した第２の条件によって除外の可否を判定することで、更に多様な形状の手描き図形を認識可能とする。
【００７７】
本実施形態に係る情報処理装置１００の外観及び構成は、図１を参照して説明した第１・第２の実施形態と同一であるため、詳細な説明を省略する。ただし、第３の実施形態の特定部１２２は、長押し操作の後で取得される入力位置が構成するストロークのうち、１画目のストロークも一旦は、形状認識処理の対象とする。そして、一旦は認識部１２３による認識処理を実行し、その結果とストロークの長さに基づいて、更に形状を認識する処理の対象とするストロークを最終決定する。具体的には、１画目のストロークが、辞書１２４に記憶された１画目のストロークの形状のいずれとも一致せず、かつ、手書き図形の一部を構成するストロークとしては短すぎる場合は、当該ストロークを構成する入力位置は図形を構成する候補ではないとみなす。従って、当該入力位置の情報を形状認識処理の対象から除外する。第３の実施形態の辞書１２４には、第１の実施形態及び第２の実施形態で例示したサンカク、バツ、マルの形状のストロークに加えて、数字やアルファベットや日本語のひらがなやカタカナなど、文字の形のストロークも登録されているとする。文字のストロークには、当該文字をテキスト入力するというコマンドが対応している。ただし、第３の実施形態の辞書１２４には、コマンドに対応する手描き図形のそれぞれについて、ストローク毎に形状認識処理が可能なように、ストローク毎に形状情報が管理されている。なお、本実施形態は、登録される文字に、ｊ、う、え、ふ、ら、と、ウ、シ、ソ、ツ、ネ、ミ、ン、チ、ワなど、１画目に入力されるストロークが比較的短い文字が含まれる場合に特に有効に利用できる。
【００７８】
本実施形態も、第２の実施形態と同様、図８のフローチャートに従って、タッチ操作を認識する処理が実行される。ただし、第２の実施形態とは異なり、ステップＳ８０１では、図９（ｂ）のフローチャートに従って、ジェスチャ操作の認識処理が実行される。
【００７９】
図９（ｂ）のフローチャートの処理では、まず、ステップＳ９１１において、認識部１２３が、保持部１２４に保持された入力位置に関する情報に基づいて、入力済みのストローク毎に、形状認識処理を実行する。形状認識処理は、第１の実施形態で説明したように、座標から入力ストロークと辞書１２４のモデルとの差異の大きさを算出することによって行う。ステップＳ９１２では、認識部１２３が、ステップＳ９１１で実行した認識処理の結果、一致する辞書１２４データがあるか否かを判定する。具体的には、辞書１２４情報の中に、入力済みのストロークのそれぞれの形状が、辞書１２４に登録された１つの辞書１２４データ（例えば１つの図形、１つの文字を示すデータ）の各ストロークの形状と一致するか否かを判定する。該当する辞書１２４データがある場合（ステップＳ９１２でＹＥＳ）には、図９（ｂ）の処理を終了する。一方、該当する辞書１２４データがない場合（ステップＳ９１２でＮＯ）には、ステップＳ９１３に進む。
【００８０】
ステップＳ９１３では、特定部１２２が、長押し操作以降に入力された入力位置の軌跡のうち、１画目に当たる軌跡の長さが、所定の長さより短いかを判定する。この処理は、第２の実施形態のステップＳ９０１の処理と同じである。１画目のストロークが所定の長さより短いと判定された場合（ステップＳ９１３でＹＥＳ）には、ステップＳ９１４に進む。一方、１画目のストロークが所定の長さより短くないと判定された場合（ステップＳ９１３でＮＯ）には、図８のフローチャートのステップＳ２０７に進む。ステップＳ９１４では、特定部１２２が、１画目のストロークを軌跡形状の認識対象から除外する。具体的には、除外された部分の入力位置の情報がＲＡＭ１１４から情報が削除される、あるいは、除外されたことを示す属性情報が付与される。ステップＳ９１５では、認識部１２３が、ＲＡＭ１１４に記憶された入力位置の情報のうち、ステップＳ９１４で除外されていない入力位置の情報を対象として、軌跡形状の認識処理を実行する。認識処理は、第１の実施形態において説明した処理と同じである。認識処理が完了すると、図８のフローチャートの処理に戻り、ステップＳ２０７に進む。以降の処理は、第１及び第２の実施形態と同じである。
【００８１】
＜第３の実施形態の操作例＞
ここで、図１１（ｃ）・（ｄ）及び図１２（ｃ）・（ｄ）を参照して、第３の実施形態に係る情報処理装置１００に、ユーザがジェスチャ操作を入力する操作例を説明する。まず、ユーザが、長押し操作の後、タッチをリリースせずにアルファベットの「ｉ」の軌跡を入力する場合と、長押し操作の後一旦タッチをリリースしてから、改めて「ｉ」の軌跡を入力する場合とを比較して説明する。情報処理装置１００の辞書１２４には、「ｉ」の形状情報が記憶されているとする。
【００８２】
ユーザが、長押し操作の後、タッチをリリースせずに「ｉ」の軌跡を入力する場合を、操作例Ｃとして説明する。図１１（ｃ）は、長押し操作の後で、タッチをリリースせずに「ｉ」の軌跡を入力する場合に取得される一連の入力位置ｐ１〜ｐ５を表す。また、図１２（ｃ）は図１１（ｃ）に対応するタイミングチャートで、入力位置ｐ１〜ｐ５のそれぞれが取得されたタイミングを表す。操作例Ｃでは、ｐ１とｐ２で構成されるのが１画目のストローク、ｐ３からｐ５で構成されるのが２画目のストロークである。ここで１画目のストロークは、手描き図形を描くことを意図したものであるが、「ｉ」の点を表すものであり、ストロークの長さは閾値よりも短いとする。以降、先に説明した操作例と重複した処理については詳細を省略しながら説明する。
【００８３】
操作例Ｃでは、まず１画目のストロークについて、ｔ２においてｐ２のリリースが検出されたとき（ステップＳ２０５でＹＥＳ）、ステップＳ８０１の認識処理が実行される。この段階では、辞書１２４に記憶されている形状情報の各１画目のストロークと、ｐ１とｐ２で構成されるのが１画目のストロークの形状が一致しているか否かが判定される。ここで、少なくとも「ｉ」の１画目のストロークの形状が対応するので（ステップＳ９１２でＹＥＳ）、１画目のストロークを除外することはせず、ステップＳ２０７に進む。この段階では、「ｉ」の１画目に一致したのみであり、手描き図形に対応する「ｉ」が入力されたかは未確定であるので、入力されたストロークに対応するコマンドはない（ステップＳ２０７でＮＯ）と判定される。さらに、ストローク数は最大数の２ではないので（ステップＳ２１４でＮＯ）入力タイマーが完了するまでに、入力位置ｐ３が取得されたことに応じて、再び一連の処理が開始される。
【００８４】
２画目のストロークについては、ｔ５でｐ５のリリースが検出されたとき（ステップＳ２０５でＹＥＳ）、ステップＳ８０１の認識処理が実行される。１画目、２画目それぞれのストロークについて形状の認識処理が行われ（ステップＳ９１１）、１画目と２画目の両方の形状が一致する「ｉ」のストロークが特定される（ステップＳ９１２でＹＥＳ）。ステップＳ２０７では、例えばアルファベットの「ｉ］を入力するというコマンドが特定され、以降、例えば「ｉ」の活字を表示する処理や、あるいは「ｉ」の入力に対応付けられた画面遷移などの処理が実行される。
【００８５】
次に、ユーザが、長押し操作の入力後、一旦タッチをリリースして、改めて「ｉ」の軌跡を入力する場合を、操作例Ｄとして説明する。図１１（ｄ）は、タッチを一旦リリースしてから「ｉ」の軌跡を入力する場合に取得される一連の入力位置ｐ１〜ｐ７を表す。また、図１２（ｄ）は図１１（ｄ）に対応するタイミングチャートで、入力位置ｐ１〜ｐ７のそれぞれが取得されたタイミングを表す。操作例Ｄでは、ｐ１とｐ２で構成されるのが１画目のストローク、ｐ３とｐ４で構成されるのが２画目のストローク、ｐ５からｐ７で構成されるのが３画目のストロークである。ここで１画目のストロークは、手描き図形を描くことを意図したものではなく、極短いとする。２画目及び３画目のストロークが「ｉ」を手描きすることを意図して入力されたものである。以降、先に説明した操作例と重複した処理については詳細を省略しながら説明する。
【００８６】
操作例Ｄにおいて、まず１画目のストロークに対する処理は、操作例Ｃと同一である。１画目のストロークは短いが、辞書１２４のうち少なくとも［ｉ］の１画目と形状が一致するため、ｐ３の入力を待って処理が繰り返される。２画目のストロークに関しては、ｔ４でｐ４のリリースが検知されたことに応じて、ステップＳ８０１の認識処理が実行される。第３の実施形態の辞書１２４には、１画目と２画目の両方が短い辞書１２４データは記憶されていない。入力に一致する辞書１２４データがなく（ステップＳ９１２でＮＯ）、１画目のストロークが閾値よりも短い（ステップＳ９１３でＹＥＳ）ことから、１画目のストロークが形状の認識処理の対象から除外される（ステップＳ９１４）。これにより、入力されたストロークのうち、除外されていない入力位置ｐ３とｐ４が構成するストロークが、形状を認識すべきストロークの１画目として新たに認識処理の対象となる。ステップＳ９１５で再度認識処理が行われると、少なくとも「ｉ」の１画目の形状が一致するが、この時点ではコマンドは特定されない（ステップＳ２０７でＮＯ）。入力タイマーが満了するまでに入力位置ｐ５が取得されることに応じて、再び処理が開始される。
【００８７】
最後のストロークについては、ｔ７でｐ７のリリースが検出された時点で、認識処理が実行される。除外されていないｐ３からｐ４の軌跡を１画目、ｐ５からｐ７の軌跡を２画目とした認識処理（ステップＳ９１１）によって、「ｉ」のストロークが特定される。ステップＳ２０７では、例えばアルファベットの「ｉ」を入力するというコマンドが特定され、以降、例えば「ｉ」の活字を表示する処理や、あるいは「ｉ」の入力に対応付けられた画面遷移などの処理が実行される。
【００８８】
以上説明したように、第３の実施形態によれば、短いストロークであっても、ユーザが手描き図形として意図したかを判断して認識処理を行うことが可能となるので、より多様な手描き図形を認識することが可能となる。なお、第３の実施形態に対しても、第１及び第２の実施形態と同様の変形を適用できる。
【００８９】
＜第４の実施形態＞
第２の実施形態、及び第３の実施形態は、ユーザが、手描き入力画面が表示された段階で、一旦タッチをリリースして改めて入力を開始する場合に対応するために、１画目のストロークの全体を、形状を認識する処理の対象とすべきかを判定した。第４の実施形態ではさらに、ユーザがリリースはせず、入力位置をスライドさせてストロークを描き始める可能性を考慮した第２の条件によって、１画目のストロークのうちどこからが手描き図形を意図して入力された部分かを特定する例を説明する。
【００９０】
本実施形態に係る情報処理装置１００の外観及び構成は、図１を参照して説明した他の実施形態と同一であるため、詳細な説明を省略する。ただし、第４の実施形態の特定部１２２は、入力されたストロークが辞書１２４に登録されたストロークと一致しない場合、１画目のストロークの曲がり方に基づいて、１画目のストロークの一部を形状認識の対象から除外すべきかを判定する。具体的には、１画目のストロークの最初に、後続する軌跡と極端に角度が異なり、手書き図形を構成する要素としては短すぎる箇所がある場合は、その部分を手書き図形を構成する入力位置の候補とはならないとみなし、形状を認識する処理の対象から除外する。なお第４の実施形態の辞書１２４には、少なくとも、第１の実施形態及び第２の実施形態で例示したサンカク、バツ、マルの形状のストロークが登録されているとする。
【００９１】
本実施形態も、第２及び第３の実施形態と同様、図８のフローチャートに従って、タッチ操作を認識する処理が実行される。ただし、第２の実施形態とは異なり、ステップＳ８０１では、図１０のフローチャートに従って、ジェスチャ操作の認識処理が実行される。図１０のフローチャートでは、図９（ｂ）と共通する処理ステップは同じ番号で示し、説明を省略する。
【００９２】
第４の実施形態では、ステップＳ９１３において、１画目に当たる軌跡の長さが、所定の長さより短くないと判定された場合（ステップＳ９１３でＮＯ）には、ステップＳ１００１に進む。ステップＳ１００１では、認識部１２３が、１画目のストロークの最初が曲がっているか否かを判定する。例えば、１画目のストロークのうち、開始点から累積された長さが所定の長さまでの区間を構成する一連の入力位置について、連続する２つの入力位置を結ぶ直線とＸ軸とがなす角度を算出する。そして、角度の変化量が所定の角度の大きさよりも大きい場合に、１画目のストロークの最初が曲がっていると判定する。そして、前後で大きな角度変化が生じている入力位置を、書き出し位置として特定する。１画目のストロークの最初が曲がっていると判定された場合（ステップＳ１００１でＹＥＳ）、ステップＳ１００２に進む。１画目のストロークの最初が曲がっていないと判定された場合（ステップＳ１００１でＮＯ）、図８のフローチャートの処理に戻る。
【００９３】
ステップＳ１００２では、１画目のストロークについて、開始点から書き出し位置に至るまでの部分を、軌跡の形状認識処理の対象から除外する。具体的には、除外された部分の入力位置の情報がＲＡＭ１１４から情報が削除される、あるいは、除外されたことを示す属性情報が付与される。そして、ステップＳ９１５において、除外されていない残りの入力位置が構成するストロークに対して、認識処理が実行され、図８のフローチャートの処理に戻る。以降の処理は、これまで説明した実施形態と同じである。
【００９４】
なお、ステップＳ９１３の１画目のストローク全体の長さを判定する処理と、ステップＳ１００１の１画目のストロークの曲がり方を判定する処理は、順序を入れ替えられても構わない。ただし、長押し操作を入力した位置と、手描き図形を書き始める位置を異ならせたい場合には、一旦タッチをリリースしてしまう方が、より負荷が低く無意識にも行われる可能性が高い。従って、１画目のストロークの長さを判定する処理を先に実行することで、より効率的な状況判断が可能となる。
【００９５】
また、第４の実施形態では、第３の実施形態に沿って１画目のストローク全体の長さを判定する処理に加えて、１画目のストロークの曲がり方を判定する処理を行う例を示したが、１画目のストロークの曲がり方を判定する処理を単独で実行しても構わない。またその際、一部を除外した１画目のストロークについて、再度ステップＳ１００１の判定処理を行い、角度変化に基づいて１画目のストロークの最初の部分を処理対象から除外する処理を繰り返しても良い。これにより、手描き図形の書き始めまでに入力位置の移動が繰り返された場合でも、書き出し位置を特定することが可能となる。
【００９６】
＜第４の実施形態の操作例＞
ここで、図１１（ｅ）及び図１２（ｅ）を参照して、第４の実施形態に係る情報処理装置１００に、ユーザがジェスチャ操作を入力する操作例Ｅを説明する。図１１（ｅ）は、例えばユーザが、画面の左寄りの位置で長押し操作を行い、タッチをリリースせずに指を中央部まで動かしてからサンカクの軌跡を入力する場合に取得される一連の入力位置ｐ１〜ｐ８を表す。また、図１２（ｅ）は図１１（ｅ）に対応するタイミングチャートで、入力位置ｐ１〜ｐ８のそれぞれが取得されたタイミングを表す。操作例Ｅでは、ｐ１からｐ８の全てによって１画目のストロークが構成される。ただし、ユーザは、ｐ１で長押し操作をした後で、手描き図形の書き出し位置をｐ２に移動させている。従って、ユーザの意図では、ｐ２からｐ８が、手描き図形を構成する入力位置として入力された軌跡である。以降、先に説明した操作例と重複した処理については詳細を省略しながら説明する。
【００９７】
操作例Ｅでは、ｔ８でｐ８のリリースが取得されたとき（ステップＳ２０５でＹＥＳ）、に１画目のストロークの入力が終了し、ステップＳ８０１の認識処理が実行される。この段階で、辞書１２４に記憶されている形状情報の各１画目のストロークと、ｐ１からｐ８までの入力位置で構成されるストロークの形状が一致しているか否かが判定される。しかしながら、辞書１２４データとは一致せず（ステップＳ９１２でＮＯ）、また、１画目のストロークは閾値の長さよりも長い（ステップＳ９１３でＮＯ）。従って、ストロークの最初が曲がっているか否かが判定される（ステップＳ１００１）。一例として、１画目のストロークについて、開始点から累積Ｄ２［ｄｏｔ］の中で、９０［度］よりも小さい鋭角の部分が存在した場合に、ストロークの最初が曲がっていると判定されるとする。図１１（ｅ）の場合、ｐ１とｐ２を通る直線と、ｐ２とｐ３を通る直線が鋭角を成すので、ストロークの最初が曲がっていると判定される（ステップＳ１００１でＹｅｓ）。そこで、ｐ２より前の部分が、形状の認識対象から除外され（ステップＳ１００２）、形状認識処理が実行され（ステップＳ９１５）、サンカクのストロークが特定される。以降、サンカクの形状のストロークに対応付けられたコマンド（複数のサムネイル画像の一覧画面への遷移）が実行される。
【００９８】
以上説明したように、第４の実施形態によれば、１つのストロークの中でも、ユーザが手描き図形の入力を開始した書き出し位置を特定して認識処理を行うので、より多様な手描き入力方法に対応することが可能となる。なお、第４の実施形態に対しても、他の実施形態と同様の変形を適用できる。
【００９９】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１００】
１２１  取得部
１２２  特定部
１２３  認識部
１２４  辞書
１２５  スクロール制御部
１２６  表示制御部
１２７  受付部
【図１】
2016110518.tif 000003
【図２】
2016110518.tif 000004
【図３】
2016110518.tif 000005
【図４】
2016110518.tif 000006
【図５】
2016110518.tif 000007
【図６】
2016110518.tif 000008
【図７】
2016110518.tif 000009
【図８】
2016110518.tif 000010
【図９】
2016110518.tif 000011
【図１０】
2016110518.tif 000012
【図１１】
2016110518.tif 000013
【図１２】
2016110518.tif 000014