説明

検査装置、検査方法及び検査プログラム

【課題】検査対象毎に検査パラメータを設定する必要がなく、半田付けの実装の良否を適切に判定すること。
【解決手段】複数の半田接合部を含む画像から、半田接合部を含む部分画像を複数抽出する抽出部と、抽出部により抽出された複数の部分画像を用いて、半田接合部の実装の良否を判定する基準となる基準画像を作成する作成部と、作成部により作成された基準画像と各部分画像とを比較する比較部と、比較部による比較結果に基づき、各半田接合部の実装の良否を判定する判定部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半田付けの実装の良否を検査する検査装置、検査方法及び検査プログラムに関する。
【背景技術】
【0002】
プリント基板の実装検査において、現在、自動検査を行った後に、NG候補については人が目視検査を行っている。総合的な正確さや信頼性の点で、人の目の性能がまだ自動検査を上回っているからである。
【0003】
しかし、人による目視検査では、見逃しが生じる、検査基準にばらつきが出る、人件費がかかる、といった問題があり、より一層の自動化が求められている。
【0004】
プリント基板の実装検査においては、部品の取り付け位置や姿勢だけではなく、半田付けの状態が正常か不良かの検査が必要である。半田の接合状態が悪い場合、後になって製品の不具合となって現れる恐れがある。半田の接合状態は、半田フィレットの形状や濡れの具合により、外観で判断することができる。
【0005】
プリント基板の実装部品の中でも、多ピンのコネクタ類は目視検査への依存度が高い。狭ピッチでリードの数が多く、検査すべきポイントが多数集中しているためである。また、リードの形状などが様々で、特定の検査基準を適用し難く、個別のティーチングが必要になる。
【0006】
そのため、ティーチングの手間を増やすことなく、このようなコネクタ類の自動検査の精度を高めて、目視検査の作業量を減らすことが特に要求されている。
【0007】
半田接合部の外観検査は、複雑な立体形状の半田フィレット表面が金属反射をして画像に映るため、プリント基板の実装検査の中でも特に難しい検査である。構造照明を用いることで光沢の問題を避ける方式も用いられているが、構造パターンが照射されている部分の立体形状しか分からない上、装置が複雑になってコスト増となり易い。
【0008】
ここで、従来の半田付けの状態を検査する技術としては、カラーハイライト方式がある。このカラーハイライト方式に関し、例えば、部品の実装位置が正常な良品画像及び実装位置が正常でない不良品画像を用いて検査用のパラメータの1つである色条件を自動生成する技術がある。
【0009】
また、他の検査技術としては、複数の同一パターンの半田付け部のうち、ある半田付け部形状を示す情報と、他の半田付け部の形状を示す情報とを比較することで半田付け状態の良否を判定する技術がある。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2006−86451号公報
【特許文献2】特開2008−191106号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、従来のカラーライト方式では、良品と不良品との実装部品の画像をそれぞれ記憶するDB(Data Base)を用意する必要がある。そのため、新規の部品が増えれば、その部品用のDBを用意する必要があり、検査対象の部品毎に検査パラメータを変えなければならなかった。また、他の検査技術では、良否判定が、比較の基となる所定の半田付け部形状に大きく依存するため、適切に半田付けの実装の良否を判定することができているとは言えない。
【0012】
よって、検査対象毎に検査パラメータを設定する必要がなく、半田付けの実装の良否を適切に判定することができる技術が求められている。
【0013】
そこで、開示の技術では、検査対象毎に検査パラメータを設定する必要がなく、半田付けの実装の良否を適切に判定することができる検査装置、検査方法及び検査プログラムを提供することを目的とする。
【課題を解決するための手段】
【0014】
開示の一態様における検査装置は、複数の半田接合部を含む画像から、前記半田接合部を含む部分画像を複数抽出する抽出部と、前記抽出部により抽出された複数の部分画像を用いて、前記半田接合部の実装の良否を判定する基準となる基準画像を作成する作成部と、前記作成部により作成された基準画像と各部分画像とを比較する比較部と、前記比較部による比較結果に基づき、各半田接合部の実装の良否を判定する判定部と、を備える。
【発明の効果】
【0015】
開示の技術によれば、検査対象毎に検査パラメータを設定する必要がなく、半田付けの実装の良否を適切に判定することができる。
【図面の簡単な説明】
【0016】
【図1】実施例1における検査装置のハードウェアの一例を示すブロック図。
【図2】実施例1における検査装置の機能の一例を示すブロック図。
【図3】検査対象の一例を示す図。
【図4】良否判定の処理概要を説明するための図。
【図5】リード間隔の検出を説明するための図。
【図6】輝度差のヒストグラムを示す図。
【図7】部分画像の抽出を説明するための図。
【図8】基準画像の作成方法を説明するための図。
【図9】基準画像と各部分画像との相関値を示す図。
【図10】実施例1における検査処理の一例を示すフローチャート。
【図11】実施例1における部分画像の抽出処理の一例を示すフローチャート。
【図12】実施例1における基準画像の作成処理(方法1)の一例を示すフローチャート。
【図13】実施例1における基準画像の作成処理(方法2)の一例を示すフローチャート。
【図14】実施例1における基準画像の作成処理(方法3)の一例を示すフローチャート。
【図15】実施例2における検査装置のハードウェアの一例を示すブロック図。
【図16】実施例2における検査装置の機能の一例を示すブロック図。
【図17】撮像部と照明機器との位置関係の一例を示す図。
【図18】各検査画像から生成される各基準画像の一例を示す図。
【図19】実施例2における検査処理の一例を示すフローチャート。
【図20】実施例3における検査装置の機能の一例を示すブロック図。
【図21】ステレオマッチングに基づき視差検出を説明するための図。
【図22】視差に基づくリード高さの計測を説明するための図。
【図23】半田の良否判定を説明するための図。
【図24】リードの高さに基づく良否判定を説明するための図。
【図25】実施例3における検査処理の一例を示すフローチャート。
【図26】部分画像領域共通化(その1)の場合の処理概要を説明するための図。
【図27】部分画像領域共通化(その2)の場合の処理概要を説明するための図。
【図28】実施例4における抽出部の機能の一例を示すブロック図。
【図29】共通リード間隔の検出を説明するための図。
【図30】リード間隔の処理効率化を説明するための図。
【図31】金具部分を含む検査画像の一例を示す図。
【図32】共通部分画像領域の垂直範囲を検出するための図。
【図33】実施例4における検査処理の一例を示すフローチャート。
【図34】実施例4における共通部分画像領域の検出処理の一例を示すフローチャート。
【発明を実施するための形態】
【0017】
以下、各実施例について、添付図面を参照しながら説明する。
【0018】
[実施例1]
<ハードウェア>
図1は、実施例1における検査装置10のハードウェアの一例を示すブロック図である。図1に示す例では、検査装置10は、照明機器11、撮像部12、表示部13と接続される。
【0019】
照明機器11は、例えば発行素子を有し、検査対象を照明する機器である。撮像部12は、例えばカメラなどの撮像素子を有する装置である。撮像部12は、検査対象を撮像し、例えばモノクロ画像を生成する。表示部12は、例えばCRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)等であり、検査装置10から取得した検査結果を表示する。
【0020】
図1に示す検査装置10は、制御部101、主記憶部102、補助記憶部103、通信部104、ドライブ装置105を有する。各部は、バスを介して相互にデータ送受信可能に接続されている。
【0021】
制御部101は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPU(Central Processing Unit)である。また、制御部101は、主記憶部102や補助記憶部103に記憶されたプログラムを実行する演算装置であり、入力装置や記憶装置からデータを受け取り、演算、加工した上で、出力装置や記憶装置に出力する。
【0022】
主記憶部102は、例えば、ROM(Read Only Memory)やRAM(Random Access Memory)などである。主記憶部102は、制御部101が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【0023】
補助記憶部103は、例えばHDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部103は、例えば撮像部12から取得した画像を記憶する。
【0024】
通信部104は、有線又は無線で周辺機器とデータ通信を行う。通信部104は、例えばネットワークを介して、文字を含む画像を取得し、補助記憶部103に記憶する。
【0025】
ドライブ装置105は、記録媒体106、例えばフレキシブルディスクやCD(Compact Disc)から所定のプログラムを読み出し、記憶装置にインストールする。
【0026】
また、記録媒体106に、所定のプログラムを格納し、この記録媒体106に格納されたプログラムは、ドライブ装置105を介して検査装置10にインストールされる。インストールされた所定のプログラムは、検査装置10により実行可能となる。
【0027】
なお、図1に示す検査装置10は、照明機器11、撮像部12及び表示部13を別構成としたが、いずれか一つ、又は複数を含む構成としてもよい。
【0028】
<機能>
図2は、実施例1における検査装置10の機能の一例を示すブロック図である。図2に示す例では、検査装置10は、取得部201、画像処理部202、判定部203を有する。取得部201、画像処理部202及び判定部203は、例えば制御部101及びワークメモリとしての主記憶部102などにより実現されうる。
【0029】
取得部201は、撮像部12から、検査対象の半田接合部を複数含む画像を取得する。以下、この画像を検査画像と呼ぶ。半田接合部とは、リードに半田付けを行って形成された半田フィレットを含む部分をいう。取得部201は、取得した検査画像を画像処理部202に出力する。
【0030】
画像処理部202は、取得部201から入力された検査画像に対し、画像処理を行って、各半田接合部の半田付けの状態又は形状の良否を判定するのに用いる画像を生成し、生成した画像から判定パラメータを算出する。以下、半田付けの状態又は形状の良否を、半田付けの実装の良否とも言う。判定パラメータは、半田接合部の実装の良否を判定するのに用いるパラメータをいい、例えば画像間の相関値である。
【0031】
画像処理部202は、判定パラメータを算出するため、抽出部211、作成部212、記憶部213、比較部214を有する。
【0032】
抽出部211は、検査画像内に含まれるリードの間隔を検出し、リード間隔に基づいて、半田接合部を含む部分画像を抽出する。1つの部分画像は、1つの半田接合部を含む画像である。抽出部211は、抽出した複数の部分画像を作成部212に出力する。また、抽出部211は、記憶部213に対し、部分画像を抽出するためのデータをやり取りする。部分画像の具体的な抽出処理については後述する。
【0033】
作成部212は、抽出部211から取得した複数の部分画像を用いて、半田付けの実装の良否判定に用いる基準画像を作成する。基準画像は、例えば、複数の部分画像の平均画像である。作成部212は、作成した基準画像を記憶部213に記憶し、比較部214に作成完了を通知する。基準画像の具体的な作成処理については後述する。
【0034】
記憶部213は、作成部212により作成された基準画像を記憶する。基準画像は作成部212により書き込まれ、比較部214により読み出される。
【0035】
比較部214は、作成部212から基準画像の作成完了通知を受けると、記憶部213から基準画像を読み出す。比較部214は、取得した基準画像と、検査画像に含まれる各部分画像とを比較する。
【0036】
比較部214は、算出部221を有する。算出部221は、基準画像と検査画像の部分画像との相関値を算出する。算出部214は、この相関値を比較結果として判定部203に出力する。算出部221は、画像間の類似度を算出し、この類似度を比較結果としてもよい。
【0037】
判定部203は、画像処理部202から基準画像と、検査画像内の部分画像との比較結果を取得すると、部分画像内の半田接合部の実装の良否を判定する。判定部203は、検査画像内の各部分画像に対し良否判定を行い、1つでも不良だと判定した場合には実装不良と判定する。
【0038】
判定部203は、例えば、取得した判定結果である相関値が閾値よりも小さい場合は不良であると判定する。閾値は、例えば0.85とし、この閾値は実験などにより適切な値が設定されればよい。判定部203は、判定結果を、表示部13に出力する。表示部13は、判定結果を表示する。
【0039】
<検査対象>
図3は、検査対象の一例を示す図である。図3に示す例では、基板23の表面に半導体集積回路20が実装される。実装された半導体集積回路20は例えば樹脂に覆われており、複数のリード21を備える。各リードは、基板23の表面に形成されるランドに半田付けされる。これにより、半田でリードとランドとが接合された部分を示す半田接合部22が形成される。半田接合部22は、例えば半田フィレットを有する。
【0040】
撮像部12は、図3に示すような複数のリードと半田接合部とを上方から撮像し、検査画像を生成する。
【0041】
なお、図3に示す検査対象は一例であり、本実施例は、複数の半田接合部を有する検査対象物に適用可能であり、例えば、基板に表面実装された多ピン型コネクタの外観検査に適用可能である。
【0042】
<処理概要>
図4は、良否判定の処理概要を説明するための図である。図4に示す例では、検査画像30は、撮像部12により撮像された検査対象物を含む画像である。部分画像31は、リード21と半田接合部22とを含む矩形領域の画像である。基準画像32は、複数の部分画像を用いて作成された、半田付けの実装の良否判定を行う基準となる画像である。
【0043】
図4に示すように、半田付けの実装の良否判定が以下の手順で行われる。
(1)リード間隔検出
(2)部分画像抽出
(3)基準画像作成
(4)基準画像と部分画像との比較結果により良否判定
以下、(1)〜(4)の各処理について具体的に説明する。
【0044】
(1)リード間隔検出
半田フィレット部分及び半田が乗ったリード表面は、微妙に表面形状が異なる上に金属反射を起こすため、明るさの分布がそれぞれ少しずつ異なって映る。従って、抽出部211は、安定して求めることのできるリードの間隔を検出する。なお、以下の説明では、リードが水平方向に並んでいるとするが、垂直方向にリードが並んでいても水平と垂直とを逆にして同様の処理を行えばよい。
【0045】
リード部分は明るく、それ以外の部分は暗く映るため、抽出部211は、明るい領域が水平に等間隔で並んでいる部分を探索してリード領域として抽出し、その明るい領域の繰返し周期をリード間隔として求める。
【0046】
画素レベルで考えると、明るい画素同士の間隔、あるいは、暗い画素同士の間隔がリード間隔に相当するため、同じ輝度の画素がどれだけ離れているかによりリード間隔が求められる。但し、半田部分の輝度にはばらつきが大きく、個々の画素で見るとノイズが多いため、抽出部211は、様々な位置で様々な間隔の画素同士の輝度差を見ることにより、総合して正確なリード間隔を求める。
【0047】
図5は、リード間隔の検出を説明するための図である。図5に示すように、抽出部211は、水平ライン上で2つの画素を取り、その間隔(画素数)d、および、輝度の差ΔVを求める。例えば、水平方向の位置iの輝度値をVi、位置jの輝度値をVjとする。このとき、輝度差ΔVは、次の式(1)により求められる。
ΔV=|Vi−Vj| ・・・式(1)
画素の位置に関係なく、間隔dがリード間隔に近ければ輝度差ΔVはほぼゼロになり、dがリード間隔より半周期ずれている場合は輝度差が最も大きくなる。これを利用して、抽出部211は、画素のペアを色々と変えて、つまり、iとjとを変更して間隔d毎の輝度差ΔVを累積する。
【0048】
図6は、輝度差のヒストグラムを示す図である。図6に示すグラフは、抽出部211が輝度差ΔVを間隔d毎に累積した場合の輝度ヒストグラムの一例を示す。この輝度ヒストグラムの最初に現れる極小値がリードの間隔に対応する。
【0049】
間隔dの範囲を広げれば、リードの周期となるリード間隔の2倍、3倍に相当する極小値(d=m2,m3)が現れる。例えば、2倍のリード間隔に当たるm2を2で割ることにより、抽出部211は、サブピクセル精度で正確なリード間隔を得ることができる。例えば、m2が31画素の場合、m2/2=15.5となり、小数単位の画素でリード間隔を表すことができる。
【0050】
なお、図6に示すようなヒストグラムにこのような極大値と極小値が現れないような水平ライン上には、抽出部211は、コネクタのリードが存在していないものと判定する。リードの存在位置が不明の場合、抽出部211は、このような水平ラインを何箇所か設定し、リード間隔が正しく算出できる位置を見つける。
【0051】
(2)部分画像抽出
抽出部211は、(1)の処理で求められたリード間隔を取得し、このリード間隔を用いて、リードの明るい領域を包含する矩形領域を部分画像として抽出する。矩形領域には、リードの一部と半田接合部とが含まれる。
【0052】
図7は、部分画像の抽出を説明するための図である。図7(A)は、検査画像の一例を示す。図7に示す例では、抽出部211は、リード間隔が得られた水平ラインとそのリード間隔に基づいて、水平方向・垂直方向に検査画像を輝度積分する。これにより、リードが存在する部分で積分値が大きくなる。
【0053】
ただし、垂直方向の積分結果にはノイズによる凸凹が含まれており、平滑化しても必ずしもピークが均等な間隔で並ぶとは限らない。しかし、一つ一つのピーク位置はばらついても、全てのリードを足し合わせれば、リードの中心部分でピークとなることが期待できる。
【0054】
図7(B)は、検査画像の輝度を垂直方向に積分した積分値を示す。抽出部211は、図7(B)に示す所定の始点X0からリード間隔mの距離ずつ水平方向にシフトした積分値をそれぞれ加算する。抽出部211は、この加算をX0からmまで1画素ずつずらして行う。図7(C)は、間隔m毎の累積積分値を示すグラフである。図7(C)は、始点X0から間隔m毎に切り取った積分値を重ね合わせたグラフでもある。図7(C)に示すグラフのピーク値(極大値)を取る位置をX0maxとする。
【0055】
抽出部211は、X0maxの位置を、リードの中心位置に決定する。抽出部211は、リードの中心位置が決まれば、その左右両側の所定範囲tを部分画像の横幅とする。図7(D)は、水平方向の部分画像の所定範囲tを示す。所定範囲tは、例えば、ピークの位置から左右に所定の長さ分と設定しておけばよい。また、所定範囲tは、垂直方向の輝度積分値のピーク値と極小値との間の長さに基づいて設定されてもよい。
【0056】
図7(E)は、検査画像の輝度を水平方向に積分した積分値を示す。抽出部211は、例えば、積分値が閾値を超える部分を、半田接合部がある画像の下方向に所定値だけずらして垂直方向の所定範囲sを決定する。
【0057】
抽出部211は、水平方向の所定範囲tと垂直方向の所定範囲sとに基づき矩形領域の部分画像を複数抽出する。抽出部211は、例えば、リードの中心位置からリード間隔mずつ離れた部分画像を複数抽出する。
【0058】
(3)基準画像作成
作成部212は、抽出部211から取得した複数の部分画像を用いて、半田付けの実装の良否を判定する基準となる基準画像を作成する。ここでは、3通りの作成方法について説明する。
【0059】
なお、作成部212は、基準画像の作成時に、不良の疑いのある部分画像を含めると基準画像の質が低下する。従って、作成部212は、不良の疑いがある部分画像は除外して基準画像を作成する。不良の疑いがある部分画像は、部分画像同士の相関値などを用いて検出すればよい。作成部212は、例えば、テンプレートマッチング又はパターンマッチングした位置の部分画像同士を加算平均することによって、基準画像を作成する。基準画像は、後述する良否判定のテンプレートマッチングにおいて、基準のテンプレートとなる。
【0060】
(方法1)
作成部212は、部分画像の特定の1つ(ここでは左端)を基準として、他の部分画像とのテンプレートマッチング処理を行い、その位置と相関値を求める。処理時間は3つの方法の中では一番少ない。作成部212は、基準とした部分画像のみが不良だった場合、他の部分画像との相関値は全て低くなるため、基準とした部分画像が不良と判定することができる。
【0061】
具体的な処理としては、作成部212は、各部分画像について、左端の部分画像との相関値を調べ、所定の閾値以上であれば、基準画像として平均をとる。この時、作成部212は、相関値が所定の閾値以下のものは基準画像には加算しない。所定の閾値は、例えば0.85とするが、実験などにより適切な値が設定されればよい。
【0062】
これは、不良あるいは不良の疑いのある部分画像を基準画像に混ぜないためである。また、作成部212は、基準画像として平均した部分画像の数もカウントし、所定の数以下であれば、不良あるいは不良に近い部分画像が幾つか含まれているとみなし、良否判定をNGとする。所定の数は、例えば部分画像の半分の値とするが、その他の値でもよい。
【0063】
左端のリードだけが不良である場合も、カウント数が1となりNGと判定される。作成部212は、良否判定をNGと判定した場合は、別の部分画像を基準として前述した処理を行ってもよい。
【0064】
(方法2)
作成部212は、全ての部分画像に関して、その両隣の部分画像とそれぞれテンプレートマッチング処理を行う。作成部212は、両端の部分画像については両端同士でのテンプレートマッチング処理を行う。これにより、全てのリードについて2つずつの相関値が得られる。
【0065】
作成部212は、両方の相関値が所定の閾値より低い部分画像について不良に近いと判定して基準画像の作成からは除外することができる。これにより、方法2は、方法1よりも基準画像の正確さを高めることができる。
【0066】
(方法3)
作成部212は、方法2を最大限に拡張したものとして、全ての部分画像間で総当りでテンプレートマッチング処理を行う。これにより、作成部212は、相関値が所定の閾値より低い部分画像を不良と判断して除外し、残りの部分画像で平均をとって基準画像を作成する。方法3は、処理時間が増えるものの、より正確な基準画像を作成することができる。
【0067】
図8は、基準画像の作成方法を説明するための図である。図8(A)は、方法1を説明するための図である。方法1は、図8(A)に示すように、作成部212は、左端の部分画像とのテンプレートマッチング処理を行って、6番目の部分画像との相関値が低いと判断できる。よって、作成部212は、1〜5番目、7〜8番目の部分画像をテンプレートマッチングでマッチングした位置で平均化した平均画像を基準画像として作成する。
【0068】
図8(B)は、方法2を説明するための図である。図8(B)に示すように、作成部212は、両隣の部分画像にテンプレートマッチング処理を行い、2つの相関値が所定の閾値より低い6番目の部分画像を除外する。よって、作成部212は、1〜5番目、7〜8番目の部分画像をテンプレートマッチングでマッチングした位置で平均化した平均画像を基準画像として作成する。
【0069】
図8(C)は、方法3を説明するための図である。図8(C)に示すように、作成部212は、全ての部分画像間でテンプレートマッチング処理を行い、相関値の行列を作成する。このとき、相関値の平均が所定の閾値より低い6番目の部分画像を、作成部212は、除外する。よって、作成部212は、1〜5番目、7〜8番目の部分画像をテンプレートマッチングでマッチングした位置で平均化した平均画像を基準画像として作成する。
【0070】
作成部212は、方法1〜3のいずれか1つを用いて基準画像を作成すればよい。方法1〜3のいずれかの方法が予め設定されていてもよいし、作成の都度、利用者に選択させるようにしてもよい。
【0071】
なお、作成部212は、基準画像を作成する際、相関値の差異に基づいた重み付けを行って部分画像を加算し、平均画像を生成してもよい。
【0072】
(4)基準画像と部分画像との比較結果により良否判定
比較部214は、作成部212により作成した基準画像を用いて各部分画像とのテンプレートマッチング処理を行い、それぞれの部分画像との相関値を求める。比較部214は、算出した相関値を判定部203に出力する。
【0073】
判定部203は、相関値が低い部分画像は、半田接合部が、基準画像の半田接合部との差異が大きく、不良であることを示すと判断する。
【0074】
図9は、基準画像と各部分画像との相関値を示す図である。図9に示すように、6番目の部分画像の相関値が閾値よりも小さい。よって、判定部203は、6番目の部分画像に含まれる半田接合部が不良であると判定する。この閾値は、例えば0.9とするが、実験などにより適切な値が設定されればよい。
【0075】
ここで、平均画像を基準にして良否判定を行う理由は、次の通りである。個々のリードを含む部分画像にはばらつきがあるため、例え良品同士であっても、個々のペアの相関値は必ずしも高くなく、そのばらつきも大きい。そのため、良品と不良品の相関値による切り分けが難しい。
【0076】
しかし、複数の部分画像の平均画像を作成することにより、ばらつきが相殺されて、真の良品画像(理想的な良品画像)に近い部分画像が得られる。従って、この平均画像を基準画像として個々の部分画像との相関値を算出すれば、それぞれの半田付けの実装の良否を適切に判定することが可能になる。
【0077】
これにより、予め閾値さえ設定しておけばよいので、検査対象毎のパラメータ設定が不要となり、ティーチング処理を大幅に簡略化し、半田付けの実装の良否判定を適切に行うことができる。
【0078】
<動作>
次に、実施例1における検査装置10の動作について説明する。図10は、実施例1における検査処理の一例を示すフローチャートである。図10に示すステップS101で、撮像部12は、検査対象物を撮像し、例えばモノクロの撮像画像を生成する。この撮像画像は検査画像として取得部201に取得され、抽出部211に入力される。
【0079】
ステップS102で、抽出部211は、検査画像から、半田接合部を含む部分画像の抽出に成功したか否かを判定する。抽出処理の詳細は、図11を用いて説明する。抽出に成功すれば(ステップS102−YES)ステップS103に進み、抽出に失敗すれば(ステップS102−NO)検査処理を終了する。
【0080】
ステップS103で、作成部212は、基準画像の作成に成功したか否かを判定する。基準画像の作成処理は、図12〜14を用いて説明する。基準画像の作成に成功すれば(ステップS103−YES)ステップ104に進み、基準画像の作成に失敗すれば(ステップS103−NO)検査処理を終了する。
【0081】
ステップS104で、比較部214は、基準画像と、各部分画像とを比較する。例えば、比較部214は、基準画像のリード及び半田接合部と、部分画像のリード及び半田接合部とのテンプレートマッチングを行い、相関値を算出する。相関値は、画像間の画素の類似度でもよい。
【0082】
ステップS105で、判定部203は、比較部214の比較結果に基づいて、各部分画像に含まれる半田接合部の半田付けの実装の良否を判定する。これにより、適切な基準画像を作成して、良否判定を適切に行うことができる。
【0083】
なお、部分画像の抽出失敗、又は基準画像の作成失敗の場合は、実装異常の程度が大きすぎることを示唆しているため、判定部203は、実装不良と判定する。
【0084】
図11は、実施例1における部分画像の抽出処理の一例を示すフローチャートである。図11に示すステップS201で、抽出部211は、検査画像の中の水平ラインを選択する。抽出部211は、予め所定ライン(例えば中心から数ライン下のラインなど)を選択するようにしておく。
【0085】
ステップS202で、抽出部211は、選択した水平ライン上の2つの画素の輝度差を累積して、図6に示すような輝度差ヒストグラムを作成する。
【0086】
ステップS203で、抽出部211は、輝度差ヒストグラムの極小位置を検出できるかを判定する。輝度差ヒストグラムに極小位置がない場合は、その水平ラインにリードがない可能性が高い。よって、極小位置がなければ(ステップS203−NO)ステップS201に戻り、抽出部211は、他の水平ラインを選択する。極小位置があれば(ステップS203−YES)ステップS204に進む。
【0087】
ステップS204で、抽出部211は、輝度ヒストグラムの極小位置に基づき、リード間隔を検出できるか否かを判定する。リード間隔が検出できれば(ステップS204−YES)ステップS205、S209に進み、リード間隔が検出できなければ(ステップS204−NO)抽出処理を終了する。
【0088】
ステップS205で、抽出部211は、検査画像の垂直方向の輝度積分を行う(図7(B)参照)。
【0089】
ステップS206で、抽出部211は、垂直方向の輝度積分値をリード間隔毎に累積する(図7(C)参照)。
【0090】
ステップS207で、抽出部211は、リード間隔内での、輝度積分値の累積値のピークを、リード内の中心位置として検出する。
【0091】
ステップS208で、抽出部211は、検査画像の左端のリードの水平範囲として、リードの中心位置に基づく所定範囲tを検出する。
【0092】
ステップS209で、抽出部211は、検査画像の水平方向の輝度積分を行う(図7(E)参照)。
【0093】
ステップS210で、抽出部211は、水平方向の輝度積分値を用いて、リードの垂直範囲として、所定範囲sを検出する。
【0094】
なお、ステップS205〜S208とステップS209〜S210とは、順不同であり、平行して処理が行われてもよいし、どちらかが先に行われてもよい。
【0095】
ステップS211で、抽出部211は、検出された左端の水平範囲の所定範囲tと、垂直範囲の所定範囲sとによる矩形領域の画像を部分画像に決定する。この部分画像には、リードや半田接合部が含まれる。
【0096】
ステップS212で、抽出部211は、左端の部分画像が決定したら、例えば部分画像の中心位置をリード間隔分水平方向にずらしていくことで、全ての部分画像を決定することができる。これにより、検査画像から、リード及び半田接合部を含む部分画像を全て抽出することができる。
【0097】
図12は、実施例1における基準画像の作成処理(方法1)の一例を示すフローチャートである。図12に示すステップS301で、作成部212は、左端の部分画像をテンプレートマッチング対象に設定する。左端をn=1とする。
【0098】
ステップS302で、作成部212は、パラメータcountを0に初期化する。ステップS303で、作成部212は、nに1を加算する。
【0099】
ステップS304で、作成部212は、テンプレートマッチング対象の部分画像に基づき、n番目の部分画像周辺をマッチング探索する。テンプレートマッチング処理では、相関値とマッチングした位置を算出することにする。
【0100】
ステップS305で、作成部212は、2つの部分画像間の相関値とマッチングした位置とを取得する。
【0101】
ステップS306で、作成部212は、取得した相関値が閾値以上であるか否かを判定する。閾値は例えば0.85である。相関値が閾値以上であれば(ステップS306−YES)ステップS307に進み、相関値が閾値未満であれば(ステップS306−NO)ステップS303に戻る。
【0102】
ステップS307で、作成部212は、マッチングした部分画像をマッチングした位置で平均画像に加算する。平均画像は、相関値が閾値以上の部分画像を平均化した画像である。
【0103】
ステップS308で、作成部212は、countに1を加算する。
【0104】
ステップS309で、作成部212は、nがNであるかを判定する。Nは、抽出部211により抽出された部分画像の総数である。n=Nであれば(ステップS309−YES)ステップS310に進み、n=Nでなければ(ステップS309−NO)ステップS303に戻る。
【0105】
ステップS310で、作成部212は、countが閾値以上であるか否かを判定する。この閾値は、例えばN/2とする。なお、閾値は実験などにより適切な値が設定されればよい。countが閾値以上であれば(ステップS310−YES)ステップS311に進み、countが閾値未満であれば(ステップS310−NO)ステップS312に進む。
【0106】
ステップS311で、作成部212は、相関値が閾値以上の部分画像が平均化された平均画像を基準画像に設定する。作成された基準画像は、記憶部213に記憶される。
【0107】
ステップS312で、作成部212は、半田付けにそもそも実装不良が多いということで、判定NGと判断する。作成部212は、判定NGと判定した場合、判定部203にその旨を通知する。
【0108】
図13は、実施例1における基準画像の作成処理(方法2)の一例を示すフローチャートである。図13に示すステップS401で、作成部212は、n=1に設定する。
【0109】
ステップS402で、作成部212は、基準画像の左端からn番目の部分画像をマッチング対象の部分画像に設定する。
【0110】
ステップS403で、作成部212は、テンプレートマッチング対象の部分画像に基づき、n+1番目の部分画像周辺をマッチング探索する。テンプレートマッチング処理では、相関値とマッチングした位置とを算出することにする。nがNの場合は、1番目の部分画像とのマッチングを行う。
【0111】
ステップS404で、作成部212は、2つの部分画像間の相関値とマッチングした位置とを取得する。ステップS405で、作成部212は、nに1を加算する。
【0112】
ステップS406で、作成部212は、n>Nであるかを判定する。Nは、抽出部211により抽出された部分画像の総数である。n>Nであれば(ステップS406−YES)ステップS407に進み、n≦Nであれば(ステップS406−NO)ステップS402に戻る。
【0113】
ステップS407で、作成部212は、count、nを0に初期化する。ステップS408で、作成部212は、nに1を加算する。
【0114】
ステップS409で、作成部212は、作成部212は、n−1番目及びn番目の相関値2個の平均を算出する。この平均を平均相関値と呼ぶ。
【0115】
ステップS410で、作成部212は、平均相関値が閾値以上か否かを判定する。この閾値は例えば0.85である。平均相関値が閾値以上であれば(ステップS410−YES)ステップS411に進み、平均相関値が閾値未満であれば(ステップS410−NO)S408に戻る。この閾値は、例えば0.85とするが、実験などにより適切な値が設定されればよい。
【0116】
ステップS411で、作成部212は、n番目の部分画像をマッチングした位置で平均画像に加算する。ステップS412で、作成部212は、countに1を加算する。
【0117】
ステップS413で、作成部212は、n=Nであるかを判定する。n=Nであれば(ステップS413−YES)ステップS414に進み、n=Nでなければ(ステップS413−NO)ステップS408に戻る。
【0118】
ステップS414以降の処理は、図12に示すステップS310以降の処理と同様であるため、その説明を省略する。
【0119】
図14は、実施例1における基準画像の作成処理(方法3)の一例を示すフローチャートである。図14に示すステップS501〜S502の処理は、図13に示すステップS401〜S402の処理と同様であるため、その説明を省略する。
【0120】
ステップS503で、作成部212は、テンプレートマッチング対象の部分画像に基づき、n+1番目からN番目の部分画像周辺をそれぞれマッチング探索する。
【0121】
ステップS504で、作成部212は、テンプレートマッチング対象の部分画像と、n+1番目からN番目の部分画像それぞれとの相関値及びマッチング位置を全て取得する。
【0122】
ステップS505〜S508の処理は、図13に示すステップS405〜S408の処理と同様であるため、その説明を省略する。
【0123】
ステップS509で、作成部212は、n番目以外の相関値N−1個の平均を算出し、この平均を平均相関値とする。
【0124】
ステップS510以降の処理は、図13に示すステップS410以降の処理と同様であるため、その説明を省略する。
【0125】
以上、実施例1によれば、検査対象毎にパラメータを設定する必要がなく、適切に半田付けの実装の良否を判定することができる。また、実施例1によれば、照明の具合が変化しても、ティーチングをやり直すことなく、良否判定処理を適用することができる。また、実施例1によれば、コネクタの種類ごとに個別にティーチングを行う必要がない。また、実施例1によれば、新規の同種部品にも、ティーチングをやり直すことなくそのまま適用することができる。
【0126】
[実施例2]
次に、実施例2における検査装置について説明する。実施例2では、照明機器の位置を変えたり、複数の視点から検査対象物を撮像したりして取得した検査画像に基づいて良否判定を行うことで、判定の精度を上げる。
【0127】
<ハードウェア>
図15は、実施例2における検査装置10のハードウェアの一例を示すブロック図である。図15に示す例では、検査装置10のハードウェアは実施例1と変わらないが、撮像部が複数ある。図15に示す例では、2つの撮像部が検査装置10に接続される。第1撮像部12−1は、例えば左視点から検査対象物を撮像する装置であり、第2撮像部12−2は、例えば右視点から検査対象物を撮像する装置である。これにより、検査対象物をいろいろな角度から撮像することができる。
【0128】
その他の構成は、実施例1と同様であるため、図1に示す符号と同じ符号を付し、その説明を省略する。
【0129】
<機能>
図16は、実施例2における検査装置10の機能の一例を示すブロック図である。図16に示す検査装置10は、取得部300、設定部301、画像処理部302、判定部303を有する。取得部300、設定部301、画像処理部302及び判定部303は、例えば制御部101及びワークメモリとしての主記憶部102により実現されうる。
【0130】
取得部300は、第1撮像部12−1、第2撮像部12−2から取得した撮像画像を抽出部311に出力する。この撮像画像は検査画像として扱われる。
【0131】
設定部301は、照明機器11の位置を設定する。例えば、検査対象物の左上方、真上、右上方に照明機器11が来るよう照明機器11の位置を調節する。照明機器11は、設定部301により可動制御される。
【0132】
なお、実施例2では、照明機器11の位置を調節するのではなく、照明機器11を複数備えて、各照明機器を順に照明することで、各方向から検査対象物を照明するにようにしてもよい。また、設定部301は、照明機器11の照明位置を変更するのではなく、照明方向を変更するようにしてもよい。
【0133】
画像処理部302は、1つの検査対象物に対して各照明方向、各視点からの検査画像を用いて、各半田接合部の実装の良否を判定する。
【0134】
画像処理部302の抽出部311、作成部312、記憶部313、比較部314の各機能は、実施例1と基本的には同様である。実施例1と異なることは、複数の検査画像に対して、処理を行うことである。
【0135】
判定部303は、複数の検査画像それぞれに対し、比較結果を取得する。この比較結果に基づいて、いずれの検査画像にも不良がない場合に、判定部303は、その検査対象物の半田接合部の実装に不良はないと判定する。
【0136】
これは、半田フィレットは、立体形状の上に金属反射を起こすため、見え方によっては不良部分がはっきりと分からないことがある。そこで、例えば左右の2個の撮像部から視点を変えて撮像し、また、照明の位置、方向を変化させて撮像部が撮像することで、複数の検査画像を得ることができる。この複数の検査画像に対して、実施例1と同様の判定処理を行い、いずれの検査画像にも不良がない場合は、判定部303は、半田フィレットの形状に不良はないと判定する。
【0137】
図17は、撮像部と照明機器との位置関係の一例を示す図である。図17に示す例では、第1撮像部12−1は、左方向から検査対象物を撮像し、第2撮像部12−2は、右方向から検査対象物を撮像する。また、照明機器11は、例えば左上方、真上、右上方と照明位置を変更する。図17に示す例では、撮像部の視点が2通り、照明位置が3通りあるため、検査装置10は、6通りの検査画像を得ることができる。
【0138】
なお、第1撮像部12−1、第2撮像部12−2は、例えば、集積回路20から複数出ているリード及び半田接合部を含む点線枠を撮像するように調整されている。
【0139】
図18は、各検査画像から生成される各基準画像の一例を示す図である。図18に示す例は、図17に示す視点位置、照明位置で撮像された検査画像を示す。また、各検査画像から作成された基準画像を示す。基準画像の半田フィレット部分は、照明の方向によって、その輝度の濃淡が異なる。
【0140】
これにより、視点位置、照明位置が異なる複数の検査画像で良否判定を行うことで、半田接合部の実装の良否判定の精度を向上させることができる。
【0141】
<動作>
次に、実施例2における検査装置10の動作について説明する。図19は、実施例2における検査処理の一例を示すフローチャートである。
【0142】
図19に示すステップS601で、設定部301は、照明機器11の位置を所定位置に設定する。
【0143】
ステップS602で、第1撮像部12−1、第2撮像部12−2は、検査対象物を撮像し、検査画像を検査装置10に出力する。例えば、左右の方向から撮像した左右の検査画像が検査装置10に出力される。
【0144】
ステップS603で、抽出部311は、左右の検査画像から、半田接合部を含む部分画像の抽出に成功したか否かを判定する。抽出処理は、図11に示す処理と同様である。抽出に成功すれば(ステップS603−YES)ステップS604に進み、抽出に失敗すれば(ステップS603−NO)検査処理を終了する。
【0145】
ステップS604で、作成部312は、右の検査画像から基準画像の作成に成功したか否かを判定する。基準画像の作成処理は、図12〜14の処理の何れかを用いる。右の基準画像の作成に成功すれば(ステップ604−YES)ステップ605に進み、右の基準画像の作成に失敗すれば(ステップS604−NO)検査処理を終了する。
【0146】
ステップS605で、作成部312は、左の検査画像から基準画像の作成に成功したか否かを判定する。基準画像の作成処理は、図12〜14の処理の何れかを用いる。左の基準画像の作成に成功すれば(ステップ605−YES)ステップ606に進み、左の基準画像の作成に失敗すれば(ステップS605−NO)検査処理を終了する。なお、ステップS604、S605の順序は問わない。
【0147】
ステップS606で、設定部301は、全ての照明条件で撮像を行ったかを判定する。例えば、設定部301は、右、中央、左の順で照明位置を変更する場合、左に照明機器11がある場合は、全ての照明条件で撮像したと判定する。
【0148】
全ての照明条件で撮像していれば(ステップS606−YES)ステップS607に進み、全ての照明条件で撮像していなければ(ステップS606−NO)照明条件を変更するためステップS601に戻る。
【0149】
ステップS607で、比較部314は、複数の検査画像それぞれに対して、基準画像と、各部分画像とを比較する。例えば、比較部214は、基準画像のリード及び半田接合部と、部分画像のリード及び半田接合部とのテンプレートマッチングを行い、相関値を算出する。
【0150】
ステップS608で、判定部303は、比較部314の比較結果に基づいて、複数の検査画像の1つでも不良が見つかった場合には、その検査対象物の半田付けの実装を不良と判定する。判定部303は、複数の検査画像に対して1つも不良がなかった場合に、その検査対象物の半田付けの実装は良品であると判定する。
【0151】
なお、実施例2では、視点位置と、照明位置の両方を変更する例について説明したが、いずれか一方の位置を変更するだけでもよい。
【0152】
以上、実施例2によれば、異なる視点、異なる照明位置により複雑な半田形状を撮像するため、異常状態を撮像する可能性が高くなり、異常の検査漏れを少なくし、ロバストに半田形状の異常を検出することができる。
【0153】
[実施例3]
次に、実施例3における検査装置について説明する。実施例3では、左右の撮像部により撮像されたステレオ画像を用いて、各リードの高さ計測を行う。これにより、リードの高さの異常を検出することができ、半田付けにおける実装の良否判定の精度を上げることができる。
【0154】
<ハードウェア>
実施例3における検査装置のハードウェアや検査装置に接続される機器は、実施例2と同様であるため、その説明を省略する。
【0155】
<機能>
図20は、実施例3における検査装置10の機能の一例を示すブロック図である。図20に示す検査装置10は、取得部300、設定部301、画像処理部401、判定部402を有する。取得部300、設定部301、画像処理部401及び判定部402は、例えば制御部101及びワークメモリとしての主記憶部102により実現されうる。なお、図20に示す構成で、図16に示す構成と同様の機能のものは同じ符号を付し、その説明を省略する。抽出部311は、抽出した部分画像を記憶部313に記憶する。
【0156】
画像処理部401は、計測部411を有する。計測部411は、左右の検査画像からそれぞれリードの位置を検出し、三角測量の原理で左右の対応点の3次元位置を求める。この方法により、基準面からみた3次元位置として、リードの高さが得られる。
【0157】
図21は、ステレオマッチングに基づき視差検出を説明するための図である。ステレオマッチングとは、左右に配置された2台のカメラで撮影された2枚1組の画像を用いる。また、左のカメラで撮影された画像が、右のカメラで撮影された画像のどの部分に対応するかを面積相関の計算により求める。次に、その対応関係を使った三角測量により、各点の3次元的位置を推測する。この方法がステレオマッチングである。
【0158】
計測部411は、まず、左検査画像50のリード部分の画像51を切り出す。リード部分の画像をリード画像と呼ぶ。
【0159】
計測部411は、リード画像51の中心座標を左画像の検出位置として求める。このリード画像51を用いて、右検査画像52の所定の探索範囲54をテンプレートマッチングにより探索する。
【0160】
計測部411は、最もマッチング度の高い位置で、右検査画像52上でのリード画像53を検出する。左右の検査画像において検出したこれらの水平方向の位置の差が視差Dである。例えば、視差Dは、リード画像51の中心と、リード画像53の中心との差である。
【0161】
左右のカメラ座標におけるリードの検出位置から、左右の対応点までの距離が三角測量の原理により求まる。
【0162】
図22は、視差に基づくリード高さの計測を説明するための図である。図22に示す例では、左右の撮像部の光軸が交差している場合、視差が負に大きいほど距離が近く、視差が正に大きくなるほど距離が遠いということになる。
【0163】
計測部411は、撮像部の中心軸の交差点を基準面とすると、対応点までの距離に基づいて、基準面からのリードの高さが求められる。計測部411は、計測したリードの高さを判定部402に出力する。
【0164】
判定部402は、半田良否判定部421、高さ良否判定部422を有する。半田良否判定部421は、実施例2で説明した判定部303と同様である。
【0165】
図23は、半田の良否判定を説明するための図である。図23に示すように、半田良否判定部421は、例えば6通りの撮像条件による相関値を6次元の特徴ベクトルとみなすと、それぞれの半田接合部の相関値は、6次元特徴空間内の1点で表される。半田良否判定部421は、各リードについて、予め設定した良否判定面を下回るリードがあれば不良と判定する。良否判定面は、各次元において例えば0.9の面を表す。
【0166】
また、半田良否判定部421は、6次元特徴空間内のデータの分散により、良否判定面を適応的に調節してもよい。また、半田良否判定部421は、相関値は、左右の撮像部、照明位置によってサブグループ化することができるため、このサブグループ毎に良否判定面を設定することにより、判定精度を高めることもできる。なお、これらの方法は、実施例2においても適用できる。
【0167】
高さ良否判定部422は、計測部411から、各リードの高さを取得する。高さ良否判定部422は、次の2つの相対的な基準に基づいて判定を行う。高さ良否判定部422は、1つ目の基準として、リード高さのばらつきが閾値を超えていれば、浮いたリードがあるとして不良と判定する。
【0168】
高さ良否判定部422は、2つ目の基準として、リードの高さの分布の傾きが閾値を超えていれば、コネクタの取り付けが傾いているとして不良と判定する。
【0169】
図24は、リードの高さに基づく良否判定を説明するための図である。図24に示すように、高さ良否判定部422は、抽出された部分画像に含まれるリード毎に、リードの高さを計測し、ばらつき幅が閾値を超えた場合、又は高さの近似直線の傾きが閾値を超えた場合、不良があると判定する。なお、高さ良否判定部422は、計測された高さが所定範囲内にないリードがある場合に不良であると判定してもよい。
【0170】
判定部402は、半田良否判定部421、高さ良否判定部422のいずれかで不良と判定された場合には、半田付けにおける実装の不良があると判定する。これにより、半田付けとリードの高さとを含むコネクタの実装の良否判定の精度を向上させることができる。
【0171】
<動作>
次に、実施例3における検査装置10の動作について説明する。図25は、実施例3における検査処理の一例を示すフローチャートである。図25に示すステップS701〜S705の処理は、図19に示すステップS601〜S605の処理と同様であるため、その説明を省略する。
【0172】
ステップS706で、計測部411は、左右の検査画像からステレオマッチングにより各リードの高さを計測する。
【0173】
ステップS707〜S708の処理は、図19に示すステップS606〜S607の処理と同様であるため、その説明を省略する。
【0174】
ステップS709は、半田良否判定部421は、半田接合部の実装の良否判定を判定する。判定方法は、実施例2と同様である。
【0175】
ステップS710で、高さ良否判定部422は、リードの高さで、浮いているリードが無いか、コネクタが傾いていないかを判定する。
【0176】
判定部402は、ステップS709、S710で、1つでも不良と判定されていれば、コネクタの実装は不良と判定する。
【0177】
以上、実施例3によれば、左右の視点から撮像されたステレオ画像を用いて、各リードの高さを計測することにより、リードの高さ不良を適切に検出することができるため、コネクタの実装不良を精度良く検出することができる。
【0178】
[実施例4]
次に、実施例4における検査装置について説明する。実施例4では、照明位置や視点位置を変えて撮像された複数の検査画像に対して、部分画像の位置やサイズを共通化する。これにより、共通の位置やサイズの部分画像を用いて良否判定をすることができ、効率よく実装不良を検出することができる。
【0179】
また、実施例4では、部分画像のサイズが同じになるため、同じ閾値を用いて良否判定を行うこができる。なお、共通化については、同一視点の検査画像に対して部分画像の位置やサイズを共通化したり、全ての検査画像に対して部分画像の位置やサイズを共通化したりすることができる。
【0180】
まず、実施例4における処理の概要について説明する。図26は、部分画像領域共通化(その1)の場合の処理概要を説明するための図である。図26に示す例では、左右のカメラで照明条件1,2において撮像し、4枚の検査画像を取得する。
【0181】
図26に示す例では、同一視点の検査画像に対し、部分画像の領域を共通化する。これにより、同一視点では、同じ領域の部分画像を抽出し、同じ閾値を用いて良否判定を行うことができる。よって、全ての検査画像で独立して部分領域を抽出したり、閾値を設定したりする必要がない。
【0182】
同一視点において、照明条件が異なるだけで同じ対象物を撮像しているため、マッチング処理を行う部分画像の領域の位置やサイズは統一されていた方が望ましい。
【0183】
図27は、部分画像領域共通化(その2)の場合の処理概要を説明するための図である。図27に示す例では、左右のカメラで照明条件1,2において撮像し、4枚の検査画像を取得する。
【0184】
図27に示す例では、全ての検査画像に対し、部分画像の領域を共通化する。これにより、全ての検査画像から同じ領域の部分画像を抽出し、統一的な閾値を用いて良否判定を行うことができる。よって、良否判定の閾値の設定は1つでよく、効率よく良否判定を行うことができる。
【0185】
複数の視点、又は複数の照明条件で検査画像が撮像されていた場合でも、同じ対象物を撮像しているため、マッチング処理を行う部分画像の領域の位置やサイズは統一されていた方が望ましい。複数の視点又は照明条件の検査画像を総合的に利用して、共通した最適な部分画像領域を検出すれば、どの視点又はどの照明条件の検査画像についても均一なマッチングスコアが得られるため、良否判定の精度向上が期待できる。以下では、図27に示す例を用いて実施例4を説明する。
【0186】
<ハードウェア>
実施例4における検査装置のハードウェアや検査装置に接続される機器は、実施例2と同様であるため、その説明を省略する。
【0187】
<機能>
実施例4における機能的な構成については、実施例2や実施例3の機能的な構成に対して抽出部以外の機能は同様である。よって、以下では、実施例4における抽出部の機能について説明する。なお、実施例4における抽出部は、実施例2でも実施例3でも適用可能であるが、以下では、実施例3に適用する場合について説明する。
【0188】
図28は、実施例4における抽出部501の機能の一例を示すブロック図である。図28に示す例では、抽出部501は、領域検出部510、部分画像抽出部520を有する。
【0189】
領域検出部510は、取得部300から入力された照明位置及び視点位置が異なる複数の検査画像に対し、共通の部分画像領域を検出する。なお、領域検出部510は、照明位置又は視点位置が異なる複数の画像に対し、共通の部分画像領域を検出してもよい。
【0190】
領域検出部510は、共通間隔検出部511、部分画像領域検出部512を有する。共通間隔検出部511は、複数の検査画像それぞれにおける水平方向の画素間の輝度差の総和に基づき、共通の部分画像領域に対する共通の間隔を検出する。共通間隔の検出処理の詳細は後述する。
【0191】
部分画像領域検出部512は、複数の検査画像それぞれの水平又は垂直方向の輝度積分の総和に基づき、共通の部分画像領域の位置及びサイズを検出する。共通領域の検出処理の詳細は後述する。
【0192】
部分画像抽出部520は、複数の検査画像それぞれから、共通の部分画像領域内の部分画像を複数抽出する。部分画像抽出部520は、抽出した複数の部分画像を作成部312及び記憶部313に出力する。
【0193】
<共通化処理>
次に、部分画像領域の共通化処理について説明する。まず、共通のリード間隔が検出される。
【0194】
図29は、共通リード間隔の検出を説明するための図である。まず、視点や照明条件が異なっても、リード間隔は一定であるため、図29に示すように複数の検査画像を総合的に処理することにより、共通リード間隔を求める。図29では、説明を簡単にするため、左右のカメラで撮像された検査画像に対して、共通リード間隔を求める例を示す。
【0195】
図29(A)は、左カメラで撮像された検査画像を示し、図29(B)は、右カメラで撮像された検査画像を示す。共通間隔検出部511は、左右の検査画像それぞれに対して、図29(C)、(D)に示すような輝度差のヒストグラムを作成する。共通間隔検出部511は、図5や6で説明した処理と同様の処理を行って、輝度差のヒストグラムを作成する。
【0196】
図29(C)、(D)に示すヒストグラムは、図6と同様に、極小となる横軸の画素間隔がコネクタのリード間隔に相当する。図29(C)、(D)に示すように、左右のヒストグラムは、各リードの見え方の違いやノイズなどのために幾らか歪んでいるが、左右のヒストグラムを加算して平均化すればそのようなノイズが相殺される。
【0197】
よって、共通間隔検出部511は、図29(E)に示すように、左右のヒストグラムを加算して平均化したヒストグラムを作成する。共通間隔検出部511は、図29(E)に示すヒストグラムの極小位置を検出することで、適切な共通リード間隔を求めることができる。
【0198】
検査装置は、検出された共通のリード間隔を利用することで、左右それぞれの画像におけるリードの矩形領域の検出精度を向上させることができる。
【0199】
なお、照明条件が異なる条件が追加されても、共通間隔検出部511は、照明条件及び視点位置が異なる複数の検査画像から作成された輝度差のヒストグラムを加算して平均化すればよい。
【0200】
なお、左右のカメラでスケールが異なる場合には、共通間隔検出部511は、カメラキャリブレーションで得られたスケール差に合わせて、左右間の画面内の距離(画素数)を変換すればよい。
【0201】
次に、リード間隔の検出について処理を効率化する例を説明する。図30は、リード間隔の処理効率化を説明するための図である。ここで、コネクタ部品のリード間隔は、それぞれの製品分野における規格により概ね決まっている。
【0202】
例えば、リード間隔が、0.4mmおよび0.5mmのいずれかであるということが予め分かっていれば、抽出部は、図30に示すように、リード間隔に応じた画素間隔の部分に絞ってヒストグラム作成を行えばよい。これにより、リード間隔における処理量を削減できる。なお、この処理効率化は、実施例1〜3についても適用することができる。
【0203】
また、検査画像中には、リードの半田接合部以外にも、コネクタのハウジングの金具などが周期的に映る場合がある。図31は、金具部分を含む検査画像の一例を示す図である。ここで、抽出したリードや半田接合部以外の輝度値が高い部分をノイズ部分と呼ぶ。ノイズ部分は、例えば図31に示すような金具部分である。
【0204】
抽出部は、リード間隔を検出する際に、ノイズ部分を除去するためには、以下の判定基準を用いることができる。
・明るい部分の大きさが所定の範囲であればノイズ部分と見なす。
特に、垂直方向のサイズが小さければリードではなく金具と考えられる。
・明るい部分の広がりが所定の形状であればノイズ部分と見なす。
特に、横長の形状であればリードではなく金具と考えられる。
・抽出した領域の相関値が所定の値以上であれば金具部分と見なす。
リードや半田フィレットの画像は個々にばらつきがあるが、金具の部分はほとんど同じ画像であるため、相関値が非常に高い値に集中する。
【0205】
よって、抽出部は、上記のいずれかの条件を満たす部分をノイズ部分として除去し、他の位置でリード間隔を検出する。これにより、検査画像中の様々な部分でリード間隔の検出を行う時に、適切なリード間隔を検出することが可能となる。
【0206】
次に、共通の部分画像領域の検出について説明する。複数の検査画像それぞれの部分画像領域の検出の仕方は、図7で説明した通りである。よって、部分画像領域検出部512は、それぞれの検査画像に対し、水平、垂直方向の輝度積分を行い、所定の輝度積分値以上の範囲を部分画像領域として検出する。
【0207】
部分画像領域検出部512は、それぞれの検査画像で求められた水平、垂直方向の輝度積分値の加算し、加算された積分値に基づいて、共通の部分画像領域を検出する。
【0208】
図32は、共通部分画像領域の垂直範囲を検出するための図である。図32では、説明を簡単にするため、左右のカメラで撮像された検査画像に対して、共通部分画像領域の垂直範囲を求める例を示す。共通部分画像領域とは、複数の検査画像で共通して用いられる、部分画像の領域をいう。
【0209】
図32(A)は、左カメラの検査画像を示し、図32(B)は、左カメラの検査画像に対して水平方向に積分を行った積分値を示す。図32(C)は、右カメラの検査画像を示し、図32(D)は、右カメラの検査画像に対して水平方向に積分を行った積分値を示す。
【0210】
部分画像領域検出部512は、図32(B)に示す輝度積分値と図32(D)に示す輝度積分値の和を求め(図32(E))、この左右の積分値の和に基づいて垂直方向の範囲を定める。垂直方向の所定範囲sについては、図7に示す処理と同様にして求められる。
【0211】
また、図32(F)は、左カメラの検査画像に対して垂直方向に積分を行った積分値を示し、図32(G)は、右カメラの検査画像に対して垂直方向に積分を行った積分値を示す。
【0212】
部分画像領域検出部512は、垂直方向と同様にして、図32(F)に示す積分値と図32(G)に示す積分値との和を求め、この左右の積分値の和に基づいて水平方向の範囲を定める。この水平方向の所定範囲tについては、図7に示す処理と同様にして求められる。
【0213】
なお、リードや半田接合部は複雑な立体形状であるため、視点や照明位置が変われば明るく映る部分も変化し、半田接合部であっても暗く映ってしまう場合がある。この場合には、部分画像領域検出部512は、左右の検査画像のどちらか一方でも明るい部分をリード部分とみなして部分画像領域を設定してもよい。部分領域検出部512は、例えば、左右の対応する垂直、水平位置の輝度積分の論理和を取ったり、単純な加算平均も行ったりすることも可能である。
【0214】
これにより、検査すべき部分を含んだ部分画像領域を検出することができる。左右で共通の垂直、水平範囲の部分画像を用いることにより、共通部分画像領域が得られる。
【0215】
<動作>
次に、実施例4における検査装置の動作について説明する。図33は、実施例4における検査処理の一例を示すフローチャートである。図33に示すステップS801〜S802の処理は、図19に示すステップS601〜S602の処理と同様であるため、その説明を省略する。
【0216】
ステップS803で、設定部301は、全ての照明条件で撮像を行ったかを判定する。例えば、設定部301は、右、中央、左の順で照明位置を変更する場合、左に照明機器11がある場合は、全ての照明条件で撮像したと判定する。
【0217】
全ての照明条件で撮像していれば(ステップS803−YES)ステップS804に進み、全ての照明条件で撮像していなければ(ステップS803−NO)照明条件を変更しステップS801に戻る。
【0218】
ステップS804で、抽出部501は、全ての検査画像に対して共通部分画像領域の抽出に成功したかを判定する。共通部分領域画像の検出処理については図34を用いて説明する。抽出に成功すれば(ステップS804−YES)ステップS805に進み、抽出に失敗すれば(ステップS804−NO)検査処理を終了する。
【0219】
ステップS805〜S807では、図25に示すステップS704〜S706の処理を照明条件毎に行う。
【0220】
ステップS808〜S810は、図25に示すステップS708〜S710と同様であるため、その説明を省略する。
【0221】
図34は、実施例4における共通部分画像領域の検出処理の一例を示すフローチャートである。図34に示すステップS901で、抽出部501は、検査画像の画面全体での水平方向の輝度積分を行う。
【0222】
ステップS902で、抽出部501は、全検査画像に対して、水平方向の輝度積分を累積したかを判定する。全検査画像に対して累積していれば(ステップS902−YES)ステップS903に進み、全検査画像に対して累積していなければ(ステップS90−NO)未処理の検査画像に対して処理を行うためステップS901に戻る。
【0223】
ステップS903〜S904の処理は、図11に示すステップS201〜S202の処理と同様であるため、その説明を省略する。
【0224】
ステップS905で、抽出部501は、全検査画像に対して、輝度差ヒストグラムの作成が完了したかを判定する。全検査画像に対して作成が完了していれば(ステップS905−YES)ステップS906に進み、全検査画像に対して作成が完了していなければ(ステップS905−NO)全検査画像に対して輝度差ヒストグラムを作成するためステップS904に戻る。
【0225】
ステップS906〜S907の処理は、図11に示すステップS203〜S204の処理と同様であるため、その説明を省略する。
【0226】
ステップS908で、抽出部501は、リード間隔が検出された水平位置の上下近傍に対して、水平方向の輝度積分値を取得する。
【0227】
ステップS909で、抽出部501は、輝度積分値が所定値以上を表す高輝度が、所定の長さ連続しているかを判定する。所定の長さとは、リード部分の長さに相当し、実験などにより適切な値が設定される。高輝度が所定の長さ連続していれば(ステップS909−YES)、全検査画像から共通のリード間隔を検出できたとしてステップS910、S914に進み、高輝度が所定の長さ連続していなければ(ステップS909−NO)別の水平ラインを選択するためステップS903に戻る。この処理により、例えば金具などのノイズ部分を除去することができる。
【0228】
ステップS910で、抽出部501は、全検査画像に対して、垂直方向の輝度積分を行う。
【0229】
ステップS911で、抽出部501は、全検査画像の垂直方向の輝度積分値をリード間隔毎に累積する。
【0230】
ステップS912で、抽出部501は、リード間隔内での、輝度積分値の累積値のピークを、リード内の中心位置として検出する。
【0231】
ステップS913で、抽出部501は、全検査画像の左端のリードの水平範囲として、リードの中心位置に基づく所定範囲tを検出する。
【0232】
ステップS914で、抽出部501は、全検査画像の水平方向の輝度積分値を用いて、リードの垂直範囲として、所定範囲sを検出する。
【0233】
なお、ステップS910〜S913とステップS914とは、順不同であり、平行して処理が行われてもよいし、どちらかが先に行われてもよい。
【0234】
ステップS915で、抽出部501は、検出された左端の水平範囲の所定範囲tと、垂直範囲の所定範囲sとによる矩形領域の画像を共通部分画像領域として検出する。
【0235】
ステップS916で、抽出部501は、左端の共通部分画像領域が決定したら、例えば共通部分画像領域の中心位置を共通リード間隔だけ水平方向にずらしていくことで、全ての共通部分画像領域を検出することができる。
【0236】
これにより、全検査画像から、リード及び半田接合部を含む共通部分画像領域を検出することができる。この後、抽出部501は、全検査画像に対して、共通部分画像領域に含まれる画像を部分画像として抽出する。
【0237】
以上、実施例4によれば、照明位置や視点位置を変えて撮像された複数の検査画像に対して、部分画像の位置やサイズを共通化することで、共通の位置やサイズの部分画像を用いて良否判定をすることができ、効率よく実装不良を検出することができる。
【0238】
[変形例]
なお、前述した各実施例で説明した検査処理を実現するためのプログラムを記録媒体に記録することで、各実施例での検査処理をコンピュータに実施させることができる。例えば、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータに読み取らせて、前述した検査処理を実現させることも可能である。
【0239】
なお、記録媒体は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。この記録媒体には、搬送波は含まれない。
【0240】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した各実施例の構成要素を全部又は複数を組み合わせることも可能である。
【0241】
なお、以上の各実施例に関し、さらに以下の付記を開示する。
(付記1)
複数の半田接合部を含む画像から、前記半田接合部を含む部分画像を複数抽出する抽出部と、
前記抽出部により抽出された複数の部分画像を用いて、前記半田接合部の実装の良否を判定する基準となる基準画像を作成する作成部と、
前記作成部により作成された基準画像と各部分画像とを比較する比較部と、
前記比較部による比較結果に基づき、各半田接合部の実装の良否を判定する判定部と、
を備える検査装置。
(付記2)
前記抽出部は、
照明位置が異なる複数の前記画像それぞれに対して前記部分画像を複数抽出し、
前記作成部は、
複数の前記画像それぞれに対して前記基準画像を作成し、
前記比較部は、
前記画像毎に、該画像の基準画像と、該画像の各部分画像とを比較する付記1記載の検査装置。
(付記3)
前記抽出部は、
撮像部の視点位置が異なる複数の前記画像それぞれに対して前記部分画像を複数抽出し、
前記作成部は、
複数の前記画像それぞれに対して前記基準画像を作成し、
前記比較部は、
前記画像毎に、該画像の基準画像と、該画像の各部分画像とを比較する付記1又は2記載の検査装置。
(付記4)
複数の前記画像は、左右の2視点から撮像された画像であり、
前記左右の画像を用いて3次元計測を行って、前記部分画像内の検査対象部品の3次元位置を計測する計測部をさらに備え、
前記判定部は、
前記3次元位置及び前記比較結果に基づき、各半田接合部の実装の良否を判定する付記3記載の検査装置。
(付記5)
前記判定部は、
前記複数の画像毎に異なる実装の良否判定を行う付記4記載の検査装置。
(付記6)
前記判定部は、
各部分画像の前記3次元位置のばらつき幅、又は各部分画像の前記3次元位置から求められる近似直線の傾きに基づき良否判定を行う付記4記載の検査装置。
(付記7)
前記作成部は、
前記複数の部分画像に対し、部分画像同士で相関値を算出し、該相関値が閾値より高い部分画像を平均化することで前記基準画像を作成する付記1乃至6いずれか一項に記載の検査装置。
(付記8)
前記抽出部は、
前記照明位置及び/又は前記視点位置が異なる前記複数の画像に対し、共通の部分画像領域を検出する領域検出部と、
前記複数の画像それぞれから、前記共通の部分画像領域内の部分画像を複数抽出する部分画像抽出部とを備える付記3記載の検査装置。
(付記9)
前記領域検出部は、
前記複数の画像それぞれの水平又は垂直方向の輝度積分の総和に基づき、前記共通の部分画像領域の位置及びサイズを検出する付記8記載の検査装置。
(付記10)
前記領域検出部は、
前記複数の画像それぞれにおける水平方向の画素間の輝度差の総和に基づき、前記共通の部分画像領域に対する共通の間隔を検出する付記9記載の検査装置。
(付記11)
複数の半田接合部を含む画像から、前記半田接合部を含む部分画像を複数抽出し、
抽出された複数の前記部分画像を用いて、前記半田接合部の実装の良否を判定する基準となる基準画像を作成し、
作成された前記基準画像と各部分画像とを比較し、
比較結果に基づき、各半田接合部の実装の良否を判定する処理をコンピュータが実行する検査方法。
(付記12)
複数の半田接合部を含む画像から、前記半田接合部を含む部分画像を複数抽出し、
抽出された複数の前記部分画像を用いて、前記半田接合部の実装の良否を判定する基準となる基準画像を作成し、
作成された前記基準画像と各部分画像とを比較し、
比較結果に基づき、各半田接合部の実装の良否を判定する処理をコンピュータに実行させるための検査プログラム。
【符号の説明】
【0242】
10 検査装置
11 照明機器
12 撮像部
12−1 第1撮像部
12−2 第2撮像部
13 表示部
20 集積回路
21 リード
22 半田接合部
101 制御部
102 主記憶部
103 補助記憶部
104 通信部
105 ドライブ装置
201、300 取得部
202、302、401 画像処理部
203、303 判定部
211、311、501 抽出部
212、312 作成部
213、313 記憶部
214、314 比較部
221、321 算出部
301 設定部
411 計測部
421 半田良否判定部
422 高さ良否判定部
510 領域検出部
511 共通間隔検出部
512 部分画像領域検出部
520 部分画像抽出部

【特許請求の範囲】
【請求項1】
複数の半田接合部を含む画像から、前記半田接合部を含む部分画像を複数抽出する抽出部と、
前記抽出部により抽出された複数の部分画像を用いて、前記半田接合部の実装の良否を判定する基準となる基準画像を作成する作成部と、
前記作成部により作成された基準画像と各部分画像とを比較する比較部と、
前記比較部による比較結果に基づき、各半田接合部の実装の良否を判定する判定部と、
を備える検査装置。
【請求項2】
前記抽出部は、
照明位置が異なる複数の前記画像それぞれに対して前記部分画像を複数抽出し、
前記作成部は、
複数の前記画像それぞれに対して前記基準画像を作成し、
前記比較部は、
前記画像毎に、該画像の基準画像と、該画像の各部分画像とを比較する請求項1記載の検査装置。
【請求項3】
前記抽出部は、
撮像部の視点位置が異なる複数の前記画像それぞれに対して前記部分画像を複数抽出し、
前記作成部は、
複数の前記画像それぞれに対して前記基準画像を作成し、
前記比較部は、
前記画像毎に、該画像の基準画像と、該画像の各部分画像とを比較する請求項1又は2記載の検査装置。
【請求項4】
複数の前記画像は、左右の2視点から撮像された画像であり、
前記左右の画像を用いて3次元計測を行って、前記部分画像内の検査対象部品の3次元位置を計測する計測部をさらに備え、
前記判定部は、
前記3次元位置及び前記比較結果に基づき、各半田接合部の実装の良否を判定する請求項3記載の検査装置。
【請求項5】
前記作成部は、
前記複数の部分画像に対し、部分画像同士で相関値を算出し、該相関値が閾値より高い部分画像を平均化することで前記基準画像を作成する請求項1乃至4いずれか一項に記載の検査装置。
【請求項6】
前記抽出部は、
前記照明位置及び/又は前記視点位置が異なる前記複数の画像に対し、共通の部分画像領域を検出する領域検出部と、
前記複数の画像それぞれから、前記共通の部分画像領域内の部分画像を複数抽出する部分画像抽出部とを備える請求項3記載の検査装置。
【請求項7】
前記領域検出部は、
前記複数の画像それぞれの水平又は垂直方向の輝度積分の総和に基づき、前記共通の部分画像領域の位置及びサイズを検出する請求項6記載の検査装置。
【請求項8】
前記領域検出部は、
前記複数の画像それぞれにおける水平方向の画素間の輝度差の総和に基づき、前記共通の部分画像領域に対する共通の間隔を検出する請求項7記載の検査装置。
【請求項9】
複数の半田接合部を含む画像から、前記半田接合部を含む部分画像を複数抽出し、
抽出された複数の前記部分画像を用いて、前記半田接合部の実装の良否を判定する基準となる基準画像を作成し、
作成された前記基準画像と各部分画像とを比較し、
比較結果に基づき、各半田接合部の実装の良否を判定する処理をコンピュータが実行する検査方法。
【請求項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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図31】
image rotate


【公開番号】特開2013−65809(P2013−65809A)
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2012−44623(P2012−44623)
【出願日】平成24年2月29日(2012.2.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】