(57)【要約】【課題】  画像の領域分割を高速に実行する。【解決手段】  画像中の注目部分画像に対し、複数の参照部分画像の各々との部分距離を計算する第１の計算工程と、前記注目部分画像に対し、前記複数の参照部分画像の各々との間で、前記部分距離に基づく総合距離を順次計算する第２の計算工程と、前記第２の計算工程により順次計算された総合距離の中から最短の総合距離を選択する選択工程と、前記最短の総合距離に対応する参照部分画像と同一の分類を前記注目部分画像に付与する付与工程とを備え、前記第２の計算工程による順次計算において、計算対象となる参照部分画像に対する前記部分距離が前記最短の総合距離以上であれば、当該参照部分画像に対する総合距離の計算を省略する。【選択図】  図１
2015075963.tif 000002
【特許請求の範囲】
【請求項１】
画像中の注目部分画像に対し、複数の参照部分画像の各々との部分距離を計算する第１の計算工程と、
前記注目部分画像に対し、前記複数の参照部分画像の各々との間で、前記部分距離に基づく総合距離を順次計算する第２の計算工程と、
前記第２の計算工程により順次計算された総合距離の中から最短の総合距離を選択する選択工程と、
前記最短の総合距離に対応する参照部分画像と同一の分類を前記注目部分画像に付与する付与工程とを備え、
前記第２の計算工程による順次計算において、計算対象となる参照部分画像に対する前記部分距離が前記最短の総合距離以上であれば、当該参照部分画像に対する総合距離の計算を省略することを特徴とする画像処理方法。
【請求項２】
前記第２の計算工程による順次計算において、計算対象となる参照部分画像に対する前記部分距離が閾値を越える場合、残りの参照部分画像に対する総合距離の計算を省略することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記閾値を最短の総合距離に基づいて設定することを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記複数の参照部分画像を前記部分距離の短い順に順位を付け、前記第２の計算工程において、当該順位に従って前記総合距離を計算することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理方法。
【請求項５】
前記部分距離が座標空間上の距離を含むことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理方法。
【請求項６】
前記総合距離は、前記部分距離を含む複数の部分距離に基づくことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理方法。
【請求項７】
前記総合距離は、前記複数の部分距離の線形結合であることを特徴とする請求項６に記載の画像処理方法。
【請求項８】
前記複数の部分距離が、座標空間上の距離と、複数の画像の時系列空間上の距離、色空間上の距離、テクスチャ空間上の距離の何れかとを含むことを特徴する請求項１乃至７のいずれか１項に記載の画像処理方法。
【請求項９】
前記画像が距離空間上の複数のブロックに分割され、各ブロックの中に１個の参照部分画像が配置されており、前記第１の計算工程では、各ブロックにインデックス値を割り当て、該インデックス値に基づいて前記部分距離を計算することを特徴する請求項１乃至８のいずれか１項に記載の画像処理方法。
【請求項１０】
前記第１の計算工程では、前記参照部分画像に対応するブロックの位置と前記注目部分画像を含むブロックの位置とに基づいて前記部分距離の計算の順番を決定することを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
前記第２の計算工程による順次計算において、前記最短の総合距離が閾値以下となった場合、残りの参照部分画像に対する総合距離の計算を省略することを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理方法。
【請求項１２】
画像中の注目部分画像に対し、複数の参照部分画像の各々との部分距離を計算する第１の計算手段と、
前記注目部分画像に対し、前記複数の参照部分画像の各々との間で、前記部分距離に基づく総合距離を順次計算する第２の計算手段と、
前記第２の計算工程により順次計算された総合距離の中から最短の総合距離を選択する選択手段と、
前記最短の総合距離に対応する参照部分画像と同一の分類を前記注目部分画像に付与する付与手段とを備え、
前記第２の計算手段による順次計算において、計算対象となる参照部分画像に対する前記部分距離が前記最短の総合距離以上であれば、当該参照部分画像に対する総合距離の計算を省略することを特徴とする画像処理装置。
【請求項１３】
請求項１乃至１１のいずれか１項に記載の画像処理方法をコンピュータに実行させることを特徴とするコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の領域分割に関し、特に画像を属性に基づいて領域分割する画像処理方法及び装置、プログラムに関するものである。
【背景技術】
【０００２】
画像を色やテクスチャ、座標など属性が同じになるように複数の領域に分割する技術として領域分割手法が用いられる。分割された領域は、分割領域単位で符号化処理、画像処理、画像認識が行えるため、様々な画像処理装置において新しい応用の実現が可能になる。近年、組み込みシステムで画像処理を行うことが多くなったため、組み込みシステム向けの高速化した領域分割手法が注目されている。
【０００３】
従来、画像の領域分割に関して様々な手法が提案されている。画素をクラスタリングすることによって画像を領域に分ける手法としては特許文献１と非特許文献１、２、３などがあげられる。
【０００４】
特許文献１はクラスタリングの高速化のアルゴリズムである。この手法では、最初に処理対象画素を近傍画素の属するクラスタの代表データと比較し、色空間上の距離が近ければ近傍画素の属するクラスタに帰属させる。
【０００５】
非特許文献１は従来の「Ｋ−Ｍｅａｎｓクラスタリング」のためのハードウェアを用い、画像内容に基づいた写真検索システムを実装する手法である。距離計算の高速化を並列度の高いハードウェアで実現する。
【０００６】
非特許文献２は「ＳＬＩＣ」というクラスタリングの高速化のアルゴリズムを用い、スーパーピクセルという小領域を生成する手法である。最近傍代表データの探索範囲が限定されたため、計算量が従来の「Ｋ−Ｍｅａｎｓクラスタリング」より少ない。
【０００７】
非特許文献３は非特許文献２の「ＳＬＩＣ」というアルゴリズムを改良し、ＧＰＵ実装をする手法である。最近傍代表データの探索範囲を３×３に限定し、高速化を図っている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第５１２７７３８号公報
【非特許文献】
【０００９】
【非特許文献１】Ｔｓｅ−Ｗｅｉ  Ｃｈｅｎ，  ｅｔ  ａｌ．，  “Ｐｈｏｔｏ  Ｒｅｔｒｉｅｖａｌ  ｂａｓｅｄ  ｏｎ  Ｓｐａｔｉａｌ  Ｌａｙｏｕｔ  ｗｉｔｈ  Ｈａｒｄｗａｒｅ  Ａｃｃｅｌｅｒａｔｉｏｎ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｄｅｖｉｃｅｓ，”  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｍｏｂｉｌｅ  Ｃｏｍｐｕｔｉｎｇ，  ｖｏｌ．  １０，  ｎｏ．  １１．  ｐｐ．  １６４６−１６６０，  Ｎｏｖ．  ２０１１．
【非特許文献２】Ｒａｄｈａｋｒｉｓｈｎａ  Ａｃｈａｎｔａ，  ｅｔ  ａｌ．，  “ＳＬＩＣ  Ｓｕｐｅｒｐｉｘｅｌｓ  Ｃｏｍｐａｒｅｄ  ｔｏ  Ｓｔａｔｅ−ｏｆ−ｔｈｅ−Ａｒｔ  Ｓｕｐｅｒｐｉｘｅｌ  Ｍｅｔｈｏｄｓ，”  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，  ｖｏｌ．  ３４，  Ｎｏ．  １１，  ｐｐ．  ２２７４−２２８２，  Ｎｏｖ．  ２０１２．
【非特許文献３】Ｃ．  Ｙ．  Ｒｅｎ  ａｎｄ  Ｉ．  Ｒｅｉｄ．，  “ｇＳＬＩＣ：  ａ  ｒｅａｌ−ｔｉｍｅ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  ＳＬＩＣ  ｓｕｐｅｒｐｉｘｅｌ  ｓｅｇｍｅｎｔａｔｉｏｎ，”  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｏｘｆｏｒｄ，  Ｄｅｐａｒｔｍｅｎｔ  ｏｆ  Ｅｎｇｉｎｅｅｒｉｎｇ，  ２０１１．
【発明の概要】
【発明が解決しようとする課題】
【００１０】
クラスタリングは画像認識及び機械学習における不可欠な技術である。先に述べたように、クラスタリングアルゴリズムは画像の領域分割においてよく使用されている技術である。クラスタリングを行う時、各クラスタの代表データを求め、画素（以下、入力データと表記）を代表データに割り当てることがある。この場合、入力データと複数の代表候補データの距離を計算して最近傍代表データを探索する必要がある。
【００１１】
組み込みシステムにクラスタリングを実装する場合、入力データと代表候補データの距離計算に必要な計算量により、ハードウェアの並列度や回路規模が変わる。回路規模の削減のため、クラスタリングのアルゴリズムの軽量化、又は計算量の削減に関する様々な対策が望まれる。
【００１２】
特許文献１は注目入力データと近傍入力データの属するクラスタを比較し、閾値で計算を打ち切る。非特許文献１は高速化を並列度の高いハードウェアで実現しており、非特許文献２と非特許文献３はアルゴリズムを高速化させる。しかし、上述した先行技術を利用しても、高解像度の画像データに対して高速にクラスタリングを処理する為には、距離計算の計算量が多いという課題がある。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明によれば、画像処理法法に、画像中の注目部分画像に対し、複数の参照部分画像の各々との部分距離を計算する第１の計算工程と、前記注目部分画像に対し、前記複数の参照部分画像の各々との間で、前記部分距離に基づく総合距離を順次計算する第２の計算工程と、前記第２の計算工程により順次計算された総合距離の中から最短の総合距離を選択する選択工程と、前記最短の総合距離に対応する参照部分画像と同一の分類を前記注目部分画像に付与する付与工程とを備え、前記第２の計算工程による順次計算において、計算対象となる参照部分画像に対する前記部分距離が前記最短の総合距離以上であれば、当該参照部分画像に対する総合距離の計算を省略することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、画像のクラスタリングのための計算量が低減でき、処理が高速化できるという効果がある。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態におけるクラスタリングに関するフローチャートである。
【図２】第１の実施形態における最近傍代表データの探索範囲の説明図である。
【図３】第１の実施形態における代表候補データの距離計算と順番の関係の説明図である。
【図４】第１の実施形態におけるデータ処理装置の構成を示すブロック図である。
【図５】第２の実施形態における代表候補データの距離計算の順位の説明図である。
【図６】第２の実施形態における代表候補データの距離計算と順番の関係の説明図である。
【図７】第３の実施形態におけるクラスタリングに関するフローチャートである。
【図８】第３の実施形態における代表候補データの距離計算と順番の関係の説明図である。
【図９】第４の実施形態におけるクラスタリングに関するフローチャートである。
【図１０】第４の実施形態における代表候補データの距離計算と順番の関係の説明図である。
【図１１】他の実施形態における最近傍代表データの探索範囲の説明図である。
【図１２】他の実施形態における代表候補データの距離計算の順位の説明図である。
【図１３】他の実施形態における代表候補データの距離計算の順位の説明図である。
【図１４】他の実施形態における代表候補データの距離計算の順位の説明図である。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。
【００１７】
＜第１の実施形態＞
＜領域分割のためのクラスタリング＞
図１に本発明のフローチャートを示す。クラスタリングを開始し、画像中の注目部分画像となる第ｉ番目の入力データに対して、式（１）のように五次元のベクトルＸｉを作成する。
【００１８】
【数１】
2015075963.tif 000003
【００１９】
Ｘｉ，１，Ｘｉ，２は座標空間の二次元特徴量であり、画像の縦方向と横方向の座標値を意味する。Ｘｉ，３，Ｘｉ，４，Ｘｉ，５は色空間の三次元特徴量である。
【００２０】
ステップＳ１０１では、代表データを初期化して生成する。具体的には、図２に示した画像２０１を座標空間上のブロックに分割し、各ブロック２０３の中に参照部分画像となる１個の代表データ２０５を配置する。全ての代表データをインデックス化し、ブロックの処理順又は位置順にインデックス値を割り当てることにより、アクセス順番を制御できるようにする。画像２０１の左側の数字と下側の数字は代表データの縦方向のインデックスと横方向のインデックスであり、網点パターンのブロック２０４の中の代表データ２０５の縦方向のインデックスと横方向のインデックスは７と８である。選択した入力データの座標空間と色空間の特徴量のベクトルをその代表データのベクトルとする。第ｊ番目の代表データ２０５に対して、代表データのベクトルＣｊを式（２）に示す。
【００２１】
【数２】
2015075963.tif 000004
【００２２】
Ｃｉ，１，Ｃｉ，２は座標空間の二次元特徴量であり、画像の縦方向と横方向の座標値を意味する。Ｃｉ，３，Ｃｉ，４，Ｃｉ，５は色空間の三次元特徴量である。
【００２３】
ステップＳ１０２では、最大繰り返し回数を設定し、繰り返し計算のループを開始する。
【００２４】
ステップＳ１０３では、入力データのループを開始する。画像の中の入力データＸｉの順番ｉを制御し、ステップＳ１０４からステップＳ１１３までの繰り返しで全ての入力データをクラスタリングする。
【００２５】
ステップＳ１０４では、最短総合距離の初期化と探索範囲の判定をする。具体的には、最短総合距離を後述する総合距離の最大値に指定し、入力データの座標位置によって代表候補データの探索範囲を判定する。入力データの代表候補データとは、該当入力データを割り当てる（帰属させる）候補となるクラスタの代表データである。
【００２６】
探索範囲２０２の幅と高さがそれぞれブロック５個の代表データの例について説明する。注目入力データ２０６が入っているブロックを中心に、最近傍代表データの探索範囲を設定する。この場合、探索範囲は５×５個の座標近傍の代表データである。探索範囲の代表データは縦方向インデックスが５から９までであり、縦方向インデックスが６から１０までである。注目入力データ２０６を含め、ブロック２０４の範囲に入っている全ての入力データの探索範囲２０２は同じである。なお、入力データの位置と探索範囲の代表候補データの関係は最初に固定され、繰り返し処理によって代表データの位置が変わっても、代表データのインデックスは変わらない。
【００２７】
ステップＳ１０５は、最近傍代表データの探索であり、ステップＳ１０６−Ｓ１１２を包括する。その詳細は後程説明する。入力データの最近傍代表データとは、該当入力データとの総合距離が最短な代表データ。即ち、距離空間上一番近い代表データである。
【００２８】
ステップＳ１１３では、ステップＳ１０５による最近傍代表データの探索結果に基づいて、入力データを上述した最近傍代表データの属するクラスタに帰属させる。すなわち、入力データに最近傍代表データと同一の分類を付与する。
【００２９】
ステップＳ１１４では、全ての入力データを処理したかどうかを判定する。成立する場合は、ステップＳ１１５に進み、入力データループを終了する。成立しない場合はステップＳ１０３に戻り、次の入力データの処理を開始する。
【００３０】
ステップＳ１１５では、各代表データに対して、帰属させた入力データのベクトルの平均ベクトルを計算する。その平均ベクトルを該当代表データの新しいベクトルＣｊとし、代表データを更新する。
【００３１】
ステップＳ１１６では、最大繰り返し回数を超えるかどうか、又はクラスタリングの結果が収束したかどうかを判定する。最大繰り返し回数を超えるか収束した場合は、繰り返し計算を終了し、そうでない場合はステップＳ１０３に戻り、次の繰り返し計算を開始する。クラスタリングを終了すると、結果を出力する。
【００３２】
＜色空間上の距離と座標空間上の距離とを独立に扱う距離計算＞
ステップＳ１０５の詳細であるステップＳ１０６−Ｓ１１２を説明する。上述した探索範囲２０２の中の全ての代表候補データとの距離の計算を開始する。
【００３３】
ステップ１０６では、代表候補データのループを開始する。代表候補データＣｊの順番ｊを制御し、色空間上の距離と座標空間上の距離とを独立に扱い、全ての代表候補データを探索する。
【００３４】
ステップＳ１０７では、座標空間で第ｉ番目の入力データと第ｊ番目の代表候補データのユークリッド距離ＤＳ（第一の部分距離）を式（３）で算出する第１の計算を行う。
【００３５】
【数３】
2015075963.tif 000005
【００３６】
ステップＳ１０８では、上述した第一の部分距離が最短の総合距離以上かどうかを判定する。最短の総合距離以上の場合は、ステップＳ１０９−Ｓ１１１を省略し、ステップＳ１１２に進む。最短の総合距離未満の場合は、ステップＳ１０９に進む。
【００３７】
ステップＳ１０９では、色空間で第ｉ番目の入力データと第ｊ番目の代表候補データのユークリッド距離ＤＣ（第二の部分距離）を式（４）で算出する。
【００３８】
【数４】
2015075963.tif 000006
【００３９】
上述のように距離ＤＳと距離ＤＣを順次計算し、第一の部分距離と第二の部分距離の線形結合である距離Ｄ（総合距離）を式（５）で計算する第２の計算を行う。
【００４０】
【数５】
2015075963.tif 000007
【００４１】
Ｗは第一の部分距離の重みである。ステップＳ１１０では、上述した総合距離が最短総合距離以上かどうかを判定する。最短の総合距離以上の場合は、ステップＳ１１１を省略し、ステップＳ１１２に進む。最短の総合距離未満の場合は、ステップＳ１１１に進む。
【００４２】
ステップＳ１１１では、最短総合距離を新たに算出した総合距離で更新し、最近傍代表データのベクトルをＣｊに変える。
【００４３】
ステップＳ１１２では、全ての代表候補データとの比較が終了したかどうかを判定する。比較が終了した場合は、代表データの探索を終了し、比較が終了していない場合はステップＳ１０６に戻り、次の代表候補データとの距離計算を開始する。
【００４４】
＜最近傍代表データの探索の例＞
図３に、本実施形態における最近傍代表データの探索の例を示す。網点パターン３０１は計算済み距離を意味し、斜線パターン３０２は未計算の座標空間上の距離（第一の部分距離）を意味する。黒塗パターン３０３は最短総合距離を意味し、白塗パターン３０４は未計算の色空間上の距離（第二の部分距離）を意味する。
【００４５】
探索範囲３０５−３１０は幅と高さがそれぞれ５個の代表データの例である。プロット３１１−３１６は代表候補データの距離計算の順番と総合距離の関係図である。
【００４６】
探索範囲３０５とプロット３１１は探索が始まる前の状態である。探索範囲３０６の上から１行目の５個の代表候補データの探索が終わった時点の状態をプロット３１２に示す。１番目から５番目までの５個の代表候補データと入力データの総合距離を計算し、最短総合距離が３番目の代表候補データとの距離となっている。
【００４７】
探索範囲３０７の上から２行目の５個の代表候補データの探索が終わった時点の状態をプロット３１３に示す。６番目から１０番目までの５個の代表候補データと入力データの総合距離を計算し、最短総合距離が７番目の代表候補データとの距離となっている。
【００４８】
探索範囲３０８の上から３行目の５個の代表候補データの探索が終わった時点の状態をプロット３１４に示す。１１番目から１３番目までの３個の代表候補データと入力データの総合距離を計算し、最短総合距離が１２番目の代表候補データとの距離となっている。１４番目と１５番目の代表候補データと入力データの第一の部分距離が最短総合距離を超えるので、第二の部分距離を計算する必要がない。
【００４９】
探索範囲３０９の上から４行目の５個の代表候補データの探索が終わった時点の状態をプロット３１５に示す。この５個の代表候補データと入力データは第一の部分距離が最短総合距離を超えるので、第二の部分距離を計算する必要がない。最短総合距離は依然として１２番目の代表候補データとの距離であり、更新される必要がない。
【００５０】
探索範囲３１０の上から５行目の５個の代表候補データの探索が終わった時点の状態をプロット３１６に示す。この５個の代表候補データと入力データは第一の部分距離が最短総合距離を超えるので、第二の部分距離を計算する必要がない。最短総合距離は依然として１２番目の代表候補データとの距離であり、更新される必要がない。全ての探索を終了し、最近傍代表データが１２番目の代表候補データであり、最短総合距離はその代表データとの距離である。
【００５１】
以上説明したように、色空間上の距離と座標空間上の距離を独立に扱うことにより、不要な計算を省くことができるので、処理が高速化する。
【００５２】
＜データ処理装置の構成例＞
図４は、本発明による画像処理方法を実現可能なデータ処理装置の一構成例を示すブロック図である。
【００５３】
データ保存部４０２は、画像データを保持する部分であり、通常はハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲやＤＶＤ等で構成される。あるいは、メモリーカード、ＣＦカード、スマートメディア、ＳＤカード、メモリスティック、ｘＤピクチャーカード、ＵＳＢメモリ等で構成してもよい。データ保存部４０２には画像データの他にも、プログラムやその他のデータを保存することも可能である。あるいは、後述するＲＡＭ４０７の一部をデータ保存部４０２として用いるのであっても良い。またあるいは、後述する通信部４０３により接続した先の機器の記憶装置を、通信部４０３を介して利用するというように仮想的に構成するのであっても良い。
【００５４】
表示部４０４は、画像処理前、画像処理後の画像を表示、あるいはＧＵＩ等の画像を表示する装置で、一般的にはＣＲＴや液晶ディスプレイなどが用いられる。あるいは、ケーブル等で接続された装置外部のディスプレイ装置であっても構わない。
【００５５】
入力部４０１は、ユーザーからの指示や、データを入力する装置で、キーボードやポインティング装置を含む。なお、ポインティング装置としては、マウス、トラックボール、トラックパッド、タブレット等が挙げられる。あるいは、本データ処理装置を例えば公知のデジタルカメラ装置やプリンタなどの機器に適用する場合には、ボタンやダイヤル等で構成されるのであっても良い。また、キーボードをソフトウェアで構成（ソフトウェアキーボード）し、ボタンやダイヤル、あるいは先に挙げたポインティングデバイスを操作して文字を入力するように構成するのであっても良い。
【００５６】
また、あるいは公知のタッチスクリーン装置のように、表示部４０４と入力部４０１が同一装置であっても良い。その場合、タッチスクリーンによる入力を入力部４０１の入力として扱う。
【００５７】
ＣＰＵ４０５は本実施形態に係る主要な処理（ステップＳ１０１−Ｓ１１６）を実行すると共に本装置全体の動作を制御する。ＲＯＭ４０６とＲＡＭ４０７は、その処理に必要なプログラム、データ、作業領域などをＣＰＵ４０５に提供する。後述する処理に必要なプログラムがデータ保存部４０２に格納されている場合や、ＲＯＭ４０６に格納されている場合には、一旦ＲＡＭ４０７に読み込まれてから実行される。またあるいは通信部４０３を経由して装置がプログラムを受信する場合には、一旦データ保存部４０２に記録した後にＲＡＭ４０７に読み込まれるか、直接通信部４０３からＲＡＭ４０７に直接読み込まれてから実行される。
【００５８】
ＣＰＵ４０５で、ＲＡＭ４０７に書き込まれた画像データを読み出して本発明に係るクラスタリングを実行し、その処理結果を再びＲＡＭ４０７に書き込む。クラスタリングの結果に基づき、画像認識をＣＰＵ４０５で行う。ＣＰＵ４０５により処理された画像認識の結果は、ＲＡＭ４０７に保存されるか、通信部４０３を介して外部装置に送信される。
【００５９】
なお、図４においては、ＣＰＵが１つ（ＣＰＵ４０５）だけである構成だが、これを複数設けるような構成にしても良い。
【００６０】
通信部４０３は、機器間の通信を行うためのＩ／Ｆである。これは例えば、公知のローカルエリアネットワーク、ＵＳＢ、ＩＥＥＥ１２８４、ＩＥＥＥ１３９４、電話回線などの有線による通信方式であっても良い。あるいは赤外線（ＩｒＤＡ）、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＵＷＢ（Ｕｌｔｒａ  ｗｉｄｅ  Ｂａｎｄ）等の無線通信方式であっても良い。
【００６１】
なお、図４では入力部４０１、データ保存部４０２、表示部４０４が全て１つの装置内に含まれるような図を示しているが、あるいはこれらの部分が公知の通信方式による通信路で接続されており、全体としてこのような構成となっているのであっても構わない。
【００６２】
システム構成については、上記以外にも様々な構成要素が存在するが、本発明の主眼ではないのでその説明は省略する。
【００６３】
＜本実施形態の変型＞
上記実施形態では、入力データの特徴量が式（１）で表されるＸｉ，１，Ｘｉ，２という一枚の画像の座標空間の二次元特徴量について説明した。しかしながら、入力データの特徴量は、一枚の画像の座標空間の二次元特徴量に限定される訳でなく、座標空間と複数枚の画像を処理する時の時系列空間の任意の次元の特徴量でも良い。
【００６４】
入力データの特徴量は式（１）で表されるＸｉ，３，Ｘｉ，４，Ｘｉ，５という色空間の三次元特徴量について説明したが、色空間に限定される訳でなく、テクスチャ空間やテクスチャと色の複合空間の特徴量であっても良い。また、特徴量は三次元に限定される訳でなく、任意の次元の特徴量であっても良い。
【００６５】
探索範囲２０２は幅と高さがそれぞれ５個の代表データの例について説明したが、探索範囲の幅は５個の代表データに限定される訳でなく、任意の探索範囲であっても良い。
【００６６】
式（３）と式（４）は座標空間と色等特徴空間でのユークリッド距離について説明したが、ユークリッド距離に限定される訳でなく、任意の距離尺度であっても良い。
＜第２の実施形態＞
第２の実施形態では、第１の実施形態と異なる部分のみを説明する。
【００６７】
第１の実施形態では最近傍代表データの探索を行う時に、代表候補データの距離計算の順番を考慮していなかったが、第２の実施形態では代表候補データとの距離計算の順番に順位を付ける。代表候補データの距離計算の順番の順位は、各ブロックの中心の座標と探索範囲の中心の座標のマックス距離順に付けた。各代表候補データは、マックス距離が小さければ小さいほど計算対象となる順位が高い。
【００６８】
マックス距離Ｄ０は式（６）で計算する。
【００６９】
【数６】
2015075963.tif 000008
【００７０】
Ｓｉ，１，Ｓｉ，２は、第ｉ番目の探索範囲の中心Ｓｉの座標空間の二次元特徴量であり、Ｂｊ，１，Ｂｊ，２は第ｊ番目ブロックの中心Ｂｊの座標空間の二次元特徴量である。なお、代表データＣｊとの距離計算の順番の順位をブロックＢｊによって決定する。ブロックの中心Ｂｊは代表データＣｊと違い、繰り返し計算によって座標が変わることがない。
【００７１】
図５に示した代表候補データの距離計算の順番の順位５０１は探索範囲２０２に対応する。ブロックの中の数字は探索時の代表候補データの距離計算の順番の順位を意味する。数字が小さければ小さいほど順位が高い。順位が１の代表候補データから探索を開始し、次は順位が２の代表候補データの何れから探索する。全ての順位が２の代表候補データの探索を終えると、順位が３の代表候補データの何れから探索する。
【００７２】
本実施形態は、実施形態１とステップＳ１０６−Ｓ１１２における距離計算の順番が異なる。
【００７３】
＜スパイラルな最近傍代表データの探索の例＞
図６に、本実施形態における最近傍代表データの探索の例を示す。網点パターン６０１は計算済み距離を意味し、斜線パターン６０２は未計算の座標空間上の距離（第一の部分距離）を意味する。黒塗パターン６０３は最短総合距離を意味し、白塗パターン６０４は未計算の色空間上の距離（第二の部分距離）を意味する。
【００７４】
探索範囲６０５−６０７は幅と高さがそれぞれ５個の代表データの例である。プロット６０８−６１０は代表候補データの距離計算の順番と総合距離の関係図である。
【００７５】
探索範囲６０５とプロット６０８は探索が始まる前の状態である。順位５０１が１となる１個代表候補データを探索した後、順位５０１が２となる８個の代表候補データを探索する。探索範囲６０６で探索した代表データに線を引き、代表候補データの探索が終わった時点の状態をプロット６０９に示す。１番目から４番目までの４個の代表候補データと入力データの総合距離を計算し、最短総合距離が４番目の代表候補データとの距離となっている。５番目から９番目までの代表候補データと入力データの第一の部分距離が最短総合距離を超えるので、第二の部分距離を計算する必要がない。
【００７６】
順位５０１が３となる残りの１６個の代表候補データを探索する。探索範囲６０７で探索した代表データに線を引き、代表候補データの探索が終わった時点の状態をプロット６１０に示す。この１６個の代表候補データと入力データは第一の部分距離が最短総合距離を超えるので、第二の部分距離を計算する必要がない。最短総合距離は依然として４番目の代表候補データとの距離であり、更新される必要がない。
【００７７】
以上の説明のように、代表候補データの距離計算の順番に順位を付けることにより、スパイラルな最近傍代表データの探索が行われる。図４と比べて早く最近傍代表データを見つけることができるので、第二の部分距離の計算回数が減り、処理が高速化する。
【００７８】
＜第３の実施形態＞
第３の実施形態では、第１の実施形態と異なる部分のみを説明する。
【００７９】
図７に第３の実施形態におけるフローチャートを示す。ステップＳ７０１では、ステップＳ１０７で算出した第一の部分距離が最短総合距離以上かどうかを判定する。最短総合距離以上である場合は、ステップＳ１０９−Ｓ１１１を省略し、ステップＳ７０２に進む。最短総合距離未満の場合は、ステップＳ１０９に進む。
【００８０】
ステップＳ７０２では、ステップＳ７０１で算出した第一の部分距離が閾値を越えるかどうかを判定する。閾値を越える場合は、これ以降、残りの代表データを対象とする処理を省略し、最近傍代表データの探索を終了する。閾値以下の場合はステップＳ１１２に進む。
【００８１】
＜スパイラルな最近傍代表データの探索で距離計算を打ち切る例＞
図８に本実施形態における代表データの探索の例を示す。網点パターン８０１は計算済み距離を意味し、斜線パターン８０２は未計算の座標空間上の距離（第一の部分距離）を意味する。黒塗パター８０３は最短総合距離を意味し、白塗パターン８０４は未計算の色空間上の距離（第二の部分距離）を意味する。
【００８２】
探索範囲８０５−８０６は幅と高さがそれぞれ５個の代表データの例である。プロット８０７−８０８は代表候補データの距離計算の順番と総合距離の関係図である。
【００８３】
探索範囲８０５とプロット８０７は探索が始まる前の状態である。順位５０１が１となる１個の代表候補データを探索した後、順位５０１が２となる４個の代表候補データを探索する。探索範囲８０６で探索した代表データに線を引き、代表候補データの探索が終わった時点の状態をプロット８０８に示す。１番目から４番目までの４個の代表候補データと入力データの総合距離を計算し、最短総合距離が４番目の代表候補データとの距離となっている。ここで、５番目の代表候補データと入力データとの第一の部分距離が最短総合距離以上であり、閾値を超えたとすると、第二の部分距離を計算する必要がない。さらに残りの２０個の代表候補データを探索する必要もない。
【００８４】
以上の説明のように、第一の部分距離が十分大きい時、閾値で距離計算を打ち切ることにより、処理が高速化する。
【００８５】
なお、ステップＳ７０２の閾値は固定値に限定される訳でなく、動的に変更しても良い。動的な変更の例として、最短総合距離と比率している閾値Ｔｊを式７で算出する。
【００８６】
【数７】
2015075963.tif 000009
【００８７】
Ｘｉは第ｉ番目の入力データのベクトルであり、Ｃｍは第ｍ番目の代表候補データのベクトルである。Ｆは予め定められた最短総合距離に対する重みである。
【００８８】
＜第４の実施形態＞
第４の実施形態では、第１の実施形態と異なる部分のみを説明する。
【００８９】
図９に第４の実施形態におけるフローチャートを示す。ステップＳ９０１では、最短総合距離をＳ１０９で算出した総合距離に更新し、最近傍代表データのベクトルをＣｊに変える。
【００９０】
ステップＳ９０２では、更新した最短総合距離が閾値以下かどうかを判定する。閾値を超える場合はステップＳ１１２に進む。閾値以下である場合は、最近傍候補データの探索を終了する。
【００９１】
＜スパイラルな最近傍候補データの探索で距離計算を打ち切る例＞
図１０に本実施形態における最近傍候補データの探索の例を示す。網点パターン１００１は計算済み距離を意味し、斜線パターン１００２は未計算の座標空間上の距離（第一の部分距離）を意味する。黒塗パター１００３は最短総合距離を意味し、白塗パターン１００４は未計算の色空間上の距離（第二の部分距離）を意味する。
【００９２】
探索範囲１００５−１００６は幅と高さがそれぞれ５個の代表データの例である。プロット１００７−１００８は代表候補データの距離計算の順番と総合距離の関係図である。
【００９３】
探索範囲１００５とプロット１００７は探索が始まる前の状態である。順位５０１が１となる１個の代表候補データを探索した後、順位５０１が２となる３個の代表候補データを探索する。探索範囲１００６で探索した代表データに線を引き、代表候補データの探索が終わった時点の状態をプロット１００８に示す。１番目から４番目までの４個の代表候補データと入力データの総合距離を計算し、４番目の代表候補データとの距離が最短総合距離となっている。ここで最短総合距離が閾値以下であるとすると、残りの２１個の代表候補データを探索する必要がない。
【００９４】
以上の説明のように、総合距離が十分小さい時、閾値で距離計算を打ち切ることにより、処理が高速化する。
【００９５】
なお、ステップＳ９０２の閾値は固定値に限定される訳でなく、動的に変更しても良い。また、代表候補データの距離計算の順番は第２の実施形態で説明した順位を付けても良い。
【００９６】
＜他の実施形態＞
＜探索範囲の幅と高さがそれぞれ偶数個の代表データの実施形態１＞
実施形態１では、探索範囲の幅と高さがそれぞれ奇数個の代表データである例について説明したが、奇数個の代表データに限定される訳でなく、探索範囲の幅と高さがそれぞれ偶数個の代表データの場合にも同様に適用可能である。
【００９７】
探索範囲の幅と高さがそれぞれ偶数個の代表データの実施形態を図１１に示した。実施形態１で説明したように、図１１に示した画像１１０１を座標空間上のブロックに分割し、各ブロック１１０３の中に１個の代表データ１１０５を配置する。全ての代表データをインデックス化し、ブロックの処理順又は位置順にインデックス値を割り当てることにより、アクセス順番を制御できるようにする。画像１１０１の左側の数字と下側の数字は代表データの縦方向のインデックスと横方向のインデックスである。選択した入力データの座標空間と色空間の特徴量のベクトルをその代表データのベクトルとする。
【００９８】
注目入力データ１１０６に一番近いブロックの角を中心に、代表候補データの探索範囲１１０２を設定する。探索範囲の代表データは縦方向インデックスが３から１０までであり、縦方向インデックスが５から１２までである。注目入力データ１１０６を含め、矩形１１０４の範囲に入っている全ての入力データに対して、探索範囲１１０２が同じである。
【００９９】
探索範囲１１０２は幅と高さがそれぞれ８個の代表データの例について説明したが、探索範囲の幅は８個の代表データに限定される訳でなく、任意の探索範囲であっても良い。
【０１００】
＜探索範囲の幅と高さがそれぞれ偶数個の代表データの実施形態２−４＞
実施形態２−４では、探索範囲の幅と高さがそれぞれ奇数個の代表データである例について説明したが、奇数個の代表データに限定される訳でなく、探索範囲の幅と高さがそれぞれ偶数個の代表データの場合にも同様に適用可能である。
【０１０１】
図１２に示した代表候補データの距離計算の順番の順位１２０１は探索範囲１１０２に対応する。ブロックの中の数字は探索時の代表候補データの順位を意味する。数字が小さければ小さいほど順位が高い。順位が１の代表候補データから探索を開始し、次は順位が２の代表候補データの何れから探索する。全ての順位が２の代表候補データの探索を終えると、順位が３の代表候補データの何れから探索する。全ての順位が３の代表候補データの探索を終えると、順位が４の代表候補データの何れから探索する。
【０１０２】
探索範囲１１０２は幅と高さがそれぞれ８個の代表データの例について説明したが、探索範囲の幅は８個の代表データに限定される訳でなく、任意の探索範囲であっても良い。
【０１０３】
＜マンハッタン距離順による距離計算の順番の順位の実施形態２−４＞
実施形態２−４では、マックス距離順による距離計算の順番の順位付けの例について説明したが、マックス距離順に限定される訳でなく、マンハッタン距離順に距離計算の順番の順位付けも同様に適用可能である。
【０１０４】
図１３に代表候補データの距離計算の順番の順位を示す。順位１３０１は探索範囲の幅と高さがそれぞれ奇数個の代表データの例であり、順位１３０２は探索範囲の幅と高さがそれぞれ偶数個の代表データの例である。代表候補データの距離計算の順番の順位は、各ブロックの座標中心と探索範囲の座標中心のマンハッタン距離順に付けた。マンハッタン距離が小さければ小さいほど順位が高い。
【０１０５】
マンハッタン距離Ｄ１は式（８）で計算する。
【０１０６】
【数８】
2015075963.tif 000010
【０１０７】
Ｓｉ，１，Ｓｉ，２は第ｉ番目の探索範囲の中心Ｓｉの座標空間の二次元特徴量であり、Ｂｊ，１，Ｂｊ，２は第ｊ番目ブロックの中心Ｂｊの座標空間の二次元特徴量である。なお、代表データＣｊとの距離計算の順番の順位をブロックＢｊによって決定する。ブロックの中心Ｂｊは代表データＣｊと違い、繰り返し計算によって座標が変わることがない。
【０１０８】
探索範囲１３０１と１３０２は幅と高さがそれぞれ９個の代表データと８個の代表データの例について説明したが、任意の探索範囲であっても良い。
【０１０９】
＜任意の距離順による距離計算の順番の順位の実施形態２−４＞
上述した実施形態と実施形態２では、マックスとマックス距離順に距離計算の順番の順位付けの例について説明したが、マックスとマックス距離順に限定される訳でなく、ユークリッドの距離順による距離計算の順番の順位付けも同様に適用可能である。
【０１１０】
図１４に代表候補データの距離計算の順番の順位を示す。順位１４０１は探索範囲の幅と高さがそれぞれ奇数個の代表データの例であり、順位１４０２は探索範囲の幅と高さがそれぞれ偶数個の代表データの例である。代表候補データの距離計算の順番の順位は、各ブロックの座標中心と探索範囲の座標中心のユークリッド距離順に付けた。ユークリッド距離が小さければ小さいほど順位が高い。
【０１１１】
ユークリッド距離Ｄ２は式（９）で計算する。
【０１１２】
【数９】
2015075963.tif 000011
【０１１３】
Ｓｉ，１，Ｓｉ，２は第ｉ番目の探索範囲の中心Ｓｉの座標空間の二次元特徴量であり、Ｂｊ，１，Ｂｊ，２は第ｊ番目ブロックの中心Ｂｊの座標空間の二次元特徴量である。なお、代表データＣｊとの距離計算の順番の順位をブロックＢｊによって決定する。ブロックの中心Ｂｊは代表データＣｊと違い、繰り返し計算によって座標が変わることがない。
【０１１４】
探索範囲１４０１と１４０２は幅と高さがそれぞれ９個の代表データと８個の代表データの例について説明したが、任意の探索範囲であっても良い。
【０１１５】
ユークリッド距離順による距離計算の順番の順位付けの例について説明したが、ユークリッド距離順に限定される訳でなく、任意の距離順による距離計算の順番の順位付けも同様に適用可能である。
【０１１６】
＜第一の部分距離が座標空間上の距離以外の実施形態１−４＞
実施形態１−４では、第一の部分距離が座標空間上の距離の例について説明したが、座標空間に限定される訳でない。第一の部分距離は、座標空間上の距離以外の距離（色空間上の距離、テクスチャ空間上の距離、複数の画像の時系列空間上の距離等）であっても良い。
【０１１７】
＜第一の部分距離が一部の距離の実施形態１−４＞
実施形態１−４では、第一の部分距離が座標空間上の距離の例について説明したが、座標空間に限定される訳でなく、第一の部分距離が一部の座標空間上の距離、又は一部の座標以外の距離であっても良い。
【０１１８】
＜任意の空間上のブロック分割の実施形態１−４＞
実施形態１−４では、入力データを座標空間上のブロックに分割する例について説明したが、座標空間に限定される訳でなく、入力データを任意の距離空間上のブロックに分割しても良い。
【０１１９】
以上説明した各実施形態によれば、組み込みシステムで実施する場合は、計算量が低減すると共に、代表データを格納するメモリへのアクセス帯域が低減する。特定用途向け集積回路を設計する場合は、クラスタリングの高速化と回路規模の縮小と消費電力の低減も可能になるという効果がある。
【０１２０】
＜その他の実施形態＞
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、コンピュータ読み取り可能なプログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１２１】
更に、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【０１２２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図１】
2015075963.tif 000012
【図２】
2015075963.tif 000013
【図３】
2015075963.tif 000014
【図４】
2015075963.tif 000015
【図５】
2015075963.tif 000016
【図６】
2015075963.tif 000017
【図７】
2015075963.tif 000018
【図８】
2015075963.tif 000019
【図９】
2015075963.tif 000020
【図１０】
2015075963.tif 000021
【図１１】
2015075963.tif 000022
【図１２】
2015075963.tif 000023
【図１３】
2015075963.tif 000024
【図１４】
2015075963.tif 000025