(57)【要約】      （修正有）【課題】高速に画像の領域分割を行うことで、性能保証を実現する。【解決手段】対象画素の特徴量との差が閾値以下の代表特徴量を有するクラスタがあれば該クラスタに前記対象画素を分類し、該当するクラスタがなければ新規のクラスタを生成して該新規のクラスタに前記対象画素を分類する分類手段と、前記分類手段により新規のクラスタを生成する場合、該新規のクラスタの生成の前または後に、クラスタの数が所定の上限値に達しているか否か判定し、達している場合には、少なくとも２つのクラスタを結合する結合手段とを有する。【選択図】図１
2011028459.tif 000002
【特許請求の範囲】
【請求項１】
画像データを画素の単位でクラスタに分類するクラスタリング処理を行う画像処理装置であって、
対象画素の特徴量との差が閾値以下の代表特徴量を有するクラスタがあれば該クラスタに前記対象画素を分類し、該当するクラスタがなければ新規のクラスタを生成して該新規のクラスタに前記対象画素を分類する分類手段と、
前記分類手段により新規のクラスタを生成する場合、該新規のクラスタの生成の前または後に、クラスタの数が所定の上限値に達しているか否か判定し、達している場合には、少なくとも２つのクラスタを結合する結合手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記結合手段は、クラスタの数が所定の上限値に達している場合には、予め指定した回数にわたりクラスタを結合することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記結合手段は、代表特徴量の差が最小である２つのクラスタを結合することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記特徴量は、画素の色を表すベクトルであり、
前記代表特徴量は、当該クラスタに帰属する画素の特徴量の平均であり、
前記分類手段は、前記ベクトル間の距離を前記特徴量の差として分類を行うことを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記代表特徴量は、当該クラスタに帰属する画素の特徴量の平均であり、
前記結合手段は、クラスタを結合する際に、結合後のクラスタに帰属する画素の特徴量の平均を、結合後のクラスタの代表特徴量とすることを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記クラスタリング処理された画像データから、前記分類手段により分類されたクラスタごとの輪郭を抽出する抽出手段を更に有することを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
判定手段と分類手段と結合手段とを有する画像処理装置において、画像データを画素の単位でクラスタに分類する画像処理方法であって、
前記判定手段が、対象画素の特徴量との差が閾値以下の代表特徴量を有するクラスタがあるか判定する判定工程と、
前記分類手段が、前記対象画素の特徴量との差が閾値以下の代表特徴量を有するクラスタがあると判定されれば、該クラスタに前記対象画素を分類し、前記対象画素の特徴量との差が閾値以下の代表特徴量を有するクラスタがないと判定されれば、新規のクラスタを生成して該新規のクラスタに前記対象画素を分類する分類工程と、
前記結合手段が、前記分類工程により新規のクラスタを生成する場合、該新規のクラスタの生成の前または後に、クラスタの数が所定の上限値に達しているか否か判定し、達している場合には、少なくとも２つのクラスタを結合する工程と
を有することを特徴とする画像処理方法。
【請求項８】
コンピュータを、画像データを画素の単位でクラスタに分類するクラスタリング処理を行う画像処理装置として機能させるためのプログラムであって、
対象画素の特徴量との差が閾値以下の代表特徴量を有するクラスタがあれば該クラスタに前記対象画素を分類し、該当するクラスタがなければ新規のクラスタを生成して該新規のクラスタに前記対象画素を分類する分類手段と、
前記分類手段により新規のクラスタを生成する場合、該新規のクラスタの生成の前または後に、クラスタの数が所定の上限値に達しているか否か判定し、達している場合には、少なくとも２つのクラスタを結合する結合手段と
してコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを領域分割するための画像処理方法および画像処理装置およびプログラムに関する。
【背景技術】
【０００２】
文書の電子化は、単に紙上の文書をスキャナ等によって読み取って画像データを得るにとどまらない。例えば、電子化に際しては、文書を構成する文字、図、写真、表等の性質の異なる領域に画像データを分離する。そして、文字領域は文字コード、図領域はベクトルデータ、背景領域や写真領域はビットマップデータ、表領域は構造データなど、各々最も適した形式にデータ化する処理が、文書の電子化処理で行なわれる。
【０００３】
ベクトルデータへの変換手法として、たとえば特許文献１の画像処理装置による変換方法が開示されている。この画像処理装置では、クラスタリング処理により領域分割を行い、各領域の輪郭を抽出し、抽出された輪郭をベクトルデータへ変換する。また、特許文献２では、画像を背景と前景に分離し、前景をベクトルデータに変換し、背景を背景専用の方法でデータ圧縮する画像処理方法が開示されている。また、特許文献３では、スキャナで読み取られた原稿に対してクラスタリング処理を行った場合に含まれるノイズを除去する画像処理方法が開示されている。
【０００４】
ところで、画像をクラスタリング処理により領域分割する方法としてはNearest Neighborクラスタリング法等が知られている。Nearest Neighborクラスタリング法は、処理対象の画素の特徴ベクトルと各クラスタの代表特徴ベクトルとの距離を比較して、最も距離が近い特徴ベクトルを持つクラスタを探索する。探索した最も近い距離が所定の閾値以下であれば、当該クラスタに処理対象の画素を帰属させる。そうでなければ新たなクラスタを定義して、そのクラスタに処理対象の画素を帰属させる。なお、特徴ベクトルとしては色情報（たとえばＲ、Ｇ、Ｂから成る画素値）が使われるのが一般的である。クラスタの代表特徴ベクトルとは、一般的にクラスタの重心が用いられる。即ち、クラスタに帰属する各画素の特徴ベクトル（色情報）の平均値である。
【０００５】
このような手順であるために、Nearest Neighborクラスタリング法では、画素毎に全てのクラスタの代表特徴ベクトルとの距離を算出しなければならない。そこで計算量を減らすべく、例えば特許文献４のカラー画像処理装置が提案されている。特許文献４の装置では、処理対象の画素と隣接画素の特徴ベクトル（色情報）とに基づいてクラスタリングを行う。次に、クラスタ同士の色情報及び幾何学情報に基づいてクラスタのグルーピングを行う。ここで、幾何学情報とは、領域同士の近さを表す座標情報などである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１５８７２５号公報
【特許文献２】特開２００８−２０６０７３号公報
【特許文献３】特開２００６−３４４０６９号公報
【特許文献４】特開平１１−２８８４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献４記載の技術では処理対象の画素と隣接画素の特徴ベクトルの距離が離れている場合は、クラスタを新たに定義し、注目画素をその新たなクラスタに帰属させるので、大量のクラスタが定義される。その為、クラスタのグルーピングに要する処理時間が増大するという問題があった。
【０００８】
また、グルーピング処理時間の増大によりシステムの要求処理時間を満たす性能を保証ができないという問題があった。ここで、システムの要求処理時間とは、例えばスキャナ処理性能すなわちスキャナが１枚の絵を処理するのにかかる時間等、一定の性能を保証するためのクリチカルな処理時間である。
【０００９】
本発明は上記従来例に鑑みて成されたもので、クラスタリング処理をより高速化することで、性能保証が可能な領域分割処理を実現する画像処理方法を提供する事を目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明の画像処理装置は、以下の構成を有する。
【００１１】
画像データを画素単位でクラスタに分類するクラスタリング処理を行う画像処理装置であって、
対象画素の特徴量との差が閾値以下の代表特徴量を有するクラスタがあれば該クラスタに前記対象画素を分類し、該当するクラスタがなければ新規のクラスタを生成して該新規のクラスタに前記対象画素を分類する分類手段と、
前記分類手段により新規のクラスタを生成する場合、該新規のクラスタの生成の前または後に、クラスタの数が所定の上限値に達しているか否か判定し、達している場合には、少なくとも２つのクラスタを結合する結合手段とを有する。
【発明の効果】
【００１２】
本発明によれば、設定された上限値をクラスタ数が越えるとクラスタ同士が統合されるので、１画素あたりに行われる各クラスタとの距離比較の回数が抑制され、計算時間の増大を抑制できる。このため、画像の領域分離処理に要する時間の増大によって、処理時間がシステムの要求処理時間を超過する自体を防止できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態１の画像処理方法の具体的な処理を表すフローチャート
【図２】実施形態２の画像処理方法の具体的な処理を表すフローチャート
【図３】実施形態３の画像処理方法の具体的な処理を表すフローチャート
【図４】実施形態４の画像処理方法の具体的な処理を表すフローチャート
【図５】ベクトルデータ変換装置の構成を表すブロック図
【図６】実施形態１の画像処理方法における距離算出回数を例示する図
【図７】実施形態２の画像処理方法における距離算出回数を例示する図
【図８】実施形態３の画像処理方法における距離算出回数を例示する図
【図９】実施形態４の画像処理方法における距離算出回数を例示する図
【発明を実施するための形態】
【００１４】
［実施形態１］
本発明の実施形態１の画像処理方法と、それを用いたベクトルデータ変換装置の構成について、図５を参照して説明する。
【００１５】
図５はベクトルデータ変換装置の構成を表すブロック図である。図５において、原稿読み取り部５００は原稿を読み取る。具体的には原稿を光学的にスキャンしてその画像を画像センサにより電気的な信号に変換し、それをＡ／Ｄ変換して画像データとして出力する。背景判定部５０１は、原稿読み取り部５００から出力された画像データの各画素が前景であるか背景であるかを判定し、画像データと関連づけた背景フラグを画素毎に出力する背景判定部である。背景を判定する方法については、特許文献２において公知である。また、例えばスキャナにより光学的に読み取られた画像データの場合、紙の色を判別し、その色に基づいて背景画素を判定してもよい。
【００１６】
クラスタリング処理部５０２は、本実施形態の画像処理方法を適用して画像データの領域分割を行う。クラスタリング処理部５０２へは、背景判定部５０１から出力された画像データが１画素ずつラスタスキャン順で入力される。クラスタリング処理部５０２は、領域分割（クラスタリング処理）後の画像データ（各クラスタ領域のデータ）を出力する。輪郭抽出部５０３は、クラスタリング部５０２によって分割された各領域（各クラスタ）の輪郭を抽出する。ベクトルデータ生成部５０４は、輪郭抽出部５０３によって抽出された輪郭を基にベクトルデータを生成する。ベクトルデータ生成部５０４は前景画像データのみをベクトルデータへ変換する。背景生成部５０５は、背景判定部５０１から出力された背景フラグに基づいて、画像データのうち背景以外の画素を背景色で塗りつぶして出力する。背景圧縮部５０６は、背景生成部５０５から出力されたデータを圧縮する。背景圧縮部５０６が圧縮に用いる処理方式は例えばＪＰＥＧ符号化方式があるが、本発明はこれに限定されない。データ結合部５０７は、ベクトルデータ生成部５０４から出力されたベクトルデータと背景圧縮部５０６から出力された圧縮データとを結合し、画像データのデータファイルを出力する。
【００１７】
なお、図５の構成は機能面に着目してブロック化したもので、各機能ブロックに対応するハードウエアブロックによってベクトルデータ変換装置を構成することもできる。また、コンピュータにより図１乃至図４に示す手順のプログラムを実行し、それによって論理的あるいは仮想的に図５の各機能ブロックを実現することもできる。このコンピュータは、プログラムを実行して画像データを処理するＣＰＵやデータやプログラムを記憶するメモリ、プログラムファイルや画像データファイルを格納するストレージなどを有する汎用コンピュータであればよい。このストレージはハードディスクや可搬性の記憶媒体を含む。
【００１８】
＜クラスタリング処理＞
以下、クラスタリング処理部５０２の処理を、図１に示すフローチャートを用いて詳細に説明する。まず、クラスタ数の上限値を表す変数max_num_clusterを設定する（ステップＳ１００）。次に、現在のクラスタ数を表す変数num_clusterを０に初期化する（ステップＳ１０１）。これらの処理は、画像データがクラスタリング処理部５０２に入力されるまでに実行される。したがって、たとえば原稿画像の読み取り開始のトリガによりステップＳ１００，ステップＳ１０１が実行されても良い。
【００１９】
次に、クラスタリング処理対象の画素データ（以下、処理対象画素と記す）の特徴ベクトルＰｃを取得する（ステップＳ１０２）。画像データはラスタスキャン順に入力されるので、ラスタスキャン順で或る画像データの先頭の画素が最初の着目画素となる。なお、本実施形態の画像処理方法では、特徴ベクトルとしてＲＧＢ色空間の画素値を用いる。ただし、本発明はこれに限定されるものではない。例えば、ＹＣＣ色空間の画素値を用いてもよいし、画素値に加えて画素の座標情報を特徴ベクトルに用いてもよい。また特徴を表しているのであればベクトルに限らずスカラー量であってもよい。それらを特徴量と呼ぶことにする。またクラスタを代表する特徴量を代表特徴量と呼ぶ（本実施形態では、特徴量として特徴ベクトルを用いているので、各クラスタを代表する特徴ベクトルを代表特徴ベクトルと呼ぶこととする）。なお、代表特徴量の計算手法としては、例えば各クラスタに帰属している画素の特徴量の平均値を用いればよい。
【００２０】
次に、クラスタ数num_clusterが０であるか否かを判定する（ステップＳ１０３）。クラスタ数が０である場合は（ステップＳ１０３でＹＥＳ）、ステップＳ１１３へ処理を移行する。そうでない場合は（ステップＳ１０３でＮＯ）、ステップＳ１０４へ処理を移行する。
【００２１】
ステップＳ１０４では、ループインデクスｉを初期化する。ループインデクスｉは、着目しているクラスタの番号も示している。クラスタ番号は１を最小値とする整数で表される。また、処理対象画素の特徴ベクトルＰｃと各クラスタの代表特徴ベクトルとの距離のうち、最短の距離を表す変数min_distanceを定数MAX_VALで初期化する。ここで、定数MAX_VALには、特徴空間（色情報）で取り得る最大の距離よりも大きな値を設定する。さらに、処理対象画素の特徴ベクトルＰｃとの距離が最も近いクラスタ（最近傍クラスタ）の番号を表す変数ｎを１に初期化する。最近傍クラスタは、クラスタＣｎと表される。
【００２２】
次に、クラスタＣｉの代表特徴ベクトルＰｉを取得する（ステップＳ１０５）。代表特徴ベクトルＰｉは、たとえば表としてクラスタの番号（識別情報）ｉに関連づけて登録されている。処理対象画素の特徴ベクトルＰｃとクラスタＣｉの代表特徴ベクトルＰｉとの距離Ｄ（Ｐｃ，Ｐｉ）を算出し（ステップＳ１０６）、最短距離min_distanceと比較する（ステップＳ１０７）。距離Ｄ（Ｐｃ，Ｐｉ）が最短距離min_distance以下であれば（ステップＳ１０７でＹＥＳ）、最短距離min_distanceに距離Ｄ（Ｐｃ，Ｐｉ）を代入し、最近傍クラスタ番号ｎにループインデクスｉを代入する（ステップＳ１０８）。その後ステップＳ１０９へ処理を移行する。そうでなければ（ステップＳ１０７でＮＯ）、ステップＳ１０９へ処理を移行する。
【００２３】
ステップＳ１０９でループインデクスｉに１を加算し、ステップＳ１１０では処理対象画素の特徴ベクトルＰｃと全てのクラスタの代表特徴ベクトルとの比較を終えた否かを判定する。ループインデックスｉがクラスタ数num_clusterより大きい場合に、全てのクラスタと比較し終えたと判定できる。全てのクラスタとの比較を終えたと判定した場合（ステップＳ１１０でＹＥＳ）、ステップＳ１１１へ処理を移行する。そうでない場合は（ステップＳ１１０でＮＯ）、ステップＳ１０５へ処理を移行する。ステップＳ１０５からは、次のクラスタに着目して、着目画素の特徴ベクトルＰｃと代表特徴ベクトルＰｉとの距離Ｄを求め、上述したステップＳ１０６以下の処理を繰り返す。
【００２４】
ステップＳ１１１では、最短距離min_distanceと閾値T1とを比較する。最短距離min_distanceが閾値以下である場合は（ステップＳ１１１でＹＥＳ）、処理対象の画素を、処理対象画素の最近傍クラスタＣｎに帰属させ、最近傍クラスタＣｎの代表特徴ベクトルＰｎを更新する（ステップＳ１１２）。ここではたとえば、新たに帰属した画素の特徴ベクトルＰｃを含めて、クラスタＣｎに属する画素の特徴ベクトルの重心を計算する。重心はクラスタＣｎに帰属する画素の特徴ベクトル（色情報）の平均である。最短距離min_distanceが閾値T1より大きい場合（ステップＳ１１１でＮＯ）は、いずれのクラスタも処理対象画素の特徴ベクトルから距離が離れているので、原則的に既存のクラスタには処理対象画素を帰属させない。そこでステップＳ１１３に処理を移行する。処理対象画素の最近傍クラスタＣｎに帰属させるとは、処理対象画素と帰属先のクラスタの識別情報とを関連づけて保存することで実現できる。たとえば、画素毎に関連づけた属性を登録した属性マップを設け、処理対象画素の属性のひとつとして、最近傍クラスタの識別情報（たとえばクラスタ番号）を登録することなどにより、画素をクラスタに帰属させることができる。
【００２５】
ステップＳ１１３では新しいクラスタを定義し、そのクラスタに処理対象の画素を帰属させる。ステップＳ１１３では、新たに生成するクラスタの代表特徴ベクトルを、処理対象画素の特徴ベクトルＰｃとする。さらに、クラスタ数num_clusterに１を加算する。また着目しているクラスタ番号ｎとして、新規追加したクラスタを加えたクラスタ数をいれる。これが新規に生成したクラスタの番号となるためである。
【００２６】
ステップＳ１１４では、新規に生成されたクラスタを加えたクラスタ数num_clusterがステップＳ１００で設定したクラスタ数の上限値max_num_clusterに達したかどうかを判定する。クラスタ数の上限値に達していなければ（ステップＳ１１４でＮＯ）、ステップＳ１１６へ処理を移行する。クラスタ数の上限値に達していれば（ステップＳ１１４でＹＥＳ）、ステップＳ１１５へ処理を移行する。
【００２７】
ステップＳ１１５では、生成されたクラスタ数が上限値に達したので、現時点で存在するクラスタ間の代表特徴ベクトルを比較し、最も近い一組のクラスタを結合する。そして結合されたクラスタの代表特徴ベクトルを更新する。またクラスタが結合されたので、クラスタ数num_clusterから１を減算する。また、着目しているクラスタ番号ｎとして、結合後のクラスタ番号をいれる。その後ステップＳ１１６に分岐する。
【００２８】
ステップＳ１１６では処理対象画像データに含まれる全画素についてクラスタリング処理が終了したか判定する。これはたとえば画像データの末尾に付加されたデータ終了を示す制御コードで判定する。クラスタリング処理部５０１への入力はバイナリデータであるが、画像データのトランスペアレンシを保証するアルゴリズムが採用されていればクラスタリング処理部５０１で制御コードを判定することもできる。しかし、判定は画像データ内の全ての画素を処理した場合は（ステップＳ１１６でＹＥＳ）、クラスタリング処理部５０２の処理を終了する。そうでない場合は（ステップＳ１１６でＮＯ）、ステップＳ１０２へ処理を移行し、後続する画素を新たな処理対象とする。
【００２９】
なおステップＳ１１５でクラスタ同士を結合する処理の詳細としていくつかの例が考えられる。結合されるクラスタの一方がステップＳ１１３で新規に生成したクラスタである場合には、実質的には、結合される他方のクラスタが、処理対象画素が帰属するクラスタとなる。その場合には特に何もする必要はない。これは各例について共通である。結合されるクラスタが新規のクラスタでない場合には、たとえば結合される一方のクラスタＣｊに関連づけて登録された代表特徴ベクトルＰｊを、結合されたことを示す所定の符号と結合される他方のクラスタの番号（識別情報）ｋとの組により置換する。この場合、結合後のクラスタ番号はｋとする。またこの場合、或るクラスタが他のクラスタと結合されていることは、代表特徴ベクトルをそれが登録された表から読み出して初めて判明する。そこでステップＳ１０５では、代表特徴ベクトルを取得した際に、取得した値が、結合されていることを示す場合には、そのクラスタをスキップして次のクラスタに着目しなおして（すなわちインデクスｉを１進めて）、ステップＳ１０５から処理を再開する。このように結合処理を行った場合には、画素と関連づけられたクラスタ識別情報だけでは、あるクラスタが他のクラスタと結合されていることを判定できない。そのためクラスタリング処理の結果を参照する場合にも、クラスタ毎の特徴ベクトルを登録した表を参照し、結合されたクラスタをひとつのクラスタとして処理を行う。あるいは画像データ全体についてクラスタリング処理が終了した後で、結合したことが示されているクラスタを統合する処理をあらためて行っても良い。
【００３０】
また他の例として、結合されるクラスタが新規のクラスタでない場合には、ステップＳ１１５においてクラスタを実体的に結合する処理を行うこともできる。たとえば、画素毎に属性を関連づけた属性マップに登録されたクラスタ番号のうち、結合される一方のクラスタ番号を他方のクラスタ番号ですべて置換する。後者のクラスタ番号が置換後のクラスタ番号となる。そしてその結果欠番となったクラスタ番号を、それよりも大きなクラスタ番号を１ずつ減算することでつめておく。このため、クラスタの結合によって残る方のクラスタ番号は、他方よりも小さい番号であることが望ましい。番号を詰めるための処理量が減るからである。クラスタ番号を詰める処理を省くために、欠番を欠番のまま残す方法もある。ただしこの場合には、その番号が欠番であることを明示する情報の記録が必要となる。また、クラスタ数num_clusterは、ステップＳ１１５で減算する必要はない。このように、様々な方法でクラスタを結合することができる。いずれにせよ、結合前のクラスタ番号を結合後のクラスタ番号に置換することが結合の主たる内容となる。
【００３１】
このようにして画像データに対してクラスタリング処理が施され、画素毎に帰属するクラスタが決定され、画素に関連づけて記憶される。各クラスタが画像の領域分割結果を表すことになる。そしてその画素毎の帰属先のクラスタを参照して、輪郭抽出処理やそれに続くベクトル生成処理が施される。
【００３２】
以上に説明したように、本実施形態の画像処理方法では、生成されるクラスタ数の上限値を予め設定する（ステップＳ１００）。そして、クラスタリング処理中に生成されるクラスタ数がクラスタ数の上限値を超えないように制御する（ステップＳ１１４）。これにより、1画素あたりに行われる各クラスタとの距離比較の回数が、最大でも上限値max_num_clusterとなるように抑制される。よって、従来のNearest Neighborクラスタリング法よりも処理対象画素の特徴ベクトルとクラスタの代表特徴ベクトルとの距離を算出する（以下、「距離算出」と記す）回数を減らすことができる。以下、図６に例示する画像を用いて説明する。
【００３３】
図６（ａ）に示す縦８画素、横２１画素から成る画像をクラスタリングにより領域分割する場合、特にクラスタ数の上限値を設定しなければ５つの領域に分割される。図６（ｂ）は、従来のNearest Neighborクラスタリング法における距離算出回数を画素毎に示したものである。図６（ｃ）は、本実施形態において、図１のステップＳ１００でクラスタ数の上限値を４に設定した場合の、距離算出回数を画素毎に示したものである。従来のNearest Neighborクラスタリング法では、画素６００までは画素毎の距離算出回数は１回だが、新たな色が出現する毎に距離算出回数が増大し、画素６０１以降は画素毎に５回の距離算出が必要となる。図６（ｂ）では、画像データ全体での距離算出回数は７１５回となる。
【００３４】
一方、本実施形態の画像処理方法では、図６（ｃ）に示すように、画素６０１において、クラスタ数が上限値に達した時点で、代表特徴ベクトルの距離が最も近い領域＃４と領域＃５に対応するクラスタが結合される。領域＃５は新たに生成される領域であるから、処理上は文字「Ｄ」を構成する画素が領域＃４に分類されることになる。これにより、クラスタ数の増加が抑えられるため、1画素あたりの距離算出回数が従来よりも削減される。この場合、画素６０１以降における距離算出回数は従来よりも画素毎に一つ減ることになる。よって、図６（ｃ）では、画像データ全体での距離算出回数は５８５回となる。
【００３５】
＜上限値の設定＞
以下、システムの要求処理時間を満たす上限値の設定方法に関して説明する。図５に示したベクトルデータ変換装置のシステム仕様要求の一例を以下に示す。なおこの方法は、本実施形態に限らず、その他の実施形態についても適用可能である。
（１）原稿読み取り部の動作周波数：２００ＭＨｚ
（２）１回当たりの距離算出サイクル数：５サイクル
（単位時間（１秒）で実行可能な距離算出回数：２００Ｍ／５＝４０Ｍ回）
（３）ベクトル化対象画素数（背景判定部による有効画素数）：７６８００
（４）要求処理時間（１枚当たりの処理時間）：１秒
動作周波数（１）は図５の原稿読み取り部５００の処理性能の数値を示している。本実施形態では原稿読み取り部の動作周波数は２００ＭＨｚとなっており、１回あたりの距離算出にかかるサイクル数（２）は５サイクルとなっている。ベクトル化対象画素数（３）は、図５の背景判定部５０１において抽出された、クラスタリング処理部５０２に渡される前景と判断された画素数を示している。本実施形態では、背景判定部５０１により画像サイズ３２０×２４０すなわち画素数７６８００の画像が前景として判定されクラスタリング処理部５０２に渡されるものとする。要求処理時間（４）は図５の原稿読み取り部５００が処理する１枚あたりの処理時間を示している。本実施形態では１枚あたり１秒でクラスタリング処理５０２が実行完了することが求められていることを示している。
【００３６】
上記システム仕様における性能保証（すなわち要求処理時間内にクラスタリング処理を完了すること）を実現するためクラスタ数の上限値の算出方法を以下に説明する。以下は新しいクラスタが毎画素生成され、上限値で設定された個数のクラスタと毎画素比較が行われる最悪のケースを想定している。
【００３７】
クラスタ数の上限値をC_limとすると、クラスタ数の上限値に達するまで、毎回新規クラスタが生成される場合、画素毎に全クラスタとの比較が行われるので、距離算出回数は以下の式[１]で表すことができる。なお上限値C_limは、図１のステップＳ１００で上限値max_num_clusterに設定される値である。
[１]：C_lim * (C_lim - 1)/2
次に、クラスタ数がクラスタの上限値に達した後、全ての画素において全クラスタとの距離の比較およびクラスタ結合が行われる場合、全クラスタとの距離の比較が発生するので、画素毎にC_lim回の距離算出が生じる。それが残りの画素毎に行われるので、距離算出回数は以下の式[２]で表すことができる。
[２]：C_lim * (76800 - C_lim)
更に[２]のクラスタ比較後にクラスタ結合が行われるので、そのための距離算出回数は以下の式[３]で表すことができる。
[３]：C_lim * (C_lim - 1)/2 * (76800 - C_lim)
したがって、本実施形態の７６８００画素から成る画像をクラスタリング処理する場合において、予測されるトータルの距離算出回数の最大値は、式[１]、[２]、[３]を足すと、以下の式[４]で表すことができる。
[４]：C_lim*(C_lim-1)/2+C_lim*(76800-C_lim)+C_lim*(C_lim-1)/2*(76800-C_lim)
要求処理時間（４）が１秒の場合、本実施形態において原稿読み取り部の動作周波数（１）は２００ＭＨｚなので、１秒間に実行可能な距離算出回数は４０，０００，０００回となる。
【００３８】
したがって、システム仕様の要求処理時間（４）を保証するためには以下の式[５]を満たすようにクラスタ数の上限値C_limを設定する必要がある。
[５]：C_lim*(C_lim-1)/2+C_lim*(76800-C_lim)+C_lim*(C_lim-1)/2*(76800-C_lim)＜40,000,000
上記式[５]を満たすC_limの最大の値は３１（距離算出回数：38077889回）となる。したがってC_limを３１に設定すれば、本実施形態におけるシステム仕様の性能は必ず保証されることになる。そこで上記例ではステップＳ１００において上限値max_num_clusterに３１を設定すればよい。
【００３９】
以上より、本実施形態の画像処理方法は、従来のNearest Neighborクラスタリング法よりも高速な領域分割が可能となる。本実施形態の画像処理方法では、原稿読み取り部５００の処理性能と背景判定部５０１において求められる処理対象の画素数から、要求処理時間(４)を満たすようなクラスタリング処理を実現するクラスタ数の上限値を算出している。この上限値の設定により、１画素あたりの距離算出回数が抑制される。本発明によってクラスタリング処理の性能保証が実現されるようにクラスタ数の上限値を設定することが可能となる。
【００４０】
［実施形態２］
本発明の実施形態２の画像処理方法と、それを用いたベクトルデータ変換装置の構成について説明する。本実施形態のベクトルデータ変換装置の構成は、本発明の実施形態１（図５）で説明したものと同一であり、クラスタリング処理部５０２の処理以外は同じである。クラスタリング処理部５０２は本実施形態の画像処理方法を適用して画像の領域分割を行う。以下、本実施形態のクラスタリング処理部５０２の動作を、図２に示すフローチャートを用いて詳細に説明する。なお、図１と同じ処理内容のステップには図１と同じ参照符号を付して説明を省略する。図１と図２とは、図１のステップＳ１１１，Ｓ１１３−Ｓ１１５を、ステップＳ２１１，Ｓ２１３−Ｓ２１５に置換した点で相違する。この相違は、実施形態１では、新規クラスタを生成してから、最も代表特徴ベクトル間の距離が近い２つのクラスタを結合したのに対して、本実施形態では、最も代表特徴ベクトル間の距離が近い２つのクラスタを結合してから新規クラスタを生成する点にある。
【００４１】
さてステップＳ２１１では、クラスタ間の最短距離min_distanceと閾値T1を比較し、最短距離min_distanceが閾値T1より大きい場合は、ステップＳ２１３に処理を移行する。
【００４２】
ステップＳ２１３では、クラスタ数num_clusterがステップＳ１００で設定したクラスタ数の上限値max_num_clusterに達しているかどうかを判定する。クラスタ数の上限値に達していなければ（ステップＳ２１３でＮＯ）、ステップＳ２１５へ処理を移行する。クラスタ数の上限値に達していれば（ステップＳ２１３でＹＥＳ）、ステップＳ２１４へ処理を移行する。
【００４３】
ステップＳ２１４では、生成されたクラスタ数が上限値に達しているので生成されたクラスタ間の代表特徴ベクトルを比較し、最も近いクラスタ同士を結合する。このとき、結合されたクラスタの代表特徴ベクトルを更新する。また、クラスタが結合されたので、クラスタ数num_clusterから１を減算する。なおＳ２１４におけるクラスタの結合処理の内容は、ステップＳ１１５と同様である。
【００４４】
ステップＳ２１５では、新しいクラスタを定義し、その新しいクラスタに処理対象の画素を帰属させる。ステップＳ２１５では、新しいクラスタの代表特徴ベクトルを、処理対象画素の特徴ベクトルＰｃとする。さらに、クラスタ数num_clusterに１を加算する。この後ステップＳ１１６に分岐する。
【００４５】
画像データ内の全ての画素を処理した場合は（ステップＳ１１６でＹＥＳ）、クラスタリング処理部５０２の処理を終了する。そうでない場合は（ステップＳ１１６でＮＯ）、ステップＳ１０２へ処理を移行し、後続する画素を処理対象とする。
【００４６】
以上に説明したように、本実施形態の画像処理方法では、生成されるクラスタ数の上限値を予め設定する（ステップＳ１００）。そして、クラスタリング処理中に生成されるクラスタ数がクラスタ数の上限値を超えないように制御する（ステップＳ２１３）。これにより、1画素あたりに行われる各クラスタとの距離算出回数が抑制される。よって、従来のNearest Neighborクラスタリング法よりも処理対象画素の特徴ベクトルとクラスタの代表特徴ベクトルとの距離算出回数を減らすことができる。以下、図７に例示する画像を用いて説明する。
【００４７】
図７（ａ）に示す縦８画素、横２１画素から成る画像をクラスタリングにより領域分割する場合、特にクラスタ数の上限値を設定しなければ５つの領域に分割される。図７（ｂ）は、従来のNearest Neighborクラスタリング法における距離算出回数を画素毎に示したものである。図７（ｃ）は、本実施形態において、図２のステップＳ１００でクラスタ数の上限値を４に設定した場合の、距離算出回数を画素毎に示したものである。従来のNearest Neighborクラスタリング法では、画素７００までは画素毎の距離算出回数は１回だが、新たな色が出現する毎に距離算出回数が増大し、画素７０１以降は画素毎に５回の距離算出が必要となる。よって、図７（ｂ）では、画像データ全体での距離算出回数は７１５回となる。
【００４８】
一方、本実施形態の画像処理方法では、図７（ｃ）に示すように、画素７０１において、クラスタ数が上限値に達した時点で、代表特徴ベクトルの距離が最も近いクラスタである、領域＃２と領域＃３とに対応するクラスタが結合される。これにより、クラスタ数の増加が抑えられるため、1画素あたりの距離算出回数が従来よりも削減される。この場合、画素７０１以降における距離算出回数は従来よりも画素毎に一つ減ることになる。よって、図７（ｃ）では、画像データ全体での距離算出回数は５８５回となる。
【００４９】
以上より、本実施形態の画像処理方法は、従来のNearest Neighborクラスタリング法よりも高速な領域分割が可能となる。
【００５０】
［実施形態３］
本発明の実施形態３の画像処理方法と、それを用いたベクトルデータ変換装置の構成について説明する。本実施形態のベクトルデータ変換装置の構成は、本発明の実施形態１（図５）で説明したものと同一であり、クラスタリング処理部５０２の処理以外は同じである。クラスタリング処理部５０２は本実施形態の画像処理方法を適用して画像の領域分割を行う。以下、本実施形態のクラスタリング処理部５０２の動作を、図３に示すフローチャートを用いて説明する。なお、図１と同じ処理内容のステップには図１と同じ参照符号を付して説明を省略する。図１と図３とは、図１の処理に対して、図３ではステップＳ３０１およびＳ３１７が追加されている点で相違する。この相違は、実施形態１では、新規クラスタを生成してから、最も代表特徴ベクトル間の距離が近い２つのクラスタを結合したのに対して、本実施形態では、指定した数のクラスタを結合する。
【００５１】
ステップＳ３０１では、クラスタ数が上限値に達した際に、何回クラスタ結合を行うかを示すクラスタ結合数merge_num_clusterを設定する。図３の例ではクラスタ結合数として２がセットされているが、もちろん３以上の数であっても良い。以下、ステップＳ１１５の直後にステップＳ３１７を実行するまで、図１と同様の処理を行う。
【００５２】
そしてステップＳ１１５で２つのクラスタを結合すると、ステップＳ３１７が実行される。ステップＳ３１７では、クラスタ数が上限値に達した際のクラスタ結合処理に関して、ステップＳ３０１で設定したクラスタ結合数merge_num_clusterで示される数のクラスタ結合処理が行われたかどうかを判定する。クラスタ結合数分クラスタ結合が行われていれば（ステップＳ３１７でＹＥＳ）、ステップＳ１１６へ処理を移行する。クラスタ結合数分クラスタ結合が行われていなければ（ステップＳ３１７でＮＯ）、再度クラスタ結合を行うためステップＳ１１５に処理を移行する。そのために例えばステップＳ１１５においてその実行回数をカウントし、実行回数がステップＳ３０１でセットしたクラスタ結合数と等しければステップＳ３１７の判定はＹＥＳとなる。
【００５３】
画像データ内の全ての画素を処理した場合は（ステップＳ１１６でＹＥＳ）、クラスタリング処理部５０２の処理を終了する。そうでない場合は（ステップＳ１１６でＮＯ）、ステップＳ１０２へ処理を移行し、後続する画素を処理対象とする。
【００５４】
以上に説明したように、本実施形態の画像処理方法では、生成されるクラスタ数の上限値を予め設定する（ステップＳ１００）。そして、クラスタリング処理中に生成されるクラスタ数がクラスタ数の上限値を超えないように制御する（ステップＳ１１４）。さらに、クラスタ結合数を設定する（ステップＳ３０１）。そして、クラスタ数が上限値に達した際に行うクラスタ結合をクラスタ結合数だけ繰り返すように制御する（ステップＳ３１７）。これにより、１画素あたりに行われる各クラスタとの距離比較の回数が抑制される。よって、従来のNearest Neighborクラスタリング法よりも処理対象画素の特徴ベクトルとクラスタの代表特徴ベクトルとの距離算出回数を減らすことができる。以下、図８に例示する画像を用いて説明する。
【００５５】
図８（ａ）に示す縦８画素、横２１画素から成る画像をクラスタリングにより領域分割する場合、特にクラスタ数の上限値を設定しなければ５つの領域に分割される。図８（ｂ）は、従来のNearest Neighborクラスタリング法における距離算出回数を画素毎に示したものである。図８（ｃ）は、本実施形態において、図３のステップＳ１００でクラスタ数の上限値を４に設定し、図３のステップＳ３０１でクラスタ結合数を１に設定した場合の、距離算出回数を画素毎に示したものである。図８（ｄ）は、本実施形態において、図３のステップＳ３００でクラスタ数の上限値を４に設定し、図３のステップＳ３０１でクラスタ結合数を２に設定した場合の、距離算出回数を画素毎に示したものである。
【００５６】
従来のNearest Neighborクラスタリング法では、画素８００までは画素毎の距離算出回数は１回だが、新たな色が出現する毎に距離算出回数が増大し、画素８０１以降は画素毎に５回の距離算出が必要となる。よって、図８（ｂ）では、画像データ全体での距離算出回数は７１５回となる。
【００５７】
一方、本実施形態の画像処理方法では、図８（ｃ）に示すように、画素８０１において、クラスタ数が上限値に達した時点で、領域＃４と領域＃５に対応するクラスタが結合される。これにより、クラスタ数の増加が抑えられるため、１画素あたりの距離算出回数が従来よりも削減される。この場合、画素８０１以降における距離算出回数は従来よりも画素毎に一つ減ることになる。よって、図８（ｃ）では、画像データ全体での距離算出回数は５８５回となる。さらに、図８（ｄ）に示すように、クラスタ結合数が２に設定されている場合、画素８０１において、クラスタ数が上限値に達した際に、まず領域＃４と領域＃５とが結合され、さらに領域＃２と領域＃３とが結合される。これによりクラスタ数が３に減らされる。これ以降の画素はすべて、生成済みのクラスタに統合されるので、距離算出回数は４５５回となる。
【００５８】
以上より、本実施形態の画像処理方法は、従来のNearest Neighborクラスタリング法よりも高速な領域分割が可能となる。
【００５９】
［実施形態４］
本発明の実施形態４の画像処理方法と、それを用いたベクトルデータ変換装置の構成について説明する。本実施形態のベクトルデータ変換装置の構成は、本発明の実施形態１（図５）で説明したものと同一であり、クラスタリング処理部５０２の処理以外は同じである。クラスタリング処理部５０２は本実施形態の画像処理方法を適用して画像の領域分割を行う。以下、本実施形態のクラスタリング処理部５０２の動作を、図４に示すフローチャートを用いて説明する。本実施形態は実施形態２と実施形態３とを折衷したものであり、図２の手順においてクラスタ結合を行う際、図３のように指定したクラスタ結合数の分だけ結合処理を行うものである。以下では、図２と同じ処理内容のステップには図２と同じ参照符号を付して説明を省略する。図２と図４とは、図２の処理に対して、図４ではステップＳ４０１およびＳ４１６が追加されている点で相違する。この相違は、実施形態２では、最も代表特徴ベクトル間の距離が近い２つのクラスタを結合した後に新規クラスタを生成するのに対して、本実施形態では、指定した数のクラスタを結合してから新規クラスタを生成する点にある。
【００６０】
ステップＳ４０１では、クラスタ数が上限値に達した際に、何回クラスタ結合を行うかを示すクラスタ結合数merge_num_clusterを設定する。図４の例ではクラスタ結合数として２がセットされているが、もちろん３以上の数であっても良い。以下、ステップＳ２１４の直後にステップＳ４１６を実行するまで、図２と同様の処理を行う。
【００６１】
そして、ステップＳ２１４で２つのクラスタを結合すると、ステップＳ４１６が実行される。ステップＳ４１６では、クラスタ数が上限値に達した際のクラスタ結合処理に関して、ステップＳ４０１で設定したクラスタ結合数merge_num_clusterで示される数のクラスタ結合処理が行われたかどうかを判定する。クラスタ結合数分クラスタ結合が行われていれば（ステップＳ４１６でＹＥＳ）、ステップＳ２１５へ処理を移行する。クラスタ結合数分クラスタ結合が行われていなければ（ステップＳ４１６でＮＯ）、再度クラスタ結合を行うためステップＳ２１４に処理を移行する。そのために例えばステップＳ２１４においてその実行回数をカウントし、その実行回数がステップＳ３０１でセットしたクラスタ結合数と等しければステップＳ４１６の判定はＹＥＳとなる。
【００６２】
画像データ内の全ての画素を処理した場合は（ステップＳ１１６でＹＥＳ）、クラスタリング処理部５０２の処理を終了する。そうでない場合は（ステップＳ１１６でＮＯ）、ステップＳ１０２へ処理を移行し、後続する画素を処理対象とする。
【００６３】
以上に説明したように、本実施形態の画像処理方法では、生成されるクラスタ数の上限値を予め設定する（ステップＳ１００）。そして、クラスタリング処理中に生成されるクラスタ数がクラスタ数の上限値を超えないように制御する（ステップＳ２１３）。さらに、クラスタ結合数を設定する（ステップＳ４０１）。そして、クラスタ数が上限値に達した際に行うクラスタ結合をクラスタ結合数だけ繰り返すように制御する(ステップＳ４１６)。これにより、1画素あたりに行われる各クラスタとの距離比較の回数が抑制される。よって、従来のNearest Neighborクラスタリング法よりも処理対象画素の特徴ベクトルとクラスタの代表特徴ベクトルとの距離算出回数を減らすことができる。以下、図９に例示する画像を用いて説明する。
【００６４】
図９（ａ）に示す縦８画素、横２１画素から成る画像をクラスタリングにより領域分割する場合、特にクラスタ数の上限値を設定しなければ５つの領域に分割される。図９（ｂ）は、従来のNearest Neighborクラスタリング法における距離算出回数を画素毎に示したものである。図９（ｃ）は、本実施形態において、図４のステップＳ１００でクラスタ数の上限値を４に設定し、図４のステップＳ４０１でクラスタ結合数を１に設定した場合の、距離算出回数を画素毎に示したものである。図９（ｄ）は、本実施形態において、図４のステップＳ１００でクラスタ数の上限値を４に設定し、図４のステップＳ４０１でクラスタ結合数を２に設定した場合の、距離算出回数を画素毎に示したものである。
【００６５】
従来のNearest Neighborクラスタリング法では、画素９００までは画素毎の距離算出回数は１回だが、新たな色が出現する毎に距離算出回数が増大し、画素９０１以降は画素毎に５回の距離算出が必要となる。よって、図９（ｂ）では、画像データ全体での距離算出回数は７１５回となる。
【００６６】
一方、本実施形態の画像処理方法では、図９（ｃ）に示すように、画素９０１において、クラスタ数が上限値に達した時点で、領域＃２と領域＃３に対応するクラスタが結合される。これにより、クラスタ数の増加が抑えられるため、1画素あたりの距離算出回数が従来よりも削減される。この場合、画素９０１以降における距離算出回数は従来よりも画素毎に一つ減ることになる。よって、図９（ｃ）では、画像データ全体での距離算出回数は５８５回となる。さらに、図９（ｄ）に示すように、クラスタ結合数が２に設定されている場合、画素９０１において、クラスタ数が上限値に達した際に、まず領域＃２と領域＃３とが結合され、さらに領域＃４と領域＃５とが結合される。これによりクラスタ数が３に減らされる。これ以降の画素はすべて、生成済みのクラスタに統合されるので、距離算出回数は４５５回となる。
【００６７】
以上より、本実施形態の画像処理方法は、従来のNearest Neighborクラスタリング法よりも高速な領域分割が可能となる。
【００６８】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011028459.tif 000003
【図２】
2011028459.tif 000004
【図３】
2011028459.tif 000005
【図４】
2011028459.tif 000006
【図５】
2011028459.tif 000007
【図６】
2011028459.tif 000008
【図７】
2011028459.tif 000009
【図８】
2011028459.tif 000010
【図９】
2011028459.tif 000011