(57)【要約】【課題】情報処理装置に対して同じジェスチャで異なる複数の操作を区別して指示可能とする。【解決手段】モーションセンサ１６により、ユーザの指先１００が行ったジェスチャのパターン及びその実施位置を求める。情報処理装置は、同じ指先１００をドラッグするというジェスチャを、表示装置１４の画面１５に最も近い範囲で実施された場合は「ペンツール」操作と、中間の範囲で実施された場合は「てのひらツール」操作と、画面１５から最も遠い範囲で実施された場合は「ページ送り」操作と認識する。【選択図】図１
2015035103.tif 000002
【特許請求の範囲】
【請求項１】
ジェスチャのパターンと位置の組合せに対応する操作を記憶した記憶手段と、
ジェスチャ及び前記ジェスチャが行われた三次元の位置を認識するジェスチャ認識装置からユーザが行ったジェスチャのパターン及びジェスチャが行われた位置の情報を取得する取得手段と、
前記取得手段が取得したジェスチャのパターンと位置との組合せに対応する操作を前記記憶手段から求め、求めた操作が実行されるよう制御を行う制御手段と、
を有する情報処理装置。
【請求項２】
前記記憶手段は、ジェスチャのパターンと位置の範囲との組合せに対応する操作を記憶しており、
前記制御手段は、前記ジェスチャ認識装置からジェスチャの開始位置を取得するとその開始位置が属する前記範囲を拡張する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記求めた操作の種類を示す情報が前記情報処理装置の表示画面に表示されるよう制御を行う、ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記位置は、前記情報処理装置の表示画面からの距離であることを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記記憶手段には、前記距離が大きくなるほど、同一種類の操作についての操作量を大きくする関係が記憶されている、ことを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
コンピュータを、
ジェスチャのパターンと位置の組合せに対応する操作を記憶した記憶手段、
ジェスチャ及び前記ジェスチャが行われた三次元の位置を認識するジェスチャ認識装置からユーザが行ったジェスチャのパターン及びジェスチャが行われた位置の情報を取得する取得手段、
前記取得手段が取得したジェスチャのパターンと位置との組合せに対応する操作を前記記憶手段から求め、求めた操作が実行されるよう制御を行う制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
プログラムが実行する処理を、ユーザのジェスチャに応じて制御するユーザインタフェースシステムが存在する。例えば、Ｌｅａｐ  Ｍｏｔｉｏｎ社のＬｅａｐ  Ｍｏｔｉｏｎ  Ｃｏｎｔｒｏｌｌｅｒや、Ｍｉｃｒｏｓｏｆｔ社のＫｉｎｅｃｔ（登録商標）等がその一例である。
【０００３】
特許文献１には、手の軌跡を入力して情報の入力を行う手振り入力装置において、手の動作をＣＣＤカメラ等で入力し、この入力結果から手の位置座標を検出し、入力結果から手の形状動作を判別し、判別の結果に応じた入力モードによって、検出手段の検出入力位置座標を入力する方式が開示されている。
【０００４】
特許文献２に開示された装置は、例えば人の手などを認識対象オブジェクトとして、カメラ撮影領域に設定された認識領域内における認識対象オブジェクトの動きを検出し、この動きに基づく動きカテゴリを決定して、決定した動きカテゴリに対応付けたコマンドを選択してＰＣなどの情報処理装置に入力してコマンド対応のデータ処理を実行させる。この装置では、二次元の撮影領域内に複数の認識領域を設定可能であり、各認識領域での認識対象オブジェクトの動きの組合せからコマンドを識別する。例えば、手が一連の動作の中で、第１の認識領域を下から上に、第２の認識領域を左から右に、第３の認識領域を上から下に、順に通過した場合、その手の動きがページをめくって次のページに進むコマンドを示すと認識するなどである。
【０００５】
特許文献３に開示された技術では、機器を制御するシステムが、ジェスチャーを認識するジェスチャー認識手段と、認識されたジェスチャーの背景対象の属性を認識する属性認識手段と、認識されたジェスチャーとその背景対象属性との組合せに基づく制御命令を生成して機器に発信する命令発信手段とを備える。この装置では、背景を変えることで、同一のジェスチャーを別の制御に対応づけることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−２１１９７９号公報
【特許文献２】特開２００７−３４５２５号公報
【特許文献３】特開２０１０−２０４７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、情報処理装置に対して同じジェスチャで異なる複数の操作を区別して指示可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に係る発明は、ジェスチャのパターンと位置の組合せに対応する操作を記憶した記憶手段と、ジェスチャ及び前記ジェスチャが行われた三次元の位置を認識するジェスチャ認識装置からユーザが行ったジェスチャのパターン及びジェスチャが行われた位置の情報を取得する取得手段と、前記取得手段が取得したジェスチャのパターンと位置との組合せに対応する操作を前記記憶手段から求め、求めた操作が実行されるよう制御を行う制御手段と、を有する情報処理装置である。
【０００９】
請求項２に係る発明は、前記記憶手段は、ジェスチャのパターンと位置の範囲との組合せに対応する操作を記憶しており、前記制御手段は、前記ジェスチャ認識装置からジェスチャの開始位置を取得するとその開始位置が属する前記範囲を拡張する、ことを特徴とする請求項１に記載の情報処理装置である。
【００１０】
請求項３に係る発明は、前記制御手段は、前記求めた操作の種類を示す情報が前記情報処理装置の表示画面に表示されるよう制御を行う、ことを特徴とする請求項１または２に記載の情報処理装置である。
【００１１】
請求項４に係る発明は、前記位置は、前記情報処理装置の表示画面からの距離であることを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置である。
【００１２】
請求項５に係る発明は、前記記憶手段には、前記距離が大きくなるほど、同一種類の操作についての操作量を大きくする関係が記憶されている、ことを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置である。
【００１３】
請求項６に係る発明は、コンピュータを、ジェスチャのパターンと位置の組合せに対応する操作を記憶した記憶手段、ジェスチャ及び前記ジェスチャが行われた三次元の位置を認識するジェスチャ認識装置からユーザが行ったジェスチャのパターン及びジェスチャが行われた位置の情報を取得する取得手段、前記取得手段が取得したジェスチャのパターンと位置との組合せに対応する操作を前記記憶手段から求め、求めた操作が実行されるよう制御を行う制御手段、として機能させるためのプログラムである。
【発明の効果】
【００１４】
請求項１、６に係る発明によれば、情報処理装置に対して同じジェスチャで異なる複数の操作を区別して指示できる。
【００１５】
請求項２に係る発明よれば、一連のジェスチャの位置が当初の範囲からある程度外れても、当初認識された操作が続行しているものと認識することができる。
【００１６】
請求項３に係る発明よれば、ジェスチャによって指示した操作をユーザが認識できるようにすることができる。
【００１７】
請求項４に係る発明よれば、画面表示に関連する操作を、画面に対する遠近という分かりやすい基準で区別して指示することができる。
【００１８】
請求項５に係る発明よれば、画面から遠い位置でのジェスチャほど大まかな操作を表すという直感的にわかりやすい基準に従った操作指示が可能となる。
【図面の簡単な説明】
【００１９】
【図１】実施形態の概念を説明するための図である。
【図２】実施形態の一例の装置の機能ブロック図である。
【図３】ジェスチャパターン管理部に保持される操作指示の定義情報の一例を示す図である。
【図４】画面からの距離で区分された位置範囲の例を示す図である。
【図５】実施形態の処理手順の一例を示す図である。
【図６】操作指示の定義情報の別の一例を示す図である。
【図７】画面からの距離とジェスチャによりめくるページ数との関係の一例を示す図である。
【図８】画面からの距離とジェスチャによりめくるページ数との関係の別の一例を示す図である。
【図９】ジェスチャが行われた距離の範囲ごとの表示画像の例を示す図である。
【図１０】操作指示の定義情報の別の一例を示す図である。
【図１１】ジェスチャにより指示された操作を示すアイコン表示の例を示す図である。
【図１２】認識した操作に対応する位置範囲を拡張する例の処理手順を示す図である。
【発明を実施するための形態】
【００２０】
図１を参照して、本実施形態におけるジェスチャ入力の考え方を説明する。図１に示すように、本実施形態では、ユーザが手の指先１００等で行うジェスチャの表示装置１４の画面からの距離方向についての位置に応じて、そのジェスチャが表す意味を切り換える。図１の例では、表示装置１４に接続された情報処理装置（図示省略）は、指先１００を移動させるというジェスチャを、そのジェスチャの位置が画面１５に最も近い第１の範囲内の場合には「ペンツール」操作と解釈する。また、そのジェスチャの位置が第１の範囲よりも画面１５から遠い第２の範囲内である場合には、「てのひらツール」操作と解釈し、第２の範囲よりも画面から最も遠い第３の範囲内である場合は、「ページ送り」操作と解釈する。図示した表示画像１５ａ、１５ｂ、１５ｃは、各操作が行われたときに画面１５に表示されている画像の例である。
【００２１】
ここで「ペンツール」操作は、表示画像１５ａが表す文書上に、指先１００の移動軌跡に対応した曲線を描く操作である。「てのひらツール」操作は、画面１５をスクロールする操作である。すなわち、指先１００を「てのひらツール」に対応する第２の範囲内で画面１５にほぼ平行に動かすと、文書のうち画面１５上に表示画像１５ｂとして表示される部分が、指先１００を動かした方向にスクロールされる。「ページ送り」操作は、画面１５に表示されるページを前に戻したり先に進めたりする操作である。例えば、指先１００を第３の範囲内で画面１５にほぼ平行に左側に動かすと、画面１５上に表示画像１５ｃとして表示されるページがページ番号の小さい方向に戻り、右側に動かすと、表示されるページがページ番号の大きい方向へと進む。
【００２２】
ジェスチャの検出は、モーションセンサ１６により行う。モーションセンサ１６としては、Ｌｅａｐ  Ｍｏｔｉｏｎ  ＣｏｎｔｒｏｌｌｅｒやＫｉｎｅｃｔ（登録商標）などの従来のセンサを用いてもよい。
【００２３】
以上に説明したように、本実施形態では、同じジェスチャ（例えば指先１００を画面１５にほぼ平行に動かす手振り）を、そのジェスチャが実施された位置（図示例では画面１５からの距離）に応じて、異なった意味（すなわち操作）と解釈する。
【００２４】
次に、図２を参照して、本実施形態の情報処理装置の機能構成の例を説明する。図２に示すように、本実施形態の情報処理装置は、ＯＳ／アプリケーション１０、表示ドライバ１２、表示装置１４、モーションセンサ１６、センサドライバ１８、ジェスチャエンコード部２０、ジェスチャパターン制御部２２及びジェスチャパターン管理部２４を有する。このうち、表示装置１４及びモーションセンサ１６はハードウエアであり、他のものは典型的にはソフトウエアである。表示装置１４及びモーションセンサ１６は、情報処理装置の筐体に内蔵されていてもよいし、情報処理装置に外付けされるデバイスであってもよい。
【００２５】
ＯＳ／アプリケーション１０は、当該情報処理装置の基本ソフトであるオペレーティングシステム（ＯＳ）または、そのＯＳ上で実行されるアプリケーションプログラムである。本実施形態との関連では、ＯＳ／アプリケーション１０は、これから説明するジェスチャによる指示入力システムにより入力された操作指示の入力先である。すなわち、ジェスチャにより入力された操作指示は、ＯＳまたはいずれかのアプリケーションプログラムに入力される。操作指示の入力先は、ＯＳ及びアプリケーションプログラムのうち、その入力の時点でアクティブ状態（すなわちユーザにより操作の入力対象に選択された状態）となっているものである。
【００２６】
表示ドライバ１２は、表示装置１４の表示動作を制御するデバイスドライバである。表示装置１４は、ＯＳ／アプリケーション１０が生成した表示画像を表示する液晶ディスプレイや有機ＥＬディスプレイなどの装置である。
【００２７】
モーションセンサ１６は、情報処理装置に対する指示入力のためのユーザのジェスチャを検出する装置である。ユーザのジェスチャは、ユーザの手や指、又はユーザが持つ指示棒などを用いて行われる。ユーザが指示入力のために動かす手や指、指示棒などのことを以下では「指示部」と呼ぶこととする。モーションセンサ１６は、例えば、三角測量方式やＴＯＦ(Time Of Flight）方式等を用いた距離画像センサであり、ユーザが動かす指示部を含む視野内の距離画像をあらかじめ定めた時間間隔ごとに求めて出力する。距離画像には、計測対象範囲内にある各物体の表面の各点の三次元位置の情報が含まれる。特にこの実施形態との関連では、距離画像の情報から、指示部表面の各点の三次元位置の情報が得られる。
【００２８】
また、モーションセンサ１６は、距離画像を出力する代わりに、距離画像を解析することで得られる特徴量を出力するものであってもよい。例えば、距離画像を解析することで、指先や指示棒の先端を抽出し、抽出した先端の三次元位置を特徴量として時々刻々、出力してもよい。複数の指先を検出した場合、各指先の位置の組を特徴量として出力してもよい。また、手の面を近似する平面を求め、その平面を表す特徴量を出力してもよい。
【００２９】
センサドライバ１８は、モーションセンサ１６の動作を制御するデバイスドライバである。センサドライバ１８は、モーションセンサ１６が出力する検知信号（距離画像、または距離画像から求めた特徴量）を受け取ってジェスチャエンコード部２０に渡す。
【００３０】
モーションセンサ１６は、距離画像を生成するものに限るものではなく、ユーザの指示部（手や指示棒）の位置や動きを検出できるものであればどのような方式のものであってもよい。
【００３１】
ジェスチャエンコード部２０は、センサドライバ１８に対して動作指示を送ると共に、その動作指示に応じてセンサドライバ１８経由でモーションセンサ１６から入力される信号から、ジェスチャのパターンとジェスチャの実施位置を求める。モーションセンサ１６から入力される信号は、モーションセンサ１６の生の検出情報（例えば距離画像）の時系列、あるいは検出情報を処理して得た特徴量（例えば手の各指先の位置座標）の時系列などである。
【００３２】
ジェスチャのパターン（種類）には、例えば、複数の指の指先同士を近づける「ピンチイン」、指先同士を広げる「ピンチアウト」、手や指等を掃くように一方向に動かす「スワイプ」、（仮想的なオブジェクトを）「つかむ」動作、「つかんだ」状態の手を広げる（すなわち「つかんだ」オブジェクトを）「放す」動作、開いた手を「ひねる」動作、人差し指等の一本の指（あるいは揃えた数本の指）で「指さす」動作等、様々なものが考えられる。また、手の指を開いた状態か、手が握り拳の状態になっているか、指さしなどのように一本の指だけ伸ばした状態か、などの手の状態をモーションセンサ１６の距離画像情報から判別することも可能であり、同じ手を移動させる動作でも、そのときの手の状態に応じて異なるジェスチャパターンと識別するようにしてもよい。また、「つかむ」動作の後「つかんだ」状態のまま手を動かすことを「ドラッグ」動作と定義するなど、複数の基本的な動作の組合せを１つのジェスチャとして定義することも可能である。ジェスチャエンコード部２０が行うジェスチャパターンの認識処理は、Ｌｅａｐ  Ｍｏｔｉｏｎ  Ｃｏｎｔｒｏｌｌｅｒ等の従来技術で用いられるものと同様のものでよい。
【００３３】
ジェスチャの実施位置は、ジェスチャが行われた場所の位置（この例では三次元的な位置）のことである。モーションセンサ１６からの入力情報には、指示部（指先等）の位置情報が含まれているので、ジェスチャエンコード部２０は、その位置情報から、ジェスチャの位置を認識すればよい。１つの例では、指示部の先端の位置をジェスチャの位置と認識する。例えば「指さす」ジェスチャの場合、モーションセンサ１６から入力される指の先端の位置情報を、そのジェスチャの実施位置と認識すればよい。また、握り拳のようなある程度大きな体積のある指示部の場合、その重心や先端（上腕の延びる方向に沿った先端）などの代表位置を、その指示部によるジェスチャの位置としてもよい。指示部の先端が複数ある場合（例えば複数の指の先端がモーションセンサ１６により検出された場合）には、例えばそれら複数の先端の位置の重心位置をジェスチャの位置としてもよいし、それら複数の先端の位置の集合（例えば各指の先端位置の組）をジェスチャの位置としてもよい。
【００３４】
ジェスチャは動作であり、時間的な幅を持つ。ジェスチャの実施位置は、その時間幅の中の１つの時点あるいは複数の時点での指示部の位置に基づき求める。
【００３５】
１つの例では、ジェスチャの開始位置をそのジェスチャの実施位置と認識する。例えば、指示部（手など）がほぼ停止している状態（あるいはジェスチャと認識されない程度の低速で動いている状態）から急に（ある程度大きな加速度で）動き始めた場合、その動き始めの時点をジェスチャの開始時点とし、そのときの指示部の位置をジェスチャの開始位置としてもよい。
【００３６】
また、別の例では、認識されたジェスチャを構成する各時点での指示部の位置の平均位置や、そのジェスチャの時間幅の中央の時点での指示部の位置など、開始位置とは異なる代表位置をそのジェスチャの実施位置としてもよい。
【００３７】
また、各時点での指示部の位置をすべてジェスチャの実施位置と捉えてもよい。例えば、線画を描く操作の場合、各時点での指先１００の位置が、「線画を描く」ジェスチャの中での当該時点のペン先の位置に対応する。
【００３８】
ジェスチャパターン制御部２２は、ジェスチャエンコード部２０に動作指示を送ると共に、ジェスチャエンコード部２０から入力されるジェスチャのパターン及び実施位置の情報を受け取り、そのパターンと実施位置の組合せから、ユーザの操作指示を判定する。この判定では、ジェスチャパターン管理部２４に管理されている操作指示の定義情報を参照する。
【００３９】
図３に、ジェスチャパターン管理部２４に管理されている操作指示の定義情報の一例を示す。図３に示す表の各行が、それぞれ１つの操作指示の定義情報である。各行は、「ＩＤ」、「ジェスチャ」、「アプリケーション」、「対応する操作」の項目を有する。「ＩＤ」は、この定義情報のエントリ（行）の識別情報である。「対応する操作」は、そのＩＤに対応する操作指示（ユーザがジェスチャにより指示する操作。言い換えればそのジェスチャの「意味」）の識別情報である。図示される「ペンツール」などの操作の意味については既に説明した。
【００４０】
「位置」は、その操作指示に対応するジェスチャの位置範囲を表す。すなわち、ユーザのジェスチャが当該操作指示を示すものと認識されるには、そのジェスチャの実施位置がその「位置」に示される範囲内にある必要がある。図示例では、位置範囲はＸ，Ｙ，Ｚの直行三次元座標で表される。ここでＺ座標は、表示装置１４の画面１５に対して垂直なＺ軸方向の座標であり、画面１５上の点はＺ＝０であり、画面１５の正面方向がＺ軸の正の方向である。Ｘ，Ｙ座標は、画面１５の矩形形状の直交する２辺の方向に延びる座標軸である。
【００４１】
「ジェスチャ」は、その操作指示に対応するジェスチャのパターン（種類）を表す。なお、図に例示した「ドラッグ」というジェスチャは、タップ（指先等の指示部をたたくように動かす動作）などで指定した開始点から指示部を移動させる動作であり、マウスのドラッグ操作と同様、例えば画面１５上で指定された開始点からカーソルを（指先の移動軌跡にしたがって）移動させる動作を表す。
【００４２】
「アプリケーション」は、その操作指示の対象となるアプリケーションプログラムまたはＯＳの識別情報である。図に例示した「文書ビューア」は、ＰＤＦ（Portable Document File）等のいずれかの文書フォーマットの電子文書の閲覧または編集に用いられるアプリケーションである。アプリケーションが異なれば、同じジェスチャでも異なる操作を指示するものと解釈され得る。
【００４３】
図３の例では、同じアプリケーション「文書ビューア」に対する同じ種類のジェスチャ「ドラッグ」が、位置範囲の異なる３つのケース（ＩＤ＝１，２，３）に分類されている。それら各ケースの位置範囲は、Ｘ，Ｙ方向については同じ範囲（すなわち画面１５の矩形範囲）であるが、Ｚ方向については異なっている。これら各ケースの位置範囲を図４に示す。図４に示すように、ＩＤ＝１に対応する位置範囲は、図４の（１）に示すＺ方向にについて０〜１５０ｍｍの範囲の直方体の領域である。また、ＩＤ＝２に対応する位置範囲は、（２）に示すＺ方向について１５０〜３００ｍｍの範囲の直方体の領域であり、ＩＤ＝３に対応する位置範囲は、（３）に示すＺ方向について３００〜４５０ｍｍの範囲の直方体の領域である。
【００４４】
図３に例示する定義情報が用いられる場合、同じジェスチャ「ドラッグ」が、画面１５に最も近い範囲（ＩＤ＝１）では「ペンツール」と解釈され、これよりも１段階遠い範囲では「てのひらツール」と解釈され、更に遠い範囲では「ページ送り」と解釈される。
【００４５】
ここで、「ペンツール」と「てのひらツール」と「ページ送り」とを比較した場合、「ページ送り」ではページを戻すのか進めるのかを指示すれば足りるのに対し、「てのひらツール」では表示画像をどの方向にどの程度スクロールするかを指示する必要がある。したがって、「てのひらツール」の方が「ページ送り」の場合よりも、ユーザの操作意図を伝えるために、より精密なジェスチャが要求される。また、「ペンツール」にてユーザの意図する線画を描くには、「てのひらツール」による画面スクロールよりも精密なジェスチャが要求される。
【００４６】
図３に例示した定義情報では、より精密なジェスチャが要求される操作ほど、その操作に対応するジェスチャの位置範囲が画面１５に近い範囲に設定されていることがわかる。この設定は、ユーザにとって直感的に理解しやすい。
【００４７】
なお、図３の例におけるＸ座標０〜５００ｍｍは画面１５の横幅の範囲であり、Ｙ座標０〜４００ｍｍは画面１５の縦の高さの範囲である。図３（及び図４）の例では、各位置範囲のＸ，Ｙ方向の幅は同じであったが、これはあくまで一例に過ぎない。この代わりに、例えば、画面１５から離れるほど、位置範囲のＸ，Ｙ方向の幅を広くしてもよい。
【００４８】
図３には、アプリケーションが１つしか示されていないが、ジェスチャによる操作入力が適用可能なアプリケーションが情報処理装置に複数インストールされている場合もある。このような場合、ジェスチャのパターンと位置範囲の組合せが同じであっても、適用先のアプリケーションが異なれば、「対応する操作」が異なる場合がある。
【００４９】
ジェスチャパターン制御部２２は、図３に例示した定義情報を参照して、ジェスチャエンコード部２０から入力されるジェスチャのパターンと実施位置との組合せに対応する操作指示（「対応する操作」）を特定する。またジェスチャ入力の適用先のアプリケーションが複数ある場合には、情報処理装置において現在アクティブ状態のアプリケーションと、ジェスチャエンコード部２０から入力されるジェスチャのパターン及び実施位置との組合せに対応する操作指示を、図３に例示したような定義情報から特定する。なお、ＯＳがアクティブ状態の場合（言い換えれば起動中のアプリケーションがすべてアクティブ状態でない場合）には、定義情報の中から、ジェスチャのパターン、実施位置及びＯＳの組合せに対応する操作指示が、ユーザのジェスチャの示す意味として特定される。
【００５０】
そして、ジェスチャパターン制御部２２は、そのように特定したジェスチャの意味、すなわち操作指示を、現在アクティブ状態にあるアプリケーションまたはＯＳ（ＯＳ／アプリケーション１０）に入力する。この入力を受けたアプリケーションまたはＯＳは、その操作指示に応じた処理を実行する。
【００５１】
ジェスチャパターン管理部２４が管理する定義情報は、カスタマイズ可能である。例えば、既存の操作指示の定義エントリを削除したり、既存の操作指示の定義エントリのうちのいずれかの項目を変更したり、位置範囲、ジェスチャ種類（パターン）、アプリケーション、及び操作指示（「対応する操作」）の組からなる新たな定義エントリを作成して定義情報に追加したりすることができる。
【００５２】
図５に、本実施形態のジェスチャエンコード部２０、ジェスチャパターン制御部２２及びジェスチャパターン管理部２４が行う処理手順の一例を示す。この手順では、まずジェスチャエンコード部２０が、センサドライバ１８から入力されるモーションセンサ１６の検出信号をエンコード（解析）し（Ｓ１０）、そのエンコードの結果である特徴量の情報から、その検出信号が示すジェスチャのパターン及び実施位置を抽出する（Ｓ１２）。次に、ジェスチャパターン制御部２２が、現在アクティブ状態であるアプリケーションまたはＯＳと、抽出されたジェスチャのパターン及び実施位置と、の組合せに対応する操作指示を、ジェスチャパターン管理部２４内の定義情報を参照して特定する（Ｓ１４）。Ｓ１４で、ジェスチャに対応する操作が見つからなかった場合（Ｓ１６の判定結果がＮ）、図示例では、そのジェスチャを無効とし、Ｓ１０に戻って次のジェスチャを認識する。Ｓ１４で、ジェスチャに対応する操作指示が見つかった場合（Ｓ１６の判定結果がＹ）、その操作指示を、そのアプリケーションまたはＯＳに入力する（Ｓ１８）。この入力に応じ、そのアプリケーションまたはＯＳは、ユーザがジェスチャにより指示した操作を実行する。
【００５３】
さて、モーションセンサ１６の検出信号が表す指示部（手など）の三次元位置は、モーションセンサ１６の座標系での位置である。これに対し、図３に例示した操作指示の定義情報における「位置」は、情報処理装置に接続された表示装置１４の画面１５を基準とする座標系での位置である。したがって、本実施形態の処理を実現するには、モーションセンサ１６の検出信号から求められる位置を、画面１５を基準とする座標系での位置へと座標変換する必要がある。
【００５４】
ここで、画面１５とモーションセンサ１６の位置関係が常に一定であれば、その座標変換は固定的である。この場合、その固定的な座標変換の情報をあらかじめ求めておき、ジェスチャエンコード部２０などがその情報を用いて座標変換を行えばよい。画面を内蔵した筐体内にモーションセンサ１６を内蔵した装置、例えば、タブレット端末に対してモーションセンサ１６を内蔵したものや、デジタル複合機（プリンタ、スキャナ、コピー機、ファクシミリ装置などの機能を兼ね備えた多機能装置）のディスプレイにモーションセンサ１６を内蔵したもの、などがこの一例である。
【００５５】
これに対し、画面１５とモーションセンサ１６の位置関係が可変の場合もある。例えば、モーションセンサ１６が情報処理装置に対してケーブルや無線で接続される場合がその典型例である。また、情報処理装置がノート型ＰＣ（パーソナルコンピュータ）である場合でも、モーションセンサ１６が本体（キーボードが設けられた筐体）に内蔵されている場合は、ディスプレイの開く角度が可変なので、ディスプレイとモーションセンサ１６との位置関係は可変である。
【００５６】
このように画面１５とモーションセンサ１６の位置関係が可変の場合、例えばモーションセンサ１６を起動した際に、その座標変換を求めるためのキャリブレーション処理を行う。このキャリブレーション処理では、ユーザに画面１５の四隅をタップ（指先で叩く動作）させ、それらタップされた位置をモーションセンサ１６で求める。このとき求められる四隅の点の位置は、モーションセンサ１６の座標系での位置である。例えば、この四隅の点のうちのあらかじめ定められた１つの点が画面１５基準の座標系の原点であり、他の３点のうち原点に近い方から２つの点が、Ｘ軸及びＹ軸方向を規定する。また、その四隅の点が規定する面（画面１５）に垂直な方向がＺ軸方向である。この関係から、モーションセンサ１６基準の座標系から画面１５基準の座標系への座標変換を計算すればよい。
【００５７】
キャリブレーション処理を行う際、例えば、ジェスチャパターン制御部２２が、情報処理装置の画面１５に画面の四隅をタップするようメッセージを表示してもよい。
【００５８】
次に、第１の変形例を説明する。この変形例は、操作指示の定義情報が上記実施例の場合と異なる。この第１の変形例で用いる操作指示の定義情報の一例を図６に示す。
【００５９】
図３との対比でわかるように、図６の定義情報は、複数のアプリケーションを想定したものである。
【００６０】
この例では、「文書ビューア」に対する「指先を右に送る」ジェスチャは、「改ページ」（ページ番号が大きくなる方向へのページ送り）操作に対応づけられているが、同じ「改ページ」がジェスチャの実施位置に応じて２つに細分されている。すなわち、画面１５からの距離が０〜１００ｍｍの位置範囲（ＩＤ＝１）でそのジェスチャが行われた場合、そのジェスチャは１ページずつの改ページと解釈される。一方、画面１５からの距離が１００〜５００ｍｍの位置範囲（ＩＤ＝２）でそのジェスチャが行われた場合、そのジェスチャは、１回のジェスチャでめくられるページ数が画面１５からの距離に応じて線形に増えるタイプの改ページと解釈される。
【００６１】
図７に、「指先を右に送る」ジェスチャの意味の、ジェスチャ実施位置の画面からの距離に応じた変化の様子を示す。図７に示すように、「指先を右に送る」ジェスチャの実施位置が画面から０〜１００ｍｍの距離（Ｚ座標）の範囲内の場合は、そのジェスチャは、文書ビューアに対して画面１５に表示するページを１ページ先に進める操作指示を表す。また、そのジェスチャの実施位置が画面から５００ｍｍの距離の位置である場合、そのジェスチャは、表示中の文書の全ページ数をめくる操作指示と解され、文書ビューアはそのジェスチャに応じてその文書の最後のページを表示する。また、ジェスチャの実施位置の画面からの距離が１００ｍｍ〜５００ｍｍの範囲内では、そのジェスチャにより進められるページ数は、１ページから文書の全ページ数の間で線形に増加するページ数のうち、その距離に応じたページ数となる。なお、１回あたりのページめくり数が異なる「改ページ」をそれぞれ別の操作と解すれば、Ｚ座標が１００ｍｍ〜５００ｍｍの範囲内で実施されるジェスチャは、それぞれその実施位置のＺ座標毎に異なる操作を指示するものと捉えることもできる。
【００６２】
図６及び図７の例では、画面１５から１００ｍｍ以遠では、ジェスチャに応じてめくるページ数が画面１５からの距離の増大に応じて連続的に増大したが、この代わりに、例えば図８に示すように距離の増大に応じてめくるページ数が段階的に増えるようにしてもよい。図７や図８に示すジェスチャ実施位置とページ数との関係は、ジェスチャに対応する操作指示の内容を規定する情報として、ジェスチャパターン管理部２４に登録される。
【００６３】
次に、図９及び図１０を参照して第２の変形例を説明する。この変形例では、ジェスチャによる操作指示に応じて、ＯＳ／アプリケーション１０が、その操作指示に応じたＧＵＩ（グラフィカルユーザインタフェース）を画面表示する。図９は、操作指示に応じたＧＵＩの例を示す図であり、図１０は、この変形例における操作指示の定義情報の例である。
【００６４】
図１０に示すように、この例では、画面１５からの距離が０〜１５０ｍｍの範囲内の位置で指先を左右に動かすジェスチャは、画面１５に表示した画像の拡大縮小操作を解釈される。例えば、指先を左方向に動かすジェスチャは縮小指示であり、右方向に動かすジェスチャは拡大指示である。また、同じ画面１５からの０〜１５０ｍｍの距離内のジェスチャでも、握った拳を動かすジェスチャは、ページ内でのドラッグ操作と解釈される。ページ内ドラッグにより、例えばページ内での範囲指定等が行われる。この例では、同じ０〜１５０ｍｍの距離範囲内で同じく手を右または左に動かす動作でも、手を握った状態で動かすか、指を一本伸ばして指先を動かすかで、ジェスチャの意味が異なる。
【００６５】
また、図１０の例では、画面１５からの距離が１５０〜３００ｍｍの範囲内で手を左右に移動させる動作は、１ページずつのページ送り操作と解釈される。例えば、手を左方向に動かすジェスチャは１ページ前に戻る操作を示し、右方向に動かすジェスチャは１ページ後ろに進む操作を示す。また、画面１５からの距離が３００〜４５０ｍｍの範囲内で手を右または左に移動させる動作は、１回のジェスチャで複数ページを送る操作と解釈される。この場合も、例えば、手を左方向に動かすジェスチャは前のページに戻る操作を示し、右方向に動かすジェスチャは後ろのページに進む操作を示す。
【００６６】
図１０の定義情報に従ってジェスチャ解釈を行った場合の情報処理装置の画面表示は，図９に例示したものとなる。例えば、画面１５から距離０〜１５０ｍｍの範囲で指先を右または左に動かすジェスチャ（「拡大縮小」）が行われた場合、画面１５には表示画像１５ａが表示される。表示画像１５ａには、表示の拡大縮小率の入力指示のためのＧＵＩ１５２が表示される。このＧＵＩ１５２上のスライダー１５３を例えばマウスで選択して右または左にドラッグすると、表示画像を拡大または縮小することができる。この実施形態では、そのマウスによる操作の代わりに、画面１５から距離０〜１５０ｍｍの範囲で指先を右または左に動かすジェスチャを用いている。
【００６７】
また、画面１５から距離１５０〜３００ｍｍの範囲で手を右または左に動かすジェスチャ（「１ページ送り」）が行われた場合、画面１５には表示画像１５ｂが表示される。表示画像１５ｂには、「現在表示中のページ番号／全ページ数」を示す表示と、前後各方向への１ページずつのページ送りを指示するＧＵＩボタンを含んだＧＵＩ１５４が表示される。このジェスチャの他にも、マウス等によりＧＵＩ１５４のページ送りボタンをクリックしたりすることで、表示するページを戻したり進めたりすることができる。
【００６８】
また、画面１５から距離３００〜４５０ｍｍの範囲で手を右または左に動かすジェスチャ（複数ページ送り）が行われた場合、画面１５には表示画像１５ｃが表示される。表示画像１５ｃには、各ページのサムネイル画像をページ順に並べたＧＵＩ１５６が表示される。このＧＵＩ１５６内のうち、メイン表示欄に表示されたページに対応するサムネイルは強調表示される。手を右に動かせば、その動かした距離に応じたページ数だけ進んだページがメイン表示欄に表示される。
【００６９】
この例では、図９に例示したように画面１５上に操作用のＧＵＩ１５２、１５４、１５６が表示されるので、ユーザは、この表示から現在のジェスチャで選択中の操作モードが「拡大縮小」、「１ページ送り」、「複数ページ送り」のいずれであるかを認識する。
【００７０】
なお、図９の例のようにジェスチャにより指示された操作に対応する操作用のＧＵＩ１５２、１５４、１５６を表示する代わりに、図１１に示すように、その指示された操作を表すアイコン１５８ａ及び１５８ｂを画面１５上に表示してもよい。
【００７１】
図１１の（ａ）の例では、画面１５から離れた位置で指を動かすジェスチャが、ジェスチャパターン制御部２２により「てのひらツール」操作と認識される。ジェスチャパターン制御部２２は、その認識結果に従い、ＯＳ／アプリケーション１０（「文書ビューア」）に対して、「てのひらツール」操作の実行を指示すると共に、画面１５上に表示した「文書ビューア」の操作モード選択用のアイコン群のうち「てのひらツール」のアイコン１５８ａを選択（アクティブ）状態とするよう指示する。これにより、「てのひらツール」のアイコン１５８ａが選択状態を示す表示形態となり、ユーザはこの表示から、現在選択中の操作モードが「てのひらツール」であることを知る。
【００７２】
同様に，図１１の（ｂ）の例では、画面１５に近い位置で指を動かすジェスチャが、ジェスチャパターン制御部２２により「ペンツール」操作と認識される。ジェスチャパターン制御部２２は、その認識結果に従い、ＯＳ／アプリケーション１０（「文書ビューア」）に対して、「ペンツール」操作の実行を指示すると共に、画面１５上に表示した「文書ビューア」の操作モード選択用のアイコン群のうち「ペンツール」のアイコン１５８ｂを選択状態とするよう指示する。これにより、「ペンツール」のアイコン１５８ｂが選択状態を示す表示形態となり、ユーザはこの表示から、現在選択中の操作モードが「ペンツール」であることを知る。
【００７３】
次に、図１２及び図１３を参照して、第３の変形例を説明する。前述のように、本実施形態の制御の一例では、ジェスチャの実施位置（例えば画面１５からの距離）がどの範囲にあるかに応じて、同じジェスチャの意味づけを変える。ここで、ジェスチャが行われている間の各時点の指示部（指先など）の位置をそのジェスチャの実施位置と捉える場合、複数の位置範囲にまたがるジェスチャが問題となる。例えば、図３の定義情報を用いる例において、ＩＤ＝１の位置範囲（画面から０〜１５０ｍｍ）内で指先でドラッグジェスチャを行うことで「ペンツール」により画面上に線画の描画を開始した場合を考える。そのドラッグジェスチャの中で、指先が画面から遠ざかる方向に動き、ＩＤ＝２の位置範囲（「てのひらツール」）に入ってしまうことが起こりえる。このような場合、１つの例として、指示部（指先など）が最初にジェスチャが認識された位置範囲から外れた時点で、そのジェスチャが終了したと見なす方式を採ってもよい。しかし、ユーザにとってみれば、指示部の連続した動きは画面からの距離がある程度変わっても同じ操作を意図したものである可能性が高いので、そのような場合でも同じ操作の続きと解釈した方がよい。
【００７４】
そこで、この変形例では、ジェスチャのパターンと実施位置の組合せからそのジェスチャの意味、すなわち「対応する操作」、を認識すると、その操作に対応する位置範囲を拡張する。その操作に対応する拡張（拡大）後の位置範囲は、通常時（拡張の前）の位置範囲を内包し、通常時の位置範囲よりも大きい。この拡張により、そのジェスチャの中で指先等の指示部が画面に対してある程度近づいたり遠ざかったりしても、その拡張された位置範囲から外れなければ、同じジェスチャが連続しているものと認識される。
【００７５】
図１２に、この変形例の処理手順の一例を示す。この手順では、まずジェスチャエンコード部２０がモーションセンサ１６の検出信号をエンコードし（Ｓ２０）、そのエンコードの結果から、その検出信号が示すジェスチャのパターン及び実施位置を抽出する（Ｓ２２）。次に、ジェスチャパターン制御部２２が、Ｓ２２の抽出結果に基づき、ジェスチャが開始されたかどうかを判定する（Ｓ２４）。Ｓ２４では、例えば、指示部（指先など）がモーションセンサ１６の検知領域内に入ってきたとき、指示部が何の操作にも対応していない動作状態であるとき（例えばほぼ停止している場合）から急激に動き出したとき、指示部がジェスチャの開始を示す特定の動きを示したとき、指示部がジェスチャの終了を示す特定の動きを示した後に指示部の動きを検出した場合、指示部が検知領域内のあらかじめ定めた特定の座標をタッチする動作を示した場合などに、ジェスチャが開始されたと判定する。ジェスチャの開始を検知しなかった場合、Ｓ２０に戻る。
【００７６】
Ｓ２４でジェスチャの開始を検知した場合、ジェスチャパターン制御部２２が、現在アクティブ状態であるアプリケーションまたはＯＳと、抽出されたジェスチャのパターン及び実施位置と、の組合せに対応する操作指示を、ジェスチャパターン管理部２４を参照して特定する（Ｓ２６）。Ｓ２６で、ジェスチャに対応する操作が見つからなかった場合（Ｓ２８の判定結果がＮ）、図示例では、そのジェスチャを無効とし、Ｓ２０に戻って次のジェスチャを認識する。Ｓ２６で、ジェスチャに対応する操作指示が見つかった場合（Ｓ２８の判定結果がＹ）、その操作指示に対応する位置範囲を拡大すると共に（Ｓ３９）、
その操作指示を、そのアプリケーションまたはＯＳに入力する（Ｓ３２）。この入力に応じ、そのアプリケーションまたはＯＳは、ユーザがジェスチャにより指示した操作を実行する。処理はＳ２０に戻り、ジェスチャの認識処理が続行される。なお、操作指示に対応する位置範囲を拡大した場合、その位置範囲に隣接する他の操作指示の位置範囲は、操作指示に対応する位置範囲が拡大された分だけ削減する。
【００７７】
Ｓ２４でジェスチャの開始ではないと判定した場合、ジェスチャパターン制御部２２は、Ｓ２０及びＳ２２で抽出されたジェスチャのパターン及び実施位置が、現在選択中の操作に整合しているか否かを判定する（Ｓ３４）。すなわち、ジェスチャの開始（Ｓ２４の判定結果がＹ）時に、Ｓ２６にて、ユーザがジェスチャにより選択した操作が特定されるが、その開始後に続くジェスチャが、その選択された操作に合致しているかを判定するのである。この判定はＳ２６と同様ジェスチャのパターンと実施位置の組合せに基づき行われる。ただし、この判定では、操作指示の定義情報（例えば図３参照）として、ジェスチャ開始時に特定された操作に対応する位置範囲が拡大され、この位置範囲に隣接する他の操作に対応する位置範囲がその拡大分だけ縮小されたものを用いる。Ｓ２２で抽出されたジェスチャのパターンが現在選択中の操作に対応するジェスチャパターンに該当しており、Ｓ２２で抽出されたジェスチャ実施位置がその操作に対応する拡大された位置範囲内に属していれば、そのジェスチャは現在の操作に整合していると判定される。Ｓ３４にて「整合している」と判定した場合、ジェスチャパターン制御部２２は、そのジェスチャに応じた操作パラメータを、現在選択中の操作のパラメータとして、ＯＳ／アプリケーション１０に送信する（Ｓ３６）。例えば、ジェスチャ開始時にそのジェスチャが「ペンツール」操作であると判定された後、引き続き移動する指先の位置が、「ペンツール」に対応する位置範囲（ただしＳ３０で拡大されたもの）内にあれば、その指先のＸ，Ｙ座標に対応する画面１５上の座標の情報が、「ペンツール」のペン先の座標を示すパラメータとして、ジェスチャパターン制御部２２からＯＳ／アプリケーションに通知される。Ｓ３４にて「整合していない」と判定した場合、ジェスチャパターン制御部２２は、ＯＳまたはアプリケーションに対して、現在選択中の操作の選択解除を指示し（Ｓ３８）、操作指示の定義情報におけるその操作に対応する位置範囲を、拡大前（通常時）の範囲へとリセットする。
【００７８】
以上、本発明の実施形態及び変形例について説明した。以上に説明した例では、操作指示に対応するジェスチャの位置範囲として、情報処理装置の画面に垂直な方向について区分された位置範囲を用いる場合を例示したが、これは一例に過ぎない。画面に平行な方向に区分された位置範囲や、画面に垂直な方向と平行な方向の両方について区分された位置範囲などを用いてもよい。
【００７９】
また、以上の例では、画面１５に対する表示と関連する操作（描画、スクロール、ページ送りなど）についてのジェスチャ入力の例を示したが、本実施形態の制御処理は、画面表示と関係しない操作にも適用可能である。例えば、電子楽器に対する操作指示の入力に本実施形態の仕組みを適用することも可能である。例えば同じ「ビブラート」を示すジェスチャでも、そのジェスチャの実施位置の電子楽器からの距離に応じてビブラートの量（音程の振れ幅）を変えるなどである。
【００８０】
以上に説明した実施形態の処理は、例えば、パーソナルコンピュータやタブレット端末などのコンピュータ、デジタル複合機などの装置に内蔵されたコンピュータ等の、コンピュータ上で実行されるプログラムとして実装される。ここで言うコンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）やフラッシュメモリ等の二次記憶を制御する二次記憶コントローラ、各種Ｉ／Ｏ（入出力）インタフェース、無線又は有線のネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤ、ブルーレイディスクなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、フラッシュメモリ等の二次記憶装置に保存され、コンピュータにインストールされる。二次記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
【符号の説明】
【００８１】
１０  ＯＳ／アプリケーション、１２  表示ドライバ、１４  表示装置、１５  画面、１５ａ，１５ｂ，１５ｃ  表示画像、１６  モーションセンサ、１８  センサドライバ、２０  ジェスチャエンコード部、２２  ジェスチャパターン制御部、２４  ジェスチャパターン管理部。
【図２】
2015035103.tif 000003
【図３】
2015035103.tif 000004
【図４】
2015035103.tif 000005
【図５】
2015035103.tif 000006
【図６】
2015035103.tif 000007
【図７】
2015035103.tif 000008
【図８】
2015035103.tif 000009
【図１０】
2015035103.tif 000010
【図１２】
2015035103.tif 000011
【図１】
2015035103.tif 000012
【図９】
2015035103.tif 000013
【図１１】
2015035103.tif 000014