(57)【要約】【課題】部品コーナーにセンタリングに不要な端子を有する部品を精度よく認識して部品認識精度を向上させることが可能な部品認識方法及び装置を提供する。【解決手段】撮像された吸着部品の画像が処理され、その画像処理によりコーナー座標Ｃ１〜Ｃ４が取得される（ステップＳ５）。この取得したコーナー座標に基づきコーナー端子Ｌ１〜Ｌ４が存在すると判定されたときには、コーナー端子が削除され（ステップＳ６）、コーナー端子削除後の端子に基づいて部品中心と傾きが演算される（ステップＳ９）。このような構成では、センタリングに関係のない部品認識に不要なコーナー端子を削除して部品認識が行われるので、部品認識精度を高めることができ、部品搭載精度を向上させることができる。【選択図】  図３
2004219283.tif 000002
【特許請求の範囲】
【請求項１】
撮像された部品の画像を処理し、その画像処理により検出される部品の端子に基づいて部品の姿勢を認識する部品認識方法において、
撮像された部品の画像を処理してコーナー座標を取得し、
前記取得したコーナー座標に基づきコーナー端子が存在するかどうかを判定し、
コーナー端子が存在すると判定された場合にコーナー端子を削除し、
コーナー端子を削除した後の端子に基づいて部品の姿勢を認識することを特徴とする部品認識方法。
【請求項２】
対角線上に沿ったスキャンによりコーナー端子を検出し、検出結果に基づき指定部品に対する認識かどうかの検査を行うことを特徴とする請求項１に記載の部品認識方法。
【請求項３】
撮像された部品の画像を処理し、その画像処理により検出される部品の端子に基づいて部品の姿勢を認識する部品認識装置において、
撮像された部品の画像を処理する画像処理装置と、
前記画像処理から求められるコーナー座標に基づきコーナー端子が存在すると判定されたときにコーナー端子を削除する手段と、
コーナー端子を削除した後の端子に基づいて部品中心とその傾きを演算する手段と、
を有することを特徴とする部品認識装置。
【請求項４】
コーナー座標から求められる対角線上に沿って画像をスキャンする手段を設け、該スキャンによりコーナー端子を検出し、検出結果に基づき指定部品に対する認識かどうかの検査を行うことを特徴とする請求項３に記載の部品認識装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、部品認識方法及び装置、更に詳細には、撮像された部品の画像を処理し、その画像処理により検出される部品の端子に基づいて部品中心、部品傾きなど部品の姿勢を認識する部品認識方法及び装置に関する。
【０００２】
【従来の技術】
従来、部品実装機においてプリント基板に電子部品（以下単に部品という）を精度良く搭載するために、吸着ノズルにより吸着された部品をプリント基板に搭載する前にＣＣＤカメラなどの撮像装置により部品を撮像して認識し、吸着時の吸着姿勢、すなわち吸着ずれ（吸着位置と部品中心位置のずれ、吸着角度のずれ）を計算しそれを補正することにより正確に部品をプリント基板に搭載している。
【０００３】
部品を撮像してその吸着姿勢を認識する場合、部品には各辺にリード端子が存在するので、特許文献１のように、リード端子の存在する辺毎に端子の検出を行い、その検出結果に基づいて部品認識を行い、吸着ずれを演算している。また、検出結果から端子以外のモノを削除する処理や、不良端子の検出などの検査も各辺毎に行って検出精度を高めている。
【０００４】
【特許文献１】
特開平６―２２３１８５号公報（請求項１）
【０００５】
【発明が解決しようとする課題】
しかしながら、従来のリード認識方法での検出リード検査は、辺単位でのみ行うために、検査できる項目が限られていた。特に検出結果の中からリード端子以外のモノを削除する処理としては、同一直線上にない端子を削除する処理と、両端のピッチが異常な場合に端のリードを削除する処理だけだった。そのためリード以外のものが同一直線上にリードピッチと同間隔で存在した場合、１辺の検出結果だけではリード端子かそうでないのかを判断することは不可能であった。従って、部品のコーナー部に様々な形状のセンタリングに関係のない端子が存在しているＱＦＮ等の部品は、従来の方法では認識が安定しないという問題点があった。
【０００６】
従って、本発明は、部品コーナーにセンタリングに関係のない端子を有する部品に対する認識精度を向上させることが可能な部品認識方法及び装置を提供することを課題とする。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明では、
撮像された部品の画像を処理し、その画像処理により検出される部品の端子に基づいて部品の姿勢を認識する部品認識方法において、
撮像された部品の画像を処理してコーナー座標を取得し、
前記取得したコーナー座標に基づきコーナー端子が存在するかどうかを判定し、
コーナー端子が存在すると判定された場合にコーナー端子を削除し、
コーナー端子を削除した後の端子に基づいて部品の姿勢を認識する構成を採用している。
【０００８】
また、本発明では、
撮像された部品の画像を処理し、その画像処理により検出される部品の端子に基づいて部品の姿勢を認識する部品認識装置において、
撮像された部品の画像を処理する画像処理装置と、
前記画像処理から求められるコーナー座標に基づきコーナー端子が存在すると判定されたときにコーナー端子を削除する手段と、
コーナー端子を削除した後の端子に基づいて部品中心とその傾きを演算する手段とを有する構成も採用している。
【０００９】
このような構成では、センタリングに関係のない部品認識に不要なコーナー端子を削除して部品認識が行われるので、部品認識精度を高めることができ、部品搭載精度を向上させることができる。
【００１０】
コーナー端子の削除は、コーナー座標からの端子距離に基づきコーナー端子が存在するかどうかを判定して行うことができる。部品種類によりコーナー端子が隣接する端子と近接している場合には、コーナー端子を認識できない場合があるので、コーナー座標から求められる対角線上に沿って画像をスキャンし、このスキャンによりコーナー端子を検出する。このように検出されたコーナー端子は塗りつぶすことにより画像から削除される。
【００１１】
このように端子の塗りつぶし処理を行うと、検出したくない端子を画像上から削除できるため、不要な端子自体を検出しないで済むだけでなく、周囲の端子の検出に影響を与えることもなくなり、必要端子だけを正確に検出することができ、正確な部品認識を行うことが可能となる。
【００１２】
また、対角線スキャンによりコーナー端子を確実に検出することができるので、異部品検査、すなわち、指定された部品に対して部品認識が行われたかどうかの検査を行うことができる。
【００１３】
【発明の実施の形態】
以下、図面に示す実施の形態に基づき本発明を詳細に説明する。
【００１４】
＜部品実装装置と画像処理装置の構成＞
図１は、本発明が適用される部品実装装置（部品実装機）の制御構成を示すブロック図であり、部品実装装置は、部品供給装置（不図示）から供給される部品（電子部品）２０を吸着する吸着ノズル３ａを備えたヘッド部３を有している。このヘッド部３はＣＰＵで構成されるコントローラ１０により駆動されるＸ軸モータ１１、Ｙ軸モータ１２により駆動されてＸＹ軸方向に移動可能に構成される。またヘッド部３は、部品吸着並びに部品搭載時にＺ軸モータ１３によってＺ軸方向に駆動されて昇降し、また吸着ノズル３ａはθ軸モータ１４によってノズル軸を中心に回転できるように構成される。
【００１５】
また、部品実装装置には、部品２０を撮像するＣＣＤカメラのようなレンズ５ａを備えた撮像装置５が配置され、ヘッド部３は、部品吸着後撮像装置５に移動して、照明装置１５により照明された部品２０が撮像装置５により撮像される。部品の撮影画像は、ＣＰＵ７ａ、画像メモリ７ｂ、Ａ／Ｄ変換器７ｃ、部品データメモリ７ｄを備えた画像処理装置７に入力される。画像処理装置７は、設定された領域の画像を取り込んで公知のアルゴリズムにより処理して部品の吸着姿勢を認識し、部品中心と吸着中心の位置ずれ、また吸着角度ずれを演算する。コントローラ１０は、Ｘ軸、Ｙ軸、θ軸モータ１１、１２、１４を駆動するときこの位置ずれを補正し、搬送されてくる基板（不図示）に部品２０を搭載する。
【００１６】
また、部品実装装置には、部品データを入力するためのキーボード２１、マウス２２などの入力装置が設けられ、生成された部品データが、ハードディスク、フラッシュメモリなどで構成される記憶装置２３や画像認識装置７内の部品データメモリ７ｄに格納できるようになっている。部品データは、このように入力装置を介さず、部品実装装置に接続されたホストコンピュータ（不図示）から供給されるものを記憶装置２３や部品データメモリ７ｄに格納しておくようにしてもよい。また、モニタ（表示器）２４が設けられ、この画面には、部品データ、演算データや撮像装置５で撮像した部品画像が表示できるようになっている。
【００１７】
図２には、吸着ノズル３ａに吸着された部品２０ａが、照明装置１５により照明され、撮像装置５により撮像される状態が図示されている。ＣＰＵ７ａからの制御線７ｄにより撮像装置５は、設定された領域の画像を撮像する。撮像された画像は、信号線７ｅを介して画像処理装置７に入力され、Ａ／Ｄ変換器７ｃを介してデジタル信号に変換された後、画像メモリ７ｂに格納され、画像処理されて部品の姿勢が認識される。また、処理される画像はモニタ２４に表示させることができる。
【００１８】
＜部品認識の流れ＞
図３には、例えば部品をＱＦＮ部品としたときの部品姿勢を認識して吸着ずれを演算する流れが図示されている。
【００１９】
まず、ＱＦＮ部品には、図４に示すように、種々のタイプがあるので、コーナー端子の形状によるタイプ分けを行い、コーナー端子の形状によりタイプ０〜タイプ３などのように分類する。今後、それ以外のコーナー端子形状の部品がでてきた場合は、タイプ種別を増設することで対応する。また、以下の個々の説明では、その説明に適した部品種類（タイプ、端子数、外形）について説明が行われる。
【００２０】
部品は、部品の縦／横寸法とコーナー端子の存在する位置とそこに存在するコーナー端子形状、そして４辺それぞれの端子情報を記述したデータで表現される。端子情報とは、端子本数・ピッチ・端子長・端子幅・欠け情報・端子曲がり判定率などである。以上の表現方法を用いて、コーナー端子の存在する位置とその形状や、各辺の端子情報が、キーボード２１など入力装置を用いて入力されるか、あるいはホストコンピュータから取得されて、部品データとしてあらかじめ画像処理装置７内の部品データメモリ７ｄに送信され、部品識別番号（ＩＤ）毎に管理される。
【００２１】
認識実行時には、吸着された部品が撮像装置５で撮像されて、その画像が画像メモリ７ｂに格納されるとともに、その部品のＩＤ番号が指定され、部品データメモリ７ｄからその部品に係わる部品データが読み出され、図３に図示した認識処理が開始される。
【００２２】
まず、ステップＳ１で、画像の外側から内側に向かってスキャンを行い、部品の外接点を検出し、この結果から部品の大まかな位置を示す外接ウィンドウＷを設定する。続いて、辺毎にリード列ウィンドウＷ１〜Ｗ４をかけ（ステップＳ２）、リードの存在する領域に検査領域を設定する。そして、４辺それぞれについて、リード列ウィンドウ内にＤＯＧフィルタ（Ｍａｒｒ＆ＰｏｓｉｏのＤｉｆｆｅｒｅｎｃｅ−Ｏｆ−Ｇａｕｓｓｉａｎフィルタ）をかけてリード端子のエッジを検出し、それを用いてリード先端（図で「＋」印）の座標を検出する（ステップＳ３、Ｓ４）。このとき、検出本数が指定本数よりも少なければ、その時点で本数過少エラーとして認識処理を終了する。
【００２３】
続いて、検出したリード先端座標から、リード先端を結んだリード列直線を求める。図５（Ａ）に図示したように、検出した全てのリードを用いて直線を求めると、コーナー端子や他辺のリードを検出した場合にズレた直線Ｈ’になってしまう。そこで正確なリード列直線を得るために、検出したリード列座標の中から同一直線上にない点を削除する。
【００２４】
その方法が、図６に図示されており、まず、図６（Ａ）に示したように、検出リード列を左右２つのグループＧ１、Ｇ２に分け、各グループで、リード長手方向座標（ｙとする）のヒストグラムを作成する。そして、各グループで、求めたヒストグラムから中間値を求め、ｙ座標に中間値を持つ検出端子を抜き出す。例えば、グループＧ１では中間値をｙ４、グループＧ２では中間値をｙ２として、それぞれの中間値をとるすべての点を求める。この求めた点が図６（Ｂ）で「＋」で示されており、続いて図６（Ｃ）に示したように、この抜き出した端子の平均値を求め、その平均値を有する２点Ｒ１、Ｒ２を定めて、図６（Ｄ）に示したように、２点Ｒ１、Ｒ２を通る直線を基準直線Ｒとする。次に、図６（Ｅ）に示したように、基準直線Ｒから一定以上の距離が離れている検出端子Ｒ３は削除する。
【００２５】
このように、同一直線上にない点を削除した後、図５（Ｂ）に示したように、残りの検出端子の座標Ｒｎに関して最小二乗直線を求め、この直線をリード列直線Ｈとする。
【００２６】
続いて、このリード列直線を各辺で求め、各リード列直線の交点を部品コーナー座標Ｃ１〜Ｃ４として取得する。これが、図３のステップＳ５に対応する。
【００２７】
部品角に様々な形状の端子が存在し、このようなコーナー端子Ｌ１〜Ｌ４はセンタリング（位置決め）には不要なため、部品角にコーナー端子が検出された場合には、以下で詳細に説明するように、コーナー座標Ｃ１〜Ｃ４を基準にコーナー端子の削除処理を行う（ステップＳ６）。
【００２８】
このコーナー端子の削除方法は、図４に示した部品のタイプごとあるいは端子形状ごとに異なるので、後述するように、タイプごとに異なった削除処理となる。例えば、図７（Ａ）に示したようなタイプ３に属する部品で、コーナー端子Ｌ１０と隣接するリード端子Ｌ１１の先端部分が近すぎる場合、ＤＯＧフィルタをかけてリードエッジを検出しようとするときに２つの端子が１つになって検出されてしまい、図７（Ｂ）に示したように、２つの端子Ｌ１０、Ｌ１１に対してリード先端Ｅ１０が検出されてしまう恐れがある。この場合は、コーナー端子Ｌ１０が存在することでリード端子の検出に影響を与えてしまう。これに対し、図７（Ｃ）に示したようなタイプ１に属する部品の場合には、コーナー端子Ｌ２０と隣接するリード端子Ｌ２１の先端がある程度の距離がある場合は、ＤＯＧフィルタをかけても２つの端子が１つになって検出されることはない。図７（Ｄ）に示したように、それぞれリード先端Ｅ２０、Ｅ２１、．．．．．が検出され、コーナー端子Ｌ２０が存在してもリード端子の検出に影響はない。
【００２９】
従って、タイプ１、２のように、コーナー端子がリード端子の検出に影響を与えない形状の場合は、コーナーからの距離を見て検出結果にコーナー端子が含まれているかどうかを判断する。コーナー端子は部品のコーナー部に存在するため、最もコーナーから近い端子がコーナーから所定の距離内に存在する場合はコーナー端子だと判断する。コーナー端子はセンタリングには不要なため、コーナー端子と判断した時は検出結果から削除する。該当する端子がない場合は削除を行わない。端子削除終了後、コーナー座標より２本の対角線を取得し、その対角線上をスキャンし、コーナー端子の有無をチェックする。部品データ入力時、部品タイプの種類や位置を誤入力すると、スキャンによる端子検出との相違が生じ、異部品検査を行うことができる。例えば、部品データ上からはコーナー端子が存在するはずのコーナーに対してコーナー端子を見つけられなかった場合は、異部品に対して部品認識が行われており、このような場合は、エラー終了する。
【００３０】
一方、コーナー端子がリード端子の検出に影響を与えるタイプ３のような形状の場合は、まず対角線スキャンを行い、コーナー端子を検出する。そのコーナー端子の輪郭を検出して、処理画像からそのコーナー端子を塗りつぶしてコーナー端子を削除する。これを４コーナーそれぞれに行い、コーナー端子のない画像を作り出して、その画像に基づいて再度リード検出を行う。
【００３１】
なお、ステップＳ６で行われるコーナー端子削除処理並びに異部品検査は、後でタイプごとに詳細に説明する。
【００３２】
このように、コーナー端子削除処理並びに異部品検査を行った後、検出されている残りのリード端子に対して不良端子が存在するかなどのリード検査を各辺に対して行い（ステップＳ７、Ｓ８）、正常であれば、そのリード端子に基づいて部品の中心と傾きを算出する（ステップＳ９）。
【００３３】
＜対角線スキャンによるコーナー端子の検出＞
上述したように、異部品であるかどうかの検査並びにタイプの種類によりコーナー端子を塗りつぶして画像処理をする必要があるので、以下に、対角線スキャンによるコーナー端子の検出を説明する。
【００３４】
まず、コーナー端子を検出するための二値化しきい値を設定する。これは、図８に示したように、各辺のリード列直線Ｈ”上の点とその近傍の点をサンプリングしてサンプル点とし、サンプル点の濃度ヒストグラムを作成して、判別分析法を用いて各辺の二値化しきい値を求める。判別分析法は、濃度値の集合をしきい値ｔで２つのクラス（ｔ以上とｔ未満）に分割したと仮定したとき、２つのクラス間の分離が最もよくなるようにパラメータｔを決めるという考え方に基づいた一般的なしきい値選択法である。例えば、左上コーナー用しきい値は、そのコーナーを作る２辺、すなわち上辺と左辺に対して求められたしきい値の平均値とする。
【００３５】
続いて、部品画像を図９に示した流れに沿って処理しコーナー端子が存在するかどうかを検査する。
【００３６】
まず、部品画像のコーナー座標を取得しているので（図３のステップＳ５）、対角のコーナー間を結んだ対角線を取得し（ステップＳ１１）、端子を検出するためのスキャンの方向と範囲を設定する（ステップＳ１２）。スキャン方向は、図１０（Ａ）に示したように、検出感度を高めるために対角線の傾きとコーナー位置により異なるようにする。スキャン範囲は、コーナー座標前後にコーナー間距離の１／４の長さをとった範囲Ｍ１とＭ２を定め、スキャン開始点ｍ１と終了点ｍ２を設定する。
【００３７】
このようにスキャンの方向とスキャン開始点と終了点を設定したらスキャンを開始する（ステップＳ１３）。図１０（Ｃ）に示したように、対角線の傾きが４５°より緩やかな場合は、スキャン開始点から終了点まで対角線上の点と上下の点をスキャンし（ｙ方向スキャン）、対角線の傾きが４５°より急な場合は、対角線上の点と左右の点をｘ軸方向にスキャンする。
【００３８】
ステップＳ１４では、スキャン結果を判定する。コーナー端子用の２値化しきい値以上の点が検出できた時点で対角線スキャンは終了し、端子輪郭を取得するステップＳ１５に進む。逆に、スキャン終了点までスキャンを行っても２値化しきい値以上の点が見つからなかった場合は、コーナー端子なしとする。
【００３９】
ステップＳ１４で端子が検出された場合は、検出点から輪郭を検出していく（ステップＳ１５）。この輪郭を取得する状態が図１１に図示されている。図１１（Ａ）において、Ｑ１は対角線スキャンで検出された点で、その検出点Ｑ１を除く周囲の８近傍を数字の順序で調査していく。Ｑ２でしきい値以上となり輪郭が検出されるので、これを次の輪郭点とする。続いて、図１１（Ｂ）に示したように、Ｑ２を中心に８近傍の調査を開始し、同様な処理を最初のスタート点に戻るまで繰り返す。なお、８近傍の調査方向は、対角線スキャンの方向により決定するようにする。
【００４０】
このようにして検出した輪郭点が図１１（Ｃ）に図示されており、その情報は検出した順に配列へ格納していく。続いて、ステップＳ１６、Ｓ１７において、この輪郭点配列からＸ方向のエッジペア座標、ｙ方向のエッジペア座標をそれぞれ求める（図１１（Ｄ）、（Ｅ））。また、ステップＳ１８において、このエッジペア座標から検出端子の重心Ｘｇ、Ｙｇを求める（図１１（Ｆ）、（Ｇ））。この重心の演算は、下記の式に従って求められる。
【００４１】
Ｌｓｕｍ（ｙ）＝Ｅｄｇｅ２（ｙ）−Ｅｄｇｅ１（ｙ）＋１
Ｌａｄｒ＿ｓｕｍ（ｙ）＝Ｌｓｕｍ（ｙ）×（Ｅｄｇｅ１（ｙ）＋Ｅｄｇｅ２（ｙ））／２
ＳＵＭ＝ΣＬｓｕｍ（ｙ）
Ｙｍｏｍ＝Σ（Ｌｓｕｍ（ｙ）×ｙ）
Ｘｍｏｍ＝ΣＬａｄｒ＿ｓｕｍ（ｙ）
Ｘｇ＝Ｙｍｏｍ／Ｓｕｍ
Ｙｇ＝Ｘｍｏｍ／Ｓｕｍ
求めた検出端子の重心が、対角線付近に存在する場合は、検出した端子はコーナー端子と見なせる。逆に、重心が対角線から離れている場合は、誤ってリード端子を検出した可能性もありコーナー端子なしと見なす。
【００４２】
このような対角線スキャンによるコーナー端子の検出は、以下で説明するように、異部品検査やタイプ種類に応じて行われるコーナー端子の塗りつぶしに利用することができる。
【００４３】
＜コーナー端子削除と異部品検査＞
ここで、図３のステップＳ６で行われるコーナー端子削除と異部品検査の詳細を説明する。この処理は、上述したように、図４に示したような部品タイプにより異なるので、タイプごとに行われる。
【００４４】
タイプ０の部品は、コーナー端子が存在しないのでコーナー端子削除処理は行わない。しかし、異部品検査のために、上述した対角線スキャンを行いコーナー端子の有無を調べる。４コーナーともコーナー端子を検出しなかった場合は正常とする。１コーナーでもコーナー端子を検出した場合は、異部品の可能性があるので、リード検査後に再度異部品検査をするため、コーナー端子が存在したコーナー位置を覚えておく。
【００４５】
図１２には、タイプ１、タイプ２の部品に対するコーナー端子削除と異部品検査処理の流れが図示されている。
【００４６】
まずリード端子が検出されているので、そのピッチを取得し（ステップＳ２１）、検出リード間の距離を求める。図１３（Ａ）に示したようなリード欠けが存在しない部品の場合は、両端のリード端子Ｌ３０、Ｌ３１以外のリード端子間距離を平均してリードピッチＰｎを求める。一方、図１３（Ｂ）に示したように、リード欠けＬ３２、Ｌ３３が存在する場合は、両端の端子ピッチ以外から最小リード間距離を求め、他のリード間距離をこの最小リード間距離で割り、最小リード間距離をＰ１とした場合の、リード間距離を整数で表現する。部品データのリード欠け情報から、１ピッチをＰ１としたリード間距離列を求めておく。
【００４７】
検出したリード間距離の状態と、リード欠け情報から取得したリード情報に矛盾がある場合は異部品であるとしてエラー処理を行う。正常な場合は、両端のリード間距離以外のリード間距離で欠け本数を加味して平均値を求め、これをリードピッチとする。
【００４８】
次に両端のリード間距離が検出ピッチの±３０％以内でない場合は、端のリードはコーナー端子だと見なし削除を行う。ただし、リード曲がり判定率が±３０％未満で設定されていた場合は、検出ピッチの±リード曲がり判定率［％］以内とする。例えば、図１４（Ａ）に示したように、左端のリード端子Ｌ３０とその隣のリード端子間の距離Ｐ３は、検出ピッチ＋３０％より大きいので、端子Ｌ３０はコーナー端子として削除する。一方、右端のリード端子Ｌ３１との距離Ｐ４は、検出ピッチ＋３０％以内のため、この端子は削除しない。この状態が図１４（Ｂ）に図示されている。このように、両端ピッチが不整合で一致しない場合には、異常処理を行って（ステップＳ２２）、一方の端子を削除しておく。
【００４９】
次にコーナー座標から１ピッチ以内に検出端子が存在する場合は、コーナー端子と見なし削除する（ステップＳ２３）。ただし、先の両端リード間距離異常で削除している場合はこの処理は行わない。従って、すでに削除されている左端Ｌ３０に対してはこの処理は行われない。また、１ピッチ以内に複数の検出端子が存在する場合はコーナー座標に最も近い検出端子を削除する。
【００５０】
なお、ここで削除判定に用いる２つの値、両端のリード間距離の許容値とコーナーからの距離は、部品データなどからの外部指定も可能である。説明ではデフォルト値を用いている。
【００５１】
最後に、上述した対角線スキャンを行い（ステップＳ２４）、４辺のコーナー端子の有無を調べる（ステップＳ２５、Ｓ２７）。コーナー端子が存在すると指定されたコーナーでコーナー端子を検出した場合は正常とする。１コーナーでもコーナー端子の有無が指定と異なる場合は異部品の可能性がある。リード検査後に再度異部品検査をするため、コーナー端子が存在したコーナー位置を覚えておく（ステップＳ２６）。
【００５２】
タイプ３の部品のコーナー端子削除処理は、図１５に示した流れに沿って行われる。タイプ３の場合には、コーナー端子がリード端子の検出に影響を与えるので、対角線スキャンを行い、コーナー端子を検出して、コーナー端子の塗りつぶし処理を行ってコーナー端子を削除するようにする。
【００５３】
そのため、まず、上述した対角線スキャンを行い（ステップＳ３１）、コーナー端子の有無を調べる（ステップＳ３２）。端子が存在しなかった場合は、次の処理のコーナー端子の塗りつぶし処理を行うことは不可能であるため、処理をスキップし次のコーナーの処理へ進む。ただし、コーナー端子が存在すると指定されたコーナーにコーナー端子が存在しないということは異部品の可能性がある。従って、リード検査後に再度異部品検査を行うため、コーナー端子が検出されなかったコーナー位置を覚えておく（ステップＳ３３）。
【００５４】
対角線スキャンによりコーナー端子が存在することが判別された場合は、コーナー端子の塗りつぶし処理を行う（ステップＳ３４）。この塗りつぶし処理は、図１６に図示したように行われ、まずｘ方向のエッジ点から半ピッチ外側の２つの点Ｘ１、Ｘ２の間をスキャンし、最低濃度を持つ点Ｘ３、Ｘ４の位置を取得する。これを谷座標とする。左右の谷座標間を、濃度変化が一定になるように塗りつぶしていく。
【００５５】
ｘ方向のエッジペアでの塗りつぶしが終了したらｙ方向でも同様の処理を行う。エッジ上の点は既に濃度が変更されているため、エッジの１つ外側の点から半ピッチ外側の点の間をスキャンして谷座標を求める。上下の谷座標間を濃度変化が一定になるように濃度を設定する。既に塗りつぶされている濃度より新たに塗ろうとする濃度の方が低い場合にのみ塗る。このような処理によりコーナー端子Ｌの塗りつぶしを行うことができ、コーナー端子の画像を削除することができる。
【００５６】
検出した全てのコーナー端子の塗りつぶしが終了したら（ステップＳ３５）、再度リード検出を行って（ステップＳ３６）、その検出結果に従って部品中心と傾きを計算する。
【００５７】
このように端子の塗りつぶし処理を行うと、検出したくない端子を画像上から削除できるため、不要な端子自体を検出しないで済むだけでなく、周囲の端子の検出に影響を与えることもなくなり、必要端子だけを正確に検出することができ、正確な部品認識を行うことが可能となる。
【００５８】
なお、タイプ３に関して説明した端子の塗りつぶし処理は、タイプ３のような部品だけでなく、他のコーナー端子を有するタイプ１、２に対して行うようにしてもよい。
【００５９】
また、コーナー端子削除と異部品検査において行われた対角線スキャンにおいて、異部品の可能性があり、エラーが発生したコーナー端子に対しては、その位置が保存されているので（図１２のステップＳ２６、図１５のステップＳ３３）、この保存されている端子に対して再度コーナー端子の有無判定のためのスキャンを行うようにする。この処理が図１７に図示されている。
【００６０】
リード検査終了後はリード先端座標が決定しているため、図１７（Ａ）に図示したように、コーナー座標Ｅ４０の座標とそれに隣接する２つのリード端子Ｌ４１、Ｌ４２のエッジＥ４１、Ｅ４２の座標が分かる。これら２本のリード端子とコーナー座標を結んだ矩形Ａを求める。図１７（Ａ）に示したように、矩形Ａの範囲では、リードの存在する側の辺にリード端子Ｌ４１、Ｌ４２の一部が入ってしまう。このリード端子部分を回避するために、図１７（Ｂ）に示したように、辺から内側に向かって端子が存在しない点を見つけるスキャンをリード先端側からリード根元方向に行う。図１７（Ｃ）に示したように、最も内側のリード端子が存在しない点にあわせて、先に求めた範囲を狭めた矩形Ａ’を求める。
【００６１】
そして、図１７（Ｃ）で設定した範囲Ａ’内をコーナー座標側からスキャンしていき、コーナー端子用二値化しきい値以上の点が一定数以上の画素を持つ塊で見つかったらコーナー端子は存在すると判断する。範囲Ａ’内を全てスキャンしてもしきい値以上の点が一定数以上見つからなかった場合は、コーナー端子は存在しないと判断する。コーナー端子と見なす一定数以上の塊と判断する画素数は解像度毎に設定する。これによりコーナー端子の検出精度を向上させることができる。
【００６２】
【発明の効果】
以上説明したように、本発明では、センタリングに関係のない部品認識に不要なコーナー端子を削除して部品認識が行われるので、部品認識精度を高めることができ、部品搭載精度を向上させることができる。
【００６３】
また、本発明では、部品種類によりコーナー端子が隣接する端子と近接している場合には、コーナー端子を認識できない場合があるので、コーナー座標から求められる対角線上に沿って画像をスキャンし、このスキャンによりコーナー端子を検出し、この検出されたコーナー端子を塗りつぶすことによりコーナー端子を削除している。このように端子の塗りつぶし処理を行うと、検出したくない端子を画像上から削除できるため、不要な端子自体を検出しないで済むだけでなく、周囲の端子の検出に影響を与えることもなくなり、必要端子だけを正確に検出することができ、正確な部品認識を行うことが可能となる。
【図面の簡単な説明】
【図１】部品実装装置の概略構成を示すブロック図である。
【図２】部品撮像装置並びに画像処理装置の構成を示した構成図である。
【図３】部品認識の流れを示したフローチャートである。
【図４】部品の種類を示した説明図である。
【図５】リード列直線を求める流れを示した説明図である。
【図６】リード列直線を求めるための基準直線を求める流れを示した説明図である。
【図７】部品タイプによりコーナー端子が端子検出に与える影響を説明した説明図である。
【図８】２値化しきい値を求めるためのサンプリング点を示した説明図である。
【図９】対角線スキャンにより部品にコーナー端子が存在するかどうかを検出する流れを説明したフローチャートである。
【図１０】対角線スキャンの方法を説明した説明図である。
【図１１】検出されたコーナー端子の輪郭を求める流れを示した説明図である。
【図１２】タイプ１、２の部品に対するコーナー端子削除処理並びに異部品検査の流れを示したフローチャートである。
【図１３】リードピッチを定める状態を示した説明図である。
【図１４】コーナー端子削除の流れを示した説明図である。
【図１５】タイプ３の部品に対するコーナー端子削除処理並びに異部品検査の流れを示したフローチャートである。
【図１６】タイプ３の部品に対するコーナー端子削除処理を示した説明図である。
【図１７】コーナー端子検出を高めるための処理を示した説明図である。
【符号の説明】
５  撮像装置
７  画像処理装置
７ｂ  画像メモリ
７ｄ  部品データメモリ
【図１】
2004219283.tif 000003
【図２】
2004219283.tif 000004
【図３】
2004219283.tif 000005
【図４】
2004219283.tif 000006
【図５】
2004219283.tif 000007
【図６】
2004219283.tif 000008
【図７】
2004219283.tif 000009
【図８】
2004219283.tif 000010
【図９】
2004219283.tif 000011
【図１０】
2004219283.tif 000012
【図１１】
2004219283.tif 000013
【図１２】
2004219283.tif 000014
【図１３】
2004219283.tif 000015
【図１４】
2004219283.tif 000016
【図１５】
2004219283.tif 000017
【図１６】
2004219283.tif 000018
【図１７】
2004219283.tif 000019