(57)【要約】【課題】  検査対象が有する部品の位置ずれがあった場合でも、高い検査精度を得ることができる検査プログラム生成システム、検査プログラムの生成方法、及びプログラムを提供する。【解決手段】  検査プログラム生成システム１１において、認識部１１４は、画像認識処理によって、回路基板９１及び実装部品９２の種類及び位置に関するサンプルデータを生成する。プログラム選択部１１５は、サンプルデータに含まれる種類の使用部品を検査するための基礎プログラムＰａ，Ｐｂ，Ｐｃを、選択プログラムとして選択する。検査領域設定部１１６は、設計データとサンプルデータとに基づいて、選択プログラムを適用する検査領域を設定する。検査プログラム生成部１１７は、検査プログラムとして、選択プログラム及び検査領域の情報が含まれるプログラムを生成する。【選択図】図１
2019100917.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の部品のうち１種類以上の部品を使用部品として有する検査対象を、前記検査対象が撮像された画像に基づいて検査する、ための検査プログラムを生成する検査プログラム生成システムであって、
前記検査対象を撮像した１つ以上のサンプル画像に画像認識処理を施すことによって、前記１つ以上のサンプル画像に写っている前記使用部品の種類及び位置に関するサンプルデータを生成する認識部と、
前記複数種類の部品をそれぞれ検査するための複数の基礎プログラムのうち、前記サンプルデータに含まれる種類の前記使用部品を検査するための基礎プログラムを、選択プログラムとして選択するプログラム選択部と、
前記検査対象の設計データによる前記使用部品の位置と前記サンプルデータによる前記使用部品の位置とに基づいて、前記検査対象を撮像した画像に対して前記選択プログラムを適用する検査領域を設定する検査領域設定部と、
前記検査プログラムとして、前記選択プログラム及び前記検査領域の情報が含まれるプログラムを生成する検査プログラム生成部と、を備える
ことを特徴とする検査プログラム生成システム。
【請求項２】
前記検査対象は、２種類以上の前記使用部品を有しており、
前記選択プログラムは、前記２種類以上の前記使用部品にそれぞれ対応する２つ以上の選択プログラムであり、
前記検査プログラム生成部は、前記検査プログラムとして、前記２つ以上の選択プログラムが含まれるプログラムを生成する
ことを特徴とする請求項１記載の検査プログラム生成システム。
【請求項３】
前記認識部は、前記画像認識処理として、ディープラーニングによる認識アルゴリズムを実行することを特徴とする請求項１または２記載の検査プログラム生成システム。
【請求項４】
前記認識部は、前記画像認識処理として、テンプレートマッチングを用いた認識アルゴリズムを実行することを特徴とする請求項１または２記載の検査プログラム生成システム。
【請求項５】
前記認識部は、前記画像認識処理として、テンプレートマッチングを用いた機械学習の後にディープラーニングによる機械学習によって生成された認識アルゴリズムを実行することを特徴とする請求項１または２記載の検査プログラム生成システム。
【請求項６】
前記検査領域設定部は、前記検査領域として、前記設計データに基づく前記使用部品の位置と前記サンプルデータに基づく前記使用部品の位置とが含まれる領域を設定することを特徴とする請求項１乃至５のいずれか一項に記載の検査プログラム生成システム。
【請求項７】
ラインセンサを有する撮像装置と前記検査対象との相対位置を一方向に変化させながら前記撮像装置によって前記検査対象が撮像された複数のライン画像を連結した連結画像を生成する画像連結部をさらに備え、
前記サンプル画像は、前記連結画像である
ことを特徴とする請求項１乃至６のいずれか一項に記載の検査プログラム生成システム。
【請求項８】
複数種類の部品のうち１種類以上の部品を使用部品として有する検査対象を、前記検査対象が撮像された画像に基づいて検査する、ための検査プログラムの生成方法であって、
前記検査対象を撮像した１つ以上のサンプル画像に画像認識処理を施すことによって、前記１つ以上のサンプル画像に写っている前記使用部品の種類及び位置に関するサンプルデータを生成する認識ステップと、
前記複数種類の部品をそれぞれ検査するための複数の基礎プログラムのうち、前記サンプルデータに含まれる種類の前記使用部品を検査するための基礎プログラムを、選択プログラムとして選択するプログラム選択ステップと、
前記検査対象の設計データによる前記使用部品の位置と前記サンプルデータによる前記使用部品の位置とに基づいて、前記検査対象を撮像した画像に対して前記選択プログラムを適用する検査領域を設定する検査領域設定ステップと、
前記検査プログラムとして、前記選択プログラム及び前記検査領域の情報が含まれるプログラムを生成する検査プログラム生成ステップと、を備える
ことを特徴とする検査プログラムの生成方法。
【請求項９】
コンピュータシステムに、請求項８記載の検査プログラムの生成方法を実行させることを特徴とする検査プログラムの生成用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に検査プログラム生成システム、検査プログラムの生成方法、及び検査プログラムの生成用プログラムに関する。
【背景技術】
【０００２】
従来、部品が実装された基板を検査するために、検査用のプログラムを実行する検査装置がある。しかしながら、検査用のプログラムの生成作業には労力がかかっていた。
【０００３】
そこで、特許文献１に示す従来技術では、検査用のプログラムの生成作業にかかる労力を軽減させる方法が提案されている。この従来技術は、検査対象となる基板上の各部品を撮像することによって、部品の計測画像を取得する。そして、パーツライブラリの各部品検査データの検査パラメータを使って各部品の形状またはランドの形状を抽出し、抽出した形状と部品検査データに含まれる検査ウインドウとの一致度を計測する。そして、一致度が基準値以上であるときに、当該部品の基板設計データの部品型式を当該部品検査データの識別情報に変換するための情報を変換テーブルに登録する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１５１０５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の従来技術では、検査対象となる基板に実装されている部品の位置ずれがあった場合に、検査精度が低下する可能性があった。
【０００６】
本発明は、上記事由に鑑みてなされたものであり、その目的は、検査対象が有する部品の位置ずれがあった場合でも、高い検査精度を得ることができる検査プログラム生成システム、検査プログラムの生成方法、及び検査プログラムの生成用プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る検査プログラム生成システムは、複数種類の部品のうち１種類以上の部品を使用部品として有する検査対象を、前記検査対象が撮像された画像に基づいて検査する、ための検査プログラムを生成する。前記検査プログラム生成システムは、認識部と、プログラム選択部と、検査領域設定部と、検査プログラム生成部と、を備える。前記認識部は、前記検査対象を撮像した１つ以上のサンプル画像に画像認識処理を施すことによって、前記１つ以上のサンプル画像に写っている前記使用部品の種類及び位置に関するサンプルデータを生成する。前記プログラム選択部は、前記複数種類の部品をそれぞれ検査するための複数の基礎プログラムのうち、前記サンプルデータに含まれる種類の前記使用部品を検査するための基礎プログラムを、選択プログラムとして選択する。前記検査領域設定部は、前記検査対象の設計データによる前記使用部品の位置と前記サンプルデータによる前記使用部品の位置とに基づいて、前記検査対象を撮像した画像に対して前記選択プログラムを適用する検査領域を設定する。前記検査プログラム生成部は、前記検査プログラムとして、前記選択プログラム及び前記検査領域の情報が含まれるプログラムを生成する。
【０００８】
本発明の一態様に係る検査プログラムの生成方法は、複数種類の部品のうち１種類以上の部品を使用部品として有する検査対象を、前記検査対象が撮像された画像に基づいて検査する。前記検査プログラムの生成方法は、認識ステップと、プログラム選択ステップと、検査領域設定ステップと、検査プログラム生成ステップと、を備える。前記認識ステップは、前記検査対象を撮像した１つ以上のサンプル画像に画像認識処理を施すことによって、前記１つ以上のサンプル画像に写っている前記使用部品の種類及び位置に関するサンプルデータを生成する。前記プログラム選択ステップは、前記複数種類の部品をそれぞれ検査するための複数の基礎プログラムのうち、前記サンプルデータに含まれる種類の前記使用部品を検査するための基礎プログラムを、選択プログラムとして選択する。前記検査領域設定ステップは、前記検査対象の設計データによる前記使用部品の位置と前記サンプルデータによる前記使用部品の位置とに基づいて、前記検査対象を撮像した画像に対して前記選択プログラムを適用する検査領域を設定する。前記検査プログラム生成ステップは、前記検査プログラムとして、前記選択プログラム及び前記検査領域の情報が含まれるプログラムを生成する。
【０００９】
本発明の一態様に係る検査プログラムの生成用プログラムは、コンピュータシステムに、上述の検査プログラムの生成方法を実行させる。
【発明の効果】
【００１０】
以上説明したように、本発明は、検査対象が有する部品の位置ずれがあった場合でも、高い検査精度を得ることができるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態の検査プログラム生成システムを備える検査システムの構成を示すブロック図である。
【図２】図２は、同上の検査システムの検査対象である基板ユニットを示す上面図である。
【図３】図３は、同上の検査システムの一部の配置を示す斜視図である。
【図４】図４は、同上の検査プログラム生成システムのサンプル画像を示す図である。
【図５】図５は、同上の検査システムの検査領域を示す図である。
【図６】図６は、同上の検査システムにおける検査プログラムの生成方法を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下の実施形態は、一般に検査プログラム生成システム、検査プログラムの生成方法、及び検査プログラムの生成用プログラムに関する。より詳細に、以下の実施形態は、１種類以上の部品を使用部品として有する検査対象を検査するための検査プログラムを生成する検査プログラム生成システム、検査プログラムの生成方法、及び検査プログラムの生成用プログラムに関する。
【００１３】
本実施形態の検査プログラム生成システムは、画像処理技術によって検査対象の検査を行うコンピュータシステムが実行する検査プログラムを生成する。検査対象は基板ユニットであり、回路基板の検査には、基板ユニットを構成する各使用部品の個別の検査が含まれる。また、検査対象は、基板ユニット以外であってもよい。なお、以下の説明では、特に断りのない限り、図３において、前後、左右、上下の各方向が規定されている。
【００１４】
図１は、本実施形態の検査システムＡ１のブロック構成を示す。検査システムＡ１は、コンピュータシステム１、照明装置２、撮像装置３を主構成として備える。そして、検査システムＡ１は、基板ユニット９，９Ａを検査対象として検査を行う。なお、検査システムＡ１は、搬送装置４、表示装置５をさらに備えることが好ましい。
【００１５】
図２に示すように、基板ユニット９は、回路基板９１及び実装部品９２をそれぞれ使用部品として有しており、実装部品９２は回路基板９１の表面９１１に実装されている。さらに、実装部品９２は、ＬＥＤ（Light Emitting Diode）９２１と、コネクタ９２２とに区別される。すなわち、基板ユニット９は、３種類の使用部品として、回路基板９１、ＬＥＤ９２１、コネクタ９２２を具備している。なお、本実施形態では、検査対象（基板ユニット９）が３種類の使用部品（回路基板９１、ＬＥＤ９２１、コネクタ９２２）を具備しているが、使用部品は、２種類以下、または４種類以上であってもよい。使用部品の種類は、回路基板、ＬＥＤ、抵抗、コンデンサ、コイル、電源ＩＣ（Integrated Circuit）、制御用ＩＣ、ドライバＩＣ、端子台、コネクタなどの実装部品９２の名称、機能、メーカ、型番、素子パラメータ（抵抗値、容量など）などによって分類される。
【００１６】
回路基板９１は長尺の矩形板形状であり、回路基板９１の表面９１１には、複数のＬＥＤ９２１が回路基板９１の長手方向に沿って一列に実装されている。また、回路基板９１の表面９１１の長手方向の一端側には、コネクタ９２２が実装されている。また、回路基板９１の表面９１１には、型番などを示す文字が印刷された印刷領域９１２が形成されている。さらに、回路基板９１には、回路基板９１を厚み方向に貫通する貫通孔９１３が形成されている。
【００１７】
ここで、検査システムＡ１の検査対象は、上述の基板ユニット９以外にも、基板ユニット９Ａ（図１参照）などがあり、例えば基板ユニット９Ａは、回路基板９３及び実装部品９４を具備している。すなわち、検査システムＡ１は、複数の検査対象をそれぞれ検査する機能を有する必要がある。さらに、新製品の開発スケジュール及び販売スケジュールなどに応じて、新たな検査対象が追加されたり、複数の検査対象の一部が新たな検査対象と入れ替わることがある。
【００１８】
そして、検査システムＡ１は、複数の検査対象をそれぞれに対して、互いに異なる検査プログラムを実行する必要がある。しかし、検査対象の数が多い場合、検査対象毎の検査プログラムを作成するには、膨大な作成時間が必要になり、人的負荷も大きくなり、さらには個々の検査プログラムにおいて用いられる検査パラメータの調整量も膨大になっていた。また、新たな検査対象が追加される毎に、新たな検査プログラムを作成する必要があり、手間がかかっていた。
【００１９】
さらに、検査対象となる基板ユニットにおいて、実装されている使用部品の位置ずれがあった場合に、検査精度が低下する可能性があった。この使用部品の位置ずれは、基板ユニットの組み立て精度、回路基板の反りなどによって生じる。また、撮像装置３の撮像精度によって、画像に写った基板ユニットの大きさ及び位置などに誤差が生じることがあり、画像処理技術によって基板ユニットの検査を行う際に、画像処理における位置ずれが生じる可能性があった。
【００２０】
そこで、本実施形態の検査システムＡ１では、以下のように検査プログラムを生成する。なお、以下では、基板ユニット９が検査対象に追加されており、基板ユニット９を検査するための検査プログラムを新たに生成する方法について説明する。
【００２１】
まず、予め決められたｎ個（ｎ≧１）の基板ユニット９がサンプルユニットになる。サンプルユニットは、検査プログラムを生成するために用いられる基板ユニット９である。以降、サンプルユニットになる基板ユニット９をサンプルユニット９と呼ぶ。本実施形態では、２つ以上のサンプルユニット９が用いられており、サンプルユニット９の数が多いほど、後述の検査領域の設定精度が高くなる。
【００２２】
サンプルユニット９は、搬送装置４によって検査システムＡ１に順次搬入され、撮像装置３によって順次撮像された後に、検査システムＡ１から順次搬出される。
【００２３】
搬送装置４は、例えばベルトコンベア装置で構成されている。搬送装置４は、モータ、プーリ、コンベアベルトなどを備えており、モータの回転駆動力がプーリなどを介してコンベアベルトに伝達される。搬送装置４の上面にはコンベアベルトが露出しており、コンベアベルト上に載置されたサンプルユニット９は、後方から前方に向かう進行方向Ｘ１に一定速度で進む。コンベアベルト上のサンプルユニット９の長さ方向（基板ユニット９の長手方向）は前後方向に沿っており、回路基板９１の表面９１１は上方向を向いている。そして、サンプルユニット９は検査システムＡ１に一定速度で搬入される。
【００２４】
あるいは、サンプルユニット９が固定されて、撮像装置３がＸ１方向（あるいはＸ１方向の逆方向）に移動する構成でもよい。
【００２５】
なお、サンプルユニット９（基板ユニット９）の長さ方向の一端側（進行方向Ｘ１）は前方向であり、サンプルユニット９の長さ方向の他端側（進行方向Ｘ１の反対方向）が後方向になる。また、サンプルユニット９の幅方向の一端側が右方向であり、サンプルユニット９の幅方向の他端側が左方向である。また、サンプルユニット９の高さ方向の一端側が上方向であり、サンプルユニット９の高さ方向の他端側が下方向である。
【００２６】
図１、図３に示すように、照明装置２及び撮像装置３は、搬送装置４の上方において進行方向Ｘ１に並んで配置されており、照明装置２は撮像装置３より後側に位置している。
【００２７】
照明装置２は、図１に示すように帯状の照明光Ｌｔ１を照射するバータイプの照明装置であり、帯状の照明光Ｌｔ１を出射する長尺の発光面２１を有する。照明装置２から出射される照明光Ｌｔ１の照射領域は、照明光Ｌｔ１の光軸Ｋ１を法線とする面において細長い帯状（バー形状）になる。照明装置２は、進行方向Ｘ１に移動するサンプルユニット９に向かって斜め下方（例えば、水平面に対する入射角θ１が４５°になるように）に照明光Ｌｔ１を照射する。さらに、照明装置２は、上下方向から見て、照明光Ｌｔ１の照射領域の長手方向が進行方向Ｘ１に直交するように配置される。すなわち、サンプルユニット９が進行方向Ｘ１に移動している場合、上下方向から見て、照明光Ｌｔ１の照射領域の長手方向（発光面２１の長手方向）は、サンプルユニット９の長さ方向（前後方向）に対して直交しており、サンプルユニット９の幅方向（左右方向）に沿っている。そして、照明装置２の光軸Ｋ１が回路基板９１の表面９１１に交わる点を交点Ｑ１とする。
【００２８】
撮像装置３は、ラインセンサ３１と、マウントアダプタ３２と、レンズ３３とを備えているカメラである（図１、図３参照）。ラインセンサ３１には、マウントアダプタ３２を介してレンズ３３が取り付けられている。ラインセンサ３１は、ＣＣＤ（Charged Coupled Devices）、またはＣＭＯＳ（Complementary Metal Oxide Semiconductor）などの複数の撮像素子を有しており、複数の撮像素子は、左右方向にライン状に配置されている。そして、レンズ３３を介して集光された光をラインセンサ３１の撮像素子が受光することで、ラインセンサ３１が白黒（またはカラー）の静止画を撮像する。ラインセンサ３１が撮像した画像は、サンプルユニット９の前後方向の一部が写っているライン画像であり、ライン画像は、各画素の濃淡値が例えば２５６段階に設定された濃淡画像である。
【００２９】
ラインセンサ３１は、コンピュータシステム１の指示によって撮像タイミングが決定され、ライン画像の情報をコンピュータシステム１へ出力する。本実施形態では、コンピュータシステム１からの指示によって、ラインセンサ３１は、進行方向Ｘ１に移動するサンプルユニット９の前端から後端までを所定の撮像周期で撮像し、撮像した複数のライン画像をコンピュータシステム１へ出力する。なお、撮像周期は、サンプルユニット９の移動速度、ラインセンサ３１の撮像領域などに基づいて、サンプルユニット９の前端から後端までの全体が複数のライン画像に分割されて写るように予め設定されている。本実施形態の撮像装置３の仕様は、画像分解能：０．０２ｍｍ／ｐｉｘであるが、この仕様に限定されない。なお、本実施形態において、暗い画素は濃淡値が低く、明るい画素は濃淡値が高くなる。
【００３０】
そして、撮像装置３の光軸Ｋ２は鉛直方向に沿っており、交点Ｑ１で回路基板９１の表面９１１に交わる。したがって、撮像装置３は、サンプルユニット９に照射された照明光Ｌｔ１がサンプルユニット９の上面で拡散反射した拡散反射光Ｌｔ２を受光することができる。そして、撮像装置３は、受光した拡散反射光Ｌｔ２から濃淡画像の情報を生成し、この濃淡画像の情報をライン画像の情報としてコンピュータシステム１へ出力する。
【００３１】
コンピュータシステム１は、検査プログラムの生成用プログラムを実行することで、サンプルユニット９のライン画像の情報を用いて、基板ユニット９の検査プログラムを生成する。さらに、コンピュータシステム１は、検査プログラムを実行することで、サンプルユニット９のライン画像の情報を用いて基板ユニット９の検査を行う。
【００３２】
コンピュータシステム１は、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステム１のメモリに記録されたプログラム（検査プログラムの生成用プログラム、及び検査プログラム）をプロセッサが実行することによって、本開示における後述の検査プログラム生成システム１１及び検査プログラム実行システム１２の各機能が実現される。プログラムは、コンピュータシステム１のメモリに予め記録されていてもよいが、電気通信回線を通じて提供されてもよいし、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。コンピュータシステム１のプロセッサは、半導体集積回路（ＩＣ）又は大規模集積回路（ＬＳＩ）を含む１乃至複数の電子回路で構成される。複数の電子回路は、１つのチップに集約されていてもよいし、複数のチップに分散して設けられていてもよい。複数のチップは、１つの装置に集約されていてもよいし、複数の装置に分散して設けられていてもよい。
【００３３】
そして、コンピュータシステム１は、検査プログラムの生成用プログラムを実行することで検査プログラム生成システム１１（検査プログラム生成装置）として機能し、検査プログラムを実行することで検査プログラム実行システム１２（検査プログラム実行装置）として機能する。なお、以下の説明では、検査プログラム生成システム１１を生成システム１１と略称し、検査プログラム実行システム１２を実行システム１２と略称する。
【００３４】
検査プログラム生成システム１１は、画像取得部１０１、画像連結部１０２、サンプル記憶部１１１、設計データ記憶部１１２、基礎記憶部１１３、認識部１１４、プログラム選択部１１５、検査領域設定部１１６、検査プログラム生成部１１７を備える。なお、サンプル記憶部１１１、設計データ記憶部１１２、基礎記憶部１１３、及び後述の検査プログラム記憶部１２１は、１つのメモリで構成される形態、２つ以上のメモリで構成される形態のいずれでもよい。
【００３５】
画像取得部１０１は、撮像装置３から有線伝送路または無線伝送路を介して、ライン画像（拡散反射の濃淡画像）の情報を受け取る。すなわち、画像取得部１０１は、撮像周期毎に撮像されたライン画像を、撮像装置３から受け取る。画像取得部１０１は、複数のライン画像の情報を時系列に沿って受け取ることで、サンプルユニット９の前端から後端までを小領域に分割して撮像した一連の複数のライン画像の情報を受け取ることができる。
【００３６】
画像連結部１０２は、サンプルユニット９の一部が写った一連の複数のライン画像（サンプルユニット９を撮像周期毎に撮像した複数のライン画像）を長さ方向（進行方向Ｘ１）に沿って連結することで、ｎ個のサンプルユニット９のそれぞれの全体が写ったｎ枚のサンプル画像Ｇ１−Ｇｎ（図４参照）を生成する。すなわち、サンプル画像Ｇ１−Ｇｎのそれぞれは、１つのサンプルユニット９の全体が写った濃淡画像であり、回路基板９１が写っている撮像領域８１、ＬＥＤ９２１が写っている撮像領域８２、コネクタ９２２が写っている撮像領域８３をそれぞれ含んでいる。
【００３７】
なお、以降の説明では、画像連結部１０２によって一連の複数のライン画像が連結された１つの画像を、その撮像対象を問わずに、連結画像と呼ぶことがある。すなわち、上述のサンプル画像Ｇ１−Ｇｎのそれぞれは連結画像の一種である。
【００３８】
サンプル記憶部１１１は、画像連結部１０２が作成したサンプル画像Ｇ１−Ｇｎの各情報を記憶している。
【００３９】
設計データ記憶部１１２は、基板ユニット９の設計データを記憶している。設計データは、基板ユニット９の外形（使用部品の位置、実装方向、使用部品間の相対位置などの各情報を含む）、使用部品のリスト、使用部品の仕様（形状、大きさなど）などの各情報を含む。設計データは、基板ユニット９の設計時に作成されたＣＡＤ（Computer Aided Design）データ（２Ｄまたは３ＤのＣＡＤデータ）を流用されることが好ましい。
【００４０】
基礎記憶部１１３は、基板ユニット９，９Ａの各使用部品のそれぞれを個別に検査するための基礎プログラムＰａ，Ｐｂ，………を予め記憶している。基礎プログラムＰａ，Ｐｂ，………は、対応する使用部品の各検査項目に関する検査アルゴリズムをコンピュータに実行させるためのプログラムである。
【００４１】
例えば、基礎記憶部１１３は、回路基板９１を検査するための基礎プログラムＰａ、ＬＥＤ９２１を検査するための基礎プログラムＰｂ、コネクタ９２２を検査するための基礎プログラムＰｃをそれぞれ予め記憶している。さらに、基礎記憶部１１３は、回路基板９３を検査するための基礎プログラムＰｄ、実装部品９４を検査するための基礎プログラムＰｅをそれぞれ予め記憶している。また、基礎記憶部１１３は、他の使用部品を検査するための基礎プログラムＰｆも予め記憶している。
【００４２】
回路基板９１を検査するための基礎プログラムＰａは、例えば、回路基板９１のレジストはがれ、フラックスの付着、貫通孔９１３の形状不良などの検査を行うためのプログラムである。ＬＥＤ９２１を検査するための基礎プログラムＰｂは、例えば、ＬＥＤ９２１の欠け、フラックスの付着などの検査を行うためのプログラムである。コネクタ９２２を検査するための基礎プログラムＰｃは、例えば、コネクタ９２２の欠け、フラックスの付着などの検査を行うためのプログラムである。
【００４３】
認識部１１４は、ｎ個のサンプルユニット９を撮像した各サンプル画像Ｇ１−Ｇｎに画像認識処理を施すことによって、サンプル画像Ｇ１−Ｇｎのそれぞれに写っている各使用部品（回路基板９１、ＬＥＤ９２１、コネクタ９２２）の種類及び位置に関するサンプルデータを生成する。
【００４４】
具体的に、認識部１１４は、画像認識処理として、ディープラーニング（Deep Learning）による認識アルゴリズムを実行する。この認識アルゴリズムは、予め、多層構造のニューラルネットワークを用いて、基板ユニット９，９Ａの各全体画像、基板ユニット９，９Ａの各使用部品の全体画像などの各データを学習モデルとするディープラーニングによって構築される。そして、膨大な数の学習モデル用いたディープラーニングによって、基板ユニット９，９Ａの各使用部品を認識するための特徴量が抽出され、認識アルゴリズムが構築される。認識部１１４は、ディープラーニングによる認識アルゴリズムを実行することで、画像認識処理の精度がより向上する。
【００４５】
あるいは、認識部１１４は、画像認識処理として、テンプレートマッチングを用いた認識アルゴリズムを実行してもよい。この場合、認識部１１４は、基板ユニット９，９Ａの各全体画像、基板ユニット９，９Ａの各使用部品の画像などをテンプレート画像とし、テンプレート画像をサンプル画像Ｇ１−Ｇｎと比較することで、画像認識処理を行う。この場合、少ない学習モデルからでも、テンプレート画像を生成できる。したがって、画像認識処理の認識アルゴリズムを短時間で容易に構築できる。
【００４６】
また、認識部１１４が用いる認識アルゴリズムは、上述のディープラーニングとテンプレートマッチングとの両方を用いて構築されてもよい。この場合、学習モデルの数が少ない学習初期では、テンプレート画像を用いた認識アルゴリズムが構築される。そして、学習モデルの数が増大して所定数以上になると、テンプレート画像を用いた認識アルゴリズムをベースとしてディープラーニングによる認識アルゴリズムが構築される。そして、検査プログラム生成システム１１では、学習モデルの数に応じて、画像認識処理に用いる認識アルゴリズムが変更されるので、そのときの学習程度に適した認識アルゴリズムを実行することができる。
【００４７】
上述のように、認識部１１４は、ディープラーニング及びテンプレートマッチングの少なくとも一方を用いて、サンプル画像Ｇ１−Ｇｎのそれぞれに写っている各使用部品（回路基板９１、ＬＥＤ９２１、コネクタ９２２）の種類及び位置を認識して、サンプルデータを生成する。サンプルデータは、サンプルユニット９について、各使用部品の種類及び、各使用部品の位置を示すデータである。ここで、使用部品の位置を示す位置データは、画像連結部１０２によって複数のライン画像が連結された連結画像の座標を用いて表される。
【００４８】
例えば、サンプルユニット９のサンプルデータは、回路基板９１、ＬＥＤ９２１、コネクタ９２２の各種類、回路基板９１、ＬＥＤ９２１、コネクタ９２２のそれぞれの大きさ及び形状、回路基板９１、ＬＥＤ９２１、コネクタ９２２の各位置などのデータである。また、サンプルユニット９Ａのサンプルデータは、回路基板９３、使用部品９４の各種類、回路基板９３、使用部品９４のそれぞれの大きさ及び形状、回路基板９３、使用部品９４の各位置などのデータである。
【００４９】
プログラム選択部１１５は、基礎記憶部１１３に記憶されている基礎プログラムＰａ，Ｐｂ，………のうち、検査対象のサンプルデータに含まれる種類の使用部品を検査するための基礎プログラムを、選択プログラムとして選択する。本実施形態では、サンプルユニット９のサンプルデータに含まれる種類の使用部品として、回路基板９１、ＬＥＤ９２１、コネクタ９２２がある。そこで、プログラム選択部１１５は、基礎記憶部１１３から、基礎プログラムＰａ，Ｐｂ，Ｐｃを選択する。
【００５０】
ここで、上述の位置ずれが生じていれば、各サンプルユニット９のサンプルデータにおける所定の使用部品の位置データが、互いに異なる位置を示す可能性がある。そこで、検査領域設定部１１６は、設計データ記憶部１１２の設計データに基づく使用部品の位置と、認識部１１４が生成したサンプルデータに基づく使用部品の位置とに基づいて、選択プログラムを適用する検査領域を連結画像の座標を用いて設定する。言い換えると、検査領域設定部１１６は、選択プログラムを適用する検査領域を、サンプルユニット９の全体が写った連結画像に設定することができる。
【００５１】
本実施形態において、検査領域設定部１１６は、回路基板９１、ＬＥＤ９２１、コネクタ９２２の各位置を、複数のサンプルユニット９のサンプルデータから求める。さらに、検査領域設定部１１６は、回路基板９１、ＬＥＤ９２１、コネクタ９２２の各位置を、基板ユニット９の設計データから求める。
【００５２】
そして、図５に示すように、検査領域設定部１１６は、連結画像Ｇａにおける回路基板９１の検査領域７２として、設計データに基づく回路基板９１の位置と複数のサンプルデータに基づく回路基板９１の位置との全てが含まれる領域を設定する。また、検査領域設定部１１６は、連結画像ＧａにおけるＬＥＤ９２１の検査領域７２として、設計データに基づくＬＥＤ９２１の位置と複数のサンプルデータに基づくＬＥＤ９２１の位置との全てが含まれる領域を設定する。また、検査領域設定部１１６は、連結画像Ｇａにおけるコネクタ９２２の検査領域７３として、設計データに基づくコネクタ９２２の位置と複数のサンプルデータに基づくコネクタ９２２の位置との全てが含まれる領域を設定する。
【００５３】
したがって、上述の位置ずれが生じた場合でも、使用部品の位置ずれを考慮した領域が検査領域７１、７２，７３として設定されるので、検査漏れ、検査処理の不具合が低減される。さらに、サンプルユニット９において位置ずれしている使用部品を含む領域が、検査領域７１、７２，７３として使用部品毎に設定されるので、検査漏れ、検査処理の不具合がより低減される。
【００５４】
また、検査領域設定部１１６は、使用部品毎に位置ずれの偏差または標準偏差をそれぞれ求めて、この偏差または標準偏差に基づいて検査領域７１、７２，７３をそれぞれ設定してもよい。
【００５５】
検査プログラム生成部１１７は、検査プログラムとして、選択プログラム及び検査領域７１，７２，７３の各情報が含まれるプログラムを生成する。
【００５６】
本実施形態において、検査プログラム生成部１１７は、基板ユニット９の検査プログラムを生成する。検査プログラム生成部１１７が生成する基板ユニット９の検査プログラムには、基礎プログラムＰａ，Ｐｂ，Ｐｃ（選択プログラム）が含まれている。さらに、基板ユニット９の検査プログラムでは、回路基板９１を検査するための基礎プログラムＰａに回路基板９１の検査領域７１が対応付けられ、ＬＥＤ９２１を検査するための基礎プログラムＰｂにＬＥＤ９２１の検査領域７２が対応付けられ、コネクタ９２２を検査するための基礎プログラムＰｃにコネクタ９２２の検査領域７３が対応付けられる。すなわち、基板ユニット９の検査プログラムは、基板ユニット９の各使用部品を検査するための基礎プログラムと、各基礎プログラムを適用する連結画像内の検査領域７１，７２，７３の情報とを含んでいる。
【００５７】
上述のように、生成システム１１（検査プログラム生成システム１１）は、基板ユニット９の設計データ、及びサンプルユニット９（基板ユニット９）のサンプル画像Ｇ１−Ｇｎに基づいて、基板ユニット９の検査プログラムを自動生成できる。したがって、検査対象の数が多い場合でも、検査対象毎の検査プログラムが自動生成されるの、検査プログラムの作成時間が短縮され、人的負荷も低減される。また、新たな検査対象が追加される場合、新たな検査対象の設計データ、及び新たな使用部品を検査するための基礎プログラムを追加するだけで、新たな検査プログラムが自動生成される。
【００５８】
さらに、検査プログラムには、位置ずれを考慮した検査領域が選択プログラム毎に設定されているので、検査漏れ、検査処理の不具合が低減される。この結果、生成システム１１は、検査対象が有する部品の位置ずれがあった場合でも、高い検査精度を得ることができる。
【００５９】
また、回路基板９１の印刷領域９１２の文字データなどは、設計データに含まれていない場合がある。この場合、コンピュータシステム１をユーザが操作することによって、基礎プログラムＰａに印刷領域９１２の検査領域を対応付ければよい。
【００６０】
コンピュータシステム１は出力部１０３を備えている。出力部１０３は、作成された検査プログラム、検査プログラムの作成経過などの各情報を含む画像データを作成し、表示装置５へ出力する。表示装置５は、受信した画像データに基づいて、作成された検査プログラム、検査プログラムの作成経過などの各情報を表示する。
【００６１】
そして、コンピュータシステム１では、実行システム１２（検査プログラム実行システム１２）が上述のように生成された基板ユニット９の検査プログラムを実行することで、基板ユニット９の検査を行う。実行システム１２は、画像取得部１０１、画像連結部１０２、検査プログラム記憶部１２１、検査実行部１２２を備える。
【００６２】
上述の検査プログラム生成部１１７は、生成した基板ユニット９の検査プログラムを検査プログラム記憶部１２１に格納する。検査プログラム記憶部１２１は、基板ユニット９の検査プログラム、基板ユニット９Ａの検査プログラムを含む複数の検査対象のそれぞれの検査プログラムを記憶している。実行システム１２は、検査プログラム記憶部１２１から基板ユニット９の検査プログラムを読み出して実行する。
【００６３】
基板ユニット９の検査が開始されると、基板ユニット９は、搬送装置４によって検査システムＡ１に順次搬入され、撮像装置３によって順次撮像された後に、検査システムＡ１から順次搬出される。
【００６４】
画像取得部１０１は、撮像周期毎に撮像された基板ユニット９のライン画像を、撮像装置３から受け取る。画像連結部１０２は、基板ユニット９の一部が写った一連の複数のライン画像（基板ユニット９を撮像周期毎に撮像した複数のライン画像）を長さ方向（進行方向Ｘ１）に沿って連結することで、連結画像の一種である検査画像を生成する。検査画像は、基板ユニット９の全体が写った濃淡画像である。
【００６５】
そして、実行システム１２において基板ユニット９の検査プログラムが実行されることによって、検査実行部１２２が基板ユニット９の検査を行う。このとき、検査プログラムに含まれる基礎プログラムＰａ，Ｐｂ，Ｐｃは、検査画像内の検査領域７１，７２，７３に対してそれぞれ適用される。出力部１０３は、検査実行部１２２の検査結果などの各情報を含む画像データを作成し、表示装置５へ出力する。表示装置５は、受信した画像データに基づいて、検査実行部１２２の検査結果などの各情報を表示する。
【００６６】
上述の生成システム１１による基板ユニット９の検査プログラムの生成方法をまとめると、図６のフローチャートのようになる。
【００６７】
まず、認識部１１４が、サンプル画像Ｇ１−Ｇｎに画像認識処理を施すことによって、サンプル画像Ｇ１−Ｇｎに写っている回路基板９１、ＬＥＤ９２１、コネクタ９２２の種類及び位置に関するサンプルデータを生成する（認識ステップＳ１）。そして、プログラム選択部１１５が、複数の基礎プログラムＰａ−Ｐｅのうち、回路基板９１、ＬＥＤ９２１、コネクタ９２２を検査するための基礎プログラムＰａ，Ｐｂ，Ｐｃを、選択プログラムＰａ，Ｐｂ，Ｐｃとして選択する（プログラム選択ステップＳ２）。そして、検査領域設定部１１６が、設計データに基づく回路基板９１、ＬＥＤ９２１、コネクタ９２２の各位置とサンプルデータに基づく回路基板９１、ＬＥＤ９２１、コネクタ９２２の各位置とに基づいて、選択プログラムＰａ，Ｐｂ，Ｐｃをそれぞれ適用する検査領域７１，７２，７３を連結画像Ｇａ内に設定する（検査領域設定ステップＳ３）。そして、検査プログラム生成部１１７は、基板ユニット９の検査プログラムとして、選択プログラムＰａ，Ｐｂ，Ｐｃ及び検査領域７１，７２，７３の各情報が含まれるプログラムを生成する（検査プログラム生成ステップＳ４）。
【００６８】
上述の実施形態に係る第１の態様の検査プログラム生成システム１１は、複数種類の部品（９１，９２，９３，９４）のうち１種類以上の部品を使用部品（回路基板９１及び実装部品９２）として有する基板ユニット９（検査対象）を、基板ユニット９が撮像された画像に基づいて検査する、ための検査プログラムを生成する。検査プログラム生成システム１１は、認識部１１４と、プログラム選択部１１５と、検査領域設定部１１６と、検査プログラム生成部１１７と、を備える。認識部１１４は、基板ユニット９を撮像した１つ以上のサンプル画像Ｇ１−Ｇｎに画像認識処理を施すことによって、１つ以上のサンプル画像Ｇ１−Ｇｎに写っている回路基板９１及び実装部品９２の種類及び位置に関するサンプルデータを生成する。プログラム選択部１１５は、複数種類の部品（９１，９２，９３，９４）をそれぞれ検査するための複数の基礎プログラムＰａ，Ｐｂ，………のうち、サンプルデータに含まれる種類の使用部品を検査するための基礎プログラムＰａ，Ｐｂ，Ｐｃを、選択プログラムとして選択する。検査領域設定部１１６は、基板ユニット９の設計データによる使用部品の位置とサンプルデータによる使用部品の位置とに基づいて、基板ユニット９を撮像した画像に対して選択プログラム（Ｐａ，Ｐｂ，Ｐｃ）を適用する検査領域７１，７２，７３を設定する。検査プログラム生成部１１７は、検査プログラムとして、選択プログラム（Ｐａ，Ｐｂ，Ｐｃ）及び検査領域７１，７２，７３の情報が含まれるプログラムを生成する。
【００６９】
すなわち、検査プログラム生成システム１１が生成する検査プログラムには、位置ずれを考慮した検査領域が選択プログラムＰａ，Ｐｂ，Ｐｃ毎に設定されているので、検査漏れ、検査処理の不具合が低減される。この結果、検査プログラム生成システム１１は、検査対象（基板ユニット９など）が有する部品の位置ずれがあった場合でも、高い検査精度を得ることができる。
【００７０】
また、実施形態に係る第２の態様の検査プログラム生成システム１１では、第１の態様において、基板ユニット９（検査対象）は、２種類以上の使用部品（回路基板９１及び実装部品９２）を有していることが好ましい。この場合、選択プログラム（Ｐａ，Ｐｂ，Ｐｃ）は、２種類以上の使用部品にそれぞれ対応する２つ以上の選択プログラムであり、検査プログラム生成部１１７は、検査プログラムとして、２つ以上の選択プログラム（Ｐａ，Ｐｂ，Ｐｃ）が含まれるプログラムを生成する。
【００７１】
すなわち、検査プログラム生成システム１１は、検査対象である基板ユニット９の使用部品が２種類以上である場合、使用部品毎の基礎プログラムＰａ，Ｐｂ，Ｐｃに対して、検査領域７１，７２，７３をそれぞれ設定することができる。この結果、検査プログラム生成システム１１は、複数の使用部品の位置ずれがあった場合でも、高い検査精度を得ることができる。
【００７２】
また、実施形態に係る第３の態様の検査プログラム生成システム１１では、第１または第２の態様において、認識部１１４は、画像認識処理として、ディープラーニングによる認識アルゴリズムを実行することが好ましい。
【００７３】
したがって、検査プログラム生成システム１１は、ディープラーニングによる認識アルゴリズムを実行することで、画像認識処理の精度がより向上する。
【００７４】
また、実施形態に係る第４の態様の検査プログラム生成システム１１では、第１または第２の態様において、認識部１１４は、画像認識処理として、テンプレートマッチングを用いた認識アルゴリズムを実行することが好ましい。
【００７５】
この場合、テンプレートマッチングを用いた認識アルゴリズムでは、少ない学習モデルからでも、テンプレート画像を生成できるので、画像認識処理の認識アルゴリズムを短時間で容易に構築できる。
【００７６】
また、実施形態に係る第５の態様の検査プログラム生成システム１１では、第１または第２の態様において、認識部１１４は、画像認識処理として、テンプレートマッチングを用いた機械学習の後にディープラーニングによる機械学習によって生成された認識アルゴリズムを実行することが好ましい。
【００７７】
したがって、検査プログラム生成システム１１では、学習モデルの数に応じて、画像認識処理に用いる認識アルゴリズムを切り替えるので、そのときの学習程度に適した認識アルゴリズムを実行することができる。
【００７８】
また、実施形態に係る第６の態様の検査プログラム生成システム１１では、第１乃至第５の態様のいずれか一つにおいて、検査領域設定部１１６は、検査領域７１，７２，７３として、設計データに基づく使用部品の位置とサンプルデータに基づく使用部品の位置とが含まれる領域を設定することが好ましい。
【００７９】
したがって、検査プログラム生成システム１１では、サンプルユニット９において位置ずれしている使用部品を含む領域が、検査領域７１、７２，７３として使用部品毎に設定されるので、検査漏れ、検査処理の不具合がより低減される。
【００８０】
また、実施形態に係る第７の態様の検査プログラム生成システム１１では、第１乃至第６の態様のいずれか一つにおいて、画像連結部１０２をさらに備えることが好ましい。画像連結部１０２は、ラインセンサ３１を有する撮像装置３と基板ユニット９との相対位置を一方向（進行方向Ｘ１）に変化させながら撮像装置３によって基板ユニット９が撮像された複数のライン画像を連結した連結画像を生成する。そして、サンプル画像Ｇ１−Ｇｎは、連結画像である。
【００８１】
したがって、検査プログラム生成システム１１では、エリアセンサによって撮像された画像を用いる場合に比べて、画像の分解能が高くなり、画像認識処理の精度がより高くなる。
【００８２】
また、実施形態に係る第８の態様の検査プログラムの生成方法は、複数種類の部品（９１，９２，９３，９４）のうち１種類以上の部品を使用部品（回路基板９１及び実装部品９２）として有する基板ユニット９（検査対象）を、基板ユニット９が撮像された画像に基づいて検査する、ための検査プログラムの生成方法である。検査プログラム生成方法は、認識ステップＳ１と、プログラム選択ステップＳ２と、検査領域設定ステップＳ３と、検査プログラム生成ステップＳ４と、を備える。認識ステップＳ１は、基板ユニット９を撮像した１つ以上のサンプル画像Ｇ１−Ｇｎに画像認識処理を施すことによって、１つ以上のサンプル画像Ｇ１−Ｇｎに写っている回路基板９１及び実装部品９２の種類及び位置に関するサンプルデータを生成する。プログラム選択ステップＳ２は、複数種類の部品（９１，９２，９３，９４）をそれぞれ検査するための複数の基礎プログラムＰａ，Ｐｂ，………のうち、サンプルデータに含まれる種類の使用部品を検査するための基礎プログラムＰａ，Ｐｂ，Ｐｃを、選択プログラムとして選択する。検査領域設定ステップＳ３は、基板ユニット９の設計データによる使用部品の位置とサンプルデータによる使用部品の位置とに基づいて、基板ユニット９を撮像した画像に対して選択プログラム（Ｐａ，Ｐｂ，Ｐｃ）を適用する検査領域７１，７２，７３を設定する。検査プログラム生成ステップＳ４は、検査プログラムとして、選択プログラム（Ｐａ，Ｐｂ，Ｐｃ）及び検査領域７１，７２，７３の情報が含まれるプログラムを生成する。
【００８３】
すなわち、上述の検査プログラム生成方法によって生成された検査プログラムには、位置ずれを考慮した検査領域が選択プログラムＰａ，Ｐｂ，Ｐｃ毎に設定されているので、検査漏れ、検査処理の不具合が低減される。この結果、上述の検査プログラム生成方法は、検査対象（基板ユニット９など）が有する部品の位置ずれがあった場合でも、高い検査精度を得ることができる。
【００８４】
上述の実施形態に係る第９の態様のプログラムは、コンピュータシステムに、第８の態様の検査プログラムの生成方法を実行させる。
【００８５】
したがって、プログラムは、上述の検査方法と同様に、検査対象（基板ユニット９など）が有する部品の位置ずれがあった場合でも、高い検査精度を得ることができる。
【００８６】
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【符号の説明】
【００８７】
Ａ１  検査システム
１１  検査プログラム生成システム
１０２  画像連結部
１１４  認識部
１１５  プログラム選択部
１１６  検査領域設定部
１１７  検査プログラム生成部
３  撮像装置
３１  ラインセンサ
７１，７２，７３  検査領域
９  基板ユニット（検査対象）
９１，９２，９３，９４  部品
９１  回路基板（使用部品）
９２  実装部品（使用部品）
Ｇ１−Ｇｎ  サンプル画像
Ｐａ，Ｐｂ，………  基礎プログラム
Ｘ１  進行方向（一方向）
Ｓ１  認識ステップ
Ｓ２  プログラム選択ステップ
Ｓ３  検査領域設定ステップ
Ｓ４  検査プログラム生成ステップ
【図１】
2019100917.tif 000003
【図２】
2019100917.tif 000004
【図３】
2019100917.tif 000005
【図４】
2019100917.tif 000006
【図５】
2019100917.tif 000007
【図６】
2019100917.tif 000008