(57)【特許請求の範囲】
【請求項１】
センサが、ある光源から画像フレームのデータを取り込むステップと、
コントローラユニットが前記光源に対する当該コントローラユニットの位置の変化を特定するステップであって、光学ナビゲーションのために、前記画像フレームのデータにおいてクラスタピクセルを特定してラベル付けするサブステップを含むステップと、
前記画像フレームのデータにおけるカレントピクセルがクラスタピクセルであるかどうかを前記コントローラユニットが決定するステップと、
前記カレントピクセルの近傍ピクセルのいずれかが、少なくとも１つの既存のクラスタに属するものとしてラベル付けがされているかどうかを前記コントローラユニットが決定するステップと、
前記カレントピクセルの近傍ピクセルのいずれもが、前記少なくとも１つの既存のクラスタに属するものとしてラベル付けがされていない場合には、前記コントローラユニットが、新たなクラスタに属するものとして前記カレントピクセルにラベル付けするステップと、
前記カレントピクセルの近傍ピクセルの少なくとも１つが、前記少なくとも１つの既存のクラスタに属するものとしてラベル付けされている場合には、前記コントローラユニットが、前記少なくとも１つの既存のクラスタのうちの特定のクラスタに属するものとして前記カレントピクセルにラベル付けするステップと
を含み、
前記新たなクラスタに属するものとして前記カレントピクセルにラベル付けする前記ステップ、又は前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けする前記ステップが、前記カレントピクセルのクラスタラベル情報をあるラベル配列に保存するステップを含み、当該ラベル配列がＮ個のラベル配列要素を含み、前記Ｎが前記画像データのフレームの幅に３を加えたものに等しい、光学ナビゲーションシステムを動作させる方法。
【請求項２】
前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けする前記ステップは、
前記カレントピクセルの近傍ピクセルの少なくとも１つが、前記特定のクラスタだけに属するものとしてラベル付けされている場合には、前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けするステップを含むものである、請求項１に記載の方法。
【請求項３】
前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けする前記ステップは、
前記カレントピクセルの近傍ピクセルの少なくとも１つが、複数の既存のクラスタに属するものとしてラベル付けされている場合には、前記近傍ピクセルの少なくとも１つにラベル付けするために用いられている前記複数の既存のクラスタのうちの最初のクラスタである前記特定のクラスタに属するものとして、前記カレントピクセルにラベル付けするステップを含むものである、請求項１に記載の方法。
【請求項４】
前記カレントピクセルの近傍ピクセルのいずれかが、少なくとも１つの既存のクラスタに属するものとしてラベル付けがされているかどうかを決定する前記ステップは、
前記カレントピクセルの近傍ピクセルのうちの選択されるピクセルのいずれかが、前記少なくとも１つの既存のクラスタに属するものとしてラベル付けされているかどうかのみを決定するステップであって、ここで、前記選択されるピクセルとは、左上の近傍ピクセルと、真上の近傍ピクセルと、右上の近傍ピクセルと、左隣の近傍ピクセルとを含むものである、ステップを含むものである、請求項１に記載の方法。
【請求項５】
前記カレントピクセルが属するものとしてラベル付けされている前記新たなクラスタ及び前記特定のクラスタのうちのいずれかについてのパラメータ計算を前記コントローラユニットが実行するステップをさらに含む請求項１に記載の方法。
【請求項６】
前記パラメータ計算は、前記カレントピクセルが属するものとしてラベル付けされている前記新たなクラスタ又は前記特定のクラスタについてのピクセル数に関する情報及び境界情報のうちの少なくともいずれかを含むものである、請求項５に記載の方法。
【請求項７】
前記画像フレームのデータにおける前記カレントピクセルがクラスタピクセルであるかどうかを決定する前記ステップは、
前記カレントピクセルの輝度値をある閾値と比較するステップを含むものである、請求項１に記載の方法。
【請求項８】
光を発するビーコンユニットと、
前記ビーコンユニットに対するコントローラユニットの相対的位置を計算するコントローラユニットと、
前記コントローラユニットに接続されており、発された光の画像フレームのデータを取り込む画像センサと、
前記画像センサに接続されており、前記画像フレームのデータにおいてクラスタピクセルを特定してラベル付けするナビゲーションエンジンであって、前記画像フレームのデータにおけるカレントピクセルがクラスタピクセルであるかどうかを決定し、前記カレントピクセルの近傍ピクセルのいずれかが、少なくとも１つの既存のクラスタに属するものとしてラベル付けがされているかどうかを決定し、前記カレントピクセルの近傍ピクセルのいずれもが、前記少なくとも１つの既存のクラスタに属するものとしてラベル付けされていない場合には、新たなクラスタに属するものとして前記カレントピクセルにラベル付けし、前記カレントピクセルの近傍ピクセルの少なくとも１つが、前記少なくとも１つの既存のクラスタに属するものとしてラベル付けされている場合には、前記少なくとも１つの既存のクラスタのうちの特定のクラスタに属するものとして前記カレントピクセルにラベル付けするナビゲーションエンジンと
を備えており、
前記ナビゲーションエンジンが、前記カレントピクセルのクラスタラベル情報をあるラベル配列に保存し、当該ラベル配列がＮ個のラベル配列要素を含み、前記Ｎが前記画像データのフレームの幅に３を加えたものに等しい、光学ナビゲーションシステム。
【請求項９】
前記ナビゲーションエンジンは、前記カレントピクセルの近傍ピクセルの少なくとも１つが、前記特定のクラスタだけに属するものとしてラベル付けされている場合には、前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けするものである、請求項８に記載の光学ナビゲーションシステム。
【請求項１０】
前記ナビゲーションエンジンは、前記カレントピクセルの近傍ピクセルの少なくとも１つが、複数の既存のクラスタに属するものとしてラベル付けされていて、ここで、前記特定のクラスタが、前記近傍ピクセルの少なくとも１つにラベル付けするために用いられている前記複数の既存のクラスタのうちの最初のクラスタである場合には、前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けするものである、請求項８に記載の光学ナビゲーションシステム。
【請求項１１】
前記ナビゲーションエンジンは、前記カレントピクセルの近傍ピクセルのうちの選択されるピクセルのいずれかが、前記少なくとも１つの既存のクラスタに属するものとしてラベル付けされているかどうかのみを決定するものであり、ここで、前記選択されるピクセルとは、左上の近傍ピクセルと、真上の近傍ピクセルと、右上の近傍ピクセルと、左隣の近傍ピクセルとを含むものである、請求項８に記載の光学ナビゲーションシステム。
【請求項１２】
前記ナビゲーションエンジンへ接続されるランダムアクセスメモリであって、前記ラベル配列を保存するために使用されるランダムアクセスメモリをさらに備える請求項８に記載の光学ナビゲーションシステム。
【請求項１３】
前記ナビゲーションエンジンは、前記カレントピクセルが属するものとしてラベル付けされている前記新たなクラスタ及び前記特定のクラスタのうちのいずれかについてのパラメータ計算を行うものである、請求項８に記載の光学ナビゲーションシステム。
【請求項１４】
前記パラメータ計算は、前記カレントピクセルが属するものとしてラベル付けされている前記新たなクラスタ又は前記特定のクラスタについてのピクセル数に関する情報及び境界情報のうちの少なくともいずれかを含むものである、請求項８に記載の光学ナビゲーションシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
典型的な光学ナビゲーションのシステムにおいては、画像フレームのデータが順次取り込まれ、比較されて、光学ナビゲーションシステムに対するフレームにおける特徴の変位を追跡する。これらのフレームにおける特徴の相対的変位を用いて、光学ナビゲーションシステムに対する特徴の動き又は特徴に対する光学ナビゲーションシステムの動きを推定することができる。用途によっては、これらの特徴は、光学ナビゲーションの基準点として取り込まれて使用されるビーコン（赤外線の光源など）とすることができる。この種の光学ナビゲーション法を、本明細書では、ビーコンベースのナビゲーション法と呼ぶ。ビーコンベースのナビゲーション法は、現在、コンピュータゲームシステムにおいて、ゲームシステムのための遠隔制御装置の動きを追跡するために使用されている。
【０００２】
ビーコンベースのナビゲーション法では、取り込み済みの画像フレームのデータにおいて画像化されたビーコンすなわちビーコンクラスタが特定され、取り込まれたフレーム間のビーコンクラスタの任意の変位が推定される。ビーコン源は、普通は静止状態であり、したがって、光学ナビゲーションシステムの動きを決定する基準点として使用される。画像フレームの取り込み済みデータ内のビーコンクラスタを特定する従来のプロセスでは、画像フレーム全体をランダムアクセスメモリ（ＲＡＭ）へ転送して、取り込み済みフレーム内のビーコンクラスタが探索される。すなわち、各ピクセル値を調べてそのピクセル値がビーコンクラスタに属するかどうかを決定できるように、画像フレームのデータにあるすべてのピクセル値が処理のためにＲＡＭへ転送される。
【０００３】
取り込み済み画像フレームのデータにあるビーコンクラスタを特定する上記プロセスに伴う１つの問題は、必要となるＲＡＭサイズが比較的大きくなり、それが光学ナビゲーションシステムのコストを著しく増加させることである。さらに、必要なＲＡＭサイズが、少なくとも取り込み済み画像フレームそれぞれのデータのサイズでなければならないため、取り込まれるフレームの解像度を高くする場合、より大きなＲＡＭが必要となる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、取り込み済み画像フレームのデータにおいてビーコンクラスタなどの特徴を特定し、取り込まれる画像フレーム内のピクセルを処理するために必要なメモリサイズを低減する光学ナビゲーションのためのシステム及び方法が求められている。
【課題を解決するための手段】
【０００５】
光学ナビゲーションのための画像フレームのデータにおいてクラスタピクセルを特定してラベル付けするシステム及び方法は、画像フレームのデータにあるカレントピクセルがクラスタピクセルであるかどうかを決定し、カレントピクセルの近傍ピクセルを使って、カレントピクセルを、新たなクラスタ又は既存のクラスタに属するものとしてラベル付けする。本発明の実施形態に基づくカレントピクセルをラベル付けするプロセスは、メモリを節約し、システムコストの低減につながる。
【０００６】
本発明の一実施形態によれば、画像フレームのデータにあるクラスタピクセルを特定してラベル付けする光学ナビゲーションのための方法は、画像フレームのデータにあるカレントピクセルがクラスタピクセルであるかどうかを決定するステップと、カレントピクセルの近傍ピクセルのいずれかが、少なくとも１つの既存のクラスタに属するものとしてラベル付けされているかどうかを決定するステップと、カレントピクセルの近傍ピクセルのいずれもが、少なくとも１つの既存のクラスタに属するものとしてラベル付けされていない場合には、カレントピクセルを新たなクラスタに属するものとしてラベル付けするステップと、カレントピクセルの近傍ピクセルの少なくとも１つが、少なくとも１つの既存のクラスタに属するものとしてラベル付けされている場合には、カレントピクセルを、少なくとも１つの既存のクラスタのうちの特定のクラスタに属するものとしてラベル付けするステップとを含む。
【０００７】
本発明の一実施形態によれば、光学ナビゲーションのためのシステムは、画像センサと、ナビゲーションエンジンとを備える。画像センサは、画像フレームのデータを取り込むものである。ナビゲーションエンジンは、画像フレームのデータにおけるクラスタピクセルを特定してラベル付けするために、画像センサへ接続される。ナビゲーションエンジンは、画像フレームのデータのカレントピクセルがクラスタピクセルであるかどうかを決定するものである。ナビゲーションエンジンは、さらに、カレントピクセルの近傍ピクセルのいずれかが、少なくとも１つの既存のクラスタに属するものとしてラベル付けされているかどうかを決定する。ナビゲーションエンジンは、カレントピクセルの近傍ピクセルのいずれもが、少なくとも１つの既存のクラスタに属するものとしてラベル付けされていない場合には、カレントピクセルを、新たなクラスタに属するものとしてラベル付けし、カレントピクセルの近傍ピクセルの少なくとも１つが、少なくとも１つの既存のクラスタに属するものとしてラベル付けされている場合には、カレントピクセルを少なくとも１つの既存のクラスタのうちの特定のクラスタに属するものとしてラベル付けする。
【０００８】
本発明の別の態様及び利点について、以下の詳細な説明と、本発明の原理の例として示す添付の図面とを参照して説明する。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明の一実施形態による光学ナビゲーションシステム１００を示している。本実施形態では、光学ナビゲーションシステム１００は、画像フレームの取り込み済みデータにおいて画像化されたビーコンを使ってナビゲートを行う。すなわち、光学ナビゲーションシステム１００は、光学ナビゲーションとしてビーコンベースのナビゲーションを使用する。したがって、光学ナビゲーションシステム１００は、取り込み済み画像フレームのデータを処理し、本明細書においてはビーコンクラスタとも単にクラスタともいう画像化されたビーコン光源に属し、取り込み済みフレームにあるピクセルを特定してラベル付けする。以下でより詳細に説明するように、光学ナビゲーションシステム１００は、取り込み済みフレームのピクセルを、メモリ所要量が少なくて済む効率のよいやり方で処理する。
【００１０】
図１に示しているように、光学ナビゲーションシステム１００は、コントローラユニット１０２と、ビーコンユニット１０４と、表示装置１０６と、コンソールユニット１０８とを備えている。ある実施形態においては、コンソールユニット１０８は、従来の有線を使って表示装置１０６へ接続される。代替として、別の有線接続又は無線接続を用いることもできる。ある実施形態においては、コントローラユニット１０２及びコンソールユニット１０８は、ゲームシステムの一部である。代替として、光学ナビゲーションシステム１００は、別のタイプのシステムを実現するために用いることができる。例えば、光学ナビゲーションシステム１００の実施形態の中には、コンピュータシステムのためのアクセス可能なユーザインターフェースを提供するために使用されるものもある。
【００１１】
コントローラユニット１０２は、ビーコンユニット１０４に対するコントローラユニットの相対的位置を計算する。コントローラユニット１０２は、ビーコンユニット１０４を基準として位置計算を行う。ビーコンユニット１０４は、複数のビーコン光源１１０を備えている。ビーコン光源は、コントローラユニットの相対的位置を計算するための基準点としてコントローラユニット１０２により使用される。一実施形態では、ビーコンユニット１０４のビーコン光源１１０は、赤外線（ＩＲ）、発光ダイオード（ＬＥＤ）、又はレーザダイオードなとの可視光源である。図示した実施形態では、ビーコンユニット１０４は、２つのビーコン光源１１０を備えている。しかしながら、別の実施形態では、ビーコンユニット１０４は、３つ以上のビーコン光源を備えることができる。コントローラユニット１０２は、画像フレームのデータにおけるビーコンユニット１０４のビーコン光源１１０を電子的に取り込む。次いで、コントローラユニット１０２は、取り込み済み画像フレームのデータを処理して、取り込まれたフレームにおいて画像化されたビーコン光源を特定してラベル付けする。取り込まれた画像フレームのデータ間における画像化されたビーコン光源位置の変化を用いて、光学ナビゲーションシステム１００の座標系におけるコントローラユニット１０２の相対的位置を示す位置データが出力される。光学ナビゲーションシステム１００の座標系は、較正段階において確立することができる。出力位置データは、光学ナビゲーションシステムのＸ軸、Ｙ軸及びＺ軸に沿った、ｘ、ｙ及びｚの位置値とすることができる。代替として、出力位置データは、それぞれの軸に沿った変化又は変位を表す、光学ナビゲーションシステム１００のＸ軸、Ｙ軸及びＺ軸に沿ったΔｘ、Δｙ及びΔｚの値とすることもできる。
【００１２】
コントローラユニット１０２の位置データは、コンソールユニット１０８へ送られる。コンソールユニット１０８は、特定のアプリケーションで使用される位置データを処理する。一例として、コンソールユニット１０８は、コントローラユニットから新たな位置データを受信する際に、コントローラユニット１０２の動きに従って表示装置１０６上に表示されるグラフィック要素を操作することができる。コンソールユニット１０８は、ゲームプログラムなどの１つ又は複数のコンピュータプログラムを実行するコンピュータシステムとすることができる。本実施形態では、コンソールユニット１０８は、パーソナルコンピュータシステムで一般的な構成要素を備えることができる。
【００１３】
図２は、本発明の一実施形態によるコントローラユニット１０２のブロック図である。図示されているコントローラユニット１０２は、デジタルプロセッサ２１２と、メモリデバイス２１４と、電源２１６と、送受信機２１８と、画像センサ２２０と、ナビゲーションエンジン２２２と、ランダムアクセスメモリ（ＲＡＭ）２２４と、光学レンズ２２６と、光学フィルタ２２７と、水晶発振器２２８とを備えている。図示した実施形態では、ナビゲーションエンジン２２２と、ＲＡＭ２２４と、画像センサ２２０とは、集積回路（ＩＣ）２３０の一部である。しかしながら、別の実施形態では、画像センサ２２０と、ナビゲーションエンジン２２２と、ＲＡＭ２２４とのうちの少なくとも２つが、別個の構成要素として実装することもできる。ＩＣ２３０は、１つ又は複数の信号線２３２を介してデジタルプロセッサ２１２へ接続されており、これらの信号線は、アドレス、データ及び／又は制御の信号線を含むことができる。コントローラユニット１０２は、特定の構成要素を含むものとして示されているが、コントローラユニットは、別の構成要素を備えることもできる。例えば、コントローラユニット１０２の実施形態には、入力ボタン、ジョイスティック又はゲームコントローラに通常使用される別のセレクタを含むものもある。コントローラユニット１０２の別の実施形態には、ユーザへの触覚又は聴覚フィードバック信号を生成するフィードバック信号発生器が含まれる。
【００１４】
ある実施形態においては、デジタルプロセッサ２１２は、マイクロプロセッサやマイクロコントローラなどの汎用プロセッサとすることもできる。別の実施形態では、デジタルプロセッサ２１２は、デジタル信号プロセッサなどの専用プロセッサとすることもできる。別の実施形態では、デジタルプロセッサ２１２は、別のタイプのコントローラ又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）とすることもできる。一般に、デジタルプロセッサ２１２は、コントローラユニット１０２の動作及び機能を実装する。
【００１５】
メモリデバイス２１４は、コントローラユニット１０２の動作において使用するためのデータ及び／又は命令を保存する。ある実施形態においては、メモリデバイス２１４は、デジタルプロセッサ２１２に特定の動作を実行させる命令を保存する。同様に、ある命令を、デジタルプロセッサ２１２に統合されたメモリに保存することもできる。加えて、メモリデバイス２１４は、デジタルプロセッサ２１２及び／又はナビゲーションエンジン２２２によって作成される位置データを保存することもできる。
【００１６】
一実施形態では、電源２１６は、デジタルプロセッサ２１２と、コントローラユニット１０２の他の構成要素とに対して、直流（ＤＣ）電気信号Ｖｃｃを提供する。電源２１６の実施形態の中には、１つ又は複数の電池を含む。ある実施形態においては、電源２１６が、有線を介してコンソールユニット１０８から電力を受け取る。同様に、水晶発振器２２８は、コントローラユニット１０２の構成要素の１つ又は複数に対してクロック信号ＣＬＫを提供する。
【００１７】
送受信機２１８は、デジタルプロセッサ２１２へ接続されており、コントローラユニット１０２からコンソールユニット１０８へ位置データ信号などの信号を送信する。また、送受信機２１８は、コンソールユニット１０８から制御信号、すなわちフィードバック信号を受信することもできる。それに加えて、送受信機は、有線通信又は無線通信を助けることもできる。例えば、送受信機２１８は、有線による接続を介してコンソールユニット１０８へ電気信号を送ることができる。代替として、送受信機２１８は、公知の無線データ伝送プロトコルを使って、無線周波数（ＲＦ）信号などの無線信号を送ることもできる。
【００１８】
画像センサ２２０も、デジタルプロセッサ２１２へ接続されており、画像フレームのデータを取り込む。画像センサ２２０は、相補型金属酸化膜半導体（ＣＭＯＳ）画像センサアレイや電荷結合素子（ＣＣＤ）画像センサアレイなどの電子画像化センサアレイを含む。例えば、画像センサは、比較的低い解像度の画像フレームのデータを取り込む３０×３０ピクセルアレイを含むことができる。しかしながら、画像センサ２２０の別の実施形態は、画像フレームのより高い解像度のデータのためのより大きいサイズのピクセルアレイを含むことができる。図示した実施形態では、画像センサ２２０は、光学レンズ２２６及び光学フィルタ２２７と併用されている。光学レンズ２２６は、画像の焦点を画像センサ２２０に合わせるために使用される。光学フィルタ２２７は、望ましくない光を選択的に除去し、ビーコンユニット１０４のビーコン光源１１０からの光を選択的に送って、ビーコン光源１１０からの光を画像センサ２２０によって画像化（または結像）するために使用する。例えば、光学フィルタ２２７は、ＩＲ（赤外）又はカラーフィルタとすることができる。しかしながら、別の実施形態では、光学レンズ２２６及び／又は光学フィルタ２２７を省略するか、又は複数の光学レンズ及び／又は光学フィルタを実装することができる。
【００１９】
図示した実施形態では、ナビゲーションエンジン２２２は、ＩＣ２３０上で画像センサ２２０及びＲＡＭ２２４と一体化されている。別の実施形態では、ナビゲーションエンジン２２２は、一部又は全部が、デジタルプロセッサ２１２と一体化することもできる。一般にナビゲーションエンジン２２２は、画像センサ２２０によって取り込まれた画像フレームのデータを処理して、コントローラユニット１０２に関する現在の位置データを計算し出力する。この処理の間、ナビゲーションエンジン２２２は、取り込み済み画像フレームのデータにある特徴クラスタ、例えば、取り込まれたフレーム内にある画像化されたビーコン光源のクラスタなどを特定することとラベル付けすることを含む動作を行う。以下でより詳細に説明するように、この動作は、必要なＲＡＭサイズを低減した効率的なやり方でのＲＡＭ２２４の使用を伴う。取り込まれたフレーム内の特徴クラスタが特定されてラベル付けされた後、これらのクラスタを使って位置データが計算される。
【００２０】
特徴クラスタの特定とラベル付けに関するナビゲーションエンジン２２２の動作について、一例として、画像センサ２２０に含めることのできる図３の１０×１０センサ配列３３４と、図４のプロセスフロー図とを参照して説明する。図３では、センサ配列３３４は、各ピクセル内に取り込まれたデータを含む。一実施形態では、センサ配列３３４のピクセル内の各データは、そのピクセルに取り込まれた輝度又は強度の値である。したがって、この例では、取り込まれた画像フレームのデータは１０×１０ピクセルの画像フレームである。図３に示しているように、取り込まれたフレームは、画像化されたビーコン光源を表すことができる３つの特徴クラスタ３３６、３３８及び３４０を含んでいる。一実施形態では、画像フレームのデータにおけるピクセルは、そのピクセルが所定の閾値より大きい輝度値を有する場合には、ある特徴クラスタに属するものとみなされる。以下でより詳細に説明するように、２つ以上の特徴クラスタがあるものと仮定すると、ナビゲーションエンジン２２２は、まず、ピクセルを、ある特徴クラスタに属するものとして特定し、次いで、そのピクセルを、適切な特徴クラスタにラベル付けする。加えて、ナビゲーションエンジン２２２は、画像の各ピクセルが処理される際に、各特徴クラスタのパラメータ計算も行う。
【００２１】
図４に示しているように、ナビゲーションエンジン２２２の動作は、ブロック４０２から開始し、センサ配列３３４の次のピクセルのデータを読み取る。ピクセルデータが読み取られるピクセルは、ナビゲーションエンジン２２２によって処理されているセンサ配列３３４のカレントピクセルである。ピクセルデータは、少なくとも、カレントピクセルの輝度値を含む。ピクセルデータは、センサ配列３３４の最も上の行から始まって最も下の行まで、左から右へと読み取られる。したがって、読み取られるべき最初のピクセルデータは、図３に示したピクセル（ｘ１，ｙ１）のデータである。
【００２２】
次に、ブロック４０４で、カレントピクセルのピクセル輝度値が閾値より大きいかどうかが決定される。閾値より大きい輝度値を有するピクセルは、「クラスタピクセル」又は１つ又は複数の特徴クラスタに属するピクセルであるとみなされる。ピクセル輝度値が閾値以下である場合、ブロック４２０に進む。ピクセル輝度値が閾値より大きい場合、ブロック４０６に進む。
【００２３】
ブロック４０６において、カレントピクセルが既存の特徴クラスタに連結しているかどうかが決定される。この決定は、カレントピクセルの周りの近傍ピクセルと関連付けられたラベル情報を調べることによって行われる。カレントピクセルの周りの近傍ピクセルとは、カレントピクセルのすぐ隣にあるピクセルである。ある実施形態においては、カレントピクセルが既存の特徴クラスタに連結しているかどうかを決定するために、カレントピクセルの選択された近傍ピクセルだけが調べられる。一実施形態では、カレントピクセルの上にある近傍ピクセルと、カレントピクセルの右隣にある近傍ピクセルだけを調べる。これは図５に示されており、図５には、カレントピクセルと近傍ピクセル［１］、［２］、［３］及び［４］が示されている。本実施形態では、カレントピクセルが既存の特徴クラスタに連結しているかどうかを決定するために、左隣の近傍ピクセル［１］と、左上の近傍ピクセル［２］と、真上の近傍ピクセル［３］と、右上の近傍ピクセル［４］とのみを調べる。したがって、ナビゲーションエンジン２２２は、カレントピクセルの近傍ピクセル［１］、［２］、［３］及び［４］に関するクラスタ情報を保存する必要がある。したがって、処理されるピクセルごとに、そのピクセルに関して同様に位置する近傍ピクセルのクラスタ情報が保存されて、アクセスできるようにする必要がある。
【００２４】
図４に戻って、ブロック４０６で、カレントピクセルが既存の特徴クラスタに連結していないと決定された場合、ブロック４０８に進み、カレントピクセルが、新たな特徴クラスタに属するものとしてラベル付けされる。次いで、ブロック４１８に進む。しかしながら、ブロック４０６で、カレントピクセルが既存の特徴クラスタに連結していると決定された場合、ブロック４１０に進み、カレントピクセルが２つ以上の特徴クラスタに連結しているかどうかが決定される。すなわち、近傍ピクセルの２つ以上が異なる特徴クラスタに属しているかどうかが決定される。カレントピクセルが２つ以上の特徴クラスタに連結している場合、ブロック４１２において近傍ピクセルの異なる特徴クラスタ、及び以前に処理されて選択された他のピクセルが、同じ特徴クラスタとして再度ラベル付けされる。すなわち、別々の特徴クラスタに属するものとしてラベル付けされている近傍ピクセル及び以前に選択されて処理された他のピクセルが、同じ特徴クラスタに属するものとして再度ラベル付けされる。一実施形態では、適切な場合には、カレントピクセルの上にある近傍ピクセルと、カレントピクセルの左隣にある近傍ピクセルと、右上の近傍ピクセルの右側にある２つの近接するピクセルだけが再度ラベル付けされる。これは図５に示されており、図５には、カレントピクセルと、近傍ピクセル［１］、［２］、［３］及び［４］と、近接するピクセル［５］及び［６］が示されている。一実施形態では、別々の特徴クラスタが、近傍ピクセルをラベル付けするために使用される最初の既存の特徴クラスタとして再度ラベル付けされる。次いでブロック４１４に進む。
【００２５】
ブロック４１４において、カレントピクセルが、同じ既存の特徴クラスタに属するものとしてラベル付けされる。カレントピクセルが１つの既存の特徴クラスタだけに連結している場合、カレントピクセルは、その既存の特徴クラスタに属するものとしてラベル付けされる。カレントピクセルが、２つ以上の既存の特徴クラスタに連結している場合、カレントピクセルは、再度ラベル付けされた特徴クラスタに属するものとしてラベル付けされる。
【００２６】
次に、ブロック４１６で、カレントピクセルの既存の特徴クラスタが１つにまとめられる（collapse）。次に、ブロック４１８で、カレントピクセルの特徴クラスタのパラメータ計算が行われる。一実施形態では、パラメータ計算は、ｔｏｔａｌ＿ｘ値と、ｔｏｔａｌ＿ｙ値と、ｐｉｘｅｌ＿ｃｏｕｎｔ値と、ｂｏｕｎｄａｒｙ＿ｘ１値と、ｂｏｕｎｄａｒｙ＿ｙ１値と、ｂｏｕｎｄａｒｙ＿ｘ２値と、ｂｏｕｎｄａｒｙ＿ｙ２値とを含む。ｔｏｔａｌ＿ｘ値は、特徴クラスタに属するピクセルのｘ座標値の和である。ｔｏｔａｌ＿ｙ値は、特徴クラスタに属するピクセルのｙ座標値の和である。ｐｉｘｅｌ＿ｃｏｕｎｔ値は、特徴クラスタに属するピクセルの数である。ｂｏｕｎｄａｒｙ＿ｘ１値と、ｂｏｕｎｄａｒｙ＿ｙ１値と、ｂｏｕｎｄａｒｙ＿ｘ２値と、ｂｏｕｎｄａｒｙ＿ｙ２値とは、特徴クラスタの矩形境界値であり、これは、特徴クラスタに属するピクセルの最小のｘ座標値とｙ座標値、すなわちｂｏｕｎｄａｒｙ＿ｘ１値とｂｏｕｎｄａｒｙ＿ｙ１値、ならびに最大のｘ座標値とｙ座標値、すなわちｂｏｕｎｄａｒｙ＿ｘ２値とｂｏｕｎｄａｒｙ＿ｙ２値を含む。
【００２７】
次に、ブロック４２０で、カレントピクセルがセンサ配列３３４内の最後のピクセルであるかどうかが決定される。カレントピクセルが最後のピクセルでない場合、動作はブロック４０２に戻り、次のピクセルが、処理対象のセンサ配列から読み取られる。カレントピクセルが最後のピクセルである場合、動作はブロック４２２に進み、ナビゲーションを行うためにすべての特徴クラスタがレポートされる。
【００２８】
ナビゲーションエンジンの動作中、ＲＡＭ２２４は、カレントピクセルと、以前処理されたピクセルの一部のクラスタラベル情報を保存するために使用される。本明細書において、クラスタラベル情報とは、ピクセルを１つ又は複数の特徴クラスタに関連付ける任意の情報を含む。ＲＡＭ２４の使用を、一例として、図３の１０×１０センサ配列３３４に関して説明する。ＲＡＭ２２４は、センサ配列３３４の選択されるピクセルのクラスタラベル情報をラベル配列に保存するために使用される。一実施形態では、ラベル配列の深さ（depth）は、センサ配列の幅（width）に３を加えたものに等しい。したがって、図３の１０×１０センサ配列３３４では、ラベル配列の深さは、１０＋３、すなわち１３である。しかしながら、別の実施形態では、ラベル配列の深さは、より小さくすることも、大きくすることもできる。図６Ａには、センサ配列３３４のピクセルが処理される際の、ＲＡＭ２２４に保存されているラベル配列の内容が示されている。図示した実施形態では、ラベル配列は、ラベル配列要素［１］〜［１３］を含む。図６Ａでは、「ｎ」は「新たなラベル番号」を意味し、「ｒ」は「１つにまとめられたラベル番号に再度ラベル付けすること」を意味し、「ｃ」は「ラベル番号を結合（combine）すること」を意味し、「ｆ」は「以前のラベル番号に従うこと」を意味する。図６Ｂには、センサ配列のピクセルが処理される際に、センサ配列３３４において見られる異なる特徴クラスタのパラメータ計算が示されている。パラメータ計算は、ＲＡＭ２２４に保存することもでき、メモリデバイス２１４などの別のデバイスに保存することもできる。図６Ａと図６Ｂには、例示のためにセンサ配列３３４の最初の２行のピクセルの結果だけが示されている。センサ配列３３４の残りのピクセルも、同様に処理される。
【００２９】
まず、図６Ａと図６Ｂの「ｙ１ｘ１」の列に示されているように、ラベル配列がすべて０を含むように設定され、パラメータ計算もゼロに設定される。図３に示されているように、特徴クラスタ又は「クラスタピクセル」に属するピクセルとして特定されているセンサ配列３３４の最初の２行のピクセルは、座標（ｘ３，ｙ１）、（ｘ５，ｙ１）、（ｘ６，ｙ１）、（ｘ７，ｙ１）、（ｘ１０，ｙ１）、（ｘ３，ｙ２）、（ｘ４，ｙ２）、（ｘ５，ｙ２）、（ｘ６，ｙ２）、（ｘ９，ｙ２）及び（ｘ１０，ｙ２）の各ピクセルである。図６Ａに示されているように、各ピクセルが処理された後、ラベル配列の内容がラベル配列要素１つ分シフトされ、ラベル配列要素［１３］に移動されるラベル配列要素［１］の内容を除いて、ラベル配列要素［Ｎ］の内容がラベル配列要素［Ｎ−１］に移動される。
【００３０】
図６Ａに示されているように、カレントピクセル又はターゲットピクセル（ｘ３，ｙ１）が処理されているとき、ピクセル（ｘ３，ｙ１）は、既存のどの特徴クラスタにも連結していないため、新たな特徴クラスタに属するものとしてラベル付けされる。その結果、ラベル配列要素［１］は、列「ｙ１ｘ４」に示しているように、ターゲットピクセル（ｘ３，ｙ１）が特徴クラスタ［１］に属することを表す新たなラベル番号「１」に設定される。ピクセル（ｘ５，ｙ１）とピクセル（ｘ１０，ｙ１）も同様に処理される。ターゲットピクセル（ｘ６，ｙ１）が処理されているとき、ピクセル（ｘ６，ｙ１）は、同じ以前の特徴クラスタだけに連結しているため、その特徴クラスタに属するものとしてラベル付けされる。その結果、ラベル配列要素［１］は、列「ｙ１ｘ６」に示しているように、ターゲットピクセル（ｘ６，ｙ１）が特徴クラスタ［２］に属することを示す同じラベル番号「２」に設定される。ピクセル（ｘ７，ｙ１）、（ｘ３，ｙ２）、（ｘ５，ｙ２）、（ｘ６，ｙ２）、（ｘ９，ｙ２）及び（ｘ１０，ｙ２）も同様に処理される。ターゲットピクセル（ｘ４，ｙ２）が処理されているとき、ピクセル（ｘ４，ｙ２）は、２つ以上の既存の特徴クラスタに連結しているため、結合ラベル（combined label）に属するものとしてラベル付けされる。その結果、ラベル配列要素［１］は、列「ｙ２ｘ５」に示しているように、ターゲットピクセル（ｘ４，ｙ２）が特徴クラスタ［１］に属することを示す結合ラベル番号「１」に設定される。加えて、ラベル配列要素［３］、［４］及び［５］は、列「ｙ２ｘ５」に示しているように、クラスタピクセル（ｘ５，ｙ１）、（ｘ６，ｙ１）及び（ｘ７，ｙ１）が、今や、特徴クラスタ［１］に属していることを表す結合ラベル番号「１」に再度ラベル付けされる。センサ配列の残りのクラスタピクセルも、同様に処理される。
【００３１】
クラスタピクセルが処理されているときには、図６Ｂに示しているように、ターゲットピクセルに対してラベル付けされている特徴クラスタ内のターゲットピクセルを含めるためにパラメータ計算も更新される。一例として、ターゲットピクセル（ｘ３，ｙ１）が処理されているとき、特徴クラスタ［１］のパラメータ計算は、その時点でクラスタピクセル（ｘ３，ｙ１）だけを含む特徴クラスタ［１］に属するすべてのクラスタピクセルの情報を使って更新される。別の例として、ターゲットピクセル（ｘ４，ｙ２）が処理されているときには、特徴クラスタ［１］のパラメータ計算は、その時点で、クラスタピクセル（ｘ３，ｙ１）、（ｘ５，ｙ１）、（ｘ６，ｙ１）、（ｘ７，ｙ１）、（ｘ３，ｙ２）及び（ｘ４，ｙ２）を含む特徴クラスタ［１］に属することになるすべてのクラスタピクセルの情報を使って更新される。したがって、クラスタピクセルが再度ラベル付けされる際には、再度ラベル付けされるクラスタピクセルを含めて特定の特徴クラスタ内のすべてのクラスタピクセルを使ってパラメータ計算が行われる。このようにして、特徴クラスタのパラメータ計算は、クラスタピクセルが処理されるときに更新される。
【００３２】
本発明の一実施形態に基づいて光学ナビゲーションのための画像フレームのデータにおいてクラスタピクセルを特定してラベル付けする方法を、図７のプロセスフロー図を参照して説明する。ブロック７０２で、画像フレームのデータにおけるカレントピクセルがクラスタピクセルであるかどうかが決定される。本明細書においてクラスタピクセルとは、画像化されたビーコンクラスタなどの特徴クラスタに属するピクセルのことである。カレントピクセルがクラスタピクセルではない場合には、カレントピクセルの処理は終了する。次に、ブロック７０４において、カレントピクセルがクラスタピクセルである場合には、カレントピクセルの近傍ピクセルのいずれかが少なくとも１つの既存のクラスタに属するものとしてラベル付けされているかどうかが決定される。次に、ブロック７０６において、カレントピクセルの近傍ピクセルのいずれもが、少なくとも１つの既存のクラスタに属するものとしてラベル付けされていない場合、カレントピクセルが新たなクラスタに属するものとしてラベル付けされる。あるいはブロック７０８においてカレントピクセルの近傍ピクセルの少なくとも１つが、少なくとも１つの既存のクラスタに属するものとしてラベル付けされている場合には、カレントピクセルは、少なくとも１つの既存のクラスタの特定のクラスタに属するものとしてラベル付けされる。
【００３３】
以上、本発明の具体的な実施形態を説明し、図示しているが、本発明は、説明及び図示した部分の特定の形態又は構成だけに限定されるものではない。本発明の範囲は、添付の特許請求の範囲及びそれと均等なものにより定まる。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施形態に基づく光学ナビゲーションシステムを示す説明図である。
【図２】図１の光学ナビゲーションシステムに含まれるコントローラユニットのブロック図である。
【図３】本発明の一実施形態に基づくコントローラユニットのナビゲーションエンジンの動作を説明する例として、３つの特徴クラスタを有する画像フレームのデータを含む１０×１０センサ配列を示す図である。
【図４】本発明の一実施形態に基づくナビゲーションエンジンの動作のプロセスフロー図である。
【図５】本発明の一実施形態に基づいて、カレントピクセルを特徴クラスタに属するものとしてラベル付けするために調べられ、及び／又は処理されるカレントピクセルの近傍ピクセルを示す説明図である。
【図６Ａ】本発明の一実施形態に基づいて図３の画像フレームのデータにおけるピクセルが処理される際のラベル配列の内容を示す説明図である。
【図６Ｂ】本発明の一実施形態に基づいて図３の画像フレームのデータにおけるピクセルが処理される際の異なるクラスタのパラメータ計算を示す説明図である。
【図７】本発明の一実施形態に基づいて、光学ナビゲーションのための画像フレームのデータにおいてクラスタピクセルを特定してラベル付けする方法のプロセスフロー図である。
【図１】
0004648958.tif 000002
【図２】
0004648958.tif 000003
【図３】
0004648958.tif 000004
【図４】
0004648958.tif 000005
【図５】
0004648958.tif 000006
【図６Ａ】
0004648958.tif 000007
【図６Ｂ】
0004648958.tif 000008
【図７】
0004648958.tif 000009