(57)【要約】【課題】  カーソルの操作性を向上させることを目的とする。【解決手段】  記憶部１３およびこれを制御する処理部１４を備え、記憶部１３が、カメラ装置２０によって連続的に撮影された複数の画像ｄ１を格納する。そして、処理部１３は、入力装置１１のカーソルが表示画面上の所定の位置に表示されているとき、各画像ｄ１のフレーム間で各画像に含まれる特徴点を時系列順に追跡し、フレーム間で追跡した特徴点ｄ２の移動距離および移動方向を算出し、算出した移動距離および移動方向に応じてカーソルを表示画面上の他の位置に移動させる。【選択図】      図１
2005332073.tif 000002
【特許請求の範囲】
【請求項１】
記憶部およびこれを制御する処理部を備え、
前記記憶部が、カメラ装置によって連続的に撮影された複数の画像を格納するカーソル位置制御装置であって、
前記処理部は、
入力デバイスのカーソルが表示画面上の所定の位置に表示されているとき、
前記各画像のフレーム間で各画像に含まれる特徴点を時系列順に追跡する処理と、
前記フレーム間で追跡した特徴点の移動距離および移動方向を算出する処理と、
算出した移動距離および移動方向に応じて前記カーソルを前記表示画面上の他の位置に移動させる処理と、
を実行することを特徴とするカーソル位置制御装置。
【請求項２】
前記処理部は、前記特徴点の移動距離および移動方向を算出する際に、少なくとも３つの前記特徴点の位置情報をもとに、前記各特徴点についての移動距離および移動方向をそれぞれ算出する
ことを特徴とする請求項１に記載のカーソル位置制御装置。
【請求項３】
前記記憶部には、所定のフレーム間で追跡した特徴点の移動距離に基づいて、追跡すべき前記画像のフレーム数を設定するためのフレーム数設定条件がさらに格納され、
前記処理部は、前記カーソルを他の位置に移動させる際に、
所定のフレーム間で追跡した特徴点の移動距離に基づいて、前記フレーム数設定条件から設定した前記フレーム数分についてのフレーム間で追跡した特徴点の移動距離および移動方向に応じて、前記カーソルを他の位置に移動させる
ことを特徴とする請求項１に記載のカーソル位置制御装置。
【請求項４】
記憶部およびこれを制御する処理部を備え、
前記記憶部が、カメラ装置によって連続的に撮影された複数の画像を格納するカーソル位置制御装置のカーソル位置制御方法であって、
前記処理部は、
入力デバイスのカーソルが表示画面上の所定の位置に表示されているとき、
前記各画像のフレーム間で各画像に含まれる特徴点を時系列順に追跡するステップと、
前記フレーム間で追跡した特徴点の移動距離および移動方向を算出するステップと、
算出した移動距離および移動方向に応じて前記カーソルを前記表示画面上の他の位置に移動させるステップと、
を実行することを特徴とするカーソル位置制御方法。
【請求項５】
前記処理部は、前記特徴点の移動距離および移動方向を算出するステップを実行する際に、少なくとも３つの前記特徴点の位置情報をもとに、前記各特徴点についての移動距離および移動方向をそれぞれ算出する
ことを特徴とする請求項４に記載のカーソル位置制御方法。
【請求項６】
前記記憶部には、所定のフレーム間で追跡した特徴点の移動距離に基づいて、追跡すべき前記画像のフレーム数を設定するためのフレーム数設定条件がさらに格納され、
前記処理部は、前記カーソルを他の位置に移動させるステップを実行する際に、
所定のフレーム間で追跡した特徴点の移動距離に基づいて、前記フレーム数設定条件から設定した前記フレーム数分についてのフレーム間で追跡した特徴点の移動距離および移動方向に応じて、前記カーソルを他の位置に移動させる
ことを特徴とする請求項４に記載のカーソル位置制御方法。
【請求項７】
請求項４ないし請求項６のいずれかに記載のカーソル位置制御方法をコンピュータに実行させるためのカーソル位置制御プログラム。
【請求項８】
記憶部およびこれを制御する処理部を備え、
前記記憶部が、カメラ装置によって連続的に撮影された複数の画像を格納するカーソル位置制御サーバであって、
前記処理部は、
利用者用端末からの要求に応じ、前記各画像のフレーム間で各画像に含まれる特徴点を時系列順に追跡する処理と、
前記フレーム間で追跡した特徴点の移動距離および移動方向を算出する処理と、
算出した移動距離および移動方向に応じて、前記利用者用端末の表示画面に表示されているカーソルの位置を移動させる指示を、通信ネットワークを介して、前記利用者用端末に行う処理と、
を実行することを特徴とするカーソル位置制御サーバ。
【請求項９】
前記処理部は、前記特徴点の移動距離および移動方向を算出する際に、少なくとも３つの前記特徴点の位置情報をもとに、前記各特徴点についての移動距離および移動方向をそれぞれ算出する
ことを特徴とする請求項８に記載のカーソル位置制御サーバ。
【請求項１０】
前記記憶部には、所定のフレーム間で追跡した特徴点の移動距離に基づいて、追跡すべき前記画像のフレーム数を設定するためのフレーム数設定条件がさらに格納され、
前記処理部は、前記カーソルの位置に移動させる指示を行う際に、
所定のフレーム間で追跡した特徴点の移動距離に基づいて、前記フレーム数設定条件から設定した前記フレーム数分についてのフレーム間で追跡した特徴点の移動距離および移動方向に応じて、前記カーソルの位置を移動させる指示を行う
ことを特徴とする請求項８に記載のカーソル位置制御サーバ。
【請求項１１】
記憶部およびこれを制御する処理部を備え、
前記記憶部が、カメラ装置によって連続的に撮影された複数の画像を格納するカーソル位置制御サーバのカーソル位置制御方法であって、
前記処理部は、
利用者用端末からの要求に応じ、前記各画像のフレーム間で各画像に含まれる特徴点を時系列順に追跡するステップと、
前記フレーム間で追跡した特徴点の移動距離および移動方向を算出するステップと、
算出した移動距離および移動方向に応じて、前記利用者用端末の表示画面に表示されているカーソルの位置を移動させる指示を、通信ネットワークを介して、前記利用者用端末に行うステップと、
を実行することを特徴とするカーソル位置制御方法。
【請求項１２】
前記処理部は、前記特徴点の移動距離および移動方向を算出するステップを実行する際に、少なくとも３つの前記特徴点の位置情報をもとに、前記各特徴点についての移動距離および移動方向をそれぞれ算出する
ことを特徴とする請求項１１に記載のカーソル位置制御方法。
【請求項１３】
前記記憶部には、所定のフレーム間で追跡した特徴点の移動距離に基づいて、追跡すべき前記画像のフレーム数を設定するためのフレーム数設定条件がさらに格納され、
前記処理部は、前記カーソルの位置に移動させる指示を行うステップを実行する際に、
所定のフレーム間で追跡した特徴点の移動距離に基づいて、前記フレーム数設定条件から設定した前記フレーム数分についてのフレーム間で追跡した特徴点の移動距離および移動方向に応じて、前記カーソルの位置を移動させる指示を行う
ことを特徴とする請求項１１に記載のカーソル位置制御方法。
【請求項１４】
請求項１１ないし請求項１３のいずれかに記載のカーソル位置制御方法をコンピュータに実行させるためのカーソル位置制御プログラム。
【請求項１５】
請求項８ないし請求項１０のいずれかに記載のカーソル位置制御サーバから、カーソルの位置を移動させる指示を受ける利用者用端末であって、
前記カーソル位置制御サーバからの指示に応じて前記カーソルの位置を表示画面上で所定の位置から他の位置に移動させる処理部を備えた
ことを特徴とする利用者用端末。
【請求項１６】
請求項１５に記載の利用者用端末における当該利用者用端末の処理部を動作させるためのカーソル位置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カーソルの位置を制御するカーソル位置制御装置などに関するものである。
【背景技術】
【０００２】
携帯電話機では、通常、ボタン操作でデータ入力が行われているが、利用者の唇の動きなどから利用者が話した言葉を認識しデータ入力を行う方法がある（例えば、特許文献１参照）。
【特許文献１】特開２００２−２５２６８２号公報（段落００１０、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、利用者が画面上のカーソルを動かし目的のオブジェクト（アイコンなど）を選択したい場合、特許文献１による方法ではカーソルを動かすことができないため、データ入力の際に通常利用されるボタン操作で選択されることとなる。この場合、例えば、利用者は、目的のオブジェクトにカーソルを移動させるため、何回もボタンを押してカーソルを動かす必要があり、利用者のストレスなどの負担が大きくなるケースがあった。
また、ＰＤＡ（Personal Digital Assistant）などの携帯情報端末についても、小型という物理的な制約からカーソルの操作がしにくく、利用者のストレスなどの負担が大きくなるケースがあった。
したがって、携帯情報端末について、カーソルの操作性を向上させなければならないという課題があった。
【０００４】
そこで、本発明は、前記した課題を解決するためになされたものであり、その目的は、カーソルの操作性を向上させることが可能なカーソル位置制御装置、カーソル位置制御方法およびカーソル位置制御プログラムを提供することである。
また、本発明は、カーソル操作の操作性を向上させることが可能なカーソル位置制御サーバおよび利用者用端末を提供することをその目的とする。
【課題を解決するための手段】
【０００５】
前記課題を解決するために本発明は、記憶部およびこれを制御する処理部を備え、記憶部が、カメラ装置によって連続的に撮影された複数の画像を格納するカーソル位置制御装置であって、処理部は、入力デバイスのカーソルが表示画面上の所定の位置に表示されているとき、各画像のフレーム間で各画像に含まれる特徴点を時系列順に追跡する処理と、フレーム間で追跡した特徴点の移動距離および移動方向を算出する処理と、算出した移動距離および移動方向に応じてカーソルを表示画面上の他の位置に移動させる処理とを実行する。
【発明の効果】
【０００６】
本発明によると、入力デバイスが操作されることなく、カメラ装置によって画像が撮影されることにより、カーソルが移動することとなるので、カーソルの操作性が従来に比べて向上する。
【発明を実施するための最良の形態】
【０００７】
以下、本発明を実施するための最良の形態である「カーソル位置制御装置」、「カーソル位置制御方法」、「カーソル位置制御プログラム」、「カーソル位置制御サーバ」および「利用者用端末」について説明する。
【０００８】
［実施の形態１］
図１は、本発明の実施の形態１に係るカーソル位置制御装置を示すブロック図である。
図１に示すカーソル位置制御装置（コンピュータ）１０は、入力装置１１、表示装置１２、記憶部１３およびこれらを制御する処理部１４を有している。そして、カーソル位置制御装置１０には、カメラ装置２０が付いている。カメラ装置２０は、カーソル位置制御装置１０と一体的に取り付けられているものとするが、それぞれ別体として機能させるようにしてもよい。
なお、図１では、カーソル位置制御装置１０は、カメラ付携帯電話機として説明するが、カメラ付ＰＤＡなどの携帯情報端末としてもよい。以下、前記した構成を詳述する。
【０００９】
入力装置１１は、操作ボタンなどの入力デバイスであり、表示装置１２は、液晶ディスプレイなどの表示デバイスである。
記憶部１３は、メモリなどの記憶装置であり、この記憶部１３には、画像ｄ１やフレーム数設定条件ｓ１などの情報が格納されている。ここでいう画像ｄ１とは、カメラ装置２０によって連続的に撮影された写真画像を指し、この画像ｄ１には特徴点が含まれている。特徴点というのは、画像ｄ１中の輝度、色相、輪郭などの要素をもとに抽出されるが、特徴点の抽出は、１フレーム分の画像をもとに行ってもよいし、数フレーム分の異なる画像をもとに行うようにしてもよい。
【００１０】
フレーム数設定条件ｓ１とは、追跡すべき画像ｄ１のフレーム数（以下「参照フレーム数」という。）を設定するための条件であり、ここでは、例えば、初期フレームとその次の第２フレームとの２フレーム間での各画像ｄ１の特徴点の移動距離に基づいて参照フレーム数が設定されるように定められている。
【００１１】
ここで、画像ｄ１のフレームについて説明しておく。画像ｄ１のフレームというのは、カメラ装置２０によって撮影された画像ｄ１の枠を指し、例えば、画像ｄ１に装飾が施された枠などがこれに用いられる。そして、各画像ｄ１のフレームには、フレーム番号が付与される。例えば、図２に示すように、カメラ装置２０によって連続的に撮影された画像列がある場合、最初に撮影された画像の初期フレームには「０」番のフレーム番号が付与され、それ以降の第２フレームなどには「１」番などのフレーム番号が順次、付与されるようになっている。したがって、フレーム番号をもとに、画像ｄ１の撮影順序をチェックすることが可能となる。
【００１２】
次に、前記したフレーム数設定条件ｓ１について図３に基づいて具体的に説明する。
図３は、フレーム数設定条件ｓ１における特徴点の移動距離と参照フレーム数との対応関係を示す説明図である。図３では、移動距離が大きくなればなるほど（つまり「移動速度が速くなればなるほど」ということを意味する。）、参照フレーム数が少なくなり、他方、移動距離が小さくなればなるほど（つまり「移動速度が遅くなればなるほど」ということを意味する。）、参照フレーム数が多くなっている。これは、次のような理由によるからである。すなわち、移動距離が小さくなればなるほど、移動方向の手ぶれによる影響が少なくなると考えられ、他方、それが大きくなればなるほど、移動方向の手ぶれによる影響が大きくなると考えられるからである。
【００１３】
なお、図１に示したフレーム数設定条件ｓ１として、例えば、図３に示した移動距離と参照フレーム数との対応関係を記憶したテーブルを用いることとする。ただし、移動距離の基準値（閾値）を用いるようにしてもよい。この場合、基準値よりも実際の移動距離が大きいかあるいは小さいかにより、参照フレーム数を少なくしたりあるいは多くしたりすることができる。
【００１４】
図１に戻って説明する。処理部１４は、例えばＣＰＵであり、表示装置１２の表示画面上に表示されたカーソルを移動させる制御を行うための機能を持っている。具体的に説明すると、処理部１４には、画像要求部１４１、画像受信部１４２、特徴点抽出部１４３、トラッキング部１４４および変位情報算出部１４５が含まれている。また、処理部１４には、変位情報登録部１４６、フレーム数設定部１４７、移動量算出部１４８およびカーソル制御部１４９が含まれている。
これら各部１４１〜１４９は、カーソル位置制御装置１０に組み込まれているカーソル位置制御プログラムに従って処理部１４が動作することにより実現されるので、これらの機能については、後記する図５の動作説明で詳述する。
【００１５】
次に、カーソル位置制御装置１０の動作について説明するが、ここでは、まず、処理部１４によって実現されるカーソルの移動方法の概略を図４に基づいて説明しておく。図４では、同図（Ａ）の表示画面ｄ１００上にカーソルｃ１および３つのアイコンａ１〜ａ３が表示されているときに、カーソルｃ１が移動し、カーソルｃ１がアイコンａ３に重なる場合（同図（Ｃ）参照）について説明する。なお、図４において、同図（Ａ）（Ｃ）の表示画面ｄ１００上には、後記する同図（Ａ）（Ｂ）（Ｃ）の画像ｄ１は表示されない。
【００１６】
まず、利用者が、カメラ装置２０の向きを変えて被写体であるパソコンを連続して撮影すると、最初に撮影した図４（Ａ）の画像ｄ１中の検出領域ｄ３の中から、複数の特徴点ｄ２が抽出される（図４（Ｂ）参照）。なお、検出領域ｄ３は、特徴点ｄ２の抽出に必要な領域を示しているが、これは、画像ｄ１全体の輝度、色相、輪郭などの要素をもとに検出される。
特徴点ｄ２の抽出としては、例えば、エッジ・輪郭・線成分の抽出、領域分割による抽出などの手法を用いる。
【００１７】
次に、ある時点で撮影された図４（Ｃ）の画像ｄ１に含まれる各特徴点ｄ２と、図４（Ｂ）の画像ｄ１に含まれる各特徴点ｄ２との間での移動距離および移動方向（図４（Ｃ）の画像ｄ１中の一点鎖線）が求められる。
【００１８】
そうすると、図４（Ａ）に示したカーソルｃ１が、各特徴点ｄ２の移動距離および移動方向に基づいて移動し、アイコンａ３に重なることとなる（図４（Ｃ）の表示画面ｄ１００参照）。ここで、カーソルｃ１の移動量、すなわち、元の位置から他の位置までの移動距離および移動方向（図４（Ｃ）の表示画面ｄ１００の一点鎖線を参照）は、求められた各特徴点ｄ２の移動距離および移動方向の平均値とする。そして、移動距離の平均値には、あらかじめ設定されている係数を乗じることとする。
【００１９】
なお、カーソルｃ１の移動量は、他の手法により得るようにしてもよい。例えば、各特徴点ｄ２についての優先度の重み付けをしておくことにより、この優先度の重み付けに対応するカーソルｃ１の移動量を得るようにしてもよい。
【００２０】
次に、前記した図４で説明したカーソルｃ１の移動に関する処理を具体的に説明する。
図５は、カーソル位置制御装置１０の処理部１４の処理手順であってカーソルｃ１の移動に関する処理手順を示す図である。なお、処理部１４は、カーソル位置制御装置１０に組み込まれたカーソル位置制御プログラムに従って動作する。
まず、利用者が、入力装置１１を用いて撮影条件を入力すると、処理部１４は、撮影条件に基づいて、カメラ装置２０に撮影を要求する（Ｓ１０１：このときの処理部１４を図１に示した「画像要求部１４１」という。）。撮影条件には、例えば、シャッタ間隔（すなわち１秒間に撮影する画像のフレーム数）、画像サイズ、撮影枚数などが含まれる。撮影条件中の画像サイズは、例えば、横が３２０ピクセルで縦が２４０ピクセルとする。
なお、撮影条件は、入力装置１１によって入力されることとしたが、あらかじめ記憶部１３に格納されていてもよい。
【００２１】
そうすると、処理部１４は、カメラ装置２０によって撮影された図４（Ａ）に示した最初の画像ｄ１を受信し（Ｓ１０２の「Ｙｅｓ」の場合：このときの処理部１４を図１に示した「画像受信部１４２」という。）、その画像ｄ１を記憶部１３に保存する（Ｓ１０３）。
【００２２】
次に、処理部１４は、画像ｄ１に付与されたフレーム番号（図２参照）をもとに、フレーム数をカウントする（Ｓ１０４）。なお、ここでは、最初に撮影された画像ｄ１が対象なので、カウント値が初期値（例えば「０」）にセットされるが、以降は、初期値から１つずつ繰り上げられることとなる。
【００２３】
次に、処理部１４は、Ｓ１０４でカウントした順に、画像ｄ１全体に含まれる特徴点ｄ２を抽出し（Ｓ１０５）、抽出した画像ｄ１が初期フレームの場合（Ｓ１０６の「Ｙｅｓ」の場合）、Ｓ１０５で抽出したすべての特徴点ｄ２の中から、図４（Ｂ）に示した特定の特徴点ｄ２を選択する（Ｓ１０７：Ｓ１０５およびＳ１０７を併せたときの処理部１４を図１に示した「特徴点抽出部１４３」という。）。
【００２４】
次に、処理部１４は、Ｓ１０７で選択した各特徴点ｄ２を識別するためのＩＤ（識別情報）を各特徴点ｄ２にそれぞれ付与し（Ｓ１０８）、各特徴点ｄ２の位置を示す位置情報（例えば座標データ）を記憶部１３に登録する（Ｓ１０９）。これにより、まず、最初に撮影された画像ｄ１に含まれる各特徴点ｄ２の位置が確定することとなる。
そして、処理部１４は、Ｓ１０２に戻って、第２フレームの画像ｄ１についてＳ１０２からＳ１０６までの処理を繰り返し行う。
なお、図５では、第２フレームの画像ｄ１について、処理部１４がＳ１０２に戻って処理を開始する場合を示しているが、第２フレームの画像ｄ１が既に記憶部１３に保存されているときは、Ｓ１０４に戻って処理が開始されてもよい。第３フレーム以降の画像ｄ１についても同様である。
【００２５】
そして、Ｓ１０６における判断において、第２フレームの画像ｄ１が初期フレームでないと判断されると（Ｓ１０６の「Ｎｏ」の場合）、処理部１４は、次のＳ１１０で、初期フレームと第２フレームとの２フレーム間で、Ｓ１０７で選択した各特徴点ｄ２のトラッキング（追跡）を行う（このときの処理部１４を図１に示した「トラッキング部１４４」という。）。
【００２６】
次に、処理部１４は、Ｓ１１０におけるトラッキングが失敗すると（Ｓ１１１の「Ｎｏ」の場合）、その旨を表示装置１２に表示する（Ｓ１１２）。これにより、利用者に再操作を促すこととなる。
【００２７】
他方、Ｓ１１０におけるトラッキングが成功すると（Ｓ１１１の「Ｙｅｓ」の場合）、処理部１４は、Ｓ１０９で登録した位置情報（初期フレームの画像ｄ１に含まれる各特徴点ｄ２にかかるもの）をもとに、初期フレームと第２フレームとの２フレーム間での各特徴点ｄ２の変位を算出し（Ｓ１１３：このときの処理部１４を図１に示した「変位情報算出部１４５」という。）、算出した変位を示す変位情報（ここでは移動距離）を記憶部１３に登録する（Ｓ１１４：このときの処理部１４を図１に示した「変位情報登録部１４６」という。）。ここでは、例えば、処理部１４は、各特徴点ｄ２のＩＤ、フレーム番号、位置情報などの情報も、変位情報に対応付けて登録しておく。
【００２８】
次に、処理部１４は、第２フレームの画像ｄ１について（Ｓ１１５の「Ｙｅｓ」の場合）、フレーム数設定条件ｓ１に基づいて、Ｓ１１４で登録した変位情報に対応する参照フレーム数を記憶部１３に設定すると（Ｓ１１６：このときの処理部１４を図１に示した「フレーム数設定部１４７」という。）、第３フレーム以降の画像ｄ１について、Ｓ１１６で設定した参照フレーム数分の追跡、すなわち第３フレーム以降の画像ｄ１に含まれる各特徴点ｄ２の追跡が終了するまで（Ｓ１１７の「Ｎｏ」の場合）、Ｓ１０２からＳ１０６までおよびＳ１１０からＳ１１５までの処理を繰り返し行う。これにより、連続的に撮影された画像ｄ１に含まれる各特徴点ｄ２が時系列的に追跡されることとなる。
【００２９】
そして、Ｓ１１７において、参照フレーム数分の追跡が終了すると（Ｓ１１７の「Ｙｅｓ」の場合）、処理部１４は、初回フレームと最終フレームとの間の各画像ｄ１に共通する各特徴点ｄ２の位置を示す位置情報に基づいて、図４（Ｃ）の各特徴点ｄ２の移動方向を算出（検出）する（Ｓ１１８）とともに、各特徴点ｄ２の移動距離を算出する（Ｓ１１９：Ｓ１１８およびＳ１１９を併せたときの処理部１４を図１に示した「移動量算出部１４８」という。）。
【００３０】
そして、処理部１４は、Ｓ１１８で算出した移動方向およびＳ１１９で算出した移動距離に基づいて、図４（Ａ）に示した表示画面ｄ１００上のカーソルｃ１を図４（Ｃ）に示した表示画面ｄ１００上の位置に移動させる制御を行う（Ｓ１２０：このときの処理部１４を図１に示した「カーソル制御部１４９」という。）。これにより、例えば、図４（Ｃ）に示したように、カーソルｃ１が移動してアイコンａ３に重なり、その状態で、利用者が、入力装置１１を用いてアイコンａ３を指定すると、アイコンａ３に対応する所定の処理（例えばインターネットの接続処理など）が実行されることとなる。
【００３１】
このように、実施の形態１では、処理部１４は、各画像ｄ１のフレーム間で各画像に含まれる特徴点ｄ２を時系列順に追跡する処理と、フレーム間で追跡した特徴点ｄ２の移動距離および移動方向を算出する処理と、算出した移動距離および移動方向に応じてカーソルｃ１を表示画面ｄ１００上の他の位置に移動させる処理を実行する。したがって、利用者は、何回も操作ボタンを押すことなく、カメラ装置２０を使って、被写体を撮影するだけで、カーソルｃ１を目的のオブジェクトに移動させることができる。以上から、カーソルの操作性が向上し、操作時における利用者のストレスなどの負担が軽減することとなる。
【００３２】
また、処理部１４は、特徴点ｄ２の移動距離および移動方向を算出する際に、少なくとも３つの特徴点ｄ２の位置情報をもとに、各特徴点ｄ２についての移動距離および移動方向をそれぞれ算出するようになっている。これにより、各特徴点ｄ２間の移動距離および移動方向を立体的（３次元的）に算出することが可能となり、その算出精度が向上することとなる。
【００３３】
さらに、処理部１４は、フレーム数設定条件ｓ１から、初期フレームと第２フレームとの２フレーム間（所定のフレーム間）で追跡した各特徴点ｄ２の移動距離に基づいて参照フレーム数を設定し、設定した参照フレーム数分についてのフレーム間で追跡した特徴点ｄ２の移動距離および移動方向に応じて、カーソルｃ１を移動させるようになっている。したがって、２フレーム間での特徴点ｄ２の移動距離の長短によって参照フレーム数が変化することとなり、各特徴点ｄ２の移動距離および移動方向の算出精度が高くなり、カーソルｃ１がより正確に移動することとなる。
【００３４】
［実施の形態２］
次に、実施の形態２について説明する。ここでは、クライアントサーバ型システムとしたカーソル位置制御システムについて説明する。
図６は、本発明の実施の形態２に係るカーソル位置制御システムの構成を示すブロック図である。なお、実施の形態１とほぼ同様の部分については、実施の形態１と同様の符号を付して重複説明を適宜省略する。
図６において、カーソル位置制御システムは、カーソル位置制御サーバ（コンピュータ）３０と、このカーソル位置制御サーバ３０にインターネットなどの通信ネットワーク４０を介して接続されたクライアント（利用者用端末）５０とを備えている。なお、図６では、カーソル位置制御装置３０とクライアント５０とをそれぞれ１台として示しているが、これらカーソル位置装置３０とクライアント５０との台数は、特に制約を受けない。
以下、カーソル位置制御サーバ３０およびクライアント５０について順を追って説明する。
【００３５】
[カーソル位置制御サーバの構成]
カーソル位置制御サーバ３０は、通信部３１、記憶部３２およびこれらを制御する処理部３３を有している。通信部３１は、ネットワークインターフェースなどのインターフェースである。
【００３６】
記憶部３２は、メモリ、ハードディスクなどの記憶装置であり、この記憶部３２には、画像ｄ１やフレーム数設定条件ｓ１などの情報が格納されている。
処理部３３は、例えばＣＰＵであり、この処理部３３には、前記した図１に示した特徴点抽出部１４３、トラッキング部１４４、変位情報算出部１４５、変位情報登録部１４６、フレーム数設定部１４７および移動量算出部１４８に加えて、カーソル移動指示部３３１がさらに含まれている。これら各部１４３〜１４８、３３１は、カーソル位置制御サーバ３０に組み込まれているカーソル位置制御プログラムに従って処理部３３が動作することにより実現されるので、これらの機能については、後記する図７および図８の動作説明で詳述する。
【００３７】
なお、カーソル位置制御サーバ３０に組み込まれたカーソル位置制御プログラムは、記憶部３２にあらかじめ格納されていてもよいし、ＣＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体から読み込まれてもよい。
【００３８】
[クライアントの構成]
次に、クライアント５０の構成について説明する。クライアント５０は、入力装置１１、表示装置１２、通信部５１、記憶部５２およびこれらを制御する処理部５３を有している。そして、このクライアント５０にはカメラ装置２０が付いている。図６でも、クライアント５０は、例えば、カメラ付携帯電話機として説明するが、カメラ付ＰＤＡなどの携帯情報端末（コンピュータ）としてもよい。
【００３９】
通信部５１は、ネットワークカードなどのインターフェースである。記憶部５２は、メモリなどの記憶装置である。
処理部５３は、例えばＣＰＵであり、この処理部５３には、前記した図１に示した画像要求部１４１、画像受信部１４２およびカーソル制御部１４９が含まれている。これら各部１４１、１４２、１４９は、クライアント５０に組み込まれているカーソル位置制御プログラムに従って処理部５３が動作することにより実現されるので、これらの機能については、後記する図７および図８の動作説明で詳述する。
【００４０】
次に、クライアント５０およびカーソル位置制御サーバ３０における処理手順について説明する。ここでも、前記した図４の場合を想定し、図４（Ａ）のカーソルｃ１の移動に関する処理手順を説明する。
図７および図８は、クライアント５０およびカーソル位置制御サーバ３０における処理手順であってカーソルｃ１の移動に関する処理手順を示す図である。ここでは、まず、図７を参照しながら、フレーム数のカウントなどに関する処理手順Ｓ２０１〜Ｓ２１２について説明する。なお、図７および図８には、前記した図５の処理手順Ｓ１０１〜Ｓ１２０とほぼ同様の処理手順が示されているため、これらの処理手順については簡略化して説明する。
【００４１】
まず、利用者がクライアント５０の入力装置１１を用いて所定の操作をすると、クライアント５０では、処理部５３が、シャッタ間隔などを含む撮影条件に基づいて、カメラ装置２０に撮影を要求する（Ｓ２０１：このときの処理部５３を図６に示した「画像要求部１４１」という。）。そうすると、処理部５３は、カメラ装置２０によって撮影された図４（Ａ）に示した最初の画像ｄ１を受信し（Ｓ２０２の「Ｙｅｓ」の場合：このときの処理部１４を図１に示した「画像受信部１４２」という。）、その画像ｄ１を通信ネットワーク４０を介してカーソル位置制御サーバ３０に送信する（Ｓ２０３）。送信された画像ｄ１には、利用者にあらかじめ付与されている利用者ＩＤが付加される。この利用者ＩＤの付加は、画像ｄ１のヘッダ部に埋め込むこととするが、利用者ＩＤとして識別できれば、他の方法を用いてもよい。
なお、クライアント５０では、その後も引き続き、画像ｄ１を連続的に受信し（Ｓ２０２）、各画像ｄ１をそれぞれカーソル位置制御サーバ３０に送信することとなる（Ｓ２０３）。
【００４２】
クライアント５０からの送信を受けて、カーソル位置制御サーバ３０では、処理部３３が、画像ｄ１を受信し（Ｓ２０４の「Ｙｅｓ」の場合）、画像ｄ１に付加されている利用者ＩＤと記憶部３２に登録済みの利用者ＩＤとを照合することによりユーザ認証を行う（Ｓ２０５）。そして、ユーザ認証によって利用者が正当であると判断されると、処理部３３は、Ｓ２０４で受信した画像ｄ１が初期フレームの場合（Ｓ２０６の「Ｙｅｓ」）、カウント値を初期化（ここでは初期値にセット）する（Ｓ２０７）。
【００４３】
次に、処理部３３は、画像ｄ１全体に含まれる特徴点ｄ２を抽出し（Ｓ２０８）、抽出した画像ｄ1についてのカウント値が初期値の場合（Ｓ２０９の「Ｙｅｓ」の場合）、Ｓ２０８で抽出したすべての特徴点ｄ２の中から、図４（Ｂ）に示した特定の特徴点ｄ２を選択する（Ｓ２１０：Ｓ２０８およびＳ２１０を併せたときの処理部３３を図６に示した「特徴点抽出部１４３」という。）。続いて、処理部３３は、Ｓ２１０で選択した各特徴点ｄ２を識別するためのＩＤを各特徴点ｄ２にそれぞれ付与し（Ｓ２１１）、各特徴点ｄ２の位置を示す位置情報を記憶部３２に登録する（Ｓ２１２）。位置情報の登録は、Ｓ２０４で受信した画像ｄ１に埋め込まれた利用者ＩＤと関連付けて行われるようになっている。
【００４４】
そして、処理部３３は、Ｓ２０４に戻り、第２フレーム以降の画像ｄ１について、Ｓ２０４からＳ２０６までの処理を繰り返し行い、次のＳ２１３で、Ｓ２０７で初期化したカウント値を１つずつ繰り上げてフレーム数をカウントした後、画像ｄ１に含まれる特徴点ｄ２を抽出する（Ｓ２０８）。そして、処理部３３は、Ｓ２０９に進み、カウント値が初期値でないと判断した（Ｓ２０９の「Ｎｏ」の場合）後、図８のＳ２１４に進む。
なお、図７では、第２フレーム以降の画像ｄ１について、処理部３３がＳ２０４に戻って処理を開始する場合を示しているが、例えば、第２フレーム以降の画像ｄ１が既に受信されユーザ認証が行われているときは、Ｓ２０６に戻って処理が開始されてもよい。
【００４５】
次に、図８を参照しながら、カーソル位置制御装置３０およびクライアント５０における処理手順Ｓ２１４〜Ｓ２２６について説明する。
Ｓ２１４では、処理部３３は、初期フレームと第２フレームとの２フレーム間で、図７のＳ２１０で選択した各特徴点ｄ２のトラッキングを行う（このときの処理部３３を図６に示した「トラッキング部１４４」という。）。
【００４６】
そして、処理部３３は、Ｓ２１４におけるトラッキングが失敗すると（Ｓ２１５の「Ｎｏ」の場合）、その旨を通信ネットワーク４０を介してクライアント５０に通知する（Ｓ２１６）。
【００４７】
他方、処理部３３は、Ｓ２１４におけるトラッキングが成功すると（Ｓ２１５の「Ｙｅｓ」の場合）、図７のＳ２１２で登録した位置情報をもとに、初期フレームと第２フレームとの２フレーム間での各特徴点ｄ２の変位を算出し（Ｓ２１７：このときの処理部３３を図６に示した「変位情報算出部１４５」という。）、算出した変位を示す変位情報（移動距離）を記憶部３２に登録する（Ｓ２１８：このときの処理部３３を図６に示した「変位情報登録部１４６」という。）。
【００４８】
次に、処理部３３は、第２フレームの画像ｄ１について（Ｓ２１９の「Ｙｅｓ」の場合）、フレーム数設定条件ｓ１に基づいて、Ｓ２１８で登録した変位情報に対応する参照フレーム数を記憶部３２に設定すると（Ｓ２２０：このときの処理部３３を図６に示した「フレーム数設定部１４７」という。）、第３フレーム以降の画像ｄ１について、Ｓ２２０で設定した参照フレーム数分の追跡、すなわち第３フレーム以降の画像ｄ１に含まれる各特徴点ｄ２の追跡が終了するまで（Ｓ２２１の「Ｎｏ」の場合）、図７に示した処理（Ｓ２０４〜Ｓ２０６、Ｓ２１３、Ｓ２０８、Ｓ２０９）および図８に示した処理（Ｓ２１４〜Ｓ２２１）を繰り返し行う。これにより、クライアント５０から送信されてきた各画像ｄ１に含まれる各特徴点ｄ２が時系列的に追跡されることとなる。
【００４９】
そして、処理部３３は、参照フレーム数分の追跡が終了すると（Ｓ２２１の「Ｙｅｓ」の場合）、初回フレームと最終フレームとの間の各画像ｄ１に共通する各特徴点ｄ２の位置を示す位置情報に基づいて、前記した図４（Ｃ）の各特徴点ｄ２の移動方向を算出する（Ｓ２２２）とともに、各特徴点ｄ２の移動距離を算出する（Ｓ２２３：Ｓ２２２およびＳ２２３を併せたときの処理部３３を図６に示した「移動量算出部１４８」という。）。
【００５０】
そして、処理部３３は、Ｓ２２２で算出した移動方向およびＳ２２３で算出した移動距離に基づいて、クライアント５０に対し、前記した図４（Ａ）に示した表示画面ｄ１００上に表示されたカーソルｃ１の移動を指示する（Ｓ２２４：このときの処理部３３を図６に示した「カーソル移動指示部３３１」という。）。カーソルｃ１の移動の指示は、Ｓ２２２で算出した移動方向の平均値およびＳ２２３で算出した移動距離の平均値に所定の係数を乗じたものを含む指示情報を送信することによって行われる。
【００５１】
そうすると、クライアント５０では、処理部５３が、カーソル位置制御装置３０からの指示に応じて、前記した図４（Ｃ）に示した表示画面ｄ１００上の位置にカーソルｃ１を移動させる制御を行う（Ｓ２２５：このときの処理部５３を図６に示した「カーソル制御部１４９」という。）。これにより、例えば、前記した図４（Ｃ）に示したように、カーソルｃ１が移動してアイコンａ３に重なる。そしてその状態で、利用者が、入力装置１１を用いてアイコンａ３を指定すると、アイコンａ３に対応する所定の処理（例えばインターネットの接続処理など）が実行されることとなる。
したがって、利用者は、被写体を撮影してカーソルｃ１を目的のオブジェクトに移動させることができることとなり、操作時における利用者のストレスなどの負担が従来に比べて軽減することとなる。
【００５２】
そしてその後、利用者が入力装置１１を操作して、所定の指示を行うことによって、処理部５３は、処理を終了する（Ｓ２２６の「Ｎｏ」の場合）。
【００５３】
このように、実施の形態２では、カーソル位置制御サーバ３０は、クライアント５０からの要求、すなわちカメラ装置２０によって連続的に撮影された画像ｄ１の送信に応じ、各画像ｄ１のフレーム間でその各画像ｄ１に含まれる特徴点ｄ２を時系列順に追跡する処理と、フレーム間で追跡した特徴点ｄ２の移動距離および移動方向を算出する処理と、算出した移動距離および移動方向に応じて、クライアント５０の表示画面ｄ１００に表示されているカーソルｃ１の位置を移動させる指示を行う処理とを実行する。したがって、クライアント５０の利用者は、カメラ装置２０を使って被写体を撮影するだけで、カーソルｃ１を目的のオブジェクトに移動させることができる。
【００５４】
また、カーソル位置制御サーバ３０は、特徴点ｄ２の移動距離および移動方向を算出する際に、少なくとも３つの特徴点ｄ２の位置情報をもとに、各特徴点ｄ２についての移動距離および移動方向をそれぞれ算出するようになっている。したがって、各特徴点ｄ２間の移動距離および移動方向を立体的に算出することが可能となり、その算出精度が向上することとなる。
【００５５】
さらに、カーソル位置制御サーバ３０は、カーソルｃ１の位置に移動させる指示を行う際に、フレーム数設定条件ｓ１から設定したフレーム数分についてのフレーム間で追跡した各特徴点ｄ２の移動距離および移動方向に応じて、カーソルｃ１の位置を移動させる指示を行うようになっている。したがって、２フレーム間での特徴点ｄ２の移動距離の長短によって参照フレーム数が変化することとなり、各特徴点ｄ２の移動距離および移動方向の算出精度が高くなり、カーソルｃ１を正確に移動させることが可能となる。
【００５６】
[参照フレーム数設定条件による参照フレーム数の他の設定例]
前記した実施の形態１、２において、参照フレーム数の設定は、初期フレームと第２フレームとの２フレーム間での画像ｄ１中の特徴点ｄ２の移動距離に基づいて行う場合で説明したが、ここでは、他の設定例について説明する。
【００５７】
まず、図１および図６の記憶部１３，３２に、あらかじめ、画像ｄ１中の特徴点ｄ２の追跡を時系列的に行うフレーム数（例えば、３フレーム）を設定しておく。また、連続する各２フレーム間で共通する画像ｄ１中の特徴点ｄ２の移動距離の許容値を示す閾値を設定しておく。そして、図１および図６の処理部１４，３３は、連続する各２フレーム間で共通する画像ｄ１中の特徴点ｄ２の移動距離が閾値に達するまで、あらかじめ設定されたフレーム数の単位、すなわち例えば３フレーム単位で特徴点ｄ２の追跡を繰り返し行う。例えば、初回フレームから第３フレーム、第４フレームから第６フレームという３フレーム単位で特徴点ｄ２の追跡が繰り返される。そして最終的に、画像ｄ１中の特徴点ｄ２の移動距離が閾値に達すると、処理部１４，３３は、対応する参照フレーム数を設定することとなる。この場合、より確実に参照フレーム数が設定されるという効果がある。
【００５８】
また、閾値は、複数の異なる値を設定するようにしてもよい。この場合、特徴点ｄ２の追跡回数が増加するに従って閾値が小さくなるようにする。例えば、最初の３フレーム数分の追跡における閾値よりも次の３フレーム数分の追跡における閾値を小さく設定するようにする。この場合、追跡状況に応じて閾値が変化することとなり、参照フレーム数がより円滑に設定されるという効果がある。
【図面の簡単な説明】
【００５９】
【図１】本発明の実施の形態１に係るカーソル位置制御装置の構成を示すブロック図である。
【図２】図１の処理部によって付与されるフレーム番号を示す説明図である。
【図３】図１の参照フレーム数設定条件を示す説明図である。
【図４】図１のカーソル位置制御装置によって実現されるカーソルの移動の方法を示す説明図である。
【図５】図１の処理部の処理手順であってカーソルの移動に関する処理手順を示す図である。
【図６】本発明の実施の形態２に係るカーソル位置制御システムの構成を示すブロック図である。
【図７】図６のクライアントおよびカーソル位置制御サーバにおける処理手順の一部であってカーソルの移動に関する処理手順を示す図である。
【図８】図７のクライアントおよびカーソル位置制御サーバにおける残りの処理手順を示す図である。
【符号の説明】
【００６０】
１０      カーソル位置制御装置
２０      カメラ装置
３０      カーソル位置制御サーバ
５０      クライアント（利用者用端末）
ｃ１      カーソル
【図１】
2005332073.tif 000003
【図２】
2005332073.tif 000004
【図３】
2005332073.tif 000005
【図４】
2005332073.tif 000006
【図５】
2005332073.tif 000007
【図６】
2005332073.tif 000008
【図７】
2005332073.tif 000009
【図８】
2005332073.tif 000010