説明

エッジ点列の線分近似方法

【課題】実用分野で従来の方法の問題点を克服する新規な輪郭エッジ点群線分近似方法を提供する。
【解決手段】エッジ点画像領域に被せて、隣り合う小領域同士で重なり領域を持つ小領域を配置し、小領域毎に隣接するエッジ点集合(クラスタ)を所定の方法によって抽出するクラスタ抽出ステップと、2つの小領域に別々に存在するクラスタ同士が小領域の重なり範囲でエッジ点を共有するとき、所定の方法によって双方のクラスタを統合することを、画像領域全域で行うクラスタ統合ステップと、統合された各々のクラスタをそのエッジ点群の分布特性を判断基準として所定の方法で分割するクラスタ分割ステップと、分割されたクラスタのエッジ点群を代表する線分を所定の方法で抽出する線分抽出ステップとから線分近似を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ上の画像において図形の輪郭に相当するエッジ点列を線分近似する方法に関する。
【背景技術】
【0002】
従来、図形の輪郭に相当するエッジ点列を線分に近似変換することは行われており、以下にその例を示す。
第1の例は、特許文献1に示すもので、その輪郭線分抽出方法は、エッジ点(エッジ画素)列の隣接するエッジ画素同士が注目するエッジ画素の8近傍画素の方向の内の一つの方向を維持している限りにおいてエッジ画素同士は直線上に並んでいると見做す基準によって、直線上に並んでいるエッジ画素が1つのエッジ画素集合となるよう初期的に分割して複数のエッジ画素列を作り、隣接するエッジ画素列ペアの内のどのペアを併合し新たなエッジ画素列を生成することが最適であるかを所定の評価値に照らしながら所定の方法で見つけ出し、最終的に残ったエッジ画素列各々に対して当該エッジ画素列の画素群がその周りに分布しているであろう直線を最小二乗法によって求め、これらの直線の交点の集合を輪郭を直線近似したときの頂点集合として出力するものである。
この方法は、空撮データの保存、監視カメラによる物体認識、FAにおける対象物認識・計測等のために、実用的な時間で輪郭情報を圧縮したいことから直線化して頂点のみ記憶しようとすることが目的の方法のようである。開示されている情報から推測すると、エッジ画素列が8近傍画素の1方向を維持するか否かで全体のエッジ点(画素)列の分割(エッジ画素列集合の抽出)を行い、再度エッジ画素列を併合する際に併合するエッジ画素列同士の最適な組合せを全ての組合せから判断しようとしているため、処理時間の観点からは比較的粗いエッジ点画素分解能で複雑にならない程度の処理に適しているように見える。 しかしながら、例えば複雑な輪郭を持つエッジ画素列をFA業界における精密な検査・計測等で必要な精度で扱おうとすると、この方法はエッジ点画素の分解能を上げる必要があり、エッジ画素列の抽出数も増大することになり、結果としてかなり処理時間の長いプロセスを必要とすると推測される。
また、8近傍画素にエッジ点画素が存在しないような場合は、そこでエッジ画素列は分断されエッジ点画素列の抽出数が増大する要因となる問題点がある。
また、特許文献1の他の問題点としては、隣接する8近傍の画素においてノイズ、濃度が薄いことによるエッジの途切れ、その他の影響でエッジ画素が存在しないときは、そこでエッジ点集合が途切れることになり、その結果初期の画素列が細分化され、エッジ点集合の併合時においても時間がかかる等が想定される。
【0003】
他の例は、非特許文献1に記載の方法、即ち、互いに距離の小さい対象集合を繰返し抽出することによって逐次的にクラスタを求めていく「逐次的ファジークラスタ抽出法」を使ってエッジ点群から線分を抽出する実験を試みる中で、小線分同士の非類似(距離)の度合いに対する評価値である非類似度の概念を使っている。この方法は、エッジ点数をnとするとn次固有値問題を解くため固有値計算の処理時間が膨大にかかることから研究室レベルでの実施においては問題とならない場合が多いと推測されるが、FA分野等のように精度を要し処理時間が限られている用途には不向きであるという点で問題がある。
【0004】
また、図形の輪郭に相当するエッジ点列を線分に近似変換する従来の方法の問題点は、エッジ点列を最初から可能な限り長い直線の線分(以降、「線分」は直線の線分を意味する)に近似しようとする試みをしていることにある。従来の方法は、ある評価値によって短い区間の線分近似ができるクラスタを求めた後、次に行うことはそのクラスタを隣接クラスタとつなげることによってより長い近似線分を得ようとしていることである。そして、これは、行き着くところまで線分を長くする試みをし終わったところで、残りのクラスタに対して同様のことを繰り返す方法で、結果としてできるだけ長い線分の組合せで輪郭の線分近似を行おうとするものである。この方法は、一般的には長い処理時間を要する方法となる。
また、従来の方法は、近似線分ができる小さなエッジ点群(クラスタ)を抽出する処理の最初から図形の存在する処理領域全体を処理対象としていることから、不要な処理時間を費やしている問題がある。
【特許文献1】特許4025656
【非特許文献1】「逐次的ファジークラスタ抽出法とそのノイズに対するロバスト性」、津田宏治 他3名、電子情報通信学会論文誌 D−2(“2”は大文字のローマ数字の2が正しい表記) Vol.J80−D−2(“2”は大文字のローマ数字の2が正しい表記) No.1 pp.190−197 1997年1月
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする課題は、輪郭のエッジ点群の線分近似に関して、従来の方法の問題点を克服でき、FA分野等の精度が要求される分野で実用的な処理速度と精度を併せ持った結果を容易に得ることができる新規な線分近似方法を提供することにある。
【課題を解決するための手段】
【0006】
基本的な解決手段は、
図形の輪郭上の点がエッジ点として抽出されている画像領域に被せて、隣り合う小領域同士で重なり領域ができるように複数の小領域を配置し、エッジ点が存在する各々の小領域毎に隣接するエッジ点からなるエッジ点集合(以降、クラスタともいう)を所定の方法によって抽出するクラスタ抽出ステップと、
重なり範囲を構成する2つの小領域の、一方の小領域に少なくともその一部が存在するクラスタと、他方の小領域に少なくともその一部が存在するクラスタとが、当該重なり範囲においてエッジ点を共有する場合に、所定の方法によって当該それぞれのクラスタを同一のクラスタとして統合して新たなクラスタを生み出すことを、クラスタ抽出ステップで抽出された各々のクラスタおよび当該統合により新たに生み出された各々のクラスタを対象として行うクラスタ統合ステップと、
クラスタ統合ステップで統合された各々のクラスタおよび統合されずに残った各々のクラスタを対象として、各々のクラスタに属するエッジ点群の分布特性を表す値を分割の判断基準とする所定の方法によって分割し、分割されたクラスタに属するエッジ点群の分布を許容の範囲内で直線状に分布しているとみなすことができる程度にまでもたらすクラスタ分割ステップと、
クラスタ分割ステップで分割されて生まれた各々の新たなクラスタおよびクラスタ分割ステップで分割の要件に合わず分割されないで残った各々のクラスタを対象として、各々のクラスタに対して、クラスタを構成するエッジ点群の分布を代表する線分を所定の方法により抽出する線分抽出ステップとから
図形のエッジ点群を線分近似する方法をとることである。
【0007】
クラスタ抽出ステップのクラスタを抽出する所定の方法に関する更なる詳細については、以下に示す方法を採ることができる。
(a)小領域内で既に存在するいずれのクラスタ(既に抽出されたクラスタか抽出の途中にあって新たなクラスタ番号がすでに創出されているクラスタのいずれのクラスタ)にも属していない2つのエッジ点の組合せの中から、当該それぞれのエッジ点の性質の違いの度合いを表す距離(これは、当該組合せを構成するエッジ点間の物理的距離とそれぞれのエッジ点におけるエッジ勾配方向に垂直でそれぞれのエッジ点を通る直線(以降、見做し接線ともいう)との相対角度に関係する諸元の関数であり、以降、非類似度ともいう。)が基準値以下で且つ最小である条件(以降、隣接エッジ点組合せ条件ともいう)を満足するエッジ点の組合せを選び、当該組合せを構成するそれぞれのエッジ点をそのクラスタ抽出の基点とする新たなクラスタを創り出すステップと、
(b)当該基点の一方を第1のエッジ点として、第1のエッジ点と隣接エッジ点組合せ条件を満足する第2のエッジ点を選ぶ手順を、第2のエッジ点を次の第1のエッジ点とすることにより隣接エッジ点組合せ条件を満足する第2のエッジ点が得られなくなるまで繰り返して、当該基点の一方に連なる隣接エッジ点列を抽出し新たなクラスタに属させるステップと、
(c) (b)のステップにおいて当該基点の一方を当該基点の他方と置き換えて当該ステップを実行することにより当該基点の他方に連なる隣接エッジ点列を抽出し新たなクラスタに属させるステップとから、
互いに隣接するエッジ点からなる1つのクラスタを抽出することを所定の終了条件を満足するまで繰り返して小領域内のクラスタを抽出する。
所定の繰返し条件としては、当該小領域内で抽出されるクラスタの数の上限、または当該小領域内のエッジ点の総数に対する抽出されたクラスタに属したエッジ点の総数の割合の上限を設けておき、それらの上限内とすることが好ましい。
【0008】
クラスタ抽出ステップにおける非類似度(以降、Dijと表記する)を、以下のようにすることができる。
【数1】

ここで、
ij :エッジ点i、jのユークリッド距離
ij :エッジ点i、jそれぞれのエッジ勾配方向のなす角
i 、cj :エッジ点i、jを結ぶ直線とエッジ点i、jそれぞれのエッジ勾配方向を法線に持つ直線(見做し接線)li 、ljそれぞれとのなす角
d、ws、wc:各要素dij、sij、ci+cjの基準値
【0009】
基本的な解決手段のクラスタ統合ステップにおける所定の方法の第1の方法は、クラスタ抽出ステップにおいて、クラスタを構成する各エッジ点の付帯情報として、当該各エッジ点に隣接するエッジ点のエッジ点番号と当該エッジ点と当該隣接するエッジ点との非類似度(評価値)とを記録しておき、これらの情報を使って、当該共有のエッジ点を持つ2つのクラスタの統合を行うものである。
その際には、当該共有のエッジ点に隣接すべきエッジ点として、当該共有のエッジ点の複数の隣接のエッジ点の内、当該共有のエッジ点との非類似度の小さい順に2つのエッジ点を選択し、当該2つのクラスタの統合十分条件が満足される場合には当該2つのクラスタを統合する。当該統合十分条件は、選択されたエッジ点それぞれが当該共有のエッジ点を持つ2つのクラスタのそれぞれに属することとする。そして、当該2つのクラスタが統合されたときは、選択されなかったエッジ点は削除することが好ましい。
また、当該共有のエッジ点の属するクラスタの内、当該小領域の重なり範囲に端部を持つ少なくとも1つのクラスタの他の端部のエッジ点から接続エッジ点をたどることによって、当該共有のエッジ点にたどり着く直前のエッジ点を当該共有のエッジ点に隣接すべき第1のエッジ点として強制的に選択し、当該共有のエッジ点に隣接すべき第2のエッジ点については第1のエッジ点を除く隣接のエッジ点の中から当該共有のエッジ点との非類似度の最も小さいエッジ点を選択することにより当該2つのクラスタが統合条件を満足するか否かを判断することも好ましい。
【0010】
基本的な解決手段のクラスタ統合ステップにおける所定の方法の第2の方法は、当該共通のエッジ点が1つでもあれば、当該共有のエッジ点を持つクラスタを統合するものである。その際には、当該共有のエッジ点を持つクラスタに属する全てのエッジ点を統合によって生まれる新たなクラスタに属させることである。この方法は、処理の単純化・高速化の点で好ましい。
【0011】
クラスタ統合ステップで第1の方法を採る場合には、クラスタ分割ステップにおける所定の方法として、以下の方法(以降、分割の第1の方法ともいう)がある。
クラスタ統合ステップで統合されたクラスタおよび統合されずに残ったクラスタの全てを対象にして、
(a)クラスタに属するエッジ点群の両端のエッジ点を結ぶ弦Lとクラスタ内エッジ点との最大距離dmaxが所定のしきい値以上である条件を満足する場合はdmaxを達成するエッジ点位置で分割して新たなクラスタを生み出し、(当該条件を満足しない場合は当該クラスタを分割しないでそのまま維持する)
(b)更に、(a)の処理で生み出された新たなクラスタをも対象として(a)の処理を行なうことを、
当該条件を満足するクラスタがなくなるまで繰返すことによって、処理の対象となった全てのクラスタの分割を行う。
【0012】
クラスタ統合ステップで第2の方法を採る場合には、クラスタ分割ステップにおける所定の方法として、以下の方法(以降、分割の第2の方法ともいう)がある。
クラスタ統合ステップで統合されたクラスタおよび統合されずに残ったクラスタの各々を対象にして、
(a1)クラスタに対してエッジ点群の座標データから得られる主成分分析の固有値λ、λ(ここに、λ≧λ)の比λ/λが所定のしきい値以上である第1の条件を満足する場合は、第2主成分軸を分割線として当該クラスタを分割して新たなクラスタを生み出し(第1の条件を満足しない場合は当該クラスタを分割しないでそのまま維持する)、
(b1)更に、(a1)の処理で生み出された新たなクラスタをも対象として(a1)の処理を行なうことを、
第1の条件を満足するクラスタがなくなるまで繰返す第1段階と、
第1段階で新たに生まれたクラスタと第1段階で分割されないでそのまま維持されたクラスタの各々を対象にして、
(a2)クラスタに属するエッジ点群の両端のエッジ点を結ぶ弦Lとクラスタ内エッジ点との最大距離dmaxが所定のしきい値以上である第2の条件を満足する場合はdmaxを達成するエッジ点位置で分割して新たなクラスタを生み出し、(第2の条件を満足しない場合は当該クラスタを分割しないでそのまま維持する)
(b2)更に、(a2)の処理で生み出された新たなクラスタをも対象として(a2)の処理を行なうことを、
第2の条件を満足するクラスタがなくなるまで繰返す第2段階とからクラスタ分割を行う。
更にまた、第2段階を行わずに、クラスタ分割ステップの最初から、クラスタ分割の条件として主成分分析の固有値の比λ/λ≧τ3を満足することを採用し、これを満足するクラスタはいかなるクラスタであろうが全て主成分分析による第2主成分軸を境に分割し、当該条件を満足しなくなったところでクラスタ分割を終了することもできる。ここに、τ3は上記条件を満足しなくなったクラスタについて線分抽出ステップに移行してもその結果が目的に沿うようにするしきい値である。このクラスタ分割方法は、処理が単純で好ましい分割方法である。
【0013】
線分抽出ステップにおける所定の方法については、クラスタ分割ステップで分割されて生まれた新たなクラスタおよびクラスタ分割ステップで分割の要件に合わず分割されないで残ったクラスタの各々を対象として、クラスタを構成するエッジ点群に対する第1主成分軸上の線分を、当該エッジ点群を代表する線分として抽出する。そして、当該線分を、当該エッジ点群を当該第1主成分軸に射影したエッジ座標データの存在範囲にある部分の線分とすることが好ましい。
また、線分抽出の対象となるクラスタの端点を結ぶ線分を、当該エッジ点群を代表する線分として抽出することもできる。
【0014】
以上の課題解決の手段に記載した内容をコンピュータプログラムとして、コンピュータ上で本発明に係る技術を実現できる。
また、当該コンピュータプログラムを種々の記録媒体に格納して利用に供することができる。
【発明の効果】
【0015】
本発明の効果は、処理領域の分割による最初のエッジ点のクラスタ抽出の処理時間短縮とクラスタ抽出から最終のエッジ点近似線分を求めるための新規な処理方法を提供することにより、FA分野等でエッジ点群の線分近似に関して実用的な処理速度と精度の組合せのパフォーマンスを容易に実現できるようにしたことである。
また、エッジ点集合(クラスタ)の抽出において、抽出条件を決めるパラメータを調整することによって、不連続エッジ点であっても同一クラスタとして抽出可能とする自由度を持ったエッジ点群の線分近似方法を提供できることである。
【発明を実施するための最良の形態】
【0016】
発明を実施するための最良の形態を、実施例と共に以下説明する。
図1に、本発明によるエッジ点群を線分により近似する処理の流れを示す。
説明を始める前に、図1のステップS10以降の説明は、予め図形の輪郭を表すエッジ点が抽出され、各々のエッジ点に対する以下の処理領域における座標値(座標は画素を座標単位とするXY座標であり、以降、特にことわらない限りは、「エッジ点」は「エッジ画素」を意味するものとする)とエッジ勾配方向が既知となっていることを前提としていることを記しておく。
【0017】
ステップS10は、図形の輪郭上の点(エッジ点)が抽出されている画像領域(エッジ点群を線分により近似する処理領域で、以降、処理領域ともいう)に被せて、隣り合う小領域同士で重なり領域(以降、重なり範囲ともいう)ができるように複数の小領域を配置し、小領域毎に、エッジ点群の中から当該小領域における近傍のエッジ点同士がその並び方においてある限度内でスムーズであるエッジ点集合(以降、クラスタともいう)を後述の所定の方法により抽出することを、エッジ点の存在する全ての小領域に対して行うクラスタ抽出ステップである。
図2に、処理領域とこれに被せて配置した複数の小領域(図はその一部を示す)の関係を示す。エッジ点群を線分により近似する処理領域は二点鎖線で、小領域は隣接するもの同士を実線と破線で区別して示した。小領域のX方向範囲はXa、Y方向範囲はYaである。隣接する小領域は、お互いに重なり範囲を持つように構成され、XbはX方向の重なり範囲、YbはY方向の重なり範囲である。
【0018】
ステップS20は、ステップS10において小領域毎にクラスタを抽出するために本来クラスタが分断されているべきでないところで分断されている状態を本来の姿に戻すことを目的として行うクラスタ統合ステップである。統合の方法は、隣り合う小領域内に存在するクラスタ同士が当該小領域の重なり範囲に存在する同一のエッジ点を共有する場合に、所定の方法で当該クラスタ同士を統合するものである。このステップの対象クラスタは、ステップS10で抽出されたクラスタのみならず、本ステップで統合された新たなクラスタも対象クラスタとなる。
【0019】
ステップS30は、ステップS20におけるクラスタ統合により大きくなりすぎた等のクラスタで、クラスタ内のエッジ点群が許容の範囲内で直線状に分布しているとは見做すことができない場合には、当該クラスタを分割するステップである。
また、クラスタ統合の条件が合わず、統合されずにそのまま残っているクラスタもこのステップの対象となる。
【0020】
ステップS40は、ステップS30で分割されたクラスタに属するエッジ点群、分割の要件に合わず分割されないで残ったクラスタを構成するエッジ点群、およびステップS20でクラスタ統合の要件に合わず単独のまま残されたクラスタを構成するエッジ点群から、所定の方法によって近似線分を抽出するステップである。その代表的な手法は、各々のエッジ点群の第1主成分軸を近似直線(すなわち,最小二乗法による近似直線)として近似線分を抽出する方法である。もちろん他の方法を使ってもよい。
【0021】
以下、図1の各ステップの詳細を、第1の実施例と共に説明する。
<ステップS10 クラスタ抽出>
与えられたエッジ点群のクラスタ抽出を指定された処理領域全域(図2の二点鎖線領域)で行うと、処理時間が長くなってしまう。そこで、処理領域全域に図2に示すように小領域(実施例では、10画素(Xa)×10画素(Ya)の正方小領域、重なり範囲(XbおよびYb)3画素)を被せ、小領域毎に、近傍のエッジ点同士がその並び方においてある限度内でスムーズであるエッジ点集合(以降、クラスタともいう)を当該小領域内におけるエッジ点群を基に以下に説明する方法で1つ以上抽出すること(以下、クラスタ抽出ともいう)を、エッジ点の存在する全ての小領域に対して行う。
この効果は、処理領域全域のエッジ点数をnとしたとき、処理領域全域を一括でクラスタ抽出を行えば、その計算量はnのオーダー(O(n))であるが、小領域に分けてクラスタ分割した場合にエッジ点がm分割されたとすれば、その計算量は(n/m)2×m=(n/m)×nとなるので、mを大きく(m<n)とれば nのオーダー(O(n))に近づくこととなり、非常に大きい。
小領域のサイズ、形状、および小領域同士の重なり範囲については、実施者は取扱う画像の性質、必要な処理時間等を考慮し自由に設定することができる。
<小領域内でのクラスタ抽出の方法>
いま、「近傍のエッジ点同士がその並び方においてある限度内でスムーズである」ことの意味は、イメージ的には、エッジ点のばらつきが一定限度以下且つエッジ点間で曲率が一定限度以内であるスムーズな輪郭線上にエッジ点があることを意味する。このスムーズさが高いことをエッジ点間の性質が似ていると表現すれば、この性質の違いの度合いを表す概念は非類似度という評価値であり、この非類似度には、エッジ点間距離、各エッジ点i、jそれぞれのエッジ勾配方向のなす角、およびエッジ点i、jを結ぶ直線とそれらのエッジ点それぞれのエッジ勾配方向を法線に持つ直線(見做し接線)それぞれとのなす角が関係する。
いま、実施例においては、エッジ点i、jの性質の違いの度合いを表す距離Dij(非類似度を表す評価値で、値が小さいほど類似していると見做すもの)を次のように定義している。
【数2】

ここで、
ij :エッジ点i、jのユークリッド距離
ij :エッジ点i、jそれぞれのエッジ勾配方向のなす角
i 、cj :エッジ点i、jを結ぶ直線とエッジ点i、jそれぞれのエッジ勾配方向を法線に持つ直線(見做し接線)li 、ljそれぞれとのなす角
これらの関係を図3に示す。また、
d、ws、wc:各要素dij、sij、ci+cjの基準値
である。
因みに、実施例では、wd=1.0画素、ws=15度、wc=60度とした。
【0022】
ここで、以下の諸説明をする都合上、エッジ点i、jがどのような管理をされるかについて、実施例に基づいて説明しておく。
エッジ点群を線分により近似する処理領域における全てのエッジ点は、処理領域における座標が既知であり、番号(以降、インデックスともいう)が付けられている。その付け方の例は、処理領域を画素ライン毎にラスタースキャンをしてエッジ点(エッジ画素)が出てくる順番にエッジ番号(以降、エッジインデックスともいう)が付けられるものである。当然、他の番号の付け方であってもよい。そして、各エッジ点に付帯する情報はエッジ点番号テーブル(以降、インデックステーブルともいう)上で管理されるようになっている。インデックステーブルで管理される情報は、各エッジインデックスと、これに対応するエッジ画素の座標値、エッジ勾配方向、エッジ点の所属するクラスタ番号、隣接のエッジ点のエッジインデックス(以降、接続エッジインデックスともいう)と当該隣接のエッジ点との非類似度Dijを含み、1つのエッジインデックスは2つの接続エッジインデックス記憶領域を持ち、それぞれの接続エッジインデックス領域にはそのエッジインデックスに接続する相手のインデックスが書き込まれるようになっている。そして、インデックステーブルは、各処理ステップ(クラスタ抽出ステップ、クラスタ統合ステップおよびクラスタ分割ステップ)によってその情報が追加・変更されていく。
接続エッジインデックスについては、クラスタ抽出ステップでは必要のない情報であるが、後述のクラスタ統合ステップおよびクラスタ分割ステップで使用することがあるものであり、クラスタ抽出ステップでインデックステーブルに記載していく。接続エッジインデックスが1個の場合はそのエッジインデックスに対応するエッジ点がクラスタの端のエッジ点(端点)であることを意味し、接続エッジインデックスが2個の場合はそのエッジインデックスに対応するエッジ点が両側に2つの接続エッジ点を持つエッジ点でありクラスタ端のエッジ点ではないことを意味する。ここで、エッジインデックスおよびその付帯データである接続エッジインデックスと非類似度Dijの組合せデータをCONNECT構造体と呼ぶことにする。もちろん、CONNECT構造体、その他のエッジ点付帯情報は、インデックステーブルのみならず、どこにおかれてもかまわない。このCONNECT構造体を見ることによってクラスタのエッジ点の連結状態が端点と共に明確に把握される。
【0023】
クラスタ抽出の具体的な手順の例は、以下の手順1から手順4に示すようなものであり、手順1から手順3は選択した小領域におけるクラスタ抽出に対応するものである。
具体的な手順に入る前の準備処理として、先ず、インデックステーブルのクラスタ番号書き込み領域の内容をクラスタ番号がまだ付けられていないことを示す内容としておく。
<手順1>
選択した小領域内のエッジ点のクラス分け(クラスタ抽出)をするために、インデックステーブルから当該小領域に属する全てのエッジ点を対象として、当該小領域内における2つのエッジ点i、j(iおよびjはインデックステーブルにおける異なるエッジインデックス)の全ての組み合わせについてそれぞれの座標値およびエッジ勾配方向を使って(1)式によって「距離」Dijをあらかじめ計算し、その結果をエッジ点i、j同士の組合せと「距離」Dijの対応関係がわかる距離テーブルとして用意しておく。
【0024】
<手順2>
(2−1) 距離テーブルの中から最も小さなDijを探し出し、このDijに対応するエッジ点i、jをエッジ点i10、j10とすると、探し出したDijがしきい値η(実施例においては約4.0)未満であれば、エッジ点i10、j10を同一クラスタを構成するエッジ点と決定して、インデックステーブルのエッジ点i10とエッジ点j10それぞれについて、クラスタ番号記憶領域には新たなクラスタ番号c1を書き込み、接続インデックス記憶領域とDij記憶領域には当該探し出した最も小さなDijに対応するエッジ点i、jの内の相手方のエッジインデックスと当該探し出した最も小さなDijを書き込むことで、新たなクラスタ(c1)を創り出す。そして、エッジ点i10とエッジ点j10それぞれを新たなクラスタ(c1)に属するエッジ点抽出の基点とする。尚、新たなクラスタ番号c1は、小領域内のみならず全小領域に渡って昇順で割り当てていくことが好ましい。
(2−2) 次に、エッジ点j10の反対側でエッジ点i10に隣接して連なり同一クラスタに属するエッジ点群を探し出し、それらのエッジ点群を同一のクラスタに属させる処理を行なう。その手順は、
(2−2−1) エッジ点i10と、当該エッジ点i10と既に隣接するエッジ点同士であると決定されたエッジ点以外のエッジ点との組合せの中で最も小さなDijを探し出し、このDijに対応するエッジ点i、jをエッジ点i10、j11とすると、「探し出したDijがしきい値η未満」のしきい値条件が満足されれば、エッジ点j11をエッジ点i10と同一クラスタと決定して、インデックステーブルのエッジ点j11について、クラスタ番号記憶領域にはエッジ点i10と同一のクラスタ番号を書き込み、接続インデックス記憶領域とDij記憶領域にはエッジ点i10のインデックスと当該最も小さなDijを書き込む。また、エッジ点i10について、接続インデックス記憶領域とDij記憶領域にはエッジ点j11のインデックスと当該最も小さなDijを書き込む。上記しきい値条件が満足されなければ、エッジ点i10と同一のクラスタに属する他のエッジ点はないとして次の手順は実行しない。
(2−2−2) (2−2−1)において上記しきい値条件が満足された場合、エッジ点j11と、当該エッジ点j11と既に隣接するエッジ点同士であると決定されたエッジ点以外のエッジ点との組合せの中で最も小さなDijを探し出し、このDijに対応するエッジ点i、jをエッジ点i11、j11とすると、上記しきい値条件が満足されれば、エッジ点i11をエッジ点j11と同一クラスタと決定して、インデックステーブルのエッジ点i11について、クラスタ番号記憶領域にはエッジ点j11と同一のクラスタ番号を書き込み、接続インデックス記憶領域とDij記憶領域にはエッジ点j11のインデックスと当該最も小さなDijを書き込む。また、エッジ点j11について、接続インデックス記憶領域とDij記憶領域にはエッジ点i11のインデックスと当該最も小さなDijを書き込む。上記しきい値条件が満足されなければ、エッジ点j11と同一のクラスタに属する他のエッジ点はないとして次の手順は実行しない。
(2−2−3) 以下、(2−2−1)および(2−2−2)と同様に、上記しきい値条件が満足されれば、エッジ点j12をエッジ点i11と同一のクラスタと決定し、更に続けてエッジ点i12をエッジ点j12と同一のクラスタと決定し、それぞれの決定に対して、対応するクラスタ番号記憶領域にクラスタ番号を書き込み、接続インデックス記憶領域とDij記憶領域には対応するインデックスとDijを書き込む。以降、上記しきい値条件が満足される限り、同一のクラスタに属するエッジ点i1nとエッジ点j1nを決定し、対応するクラスタ番号記憶領域にクラスタ番号を書き込むことを繰り返す。
(2−3) 次に、エッジ点i10の反対側でエッジ点j10に隣接して連なる同一クラスタに属するエッジ点群を探し出し、それらのエッジ点群を同一のクラスタに属させる処理を行なう。その手順は、(2−2−1)から(2−2−3)の手順と同様である。
以上、(2−1)から(2−3)の処理によって当該小領域における1番目のクラスタ(クラスタ番号c1)が確定する。
【0025】
<手順3>
(3−1) <手順2>の(2−1)において、最も小さなDijを探し出す範囲を、距離テーブル全体ではなく、既にインデックステーブルにおいてクラスタ番号が付けられる処理がなされたエッジ点同士の組合せのDijを除いたDijの範囲とすることとし、当該範囲の中から最も小さなDijを探し出し、その他の手順は<手順2>の(2−1)から(2−3)と同様な処理を行ない、当該小領域における2番目のクラスタ(クラスタ番号c2)を確定する。
(3−2) (3−1)を繰り返すことによって、当該小領域の3番目以降のクラスタ抽出が可能である。クラスタ抽出の終了条件を予め設定しておくことによって当該小領域のクラスタ抽出を終了することができる。
クラスタ抽出の終了条件については、実施例においては、クラスタ抽出の結果いずれかのクラスタに割り振られたエッジ点総数がしきい値(小領域内エッジ点総数の95%)以上になるまで、あるいはクラスタ数が指定個数(3クラス)になるまで繰り返すように設定している。これらの終了条件は、小領域の画素数等の条件により最適な条件を選ぶことができる。
【0026】
<手順4>
以上の手順1から手順3における小領域からのクラスタ抽出を、エッジ点を持つ全ての小領域に対して行うことによって、小領域の重なり範囲については重複することがあり得る前提で処理領域全域に渡ってクラスタ抽出を行う。小領域からのクラスタ抽出のための小領域選択の順番については基本的に任意でよいが、本実施例においては隣接の小領域を順番に選択する方法を採っている。その方が処理のし易さの観点からも好ましい。
【0027】
(1)式における各基準値やしきい値ηは、非類似度Dijの大きさによって同一クラスタに属すエッジ点の組合せを選ぶ際に選ばれたエッジ点同士が隣接のエッジ点となるように設定されるべきものであり、取扱う図形の輪郭の複雑さの程度、明確なエッジ点の欠落等による不連続性の度合いも見ながら適用範囲が広くなるように調整すればよい。例えば、上記基準値wdを小さな値にすることによって、任意のエッジ点に対して類似度の高いエッジ点が隣接のエッジ点の中から選ばれやすくなることになり、ノイズによるエッジ点や遠く離れた位置にありいろいろな誤差要因を持つエッジ点が選ばれにくくなる、即ち、適切な連続するエッジ点を速く探し出すことを阻害する要因が除去される効果がある。
以上の結果、上述のクラスタ抽出終了条件により評価されなかったエッジ点がどのクラスタにも属さないで放置されることになるが、放置されるエッジ点をそのままエッジ点として使用するか廃棄するか等の処置は、ステップS40線分近似の結果である近似直線をどのように応用するかによって決めればよいことである。
【0028】
非類似度を表す評価値である距離Dijについては、(1)式に限ることはなく、目的を達成するためにいろいろな変形があってよい。例えば、(1)式右辺の各項を当該各項の変数の増減と増減の方向が同一である任意の当該変数の関数としてもよい。
【0029】
<ステップS20 クラスタ統合>
小領域毎のクラスタ抽出によって処理範囲全体におけるクラスタ抽出を行った結果、処理領域のエッジ点列が直線成分も含めて小領域の境界領域で分断されているものがあり、エッジ点の内の小領域同士の重なり範囲に存在するエッジ点の中にはインデックステーブルのクラスタ番号記憶領域には複数のクラスタ番号が記入されているものが出現する。これは当該複数のクラスタに当該エッジ点が共有されている、即ち、重なり範囲を作る少なくとも2つの小領域に渡ってエッジ点列が存在することを意味する。この具体的な例は、図4あるいは図5のような場合である。因みに、図5の場合について、インデックステーブルにおけるエッジインデックスと対応するエッジ点が所属するクラスタ番号の記憶領域に関する共有エッジ点の部分の記載例を図6に示す。
クラスタ統合処理においては、複数のクラスタによるエッジ点の共有のされ方に依存して、当該複数のクラスタ同士の統合を行おうとするものである。
複数のクラスタへのエッジ点の共有のされ方については、例えば、2つの小領域の重なり範囲に存在する2つのクラスタの重なり部分において、1つのエッジ点のみを双方のクラスタが共有する場合、全てのエッジ点を双方のクラスタが共有する場合、およびその中間の場合がある。この状態は、画像の分解能の違い、画像のノイズによるエッジ点抽出の不安定さ、クラスタ抽出の際の基準となるDij(非類似度)の各パラメータの設定の仕方と取扱い図形の形状その他の特性とのバランス等により変動する可能性がある。従って、双方のクラスタに属するエッジ点がどの様な条件であればどのように統合するかについては、本発明を実施する目的や取り扱う図形の特徴等によって任意に決めればよい。
【0030】
本実施例においては、クラスタ統合ステップは以下のような処理を行う。
重なり範囲を構成する隣り合う2つの小領域の、一方の小領域に少なくともその一部が存在するクラスタと、他方の小領域に少なくともその一部が存在するクラスタとが、当該重なり範囲においてエッジ点を共有する(クラスタ統合の必要条件を満足する)場合には、別途説明するクラスタ統合の十分条件が更に満足されれば双方のクラスタを統合し、十分条件が満足されなければ双方のクラスタを統合しないで放置する。また、双方のクラスタが当該重なり範囲においてエッジ点を共有しない場合には、当然のことながら、双方のクラスタを統合しないで放置する。しかも、上記の処理の対象となるクラスタは、処理領域全域の全ての小領域で抽出されたクラスタおよび上記処理で統合されてできた新たなクラスタである。この結果として、処理領域全域においては、統合されたクラスタと統合されないで残ったクラスタが混在する状態のクラスタ群が得られる。
以下、隣り合う2つの小領域の重なり範囲に存在し統合される2つのクラスタに共有されているエッジ点の近傍に存在する共有されていないエッジ点の処遇を含めて、クラスタの統合の方法について詳しく説明する。
【0031】
先ず、2つのクラスタ統合の基本的な方法を以下に述べる。
クラスタ統合時、小領域の重なり部分における共通エッジ点の持つ接続エッジ点の数は、最大4点である。一般的な例として図7の場合を考える。中央の黒点(E0)が実線で示す一方のクラスタと破線で示す他方のクラスタとの共有エッジ点だとする。E1〜E4のエッジ点がこの黒点(E0)に接続しているエッジ点を表す。ここで、エッジ点E1、E0、E3は一方の小領域で抽出されたクラスタ(一方のクラスタともいい、図では実線でつながれている)に属するエッジ点、エッジ点E2、E0、E4は他方の小領域で抽出されたクラスタ(他方のクラスタともいい、図7では破線でつながれている)に属するエッジ点である。
さて、2つのクラスタを統合するためには、ひとつのエッジ点について接続するエッジ点は2点以下なので、エッジ点E0に接続するべきエッジ点としてこの4点のエッジ点(E1、E2、E3、E4)から2点を選択することになる。その選択の方法は、エッジ点E0と4個の各エッジ点との非類似度の小さいほうから二つを選ぶ方法である。因みに、エッジ点E0と4個の各エッジ点との非類似度については、クラスタ抽出ステップで作られるCONNECT構造体を参照して比較することが便利である。そして、選択された2つのエッジ点それぞれが一方のクラスタに属するE1と他方のクラスタに属するE2の場合には一方のクラスタと他方のクラスタの統合の十分条件は満足されるので当該2つのクラスタを統合する。選択された2つのエッジ点がE1とE3またはE2とE4のように2つのクラスタの内のどちらかにしか属さない場合には一方のクラスタと他方のクラスタの統合の十分条件は満足されないので当該2つのクラスタは統合しない。ここで、2つのクラスタが統合された場合は、選択されなかったエッジ点は削除されることが好ましい。
このエッジ点E0に接続すべきエッジ点の選択については、エッジ点E0が見つかるたびに4点のエッジ点(E1、E2、E3、E4)から2点を選択し残りを削除することによってクラスタの統合とエッジ点連結の双方をまとめて行う方法と、4点のエッジ点(E1、E2、E3、E4)はそのままの状態を保ってクラスタの統合準備だけ(例えば、そのクラスタ同士が統合候補となっていることを示すマークを双方のクラスタにつけ、あとで当該クラスタ同士が統合候補となっているか否かを簡単に検出できる形としておく)を行い、任意の2つの小領域間でクラスタ統合の必要条件を満足するクラスタがある限り当該全てのクラスタの統合準備をし、これが終わった段階で統合準備がなされたクラスタの間で4点のエッジ点(E1、E2、E3、E4)から2点を選択しクラスタを統合するのか統合しないのかを決定する方法があり、いずれの方法をとってもかまわない。
また、いずれの方法においても、以下に述べる処理と組み合わせることによって更に的確なクラスタ統合が可能となる場合がある。これについて以下簡単に説明する。
4点のエッジ点(E1、E2、E3、E4)から2点を選択する前に、CONNECT構造体からそれぞれのエッジ点が属する各クラスタ内で接続エッジ点が1点であるエッジ点(端点)を探し出すことを試み、端点を探し出すことができた場合にはこの端点を基準としてCONNECT構造体上で隣接のエッジ点を次々とたどっていき、E0に到達する直前にたどったエッジ点を無条件にE0に接続すべき第1のエッジ点と決定し、残りの3つのエッジ点の中からE0との非類似度の最小のエッジ点をE0に接続すべき第2のエッジ点として選択する。図7の例において、第1のエッジ点がE1であった場合には、第2のエッジ点がE2の場合には、一方のクラスタと他方のクラスタは統合され、第2のエッジ点がE3の場合にはこれらクラスタは統合されない。
端点の探し方については、もちろん、<ステップS10 クラスタ抽出>における各クラスタ抽出が終了した段階で一旦、そのクラスタにおける端点を探し出しておくことも便利な方法である。
以上述べた第1のエッジ点と第2のエッジ点の選択の方法によって、クラスタの統合の可否に係らず、小領域の重なり範囲にあるエッジ点の並びの順の特定ができる、即ちエッジ点の連結ができることになる。
【0032】
上記いずれの方法を採ったとしても、クラスタ統合は、統合の対象となるクラスタに属し統合された新たなクラスタに所属すべきエッジ点(以降、統合対象エッジ点ともいう)に対応するエッジインデックスに付帯するクラスタ番号を統合された新たなクラスタ番号に書き換える作業を伴う。その場合には、書き換え処理の任意のルールとして、新たなクラスタ番号は、統合の対象となるクラスタの番号の内の若い番号に統一することに決めておく。
新たなクラスタ番号に書き換える手順について、一般的な場合を説明するための好例である図5と、その場合のインデックステーブルにおけるエッジインデックスと対応するエッジ点が所属するクラスタ番号の記憶領域に関する共有エッジ点の部分の記載例である図6とによって、以下説明する。
図5のエッジ点列は、小領域1から4に渡るエッジ点列である。小領域1で抽出されたクラスタはCで同一の名前の楕円で囲まれた部分のエッジ点群である。小領域2、小領域3および小領域4で抽出されたクラスタは同様にC、CおよびCである。クラスタ番号の若さ、即ち、クラスタが抽出された時点が早い順は、C、C、C、Cの順とする。
4つのクラスタは4つの小領域の共通の重なり範囲に存在する3つのエッジ点を共有する。また、クラスタCはクラスタC部分のエッジ点を、クラスタCはクラスタC部分のエッジ点を共有する。図6は、この4つのクラスタ抽出がなされた状態を表している。クラスタ番号の見出しに書かれている#1、#2、#3および#4の記号は、クラスタ番号のつけられた順番に対応するものである。例えば、エッジインデックス112から130まではクラスタ番号はCで、最初にクラスタ抽出されたのでそのときのクラスタ番号が#1クラスタ番号の欄に書き込まれている。次のタイミングで、エッジインデックス104から130がクラスタ抽出されクラスタ番号Cがつけられるが、エッジインデックス112から130までは当該クラスタ抽出時点では既にクラスタCとして抽出されていて#1クラスタ番号領域が埋まっているので、クラスタ番号は#2クラスタ番号領域に書き込まれている。エッジインデックス104から110までに対しては、先行するクラスタ番号がないので#1クラスタ番号領域にCが書き込まれている。以下同様にして、C、Cについても図6に示すように書き込まれている。
小領域1と小領域2に関係するクラスタの統合においては、クラスタCのエッジ点はすべてクラスタCに共有されているのでインデックステーブルのCはCに書き換えられ、エッジインデックス112から130においてはCが重複することになるので#2クラスタ番号領域のCは削除される。次に、小領域2と小領域3に関係する新たに統合されたクラスタ(新クラスタ番号C)とクラスタCとの統合においては、同様にインデックステーブルのC部分がCに書き換えられ、Cの重複がないように余分なCは削除され、更に新たに統合されたクラスタ(新クラスタ番号C)が誕生する。次いで、小領域3と小領域4に関係して、この新クラスタCとクラスタCが同様に統合され、エッジインデックス104から150までの全てのクラスタ番号がCとなる。
【0033】
以上の説明で、エッジ点の存在する小領域の全てにおけるクラスタ抽出が終了してから処理領域全域に対してクラスタ統合処理を行うとしてきたが、他の処理手順として、一つの小領域における一つのクラスタ抽出の終了のたびに当該クラスタを構成するエッジ点の中にそのクラスタ番号記憶領域に他のクラスタ番号が並列で記入されているものがあった場合にクラスタ統合を逐一行うことができる。この手順は、複数のクラスタ番号を持つエッジ点をインデックステーブルの中で探すための処理が軽減するメリットがある。
この手順を採るということは、クラスタ抽出の途中であってもそのクラスタと既存のクラスタとの間でステップS20のクラスタ統合を統合の条件が満たされるたびに局所的に行うことを意味する。換言すれば、クラスタ抽出ステップとクラスタ統合ステップがこの順番で局所的に実施されることの繰返しによって処理領域全体でクラスタ抽出ステップとクラスタ統合ステップが実施されることになる。
【0034】
<ステップS30 クラスタ分割>
クラスタ統合を進めていくと、円のような曲線エッジの場合、クラスタに属するエッジ点群の分布形状が曲線に沿ったものとなってしまうことがある。そこで次に、クラスタに属するエッジ点群の分布を直線で近似できるレベルまでクラスタを分割する。その方法の好ましい例を、以下に示す。
クラスタ統合ステップにおいて、統合されたクラスタおよび単独で残っているクラスタに属するエッジ点は、端点とその間のエッジ点が前後の2つのエッジ点とのみ接続する形で、それらの並び順が明示された(これを、「連結された」ともいう)状態となっていることからクラスタの端にあるエッジ点(端点)がわかる。そこでまず、図8に記載するように、当該2つの端点を結ぶ弦Lとクラスタ内エッジ点との最大距離dmaxを計算する。そして、dmaxが、しきい値τに対して
max≧τ (2)
のときに、dmaxを達成するエッジ点位置で、より正確には並び順で当該エッジ点の直前あるいは直後のエッジ点と当該エッジ点との間をクラスタ(エッジ点集合)の分割の境界としてクラスタ分割を行う。当該直前あるいは直後のいずれを選択するかは予め決めておけばいいことである。
maxがしきい値τに対して(2)式を満足しないときには、クラスタは分割しない。
以上の処理を、この処理で生まれた新たなクラスタに対しても行い、分割できるクラスタは全て分割し尽くすまでクラスタ分割を行う。
なお、τはエッジ点の線分近似の要求精度によって任意に変えればよい。
【0035】
<ステップS40 線分抽出>
上述のクラスタ分割ステップを終了して、最終的に得られた各々のクラスタに対して、クラスタのエッジ点群の第1主成分軸(図9参照))上の線分であって、当該エッジ点群を当該第1主成分軸に射影したエッジ座標データの存在範囲の線分を、当該エッジ点群を代表する線分として抽出する。因みに、当該線分は最小二乗法により得られるエッジ点群分布を近似する線分(直線)である。
また、他の方法として、クラスタの端点同士を結ぶ線分(これは、(2)式が満足されなくなりクラスタ分割ステップを終了する時点で既に得られている弦Lに等しい)を当該クラスタに属するエッジ点群の分布を近似的に代表する線分と決定して抽出することもできる。この方法はより処理時間を短縮でき、図形の種類(例えば、直線が主要輪郭のほとんどを占める場合)や処理結果として出力される線分の用途によっては有効である。
【0036】
以上、ステップS30 クラスタ分割からステップS40 線分抽出までの基本的な処理方法について説明してきた。そのステップ間の処理手順としては、ステップS10 クラスタ抽出とステップS20 クラスタ統合の処理の手順として追加説明をした2つの処理手順と同様に、2つの手順が存在する。
第1の手順は、全てのクラスタに対してステップS30クラスタ分割を実行し、その実行が終了したあとに存在する全てのクラスタに対してステップS40線分抽出を実行するようなやり方を採ることである。この方法の場合は、分割を終了したクラスタの全てに対してそれ以降の処理に必要な情報を記憶していくこととなる。記憶していく情報は、分割の仕方に依存するが、分割の終了したクラスタに対する第1主成分軸情報、dmaxを達成するエッジ点位置情報等である。
第2の手順は、一つのクラスタに対してステップS30クラスタ分割のステップの処理において分割条件が満足されなくなった新しいクラスタが得られるたびにステップS40線分抽出のステップの処理を実行して線分抽出まで終了させることを、分割されたクラスタも含めて全てのクラスタに対して逐一行うことで、全体のクラスタ全てに対してクラスタ分割から線分抽出まで済ますやり方を採ることである。この手順は、処理ステップとしてクラスタ分割ステップと線分抽出ステップを局所的に構成して実行していることに変わりはない。
【0037】
次に、第2の実施例について説明する。
第1の実施例においては、CONNECT構造体を用意して、エッジ点の連結状態を常に確認する方法を採ってきたが、エッジ点の連結状態を常に確認する必要のない発明の解決手段も採用することができる。この実施方法について、第1の実施例との相違点を中心に以下、説明する。
【0038】
<ステップS10 クラスタ抽出> においては、エッジインデックスとその付帯データである各エッジ点と接続すべきエッジ点のエッジ点番号である接続エッジインデックスと当該エッジ点と当該接続エッジ点との非類似度Dijの組合せデータであるCONNECT構造体を用いる必要がないことが、第1の実施例との相違である。従って、CONNECT構造体への情報の書き込み、その情報の利用に関する処理は行わず、それ以外は第1の実施例と同様な処理を行なって小領域毎にクラスタ抽出を行う。
【0039】
<ステップS20 クラスタ統合> における処理は、以下のごとくとなる。
本実施例においては、インデックステーブルのクラスタ番号領域に複数のクラスタ番号が存在するエッジ点が一つでもあれば、クラスタ番号領域のクラスタ番号を書き換えることによって、そのエッジ点の存在する全てのクラスタに属する全てのエッジ点のクラスタ番号を当該複数のクラスタ番号の内の最も若い番号に統一することを、処理領域全域で複数のクラスタ番号を持つエッジ点がなくなるまで繰り返すことで、クラスタの統合処理を行っている。即ち、この場合のクラスタ統合の必要十分条件は、複数のクラスタに共有のエッジ点が1つ以上あることである。因みに、これは、最も単純な統合の方法であり、その分処理時間は短い。本実施例のクラスタ統合処理方法の延長上にある他の処理方法のクラスタ統合(例えば、共有のエッジ点が複数あることを必要条件のひとつとするクラスタ統合)の必要十分条件については、当該他の処理方法に係って本発明の実施者が任意に定めることができるので詳細は述べない。
【0040】
<ステップS30 クラスタ分割> においては、以下に示す2段階で行う。
<第1段階>
処理範囲全域に存在する全てのクラスタのそれぞれに対して、図10に示すように、当該クラスタのエッジ点群の処理範囲のXY座標データから主成分分析を行い、固有値λ、λ(λ≧λ)を求める。ここで、固有値λは、第1主成分軸に射影した座標データの分散値となっている。同様に固有値λは、第2主成分軸方向の分散値である。
そして、しきい値τに対して
λ/λ≧τ (3)
のとき、第2主成分軸を分割線としてその左右のエッジ点群を別々の新たなクラスタに属させるクラスタ分割を行う。(3)式を満足しないクラスタは分割しない。
以上の処理を、この処理で生まれた新たなクラスタに対しても行い、(3)式の条件を満足し分割できるクラスタは全て分割し尽くすまでクラスタ分割を行う。
因みに、実施例においては、τ=0.1と設定している。
クラスタを分割するときに分割線がエッジ点(エッジ画素)上を通る場合は、予め所定のルールを用意しておくことによって、当該エッジ点を属させるクラスタを決定するようにできる。
【0041】
<第2段階>
第1段階の処理によって得られた各々のクラスタに対して、クラスタに属するエッジ点群をクラスタ分割の第1段階で既に得られている第1主成分軸に射影したときの第1主成分軸座標によって当該エッジ点群(クラスタ)の両端のエッジ点を把握し、これらを利用して、第1の実施例の、ステップS30 クラスタ分割>で述べた方法と同様にしてクラスタ分割の処理を行う。
【0042】
クラスタ分割ステップにおける他の方法として、以上述べた第1段階および第2段階で異なる分割の基準を用いる方法ではなく、第1段階および第2段階を通じて、主成分分析による固有値の比λ/λが第3のしきい値τ3以上の条件を満足する場合に第2主成分軸を境にしてそのクラスタを分割する方法を採ることもできる。当然、λ/λが第3のしきい値τ3未満の場合には分割を終了する。ここに、第3のしきい値τ3は、上記条件を満足しなくなったクラスタに属するエッジ点群が所定のばらつき範囲内で直線の近くに分布している状態を得て線分抽出ステップにおける結果が目的に沿うようにするためのしきい値である。この方法は、処理が単純で上述の方法と同様な効果を示すものである。しかも、この方法は、上述の第1段階と第2段階を経る分割よりも処理時間は概ね短くなる効果がある。
また、取扱い図形の特性によっては、第1主成分軸を境にしてクラスタを分割することも可能である。
更にまた、その他いろいろな方法を採ることは可能である。
【0043】
<ステップS40 線分抽出> においては、第1の実施例に述べた方法と同様である。
【0044】
以上、本発明の内容を実施例と共に説明してきたが、その技術範囲は以上の内容にとどまらない。
クラスタ抽出ステップ、クラスタ統合ステップ、クラスタ分割ステップおよび線分抽出ステップそれぞれにおいていかなる詳細な方法を採ろうが、
隣接する小領域と重なり範囲を持つ個々の小領域毎にクラスタ抽出を行うクラスタ抽出ステップと、隣接する2つの小領域の内の一方の小領域に少なくともその一部が属するクラスタと他方の小領域に少なくともその一部が属するクラスタが当該2つの小領域の重なり範囲に共有のエッジ点を持つとき、当該エッジ点を利用してクラスタ統合を行うクラスタ統合ステップと、クラスタに属するエッジ点群の分布特性を判断基準としてクラスタ分割を行うクラスタ分割ステップと、クラスタに属するエッジ点群を近似的に代表する線分を抽出する線分抽出ステップとからなるエッジ点列の線分近似方法であれば、本発明の技術範囲に含まれる。
【図面の簡単な説明】
【0045】
【図1】本発明によるエッジ点群を線分により近似する処理の流れを示す図である。
【図2】処理領域とこれに被せて配置した複数の小領域の関係を示す図である。
【図3】エッジ点i、jの性質の違いの度合いを表す距離Dij(非類似度)の諸元の関係を示す図である。
【図4】重なり範囲を作る2つの小領域に渡ってエッジ点列が存在する例を示す図である。
【図5】重なり範囲を作る少なくとも2つの小領域に渡ってエッジ点列が存在する他の例を示す図である。
【図6】インデックステーブルにおける共有エッジ点の部分の記載例を示す表図である。
【図7】小領域の重なり部分における共通エッジ点に対する接続エッジ点の在り様の一般的な例を示す図である。
【図8】第1の実施例および第2の実施例の第2段階におけるクラスタの分割を説明するための図である。
【図9】線分抽出ステップを説明するための図である。
【図10】第2の実施例におけるクラスタ分割の第1段階を説明するための図である。
【符号の説明】
【0046】



【特許請求の範囲】
【請求項1】
図形のエッジ点が抽出されている画像領域に被せて、隣り合う小領域同士で重なり領域ができるように複数の小領域を配置し、エッジ点が存在する各々の小領域毎に隣接するエッジ点からなるエッジ点集合(以降、クラスタともいう)を所定の方法によって抽出するクラスタ抽出ステップと、
前記重なり範囲を構成する2つの小領域の、一方の小領域に少なくともその一部が存在するクラスタと、他方の小領域に少なくともその一部が存在するクラスタとが、当該重なり範囲においてエッジ点を共有する場合に、所定の方法によって当該それぞれのクラスタを同一のクラスタとして統合して新たなクラスタを生み出すことを、クラスタ抽出ステップで抽出された各々のクラスタおよび当該統合により新たに生み出された各々のクラスタを対象として行うクラスタ統合ステップと、
クラスタ統合ステップで統合された各々のクラスタおよび統合されずに残った各々のクラスタを対象として、当該各々のクラスタに属するエッジ点群の分布特性を表す値を分割の判断基準とする所定の方法によって当該各々のクラスタを分割するクラスタ分割ステップと、
クラスタ分割ステップで分割されて生まれた各々の新たなクラスタおよびクラスタ分割ステップで分割の要件に合わず分割されないで残った各々のクラスタを対象として、各々のクラスタにおいて、クラスタを構成するエッジ点群の分布を代表する線分を所定の方法により抽出する線分抽出ステップとからなることを特徴とするエッジ点列の線分近似方法
【請求項2】
クラスタ抽出ステップにおける所定の方法が、
(a)前記小領域内で既に存在するいずれのクラスタにも属していない2つのエッジ点の組合せの中から、当該それぞれのエッジ点の性質の違いの度合いを表す距離(以降、非類似度ともいう。)が基準値以下で且つ最小である条件(以降、隣接エッジ点組合せ条件ともいう)を満足するエッジ点の組合せを選び、当該組合せを構成するそれぞれのエッジ点をそのクラスタ抽出の基点とする新たなクラスタを創り出すステップと、
(b)当該基点の一方を第1のエッジ点として、第1のエッジ点と隣接エッジ点組合せ条件を満足する第2のエッジ点を選ぶ手順を、第2のエッジ点を次の第1のエッジ点とすることにより当該隣接エッジ点組合せ条件を満足する第2のエッジ点が得られなくなるまで繰り返して、当該基点の一方に連なる隣接エッジ点列を抽出し当該新たなクラスタに属させるステップと、
(c) (b)のステップにおいて当該基点の一方を当該基点の他方と置き換えて当該ステップを実行することにより当該基点の他方に連なる隣接エッジ点列を抽出し当該新たなクラスタに属させるステップとから、
互いに隣接するエッジ点からなる当該新たなクラスタを抽出することを所定の終了条件を満足するまで繰り返して当該小領域内のクラスタを抽出する方法であることを特徴とする請求項1に記載のエッジ点列の線分近似方法。

【請求項3】
クラスタ抽出ステップにおける非類似度(以降、Dijと表記する)が、
【数1】

ここで、
ij :エッジ点i、jのユークリッド距離
ij :エッジ点i、jそれぞれのエッジ勾配方向のなす角
i 、cj :エッジ点i、jを結ぶ直線とエッジ点i、jそれぞれのエッジ勾配方向を法線に持つ直線(見做し接線)li 、ljそれぞれとのなす角
d、ws、wc:各要素dij、sij、ci+cjの基準値

であることを特徴とする請求項1または請求項2に記載のエッジ点列の線分近似方法。
【請求項4】
クラスタ統合ステップにおける所定の方法が、前記共有のエッジ点に隣接すべきエッジ点として、当該共有のエッジ点の複数の隣接のエッジ点の内、当該共有のエッジ点との非類似度の小さい順に2つのエッジ点を選択し、選択されたエッジ点それぞれが当該共有のエッジ点を持つ2つのクラスタのそれぞれに属する場合に当該2つのクラスタを統合する方法(以降、第1の方法ともいう)であることを特徴とする請求項1から請求項3のいずれかに記載のエッジ点列の線分近似方法。
【請求項5】
クラスタ統合ステップにおける所定の方法が、前記共有のエッジ点が1つでもあれば、当該共有のエッジ点を持つクラスタに属する全てのエッジ点を統合によって生まれる新たなクラスタに属させることにより、当該共有のエッジ点を持つクラスタを統合する方法(以降、第2の方法ともいう)であることを特徴とする請求項1から請求項3のいずれかに記載のエッジ点列の線分近似方法。
【請求項6】
請求項4に記載のクラスタ統合の第1の方法を採る場合において、クラスタ分割ステップにおける所定の方法が、クラスタ統合ステップで統合されたクラスタおよび統合されずに残ったクラスタの各々を対象にして、
(a)クラスタに属するエッジ点群の両端のエッジ点を結ぶ弦Lとクラスタ内エッジ点との最大距離dmaxが所定のしきい値以上である条件を満足する場合はdmaxを達成するエッジ点位置で分割して新たなクラスタを生み出し、
(b)更に、(a)の処理で生み出された新たなクラスタをも対象として(a)の処理を行なうことを、
当該条件を満足するクラスタがなくなるまで繰返す方法であることを特徴とする請求項1から請求項4のいずれかに記載のエッジ点列の線分近似方法。
【請求項7】
請求項5に記載のクラスタ統合の第2の方法を採る場合において、クラスタ分割ステップにおける所定の方法が、クラスタ統合ステップで統合されたクラスタおよび統合されずに残ったクラスタの各々を対象にして、
(a1)クラスタに対してエッジ点群の座標データから得られる主成分分析の固有値λ、λ(ここに、λ≧λ)の比λ/λが所定のしきい値以上である第1の条件を満足する場合は、第2主成分軸を分割線として当該クラスタを分割して新たなクラスタを生み出し、
(b1)更に、(a1)の処理で生み出された新たなクラスタをも対象として(a1)の処理を行なうことを、
当該第1の条件を満足するクラスタがなくなるまで繰返す第1段階と、
前記第1段階で新たに生まれたクラスタと当該第1段階で分割されないでそのまま維持されたクラスタの各々を対象にして、
(a2)クラスタに属するエッジ点群の両端のエッジ点を結ぶ弦Lとクラスタ内エッジ点との最大距離dmaxが所定のしきい値以上である第2の条件を満足する場合はdmaxを達成するエッジ点位置で分割して新たなクラスタを生み出し、
(b2)更に、(a2)の処理で生み出された新たなクラスタをも対象として(a2)の処理を行なうことを、
当該第2の条件を満足するクラスタがなくなるまで繰返す第2段階とからクラスタ分割を行う方法であることを特徴とする請求項1から請求項3および請求項5のいずれかに記載のエッジ点列の線分近似方法。
【請求項8】
請求項5に記載のクラスタ統合の第2の方法を採る場合において、クラスタ分割ステップにおける所定の方法が、クラスタ統合ステップで統合されたクラスタおよび統合されずに残ったクラスタの各々を対象にして、
(a)クラスタに対してエッジ点群の座標データから得られる主成分分析の固有値λ、λ(ここに、λ≧λ)の比λ/λが所定のしきい値以上である条件を満足する場合は、当該主成分分析による第2主成分軸を分割線として当該クラスタを分割して新たなクラスタを生み出し、
(b)更に、(a)の処理で生み出された新たなクラスタをも対象として(a)の処理を行なうことを、
当該条件を満足するクラスタがなくなるまで繰返すことによりクラスタ分割を行う方法であることを特徴とする請求項1から請求項3および請求項5のいずれかに記載のエッジ点列の線分近似方法。
【請求項9】
線分抽出ステップにおける所定の方法が、クラスタ分割ステップで分割されて生まれた新たなクラスタおよびクラスタ分割ステップで分割の要件に合わず分割されないで残ったクラスタの各々を対象として、クラスタを構成するエッジ点群に対する第1主成分軸上の線分を、当該エッジ点群を代表する線分として抽出する方法であることを特徴とする請求項1から請求項8のいずれかに記載のエッジ点列の線分近似方法。
【請求項10】
請求項1から請求項9のいずれかに記載したエッジ点列の線分近似方法をコンピュータ上で具現化するコンピュータプログラム。
【請求項11】
請求項10に記載したコンピュータプログラムを格納した記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−134491(P2010−134491A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−306943(P2008−306943)
【出願日】平成20年12月2日(2008.12.2)
【特許番号】特許第4374068号(P4374068)
【特許公報発行日】平成21年12月2日(2009.12.2)
【出願人】(599173952)株式会社ファースト (16)
【Fターム(参考)】