JP2004164017A - ラベリング処理装置、ラベリング処理方法、及び画像処理装置 - Google Patents
ラベリング処理装置、ラベリング処理方法、及び画像処理装置 Download PDFInfo
- Publication number
- JP2004164017A JP2004164017A JP2002325805A JP2002325805A JP2004164017A JP 2004164017 A JP2004164017 A JP 2004164017A JP 2002325805 A JP2002325805 A JP 2002325805A JP 2002325805 A JP2002325805 A JP 2002325805A JP 2004164017 A JP2004164017 A JP 2004164017A
- Authority
- JP
- Japan
- Prior art keywords
- label
- image
- temporary
- creating
- labeling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
Abstract
【課題】複雑な2値画像のラベリング処理の処理速度を向上させる。
【解決手段】2値画像を解析する前処理として、この画像をラベリングする際に、はじめにラベル付けしたラベル画像上で異なるラベル番号が隣接する箇所があったとき、この連結性に着目して、連結したラベル番号の組をテーブルとして記憶し、連結する番号は同一ラベル番号としてこのテーブルを再編成し、最終的に作成されたテーブルに基づいて、はじめにラベル付けしたラベル画像を再ラベリングする装置である。これによって、3次元画像のような複雑な画像を解析する際に必要となる理想的なラベル画像を得るための演算処理がより効率化できる。
【選択図】 図7
【解決手段】2値画像を解析する前処理として、この画像をラベリングする際に、はじめにラベル付けしたラベル画像上で異なるラベル番号が隣接する箇所があったとき、この連結性に着目して、連結したラベル番号の組をテーブルとして記憶し、連結する番号は同一ラベル番号としてこのテーブルを再編成し、最終的に作成されたテーブルに基づいて、はじめにラベル付けしたラベル画像を再ラベリングする装置である。これによって、3次元画像のような複雑な画像を解析する際に必要となる理想的なラベル画像を得るための演算処理がより効率化できる。
【選択図】 図7
Description
【0001】
【発明の属する技術分野】
本発明は、2値画像のラベル付けを行うラベリング処理装置、ラベリング処理方法、並びにこのラベリング処理装置を適用した画像処理装置に関する。
【0002】
【従来の技術】
従来、2次元画像の画像処理の手法としてラベリング処理がある。ラベリング処理は、画像上の画素の集合(画像上の領域)ごとに番号を付け、画像を領域ごとに分類する処理であり、ラベリング処理によって付けられたラベル番号ごとに1次又は2次のモーメント、面積や周囲長などの特徴量や画像領域の連結性を求めることができる。
【0003】
この手法は、3次元画像の解析に対しても有効な画像処理であり、例えば、3次元CTスキャンで物体の3次元画像を取得し、この物体の体積や重心、モーメント等の特徴量を求めたり、物体の連結性を検査する際にも、重要な前処理として用いることができる。
【0004】
【発明が解決しようとする課題】
上述のように、ラベリング処理は、特に、画像解析処理の前処理として重要な処理であるが、対象とする画像の情報量が多くなるほど演算量が増え、この処理に多大な時間を要する。
【0005】
本発明は、上記した従来の実情に鑑みてなされたものであって、ラベリング処理の処理速度を向上させるラベリング処理装置、ラベリング処理方法、並びに画像処理装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
上述した課題を解決するため、本発明にかかるラベリング処理装置は、2値画像にラベリング処理を施し、仮ラベル画像を作成する仮ラベル画像作成手段と、仮ラベル画像の異なるラベル番号が連結している箇所のラベル番号を格納した仮ラベルテーブルを作成する仮ラベルテーブル作成手段と、仮ラベルテーブルに基づいて、仮ラベル画像のラベル番号とラベル画像のラベル番号とを対応付けて格納した再ラベルテーブルを作成する再ラベルテーブル作成手段と、再ラベルテーブルを参照して、仮ラベル画像のラベル番号をラベル画像のラベル番号に変換するラベル画像作成手段とを備える。
【0007】
また、本発明にかかるラベリング処理方法は、2値画像にラベリング処理を施し、仮ラベル画像を作成する仮ラベル画像作成工程と、仮ラベル画像の異なるラベル番号が連結している箇所のラベル番号を格納した仮ラベルテーブルを作成する仮ラベルテーブル作成工程と、仮ラベルテーブルに基づいて、仮ラベル画像のラベル番号とラベル画像のラベル番号とを関連付けて格納した再ラベルテーブルを作成する再ラベルテーブル作成工程と、再ラベルテーブルを参照して、仮ラベル画像のラベル番号を最終的なラベル番号に変換し、最終ラベル画像を作成する最終ラベル画像作成工程とを有する。
【0008】
また、本発明にかかる画像処理装置は、物体の画像を撮像する撮像手段と、撮像手段によって撮像された画像にラベリング処理を施し、仮ラベル画像を作成する仮ラベル画像作成手段と、仮ラベル画像の異なるラベル番号が連結している箇所のラベル番号を格納した仮ラベルテーブルを作成する仮ラベルテーブル作成手段と、仮ラベルテーブルに基づいて、仮ラベル画像のラベル番号とラベル画像のラベル番号とを対応付けて格納した再ラベルテーブルを作成する再ラベルテーブル作成手段と、再ラベルテーブルを参照して、仮ラベル画像のラベル番号を最終的なラベル番号に変換し、最終ラベル画像を作成する最終ラベル画像作成手段とラベル画像をもとに物体の異常を検出する解析手段とを備える。
【0009】
【発明の実施の形態】
本発明の具体例として示すラベリング処理装置1は、2値画像を解析する前処理として、この画像をラベリングする際に、はじめにラベル付けしたラベル画像上で異なるラベル番号が隣接する箇所があったとき、この連結性に着目して、連結したラベル番号の組をテーブルとして記憶し、連結する番号は同一ラベル番号としてこのテーブルを再編成し、最終的に作成されたテーブルに基づいて、はじめにラベル付けしたラベル画像を再ラベリングする装置である。これによって、3次元画像のような複雑な画像を解析する際にラベル画像を得るための演算処理がより効率化できる。
【0010】
以下、図面を参照して本発明を適用したラベリング処理装置1について説明する。本発明を適用したラベリング処理装置1を図1を用いて説明する。本具体例でラベリングする画像は、画像解析の対象である物体とこの物体以外の部分(以下、背景と記す。)とを含む2値画像である。また、ここでは、ラベリング処理が複雑とされる3次元画像に対して本手法を適用した例について説明する。
【0011】
ラベリング装置1は、2値画像をもとに仮ラベル画像及び仮ラベルテーブルを作成する仮ラベル画像作成部12と、上記仮ラベル画像作成部12によって作成された仮ラベルテーブルをもとに最終ラベルテーブルを作成する再ラベルテーブル作成部13と、最終ラベルテーブルの記載をもとに仮ラベル画像のラベル番号を変換しラベル画像を作成するラベル画像作成部14と、仮ラベルテーブル、仮ラベル画像、最終ラベルテーブル等を記憶する記憶部15とを備える。
【0012】
また、これらの各部は、図示しない制御部によって統括制御されている。制御部は、単体で設けられ各部を一括して制御する形態であってもよいし、各部ごとに分散して設けてもよい。
【0013】
入力部11は、外部から入力された2値画像を仮ラベル画像作成部12に出力する。2値画像は、図2に示すように、0と1との2値で表現した画像であり、図2の例では、0が背景、1が物体に対応している。2値画像では、撮像された物体は分類されておらず、物体か背景かの2つに分類されている。
【0014】
仮ラベル画像作成部12は、2値画像を所定のラベリング規則に従い上から順にラベリングし、領域ごとにラベル番号を付けていく。ここで領域ごとにラベル番号が付けられた画像を仮ラベル画像という。図3は、仮ラベル画像の一例を示している。図3の仮ラベル画像において、上述したように、ラベル番号0である部分は、画像の背景であるから、この仮ラベル画像の物体部分は、ラベル番号1〜6の領域で分類されることになる。仮ラベル画像のラベル番号は、一時的に付けられたラベル番号であり、後の処理によって、ラベル番号が変換され、最終的なラベル画像が作成される。
【0015】
また、仮ラベル画像作成部12は、仮ラベル画像を作成するとき、異なるラベル番号が連結した場合、この連結した異なるラベル番号の対応関係を図4に示す仮ラベルテーブルとして記憶する。仮ラベルテーブルは、仮ラベル画像に付けられたラベル番号のうち、異なるラベル番号が連結した箇所のラベル番号の対応関係を格納している。
【0016】
図3の仮ラベル画像及び図4の仮ラベルテーブルを例とすると、図3の仮ラベル画像では、2行5列目のラベル番号「2」の画素と、3行4列目のラベル番号「1」の画素が斜め上下に連結している。そのため、図4の仮ラベルテーブルの1行目には、ラベル番号「1」に対応してラベル番号「2」が格納される。
【0017】
再ラベルテーブル作成部13は、仮ラベル画像作成部12で作成された仮ラベルテーブルをもとに、最終ラベルテーブルを作成する。最終ラベルテーブルは、図5に示すように、仮ラベル画像のラベル番号λとラベル画像のラベル番号W(λ)とを対応付けて格納している。
【0018】
ラベル番号作成部は、最終ラベルテーブルの記載に従い、仮ラベル画像のラベル番号λをW(λ)に変換し、ラベル画像を作成する。この処理により、異なるラベル番号の画素が連結した箇所がなくなり、連結した画素には同一のラベル番号が付けられる。
【0019】
上述の仮ラベル作成部、再ラベルテーブル作成部13、ラベル画像作成部14の処理は、ソフトウェア的に実現することもできる。この場合、ラベリング処理装置1の構成は、図6のようになる。このラベリング処理装置1は、処理プログラムや作業用の記憶領域を含むメモリ21と、メモリ21に格納されたプログラムを実行するCPU(Central Processing Unit)22と、CPU22と他の各部とのデータの入出力を管理するI/O制御部23とを備える。
【0020】
メモリ21には、プログラムエリアとデータエリアとがそれぞれ異なる領域として設けられている。プログラムエリアには、CPU22によって読み込まれる制御プログラムとラベリング処理を行うプログラム等が格納されている。データエリアには、仮ラベル画像、仮ラベルテーブル、最終ラベルテーブル等のデータが格納される。ラベリング処理を行うプログラムは、仮ラベル画像および仮ラベルテーブルを作成するプログラム、最終ラベルテーブルを作成するプログラム、ラベル画像を作成するプログラム等から構成される。
【0021】
ラベリング処理は、図7のフローチャートに示すアルゴリズムに従い記述されている。ラベリング処理のアルゴリズムについて説明する。
【0022】
【0023】
ただし、(i,j,k):画像のXYZ座標
F={fijk}:入力2値画像
L={lijk}:ラベル画像。lijkは、ラベル番号を表す正整数(F000にはラベル番号として0が入る。)
λ :仮ラベル画像のラベル番号(以下、連結成分と記す)
K[γ,2] :仮ラベルテーブル(ただし、K[γ,0]<K[γ,1])
T[i] :再ラベルテーブル
W[i] :最終ラベルテーブル
【0024】
まず、仮ラベル画像作成部12が仮ラベルテーブル及び仮ラベル画像を作成するアルゴリズムについて説明する。仮ラベル画像作成部12は、初めに、λ、γ、T[i]、iの変数に0を入力し、変数値の初期設定を行う(ステップS1)。
【0025】
次いで、仮ラベル画像作成部12は、入力2値画像fijkの値をチェックし(ステップS2)、入力2値画像fijkの値が0のとき、ラベル画像lijkの値を0にし、ステップS12に処理を移行する。一方、ステップS2において、入力2値画像fijkの値が1のとき、ステップS4に処理を移行する。
【0026】
仮ラベル画像作成部12は、3次元画像に対して3×3×2画素のマスクを生成し、マスク内のラベルを走査し、異なるラベル番号のラベルが連結している箇所を検出する。図8(a)は、走査済みの画素X1〜X13を示している。図8(b),(c),(d)は、図8(a)を手前から順に縦に分解した図であり、図8(b),(c),(d)は、仮ラベル画像作成部12がマスク内の画素を走査していく順番X1,X2,…,X13を示している。仮ラベル画像作成部12は、ラベル付けの対象となる画素X0=(i,j,k)と、マスク内の画素X1,X2,…,X13のラベル番号を画素番号の順に比較する。ステップS4において検出された異なるラベル番号をL1、L2、…、Lnと記す(0<L1<L2<…<Ln)。
【0027】
ステップS5及びステップS6では、検出されたラベルの個数をチェックする。仮ラベル画像作成部12は、ステップS5において、ステップS4で検出したラベル番号L1、L2、…、Lnが2つ以上(n≧2)であるか否かをチェックし、n≧2の場合(ステップS5;YES)、ステップS9に処理を移行する。
一方、ステップS4で検出したラベル番号の個数が0又は1の場合(ステップS5;NO)、ステップS6に処理を移行する。
【0028】
ステップS6では、ステップS4で検出したラベル番号L1、L2、…、Lnの個数が0か否かをチェックし、ラベル番号の個数が0個(n=0)の場合(ステップS6;YES)、ステップS7に処理を移行する。一方、ステップS4で検出したラベル番号L1、L2、…、Lnの個数が1個(n=1)の場合(ステップS6;NO)、ステップS8に処理を移行する。
【0029】
ステップS7では、連結成分λの値を1つインクリメントし、λを画素fijkのラベル番号lijkに入力する(ステップS7)。また、ステップS8では、対象画素X0連結するラベルのラベル番号L1を画素fijkのラベル番号lijkに入力する。
【0030】
一方、ステップS9では、連結した複数のラベル番号L1、L2、…、Lnのうち、最も値の小さいラベル番号L1を画素fijkのラベル番号lijkに入力し、ステップS10に処理を移行する。
【0031】
ステップS10では、一つ前の画素の時のラベル番号L1、L2、…、Lnと現画素のラベル番号L1、L2、…、Lnとの比較を行ない、対応する値がすべて同じ値であれば(ステップS10;YES)、ステップS12に処理を移行し、ラベル番号に異なる値が存在する場合には(ステップS10;NO)、ステップS11に処理を移行する。
【0032】
ステップS11では、仮ラベルテーブルの作成を行う。仮ラベルテーブルの作成では、K[γ,0]にラベル番号L1を入力し、K[γ,1]にラベル番号L2,…,Lnのラベル番号Lj(2≦j≦n)を順に入力する。このとき、L1とLjとのセットを1つ格納するごとにγの値を1つインクリメントし、仮ラベルテーブルの1レコードを作成する。ラベル番号L2〜Ln全てのラベル番号に対するレコードを作成すると、現在の画素に対する仮ラベルテーブルの生成を終了し、ステップS12に処理を移行する。
【0033】
ステップS12では、入力2値画像の画素fijk全てに対してステップS2〜ステップS11までの処理が施されたか否かをチェックし、まだ処理が施されていない画素fijkがある場合には(ステップS12;NO)、次の画素fijkを読み出して、ステップS2に処理を移行する。一方、全ての画素fijkに対して、ステップS2〜ステップS11までの処理が施された場合(ステップS12;YES)、ステップS14に処理を移行する。
【0034】
ステップS14では、仮ラベルテーブルをもとに再ラベルテーブルを作成する。ステップS14において、再ラベルテーブルが作成されると、作成した再ラベルテーブルをもとに最終ラベルテーブルを作成し(ステップS15)、最終ラベルテーブルと仮ラベル画像をもとに最終的なラベル画像を作成する。
【0035】
続いて、再ラベルテーブル作成部13が再ラベルテーブルを作成するアルゴリズムについて図9〜図14を参照して説明する。ここで、仮ラベルテーブルの値K[i,0]をm、K[i,1]をn、添え字mの仮再ラベルテーブルの値T[m]=k、添え字nの再ラベルテーブルの値T[n]=lとおく。
【0036】
再ラベルテーブルを作成する際、まず、再ラベルテーブルT[1],T[2],T[3],…,T[h]の全ての値を0に初期化する。そして、仮ラベルテーブルの値m、nを入力し、以下に示す規則に従い、再ラベルテーブルの値を更新する。
【0037】
再ラベルテーブルを更新する規則について説明する。この規則は、仮ラベルテーブルの値m、nを添え字とする再ラベルテーブルT[m]及びT[n]の組み合わせに従って、決められている。再ラベルテーブルの値T[m]、T[n]の組み合わせには、T[m]=0かつT[n]=0、T[m]≠0かつT[n]=0、T[m]=0かつT[n]≠0、T[m]≠0かつT[n]≠0の4通りある。
【0038】
T[m]=0かつT[n]=0のときには、T[m]及びT[n]にmをセットする。図9の例では、更新前の再ラベルテーブルの値は、T[1]=0、T[2]=0、T[3]=0であり、入力される仮ラベルテーブルの値は、m=1、n=2である。このとき、T[1]=0及びT[2]=0であり、T[m]=0かつT[n]=0を満たす。そこで、T[1]及びT[2]に1をセットする。
この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=0となる。
【0039】
また、T[m]≠0かつT[n]=0のときには、T[m]の値kをT[n]にセットする。図10の例では、更新前の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=0であり、入力される仮ラベルテーブルの値は、m=2、n=3である。このとき、T[2]=1及びT[3]=0であり、T[m]≠0かつT[n]=0を満たす。そこで、T[3]にT[2]の値をセットする。この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=1となる。
【0040】
また、T[m]=0かつT[n]≠0の場合には、m<l、m>lの2つの場合に場合分けして、再ラベルテーブルを生成する。なお、m=lの場合は存在しない。
【0041】
m<lの場合、T[m]にmをセットし、T[i]=lである全てのT[i]にmをセットする。図11の例では、更新前の再ラベルテーブルの値は、T[1]=0、T[2]=2、T[3]=2であり、入力される仮ラベルテーブルの値は、m=1、n=2である。このとき、T[1]=0及びT[2]=2であり、T[m]=0かつT[n]≠1を満たす。また、m=1及びl=2であるため、m<lを満たす。そこで、T[1]に1をセットし、T[i]=lである全てのT[i]、すなわち、T[2]及びT[3]に1をセットする。この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=1となる。
【0042】
m>lの場合、T[m]にlをセットする。図12の例では、更新前の再ラベルテーブルの値は、T[1]=1、T[2]=0、T[3]=1であり、入力される仮ラベルテーブルの値は、m=2、n=3である。このとき、T[2]=0及びT[3]=1であり、T[m]=0かつT[n]≠0を満たす。また、m=2及びl=1であるため、m>lを満たす。そこで、T[2]に1をセットする。この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=1となる。
【0043】
また、T[m]≠0かつT[n]≠0の場合には、k<l、k>l、k=lの3つの場合に場合分けして、再ラベルテーブルを生成する。
【0044】
k<lの場合、T[i]=lを満たす全てのT[i]にkをセットする。図13の例では、更新前の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=3、T[4]=3であり、入力される仮ラベルテーブルの値は、m=1、n=3である。このとき、T[1]=1及びT[3]=3であるため、T[m]≠0かつT[n]≠0を満たす。また、k=1及びl=3であるため、k<lを満たす。そこで、T[i]=lであるT[i]、すなわち、T[3]及びT[4]に1をセットする。この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=1、T[4]=1となる。
【0045】
k>lの場合、T[i]=kを満たす全てのT[i]にlをセットする。図14の例では、更新前の再ラベルテーブルの値は、T[1]=1、T[2]=2、T[3]=2、T[4]=1であり、入力される仮ラベルテーブルの値は、m=2、n=4である。このとき、T[2]=2及びT[4]=1であるため、T[m]≠0かつT[n]≠0を満たす。また、k=2及びm=1であるため、k>lを満たす。そこで、T[i]=kである全てのT[i]、すなわち、T[2]及びT[3]に1をセットする。この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=1、T[4]=1となる。
【0046】
k=lの場合、再ラベルテーブルT[1],T[2],…,T[h]には、特に処理を施さない。
【0047】
次に、再ラベルテーブル作成部13が最終ラベルテーブルW[i]を作成するアルゴリズムを説明する。最終ラベルテーブルW[i]を作成するためには、その途中経過として第1中間テーブルU[i]、第2中間テーブルV[i]を作成し、最終ラベルテーブルを作成する。
【0048】
第1中間テーブルを作成するアルゴリズムを説明する。第1中間ラベルテーブルU[i]は、仮ラベルテーブルT[i]をもとに作成される。仮ラベルテーブルT[i]=iならばU[i]=1になり、T[i]≠iならばU[i]=0となる。図15の例では、i=1,4,5のときT[i]=iが成立するので、U[i]に1がセットされる。また、i=2,3,6のとき、T[i]≠iであるためにU[i]に0がセットされる。
【0049】
第2中間テーブルを作成するアルゴリズムを説明する。第2中間テーブルを作成する際、第1中間テーブルU[i]の1の個数を記憶するカウンタpをメモリに確保し、第1中間テーブルU[i]が0か1かをチェックし、第1中間テーブルU[i]=1であるとき、pの値を1インクリメントするとともに、pの値を第2中間テーブルV[i]にセットする。
【0050】
図15の第1中間テーブルから第2中間テーブルを作成する場合、まず、U[1]が1か0かをチェックする。図15の例では、U[1]=1である。pの初期値0を1インクリメントし、V[1]にpの値1をセットする。続いて、U[2],U[3]が1か0かをチェックする。U[2]=U[3]=0である。そこで、V[2],V[3]に0をセットする。続いて、U[4]が1か0かをチェックすると、U[4]=1である。そこで、pを1インクリメントしV[4]に2をセットする。上記の処理を全ての第1中間テーブルに対して施し、第2中間テーブルが完成する。
【0051】
次に、最終ラベルテーブルW[i]を作成するアルゴリズムを説明する。最終ラベルテーブルは、仮ラベルテーブルT[i]の値を添え字とした第2中間テーブル、すなわちW[i]=V[T[i]]として生成される。
【0052】
図15では、i=1のとき、T[1]=1である。そこで、W[1]にV[1]=1をセットする。i=2のとき、T[2]=1である。そこで、W[2]にV[1]=1をセットする。この処理を全てのiに対して施し、最終ラベルテーブルW[i]が完成する。
【0053】
このように、最終ラベルテーブルが完成すると、ラベル画像作成部14は、最終ラベルテーブルと仮ラベル画像とをもとに、ラベル画像を作成する。例えば、図15の最終ラベルテーブルでは、仮ラベル画像のラベル番号λとし、ラベル画像のラベル番号W[λ]が対応付けて格納されている。ラベル画像作成部14は、仮ラベル画像のラベル番号λをW(λ)に変換し、ラベル画像を作成する。図15の最終ラベルテーブルにおいて、λ=2、W(λ)=1である。そのため、ラベル画像作成部14は、図3の仮ラベル画像の2行5列目のラベル番号2を1に変換する。また、また、図15の最終ラベルテーブルにおいて、λ=3、W(λ)=1である。そのため、ラベル画像作成部14は、図3の仮ラベル画像の4行1列目、4行2列目、5行2列目の3を1に変換する。このようにして作成されたラベル画像は、画像を構成する物体ごとに1から順にラベリングされており、背景には0が割り当てられている。
【0054】
以上のようなラベリング処理装置1は、例えば、3次元CTスキャンを用いた画像処理装置に適用される。図16に、この画像処理装置3の一例を示す。この画像処理装置は、ラベリング処理装置をラベリング部として適用している。
【0055】
画像処理装置3は、物体の3次元画像を撮像する撮像部31と、撮像した画像にラベリング処理を施すラベリング部32、ラベリングした物体の形状をもとに物体の歪みや破損を検出する解析部33とを備える。
【0056】
この画像処理装置3の検査の例として、IC(Integrated Circuit)のボールグリッドアレイの検査を説明する。ボールグリッドアレイは、図17(a)に示すように、ICの端子の先をボール状に加工したものである。このようなボールグリッドアレイは、ICの底面に格子状に形成される。ボールグリッドアレイは、製造した後にボールの状態を外部から検査することができない。また、微小なものであるため、目視による検査も困難である。そこで、X線を用いた3次元CTスキャン等で内部画像を得て、これを解析して不良を検査している。ラベリング処理部32は、画像解析の前処理としてボールグリッドアレイの形状を特定するために使用される。
【0057】
図17(b)及び図17(c)は、ボールグリッドアレイの一部を撮像したCTスキャン写真を模式的に表している。ここで、図17(b)は、隣接するボール同士が接合した状態を示し、図17(c)は、ボール内に空隙が生じた状態を示している。
【0058】
ラベリング部32は、図17(b)及び図17(c)のボールグリッドアレイのボール部分とその他の部分とが検出される。例えば、図17(a)のように、隣接ボール同士が接合している場合や、ボール内部に空隙が生じた場合などには、接合した部分には同一のラベル番号を付し、空隙にはボールと異なるラベル番号を付す。ボールが接合したいる場合や、ボール内部に空隙が生じた場合などには、正常なボールグリッドアレイのラベル画像と比較して、ラベル番号が変わってくる。
【0059】
解析部33は、正常なボールグリッドアレイのラベル画像や、このラベル画像をもとに算出した特徴量を予め記憶し、ラベリング部から出力されたラベル画像と比較し、ボールグリッドアレイの異常を検査する。
【0060】
また、ラベリング装置1を適用した画像処理装置3は、リチウム乾電池のリード部分の接合状態の検査、LEDのリード部分の接合状態の検査等、非破壊検査の画像解析の前処理として適用できる。
【0061】
以上のように、本発明を適用したラベリング処理装置1は、単純なアルゴリズムでラベリング処理を実行するため、ソフトウェアの処理速度が速くなる。これにより、検査時間が短縮できるなどの効果がある。
【0062】
また、このアルゴリズムをハードウェアで実現した場合、アルゴリズムが単純なため、ハードウェアが容易に開発できるとともに、ハードウェアの処理速度を向上することができる。
【0063】
なお、本発明は、上述した実施の形態に限定されることはない。例えば、画像処理装置の撮像部は、CTスキャンとしたが、CTスキャン以外の装置を用いて3次元画像を撮像してもよい。
【0064】
【発明の効果】
上述したように、本発明に係るラベリング処理装置は、仮ラベル画像を作成した後、最終的なラベル画像を作成する。仮ラベル画像を作成する際、ラベリング処理装置は、仮ラベル画像上で異なるラベル画像が連結する箇所があった場合、連結したラベル番号の組を仮ラベルテーブルに記憶する。ラベリング処理装置は、仮ラベルテーブルを再編成し、最終的に作成されたテーブルに基づいて、仮ラベル画像を再ラベリングし、ラベル画像を作成する。
【0065】
これにより、ラベリング装置は、ラベリング処理に必要な演算量が減少し、処理速度が向上し、ラベリング処理の実行にかかる時間を短縮できる。また、ラベリング処理をハードウェアで実現する場合には、ハードウェアを容易に開発することできるとともに、ハードウェアの処理速度を向上することができる。
【図面の簡単な説明】
【図1】ラベリング処理装置の構成を示す図である。
【図2】ラベリング処理装置に入力される2値画像の1例を示す図である。
【図3】仮ラベル画像の1例を示す図である。
【図4】仮ラベルテーブルの1例を示す図である。
【図5】再ラベルテーブルの1例を示す図である。
【図6】ラベリング処理をソフトウェアで実行する際のラベリング処理装置の構成を示す図である。
【図7】ラベリング処理の手順を示すフローチャートである。
【図8】マスク内の画素を示す図である。
【図9】再ラベルテーブルの作成規則を示す図である。
【図10】再ラベルテーブルの作成規則を示す図である。
【図11】再ラベルテーブルの作成規則を示す図である。
【図12】再ラベルテーブルの作成規則を示す図である。
【図13】再ラベルテーブルの作成規則を示す図である。
【図14】再ラベルテーブルの作成規則を示す図である。
【図15】再ラベルテーブル、第1中間テーブル、第2中間テーブル、および最終ラベルテーブルの1例を示す図である。
【図16】画像処理装置の構成を示す図である。
【図17】ボールグリッドアレイの形状を示す図である。
【符号の説明】
1 ラベリング装置、3 画像処理装置、12 仮ラベル画像作成部、13 再ラベルテーブル作成部、14 ラベル画像作成部、15 記憶部、31 撮像部、32 ラベリング部、33 解析部
【発明の属する技術分野】
本発明は、2値画像のラベル付けを行うラベリング処理装置、ラベリング処理方法、並びにこのラベリング処理装置を適用した画像処理装置に関する。
【0002】
【従来の技術】
従来、2次元画像の画像処理の手法としてラベリング処理がある。ラベリング処理は、画像上の画素の集合(画像上の領域)ごとに番号を付け、画像を領域ごとに分類する処理であり、ラベリング処理によって付けられたラベル番号ごとに1次又は2次のモーメント、面積や周囲長などの特徴量や画像領域の連結性を求めることができる。
【0003】
この手法は、3次元画像の解析に対しても有効な画像処理であり、例えば、3次元CTスキャンで物体の3次元画像を取得し、この物体の体積や重心、モーメント等の特徴量を求めたり、物体の連結性を検査する際にも、重要な前処理として用いることができる。
【0004】
【発明が解決しようとする課題】
上述のように、ラベリング処理は、特に、画像解析処理の前処理として重要な処理であるが、対象とする画像の情報量が多くなるほど演算量が増え、この処理に多大な時間を要する。
【0005】
本発明は、上記した従来の実情に鑑みてなされたものであって、ラベリング処理の処理速度を向上させるラベリング処理装置、ラベリング処理方法、並びに画像処理装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
上述した課題を解決するため、本発明にかかるラベリング処理装置は、2値画像にラベリング処理を施し、仮ラベル画像を作成する仮ラベル画像作成手段と、仮ラベル画像の異なるラベル番号が連結している箇所のラベル番号を格納した仮ラベルテーブルを作成する仮ラベルテーブル作成手段と、仮ラベルテーブルに基づいて、仮ラベル画像のラベル番号とラベル画像のラベル番号とを対応付けて格納した再ラベルテーブルを作成する再ラベルテーブル作成手段と、再ラベルテーブルを参照して、仮ラベル画像のラベル番号をラベル画像のラベル番号に変換するラベル画像作成手段とを備える。
【0007】
また、本発明にかかるラベリング処理方法は、2値画像にラベリング処理を施し、仮ラベル画像を作成する仮ラベル画像作成工程と、仮ラベル画像の異なるラベル番号が連結している箇所のラベル番号を格納した仮ラベルテーブルを作成する仮ラベルテーブル作成工程と、仮ラベルテーブルに基づいて、仮ラベル画像のラベル番号とラベル画像のラベル番号とを関連付けて格納した再ラベルテーブルを作成する再ラベルテーブル作成工程と、再ラベルテーブルを参照して、仮ラベル画像のラベル番号を最終的なラベル番号に変換し、最終ラベル画像を作成する最終ラベル画像作成工程とを有する。
【0008】
また、本発明にかかる画像処理装置は、物体の画像を撮像する撮像手段と、撮像手段によって撮像された画像にラベリング処理を施し、仮ラベル画像を作成する仮ラベル画像作成手段と、仮ラベル画像の異なるラベル番号が連結している箇所のラベル番号を格納した仮ラベルテーブルを作成する仮ラベルテーブル作成手段と、仮ラベルテーブルに基づいて、仮ラベル画像のラベル番号とラベル画像のラベル番号とを対応付けて格納した再ラベルテーブルを作成する再ラベルテーブル作成手段と、再ラベルテーブルを参照して、仮ラベル画像のラベル番号を最終的なラベル番号に変換し、最終ラベル画像を作成する最終ラベル画像作成手段とラベル画像をもとに物体の異常を検出する解析手段とを備える。
【0009】
【発明の実施の形態】
本発明の具体例として示すラベリング処理装置1は、2値画像を解析する前処理として、この画像をラベリングする際に、はじめにラベル付けしたラベル画像上で異なるラベル番号が隣接する箇所があったとき、この連結性に着目して、連結したラベル番号の組をテーブルとして記憶し、連結する番号は同一ラベル番号としてこのテーブルを再編成し、最終的に作成されたテーブルに基づいて、はじめにラベル付けしたラベル画像を再ラベリングする装置である。これによって、3次元画像のような複雑な画像を解析する際にラベル画像を得るための演算処理がより効率化できる。
【0010】
以下、図面を参照して本発明を適用したラベリング処理装置1について説明する。本発明を適用したラベリング処理装置1を図1を用いて説明する。本具体例でラベリングする画像は、画像解析の対象である物体とこの物体以外の部分(以下、背景と記す。)とを含む2値画像である。また、ここでは、ラベリング処理が複雑とされる3次元画像に対して本手法を適用した例について説明する。
【0011】
ラベリング装置1は、2値画像をもとに仮ラベル画像及び仮ラベルテーブルを作成する仮ラベル画像作成部12と、上記仮ラベル画像作成部12によって作成された仮ラベルテーブルをもとに最終ラベルテーブルを作成する再ラベルテーブル作成部13と、最終ラベルテーブルの記載をもとに仮ラベル画像のラベル番号を変換しラベル画像を作成するラベル画像作成部14と、仮ラベルテーブル、仮ラベル画像、最終ラベルテーブル等を記憶する記憶部15とを備える。
【0012】
また、これらの各部は、図示しない制御部によって統括制御されている。制御部は、単体で設けられ各部を一括して制御する形態であってもよいし、各部ごとに分散して設けてもよい。
【0013】
入力部11は、外部から入力された2値画像を仮ラベル画像作成部12に出力する。2値画像は、図2に示すように、0と1との2値で表現した画像であり、図2の例では、0が背景、1が物体に対応している。2値画像では、撮像された物体は分類されておらず、物体か背景かの2つに分類されている。
【0014】
仮ラベル画像作成部12は、2値画像を所定のラベリング規則に従い上から順にラベリングし、領域ごとにラベル番号を付けていく。ここで領域ごとにラベル番号が付けられた画像を仮ラベル画像という。図3は、仮ラベル画像の一例を示している。図3の仮ラベル画像において、上述したように、ラベル番号0である部分は、画像の背景であるから、この仮ラベル画像の物体部分は、ラベル番号1〜6の領域で分類されることになる。仮ラベル画像のラベル番号は、一時的に付けられたラベル番号であり、後の処理によって、ラベル番号が変換され、最終的なラベル画像が作成される。
【0015】
また、仮ラベル画像作成部12は、仮ラベル画像を作成するとき、異なるラベル番号が連結した場合、この連結した異なるラベル番号の対応関係を図4に示す仮ラベルテーブルとして記憶する。仮ラベルテーブルは、仮ラベル画像に付けられたラベル番号のうち、異なるラベル番号が連結した箇所のラベル番号の対応関係を格納している。
【0016】
図3の仮ラベル画像及び図4の仮ラベルテーブルを例とすると、図3の仮ラベル画像では、2行5列目のラベル番号「2」の画素と、3行4列目のラベル番号「1」の画素が斜め上下に連結している。そのため、図4の仮ラベルテーブルの1行目には、ラベル番号「1」に対応してラベル番号「2」が格納される。
【0017】
再ラベルテーブル作成部13は、仮ラベル画像作成部12で作成された仮ラベルテーブルをもとに、最終ラベルテーブルを作成する。最終ラベルテーブルは、図5に示すように、仮ラベル画像のラベル番号λとラベル画像のラベル番号W(λ)とを対応付けて格納している。
【0018】
ラベル番号作成部は、最終ラベルテーブルの記載に従い、仮ラベル画像のラベル番号λをW(λ)に変換し、ラベル画像を作成する。この処理により、異なるラベル番号の画素が連結した箇所がなくなり、連結した画素には同一のラベル番号が付けられる。
【0019】
上述の仮ラベル作成部、再ラベルテーブル作成部13、ラベル画像作成部14の処理は、ソフトウェア的に実現することもできる。この場合、ラベリング処理装置1の構成は、図6のようになる。このラベリング処理装置1は、処理プログラムや作業用の記憶領域を含むメモリ21と、メモリ21に格納されたプログラムを実行するCPU(Central Processing Unit)22と、CPU22と他の各部とのデータの入出力を管理するI/O制御部23とを備える。
【0020】
メモリ21には、プログラムエリアとデータエリアとがそれぞれ異なる領域として設けられている。プログラムエリアには、CPU22によって読み込まれる制御プログラムとラベリング処理を行うプログラム等が格納されている。データエリアには、仮ラベル画像、仮ラベルテーブル、最終ラベルテーブル等のデータが格納される。ラベリング処理を行うプログラムは、仮ラベル画像および仮ラベルテーブルを作成するプログラム、最終ラベルテーブルを作成するプログラム、ラベル画像を作成するプログラム等から構成される。
【0021】
ラベリング処理は、図7のフローチャートに示すアルゴリズムに従い記述されている。ラベリング処理のアルゴリズムについて説明する。
【0022】
【0023】
ただし、(i,j,k):画像のXYZ座標
F={fijk}:入力2値画像
L={lijk}:ラベル画像。lijkは、ラベル番号を表す正整数(F000にはラベル番号として0が入る。)
λ :仮ラベル画像のラベル番号(以下、連結成分と記す)
K[γ,2] :仮ラベルテーブル(ただし、K[γ,0]<K[γ,1])
T[i] :再ラベルテーブル
W[i] :最終ラベルテーブル
【0024】
まず、仮ラベル画像作成部12が仮ラベルテーブル及び仮ラベル画像を作成するアルゴリズムについて説明する。仮ラベル画像作成部12は、初めに、λ、γ、T[i]、iの変数に0を入力し、変数値の初期設定を行う(ステップS1)。
【0025】
次いで、仮ラベル画像作成部12は、入力2値画像fijkの値をチェックし(ステップS2)、入力2値画像fijkの値が0のとき、ラベル画像lijkの値を0にし、ステップS12に処理を移行する。一方、ステップS2において、入力2値画像fijkの値が1のとき、ステップS4に処理を移行する。
【0026】
仮ラベル画像作成部12は、3次元画像に対して3×3×2画素のマスクを生成し、マスク内のラベルを走査し、異なるラベル番号のラベルが連結している箇所を検出する。図8(a)は、走査済みの画素X1〜X13を示している。図8(b),(c),(d)は、図8(a)を手前から順に縦に分解した図であり、図8(b),(c),(d)は、仮ラベル画像作成部12がマスク内の画素を走査していく順番X1,X2,…,X13を示している。仮ラベル画像作成部12は、ラベル付けの対象となる画素X0=(i,j,k)と、マスク内の画素X1,X2,…,X13のラベル番号を画素番号の順に比較する。ステップS4において検出された異なるラベル番号をL1、L2、…、Lnと記す(0<L1<L2<…<Ln)。
【0027】
ステップS5及びステップS6では、検出されたラベルの個数をチェックする。仮ラベル画像作成部12は、ステップS5において、ステップS4で検出したラベル番号L1、L2、…、Lnが2つ以上(n≧2)であるか否かをチェックし、n≧2の場合(ステップS5;YES)、ステップS9に処理を移行する。
一方、ステップS4で検出したラベル番号の個数が0又は1の場合(ステップS5;NO)、ステップS6に処理を移行する。
【0028】
ステップS6では、ステップS4で検出したラベル番号L1、L2、…、Lnの個数が0か否かをチェックし、ラベル番号の個数が0個(n=0)の場合(ステップS6;YES)、ステップS7に処理を移行する。一方、ステップS4で検出したラベル番号L1、L2、…、Lnの個数が1個(n=1)の場合(ステップS6;NO)、ステップS8に処理を移行する。
【0029】
ステップS7では、連結成分λの値を1つインクリメントし、λを画素fijkのラベル番号lijkに入力する(ステップS7)。また、ステップS8では、対象画素X0連結するラベルのラベル番号L1を画素fijkのラベル番号lijkに入力する。
【0030】
一方、ステップS9では、連結した複数のラベル番号L1、L2、…、Lnのうち、最も値の小さいラベル番号L1を画素fijkのラベル番号lijkに入力し、ステップS10に処理を移行する。
【0031】
ステップS10では、一つ前の画素の時のラベル番号L1、L2、…、Lnと現画素のラベル番号L1、L2、…、Lnとの比較を行ない、対応する値がすべて同じ値であれば(ステップS10;YES)、ステップS12に処理を移行し、ラベル番号に異なる値が存在する場合には(ステップS10;NO)、ステップS11に処理を移行する。
【0032】
ステップS11では、仮ラベルテーブルの作成を行う。仮ラベルテーブルの作成では、K[γ,0]にラベル番号L1を入力し、K[γ,1]にラベル番号L2,…,Lnのラベル番号Lj(2≦j≦n)を順に入力する。このとき、L1とLjとのセットを1つ格納するごとにγの値を1つインクリメントし、仮ラベルテーブルの1レコードを作成する。ラベル番号L2〜Ln全てのラベル番号に対するレコードを作成すると、現在の画素に対する仮ラベルテーブルの生成を終了し、ステップS12に処理を移行する。
【0033】
ステップS12では、入力2値画像の画素fijk全てに対してステップS2〜ステップS11までの処理が施されたか否かをチェックし、まだ処理が施されていない画素fijkがある場合には(ステップS12;NO)、次の画素fijkを読み出して、ステップS2に処理を移行する。一方、全ての画素fijkに対して、ステップS2〜ステップS11までの処理が施された場合(ステップS12;YES)、ステップS14に処理を移行する。
【0034】
ステップS14では、仮ラベルテーブルをもとに再ラベルテーブルを作成する。ステップS14において、再ラベルテーブルが作成されると、作成した再ラベルテーブルをもとに最終ラベルテーブルを作成し(ステップS15)、最終ラベルテーブルと仮ラベル画像をもとに最終的なラベル画像を作成する。
【0035】
続いて、再ラベルテーブル作成部13が再ラベルテーブルを作成するアルゴリズムについて図9〜図14を参照して説明する。ここで、仮ラベルテーブルの値K[i,0]をm、K[i,1]をn、添え字mの仮再ラベルテーブルの値T[m]=k、添え字nの再ラベルテーブルの値T[n]=lとおく。
【0036】
再ラベルテーブルを作成する際、まず、再ラベルテーブルT[1],T[2],T[3],…,T[h]の全ての値を0に初期化する。そして、仮ラベルテーブルの値m、nを入力し、以下に示す規則に従い、再ラベルテーブルの値を更新する。
【0037】
再ラベルテーブルを更新する規則について説明する。この規則は、仮ラベルテーブルの値m、nを添え字とする再ラベルテーブルT[m]及びT[n]の組み合わせに従って、決められている。再ラベルテーブルの値T[m]、T[n]の組み合わせには、T[m]=0かつT[n]=0、T[m]≠0かつT[n]=0、T[m]=0かつT[n]≠0、T[m]≠0かつT[n]≠0の4通りある。
【0038】
T[m]=0かつT[n]=0のときには、T[m]及びT[n]にmをセットする。図9の例では、更新前の再ラベルテーブルの値は、T[1]=0、T[2]=0、T[3]=0であり、入力される仮ラベルテーブルの値は、m=1、n=2である。このとき、T[1]=0及びT[2]=0であり、T[m]=0かつT[n]=0を満たす。そこで、T[1]及びT[2]に1をセットする。
この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=0となる。
【0039】
また、T[m]≠0かつT[n]=0のときには、T[m]の値kをT[n]にセットする。図10の例では、更新前の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=0であり、入力される仮ラベルテーブルの値は、m=2、n=3である。このとき、T[2]=1及びT[3]=0であり、T[m]≠0かつT[n]=0を満たす。そこで、T[3]にT[2]の値をセットする。この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=1となる。
【0040】
また、T[m]=0かつT[n]≠0の場合には、m<l、m>lの2つの場合に場合分けして、再ラベルテーブルを生成する。なお、m=lの場合は存在しない。
【0041】
m<lの場合、T[m]にmをセットし、T[i]=lである全てのT[i]にmをセットする。図11の例では、更新前の再ラベルテーブルの値は、T[1]=0、T[2]=2、T[3]=2であり、入力される仮ラベルテーブルの値は、m=1、n=2である。このとき、T[1]=0及びT[2]=2であり、T[m]=0かつT[n]≠1を満たす。また、m=1及びl=2であるため、m<lを満たす。そこで、T[1]に1をセットし、T[i]=lである全てのT[i]、すなわち、T[2]及びT[3]に1をセットする。この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=1となる。
【0042】
m>lの場合、T[m]にlをセットする。図12の例では、更新前の再ラベルテーブルの値は、T[1]=1、T[2]=0、T[3]=1であり、入力される仮ラベルテーブルの値は、m=2、n=3である。このとき、T[2]=0及びT[3]=1であり、T[m]=0かつT[n]≠0を満たす。また、m=2及びl=1であるため、m>lを満たす。そこで、T[2]に1をセットする。この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=1となる。
【0043】
また、T[m]≠0かつT[n]≠0の場合には、k<l、k>l、k=lの3つの場合に場合分けして、再ラベルテーブルを生成する。
【0044】
k<lの場合、T[i]=lを満たす全てのT[i]にkをセットする。図13の例では、更新前の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=3、T[4]=3であり、入力される仮ラベルテーブルの値は、m=1、n=3である。このとき、T[1]=1及びT[3]=3であるため、T[m]≠0かつT[n]≠0を満たす。また、k=1及びl=3であるため、k<lを満たす。そこで、T[i]=lであるT[i]、すなわち、T[3]及びT[4]に1をセットする。この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=1、T[4]=1となる。
【0045】
k>lの場合、T[i]=kを満たす全てのT[i]にlをセットする。図14の例では、更新前の再ラベルテーブルの値は、T[1]=1、T[2]=2、T[3]=2、T[4]=1であり、入力される仮ラベルテーブルの値は、m=2、n=4である。このとき、T[2]=2及びT[4]=1であるため、T[m]≠0かつT[n]≠0を満たす。また、k=2及びm=1であるため、k>lを満たす。そこで、T[i]=kである全てのT[i]、すなわち、T[2]及びT[3]に1をセットする。この処理の結果、更新後の再ラベルテーブルの値は、T[1]=1、T[2]=1、T[3]=1、T[4]=1となる。
【0046】
k=lの場合、再ラベルテーブルT[1],T[2],…,T[h]には、特に処理を施さない。
【0047】
次に、再ラベルテーブル作成部13が最終ラベルテーブルW[i]を作成するアルゴリズムを説明する。最終ラベルテーブルW[i]を作成するためには、その途中経過として第1中間テーブルU[i]、第2中間テーブルV[i]を作成し、最終ラベルテーブルを作成する。
【0048】
第1中間テーブルを作成するアルゴリズムを説明する。第1中間ラベルテーブルU[i]は、仮ラベルテーブルT[i]をもとに作成される。仮ラベルテーブルT[i]=iならばU[i]=1になり、T[i]≠iならばU[i]=0となる。図15の例では、i=1,4,5のときT[i]=iが成立するので、U[i]に1がセットされる。また、i=2,3,6のとき、T[i]≠iであるためにU[i]に0がセットされる。
【0049】
第2中間テーブルを作成するアルゴリズムを説明する。第2中間テーブルを作成する際、第1中間テーブルU[i]の1の個数を記憶するカウンタpをメモリに確保し、第1中間テーブルU[i]が0か1かをチェックし、第1中間テーブルU[i]=1であるとき、pの値を1インクリメントするとともに、pの値を第2中間テーブルV[i]にセットする。
【0050】
図15の第1中間テーブルから第2中間テーブルを作成する場合、まず、U[1]が1か0かをチェックする。図15の例では、U[1]=1である。pの初期値0を1インクリメントし、V[1]にpの値1をセットする。続いて、U[2],U[3]が1か0かをチェックする。U[2]=U[3]=0である。そこで、V[2],V[3]に0をセットする。続いて、U[4]が1か0かをチェックすると、U[4]=1である。そこで、pを1インクリメントしV[4]に2をセットする。上記の処理を全ての第1中間テーブルに対して施し、第2中間テーブルが完成する。
【0051】
次に、最終ラベルテーブルW[i]を作成するアルゴリズムを説明する。最終ラベルテーブルは、仮ラベルテーブルT[i]の値を添え字とした第2中間テーブル、すなわちW[i]=V[T[i]]として生成される。
【0052】
図15では、i=1のとき、T[1]=1である。そこで、W[1]にV[1]=1をセットする。i=2のとき、T[2]=1である。そこで、W[2]にV[1]=1をセットする。この処理を全てのiに対して施し、最終ラベルテーブルW[i]が完成する。
【0053】
このように、最終ラベルテーブルが完成すると、ラベル画像作成部14は、最終ラベルテーブルと仮ラベル画像とをもとに、ラベル画像を作成する。例えば、図15の最終ラベルテーブルでは、仮ラベル画像のラベル番号λとし、ラベル画像のラベル番号W[λ]が対応付けて格納されている。ラベル画像作成部14は、仮ラベル画像のラベル番号λをW(λ)に変換し、ラベル画像を作成する。図15の最終ラベルテーブルにおいて、λ=2、W(λ)=1である。そのため、ラベル画像作成部14は、図3の仮ラベル画像の2行5列目のラベル番号2を1に変換する。また、また、図15の最終ラベルテーブルにおいて、λ=3、W(λ)=1である。そのため、ラベル画像作成部14は、図3の仮ラベル画像の4行1列目、4行2列目、5行2列目の3を1に変換する。このようにして作成されたラベル画像は、画像を構成する物体ごとに1から順にラベリングされており、背景には0が割り当てられている。
【0054】
以上のようなラベリング処理装置1は、例えば、3次元CTスキャンを用いた画像処理装置に適用される。図16に、この画像処理装置3の一例を示す。この画像処理装置は、ラベリング処理装置をラベリング部として適用している。
【0055】
画像処理装置3は、物体の3次元画像を撮像する撮像部31と、撮像した画像にラベリング処理を施すラベリング部32、ラベリングした物体の形状をもとに物体の歪みや破損を検出する解析部33とを備える。
【0056】
この画像処理装置3の検査の例として、IC(Integrated Circuit)のボールグリッドアレイの検査を説明する。ボールグリッドアレイは、図17(a)に示すように、ICの端子の先をボール状に加工したものである。このようなボールグリッドアレイは、ICの底面に格子状に形成される。ボールグリッドアレイは、製造した後にボールの状態を外部から検査することができない。また、微小なものであるため、目視による検査も困難である。そこで、X線を用いた3次元CTスキャン等で内部画像を得て、これを解析して不良を検査している。ラベリング処理部32は、画像解析の前処理としてボールグリッドアレイの形状を特定するために使用される。
【0057】
図17(b)及び図17(c)は、ボールグリッドアレイの一部を撮像したCTスキャン写真を模式的に表している。ここで、図17(b)は、隣接するボール同士が接合した状態を示し、図17(c)は、ボール内に空隙が生じた状態を示している。
【0058】
ラベリング部32は、図17(b)及び図17(c)のボールグリッドアレイのボール部分とその他の部分とが検出される。例えば、図17(a)のように、隣接ボール同士が接合している場合や、ボール内部に空隙が生じた場合などには、接合した部分には同一のラベル番号を付し、空隙にはボールと異なるラベル番号を付す。ボールが接合したいる場合や、ボール内部に空隙が生じた場合などには、正常なボールグリッドアレイのラベル画像と比較して、ラベル番号が変わってくる。
【0059】
解析部33は、正常なボールグリッドアレイのラベル画像や、このラベル画像をもとに算出した特徴量を予め記憶し、ラベリング部から出力されたラベル画像と比較し、ボールグリッドアレイの異常を検査する。
【0060】
また、ラベリング装置1を適用した画像処理装置3は、リチウム乾電池のリード部分の接合状態の検査、LEDのリード部分の接合状態の検査等、非破壊検査の画像解析の前処理として適用できる。
【0061】
以上のように、本発明を適用したラベリング処理装置1は、単純なアルゴリズムでラベリング処理を実行するため、ソフトウェアの処理速度が速くなる。これにより、検査時間が短縮できるなどの効果がある。
【0062】
また、このアルゴリズムをハードウェアで実現した場合、アルゴリズムが単純なため、ハードウェアが容易に開発できるとともに、ハードウェアの処理速度を向上することができる。
【0063】
なお、本発明は、上述した実施の形態に限定されることはない。例えば、画像処理装置の撮像部は、CTスキャンとしたが、CTスキャン以外の装置を用いて3次元画像を撮像してもよい。
【0064】
【発明の効果】
上述したように、本発明に係るラベリング処理装置は、仮ラベル画像を作成した後、最終的なラベル画像を作成する。仮ラベル画像を作成する際、ラベリング処理装置は、仮ラベル画像上で異なるラベル画像が連結する箇所があった場合、連結したラベル番号の組を仮ラベルテーブルに記憶する。ラベリング処理装置は、仮ラベルテーブルを再編成し、最終的に作成されたテーブルに基づいて、仮ラベル画像を再ラベリングし、ラベル画像を作成する。
【0065】
これにより、ラベリング装置は、ラベリング処理に必要な演算量が減少し、処理速度が向上し、ラベリング処理の実行にかかる時間を短縮できる。また、ラベリング処理をハードウェアで実現する場合には、ハードウェアを容易に開発することできるとともに、ハードウェアの処理速度を向上することができる。
【図面の簡単な説明】
【図1】ラベリング処理装置の構成を示す図である。
【図2】ラベリング処理装置に入力される2値画像の1例を示す図である。
【図3】仮ラベル画像の1例を示す図である。
【図4】仮ラベルテーブルの1例を示す図である。
【図5】再ラベルテーブルの1例を示す図である。
【図6】ラベリング処理をソフトウェアで実行する際のラベリング処理装置の構成を示す図である。
【図7】ラベリング処理の手順を示すフローチャートである。
【図8】マスク内の画素を示す図である。
【図9】再ラベルテーブルの作成規則を示す図である。
【図10】再ラベルテーブルの作成規則を示す図である。
【図11】再ラベルテーブルの作成規則を示す図である。
【図12】再ラベルテーブルの作成規則を示す図である。
【図13】再ラベルテーブルの作成規則を示す図である。
【図14】再ラベルテーブルの作成規則を示す図である。
【図15】再ラベルテーブル、第1中間テーブル、第2中間テーブル、および最終ラベルテーブルの1例を示す図である。
【図16】画像処理装置の構成を示す図である。
【図17】ボールグリッドアレイの形状を示す図である。
【符号の説明】
1 ラベリング装置、3 画像処理装置、12 仮ラベル画像作成部、13 再ラベルテーブル作成部、14 ラベル画像作成部、15 記憶部、31 撮像部、32 ラベリング部、33 解析部
Claims (12)
- 2値画像にラベリング処理を施し、仮ラベル画像を作成する仮ラベル画像作成手段と、
上記仮ラベル画像の異なるラベル番号が連結している箇所のラベル番号を格納した仮ラベルテーブルを作成する仮ラベルテーブル作成手段と、
上記仮ラベルテーブルに基づいて、仮ラベル画像のラベル番号に対する最終ラベル画像のラベル番号を格納した再ラベルテーブルを作成する再ラベルテーブル作成手段と、
上記再ラベルテーブルを参照して、仮ラベル画像のラベル番号を変換し、最終ラベル画像を作成する最終ラベル画像作成手段と
を備えることを特徴とするラベリング処理装置。 - 上記仮ラベルテーブル作成手段は、任意の画素のラベル番号と、上記任意の画素の周囲の画素のラベル番号とを比較し、これらのラベル番号が異なる場合、上記任意の画素と異なるラベル番号を上記任意の画素のラベル番号に対応付けて、仮ラベルテーブルに格納することを特徴とする請求項1記載のラベリング処理装置。
- 上記2値画像は、3次元画像であり、
上記仮ラベルテーブル作成手段は、上記任意の画素のラベル番号と上記任意の画素の周囲に存在する3×3×2の画素集合のラベル番号とを比較して仮ラベルテーブルを作成することを特徴とする請求項2記載のラベリング処理装置。 - 上記再ラベルテーブル作成手段は、上記仮ラベルテーブルに格納された異なるラベル番号が同一のラベル番号に変換されるように、仮ラベル画像のラベル番号と最終ラベル画像のラベル番号との対応を付けることを特徴とする請求項1記載のラベリング処理装置。
- 2値画像にラベリング処理を施し、仮ラベル画像を作成する仮ラベル画像作成工程と、
上記仮ラベル画像の異なるラベル番号が連結している箇所のラベル番号を格納した仮ラベルテーブルを作成する仮ラベルテーブル作成工程と、
上記仮ラベルテーブルに基づいて、仮ラベル画像のラベル番号に対する最終ラベル画像のラベル番号を格納した再ラベルテーブルを作成する再ラベルテーブル作成工程と、
上記再ラベルテーブルを参照して、仮ラベル画像のラベル番号を変換し、最終ラベル画像を作成する最終ラベル画像作成工程と
を有することを特徴とするラベリング処理方法。 - 上記仮ラベルテーブル作成工程は、上記仮ラベル画像の任意の画素のラベル番号と、上記任意の画素の周囲の画素のラベル番号とを比較し、これらのラベル番号が異なる場合、上記任意の画素とラベル番号の異なるラベル番号を上記任意の画素に対応付けて、仮ラベルテーブルに格納することを特徴とする請求項5記載のラベリング処理方法。
- 上記2値画像は、3次元画像であり、
上記任意の画素のラベル番号と上記任意の画素の周囲に存在する3×3×2の画素集合のラベル番号とを比較して仮ラベルテーブルを作成することを特徴とする請求項5記載のラベリング処理方法。 - 上記再ラベルテーブル作成工程では、上記仮ラベルテーブルに格納された異なるラベル番号が同一のラベル番号に変換されるように、仮ラベル画像のラベル番号と最終ラベル画像のラベル番号との対応を付けることを特徴とする請求項5記載のラベリング処理方法。
- 物体の画像を撮像する撮像手段と、
上記撮像手段によって撮像された画像にラベリング処理を施し、仮ラベル画像を作成する仮ラベル画像作成手段と、
上記仮ラベル画像の異なるラベル番号が連結している箇所のラベル番号を格納した仮ラベルテーブルを作成する仮ラベルテーブル作成手段と、
上記仮ラベルテーブルに基づいて、仮ラベル画像のラベル番号に対する最終ラベル画像のラベル番号を格納した再ラベルテーブルを作成する再ラベルテーブル作成手段と、
上記再ラベルテーブルを参照して、仮ラベル画像のラベル番号を変換し、最終ラベル画像を作成する最終ラベル画像作成手段と
上記ラベル画像をもとに物体の状態を解析する解析手段と
を備えることを特徴とする画像処理装置。 - 上記仮ラベルテーブル作成手段は、任意の画素のラベル番号と、上記任意の画素の周囲の画素のラベル番号とを比較し、これらのラベル番号が異なる場合、上記任意の画素と異なるラベル番号を上記任意の画素に対応付けて、仮ラベルテーブルに格納することを特徴とする請求項9記載の画像処理装置。
- 上記撮像手段により撮像された画像は、3次元画像であり、上記仮ラベルテーブル作成手段は、上記任意の画素のラベル番号と上記任意の画素の周囲に存在する3×3×2の画素集合のラベル番号とを比較して仮ラベルテーブルを作成することを特徴とする請求項9記載の画像処理装置。
- 上記再ラベルテーブル作成手段は、上記仮ラベルテーブルに格納された異なるラベル番号が同一のラベル番号に変換されるように、仮ラベル画像のラベル番号と最終ラベル画像のラベル番号との対応を付けることを特徴とする請求項9記載の画像処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002325805A JP2004164017A (ja) | 2002-11-08 | 2002-11-08 | ラベリング処理装置、ラベリング処理方法、及び画像処理装置 |
PCT/JP2003/012736 WO2004042657A1 (ja) | 2002-11-08 | 2003-10-03 | ラベリング処理装置及び処理方法、並びに画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002325805A JP2004164017A (ja) | 2002-11-08 | 2002-11-08 | ラベリング処理装置、ラベリング処理方法、及び画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004164017A true JP2004164017A (ja) | 2004-06-10 |
Family
ID=32310484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002325805A Withdrawn JP2004164017A (ja) | 2002-11-08 | 2002-11-08 | ラベリング処理装置、ラベリング処理方法、及び画像処理装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2004164017A (ja) |
WO (1) | WO2004042657A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244083A (ja) * | 2005-03-02 | 2006-09-14 | Canon Electronics Inc | 画像処理装置 |
JP2008234349A (ja) * | 2007-03-20 | 2008-10-02 | Nippon Hoso Kyokai <Nhk> | 多次元ラベリング装置、多次元ラベリングシステム及び多次元ラベリングプログラム |
US7912286B2 (en) | 2005-05-10 | 2011-03-22 | Ricoh Company, Ltd. | Image processing apparatus and method of image processing capable of effective labeling |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0231428B2 (ja) * | 1985-03-29 | 1990-07-13 | Fujitsu Ltd | Ryoikinoraberutsukekairo |
-
2002
- 2002-11-08 JP JP2002325805A patent/JP2004164017A/ja not_active Withdrawn
-
2003
- 2003-10-03 WO PCT/JP2003/012736 patent/WO2004042657A1/ja active Application Filing
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244083A (ja) * | 2005-03-02 | 2006-09-14 | Canon Electronics Inc | 画像処理装置 |
JP4606203B2 (ja) * | 2005-03-02 | 2011-01-05 | キヤノン電子株式会社 | 画像処理装置 |
US7912286B2 (en) | 2005-05-10 | 2011-03-22 | Ricoh Company, Ltd. | Image processing apparatus and method of image processing capable of effective labeling |
JP2008234349A (ja) * | 2007-03-20 | 2008-10-02 | Nippon Hoso Kyokai <Nhk> | 多次元ラベリング装置、多次元ラベリングシステム及び多次元ラベリングプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2004042657A1 (ja) | 2004-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI737659B (zh) | 半導體試樣的基於深度學習之檢查的方法及其系統 | |
TWI731303B (zh) | 產生可用於檢查半導體樣品的訓練集之方法及其系統 | |
JP6924413B2 (ja) | データ生成装置、データ生成方法及びデータ生成プログラム | |
JP5602771B2 (ja) | 欠陥分類における設計情報及び欠陥画像情報の使用 | |
JP7146857B2 (ja) | ディープラーニングに基づきウェーハ欠陥画像を用いてウェーハの欠陥を分類するための方法およびシステム | |
JP2019091249A (ja) | 欠陥検査装置、欠陥検査方法、及びそのプログラム | |
JPH06251127A (ja) | 照射領域の認識方法 | |
JP2006066478A (ja) | パターンマッチング装置及びそれを用いた走査型電子顕微鏡 | |
US20210390282A1 (en) | Training data increment method, electronic apparatus and computer-readable medium | |
Branikas et al. | A novel data augmentation method for improved visual crack detection using generative adversarial networks | |
JP2005317818A (ja) | パターン検査装置およびパターン検査方法 | |
Deshmukh et al. | Fine object detection in automated solar panel layout generation | |
Chen et al. | Multi-scale GAN with transformer for surface defect inspection of IC metal packages | |
CN117751382A (zh) | 基于异常的缺陷检查方法和系统 | |
CN113724185A (zh) | 用于图像分类的模型处理方法、装置及存储介质 | |
US7260254B2 (en) | Comparing images | |
CN113516639A (zh) | 基于全景x光片的口腔异常检测模型的训练方法及装置 | |
JP2004164017A (ja) | ラベリング処理装置、ラベリング処理方法、及び画像処理装置 | |
Pahwa et al. | Automated void detection in TSVs from 2D X-ray scans using supervised learning with 3D X-ray scans | |
WO2023110285A1 (en) | Method and system of defect detection for inspection sample based on machine learning model | |
Wan et al. | C2BNet: A Deep Learning Architecture with Coupled Composite Backbone for Parasitic EGG Detection in Microscopic Images | |
JP2005241886A (ja) | 地理画像間変化領域の抽出方法、地理画像間変化領域を抽出可能なプログラム、閉領域抽出方法及び閉領域抽出可能なプログラム | |
Xie et al. | Fusionmamba: Dynamic feature enhancement for multimodal image fusion with mamba | |
US20030185431A1 (en) | Method and system for golden template image extraction | |
KR102621971B1 (ko) | 수직형 구조물의 딥러닝 기반 3차원 외관 손상 모델 구축 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060110 |