(57)【要約】【課題】  検査対象の画素領域と検査対象外の画素領域との間の境界の特徴の抽出を抑制する。【解決手段】  畳み込みニューラルネットワーク１００は、検査対象の画素領域３１Ａと検査対象外の画素領域３１Ｂとを含む検査画像３１と、検査対象外の画素領域３１Ｂをマスクするための画素値を有し、且つ検査対象外の画素領域３１Ｂに対応付けられる画素領域５０Ｂを含むマスク画像５０とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域３１Ｂをマスクする第１のマスク処理を行い、第１のマスク処理が行われた検査画像３１から特徴画像８１を抽出するための中間処理を行い、中間処理が行われた検査画像３１と、中間処理と同じ処理が行われたマスク画像５０とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域３１Ｂをマスクする第２のマスク処理を行う。【選択図】      図８
2020064333.tif 000002
【特許請求の範囲】
【請求項１】
検査対象の画素領域と検査対象外の画素領域とを含む検査画像と、前記検査対象外の画素領域をマスクするための画素値を有し、且つ前記検査対象外の画素領域に対応付けられる画素領域を含むマスク画像とのそれぞれ対応する画素同士の画素値の演算により前記検査対象外の画素領域をマスクする第１のマスク処理を行う手段と、
前記第１のマスク処理が行われた検査画像から畳み込みニューラルネットワークを通じて特徴画像を抽出するための中間処理を行う手段と、
前記マスク画像に前記中間処理と同じ処理を行う手段と、
前記中間処理が行われた前記検査画像と、前記中間処理と同じ処理が行われた前記マスク画像とのそれぞれ対応する画素同士の画素値の演算により前記検査対象外の画素領域をマスクする第２のマスク処理を行う手段と、
を備える画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記第２のマスク処理を行う手段は、１回目の中間処理後且つ２回目の中間処理前の前記検査画像に前記第２のマスク処理を行う、画像処理装置。
【請求項３】
請求項１に記載の画像処理装置であって、
前記第２のマスク処理を行う手段は、各中間処理後の前記検査画像に前記第２のマスク処理を行う、画像処理装置。
【請求項４】
請求項１乃至３のうち何れか１項に記載の画像処理装置であって、
前記検査対象の画素領域の位置、形状、及び大きさを規定する前記マスク画像を自動生成する手段を更に備える、画像処理装置。
【請求項５】
請求項４に記載の画像処理装置であって、
前記検査対象の画素領域の形状は、非矩形である、画像処理装置。
【請求項６】
請求項４又は５に記載の画像処理装置であって、
前記検査対象の画素領域の位置、形状、及び大きさを示すマークを前記検査画像に重畳表示するか又は前記検査画像から前記特徴画像が抽出された検査結果画像に重畳表示する表示装置を更に備える、画像処理装置。
【請求項７】
コンピュータシステムが、
検査対象の画素領域と検査対象外の画素領域とを含む検査画像と、前記検査対象外の画素領域をマスクするための画素値を有し、且つ前記検査対象外の画素領域に対応付けられる画素領域を含むマスク画像とのそれぞれ対応する画素同士の画素値の演算により前記検査対象外の画素領域をマスクする第１のマスク処理を行うステップと、
前記第１のマスク処理が行われた検査画像から畳み込みニューラルネットワークを通じて特徴画像を抽出するための中間処理を行うステップと、
前記マスク画像に前記中間処理と同じ処理を行うステップと、
前記中間処理が行われた前記検査画像と、前記中間処理と同じ処理が行われた前記マスク画像とのそれぞれ対応する画素同士の画素値の演算により前記検査対象外の画素領域をマスクする第２のマスク処理を行うステップと、
を実行する画像処理方法。
【請求項８】
コンピュータシステムに、
検査対象の画素領域と検査対象外の画素領域とを含む検査画像と、前記検査対象外の画素領域をマスクするための画素値を有し、且つ前記検査対象外の画素領域に対応付けられる画素領域を含むマスク画像とのそれぞれ対応する画素同士の画素値の演算により前記検査対象外の画素領域をマスクする第１のマスク処理を行うステップと、
前記第１のマスク処理が行われた検査画像から畳み込みニューラルネットワークを通じて特徴画像を抽出するための中間処理を行うステップと、
前記マスク画像に前記中間処理と同じ処理を行うステップと、
前記中間処理が行われた前記検査画像と、前記中間処理と同じ処理が行われた前記マスク画像とのそれぞれ対応する画素同士の画素値の演算により前記検査対象外の画素領域をマスクする第２のマスク処理を行うステップと、
を実行させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法、及び画像処理プログラムに関わる。
【背景技術】
【０００２】
ファクトリーオートメーションの分野では、画像計測処理を用いた自動制御が広く実用化されている。例えば、ワークなどの被検査対象を撮像し、その撮像により得られた検査画像から欠陥などの特徴画像を抽出することで、ワークの良否を検査する検査工程が実用化されている。このような画像計測処理の例として、畳み込みニューラルネットワークを用いて特徴画像を抽出する手法が知られている。畳み込みニューラルネットワークは、画像の畳み込み処理とプーリング処理とを繰り返すことで局所的な特徴を組み合わせて全体的な特徴を抽出する。このため、検査画像の一部に異物が映りこんでいると、異物の特徴が抽出されてしまい、画像の畳み込み処理とプーリング処理とを繰り返す過程で異物の特徴が画像の広い範囲に影響を与えることになる。このような影響は、誤検出の原因になり得る。斯かる誤検出を回避するための手法として、例えば、特開２０１７−１４６９５７号公報は、検査画像の画素領域のうち検査対象外の画素領域をマスクし、マスクされた検査画像を畳み込みニューラルネットワークに入力して特徴画像を抽出する手法を提案している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１４６９５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、マスクされた検査画像を畳み込みニューラルネットワークに入力すると、検査対象の画素領域と検査対象外の画素領域との間の境界の特徴（例えば、画素値の濃淡の境目）が抽出されてしまい、このような特徴もまた異物の特徴と同様に誤検出の原因となり得る。
【０００５】
そこで、本発明は、このような問題を解決し、検査対象の画素領域と検査対象外の画素領域との間の境界の特徴の抽出を抑制する画像処理装置、画像処理方法、及び画像処理プログラムを提案することを課題とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明に関わる画像処理装置は、検査対象の画素領域と検査対象外の画素領域とを含む検査画像と、検査対象外の画素領域をマスクするための画素値を有し、且つ検査対象外の画素領域に対応付けられる画素領域を含むマスク画像とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域をマスクする第１のマスク処理を行う手段と、第１のマスク処理が行われた検査画像から畳み込みニューラルネットワークを通じて特徴画像を抽出するための中間処理を行う手段と、マスク画像に中間処理と同じ処理を行う手段と、中間処理が行われた検査画像と、中間処理と同じ処理が行われたマスク画像とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域をマスクする第２のマスク処理を行う手段とを備える。このような構成によれば、検査対象の画素領域と検査対象外の画素領域との間の境界の特徴の抽出を抑制することができる。
【０００７】
第２のマスク処理を行う手段は、１回目の中間処理後且つ２回目の中間処理前の検査画像に第２のマスク処理を行ってもよい。検査画像に行われる中間処理の回数が少ない段階で第２のマスク処理を行う方が、検査画像に行われる中間処理の回数が多い段階で第２のマスク処理を行うよりも、検査対象の画素領域と検査対象外の画素領域との間の境界の特徴の抽出を抑制する効果が高い。検査対象の画素領域と検査対象外の画素領域との間の境界の特徴は、一度抽出されてしまうと、後段の中間処理（例えば、畳み込み処理）を実行する度に画像全体に伝搬していく。畳み込み処理の回数がなるべく少ない段階で第２のマスク処理をする程、検査対象の画素領域と検査対象外の画素領域との間の境界の特徴の伝搬が少なくなる。
【０００８】
第２のマスク処理を行う手段は、各中間処理後の検査画像に第２のマスク処理を行ってもよい。これにより、検査対象の画素領域と検査対象外の画素領域との間の境界の特徴の抽出をより確実に抑制することができる。
【０００９】
本発明に関わる画像処理装置は、検査対象の画素領域の位置、形状、及び大きさを規定するマスク画像を自動生成する手段を更に備えてもよい。これにより、検査画像上の異物の位置、形状、大きさ、個数、及び分布などを考慮して、検査対象の画素領域を適切に設定することができる。
【００１０】
検査対象の画素領域の形状は、非矩形でもよい。これにより、検査対象の画素領域の設定の自由度を高めることができる。
【００１１】
本発明に関わる画像処理装置は、検査対象の画素領域の位置、形状、及び大きさを示すマークを検査画像に重畳表示するか又は検査画像から特徴画像が抽出された検査結果画像に重畳表示する表示装置を更に備えてもよい。これにより、操作者は、検査対象の画素領域Ａの位置、形状、及び大きさを視覚的に把握することができる。
【００１２】
本発明に関わる画像処理方法は、コンピュータシステムが、検査対象の画素領域と検査対象外の画素領域とを含む検査画像と、検査対象外の画素領域をマスクするための画素値を有し、且つ検査対象外の画素領域に対応付けられる画素領域を含むマスク画像とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域をマスクする第１のマスク処理を行うステップと、第１のマスク処理が行われた検査画像から畳み込みニューラルネットワークを通じて特徴画像を抽出するための中間処理を行うステップと、マスク画像に中間処理と同じ処理を行うステップと、中間処理が行われた検査画像と、中間処理と同じ処理が行われたマスク画像とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域をマスクする第２のマスク処理を行うステップと、を実行する。この方法により、検査対象の画素領域と検査対象外の画素領域との間の境界の特徴の抽出を抑制することができる。
【００１３】
本発明に関わる画像処理プログラムは、コンピュータシステムに、検査対象の画素領域と検査対象外の画素領域とを含む検査画像と、検査対象外の画素領域をマスクするための画素値を有し、且つ検査対象外の画素領域に対応付けられる画素領域を含むマスク画像とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域をマスクする第１のマスク処理を行うステップと、第１のマスク処理が行われた検査画像から畳み込みニューラルネットワークを通じて特徴画像を抽出するための中間処理を行うステップと、マスク画像に中間処理と同じ処理を行うステップと、中間処理が行われた検査画像と、中間処理と同じ処理が行われたマスク画像とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域をマスクする第２のマスク処理を行うステップとを実行させる。この方法により、検査対象の画素領域と検査対象外の画素領域との間の境界の特徴の抽出を抑制することができる。
【発明の効果】
【００１４】
本発明によれば、検査対象の画素領域と検査対象外の画素領域との間の境界の特徴の抽出を抑制することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態に関わる画像処理の流れを示す説明図である。
【図２】本実施形態に関わる検査画像の一例を示す説明図である。
【図３】本実施形態に関わる検査結果画像の一例を示す説明図である。
【図４】本実施形態に関わるマスク画像の一例を示す説明図である。
【図５】本実施形態に関わるマスク画像の一例を示す説明図である。
【図６】本実施形態に関わる画像処理装置のハードウェア構成の説明図である。
【図７】本実施形態に関わる画像処理方法の流れを示すフローチャートである。
【図８】本実施形態に関わる画像処理方法の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の一側面に関わる実施形態を図面に基づいて説明する。本発明の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更又は改良され得るととともに、本発明には、その等価物も含まれる。なお、同一符号は、同一の構成要素を示すものとし、重複する説明は省略する。
【００１７】
［適用例］
まず、図１乃至図５を参照しながら、本発明の適用例について説明する。
図１は本実施形態に関わる画像処理の流れを示す説明図である。畳み込みニューラルネットワーク１００は、被検査対象の検査画像３１から欠陥などの特徴画像を抽出して検査結果画像３７を出力する。被検査対象は、例えば、仕掛け品又は部品などのワークであり、検査画像３１は、被検査対象を撮影して得られる画像データである。図２は、検査画像３１の一例を示す説明図である。検査画像３１には、欠陥８０と異物９０とが映りこんでいる。図３は、検査結果画像３７の一例を示す説明図である。検査結果画像３７には、欠陥８０の特徴画像８１が抽出されている。
【００１８】
畳み込みニューラルネットワーク１００は、検査画像３１に含まれる欠陥８０の画像が、学習済みの複数のクラスの何れかに属する確率値を算出し、複数のクラスのうち操作者によって選択された特定のクラスに対応する欠陥８０の特徴画像８１が抽出された検査結果画像３７を出力する。クラスの例として、例えば、欠陥８０の種類毎に分類された画像（例えば、「黒点」、「白点」、「黒線」、及び「白線」）と「背景」との組み合わせを挙げることができる。畳み込みニューラルネットワーク１００は、クラス毎に用意された学習用の画像データと教師データ（ラベル）とを含む学習用のデータセットを用いて事前に機械学習することにより、検査画像３１に含まれる欠陥８０の画像が、学習済みの複数のクラスの何れかに属する確率値を算出するための内部パラメータと、複数のクラスのうち操作者によって選択された特定のクラスに対応する欠陥８０の特徴画像８１が抽出された検査結果画像３７を出力するための内部パラメータとを予め獲得している。内部パラメータは、例えば、畳み込みニューラルネットワーク１００の構成（例えば、層数、各層のニューロンの個数、ニューロン同士の結合関係、及び各ニューロンの活性化関数）、及びハイパーパラメータ（各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報）を含む。クラスは、上述の例に限られるものではなく、欠陥８０の形状の観点から分類される複数のクラスや、欠陥８０の色の濃度の観点から分類される複数のクラスを含んでもよい。欠陥８０の例として、キズ、打痕、汚れなどを挙げることができる。
【００１９】
図２に示すように、検査画像３１は、検査対象の画素領域３１Ａと検査対象外の画素領域３１Ｂとを含む。検査対象の画素領域３１Ａの位置（座標）、形状（輪郭）、及び大きさ（面積）は、異物９０が画素領域３１Ａに含まれないように設定される。例えば、コンピュータシステムが異物９０の位置、形状、大きさ、個数、及び分布などを画像認識して、異物９０が画素領域３１Ａに含まれないように、画素領域３１Ａの位置、形状、及び大きさを自動設定してもよい。或いは、操作者が異物９０の位置、形状、大きさ、個数、及び分布などを認識して、異物９０が画素領域３１Ａに含まれないように、画素領域３１Ａの位置、形状、及び大きさを手動設定してもよい。符号７０は、このようにして設定された画素領域３１Ａの位置、形状、及び大きさを表示するマークを示している。マーク７０を検査画像３１に重畳表示することにより、操作者は、検査対象の画素領域３１Ａの位置、形状、及び大きさを視覚的に把握することができる。なお、図３に示すように、マーク７０を検査結果画像３７に重畳表示してもよい。
【００２０】
図４は、検査対象外の画素領域３１Ｂをマスクするマスク画像５０の一例を示す説明図である。本明細書では、検査対象外の画素領域３１Ｂの画素情報を畳み込みニューラルネットワーク１００による画像処理（特徴画像８１の抽出処理）から除外することを「マスクする」と呼ぶ。マスク画像５０は、検査対象の画素領域３１Ａに対応する画素領域５０Ａと検査対象外の画素領域３１Ｂに対応する画素領域５０Ｂとを含む。画素領域５０Ａは、検査対象の画素領域３１Ａをマスクせずに、特徴画像８１を抽出するための画素値（例えば、「１」）を有する。画素領域５０Ｂは、検査対象外の画素領域３１Ｂをマスクするための画素値（例えば、「０」）を有する。本明細書では、検査画像３１とマスク画像５０とのそれぞれ対応する画素同士の画素値の演算処理により、検査対象外の画素領域３１Ｂをマスクすることを「マスク処理」と呼ぶ。このようなマスク処理に用いられる演算処理として、例えば、検査画像３１とマスク画像５０とのそれぞれ対応する画素同士の画素値の乗算処理を挙げることができる。マスク処理後の検査対象外の画素領域３１Ｂの画素値は、例えば、「０」の値に変更される。図２及び図４に示す例では、検査対象の画素領域３１Ａ内にある画素Ｐ１と、マスク画像５０の画素領域５０Ａ内にある画素Ｑ１とは、対応する位置関係にあるため、マスク処理では、画素Ｐ１の画素値と画素Ｑ１の画素値（例えば、「１」）とが掛け合わされる。同様に、検査対象外の画素領域３１Ｂ内にある画素Ｐ２と、マスク画像５０の画素領域５０Ｂ内にある画素Ｑ２とは、対応する位置関係にあるため、マスク処理では、画素Ｐ２の画素値と画素Ｑ２の画素値（例えば、「０」）とが掛け合わされる。ここで、「対応する位置関係」とは、例えば、検査画像３１及びマスク画像５０のそれぞれに共通する座標原点を設定したときに、座標位置が同じであることを意味する。
【００２１】
ここで、図１の説明に戻る。畳み込みニューラルネットワーク１００は、検査画像３１とマスク画像５０とのそれぞれ対応する画素値同士を乗算器６１により掛け合わせるマスク処理を行う。畳み込みニューラルネットワーク１００は、マスク処理が行われた検査画像３１に畳み込みフィルタを適用して検査画像３１から特徴を抽出するための畳み込み処理と、抽出された特徴を圧縮するためのプーリング処理とを繰り返し行う。畳み込みニューラルネットワーク１００は、畳み込み処理とプーリング処理とを交互に行ってもよく、或いは、数回の畳み込み処理とそれに続く１回のプーリング処理とを一つの処理単位とし、この処理単位を複数回繰り返し行ってもよい。符号３２は、畳み込み層又はプーリング層を総称する中間層を示している。全結合層３３は、複数の中間層３２を通じて抽出された特徴から重み付き和を計算し、これをソフトマックス層３４に出力する。ソフトマックス層３４は、複数の中間層３２を通じて抽出された特徴が複数のクラスの何れかに属する確率値を、全結合層３３から出力される重み付き和に基づいて算出し、これを全結合層３５に出力する。
【００２２】
畳み込みニューラルネットワーク１００は、複数のクラスのうち操作者によって選択された特定のクラスに対応する欠陥８０の特徴画像８１を抽出するために、その特定のクラス以外のクラスに対応する欠陥の特徴画像に関するソフトマックス層３４の出力値（確率値）をゼロに設定する。畳み込みニューラルネットワーク１００は、全結合層３５からの出力に逆畳み込みフィルタを適用して逆畳み込み処理と逆プーリング処理とを繰り返し行うことにより、特徴画像８１が抽出された検査結果画像３７を出力する。符号３６は、逆畳み込み層又は逆プーリング層を総称する中間層を示している。
【００２３】
本明細書では、「畳み込みフィルタ」と「逆畳み込みフィルタ」を総称して「空間フィルタ」と呼ぶ。また、検査画像３１に空間フィルタを適用して検査画像３１から特徴画像８１を抽出するための処理を「中間処理」と呼ぶ。中間処理には、上述の畳み込み処理、プーリング処理、逆畳み込み処理、及び逆プーリング処理が含まれる。このような中間処理においては、検査対象の画素領域３１Ａと検査対象外の画素領域３１Ｂとの間の境界の特徴が抽出される。説明の便宜上、このような境界の特徴を「境界特徴」と呼ぶ。図１に示す例では、検査画像３１の各中間処理において、境界特徴が抽出される度に、その境界特徴をマスクするために、畳み込みニューラルネットワーク１００は、検査画像３１とマスク画像５０とのそれぞれ対応する画素同士の画素値を乗算器６２により掛け合わせるマスク処理を行う。乗算器６１を用いたマスク処理と乗算器６２を用いたマスク処理とを区別するため、説明の便宜上、前者を「第１のマスク処理」と呼び、後者を「第２のマスク処理」と呼ぶ。
【００２４】
畳み込みニューラルネットワーク１００は、第１のマスク処理後の検査画像３１に行った中間処理と同じ処理をマスク画像５０に行った上で、検査画像３１に第２のマスク処理を行う。Ｎ回目の中間処理を通じて抽出された境界特徴をマスクする場合を例にとって、第２のマスク処理の詳細について説明する。ここで、中間処理の全回数をＭとしたとき、Ｎは１以上Ｍ以下の整数であり、Ｍは１以上の整数である。畳み込みニューラルネットワーク１００は、第１のマスク処理が行われた検査画像３１に空間フィルタを適用して検査画像３１から特徴画像８１を抽出するための中間処理をＮ回行う。畳み込みニューラルネットワーク１００は、検査画像３１に適用した空間フィルタと同一のフィルタをマスク画像５０に適用して、検査画像３１に行われた中間処理と同じ処理をＮ回行う。畳み込みニューラルネットワーク１００は、中間処理がＮ回行われた検査画像３１と、その中間処理と同じ処理がＮ回行われたマスク画像５０とのそれぞれ対応する画素同士の画素値を掛け合わせる。このように、第１のマスク処理後の検査画像３１に行った中間処理と同じ処理をマスク画像５０に行った上で、検査画像３１に第２のマスク処理を行うことにより、中間処理を通じて抽出された境界特徴をマスクすることができる。図１に示す例では、畳み込みニューラルネットワーク１００は、Ｎ＝１，２，…，Ｍの全てにおいて、検査画像３１に第２のマスク処理を行っている。このように、各中間処理において境界特徴が抽出される度に、境界特徴をマスクすることにより、境界特徴の抽出をより確実に抑制することができる。
【００２５】
なお、畳み込み処理では、下式による演算処理が行われる。
【数１】
2020064333.tif 000003
【００２６】
上式において、Ｉbtm（Ｘ，Ｙ，ｃ）は入力画像である。検査画像３１の畳み込み処理では、検査画像３１を入力画像とする。マスク画像５０の畳み込み処理では、マスク画像５０を入力画像とする。Ｉtop（Ｘ，Ｙ，ｃ）は、入力画像を畳み込み処理して得られる出力画像である。Ｗ（Ｘ，Ｙ，ｃ，ｎ）は畳み込みフィルタである。検査画像３１の畳み込み処理に用いられる畳み込みフィルタと、マスク画像５０の畳み込み処理に用いられる畳み込みフィルタは同じである。Ｂ（ｎ）はバイアスである。ｃは入力画像のチャネル数である。Ｋｘ，Ｋｙは、畳み込みフィルタのカーネルサイズである。なお、マスク画像５０の畳み込み処理では、Ｗ（Ｘ，Ｙ，ｃ，ｎ）を全て「１」に置換し、Ｂ（ｎ）を全て「０」に置換して計算してもよい。
【００２７】
なお、上述の説明においては、各中間処理において境界特徴が抽出される度に境界特徴をマスクする例を述べたが、必ずしも、各中間処理において境界特徴が抽出される度に、境界特徴をマスクする必要はない。例えば、検査画像３１に行われる中間処理の回数が少ない段階で抽出された境界特徴をマスクする方が、検査画像３１に行われる中間処理の回数が多い段階で抽出された境界特徴をマスクするよりも、検査対象の画素領域３１Ａと検査対象外の画素領域３１Ｂとの間の境界の特徴の抽出を抑制する効果が高い。境界特徴は、一度抽出されてしまうと、後段の中間処理（例えば、畳み込み処理）を実行する度に画像全体に伝搬していく。畳み込み処理の回数がなるべく少ない段階で第２のマスク処理をする程、境界特徴の伝搬が少なくなる。このため、畳み込みニューラルネットワーク１００は、１回目の中間処理後且つ２回目の中間処理前の検査画像３１に第２のマスク処理を行い、２回目以降の中間処理により抽出された境界特徴をマスクしなくてもよい。或いは、畳み込みニューラルネットワーク１００は、複数の中間層３２のうち何れか１つ又はそれ以上の中間層３２において抽出された境界特徴をマスクし、残りの中間層３２，３６において抽出された境界特徴をマスクしなくてもよい。
【００２８】
また、図５に示すように、マスク画像５０の画素領域のうち、検査対象の画素領域３１Ａに対応する画素領域５０Ａの形状を非矩形に設定してもよい。これにより、検査対象の画素領域３１Ａの設定の自由度を高めることができる。非矩形は、矩形（正方形又は長方形）以外のあらゆる形状を含む。非矩形は、例えば、複数の矩形を組み合わせた多角形でもよく、円形や楕円形などでもよい。また、検査画像３１の全画素領域を二値化処理し、二値のうち何れか一方の値を有する画素の集まりが検査対象の画素領域３１Ａとなるように、マスク画像５０の画素領域５０Ａの形状を設定してもよい。このような二値化処理の例として、例えば、輝度、彩度、又は明度のうち何れかが閾値以上の画素値を「１」とし、閾値未満である画素値を「０」とする処理を挙げることができる。
【００２９】
［ハードウェア構成］
次に、図６を参照しながら、本実施形態に関わる画像処理装置１０のハードウェア構成の一例について説明する。
画像処理装置１０は、そのハードウェア資源として、プロセッサ１１と、メインメモリ１２と、カメラインタフェース１３と、入出力インタフェース１４と、ディスプレイインタフェース１５と、通信インタフェース１６と、記憶装置１７とを備えるコンピュータシステムである。
【００３０】
記憶装置１７は、ディスク媒体（例えば、磁気記録媒体又は光磁気記録媒体）又は半導体メモリ（例えば、揮発性メモリ又は不揮発性メモリ）などのコンピュータ読み取り可能な記録媒体である。このような記録媒体は、例えば、非一過性の記録媒体と呼ぶこともできる。記憶装置１７には、ソフトウェアプログラム（画像処理プログラム２１及びオペレーティングシステム２２）が記憶されている。画像処理プログラム２１は、本実施形態に関わる画像処理方法をプロセッサ１１に実行させるためのコンピュータプログラムである。これらのソフトウェアプログラムは、記憶装置１７からメインメモリ１２に読み込まれ、プロセッサ１１により解釈及び実行されることにより、畳み込みニューラルネットワーク１００による上述の画像処理機能が実現される。なお、記憶装置１７には、検査画像３１及び検査結果画像３７も記憶されている。
【００３１】
カメラインタフェース１３には、カメラ４１が接続されている。カメラ４１は、画像処理装置１０に内蔵されているものでもよく、或いは画像処理装置１０に外付けされるものでもよい。カメラ４１は、被検査対象３０を撮影する。被検査対象３０は、例えば、生産ライン上をベルトコンベヤで搬送されるワークでもよい。画像処理装置１０は、生産ライン上に設置されていてもよく、或いは生産ラインとは異なる場所に設置されていてもよい。画像処理装置１０が生産ラインとは異なる場所に設置されている場合には、画像処理装置１０は、生産ラインに設置されているカメラによる被検査対象３０の撮影により得られた検査画像３１を、通信インタフェース１６を通じてネットワーク４５から受信してもよい。
【００３２】
入出力インタフェース１４には、入力装置４２と出力装置４３とが接続されている。入力装置４２は、操作者による各種設定（例えば、マスク画像５０の設定やクラス指定など）の入力を受け付けるデバイスである。入力装置４２は、キーボード、マウス、タッチパッドなどである。出力装置４３は、画像処理装置１０の処理結果などを出力するデバイスである。出力装置４３は、例えば、プリンタである。
【００３３】
ディスプレイインタフェース１５には、表示装置４４が接続されている。表示装置４４は、操作者による各種設定のための画面を表示したり、欠陥検出の検査結果を表示したりする。例えば、図２に示すように、表示装置４４は、検査対象の画素領域３１Ａの位置、形状、及び大きさを示すマーク７０を検査画像３１に重畳表示することができる。また例えば、図３に示すように、表示装置４４は、マーク７０を検査結果画像３７に重畳表示してもよい。表示装置４４は、例えば、液晶ディスプレイなどのディスプレイデバイスである。
【００３４】
［画像処理方法］
図７は本実施形態に関わる画像処理方法の処理の流れの一例を示すフローチャートである。
ステップ７０１において、画像処理装置１０は、カメラ４１を用いて被検査対象３０を撮影し、検査画像３１を得る。
ステップ７０２において、画像処理装置１０は、マスク画像５０の設定処理を行う。この設定処理では、検査対象の画素領域３１Ａの位置、形状、及び大きさを規定するマスク画像５０が生成される。例えば、図２に示すように、画像処理装置１０が異物９０の位置、形状、大きさ、個数、及び分布などを画像認識して、異物９０が画素領域３１Ａに含まれないように、マスク画像５０を自動設定してもよい。或いは、操作者が異物９０の位置、形状、大きさ、個数、及び分布などを認識して、異物９０が画素領域３１Ａに含まれないように、マスク画像５０を手動設定してもよい。
ステップ７０３において、画像処理装置１０は、学習済みの複数のクラスのうち検出を希望する欠陥８０に対応するクラスの指定を操作者から受け付ける。
ステップ７０４において、画像処理装置１０は、畳み込みニューラルネットワーク１００による画像処理に先立って検査画像３１に前処理を行う。この前処理は、例えば、検査画像３１の拡大処理、縮小処理、又はノイズ除去処理などである。
ステップ７０５において、画像処理装置１０は、畳み込みニューラルネットワーク１００による画像処理を通じて、検査画像３１から欠陥８０の特徴を抽出する。
ステップ７０６において、画像処理装置１０は、抽出された特徴に後処理を行い、特徴画像８１が抽出された検査結果画像３７を出力する。この後処理は、例えば、画素値と閾値との比較に基づく二値化処理である。
ステップ７０７において、画像処理装置１０は、欠陥８０の特徴の抽出に成功したか否かを判定する。欠陥８０が操作者の期待通りに抽出できた場合に、欠陥８０の特徴の抽出に成功したものと判定される。欠陥８０の特徴の抽出に成功するまで、ステップ７０４〜７０６の処理が繰り返し実行される。
なお、図１の説明では、ステップ７０４の前処理と、ステップ７０６の後処理の説明を省略している点に留意されたい。
【００３５】
図８は畳み込みニューラルネットワーク１００による画像処理の流れの一例を示すフローチャートである。この画像処理は、プロセッサ１１による画像処理プログラム２１の実行を通じて、畳み込みニューラルネットワーク１００の画像処理機能として行われるものであり、上述のステップ７０５の処理に相当する。畳み込みニューラルネットワーク１００の画像処理機能の詳細については、図１乃至図４を参照しながら説明した通りである。ここでは、説明の重複を省くため、概略的な記載に留める。
ステップ８０１において、画像処理装置１０は、検査対象の画素領域３１Ａと検査対象外の画素領域３１Ｂとを含む検査画像３１と、検査対象外の画素領域３１Ｂをマスクするための画素値を有し、且つ検査対象外の画素領域３１Ｂに対応付けられる画素領域５０Ｂを含むマスク画像５０とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域３１Ｂをマスクする第１のマスク処理を行う。
ステップ８０２において、画像処理装置１０は、第１のマスク処理が行われた検査画像３１から畳み込みニューラルネットワーク１００を通じて特徴画像８１を抽出するための中間処理を行う。
ステップ８０３において、画像処理装置１０は、マスク画像５０に中間処理と同じ処理を行う。
ステップ８０４において、画像処理装置１０は、中間処理が行われた検査画像３１と、中間処理と同じ処理が行われたマスク画像５０とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域３１Ｂをマスクする第２のマスク処理を行う。
【００３６】
なお、畳み込みニューラルネットワーク１００の画像処理機能は、必ずしも、画像処理装置１０のハードウェア資源と画像処理プログラム２１との協働によって実現される必要はなく、例えば、画像処理装置１０の専用のハードウェア資源（例えば、特定用途向け集積回路（ＡＳＩＣ）、又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）など）を用いて実現されてもよい。
【００３７】
上述の実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限定されない。
（付記１）
検査対象の画素領域３１Ａと検査対象外の画素領域３１Ｂとを含む検査画像３１と、検査対象外の画素領域３１Ｂをマスクするための画素値を有し、且つ検査対象外の画素領域３１Ｂに対応付けられる画素領域５０Ｂを含むマスク画像５０とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域３１Ｂをマスクする第１のマスク処理を行う手段８０１と、
第１のマスク処理が行われた検査画像３１から畳み込みニューラルネットワーク１００を通じて特徴画像８１を抽出するための中間処理を行う手段８０２と、
マスク画像５０に中間処理と同じ処理を行う手段８０３と、
中間処理が行われた検査画像３１と、中間処理と同じ処理が行われたマスク画像５０とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域３１Ｂをマスクする第２のマスク処理を行う手段８０４と、
を備える画像処理装置１０。
（付記２）
付記１に記載の画像処理装置１０であって、
第２のマスク処理を行う手段８０４は、１回目の中間処理後且つ２回目の中間処理前の検査画像３１に第２のマスク処理を行う、画像処理装置１０。
（付記３）
付記１に記載の画像処理装置１０であって、
第２のマスク処理を行う手段８０４は、各中間処理後の検査画像３１に第２のマスク処理を行う、画像処理装置１０。
（付記４）
付記１乃至３のうち何れか１項に記載の画像処理装置であって、
検査対象の画素領域３１Ａの位置、形状、及び大きさを規定するマスク画像５０を自動生成する手段７０２を更に備える、画像処理装置１０。
（付記５）
付記４に記載の画像処理装置であって、
検査対象の画素領域３１Ａの形状は、非矩形である、画像処理装置１０。
（付記６）
付記４又は５に記載の画像処理装置であって、
検査対象の画素領域３１Ａの位置、形状、及び大きさを示すマーク７０を検査画像３１に重畳表示するか又は検査画像３１から特徴画像８１が抽出された検査結果画像３７に重畳表示する表示装置４４を更に備える、画像処理装置１０。
（付記７）
コンピュータシステムが、
検査対象の画素領域３１Ａと検査対象外の画素領域３１Ｂとを含む検査画像３１と、検査対象外の画素領域３１Ｂをマスクするための画素値を有し、且つ検査対象外の画素領域３１Ｂに対応付けられる画素領域５０Ｂを含むマスク画像５０とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域３１Ｂをマスクする第１のマスク処理を行うステップ８０１と、
第１のマスク処理が行われた検査画像３１から畳み込みニューラルネットワーク１００を通じて特徴画像８１を抽出するための中間処理を行うステップ８０２と、
マスク画像５０に中間処理と同じ処理を行うステップ８０３と、
中間処理が行われた検査画像３１と、中間処理と同じ処理が行われたマスク画像５０とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域３１Ｂをマスクする第２のマスク処理を行うステップ８０４と、
を実行する画像処理方法。
（付記８）
コンピュータシステムに、
検査対象の画素領域３１Ａと検査対象外の画素領域３１Ｂとを含む検査画像３１と、検査対象外の画素領域３１Ｂをマスクするための画素値を有し、且つ検査対象外の画素領域３１Ｂに対応付けられる画素領域５０Ｂを含むマスク画像５０とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域３１Ｂをマスクする第１のマスク処理を行うステップ８０１と、
第１のマスク処理が行われた検査画像３１から畳み込みニューラルネットワーク１００を通じて特徴画像８１を抽出するための中間処理を行うステップ８０２と、
マスク画像５０に中間処理と同じ処理を行うステップ８０３と、
中間処理が行われた検査画像３１と、中間処理と同じ処理が行われたマスク画像５０とのそれぞれ対応する画素同士の画素値の演算により検査対象外の画素領域３１Ｂをマスクする第２のマスク処理を行うステップ８０４と、
を実行させる画像処理プログラム２１。
【符号の説明】
【００３８】
１０…画像処理装置  １１…プロセッサ  １２…メインメモリ  １３…カメラインタフェース  １４…入出力インタフェース  １５…ディスプレイインタフェース  １６…通信インタフェース  １７…記憶装置  ２１…画像処理プログラム  ２２…オペレーティングシステム  ３０…検査対象  ３１…検査画像  ３２…中間層  ３３…全結合層  ３４…ソフトマックス層  ３５…全結合層  ３６…中間層  ３７…検査結果画像  ４１…カメラ  ４２…入力装置  ４３…出力装置  ４４…表示装置  ４５…ネットワーク  ５０…マスク画像  ６１…乗算器  ６２…乗算器  ７０…マーク  ８０…欠陥  ８１…特徴画像  ９０…異物
【図１】
2020064333.tif 000004
【図２】
2020064333.tif 000005
【図３】
2020064333.tif 000006
【図４】
2020064333.tif 000007
【図５】
2020064333.tif 000008
【図６】
2020064333.tif 000009
【図７】
2020064333.tif 000010
【図８】
2020064333.tif 000011