(57)【特許請求の範囲】
【請求項１】
複数のサンプルからなるデータをクラスタに分類するクラスタリング処理装置であって、
前記データを分割したＮ個のデータブロックそれぞれについて、データブロックに含まれるサンプルを該データブロックごとのクラスタに分類するＮ個のクラスタリング手段であって、各クラスタリング手段は第一の記憶手段を有し、前記データブロックに含まれるサンプルに順次着目してクラスタに分類し、当該分類されたデータブロックごとのクラスタの識別情報を含むクラスタ情報を前記第一の記憶手段に記憶するとともに前記着目したサンプルが属するクラスタを示すサンプル帰属情報を第二の記憶手段に記憶するＮ個のクラスタリング手段と、
前記データブロックそれぞれについて、所定の条件が満たされた場合、前記第一の記憶手段に記憶されたクラスタ情報のうちから統合対象とするクラスタのクラスタ情報を選択し、選択されたクラスタ情報を前記第一の記憶手段から第三の記憶手段に移動するクラスタ情報移動手段と、
前記第三の記憶手段に記憶された前記クラスタ情報が示す選択されたクラスタを統合し、前記第二の記憶手段に記憶されたサンプル帰属情報を、統合後のクラスタの識別情報で更新する更新手段と
を備えることを特徴とするクラスタリング処理装置。
【請求項２】
前記クラスタリング手段は、着目したサンプルを分類できるクラスタがなければ新たなクラスタを生成し、
前記所定の条件は、前記クラスタリング手段で生成されたクラスタ数が閾値を超えたときに満たされることを特徴とする請求項１に記載のクラスタリング処理装置。
【請求項３】
前記所定の条件は、前記クラスタリング手段が処理したサンプル数が所定の数を超えた毎に満たされることを特徴とする請求項１に記載のクラスタリング処理装置。
【請求項４】
前記クラスタ情報には、各クラスタに分類されたサンプルのうち最新のサンプルを特定するサンプル特定情報が更に含まれており、
前記クラスタ情報移動手段は、前記所定の条件が満たされたデータブロックのクラスタに分類されたサンプルのうち最新のサンプルに着目した順番が最も古いクラスタのクラスタ情報を選択することを特徴とする請求項１に記載のクラスタリング処理装置。
【請求項５】
前記クラスタ情報移動手段は、帰属するサンプル数が最も少ないクラスタのクラスタ情報を選択することを特徴とする請求項１に記載のクラスタリング処理装置。
【請求項６】
前記クラスタ情報移動手段により前記第三の記憶手段に移動され、かつ、前記更新手段により統合されていないクラスタの数が閾値を超えている間、前記クラスタ情報移動手段はクラスタを選択しないことを特徴とする請求項１に記載のクラスタリング処理装置。
【請求項７】
前記クラスタ情報移動手段により前記第三の記憶手段に移動され、かつ、前記更新手段により統合されていないクラスタの数が閾値を超えている間、前記クラスタリング手段はクラスタリング処理を停止することを特徴とする請求項１に記載のクラスタリング処理装置。
【請求項８】
前記サンプルは画素値を表す特徴ベクトルであり、
前記クラスタ情報は、クラスタに属する画素の特徴ベクトルの平均値を代表特徴ベクトルとして更に有し、
前記クラスタリング手段は、既存のクラスタのうち、着目したサンプルの特徴ベクトルとの距離が最も近くかつ当該距離が閾値より小さなクラスタがあれば前記着目したサンプルを当該クラスタに分類して当該クラスタの代表特徴ベクトルを更新し、該当するクラスタがなければ新たなクラスタを生成して前記着目したサンプルの特徴ベクトルを前記クラスタの代表特徴ベクトルとすることを特徴とする請求項１に記載のクラスタリング処理装置。
【請求項９】
複数のサンプルからなるデータを、サンプルの特徴ベクトルに基づいてクラスタに分類するクラスタリング処理装置としてコンピュータを機能させるためのプログラムであって、
前記データを分割したＮ個のデータブロックそれぞれについて、データブロックに含まれるサンプルを該データブロックごとのクラスタに分類するＮ個のクラスタリング手段であって、各クラスタリング手段は第一の記憶手段を有し、前記データブロックに含まれるサンプルに順次着目してクラスタに分類し、当該分類されたデータブロックごとのクラスタの識別情報を含むクラスタ情報を前記第一の記憶手段に記憶するとともに前記着目したサンプルが属するクラスタを示すサンプル帰属情報を第二の記憶手段に記憶するＮ個のクラスタリング手段と、
前記データブロックそれぞれについて、所定の条件が満たされた場合、前記第一の記憶手段に記憶されたクラスタ情報のうちから統合対象とするクラスタのクラスタ情報を選択し、選択されたクラスタ情報を前記第一の記憶手段から第三の記憶手段に移動するクラスタ情報移動手段と、
前記第三の記憶手段に記憶された前記クラスタ情報が示す選択されたクラスタを統合し、前記第二の記憶手段に記憶されたサンプル帰属情報を、統合後のクラスタの識別情報で更新する更新手段と
をしてコンピュータを機能させるためのプログラム。
【請求項１０】
複数のサンプルからなるデータを、サンプルの特徴ベクトルに基づいてクラスタに分類するクラスタリング処理方法であって、
前記データを分割したＮ個のデータブロックそれぞれについて、Ｎ個のクラスタリング手段それぞれが、データブロックに含まれるサンプルを該データブロックごとのクラスタに分類するクラスタリング工程であって、各クラスタリング手段は第一の記憶手段を有し、前記データブロックに含まれるサンプルに順次着目してクラスタに分類し、当該分類されたデータブロックごとのクラスタの識別情報を含むクラスタ情報を前記第一の記憶手段に記憶するとともに前記着目したサンプルが属するクラスタを示すサンプル帰属情報を第二の記憶手段に記憶するクラスタリング工程と、
クラスタ情報移動手段が、前記データブロックそれぞれについて、所定の条件が満たされた場合、前記第一の記憶手段に記憶されたクラスタ情報のうちから統合対象とするクラスタのクラスタ情報を選択し、選択されたクラスタ情報を前記第一の記憶手段から第三の記憶手段に移動するクラスタ情報移動工程と、
更新手段が、前記第三の記憶手段に記憶された前記クラスタ情報が示す選択されたクラスタを統合し、前記第二の記憶手段に記憶されたサンプル帰属情報を、統合後のクラスタの識別情報で更新する更新工程と
を有することを特徴とするクラスタリング処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理や統計処理におけるパターン認識やデータ解析に係わり、特に、データのクラスタ分類の装置及び方法に関する。
【背景技術】
【０００２】
近年、文書を紙ではなく、電子化して保存あるいは送信する需要が高まっている。ここでいう文書の電子化とは、単に紙上の文書をスキャナ等によって読み取って画像データを得るにとどまらない。例えば、文書を構成する文字、図、写真、表等の性質の異なる領域に画像データを分離する。そして、文字領域は文字コード、図領域はベクトルデータ、背景領域や写真領域はビットマップデータ、表領域は構造データなど、各々最も適した形式にデータ化する処理が、文書の電子化処理で行われる。
【０００３】
ベクトルデータへの変換手法として、特許文献１の画像処理装置が開示されている。該画像処理装置では、画像データに対して領域分割を行い、各領域の輪郭を抽出し、抽出された輪郭をベクトルデータへ変換する。該画像処理装置における領域分割の方法を以下に説明する。
【０００４】
まず、画像データをＮｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒクラスタリング法により領域分割する。Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒクラスタリング法は、処理対象のサンプルの特徴ベクトルとの距離が最小値となるクラスタを探索する。該距離の最小値が所定の閾値以下であれば該クラスタに処理対象のサンプルを帰属させる。そうでなければ新たなクラスタを定義して、該新たに定義したクラスタに処理対象のサンプルを帰属させる。なお、画像データに対するクラスタリング処理において、特徴ベクトルは色情報（Ｒ、Ｇ、Ｂから成る画素値）が使われるのが一般的である。クラスタの代表特徴ベクトルには、一般的にクラスタの重心が用いられる。即ち、クラスタに帰属する全サンプルの特徴ベクトル（色情報）の平均値である。
【０００５】
次に、Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒクラスタリングにより分割された領域に対し、統合処理を行う。この処理では、領域数の目標値（目標クラスタ数）を設定し、クラスタ数が目標値に収まるまでクラスタの統合を行う、具体的には、各クラスタ間の特徴ベクトル同士の距離を計算し、距離が最小値となる二つのクラスタを一つのクラスタに統合する。
【０００６】
なお、クラスタリング処理は画像データ以外にも適用することができる。例えば、Ｗｅｂアクセス履歴やＰＯＳ（Ｐｏｉｎｔ  ｏｆ  Ｓａｌｅｓ）システムの売上履歴などのデータベースから、特徴が似たものをまとめることで傾向が同じ利用者や顧客のグループを発見する等、データ・マイニングに適用可能である。
【０００７】
ところで、クラスタリング処理によりデータをクラスタへ帰属させる際に、クラスタ数に応じて計算時間が増大する。なぜならば、Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒクラスタリングとクラスタの統合処理とのいずれにおいても、クラスタ数が増えると特徴ベクトル同士の距離を算出する回数が増加するためである。
【０００８】
このような問題を解決するための従来技術として、特許文献２の画像領域分割方法及び画像領域統合方法が開示されている。従来技術では、画像データを複数の矩形に分割し、矩形毎にクラスタリング処理による領域分割を行う。また、矩形の境界において不自然な領域分割が生じる事を防ぐため、矩形の境界付近に対してはクラスタリング処理を２度以上行い、統合処理を行う。該従来技術に基づいて各々の矩形に対して並列にクラスタリング処理を行えば、領域分割の高速化が可能となる。
【０００９】
またクラスタリング処理は画像データのみならず、他のデータについても、その分析等の目的で、類似したデータをグループ化するために適用される。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００７−１５８７２５号公報
【特許文献２】特開平８−３０７８７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来技術による並列処理では、分割された各々の矩形毎にクラスタリング処理を行うため、分割数に応じてクラスタ数が増大してしまう。さらに、従来技術ではクラスタリング処理を全て終えてからクラスタ統合処理をするため、クラスタリング処理対象のデータを分割するほど統合処理対象のクラスタ数が増えるので、クラスタ統合処理に要する処理時間が増大してしまうという問題があった。
【００１２】
そこで、本発明はデータのクラスタリング処理を高速に行うことのできるクラスタリング処理装置を提供する事を目的とする。
【課題を解決するための手段】
【００１３】
かかる課題を解決するため、本発明は以下の構成を備える。すなわち、
複数のサンプルからなるデータをクラスタに分類するクラスタリング処理装置であって、
前記データを分割したＮ個のデータブロックそれぞれについて、データブロックに含まれるサンプルを該データブロックごとのクラスタに分類するＮ個のクラスタリング手段であって、各クラスタリング手段は第一の記憶手段を有し、前記データブロックに含まれるサンプルに順次着目してクラスタに分類し、当該分類されたデータブロックごとのクラスタの識別情報を含むクラスタ情報を前記第一の記憶手段に記憶するとともに前記着目サンプルが属するクラスタを示すサンプル帰属情報を第二の記憶手段に記憶するＮ個のクラスタリング手段と、
前記データブロックそれぞれについて、所定の条件が満たされた場合、前記第一の記憶手段に記憶されたクラスタ情報のうちから統合対象とするクラスタのクラスタ情報を選択し、選択されたクラスタ情報を前記第一の記憶手段から第三の記憶手段に移動するクラスタ情報移動手段と、
前記第三の記憶手段に記憶された前記クラスタ情報が示すクラスタを統合し、前記第二の記憶手段に記憶されたサンプル帰属情報を更新して、統合されたクラスタを統合後のクラスタに変更する更新手段とを備える。
【発明の効果】
【００１４】
本発明によれば、Ｎ個に分割されたデータ群の各々に対してクラスタ帰属処理が並列に実行される。さらに、クラスタ統合処理が前記クラスタ帰属処理と並列に実行される。ゆえに、従来よりも高速なクラスタリング処理が可能となる。
【図面の簡単な説明】
【００１５】
【図１】実施形態１のクラスタリング装置の構成を表すブロック図
【図２】クラスタ帰属処理部１１１〜１１３の動作を表すフローチャート
【図３】クラスタ情報移動部１３１〜１３３の動作を表すフローチャート
【図４】別の実施形態におけるクラスタ情報移動部の動作を表すフローチャート
【図５】別の実施形態におけるクラスタ情報移動部の動作を表すフローチャート
【図６】別の実施形態におけるクラスタ情報移動部の動作を表すフローチャート
【図７】クラスタ統合部１４１の詳細な構成を表すブロック図
【図８】別の実施形態におけるクラスタ統合部の構成を表すブロック図
【図９】別の実施形態におけるクラスタ統合部の構成を表すブロック図
【図１０】別の実施形態におけるクラスタリング装置の構成を表すブロック図
【図１１】実施形態２のクラスタリング装置の構成を表すブロック図
【図１２】データ分割部１００による画像分割の例を示す図
【図１３】データ分割部１００による画像分割の例を示す図
【発明を実施するための形態】
【００１６】
［実施形態１］
本発明に関る実施形態１のクラスタリング処理装置について、図１を用いて説明する。図１は、本実施形態のクラスタリング処理装置の構成を表す図である。本実施形態のクラスタリング処理装置は、画像データを構成する複数の画素の各々をクラスタリング処理対象のサンプルとし、画素の色情報を特徴ベクトルとするクラスタリング処理を行う。本実施形態のクラスタリング処理装置は、データ分割部１００、クラスタ帰属処理部１１１〜１１３、クラスタ情報メモリ１２１〜１２３、クラスタ情報移動部１３１〜１３３、クラスタ統合部１４１、クラスタ番号メモリ１５１から構成される。クラスタ情報メモリ１２１〜１２３は、夫々クラスタ帰属処理部１１１〜１１３とクラスタ情報移動部１３１〜１３３に接続されている。以下、図１を参照して本実施形態のクラスタリング処理装置の動作を説明する。
【００１７】
データ分割部１００は、外部から入力された画像を図示されないバッファメモリに格納し、画像を図１２に示すように３つのスライスに分割し、各々のスライスをクラスタ帰属処理部１１１〜１１３に割り当てる。各スライスをデータブロックとも呼ぶ。本実施形態では入力された画像は３つのスライスに分割されるが、本発明はこれに限定されるものではない。例えば、クラスタ帰属処理部が４つあれば、図１３に示すように画像を４つのブロックに分割してもよい。
【００１８】
クラスタ帰属処理部１１１〜１１３は、データ分割部１００によって分割されたスライス１〜３内の画素を、定義済みのクラスタまたは新たに定義するクラスタに帰属させる、すなわち画素をクラスタ毎に分類するクラスタ帰属処理を並列に行う。クラスタ情報メモリ１２１〜１２３は、クラスタ帰属処理部１１１〜１１３により定義・更新されるクラスタ情報を格納するメモリである。これが第一の記憶部となる。クラスタ情報は、クラスタの代表特徴ベクトルと、クラスタへ最も最近に帰属されたサンプルを特定するサンプル特定情報と、クラスタに帰属するサンプルの数から成る。また、クラスタ情報メモリ１２１〜１２３には、クラスタ帰属処理部１１１〜１１３によりサンプルの帰属先として識別され得るクラスタ数である帰属先候補クラスタ数も格納される。なお、後述のクラスタ情報移動部により選択されたクラスタは、帰属先候補に含まれない。各クラスタ帰属処理部は、例えばプログラマブルなゲートアレイや、あるいはプログラムを格納したメモリ及びプログラム実行するプロセッサで構成することができる。
【００１９】
図１３（Ａ）にクラスタ情報の一例を示す。クラスタ情報には、当該データブロックにおけるクラスタの数を示すクラスタ数１３００が含まれる。クラスタ数は、クラスタリング途中では確定しないため、帰属先候補クラスタ数とも呼ぶ。また各クラスタについて、クラスタ識別情報であるクラスタＩＤ１３１１、クラスタの代表特徴ベクトル１３１２、クラスタに属するサンプル数（すなわち画素数）１３１３、クラスタに属する最新のサンプルを特定するサンプル特定情報１３１４を含む。なお、あるクラスタについてクラスタ情報という場合、クラスタＩＤ１３１１、代表特徴ベクトル１３１２、サンプル数１３１３、最新のサンプル特定情報１３１４をクラスタ情報１３１０と呼ぶ。なお「最新」とは、たとえば画素に着目した順序を基準として定義できる。この場合、サンプル特定情報１３１４としては、最後に当該クラスタに分類された画素のアドレスを用いることができる。アドレスから着目順序が一意に決められるためである。サンプル識別情報はアドレスでなくとも良いが、順序の後先を判定できる情報である必要がある。
【００２０】
なお、本実施形態においてサンプルの特徴ベクトルは画素の色情報（Ｒ、Ｇ、Ｂから成る画素値）であるが、本発明はこれに限定されない。例えば、特徴ベクトルとしてエッジ強度を含んでもよい。クラスタの代表特徴ベクトルは、クラスタに帰属する全サンプルの特徴ベクトルの平均値である。
【００２１】
＜ブロック内のクラスタリング処理＞
以下、図２を参照して、クラスタ帰属処理部１１１〜１１３の処理フローを説明する。なお、クラスタ帰属処理部１１１〜１１３のいずれも処理フローは同一であるため、クラスタ帰属処理部とクラスタ情報メモリについては符号を省略する。
【００２２】
先ず、ステップＳ１００において、クラスタ情報メモリに格納されている帰属先候補クラスタ数（すなわちクラスタ数１３１０）を０に初期化する。
【００２３】
次に、最初の処理対象サンプルに着目し、その特徴ベクトルＰｃを取得する（ステップＳ１０１）。次に、クラスタ情報メモリに格納されている帰属先候補クラスタ数が０であるか否かを判定する（ステップＳ１０２）。帰属先候補クラスタ数が０である場合（ステップＳ１０２でＹＥＳ）、処理をステップＳ１０６へ進める。そうでない場合（ステップＳ１０２でＮＯ）、処理をステップＳ１０３へ進める。
【００２４】
ステップＳ１０３では、クラスタ情報メモリに格納されている既存のクラスタ情報を参照し、処理対象サンプルの特徴ベクトルＰｃと代表特徴ベクトルとの距離が最小値となるクラスタＣｎを識別し、該最小距離をＤｎとする。即ち、処理対象サンプルの特徴ベクトルＰｃと、クラスタ情報メモリに格納されている全てのクラスタ帰属先候補の代表特徴ベクトルとの距離を算出し、その中から距離が最小値となるクラスタを選ぶ。
【００２５】
次に、ステップＳ１０４で最小距離Ｄｎが閾値（距離閾値）Ｔｄ以下であるか否かを判定する。最小距離Ｄｎが距離閾値Ｔｄ以下である場合（ステップＳ１０４でＹＥＳ）、ステップＳ１０５へ処理を進める。そうでなければ（ステップＳ１０４でＮＯ）、ステップＳ１０６へ処理を進める。
【００２６】
ステップＳ１０５では、処理対象サンプルをクラスタＣｎへ帰属させる処理を行う。すなわち、着目サンプル（着目画素）をクラスタＣｎに属するサンプルとして分類する。具体的には、処理対象サンプルにクラスタＣｎのクラスタ番号を付与する。ここで付与されたクラスタ番号は、後述するクラスタ統合部１４１によって更新され得るため、仮のクラスタ番号（以降、仮クラスタ番号と記す）である。仮クラスタ番号はクラスタ番号メモリ１５１へ出力され、サンプル帰属情報として記憶される。これが第二の記憶部となる。図１３（Ｂ）に、着目サンプルが属するクラスタを示すサンプル帰属情報１３２２の例を示す。本例では、仮クラスタ番号１３２２ａは、画像データ１３２１における画素１３２１ａの配置に対応して記憶される。すなわち、仮クラスタ番号が記憶された順序が、サンプルとの対応を示している。図１３（Ｂ）では、画素は３色からなるカラー画像データとして例示している。もちろん、対応するサンプルを特定できる態様であれば、この形式以外の形式を採用することは可能である。
【００２７】
次に、クラスタＣｎのクラスタ情報１３１０を更新し、クラスタ情報メモリに格納する。具体的には、クラスタＣｎの代表特徴ベクトルＰｎ（クラスタＣｎに帰属する全サンプルの特徴ベクトルの平均値）を、代表特徴ベクトルＰｎ１３１２とクラスタＣｎに帰属するサンプル数１３１３と、新たにクラスタＣｎに分類された処理対象サンプルの特徴ベクトルに基づいて更新する。さらに、クラスタＣｎに属するサンプルのうち、最も新しく分類されたサンプルを特定するサンプル特定情報１３１４を、処理対象サンプルの識別情報で更新する。さらに、クラスタＣｎに帰属するサンプル数に１を加算する。ステップＳ１０５の処理を終了したら、ステップＳ１０７へ処理を進める。
【００２８】
一方ステップＳ１０６では新規クラスタを定義し、クラスタ情報メモリに格納されている帰属先候補クラスタ数に１を加算する。また、該新規クラスタのクラスタ情報を定義する。新規クラスタを定義するとは、固有のクラスタ識別情報を新たなクラスタに割り当て、新たなクラスタのためのクラスタ情報の領域をクラスタ情報メモリに確保することである。ここで、ブロック間のクラスタ識別情報の重複を避けるために、クラスタ識別情報を、たとえばブロックに固有なブロック識別情報とブロック内で固有なクラスタの識別情報との組み合わせで表す。またクラスタ情報を定義するとは、確保したクラスタ情報のクラスタＩＤ１３１１に新たなクラスタのクラスタ識別情報を格納し、該新規クラスタの代表特徴ベクトルを、処理対象サンプルの特徴ベクトルＰｃとして記憶することである。さらに、サンプル特定情報１３１４として処理対象サンプルを特定する情報を格納し、該新規クラスタに帰属するサンプル数１３１３を１とする。これらの処理をまとめて新規クラスタの生成とも呼ぶ。そして、処理対象サンプルに該新規クラスタの識別情報を付与する。すなわち処理対象サンプルが分類されたクラスタのクラスタ識別情報を、サンプル帰属情報１３２２に記憶する。以上の処理を終えた後、ステップＳ１０７へ処理を進める。
【００２９】
ステップＳ１０７では、クラスタ帰属処理部に割り当てられた１スライス内の全てのサンプルを処理したか否かを判定する。全てのサンプルを処理していない場合（ステップＳ１０７でＮＯ）は、次のサンプルを処理すべく、処理をステップＳ１０８へ進める。そうでない場合（ステップＳ１０７でＹＥＳ）は、処理を終了する。ステップＳ１０８では、処理対象サンプルとして現在の着目サンプルの次のサンプルに順次着目する。着目の順序としては例えばラスタ順がある。また、画像データの局所領域に着目するとその領域の画素の色は近似しているという空間的局所性を画像は有している。その特性に着目すれば、画像データに対しては、ブロックの境界付近を早い時期に処理対象とする順序が望ましい。クラスタリング途中でクラスタの統合を行うことになった場合、境界付近のサンプルが属するクラスタが統合の対象となり得るからである。そこでたとえば、画像データについては、その外側から内側にらせん状に走査する順序でサンプルに着目する。またたとえば、いわゆるジグザグ走査という方法もある。画像データの画素にはアドレスが付与されているので、Ｓ１０８では、次の処理対象画素のアドレスを走査の順序に応じて求めることで、次の処理対象サンプルに着目できる。
【００３０】
＜クラスタ統合部へのクラスタ情報の移動＞
次に、クラスタ情報移動部１３１〜１３３の動作を、図３を用いて説明する。図３は、クラスタ情報移動部１３１〜１３３の動作を表すフローチャートである。なお、クラスタ情報移動部１３１〜１３３のいずれも処理フローは同一であるため、符号を省略する。
【００３１】
まず、ステップＳ２０１において、対応するクラスタ帰属処理部が割り当てられた１スライス内の全てのサンプルを処理したか否かを判定する。全てのサンプルを処理した場合（ステップＳ２０１でＹＥＳ）、ステップＳ２０６へ処理を進める。そうでない場合（ステップＳ２０１でＮＯ）、ステップＳ２０２へ処理を進める。
【００３２】
ステップＳ２０２において、クラスタ情報移動部は接続されているクラスタ情報メモリを参照し、帰属先候補クラスタ数が外部から設定される閾値（帰属先候補クラスタ数閾値）を超えたか否かを判定する。帰属先候補クラスタ数が帰属先候補クラスタ数閾値を超えた場合（ステップＳ２０２でＹＥＳ）、ステップＳ２０３へ処理を進める。そうでない場合（ステップＳ２０２でＮＯ）、ステップＳ２０１へ戻る。
【００３３】
ステップＳ２０３において、後述するクラスタ統合部１４１がクラスタ情報を受け付け可能か否かを判定する。受け付け可能であれば（ステップＳ２０３でＹＥＳ）、ステップＳ２０４へ処理を進める。そうでなければ（ステップＳ２０３でＮＯ）、ステップＳ２０１へ戻る。受け付け可能とは、たとえばクラスタ統合部のバッファあるいはキューに空きがある状態である。
【００３４】
ステップＳ２０４において、クラスタ統合部１４１によるクラスタ統合処理の対象となるクラスタをクラスタ情報に基づいて選択する。本実施形態においては、クラスタ情報移動部は、最も最近に帰属されたサンプルが最も早くクラスタ帰属処理されたサンプルであるクラスタを選択する。即ち、クラスタ情報メモリに格納されたサンプル特定情報１３１４で特定されるサンプルが、図２のステップＳ１０５及びＳ１０６において最も早く帰属先として識別された（すなわち分類された）クラスタを特定し、該クラスタを統合対象として選択する。サンプルは、ひとつのブロック内においては逐次的に着目されるので、最も早く分類されたサンプルは、サンプルのアドレスと走査順とにより決定できる。例えばラスタ順であればアドレスの順であるから、サンプル特定情報がアドレスであれば、単純にアドレスを比較することで統合対象のクラスタを決定できる。他の走査順が採用されていても、走査順を決定する規則に従ってサンプルのアドレスを比較することで同様に統合対象のクラスタを決定できる。
【００３５】
なお、本発明においてクラスタ統合処理の対象となるクラスタの選択方法はこれに限定されない。別の実施形態においては、帰属するサンプル数の最も少ないクラスタが選択されてもよい。この場合、クラスタ情報のうちサンプル特定情報は不要なので、クラスタ帰属処理部はサンプル特定情報を作る必要は無い。また、ブロックの境界付近のサンプルが属するクラスタを選択しても良い。ただしこの場合最新のサンプル特定情報からはクラスタの選択ができない。この場合には、ブロック情報として、ブロックの境界付近のサンプルが分類されたクラスタの識別情報を記憶しておく必要がある。
【００３６】
ステップＳ２０５において、選択した統合対象クラスタのクラスタ情報をクラスタ統合部１４１へ移動させる。すなわち、移動対象のクラスタ情報１３１０をクラスタ統合部１４１へ引き渡し、クラスタ情報メモリから削除する。また、クラスタ情報メモリに格納されている帰属先候補クラスタ数１３００から１を減算する。以後、クラスタ情報移動部により選択されたクラスタのクラスタ情報は、クラスタ帰属処理部のステップＳ１０３（図２）の処理において参照されない。また同じ識別情報を持つクラスタが新たに生成されることもない。即ち、クラスタ情報移動部により選択されたクラスタは、ステップＳ１０３においてクラスタ帰属先候補として識別されないため、処理対象サンプルと代表特徴ベクトルとの距離を算出する処理の対象とならない。
【００３７】
ステップＳ２０６においては、クラスタ帰属処理部が割り当てられた１スライス内の全てのサンプルを処理しているので、全てのクラスタ情報をクラスタ統合部１４１へ転送する。
【００３８】
＜クラスタ統合処理＞
次に、クラスタ統合部１４１について説明する。クラスタ統合部１４１は、クラスタ情報移動部１３１〜１３３から各々移動されたクラスタ情報を受け取り、該受け取ったクラスタ情報に対応するクラスタが所定の統合条件を満たせば統合する。図７は、クラスタ統合部１４１の詳細な構成を表すブロック図である。クラスタ統合部１４１は、ＦＩＦＯ１４１１〜１４１３、調停部１４１５、統合部１４１６、クラスタ番号出力部１４１７、クラスタ統合メモリ１４１８を有する。ＦＩＦＯ１４１１〜１４１３は、それぞれ図１のクラスタ情報移動部１３１〜１３３に接続されている。クラスタ番号出力部１４１７は図１のクラスタ番号メモリ１５１に接続されている。以下、図７を参照して、クラスタ統合部１４１の動作を説明する。
【００３９】
ＦＩＦＯ１４１１〜１４１３は、それぞれクラスタ情報移動部１３１〜１３３から移動されたクラスタ情報を受け取るＦＩＦＯである。これが第三の記憶部となる。ＦＩＦＯ１４１１〜１４１３はデータフル状態のとき、クラスタ情報移動部１３１〜１３３に対して、クラスタ情報を受付不可能であることを示す信号を出力する。
【００４０】
調停部１４１５は、ＦＩＦＯ１４１１〜１４１３からクラスタ情報を取り出し、統合部１４１６へ出力する。本発明においてはクラスタ情報を取り出すＦＩＦＯの選択方法は限定されないが、代表的な手法としてラウンド・ロビン方式による選択が挙げられる。実施形態においてはラウンド・ロビン方式で選択する。
【００４１】
統合部１４１６は、調停部１４１５から出力されたクラスタ情報を受け取り、クラスタ統合メモリ１４１８に一旦格納する。クラスタ統合の条件を満たしたとき、クラスタ統合処理を行う。具体的には、クラスタ統合メモリ１４１８を参照して代表特徴ベクトル同士の距離が最小となる２つのクラスタを識別し、該２つのクラスタを統合し、統合後のクラスタのクラスタ情報を生成して、該クラスタ情報をクラスタ統合メモリ１４１８に格納する。統合後のクラスタ情報には、新たな固有のクラスタ識別情報が付与される。統合後のクラスタに新たなサンプルが属することは、本実施形態ではないので、その他の情報を作成しなくとも良い。ただし、統合後のクラスタを用いてサンプルを分類する場合には、代表特徴ベクトル、サンプル数、最新のサンプル特定情報も、統合後のクラスタのために作成する必要がある。代表特徴ベクトルは統合前の各クラスタの代表特徴ベクトルのサンプル数を重みとした加重平均であり、サンプル数は統合前の各クラスタのサンプル数の合計値であり、サンプル特定情報は、統合前の各クラスタのサンプル特定情報のうち最も古いものが選ばれる。さらに、クラスタ帰属処理部１１１〜１１３によって各サンプルに付与された仮クラスタ番号と統合後のクラスタ番号との対応を表すクラスタ番号対応リストを生成し、クラスタ統合メモリ１４１８に格納する。
【００４２】
なお、クラスタ統合の条件は、例えばクラスタ統合メモリ１４１８に格納されたクラスタ情報の数が、外部から設定された閾値を超えたことでよい。また、クラスタの代表特徴ベクトル同士の距離が所定値以下であることを条件として、クラスタ情報の数に関らず、クラスタ統合処理を随時行ってもよい。
【００４３】
クラスタ番号出力部１４１７は、クラスタ帰属処理部１１１〜１１３が全てのサンプルに対する処理を終え、クラスタ情報移動部１３１〜１３３が全てのクラスタ情報を出力し、統合部１４１６が処理を終えた後、クラスタ情報と各サンプルのクラスタ番号を出力する。具体的には、クラスタ番号メモリ１５１からサンプルの仮クラスタ番号を順次読み出す。クラスタ統合メモリ１４１８に格納されているクラスタ番号対応リストを参照し、仮クラスタ番号で示されるクラスタが統合されていれば統合後のクラスタ番号に書き換え、それを外部へ出力する。そうでなければ仮クラスタ番号をそのまま外部へ出力する。出力されたサンプルごとに関連づけられたクラスタ番号はたとえば格納されて、画像処理のため参照される。
【００４４】
以上説明したように、本実施形態のクラスタリング処理装置では、データ分割部１００によって分割された画像に対しクラスタ帰属処理部１１１〜１１３が各々並列にクラスタリング処理を行う。よって、画像を分割しない場合と比べて、クラスタリング処理が分割数に応じて高速化される。
【００４５】
さらに、クラスタ情報移動部１３１〜１３３が統合対象となるクラスタを選択し、選択されたクラスタをクラスタ統合部１４１が随時統合する。ゆえに、クラスタ帰属処理部１１１〜１１３が割り当てられたスライス内の全てのサンプルに対するクラスタ帰属処理を終えてからクラスタを統合する場合と比較して、高速に処理することができる。
【００４６】
また、クラスタ情報移動部１３１〜１３３により統合対象として選択されたクラスタのクラスタ情報は、対応するクラスタ情報メモリからクラスタ統合部１４１へ移動されるため、クラスタ帰属処理部１１１〜１１３によって参照されない。よって、クラスタ帰属処理部１１１〜１１３において代表特徴ベクトルとの距離が最小となるクラスタを探索する処理の負荷が軽減されるため、高速にクラスタリング処理を行うことができる。
【００４７】
［本実施形態の変形例］
なお、本実施形態においては、クラスタ情報移動部は帰属先候補クラスタ数が帰属先候補クラスタ数閾値を超えると判定したとき（ステップＳ２０２でＹＥＳ）、統合対象のクラスタを選択するが、本発明はこれに限定されない。図４のステップＳ３０２に示すように、クラスタ帰属処理部が所定のサンプル数を処理する毎に、統合対象のクラスタを選択してもよい。例えば、画像データをクラスタリングする場合、クラスタ帰属処理部が１ラインあるいは２ライン処理する毎に統合対象のクラスタを選択してもよい。この場合、クラスタ情報メモリには、クラスタ帰属処理部が処理したサンプル数が格納される。クラスタ情報移動部は該サンプル数を基にステップＳ３０２の判定を行う。
【００４８】
さらに別の実施形態においては、図５のステップＳ４０２に示すように、クラスタ帰属処理部が所定のサンプル数を処理したときまたはクラスタの数がクラスタ数閾値を超えたときのうち、どちらの条件を満たした場合においても統合対象のクラスタを選択してもよい。
【００４９】
さらに本実施形態においては、クラスタ統合部１４１がクラスタ情報を受け付け可能でなければ（ステップＳ２０３でＮＯ）、ステップＳ２０１へ処理を戻すが、本発明はこれに限定されない。例えば、図６のステップＳ５０３〜Ｓ５０６に示すように、クラスタ統合部１４１がクラスタ情報を受け付け可能でなければ（ステップＳ５０３でＮＯ）、クラスタ帰属処理部の処理を停止させてもよい（ステップＳ５０４）。この場合、クラスタ統合部１４１がクラスタ情報を受け付け可能になったら（ステップＳ５０５でＹＥＳ）、クラスタ帰属処理部の処理を再開させる（ステップＳ５０６）。ここで、クラスタ統合部１４１がクラスタ情報を受け付け可能でない状態とは、前述したＦＩＦＯ１４１１〜１４１３（図７）がデータフルの状態である。言い換えると、クラスタ統合部１４１により処理されていないクラスタ数が統合処理待ちクラスタ数閾値（本実施形態においてはＦＩＦＯ段数）を超えている状態である。
【００５０】
さらに、本実施形態のクラスタ統合部１４１は、図７に示すように３つのＦＩＦＯを備えているが、本発明はこれに限定されない。例えば、図８に示すように、調停部２４１５がクラスタ情報移動部１３１〜１３３からクラスタ情報を受け取り、ＦＩＦＯ２４１１へ出力し、統合部２４１６がクラスタ情報を取り出してもよい。また、図９に示すように、スタック３４１１へクラスタ情報を出力してもよい。
【００５１】
また、本実施形態においては、図１に示すようにクラスタ帰属処理部１１１〜１１３に各々対応するクラスタ情報移動部１３１〜１３３を備えるが、図１０に示すようにクラスタ情報移動部は１つであってもよい。この場合、クラスタ情報移動部２３１はクラスタ情報メモリ２２１〜２２３を１つずつ順番に参照し、統合対象とするクラスタを選択すればよい。また本実施形態では処理対象のデータは３分割されてそれぞれについてクラスタリング処理が行われるが、３に限らず、データ分割部１００はＮ個のデータブロックに分割してそれぞれについてクラスタリング処理を行うこともできる。その場合には、クラスタ帰属処理部やクラスタ情報メモリクラスタ情報移動部もデータブロックの数すなわちＮ個必要とされる。
【００５２】
また、本実施形態のクラスタリング処理装置は、画像データを処理対象としたが、本発明はこれに限定されない。背景技術で述べたように、Ｗｅｂアクセス履歴の解析やＰＯＳシステムの売上の解析といった用途においては、夫々ＵＲＬや商品をサンプルとするクラスタリング処理に対して本発明を適用することができる。
【００５３】
［実施形態２］
本発明に関る実施形態２のクラスタリング処理装置について、図１１を用いて説明する。図１１は、本実施形態のクラスタリング処理装置の構成を表す図である。本実施形態のクラスタリング処理装置は、メモリ３００、クラスタ帰属処理プロセッサ３０１〜３０３、全体制御／クラスタ統合プロセッサ３０４、キャッシュメモリ３１１〜３１４、バス３０５、データ入出力Ｉ／Ｆ３０６から構成される。各プロセサは独立したコンピュータであってもよい。クラスタ帰属処理プロセッサ３０１〜３０３、全体制御／クラスタ統合プロセッサ３０４、メモリ３００とデータ入出力Ｉ／Ｆ３０６は、バス３０５を介して接続される。キャッシュメモリ３１１〜３１３は各々クラスタ帰属処理プロセッサ３０１〜３０３に付属し、キャッシュメモリ３１４は全体制御／クラスタ統合プロセッサ３０４に付属する。本実施形態のクラスタリング処理装置は、画像データを構成する各画素をクラスタリング処理対象のサンプルとし、画素の色情報を特徴ベクトルとして処理を行う。以下、図１１を用いて本実施形態のクラスタリング処理装置の動作を説明する。
【００５４】
全体制御／クラスタ統合プロセッサ３０４は、クラスタリング処理対象の画像データをデータ入出力Ｉ／Ｆ３０６を介してメモリ３００の画像データ領域３００１に格納する。次に、該画像データを３つのスライスに分割し、クラスタ帰属処理プロセッサ３０１〜３０３に各々のスライスを割り当て、クラスタ帰属処理を実行させる。
【００５５】
クラスタ帰属処理プロセッサ３０１〜３０３は、実施形態１のクラスタ帰属処理部１１１〜１１３（図１）の動作を表す図２に示したフローチャートと同様のクラスタ帰属処理を行う。各サンプルに付与された仮クラスタ番号は、メモリ３００のクラスタ番号領域３００２に格納される。クラスタ情報と帰属先候補クラスタ数は各々のクラスタ帰属処理プロセッサ３０１〜３０３に付属するキャッシュメモリ３１１〜３１３に格納される。
【００５６】
キャッシュメモリ３１１〜３１３に格納された帰属先候補クラスタ数が、外部から設定された帰属先候補クラスタ数閾値に達すると、クラスタ帰属処理プロセッサ３０１〜３０３は、最も以前に帰属先として識別されたクラスタを統合対象のクラスタとして選択する。なお、統合対象のクラスタを選択する処理の詳細なフローは、実施形態１のクラスタ情報移動部１３１〜１３３の処理フロー（図３）と同一である。選択されたクラスタのクラスタ情報はメモリ３００のクラスタ統合情報領域３００３に移動され、対応するキャッシュメモリから削除される。なお、本発明は帰属先候補クラスタ数閾値の具体的な数値を規定しないが、実施にあたっては例えばキャッシュメモリ３１１〜３１３の容量に基づいて該閾値を設定すればよい。さらに、所定のサンプル数に対するクラスタ帰属処理を行う毎に、統合対象のクラスタを選択してもよい。
【００５７】
全体制御／クラスタ統合プロセッサ３０４は、クラスタ統合情報領域３００３に移動されたクラスタ情報を参照してクラスタ統合処理を行う。具体的には、代表特徴ベクトル同士の距離が最小となる２つのクラスタを識別し、該２つのクラスタを統合し、統合後のクラスタのクラスタ情報を定義して、該クラスタ情報をクラスタ統合情報領域３００３に格納する。さらに、各サンプルに付与された仮クラスタ番号と統合後のクラスタ番号との対応を表すクラスタ番号対応リストを定義し、クラスタ統合情報領域３００３に格納する。
【００５８】
全体制御／クラスタ統合プロセッサ３０４は、クラスタ帰属処理プロセッサ３０１〜３０３が割り当てられたスライス内の全てのサンプルに対する処理を終え、自身がクラスタ統合処理を終えた後、クラスタ情報と各サンプルのクラスタ番号を外部へ出力する。具体的には、クラスタ番号領域３００２から仮クラスタ番号を順次読み出す。クラスタ統合情報領域３００３に格納されているクラスタ番号対応リストを参照し、仮クラスタ番号で示されるクラスタが統合されていれば、データ入出力Ｉ／Ｆ３０６を介して統合後のクラスタ番を外部へ出力する。そうでなければ仮クラスタ番号を外部へ出力する。
【００５９】
以上説明したように、本実施形態のクラスタリング処理装置では、全体制御／クラスタ統合プロセッサ３０４によって分割された画像に対しクラスタ帰属処理プロセッサ３０１〜３０３が各々並列にクラスタリング処理を行う。よって、画像を分割しない場合と比べて、クラスタリング処理が画像分割数に応じて高速化される。
【００６０】
さらに、クラスタ帰属処理プロセッサ３０１〜３０３が統合対象となるクラスタを選択し、選択されたクラスタを全体制御／クラスタ統合プロセッサ３０４が随時統合する。ゆえに、クラスタ帰属処理プロセッサ３０１〜３０３がクラスタリング処理を全て終えてからクラスタ統合する場合と比較して、高速に処理することができる。
【００６１】
なお、本発明においてはクラスタ帰属処理プロセッサ３０１〜３０３と全体制御／クラスタ統合プロセッサ３０４のプロセッサ・アーキテクチャは限定されない。全て同一のアーキテクチャのプロセッサを用いてもよいし、各々の処理に特化したアーキテクチャのプロセッサを用いてもよい。
【００６２】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005539066.tif 000002
【図２】
0005539066.tif 000003
【図３】
0005539066.tif 000004
【図４】
0005539066.tif 000005
【図５】
0005539066.tif 000006
【図６】
0005539066.tif 000007
【図７】
0005539066.tif 000008
【図８】
0005539066.tif 000009
【図９】
0005539066.tif 000010
【図１０】
0005539066.tif 000011
【図１１】
0005539066.tif 000012
【図１２】
0005539066.tif 000013
【図１３】
0005539066.tif 000014