曲線物体輪郭線の特徴評価方法及び装置
【課題】画像から曲線物体の輪郭線を抽出し、その特徴を的確に評価する。
【解決手段】画像から曲線物体の輪郭線を抽出し、その特徴を評価する際に、特徴を含む設定区間を、特徴に向けて順次せばめて行った際に、特徴が再び検出された時のくり返し検出数である多重度を求め、該多重度に応じた評価値を用いる。ここで、前記多重度を用いて、輪郭線の山の特徴を評価することができる。更に、輪郭線上にランダムに発生させた不定点に応じた評価値を加えることができる。又、不定点の評価値の最大値が、山の評価値の最小値よりも小さくなるようにすることができる。
【解決手段】画像から曲線物体の輪郭線を抽出し、その特徴を評価する際に、特徴を含む設定区間を、特徴に向けて順次せばめて行った際に、特徴が再び検出された時のくり返し検出数である多重度を求め、該多重度に応じた評価値を用いる。ここで、前記多重度を用いて、輪郭線の山の特徴を評価することができる。更に、輪郭線上にランダムに発生させた不定点に応じた評価値を加えることができる。又、不定点の評価値の最大値が、山の評価値の最小値よりも小さくなるようにすることができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、曲線物体輪郭線の特徴評価方法及び装置に係り、特に、電子部品の表面実装装置等において、部品の位置決め等に用いるのに好適な、画像から曲線物体の輪郭線を抽出し、その特徴、特に、窪みや突起を評価する際に用いるのに好適な、曲線物体輪郭線の特徴評価方法及び装置に関する。
【背景技術】
【0002】
画像を使った解析、位置決め、欠陥検査、判別、意味理解等の画像認識において、認識対象の輪郭線は重要である。そこで、輪郭線から直線や円弧等の抽象データを取出し、それらを使って認識を行なうことが広く行なわれている。
【0003】
例えば特許文献1では、輪郭線を方向コード(0〜7)で記述し、曲線の変化を計算し、更にそれを平均化したものを生成し、これを基に窪みや突起を検出している。
【0004】
又、特許文献2では、輪郭線の接線方向について、変化率(曲率)を監視し、その符号と大きさにより、凸曲線セグメント、凹曲線セグメント、及び直線分セグメントを抽出している。
【0005】
又、特許文献3では、輪郭線を任意の長さに分解した初期状態から始め、誤差が基準値を越えれば短くし、誤差が基準値以下なら長くするという、単純な繰り返しにより、直線と円弧を抽出している。このとき、修正する際の増減値を、前回の増減値の1/2に設定することが特徴であり、2分探索に似た高速な収束を効果としている。
【0006】
更に、特許文献4では、渦巻き状に広がる巻貝を用いて部品の輪郭線を抽出し、輪郭線上の部品特徴を求めることが記載されている。
【0007】
【特許文献1】特公平1−30183号公報
【特許文献2】特開平3−250380号公報
【特許文献3】特許第3883993号公報
【特許文献4】特開2001−251097号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、従来技術は、いずれも、窪みや突起の先端である座標1点と、その接線方向が出力されるだけであり、形が良く大きな窪みや突起と、逆に形が悪い又は小さい窪みや突起を区別することができなかった。
【0009】
即ち、図1において、従来技術でも、物体1の窪み3、及び、突起2、4、5、6、7、8を抽出することはできる。しかし、この物体1を認識するときに最も使いたい特徴は、形が良く大きな窪みや突起であるところの窪み3と、突起2、4、5、8であり、逆に使いたくない特徴は、形が悪い又は小さい窪みや突起であるところの突起6、7である。しかし従来技術では、その区別のための情報が出力されていない。使うべきものと捨てるべきものを区別するためには、そのための評価値を出力することが必要である。
【0010】
なお、突起6と7がいつでも不要とは限らない。図2に例示する如く、円に相似な物体1´があり、その外周に現われる唯一の変化が突起6や7であった場合、これらは重要な位置決め情報となる。即ち、要不要は相対的なものであり、問題の評価値は、円形状の場合、突起6や7の評価値が最も高くなる必要がある。しかしながら従来は、このような評価値を適切に決定することができなかった。
【0011】
本発明は、前記従来の問題点を解消するべくなされたもので、輪郭線の特徴を適切に評価できるようにすることを課題とする。
【課題を解決するための手段】
【0012】
本発明は、画像から曲線物体の輪郭線を抽出し、その特徴を評価する際に、特徴を含む設定区間を、特徴に向けて順次せばめて行った際に、特徴が再び検出された時のくり返し検出数である多重度を求め、該多重度に応じた評価値を用いるようにして、前記課題を解決したものである。
【0013】
ここで、前記多重度を用いて、輪郭線の窪みや突起(山と総称する)の特徴を評価することができる。
【0014】
更に、輪郭線上にランダムに発生させた不定点に応じた評価値を加えることができる。
【0015】
又、前記不定点の評価値の最大値が、山の評価値の最小値よりも小さくなるようにすることができる。
【0016】
本発明は、又、画像から曲線物体の輪郭線を抽出し、その特徴を評価する曲線物体輪郭線の特徴評価装置において、特徴を含む設定区間を、特徴に向けて順次せばめて行った際に、特徴が再び検出された時のくり返し検出数である多重度を求める手段と、該多重度に応じた評価値を求める手段と、を備えたことを特徴とする曲線物体輪郭線の特徴評価装置を提供するものである。
【発明の効果】
【0017】
本発明によれば、曲線物体の輪郭線の特徴の正しい評価値を得ることができる。特に、多重度は、山の深さ(高さ)と形の良さを適切に表わすことができる。
【0018】
更に、確固たる特徴である多重度に応じた評価値に、不定の特徴である不定点に応じた評価値を加えることによって、外周に殆ど特徴が無いような曲線物体でも認識が可能となる。
【発明を実施するための最良の形態】
【0019】
以下図面を参照して、本発明の実施形態を詳細に説明する。
【0020】
図3は、本発明を実施するための図形特徴データ抽出装置の主要部のブロック構成を示す図である。
【0021】
本実施形態は、例えば照明100により照明される物体1をテレビカメラ102で撮影して入力する画像入力部104と、画像から物体の輪郭線を抽出するための画像輪郭線抽出部106と、輪郭線から物体の特徴データを抽出するための図形特徴データ抽出部110及び物体特徴データのデータベース112と、前記画像輪郭線抽出部106で抽出された輪郭線からRemark(窪みや突起)を全て見つけて出力するR発生部120と、該R発生部120から出力された個々のRに要不要の評価値νを埋め込むR評価部122と、前記輪郭線から不定点(Transient)を出力するT発生部124と、該T発生部124から出力された個々のTに要不要の評価値νを埋め込むT評価部126と、全体を制御して、次の物体を撮像し、物体の特徴データを抽出し、物体特徴データのデータベース112に出力する制御部130とを主に備えている。
【0022】
以下、実施例を詳しく記述する。
【0023】
本発明は、輪郭線から良いRと良いTを出力するための方法に関するものである。
【0024】
図1において、Rとは、Remark即ち窪みや突起であり、窪み3、突起2、4、5、6、7、8のことである。
【0025】
Tとは、Transient即ち不定点(ランダム点)であり、Rの個数が不足したときに、周上にランダムに発生させる不定点9のことである。
【0026】
図4(a)に輪郭線の構造を示す。輪郭線は折れ線であって、進行方向30の向きに進む頂点座標31の列である。各頂点でその近傍頂点列32を均すことにより接線方向33を得ることができる。
【0027】
まず最初に、全ての輪郭線に長さの評価値ζをつけておく。ζは0〜1の値を持ち、輪郭線の長さλが大きいほどζも大きい。
【0028】
図5において、認識しようとする物体の輪郭線1は最も長く(λ=MAX)、外部の異物の輪郭線13は次に長く、認識物体の内部のキズや模様等の輪郭線12は最も短い(λ=MIN)。
【0029】
図6(a)に、λとζのグラフ(関数)の例を示す。この関数は、λ=MAXのときζ=1、λ=MINのときζ=C1とする。C1は正の定数で任意値でよいが、例えばC1=0.1とすることができる。
【0030】
関数はλの増加関数なら適当でよい。実施例では、座標(MIN,C1)で底を持ち、中央点70を通るような2次関数を設定した。なおグラフ後半の中央点70から座標(MAX,1)までのグラフは、前半の180°回転である。
【0031】
この評価関数によると、図5の輪郭線1のζ=1.0、輪郭線12のζ=0.1、輪郭線13のζ=0.2(例えば)となり、ほど良い評価結果を得ている。
【0032】
次にRを発生させる。
【0033】
図7(a)にRの構造を示す。Rは座標と輪郭線の接線方向を持つ。又、その総合評価値(=要不要の度合い)ν(0.5〜1.0)を持つ。他のデータはνを生成するための材料である。
【0034】
図4に本実施例で出力するRの目標とする座標を示す。図4(a)は直線で挟まれた形状である。この場合、交点に最も近い頂点34の近傍がRの目標とする座標である。図4(b)は曲線形状であり、しかも周長においてミクロ的にもマクロ的にも左右対称の場合である。この場合、左右対称の中心線(図示しない)との交点に最も近い頂点40の近傍がRの目標とする座標である。図4(c)は直線と曲線で挟まれた形状であり、ミクロ的には左右対称、マクロ的には左右非対称の場合の代表例である。この場合、座標43と座標45の中間座標、たとえば座標44がRの目標とする座標である。ここで、座標43はミクロの範囲で得たR座標、座標45はマクロの範囲で得たR座標である。
【0035】
図8はR発生部120の処理手順を示す流れ図であり、以下この流れに従って順に説明する。
【0036】
ステップS1で、周長Γの列(Γ1、Γ2、・・・)を大きい順に用意する。Γは物体サイズから適当に決めれば良い。
【0037】
ステップS2で、最初のΓ1に位置付ける。R生成個数kを0とする。
【0038】
ステップS3で、次の周長Γがある限り以下の処理を続ける。全てのΓを処理すると終了する。
【0039】
ステップS4で、最初の輪郭線に位置付ける。
【0040】
ステップS5で、区間の始点S(図9のS0)を輪郭線の始点に置く。
【0041】
ステップS6で、次の輪郭線がある限り続ける以下の処理を続ける。全ての輪郭線を処理したらステップS3に戻る。
【0042】
ステップS7で、状態遷移のフラグstateをOFF(最良山を持っていない)にする。山とは窪み/突起の総称である。
【0043】
ステップS8で、Sが輪郭線の終点に達するまで以下の処理を続ける。但し、これは輪郭線が閉じた(=1周する)ときに必要な処理であって、開いたときは、終点からΓ戻った地点まで到達したら中断してよい。
【0044】
ステップS9で、山検出フラグmntをOFF(山ではない)にする。
【0045】
ステップS10で、Sからの周長が初めてΓ以上となる頂点Eを探す。即ち、図9において、現在のΓ=Γ1、現在のS=S0であり、Sから始めて頂点間の距離を積算し続けると、Γ1に等しいか超える頂点E0に達する。このS0からE0までを現在区間と呼ぶことにする。
【0046】
ステップS11で、山形状の事前検査を行なう。これは以下の検査がある。
【0047】
(1)現在区間の頂点数(S0とE0を除く)が十分多いこと。これは、例えば定数=3以上とすることができる。但し、定数は任意である。
【0048】
(2)ヒゲを除くため、開口部の距離S0E0がある程度大きいこと。これは、例えば0.2×Γ1以上とすることができる。但し、定数は任意である。
【0049】
(3)現在区間の頂点(S0とE0を除く)が全て、直線S0E0のどちらか一方の側に偏在していること。
【0050】
(4)現在区間の深さM0G0が十分に大きいこと。これは、例えば0.2×Γ1以上とすることができる。但し、定数は任意である。
【0051】
M0は次のように求める。即ち、現在区間の周長をγとするとき(γ≧Γ1)、S0からの周長を測り、γ/2の地点を求めてこれをM0とする。従って、M0は一般に頂点と頂点の間に落ちるので、線形補間により正確な座標を求めることが重要である。G0はS0E0の中心である。
【0052】
以上全ての事前検査を合格したら、次のステップS13に行く。いずれかが不合格ならステップS17に行く。
【0053】
ステップS13で、交差角度検査を行なう。これはS0E0とM0G0が直交(=90°)に近いことを要求する。これは、|cosθ|≦D1で判定する。例えば、D1=cos80°とする。但し、定数は任意である。
【0054】
ステップS14で、左右対称検査を行なう。これは中心線M0G0に対して、S0、E0の接線方向であるそれぞれβs、βeが同じ角度に開いていることを要求するものである。
【0055】
演算は次のように行なう。ベクトルM0G0の方向余弦を(cosα、sinα)とする。S0の近傍を適当に均すことで、図の向きの接線方向βsを得ることができる。βeについても同様である。いずれも方向余弦の形で求めておく。
【0056】
φs=βs−α、φe=βe−α、を計算する。
【0057】
次に、φ=φs+φeを計算する。もし、完全な左右対称ならφ=0°=(1,0)となる。従ってこの検査では、これは|sinφ|≦D2で判定する。例えば、D2=sin10°とする。但し、定数は任意である。
【0058】
ステップS15で、現在山の評価値e=|sinθ||cosφ|を計算する。eは0〜1の値を持ち、直交に近いほど、左右対称に近いほど1に近付く。1に近いほど良い山である。eは山の連続があるとき、最も良い山を見つけるために使われる。
【0059】
ステップS16で、mntをONにする。これは山が一つ見つかったことを示す。
【0060】
ステップS17で、状態遷移フラグstateを見る。
【0061】
ステップS18で、mntがONであり、最良山を持っていない場合、ここが山であれば、ステップS19で、最良山に現在山を複写して、最良山の候補とする。即ち、見つかれば直ちに出力するわけではない。stateにONをセットする。
【0062】
ステップS20で、mntがOFFであり、最良山を持っている場合、ここが山で無ければ、ここで初めて出力できるので、ステップS21で、最良山をRとして出力する。stateにOFFをセットし、再び山が無い状態とする。
【0063】
以下、最良山をRとして出力するときの処理を説明する。
【0064】
図9において、最良山が仮に区間S0E0のものとする。ここで、先に現在区間の記述に使ったS0E0と同じ名称を使うので、混同しないように注意する。
【0065】
(1)直線S0E0と距離が最も大きい頂点P0を探す。複数あるときはその始端と終端の中央付近の同最大距離の頂点とすればよい。
【0066】
(2)P0からS0E0に垂線を降ろし、その足をH0とする。
【0067】
(3)H0P0(長さh)上、中央付近(例えば、h/4〜(3/4)h内)に、適当な広がりで、H0からP0に向かって、例えば4等分して5個の点列を発生させる。但し、これの位置を決める定数は適当で良い。
【0068】
(4)各発生点からH0P0に直交(従ってS0E0に平行)する直線を引く(例えば直線50)。
【0069】
(5)その直線50と現在区間のS0側、E0側それぞれの交点51、52を求める。
【0070】
(6)交点間の中点53を出力する。以上を5本分繰り返す。
【0071】
(7)5個の中点列から最小2乗近似直線54を引く。
【0072】
(8)P0からその直線54に垂線を降ろし、その垂線の足をz0とする。z0がこの山の出力座標Q1である。
【0073】
(9)z0における山の接線方向τ0は、ベクトルH0P0を±90°回転した方向から作る。図9は現在区間が反時計回りであるから、+90°回転する(もし時計回りであるなら、−90°回転する)。
【0074】
これにより、山の出力Qを得ることができる。即ちQ=(座標z0、接線方向τ0)である。図10において、各Γ毎にQが出力されることに注意する。即ち、Γ1からQ1、Γ2からQ2、・・・とΓ5からのQ5まで続く。
【0075】
Q1も含めて全ての出力Qは、既に登録されている個々のRのε近傍に入っているかどうかの検査を行なう。これはむやみにRの個数を増やさないためである。ここでεは適当に定めれば良く、例えば物体長の0.1倍とする。
【0076】
ここでは1回目のQ1は登録されるものとする。実際、周りに山が無いからである。登録されたQのことをRと呼ぶ。
【0077】
Rのζに現在の輪郭線のζを複写する。
【0078】
RのγにQ1の区間長γ(S0からE0までの実際の長さ)を複写する。このγは以降の処理で変更してはならない。
【0079】
又、Rの多重度と呼ぶmを1にする。
【0080】
Rの個数kを一つ増やす。
【0081】
2回目のQ2はRのε近傍に入っているので、Q2は登録しない。その代わりRの修正を行なう役目を持つ。
【0082】
即ち、図11において、Q1(=R)、Q2の座標をそれぞれq1、q2、接線方向(方向余弦)をそれぞれω1、ω2とする。
【0083】
新座標q´は、q1、q2をΓ2:Γ1に内分して得る。
【0084】
新接線方向ω´は、ω1、ω2を同じくΓ2:Γ1に内分して得る。このときのやり方としては、開き角度δを求め、δは0°に近いことを利用し(実際ほとんど2°未満である)、sinδ(符号付)をΓ2:Γ1に内分すれば良い。即ち、修正角度β(図には無い)のsinβ=(Γ2/(Γ1+Γ2))sinδであり、従ってcosβ=√(1−sinβの2乗)とする。ω´はω1をβ回転したものである。
【0085】
以上の座標修正、角度修正は非常に重要である。この修正により、Rの座標と接線方向を安定することができる。
【0086】
最後に、Rの多重度mを一つ上げて2とする。これでQ2による修正が完了した。
【0087】
同じことを引き続くQ3以降でも繰り返す。最終のQ5まで繰り返したとき、このRの多重度mは5になっている。
【0088】
多重度の役割については後述する。
【0089】
ステップS22で、最良山を持っている場合、ここが山であれば、山が連続したことになる。従って、ステップS22で、最良山と現在山で良い方の山を選ぶ。即ち、ステップS23で、現在山の評価値の方が高ければ、最良山に現在山を複写する。もし同じか低ければ何もしない。
【0090】
ステップS24で、現在山があってもなくてもS0を周長δ1移動し、次はS1から始める。但し、δ1は頂点位置変位で、例えばδ1=1(一つずつ移動)とする。但し、この定数は任意である。
【0091】
以下は新しいS1でステップ8から同じことを繰り返す。
【0092】
なお、ステップS21において、注意すべきは円又は同相の、即ち特徴の無いところから山を出力しないようにすることである。
【0093】
即ち、図12において、既に中点で示すところの山M0が出力されてRとなっているものとする(直前のR)。
【0094】
その後、山M1の出力をしようとするが、形状がほとんど直前のRと同じであることが分かる。
【0095】
即ち、例えば開口部SEの距離が同じであり、MからSEまでの距離が同じであり、更にM0、M1それぞれの接線方向βs、βeの相対的な方向が同じであるときは、同じ山であると結論してよい。
【0096】
このようなときは、山M1を出力しないことは勿論、直前Rそのものも出力リストから抹消する。
【0097】
ステップS3で全てのΓで処理が終了したらR発生が終了する。
【0098】
R発生が終了したら、次に、R評価部122でRの評価を行なう。
【0099】
図6(b)に多重度mの評価関数ωの一例を示す。
【0100】
まず、生成されたRの集合で、そのmについて、最大値(MAX)と最小値(MIN)を得る。図13は生成されたRの集合の多重度(Mで示す)を示す。MAX=5、MIN=1である。
【0101】
特徴として、図14に例示する如く、より好ましいところの形が良く大きな山には大きな多重度が出力されていること、逆に、形が悪い、あるいは小さい山には小さな多重度が出力されていることに注意する。
【0102】
図6(b)に戻って、Rのそれぞれに多重度mが記入されているから、そのmで図の関数値ωを得る。ここで使う関数は、図6(a)のζ評価のときのものと同じような規則で作ればよい。定数C2は適当でよく、例えばC2=0.2とすることができる。
【0103】
次に図6(c)に長さγの評価関数ψを示す。生成されたRの集合で、そのγについて、最大値(MAX)と最小値(MIN)を得る。
【0104】
Rのそれぞれに長さγが記入されているから、そのγで図の関数値ψを得る。ここで使う関数は図6(a)のζ評価のときのものと同じような規則で作ればよい。定数C3は適当でよく、例えばC3=0.2とすることができる。
【0105】
次に、Rのそれぞれに、形と大きさの評価値ηをセットする。Rのηは、
η=多重度評価値×長さ評価値=ω×ψ
である。
【0106】
次にRのそれぞれに、総合評価値νをセットする。Rのνは、
ν=0.5+0.5ζη
である。この式によると、νは0.5〜1.0の値を持ち、輪郭線の評価値ζが大きく、形と大きさの評価値ηが大きいほど大きい。
【0107】
図5で、黒丸はRであることを示し、そのν値を示している。特徴として、好ましい地点のRほど大きなνが出力されていることに注意する(Rの最小値が0.5であることに注意)。
【0108】
特に図13において、多重度ではR63とR64は共にm=4であり区別できないが、図2ではそれぞれν=0.9、ν=0.6と大きく差がついていることに注意する。これは輪郭線の評価値ζの働きによるものである。
【0109】
図15に、出力されたRを示す。Rを物体認識で使う場合には、例えば三角形R1R2R9の形状を学習して記録し、認識のとき同じ形が現われるかどうかを調べればよい。
【0110】
図では12個のRが出力されているが、この数では必ずしも十分でないことがある。用途によっては外周に関する情報が欲しい場合がある。
【0111】
例えば、外周部にランダムに配置される点Tは、数が多ければ認識の情報に使うことができる。
【0112】
図7(b)に、Tの構造を記述する。
【0113】
Tは座標と輪郭線の接線方向を持つ。又その総合評価値(=要不要の度合い)ν(0〜0.5)を持つ。
【0114】
例えば、三角形R2R8T3を学習したとする。認識においては別画像であるから一般に異なる場所、例えばTxに発生する。
【0115】
しかし三角形R1R8Txは学習三角形R2R8T3と良く似ているので、学習物体の可能性として出力することができる。
【0116】
Tが必要か否かはRの個数kに従うのが良い。図16は、Tの必要個数Ntの生成関数である。これも図6(a)のζ生成関数と同じ原理でつくることができる(上下を反対にする)。Rの十分個数REは適当でよく、例えばRE=25とすることができる。関数はk=REでNt=0を出力する、即ちTは不要である。一方k=0ではTS個を出力する。TSはTだけで認識できるための必要個数であり、物体のサイズその他から決めればよい。例えば定数TS=80を割り当てても良い。
【0117】
Tの発生は至って単純である。即ち、図15において、各輪郭線の始点にまず発生し、予め計算しておいた距離毎に周を進み、そこに発生する。但しRのε近傍に入っているときは発生しない。
【0118】
Tが進む距離は、輪郭線集合全体の距離をNtで除した商から決めればよい。
【0119】
Tのζは輪郭線の評価値の複写である。
【0120】
Tのνは、ν=0.5ζとする。これにより輪郭線が最大評価値ζ=1のときでもν=0.5となり、Rの最小値以下となるので両者を差別する上で都合が良い。
【0121】
図5に最終的に出力されたRとTを示す。黒丸がRであり、白丸がTである。図には書かれていないが、それぞれ輪郭線の接線方向を持つ。ν値は分かり易さのために小数点以下1桁とした。
【0122】
これによると、明らかに特徴で使いたいところはνが非常に高く、逆に使いたくない特徴は低い。特に、内部の雑音12のνは低く、又、外部の雑音13のνも低いことに注目する。
【0123】
このようにして、R(窪み/突起)の正しい評価値νを得ることができる。νは優れた指針であり、認識対象で、しかも強い特徴ほど大きなνとなって現われる。
【0124】
即ち、
ν=0.5+0.5ζη
=0.5+0.5ζ(λ)ω(m)ψ(γ)
とすると、ζ(λ)は母体輪郭線の長さλが大きいほど大きい。ω(m)は多重度mが大きいほど大きい。ψ(γ)は周の長さγが大きいほど大きい。以上により、ν値は3項全てが大きいときのみ大きくなるのであって、これはRの正しい評価値となっている。
【0125】
特に、図6(a)、(b)、(c)に示すとおり、ζ(λ)、ω(m)、ψ(γ)は、それぞれλ、m、γの値の範囲(MAXとMIN)に従う関数であることに注意する。即ち評価値が高いか低いかは、その集合のMAX値とMIN値による。
【0126】
例えば図6(b)において多重度mの評価値ω(m)はmの範囲による。即ち先に言及したが、図2に例示した如く、円形物体1´があって、その円周上にわずかに窪み/突起6、7がある場合、それらの多重度が例えばm=1とm=2だけのときがある。その場合、MAX=2、MIN=1であり、m=2を得たものは最大評価値ω=1となる。これは、その窪み/突起の多重度の正しい評価値である。
【0127】
ここで、多重度mは窪み/突起の深さ(高さ)と形の良さを表わす指標である。
【0128】
即ち、図14において、(a)、(b)、(c)は、いずれも同じ開口長eを持つ窪み(突起)である。しかし、図のように多重度はそれぞれ異なっている。(b)の多重度が(a)に較べて小さいのは深さ(高さ)が小さいからであり、(c)の多重度が(a)に較べて小さいのは先端部の形が悪いからである。
【0129】
このように、多重度mの値は窪み(突起)が深いほど(高いほど)、又形が良いほど大きいのでRの評価の一つとして有効である。
【0130】
又、R単独、又はRとTの組合せで認識を行なうことができる。その際に、それぞれの評価値νは優れた指針であり、良いR又は良いTだけを取り出して最高の集合をつくることができる。これにより、外周に殆ど特徴が無いような曲線物体でも認識が可能になる。
【0131】
なお、実施例では評価値生成関数として、2次関数を使ったが、単調に増加あるいは減少する関数であれば何でも良い。極端な例として直線でも良い。その場合でも効果は殆ど変わらない。
【0132】
又、実施例では多重度mで評価できる輪郭線の特徴としてR(窪み/突起)を用いた。しかし、R以外にも存在する。例えば、L(直線)やC(円)等がその例である。
【0133】
図17の(a)は輪郭線の直線部(L)が長さの異なるΓ(図示しない)で抽出されたものである。このときにも、使われたΓの長さが5個なら、m=5とすればよい。(b)に示すように、凹凸の激しい区間があり、長い距離で見れば直線として検出可能で、逆に短い距離では検出不可能であるような場合、図のように3個の長さだけで検出されたので、多重度m=3である。
【0134】
図18は、輪郭線の円弧部(C)の長さが異なるΓ(図示しない)で抽出されたものである。このときも、使われたΓの長さが5個なら、m=5とすればよい。
【0135】
このように多重度は輪郭線から抽出されるあらゆる特徴形状に存在するのであって、その特徴形状の大きさと、形の良さを表わす尺度となり得る。
【図面の簡単な説明】
【0136】
【図1】曲線物体の形状の一例を示す図
【図2】円形物体の一例を示す図
【図3】本発明を実施するための図形特徴データ抽出装置の主要部構成を示すブロック図
【図4】Rの目標座標を示す図
【図5】本発明による評価値の付与例を示す図
【図6】本発明で用いる評価関数の例を示す図
【図7】同じくRとTの構造を示す図
【図8】同じくR発生の処理手順を示す流れ図
【図9】同じく実施例の処理方法を説明するための図
【図10】同じく処理方法を説明するための図
【図11】同じく処理方法を説明するための図
【図12】同じく処理方法を説明するための図
【図13】同じく処理方法を説明するための図
【図14】本発明の多重度を示す図
【図15】実施例の処理方法を説明するための図
【図16】同じくTの必要個数Ntの生成関数の例を示す図
【図17】輪郭線の直線部の抽出例を示す図
【図18】輪郭線の円弧部の抽出例を示す図
【符号の説明】
【0137】
1、1´、12、13…輪郭線
104…画像入力部
106…画像輪郭線抽出部
110…図形特徴データ抽出部
112…図形特徴データデータベース
120…R発生部
122…R評価部
124…T発生部
126…T評価部
130…制御部
【技術分野】
【0001】
本発明は、曲線物体輪郭線の特徴評価方法及び装置に係り、特に、電子部品の表面実装装置等において、部品の位置決め等に用いるのに好適な、画像から曲線物体の輪郭線を抽出し、その特徴、特に、窪みや突起を評価する際に用いるのに好適な、曲線物体輪郭線の特徴評価方法及び装置に関する。
【背景技術】
【0002】
画像を使った解析、位置決め、欠陥検査、判別、意味理解等の画像認識において、認識対象の輪郭線は重要である。そこで、輪郭線から直線や円弧等の抽象データを取出し、それらを使って認識を行なうことが広く行なわれている。
【0003】
例えば特許文献1では、輪郭線を方向コード(0〜7)で記述し、曲線の変化を計算し、更にそれを平均化したものを生成し、これを基に窪みや突起を検出している。
【0004】
又、特許文献2では、輪郭線の接線方向について、変化率(曲率)を監視し、その符号と大きさにより、凸曲線セグメント、凹曲線セグメント、及び直線分セグメントを抽出している。
【0005】
又、特許文献3では、輪郭線を任意の長さに分解した初期状態から始め、誤差が基準値を越えれば短くし、誤差が基準値以下なら長くするという、単純な繰り返しにより、直線と円弧を抽出している。このとき、修正する際の増減値を、前回の増減値の1/2に設定することが特徴であり、2分探索に似た高速な収束を効果としている。
【0006】
更に、特許文献4では、渦巻き状に広がる巻貝を用いて部品の輪郭線を抽出し、輪郭線上の部品特徴を求めることが記載されている。
【0007】
【特許文献1】特公平1−30183号公報
【特許文献2】特開平3−250380号公報
【特許文献3】特許第3883993号公報
【特許文献4】特開2001−251097号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、従来技術は、いずれも、窪みや突起の先端である座標1点と、その接線方向が出力されるだけであり、形が良く大きな窪みや突起と、逆に形が悪い又は小さい窪みや突起を区別することができなかった。
【0009】
即ち、図1において、従来技術でも、物体1の窪み3、及び、突起2、4、5、6、7、8を抽出することはできる。しかし、この物体1を認識するときに最も使いたい特徴は、形が良く大きな窪みや突起であるところの窪み3と、突起2、4、5、8であり、逆に使いたくない特徴は、形が悪い又は小さい窪みや突起であるところの突起6、7である。しかし従来技術では、その区別のための情報が出力されていない。使うべきものと捨てるべきものを区別するためには、そのための評価値を出力することが必要である。
【0010】
なお、突起6と7がいつでも不要とは限らない。図2に例示する如く、円に相似な物体1´があり、その外周に現われる唯一の変化が突起6や7であった場合、これらは重要な位置決め情報となる。即ち、要不要は相対的なものであり、問題の評価値は、円形状の場合、突起6や7の評価値が最も高くなる必要がある。しかしながら従来は、このような評価値を適切に決定することができなかった。
【0011】
本発明は、前記従来の問題点を解消するべくなされたもので、輪郭線の特徴を適切に評価できるようにすることを課題とする。
【課題を解決するための手段】
【0012】
本発明は、画像から曲線物体の輪郭線を抽出し、その特徴を評価する際に、特徴を含む設定区間を、特徴に向けて順次せばめて行った際に、特徴が再び検出された時のくり返し検出数である多重度を求め、該多重度に応じた評価値を用いるようにして、前記課題を解決したものである。
【0013】
ここで、前記多重度を用いて、輪郭線の窪みや突起(山と総称する)の特徴を評価することができる。
【0014】
更に、輪郭線上にランダムに発生させた不定点に応じた評価値を加えることができる。
【0015】
又、前記不定点の評価値の最大値が、山の評価値の最小値よりも小さくなるようにすることができる。
【0016】
本発明は、又、画像から曲線物体の輪郭線を抽出し、その特徴を評価する曲線物体輪郭線の特徴評価装置において、特徴を含む設定区間を、特徴に向けて順次せばめて行った際に、特徴が再び検出された時のくり返し検出数である多重度を求める手段と、該多重度に応じた評価値を求める手段と、を備えたことを特徴とする曲線物体輪郭線の特徴評価装置を提供するものである。
【発明の効果】
【0017】
本発明によれば、曲線物体の輪郭線の特徴の正しい評価値を得ることができる。特に、多重度は、山の深さ(高さ)と形の良さを適切に表わすことができる。
【0018】
更に、確固たる特徴である多重度に応じた評価値に、不定の特徴である不定点に応じた評価値を加えることによって、外周に殆ど特徴が無いような曲線物体でも認識が可能となる。
【発明を実施するための最良の形態】
【0019】
以下図面を参照して、本発明の実施形態を詳細に説明する。
【0020】
図3は、本発明を実施するための図形特徴データ抽出装置の主要部のブロック構成を示す図である。
【0021】
本実施形態は、例えば照明100により照明される物体1をテレビカメラ102で撮影して入力する画像入力部104と、画像から物体の輪郭線を抽出するための画像輪郭線抽出部106と、輪郭線から物体の特徴データを抽出するための図形特徴データ抽出部110及び物体特徴データのデータベース112と、前記画像輪郭線抽出部106で抽出された輪郭線からRemark(窪みや突起)を全て見つけて出力するR発生部120と、該R発生部120から出力された個々のRに要不要の評価値νを埋め込むR評価部122と、前記輪郭線から不定点(Transient)を出力するT発生部124と、該T発生部124から出力された個々のTに要不要の評価値νを埋め込むT評価部126と、全体を制御して、次の物体を撮像し、物体の特徴データを抽出し、物体特徴データのデータベース112に出力する制御部130とを主に備えている。
【0022】
以下、実施例を詳しく記述する。
【0023】
本発明は、輪郭線から良いRと良いTを出力するための方法に関するものである。
【0024】
図1において、Rとは、Remark即ち窪みや突起であり、窪み3、突起2、4、5、6、7、8のことである。
【0025】
Tとは、Transient即ち不定点(ランダム点)であり、Rの個数が不足したときに、周上にランダムに発生させる不定点9のことである。
【0026】
図4(a)に輪郭線の構造を示す。輪郭線は折れ線であって、進行方向30の向きに進む頂点座標31の列である。各頂点でその近傍頂点列32を均すことにより接線方向33を得ることができる。
【0027】
まず最初に、全ての輪郭線に長さの評価値ζをつけておく。ζは0〜1の値を持ち、輪郭線の長さλが大きいほどζも大きい。
【0028】
図5において、認識しようとする物体の輪郭線1は最も長く(λ=MAX)、外部の異物の輪郭線13は次に長く、認識物体の内部のキズや模様等の輪郭線12は最も短い(λ=MIN)。
【0029】
図6(a)に、λとζのグラフ(関数)の例を示す。この関数は、λ=MAXのときζ=1、λ=MINのときζ=C1とする。C1は正の定数で任意値でよいが、例えばC1=0.1とすることができる。
【0030】
関数はλの増加関数なら適当でよい。実施例では、座標(MIN,C1)で底を持ち、中央点70を通るような2次関数を設定した。なおグラフ後半の中央点70から座標(MAX,1)までのグラフは、前半の180°回転である。
【0031】
この評価関数によると、図5の輪郭線1のζ=1.0、輪郭線12のζ=0.1、輪郭線13のζ=0.2(例えば)となり、ほど良い評価結果を得ている。
【0032】
次にRを発生させる。
【0033】
図7(a)にRの構造を示す。Rは座標と輪郭線の接線方向を持つ。又、その総合評価値(=要不要の度合い)ν(0.5〜1.0)を持つ。他のデータはνを生成するための材料である。
【0034】
図4に本実施例で出力するRの目標とする座標を示す。図4(a)は直線で挟まれた形状である。この場合、交点に最も近い頂点34の近傍がRの目標とする座標である。図4(b)は曲線形状であり、しかも周長においてミクロ的にもマクロ的にも左右対称の場合である。この場合、左右対称の中心線(図示しない)との交点に最も近い頂点40の近傍がRの目標とする座標である。図4(c)は直線と曲線で挟まれた形状であり、ミクロ的には左右対称、マクロ的には左右非対称の場合の代表例である。この場合、座標43と座標45の中間座標、たとえば座標44がRの目標とする座標である。ここで、座標43はミクロの範囲で得たR座標、座標45はマクロの範囲で得たR座標である。
【0035】
図8はR発生部120の処理手順を示す流れ図であり、以下この流れに従って順に説明する。
【0036】
ステップS1で、周長Γの列(Γ1、Γ2、・・・)を大きい順に用意する。Γは物体サイズから適当に決めれば良い。
【0037】
ステップS2で、最初のΓ1に位置付ける。R生成個数kを0とする。
【0038】
ステップS3で、次の周長Γがある限り以下の処理を続ける。全てのΓを処理すると終了する。
【0039】
ステップS4で、最初の輪郭線に位置付ける。
【0040】
ステップS5で、区間の始点S(図9のS0)を輪郭線の始点に置く。
【0041】
ステップS6で、次の輪郭線がある限り続ける以下の処理を続ける。全ての輪郭線を処理したらステップS3に戻る。
【0042】
ステップS7で、状態遷移のフラグstateをOFF(最良山を持っていない)にする。山とは窪み/突起の総称である。
【0043】
ステップS8で、Sが輪郭線の終点に達するまで以下の処理を続ける。但し、これは輪郭線が閉じた(=1周する)ときに必要な処理であって、開いたときは、終点からΓ戻った地点まで到達したら中断してよい。
【0044】
ステップS9で、山検出フラグmntをOFF(山ではない)にする。
【0045】
ステップS10で、Sからの周長が初めてΓ以上となる頂点Eを探す。即ち、図9において、現在のΓ=Γ1、現在のS=S0であり、Sから始めて頂点間の距離を積算し続けると、Γ1に等しいか超える頂点E0に達する。このS0からE0までを現在区間と呼ぶことにする。
【0046】
ステップS11で、山形状の事前検査を行なう。これは以下の検査がある。
【0047】
(1)現在区間の頂点数(S0とE0を除く)が十分多いこと。これは、例えば定数=3以上とすることができる。但し、定数は任意である。
【0048】
(2)ヒゲを除くため、開口部の距離S0E0がある程度大きいこと。これは、例えば0.2×Γ1以上とすることができる。但し、定数は任意である。
【0049】
(3)現在区間の頂点(S0とE0を除く)が全て、直線S0E0のどちらか一方の側に偏在していること。
【0050】
(4)現在区間の深さM0G0が十分に大きいこと。これは、例えば0.2×Γ1以上とすることができる。但し、定数は任意である。
【0051】
M0は次のように求める。即ち、現在区間の周長をγとするとき(γ≧Γ1)、S0からの周長を測り、γ/2の地点を求めてこれをM0とする。従って、M0は一般に頂点と頂点の間に落ちるので、線形補間により正確な座標を求めることが重要である。G0はS0E0の中心である。
【0052】
以上全ての事前検査を合格したら、次のステップS13に行く。いずれかが不合格ならステップS17に行く。
【0053】
ステップS13で、交差角度検査を行なう。これはS0E0とM0G0が直交(=90°)に近いことを要求する。これは、|cosθ|≦D1で判定する。例えば、D1=cos80°とする。但し、定数は任意である。
【0054】
ステップS14で、左右対称検査を行なう。これは中心線M0G0に対して、S0、E0の接線方向であるそれぞれβs、βeが同じ角度に開いていることを要求するものである。
【0055】
演算は次のように行なう。ベクトルM0G0の方向余弦を(cosα、sinα)とする。S0の近傍を適当に均すことで、図の向きの接線方向βsを得ることができる。βeについても同様である。いずれも方向余弦の形で求めておく。
【0056】
φs=βs−α、φe=βe−α、を計算する。
【0057】
次に、φ=φs+φeを計算する。もし、完全な左右対称ならφ=0°=(1,0)となる。従ってこの検査では、これは|sinφ|≦D2で判定する。例えば、D2=sin10°とする。但し、定数は任意である。
【0058】
ステップS15で、現在山の評価値e=|sinθ||cosφ|を計算する。eは0〜1の値を持ち、直交に近いほど、左右対称に近いほど1に近付く。1に近いほど良い山である。eは山の連続があるとき、最も良い山を見つけるために使われる。
【0059】
ステップS16で、mntをONにする。これは山が一つ見つかったことを示す。
【0060】
ステップS17で、状態遷移フラグstateを見る。
【0061】
ステップS18で、mntがONであり、最良山を持っていない場合、ここが山であれば、ステップS19で、最良山に現在山を複写して、最良山の候補とする。即ち、見つかれば直ちに出力するわけではない。stateにONをセットする。
【0062】
ステップS20で、mntがOFFであり、最良山を持っている場合、ここが山で無ければ、ここで初めて出力できるので、ステップS21で、最良山をRとして出力する。stateにOFFをセットし、再び山が無い状態とする。
【0063】
以下、最良山をRとして出力するときの処理を説明する。
【0064】
図9において、最良山が仮に区間S0E0のものとする。ここで、先に現在区間の記述に使ったS0E0と同じ名称を使うので、混同しないように注意する。
【0065】
(1)直線S0E0と距離が最も大きい頂点P0を探す。複数あるときはその始端と終端の中央付近の同最大距離の頂点とすればよい。
【0066】
(2)P0からS0E0に垂線を降ろし、その足をH0とする。
【0067】
(3)H0P0(長さh)上、中央付近(例えば、h/4〜(3/4)h内)に、適当な広がりで、H0からP0に向かって、例えば4等分して5個の点列を発生させる。但し、これの位置を決める定数は適当で良い。
【0068】
(4)各発生点からH0P0に直交(従ってS0E0に平行)する直線を引く(例えば直線50)。
【0069】
(5)その直線50と現在区間のS0側、E0側それぞれの交点51、52を求める。
【0070】
(6)交点間の中点53を出力する。以上を5本分繰り返す。
【0071】
(7)5個の中点列から最小2乗近似直線54を引く。
【0072】
(8)P0からその直線54に垂線を降ろし、その垂線の足をz0とする。z0がこの山の出力座標Q1である。
【0073】
(9)z0における山の接線方向τ0は、ベクトルH0P0を±90°回転した方向から作る。図9は現在区間が反時計回りであるから、+90°回転する(もし時計回りであるなら、−90°回転する)。
【0074】
これにより、山の出力Qを得ることができる。即ちQ=(座標z0、接線方向τ0)である。図10において、各Γ毎にQが出力されることに注意する。即ち、Γ1からQ1、Γ2からQ2、・・・とΓ5からのQ5まで続く。
【0075】
Q1も含めて全ての出力Qは、既に登録されている個々のRのε近傍に入っているかどうかの検査を行なう。これはむやみにRの個数を増やさないためである。ここでεは適当に定めれば良く、例えば物体長の0.1倍とする。
【0076】
ここでは1回目のQ1は登録されるものとする。実際、周りに山が無いからである。登録されたQのことをRと呼ぶ。
【0077】
Rのζに現在の輪郭線のζを複写する。
【0078】
RのγにQ1の区間長γ(S0からE0までの実際の長さ)を複写する。このγは以降の処理で変更してはならない。
【0079】
又、Rの多重度と呼ぶmを1にする。
【0080】
Rの個数kを一つ増やす。
【0081】
2回目のQ2はRのε近傍に入っているので、Q2は登録しない。その代わりRの修正を行なう役目を持つ。
【0082】
即ち、図11において、Q1(=R)、Q2の座標をそれぞれq1、q2、接線方向(方向余弦)をそれぞれω1、ω2とする。
【0083】
新座標q´は、q1、q2をΓ2:Γ1に内分して得る。
【0084】
新接線方向ω´は、ω1、ω2を同じくΓ2:Γ1に内分して得る。このときのやり方としては、開き角度δを求め、δは0°に近いことを利用し(実際ほとんど2°未満である)、sinδ(符号付)をΓ2:Γ1に内分すれば良い。即ち、修正角度β(図には無い)のsinβ=(Γ2/(Γ1+Γ2))sinδであり、従ってcosβ=√(1−sinβの2乗)とする。ω´はω1をβ回転したものである。
【0085】
以上の座標修正、角度修正は非常に重要である。この修正により、Rの座標と接線方向を安定することができる。
【0086】
最後に、Rの多重度mを一つ上げて2とする。これでQ2による修正が完了した。
【0087】
同じことを引き続くQ3以降でも繰り返す。最終のQ5まで繰り返したとき、このRの多重度mは5になっている。
【0088】
多重度の役割については後述する。
【0089】
ステップS22で、最良山を持っている場合、ここが山であれば、山が連続したことになる。従って、ステップS22で、最良山と現在山で良い方の山を選ぶ。即ち、ステップS23で、現在山の評価値の方が高ければ、最良山に現在山を複写する。もし同じか低ければ何もしない。
【0090】
ステップS24で、現在山があってもなくてもS0を周長δ1移動し、次はS1から始める。但し、δ1は頂点位置変位で、例えばδ1=1(一つずつ移動)とする。但し、この定数は任意である。
【0091】
以下は新しいS1でステップ8から同じことを繰り返す。
【0092】
なお、ステップS21において、注意すべきは円又は同相の、即ち特徴の無いところから山を出力しないようにすることである。
【0093】
即ち、図12において、既に中点で示すところの山M0が出力されてRとなっているものとする(直前のR)。
【0094】
その後、山M1の出力をしようとするが、形状がほとんど直前のRと同じであることが分かる。
【0095】
即ち、例えば開口部SEの距離が同じであり、MからSEまでの距離が同じであり、更にM0、M1それぞれの接線方向βs、βeの相対的な方向が同じであるときは、同じ山であると結論してよい。
【0096】
このようなときは、山M1を出力しないことは勿論、直前Rそのものも出力リストから抹消する。
【0097】
ステップS3で全てのΓで処理が終了したらR発生が終了する。
【0098】
R発生が終了したら、次に、R評価部122でRの評価を行なう。
【0099】
図6(b)に多重度mの評価関数ωの一例を示す。
【0100】
まず、生成されたRの集合で、そのmについて、最大値(MAX)と最小値(MIN)を得る。図13は生成されたRの集合の多重度(Mで示す)を示す。MAX=5、MIN=1である。
【0101】
特徴として、図14に例示する如く、より好ましいところの形が良く大きな山には大きな多重度が出力されていること、逆に、形が悪い、あるいは小さい山には小さな多重度が出力されていることに注意する。
【0102】
図6(b)に戻って、Rのそれぞれに多重度mが記入されているから、そのmで図の関数値ωを得る。ここで使う関数は、図6(a)のζ評価のときのものと同じような規則で作ればよい。定数C2は適当でよく、例えばC2=0.2とすることができる。
【0103】
次に図6(c)に長さγの評価関数ψを示す。生成されたRの集合で、そのγについて、最大値(MAX)と最小値(MIN)を得る。
【0104】
Rのそれぞれに長さγが記入されているから、そのγで図の関数値ψを得る。ここで使う関数は図6(a)のζ評価のときのものと同じような規則で作ればよい。定数C3は適当でよく、例えばC3=0.2とすることができる。
【0105】
次に、Rのそれぞれに、形と大きさの評価値ηをセットする。Rのηは、
η=多重度評価値×長さ評価値=ω×ψ
である。
【0106】
次にRのそれぞれに、総合評価値νをセットする。Rのνは、
ν=0.5+0.5ζη
である。この式によると、νは0.5〜1.0の値を持ち、輪郭線の評価値ζが大きく、形と大きさの評価値ηが大きいほど大きい。
【0107】
図5で、黒丸はRであることを示し、そのν値を示している。特徴として、好ましい地点のRほど大きなνが出力されていることに注意する(Rの最小値が0.5であることに注意)。
【0108】
特に図13において、多重度ではR63とR64は共にm=4であり区別できないが、図2ではそれぞれν=0.9、ν=0.6と大きく差がついていることに注意する。これは輪郭線の評価値ζの働きによるものである。
【0109】
図15に、出力されたRを示す。Rを物体認識で使う場合には、例えば三角形R1R2R9の形状を学習して記録し、認識のとき同じ形が現われるかどうかを調べればよい。
【0110】
図では12個のRが出力されているが、この数では必ずしも十分でないことがある。用途によっては外周に関する情報が欲しい場合がある。
【0111】
例えば、外周部にランダムに配置される点Tは、数が多ければ認識の情報に使うことができる。
【0112】
図7(b)に、Tの構造を記述する。
【0113】
Tは座標と輪郭線の接線方向を持つ。又その総合評価値(=要不要の度合い)ν(0〜0.5)を持つ。
【0114】
例えば、三角形R2R8T3を学習したとする。認識においては別画像であるから一般に異なる場所、例えばTxに発生する。
【0115】
しかし三角形R1R8Txは学習三角形R2R8T3と良く似ているので、学習物体の可能性として出力することができる。
【0116】
Tが必要か否かはRの個数kに従うのが良い。図16は、Tの必要個数Ntの生成関数である。これも図6(a)のζ生成関数と同じ原理でつくることができる(上下を反対にする)。Rの十分個数REは適当でよく、例えばRE=25とすることができる。関数はk=REでNt=0を出力する、即ちTは不要である。一方k=0ではTS個を出力する。TSはTだけで認識できるための必要個数であり、物体のサイズその他から決めればよい。例えば定数TS=80を割り当てても良い。
【0117】
Tの発生は至って単純である。即ち、図15において、各輪郭線の始点にまず発生し、予め計算しておいた距離毎に周を進み、そこに発生する。但しRのε近傍に入っているときは発生しない。
【0118】
Tが進む距離は、輪郭線集合全体の距離をNtで除した商から決めればよい。
【0119】
Tのζは輪郭線の評価値の複写である。
【0120】
Tのνは、ν=0.5ζとする。これにより輪郭線が最大評価値ζ=1のときでもν=0.5となり、Rの最小値以下となるので両者を差別する上で都合が良い。
【0121】
図5に最終的に出力されたRとTを示す。黒丸がRであり、白丸がTである。図には書かれていないが、それぞれ輪郭線の接線方向を持つ。ν値は分かり易さのために小数点以下1桁とした。
【0122】
これによると、明らかに特徴で使いたいところはνが非常に高く、逆に使いたくない特徴は低い。特に、内部の雑音12のνは低く、又、外部の雑音13のνも低いことに注目する。
【0123】
このようにして、R(窪み/突起)の正しい評価値νを得ることができる。νは優れた指針であり、認識対象で、しかも強い特徴ほど大きなνとなって現われる。
【0124】
即ち、
ν=0.5+0.5ζη
=0.5+0.5ζ(λ)ω(m)ψ(γ)
とすると、ζ(λ)は母体輪郭線の長さλが大きいほど大きい。ω(m)は多重度mが大きいほど大きい。ψ(γ)は周の長さγが大きいほど大きい。以上により、ν値は3項全てが大きいときのみ大きくなるのであって、これはRの正しい評価値となっている。
【0125】
特に、図6(a)、(b)、(c)に示すとおり、ζ(λ)、ω(m)、ψ(γ)は、それぞれλ、m、γの値の範囲(MAXとMIN)に従う関数であることに注意する。即ち評価値が高いか低いかは、その集合のMAX値とMIN値による。
【0126】
例えば図6(b)において多重度mの評価値ω(m)はmの範囲による。即ち先に言及したが、図2に例示した如く、円形物体1´があって、その円周上にわずかに窪み/突起6、7がある場合、それらの多重度が例えばm=1とm=2だけのときがある。その場合、MAX=2、MIN=1であり、m=2を得たものは最大評価値ω=1となる。これは、その窪み/突起の多重度の正しい評価値である。
【0127】
ここで、多重度mは窪み/突起の深さ(高さ)と形の良さを表わす指標である。
【0128】
即ち、図14において、(a)、(b)、(c)は、いずれも同じ開口長eを持つ窪み(突起)である。しかし、図のように多重度はそれぞれ異なっている。(b)の多重度が(a)に較べて小さいのは深さ(高さ)が小さいからであり、(c)の多重度が(a)に較べて小さいのは先端部の形が悪いからである。
【0129】
このように、多重度mの値は窪み(突起)が深いほど(高いほど)、又形が良いほど大きいのでRの評価の一つとして有効である。
【0130】
又、R単独、又はRとTの組合せで認識を行なうことができる。その際に、それぞれの評価値νは優れた指針であり、良いR又は良いTだけを取り出して最高の集合をつくることができる。これにより、外周に殆ど特徴が無いような曲線物体でも認識が可能になる。
【0131】
なお、実施例では評価値生成関数として、2次関数を使ったが、単調に増加あるいは減少する関数であれば何でも良い。極端な例として直線でも良い。その場合でも効果は殆ど変わらない。
【0132】
又、実施例では多重度mで評価できる輪郭線の特徴としてR(窪み/突起)を用いた。しかし、R以外にも存在する。例えば、L(直線)やC(円)等がその例である。
【0133】
図17の(a)は輪郭線の直線部(L)が長さの異なるΓ(図示しない)で抽出されたものである。このときにも、使われたΓの長さが5個なら、m=5とすればよい。(b)に示すように、凹凸の激しい区間があり、長い距離で見れば直線として検出可能で、逆に短い距離では検出不可能であるような場合、図のように3個の長さだけで検出されたので、多重度m=3である。
【0134】
図18は、輪郭線の円弧部(C)の長さが異なるΓ(図示しない)で抽出されたものである。このときも、使われたΓの長さが5個なら、m=5とすればよい。
【0135】
このように多重度は輪郭線から抽出されるあらゆる特徴形状に存在するのであって、その特徴形状の大きさと、形の良さを表わす尺度となり得る。
【図面の簡単な説明】
【0136】
【図1】曲線物体の形状の一例を示す図
【図2】円形物体の一例を示す図
【図3】本発明を実施するための図形特徴データ抽出装置の主要部構成を示すブロック図
【図4】Rの目標座標を示す図
【図5】本発明による評価値の付与例を示す図
【図6】本発明で用いる評価関数の例を示す図
【図7】同じくRとTの構造を示す図
【図8】同じくR発生の処理手順を示す流れ図
【図9】同じく実施例の処理方法を説明するための図
【図10】同じく処理方法を説明するための図
【図11】同じく処理方法を説明するための図
【図12】同じく処理方法を説明するための図
【図13】同じく処理方法を説明するための図
【図14】本発明の多重度を示す図
【図15】実施例の処理方法を説明するための図
【図16】同じくTの必要個数Ntの生成関数の例を示す図
【図17】輪郭線の直線部の抽出例を示す図
【図18】輪郭線の円弧部の抽出例を示す図
【符号の説明】
【0137】
1、1´、12、13…輪郭線
104…画像入力部
106…画像輪郭線抽出部
110…図形特徴データ抽出部
112…図形特徴データデータベース
120…R発生部
122…R評価部
124…T発生部
126…T評価部
130…制御部
【特許請求の範囲】
【請求項1】
画像から曲線物体の輪郭線を抽出し、その特徴を評価する際に、
特徴を含む設定区間を、特徴に向けて順次せばめて行った際に、特徴が再び検出された時のくり返し検出数である多重度を求め、
該多重度に応じた評価値を用いることを特徴とする曲線物体輪郭線の特徴評価方法。
【請求項2】
前記多重度を用いて、輪郭線の山の特徴を評価することを特徴とする請求項1に記載の曲線物体輪郭線の特徴評価方法。
【請求項3】
請求項1又は2において、更に、輪郭線上にランダムに発生させた不定点に応じた評価値を加えることを特徴とする曲線物体輪郭線の特徴評価方法。
【請求項4】
前記不定点の評価値の最大値が、山の評価値の最小値よりも小さくなるようにしたことを特徴とする請求項3に記載の曲線物体輪郭線の特徴評価方法。
【請求項5】
画像から曲線物体の輪郭線を抽出し、その特徴を評価する曲線物体輪郭線の特徴評価装置において、
特徴を含む設定区間を、特徴に向けて順次せばめて行った際に、特徴が再び検出された時のくり返し検出数である多重度を求める手段と、
該多重度に応じた評価値を求める手段と、
を備えたことを特徴とする曲線物体輪郭線の特徴評価装置。
【請求項1】
画像から曲線物体の輪郭線を抽出し、その特徴を評価する際に、
特徴を含む設定区間を、特徴に向けて順次せばめて行った際に、特徴が再び検出された時のくり返し検出数である多重度を求め、
該多重度に応じた評価値を用いることを特徴とする曲線物体輪郭線の特徴評価方法。
【請求項2】
前記多重度を用いて、輪郭線の山の特徴を評価することを特徴とする請求項1に記載の曲線物体輪郭線の特徴評価方法。
【請求項3】
請求項1又は2において、更に、輪郭線上にランダムに発生させた不定点に応じた評価値を加えることを特徴とする曲線物体輪郭線の特徴評価方法。
【請求項4】
前記不定点の評価値の最大値が、山の評価値の最小値よりも小さくなるようにしたことを特徴とする請求項3に記載の曲線物体輪郭線の特徴評価方法。
【請求項5】
画像から曲線物体の輪郭線を抽出し、その特徴を評価する曲線物体輪郭線の特徴評価装置において、
特徴を含む設定区間を、特徴に向けて順次せばめて行った際に、特徴が再び検出された時のくり返し検出数である多重度を求める手段と、
該多重度に応じた評価値を求める手段と、
を備えたことを特徴とする曲線物体輪郭線の特徴評価装置。
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図1】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図1】
【公開番号】特開2009−163383(P2009−163383A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2007−340658(P2007−340658)
【出願日】平成19年12月28日(2007.12.28)
【出願人】(000003399)JUKI株式会社 (1,557)
【Fターム(参考)】
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願日】平成19年12月28日(2007.12.28)
【出願人】(000003399)JUKI株式会社 (1,557)
【Fターム(参考)】
[ Back to top ]