(57)【特許請求の範囲】
【請求項１】
画像を、画素データのクラスタリングにより複数の領域に分割する領域分割装置であって、
前記画像を構成する各画素を、その画素データに基づいて複数の代表データのいずれかへクラスタリングするクラスタリング手段と、
前記クラスタリング手段によるクラスタリングの結果として各代表データに帰属した画素データに基づいて、前記複数の代表データを次のクラスタリングのために更新する更新手段と、
前記クラスタリング手段によるクラスタリングにより生じたデッドクラスタに対応する代表データを、デッドクラスタの状態を解消するために変更する変更手段と、を備えることを特徴とする領域分割装置。
【請求項２】
前記画像について、前記クラスタリング手段によるクラスタリングと前記更新手段による代表データの更新を複数回実行し、
前記変更手段は、前記クラスタリング手段によるクラスタリングの実行のたびに、デッドクラスタに対応する代表データを変更することを特徴とする請求項１に記載の領域分割装置。
【請求項３】
前記変更手段は、前記複数の代表データのそれぞれについてデッドクラスタか否かを判定し、デッドクラスタと判定された代表データを変更することを特徴とする請求項１または２に記載の領域分割装置。
【請求項４】
前記変更手段は、デッドクラスタの数が閾値を越えた場合に前記複数の代表データの全てを変更し、デッドクラスタの数が前記閾値以下の場合には全ての代表データについて変更を行わないことを特徴とする請求項１または２に記載の領域分割装置。
【請求項５】
前記変更手段は、デッドクラスタの数が閾値を越えた場合に前記複数の代表データの全てを変更し、デッドクラスタの数が前記閾値以下の場合にはデッドクラスタと判定された代表データを変更することを特徴とする請求項１または２に記載の領域分割装置。
【請求項６】
前記変更手段は、前記画像に複数の部分領域を設定し、該部分領域に属するデッドクラスタの数が閾値を超える場合に該部分領域に属する全ての代表データを変更することを特徴とする請求項１または２に記載の領域分割装置。
【請求項７】
前記変更手段は、デッドクラスタの数が閾値以下となる部分領域において、デッドクラスタと判定された代表データを変更することを特徴とする請求項６に記載の領域分割装置。
【請求項８】
前記画像について、前記クラスタリング手段によるクラスタリングと前記更新手段による代表データの更新を複数回実行し、
前記変更手段は、前記複数回の実行が完了した後に、デッドクラスタに対応する代表データを変更することを特徴とする請求項１に記載の領域分割装置。
【請求項９】
前記変更手段は、変更の対象となった代表データを、前記画像を構成する画素の画素データを用いて変更することを特徴とする請求項１乃至８のいずれか１項に記載の領域分割装置。
【請求項１０】
前記変更手段は、複数の代表データに対して予め設定されている複数の特定位置のうち、変更の対象となった代表データの位置に対応する特定位置の画素データを用いて、前記変更の対象となった代表データを変更することを特徴とする請求項９に記載の領域分割装置。
【請求項１１】
前記変更手段は、複数の代表データに対して予め設定されている複数の特定位置のうち、変更の対象となった代表データの位置とその周囲の代表データの位置に対応する特定位置の画素データを用いて、前記変更の対象となった代表データを変更することを特徴とする請求項９に記載の領域分割装置。
【請求項１２】
前記クラスタリングは、順次に入力される複数の画像について実行され、
新たな画像のクラスタリングに際しては、その前の画像のクラスタリングの後に前記更新手段が更新した代表データが引き継がれ、
前記複数の特定位置は、前記複数の画像のうちの最初の画像についてクラスタリングを実行する際に設定された初期位置であることを特徴とする請求項１０または１１に記載の領域分割装置。
【請求項１３】
前記変更手段は、複数の代表データに対して予め設定されている複数の特定範囲のうち、変更の対象となった代表データの位置に対応する特定範囲においてランダムに選択された画素データを用いて前記変更の対象となった代表データを変更することを特徴とする請求項９に記載の領域分割装置。
【請求項１４】
前記変更手段は、変更の対象となった代表データを、その周囲の代表データに基づいて変更することを特徴とする請求項１乃至８のいずれか１項に記載の領域分割装置。
【請求項１５】
画像を、画素データのクラスタリングにより複数の領域に分割する領域分割装置による領域分割方法であって、
前記画像を構成する各画素を、その画素データに基づいて複数の代表データのいずれかへクラスタリングするクラスタリング工程と、
前記クラスタリング工程におけるクラスタリングの結果として各代表データに帰属した画素データに基づいて、前記複数の代表データを次のクラスタリングのために更新する更新工程と、
前記クラスタリング工程におけるクラスタリングにより生じたデッドクラスタに対応する代表データを、デッドクラスタの状態を解消するために変更する変更工程と、を有することを特徴とする領域分割方法。
【請求項１６】
請求項１乃至１４のいずれか１項に記載の領域分割装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の領域分割装置及び方法に関する。
【背景技術】
【０００２】
画像をそれぞれの領域の色や模様、明るさなどの属性が同じになるように複数の領域に分割する技術として領域分割（Segmentation）手法が用いられる。これら分割された領域はその後、領域単位で各種画像処理が行えるため、画素単位で画像を処理する場合に比べ演算量を削減することができる。
【０００３】
領域分割の処理を高速化するためにいくつかの手法が提案されている。その中で、色情報（l,a,b）と座標（X,Y）の５次元の情報を用いて画素データをクラスタリングすることで画像を複数の領域に分ける手法が非特許文献１に記載されている。非特許文献１の手法はSimple Linear Iterative Clustering（SLIC）と呼ばれる。はじめにクラスターの中心となる代表データを画像中に格子状に配置する。SLIC手法での代表データは色情報（l,a,b）と座標（X,Y）の５次元の情報を持つ。なお、代表データはシードやクラスター中心（cluster centroid）とも呼ばれる。SLIC手法はクラスタリングの１つであるk-means法をベースにしており、格子状に配置した代表データに画素データをクラスタリングする。そしてクラスタリングされた画素データの５次元の情報を用いて各代表データを更新し、再度クラスタリングする。SLIC手法ではこのようなクラスタリングと代表データの更新を1回以上繰り返して領域分割結果を得る。SLIC手法とk-means法の違いは、代表データにクラスタリングする画素データの範囲を所定の範囲に限定している点にある。クラスタリングにより得られた領域をスーパーピクセル（Superpixel）と呼ぶ。
【０００４】
また、非特許文献１の手法をGraphic Processing Unit（GPU）で高速化することが非特許文献２に記載されている。非特許文献２ではGPUで高速処理を実現するために階層クラスタリング方式（Hierarchical clustering scheme）が提案されており、高解像度画像の高速な領域分割処理を実現している。
【０００５】
また、非特許文献３には、代表データの初期化方法を工夫してk-means処理を高速化することが記載されている。非特許文献３では複数枚の類似する画像を順番に処理する場合、1枚目の画像は通常通り処理し、２枚目以降は前の画像で得られた代表データを使用することで繰り返し回数を減らして高速化することが提案されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】R. Achanta, A. Shaji, K. Smith, A. Lucchi, P. Fua, and S. Ssstrunk, “SLIC Superpixels,” tech. rep., EPFL, EPFL, 2010.
【非特許文献２】C.Y. Ren and I. Reid. gSLIC: a real-time implementation of SLIC superpixel segmentation. University of Oxford, Department of Engineering, Technical Report, 2011.
【非特許文献３】T. Maruyama, “Real-time K-Means Clustering for Color Images on Reconfigurable Hardware”, International Conference on Pattern Recognition, pp.816-819,2006
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献３のような高速化の方法を動画像に適用した場合、カメラを動かしたり、シーンチェンジしたり、画像に大きな変化が生じると代表データに画素データが１つもクラスタリングされない現象が起こる。この現象はデッドクラスタ（Dead Cluster）、Dead centroidあるいはEmpty Clusterなどと呼ばれている（以下、本明細書ではデッドクラスタと呼ぶ）。デッドクラスタが発生すると領域数が減少し、領域分割の精度が劣化してしまう。
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、デッドクラスタの発生による、クラスタリングに使用可能な代表データの減少を抑え、領域分割の精度劣化を低減することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明の一態様による領域分割装置は以下の構成を備える。すなわち、
画像を、画素データのクラスタリングにより複数の領域に分割する領域分割装置であって、
前記画像を構成する各画素を、その画素データに基づいて複数の代表データのいずれかへクラスタリングするクラスタリング手段と、
前記クラスタリング手段によるクラスタリングの結果として各代表データに帰属した画素データに基づいて、前記複数の代表データを次のクラスタリングのために更新する更新手段と、
前記クラスタリング手段によるクラスタリングにより生じたデッドクラスタに対応する代表データを、デッドクラスタの状態を解消するために変更する変更手段と、を備える。
【発明の効果】
【００１０】
本発明によれば、デッドクラスタの発生による、領域分割に使用可能な代表データの減少を抑え、領域分割の精度劣化を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る領域分割装置の機能構成例を示すブロック図。
【図２】実施形態に係る領域分割処理を示すフローチャート。
【図３】実施形態に係る代表データの初期配置と領域分割を説明する図。
【図４】全ての代表データを補正する処理（変形例１）を示すフローチャート。
【図５】一部又は全ての代表データを補正する処理（変形例２）のフローチャート。
【図６】変形例３に係る部分領域を説明する図。
【図７】変形例３に係る部分領域の補正処理を示すフローチャート。
【図８】デッドクラスタの発生過程を説明する図。
【図９】フレーム画像間での補正処理（変形例４）を示すフローチャート。
【図１０】領域分割装置を実現する情報処理装置の構成例を示すブロック図。
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照しながら本発明の好適な実施形態のいくつかについて詳細に説明する。
【００１３】
図１は本実施形態による領域分割装置の機能構成を示すブロック図であり、図２は本実施形態による領域分割処理を示すフローチャートである。図１において、画像入力部１０１は光学系デバイス、光電変換デバイス及びセンサーを制御するドライバー回路／ＡＤコンバーター／各種画像補正を司る信号処理回路／フレームバッファ等により構成される。画像入力部１０１の機能は入力光を画像化し画像データを出力することである。本実施形態で扱う画像データは可視光線を画像化したＲＧＢのカラー画像とする。他にも輝度を表したグレイ画像や、不可視光線の紫外線領域、赤外線領域などを捉えた画像も利用できる。入力画像の種類やフォーマットは本発明を限定するものではない。また、本実施形態では、画像入力部１０１として撮像を行う構成を例示したが、格納装置から処理対象となる画像データ（例えば動画）を読み出す構成であってもよい。
【００１４】
スーパーピクセル生成部１１０は画像入力部１０１で得られた画像を画素データに基づくクラスタリングによって複数の領域に分割（領域分割処理）しスーパーピクセルを生成する。本実施形態では、非特許文献２で用いられているＳＬＩＣをベースにしたスーパーピクセル生成を用いた例を説明する。また、本実施形態では画像特徴として画素データの色情報（R,G,B）を用いた例を説明する。
【００１５】
画像入力部１０１から動画像がフレーム毎に入力され、スーパーピクセル生成部１１０で処理された結果（領域分割の結果）が結果保持部１０２に出力され、保持される。スーパーピクセル生成部１１０では、クラスタリング処理部１１３が画素データを代表データにクラスタリングする。クラスタリングは代表データ初期化部１１１により設定された代表データを初期値として１回以上繰り返される。代表データはその繰り返しの中で代表データ更新部１１４により更新され、代表データ保持部１１２に保持される。２フレーム目以降は前のフレームの画像を領域分割して得られた代表データを引き継いでクラスタリング処理が行われる。
【００１６】
以下、図２のフローチャートを参照して、本実施形態による領域分割処理を詳細に説明する。まず、ステップＳ２０１で、スーパーピクセル生成部１１０は、フレーム画像を順次に処理するためのループを開始する。次にステップＳ２０２で、代表データ初期化部１１１は、クラスタリング処理部１１３が用いる代表データの初期値を設定する。本実施形態では、代表データは色情報（R,G,B）と座標（X,Y）の５次元の情報を持つ。フレーム画像を順次に処理するループの初回では、代表データ初期化部１１１が代表データの初期化を行う。ループの２回目以降（２フレーム目以降）では、代表データ初期化部１１１は、直前のフレームにより得られた代表データを引き継ぐ。
【００１７】
代表データの座標（X,Y）の初期配置の一例を図３（ａ）に示す。図３（ａ）において、３０１は画像を表し、丸い点は各代表データの画像３０１における位置、Sは代表データの間隔を表す。代表データ３０２は画像の左上を原点として、XとYがそれぞれS/2、S/2の位置となる。そして代表データ３０２を起点として間隔Sで格子状に配置される様に各代表データの座標（X,Y）が設定される。また、色情報（R,G,B）には代表データが配置された座標に対応する画像３０１の画素値が設定される。以上の処理で初期化した代表データは代表データ保持部１１２に保存する。なお、図３（ａ）では１２個の代表データが設定されるが、代表データの数はこれに限られるものではない。
【００１８】
ステップＳ２０３において、クラスタリング処理部１１３は繰り返し回数を設定し、繰り返し計算のループを開始する（Ｓ２０３〜Ｓ２１４）。繰り返し計算のループにおいて、クラスタリング処理部１１３は、画像を構成する各画素を、その画素データに基づいて複数の代表データのいずれかへクラスタリングする（ステップＳ２０４〜Ｓ２０７）。また、繰り返し計算のループにおいて、代表データ更新部１１４は、クラスタリングの結果として各代表データに帰属した画素データに基づいて、複数の代表データを次のクラスタリングのために更新する（ステップＳ２０８〜Ｓ２１３）。繰り返し回数には１以上の値が設定される。繰り返し回数を２以上とすることにより、クラスタリング処理部１１３によるクラスタリングと代表データ更新部１１４による代表データの更新が、１つの画像について複数回実行されることになる。
【００１９】
ステップＳ２０４では、クラスタリング処理部１１３は、入力データをクラスタリング処理するループを開始する。入力データは処理対象となっているフレーム画像から得られる画素データである。クラスタリング処理部１１３は、画像の左上からラスタ順に走査してＳ２０５からステップＳ２０６の処理を繰り返すことにより、全ての入力データをクラスタリングする。
【００２０】
ステップＳ２０５において、クラスタリング処理部１１３は、画素データと対応する代表データとの距離Dsを計算する。画素データと代表データの対応関係を図３（ｂ）に示す。３１１は画像データで、丸い点は代表データ、３２１はクラスタリング処理の対象となっている画素データを表す。画素データは周囲の３×３個の代表データと対応付けられている。例えば、画素データ３２１は代表データ３１２から３２０の９つの代表データと対応付けられる。ステップＳ２０５における距離計算は、各画素データとその周囲の３×３個の代表データとの間で行われる。距離Dsの計算式の例を数１に示す。
【００２１】
【数１】
0006463101.tif 000002
数１において、rk,gk,bkはk番目の代表点の色情報（R,G,B）、xk,ykはk番目の代表点の座標（X,Y）である。kは間隔Sで配置した代表点の総数をKとした時、０からK−１の値をとる。また、ri,gi,biはi番目の画素の色情報（R,G,B）、xi,yiはi番目の画素の座標（X,Y）である。iは画像３０１内の画素位置を表すインデックスである。数１のmは色空間上の距離drgbと座標空間上の距離dxyを足し合わせる際の重みを表すパラメータである。
【００２２】
ステップＳ２０６において、クラスタリング処理部１１３は、入力データ（画素iの画素データ）を最近傍の代表データに帰属させる。より具体的には、クラスタリング処理部１１３は、画素iの画素データと周囲の３×３個の代表データとの距離Dsの中から最も距離が小さい代表データを選択し、画素iの画素データを選択された代表データに帰属させる。なお、クラスタリング処理部１１３は、画像３０１に配置された代表データに図３（ｃ）に示すようなインデックス割り振り、画素データごとに選択された代表データのインデックスをラベル値として図３（ｄ）に示すようなラベルマップを生成する。クラスタリング処理部１１３は、生成したラベルマップを結果保持部１０２に送り、領域分割結果として保持させる。
【００２３】
ステップＳ２０７では、全ての入力データについてクラスタリング処理を実行したかを判定する。全ての入力データについてクラスタリング処理を実行済みであれば、処理はステップＳ２０８に進み、入力データをクラスタリング処理するループ（ステップＳ２０４〜Ｓ２０７の処理）を終了する。クラスタリング処理が実行されていない入力データ（画素データ）が存在する場合は、処理はステップＳ２０４に戻り、次の入力データについてクラスタリング処理を開始する。
【００２４】
次に代表データ更新部１１４の処理を説明する。ステップＳ２０８では、代表データの更新のループ（ステップＳ２０８〜Ｓ２１３）が開始される。代表データの更新のループでは、代表データが一つずつ選択され、選択された代表データについて以下の処理が実行される。まず、ステップＳ２０９において、代表データ更新部１１４は、選択された代表データにおいてデッドクラスタが発生したかどうかを判定する。デッドクラスタが発生したことはその代表データに帰属した画素データの数で判定できる。帰属した画素データの数がゼロの場合はデッドクラスタが発生したことを表す。
【００２５】
選択された代表データにデッドクラスタが発生していない場合は、処理はステップＳ２１０に進む。ステップＳ２１０において、代表データ更新部１１４は、選択された代表データに帰属した画素データの色情報（R,G,B）と座標情報（X,Y）に基づいて、その代表データの更新値を得る。本実施形態では、代表データ更新部１１４は、代表データに帰属した画素データから色情報（R,G,B）と座標情報（X,Y）の累積値を計算し画素データの数で除算することによりそれぞれの平均値を求める。代表データ更新部１１４は、こうして得られた色情報（R,G,B）と座標情報（X,Y）の平均値を、色情報（R,G,B）と座標情報（X,Y）の更新値とする。ステップＳ２１２位おいて、代表データ更新部１１４は、ステップＳ２１０で得られた代表データ（更新値）を代表データ保持部１１２に保存する。
【００２６】
一方、デッドクラスタが検出された場合は、処理はステップＳ２０９からステップＳ２１１に進む。代表データ更新部１１４は、クラスタリング処理部１１３によるクラスタリングにより生じたデッドクラスタに対応する代表データを、デッドクラスタの状態を解消するために変更する。なお、以下では、このようなデッドクラスタの状態を解消するための代表データの変更を、ステップＳ２１０における代表データの更新と明瞭に区別するために、補正と称することにする。本実施形態では、ステップＳ２１１において、代表データ更新部１１４は、デッドクラスタとなった代表データを補正する。デッドクラスタとなった代表データには帰属する画素データが存在しないため、同じフレームの画像を処理する限りはデッドクラスタのままであり、実質的に代表データの数が減少してしまう。そこで、本実施形態では、クラスタリングにより生じたデッドクラスタに対応する代表データを、帰属する画素データが存在する代表データになるように、現在処理中のフレーム画像の画素データに基づいて補正する。
【００２７】
この補正処理には、種々の手法が考えられる。本実施形態では、複数の代表データに対して予め設定されている複数の特定位置のうち、補正の対象となった代表データの位置に対応する特定位置の画素データを用いて、補正の対象となった代表データを補正する。たとえば、予め設定されている複数の特定位置として、ステップＳ２０１〜Ｓ２１５の処理を順次に入力されるフレーム画像について実行する際に、ステップＳ２０２で最初のフレーム画像についてクラスタリングのために設定された初期位置が用いられる。すなわち、代表データ更新部１１４は、
・代表データの初期配置（最初のフレーム画像について、ステップＳ２０２で代表データを得るのに用いた配置）を代表データのX、Yに代入し、
・現在処理中の画像データ（フレーム画像）から、上記初期配置の位置の画素データの色情報を取得して、代表データのR、G、Bに代入する、
ことにより代表データを補正する。デッドクラスタの詳細は後述する。次にステップＳ２１２に進み、代表データ保持部１１２に補正した代表データを保存する。
【００２８】
ステップＳ２１３では、全ての代表データについて上述の更新処理が実行されたかが判定される。全ての代表データについて更新処理が実行された場合は、処理はステップＳ２０４に進み、代表データ更新のループ（ステップＳ２０８〜Ｓ２１３）を終了する。他方、更新処理が未実行の代表データが存在する場合は、処理はステップＳ２０９に戻り、代表データ更新部１１４は、次の代表データについて、ステップＳ２０９〜２１１による上述の更新処理を開始する。
【００２９】
ステップＳ２１４では、繰り返し計算のループ（ステップＳ２０３〜Ｓ２１４）の実行回数が所定の繰り返し回数を超えたかどうかを判定する。繰り返し計算のループの実行が所定の繰り返し回数を超えた場合は、繰り返し計算を終了する。すなわち、現在クラスタリング処理の対象となっているフレーム画像について処理を終了し、次のフレーム画像についてクラスタリング処理を実行するべく処理をステップＳ２１５へ進める。他方、繰り返し計算のループの実行が所定の繰り返し回数以下の場合には、処理はステップＳ２０４に戻り、次の繰り返し計算を開始する。次の繰り返し計算では更新された代表データ（ステップＳ２１２で保存された代表データ）を使ってステップＳ２０４からＳ２１３の処理が実行される。所定の繰り返し計算が終了したらステップＳ２１５に進む。この時、結果保持部１０２に保存されているラベルマップがフレーム画像の領域分割結果である。
【００３０】
ステップＳ２１５において、スーパーピクセル生成部１１０はフレーム画像の入力が終わったかどうか判定する。成立する場合は、フレーム画像のループを終了する。成立しない場合はステップＳ２０２に戻り次のフレーム画像の処理を開始する。ステップＳ２０２では代表データの初期値を設定する。ループの２回目以降であるので、代表データ初期化部１１１は、１フレーム前のクラスタリング処理のための繰り返し計算（Ｓ２０３〜Ｓ２１４）における最後のループで更新された代表データを引き継いで設定する。そして引き継いだ代表データを初期値として、ステップＳ２０３からステップＳ２１５の処理が行われる。
【００３１】
次に、デッドクラスタの詳細について、図８を参照して説明する。ここではデッドクラスタの発生する状況とその対策方法について説明する。デッドクラスタは画像全体もしくは一部で大きな変化が起こると発生する。ここでは部分的に起こるデッドクラスタを例に説明する。例えば、フレーム画像間における部分的な変化は、撮影中のエリアを人や車などの物体が横切る様な状況により生じる。具体的に、白い壁を背景とする撮影エリアを黒い物体が通過した例について説明する。
【００３２】
図８（ａ）は一面に白い壁が写っているフレーム画像８０１を領域分割した結果である。８０２に示す丸い点は代表データである。フレーム画像８０１の領域分割が終わった時の各代表データの色情報は白色である。次に黒い物体８１１がフレーム画像８１０に写った時のフレーム画像８１０を領域分割した結果を図８（ｂ）に示す。代表データ８１２が代表データ８０２を引き継いだ場合、代表データ８１２は白色であり周囲の黒色の画素とは数１に示した距離Dsが遠くなり、帰属する画素データが存在しないデッドクラスタになる。したがって、代表データ８１２に対してステップＳ２１１において補正処理が施される。その結果、黒い物体の領域に存在する黒色の画素データは座標距離の近い代表データ８１２にクラスタリングされる。領域分割の結果、代表データ８１２の色情報は黒色になる。
【００３３】
次にフレーム画像８２０の８２１の位置に黒い物体８１１が移動したフレーム画像８２０で領域分割した結果を図８（ｃ）に示す。このようなフレーム画像８２０に対してクラスタリング処理すると白色の画素データと黒色の代表データ８２２は距離が遠くなり、黒色の代表データ８２２には画素データが１つも帰属せずデッドクラスタとなる。したがって、代表データ８２２に対してステップＳ２１１において補正処理が施され、デッドクラスタの状態が解消される。
【００３４】
本実施形態ではデッドクラスタが発生した場合に、対応する代表データを初期配置の位置の画素データで補正する。たとえば、デッドクラスタとなった黒色の代表データ８２２を、初期配置の位置とその位置の画素の画素値に補正することにより、次の繰り返し処理でデッドクラスタを解消させている。図８（ｃ）に示すフレーム画像８２０においてデッドクラスタを補正してクラスタリング処理した結果を図８（ｄ）に示す。代表データ８２２が初期配置の位置に対応する画素値（白色）に補正されたことにより、複数の画素データが帰属するようになり、代表データ８３２によって領域が作られる。また、補正により代表データの位置が初期配置の位置となるため、図８（ｄ）に示すように代表データの分布が偏ることなくデッドクラスタを解消することができる。
【００３５】
以上のように、本実施形態によれば、クラスタリング処理により代表データがデッドクラスタになった場合に、代表データを補正することにより次のクラスタリング処理でデッドクラスタを解消することができる。これによりデッドクラスタの発生が抑制でき、領域分割の精度劣化を最小化することができる。
【００３６】
なお、上記実施形態では、スーパーピクセルの生成にSLICをベースにした手法で説明したが本発明はこれに限定されるものではない。本発明は代表データを用いてクラスタリングして領域分割した際にデッドクラスタが発生するものであれば適用することができる。また、上記実施形態では、画素データが持つ画像特徴として色情報(R,G,B)を用いた例を説明したが本発明はこれに限定されるものではない。たとえば、画像特徴はCIELAB（l,a,b）やYCC(Y,Cb,Cr)のような色空間を使用しても構わない。
【００３７】
また、上記実施形態では、代表データの初期化で格子状に代表データを配置する方法を説明したが、本発明はこれに限定されるものではない。例えば、代表データを千鳥状に配置したり所定の範囲でランダムに配置したり、その他の任意の位置に配置したりしても構わない。また非特許文献１のSLIC方式では格子状に配置する際に被写体のエッジを検出してエッジの値が低い位置に数画素ずらして配置する方法が示されているが、この方法を利用して代表データの初期配置を決定するようにしても構わない。
【００３８】
また、上記実施形態では、デッドクラスタとなった代表データの補正のために、その代表データの特定位置として初期配置を利用したが、これに限られるものではない。たとえば、デッドクラスタとなった代表データのその時の座標を使用してもよい。また、初期配置が所定の範囲でランダムに配置されている場合は、初期位置をメモリに保持しておく必要がある。補正する時に再度初期配置の位置を算出することが難しいためである。なお、デッドクラスタの補正に際しては、各代表データに対して予め設定されている特定範囲（例えば、初期範囲）のうち、変更の対象となった代表データの位置に対応する特定範囲においてランダムに選択された画素データを用いてもよい。あるいは、デッドクラスタの補正に際して格子状や千鳥状の複数種類の配置位置から選択して初期配置として用いるようにしてもよい。
【００３９】
また、上記実施形態では、デッドクラスタが発生した際の補正方法に初期配置の位置の画素データを用いる方法を説明したが本発明はこれに限定されるものではない。例えば、初期配置の位置の注目する画素データとその４近傍または８近傍の画素データとで平均値を求めて補正してもよい。また、代表データ更新部１１４では画像データを参照してデッドクラスタを補正しているが、代表データの初期配置を基にデッドクラスタとなった代表データの近隣の代表データを参照してデッドクラスタを補正するようにしてもよい。この場合、たとえば、近隣の代表データの平均値を求めたり補間したりしてデッドクラスタの代表データを補正すればよい。近隣の代表データとは例えば、４近傍、８近傍又は任意の近隣の代表データがある。
【００４０】
また、上記実施形態では、ステップＳ２０３〜Ｓ２１４の繰り返しのたびに、結果保持部１０２にラベルマップを出力する（ステップＳ２０６）が、本発明はもちろんこれに限定されるものではない。例えば、ステップＳ２０３で設定された繰り返し回数から最後の繰り返し処理のループがわかるので、最終ループでのみクラスタリング処理部１１３が結果保持部１０２にラベルマップを出力するようにしてもよい。また、結果保持部１０２に出力される情報は、ラベルマップに代えて代表データの情報を出力しても構わないし、ラベルマップと代表データの両方の情報を出力しても構わない。
【００４１】
さらに、上記実施形態では、ステップＳ２０３のループに所定の回数を設定する方法を説明したが本発明はこれに限定されるものではない。例えば、代表データの値が収束したかどうかで繰り返し計算の終了を判定するようにしてもよい。収束は、たとえば、更新又は補正の前後の代表データの間のユークリッド距離またはマンハッタン距離を求め、その値が所定の閾値を下回ったかどうかで判定することができる。収束したと判定された場合には、ステップＳ２０３〜Ｓ２１４による繰り返し計算のループを終了し、収束していなければステップＳ２０４に戻って繰り返し計算を継続する。また、繰り返し計算の終了の判定として、デッドクラスタが発生していないことを利用してもよい。この場合、デッドクラスタが発生しなかったら繰り返し計算を終了し、デッドクラスタが発生していればステップＳ２０４に戻って繰り返し計算する。以上のように繰り返しは固定回数でもよいし、収束条件に基づく可変回の繰り返し処理でもよい。
【００４２】
＜変形例１＞
上記実施形態では、クラスタリング処理部によるクラスタリングの実行のたびに複数の代表データのそれぞれについてデッドクラスタか否かを判定し、デッドクラスタとなった代表データについて補正を行う方法を説明した。しかしながら本発明はこれに限定されるものではない。例えば、デッドクラスタとなった代表データの数が所定の閾値を超えた場合に全ての代表データを補正し、閾値以下の場合には全ての代表データを補正しないようにしてもよい。図４に変形例１による処理を説明するためのフローチャートを示す。なお、図２のフローチャートに示される処理と同様の処理には同一の参照番号が付与されている。
【００４３】
各画素データについてクラスタリング処理を終えると、処理はステップＳ２０７からステップＳ４０１へ進む。ステップＳ４０１において、代表データ更新部１１４は、デッドクラスタとなった代表データの数を計数する。次にステップＳ４０２において、代表データ更新部１１４は、ステップＳ４０１で計数したデッドクラスタの数が所定の閾値を超えたかどうかを判定する。デッドクラスタの数が所定の閾値を越えた場合、処理はステップＳ４０３に進み、代表データ更新部１１４は全ての代表データを補正する。本例では、ステップＳ２１１等で説明した方法により各代表データを初期化する。そして処理はステップＳ４０５に進み、代表データ更新部１１４は初期化した代表データを代表データ保持部１１２に保存する。
【００４４】
ステップＳ４０１で計数したデッドクラスタの数が所定の閾値以下の場合は、処理はステップＳ４０２からステップＳ４０４に進む。ステップＳ４０４において、代表データ更新部１１４は各代表データを更新する。この処理はステップＳ２１０と同様である。次にステップＳ４０５に進み、代表データ更新部１１４は更新された代表データを代表データ保持部１１２に保存する。
【００４５】
＜変形例２＞
また、図２に示したようなデッドクラスタとなった代表データごとに補正する処理と、図４に示したような代表データを一括して補正する処理を組み合わせてもよい。すなわち、代表データ更新部１１４は、デッドクラスタの数が閾値を越えた場合に複数の代表データの全てを変更し、デッドクラスタの数が閾値以下の場合にはデッドクラスタと判定された代表データを変更するようにしてもよい。そのような処理の一例について図５のフローチャートを参照して説明する。なお、図５において、図２のフローチャートに示される処理と同様の処理には同一の参照番号が付与されている。また、ステップＳ５０１〜Ｓ５０３は、図４のステップＳ４０１〜Ｓ４０３と同様の処理である。
【００４６】
ステップＳ５０１において、代表データ更新部１１４は、デッドクラスタとなった代表データの数を計数する。次にステップＳ５０２において、代表データ更新部１１４は、ステップＳ５０１で計数したデッドクラスタの数が所定の閾値を超えたかどうかを判定する。デッドクラスタの数が所定の閾値を超える場合は、処理はステップＳ５０３に進み、代表データ更新部１１４は全ての代表データを初期化する処理を行う。そしてステップＳ５０４に進み、初期化した代表データを代表データ保持部１１２に保存する。他方、デッドクラスタの数が所定の閾値以下の場合は、処理はステップＳ２０８に進む。ステップＳ２０８〜Ｓ２１３では、図２に関して上述したように、デッドクラスタではない代表データを更新処理し、デッドクラスタの代表データを補正処理し、更新処理または補正処理により更新された代表データを代表データ保持部１１２に保存する。
【００４７】
＜変形例３＞
変形例１では、処理対象の画像の全体についてデッドクラスタの数を計数し、代表データの一括した補正を行ったが、これに限られるものではない。たとえば、図６に示すように部分領域を設定し、部分領域ごとにデッドクラスタの数を集計し、部分的に代表データを補正するようにしてもよい。すなわち、代表データ更新部１１４は、部分領域に属するデッドクラスタの数が閾値を超える場合に、その部分領域に属する代表データを補正する。ここで、部分領域に属する代表データの補正においては、その部分領域に属する全ての代表データが補正される。なお、変形例２と同様に、デッドクラスタの数が閾値以下の部分領域については、デッドクラスタとなった代表データのみが補正されるような構成が追加されてもよい。６０１は画像データを示し、点線は部分領域を示す。図６（ａ）は等間隔に部分領域を設定した例であり、部分領域６０２が等間隔に横方向に３つ、縦方向に３つ並べられている。なお、部分領域の設定は図６（ｂ）の部分領域６０３、部分領域６０４のように互いに重複させても構わない。
【００４８】
図７は部分領域ごとの補正のフローチャートである。図７において、図２のフローチャートに示される処理と同様の処理には同一の参照番号が付与されている。ステップＳ７０１では、部分領域毎にデッドクラスタとなった代表データの数を計数する。ステップＳ７０２では部分領域を補正するループが開始される。ステップＳ７０３において、代表データ更新部１１４は、複数の部分領域のうちの一つについてデッドクラスタの数が所定の閾値を超えたかどうかを判定する。部分領域内のデッドクラスタの数が所定の閾値を超えた場合は、処理はステップＳ７０４に進み、代表データ更新部１１４は、対象となっている部分領域の代表データを初期化する。そして、ステップＳ７０５において、代表データ更新部１１４は、初期化した代表データを代表データ保持部１１２に保存する。
【００４９】
一方、ステップＳ７０３において、部分領域内のデッドクラスタの数が所定の閾値を超えた場合は、処理はステップＳ７０６に進む。ステップＳ７０６において、代表データ更新部１１４は、ステップＳ２１０で説明したような方法で部分領域に含まれる代表データを更新する。ステップＳ７０７において、代表データ更新部１１４は、ステップＳ７０６で更新された代表データを代表データ保持部１１２に保存する。ステップＳ７０８では部分領域の補正のループの終了が判定される。設定された全ての部分領域について上記処理（代表データの更新、補正）が終了した場合は、処理はステップＳ２１４に進み、未処理の部分領域があれば処理はステップＳ７０３に戻る。
【００５０】
以上、変形例１〜３のように、補正の対象とする代表データはデッドクラスタの発生した代表データに限らず、全ての代表データまたは一部の代表データを選択して補正の対象としてもよい。
【００５１】
＜変形例４＞
図２、図４、図５、図７を用いてデッドクラスタの補正方法について説明したが、何れもデッドクラスタとなった代表データを補正するタイミングは繰り返し計算のループの中であった。すなわち、画像について、クラスタリングと代表データの更新を複数回実行し、それらの実行のたびにデッドクラスタに対応する代表データを補正するようにしていた。しかしながら、代表データを補正するタイミングは繰り返し計算のループの中でなくてもよい。例えば、各フレーム画像の処理の最後で補正しても構わない。すなわち、代表データ更新部１１４は、複数回のクラスタリングと代表データの更新の繰り返しが完了した後に、デッドクラスタに対応する代表データを変更するようにしもよい。図９は図２の処理をベースに、各フレーム画像の処理の最後で代表データを補正する例を示す。図２のフローチャートとはステップＳ２０８より後のフローが異なる。
【００５２】
ステップＳ９０１では全ての代表データを更新し、代表データ保持部１１２に保存する。この処理は、図２のステップＳ２１０，Ｓ２１２と同様である。ステップＳ９０２において、クラスタリング処理部１１３は、たとえば繰り返し回数が所定回数になったか否か、あるいはクラスタリング処理の結果として所定の収束条件が満たされたか否かに基づいて、繰り返し計算のループの終了を判定する。繰り返し計算のループが終了したと判定されると、処理はステップＳ９０３に進み、未終了と判定されると処理はステップＳ２０４に戻る。図２で説明した処理とは異なり、デッドクラスタの判定と補正は画像データの繰り返し計算のループの中では行わず、次のステップＳ９０３からステップＳ９０７の処理で行われる。すなわち、クラスタリング処理部１１３によるクラスタリングと代表データ更新部１１４による代表データの更新を含む繰り返しループの複数回の実行が完了した後に、デッドクラスタに対応する代表データの補正が実行される。
【００５３】
ステップＳ９０３では、デッドクラスタに対処するために代表データのループを開始する。このループにおいて、複数の代表データの一つ一つについてステップＳ９０４〜Ｓ９０６の処理が実行される。まず、ステップＳ９０４において、代表データ更新部１１４は、複数の代表データのうちの一つである選択された代表データについてデッドクラスタの判定を行う。選択された代表データがデッドクラスタであれば処理はステップＳ９０５に進み、そうでなければ処理はステップＳ９０７に進む。
【００５４】
ステップＳ９０５において、代表データ更新部１１４は、デッドクラスタと判定された代表データを補正する。この処理はステップＳ２１１と同様である。そしてステップＳ９０６において、代表データ更新部１１４は、補正された代表データを代表データ保持部１１２に保存する。
【００５５】
＜他の実施形態＞
上記実施形態及び各変形例では、図１に示される機能構成が専用のハードウェアで実現されてもよいし、ＣＰＵが所定のプログラムを実行することにより、すなわちＣＰＵによるソフトウェア処理により実現されてもよい。ソフトウェア処理により実現される場合は、たとえば図１０に示されるような情報処理装置を用いることができる。
【００５６】
図１０は本発明に係る領域分割方法が実施可能な機能を備えた、情報処理装置としてのコンピュータ装置１００１の構成例を示すブロック図である。１００２はＣＰＵであり、装置全体の制御を司る。１００３はＲＯＭ（読み出し専用メモリ）であり、ブートプログラムやＢＩＯＳを記憶している。１００４はＲＡＭ（読み書き可能なメモリ）であり、ＣＰＵ１００２のワークエリアとして利用される。１００５はハードディスクドライブ（ＨＤＤ）であり、ＯＳ、領域分割情報を作成するためのアプリケーション、ならびに、様々なデータを格納する。１００６はキーボード、１００７はマウスであり、ユーザーインターフェースとして機能する。１００８は表示制御部であり、内部にビデオメモリ及び表示コントローラを内蔵し、表示装置１００９を表示駆動する。１００９は表示装置であり、表示制御部１００８からの映像信号を受信し、表示する。１０１０は各種外部デバイスと通信するインターフェースである。以上の構成は、バス１０１１に接続され、相互にデータを通信することが可能となっている。
【００５７】
このようなコンピュータ装置１００１において、たとえば図２のフローチャートに示される処理をＣＰＵ１００２に実行させるプログラムがＲＡＭ１００４にロードされ、ＣＰＵ１００２により実行される。入力画像データはＲＡＭ１００４またはＨＤＤ１００５に格納され、処理される。或いは、インターフェース１０１０を介して不図示のカメラから入力した入力画像データがＲＡＭ１００４に格納され、処理される。代表データ初期化部１１１、クラスタリング処理部１１３、代表データ更新部１１４で行われる各処理はＣＰＵ１００２により実行される。結果保持部１０２はＲＡＭ１００４またはＨＤＤ１００５により実現される。また、代表データ保持部１１２は、ＲＡＭ１００４や不図示のＣＰＵ内のローカルメモリにより実現される。但し、代表データの数が多い場合のためにＨＤＤ１００５を使用するようにしても構わない。
【００５８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００５９】
１０１：画像入力部、１０２：結果保持部、１１０：スーパーピクセル生成部、１１１：代表データ初期化部、１１２：代表データ保持部、１１３：クラスタリング処理部、１１４：代表データ更新部
【図１】
0006463101.tif 000003
【図２】
0006463101.tif 000004
【図３】
0006463101.tif 000005
【図４】
0006463101.tif 000006
【図５】
0006463101.tif 000007
【図６】
0006463101.tif 000008
【図７】
0006463101.tif 000009
【図８】
0006463101.tif 000010
【図９】
0006463101.tif 000011
【図１０】
0006463101.tif 000012