JP2016110518A - 情報処理装置、その制御方法、プログラム、及び記憶媒体 - Google Patents
情報処理装置、その制御方法、プログラム、及び記憶媒体 Download PDFInfo
- Publication number
- JP2016110518A JP2016110518A JP2014249425A JP2014249425A JP2016110518A JP 2016110518 A JP2016110518 A JP 2016110518A JP 2014249425 A JP2014249425 A JP 2014249425A JP 2014249425 A JP2014249425 A JP 2014249425A JP 2016110518 A JP2016110518 A JP 2016110518A
- Authority
- JP
- Japan
- Prior art keywords
- input
- input position
- stroke
- information processing
- processing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0483—Interaction with page-structured environments, e.g. book metaphor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
Abstract
【課題】同一画面において、入力位置の移動に追従したスクロール操作の入力と、入力位置の移動軌跡の形状を認識する手描き図形の入力の両方を受付可能とする場合、入力がいずれを意図しているかを区別する。【解決手段】入力領域に対して入力される入力位置を取得する取得部121と、取得される入力位置の移動に応じて、表示画面に表示される画像の少なくとも一部をスクロール表示させる表示制御部126と、取得される一連の入力位置のうち、所定の条件が満たされた後で取得される入力位置を、予め定められた図形を構成する入力位置の候補として特定する特定部122と、特定された入力位置の移動軌跡の形状を認識する認識部123とを備える。表示制御部126は、図形を構成する入力位置の候補と特定された入力位置の移動に応じては、画像をスクロール表示させない。【選択図】図1
Description
本発明は、位置の入力に基づく操作を認識する技術に関する。
近年、ユーザの指あるいはスタイラスにより画面がタッチされたことに応答して、タッチされた位置のX、Y座標値を入力値として取り込み、この入力値に基づいてユーザによるタッチ操作を認識するタッチ入力機器が普及している。一般的なタッチ操作の1つに、入力位置の移動に追従して画像を移動させるスクロール操作がある。また、タッチ入力機器では、入力位置の移動軌跡の形状が所定の形状と一致する場合に、予め該形状に対応付けられたコマンドの入力として認識する手描き図形の認識機能が搭載されることがある。
同一画面において、入力位置の移動に追従したスクロール操作の入力と、入力位置の移動軌跡の形状を認識する手描き図形の入力の両方を受付可能とする場合、入力位置の移動が、いずれを意図した移動であるかを区別して認識する必要がある。特許文献1では、画面上に2つ領域を設定し、入力位置がどちらの領域に含まれているかに応じて、その入力位置の移動従ったスクロールを実行するか、移動軌跡の形状を認識してジェスチャ操作を実行するかを決定することが開示されている。
特許文献1の方法では、ユーザは目的とする操作に応じてタッチする位置を制限される。しかしながら表示される画像の内容や画面の大きさによっては、ユーザにとってタッチしやすい場所又はタッチしにくい場所が生じることがあるため、タッチする位置が制限されることは、操作効率の低下につながる場合もある。
本発明は上記課題に鑑みてなされたものであり、入力領域の任意の位置に入力された位置の移動に関して、表示された画像のスクロールには反映させずに、移動軌跡の形状を認識する処理の対象とすべき部分を特定することを目的とする。
本発明は上記課題を解決するため、本発明に係る情報処理装置は、入力領域に対して入力される入力位置を取得する取得手段と、前記取得手段によって取得される入力位置の移動に応じて、表示画面に表示される画像の少なくとも一部をスクロール表示させる表示制御手段と、前記取得手段によって取得される一連の入力位置のうち、所定の条件が満たされた後で取得される入力位置を、予め定められた図形を構成する入力位置の候補として特定する特定手段と、前記特定手段によって特定された入力位置の移動軌跡の形状を認識する認識手段とを備え、前記表示制御手段は、前記特定手段によって前記図形を構成する入力位置の候補と特定された入力位置の移動に応じては、前記画像をスクロール表示させない。
本発明によれば、入力領域の任意の位置に入力された位置の移動に関して、表示された画像のスクロールには反映させずに、移動軌跡の形状を認識する処理の対象とすべき部分を特定することが可能となる。
以下、本発明を実施するための形態について、図面を参照しながら説明する。なお、以下で説明する実施形態は、本発明を具体的に実施した場合の一例を示すものであり、これに限るものではない。
<第1の実施形態>
図1は、本実施形態に適用可能な情報処理装置の外観とハードウェア構成とソフトウェア構成の一例を示す。
図1は、本実施形態に適用可能な情報処理装置の外観とハードウェア構成とソフトウェア構成の一例を示す。
図1(a)は、情報処理装置100の一例である携帯端末を画面の正面及び側面から見た外観を示す図である。図1(a)において、筐体101は、入力領域102の外周を囲み、合成樹脂や金属等で形成される。入力領域102は、ユーザがタッチの対象とする対象領域であり、情報処理装置100に対する操作入力に用いられるタッチ入力を受け付ける。本実施形態では、入力領域102は表示部である液晶ディスプレイの表示画面部分にタッチセンサを設置したタッチパネルディスプレイによって構成される。この表示画面は、情報処理装置100、あるいは情報処理装置100と接続された他装置を操作するための各種画像を表示するインタフェースである。本実施形態では、入力領域102は、480[dot]×640[dot]の解像度を有し、紙面に向かって左上を原点とする座標平面として位置情報を管理することができるものとする。以降、本実施形態では、図1(a)に示す携帯端末を、情報処理装置100の一例として説明する。
本実施形態の情報処理装置100では、表示画面上をタッチした状態のまま、指などをスライドするように移動させることで、その移動に合わせて表示されている画像の少なくとも一部をスクロールさせることができる。これはスクロール操作と呼ばれる。スクロール操作では、タッチ位置の移動軌跡の形状に関わらず、移動前後のタッチ位置の座標の変化量に基づく移動量で、操作対象の画像をスライド移動させることが可能となる。移動される操作対象の画像は、表示画面に表示された全体でもよいが、タッチされた画像やタッチされたウィンドウ内のコンテンツなど、表示された画像のうちの限定された一部であってもよい。なお以下では、ユーザが指やスタイラスを移動させることで、タッチ位置が変更されることを「タッチ位置(入力位置)が移動する」と省略して表現する。
本実施形態では、スクロール操作を受付可能であるとともに、予め定められた図形を手描きすることよるコマンド入力が可能となる。これはジェスチャ操作、手描きジェスチャ操作、タッチジェスチャ操作などと呼ばれる。手描き図形によるコマンド入力としては、例えば、1つの画像のみが表示されている画面に対してサンカク(△)の形状の軌跡を描くことで、複数のサムネイル画像の一覧画面への画面遷移を指示するコマンドが入力でききる。また、1つの画像が表示されている画面に対してバツ(×)の形状の軌跡を描くことで、表示されている画像の削除を指示するコマンドが入力できる。さらに、1画像が表示されている画面に対してマル(○)の形状の軌跡を描くことで、表示されている画像がお気に入りであることを示す属性情報を付与することができる。ここで挙げた手描き図形によるコマンドは一例であって、他にも様々な形状の軌跡に対し、様々な指示内容を対応付けておくことができる。本実施形態では、予め定められた図形の形状とコマンドの内容の対応関係は、予め辞書として記憶されているが、ユーザ操作やネットワークを介したダウンロードなどにより、辞書を更新可能であってもよい。なお、以下この明細書では、タッチされたまま指などをスライドすることで入力された複数の入力位置を、入力順につなげたものを「軌跡」と総称する。ただし、バツ(×)のように、入力途中で一旦タッチをやめて2画目以降を描く場合、1画分の軌跡のそれぞれを「ストローク」と称する。つまり、サンカクは1つのストロークで構成される軌跡であり、バツは2つのストロークで構成される軌跡である。
このように、本実施形態の情報処理装置100では、スクロール操作のように、タッチ位置の移動軌跡の形状を問わない操作と、ジェスチャ操作のように、タッチ位置の移動軌跡の形状が意味をもつ操作の両方を、同一画面で受付可能とする。同一画面で両方の操作を受け付けるとは、画面やモードの切り替えを行うことなく表示され続ける画面に対して、任意に入力される両方の操作を受付可能であることを意味する。ユーザにとっては、例えば図形を描くなど、タッチ位置の移動軌跡の形状が意味をもつ操作を入力している間に、画像がスクロール移動してしまうと、タッチ位置の移動量が解りにくくなったり、操作の対象となる画像が識別しにくくなったりして煩わしい。従って、本実施形態では、検出されたタッチ位置の移動軌跡のうち、形状を認識する処理の対象とするタッチ部分は、タッチ開始直後に長押し操作が入力された後で移動されたタッチ位置が構成する軌跡の部分に限定する。そして、長押し操作が入力された後で入力位置移動されている間(手描き図形を描くことを意図するタッチ位置の移動が行われている間)は、タッチ位置が移動しても、画像がスクロール表示されないように制御を行う。ここで長押し操作とは、所定の時間の間、タッチ位置の移動量が小さく保たれ、静止しているとみなせる状態が継続されることをいう。
なお、手描き図形の入力と区別されるべき、タッチ位置の移動軌跡の形状を問わない操作とは、スクロールに限定されない。例えば、2点のタッチ位置の間の距離を変化させることに応じて画像の拡大、縮小を指示するピンチ操作や、2点のタッチ位置を相対的に回転させることに応じて画像を回転させるローテーション操作なども挙げられる。以下では、タッチ位置の移動軌跡の形状を問わず、タッチ位置の移動軌跡の形状ではなく座標の変化量に基づいて表示されている画像に変化を加える操作の一例としてスクロール操作を受け付ける場合を例に説明する。
図1(b)は、本実施形態に適用可能な情報処理装置100のハードウェア構成を示すブロック図の一例である。図1(b)において、CPU111は、Central Processing Unitである。また、ROM112は、Read Only Memoryであり、HDD113は、Hard Disk Driveである。本実施形態では、CPU111が、ROM112やHDD113に格納されている制御プログラムを読み出して実行し、各デバイスを制御する。この制御プログラムは、後述するフローチャート等に示される各種動作を情報処理装置100に実行させるための制御プログラムである。ROM112は、それらの制御プログラムやそのプログラムに利用される各種データを保持する。RAM114は、Random Access Memoryであり、CPU111の上記プログラムのワーク領域、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを有する。HDD113は、上述の各種制御プログラムや各種データを格納する。本実施形態では、操作の対象として画面に表示させる写真等の画像群はHDD113に記憶されている。
タッチパネルディスプレイ115は、入力領域102におけるユーザの操作情報を取り込むためのタッチセンサ等と表示出力を行う表示画面を兼ねるデバイスである。タッチパネルディスプレイ115は、入力領域102が人の手指などでタッチされた場合にその接触部分を検出し、入力領域102に定義される座標平面上で、タッチされている位置を1つの座標点として特定する。接触部分が面積を有する場合にはその重心あるいは中心の座標を特定する。以下では、当該点を入力位置と言う。なお、入力位置は、タッチパネルに検出されている1以上の接触部分のうち、独立しているとみなされる1以上の接触部分のそれぞれについて検出可能とする。例えば、複数の指でタッチされた場合、独立した接触部分は複数存在するため、複数の入力位置が検出される。すなわち本実施形態のタッチパネルディスプレイ115は、いわゆるマルチタッチ検出が可能なものであって、同時刻において指示されている1以上の入力位置を全て検出することができるものである。タッチの検出方式は、抵抗膜方式、静電容量方式、赤外線方式、超音波方式、音響波方式、振動検出方式等の各種タッチパネルが利用できる。他にも、距離画像センサや、ステレオカメラなどの三次元空間での位置を検出できるもので入力対象面に触れたかどうかを検出し、入力対象面上で定義される位置情報を取得してもよい。また、情報処理装置の表面に接触していない、近接した状態でのユーザの指などの位置情報を検出できる検出手段を用いて得られた近接状態での位置(近接位置)情報を、入力位置として扱うことも可能である。なお、本実施形態では、入力位置は1点の座標点として検出するものとするが、これに限らない。面積を持った接触部分全体を入力位置とみなしてもよく、また例えば入力領域102をアレイ状のタッチエリアに区分し、いずれのエリアにおいてタッチが検出されているかを示すエリアの識別情報を、入力位置として扱うこともできる。
入出力I/F116はネットワーク等を介して接続される外部装置から入力情報を得たり、各種情報を出力したりするためのインタフェースである。バス117は、CPU111の制御の対象とする構成要素を指示するアドレス信号、各構成要素を制御するためのコントロール信号、各構成機器相互間でやりとりされるデータの転送を行う。なお、上述した制御プログラムは、ROM112又はHDD113に予め記憶されていてもよいし、必要に応じてネットワークを介して外部装置などから受理し、ROM112又はHDD113に記憶しても良い。
図1(c)は、情報処理装置100のソフトウェアの構成を示すブロック図の一例である。これらの各機能部は、CPU111が、ROM112に格納されたプログラムをRAM114に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、CPU111を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
取得部121は、タッチパネルディスプレイ115のタッチセンサから通知される信号に基づき、入力領域102上で、ユーザの指やスタイラスによってタッチされている入力位置に関する情報を取得する。ただし、ユーザの指やスタイラス等が、必ずしも入力領域と接触している状態にはなく、近接した状態で指し示される位置(近接位置)の情報を取得する場合も、入力位置の取得に含む。なお、本実施形態で用いるタッチセンサは、複数の入力位置が同時にタッチされている場合(いわゆるマルチタッチ状態)でも、1点ずつ順に情報を通知してくるものとする。そして、通知された入力位置に関する情報を、RAM114に保持する。入力位置に関する情報とは、例えば入力領域102内での入力位置を示す座標情報、入力位置が検出された検出時刻、検出された順番を示すID、タッチイベントが含まれる。
タッチイベントとは、通知されるタッチ情報の種別を表す情報である。本実施形態では、操作オブジェクトが新たに入力領域に接触したこと、あるいは接触が継続されていることに応じたタッチ情報の通知時は「TOUCH」というイベントが通知される。また、操作オブジェクトがタッチパネルからリリースされたことに応じたタッチ情報の通知時には「RELEASE」というタッチイベントが通知される。入力位置のリリースとは、例えばタッチパネルディスプレイ115からユーザが操作している指が離れて、この指による接触が検出されなくなったことである。つまり「RELEASE」は、接触が検知されなくなったことを示す情報である。タッチイベントが「TOUCH」であった場合には、通知される情報には操作オブジェクトによってタッチされている入力位置を示す座標情報が含まれる。「RELEASE」であった場合には、操作オブジェクトは入力領域に接触していないため、接触された位置座標の情報は取得されない。ただし本実施形態では、「RELEASE」イベントが通知された時、または直後に検出された近接位置を、リリース位置として取得する。本実施形態において、入力位置を識別するためのIDを含む。近接位置を検出しないタッチパネルを用いる場合等は、「RELEASE」イベントが通知された直前に検出されたタッチ位置の座標を、リリース位置として取得すればよい。センサの座標検出周期は、人の指の動きに比較して十分に短いため、実際にリリースするよりも先に検出された直前のタッチ位置であっても、実際のリリース位置との誤差は微小であるとみなせる。IDには、入力位置が検出された順番を関連させた識別子を用いることで、検出される入力位置の数が複数である場合に管理がしやすくなる。また、本実施形態では、取得部121は、IDを基に入力位置の最新の情報を検出し、同じIDの入力位置が以前に検出された位置と異なる位置で検出されたことに基づき、入力位置が移動したことを検出することができる。ただし、同じIDの入力位置が以前に検出された位置と異なる位置で検出されたことに応じたタッチ情報の通知時に「MOVE」というタッチイベントが通知される検出システムに適用しても構わない。
特定部122は、取得部121によって取得された入力位置に関する情報に基づいて、取得された入力位置の移動軌跡のうち、手描きされた図形を構成する入力位置の候補を特定する。つまり、取得された入力位置の移動軌跡のうち、コマンド入力として解釈するために、移動軌跡の形状を認識する処理の対象とすべき部分を特定する。本実施形態では、取得部121によって取得されRAM114に保持された情報に基づいて、長押し操作が入力されたことを判定し、長押し操作が入力された後で入力される入力位置を、移動軌跡の形状を認識処理の対象とすべき入力位置として特定する。すなわち、長押し操作が入力された後で入力される入力位置は、スクロール操作を意図したものではなく、図形を構成する入力位置の候補であると特定する。
認識部123は、特定部122によって特定された入力位置の情報と、辞書124として予め記憶されている情報とに基づいて、入力された手描き図形の形状を特定し、特定された形状に予め対応付けられたコマンドの入力として認識する。ただし、特定部122によって、図形を構成する入力位置の候補と特定された場合でも、必ずしも辞書124の情報と一致せず、形状認識できないという認識結果が得られる場合もある。本実施形態では、辞書124は、サンカクやバツやマルを形成する形状の情報と、情報処理装置100に指示可能なコマンドとが対応付けられた情報のであって、予めHDD113に記憶され、CPU111によってRAM114に読み出されて参照される。
スクロール制御部125は、取得部121によって取得されている入力位置が、手描き図形としての形状認識の対象となるか否かに応じて、入力位置の移動に追従したスクロール表示を抑制するか否かを制御する。本実施形態では、特定部122の処理によって、長押し操作が入力されたと判定された場合にはスクロール表示を抑制し、長押し操作が入力されていない間や、手描き図形の認識が完了した後にはその抑制を解除する。スクロール表示が抑制されていないときは、取得部121によって取得された入力位置の座標の変化量に基づいて、スクロール操作の対象となる画像の移動量を特定し、表示制御部126に通知する。
表示制御部126は、ユーザ操作に応じて実行された各機能部の処理の結果を反映した描画データを生成し、タッチパネルディスプレイ115に出力することで、表示画面に表示する内容を制御する。例えば、認識部123によって認識された手描き図形の形状に対応するコマンドに対する情報処理装置100の応答結果を表示する描画データを生成する。あるいは、スクロール制御部125からの通知に従って表示される対象画像のスクロール表示を行う。受付部127は、表示画面に表示されたGUI画面に対するタッチ操作を受け付ける。GUIは、Graphical User Interfaceである。GUI画面とは、タッチすることによって対応するコマンドの発行を指示することが可能となるアイコンなどの表示アイテムを含んで構成される画像である。受付部127は、取得部121が取得した入力位置の座標と、表示アイテムの画面上での位置情報とに基づいて、タッチ操作によって指示されたコマンドを特定し、応答に関わる各機能部に通知する。
次に、図2のフローチャートに従い、本実施形態において、タッチ操作を認識する処理の流れを説明する。なお、本実施形態では、情報処理装置100の電源が入れられたことに応じて以下で説明する一連の処理が開始され、情報処理装置100の起動中は所定の周期で、その処理が繰り返される。ただし、一連の処理が開始されるきっかけはこれに限らず、装置のロックが解除されたり、特定のアプリケーションが起動されたり、あるいは表示画面で所定の画像の描画が完了したことに応じてタッチ入力を認識する処理が開始されても構わない。
ステップS201では、取得部121が、タッチパネルディスプレイ115から通知された信号に基づき、入力領域102上で指示された入力位置に関する情報を取得する。取得部121は、タッチセンサから得られる情報を基に、入力位置の座標、検出された時刻等に関する情報を取得し、RAM114に保持する。
次に、ステップS202では、特定部122がRAM114に保持された入力位置に関する情報に基づいて、長押し操作が検出されたかを判定する。本実施形態では、タッチ開始直後に長押し操作が入力されたことが、最新の入力位置(最後に取得された入力位置)に基づいて判定可能かを判定する。「長押し」とはある程度の期間、入力状態が継続されることを示す名称であり、長押し操作において入力位置に押圧力が加わっているかは問わない。一般に「長押し操作が入力されたか」の判定条件は、入力位置が所定の時間以上、所定の範囲内にとどまっていることとする。所定の範囲とは例えば、最初にタッチされた入力位置の座標を中心とした半径d1[dot]の円内である。
ここで、長押し操作の判定方法を、図3(a)と図4(a)を用いて説明する。図3(a)は長押し操作中に取得される一連の入力位置の座標を示し、図4(a)は長押し操作中に入力位置が取得されるタイミングを示すタイミングチャートである。図3(a)では、p1が、タッチ開始時に最初にタッチされた入力位置であり、p1を中心とする半径d1の円(破線で示す円)の内部が所定の範囲内となる。今、長押し操作を定義する入力の継続時間を、T[msec]とする。t2−t1<T<t3−t1であるとすると、図3(a)の例の場合、時刻t3に入力位置p3が取得された時点で、長押し操作が検出されたと判定される。なお、所定の範囲の定義の方法は、半径を指定した円の範囲に限らず、例えば、X座標とY座標のそれぞれの変化量がd2[dot]以内に収まる矩形の範囲とすることもできる。
タッチ開始から所定時間が経過するより先に入力位置が移動した場合、長押し操作はなされていないと判定される。本実施形態では、このような場合は、スクロールのように、入力位置の移動軌跡の形状を問わないタッチ操作のために入力位置が移動された可能性が高いとみなす。また本実施形態では、タッチ開始直後に長押し操作が入力されたと少なくとも1回は判定がなされた後で、リリースされずに入力が続いている場合も、最新の座標がその直前入力位置の座標から移動していれば、ステップS202の判定結果はNOとなる。タッチ開始直後に長押し操作が入力されたことは、最新の入力位置が取得される以前に既に判定可能となったからである。本実施形態では、タッチ開始直後に長押し操作が入力された後で、入力位置がリリースされずに検出され続けている状態での移動は、手描き図形を入力するための移動である可能性が高いとみなす。特定部122は、手描き図形を構成する入力位置の候補である入力位置を、形状認識処理の対象として特定し、RAM114に情報を蓄積する。
タッチ開始直後に長押し操作が入力されたと判定された場合(ステップS202でYES)に、ステップS203に進む。一方、タッチ開始直後に長押し操作が入力されたと判定されなかった場合(ステップS202でNO)は、ステップS205に進む。
ステップS203では、スクロール制御部125が、入力位置の移動に追従して画像をスクロールする処理の実行を抑制する。スクロール制御部125は、スクロール表示の抑制中は、表示制御部126に対して、画像のスライド移動を指示する信号の通知を行わず、手描き入力画面を表示することを指示する通知を行う。
ステップS204では、表示制御部126が、タッチパネルディスプレイ115に、手描き入力画面を表示させるための描画データを生成し、出力する。本実施形態では、手描き図形の入力が可能な状態であることをユーザに示すため、手描き入力画面として、表示画面に灰色の領域を元の表示内容に重ねて表示する。これにより、ユーザは、情報処理装置100が手描き図形を受け付ける手描き入力モードに移行したことを認識可能となる。手描き入力画面の描画が完了したら、一連の処理は終了する。そして、情報処理装置100が起動中はステップS201から再び処理が繰り返される。なお、ステップS204で表示される灰色の領域は、灰色ベースの透過色の矩形領域で、表示画面内で灰色の透過物体が前面に表示される領域ともいえる。その大きさは表示画面の最大サイズに一致するものとする。つまり、ユーザには、画面が一様に暗くなったように見える。
ステップS205では、特定部122が、取得部121によって取得された入力位置の情報に基づいて、タッチがリリースされたかの判定を行う。具体的には、最新の入力位置に関する情報として取得されたタッチイベントが「RELEASE」であった場合に、入力位置がリリースされたと判定される。手描き入力のために入力位置がリリースされたと判定された場合(ステップS205でYES)には、ステップS205に進む。一方、リリースされたと判定されなかった場合(ステップS205でNO)には、ステップS219に進む。
次に、ステップS206では、認識部123が、特定部122によって形状認識処理の対象として特定されRAM114に蓄積された入力位置に関する情報に基づいて、入力位置を入力順につないだ軌跡の形状認識を行う。本実施形態では、サンカクやバツやマル等、情報処理装置100に指示可能なコマンドに対応している軌跡の形状情報が、予め辞書124に記憶されている。認識部123は、入力位置を繋いだ軌跡が、辞書124に記憶されているうちどの形状と一致するとみなされるか否かを認識し、一致するとみなされる形状を特定する。具体的な認識処理の内容は、図5に示す具体例を参照して後述する。ステップS207では、認識部123が、ステップS206で実行した認識処理によって、辞書124に予め記憶されていた情報の中から、入力された軌跡に対応する形状が特定されたかを判定する。すなわち、辞書124として記憶された情報の中に、入力された軌跡に対応するコマンドがあるか否かを判定する。入力された軌跡に対応するコマンドがあると判定された場合(ステップS207でYES)には、ステップS208に進む。一方、入力された軌跡に対応するコマンドはないと判定された場合(ステップS207でNO)には、ステップS214に進む。
ステップS208では、認識部123が、入力された軌跡に対応するコマンドの通知に応じて、表示画面に表示されるGUI画面があるかを判定する。本実施形態では、表示されている画像の削除コマンドに対応するバツの形状のジェスチャが入力された場合、それに応じて画像の削除を実行するかを確認するためのGUI画面が表示される。例えば、「Yes」または「No」のボタンへのタッチを促すような画面が表示される。それに対し、複数のサムネイル画像の一覧画面への画面遷移を指示するサンカクの形状のジェスチャが入力された場合は、確認目的などのGUI画面は表示されずに、即時コマンドが実行される。
コマンドに応じて表示されるGUI画面がある場合、辞書124に予めその対応情報が記憶されている。認識部123は、それを参照して判定を行う。コマンドに応じて表示されるGUI画面があると判定される場合(ステップS208でYES)には、ステップS209に進む。一方、コマンドに応じて表示されるGUI画面がないと判定される場合(ステップS208でNO)には、ステップS213に進む。
ステップS209では、表示制御部126が、認識部123から通知される指示に応じて、入力された手描き図形に応じたGUI画面を表示する。このとき、ステップS204で表示した表示画面に表示した灰色領域を削除してもよい。例えば、バツの場合、画像削除を行うかの確認画面がポップアップした画像を生成し、タッチパネルディスプレイ115に出力する。
次に、ステップS210では、受付部127が、ステップS209で表示されたGUI画面に対するユーザの操作を受け付ける。例えば、画像の削除を実行するかの確認画面が表示された場合、ユーザは、削除を実行したい場合は「Yes」のボタンをタッチし、削除を実行したくない場合は「No」のボタンをタッチする。受付部127は、入力位置の座標に基づいて、いずれのボタンがタッチされたかを特定する。
次に、ステップS211では、受付部127が、ステップS210で受け付けた操作を表示制御部などCPU111の各機能部に通知し、各機能部が、ユーザ操作への応答処理を実行するする。例えば、画像削除を行うかの確認画面で「Yes」のボタンがタッチされた場合は、CPU111は画面に表示されている画像を、HDD113から削除する。一方、「No」のボタンがタッチされた場合は、画像は削除されない。
次に、ステップS212では、スクロール制御部125が、スクロール表示の抑制を解除する。スクロール制御部125は、ステップS212の処理の後で検出される入力位置が長押しされずに移動した場合、その座標の変化量に基づいて、スクロール操作の対象画像の移動量を決定し、表示制御部126に通知する。なおステップS212の処理時点で、ステップS204で表示した表示画面に表示した灰色領域が表示され続けていれば、表示制御部126によって削除する。そして、情報処理装置100が起動中はステップS201から再び処理が繰り返される。
一方、ステップS208においてNOと判定され、ステップS213に進んだ場合、認識部123は、ステップS206で認識した手書き図形の形状に対応付けられた指示コマンドが入力されたと認識する。そして、認識部123から入力されたコマンドの通知を受けたCPU111の各種機能部によって、入力された軌跡に対応する操作コマンドへの応答処理が実行される。例えば、サンカクの軌跡が入力された場合、表示制御部126が、複数のサムネイル画像の一覧画面を表示させるための描画データを生成し、タッチパネルディスプレイ115に出力する。
また、ステップS207でNOと判定され、ステップS214に進んだ場合、特定部122が、形状認識処理の対象として特定した入力位置の軌跡を構成するストローク数が、予め辞書124に記憶されているストローク数の中での最大数であるか否か判定する。ストロークは、最初に「TOUCH」イベントとともに通知された入力位置から、「RELEASE」イベントが通知されるまでの一連の入力位置で構成される。つまり、「RELEASE」イベントの通知を受ける度に入力されたストロークの数はカウントアップされる。サンカクのストローク数は「1」で、バツのストローク数は「2」である。例えば、この2つの図形が辞書124に記憶されていた場合、最大ストローク数は「2」となる。入力されたストローク数が最大ストローク数であると判定された場合(ステップS214でYES)には、ステップS212に進む。一方、入力ストローク数が最大ストローク数ではないと判定された場合(ステップS214でNO)には、ステップS215に進む。
ステップS215では、特定部122が、入力待ちタイマーを起動する。入力待ちタイマーとは、入力位置がリリースされてから(取得部121が直前に「RELEASE」イベントを取得してから)の経過時間が、所定時間の長さに至るまでを計測する処理である。入力待ちタイマーの処理は、ユーザが2つ以上のストロークから構成される形状の手書き図形を描こうとしている可能性を考慮するために実行される。つまり、1画目のストロークを描き終わった後、続くストロークが描き込まれる可能性がある期間の間は、手描き図形によるコマンドの入力がなされたかの判断を保留する。タイマーで計測する所定時間とは、入力位置がリリースされてから次の入力位置の入力を待つ時間である。その長さは、ユーザがタッチ点をリリースした後、連続して次のタッチ点を入力できることと、リリース後の次の処理の待ち時間を考慮して、適当な値が予め設定される。例えば1秒とする。
ステップS216では、取得部121が、タッチセンサから新たな入力位置の情報が通知されたかを判定する。具体的には、「TOUCH」イベントとともに新たな入力位置の座標情報が得られたかを判定する。タッチセンサから新たな入力位置の情報が通知されたと判定された場合(ステップS216でYES)、ステップS218で特定部122が入力待ちタイマーを停止し、ステップS201に戻って、以降の処理が続く。一方、タッチセンサから新たな入力位置の情報が通知されない場合(ステップS216でNO)、ステップS217に進む。
ステップS217では、入力待ちタイマーが満了したかを判定する。すなわち、リリース後に、続くストロークが描き込まれる可能性がある時間が経過したかが判定される。入力待ちタイマーが満了したと判定された場合(ステップS217でYES)にはステップS212に進む。この場合、次のストロークが入力される可能性は低いと考えられるため、手描き図形の入力はキャンセルされたとみなされ、ステップS212においてスクロール表示の抑制を解除する。一方、入力待ちタイマーが満了していないと判定された場合(ステップS217でNO)には、ステップS216に戻る。
ところで、ステップS202にて長押し操作が検出されず、かつ、ステップS205の判断で入力位置がリリースされていない間は、ステップS219において、表示制御部126が、入力位置の座標変化に応じたスクロール表示を実行する。本実施形態では、スクロール制御部125が、入力位置の座標の変化量が所定の距離よりも大きい場合に、入力位置が移動されたとみなし、当該移動量に合わせて表示している画像をスライド移動させる移動量を表示制御部126に通知する。所定の距離は、例えばd3[dot]とする。
ステップS219において表示制御部126は、画像が移動した状態で表示される画像の描画用データを生成し、タッチパネルディスプレイ115に出力して、処理を終了する。ただし、表示制御部126は、スクロール制御部125によってスクロール表示が抑制されている間は、画像の移動量の指示を受信しないため、タッチパネルディスプレイ115への描画データの出力を行わずに処理を終了する。このように、ステップS203でスクロール表示が抑制された状態にあれば、例え入力位置が移動されていても、該移動はスクロール操作としては無効となり、表示画面で画像の移動は行われない。スクロール表示が抑制されていて、かつ、入力位置がリリースされずに移動している場合、ステップS201・ステップS205・ステップS219の処理が繰り返され、取得された入力位置に関する情報はRAM114に蓄積される。そして、入力位置がリリースされたことに応じて、ステップS205からステップS206に処理が進み、RAM114に蓄積されている入力位置の軌跡をもとに、形状の認識処理が実行される。
以上が、第1の実施形態において、タッチされた入力位置の移動が、スクロール操作を意図したものか、ジェスチャ操作を意図したものか区別して認識する処理の一例である。本実施形態では、取得される入力位置の情報に基づいて、長押し操作を検出したことに応じて、スクロール表示を抑制し、その後で入力される一連の入力位置を、ジェスチャ操作を意図して入力された手書き図形の認識処理の対象と特定する。
<第1の実施形態の操作例>
第1の実施形態による情報処理装置100に対して、ユーザがスクロール操作を入力する場合の操作例を、図5を参照して説明する。図5(a)は、情報処理装置100の表示画面に、画像501が表示されている状態を示す。ユーザが指500によるタッチを開始したことで、入力位置502が取得される。次に、図5(b)では、指500が左下(X座標、Y座標ともに小さくなる方向)に移動され、入力位置503が検出された状態を示す。ただし、図5(a)の状態から図5(b)の状態に移行する間に、長押し操作はなされていない(ステップS202でNO)。指500はリリースされていない(ステップS203でNO)ので、情報処理装置100は、取得されたIDに基づいて、同一の入力位置が、入力位置502の座標から入力位置503の座標に移動したとみなす。本実施形態によれば、タッチ開始直後に長押し操作が入力されない場合、入力位置の移動は、スクロール表示に反映される(ステップS219)。従って図5(b)では、画像501が、入力位置の移動に追従して左方向にスクロールされ、右側から新たに画像504が出現している。
第1の実施形態による情報処理装置100に対して、ユーザがスクロール操作を入力する場合の操作例を、図5を参照して説明する。図5(a)は、情報処理装置100の表示画面に、画像501が表示されている状態を示す。ユーザが指500によるタッチを開始したことで、入力位置502が取得される。次に、図5(b)では、指500が左下(X座標、Y座標ともに小さくなる方向)に移動され、入力位置503が検出された状態を示す。ただし、図5(a)の状態から図5(b)の状態に移行する間に、長押し操作はなされていない(ステップS202でNO)。指500はリリースされていない(ステップS203でNO)ので、情報処理装置100は、取得されたIDに基づいて、同一の入力位置が、入力位置502の座標から入力位置503の座標に移動したとみなす。本実施形態によれば、タッチ開始直後に長押し操作が入力されない場合、入力位置の移動は、スクロール表示に反映される(ステップS219)。従って図5(b)では、画像501が、入力位置の移動に追従して左方向にスクロールされ、右側から新たに画像504が出現している。
なお、図5(b)では、入力位置がX軸方向にも移動したとしても、画像501のスクロール方向はY軸方向に限定される例を示した。ただし、入力位置の移動に追従して二次元のスクロール表示がなされてもよい。
次に、第1の実施形態による情報処理装置100に対して、ユーザが手書き図形を描くことによるジェスチャ操作を入力する場合の操作例を、図6及び図7を参照して説明する。図6(a)は、図5(a)と同一の状態を示すため、共通する要素には同一の番号を付している。図5(b)は、指500が、入力位置502に対して長押し操作を行った場合(ステップS202でYES)の、情報処理装置100の変化を示す。図6(b)では、情報処理装置100が長押し操作を認識したことに応じて、入力位置の移動による画面のスクロール表示が抑制され(ステップS203)、表示画面には灰色領域が表示される(ステップS204)。ユーザは、画面が灰色になったことを視認することで、手描き図形の入力が可能になったことを認識しやすくなる。このとき、灰色領域の透過度を調節することで、ユーザは、ジェスチャ操作の対象となる画像を、十分に認識することができる。この時、情報処理装置100では、灰色領域を表示する前に表示されていた表示画面の描画データは保持しておき、ジェスチャ入力がキャンセルされた場合には速やかに元の表示状態に戻す処理を行う。
図6(c)は、ユーザの指500が移動し、入力位置503が取得された状態を示す。ここで入力位置503は、図5(b)に示した座標と同一であるとする。しかし、図5(b)では、入力位置の移動に追従して画像501がスクロール表示されたのに対し、図6(c)では、スクロールが抑制されているので、画像501は移動されない。なお、ここでは、移動された入力位置の軌跡を示す線を表示するなどの処理を加えてもよい。その場合、ユーザは情報処理装置100に認識されている軌跡の形状を把握しながら、ジェスチャ操作の入力を行うことができる。
ここで、図7を参照して、ユーザがタッチ状態で手書き図形を描いてから指を離した(リリースした)後で、ステップS206で実行される軌跡の形状の認識処理について具体例を説明する。図7(a)及び図7(d)は、それぞれ、長押し操作の後に情報処理装置100で取得される一連の入力位置の軌跡を示す。タッチが開始された後、長押し操作中に取得された入力位置は除外して、長押し操作の後で取得された入力位置の移動軌跡が示されている。図7(a)はサンカク、図7(d)はバツの形状の手書き図形が入力された場合に対応する。それぞれ白い丸で示す点は、リリースが検出された入力位置であり、1つのストロークの中で最後に取得された入力位置を意味する。
図7(a)は、ユーザがサンカクの手書き図形を入力した状態を示す。取得された一連の入力位置は、p1からp7の7点である。p1が、タッチが開始された後、長押し操作中に取得された入力位置は除外して、長押し操作の後で取得された入力位置となり、入力された順に入力位置の情報が追加され、軌跡を構成する。なお、入力位置の検出周期やディスプレイの大きさによっては、7点より多くの入力位置が取得され、それらによって軌跡が描かれる場合もある。その場合にも本実施形態では、入力位置のリリース後に7点の入力位置を特定してストロークを7つに分割する。本実施形態では、認識処理に用いる軌跡の分割数は、辞書124に登録されたストロークの形状を構成している座標点の数に一致させるものとする。つまり、本実施形態の辞書124には、7つの座標点によって構成されるモデルが、コマンドに対応する手描き図形の形状として登録されているものとする。ここで、図7(b)・(c)は、サンカクの形状情報として辞書124に登録されているモデルの例を示し、図7(e)・(f)は、バツの形状情報として辞書124に登録されているモデルの例を示す。
ステップS206では、図7(a)・(d)の示すような入力と、図7(b)・(c)・(e)・(f)に示すように辞書124情報に基づいて、入力位置の移動軌跡の形状を認識する処理が行われる。具体的には、ユーザにより入力された入力位置の移動軌跡と、予め登録されているモデルの形状を比較し、形状が一致するとみなされるものを特定する。辞書124に登録されている軌跡の情報は、入力順が定められた複数の座標で構成される。図7(b)・(c)のサンカクは、1つのストロークで構成され、図7(e)・(f)のバツは2つのストロークで構成される。同じ形状の図形であっても、入力順が異なる場合に対応する複数のモデルを辞書124に記憶しておくことで、ユーザが異なる書き順でストロークを描いた場合でも、同一の形状であると認識することができる。図7(b)・(c)は書き順が異なるサンカクの軌跡のモデル、図7(e)・(f)は書き順が異なるバツの軌跡のモデルを示す。軌跡の形状比較の計算方法としては、まず、入力された手書き図形を構成する入力位置の座標と、辞書124に登録された図形を構成する座標のうち、入力順が一致する点同士の間の距離を計算する。入力の開始点からリリース点までの全ての点について距離の計算を行い、計算結果として得られる距離を積算した値を、入力された軌跡と辞書124情報との形状の差異の大きさを示す値として用いる。例えば、図7(a)のp1と図7(b)のP1の距離を計算し、同様の距離計算を順に7つの座標について実行し、計算結果の合計を形状の差異の大きさとする。よって、得られた値が小さいほど形状が似ていることになる。本実施形態では、この積算値が、予め設定された閾値以下の場合、ユーザが入力した手書き図形の形状と、計算対象となったモデルの形状が一致するとみなされる。図7(a)の入力に対しては、図7(b)のサンカクの形状が、入力された手書き図形の認識結果として特定される。更に辞書124には、サンカクの手書き図形に対して、複数のサムネイル画像の一覧画面への画面遷移を指示するコマンドが対応づけられている。よって認識処理後、画面遷移が実行される(ステップS213)。それとともに、表示されている灰色領域を消し、スクロール表示の抑制を解除される(ステップS212)。
図7(d)は、ユーザが、手書き図形としてバツの形状を構成する2つのストロークを入力した状態を示す。バツの一画目のストロークを構成する入力位置がp1からp3、2画目のストロークを構成する入力位置がp4からp6となる。p3で一度入力位置がリリースされた後で、p4からp6が入力され、再びリリースされる。リリースが検出される度に、ステップS206の認識処理は実行される。本実施形態では、辞書124の中に、p1からp3までの直線形状に一致するモデルは登録されていない。従って、p3のリリース点が検出された時は入力されたストロークに対応するコマンドはない(ステップS207でNO)。さらに、入力されたストローク数が辞書124の最大ストローク数の「2」ではないので(ステップS214でNO)、リリース後の経過時間の長さがタイマー処理で判断される。1秒以内に入力位置p4が検出された場合(ステップS216でYES)、引き続き入力位置の移動軌跡の座標が蓄積され、p6のリリース点が検出された時点で再び形状の認識処理が実行される。
手書き図形の認識結果としては、図7(e)のバツの形状が特定される。本実施形態の辞書124では、バツには、その時点で表示されている操作対象の画像の削除機能の呼び出しコマンドと、コマンドに応じて表示するGUI画面の情報が関連付けられている。よって、認識処理が終わると、灰色領域の表示を消し、画像の削除を実行するかの確認画面が表示される(ステップS209)。確認画面で受け付けたユーザ操作に応じた処理が実行され(ステップS211)、スクロール表示の抑制が解除され(ステップS212)、状況に応じた表示内容の変更が行われる。例えば、GUI画面の操作によって、削除処理の実行が指示された場合、画像データがHDDから削除され、削除された画像の前もしくは後の画像が表示される。削除処理のキャンセルが指示された場合、スクロールの抑制が解除されたら元の表示状態に戻る。このように、回復が容易でないような処理を実行する場合は、確認画面を表示することで、ユーザ操作の重大な誤りを回避することができる。例えば、ユーザが意図する操作のために手書き図形の形状を誤って記憶していた場合でも、誤操作を低減できる。
<変形例>
上述した図2のフローチャートの処理では、スクロール表示を抑制する第1の条件として、長押し操作が入力されたことを例示したが、ここで判断する条件は長押しに限定されない。例えば、長押しの代わりに、タップ、連続タップ、マルチタッチを適用してもよい。タップ操作とは、検出された入力位置が所定の範囲内から動かず、所定の時間内に検出されなくなった時に認識される操作である。
上述した図2のフローチャートの処理では、スクロール表示を抑制する第1の条件として、長押し操作が入力されたことを例示したが、ここで判断する条件は長押しに限定されない。例えば、長押しの代わりに、タップ、連続タップ、マルチタッチを適用してもよい。タップ操作とは、検出された入力位置が所定の範囲内から動かず、所定の時間内に検出されなくなった時に認識される操作である。
連続ダブルタップ操作とは、所定の時間内にタップ操作が連続して2回以上行わる操作である。マルチタッチ操作とは、2点以上の入力位置が同時に検出される操作である。連続タップ操作の一例として、2回連続でタップ操作が入力されるダブルタップについて、図3(b)と図4(b)を用いて説明する。図3(b)はダブルタップ操作中に取得される一連の入力位置を示し、黒丸がタッチされた入力位置で、白丸はタッチがリリースされたリリース点である。図4(b)は、ダブルタップ操作中に入力位置が取得されるタイミングを示すチャートである。ダブルタップ操作を検出する場合は、t3−t2の時間の長さに閾値処理を行い、所定の時間に収まるほど短い間隔で2回連続のタップ操作が行われたことが判定された場合、p3が取得された時点でダブルタップがなされたと判定される。スクロール表示を抑制する条件を連続タップとする場合は、図2のS203を連続タップの検出処理に変更すればよい。
マルチタッチとは、2点以上の入力位置が略同時に取得される操作である。ただし、2点のマルチタッチによる操作は、画像の拡大や回転等の操作に割り当てられることが多いため、手描き入力モードに移行しスクロール表示を抑制する条件は、3点以上での入力とすることで区別できる。一例として、3点のマルチタッチ入力が認識される状態を、図3(c)と図4(c)を用いて説明する。図3(c)はマルチタッチ操作の入力位置を示し、黒丸が入力位置で、白丸はリリース点である。図4(c)は図3(c)に対応するタイミングチャートである。本実施形態では、マルチタッチされた状態でも、タッチセンサからは入力位置の情報が1点ずつ通知されるため、時刻t3においてマルチタッチであることが認識され、スクロール表示の抑制が実行される。その後、手描き図形として認識するのは、検出されている複数の入力位置のどれか1つ、もしくは複数の入力位置の中点や重心点の座標の移動軌跡とする。なお、検出されている複数の入力位置のどれか1つを追跡して移動軌跡を認識する場合には、ステップS204で灰色領域が表示され、手描き入力モードに移行した後で、入力位置の数が1つに減ったことを検出するステップを加える。例えば、図3(c)のように3点の入力位置によるマルチタッチが、手描き入力を開始するトリガーとなった場合、2点分のリリースを検出し、リリースされた入力位置の座標情報はRAM114に保持する軌跡から削除する。そして残った1点の座標を蓄積し、リリースを検出したことに応じて移動軌跡の形状を認識する。
本実施形態では、このようにタッチ開始直後に取得される少なくとも1以上の入力位置の情報が、第1の条件を満たす場合に、スクロール表示を抑制することで、スクロール操作とジェスチャ操作を容易に切換えて入力可能な環境を提供する。第1の条件は、入力位置の座標以外の情報(例えば、入力の継続時間、連続回数、数など)によって規定される条件である。いずれの条件を用いるかは、情報処理装置100が受付可能なタッチ操作に応じて選択されればよい。例えば、長押し操作に個別のコマンドが割り当てられる場合には、タップなど別の条件を選択することで、スクロール操作とジェスチャ操作を容易に切り替えて入力可能な環境を提供することができる。
また、上述したステップS202では、タッチ開始直後に長押し操作が入力されたかを判定したが、タイミングをタッチ直後に限定せず、長押し操作が入力されたかを判定するように変形してもよい。つまり、入力位置が所定の距離以上移動した後に行われる長押し操作を検出して、スクロール表示を抑制してもよい。ただし、この場合には、タッチ開始直後から長押し操作が行われるまでの入力位置の座標情報をクリアして、その後に行われるジェスチャ操作の認識処理の対象からは除外する。つまり、ジェスチャ操作としての移動軌跡の形状の認識は、長押し操作の後に続く移動軌跡に限定される。また、入力位置が所定の距離以上移動した後に行われる長押し操作は、タッチ開始直後の長押し操作とは、継続時間の長さの条件を変更してもよい。具体的には、より長い時間、入力位置が所定の範囲内に留まっていることを長押し操作が入力されたことを判定する条件とする。上記のように、長押しの継続時間の条件を長く設定することで、画面スクロール操作との操作の干渉を低減しつつ、長押し操作の操作効率を向上することができる。
なお、上述した所定の実施形態では、スクロール表示を抑制した場合、手描き図形の入力を受け付けることを示すために灰色領域を表示するとしたが、これに限らない。灰色以外の色の領域を用いても良いし、また色に限定せず表示画面の濃淡や明るさを変更してもよい。また、ボタン等の表示アイテムを非表示としたり、入力できるジェスチャ形状のガイダンスを表示したりすることによっても、ユーザに手描き図形の入力が可能であることを示すことができる。
<第2の実施形態>
第1の実施形態では、長押し操作を検出したことに応じて手描き図形の入力を受け付ける状態へ移行し、その後入力位置のリリースを検出したことに応じて、長押し操作後に取得した入力位置の軌跡の形状を認識した。つまり、長押し操作の後、ユーザが入力位置をリリースすることなく、手描き図形の入力を開始することを前提としていた。そのため、形状を認識する移動軌跡の開始点は、常に長押し操作が入力された位置に一致していた。それに対し、第2の実施形態では、長押し操作に応じてスクロール表示が抑制され、手書き図形の入力が可能となった後で取得される入力位置の1以上のストロークから、第2の条件を用いて形状を認識すべきストロークを限定する処理を加える例を説明する。第2の条件とは、第1の条件とは異なる条件で、既に入力された入力位置の軌跡の状態に関して規定される条件である。本実施形態では、具体的には、1画目のストロークが、形状認識の対象とすべきストロークかを判断するため、1画目のストロークの長さに注目する。これにより、長押し操作が情報処理装置100に認識された時点でユーザが一度表示画面から手を離し、改めてストロークを入力し始める場合にも、ユーザの意図に沿った手描き図形の認識を行うことが可能となる。
第1の実施形態では、長押し操作を検出したことに応じて手描き図形の入力を受け付ける状態へ移行し、その後入力位置のリリースを検出したことに応じて、長押し操作後に取得した入力位置の軌跡の形状を認識した。つまり、長押し操作の後、ユーザが入力位置をリリースすることなく、手描き図形の入力を開始することを前提としていた。そのため、形状を認識する移動軌跡の開始点は、常に長押し操作が入力された位置に一致していた。それに対し、第2の実施形態では、長押し操作に応じてスクロール表示が抑制され、手書き図形の入力が可能となった後で取得される入力位置の1以上のストロークから、第2の条件を用いて形状を認識すべきストロークを限定する処理を加える例を説明する。第2の条件とは、第1の条件とは異なる条件で、既に入力された入力位置の軌跡の状態に関して規定される条件である。本実施形態では、具体的には、1画目のストロークが、形状認識の対象とすべきストロークかを判断するため、1画目のストロークの長さに注目する。これにより、長押し操作が情報処理装置100に認識された時点でユーザが一度表示画面から手を離し、改めてストロークを入力し始める場合にも、ユーザの意図に沿った手描き図形の認識を行うことが可能となる。
本実施形態に係る情報処理装置100の外観及び構成は、図1を参照して説明した第1の実施形態と同一であるため、詳細な説明を省略する。ただし、第2の実施形態の特定部122は、長押し操作の後で取得される入力位置が構成するストロークのうち、1画目のストロークを、形状を認識する処理の対象とするかを判断した上で、認識処理を実行する。具体的には、1画目のストロークが、手書き図形の一部を構成するストロークとしては短すぎる場合は、当該ストロークを構成する入力位置は、手書き図形を構成する入力位置の候補とはならないとみなし、形状を認識する処理の対象から除外する。第2の実施形態の辞書124にも、少なくとも第1の実施形態で例示したサンカク、バツ、マルの形状のストロークが記憶されているものとする。
本実施形態では、図8のフローチャートに従って、タッチ操作を認識する処理が実行される。第1の実施形態で説明した図2のフローチャートと共通するステップには同じ番号を付し、詳細な説明は省略する。図2のフローチャートとの異なる点は、ステップS205において入力位置のリリースが検出された場合(ステップS205でYES)、ステップS801に進み、ジェスチャ操作の認識処理が実行されることである。
図9(a)は、第2の実施形態において、ステップS801において実行されるジェスチャ操作の認識処理の詳細を示すフローチャートである。ステップS901では、特定部122が、長押し操作以降に入力された入力位置の軌跡のうち、1画目に当たるストロークの長さが、所定の長さより短いかを判定する。ここでの所定の長さとは、辞書124に手描き図形として記憶されているストロークのうち、最も短いストロークの長さに合わせて設定される長さの閾値である。1画目のストロークが所定の長さより短いと判定された場合(ステップS901でYES)には、ステップS902に進む。一方、1画目のストロークが所定の長さより短くないと判定された場合(ステップS901でNO)には、ステップS903に進む。ステップS902では、閾値として設定された長さよりも短い1画目のストロークは、手描き図形のストロークを構成するために入力されたものではないとみなし、軌跡形状の認識対象から除外する。例えば、RAM114から情報を削除する。あるいは、認識対象ではないことを示す属性情報を関連づけて保持する。ステップS903では、特定部122が、RAM114に記憶された入力位置の情報のうち、ステップS902で除外されていない残りの入力位置の情報を対象として、軌跡形状の認識処理を実行する。認識処理は、第1の実施形態において説明した処理(図2のフローチャートのステップS206)と同じであるので、詳細な説明は省略する。認識処理が完了すると、図8のフローチャートの処理に戻り、ステップS207に進む。
<第2の実施形態の操作例>
ここで、図11(a)・(b)及び図12(a)・(b)を参照して、第2の実施形態に係る情報処理装置100に、ユーザがジェスチャ操作を入力する操作例を説明する。まず、ユーザが、長押し操作の後、タッチをリリースせずにサンカクの手書き図形を入力する場合と、長押し操作の後一旦タッチをリリースしてから、改めてサンカクの手書き図形を入力する場合とを比較して説明する。
ここで、図11(a)・(b)及び図12(a)・(b)を参照して、第2の実施形態に係る情報処理装置100に、ユーザがジェスチャ操作を入力する操作例を説明する。まず、ユーザが、長押し操作の後、タッチをリリースせずにサンカクの手書き図形を入力する場合と、長押し操作の後一旦タッチをリリースしてから、改めてサンカクの手書き図形を入力する場合とを比較して説明する。
ユーザが、長押し操作の後、タッチをリリースせずにサンカクの手書き図形を入力する場合を、操作例Aとして説明する。図11(a)は、長押し操作の後で、タッチをリリースせずにサンカクの手書き図形を入力する場合に取得される一連の入力位置p1〜p7を表す。また、図12(a)は図11(a)に対応するタイミングチャートで、入力位置p1〜p7のそれぞれが取得されたタイミングを表す。まずp1〜p6については、入力位置に関する情報が取得されると(ステップS201)、既に長押しが入力済みであり、今回は長押しが検出されないため(ステップS202でNO)、リリースはされていない(ステップS205でNO)ので、無効とされているスクロール表示は実行されず終了する。これが繰り返される。t7の時点でp7の情報が取得されると、リリースが検出されるので(ステップS205でYES)、ステップS801の認識処理が実行される。操作例Aの場合、p1からp7で構成される1画目のストロークは、十分に長いので(ステップS901でNO)、辞書124を使った形状の認識処理が実行され(ステップS903)、サンカクのストロークが特定される。以降は第1の実施形態と同様で、サンカクの形状のストロークに対応付けられたコマンド(複数のサムネイル画像の一覧画面への遷移)が実行される。
次に、ユーザが、長押し操作の後、一旦タッチをリリースして、改めてサンカクの手書き図形を入力する場合を、操作例Bとして説明する。図11(b)は、タッチを一旦リリースしてからサンカクの手書き図形を入力する場合に取得される一連の入力位置p1〜p9を表す。また、図12(b)は図11(b)に対応するタイミングチャートで、入力位置p1〜p9のそれぞれが取得されたタイミングを表す。操作例Bでは、p1とp2で構成されるのが1画目のストローク、p3からp9で構成されるのが2画目のストロークである。ここで1画目のストロークは、手描き図形を描くことを意図したものではなく、極短いとする。以降、先に説明した操作例と重複した処理については詳細を省略しながら説明する。
操作例Bでは、まず1画目のストロークについて、t2においてp2のリリース情報が取得されると(ステップS205でYES)、ステップS801の認識処理が実行される。p1からp2の長さは、閾値より短い(ステップS901でYES)。従って、p1とp2は形状を認識する対象から除外され(ステップS902)、この時点では、認識処理の対象となる軌跡が保持されていないことになる。従って、認識処理(ステップS903)の結果、特定されるストロークはない(ステップS207でNO)。この時点でのストローク数は「1」で、最大ストローク数ではない(ステップS214でNO)。入力待ちタイマーが満了する前に、p3が取得されることで、タイマーは停止され(ステップS218)、p3に対して処理が開始される。p3からp8が取得される間は、ストロークの形状は特定されず、スクロール表示も抑制されたまま、入力位置の情報が蓄積される。そして、t9においてp9のリリースが検出されたとき(ステップS205でYES)、ステップS801の認識処理が実行される。p3からp9の長さは、閾値より長い(ステップS901でNO)ので、形状を認識する処理が実行され(ステップS903)、サンカクのストロークが特定される。そして、サンカクに対応付けられたコマンド(複数のサムネイル画像の一覧画面への遷移)が実行される。
このように、第2の実施形態によれば、手書き図形の入力が可能となった後で、ユーザがタッチをリリースせずにストロークの入力を開始した場合も、一旦タッチをリリースしてから入力を開始した場合でも、適切な入力位置を対象とした認識処理が可能となる。本実施形態では、長押し操作を取得した時点で、スクロール表示を抑制すると同時に、灰色領域を表示することで、ユーザに対して手描き入力が可能になったことを明示する。ユーザは、画面の内容に大きな変化があった時点で、無意識に手を離すこともある。第2の実施形態によれば、そのような場合でも、再び長押し操作を行う必要はなく、自然に操作を継続できるようになる。
以上説明したように、第2の実施形態によれば、入力された複数のストロークのうち、ユーザが手描き図形として意図したストロークを特定して認識処理を行うことが可能となるので、より多様な手描き図形を認識することが可能となる。なお、第2の実施形態に対しても、第1の実施形態と同様の変形を適用できる。
<第3の実施形態>
第2の実施形態では、長押し操作の後で取得される入力位置の1以上のストロークから、形状を認識すべきストロークを選択する際に、1画目のストロークが短いことを、形状認識の対象から除外する第2の条件とした。それに対し、第3の実施形態では、1画目に短いストロークを含む形状が辞書124に登録されている可能性も考慮した第2の条件によって除外の可否を判定することで、更に多様な形状の手描き図形を認識可能とする。
第2の実施形態では、長押し操作の後で取得される入力位置の1以上のストロークから、形状を認識すべきストロークを選択する際に、1画目のストロークが短いことを、形状認識の対象から除外する第2の条件とした。それに対し、第3の実施形態では、1画目に短いストロークを含む形状が辞書124に登録されている可能性も考慮した第2の条件によって除外の可否を判定することで、更に多様な形状の手描き図形を認識可能とする。
本実施形態に係る情報処理装置100の外観及び構成は、図1を参照して説明した第1・第2の実施形態と同一であるため、詳細な説明を省略する。ただし、第3の実施形態の特定部122は、長押し操作の後で取得される入力位置が構成するストロークのうち、1画目のストロークも一旦は、形状認識処理の対象とする。そして、一旦は認識部123による認識処理を実行し、その結果とストロークの長さに基づいて、更に形状を認識する処理の対象とするストロークを最終決定する。具体的には、1画目のストロークが、辞書124に記憶された1画目のストロークの形状のいずれとも一致せず、かつ、手書き図形の一部を構成するストロークとしては短すぎる場合は、当該ストロークを構成する入力位置は図形を構成する候補ではないとみなす。従って、当該入力位置の情報を形状認識処理の対象から除外する。第3の実施形態の辞書124には、第1の実施形態及び第2の実施形態で例示したサンカク、バツ、マルの形状のストロークに加えて、数字やアルファベットや日本語のひらがなやカタカナなど、文字の形のストロークも登録されているとする。文字のストロークには、当該文字をテキスト入力するというコマンドが対応している。ただし、第3の実施形態の辞書124には、コマンドに対応する手描き図形のそれぞれについて、ストローク毎に形状認識処理が可能なように、ストローク毎に形状情報が管理されている。なお、本実施形態は、登録される文字に、j、う、え、ふ、ら、と、ウ、シ、ソ、ツ、ネ、ミ、ン、チ、ワなど、1画目に入力されるストロークが比較的短い文字が含まれる場合に特に有効に利用できる。
本実施形態も、第2の実施形態と同様、図8のフローチャートに従って、タッチ操作を認識する処理が実行される。ただし、第2の実施形態とは異なり、ステップS801では、図9(b)のフローチャートに従って、ジェスチャ操作の認識処理が実行される。
図9(b)のフローチャートの処理では、まず、ステップS911において、認識部123が、保持部124に保持された入力位置に関する情報に基づいて、入力済みのストローク毎に、形状認識処理を実行する。形状認識処理は、第1の実施形態で説明したように、座標から入力ストロークと辞書124のモデルとの差異の大きさを算出することによって行う。ステップS912では、認識部123が、ステップS911で実行した認識処理の結果、一致する辞書124データがあるか否かを判定する。具体的には、辞書124情報の中に、入力済みのストロークのそれぞれの形状が、辞書124に登録された1つの辞書124データ(例えば1つの図形、1つの文字を示すデータ)の各ストロークの形状と一致するか否かを判定する。該当する辞書124データがある場合(ステップS912でYES)には、図9(b)の処理を終了する。一方、該当する辞書124データがない場合(ステップS912でNO)には、ステップS913に進む。
ステップS913では、特定部122が、長押し操作以降に入力された入力位置の軌跡のうち、1画目に当たる軌跡の長さが、所定の長さより短いかを判定する。この処理は、第2の実施形態のステップS901の処理と同じである。1画目のストロークが所定の長さより短いと判定された場合(ステップS913でYES)には、ステップS914に進む。一方、1画目のストロークが所定の長さより短くないと判定された場合(ステップS913でNO)には、図8のフローチャートのステップS207に進む。ステップS914では、特定部122が、1画目のストロークを軌跡形状の認識対象から除外する。具体的には、除外された部分の入力位置の情報がRAM114から情報が削除される、あるいは、除外されたことを示す属性情報が付与される。ステップS915では、認識部123が、RAM114に記憶された入力位置の情報のうち、ステップS914で除外されていない入力位置の情報を対象として、軌跡形状の認識処理を実行する。認識処理は、第1の実施形態において説明した処理と同じである。認識処理が完了すると、図8のフローチャートの処理に戻り、ステップS207に進む。以降の処理は、第1及び第2の実施形態と同じである。
<第3の実施形態の操作例>
ここで、図11(c)・(d)及び図12(c)・(d)を参照して、第3の実施形態に係る情報処理装置100に、ユーザがジェスチャ操作を入力する操作例を説明する。まず、ユーザが、長押し操作の後、タッチをリリースせずにアルファベットの「i」の軌跡を入力する場合と、長押し操作の後一旦タッチをリリースしてから、改めて「i」の軌跡を入力する場合とを比較して説明する。情報処理装置100の辞書124には、「i」の形状情報が記憶されているとする。
ここで、図11(c)・(d)及び図12(c)・(d)を参照して、第3の実施形態に係る情報処理装置100に、ユーザがジェスチャ操作を入力する操作例を説明する。まず、ユーザが、長押し操作の後、タッチをリリースせずにアルファベットの「i」の軌跡を入力する場合と、長押し操作の後一旦タッチをリリースしてから、改めて「i」の軌跡を入力する場合とを比較して説明する。情報処理装置100の辞書124には、「i」の形状情報が記憶されているとする。
ユーザが、長押し操作の後、タッチをリリースせずに「i」の軌跡を入力する場合を、操作例Cとして説明する。図11(c)は、長押し操作の後で、タッチをリリースせずに「i」の軌跡を入力する場合に取得される一連の入力位置p1〜p5を表す。また、図12(c)は図11(c)に対応するタイミングチャートで、入力位置p1〜p5のそれぞれが取得されたタイミングを表す。操作例Cでは、p1とp2で構成されるのが1画目のストローク、p3からp5で構成されるのが2画目のストロークである。ここで1画目のストロークは、手描き図形を描くことを意図したものであるが、「i」の点を表すものであり、ストロークの長さは閾値よりも短いとする。以降、先に説明した操作例と重複した処理については詳細を省略しながら説明する。
操作例Cでは、まず1画目のストロークについて、t2においてp2のリリースが検出されたとき(ステップS205でYES)、ステップS801の認識処理が実行される。この段階では、辞書124に記憶されている形状情報の各1画目のストロークと、p1とp2で構成されるのが1画目のストロークの形状が一致しているか否かが判定される。ここで、少なくとも「i」の1画目のストロークの形状が対応するので(ステップS912でYES)、1画目のストロークを除外することはせず、ステップS207に進む。この段階では、「i」の1画目に一致したのみであり、手描き図形に対応する「i」が入力されたかは未確定であるので、入力されたストロークに対応するコマンドはない(ステップS207でNO)と判定される。さらに、ストローク数は最大数の2ではないので(ステップS214でNO)入力タイマーが完了するまでに、入力位置p3が取得されたことに応じて、再び一連の処理が開始される。
2画目のストロークについては、t5でp5のリリースが検出されたとき(ステップS205でYES)、ステップS801の認識処理が実行される。1画目、2画目それぞれのストロークについて形状の認識処理が行われ(ステップS911)、1画目と2画目の両方の形状が一致する「i」のストロークが特定される(ステップS912でYES)。ステップS207では、例えばアルファベットの「i]を入力するというコマンドが特定され、以降、例えば「i」の活字を表示する処理や、あるいは「i」の入力に対応付けられた画面遷移などの処理が実行される。
次に、ユーザが、長押し操作の入力後、一旦タッチをリリースして、改めて「i」の軌跡を入力する場合を、操作例Dとして説明する。図11(d)は、タッチを一旦リリースしてから「i」の軌跡を入力する場合に取得される一連の入力位置p1〜p7を表す。また、図12(d)は図11(d)に対応するタイミングチャートで、入力位置p1〜p7のそれぞれが取得されたタイミングを表す。操作例Dでは、p1とp2で構成されるのが1画目のストローク、p3とp4で構成されるのが2画目のストローク、p5からp7で構成されるのが3画目のストロークである。ここで1画目のストロークは、手描き図形を描くことを意図したものではなく、極短いとする。2画目及び3画目のストロークが「i」を手描きすることを意図して入力されたものである。以降、先に説明した操作例と重複した処理については詳細を省略しながら説明する。
操作例Dにおいて、まず1画目のストロークに対する処理は、操作例Cと同一である。1画目のストロークは短いが、辞書124のうち少なくとも[i]の1画目と形状が一致するため、p3の入力を待って処理が繰り返される。2画目のストロークに関しては、t4でp4のリリースが検知されたことに応じて、ステップS801の認識処理が実行される。第3の実施形態の辞書124には、1画目と2画目の両方が短い辞書124データは記憶されていない。入力に一致する辞書124データがなく(ステップS912でNO)、1画目のストロークが閾値よりも短い(ステップS913でYES)ことから、1画目のストロークが形状の認識処理の対象から除外される(ステップS914)。これにより、入力されたストロークのうち、除外されていない入力位置p3とp4が構成するストロークが、形状を認識すべきストロークの1画目として新たに認識処理の対象となる。ステップS915で再度認識処理が行われると、少なくとも「i」の1画目の形状が一致するが、この時点ではコマンドは特定されない(ステップS207でNO)。入力タイマーが満了するまでに入力位置p5が取得されることに応じて、再び処理が開始される。
最後のストロークについては、t7でp7のリリースが検出された時点で、認識処理が実行される。除外されていないp3からp4の軌跡を1画目、p5からp7の軌跡を2画目とした認識処理(ステップS911)によって、「i」のストロークが特定される。ステップS207では、例えばアルファベットの「i」を入力するというコマンドが特定され、以降、例えば「i」の活字を表示する処理や、あるいは「i」の入力に対応付けられた画面遷移などの処理が実行される。
以上説明したように、第3の実施形態によれば、短いストロークであっても、ユーザが手描き図形として意図したかを判断して認識処理を行うことが可能となるので、より多様な手描き図形を認識することが可能となる。なお、第3の実施形態に対しても、第1及び第2の実施形態と同様の変形を適用できる。
<第4の実施形態>
第2の実施形態、及び第3の実施形態は、ユーザが、手描き入力画面が表示された段階で、一旦タッチをリリースして改めて入力を開始する場合に対応するために、1画目のストロークの全体を、形状を認識する処理の対象とすべきかを判定した。第4の実施形態ではさらに、ユーザがリリースはせず、入力位置をスライドさせてストロークを描き始める可能性を考慮した第2の条件によって、1画目のストロークのうちどこからが手描き図形を意図して入力された部分かを特定する例を説明する。
第2の実施形態、及び第3の実施形態は、ユーザが、手描き入力画面が表示された段階で、一旦タッチをリリースして改めて入力を開始する場合に対応するために、1画目のストロークの全体を、形状を認識する処理の対象とすべきかを判定した。第4の実施形態ではさらに、ユーザがリリースはせず、入力位置をスライドさせてストロークを描き始める可能性を考慮した第2の条件によって、1画目のストロークのうちどこからが手描き図形を意図して入力された部分かを特定する例を説明する。
本実施形態に係る情報処理装置100の外観及び構成は、図1を参照して説明した他の実施形態と同一であるため、詳細な説明を省略する。ただし、第4の実施形態の特定部122は、入力されたストロークが辞書124に登録されたストロークと一致しない場合、1画目のストロークの曲がり方に基づいて、1画目のストロークの一部を形状認識の対象から除外すべきかを判定する。具体的には、1画目のストロークの最初に、後続する軌跡と極端に角度が異なり、手書き図形を構成する要素としては短すぎる箇所がある場合は、その部分を手書き図形を構成する入力位置の候補とはならないとみなし、形状を認識する処理の対象から除外する。なお第4の実施形態の辞書124には、少なくとも、第1の実施形態及び第2の実施形態で例示したサンカク、バツ、マルの形状のストロークが登録されているとする。
本実施形態も、第2及び第3の実施形態と同様、図8のフローチャートに従って、タッチ操作を認識する処理が実行される。ただし、第2の実施形態とは異なり、ステップS801では、図10のフローチャートに従って、ジェスチャ操作の認識処理が実行される。図10のフローチャートでは、図9(b)と共通する処理ステップは同じ番号で示し、説明を省略する。
第4の実施形態では、ステップS913において、1画目に当たる軌跡の長さが、所定の長さより短くないと判定された場合(ステップS913でNO)には、ステップS1001に進む。ステップS1001では、認識部123が、1画目のストロークの最初が曲がっているか否かを判定する。例えば、1画目のストロークのうち、開始点から累積された長さが所定の長さまでの区間を構成する一連の入力位置について、連続する2つの入力位置を結ぶ直線とX軸とがなす角度を算出する。そして、角度の変化量が所定の角度の大きさよりも大きい場合に、1画目のストロークの最初が曲がっていると判定する。そして、前後で大きな角度変化が生じている入力位置を、書き出し位置として特定する。1画目のストロークの最初が曲がっていると判定された場合(ステップS1001でYES)、ステップS1002に進む。1画目のストロークの最初が曲がっていないと判定された場合(ステップS1001でNO)、図8のフローチャートの処理に戻る。
ステップS1002では、1画目のストロークについて、開始点から書き出し位置に至るまでの部分を、軌跡の形状認識処理の対象から除外する。具体的には、除外された部分の入力位置の情報がRAM114から情報が削除される、あるいは、除外されたことを示す属性情報が付与される。そして、ステップS915において、除外されていない残りの入力位置が構成するストロークに対して、認識処理が実行され、図8のフローチャートの処理に戻る。以降の処理は、これまで説明した実施形態と同じである。
なお、ステップS913の1画目のストローク全体の長さを判定する処理と、ステップS1001の1画目のストロークの曲がり方を判定する処理は、順序を入れ替えられても構わない。ただし、長押し操作を入力した位置と、手描き図形を書き始める位置を異ならせたい場合には、一旦タッチをリリースしてしまう方が、より負荷が低く無意識にも行われる可能性が高い。従って、1画目のストロークの長さを判定する処理を先に実行することで、より効率的な状況判断が可能となる。
また、第4の実施形態では、第3の実施形態に沿って1画目のストローク全体の長さを判定する処理に加えて、1画目のストロークの曲がり方を判定する処理を行う例を示したが、1画目のストロークの曲がり方を判定する処理を単独で実行しても構わない。またその際、一部を除外した1画目のストロークについて、再度ステップS1001の判定処理を行い、角度変化に基づいて1画目のストロークの最初の部分を処理対象から除外する処理を繰り返しても良い。これにより、手描き図形の書き始めまでに入力位置の移動が繰り返された場合でも、書き出し位置を特定することが可能となる。
<第4の実施形態の操作例>
ここで、図11(e)及び図12(e)を参照して、第4の実施形態に係る情報処理装置100に、ユーザがジェスチャ操作を入力する操作例Eを説明する。図11(e)は、例えばユーザが、画面の左寄りの位置で長押し操作を行い、タッチをリリースせずに指を中央部まで動かしてからサンカクの軌跡を入力する場合に取得される一連の入力位置p1〜p8を表す。また、図12(e)は図11(e)に対応するタイミングチャートで、入力位置p1〜p8のそれぞれが取得されたタイミングを表す。操作例Eでは、p1からp8の全てによって1画目のストロークが構成される。ただし、ユーザは、p1で長押し操作をした後で、手描き図形の書き出し位置をp2に移動させている。従って、ユーザの意図では、p2からp8が、手描き図形を構成する入力位置として入力された軌跡である。以降、先に説明した操作例と重複した処理については詳細を省略しながら説明する。
ここで、図11(e)及び図12(e)を参照して、第4の実施形態に係る情報処理装置100に、ユーザがジェスチャ操作を入力する操作例Eを説明する。図11(e)は、例えばユーザが、画面の左寄りの位置で長押し操作を行い、タッチをリリースせずに指を中央部まで動かしてからサンカクの軌跡を入力する場合に取得される一連の入力位置p1〜p8を表す。また、図12(e)は図11(e)に対応するタイミングチャートで、入力位置p1〜p8のそれぞれが取得されたタイミングを表す。操作例Eでは、p1からp8の全てによって1画目のストロークが構成される。ただし、ユーザは、p1で長押し操作をした後で、手描き図形の書き出し位置をp2に移動させている。従って、ユーザの意図では、p2からp8が、手描き図形を構成する入力位置として入力された軌跡である。以降、先に説明した操作例と重複した処理については詳細を省略しながら説明する。
操作例Eでは、t8でp8のリリースが取得されたとき(ステップS205でYES)、に1画目のストロークの入力が終了し、ステップS801の認識処理が実行される。この段階で、辞書124に記憶されている形状情報の各1画目のストロークと、p1からp8までの入力位置で構成されるストロークの形状が一致しているか否かが判定される。しかしながら、辞書124データとは一致せず(ステップS912でNO)、また、1画目のストロークは閾値の長さよりも長い(ステップS913でNO)。従って、ストロークの最初が曲がっているか否かが判定される(ステップS1001)。一例として、1画目のストロークについて、開始点から累積D2[dot]の中で、90[度]よりも小さい鋭角の部分が存在した場合に、ストロークの最初が曲がっていると判定されるとする。図11(e)の場合、p1とp2を通る直線と、p2とp3を通る直線が鋭角を成すので、ストロークの最初が曲がっていると判定される(ステップS1001でYes)。そこで、p2より前の部分が、形状の認識対象から除外され(ステップS1002)、形状認識処理が実行され(ステップS915)、サンカクのストロークが特定される。以降、サンカクの形状のストロークに対応付けられたコマンド(複数のサムネイル画像の一覧画面への遷移)が実行される。
以上説明したように、第4の実施形態によれば、1つのストロークの中でも、ユーザが手描き図形の入力を開始した書き出し位置を特定して認識処理を行うので、より多様な手描き入力方法に対応することが可能となる。なお、第4の実施形態に対しても、他の実施形態と同様の変形を適用できる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
121 取得部
122 特定部
123 認識部
124 辞書
125 スクロール制御部
126 表示制御部
127 受付部
122 特定部
123 認識部
124 辞書
125 スクロール制御部
126 表示制御部
127 受付部
Claims (16)
- 入力領域に対して入力される入力位置を取得する取得手段と、
前記取得手段によって取得される入力位置の移動に応じて、表示画面に表示される画像の少なくとも一部をスクロール表示させる表示制御手段と、
前記取得手段によって取得される一連の入力位置のうち、所定の条件が満たされた後で取得される入力位置を、予め定められた図形を構成する入力位置の候補として特定する特定手段と、
前記特定手段によって特定された入力位置の移動軌跡の形状を認識する認識手段とを備え、
前記表示制御手段は、前記特定手段によって前記図形を構成する入力位置の候補と特定された入力位置の移動に応じては、前記画像をスクロール表示させないことを特徴とする情報処理装置。 - 前記特定手段は、前記取得手段によって取得された入力位置に関する、座標以外の情報によって第1の条件が満たされた後で、前記取得手段によって取得される入力位置を、前記予め定められた図形を構成する入力位置の候補として特定することを特徴とする請求項1に記載の情報処理装置。
- 前記特定手段は、前記取得手段によって取得される入力位置に関する情報によって第1の条件が満たされた後で、前記取得手段によって取得される入力位置のうち、第2の条件を満たす部分は、前記予め定められた図形を構成する入力位置の候補から除外することを特徴とする請求項2に記載の情報処理装置。
- 前記第1の条件とは、前記取得手段によって取得される入力位置が、所定の範囲内に所定の時間より長く留まっていることであることを特徴とする請求項2又は3に記載の情報処理装置。
- 前記認識手段は、前記取得手段によって取得される入力位置に関する情報が、前記入力領域において接触が検知されなくなったことを示す場合、前記第1の条件が満たされた後で、前記接触が検知されていた間に取得された入力位置が構成する軌跡の形状を認識することを特徴とする請求項2乃至4のいずれか1項に記載の情報処理装置。
- 前記認識手段は、前記特定手段によって特定された入力位置の移動軌跡の形状と、予め辞書として記憶された、1以上のストロークから構成される1以上の図形の形状との比較に基づいて、前記前記特定手段によって特定された入力位置の移動軌跡の形状を特定することを特徴とする請求項2乃至5のいずれか1項に記載の情報処理装置。
- 前記認識手段は、さらに、前記辞書として記憶された情報に基づいて、前記特定手段によって特定された入力位置の移動軌跡の形状に対応する前記情報処理装置に対する指示を認識することを特徴とする請求項6に記載の情報処理装置。
- 前記特定手段は、前記取得手段によって取得される入力位置が、前記入力領域に対する長押し操作が入力されたことを示す場合、前記長押し操作の後で前記取得手段によって取得される入力位置を、前記予め定められた図形を構成する入力位置の候補として特定することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
- 前記特定手段は、前記予め定められた図形を構成する入力位置の候補として特定した入力位置の移動軌跡を構成するストロークのうち、1画目に入力されたストロークの長さに基づいて、当該1画目に入力されたストロークを、前記予め定められた図形を構成する入力位置の候補から除外することを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
- 前記特定手段は、前記1画目に入力されたストロークが所定の長さよりも短い場合、当該1画目に入力されたストロークを、前記予め定められた図形を構成する入力位置の候補から除外することを特徴とする請求項9に記載の情報処理装置。
- 前記特定手段は、前記予め定められた図形を構成する入力位置の候補として特定した入力位置の移動軌跡を構成するうち、1画目に入力されたストロークが、前記認識手段による認識の結果、前記予め定められた図形を構成しないと判定され、かつ、所定の長さよりも短い場合、当該1画目に入力されたストロークを、前記予め定められた図形を構成する入力位置の候補から除外することを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
- 前記特定手段は、前記予め定められた図形を構成する入力位置の候補として特定した入力位置の移動軌跡を構成するストロークのうち、1画目に入力されたストロークの曲がり方に基づいて、当該1画目に入力されたストロークのうち前記図形の書き出し位置を特定し、前記書き出し位置までに入力された部分を、前記予め定められた図形を構成する入力位置の候補から除外することを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
- 前記表示制御手段は、前記特定手段によって前記図形を構成する入力位置の候補と特定された入力位置を受け付ける間は、前記表示画面に表示させる画像の色、明るさ、濃淡の少なくとも1つを変更することを特徴とする請求項1乃至12のいずれか1項に記載の情報処理装置。
- 情報処理装置の制御方法であって、
取得手段により、入力領域に対して入力される入力位置を取得する取得工程と、
表示制御手段により、前記取得工程において取得される入力位置の移動に応じて、表示画面に表示される画像の少なくとも一部をスクロール表示させる表示制御工程と、
特定手段により、前記取得工程において取得される一連の入力位置のうち、所定の条件が満たされた後で取得される入力位置を、予め定められた図形を構成する入力位置の候補として特定する特定工程と、
認識手段により、前記特定工程において特定された入力位置の移動軌跡の形状を認識する認識工程とを有し、
前記表示制御工程では、前記特定工程において前記図形を構成する入力位置の候補と特定された入力位置の移動に応じては、前記画像をスクロール表示させないことを特徴とする情報処理装置の制御方法。 - コンピュータに読み込ませ実行させることによって、前記コンピュータに、請求項14に記載された情報処理装置の制御方法を実行させるプログラム。
- 請求項15に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014249425A JP2016110518A (ja) | 2014-12-09 | 2014-12-09 | 情報処理装置、その制御方法、プログラム、及び記憶媒体 |
US14/958,229 US10402080B2 (en) | 2014-12-09 | 2015-12-03 | Information processing apparatus recognizing instruction by touch input, control method thereof, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014249425A JP2016110518A (ja) | 2014-12-09 | 2014-12-09 | 情報処理装置、その制御方法、プログラム、及び記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016110518A true JP2016110518A (ja) | 2016-06-20 |
Family
ID=56094337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014249425A Pending JP2016110518A (ja) | 2014-12-09 | 2014-12-09 | 情報処理装置、その制御方法、プログラム、及び記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10402080B2 (ja) |
JP (1) | JP2016110518A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109725744A (zh) * | 2017-10-31 | 2019-05-07 | 尚科纺织企业工业及贸易公司 | 标识织物触摸垫传感器上的手势事件类型的方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6458750B2 (ja) * | 2016-03-02 | 2019-01-30 | 京セラドキュメントソリューションズ株式会社 | 表示操作装置およびプログラム |
WO2017183821A1 (ko) | 2016-04-21 | 2017-10-26 | 주식회사 씨케이머티리얼즈랩 | 촉각 메시지 제공 방법 및 촉각 메시지 제공 장치 |
JP6961451B2 (ja) * | 2017-10-12 | 2021-11-05 | キヤノン株式会社 | 電子機器、その制御方法およびプログラム |
US10719230B2 (en) * | 2018-09-27 | 2020-07-21 | Atlassian Pty Ltd | Recognition and processing of gestures in a graphical user interface using machine learning |
USD902944S1 (en) * | 2019-03-05 | 2020-11-24 | Michael Joseph Garland | Display screen with graphical user interface |
CN110531915B (zh) * | 2019-08-30 | 2022-02-25 | 维沃移动通信有限公司 | 屏幕操作方法及终端设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006146556A (ja) | 2004-11-19 | 2006-06-08 | Nintendo Co Ltd | 画像表示処理プログラムおよび画像表示処理装置 |
US20090289902A1 (en) * | 2008-05-23 | 2009-11-26 | Synaptics Incorporated | Proximity sensor device and method with subregion based swipethrough data entry |
WO2010016065A1 (en) * | 2008-08-08 | 2010-02-11 | Moonsun Io Ltd. | Method and device of stroke based user input |
US8819597B2 (en) * | 2009-04-10 | 2014-08-26 | Google Inc. | Glyph entry on computing device |
-
2014
- 2014-12-09 JP JP2014249425A patent/JP2016110518A/ja active Pending
-
2015
- 2015-12-03 US US14/958,229 patent/US10402080B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109725744A (zh) * | 2017-10-31 | 2019-05-07 | 尚科纺织企业工业及贸易公司 | 标识织物触摸垫传感器上的手势事件类型的方法 |
JP2019109880A (ja) * | 2017-10-31 | 2019-07-04 | サンコ テキスタイル イスレットメレリ サン ベ ティク エーエスSanko Tekstil Isletmeleri San. Ve Tic. A.S. | 織物タッチパッドセンサでジェスチャイベントのタイプを識別する方法 |
JP7215651B2 (ja) | 2017-10-31 | 2023-01-31 | サンコ テキスタイル イスレットメレリ サン ベ ティク エーエス | 織物タッチパッドセンサでジェスチャイベントのタイプを識別する方法 |
CN109725744B (zh) * | 2017-10-31 | 2023-09-08 | 尚科纺织企业工业及贸易公司 | 标识织物触摸垫传感器上的手势事件类型的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160162143A1 (en) | 2016-06-09 |
US10402080B2 (en) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016110518A (ja) | 情報処理装置、その制御方法、プログラム、及び記憶媒体 | |
EP3028123B1 (en) | Electronic device and method of recognizing input in electronic device | |
JP5990011B2 (ja) | 情報処理装置及びその制御方法 | |
JP6009454B2 (ja) | コンピューティング装置の動きを利用するコンピューティング装置と相互作用するときに発生する入力イベントの解釈の強化 | |
US9529527B2 (en) | Information processing apparatus and control method, and recording medium | |
JP5158014B2 (ja) | 表示制御装置、表示制御方法およびコンピュータプログラム | |
CN105302784B (zh) | 复制/剪切和粘贴数据的方法和系统 | |
DK201770562A1 (da) | Systems and methods for interacting with multiple applications that are simultaneously displayed on an electronic device with a touchsensitive display | |
US9773329B2 (en) | Interaction with a graph for device control | |
EP3590034B1 (en) | Systems and methods for interacting with multiple applications that are simultaneously displayed on an electronic device with a touch-sensitive display | |
TWI463355B (zh) | 多點觸控介面之訊號處理裝置、訊號處理方法及使用者介面圖像選取方法 | |
US9864514B2 (en) | Method and electronic device for displaying virtual keypad | |
JP2006343856A (ja) | 手書き情報入力装置。 | |
KR20110109551A (ko) | 터치스크린 장치 및 터치스크린 장치의 입력 처리 방법 | |
US20130328804A1 (en) | Information processing apparatus, method of controlling the same and storage medium | |
JP6066725B2 (ja) | 情報処理装置およびその制御方法 | |
US9477398B2 (en) | Terminal and method for processing multi-point input | |
JP6410537B2 (ja) | 情報処理装置、その制御方法、プログラム、及び記憶媒体 | |
KR102205283B1 (ko) | 적어도 하나의 어플리케이션을 실행하는 전자 장치 및 그 제어 방법 | |
JP2006235832A (ja) | 処理装置、情報処理方法、およびプログラム | |
JP6025473B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP5814147B2 (ja) | 入力装置、入力制御方法、および入力制御プログラム | |
US10073612B1 (en) | Fixed cursor input interface for a computer aided design application executing on a touch screen device | |
CN110727383A (zh) | 基于小程序的触控交互方法、装置、电子设备与存储介质 | |
US20170060324A1 (en) | User interface for electronic device, input processing method, and electronic device |