説明

画像フレームのデータにおいてクラスタピクセルを特定してラベル付けする光学ナビゲーションのためのシステム及び方法

【課題】 取り込み済み画像フレームのデータにおいてビーコンクラスタなどの特徴を特定し、取り込まれる画像フレーム内のピクセルを処理するために必要なメモリサイズを低減する光学ナビゲーションのためのシステム及び方法を提供する。
【解決手段】 画像フレームのデータにおいてクラスタピクセルを特定してラベル付けする光学ナビゲーションのためのシステム及び方法であって、画像フレームのデータにおけるカレントピクセルがクラスタピクセルであるかどうかを決定し、カレントピクセルの近傍ピクセルを用いて、カレントピクセルを、新たなクラスタ又は既存のクラスタに属するものとしてラベル付けする。

【発明の詳細な説明】
【背景技術】
【0001】
典型的な光学ナビゲーションのシステムにおいては、画像フレームのデータが順次取り込まれ、比較されて、光学ナビゲーションシステムに対するフレームにおける特徴の変位を追跡する。これらのフレームにおける特徴の相対的変位を用いて、光学ナビゲーションシステムに対する特徴の動き又は特徴に対する光学ナビゲーションシステムの動きを推定することができる。用途によっては、これらの特徴は、光学ナビゲーションの基準点として取り込まれて使用されるビーコン(赤外線の光源など)とすることができる。この種の光学ナビゲーション法を、本明細書では、ビーコンベースのナビゲーション法と呼ぶ。ビーコンベースのナビゲーション法は、現在、コンピュータゲームシステムにおいて、ゲームシステムのための遠隔制御装置の動きを追跡するために使用されている。
【0002】
ビーコンベースのナビゲーション法では、取り込み済みの画像フレームのデータにおいて画像化されたビーコンすなわちビーコンクラスタが特定され、取り込まれたフレーム間のビーコンクラスタの任意の変位が推定される。ビーコン源は、普通は静止状態であり、したがって、光学ナビゲーションシステムの動きを決定する基準点として使用される。画像フレームの取り込み済みデータ内のビーコンクラスタを特定する従来のプロセスでは、画像フレーム全体をランダムアクセスメモリ(RAM)へ転送して、取り込み済みフレーム内のビーコンクラスタが探索される。すなわち、各ピクセル値を調べてそのピクセル値がビーコンクラスタに属するかどうかを決定できるように、画像フレームのデータにあるすべてのピクセル値が処理のためにRAMへ転送される。
【0003】
取り込み済み画像フレームのデータにあるビーコンクラスタを特定する上記プロセスに伴う1つの問題は、必要となるRAMサイズが比較的大きくなり、それが光学ナビゲーションシステムのコストを著しく増加させることである。さらに、必要なRAMサイズが、少なくとも取り込み済み画像フレームそれぞれのデータのサイズでなければならないため、取り込まれるフレームの解像度を高くする場合、より大きなRAMが必要となる。
【発明の開示】
【発明が解決しようとする課題】
【0004】
したがって、取り込み済み画像フレームのデータにおいてビーコンクラスタなどの特徴を特定し、取り込まれる画像フレーム内のピクセルを処理するために必要なメモリサイズを低減する光学ナビゲーションのためのシステム及び方法が求められている。
【課題を解決するための手段】
【0005】
光学ナビゲーションのための画像フレームのデータにおいてクラスタピクセルを特定してラベル付けするシステム及び方法は、画像フレームのデータにあるカレントピクセルがクラスタピクセルであるかどうかを決定し、カレントピクセルの近傍ピクセルを使って、カレントピクセルを、新たなクラスタ又は既存のクラスタに属するものとしてラベル付けする。本発明の実施形態に基づくカレントピクセルをラベル付けするプロセスは、メモリを節約し、システムコストの低減につながる。
【0006】
本発明の一実施形態によれば、画像フレームのデータにあるクラスタピクセルを特定してラベル付けする光学ナビゲーションのための方法は、画像フレームのデータにあるカレントピクセルがクラスタピクセルであるかどうかを決定するステップと、カレントピクセルの近傍ピクセルのいずれかが、少なくとも1つの既存のクラスタに属するものとしてラベル付けされているかどうかを決定するステップと、カレントピクセルの近傍ピクセルのいずれもが、少なくとも1つの既存のクラスタに属するものとしてラベル付けされていない場合には、カレントピクセルを新たなクラスタに属するものとしてラベル付けするステップと、カレントピクセルの近傍ピクセルの少なくとも1つが、少なくとも1つの既存のクラスタに属するものとしてラベル付けされている場合には、カレントピクセルを、少なくとも1つの既存のクラスタのうちの特定のクラスタに属するものとしてラベル付けするステップとを含む。
【0007】
本発明の一実施形態によれば、光学ナビゲーションのためのシステムは、画像センサと、ナビゲーションエンジンとを備える。画像センサは、画像フレームのデータを取り込むものである。ナビゲーションエンジンは、画像フレームのデータにおけるクラスタピクセルを特定してラベル付けするために、画像センサへ接続される。ナビゲーションエンジンは、画像フレームのデータのカレントピクセルがクラスタピクセルであるかどうかを決定するものである。ナビゲーションエンジンは、さらに、カレントピクセルの近傍ピクセルのいずれかが、少なくとも1つの既存のクラスタに属するものとしてラベル付けされているかどうかを決定する。ナビゲーションエンジンは、カレントピクセルの近傍ピクセルのいずれもが、少なくとも1つの既存のクラスタに属するものとしてラベル付けされていない場合には、カレントピクセルを、新たなクラスタに属するものとしてラベル付けし、カレントピクセルの近傍ピクセルの少なくとも1つが、少なくとも1つの既存のクラスタに属するものとしてラベル付けされている場合には、カレントピクセルを少なくとも1つの既存のクラスタのうちの特定のクラスタに属するものとしてラベル付けする。
【0008】
本発明の別の態様及び利点について、以下の詳細な説明と、本発明の原理の例として示す添付の図面とを参照して説明する。
【発明を実施するための最良の形態】
【0009】
図1は、本発明の一実施形態による光学ナビゲーションシステム100を示している。本実施形態では、光学ナビゲーションシステム100は、画像フレームの取り込み済みデータにおいて画像化されたビーコンを使ってナビゲートを行う。すなわち、光学ナビゲーションシステム100は、光学ナビゲーションとしてビーコンベースのナビゲーションを使用する。したがって、光学ナビゲーションシステム100は、取り込み済み画像フレームのデータを処理し、本明細書においてはビーコンクラスタとも単にクラスタともいう画像化されたビーコン光源に属し、取り込み済みフレームにあるピクセルを特定してラベル付けする。以下でより詳細に説明するように、光学ナビゲーションシステム100は、取り込み済みフレームのピクセルを、メモリ所要量が少なくて済む効率のよいやり方で処理する。
【0010】
図1に示しているように、光学ナビゲーションシステム100は、コントローラユニット102と、ビーコンユニット104と、表示装置106と、コンソールユニット108とを備えている。ある実施形態においては、コンソールユニット108は、従来の有線を使って表示装置106へ接続される。代替として、別の有線接続又は無線接続を用いることもできる。ある実施形態においては、コントローラユニット102及びコンソールユニット108は、ゲームシステムの一部である。代替として、光学ナビゲーションシステム100は、別のタイプのシステムを実現するために用いることができる。例えば、光学ナビゲーションシステム100の実施形態の中には、コンピュータシステムのためのアクセス可能なユーザインターフェースを提供するために使用されるものもある。
【0011】
コントローラユニット102は、ビーコンユニット104に対するコントローラユニットの相対的位置を計算する。コントローラユニット102は、ビーコンユニット104を基準として位置計算を行う。ビーコンユニット104は、複数のビーコン光源110を備えている。ビーコン光源は、コントローラユニットの相対的位置を計算するための基準点としてコントローラユニット102により使用される。一実施形態では、ビーコンユニット104のビーコン光源110は、赤外線(IR)、発光ダイオード(LED)、又はレーザダイオードなとの可視光源である。図示した実施形態では、ビーコンユニット104は、2つのビーコン光源110を備えている。しかしながら、別の実施形態では、ビーコンユニット104は、3つ以上のビーコン光源を備えることができる。コントローラユニット102は、画像フレームのデータにおけるビーコンユニット104のビーコン光源110を電子的に取り込む。次いで、コントローラユニット102は、取り込み済み画像フレームのデータを処理して、取り込まれたフレームにおいて画像化されたビーコン光源を特定してラベル付けする。取り込まれた画像フレームのデータ間における画像化されたビーコン光源位置の変化を用いて、光学ナビゲーションシステム100の座標系におけるコントローラユニット102の相対的位置を示す位置データが出力される。光学ナビゲーションシステム100の座標系は、較正段階において確立することができる。出力位置データは、光学ナビゲーションシステムのX軸、Y軸及びZ軸に沿った、x、y及びzの位置値とすることができる。代替として、出力位置データは、それぞれの軸に沿った変化又は変位を表す、光学ナビゲーションシステム100のX軸、Y軸及びZ軸に沿ったΔx、Δy及びΔzの値とすることもできる。
【0012】
コントローラユニット102の位置データは、コンソールユニット108へ送られる。コンソールユニット108は、特定のアプリケーションで使用される位置データを処理する。一例として、コンソールユニット108は、コントローラユニットから新たな位置データを受信する際に、コントローラユニット102の動きに従って表示装置106上に表示されるグラフィック要素を操作することができる。コンソールユニット108は、ゲームプログラムなどの1つ又は複数のコンピュータプログラムを実行するコンピュータシステムとすることができる。本実施形態では、コンソールユニット108は、パーソナルコンピュータシステムで一般的な構成要素を備えることができる。
【0013】
図2は、本発明の一実施形態によるコントローラユニット102のブロック図である。図示されているコントローラユニット102は、デジタルプロセッサ212と、メモリデバイス214と、電源216と、送受信機218と、画像センサ220と、ナビゲーションエンジン222と、ランダムアクセスメモリ(RAM)224と、光学レンズ226と、光学フィルタ227と、水晶発振器228とを備えている。図示した実施形態では、ナビゲーションエンジン222と、RAM224と、画像センサ220とは、集積回路(IC)230の一部である。しかしながら、別の実施形態では、画像センサ220と、ナビゲーションエンジン222と、RAM224とのうちの少なくとも2つが、別個の構成要素として実装することもできる。IC230は、1つ又は複数の信号線232を介してデジタルプロセッサ212へ接続されており、これらの信号線は、アドレス、データ及び/又は制御の信号線を含むことができる。コントローラユニット102は、特定の構成要素を含むものとして示されているが、コントローラユニットは、別の構成要素を備えることもできる。例えば、コントローラユニット102の実施形態には、入力ボタン、ジョイスティック又はゲームコントローラに通常使用される別のセレクタを含むものもある。コントローラユニット102の別の実施形態には、ユーザへの触覚又は聴覚フィードバック信号を生成するフィードバック信号発生器が含まれる。
【0014】
ある実施形態においては、デジタルプロセッサ212は、マイクロプロセッサやマイクロコントローラなどの汎用プロセッサとすることもできる。別の実施形態では、デジタルプロセッサ212は、デジタル信号プロセッサなどの専用プロセッサとすることもできる。別の実施形態では、デジタルプロセッサ212は、別のタイプのコントローラ又はフィールドプログラマブルゲートアレイ(FPGA)とすることもできる。一般に、デジタルプロセッサ212は、コントローラユニット102の動作及び機能を実装する。
【0015】
メモリデバイス214は、コントローラユニット102の動作において使用するためのデータ及び/又は命令を保存する。ある実施形態においては、メモリデバイス214は、デジタルプロセッサ212に特定の動作を実行させる命令を保存する。同様に、ある命令を、デジタルプロセッサ212に統合されたメモリに保存することもできる。加えて、メモリデバイス214は、デジタルプロセッサ212及び/又はナビゲーションエンジン222によって作成される位置データを保存することもできる。
【0016】
一実施形態では、電源216は、デジタルプロセッサ212と、コントローラユニット102の他の構成要素とに対して、直流(DC)電気信号Vccを提供する。電源216の実施形態の中には、1つ又は複数の電池を含む。ある実施形態においては、電源216が、有線を介してコンソールユニット108から電力を受け取る。同様に、水晶発振器228は、コントローラユニット102の構成要素の1つ又は複数に対してクロック信号CLKを提供する。
【0017】
送受信機218は、デジタルプロセッサ212へ接続されており、コントローラユニット102からコンソールユニット108へ位置データ信号などの信号を送信する。また、送受信機218は、コンソールユニット108から制御信号、すなわちフィードバック信号を受信することもできる。それに加えて、送受信機は、有線通信又は無線通信を助けることもできる。例えば、送受信機218は、有線による接続を介してコンソールユニット108へ電気信号を送ることができる。代替として、送受信機218は、公知の無線データ伝送プロトコルを使って、無線周波数(RF)信号などの無線信号を送ることもできる。
【0018】
画像センサ220も、デジタルプロセッサ212へ接続されており、画像フレームのデータを取り込む。画像センサ220は、相補型金属酸化膜半導体(CMOS)画像センサアレイや電荷結合素子(CCD)画像センサアレイなどの電子画像化センサアレイを含む。例えば、画像センサは、比較的低い解像度の画像フレームのデータを取り込む30×30ピクセルアレイを含むことができる。しかしながら、画像センサ220の別の実施形態は、画像フレームのより高い解像度のデータのためのより大きいサイズのピクセルアレイを含むことができる。図示した実施形態では、画像センサ220は、光学レンズ226及び光学フィルタ227と併用されている。光学レンズ226は、画像の焦点を画像センサ220に合わせるために使用される。光学フィルタ227は、望ましくない光を選択的に除去し、ビーコンユニット104のビーコン光源110からの光を選択的に送って、ビーコン光源110からの光を画像センサ220によって画像化(または結像)するために使用する。例えば、光学フィルタ227は、IR(赤外)又はカラーフィルタとすることができる。しかしながら、別の実施形態では、光学レンズ226及び/又は光学フィルタ227を省略するか、又は複数の光学レンズ及び/又は光学フィルタを実装することができる。
【0019】
図示した実施形態では、ナビゲーションエンジン222は、IC230上で画像センサ220及びRAM224と一体化されている。別の実施形態では、ナビゲーションエンジン222は、一部又は全部が、デジタルプロセッサ212と一体化することもできる。一般にナビゲーションエンジン222は、画像センサ220によって取り込まれた画像フレームのデータを処理して、コントローラユニット102に関する現在の位置データを計算し出力する。この処理の間、ナビゲーションエンジン222は、取り込み済み画像フレームのデータにある特徴クラスタ、例えば、取り込まれたフレーム内にある画像化されたビーコン光源のクラスタなどを特定することとラベル付けすることを含む動作を行う。以下でより詳細に説明するように、この動作は、必要なRAMサイズを低減した効率的なやり方でのRAM224の使用を伴う。取り込まれたフレーム内の特徴クラスタが特定されてラベル付けされた後、これらのクラスタを使って位置データが計算される。
【0020】
特徴クラスタの特定とラベル付けに関するナビゲーションエンジン222の動作について、一例として、画像センサ220に含めることのできる図3の10×10センサ配列334と、図4のプロセスフロー図とを参照して説明する。図3では、センサ配列334は、各ピクセル内に取り込まれたデータを含む。一実施形態では、センサ配列334のピクセル内の各データは、そのピクセルに取り込まれた輝度又は強度の値である。したがって、この例では、取り込まれた画像フレームのデータは10×10ピクセルの画像フレームである。図3に示しているように、取り込まれたフレームは、画像化されたビーコン光源を表すことができる3つの特徴クラスタ336、338及び340を含んでいる。一実施形態では、画像フレームのデータにおけるピクセルは、そのピクセルが所定の閾値より大きい輝度値を有する場合には、ある特徴クラスタに属するものとみなされる。以下でより詳細に説明するように、2つ以上の特徴クラスタがあるものと仮定すると、ナビゲーションエンジン222は、まず、ピクセルを、ある特徴クラスタに属するものとして特定し、次いで、そのピクセルを、適切な特徴クラスタにラベル付けする。加えて、ナビゲーションエンジン222は、画像の各ピクセルが処理される際に、各特徴クラスタのパラメータ計算も行う。
【0021】
図4に示しているように、ナビゲーションエンジン222の動作は、ブロック402から開始し、センサ配列334の次のピクセルのデータを読み取る。ピクセルデータが読み取られるピクセルは、ナビゲーションエンジン222によって処理されているセンサ配列334のカレントピクセルである。ピクセルデータは、少なくとも、カレントピクセルの輝度値を含む。ピクセルデータは、センサ配列334の最も上の行から始まって最も下の行まで、左から右へと読み取られる。したがって、読み取られるべき最初のピクセルデータは、図3に示したピクセル(x1,y1)のデータである。
【0022】
次に、ブロック404で、カレントピクセルのピクセル輝度値が閾値より大きいかどうかが決定される。閾値より大きい輝度値を有するピクセルは、「クラスタピクセル」又は1つ又は複数の特徴クラスタに属するピクセルであるとみなされる。ピクセル輝度値が閾値以下である場合、ブロック420に進む。ピクセル輝度値が閾値より大きい場合、ブロック406に進む。
【0023】
ブロック406において、カレントピクセルが既存の特徴クラスタに連結しているかどうかが決定される。この決定は、カレントピクセルの周りの近傍ピクセルと関連付けられたラベル情報を調べることによって行われる。カレントピクセルの周りの近傍ピクセルとは、カレントピクセルのすぐ隣にあるピクセルである。ある実施形態においては、カレントピクセルが既存の特徴クラスタに連結しているかどうかを決定するために、カレントピクセルの選択された近傍ピクセルだけが調べられる。一実施形態では、カレントピクセルの上にある近傍ピクセルと、カレントピクセルの右隣にある近傍ピクセルだけを調べる。これは図5に示されており、図5には、カレントピクセルと近傍ピクセル[1]、[2]、[3]及び[4]が示されている。本実施形態では、カレントピクセルが既存の特徴クラスタに連結しているかどうかを決定するために、左隣の近傍ピクセル[1]と、左上の近傍ピクセル[2]と、真上の近傍ピクセル[3]と、右上の近傍ピクセル[4]とのみを調べる。したがって、ナビゲーションエンジン222は、カレントピクセルの近傍ピクセル[1]、[2]、[3]及び[4]に関するクラスタ情報を保存する必要がある。したがって、処理されるピクセルごとに、そのピクセルに関して同様に位置する近傍ピクセルのクラスタ情報が保存されて、アクセスできるようにする必要がある。
【0024】
図4に戻って、ブロック406で、カレントピクセルが既存の特徴クラスタに連結していないと決定された場合、ブロック408に進み、カレントピクセルが、新たな特徴クラスタに属するものとしてラベル付けされる。次いで、ブロック418に進む。しかしながら、ブロック406で、カレントピクセルが既存の特徴クラスタに連結していると決定された場合、ブロック410に進み、カレントピクセルが2つ以上の特徴クラスタに連結しているかどうかが決定される。すなわち、近傍ピクセルの2つ以上が異なる特徴クラスタに属しているかどうかが決定される。カレントピクセルが2つ以上の特徴クラスタに連結している場合、ブロック412において近傍ピクセルの異なる特徴クラスタ、及び以前に処理されて選択された他のピクセルが、同じ特徴クラスタとして再度ラベル付けされる。すなわち、別々の特徴クラスタに属するものとしてラベル付けされている近傍ピクセル及び以前に選択されて処理された他のピクセルが、同じ特徴クラスタに属するものとして再度ラベル付けされる。一実施形態では、適切な場合には、カレントピクセルの上にある近傍ピクセルと、カレントピクセルの左隣にある近傍ピクセルと、右上の近傍ピクセルの右側にある2つの近接するピクセルだけが再度ラベル付けされる。これは図5に示されており、図5には、カレントピクセルと、近傍ピクセル[1]、[2]、[3]及び[4]と、近接するピクセル[5]及び[6]が示されている。一実施形態では、別々の特徴クラスタが、近傍ピクセルをラベル付けするために使用される最初の既存の特徴クラスタとして再度ラベル付けされる。次いでブロック414に進む。
【0025】
ブロック414において、カレントピクセルが、同じ既存の特徴クラスタに属するものとしてラベル付けされる。カレントピクセルが1つの既存の特徴クラスタだけに連結している場合、カレントピクセルは、その既存の特徴クラスタに属するものとしてラベル付けされる。カレントピクセルが、2つ以上の既存の特徴クラスタに連結している場合、カレントピクセルは、再度ラベル付けされた特徴クラスタに属するものとしてラベル付けされる。
【0026】
次に、ブロック416で、カレントピクセルの既存の特徴クラスタが1つにまとめられる(collapse)。次に、ブロック418で、カレントピクセルの特徴クラスタのパラメータ計算が行われる。一実施形態では、パラメータ計算は、total_x値と、total_y値と、pixel_count値と、boundary_x1値と、boundary_y1値と、boundary_x2値と、boundary_y2値とを含む。total_x値は、特徴クラスタに属するピクセルのx座標値の和である。total_y値は、特徴クラスタに属するピクセルのy座標値の和である。pixel_count値は、特徴クラスタに属するピクセルの数である。boundary_x1値と、boundary_y1値と、boundary_x2値と、boundary_y2値とは、特徴クラスタの矩形境界値であり、これは、特徴クラスタに属するピクセルの最小のx座標値とy座標値、すなわちboundary_x1値とboundary_y1値、ならびに最大のx座標値とy座標値、すなわちboundary_x2値とboundary_y2値を含む。
【0027】
次に、ブロック420で、カレントピクセルがセンサ配列334内の最後のピクセルであるかどうかが決定される。カレントピクセルが最後のピクセルでない場合、動作はブロック402に戻り、次のピクセルが、処理対象のセンサ配列から読み取られる。カレントピクセルが最後のピクセルである場合、動作はブロック422に進み、ナビゲーションを行うためにすべての特徴クラスタがレポートされる。
【0028】
ナビゲーションエンジンの動作中、RAM224は、カレントピクセルと、以前処理されたピクセルの一部のクラスタラベル情報を保存するために使用される。本明細書において、クラスタラベル情報とは、ピクセルを1つ又は複数の特徴クラスタに関連付ける任意の情報を含む。RAM24の使用を、一例として、図3の10×10センサ配列334に関して説明する。RAM224は、センサ配列334の選択されるピクセルのクラスタラベル情報をラベル配列に保存するために使用される。一実施形態では、ラベル配列の深さ(depth)は、センサ配列の幅(width)に3を加えたものに等しい。したがって、図3の10×10センサ配列334では、ラベル配列の深さは、10+3、すなわち13である。しかしながら、別の実施形態では、ラベル配列の深さは、より小さくすることも、大きくすることもできる。図6Aには、センサ配列334のピクセルが処理される際の、RAM224に保存されているラベル配列の内容が示されている。図示した実施形態では、ラベル配列は、ラベル配列要素[1]〜[13]を含む。図6Aでは、「n」は「新たなラベル番号」を意味し、「r」は「1つにまとめられたラベル番号に再度ラベル付けすること」を意味し、「c」は「ラベル番号を結合(combine)すること」を意味し、「f」は「以前のラベル番号に従うこと」を意味する。図6Bには、センサ配列のピクセルが処理される際に、センサ配列334において見られる異なる特徴クラスタのパラメータ計算が示されている。パラメータ計算は、RAM224に保存することもでき、メモリデバイス214などの別のデバイスに保存することもできる。図6Aと図6Bには、例示のためにセンサ配列334の最初の2行のピクセルの結果だけが示されている。センサ配列334の残りのピクセルも、同様に処理される。
【0029】
まず、図6Aと図6Bの「y1x1」の列に示されているように、ラベル配列がすべて0を含むように設定され、パラメータ計算もゼロに設定される。図3に示されているように、特徴クラスタ又は「クラスタピクセル」に属するピクセルとして特定されているセンサ配列334の最初の2行のピクセルは、座標(x3,y1)、(x5,y1)、(x6,y1)、(x7,y1)、(x10,y1)、(x3,y2)、(x4,y2)、(x5,y2)、(x6,y2)、(x9,y2)及び(x10,y2)の各ピクセルである。図6Aに示されているように、各ピクセルが処理された後、ラベル配列の内容がラベル配列要素1つ分シフトされ、ラベル配列要素[13]に移動されるラベル配列要素[1]の内容を除いて、ラベル配列要素[N]の内容がラベル配列要素[N−1]に移動される。
【0030】
図6Aに示されているように、カレントピクセル又はターゲットピクセル(x3,y1)が処理されているとき、ピクセル(x3,y1)は、既存のどの特徴クラスタにも連結していないため、新たな特徴クラスタに属するものとしてラベル付けされる。その結果、ラベル配列要素[1]は、列「y1x4」に示しているように、ターゲットピクセル(x3,y1)が特徴クラスタ[1]に属することを表す新たなラベル番号「1」に設定される。ピクセル(x5,y1)とピクセル(x10,y1)も同様に処理される。ターゲットピクセル(x6,y1)が処理されているとき、ピクセル(x6,y1)は、同じ以前の特徴クラスタだけに連結しているため、その特徴クラスタに属するものとしてラベル付けされる。その結果、ラベル配列要素[1]は、列「y1x6」に示しているように、ターゲットピクセル(x6,y1)が特徴クラスタ[2]に属することを示す同じラベル番号「2」に設定される。ピクセル(x7,y1)、(x3,y2)、(x5,y2)、(x6,y2)、(x9,y2)及び(x10,y2)も同様に処理される。ターゲットピクセル(x4,y2)が処理されているとき、ピクセル(x4,y2)は、2つ以上の既存の特徴クラスタに連結しているため、結合ラベル(combined label)に属するものとしてラベル付けされる。その結果、ラベル配列要素[1]は、列「y2x5」に示しているように、ターゲットピクセル(x4,y2)が特徴クラスタ[1]に属することを示す結合ラベル番号「1」に設定される。加えて、ラベル配列要素[3]、[4]及び[5]は、列「y2x5」に示しているように、クラスタピクセル(x5,y1)、(x6,y1)及び(x7,y1)が、今や、特徴クラスタ[1]に属していることを表す結合ラベル番号「1」に再度ラベル付けされる。センサ配列の残りのクラスタピクセルも、同様に処理される。
【0031】
クラスタピクセルが処理されているときには、図6Bに示しているように、ターゲットピクセルに対してラベル付けされている特徴クラスタ内のターゲットピクセルを含めるためにパラメータ計算も更新される。一例として、ターゲットピクセル(x3,y1)が処理されているとき、特徴クラスタ[1]のパラメータ計算は、その時点でクラスタピクセル(x3,y1)だけを含む特徴クラスタ[1]に属するすべてのクラスタピクセルの情報を使って更新される。別の例として、ターゲットピクセル(x4,y2)が処理されているときには、特徴クラスタ[1]のパラメータ計算は、その時点で、クラスタピクセル(x3,y1)、(x5,y1)、(x6,y1)、(x7,y1)、(x3,y2)及び(x4,y2)を含む特徴クラスタ[1]に属することになるすべてのクラスタピクセルの情報を使って更新される。したがって、クラスタピクセルが再度ラベル付けされる際には、再度ラベル付けされるクラスタピクセルを含めて特定の特徴クラスタ内のすべてのクラスタピクセルを使ってパラメータ計算が行われる。このようにして、特徴クラスタのパラメータ計算は、クラスタピクセルが処理されるときに更新される。
【0032】
本発明の一実施形態に基づいて光学ナビゲーションのための画像フレームのデータにおいてクラスタピクセルを特定してラベル付けする方法を、図7のプロセスフロー図を参照して説明する。ブロック702で、画像フレームのデータにおけるカレントピクセルがクラスタピクセルであるかどうかが決定される。本明細書においてクラスタピクセルとは、画像化されたビーコンクラスタなどの特徴クラスタに属するピクセルのことである。カレントピクセルがクラスタピクセルではない場合には、カレントピクセルの処理は終了する。次に、ブロック704において、カレントピクセルがクラスタピクセルである場合には、カレントピクセルの近傍ピクセルのいずれかが少なくとも1つの既存のクラスタに属するものとしてラベル付けされているかどうかが決定される。次に、ブロック706において、カレントピクセルの近傍ピクセルのいずれもが、少なくとも1つの既存のクラスタに属するものとしてラベル付けされていない場合、カレントピクセルが新たなクラスタに属するものとしてラベル付けされる。あるいはブロック708においてカレントピクセルの近傍ピクセルの少なくとも1つが、少なくとも1つの既存のクラスタに属するものとしてラベル付けされている場合には、カレントピクセルは、少なくとも1つの既存のクラスタの特定のクラスタに属するものとしてラベル付けされる。
【0033】
以上、本発明の具体的な実施形態を説明し、図示しているが、本発明は、説明及び図示した部分の特定の形態又は構成だけに限定されるものではない。本発明の範囲は、添付の特許請求の範囲及びそれと均等なものにより定まる。
【図面の簡単な説明】
【0034】
【図1】本発明の一実施形態に基づく光学ナビゲーションシステムを示す説明図である。
【図2】図1の光学ナビゲーションシステムに含まれるコントローラユニットのブロック図である。
【図3】本発明の一実施形態に基づくコントローラユニットのナビゲーションエンジンの動作を説明する例として、3つの特徴クラスタを有する画像フレームのデータを含む10×10センサ配列を示す図である。
【図4】本発明の一実施形態に基づくナビゲーションエンジンの動作のプロセスフロー図である。
【図5】本発明の一実施形態に基づいて、カレントピクセルを特徴クラスタに属するものとしてラベル付けするために調べられ、及び/又は処理されるカレントピクセルの近傍ピクセルを示す説明図である。
【図6A】本発明の一実施形態に基づいて図3の画像フレームのデータにおけるピクセルが処理される際のラベル配列の内容を示す説明図である。
【図6B】本発明の一実施形態に基づいて図3の画像フレームのデータにおけるピクセルが処理される際の異なるクラスタのパラメータ計算を示す説明図である。
【図7】本発明の一実施形態に基づいて、光学ナビゲーションのための画像フレームのデータにおいてクラスタピクセルを特定してラベル付けする方法のプロセスフロー図である。

【特許請求の範囲】
【請求項1】
ある画像フレームのデータにおけるカレントピクセルがクラスタピクセルであるかどうかを決定するステップと、
前記カレントピクセルの近傍ピクセルのいずれかが、少なくとも1つの既存のクラスタに属するものとしてラベル付けがされているかどうかを決定するステップと、
前記カレントピクセルの近傍ピクセルのいずれもが、前記少なくとも1つの既存のクラスタに属するものとしてラベル付けがされていない場合には、新たなクラスタに属するものとして前記カレントピクセルにラベル付けするステップと、
前記カレントピクセルの近傍ピクセルの少なくとも1つが、前記少なくとも1つの既存のクラスタに属するものとしてラベル付けされている場合には、前記少なくとも1つの既存のクラスタのうちの特定のクラスタに属するものとして前記カレントピクセルにラベル付けするステップと
を含む、光学ナビゲーションのために、画像フレームのデータにおいてクラスタピクセルを特定してラベル付けする方法。
【請求項2】
前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けする前記ステップは、
前記カレントピクセルの近傍ピクセルの少なくとも1つが、前記特定のクラスタだけに属するものとしてラベル付けされている場合には、前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けするステップを含むものである、請求項1に記載の方法。
【請求項3】
前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けする前記ステップは、
前記カレントピクセルの近傍ピクセルの少なくとも1つが、複数の既存のクラスタに属するものとしてラベル付けされている場合には、前記近傍ピクセルの少なくとも1つにラベル付けするために用いられている前記複数の既存のクラスタのうちの最初のクラスタである前記特定のクラスタに属するものとして、前記カレントピクセルにラベル付けするステップを含むものである、請求項1に記載の方法。
【請求項4】
前記カレントピクセルの近傍ピクセルのいずれかが、少なくとも1つの既存のクラスタに属するものとしてラベル付けがされているかどうかを決定する前記ステップは、
前記カレントピクセルの近傍ピクセルのうちの選択されるピクセルのいずれかが、前記少なくとも1つの既存のクラスタに属するものとしてラベル付けされているかどうかのみを決定するステップであって、ここで、前記選択されるピクセルとは、左上の近傍ピクセルと、真上の近傍ピクセルと、右上の近傍ピクセルと、左隣の近傍ピクセルとを含むものである、ステップを含むものである、請求項1に記載の方法。
【請求項5】
前記新たなクラスタに属するものとして前記カレントピクセルにラベル付けする前記ステップ、又は前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けする前記ステップは、
前記カレントピクセルのクラスタラベル情報をあるラベル配列に保存するステップを含むものである、請求項1に記載の方法。
【請求項6】
前記ラベル配列がN個のラベル配列要素を含むものであり、
前記Nが前記画像データの前記フレームの幅以上である、請求項5に記載の方法。
【請求項7】
前記Nが、前記画像データの前記フレームの幅に3を加えたものに等しいものである、請求項6に記載の方法。
【請求項8】
前記カレントピクセルが属するものとしてラベル付けされている前記新たなクラスタ及び前記特定のクラスタのうちのいずれかについてのパラメータ計算を実行するステップをさらに含む請求項1に記載の方法。
【請求項9】
前記パラメータ計算は、前記カレントピクセルが属するものとしてラベル付けされている前記新たなクラスタ又は前記特定のクラスタについてのピクセル数に関する情報及び境界情報のうちの少なくともいずれかを含むものである、請求項8に記載の方法。
【請求項10】
前記画像フレームのデータにおける前記カレントピクセルがクラスタピクセルであるかどうかを決定する前記ステップは、
前記カレントピクセルの輝度値をある閾値と比較するステップを含むものである、請求項1に記載の方法。
【請求項11】
ある画像フレームのデータを取り込む画像センサと、
前記画像センサへ接続され、前記画像フレームのデータにおいてクラスタピクセルを特定してラベル付けするナビゲーションエンジンであって、前記画像フレームのデータにおけるカレントピクセルがクラスタピクセルであるかどうかを決定し、前記カレントピクセルの近傍ピクセルのいずれかが、少なくとも1つの既存のクラスタに属するものとしてラベル付けがされているかどうかを決定し、前記カレントピクセルの近傍ピクセルのいずれもが、前記少なくとも1つの既存のクラスタに属するものとしてラベル付けされていない場合には、新たなクラスタに属するものとして前記カレントピクセルにラベル付けし、前記カレントピクセルの近傍ピクセルの少なくとも1つが、前記少なくとも1つの既存のクラスタに属するものとしてラベル付けされている場合には、前記少なくとも1つの既存のクラスタのうちの特定のクラスタに属するものとして前記カレントピクセルにラベル付けするナビゲーションエンジンと
を備える光学ナビゲーションのためのシステム。
【請求項12】
前記ナビゲーションエンジンは、前記カレントピクセルの近傍ピクセルの少なくとも1つが、前記特定のクラスタだけに属するものとしてラベル付けされている場合には、前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けするものである、請求項11に記載のシステム。
【請求項13】
前記ナビゲーションエンジンは、前記カレントピクセルの近傍ピクセルの少なくとも1つが、複数の既存のクラスタに属するものとしてラベル付けされていて、ここで、前記特定のクラスタが、前記近傍ピクセルの少なくとも1つにラベル付けするために用いられている前記複数の既存のクラスタのうちの最初のクラスタである場合には、前記特定のクラスタに属するものとして前記カレントピクセルにラベル付けするものである、請求項11に記載のシステム。
【請求項14】
前記ナビゲーションエンジンは、前記カレントピクセルの近傍ピクセルのうちの選択されるピクセルのいずれかが、前記少なくとも1つの既存のクラスタに属するものとしてラベル付けされているかどうかのみを決定するものであり、ここで、前記選択されるピクセルとは、左上の近傍ピクセルと、真上の近傍ピクセルと、右上の近傍ピクセルと、左隣の近傍ピクセルとを含むものである、請求項11に記載のシステム。
【請求項15】
前記ナビゲーションエンジンは、前記カレントピクセルのクラスタラベル情報をあるラベル配列に保存するものである、請求項11に記載のシステム。
【請求項16】
前記ナビゲーションエンジンへ接続されるランダムアクセスメモリであって、前記ラベル配列を保存するために使用されるランダムアクセスメモリをさらに備える請求項15に記載のシステム。
【請求項17】
前記ラベル配列がN個のラベル配列要素を含むものであり、
前記Nが前記画像データの前記フレームの幅以上である、請求項15に記載のシステム。
【請求項18】
前記Nが、前記画像データの前記フレームの幅に3を加えたものに等しいものである、請求項17に記載のシステム。
【請求項19】
前記ナビゲーションエンジンは、前記カレントピクセルが属するものとしてラベル付けされている前記新たなクラスタ及び前記特定のクラスタのうちのいずれかについてのパラメータ計算を行うものである、請求項11に記載のシステム。
【請求項20】
前記パラメータ計算は、前記カレントピクセルが属するものとしてラベル付けされている前記新たなクラスタ又は前記特定のクラスタについてのピクセル数に関する情報及び境界情報のうちの少なくともいずれかを含むものである、請求項11に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図7】
image rotate


【公開番号】特開2009−20860(P2009−20860A)
【公開日】平成21年1月29日(2009.1.29)
【国際特許分類】
【外国語出願】
【出願番号】特願2008−57735(P2008−57735)
【出願日】平成20年3月7日(2008.3.7)
【出願人】(506200186)アバゴ・テクノロジーズ・イーシービーユー・アイピー(シンガポール)プライベート・リミテッド (154)
【Fターム(参考)】