(57)【要約】【課題】推定器の計算コストを低減しつつ、学習画像の件数が比較的に少なくても、画像に写る対象物の属性を高精度に推定可能な推定器を構築する。【解決手段】本発明の一側面に係る推定器生成装置は、対象物を写した学習画像から抽出された第１特徴、及び対象物の種別を示すラベルの組み合わせにより構成された各学習データセットを取得し、第１特徴に拡大処理を適用することで、第１特徴とは異なる第２特徴を生成し、機械学習を行うことで、第１特徴及び第２特徴の少なくともいずれかから、対応するラベルと一致するように、学習画像に写る対象物の種別を推定するように訓練された推定器を構築する。【選択図】図１
2020060398.tif 000002
【特許請求の範囲】
【請求項１】
外観検査の対象となる製品を写した学習画像、及び前記製品に含まれる欠陥の種別を示すラベルの組み合わせによりそれぞれ構成された複数の学習データセットを取得するデータ取得部と、
前記各学習データセットに含まれる前記学習画像から１又は複数の第１特徴を抽出する抽出部と、
抽出された前記１又は複数の第１特徴に拡大処理を適用することで、前記１又は複数の第１特徴とは異なる１又は複数の第２特徴を生成する拡大処理部と、
機械学習を行うことで、前記１又は複数の第１特徴及び前記１又は複数の第２特徴の少なくともいずれかから、対応するラベルと一致するように、前記学習画像に写る前記製品に含まれる前記欠陥の種別を推定するように訓練された推定器を構築する学習処理部と、
を備える、
推定器生成装置。
【請求項２】
前記１又は複数の第１特徴はそれぞれ、前記学習画像よりもサイズの小さい特徴画像として抽出される、
請求項１に記載の推定器生成装置。
【請求項３】
前記複数の第１特徴それぞれには重みが設定されており、
前記拡大処理を適用することは、設定された前記重みを前記複数の第１特徴それぞれにかけること、及び重み付けされた前記複数の第１特徴を合成すること、を含む、
請求項２に記載の推定器生成装置。
【請求項４】
前記拡大処理を適用することは、前記１又は複数の第１特徴に対して幾何学的な変換を適用すること、を含む、
請求項２又は３に記載の推定器生成装置。
【請求項５】
前記幾何学的な変換は、平行移動、回転移動、反転、又はこれら組み合わせである、
請求項４に記載の推定器生成装置。
【請求項６】
外観検査の対象となる製品を写した対象画像を取得する画像取得部と、
取得した前記対象画像から特徴を抽出する抽出部と、
請求項１から５のいずれか１項に記載の推定器生成装置により構築された前記推定器を利用し、抽出した前記特徴に基づいて、前記対象画像に写る前記製品に欠陥が含まれるか否かを検査する検査部と、
前記検査の結果に関する情報を出力する出力部と、
を備える、
検査装置。
【請求項７】
コンピュータが、
外観検査の対象となる製品を写した学習画像、及び前記製品に含まれる欠陥の種別を示すラベルの組み合わせによりそれぞれ構成された複数の学習データセットを取得するステップと、
前記各学習データセットに含まれる前記学習画像から１又は複数の第１特徴を抽出するステップと、
抽出された前記１又は複数の第１特徴に拡大処理を適用することで、前記１又は複数の第１特徴とは異なる１又は複数の第２特徴を生成するステップと、
機械学習を行うことで、前記１又は複数の第１特徴及び前記１又は複数の第２特徴の少なくともいずれかから、対応するラベルと一致するように、前記学習画像に写る前記製品に含まれる前記欠陥の種別を推定するように訓練された推定器を構築するステップと、
を実行する、
推定器生成方法。
【請求項８】
コンピュータに、
外観検査の対象となる製品を写した学習画像、及び前記製品に含まれる欠陥の種別を示すラベルの組み合わせによりそれぞれ構成された複数の学習データセットを取得するステップと、
前記各学習データセットに含まれる前記学習画像から１又は複数の第１特徴を抽出するステップと、
抽出された前記１又は複数の第１特徴に拡大処理を適用することで、前記１又は複数の第１特徴とは異なる１又は複数の第２特徴を生成するステップと、
機械学習を行うことで、前記１又は複数の第１特徴及び前記１又は複数の第２特徴の少なくともいずれかから、対応するラベルと一致するように、前記学習画像に写る前記製品に含まれる前記欠陥の種別を推定するように訓練された推定器を構築するステップと、
を実行させるための、
推定器生成プログラム。
【請求項９】
対象物を写した学習画像、及び前記対象物の属性を示すラベルの組み合わせによりそれぞれ構成された複数の学習データセットを取得するデータ取得部と、
前記各学習データセットに含まれる前記学習画像から１又は複数の第１特徴を抽出する抽出部と、
抽出された前記１又は複数の第１特徴に拡大処理を適用することで、前記１又は複数の第１特徴とは異なる１又は複数の第２特徴を生成する拡大処理部と、
機械学習を行うことで、前記１又は複数の第１特徴及び前記１又は複数の第２特徴の少なくともいずれかから、対応するラベルと一致するように、前記学習画像に写る前記対象物の属性を推定するように訓練された推定器を構築する学習処理部と、
を備える、
推定器生成装置。
【請求項１０】
対象物を写した学習画像から抽出された１又は複数の第１特徴、及び前記対象物の属性を示すラベルの組み合わせによりそれぞれ構成された複数の学習データセットを取得するデータ取得部と、
前記各学習データセットに含まれる前記１又は複数の第１特徴に拡大処理を適用することで、前記１又は複数の第１特徴とは異なる１又は複数の第２特徴を生成する拡大処理部と、
機械学習を行うことで、前記１又は複数の第１特徴及び前記１又は複数の第２特徴の少なくともいずれかから、対応するラベルと一致するように、前記学習画像に写る前記対象物の属性を推定するように訓練された推定器を構築する学習処理部と、
を備える、
推定器生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定器生成装置、検査装置、推定器生成方法、及び推定器生成プログラムに関する。
【背景技術】
【０００２】
従来、製造ライン等の製品を製造する場面では、製造される製品を撮影装置により撮影し、得られた画像データに基づいて製品の良否を検査する技術が利用されている。例えば、特許文献１では、学習済みの第１のニューラルネットワークに基づいて画像に写る検査対象物が正常であるか異常であるかを判定し、検査対象物が異常であると判定した場合に、学習済みの第２のニューラルネットワークに基づいて当該異常の種類を分類する検査装置が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０２６９８２号公報
【特許文献２】特開２０１６−１１０２９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本件発明者らは、特許文献１のようなニューラルネットワーク等の学習モデルにより構成される推定器を利用して、画像データから製品の良否を判定する従来の技術には、次のような問題が生じ得ることを見出した。すなわち、学習画像のサイズが大きくなるほど、製品の良否を判定するための推定器の構成が複雑になってしまう。そのため、推定器の計算コストが大きくなってしまい、機械学習の計算処理の際にメモリの不足が生じてしまう、当該計算処理の時間が長くなってしまう、当該計算処理が所定時間内に完了しない等の不具合が生じてしまうという問題点が生じ得る。
【０００５】
そこで、本件発明者らは、学習画像から特徴を抽出し、抽出した特徴に基づいて製品の良否を判定する推定器を構築することを検討した。例えば、特許文献２には、物体を撮像して得られた画像データの特徴量を算出し、算出した特徴量に基づいて、物体の外観上の欠陥を検出する検査システムが提案されている。学習画像から抽出される特徴は、抽出処理により情報を部分的に削減したものになるため、その情報量は、通常、学習画像そのものよりも小さい（すなわち、低次元である）。そのため、この特徴を利用する推定器の構成は、学習画像そのものを利用する推定器よりも簡単にすることができ、これによって、推定器の計算コストを低減することができる。したがって、この方法によれば、推定器の学習時間を短くしたり、推定器の機械学習に利用するハードウェア資源を節約したりすることができる。
【０００６】
しかしながら、本件発明者らは、この方法には、次のような問題点があることを見出した。すなわち、推定器による判定の精度は、学習データの件数に依存する。そのため、学習画像の件数が少ないと、得られる特徴の件数も少なくなってしまい、学習済みの学習モデル（推定器）による欠陥推定の精度が不十分になってしまう。特に、学習画像から抽出される特徴は、学習画像に含まれる情報を抽出処理により部分的に削減したものである。つまり、推定器がこの特徴から得られる情報量は、学習画像そのものから得られる情報量よりも少ない。そのため、この方法により構築された推定器の欠陥推定の精度は、学習画像を利用して構築された推定器よりも悪くなる傾向にある。よって、学習データの件数が少ないことにより、学習済みの学習モデル（推定器）による欠陥推定の精度が極めて悪くなってしまう可能性がある。
【０００７】
なお、このような問題点は、製品の良否を判定するための推定器を機械学習により構築する場面だけではなく、画像に写る対象物の何らかの属性を推定するための推定器を構築するあらゆる場面で生じ得る。例えば、対象者の顔の器官を検出するための推定器を構築する場合に、学習データとして利用される顔画像（学習画像）の件数が少ないと、顔画像から得られる特徴の件数も少なくなってしまい、推定器による器官の推定の精度が不十分になってしまう可能性がある。
【０００８】
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、推定器の計算コストを低減しつつ、学習画像の件数が比較的に少なくても、画像に写る対象物の属性を高精度に推定可能な推定器を構築する技術を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【００１０】
すなわち、本発明の一側面に係る推定器生成装置は、外観検査の対象となる製品を写した学習画像、及び前記製品に含まれる欠陥の種別を示すラベルの組み合わせによりそれぞれ構成された複数の学習データセットを取得するデータ取得部と、前記各学習データセットに含まれる前記学習画像から１又は複数の第１特徴を抽出する抽出部と、抽出された前記１又は複数の第１特徴に拡大処理を適用することで、前記１又は複数の第１特徴とは異なる１又は複数の第２特徴を生成する拡大処理部と、機械学習を行うことで、前記１又は複数の第１特徴及び前記１又は複数の第２特徴の少なくともいずれかから、対応するラベルと一致するように、前記学習画像に写る前記製品に含まれる前記欠陥の種別を推定するように訓練された推定器を構築する学習処理部と、を備える。
【００１１】
当該構成では、推定器は、学習画像から直接的に製品の良否を推定するように訓練されるのではなく、学習画像より抽出された特徴から製品の良否を推定するように訓練される。一般的に、抽出される特徴の次元は学習画像そのものよりも低いため、抽出される特徴の有する情報量は、学習画像よりも少なくなる。そのため、学習画像から直接的に製品の良否を推定するように訓練されるケースと比較して、抽出された特徴から製品の良否を推定するように訓練されるケースでは、入力データの情報量を抑えることができるため、推定器の構成を単純化することができる。加えて、当該構成では、学習画像より抽出された第１特徴に拡大処理を適用することで、第１特徴とは異なる第２特徴を生成する。これにより、特徴のバリエーションを豊富にすることができる。すなわち、機械学習に利用する訓練データの件数を増やすことができる。そのため、学習画像の件数が少なくても、欠陥推定の一定の精度を担保するのに十分な件数の学習データを用意することができる。したがって、当該構成によれば、推定器の計算コストを低減しつつ、学習画像の件数が比較的に少なくても、画像に写る対象物の属性を高精度に推定可能な推定器を構築することができる。
【００１２】
なお、特徴は、画像から導出可能な何らかの情報であれば、その種類及びデータ形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。特徴の抽出には、例えば、一般的な画像処理（例えば、エッジ抽出）、ＳＩＦＴ（Scale-Invariant Feature Transform）、学習済みの学習モデル（例えば、畳み込みニューラルネットワーク）等が用いられてよい。例えば、畳み込みニューラルネットワークを利用して、第１特徴として特徴マップを学習画像から導出してもよい。拡大処理（data augmentation）は、１又は複数の特徴から異なる特徴を導出する処理である。拡大処理には、例えば、複数の特徴を合成する処理、幾何的な変換等により特徴を変換する処理等が用いられてよい。特徴が画像として導出される場合、特徴を変換する処理には、所定のノイズ（ホワイトノイズ、ランダムノイズ等）を特徴画像に合成する処理、特徴画像に含まれる画素を変換する処理等が用いられてよい。画素の変換には、色変換、濃度変換等が含まれてよく、これらの変換には、所定の変換関数が用いられてよい。
【００１３】
また、製品は、外観検査の対象となり得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。製品は、例えば、電子機器、電子部品、自動車部品、薬品、食品等の製造ラインで搬送される物であってよい。電子機器は、例えば、携帯電話等である。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等である。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等である。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。また、欠陥は、製品の良否に関係し得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。欠陥は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等である。
【００１４】
上記一側面に係る推定器生成装置において、前記１又は複数の第１特徴はそれぞれ、前記学習画像よりもサイズの小さい特徴画像として抽出されてよい。当該構成によれば、拡大処理に適した形式で特徴を得ることができるため、機械学習に利用する訓練データ（特徴）の件数を増やすことができる。これにより、画像に写る対象物を高精度に推定可能な推定器を構築することができる。なお、特徴画像は、例えば、畳み込みニューラルネットワークにより導出される特徴マップである。
【００１５】
上記一側面に係る推定器生成装置において、前記複数の第１特徴それぞれには重みが設定されていてよく、前記拡大処理を適用することは、設定された前記重みを前記複数の第１特徴それぞれにかけること、及び重み付けされた前記複数の第１特徴を合成すること、を含んでもよい。当該構成によれば、機械学習に利用する特徴のバリエーションを適切に豊富化することができ、これによって、画像に写る対象物を高精度に推定可能な推定器を構築することができる。
【００１６】
上記一側面に係る推定器生成装置において、前記拡大処理を適用することは、前記１又は複数の第１特徴に対して幾何学的な変換を適用すること、を含んでもよい。当該構成によれば、機械学習に利用する特徴のバリエーションを適切に豊富化することができ、これによって、画像に写る対象物を高精度に推定可能な推定器を構築することができる。
【００１７】
上記一側面に係る推定器生成装置において、前記幾何学的な変換は、平行移動、回転移動、反転、又はこれら組み合わせであってよい。当該構成によれば、機械学習に利用する特徴のバリエーションを適切に豊富化することができ、これによって、画像に写る対象物を高精度に推定可能な推定器を構築することができる。
【００１８】
また、本発明の一側面に係る検査装置は、外観検査の対象となる製品を写した対象画像を取得する画像取得部と、取得した前記対象画像から特徴を抽出する抽出部と、上記いずれかの形態に係る推定器生成装置により構築された前記推定器を利用し、抽出した前記特徴に基づいて、前記対象画像に写る前記製品に欠陥が含まれるか否かを検査する検査部と、前記検査の結果に関する情報を出力する出力部と、を備える。当該構成によれば、製品の外観検査を高精度に実施することができる。
【００１９】
また、上記各形態に係る推定器生成装置及び検査装置は、画像から製品の良否を判定するための推定器を機械学習により構築する場面だけではなく、画像に写る対象物の何らかの属性を推定するための推定器を構築するあらゆる場面に適用されてよい。例えば、上記各形態に係る推定器生成装置及び検査装置は、対象者の顔を写した顔画像から器官を検出するための推定器を構築する場面に適用されてもよい。また、上記各形態に係る推定器生成装置は、学習画像から第１特徴を抽出する構成を省略し、第１特徴を直接的に取得するように構成されてもよい。
【００２０】
例えば、本発明の一側面に係る推定器生成装置は、対象物を写した学習画像、及び前記対象物の属性を示すラベルの組み合わせによりそれぞれ構成された複数の学習データセットを取得するデータ取得部と、前記各学習データセットに含まれる前記学習画像から１又は複数の第１特徴抽出する抽出部と、抽出された前記１又は複数の第１特徴に拡大処理を適用することで、前記１又は複数の第１特徴とは異なる１又は複数の第２特徴を生成する拡大処理部と、機械学習を行うことで、前記１又は複数の第１特徴及び前記１又は複数の第２特徴の少なくともいずれかから、対応するラベルと一致するように、前記学習画像に写る前記対象物の属性を推定するように訓練された推定器を構築する学習処理部と、を備える。
【００２１】
また、例えば、本発明の一側面に係る推定器生成装置は、対象物を写した学習画像から抽出された１又は複数の第１特徴、及び前記対象物の属性を示すラベルの組み合わせによりそれぞれ構成された複数の学習データセットを取得するデータ取得部と、前記各学習データセットに含まれる前記１又は複数の第１特徴に拡大処理を適用することで、前記１又は複数の第１特徴とは異なる１又は複数の第２特徴を生成する拡大処理部と、機械学習を行うことで、前記１又は複数の第１特徴及び前記１又は複数の第２特徴の少なくともいずれかから、対応するラベルと一致するように、前記学習画像に写る前記対象物の属性を推定するように訓練された推定器を構築する学習処理部と、を備える。
【００２２】
また、例えば、本発明の一側面に係る推定装置は、対象物を写した対象画像を取得する画像取得部と、取得した前記対象画像から特徴を抽出する抽出部と、上記いずれかの形態に係る推定器生成装置により構築された前記推定器を利用し、抽出した前記特徴に基づいて、前記対象画像に写る前記対象物の状態を推定する推定部と、前記推定の結果に関する情報を出力する出力部と、を備える。
【００２３】
なお、「対象物」は、何らかの属性を推定する対象となり得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。対象物は、例えば、上記外観検査の対象となる製品、人物、人物の身体部位（例えば、顔等）等であってよい。また、推定する対象となる対象物の「属性」は、対象物の何らかの性質に関するものであればよく、推定器により推定可能な対象物のあらゆる種類の属性を含んでもよい。対象物が人物の顔である場合、判定の対象となる属性は、例えば、表情の種別、顔のパーツ（器官を含む）の位置（特定の器官同士の相対位置関係を含む）、顔のパーツの形状、顔のパーツの色、顔のパーツの状態（開度、角度等）、その顔を所有する個人の属性等であってよい。また、対象物が人物の身体である場合、判定の対象となる属性は、例えば、身体のポーズ等であってよい。対象物が作業対象のワークである場合、判定の対象となる属性は、例えば、ワークの位置、姿勢等であってよい。
【００２４】
本発明の一側面に係る検査システムは、上記いずれかの形態に係る推定器生成装置及び検査装置により構成されてもよい。また、本発明の一側面に係る推定システムは、上記いずれかの形態に係る推定器生成装置及び推定装置により構成されてもよい。更に、上記各形態に係る推定器生成装置、検査装置、検査システム及び推定システムそれぞれの別の形態として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【００２５】
例えば、本発明の一側面に係る推定器生成方法は、コンピュータが、外観検査の対象となる製品を写した学習画像、及び前記製品に含まれる欠陥の種別を示すラベルの組み合わせによりそれぞれ構成された複数の学習データセットを取得するステップと、前記各学習データセットに含まれる前記学習画像から１又は複数の第１特徴を抽出するステップと、抽出された前記１又は複数の第１特徴に拡大処理を適用することで、前記１又は複数の第１特徴とは異なる１又は複数の第２特徴を生成するステップと、機械学習を行うことで、前記１又は複数の第１特徴及び前記１又は複数の第２特徴の少なくともいずれかから、対応するラベルと一致するように、前記学習画像に写る前記製品に含まれる前記欠陥の種別を推定するように訓練された推定器を構築するステップと、を実行する、情報処理方法である。
【００２６】
また、例えば、本発明の一側面に係る推定器生成プログラムは、コンピュータに、外観検査の対象となる製品を写した学習画像、及び前記製品に含まれる欠陥の種別を示すラベルの組み合わせによりそれぞれ構成された複数の学習データセットを取得するステップと、前記各学習データセットに含まれる前記学習画像から１又は複数の第１特徴を抽出するステップと、抽出された前記１又は複数の第１特徴に拡大処理を適用することで、前記１又は複数の第１特徴とは異なる１又は複数の第２特徴を生成するステップと、機械学習を行うことで、前記１又は複数の第１特徴及び前記１又は複数の第２特徴の少なくともいずれかから、対応するラベルと一致するように、前記学習画像に写る前記製品に含まれる前記欠陥の種別を推定するように訓練された推定器を構築するステップと、を実行させるための、プログラムである。
【発明の効果】
【００２７】
本発明によれば、推定器の計算コストを低減しつつ、学習画像の件数が比較的に少なくても、画像に写る対象物の属性を高精度に推定可能な推定器を構築することができる。
【図面の簡単な説明】
【００２８】
【図１】図１は、本発明が適用される場面の一例を模式的に例示する。
【図２】図２は、実施の形態に係る推定器生成装置のハードウェア構成の一例を模式的に例示する。
【図３】図３は、実施の形態に係る検査装置のハードウェア構成の一例を模式的に例示する。
【図４】図４は、実施の形態に係る推定器生成装置のソフトウェア構成の一例を模式的に例示する。
【図５】図５は、実施の形態に係る検査装置のソフトウェア構成の一例を模式的に例示する。
【図６】図６は、実施の形態に係る推定器生成装置の処理手順の一例を例示する。
【図７】図７は、実施の形態に係る特徴抽出処理の一例を模式的に例示する。
【図８Ａ】図８Ａは、本実施形態に係る拡大処理の一例（重み付け合成）を模式的に例示する。
【図８Ｂ】図８Ｂは、サイズ（スケール）の異なる第１特徴を扱う場面の一例を模式的に例示する。
【図９】図９は、本実施形態に係る拡大処理の一例（幾何変換）を模式的に例示する。
【図１０】図１０は、実施の形態に係る検査装置の処理手順の一例を例示する。
【図１１】図１１は、変形例に係る推定器生成装置のソフトウェア構成の一例を模式的に例示する。
【図１２】図１２は、本発明が適用される場面の他の例を模式的に例示する。
【図１３】図１３は、変形例に係る推定装置のソフトウェア構成の一例を模式的に例示する。
【発明を実施するための形態】
【００２９】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００３０】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態に係る検査システム１００の適用場面の一例を模式的に例示する。図１の例では、製造ラインで製造される製品Ｒの外観検査を実施する場面に本発明が適用されている。外観検査の対象となる製品Ｒは、本発明の「対象物」の一例であり、製品Ｒの欠陥の有無及び欠陥の種別は、本発明の「対象物の属性」の一例である。しかしながら、本発明の適用対象は、このような例に限定されなくてもよく、対象物の何らかの属性を画像から推定するあらゆる場面に適用可能である。
【００３１】
図１に示されるとおり、本実施形態に係る検査システム１００は、ネットワークを介して互いに接続される推定器生成装置１及び検査装置２を備えており、製品Ｒの欠陥の有無及び欠陥の種別を推定するための推定器を生成し、生成した推定器により製品Ｒの外観検査を実施するように構成される。推定器生成装置１及び検査装置２の間のネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
【００３２】
本実施形態に係る推定器生成装置１は、機械学習を実施することにより、製品Ｒの欠陥の有無及び欠陥の種別を画像から推定するための推定器５０を構築するように構成されたコンピュータである。具体的には、推定器生成装置１は、外観検査の対象となる製品Ｒを写した学習画像６１、及び製品Ｒに含まれる欠陥の種別を示すラベル６３の組み合わせによりそれぞれ構成された複数の学習データセット６０を取得する。次に、推定器生成装置１は、各学習データセット６０に含まれる学習画像６１から１又は複数の第１特徴７１を抽出し、抽出された１又は複数の第１特徴７１に拡大処理を適用することで、１又は複数の第１特徴７１とは異なる１又は複数の第２特徴７３を生成する。
【００３３】
そして、推定器生成装置１は、機械学習を行うことで、１又は複数の第１特徴７１及び１又は複数の第２特徴７３の少なくともいずれかから、対応するラベル６３と一致するように、学習画像６１に写る製品Ｒに含まれる欠陥の種別を推定するように訓練された推定器５０を構築する。すなわち、推定器生成装置１は、１又は複数の第１特徴７１及び１又は複数の第２特徴７３を訓練データ（入力データ）として利用し、対応するラベル６３を正解データ（教師データ）として利用して、推定器５０の機械学習を実施する。これにより、推定器生成装置１は、各学習データセット６０について、学習画像６１から導出された１又は複数の第１特徴７１及び１又は複数の第２特徴７３の少なくともいずれかを入力すると、当該学習画像６１に関連付けられたラベル６３により示される欠陥の種別に対応する出力値を出力するように訓練された推定器５０を構築する。
【００３４】
これに対して、本実施形態に係る検査装置２は、推定器生成装置１により構築された学習済みの推定器５０を利用して、製品Ｒの外観検査を実施するように構成されたコンピュータである。検査装置２は、画像に写る対象物の何らかの属性を推定するための推定装置の一例である。具体的には、検査装置２は、外観検査の対象となる製品Ｒを写した対象画像８１を取得する。本実施形態では、検査装置２には、カメラＣＡが接続されている。そのため、検査装置２は、このカメラＣＡにより製品Ｒを撮影することで対象画像８１を取得する。
【００３５】
次に、検査装置２は、取得した対象画像８１から１又は複数の特徴８３を抽出する。続いて、検査装置２は、推定器生成装置１により構築された学習済みの推定器５０を利用して、抽出した１又は複数の特徴８３に基づいて、対象画像８１に写る製品Ｒに欠陥が含まれるか否かを検査する。すなわち、検査装置２は、抽出した１又は複数の特徴８３を学習済みの推定器５０に入力し、学習済みの推定器５０の演算処理を実行する。これにより、検査装置２は、製品Ｒに欠陥が含まれるか否かを検査（推定）した結果に対応する出力値を学習済みの推定器５０から取得する。そして、検査装置２は、検査の結果に関する情報を出力する。
【００３６】
以上のとおり、本実施形態では、推定器５０は、学習画像６１から直接的に製品Ｒの良否を推定するように訓練されるのではなく、学習画像６１から導出された第１特徴７１及び第２特徴７３の少なくともいずれかから製品Ｒの良否を推定するように訓練される。第１特徴７１及び第２特徴７３は、学習画像６１そのものよりも次元が低くなるように導出されるため、第１特徴７１及び第２特徴７３の有する情報量は学習画像６１の情報量よりも少なくなる。そのため、学習画像６１から直接的に製品Ｒの良否を推定するように訓練されるケースと比較して、本実施形態では、推定器５０に対する入力データの情報量を抑えることができるため、推定器５０の構成を単純化することができる。
【００３７】
加えて、本実施形態では、学習画像６１より抽出された第１特徴７１に拡大処理を適用することで、第１特徴７１とは異なる第２特徴７３が生成される。これにより、製品Ｒの良否を導出するための特徴のバリエーションを豊富にすることができる。すなわち、機械学習に利用する訓練データの件数を増やすことができる。そのため、学習画像６１の件数が少なくても、欠陥推定の一定の精度を担保するのに十分な件数の学習データを用意することができる。したがって、本実施形態に係る推定器生成装置１によれば、推定器５０の計算コストを低減しつつ、学習画像６１の件数が比較的に少なくても、画像に写る製品Ｒの良否を高精度に推定可能な推定器５０を構築することができる。また、本実施形態に係る検査装置２によれば、この推定器５０を利用することで、製品Ｒの外観検査を高精度かつ高速に実施することができる。
【００３８】
なお、図１の例では、推定器生成装置１及び検査装置２は別個のコンピュータである。しかしながら、検査システム１００の構成は、このような例に限定されなくてもよい。推定器生成装置１及び検査装置２は一体のコンピュータで構成されてもよい。また、推定器生成装置１及び検査装置２はそれぞれ複数台のコンピュータにより構成されてもよい。更に、推定器生成装置１及び検査装置２はネットワークに接続されていなくてもよい。この場合、推定器生成装置１及び検査装置２の間のデータのやりとりは、不揮発メモリ等の記憶媒体を介して行われてもよい。
【００３９】
また、各特徴（７１、７３）は、画像から導出可能な何らかの情報であれば、その種類及びデータ形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。第１特徴７１の抽出には、例えば、一般的な画像処理（例えば、エッジ抽出）、ＳＩＦＴ、学習済みの学習モデル（例えば、畳み込みニューラルネットワーク）等が用いられてよい。拡大処理は、１又は複数の第１特徴７１から異なる第２特徴７３を導出する処理である。拡大処理には、例えば、複数の第１特徴７１を合成する処理、幾何的な変換等により第１特徴７１を変換する処理等が用いられてよい。
【００４０】
また、製品Ｒは、外観検査の対象となり得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。製品Ｒは、例えば、電子機器、電子部品、自動車部品、薬品、食品等の製造ラインで搬送される物であってよい。電子機器は、例えば、携帯電話等である。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等である。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等である。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。また、欠陥は、製品Ｒの良否に関係し得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。欠陥は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等である。ラベル６３により示される欠陥の種別には、製品Ｒに欠陥がないことも含まれてよい。
【００４１】
§２  構成例
［ハードウェア構成］
＜推定器生成装置＞
次に、図２を用いて、本実施形態に係る推定器生成装置１のハードウェア構成の一例について説明する。図２は、本実施形態に係る推定器生成装置１のハードウェアの一例を模式的に例示する。
【００４２】
図２に示されるとおり、本実施形態に係る推定器生成装置１は、制御部１１、記憶部１２、通信インタフェース１３、入力装置１４、出力装置１５、及びドライブ１６が電気的に接続されたコンピュータである。なお、図２では、通信インタフェースを「通信Ｉ／Ｆ」と記載している。
【００４３】
制御部１１は、ハードウェアプロセッサであるＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部１２は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部１２は、推定器生成プログラム１２１、複数の学習データセット６０、学習結果データ１２５等の各種情報を記憶する。
【００４４】
推定器生成プログラム１２１は、推定器生成装置１に、後述する機械学習の情報処理（図６）を実行させ、学習済みの推定器５０を構築させるためのプログラムである。推定器生成プログラム１２１は、この情報処理の一連の命令を含む。各学習データセット６０は、上記学習画像６１及びラベル６３により構成され、推定器５０の機械学習に利用される。学習結果データ１２５は、機械学習により構築された学習済みの推定器５０の設定を行うためのデータである。学習結果データ１２５は、推定器生成プログラム１２１の実行結果として生成される。詳細は後述する。
【００４５】
通信インタフェース１３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。推定器生成装置１は、この通信インタフェース１３を利用することで、ネットワークを介したデータ通信を他の情報処理装置（例えば、検査装置２）と行うことができる。
【００４６】
入力装置１４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置１５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置１４及び出力装置１５を利用することで、推定器生成装置１を操作することができる。
【００４７】
ドライブ１６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９１に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ１６の種類は、記憶媒体９１の種類に応じて適宜選択されてよい。上記推定器生成プログラム１２１及び複数の学習データセット６０の少なくともいずれかは、この記憶媒体９１に記憶されていてもよい。
【００４８】
記憶媒体９１は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。推定器生成装置１は、この記憶媒体９１から、上記推定器生成プログラム１２１及び複数の学習データセット６０の少なくともいずれかを取得してもよい。
【００４９】
ここで、図２では、記憶媒体９１の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９１の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００５０】
なお、推定器生成装置１の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部１１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ（field-programmable gate array）、ＤＳＰ（digital signal processor）等で構成されてよい。記憶部１２は、制御部１１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース１３、入力装置１４、出力装置１５及びドライブ１６の少なくともいずれかは省略されてもよい。推定器生成装置１は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、推定器生成装置１は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、ＰＣ（Personal Computer）等であってもよい。
【００５１】
＜検査装置＞
次に、図３を用いて、本実施形態に係る検査装置２のハードウェア構成の一例について説明する。図３は、本実施形態に係る検査装置２のハードウェア構成の一例を模式的に例示する。
【００５２】
図３に示されるとおり、本実施形態に係る検査装置２は、制御部２１、記憶部２２、通信インタフェース２３、入力装置２４、出力装置２５、ドライブ２６、及び外部インタフェース２７が電気的に接続されたコンピュータである。なお、図３では、外部インタフェースを「外部Ｉ／Ｆ」と記載している。検査装置２の制御部２１〜ドライブ２６はそれぞれ上記推定器生成装置１の制御部１１〜ドライブ１６それぞれと同様に構成されてよい。
【００５３】
すなわち、制御部２１は、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部２２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部２２は、検査プログラム２２１、学習結果データ１２５等の各種情報を記憶する。
【００５４】
検査プログラム２２１は、学習済みの推定器５０を利用して、対象画像８１に写る製品Ｒの外観検査を実施する後述の情報処理（図１０）を検査装置２に実行させるためのプログラムである。検査プログラム２２１は、この情報処理の一連の命令を含む。詳細は後述する。
【００５５】
通信インタフェース２３は、例えば、有線ＬＡＮモジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。検査装置２は、この通信インタフェース２３を利用することで、ネットワークを介したデータ通信を他の情報処理装置（例えば、推定器生成装置１）と行うことができる。
【００５６】
入力装置２４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置２５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置２４及び出力装置２５を利用することで、検査装置２を操作することができる。
【００５７】
ドライブ２６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９２に記憶されたプログラムを読み込むためのドライブ装置である。上記検査プログラム２２１及び学習結果データ１２５のうちの少なくともいずれかは、記憶媒体９２に記憶されていてもよい。また、検査装置２は、記憶媒体９２から、上記検査プログラム２２１及び学習結果データ１２５のうちの少なくともいずれかを取得してもよい。
【００５８】
外部インタフェース２７は、例えば、ＵＳＢ（Universal Serial Bus）ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース２７の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、検査装置２は、外部インタフェース２７を介して、カメラＣＡに接続される。
【００５９】
カメラＣＡは、製品Ｒを写した対象画像８１を取得するのに利用される。カメラＣＡの種類及び配置場所は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。カメラＣＡには、例えば、デジタルカメラ、ビデオカメラ等の公知のカメラが利用されてよい。また、カメラＣＡは、製品Ｒが搬送される製造ラインの近傍に配置されてよい。なお、カメラＣＡが通信インタフェースを備える場合、検査装置４は、外部インタフェース２７ではなく、通信インタフェース２３を介して、カメラＣＡに接続されてもよい。
【００６０】
なお、検査装置２の具体的なハードウェア構成に関して、上記推定器生成装置１と同様に、実施の形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部２１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＤＳＰ等で構成されてよい。記憶部２２は、制御部２１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース２３、入力装置２４、出力装置２５、ドライブ２６及び外部インタフェース２７の少なくともいずれかは省略されてもよい。検査装置２は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、検査装置２は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のデスクトップＰＣ、ノートＰＣ、タブレットＰＣ、スマートフォンを含む携帯電話等が用いられてよい。
【００６１】
［ソフトウェア構成］
＜推定器生成装置＞
次に、図４を用いて、本実施形態に係る推定器生成装置１のソフトウェア構成の一例について説明する。図４は、本実施形態に係る推定器生成装置１のソフトウェア構成の一例を模式的に例示する。
【００６２】
推定器生成装置１の制御部１１は、記憶部１２に記憶された推定器生成プログラム１２１をＲＡＭに展開する。そして、制御部１１は、ＲＡＭに展開された推定器生成プログラム１２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図４に示されるとおり、本実施形態に係る推定器生成装置１は、データ取得部１１１、抽出部１１２、拡大処理部１１３、学習処理部１１４、及び保存処理部１１５をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、推定器生成装置１の各ソフトウェアモジュールは、制御部１１（ＣＰＵ）により実現される。
【００６３】
データ取得部１１１は、外観検査の対象となる製品Ｒを写した学習画像６１、及び製品Ｒに含まれる欠陥の種別を示すラベル６３の組み合わせによりそれぞれ構成された複数の学習データセット６０を取得する。抽出部１１２は、各学習データセット６０に含まれる学習画像６１から１又は複数の第１特徴７１を抽出する。拡大処理部１１３は、抽出された１又は複数の第１特徴７１に拡大処理を適用することで、１又は複数の第１特徴７１とは異なる１又は複数の第２特徴７３を生成する。
【００６４】
学習処理部１１４は、機械学習を実施する対象となる推定器５０を保持する。学習処理部１１４は、機械学習を行うことで、１又は複数の第１特徴７１及び１又は複数の第２特徴７３の少なくともいずれかから、対応するラベル６３と一致するように、学習画像６１に写る製品Ｒに含まれる欠陥の種別を推定するように訓練された推定器５０を構築する。保存処理部１１５は、構築された学習済みの推定器５０に関する情報を学習結果データ１２５として記憶部１２に保存する。
【００６５】
なお、「推定」することは、例えば、グループ分け（分類、識別）により離散値（クラス）を導出すること、及び回帰により連続値を導出することのいずれかであってよい。ラベル６３のデータ形式は、製品Ｒに含まれ得る欠陥の種別を示す形態（すなわち、推定器５０の出力形式）に応じて適宜選択されてよい。クラス等の離散値で欠陥の種別を表現する場合、ラベル６３は、離散値の数値データにより構成されてよい。あるいは、対応する種別の欠陥の存在する確率等の連続値で欠陥の種別を表現する場合、ラベル６３は、連続値の数値データにより構成されてよい。
【００６６】
（推定器）
次に、推定器５０の構成の一例について説明する。図４に示されるとおり、本実施形態に係る推定器５０は、ニューラルネットワークにより構成されている。具体的には、推定器５０は、いわゆる深層学習に用いられる多層構造のニューラルネットワークにより構成されており、入力層５０１、中間層（隠れ層）５０３、及び出力層５０５を備えている。
【００６７】
なお、図４の例では、推定器５０を構成するニューラルネットワークは、１層の中間層５０３を備えており、入力層５０１の出力が中間層５０３に入力され、中間層５０３の出力が出力層５０５に入力されている。ただし、推定器５０の構成は、このような例に限定されなくてもよい。中間層５０３の数は、１層に限られなくてもよい。推定器５０は、２層以上の中間層５０３を備えてもよい。
【００６８】
各層（５０１、５０３、５０５）は、１又は複数のニューロンを備えている。各層（５０１、５０３、５０５）に含まれるニューロンの数は、実施の形態に応じて適宜設定されてよい。隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。図４の例では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
【００６９】
各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。つまり、これらの各ニューロン間の結合の重み及び各ニューロンの閾値は、演算処理に利用される推定器５０のパラメータの一例である。学習処理部１１４は、１又は複数の第１特徴７１及び１又は複数の第２特徴７３の少なくともいずれかを入力層５０１に入力し、これらのパラメータを利用して、推定器５０の演算処理を実行する。
【００７０】
この演算処理の結果、学習処理部１１４は、学習画像６１に写る製品Ｒの良否（すなわち、欠陥の種別）を推定した結果に対応する出力値を出力層５０５から取得する。続いて、学習処理部１１４は、取得した出力値とラベル６３の値との誤差を算出する。そして、学習処理部１１４は、算出される誤差の和が小さくなるように、推定器５０のパラメータの値を調節する。出力層５０５から得られる出力値とラベル６３の値との誤差の和が閾値以下になるまで、学習処理部１１４は、推定器５０のパラメータの値の調節を繰り返す。これにより、学習処理部１１４は、各学習データセット６０について、学習画像６１から導出された１又は複数の第１特徴７１及び１又は複数の第２特徴７３の少なくともいずれかを入力すると、当該学習画像６１に関連付けられたラベル６３により示される欠陥の種別に対応する出力値を出力するように訓練された推定器５０を構築する。
【００７１】
この機械学習の処理が完了した後、保存処理部１１５は、構築された学習済みの推定器５０の構成（例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、及び演算パラメータ（例えば、各ニューロン間の結合の重み、各ニューロンの閾値）を示す情報を学習結果データ１２５として生成する。そして、保存処理部１１５は、生成した学習結果データ１２５を記憶部１２に保存する。
【００７２】
＜検査装置＞
次に、図５を用いて、本実施形態に係る検査装置２のソフトウェア構成の一例について説明する。図５は、本実施形態に係る検査装置２のソフトウェア構成の一例を模式的に例示する。
【００７３】
検査装置２の制御部２１は、記憶部２２に記憶された検査プログラム２２１をＲＡＭに展開する。そして、制御部２１は、ＲＡＭに展開された検査プログラム２２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図５に示されるとおり、本実施形態に係る検査装置２は、画像取得部２１１、抽出部２１２、検査部２１３、及び出力部２１４をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、検査装置２の各ソフトウェアモジュールも、上記推定器生成装置１と同様に、制御部２１（ＣＰＵ）により実現される。
【００７４】
画像取得部２１１は、外観検査の対象となる製品Ｒを写した対象画像８１を取得する。例えば、画像取得部２１１は、カメラＣＡにより製品Ｒを撮影することで対象画像８１を取得する。抽出部２１２は、取得した対象画像８１から１又は複数の特徴８３を抽出する。検査部２１３は、学習結果データ１２５を保持することで、推定器生成装置１により構築された学習済みの推定器５０を含んでいる。具体的には、検査部２１３は、学習結果データ１２５を参照して、学習済みの推定器５０の設定を行う。そして、検査部２１３は、抽出した１又は複数の特徴８３を学習済みの推定器５０に入力し、学習済みの推定器５０の演算処理を実行することで、製品Ｒに欠陥が含まれるか否かを検査（すなわち、製品Ｒの良否を判定）した結果に対応する出力値を学習済みの推定器５０から取得する。これにより、検査部２１３は、学習済みの推定器５０を利用して、抽出した１又は複数の特徴８３に基づいて、対象画像８１に写る製品Ｒに欠陥が含まれるか否かを検査する。出力部２１４は、検査の結果に関する情報を出力する。
【００７５】
＜その他＞
推定器生成装置１及び検査装置２の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、推定器生成装置１及び検査装置２の各ソフトウェアモジュールがいずれも汎用のＣＰＵによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。また、推定器生成装置１及び検査装置２それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【００７６】
§３  動作例
［推定器生成装置］
次に、図６を用いて、本実施形態に係る推定器生成装置１の動作例について説明する。図６は、本実施形態に係る推定器生成装置１の処理手順の一例を示す。以下で説明する処理手順は、本発明の「推定器生成方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００７７】
（ステップＳ１０１）
ステップＳ１０１では、制御部１１は、データ取得部１１１として動作し、学習画像６１及びラベル６３の組み合わせによりそれぞれ構成された複数の学習データセット６０を取得する。
【００７８】
複数の学習データセット６０を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、カメラ及び製品Ｒを用意し、欠陥のある又は欠陥のない製品Ｒをカメラにより撮影する。これにより、学習画像６１を生成することができる。そして、学習画像６１に写る製品Ｒに含まれる欠陥の種別（欠陥が無いことも含む）を示すラベル６３を適宜生成し、生成したラベル６３を対応する学習画像６１に関連付ける。これにより、各学習データセット６０を生成することができる。
【００７９】
この学習データセット６０の生成は、コンピュータの動作により自動的に行われてもよいし、オペレータの操作により手動的に行われてもよい。また、学習データセット６０を生成する情報処理は、推定器生成装置１において実行されてもよいし、推定器生成装置１以外の他のコンピュータにおいて実行されてもよい。
【００８０】
各学習データセット６０を推定器生成装置１が生成する場合、制御部１１は、自動的又はオペレータの操作により手動的に上記情報処理を実行することで、複数の学習データセット６０を取得する。一方、各学習データセット６０を他のコンピュータが生成する場合、制御部１１は、例えば、ネットワーク、記憶媒体９１等を介して、他のコンピュータにより生成された複数の学習データセット６０を取得する。
【００８１】
なお、ラベル６３のデータ形式は、上記のとおり、推定器５０の出力形式に応じて適宜選択されてよい。例えば、ラベル６３は、製品Ｒの良否を２値で示すように設定されてよい。また、例えば、ラベル６３は、製品Ｒが良品である（すなわち、欠陥が無い）確率又は製品Ｒに欠陥が存在する確率を連続値で示すように設定されてもよい。また、例えば、ラベル６３は、欠陥のある箇所等を示すように設定されてもよい。
【００８２】
取得する学習データセット６０の件数は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。複数の学習データセット６０を取得すると、制御部１１は、次のステップＳ１０２に処理を進める。
【００８３】
（ステップＳ１０２）
ステップＳ１０２では、制御部１１は、抽出部１１２として動作し、各学習データセット６０に含まれる学習画像６１から１又は複数の第１特徴７１を抽出する。
【００８４】
図７は、本実施形態に係る特徴抽出処理の一例を模式的に例示する。本実施形態では、制御部１１は、特徴抽出処理として畳み込み処理を各学習画像６１に適用することで、各学習画像６１から第１特徴７１を抽出する。これにより、１又は複数の第１特徴７１は、学習画像６１よりもサイズの小さい特徴画像として抽出される。
【００８５】
畳み込み処理は、画像と所定のフィルタとの相関を算出する演算処理に相当する。制御部１１は、例えば、学習画像６１の一部の領域に畳み込み処理を適用することで、学習画像６１よりもサイズの小さい特徴画像を学習画像６１から抽出してもよい。或いは、制御部１１は、例えば、学習画像６１に畳み込み処理を適用した後、得られた画像にプーリング処理を更に適用することにより、学習画像６１よりもサイズの小さい特徴画像を学習画像６１から抽出してもよい。プーリング処理は、画像内に表れる特徴の微小な位置変化に対する応答の不変性を得るために、対象領域内の複数の画素を１つの画素に集約する演算処理に相当する。この畳み込み処理及びプーリング処理は、一般的な画像処理により実行されてもよいし、学習済みの学習モデル（例えば、畳み込み層及びプーリング層を備える畳み込みニューラルネットワーク）を利用して実行されてもよい。また、畳み込み処理及びプーリング処理それぞれを適用する回数は、実施の形態に応じて適宜選択されてよい。
【００８６】
特徴画像の縦幅（ｈ）及び横幅（ｗ）はそれぞれ、学習画像６１の縦幅（Ｈ）及び横幅（Ｗ）それぞれよりも小さくなるように適宜決定される。学習画像６１の一部の領域に畳み込み処理を適用する場合、抽出される特徴画像のサイズは、畳み込み処理を適用する範囲に応じて決定される。また、プーリング処理を適用する場合、抽出される特徴画像のサイズは、プーリング処理のウィンドウサイズ及び適用回数に応じて決定される。制御部１１は、畳み込み処理及びプーリング処理のこれらのパラメータを適宜決定することで、抽出される特徴画像のサイズを決定してよい。各特徴画像は、「特徴マップ」と称されてもよい。各第１特徴７１に対応する特徴画像には、欠陥に関する像が含まれ得る。
【００８７】
抽出する第１特徴７１の数は、実施の形態に応じて適宜設定されてよい。制御部１１は、各パラメータを変更しながら、上記いずれかの処理を学習画像６１に適用することで、複数の異なる第１特徴７１を学習画像６１から抽出することができる。複数の第１特徴７１を学習画像６１から抽出する場合、各第１特徴７１に対応する特徴画像のサイズは、互いに一致していてもよいし、互いに異なっていてもよい。１又は複数の第１特徴７１を抽出すると、制御部１１は、次のステップＳ１０３に処理を進める。
【００８８】
ただし、第１特徴７１の種類及び第１特徴７１を抽出する方法は、このような例に限定されなくてもよい。第１特徴７１は、学習画像６１から導出可能な何らかの情報（特に、推定対象（本実施形態では、欠陥）に関連し得る情報）であれば、その種類及びデータ形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。また、第１特徴７１を抽出する方法は、第１特徴７１の種類及びデータ形式に応じて、実施の形態に応じて適宜選択されてよい。第１特徴７１の抽出には、例えば、一般的な画像処理（例えば、エッジ抽出）、ＳＩＦＴ、学習済みの学習モデル（例えば、畳み込みニューラルネットワーク）等が用いられてよい。
【００８９】
（ステップＳ１０３）
ステップＳ１０３では、制御部１１は、拡大処理部１１３として動作し、抽出された１又は複数の第１特徴７１に拡大処理を適用することで、１又は複数の第１特徴７１とは異なる１又は複数の第２特徴７３を生成する。
【００９０】
拡大処理は、１又は複数の特徴（第１特徴７１）から異なる特徴（第２特徴７３）を導出するための情報処理である。この拡大処理には、例えば、複数の特徴を合成する処理、幾何的な変換等により特徴を変換する処理等が用いられてよい。また、本実施形態では、第１特徴７１は特徴画像として抽出される。そのため、特徴を変換する処理には、所定のノイズ（ホワイトノイズ、ランダムノイズ等）を特徴画像に合成する処理、特徴画像に含まれる画素を変換する処理等が用いられてよい。画素の変換には、色変換、濃度変換等が含まれてよく、これらの変換には、所定の変換関数が用いられてよい。本実施形態では、制御部１１は、以下の２つの方法の少なくともいずれかを採用することにより、１又は複数の第１特徴７１から第２特徴７３を導出する。
【００９１】
（１）第１の方法
まず、図８Ａを用いて、第１の方法について説明する。図８Ａは、第１の方法（重み付け合成）による拡大処理の一例を模式的に例示する。第１の方法では、各第１特徴７１には重みが設定されている。各第１特徴７１に対する重みを設定する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各第１特徴７１に対する重みは、ランダムに決定されてもよいし、オペレータの入力により決定されてよい。制御部１１は、設定された重みを各第１特徴７１にかけることで、各第１特徴７１の重み付けを行う。そして、制御部１１は、重み付けされた各第１特徴７１を合成することで、各第１特徴７１とは異なる第２特徴７３を生成する。
【００９２】
図８Ａの具体例では、複数の第１特徴７１のうち３つの第１特徴７１１〜７１３（特徴画像）を合成する場面が模式的に示されている。この具体例では、制御部１１は、各第１特徴７１１〜７１３（特徴画像）の各画素に各重みＷ１〜Ｗ３を乗算する。そして、制御部１１は、この乗算により得られた各画像を足し合わせることで、重み付けされた各第１特徴７１１〜７１３（特徴画像）を合成する。これにより、制御部１１は、各第１特徴７１１〜７１３から新たな第２特徴７３（特徴画像）を生成することができる。
【００９３】
ただし、合成する第１特徴７１の数は、３つに限定されなくてもよく、２つであってもよいし、４つ以上であってもよい。制御部１１は、ステップＳ１０２で抽出した複数の第１特徴７１から第２特徴７３の生成に利用する複数の第１特徴７１を適宜選択してよい。また、第１の方法により生成する第２特徴７３の数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。制御部１１は、各第１特徴７１に適用する重みを変更すること、及び合成する第１特徴７１を変更することの少なくともいずれかにより、複数の異なる第２特徴７３を生成することができる。合成する第１特徴７１は、ランダムに選択されてもよいし、オペレータの指定により選択されてもよい。
【００９４】
なお、図８Ｂに示されるとおり、合成する各第１特徴７１に対応する特徴画像のサイズが異なる場合には、制御部１１は、各特徴画像のサイズを一致させるための前処理を実行する。図８Ｂは、サイズの異なる複数の第１特徴７１を取り扱う場面の一例を模式的に例示する。図８Ｂの具体例では、３つの第１特徴７１１〜７１３（特徴画像）それぞれのサイズが異なる場面が模式的に示されている。この具体例では、制御部１１は、各第１特徴７１１〜７１３（特徴画像）をフィルタリングすることで、各第１特徴７１１〜７１３（特徴画像）のサイズを互いに一致するように調節する。画像のサイズを調節するフィルタリングには、例えば、最近傍フィルタリング（nearest neighbor filtering）等の公知の画像処理のフィルタリングが用いられてよい。なお、画像のサイズを調整する変換処理は、このようなフィルタリングを用いた例に限られなくてもよい。画像のサイズを調整する変換処理には、例えば、バイリニア補間法（bilinear interpolation）、トリリニア補間法（trilinear interpolation）等の線形補間法、Guided Backpropagation等のネットワークによる方法が採用されてもよい。
【００９５】
フィルタリング後の各第１特徴７１１〜７１３（特徴画像）のサイズは、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。フィルタリング後の各第１特徴７１１〜７１３（特徴画像）のサイズは、フィルタリング前の第１特徴７１１〜７１３（特徴画像）のうちのいずれかと一致していてもよいし、フィルタリング前の第１特徴７１１〜７１３（特徴画像）のいずれとも異なっていてもよい。このように、合成する各第１特徴７１のサイズが異なる場合には、制御部１１は、前処理として、各第１特徴７１のサイズを一致させるように調節する処理を実行する。そして、制御部１１は、サイズの調整された各第１特徴７１に上記重み付け剛性の処理を適用することで、各第１特徴７１から第２特徴７３を生成することができる。
【００９６】
（２）第２の方法
次に、図９を用いて、第２の方法について説明する。図９は、第２の方法（幾何変換）による拡大処理の一例を模式的に例示する。図９に示されるとおり、第２の方法では、制御部１１は、１又は複数の第１特徴７１に対して幾何学的な変換を適用することで、１又は複数の第１特徴７１とは異なる第２特徴７３を生成する。幾何学的な変換は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、幾何学的な変換は、平行移動、回転移動、反転、又はこれら組み合わせであってよい。
【００９７】
第２の方法により生成する第２特徴７３の数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。制御部１１は、１つの第１特徴７１に対して幾何学的な変換を適用することで、１つの第２特徴７３を生成することができる。制御部１１は、幾何学的な変換を適用する第１特徴７１を変更すること、及び幾何学的な変換のパラメータを変更することの少なくともいずれかにより、複数の異なる第２特徴７３を生成することができる。幾何学的な変換を適用する第１特徴７１は、ランダムに選択されてもよいし、オペレータの指定により選択されてもよい。また、幾何学的な変換のパラメータは、例えば、平行移動の量、回転移動の量、反転の有無等を規定する。幾何学的な変換の各パラメータの値は、ランダムに決定されてもよいし、オペレータの入力により決定されてもよい。
【００９８】
以上のとおり、本実施形態では、制御部１１は、上記第１の方法及び第２の方法の少なくともいずれかを採用することにより、１又は複数の第１特徴７１とは異なる１又は複数の第２特徴７３を当該１又は複数の第１特徴７１から生成する。１又は複数の第２特徴７３を生成すると、制御部１１は、次のステップＳ１０４に処理を進める。
【００９９】
（ステップＳ１０４）
ステップＳ１０４では、制御部１１は、学習処理部１１４として動作し、機械学習を行うことで、１又は複数の第１特徴７１及び１又は複数の第２特徴７３の少なくともいずれかから、対応するラベル６３と一致するように、学習画像６１に写る製品Ｒに含まれる欠陥の種別を推定するように訓練された推定器５０を構築する。
【０１００】
まず、制御部１１は、機械学習の処理対象となる推定器５０を用意する。用意する推定器５０の構成、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部１１は、過去の機械学習を行うことで得られた学習結果データに基づいて、推定器５０を用意してもよい。
【０１０１】
次に、制御部１１は、各学習データセット６０について、学習画像６１から導出した１又は複数の第１特徴７１及び１又は複数の第２特徴７３の少なくともいずれかを入力データ（訓練データ）として利用し、対応するラベル６３を正解データ（教師データ）として利用して、推定器５０の学習処理を実行する。入力データとして選択する特徴の数、換言すると、推定器５０に入力する特徴の数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数の特徴を推定器５０に入力する場合、当該複数の特徴は、第１特徴７１のみで構成されてもよいし、第２特徴７３のみで構成されてもよいし、第１特徴７１及び第２特徴７３の両方で構成されてもよい。推定器５０に入力する特徴の数は、学習画像６１に写る製品Ｒに含まれる欠陥の種別を推定するのに利用する特徴の数に相当する。
【０１０２】
つまり、学習画像６１から導出された１又は複数の第１特徴７１及び１又は複数の第２特徴７３から選択された１又は複数の特徴、並びに対応するラベル６３により、推定器５０の機械学習に利用するためのデータセットが構成される。これにより、本実施形態では、１件の学習データセット６０から、推定器５０の機械学習にそれぞれ利用可能な複数のデータセットを導出することができる。例えば、上記ステップＳ１０２では、制御部１１は、学習画像６１から４件の第１特徴７１を抽出したと想定する。また、上記ステップＳ１０３では、制御部１１は、４件の第１特徴７１から６件の第２特徴７３を生成したと想定する。更に、推定器５０は、１件の特徴の入力を受け付けるように構成されていると想定する。この場合、制御部１１は、１件の学習データセット６０から１０件のデータセットを導出することができる。制御部１１は、各学習データセット６０から導出されるこのようなデータセットを利用して、推定器５０の学習処理を実行する。この確率的勾配降下法等が用いられてよい。
【０１０３】
例えば、第１のステップでは、制御部１１は、各データセットについて、選択された１又は複数の特徴を入力層５０１に入力し、入力側から順に各層（５０１、５０３、５０５）に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、選択された１又は複数の特徴から欠陥の種別を推定した結果に対応する出力値を出力層５０５から取得する。第２のステップでは、制御部１１は、取得した出力値とラベル６３の値との誤差を算出する。第３のステップでは、制御部１１は、誤差逆伝播法により、算出した出力値の誤差を用いて、各層（５０１、５０３、５０５）に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。第４のステップでは、制御部１１は、算出した各誤差により、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
【０１０４】
制御部１１は、上記第１〜第４のステップを繰り返すことで、各データセットについて、選択された１又は複数の特徴を入力すると、対応するラベル６３と一致する出力値を出力するように、推定器５０のパラメータの値を調節する。換言すると、制御部１１は、各データセットについて、出力層５０５から得られる出力値とラベル６３の値との誤差の和が閾値以下になるまで、上記第１〜第４のステップによる推定器５０のパラメータの値の調節を繰り返す。閾値は、実施の形態に応じて適宜設定されてよい。これにより、制御部１１は、１又は複数の第１特徴７１及び１又は複数の第２特徴７３の少なくともいずれかから、対応するラベル６３と一致するように、学習画像６１に写る製品Ｒに含まれる欠陥の種別を推定するように訓練された推定器５０を構築することができる。この推定器５０の機械学習が完了すると、制御部１１は、次のステップＳ１０５に処理を進める。
【０１０５】
（ステップＳ１０５）
ステップＳ１０５では、制御部１１は、保存処理部１１５として動作し、構築された学習済みの推定器５０に関する情報を学習結果データ１２５として記憶部１２に保存する。本実施形態では、制御部１１は、ステップＳ１０４の機械学習により構築された推定器５０の構成及びパラメータを示す情報を学習結果データ１２５として生成する。そして、制御部１１は、生成した学習結果データ１２５を記憶部１２に保存する。これにより、制御部１１は、本動作例に係る処理を終了する。
【０１０６】
なお、学習結果データ１２５の保存先は、記憶部１２に限られなくてもよい。制御部１１は、例えば、ＮＡＳ（Network Attached Storage）等のデータサーバに学習結果データ１２５を格納してもよい。
【０１０７】
また、学習済みの推定器５０を構築した後、制御部１１は、生成した学習結果データ１２５を任意のタイミングで検査装置２に転送してもよい。検査装置２は、推定器生成装置１から転送を受けることで学習結果データ１２５を取得してもよいし、推定器生成装置１又はデータサーバにアクセスすることで学習結果データ１２５を取得してもよい。学習結果データ１２５は、検査装置２に予め組み込まれてもよい。
【０１０８】
更に、制御部１１は、上記ステップＳ１０１〜Ｓ１０５の処理を定期的に繰り返すことで、学習結果データ１２５を定期的に更新してもよい。この繰り返す際には、学習データセット６０の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部１１は、更新した学習結果データ１２５を学習処理の実行毎に検査装置２に転送することで、検査装置２の保持する学習結果データ１２５を定期的に更新してもよい。
【０１０９】
［検査装置］
次に、図１０を用いて、本実施形態に係る検査装置２の動作例について説明する。図１０は、本実施形態に係る検査装置２の処理手順の一例を例示するフローチャートである。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１１０】
（ステップＳ２０１）
ステップＳ２０１では、制御部２１は、画像取得部２１１として動作し、外観検査の対象となる製品Ｒを写した対象画像８１を取得する。本実施形態では、検査装置２は、外部インタフェース２７を介してカメラＣＡに接続している。そのため、制御部２１は、カメラＣＡから対象画像８１を取得する。この対象画像８１は、動画像データであってもよいし、静止画像データであってもよい。対象画像８１を取得すると、制御部２１は、次のステップＳ２０２に処理を進める。
【０１１１】
ただし、対象画像８１を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、検査装置２とは異なる他の情報処理装置が、カメラＣＡに接続されていてもよい。この場合、制御部２１は、他の情報処理装置を介して対象画像８１を取得してもよい。
【０１１２】
（ステップＳ２０２）
ステップＳ２０２では、制御部２１は、抽出部２１２として動作し、取得した対象画像８１から１又は複数の特徴８３を抽出する。
【０１１３】
本ステップＳ２０２は、上記ステップＳ１０２と同様に処理される。本実施形態では、制御部２１は、対象画像８１に畳み込み処理を適用することで、対象画像８１から１又は複数の特徴８３を抽出する。また、抽出する特徴８３の数は、上記ステップＳ１０４で入力データとして選択された特徴の数、すなわち、推定器５０が入力を受け付ける特徴の数と一致するように決定される。１又は複数の特徴８３を抽出すると、制御部２１は、次のステップＳ２０３に処理を進める。
【０１１４】
（ステップＳ２０３）
ステップＳ２０３では、制御部２１は、検査部２１３として動作し、学習済みの推定器５０を利用して、抽出した１又は複数の特徴８３に基づいて、対象画像８１に写る製品Ｒに欠陥が含まれるか否かを検査する。
【０１１５】
本実施形態では、制御部２１は、学習結果データ１２５を参照して、学習済みの推定器５０の設定を行う。次に、制御部２１は、抽出した１又は複数の特徴８３を推定器５０の入力層５０１に入力し、入力側から順に各層（５０１、５０３、５０５）に含まれる各ニューロンの発火判定を行う。これにより、制御部２１は、対象画像８１に写る製品Ｒに欠陥が含まれるか否か（すなわち、製品Ｒの良否）を推定した結果に対応する出力値を推定器５０の出力層５０５から取得する。制御部２１は、推定器５０の出力層５０５から取得した出力値に基づいて、対象画像８１に写る製品Ｒに欠陥が含まれるか否かを検査する。
【０１１６】
なお、製品Ｒの良否の検査は、推定器５０の出力形式に応じて適宜行われてよい。例えば、推定器５０から得られる出力値が製品Ｒの良否を２値で示す場合、制御部２１は、推定器５０から得られる出力値に応じて、製品Ｒの良否を特定することができる。また、例えば、推定器５０から得られる出力値が、製品Ｒが良品である確率又は製品Ｒに欠陥がある確率を連続値で示す場合、制御部２１は、推定器５０から得られる出力値と閾値とを比較することで、製品Ｒの良否を判定することができる。また、例えば、推定器５０から得られる出力値が欠陥のある箇所を示す場合、制御部２１は、推定器５０から得られる出力値に基づいて、対象画像８１に写る製品Ｒの良否を判定することができると共に、欠陥が存在する場合にはその欠陥の箇所を特定することができる。
【０１１７】
また、例えば、推定器５０から得られる出力値が、製品Ｒの良否又は欠陥の種別のインデックスを示す場合、検査装置２は、推定器５０から得られる出力値と製品Ｒの良否又は欠陥の種別とを対応付けたテーブル形式等の参照情報（不図示）を記憶部２２に保持していてもよい。この場合、制御部２１は、この参照情報を参照することにより、推定器５０から得られた出力値に応じて、製品Ｒの良否を判定することができる。
【０１１８】
以上により、制御部２１は、学習済みの推定器５０を利用して、抽出した１又は複数の特徴８３に基づいて、対象画像８１に写る製品Ｒに欠陥が含まれるか否かを検査することができる。製品Ｒの外観検査が完了すると、制御部２１は、次のステップＳ２０４に処理を進める。
【０１１９】
（ステップＳ２０４）
ステップＳ２０４では、制御部２１は、出力部２１４として動作し、ステップＳ２０３により製品Ｒの良否を検査した結果に関する情報を出力する。
【０１２０】
製品Ｒの良否を検査した結果の出力形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部２１は、製品Ｒの良否を検査した結果をそのまま出力装置２５に出力してもよい。また、ステップＳ２０３において、製品Ｒに欠陥があると判定した場合、制御部２１は、欠陥を発見したことを知らせるための警告を本ステップＳ２０４の出力処理として行ってもよい。また、制御部２１は、本ステップＳ２０４の出力処理として、製品Ｒの良否を検査した結果に応じた所定の制御処理を実行してもよい。具体例として、製品の搬送を行う製造ラインに検査装置２が接続されている場合、製品Ｒに欠陥があると判定したときに、制御部２１は、欠陥のある製品Ｒを欠陥のない製品とは異なる経路で搬送する指令を製造ラインに送信する処理を本ステップＳ２０４の出力処理として行ってもよい。
【０１２１】
製品Ｒの良否を検査した結果に関する情報の出力処理が完了すると、制御部２１は、本動作例に係る処理を終了する。なお、制御部２１は、製造ライン上を搬送される製品ＲがカメラＣＡの撮影範囲に入る度に、ステップＳ２０１〜Ｓ２０４の一連の処理を実行してもよい。これにより、検査装置２は、製造ライン上を搬送される製品Ｒの外観検査を行うことができる。
【０１２２】
［特徴］
以上のとおり、本実施形態では、推定器５０は、学習画像６１から直接的に製品Ｒの良否を推定するのではなく、ステップＳ１０２及びＳ１０３により学習画像６１から導出された第１特徴７１及び第２特徴７３の少なくともいずれかから製品Ｒの良否を推定するように訓練される。上記ステップＳ１０２及びＳ１０３において、第１特徴７１及び第２特徴７３は、学習画像６１そのものよりも次元が低くなるように導出されるため、第１特徴７１及び第２特徴７３の有する情報量は学習画像６１の情報量よりも少なくなる。そのため、学習画像６１から直接的に製品Ｒの良否を推定するように訓練されるケースと比較して、本実施形態では、推定器５０に対する入力データの情報量を抑えることができるため、推定器５０の構成を単純化することができる。例えば、推定器５０を構成する各層（５０１、５０３、５０５）に含まれるニューロンの数を低減することができる。
【０１２３】
加えて、本実施形態では、ステップＳ１０３により、学習画像６１より抽出された第１特徴７１に拡大処理を適用することで、第１特徴７１とは異なる第２特徴７３が生成される。これにより、製品Ｒの良否を導出するための特徴のバリエーションを豊富にすることができる。すなわち、ステップＳ１０４における機械学習に利用する訓練データの件数を増やすことができる。そのため、ステップＳ１０１で取得される学習データセット６０（学習画像６１）の件数が少なくても、欠陥推定の一定の精度を担保するのに十分な件数の学習データを用意することができる。したがって、本実施形態に係る推定器生成装置１によれば、推定器５０の計算コストを低減しつつ、学習画像６１の件数が比較的に少なくても、画像に写る製品Ｒの良否を高精度に推定可能な推定器５０を構築することができる。また、本実施形態に係る検査装置２は、この推定器５０を利用することで、ステップＳ２０１〜２０４による製品Ｒの外観検査を高精度かつ高速に実施することができる。
【０１２４】
§４  変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【０１２５】
＜４．１＞
上記実施形態では、推定器５０にはいわゆる多層構造の全結合ニューラルネットワークが用いられている。しかしながら、推定器５０を構成するニューラルネットワークの構造及び種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、推定器５０には、畳み込み層及びプーリング層を備える畳み込みニューラルネットワークが利用されてよい。
【０１２６】
また、上記実施形態では、推定器５０を構成する学習モデルとしてニューラルネットワークが用いられている。しかしながら、推定器５０を構成する学習モデルは、各特徴（７１、７３）から製品Ｒの良否を推定するための機械学習を実施可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
【０１２７】
＜４．２＞
上記実施形態では、学習結果データ１２５は、推定器５０の構成を示す情報を含んでいる。しかしながら、学習結果データ１２５の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、利用するニューラルネットワークの構成が各装置で共通化されている場合、学習結果データ１２５は、ニューラルネットワークの構成を示す情報を含んでいなくてもよい。
【０１２８】
＜４．３＞
上記実施形態に係る各情報処理（図６及び図１０）について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。例えば、上記実施形態に係る推定器生成装置１は、各学習データセット６０の学習画像６１から抽出された１又は複数の第１特徴７１を直接的に取得してもよい。この場合、推定器生成装置１のソフトウェア構成において、抽出部１１２は省略されてよい。加えて、上記情報処理において、ステップＳ１０２の処理は省略されてよい。
【０１２９】
図１１は、本変形例に係る推定器生成装置１Ａのソフトウェア構成の一例を模式的に例示する。抽出部１１２が省略される点を除き、本変形例に係る推定器生成装置１Ａのハードウェア構成及びソフトウェア構成は、上記実施形態に係る推定器生成装置１と同じであってよい。本変形例に係る推定器生成装置１Ａは、１又は複数の第１特徴７１を直接的に取得する点及び上記ステップＳ１０２を省略する点を除き、上記実施形態に係る推定器生成装置１と同様に動作してもよい。
【０１３０】
すなわち、ステップＳ１０１では、推定器生成装置１Ａの制御部は、データ取得部１１１として動作し、製品Ｒを写した学習画像から抽出された１又は複数の第１特徴７１及びラベル６３の組み合わせによりそれぞれ構成された複数の学習データセット６０Ａを取得する。ステップＳ１０３では、制御部は、拡大処理部１１３として動作し、各学習データセット６０Ａに含まれる１又は複数の第１特徴７１に拡大処理を適用することで、１又は複数の第１特徴７１とは異なる１又は複数の第２特徴７３を生成する。ステップＳ１０４では、制御部は、学習処理部１１４として動作し、機械学習を行うことで、１又は複数の第１特徴７１及び１又は複数の第２特徴７３の少なくともいずれかから、対応するラベル６３と一致するように、学習画像に写る製品Ｒに含まれる欠陥の種別を推定するように訓練された推定器５０を構築する。ステップＳ１０５では、制御部は、保存処理部１１５として動作し、構築された学習済みの推定器５０に関する情報を学習結果データ１２５として保存する。これにより、本変形例に係る推定器生成装置１Ａは、上記実施形態と同様に、製品Ｒの外観検査に利用可能な学習済みの推定器５０を生成することができる。
【０１３１】
＜４．４＞
上記実施形態では、画像に写る製品Ｒの外観検査を実施する場面に本発明を適用した例を示している。しかしながら、本発明の適用範囲は、このような外観検査の例に限られる訳ではない。本発明は、画像に写る対象物の何らかの属性を推定するあらゆる場面に適用可能である。製品Ｒの写る画像から対象物の写る画像に検査システム１００で取り扱う画像を変更することで、対象物の写る画像から何らかの属性を推定する推定システムを適宜構成することができる。
【０１３２】
図１２は、本変形例に係る推定システム１００Ｂの適用場面の一例を模式的に例示する。図１２に示されるとおり、本変形例に係る推定システム１００Ｂは、ネットワークを介して接続される推定器生成装置１Ｂ及び推定装置２Ｂを備えている。製品Ｒの写る画像から対象物の写る画像に取り扱う画像を変更する点を除き、各装置（１Ｂ、２Ｂ）のハードウェア構成及びソフトウェア構成は、上記実施形態に係る各装置（１、２）と同じであってよい。また、各装置（１Ｂ、２Ｂ）は、上記実施形態に係る各装置（１、２）と同様に動作してもよい。
【０１３３】
すなわち、本変形例に係る推定器生成装置１Ｂは、対象物ＲＢを写した学習画像６１Ｂ、及び対象物ＲＢの属性を示すラベル６３Ｂの組み合わせによりそれぞれ構成された複数の学習データセット６０Ｂを取得する。次に、推定器生成装置１Ｂは、各学習データセット６０Ｂに含まれる学習画像６１Ｂから１又は複数の第１特徴７１Ｂを抽出する。推定器生成装置１Ｂは、抽出された１又は複数の第１特徴７１Ｂに拡大処理を適用することで、１又は複数の第１特徴７１Ｂとは異なる１又は複数の第２特徴７３Ｂを生成する。そして、推定器生成装置１Ｂは、機械学習を行うことで、１又は複数の第１特徴７１Ｂ及び１又は複数の第２特徴７３Ｂの少なくともいずれかから、対応するラベル６３Ｂと一致するように、学習画像６１Ｂに写る対象物ＲＢの属性を推定するように訓練された推定器５０Ｂを構築する。なお、推定器５０Ｂの構成は、上記実施形態に係る推定器５０と同じであってよい。
【０１３４】
また、推定器生成装置１Ｂは、上記＜４．３＞と同様に、１又は複数の第１特徴７１Ｂを直接的に取得してもよい。すなわち、推定器生成装置１Ｂは、対象物ＲＢを写した学習画像６１Ｂから抽出された１又は複数の第１特徴７１Ｂ、及び対象物ＲＢの属性を示すラベル６３Ｂの組み合わせによりそれぞれ構成された複数の学習データセットを取得してもよい。次に、推定器生成装置１Ｂは、各学習データセットに含まれる１又は複数の第１特徴７１Ｂに拡大処理を適用することで、１又は複数の第１特徴７１Ｂとは異なる１又は複数の第２特徴７３Ｂを生成してもよい。そして、推定器生成装置１Ｂは、機械学習を行うことで、１又は複数の第１特徴７１Ｂ及び１又は複数の第２特徴７３Ｂの少なくともいずれかから、対応するラベル６３Ｂと一致するように、学習画像６１Ｂに写る対象物ＲＢの属性を推定するように訓練された推定器５０Ｂを構築してもよい。
【０１３５】
図１３は、本変形例に係る推定装置２Ｂのソフトウェア構成の一例を模式的に例示する。推定器生成装置１Ｂは、構築された学習済みの推定器５０Ｂに関する情報を学習結果データ１２５Ｂとして保存する。本変形例に係る推定装置２Ｂは、当該学習結果データ１２５Ｂを適宜取得する。ステップＳ２０１では、推定装置２Ｂの制御部は、画像取得部２１１として動作し、対象物ＲＢを写した対象画像８１Ｂを取得する。ステップＳ２０２では、制御部は、抽出部２１２として動作し、対象画像８１Ｂから１又は複数の特徴８３Ｂを抽出する。
【０１３６】
ステップＳ２０３では、推定装置２Ｂの制御部は、推定部２１３Ｂとして動作し、学習済みの推定器５０Ｂを利用して、抽出した１又は複数の特徴８３Ｂに基づいて、対象画像８１Ｂに写る対象物ＲＢの属性を推定する。具体的に、制御部は、学習結果データ１２５Ｂを参照して、学習済みの推定器５０Ｂの設定を行う。続いて、制御部は、抽出した１又は複数の特徴８３Ｂを学習済みの推定器５０Ｂに入力し、学習済みの推定器５０Ｂの演算処理を実行する。この演算処理の結果、推定装置２Ｂの制御部は、対象物ＲＢの属性を推定した結果に対応する出力値を学習済みの推定器５０Ｂから取得する。ステップＳ２０４では、推定装置２Ｂの制御部は、対象物ＲＢの属性を推定した結果に関する情報を出力する。これにより、本変形例に係る推定システム１００Ｂは、対象物ＲＢを写した画像から何らかの属性を推定するように構成される。
【０１３７】
なお、対象物ＲＢは、何らかの属性を推定する対象となり得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。対象物ＲＢは、例えば、上記外観検査の対象となる製品、人物、人物の身体部位（例えば、顔等）等であってよい。また、推定する対象となる対象物の「属性」は、対象物の何らかの性質に関するものであればよく、推定器により推定可能な対象物のあらゆる種類の属性を含んでもよい。対象物が人物の顔である場合、判定の対象となる属性は、例えば、表情の種別、顔のパーツ（器官を含む）の位置（特定の器官同士の相対位置関係を含む）、顔のパーツの形状、顔のパーツの色、顔のパーツの状態（開度、角度等）、その顔を所有する個人の属性等であってよい。また、対象物が人物の身体である場合、判定の対象となる属性は、例えば、身体のポーズ等であってよい。対象物が作業対象のワークである場合、判定の対象となる属性は、例えば、ワークの位置、姿勢等であってよい。
【符号の説明】
【０１３８】
１００…検査システム、
１…推定器生成装置、
１１…制御部、１２…記憶部、１３…通信インタフェース、
１４…入力装置、１５…出力装置、１６…ドライブ、
１１１…データ取得部、１１２…抽出部、
１１３…拡大処理部、１１４…学習処理部、
１１５…保存処理部、
１２１…推定器生成プログラム、１２５…学習結果データ、
２…検査装置、
２１…制御部、２２…記憶部、２３…通信インタフェース、
２４…入力装置、２５…出力装置、２６…ドライブ、
２７…外部インタフェース、
２１１…画像取得部、２１２…抽出部、
２１３…検査部、２１４…出力部、
２２１…検査プログラム、
５０…推定器、
５０１…入力層、５０３…中間（隠れ）層、５０５…出力層、
６０…学習データセット、
６１…学習画像、６３…ラベル、
７１…第１特徴、７３…第２特徴、
８１…対象画像、８３…特徴、
９１・９２…記憶媒体
【図１】
2020060398.tif 000003
【図２】
2020060398.tif 000004
【図３】
2020060398.tif 000005
【図４】
2020060398.tif 000006
【図５】
2020060398.tif 000007
【図６】
2020060398.tif 000008
【図７】
2020060398.tif 000009
【図８Ａ】
2020060398.tif 000010
【図８Ｂ】
2020060398.tif 000011
【図９】
2020060398.tif 000012
【図１０】
2020060398.tif 000013
【図１１】
2020060398.tif 000014
【図１２】
2020060398.tif 000015
【図１３】
2020060398.tif 000016