特許第6858089号(P6858089)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

特許6858089連結領域ラベリング装置、方法及びプログラム
<>
  • 特許6858089-連結領域ラベリング装置、方法及びプログラム 図000002
  • 特許6858089-連結領域ラベリング装置、方法及びプログラム 図000003
  • 特許6858089-連結領域ラベリング装置、方法及びプログラム 図000004
  • 特許6858089-連結領域ラベリング装置、方法及びプログラム 図000005
  • 特許6858089-連結領域ラベリング装置、方法及びプログラム 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6858089
(24)【登録日】2021年3月25日
(45)【発行日】2021年4月14日
(54)【発明の名称】連結領域ラベリング装置、方法及びプログラム
(51)【国際特許分類】
   G06T 7/187 20170101AFI20210405BHJP
   G06T 7/11 20170101ALI20210405BHJP
【FI】
   G06T7/187
   G06T7/11
【請求項の数】10
【全頁数】12
(21)【出願番号】特願2017-132234(P2017-132234)
(22)【出願日】2017年7月5日
(65)【公開番号】特開2019-16112(P2019-16112A)
(43)【公開日】2019年1月31日
【審査請求日】2019年7月9日
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】陳 軍
(72)【発明者】
【氏名】野中 敬介
(72)【発明者】
【氏名】三功 浩嗣
(72)【発明者】
【氏名】内藤 整
【審査官】 ▲広▼島 明芳
(56)【参考文献】
【文献】 国際公開第2018/020623(WO,A1)
【文献】 Ondrej Stava, et al.,Chapter 35 - Connected Component Labeling in CUDA,GPU Computing Gems Emerald Edition,米国,2011年,pp.569-581,URL,https://doi.org/10.1016/B978-0-12-384988-5.00035-8
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 − 7/90
(57)【特許請求の範囲】
【請求項1】
2値画像を分割した各ブロックにおいて連結領域ラベリングを行い、各ブロックで完成したラベルマップを得たうえで各ラベルマップを前記2値画像の全体におけるものとして統合した第1ラベルマップを得る局所マージ部と、
前記第1ラベルマップにおいて、前記分割したブロックの境界にある部分を対象として連結領域ラベリングを行うことで第2ラベルマップを得る境界分析部と、
前記第2ラベルマップの全体を対象として連結領域ラベリングを行うことで前記2値画像の全体に対する連結領域ラベリング結果としての第3ラベルマップを得る更新部と、を備え
前記局所マージ部は、
2値画像を分割した各ブロック内で画素にラベル付与して第1ブロックラベルマップとする初期化部と、
前記第1ブロックラベルマップの各々においてブロック内で所定方向に隣接し且つ2値属性が共通の画素の一方にもう一方のラベルを更新して割り当てて第2ブロックラベルマップを得るスキャン部と、
前記第2ブロックラベルマップの各々において行方向及び列方向でのラベル統合を行うことによりラベルを更新して第3ブロックラベルマップを得る粗統合部と、
前記第3ブロックラベルマップの各々にユニオンファインド法を適用してラベルを更新して、前記各ブロックで完成したラベルマップとしての第4ブロックラベルマップを得る局所ユニオンファインド部と、
前記第4ブロックラベルマップの各々を統合して前記2値画像の全体配置となしたものとして前記第1ラベルマップを得る統合部と、を備えることを特徴とする連結領域ラベリング装置。
【請求項2】
前記初期化部は、各ブロック内での画素位置に応じたラベル付与により前記第1ラベルマップを得ることを特徴とする請求項に記載の連結領域ラベリング装置。
【請求項3】
前記初期化部は、各ブロック内でのラスタスキャン順の画素位置に応じたラベル付与により前記第1ラベルマップを得ることを特徴とする請求項に記載の連結領域ラベリング装置。
【請求項4】
前記スキャン部は、前記第1ブロックラベルマップの各々において行方向に隣接し且つ2値属性が共通の画素の一方にもう一方のラベルを更新して割り当て、且つ、前記第1ブロックラベルマップの各々において列方向に隣接し且つ2値属性が共通の画素の一方にもう一方のラベルを更新して割り当てることにより前記第2ブロックラベルマップを得ることを特徴とする請求項1ないし3のいずれかに記載の連結領域ラベリング装置。
【請求項5】
前記粗統合部は、ルート探索の際の経路を片方向の行方向と片方向の列方向とに限定したルート探索を行うことにより、前記第3ラベルマップを得ることを特徴とする請求項1ないし4のいずれかに記載の連結領域ラベリング装置。
【請求項6】
前記境界分析部は、前記第1ラベルマップにおいて、前記分割したブロックの境界にある部分を対象としてユニオンファインド法を適用することで前記第2ラベルマップを得ることを特徴とする請求項1ないしのいずれかに記載の連結領域ラベリング装置。
【請求項7】
前記境界分析部は、前記分割したブロックの境界にある部分を1つ以上の行方向境界領域及び列方向境界領域に分けたうえでユニオンファインド法を適用することを特徴とする請求項に記載の連結領域ラベリング装置。
【請求項8】
前記更新部は前記第2ラベルマップの全体にユニオンファインド法を適用することにより前記第3ラベルマップを得ることを特徴とする請求項1ないしのいずれかに記載の連結領域ラベリング装置。
【請求項9】
コンピュータを、連結領域ラベリング装置であって、
2値画像を分割した各ブロックにおいて連結領域ラベリングを行い、各ブロックで完成したラベルマップを得たうえで各ラベルマップを前記2値画像の全体におけるものとして統合した第1ラベルマップを得る局所マージ部と、
前記第1ラベルマップにおいて、前記分割したブロックの境界にある部分を対象として連結領域ラベリングを行うことで第2ラベルマップを得る境界分析部と、
前記第2ラベルマップの全体を対象として連結領域ラベリングを行うことで前記2値画像の全体に対する連結領域ラベリング結果としての第3ラベルマップを得る更新部と、を備え
前記局所マージ部は、
2値画像を分割した各ブロック内で画素にラベル付与して第1ブロックラベルマップとする初期化部と、
前記第1ブロックラベルマップの各々においてブロック内で所定方向に隣接し且つ2値属性が共通の画素の一方にもう一方のラベルを更新して割り当てて第2ブロックラベルマップを得るスキャン部と、
前記第2ブロックラベルマップの各々において行方向及び列方向でのラベル統合を行うことによりラベルを更新して第3ブロックラベルマップを得る粗統合部と、
前記第3ブロックラベルマップの各々にユニオンファインド法を適用してラベルを更新して、前記各ブロックで完成したラベルマップとしての第4ブロックラベルマップを得る局所ユニオンファインド部と、
前記第4ブロックラベルマップの各々を統合して前記2値画像の全体配置となしたものとして前記第1ラベルマップを得る統合部と、を備える連結領域ラベリング装置として機能させることを特徴とするプログラム。
【請求項10】
2値画像を分割した各ブロックにおいて連結領域ラベリングを行い、各ブロックで完成したラベルマップを得たうえで各ラベルマップを前記2値画像の全体におけるものとして統合した第1ラベルマップを得る局所マージ段階と、
前記第1ラベルマップにおいて、前記分割したブロックの境界にある部分を対象として連結領域ラベリングを行うことで第2ラベルマップを得る境界分析段階と、
前記第2ラベルマップの全体を対象として連結領域ラベリングを行うことで前記2値画像の全体に対する連結領域ラベリング結果としての第3ラベルマップを得る更新段階と、を備え
前記局所マージ段階は、
2値画像を分割した各ブロック内で画素にラベル付与して第1ブロックラベルマップとする初期化段階と、
前記第1ブロックラベルマップの各々においてブロック内で所定方向に隣接し且つ2値属性が共通の画素の一方にもう一方のラベルを更新して割り当てて第2ブロックラベルマップを得るスキャン段階と、
前記第2ブロックラベルマップの各々において行方向及び列方向でのラベル統合を行うことによりラベルを更新して第3ブロックラベルマップを得る粗統合段階と、
前記第3ブロックラベルマップの各々にユニオンファインド法を適用してラベルを更新して、前記各ブロックで完成したラベルマップとしての第4ブロックラベルマップを得る局所ユニオンファインド段階と、
前記第4ブロックラベルマップの各々を統合して前記2値画像の全体配置となしたものとして前記第1ラベルマップを得る統合段階と、を備えることを特徴とする連結領域ラベリング方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、高速計算が可能な連結領域ラベリング装置、方法及びプログラムに関する。
【背景技術】
【0002】
連結領域ラベリング(Connected Components Labeling; 以下、CCLと略記する)は、2次元あるいは3次元グリッドにおいて与えられた2値データに対して、当該2値データが共通しており互いに隣接しているもの同士が共通の領域に属するものとして、領域に固有IDを割り当てるタスクであり、コンピュータグラフィックス分野を含め広範に応用されている。CCLの手法は例えば以下のように、各種のものが提案されている。
【0003】
非特許文献1では、並列処理が可能なマルチパスの手法として、Label Equivalence法(以下、LE法と略記する)を提案している。非特許文献2は、CCLのGPU(グラフィック処理装置)へ最適化された実装として、Union Find法(以下、UF法と略記する)の2次元ブロックにおける並列処理を提案している。非特許文献3では、2次元ブロックに代えて直線ベースでのUF法の並列処理を提案している。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Hawick, Kenneth A., Arno Leist, and Daniel P. Playne. "Parallel graph component labelling with GPUs and CUDA." Parallel Computing 36.12 (2010): 655-678.
【非特許文献2】Oliveira, V. M. A., and R. A. Lotufo. "A study on connected components labeling algorithms using GPUs." SIBGRAPI. Vol. 3. 2010.
【非特許文献3】Yonehara, Kensaku, and Kunio Aizawa. "A line-based connected component labeling algorithm using GPUs." Computing and Networking (CANDAR), 2015 Third International Symposium on. IEEE, 2015.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、以上のようなCCLの各手法は、高速化に関して改善の余地を残すものであった。非特許文献1の手法は繰り返し処理を伴い、各回の処理を行うためにGPUが読み込むカーネル関数は小さいもので済むものの、繰り返し回数が多くなってしまい、高速化が十分ではないという課題があった。非特許文献2や3の手法では、繰り返しは存在しないか、存在したとしても少ない回数であるものの、カーネル関数が大きくなってしい、高速化が十分ではないという課題があった。
【0006】
上記の従来技術の課題に鑑み、本発明は、高速計算が可能な連結領域ラベリング装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明は連結領域ラベリング装置であって、2値画像を分割した各ブロック内で画素にラベル付与して第1ブロックとする初期化部と、前記第1ブロックの各々においてブロック内で所定方向に隣接し且つ2値属性が共通の画素の一方にもう一方のラベルを更新して割り当てて第2ブロックを得るスキャン部と、前記第2ブロックの各々において行方向及び列方向でのラベル統合を行うことによりラベルを更新して第3ブロックを得る粗統合部と、前記第3ブロックの各々にユニオンファインド法を適用してラベルを更新して第4ブロックを得る局所ユニオンファインド部と、を備え、前記第4ブロックの各々を統合して前記2値画像の全体配置となしたものに基づいて、前記2値画像の連結領域ラベリング結果を得ることを特徴とする。また、本発明は、連結領域ラベリング方法であって、2値画像を分割した各ブロックにおいて連結領域ラベリングを行い、各ブロックで完成したラベルマップを得たうえで各ラベルマップを前記2値画像の全体におけるものとして統合した第1ラベルマップを得る局所マージ段階と、前記第1ラベルマップにおいて、前記分割したブロックの境界にある部分を対象として連結領域ラベリングを行うことで第2ラベルマップを得る境界分析段階と、前記第2ラベルマップの全体を対象として連結領域ラベリングを行うことで前記2値画像の全体に対する連結領域ラベリング結果としての第3ラベルマップを得る更新段階と、を備えることを特徴とする。さらに、本発明は、コンピュータを、連結領域ラベリング装置であって、2値画像を分割した各ブロックにおいて連結領域ラベリングを行い、各ブロックで完成したラベルマップを得たうえで各ラベルマップを前記2値画像の全体におけるものとして統合した第1ラベルマップを得る局所マージ部と、前記第1ラベルマップにおいて、前記分割したブロックの境界にある部分を対象として連結領域ラベリングを行うことで第2ラベルマップを得る境界分析部と、前記第2ラベルマップの全体を対象として連結領域ラベリングを行うことで前記2値画像の全体に対する連結領域ラベリング結果としての第3ラベルマップを得る更新部と、を備える連結領域ラベリング装置として機能させるプログラムであることを特徴とする。
【発明の効果】
【0008】
本発明によれば、連結領域ラベリングの計算を高速に実施することができる。
【図面の簡単な説明】
【0009】
図1】一実施形態に係る連結領域ラベリング装置の機能ブロック図である。
図2】主に初期化部から局所ユニオンファインド部までの処理に関して模式例を示す図である。
図3】スキャン部の処理に関して模式例を示す図である。
図4】主に統合部以降の処理に関して模式例を示す図である。
図5】本発明による高速化の例を示す図である。
【発明を実施するための形態】
【0010】
図1は、一実施形態に係る連結領域ラベリング装置10(以下、CCL装置とする)の機能ブロック図である。図示する通りCCL装置10は、初期化部11、スキャン部12、粗統合部13、局所ユニオンファインド部14(以下、局所UF部とする)及び統合部15を備える局所マージ部1、境界分析部2並びに更新部3を備え、2値画像を読み込んでこの順番で各部における処理を行うことにより2値画像の連結領域ラベリング結果を出力する。各部1〜3の処理の概略は以下の通りである。なお、以下では「2値画像」として説明するが、本発明における「2値画像」はいわゆるマスク画像をも含むものである。
【0011】
局所マージ部1は、CCL処理対象となる2値画像を所定サイズのブロックに分割したうえで、当該ブロックごとにCCLを実施し、ブロックごとにCCLが完了した状態のラベルマップを得たうえで、各ブロックとしてのラベルマップを統合して当初の2値画像の全体におけるラベルマップへと変換したものとしての第1ラベルマップを境界分析部2へと出力する。ここで、局所マージ部1において各ブロックごとにCCLを実施することで各ブロック単位ではCCLが完了した状態のものが得られることとなるが、当初の2値画像の全体ではCCLは完了した状態にはないため、境界分析部2以降の処理をさらに継続することによって第1ラベルマップをさらに更新していくことにより、2値画像全体でのCCLが完了した状態のラベルマップが得られることとなる。
【0012】
本発明においては特に、局所マージ部1でのブロック単位のCCLの最終結果を得る局所UF部14での処理に先立って、高速計算が可能なスキャン部12及び粗統合部13においてCCLの最終結果には至ってないものの最終結果にある程度近い状態のラベルマップを得ておくようにし、当該状態のラベルマップを局所UF部14において処理することで高速にブロック単位での最終的なラベルマップを得るようにすることができる。また、境界分析部2では2値画像全体に対応する第1ラベルマップにおいてブロック境界の部分のみを対象としてCCL処理を行なうことで、高速に第1ラベルマップを第2ラベルマップへと更新することができる。さらに、更新部3では既に2値画像の全体におけるCCLの最終結果にある程度近い状態にある第2ラベルマップを対象としてCCL処理を行なうことで、高速に2値画像の全体に対するCCL結果としての第3ラベルマップを得ることができる。
【0013】
以下、各部1〜3の詳細を説明する。図2〜4は当該説明のための、処理されるデータや処理内容に関する模式例をそれぞれ示すものであり、以下の説明において適宜、参照する。なお、図2は主に初期化部11から局所UF部14までの処理に関して、図3はスキャン部12の処理に関して、図4は主に統合部15以降の処理に関して、模式例を示す図である。まず、局所マージ部1は上記概略説明した処理を行なうために、その各部11〜15が以下のような処理を行なう。
【0014】
初期化部11は、CCL処理対象となる所定サイズ縦N×横Mの2値画像を読み込み、まず、当該2値画像を所定サイズの第1ブロックに分割する。例えば、縦にn分割、横にm分割することで縦N/n×横M/mのサイズとなった各第1ブロックをn×m個得る。初期化部11はさらに、各第1ブロックにおける画素にラベルを付与したうえで、当該ラベル付与された各第1ブロックラベルマップをスキャン部12へと出力する。当該ラベル付与は、各第1ブロックラベルマップ内において異なる画素には異なるラベルが付与されるように、所定方式で行うことができる。例えば、各第1ブロック内の画素に関してラスタスキャン順で一意の数値ラベルを付与してよい。当該ラスタスキャン順のラベル付与は、各画素位置(i,j)に関してその位置(i,j)から所定規則でただちに算出されるものとして、高速な付与が可能である。
【0015】
図2の例では[1]に2値画像P0の例として、縦16×横16の画像の例が各画素をセル領域として表現することにより示されており、ここでグレー色のセルは2値属性の一方(例えば前景)である画素であり、白色のセルは2値属性のもう一方(例えば背景)である画素を意味している。[1]では初期化部11が当該2値画像P0を縦、横共に2分割して合計4個の第1ブロックラベルマップB1,B2,B3,B4を得た例が示されている。さらに、図2の例では[2]に、第1ブロックラベルマップの一つであるブロックラベルマップB1に関して、初期化部11が各画素位置のラスタスキャン順の数値ラベルを付与することで、ラベル付与された第一ブロックラベルマップB11を得たことが示されている。その他の第1ブロックB3〜B4に関しても同様に、ラベル付与された第1ブロックB13〜B14(不図示)が得られることとなる。以下、図2及び図3の説明では4分割された4個の第1ブロックラベルマップB1,B2,B3,B4のうち1個の第1ブロックラベルマップB1に関して継続して実施される処理を説明するが、その他の第1ブロックラベルマップについても同様の処理が行われる。
【0016】
なお、当該ブロックラベルマップ単位での各部11〜14の処理は、GPUを用いて並列処理が可能である。
【0017】
スキャン部12は、各第1ブロックラベルマップ内で所定方向に隣接し且つ2値属性が共通の画素の一方にもう一方のラベルを更新して割り当てて各第2ブロックラベルマップを得たうえで、粗統合部13へと出力する。具体的には、次のような行スキャン及び列スキャンにより逐次的にラベル更新を行う。まず、第1ブロックラベルマップの各行に関して、行方向(ラスタスキャン方向)のスキャンを行い、各画素から見てその右隣りの画素の2値属性(前景・背景のいずれに該当するか)が自身と共通であれば、当該右隣りの画素のラベルを自身のラベルで上書きして更新するという処理を行う。さらに継続して同様に、第1ブロックの各列に関して全く同様に、列方向(ラスタスキャン方向)のスキャンを行い、各画素から見てその下隣りの画素の2値属性(前景・背景のいずれに該当するか)が自身と共通であれば、当該下隣りの画素のラベルを自身のラベルで上書きして更新するという処理を行う。
【0018】
図3の[2-1]では当該スキャンの模式例として、図2の第1ブロックラベルマップB11の1行目領域B1R10に当該行スキャンを行うことで、1行目領領域のラベルがその下に示す領域B1R11のように更新されることが示されている。当該更新処理は[2-2]に示すように、更新前の領域B1R10を行方向に1個だけずらして2行並べて、2値属性が同じであるものが並んでいれば矢印に示すように対応ラベルを上書きすることで実現することができる。このような行スキャンが第1ブロックの各行について実施された後、同様の列スキャンが第1ブロックラベルマップの各列について実施される。図3の[2-3]では第1ブロックB11に関して全て(8回)の行スキャンが実施された後の状態の1列目領域B1C10に関して、列スキャンが実施されることでその左に示す領域B1C11のように更新されることが示されている。当該更新も[2-4]に示すように、更新前の領域B1C10を列方向に1個だけずらして2行並べて、2値属性が同じであるものが並んでいれば矢印に示すように対応ラベルを上書きすることで実現することができる。
【0019】
図2の[3]には、以上のようなスキャン部12による処理を[2]に示す第1ブロックラベルマップB11に適用して得られる第2ブロックラベルマップB12が示されている。なお、第2ブロックラベルマップB12内の矢印やラベル数値に付与した下線は、スキャン部12以降の説明のためのものである。
【0020】
粗統合部13では、各第2ブロックラベルマップに対して行方向及び列方向でのラベル統合を行うことによりラベルを更新して得られる各第3ブロックラベルマップを、局所UF部14へと出力する。
【0021】
粗統合部13では具体的には、第2ブロックラベルマップ内の各位置(各画素のセル[i](i=0, 1, 2, ...))に関して継続的に、以下の処理(1)及び(2)を実施することにより、第2ブロックラベルマップを更新した第3ブロックラベルマップを得る。
(1)各セル[i]に関して、自身と連結関係にあるセルであって、ルートとなっているセルを探索する。(2)当該セル[i]のラベルを、上記探索されたルートとなっているセルのラベルによって上書きする。
【0022】
なお、上記の(1)において連結関係とは自身のセル[i]と当該探索対象となるセルとの間に、所定方向の経路上において2値属性が共通の一連の連結したセルがあることをいう。すなわち、自身のセル[i]から当該探索対象となるセルへと向かって、隣接関係にある上下左右(4-connectivity)のうちの左又は上(2-connectivity)のいずれかのセルを順次経由して移動する経路を考えた際に、当該移動経路上に現れる全てのセルの2値属性が自身のセル[i]の2値属性と同じとなるような経路が存在する場合、連結関係がある。また、上記の(1)においてルートとなっているセルとは、当該セルに現時点において付与されているラベルが初期化部11で付与されたラベル(ラスタスキャン順に対応するラベル)と同じである(変わっていない)セルのことをいう。なお、上記の(1)において、当該セル[i]自身がルートであり、且つ、自身よりもラベルの値が小さいルートへの接続関係が存在しない場合は、ラベルの上書きを行う必要はない。また、連結関係にあるルートのセルが2個以上ある場合には、値が最も小さいルートのラベルで上書きするようにすればよい。
【0023】
図2の例では[3]に示す第2ブロックラベルマップB12に対して粗統合部13の処理により[4]に示す第3ブロックラベルマップB13が得られることが示されている。なお、図2の[3]の第2ブロックラベルマップB12の中に描かれている矢印(白色)は、ルート探索方向としての左又は上(2-connectivity)によるルート探索経路の模式例となっている。粗統合部13の計算はルートへの探索を左又は上(2-connectivity)のいずれかのセルを順次経由して移動する経路に限定するため高速に計算可能であり、且つ、当該第3ブロックラベルマップB13に例示されるようにブロック単位でのCCLの最終結果にある程度近い状態を得ることができる。従って、次の局所UF部4による計算を高速に行うことができるようになる。
【0024】
局所UF部14では、非特許文献2でも利用されている既存技術であるUF法を各第3ブロックに適用して得られる各第4ブロックラベルマップを、統合部15へと出力する。UF法は、「ルート」として存在している画素のラベルによって、当該ルートとして存在している画素と連結関係にある画素のラベルを上書きするものである。
【0025】
局所UF部14では具体的には、前述の粗統合部13における処理と概ね同様に、第3ブロックラベルマップ内の各位置(各画素のセル[i](i=0, 1, 2, ...))に関して継続的に、以下の処理(1')及び(2')を実施することにより、第3ブロックラベルマップを更新した第4ブロックラベルマップを得る。前述の通り、当該得られる第4ブロックラベルマップは、ブロック単位で見ればCCL処理が完了した状態にあるものとなる。
(1')各セル[i]に関して、自身と連結関係にあるセルであって、ルートとなっているセルを探索する。(2')当該セル[i]のラベルを、上記探索されたルートとなっているセルのラベルによって上書きする。
【0026】
ただし、局所UF部14における上記(1')の処理では、前述の粗統合部13の(1)の処理におけるのと異なり、ルートを探索するための隣接関係として上下左右(4-connectivity)の全部を用いるようにする。また、粗統合部13における処理と同様に、連結関係にあってルートとなっているセルが2つ以上ある場合は、ラベルの値が最も小さいもののラベルで上書きするようにする。さらに、粗統合部13における処理と同様に、セル[i]自身がルートであっても、連結関係にあるより小さいラベルのルートが存在する場合は、当該ルートであるセル[i]のラベルを自身よりも値の小さいルートのラベルで上書きする。
【0027】
本発明においては特に前述の通り、高速に実施可能なスキャン部12及び粗統合部13によって局所UF部14の適用対象となる第3ブロックラベルマップが既に、ルート探索等に関して高速に処理可能な状態となっているので、従来手法と比べて局所UF部14によるUF法の処理が高速実施可能になるという効果がある。なお、局所UF部14における処理それ自体は、前掲の非特許文献2などでも利用されているのと同様のUF法である。また、粗統合部13の処理は、既存のUF法においてルート探索の経路を左又は上(2-connectivity)すなわち、行方向の片方向及び列方向の片方向に限定したものに相当する。
【0028】
統合部15では、第4ブロックラベルマップの各々を統合することにより、当初の2値画像(初期化部11に入力された2値画像)の全体配置の状態へと戻し、当該全体配置内での区別されたラベルを更新付与したものとして得た第1ラベルマップを、境界分析部2へと出力する。
【0029】
統合部15では具体的には、次のようにしてラベルを更新付与する。すなわち、統合対象となる第4ブロックラベルマップは、それぞれラベル値がいずれかのルートとなっているセルのラベル値であり、且つ、ブロック単位でのCCL結果の領域IDに相当するものとして得られているので、当該ルートとしてのラベル値を、ブロック単位でのローカルな値から2値画像の全体配置におけるグローバルな値へと変換すればよい。なお、当該グローバルな値は、2値画像の全体に対して初期化部11で初期化を行うことで得られる、画像全体でのラスタスキャン順の値とすればよい。
【0030】
例えば図4の[1]では、図2の[1]に示す当初の2値画像P0に対応するものとして第1ラベルマップL1が示されている。ブロックラベルマップB15〜B45は当初の第1ブロックラベルマップB1〜B4にそれぞれ対応するものである。また、例えばブロックラベルマップB15は、図3に示すブロックラベルマップB13に局所UF部14の処理を行なってブロック単位でCCLが完了した状態となった後、さらに統合部15によって2値画像全体での区別を行うためにラベルが更新された状態に対応するものである。また、ブロックラベルマップB15〜B45はラベル値が前述の通りグローバルな値に変換されたものとなっている。
【0031】
境界分析部2では第1ラベルマップにおいて、統合された際のブロック境界に相当する箇所を対象としてUF法を適用してラベルを更新することで得た第2ラベルマップを、更新部3へと出力する。UF法に関しては局所UF部14で説明したのと同様の手法、すなわち、非特許文献2などでも利用されている既存手法を適用すればよい。
【0032】
ただし、本発明の境界分析部2では特に、UF法の適用対象を第1ラベルマップにおけるブロック境界に限定することで、高速にUF法を実行可能とすると共に、後段側の更新部3での入力としての第2ラベルマップを、最終的な連結領域ラベリング結果を得るまでの計算収束が少ない回数で完了するような状態として用意しておくことができるという効果がある。
【0033】
境界分析部2では具体的には、初期化部11においてサイズN×Mの2値画像を横n個×縦m個にブロック分割したのであれば、当該横方向にn-1個だけ形成されるサイズ2×Mの領域と、当該縦方向にm-1個だけ形成されるサイズN×2の領域と、をUF法の処理対象とすればよい。当該複数の処理対象はGPUにより並列処理可能である。すなわち、横方向に並ぶn-1個の列方向領域を並列処理した後、縦方向に並ぶm-1個の行方向領域を並列処理することが可能である。この逆順でもよい。あるいは、当該境界を含むようなその他の任意の処理単位で並列処理を行なうようにしてもよい。例えば、サイズ2×Mの領域とサイズN×2の領域とをさらにそれぞれ縦方向にm分割、縦方向にn分割したサイズ2×(M/m)の領域とサイズ(N/n)×2の領域とを並列処理可能なUF法での処理対象としてもよい。以上の例では境界をまたぐ2セルを処理対象としたが、2セルよりも多く境界をまたぐセルを取るようにしてもよい。
【0034】
一例として、図4の[5]の第1ラベルマップL1に関しては、横方向の1個のサイズ2×16の境界領域R1と、縦方向の1個のサイズ16×2の境界領域C1と、が境界分析部2によるUF法の適用対象とすることができ、例えば領域R1にUF法を適用した後、さらに領域C1にUF法が適用されるといった処理が行われる。これよりも細かく分割した領域で並列に処理してもよい。図4の[5-2]には境界領域C1にUF法を適用する模式例が示されている。
【0035】
更新部3は、第2ラベルマップに対して上記の境界分析部2で得られた結果を反映することにより、最終結果としての2値画像のラベリング結果である第3ラベルマップを得る。
【0036】
更新部3では具体的には、第2ラベルマップの全体に対して局所UF部14や境界分析部2におけるのと同様のUF法を適用することで、第3ラベルマップを得ることができる。
【0037】
図5は本発明による高速化の効果の例を示す図であり、[1]ではグラフとして、[2]では表として、対比手法としての従来手法のLE法(非特許文献1)、UF法(非特許文献2)、LINE UF法(非特許文献3)に対してOptimized UF法(本発明によるもの)が高速化を達成していることが見て取れる。
【0038】
以下、本発明における説明上の補足事項を述べる。
【0039】
(1)本発明は、コンピュータを連結領域ラベリング装置10として機能させるプログラムとしても提供可能である。当該コンピュータには、CPU(中央演算装置)、メモリ及び各種I/Fといった周知のハードウェア構成のものを採用することができ、CPUが連結領域ラベリング装置10の各部の機能に対応する命令を実行することとなる。また、当該コンピュータはさらに、CPUよりも並列処理を高速実施可能なGPU(グラフィック処理装置)を備え、CPUに代えて連結領域ラベリング装置10の全部又は任意の一部分の機能を当該GPUにおいてプログラム(カーネル関数)を読み込んで実行するようにしてもよい。
【0040】
なお、以上の説明よりも明らかなように、連結領域ラベリング装置10の各部の処理はGPUによって並列で実施することが可能である。当該並列実施する際は、処理の完了が同期するようにしてもよい。
【符号の説明】
【0041】
10…連結領域ラベリング装置、1…局所マージ部、11…初期化部、12…スキャン部、13…粗統合部、14…局所UF部、15…統合部、2…境界分析部、3…更新部
図1
図2
図3
図4
図5