JP2023067732A - 機械学習モデル、コンピュータプログラム、および、方法 - Google Patents

機械学習モデル、コンピュータプログラム、および、方法 Download PDF

Info

Publication number
JP2023067732A
JP2023067732A JP2022107396A JP2022107396A JP2023067732A JP 2023067732 A JP2023067732 A JP 2023067732A JP 2022107396 A JP2022107396 A JP 2022107396A JP 2022107396 A JP2022107396 A JP 2022107396A JP 2023067732 A JP2023067732 A JP 2023067732A
Authority
JP
Japan
Prior art keywords
image data
machine learning
learning model
encoder
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022107396A
Other languages
English (en)
Inventor
真樹 近藤
Maki Kondo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to PCT/JP2022/039283 priority Critical patent/WO2023074565A1/ja
Publication of JP2023067732A publication Critical patent/JP2023067732A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】機械学習モデルを用いた異常検出のために必要な撮像画像データの数を低減する。【解決手段】対象物の異常を検出するための機械学習モデルは、検査対象の対象物を撮像して得られる撮像画像データが入力される場合に検査対象の対象物の特徴データを生成するエンコーダを含む。エンコーダをトレーニングするための学習用画像データと、トレーニング済みのエンコーダに入力することによって正常な対象物の特徴データを生成するための抽出用画像データとのうちの少なくとも一方は、対象物の画像を示す元画像データであって対象物の作成に用いられる元画像データ、もしくは、対象物を撮像して得られる元画像データに対して、所定の処理を実行して得られる画像データである。【選択図】 図5

Description

本明細書は、対象物の異常検出に用いられる機械学習モデル、該異常を検出するためのコンピュータプログラム、および、方法に関する。
画像データを生成する機械学習モデルである画像生成モデルを用いた異常検出が知られている。非特許文献1に開示された技術では、正常な製品を撮像して得られる複数個の撮像画像データが予めトレーニングされたCNN(Convolutional Neural Network)に入力されて、複数個の撮像画像データのそれぞれの特徴マップが生成される。これらの特徴マップに基づいて正常な製品の特徴を示すガウシアンパラメータのマトリクスが生成される。検査時には、検査対象の製品を撮像して得られる撮像画像がCNNに入力されて、特徴マップが生成され、該特徴マップに基づいて検査品の特徴を示す特徴ベクトルが生成される。正常な製品のマトリクスと、検査対象の製品の特徴ベクトルと、を用いて、検査品の異常検出が行われる。
T. Defard, A. Setkov, A. Loesch, and R. Audigier, "Padim: a patch distribution modeling framework for anomaly detection and localization",arXiv:2011.08785(2020),https://arxiv.org/abs/2011.08785,投稿日17 Nov 2020
しかしながら、上記技術では、多数の撮像画像データが必要となる場合があった。例えば、正常な製品の特徴を示すマトリクスの生成のために、正常な製品の多数の撮像画像データが必要になる場合があった。また、CNNを製品の撮像画像を用いてトレーニングする場合には、トレーニングのために製品の多数の撮像画像データが必要になる場合があった。
本明細書は、機械学習モデルを用いた異常検出のために必要な撮像画像データの数を低減できる技術を開示する。
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
[適用例1]対象物の異常検出に用いられる機械学習モデルであって、検査対象の対象物を撮像して得られる撮像画像データが入力される場合に検査対象の前記対象物の特徴データを生成するエンコーダであってCNN(Convolutional Neural Network)を含む前記エンコーダを含み、前記エンコーダは、学習用画像データを用いてトレーニングされ、前記学習用画像データは、前記対象物の画像を示す元画像データであって前記対象物の作成に用いられる前記元画像データに対して特定の画像処理を実行して得られる画像データである、機械学習モデル。
上記構成によれば、学習用画像データとして、対象物の作成に用いられる元画像データに対して特定の画像処理を実行して得られる画像データが用いられる。この結果、トレーニングにおいて機械学習モデルに入力するための十分な撮像画像データが得られない場合であっても作成できる機械学習モデルが提供される。したがって、機械学習モデルを用いた異常検出のために必要な撮像画像データの数を低減できる。
[適用例2]機械学習モデルを用いて対象物の異常を検出するためのコンピュータプログラムであって、前記機械学習モデルは、検査対象の前記対象物を撮像して得られる撮像画像データが入力される場合に検査対象の前記対象物の特徴データを生成するエンコーダであってCNN(Convolutional Neural Network)を含む前記エンコーダを含み、前記コンピュータプログラムは、正常な前記対象物を示す特徴抽出用画像データであって、前記対象物の画像を示す元画像データであって前記対象物の作成に用いられる前記元画像データに対して第1調整処理を実行して得られる前記特徴抽出用画像データを生成する機能と、前記特徴抽出用画像データを、トレーニング済みの前記エンコーダに入力することによって、正常な前記対象物の特徴データを生成する機能と、をコンピュータに実現させ、前記対象物の異常検出は、正常な前記対象物の特徴データと、検査対象の前記対象物の特徴データと、を用いて、実行される、コンピュータプログラム。
上記構成によれば、特徴抽出用画像データとして、対象物の作成に用いられる元画像データに対して第1調整処理を実行して得られる画像データが用いられる。この結果、十分な撮像画像データが得られなくても、正常な対象物の特徴データを生成することができる。したがって、機械学習モデルを用いた異常検出のために必要な撮像画像データの数を低減できる。
[適用例3]対象物の異常検出に用いられる機械学習モデルであって、検査対象の前記対象物を撮像して得られる撮像画像データが入力される場合に検査対象の前記対象物の特徴データを生成するエンコーダであってCNN(Convolutional Neural Network)を含む前記エンコーダを含み、前記エンコーダは、学習用画像データを用いてトレーニングされ、前記学習用画像データは、前記対象物を撮像して得られる元画像データに対して特定の画像処理を実行して得られる画像データであり、前記対象物の異常検出は、正常な前記対象物を示す特徴抽出用画像データであって、前記元画像データに対して第1調整処理を実行して得られる前記特徴抽出用画像データを生成し、前記特徴抽出用画像データを、トレーニング済みの前記機械学習モデルに入力することによって、正常な前記対象物の特徴データを生成し、正常な前記対象物の特徴データと、検査対象の前記対象物の特徴データと、を用いて、実行される、機械学習モデル。
上記構成によれば、学習用画像データとして、対象物を撮像して得られる元画像データに対して特定の画像処理を実行して得られる画像データが用いられる。この結果、トレーニングにおいて機械学習モデルに入力するための十分な撮像画像データが得られない場合であっても作成できる機械学習モデルが提供される。また、特徴抽出用画像データとして、対象物を撮像して得られる元画像データに対して第1調整処理を実行して得られる画像データが用いられる。この結果、十分な撮像画像データが得られなくても、正常な対象物の特徴データを生成することができる。したがって、機械学習モデルを用いた異常検出のために必要な撮像画像データの数を低減できる。
[適用例4]機械学習モデルを用いて対象物の異常を検出するためのコンピュータプログラムであって、前記機械学習モデルは、検査対象の前記対象物を撮像して得られる撮像画像データが入力される場合に検査対象の前記対象物の特徴データを生成するエンコーダであってCNN(Convolutional Neural Network)を含む前記エンコーダを含み、前記コンピュータプログラムは、正常な前記対象物を示す特徴抽出用画像データであって、前記対象物を撮像して得られる元画像データに対して第1調整処理を実行して得られる前記特徴抽出用画像データを生成する機能と、前記特徴抽出用画像データを、トレーニング済みの前記エンコーダに入力することによって、正常な前記対象物の特徴データを生成する機能と、をコンピュータに実現させ、前記対象物の異常検出は、正常な前記対象物の特徴データと、検査対象の前記対象物の特徴データと、を用いて、実行される、コンピュータプログラム。
上記構成によれば、特徴抽出用画像データとして、対象物を撮像して得られる元画像データに対して第1調整処理を実行して得られる画像データが用いられる。この結果、十分な撮像画像データが得られなくても、正常な対象物の特徴データを生成することができる。したがって、機械学習モデルを用いた異常検出のために必要な撮像画像データの数を低減できる。
なお、本明細書に開示される技術は、他の種々の形態で実現することが可能であり、例えば、機械学習モデルのトレーニング方法、検査装置、検査方法、これらの装置および方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
本実施例の検査システム1000の構成を示すブロック図。 製品300の説明図。 第1実施例の機械学習モデルDNの構成を示すブロック図。 本実施例にて用いられる画像の一例を示す図。 第1実施例の検査準備処理のフローチャート。 正常画像データ生成処理のフローチャート。 異常画像データ生成処理のフローチャート。 トレーニング処理のフローチャート。 マトリクスおよびマップの説明図。 検査処理のフローチャート 第2実施例の機械学習モデルGNの構成を示すブロック図。 第2実施例の検査準備処理のフローチャート。
A.第1実施例
A-1.検査装置の構成
次に、実施の形態を実施例に基づき説明する。図1は、本実施例の検査システム1000の構成を示すブロック図である。検査システム1000は、検査装置100と、撮像装置400と、を含んでいる。検査装置100と撮像装置400とは、通信可能に接続されている。
検査装置100は、例えば、パーソナルコンピュータなどの計算機である。検査装置100は、検査装置100のコントローラとしてのCPU110と、GPU115と、RAMなどの揮発性記憶装置120と、ハードディスクドライブなどの不揮発性記憶装置130と、マウスやキーボードなどの操作部150と、液晶ディスプレイなどの表示部140と、通信部170と、を備えている。通信部170は、外部機器、例えば、撮像装置400と通信可能に接続するための有線または無線のインタフェースを含む。
GPU(Graphics Processing Unit)115は、CPU110の制御に従って、3次元グラフィックスなどの画像処理のための計算処理を行うプロセッサである。本実施例では、後述する機械学習モデルDNの演算処理を実行するために利用される。
揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、検査装置用のコンピュータプログラムPGと版下画像データRDとが格納されている。版下画像データRDについては後述する。
コンピュータプログラムPGは、後述する機械学習モデルDNの機能をCPU110とGPU115とが協働して実現させるコンピュータプログラムをモジュールとして含んでいる。コンピュータプログラムPGは、例えば、検査装置100の製造者によって提供される。コンピュータプログラムPGは、例えば、サーバからダウンロードされる形態で提供されても良く、DVD-ROMなどに格納される形態で提供されてもよい。CPU110は、コンピュータプログラムPGを実行することにより、後述する検査処理やトレーニング処理を実行する。
撮像装置400は、光学的に被写体を撮像することによって被写体を表す画像データ(撮像画像データとも呼ぶ)を生成するデジタルカメラである。撮像画像データは、複数個の画素を含む画像を示すビットマップデータであり、具体的には、RGB値によって画素ごとの色を表すRGB画像データである。RGB値は、3個の色成分の階調値(以下、成分値とも呼ぶ)、すなわち、R値、G値、B値を含むRGB表色系の色値である。R値、G値、B値は、例えば、所定の階調数(例えば、256)の階調値である。撮像画像データは、画素ごとの輝度を表す輝度画像データであっても良い。
撮像装置400は、検査装置100の制御に従って、撮像画像データを生成し、検査装置100に送信する。本実施例では、撮像装置400は、検査処理の検査対象であるラベルLが貼付された製品300を撮像して、撮像画像を示す撮像画像データを生成するために用いられる。
図2は、製品300の説明図である。図2(A)には、製品300の斜視図が示されている。製品300は、本実施例では、略直方体の筐体30を有するプリンタである。製造工程において、筐体30の前面31(+Y側の面)には、矩形のラベルLが所定の貼付位置に貼付される。
図2(B)には、ラベルLが示されている。ラベルLは、例えば、背景Bと、製造者や製品のブランドロゴ、型番、ロット番号等の各種の情報を示す文字TやマークMと、を含んでいる。
A-2.機械学習モデルDNの構成
機械学習モデルDNの構成について説明する。図3は、第1実施例の機械学習モデルDNの構成を示すブロック図である。機械学習モデルDNは、入力画像データIDに対して、複数個の演算パラメータを用いて、演算処理を実行して、入力画像データIDに対応する出力データODを生成する。
機械学習モデルDNは、画像の識別結果を示す出力データを生成する画像識別モデルであり、エンコーダECと分類部fcとを含んでいる。エンコーダECは、入力画像データIDに対して次元削減処理を実行して、入力された画像の特徴を抽出する。エンコーダECは、N個(Nは2以上の整数)の畳込層conv1~convNを含むCNN(Convolutional Neural Network)である。各畳込層は、所定サイズのフィルタを用いて畳込処理(convolution)を実行して特徴マップを生成する。各畳込処理の算出値は、バイアスが加算されたうえで、所定の活性化関数に入力されて変換される。各畳込層から出力される特徴マップは次の層(畳込層または分類部fcの全結合層)に入力される。活性化関数には、いわゆるReLU(Rectified Linear Unit)等の公知の関数が用いられる。
分類部fcは、1以上の全結合層を含む。分類部fcは、エンコーダECから出力される特徴マップの次元数を削減して、出力データODを生成する。
以上説明した畳込処理に用いられるフィルタの重みおよびバイアスと、分類部fcの全結合層の演算に用いられる重みおよびバイアスは、後述するトレーニング処理によって調整される演算パラメータである。
なお、本実施例の機械学習モデルDNには、ResNetと呼ばれる公知のモデルが用いられている。このモデルは、例えば、論文「K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” in ICML, 2016.」に開示されている。
本実施例では、入力画像データIDは、所定のサイズ、例えば、数百画素×数百画素の矩形の画像データである。入力画像データIDは、複数個の画素を含む画像を示すビットマップデータであり、具体的には、RGB画像データである。後述するように、本実施例では、上述したラベルLを含む撮像画像を示す撮像画像データが入力画像データIDとして想定されている。
図4は、本実施例にて用いられる画像の一例を示す図である。図4(A)には、撮像画像データによって示される撮像画像DI1の一例が示されている。撮像画像DI1は、背景BB1と、ラベルBL1と、を含む。このように、撮像画像DI1に示されるラベルには、実物のラベルL1と区別するために符号「BL1」を付す。ラベルBL1の背景BB1は、製品300の筐体30の前面31を示している。
撮像画像DI1内のラベルBL1は、文字BX1とマークBM1とを含む。撮像画像DI1におけるラベルBL1の位置、角度には、バラツキが生じる。撮像画像DI1の左上の頂点P1に対するラベルBL1の左上の頂点PL1の位置には、例えば、撮像対象の製品300に対するラベルLの貼付位置のバラツキや撮像装置400に対する製品300の設置位置のバラツキに起因して、バラツキが生じる。同様に、撮像画像DI1の下辺と、ラベルBL1の下辺と、の間の角度θ1にもバラツキが生じる。
また、撮像画像DI1内のラベルBL1の色は、照明の明るさなどの撮像条件によって、実物のラベルLや後述する版下画像内のラベルBL3の色とは、差異がある。また、ラベルBL1の色は、撮像画像ごとにバラツキが生じる。同様に、撮像画像DI1内の背景BB1にも、撮像画像ごとに色のバラツキが生じる。また、撮像画像DI1は、イメージセンサを用いて生成されるために、実物のラベルや後述する版下画像には含まれないボケやノイズが含まれる。これらのボケやノイズには、撮像画像ごとにバラツキが生じる。
また、撮像対象の実物のラベルLは、キズ、汚れ、欠けなどの様々な欠陥を含み得るので、撮像画像DI1のラベルBL1も、これらの欠陥を含み得る。図4(A)の例では、ラベルBL1は、キズdf1を含んでいる。
出力データODは、入力画像データIDによって示される画像(本実施例では撮像画像)の被写体の種類を識別した識別結果を示すデータである。例えば、本実施例では、後述するように、機械学習モデルDNは、撮像画像内のラベルが欠陥を含む異常品であるか、欠陥を含まない正常品であるかを識別するようにトレーニングされる。このために、出力データODは、その識別結果、すなわち、撮像画像内のラベルが異常品であるか正常品であるかを示すデータである。
A-3.検査準備処理
検査準備処理は、機械学習モデルDNをトレーニングするとともに、トレーニング済みの機械学習モデルDNを用いて、正常品の特徴マトリクス(後述)を生成する処理である。検査準備処理は、後述する検査処理に先立って実行される。図5は、第1実施例の検査準備処理のフローチャートである。
S100では、CPU110は、不揮発性記憶装置130から版下画像DI2を示す版下画像データRDを取得する。図4(B)には、版下画像DI2の一例が示されている。版下画像データRDは、ラベルLの作成に用いられるデータである。例えば、ラベルLは、版下画像データRDを用いて、ラベル用のシートに版下画像DI2を印刷することによって作成される。ただし、版下画像DI2のサイズ(縦横の画素数)は、検査処理のために、機械学習モデルDNの入力画像データIDと同一のサイズに調整(拡大または縮小)されており、実際にラベルの印刷に用いられるサイズとは異なっていても良い。版下画像データRDは、撮像画像データと同様のビットマップデータ、本実施例では、RGB画像データである。版下画像DI2は、ラベルBL2を示す画像である。このように版下画像DI2に示されるラベルを、実物のラベルL1と区別するために符号「BL2」を付す。ラベルBL2は、実物のラベルLを表現したCG画像であり、文字BX2とマークBM2と、を含む。
CG画像は、コンピュータによって生成される画像であり、例えば、オブジェクトを描画するための描画コマンドを含むベクタデータのレンダリング(ラスタライズとも呼ばれる)によって、生成される。
本実施例では、版下画像DI2は、ラベルBL2のみを含み、背景を含んでいない。また、版下画像DI2においてラベルBL2は傾いていない。すなわち、版下画像DI2の矩形の四辺と、矩形のラベルBL2の四辺とは一致している。
S110では、CPU110は、版下画像データRDを用いて、正常画像データ生成処理を実行する。正常画像データ生成処理は、欠陥を含まない正常品の画像(以下、正常画像とも呼ぶ)を示す正常画像データを生成する処理である。図6は、正常画像データ生成処理のフローチャートである。
S210では、CPU110は、版下画像データRDに対して明度補正処理を実行する。明度補正処理は、画像の明度を変更する処理である。例えば、明度補正処理は、各画素のRGB値の3個の成分値(R値、G値、B値)のそれぞれを、ガンマカーブを用いて変換することによって、行われる。ガンマカーブのγ値は、例えば、0.7~1.3の範囲内でランダムに決定される。γ値は、明度補正の程度を決定付けるパラメータである。γ値が1未満である場合には、補正によって(R値、G値、B値)が大きくなるので明度は高くなる。γ値が1より大きい場合には、補正によって(R値、G値、B値)が小さくなるので明度は低くなる。
S220では、CPU110は、明度補正処理済みの版下画像データRDに対して、平滑化処理を実行する。平滑化処理は、画像を平滑化する処理である。平滑化処理によって、画像内のエッジがぼける。平滑化処理には、例えば、ガウシアンフィルタを用いる平滑化処理が用いられる。例えば、ガウシアンフィルタのパラメータである標準偏差σは、0~3の範囲内でランダムに決定される。これによって、エッジのぼけ方にバラツキを持たせることができる。なお、変形例では、ラプラシアンフィルタやメディアンフィルタを用いる平滑化処理が用いられても良い。
S230では、CPU110は、平滑化処理済みの版下画像データRDに対して、ノイズ付加処理を実行する。ノイズ付加処理は、画像に対して、例えば、正規分布に従うノイズであり、例えば全ての画素に対して平均0、分散10のパラメータによって生成される正規分布乱数によるノイズを付加する処理である。
S240では、CPU110は、ノイズ付加処理済みの版下画像データRDに対して回転処理を実行する。回転処理は、特定の回転角度で画像を回転させる処理である。特定の回転角度は、例えば、-3度~+3度の範囲内でランダムに決定される。例えば、正の回転角度は時計回りの回転を示し、負の回転角度は反時計回りの回転を示す。回転は、例えば、版下画像DI2の重心を中心として実行される。
S250では、CPU110は、回転処理後の版下画像データRDに対して、シフト処理を実行する。シフト処理は、画像内のラベルの部分をシフト量分だけずらす処理である。縦方向のシフト量は、例えば、版下画像DI2の縦方向の画素数の数%の範囲、本実施例では、-20~+20画素の範囲内でランダムに決定される。同様に、横方向のシフト量は、例えば、横方向の画素数の数%の範囲でランダムに決定される。
S260では、CPU110は、S210~S250の処理が実行された後の処理済みの版下画像データRDを正常画像データとして、不揮発性記憶装置130に保存する。図4(C)には、正常画像データによって示される正常画像DI3が示されている。正常画像DI3のラベルBL3では、版下画像DI2のラベルBL2と比較して、例えば、全体の明るさ、方向き、重心の位置、マークBM3や文字BX3のぼけの程度が異なっている。また、正常画像DI3のサイズ(横方向および縦方向の画素数)は、版下画像DI2のサイズと同一である。このために、上述した回転処理およびシフト処理によって、正常画像DI3のラベルBL3には、欠けlkが生じている。また、上述した回転処理およびシフト処理によって、正常画像DI3の4辺と、ラベルBL3の4辺と、の間には、隙間ntが生じている。隙間ntの領域は、所定の色、例えば、白色の画素によって埋められている。
S270では、CPU110は、所定数(例えば、数百~数千)の正常画像データを生成したか否かを判断する。所定数の正常画像データが生成されていない場合には(S270:NO)、CPU110は、S210に戻る。所定数の正常画像データが生成された場合には(S270:YES)、CPU110は、正常画像データ生成処理を終了する。
正常画像データ生成処理後の図5のS120では、CPU110は、生成された正常画像データを用いて異常画像データ生成処理を実行する。異常画像データ生成処理は、欠陥を含む異常品の画像(以下、異常画像とも呼ぶ)を示す異常画像データを生成する処理である。図7は、異常画像データ生成処理のフローチャートである。
S300では、CPU110は、S110の正常画像データ生成処理にて生成済みの複数個の正常画像データの中から、1個の処理対象の正常画像データを選択する。この選択は、例えば、ランダムに行われる。
S310では、CPU110は、処理対象の正常画像データに対して、欠陥付加処理を実行する。欠陥付加処理は、キズ、汚れ、欠けなどの疑似的な欠陥を、正常画像DI3に対して付加する処理である。S330では、CPU110は、欠陥付加処理済みの正常画像データを、異常画像データとして不揮発性記憶装置130に保存する。
異常画像データによって示される異常画像DI4は、疑似的な欠陥を含むラベルBL4を示す画像である。例えば、図4(D)の異常画像DI4は、疑似的な欠陥として、線状のキズを疑似的に示す画像(以下、疑似キズdf4とも呼ぶ)と、を含んでいる。疑似キズdf4は、例えば、ベジエ曲線やスプライン曲線などの曲線である。例えば、CPU110は、ベジエ曲線の制御点の位置や個数、線の太さ、線の色を、所定の範囲内でランダムに決定することによって、疑似キズdf5を生成する。CPU110は、生成された疑似キズdf5を正常画像DI3に合成する。これによって、異常画像DI4を示す異常画像データが生成される。なお、キズに代えて、他の欠陥、例えば、疑似的な汚れが合成された異常画像データも生成される。疑似的な汚れは、例えば、微小な多数の点を所定の領域に配置することによって生成される。なお、疑似的な欠陥は、該欠陥を撮像して得られる画像から該欠陥部分を抜き出すことによって生成されても良い。
S330では、CPU110は、S310、S320の処理がM回(Mは2以上の整数)繰り返されたか否かを判断する。換言すれば、1個の正常画像データに基づいてM個の互いに異なる異常画像データが生成されたか否かが判断される。S310~S320の処理がM回繰り返されていない場合には(S330:NO)、CPU110は、S310に戻る。S310、S320の処理がM回繰り返された場合には(S330:YES)、CPU110は、S340に処理を進める。Mは、例えば、1~5の範囲の値である。
S340では、CPU110は、所定数(例えば、数百~数千)の異常画像データを生成したか否かを判断する。所定数の異常画像データが生成されていない場合には(S340:NO)、CPU110は、S300に戻る。所定数の異常画像データが生成された場合には(S340:YES)、CPU110は、異常画像データ生成処理を終了する。
異常画像データ生成処理後のS130では、CPU110は、トレーニング処理を実行する。トレーニング処理は、正常画像データと異常画像データとを入力画像データIDとして用いて、機械学習モデルDNの演算パラメータを調整する処理である。
図8は、トレーニング処理のフローチャートである。S400では、CPU110は、機械学習モデルDNの複数個の演算パラメータを初期化する。例えば、これらの演算パラメータの初期値は、同一の分布(例えば、正規分布)から独立に取得された乱数に設定される。
S410では、CPU110は、複数個の入力画像データ(本実施例では、正常画像データと異常画像データ)の中から、バッチサイズ分の入力画像データIDを選択する。例えば、複数個の入力画像データIDは、V個(Vは2以上の整数、例えば、V=100)ずつの入力画像データIDをそれぞれ含む複数個のグループ(バッチ)に分割される。CPU110は、これらの複数個のグループから1個のグループを順次に選択することによって、V個の使用すべき入力画像データIDを選択する。これに代えて、V個ずつの入力画像データは、複数個の入力画像データIDから、毎回、ランダムに選択されても良い。
S420では、CPU110は、選択されたV個の入力画像データを機械学習モデルDNに入力して、V個の入力画像データIDと一対一で対応するV個の出力データODを生成する。入力画像データIDに対応する出力データODは、該入力画像データIDを機械学習モデルDNに入力した場合に、機械学習モデルDNによって生成される出力データODを意味する。
S430では、CPU110は、V個の出力データODのそれぞれについて、出力データODと、該出力データODに対応する教師データと、の間の誤差値EVを算出する。出力データODに対応する教師データは、出力されるべき出力データODの目標値を示すデータである。例えば、出力データODに対応する教師データは、出力データODに対応する入力画像データIDが正常画像データである場合には、正常画像であること(換言すれば画像内のラベルが正常品であること)を示すデータである。出力データODに対応する教師データは、出力データODに対応する入力画像データIDが異常画像データである場合には、異常画像であること(換言すれば画像内のラベルが異常品であること)を示すデータである。
誤差値EVは、所定の損失関数に基づいて算出される。例えば、誤差値EVの算出には、平均二乗誤差(MSE(Mean Squared Error))が用いられる。
S440では、CPU110は、V個の誤差値EVを用いて、機械学習モデルDNの複数個の演算パラメータを調整する。具体的には、CPU110は、誤差値EVが小さくなるように、すなわち、出力データODと教師データとの差分が小さくなるように、所定のアルゴリズムに従って演算パラメータを調整する。所定のアルゴリズムには、例えば、誤差逆伝播法と勾配降下法とを用いたアルゴリズム(例えば、adam)が用いられる。
S450では、CPU110は、トレーニングが完了したか否かを判断する。本実施例では、作業者からの完了指示が入力された場合にはトレーニングが完了したと判断し、トレーニングの継続指示が入力された場合にはトレーニングが完了していないと判断する。本実施例では、機械学習モデルDNが異常画像と正常画像とを完全に識別できるまでトレーニングを行うことは不可能であり、その必要もない。機械学習モデルDNによってラベルLの特徴が十分に学習された時点でトレーニングは終了される。例えば、作業者は、トレーニングの過程における誤差値EVの変化を監視し、誤差値EVが下降傾向である場合には、継続指示を入力し、誤差値EVが下降傾向から横ばい傾向または上昇傾向に転じたと判断する場合に、完了指示を入力する。変形例では、例えば、S410~S440の処理が所定回数だけ繰り返された場合に、トレーニングが完了されたと判断されても良い。
トレーニングが完了していないと判断される場合には(S450:NO)、CPU110は、S410に処理を戻す。トレーニングが完了したと判断される場合には(S450:YES)、CPU110は、パラメータ調整処理を終了する。パラメータ調整処理が終了すると機械学習モデルDNのトレーニングは終了である。トレーニングが終了した時点で、機械学習モデルDNは、演算パラメータが調整されたトレーニング済みモデルになっている。
トレーニング処理の後の図5のS140、S150では、K個の正常画像データIDnを用いて、正常品の特徴の抽出が行われる。Kは、1以上の整数であり、例えば、10~100の範囲の値である。図3(B)には、正常品の特徴抽出が概念的に図示されている。特徴抽出のための複数個の正常画像データIDnは、トレーニング処理にて用いられた正常画像データの中からランダムに選択される。
S140では、CPU110は、K個の正常画像データIDnのそれぞれを、入力画像データIDとしてトレーニング済みの機械学習モデルDN(エンコーダEC)に入力して、複数個の特徴マップfmを生成する(図3(B))。本実施例では、1個の正常画像データIDnを機械学習モデルDNに入力することによって、3種の特徴マップfm1、fm2、fm3が生成される。図3(A)に示すように、特徴マップfm1は、1層目の畳込層conv1によって生成される特徴マップである。特徴マップfm2は、2層目の畳込層conv2によって生成される特徴マップである。特徴マップfm3は、3層目の畳込層conv3によって生成される特徴マップである。各特徴マップfmは、所定のサイズの画像データである。1つの正常画像データIDについて生成される特徴マップfm1の個数と特徴マップfm2の個数と特徴マップfm3の個数との合計をPとすると、本実施例では、K個の正常画像データIDnを用いて(P×K)個の特徴マップfmが生成される。Pは、例えば、数百~数千である。
S150では、CPU110は、(P×K)個の特徴マップfmを用いて、正常品のガウシアンマトリクスGMを生成する。図3および図9を参照して特徴マトリクスGMの生成について説明する。例えば、CPU110は、1つの正常画像データIDについて生成されるP個の特徴マップfm(図3(B))からランダムにL個(例えば、数十~数百個)の使用マップUm(図3(C))を選択する。L個の使用マップUmのサイズ(画素数)が異なる場合には、L個の使用マップUmのサイズは、拡大または縮小処理によって1つのサイズに調整される。CPU110は、L個の使用マップUmを用いて、正常画像の特徴マトリクスFM(図3(D))を生成する。具体的には、1つの正常画像データを用いて生成されたP個の特徴マップfm(図3(B))から選択された使用マップUm(図3(C))を用いて、該正常画像データによって示される正常画像の特徴マトリクスFMが生成される。特徴マトリクスFMは、使用マップUmの各画素と一対一で対応する特徴ベクトルV(i、j)を要素とするマトリクスである。(i、j)は、使用マップUmの対応する画素の座標を示す。特徴ベクトルは、L個の使用マップUmにおける座標(i、j)の画素の値を要素とするベクトルである。このために1つの特徴ベクトルは、L次元のベクトル(要素数がLのベクトル)である(図3(D))。
正常画像の特徴マトリクスFMは、正常画像ごと(正常画像データごと)に生成される。本実施例では、正常画像データの個数はK個であるから、K個の特徴マトリクスFM1~FMKが生成される。図9は、本実施例で用いられるマトリクスおよびマップの説明図である。図9(A)には、正常画像のK個の特徴マトリクスFM1~FMKの一例が図示されている。CPU110は、正常画像のK個の特徴マトリクスFM1~FMKを用いて、正常品の特徴を示すガウシアンマトリクスGMを生成する。ガウシアンマトリクスGMは、使用マップUmの各画素と一対一で対応するガウシアンパラメータを要素とするマトリクスである。座標(i、j)の画素に対応するガウシアンパラメータは、平均ベクトルμ(i、j)と、共分散行列Σ(i、j)と、を含む。平均ベクトルμ(i、j)は、正常画像のK個の特徴マトリクスFM1~FMKの特徴ベクトルV(i、j)の平均である。共分散行列Σ(i、j)は、正常画像のK個の特徴マトリクスFM1~FMKの特徴ベクトルV(i、j)の共分散行列である。このように、K個の正常画像データに対して、1つのガウシアンマトリクスGMが生成される。
正常品の特徴を示すガウシアンマトリクスGMが算出されると、検査準備処理は終了される。なお、本準備処理にて生成されたトレーニング済みの機械学習モデルDN、および、正常品の特徴を示すガウシアンマトリクスGMは、検査処理にて用いられる。このために、これらの機械学習モデルDN、および、正常品の特徴を示すガウシアンマトリクスGMは、不揮発性記憶装置130に保存される。
A-3.検査処理
図10は、検査処理のフローチャートである。検査処理は、検査すべきラベルLが欠陥を含む異常品であるか、欠陥を含まない正常品であるかを検査する処理である。検査処理は、ラベルLごとに実行される。検査処理は、ユーザ(例えば、検査の作業者)が処理の開始指示を、操作部150を介して検査装置100に入力した場合に、開始される。例えば、ユーザは、検査すべきラベルLが貼り付けられた製品300を、撮像装置400を用いて撮像するための所定の位置に配置した状態で、検査処理の開始指示を入力する。
S500では、CPU110は、検査すべきラベルL(以下、検査品とも呼ぶ)を含む撮像画像を示す撮像画像データIDtを取得する。例えば、CPU110は、撮像装置400に撮像指示を送信して、撮像装置400に撮像画像データを生成させ、撮像装置400から撮像画像データを取得する。この結果、例えば、上述した図4(A)の撮像画像DI1を示す撮像画像データが取得される。
S510、S520では、撮像画像データIDtを用いて、検査品の特徴の抽出が行われる。
S510では、CPU110は、取得された撮像画像データIDtを、入力画像データIDとしてトレーニング済みの機械学習モデルDNに入力することによって、撮像画像データIDtに対応するP個の特徴マップfmを生成する。本実施例では、図3(B)に示すように、P個の特徴マップfm1~fm3が生成される。
S520では、CPU110は、P個の特徴マップfm1~fm3を用いて、検査品の特徴マトリクスFMtを生成する。検査品の特徴マトリクスFMtは、上述した正常画像の特徴マトリクスFM(図3(D))と同様の処理によって生成される。すなわち、S510にて生成されるP個の特徴マップfm1~fm3のうちのL個の使用マップUmを用いて、検査品の特徴マトリクスFMtが生成される。特徴マトリクスFMtは、使用マップUmの各画素と一対一で対応する特徴ベクトルV(i、j)を要素とするマトリクスである。
S530では、CPU110は、正常品の特徴を示すガウシアンマトリクスGMと検査品の特徴マトリクスFMtとを用いて、異常度マップAM(図9(D))を生成する。異常度マップAMは、特徴マトリクスFMtと同じサイズ(画素数)の画像データである。異常度マップAMの各画素の値は、マハラノビス距離である。座標(i、j)におけるマハラノビス距離D(i、j)は、検査品の特徴マトリクスFMの特徴ベクトルV(i、j)と、正常品のガウシアンマトリクスGMの平均ベクトルμ(i、j)および共分散行列Σ(i、j)と、を用いて、算出される。マハラノビス距離D(i、j)は、座標(i、j)におけるK個の正常画像と検査品との間の差異の程度を示す値である。このために、マハラノビス距離D(i、j)は、座標(i、j)における検査品の異常度を示す値であると、言うことができる。
図4(E)には、異常度マップAMの一例として、異常度マップAMaが示されている。図4(E)の異常度マップAMaには、異常領域df5が示される。異常領域df5は、例えば、マハラノビス距離が閾値TH以上である画素によって構成される領域である。異常領域df5は、図5(A)の撮像画像DI1に含まれるキズdf1が位置する領域を示している。異常度マップAMaを参照することで、撮像画像DI1に含まれるキズなどの欠陥の位置、大きさ、形状を特定することができる。撮像画像DI1にキズなどの欠陥が含まれない場合には、異常度マップAMaにおいても、異常領域は特定されない。
S540では、CPU110は、異常度マップAMaにおける異常領域df5の面積が閾値THj以上であるか否かを判断する。異常領域df5の面積が閾値THj未満である場合には(S540:NO)、S560にて、CPU110は、検査すべきラベルLは正常品であると判定する。異常領域df5の面積が閾値THj以上である場合には(S540:YES)、S550にて、CPU110は、検査すべきラベルは異常品であると判定する。S570では、CPU110は、検査結果を表示部140に表示して、検査処理を終了する。このように機械学習モデルDNを用いて、検査すべきラベルLが正常品であるか異常品であるかを精度良く判定することができる。
なお、特徴マトリクスFM、FMt、ガウシアンマトリクスGM、異常度マップAMの生成の詳細については、Padimモデルの論文「T. Defard, A. Setkov, A. Loesch, and R. Audigier, “Padim: a patch distribution modeling framework for anomaly detection and localization”,arXiv:2011.08785(2020),https://arxiv.org/abs/2011.08785」に開示されている。
以上説明した本実施例によれば、上記実施例の機械学習モデルDNは、検査すべき対象物であるラベルLの撮像画像データが入力される場合にラベルLの特徴データ(本実施例では特徴マップfm1~fm3)を生成するエンコーダECを含む(図3(A))。エンコーダECは、学習用画像データ(本実施例では、正常画像データと異常画像データ)を用いてトレーニングされる(図5、図8)。学習用画像データは、ラベルL1の作成に用いられる版下画像データRDに対して特定の画像処理を実行して得られる画像データである(図6、図7)。
この結果、トレーニングにおいて機械学習モデルDNに入力するための十分な撮像画像データが得られない場合であっても作成できる機械学習モデルが提供される。したがって、機械学習モデルを用いた異常検出のために必要な撮像画像データの数を低減できる。仮に、学習用画像データとして、異常品や正常品の実物のラベルLを撮像装置400で撮像して得られる撮像画像データを用いる場合には、多量の実物のラベルLを準備する必要がある。特に、異常品については、ラベルLに多様なキズや汚れなどの欠陥を付けたうえで、撮像を行う必要がある。このために、機械学習モデルDNを作成するユーザの負担が過度に大きくなる場合がある。本実施例では、版下画像データRDを用いて学習画像データが生成されるので、機械学習モデルDNのトレーニングのためのユーザの負担を軽減して、機械学習モデルDNを容易にトレーニングできる。
なお、本実施例では、特定の画像処理として、正常画像データの生成では、明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理(図6のS210~S250)が実行され、異常画像データの生成では、これらの処理に加えて、さらに、欠陥付加処理(図7のS310)が実行される。撮像画像の属性、具体的には、明度、ぼけの程度、ノイズの程度、傾き、位置には、撮像条件等に起因してバラツキが生じ得る。本実施例によれば、このようなバラツキを含む撮像画像データが入力される場合でも、適切な特徴マップfm、ひいては、特徴マトリクスFMtが生成されるように、エンコーダECをトレーニングすることができる。
さらに、本実施例では、学習用画像データは、正常な対象物(本実施例ではラベル)を示す正常画像データと、異常を含む対象物を示す異常画像データと、を含む(図5~図7)。エンコーダECのトレーニングは、エンコーダECから出力されるデータを用いて画像の識別結果を示す出力データODを生成する画像識別モデル(図2の機械学習モデルDN)を構成して実行される。すなわち、トレーニングは、エンコーダECに学習用画像データ(正常画像データまたは異常画像データ)が入力される場合に、出力データODが、学習用画像データによって示されるラベルが正常品であるか異常品であるかを識別するように実行される。換言すれば、該トレーニングは、出力データODが、学習用画像データが正常画像データであるか異常画像データであるかを示すように、実行される。この結果、正常画像データと異常画像データとを含む学習用画像データを用いて適切にトレーニングされたエンコーダECが提供される。
さらに、本実施例によれば、版下画像データRDに対して実行される特定の画像処理は、異常と判定すべき欠陥とは異なるバラツキに起因して変動する画像の属性(例えば、明度、ぼけの程度、ノイズの程度、傾き、位置)を調整する第1画像処理(例えば、明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理(図6のS210~S250))を含む。さらに、特定の画像処理は、欠陥を画像に擬似的に付加する第2画像処理(図7のS310の欠陥付加処理像処理)を含む。そして、1回の第1画像処理によって生成される1つの正常画像データに対して、M種類(Mは2以上の整数)の第2画像処理が実行されることによって、M種類の異常画像データが生成される(図7のS300~S330)。この結果、1つの正常画像データを用いて、M個の異常画像データを生成できるので、効率的に異常画像データを生成することができる。
さらに、本実施例では、n種類(nは2以上の整数)の正常画像データのそれぞれについて、M種類の第2画像処理が実行されることによって、(n×M)個の異常画像データが生成される(図7のS330、S340)。この結果、多数(例えば、数千個)の異常画像データを効率的に生成することができる。
さらに、本実施例では、ラベルLの異常は、特徴抽出用の正常画像データをトレーニング済みの機械学習モデルDNに入力することによって、正常なラベルLの特徴マップfmを生成し(図5のS140、図3(B))、検査すべきラベルLの特徴マップfmと、正常なラベルLの特徴マップfmと、を用いて、実行される(図10のS510~S560)。特徴抽出用の正常画像データは、版下画像データRDに対して属性を調整する処理(例えば、明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理(図6のS210~S250))を実行して得られる画像データである。この構成によれば、十分な撮像画像データがなくても、正常なラベルLの特徴マップを生成することができる。したがって、機械学習モデルDNを用いた異常検出のために必要な撮像画像データの数を低減できる。仮に、特徴抽出用の正常画像データとして、正常品の実物のラベルLを撮像装置400で撮像して得られる撮像画像データを用いる場合には、多量の実物のラベルLを準備する必要がある。このために、機械学習モデルDNを用いた異常検出を実行するユーザの負担が過度に大きくなる場合がある。本実施例では、版下画像データRDを用いて特徴抽出用の正常習画像データが生成されるので、機械学習モデルDNを用いた異常検出のためのユーザの負担を軽減することができる。
以上の説明から解るように、本実施例の明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理の全体は、第1画像処理の例であり、欠陥付加処理は、第2画像処理の例である。本実施例の正常画像データは、学習用画像データ、第1種の画像データ、特徴抽出用画像データの例であり、異常画像データは、学習用画像データ、第2種の画像データの例であり、版下画像データRDは、元画像データの例である。
B.第2実施例
第1実施例では、エンコーダECは、エンコーダECを含む画像識別モデルである機械学習モデルDNを構成し、該機械学習モデルDNをトレーニングすることによって、トレーニングされている。エンコーダをトレーニングする手法は、これに限られない。
図11は、第2実施例の機械学習モデルGNの構成を示すブロック図である。第2実施例の機械学習モデルGNは、エンコーダECbを含む画像生成モデルである。具体的には、機械学習モデルGNは、オートエンコーダと呼ばれるニューラルネットワークであり、エンコーダECbとデコーダDCとを含んでいる。
例えば、エンコーダECbは、第1実施例と同様に、複数個の畳込層を含むCNN(Convolutional Neural Network)である。デコーダDCには、エンコーダECbから出力される特徴マップfm、すなわち、最後の畳込層によって生成される特徴マップfmが入力される。デコーダDCは、特徴マップfmに対して次元復元処理を実行して、出力画像データODbを生成する(図11)。デコーダDCは、図示しない複数個の転置畳込層を含んでいる。各転置畳込層は、所定サイズのフィルタを用いて転置畳込処理(up-convolution)を実行する。各転置畳込処理の算出値は、バイアスが加算されたうえで、所定の活性化関数に入力されて変換される。本実施例では、活性化関数には、上述したReLU等の公知の関数が用いられる。出力画像データODbは、例えば、入力画像データIDと同一のサイズを有するRGB画像データである。
エンコーダECbの畳込処理に用いられるフィルタの重みおよびバイアスと、デコーダDCの転置畳込処理に用いられる重みおよびバイアスは、本実施例のトレーニング処理によって調整される演算パラメータである。
図12は、第2実施例の検査準備処理のフローチャートである。図12のS100、S110は、図5のS110、S110と同一の処理である。第2実施例の検査準備処理では、図5のS120の異常画像データ生成処理は実行されず、異常画像データは生成されない。図5のS130bでは、CPU110は、第1実施例のS130とは異なり、正常画像データのみを用いて、機械学習モデルGNのトレーニングを実行する。具体的には、機械学習モデルGNは、エンコーダECbに正常画像データが入力される場合に、デコーダDCによって生成される出力画像データODbが、入力された正常画像データを再現するように、トレーニングされる。
例えば、バッチサイズ分のV個の正常画像データが機械学習モデルGNに入力され、V個の正常画像データに対応するV個の出力画像データODbが生成される。所定の損失関数を用いて、正常画像データと、対応する出力画像データODbと、の間の誤差値が、正常画像データと出力画像データODbとのペアごとに算出される。所定の損失関数には、例えば、画素ごとの平均二乗誤差が用いられる。そして、V個の誤差値が小さくなるように、正常画像データと出力画像データODbとの差分が小さくなるように、所定のアルゴリズムに従って演算パラメータが調整される。以上の処理が複数回繰り返されることによって、機械学習モデルGNがトレーニングされる。
図12のS140bでは、CPU110は、図5のS140と同様に、トレーニング処理にて用いられた正常画像データの中からランダムに選択されたK個の正常画像データのそれぞれを、入力画像データIDとしてトレーニング済みの機械学習モデルGN(エンコーダECb)に入力して、複数個の特徴マップfm1b~fm3bを生成する(図11)。特徴マップfm1b~fm3bは、エンコーダECbを構成する複数個の畳込層から選択される3つの畳込層によってそれぞれ生成される。
図5のS150bでは、CPU110は、図5のS150と同様に、S140bにて生成された複数個の特徴マップを用いて、正常品のガウシアンマトリクスを生成する。
第2実施例の検査処理は、第1実施例の検査処理(図10)と同様に実行される。
以上説明した本実施例では、上述のように、エンコーダECbのトレーニングでは、エンコーダECbと、エンコーダECbから出力されるデータを用いて出力画像データODbを生成するデコーダDCと、を含む画像生成モデルである機械学習モデルGNが構成される(図11)。そして、エンコーダECbに正常画像データが入力される場合に、デコーダDCによって生成される出力画像データODbが、正常画像データを再現するように、実行される(図12)。この構成によれば、正常画像データを用いて、異常画像データを用いることなく、エンコーダECbをトレーニングできる。この結果、第1実施例よりもさらに学習用画像データを準備する負荷を低減することができる。
B.変形例:
(1)上記第1実施例では、エンコーダECのトレーニングに用いられる正常画像データと、正常品のガウシアンマトリクスGMの生成に用いられる正常画像データとは、同じデータが用いられている。これに代えて、エンコーダECのトレーニングに用いられる正常画像データと、正常品のガウシアンマトリクスGMの生成に用いられる正常画像データとの間で、画像の属性の調整処理(具体的には、明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理)の調整幅を変えても良い。例えば、ガウシアンマトリクスGMの生成に用いられる正常画像データを生成する際におけるこれらの調整処理を第1の調整処理とし、トレーニング処理に用いられる正常画像データを生成する際におけるこれらの調整処理を第2の調整処理とする。本変形例では、第2の調整処理における属性の調整量の最大値は、第1調整処理における属性の調整量の最大値よりも大きくされる。例えば、第1の調整処理としての明度補正処理では、例えば、ガンマカーブのγ値は、例えば、0.7~1.3の範囲内でランダムに決定され、第2の調整処理としての明度補正処理では、ガンマカーブのγ値は、例えば、0.4~1.6の範囲内でランダムに決定される。第1の調整処理としての平滑化処理では、例えば、ガウシアンフィルタの標準偏差σは、0~1.5の範囲内でランダムに決定され、第2の調整処理としての平滑化処理では、例えば、ガウシアンフィルタの標準偏差σは、0~3の範囲内でランダムに決定される。第1の調整処理としてのノイズ付加処理では、例えば、ノイズの割合は、0~6%の範囲内でランダムに決定され、第2の調整処理としてのノイズ付加処理では、例えば、ノイズの割合は、0~12%の範囲内でランダムに決定される。回転処理、シフト処理についても同様である。
本変形例によれば、エンコーダECは、属性のバラツキが大きな入力画像データIDが入力される場合であっても適切に特徴マップfm、ひいては、ガウシアンマトリクスGMを生成できるように、トレーニングできる。このために、エンコーダECの汎用性が高くなる。したがって、例えば、1種類のラベルLの正常画像データを用いてエンコーダECをトレーニングした場合であっても、複数種類のラベルLの正常画像データを用いて、各ラベルの正常品のガウシアンマトリクスGMを適切に生成することができる。
例えば、下地の色や文字の色などの概略構成は同じであっても、仕向地によってラベルに記載される品番などが互いに異なる場合がある。このような場合に、1つの仕向地(例えば、日本)用の版下画像データRDを用いて生成された正常画像データを用いてエンコーダECのトレーニングが実行される。そして、そのエンコーダECに対して、他の仕向地(例えば、米国)用のラベルの版下画像データRDを用いて生成された正常画像データを用いて、正常品のガウシアンマトリクスGMを生成できる。換言すれば、1つのエンコーダECを用いて、複数の仕向地用のラベルLの検査を実行することができる。
(2)上記実施例では、撮像画像DI1においてバラツキに起因して変動する特定の属性としてラベルの明度、ぼけの程度、ノイズ量、傾き、位置が考慮されている。これに限らず、他の属性が考慮されても良い。例えば、撮像画像DI1は、撮像装置400を用いて生成されるために、実物のラベルや後述する版下画像には含まれないサイズのバラツキや歪みを含み得る。このために、検査品の撮像画像DI1においてサイズや歪みのバラツキが生じたとしても、検査品の特徴マトリクスFMtが適切に生成できるように、機械学習モデルDNがトレーニングされても良い。この場合には、例えば、正常画像データを生成する際には、明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理の少なくとも一部とともに、あるいは、明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理の少なくとも一部に代えて、画像にサイズを変更する処理や歪みを付加する処理が追加される。サイズを変更する処理は、所定の倍率で画像を縮小または拡大処理が用いられる。歪みを付加する処理は、例えば、台形歪みやレンズ歪みを疑似的に付加する処理が用いられる。
(3)上記実施例では、異常画像データは、正常画像データに対して、欠陥付加処理を実行することによって生成される(図7)。これに代えて、異常画像データは、版下画像データRDに対して、欠陥付加処理を実行した後に、明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理を実行することによって生成されても良い。この場合には、異常画像データの作成の効率は実施例より低下するものの、より自然な撮像画像風の画像を示す異常画像データを生成できる。明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理は、撮像条件に起因するバラツキの影響を画像に加味するための処理である。実際の撮像でも、欠陥に対して撮像条件に起因するバラツキの影響があるため、疑似的な欠陥の画像に対しても該影響が加味されることが好ましいと考えられる。
(4)上記実施例では、1つの正常画像データから、M個(Mは2以上の整数)の異常画像データが生成される。これに代えて、1つの正常画像データから1つの異常画像データが生成されても良い。
(5)上記実施例では、機械学習モデルDN、GNをトレーニングするための学習用画像データ(正常画像データや異常画像データ)と、正常品のガウシアンマトリクスGMを生成するための正常画像データと、の両方が、版下画像データRDを用いて生成されている。これに代えて、機械学習モデルDN、GNをトレーニングするための学習用画像データと、正常品のガウシアンマトリクスGMを生成するための正常画像データと、のうちの一方は、例えば、実物のラベルLを撮像することによって生成されても良い。
(6)上記実施例では、検査の対象物は、ラベルである。これに限らず、検査の対象物は、他の物、例えば、工業的に製造される様々な製品、例えば、最終的に市場で販売される最終製品や、最終製品の製造に用いられる部品であっても良い。この場合には、例えば、正常画像データは、版下画像データRDに代えて、製品の作成に用いられる設計図面データを用いて、図6の正常画像データ生成処理を実行することによって生成される。
(7)上記実施例の正常画像データ生成処理(図6)は、一例であり、適宜に省略や変更が行われ得る。例えば、本実施例の明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理のうち、例えば、検査処理の態様によって考慮する必要性が低い属性を調整する処理は、省略されても良い。例えば、安定して明るさで撮像されることが保証されている環境下で、ラベルの撮像が行われる場合には、明度補正処理が省略されても良い。
また、全ての学習用画像データ(正常画像データや異常画像データ)が版下画像データRDを用いて生成される必要はない。版下画像データRDを用いて生成された学習用画像データと、撮像によって生成された学習用画像データと、の両方を用いて、トレーニング処理が行われても良い。また、正常品のガウシアンマトリクスGMを生成するための全ての正常画像データが版下画像データRDを用いて生成される必要はない。版下画像データRDを用いて生成された正常画像データと、撮像によって生成された正常画像データと、の両方を用いて、正常品のガウシアンマトリクスGMが生成されても良い。
(8)上記実施例では、全ての学習用画像データ(正常画像データや異常画像データ)が版下画像データRDを用いて生成されている。これに代えて、全ての学習用画像データが、版下画像データRDなどのラベルの作成に用いられる画像データとは異なる画像データを用いて生成されても良い。例えば、全ての学習用画像データが、実物のラベルLをデジタルカメラ等によって撮像して得られる撮像画像データであって良い。例えば、光源の種類や明るさ、ラベルに対するデジタルカメラの位置などの撮像条件を、ユーザが適当と考える範囲で変更しながら撮像された複数個の撮像画像データが、複数個の学習用画像データとして用いられても良い。
あるいは、全ての学習用画像データが、実物のラベルLをデジタルカメラに等よって撮像して得られる撮像画像データを元画像データとして用いて生成されても良い。例えば、元画像データとしての1つの撮像画像データに対して、明度補正処理、平滑化処理、ノイズ付加処理、回転処理、シフト処理などを含む互いに異なる複数の画像処理を実行することで、互いに異なる複数個の学習用画像データ(正常画像データや異常画像データ)が生成されても良い。例えば、上記第1実施例の図5の検査準備処理のS100にて、CPU110は、版下画像データRDに代えて、1つの撮像画像データを取得し、該撮像画像データを用いて、S110の正常画像データ生成処理を実行して、正常画像データを生成する。CPU110は、さらに、撮像画像データを用いて生成される正常画像データを用いて、S120の異常画像データ生成処理を実行して、異常画像データを生成する。そして、CPU110は、撮像画像データを用いて生成される異常画像データや正常画像データを用いて、S130~S150の処理を実行する。この結果、例えば、1つの撮像画像データを用いて、多様な正常画像データや異常画像データが生成できるので、十分な撮像画像データが得られない場合であっても機械学習モデルのトレーニングや、正常な対象物の特徴データの生成を実現できる。したがって、機械学習モデルを用いた異常検出のために必要な撮像画像データの数を低減できる。
(9)上記実施例の機械学習モデルDN、GNは、一例であり、これに限られない。例えば、第1実施例の機械学習モデルDNとしては、CNN含むエンコーダを少なくとも含む任意の画像識別モデル、例えば、VGG16、VGG19が用いられ得る。また、第2実施例の機械学習モデルGNとしては、CNNを含むエンコーダと、デコーダと、を含む任意の画像生成モデルが用いられ得る。機械学習モデルGNとしては、例えば、通常のオートエンコーダに限らず、VQ-VAE(Vector Quantized Variational Auto Encoder)、VAE(Variational Autoencoder)が用いられても良いし、いわゆるGAN(Generative Adversarial Networks)に含まれる画像生成モデルが用いられても良い。どのような機械学習生成モデルが用いられる場合であっても、畳込層、転置畳込層などの具体的な層の構成や層数は、適宜に変更されて良い。また、機械学習モデルの各層で出力された値に対して実行される後処理も適宜に変更され得る。例えば、後処理に用いられる活性化関数は、任意の関数、例えば、ReLU、LeakyReLU、PReLU、ソフトマックス、シグモイドが用いられ得る。
(10)上記実施例では、検査準備処理と検査処理とは、図1の検査装置100によって実行されている。これに代えて、検査準備処理と検査処理とは、それぞれ、別の装置によって実行されても良い。この場合には、例えば、検査準備処理によって生成されたトレーニング済みのエンコーダEC、ECbや正常品のガウシアンマトリクスGMは、検査処理を実行する装置の記憶装置に格納される。検査準備処理と検査処理との全部または一部は、ネットワークを介して互いに通信可能な複数個の計算機(例えば、いわゆるクラウドサーバ)によって実行されても良い。また、検査処理を行うコンピュータプログラムと、検査準備処理を行うコンピュータプログラムとは、異なるコンピュータプログラムであっても良い。
(11)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、検査データ生成処理と検査処理との全部または一部は、ASIC(Application Specific Integrated Circuit)等のハードウェア回路によって実行されてよい。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
100…検査装置,1000…検査システム,110…CPU,115…GPU,120…揮発性記憶装置,130…不揮発性記憶装置,140…表示部,150…操作部,170…通信部,30…筐体,300…製品,31…前面,400…撮像装置,L…ラベル,PG…コンピュータプログラム

Claims (22)

  1. 対象物の異常検出に用いられる機械学習モデルであって、
    検査対象の前記対象物を撮像して得られる撮像画像データが入力される場合に検査対象の前記対象物の特徴データを生成するエンコーダであってCNN(Convolutional Neural Network)を含む前記エンコーダを含み、
    前記エンコーダは、学習用画像データを用いてトレーニングされ、
    前記学習用画像データは、前記対象物の画像を示す元画像データであって前記対象物の作成に用いられる前記元画像データに対して特定の画像処理を実行して得られる画像データである、機械学習モデル。
  2. 請求項1に記載の機械学習モデルであって、
    前記学習用画像データは、正常な前記対象物を示す画像データであり、
    前記エンコーダのトレーニングは、
    前記エンコーダと、前記エンコーダから出力されるデータを用いて出力画像データを生成するデコーダと、を含む画像生成モデルを構成し、
    前記エンコーダに前記学習用画像データが入力される場合に、前記デコーダによって生成される前記出力画像データが、前記学習用画像データを再現するように、実行される、機械学習モデル。
  3. 請求項1に記載の機械学習モデルであって、
    前記学習用画像データは、正常な前記対象物を示す第1種の画像データと、異常を含む前記対象物を示す第2種の画像データと、を含み、
    前記エンコーダのトレーニングは、
    前記エンコーダから出力されるデータを用いて画像の識別結果を示す出力データを生成する画像識別モデルを構成し、
    前記エンコーダに前記学習用画像データが入力される場合に、前記出力データが、前記学習用画像データが前記第1種の画像データであるか前記第2種の画像データであるかを示すように、実行される、機械学習モデル。
  4. 請求項3に記載の機械学習モデルであって、
    前記特定の画像処理は、異常と判定すべき欠陥とは異なるバラツキに起因して変動する画像の属性を調整する第1画像処理と、前記欠陥を画像に擬似的に付加する第2画像処理と、を含み、
    1回の前記第1画像処理によって生成される1つの前記第1種の画像データに対して、M種類(Mは2以上の整数)の前記第2画像処理が実行されることによって、M種類の前記第2種の画像データが生成される、機械学習モデル。
  5. 請求項3に記載の機械学習モデルであって、
    前記特定の画像処理は、異常と判定すべき欠陥とは異なるバラツキに起因して変動する画像の属性を調整する第1画像処理と、前記欠陥を画像に擬似的に付加する第2画像処理と、を含み、
    n種類(nは2以上の整数)の前記第1画像処理によって生成されるn種類の前記第1種の画像データに対して、m種類(mは1以上の整数)の前記第2画像処理が実行されることによって、(n×m)種類の前記第2種の画像データが生成される、機械学習モデル。
  6. 請求項1に記載の機械学習モデルであって、
    前記対象物の異常検出は、
    正常な前記対象物を示す特徴抽出用画像データであって、前記元画像データに対して第1調整処理を実行して得られる前記特徴抽出用画像データを生成し、
    前記特徴抽出用画像データを、トレーニング済みの前記機械学習モデルに入力することによって、正常な前記対象物の特徴データを生成し、
    正常な前記対象物の特徴データと、検査対象の前記対象物の特徴データと、を用いて、実行される、機械学習モデル。
  7. 請求項6に記載の機械学習モデルであって、
    前記第1調整処理は、異常と判定すべき欠陥とは異なるバラツキに起因して変動する画像の属性を調整する処理であり、
    前記特定の画像処理は、前記属性を調整する第2調整処理を含み、
    前記第2調整処理における前記属性の調整量の最大値は、前記第1調整処理における前記属性の調整量の最大値よりも大きい、機械学習モデル。
  8. 請求項1~7のいずれかに記載の機械学習モデルであって、
    前記対象物は、製品に貼付されるラベルである、機械学習モデル。
  9. 機械学習モデルを用いて対象物の異常を検出するためのコンピュータプログラムであって、
    前記機械学習モデルは、検査対象の前記対象物を撮像して得られる撮像画像データが入力される場合に検査対象の前記対象物の特徴データを生成するエンコーダであってCNN(Convolutional Neural Network)を含む前記エンコーダを含み、
    前記コンピュータプログラムは、
    正常な前記対象物を示す特徴抽出用画像データであって、前記対象物の画像を示す元画像データであって前記対象物の作成に用いられる前記元画像データに対して第1調整処理を実行して得られる前記特徴抽出用画像データを生成する機能と、
    前記特徴抽出用画像データを、トレーニング済みの前記エンコーダに入力することによって、正常な前記対象物の特徴データを生成する機能と、
    をコンピュータに実現させ、
    前記対象物の異常検出は、正常な前記対象物の特徴データと、検査対象の前記対象物の特徴データと、を用いて、実行される、コンピュータプログラム。
  10. 請求項9に記載のコンピュータプログラムであって、
    前記エンコーダは、学習用画像データを用いてトレーニングされ、
    前記学習用画像データは、前記元画像データに対して特定の画像処理を実行して得られる画像データである、コンピュータプログラム。
  11. 請求項10に記載のコンピュータプログラムであって、
    前記第1調整処理は、異常と判定すべき欠陥とは異なるバラツキに起因して変動する画像の属性を調整する処理であり、
    前記特定の画像処理は、前記属性を調整する第2調整処理を含み、
    前記第2調整処理における前記属性の調整量の最大値は、前記第1調整処理における前記属性の調整量の最大値よりも大きい、コンピュータプログラム。
  12. 請求項9~11のいずれかに記載のコンピュータプログラムであって、
    前記対象物は、製品に貼付されるラベルである、コンピュータプログラム。
  13. 機械学習モデルを用いて、対象物の異常を検出するための方法であって、
    前記機械学習モデルは、検査対象の前記対象物を撮像して得られる撮像画像データが入力される場合に検査対象の前記対象物の特徴データを生成するエンコーダであってCNN(Convolutional Neural Network)を含む前記エンコーダを含み、
    学習用画像データを用いて、前記エンコーダをトレーニングするトレーニング工程と、
    特徴抽出用画像データを、トレーニング済みの前記エンコーダに入力することによって、正常な前記対象物の特徴データを生成する工程と、
    を備え、
    前記対象物の異常検出は、正常な前記対象物の特徴データと、検査対象の前記対象物の特徴データと、を用いて、実行され、
    前記学習用画像データと前記抽出用画像データとのうちの少なくとも一方は、前記対象物の画像を示す元画像データであって前記対象物の作成に用いられる前記元画像データに対して、所定の処理を実行して得られる画像データである、方法。
  14. 対象物の異常検出に用いられる機械学習モデルであって、
    検査対象の前記対象物を撮像して得られる撮像画像データが入力される場合に検査対象の前記対象物の特徴データを生成するエンコーダであってCNN(Convolutional Neural Network)を含む前記エンコーダを含み、
    前記エンコーダは、学習用画像データを用いてトレーニングされ、
    前記学習用画像データは、前記対象物を撮像して得られる元画像データに対して特定の画像処理を実行して得られる画像データであり、
    前記対象物の異常検出は、
    正常な前記対象物を示す特徴抽出用画像データであって、前記元画像データに対して第1調整処理を実行して得られる前記特徴抽出用画像データを生成し、
    前記特徴抽出用画像データを、トレーニング済みの前記機械学習モデルに入力することによって、正常な前記対象物の特徴データを生成し、
    正常な前記対象物の特徴データと、検査対象の前記対象物の特徴データと、を用いて、実行される、機械学習モデル。
  15. 請求項14に記載の機械学習モデルであって、
    前記学習用画像データは、正常な前記対象物を示す画像データであり、
    前記エンコーダのトレーニングは、
    前記エンコーダと、前記エンコーダから出力されるデータを用いて出力画像データを生成するデコーダと、を含む画像生成モデルを構成し、
    前記エンコーダに前記学習用画像データが入力される場合に、前記デコーダによって生成される前記出力画像データが、前記学習用画像データを再現するように、実行される、機械学習モデル。
  16. 請求項14に記載の機械学習モデルであって、
    前記学習用画像データは、正常な前記対象物を示す第1種の画像データと、異常を含む前記対象物を示す第2種の画像データと、を含み、
    前記エンコーダのトレーニングは、
    前記エンコーダから出力されるデータを用いて画像の識別結果を示す出力データを生成する画像識別モデルを構成し、
    前記エンコーダに前記学習用画像データが入力される場合に、前記出力データが、前記学習用画像データが前記第1種の画像データであるか前記第2種の画像データであるかを示すように、実行される、機械学習モデル。
  17. 請求項16に記載の機械学習モデルであって、
    前記特定の画像処理は、異常と判定すべき欠陥とは異なるバラツキに起因して変動する画像の属性を調整する第1画像処理と、前記欠陥を画像に擬似的に付加する第2画像処理と、を含み、
    1回の前記第1画像処理によって生成される1つの前記第1種の画像データに対して、M種類(Mは2以上の整数)の前記第2画像処理が実行されることによって、M種類の前記第2種の画像データが生成される、機械学習モデル。
  18. 請求項16に記載の機械学習モデルであって、
    前記特定の画像処理は、異常と判定すべき欠陥とは異なるバラツキに起因して変動する画像の属性を調整する第1画像処理と、前記欠陥を画像に擬似的に付加する第2画像処理と、を含み、
    n種類(nは2以上の整数)の前記第1画像処理によって生成されるn種類の前記第1種の画像データに対して、m種類(mは1以上の整数)の前記第2画像処理が実行されることによって、(n×m)種類の前記第2種の画像データが生成される、機械学習モデル。
  19. 請求項14に記載の機械学習モデルであって、
    前記第1調整処理は、異常と判定すべき欠陥とは異なるバラツキに起因して変動する画像の属性を調整する処理であり、
    前記特定の画像処理は、前記属性を調整する第2調整処理を含み、
    前記第2調整処理における前記属性の調整量の最大値は、前記第1調整処理における前記属性の調整量の最大値よりも大きい、機械学習モデル。
  20. 請求項14~19のいずれかに記載の機械学習モデルであって、
    前記対象物は、製品に貼付されるラベルである、機械学習モデル。
  21. 機械学習モデルを用いて対象物の異常を検出するためのコンピュータプログラムであって、
    前記機械学習モデルは、検査対象の前記対象物を撮像して得られる撮像画像データが入力される場合に検査対象の前記対象物の特徴データを生成するエンコーダであってCNN(Convolutional Neural Network)を含む前記エンコーダを含み、
    前記コンピュータプログラムは、
    正常な前記対象物を示す特徴抽出用画像データであって、前記対象物を撮像して得られる元画像データに対して第1調整処理を実行して得られる前記特徴抽出用画像データを生成する機能と、
    前記特徴抽出用画像データを、トレーニング済みの前記エンコーダに入力することによって、正常な前記対象物の特徴データを生成する機能と、
    をコンピュータに実現させ、
    前記対象物の異常検出は、正常な前記対象物の特徴データと、検査対象の前記対象物の特徴データと、を用いて、実行される、コンピュータプログラム。
  22. 機械学習モデルを用いて、対象物の異常を検出するための方法であって、
    前記機械学習モデルは、検査対象の前記対象物を撮像して得られる撮像画像データが入力される場合に検査対象の前記対象物の特徴データを生成するエンコーダであってCNN(Convolutional Neural Network)を含む前記エンコーダを含み、
    学習用画像データを用いて、前記エンコーダをトレーニングするトレーニング工程と、
    特徴抽出用画像データを、トレーニング済みの前記エンコーダに入力することによって、正常な前記対象物の特徴データを生成する工程と、
    を備え、
    前記対象物の異常検出は、正常な前記対象物の特徴データと、検査対象の前記対象物の特徴データと、を用いて、実行され、
    前記学習用画像データと前記抽出用画像データとのうちの少なくとも一方は、前記対象物を撮像して得られる元画像データに対して、所定の処理を実行して得られる画像データである、方法。



JP2022107396A 2021-11-01 2022-07-01 機械学習モデル、コンピュータプログラム、および、方法 Pending JP2023067732A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/039283 WO2023074565A1 (ja) 2021-11-01 2022-10-21 機械学習モデル、コンピュータプログラム、および、方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021178731 2021-11-01
JP2021178731 2021-11-01

Publications (1)

Publication Number Publication Date
JP2023067732A true JP2023067732A (ja) 2023-05-16

Family

ID=86326064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022107396A Pending JP2023067732A (ja) 2021-11-01 2022-07-01 機械学習モデル、コンピュータプログラム、および、方法

Country Status (1)

Country Link
JP (1) JP2023067732A (ja)

Similar Documents

Publication Publication Date Title
JP2020160616A (ja) 生成装置、コンピュータプログラム、生成方法
WO2022124380A1 (en) Method, system, and non-transitory computer-readable storage medium storing set of computer-readable instructions
JP2020087211A (ja) 学習モデル生成装置、種類判別システム、及び学習モデル生成方法
JP7293842B2 (ja) 生成方法、プログラム、生成装置、出力装置及び送信装置
JP2021026191A (ja) 学習済みの機械学習モデル、画像データ生成装置、および、方法
JP5617841B2 (ja) 画像処理装置、画像処理方法および画像処理用プログラム
US20230316697A1 (en) Association method, association system, and non-transitory computer-readable storage medium
WO2023074565A1 (ja) 機械学習モデル、コンピュータプログラム、および、方法
JP2023067732A (ja) 機械学習モデル、コンピュータプログラム、および、方法
US20210374916A1 (en) Storage medium storing program, image processing apparatus, and training method of machine learning model
US11625886B2 (en) Storage medium storing program, training method of machine learning model, and image generating apparatus
JP4366634B2 (ja) ノイズ画素マップ作成方法とその方法を実施する装置とプログラム及び写真プリント装置
JP2007249802A (ja) 画像処理装置及び画像処理方法
JP7160211B2 (ja) 機械学習モデル、生成装置、コンピュータプログラム
JP2023067464A (ja) 画像生成モデル、および、画像生成モデルのトレーニング方法
JP7372591B2 (ja) 画像処理装置、および、学習済みの機械学習モデル
JP4591784B2 (ja) 撮影画像補正用変換テーブル作成方法とこの方法を実施する写真プリント装置
JPH0993443A (ja) カラーモノクロ画像変換方法および被検査対象のエッジ位置検出方法
JP3905503B2 (ja) 顔画像合成装置および顔画像合成プログラム
JP2004239870A (ja) 空間フィルタ、空間フィルタの作成方法、空間フィルタ作成プログラム、画面欠陥の検査方法及び装置
WO2023238702A1 (ja) コンピュータプログラム、処理方法、および、処理装置
WO2023157825A1 (ja) コンピュータプログラム、および、処理装置
WO2023074566A1 (ja) コンピュータプログラム、および、データ処理装置
WO2023228717A1 (ja) コンピュータプログラム、処理方法、および、処理装置
WO2023223884A1 (ja) コンピュータプログラム、および、検査装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20220702