(57)【要約】【課題】ユーザが繰り返し動作をしなくとも表示の変更を継続することを目的とする。【解決手段】操作面の操作対象に対するジェスチャを検出する検出手段と、検出手段により検出されたジェスチャに応じて操作対象の表示を変更する制御手段と、を有し、制御手段は、ジェスチャがマルチタッチのジェスチャであり、マルチタッチのジェスチャに関する値の総変化量が閾値以上の場合、表示の変更を継続するよう制御する。【選択図】図４
2019008631.tif 000002
【特許請求の範囲】
【請求項１】
操作面の操作対象に対するジェスチャを検出する検出手段と、
前記検出手段により検出された前記ジェスチャに応じて前記操作対象の表示を変更する制御手段と、
を有し、
前記制御手段は、前記ジェスチャがマルチタッチのジェスチャであり、前記マルチタッチのジェスチャに関する値の総変化量が閾値以上の場合、前記表示の変更を継続するよう制御する情報処理装置。
【請求項２】
前記マルチタッチのジェスチャは、マルチタッチの拡大ジェスチャであり、
前記制御手段は、前記拡大ジェスチャに応じて前記操作対象の表示を拡大するよう変更し、前記拡大ジェスチャに関する値として、前記拡大ジェスチャに関する二点間の距離の総変化量が閾値以上の場合、前記表示の拡大を継続するよう制御する請求項１記載の情報処理装置。
【請求項３】
前記マルチタッチのジェスチャは、マルチタッチの縮小ジェスチャであり、
前記制御手段は、前記縮小ジェスチャに応じて前記操作対象の表示を縮小するよう変更し、前記縮小ジェスチャに関する値として、前記縮小ジェスチャに関する二点間の距離の総変化量が閾値以上の場合、前記表示の縮小を継続するよう制御する請求項１記載の情報処理装置。
【請求項４】
前記二点間の距離の可動範囲を推定する推定手段を更に有し、
前記閾値は、前記推定手段により推定された前記二点間の距離の可動範囲である請求項２又は３記載の情報処理装置。
【請求項５】
前記マルチタッチのジェスチャは、マルチタッチの回転ジェスチャであり、
前記制御手段は、前記回転ジェスチャに応じて前記操作対象の表示を回転するよう変更し、前記回転ジェスチャに関する値として、前記回転ジェスチャに関する回転角度の総変化量が閾値以上の場合、前記表示の回転を継続するよう制御する請求項１記載の情報処理装置。
【請求項６】
前記回転角度の可動範囲を推定する推定手段を更に有し、
前記閾値は、前記推定手段により推定された前記回転角度の可動範囲である請求項５記載の情報処理装置。
【請求項７】
前記制御手段は、速度減衰率に応じて単位時間ごとに前記表示の変更の速度を減衰させる請求項１乃至６何れか１項記載の情報処理装置。
【請求項８】
前記操作対象は、前記操作面に表示された画像である請求項１乃至７何れか１項記載の情報処理装置。
【請求項９】
前記操作対象を操作する操作体の前記操作面からの距離を計測する計測手段を更に備え、
前記制御手段は、前記計測手段で計測された距離が操作体の高さ閾値以上の場合、前記表示の変更の継続を終了する請求項１乃至８何れか１項記載の情報処理装置。
【請求項１０】
前記制御手段は、前記操作体の前記操作面からの距離がタッチ判定の閾値を超え前記操作体の高さ閾値未満の場合、前記距離に応じて前記表示の変更の速度を減衰させ、前記距離が前記操作体の高さ閾値以上の場合、前記表示の変更の継続を終了する請求項９記載の情報処理装置。
【請求項１１】
前記操作体は、人の手であり、
前記制御手段は、前記人の手の第１の指先位置、又は第２の指先位置の前記操作面からの距離がタッチ判定の閾値を超え前記手の重心位置の前記操作面からの距離が前記操作体の高さ閾値未満の場合、前記距離に応じて前記表示の変更の速度を減衰させ、前記手の重心位置の前記操作面からの距離が前記操作体の高さ閾値以上の場合、前記表示の変更の継続を終了する請求項１０記載の情報処理装置。
【請求項１２】
前記制御手段は、前記ジェスチャが一つの操作体で行われたマルチタッチのジェスチャか、二つの操作体で行われたマルチタッチのジェスチャかを判定し、前記ジェスチャが一つの操作体で行われたマルチタッチのジェスチャであり、前記マルチタッチのジェスチャに関する値の総変化量が閾値以上の場合、前記表示の変更を継続するよう制御する請求項１乃至１１何れか１項記載の情報処理装置。
【請求項１３】
前記制御手段は、前記ジェスチャが一つの操作体で行われたマルチタッチのジェスチャか、二つの操作体で行われたマルチタッチのジェスチャかを判定し、前記一つの操作体で行われたマルチタッチのジェスチャと前記二つの操作体で行われたマルチタッチのジェスチャとで前記閾値を変更する請求項１乃至１１何れか１項記載の情報処理装置。
【請求項１４】
情報処理装置が実行する情報処理方法であって、
操作面の操作対象に対するジェスチャを検出する検出工程と、
前記検出工程により検出された前記ジェスチャに応じて前記操作対象の表示を変更する制御工程と、
を含み、
前記制御工程では、前記ジェスチャがマルチタッチのジェスチャであり、前記マルチタッチのジェスチャに関する値の総変化量が閾値以上の場合、前記表示の変更を継続するよう制御する情報処理方法。
【請求項１５】
コンピュータを、請求項１乃至１３何れか１項記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
タッチパネルをつけたディスプレイや、赤外線タッチセンサ・距離画像センサ等をつけたプロジェクタ投影面に表示されるＵＩ（ユーザインターフェース）オブジェクトを操作するジェスチャ認識技術が広まっている。特に、タッチ操作は、タッチ、ドラッグ、フリック、拡大縮小、回転等様々な直感操作が実現されている。
特許文献１では、入力の間に１つ以上の接触の離昇を決定し、離昇の速度を決定し、離昇の速度に基づき複数の速度範囲に対応する複数の減衰率の１つを選択し、その選択された減衰率に基づき入力の動きを継続させる技術が開示されている。
特許文献２では、ジェスチャ操作が同じジェスチャ方向に、予め定められた回数、連続して繰り返された場合、画面移動変形型機能を実行させるための継続アイコンを表示面に表示させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１３−５３２８７１号公報
【特許文献２】特許第５７３８４９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
二点をタッチしてその二点間の距離の変化に応じて表示を拡大縮小させる拡大縮小ジェスチャや、二点間の角度の変化に応じて表示を回転させる回転ジェスチャでは、ユーザが二点をタッチする手等の操作体の可動範囲に限りがある。そのため、所望の大きさや角度になるまでユーザが何度も繰り返しジェスチャを行う必要がある場合がある。また特許文献２では繰り返し動作を検知することで継続アイコンを表示させる技術が開示されている。しかし、ユーザが、継続アイコンを選択する操作をするために操作種類の切り替えを行うことなく、二点の位置を移動させる操作中に、操作対象を所望の大きさや角度に変更できることが望ましい。また、二点の位置を移動させる操作を操作対象が所望の大きさや角度になるまで繰り返さなくても、所望の大きさや角度に変更できることが望ましい。
また、所望の倍率又は角度に至らず動かせる限界まで大きく手指を動かしてジェスチャする場合、手を操作面から離すまでの間に自然と二点間の距離又は角度が逆方向に動いてしまい、所望と逆方向の拡大縮小又は回転が発生してしまうことがある。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、操作面の操作対象に対するジェスチャを検出する検出手段と、前記検出手段により検出された前記ジェスチャに応じて前記操作対象の表示を変更する制御手段と、を有し、前記制御手段は、前記ジェスチャがマルチタッチのジェスチャであり、前記マルチタッチのジェスチャに関する値の総変化量が閾値以上の場合、前記表示の変更を継続するよう制御する。
【発明の効果】
【０００６】
本発明によれば、ユーザが、操作対象が所望の大きさや角度になるまで、二点の位置を移動させる操作を、繰り返さなくても、表示の変更を継続することができる。
【図面の簡単な説明】
【０００７】
【図１】画像処理装置のハードウェア構成の一例を示す図である。
【図２】画像処理装置の設置例を示す図である。
【図３】画像処理装置の機能構成の一例を示す図である。
【図４】操作検出の情報処理の一例を示すフローチャートである。
【図５】距離画像の画像座標系と三次元位置座標系との関係を示す図である。
【図６】Ｓ４０２の処理の概要を説明するための図である。
【図７】操作面を水平に見た図である。
【図８】回転角度の可動範囲の推定方法の一例を示す図である。
【図９】二点間距離の可動範囲の推定方法の一例を示す図である。
【図１０】操作体の位置情報の一例を示す図である。
【図１１】ＵＩオブジェクトの拡大の一例を示す図である。
【図１２】ＵＩオブジェクトの縮小の一例を示す図である。
【図１３】ＵＩオブジェクトの回転の一例を示す図である。
【図１４】マルチタッチの指先位置の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
図１は、画像処理装置のハードウェア構成の一例を示す図である。ＣＰＵ（中央処理装置）２０１は、画像処理装置全体を制御する。ＲＯＭ２０２は、プログラム等を格納する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアを提供するために用いられる。記憶装置２０４は、ハードディスク等の記憶装置であり、データやプログラムを格納する。距離画像センサ２０５は、画角に含む各画素までの距離を取得する。距離画像センサ２０５は、赤外光等の光を投射してその反射時間によって測定するものや、パターン光を照射してそのパターン形状から距離を計測するもの、又はステレオカメラ等、どのようなものでもよい。本実施形態では後述する入力部１０１が入力するデータは距離画像センサ２０５によって取得された距離画像として説明する。表示装置２０６は、ＵＩオブジェクトやテキスト情報等の画像を表示するためのディスプレイ、プロジェクタ等である。ＣＰＵ２０１が、ＲＯＭ２０２又は記憶装置２０４に記憶されたプログラムに基づき処理を実行することによって後述する図３の機能構成及び後述する図４に示すフローチャートの処理が実現される。
【００１０】
図２は、画像処理装置の設置例を示す図である。操作台３０１は、画像を投影する操作台である。操作台３０１が基本的な操作面である。表示装置２０６は、操作台３０１へＵＩや情報の画像を投影する。ユーザは、表示装置２０６によって操作面に投影された画像に対してタッチ等の操作を行う。距離画像センサ２０５は、ユーザの操作を検出する本装置の入力として、各画素に距離情報を保持する距離画像を取得する。
【００１１】
図３は、画像処理装置の機能構成の一例を示す図である。入力部１０１は、データを入力する。本実施形態では入力部１０１は、距離画像センサ２０５によって取得された距離画像を入力データとして入力する。操作体検出部１０２は、入力された距離画像から手等の操作体を検出する。位置取得部１０３は、操作体の位置を取得する。タッチ検出部１０４は、操作面へのタッチ及びタッチ位置を検出する。ジェスチャ検出部１０５は、タッチ中の拡大縮小、回転等のジェスチャを検出する。制御部１０６は、ジェスチャ検出部１０５によって検出されるジェスチャに従ってＵＩオブジェクトの挙動を制御する。表示部１０７は、制御部１０６に従って制御されたＵＩオブジェクトを表示装置２０６に表示する。
【００１２】
図４は、画像処理装置における操作検出の情報処理の一例を示すフローチャートである。
Ｓ４０１において、入力部１０１は、データを入力する。本実施形態では入力部１０１は、入力データとして距離画像センサ２０５から取得された距離画像を入力する。図５は、距離画像の画像座標系と三次元位置座標系との関係を示す図である。図５（ａ）は距離画像である。画像中の各座標（ｘ、ｙ）に、距離画像センサ２０５からの距離Ｄを保持する。図５（ｂ）は操作面での三次元座標(Ｘ，Ｙ，Ｚ)を表す図である。三次元位置座標系と画像座標系との変換式は式（１）で表される。
【数１】
2019008631.tif 000003
ここで、Ｄは距離画像の各画素から取得する距離であり、ｒ00〜ｒ22、ｔ0〜ｔ2、ｆx、ｆy、ｃx、ｃyはセンサ設置時にキャリブレーションによって予め求めるパラメータである。キャリブレーションで求めるパラメータは、三次元位置座標(Ｘ，Ｙ、Ｚ)と画像座標（ｘ，ｙ）との対応関係が取れた既知の点がパラメータ数以上あれば、最小二乗法等で値を予め計算しておくことができる。このパラメータを用いて、式（１）により距離画像の（ｘ、ｙ、Ｄ）を三次元位置座標系に変換することができる。
【００１３】
次に、Ｓ４０２において、操作体検出部１０２は、手等の操作体を入力データから検出する。
図６は、Ｓ４０２の処理の概要を説明するための図である。距離画像６０１は、入力データである距離画像である。操作面６０２は、距離画像６０１に映る操作面である。操作体６０３は、距離画像６０１に映る手等の操作体である。操作体は手でなくとも、二点をタッチ可能な器具等でもよい。操作体検出部１０２は、距離画像６０１における操作体６０３の領域を検出する。操作体検出部１０２による操作体６０３の領域を検出する方法は背景差分、フレーム間差分、機械学習による手検出等、どのような方法でもよい。操作体検出部１０２は、更に、距離画像６０１における一つ以上の指先位置を検出する。図６において指先位置６０４は操作体６０３の指先位置を示す。図６の例では、操作体検出部１０２は、人差し指の指先と親指の指先との二点を指先位置として検出している。操作体検出部１０２による操作体６０３の領域からの指先位置６０４の検出方法は、輪郭形状やテンプレートマッチング、機械学習による指先検出等、どのようなものでもよい。
【００１４】
Ｓ４０３において、位置取得部１０３は、操作体検出部１０２が検出した距離画像中の指先位置を入力として、式（１）に基づき三次元座標中の指先位置を操作位置として取得する。
Ｓ４０４において、制御部１０６は、後述する拡大縮小又は回転動作の継続中か否かを判定する。制御部１０６は、継続中の場合（Ｓ４０４においてＹｅｓ）、Ｓ４１２へ進み、継続中でない場合（Ｓ４０４においてＮｏ）、Ｓ４０５へ進む。例えば、制御部１０６は、ＲＡＭ２０３等にＵＩオブジェクトの表示の変更を継続させる旨の情報が記憶されている場合、拡大縮小又は回転動作の継続中であると判定する。一方、制御部１０６は、ＲＡＭ２０３等にＵＩオブジェクトの表示の変更を継続させる旨の情報が記憶されていない場合、拡大縮小又は回転動作の継続中でないと判定する。
Ｓ４０５において、タッチ検出部１０４は、操作位置のタッチ／非タッチ及びそのタッチ位置を検出する。タッチ検出の様子を図７に示す。図７は、操作面を水平に見た図である。操作面７０１は、三次元座標における操作面を表す。タッチ判定閾値７０２は、タッチ判定のために操作面７０１から設定された高さのタッチ判定閾値を表す。タッチ検出部１０４は、指先の高さが操作面７０１からタッチ判定閾値７０２以内の高さのときにタッチとみなし、指先の高さが操作面７０１からタッチ判定閾値７０２の高さよりも離れている場合には非タッチとみなす。タッチ検出部１０４は、操作位置のタッチを検出した場合（Ｓ４０５においてＹｅｓ）、Ｓ４０６へ進み、検出しなかった場合（Ｓ４０５においてＮｏ）、Ｓ４１４へ進む。
【００１５】
Ｓ４０６において、ジェスチャ検出部１０５は、マルチタッチジェスチャを検出する。マルチタッチジェスチャとは、ひとつの手の人差し指と親指、又は二つの手のそれぞれの一本指のように、二つのタッチ位置の軌跡によるジェスチャである。本実施形態では、二つのタッチ位置の二点間距離が変化することに基づき倍率を取得する拡大・縮小と、二つのタッチ位置を結ぶ線の角度が変化することに基づき回転角を取得する回転とをマルチタッチジェスチャとする。ジェスチャ検出部１０５はマルチタッチジェスチャを検出した場合（Ｓ４０６においてＹｅｓ）、Ｓ４０７へ進み、マルチタッチジェスチャを検出しない場合（Ｓ４０６においてＮｏ）、Ｓ４１４へ進む。
Ｓ４０７において、制御部１０６は、マルチタッチジェスチャに基づく拡大縮小又は回転の制御をＵＩオブジェクトの画像に対して行う。制御部１０６は、マルチタッチジェスチャのタッチ位置とＵＩオブジェクトの位置とのヒット判定を行って操作対象のＵＩオブジェクトを決定し、そのＵＩオブジェクトを制御する。制御部１０６は、マルチタッチジェスチャが拡大・縮小であれば、その倍率に併せて操作対象のＵＩオブジェクトの画像を拡大・縮小させる。また、制御部１０６は、マルチタッチジェスチャが回転であれば、その回転角に併せて操作対象のＵＩオブジェクトの画像を回転させる。
【００１６】
Ｓ４０８において、位置取得部１０３は、マルチタッチ開始時における操作体の二点間距離の可動範囲又は角度の可動範囲を推定する。推定方法はどのようなものでもよいが、次に代表的な例を示す。
図８は、回転ジェスチャに関する回転角度の可動範囲の推定方法の一例を示す図である。手の方向８０１は、距離画像から求められる手の方向である。位置取得部１０３は、手の重心位置、手先位置、操作面への侵入位置等の代表点二点を結ぶことで手の方向８０１を得ることができる。手の可動範囲８０２は、手の方向８０１に対して設定された手の角度の可動範囲である。二点の方向８０３は、マルチタッチ開始時の二点を結ぶ方向である。位置取得部１０３は、手の可動範囲８０２を二点の方向８０３に対する相対角に変換することで回転角度の可動範囲を得ることができる。
図９は、拡大ジェスチャ・縮小ジェスチャに関する二点間距離の可動範囲の推定方法の一例を示す図である。図９(ａ)にはマルチタッチで縮小する可動限界である指先をくっつけた際のときの指先二点の三次元位置を表している。二点間距離９０１は、指先をくっつけた際の二点間距離であり、これに相当する値を可動範囲の最小値として予め設定すればよい。
可動範囲の最大値も同様に予め二点間距離を設定してもよいが、この場合は手の大きさによる二点間距離の最大値の違いを無視することになる。手の大きさの違いを加味した可動範囲の推定方法を図９(ｂ)、図９(ｃ)に示す。
【００１７】
図９（ｂ）にはマルチタッチ中に取得される距離画像を表している。マルチタッチの指先９０２は、距離画像中で検出される二点のマルチタッチの指先である。図９(ｃ)には三次元座標におけるマルチタッチ時の指の状態を表している。マルチタッチの指先位置９０３は、三次元座標におけるマルチタッチの指先位置である。二点間距離９０４は、三次元座標における指先距離である。ここで更に、位置取得部１０３は、マルチタッチを行う指の交点９０５を検出する。位置取得部１０３は、交点９０５を、距離画像から画像特徴に基づき検出してもよいし、三次元座標中の指先位置から検出してもよい。例えば、位置取得部１０３は、距離画像中のマルチタッチの指先９０２の周辺の操作体領域のデプス情報から、三次元座標中の指先の傾きを求め、傾き方向に伸ばした二つの線の近接点を交点とする。二つの線９０６は、三次元座標中のマルチタッチの指先位置９０３から指先の傾き方向に伸ばした線である。位置取得部１０３は、これらの線の近接点として交点９０５を求める。位置取得部１０３は、交点９０５を求めたら、交点に対する二つの線９０６の操作面に対する垂直方向角度を求める。垂直方向角度９０７はこのようにして求められた垂直方向角度である。
この垂直方向角度９０７に対し、手を開いたときの最大角度を予め設定する。そして、位置取得部１０３は、二つの線９０６の長さを固定して垂直方向角度９０７を最大角度に設定したときの二点間距離９０４を再計算する。そして、位置取得部１０３は、この距離を二点間距離の可動範囲の最大値とする。
以上のように、Ｓ４０８において、位置取得部１０３は、回転の場合の二点の回転角度、拡大、縮小の場合の二点間距離のそれぞれの可動範囲を推定する。
【００１８】
Ｓ４０９において、制御部１０６は、拡大、縮小の場合の二点間距離、又は回転の場合の二点を結ぶ線の角度がタッチ中に変化した総変化量が閾値以上か否かを判定する。制御部１０６は、閾値以上と判定した場合（Ｓ４０９においてＹｅｓ）、Ｓ４１０へ進み、閾値未満と判定した場合（Ｓ４０９においてＮｏ）、Ｓ４１４へ進む。拡大、縮小の場合の二点間距離の総変化量とは、タッチ中に二点間距離がどれほど大きく、又は小さく変化したかを表す。回転の場合の角度がタッチ中に変化した総変化量とは、タッチ中に二点を結ぶ線の角度が時計回り又は反時計回りにどれほど変わったかを表す。２回以上、拡大/縮小/回転の操作を繰り返した場合は、タッチ中に移動した距離の総和が相変化量である。制御部１０６は、総変化量の閾値を、Ｓ４０８で求めた、回転、拡大、縮小の可動範囲（最大値と最小値との差）に基づき決定する。例えば総変化量が可動範囲のＸ％（１２０％など）に達するということは、１回の操作では足りないほど、ユーザは大きく拡大縮小、又は回転させたいということを意図するため、制御部１０６は、繰り返し操作しなくとも制御が継続されるようＳ４１０へ進む。
但し本実施形態はこれに限るものでない。例えば、制御部１０６は、Ｓ４０８の可動範囲を逐次推定するのではなく、総変化量が設定された設定値に達したか否かで判定してもよい。この場合、処理の流れからＳ４０８は不要となる。
【００１９】
Ｓ４１０において、位置取得部１０３は、マルチタッチを行う指先の速度を取得する。位置取得部１０３は、拡大・縮小の場合は二点間距離の変動速度を求め、回転の場合は回転角の変動速度を求める。
Ｓ４１１において、制御部１０６は、Ｓ４１０で取得した速度に基づいて操作対象となるＵＩオブジェクトの拡大縮小動作又は回転動作を継続させる。継続中においてはその時点の速度に応じて、ＵＩオブジェクトの拡大・縮小又は回転が、二点の指先の位置に関わらず継続される。例えば、制御部１０６は、ＲＡＭ２０３等にＵＩオブジェクトの表示の変更を継続させる旨の情報を記憶する。
【００２０】
Ｓ４１２において、制御部１０６は、設定された速度減衰率に応じて単位時間ごとに拡大縮小又は回転動作の速度を減衰させる。制御部１０６は、式（２）に基づいて減衰させてもよいし、他の式に基づいて減衰させてもよい。
ｖ（ｔ）＝αｖ（ｔ−１）                                        式（２）
ここで、ｖ（ｔ）は時刻ｔの速度である。αは減衰率で１以下の値である。
更に、制御部１０６は、速度が所定値以下になった場合は動作の継続を停止させる。このような速度変更により、拡大・縮小や回転の動作が、慣性を持ったように制御され、その後、摩擦を持ったように徐々に速度が減衰されて停止する動作をユーザは体感することができる。
【００２１】
Ｓ４１３において、制御部１０６は、操作体の位置に基づいて継続する拡大縮小又は回転動作の変更を行う。本実施形態では操作体である指を含む手の高さに応じて速度変更を行う例を説明する。図１０は、Ｓ４１３で継続動作の変更に用いる操作体の位置情報の一例を示す図である。手の先端１００１は、操作体である手の先端である。先端の高さｈ１，ｈ２は、手の先端１００１の三次元座標の高さ（操作面との距離）を表す。重心１００２は、操作体の重心である。操作体の重心高さｈ３は重心１００２の三次元座標の高さ（操作面との距離）を表す。操作体の先端の高さｈ１，ｈ２がそれぞれタッチ判定閾値７０２以下に存在するときはタッチとみなされ、タッチ判定閾値７０２よりも高くに存在するときは非タッチとみなされる。操作体高さ閾値１００３は、操作体の重心高さｈ３の操作体高さ閾値である。この操作体高さ閾値１００３以上に重心が上がる場合に、制御部１０６は、継続していた動作速度を０にして停止する。操作体の二つの指の高さｈ１，ｈ２の何れか一方がタッチ判定閾値７０２から上がると、制御部１０６は、操作体の重心高さｈ３に応じて拡大・縮小又は回転の速度を減衰させる。制御部１０６は、操作体の重心高さｈ３の高さが高ければ高いほど大きく減衰するよう減衰率を設定し、式（３）により減衰させる。
ｖ'（ｔ）＝β（ｈ３）ｖ（ｔ）                                      式（３）
ここで、ｖ（ｔ）は時刻ｔの変更前の速度である。ｖ'（ｔ）は時刻ｔの変更後の速度である。βは減衰率で操作体の重心高さｈ３の関数である。
更に、操作体の重心高さｈ３が操作体高さ閾値１００３を超えると、制御部１０６は、速度ｖ'（ｔ）を０にして停止する。
【００２２】
また、ここで、制御部１０６は、操作体の重心高さｈ３を上げると速度を減衰するが、停止前に再度、操作体の重心高さｈ３を下げたときに、操作体の重心高さｈ３を上げる前の速度に戻るように、加速させる制御をしてもよい。
操作体の高さの基準として操作体の重心高さｈ３を使用するのは、ｈ１，ｈ２と比較して手を上げたときの操作体の姿勢によらず安定するからである。しかし本実施形態はこれに限るものではない。例えば、制御部１０６は、操作体の重心高さの代わりに操作体先端の高さｈ１、ｈ２の何れか（例えば高い方又は低い方）を用い、その高さに応じて同様に速度を変更してもよい。
このように、Ｓ４１２による速度減衰率に加え、操作体の位置に基づいて減衰率を更にかけることにより、ユーザが手を上げるとすぐに動作を止めたり、手の位置に応じて減衰度合いを変えたりといった微妙な変更が可能となる。
Ｓ４１４において、表示部１０７は、Ｓ４０４〜Ｓ４１３に述べた制御に基づいて拡大・縮小、回転させたＵＩオブジェクトを、表示装置２０６に表示する。
Ｓ４１５において、例えば、制御部１０６は、Ｓ４０１〜Ｓ４１４を終了するか否かを判定する。制御部１０６は、終了すると判定すると（Ｓ４１５においてＹｅｓ）、図４に示すフローチャートの処理を終了し、終了しないと判定すると（Ｓ４１５においてＮｏ）、Ｓ４０１に戻る。
【００２３】
以上の処理によって実現されるＵＩオブジェクトの拡大縮小、回転の動作の様子を図１１〜１３に示す。
図１１は、ユーザがマルチタッチによって拡大操作をする様子を表す図である。図１１（ａ−１）はマルチタッチ開始時を三次元座標の横から見た図である。図１１（ａ−２）は図１１（ａ−１）を上から見た図である。ＵＩオブジェクト１１０１はユーザが操作するＵＩオブジェクトである。開始時ではＳ４０５において指先二点のタッチが検出される。ここで指先を小さく広げると、Ｓ４０７により指先二点間距離の拡大率に伴ってＵＩオブジェクトが拡大される。また逆に指先を小さく閉じると、Ｓ４０７により指先二点間距離の縮小率に伴ってＵＩオブジェクトが縮小される。
次に、図１１（ｂ−１）はマルチタッチで大きく指を開いた時点を三次元座標の横から見た図である。図１１（ｂ−２）は図１１（ｂ−１）を上から見た図である。Ｓ４０７により指先二点間距離の拡大率に伴ってＵＩオブジェクトが拡大される。更に、二つの指先の距離が所定値以上変化したことにより、Ｓ４１１においてその時点の速度で拡大を継続するよう制御される。
次に、図１１（ｃ−１）はマルチタッチ後、手を上に上げ始めた時点を三次元座標の横から見た図である。図１１（ｃ−２）は図１１（ｃ−１）を上から見た図である。図１１（ｃ−１）において指先間距離は図１１（ｂ−１）と比較して短くなっているものの、図１１（ｂ−１）の段階で拡大継続と制御されたため、ＵＩオブジェクトが縮小されることはない。むしろ、拡大が継続されているので、図１１（ｃ−２）ではＵＩオブジェクトが更に拡大する。
【００２４】
次に、図１１（ｄ−１）はタッチとみなされなくなるまで手を上に上げた時点を三次元座標の横から見た図である。図１１（ｄ−２）は図１１（ｄ−１）を上から見た図である。図１１（ｄ−１）においては、Ｓ４１２における単位時間ごとの速度変更及びＳ４１３における操作体の重心高さに基づく継続動作の変更により拡大速度は弱まる。しかしそれでも、図１１（ｃ−２）と比較して図１１（ｄ−２）のＵＩオブジェクトは更に拡大する。
そして、図１１（ｅ−１）は操作体の重心高さが操作体高さ閾値１００３よりも高くなるほど手を上に上げた時点を三次元座標の横から見た図である。図１１（ｅ−２）は図１１（ｅ−１）を上から見た図である。操作体の重心高さが操作体高さ閾値１００３よりも高くなるため、Ｓ４１３における操作体の重心高さに基づく継続動作の変更によりＵＩオブジェクトの拡大が停止される。
以上のように、画像処理装置は、手を大きく開く拡大操作を検出することにより、繰り返し動作なく拡大を継続することができる。
また、図１１（ｃ−１）のように拡大操作後にタッチ判定閾値７０２を超える高さへ指先が上がる前に指先間距離が短くなってしまう場合でも、画像処理装置は、拡大を継続させることができるため、拡大後に誤って縮小されるような誤動作を防ぐことができる。
【００２５】
図１２は、ユーザがマルチタッチによって縮小操作をする様子を表す図である。図１２（ａ−１）はマルチタッチ開始時を三次元座標の横から見た図である。図１２（ａ−２）は図１２（ａ−１）を上から見た図である。開始時ではＳ４０５において指先二点のタッチが検出される。ここで指先を小さく閉じると、Ｓ４０７により指先二点間距離の縮小率に伴ってＵＩオブジェクトが縮小される。また逆に指先を小さく広げると、指先二点間距離の拡大率に伴ってＵＩオブジェクトが拡大される。
次に、図１２（ｂ−１）はマルチタッチで大きく指を閉じた時点を三次元座標の横から見た図である。図１２（ｂ−２）は図１２（ｂ−１）を上から見た図である。Ｓ４０７により指先二点間距離の縮小率に伴ってＵＩオブジェクトが縮小される。更に、二つの指先の距離が所定値以上変化したことにより、Ｓ４１１においてその時点の速度で縮小を継続するよう制御される。
次に、図１２（ｃ−１）はマルチタッチ後、手を上に上げ始めた時点を三次元座標の横から見た図である。図１２（ｃ−２）は図１２（ｃ−１）を上から見た図である。図１２（ｃ−１）において指先間距離は図１２（ｂ−１）と比較して長くなっているものの、図１２（ｂ−１）の段階で縮小継続と制御されたため、ＵＩオブジェクトが拡大されることはない。むしろ、縮小が継続されているので、図１２（ｃ−２）ではＵＩオブジェクトが更に縮小する。
【００２６】
次に、図１２（ｄ−１）はタッチとみなされなくなるまで手を上に上げた時点を三次元座標の横から見た図である。図１２（ｄ−２）は図１２（ｄ−１）を上から見た図である。図１２（ｄ−１）においては、Ｓ４１２における単位時間ごとの速度変更及びＳ４１３における操作体の重心高さに基づく継続動作の変更はあり縮小速度は弱まる。しかしそれでも、図１２（ｃ−２）と比較して図１２（ｄ−２）のＵＩオブジェクトは更に縮小する。
そして、図１２（ｅ−１）は操作体の重心高さが操作体高さ閾値１００３よりも高くなるほど手を上に上げた時点を三次元座標の横から見た図である。図１２（ｅ−２）は図１２（ｅ−１）を上から見た図である。操作体の重心高さが操作体高さ閾値１００３よりも高くなるため、Ｓ４１３における操作体の重心高さに基づく継続動作の変更によりＵＩオブジェクトの縮小が停止される。
以上のように、画像処理装置は、手を大きく閉じる縮小操作を検出することにより、繰り返し動作なく縮小を継続することが可能となる。
また、図１２（ｃ−１）のように縮小操作後にタッチ判定閾値７０２を超える高さへ指先が上がる前に指先間距離が短くなってしまう場合でも、画像処理装置は、縮小を継続させることができるため、縮小後に誤って拡大されるような誤動作を防ぐことができる。
【００２７】
図１３は、ユーザがマルチタッチによって回転操作をする様子を表す図である。図１３（ａ−１）はマルチタッチ開始時を三次元座標の横から見た図である。図１３（ａ−２）は図１３（ａ−１）を上から見た図である。開始時ではＳ４０５において指先二点のタッチが検出される。ここで指先を時計回り又は反時計回りに小さく回転させると、Ｓ４０７により指先二点を結ぶ線の回転角の変化に伴ってＵＩオブジェクトが回転される。
次に、図１３（ｂ−１）はマルチタッチで反時計回りに指を大きく回転させた時点を三次元座標の横から見た図である。図１３（ｂ−２）は図１３（ｂ−１）を上から見た図である。Ｓ４０７により指先二点を結ぶ線の回転角に伴ってＵＩオブジェクトが回転される。更に、回転角が所定値以上に回転したことにより、Ｓ４１１においてその時点の速度で回転を継続するよう制御される。
次に、図１３（ｃ−１）はマルチタッチ後、手を上に上げ始めた時点を三次元座標の横から見た図である。図１３（ｃ−２）は図１３（ｃ−１）を上から見た図である。図１２（ｃ−２）において指先の角度は図１３（ｂ−２）と比較して時計回りに戻っているものの、図１３（ｂ−２）の段階で回転継続と制御されたため、ＵＩオブジェクトが逆回転されることはない。むしろ、回転が継続されているので、図１３（ｃ−２）ではＵＩオブジェクトが更に反時計回りに回転する。
【００２８】
次に、図１３（ｄ−１）はタッチとみなされなくなるまで手を上に上げた時点を三次元座標の横から見た図である。図１３（ｄ−２）は図１３（ｄ−１）を上から見た図である。図１３（ｄ−１）においては、Ｓ４１２における単位時間ごとの速度変更及びＳ４１３における操作体の重心高さに基づく継続動作の変更があり回転速度は弱まる。しかしそれでも、図１３（ｃ−２）と比較して図１３（ｄ−２）ＵＩオブジェクトは更に反時計回りに回転する。
そして、図１３（ｅ−１）は操作体の重心高さが操作体高さ閾値１００３よりも高くなるほど手を上に上げた時点を三次元座標の横から見た図である。図１３（ｅ−２）は図１３（ｅ−１）を上から見た図である。操作体の重心高さが操作体高さ閾値１００３よりも高くなるため、Ｓ４１３における操作体の重心高さに基づく継続動作の変更によりＵＩオブジェクトの回転が停止される。
以上のように、画像処理装置は、手を大きく回転させる操作を検出することにより、繰り返し操作なく回転を継続することが可能となる。
また、図１３（ｃ−２）のように回転操作後にタッチ判定閾値７０２を超える高さへ指先が上がる前に指先が逆方向に戻ってしまう場合でも、画像処理装置は、回転を継続させることができるため、回転後に誤って逆回転されるような誤動作を防ぐことができる。
【００２９】
＜実施形態２＞
実施形態１の図１０において、継続する拡大縮小又は回転の速度を変更するために、操作体の高さとして操作体の重心１００２の高さｈ３を用いて説明した。しかし本実施形態はこれに限るものではない。実施形態１に記載の通り、操作体先端の高さｈ１、ｈ２の何れか（例えば高い方／低い方）とし、その高さに応じて同様に速度変更してもよい。
また、高さに応じて速度の減衰率βを変えて減衰させなくとも、所定の高さに達したときに停止すればよい。
又は、操作体先端の高さｈ１、ｈ２の何れか又は両方がタッチ判定閾値７０２の高さより上回り、非タッチとなった時点で拡大縮小又は回転の継続を停止するようにしてもよい。
【００３０】
＜実施形態３＞
実施形態１では、図１及び図２に示すハードウェア構成で、距離画像センサ２０５によって取得した距離画像を入力部１０１の入力として、距離画像から操作体を検出し、マルチタッチを検出するとして説明した。しかし本実施形態はこれに限るものではない。表示装置２０６がプロジェクタではなく任意のディスプレイであり、また距離画像センサ２０５がなく、任意のディスプレイにタッチパネル２０７が付いている構成でもよい。
この場合、Ｓ４０１で入力されるデータはタッチパネルから得られるタッチ中の座標となる。タッチする各位置の座標が直接得られるのでＳ４０２、Ｓ４０３は不要である。更に、Ｓ４０８を不要としてＳ４０９の閾値を予め設定し、Ｓ４１３における操作体位置に基づく継続動作の変更を、何れか又は両方のタッチ位置が非タッチとときに速度変更するという構成をとればよい。この場合でも、タッチ中の二点間距離の総変化量又は二点を結ぶ線の角度の総変化量が閾値を超えるまで拡大・縮小、又は回転を操作した時点でこれらの動作が継続され、手をタッチパネルから離した時点で動作が停止するという形態が実現できる。
【００３１】
＜実施形態４＞
実施形態１では、Ｓ４１３において制御部１０６が操作体の位置（手の重心高さや指先の高さ、タッチか否か）に基づいて速度変更又は停止を行っている。しかし本実施形態はこのステップがなくとも適用可能である。制御部１０６は、Ｓ４０９で設定された二点間距離の拡大ジェスチャ・縮小ジェスチャ又は設定された回転角の回転ジェスチャを検出し、これに伴ってＳ４１１で拡大・縮小又は回転の動作を継続するようにしてもよい。
【００３２】
＜実施形態５＞
実施形態１では、検出する拡大・縮小又は回転ジェスチャに、片手の二本指で行う片手マルチタッチ操作を想定して可動範囲を設定している。しかし、マルチタッチは片手マルチタッチのほか、両手の一本指、計二本で行う両手マルチタッチ操作も存在する。そこで本実施形態は、片手マルチタッチか両手マルチタッチかを判定して処理を区別する一例を説明する。
図１４は、距離画像中に検出されるマルチタッチの指先位置の一例を示す図である。図１４（ａ）は片手マルチタッチ時の距離画像中の指先の一例を示す図である。図１４（ｂ）は両手マルチタッチ時の距離画像中の指先の一例を示す図である。操作体検出部１０２は、図１４（ａ）、図１４（ｂ）から距離画像中の操作体領域を検出し、更に指先位置を取得する。ジェスチャ検出部１０５は、操作体検出部１０２が検出した操作体領域、及び指先位置に基づき、指先位置を一つの操作体領域から得た片手マルチタッチか、二つの操作体領域から得た両手マルチタッチかを判定することができる。
このとき、画像処理装置は、Ｓ４０８〜Ｓ４１１の二点間距離／角度による動作継続を、片手マルチタッチのときのみ適用し、両手マルチタッチのときはＳ４０７のみの通常の拡大・縮小又は回転としてもよい。
又は、画像処理装置は、Ｓ４０９において判定する二点間距離／角度の閾値を片手マルチタッチのときと両手マルチタッチのときとで切り替えてもよい。同様に、画像処理装置は、Ｓ４０８の可動範囲の取得する設定の指先間角度や取得方法を片手マルチタッチのときと両手マルチタッチのときとで切り替えてもよい。
片手マルチタッチは両手マルチタッチと比較して二点間距離／角度の可動範囲が狭い。したがって以上の実装により、片手マルチタッチ時のみに特化して繰り返し動作をなくし、指先がタッチ状態から上がる前に指先位置が戻ってしまうことによる誤動作を防ぐことができる。又は片手マルチタッチと両手マルチタッチとでそれぞれ最適な二点間距離／角度に基づいて繰り返し操作をなくすことができる。
【００３３】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００３４】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
【００３５】
以上、上述した各実施形態の処理によれば、ユーザが所望の大きさや角度になるまで、二点の位置を移動させる操作を、繰り返さなくとも、例えば、倍率又は角度等の表示の変更を継続することができる。
【符号の説明】
【００３６】
２０１  ＣＰＵ
２０４  記憶装置
２０６  表示装置
【図１】
2019008631.tif 000004
【図２】
2019008631.tif 000005
【図３】
2019008631.tif 000006
【図４】
2019008631.tif 000007
【図５】
2019008631.tif 000008
【図６】
2019008631.tif 000009
【図７】
2019008631.tif 000010
【図８】
2019008631.tif 000011
【図９】
2019008631.tif 000012
【図１０】
2019008631.tif 000013
【図１１】
2019008631.tif 000014
【図１２】
2019008631.tif 000015
【図１３】
2019008631.tif 000016
【図１４】
2019008631.tif 000017