(57)【要約】      （修正有）【課題】高速に領域分割を行うことのできるクラスタリング処理方法を提供する。【解決手段】処理対象であるサンプルの特徴量を第１の階層に属する所定の閾値を超えない数のクラスタそれぞれの代表特徴量と比較した結果に基づいて、第１の階層に属するクラスタに帰属させるサンプル帰属工程と、第Ｍ−１の階層に属するクラスタを、第Ｍの階層に帰属させるか否かを判定する判定工程と、前記判定工程で前記第Ｍ−１の階層に属するクラスタを前記第Ｍの階層に帰属させると判定した場合、前記第Ｍ−１の階層に属するクラスタを、前記第Ｍの階層に帰属させるクラスタ帰属工程とを有し、前記サンプルを順番に処理対象として、全ての前記サンプルが最も上位の階層である第Ｋの階層に属するクラスタのいずれかに帰属するまで、前記サンプル帰属工程と前記判定工程と前記クラスタ帰属工程とを繰り返し実行する。【選択図】図１
2011034410.tif 000002
【特許請求の範囲】
【請求項１】
サンプル群をサンプルそれぞれの特徴量に基づいて複数のクラスタに分割するクラスタリング処理方法であって、
前記複数のクラスタはそれぞれ、Ｍ層（Ｍ＝２，…，Ｋ）からなる複数の階層のいずれかに属し、
前記クラスタリング処理方法は、
処理対象である前記サンプルの特徴量を第１の階層に属する所定の閾値を超えない数のクラスタそれぞれの代表特徴量と比較した結果に基づいて、当該処理対象であるサンプルを前記第１の階層に属するクラスタに帰属させるサンプル帰属工程と、
第Ｍ−１の階層に属するクラスタを、第Ｍの階層に帰属させるか否かを判定する判定工程と、
前記判定工程で前記第Ｍ−１の階層に属するクラスタを前記第Ｍの階層に帰属させると判定した場合、前記第Ｍ−１の階層に属するクラスタを、前記第Ｍの階層に帰属させるクラスタ帰属工程と
を有し、
前記サンプルを順番に処理対象として、全ての前記サンプルが最も上位の階層である第Ｋの階層に属するクラスタのいずれかに帰属するまで、前記サンプル帰属工程と前記判定工程と前記クラスタ帰属工程とを繰り返し実行することを特徴とするクラスタリング処理方法。
【請求項２】
前記サンプル帰属工程は、
当該処理対象のサンプルの特徴量との距離が最も近い代表特徴量を有するクラスタを、前記第１の階層に属する複数のクラスタの中から探索する第１層クラスタ探索工程と、
前記第１層クラスタ探索工程にて探索したクラスタと前記処理対象のサンプルとの前記距離が第１の距離の閾値以下の場合は、当該クラスタへ当該サンプルを帰属させ、前記距離が前記第１の距離の閾値より大きい場合は前記第１の階層に新たに定義するクラスタへ当該サンプルを帰属させる第１層クラスタ帰属工程と
を有することを特徴とする請求項１に記載のクラスタリング処理方法。
【請求項３】
前記クラスタ帰属工程は、
前記判定工程で前記第Ｍ−１の階層に属するクラスタを前記第Ｍの階層に帰属させると判定した場合、前記第Ｍ−１の階層に属する処理対象のクラスタの代表特徴量との距離が最も近い代表特徴量を有するクラスタを、前記第Ｍの階層に属する複数のクラスタの中から探索する第Ｍ層クラスタ探索工程と、
前記第Ｍ層クラスタ探索工程にて探索したクラスタと前記処理対象のクラスタとの前記距離が第Ｍの距離の閾値以下の場合は、探索した当該第Ｍの階層に属するクラスタに前記処理対象のクラスタを帰属させ、第Ｍの距離の閾値より大きい場合は第Ｍの階層に新たに定義するクラスタへ前記処理対象のクラスタを帰属させる第Ｍ層クラスタ帰属工程と
を有することを特徴とする請求項１または２に記載のクラスタリング処理方法。
【請求項４】
前記判定工程において、前記第Ｍ−１の階層に属するクラスタが所定のクラスタ数の閾値を超えた場合に、前記第Ｍ−１の階層に属するクラスタを前記第Ｍの階層に帰属させると判定することを特徴とする請求項１乃至３のいずれか一項に記載のクラスタリング処理方法。
【請求項５】
前記判定工程において、所定のサンプルの数に対して前記第１層クラスタ帰属工程を行った際に前記第１の階層に属するクラスタを第２の階層に帰属させると判定することを特徴とする請求項２または３に記載のクラスタリング処理方法。
【請求項６】
前記判定工程は、前記第Ｍ−１の階層に属するクラスタ群に対して上位である前記第Ｍの階層への前記第Ｍ層クラスタ帰属工程を適用した際に、更に、前記第Ｍの階層に属するクラスタを前記第Ｍ＋１の階層に帰属させるか否かを判定することを特徴とする請求項３に記載のクラスタリング処理方法。
【請求項７】
前記判定工程において、前記サンプルが帰属される確率が低い第Ｍ−１の階層に属するクラスタを第Ｍの階層に帰属させると判定することを特徴とする請求項１乃至３のいずれか一項に記載のクラスタリング処理方法。
【請求項８】
前記判定工程において、前記サンプルが帰属するクラスタとして出現頻度が低い第Ｍ−１の階層に属するクラスタを第Ｍの階層に帰属させると判定することを特徴とする請求項１乃至３のいずれか一項に記載のクラスタリング処理方法。
【請求項９】
前記判定工程において、新たに定義されてからの経過時間に基づいて、前記第Ｍ−１の階層に属するクラスタを第Ｍの階層に帰属させると判定することを特徴とする請求項１乃至３のいずれか一項に記載のクラスタリング処理方法。
【請求項１０】
前記第Ｍの階層に属するクラスタに対する前記クラスタ数の閾値は、前記第Ｍ−１の階層に属するクラスタに対する前記クラスタ数の閾値よりも大きいことを特徴とする請求項４乃至９のいずれか一項に記載のクラスタリング処理方法。
【請求項１１】
第Ｍ−１の距離の閾値は、前記第Ｍの距離の閾値よりも小さいことを特徴とする請求項３乃至１０のいずれか一項に記載のクラスタリング処理方法。
【請求項１２】
サンプル群をサンプルそれぞれの特徴量に基づいて複数のクラスタに分割するクラスタリング処理装置であって、
前記複数のクラスタはそれぞれ、Ｍ層（Ｍ＝２，…，Ｋ）からなる複数の階層のいずれかに属し、
前記クラスタリング処理装置は、
処理対象である前記サンプルの特徴量を第１の階層に属する所定の閾値を超えない数のクラスタそれぞれの代表特徴量と比較した結果に基づいて、当該処理対象であるサンプルを前記第１の階層に属するクラスタに帰属させるサンプル帰属手段と、
第Ｍ−１の階層に属するクラスタを、第Ｍの階層に帰属させるか否かを判定する判定手段と、
前記判定手段で前記第Ｍ−１の階層に属するクラスタを前記第Ｍの階層に帰属させると判定した場合、前記第Ｍ−１の階層に属するクラスタを、前記第Ｍの階層に帰属させるクラスタ帰属手段と
を有し、
前記サンプルを順番に処理対象として、全ての前記サンプルが最も上位の階層である第Ｋの階層に属するクラスタのいずれかに帰属するまで、前記サンプル帰属手段と前記判定手段と前記クラスタ帰属手段とによる処理を繰り返し実行することを特徴とするクラスタリング処理装置。
【請求項１３】
コンピュータを、
処理対象であるサンプルの特徴量を、Ｍ層（Ｍ＝２，…，Ｋ）からなる複数の階層のいずれかに属するクラスタのうち、第１の階層に属する所定の閾値を超えない数のクラスタそれぞれの代表特徴量と比較した結果に基づいて、当該処理対象であるサンプルを前記第１の階層に属するクラスタに帰属させるサンプル帰属手段、
第Ｍ−１の階層に属するクラスタを、第Ｍの階層に帰属させるか否かを判定する判定手段、
前記判定手段で前記第Ｍ−１の階層に属するクラスタを前記第Ｍの階層に帰属させると判定した場合、前記第Ｍ−１の階層に属するクラスタを、前記第Ｍの階層に帰属させるクラスタ帰属手段、
として機能させ、
前記サンプルを順番に処理対象として、全ての前記サンプルが最も上位の階層である第Ｋの階層に属するクラスタのいずれかに帰属するまで、前記サンプル帰属手段と前記判定手段と前記クラスタ帰属手段とによる処理を繰り返し実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サンプル群を分割するためのクラスタリング処理方法、クラスタリング処理装置、およびプログラムに関する。
【背景技術】
【０００２】
文書の電子化は、単に紙上の文書をスキャナ等によって読み取って画像データを得るにとどまらない。例えば、文書を構成する文字、図、写真、表等の性質の異なる領域に画像データを分離する。そして、文字領域は文字コード、図領域はベクトルデータ、背景領域や写真領域はビットマップデータ、表領域は構造データなど、目的に応じて各々最も適した形式にデータ化する処理が、文書の電子化処理で行われる。
【０００３】
ベクトルデータへの変換手法として、例えば特許文献１では、クラスタリング処理により領域分割を行い、各領域の輪郭を抽出し、抽出された輪郭をベクトルデータへ変換する。また、特許文献２では、画像を背景と前景に分離し、前景をベクトルデータに変換し、背景を背景専用の方法でデータ圧縮する画像処理方法が開示されている。また、特許文献３では、スキャナで読み取られた原稿に対してクラスタリング処理を行った後に残るノイズクラスタを除去する方法が開示されている。
【０００４】
ところで、画像をクラスタリング処理により領域分割する方法としてはＮｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒクラスタリング法が知られている。Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒクラスタリング法は、処理対象の画素の特徴ベクトルと各クラスタの代表特徴ベクトルを比較して、特徴空間上で最も距離が近い特徴ベクトルを有するクラスタを探索する。距離が所定の閾値以下であれば該クラスタに処理対象の画素を帰属させる。そうでなければ新たなクラスタを定義して、該クラスタに処理対象の画素を帰属させる。なお、ここで特徴ベクトル（特徴量）の要素としては色情報（Ｒ、Ｇ、Ｂから成る画素値）が使われるのが一般的である。クラスタの代表特徴ベクトルとは、一般的にクラスタの重心が用いられる。即ち、クラスタに帰属する各画素の特徴ベクトル（色情報）の平均値である。
【０００５】
Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒクラスタリング法では、画素毎に全てのクラスタの代表特徴ベクトルとの距離を算出しなければならない。これに対して、計算量を削減するため、例えば特許文献４のカラー画像処理装置が開示されている。従来技術では、処理対象の画素と隣接画素の特徴ベクトル（色情報）に基づいてクラスタリングを行う。次に、クラスタ同士の色情報及び幾何学情報に基づいてクラスタのグルーピングを行う。ここで、幾何学情報とは、実空間上におけるクラスタ間の距離を表す座標情報などである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１５８７２５号公報
【特許文献２】特開２００８−２０６０７３号公報
【特許文献３】特開２００６−３４４０６９号公報
【特許文献４】特開平１１−２８８４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献４の従来技術では処理対象の画素と隣接画素の特徴ベクトルの距離が離れている場合は、クラスタを新たに定義し、注目画素を該クラスタに帰属させるので、大量のクラスタが定義される。その為、グルーピングに要する処理時間が増大するという課題があった。
【０００８】
そこで、本発明は高速に領域分割を行うことのできるクラスタリング処理方法を提供する事を目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のクラスタリング処理方法は、以下の構成を有する。サンプル群をサンプルそれぞれの特徴量に基づいて複数のクラスタに分割するクラスタリング処理方法であって、前記複数のクラスタはそれぞれ、Ｍ層（Ｍ＝２，…，Ｋ）からなる複数の階層のいずれかに属し、前記クラスタリング処理方法は、処理対象である前記サンプルの特徴量を第１の階層に属する所定の閾値を超えない数のクラスタそれぞれの代表特徴量と比較した結果に基づいて、当該処理対象であるサンプルを前記第１の階層に属するクラスタに帰属させるサンプル帰属工程と、第Ｍ−１の階層に属するクラスタを、第Ｍの階層に帰属させるか否かを判定する判定工程と、前記判定工程で前記第Ｍ−１の階層に属するクラスタを前記第Ｍの階層に帰属させると判定した場合、前記第Ｍ−１の階層に属するクラスタを、前記第Ｍの階層に帰属させるクラスタ帰属工程とを有し、前記サンプルを順番に処理対象として、全ての前記サンプルが最も上位の階層である第Ｋの階層に属するクラスタのいずれかに帰属するまで、前記サンプル帰属工程と前記判定工程と前記クラスタ帰属工程とを繰り返し実行することを特徴とする。
【発明の効果】
【００１０】
本発明のクラスタリング処理方法では、クラスタの構造を階層化することにより、距離の計算を削減している。また、帰属確率の高いクラスタを、処理対象であるサンプルが分類され易い階層に配置することにより、従来よりも距離の計算回数を削減できるため、高速な領域分割が可能となる。
【図面の簡単な説明】
【００１１】
【図１】第一の実施形態に係るクラスタリング処理方法のフローチャートを示す図。
【図２】第一の実施形態に係る階層移動処理方法のフローチャートを示す図。
【図３】第二の実施形態に係る階層移動処理方法のフローチャートを示す図。
【図４】第三の実施形態に係るクラスタリング処理方法のフローチャートを示す図。
【図５】第三の実施形態に係る階層移動処理方法のフローチャートを示す図。
【図６】ベクトルデータ変換装置の構成を表すブロック図。
【図７】第一の実施形態に係るクラスタリング処理方法の距離計算回数を示す図。
【図８】第一の実施形態に係るクラスタリング処理方法の距離計算回数を示す図。
【図９】第一の実施形態に係るクラスタリング処理方法の精度を示す図。
【図１０】第一の実施形態に係るクラスタリング処理方法の処理対象画像の例図。
【図１１】第二の実施形態に係るクラスタリング処理方法の距離計算回数を示す例図。
【図１２】第三の実施形態に係るクラスタリング処理方法の距離計算回数を示す例図。
【発明を実施するための形態】
【００１２】
＜第一の実施形態＞
本発明の第一の実施形態に係るクラスタリング処理方法と、それを用いたベクトルデータ変換装置の構成について、図６を参照して説明する。
【００１３】
図６はベクトルデータ変換装置の構成を表すブロック図の例である。図６において、原稿読み取り部６００は、原稿を読み取り、具体的にはスキャナで光学的に読み取られた画像データをＡ／Ｄ変換して出力する。背景判定部６０１は、原稿読み取り部６００から出力された画像データの各画素が前景であるか背景であるかを判定し、画素毎に背景であるか否かを示す背景フラグを生成し入力画像データに付加して出力する。背景を判定する方法については、特許文献２において公知である。また、例えばスキャナから光学的に読み取られた画像データの場合、紙の色を判別し、その色に基づいて背景画素を判定してもよい。
【００１４】
クラスタリング処理部６０２は本実施形態のクラスタリング処理方法を適用して画像データの領域分割を行う。クラスタリング処理部６０２へは、背景判定部６０１から出力された画像データが１画素ずつラスタスキャン順で入力される。クラスタリング処理部６０２は、領域分割（クラスタリング処理）後の画像データ（各クラスタ領域のデータ）を出力する。輪郭抽出部６０３は、クラスタリング処理部６０２によって分割された各領域（各クラスタ）の輪郭を抽出する。ベクトルデータ生成部６０４は、輪郭抽出部６０３によって抽出された輪郭を基にベクトルデータを生成する。ベクトルデータ生成部６０４は、前景画像データのみをベクトルデータへ変換する。背景生成部６０５は、背景判定部６０１から出力された背景フラグに基づいて、画像データのうち背景以外の画素を背景色で塗りつぶして出力する。背景圧縮部６０６は、背景生成部６０５から出力されたデータを圧縮する。背景圧縮部６０６が圧縮に用いる処理方式は例えばＪＰＥＧ符号化方式があるが、本発明はこれに限定されず、その他の圧縮方式を用いても良い。データ結合部６０７は、ベクトルデータ生成部６０４から出力されたベクトルデータ及び背景圧縮部６０６から出力された圧縮データを結合し、結合したデータを出力する。
【００１５】
なお、本実施形態でのクラスタリング処理の対象となるサンプルとは、画像データにおける各画素を指し、サンプル群とは、画素の集合（すなわち、該画像データを構成する画素群）を指す。本実施形態において、画像データにおける画素をサンプルとして説明しているが、クラスタリング処理の一般的な用途を考慮すると、画素に限定するものではなく、サンプルはクラスタリング処理を適用できる対象（任意のデータの集合）に適用できることは言うまでも無い。
【００１６】
＜クラスタリング処理＞
以下、クラスタリング処理部６０２の処理を、図１に示すフローチャートを用いて詳細に説明する。また、本実施形態において、Ｓ１０３からＳ１１２の処理により、サンプル帰属工程を実現する。まず、第Ｍ（Ｍ＝１，２，…，Ｋ−１，Ｋ）の階層に属するクラスタ群のクラスタ数を表す変数ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ］を全て０に初期化する（Ｓ１０１）。Ｋは、クラスタを何階層まで定義するかを示す定数である。なお、本実施形態のクラスタリング処理方法では、クラスタを第２の階層まで定義する（Ｋ＝２）。すなわち、最も上位の階層である第Ｋの階層は、第２階層となる。次に、クラスタリング処理の対象画素（以下、処理対象画素と記す）の特徴ベクトルＰｃを取得する（Ｓ１０２）。本実施形態のクラスタリング処理方法では、ＲＧＢ色空間を特徴空間とする。即ち、画素のＲＧＢ値が、その画素の要素（Ｒ値、Ｇ値、Ｂ値の３次元要素）である特徴ベクトル（特徴量）である。しかし、本発明のクラスタリング処理方法はこれに限定されるものではない。例えば、ＹＵＶ色空間の画素値を特徴ベクトル（特徴量）として用いてもよい。
【００１７】
続いて、Ｓ１０３からＳ１１０の処理によって、第１の階層に属するクラスタを探索し、処理対象画素との距離が最も近いクラスタを取り出す。これにより、第１層クラスタ探索工程を実現する。まず、既に第１の階層に属するクラスタが定義されているか否かを判定する（Ｓ１０３）。すなわち、第１の階層に属するクラスタ数ｎｕｍ＿ｃｌｕｓｔｅｒ［１］が０か否かを判定する。第１の階層に属するクラスタが定義されていないならば（Ｓ１０３でＹＥＳ）、Ｓ１１４の処理へ進む。既にクラスタが定義されていれば（Ｓ１０３でＮＯ）、Ｓ１０４の処理に進む。
【００１８】
Ｓ１０４では、着目する階層内に属する全クラスタをスキャンするためのループインデクスｉと変数ｍｉｎ＿ｄｉｓｔａｎｃｅ［１］の初期化を行う。ｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］の初期値には、特徴空間で取りうる最大の距離よりも大きい値ＭＡＸ＿ＶＡＬＵＥを設定する。ｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］は、処理対象の画素（もしくはクラスタ）の特徴ベクトル（特徴量）と、第Ｍの階層に属する各クラスタの代表特徴ベクトル（代表特徴量）との距離のうち、最も小さい値を表す変数である。次に、第１の階層に属するクラスタＣ１ｉの代表特徴ベクトルＰ１ｉを取得する（Ｓ１０５）。次に、ＰｃとＰ１ｉの距離Ｄ（Ｐｃ，Ｐ１ｉ）を算出する（Ｓ１０６）。本実施形態のクラスタリング処理方法では、距離Ｄ（Ｐｃ，Ｐ１ｉ）としてユークリッド距離を算出するが、本発明のクラスタリング処理方法はこれに限定されるものではなく、例えばマンハッタン距離を算出してもよい。次に、Ｄ（Ｐｃ，Ｐ１ｉ）の値とｍｉｎ＿ｄｉｓｔａｎｃｅ［１］の値を比較する（Ｓ１０７）。
【００１９】
ｍｉｎ＿ｄｉｓｔａｎｃｅ［１］の値よりもＤ（Ｐｃ，Ｐ１ｉ）の値が大きければ（Ｓ１０７でＮＯ）、Ｓ１０９の処理に進む。Ｄ（Ｐｃ，Ｐ１ｉ）の値がｍｉｎ＿ｄｉｓｔａｎｃｅ［１］以下ならば（Ｓ１０７でＹＥＳ）、ｍｉｎ＿ｄｉｓｔａｎｃｅ［１］の値をＤ（Ｐｃ，Ｐ１ｉ）に更新し、ｎｎ＿ｃｌｕｓｔ［１］の値をクラスタ番号ｉに更新する（Ｓ１０８）。ｎｎ＿ｃｌｕｓｔ［Ｍ］は、処理対象の画素（もしくはクラスタ）の特徴ベクトルとの距離が最も近い特徴ベクトルを持つ第Ｍの階層に属するクラスタの番号を表す変数である。次に、ループインデクスｉを更新する（Ｓ１０９）。Ｓ１１０では、全ての、第１の階層に属するクラスタとの比較が終了したかを判定する。比較が終了していなければ（Ｓ１１０でＮＯ）、Ｓ１０５の処理に戻る。全てのクラスタとの比較が終了していれば（Ｓ１１０でＹＥＳ）、Ｓ１１１の処理に進む。
【００２０】
Ｓ１１１では、ｍｉｎ＿ｄｉｓｔａｎｃｅ［１］の値と閾値Ｔ［１］の値を比較する。なお、閾値Ｔ［Ｍ］は、処理対象画素（もしくは処理対象クラスタ）を定義済みの第Ｍの階層に属するいずれかのクラスタに帰属させるか、もしくは第Ｍの階層に属するクラスタを新しく定義し、該クラスタに帰属させるかを判定するための判定基準となる所定の値である。例えば、処理対象画素を第一の階層に帰属させるためには、クラスタとの距離が第１の距離の閾値Ｔ［１］以下である必要がある。同様に第Ｍの階層に帰属させるためには、第Ｍの距離の閾値Ｔ［Ｍ］以下である必要がある。ｍｉｎ＿ｄｉｓｔａｎｃｅ［１］がＴ［１］の閾値以下ならば（Ｓ１１１でＹＥＳ）、処理対象画素を、特徴空間上で最も距離の近い、第１の階層に属するクラスタＣ１ｎｎ＿ｃｌｕｓｔ［１］に帰属させ、代表特徴ベクトルを更新する（Ｓ１１２）。Ｓ１１２により、第１階層クラスタ帰属工程を実現する。このＳ１１２の処理の後、Ｓ１１５の処理へ進む。一方、ｍｉｎ＿ｄｉｓｔａｎｃｅ［１］がＴ［１］よりも大きければ（Ｓ１１１でＮＯ）、Ｓ１１３における第１の階層から第２の階層へのクラスタの階層移動処理に進む。クラスタの階層移動処理については、図２を用いて後述する。次に、処理対象画素の特徴ベクトルを代表特徴ベクトルとするクラスタを、第１の階層に新しく定義し、ｎｕｍ＿ｃｌｕｓｔｅｒ［１］を更新する。更にクラスタの代表特徴ベクトルをＰｃとして定義する（Ｓ１１４）。これにより第１層クラスタ帰属工程を実現する。
【００２１】
Ｓ１１５では、全ての画素に対する処理が終了したかを判定する。終了していれば（Ｓ１１５でＹＥＳ）、Ｓ１１６において階層移動処理を行った後、クラスタリング処理を終了する。そうでない場合は（Ｓ１１５でＮＯ）、Ｓ１０２の処理に戻り、後続する画素を処理対象画素とする。
【００２２】
＜階層移動処理＞
Ｓ１１３およびＳ１１６の階層移動処理について、図２を用いて詳細に説明する。階層移動処理は、下位の層に属するクラスタを上位の層に移動し、上位の層に下位の層のクラスタを帰属させる処理である。クラスタを帰属させる際には、帰属可能なクラスタがすでに上位の層にあれば、そのクラスタに帰属させ、無ければ、新たにクラスタを定義してそのクラスタに帰属させる。なお、本実施形態において、階層移動処理によってクラスタ帰属工程を実現する。
【００２３】
まずＳ２０１において、全ての画素の処理が終わっているか、もしくはｎｕｍ＿ｃｌｕｓｔｅｒ［１］が閾値Ｔｃ［１］以上か否かを判定する。閾値Ｔｃ［１］は、第１の階層に属するクラスタを第２の階層に移動するか否かを判定するための所定の値である。すなわち、閾値Ｔｃ［１］を用いて第１の階層に属するクラスタ数を制限している。なお、本実施形態におけるＴｃ［１］の値は３とするが、本発明のクラスタリング処理方法における値はこれに限定されるものではない。Ｔｃ［１］の値は１や２、または４以上でもよいし、処理の中で必要に応じて変化させてもよい。例えば、ｎｕｍ＿ｃｌｕｓｔｅｒ［２］の値の１／１０や１／２０などの値をＴｃ［１］に設定してもよい。他にも、背景判定部６０１において解析したパターンに応じて設定してもよいし、第１の階層でクラスタが新しく定義される頻度に応じてＴｃ［１］の値を設定してもよい。
【００２４】
ｎｕｍ＿ｃｌｕｓｔｅｒ［１］の値がＴｃ［１］より小さい、かつ全ての画素の処理が終わっていないならば（Ｓ２０１でＮＯ）、第１の階層から第２の階層へのクラスタの階層移動処理を終了する。ｎｕｍ＿ｃｌｕｓｔｅｒ［１］の値がＴｃ［１］以上か、全ての画素の処理が終わっているならば（Ｓ２０１でＹＥＳ）、Ｓ２０２の処理に進む。Ｓ２０２では、第１の階層に属する全てのクラスタをスキャンするためのループインデクスｊを初期化する。次に、Ｓ２０３で第１の階層に属するクラスタＣ１ｊ（以下、処理対象クラスタと記す）を第２の階層に移動するか否かを判定する。本実施形態では、ここでの判定は、全ての画素の処理が終わっているか、もしくは処理対象クラスタが第１の階層に属するクラスタの中で最も定義されてから時間が経過しているクラスタならば第２の階層に移動すると判定する。しかし本発明のクラスタリング処理方法はこの判定基準に限定されるものではなく、クラスタの数や処理の進行状況、もしくは、頻度などに基づいて判定しても良い。例えば、画素が帰属する確率の低いクラスタを移動すればよい。また、帰属するクラスタもしくは画素の出現頻度が低いクラスタを移動すると判定しても良い。また、帰属している画素数の少ないクラスタを他の階層に移動すると判定してもよいし、最後に画素が帰属されてからの経過時間に応じてクラスタを移動してもよい。また、一度の階層移動処理において複数のクラスタや全てのクラスタを移動してもよい。さらには、一定数以上の画素が帰属処理を適用されたらクラスタを移動させても良い。以上の判定条件に基づいて、該当する第１の階層に帰属する１つのクラスタを抽出する。Ｓ２０３でＮＯと判定されたならば、Ｓ２１６の処理に進む。Ｓ２０３でＹＥＳと判定されたならば、処理対象クラスタの代表特徴ベクトルＰ１ｊを取得し、ｎｕｍ＿ｃｌｕｓｔｅｒ［１］の値を更新する（Ｓ２０４）。
【００２５】
続いて、Ｓ２０５からＳ２１２の処理によって、第２の階層に属するクラスタを探索し、処理対象クラスタとの距離が最も近いクラスタを取り出す。これにより、第Ｍ層クラスタ探索工程を実現する。まず、既に第２の階層に属するクラスタが定義されているか否かを判定する（Ｓ２０５）。第２の階層に属するクラスタが定義されていないならば（Ｓ２０５でＹＥＳ）、Ｓ２１５の処理へ進み、第２の階層に属するクラスタを新たに定義する。既にクラスタが定義されていれば（Ｓ２０５でＮＯ）、Ｓ２０６の処理に進む。
【００２６】
Ｓ２０６では、第２の階層に属する全てのクラスタをスキャンするためのループインデクスｋと変数ｍｉｎ＿ｄｉｓｔａｎｃｅ［２］の初期化を行う。ｍｉｎ＿ｄｉｓｔａｎｃｅ［２］の初期値には前述したＭＡＸ＿ＶＡＬＵＥを設定する。次に、第２の階層に属するクラスタＣ２ｋの代表特徴ベクトルＰ２ｋを取得する（Ｓ２０７）。次に、Ｐ１ｊとＰ２ｋの距離Ｄ（Ｐ１ｊ，Ｐ２ｋ）を算出する（Ｓ２０８）。次に、Ｄ（Ｐ１ｊ，Ｐ２ｋ）の値とｍｉｎ＿ｄｉｓｔａｎｃｅ［２］の値を比較する（Ｓ２０９）。
【００２７】
ｍｉｎ＿ｄｉｓｔａｎｃｅ［２］の値よりもＤ（Ｐ１ｊ，Ｐ２ｋ）の値が大きければ（Ｓ２０９でＮＯ）、Ｓ２１１の処理へ進み、ループインデクスｋを更新する。Ｄ（Ｐ１ｊ，Ｐ２ｋ）がｍｉｎ＿ｄｉｓｔａｎｃｅ［２］以下ならば（Ｓ２０９でＹＥＳ）、ｍｉｎ＿ｄｉｓｔａｎｃｅ［２］をＤ（Ｐ１ｊ，Ｐ２ｋ）に、ｎｎ＿ｃｌｕｓｔ［２］をｋに更新（Ｓ２１０）し、Ｓ２１１にてｋを更新する。Ｓ２１２では、処理対象クラスタと、全ての第２の階層に属するクラスタとの比較が終了したかを判定する。比較が終了していなければ（Ｓ２１２でＮＯ）、Ｓ２０７の処理に戻る。全ての第２の階層に属するクラスタとの比較が終了していれば（Ｓ２１２でＹＥＳ）、Ｓ２１３へ進み、ｍｉｎ＿ｄｉｓｔａｎｃｅ［２］の値と閾値Ｔ［２］の値を比較する。ｍｉｎ＿ｄｉｓｔａｎｃｅ［２］がＴ［２］よりも大きければ（Ｓ２１３でＮＯ）、処理対象クラスタの特徴ベクトルを代表特徴ベクトルとするクラスタを、第２の階層に新しく定義し、ｎｕｍ＿ｃｌｕｓｔｅｒ［２］を更新する（Ｓ２１５）。ｍｉｎ＿ｄｉｓｔａｎｃｅ［２］がＴ［２］以下ならば（Ｓ２１３でＹＥＳ）、特徴空間上で最も距離の近い、第２の階層に属するクラスタＣ２ｎｎ＿ｃｌｕｓｔ［２］に処理対象クラスタを帰属させ、代表特徴ベクトルを更新する（Ｓ２１４）。Ｓ２１４により第Ｍ層クラスタ帰属工程を実現する。次にＳ２１６へ進み、第１階層に属する全てのクラスタに対する処理が終了したかを判定する。終了していれば（Ｓ２１６でＹＥＳ）、階層移動処理を終了する。そうでない場合は（Ｓ２１６でＮＯ）、ループインデクスｊを更新し（Ｓ２１７）、Ｓ２０３の処理に戻り後続するクラスタを処理対象クラスタとする。これにより、第１階層に属する全てのクラスタに対し、順番に処理を適用する。
【００２８】
＜クラスタリング処理の結果＞
図７（ａ）に示す画像を用いて本実施形態のクラスタリング処理方法の効果を説明する。図７（ａ）の画像は、縦１７画素、横１２画素、計１７×１２の２０４画素で構成される。図７（ｂ）は、図７（ａ）の画像をクラスタリングした後の、各クラスタの情報を示したものである。図７（ｃ）は従来のＮｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒクラスタリング法を適用した際の、画素毎の距離計算回数を示したものである。従来の方法では、処理対象画素の特徴ベクトルと、全ての定義済みクラスタの代表特徴ベクトルとの距離を比較する必要があるので、距離計算回数は、図７（ｃ）より８０９回になる。
【００２９】
図７（ｄ）は、図７（ａ）の画像に本実施形態のクラスタリング処理方法を適用した際の画素毎の距離計算回数を示すものである。今回の例では、条件を、クラスタを第２の階層まで定義し（Ｋ＝２）、第１の階層に属するクラスタ数の上限を３に設定した（Ｔｃ［１］＝３）。また、クラスタの階層移動処理の際に、定義されてから最も時間の経過しているクラスタを１つだけ移動する、としている。従来方法は、１画素毎の距離計算回数がクラスタ数に応じて増えている。一方今回の例では、第１の階層に属するクラスタ数の上限を３と限定しているため、階層移動処理が発生しない限り、１画素あたり３回以内の距離計算で帰属するクラスタが決まる。図７（ｄ）を参照すると、１画素あたり３回の距離計算が行われる画素が多いのはそのためである。１画素あたりの距離計算回数が４回以上の画素は、クラスタの階層移動処理が行われた画素である。また、一番右下の画素の距離計算回数が１２回と多くなっているのは、最後に第１の階層に属する全てのクラスタを第２の階層に移動しているためであり、距離計算回数は合計で、図７（ｄ）より５７９回になる。また、図８（ａ）は、Ｋ＝２、Ｔｃ［１］＝１と設定し、図７（ａ）の画像に本実施形態のクラスタリング処理方法を適用した際の画素毎の距離計算回数を示したものである。図８（ａ）より、合計の距離計算回数は４４０回となる。
【００３０】
また、Ｋ＝２、Ｔｃ［１］＝３、クラスタの階層移動処理の際に全ての第１の階層に属するクラスタを第２の階層に移動すると設定して図７（ａ）の画像に本実施形態のクラスタリング処理方法を適用する。その際の画素毎の距離計算回数を図８（ｂ）に示す。途中で一度、第１の階層に属するクラスタを全て（３クラスタ）を第２の階層に移動しているため、１０回の距離計算が行われている画素がある。該画素に後続する画素は、第１の階層に属するクラスタ数が１クラスタの状態で処理が行われる。図８（ｂ）より、合計の距離計算回数は５６７回となり、いずれの場合も従来手法に比べて距離計算回数を削減できたことがわかる。
【００３１】
また、本実施形態のクラスタリング処理方法においては、条件として第１の階層と第２の階層で、閾値Ｔ［１］と閾値Ｔ［２］の、値の異なる二つの閾値を用いている。Ｔ［１］をＴ［２］よりも小さく設定する事で、精度の高い高速なクラスタリングを可能にしている。
【００３２】
その具体例を、図９を用いて説明する。上述した特徴ベクトルはＲＧＢ値の三次元の例であったが、説明を簡単にするため、図９（ａ）では、画像の特徴ベクトルを一次元とし、５×３の各画素の数値は画素毎の特徴ベクトルの値を示している。また、クラスタの階層数は２（Ｋ＝２）、第１の階層に属するクラスタ数の上限値は１（Ｔｃ［１］＝１）として処理を行うとする。図９（ｂ）は、最上列における左端の画素から画素９０１までの５画素分のクラスタリング処理が終了した状態を示している。まず、特徴ベクトル１０の３画素からなるクラスタ９０２が第１の階層に定義される。４画素目の画素９０３が入力されると、新たにクラスタ９０４が定義され、クラスタ９０２は第１の階層から第２の階層に移動される。画素９０１は、この時点で第１の階層にある、クラスタ９０４に帰属される。
【００３３】
続いて、Ｔ［１］とＴ［２］の値を共に２０に設定してクラスタリングを行った場合の、望ましくない結果を図９（ｃ）に示す。画素９０５の特徴ベクトルとクラスタ９０４の特徴ベクトルとの距離は閾値Ｔ［１］以下（Ｓ１１１でＹＥＳ）と判定され、画素９０５がクラスタ９０４に帰属される。そして、処理結果として、図９（ｃ）のような結果になる。一方、Ｔ［１］の値をＴ［２］の値より小さく設定（例えば、Ｔ［１］＝５，Ｔ［２］＝２０とする）してクラスタリングを行うと、結果は図９（ｄ）のようになる。これは、画素９０５の特徴ベクトルとクラスタ９０４の特徴ベクトルとの距離は閾値Ｔ［１］より大きい（Ｓ１０７でＮＯ）と判定される為である。従って、画素９０５入力時点でクラスタ９０２、９０４に続いて、第１の階層に更に新たなクラスタが定義される。その後、該クラスタは後の階層移動処理で最も距離の近いクラスタ９０２と統合される。すなわち、Ｔ［１］をＴ［２］より小さくする設定することで、精度の高いクラスタリングが可能になる。このことは、一般数に拡張し、より高い階層の閾値をより大きくするＴ［Ｍ−１］＜Ｔ［Ｍ］として定義することを示している。
【００３４】
また、階層毎のクラスタ数の上限値Ｔｃ［Ｍ］の最適な値は、画像毎に異なってくる。例えば、Ｔｃ［Ｍ］の値を最適に設定するために、前処理で解析したパターンを元に設定するということが考えられる。例えば、ベクトルデータ変換装置（図６）の、背景判定部６０１において、図１０のような、３色が繰り返されるパターンを有する処理対象画像を解析したとする。そうした場合は、第１の階層に属するクラスタの上限値Ｔｃ［１］を３と設定することで、高速に動作させる事ができる。
【００３５】
すでに述べたように、本発明において、閾値やクラスタの探索条件は処理対象の特性などに合わせて、様々に設定可能である。上述した条件や値に限定せず、実験的に処理対象に最適な値を導き、用いても良いことは言うまでも無い。
【００３６】
＜第二の実施形態＞
第二の実施形態のクラスタリング処理方法と、それを用いたベクトルデータ変換装置について説明する。図６は、前記ベクトルデータ変換装置の構成を示したものであり、本発明における第一の実施形態のクラスタリング処理方法で説明したものと同一である。
【００３７】
以下、クラスタリング処理部６０２の処理を詳細に説明する。本実施形態は、クラスタの階層を第Ｌの階層まで定義したものである（Ｋ＝Ｌ）。本実施形態は、図１のＳ１１３及びＳ１１６の階層移動処理の内部以外は本発明の第一の実施形態で説明したものと同一であるため、階層移動処理のみを図３に示すフローチャートを用いて詳細に説明する。
【００３８】
図３は、第Ｍ−１の階層に属するクラスタを第Ｍの階層に移動する際のフローチャートを表している。まず、Ｓ３０１で第Ｍ−１の階層に属するクラスタ数ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ−１］と閾値Ｔｃ［Ｍ−１］の比較と、全ての画素の処理が終わったか否かの判定を行う。閾値Ｔｃ［Ｍ−１］は、第Ｍ−１の階層に属するクラスタを第Ｍの階層に移動するか否かを判定する値である。なお、本実施形態ではＴｃ［Ｍ］の値を全て３とするが、本発明のクラスタリング処理方法はこれに限定されるものではない。Ｔｃ［Ｍ］の値は１や２、または４以上でもよいし、それぞれ異なった値に設定する、あるいは処理の中で必要に応じて変化させる等も可能である。例えば、ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ］の値の１／１０、１／２０の値をＴｃ［Ｍ−１］に設定してもよい。他にも、背景判定部６０１において解析したパターンに応じて設定してもよいし、第Ｍ−１の階層でクラスタが新しく定義される頻度に応じてＴｃ［Ｍ−１］の値を設定してもよい。
【００３９】
ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ−１］の値がＴｃ［Ｍ−１］より小さい、かつ全ての画素の処理が終わっていないならば（Ｓ３０１でＮＯ）、第Ｍ−１の階層から第Ｍの階層への階層移動処理を終了する。ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ−１］の値がＴｃ［Ｍ−１］以上か、全ての画素の処理が終わっているならば（Ｓ３０１でＹＥＳ）、Ｓ３０２の処理に進み、実際に階層の移動を行う。なお、本実施形態では、階層を移動する際に、第Ｍ−１の階層に属するクラスタ全てを第Ｍの階層に移動させている。しかし本発明のクラスタリング処理方法はこれに限定されるものではなく、例えば、画素（もしくはクラスタ）が帰属する確率の低い第Ｍ−１の階層に属するクラスタのみを、第Ｍの階層に移動させてもよい。例えば、第Ｍ−１の階層に属するクラスタの中で定義されてからの経過時間が長いクラスタを移動してもよいし、帰属している画素（もしくはクラスタ）数の少ないクラスタを移動すると判定してもよい。また、最後に画素（もしくはクラスタ）が帰属されてからの経過時間に応じてクラスタを移動してもよい。
【００４０】
Ｓ３０２では、第Ｍ−１の階層に属する全てのクラスタをスキャンするためのループインデクスｊを初期化する。次に、処理対象クラスタＣ（Ｍ−１）ｊの代表特徴ベクトルＰ（Ｍ−１）ｊを取得し、ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ−１］の値を更新する（Ｓ３０３）。次に、既に第Ｍの階層に属するクラスタが定義されているか否かを判定する（Ｓ３０４）。第Ｍの階層に属するクラスタ数が定義されていないならば（Ｓ３０４でＹＥＳ）、Ｓ３１６の処理へ進み、第Ｍの階層のクラスタを新たに定義する。既にクラスタが定義されていれば（Ｓ３０４でＮＯ）、Ｓ３０５の処理に進む。
【００４１】
続いて、Ｓ３０５からＳ３１１の処理によって、第Ｍの階層に属するクラスタを探索し、第Ｍ−１層における処理対象クラスタとの距離が最も近いクラスタを取り出す。これにより、第Ｍ層クラスタ探索工程を実現する。Ｓ３０５では、第Ｍの階層に属する全てのクラスタをスキャンするためのループインデクスｋと変数ｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］の初期化を行う。ｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］の初期値には第一の実施形態でも述べたＭＡＸ＿ＶＡＬＵＥを設定する。ｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］は、処理対象画素（もしくはクラスタ）の特徴ベクトルと、第Ｍの階層に属する各クラスタの代表特徴ベクトルとの距離の内、最も小さい値を表す変数である。次に、第Ｍの階層に属するクラスタＣＭｋの代表特徴ベクトルＰＭｋを取得する（Ｓ３０６）。次に、Ｐ（Ｍ−１）ｊとＰＭｋの距離Ｄ（Ｐ（Ｍ−１）ｊ，ＰＭｋ）を算出する（Ｓ３０７）。次に、Ｄ（Ｐ（Ｍ−１）ｊ，ＰＭｋ）の値とｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］の値を比較する（Ｓ３０８）。
【００４２】
ｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］の値よりもＤ（Ｐ（Ｍ−１）ｊ，ＰＭｋ）の値が大きければ（Ｓ３０９でＮＯ）、Ｓ３１０へ進み、ループインデクスｋを更新する。Ｄ（Ｐ（Ｍ−１）ｊ，ＰＭｋ）がｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］以下ならば（Ｓ３０８でＹＥＳ）、ｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］をＤ（Ｐ（Ｍ−１）ｊ，ＰＭｋ）に、ｎｎ＿ｃｌｕｓｔ［Ｍ］をｋに更新する（Ｓ３０９）。次に、Ｓ３１０にてループインデクスｋを更新する。Ｓ３１１では、処理対象クラスタと、全ての第Ｍの階層に属するクラスタとの比較が終了したか否かを判定する。比較が終了していなければ（Ｓ３１１でＮＯ）、Ｓ３０６の処理に戻る。全ての第Ｍの階層に属するクラスタとの比較が終了していれば（Ｓ３１１でＹＥＳ）、Ｓ３１２へ進み、ｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］の値と閾値Ｔ［Ｍ］の値を比較する。閾値Ｔ［Ｍ］は、処理対象画素（もしくはクラスタ）を、定義済みの第Ｍの階層に属するクラスタに帰属させるか、もしくは第Ｍの階層に新しいクラスタを定義し、該クラスタに帰属させるかを判定するための基準となる値である。
【００４３】
ｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］がＴ［Ｍ］以下ならば（Ｓ３１２でＹＥＳ）、処理対象クラスタを、特徴空間上で最も距離の近い、第Ｍの階層に属するクラスタＣＭｎｎ＿ｃｌｕｓｔ［Ｍ］に帰属させ、代表特徴ベクトルを更新する（Ｓ３１３）。これにより第Ｍ層クラスタ帰属工程を実現する。なお、本実施形態においては、Ｍ＝２であるため、第１層に属するクラスタを第２層に帰属させることとなる。次に、後述するＳ３１７の処理へ進む。ｍｉｎ＿ｄｉｓｔａｎｃｅ［Ｍ］がＴ［Ｍ］よりも大きければ（Ｓ３１２でＮＯ）、Ｓ３１４の処理に進む。Ｓ３１４では、第Ｍの階層が、定義した階層数Ｌより小さい、かつ全ての画素の処理が終わっていないかを判定する。ＭがＬより小さい、かつ全ての画素の処理が終わっていないならば（Ｓ３１４でＹＥＳ）、第Ｍの階層から第Ｍ＋１の階層への階層移動処理を行う（Ｓ３１５）。これは、処理対象となる階層を代えて、Ｓ３０１からの処理を再帰的に行うこととなる。ＭがＬ以上または全ての画素の処理が終わっているならば（Ｓ３１４でＮＯ）、Ｓ３１６の処理へ進む。Ｓ３１６では、処理対象クラスタの特徴ベクトルを代表特徴ベクトルとするクラスタを、第Ｍの階層に新しく定義し、ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ］を更新する。
【００４４】
Ｓ３１７では、第Ｍ−１階層に属する全てのクラスタに対する処理が終了したかを判定する。終了していれば（Ｓ３１７でＹＥＳ）、Ｓ３１８の処理へ進む。第Ｍ−１階層に属する全てのクラスタに対する処理が終了していない場合は（Ｓ３１７でＮＯ）、ループインデクスｊを更新し（Ｓ３２０）、Ｓ３０３の処理に戻り後続するクラスタを処理対象クラスタとする。Ｓ３１８では、第Ｍの階層が、定義した階層数Ｌより小さいか否かを判定する。ＭがＬより小さければ（Ｓ３１８でＹＥＳ）、第Ｍの階層から第Ｍ＋１の階層への階層移動処理を行う（Ｓ３１９）。ＭがＬ以上ならば（Ｓ３１８でＮＯ）、第Ｍ−１の階層から第Ｍの階層へのクラスタの階層移動処理を終了する。
【００４５】
＜クラスタリングの処理結果＞
次に、図１１に示す画像を用いて本実施形態のクラスタリング処理方法の効果を説明する。図１１は、図７（ａ）の画像に本実施形態のクラスタリング処理方法を適用した際の画素毎の距離計算回数を示すものである。今回の例では、条件として、クラスタを第３の階層まで定義し（Ｋ＝３）、クラスタ数の上限値ＴｃをそれぞれＴｃ［１］＝１、Ｔｃ［２］＝３に設定して処理している。また、クラスタの階層移動処理の際に、全ての第Ｍ−１の階層に属するクラスタを第Ｍの階層に移動する、としている。今回の例では、第２の階層のクラスタ数も制限されたため、第１の階層から第２の階層への階層移動処理が発生した際の距離計算回数が、図８（ａ）の時より更に削減されていることがわかる。その代わり、図８（ａ）の際には発生しなかった第２の階層から第３の階層への階層移動処理が新たに発生した画素は距離計算回数が増えている。しかし、合計の距離計算回数は、図１１より４０４回となり、従来方法に比べて削減できていることがわかる。
【００４６】
また、下位の階層でクラスタ数の上限値Ｔｃを大きく設定すると、距離計算回数の削減効果が低くなるため、Ｔｃは、Ｔｃ［Ｍ−１］≦Ｔｃ［Ｍ］の関係を満たしていることが望ましい。
【００４７】
＜第三の実施形態＞
第三の実施形態のクラスタリング処理方法と、それを用いたベクトルデータ変換装置について説明する。図６は、前記ベクトルデータ変換装置の構成を示したものであり、本発明の第一の実施形態で説明したものと同一である。
【００４８】
以下、クラスタリング処理部６０２の処理を詳細に説明する。本実施形態は、第二の実施形態で説明したクラスタリング処理方法から、階層移動処理を行うタイミングと条件を変更したものである。なお、クラスタの階層は、第二の実施形態と同様Ｌまでとして定義している。
【００４９】
図４のフローチャートを用いて、本実施形態のクラスタリング処理部６０２を詳細に説明する。まず、第Ｍ（Ｍ＝１，２，…，Ｋ−１，Ｋ）の階層に属するクラスタ数を表す変数ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ］と、第Ｍの階層で処理した画素（もしくはクラスタ）数を表す変数ｃｌｕｓｔ＿ｃｏｕｎｔ［Ｍ］を全て０に初期化する（Ｓ４０１）。ｃｌｕｓｔ＿ｃｏｕｎｔ［１］は処理した画素数を表し、それ以外のｃｌｕｓｔ＿ｃｏｕｎｔ［Ｍ］は、第Ｍの階層で処理したクラスタ数を表す。次の、Ｓ４０２〜Ｓ４０３及びＳ４０５〜Ｓ４１２の処理に関しては、第一の実施形態のクラスタリング処理方法（図１）のＳ１０２〜Ｓ１０３及びＳ１０５〜Ｓ１１２の処理とそれぞれ同一であるため説明を省略する。Ｓ４０４では、第一の実施形態におけるクラスタリング処理方法のＳ１０４の処理に加えて、ｃｌｕｓｔ＿ｃｏｕｎｔ［１］の更新を行っている。
【００５０】
次に、Ｓ４１３で、処理対象画素の特徴ベクトルを代表特徴ベクトルとするクラスタを、第１の階層に新しく定義し、ｎｕｍ＿ｃｌｕｓｔｅｒ［１］を更新した後に、後述する階層移動処理を行う（Ｓ４１４）。階層移動処理に関しては図５を用いて後述する。次に、Ｓ４１５では、全ての画素に対する処理が終了したかを判定する。終了していれば（Ｓ４１５でＹＥＳ）、Ｓ４１６において階層移動処理を行った後、クラスタリング処理を終了する。そうでない場合は（Ｓ４１５でＮＯ）、Ｓ４０２の処理に戻り、後続する画素を処理対象画素とする。
【００５１】
＜階層移動処理＞
図４におけるＳ４１４およびＳ４１６の階層移動処理について、図５を用いて詳細に説明する。まずＳ５０１において、実際にクラスタの階層を移動させるか否かを判定する。判定方法としては、全ての画素の処理が終わっているか、もしくはｃｌｕｓｔ＿ｃｏｕｎｔ［Ｍ−１］が、Ｔｃｏｕｎｔ［Ｍ−１］より大きいか否かで判定する。ここでのＴｃｏｕｎｔ［Ｍ−１］は、第Ｍ−１階層のクラスタを第Ｍ階層に移動するか否かを、処理した画素（もしくはクラスタ）数に応じて判定するための所定の閾値である。全ての画素の処理が終わっている、もしくはｃｌｕｓｔ＿ｃｏｕｎｔ［Ｍ−１］の値がＴｃｏｕｎｔ［Ｍ−１］より大きければ（Ｓ５０１でＹＥＳ）、ループインデクスｊを初期化する（Ｓ５０２）。ｊは、第Ｍ−１の階層に属する全てのクラスタをスキャンするためのループインデクスである。全ての画素の処理が終わっていない、かつｃｌｕｓｔ＿ｃｏｕｎｔ［Ｍ−１］の値がＴｃｏｕｎｔ［Ｍ−１］以下ならば（Ｓ５０１でＮＯ）、クラスタの移動を行わずに階層移動処理を終了する。
【００５２】
Ｓ５０３では、処理対象クラスタＣ（Ｍ−１）ｊの代表特徴ベクトルＰ（Ｍ−１）ｊを取得し、ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ−１］とｃｌｕｓｔ＿ｃｏｕｎｔ［Ｍ］の値をそれぞれ更新する（Ｓ５０３）。Ｓ５０４〜Ｓ５１３の処理は、本発明の第二の実施形態のクラスタリング処理方法（図３）のＳ３０４〜Ｓ３１３と同一なので説明を省略する。
【００５３】
Ｓ５１４では、処理対象クラスタの特徴ベクトルを代表特徴ベクトルとするクラスタを、第Ｍの階層に新しく定義し、ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ］を更新する。そして、定義したクラスタの代表特徴ベクトルをＰ（Ｍ−１）ｊとする。次に、Ｍが定義した階層数Ｌより小さい、かつ全ての画素の処理が終わっていないかを判定する（Ｓ５１５）。ＭがＬより小さいかつ全ての画素の処理が終わっていないならば（Ｓ５１５でＹＥＳ）、第Ｍの階層から第Ｍ＋１の階層への階層移動処理を行う（Ｓ５１６）。これは、処理対象となる階層を代えて、Ｓ５０１からの処理を再帰的に行うこととなる。ＭがＬ以上、または全ての画素の処理が終わっているならば（Ｓ５１５でＮＯ）、Ｓ５１７の処理へ進む。
【００５４】
Ｓ５１７では、第Ｍ−１の階層に属する全てのクラスタに対する処理が終了したかを判定する。具体的には、ｎｕｍ＿ｃｌｕｓｔｅｒ［Ｍ−１］＜１か否かを判定する。終了していれば（Ｓ５１７でＹＥＳ）、Ｓ５１８の処理へ進む。第Ｍ−１の階層に属する全てのクラスタに対する処理が終了していない場合は（Ｓ５１７でＮＯ）、ループインデクスｊを更新し（Ｓ５２１）、Ｓ５０３の処理に戻り、後続するクラスタを処理対象クラスタとして処理を継続する。Ｓ５１８では、ｃｌｕｓｔｅｒ＿ｃｏｕｎｔ［Ｍ−１］の値を０に更新する。次に、第Ｍの階層が、定義した階層数Ｌより小さいか否かを判定する（Ｓ５１９）。ＭがＬより小さければ（Ｓ５１９でＹＥＳ）、第Ｍの階層から第Ｍ＋１の階層への階層移動処理を行う（Ｓ５２０）。これは、処理対象となる階層を代えて、Ｓ５０１からの処理を再帰的に行うこととなる。ＭがＬ以上ならば（Ｓ５１９でＮＯ）、第Ｍ−１の階層から第Ｍの階層へのクラスタの階層移動処理を終了する。
【００５５】
＜クラスタリング処理結果＞
次に、図１２に示す画像を用いて本実施形態のクラスタリング処理方法の効果を説明する。図１２は、図７（ａ）の画像に本実施形態のクラスタリング処理方法を適用した際の画素毎の距離計算回数を示すものである。今回の例では条件として、クラスタを第２の階層まで定義し（Ｋ＝２）、１ライン毎（１２画素毎）に階層移動処理を行っている。また、クラスタの階層移動処理の際に、全ての第１の階層に属するクラスタを第２の階層に移動する、としている。本実施形態では、画像データの右端の画素処理時にクラスタの階層移動処理を行うため、右端の画素の距離計算回数が多くなっている。そして、左端の画素は毎回第１の階層に属するクラスタがリセットされた状態から処理が始まるため、距離計算回数は０である。合計の距離計算回数は、図１２より５４４回となり、従来方法に比べて削減できていることがわかる。
【００５６】
なお、本実施形態においては、１ライン毎に画像データの右端の画素を処理する際にクラスタの階層移動処理を行っているが、これに限定するわけではなく、例えば、２ライン毎にクラスタの階層移動処理を適用しても良い。
【００５７】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011034410.tif 000003
【図２】
2011034410.tif 000004
【図３】
2011034410.tif 000005
【図４】
2011034410.tif 000006
【図５】
2011034410.tif 000007
【図６】
2011034410.tif 000008
【図７】
2011034410.tif 000009
【図８】
2011034410.tif 000010
【図９】
2011034410.tif 000011
【図１０】
2011034410.tif 000012
【図１１】
2011034410.tif 000013
【図１２】
2011034410.tif 000014