(57)【要約】【課題】事前学習された識別器を検査対象や背景画像に応じて柔軟に利用可能にする技術を提供する。【解決手段】学習済みモデルと当該学習済みモデルに設定された内部パラメータを記憶する記憶部と、所定の条件で撮影された検査対象の画像を取得する取得部と、取得部で取得された欠陥を含む検査対象の画像である前処理画像における特徴量と、内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成し、生成した前処理フィルタを取得部で取得された検査対象の画像である検査画像に適用して当該検査画像を変換することで、前処理済み画像を生成する前処理部と、前処理済み画像に対して、記憶された学習済みモデルを用いて、検査対象の欠陥の有無を検査する検査部と、を備える。【選択図】図１
2019091249.tif 000002
【特許請求の範囲】
【請求項１】
学習済みモデルと当該学習済みモデルに設定された内部パラメータを記憶する記憶部と、
所定の条件で撮影された検査対象の画像を取得する取得部と、
前記取得部で取得された欠陥を含む検査対象の画像である前処理画像における特徴量と、前記内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成し、生成した前記前処理フィルタを前記取得部で取得された検査対象の画像である検査画像に適用して当該検査画像を変換することで、前処理済み画像を生成する前処理部と、
前記前処理済み画像に対して、前記記憶された学習済みモデルを用いて、前記検査対象の欠陥の有無を検査する検査部と、を備える欠陥検査装置。
【請求項２】
前記前処理部は、
前記前処理画像における前記欠陥を含む欠陥領域の特徴量の幅が、前記内部パラメータに対応した特徴量の範囲に含まれるように、前記前処理画像を変換するための前処理フィルタを生成する、
請求項１に記載の欠陥検査装置。
【請求項３】
前記前処理部は、
前記前処理画像における前記欠陥領域以外の背景領域のパターンの幅が、前記内部パラメータに対応した特徴量の範囲から逸脱するように、前記前処理画像を変換するための前処理フィルタを生成する、
請求項２に記載の欠陥検査装置。
【請求項４】
前記前処理部は、
前記前処理画像における前記欠陥領域の指定を外部から受け付け、受け付けた前記欠陥領域に基づいて前記前処理フィルタを生成する、
請求項２又は３に記載の欠陥検査装置。
【請求項５】
前記前処理部は、
前記欠陥領域に基づいて前記前処理画像を拡大又は縮小する前記前処理フィルタを生成する、
請求項２乃至４の何れか一項に記載の欠陥検査装置。
【請求項６】
前記前処理部は、
前記前処理画像のうち、少なくとも前記欠陥領域を含む部分を複数の拡縮率によって変動させ、少なくとも前記部分について特徴検出画像を生成し、
複数の拡縮率で変動させたときの、前記特徴検出画像の前記欠陥領域内の濃度と前記欠陥領域外の濃度との差が最大のとき拡縮率によって、前記前処理画像を拡大又は縮小する前記前処理フィルタを生成するものであり、
前記特徴検出画像は、前記内部パラメータに対応する特徴を示す領域が他の領域に比較してより濃度が大きくなるように濃淡で表されるものである、
請求項２乃至４の何れか一項に記載の欠陥検査装置。
【請求項７】
前記前処理部は、
前記前処理画像の明度を平坦にする前処理フィルタを生成する、
請求項１乃至６の何れか一項に記載の欠陥検査装置。
【請求項８】
前記前処理済み画像を表示する表示部をさらに備える請求項７に記載の欠陥検査装置。
【請求項９】
前記表示部は、
前記前処理済み画像査画像と、欠陥が抽出された検査結果画像とを比較可能に表示する、請求項８に記載の欠陥検査装置。
【請求項１０】
取得部で取得された欠陥を含む検査対象の画像のうち、前記前処理フィルタを生成するために用いられる前処理画像のユーザ選択を受け付ける入力部を備え、
前記前処理部は、前記前処理画像における特徴量と、前記内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成する、
請求項１乃至９の何れか一項に記載の欠陥検査装置。
【請求項１１】
複数の処理シーケンスのうちのいずれを実行させるかのユーザ選択を受け付けるシーケンス入力部を備え、
前記複数の処理シーケンスは、前記前処理部が前記前処理フィルタを生成する準備工程シーケンスと、生成された前記前処理フィルタを前記検査画像に適用して、前記検査対象に含まれる欠陥の有無を検査する運用工程シーケンスと、を含む、
請求項１乃至１０の何れか一項に記載の欠陥検査装置。
【請求項１２】
前記運用工程シーケンスは、前記検査対象の欠陥を識別できたか否かの検査結果の内容に応じて、前記前処理部により前記前処理フィルタを更新する処理を実行する、
請求項１１に記載の欠陥検査装置。
【請求項１３】
コンピュータが、
学習済みモデルと当該学習済みモデルに設定された内部パラメータを記憶するステップと、
所定の条件で撮影された検査対象の画像を取得するステップと、
前記取得するステップによって取得された欠陥を含む検査対象の画像である前処理画像における特徴量と、前記内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成し、生成した前記前処理フィルタを前記取得するステップによって取得された検査対象の画像である検査画像に適用して当該検査画像を変換することで、前処理済み画像を生成するステップと、
前記前処理済み画像に対して、前記記憶された学習済みモデルを用いて、前記検査対象の欠陥の有無を検査するステップと、
を実行する欠陥検査方法。
【請求項１４】
コンピュータを、
学習済みモデルと当該学習済みモデルに設定された内部パラメータを記憶する手段、
所定の条件で撮影された検査対象の画像を取得する手段、
前記取得する手段によって取得された欠陥を含む検査対象の画像である前処理画像における特徴量と、前記内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成し、生成した前記前処理フィルタを前記取得する手段によって取得された検査対象の画像である検査画像に適用して当該検査画像を変換することで前処理済み画像を生成する手段と、
前記前処理済み画像に対して、前記記憶された学習済みモデルを用いて、前記検査対象の欠陥の有無を検査する手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、畳み込みニューラルネットワーク（ＣＮＮ：convolutional neural network）を用いた欠陥検出処理を実行可能な欠陥検査装置、欠陥検査方法、及びそのプログラムに関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）分野では、画像計測処理を用いた自動制御が広く実用化されている。例えば、ワークなどの被検査対象を撮像し、その撮像された画像から欠陥などの特徴量を算出することで、当該ワークについての良否を検査するような工程が実現される。このような工程を実現するためには、所望のワークに応じた教師データを予め用意し、識別器を学習させる必要がある。
【０００３】
例えば特許文献１には、検査対象の画像の分類を支援する効率的な環境を提供する分類支援装置が開示されている。特許文献１に記載の分類支援装置は、画像を表示する表示部と、検査対象の画像を分類する入力を受け付ける入力部と、予め準備された複数の検査対象の画像が示す複数の検査対象が撮像された際の撮像位置に基づいて複数の検査対象の順序を決定し、順序に従って複数の検査対象の画像を表示部に配列表示させる処理部と、を備えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３１７０８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＦＡ分野において、生産ライン上を流れるワークの種類や、検出対象となる欠陥の種類、撮影条件等の検査条件は生産ラインによって様々である。したがって、特許文献１に記載されるような技術を用いて事前学習された識別器を様々な検査条件に共通して汎用的に用いると、生産ライン毎に異なる検査条件によっては、欠陥の見逃しが発生する場合があった。一方で生産ラインに応じて識別器を学習させると、ワークの種類等の検査条件が変更されるのに合わせて、再度、識別器の構築をする時間が必要となり、生産性を低下させる場合があった。
【０００６】
本発明は、上述した事情を鑑みてなされたものであり、事前学習された識別器を検査対象画像や背景画像に応じて柔軟に利用可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【０００８】
すなわち、本発明の一側面に係る欠陥検査装置は、学習済みモデルと当該学習済みモデルに設定された内部パラメータを記憶する記憶部と、所定の条件で撮影された検査対象の画像を取得する取得部と、取得部で取得された欠陥を含む検査対象の画像である前処理画像における特徴量と、内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成し、生成した前処理フィルタを取得部で取得された検査対象の画像である検査画像に適用して当該検査画像を変換することで、前処理済み画像を生成する前処理部と、前処理済み画像に対して、記憶された学習済みモデルを用いて、検査対象の欠陥の有無を検査する検査部と、を備える。なお、学習済みモデルの内部パラメータとは、学習済みモデルを表現する情報であって、学習済みモデルにニューラルネットワーク（以下、単に「ネットワーク」ということもある。）を例にすれば、ニューラルネットワークのレイヤ数、各レイヤに関するノード数、ノード間を繋ぐリンクの重みパラメータ、各ノードに関するバイアスパラメータ及び各ノードに関する活性化関数の関数形に関する情報等、を示すものである。内部パラメータにより欠陥として検出すべき特徴量が規定される。また、前処理画像とは、欠陥検査装置に入力される入力画像であって、前処理フィルタを生成するための特徴量を抽出する対象の画像である。前処理画像は、欠陥を含む検査対象の画像であり、ユーザが選択してもよく、また、欠陥検査装置が自ら選択するようにしてもよい。また、検査画像とは、欠陥検査装置が取得する入力画像であって実際の検査工程において、検査対象となる画像である。
【０００９】
上記構成では、実際の検査工程で用いられる検査画像を変換する前処理フィルタを、検査対象となる欠陥に応じて生成することができる。これによって、あらかじめ構築された学習済みモデルを、検査対象や背景画像に応じて汎用的に利用可能になる。
【００１０】
上記一側面に係る欠陥検査装置において、前処理部は、前処理画像における欠陥を含む欠陥領域の特徴量の幅が、内部パラメータに対応した特徴量の範囲に含まれるように、前処理画像を変換するための前処理フィルタを生成するように構成されてよい。すなわち、内部パラメータに対応する特徴量の範囲は、学習済みモデルの生成に利用した学習データが含む欠陥の種類に依存して決定される。したがって、生産ラインにおいて学習データに含まれない特異な特徴を有する欠陥が発生すると、当該欠陥の特徴量は事前学習によって獲得した特徴量から逸脱し、誤認識（見逃し）が発生する場合がある。しかしながら、当該構成によれば、学習済みモデルが事前学習によって獲得した内部パラメータから逸脱するような特徴量を有する欠陥について、見逃しを防ぐことができる。
【００１１】
また、上記一側面に係る欠陥検査装置において、前処理部は、前処理画像における欠陥領域以外の背景領域のパターンの幅が、内部パラメータに対応した特徴量の範囲から逸脱するように、前処理画像を変換するための前処理フィルタを生成するように構成されてよい。すなわち、内部パラメータに対応する特徴量の範囲は、学習済みモデルの生成に利用した学習データが含む欠陥の種類に依存して決定される。したがって、生産ラインにおいて学習データに含まれない特異な特徴を有する背景領域のパターンが発生すると、当該背景領域のパターンが事前学習によって獲得した特徴量の範囲と合致し、誤認識（見過ぎ）が発生する場合がある。当該構成によれば、欠陥ではない画像の特徴が事前学習によって獲得した内部パラメータで検出される特徴量に収まっていた場合に、誤検出（見過ぎ）が発生するのを防ぐことができる。
【００１２】
また、上記一側面に係る欠陥検査装置において、前処理部は、前処理画像における欠陥領域の指定を外部から受け付け、受け付けた欠陥領域に基づいて前記前処理フィルタを生成するように構成されてよい。さらに前処理部は、欠陥領域に基づいて前処理画像を拡大又は縮小する前処理フィルタを生成するように構成されてよい。さらに前記前処理部は、前処理画像のうち、少なくとも欠陥領域を含む部分を複数の拡縮率によって変動させ、少なくとも部分について特徴検出画像を生成し、複数の拡縮率で変動させたときの、特徴検出画像の欠陥領域内の濃度と欠陥領域外の濃度との差が最大のとき拡縮率によって、前処理画像を拡大又は縮小する前処理フィルタを生成するものであり、特徴検出画像は、内部パラメータに対応する特徴を示す領域が他の領域に比較して濃度が大きくなるように濃淡表示されているものであってもよい。
【００１３】
また、上記一側面に係る欠陥検査装置において、前処理部は、前処理画像の明度を平坦にする前処理フィルタを生成するように構成されてよい。当該構成によれば、検査工程に応じて前処理フィルタを生成することによって、あらかじめ構築された学習済みモデルを、汎用的に利用可能になる。
【００１４】
また、上記一側面に係る欠陥検査装置は、前処理済み画像を表示する表示部をさらに備えるように構成されてよい。さらに、上記表示部は、前処理済み画像と、欠陥が抽出された検査結果画像とを比較可能に表示するように構成されてよい。当該構成によれば、ユーザに対して前処理後の中間画像を提示するため、ユーザが計測結果画像を確認した際に、欠陥が誤検出された理由が、学習済みモデルのエラーによるものなのか、前処理によるノイズであるのかを把握できるようになる。
【００１５】
また、上記一側面に係る欠陥検査装置は、取得部で取得された欠陥を含む検査対象の画像のうち、前処理フィルタを生成するために用いられる前処理画像のユーザ選択を受け付ける入力部を備え、前処理部は、前処理画像における特徴量と、内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成するように構成されてよい。当該構成によれば、内部パラメータから逸脱した画像であって、前処理フィルタの生成のための画像を適切に選ぶことができる。
【００１６】
また、上記一側面に係る欠陥検査装置は、複数の処理シーケンスのうちのいずれを実行させるかのユーザ選択を受け付けるシーケンス入力部を備え、複数の処理シーケンスは、前処理部が前処理フィルタを生成する準備工程シーケンスと、生成された前処理フィルタを検査画像に適用して、検査対象に含まれる欠陥の有無を検査する運用工程シーケンスとを含むように構成されてよい。さらに、上記運用工程シーケンスは、検査対象の欠陥を識別できたか否かの検査結果の内容に応じて、前処理部により前処理フィルタを更新する処理を実行するように構成されてよい。当該構成によれば、検査結果に応じて前処理フィルタが適宜更新されるため、誤検出や未検出の発生率をより低減することができる。
【００１７】
また、本発明の一側面に係る欠陥検査方法は、コンピュータが、学習済みモデルと当該学習済みモデルに設定された内部パラメータを記憶するステップと、所定の条件で撮影された検査対象の画像を取得するステップと、取得するステップによって取得された欠陥を含む検査対象の画像である前処理画像における特徴量と、内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成し、生成した前処理フィルタを取得するステップによって取得された検査対象の画像である検査画像に適用して当該検査画像を変換することで、前処理済み画像を生成するステップと、前処理済み画像に対して、記憶された学習済みモデルを用いて、検査対象の欠陥の有無を検査するステップと、を実行する。
【００１８】
上記構成では、実際の検査工程で用いられる検査画像を変換する前処理フィルタを、検査対象となる欠陥に応じて生成することができる。これによって、あらかじめ構築された学習済みモデルを、検査対象や背景画像に応じて汎用的に利用可能になる。
【００１９】
また、本発明の一側面に係るプログラムは、コンピュータを、学習済みモデルと当該学習済みモデルに設定された内部パラメータを記憶する手段、所定の条件で撮影された検査対象の画像を取得する手段、取得する手段によって取得された欠陥を含む検査対象の画像である前処理画像における特徴量と、内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成し、生成した前処理フィルタを取得する手段によって取得された検査対象の画像である検査画像に適用して当該検査画像を変換することで前処理済み画像を生成する手段、及び前処理済み画像に対して、記憶された学習済みモデルを用いて、検査対象の欠陥の有無を検査する手段、として機能させる。
【００２０】
上記構成では、実際の検査工程で用いられる検査画像を変換する前処理フィルタを、検査対象となる欠陥に応じて生成することができる。これによって、あらかじめ構築された学習済みモデルを、検査対象や背景画像に応じて汎用的に利用可能になる。
【発明の効果】
【００２１】
本発明によれば、事前学習された識別器を検査対象や背景画像に応じて柔軟に利用可能にする技術を提供できる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態に係る欠陥検査システムのシステム構成例を示す模式図である    。
【図２】本実施の形態に係る欠陥検査装置のハードウェア構成を示す模式図である。
【図３】本実施の形態に係る欠陥検査装置の機能構成を示す模式図である。
【図４】本実施の形態に係る欠陥検査システムにおけるＣＮＮを用いた画像計測処理の処理手順の一例を説明するための図である。
【図５】本実施の形態に係る欠陥検査システムにおける前処理フィルタ生成処理の一例を説明するためのフローチャートである。
【図６】本実施の形態に係る欠陥検査装置における前処理フィルタ生成処理の一例を説明するための図である。
【図７Ａ】本実施の形態に係る欠陥検査装置における前処理フィルタの一例を説明するための図である。
【図７Ｂ】本実施の形態に係る欠陥検査装置における前処理フィルタの一例を説明するための図である。
【図８】本実施の形態に係る欠陥検査装置が提供するユーザインターフェイス画面２００の一例を示す模式図である。
【図９Ａ】本実施の形態に係る欠陥検査装置が提供するユーザインターフェイス画面２００の一例を示す模式図である。
【図９Ｂ】本実施の形態に係る欠陥検査装置が提供するユーザインターフェイス画面２００の一例を示す模式図である。
【図９Ｃ】本実施の形態に係る欠陥検査装置が提供するユーザインターフェイス画面２００の一例を示す模式図である。
【図１０】本実施の形態に係る欠陥検査システムにおける準備工程の処理手順を示すフローチャートである。
【図１１】本実施の形態に係る欠陥検査システムにおける運用工程の処理手順を示すフローチャートである。
【図１２】本実施の形態に係る欠陥検査装置における前処理フィルタ生成処理の別の例を説明するための図である。
【図１３】本実施の形態に係る欠陥検査装置における前処理フィルタ生成処理の別の例を説明するための図である。
【発明を実施するための形態】
【００２３】
以下、本発明の一側面に係る実施の形態（以下「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００２４】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態に係る欠陥検査システム１の適用場面の一例を模式図である。本実施の形態に係る欠陥検査システム１は、被検査対象を撮像することにより生成される入力画像に対して前処理を行うことで、学習済みモデルに基づいて適切な欠陥検査ができるようにする。被検査対象は、例えば、製造過程にある、部品、製品等のワーク（Work piece）である。
【００２５】
図１に示されるとおり、欠陥検査システム１は、例えば、ベルトコンベア２上を搬送される被検査対象であるワーク４を撮像して得られる入力画像に対して画像計測処理を実行することで、ワーク４の外観検査または外観計測を実現する。以下の説明においては、画像計測処理の典型例として、ワーク４表面における欠陥の有無の検査などを応用例として説明するが、これに限らず、欠陥の種類の特定や外観形状の計測などにも応用が可能である。
【００２６】
ベルトコンベア２の上部には撮像部であるカメラ１０２が配置されており、カメラ１０２の撮像視野６はベルトコンベア２の所定領域を含むように構成される。カメラ１０２の撮像により生成された画像データ（検査画像の一例である。以下「入力画像」ともいう。）は、欠陥検査装置１００へ送信される。カメラ１０２による撮像は、周期的またはイベント的に実行される。
【００２７】
欠陥検査装置１００は、上位ネットワーク８を介して、ＰＬＣ（プログラマブルコントローラ）１０およびデータベース装置１２などと接続されている。欠陥検査装置１００における計測結果は、ＰＬＣ１０および／またはデータベース装置１２へ送信されてもよい。なお、上位ネットワーク８には、ＰＬＣ１０およびデータベース装置１２に加えて、任意の装置が接続されるようにしてもよい。
【００２８】
欠陥検査装置１００は、処理中の状態や計測結果などを表示するためのディスプレイ１０４と、ユーザ操作を受付ける入力部としてのキーボード１０６およびマウス１０８とが接続されていてもよい。
【００２９】
欠陥検査装置１００はＣＮＮエンジンを有している。ＣＮＮエンジンは、畳み込みニューラルネットワーク（Convolutional Neural Network）を用いた識別器を構成しており、ＣＮＮエンジンを用いて入力画像から所定数のクラス（分類）毎の特徴検出画像を生成する。生成された１または複数の特徴検出画像に基づいて、対象のワークにおける欠陥の有無などが判断される。あるいは、欠陥の大きさや位置などを検出することもできる。
【００３０】
欠陥検査装置１００が備えるＣＮＮエンジンは所定の教師データ用の特徴検出画像（以下「学習画像」ともいう。）に基づいて学習を行うことにより、欠陥として検出すべき画像の特徴量を内部パラメータとしてあらかじめ獲得している。
【００３１】
このとき、学習画像として準備できるデータセットには限りがあるため、獲得した内部パラメータで検出可能な欠陥の特徴量の範囲には制限が発生してしまう。つまり、学習画像のセットに含まれていた欠陥の特徴から逸脱するような特徴量を有する欠陥は、このような学習画像のセットを用いて学習したＣＮＮエンジンでは検出することができない。
【００３２】
一方で、実際の生産現場において、生産ラインに流れるワークの種類や撮影条件、検出対象となる欠陥の種類等は生産ラインごとに様々である。例えば、学習画像を撮影した際の撮影条件と、実際の検査工程での撮影条件とは必ずしも一致しない場合がある。したがって、生産ラインの多種多様性を鑑みると、事前学習されたＣＮＮエンジンの汎用性は必ずしも高いものではないといえる。しかし、生産ラインごとにＣＮＮエンジンを構築することは、生産ラインの仕様が頻繁に変更される等の理由により非効率である。
【００３３】
本実施形態にかかる欠陥検査装置１００は、このような事情を鑑み、ＣＮＮエンジンが事前学習で獲得した内部パラメータで、欠陥を適切に検出可能となるように、入力画像を変換する前処理フィルタを適用する。これによって、事前学習されたＣＮＮエンジンの汎用性を向上させ、様々な生産ラインにおいて検査対象や背景画像に応じて柔軟に利用可能としている。また、前処理フィルタを適用することで、欠陥検査装置１００のワークカバレッジが増大、すなわち、欠陥検査装置１００で検査することのできるワーク４の種類ないし量が増大する。
【００３４】
なお、以下の説明では、前処理フィルタは、検査工程の立ち上げ時に、ユーザによって選択された入力画像に基づいて予め生成される例について説明するが、前処理フィルタが生成されるタイミングは検査工程の立ち上げ時に限定されず、カメラ１０２のリプレース時期等、任意のタイミングでよい。なお、以下の説明では検査工程の立ち上げ工程を準備工程ともいい、準備工程のあと、実際に検査を行う工程を運用工程ともいう。
【００３５】
§２  構成例
＜１．欠陥検査装置１００のハードウェア構成＞
次に、本実施の形態に係る欠陥検査システム１に含まれる欠陥検査装置１００のハードウェア構成について説明する。
【００３６】
図２は、本実施の形態に係る欠陥検査装置１００のハードウェア構成を示す模式図である。図２を参照して、欠陥検査装置１００は、一例として、汎用的なコンピュータアーキテクチャに従って構成される汎用コンピュータを用いて実現されてもよい。欠陥検査装置１００は、プロセッサ１１０と、メインメモリ（主記憶部）１１２と、カメラインターフェイス１１４と、入力インターフェイス１１６と、表示インターフェイス１１８と、通信インターフェイス１２０と、ストレージ（補助記憶部）１３０とを含む。これらのコンポーネントは、典型的には、内部バス１２２を介して互いに通信可能に接続されている。
【００３７】
プロセッサ１１０は、ストレージ１３０に格納されているプログラムをメインメモリ１１２に展開して実行することで、後述するような機能および処理を実現する。メインメモリ１１２は、揮発性メモリにより構成され、プロセッサ１１０によるプログラム実行に必要なワークメモリとして機能する。
【００３８】
カメラインターフェイス１１４は、カメラ１０２と接続されて、カメラ１０２にて撮像された入力画像を取得する。カメラインターフェイス１１４は、カメラ１０２に対して撮像タイミングなどを指示するようにしてもよい。
【００３９】
入力インターフェイス１１６は、キーボード１０６およびマウス１０８といった入力部と接続されて、ユーザが入力部に対して行った操作などを示す指令を取得する。
【００４０】
表示インターフェイス１１８は、ディスプレイ１０４と接続された、プロセッサ１１０によるプログラムの実行によって生成される各種処理結果をディスプレイ１０４へ出力する。
【００４１】
通信インターフェイス１２０は、上位ネットワーク８を介して、ＰＬＣ１０およびデータベース装置１２などと通信するための処理を担当する。
【００４２】
ストレージ１３０は、ＣＮＮエンジンを実現するための画像処理プログラム１３２およびＯＳ（operating system）１３４などのコンピュータを欠陥検査装置１００として機能させるためのプログラムを格納している。ストレージ１３０は、さらに、後述するような画像計測処理を実現するための前処理フィルタ１３６と、カメラ１０２から取得された入力画像１３８と、画像計測処理によって得られた計測結果１４０とを格納していてもよい。
【００４３】
ストレージ１３０に格納される画像処理プログラム１３２は、ＤＶＤ（digital versatile disc）などの光学記録媒体またはＵＳＢ（universal serial bus）メモリなどの半導体記録媒体などを介して、欠陥検査装置１００にインストールされてもよい。あるいは、画像処理プログラム１３２は、ネットワーク上のサーバ装置などからダウンロードするようにしてもよい。
【００４４】
このように汎用コンピュータを用いて実現する場合には、ＯＳ１３４が提供するソフトウェアモジュールのうち、必要なソフトウェアモジュールを所定の順序および／またはタイミングで呼出して処理することで、本実施の形態に係る機能の一部を実現するものであってもよい。すなわち、本実施の形態に係る画像処理プログラム１３２は、本実施の形態に係る機能を実現するためのすべてのソフトウェアモジュールを含んでおらず、ＯＳと協働することで、必要な機能が提供されるようにしてもよい。
【００４５】
本実施の形態に係る画像処理プログラム１３２は、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、画像処理プログラム１３２自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。このように、本実施の形態に係る画像処理プログラム１３２は、他のプログラムに組込まれた形態であってもよい。
【００４６】
図２には、汎用コンピュータを用いて欠陥検査装置１００を実現する例を示したが、これに限られることなく、その全部または一部の機能を専用回路（例えば、ＡＳＩＣ（application specific integrated circuit）やＦＰＧＡ（field-programmable gate array）など）を用いて実現してもよい。さらに、一部の処理をネットワーク接続された外部装置に担当させてもよい。
【００４７】
＜２．欠陥検査装置１００の機能構成＞
次に、図３及び図４を参照して、本実施形態に係る欠陥検査システム１に含まれる欠陥検査装置１００の機能構成について説明する。
【００４８】
図３は、本実施形態に係る欠陥検査装置１００の機能構成を示す模式図である。欠陥検査装置１００が有する各機能構成は、典型的には、前述のプロセッサ１１０が画像処理プログラム１３２を実行することで実現される演算処理である。また、図４は、本実施形態に係る欠陥検査装置１００における検査工程（運用工程）の一例を説明するための模式図である。
【００４９】
図３を参照して、欠陥検査装置１００は、機能構成として、入力バッファ１５２と、前処理部１５４と、ＣＮＮエンジン１５６と、後処理部１７０と、ユーザインターフェイス部１６６とを含む。以下、各機能部について詳細に説明する。なお、図３においてＣＮＮエンジン１５６と、後処理部１７０とが検査部に該当する。
【００５０】
（２−１．入力バッファ１５２）
入力バッファ１５２は、カメラ１０２により撮像された入力画像を一旦格納する。プロセッサ１１０がストレージ１３０に入力画像を記憶することで、入力バッファ１５２が実現される。入力バッファ１５２には、前処理部１５４およびユーザインターフェイス部１６６からのアクセスが可能である。
【００５１】
（２−２．前処理部１５４）
前処理部１５４は、入力バッファ１５２に格納される入力画像に対して必要な前処理を実行する。本実施形態に係る前処理部１５４は、準備工程において前処理フィルタを生成する。前処理フィルタは例えば入力画像を変換するためのパラメータ（フィルタパラメータ）である。そして運用工程においては、入力画像に対して、前処理として準備工程において生成された当該前処理フィルタを入力画像に適用することによって入力画像の変換を変換し前処理済み画像を生成する（図４のＳ１）。このような前処理は、後段にあるＣＮＮエンジン１５６において、より確実に欠陥の特徴を抽出できるように入力画像を加工することを目的としている。前処理の内容については、ユーザインターフェイス部１６６を介してユーザから指定されるようにしてもよい。前処理後の入力画像（前処理済み画像）は、ＣＮＮエンジン１５６へ出力される。なお、前処理フィルタの生成処理及びその機能の詳細については、図５乃至図７Ａ、７Ｂを用いて後述する。
【００５２】
（２−３．ＣＮＮエンジン１５６）
ＣＮＮエンジン１５６は、事前学習された複数のクラスを有するＣＮＮエンジン１５６を入力画像に適用することで、複数のクラスに対応する複数の特徴検出画像をそれぞれ生成する特徴検出画像生成機能を提供する。より具体的には、ＣＮＮエンジン１５６は、所定数のクラスへの分別能力を有するように事前学習されたネットワークを有しており、それぞれのクラスに対応する特徴検出画像（特徴検出画像１，特徴検出画像２，・・・，特徴検出画像Ｎ）を出力する（図４のＳ３）。図４の例では、ワークに生じる４つの欠陥の分類（クラス）として、「白点」、「黒点」、「白線」、「黒線」が示されている。カメラ１０２などにより撮像された入力画像がＣＮＮエンジン１５６に入力されることで、特徴量がこれらのクラス「白点」、「黒点」、「白線」、「黒線」に分類される特徴検出画像がそれぞれ生成される。図４に示す特徴検出画像においては、対応する各特徴を示す領域が他の領域に比較してより濃度が大きくなるように濃淡表示されている。なお、他の領域に比較して濃度を大きく表示する例として、他の領域よりも明るく表示する態様や、他の領域よりも暗くする態様を含み得るが、これらに限られず、所定の特徴を示す領域を区別可能な態様であればいかなる態様でもよい。
【００５３】
ＣＮＮエンジン１５６は事前学習によって、各クラスに対応する特徴画像を検出するための内部パラメータを獲得している。たとえば、「白線」や「黒線」のクラスを検出する場合、内部パラメータは、検出可能な欠陥の幅のピクセル数で表すことが可能である。内部パラメータは事前学習によって与えられた学習画像に含まれていた欠陥の種類に応じて獲得される。
【００５４】
ＣＮＮエンジン１５６にてそれぞれ生成された複数の特徴検出画像は後処理部１７０へ出力されるとともに、ユーザインターフェイス部１６６からのアクセスも可能になっている。
【００５５】
（２−４．後処理部１７０）
後処理部１７０は、ＣＮＮエンジン１５６から出力される複数の特徴検出画像の少なくとも一部の特徴検出画像に対して、後処理を行うことで計測結果を生成する。
【００５６】
具体的には、本構成例において、後処理部１７０は、ＣＮＮエンジン１５６が出力した複数の特徴検出画像のうち、最も適切であると考えられる１つの特徴検出画像を選択し、後処理を実行することにより、計測結果画像を出力する（図４のＳ４）。
【００５７】
例えば、図４の例では、最も適切な特徴検出画像として、「黒線」の特徴検出画像が選択されている。しかし、この例では、「黒線」の特徴検出画像内には「黒点」に相当する特徴量も現れている。すなわち、「黒線」の特徴検出画像および「黒点」の特徴検出画像のいずれにも、点状の特徴部分が共通して現れている。逆に、ある一つの特徴が複数のクラスの特徴検出画像に分裂して現れることもある。このような入力画像に含まれる特徴の種類や大きさによっては、欠陥と欠陥以外（例えば、背景部分）とのパターン分離が難しくなる。このような同一の特徴が複数のクラスの特徴検出画像に現れているような場合には、後処理部１７０は、一方の特徴検出画像から他方の特徴検出画像に現れている特徴を減じるように画像演算処理を実行することで、目的の特徴のみを抽出することができる。
【００５８】
本明細書において、「画像演算処理」は、複数の画像間において、対応する画素の間で四則演算を含む任意の数学的処理を行うことを含む。図４に示す例では、「黒線」の特徴検出画像を構成するそれぞれの画素の輝度値と「黒点」の特徴検出画像を構成するそれぞれの画素の輝度値とを用いて、画素毎に輝度値の差を求める処理が実行される。
【００５９】
なお、画像演算処理は、特徴を減算する処理に限定されず、例えば、加算処理、および、それらの重付き演算処理などを含む。
【００６０】
さらに、後処理部１７０は、演算結果画像に対して２値化処理を含む後処理を実行することで、計測結果画像が得られる。図４に示す計測結果画像においては、「黒線」の特徴検出画像に現れていた、「黒点」を示す特徴が削除または縮小され、入力画像に含まれる特徴（欠陥）が十分に抽出できていることがわかる。
【００６１】
なお、後処理部１７０は、最も適切な特徴検出画像の選択や、実行する画像演算処理の種類、２値化処理に用いる閾値等を、ユーザインターフェイス部１６６を介してユーザから受け付けてもよい。
【００６２】
（２−５．ユーザインターフェイス部１６６）
ユーザインターフェイス部１６６は、前処理部１５４が前処理フィルタ作成処理を行う際に、ユーザから、入力画像において欠陥が含まれる領域（以下「欠陥領域」ともいう。）の指定を受け付ける。また、ユーザインターフェイス部１６６は、ユーザに提示する入力画像の選択を受け付ける。
【００６３】
さらに、ユーザインターフェイス部１６６は、画像計測処理により生成される計測結果画像および画像計測処理の途中過程において生成される画像などを、ディスプレイ１０４を介してユーザへ提示（画像表示）する。具体的には、ユーザインターフェイス部１６６は、欠陥検査装置１００に入力される入力画像、前処理部１５４により生成される前処理済み画像、ＣＮＮエンジン１５６により生成される複数の特徴検出画像の少なくとも一部、および、ＣＮＮエンジン１５６により生成される複数の特徴検出画像の少なくとも一部を用いて後処理部１７０により後処理を行うことで生成される計測結果、のうち少なくとも一方をユーザへ提示する。
【００６４】
ユーザインターフェイス部１６６が提供するユーザインターフェイス画面例については、図８、図９Ａ乃至９Ｃを用いて後述する。
【００６５】
＜３．前処理フィルタ生成処理＞
次に、図５を参照して、前処理部１５４の前処理フィルタ作成処理の詳細について説明する。図５は、前処理フィルタ生成処理の流れの一例を示すフローチャートである。図５の例では、入力画像のサイズを変換（拡大又は縮小）する前処理フィルタが生成される。しかし、前処理部１５４が生成する前処理フィルタはこれに限定されず、画像の面積や明度や彩度を変換する前処理フィルタが生成されてもよい。前処理フィルタの作成処理は、前述の準備工程において行われることが好ましい。
【００６６】
前処理フィルタ生成処理に先立って、まず、欠陥検査装置１００に入力される入力画像から、前処理フィルタを生成するための画像（以下「前処理画像」ともいう。）がユーザ等によって選ばれる。前処理画像は、欠陥を含む検査対象の画像である。特に、前処理画像は、学習済みのＣＮＮエンジン１５６の内部パラメータでは検出できない大きさ、種類の欠陥を含む、すなわち、事前学習した学習済みのＣＮＮエンジンが有する特徴量から逸脱した特徴を有する欠陥を含む、検査対象の画像であることが望ましい。
【００６７】
次に、前処理部１５４は、前処理画像に対する欠陥領域の指定を、ユーザインターフェイス部１６６を介して受け付ける（Ｓ１０１）。図６は指定された欠陥領域の一例を示す図である。図６においては、矩形ＧＴが欠陥領域に対応する。なお、欠陥領域は矩形に限定されず、面積をもった任意の形状でよい。
【００６８】
図５に戻りフローの続きを説明する。前処理部１５４は、拡縮率Ｓに初期値として１を設定する（Ｓ１０２）。次に、前処理部１５４は、前処理画像を拡縮率Ｓで拡大又は縮小（以下「変動」という。）し（Ｓ１０３）、前処理済み画像を生成する。続いて、前処理部１５４は、変動後の画像（前処理済み画像）のうち、少なくとも欠陥領域を含む部分をＣＮＮエンジン１５６へ入力する。ＣＮＮエンジン１５６は入力された前処理済み画像から特徴検出画像を作成する（Ｓ１０４）。
【００６９】
ＣＮＮエンジン１５６が作成した特徴検出画像について、前処理部１５４は、スコア算出を行う（Ｓ１０５）。具体的には、前処理部１５４は、欠陥領域内における特徴検出画像の濃度の平均と、欠陥領域外の領域（以下「背景領域」ともいう。）における特徴検出画像の濃度の平均との差を、スコアとして算出する。上述のとおり特徴検出画像は、ＣＮＮエンジン１５６の内部パラメータに対応する特徴を示す領域が他の領域に比較してより濃度が大きくなるように濃淡によって表される。したがって、前処理画像を適切な拡縮率Ｓで変動させて、欠陥領域内で適切に欠陥の特徴が検出される場合（すなわち欠陥に対する見逃しが起きない場合）には、欠陥領域内の濃度は大きくなる。他方、欠陥領域外で欠陥の特徴が検出されない場合（すなわち見過ぎが起きない場合）には、欠陥領域外の濃度は小さくなる。なお、図５、及び、図６に示す例では、欠陥領域外の領域全てを背景領域として用いる例について説明したが、この例に限られない。例えば、背景領域に欠陥以外の所定の模様がある場合等に対応することを目的に、背景領域として、予め指定された領域を用いてもよく、また、欠陥以外の領域に含まれる所定の模様等を比較の対象外とするためのマスク処理を行って、欠陥以外の領域の特定の領域を背景領域として設定してもよい。
【００７０】
なお、上述のとおり、ＣＮＮエンジン１５６が出力する特徴検出画像は複数のクラスに分類されるところ、いずれのクラスの特徴検出画像に基づいてスコアを算出するかは、ユーザの指定を受け付けることが望ましい。しかしこれに限定されず、前処理部１５４はすべてのクラスの特徴検出画像についてスコアを算出し、スコアが最大となるクラスを選択してもよい。
【００７１】
スコアを算出すると、前処理部１５４は、拡縮率Ｓに２Ｓを代入する（Ｓ１０６）。
前処理部１５４は、上記のＳ１０１からＳ１０６までの処理を所定の終了条件を満たす（Ｓ１０７）まで繰り返し実行する。例えば、前処理部１５４は、前処理画像のサイズが所定の面積より小さくなる場合や、スコアがある値に収束した場合に、終了条件を満たしたと判定し（Ｓ１０７：ＹＥＳ）、繰り返し処理を脱出して、Ｓ１０８の処理に進む。Ｓ１０８においては、前処理部１５４は、スコアが最大となるときのＳを選択し、選択したＳ倍で入力画像を変動する前処理フィルタを生成する（Ｓ１０８）。
【００７２】
ここで、図７Ａ及び図７Ｂを参照して、このように生成された前処理フィルタの有用性について説明する。図７Ａ，及び図７Ｂにおいては、一例としてそれぞれ「黒線」クラス、「白線」クラスに分類される特徴を有する欠陥を含む入力画像を例にとって説明する。
【００７３】
図７Ａは、前処理フィルタが適用されることにより、入力画像に含まれる欠陥の特徴量が、学習済みの内部パラメータで検出可能な特徴量を逸脱していた場合に、未検出（欠陥の見逃し）が発生するのを防止可能な理由を説明するための模式図である。
【００７４】
図７Ａでは、入力画像に含まれる欠陥は幅（Ｔｔｅｓｔ）が、学習済みＣＮＮエンジン１５６で検出可能な幅の最大値（Ｔｍａｘ）を逸脱している。したがって、前処理を行わずにＣＮＮエンジン１５６に入力されると、このような入力画像は、適切なクラスに分類されない。
【００７５】
この場合、前処理部１５４は、入力画像のサイズを縮小率（拡縮率）Ｓ倍で縮小する前処理フィルタを適用することで、前処理済み画像に含まれる欠陥の幅（特徴量）は、ＣＮＮエンジン１５６で検出可能な幅（特徴量）の最大値（Ｔｍａｘ）より小さくなる。これによって、学習済みＣＮＮエンジンによって、欠陥を検出することが可能になる。
【００７６】
他方、図７Ｂは、背景のテクスチャ等、欠陥ではない画像の特徴が学習済みの内部パラメータで検出可能な特徴量に収まっていた場合に、誤検出（見過ぎ）が発生するのを防ぐ例である。図７Ｂの例では背景のテクスチャの幅Ｔｔｅｓｔが、学習済みＣＮＮエンジン１５６で検出可能な幅の範囲に収まってしまっている（Ｔｍｉｎ≦Ｔｔｅｓｔ≦Ｔｍａｘ）。
【００７７】
前処理部１５４は、入力画像のサイズを縮小率（拡縮率）Ｓ倍で拡大又は縮小する前処理フィルタを適用することで、前処理済み画像に含まれる欠陥の幅は、Ｔｍｉｎより小さくなる。これによって、学習済みＣＮＮエンジンによって、誤検出を防ぐことが可能になる。
【００７８】
このように、本実施形態に係る欠陥検査装置１００によれば、ＣＮＮエンジンが事前学習で獲得した内部パラメータで、欠陥を適切に検出可能となるように、入力画像を変換する前処理フィルタを適用する。これによって、事前学習されたＣＮＮエンジンの汎用性を向上させ、様々な検査対象や背景画像において柔軟に利用可能としている。
【００７９】
なお、本適用例において、入力画像のサイズを変動させる例について説明したが、入力画像のサイズを拡大することにより、前処理画像における欠陥を含む欠陥領域の特徴量の幅が、内部パラメータに対応した特徴量の範囲に含まれるように、または、前処理画像における背景領域のパターンの幅が、内部パラメータに対応した特徴量の範囲から逸脱するように、拡縮率Ｓを変更するようにしてもよい。
【００８０】
＜４．ユーザインターフェイス画面例＞
次に、図８、及び図９Ａ乃至９Ｃを参照して本実施の形態に係る欠陥検査装置１００が提供するユーザインターフェイス画面のいくつかの例を説明する。
【００８１】
図８は、本実施形態に係る欠陥検査装置１００が提供する欠陥領域入力画面２００の一例を示す模式図である。図８の例では、欠陥領域入力画面２００は、図形登録領域２０１と、座標入力領域２０２と表示領域２０３を有している。
【００８２】
図形登録領域２０１は、図形ボタン２１１を含んでいる。ユーザは、図形ボタン２１１から、所望の形状の図形のボタンを選択することで、欠陥領域を特定する図形を選択することができる。図８の例では、図形ボタン２１１として、正方形や長方形、円形、五角形、円弧形、同心円が表示されているがこれに限定されず、任意の図形を設定可能である。また、図形を選択する方法はボタンに限定されず、プルダウンやチェックボックス、ラジオボタン等でもよい。
【００８３】
座標入力領域２０２は、欠陥領域の座標の入力を受け付ける。図８の例では、ユーザは座標入力領域２０２において、欠陥領域の左上と右上との座標を入力することで、欠陥領域ＧＴを指定することができる。ユーザが指定した欠陥領域ＧＴは、表示領域２０３に表示される。
【００８４】
なお、欠陥領域の指定方法は、図８の例に限定されない。例えば、欠陥領域は、表示領域２０３に表示された画像に直接描画することによって、入力される構成でもよい。
【００８５】
図９Ａ乃至９Ｃは、本実施形態に係る欠陥検査装置１００が提供する処理画像表示画面２３０の一例を示す模式図である。処理画像表示画面２３０は、選択領域２３１と、画像表示領域２３２とを有している。
【００８６】
選択領域２３１は、ラジオボタン群２３３を有している。ユーザはラジオボタン群２３３に対する選択操作を与えて、画像表示領域２３２に表示させる画像の種類を選択する。例えば、選択領域２３１においては、元画像（入力画像）と、前処理後の画像（前処理済み画像）と、計測結果画像とから、画像表示領域２３２に表示させる画像を選択することができる。
【００８７】
図９Ａは画像表示領域２３２に元画像が表示されている例を示している。図９Ａに示すように元画像では、円Ｆで示す領域には、欠陥は視認できない。他方、図９Ｂは計測結果画像が表示されている例を示している。また、図９Ｃは前処理後の画像（前処理済み画像）が表示されている例を示している。計測結果画像においては円Ｆで示す領域に、白点が検出されている。ここで、前処理後の画像（前処理済み画像）においても、円Ｆの領域には、薄い点が表示されていることから、計測結果画像の円Ｆに表示される白点は、欠陥ではなく、前処理によって発生してしまったノイズであることが分かる。
【００８８】
このように、本実施形態に係る欠陥検査装置１００は、ユーザに対して、前処理後の中間画像（前処理済み画像）を提示することによって、ユーザが計測結果画像を確認した際に、欠陥が誤検出された理由が、ＣＮＮエンジン１５６によるものなのか、前処理によるノイズであるのかを把握できるようになる。
【００８９】
§３  動作例
次に、本実施の形態に係る欠陥検査システム１における動作例について説明する。本実施の形態に係る欠陥検査システム１においては、画像計測処理に係る前処理フィルタを生成するための準備工程と、現実に対象のワークを撮像して画像計測処理を実行する運用工程とが存在する。なお、準備工程の処理シーケンスと、運用工程の処理シーケンスとは、前述の入力部を用いて、ユーザが選択することができる。また、運用工程の処理シーケンスにおいて、検査結果（例えば、欠陥の有無、欠陥に対応する領域の大きさ、当該領域の位置などの情報をいう。）の内容に応じて、設定された前処理フィルタを更新する処理を実行するようにしてもよい。例えば、運用工程の処理シーケンスにおいて、未検出の欠陥が所定回数生じた場合に、前述の前処理フィルタのフィルタパラメータを、未検出の欠陥が含まれる画像（以下、「未検出画像」ともいう。）に基づき、更新するようにしてもよい。
【００９０】
図１０は、本実施の形態に係る欠陥検査システム１における準備工程の処理手順を示すフローチャートである。図１１は、本実施の形態に係る欠陥検査システム１における運用工程の処理手順を示すフローチャートである。図１０および図１１に示す処理手順の各ステップは、典型的には、欠陥検査装置１００のプロセッサ１１０が画像処理プログラム１３２などを実行することで実現される。
【００９１】
図１０を参照して、準備工程において、欠陥検査装置１００は、画像計測処理の基準となるワークを所定位置に配置した状態でカメラ１０２を用いて撮像して得られる入力画像を取得する（ステップＳ２０１）。このとき、カメラ１０２がワークを撮像することで生成される入力画像（画像データ）は、欠陥検査装置１００へ転送されて、欠陥検査装置１００のメインメモリ１１２に展開される。続いて、欠陥検査装置１００は、取得した入力画像を用いて、上述の前処理フィルタ生成処理を行い、スコアが最大となる拡縮率Ｓを決定する（ステップＳ２０２）。
【００９２】
さらに、欠陥検査装置１００は、決定した拡縮率Ｓで入力画像を変換するための前処理フィルタ生成し格納する（ステップＳ２０３）。そして、準備工程での処理は終了する。
【００９３】
図１１を参照して、運用工程において、欠陥検査装置１００は、画像計測処理の基準となるワークがカメラ１０２の撮像視野６に到着すると、カメラ１０２を用いて当該ワークを撮像して得られる入力画像を取得する（ステップＳ３０１）。このとき、カメラ１０２がワークを撮像することで生成される入力画像（画像データ）は、欠陥検査装置１００へ転送されて、欠陥検査装置１００のメインメモリ１１２に展開される。
【００９４】
続いて、欠陥検査装置１００は、取得した入力画像に対して前処理を実行する（ステップＳ３０２）。さらに、欠陥検査装置１００は、事前学習されたＣＮＮを有する識別器を含むＣＮＮエンジンを用いて、前処理後の入力画像から１または複数の特徴の分類（クラス）毎に特徴を抽出する処理を実行する。欠陥検査装置１００は、この特徴を抽出する処理によって、１または複数のクラス毎の特徴検出画像を生成する（ステップＳ３０３）。
【００９５】
続いて、欠陥検査装置１００は、後処理を実行して、計測結果画像を生成する（ステップＳ３０４）。
【００９６】
最終的に、欠陥検査装置１００は、生成した計測結果画像を出力する（ステップＳ２１２）。計測結果画像の出力先としては、ディスプレイ１０４などであってもよいし、上位ネットワーク８を介して接続されている、ＰＬＣ１０および／またはデータベース装置１２であってもよい。そして、運用工程の処理は終了する。なお、欠陥検査装置１００は、計測結果画像に代えて、または、計測結果画像とともに、検査対象に欠陥が含まれているか否かの情報を少なくとも含む検査結果を出力してもよい。検査結果は、例えば、生産ラインにおいて検査対象の仕分けを行う所定の動作機械に送付される。これによれば、動作機械は、検査結果に応じた検査対象の自動仕分けを実行することができる。
【００９７】
なお、図１１に示す運用工程の処理手順が開始される条件は、ワークの到着を検出するタイミングセンサからのトリガ信号、上位装置からの実行開始指令、ユーザからの指示のいずれであってもよい。
【００９８】
＜Ｈ．利点＞
本実施の形態に係る欠陥検査装置は、事前学習された複数のクラスを有するＣＮＮエンジンの汎用性を向上させ、任意の被検査対象に対する画像計測処理に適用可能にする。このような事前学習されたＣＮＮエンジンを用いた場合には、当該事前学習によってＣＮＮエンジンが獲得した内部パラメータで検出可能な欠陥の特徴量から、実際の検査工程に含まれる欠陥の特徴量が逸脱してしまう場合などが生じ得る。
【００９９】
目的とする被検査対象に応じてＣＮＮエンジンを再学習するなどの対処をとることもできるが、目的とする被検査対象が頻繁に変化するようなアプリケーションにおいては、現実的な対処ではない。そこで、本実施の形態においては、実際の検査工程で用いられる入力画像を変換する前処理フィルタを有している。これによって、実際の検査工程に含まれる欠陥の特徴量が、内部パラメータで検出可能な特徴量の範囲に含まれるように変換することができ、事前学習されたＣＮＮエンジンを汎用的に利用可能にする。
【０１００】
また、本実施の形態に係る欠陥検査装置は、画像計測処理の過程において生成される画像を比較可能にユーザへ提示することができる。例えば、入力画像、前処理済み画像、特徴検出画像、及び計測結果画像をユーザへ提示したりすることができる。
【０１０１】
このような各過程で生成される画像を確認することで、例えば計測結果画像に誤って検出された欠陥が含まれていた場合に、ユーザは、当該誤検出の原因を特定することができる。
【０１０２】
§４  変形例
以上、本発明の実施の形態を詳細に説明してきたが、上述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組合せ可能である。
【０１０３】
例えば、既述の実施形態では、前処理部１５４は、前処理画像のサイズを変換する前処理フィルタを生成する例について説明した。しかし、これに限定されず、前処理部１５４は、明度を平坦化するための前処理フィルタを生成してもよい。
【０１０４】
図１２及び図１３を参照して、明度を平坦化するための前処理フィルタを生成する処理について説明する。図１２は、縦ｘ、横ｙの大きさの元画像が、所定の特徴サイズ（１辺がＦの正方形）の特徴のみのコントラストを強調するように前処理を施した場合の例を示している。元の画像をＩ、前処理後の画像をＩ’とすると、前処理部１５４は、以下の式１に示すアルゴリズムを用いて、所定のサイズの特徴についてコントラストを強調することができる
【０１０５】
【数１】
2019091249.tif 000003
【０１０６】
図１３は、上記のアルゴリズムを用いた、前処理部１５４の前処理フィルタ作成処理の流れの変形例を示すフローチャートである。図１３を参照し、図５に示したフローチャートとの違いについて主に説明する。
【０１０７】
この例では、前処理部１５４は、Ｓ１０３の処理において前処理画像を倍率Ｓで拡大又は縮小したのち、特徴サイズＦを、指定された欠陥領域のサイズで初期化する（Ｓ１１１）。例えば、前処理部１５４は、欠陥領域の高さと幅の平均値を、特徴サイズＦに設定する。
【０１０８】
次に、前処理部１５４は、上記式１のアルゴリズムを用いて、前処理画像の明度を平坦化し、前処理済み画像を生成する（Ｓ１１２）。その後、図５の例と同様に、前処理済み画像をＣＮＮエンジン１５６へ入力し、特徴検出画像を作成させ（Ｓ１０４）、スコアを算出する（Ｓ１０５）。その後、前処理部１５４は、特徴サイズＦに２Ｆを代入し（Ｓ１１３）、終了条件を満たしたと判定するまで（Ｓ１１５）、Ｓ１１２、Ｓ１０４、Ｓ１０５、Ｓ１１３の処理を繰り返し実行する。この処理を各拡縮率Ｓに対して所定の終了条件を満たすまで（Ｓ１０７：ＹＥＳ）、繰り返し実行する。
【０１０９】
これによって、前処理部１５４は、スコアを最大にする拡縮率、及び特徴サイズを前処理フィルタに設定することができる（Ｓ１１７）。その他の構成、効果は既述の実施形態と同様である。
【０１１０】
なお、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記１）
少なくとも１つのメモリと前記メモリに接続された少なくとも１つのハードウェアプロセッサを備え、
前記メモリには、学習済みモデルと当該学習済みモデルに設定された内部パラメータが記憶され、
前記ハードウェアプロセッサは、
所定の条件で撮影された検査対象の画像を取得し、
前記取得された欠陥を含む検査対象の画像である前処理画像における特徴量と、前記内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成し、生成した前記前処理フィルタを前記取得部で取得された検査対象の画像である検査画像に適用して当該検査画像を変換することで、前処理済み画像を生成する前処理部と、
前記前処理済み画像に対して、前記記憶された学習済みモデルを用いて、前記検査対象の欠陥の有無を検査する、
ことを特徴とする欠陥検査装置。
（付記２）
少なくとも１つ以上のハードウェアプロセッサによって、
学習済みモデルと当該学習済みモデルに設定された内部パラメータを記憶するステップと、
所定の条件で撮影された検査対象の画像を取得するステップと、
前記取得するステップによって取得された欠陥を含む検査対象の前処理画像における特徴量と、前記内部パラメータに対応した特徴量とに応じて所定の前処理フィルタを生成し、生成した前記前処理フィルタを取得された検査対象の画像である検査画像に適用し手当該検査画像を変換することで、前処理済み画像を生成するステップと、
前記前処理済み画像に対して、前記記憶された学習済みモデルを用いて、前記検査対象の欠陥の有無を検査するステップと、
を実行する欠陥検査方法。
【符号の説明】
【０１１１】
１  欠陥検査システム
２  特徴検出画像
２  ベルトコンベア
４  ワーク
６  撮像視野
８  上位ネットワーク
１２  データベース装置
１００  欠陥検査装置
１０２  カメラ
１０４  ディスプレイ
１０６  キーボード
１０８  マウス
１１０  プロセッサ
１１２  メインメモリ
１１４  カメラインターフェイス
１１６  入力インターフェイス
１１８  表示インターフェイス
１２０  通信インターフェイス
１２２  内部バス
１３０  ストレージ
１３２  画像処理プログラム
１３６  前処理フィルタ
１３８  入力画像
１４０  計測結果
１５２  入力バッファ
１５４  前処理部
１５６  エンジン
１６６  ユーザインターフェイス部
１７０  後処理部
２００  欠陥領域入力画面
２０１  図形登録領域
２０２  座標入力領域
２０３  表示領域
２１１  図形ボタン
２３０  処理画像表示画面
２３１  選択領域
２３２  画像表示領域
２３３  ラジオボタン群
【図１】
2019091249.tif 000004
【図２】
2019091249.tif 000005
【図３】
2019091249.tif 000006
【図４】
2019091249.tif 000007
【図５】
2019091249.tif 000008
【図６】
2019091249.tif 000009
【図７Ａ】
2019091249.tif 000010
【図７Ｂ】
2019091249.tif 000011
【図８】
2019091249.tif 000012
【図９Ａ】
2019091249.tif 000013
【図９Ｂ】
2019091249.tif 000014
【図９Ｃ】
2019091249.tif 000015
【図１０】
2019091249.tif 000016
【図１１】
2019091249.tif 000017
【図１２】
2019091249.tif 000018
【図１３】
2019091249.tif 000019