(57)【要約】【課題】画像を生成するための生成器を構築するのにかかる計算コストを低減する。【解決手段】本発明の一側面に係る学習装置は、外観検査の対象となる製品を写した学習画像を取得する画像取得部と、学習画像を複数のパッチ画像に分割する画像分割部と、学習画像内における各パッチ画像の位置に応じて、複数のラベルのうちのいずれかのラベルを各パッチ画像に関連付けるラベル付与部と、機械学習を行うことで、各パッチ画像に関連付けられたラベルから各パッチ画像に対応する画像を生成するように訓練された生成器を構築する学習処理部と、を備える。【選択図】図１
2020064364.tif 000002
【特許請求の範囲】
【請求項１】
外観検査の対象となる製品を写した学習画像を取得する画像取得部と、
前記学習画像を複数のパッチ画像に分割する画像分割部と、
前記学習画像内における前記各パッチ画像の位置に応じて、複数のラベルのうちのいずれかのラベルを前記各パッチ画像に関連付けるラベル付与部と、
機械学習を行うことで、前記各パッチ画像に関連付けられた前記ラベルから前記各パッチ画像に対応する画像を生成するように訓練された生成器を構築する学習処理部と、
を備える、
学習装置。
【請求項２】
前記画像分割部は、
前記学習画像の複雑度を算出し、
算出した複雑度に応じて、パッチサイズを決定し、
決定した前記パッチサイズをそれぞれ有する前記複数のパッチ画像に前記学習画像を分割する、
請求項１に記載の学習装置。
【請求項３】
前記ラベル付与部は、
前記各パッチ画像の複雑度を算出し、
算出した複雑度に基づいて、前記複数のパッチ画像のうちの互いに類似する２つ以上のパッチ画像を統合し、
統合した前記２つ以上のパッチ画像に同一のラベルを付与する、
請求項１又は２に記載の学習装置。
【請求項４】
構築された前記生成器に関する情報を所定の記憶領域に保存する保存処理部を更に備える、
請求項１から３のいずれか１項に記載の学習装置。
【請求項５】
前記生成器は、判別器に接続され、
前記機械学習を行うことは、前記判別器に入力された入力画像が、前記生成器により生成された前記画像であるか前記学習画像から分割された前記各パッチ画像であるかを判別するよう前記判別器を訓練する第１訓練ステップ、及び前記各パッチ画像に関連付けられた前記ラベルから、前記判別器による前記判別が誤るような前記画像を生成するよう前記生成器を訓練する第２訓練ステップを交互に行うことを含む、
請求項１から４のいずれか１項に記載の学習装置。
【請求項６】
前記生成器は、エンコーダに接続され、
前記機械学習を行うことは、前記各パッチ画像を前記エンコーダに入力することで前記エンコーダから得られる出力値及び前記各パッチ画像に関連付けられた前記ラベルから、前記各パッチ画像に対応する画像を生成するよう前記生成器を訓練することを含む、
請求項１から４のいずれか１項に記載の学習装置。
【請求項７】
請求項１から６のいずれか１項に記載の学習装置により構築された前記生成器を利用して、前記複数のラベルそれぞれから複数の画像それぞれを生成する生成部と、
生成された前記複数の画像それぞれを、前記複数のラベルそれぞれに応じた位置に配置した後に結合することで、結合画像を生成する結合部と、
を備える、
画像生成装置。
【請求項８】
コンピュータが、
外観検査の対象となる製品を写した学習画像を取得するステップと、
前記学習画像を複数のパッチ画像に分割するステップと、
前記学習画像内における前記各パッチ画像の位置に応じて、複数のラベルのうちのいずれかのラベルを前記各パッチ画像に関連付けるステップと、
機械学習を行うことで、前記各パッチ画像に関連付けられた前記ラベルから前記各パッチ画像に対応する画像を生成するように訓練された生成器を構築するステップと、
を実行する、
学習方法。
【請求項９】
コンピュータに、
外観検査の対象となる製品を写した学習画像を取得するステップと、
前記学習画像を複数のパッチ画像に分割するステップと、
前記学習画像内における前記各パッチ画像の位置に応じて、複数のラベルのうちのいずれかのラベルを前記各パッチ画像に関連付けるステップと、
機械学習を行うことで、前記各パッチ画像に関連付けられた前記ラベルから前記各パッチ画像に対応する画像を生成するように訓練された生成器を構築するステップと、
を実行させるための、
学習プログラム。
【請求項１０】
対象物を写した学習画像を取得する画像取得部と、
前記学習画像を複数のパッチ画像に分割する画像分割部と、
前記学習画像内における前記各パッチ画像の位置に応じて、複数のラベルのうちのいずれかのラベルを前記各パッチ画像に関連付けるラベル付与部と、
機械学習を行うことで、前記各パッチ画像に関連付けられた前記ラベルから前記各パッチ画像に対応する画像を生成するように訓練された生成器を構築する学習処理部と、
を備える、
学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、画像生成装置、学習方法、及び学習プログラムに関する。
【背景技術】
【０００２】
従来、製造ライン等の製品を製造する場面では、製造される製品を撮影装置により撮影し、得られた画像データに基づいて製品の良否を検査する技術が利用されている。例えば、特許文献１では、学習済みの第１のニューラルネットワークに基づいて画像に写る検査対象物が正常であるか異常であるかを判定し、検査対象物が異常であると判定した場合に、学習済みの第２のニューラルネットワークに基づいて当該異常の種類を分類する検査装置が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０２６９８２号公報
【非特許文献】
【０００４】
【非特許文献１】Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio, "Generative Adversarial Networks", Advances in neural information processing systems, 2672-2680, 2014
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本件発明者らは、特許文献１のようなニューラルネットワーク等の学習モデルにより構成される推定器を利用して、画像データから製品の良否を判定する従来の技術には、次のような問題が生じ得ることを見出した。すなわち、製品の良否を判定する能力を学習モデルに習得させる機械学習を行う場合、訓練データとしてサンプル画像を用意することになる。このサンプル画像の件数が少ないと、学習済みの学習モデル（推定器）による良否の判定の精度が不十分になってしまう。一方で、推定器による判定の精度を高めるために、十分な件数のサンプル画像を用意するにはコストがかかってしまう。
【０００６】
そこで、本件発明者らは、生成器（生成モデル）を利用して、用意した画像から複数件の異なる画像を量産し、量産した複数件の画像を機械学習の訓練データとして利用することを検討した。例えば、非特許文献１には、機械学習により、用意した学習画像から生成器（生成モデル）を構築する方法が提案されている。この生成器は、機械学習により、学習画像に対応する画像を生成するよう訓練される。つまり、製品を写した画像を学習画像として利用すれば、生成器は、製品の写り得る画像を生成するように訓練される。この訓練された生成器を利用すれば、製品の良否を判定する能力を習得させるための機械学習に利用可能なサンプル画像を自動的に生成することができるようになるため、サンプル画像を用意するコストを低減することができる。
【０００７】
しかしながら、本件発明者らは、この生成器を利用する場面において、次のような問題点が生じ得ることを見出した。すなわち、学習画像のサイズが大きくなるほど、生成器の構造は複雑になってしまう。例えば、ニューラルネットワークにより生成器が構成される場合には、学習画像のサイズが大きくなるほど、中間層（隠れ層）等の層の数、及び各層におけるニューロンの数が多くなってしまう。これにより、機械学習により生成器を構築するのにかかる計算コストが大きくなってしまい、機械学習の計算処理の際にメモリの不足が生じてしまう、当該計算処理の時間が長くなってしまう、当該計算処理が所定時間内に完了しない等の不具合が生じてしまうという問題点が生じ得る。
【０００８】
なお、このような問題点は、製品を写した画像を生成するための生成器（生成モデル）を機械学習により構築する場面だけではなく、何らかの対象物を写した画像を生成するための生成器を構築するあらゆる場面で生じ得る。例えば、対象者の顔を写した顔画像を生成するための生成器を構築する場合に、高解像度の画像を学習画像として利用すると、当該生成器の構築にかかる計算コストが大きくなってしまう。これにより、上記不具合が生じてしまう可能性がある。
【０００９】
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、画像を生成するための生成器を構築するのにかかる計算コストを低減する技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【００１１】
すなわち、本発明の一側面に係る学習装置は、外観検査の対象となる製品を写した学習画像を取得する画像取得部と、前記学習画像を複数のパッチ画像に分割する画像分割部と、前記学習画像内における前記各パッチ画像の位置に応じて、複数のラベルのうちのいずれかのラベルを前記各パッチ画像に関連付けるラベル付与部と、機械学習を行うことで、前記各パッチ画像に関連付けられた前記ラベルから前記各パッチ画像に対応する画像を生成するように訓練された生成器を構築する学習処理部と、を備える。
【００１２】
当該構成に係る学習装置は、外観検査の対象となる製品を写した学習画像を複数のパッチ画像に分割し、各パッチ画像及び対応する各ラベルを利用して、生成器の機械学習を実施する。この機械学習により、生成器は、各ラベルから対応する各パッチ画像に対応する画像を生成するように訓練される。訓練された生成器により生成された各画像を各ラベルに応じて結合することで、学習画像に対応するフルサイズの画像であって、外観検査の対象となる製品の写り得る画像を生成することができる。
【００１３】
すなわち、当該構成に係る学習装置は、学習画像を分割することで得られた各パッチ画像に類似する画像の生成を生成器に学習させる。これにより、フルサイズの学習画像に類似する画像を直接的に生成する能力を生成器に習得させるのではなく、各パッチ画像に類似する画像の生成を介して学習画像に類似するフルサイズの画像を間接的に生成する能力を生成器に習得させる。そのため、当該構成では、生成器に学習させる画像のサイズを抑えることができるため、生成器の構成を単純化することができる。したがって、当該構成によれば、機械学習により生成器を構築するのにかかる計算コストを低減することができる。これによって、機械学習の計算処理の際に使用するメモリの量を抑えたり、当該計算処理にかかる時間を短くしたりすることができる。
【００１４】
上記一側面に係る学習装置において、前記画像分割部は、前記学習画像の複雑度を算出してもよく、算出した複雑度に応じて、パッチサイズを決定してもよく、決定した前記パッチサイズをそれぞれ有する前記複数のパッチ画像に前記学習画像を分割してもよい。当該構成によれば、学習画像に類似する画像を生成する能力を生成器に習得させるのに適切なパッチサイズで学習画像を分割することができる。したがって、機械学習により生成器を構築するのにかかる計算コストを低減しつつ、その機械学習によって、学習画像に対応（類似）する適切な画像を生成する能力を生成器に習得させることができる。
【００１５】
上記一側面に係る学習装置において、前記ラベル付与部は、前記各パッチ画像の複雑度を算出してもよく、算出した複雑度に基づいて、前記複数のパッチ画像のうちの互いに類似する２つ以上のパッチ画像を統合してもよく、統合した前記２つ以上のパッチ画像に同一のラベルを付与してもよい。当該構成によれば、類似する２つ以上のパッチ画像を統合することで、生成器に習得させるパッチ画像の種類を低減することができるため、生成器の構成を更に単純化することができる。そのため、機械学習により生成器を構築するのにかかる計算コストを更に低減することができる。
【００１６】
上記一側面に係る学習装置は、構築された前記生成器に関する情報を所定の記憶領域に保存する保存処理部を更に備えてもよい。当該構成によれば、機械学習により構築された生成器を他のコンピュータで利用可能にすることができる。
【００１７】
上記一側面に係る学習装置において、前記生成器は、判別器に接続されてもよく、前記機械学習を行うことは、前記判別器に入力された入力画像が、前記生成器により生成された前記画像であるか前記学習画像から分割された前記各パッチ画像であるかを判別するよう前記判別器を訓練する第１訓練ステップ、及び前記各パッチ画像に関連付けられた前記ラベルから、前記判別器による前記判別が誤るような前記画像を生成するよう前記生成器を訓練する第２訓練ステップを交互に行うことを含んでもよい。当該構成によれば、各ラベルから対応する各パッチ画像に対応する画像を生成するように訓練された生成器を適切に構築することができる。
【００１８】
上記一側面に係る学習装置において、前記生成器は、エンコーダに接続されてよく、前記機械学習を行うことは、前記各パッチ画像を前記エンコーダに入力することで前記エンコーダから得られる出力値及び前記各パッチ画像に関連付けられた前記ラベルから、前記各パッチ画像に対応する画像を生成するよう前記生成器を訓練することを含んでもよい。当該構成によれば、各ラベルから対応する各パッチ画像に対応する画像を生成するように訓練された生成器を適切に構築することができる。
【００１９】
また、本発明の一側面に係る画像生成装置は、上記いずれかの形態に係る学習装置により構築された前記生成器を利用して、前記複数のラベルそれぞれから複数の画像それぞれを生成する生成部と、生成された前記複数の画像それぞれを、前記複数のラベルそれぞれに応じた位置に配置した後に結合することで、結合画像を生成する結合部と、を備える。当該構成によれば、単純化された上記生成器を利用することにより、学習画像に対応する画像、すなわち、製品の写り得る画像（結合画像）を量産するのにかかる計算コストを抑えることができる。
【００２０】
また、上記各形態に係る学習装置及び画像生成装置は、外観検査の対象となる製品を写した画像を生成するための生成器を構築する場面だけではなく、例えば、対象者の顔を写した顔画像を生成するための生成器を構築する場面等、何らかの対象物を写した画像を生成するための生成器を構築するあらゆる場面に適用されてよい。
【００２１】
例えば、本発明の一側面に係る学習装置は、対象物を写した学習画像を取得する画像取得部と、前記学習画像を複数のパッチ画像に分割する画像分割部と、前記学習画像内における前記各パッチ画像の位置に応じて、複数のラベルのうちのいずれかのラベルを前記各パッチ画像に関連付けるラベル付与部と、機械学習を行うことで、前記各パッチ画像に関連付けられた前記ラベルから前記各パッチ画像に対応する画像を生成するように訓練された生成器を構築する学習処理部と、を備える。なお、対象物は、何らかの属性を識別する対象となり得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。対象物は、例えば、上記外観検査の対象となる製品、人物、人物の身体部位（例えば、顔等）、文字、車両における車外の状況等であってよい。推定する対象となる特徴は、特に限定されなくてもよく、対象物に応じて適宜選択されてよい。対象物が外観検査の対象となる製品である場合、推定する対象となる特徴は、例えば、シミ、汚れ、傷等の欠陥であってよい。対象物が人物の顔である場合、推定する対象となる特徴は、例えば、表情の種別、顔のパーツの状態、その顔の人物の属性等であってよい。対象物が文字である場合、推定する対象となる特徴は、印字の鮮明度、歪み、文字列のずれ等の属性であってよい。対象物が車外の状況である場合、推定する対象となる特徴は、例えば、車線の状態、渋滞具合等の道路状況の属性であってよい。
【００２２】
本発明の一側面に係る画像生成システムは、上記いずれかの形態に係る学習装置及び画像生成装置により構成されてもよい。また、本発明の一側面に係る推定システムは、上記いずれかの形態に係る学習装置、上記画像生成装置、生成された画像を利用して、画像に写る対象物の何らかの特徴を推定する推定器を構築する推定器生成装置、及び構築された推定器を利用して、画像に写る対象物の特徴を推定する推定装置により構成されてよい。更に、上記各形態に係る学習装置、画像生成装置、画像生成システム、及び推定システムそれぞれの別の形態として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【００２３】
例えば、本発明の一側面に係る学習方法は、コンピュータが、外観検査の対象となる製品を写した学習画像を取得するステップと、前記学習画像を複数のパッチ画像に分割するステップと、前記学習画像内における前記各パッチ画像の位置に応じて、複数のラベルのうちのいずれかのラベルを前記各パッチ画像に関連付けるステップと、機械学習を行うことで、前記各パッチ画像に関連付けられた前記ラベルから前記各パッチ画像に対応する画像を生成するように訓練された生成器を構築するステップと、を実行する、情報処理方法である。
【００２４】
また、例えば、本発明の一側面に係る学習プログラムは、コンピュータに、外観検査の対象となる製品を写した学習画像を取得するステップと、前記学習画像を複数のパッチ画像に分割するステップと、前記学習画像内における前記各パッチ画像の位置に応じて、複数のラベルのうちのいずれかのラベルを前記各パッチ画像に関連付けるステップと、機械学習を行うことで、前記各パッチ画像に関連付けられた前記ラベルから前記各パッチ画像に対応する画像を生成するように訓練された生成器を構築するステップと、を実行させるための、プログラムである。
【発明の効果】
【００２５】
本発明によれば、画像を生成するための生成器を構築するのにかかる計算コストを低減することができる。
【図面の簡単な説明】
【００２６】
【図１】図１は、本発明が適用される場面の一例を模式的に例示する。
【図２】図２は、実施の形態に係る学習装置のハードウェア構成の一例を模式的に例示する。
【図３】図３は、実施の形態に係る画像生成装置のハードウェア構成の一例を模式的に例示する。
【図４】図４は、実施の形態に係る推定器生成装置のハードウェア構成の一例を模式的に例示する。
【図５】図５は、実施の形態に係る検査装置のハードウェア構成の一例を模式的に例示する。
【図６】図６は、実施の形態に係る学習装置のソフトウェア構成の一例を模式的に例示する。
【図７Ａ】図７Ａは、実施の形態に係るネットワークの機械学習の過程の一例を模式的に例示する。
【図７Ｂ】図７Ｂは、実施の形態に係るネットワークの機械学習の過程の一例を模式的に例示する。
【図８】図８は、実施の形態に係る画像生成装置のソフトウェア構成の一例を模式的に例示する。
【図９】図９は、実施の形態に係る推定器生成装置のソフトウェア構成の一例を模式的に例示する。
【図１０】図１０は、実施の形態に係る検査装置のソフトウェア構成の一例を模式的に例示する。
【図１１】図１１は、実施の形態に係る学習装置の処理手順の一例を例示する。
【図１２】図１２は、実施の形態に係るパッチ分割の処理手順の一例を例示する。
【図１３】図１３は、実施の形態に係るラベリングの処理手順の一例を例示する。
【図１４】図１４は、実施の形態に係る機械学習の処理手順の一例を例示する。
【図１５】図１５は、実施の形態に係る画像生成装置の処理手順の一例を例示する。
【図１６】図１６は、実施の形態に係る推定器生成装置の処理手順の一例を例示する。
【図１７】図１７は、実施の形態に係る検査装置の処理手順の一例を例示する。
【図１８】図１８は、変形例に係る学習装置のソフトウェア構成の一例を模式的に例示する。
【図１９】図１９は、本発明が適用される場面の変形例を模式的に例示する。
【図２０】図２０は、変形例に係る推定装置のソフトウェア構成の一例を模式的に例示する。
【発明を実施するための形態】
【００２７】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００２８】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、製品Ｒの外観検査に本発明を適用した場面の一例を模式的に例示する。ただし、本発明の適用範囲は、以下で例示する外観検査の例に限られる訳ではない。本発明は、画像に写る対象物の何らかの特徴を推定するあらゆる場面に適用可能である。
【００２９】
図１に例示されるとおり、本実施形態に係る検査システム１００は、ネットワークを介して接続される学習装置１、画像生成装置２、推定器生成装置３、及び検査装置４を備えている。これにより、検査システム１００は、製品Ｒの良否を検査するように構成される。学習装置１、画像生成装置２、推定器生成装置３、及び検査装置４の間のネットワークの種類は、特に限定されなくてもよく、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
【００３０】
なお、図１の例では、学習装置１、画像生成装置２、推定器生成装置３、及び検査装置４はそれぞれ別個のコンピュータである。しかしながら、検査システム１００の構成は、このような例に限定されなくてもよい。学習装置１、画像生成装置２、推定器生成装置３、及び検査装置４の少なくともいずれかのペアは一体のコンピュータであってもよい。また、学習装置１、画像生成装置２、推定器生成装置３、及び検査装置４はそれぞれ複数台のコンピュータにより構成されてもよい。
【００３１】
本実施形態に係る学習装置１は、外観検査の対象となる製品Ｒを写した画像を生成するための生成器５０を構築するように構成されたコンピュータである。具体的には、学習装置１は、外観検査の対象となる製品Ｒを写した学習画像６０を取得し、取得した学習画像６０を複数のパッチ画像６１に分割する。次に、学習装置１は、学習画像６０内に各パッチ画像６１の位置に応じて、複数のラベル６２のうちのいずれかのラベル６２を各パッチ画像６１に関連付ける（付与する）。各ラベル６２は、学習画像６０内における各パッチ画像６１の位置を示す。
【００３２】
そして、学習装置１は、各パッチ画像６１及び各ラベル６２を利用して、生成器５０の機械学習を実施することで、生成器５０のパラメータを調節する。これにより、学習装置１は、各パッチ画像６１に関連付けられたラベル６２から各パッチ画像６１に対応する画像を生成するように訓練された生成器５０を構築する。各パッチ画像６１に対応する画像とは、各パッチ画像６１に類似し、各パッチ画像６１に写る対象が写り得る画像である。生成器５０は、各パッチ画像６１の分布に従った（沿う）画像を生成するように訓練される。
【００３３】
なお、図１の「Ｐ１」は、パッチ画像６１の種別を示し、「Ｃ１」は、ラベル６２の種別を示す。図１の例では、左上角のパッチ画像「Ｐ１」にラベル「Ｃ１」が付与されている。ただし、パッチ画像６１の種別、ラベル６２の種別、及びパッチ画像６１とラベル６２との対応関係は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。
【００３４】
これに対して、本実施形態に係る画像生成装置２は、学習装置１により構築された学習済みの生成器５０を利用して、製品Ｒの写り得る画像を生成するように構成されたコンピュータである。具体的には、画像生成装置２は、学習装置１により構築された生成器５０を利用して、複数のラベル６２それぞれから複数の画像６７それぞれを生成する。生成される画像６７は、上記各パッチ画像６１に対応する画像である。
【００３５】
そして、画像生成装置２は、生成された複数の画像６７それぞれを、複数のラベル６２それぞれに応じた位置に配置した後に結合することで、結合画像６９を生成する。生成される結合画像６９は、製品Ｒを写した上記学習画像６０に対応する画像である。なお、図１の「Ｑ１」は、生成器５０により生成された画像６７の種別を示す。図１の例では、ラベル「Ｃ１」から生成された画像「Ｑ１」が、左上角に配置された後、他のラベル６２から生成された他の画像６７と結合される。
【００３６】
本実施形態に係る推定器生成装置３は、製品Ｒの良否を推定するための推定器を構築するように構成されたコンピュータである。具体的に、推定器生成装置３は、製品Ｒを写したサンプル画像及び正解データの組み合わせによりそれぞれ構成された複数の学習データセットを取得する。正解データは、サンプル画像に写る製品Ｒの良否を判定した結果（すなわち、正解）を示す。そして、推定器生成装置３は、複数の学習データセットを利用した機械学習を実施することで、与えられた画像に写る製品Ｒの良否を判定する能力を習得した学習済みの推定器を構築する。なお、推定器生成装置３は、画像生成装置２により生成された結合画像６９をサンプル画像に利用することができる。
【００３７】
これに対して、本実施形態に係る検査装置４は、推定器生成装置３により構築された学習済みの推定器を利用して、製品Ｒの良否を判定するように構成されたコンピュータである。検査装置４は、画像に写る対象物の何らかの特徴を推定するための推定装置の一例である。具体的に、検査装置４は、外観検査の対象となる製品Ｒの写る対象画像を取得する。本実施形態では、検査装置４にはカメラＣＡが接続されている。検査装置４は、このカメラＣＡにより製品Ｒを撮影することで対象画像を取得する。次に、検査装置４は、取得した対象画像を学習済みの推定器に入力し、学習済みの推定器の演算処理を実行する。これにより、検査装置４は、製品Ｒの良否を判定した結果に対応する出力値を学習済みの推定器から取得する。そして、検査装置４は、学習済みの推定器から得られた出力値に基づいて製品Ｒの良否を判定した結果に関する情報を出力する。
【００３８】
以上のとおり、本実施形態に係る学習装置１は、学習画像６０を分割することで得られた各パッチ画像６１に対応する画像の生成を生成器５０に学習させる。これにより、フルサイズの学習画像６０に対応する画像を直接的に生成する能力を生成器５０に習得させるのではなく、各パッチ画像６１に対応する画像の生成を介して学習画像６０に対応するフルサイズの画像を間接的に生成する能力を生成器５０に習得させる。そのため、本実施形態では、生成器５０に学習させる画像のサイズを抑えることができるため、生成器５０の構成を単純化することができる。したがって、本実施形態によれば、機械学習により生成器５０を構築するのにかかる計算コストを低減することができる。これによって、機械学習の計算処理の際に使用するメモリの量を抑えたり、当該計算処理にかかる時間を短くしたりすることができる。
【００３９】
また、本実施形態に係る画像生成装置２では、学習装置１により構築された生成器５０を利用することで、製品Ｒの写り得る画像（結合画像６９）を量産するのにかかる計算コストを抑えることができる。加えて、本実施形態では、画像生成装置２により量産された結合画像６９をサンプル画像として利用することができる。これにより、推定器生成装置３において、学習データセットを収集するコストを低減することができる。更に、本実施形態では、画像生成装置２により量産された結合画像６９をサンプル画像として利用することで、推定器の機械学習に利用するサンプル画像の件数を増やすことができる。これにより、検査装置４において、製品Ｒの良否を判定する精度を高めることができる。
【００４０】
なお、外観検査の対象となる製品Ｒは、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。製品Ｒは、例えば、電子部品、自動車部品等の製造ラインで搬送される物であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等である。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等である。また、良否の判定は、製品Ｒに欠陥があるか否かを単に判定することであってもよいし、製品Ｒに欠陥がある否かを判定することに加えて、その欠陥の種類を識別することを含んでもよい。欠陥は、例えば、傷、汚れ、クラック、打痕、埃、バリ、色ムラ等である。
【００４１】
§２  構成例
［ハードウェア構成］
＜学習装置＞
次に、図２を用いて、本実施形態に係る学習装置１のハードウェア構成の一例について説明する。図２は、本実施形態に係る学習装置１のハードウェア構成の一例を模式的に例示する。
【００４２】
図２に示されるとおり、本実施形態に係る学習装置１は、制御部１１、記憶部１２、通信インタフェース１３、入力装置１４、出力装置１５、及びドライブ１６が電気的に接続されたコンピュータである。なお、図２では、通信インタフェースを「通信Ｉ／Ｆ」と記載している。
【００４３】
制御部１１は、ハードウェアプロセッサであるＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部１２は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部１２は、学習プログラム１２１、学習画像６０、ラベル情報６２１、第１学習結果データ１２５等の各種情報を記憶する。
【００４４】
学習プログラム１２１は、製品Ｒの写り得る画像を生成するための生成器５０を構築する後述の情報処理（図１１〜図１４）を学習装置１に実行させるためのプログラムである。学習プログラム１２１は、当該情報処理の一連の命令を含む。学習画像６０は、生成器５０の機械学習に利用される。学習画像６０の件数は、実施の形態に応じて適宜決定されてよい。ラベル情報６２１は、各パッチ画像６１と各ラベル６２との対応関係を示す。第１学習結果データ１２５は、機械学習により構築された学習済みの生成器５０の設定を行うためのデータである。第１学習結果データ１２５は、学習プログラム１２１の実行結果として生成される。詳細は後述する。
【００４５】
通信インタフェース１３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置１は、この通信インタフェース１３を利用することで、ネットワークを介したデータ通信を他の情報処理装置（例えば、画像生成装置２、推定器生成装置３）と行うことができる。
【００４６】
入力装置１４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置１５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置１４及び出力装置１５を利用することで、学習装置１を操作することができる。
【００４７】
ドライブ１６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９１に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ１６の種類は、記憶媒体９１の種類に応じて適宜選択されてよい。上記学習プログラム１２１及び学習画像６０の少なくともいずれかは、この記憶媒体９１に記憶されていてもよい。
【００４８】
記憶媒体９１は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置１は、この記憶媒体９１から、上記学習プログラム１２１及び学習画像６０の少なくともいずれかを取得してもよい。
【００４９】
ここで、図２では、記憶媒体９１の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９１の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００５０】
なお、学習装置１の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部１１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ（field-programmable gate array）、ＤＳＰ（digital signal processor）等で構成されてよい。記憶部１２は、制御部１１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース１３、入力装置１４、出力装置１５及びドライブ１６の少なくともいずれかは省略されてもよい。学習装置１は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、学習装置１は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、ＰＣ（Personal Computer）等であってもよい。
【００５１】
＜画像生成装置＞
次に、図３を用いて、本実施形態に係る画像生成装置２のハードウェア構成の一例について説明する。図３は、本実施形態に係る画像生成装置２のハードウェア構成の一例を模式的に例示する。
【００５２】
図３に示されるとおり、本実施形態に係る画像生成装置２は、制御部２１、記憶部２２、通信インタフェース２３、入力装置２４、出力装置２５、及びドライブ２６が電気的に接続されたコンピュータである。本実施形態に係る画像生成装置２の制御部２１〜ドライブ２６それぞれは、上記学習装置１の制御部１１〜ドライブ１６それぞれと同様に構成されてよい。
【００５３】
すなわち、制御部２１は、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部２２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部２２は、画像生成プログラム２２１、ラベル情報６２１、第１学習結果データ１２５、結合画像６９等の各種情報を記憶する。
【００５４】
画像生成プログラム２２１は、学習済みの生成器５０を利用して結合画像６９を生成する後述の情報処理（図１５）を画像生成装置２に実行させるためのプログラムである。画像生成プログラム２２１は、当該情報処理の一連の命令を含む。結合画像６９は、画像生成プログラム２２１の実行結果として生成される。詳細は後述する。
【００５５】
通信インタフェース２３は、例えば、有線ＬＡＮモジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。画像生成装置２は、この通信インタフェース２３を利用することで、ネットワークを介したデータ通信を他の情報処理装置（例えば、学習装置１、推定器生成装置３）と行うことができる。
【００５６】
入力装置２４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置２５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置２４及び出力装置２５を利用することで、画像生成装置２を操作することができる。
【００５７】
ドライブ２６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９２に記憶されたプログラムを読み込むためのドライブ装置である。上記画像生成プログラム２２１、ラベル情報６２１及び第１学習結果データ１２５のうちの少なくともいずれかは、記憶媒体９２に記憶されていてもよい。また、画像生成装置２は、記憶媒体９２から、上記画像生成プログラム２２１、ラベル情報６２１及び第１学習結果データ１２５のうちの少なくともいずれかを取得してもよい。
【００５８】
なお、画像生成装置２の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部２１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＤＳＰ等で構成されてよい。記憶部２２は、制御部２１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース２３、入力装置２４、出力装置２５及びドライブ２６の少なくともいずれかは省略されてもよい。画像生成装置２は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、画像生成装置２は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のＰＣ等であってもよい。
【００５９】
＜推定器生成装置＞
次に、図４を用いて、本実施形態に係る推定器生成装置３のハードウェア構成の一例について説明する。図４は、本実施形態に係る推定器生成装置３のハードウェア構成の一例を模式的に例示する。
【００６０】
図４に示されるとおり、本実施形態に係る推定器生成装置３は、制御部３１、記憶部３２、通信インタフェース３３、入力装置３４、出力装置３５、及びドライブ３６が電気的に接続されたコンピュータである。本実施形態に係る推定器生成装置３の制御部３１〜ドライブ３６それぞれは、上記学習装置１の制御部１１〜ドライブ１６それぞれと同様に構成されてよい。
【００６１】
すなわち、制御部３１は、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部３２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部３２は、推定器生成プログラム３２１、学習データセット３２２、第２学習結果データ３２５等の各種情報を記憶する。
【００６２】
推定器生成プログラム３２１は、製品Ｒの良否を判定するための推定器を構築する後述の情報処理（図１６）を推定器生成装置３に実行させるためのプログラムである。推定器生成プログラム３２１は、当該情報処理の一連の命令を含む。学習データセット３２２は、この推定器の機械学習に利用される。第２学習結果データ３２５は、機械学習により構築された学習済みの推定器の設定を行うためのデータである。第２学習結果データ３２５は、推定器生成プログラム３２１の実行結果として生成される。詳細は後述する。
【００６３】
通信インタフェース３３は、例えば、有線ＬＡＮモジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。推定器生成装置３は、この通信インタフェース３３を利用することで、ネットワークを介したデータ通信を他の情報処理装置（例えば、学習装置１、画像生成装置２、検査装置４）と行うことができる。
【００６４】
入力装置３４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置３５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置３４及び出力装置３５を利用することで、推定器生成装置３を操作することができる。
【００６５】
ドライブ３６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９３に記憶されたプログラムを読み込むためのドライブ装置である。上記推定器生成プログラム３２１及び学習データセット３２２のうちの少なくともいずれかは、記憶媒体９３に記憶されていてもよい。また、推定器生成装置３は、記憶媒体９３から、上記推定器生成プログラム３２１及び学習データセット３２２のうちの少なくともいずれかを取得してもよい。
【００６６】
なお、推定器生成装置３の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部３１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＤＳＰ等で構成されてよい。記憶部３２は、制御部３１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース３３、入力装置３４、出力装置３５及びドライブ３６の少なくともいずれかは省略されてもよい。推定器生成装置３は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、推定器生成装置３は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のＰＣ等であってもよい。
【００６７】
＜検査装置＞
次に、図５を用いて、本実施形態に係る検査装置４のハードウェア構成の一例について説明する。図５は、本実施形態に係る検査装置４のハードウェア構成の一例を模式的に例示する。
【００６８】
図５に示されるとおり、本実施形態に係る検査装置４は、制御部４１、記憶部４２、通信インタフェース４３、入力装置４４、出力装置４５、ドライブ４６、及び外部インタフェース４７が電気的に接続されたコンピュータである。なお、図５では、外部インタフェースを「外部Ｉ／Ｆ」と記載している。検査装置４の制御部４１〜ドライブ４６はそれぞれ、上記学習装置１の制御部１１〜ドライブ１６それぞれと同様に構成されてよい。
【００６９】
すなわち、制御部４１は、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部４２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部４２は、検査プログラム４２１、第２学習結果データ３２５等の各種情報を記憶する。
【００７０】
検査プログラム４２１は、推定器生成装置３により構築された学習済みの推定器を利用して、対象画像に写る製品Ｒの良否を判定する後述する情報処理（図１７）を検査装置４に実行させるためのプログラムである。検査プログラム４２１は、当該情報処理の一連の命令を含む。詳細は後述する。
【００７１】
通信インタフェース４３は、例えば、有線ＬＡＮモジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。検査装置４は、この通信インタフェース４３を利用することで、ネットワークを介したデータ通信を他の情報処理装置（例えば、推定器生成装置３）と行うことができる。
【００７２】
入力装置４４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置４５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置４４及び出力装置４５を利用することで、検査装置４を操作することができる。
【００７３】
ドライブ４６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９４に記憶されたプログラムを読み込むためのドライブ装置である。上記検査プログラム４２１及び第２学習結果データ３２５のうちの少なくともいずれかは、記憶媒体９４に記憶されていてもよい。また、検査装置４は、記憶媒体９４から、上記検査プログラム４２１及び第２学習結果データ３２５のうちの少なくともいずれかを取得してもよい。
【００７４】
外部インタフェース４７は、例えば、ＵＳＢ（Universal Serial Bus）ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース４７の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、検査装置４は、外部インタフェース４７を介して、カメラＣＡに接続される。
【００７５】
カメラＣＡは、製品Ｒを写した対象画像を取得するのに利用される。カメラＣＡの種類及び配置場所は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。カメラＣＡには、例えば、デジタルカメラ、ビデオカメラ等の公知のカメラが利用されてよい。また、カメラＣＡは、製品Ｒが搬送される製造ラインの近傍に配置されてよい。なお、カメラＣＡが通信インタフェースを備える場合、検査装置４は、外部インタフェース４７ではなく、通信インタフェース４３を介して、カメラＣＡに接続されてもよい。
【００７６】
なお、検査装置４の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部４１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＤＳＰ等で構成されてよい。記憶部４２は、制御部４１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース４３、入力装置４４、出力装置４５、ドライブ４６及び外部インタフェース４７の少なくともいずれかは省略されてもよい。検査装置４は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、検査装置４は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のデスクトップＰＣ、ノートＰＣ、タブレットＰＣ、スマートフォンを含む携帯電話等が用いられてよい。
【００７７】
［ソフトウェア構成］
＜学習装置＞
次に、図６を用いて、本実施形態に係る学習装置１のソフトウェア構成の一例について説明する。図６は、本実施形態に係る学習装置１のソフトウェア構成の一例を模式的に例示する。
【００７８】
学習装置１の制御部１１は、記憶部１２に記憶された学習プログラム１２１をＲＡＭに展開する。そして、制御部１１は、ＲＡＭに展開された学習プログラム１２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図６に示されるとおり、本実施形態に係る学習装置１は、画像取得部１１１、画像分割部１１２、ラベル付与部１１３、学習処理部１１４、及び保存処理部１１５をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、学習装置１の各ソフトウェアモジュールは、制御部１１（ＣＰＵ）により実現される。
【００７９】
画像取得部１１１は、外観検査の対象となる製品Ｒを写した学習画像６０を取得する。画像分割部１１２は、取得した学習画像６０を複数のパッチ画像６１に分割する。図６の例では、画像分割部１１２は、Ｗ×Ｈのサイズを有する学習画像６０をｗ×ｈのパッチサイズを有するパッチ画像６１に分割している。学習画像６０のサイズ（Ｗ×Ｈ）に対する各パッチ画像６１のパッチサイズ（ｗ×ｈ）は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。本実施形態では、後述する情報処理（図１２）により、学習画像６０の複雑度に基づいて、各パッチ画像６１のパッチサイズを決定する。
【００８０】
ラベル付与部１１３は、学習画像６０内における各パッチ画像６１の位置に応じて、複数のラベル６２のうちのいずれかのラベル６２を各パッチ画像６１に関連付ける。学習処理部１１４は、機械学習を行うことで、各パッチ画像６１に関連付けられたラベル６２から各パッチ画像６１に対応する画像を生成するように訓練された生成器５０を構築する。保存処理部１１５は、構築された学習済みの生成器５０に関する情報を所定の記憶領域に保存する。
【００８１】
（学習ネットワーク）
次に、図７Ａ及び図７Ｂを更に用いて、本実施形態に係る生成器５０を含む学習ネットワーク５００の構成の一例について説明する。各図に示されるとおり、本実施形態では、生成器５０は判別器５２に接続されており、生成器５０及び判別器５２により学習ネットワーク５００が構成されている。図７Ａは、この学習ネットワーク５００のうち判別器５２を訓練する第１訓練ステップの過程の一例を模式的に例示する。一方、図７Ｂは、生成器５０を訓練する第２訓練ステップの過程の一例を模式的に例示する。
【００８２】
本実施形態に係る生成器５０は、いわゆる深層学習に用いられる多層構造のニューラルネットワークにより構成されている。具体的に、生成器５０は、入力層５０１、中間層（隠れ層）５０２、及び出力層５０３を備えている。ただし、生成器５０の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、生成器５０は、２層以上の中間層５０２を備えてもよい。
【００８３】
各層５０１〜５０３に含まれるニューロン（ノード）の数は、実施の形態に応じて適宜設定されてよい。隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。図７Ａ及び図７Ｂの例では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層５０１〜５０３に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算処理に利用される生成器５０のパラメータの一例である。
【００８４】
同様に、本実施形態に係る判別器５２も、いわゆる深層学習に用いられる多層構造のニューラルネットワークにより構成されている。具体的に、判別器５２は、入力層５２１、中間層（隠れ層）５２２、及び出力層５２３を備えている。ただし、判別器５２の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、判別器５２は、２層以上の中間層５２２を備えてもよい。判別器５２の構成は、生成器５０と異なっていてよい。
【００８５】
各層５２１〜５２３に含まれるニューロン（ノード）の数は、実施の形態に応じて適宜設定されてよい。隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。図７Ａ及び図７Ｂの例では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層５２１〜５２３に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算処理に利用される判別器５２のパラメータの一例である。
【００８６】
学習処理部１１４は、この学習ネットワーク５００の機械学習を実施する。この機械学習を実施することは、判別器５２を訓練する第１訓練ステップ及び生成器５０を訓練する第２訓練ステップを交互に行うことを含む。第１訓練ステップでは、学習処理部１１４は、判別器５２に入力された入力画像が、生成器５０により生成された画像であるか学習画像６０から分割された各パッチ画像６１であるかを判別するように判別器５２を訓練する。つまり、判別器５２は、与えられた入力画像が学習データ（学習画像６０）由来か生成器５０由来かを判別するように訓練される。第２訓練ステップでは、学習処理部１１４は、判別器５２による判別が誤るような画像を生成するように生成器５０を訓練する。なお、図７Ａ及び図７Ｂの例では、学習データ由来であることを「真」と表現し、生成器５０由来であることを「偽」と表現している。ただし、各由来を表現する方法は、このような例に限定されなくてよく、実施の形態に応じて適宜選択されてよい。
【００８７】
具体的に、図７Ａに示されるとおり、第１訓練ステップでは、学習処理部１１４は、所定の確率分布からノイズを抽出し、抽出したノイズと各ラベル６２とを組み合わせて、複数の第１データセットを生成する。続いて、学習処理部１１４は、各第１データセット（各ラベル６２及びノイズ）を生成器５０の入力層５０１に入力し、生成器５０の演算処理を実行する。これにより、学習処理部１１４は、各ラベル６２から画像を生成した結果に対応する出力を出力層５０３から取得する。学習処理部１１４は、生成された各画像と各ラベル６２とを組み合わせることで、複数の第２データセットを生成する。また、学習処理部１１４は、各パッチ画像６１と対応する各ラベル６２とを組み合わせることで、複数の第３データセットを生成する。
【００８８】
次に、学習処理部１１４は、各第２データセット（生成器５０の生成した各画像及び各ラベル６２）を判別器５２の入力層５２１に入力し、判別器５２の演算処理を実行する。これにより、学習処理部１１４は、入力画像が生成器５０由来か学習画像６０由来かを判別した結果に対応する出力値を出力層５２３から取得する。この場面では、入力画像は生成器５０の生成した各画像であるため、判別器５２は、「偽」と判別するのが正解である。学習処理部１１４は、各第２データセットについて、出力層５２３から得られる出力値とこの正解との誤差を算出する。
【００８９】
同様に、学習処理部１１４は、各第３データセット（各パッチ画像６１及び各ラベル６２）を判別器５２の入力層５２１に入力し、判別器５２の演算処理を実行する。これにより、学習処理部１１４は、入力画像が生成器５０由来か学習画像６０由来かを判別した結果に対応する出力値を出力層５２３から取得する。この場面では、入力画像は各パッチ画像６１であるため、判別器５２は、「真」と判別するのが正解である。学習処理部１１４は、各第３データセットについて、出力層５２３から得られる出力値とこの正解との誤差を算出する。
【００９０】
そして、学習処理部１１４は、算出される誤差の和が小さくなるように、判別器５２のパラメータの値を調節する。出力層５２３から得られる出力値と真偽の正解との誤差の和が閾値以下になるまで、学習処理部１１４は、上記一連の処理により、判別器５２のパラメータの値の調節を繰り返す。これにより、第１訓練ステップでは、学習処理部１１４は、生成器５０により生成された画像であるか学習画像６０から分割された各パッチ画像６１であるかを判別するように判別器５２を訓練する。
【００９１】
一方、図７Ｂに示されるとおり、第２訓練ステップでは、学習処理部１１４は、所定の確率分布からノイズを抽出し、抽出したノイズと各ラベル６２とを組み合わせて、複数のデータセットを生成する。各データセットは、上記第１データセットと同じでもよいし、異なっていてもよい。続いて、学習処理部１１４は、各データセット（各ラベル６２及びノイズ）を生成器５０の入力層５０１に入力し、生成器５０の演算処理を実行する。これにより、学習処理部１１４は、各ラベル６２から画像を生成した結果に対応する出力を出力層５０３から取得する。
【００９２】
次に、学習処理部１１４は、生成された各画像及び対応する各ラベル６２の組み合わせを判別器５２の入力層５２１に入力し、判別器５２の演算処理を実行する。これにより、学習処理部１１４は、入力画像が生成器５０由来か学習画像６０由来かを判別した結果に対応する出力値を出力層５２３から取得する。この生成器５０の訓練では、判別器５２による判別の結果が誤らせることが正解である。つまり、出力層５２３から得られる出力値が「真」に対応することが正解である。学習処理部１１４は、各データセットについて、一連の処理により出力層５２３から得られる出力値とこの正解（つまり、「真」）との誤差を算出する。
【００９３】
そして、学習処理部１１４は、算出される誤差の和が小さくなるように、生成器５０のパラメータの値を調節する。各データセットについて、一連の処理により出力層５２３から得られる出力値と「真」との誤差の和が閾値以下になるまで、学習処理部１１４は、上記一連の処理により、生成器５０のパラメータの値の調節を繰り返す。これにより、第２訓練ステップでは、学習処理部１１４は、判別器５２による判別が誤るような画像を各ラベル６２から生成するように生成器５０を訓練する。
【００９４】
学習処理部１１４は、上記第１訓練ステップ及び第２訓練ステップを交互に実施することで、判別器５２及び生成器５０の精度を交互に高めていく。これにより、生成器５０は、学習画像６０から分割された各パッチ画像６１に対応する画像を適切に生成する能力を習得することができる。
【００９５】
この機械学習が完了した後、保存処理部１１５は、構築された生成器５０の構成（例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、及び演算パラメータ（例えば、各ニューロン間の結合の重み、各ニューロンの閾値）を示す第１学習結果データ１２５を生成する。そして、保存処理部１１５は、生成した第１学習結果データ１２５を所定の記憶領域に保存する。
【００９６】
＜画像生成装置＞
次に、図８を用いて、本実施形態に係る画像生成装置２のソフトウェア構成の一例について説明する。図８は、本実施形態に係る画像生成装置２のソフトウェア構成の一例を模式的に例示する。
【００９７】
画像生成装置２の制御部２１は、記憶部２２に記憶された画像生成プログラム２２１をＲＡＭに展開する。そして、制御部２１は、ＲＡＭに展開された画像生成プログラム２２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図８に示されるとおり、本実施形態に係る画像生成装置２は、生成部２１１、結合部２１２、及び画像保存部２１３をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、画像生成装置２の各ソフトウェアモジュールも、上記学習装置１と同様に、制御部２１（ＣＰＵ）により実現される。
【００９８】
生成部２１１は、第１学習結果データ１２５を保持することで、学習装置１により構築された学習済みの生成器５０を含んでいる。生成部２１１は、学習装置１により構築された学習済みの生成器５０を利用して、複数のラベル６２それぞれから複数の画像６７それぞれを生成する。本実施形態では、生成部２１１は、第１学習結果データ１２５を参照して、学習済みの生成器５０の設定を行う。そして、生成部２１１は、所定の確率分布からノイズを取得し、取得したノイズ及び各ラベル６２を生成器５０の入力層５０１に入力して、生成器５０の演算処理を実行する。これにより、生成部２１１は、出力層５０３からの出力として、各ラベル６２から生成された各画像６７を取得する。結合部２１２は、生成された各画像６７を、各ラベル６２に応じた位置に配置した後に結合することで、結合画像６９を生成する。画像保存部２１３は、生成された結合画像６９を所定の記憶領域に保存する。
【００９９】
＜推定器生成装置＞
次に、図９を用いて、本実施形態に係る推定器生成装置３のソフトウェア構成の一例について説明する。図９は、本実施形態に係る推定器生成装置３のソフトウェア構成の一例を模式的に例示する。
【０１００】
推定器生成装置３の制御部３１は、記憶部３２に記憶された推定器生成プログラム３２１をＲＡＭに展開する。そして、制御部３１は、ＲＡＭに展開された推定器生成プログラム３２１に含まれる命令をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図９に示されるとおり、本実施形態に係る推定器生成装置３は、学習データ取得部３１１、学習処理部３１２、及び保存処理部３１３をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、推定器生成装置３の各ソフトウェアモジュールも、上記学習装置１と同様に、制御部３１（ＣＰＵ）により実現される。
【０１０１】
学習データ取得部３１１は、製品を写したサンプル画像３２２１、及び正解データ３２２２の組み合わせによりそれぞれ構成された複数の学習データセット３２２を取得する。正解データ３２２２は、対応するサンプル画像３２２１に写る製品Ｒの良否を判定した結果（すなわち、正解）を示す。サンプル画像３２２１は、機械学習の入力データ（訓練データ）として利用され、正解データ３２２２は、教師データとして利用される。
【０１０２】
ここで、サンプル画像３２２１には、上記画像生成装置２により生成された結合画像６９が利用されてよい。すなわち、少なくとも一部の学習データセット３２２のサンプル画像３２２１は、上記結合画像６９であってよい。また、学習データ取得部３１１は、サンプル画像３２２１を学習画像６０として学習装置１に送信し、サンプル画像３２２１に対応する画像を生成するための生成器５０を構築させてよい。そして、学習データ取得部３１１は、構築された生成器５０を画像生成装置２に利用させて、サンプル画像３２２１に対応する複数の結合画像６９を生成させてよい。学習データ取得部３１１は、生成された複数の結合画像６９をサンプル画像３２２１として受信することで、機械学習に利用する学習データセット３２２の件数を増やすことができる。
【０１０３】
学習処理部３１２は、取得した各学習データセット３２２を利用した機械学習を実施することで、与えられた画像に写る製品Ｒの良否を判定する能力を習得した学習済みの推定器７０を構築する。換言すると、学習処理部３１２は、各学習データセット３２２について、サンプル画像３２２１を入力すると、正解データ３２２２と一致する出力値を出力するように訓練された推定器７０を構築する。保存処理部３１３は、構築された学習済みの推定器７０に関する情報を所定の記憶領域に保存する。
【０１０４】
なお、学習装置１及び推定器生成装置３の間の関係において、上記学習処理部１１４及び保存処理部１１５はそれぞれ、第１学習処理部及び第１保存処理部と称されてよい。これに応じて、学習処理部３１２及び保存処理部３１３はそれぞれ、第２学習処理部及び第２保存処理部と称されてよい。
【０１０５】
（推定器）
次に、本実施形態に係る推定器７０の構成の一例について説明する。図９に示されるとおり、本実施形態に係る推定器７０は、上記生成器５０と同様に、いわゆる深層学習に用いられる多層構造のニューラルネットワークにより構成されている。具体的に、推定器７０は、入力層７０１、中間層（隠れ層）７０２、及び出力層７０３を備えている。ただし、推定器７０の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、推定器７０は、２層以上の中間層７０２を備えてもよい。推定器７０の構成は、生成器５０及び判別器５２と異なっていてよい。
【０１０６】
各層７０１〜７０３に含まれるニューロン（ノード）の数は、実施の形態に応じて適宜設定されてよい。隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。図９の例では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層７０１〜７０３に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算処理に利用される推定器７０のパラメータの一例である。
【０１０７】
学習処理部３１２は、各学習データセット３２２について、サンプル画像３２２１を推定器７０の入力層７０１に入力し、推定器７０の演算処理を実行する。この演算処理の結果、学習処理部３１２は、サンプル画像３２２１に写る製品Ｒの良否を判定した結果に対応する出力値を出力層７０３から取得する。続いて、学習処理部３１２は、取得した出力値と正解データ３２２２との誤差を算出する。そして、学習処理部３１２は、各学習データセット３２２について、算出される誤差の和が小さくなるように、推定器７０のパラメータの値を調節する。出力層７０３から得られる出力値と正解データ３２２２との誤差の和が閾値以下になるまで、学習処理部３１２は、上記一連の処理による推定器７０のパラメータの値の調節を繰り返す。これにより、学習処理部３１２は、各学習データセット３２２について、サンプル画像３２２１を入力層７０１に入力すると、入力したサンプル画像３２２１に関連付けられた正解データ３２２２と一致する出力値を出力層７０３から出力するように訓練された推定器７０を構築することができる。
【０１０８】
この機械学習の処理が完了した後、保存処理部３１３は、構築された学習済みの推定器７０の構成（例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、及び演算パラメータ（例えば、各ニューロン間の結合の重み、各ニューロンの閾値）を示す第２学習結果データ３２５を生成する。そして、保存処理部３１３は、生成した第２学習結果データ３２５を所定の記憶領域に保存する。
【０１０９】
＜検査装置＞
次に、図１０を用いて、本実施形態に係る検査装置４のソフトウェア構成の一例について説明する。図１０は、本実施形態に係る検査装置４のソフトウェア構成の一例を模式的に例示する。
【０１１０】
検査装置４の制御部４１は、記憶部４２に記憶された検査プログラム４２１をＲＡＭに展開する。そして、制御部４１は、ＲＡＭに展開された検査プログラム４２１に含まれる命令をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図１０に示されるとおり、本実施形態に係る検査装置４は、対象データ取得部４１１、良否判定部４１２、及び出力部４１３をソフトウェアモジュールとして備えるコンピュータとして構成される。本実施形態では、検査装置４の各ソフトウェアモジュールも、上記学習装置１と同様に、制御部４１（ＣＰＵ）により実現される。
【０１１１】
対象データ取得部４１１は、外観検査の対象となる製品Ｒの写る対象画像４２２を取得する。本実施形態では、対象データ取得部４１１は、カメラＣＡにより製品Ｒを撮影することで、対象画像４２２を取得する。良否判定部４１２は、第２学習結果データ３２５を保持することで、推定器生成装置３により構築されたが学習済みの推定器７０を含んでいる。良否判定部４１２は、学習済みの推定器７０を利用して、対象画像４２２に写る製品Ｒの良否を判定する。
【０１１２】
具体的には、良否判定部４１２は、第２学習結果データ３２５を参照して、学習済みの推定器７０の設定を行う。次に、良否判定部４１２は、取得した対象画像４２２を推定器７０の入力層７０１に入力し、推定器７０の演算処理を実行する。これにより、良否判定部４１２は、対象画像４２２に写る製品Ｒの良否を判定した結果に対応する出力値を推定器７０の出力層７０３から取得する。本実施形態では、この出力値を得ることが、製品Ｒの良否を判定することに対応する。出力部４１３は、製品Ｒの良否を判定した結果に関する情報を出力する。
【０１１３】
＜その他＞
学習装置１、画像生成装置２、推定器生成装置３及び検査装置４の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、学習装置１、画像生成装置２、推定器生成装置３及び検査装置４の各ソフトウェアモジュールがいずれも汎用のＣＰＵによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。また、学習装置１、画像生成装置２、推定器生成装置３及び検査装置４それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【０１１４】
§３  動作例
［学習装置］
次に、図１１を用いて、本実施形態に係る学習装置１の動作例について説明する。図１１は、本実施形態に係る学習装置１の処理手順の一例を示す。以下で説明する処理手順は、本発明の「学習方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１１５】
（ステップＳ１０１）
ステップＳ１０１では、制御部１１は、画像取得部１１１として動作し、外観検査の対象となる製品Ｒを写した学習画像６０を取得する。
【０１１６】
学習画像６０を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、カメラ及び製品Ｒを用意し、欠陥のある又は欠陥のない製品Ｒをカメラにより撮影する。これにより、学習画像６０を生成することができる。この学習画像６０の生成は、コンピュータの動作により自動的に行われてもよいし、オペレータの操作により手動的に行われてもよい。また、この学習画像６０を生成する情報処理は、学習装置１において実行されてもよいし、学習装置１以外の他のコンピュータにより行われてもよい。
【０１１７】
学習画像６０を学習装置１が生成する場合、制御部１１は、自動的又はオペレータの操作により手動的に上記情報処理を実行することで、１又は複数の学習画像６０を取得する。一方、学習画像６０を他のコンピュータが生成する場合、制御部１１は、例えば、ネットワーク、記憶媒体９１等を介して、他のコンピュータにより生成された１又は複数の学習画像６０を取得する。この場合、制御部１１は、推定器生成装置３又は他のコンピュータからサンプル画像３２２１を学習画像６０として取得してもよい。
【０１１８】
取得する学習画像６０の件数は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。１又は複数の学習画像６０を取得すると、制御部１１は、次のステップＳ１０２に処理を進める。
【０１１９】
（ステップＳ１０２）
ステップＳ１０２では、制御部１１は、画像分割部１１２として動作し、取得した学習画像６０を複数のパッチ画像６１に分割する。具体的には、制御部１１は、パッチサイズを適宜決定し、決定したパッチサイズで学習画像６０を分割する。これにより、制御部１１は、それぞれパッチサイズを有する複数のパッチ画像６１を学習画像６０から得ることができる。
【０１２０】
パッチサイズを決定する方法は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、パッチサイズは、指定値、設定値等により固定されていてもよい。ただし、パッチサイズが固定されていると、生成に適したパッチサイズの各パッチ画像６１に学習画像６０を分割することができない可能性がある。そこで、本実施形態では、パッチ分割の好ましい形態として、制御部１１は、以下の図１２に示す方法により、パッチサイズを決定し、決定したパッチサイズで学習画像６０を分割する。
【０１２１】
図１２は、本実施形態に係る学習装置１によるパッチ分割の処理手順の一例を例示する。本実施形態に係るステップＳ１０２は、以下のステップＳ２０１〜Ｓ２０３を含む。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１２２】
（ステップＳ２０１）
ステップＳ２０１では、制御部１１は、学習画像６０の複雑度を計算する。複雑度は、学習画像６０の複雑さを示す指標である。複雑度は、適宜導出されてよい。本実施形態では、制御部１１は、情報エントロピー（Ｅ）、境界率（Ｒ）、コントラスト（ＣＴ）、相関（ＣＬ）、及びエネルギー（ＥＮ）の５つの指標を用いて、学習画像６０の複雑度を導出する。ただし、複雑度の指標は、これらの例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、学習画像６０の複雑度の導出において、これら５つの指標のうちの少なくともいずれかは省略されてよい。
【０１２３】
情報エントロピー（Ｅ）は、学習画像６０の有する情報量の期待値を示す。制御部１１は、以下の式１により、情報エントロピー（Ｅ）を算出することができる。境界率（Ｒ）は、学習画像６０のピクセル総数に対する境界点の割合を示す。境界点は、異なる画像領域の境界に属する点である。例えば、ソーベル（Sobel）法、キャニー（Canny）法、プレウィット（Prewitt）法等により検出されたエッジを境界点として利用することができる。制御部１１は、以下の式２により、境界率（Ｒ）を算出することができる。コントラスト（ＣＴは、あるピクセルとその近傍のピクセルとの間の差分の程度を示す。コントラスト（ＣＴ）は、「分散」又は「慣性」とも称されてよい。制御部１１は、以下の式３により、コントラスト（ＣＴ）を算出することができる。相関（ＣＬ）は、あるピクセルとその近傍のピクセルとの間に存在する関係の程度を示す。制御部１１は、以下の式４により、相関（ＣＬ）を算出することができる。エネルギー（ＥＮ）は、グレーレベルの同時生起行列（Gray-level Co-occurrence Matrix：ＧＬＣＭ）の要素の二乗和を示す。エネルギー（ＥＮ）は、「均一性」又は「角度２次モーメント」と称されてもよい。制御部１１は、以下の式５により、エネルギー（ＥＮ）を算出することができる。グレーレベルの同時生起行列は、グレーレベル（グレースケール強度）値ｉのピクセルが値ｊのピクセルに指定方向に隣接して出現する頻度を導出する。上記境界率（Ｒ）、コントラスト（ＣＴ）、相関（ＣＬ）、及びエネルギー（ＥＮ）の４つの指標は、このグレースケールの同時生起行列から導出される。制御部１１は、以下の式６により、これら５つの指標から複雑度（ＣＰ）を算出する。
【０１２４】
【数１】
2020064364.tif 000003
【数２】
2020064364.tif 000004
【数３】
2020064364.tif 000005
【数４】
2020064364.tif 000006
【数５】
2020064364.tif 000007
【数６】
2020064364.tif 000008
ここで、ｋは、学習画像６０内に存在する画素値の種類数を示す。ｎiは、ｉ番目の種類の画素数を示す。Ｎは、学習画像６０内に存在する画素数を示す。Ｐｅは、境界点の数を示す。Ｗは、学習画像６０の横方向の画素数を示す。Ｈは、学習画像６０の縦方向の画素数を示す。ＷとＨとの積によりＮを算出することができる。ｐ（ｉ，ｊ）は、同時生起行列の要素を示す。ｕi、ｕj、ａi、及びａjはそれぞれ、以下の式７〜式１０に示される。
【０１２５】
【数７】
2020064364.tif 000009
【数８】
2020064364.tif 000010
【数９】
2020064364.tif 000011
【数１０】
2020064364.tif 000012
【０１２６】
なお、複数の学習画像６０に対して共通のパッチサイズを決定する場合、制御部１１は、複数の学習画像６０を平均化することで、平均化された学習画像（平均画像）６０を取得する。そして、制御部１１は、上記方法により、平均化された学習画像６０の複雑度を算出する。学習画像６０の複雑度を算出すると、制御部１１は、次のステップＳ２０２に処理を進める。
【０１２７】
（ステップＳ２０２）
ステップＳ２０２では、制御部１１は、算出した複雑度に応じて、パッチサイズを決定する。本実施形態では、制御部１１は、複雑度が高いほどパッチサイズが小さくなり、複雑度が低いほどパッチサイズが大きくなるように、パッチサイズを決定する。例えば、３２×３２、６４×６４、１２８×１２８、２５６×２５６等のように複数の段階でパッチサイズが用意されていてもよい。これに応じて、パッチサイズの各段階に対応する数値範囲が複雑度に対して設定されていてもよい。各段階のパッチサイズは、学習画像６０のサイズ及び生成するパッチ画像６１の数に応じて適宜設定されてよい。例えば、以下の表１のとおり、パッチサイズの各段階に対して複雑度の数値範囲が設定されていてもよい。
【０１２８】
【表１】
2020064364.tif 000013
この場合、制御部１１は、算出した複雑度がいずれの数値範囲に属するかを判定してよい。そして、制御部１１は、算出した複雑度の属する数値範囲に対応して、パッチサイズを決定してもよい。パッチサイズを決定すると、制御部１１は、次のステップＳ２０３に処理を進める。
【０１２９】
（ステップＳ２０３）
ステップＳ２０３では、制御部１１は、決定したパッチサイズをそれぞれ有する複数のパッチ画像６１に学習画像６０を分割する。例えば、学習画像６０のサイズが１２８０×１０２４であり、上記ステップＳ２０２においてパッチサイズを２５６×２５６に決定した場合、学習画像６０は、２０枚のパッチ画像６１に分割される。ステップＳ１０１において、複数の学習画像６０を取得している場合、制御部１１は、決定したパッチサイズで各学習画像６０を分割する。学習画像６０の分割が完了すると、制御部１１は、パッチ分割の処理を終了し、次のステップＳ１０３に処理を進める。
【０１３０】
（ステップＳ１０３）
図１１に戻り、ステップＳ１０３では、制御部１１は、ラベル付与部１１３として動作し、学習画像６０内における各パッチ画像６１の位置に応じて、複数のラベル６２のうちのいずれかのラベル６２を各パッチ画像６１に関連付ける。各ラベル６２は、学習画像６０内における各パッチ画像６１の位置を示す。
【０１３１】
各パッチ画像６１と各ラベル６２との対応関係は、実施の形態に応じて適宜決定されてよい。制御部１１は、各パッチ画像６１に異なるラベル６２を付与してもよい。ただし、この場合には、ラベル６２の種類数が多くなってしまい、これに応じて、生成器５０の構成が複雑化してしまう可能性がある。本実施形態では、学習画像６０は、外観検査の対象となる製品Ｒを写した画像であり、その背景部分に対応する各パッチ画像６１は一致している（すなわち、差が無い）可能性が高い。一致している各パッチ画像６１は同じラベル６２に統合すれば、ラベル６２の種類数を低減することができ、これによって、生成器５０の構成を更に単純化することが可能である。そこで、本実施形態では、ラベリングの好ましい形態として、制御部１１は、以下の図１３に示す方法により、各パッチ画像６１と各ラベル６２との対応関係を決定する。
【０１３２】
図１３は、本実施形態に係る学習装置１によるラベリングの処理手順の一例を例示する。本実施形態に係るステップＳ１０３は、以下のステップＳ３０１〜３０５を含む。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１３３】
（ステップＳ３０１）
ステップＳ３０１では、制御部１１は、各パッチ画像６１の複雑度を算出する。各パッチ画像６１の複雑度を算出する方法は、上記ステップＳ２０１と同様でよい。ただし、学習画像６０の複雑度を算出する方法と各パッチ画像６１の複雑度を算出する方法とは必ずしも一致していなくてもよい。制御部１１は、例えば、学習画像６０の複雑度を上記５つの指標から導出するのに対して、各パッチ画像６１の複雑度の導出では上記５つの指標のうちの少なくともいずれかを省略してもよい。これにより、学習画像６０の複雑度を算出する方法と各パッチ画像６１の複雑度を算出する方法とは異なっていてもよい。各パッチ画像６１の複雑度を算出すると、制御部１１は、次のステップＳ３０２に処理を進める。
【０１３４】
（ステップＳ３０２〜Ｓ３０４）
ステップＳ３０２〜Ｓ３０４では、制御部１１は、算出した複雑度に基づいて、複数のパッチ画像６１のうちの互いに類似する２つ以上のパッチ画像６１を同じラベル６２に統合する。
【０１３５】
具体的に、ステップＳ３０２では、制御部１１は、算出した複雑度に基づいて、互いに類似する２つ以上のパッチ画像６１が存在するか否かを判定する。類似する２つのパッチ画像６１の複雑度は互いに近似する。つまり、２つのパッチ画像６１の内容がほぼ同一であれば、当該２つのパッチ画像６１の複雑度はほぼ同一となる。そこで、制御部１１は、２つのパッチ画像６１の複雑度の差分を算出し、算出された差分が閾値以下であるか否かを判定する。閾値は、実施の形態に応じて適宜設定されてよい。そして、算出された差分が閾値以下である場合、制御部１１は、対象の２つのパッチ画像６１は互いに類似していると判定する。一方、算出された差分が閾値以下ではない場合、制御部１１は、対象の２つのパッチ画像６１は類似していないと判定する。制御部１１は、全てのパッチ画像６１に対してこの判定処理を実行する。これにより、算出した複雑度に基づいて、互いに類似する２つ以上のパッチ画像が存在するか否かを特定することができる。
【０１３６】
なお、複雑度は、上記各指標に基づいて画像の内容を表すものである。そのため、複雑度の差は比較的に小さいにも関わらず、２つのパッチ画像６１が互いに大きく相違してしまう可能性がある。そこで、ステップＳ３０２では、制御部１１は、対象の２つのパッチ画像６１が互いに類似するか否かを判定するための指標として、上記複雑度以外の他の指標を更に利用してもよい。上記複雑度に基づく判定及び他の指標に基づく判定の処理順序は実施の形態に応じて適宜決定されてよい。他の指標に基づく判定方法の一例として、例えば、モノクロヒストグラムに基づく判定方法が挙げられる。モノクロヒストグラムに基づく判定方法を採用する場合、制御部１１は、各パッチ画像６１のモノクロヒストグラムを生成する。モノクロヒストグラムは、画像内における各輝度の画素数、すなわち、画像の輝度の統計情報を示す。次に、制御部１１は、２つのパッチ画像６１のモノクロヒストグラムの差分を算出し、算出された差分が閾値以下であるか否かを判定する。閾値は、実施の形態に応じて適宜決定されてよい。複雑度の差分に対する閾値を第１閾値と称し、モノクロヒストグラムの差分に対する閾値を第２閾値と称してもよい。算出された複雑度の差分が第１閾値以下であり、かつ算出されたモノクロヒストグラムの差分が第２閾値以下である場合、制御部１１は、対象の２つのパッチ画像６１は互いに類似していると判定する。一方、そうではない場合、制御部１１は、対象の２つのパッチ画像６１は類似していないと判定する。制御部１１は、全てのパッチ画像６１に対してこれらの判定処理を実行する。このように、ステップＳ３０２では、制御部１１は、上記複雑度に基づく判定処理に加えて、他の指標に基づく判定処理を実行してもよい。
【０１３７】
ステップＳ３０３では、制御部１１は、ステップＳ３０２の判定結果に応じて、条件分岐を処理する。ステップＳ３０２において、互いに類似する２つ以上のパッチ画像６１が存在すると判定した場合には、制御部１１は、次のステップＳ３０４に処理を進める。一方、ステップＳ３０２において、互いに類似する２つ以上のパッチ画像６１は存在しないと判定した場合には、制御部１１は、ステップＳ３０４を省略し、次のステップＳ３０５に処理を進める。
【０１３８】
ステップＳ３０４では、制御部１１は、互いに類似する２つ以上のパッチ画像６１を統合する。つまり、制御部１１は、互いに類似する２つ以上のパッチ画像６１に同一のラベル６２が付与されるように設定する。互いに類似する２つ以上のパッチ画像６１の群は複数存在してもよい。この場合、制御部１１は、同一の群内における各パッチ画像６１には同一のラベル６２を付与するように設定するが、異なる群のパッチ画像６１同士には異なるラベル６２を付与するように設定する。パッチ画像６１の統合処理が完了すると、制御部１１は、次のステップＳ３０５に処理を進める。
【０１３９】
（ステップＳ３０５）
ステップＳ３０５では、制御部１１は、各パッチ画像６１にラベル６２を関連付ける（付与する）。この処理において、制御部１１は、ステップＳ３０４で統合した２つ以上のパッチ画像６１には同一のラベル６２を付与する。一方、制御部１１は、統合されていない異なるパッチ画像６１には異なるラベル６２を付与する。
【０１４０】
このラベリングの過程で、制御部１１は、各パッチ画像６１と各ラベル６２との対応関係を示すラベル情報６２１を生成する。制御部１１は、生成したラベル情報６２１を所定の記憶領域に保存する。ラベル情報６２１のデータ形式及び所定の記憶領域はそれぞれ、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。所定の記憶領域は、例えば、制御部１１内のＲＡＭ、記憶部１２、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、ＣＤ、ＤＶＤ等であってよく、制御部１１は、ドライブ１６を介して記憶メディアにラベル情報６２１を格納してもよい。外部記憶装置は、例えば、学習装置１に接続された外付けの記憶装置であってよい。この場合、制御部１１は、外付けの記憶装置にラベル情報６２１を格納してもよい。また、外部記憶装置は、例えば、ＮＡＳ（Network Attached Storage）等のデータサーバであってよい。この場合、制御部１１は、ネットワークを介してデータサーバにラベル情報６２１を格納してもよい。
【０１４１】
全てのパッチ画像６１にいずれかのラベル６２を付与し終えると、制御部１１は、本実施形態に係るラベリングの処理を終了し、次のステップＳ１０４に処理を進める。
【０１４２】
（ステップＳ１０４）
図１１に戻り、制御部１１は、学習処理部１１４として動作し、各パッチ画像６１及び各ラベル６２を利用して、生成器５０の機械学習を実施する。これにより、制御部１１は、各パッチ画像６１に関連付けられたラベル６２から各パッチ画像６１に対応する画像を生成するように訓練された生成器５０を構築する。本実施形態では、生成器５０の出力は判別器５２の入力に接続されており、生成器５０及び判別器５２により学習ネットワーク５００が構成されている。そこで、本実施形態では、制御部１１は、以下の図１４に示す方法により、学習ネットワーク５００の機械学習を実施する。
【０１４３】
図１４は、本実施形態に係る学習装置１による機械学習の処理手順の一例を例示する。本実施形態に係るステップＳ１０４は、以下のステップＳ４０１〜４０３を含む。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１４４】
ステップＳ４０１を実行する前に、制御部１１は、処理対象となる生成器５０及び判別器５２を用意する。用意する生成器５０及び判別器５２それぞれの構成、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部１１は、過去の機械学習を行うことで得られた学習結果データに基づいて、生成器５０及び判別器５２を用意してもよい。この前処理が完了すると、制御部１１は、次のステップＳ４０１から機械学習の処理を実行する。
【０１４５】
（ステップＳ４０１）
ステップＳ４０１では、制御部１１は、判別器５２の機械学習を実施することで、判別器５２に入力された入力画像が、生成器５０により生成された画像であるか学習画像６０から分割された各パッチ画像６１であるかを判別するように判別器５２を訓練する。ステップＳ４０１は、本発明の「第１訓練ステップ」の一例である。
【０１４６】
具体的に、制御部１１は、所定の確率分布からノイズ（潜在変数）を抽出し、抽出したノイズと各ラベル６２とを組み合わせて、複数の第１データセットを生成する。所定の確率分布は、例えば、ガウス分布、一様分布等であってよい。続いて、制御部１１は、各第１データセット（各ラベル６２及びノイズ）を生成器５０の入力層５０１に入力し、入力側から順に各層５０１〜５０３に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、各ラベル６２から画像を生成した結果に対応する出力を出力層５０３から取得する。制御部１１は、生成した各画像と各ラベル６２とを組み合わせることで、複数の第２データセットを生成する。また、各パッチ画像６１と対応する各ラベル６２とを組み合わせることで、複数の第３データセットを生成する。
【０１４７】
次に、制御部１１は、各第２データセット及び各第３データセットを入力データ（訓練データ）として利用し、各データセットに含まれる画像の由来を教師データ（正解データ）として利用して、判別器５２の学習処理を実行する。この学習処理には、確率的勾配降下法等が用いられてよい。
【０１４８】
例えば、制御部１１は、各第２データセット（生成器５０の生成した各画像及び各ラベル６２）を判別器５２の入力層５２１に入力し、入力側から順に各層５２１〜５２３に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、データセットに含まれる入力画像が生成器５０由来か学習画像６０由来かを判別した結果に対応する出力値を出力層５２３から取得する。この場面では、入力画像は生成器５０の生成した各画像であるため、判別器５２は、「偽」と判別するのが正解である。学習処理部１１４は、各第２データセットについて、出力層５２３から得られる出力値とこの正解との誤差を算出する。
【０１４９】
同様に、制御部１１は、各第３データセット（各パッチ画像６１及び各ラベル６２）を判別器５２の入力層５２１に入力し、入力側から順に各層５２１〜５２３に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、データセットに含まれる入力画像が生成器５０由来か学習画像６０由来かを判別した結果に対応する出力値を出力層５２３から取得する。この場面では、入力画像は各パッチ画像６１であるため、判別器５２は、「真」と判別するのが正解である。学習処理部１１４は、各第３データセットについて、出力層５２３から得られる出力値とこの正解との誤差を算出する。
【０１５０】
そして、制御部１１は、誤差逆伝播法（Back propagation）により、算出した出力値の誤差を用いて、判別器５２における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。制御部１１は、算出した各誤差に基づいて、判別器５２における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。制御部１１は、各データセットについて、出力層５２３から得られる出力値と入力画像の由来の正解との誤差の和が閾値以下になるまで、この一連の処理によるパラメータの値の調節を繰り返す。閾値は、実施の形態に応じて適宜設定されてよい。これにより、制御部１１は、各データセットについて、入力された入力画像が、生成器５０により生成された画像であるか学習画像６０から分割された各パッチ画像６１であるかを適切に判別可能に訓練された判別器５２を構築することができる。この判別器５２の機械学習が完了すると、制御部１１は、次のステップＳ４０２に処理を進める。
【０１５１】
（ステップＳ４０２）
ステップＳ４０２では、制御部１１は、生成器５０の機械学習を実施することで、判別器５２による判別が誤るような画像を生成するように生成器５０を訓練する。ステップＳ４０２は、本発明の「第２訓練ステップ」の一例である。
【０１５２】
具体的に、制御部１１は、所定の確率分布からノイズを抽出し、抽出したノイズと各ラベル６２とを組み合わせて、複数のデータセットを生成する。各データセットは、上記第１データセットと同じでもよいし、異なっていてもよい。続いて、制御部１１は、各データセット（各ラベル６２及びノイズ）を生成器５０の入力層５０１に入力し、入力側から順に各層５０１〜５０３に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、各ラベル６２から画像を生成した結果に対応する出力を出力層５０３から取得する。
【０１５３】
次に、制御部１１は、各データセットを入力データ（訓練データ）として利用し、判別器５２に判別を誤らせることを教師データ（正解データ）として利用して、生成器５０の学習処理を実行する。ステップＳ４０１と同様に、この学習処理には、確率的勾配降下法等が用いられてよい。
【０１５４】
例えば、制御部１１は、生成された各画像及び対応する各ラベル６２の組み合わせを判別器５２の入力層５２１に入力し、入力側から順に各層５２１〜５２３に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、入力画像が生成器５０由来か学習画像６０由来かを判別した結果に対応する出力値を出力層５２３から取得する。この生成器５０の訓練では、判別器５２による判別の結果が誤らせることが正解である。つまり、出力層５２３から得られる出力値が「真」に対応することが正解である。制御部１１は、各データセットについて、一連の処理により出力層５２３から得られる出力値とこの正解（つまり、「真」）との誤差を算出する。
【０１５５】
そして、制御部１１は、誤差逆伝播法により、算出した出力値の誤差を用いて、生成器５０における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。制御部１１は、算出した各誤差に基づいて、生成器５０における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。制御部１１は、各データセットについて、一連の処理により出力層５２３から得られる出力値と「真」との誤差の和が閾値以下になるまで、この一連の処理によるパラメータの値の調節を繰り返す。閾値は、実施の形態に応じて適宜設定されてよい。これにより、制御部１１は、各データセットについて、判別器５２による判別が誤るような画像を各ラベル６２から生成可能に訓練された生成器５０を構築することができる。この生成器５０の機械学習が完了すると、制御部１１は、次のステップＳ４０３に処理を進める。
【０１５６】
（ステップＳ４０３）
ステップＳ４０３では、制御部１１は、ステップＳ４０１及びＳ４０２の機械学習の処理を繰り返すか否かを判定する。機械学習の処理を繰り返す基準は、実施の形態に応じて適宜決定されてよい。例えば、ステップＳ４０１及びＳ４０２の機械学習を実施する回数が設定されていてもよい。この場合、制御部１１は、ステップＳ４０１及びＳ４０２の機械学習を実施した回数が設定回数に到達したか否かを判定する。ステップＳ４０１及びＳ４０２の実行回数が設定回数に到達していないと判定した場合には、制御部１１は、ステップＳ４０１に処理を戻す。一方、ステップＳ４０１及びＳ４０２の実行回数が設定回数に到達したと判定した場合には、制御部１１は、本実施形態に係る機械学習の処理を終了し、次のステップＳ１０５に処理を進める。
【０１５７】
このように、制御部１１は、ステップＳ４０１及びＳ４０１の処理を交互に実施することで、判別器５２及び生成器５０の精度を交互に高めていく。その結果、生成器５０は、学習画像６０から分割された各パッチ画像６１に対応する画像を適切に生成する能力を習得することができる。
【０１５８】
（ステップＳ１０５）
図１１に戻り、ステップＳ１０５では、制御部１１は、保存処理部１１５として動作し、構築された学習済みの生成器５０に関する情報を所定の記憶領域に保存する。本実施形態では、制御部１１は、ステップＳ１０４により構築された学習済みの生成器５０の構成及びパラメータを示す情報を第１学習結果データ１２５として生成する。第１学習結果データ１２５は、判別器５２の構成及びパラメータを示す情報を含んでもよいし、含んでいなくてもよい。そして、制御部１１は、生成した第１学習結果データ１２５を所定の記憶領域に保存する。所定の記憶領域は、上記ラベル情報６２１の保存先と同様に、例えば、制御部１１内のＲＡＭ、記憶部１２、外部記憶装置（例えば、ＮＡＳ等のデータサーバ）、記憶メディア又はこれらの組み合わせであってよい。これにより、制御部１１は、本動作例に係る処理を終了する。
【０１５９】
なお、学習済みの生成器５０を構築した後、制御部１１は、生成した第１学習結果データ１２５を任意のタイミングで画像生成装置２に転送してもよい。画像生成装置２は、学習装置１から転送を受け付けることで第１学習結果データ１２５を取得してもよいし、学習装置１又はデータサーバにアクセスすることで第１学習結果データ１２５を取得してもよい。第１学習結果データ１２５は、画像生成装置２に予め組み込まれてもよい。
【０１６０】
また、制御部１１は、上記ステップＳ１０１〜Ｓ１０５の処理を定期的に繰り返すことで、第１学習結果データ１２５を定期的に更新してもよい。この繰り返す際には、学習画像６０の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部１１は、更新した第１学習結果データ１２５を機械学習の実行毎に画像生成装置２に転送することで、画像生成装置２の保持する第１学習結果データ１２５を定期的に更新してもよい。
【０１６１】
［画像生成装置］
次に、図１５を用いて、本実施形態に係る画像生成装置２の動作例について説明する。図１５は、本実施形態に係る画像生成装置２の処理手順の一例を示す。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１６２】
（ステップＳ５０１）
ステップＳ５０１では、制御部２１は、生成部２１１として動作し、学習装置１により構築された学習済みの生成器５０を利用して、複数のラベル６２それぞれから複数の画像６７それぞれを生成する。
【０１６３】
本実施形態では、制御部２１は、第１学習結果データ１２５を参照して、学習済みの生成器５０の設定を行う。制御部２１は、ラベル情報６２１を参照して、各パッチ画像６１に付与したラベル６２を特定する。続いて、制御部２１は、所定の確率分布からノイズ（潜在変数）を取得する。所定の確率分布は、上記と同様に、例えば、ガウス分布、一様分布等であってよい。制御部２１は、取得ノイズ及び各ラベル６２を生成器５０の入力層５０１に入力して、入力側から順に各層５０１〜５０３に含まれる各ニューロンの発火判定を行う。これにより、出力層５０３からの出力として、各ラベル６２から生成された各画像６７を取得する。各ラベル６２に対して各画像６７を生成すると、制御部２１は、次のステップＳ５０２に処理を進める。
【０１６４】
（ステップＳ５０２）
ステップＳ５０２では、制御部２１は、結合部２１２として動作し、ラベル情報６２１を参照して、生成された各画像６７を、各ラベル６２に応じた位置に配置する。その後、制御部２１は、各ラベル６２に応じた位置に配置した各画像６７を結合する。これにより、制御部２１は、結合画像６９を生成する。結合画像６９は、学習画像６０に対応する。結合画像６９の生成が完了すると、制御部２１は、次のステップＳ５０３に処理を進める。
【０１６５】
（ステップＳ５０３）
ステップＳ５０３では、制御部２１は、画像保存部２１３として動作し、生成された結合画像６９を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部２１内のＲＡＭ、記憶部２２、外部記憶装置（例えば、ＮＡＳ等のデータサーバ）、記憶メディア又はこれらの組み合わせであってよい。これにより、制御部２１は、本動作例に係る処理を終了する。
【０１６６】
なお、制御部２１は、上記ステップＳ５０２及びＳ５０２を繰り返し実行することで、複数の結合画像６９を生成してもよい。生成する結合画像６９の数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。また、制御部２１は、生成した結合画像６９をサンプル画像３２２１として利用させるために、生成した結合画像６９を推定器生成装置３に転送してもよい。
【０１６７】
［推定器生成装置］
次に、図１６を用いて、本実施形態に係る推定器生成装置３の動作例について説明する。図１６は、本実施形態に係る推定器生成装置３の処理手順の一例を例示するフローチャートである。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１６８】
（ステップＳ７０１）
ステップＳ７０１では、制御部３１は、学習データ取得部３１１として動作し、製品を写したサンプル画像３２２１、及び正解データ３２２２の組み合わせによりそれぞれ構成された複数の学習データセット３２２を取得する。正解データ３２２２は、対応するサンプル画像３２２１に写る製品Ｒの良否を判定した結果（すなわち、正解）を示す。
【０１６９】
学習データセット３２２を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、カメラ及び製品Ｒを用意し、欠陥のある又は欠陥のない製品Ｒをカメラにより撮影する。これにより、サンプル画像３２２１を生成することができる。そして、サンプル画像３２２１に写る製品Ｒの良否を示す正解データ３２２２を適宜生成し、生成した正解データ３２２２を対応するサンプル画像３２２１に関連付ける。これにより、各学習データセット３２２を生成することができる。
【０１７０】
この学習データセット３２２の生成は、コンピュータの動作により自動的に行われてもよいし、オペレータの操作により手動的に行われてもよい。また、この学習データセット３２２を生成する情報処理は、推定器生成装置３において実行されてもよいし、推定器生成装置３以外の他のコンピュータにより行われてもよい。
【０１７１】
学習データセット３２２を推定器生成装置３が生成する場合、制御部３１は、自動的又はオペレータの操作により手動的に上記情報処理を実行することで、複数の学習データセット３２２を取得する。一方、学習データセット３２２を他のコンピュータが生成する場合、制御部３１は、例えば、ネットワーク、記憶媒体９３等を介して、他のコンピュータにより生成された複数の学習データセット３２２を取得する。一部の学習データセット３２２を推定器生成装置３が生成し、残りの学習データセット３２２を他のコンピュータが生成してもよい。
【０１７２】
ここで、取得される学習データセット３２２の少なくとも一部に含まれるサンプル画像３２２１は、画像生成装置２により生成された結合画像６９であってよい。制御部３１は、ネットワーク、記憶媒体９３等を介して、画像生成装置２により生成された結合画像６９をサンプル画像３２２１として取得してもよい。この結合画像６９（サンプル画像３２２１）を含む学習データセット３２２の生成は、画像生成装置２により行われてもよい。つまり、画像生成装置２は、上記他のコンピュータの一例である。
【０１７３】
なお、正解データ３２２２のデータ形式は、推定器７０の出力形式に応じて適宜決定されてよい。例えば、正解データ３２２２は、製品Ｒの良否を２値で示すように設定されてよい。また、例えば、正解データ３２２２は、製品Ｒが良品である（すなわち、欠陥が無い）確率又は製品Ｒに欠陥が存在する確率を連続値で示すように設定されてもよい。また、例えば、正解データ３２２２は、製品Ｒの良否又は欠陥の種別のインデックス（クラス）を示すように設定されてもよい。また、例えば、正解データ３２２２は、欠陥のある箇所等を示すように設定されてもよい。
【０１７４】
取得する学習データセット３２２の件数は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。複数の学習データセット３２２を取得すると、制御部３１は、次のステップＳ７０２に処理を進める。
【０１７５】
（ステップＳ７０２）
ステップＳ７０２では、制御部３１は、学習処理部３１２として動作し、複数の学習データセット３２２を利用して、推定器７０の機械学習を実施する。この機械学習では、制御部３１は、各学習データセット３２２について、サンプル画像３２２１を入力層７０１に入力すると、正解データ３２２２と一致する出力値を出力層７０３から出力するように推定器７０を訓練する。これにより、制御部３１は、製品Ｒの良否を判定する能力を習得した学習済みの推定器７０を構築する。
【０１７６】
この機械学習は、上記学習装置１による機械学習と同様に実行されてよい。すなわち、制御部３１は、処理対象となる推定器７０を用意する。用意する推定器７０の構成、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部３１は、過去の機械学習を行うことで得られた学習結果データに基づいて、推定器７０を用意してもよい。
【０１７７】
次に、制御部３１は、ステップＳ７０１で取得した各学習データセット３２２に含まれるサンプル画像３２２１を入力データ（訓練データ）として利用し、対応する正解データ３２２２を教師データとして利用して、推定器７０の学習処理を実行する。この学習処理には、確率的勾配降下法等が用いられてよい。
【０１７８】
例えば、第１のステップでは、制御部３１は、各学習データセット３２２について、サンプル画像３２２１を入力層７０１に入力し、入力側から順に各層７０１〜７０３に含まれる各ニューロンの発火判定を行う。これにより、制御部３１は、サンプル画像３２２１に写る製品Ｒの良否を判定した結果に対応する出力値を出力層７０３から取得する。第２のステップでは、制御部３１は、取得した出力値と正解データ３２２２との誤差を算出する。第３のステップでは、制御部３１は、誤差逆伝播法により、算出した出力値の誤差を用いて、推定器７０における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。第４のステップでは、制御部３１は、算出した各誤差に基づいて、推定器７０における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
【０１７９】
制御部３１は、上記第１〜第４のステップを繰り返すことで、各学習データセット３２２について、サンプル画像３２２１を入力すると、対応する正解データ３２２２と一致する出力値を出力するように、推定器７０のパラメータの値を調節する。換言すると、制御部３１は、各学習データセット３２２について、出力層７０３から得られる出力値と正解データ３２２２との誤差の和が閾値以下になるまで、上記第１〜第４のステップによる推定器７０のパラメータの値の調節を繰り返す。閾値は、実施の形態に応じて適宜設定されてよい。これにより、制御部３１は、各学習データセット３２２について、サンプル画像３２２１を入力層７０１に入力すると、正解データ３２２２と一致する出力値を出力層７０３から出力するように訓練された推定器７０を構築することができる。この推定器７０の機械学習が完了すると、制御部３１は、次のステップＳ７０３に処理を進める。
【０１８０】
（ステップＳ７０３）
ステップＳ７０３では、制御部３１は、保存処理部３１３として動作し、構築された学習済みの推定器７０に関する情報を所定の記憶領域に保存する。本実施形態では、制御部３１は、ステップＳ７０２により構築された学習済みの推定器７０の構成及びパラメータを示す情報を第２学習結果データ３２５として生成する。そして、制御部３１は、生成した第２学習結果データ３２５を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部３１内のＲＡＭ、記憶部３２、外部記憶装置（例えば、ＮＡＳ等のデータサーバ）、記憶メディア又はこれらの組み合わせであってよい。これにより、制御部３１は、本動作例に係る処理を終了する。
【０１８１】
なお、学習済みの推定器７０を構築した後、制御部３１は、生成した第２学習結果データ３２５を任意のタイミングで検査装置４に転送してもよい。検査装置４は、推定器生成装置３から転送を受け付けることで第２学習結果データ３２５を取得してもよいし、推定器生成装置３又はデータサーバにアクセスすることで第２学習結果データ３２５を取得してもよい。第２学習結果データ３２５は、検査装置４に予め組み込まれてもよい。
【０１８２】
また、制御部３１は、上記ステップＳ７０１〜７０３の処理を定期的に繰り返すことで、第２学習結果データ３２５を定期的に更新してもよい。この繰り返す際には、学習データセット３２２の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部３１は、更新した第２学習結果データ３２５を機械学習の実行毎に検査装置４に転送することで、検査装置４の保持する第２学習結果データ３２５を定期的に更新してもよい。
【０１８３】
更に、制御部３１は、評価用データセットを利用して、構築した推定器７０の判定性能を評価してもよい。評価用データセットは、上記各学習データセット３２２と同様に構成可能である。すなわち、評価用データセットは、製品Ｒの写るサンプル画像、及びサンプル画像に写る製品Ｒの良否を示す正解データの組み合わせにより構成されてよい。制御部３１は、後述するステップＳ９０２のとおり、推定器７０を利用して、評価用データセットのサンプル画像に写る製品Ｒの良否を判定する。制御部３１は、この判定結果と正解データにより示される正解とを照合することで、推定器７０の判定性能を評価することができる。
【０１８４】
この推定器７０の判定性能が所定の基準以下である（例えば、正答率が閾値以下である）場合には、制御部３１は、複数の学習データセット３２２から選択した１又は複数の学習データセット３２２に含まれる各サンプル画像３２２１を学習装置１に送信してもよい。次に、制御部３１は、送信した各サンプル画像３２２１に対応する画像を生成するための生成器５０を学習装置１に構築させてよい。更に、制御部３１は、学習装置１に学習済みの生成器５０を画像生成装置２に転送させ、学習済みの生成器５０を利用して結合画像６９を生成する処理を画像生成装置２に実行させてよい。
【０１８５】
これに応じて、画像生成装置２により生成された１又は複数の結合画像６９をサンプル画像３２２１として受信してもよい。そして、制御部３１は、受信した結合画像６９（サンプル画像３２２１）を含む学習データセット３２２を生成し、生成した学習データセット３２２を元の学習データ群に追加してもよい。これにより、制御部３１は、機械学習に利用する学習データセット３２２の件数を増やすことができる。制御部３１は、この新たな学習データ群を利用して、推定器７０の機械学習を再度実施してもよい。この一連の再学習の処理により、構築された学習済みの推定器７０の判定性能を高めることができる。
【０１８６】
［検査装置］
次に、図１７を用いて、本実施形態に係る検査装置４の動作例について説明する。図１７は、本実施形態に係る検査装置４の処理手順の一例を例示するフローチャートである。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１８７】
（ステップＳ９０１）
ステップＳ９０１では、制御部４１は、対象データ取得部４１１として動作し、外観検査の対象となる製品Ｒの写る対象画像４２２を取得する。本実施形態では、検査装置４は、外部インタフェース４７を介してカメラＣＡに接続している。そのため、制御部４１は、カメラＣＡから対象画像４２２を取得する。この対象画像４２２は、動画像データであってもよいし、静止画像データであってもよい。対象画像４２２を取得すると、制御部４１は、次のステップ９０２に処理を進める。
【０１８８】
ただし、対象画像４２２を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、検査装置４とは異なる他の情報処理装置が、カメラＣＡに接続されていてもよい。この場合、制御部４１は、他の情報処理装置を介して対象画像４２２を取得してもよい。
【０１８９】
（ステップＳ９０２）
ステップＳ９０２では、制御部４１は、良否判定部４１２として動作し、学習済みの推定器７０を利用して、対象画像４２２に写る製品Ｒの良否を判定する。
【０１９０】
具体的には、制御部４１は、第２学習結果データ３２５を参照して、学習済みの推定器７０の設定を行う。次に、制御部４１は、取得した対象画像４２２を推定器７０の入力層７０１に入力し、入力側から順に各層７０１〜７０３に含まれる各ニューロンの発火判定を行う。これにより、制御部４１は、対象画像４２２に写る製品Ｒの良否を判定した結果に対応する出力値を推定器７０の出力層７０３から取得する。
【０１９１】
これにより、制御部４１は、推定器７０の出力層７０３から取得した出力値に基づいて、対象画像４２２に写る製品Ｒの良否を判定する。なお、良否の判定は、推定器７０の出力形式に応じて適宜行われてよい。例えば、推定器７０から得られる出力値が製品Ｒの良否を２値で示す場合、制御部４１は、推定器７０から得られる出力値に応じて、製品Ｒの良否を特定することができる。また、例えば、推定器７０から得られる出力値が、製品Ｒが良品である確率又は製品Ｒに欠陥がある確率を連続値で示す場合、制御部４１は、推定器７０から得られる出力値と閾値とを比較することで、製品Ｒの良否を判定することができる。また、例えば、推定器７０から得られる出力値が欠陥のある箇所を示す場合、制御部４１は、推定器７０から得られる出力値に基づいて、対象画像４２２に写る製品Ｒの良否を判定することができると共に、欠陥が存在する場合にはその欠陥の箇所を特定することができる。
【０１９２】
また、例えば、推定器７０から得られる出力値が、製品Ｒの良否又は欠陥の種別のインデックスを示す場合、検査装置４は、推定器７０から得られる出力値と製品Ｒの良否又は欠陥の種別とを対応付けたテーブル形式等の参照情報（不図示）を記憶部４２に保持していてもよい。この場合、制御部４１は、この参照情報を参照することにより、推定器７０から得られた出力値に応じて、対象画像４２２に写る製品Ｒの良否を判定することができる。
【０１９３】
以上により、制御部４１は、推定器７０を利用して、対象画像４２２に写る製品Ｒの良否を判定することができる。製品Ｒの良否の判定が完了すると、制御部４１は、次のステップＳ９０３に処理を進める。
【０１９４】
（ステップＳ９０３）
ステップＳ９０３では、制御部４１は、出力部４１３として動作し、ステップＳ９０２により製品Ｒの良否を判定した結果を出力する。
【０１９５】
製品Ｒの良否を判定した結果の出力形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部４１は、製品Ｒの良否を判定した結果をそのまま出力装置４５に出力してもよい。また、ステップＳ９０２において、製品Ｒに欠陥があると判定した場合、制御部４１は、欠陥を発見したことを知らせるための警告を本ステップＳ９０３の出力処理として行ってもよい。また、制御部４１は、本ステップＳ９０３の出力処理として、製品Ｒの良否を判定した結果に応じた所定の制御処理を実行してもよい。具体例として、製品の搬送を行う製造ラインに検査装置４が接続されている場合、製品Ｒに欠陥があると判定したときに、制御部４１は、欠陥のある製品Ｒを欠陥のない製品とは異なる経路で搬送する指令を製造ラインに送信する処理を本ステップＳ９０３の出力処理として行ってもよい。
【０１９６】
製品Ｒの良否を判定した結果の出力処理が完了すると、制御部４１は、本動作例に係る処理を終了する。なお、制御部４１は、製造ライン上を搬送される製品ＲがカメラＣＡの撮影範囲に入る度に、ステップＳ９０１〜Ｓ９０３の一連の処理を実行してもよい。これにより、検査装置４は、製造ライン上を搬送される製品Ｒの外観検査を行うことができる。
【０１９７】
［特徴］
以上のとおり、本実施形態に係る学習装置１は、ステップＳ１０２により学習画像６０を複数のパッチ画像６１に分割し、ステップＳ１０４により各パッチ画像６１に対応する画像を生成するように訓練された生成器５０を構築する。これにより、フルサイズの学習画像６０に対応する画像を直接的に生成する能力を生成器５０に習得させるのではなく、各パッチ画像６１に対応する画像の生成を介して学習画像６０に対応するフルサイズの画像を間接的に生成する能力を生成器５０に習得させる。そのため、本実施形態では、生成器５０に学習させる画像のサイズを抑えることができるため、生成器５０の構成を単純化することができる。したがって、本実施形態によれば、ステップＳ１０４において機械学習により生成器５０を構築するのにかかる計算コストを低減することができる。これによって、ステップＳ１０４を処理するのにかかるメモリの量を抑えたり、ステップＳ１０４の計算時間を短くしたりすることができる。
【０１９８】
また、本実施形態に係る画像生成装置２は、学習装置１により構築された生成器５０を利用することで、ステップＳ５０１及びＳ５０２により製品Ｒの写り得る画像（結合画像６９）を量産するのにかかる計算コストを抑えることができる。加えて、本実施形態では、画像生成装置２により量産された結合画像６９をサンプル画像として利用することができる。これにより、推定器生成装置３において、機械学習に利用する学習データセット３２２を収集するコストを低減することができる。更に、本実施形態では、画像生成装置２により量産された結合画像６９をサンプル画像３２２１として利用することで、推定器７０の機械学習に利用するサンプル画像３２２１の件数を増やすことができる。これにより、本実施形態に係る検査装置４において、ステップＳ９０２により製品Ｒの良否を判定する精度を高めることができる。
【０１９９】
また、本実施形態に係る学習装置１は、ステップＳ２０１〜Ｓ２０３の処理により、学習画像６０の複雑度に応じてパッチサイズを決定する。学習画像６０の複雑度が高いとは、学習画像６０内の各画素値が変化に富んでいる状態である。この場合に、パッチ画像６１のサイズを大きくすると、パッチ画像６１に対応する画像を生成するために学習するパッチ画像６１内の変化の量が多くなってしまうことから、生成器５０の構成が複雑化し得る。一方、学習画像６０の複雑度が低い場合に、パッチ画像６１のサイズを小さくすると、無駄な処理が増えてしまう。そこで、本実施形態に係る学習装置１は、上記ステップＳ２０２において、学習画像６０の複雑度が高い場合には、各パッチ画像６１のパッチサイズを小さくなるように設定し、学習画像６０の複雑度が低い場合には、各パッチ画像６１のパッチサイズを大きくなるように設定する。これにより、生成に適したパッチサイズを有する各パッチ画像６１に学習画像６０を分割することができる。したがって、本実施形態によれば、機械学習により生成器５０を構築するのにかかる計算コストを低減しつつ、その機械学習によって、学習画像６０に対応する適切な画像を生成可能な学習済みの生成器５０を構築することができる。
【０２００】
また、本実施形態に係る学習装置１は、ステップＳ３０１〜Ｓ３０５の処理により、互いに類似する２つ以上のパッチ画像６１を同一のラベル６２を付与するように統合する。これにより、学習するラベル６２の種類数を低減することができ、これによって、生成器５０の構成を更に単純化することができる。したがって、本実施形態によれば、ステップＳ１０４において機械学習により生成器５０を構築するのにかかる計算コストを更に低減することができる。
【０２０１】
§４  変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【０２０２】
＜４．１＞
上記実施形態では、生成器５０及び推定器７０にはいわゆる多層構造の全結合ニューラルネットワークが用いられている。しかしながら、生成器５０及び推定器７０それぞれを構成するニューラルネットワークの構造及び種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、生成器５０及び推定器７０それぞれには畳み込みニューラルネットワークが利用されてよい。
【０２０３】
また、上記実施形態では、生成器５０及び推定器７０を構成する学習モデルとしてニューラルネットワークが用いられている。しかしながら、生成器５０及び推定器７０それぞれを構成する学習モデルは、画像の機械学習を実施可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
【０２０４】
＜４．２＞
上記実施形態では、第１学習結果データ１２５は、生成器５０の構成を示す情報を含んでいる。同様に、第２学習結果データ３２５は、推定器７０の構成を示す情報を含んでいる。しかしながら、各学習結果データ（１２５、３２５）の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、利用するニューラルネットワークの構成が各装置で共通化されている場合、各学習結果データ（１２５、３２５）は、ニューラルネットワークの構成を示す情報を含んでいなくてもよい。
【０２０５】
＜４．３＞
上記実施形態に係る各情報処理（図１１〜図１７）について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。例えば、上記実施形態に係る学習装置１は、ステップＳ２０１〜Ｓ２０３の処理に代えて、設定値で指定されたパッチサイズで学習画像６０を分割してもよい。また、例えば、上記実施形態に係る学習装置１は、ステップＳ３０１〜Ｓ３０５の処理に代えて、各パッチ画像６１に異なるラベル６２を付与してもよい。
【０２０６】
＜４．４＞
上記実施形態に係る学習ネットワーク５００では、生成器５０は、判別器５２に接続されている。これにより、上記実施形態に係る学習装置１は、判別器５２の第１訓練ステップと生成器５０の第２訓練ステップとを交互に実施することで、各パッチ画像６１に対応する画像を適切に生成する能力を習得した生成器５０を構築している。しかしながら、学習ネットワーク５００の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。また、このような学習ネットワーク５００を構成するのではなく、生成器５０は、単独で訓練されてもよい。
【０２０７】
図１８は、本変形例に係る学習装置１Ａのソフトウェア構成の一例を模式的に例示する。上記実施形態に係る学習ネットワーク５００が学習ネットワーク５００Ａに置き換わる点を除き、本変形例に係る学習装置１Ａのハードウェア構成及びソフトウェア構成は、上記実施形態に係る学習装置１と同じであってよい。
【０２０８】
本変形例に係る学習ネットワーク５００Ａは、生成器５０Ａ及びエンコーダ５４を含んでいる。生成器５０Ａは、エンコーダ５４に接続されている。具体的には、エンコーダ５４の出力が生成器５０Ａの入力に接続されている。エンコーダ５４は、与えられた画像（パッチ画像６１及びラベル６２）から特徴量（潜在変数）を導出するように構成される。これに対して、生成器５０Ａは、デコーダとしての役割を果たす。つまり、生成器５０Ａは、導出された特徴量から画像を復元するように構成される。このような生成器５０Ａ及びエンコーダ５４は、上記実施形態と同様に、いわゆる多層構造の全結合ニューラルネットワークにより構成されてよい。
【０２０９】
本変形例に係る学習装置１Ａは、上記実施形態に係る学習装置１と同様に動作してもよい。すなわち、ステップＳ１０１では、学習装置１Ａの制御部は、学習画像６０を取得する。ステップＳ１０２では、制御部は、学習画像６０を複数のパッチ画像６１に分割する。ステップＳ１０３では、制御部は、各パッチ画像６１にラベル６２を付与する。ステップＳ１０１〜Ｓ１０３は、上記実施形態と同様に処理されてよい。そして、ステップＳ１０４では、制御部は、学習処理部１１４Ａとして動作し、機械学習を行うことで、各パッチ画像６１をエンコーダ５４に入力することでエンコーダ５４から得られる出力値及び各パッチ画像６１に関連付けられたラベル６２から、各パッチ画像６１に対応する画像を生成するように生成器５０Ａを訓練する。
【０２１０】
具体的に、制御部は、互いに対応するパッチ画像６１及びラベル６２の組み合わせで構成されたデータセットを入力データ（訓練データ）として利用し、事前分布を教師データ（正解データ）として利用して、エンコーダ５４の学習処理を実行する。また、制御部は、互いに対応するパッチ画像６１及びラベル６２の組み合わせで構成されたデータセットを入力データ（訓練データ）として利用し、対応するパッチ画像６１を教師データ（正解データ）として利用して、エンコーダ５４及び生成器５０Ａの学習処理を実行する。
【０２１１】
例えば、制御部は、互いに対応するパッチ画像６１及びラベル６２の組み合わせで構成されたデータセットをエンコーダ５４に入力し、エンコーダ５４の演算処理を実行する。これにより、制御部は、何らかの特徴量を導出した結果に対応する出力値をエンコーダ５４から取得する。制御部は、この出力値と事前分布との第１誤差を算出する。事前分布は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。事前分布は、例えば、ガウス分布等であってよい。制御部は、この第１誤差の和が小さくなるように、エンコーダ５４のパラメータの値を調節する。
【０２１２】
また、制御部は、エンコーダ５４から得られた出力値及び対応するラベル６２を生成器５０Ａに入力し、生成器５０Ａの演算処理を実行する。これにより、制御部は、各ラベル６２から画像を生成した結果に対応する出力を生成器５０Ａから取得する。制御部は、生成された各画像と対応するパッチ画像６１との第２誤差を算出する。制御部は、この第２誤差の和が小さくなるように、生成器５０Ａ及びエンコーダ５４のパラメータの値を調節する。
【０２１３】
上記実施形態と同様に、各パラメータの値の調節には、誤差逆伝播法が用いられてよい。各誤差の和が閾値以下になるまで、制御部は、上記一連の処理による各パラメータの値の調節を繰り返す。これにより、制御部は、各パッチ画像６１をエンコーダ５４に入力することでエンコーダ５４から得られる出力値及び対応するラベル６２から、各パッチ画像６１に対応する画像を生成するように訓練された生成器５０Ａを構築することができる。
【０２１４】
ステップＳ１０５では、制御部は、ステップＳ１０４により構築された学習済みの生成器５０Ａの構成及びパラメータを示す情報を第１学習結果データ１２５Ａとして生成する。第１学習結果データ１２５Ａは、エンコーダ５４の構成及びパラメータを示す情報を含んでもよいし、含んでいなくてもよい。そして、制御部は、生成した第１学習結果データ１２５Ａを所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部内のＲＡＭ、記憶部、外部記憶装置（例えば、ＮＡＳ等のデータサーバ）、記憶メディア又はこれらの組み合わせであってよい。これにより、本変形例に係る学習装置１Ａは、各パッチ画像６１に対応する画像を生成するための生成器５０Ａを構築することができる。なお、構築された生成器５０Ａは、上記実施形態に係る生成器５０と同様に利用可能である。上記実施形態に係る画像生成装置２は、この生成器５０Ａを利用して、結合画像６９を生成してもよい。
【０２１５】
＜４．５＞
上記実施形態では、画像に写る製品Ｒの外観検査を実施する場面に本発明を適用した例を示している。しかしながら、本発明の適用範囲は、このような外観検査の例に限られる訳ではない。本発明は、画像に写る対象物の何らかの特徴を推定するあらゆる場面に適用可能である。製品Ｒの写る画像から対象物の写る画像に検査システム１００で取り扱う画像を変更することで、対象物の写る画像から何らかの特徴を推定する推定システムを構成することができる。
【０２１６】
図１９は、本変形例に係る推定システム１００Ｂの適用場面の一例を模式的に例示する。図１９に示されるとおり、本変形例に係る推定システム１００Ｂは、ネットワークを介して接続される学習装置１Ｂ、画像生成装置２Ｂ、推定器生成装置３Ｂ、及び推定装置４Ｂを備えている。製品Ｒの写る画像から対象物の写る画像に取り扱う画像を変更する点を除き、各装置１Ｂ〜４Ｂのハードウェア構成及びソフトウェア構成は、上記実施形態に係る各装置１〜４のハードウェア構成及びソフトウェア構成と同じであってよい。また、各装置１Ｂ〜４Ｂは、上記実施形態に係る各装置１〜４と同様に動作してよい。
【０２１７】
すなわち、本変形例に係る学習装置１Ｂは、対象物ＲＢを写した学習画像６０Ｂを取得し、取得した学習画像６０Ｂを複数のパッチ画像６１Ｂに分割する。次に、学習装置１Ｂは、学習画像６０Ｂ内における各パッチ画像６１Ｂの位置に応じて、複数のラベル６２Ｂのうちのいずれかのラベル６２Ｂを各パッチ画像６１Ｂに関連付ける。そして、学習装置１Ｂは、機械学習を行うことで、各パッチ画像６１Ｂに関連付けられたラベル６２Ｂから各パッチ画像６１Ｂに対応する画像を生成するように訓練された生成器５０Ｂを構築する。
【０２１８】
これに対して、画像生成装置２Ｂは、学習装置１Ｂにより構築された学習済みの生成器５０Ｂを利用して、複数のラベル６２Ｂそれぞれから複数の画像６７Ｂそれぞれを生成する。そして、画像生成装置２Ｂは、生成された複数の画像６７Ｂそれぞれを、複数のラベル６２Ｂそれぞれに応じた位置に配置した後に結合することで、結合画像６９Ｂを生成する。生成される結合画像６９Ｂは、対象物ＲＢの写り得る画像であって、上記学習画像６０Ｂに対応する画像である。
【０２１９】
また、推定器生成装置３Ｂは、対象物ＲＢを写したサンプル画像３２２１Ｂ及び正解データ３２２２Ｂの組み合わせによりそれぞれ構成された複数の学習データセット３２２Ｂを取得する。正解データ３２２２Ｂは、サンプル画像３２２１Ｂに写る対象物ＲＢの特徴を特定した結果（すなわち、正解）を示す。そして、推定器生成装置３Ｂは、複数の学習データセット３２２Ｂを利用した機械学習を実施することで、与えられた画像に写る対象物ＲＢの特徴を推定する能力を習得した学習済みの推定器７０Ｂを構築する。これに応じて、推定器生成装置３Ｂは、学習済みの推定器７０Ｂの構成及びパラメータを示す情報を学習結果データ３２５Ｂとして生成する。なお、推定器生成装置３Ｂは、画像生成装置２Ｂにより生成された結合画像６９Ｂをサンプル画像３２２１Ｂとして利用することができる。
【０２２０】
図２０は、本変形例に係る推定装置４Ｂのソフトウェア構成の一例を模式的に例示する。本変形例に係る推定装置４Ｂは、対象物ＲＢの写る対象画像４２２Ｂを取得する。本変形例では、推定装置４ＢにはカメラＣＡが接続されている。推定装置４Ｂは、このカメラＣＡにより対象物ＲＢを撮影することで対象画像４２２Ｂを取得する。次に、推定装置４Ｂの制御部は、推定部４１２Ｂとして動作し、学習結果データ３２５Ｂを参照して、学習済みの推定器７０Ｂの設定を行う。続いて、推定装置４Ｂは、取得した対象画像４２２Ｂを学習済みの推定器７０Ｂに入力し、学習済みの推定器７０Ｂの演算処理を実行する。これにより、推定装置４Ｂは、対象物ＲＢの特徴を推定した結果に対応する出力値を学習済みの推定器７０Ｂから取得する。そして、推定装置４Ｂは、学習済みの推定器７０Ｂから得られた出力値に基づいて対象物ＲＢの特徴を推定した結果に関する情報を出力する。これにより、本変形例に係る推定システム１００Ｂは、対象物ＲＢの写る画像から何らかの特徴を推定するように構成される。
【０２２１】
なお、対象物ＲＢは、何らかの属性を識別する対象となり得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。対象物ＲＢは、例えば、上記外観検査の対象となる製品、人物、人物の身体部位（例えば、顔等）、文字、車両における車外の状況等であってよい。推定する対象となる特徴は、特に限定されなくてもよく、対象物ＲＢに応じて適宜選択されてよい。対象物ＲＢが人物の顔である場合、推定する対象となる特徴は、例えば、表情の種別、顔のパーツの状態、その顔の人物の属性等であってよい。対象物ＲＢが文字である場合、推定する対象となる特徴は、印字の鮮明度、歪み、文字列のずれ等の属性であってよい。対象物ＲＢが車外の状況である場合、推定する対象となる特徴は、例えば、車線の状態、渋滞具合等の道路状況の属性であってよい。
【符号の説明】
【０２２２】
１００…検査システム、
１…学習装置、
１１…制御部、１２…記憶部、１３…通信インタフェース、
１４…入力装置、１５…出力装置、１６…ドライブ、
１１１…画像取得部、１１２…画像分割部、
１１３…ラベル付与部、１１４…（第１）学習処理部、
１１５…（第１）保存処理部、
１２１…学習プログラム、１２５…第１学習結果データ、
２…画像生成装置、
２１…制御部、２２…記憶部、２３…通信インタフェース、
２４…入力装置、２５…出力装置、２６…ドライブ、
２１１…生成部、２１２…結合部、２１３…画像保存部、
２２１…画像生成プログラム、
５０…生成器、５２…判別器、
６０…学習画像、６１…パッチ画像、
６２…ラベル、６２１…ラベル情報、
６７…（パッチ）画像、６９…結合画像、
３…推定器生成装置、
３１…制御部、３２…記憶部、３３…通信インタフェース、
３４…入力装置、３５…出力装置、３６…ドライブ、
３１１…学習データ取得部、３１２…（第２）学習処理部、
３１３…（第２）保存処理部、
３２１…推定器生成プログラム、
３２２…学習データセット、
３２２１…サンプル画像、３２２２…正解データ、
３２５…第２学習結果データ、
４…検査装置（推定装置）、
４１…制御部、４２…記憶部、４３…通信インタフェース、
４４…入力装置、４５…出力装置、４６…ドライブ、
４７…外部インタフェース、
４１１…対象データ取得部、４１２…良否判定部、
４１３…出力部、
４２１…検査プログラム、
７０…推定器、
９１・９２・９３・９４…記憶媒体
【図１】
2020064364.tif 000014
【図２】
2020064364.tif 000015
【図３】
2020064364.tif 000016
【図４】
2020064364.tif 000017
【図５】
2020064364.tif 000018
【図６】
2020064364.tif 000019
【図７Ａ】
2020064364.tif 000020
【図７Ｂ】
2020064364.tif 000021
【図８】
2020064364.tif 000022
【図９】
2020064364.tif 000023
【図１０】
2020064364.tif 000024
【図１１】
2020064364.tif 000025
【図１２】
2020064364.tif 000026
【図１３】
2020064364.tif 000027
【図１４】
2020064364.tif 000028
【図１５】
2020064364.tif 000029
【図１６】
2020064364.tif 000030
【図１７】
2020064364.tif 000031
【図１８】
2020064364.tif 000032
【図１９】
2020064364.tif 000033
【図２０】
2020064364.tif 000034