説明

情報処理装置、及びその制御方法

【課題】 情報処理装置に登録された多数のジェスチャから、ユーザが行ったジェスチャを検索するのにかかる処理負荷を低減する。
【解決手段】 上記課題を解決するために、本発明は、複数のジェスチャを、開始位置から終了位置へのベクトルが類似するジェスチャ毎にグループとして記憶部200に記憶し、検知部201が入力領域に対して行われるジェスチャを検知し、検知部201によりジェスチャの開始位置が検知された際、前記ジェスチャが終了したか否かに関わらず、決定部205が、前記開始位置に応じて、前記登録されたグループのうち少なくとも1つのグループを処理の対象に決定し、検知部201により前記ジェスチャの終了位置が検知された際、特定部207が、検知部201が検知したジェスチャの軌跡に応じて、前記決定手段によって決定されたグループに属するジェスチャの中から前記入力領域に対して行われたジェスチャを特定することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザが行うジェスチャによって操作可能な情報処理装置に関する。
【背景技術】
【0002】
ポインティングデバイスを用いてパターンや文字を入力領域上に描くことによって操作可能な情報処理装置が普及している。このようなポインティングデバイスによる操作のことを、ジェスチャ入力による操作、ジェスチャ認識による操作と呼ぶこともある。従来は、ジェスチャ入力を検知すると、機器内の辞書に登録された全てのジェスチャ入力の候補群から、実行されたジェスチャ入力を検索して特定していた。そのため、辞書に登録されているジェスチャの数が多くなった場合、検索対象の数も多くなり、実行されたジェスチャを特定するための処理に時間がかかる。従って、パフォーマンスを向上させるためには、登録されるジェスチャの数を増やすことが出来なかった。
そこで、特許文献1では、情報処理装置が認識可能な複数のジェスチャを、複数のセットに分類して辞書に登録する。そして、ユーザによって入力されたジェスチャの入力開始の位置、及び終了の位置がいずれの領域に含まれるかを判定した結果によって、入力領域に対して行われたジェスチャを優先して検索するセットを決定している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−109472号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1では、ユーザは、必ず所定の領域内でジェスチャ入力を始め、所定の領域内で終了することが必要であった。従って、入力領域が大きくなるなどして、ユーザが手書き入力を行う位置や文字の大きさの自由度が増すと、必ずしも想定された位置や大きさで手書き入力がなされるとは限らないため、優先すべき文字セットを正しく選択できなくなるという課題があった。
本発明は、上記の課題を考慮してなされたものであり、情報処理装置に登録された多数のジェスチャから、ユーザが任意の位置で開始したジェスチャを認識するのにかかる処理負荷を低減することを目的とする。
【課題を解決するための手段】
【0005】
上記の課題を解決するために、本発明の情報処理装置は、複数のジェスチャを、開始位置から終了位置へのベクトルが類似するジェスチャ毎にグループとして登録する登録手段と、入力領域に対して行われるジェスチャを検知する検知手段と、前記検知手段によりジェスチャの開始位置が検知された際、前記ジェスチャが終了したか否かに関わらず、前記開始位置に応じて、前記登録されたグループのうち、少なくとも1つのグループを処理の対象に決定する決定手段と、前記検知手段により前記ジェスチャの終了位置が検知された際、該検知手段が検知したジェスチャの軌跡に応じて、前記決定手段によって決定されたグループに属するジェスチャの中から前記入力領域に対して行われたジェスチャを特定する特定手段と、備えることを特徴とする。
【発明の効果】
【0006】
本発明によれば、情報処理装置に登録された多数のジェスチャから、ユーザが任意の位置で開始したジェスチャを認識するのにかかる処理負荷を低減する。
【図面の簡単な説明】
【0007】
【図1】情報処理装置のハードウェア構成を示すブロック図
【図2】情報処理装置の機能構成を示すブロック図
【図3】登録ジェスチャのグループと開始許可領域の対応関係を示すリストの一例を示す概要図
【図4】開始許可領域の一例を示す概要図
【図5】メインの処理内容を示すフローチャート
【図6】領域設定処理の内容を示すフローチャート
【図7】ジェスチャ開始処理の内容を示すフローチャート
【図8】ジェスチャ認識処理の内容を示すフローチャート
【図9】履歴されたジェスチャ開始位置の分布の一例を示す概要図
【図10】ジェスチャ認識処理の内容を示すフローチャート
【図11】開始許可領域更新処理の内容を示すフローチャート
【発明を実施するための形態】
【0008】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。なお、本発明は以下の実施形態に限定されるものではなく、本発明の実施に有利な具体例を示すにすぎない。
【0009】
[第1の実施形態]
本実施形態による情報処理装置では、認識可能な複数のジェスチャを、それぞれのジェスチャが描くパターンの開始位置から終了位置へのベクトルが類似するジェスチャ毎に分類したグループ化して管理する。そしてグループ毎に、入力領域上でそのグループに属するジェスチャの開始が許可された入力許可領域を設定する。入力許可領域は、入力領域のサイズと、グループに属するジェスチャのパターンを描くのに最低限必要な範囲のサイズを基に決定されるもので、入力許可領域内でジェスチャを開始した場合には、必ず入力領域上で終了位置までジェスチャを行うことができる。このように、実施形態では、ユーザがジェスチャを開始した開始座標が、いずれのグループの入力開始領域に含まれるかによって、入力領域に対して行われたジェスチャを特定するために検索を行う対象を限定し、ジェスチャ認識処理にかかる負荷を低減する。
【0010】
図1を参照して、本発明に係る情報処理装置100のハードウェア構成の一例について説明する。情報処理装置100は、バス101、CPU102、ROM103、RAM104、外部記憶装置106から構成される。
【0011】
バス101は、各構成要素を接続し、アドレスバス、データバス及びコントロールバス等を含む。CPU(Central Processing Unit)102は、各種処理のための演算や論理判断などを行い、バス101に接続された各構成要素を制御する。RAM(Random Access Memory)104は、CPU102のワークエリア(メインメモリ)として機能する。本実施形態では、ROM(Read Only Memory)103が、図5〜図8、図10、図11のフローチャートにより後述する各種処理手順を含むCPUによる制御のためのプログラムを格納し、プログラムメモリとして機能する。ただし、記憶装置105や外部記憶装置106などから各プログラムがロードされ、RAM104をプログラムメモリとして使用することも可能である。あるいは、これらの組み合わせを用いても構わない。
【0012】
記憶装置105は、本実施形態に係るデータや各種の制御プログラムを記憶しておくためのハードディスクなどの記憶装置である。本実施形態においては、情報処理装置100を操作可能なジェスチャのパターンや、ジェスチャ操作によって指示される処理の内容を示すデータは、記憶装置105に保存されている。ただし、記憶装置105と同様の役割を果たすものとして、外部記憶装置106を用いることも可能である。ここで、外部記憶装置106とは、例えば、メディア(記憶媒体)と、当該メディアへのアクセスを実現するための外部記憶ドライブとで実現することができる。このようなメディアとしては、例えば、フレキシブルディスク(FD)、CD−ROM、DVD、USBメモリ、MO、フラッシュメモリ等が知られている。このように、本実施形態において必要な情報は、RAM104や記憶装置105、外部記憶装置106に保持されている。
【0013】
入力装置107は外部装置からの情報を入力するための入力装置である。また、出力装置108は、情報処理装置100にて処理された結果や保持している情報を外部装置に出力するための出力装置である。本実施形態では、入力装置107と出力装置108が一体化されたタッチパネルディスプレイ109が、情報処理装置100に搭載されているものとする。ただし、これに限らず、入力装置107としては、例えば、マウス、トラックボール、タッチパネル等のポインティングデバイスや、キーボードや物理ボタン、各種センサなどを使用可能である。また、出力装置108としては、例えば、液晶ディスプレイ、CRTディスプレイやプロジェクタ等の表示出力装置や、情報処理装置100が認識したジェスチャによって操作される他の情報処理装置100を用いることもできる。尚、以下特に断らない限り、既に説明した図を用いて説明されたものには同一の符号を付し、その説明を省略する。
【0014】
次に、図2(a)を参照して本発明に係る情報処理装置100のソフトウェア構成の一例を説明する。情報処理装置100は、記憶部200、検知部201、取得部202、設定部203、判定部204、決定部205、特定部206、修正部207から構成される。
【0015】
記憶部200は、記憶装置105、及び外部記憶装置106によって構成され、本実施形態の情報処理装置100を操作するために登録されている認識可能なジェスチャ(以下、登録ジェスチャ)を保持する。登録ジェスチャの一例を図3(a)に示す。本実施形態の例では、16種類のジェスチャが登録されている。本実施形態では、16種類のジェスチャを、それぞれのジェスチャが描くパターンの開始位置から終了位置へのベクトルの方向が同じジェスチャ毎に4つのグループに分け、それぞれのグループにはグループIDが割り振って管理している。例えば、グループIDが1のグループ(以下、グループ1)は、画面に向かって左上から開始し、右下で終了するパターンをもつジェスチャが属するグループである。同様に、グループ2には、画面に向かって右上で開始し、左下の終了位置に向かうベクトルを有するジェスチャが属する。グループ3には、画面に向かって左下で開始し、右上の終了位置に向かうベクトルを有するジェスチャが属する。そして、グループ4には、画面に向かって右下で開始し、左上の終了位置に向かうベクトルを有するジェスチャが属している。記憶部200は、このように、複数の登録ジェスチャをグループとして記憶している。これらの登録ジェスチャは、それぞれが情報処理装置100で実行される機能プログラムと関連付けられており、記憶部200には、その関連を示す情報を保持している。さらに、後述する取得部202が取得するタッチパネルディスプレイ109の画面サイズや、設定部203によって以前に設定された開始許可領域を示す情報など、本実施形態において必要な情報が記憶部200に保持されている。
【0016】
検知部201は、CPU102、ROM103、RAM104によって構成され、タッチパネルディスプレイ109の入力領域上を座標平面として、入力装置107によって入力された座標を取得する。本実施形態では、ユーザが入力領域に対して行うジェスチャの開始位置、終了位置、及びその間の軌跡の座標情報を取得し、RAM104に保持する。取得部202は、CPU102、ROM103、RAM104によって構成され、記憶部から、登録ジェスチャの情報および画面サイズを取得し、RAM104に記憶する。
【0017】
設定部203は、CPU102、ROM103、RAM104によって構成され、取得部202が取得した登録ジェスチャの情報および画面サイズを利用して、登録ジェスチャの各グループに対する開始許可領域を設定する。その際、タッチパネルディスプレイ109上において登録ジェスチャが入力される場合に想定されるサイズを考慮し、画面サイズに対して、各グループのジェスチャを行うことが不可能な範囲を除いた領域を、開始許可領域として設定する。ここで各グループのジェスチャを行うことが不可能であるとは、各ジェスチャを最後まで行うのに十分な範囲を確保できないという意味である。開始許可領域の一例を図4に示す。図4では、タッチパネルディスプレイ109の入力領域41に対する、登録ジェスチャの各グループに対応する開始許可領域を表している。図4(a)は、グループ1に属するジェスチャに対応する開始許可領域(領域L1)を示す。図3(a)で示したように、グループ1に属するジェスチャは画面に向かって左上から開始され、右下に進んで終了するパターンを有する。従って、画面の右及び下の端の領域は、その領域においてジェスチャの入力を開始したとしても、パターンを描くために十分に右下に進むことが不可能であるため、開始許可領域に含まれない。従って、グループ1のジェスチャに対しては、画面に向かって右及び下の端から、ジェスチャの開始を禁止する範囲(以下、開始禁止範囲)を設定し、開始禁止範囲を除く左上の領域L1を、開始許可領域として設定する。図4における開始許可領域42は、その境界上において、登録ジェスチャの入力を開始した場合に、画面内に収まるように終了するのに必要十分な領域であり、開始禁止範囲は、開始許可領域の境界を含まない残りの範囲である。図4(b)〜(d)は、同様に、グループ2〜4のジェスチャに対して設定された開始許可領域である。すなわち、図4(b)は、グループ2に対応する開始許可領域44(領域R1)、図4(c)はグループ3に対応する開始許可領域46(領域L2)、図4(d)はグループ4に対応する開始許可領域48(領域R2)をあらわしている。また、図4(e)は、入力領域上に設定された全ての開始許可領域と、その重複を表している。ここで、本実施形態のタッチパネルディスプレイ109においては、入力領域の画面サイズが480×640pixelであり、ジェスチャ開始禁止範囲の幅が99pixelであるものとする。図4(e)において、領域Aは領域L1、領域Cは領域R1、領域Gは領域L2、領域Iは領域R2のみに含まれる領域(以下、独立領域)であるため、これらの領域において入力が開始された場合には、一意に対応する登録ジェスチャのグループを決定できる。一方、例えば、領域Bは領域L1と領域R1に重複して含まれる領域(以下、重複領域)である。同様に、領域D、領域F、領域Hは2つの開始許可領域に含まれ、領域Eは4つ全ての開始許可領域に含まれている。これらの重複領域において、ジェスチャが開始された場合には、対応する登録ジェスチャのグループが複数存在するため、優先順を決定して検索を行う必要がある。優先順を決定する処理については後述する。さらに設定部203は、設定した開始許可領域と各グループとの対応関係を示すリストを生成し、RAM104上に保持する。図3(b)は、生成されたリストの一例を示す。
【0018】
判定部204は、CPU102、ROM103、RAM104によって構成され、図3(b)に示したリストを参照し、検知部201が取得したジェスチャの開始位置の座標が含まれる領域が、独立領域か重複領域かを判定する。
【0019】
決定部205は、CPU102、ROM103、RAM104によって構成され、判定部204から判定結果を取得し、その結果に基づいて、入力領域に対して行われたジェスチャを特定するために、検索を行う対象となる登録ジェスチャのグループを決定する。判定の結果、ジェスチャが独立領域で開始されていた場合には、その領域に対応グループを検索対象に決定する。ジェスチャが、重複領域において開始されていた場合には、その領域に対応するグループを検索対象として決定した上で、開始座標の開始許可領域それぞれの代表座標との関係に基づいて、決定した複数のグループに優先順を設定する。優先順の設定方法は後述する。決定部205は、検索対象として決定した登録ジェスチャのグループのIDを、優先順を維持してRAM104上に保持する。
【0020】
特定部206は、CPU102、ROM103、RAM104によって構成され、登録ジェスチャの中から、入力領域に対して行われたジェスチャを特定し、ジェスチャを認識した結果として出力する。具体的には、登録ジェスチャのパターンと、入力領域に対して行われたジェスチャのパターンのマッチング度を求め、マッチング度が閾値以上であるものを検索結果として認識し、RAM104上に保持する。そして、記憶部200から取得した関連付け情報を参照し、入力領域に対して行われたジェスチャが指示する処理内容を、出力装置108に渡す。本実施形態の場合は、表示出力装置であるタッチパネルディスプレイ109は、情報処理装置100と一体に構成されているので、特定部206は出力装置の表示制御部に結果を渡し、ジェスチャ操作の結果が画面に表示される。
【0021】
なお、本発明は、これらの機能部をハードウェアで実現する情報処理装置によっても同様に実現可能である。
【0022】
次に図5〜図7を参照して、開始許可領域の設定から認識処理までのフローを説明する。図5は、本実施形態の情報処理装置100が実行するメイン処理を示すフローチャートである。まず、アプリケーションの起動に伴い、本実施形態におけるメイン処理が開始され、ステップS501において、既に設定された開始許可領域があるか判定する。具体的には、取得部202が記憶部200に、以前に設定された開始許可領域の情報が格納されているかを判定する。アプリケーションの初回起動時、またはアプリケーションの更新後など既存の開始許可領域が使用できない場合(ステップS501でNo)、ステップS502に進む。ステップS502では、後述する領域設定処理が実行され、終了するとメイン処理にリターンされてステップS503に進む。既に開始許可領域が設定されている場合(ステップS501でYes)、ステップS502を省略してステップS503に進む。ステップS503では、検知部201が、入力装置107から、タッチパネルディアスプレイ109に対するジェスチャを開始するタッチ入力があったかを判定する。入力があった場合には、検知部201はその入力の開始位置の座標(開始座標)を取得して、RAM104に保持してステップS504に進む。入力がない場合には、ジェスチャが入力されるまで待機する。ステップS504では、後述するジェスチャ開始処理が実行される。ジェスチャ開始処理が終了すると、再びメイン処理にリターンされて、ステップS505に進む。続くステップS505では、後述するジェスチャ認識処理が実行される。ジェスチャ認識処理が終了すると、メイン処理にリターンされて、ステップS506に進む。ステップS506では、これまでの処理によって認識された結果によって、情報処理装置100に対して指示された機能プログラムを呼び出し、実行する。ジェスチャ認識処理(ステップS505)においてジェスチャが認識されていれば、その結果を受け、そのジェスチャ操作による指示を出力装置108に出力する。ステップS507では、操作が終了されるかどうかを判定する。アプリケーションにおいて所定の終了操作がなされた場合には、操作は終了と判定し(ステップS507でYes)、処理を終了する。操作が終了されない場合(ステップS507でNo)には、ステップS503に戻ってさらなるジェスチャにおる操作を待つ。以上が、本実施形態のために情報処理装置100で実行されるメイン処理である。
【0023】
次に、図6を参照して、ステップS502において実行される領域設定処理を説明する。
【0024】
まず、ステップS601において、取得部202は、記憶部200からタッチパネルディスプレイ109の入力領域のサイズと、登録ジェスチャのグループ情報を取得する。取得した情報は、RAM104上に保持される。本実施形態では、上述したようにタッチパネルディスプレイ109の画面サイズは、480×640pixelである。また、記憶部200には、図3(a)に示したようにグループIDが1〜4の4つのグループのジェスチャが記憶されている。続いて、ステップS602において、設定部203は、RAM104上の登録ジェスチャの情報を参照し、領域を設定する処理の対象となるグループのIDを選択する。本実施形態では、グループIDの場号の昇順にグループを選択していくものとするので、初回の処理ではグループ1を選択し、ステップS603に進む。
【0025】
次に、ステップS603において、設定部203は、取得部202から選択されたグループに属する登録ジェスチャが描くパターンの情報を取得する。例えば、グループ1に属しているジェスチャは、左上の開始位置から右下の終了位置に向かうパターンであるため、右方向と下方向の方向線分を持ち、また、全て垂直方向と水平方向が1:1の矩形範囲内で描くことができるパターンである。さらに、本実施形態のタッチパネルディスプレイの画面サイズ及び性能から、本実施形態における情報処理装置100に対してこのようなジェスチャを行うためには、最低100×100pixelの領域が必要であるとする。ステップS603においては、このように、登録ジェスチャが描くパターンの方向と大きさに関する情報を取得する。
【0026】
続くステップS604において、ステップS604は、処理対象となっているグループのジェスチャの開始禁止範囲を決定する。開始禁止範囲とは、入力装置107の入力領域において、その範囲内でジェスチャを開始すると、ジェスチャのパターンを終了位置まで描くことができなくなる範囲のことである。例えば、処理対象がグループ1のジェスチャの場合、画面の右端および下端においてジェスチャを開始しても、それ以上右下方向にタッチ位置を移動させることができないため、ジェスチャを完了できない。従って、画面の右端および下端では、グループ1に属するジェスチャの入力を禁止し、該当範囲において開始されたジェスチャについては、グループ1に属する登録ジェスチャの中に該当するものがあるかどうかの検索を行わないこととする。設定部203は、ステップS603で取得した登録ジェスチャ情報から、このような開始禁止範囲を決定する。グループ1の場合には、右方向及び下方向に100pixel以上の余裕がなければジェスチャを完了できないため、画面の右端及び下端から99pixelの幅を持った帯状の範囲を、開始禁止範囲として決定する。
【0027】
ステップS605において、設定部203は、タッチパネルディスプレイ109の入力領域全体から開始禁止範囲を除いた領域を、処理対象としているグループのジェスチャの開始許可領域として設定する。このように設定された開始許可領域の情報は、画面上を座標平面とした場合の範囲を示す情報として、記憶部200に記憶される。例えば、グループ1の登録ジェスチャに対して設定される開始許可領域が、図4(a)に示す領域L1である。本実施形態では、タッチパネルディスプレイ109の入力領域を、向かって左下の端(画素)を原点(0,0)とし、1画素を1単位とした座標平面として管理する。従って、領域L1はL1(0:540,99:479)という座標情報としてRAM104上に保持される。同様に、グループ2のジェスチャの開始許可領域は、図4(b)に示す領域R1(99:639,99:479)と決定される。そして、グループ3に対応する開始許可領域は図4(c)に示す領域L2(0:540,0:380)、グループ4に対応する開始許可領域は図4(4)に示す領域R2(99:639,0:380)となる。
【0028】
次に、ステップS606において、設定部203は、全てのグループに対して開始許可領域を設定し、その情報がRAM104上に保持されているかを判定する。全てのグループに対して処理が終わっていなければ(ステップS606でNo)、ステップS608に進み、次に処理するグループのIDを選択して、ステップS603に戻る。全てのグループに対して、開始許可領域を設定していれば(ステップS606でYes)、ステップS607に進む。最後にステップS607では、設定部203が、RAM104上に保持されている全てのグループに対応する開始許可領域の範囲を整理し、複数のグループに重複して含まれる重複領域と、単一のグループにしか含まれない独立領域とを識別し、リストを生成する。例えば、図4(e)において、領域A(0:98,381:479)は、領域L1にのみ含まれる範囲であり、それに対して領域B(99:540,381:479)は領域L1及び領域R1に重複して含まれる。このようにして、画面上を9つの領域として識別する記号を割り当てて整理し、生成したリストを示したものが上述した図3(b)である。図3(b)のリストでは、各エリアの座標情報は省略したが、全てのエリアが同様に、ディスプレイの左上を原点とする座標平面での座標で管理されている。リストを生成したら、領域設定処理を終了し、呼び出し元のメイン処理にリターンする。以上が、本実施形態のために情報処理装置100で実行されるジェスチャ開始処理である。
【0029】
次に、図7を参照して、ステップS504における、ユーザがジェスチャを行うためのタッチを開始した時点での処理(ジェスチャ開始処理)を説明する。
【0030】
まず、ステップS701において、検知部201はユーザがジェスチャを開始したタッチ位置の座標(開始座標)を検知する。そして、ステップS702において、判定部204が、領域設定処理において設定された9つの領域のうち、検知部201が検知した開始座標を含む領域の識別記号を取得する。9つの領域は、座標情報で管理されているので、例えば開始座標が(x,y)である場合、1≦x≦99であってかつ1≦y≦99であるなら、開始座標は領域Aに含まれる。また、100≦x≦541であってかつ1≦y≦99であるなら、開始座標は領域Bに含まれる、という情報が得られるので、開始座標を含む領域の識別記号が取得される。次に、ステップS703において、判定部204が、RAM104上に保持されているリスト(図3(b))を参照し、開始座標が含まれる領域は重複領域であるか、すなわち複数の登録ジェスチャのグループに対応した開始許可領域内に含まれているのかを判定する。開始座標が重複領域に含まれていない、すなわち独立領域に含まれている場合(ステップS703でNo)には、ステップS704に進む。ステップS704では、参照した上述のリストから、開始座標が含まれる独立領域が唯一対応する登録ジェスチャのグループIDを取得し、検索対象とするためにRAM104上に保持して、ジェスチャ開始処理を終了する。一方で、開始座標が重複領域に含まれていた場合(ステップS703でYes)は、ステップS705に進む。
【0031】
ステップS705では、決定部205が、開始座標を含む開始許可領域に対応する複数のグループのうち、1つのIDを選択する。本実施形態では、取得したIDの昇順に選択するため、初回の処理では一番若い番号のグループを選択するものとする。次に、ステップS706において、決定部205が、取得部202によって取得された画面サイズ情報と各グループの開始許可領域の情報をRAM104で参照し、選択したグループに対応する開始許可領域の代表座標を取得する。本実施形態において、代表座標とは、タッチパネルディスプレイ109の入力領域の四隅の点のうち、処理対象としている登録ジェスチャのグループの開始許可領域に含まれる座標である。例えば、図4(a)の場合、グループ1の開始許可領域である領域L1に含まれる四隅の点43が、領域L1の代表座標となるので、点43の座標(0,479)を取得する。同様に、領域R1の代表座標は点45の座標(639,479)、領域L2の代表座標は点47の座標(0,0)、領域R2の代表座標は点49の座標(639,0)となる。ここで、四隅の座標を用いるのは、四隅の座標が、各開始許可領域における独立領域に含まれるので、独立領域に近い位置で開始されるジェスチャは、その独立領域に対応するグループの登録ジェスチャである可能性が高いと考えられることを利用するためである。また、本実施形態における登録ジェスチャ(図3(a))がいずれも矩形領域の四隅から始まり対角方向に進むため、ユーザがジェスチャを開始する位置が四隅に近い程、その方向から開始されるパターンを描こうとする意思が表れていると考えられるためである。続いて、ステップS707において、決定部205は、取得した代表座標と開始座標(x,y)との間の距離Dを求める。求められた距離Dは、RAM104に保持される。続いて、ステップS708において、決定部205が、開始座標を含む領域に対応している登録ジェスチャのグループ全てに対して距離Dを求める処理が終了し、RAM104に距離Dの情報が保持されているかどうかを判定する。距離Dを求める処理が終了していない場合は(ステップS708でNo)、ステップS710に進み、次に処理対象とするグループのIDを選択し、ステップS706に戻る。距離Dを求める処理が終了している場合には(ステップS708でYes)、処理はステップS709に進む。ステップS709においては、RAM104に保持された距離Dが小さい順に優先順を決定し、登録ジェスチャのグループのIDを優先順に並び替えて、RAM104上に保持する。以上で本実施形態におけるジェスチャ開始処理は終了し、呼び出し元のメイン処理にリターンされる。後のジェスチャ認識処理において、ここで保持されたグループID順に、登録ジェスチャの中から入力領域に対して行われたジェスチャを検索していく。
【0032】
次に、図8を参照して、ステップS505における、入力領域に対して行われたジェスチャを、登録ジェスチャの中から特定する処理(ジェスチャ認識処理)を説明する。
【0033】
まず、ステップS801において、特定部206が、ユーザのジェスチャが終了したかどうかを判定する。具体的には、検知部201から、タッチパネルディスプレイ109の入力領域に対するタッチが解放され、タッチ位置が検知されなくなったことを示す情報を受信したかどうかによって判定する。タッチが解放されない場合(ステップS801でNo)は、ジェスチャの入力が継続中であるので、解放されるまで待機する。タッチが解放された場合(ステップS801でYes)は、ステップS802に進む。ステップS802においては、特定部206が、ジェスチャが開始されてから終了されるまでに辿った軌跡を検知部201が検知しRAM104に保持している、その軌跡の座標情報を取得する。続くステップS803では、特定部206が、入力ジェスチャを検索するためにRAM104に保持していた登録ジェスチャのグループIDの中で、優先順が先頭のものを選択する。保持されているグループが1つであった場合には、該当する1つのグループのIDを選択する。そして、ステップS804に進み、選択したIDのグループに登録された複数の登録ジェスチャの中に、入力領域に対して行われたジェスチャに該当するジェスチャがあるか検索を行う。本実施形態では、特定部206が、複数の登録ジェスチャのパターンと入力領域に対して行われたジェスチャの軌跡座標が描くパターンをそれぞれ比較して行き、結果を一致度としてスコア化する。そして、例えば一致度90%といった閾値以上のスコアを示す登録ジェスチャが存在した場合に、そのジェスチャを特定し、RAM104上に登録ジェスチャ情報を保持する。なお、閾値を越える登録ジェスチャが複数該当してしまった場合には、それらのうち最もスコアが高いものを特定するものとする。続くステップS805では、検索の結果、特定部206が条件に該当するジェスチャを特定したかどうかを判定する。ジェスチャを特定した場合(ステップS805でYes)には、ステップS806に進み、ステップS804でRAM104に保持した登録ジェスチャの情報を、ジェスチャを認識した結果としてメイン処理に返し、ジェスチャ認識処理を終了する。ジェスチャを特定していない場合(ステップS805でNo)には、ステップS807に進む。ステップS807では、特定部206が、検索対象として保持されている全てのグループで検索処理が終了したかを判定する。全てのグループで検索が行われていなければ(ステップS807でNo)、ステップS808に進み、優先順が次のグループのIDを選択して、ステップS804の処理に戻る。全てのグループの検索が終了した場合(ステップS807でYes)、開始座標が含まれる領域で認識可能な登録ジェスチャが入力されていないとしてエラーを出力し、メイン処理にリターンする。
【0034】
以上が、本実施形態のために情報処理装置100で実行される一連の処理である。
【0035】
なお、本実施形態の領域設定処理では、取得部202が取得する画面サイズは、タッチパネルディスプレイ109の画面解像度であった。ただし、これは一例である。例えば、アプリケーションのウインドウのサイズを取得しても良い。また、ウインドウ内のユーザが手書き認識可能な入力領域のサイズを取得しても良い。この場合、取得部202はウインドウ及び入力領域のサイズが変わる度に、新たに領域設定処理を行う。さらには、表示部とは別に用意されたタッチ入力専用の領域のサイズであっても良い。
【0036】
また、本実施形態のジェスチャ開始処理では、開始座標と開始許可領域に含まれる画面の四隅の座標との距離を計算したがこれに限らない。例えば、開始座標と開始許可領域の重心の座標までの距離を計算しても良い。また、開始座標から四隅又は重心の座標までの距離を計算する際に、タッチパネルディスプレイ109の画面の縦横比率を考慮しても良い。例えば、画面の縦横比率が2:3の場合、横の長さを2/3倍してから計算を行う。
【0037】
また、本実施形態のジェスチャ認識処理では、ユーザがタッチパネルディスプレイ109の入力領域からタッチ入力を解放した時点で、ジェスチャの認識処理を行ったがこれは一例である。例えば、ユーザのタッチ位置の移動を検知部201が検知する度にその座標を特定部206が取得し、登録ジェスチャとの比較を行っても構わない。また、ユーザが開始許可領域をタッチした時点で、操作可能なジェスチャを画面に一覧表示することもできる。各グループの登録ジェスチャの数が少ない場合には、このようにジェスチャのパターンを入力するより前に一覧表示を提示することで、ユーザが誤った位置で操作を行いエラーになる恐れを低減できるので効果的と言える。
【0038】
以上のように、本実施形態によれば、情報処理装置100に登録されたジェスチャを、開始位置から終了位置へのベクトルの方向が同じことに基づいてグループ分けする。そして、入力装置107の画面サイズ及びグループ化された登録ジェスチャを基に、グループ毎の開始許可領域を設定するので、ジェスチャが開始された時点で、入力領域に対して行われたジェスチャを検索するグループを絞り込むことができる。従って、ユーザが任意の位置で開始して、入力領域内で可能な限り自由な大きさで行ったジェスチャであっても、情報処理装置に登録された多数のジェスチャから検索するのにかかる処理負荷を低減することが可能になる。また、絞り込んだグループが複数であった場合には、入力座標と開始許可領域の代表座標との距離が小さい順に、検索を行うグループの優先順を決定する為、該当する可能性の高いジェスチャから検索をかけられるので、認識時間を削減することができる。
【0039】
[第2の実施形態]
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。なお、第1の実施形態に準ずる箇所については、説明を省略する。
【0040】
第1の実施形態では、入力領域の四隅に均等に設定された開始許可領域に対して、グループ化した登録ジェスチャを対応させ、ジェスチャの開始座標がいずれの領域に含まれるかを基に、入力ジェスチャとの比較による検索を行うグループを絞り込んだ。しかし、開始許可領域がこのように固定されていると、ユーザの利用状況に応じては、情報処理装置100の操作性を低減させる場合があった。例えば、情報処理装置100がタブレット型端末のようなデバイスであって、右利きのユーザが左手でデバイスを支え、右手でジェスチャ操作を行う頻度が高い場合には、ジェスチャは入力領域の画面に向かって右側に偏った位置で行われる可能性が高くなる。このような場合において、第1の実施形態のように均等に設定された開始許可領域(図4(e)など)を設定していると、登録ジェスチャの各グループに対して適正な優先順が設定されないなど、ジェスチャ認識が必ずしも効率的に行われないことがある。このような課題を解決するため、第2の実施形態では、ユーザが各ジェスチャを入力した開始位置の履歴を基に、開始許可領域を修正する例を示す。
【0041】
ハードウェア構成図は第1の実施形態と同様である。また、本実施形態においても、第1の実施形態同様、図3(a)に示した12のパターンのジェスチャが登録されているものとする。
【0042】
図2(b)は、本実施形態における機能構成図である。第1の実施形態との違いは修正部207が追加されたことである。修正部207は、特定部206から、ジェスチャの認識の結果と、ユーザがジェスチャを開始した開始座標の情報を取得し、履歴情報を生成して記憶部200に保存する。更に、生成した履歴情報を基に、設定部203が設定した開始許可領域の修正を行う。
【0043】
開始許可領域修正の一例を概念図として図9に示す。図9(a)は、図4(c)に相当するもので、入力領域41において、開始許可領域46(領域L2)が設定されている。領域L2においてジェスチャの開始が許可された登録ジェスチャは、第1の実施形態同様に、図3(a)に示したグループ3のジェスチャである。今、矢印92は、グループ3の登録ジェスチャのうち、タッチを開始した指を画面に向かって上、右の順に動かすパターンを示しており、点93は、矢印92と同じグループ3のジェスチャがなされた直近の10回の操作における開始座標を示すものとする。このように、グループ3の登録ジェスチャの入力が、領域L2の右下付近に偏って開始されるという傾向があるという場合、図9(a)のように設定された領域L2のうちの上側の部分は、矢印92の登録ジェスチャの開始許可領域としての役割を果たしていない。このような場合に、第2の実施形態では、図9(b)に示すように、領域L2を修正し、不必要な範囲を省いた開始許可領域94を設定する。全てのグループのジェスチャに関して、同様の処理を行うと、当初図4(e)のように設定されていた独立領域及び重複領域が、図9(c)のように修正される。ここで、独立領域である領域A及び領域Gは、図4(e)よりも広くなっていることがわかる。つまり、当初は複数のグループの優先順を決定して順に入力ジェスチャと登録ジェスチャの比較を行っていた領域において、修正処理以降は、その優先順決定処理を省略して一意に1つのグループを選択するので、その分の処理負荷を低減することができる。
【0044】
次に、図9及び図10を参照して、第2の実施形態における情報処理装置100の処理内容を説明する。尚、メイン処理、領域設定処理、ジェスチャ開始処理の流れは第1の実施形態に準ずるため、説明は省略する。
【0045】
図9は、本実施形態におけるジェスチャ認識処理を示すフローチャートである。第1の実施形態との違いは、ステップS900が追加されたことである。その他のステップS801からステップS809は第1の実施形態と同じである。本実施形態における処理では、ステップS806でジェスチャを認識した結果をメイン処理に返した後、ステップS900に移行する。
【0046】
次に、図11を参照して領域修正処理(ステップS900)を説明する。
【0047】
まず、ステップS901において、修正部207が、今回のジェスチャ認識処理で認識した登録ジェスチャのグループの開始座標の履歴情報を記憶部200から取得する。本実施形態では、登録ジェスチャのグループ毎に、直近10回分の操作の開始座標が、参照可能な履歴情報として記憶部200に記憶されているものとする。取得部202は、今回の処理における開始座標によって取得した履歴情報を更新し、RAM104上に保持する。次に、ステップS902において、修正部207は、RAM104上に保持した履歴情報から、開始座標の分布を解析する。本実施形態では、10回分の開始座標のうち、開始許可領域の最も外側に相当する座標を特定し、その座標を保持する。ここでいう、外とは、図9の概要図で説明したように、開始許可領域を修正する際に可変となる2辺に近づく方向をいう。本実施形態では、入力領域の左下を原点として座標平面を設定しているので、例えば、図9(a)で示したグループ3(領域L2)の例では、10回分の操作の開始座標のうち、x軸方向で最も外側とは、x,y座標がそれぞれ最大である座標である。従って、2方向それぞれで最も外側と判断される2点の開始座標が特定される場合もある。この場合には、x軸方向で最も外側の座標x_max、y軸方向において最も外側の座標y_maxをそれぞれ保持する。最も外側の座標を特定したら、処理はステップS903に進む。ステップS903では、解析した履歴情報を基に、開始許可領域を必要十分な範囲に修正し、保持する。本実施形態では、ステップS902で保持した垂直方向または水平方向で最も外側にある座標(x_max,y_max)に対し、それぞれ10pixelの余裕を持った領域を必要十分な範囲と判断する。すなわち、図9の例では、図9(b)で修正された開始許可領域94(領域L2)は、(0:x_max+10,0:y_max+10)という座標で示される領域になる。これによって、次回の操作でジェスチャ開始処理(ステップS504)では、修正された開始許可領域に基づいて、検索対象となるグループの選択が行われる。そして、ステップS904において、修正部207は、修正した開始許可領域の情報及び、RAM104に保持していた開始座標の履歴情報を記憶部200に保存する。従って、アプリケーションを終了した後、でも次回起動時のステップS501において、今回の処理で修正した開始許可領域の設定を記憶部200から読み出し、領域設定処理(ステップS502)を省略することもできる。以上が、第2の実施形態において情報処理装置100で実行される領域修正処理である。
【0048】
なお、本実施形態では、ステップS901において取得する履歴情報は、今回のジェスチャ認識処理で認識した登録ジェスチャが属するグループのジェスチャの直近10回分の操作の開始座標とした。ただし、これは一例であり、例えば直近100回の履歴を取得しても良く、履歴を取得する回数はユーザが任意に設定可能としても良い。また、本実施形態では、ステップS902において開始座標の分布を解析する際には、最も外側の座標を特定していたが、これに限らない。例えばヒストグラムを生成し、フィッティングした分布関数を解析して、ステップS903において、その分布関数から導かれる妥当な範囲に開始許可領域を修正してもよい。このようにすることで、統計的なデータから妥当な開始許可領域を設定できるので、ユーザの個々の使い方により適切に対応した範囲を設定できる。あるいは、今回の処理1回分の履歴を、次回の操作で用いる開始許可領域に反映させる構成としてもよい。この場合には、各開始許可領域内に基準領域を定め、今回行われたジェスチャの開始座標が基準領域内であったか、基準領域外であったかに基づき、例えば1%ずつ開始許可領域を狭め、あるは広げる。このように、毎回少しずつ範囲を修正していくことで、極端なサイズ変更が行われるのを避けるとともに、ユーザの使用方法に合わせた開始許可領域を設定していくことができる。
【0049】
ここまで説明した第2の実施形態では、ジェスチャ認識が行われる度に領域修正処理を行ったが、この場合、サンプルにする履歴の操作回数が多くなると、操作を行う度に領域修正処理にかかる処理負荷が大きくなり、その後の処理に遅延が生じる可能性がある。そこで、例えば、ジェスチャを認識する度に操作回数をカウントして履歴を保持し、100回の操作毎に、100回分の操作の履歴に基づいて領域修正処理を行うといった変形例を用いることもできる。こうすることで、取得する履歴の操作回数を増やして詳細な解析を行った場合でも、領域修正処理を行う回数を限定することができるので、必要以上の負荷をかけて操作性を低減させずにすむという利点がある。
【0050】
以上のように、第2の実施形態では、ユーザが過去に行ったジェスチャから開始許可領域の範囲を修正するため、ジェスチャを繰り返し行うのに従って、ユーザの個々の操作方法に順応した適切な操作環境を整えていくことができる。また、開始許可領域を最適化していくため、重複領域が最小限となり、複数のグループに対して入力ジェスチャの検索を行う処理に係る負荷を削減することが可能となる。
【0051】
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
複数のジェスチャを、開始位置から終了位置へのベクトルが類似するジェスチャ毎にグループとして記憶する記憶手段と、
入力領域に対して行われるジェスチャを検知する検知手段と、
前記検知手段によりジェスチャの開始位置が検知された際、前記ジェスチャが終了したか否かに関わらず、前記開始位置に応じて、前記登録されたグループのうち、少なくとも1つのグループを処理の対象に決定する決定手段と、
前記検知手段により前記ジェスチャの終了位置が検知された際、該検知手段が検知したジェスチャの軌跡に応じて、前記決定手段によって決定されたグループに属するジェスチャの中から前記入力領域に対して行われたジェスチャを特定する特定手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記入力領域において、前記グループ毎に登録されたジェスチャの開始が許可される領域を設定する設定手段を更に備え、
前記決定手段は、前記設定手段により設定された領域のうち、前記検知手段により検知されたジェスチャの開始位置を含む少なくとも1つの領域において、開始が許可されたジェスチャが属するグループを、処理の対象に決定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記設定手段は、前記登録されたジェスチャのそれぞれが、前記入力領域に対して行われる場合に想定される最小の範囲のサイズを決定し、前記入力領域において、前記ジェスチャの開始位置となった場合に、前記ベクトルの方向に前記決定されたサイズの範囲が確保できるかどうかに基づいて、前記グループ毎に登録されたジェスチャの開始が許可される領域を設定することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記決定手段は、前記検知手段により検知された開始位置において入力の開始が許可されたジェスチャが属するグループが複数存在する場合には、前記開始位置と、前記開始位置を含む複数の領域それぞれを代表する位置との間の距離に基づいて前記複数のグループの優先順を決定し、
前記特定手段は、前記優先順に従って1つずつ選択したグループに属するジェスチャの中から、前記入力領域に対して行われたジェスチャを特定した場合には、前記優先順においてそれより後のグループに対する検索は行わないことを特徴とする請求項2乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記複数のジェスチャのそれぞれが過去に入力された際の開始位置の情報に基づき、前記設定手段により設定された領域の範囲を修正する修正手段を更に備える
ことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
コンピュータに読み込み込ませ実行させることで、前記コンピュータを請求項1乃至5のいずれか1項に記載の情報処理装置として機能させることを特徴とするプログラム。
【請求項7】
記憶手段により、複数のジェスチャを、開始位置から終了位置へのベクトルが類似するジェスチャ毎にグループとして記憶する記憶工程と、
検知手段により、入力領域に対して行われるジェスチャを検知する検知工程と、
決定手段により、前記検知手段によりジェスチャの開始位置が検知された際、前記ジェスチャが終了したか否かに関わらず、前記開始位置に応じて、前記登録されたグループのうち、少なくとも1つのグループを処理の対象に決定する決定工程と、
特定手段により、前記検知手段により前記ジェスチャの終了位置が検知された際、該検知手段が検知したジェスチャの軌跡に応じて、前記決定手段によって決定されたグループに属するジェスチャの中から前記入力領域に対して行われたジェスチャを特定する特定工程と、
を備えることを特徴とする情報処理装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−97610(P2013−97610A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−240462(P2011−240462)
【出願日】平成23年11月1日(2011.11.1)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】