(57)【要約】【課題】画像の正常性を判定する処理の判定精度を向上させる。【解決手段】記憶部７１１は、入力データから特徴を抽出し、抽出された特徴から復元された出力データを生成する、復元モデル７２１を記憶する。さらに、記憶部７１１は、復元モデルに正常画像を複数回学習させることで取得された、入力データと出力データとの誤差を示す関数の複数の値に基づく、基準値７２２を記憶する。学習処理部７１２は、復元モデル７２１に判定対象画像を複数回学習させることで、関数の複数の値を取得する。判定部７１３は、復元モデル７２１に判定対象画像を複数回学習させることで取得された関数の複数の値と、基準値７２２とを用いて、判定対象画像の正常性を判定し、出力部７１４は、判定対象画像の正常性を示す判定結果を出力する。【選択図】図７
2020181532.tif 000002
【特許請求の範囲】
【請求項１】
入力データから特徴を抽出し、抽出された特徴から復元された出力データを生成する、復元モデルを記憶するとともに、前記復元モデルに正常画像を複数回学習させることで取得された、前記入力データと前記出力データとの誤差を示す関数の複数の値に基づく、基準値を記憶する記憶部と、
前記復元モデルに判定対象画像を複数回学習させることで、前記関数の複数の値を取得する学習処理部と、
前記復元モデルに前記判定対象画像を複数回学習させることで取得された前記関数の複数の値と、前記基準値とを用いて、前記判定対象画像の正常性を判定する判定部と、
前記判定対象画像の正常性を示す判定結果を出力する出力部と、
を備えることを特徴とする画像判定装置。
【請求項２】
前記基準値は、前記復元モデルに前記正常画像を複数回学習させることで取得された前記関数の複数の値から計算され、
前記判定部は、前記復元モデルに前記判定対象画像を複数回学習させることで取得された前記関数の複数の値と、前記基準値とを用いて、前記判定対象画像の正常性を示す指標を計算し、前記指標と閾値とを比較することで、前記判定対象画像の正常性を判定することを特徴とする請求項１記載の画像判定装置。
【請求項３】
前記正常画像は、第１画像内の複数の領域それぞれの正常画像のうち、いずれかの正常画像であり、
前記判定対象画像は、第２画像内の複数の領域それぞれの判定対象画像のうち、いずれかの判定対象画像であり、
前記記憶部は、領域毎の復元モデルを記憶するとともに、前記領域毎の復元モデルに領域毎の正常画像を複数回学習させることで取得された、領域毎の関数の複数の値に基づく、領域毎の基準値を記憶し、
前記領域毎の基準値は、前記領域毎の関数の複数の値から計算され、
前記学習処理部は、前記領域毎の復元モデルに領域毎の判定対象画像を複数回学習させることで、領域毎の関数の複数の値を取得し、
前記判定部は、領域毎の判定対象画像を用いて取得された前記領域毎の関数の複数の値と、前記領域毎の基準値とを用いて、前記領域毎の判定対象画像の正常性を示す指標を計算し、前記指標と第１閾値とを比較することで、前記第２画像の正常性を判定し、
前記出力部は、前記第２画像の正常性を示す判定結果を出力することを特徴とする請求項１記載の画像判定装置。
【請求項４】
前記判定部は、前記領域毎の判定対象画像の正常性を示す指標の総和を求め、前記指標の総和と第２閾値とを比較することで、前記第２画像の正常性を判定することを特徴とする請求項３記載の画像判定装置。
【請求項５】
前記復元モデルは、学習前の復元モデルに正常画像の集合を学習させることで生成されることを特徴とする請求項１乃至４のいずれか１項に記載の画像判定装置。
【請求項６】
コンピュータによって実行される画像判定方法であって、
前記コンピュータが、
入力データから特徴を抽出し、抽出された特徴から復元された出力データを生成する、復元モデルに、判定対象画像を複数回学習させることで、前記入力データと前記出力データとの誤差を示す関数の複数の値を取得し、
前記復元モデルに正常画像を複数回学習させることで取得された前記関数の複数の値に基づく基準値と、前記復元モデルに前記判定対象画像を複数回学習させることで取得された前記関数の複数の値とを用いて、前記判定対象画像の正常性を判定し、
前記判定対象画像の正常性を示す判定結果を出力する、
ことを特徴とする画像判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像判定装置及び画像判定方法に関する。
【背景技術】
【０００２】
工場の生産ライン等において、製造された製品の傷、凹み、汚れ等の不良部分を検出するために、外観検査が実施されている。この外観検査では、各生産ラインに配置された検査員が、あらかじめ規定された検査基準に基づいて目視で判別を行うことにより、製品が不良品であるか否かが判定される。
【０００３】
しかし、検査基準は、「視力○○で○ｍ離れて傷がみえないこと」、「○×○ミリ範囲の傷が○個以下」のような、テキストで表現されることが多い。この場合、様々な形態を取る不良部分に対して、限られた検査時間内で個人の感覚に依存して判定が行われるため、判定結果にばらつきが生じる。このため、段階的に複数の検査員を配置して誤判定を防ぐ等の対策が行われることが多く、人件費がかさむ要因となる。
【０００４】
そこで、近年では、パターンマッチング法、特徴抽出法等の画像処理技術を用いた自動判定システムの導入が進んでいる。
【０００５】
異常検知に関連して、自己符号化器を用いて異常を検知する技術が知られている（例えば、特許文献１及び特許文献２を参照）。ディープラーニング等を用いてコンクリート構造物の施工品質を評価する技術も知られている（例えば、特許文献３を参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−７３２５８号公報
【特許文献２】特開２０１８−１１２８６３号公報
【特許文献３】特開２０１６−１４２６０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
画像処理技術を用いた自動判定システムでは、製品を撮影した撮影画像に対する判定結果の精度を、検査基準に沿った実用的なレベルまで向上させることは困難である。
【０００８】
なお、かかる問題は、工場の生産ライン等における製品の外観検査に限らず、様々な撮影対象を撮影した撮影画像の正常性を判定する処理において生ずるものである。
【０００９】
１つの側面において、本発明は、画像の正常性を判定する処理の判定精度を向上させることを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、画像判定装置は、記憶部、学習処理部、判定部、及び出力部を含む。記憶部は、入力データから特徴を抽出し、抽出された特徴から復元された出力データを生成する、復元モデルを記憶する。さらに、記憶部は、復元モデルに正常画像を複数回学習させることで取得された、入力データと出力データとの誤差を示す関数の複数の値に基づく、基準値を記憶する。
【００１１】
学習処理部は、復元モデルに判定対象画像を複数回学習させることで、関数の複数の値を取得する。判定部は、復元モデルに判定対象画像を複数回学習させることで取得された関数の複数の値と、基準値とを用いて、判定対象画像の正常性を判定し、出力部は、判定対象画像の正常性を示す判定結果を出力する。
【発明の効果】
【００１２】
１つの側面において、画像の正常性を判定する処理の判定精度を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】画像処理装置の学習時における機能的構成図である。
【図２】損失関数の値の変化を示す図である。
【図３】正常画像の復元処理を示す図である。
【図４】画像処理装置の判定時における機能的構成図である。
【図５】正常画像に対する判定処理を示す図である。
【図６】異常画像に対する判定処理を示す図である。
【図７】画像判定装置の機能的構成図である。
【図８】画像判定処理のフローチャートである。
【図９】外観検査システムの機能的構成図である。
【図１０】判定対象画像を示す図である。
【図１１】正常画像及び判定対象画像に対する損失関数の値の変化を示す図である。
【図１２】正常画像に対する損失関数の値を示す図である。
【図１３】判定対象画像に対する損失関数の値を示す図である。
【図１４】学習処理のフローチャートである。
【図１５】判定処理のフローチャートである。
【図１６】情報処理装置の構成図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら、実施形態を詳細に説明する。
上述したように、近年の外観検査では、パターンマッチング法、特徴抽出法等の画像処理技術の導入が進んでいる。
【００１５】
パターンマッチング法では、撮影画像と正常画像との重ね合わせにより、差分の有無が判定される。正常画像は、傷、凹み、汚れ等の不良部分を含まない、良好な製品（良品）が写っている画像である。このようなパターンマッチング法では、撮影画像と正常画像との間における位置ずれが生じない撮影環境を整備するか、又は別の画像処理により位置ずれ補正を行うことが望ましく、整備コスト又は処理負荷が増加する。また、照明の明るさ又は方向によって撮影画像と正常画像との間に差分が生じる場合、誤判定が増加する。
【００１６】
特徴抽出法では、異常パターンとしてあらかじめ想定される特徴が撮影画像から探索される。このため、傷又は汚れの場所、太さ、傾き、面積等が異なる多数の異常パターンが存在する場合、すべての異常パターンを漏れなく検出することは難しい。
【００１７】
最近では、機械学習に代表される人工知能を活用した画像判定技術の導入も検討されている。この画像判定技術は、大きく以下の２つの方法に分けられる。
（Ｍ１）ＳＶＭ（Support Vector Machine）、ＣＮＮ（Convolutional Neural Network）等のモデルに、正常画像及び異常画像と教師ラベルとを学習させ、学習後のモデルを用いて撮影画像を分類する分類方法。
（Ｍ２）畳み込み自己符号化器（Convolutional Auto Encoder，ＣＡＥ）に正常画像を学習させ、学習後のＣＡＥに対する入力画像と出力画像との差分に基づいて、入力画像が正常か否かを判別する判別方法。
【００１８】
異常画像は、不良部分を含む不良品が写っている画像である。（Ｍ１）の分類方法には、以下のような問題がある。
（ａ）大量の正常画像及び大量の異常画像をモデルに学習させることが望ましいが、不良品の発生数が少ない場合、学習に十分な量の異常画像を用意することが困難である。
（ｂ）学習されていない異常パターンを含む撮影画像の分類精度が低下する。
（ｃ）正常画像及び異常画像に対する教師ラベルは、各画像が正常画像又は異常画像のいずれであるかを示し、作業者によって付与される。このため、目視検査の場合と同様のばらつきが教師ラベルに生じ、分類結果に影響を及ぼす。
【００１９】
一方、（Ｍ２）の判別方法では、正常画像のみを使用して学習が行われ、教師ラベルも不要なため、（ａ）〜（ｃ）のような問題が生じない利点がある。
【００２０】
図１は、（Ｍ２）の判別方法を用いる画像処理装置の学習時における機能的構成例を示している。図１の画像処理装置１０１は、ＣＡＥ１１１及び損失関数１１２を含み、ＣＡＥ１１１は、符号化部１２１及び復号部１２２を含む。
【００２１】
符号化部１２１は、入力画像から特徴を抽出して、抽出された特徴を符号化する。復号部１２２は、符号化された特徴を復号し、特徴から復元された復元画像を出力画像として出力する。符号化部１２１及び復号部１２２は、ニューラルネットワークを用いて生成され、重み及びバイアスをパラメータとして含む。
【００２２】
学習時には、入力画像として正常画像がＣＡＥ１１１に入力され、ＣＡＥ１１１は、正常画像の特徴から復元された復元画像を出力する。損失関数１１２は、ＣＡＥ１１１に入力される入力画像と、ＣＡＥ１１１から出力される出力画像との誤差を示す関数である。画像処理装置１０１は、損失関数１１２を用いて、正常画像と復元画像との誤差を評価し、損失関数の値が小さくなるように、ＣＡＥ１１１内部のパラメータを調整しながら、正常画像に対する学習を繰り返す。
【００２３】
図２は、学習時における損失関数の値の変化の例を示している。横軸の学習回数は、同じ正常画像に対する学習の繰り返し回数を表し、縦軸は、計算された損失関数の値を表す。この例では、学習回数が増加するにつれて損失関数の値が減少しており、学習回数が５回を超えると、損失関数の値は十分に小さな値に収束している。
【００２４】
図３は、学習が進んだ状態における正常画像の復元処理の例を示している。ＣＡＥ１１１は、複数の正常画像３０１各々の特徴を学習して、正常画像３０２を復元する。このように、十分に学習が進んだ状態になると、ＣＡＥ１１１内部に正常画像３０２を復元するためのパラメータが蓄積され、正常画像３０１を入力すれば、同様の正常画像３０２が復元画像として出力されるようになる。
【００２５】
図４は、図１の画像処理装置１０１の判定時における機能的構成例を示している。図４の画像処理装置１０１は、学習後のＣＡＥ１１１、画像差分抽出部４０１、及び異常判定部４０２を含む。
【００２６】
判定時には、入力画像として判定対象画像がＣＡＥ１１１に入力され、ＣＡＥ１１１は、判定対象画像の特徴から復元された復元画像を出力する。画像差分抽出部４０１は、判定対象画像の画素値と復元画像の画素値との直接的な差分を計算し、異常判定部４０２は、計算された差分の大きさに基づいて、判定対象画像が正常画像又は異常画像のいずれであるかを判定する。
【００２７】
図５は、正常画像に対する判定処理の例を示している。判定対象画像５０１が正常画像である場合、ＣＡＥ１１１は、判定対象画像５０１とほぼ同様の正常画像を復元画像５０２として出力する。この場合、判定対象画像５０１と復元画像５０２との差分は、比較的小さくなる。
【００２８】
図６は、異常画像に対する判定処理の例を示している。傷６１１が写っている異常画像が判定対象画像６０１である場合、ＣＡＥ１１１は、判定対象画像６０１をなんとか正常画像に合わせ込もうとする。ところが、ＣＡＥ１１１によって復元された復元画像６０２は、傷６１１の名残りを示す異常部分６１２がある程度残った画像となる。この場合、判定対象画像６０１と復元画像６０２との差分は、図５の場合よりも大きくなる。
【００２９】
異常判定部４０２は、判定対象画像と復元画像との差分が一定値以下である場合、判定対象画像が正常画像であると判定し、差分が一定値よりも大きい場合、判定対象画像が異常画像であると判定する。
【００３０】
しかしながら、（Ｍ２）の判別方法には、以下のような問題がある。
上述したように、外観検査の現場では、あらかじめ規定された検査基準に基づいて製品が検査されるため、例えば、傷の程度（濃淡、深さ、又は反射）を考慮して製品を検査することが望ましい。傷の程度を考慮した検査基準としては、次のようなものが挙げられる。
（Ｃ１）目立つ傷の場合は、傷の長さ、幅、又は範囲が小さくても異常とみなす。
（Ｃ２）薄くかすれた傷のように、傷が小さい場合は異常とみなさず、傷が所定範囲以上に広がっている場合、又は複数個所に点在している場合に、初めて異常とみなす。
【００３１】
しかし、（Ｍ２）の判別方法では、判定対象画像と復元画像との差分に基づいて、判定対象画像に対する判定が行われる。このため、判定対象画像に、製品の位置ずれ、傾き、明るさの差異等のように、不良部分ではないが正常画像とは異なる部分が含まれている場合、判定対象画像と復元画像との差分が大きくなり、異常画像であると誤判定されやすくなる。また、本来の検出対象である傷に由来する差分が、傷以外の部分に由来する差分の中に埋もれてしまい、異常画像の見逃しが発生することもあり得る。
【００３２】
したがって、判定対象画像に対する判定結果の精度を、傷の程度を考慮した検査基準に沿った実用的なレベルまで向上させることは困難である。
【００３３】
図７は、実施形態の画像判定装置の機能的構成例を示している。図７の画像判定装置７０１は、記憶部７１１、学習処理部７１２、判定部７１３、及び出力部７１４を含む。
【００３４】
記憶部７１１は、入力データから特徴を抽出し、抽出された特徴から復元された出力データを生成する、復元モデル７２１を記憶する。さらに、記憶部７１１は、復元モデル７２１に正常画像を複数回学習させることで取得された、入力データと出力データとの誤差を示す関数の複数の値に基づく、基準値７２２を記憶する。学習処理部７１２及び判定部７１３は、復元モデル７２１及び基準値７２２を用いて画像判定処理を行う。
【００３５】
図８は、図７の画像判定装置７０１が行う画像判定処理の例を示すフローチャートである。まず、学習処理部７１２は、復元モデル７２１に判定対象画像を複数回学習させることで、関数の複数の値を取得する（ステップ８０１）。次に、判定部７１３は、復元モデル７２１に判定対象画像を複数回学習させることで取得された関数の複数の値と、基準値とを用いて、判定対象画像の正常性を判定する（ステップ８０２）。そして、出力部７１４は、判定対象画像の正常性を示す判定結果を出力する（ステップ８０３）。
【００３６】
図７の画像判定装置７０１によれば、画像の正常性を判定する処理の判定精度を向上させることができる。
【００３７】
図９は、図７の画像判定装置７０１を含む外観検査システムの機能的構成例を示している。図９の外観検査システムは、画像判定装置９０１及び撮像装置９０２を含み、学習モード及び判定モードの２種類の動作モードを有する。外観検査の検査対象は、生産ライン９０４上の製品９０３である。
【００３８】
画像判定装置９０１は、図７の画像判定装置７０１に対応し、記憶部９１１、画像取得部９１２、画像加工部９１３、学習処理部９１４、計算部９１５、判定部９１６、及び出力部９１７を含む。記憶部９１１、学習処理部９１４、判定部９１６、及び出力部９１７は、図７の記憶部７１１、学習処理部７１２、判定部７１３、及び出力部７１４にそれぞれ対応する。
【００３９】
撮像装置９０２は、例えば、ＣＣＤ（Charged-Coupled Device）、ＣＭＯＳ（Complementary Metal-Oxide-Semiconductor）等の撮像素子を有するカメラであり、判定モードにおいて製品９０３を撮影する。画像取得部９１２は、撮影された画像を撮像装置９０２から取得し、取得した画像を判定対象画像９２６として記憶部９１１に格納する。
【００４０】
画像加工部９１３は、判定対象画像９２６を複数の領域に分割する。例えば、複数の領域としては、ｎ×ｎ（ｎは２以上の整数）のブロックが用いられる。判定対象画像９２６に写っている判定対象の不良部分は、製品全体の大きさと比較して小さいことが多い。この場合、判定対象画像９２６を分割して領域毎に画像を評価することで、判定精度をより向上させることができる。
【００４１】
図１０は、複数のブロックに分割された判定対象画像９２６の例を示している。判定対象画像１００１は、縦横の境界線によって８×８（６４個）のブロック１００２に分割されている。
【００４２】
画像加工部９１３は、判定対象画像９２６に写っている不良部分を目立たせるために、ソーベルフィルタ、エッジフィルタ等によるフィルタ加工のような画像変換を施すこともできる。
【００４３】
記憶部９１１は、ＣＡＥ９２１、損失関数９２２、画像集合９２３−１、及び画像集合９２３−２を記憶する。
【００４４】
ＣＡＥ９２１は、学習前の復元モデルの一例であり、入力画像から特徴を抽出し、抽出された特徴から復元された出力画像を生成する。判定対象画像９２６が複数の領域に分割される場合、ＣＡＥ９２１も領域毎に用意される。例えば、判定対象画像９２６が６４個の領域に分割される場合、記憶部９１１は、６４個のＣＡＥ９２１を記憶する。
【００４５】
損失関数９２２は、ＣＡＥ９２１の損失関数である。例えば、損失関数９２２としては、入力画像と出力画像との間のクロスエントロピー誤差、最小二乗誤差等を示す関数が用いられる。
【００４６】
画像集合９２３−１は、ＣＡＥ９２１に入力される学習用の正常画像の集合であり、画像集合９２３−２は、学習後のＣＡＥ９２４に入力される正常画像の集合である。不良部分を含まない良品を撮像装置９０２によって撮影することで、これらの正常画像を取得することができる。
【００４７】
学習モードにおいて、画像加工部９１３は、画像集合９２３−１及び画像集合９２３−２に含まれる各正常画像を複数の領域に分割し、領域毎の正常画像を生成する。学習処理部９１４は、領域毎のＣＡＥ９２１に、画像集合９２３−１から生成された領域毎の正常画像を複数回学習させることで、ＣＡＥ９２１内部のパラメータを決定する。
【００４８】
学習処理部９１４は、領域毎の損失関数９２２の値が小さくなるように、ＣＡＥ９２１内部のパラメータを調整しながら学習を繰り返し、損失関数９２２の値の変化量が所定値よりも小さくなると、得られたパラメータを学習結果に決定する。そして、学習処理部９１４は、領域毎のＣＡＥ９２１に決定されたパラメータを設定することで、学習後における領域毎のＣＡＥ９２４を生成して、記憶部９１１に格納する。
【００４９】
次に、学習処理部９１４は、領域毎のＣＡＥ９２４に、画像集合９２３−２から生成された領域毎の正常画像を複数回学習させることで、領域毎の損失関数９２２の複数の値を取得する。これらの値は、画像集合９２３−２の学習における損失関数９２２の履歴情報を表す。計算部９１５は、取得された領域毎の損失関数９２２の複数の値を用いて、領域毎の基準値９２５を計算し、記憶部９１１に格納する。
【００５０】
ＣＡＥ９２４及び基準値９２５は、図７の復元モデル７２１及び基準値７２２にそれぞれ対応する。復元モデル７２１としてＣＡＥ９２４を用いることで、入力画像と出力画像との誤差を示す関数として、損失関数９２２を用いることが可能になる。
【００５１】
画像集合９２３−２に含まれる正常画像の枚数は、画像集合９２３−１に含まれる学習用の正常画像の枚数よりも少数でよい。例えば、１００個の良品を撮影することで１００枚の正常画像が取得された場合、そのうち９０枚〜９９枚の正常画像を画像集合９２３−１として用い、残りの１０枚〜１枚の正常画像を画像集合９２３−２として用いることができる。画像集合９２３−２は、画像集合９２３−１の一部分であっても構わない。多数の正常画像を含む画像集合９２３−１をＣＡＥ９２１に学習させることで、高い復元性能を有するＣＡＥ９２４を生成することができる。
【００５２】
また、画像集合９２３−２の各正常画像に対する学習の繰り返し回数（エポック数）は、画像集合９２３−１の各正常画像に対する学習のエポック数よりも少数でよい。例えば、画像集合９２３−１に対するエポック数が数千回〜数万回である場合でも、画像集合９２３−２に対するエポック数は数回〜１０回程度で構わない。
【００５３】
判定モードにおいて、画像加工部９１３は、判定対象画像９２６を複数の領域に分割し、領域毎の判定対象画像を生成する。学習処理部９１４は、領域毎のＣＡＥ９２４に領域毎の判定対象画像を複数回学習させることで、領域毎の損失関数９２２の複数の値を取得する。これらの値は、領域毎の判定対象画像の学習における損失関数９２２の履歴情報を表す。判定対象画像９２６に対するエポック数としては、画像集合９２３−２に対するエポック数を用いることができる。
【００５４】
判定部９１６は、領域毎の判定対象画像を用いて取得された損失関数９２２の複数の値と、領域毎の基準値９２５とを用いて、その判定対象画像の正常性を示す指標を計算する。そして、判定部９１６は、領域毎に計算された指標と閾値Ｔ１とを比較することで、判定対象画像９２６の正常性を判定し、判定対象画像９２６の正常性を示す判定結果９２７を記憶部９１１に格納する。判定結果９２７は、判定対象画像９２６が正常画像又は異常画像のいずれであるかを示す。出力部９１７は、判定結果９２７を出力する。
【００５５】
図１１は、画像集合９２３−２の領域毎の正常画像に対する学習と、領域毎の判定対象画像に対する学習における、損失関数９２２の値の変化の例を示している。横軸は、学習回数を表し、縦軸は、計算された損失関数９２２の値を表す。
【００５６】
判定対象画像Ｑは異常画像であり、いずれの学習回数においても、判定対象画像Ｑに対する損失関数９２２の値は、画像集合９２３−２に含まれる正常画像Ｐ１〜正常画像Ｐ５に対する損失関数９２２の値よりも大きくなっている。
【００５７】
図１２は、画像集合９２３−２の領域毎の正常画像に対する学習における、損失関数９２２の値の例を示している。図１２では、正常画像Ｐ１〜正常画像Ｐ５に対する損失関数９２２の値が示されており、正常画像Ｐ６〜正常画像Ｐ１０に対する損失関数９２２の値は省略されている。ｍ回（ｍ＝１〜１０）の列の数値は、ｍ回目の学習が終了した時点における損失関数９２２の値を表し、累計は、１回〜１０回の列の数値の総和を表す。
【００５８】
計算部９１５は、例えば、画像集合９２３−２の各正常画像に対する損失関数９２２の累計の統計値Ｓ及び標準偏差σを用いて、次式により、領域毎の基準値Ｒを計算する。
Ｒ＝Ｓ＋σ      （１）
【００５９】
式（１）の統計値Ｓとしては、複数の累計の平均値、中央値、総和等が用いられる。そして、計算部９１５は、計算された基準値Ｒを基準値９２５として記録する。
【００６０】
図１３は、領域毎の判定対象画像Ｑに対する学習における、損失関数９２２の値の例を示している。
【００６１】
判定部９１６は、領域毎の判定対象画像に対する損失関数９２２の累計Ｌと基準値Ｒとを用いて、次式により、その判定対象画像の正常性を示す指標Ｋを計算する。
Ｋ＝Ｌ／Ｒ      （２）
【００６２】
判定対象画像が正常画像と近似しているほど、指標Ｋは小さくなり、判定対象画像が正常画像と異なっているほど、指標Ｋは大きくなる。そこで、判定部９１６は、すべての領域について指標Ｋを計算し、いずれか１つ以上の領域において指標Ｋが閾値Ｔ１よりも大きい場合、判定対象画像９２６は異常画像であると判定する。この場合、判定対象画像９２６に写っている製品は、不良品と判定される。指標Ｋに基づく判定を行うことで、複数回の学習における損失関数９２２の履歴情報を用いて、領域毎の判定対象画像の正常性を判定することができる。
【００６３】
一方、すべての領域において指標Ｋが閾値Ｔ１以下である場合、判定部９１６は、すべての領域における指標Ｋの総和を求め、指標Ｋの総和と閾値Ｔ２とを比較することで、判定対象画像９２６の正常性を判定する。
【００６４】
例えば、判定部９１６は、指標Ｋの総和が閾値Ｔ２よりも大きい場合、判定対象画像９２６は異常画像であると判定し、指標Ｋの総和が閾値Ｔ２以下である場合、判定対象画像９２６は正常画像であると判定する。判定対象画像９２６が正常画像と判定された場合、判定対象画像９２６に写っている製品は、良品と判定される。指標Ｋの総和に基づく判定を行うことで、製品の表面に薄く広がったかすり傷、汚れ等を有する不良品を検出することが可能になる。
【００６５】
閾値Ｔ１及び閾値Ｔ２は、外観検査における検査基準が変更された場合に微調整されるチューニング用パラメータであり、検査対象の製品に合わせて設定される。例えば、生産ラインにおいて発生する不良のレベル、製品の撮影環境等に合わせて閾値Ｔ１及び閾値Ｔ２を設定してもよい。
【００６６】
図９の画像判定装置９０１によれば、判定対象画像９２６の画素値と復元画像の画素値との直接的な差分の代わりに、判定対象画像９２６に対する損失関数９２２の履歴情報を用いて、判定対象画像９２６の正常性が判定される。これにより、判定対象画像９２６に、製品の位置ずれ、傾き、明るさの差異等の撮影環境の差異が発生している場合であっても、その影響を吸収することが可能になる。このため、指標Ｋが閾値Ｔ１を超えたり、指標Ｋの総和が閾値Ｔ２を超えたりすることが抑制され、異常画像であると誤判定される可能性が低下する。
【００６７】
また、複数の正常画像を画像集合９２３−２として用いることで、様々な正常画像に対する損失関数９２２の履歴情報を、基準値Ｒ及び指標Ｋに反映させることができる。これにより、判定対象画像９２６の画素値と復元画像の画素値との差分だけでは区別することが難しい、傷の濃淡、傷の範囲、別の物体の写り込み等の差異を、指標Ｋに反映させることができる。
【００６８】
したがって、図９の画像判定装置９０１によれば、製品の画像を用いた外観検査における不良品の判定精度が、図４の画像処理装置１０１よりも向上する。
【００６９】
図１４は、学習モードにおいて画像判定装置９０１が行う学習処理の例を示すフローチャートである。画像集合９２３−１及び画像集合９２３−２に含まれる各正常画像は、画像加工部９１３によって、ｎ×ｎのブロックに分割される。
【００７０】
まず、学習処理部９１４は、画像集合９２３−１の正常画像を対象として、ブロック毎にステップ１４０１〜ステップ１４０３の処理を繰り返す。
【００７１】
学習処理部９１４は、ブロック毎の正常画像の色諧調を０〜２５５の階調値で正規化し（ステップ１４０１）、ブロック毎のＣＡＥ９２１に、正規化された正常画像を学習させる（ステップ１４０２）。ステップ１４０２の学習におけるエポック数は、例えば、数千回〜数万回であり、バッチサイズは、例えば、１６枚、３２枚等である。そして、学習処理部９１４は、学習により決定されたパラメータをブロック毎のＣＡＥ９２１に設定することで、学習後におけるブロック毎のＣＡＥ９２４を生成する（ステップ１４０３）。
【００７２】
次に、学習処理部９１４は、画像集合９２３−２の正常画像を対象として、ブロック毎にステップ１４０４〜ステップ１４０７の処理を繰り返す。
【００７３】
学習処理部９１４は、ステップ１４０１と同様にして、ブロック毎の正常画像の色諧調を正規化し（ステップ１４０４）、ブロック毎のＣＡＥ９２４に、正規化された正常画像を学習させる（ステップ１４０５）。ステップ１４０５の学習におけるエポック数は、例えば、数回〜１０回である。そして、計算部９１５は、ブロック毎の損失関数９２２の値の累計を計算する（ステップ１４０６）。ステップ１４０４〜ステップ１４０６の処理は、画像集合９２３−２の正常画像毎に繰り返される。
【００７４】
次に、計算部９１５は、ブロック毎の損失関数９２２の値の累計を用いて、式（１）によりブロック毎の基準値９２５を計算する（ステップ１４０７）。
【００７５】
図１５は、判定モードにおいて画像判定装置９０１が行う判定処理の例を示すフローチャートである。判定対象画像９２６は、画像加工部９１３によって、ｎ×ｎのブロックに分割される。
【００７６】
まず、学習処理部９１４は、判定対象画像９２６のブロック毎にステップ１５０１〜ステップ１５０４の処理を繰り返す。
【００７７】
学習処理部９１４は、図１４のステップ１４０１と同様にして、ブロック毎の判定対象画像の色諧調を正規化し（ステップ１５０１）、ブロック毎のＣＡＥ９２４に、正規化された判定対象画像を学習させる（ステップ１５０２）。ステップ１５０２の学習におけるエポック数は、ステップ１４０５におけるエポック数と同様である。そして、判定部９１６は、ブロック毎の損失関数９２２の値の累計を計算し（ステップ１５０３）、計算された累計とブロック毎の基準値９２５とを用いて、式（２）によりブロック毎の指標Ｋを計算する（ステップ１５０４）。
【００７８】
次に、判定部９１６は、ブロック毎に計算された指標Ｋ、閾値Ｔ１、及び閾値Ｔ２を用いて、判定対象画像９２６の正常性を判定し、判定結果９２７を生成する（ステップ１５０５）。そして、出力部９１７は、判定結果９２７を出力する。
【００７９】
図１及び図４の画像処理装置１０１の構成は一例に過ぎず、画像処理装置１０１の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
【００８０】
図７の画像判定装置７０１の構成は一例に過ぎず、画像判定装置７０１の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
【００８１】
図９の外観検査システムの構成は一例に過ぎず、外観検査システムの用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、事前に画像集合９２３−１、画像集合９２３−２、及び判定対象画像９２６が記憶部９１１に格納されている場合は、画像取得部９１２を省略することができる。画像集合９２３−１の正常画像、画像集合９２３−２の正常画像、及び判定対象画像９２６それぞれを分割する必要がない場合は、画像加工部９１３を省略することができる。事前に基準値９２５が記憶部９１１に格納されている場合は、計算部９１５を省略することができる。
【００８２】
図７の復元モデル７２１として、ＣＡＥ以外のモデルを用いても構わない。例えば、図９のＣＡＥ９２１及びＣＡＥ９２４の代わりに、ＶＡＥ（Variational Auto Encoder）等の自己符号化器を用いることもできる。損失関数９２２の代わりに、入力データと出力データとの誤差を示す別の関数を用いることもできる。
【００８３】
図９の画像判定装置９０１は、製品の外観検査に限らず、様々な撮影対象を撮影した撮影画像の正常性を判定する処理に適用することができる。例えば、判定対象の撮影画像は、監視カメラの映像に含まれる画像であってもよい。
【００８４】
図８、図１４、及び図１５のフローチャートは一例に過ぎず、画像判定装置の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、図９の画像判定装置９０１において、画像集合９２３−１及び画像集合９２３−２の正常画像を正規化する必要がない場合は、図１４のステップ１４０１及びステップ１４０４の処理を省略することができる。判定対象画像９２６を正規化する必要がない場合は、図１５のステップ１５０１の処理を省略することができる。ＣＡＥ９２４及び基準値９２５が外部の装置によって生成される場合は、図１４の学習処理を省略することができる。
【００８５】
図２及び図１１〜図１３に示した損失関数の値は一例に過ぎず、損失関数の値は、ＣＡＥの学習対象の画像に応じて変化する。図３に示した復元処理と図５及び図６に示した判定処理は一例に過ぎず、復元処理及び判定処理は、ＣＡＥの学習対象の画像に応じて変化する。図１０に示した判定対象画像１００１の分割方法は一例に過ぎず、画像加工部９１３は、判定対象画像１００１を別の形状の領域に分割することもできる。
【００８６】
式（１）及び式（２）は一例に過ぎず、画像判定装置９０１は、別の数式を用いて基準値Ｒ及び指標Ｋを計算してもよい。例えば、式（１）の右辺の標準偏差σを省略しても構わない。
【００８７】
図１６は、図７の画像判定装置７０１及び図９の画像判定装置９０１として用いられる情報処理装置の構成例を示している。図１６の情報処理装置は、ＣＰＵ（Central Processing Unit）１６０１、メモリ１６０２、入力装置１６０３、出力装置１６０４、補助記憶装置１６０５、媒体駆動装置１６０６、及びネットワーク接続装置１６０７を含む。これらの構成要素はバス１６０８により互いに接続されている。図９の撮像装置９０２は、バス１６０８に接続されていてもよい。
【００８８】
メモリ１６０２は、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ１６０２は、図７の記憶部７１１又は図９の記憶部９１１として用いることができる。
【００８９】
ＣＰＵ１６０１（プロセッサ）は、例えば、メモリ１６０２を利用してプログラムを実行することにより、図７の学習処理部７１２及び判定部７１３として動作する。ＣＰＵ１６０１は、メモリ１６０２を利用してプログラムを実行することにより、図９の画像取得部９１２、画像加工部９１３、学習処理部９１４、計算部９１５、及び判定部９１６としても動作する。
【００９０】
入力装置１６０３は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置１６０４は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。処理結果は、判定結果９２７であってもよい。出力装置１６０４は、図９の出力部９１７として用いることができる。
【００９１】
補助記憶装置１６０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置１６０５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置１６０５にプログラム及びデータを格納しておき、それらをメモリ１６０２にロードして使用することができる。補助記憶装置１６０５は、図７の記憶部７１１又は図９の記憶部９１１として用いることができる。
【００９２】
媒体駆動装置１６０６は、可搬型記録媒体１６０９を駆動し、その記録内容にアクセスする。可搬型記録媒体１６０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体１６０９は、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＵＳＢ（Universal Serial Bus）メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体１６０９にプログラム及びデータを格納しておき、それらをメモリ１６０２にロードして使用することができる。
【００９３】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ１６０２、補助記憶装置１６０５、又は可搬型記録媒体１６０９のような、物理的な（非一時的な）記録媒体である。
【００９４】
ネットワーク接続装置１６０７は、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置１６０７を介して受信し、それらをメモリ１６０２にロードして使用することができる。ネットワーク接続装置１６０７は、図９の出力部９１７として用いることができる。
【００９５】
なお、情報処理装置が図１６のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、オペレータ又はユーザとのインタフェースが不要な場合は、入力装置１６０３及び出力装置１６０４を省略してもよい。可搬型記録媒体１６０９又は通信ネットワークを使用しない場合は、媒体駆動装置１６０６又はネットワーク接続装置１６０７を省略してもよい。
【００９６】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【００９７】
図１乃至図１６を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
入力データから特徴を抽出し、抽出された特徴から復元された出力データを生成する、復元モデルを記憶するとともに、前記復元モデルに正常画像を複数回学習させることで取得された、前記入力データと前記出力データとの誤差を示す関数の複数の値に基づく、基準値を記憶する記憶部と、
前記復元モデルに判定対象画像を複数回学習させることで、前記関数の複数の値を取得する学習処理部と、
前記復元モデルに前記判定対象画像を複数回学習させることで取得された前記関数の複数の値と、前記基準値とを用いて、前記判定対象画像の正常性を判定する判定部と、
前記判定対象画像の正常性を示す判定結果を出力する出力部と、
を備えることを特徴とする画像判定装置。
（付記２）
前記基準値は、前記復元モデルに前記正常画像を複数回学習させることで取得された前記関数の複数の値から計算され、
前記判定部は、前記復元モデルに前記判定対象画像を複数回学習させることで取得された前記関数の複数の値と、前記基準値とを用いて、前記判定対象画像の正常性を示す指標を計算し、前記指標と閾値とを比較することで、前記判定対象画像の正常性を判定することを特徴とする付記１記載の画像判定装置。
（付記３）
前記正常画像は、第１画像内の複数の領域それぞれの正常画像のうち、いずれかの正常画像であり、
前記判定対象画像は、第２画像内の複数の領域それぞれの判定対象画像のうち、いずれかの判定対象画像であり、
前記記憶部は、領域毎の復元モデルを記憶するとともに、前記領域毎の復元モデルに領域毎の正常画像を複数回学習させることで取得された、領域毎の関数の複数の値に基づく、領域毎の基準値を記憶し、
前記領域毎の基準値は、前記領域毎の関数の複数の値から計算され、
前記学習処理部は、前記領域毎の復元モデルに領域毎の判定対象画像を複数回学習させることで、領域毎の関数の複数の値を取得し、
前記判定部は、領域毎の判定対象画像を用いて取得された前記領域毎の関数の複数の値と、前記領域毎の基準値とを用いて、前記領域毎の判定対象画像の正常性を示す指標を計算し、前記指標と第１閾値とを比較することで、前記第２画像の正常性を判定し、
前記出力部は、前記第２画像の正常性を示す判定結果を出力することを特徴とする付記１記載の画像判定装置。
（付記４）
前記判定部は、前記領域毎の判定対象画像の正常性を示す指標の総和を求め、前記指標の総和と第２閾値とを比較することで、前記第２画像の正常性を判定することを特徴とする付記３記載の画像判定装置。
（付記５）
前記復元モデルは、学習前の復元モデルに正常画像の集合を学習させることで生成されることを特徴とする付記１乃至４のいずれか１項に記載の画像判定装置。
（付記６）
前記復元モデルは自己符号化器であり、前記関数は、前記自己符号化器の損失関数であることを特徴とする付記１乃至５のいずれか１項に記載の画像判定装置。
（付記７）
コンピュータによって実行される画像判定方法であって、
前記コンピュータが、
入力データから特徴を抽出し、抽出された特徴から復元された出力データを生成する、復元モデルに、判定対象画像を複数回学習させることで、前記入力データと前記出力データとの誤差を示す関数の複数の値を取得し、
前記復元モデルに正常画像を複数回学習させることで取得された前記関数の複数の値に基づく基準値と、前記復元モデルに前記判定対象画像を複数回学習させることで取得された前記関数の複数の値とを用いて、前記判定対象画像の正常性を判定し、
前記判定対象画像の正常性を示す判定結果を出力する、
ことを特徴とする画像判定方法。
（付記８）
前記基準値は、前記復元モデルに前記正常画像を複数回学習させることで取得された前記関数の複数の値から計算され、
前記コンピュータは、前記復元モデルに前記判定対象画像を複数回学習させることで取得された前記関数の複数の値と、前記基準値とを用いて、前記判定対象画像の正常性を示す指標を計算し、前記指標と閾値とを比較することで、前記判定対象画像の正常性を判定することを特徴とする付記７記載の画像判定方法。
（付記９）
前記正常画像は、第１画像内の複数の領域それぞれの正常画像のうち、いずれかの正常画像であり、
前記判定対象画像は、第２画像内の複数の領域それぞれの判定対象画像のうち、いずれかの判定対象画像であり、
前記コンピュータは、領域毎の復元モデルを記憶するとともに、前記領域毎の復元モデルに領域毎の正常画像を複数回学習させることで取得された、領域毎の関数の複数の値に基づく、領域毎の基準値を記憶し、
前記領域毎の基準値は、前記領域毎の関数の複数の値から計算され、
前記コンピュータは、前記領域毎の復元モデルに領域毎の判定対象画像を複数回学習させることで、領域毎の関数の複数の値を取得し、領域毎の判定対象画像を用いて取得された前記領域毎の関数の複数の値と、前記領域毎の基準値とを用いて、前記領域毎の判定対象画像の正常性を示す指標を計算し、前記指標と第１閾値とを比較することで、前記第２画像の正常性を判定し、前記第２画像の正常性を示す判定結果を出力することを特徴とする付記７記載の画像判定方法。
（付記１０）
前記コンピュータは、前記領域毎の判定対象画像の正常性を示す指標の総和を求め、前記指標の総和と第２閾値とを比較することで、前記第２画像の正常性を判定することを特徴とする付記９記載の画像判定方法。
（付記１１）
前記復元モデルは、学習前の復元モデルに正常画像の集合を学習させることで生成されることを特徴とする付記７乃至１０のいずれか１項に記載の画像判定方法。
（付記１２）
前記復元モデルは自己符号化器であり、前記関数は、前記自己符号化器の損失関数であることを特徴とする付記７乃至１１のいずれか１項に記載の画像判定方法。
【符号の説明】
【００９８】
１０１  画像処理装置
１１１、９２１、９２４  ＣＡＥ
１１２  損失関数
１２１  符号化部
１２２  復号部
３０１、３０２  正常画像
４０１  画像差分抽出部
４０２  異常判定部
５０１、６０１  判定対象画像
５０２、６０２  復元画像
７０１、９０１  画像判定装置
７１１、９１１  記憶部
７１２、９１４  学習処理部
７１３、９１６  判定部
７１４、９１７  出力部
７２１  復元モデル
７２２  基準値
９０２  撮像装置
９０３  製品
９０４  生産ライン
９１２  画像取得部
９１３  画像加工部
９１５  計算部
９２２  損失関数
９２３−１、９２３−２  画像集合
９２５  基準値
９２６、１００１  判定対象画像
９２７  判定結果
１００２  ブロック
１６０１  ＣＰＵ
１６０２  メモリ
１６０３  入力装置
１６０４  出力装置
１６０５  補助記憶装置
１６０６  媒体駆動装置
１６０７  ネットワーク接続装置
１６０８  バス
１６０９  可搬型記録媒体
【図１】
2020181532.tif 000003
【図２】
2020181532.tif 000004
【図３】
2020181532.tif 000005
【図４】
2020181532.tif 000006
【図５】
2020181532.tif 000007
【図６】
2020181532.tif 000008
【図７】
2020181532.tif 000009
【図８】
2020181532.tif 000010
【図９】
2020181532.tif 000011
【図１０】
2020181532.tif 000012
【図１１】
2020181532.tif 000013
【図１２】
2020181532.tif 000014
【図１３】
2020181532.tif 000015
【図１４】
2020181532.tif 000016
【図１５】
2020181532.tif 000017
【図１６】
2020181532.tif 000018