(57)【要約】【課題】検査用の適切な画像データを生成する。【解決手段】  撮影された検査対象の製品を表す対象入力画像データを学習済モデルに入力することによって、欠陥の無い検査対象の製品の画像を表す対象出力画像データを取得する。学習済モデルは、学習済モデルに入力された製品の画像を表す画像データに対するデータ圧縮とデータ解凍とを行うことによって、欠陥の無い製品の画像を表す画像データを出力するようにトレーニングされた学習済モデルである。対象入力画像データに輝度調整処理を含む第１生成処理を行うことによって、第１比較データを生成する。取得部により取得された対象出力画像データに輝度調整処理を含む第２生成処理を行うことによって、第２比較データを生成する。第１比較データと第２比較データとの差分を用いて、検査用の画像を表す検査画像データを生成する。【選択図】  図６
2020160616.tif 000002
【特許請求の範囲】
【請求項１】
製品の外観の検査用の画像データを生成する生成装置であって、
撮影された検査対象の製品を表す対象入力画像データを学習済モデルに入力することによって、欠陥の無い前記検査対象の製品の画像を表す対象出力画像データを取得する取得部であって、前記学習済モデルは、前記学習済モデルに入力された前記製品の画像を表す画像データに対するデータ圧縮とデータ解凍とを行うことによって、欠陥の無い製品の画像を表す画像データを出力するようにトレーニングされた学習済モデルである、前記取得部と、
前記対象入力画像データに輝度調整処理を含む第１生成処理を行うことによって、第１比較データを生成する第１比較データ生成部と、
前記取得部により取得された前記対象出力画像データに前記輝度調整処理を含む第２生成処理を行うことによって、第２比較データを生成する第２比較データ生成部と、
前記第１比較データと前記第２比較データとの差分を用いて、検査用の画像を表す検査画像データを生成する検査画像データ生成部と、
を備える、生成装置。
【請求項２】
請求項１に記載の生成装置であって、
前記輝度調整処理は、輝度値の可能な全範囲のうちの一部の範囲であって輝度値の分布を用いて特定される前記一部の範囲である対象輝度範囲のコントラストを強調する処理である、
生成装置。
【請求項３】
請求項２に記載の生成装置であって、
前記輝度調整処理は、
（Ａ）第１調整処理であって、前記輝度値分布を用いて特定される第１統計値以上の範囲である前記対象輝度範囲のコントラストを強調する処理と、前記第１統計値未満の輝度値をゼロに設定する処理と、を含む前記第１調整処理と、
（Ｂ）第２調整処理であって、前記輝度値分布を用いて特定される第２統計値以下の範囲である前記対象輝度範囲のコントラストを強調する処理と、前記第２統計値を超える輝度値を、前記輝度値の可能な最大値に設定する処理と、を含む前記第２調整処理と、
（Ｃ）第３調整処理であって、前記輝度値分布を用いて特定される下限値と上限値との間の範囲である前記対象輝度範囲のコントラストを強調する処理と、前記下限値未満の輝度値をゼロに設定する処理と、前記上限値を超える輝度値を、前記輝度値の可能な最大値に設定する処理と、を含む前記第３調整処理と、
のうちにいずれかの処理を含む、
生成装置。
【請求項４】
請求項３に記載の生成装置であって、
前記第１統計値と前記第２統計値とは、ゼロよりも大きく前記輝度値の可能な最大値よりも小さい前記輝度値の範囲における前記輝度値分布の最大のピークに対応する輝度値である、
生成装置。
【請求項５】
請求項１から４のいずれかに記載の生成装置であって、
前記第１生成処理と前記第２生成処理とは、前記輝度調整処理の後のノイズ低減処理を含む、
生成装置。
【請求項６】
請求項５に記載の生成装置であって、
前記ノイズ低減処理は、二値化処理を含む、
生成装置。
【請求項７】
製品の外観の検査用の画像データを生成するコンピュータのためのコンピュータプログラムであって、
撮影された検査対象の製品を表す対象入力画像データを学習済モデルに入力することによって、欠陥の無い前記検査対象の製品の画像を表す対象出力画像データを取得する取得機能であって、前記学習済モデルは、前記学習済モデルに入力された前記製品の画像を表す画像データに対するデータ圧縮とデータ解凍とを行うことによって、欠陥の無い製品の画像を表す画像データを出力するようにトレーニングされた学習済モデルである、前記取得機能と、
前記対象入力画像データに輝度調整処理を含む生成処理を行うことによって、第１比較データを生成する第１比較データ生成機能と、
前記取得機能により取得された前記対象出力画像データに前記輝度調整処理を含む前記生成処理を行うことによって、第２比較データを生成する第２比較データ生成機能と、
前記第１比較データと前記第２比較データとの差分を用いて、検査用の画像を表す検査画像データを生成する検査画像データ生成機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムであって、
前記輝度調整処理は、輝度値の可能な全範囲のうちの一部の範囲であって輝度値の分布を用いて特定される前記一部の範囲である対象輝度範囲のコントラストを強調する処理である、
コンピュータプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムであって、
前記輝度調整処理は、
（Ａ）第１調整処理であって、前記輝度値分布を用いて特定される第１統計値以上の範囲である前記対象輝度範囲のコントラストを強調する処理と、前記第１統計値未満の輝度値をゼロに設定する処理と、を含む前記第１調整処理と、
（Ｂ）第２調整処理であって、前記輝度値分布を用いて特定される第２統計値以下の範囲である前記対象輝度範囲のコントラストを強調する処理と、前記第２統計値を超える輝度値を、前記輝度値の可能な最大値に設定する処理と、を含む前記第２調整処理と、
（Ｃ）第３調整処理であって、前記輝度値分布を用いて特定される下限値と上限値との間の範囲である前記対象輝度範囲のコントラストを強調する処理と、前記下限値未満の輝度値をゼロに設定する処理と、前記上限値を超える輝度値を、前記輝度値の可能な最大値に設定する処理と、を含む前記第３調整処理と、
のうちにいずれかの処理を含む、
コンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムであって、
前記第１統計値と前記第２統計値とは、ゼロよりも大きく前記輝度値の可能な最大値よりも小さい前記輝度値の範囲における前記輝度値分布の最大のピークに対応する輝度値である、
コンピュータプログラム。
【請求項１１】
請求項７から１０のいずれかに記載のコンピュータプログラムであって、
前記生成処理は、前記輝度調整処理の後のノイズ低減処理を含む、
コンピュータプログラム。
【請求項１２】
請求項１１に記載のコンピュータプログラムであって、
前記ノイズ低減処理は、二値化処理を含む、
コンピュータプログラム。
【請求項１３】
製品の外観の検査用の画像データを生成する生成方法であって、
撮影された検査対象の製品を表す対象入力画像データを学習済モデルに入力することによって、欠陥の無い前記検査対象の製品の画像を表す対象出力画像データを取得する取得工程であって、前記学習済モデルは、前記学習済モデルに入力された前記製品の画像を表す画像データに対するデータ圧縮とデータ解凍とを行うことによって、欠陥の無い製品の画像を表す画像データを出力するようにトレーニングされた学習済モデルである、前記取得工程と、
前記対象入力画像データに輝度調整処理を含む生成処理を行うことによって、第１比較データを生成する第１比較データ生成工程と、
前記取得工程にて取得された前記対象出力画像データに前記輝度調整処理を含む前記生成処理を行うことによって、第２比較データを生成する第２比較データ生成工程と、
前記第１比較データと前記第２比較データとの差分を用いて、検査用の画像を表す検査画像データを生成する検査画像データ生成工程と、
を備える、生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、画像データを用いて製品を検査する技術に関する。
【背景技術】
【０００２】
画像を用いて外観を検査する以下の技術が提案されている。検査対象物を撮像し、撮像した画像を基準画像（たとえば良品を撮像した画像）や基準画像から作成したモデル画像と比較して、検査対象物に欠陥等が存在するか否かの判断を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−９６７４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記技術では、検査画像内での検査合格品の規範パターンの位置と姿勢が特定され、特定された位置および姿勢に応じて検査領域の位置と姿勢の補正量が決定される。ところが、検査に適さない検査画像が、種々の原因によって生成され得る。例えば、検査対象物の撮像の条件（例えば、環境光やカメラのＴ値などの明るさの条件）の基準からのズレに起因して、位置を適切に補正できない場合があった。また、検査対象物のうちの規範パターンの特徴的な部分に対応する部分に傷などの欠陥が存在する場合に、位置を適切に補正できない場合があった。
【０００５】
本明細書は、検査用の適切な画像データを生成する技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【０００７】
［適用例１］製品の外観の検査用の画像データを生成する生成装置であって、撮影された検査対象の製品を表す対象入力画像データを学習済モデルに入力することによって、欠陥の無い前記検査対象の製品の画像を表す対象出力画像データを取得する取得部であって、前記学習済モデルは、前記学習済モデルに入力された前記製品の画像を表す画像データに対するデータ圧縮とデータ解凍とを行うことによって、欠陥の無い製品の画像を表す画像データを出力するようにトレーニングされた学習済モデルである、前記取得部と、前記対象入力画像データに輝度調整処理を含む第１生成処理を行うことによって、第１比較データを生成する第１比較データ生成部と、前記取得部により取得された前記対象出力画像データに前記輝度調整処理を含む第２生成処理を行うことによって、第２比較データを生成する第２比較データ生成部と、前記第１比較データと前記第２比較データとの差分を用いて、検査用の画像を表す検査画像データを生成する検査画像データ生成部と、を備える、生成装置。
【０００８】
この構成によれば、検査画像データが、対象入力画像データに輝度調整処理を含む生成処理を行うことによって生成される第１比較データと、学習済モデルを用いて取得される対象出力画像データに輝度調整処理を含む生成処理を行うことによって生成される第２比較データと、の差分を用いて生成されるので、検査対象の製品が欠陥を有する場合に、検査画像データは、適切に、欠陥を表すことができる。
【０００９】
［適用例２］適用例１に記載の生成装置であって、前記輝度調整処理は、輝度値の可能な全範囲のうちの一部の範囲であって輝度値の分布を用いて特定される前記一部の範囲である対象輝度範囲のコントラストを強調する処理である、生成装置。
【００１０】
この構成によれば、輝度値分布を用いて特定される対象輝度範囲のコントラストが強調された比較用の画像データを用いて検査画像データが生成されるので、検査対象の製品が欠陥を有する場合に、検査画像データは、適切に、欠陥を表すことができる。
【００１１】
［適用例３］適用例２に記載の生成装置であって、前記輝度調整処理は、（Ａ）第１調整処理であって、前記輝度値分布を用いて特定される第１統計値以上の範囲である前記対象輝度範囲のコントラストを強調する処理と、前記第１統計値未満の輝度値をゼロに設定する処理と、を含む前記第１調整処理と、（Ｂ）第２調整処理であって、前記輝度値分布を用いて特定される第２統計値以下の範囲である前記対象輝度範囲のコントラストを強調する処理と、前記第２統計値を超える輝度値を、前記輝度値の可能な最大値に設定する処理と、を含む前記第２調整処理と、（Ｃ）第３調整処理であって、前記輝度値分布を用いて特定される下限値と上限値との間の範囲である前記対象輝度範囲のコントラストを強調する処理と、前記下限値未満の輝度値をゼロに設定する処理と、前記上限値を超える輝度値を、前記輝度値の可能な最大値に設定する処理と、を含む前記第３調整処理と、のうちにいずれかの処理を含む、生成装置。
【００１２】
この構成によれば、検査対象の製品が欠陥を有する場合に、画像内の製品のうちの欠陥の部分と欠陥以外の部分との間の輝度差を大きくできるので、検査画像データは、適切に、欠陥を表すことができる。
【００１３】
［適用例４］適用例３に記載の生成装置であって、前記第１統計値と前記第２統計値とは、ゼロよりも大きく前記輝度値の可能な最大値よりも小さい前記輝度値の範囲における前記輝度値分布の最大のピークに対応する輝度値である、生成装置。
【００１４】
この構成によれば、検査対象の製品が欠陥を有する場合に、画像内の製品のうちの欠陥の部分と欠陥以外の部分との間の輝度差を大きくできるので、検査画像データは、適切に、欠陥を表すことができる。
【００１５】
［適用例５］適用例１から４のいずれかに記載の生成装置であって、前記第１生成処理と前記第２生成処理とは、前記輝度調整処理の後のノイズ低減処理を含む、生成装置。
【００１６】
この構成によれば、ノイズの影響が緩和されるので、検査対象の製品が欠陥を有する場合に、検査画像データは、適切に、欠陥を表すことができる。
【００１７】
［適用例６］適用例５に記載の生成装置であって、前記ノイズ低減処理は、二値化処理を含む、生成装置。
【００１８】
この構成によれば、二値化処理によってノイズの影響が適切に緩和されるので、検査対象の製品が欠陥を有する場合に、検査画像データは、適切に、欠陥を表すことができる。
【００１９】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、画像データの生成方法および生成装置、画像データを用いる判断方法および判断装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体（例えば、一時的ではない記録媒体）、等の形態で実現することができる。
【図面の簡単な説明】
【００２０】
【図１】実施例の検査システムを示す説明図である。
【図２】人工ニューラルネットワークＮＮの例の説明図である。
【図３】トレーニングの処理の例を示すフローチャートである。
【図４】（Ａ）は、撮影画像の例を示す説明図である。（Ｂ）は、学習画像の例を示す説明図である。（Ｃ）は、出力画像の例を示す説明図である。
【図５】検査処理の例を示すフローチャートである。
【図６】検査画像データの生成処理の例を示すフローチャートである。
【図７】（Ａ）は、対象撮影画像の例を示す説明図である。（Ｂ）は、対象入力画像の例を示す説明図である。（Ｃ）は、対象出力画像の例を示す説明図である。（Ｄ）は、輝度調整済の画像の例を示す説明図である。（Ｅ）は、二値化済の画像の例を示す説明図である。（Ｆ）は、輝度調整済の画像の例を示す説明図である。（Ｇ）は、二値化済の画像の例を示す説明図である。
【図８】輝度調整処理の例を示すフローチャートである。
【図９】（Ａ）は、輝度値のヒストグラムの例を示すグラフである。（Ｂ）は、対応関係の例を示すグラフである。
【図１０】（Ａ）は、差分画像の例を示す説明図である。（Ｂ）は、差分画像に画像縮小処理を行って得られる画像の例である。（Ｃ）は、画像拡大処理を行って得られる検査画像の例である。（Ｄ）は、検査画像の別の例である。（Ｅ）は、合成画像の例を示す説明図である。
【図１１】（Ａ）は、輝度値のヒストグラムの例を示すグラフである。（Ｂ）は、対応関係の例を示すグラフである。
【図１２】（Ａ）は、輝度値のヒストグラムの例を示すグラフである。（Ｂ）は、対応関係の例を示すグラフである。
【発明を実施するための形態】
【００２１】
Ａ．第１実施例：
Ａ１．装置構成：
図１は、実施例の検査システムを示す説明図である。検査システム１０００は、製品７００の外観の検査を行うためのシステムである。製品７００は、任意の製品であってよく、予め決められている。製品７００は、例えば、複合機、スキャナ、デジタルカメラ、プリンタなどの装置の部品であってよい。
【００２２】
検査システム１０００は、データ処理装置２００と、データ処理装置２００に接続されたデジタルカメラ１００と、を備えている。データ処理装置２００は、例えば、パーソナルコンピュータである。データ処理装置２００は、プロセッサ２１０と、記憶装置２１５と、画像を表示する表示部２４０と、ユーザによる操作を受け入れる操作部２５０と、通信インタフェース２７０と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置２１５は、揮発性記憶装置２２０と、不揮発性記憶装置２３０と、を含んでいる。
【００２３】
プロセッサ２１０は、データ処理を行う装置であり、例えば、ＣＰＵである。揮発性記憶装置２２０は、例えば、ＤＲＡＭであり、不揮発性記憶装置２３０は、例えば、フラッシュメモリである。
【００２４】
不揮発性記憶装置２３０は、第１プログラム２３２と、第２プログラム２３３と、学習済モデル２３４と、を格納している。学習済モデル２３４は、製品７００の画像を表す画像データに対するデータ圧縮とデータ解凍とを行うことによって、欠陥を有した製品７００についての画像の画像データを入力したとしても欠陥の無い製品７００の画像を表す画像データを出力するようにトレーニングされた予測モデルである。本実施例では、学習済モデル２３４は、オートエンコーダとも呼ばれる人工ニューラルネットワークのモデルである（詳細は、後述）。本実施例では、学習済モデル２３４は、プログラムモジュールである。
【００２５】
プロセッサ２１０は、第１プログラム２３２と、第２プログラム２３３と、学習済モデル２３４との実行に利用される種々の中間データを、記憶装置２１５（例えば、揮発性記憶装置２２０、不揮発性記憶装置２３０のいずれか）に、一時的に格納する。
【００２６】
表示部２４０は、液晶ディスプレイ、有機ＥＬディスプレイなどの、画像を表示する装置である。操作部２５０は、表示部２４０上に重ねて配置されたタッチパネル、ボタン、レバーなどの、ユーザによる操作を受け取る装置である。ユーザは、操作部２５０を操作することによって、種々の指示をデータ処理装置２００に入力可能である。通信インタフェース２７０は、他の装置と通信するためのインタフェースである（例えば、ＵＳＢインタフェース、有線ＬＡＮインタフェース、IEEE802.11の無線インタフェース）。デジタルカメラ１００は、通信インタフェース２７０に接続されている。
【００２７】
図２は、人工ニューラルネットワークＮＮの例の説明図である（以下、単に、ニューラルネットワークＮＮとも呼ぶ）。ニューラルネットワークＮＮは、学習済モデル２３４（図１）の生成に利用されるニューラルネットワークである。本実施例では、ニューラルネットワークＮＮは、いわゆるオートエンコーダである（以下、ニューラルネットワークＮＮを、オートエンコーダＮＮとも呼ぶ）。オートエンコーダは、入力されたデータの圧縮と解凍を行うことによって、入力されたデータとおおよそ同じデータを出力する。オートエンコーダは、圧縮によってデータの特徴を抽出し、解凍によって特徴を示すデータを出力する。オートエンコーダＮＮの詳細については、後述する。
【００２８】
Ａ２．ニューラルネットワークＮＮのトレーニング：
図３は、ニューラルネットワークＮＮのトレーニングの処理の例を示すフローチャートである。以下、データ処理装置２００（図１）のプロセッサ２１０は、トレーニング実行者からの指示に応じて、図３の処理を開始することとする。プロセッサ２１０は、トレーニングのための第１プログラム２３２に従って、図３の処理を実行する。
【００２９】
Ｓ１１０では、プロセッサ２１０（図１）は、製品７００の撮影画像データを取得する。本実施例では、製品７００は、デジタルカメラ１００の前に配置される。製品７００のうちの予め決められた撮影対象の面が、デジタルカメラ１００に向けられる。製品７００は、図示しない光源によって、照らされる。光源は、撮影画像上で製品７００の明るさがおおよそ均一となるように、構成される。例えば、製品７００の周囲を囲むように配置された複数の光源が、用いられる。この状態で、プロセッサ２１０は、デジタルカメラ１００に、撮影の指示を供給する。デジタルカメラ１００は、指示に応じて、製品７００を撮影し、製品７００の撮影画像を表す撮影画像データを生成する。撮影画像データは、本実施例では、ＲＧＢのビットマップデータである。プロセッサ２１０は、デジタルカメラ１００から、撮影画像データを取得する。
【００３０】
図４（Ａ）は、撮影画像の例を示す説明図である。撮影画像５０５は、製品７００ｓと背景ＢＧとを表している。撮影画像データは、第１方向Ｄｘと、第１方向Ｄｘに垂直な第２方向Ｄｙと、に沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値を示している。Ｓ１１０（図３）では、傷などの欠陥の無い製品７００ｓが、撮影される。以下、Ｓ１１０（図３）で撮影される欠陥の無い製品を、良製品７００ｓとも呼ぶ。本実施例では、製品７００ｓは、おおよそ四角の環状の部材である。また、背景ＢＧは、製品７００ｓよりも、暗い。例えば、製品の色が明るい色である場合に、撮影画像５０５内において、製品７００ｓは、背景ＢＧよりも明るい色で表される。
【００３１】
Ｓ１２０（図３）では、プロセッサ２１０（図１）は、撮影画像データを用いて、学習画像の学習画像データを取得する。図４（Ｂ）は、学習画像の例を示す説明図である。図中の学習画像５１０は、図４（Ａ）の撮影画像５０５から得られる画像の例である。本実施例では、学習画像データは、予め決められた対象画像サイズのグレースケールのビットマップデータである。対象画像サイズは、オートエンコーダＮＮによって受け付けられる画像データの画像サイズである。対象画像サイズは、例えば、２０８画素×２０８画素である。また、グレーの階調（輝度値とも呼ぶ）は、例えば、ゼロから２５５までの２５６階調で表される。撮影画像データの色値と輝度値との対応関係は、予め決められている。例えば、ＲＧＢの色値とＹＣｂＣｒの色値との公知の対応関係に従って算出される輝度値Ｙが、学習画像データの輝度値として採用される。
【００３２】
本実施例では、撮影画像のうちの予め決められた部分であって対象サイズの部分の内に製品７００ｓの全体が含まれるように、デジタルカメラ１００と製品７００ｓとの相対的な配置が、予め決められている。従って、プロセッサ２１０は、撮影画像のうちの予め決められた部分を抽出することによって、学習画像データを取得する。また、プロセッサ２１０は、背景ＢＧをマスクすることによって、学習画像データを取得する。本実施例では、プロセッサ２１０は、背景ＢＧの画素の輝度値を、最も暗い黒色の輝度値（ここでは、ゼロ）に、設定する。背景ＢＧの特定方法は、種々の方法であってよい。本実施例では、プロセッサ２１０は、撮影画像、または、学習画像を解析することによって、背景ＢＧの画素を特定する。例えば、プロセッサ２１０は、撮影画像のうちの製品７００ｓを表す部分を、予め決められた製品の画像を用いるパターンマッチングによって、特定する。そして、プロセッサ２１０は、特定された部分の除いた残りの部分を、背景ＢＧとして特定する。これに代えて、予め決められた閾値以下の輝度値を有する複数の画素が、背景ＢＧの画素として特定されてもよい。
【００３３】
なお、プロセッサ２１０は、撮影画像データを解析することによって撮影画像内の製品７００ｓを特定し、特定した製品７００ｓを含む部分を抽出することによって、学習画像データを取得してよい。また、プロセッサ２１０は、解像度（すなわち、画素密度）を変換する処理を含む画像処理を実行することによって、学習画像データを取得してよい。
【００３４】
なお、Ｓ１１０、Ｓ１２０では、プロセッサ２１０は、複数の学習画像データを生成する。例えば、製品７００ｓを用いる複数回の撮影によって、複数の学習画像データが生成される。また、撮影画像を回転させることによって、複数の学習画像データが生成される。また、撮影画像の輝度値を調整することによって、複数の学習画像データが生成される。なお、後述するように、オートエンコーダＮＮのトレーニングでは、学習画像データがオートエンコーダＮＮに入力され、そして、オートエンコーダＮＮから出力される出力画像データが製品７００ｓの画像データである教師画像データと比較される。本実施例では、教師画像データは、オートエンコーダＮＮに入力された学習画像データである入力学習画像データと同一のデータである。これに代えて、教師画像データは、入力学習画像データと異なる画像データであってよい。例えば、プロセッサ２１０は、入力学習画像データの輝度調整を実行することによって、教師画像データを生成してよい。具体的には、教師画像データは、入力学習画像データの輝度値を低減させて得られる画像データであってよく、入力学習画像データの輝度値を増大させて得られる画像データであってよい。
【００３５】
このように、Ｓ１１０、Ｓ１２０（図３）では、プロセッサ２１０は、入力学習画像データと教師画像データとの複数の組み合わせを生成する。以下、入力学習画像データと教師画像データとの組み合わせを、学習データセットとも呼ぶ。なお、上述したように、教師画像データは、入力学習画像データと同一のデータであってよく、入力学習画像データと異なるデータであってよい。いずれの場合も、教師画像データの画像内の製品の大きさと配置と形状は、入力学習画像データの画像内の製品の大きさと配置と形状と、それぞれ同じであることが好ましい。
【００３６】
Ｓ１３０では、プロセッサ２１０（図３）は、複数の学習データセットを用いて、オートエンコーダＮＮ（図２）をトレーニングする。本実施例では、オートエンコーダＮＮは、畳込層を含む複数の層３０５−３７０を備えている。
【００３７】
具体的には、オートエンコーダＮＮ（図２）は、入力層３０５と、第１畳込層３１３と、第１プーリング層３１６と、第２畳込層３２３と、第２プーリング層３２６と、第３畳込層３３３と、第３プーリング層３３６と、第４畳込層３４３と、第１アップサンプリング層３４６と、第５畳込層３５３と、第２アップサンプリング層３５６と、第６畳込層３６３と、第３アップサンプリング層３６６と、第７畳込層３７０と、を有している。これらの層３０５−３７０は、この順番に、接続されている。本実施例では、オートエンコーダＮＮは、プログラムモジュールであり、第１プログラム２３２に含まれている。プロセッサ２１０は、オートエンコーダＮＮであるプログラムモジュールに従って処理を進行することによって、各層３０５−３７０の機能を実現する。以下、これらの層３０５−３７０について、順に説明する。
【００３８】
入力層３０５は、オートエンコーダＮＮの外部からのデータを取得する層である。本実施例では、製品７００ｓの入力学習画像データが、入力層３０５に入力される。入力層３０５に入力された画像データは、第１畳込層３１３によって、入力情報として利用される。
【００３９】
第１畳込層３１３は、画像の畳み込みの処理を行う層である。畳み込みの処理は、入力された画像である入力画像とフィルタとの相関を示す値（特徴値とも呼ばれる）を、フィルタをスライドさせながら、算出する処理である。画像の畳み込みの処理で用いられるフィルタは、重みフィルタとも呼ばれる。１個の重みフィルタのサイズは、例えば、Ｐ×Ｐ画素である（Ｐは２以上の整数。例えば、Ｐ＝５）。ストライド（すなわち、フィルタの１回の移動量）は、例えば、１である。フィルタは、入力画像の全ての画素位置において特徴値を算出するように、入力画像の全体に亘ってスライドされる。この場合、入力画像の周囲では、ゼロパディングによって、画素が補われる。これに代えて、フィルタは、入力画像の縁部分を除いた残りの画素位置において特徴値を算出するように、スライドされてよい。このように、フィルタは、入力画像と同じサイズの画像（または、入力画像よりも小さい画像）のビットマップデータを生成する（特徴マップとも呼ばれる）。具体的には、入力された画像データのうちフィルタの位置に対応する部分のＰ×Ｐ個の画素の色値のリストが取得される。取得されたリストと、フィルタのＰ×Ｐ個の重みのリストと、の内積が算出される。「内積＋バイアス」が、活性化関数に入力される。そして、活性化関数の計算結果が、特徴マップの１つの要素の値として用いられる。本実施例では、活性化関数としては、いわゆるReLU（Rectified Linear Unit）が用いられる。また、本実施例では、Ｑ個の重みフィルタが用いられる（Ｑは１以上の整数）。従って、第１畳込層３１３として機能するプロセッサ２１０は、Ｑ枚の特徴マップを生成する。なお、バイアスは、フィルタ毎に準備される。そして、Ｑ個のフィルタのそれぞれの要素とＱ個のバイアスとは、トレーニングによって、更新される。
【００４０】
第１畳込層３１３からの特徴マップは、第１プーリング層３１６によって、入力情報として利用される。プーリングは、画像（ここでは、特徴マップ）を縮小する処理である。第１プーリング層３１６は、いわゆるマックスプーリング（MaxPooling）を行う。マックスプーリングは、いわゆるダウンサンプリングによって特徴マップを縮小する処理であり、ウィンドウをスライドさせつつ、ウィンドウ内の最大値を選択することによってマップを縮小する。本実施例では、第１プーリング層３１６におけるウィンドウのサイズは、Ｔ×Ｔ画素であり、ストライドは、Ｔである（Ｔは２以上の整数。例えば、Ｔ＝２）。これにより、元のマップの１／Ｔの高さと１／Ｔの幅を有するマップが生成される。第１プーリング層３１６として機能するプロセッサ２１０は、Ｑ枚の特徴マップから、Ｑ枚の縮小された特徴マップを生成する。
【００４１】
第１プーリング層３１６からの特徴マップは、第２畳込層３２３によって、入力情報として利用される。第２畳込層３２３は、第１畳込層３１３による処理と同様の手順に従って、画像の畳み込みの処理を行う。例えば、１つのフィルタは、Ｑ枚の特徴マップに対応するＱ個のマトリクスを備えている。そして、１つのフィルタは、Ｑ枚の特徴マップから、１枚の特徴マップを生成する。活性化関数としては、いわゆるReLUが用いられる。なお、１つのフィルタの１個のマトリクスのサイズ（すなわち、第１方向Ｄｘの要素数と第２方向Ｄｙの要素数）と、フィルタの総数とは、種々の値であってよい。また、特徴マップの周囲のゼロパディングは、行われてよく、これに代えて、省略されてよい。ストライドは、種々の値であってよい。各フィルタのそれぞれの要素と、各バイアスとは、トレーニングによって、更新される。
【００４２】
第２畳込層３２３からの特徴マップは、第２プーリング層３２６によって、入力情報として利用される。第２プーリング層３２６は、第１プーリング層３１６による処理と同様の手順に従って、マックスプーリングを行う。これにより、第２プーリング層３２６は、縮小された特徴マップを生成する。ウィンドウのサイズとストライドとは、種々の値であってよい。
【００４３】
第２プーリング層３２６からの特徴マップは、第３畳込層３３３によって、入力情報として利用される。第３畳込層３３３は、畳込層３１３、３２３による処理と同様の手順に従って、画像の畳み込みの処理を行う。活性化関数としては、いわゆるReLUが用いられる。第３畳込層３３３の構成は、種々の構成であってよい（具体的には、１つのフィルタの１個のマトリクスのサイズ（すなわち、第１方向Ｄｘの要素数と第２方向Ｄｙの要素数）と、フィルタの総数と、特徴マップの周囲のゼロパディングの要否と、ストライドと、を含む構成は、種々の構成であってよい）。各フィルタのそれぞれの要素と、各バイアスとは、トレーニングによって、更新される。
【００４４】
第３畳込層３３３からの特徴マップは、第３プーリング層３３６によって、入力情報として利用される。第３プーリング層３３６は、プーリング層３１６、３２６による処理と同様の手順に従って、マックスプーリングを行う。これにより、第３プーリング層３３６は、縮小された特徴マップを生成する。ウィンドウのサイズとストライドとは、種々の値であってよい。
【００４５】
以上のように、畳込層３１３、３２３、３３３によって画像の特徴が取得され、プーリング層３１６、３２６、３３６によって画像が圧縮される。
【００４６】
第３プーリング層３３６からの特徴マップは、第４畳込層３４３によって、入力情報として利用される。第４畳込層３４３は、畳込層３１３、３２３、３３３による処理と同様の手順に従って、画像の畳み込みの処理を行う。活性化関数としては、いわゆるReLUが用いられる。なお、第４畳込層３４３の構成は、上記の他の畳込層と同様に、種々の構成であってよい。各フィルタのそれぞれの要素と、各バイアスとは、トレーニングによって、更新される。
【００４７】
第４畳込層３４３からの特徴マップは、第１アップサンプリング層３４６によって、入力情報として利用される。アップサンプリングは、画像（ここでは、特徴マップ）を拡大する処理である。アップサンプリングの手順としては、種々の手順を採用可能である。本実施例では、アップサンプリング層３４６、３５６、３６６は、それぞれ、いわゆるアンプーリング処理を実行する。アップサンプリング層３４６、３５６、３６６には、プーリング層３３６、３２６、３１６が、それぞれ対応付けられている。アップサンプリング層３４６、３５６、３６６は、対応するプーリング層３３６、３２６、３１６のウィンドウと同じサイズのウィンドウを用いる。例えば、第１アップサンプリング層３４６は、対応する第３プーリング層３３６のウィンドウと同じサイズのウィンドウを用いて、アンプーリング処理を行う。アンプーリング処理では、拡大前の特徴マップの１個の画素が、ウィンドウに対応する複数の画素に増大する。これにより、特徴マップが拡大される。例えば、ウィンドウのサイズが２×２画素である場合、アップサンプリングによって、１個の画素は、２×２画素に増大する。
【００４８】
第１アップサンプリング層３４６からの特徴マップは、第５畳込層３５３によって、入力情報として利用される。第５畳込層３５３は、上記の他の畳込層３１３、３２３、３３３、３４３による処理と同様の手順に従って、画像の畳み込みの処理を行う。活性化関数としては、いわゆるReLUが用いられる。なお、第５畳込層３５３の構成は、上記の他の畳込層と同様に、種々の構成であってよい。各フィルタのそれぞれの要素と、各バイアスとは、トレーニングによって、更新される。
【００４９】
第５畳込層３５３からの特徴マップは、第２アップサンプリング層３５６によって、入力情報として利用される。第２アップサンプリング層３５６は、対応する第２プーリング層３２６のウィンドウを用いて、アンプーリング処理を行う。
【００５０】
第２アップサンプリング層３５６からの特徴マップは、第６畳込層３６３によって、入力情報として利用される。第６畳込層３６３は、上記の他の畳込層３１３、３２３、３３３、３４３、３５３による処理と同様の手順に従って、画像の畳み込みの処理を行う。活性化関数としては、いわゆるReLUが用いられる。なお、第６畳込層３６３の構成は、上記の他の畳込層と同様に、種々の構成であってよい。各フィルタのそれぞれの要素と、各バイアスとは、トレーニングによって、更新される。
【００５１】
第６畳込層３６３からの特徴マップは、第３アップサンプリング層３６６によって、入力情報として利用される。第６畳込層３６３は、対応する第１プーリング層３１６のウィンドウを用いて、アンプーリング処理を行う。
【００５２】
第３アップサンプリング層３６６からの特徴マップは、第７畳込層３７０によって、入力情報として利用される。第７畳込層３７０は、上記の他の畳込層３１３、３２３、３３３、３４３、３５３、３６３による処理と同様の手順に従って、画像の畳み込みの処理を行う。活性化関数としては、いわゆるシグモイド関数が用いられる。なお、第７畳込層３７０の構成は、上記の他の畳込層と同様に、種々の構成であってよい。各フィルタのそれぞれの要素と、各バイアスとは、トレーニングによって、更新される。
【００５３】
以上のように、畳込層３４３、３５３、３６３、３７０によって画像の特徴が抽出され、アップサンプリング層３４６、３５６、３６６によって画像が拡大される。なお、これらの層３４３−３７０は、第７畳込層３７０から対象サイズのグレースケールのビットマップデータが出力されるように、構成される。層３４３−３７０は、層３１３−３３６によって圧縮されたデータを用いて、圧縮前の画像と同じ対象サイズの画像を表す画像データを生成する。このように、層３１３−３３６による処理は、データ圧縮に相当し、層３４３−３７０による処理は、データ解凍に相当する。第７畳込層３７０は、ニューラルネットワークＮＮの出力層に相当する。入力層３０５と出力層（ここでは、第７畳込層３７０）との間の層３１３−３６６は、中間層とも呼ばれる。
【００５４】
図３のＳ１３０では、オートエンコーダＮＮは、上述した複数の学習データセットを用いて、トレーニングされる。具体的には、プロセッサ２１０は、学習画像データを入力層３０５に入力する。プロセッサ２１０は、オートエンコーダＮＮの複数の層３０５−３７０の計算を実行し、第７畳込層３７０からの出力画像データを取得する。プロセッサ２１０は、出力画像データと教師画像データとを比較することによって、評価値５９０を算出する。評価値５９０は、出力画像データと教師画像データとの間の差違、すなわち、誤差を示している。このような評価値５９０は、オートエンコーダＮＮから出力される出力画像データの出力画像５２０と、教師画像データの教師画像５１９と、の間の差を示している。プロセッサ２１０は、評価値５９０を用いて、誤差が小さくなるように、オートエンコーダＮＮの上述した種々のパラメータ（フィルタ、バイアスなど）を更新する。トレーニングの方法としては、種々の方法を採用可能である。例えば、いわゆる誤差逆伝播法が採用されてよい。誤差逆伝播法で用いられる損失関数としては、種々の関数を採用可能である。例えば、いわゆる交差エントロピーや、contrastive損失関数が用いられてよい。評価値５９０は、損失関数に従って算出されてよい。
【００５５】
このように、オートエンコーダＮＮは、出力画像５２０と教師画像５１９との差が小さくなるように、トレーニングされる。上述したように、教師画像データは、入力学習画像データと同一のデータ、または、入力学習画像データの輝度調整によって得られる輝度調整画像データである。従って、教師画像５１９は、入力学習画像データの入力学習画像５１０と、輝度調整画像データの輝度調整画像５１１と、のいずれかと同一である。これらの画像５１０、５１１は、良製品７００ｓ（図４（Ｂ））の画像である。以上により、オートエンコーダＮＮは、出力画像が、入力された良製品７００ｓの画像と同様の欠陥の無い良製品の画像となるように、トレーニングされる。また、オートエンコーダＮＮは、画像内の良製品の形状と位置とが、入力された画像と出力画像との間で同じとなるように、トレーニングされる。図４（Ｃ）は、出力画像の例を示す説明図である。トレーニング済のオートエンコーダＮＮは、良製品７００ｓの学習画像５１０と同様な出力画像５２０を出力する。
【００５６】
図３のＳ１４０では、トレーニング済のオートエンコーダＮＮのうち入力層３０５から第７畳込層３７０までの部分が、学習済モデル２３４として、記憶装置に格納される。学習済モデル２３４は、上記のトレーニングによって決定されたパラメータを用いて処理を進行するように、構成されている。本実施例では、プロセッサ２１０は、学習済モデル２３４を、不揮発性記憶装置２３０に格納する。格納の完了によって、図３の処理が終了する。
【００５７】
Ａ３．検査処理：
図５は、検査処理の例を示すフローチャートである。例えば、製品７００を用いる装置の生産ラインで、製品７００の検査処理が、実行される。検査処理では、製品７００の外観が、検査される。以下、図１のデータ処理装置２００が、検査処理を実行することとする。プロセッサ２１０は、検査処理のための第２プログラム２３３に従って、図５の処理を実行する。
【００５８】
Ｓ２１０では、プロセッサ２１０は、検査用の画像データである検査画像データを生成する。図６は、検査画像データの生成処理の例を示すフローチャートである。Ｓ３１０では、プロセッサ２１０は、検査対象の製品である対象製品を撮影して対象撮影画像データを取得する。撮影画像データの取得は、図３のＳ１１０と同様に行われる。
【００５９】
図７（Ａ）は、対象撮影画像データによって表される対象撮影画像の例を示す説明図である。この対象撮影画像６０５は、図４（Ａ）の撮影画像５０５と同様に、対象製品７００ｔと背景ＢＧｔとを表している。対象製品７００ｔは、図４（Ａ）の良製品７００ｓとは異なり、傷などの欠陥を有し得る。図７（Ａ）の対象製品７００ｔは、欠陥７１０を有している。欠陥７１０は、製品７００ｔの他の部分と比べて暗い色で示されている。
【００６０】
Ｓ３１５（図６）では、プロセッサ２１０は、対象撮影画像データを用いて、対象入力画像データを取得する。対象入力画像データは、学習済モデル２３４へ入力するための画像データであり、対象サイズのグレースケールのビットマップデータである。Ｓ３１５の処理は、図３のＳ１２０の処理と、同じである。
【００６１】
図７（Ｂ）は、対象入力画像データによって表される対象入力画像の例を示す説明図である。この対象入力画像６１０は、図７（Ａ）の対象撮影画像６０５から得られる画像の例である。対象入力画像６１０は、対象撮影画像６０５と同様に、対象製品７００ｔの画像である。対象入力画像６１０は、対象製品７００ｔの欠陥７１０も表している。背景ＢＧｔは、黒色で示されている。
【００６２】
Ｓ３２０（図６）では、プロセッサ２１０（図１）は、対象入力画像データを、学習済モデル２３４に入力する。Ｓ３２５では、プロセッサ２１０は、学習済モデル２３４の複数の層３０５−３７０の計算を実行する。Ｓ３３０では、プロセッサ２１０は、第７畳込層３７０から対象出力画像データを取得する。
【００６３】
図７（Ｃ）は、対象出力画像データによって表される対象出力画像の例を示す説明図である。この対象出力画像６２０は、オートエンコーダＮＮが図７（Ｂ）の対象入力画像６１０を用いて出力した画像の例である。対象出力画像６２０は、対象入力画像６１０の対象製品７００ｔと同じ形状の対象製品７００ｔであって、画像内の同じ位置に配置された対象製品７００ｔを示している。ただし、欠陥７１０は表れていない。この理由は、図３、図４（Ａ）−図４（Ｃ）で説明したように、オートエンコーダＮＮは、欠陥の無い製品の画像と同様な画像を出力するように、トレーニングされているからである。
【００６４】
Ｓ３３５（図６）では、プロセッサ２１０は、対象入力画像データを用いて、第１比較データを生成する。本実施例では、Ｓ３３５は、Ｓ３４０、Ｓ３４５を含んでいる。Ｓ３４０では、プロセッサ２１０は、対象入力画像データの輝度調整処理を行う。
【００６５】
図８は、輝度調整処理の例を示すフローチャートである。Ｓ４１０では、プロセッサ２１０は、画像データの輝度値のヒストグラムを生成する。図９（Ａ）は、輝度値のヒストグラムの例を示すグラフである。横軸は、輝度値Ｖを示し、縦軸は、頻度Ｆを示している。グラフの下には、対象入力画像６１０の一部分６１０ｐが示されている。本実施例では、製品７００ｔのうち背景ＢＧｔに近い部分６１２の輝度値Ｖは、低く、製品７００ｔのうち背景ＢＧｔから遠い部分６１１の輝度値Ｖは、高い。なお、Ｓ３１５のマスク処理により設定された背景ＢＧｔの輝度値（ここでは、ゼロ）のピークの図示は、省略されている。
【００６６】
Ｓ４２０（図８）では、プロセッサ２１０は、ヒストグラムを解析し、最大のピークのピーク輝度値を特定する。ここで、最大のピークは、ゼロよりも大きく、かつ、輝度値Ｖの可能な最大値（ここでは、２５５）よりも小さい輝度値Ｖの範囲内から、特定される。図９（Ａ）のヒストグラムでは、最大のピークＰに対応するピーク輝度値ＶＰが特定される。
【００６７】
Ｓ４３０（図８）では、プロセッサ２１０は、調整前の輝度値と調整後の輝度値との対応関係を、決定する。図９（Ｂ）は、対応関係の例を示すグラフである。横軸は、調整前の輝度値である入力輝度値Ｖｉを示し、縦軸は、調整後の輝度値である出力輝度値Ｖｏを示している。本実施例では、ピーク輝度値ＶＰ未満の第２範囲Ｒ２では、入力輝度値Ｖｉに拘わらずに、出力輝度値Ｖｏはゼロである。ピーク輝度値ＶＰ以上の第１範囲Ｒ１では、入力輝度値Ｖｉがピーク輝度値ＶＰから最大値（ここでは、２５５）まで増加する場合に、出力輝度値Ｖｏは、ゼロから最大値まで、入力輝度値Ｖｉに比例して、増加する。このような対応関係は、第１範囲Ｒ１のコントラストを強調する対応関係の例である。
【００６８】
Ｓ４４０（図８）では、プロセッサ２１０は、Ｓ４３０で決定された対応関係に従って、輝度値Ｖを変換する。この処理は、ピーク輝度値ＶＰ以上の第１範囲Ｒ１のコントラストを強調する処理と、ピーク輝度値ＶＰ未満の輝度値をゼロに設定する処理と、を含んでいる。全ての画素の輝度値Ｖの調整が完了した場合、図８の処理、ひいては、図６のＳ３４０の処理が、終了する。
【００６９】
図７（Ｄ）は、輝度調整済の画像の例を示す説明図である。この調整済画像６１３は、図７（Ｂ）の対象入力画像６１０から得られる画像の例である。調整済画像６１３では、対象製品７００ｔのうちの背景ＢＧｔに近い部分が、背景ＢＧｔと同じ黒色で示されている。
【００７０】
Ｓ３４５（図６）では、プロセッサ２１０は、輝度調整済の対象入力画像データのノイズ低減処理を行うことによって、第１比較データを生成する。ノイズ低減処理は、種々の処理であってよい。本実施例では、プロセッサ２１０は、ノイズ低減処理として、二値化処理を実行する。二値化処理は、明るい画素と暗い画素とを判別する種々の処理であってよい。本実施例では、プロセッサ２１０は、いわゆる大津の二値化を実行する。大津の二値化は、明るい画素のクラスと暗い画素のクラスとの間の分散が大きくなるように、閾値を決定する方法である。二値化処理によって、ノイズが低減される。
【００７１】
図７（Ｅ）は、二値化済の画像の例を示す説明図である。この二値化画像６１６は、図７（Ｄ）の調整済画像６１３から得られる画像の例である。二値化画像６１６の複数の画素は、対象製品７００ｔの一部を示す明るい画素と、対象製品７００ｔの残りの部分と背景ＢＧｔとを示す暗い画素とに、分けられている。欠陥７１０を示す画素は、周囲の画素と異なる画素（例えば周囲の明るい画素と異なる暗い画素）に分類されている。また、調整済画像６１３に含まれるノイズは、二値化画像６１６では低減されている。
【００７２】
以上のＳ３４０、Ｓ３４５を含むＳ３３５（図６）では、プロセッサ２１０は、対象入力画像データを用いて第１比較データを生成する。本実施例では、第１比較データは、二値画像データである。
【００７３】
Ｓ３５０では、プロセッサ２１０は、対象出力画像データを用いて、第２比較データを生成する。本実施例では、Ｓ３５０は、Ｓ３５５、Ｓ３６０を含んでいる。Ｓ３５５、Ｓ３６０の処理は、Ｓ３４０、Ｓ３４５の処理と、それぞれ同じである。Ｓ３５０とＳ３３５との差違は、Ｓ３５０の処理対象の画像データが、対象入力画像データではなく、対象出力画像データである点だけである。
【００７４】
図７（Ｆ）は、輝度調整済の画像の例を示す説明図である。この調整済画像６２３は、図７（Ｃ）の対象出力画像６２０から得られる画像の例である。調整済画像６２３では、対象製品７００ｔのうちの背景ＢＧｔに近い部分が、背景ＢＧｔと同じ黒色で示されている。
【００７５】
図７（Ｇ）は、二値化済の画像の例を示す説明図である。この二値化画像６２６は、図７（Ｆ）の調整済画像６２３から得られる画像の例である。二値化画像６２６の複数の画素は、対象製品７００ｔを示す明るい画素と、主に背景ＢＧｔを示す暗い画素とに、分けられている。また、調整済画像６２３に含まれるノイズは、二値化画像６２６では低減されている。
【００７６】
Ｓ３６５（図６）では、プロセッサ２１０は、第１比較データと第２比較データとの差分を用いて、検査用の画像を表す検査画像データを生成する。本実施例では、Ｓ３６５は、Ｓ３７０、Ｓ３７５を含んでいる。Ｓ３７０では、プロセッサ２１０は、第１比較データと第２比較データとの差分画像データを生成する。本実施例では、差分画像データの各画素の色値は、第２比較データの同じ画素の色値から第１比較データの同じ画素の色値を減算して得られる値の絶対値である。図１０（Ａ）は、差分画像の例を示す説明図である。この差分画像６３０では、色値（すなわち、差）が大きい部分に、ハッチングが付されている。図示するように、対象製品７００ｔが欠陥７１０を有する場合、欠陥７１０を示す部分の差が大きくなる。また、差分画像データは、ノイズを含み得る。図１０（Ａ）の例では、対象製品７００ｔの輪郭を示す部分の差が大きい。
【００７７】
Ｓ３７５（図６）では、プロセッサ２１０は、差分画像データのノイズ低減処理を行って、検査画像データを生成する。ノイズ低減処理は、種々の処理であってよい。本実施例では、プロセッサ２１０は、ノイズ低減処理として、画像縮小処理と画像拡大処理とをこの順に実行する。画像縮小処理は、解像度を小さくする処理である（すなわち、画素密度が低減する）。本実施例では、色値を補間せずに、画像が縮小される。例えば、画像内に均等に分布する複数の画素が間引かれる。画像縮小処理により、細かいノイズが除去される。図１０（Ｂ）の縮小画像６３３は、図１０（Ａ）の差分画像６３０に画像縮小処理を行って得られる画像の例である。縮小画像６３３内では、対象製品７００ｔの輪郭を示すノイズが除去されている。画像拡大処理は、解像度を大きくする処理である（すなわち、画素密度が増大する）。本実施例では、色値を補間せずに、画像が拡大される。例えば、画像内の各画素がその近傍の位置にコピーされる。また、画像拡大処理によって、解像度が元に戻る。
【００７８】
図１０（Ｃ）の画像６３６は、図１０（Ｂ）の縮小画像６３３に画像拡大処理を行って得られる検査画像の例である。検査画像６３６では、元の差分画像６３０（図１０（Ａ））と比べて、ノイズが低減されている。また、検査画像６３６では、欠陥７１０は、除去されずに残っている。このように、対象製品７００ｔが欠陥７１０を有する場合には、欠陥７１０を表す検査画像データが、生成される。
【００７９】
図１０（Ｄ）の画像６３６ｚは、画像拡大処理を行って得られる検査画像の別の例である。この検査画像６３６ｚは、対象製品が欠陥を有していない場合の画像の例である。図１０（Ｃ）の検査画像６３６と同様に、ノイズは低減されている。これにより、検査画像６３６ｚでは、製品を示す部分は除去されている。このように、対象製品が欠陥を有していない場合には、製品を示す部分の無い検査画像データが、生成される。
【００８０】
以上のように、図６のＳ３７０、Ｓ３７５を含むＳ３６５では、プロセッサ２１０は、検査画像データを生成する。そして、図６の処理、ひいては、図５のＳ２１０が、終了する。
【００８１】
Ｓ２２０では、プロセッサ２１０は、検査画像が特定色の部分を含むか否かを判断する。本実施例では、予め決められた閾値以上の色値の画素（すなわち、差が閾値以上の画素）が、特定色の部分として、検索される。図１０（Ｃ）、図１０（Ｄ）等で説明したように、対象製品７００ｔが欠陥を有する場合、検査画像は、欠陥を示す特定色の部分を含み、対象製品が欠陥を有していない場合、検査画像は、特定色の部分を含まない。
【００８２】
Ｓ２２０の判断結果がＮｏである場合、プロセッサ２１０は、Ｓ２３０で、対象製品は欠陥を有していないと判断し、図５の処理を終了する。この場合、対象製品は、装置の生産に利用される。
【００８３】
Ｓ２２０の判断結果がＹｅｓである場合、プロセッサ２１０は、Ｓ２４０で、対象製品は欠陥を有していると判断する。Ｓ２５０では、プロセッサ２１０は、対象入力画像データと検査画像データとを合成することによって、合成画像データを生成する。図１０（Ｅ）は、合成画像データによって表される合成画像の例を示す説明図である。この合成画像６３９は、対象入力画像６１０（図７（Ｂ））に検査画像６３６（図１０（Ｃ））の特定色の部分を追加して得られる画像である。合成画像６３９では、特定色の部分は、欠陥７１０を示している。特定色の部分は、予め決められた色（例えば、黒色、または、赤色など）で表されている。
【００８４】
Ｓ２６０では、プロセッサ２１０（図１）は、合成画像を表示部２４０に表示する。ユーザは、表示された合成画像を観察することによって、欠陥の位置を容易に特定できる。そして、プロセッサ２１０は、図５の処理を終了する。
【００８５】
以上のように、本実施例では、データ処理装置２００（図１）は、図６の処理を実行することによって、検査画像データを生成する。Ｓ３１０、Ｓ３１５では、プロセッサ２１０は、撮影された検査対象の製品を表す対象入力画像データを取得する。Ｓ３２０−Ｓ３３０では、プロセッサ２１０は、対象入力画像データを学習済モデル２３４に入力することによって、欠陥の無い検査対象の製品の画像である対象出力画像６２０を表す対象出力画像データを取得する。図３、図４で説明したように、学習済モデル２３４は、学習済モデルに入力された製品の画像を表す画像データに対するデータ圧縮とデータ解凍とを行うことによって、欠陥の無い同じ製品の画像を表す画像データを出力するようにトレーニングされている。Ｓ３３５では、プロセッサ２１０は、対象入力画像データに輝度調整処理（Ｓ３４０）を含む生成処理を行うことによって、第１比較データを生成する。Ｓ３５０では、プロセッサ２１０は、対象出力画像データに輝度調整処理（Ｓ３５５）を含む生成処理を行うことによって、第２比較データを生成する。Ｓ３６５では、プロセッサ２１０は、第１比較データと第２比較データとの差分（Ｓ３７０）を用いて、検査用の画像を表す検査画像データを生成する。このように、検査画像データは、第１比較データと第２比較データの差分を用いて生成され、第１比較データは、対象入力画像データに輝度調整処理を含む生成処理を行うことによって生成され、第２比較データは、学習済モデルを用いて取得される対象出力画像データに輝度調整処理を含む生成処理を行うことによって生成されるので、検査対象の製品が欠陥を有する場合に、検査画像データは、適切に、欠陥を表すことができる。
【００８６】
また、図８、図９（Ａ）、図９（Ｂ）で説明したように、Ｓ３４０、Ｓ３５５（図６）の輝度調整処理は、輝度値の可能な全範囲のうちの一部の範囲であって輝度値の分布を用いて特定される一部の範囲である対象輝度範囲の例である第１範囲Ｒ１のコントラストを強調する処理である。このように、輝度値分布を用いて特定される対象輝度範囲を用いて、輝度調整が行われる。従って、対象入力画像データと対象出力画像データとの間で製品の同じ部分の明るさが異なる場合であっても、第１比較データと第２比較データとの間の明るさの差を小さくできる。上述したように、検査画像データは、第１比較データと第２比較データの差分を用いて生成される。このような検査画像データは、第１比較データによって表される欠陥であって第２比較データによって表されない欠陥を、適切に表すことができる。
【００８７】
また、本実施例では、輝度値分布を用いて特定される対象輝度範囲のコントラストが強調された比較用の画像データを用いて検査画像データが生成される。検査対象の製品が欠陥を有する場合には、コントラストの強調によって、対象製品のうちの欠陥の部分と欠陥以外の部分との間の色値の差が大きくなる。この結果、検査画像データは、適切に、欠陥を表すことができる。
【００８８】
また、図８、図９（Ａ）、図９（Ｂ）で説明したように、輝度調整処理は、輝度値分布を用いて特定される統計値の例であるピーク輝度値ＶＰ以上の範囲である第１範囲Ｒ１のコントラストを強調する処理と、ピーク輝度値ＶＰ未満の輝度値をゼロに設定する処理と、を含んでいる。このような輝度調整処理によって、画像内の対象製品を示す部分のコントラストが強調されるので、検査対象の製品が欠陥を有する場合に、画像内の製品のうちの欠陥の部分と欠陥以外の部分との間の輝度差が大きくなる。この結果、検査画像データは、適切に、欠陥を表すことができる。
【００８９】
また、図８、図９（Ａ）で説明したように、ピーク輝度値ＶＰは、ゼロよりも大きく輝度値の可能な最大値（ここでは、２５５）よりも小さい輝度値の範囲における輝度値分布の最大のピークに対応する輝度値である。このようなピーク輝度値ＶＰは、画像内の製品の明るさを示す指標値である。対象入力画像データの輝度調整のための対応関係は、対象入力画像データから得られるピーク輝度値ＶＰを用いて特定され、対象出力画像データの輝度調整のための対応関係は、対象出力画像データから得られるピーク輝度値ＶＰを用いて特定される。従って、対象入力画像データと対象出力画像データとの間で製品の同じ部分の明るさが異なる場合であっても、第１比較データと第２比較データとの間の明るさの差を小さくできる。さらに、製品を表す多数の画素を含む第１範囲Ｒ１のコントラストが強調される。従って、検査対象の製品が欠陥を有する場合に、画像内の製品のうちの欠陥の部分と欠陥以外の部分との間の輝度差が大きくなる。この結果、検査画像データは、適切に、欠陥を表すことができる。
【００９０】
また、図６で説明したように、Ｓ３３５、Ｓ３５０の生成処理は、輝度調整処理（Ｓ３４０、Ｓ３５５）の後のノイズ低減処理（Ｓ３４５、Ｓ３６０）を含んでいる。従って、ノイズの影響が緩和されるので、検査対象の製品が欠陥を有する場合に、検査画像データは、適切に、欠陥を表すことができる。
【００９１】
また、図６で説明したように、Ｓ３４５、Ｓ３６０のノイズ低減処理は、二値化処理を含んでいる。このように、二値化処理によってノイズの影響が適切に緩和されるので、検査対象の製品が欠陥を有する場合に、検査画像データは、適切に、欠陥を表すことができる。
【００９２】
Ｂ．第２実施例：
図１１（Ａ）、図１１（Ｂ）は、図６のＳ３４０、Ｓ３５５の輝度調整処理の別の実施例の説明図である。図１１（Ａ）、図１１（Ｂ）は、図９（Ａ）、図９（Ｂ）と同様のヒストグラムと、対象入力画像６１０ａの一部分６１０ａｐと、入力輝度値Ｖｉと出力輝度値Ｖｏとの対応関係と、を示している。本実施例では、対象入力画像６１０ａ内において、対象製品７００ａは、背景ＢＧａよりも暗いこととしている。例えば、製品の色が暗い色である場合に、対象入力画像６１０ａ内において、対象製品７００ａは背景ＢＧａよりも暗い色で表される。この場合、製品７００ａのうち背景ＢＧａに近い部分６１２ａの輝度値Ｖは、高く、製品７００ａうち背景ＢＧａから遠い部分６１１ａの輝度値Ｖは、低い。なお、本実施例では、Ｓ３１５のマスク処理により、背景ＢＧｔの輝度値は、可能な最大値（ここでは、２５５）に設定される。そして、ヒストグラムでは、背景ＢＧｔの輝度値のピークの図示は、省略されている。
【００９３】
本実施例の輝度調整処理は、図８の手順に従って実行される。プロセッサ２１０は、Ｓ４１０で輝度値Ｖのヒストグラムを生成し、Ｓ４２０で最大ピークを特定する。最大のピークは、ゼロよりも大きく、かつ、輝度値Ｖの可能な最大値（ここでは、２５５）よりも小さい輝度値Ｖの範囲内から、特定される。図１１（Ａ）のヒストグラムでは、最大のピークＰａに対応するピーク輝度値ＶＰａが特定される。
【００９４】
Ｓ４３０（図８）では、プロセッサ２１０は、調整前の輝度値と調整後の輝度値との対応関係を、決定する。本実施例では、図１１（Ｂ）に示すように、ピーク輝度値ＶＰａを超える第２範囲Ｒ２ａでは、入力輝度値Ｖｉに拘わらずに、出力輝度値Ｖｏは最大値（ここでは２５５）である。ピーク輝度値ＶＰａ以下の第１範囲Ｒ１ａでは、入力輝度値Ｖｉがゼロからピーク輝度値ＶＰａまで増加する場合に、出力輝度値Ｖｏは、ゼロから最大値まで、入力輝度値Ｖｉに比例して、増加する。このような対応関係は、第１範囲Ｒ１ａのコントラストを強調する対応関係の例である。
【００９５】
Ｓ４４０（図８）では、プロセッサ２１０は、Ｓ４３０で決定された対応関係に従って、輝度値Ｖを変換する。全ての画素の輝度値Ｖの調整が完了した場合、図８の処理が、終了する。
【００９６】
以上のように、本実施例では、輝度調整処理は、輝度値分布を用いて特定される第２統計値の例であるピーク輝度値ＶＰａ以下の範囲である第１範囲Ｒ１ａのコントラストを強調する処理と、ピーク輝度値ＶＰａを超える輝度値を、輝度値の可能な最大値に設定する処理と、を含んでいる。このような輝度調整処理によって、画像内の対象製品を示す部分のコントラストが強調されるので、検査対象の製品が欠陥を有する場合に、画像内の製品のうちの欠陥の部分と欠陥以外の部分との間の輝度差が大きくなる。この結果、検査画像データは、適切に、欠陥を表すことができる。
【００９７】
また、図１１（Ａ）で説明したように、ピーク輝度値ＶＰａは、ゼロよりも大きく輝度値の可能な最大値（ここでは、２５５）よりも小さい輝度値の範囲における輝度値分布の最大のピークに対応する輝度値である。このピーク輝度値ＶＰａは、画像内の製品の明るさを示す指標値である。従って、第１実施例と同様に、対象入力画像データと対象出力画像データとの間で製品の同じ部分の明るさが異なる場合であっても、第１比較データと第２比較データとの間の明るさの差を小さくできる。さらに、製品を表す多数の画素を含む第１範囲Ｒ１ａのコントラストが強調される。従って、検査対象の製品が欠陥を有する場合に、画像内の製品のうちの欠陥の部分と欠陥以外の部分との間の輝度差が大きくなる。この結果、画像内の対象製品のうちの欠陥の部分と欠陥以外の部分との分離が容易であるので、検査画像データは、適切に、欠陥を表すことができる。
【００９８】
Ｃ．第３実施例：
図１２（Ａ）、図１２（Ｂ）は、図６のＳ３４０、Ｓ３５５の輝度調整処理の別の実施例の説明図である。図１２（Ａ）、図１２（Ｂ）は、図９（Ａ）、図９（Ｂ）と同様のヒストグラムと、対象入力画像６１０ｂの一部分６１０ｂｐと、入力輝度値Ｖｉと出力輝度値Ｖｏとの対応関係と、を示している。本実施例では、対象入力画像６１０ｂ内において、対象製品７００ｂは、中程度の輝度値Ｖで表されることとしている。背景ＢＧｂは、対象製品７００ｂよりも暗い。また、最大値（２５５）に近い大きな輝度値Ｖを有する画素は、対象製品７００ｂではなく、ノイズを示している。図１２（Ａ）の例では、製品７００ｂのうち背景ＢＧｂに近い部分６１２ｂの輝度値Ｖは、低く、製品７００ｂうち背景ＢＧｂから遠い部分６１１ｂの輝度値Ｖは、高い。なお、本実施例では、Ｓ３１５のマスク処理により、背景ＢＧｔの輝度値は、ゼロに設定される。そして、ヒストグラムでは、背景ＢＧｔの輝度値のピークの図示は、省略されている。
【００９９】
本実施例の輝度調整処理は、図８の手順に従って実行される。プロセッサ２１０は、Ｓ４１０で輝度値Ｖのヒストグラムを生成し、Ｓ４２０で最大ピークを特定する。最大のピークは、ゼロよりも大きく、かつ、輝度値Ｖの可能な最大値（ここでは、２５５）よりも小さい輝度値Ｖの範囲内から、特定される。図１２（Ａ）のヒストグラムでは、最大のピークＰｂに対応するピーク輝度値ＶＰｂが特定される。
【０１００】
Ｓ４３０（図８）では、プロセッサ２１０は、調整前の輝度値と調整後の輝度値との対応関係を、決定する。本実施例では、図１２（Ａ）、図１２（Ｂ）に示すように、プロセッサ２１０は、ピーク輝度値ＶＰｂを中心とする予め決められた幅の第１範囲Ｒ１ｂを特定する。図中の下限値ＶＬと上限値ＶＨとは、第１範囲Ｒ１ｂの下限値と上限値とである。上限値ＶＨを超える第２範囲Ｒ２ｂでは、入力輝度値Ｖｉに拘わらずに、出力輝度値Ｖｏは最大値（ここでは２５５）である。下限値ＶＬ未満の第３範囲Ｒ３ｂでは、入力輝度値Ｖｉに拘わらずに、出力輝度値Ｖｏはゼロである。第１範囲Ｒ１ｂでは、入力輝度値Ｖｉが下限値ＶＬから上限値ＶＨまで増加する場合に、出力輝度値Ｖｏは、ゼロから最大値まで、入力輝度値Ｖｉに比例して、増加する。このような対応関係は、第１範囲Ｒ１ｂのコントラストを強調する対応関係の例である。
【０１０１】
Ｓ４４０（図８）では、プロセッサ２１０は、Ｓ４３０で決定された対応関係に従って、輝度値Ｖを変換する。全ての画素の輝度値Ｖの調整が完了した場合、図８の処理が、終了する。
【０１０２】
以上のように、本実施例では、輝度調整処理は、輝度値分布を用いて特定される下限値ＶＬと上限値ＶＨとの間の範囲である第１範囲Ｒ１ｂのコントラストを強調する処理と、下限値ＶＬ未満の輝度値をゼロに設定する処理と、上限値ＶＨを超える輝度値を、輝度値の可能な最大値（ここでは、２５５）に設定する処理と、を含んでいる。このような輝度調整処理によって、画像内の対象製品を示す部分のコントラストが強調されるので、検査対象の製品が欠陥を有する場合に、画像内の製品のうちの欠陥の部分と欠陥以外の部分との間の輝度差が大きくなる。この結果、画像内の対象製品のうちの欠陥の部分と欠陥以外の部分との分離が容易であるので、検査画像データは、適切に、欠陥を表すことができる。
【０１０３】
また、図１２（Ａ）で説明したように、第１範囲Ｒ１ｂは、ピーク輝度値ＶＰｂを含む範囲である。ピーク輝度値ＶＰｂは、ゼロよりも大きく輝度値の可能な最大値（ここでは、２５５）よりも小さい輝度値の範囲における輝度値分布の最大のピークに対応する輝度値である。このようなピーク輝度値ＶＰｂは、画像内の製品の明るさを示す指標値である。従って、第１実施例と同様に、対象入力画像データと対象出力画像データとの間で製品の同じ部分の明るさが異なる場合であっても、第１比較データと第２比較データとの間の明るさの差を小さくできる。さらに、製品を表す多数の画素を含む第１範囲Ｒ１ｂのコントラストが強調される。従って、検査対象の製品が欠陥を有する場合に、画像内の製品のうちの欠陥の部分と欠陥以外の部分との間の輝度差が大きくなる。この結果、検査画像データは、適切に、欠陥を表すことができる。
【０１０４】
Ｄ．変形例：
（１）製品の画像を表す画像データを出力する予測モデルの構成は、図２のオートエンコーダＮＮの構成に代えて、他の種々の構成であってよい。例えば、データ圧縮（すなわち、データ量を削減する処理）を行う層は、プーリング層３１６、３２６、３３６のようないわゆるマックスプーリング層に代えて、データを圧縮する種々の層であってよい。例えば、平均プーリング層が用いられてよい。また、プーリング層が省略され、畳込層（例えば、畳込層３１３、３２３、３３３の少なくとも１層）が、データを圧縮してよい。また、データ圧縮を行う層の総数は、３に代えて、任意の数であってよい（例えば、１以上、５以下）。
【０１０５】
また、データ解凍（すなわち、データ量を増大する処理）を行う層は、アップサンプリング層３４６、３５６、３６６に代えて、データを解凍する種々の層であってよい。例えば、いわゆる逆畳込（deconvolution）層が用いられてよい。また、畳込層３４３、３５３、３６３は、省略されてよい。また、データ解凍を行う層の総数は、３に代えて、任意の数であってよい（例えば、１以上、５以下）。なお、データ解凍を行う層の総数は、データ圧縮を行う層の総数と同じであってよい。
【０１０６】
このように、予測モデルは、データ圧縮を行う層として、１以上の畳込層を備えてよい。例えば、予測モデルは、畳込層と畳込層の後ろに接続されたプーリング層との１以上のセットを備えてよい。また、予測モデルは、データ解凍を行う層として、畳込層と畳込層の後ろに接続されたアップサンプリング層との１以上のセットを備えてよい。また、予測モデルは、データ解凍を行う層として、１以上の逆畳込層を備えてよい。
【０１０７】
また、予測モデルは、畳込層を含まずに、複数の全結合層で構成されてもよい。予測モデルは、オートエンコーダと呼ばれる種々の人工ニューラルネットワークを含んでよい。また、予測モデルは、人工ニューラルネットワークに限らず、他の種々のモデルを含んでよい。予測モデルは、例えば、人工ニューラルネットワークと、隠れマルコフモデルと、推論エンジンと、のグループから任意に選択された１以上のモデルを含んでよい。一般的には、予測モデルは、予測モデルに入力された製品の画像を表す画像データに対するデータ圧縮とデータ解凍とを行うことによって、同じ製品の画像を表す画像データを出力する種々のモデルであってよい。このような予測モデルでは、製品が欠陥を有する場合に、データ圧縮によって欠陥を示す情報が取り除かれる。従って、予測モデルは、欠陥の無い同じ製品の画像を表す画像データを容易に出力できる。
【０１０８】
（２）予測モデルのトレーニング方法は、図３で説明した方法に代えて、他の種々の方法であってよい。例えば、予測モデルに入力される学習画像データは、撮影画像データにノイズを付加して得られる画像データであってよい。この場合も、教師画像データとしては、ノイズが付加されていない画像データが用いられることが好ましい。一般的には、トレーニング方法は、製品の画像を表す画像データが予測モデルに入力されることによって、欠陥の無い同じ製品の画像を表す画像データを出力するように予測モデルをトレーニングする任意の方法であってよい。
【０１０９】
（３）比較画像データの生成処理に含まれる輝度調整処理（図６：Ｓ３４０、Ｓ３５５）は、図８で説明した処理に限らず、他の種々の処理を含んでよい。例えば、ピーク輝度値ＶＰ、ＶＰａ、ＶＰｂに代えて、輝度値分布を用いて特定される他の種々の統計値が用いられてよい。統計値は、例えば、ゼロよりも大きく可能な最大値よりも小さい輝度範囲における輝度分布において、最大ピークのピーク輝度値、中央値、または、平均値のいずれかであってよい。また、コントラストが強調される輝度範囲は、輝度値分布を用いて特定される種々の範囲であってよい。例えば、プロセッサ２１０は、輝度値分布において、最大のピークを挟む２個の谷を特定する。そして、プロセッサ２１０は、小さい輝度の谷の極小頻度に対応する輝度値を下限として採用し、大きい輝度の谷の極小頻度に対応する輝度値を上限として採用してよい。いずれの場合も、製品の欠陥を示す画素の輝度値が、コントラストが強調される輝度範囲の外であるように、輝度範囲が決定されることが好ましい。また、プロセッサ２１０は、コントラストが強調される輝度範囲の外では、輝度値を、予め決められた値（例えば、ゼロ、または、可能な最大値）に設定することが好ましい。
【０１１０】
また、プロセッサ２１０は、図９（Ｂ）の対応関係と図１１（Ｂ）の対応関係とから、輝度調整に用いるべき対応関係を、輝度分布（例えば、対象入力画像の輝度分布）に基づいて選択してよい。例えば、プロセッサ２１０は、輝度値が統計値（例えば、ピーク輝度値）以上の画素の数が、輝度値が統計値未満の画素の数よりも多い場合には、図９（Ｂ）の対応関係を選択してよい。逆に、輝度値が統計値以上の画素の数が、輝度値が統計値未満の画素の数よりも少ない場合には、プロセッサ２１０は、図１１（Ｂ）の対応関係を選択してよい。
【０１１１】
また、輝度調整処理は、予め決められた輝度範囲内のコントラストを強調する処理であってもよい。一般的には、輝度調整処理は、第１比較データと第２比較データとの間の明るさの差を小さくする種々の処理であってよい。
【０１１２】
（４）比較画像データの生成処理に含まれる二値化処理（図６：Ｓ３４５、Ｓ３６０）の閾値の決定方法は、大津の方法に代えて、他の種々の方法であってよい。プロセッサ２１０は、例えば、ゼロよりも大きく可能な最大値よりも小さい輝度範囲における輝度分布を用いて、閾値を決定してよい（例えば、閾値は、輝度値の平均値または中央値であってよい）。また、閾値は、予め決められてよい。また、比較画像データの生成処理に含まれるノイズ低減処理は、二値化処理に代えて、ノイズを低減する任意の処理であってよい。例えば、ノイズ低減処理は、アンシャープマスクを用いてノイズを低減する処理であってよい。なお、ノイズ低減処理は、省略されてよい。
【０１１３】
（５）検査画像データを生成する処理は、図６の処理に代えて、他の種々の処理であってよい。例えば、Ｓ３１５では、マスク処理は省略されてよい。Ｓ３７５のノイズ低減処理は、画像縮小処理と画像拡大処理とに限らず、ノイズを低減する任意の処理を含んでよい。例えば、ノイズ低減処理は、画像内のオブジェクトを収縮する処理と膨張する処理とを含んでよい。収縮処理によって、細かいノイズが削除される。また、ノイズ低減処理は、アンシャープマスクを用いてノイズを低減する処理を含んでよい。また、Ｓ３４５、Ｓ３６０の二値化処理が省略され、Ｓ３７５のノイズ低減処理の後に、二値化処理が行われてよい。なお、Ｓ３７５のノイズ低減処理は、省略されてよい。
【０１１４】
また、予測モデル（例えば、図２のオートエンコーダＮＮ）は、グレースケールの画像データに代えて、カラー画像データ（例えば、ＲＧＢのビットマップデータ）を用いて処理を行うように、構成されてよい。そして、図３のトレーニング処理と、図６の検査画像データの生成処理とは、カラー画像データを用いて実行されてよい。
【０１１５】
（６）図３のトレーニング処理と、図６の検査画像データの生成処理とは、互いに異なる装置によって、実行されてよい。また、図５の実施例では、同じ装置２００（図１）が、検査画像データの生成処理と、製品が欠陥を有するか否かを検査画像データを用いて判断する判断処理とを、実行している。データ処理装置２００は、検査画像データの生成装置の例であり、また、判断処理を実行する判断装置の例である。なお、検査画像データを生成する生成装置とは異なる装置が、製品が欠陥を有するか否かを判断する判断部として動作してよい。また、製品が欠陥を有すると判断された場合に行われる処理は、合成画像の生成と表示（図５：Ｓ２５０、Ｓ２６０）に代えて、他の任意の処理であってよい。
【０１１６】
（７）検査対処の製品は、種々の製品であってよく、検出すべき欠陥は、種々の欠陥であってよい。例えば、製品は、印刷に利用される紙であってよい。そして、欠陥は、紙の折れであってよい。また、製品は、印刷装置によってノズルのチェックパターンが印刷された紙であってよい。そして、欠陥は、チェックパターンによって示されるノズルの不具合（例えば、ノズルの詰まり）であってよい。
【０１１７】
（８）検査画像データを生成する装置は、パーソナルコンピュータとは異なる種類の装置（例えば、複合機、プリンタ、スキャナ、デジタルカメラ、スマートフォン）であってもよい。また、ネットワークを介して互いに通信可能な複数の装置（例えば、コンピュータ）が、検査画像データを生成する処理の機能を一部ずつ分担して、全体として、検査画像データを生成する機能を提供してもよい（これらの装置を備えるシステムが、検査画像データの生成装置に対応する）。製品が欠陥を有するか否かを検査画像データを用いて判断する判断装置についても、同様である。
【０１１８】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、学習済モデル２３４は、プログラムモジュールに代えて、ASIC（Application Specific Integrated Circuit）等のハードウェア回路によって実現されてよい。
【０１１９】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体（例えば、一時的ではない記録媒体）に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体（コンピュータ読み取り可能な記録媒体）に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種ＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【０１２０】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【０１２１】
１００…デジタルカメラ、２００…データ処理装置、２１０…プロセッサ、２１５…記憶装置、２２０…揮発性記憶装置、２３０…不揮発性記憶装置、２３２…第１プログラム、２３３…第２プログラム、２３４…学習済モデル、２４０…表示部、２５０…操作部、２７０…通信インタフェース、３０５…入力層、３１３…第１畳込層、３１６…第１プーリング層、３２３…第２畳込層、３２６…第２プーリング層、３３３…第３畳込層、３３６…第３プーリング層、３４３…第４畳込層、３４６…第１アップサンプリング層、３５３…第５畳込層、３５６…第２アップサンプリング層、３６３…第６畳込層、３６６…第３アップサンプリング層、３７０…第７畳込層、５０５…撮影画像、５１０…入力学習画像、５１１…輝度調整画像、５１９…教師画像、５２０…出力画像、５９０…評価値、６０５…対象撮影画像、６１０…対象入力画像、６１０ａ…対象入力画像、６１０ｂ…対象入力画像、６１３…調整済画像、６１６…二値化画像、６２０…対象出力画像、６２３…調整済画像、６２６…二値化画像、６３０…差分画像、６３３…縮小画像、６３６…検査画像、６３６ｚ…検査画像、６３９…合成画像、７００…製品、７００ａ…対象製品、７００ｂ…対象製品、７００ｓ…良製品、７００ｔ…対象製品、７１０…欠陥、１０００…検査システム、ＮＮ…人工ニューラルネットワーク（オートエンコーダ）、Ｄｘ…第１方向、Ｄｙ…第２方向
【図１】
2020160616.tif 000003
【図２】
2020160616.tif 000004
【図３】
2020160616.tif 000005
【図４】
2020160616.tif 000006
【図５】
2020160616.tif 000007
【図６】
2020160616.tif 000008
【図７】
2020160616.tif 000009
【図８】
2020160616.tif 000010
【図９】
2020160616.tif 000011
【図１０】
2020160616.tif 000012
【図１１】
2020160616.tif 000013
【図１２】
2020160616.tif 000014