(57)【要約】【課題】  複数種類の対象物の検査を迅速に実行可能な検査装置及び検査システムを提供する。【解決手段】  一実施形態に係る検査装置は、画像データから、対応する対象物の画像データを抽出する複数の認識処理部と、前記対象物の画像データに基づいて、前記対象物に対応する検査を実行する複数の検査処理部と、前記複数の認識処理部及び前記複数の検査処理部を制御する制御部と、を備える。【選択図】  図５
2020030145.tif 000002
【特許請求の範囲】
【請求項１】
画像データから、対応する対象物の画像データを抽出する複数の認識処理部と、
前記対象物の画像データに基づいて、前記対象物に対応する検査を実行する複数の検査処理部と、
前記複数の認識処理部及び前記複数の検査処理部を制御する制御部と、
を備える検査装置。
【請求項２】
前記制御部は、前記画像データを、前記複数の認識処理部にそれぞれ入力する
請求項１に記載の検査装置。
【請求項３】
前記制御部は、前記認識処理部により前記対象物の画像データが抽出されると、前記対象物の画像データを、前記対象物に対する前記検査を実行する前記検査処理部に入力する
請求項１又は請求項２に記載の検査装置。
【請求項４】
前記認識処理部及び前記検査処理部は、それぞれ専用のプロセッサである
請求項１から請求項３までのいずれか１項に記載の検査装置。
【請求項５】
前記認識処理部及び前記検査処理部と、前記制御部と、は異なる基板に設けられる
請求項１から請求項４までのいずれか１項に記載の検査装置。
【請求項６】
前記検査処理部は、検査モデルに前記対象物の画像データを入力し、前記対象物の検査結果を出力する
請求項１から請求項５までのいずれか１項に記載の検査装置。
【請求項７】
請求項１から請求項６までのいずれか１項に記載の検査装置と、
前記制御部が出力した、前記対象物の画像データと、前記対象物の検査結果を示すデータと、含む検査結果データに基づいて、前記対象物の画像データと、前記検査結果と、の関係を学習し、検査モデルを生成する学習装置と、
を備える検査システム。
【請求項８】
前記検査装置に画像データを入力する撮影装置を更に備える
請求項７に記載の検査システム。
【請求項９】
請求項１から請求項６までのいずれか１項に記載の検査装置と、
前記複数の検査処理部がそれぞれ利用する検査モデルのバージョンを更新する管理装置と、
を備える検査システム。
【請求項１０】
請求項１から請求項６までのいずれか１項に記載の検査装置と、
前記検査装置に画像データを入力する撮影装置と、
を備える検査システム。
【請求項１１】
請求項１から請求項６までのいずれか１項に記載の検査装置と、
前記制御部が出力した、前記対象物の画像データと、前記対象物の検査結果を示すデータと、含む検査結果データに基づいて、前記対象物の画像データと、前記検査結果と、の関係を学習し、検査モデルを生成する学習装置と、
前記学習装置が生成した複数の前記検査モデルを管理し、前記複数の検査処理部がそれぞれ利用する検査モデルのバージョンを更新する管理装置と、
を備える検査システム。
【請求項１２】
前記検査装置に画像データを入力する撮影装置を更に備える
請求項１１に記載の検査システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査装置及び検査システムに関する。
【背景技術】
【０００２】
従来、製造ライン上を搬送される対象物を撮影装置で撮影し、得られた画像データに基づいて対象物を検査する検査システムが利用されている。検査システムは、画像データに基づいて、対象物を認識し、認識した対象物に予め用意された検査モデルを適用することにより、当該対象物の検査を行うことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１１０５６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の検査システムは、対象物の認識や検査モデルの適用を１つのソフトウェアにより実行していたため、複数種類の対象物が同時に撮影された場合、処理に時間がかかり、検査の実行が困難になった。このため、従来の検査システムを利用する場合には、製造ライン上で複数種類の対象物が同時に撮影されないように、対象物を整列させる必要があった。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、複数種類の対象物の検査を迅速に実行可能な検査装置及び検査システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
一実施形態に係る検査装置は、画像データから、対応する対象物の画像データを抽出する複数の認識処理部と、前記対象物の画像データに基づいて、前記対象物に対応する検査を実行する複数の検査処理部と、前記複数の認識処理部及び前記複数の検査処理部を制御する制御部と、を備える。
【発明の効果】
【０００７】
本発明の各実施形態によれば、複数種類の対象物の検査を迅速に実行可能な検査装置及び検査システムを提供できる。
【図面の簡単な説明】
【０００８】
【図１】検査システムの概略構成を示す図。
【図２】検査モデル管理テーブルの一例を示す図。
【図３】検査装置管理テーブルの一例を示す図。
【図４】検査装置管理テーブルの一例を示す図。
【図５】検査装置のハードウェア構成の一例を示す図。
【図６】学習装置のハードウェア構成の一例を示す図。
【図７】検査装置及び撮影装置の動作の一例を示すフローチャート。
【図８】学習装置の動作の一例を示すフローチャート。
【図９】管理装置の動作の一例を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重畳した説明を省略する。
【００１０】
一実施形態に係る検査システム１００について、図１〜図９を参照して説明する。本実施形態に係る検査システム１００は、製造ライン上を搬送される対象物の画像データに基づいて、当該対象物の検査を実行するシステムである。対象物の検査は、欠陥検査、傷検査、汚れ検査、異物検査、方向判別検査、裏表検査、形状検査、異物混入検査、文字認識・文字照合検査、寸法検査、色識別検査、及び位置決め検査を含む。本実施形態では、製造ライン上を複数種類の対象物が搬送される場合を想定している。
【００１１】
まず、本実施形態に係る検査システム１００の概略構成について説明する。図１は、検査システム１００の概略構成を示す図である。図１の検査システム１００は、検査装置１と、学習装置２と、管理装置３と、撮影装置４と、を備える。検査装置１、学習装置２、管理装置３、及び撮影装置４は、ＬＡＮ（Local Area Network）やインターネットなどのネットワークにより接続される。以下、図１に示すように、製造ライン上を３種類の対象物Ｐ１〜Ｐ３が搬送され、対象物Ｐ１に対して検査Ｔ１が実行され、対象物Ｐ２に対して検査Ｔ２が実行され、対象物Ｐ３に対して検査Ｔ３，Ｔ４が実行される場合を例に説明する。
【００１２】
検査装置１は、撮影装置４から入力された画像データに基づいて、当該対象物Ｐの検査Ｔを実行するコンピュータである。検査装置１は、ＰＣ（Personal Computer）、サーバ、又は専用端末であるが、これに限られない。また、検査装置１は、ネットワークにより接続された複数のコンピュータにより構成されてもよい。検査装置１は、対象物Ｐの種類ごとに予め設定された検査Ｔを実行する。検査装置１は、上記の検査Ｔ３，Ｔ４のように、１種類の対象物Ｐに対して複数の検査Ｔを実行してもよい。検査装置１は、検査Ｔを実行すると、検査結果データを出力する。検査結果データは、検査対象となった対象物Ｐの画像データと、検査結果（ラベル）を示すデータと、を含むデータである。
【００１３】
上記のように、対象物Ｐ１の検査として検査Ｔ１、対象物Ｐ２の検査として検査Ｔ２、対象物Ｐ３の検査として検査Ｔ３，Ｔ４が予め設定されている場合、検査装置１は、４種類の検査を実行する。この場合、検査装置１は、撮影装置４から対象物Ｐ１の画像データを入力されると、検査Ｔ１を実行し、検査Ｔ１の検査結果データをそれぞれ出力する。検査装置１が出力した検査結果データは、学習装置２に入力される。
【００１４】
学習装置２は、１つ又は複数の検査装置１から入力された検査Ｔの検査結果データに基づいて、対象物Ｐの画像データと検査Ｔの検査結果との関係を学習（教師あり学習）し、対象物Ｐに対して検査Ｔを実行するための検査モデルを生成するコンピュータである。学習装置２は、ＰＣ、サーバ、又は専用端末であるが、これに限られない。また、学習装置２は、ネットワークにより接続された複数のコンピュータにより構成されてもよい。
【００１５】
検査モデルは、画像データに応じた検査結果を出力する数学的モデルである。検査モデルの生成は、検査モデルのパラメータの最適化に相当する。学習装置２は、検査モデルのパラメータを最適化可能な任意の機械学習方法（アルゴリズム）を利用することができる。機械学習方法は、サポートベクターマシン、決定木、ランダムフォレスト、ニューラルネットワーク、ディープラーニング、及びｋ近傍法を含む。学習装置２は、対象物Ｐの種類ごと、かつ、検査Ｔの種類ごとに、検査モデルを生成する。
【００１６】
学習装置２は、検査結果データを入力されると、当該検査結果データの中から学習データを選択する。学習データは、検査結果が正しいと考えられる検査結果データである。学習装置２は、検査結果データに含まれる画像データを学習データ選択用に予め用意された検査Ｔの検査モデルに入力し、検査Ｔの検査結果を取得する。学習データ選択用の検査モデルは、検査装置１が利用する検査モデルとは異なる検査モデルであるのが好ましい。学習装置２は、学習データ選択用の検査モデルにより得られた検査結果と、検査結果データに含まれる検査結果と、が一致する場合、検査結果データに含まれる検査結果が正しいと判断し、当該検査結果データを学習データとして選択する。これは、複数の検査モデルにより得られた検査結果が同一である場合、当該検査結果は正しいと考えられるためである。なお、学習データの選択方法は上記の例に限ら得ない。例えば、学習データは、検査結果データの中から、学習装置２のユーザにより手動で選択されてもよい。また、学習データの選択は、管理装置３により行われてもよい。学習装置２は、学習データが更新されると、更新された学習データに基づいて、検査モデルを生成し、当該検査モデルを出力する。学習装置２が出力した検査モデルは管理装置３に入力される。
【００１７】
管理装置３は、学習装置２から入力された検査モデルを管理するコンピュータである。管理装置３は、ＰＣ、サーバ、又は専用端末であるが、これに限られない。また、管理装置３は、ネットワークにより接続された複数のコンピュータにより構成されてもよい。
【００１８】
管理装置３は、学習装置２から新たな検査モデルを入力されると、予め用意されたテストデータに基づいて、新たな検査モデルの検査精度を算出する。テストデータは、対象物Ｐの画像データと、正しいと考えられる検査結果を示すデータと、を含むデータである。管理装置３は、テストデータに含まれる対象物Ｐの画像データを検査モデルに入力することにより得られた検査結果と、テストデータに含まれる対象物Ｐの画像データに対応する検査結果と、を比較することにより、検出精度を算出することができる。また、管理装置３は、新たな検査モデルにバージョンを割り当てる。そして、管理装置３は、新たな検査モデルと、新たな検査モデルの検査精度と、新たな検査モデルのバージョンと、を関連付けて記憶する。
【００１９】
管理装置３は、検査モデルを検査Ｔのバージョンごとに管理する検査モデル管理テーブルを備える。検査モデル管理テーブルは、管理装置３のＨＤＤ上に設けられる。図２は、検査モデル管理テーブルの一例を示す図である。図２の例では、検査Ｔと、検査モデルのバージョン（ｖｅｒ）と、検査モデル（パラメータ値）と、検査精度（Ａｃ）と、が関連付けられている。図２におけるａ１，ｂ１は検査Ｔ１の検査モデルのパラメータであり、ａ２，ｂ２は検査Ｔ２の検査モデルのパラメータであり、ａ３，ｂ３は検査Ｔ３の検査モデルのパラメータである。例えば、検査Ｔ１の検査モデルのバージョン１は、ａ１＝１，ｂ１＝２の検査モデルであり、検査精度が７０％である。管理装置３は、図２の例のように、複数種類の検査Ｔの検査モデルを、バージョンごとに管理する。
【００２０】
また、管理装置３は、検査装置１が利用する検査モデルのバージョンを検査Ｔごとに管理する検査装置管理テーブルを備える。検査装置管理テーブルは、管理装置３のＨＤＤ上に設けられる。図３は、検査装置１管理テーブルの一例を示す図である。図３の例では、検査装置１の識別情報（ＩＤ）と、検査処理部１２３の識別情報（ｉｄ）と、検査Ｔの種類と、検査モデルのバージョン（ｖｅｒ）と、が関連付けられている。図３における、検査装置Ｄ１（識別情報がＤ１である検査装置１）は、検査処理部１２３ａ〜１２３ｄ（識別情報がａ〜ｄである検査処理部１２３）により、対象物Ｐにそれぞれ検査Ｔ１〜Ｔ４を実行する検査装置１であり、検査処理部１２３ａが検査Ｔ１の検査モデルとしてバージョン１を利用する。管理装置３は、図３の例のように、複数の検査装置１について、各検査処理部１２３が利用する検査モデルのバージョンを、検査Ｔごとに管理する。
【００２１】
また、管理装置３は、所定のタイミングで、検査装置１が利用する検査モデルを更新する。所定のタイミングは、学習装置２により生成された新たな検査モデルが管理装置３に入力されたタイミング、検査装置１が起動したタイミング、検査装置１の後述する検査ボード１２が起動したタイミング、及び管理装置３のユーザから要求されたタイミングを含む。また、管理装置３は、定期的に検査装置１が利用する検査モデルを更新してもよい。
【００２２】
具体的には、管理装置３は、検査装置１が利用する検査Ｔの検査モデルを、検査Ｔの検査モデルの中で最も検査精度が高いバージョンに更新する。図２及び図３の例では、検査装置Ｄ１が利用する検査Ｔ１の検査モデルはバージョン２に更新され、検査Ｔ２の検査モデルはバージョン２に更新され、検査Ｔ３の検査モデルはバージョン１に維持される。すなわち、図３の検査モデル管理テーブルは、図４に示すように更新される。管理装置３が検査モデルを更新することにより、検査装置１は、学習装置２により生成された検査精度が最も高い検査モデルを利用して、検査Ｔを実行することができる。
【００２３】
撮影装置４は、対象物Ｐを撮影するカメラであり、対象物Ｐを撮影可能なように製造ラインに設置される。撮影装置４は、有線又は無線により検査装置１に接続される。撮影装置４は、定期的（例えば、１秒ごと）に、又は所定のタイミングで撮影を実行し、撮影により得られた画像データを出力してもよいし、継続的に動画を撮影し、撮影により得られた動画データ（画像データ）を出力してもよい。所定のタイミングは、例えば、対象物Ｐが撮影装置４による撮影位置に到着したタイミングである。対象物Ｐが撮影位置に到着したことを検出するセンサ（画像センサや赤外線センサなど）を製造ラインに設け、対象物Ｐの到着をセンサが撮影装置４に通知することにより、撮影装置４は当該タイミングに撮影を実行することができる。撮影装置４の撮影により得られた画像データは、検査装置１に入力される。撮影装置４は、撮像素子としてＣＣＤイメージセンサ又はＣＭＯＳイメージセンサを備えたカメラであるが、これに限られない。なお、撮影装置４が製造ラインに複数設置され、各撮影装置から検査装置１に画像データが入力されてもよい。
【００２４】
なお、以上では、検査装置１、学習装置２、及び管理装置３が、それぞれ独立したコンピュータである場合を例に説明したが、検査装置１、学習装置２、及び管理装置３の少なくとも２つが、１つのコンピュータにより構成されてもよい。
【００２５】
次に、検査システム１００のハードウェア構成について説明する。図５は、検査装置１のハードウェア構成の一例を示す図である。図５の検査装置１は、メインボード（メイン基板）１１と、検査ボード（検査基板）１２と、を備える。メインボード１１は汎用的な処理を実行する基板であり、検査ボード１２は検査Ｔを実行する基板である。メインボード１１と検査ボード１２とを分けて構成することにより、メインボード１１を備える汎用コンピュータ（ＰＣなど）に検査ボード１２を接続するだけで、容易かつ安価に検査装置１を構成することができる。
【００２６】
メインボード１１は、後述する認識処理部１１及び検査処理部１２３を制御する制御部に相当する。メインボード１１は、ＣＰＵ（Central Processing Unit）１１１と、ＲＡＭ（Random Access Memory）１１２と、ＲＯＭ（Read Only Memory）１１３と、ＨＤＤ（Hard Disk Drive）１１４と、接続インタフェース１１５と、入力装置１１６と、表示装置１１７と、通信インタフェース１１８と、バス１１９と、を備える。
【００２７】
ＣＰＵ１１１は、プログラムを実行することにより、検査装置１の各構成を制御し、検査装置１の機能を実現する。ＣＰＵ１１１が実行するプログラムは、ＣＤ（Compact Disk）、ＤＶＤ、フラッシュメモリなどの、コンピュータ読み取り可能な任意の記録媒体に記録され得る。
【００２８】
ＲＡＭ１１２は、ＣＰＵ１１１に作業領域を提供する。
【００２９】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するプログラムや各種のデータを記憶する。
【００３０】
ＨＤＤ１１４は、ＣＰＵ１１１が実行するプログラムや各種のデータ（画像データなど）を記憶する。検査装置１は、ＨＤＤ１１４と共に、又はＨＤＤ１１４の代わりにＳＳＤを備えてもよいが、これに限られない。
【００３１】
接続インタフェース１１５は、メインボード１１を検査ボード１２に接続し、ボード間の通信を制御する。
【００３２】
入力装置１１６は、ユーザの操作に応じた情報を検査装置１に入力する。入力装置１１６は、タッチパッド、キーボード、マウス、又はハードウェアボタンであるが、これに限られない。
【００３３】
表示装置１１７は、ユーザの操作に応じた画面を表示する。表示装置１１７は、液晶ディスプレイ、又は有機ＥＬディスプレイであるが、これに限られない。検査装置１は、タッチパッドと表示装置１１７が一体化されたタッチパネルを備えてもよい。
【００３４】
通信インタフェース１１８は、検査装置１をネットワークに接続し、ネットワーク上の外部装置との通信を制御する。検査装置１は、通信インタフェース１１８を介して、撮影装置４や学習装置２などの外部装置と通信する。
【００３５】
バス１１９は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、ＨＤＤ１１４、接続インタフェース１１５、入力装置１１６、表示装置１１７、及び通信インタフェース１１８を相互に接続する。
【００３６】
検査ボード１２は、接続インタフェース１２１と、認識処理部１２２ａ〜１２２ｃと、検査処理部１２３ａ〜１２３ｄと、バス１２４と、を備える。
【００３７】
接続インタフェース１２１は、検査ボード１２をメインボード１１に接続し、ボード間の通信を制御する。
【００３８】
認識処理部１２２は、撮影装置４から入力された画像データに基づいて、対応する対象物Ｐの認識処理を実行する専用のプロセッサである。具体的には、認識処理部１２２は、撮影装置４から入力された画像データの中から対象物Ｐの画像データを検出し、抽出する。検査装置１は、パターンマッチングやディープラーニングなどの周知の任意の方法により、認識処理を実行できる。認識処理部１２２は、ＣＰＵ、ＧＰＵ、ＦＰＧＡ（Field Programmable Gate Array）、又はＡＳＩＣ（Application Specific Integrated Circuit）であるが、これに限られない。認識処理部１２２はＲＯＭ及びＲＡＭを内蔵されていてもよいし、認識処理部１２２に対応するＲＯＭ及びＲＡＭが検査ボード１２に実装されてもよい。
【００３９】
認識処理部１２２は、例えば、製造ライン上を搬送される対象物Ｐの種類ごと、すなわち、認識対象となる対象物Ｐの種類ごとに設けられる。本実施形態では、製造ライン上を３種類の対象物Ｐ１〜Ｐ３が搬送されるため、３つの認識処理部１２２が設けられている。認識処理部１２２ａは対象物Ｐ１の認識処理を実行し、認識処理部１２２ｂは対象物Ｐ２の認識処理を実行し、認識処理部１２２ｃは対象物Ｐ３の認識処理を実行する。認識処理部１２２は、対象物Ｐの画像データを抽出すると、当該画像データを出力する。認識処理部１２２が出力した画像データは、検査処理部１２３に入力される。なお、認識処理部１２２の数は、対象物Ｐの種類に応じて任意に設計可能である。また、複数種類の対象物Ｐの認識処理を、１つの認識処理部１２２により実行することも可能である。
【００４０】
検査処理部１２３は、認識処理部１２２から入力された対象物Ｐの画像データに基づいて、対象物Ｐに対応する検査Ｔを実行する専用のプロセッサ（主にハードウェアアクセラレータであるが、これに限られない）である。具体的には、検査処理部１２３は、対象物Ｐの画像データを検査Ｔの検査モデルに入力し、検査結果を出力する。検査処理部１２３は、ＣＰＵ、ＧＰＵ、ＦＰＧＡ、又はＡＳＩＣであるが、これに限られない。検査処理部１２３はＲＯＭ及びＲＡＭを内蔵されていてもよいし、検査処理部１２３に対応するＲＯＭ及びＲＡＭが検査ボード１２に実装されてもよい。
【００４１】
検査処理部１２３は、例えば、検査装置１が実行する検査Ｔごとに設けられる。本実施形態では、検査装置１が検査Ｔ１〜Ｔ４を実行するため、４つの検査処理部１２３が設けられている。検査処理部１２３ａは検査Ｔ１を実行し、検査処理部１２３ｂは検査Ｔ２を実行し、検査処理部１２３ｃは検査Ｔ３を実行し、検査処理部１２３ｄは検査Ｔ４を実行する。検査処理部１２３は、検査Ｔを実行すると、検査結果データを出力する。検査処理部１２３が出力した検査結果データは、学習装置２に入力される。なお、検査処理部１２３の数は、検査Ｔの種類に応じて任意に設計可能である。また、複数種類の検査Ｔを、１つの検査処理部１２３により実行することも可能である。
【００４２】
バス１２４は、接続インタフェース１２１、認識処理部１２２、及び検査処理部１２３を相互に接続する。
【００４３】
なお、検査装置１のハードウェア構成は、図５の例に限られない。上述の通り、検査装置１は、複数のコンピュータにより構成されてもよい。また、検査装置１は、単一の基板により構成されてもよい。
【００４４】
図６は、学習装置２のハードウェア構成の一例を示す図である。図６の学習装置２は、ＣＰＵ２１と、ＲＡＭ２２と、ＲＯＭ２３と、ＨＤＤ２４と、入力装置２５と、表示装置２６と、通信インタフェース２７と、バス２８と、を備える。
【００４５】
ＣＰＵ２１は、プログラムを実行することにより、学習装置２の各構成を制御し、学習装置２の機能を実現する。ＣＰＵ２１が実行するプログラムは、ＣＤ、ＤＶＤ、フラッシュメモリなどの、コンピュータ読み取り可能な任意の記録媒体に記録され得る。学習装置２は、機械学習を高速に実行可能なように、複数のＣＰＵ２１を備えてもよいし、ＣＰＵ２１の代わりに１つ又は複数のＧＰＵ（Graphics Processing Unit）を備えてもよい。
【００４６】
ＲＡＭ２２は、ＣＰＵ２１に作業領域を提供する。
【００４７】
ＲＯＭ２３は、ＣＰＵ２１が実行するプログラムや各種のデータを記憶する。
【００４８】
ＨＤＤ２４は、ＣＰＵ２１が実行するプログラムや各種のデータ（検査結果データなど）を記憶する。学習装置２は、ＨＤＤ２４と共に、又はＨＤＤ２４の代わりにＳＳＤを備えてもよい。
【００４９】
入力装置２５は、ユーザの操作に応じた情報を学習装置２に入力する。入力装置２５は、タッチパッド、キーボード、マウス、又はハードウェアボタンであるが、これに限られない。
【００５０】
表示装置２６は、ユーザの操作に応じた画面を表示する。表示装置２６は、液晶ディスプレイ、又は有機ＥＬディスプレイであるが、これに限られない。学習装置２は、タッチパッドと表示装置２６が一体化されたタッチパネルを備えてもよい。
【００５１】
通信インタフェース２７は、学習装置２をネットワークに接続し、ネットワーク上の外部装置との通信を制御する。学習装置２は、通信インタフェース２７を介して、検査装置１や管理装置３などの外部装置と通信する。
【００５２】
バス２８は、ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、ＨＤＤ２４、入力装置２５、表示装置２６、及び通信インタフェース２７を相互に接続する。
【００５３】
なお、学習装置２のハードウェア構成は、図６の例に限られない。上述の通り、学習装置２は、複数のコンピュータにより構成されてもよい。また、管理装置３のハードウェア構成は、学習装置２と同様であるため、説明を省略する。
【００５４】
次に、検査装置１及び撮影装置４の動作について説明する。図７は、検査装置１及び撮影装置４の動作の一例を示すフローチャートである。以下では、撮影装置４が定期的に撮影を実行する、又は動画を撮影する場合を例に説明する。検査装置１及び撮影装置４は、所定時間ごとに図７の動作を実行する。
【００５５】
まず、撮影装置４が製造ラインを撮影し（ステップＳ１０１）、得られた画像データを出力する。撮影装置４の撮影範囲に対象物Ｐが含まれる場合、対象物Ｐの画像データを含む画像データが出力されることになる。一方、撮影装置４の撮影範囲に対象物Ｐが含まれない場合、対象物Ｐの画像データを含まない画像データが出力されることになる。出力された画像データはメインボード１１に入力される。
【００５６】
検査装置１に画像データが入力されると、メインボード１１は、当該画像データに対して前処理を実行する（ステップＳ１０２）。前処理は、認識処理や検査Ｔの精度を向上させるために事前に行う画像処理であり、フィルタ処理及びマスク処理を含む。メインボード１１は、前処理を実行すると、前処理された画像データを認識処理部１２２ａに入力し、認識処理部１２２ａに認識処理の実行を指示する。
【００５７】
認識処理部１２２ａは、メインボード１１から画像データを入力されると、対象物Ｐ１の認識処理を実行する（ステップＳ１０３）。認識処理部１２２ａは、認識処理を実行すると、対象物Ｐ１の検出結果（対象物Ｐ１が検出されたか否か）をメインボード１１に入力する。また、認識処理部１２２ａは、対象物Ｐ１を検出した場合、入力された画像データから対象物Ｐ１の画像データを抽出し、メインボード１１に入力する。認識処理部１２２ａは、複数の対象物Ｐ１を検出した場合、各対象物Ｐ１について、検出結果及び画像データをメインボード１１に入力すればよい。メインボード１１は、認識処理部１２２ａから検出結果を入力されると、前処理された画像データを認識処理部１２２ｂに入力し、認識処理部１２２ｂに認識処理の実行を指示する。
【００５８】
認識処理部１２２ｂは、メインボード１１から画像データを入力されると、対象物Ｐ２の認識処理を実行する（ステップＳ１０４）。認識処理部１２２ｂは、認識処理を実行すると、対象物Ｐ２の検出結果（対象物Ｐ２が検出されたか否か）をメインボード１１に入力する。また、認識処理部１２２ｂは、対象物Ｐ２を検出した場合、入力された画像データから対象物Ｐ２の画像データを抽出し、メインボード１１に入力する。認識処理部１２２ｂは、複数の対象物Ｐ２を検出した場合、各対象物Ｐ２について、検出結果及び画像データをメインボード１１に入力すればよい。メインボード１１は、認識処理部１２２ｂから検出結果を入力されると、前処理された画像データを認識処理部１２２ｃに入力し、認識処理部１２２ｃに認識処理の実行を指示する。
【００５９】
認識処理部１２２ｃは、メインボード１１から画像データを入力されると、対象物Ｐ３の認識処理を実行する（ステップＳ１０５）。認識処理部１２２ｃは、認識処理を実行すると、対象物Ｐ３の検出結果（対象物Ｐ３が検出されたか否か）をメインボード１１に入力する。また、認識処理部１２２ｃは、対象物Ｐ３を検出した場合、入力された画像データから対象物Ｐ３の画像データを抽出し、メインボード１１に入力する。認識処理部１２２ｃは、複数の対象物Ｐ３を検出した場合、各対象物Ｐ３について、検出結果及び画像データをメインボード１１に入力すればよい。
【００６０】
このように、検査装置１は、各認識処理部１２２によって対応する１つ又は複数の対象物Ｐの認識処理を実行する。したがって、検査装置１は、認識処理部１２２を交換するだけで、対象物Ｐの種類の変化に対応することができる。なお、図７の例では、対象物Ｐ１〜Ｐ３の認識処理が認識処理部１２２ａ〜１２２ｃにより順番に実行されているが、対象物Ｐ１〜Ｐ３の認識処理は、認識処理部１２２ａ〜１２２ｃにより並列して実行されてもよい。これにより、対象物Ｐ１〜Ｐ３の認識処理に要する時間を短縮できる。
【００６１】
メインボード１１は、認識処理部１２２ｃから検出結果を入力されると、対象物Ｐ１〜Ｐ３の検出結果に応じて以下の処理を行う。
【００６２】
認識処理部１２２ａにより対象物Ｐ１が検出された場合（ステップＳ１０６：ＹＥＳ）、メインボード１１は、認識処理部１２２ａから入力された対象物Ｐ１の画像データを検査処理部１２３ａに入力し、検査処理部１２３ａに検査Ｔ１の実行を指示する。
【００６３】
検査処理部１２３ａは、メインボード１１から対象物Ｐ１の画像データを入力されると、対象物Ｐ１に対する検査Ｔ１を実行する（ステップＳ１０７）。すなわち、検査処理部１２３ａは、検査Ｔ１の検査モデルに対象物Ｐ１の画像データを入力し、検査結果を出力する。検査処理部１２３ａは、検査Ｔ１を実行すると、検査結果を示すデータをメインボード１１に入力する。検査処理部１２３ａは、複数の対象物Ｐ１の画像データを入力された場合、各対象物Ｐ１に対して検査Ｔ１を実行し、各対象物Ｐ１について検査結果を示すデータをメインボード１１に入力すればよい。メインボード１１は、検査処理部１２３ａから検出結果を示すデータを入力されると、検査結果を示すデータと、対象物Ｐ１の画像データと、を含む検査Ｔ１の検査結果データを生成する。なお、認識処理部１２２ａにより対象物Ｐ１が検出されなかった場合（ステップＳ１０６：ＮＯ）、メインボード１１は、認識処理部１２２ａから対象物Ｐ１の画像データを入力されない。したがって、検査Ｔ１（ステップＳ１０７）は省略される。
【００６４】
一方、認識処理部１２２ｂにより対象物Ｐ２が検出された場合（ステップＳ１０８：ＹＥＳ）、メインボード１１は、認識処理部１２２ｂから入力された対象物Ｐ２の画像データを検査処理部１２３ｂに入力し、検査処理部１２３ｂに検査Ｔ２の実行を指示する。
【００６５】
検査処理部１２３ｂは、メインボード１１から対象物Ｐ２の画像データを入力されると、対象物Ｐ２に対する検査Ｔ２を実行する（ステップＳ１０９）。すなわち、検査処理部１２３ｂは、検査Ｔ２の検査モデルに対象物Ｐ２の画像データを入力し、検査結果を出力する。検査処理部１２３ｂは、検査Ｔ２を実行すると、検査結果を示すデータをメインボード１１に入力する。検査処理部１２３ｂは、複数の対象物Ｐ２の画像データを入力された場合、各対象物Ｐ２に対して検査Ｔ２を実行し、各対象物Ｐ２について検査結果を示すデータをメインボード１１に入力すればよい。メインボード１１は、検査処理部１２３ｂから検出結果を示すデータを入力されると、検査結果を示すデータと、対象物Ｐ２の画像データと、を含む検査Ｔ２の検査結果データを生成する。なお、認識処理部１２２ｂにより対象物Ｐ２が検出されなかった場合（ステップＳ１０８：ＮＯ）、メインボード１１は、認識処理部１２２ｂから対象物Ｐ２の画像データを入力されない。したがって、検査Ｔ２（ステップＳ１０９）は省略される。
【００６６】
他方、認識処理部１２２ｃにより対象物Ｐ３が検出された場合（ステップＳ１１０：ＹＥＳ）、メインボード１１は、認識処理部１２２ｃから入力された対象物Ｐ３の画像データを検査処理部１２３ｃに入力し、検査処理部１２３ｃに検査Ｔ３の実行を指示する。
【００６７】
検査処理部１２３ｃは、メインボード１１から対象物Ｐ３の画像データを入力されると、対象物Ｐ３に対する検査Ｔ３を実行する（ステップＳ１１１）。すなわち、検査処理部１２３ｃは、検査Ｔ３の検査モデルに対象物Ｐ３の画像データを入力し、検査結果を出力する。検査処理部１２３ｃは、検査Ｔ３を実行すると、検査結果を示すデータをメインボード１１に入力する。検査処理部１２３ｃは、複数の対象物Ｐ３の画像データを入力された場合、各対象物Ｐ３に対して検査Ｔ３を実行し、各対象物Ｐ３について検査結果を示すデータをメインボード１１に入力すればよい。メインボード１１は、検査処理部１２３ｃから検出結果を示すデータを入力されると、検査結果を示すデータと、対象物Ｐ３の画像データと、を含む検査Ｔ３の検査結果データを生成する。また、メインボード１１は、対象物Ｐ３の画像データを検査処理部１２３ｄに入力し、検査処理部１２３ｄに検査Ｔ４の実行を指示する。
【００６８】
また、検査処理部１２３ｄは、メインボード１１から対象物Ｐ３の画像データを入力されると、対象物Ｐ３に対する検査Ｔ４を実行する（ステップＳ１１２）。すなわち、検査処理部１２３ｄは、検査Ｔ４の検査モデルに対象物Ｐ３の画像データを入力し、検査結果を出力する。検査処理部１２３ｄは、検査Ｔ４を実行すると、検査結果を示すデータをメインボード１１に入力する。検査処理部１２３ｄは、複数の対象物Ｐ３の画像データを入力された場合、各対象物Ｐ３に対して検査Ｔ４を実行し、各対象物Ｐ３について検査結果を示すデータをメインボード１１に入力すればよい。メインボード１１は、検査処理部１２３ｄから検出結果を示すデータを入力されると、検査結果を示すデータと、対象物Ｐ３の画像データと、を含む検査Ｔ４の検査結果データを生成する。なお、認識処理部１２２ｃにより対象物Ｐ３が検出されなかった場合（ステップＳ１１０：ＮＯ）、メインボード１１は、認識処理部１２２ｃから対象物Ｐ３の画像データを入力されない。したがって、検査Ｔ３，Ｔ４（ステップＳ１１１，Ｓ１１２）は省略される。
【００６９】
メインボード１１は、認識処理部１２２により検出された対象物Ｐの検査Ｔの検査結果データを全て生成すると、生成された検査結果データを出力する（ステップＳ１１３）。メインボード１１は、検査結果データを一時的に記憶しておき、所定時間ごとにまとめて出力してもよい。メインボード１１が出力した検査結果データは、学習装置２に入力される。
【００７０】
このように、検査装置１は、各検査処理部１２３によって各検査Ｔを実行する。したがって、検査装置１は、検査処理部１２３を交換するだけで、検査Ｔの種類の変化に対応することができる。
【００７１】
また、撮影装置４により複数種類の対象物Ｐが同時に撮影された場合であっても、検査装置１は、各対象物Ｐの画像データを対応する検査処理部１２３に入力するというシンプルな処理により各対象物Ｐの検査Ｔを実行できる上、各検査Ｔをそれぞれ専用のプロセッサにより実行することができる。したがって、検査装置１は、複数種類の対象物Ｐの検査Ｔを迅速に実行することができる。また、この検査装置１を利用することにより、製造ライン上で複数種類の対象物Ｐが同時に撮影されないように対象物Ｐを整列させる必要がなくなるため、製造ラインの構成を簡略化することができる。
【００７２】
なお、図７の例では、検査Ｔ１〜Ｔ４が検査処理部１２３ａ〜１２３ｄにより順番に実行されているが、検査Ｔ１〜Ｔ４は、検査処理部１２３ａ〜１２３ｄにより並列して実行されてもよい。これにより、検査Ｔ１〜Ｔ４に要する時間を短縮できる。また、メインボード１１は、検査Ｔ１〜Ｔ４の検査結果や、検査対象となった対象物Ｐ１〜Ｐ３の画像を、表示装置１１７に表示させてもよい。
【００７３】
次に、学習装置２の動作について説明する。図８は、学習装置２の動作の一例を示すフローチャートである。学習装置２は、所定時間ごとに図８の動作を実行する。
【００７４】
まず、学習装置２は、学習タイミングが到来したか確認する（ステップＳ２０１）。学習タイミングは、所定時間ごとであってもよいし、一定数の検査結果データを入力されたタイミングであってもよいし、ユーザからの指示を受けたタイミングであってもよい。学習タイミングが到来していない場合（ステップＳ２０１：ＮＯ）、学習装置２は動作を終了する。
【００７５】
一方、学習タイミングが到来した場合（ステップＳ２０１：ＹＥＳ）、学習装置２は、各検査Ｔについて、以下の動作をそれぞれ実行する。
【００７６】
まず、学習装置２は、検査Ｔの新たな検査結果データが入力されたか確認する（ステップＳ２０２）。新たな検査結果データは、検査Ｔの検査モデルを前回生成した後に学習装置２に入力された検査結果データである。新たな検査結果データが入力されていない場合（ステップＳ２０２：ＮＯ）、学習装置２は、当該検査Ｔについての処理を終了する。
【００７７】
一方、新たな検査結果データが入力されている場合（ステップＳ２０２：ＹＥＳ）、学習装置２は、新たな検査結果データの中から新たな学習データを選択する（ステップＳ２０３）。学習データの選択方法は上述の通りである。
【００７８】
学習装置２は、新たな学習データを選択すると、当該新たな学習データに基づいて、対象物Ｐの画像データと検査Ｔの検査結果との関係を学習し、新たな検査モデルを生成する（ステップＳ２０４）。この際、学習装置２は、新たな学習データと共に、既存の学習データを併用してもよい。学習装置２は、検査Ｔの新たな検査モデルを生成すると、当該検査モデルを出力する（ステップＳ２０５）。学習装置２が出力した検査モデルは、管理装置３に入力される。
【００７９】
学習装置２が各検査ＴについてステップＳ２０２〜Ｓ２０５の処理を実行することにより、各検査Ｔの新たな検査モデルが生成される。
【００８０】
このように、学習装置２は、検査装置１から入力された検査Ｔの検査結果データに基づいて、検査Ｔの検査モデルを生成することができる。
【００８１】
次に、管理装置３の動作について説明する。図９は、管理装置３の動作の一例を示すフローチャートである。管理装置３は、所定時間ごとに図９の動作を実行する。
【００８２】
まず、管理装置３は、学習装置２から新たな検査モデルが入力されたか確認する（ステップＳ３０１）。新たな検査モデルが入力されていない場合（ステップＳ３０１：ＮＯ）、処理はステップＳ３０５に進む。一方、新たな検査モデルが入力されている場合（ステップＳ３０１：ＹＥＳ）、管理装置３は、当該検査モデルに新たなバージョンを割り当てる（ステップＳ３０２）。
【００８３】
次に、管理装置３は、テストデータに基づいて、新たな検査モデルの検査精度を算出する（ステップＳ３０３）。管理装置３は、検査精度を算出する際、テストデータに含まれる対象物Ｐの画像データに、検査装置１と同様の前処理を実行するのが好ましい。
【００８４】
その後、管理装置３は、新たな検査モデルと、新たな検査モデルの検査精度と、新たな検査モデルのバージョンと、を関連付けて記憶する（ステップＳ３０４）。これにより、図２の例のように、管理装置３は、各検査Ｔの検査モデルについて、複数のバージョンを管理することができる。
【００８５】
続いて、管理装置３は、検査装置１の検査モデルの更新タイミングが到来したか確認する（ステップＳ３０５）。管理装置３が検査モデルを管理しているいずれの検査装置１の更新タイミングも到来していない場合（ステップＳ３０５：ＮＯ）、管理装置３は動作を終了する。
【００８６】
一方、管理装置３が検査モデルを管理しているいずれかの検査装置１の更新タイミングも到来している場合（ステップＳ３０５：ＹＥＳ）、管理装置３は、検査モデルの更新対象となる検査装置１の識別情報を取得する（ステップＳ３０６）。例えば、検査装置１の起動時が検査モデルの更新タイミングとして設定されている場合について考える。この場合、検査装置１は、起動すると、その旨を識別情報と共に管理装置３に通知する。管理装置３は、検査装置１から通知された識別情報を、更新対象となる検査装置１の識別情報として取得すればよい。また、管理装置３に検査装置１ごとの更新時刻が設定されている場合には、管理装置３は、更新時刻が到来した検査装置１の識別情報を、更新対象となる検査装置１の識別情報として取得すればよい。なお、検査装置１の識別情報の取得方法はこれに限られない。
【００８７】
管理装置３は、更新対象となる検査装置１の識別情報を取得すると、識別情報を取得した各検査装置１について以下の動作を実行する。
【００８８】
管理装置３は、検査装置管理テーブルを参照して、検査装置１が実行する検査Ｔの種類を取得する（ステップＳ３０７）。図３の例では、検査装置Ｄ１が実行する検査Ｔの種類として、検査Ｔ１〜Ｔ４が取得される。管理装置３は、検査装置１が実行する検査Ｔの種類を取得すると、取得した各検査Ｔについて以下の動作を実行する。
【００８９】
管理装置３は、検査装置１が利用する検査Ｔの検査モデルのバージョンが、検査精度が最高のバージョンであるか確認する（ステップＳ３０８）。具体的には、管理装置３は、検査装置管理テーブルを参照して、検査装置１が利用する検査Ｔの検査モデルのバージョンを取得する。そして、管理装置３は、検査モデル管理テーブルを参照して、取得したバージョンの検査精度が、検査Ｔの検査モデルの各バージョンの中で最高であるか確認する。検査装置１が利用する検査Ｔの検査モデルのバージョンが、検査精度が最高のバージョンである場合（ステップＳ３０８：ＹＥＳ）、管理装置３は、当該検査Ｔについての動作を終了し、次の検査Ｔについての動作を開始する。
【００９０】
一方、検査装置１が利用する検査Ｔの検査モデルのバージョンが、検査精度が最高のバージョンではない場合（ステップＳ３０８：ＮＯ）、管理装置３は、検査モデル管理テーブルを参照して、検査Ｔの検査モデルの各バージョンの中で、検査精度が最高のバージョンを選択する（ステップＳ３０９）。
【００９１】
管理装置３は、検査精度が最高のバージョンを選択すると、検査装置１が利用する検査Ｔの検査モデルを、選択したバージョンに更新する（ステップＳ３１０）。具体的には、管理装置３は、選択したバージョンの検査モデル（パラメータ値）を検査装置１に送信し、検査装置１に検査モデルの更新を指示する。検査装置１は、当該指示に応じて、検査Ｔを実行する検査処理部１２３が利用する検査モデルを更新する。そして、管理装置３は、検査装置管理テーブルに記憶された、検査装置１の検査Ｔの検査モデルのバージョンを、選択したバージョンに更新する。その後、管理装置３は、当該検査Ｔについての動作を終了し、次の検査Ｔについての動作を開始する。
【００９２】
管理装置３が各検査装置１の検査Ｔの検査モデルについて、ステップＳ３０７〜Ｓ３１０の処理を実行することにより、各検査装置１の検査Ｔの検査モデルが更新される。
【００９３】
例えば、図２及び図３の例では、検査装置Ｄ１の検査Ｔ１の検査モデルは、バージョン１からバージョン２に更新される（ステップＳ３１０）。これは、検査装置Ｄ１が検査Ｔ１に利用する検査モデルのバージョン１の検査精度（７０％）より、検査Ｔ１の検査モデルのバージョン２の検査精度（８０％）の方が高いためである（ステップＳ３０８：ＮＯ）。検査Ｔ１の検査モデルをバージョン１からバージョン２に更新することにより、検査装置Ｄ１による検査Ｔ１の精度を向上させることができる。
【００９４】
一方、図２及び図３の例では、検査装置Ｄ１の検査Ｔ３の検査モデルは、バージョン１からバージョン２に更新されない。すなわち、検査装置Ｄ１の検査Ｔ３の検査モデルは、バージョン１のまま維持される。これは、検査装置Ｄ１が検査Ｔ３に利用する検査モデルのバージョン１の検査精度（９５％）が、検査Ｔ３の検査モデルのバージョン２の検査精度（９０％）より高いためである（ステップＳ３０８：ＹＥＳ）。検査Ｔ３の検査モデルをバージョン１のまま維持することにより、検査装置Ｄ１による検査Ｔ３の精度の低下を抑制することができる。
【００９５】
このように、管理装置３は、学習装置２から入力された検査Ｔの検査モデルを、バージョンごとに管理することができる。また、管理装置３は、複数の検査装置１について、検査装置１が利用する検査Ｔの検査モデルのバージョンを、検査精度が最高のバージョンに更新することができる。
【００９６】
以上説明した通り、本実施形態によれば、検査システム１００は、撮影装置４により対象物Ｐを撮影し、検査装置１により対象物Ｐに対する検査Ｔを実行し、学習装置２により検査Ｔの新たな検査モデルを生成し、管理装置３により検査装置１が利用する検査Ｔの検査モデルのバージョンを更新する。検査システム１００は、検査装置１、学習装置２、管理装置３、及び撮影装置４による上記の処理を自動的に繰り返し実行することにより、対象物Ｐに対する検査Ｔを実行しながら、検査Ｔの検査精度を自動的に向上させることができる。
【００９７】
なお、以上では、検査システム１００が複数種類の対象物Ｐに対して検査Ｔを実行する場合を例に説明したが、検査システム１００は、対象物Ｐの複数部分ｐに対する検査Ｔを実行してもよい。この場合、対象物Ｐの検査対象となる複数の部分ｐが、上述の複数の対象物Ｐに相当する。したがって、検査装置１の認識処理部１２２は対象物Ｐの各部分ｐの認識処理を実行し、検査装置１の検査処理部１２３は対象物Ｐの各部分ｐに対する検査Ｔを実行すればよい。また、学習装置２は対象物Ｐの各部分ｐに対する検査Ｔの検査モデルを生成し、管理装置３は対象物Ｐの各部分ｐに対する検査Ｔの検査モデルのバージョンを管理し、検査装置１の対象物Ｐの各部分ｐに対する検査Ｔの検査モデルのバージョンを更新すればよい。
【００９８】
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなしに上述した実施例に種々の変形及び置換を加えることができる。
【符号の説明】
【００９９】
１：検査装置
２：学習装置
３：管理装置
４：撮影装置
１１：メインボード
１２：検査ボード
１００：検査システム
１１１：ＣＰＵ
１１２：ＲＡＭ
１１３：ＲＯＭ
１１４：ＨＤＤ
１１５：接続インタフェース
１１６：入力装置
１１７：表示装置
１１８：通信インタフェース
１１９：バス
１２１：接続インタフェース
１２２：認識処理部
１２３：検査処理部
１２４：バス
Ｐ：対象物
Ｔ：検査
【図１】
2020030145.tif 000003
【図２】
2020030145.tif 000004
【図３】
2020030145.tif 000005
【図４】
2020030145.tif 000006
【図５】
2020030145.tif 000007
【図６】
2020030145.tif 000008
【図７】
2020030145.tif 000009
【図８】
2020030145.tif 000010
【図９】
2020030145.tif 000011