(57)【要約】【課題】リード列を正確に認識して高精度の部品認識が可能な部品認識方法及び装置を提供する。【解決手段】探索円弧２１でリード部品５２の画像を探索し、その画像の中から所定個数（例えば３個）のリードを検出したら、検出されたリードの並びに沿ってリード検出を行い、リードＬ０〜Ｌ６を順次検出する。検出された各リードの配列パターンと部品データで定義されているこのリード列の定義パターンとを照合し、両パターンが一致したときに、検出した各リードの先端座標に基づいて部品を認識する。このような構成では、リード列の認識が確実になるとともに、リード列の検出に要する時間を顕著に短縮することができる。【選択図】図４
2006294881.tif 000002
【特許請求の範囲】
【請求項１】
リード列を有する部品の画像を処理して部品を認識する部品認識方法であって、
湾曲した探索曲線を生成し、
前記生成した探索曲線により画像の中からリード列のリードを順次検出し、
検出された各リードの配列パターンと該リード列の定義パターンとを照合し、
検出された各リードの配列パターンが、定義パターンと一致したときに、検出したリードの画像に基づいて部品を認識することを特徴とする部品認識方法。
【請求項２】
前記探索曲線によりリード列のリードが所定個検出されたら、該検出されたリードの並びに沿ってリード検出を行い、該リード並びに沿ったリード検出を、検出された各リードの配列パターンが定義パターンと一致するまで、継続することを特徴とする請求項１に記載の部品認識方法。
【請求項３】
前記両パターンが一致したときに、検出した各リードの先端座標を求めて部品認識を行うことを特徴とする請求項１又は２に記載の部品認識方法。
【請求項４】
前記探索曲線が、リード列に対して凸状に湾曲した円弧状の曲線であることを特徴とする請求項１から３のいずれか１項に記載の部品認識方法。
【請求項５】
リード列を有する部品の画像を処理して部品を認識する部品認識装置であって、
部品を撮像する撮像装置と、
撮像された部品の画像を処理する画像処理装置とを有し、
前記画像処理装置は、湾曲した探索曲線を生成し、該生成した探索曲線により画像の中からリード列のリードを順次検出し、検出された各リードの配列パターンと該リード列の定義パターンとの照合結果、両パターンが一致したときに、検出したリードの画像に基づいて部品を認識することを特徴とする部品認識装置。
【請求項６】
前記探索曲線によりリード列のリードが所定個検出されたら、該検出されたリードの並びに沿ってリード検出を行い、該リード並びに沿ったリード検出を、検出された各リードの配列パターンが定義パターンと一致するまで、継続することを特徴とする請求項５に記載の部品認識装置。
【請求項７】
前記両パターンが一致したときに、検出した各リードの先端座標を求めて部品認識を行うことを特徴とする請求項５又は６に記載の部品認識装置。
【請求項８】
前記探索曲線が、リード列に対して凸状に湾曲した円弧状の曲線であることを特徴とする請求項５から７のいずれか１項に記載の部品認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、部品認識方法およびその装置、更に詳細には、部品実装機などにおいて撮像された電子部品の位置決めが可能な部品認識方法およびその装置に関する。
【背景技術】
【０００２】
電子部品（以下、単に部品という）を回路基板に実装する部品実装機において、部品は部品供給装置（フィーダ）から供給され、吸着ノズルにより吸着されて回路基板に実装される。吸着ノズルは必ずしも正しい姿勢で部品を吸着するとは限らないので、通常ＣＣＤカメラなどにより吸着部品が撮像されて部品認識が行なわれ、正しい姿勢で吸着されていない場合には、認識結果に基づき位置ずれ（部品中心と吸着中心のずれ）と吸着角度ずれが補正され、部品が正しい姿勢で基板に搭載される。
【０００３】
このような部品認識方法が、たとえば特許文献１に記載されている。この方法では、例えば、図１３に図示したように、リード部品２がカメラにより撮像され、入力画像１（白黒濃淡画像）として画像処理装置に入力される。吸着ノズルは、正しい姿勢でリード部品２を吸着するとは限らないので、通常、図示したように、リード部品２の画像には、位置ずれ、角度ずれが生じている。
【０００４】
この部品２が正しく基板の上の決められた位置に搭載されるためには、部品２に貼り付けた座標系（ＵＶ座標系）の原点位置と傾きが画像の座標系（ＸＹ座標系）で正確に既述される必要がある。すなわちその情報がわかれば位置ずれと角度ずれの補正が可能となる。そのためには、入力画像１においてリード列の存在するおおまかな探索領域３が定められ、ＵＶ座標系で定義されるリード列が画像の中で認識され、すなわちリード列が位置決めされ、各リードの先端座標４がＸＹ座標系で取得されることが必要である。
【０００５】
従来の方式では、リードの大きさ（幅、長さ）とリード間ピッチＰから決まる小さな矩形状の小窓５を探索領域３の角６に設定し、この小窓５を規則正しく、三角形状に広がるように、右または上に少しずつ移動させ探索を行い、この小窓５の中にリード先端４の近傍が完全に入ったときに、リード７の先端４の座標を抽出している。そして、リード７の先端４の座標を中心とし、ピッチＰを半径とする円弧上に次々と小窓を発生させて他のリードの存在を調べ、リード８が抽出されれば、以下リード９、１０、．．の順にリード１３までを抽出し（図１３でリード１２は定義上空白リードであり画像にもない）、さらに条件によっては仮想のリード１４および１５も抽出している。
【０００６】
続いて、このように抽出されたリード列のパターンと、与えられた定義リード列のパターン（電極有り無し）との完全な一致を確認したら認識が完了する。この方式では認識が完了したとき既にすべてのリード先端座標が得られていることも特徴である。
【特許文献１】特開２０００−２３２２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した部品認識方法では、小窓が全ての種類のリードを抽出できることを前提としているが、部品に傾きがあると、リードも傾き、部品傾きが大きいと、小窓によるリード抽出が出来なくなるという問題がある。
【０００８】
また、小窓の寸法を始めとする抽出のための設定が、リードの定義データで決まるので、現実のリードの像が定義値と大きくかけ離れていると（特にリード幅）、認識許容値を超えてしまい、認識が正確に行われず、また、リードが、曲がっている、形状が崩れている、一部に暗い部分がある、などがあると小窓による抽出が難しいだけでなく、たとえ抽出できてもリードの先端座標が大きく狂うことになりその後の残りのリードの位置決めが困難になるという問題がある。
【０００９】
また、リードは位置誤差に弱く、平均的には等ピッチ、かつ先端が一直線に揃って見えるリード列であっても、リード個々はピッチ方向にも、その直角であるリード方向にも多少のずれがある。このずれが大きい場合、たとえ個々のリードの映りがよいとしても、次に予測した位置に小窓をかけてもそこから抽出できないことが起こり位置決めが破綻する。しかしそのような部品の場合でもリード列そのものは平均的には均一であるという事実があり、これを認識できないとすることは、問題である。
【００１０】
また、従来では、部品認識の消費時間のばらつきが大きいという問題がある。例えば、図１３において、リード列は探索領域３のどこにでも位置しうるので、端のリード７の探索に関して、それが角６に近いときは早く見つかり全体の消費時間も小さいが、逆に角６から遠いときは遅く見つかり全体の消費時間が大きい。さらにたとえ部品の重心位置が同じでも部品の角度が異なれば同じ理由により消費時間に大きな差がでることになる。すなわち最初に端のリードを必要とするロジック自体に問題がある。
【００１１】
従って、本発明は、このような問題点を解決するためになされたもので、リード列を正確に認識して高精度の部品認識が可能な部品認識方法及び装置を提供することを課題とする。
【課題を解決するための手段】
【００１２】
本発明は、
リード列を有する部品の画像を処理して部品を認識する部品認識方法及び装置であって、
湾曲した探索曲線を生成すること、
前記生成した探索曲線により画像の中からリード列のリードを順次検出すること、
検出された各リードの配列パターンと該リード列の定義パターンとを照合すること、
検出された各リードの配列パターンが、定義パターンと一致したときに、検出したリードの画像に基づいて部品を認識することを特徴とする。
【００１３】
リード検出は、探索曲線によりリード列のリードが所定個検出されたら、該検出されたリードの並びに沿ってリード検出を行い、該リード並びに沿ったリード検出を、検出された各リードの配列パターンが定義パターンと一致するまで、継続することにより行われる。
【００１４】
検出された各リードの配列パターンが、定義パターンと一致したとき、検出した各リードの先端座標を求めて部品認識が行われる。
【００１５】
探索曲線は、リード列に対して凸状に湾曲した円弧状の曲線とされる。
【発明の効果】
【００１６】
本発明では、探索曲線が湾曲しているので、探索曲線によりリード列を探索するとき、リードを早期に、また数多く検出することができ、リード列の認識が確実になる。
【００１７】
また、探索曲線により所定個数のリードが検出されたら、リードの並びに沿って他のリードが順次検出されるので、定義パターンと一致するリード配列を持ったリード列の検出に要する時間を顕著に短縮することができる。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面を参照して本発明を詳細に説明する。
【実施例】
【００１９】
＜全体の構成＞
図１は、本発明に使用される部品実装機１２０と、撮像された部品の画像を処理し、部品認識を行う画像処理装置１１２の構成を概略示している。
【００２０】
同図において、吸着ノズル１０１は、実装機１２０のメイン制御装置１１３により制御されてＸ、Ｙ軸方向に移動して部品供給装置（不図示）から供給される部品１０２を吸着する。メイン制御装置１１３は、部品１０２を吸着した吸着ノズル１０１を、撮像位置へ移動させ、そこで、照明装置１０３により照明された部品１０２が、ＣＣＤカメラあるいはＣＭＯＳカメラなどの撮像装置１０４により撮像される。
【００２１】
撮像された部品の画像は、後述するように、画像処理装置１１２において画像処理され、部品中心（画像中心ないし吸着中心からの位置ずれ）、並びに部品傾き（基準角度に対する角度ずれ）が検出される。本発明では、このような部品の位置（部品中心や部品傾きなど）を検出することを、部品認識あるいは部品の位置決めとよぶ。部品認識後、部品１０２は、メイン制御装置１１３により基板１１４の位置に移動され、検出された位置ずれと角度ずれが補正されて回路基板１１４の所定位置に搭載される。
【００２２】
基板１１４には、基板マーク（不図示）が形成されており、この基板マークは、吸着ノズル１０１を設けたヘッドに取り付けられる基板認識カメラ１１５により撮影され、そのマーク画像が画像処理装置１１２で処理され、基板位置が検出される。基板１１４に位置ずれと角度ずれがある場合には、そのずれが補正されるので、部品１０２は、高精度で基板１１４上に搭載される。
【００２３】
画像処理装置１１２は、カメラ１０４、１１５からの画像をデジタル値に変換するＡ／Ｄコンバータ１０５と、デジタル画像に変換された部品１０２や基板マークなどの対象物の画像を格納する画像メモリ１０６、作業用メモリ（ＲＡＭ）１０７、部品データ格納メモリ１０８、ＣＰＵ１１０、インターフェース１１１などから構成されており、撮像された部品１０２の画像は、デジタル化されて画像メモリ１０６に格納される。また、部品データ格納メモリ１０８には、部品外形寸法（縦幅、横幅など）、特徴物（リードなど）のサイズ（リード長さ、リード幅、リードピッチなど）や位置などの部品データ（定義データとも呼ばれる）が部品の種類ごとにＩＤ番号を付されて格納されている。部品の画像処理時、モニタ１１６には、部品の画像ないし画像処理の様子と処理結果が表示される。
【００２４】
このような構成で、画像処理装置１１２は、部品実装機１２０からユーザーが作成した部品データをあらかじめ受け取り、それを部品データ格納メモリ１０８に格納する。部品実装時、メイン制御装置１１３は、吸着ノズル１０１を部品供給装置（不図示）に移動させ、そこから供給される部品１０２を吸着ノズル１０１で吸着させる。続いて、メイン制御装置１１３は、吸着ノズル１０１を撮像装置１０４の上に移動させ、照明装置１０３を点灯して部品１０２を照明し、それにより部品１０２が撮像装置１０４により撮像される。その画像は、画像処理装置１１２に転送され、Ａ／Ｄ変換器１０５でデジタル化され、画像メモリ１０６に保存される。画像が保存されたら、画像処理装置１１２のＣＰＵ１１０は、以下に述べるように、部品認識処理を行う。その認識結果は、インターフェース１１１を介してメイン制御装置１１３に送信され、メイン制御装置は、部品認識により得られた位置ずれ、角度ずれを補正して部品１０２を回路基板１１４上に搭載する。
【００２５】
図２は、図１の主要部を抽出し、簡略してブロック図としたもので、制御部１３０は全体を制御するもので、図１のメイン制御装置１１３に対応する。画像入力部１３１は、吸着ノズル１０１により吸着された部品１０２を撮像装置１０４で撮像して画像処理装置１１２の画像メモリ１０６に取り込む部分である。部品位置決め部１３２は、部品位置決め、すなわち渡された部品データと入力画像を解析して、ＸＹ座標系におけるＵＶ座標系の位置と傾きを出力するまでの一連の作業を行う。リードパターン位置決め部１３３は、入力画像の中から部品データで定義されたリードの配列パターンを検出する。この部品位置決め部１３２とリードパターン位置決め部１３３は、画像処理装置１１２のＣＰＵ１１０により実現される。
【００２６】
部品をリード部品とすると、リード部品には、複数のリード電極（以下、リードという）が所定パターンで配列されたリード列が少なくとも１個はあり、複数リード列のうち、リード数が最も多く、かつそのリード列の端に空間が十分にあるような（境界条件）リード列を、入力画像から検出すると、効果的な位置決めが可能となる。そこで、このような条件を満たすリード列を予め選択しておく。
【００２７】
本発明では、リード列におけるリードの配列パターンをリードパターンと呼ぶ。また、部品データには、リード列のリード配列が記述されており、この部品データで記述されたリード列のリードの配列パターンを定義パターンと呼ぶ。リードパターン位置決め部１３３は、選択されたリード列の定義パターン、リードピッチ、境界条件などの必要情報を部品データ格納メモリ１０８に格納されている部品データから取り込み、入力画像の中から定義パターンと一致するリードパターンを有するリード列を検出する。リードパターン位置決め部１３３は、他のリード列に対しても同様な処理によりその定義パターンを有するリード列を検出し、検出されたリード列の各リードの先端座標を抽出する。部品位置決め部１３２は、抽出されたリード列先端座標から、ＸＹ座標系（画像座標系）におけるＵＶ座標系（部品データを記述する座標系）の原点位置（部品中心に相当）と傾きを算出する。
【００２８】
＜リードパターンの位置決めの概要＞
以下に、リードパターン位置決め部１３３を詳細に説明する。
【００２９】
リードパターン位置決め部１３３は、まず、選択されたリード列のリードピッチＰとリードの寸法を取り込み、これらのデータから探索円弧と呼ぶところの円弧を形成するベクトルデータ列を生成し、次に、探索円弧を使って画像の中で連続する所定個（Ｔ本）のリードを見つける。ただしこのＴ本はリード列のどの部分のリードでもよい。次に、そのＴ本のリードを足がかりに右隣りまたは左隣りのリードを見つける。以降、既に見つかっているリード集合から未知のリードを見つける作業を繰り返す。このリード探索中に、リードがない、すなわち空白とみられる位置を確認したらそれまでの抽出したリードの配列パターンと定義パターンとを照合する。一致しないときはさらに探索を続け、空白に出会うたびに照合を行う。完全に一致したら各リードのリード先端座標を出力して完了する。
【００３０】
このような流れが、図３に図示されており、図４に図示されたリード部品を例にとって説明する。
【００３１】
図４の入力画像５１には、リードＬ０〜Ｌ６からなるリード列を有するリード部品５２が撮像されており、現実の部品を想定して、部品は大きく傾き、リードは不揃いで、映りが悪いという状況で認識が行われる。所定の探索領域５３が設定されてリードパターンが探索され、そのために、予め、部品データ格納メモリ１０８に格納された部品データから、入力画像に対して認識すべきリードパターン、つまり定義パターンが与えられる。リードＬ０〜Ｌ６の配列は、図５に図示したように、リード有り（１）、リード無し（０）として、「１」と「０」の数値の配列で表されており、リードＬ０〜Ｌ６の定義パターンは、「１１１１１０１」となる。この定義パターンでは、実リードが６個あり、右から２番目のリード（リードＬ５）はなく、リードＬ０より左側、並びにリードＬ６より右側には、リード電極がないという情報も付加されている。
【００３２】
＜初期化：探索円弧の生成＞
まず、図３の状態Ｓ０は、リードパターンの位置決め初期状態であり、部品位置決め部１３２から制御を渡されたときの仮想の状態である。ここではリードパターンを位置決めするため各種の初期化を行う。すなわちまず、上記定義パターンのリード列のリードピッチとリードの寸法から、探索円弧と呼ぶところの円弧を形成するベクトルデータ列を作る。このベクトルデータ列を作成する状態が図６に示されている。
【００３３】
図６（Ａ）は、定義パターンのリード列のうち、例えば３本のリードＬ０、Ｌ１、Ｌ２を水平に並べた仮想図であり、各リードのピッチをＰ、リードの定義幅をφとする。また、リードの長さ方向については安定長βが与えられる。安定長がβであるとは、撮像されたリード像においてリードの側面間の距離がほぼ一定であるような区間の長さが少なくともβあることを意味する。このβとしては、撮像されたリード像をモニタ１１６でみて、リードを安定して長さ方向に計測できるリード先端からの上限値β´を実測し、それに経験的な係数０．６を乗算したβ＝０．６×β´の値を用いる。そして、３つのリードＬ０、Ｌ１、Ｌ２を貫通する幅βの領域をβ帯（β−バンド）と呼び、右リードＬ２の右端線とβ帯の下限線との交点をＡ、左リードＬ０の左端線とβ帯の下限線との交点をＢ、中央リードＬ１の中心線とβ帯の上限線との交点をＣとする。また、Ｃを通過する水平軸をΨ、Ｃを通過する垂直軸をΩとすると、ＡとＢはΩ軸に関して対称の位置にあり、このとき中心をΩ軸に置くと、ＡとＣを通る円２０を引くことができる。このとき円２０は同時にＢを通ることになる。この円２０の中心をＯ、半径をｒとする。図６（Ｂ）から分かるように、円２０の半径ｒはリードピッチＰ、β並びにリード幅φから計算でき、
【００３４】
【数１】
2006294881.tif 000003
【００３５】
となる。
【００３６】
また、部品５２の傾きについて最大角度ωが指定されているものとする。一般にはω≦３０°であり、図６（Ａ）に示したように、点Ａを時計回りにω回転した座標をＡ0とし、点Ｂを反時計回りにω回転した座標をＢ0とする。円弧Ａ0−Ｃ−Ｂ0は部品の角度が±ωのときでも、連続する３本の仮想リードＬ０、Ｌ１、Ｌ２に設定されたβ帯を貫通することができる。
【００３７】
このようにして生成された円弧Ａ0−Ｃ−Ｂ0を探索円弧と呼び、この探索円弧を等分割してベクトル列２１を作る。ベクトル列２１の個々のベクトルの長さは、図６（Ａ）では、誇張して大きく描かれているが、φより十分小さくし、たとえば画素間距離にする。
【００３８】
ベクトル列は、以下のようにして生成される。
【００３９】
図６（Ｂ）において、円２０の中心Ｏと点Ａ間のベクトルＯＡは、ＯＡ＝（Ｐ＋φ／２，ｒ−β）である。従って、中心Ｏと点Ａを時計回りにω回転した座標Ａ0間のベクトルＯＡ0はベクトルＯＡを時計回りにω回転して得られる。すなわち、回転マトリクス、
【００４０】
【数２】
2006294881.tif 000004
【００４１】
をベクトルＯＡに掛けたものがベクトルＯＡ0である。
【００４２】
また、円弧を等角度で分割したときの分割点Ａ1、Ａ2、Ａ3、．．．．．間の分割ベクトルの距離をτとする。このτはｒに較べて、十分に小さいので分割ベクトル１個が円の中心に張る角度ξは、ξ＝τ／ｒとしてよい。最初の分割点をＡ1とすれば、ベクトルＯＡ1はベクトルＯＡ0を反時計回りにξ回転することにより得られる。すなわち回転マトリクス、
【００４３】
【数３】
2006294881.tif 000005
【００４４】
をベクトルＯＡ0に掛けたものがベクトルＯＡ１である。従って、探索円弧のベクトル配列の先頭には、ベクトルＡ0Ａ1を格納する。
【００４５】
次の分割点をＡ2とすれば、ベクトルＯＡ2はベクトルＯＡ0を反時計回りに２ξ回転しときに得られる。すなわち回転マトリクス、
【００４６】
【数４】
2006294881.tif 000006
【００４７】
をベクトルＯＡ0に掛けたものがベクトルＯＡ2である。従って、ベクトルＡ1Ａ2が次のベクトルとして格納される。同じことを点Ｃに到達するまで繰り返すと右半分のベクトル列が得られる。なお、格納するベクトル列は実数（浮動小数点）でもよいが、それよりもサブピクセル、すなわち画素間距離を１０、１６、３２など切りのいい整数で分割した長さを単位とする整数の座標系で表現しておくとメモリを節約でき、また扱いやすい。残りの左半分のベクトル列については、右半分のベクトル列を軸ＯＣで折り返すことにより得られる。ただし進行方向は反時計回りに合わす。
【００４８】
また、このようにして得られたベクトル列２１の始点であるＡ0をΨΩ座標系で保持しておく。すなわちベクトル２２（図６（Ａ））を記録しておく。それにより、画像座標系において任意の座標を指定し、その座標と探索円弧の頂点（ΨΩ座標系原点）とを一致させたいならば、その座標にベクトル２２を加えた座標からベクトル列を発生させればよい。
【００４９】
＜初期化：リード部分列の個数の決定＞
次に、リード部分列の本数Ｔを決める。リード部分列とはリード列の中で連続する実リード部分がつくるリード列である。Ｔはリードパターンにおいて、連続する「１」の数である。ただしＴは３以下とする。図５のリードパターンは、連続する「１」の数が５であり、Ｔ＝３となる。例えば、図７（Ａ）に示したようなリードパターンでは、実リードは、リードＬ１１の一本だけのリード列であり、Ｔ＝１である。また、図７（Ｂ）は、実リードＬ２１、Ｌ２２からなる２本だけのリード列であり、Ｔ＝２である。
【００５０】
＜その他の初期化＞
次に、画像から抽出される仮想のリード（そこに実体としてあるがリードパターンのどれであるか不明のリード）を記録するための配列（仮想リード配列）を確保しておく。図８は、この配列に格納する要素を示す。要素は構造体であり、仮想リード１個分に相当する。配列の大きさ（要素の数）Ｋは十分大きくとる。すなわち図４において、探索領域５３のＸ軸方向の長さＨをリードピッチＰで除した商を目安として、さらにそれを十分に大きくする。たとえば２倍した値２Ｈ／ＰをＫとする。
【００５１】
次に境界方向を決める。すなわち、認識すべきリード列の左右いずれかの端にはリード列の外に空白地帯があることになっている。その空白地帯がある方向を境界方向（左または右のいずれか１方）と呼ぶ。もし空白地帯が左右どちらにもある場合、適当に選べばよい。図５のリードパターンは左右に空白地帯を持っているので境界方向をたとえば右側とする。
【００５２】
次に探索線の初期化を行う。画像軸に平行で探索領域を横断する線分を探索線と呼ぶ。図４においてリード列は水平方向、すなわち吸着誤差がなければ本来Ｘ軸と平行であるべき配置である。従って探索線はそれと直角方向すなわちＹ軸に平行となる。そして、探索線のＸ軸に沿った移動間隔Δと探索円弧のＹ軸方向への移動間隔δを適当に決めておく。たとえばΔ＝Ｐ、δ＝βとする。
【００５３】
探索線の発生位置と順序は適当でよい。たとえば探索領域を左右に等分する探索線２４から始め、以降は振り子型の探索とする。すなわち探索線２４の次はその右にΔずれた位置の探索線２５を設定し、次は探索線２４から左にΔずれた位置に探索線２６を設定し、次は探索線２５から右にΔずれた位置に探索線２７を設定し、順次探索線を左右に広げることにする。最初の探索線２４を探索領域５３の中央にセットし、また探索円弧２１を探索領域５３の下端に設定して一連の初期化を終了する。このあと、図３の状態Ｓ１に移行する。
【００５４】
＜リード部分列の探索＞
状態Ｓ１では、探索線に沿って探索円弧を移動し、リード部分列を探索する。図４において、１本の探索線２５がある。これは探索線２４から始まるいずれかの探索線を代表しているものとする。探索は、探索線２５上の探索領域の下端に近い適当な座標Ｃ１から始める。すなわち座標Ｃ１に図６（Ａ）のΨΩ原点を一致させて探索円弧ベクトル列２１を発生させる。このときあるベクトルについて、その全体または一部が探索領域５３の外にあるときはそのベクトルは無視すればよい。
【００５５】
ベクトル列２１のベクトル１本ごとにその起点位置の明度、終点位置の明度を画像から抽出する。探索円弧とリードが接触していれば、あるベクトルに明度の変化が現れるのでそれを検出する。Ｃ１点通過ベクトル列でなにもなければ、次はδだけ探索円弧を上昇させ、Ｃ２で探索する。この上昇は探索領域の上端Ｃｋまで繰り返す。
【００５６】
図９を参照して、ある探索円弧３０上の明度の変化を追ってみる。ある明度のしきい値θが与えられているものとする。画像のある座標の明度について、θ以上である（＝１）か、θ未満である（＝０）かを判定することができる。探索円弧３０の始点Ｚ0から開始する。Ｚ0点は暗いから値０であり、Ｚ１点まで値０が続くがＺ２点で値１となる。従ってしきい値θの値をもつ座標はＺ１とＺ２の中間にあり、この点をＺ１とＺ２の補間で求めることができる。次にＺ３点で再び値０となる。同様にしきい値θの値をもつ座標をＺ２とＺ３の補間で求めることができる。このように値０から値１に変る点をＯＮ点、逆に値１から値０に変る点をＯＦＦ点と呼ぶことにし、補間座標をそれぞれＯＮ座標、ＯＦＦ座標と呼ぶことにする。
【００５７】
なお、探索円弧３０の始点（Ｚ0）が最初から値１であるときはそこから続くすべての値１を無視する。すなわちあれば最初の値０を見つけるまで進行する。その最初の値０からは通常の処理に入る。同様に探索円弧の終点が値１であるときはそこまで続いているすべての値１を無視する。すなわちあれば直前の値０もなかったことにする。
【００５８】
ＯＮ点とＯＦＦ点は必ず対で現れる。探索円弧３０の場合５個の対（ＯＮ＝５、ＯＦＦ＝５）がある。対はリードだけでなく、画像のいたるところ例えば、部品のパッケージ、ノズル、雑音にも発生する。従ってあるＯＮ-ＯＦＦ対がリードであるかどうかを判定する必要がある。その方法を以下に示す。
【００５９】
図１０は１つのリードの拡大図である。いま探索円弧のベクトルｖ０がＯＮ点ｑ０を形成している。ｑ０における明度勾配ベクトルμ０がある。ここで明度勾配ベクトルは暗いほうから明るいほうに向かうベクトルであり、その演算式は公知のものが各種ある。たとえばｓｏｂｅｌ法を採用する。ｖ０とμ０の開き角度をα０とする。同様にベクトルｖ１がＯＦＦ点ｑ１を形成している。ｑ１における明度勾配ベクトルμ１がある（明るいほうに向かうから逆向きである）。ベクトルｖ１とμ１の開き角度をα１とする。このＯＮ-ＯＦＦ対がリードであるためには以下の条件が同時に必要である。
【００６０】
条件（１）は、開き角度α０、α１が小さいこと、すなわち、（ｃｏｓα０）の２乗と（ｃｏｓα１）の２乗を求め、その小さい方の値e（０≦ｅ≦１）を評価し、ｅ≧０．７５のとき合格とする。ここでその定数０．７５＝３／４は、想定する限界開き角度を３０°と定め、その角度から決まる（ｃｏｓ３０°＝√３／２、その２乗＝３／４）。もちろんこの角度は任意に設定してよい。
【００６１】
条件（２）は、補正リード幅３７が定義リード幅の許容範囲にあることである。ここで補正リード幅とは距離ｑ０ｑ１に適当な式を乗じてリード直角方向に換算した長さである。たとえばベクトルｑ０ｑ１とμ０の開き角度ζ０を求め、ｃｏｓζ０を乗じる。上記の許容範囲は十分大きくとることが重要であり、その範囲は直接指示することも出来るし内部で自動的に生成してもよい。いずれにしても定義データの幅と現実の画像の幅は大きく異なることが多いので、十分に大きくする。経験的には定義幅φに対して、小さいほうは０．４φ、大きいほうは１．５φ程度が適当である。リードの必要条件（１）、（２）をともに満たすときｑ０ｑ１の中点Ｍを求める。この座標はのちにリードの幅方向の中点を示す固有の座標値として仮想のリードに格納される。
【００６２】
図９において、上記基準により探索円弧３０の上に現れるＯＮ-ＯＦＦ対を整理すると、４個のリードＬ３、Ｌ２、Ｌ１、Ｌ０が生き残る。探索すべきリード部分列はＴ＝３、すなわち連続する３個のリード集合を得る必要がある。そのために今度はリード間距離を調べて定義ピッチＰであるかどうかを判定する。
【００６３】
各リードの中点をもとにリード間距離を実測するとλ０、λ１およびλ２が得られる。各λについてピッチの許容誤差以内かどうかを調べる。すなわちＰに対して、Ｐ±εを許容範囲とする。ここでεを十分に大きくすることが重要である。それによりリード列に対して斜めに計測することによる距離の増加またはリード列の乱れによる距離の変化を吸収することができる。たとえばε＝０．５Ｐとする。λが許容範囲に入ればその両端のリードが連続しているとみなすことにする。図９の例ではλ０、λ１およびλ２のいずれも合格とする。すなわち４個のリードＬ３、Ｌ２、Ｌ１、Ｌ０が連続しているという結果が得られる。
【００６４】
このようにひとつの探索円弧でＴ個を超える連続リード列を得ることがある。さらに一般的にはＴ個以上の連続リード列を、１箇所以上得ることがある。その場合ただひとつのリード列を選ぶことにする。その方法を以下に説明する。
【００６５】
連続するＴ個のリード列の評価値Ｅを導入する。Ｅは０〜１の数値であり高いほどよい。探索円弧とことごとくが直角に交差するようなリード列に高い評価を与える。前述したように各リードには角度の評価値e（０〜１）があり、Ｔ個それぞれのｅ値があるから、それらの最小値をＥとする。すなわち、
Ｅ＝ＭＩＮ｛ｅ０，ｅ１，．．．｝
である。そして、候補として挙がっているところのＴ連続リード列それぞれのＥ値を計算する。このとき最大のＥ値を提供するリード列を選ぶことにする。たとえば、図９では２組の候補、すなわち組（Ｌ３、Ｌ２、Ｌ１）と組（Ｌ２、Ｌ１、Ｌ０）がある。仮に組（Ｌ３、Ｌ２、Ｌ１）のＥ値＝０．９１、組（Ｌ２、Ｌ１、Ｌ０）のＥ値＝０．７８、とすれば、Ｅ値が高いほうの組（Ｌ３、Ｌ２、Ｌ１）を選ぶ。
【００６６】
これまで図４において、探索線２４から始まる各探索線に沿って探索円弧を移動させ、探索円弧にそって探索を行い、所定個数（Ｔ個）の連続するリードを検出してきた。ここでその結果を分類する。
【００６７】
（１）リード１本さえ見つからなかった、あるいは見つかってもＴ個に満たなかった場合、状態Ｓ１を繰り返す。すなわちあれば次の探索線に移動して探索を繰り返す。もしすべての探索線で見つからなかった場合はリードパターン位置決めを失敗として終了する。
【００６８】
（２）ちょうどＴ個のリード列がただひとつ見つかった場合、それを組として無条件で採用する。
【００６９】
（３）上記以外の場合、複数の組からただひとつの組を選ぶ。
【００７０】
この時点で、選ばれた１組、すなわち、連続するＴ個のリードがあるものとする。次にこのＴ個を仮想リード配列に格納する。図８は仮想リード１個分に割り当てる配列要素の構造体である。同図で、「ＣＨＥＣＫ」は１ビットであり、ＣＨＥＣＫ＝ＯＮはこの仮想リードの調べが済んでいる状態を示し、ＣＨＥＣＫ＝ＯＦＦは未調査であることを示す。「ＰＲＥＳＥＮＣＥ」は１ビットであり、ＣＨＥＣＫ＝ＯＮのときだけ意味がある。ＰＲＥＳＥＮＣＥ＝１はリードがあることを示し、ＰＲＥＳＥＮＣＥ＝０はリードがないことを示す。「ｎ」はこのリードについて、探索円弧との交差がリード条件を満たしたときの回数である。「ＭＩＤ  ＰＯＩＮＴ」はリード中点の座標（図１０のＭ）ｎ個の集合である。「ＤＩＲＥＣＴＩＯＮ」はリード直角方向を示すベクトル（図１０のＤ）ｎ個の集合である。
【００７１】
図１０においてＤは勾配ベクトルμ０とμ１から生成され、図において右に向かう。すなわち、
Ｄ＝（μ１−μ０）／２
となる。
【００７２】
図１１（Ａ）は、最初に見つかったＴ＝３個のリードＬ１、Ｌ２、Ｌ３が仮想リード配列に格納されたときの配置である。仮想リード配列の大きさ（要素の数）は、十分大きなＫ個であり、仮想リードの配列は、例えば作業用メモリ１０７に格納される。検出されたＴ個のリードの画像座標（図９の白の丸印）が判っているので、探索領域５３との位置関係に見合った配列上の位置を格納位置とするのが合理的である。まず選ばれた組のＴ個のリードのうち、中央リードを代表リードとする。図９において、組は（Ｌ３、Ｌ２、Ｌ１）であったから、代表リードはその中央のリードＬ２（◎印）となる。
【００７３】
次に代表リードの中点座標から探索領域での位置比率ａ：ｂを求める。すなわち図４において、代表リードＬ２の中点Ｍを境界として、探索領域５３までの距離ａとｂを求める。このとき境界方向にｂを測るようにする。
【００７４】
図１１（Ａ）に示したように、仮想リード配列に論理座標系を張り、代表リードＬ２を論理座標［０］において配列先頭をＨinf（下限、負）、配列最後をＨsup（上限、正）とする。Ｈsupは位置距離Ｋ−１をｂ：ａに比例配分して得られ、Ｈsup＝（Ｋ−１）｛ｂ／（ａ＋ｂ）｝となり、Ｈinfは、Ｈinf＝Ｈsup−Ｋ＋１となる。従って、論理座標［０］の配列上の物理位置は配列先頭を指標０とすれば指標＝−Ｈinfの位置となる。以降この対応関係は変らず、論理座標［０］の物理位置は不変である。
【００７５】
このように論理座標が決定されたら、代表リードＬ２を論理座標［０］に格納する。組の残りのリードＬ１、Ｌ３も対応する論理座標［−１］、［１］に格納する。そして、格納されたＴ個の仮想リードには次の値をセットする。
【００７６】
ＣＨＥＣＫ＝ＯＮ
ＰＲＥＳＥＮＣＥ＝１
ｎ＝１
ＭＩＤ  ＰＯＩＮＴ＝｛Ｍ０｝
ＤＩＲＥＣＴＩＯＮ＝｛Ｄ０｝
一方、格納されたＴ個を除く他のすべての仮想リードのＣＨＥＣＫをＯＦＦにセットする。このときの配置が図１１（Ａ）である。
【００７７】
このようにして、Ｔ個のリード部分列が検出され、格納されたので、次の状態Ｓ２に移行する。
【００７８】
＜リード列の境界の探索＞
この状態Ｓ２では、探索円弧をリードの並びに沿って境界方向に移動し、リード列の境界を探索する。このために、図１１（Ａ）に示した仮想リード論理座標系において、論理座標０から始めて正の方向すなわち境界方向に進み、未調査すなわちＣＨＥＣＫ＝ＯＦＦを見つけたらその仮想リードを画像から抽出する。
【００７９】
たとえば図１１（Ａ）において上記の規則に従い探索を行うと、論理座標［２］の仮想リードＬ４が最初のＣＨＥＣＫ＝ＯＦＦである。論理座標がわかっている未知の仮想リードの中点については、以下のようにして、画像における予測座標を求めることができる。
【００８０】
例えば、図１２に示したように、実在リード３４の論理座標を［ｉ］とすると、中点Ｍとその直角方向に延びるベクトルＤがあるので、未知リード３５の論理座標を［ｊ］とすれば、その予測座標Ｍｊはベクトルの式Ｍｊ＝Ｍ＋（ｊ−ｉ）Ｐで得ることができる。この式はｉとｊの大小関係にかかわらず成り立つ。一般にこの式で計算される予測座標の精度は極めて悪いが、本発明の方式においては、探索円弧がリードを貫通しさえすればよいので高い精度は不要である。そのため上記の式で十分に有効である。
【００８１】
図１１（Ａ）に戻って、論理座標［２］のリードＬ４の予測座標は、上記の式より論理座標［１］から予測され、その座標を図９のｆとする。図９において、座標ｆを通過するように探索円弧３１を適当に配置してリードを抽出する。図９では煩雑を避けるため探索円弧の全体を描いていないが、実際は探索円弧全域で抽出しているものとする。
【００８２】
探索円弧３１の抽出が終了すると、リードＬ４の中点座標と方向ベクトルが得られるので、それを図１１（Ｂ）に示したように、論理座標［２］の仮想リードに格納する（ＣＨＥＣＫ＝ＯＮ、ＰＲＥＳＥＮＣＥ＝１をセットする）。同時にこのとき、近傍のリードすなわちリードＬ３、リードＬ２、．．からも新たな中点座標と方向ベクトルが得られるかもしれない。得られたデータはそれぞれの仮想リードに追加して格納する（点数ｎが増える）。
【００８３】
また、ｆ点の位置によっては、探索円弧が図９の３２の位置に生成されるかもしれない。リードＬ４には、暗いスリット部があり、探索円弧３２がそこを貫通するからリードＬ４の存在を確認できないので、これを防ぐために、予測座標ｆで抽出できないときは、ｆの近くに適当な数だけ別の探索円弧を発生し（たとえば３１）、抽出を確実にするとよい。
【００８４】
このように、１つのリードは多数の探索円弧で検出され、そのごとに、そのリードに対して中点座標が発生するので、例えば、新たに発生した中点座標Ｍ１がこのリードのものであるかどうかを判定することが必要である。例えば、図１０に示した仮想リードＬｎにはすでに既存の丸印で示された中点の集合がある。ある近傍半径ρを与えれば、既存のどれかの座標（Ｍ）のρ（たとえばρ＝φ／２）近傍にＭ１が入っていることで、中点座標Ｍ１がこの仮想リードＬｎのものであると判定できる。
【００８５】
画像から抽出した結果、それが実リードのときは状態Ｓ２の先頭から同じことを繰り返す。一方それが空リード（リードなし）の場合、仮想リードには空リードとして格納して状態Ｓ３に行く。例えば、図１１（Ａ）において、続く論理座標［３］に対して画像からの抽出を試みるがリードは検出されない。このリードは、図９で点線で示したリードＬ５に相当する。探索線の集合３３で示すように、リードがないと確認するために探索線を何本も発生させることが重要である。
【００８６】
このように、論理座標［３］は、空リードであるので、図１１（Ｂ）に示したように、ＣＨＥＣＫ＝ＯＮ、ＰＲＥＳＥＮＣＥ＝０をセットして、状態Ｓ３に行く。
【００８７】
＜検出パターンと定義パターンの照合＞
状態Ｓ３では、探索円弧をリードの並びに沿って境界方向の逆方向に移動してリードを抽出し、検出したリードの配列パターンと定義パターンとの照合を行う。
【００８８】
仮想リード論理座標系において、論理座標の上限（Ｈｓｕｐ）から始めて負の方向すなわち境界方向の逆方向に進む。このとき、最初の空リードすなわちＣＨＥＣＫ＝ＯＮかつＰＲＥＳＥＮＣＥ＝０が存在するので、それを見つけたら停止し、その空リードを位置合わせの目印にして、仮想リードの配列パターンと定義パターンを照合する。もし定義パターン全体が完全に一致していれば画像からリード先端座標を抽出して状態Ｓ４に行く。一方、配列パターンが定義パターンの途中まで完全に一致しているときは、論理座標負方向への探索を続け、見つかるごとに、照合を行う。一致しないときは、状態Ｓ２に戻り、完全一致を確認したら画像からリード先端座標を抽出して状態Ｓ４に行く。
【００８９】
この状態Ｓ３の過程を、図１１を参照して説明すると、たとえば図１１（Ｂ）の配置で状態Ｓ３にきた場合、規則に従い論理座標の上限から始めて負の方向に進むと、論理座標［３］が最初の空リードであるので、論理座標［３］のひとつ負（＝２）から続く現在の配列パターンは、負方向に「１１１１」である（４個）。一方、図５によれば定義パターンは端から負方向に「１０１１１１１」（７個）であり、両パターンを較べると、２番目が異なり、定義パターンと一致しないので、状態Ｓ２に戻ることになる。
【００９０】
一方、たとえば図１１（Ｃ）の配置で状態Ｓ３にきた場合、規則に従い論理座標の上限から始めて負の方向に進むと、論理座標［５］が最初の空リードであり、論理座標［５］のひとつ負（＝４）から続く現在の配列パターンは負方向に「１０１１１１」である（６個）。これを、定義パターン「１０１１１１１」と較べると、定義パターンの途中まで完全に一致している。従って、論理座標負方向への探索を続ける。この探索で、実リード（図９のリードＬ０）が抽出されるので、これを論理座標［−２］に記録する（ＣＨＥＣＫ＝ＯＮ、ＰＲＥＳＥＮＣＥ＝１をセットする）。この状態が、図１１（Ｄ）に格納後の仮想リードの配列パターンとして示されており、現在の配列パターンは負方向に「１０１１１１１」となり、これは定義パターンと完全に一致しているので、このあとは画像からリード先端座標を抽出して状態Ｓ４に行く。
【００９１】
＜リード先端座標の検出＞
両パターンが一致したときのリード先端座標の抽出は、以下のように行われる。
【００９２】
図１０には、抽出されたリード列の１つのリードＬｎ（ｎ＝０、１、.....６）が図示されており、求めるべきリード先端座標がＦで示されている。リードは、探索中に複数の探索円弧により検出されるので、検出されるごとに（ｎ≧１）、リードには、リード幅φの中点（丸印で図示）を示す中点集合と直角方向ベクトル集合がある。
【００９３】
これらのデータからリード中心線４０を求める。この場合、ｎの値によって以下のように求める。
【００９４】
（１）ｎ≦５のとき。中点ｎ個の重心座標Ｇ（×印）と、直角方向ベクトルｎ個の平均方向Ｄaveを求め、Ｇを通りＤaveと直交する直線をリード中心線４０とする。
【００９５】
（２）ｎ＞５のとき。中点ｎ個の最小２乗近似直線をリード中心線４０とする。
【００９６】
次に中点集合の中で、リード先端に最も近い点４１を見つける。この点は、たとえば図示のように下向きリードであればＹ座標が最も小さい点として選ぶことができる。次に点４１を通り中心線４０に直交する直線４２を生成し、この直線４２からΓだけリード先端側にオフセットしてできる長さがΛの線分４３上での画像の最大明度を調べる。この場合、線分４３は確実にリードＬｎの外である必要があるので、Γは十分大きくし、また線分４３の長さΛはリードを確実にまたぐ長さが必要であるので、たとえばΓ＝３φ、Λ＝２φとする。
【００９７】
線分４３はリードの外を走るので、その最大明度は探索円弧で使った明度のしきい値θより低い。そこで、線分４３を、リードに向けてγ（たとえばγ＝０．１φ）だけ移動し、線分４４とし、この移動を、直線４２に達するまで繰り返す。この移動で得られる各線分で、最大明度がθ以上となるかどうかを調べ、θ以上となる線分４６を求め、その線分のひとつ前の線分４５があるので、線分４５と４６の中間点をリード先端座標Ｆとする。なお、座標Ｆは、たとえば、線分４３と線分４２の間を２分探索して求めるようにしてもよい。
【００９８】
以上のようにして、すべてのリードＬ０〜Ｌ６の先端座標が取得されたら、入力リードパターンの位置決めが完了し、状態Ｓ４となり、取得したデータが、部品位置きめ部１３２に入力される。リードパターン位置決め部１３３は、他のリード列に対しても同様な処理によりその定義パターンを有するリード列を検出し、検出されたリード列の各リードの先端座標を抽出する。部品位置決め部１３２は、このリード列先端座標から、ＸＹ座標系（画像座標系）におけるＵＶ座標系（部品データを記述する座標系）の原点位置（部品中心に相当）と傾きを算出し、部品認識を完了する。
【００９９】
以上のリード列の位置決めは、リード列がただ１本だけのリードからなる場合（図７（Ａ））、あるいは２本だけのリードからなる場合（図７（Ｂ））でも、可能である。この場合には、それぞれ、Ｔ＝１（図７（Ａ））、Ｔ＝２（図７（Ｂ））とすればよく、処理は既に記述したものと同じである。なお、図７（Ａ）の１本リードの場合でもピッチＰの概念があり、このときのＰとは、実リードの両端にリードがないことを確認するための距離の意味をもつ。また、１本リードでも２本リードでも安定長βの意味は変らず、従って、その実リードを仮想的に３本並べれば図６と同じになり、この図から探索円弧を生成すればよい。
【０１００】
＜効果＞
上述した実施例では、以下のような効果が得られる。
【０１０１】
（１）リード列は直線であり、探索曲線は、リード列に対して凸形状に湾曲する円弧状の探索円弧であるので、リード列と探索円弧が接触するときは直線と円の接触に見られる対称性が生じ、この対称性はリード列の角度に依存しないので、部品角度に対する安定性が極めて高くなる。
【０１０２】
（２）探索円弧の角度範囲は、リード列の最大角度ωを含んでいるので、リード列の傾きが最大のときでも必ずリード列と接触することから、大きく傾いた部品でも、部品認識が可能となる。
【０１０３】
（３）定義リード幅φの値は適当でよい。言い換えれば部品データシートの公称値のままでよい。なぜならば、未知リードの位置予測においては既存リードの中点座標を使うが、リード中点を生成するときにはリードを横断する線分の中点として演算するので、そのときの幅には影響されず常に正しく求まるからである。
【０１０４】
（４）リードの映りの悪さに強い。なぜならば設計によって探索円弧がリードのβ帯を貫通することが保証されているからである。すなわち探索円弧の上昇または下降を行えば必ずβ帯を貫通するときがあるので少なくとも１個の中点および直角方向ベクトルの組を獲得できる。
【０１０５】
（５）リードの位置誤差に強い。なぜならば既存リードがある状態で未知のリードを抽出するとき、探索円弧とリードの交差角度に十分な余裕があるからである。そのため未知リードのおよその中点がわかればよく、乱れた配置のリードであっても影響が少ない。
【０１０６】
（６）部品認識の消費時間のばらつきが小さい。これは部品を構成する個々のリード列の認識時間のばらつきが小さいことと同値である。すなわち、あるリード列の位置決めを考察すると、最初に行う連続Ｔ個のリード列の探索時間のばらつきが小さい。さらに次に行う残りリードの抽出時間が一定である。なぜならばまず最初のＴ個探索時間については、探索線の位置と順序に関して、探索領域中央部を優先して配置すれば、同じく中央部に存在する確率の高いリード列に対して、探索円弧が早く到達するからである。言い換えれば探索線を多く必要としない。それにもかかわらず多少のばらつきが存在する理由は、ある探索線において見つかるとしたとき、リード列の位置が開始位置に近いか遠いかで時間がばらつくからである。また、残りリードの抽出時間が一定である理由は、リード１個の抽出に要する時間がほぼ一定であるからである。すなわち未知リードの中点予測時間は一定である。その位置に対して一定の探索円弧をかければ平均的に一定の時間でリードが抽出される。一方残りリードの数は常に同数である。ゆえにその積をみれば、残りリードの抽出時間は一定となる。
【０１０７】
（７）リード列の実リード数に関して極端な場合でも、すなわち１本だけのときと２本だけのときのいずれも認識が可能である。なぜならば探索円弧の形状はピッチＰと安定長βのみから決まり、実リード数に無関係であるからである。すなわち探索円弧がＴ（＝１または２）個のリード列を貫通するときがあり、そのとき同時に実リードの抽出も終了している。
【０１０８】
＜他の実施例＞
上述した実施例では、リードを抽出するのに円弧を使ったが、これを他の形状に変えることもできる。たとえば円弧上に並ぶ粗い点列でもよいし、もとの形状そのものも楕円その他の滑らかな凸形状の曲線の一部であればなんでもよく、同様な効果が得られる。
【０１０９】
また、上記実施例では、探索円弧の形状を決めるとき、連続する仮想リード３本のβ帯を上下一杯に貫通する条件から決めたが、これを連続する２個以上に広げ、それらのβ帯を上下一杯に貫通する条件から決めてもよい。その場合でも同様な効果が得られる。
【０１１０】
また、上記実施例では、最初に探す連続実リード数Ｔを３で抑えているが、これを実際の連続実リード数以下の任意の数にしてもよい。その場合も効果はほとんど変らない。
【０１１１】
また、上記実施例では、探索線を画像軸のいずれかに平行と定めたが、これをリード列に接近する方向であるなら、任意の方向にしてよい。その場合も効果はほとんど変らない。
【０１１２】
また、上記実施例では、先にパターンの論理的な位置決めを完了したのち各リードの先端座標を得ているが、これを同時、すなわち探索円弧が１回以上の適当な回数貫通した時点でそのリードの先端座標を得てもよい。その場合も同様な効果が得られる。
【０１１３】
また、上記実施例では、各リードに中点集合を持たせたが、これをもたない方法もある。すなわち探索円弧が１回貫通すると中点Ｍと直角方向ベクトルが生成されるので、その情報からたとえば上記の方法で、そのリード先端座標を得ることができる。この場合未知リードの位置予測は既知リードの先端座標から行うことになる。その場合も効果はほとんど変らない。
【０１１４】
また、上記実施例では、抽出した仮想リード配列のパターンと与えられたリードパターンの完全なる一致をもって認識の条件としたが、これを緩和することもできる。すなわち不一致を許容する数を設け、その数以内であれば認識を完了するようにしてもよい。この許容数は、たとえばリード数に応じて決めてもよいし、欠けリードの存在によるパターンそのものの特性から決めてもよい。その場合も同様な効果が得られる。
【図面の簡単な説明】
【０１１５】
【図１】本発明の部品認識装置の構成を示した構成図である。
【図２】部品認識装置の主要部構成を示したブロック図である。
【図３】リード列を認識する流れを示した流れ図である。
【図４】探索円弧によりリードを検出する状態を示した説明図である。
【図５】部品データで定義されたリード配列のパターンを示した説明図である。
【図６】探索円弧の生成を説明する説明図である。
【図７】他のリード配列を示した説明図である。
【図８】検出したリードの属性を示す説明図である。
【図９】探索円弧によるリード検出を詳細に説明した説明図である。
【図１０】リード先端座標を求める流れを説明した説明図である。
【図１１】検出したリードの配列パターンと定義パターンとの照合を説明する説明図である。
【図１２】リードの中点座標を予測する状態を示した説明図である。
【図１３】従来の認識方法を説明する説明図である。
【符号の説明】
【０１１６】
２１、３０、３１、３２、３３  探索円弧
５１  入力画像
５２  リード部品
５３  探索領域
１０２  部品
１０４  撮像装置
１０６  画像メモリ
１０８  部品データ格納メモリ
１１２  画像処理装置
１１３  メイン制御装置
１３０  制御部
１３１  画像入力部
１３２  部品位置決め部
１３３  リードパターン位置決め部
【図１】
2006294881.tif 000007
【図２】
2006294881.tif 000008
【図３】
2006294881.tif 000009
【図４】
2006294881.tif 000010
【図５】
2006294881.tif 000011
【図６】
2006294881.tif 000012
【図７】
2006294881.tif 000013
【図８】
2006294881.tif 000014
【図９】
2006294881.tif 000015
【図１０】
2006294881.tif 000016
【図１１】
2006294881.tif 000017
【図１２】
2006294881.tif 000018
【図１３】
2006294881.tif 000019