(57)【要約】【課題】プログラムの変更を容易に行うことができる画像検査装置および画像検査方法を提供することである。【解決手段】実施形態の画像検査装置は、撮像部によって得られた検査対象物の画像を用いて、検査対象物の表面の検査を行う。画像検査装置の制御部は、撮像部を含む外部機器を制御するデバイス制御プログラムを実行することで撮像部から検査対象物の画像を取得するデバイス制御モジュールと、取得した画像に対して画像処理プログラムを実行することで画像処理後の画像である処理後画像を作成する画像処理モジュールと、処理後画像に対して判定プログラムを実行することで検査対象物の良不良を判定し、判定結果を取得する判定モジュールと、表示制御プログラムを実行することで、処理後画像、および、判定結果の少なくともいずれかを表示部に表示させる制御を行う表示制御モジュールと、を備える。【選択図】図３
2018112406.tif 000002
【特許請求の範囲】
【請求項１】
撮像部によって得られた検査対象物の画像を用いて、前記検査対象物の表面の検査を行う画像検査装置であって、
前記画像検査装置は、前記検査のためのパラメータを記憶する記憶部と、制御部と、を備え、
前記制御部は、
前記撮像部を含む外部機器を制御するデバイス制御プログラムを実行することで前記撮像部から前記検査対象物の画像を取得するデバイス制御モジュールと、
前記取得した画像に対して画像処理プログラムを実行することで画像処理後の画像である処理後画像を作成する画像処理モジュールと、
前記処理後画像に対して判定プログラムを実行することで前記検査対象物の良不良を判定し、判定結果を取得する判定モジュールと、
表示制御プログラムを実行することで、前記処理後画像、および、前記判定結果の少なくともいずれかを表示部に表示させる制御を行う表示制御モジュールと、
を備える画像検査装置。
【請求項２】
各モジュールごとに個別の実行ファイルを有しており、
各モジュールは、メッセージの送受信により協調動作を行う、請求項１に記載の画像検査装置。
【請求項３】
各モジュールにおける個別の実行ファイルは、前記記憶部に格納されたＤＬＬ（Dynamic  Link  Library）ファイルを実行可能である、請求項２に記載の画像検査装置。
【請求項４】
前記制御部は、さらに、
前記表示部に、前記ＤＬＬファイルによって定義された検査のためのプログラムに対応した画面上のアイコンであるアイテムを表示する画面と、ユーザの操作にしたがって各アイテムの追加、削除、並べ替えを行うことで検査フローを作成するための画面と、各アイテムのパラメータの設定を行うためのパラメータ設定画面を、ＧＵＩ（Graphical  User  Interface）によって表示させるフロー編集モジュールを備える、請求項３に記載の画像検査装置。
【請求項５】
外部装置からの遠隔操作によって、前記ＤＬＬファイルの変更が可能である、請求項３または請求項４に記載の画像検査装置。
【請求項６】
撮像部によって得られた検査対象物の画像を用いて、前記検査対象物の表面の検査を行う画像検査方法であって、
前記撮像部を含む外部機器を制御するデバイス制御プログラムを実行することで前記撮像部から前記検査対象物の画像を取得するデバイス制御モジュールによる処理ステップと、
前記取得した画像に対して画像処理プログラムを実行することで画像処理後の画像である処理後画像を作成する画像処理モジュールによる処理ステップと、
前記処理後画像に対して判定プログラムを実行することで前記検査対象物の良不良を判定し、判定結果を取得する判定モジュールによる処理ステップと、
表示制御プログラムを実行することで、前記処理後画像、および、前記判定結果の少なくともいずれかを表示部に表示させる制御を行う表示制御モジュールによる処理ステップと、
を含む画像検査方法。
【請求項７】
前記複数のモジュールによる各処理ステップは、画像検査装置において実行され、
外部装置が、画像検査のシミュレーションに基づいて作成された、検査のためのプログラムを定義したＤＬＬファイルを送信する送信ステップと、
前記画像検査装置が、当該ＤＬＬファイルを受信する受信ステップと、をさらに有し、
前記画像検査装置における複数のモジュールのいずれかは、個別の実行ファイルとともに当該ＤＬＬファイルがＣＰＵによってＲＡＭに展開されることで当該ＤＬＬファイルによる機能を含んで実現される、請求項６に記載の画像検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像検査装置および画像検査方法に関する。
【背景技術】
【０００２】
従来から、撮像部（ディジタルカメラ等）によって得られた検査対象物の画像を用いて、その検査対象物の表面の検査を行う画像検査装置が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２４１４２４号公報
【特許文献２】特開平９−２８８５６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、画像検査装置におけるプログラムを変更（処理の追加、削除、並べ替え等を含む。）する必要が生じた場合、プログラム全体を入れ替える等、大がかりな作業が必要となり、手間がかかっていた。
【０００５】
そこで、本発明の課題の一つは、プログラムの変更を容易に行うことができる画像検査装置および画像検査方法を提供することである。
【課題を解決するための手段】
【０００６】
実施形態の画像検査装置は、撮像部によって得られた検査対象物の画像を用いて、前記検査対象物の表面の検査を行う画像検査装置であって、前記検査のためのパラメータを記憶する記憶部と、制御部と、を備える。前記制御部は、前記撮像部を含む外部機器を制御するデバイス制御プログラムを実行することで前記撮像部から前記検査対象物の画像を取得するデバイス制御モジュールと、前記取得した画像に対して画像処理プログラムを実行することで画像処理後の画像である処理後画像を作成する画像処理モジュールと、前記処理後画像に対して判定プログラムを実行することで前記検査対象物の良不良を判定し、判定結果を取得する判定モジュールと、表示制御プログラムを実行することで、前記処理後画像、および、前記判定結果の少なくともいずれかを表示部に表示させる制御を行う表示制御モジュールと、を備える。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態にかかる検査システムの一例を模式的に示す斜視図である。
【図２】図２は、実施形態にかかる画像検査装置の一例を示すブロック構成図である。
【図３】図３は、実施形態にかかる画像検査装置の制御部と記憶部の一例を示すブロック構成図である。
【図４】図４は、実施形態にかかるパラメータ設定画面の一例を示す図である。
【図５】図５は、実施形態にかかる画像検査装置の制御部のフロー編集モジュールによる表示画面の一例を示す図である。
【図６】図６は、実施形態にかかる画像検査装置の制御部における各モジュールの処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【０００８】
以下、本発明の例示的な実施形態を開示する。以下に示す実施形態の構成、ならびに当該構成によってもたらされる作用および結果（効果）は、あくまで一例である。本発明は、以下の実施形態に開示される構成以外によっても実現可能であるとともに、基本的な構成によって得られる種々の効果（派生的な効果も含む）を得ることが可能である。
【０００９】
まず、実施形態にかかる検査システムの一例について説明する。図１は、実施形態にかかる検査システム１の一例を模式的に示す斜視図である。図２は、実施形態にかかる画像検査装置４の一例を示すブロック構成図である。以下、図１、図２を適宜参照して説明する。
【００１０】
図１に示すように、検査システム１は、検査対象物１００を撮像した画像を用いて、その検査対象物１００の表面の検査を行う。図１、図２に示すように、検査システム１は、光源２、撮像部３、画像検査装置４、表示装置５（表示部）、入力装置６を備える。また、画像検査装置４には、外部ＰＣ７、ＰＬＣ（Programmable  Logic  Controller）８が接続される。外部ＰＣ７は、例えば、ユーザの事業所に設置されたコンピュータ装置である。ＰＬＣ８は、画像検査装置４が制御する対象の制御装置である。
【００１１】
光源２は、上方から検査対象物１００に対して光を照射する。光源２は、例えば、ＬＥＤ（Light  Emitting  Diode）である。
【００１２】
撮像部３は、上方から検査対象物１００を撮像する。撮像部３は、光源２から出射され検査対象物１００の表面で反射された光を撮像する。撮像部３は、例えば、ディジタルカメラ（ディジタルスチルカメラ）であり、ディジタル画像、すなわち２次元の画素毎の輝度値（データ）を取得する。撮像部３は、例えば、ＣＭＯＳ（Complementary  Metal-Oxide-Semiconductor）イメージセンサやＣＣＤ（Charge-Coupled  Device）イメージセンサ等の撮像素子を有する。
【００１３】
画像検査装置４は、制御部４０（例えばＣＰＵ（Central  Processing  Unit）等）、記憶部４１、光照射コントローラ４２、撮像コントローラ４３、表示コントローラ４４、入力コントローラ４５、通信部４６等を備える。記憶部４１は、ＲＯＭ（Read  Only  Memory）４１１、ＲＡＭ（Random  Access  Memory）４１２、補助記憶装置４１３を備える。ＲＯＭ４１１は、書き換える必要のないプログラムやデータを記憶する。ＲＡＭ４１２は、制御部４０がプログラムを実行して種々の演算処理を実行する際に用いられる各種データを一時的に記憶する。補助記憶装置４１３は、例えばＨＤＤ（Hard  Disk  Drive）や、ＳＳＤ（Solid  State  Drive）、フラッシュメモリ等である。
【００１４】
以下、図３も合わせて参照して説明する。図３は、実施形態にかかる画像検査装置４の制御部４０と記憶部４１の一例を示すブロック構成図である。記憶部４１は、フロー編集モジュール用実行ファイル、フロー実行モジュール用実行ファイル、表示制御モジュール用実行ファイル、コアモジュール用実行ファイル、デバイス制御モジュール用実行ファイル、画像処理モジュール用実行ファイル、判定モジュール用実行ファイル、パラメータ、撮像画像、処理後画像、判定結果、共有ライブラリに格納されるＤＬＬ（Dynamic  Link  Library）ファイル等を記憶する。なお、以下において、各実行ファイルについて、単に「実行ファイル」という場合がある。
【００１５】
パラメータは、検査に関する各種の設定値である。撮像画像は、撮像部３によって撮像された画像である。共有ライブラリに格納されるＤＬＬファイル（以下、単に「ＤＬＬファイル」という場合がある。）は、後述するモジュール４０１〜４０７で共通して使用される検査のためのプログラムを定義したデータである。
【００１６】
フロー編集モジュール４０１は、記憶部４１のフロー編集モジュール用実行ファイル、および、それに関連するＤＬＬファイルをＣＰＵがＲＡＭ４１２に展開することで実現される。フロー編集モジュール４０１は、コアモジュール４０４からの指示により、表示装置５に、ＤＬＬファイルによって定義された検査のためのプログラムに対応した画面上のアイコンであるアイテムを表示する画面と、ユーザの操作にしたがって各アイテムの追加、削除、並べ替えを行うことで検査フローを作成するための画面と、各アイテムのパラメータの設定を行うためのパラメータ設定画面を、ＧＵＩ（Graphical  User  Interface）によって表示させる。また、フロー編集モジュール４０１は、検査フローを編集し、編集の結果をコアモジュール４０４に返す。コアモジュール４０４は、例えば、フロー編集モジュール４０１から受けとったパラメータを含む編集の結果を記憶部４１に格納する。
【００１７】
ここで、図４は、実施形態にかかるパラメータ設定画面の一例を示す図である。図４のパラメータ設定画面では、撮像画像を用いた検査のための比較範囲と輝度差をユーザが容易に設定できる。領域Ａ１では、プルダウンメニューにより、全方向、上下方向、左右方向等を選択できる。領域Ａ２については、スライダーＳＬ１により、比較範囲を選択できる。領域Ａ３については、スライダーＳＬ２により、輝度差を選択できる。領域Ａ４では、プルダウンメニューにより、暗い、明るい等を選択できる。図４の例では、「全方向の周囲１ピクセルに比べて１以上暗い領域を選択します」という設定をしている。
【００１８】
従来のパラメータ設定画面では、「セグメントサイズ」等の専門用語が多く、かつ、数値入力画面によってその数値の相対的な大きさを把握しづらかったので、非専門家にとってはわかりにくかった。一方、本実施形態のフロー編集モジュール４０１によって提供されるパラメータ設定画面によれば、専門用語がなく、かつ、スライダーによって数値の相対的な大きさを把握しやすいので、非専門家にとってもわかりやすいという効果を奏する。
【００１９】
ここで、図５は、実施形態にかかる画像検査装置４の制御部４０のフロー編集モジュール４０１による表示画面の一例を示す図である。図５の表示画面では、領域Ｄ４は、アイテムが表示される領域である。
【００２０】
領域Ｄ１は、ユーザが入力装置６による操作によって検査フローを作成する領域である。ユーザは、入力装置６による操作によって、検査フローの実行順にアイテムが並ぶように、領域Ｄ４のアイテムをドラッグし、領域Ｄ１にドロップすることで、プログラミング等の専門知識が無くても容易に検査フローを作成することができる。なお、図５の領域Ｄ１では表現していないが、検査フロー中に分岐を入れてもよい。その場合、分岐専用のアイテムを用意し、領域Ｄ４に表示する。
【００２１】
領域Ｄ２は、ユーザが入力装置６による操作によってパラメータ設定を行う領域である。図５の例では、アイテム「○○○」のパラメータ「撮像画像」がそれぞれプルダウンメニューで選択され、検査範囲の輝度値の下限として「４０」が設定され、また、その上限として「２５５」が設定されている。なお、領域Ｄ２におけるパラメータ設定画面は、図４のようなスライダーを用いた画面としてもよい。
【００２２】
領域Ｄ３は、画像を表示する領域である。領域Ｄ３で表示する画像は、撮像画像であってもよいし、あるいは、処理後画像（撮像画像に対して画像処理した後の画像）であってもよい。例えば、領域Ｄ１で作成している検査フローのうち、領域Ｄ２で選択したアイテムまで処理が進んだと仮定した場合の画像を領域Ｄ３に表示することができる。そうすれば、ユーザは、検査フローのうち選択したアイテムまで処理が進んだと仮定した場合の画像を領域Ｄ３で見ることができるので、パラメータの調整やデバッグを容易に行うことができる。
【００２３】
図３に戻って、フロー実行モジュール４０２は、記憶部４１のフロー実行モジュール用実行ファイル、および、それに関連するＤＬＬファイルをＣＰＵがＲＡＭ４１２に展開することで実現される。フロー実行モジュール４０２は、コアモジュール４０４からの指示により、フロー編集モジュール４０１によって編集された検査フローの実行用処理を行い、処理の結果をコアモジュール４０４に返す。
【００２４】
表示制御モジュール４０３は、記憶部４１の表示制御モジュール用実行ファイル、および、それに関連するＤＬＬファイルをＣＰＵがＲＡＭ４１２に展開することで実現される。表示制御モジュール４０３は、コアモジュール４０４からの指示により、表示制御プログラムを実行することで、処理後画像、および、判定モジュール４０７による判定結果の少なくともいずれかを表示装置５に表示させる制御を行う。
【００２５】
コアモジュール４０４は、記憶部４１のコアモジュール用実行ファイル、および、それに関連するＤＬＬファイルをＣＰＵがＲＡＭ４１２に展開することで実現される。コアモジュール４０４は、他のモジュール４０１〜４０３、４０５〜４０７に対して動作の指示を出したり、その相手から結果を受けて記憶部４１に格納したりといった統括的役割を担う。
【００２６】
デバイス制御モジュール４０５は、記憶部４１のデバイス制御モジュール用実行ファイル、および、それに関連するＤＬＬファイルをＣＰＵがＲＡＭ４１２に展開することで実現される。デバイス制御モジュール４０５は、コアモジュール４０４からの指示により、撮像部３を含む外部機器（光源２、撮像部３）を制御するデバイス制御プログラムを実行することで、光源２を制御したり、撮像部３から検査対象物１００の画像を取得したりし、結果をコアモジュール４０４に返す。コアモジュール４０４は、例えば、デバイス制御モジュール４０５から撮像画像を受けとり、記憶部４１に格納する。
【００２７】
なお、デバイス制御モジュール４０５は、光源２の制御用と撮像部３の制御用で、別々に設けてもよい。また、デバイス制御モジュール４０５は、光源２が複数ある場合は、光源２ごとに設けてもよい。また、デバイス制御モジュール４０５は、撮像部３が複数ある場合は、撮像部３ごとに設けてもよい。例えば、光源２や撮像部３を新たなものに入れ替えたり、追加したりする場合でも、そのためのＤＬＬファイルを作成し、追加することで、容易に対応できる。
【００２８】
画像処理モジュール４０６は、記憶部４１の画像処理モジュール用実行ファイル、および、それに関連するＤＬＬファイルをＣＰＵがＲＡＭ４１２に展開することで実現される。画像処理モジュール４０６は、コアモジュール４０４からの指示により、デバイス制御モジュール４０５が取得した画像に対して画像処理プログラムを実行することで画像処理後の画像である処理後画像を作成し、その結果（処理後画像等）をコアモジュール４０４に返す。コアモジュール４０４は、例えば、画像処理モジュール４０６から受けとった処理後画像を記憶部４１に格納する。
【００２９】
なお、画像処理モジュール４０６は、複数種類の検査対象物１００がある場合に、別々に設けてもよい。例えば、新たな材質や加工方法の製品が検査対象物１００となった場合でも、そのためのＤＬＬファイルを作成し、追加することで、容易に対応できる。
【００３０】
判定モジュール４０７は、記憶部４１の判定モジュール用実行ファイル、および、それに関連するＤＬＬファイルをＣＰＵがＲＡＭ４１２に展開することで実現される。判定モジュール４０７は、コアモジュール４０４からの指示により、画像処理モジュール４０６が作成した処理後画像に対して判定プログラムを実行することで検査対象物１００の良不良を判定し、判定結果を取得し、その結果（判定結果等）をコアモジュール４０４に返す。コアモジュール４０４は、例えば、判定モジュール４０７から受けとった判定結果を記憶部４１に格納する。なお、判定モジュール４０７は、検査対象物１００の良不良を判定する際、例えば、処理後画像と基準画像との輝度を比較すればよい。
【００３１】
なお、判定モジュール４０７は、複数種類の検査対象物１００がある場合に、別々に設けてもよい。例えば、新たな材質や加工方法の製品が検査対象物１００となった場合でも、そのためのＤＬＬファイルを作成し、追加することで、容易に対応できる。
【００３２】
なお、例えば、ＣＳＰ（Communicating  Sequential  Processes）に基づくメッセージパッシングを用いた並列処理方式により、各モジュールは、出力値を適宜含んだメッセージを送受信することにより協調動作を行うことができる。
【００３３】
また、ＷＣＦ（Windows（登録商標）  Communication  Foundation）を用いることで、画像検査装置４は、外部ＰＣ７（外部装置）からの遠隔操作によって、インターネット等のネットワーク経由で、ＤＬＬファイルの変更（追加、削除を含む。）が可能である。なお、外部ＰＣ７（外部装置）から画像検査装置４を遠隔操作して検査の処理について変更をする場合、動作の安定性や安全性の観点から、外部ＰＣ７からコアモジュール４０４に直接アクセスするのではなく、外部ＰＣ７から画像検査装置４の記憶部４１の共有ライブラリに必要なＤＬＬファイルを格納して、画像検査装置４がそのＤＬＬファイルを用いるようにするのがよい。
【００３４】
従来の画像検査装置では、１つの実行ファイルにすべての処理（プログラム）が入っていたため、処理を変更（追加、削除等）しようとすると、変更した処理を反映したプログラム全体をコンパイルし直して入れ替える必要があり、手間がかかっていた。一方、本実施形態では、各モジュールごとに個別の実行ファイルが設けられており、また、例えば、追加の処理がある場合はＤＬＬファイルを作成して記憶部４１の共有ライブラリに入れるだけでよいので、手間が非常に小さく済む。
【００３５】
また、従来の画像検査装置では、１つの実行ファイル内の複数のスレッドが共有メモリにアクセスするため、処理に時間がかかる場合があった。一方、本実施形態では、各モジュールは、出力値を適宜含んだメッセージの送受信により協調動作を行うので、従来のように処理に時間がかかることを回避できる。
【００３６】
次に、光照射コントローラ４２（図２）は、制御部４０のデバイス制御モジュール４０５（図３）からの制御信号に基づいて、光源２の発光（オン、オフ）等を制御する。撮像コントローラ４３（図２）は、制御部４０のデバイス制御モジュール４０５（図３）からの制御信号に基づいて、撮像部３による撮像を制御する。
【００３７】
表示コントローラ４４（図２）は、制御部４０の表示制御モジュール４０３からの制御信号に基づいて、表示装置５（例えば、ＬＣＤ（Liquid  Crystal  Display）、ＯＥＬＤ（Organic  Electro-Luminescent  Display）等）を制御する。入力コントローラ４５（図２）は、入力装置６（例えば、キーボード、マウス、操作ボタン、タッチパネル等）での入力操作に応じたデータを、制御部４０に送る。通信部４６は、外部ＰＣ７やＰＬＣ８と通信を行うための通信インタフェースである。
【００３８】
次に、画像検査装置４の制御部４０における各モジュールの処理の流れについて説明する。図６は、実施形態にかかる画像検査装置４の制御部４０における各モジュールの処理の流れを示すシーケンス図である。
【００３９】
まず、ユーザが入力装置６を用いて検査に関する所定の操作を行うと、コアモジュール４０４はフロー編集モジュール４０１に指示を送る（ステップＳ１）。これを受けて、フロー編集モジュール４０１は、検査フローを編集する（ステップＳ２）。具体的には、フロー編集モジュール４０１は、表示装置５に、アイテムを表示する画面（図５の領域Ｄ４）や、ユーザの操作にしたがって各アイテムの追加、削除、並べ替えを行うことで検査フローを作成するための画面（図５の領域Ｄ１）や、各アイテムのパラメータの設定を行うためのパラメータ設定画面（図５の領域Ｄ２、図４）を、ＧＵＩによって表示させる。また、フロー編集モジュール４０１は、それらの画面を使ったユーザの操作に応じて検査フローを編集し、編集の結果（ユーザが設定したパラメータを含む。）をコアモジュール４０４に返す（ステップＳ３）。コアモジュール４０４は、受けとった編集の結果（パラメータを含む。）を記憶部４１に格納する。
【００４０】
次に、コアモジュール４０４はフロー実行モジュール４０２に指示を送る（ステップＳ４）。これを受けて、フロー実行モジュール４０２は、フロー編集モジュール４０１によって編集された検査フローの実行用処理を行い（ステップＳ５）、処理の結果をコアモジュール４０４に返す（ステップＳ６）。
【００４１】
次に、コアモジュール４０４はデバイス制御モジュール４０５に指示を送る（ステップＳ７）。これを受けて、デバイス制御モジュール４０５は、光源２を制御したり、撮像部３から検査対象物１００の画像を取得したりして（ステップＳ８）、結果（撮像画像等）をコアモジュール４０４に返す（ステップＳ９）。コアモジュール４０４は、受けとった撮像画像を記憶部４１に格納する。
【００４２】
次に、コアモジュール４０４は画像処理モジュール４０６に指示を送る（ステップＳ１０）。これを受けて、画像処理モジュール４０６は、撮像画像に対して画像処理プログラムを実行することで処理後画像を作成し（ステップＳ１１）、その結果（処理後画像等）をコアモジュール４０４に返す（ステップＳ１２）。コアモジュール４０４は、受けとった処理後画像を記憶部４１に格納する。
【００４３】
次に、コアモジュール４０４は判定モジュール４０７に指示を送る（ステップＳ１３）。これを受けて、判定モジュール４０７は、処理後画像に対して判定プログラムを実行することで検査対象物１００の良不良を判定し（ステップＳ１４）、判定結果を取得し、その結果（判定結果等）をコアモジュール４０４に返す（ステップＳ１５）。コアモジュール４０４は、受けとった判定結果を記憶部４１に格納する。
【００４４】
次に、コアモジュール４０４は表示制御モジュール４０３に指示を送る（ステップＳ１６）。これを受けて、表示制御モジュール４０３は、表示制御プログラムを実行することで、処理後画像、および、判定結果の少なくともいずれかを表示装置５に表示させる制御を行う（ステップＳ１７）。例えば、表示制御モジュール４０３が処理後画像を表示装置５に表示させる制御を行うと、図５に示すように、領域Ｄ３にその処理後画像が表示される。この場合、ユーザが図５の領域Ｄ１や領域Ｄ２で検査フロー中のアイテムを指定する操作を行うと、検査フローがそのアイテムまで実行された場合の処理後画像を領域Ｄ３に表示するようにしてもよい。また、パラメータを変更すれば、それを領域Ｄ３に表示される処理後画像に反映させるようにしてもよい。そうすれば、ユーザはその処理後画像を見て、検査フローやパラメータの適切さを判断することができて、便利である。
【００４５】
このようにして、本実施形態の画像検査装置４によれば、制御部４０に各モジュールを有する構成とすることで、プログラムの変更を容易に行うことができる。例えば、処理を変更（追加、削除を含む。）したい場合は、記憶部４１の共有ライブラリでＤＬＬファイルの変更を行えばよい。したがって、従来のように変更した処理を反映したプログラム全体をコンパイルし直して入れ替える必要がなく、拡張性が高いとともに、開発工数を大幅に削減でき、手間が非常に小さく済む。これにより、例えば、ウィルス対策ソフトの導入を容易に行うこともできる。
【００４６】
また、プログラム（ソフトウェア）を変更する場合だけでなく、光源２や撮像部３などのハードウェアを変更（入れ替え、追加等）する場合でも、そのためのＤＬＬファイルを作成し、追加することで、容易に対応できる。つまり、ＤＬＬファイルの追加により専用設計のハードウェア（光源２や撮像部３など）を容易に追加できる。
【００４７】
また、制御部４０が各モジュールごとに個別の実行ファイルを有しており、各モジュールはメッセージの送受信により協調動作を行うことにより、従来よりも処理にかかる時間を短縮できる。
【００４８】
また、フロー編集モジュール４０１によって、表示装置５に、アイテムを表示する画面（図５の領域Ｄ４）や、ユーザの操作にしたがって各アイテムの追加、削除、並べ替えを行うことで検査フローを作成するための画面（図５の領域Ｄ１）や、各アイテムのパラメータの設定を行うためのパラメータ設定画面（図５の領域Ｄ２、図４）を、ＧＵＩによって表示させることができる。したがって、ユーザは、それらの画面を用いて、検査フローの作成やパラメータの設定を容易に行うことができる。
【００４９】
また、ユーザは、外部ＰＣ７から遠隔操作することによって、インターネット等のネットワーク経由で、画像検査装置４におけるＤＬＬファイルの変更をすることができる。したがって、例えば、技術者が現場に行かずに遠隔操作により対応できるので、便利である。
【００５０】
また、ドラッグ＆ドロップ操作により検査フローを作成できるので（図５）、ユーザは、プログラミング等の専門知識が無くても容易に検査フローを作成することができる。
【００５１】
（変形例）
次に、画像検査装置４の変形例について説明する。ここでは、例えば、検査システム１とは別の場所にいる技術者が、外部ＰＣ７（外部装置。図２）を用いて、画像検査装置４と同じ環境（データ、プログラム）で、画像検査のシミュレーションを行うものとする。そして、技術者は、必要に応じて、外部ＰＣ７を用いて検査のためのプログラムを定義したＤＬＬファイルを作成する。その後、技術者は、外部ＰＣ７から画像検査装置４に、その新たに作成したＤＬＬファイルをインターネット等のネットワーク経由で送信する。
【００５２】
そうすると、画像検査装置４は、そのＤＬＬファイルを受信し、記憶部４１の共有ライブラリに格納する。これにより、次に画像検査装置４が起動する場合に、複数のモジュールのいずれかは、個別の実行ファイルとともにその新たなＤＬＬファイルがＣＰＵによってＲＡＭ４１２に展開されることで当該ＤＬＬファイルによる機能を含んで実現される。
【００５３】
このようにして、変形例の画像検査装置４によれば、技術者が現場に行かずに遠隔操作により対応できるので、便利である。なお、外部ＰＣ７で行う画像検査のシミュレーションで用いる検査対象物は、外部ＰＣ７の側で用意した物やデータであってもよいし、あるいは、現場の画像検査装置４から受信した、画像検査装置４で対象としている検査対象物のデータであってもよい。
【００５４】
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００５５】
例えば、検査システム１は、外観検査ではなく、内面検査に適用してもよい。また、画像検査装置４における個別の実行ファイルを変更する場合は、例えば、新たな実行ファイルを作成し、それまでの実行ファイルと置換すればよい。
【符号の説明】
【００５６】
１…検査システム、２…光源、３…撮像部、４…画像検査装置、５…表示装置、６…入力装置、７…外部ＰＣ、８…ＰＬＣ、４０…制御部、４１…記憶部、４２…光照射コントローラ、４３…撮像コントローラ、４４…表示コントローラ、４５…入力コントローラ、４６…通信部、４０１…フロー編集モジュール、４０２…フロー実行モジュール、４０３…表示制御モジュール、４０４…コアモジュール、４０５…デバイス制御モジュール、４０６…画像処理モジュール、４０７…判定モジュール、４１１…ＲＯＭ、４１２…ＲＡＭ、４１３…補助記憶装置。
【図１】
2018112406.tif 000003
【図２】
2018112406.tif 000004
【図３】
2018112406.tif 000005
【図４】
2018112406.tif 000006
【図５】
2018112406.tif 000007
【図６】
2018112406.tif 000008