(57)【要約】【課題】大多数データの表現能力の低下を防ぎつつ、マイノリティデータの表現能力も高い適切な辞書を学習することを目的とする。【解決手段】特定カテゴリに属するデータの特徴を表現する、複数の段から成る辞書を生成する辞書生成装置であって、特定カテゴリに属する複数のデータに基づいて生成された辞書に対する、辞書の生成に用いられたデータの適合の程度を示す情報に基づいて、複数のデータから一部のデータを選択する選択手段と、選択手段により選択されたデータを用いて、辞書の次の段の辞書を生成する辞書生成手段とを有する。【選択図】図２
2018116364.tif 000002
【特許請求の範囲】
【請求項１】
特定カテゴリに属するデータの特徴を表現する、複数の段から成る辞書を生成する辞書生成装置であって、
特定カテゴリに属する複数のデータに基づいて生成された辞書に対する、前記辞書の生成に用いられたデータの適合の程度を示す情報に基づいて、前記複数のデータから一部のデータを選択する選択手段と、
前記選択手段により選択されたデータを用いて、前記辞書の次の段の辞書を生成する辞書生成手段と
を有することを特徴とする辞書生成装置。
【請求項２】
前記選択手段は、前記複数のデータそれぞれに対する前記適合の程度を示す情報の分布に基づいて、前記データを選択することを特徴とする請求項１に記載の辞書生成装置。
【請求項３】
前記辞書を用いて、前記辞書の生成に用いられた複数のデータそれぞれを再構成する再構成手段をさらに有し、
前記選択手段は、再構成により得られた再構成情報に基づいて、前記データを選択することを特徴とする請求項１又は２に記載の辞書生成装置。
【請求項４】
前記辞書は、スパースコーディングの辞書であり、
前記再構成情報は、スパースコーディングの結合係数のＬ１ノルムを含むことを特徴とする請求項３に記載の辞書生成装置。
【請求項５】
前記再構成情報に含まれる再構成ベクトルの主成分分析により得られる部分空間に前記再構成ベクトルを投影した際に生じる投影誤差を、前記複数のデータそれぞれに対して求める投影誤差評価手段をさらに有し、
前記選択手段は、前記投影誤差に基づいて、前記データを選択することを特徴とする請求項３又は４に記載の辞書生成装置。
【請求項６】
前記複数のデータそれぞれの投影誤差の分布モデルを生成するモデル生成手段をさらに有し、
前記選択手段は、前記分布モデルに基づいて、前記データを選択することを特徴とする請求項５に記載の辞書生成装置。
【請求項７】
前記分布モデルに基づいて、前記投影誤差を、前記辞書との適合の適度を示す指標値に変換する変換手段をさらに有し、
前記選択手段は、前記指標値に基づいて、前記データを選択することを特徴とする請求項６に記載の辞書生成装置。
【請求項８】
前記辞書生成手段により生成された辞書と、前記辞書の生成に用いられたデータと、を用いて、前記選択手段及び前記辞書生成手段の処理を繰り返すよう制御する繰り返し手段をさらに有することを特徴とする請求項１に記載の辞書生成装置。
【請求項９】
前記辞書の生成に用いられた複数のデータそれぞれから解像度の異なる複数のデータを生成する多解像度化手段をさらに有し、
前記選択手段は、解像度毎の複数のデータに基づいて生成された、解像度毎の複数の辞書それぞれに対する、各辞書の生成に用いられたデータの適合の程度を示す情報に基づいて、各解像度の複数のデータから、一部のデータを選択し、
前記辞書生成手段は、前記選択手段により選択された、各解像度のデータを用いて、各解像度の辞書の次の段の辞書を生成することを特徴とする請求項１に記載の辞書生成装置。
【請求項１０】
前記特定カテゴリに属する複数のデータをデータの特徴に基づいて、複数のデータセットに分割する分割手段をさらに有し、
前記選択手段は、前記複数のデータセットそれぞれに基づいて生成された複数の辞書それぞれに対する、各辞書の生成に用いられたデータの適合の程度を示す情報に基づいて、前記複数のデータセットそれぞれから、一部のデータを選択し、
前記辞書生成手段は、前記複数のデータセットそれぞれに対応して生成された前記複数の辞書それぞれの次の段の辞書を生成することを特徴とする請求項１に記載の辞書生成装置。
【請求項１１】
特定カテゴリに属するデータの特徴を表現する、複数の段から成る辞書を生成する辞書生成装置であって、
前記特定カテゴリに属する複数のデータを含む第１のデータセットに基づいて生成された辞書に対する、前記特定カテゴリに属するデータと前記特定カテゴリに属さないデータとを含む第２のデータセットに含まれる複数のデータそれぞれの適合の程度を示す情報に基づいて、前記第２のデータセットに含まれる複数のデータを順位付けする順位付け手段と、
前記順位に沿って前記複数のデータを並べたデータリストを表示手段に表示するよう制御する表示処理手段と、
前記表示手段に表示されたデータに対する第１のユーザ操作に応じて、前記第２のデータセットのデータの一部を選択する選択手段と、
前記選択手段により選択されたデータを用いて、前記辞書の次の段の辞書を生成する辞書生成手段と
を有することを特徴とする辞書生成装置。
【請求項１２】
前記辞書を用いて、前記辞書の生成に用いられた複数のデータそれぞれを再構成する再構成手段をさらに有し、
前記順位付け手段は、再構成により得られた再構成情報に基づいて、前記データを順位付けすることを特徴とする請求項１１に記載の辞書生成装置。
【請求項１３】
前記再構成情報に含まれる再構成ベクトルの主成分分析により得られる部分空間に前記再構成ベクトルを投影した際に生じる投影誤差を、前記複数のデータそれぞれに対して求める投影誤差評価手段をさらに有し、
前記順位付け手段は、前記投影誤差に基づいて、前記データを順位付けすることを特徴とする請求項１２に記載の辞書生成装置。
【請求項１４】
複数のデータそれぞれの前記投影誤差の分布モデルを生成するモデル生成手段と、
前記分布モデルに基づいて、前記投影誤差を、辞書との適合の程度を示す指標値に変換する変換手段と
をさらに有し、
前記順位付け手段は、前記指標値に基づいて、前記データを順位付けすることを特徴とする請求項１３に記載の辞書生成装置。
【請求項１５】
前記第２のデータセットは、特定カテゴリに属さない１つの画像から生成された複数のデータを含み、
前記表示処理手段は、前記データリストと共に、前記画像を前記表示手段に表示することを特徴とする請求項１１乃至１４の何れか１項に記載の辞書生成装置。
【請求項１６】
前記表示処理手段は、前記データリストにおいて第２のユーザ操作に応じてデータが選択された場合に、選択されたデータに対応する前記画像の一部の領域を強調表示するよう制御することを特徴とする請求項１５に記載の辞書生成装置。
【請求項１７】
前記辞書生成手段により生成された辞書と、前記第２のデータセットに含まれるデータと、を用いて、前記順位付け手段、前記表示処理手段、前記選択手段及び前記辞書生成手段の処理を繰り返すよう制御する繰り返し手段をさらに有することを特徴とする請求項１１に記載の辞書生成装置。
【請求項１８】
特定カテゴリに属するデータの特徴を表現する、複数の段から成る辞書を生成する辞書生成装置であって、
特定カテゴリに属する複数のデータに基づいて生成された複数の辞書候補から第ｎ段（ｎは、１以上の整数）の辞書が選択された時点において、辞書として選択されていない辞書候補に対する、前記複数のデータそれぞれの適合の程度を示す情報に応じて、前記複数のデータのうち少なくとも１つのデータを重み付けする重み付け手段と、
前記重み付け手段による重み付けが行われた後の、前記複数のデータに基づいて、前記辞書候補の中から第ｎ＋１段の辞書を選択する選択手段を有することを特徴とする辞書生成装置。
【請求項１９】
前記辞書として選択されていない辞書候補に対する、前記複数のデータそれぞれの再構成情報を生成する再構成手段をさらに有し、
前記重み付け手段は、前記再構成情報に基づいて、前記データの重み付けを行うことを特徴とする請求項１８に記載の辞書生成装置。
【請求項２０】
前記再構成情報に含まれる再構成ベクトルの主成分分析により得られる部分空間に前記再構成ベクトルを投影した際に生じる投影誤差を、前記複数のデータそれぞれに対して求める投影誤差評価手段をさらに有し、
前記重み付け手段は、前記投影誤差に基づいて、前記データの重み付けを行うことを特徴とする請求項１９に記載の辞書生成装置。
【請求項２１】
複数のデータそれぞれの前記投影誤差の分布モデルを生成するモデル生成手段をさらに有し、
前記重み付け手段は、前記分布モデルに基づいて、前記データの重み付けを行うことを特徴とする請求項２０に記載の辞書生成装置。
【請求項２２】
前記特定カテゴリに属する複数のデータをデータの特徴に基づいて、複数のデータセットに分割する分割手段をさらに有し、
前記選択手段は、各データセットに含まれる複数のデータのうち少なくとも１つのデータを重み付けし、
前記選択手段は、各データセットに対し、第ｎ＋１段の辞書を選択することを特徴とする請求項１８に記載の辞書生成装置。
【請求項２３】
前記選択手段は、前記辞書として選択されていない辞書候補それぞれに対する、前記複数のデータそれぞれの適合の程度を評価する評価手段をさらに有し、
前記選択手段は、前記評価手段の評価結果に基づいて、前記第ｎ＋１段の辞書を選択することを特徴とする請求項１８乃至２２の何れか１項に記載の辞書生成装置。
【請求項２４】
学習データの、辞書に対する適合の程度を示す情報に基づいて生成された複数の段から成る辞書を用いて、処理対象のデータが特定カテゴリに属することの尤度を評価する評価手段を有することを特徴とする評価装置。
【請求項２５】
前記評価手段は、前記複数の辞書それぞれの生成に用いられたデータそれぞれの、前記適合の程度を示す情報の分布と、前記処理対象のデータの前記適合の程度を示す情報と、に基づいて、前記尤度を評価することを特徴とする請求項２４に記載の評価装置。
【請求項２６】
前記評価手段は、前記適合の程度を示す情報に基づいて重み付けされた学習データに基づいて段階的に生成された、前記複数の辞書を用いて、前記尤度を評価することを特徴とする請求項２４に記載の評価装置。
【請求項２７】
特定カテゴリに属するデータの特徴を表現する、複数の段から成る辞書を生成する辞書生成方法であって、
特定カテゴリに属する複数のデータに基づいて生成された辞書に対する、前記辞書の生成に用いられたデータの適合の程度を示す情報に基づいて、前記複数のデータから一部のデータを選択する選択工程と、
前記選択工程により選択されたデータを用いて、前記辞書の次の段の辞書を生成する辞書生成工程と
を有することを特徴とする辞書生成方法。
【請求項２８】
特定カテゴリに属するデータの特徴を表現する、複数の段から成る辞書を生成する辞書生成方法であって、
前記特定カテゴリに属する複数のデータを含む第１のデータセットに基づいて生成された辞書に対する、前記特定カテゴリに属するデータと前記特定カテゴリに属さないデータとを含む第２のデータセットに含まれる複数のデータそれぞれの適合の程度を示す情報に基づいて、前記第２のデータセットに含まれる複数のデータを順位付けする順位付け工程と、
前記順位に沿って前記複数のデータを並べたデータリストを表示工程に表示するよう制御する表示処理工程と、
前記表示工程に表示されたデータに対する第１のユーザ操作に応じて、前記第２のデータセットのデータの一部を選択する選択工程と、
前記選択工程により選択されたデータを用いて、前記辞書の次の段の辞書を生成する辞書生成工程と
を有することを特徴とする辞書生成方法。
【請求項２９】
特定カテゴリに属するデータの特徴を表現する、複数の段から成る辞書を生成する辞書生成方法であって、
特定カテゴリに属する複数のデータに基づいて生成された複数の辞書候補から第ｎ段（ｎは、１以上の整数）の辞書が選択された時点において、辞書として選択されていない辞書候補に対する、前記複数のデータそれぞれの適合の程度を示す情報に応じて、前記複数のデータのうち少なくとも１つのデータを重み付けする重み付け工程と、
前記重み付け工程による重み付けが行われた後の、前記複数のデータに基づいて、前記辞書候補の中から第ｎ＋１段の辞書を選択する選択工程を有することを特徴とする辞書生成方法。
【請求項３０】
学習データの、辞書に対する適合の程度を示す情報に基づいて生成された複数の段から成る辞書を用いて、処理対象のデータが特定カテゴリに属することの尤度を評価する評価工程を有することを特徴とする評価方法。
【請求項３１】
コンピュータを、請求項１乃至２３の何れか１項に記載の辞書生成装置の各手段として機能させるためのプログラム。
【請求項３２】
コンピュータを、請求項２４乃至２６の何れか１項に記載の評価装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データのカテゴリを特定するための辞書学習技術に関する。
【背景技術】
【０００２】
従来、カテゴリが未知のデータが特定のカテゴリに属するか否かを判定する方法の一つとして、特定のカテゴリに属する多数のデータについて共通の特徴を抽出し、未知のデータから同質の特徴を抽出できるか否かによって判定する方法がある。特定のカテゴリに関して共通の特徴を抽出する方法として、辞書学習が提案されている。辞書学習は、多次元のデータ空間を代表するような、いくつかの基準データを取得し、基準データの集合からなる辞書を生成する技術である。特定のカテゴリに属するデータから生成した辞書を用いることによって、特定のカテゴリのデータを適切に表現することが可能である。また、カテゴリ判定時は、カテゴリが未知のデータに対して、辞書から適切な基準データを用いてデータを再構成し、再構成誤差等の指標から特定カテゴリであるらしさを表す尤度を求める。
【０００３】
基準データの決め方は辞書の表現能力にかかわる。非特許文献１には、正常のＳＥＭ画像を表現するために、学習データ全体に対して、その再構成誤差の平均が小さくなるように、反復的に基準データを修正する技術が開示されている。また、非特許文献１には、画像における異常な個所を検出するために、辞書によって求められた再構成情報の正常範囲との乖離度を利用する方法が開示されている。
【０００４】
しかしながら、非特許文献１の方法では、辞書はデータ全体の平均再構成誤差が最小になるように学習されるため、一部のデータが再構成されにくい場合、その部分のデータに関して再構成誤差が高くなってしまい、辞書の表現能力が足りないという問題が発生する。具体的に、データセットに発生頻度の高いデータ（以下、大多数データ）と発生頻度の低いデータ（以下、マイノリティデータ）が共存する場合、マイノリティデータが平均再構成誤差への寄与が低く、表現され難いという問題が起きる。
【０００５】
この問題は辞書の規模に関わり、特に辞書内基準データの個数が少ない場合に発生しやすい。基準データの個数を一意に増やしてもよいが、特定カテゴリに属するデータの中に存在するはずれ値等に過適合して、非特定カテゴリのデータも表現されてしまう課題がある。辞書の規模と表現能力との関係を表したものを図１８に示す。図１８では、データ空間は大まかに、１．対象カテゴリ大多数データ、２．対象カテゴリマイノリティデータ、３．非対象データに分けられる。基準データ数が少ないと、１のデータだけ表現され、２と３は表現されず、区別し難くなる。一方で、基準データ数が多いと、３種類のデータともに表現されてしまう。よって、適切な規模の辞書が望ましい。
【０００６】
このような問題に対して、特許文献１には、大多数データの密度を減らしてからマイノリティデータと合わせて辞書を生成する技術が開示されている。これにより、学習した基準データがマイノリティデータの中心より大多数データの中心に偏るという問題が軽減され、マイノリティを表現する能力が向上する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−１９８４７６号公報
【非特許文献】
【０００８】
【非特許文献１】Ｇｉａｃｏｍｏ  Ｂｏｒａｃｃｈｉ  ｅｔ  ａｌ．，  "Ｎｏｖｅｌｔｙ  Ｄｅｔｅｃｔｉｏｎ  ｉｎ  Ｉｍａｇｅｓ  ｂｙ  Ｓｐａｒｓｅ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ"，  ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｉｎｔｅｌｌｉｇｅｎｔ  Ｅｍｂｅｄｄｅｄ  Ｓｙｓｔｅｍｓ，  ｐｐ．  ４７−５４，  ２０１４
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の技術では、大多数データの指定手法がヒューリスティックであり、また、大多数データの密度を減らすため、大多数データの表現能力を下げる可能性もある。このように、辞書学習において、適切にマイノリティデータを表現することが難しいという課題が存在する。
【００１０】
本発明は、このような点に鑑みてなされたものであり、大多数データの表現能力の低下を防ぎつつ、マイノリティデータの表現能力も高い適切な辞書を学習することを目的とする。
【課題を解決するための手段】
【００１１】
そこで、本発明は、特定カテゴリに属するデータの特徴を表現する、複数の段から成る辞書を生成する辞書生成装置であって、特定カテゴリに属する複数のデータに基づいて生成された辞書に対する、前記辞書の生成に用いられたデータの適合の程度を示す情報に基づいて、前記複数のデータから一部のデータを選択する選択手段と、前記選択手段により選択されたデータを用いて、前記辞書の次の段の辞書を生成する辞書生成手段と
を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、大多数データの表現能力の低下を防ぎつつ、マイノリティデータの表現能力も高い適切な辞書を学習することができる。
【図面の簡単な説明】
【００１３】
【図１】検査システムの全体図である。
【図２】辞書生成処理に係る処理部のソフトウェア構成を示す図である。
【図３】辞書生成処理を示すフローチャートである。
【図４】評価処理に係る処理部のソフトウェア構成を示す図である。
【図５】評価処理を示すフローチャートである。
【図６】第２の実施形態に係る処理部のソフトウェア構成を示す図である。
【図７】第２の実施形態に係る辞書生成処理を示すフローチャートである。
【図８】表示画面の一例を示す図である。
【図９】変形例に係る表示画面例を示す図である。
【図１０】第３の実施形態に係る処理部のソフトウェア構成を示す図である。
【図１１】第３の実施形態に係る辞書生成処理を示すフローチャートである。
【図１２】第３の実施形態に係る処理部のソフトウェア構成を示す図である。
【図１３】第３の実施形態に係る評価処理を示すフローチャートである。
【図１４】第４の実施形態に係る処理部のソフトウェア構成を示す図である。
【図１５】第４の実施形態に係る辞書生成処理を示すフローチャートである。
【図１６】第４の実施形態に係る評価処理を示すフローチャートである。
【図１７】変形例に係る表示画面例を示す図である。
【図１８】従来技術の説明図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について図面に基づいて説明する。
【００１５】
（第１の実施形態）
図１は、第１の実施形態に係る検査システム１００の全体図である。本実施形態に係る検査システム１００は、検査対象の物体の表面外観検査によって良否判定を行うために利用する辞書を生成し、また生成された辞書を用いて、物体の良否判定を行う。具体的には、検査システム１００は、良品であることがわかっている物体の撮影画像を学習データとして用い、特定カテゴリとして良品の特徴を表現する辞書を生成する。また、検査システム１００は、良否判定の対象となるデータ（判定対象データ）をカテゴリが未知のデータとし、このデータが特定のカテゴリ（良品のカテゴリ）に属するか否かを辞書を利用して判定することにより、良否判定を行う。
【００１６】
検査対象物１８０は、ベルトコンベア１８１によって搬送され、情報処理装置１１０によって良品であるか不良品であるかが判定される。検査対象物１８０の例として、金属部品、ゴム成型品、プラスチック成型品、レンズ等ガラス成型品、プリント基盤等が挙げられる。検査対象物１８０の表面に、加工工程の変化等によって良品に見られないキズやムラ等が生じた場合、不良品として検出される。照明装置１５０は、検査対象物１８０の表面状態がよくわかるように、適切な照明条件を提供する。撮像装置１４０は、検査対象物１８０の表面の映像を取得可能なビデオカメラ等から構成され、撮影した映像を情報処理装置１１０に送信する。
【００１７】
入力装置１２０はキーボードやマウスから構成され、プログラム実行開始等の指令をユーザから受ける。表示装置１３０はモニタ等から構成され、中間処理結果や判定結果が表示される。表示の一例としては、検査対象物の表面写真が表示され、その検査結果が写真の周辺領域にＯＫ／ＮＧとして表示される。また、画像全般の良否判定ではなく、画像局所領域毎の判定結果を示したり、ＯＫ／ＮＧのほかに、良品であることの尤度を表示してもよい。
【００１８】
本実施形態で示す情報処理装置１１０が実装されるハードウェア構成について説明する。バス１１６に接続する各デバイスをＣＰＵ１１１が総括的に制御する。読み出し専用メモリ（ＲＯＭ）１１３は、本実施形態にかかる各処理プログラム、オペレーティングシステム（ＯＳ）、デバイスドライバ等を記憶している。ランダムアクセスメモリ（ＲＡＭ）１１２には、ＣＰＵ１１１処理時に前記プログラムが一次記録される。また、入力Ｉ／Ｆ１１５は、外部の操作装置等から入力した情報を情報処理装置１１０で処理可能な形式に変換する。また、出力Ｉ／Ｆ１１４は、出力する情報を表示装置１３０等が処理可能な形式に変換する。ＣＰＵ１１１は、ＲＯＭ１１３に記録された処理ステップやプログラムを読み出して、ＲＡＭ１１２に一次記録し、後述する各フローチャートに従って処理を実行する。なお、他の例としては、情報処理装置１１０は、ＣＰＵ１１１を用いた、後述のソフトウェア構成の各機能に対応した演算部や回路等のハードウェアを有してもよい。
【００１９】
第１の実施形態に係る情報処理装置１１０は、段階的辞書生成方法により、辞書を生成する。具体的には、情報処理装置１１０は、各段階でデータ群の一部を再構成する辞書を生成し、生成した辞書に対する各データの再構成情報に基づいて、生成した辞書がそのデータの近似を達成できたかを判定する。そして、情報処理装置１１０は、近似できていないデータ集合を用いて次の段階の辞書を生成する。本実施形態に係る段階的辞書生成方法では、近似を達成できた否かという２値判定が行われるため、段階が重なることにつれ、辞書生成に使用するデータの個数が減る。このため、この辞書生成タイプをフィルタ型と呼ぶことができる。
【００２０】
情報処理装置１１０の処理は、オフラインで段階的に辞書を生成する辞書生成処理を行う辞書生成工程と、オンラインで辞書を用いて、検査対象物のデータに対し、特定カテゴリに属することの尤度を評価する評価処理を行う評価工程と、の２つの工程に大別される。辞書生成工程では、情報処理装置１１０は、良品であると分かっている物体を撮影し、撮影された複数の画像から多数の小画像（以下、パッチ）をサンプリングし、良品パッチの集合から複数の基準パッチからなる辞書を生成する。一方、評価工程では、情報処理装置１１０は、良否未知の物体を撮影し、辞書生成工程と同様の方法で画像から複数のパッチを取得する。そして、情報処理装置１１０は、パッチ毎に辞書生成工程で生成した辞書で再構成し、パッチと辞書の適合度に応じて、良品である（特定カテゴリに属する）ことの尤度を評価する。なお、評価工程においては、良否であることの尤度を求めるだけでもよく、また尤度から、各パッチについて良否のいずれであるかを判定してもよい。また、他の例としては、画像を構成する複数のパッチに対する評価結果を統合して、画像全体についての尤度や良否を求めてもよい。
【００２１】
図２は、情報処理装置１１０の、辞書生成処理に係る処理部２００のソフトウェア構成を示す図である。図３は、辞書生成処理を示すフローチャートである。図２に示すように、処理部２００は、データセット読込部２１０と、データセット保持部２１１と、段階的辞書生成処理部２２０と、新データセット読込部２５０と、新データセット保持部２５１と、出力処理部２６０と、を有している。段階的辞書生成処理部２２０は、辞書生成処理部２３０と、段階処理部２４０と、を有している。辞書生成処理部２３０は、辞書生成部２３１と、辞書保持部２３２と、終了判定部２３３と、を有している。段階処理部２４０は、再構成部２４１と、再構成情報保持部２４２と、モデル算出部２４３と、モデル保持部２４４と、選択部２４５と、を有している。各部の機能については、辞書生成処理（図３）に沿って説明する。
【００２２】
図３に示すＳ３００において、データセット読込部２１０は、学習用のデータセットを取得し、これをデータセット保持部２１１に読み込む。ここで、学習用のデータセットは、良品であることが予めわかっている物体を撮影することにより得られた撮影画像からサンプリングされた複数のパッチである。本実施形態においては、パッチサンプリングでは、撮影したグレースケール画像から網羅的に８×８画素のパッチを重複なしに抽出する。なお、データセットに含まれるパッチの個数は多ければ多いほど性能がいいが、生成される辞書内の基準パッチの個数より多ければよい。
【００２３】
なお、他の例としては、重複を許す抽出方法やランダムな位置から抽出する方法でもよい。パッチが画像からはみ出した場合は、パッチが画像内に入るように平行移動するか、画像補間してからパッチを切り出してもよい。パッチのサイズに関しては、８×８画素ではなく、実験的に最適なサイズを採用する方法も可能である。本実施形態においては、データが８×８＝６４次元のベクトルであり、データセットは複数のベクトルの集合である。また、他の例としては、データを記録する際に、ベクトルのほか、パッチが抽出される位置を記録してもよい。
【００２４】
続く、Ｓ３０１〜Ｓ３０９の処理は、段階的辞書生成処理である。段階的辞書生成処理における処理対象のデータセットを、対象データセットと称することとする。また、対象データセットに含まれるデータを対象データと称する。なお、初期段階における対象データセットは、データセット読込部２１０が受け付けたデータセットであり、その後の段階における対象データセットは、データセット読込部２１０が受け付けたデータセットに対するフィルタ後のデータセットである。なお、フィルタ後のデータセットは、後述の処理により、段階処理部２４０により選択され、新データセット読込部２５０により新データセット保持部２５１に読み込まれる。
【００２５】
Ｓ３０１において、辞書生成処理部２３０の辞書生成部２３１は、初期の対象データセットに基づいて、Ｋ個の基準データ（辞書）を生成する処理を行う。基準データは、対象データと同様の形式を持つデータであり、未知のデータを再構成する際に参照すべきデータである。基準データの個数Ｋは任意である。なお、段階的辞書生成では、各段階の辞書の規模は小さくてもよい。本実施形態では、基準データ群の規模Ｋを１６とする。なお、Ｓ３０１において生成される辞書を第１段の辞書と称する。
【００２６】
辞書生成部２３１はさらに、生成した辞書を、Ｋ−ＳＶＤ及び直交マッチング追跡（Ｏｒｔｈｏｇｏｎａｌ  Ｍａｔｃｈｉｎｇ  Ｐｕｒｓｕｉｔ、ＯＭＰ）を繰り返すことにより修正する。ここで、Ｋ−ＳＶＤは、スパースコーディングを用いた、辞書生成方法であり、非特許文献１を参照することができる。また、ＯＭＰは、データ再構成方法である。ＯＭＰでは、各対象データに対し、再構成誤差が小さくなるように、基準データ群から基準データを選択し、選択された基準データの重み付き線形組み合わせでデータを近似する。そして、この近似する処理を選択された基準データの個数がｋ個になるまで繰り返す。各基準データの重みを線形組み合わせ係数や再構成係数とも呼ぶ。すべての基準データの重みの集合を線形組み合わせ係数ベクトルや再構成係数ベクトルと呼ぶ。
【００２７】
ＯＭＰでは、（式１）の最適解を求める処理を行う。
【数１】
2018116364.tif 000003
ここで、ｙｉ｛ｉ＝１、２、・・・、Ｎ｝は、対象データセットであり、例えば、データ
セット保持部２１１や、新データセット保持部２５１に記憶されているデータである。ｉはデータのインデックスであり、Ｎは対象データセットに含まれる対象データの個数である。Ｄは基準データ群又は辞書である。ｘｉは再構成係数ベクトル、。‖ｙi−Ｄｘi‖2
は再構成誤差である。また、‖・‖0はＬ０ノルム、‖・‖2はＬ２ノルムである。ｋは基準データの係数が非零である個数の上限であり、スパース制約条件を表す。本実施形態においては、辞書生成部２３１は、ｋ＝２として（式１）の最適解を求める。その結果、再構成係数ベクトルの要素の内、最大２個の値が非０になり、それ以外は０というスパースな解が得られる。
【００２８】
Ｋ−ＳＶＤは、対象データセットに含まれる対象データを少数の基準データの組み合わせで効率よく再構成されるように、辞書修正処理と再構成処理を交互に行う手法であり、下記に示す非特許文献２を参照することができる。
（非特許文献２）
Ｍｉｃｈａｌ  Ａｈａｒｏｎ  ｅｔ  ａｌ．，  "Ｔｈｅ  Ｋ−ＳＶＤ：  Ａｎ  ａｌ
ｇｏｒｉｔｈｍ  ｆｏｒ  ｄｅｓｉｇｎｉｎｇ  ｏｆ  ｏｖｅｒｃｏｍｐｌｅｔｅ  ｄｉｃｔｉｏｎａｒｉｅｓ  ｆｏｒ  ｓｐａｒｓｅ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ"，  Ｉ
ＥＥＥ  Ｔｒａｎｓ．  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ，  ２００６
【００２９】
なお、基準データ群の生成方法は、実施形態に限定されるものではない。他の例としては、辞書生成部２３１は、辞書生成時にスパースコーディングの結合係数であるＬ１ノルムを用いた辞書生成方法や、オートエンコーダ、主成分分析、Ｋ平均法、対象データセットからランダムに選択する等の方法を利用してもよい。
【００３０】
Ｓ３０１の処理の後、Ｓ３０２において、終了判定部２３３は、辞書生成処理の終了判定を行う。終了判定部２３３は、終了と判定した場合には（Ｓ３０２でＹｅｓ）、処理をＳ３１０へ進める。終了判定部２３３は、終了と判定しなかった場合には（Ｓ３０２でＮｏ）、処理をＳ３０３へ進める。
【００３１】
終了判定部２３３は、生成された辞書を用いて検証画像の良否判定を行い、判定結果に応じて、辞書生成を終了するか否かを判定する。具体的には、終了判定部２３３は、検証画像として、良品であることがわかっている物体及び欠陥品であるかがわかっている物体それぞれの撮影画像を用いる。そして、終了判定部２３３は、辞書との適合度から良否判定を行い、真の良品の中で正しく良品と判定する割合が一定の閾値以上になった場合、辞書生成終了と判定する。
【００３２】
このように、本実施形態の終了判定部２３３は、画像全体としての良否を判定するため、画像から抽出したすべてのパッチについて、辞書との適合度を集計する必要がある。具体的には、終了判定部２３３は、適合度の平均値、最大値、分散を計算して、画像の特徴ベクトルを生成する。次に、終了判定部２３３は、学習画像セットから抽出した特徴ベクトルを用いて、１クラスＳＶＭで良品識別器を生成する。そして、終了判定部２３３は、生成した良品識別器を用いて、検証画像に対する良否判断を行う。本実施形態では、終了判定部２３３は、良品識別器として１クラスＳＶＭを用いるが、最近傍法、部分空間法、フィッシャー判別法、ニューラルネットワーク等の識別方法を用いてもよい。また、終了判定部２３３は、欠陥画像も識別器の学習に利用してもよい。
【００３３】
続く、Ｓ３０３〜Ｓ３０７の処理は、マイノリティデータを選択する処理である。ここで、マイノリティデータとは、データセットにおいて、発生頻度の低いデータである。Ｓ３０３において、再構成部２４１は、対象データセットに含まれる各対象データに対し、直前に生成された辞書、すなわち辞書保持部３１１に保持されている辞書を用いて、（式１）に示すＯＭＰ処理によって再構成を行い、再構成情報を算出する。そして、再構成部２４１は、再構成情報を再構成情報保持部２４２に保存する。Ｓ３０３の処理は、辞書の生成に用いられた複数のデータそれぞれを再構成し、再構成情報を得る再構成処理の一例である。
【００３４】
なお、Ｓ３０３の処理において用いられる辞書は、Ｓ３０３の処理時点において直前に生成された辞書とする。すなわち、Ｓ３０１、Ｓ３０２でＮｏ、Ｓ３０３の処理順においては、Ｓ３０１の処理で生成された辞書が用いられる。一方、Ｓ３０３〜Ｓ３０７の処理が行われ、Ｓ３０９でＮｏで再びＳ３０３の処理となった場合には、直前のＳ３０８の処理で生成された辞書が用いられる。また、Ｓ３０３の処理において用いられる対象データは、Ｓ３０８の処理において用いられる辞書の生成に利用されたデータセットである。
【００３５】
また、再構成情報は、複数の基準において、各対象データの辞書との類似度を表す評価値で、複数の基準に対応した複数の類似度の評価値からなる複数のベクトルを含むものとする。なお、他の例としては、再構成情報に含まれる再構成ベクトルの次元数は１次元であってもよい。
【００３６】
また、他の例としては、再構成部２４１は、サイズが未知の欠陥に頑健な方法として、多解像度のデータを用いて再構成情報を算出する方法を用いてもよい。この場合、再構成部２４１は、データセットに含まれる複数のデータ（画像）それぞれから解像度の異なる複数の画像を生成する。本処理は、多解像度化処理の一例である。そして、再構成部２４１は、各解像度の画像の再構成情報から、解像度毎の段階的な辞書生成を行ってもよい。また、他の例としては、再構成部２４１は、対象データ（画像）の横、縦、斜め方向のエッジ画像から辞書を生成し、生成した辞書に対し再構成情報を算出してもよい。
【００３７】
この場合、再構成部２４１は、対象データ（元画像）をＨａａｒ  Ｗａｖｅｌｅｔ変換し、変換結果である多重解像の平滑、横、縦、対角方向の画像それぞれについて、辞書を学習する。そして、再構成部２４１は、各々の辞書で再構成誤差と再構成係数ベクトルのＬ１ノルムを計算し、最後にこれらすべての評価値を繋げたベクトルを、再構成情報として得る。例えば、多重解像のスケール数が８の場合、合計８×４×２＝６４次元の再構成情報ベクトルが得られる。Ｌ１ノルムは、（式２）により得られる。なお、（式２）のｄは、再構成係数ベクトルの次元数である。
【数２】
2018116364.tif 000004
【００３８】
再構成情報としての再構成ベクトルｒは、（式３）により得られる。
【数３】
2018116364.tif 000005
また、説明を簡略化するため、（式３）には、単一階層から生成された再構成ベクトルを示す。‖ｙ−Ｄｘ‖2は、再構成誤差、‖・‖1はＬ１ノルム、ｘはスパースコーディング等によって求められた再構成係数ベクトル、ｙは評価データ、Ｄは辞書、ｒは評価データの再構成情報ベクトルである。
【００３９】
なお、再構成情報は、辞書に対するデータの適合の程度を示す情報の一例である。なお、本実施形態においては、適合の程度を示す情報として再構成情報を用いているが、これに限定されるものではない。適合の程度を示す情報は、辞書に対するデータの類似度を示す値や、辞書に対するデータの乖離度を示す値等であってもよい。また、各指標の基準となる特徴量等のパラメータの種類や数も特に限定されるものではない。再構成情報としては、例えば、再構成誤差、再構成係数ベクトルのＬ１ノルム、再構成に使用した基準データのインデックス等が挙げられる。また、再構成情報は、これらのうち１つであってもよく、またこれらのうちいくつかを組み合わせたものであってもよい。
【００４０】
次に、Ｓ３０４において、モデル算出部２４３は、再構成情報保持部２４２に保存されている、各対象データに対応した複数の再構成情報それぞれの投影誤差（‖ｒ−ＷＷTｒ
‖2）を算出する。具体的には、モデル算出部２４３は、再構成情報を表す再構成ベクトルを用いて主成分分析を行い、部分空間を取得する。そして、モデル算出部２４３は、各々の対象データの再構成情報ベクトルを生成した部分空間へ投影し、その投影誤差を求める。なお、Ｗ＝｛ｕ1，ｕ2，…，ｕdk｝は、対象データの再構成情報を主成分分析して得られた固有ベクトルの集合であり、ｄkは、使用する固有ベクトルの個数である。ここで、Ｓ３０４の処理は、投影誤差を求める投影誤差評価処理の一例である。
【００４１】
次に、Ｓ３０５において、モデル算出部２４３は、複数の対象データそれぞれに対して得られた複数の投影誤差の分布モデルを算出（生成）する。具体的には、モデル算出部２４３は、投影誤差の平均μ0と標準分散σ0を分布モデルとする。なお、Ｓ３０５の処理は、投影誤差の分布モデルを生成するモデル生成処理の一例である。
【００４２】
他の例としては、モデル算出部２４３は、非特許文献２に示される再構成情報を表すベクトルの分布モデルをガウス分布と仮定してもよい。また他の例としては、モデル算出部２４３は、分布モデルとして、単峰ガウス分布ではなく、混合ガウス分布等複雑な分布を用いてもよい。その場合は、モデル算出部２４３は、対象データセットの再構成情報ベクトルセット｛ｒｉ｝｛ｉ＝１、２、・・・、Ｎ｝の分布をＫＧＭＭ個のガウス分布のミク
スチャーで仮定し、モデルはＥＭアルゴリズムで生成する。
【００４３】
投影誤差は、再構成されたデータと対象データの一致度が低い程、その値は大きくなる。すなわち、投影誤差は、各対象データが、辞書に適合しているか否かを示す評価値である。本実施形態においては、情報処理装置１１０は、投影誤差をそのまま用いるのではなく、投影誤差を平均μ0と標準分散σ0で正規化した値を異常度として求め、この指標により、各データと辞書の適合の適度を評価する。
【００４４】
次に、Ｓ３０６において、選択部２４５は、分布モデルに基づいて、各対象データの異常度を求める。選択部２４５は、さらに対象データの異常範囲と正常範囲とを分ける異常度の閾値を設定する。上述の通り、分布モデルに投影誤差の平均と分散を用い、選択部２４５は、投影誤差をμ0とσ0で正規化したものを異常度として求める。ここで、異常度は、対応するデータの辞書との適合の程度の指標値の一例である。また、本処理は、投影誤差を指標値に変換する変換処理の一例である。そして、選択部２４５は、投影誤差が平均μ0からｎσ0以上となる範囲を異常範囲として設定し、それ以外の範囲を正常範囲として決定する。具体的には、選択部２４５は、（式４）の閾値ｔｈｒｅｓ．１を設定する。
【数４】
2018116364.tif 000006
ここで、（式４）の左辺は、異常度である。ｔｈｒｅｓ．１は異常度の正常・異常境界を決める閾値であり、本実施形態においては、ｔｈｒｅｓ．１＝ｎ＝１として閾値を設定するという条件が予め定められているものとする。なお、他の例としては、選択部２４５は、ユーザ操作に従い、閾値を設定してもよい。
【００４５】
次に、Ｓ３０７において、選択部２４５は、（式４）を満たさない再構成ベクトルｒに対応する対象データをマイノリティデータとして選択する。本処理は、分布モデルに基づいて、マイノリティデータを選択する選択処理の一例である。
【００４６】
なお、Ｓ３０６及びＳ３０７の他の例としては、選択部２４５は、分布モデルをガウス分布と仮定し、ガウス分布からの乖離度に基づいて、マイノリティデータを選択してもよい。具体的には、選択部２４５は、各データのガウス分布からのマハラノビス距離を異常度として求める。そして、選択部２４５は、（式５）を満たさない再構成ベクトルｒに対応する対象データをマイノリティデータとして選択する。
【数５】
2018116364.tif 000007
なお、(式５)の左辺は、ガウス分布からのマハラノビス距離であり、μ及びΣは、それ
ぞれ対象データの尤度の平均及び分散である。ｄは再構成ベクトルの次元数である。ｔｈｒｅｓ．２は正常・異常境界を決める閾値である。
【００４７】
また、他の例としては、選択部２４５は、分布モデルを混合ガウス分布と仮定し、再構成ベクトルの異常度に替えて、尤度Ｐ（ｒ｜θ）を求めてもよい。そして、選択部２４５は、尤度に基づいて、マイノリティデータを選択してもよい。具体的には、選択部２４５は、（式６）を満たさない再構成ベクトルｒに対応する対象データをマイノリティデータとして選択する。
【数６】
2018116364.tif 000008
ここで、θk＝｛πk，μk，Σk｝，θ＝｛θk｝，｛ｋ＝１，２，…，ＫＧＭＭ｝は
混合ガウス分布のパラメータ、ｔｈｒｅｓ．３は正常・異常境界を決める閾値である。このように、選択部２４５は、対応するデータの辞書との適合の程度の指標値として、異常度に替えて尤度を用いてもよい。さらに他の例としては、選択部２４５は、尤度の逆数を異常度として用いてもよい。
【００４８】
以上のように、段階処理部２４０は、再構成情報の正常モデルを生成し、正常モデルとの尤度や異常度（乖離度）に対する閾値処理によりマイノリティデータの範囲を定め、この範囲に属するデータをマイノリティデータとして選択する。なお、乖離度や尤度を閾値で処理することを符号関数で表すことができる。この変換後の乖離度や尤度を辞書との適合度とする。
【００４９】
また、他の例としては、再構成情報は１次元であってもよく、この場合には、段階処理部２４０は、分布モデルを生成することなく、再構成情報の閾値処理により、マイノリティデータを選択してもよい。例えば、選択部２４５は、投影誤差が高い順に上位ｎ％、上位ｎ位を閾値として設定し、上位ｎ％、上位ｎ位のパッチをマイノリティデータとして選択してもよい。また、この場合、選択部２４５は、閾値としてのｎの値は、ユーザ操作に応じて設定してもよい。また、後述の第２の実施形態におけるユーザ操作に応じたマイノリティ領域選定によって正常範囲を定め、正常範囲外のデータをマイノリティデータとして選択してもよい。
【００５０】
このように、本実施形態においては、選択部２４５は、再構成情報の再構成ベクトルから投影誤差を求め、投影誤差の分布モデルに基づいて、マイノリティデータを選択する。選択部２４５の処理は、再構成情報に基づいてデータを選択する処理であり、投影誤差に基づいてデータを選択する処理であり、また、投影誤差の分布モデルに基づいてデータを選択する処理である。ここで、再構成情報、再構成ベクトル、投影誤差及び分布モデルは、いずれも辞書に対するデータの適合の程度を示す情報の一例である。
【００５１】
次に、Ｓ３０８において、新データセット読込部２５０は、Ｓ３０５において選択されたマイノリティデータを取得し、これを新データセットとして新データセット保持部２５１に読み込む。そして、辞書生成部２３１は、新データセットを対象データセットとし、対象データセットを用いて新たな辞書を生成する。なお、対象データセットに基づいて、辞書を生成する処理は、Ｓ３０１において説明した第１段の辞書を生成する処理と同様である。なお、処理時点において第１段の辞書のみが生成された状態であれば、Ｓ３０８において生成された辞書は第２段の辞書となる。以降、Ｓ３０３〜Ｓ３０９の繰り返しにおいて、第３段、第４段、…と、段階辞書が生成される。ここで、Ｓ３０８の処理は、辞書生成処理の一例である。
【００５２】
次に、Ｓ３０９において、終了判定部２３３は、辞書生成処理の終了判定を行う。終了判定部２３３は、終了と判定した場合には（Ｓ３０９でＹｅｓ）、処理をＳ３１０へ進める。終了判定部２３３は、終了と判定しなかった場合には（Ｓ３０９でＮｏ）、処理をＳ３０３へ進める。本処理により、マイノリティデータの選択処理及び辞書生成処理が繰り返される。すなわち、本処理は、繰り返し処理の一例である。
【００５３】
終了判定部２３３は、生成された段階辞書を用いて検証画像の良否判定を行い、判定結果に応じて、辞書生成を終了するか否かを判定する。具体的には、終了判定部２３３は、検証画像として、良品であることがわかっている物体及び欠陥品であるかがわかっている物体それぞれの撮影画像を用いる。そして、終了判定部２３３は、辞書との適合度から良否判定を行い、真の良品の中で正しく良品と判定する割合が一定の閾値以上になった場合、辞書生成終了と判定する。本処理は、Ｓ３０２における処理と同様である。
【００５４】
また、他の例としては、終了判定部２３３は、横軸を段階数として、縦軸を対象データセットにおける平均再構成誤差とする変化曲線をプロットし、変化が緩やかになった時点で終了と判定してもよい。また、他の例としては、終了判定部２３３は、正常領域のパッチと欠陥領域のパッチの異常度の分離度が最も高い段階になった時点で終了と判定してもよい。また、他の例としては、終了判定部２３３は、予め定められた段階数の辞書が生成された時点で終了と判定してもよい。
【００５５】
Ｓ３１０において、出力処理部２６０は、学習結果として、生成した辞書（段階辞書）及び各辞書の分布モデル、分布モデルの正常範囲等の情報を出力するよう制御する。以上で、段階的辞書生成処理が終了する。
【００５６】
以上のように、本実施形態に係る情報処理装置１１０は、辞書の生成に実際に用いられた複数のデータを用いて、それぞれの投影誤差の分布モデルを生成し、この分布モデルに応じて閾値を定め、マイノリティデータを選択する。このため、理論的に投影誤差の分布モデルを仮定した上で、その閾値を定める場合に比べて、より適切なデータをマイノリティデータとして選択することができる。このため、特定カテゴリに属することの尤度の評価対象となるデータの特徴に適した辞書を生成することができる。
【００５７】
次に、情報処理装置１１０による評価処理について説明する。図４は、情報処理装置１１０の評価処理に係る処理部４００のソフトウェア構成を示す図である。図５は、評価処理を示すフローチャートである。図４に示すように、処理部４００は、データ読込部４１０と、データ保持部４１１と、段階的データ処理部４２０と、新データ読込部４３０と、新データ保持部４３１と、出力処理部４４０と、を有している。段階的データ処理部４２０は、辞書読込部４２１と、辞書保持部４２２と、再構成部４２３と、再構成情報保持部４２４と、分布モデル読込部４２５と、分布モデル保持部４２６と、異常度算出部４２７と、評価部４２８と、を有している。各部の機能については、評価処理（図５）に沿って説明する。
【００５８】
図５に示すＳ５００において、データ読込部４１０は、判定対象となるデータを取得し、これをデータ保持部４１１に読み込む。ここで、判定対象となるデータは、良品か否かが不明の物体の撮影画像から得られたパッチデータである。なお、データ読込部４１０は、図３のＳ３００の処理において説明したのと同様のサンプリング方法によってパッチを生成するものとする。以下、判定対象のデータを対象データと称する。
【００５９】
続く、Ｓ５０１〜Ｓ５０７の処理は、段階的に生成された複数の辞書を用いて、対象データを再構成する処理である。Ｓ５０１において、辞書読込部４２１は、辞書生成処理（図３）により生成された辞書をオンラインの辞書保持部４２２に読み込む。なお、Ｓ５０１の処理は繰り返し実行される処理であり、辞書読込部４２１は、段階辞書の生成に対応し、Ｓ５０１の処理の１回目の実行時にはＳ３０１において生成された第１段の辞書を読み込む。さらに、辞書読込部４２１は、Ｓ５０１の処理（Ｓ５０１〜Ｓ５０７のループ処理）の繰り返し回数に応じて、第２段の辞書、第３段の辞書、というように段階順に辞書を読み込む。以下、Ｓ５０１において読み込んだ辞書を対象辞書と称する。
【００６０】
次に、Ｓ５０２において、再構成部４２３は、対象辞書を用いて対象データの再構成を行い、再構成情報を算出する。なお、対象データから再構成情報を算出する処理は、Ｓ３０３において説明した処理と同様である。次に、Ｓ５０３において、分布モデル読込部４２５は、対象辞書に対応する分布モデルを分布モデル保持部４２６に読み込む。なお、ここで読み込まれる分布モデルは、Ｓ３０４において生成された分布モデルであり、対象辞書に対して生成されたものである。以下、Ｓ５０３において読み込んだ分布モデルを対象分布モデルと称する。次に、Ｓ５０４において、異常度算出部４２７は、Ｓ５０２において算出した再構成情報に基づいて、対象データの、対象辞書に対する異常度を算出する。なお、異常度を算出する処理は、Ｓ３０６において説明した処理と同様である。このように、本実施形態に係る情報処理装置１１０は、対象データの良否判定においても、異常度を用いるものとする。
【００６１】
次に、Ｓ５０５において、評価部４２８は、異常度に基づいて、対象データが正常範囲内のデータであるか否かのマイノリティ判定を行う。ここで、正常範囲は、分布モデルに対してＳ３０５において設定された範囲である。評価部４２８は、正常範囲に含まれない場合に、マイノリティと判定する。評価部４２８は、マイノリティと判定した場合（Ｓ５０６でＹｅｓ）、処理をＳ５０７へ進める。Ｓ４２８は、マイノリティと判定しなかった場合には（Ｓ５０６でＮｏ）、処理をＳ５１０へ進める。Ｓ５１０において、評価部４２８は、対象データは正常データであると判定する。そして、出力処理部４４０は、正常の判定結果を評価結果として出力するよう制御する。以上で評価処理が終了する。
【００６２】
一方、Ｓ５０７においては、評価部４２８は、対象辞書が最終段の辞書か否かを確認する。評価部４２８は、対象辞書が最終段の辞書でない場合には（Ｓ５０７でＮｏ）、処理をＳ５０８へ進める。評価部４２８は、対象辞書が最終段の辞書の場合には（Ｓ５０７でＹｅｓ）、処理をＳ５０９へ進める。Ｓ５０８において、評価部４２８は、異常度をクリアする。そして、新データ読込部４３０は、これまで処理対象としていたデータを新データ保持部４３１に読み込むことにより、再度対象データとして設定する。その後処理をＳ５０１へ進める。この場合、Ｓ５０１において、辞書読込部４２１は、次の段の辞書を読み込み、以降の処理が行われる。Ｓ５０９においては、出力処理部４４０は、最終段の辞書に対して得られた異常度を評価結果として出力するよう制御する。以上で評価処理が終了する。Ｓ５０９及びＳ５１０の処理は、対象データが特定カテゴリに属することの尤度を評価する評価処理の一例である。
【００６３】
なお、他の例としては、出力処理部４４０は、Ｓ５１０においても、正常の判定結果に替えて、特定カテゴリに属することの尤度に相当する指標として異常度を出力するよう制御してもよい。また、他の例としては、出力処理部４４０は、上記評価結果に替えて、または上記評価結果に加え、撮影画像を構成する複数のパッチそれぞれの評価結果に応じた総合的な評価結果を出力してもよい。
【００６４】
以上のように、本実施形態に係る情報処理装置１１０は、過検出気味の辞書を生成し、学習データに対する大まかな判定をしてから、次の段階の辞書で再度判定する。このように、判定の難しい特定カテゴリに属するマイノリティデータと特定カテゴリに属さないデータの境界を漸近的に求めることが可能である。
【００６５】
本実施形態に係る情報処理装置１１０は、辞書の生成に利用したデータと辞書との適合度に応じて適切なマイノリティデータを選択することができる。これにより、大多数データの表現能力の低下を防ぎつつ、マイノリティデータの表現能力も高い適切な辞書を生成することができる。
【００６６】
また、第１の実施形態の第１の変形例としては、情報処理装置１１０は、マイノリティパッチの周辺パッチも含むマイノリティ領域をマイノリティデータとして選択してもよい。例えば、情報処理装置１１０は、実施形態において説明した処理により選択されたマイノリティデータをマイノリティデータの候補とする。そして、情報処理装置１１０は、マイノリティデータの候補として選択された対象データの、画像上の位置情報と、分布モデルの投影誤差に基づいて、投影誤差のマップを生成する。そして、情報処理装置１１０は、マップから顕著な領域をマイノリティ領域として探索してから、領域内の投影誤差の最大値や平均値等を閾値として、改めて正常範囲及びマイノリティ範囲を定め、マイノリティデータを選択してもよい。このような処理によって、８×８画素というミクロの範囲ではなく、領域探索により周辺領域の参照によって、たとえば３００×３００画素等のマクロの範囲で異常領域を取得することができる。この場合は、異常候補領域をユーザに提示するアプリケーション等で、ユーザが処理装置の効果について直観的な感覚を持つことができる。
【００６７】
第２の変形例としては、辞書生成処理と評価処理は、異なる装置において実行されてもよい。例えば、第１の情報処理装置において辞書生成処理を行い、生成された段階的な辞書や各辞書の分布モデル等の情報を第２の情報処理装置に送信する。そして、第２の情報処理装置において、データの評価処理を行う。
【００６８】
第３の変形例としては、情報処理装置１１０は、再構成情報に基づいてマイノリティデータの選択を行えばよく、そのための具体的な処理は、実施形態に限定されるものではない。例えば、情報処理装置１１０は、前述の通り、再構成情報が１次元の場合には、再構成情報が示す値の大きさ順に辞書との乖離度が高い所定数又は所定割合のデータをマイノリティデータとして選択してもよい。すなわち、この場合には、投影誤差の算出、分布モデルの生成、異常度（又は乖離度）の算出は不要である。
【００６９】
さらに、情報処理装置１１０は、適合の程度を示す情報に基づいてマイノリティデータの選択を行えばよく、このとき用いられる適合の程度を示す情報は再構成情報、投影誤差、異常度（又は乖離度）に限定されるものではない。適合の程度を示す情報は、辞書との乖離度又は類似度を評価可能な値を示す情報であればよい。また、情報処理装置１１０は、分布モデルを生成するために用いる指標値についても、適合の程度を示す値を用いればよく、投影誤差に限定されるものではない。すなわち、情報処理装置１１０は、適合の適度を示す情報の分布に基づいて、マイノリティデータの選択を行えばよく、そのための具体的な処理は実施形態に限定されるものではない。
【００７０】
（第２の実施形態）
次に、第２の実施形態に係る検査システム１００について説明する。正常範囲が広く設定されると、正常と判定される大多数のデータの割合が増え、マイノリティ学習の効率が下がる。一方で、正常範囲を狭くすると、再学習すべき正常データを逃す可能性がある。よって、正常範囲と異常範囲の境界を定める適切な閾値を決定する方法が求められる。マイノリティ学習の目的は、正常データにおける異常度の高いデータと欠陥データにおける異常度の低いデータを区別することにある。この点に着目すると、欠陥データのうち異常度が最小となるデータを特定し、このデータの異常度の近傍値を境界としてマイノリティデータを選択することが好ましい。このようにして選択されたマイノリティデータを用いることにより、欠陥データと正常データの境界の精度の高い辞書を生成することができる。
【００７１】
以下、第２の実施形態に係る検査システム１００について、第１の実施形態に係る検査システム１００と異なる点について説明する。図６は、第２の実施形態に係る情報処理装置１１０による辞書生成処理に係る処理部６００のソフトウェア構成を示す図である。図７は、第２の実施形態に係る辞書生成処理を示すフローチャートである。図６に示すように、処理部６００は、第１の実施形態に係る処理部２００（図２）の構成に加えて、欠陥データセット読込部６１０と、欠陥データセット保持部６１１と、を有している。各部の機能については、辞書生成処理（図７）に沿って説明する。
【００７２】
図７においては、図３を参照しつつ説明した辞書生成処理における各処理と同一の処理には同一の符号を付し、説明を省略する。Ｓ３０５の処理の後、ＣＰＵ１１１は、処理をＳ７００へ進める。Ｓ７００において、欠陥データセット読込部６１０は、欠陥画像データセットを欠陥データセット保持部６１１に読み込む。なお、欠陥画像データセットは、欠陥画像から得られたパッチデータの集合である。なお、欠陥データセット読込部６１０は、図３のＳ３００の処理において説明したのと同様のサンプリング方法によってパッチを生成するものとする。
【００７３】
次に、Ｓ７０１において、段階処理部２４０は、欠陥画像データセットの各データの、対象辞書に対する再構成情報を算出し、さらに再構成情報から投影誤差を算出し、さらに異常度を算出する。本処理は、Ｓ３０３〜Ｓ３０６において説明した処理と同様である。次に、Ｓ７０２において、出力処理部２６０は、異常度に基づいて、欠陥画像データセットの複数のデータを順位付けする。なお、異常度は、辞書に対するデータの適合の程度を示す情報であり、本処理は、順位付け処理の一例である。さらに、出力処理部２６０は、順位に沿って複数のデータを並べた、データリストを表示装置１３０に表示するよう制御する。本処理は、表示処理の一例である。次に、Ｓ７０３において、選択部２４５は、ユーザ操作により選択されたデータをマイノリティデータとして選択する。
【００７４】
図８は、Ｓ７０２の処理時点において表示装置１３０に表示される表示画面の一例を示す図である。表示画面８００には、データリスト８１０が表示されている。データリスト８１０には、欠陥画像データセットに含まれる各データ８１１が異常度の順に配置されている。また、表示画面８００には、欠陥データセットに対応した元画像（欠陥画像）８２０が表示されている。
【００７５】
ユーザは、データリスト８１０に一覧表示された各データ（画像）を目視により確認する。そして、ユーザは、正常な状態を示す画像であるにも関わらず、明らかな欠陥を示す画像よりも高い異常度を示している画像（データ）を再学習の対象データ、すなわちマイノリティデータとして選択する。ユーザが、データリスト８１０においてデータ８１１を選択すると、選択されたデータは、再学習データの領域８３０に移動する。また、このとき、出力処理部２６０は、ユーザ操作に応じて選択されたデータに対応する元画像の領域をハイライト表示等強調表示するよう制御する。そして、ユーザが再学習ボタン８４０を押下すると、選択部２４５は、領域８３０に移動したデータをマイノリティデータとして選択する。
【００７６】
本実施形態においては、データリスト８１０だけでなく、元画像８２０が表示されているので、ユーザは、各データが異常データであるか正常データであるかを正しく判断することができる。なお、異常度の低い欠陥を見逃さないよう、正常範囲を狭くするようにマイノリティデータを選択するのが好ましい。
【００７７】
図７に戻り、Ｓ７０２の処理の後、ＣＰＵ１１１は、処理をＳ３０８へ進める。Ｓ３０８においては、新データセット読込部２５０は、Ｓ７０３において選択されたマイノリティデータを取得し、新データセットとして新データセット保持部２５１に読み込む。そして、辞書生成部２３１は、新データセットを対象データセットとし、対象データセットを用いて新たな辞書を生成する。なお、第２の実施形態に係る情報処理装置１１０のこれ以外の構成及び処理は、第１の実施形態に係る情報処理装置１１０の構成及び処理と同様である。
【００７８】
以上のように、第２の実施形態においては、マイノリティデータが特定カテゴリに属さないデータと区別し難いデータであることに着目し、特定カテゴリに属さないデータとの比較により、ユーザ操作により、閾値が設定される。このように、柔軟に閾値を設定することができる。
【００７９】
第２の実施形態の第１の変形例としては、選択部２４５は、上述の処理により、欠陥画像から正常マイノリティのデータ（マイノリティデータ）を選択した後、さらに欠陥画像や良品画像から正常マイノリティのデータ（マイノリティデータ）を追加してもよい。欠陥画像が少ない場合に効果的である。
【００８０】
具体的には、選択部２４５は、選択したマイノリティデータについて、異常度Ａminorの分布（μ（Ａminor），σ（Ａminor））を求める。さらに、選択部２４５は、欠陥画像から切り出したすべての欠陥領域に関して、異常度の最小値ｍｉｎ（Ａdefect）も求める。そして、選択部２４５は、ｍｉｎ（ｍｉｎ（Ａdefect），（μ（Ａminor）−ｎ×σ（Ａminor））で正常マイノリティ範囲を決める閾値を決定する。ここで、ｎは閾値の微調整をコントロールするパラメータである。表示画面上にｎの値を調節する調節バーを追加してもよい。この場合、ユーザがマイノリティデータを選択した後、ディフォルトのｎでマイノリティが決定され、更新した後のマイノリティデータがデータリスト８１０において強調表示される。ユーザが調節バーを通じてｎの値を調節することにより、その割合を変更することができる。
【００８１】
また、マイノリティデータを追加する処理としては、情報処理装置１１０は、領域から再構成情報等の特徴を抽出し、各々の選定された領域の付近にある未選定領域をｋ近傍法等で複数選択してもよい。さらに、情報処理装置１１０は、上述の方法で決定した閾値を分布モデルの正常範囲の閾値として記録し、判定時には、記録された閾値を参照してマイノリティデータを決定してもよい。
【００８２】
また、第２の変形例としては、情報処理装置１１０は、さらに欠陥位置の情報に基づいて、マイノリティデータを選択してもよい。例えば、情報処理装置１１０は、欠陥画像における欠陥位置を示す情報を取得する。そして、情報処理装置１１０は、ユーザ操作に応じて選択されたマイノリティデータと欠陥位置とが重なっているか否かに応じて、マイノリティデータであるか否かを自動的に判定し、マイノリティデータのみを選択してもよい。また、情報処理装置１１０は、データの評価時の閾値についても、欠陥位置に応じて決定してもよい。
【００８３】
また、第３の変形例としては、情報処理装置１１０は、マイノリティのパターンが複数存在する場合に、マイノリティのパターン毎にグループ化又はクラスタリングして表示してもよい。情報処理装置１１０は、例えば、前段階の辞書での再構成情報に基づいてグループ化を行う。図９は、第３の変形例に係る表示画面例を示す図である。表示画面９００には、欠陥データリスト９１０が表示されている。欠陥データリスト９１０には、グループ毎のリスト９１２が配置され、各リスト９１２に欠陥データ９１１が配置されている。各リストの左右位置は、表示画面８００におけるデータリスト８１０の左右位置と一致することが好ましい。また、表示画面９００には、元画像８２０、領域８３０及び再学習ボタン８４０が表示されている。
【００８４】
例えば、図９に示す元画像８２０のように、２種類のマイノリティが含まれる場合がある。このように、マイノリティの種類が複数ある場合、ユーザがマイノリティと欠陥との判別に長い時間を要してしまう可能性がある。また、異常度の低い欠陥を見逃す可能性もある。そこで、本例においては、情報処理装置１１０は、ランキングしたデータを一列に表示するではなく、類似するマイノリティパターンをグループ化して代表パターンを選択して表示する。これにより類似パターンを大量に表示することなく、ユーザが選別する際の効率を上げることができる。
【００８５】
また、第４の変形例としては、情報処理装置１１０は、分布モデルを生成することなく、投影誤差の値に応じて順位付けを行ってもよい。具体的には、情報処理装置１１０は、辞書が生成されると（Ｓ３０１又はＳ３０８）、生成された辞書に対し、欠陥データセットの各データの投影誤差を求め、投影誤差の値に応じて順位付けを行えばよい。この場合も、辞書との適合の適度に応じた適切な順位付けを行うことができる。
【００８６】
また、第５の変形例としては、情報処理装置１１０は、適合の程度を示す情報に基づいてデータの順位付けを行えばよく、そのための具体的な処理は実施形態に限定されるものではない。第２の実施形態においては、適合の適度を示す情報として投影誤差を用いる例を説明したが、適合の程度を示す情報は投影誤差に限定されるものではなく、再構成情報から得られた他の指標値を用いてもよい。また、他の例としては、情報処理装置１１０は、適合の程度を示す情報として再構成情報以外の情報を用いてもよい。
【００８７】
（第３の実施形態）
次に、第３の実施形態に係る検査システム１００について説明する。第１の実施形態及び第２の実施形態においては、情報処理装置１１０は、異常度（尤度）に応じて、マイノリティデータを選択したが、本実施形態の情報処理装置１１０は、異常度（尤度）に応じた重みを各データに付与した上で段階辞書を生成する。
【００８８】
本実施形態に係る情報処理装置１１０は、大規模辞書を分割することにより小規模な辞書候補を生成し、辞書候補から段階的な辞書を生成する。また、本実施形態に係る情報処理装置１１０は、評価処理時には、段階的な複数の辞書それぞれに対する、評価対象のデータの異常度（尤度）を求め、複数の辞書それぞれとの異常度に基づいて、正常データである（特定カテゴリに属する）ことの尤度を評価する。
【００８９】
以下、第３の実施形態に係る検査システム１００について他の実施形態に係る検査システム１００と異なる点について説明する。図１０は、第３の実施形態に係る情報処理装置１１０による辞書生成処理に係る処理部１０００のソフトウェア構成を示す図である。図１１は、第３の実施形態に係る辞書生成処理を示すフローチャートである。図１０に示すように、処理部１０００は、データセット読込部１０１０と、データセット保持部１０１１と、辞書候補生成部１０２０と、辞書候補保持部１０２１と、段階的辞書生成処理部１０３０と、を湯巣いている。処理部１０００は、また重み値読込部１０６０と、重み値保持部１０６１と、出力処理部１０７０と、を有している。段階的辞書生成処理部１０３０は、辞書選択部１０４０と、重み値処理部１０５０と、を有している。辞書選択部１０４０は、再構成部１０４１と、再構成情報保持部１０４２と、辞書候補評価部１０４３と、辞書保持部１０４４と、終了判定部１０４５と、を有している。重み値処理部１０５０は、データ評価部１０５１と、重み値更新部１０５２と、を有している。各部の機能については、辞書生成処理（図１１）に沿って説明する。
【００９０】
図１１に示すＳ１１００において、データセット読込部１０１０は、学習用のデータセットを取得し、これをデータセット保持部１０１１に読み込む。本処理は、図３を参照しつつ説明したＳ３００の処理と同様である。次に、Ｓ１１０１において、辞書候補生成部１０２０は、データセットを用いて、複数の辞書候補を生成し、これらを辞書候補保持部１０２１に記録する。具体的には、辞書候補生成部１０２０は、データセットを用いて大規模な１つの辞書を生成し、この辞書を複数の小規模な辞書に分割する。辞書候補生成部１０２０は、分割により得られた小規模な辞書を辞書候補として辞書候補保持部１０２１に記録する。なお、辞書候補生成部１０２０は、例えば、図３のＳ３０１の処理と同様の方法で大規模な辞書を生成する。なお、辞書候補のカバレッジを保証するために、基準データの個数Ｋ0を多めに、つまり過完備な辞書を生成することが好ましい。次に、辞書候補生成部１０２０は、基準データをランダムにＭ個のグループに分け、各グループに属する基準データを辞書候補として得る。本実施形態においては、辞書候補生成部１０２０は、Ｋ0＝２５６、Ｍ＝２５６とし、基準データ数が１個の辞書候補を生成する。
【００９１】
また、他の例としては、辞書候補生成部１０２０は、基準データをグループに分ける際に、Ｋ平均法等のクラスタリング方法を用いてもよい。また、他の例としては、ユーザが性質の異なるデータを指定し、辞書候補生成部１０２０は、ユーザにより指定された領域に対応した基準データセットに応じてグループ分けを行ってもよい。この場合、グループ内では微細な変化、グループ間では顕著な変化を捉えるような辞書候補を生成することができる。また、他の例としては、辞書候補生成部１０２０は、基準データや基準データペアが参照される頻度に基づいてグループ化を行ってもよい。
【００９２】
次に、Ｓ１１０２において、重み値読込部１０６０は、データセットに含まれる各データに対する重み値として初期値を重み値保持部１０６１に記録する。ここで、重み値は、辞書候補を評価する際に、各データが評価対象となる辞書候補に対して寄与する程度を示す評価値である。本実施形態においては、重み値読込部１０６０は、初期の重みｗi(0)として１を記録する。ここで、ｉは、データセットにおけるｉ番目のデータを示す。ｗi(0)の０は、辞書生成の段階が０であることを示す。
【００９３】
次に、Ｓ１１０３において、辞書選択部１０４０は、複数の辞書候補それぞれの、重み値により重み付けされた入力データセットの各データとの適合の程度を示す評価値を算出する。以下、入力データセットの各データに対する、辞書候補の評価値を辞書評価値と称することとする。本実施形態においては、辞書評価値は、入力データに含まれる複数のデータに対する辞書候補の評価値を総合した値とする。また、辞書（辞書候補）に対する、入力データセットに含まれる各データの評価値をデータ評価値と称することとする。なお、Ｓ１１０３の処理は、再構成部１０４１、辞書候補評価部１０４３行う処理である。本処理には、以下に示す２つの評価方法のいずれかを用いることができる。
【００９４】
（評価方法１）：この方法は、すべての辞書候補を用いてデータを１回再構成し、データに対するすべての辞書候補の寄与度総和を１とし、各辞書候補の寄与度の割合から辞書候補を評価するという相対評価方法である。具体的に、再構成部１０４１は、Ｋ0＝Ｍ個の基準データを用いて、各データｙiを（式１）を用いて再構成し、再構成情報を再構成情報保持部１０４２に記録する。結果として、再構成されたデータは（式７）のような形式で表すことができる。
【数７】
2018116364.tif 000009
ここで、ｉは入力データのインデックス、ｍは辞書候補（基準データ）のインデックスである。ｙi'は再構成されたデータ、Ｄ＝｛ｂm｝，ｍ＝０，…，Ｋ0−１は過完備辞書、ｘiは再構成係数ベクトル、ｂmはｍ番目の基準データ、ｘimはｍ番目の基準データの係数である。
【００９５】
次に、辞書候補評価部１０４３は、各辞書候補に対して、（式８）により辞書評価値を算出する。
【数８】
2018116364.tif 000010
ここで、Ｎは、入力データの個数である。Ｖm(t)は、ｔ回目の辞書選択処理に関する、ｍ番目の辞書候補（ｍ番目の基準データｂm）の評価値である。ｗi(t)は、ｔ回目の確定辞書選択処理におけるｉ番目の入力データの重み値である。Ｓimは、ｉ番目の入力データとｍ番目の辞書候補（基準データ）との類似度、あるいはｍ番目の辞書候補（基準データ）がｉ番目の入力データに対する寄与度である。ここで、類似度Ｓimは（式９）により得られる。
【数９】
2018116364.tif 000011
Ｓimは単なるｍ番目の辞書候補（基準データ）と入力データのドット積等ではなく、（式１）の最適化によって、すべての基準データを参照して決められた再構成係数に基づくものであることから、この評価方法を相対評価と呼ぶ。なお、Ｓimは回数ｔによって変わらないので、事前に計算しておくことも可能である。
【００９６】
（評価方法２）：辞書候補それぞれを用いてデータを再構成し、辞書評価値の最も良い辞書候補を選択するという絶対評価方法である。辞書候補が十分な基準データを持つ場合、例えば、Ｋ0＝２５６で、Ｍ＝１６の場合、このような評価を行うことが可能である。具体的に、ｍ番目の辞書候補を計算する際は、再構成部１０４１は、（式４）〜（式６）等を用いて異常度スコアＡimを算出し、これを再構成情報保持部１０４２に記録する。次に、辞書候補評価部１０４３は、（式８）により辞書評価値を算出する。但し、本処理においては、類似度Ｓimの算出には（式１０）を用いる。
【数１０】
2018116364.tif 000012
ここで、Ａimは、ｉ番目の入力データがｍ番目に生成された辞書候補で近似される際に計算された異常度スコアである。なお、Ａimを事前に計算しておくことも可能である。
【００９７】
次に、Ｓ１１０４において、辞書候補評価部１０４３は、辞書評価値に基づいて、辞書候補の中から、辞書を選択する。本処理には、Ｓ１１０３における処理に応じて異なる選択方法を用いることができる。
【００９８】
（選択方法１（評価方法１に対応する））：辞書候補評価部１０４３は、複数の基準データを選択し、それらの集合を確定辞書として選択する。確定辞書内の基準データをＫ’
個選択する場合について説明する。辞書候補評価部１０４３は、Ｋ0個の候補基準データに関して、評価値Ｖm(t)を降順に並べ替えて、評価値が最も高いＫ’個を選択する。す
べての基準データのインデックスの集合をＩとし、選択された基準データのインデックスの集合をＩk’、選択されない基準データのインデックスの集合をＩk’’とした場合、
確定辞書は（式１１）により表現される。
【数１１】
2018116364.tif 000013
ここで、Ｄ(t)はｔ回目に選択された確定辞書（ｔ段の確定辞書）である。
【００９９】
（選択方法２（評価方法２に対応する））：辞書候補評価部１０４３は、１つの辞書候補を選択し、これを確定辞書とする。辞書候補評価部１０４３は、Ｍ個の評価値Ｖm(t)の内、辞書評価値の最大値に対応する辞書候補をｔ回目の確定辞書として、確定辞書保持部１０４４に保存する。
【０１００】
次に、Ｓ１１０５において、終了判定部１０４５は、辞書生成の終了判定を行う。終了判定部１０４５は、実施形態１において図３を参照しつつ説明したＳ３０９の処理と類似の方法で、データセットに適した辞書生成の回数Ｔを自動的に設定し、回数Ｔに達した場合に終了と判定する。終了評価処理（Ｓ３０９）異なる部分としては、最終の辞書に対する適合の程度を示す指標値の算出方法である。Ｓ１１０５においては、終了判定部１０４５は、後述の（式１５）により、段階的辞書との類似度を指標値として算出する。なお、他の例としては、辞書生成の回数Ｔは予め定められていてもよい。終了判定部１０４５は、終了と判定した場合には（Ｓ１１０５でＹｅｓ）、処理をＳ１１０８へ進める。Ｓ１１０８においては、出力処理部１０７０は、学習結果として、生成した辞書（段階辞書）を出力するよう制御する。終了判定部１０４５は、終了と判定しなかった場合には（Ｓ１１０５でＮｏ）、処理をＳ１１０６へ進める。
【０１０１】
Ｓ１１０６において、データ評価部１０５１は、Ｓ１１０４において選択された確定辞書に対する、データセットに含まれる各データのデータ評価値を算出する。本実施形態においては、第１の実施形態において説明した異常度をデータ評価値として算出するものとする。
【０１０２】
次に、Ｓ１１０７において、重み値更新部１０５２は、次の辞書選択時に、Ｓ１１０３において利用されるデータの重み値を、データ評価値としての異常度に基づいて求め、重み値保持部１０６１に記憶されている重み値を新たに求めた重み値で更新する。
【０１０３】
具体的には、まず重み値更新部１０５２は、Ｓ１１０６において算出したｔ段の辞書（確定辞書）に対する異常度Ａ(t)について、平均μ（Ａ(t)）と分散σ（Ａ(t)）を算出し、辞書保持部１０４４に記録する。次に、重み値更新部１０５２は、異常度を（式１２）により正規化する。本処理により、異常度の平均が０に移動する。
【数１２】
2018116364.tif 000014
【０１０４】
次に、重み値更新部１０５２は、（式１３）により重み値を更新する。（式１３）では、ｔ回目のデータの重みに係数をかけるが、異常度スコアをそのままかけるのではなく、シグモイド関数によって０から１に正規化したものを係数としてかける。この処理によって、回数ｔを重ねるにつれ、データの重みが単調減少することが保証される。
【数１３】
2018116364.tif 000015
ここで、ｗi(t)は、処理時点の直前に実行されたＳ１１０３において利用された重み値、すなわち、直前に生成された確定辞書の生成時に利用された重み値である。ｗi(t+1)は、処理時点の直後に実行されるＳ１１０３において利用される重み値である。Ａi(t)は、データｉをｔ回目に選択された辞書（ｔ段の辞書）で近似した際の異常度であり、データｉと辞書との適合度を表す。αはゲインであり、非線形変化の激しさをコントロールする。
【０１０５】
ここで、Ｓ１１０７の処理は、第ｎ段（ｎは１以上の整数）の辞書が選択された時点において、辞書として選択されていない辞書候補に対する、各データの適合の程度を示す情報としての異常度に応じて、データを重み付けする重み付け処理の一例である。なお、第ｎ＋１段の辞書の選択時には、本処理において重み付けされたデータが用いられる。
【０１０６】
なお、他の例としては、本実施形態においても、情報処理装置１１０は、生成された辞書に対する入力データの分布モデルを生成し、辞書保持部１０４４辞書と共に出力するよう制御することとしてもよい。
【０１０７】
次に、第３の実施形態に係る情報処理装置１１０による評価処理について説明する。図１２は、情報処理装置１１０の評価処理に係る処理部１２００のソフトウェア構成を示す図である。図１３は、評価処理を示すフローチャートである。図１２に示すように、処理部１２００は、データ読込部１２１０と、データ保持部１２１１と、段階的データ処理部１２２０と、辞書信頼度読込部１２３０と、辞書信頼度保持部１２３１と、出力処理部１２４０と、を有している。段階的データ処理部１２２０は、辞書読込部１２２１と、辞書保持部１２２２と、異常度算出部１２２３と、辞書信頼度算出部１２２４と、累積値算出部１２２５と、評価部１２２６と、を有している。各部の機能については、評価処理（図１３）に沿って説明する。
【０１０８】
Ｓ１３００において、データ読込部１２１０は、判定対象となるデータを取得し、これをデータ保持部１２１１に読み込む。本処理は、図５のＳ５００の処理と同様である。次に、Ｓ１３０１において、辞書読込部１２２１は、辞書生成処理（図１１）により生成された辞書、辞書に対して算出された値を辞書保持部１２２２に読み込む。ここで、辞書に対して算出された値としては、データセットに含まれる各データのデータ評価値としての異常度の平均μ（Ａ(t)）と分散σ（Ａ(t)）がある。なお、辞書読込部１２２１は、分布辞書が生成されている場合には、分布モデルも読み込んでもよい。
【０１０９】
なお、Ｓ１３０１の処理は繰り返し実行される処理であり、辞書読込部１２２１は、段階辞書の生成に対応し、Ｓ１３０１の処理の１回目の実行時には１段の辞書を読み込む。そして辞書読込部１２２１は、Ｓ１３０１の処理（Ｓ１３０１〜Ｓ１３０５のループ処理）の繰り返し回数に応じて、第２段の辞書、第３段の辞書、というように段階順に辞書を読み込む。以下、Ｓ１３０１において読み込んだ辞書を対象辞書と称する。
【０１１０】
次に、Ｓ１３０２において、異常度算出部１２２３は、データと対象辞書との異常度（乖離度）Ａi(t)を算出する。本処理は、図５を参照しつつ説明したＳ５０２〜Ｓ５０４の処理と同様である。次に、Ｓ１３０３において、辞書信頼度算出部１２２４は、異常度Ａi(t)に基づいて、対象辞書に対する辞書信頼度を算出する。具体的には、辞書信頼度算出部１２２４は、（式１４）により、対象辞書に対する辞書信頼度αi(t)を算出する。ここで、ｔは辞書の段数を示す。
【数１４】
2018116364.tif 000016
【０１１１】
次に、Ｓ１３０４において、累積値算出部１２２５は、ｔ段の辞書までの辞書信頼度の累積値を算出する。次に、Ｓ１３０５において、評価部１２２６は、辞書生成処理において生成されたすべての辞書に対してＳ１３０１〜Ｓ１３０４の処理が完了したか否かを確認する。評価部１２２６は、すべての辞書に対する処理が完了した場合には（Ｓ１３０５でＹｅｓ）、処理をＳ１３０６へ進める。評価部１２２６は、未処理の辞書が存在する場合には（Ｓ１３０５でＮｏ）、処理をＳ１３０１へ進める。この場合、Ｓ１３０１において、辞書読込部１２２１は、処理済みの辞書の次の段の辞書を読み込む。そして、以降の処理が実行される。なお、すべての辞書に対する処理が完了した時点での、辞書信頼度の累積値は、（式１５）で表される。
【数１５】
2018116364.tif 000017
ここで、Ｓi*はｉ番目のデータと段階的に学習された辞書との適合度である。Ｓi(t)はｉ番目のデータとｔ段の辞書との適合度であり、異常度スコアＡi(t)の逆数で代用することが可能である。αi(t)は（式１４）で算出される、ｉ番目のデータのｔ段の辞書に対する辞書信頼度であり、（式１３）の係数部分を縦軸を基準に反転したものである。
【０１１２】
Ｓ１３０６において、出力処理部１２４０は、評価結果を出力するよう制御する。なお、辞書信頼度の累積値は、各辞書との適合度の重み付き平均であり、その重みは辞書への信頼度を変形したものである。求めた累積度は、第１の実施形態や第２の実施形態の評価処理において得られた異常度（適合の程度を示す指標値）に相当する値である。Ｓ１３０６において、出力処理部１２４０は、この累積値を特定カテゴリに属することの尤度の評価結果として出力する。
【０１１３】
なお、他の例としては、出力処理部１２４０は、さらに識別器を生成し、累積値から正常・異常の二値の判定を行い、この結果を評価結果として出力してもよい。また、他の例としては、出力処理部１２４０は、画像からサンプリングした各々の小画像に対し、累積適合度を求め、すべての小画像の統計量を用いて画像全体としての良否を判定し、この結果を評価結果として出力してもよい。
【０１１４】
以上のように、第３の実施形態に係る検査システム１００は、段階的な辞書生成の過程において学習用のデータを使用するか否かの二値化するのに替えて、辞書の再構成能力をＳi(t)のような連続値として指標化する。また、判定時においても、辞書の再構成能力をＳi(t)のような連続値として指標化する。これにより、適切な辞書を学習（生成）することができる。
【０１１５】
（第４の実施形態）
次に、第４の実施形態に係る検査システム１００について説明する。本実施形態においては、情報処理装置１１０は、データ空間をデータ分布の多峰性に対応したサブ空間に分割し、各サブ空間に対して辞書学習及び評価を行う。以下、第４の実施形態に係る検査システム１００について、他の実施形態に係る検査システム１００と異なる点について説明する。図１４は、第４の実施形態に係る辞書生成処理及び評価処理に係る処理部１４００のソフトウェア構成を示す図である。図１５は、第４の実施形態に係る辞書生成処理を示すフローチャートである。図１６は、第４の実施形態に係る評価処理を示すフローチャートである。
【０１１６】
図１４に示すように、処理部１４００は、データセット読込部１４１０と、データセット保持部１４１１と、分割部１４１２と、分割モデル保持部１４１３と、サブデータセット保持部１４１４と、段階的辞書生成処理部１４１５とを有している。処理部１４００はまた、辞書保持部１４１６と、辞書出力処理部１４１７と、データ読込部１４２０と、データ保持部１４２１と、サブ辞書特定部１４２２と、段階的データ処理部１４２３と、評価結果出力処理部１４２４と、を有している。各部の機能については、図１４及び図１５に沿って説明する。
【０１１７】
図１５の辞書生成処理では、まず、Ｓ１５００において、データセット読込部１４１０は、データセットをデータセット保持部１４１１に読み込む。本処理は、図３のＳ３００の処理と同様のである。次に、Ｓ１５０１において、分割部１４１２は、データセットを複数のデータセットに分割する。分割には、様々なクラスタリング手法を用いることができる。本実施形態に係る分割部１４１２は、図３のＳ３０１〜Ｓ３０７の処理によりマイノリティデータを選択し、マイノリティデータの選択時に得られた再構成情報等の中間結果の情報に基づいて、クラスタリングを行う。これにより、分割処理を効率化することができる。なお、データセットの分割のための具体的な処理は実施形態に限定されるものではなく、マイノリティデータを用いることなく分割を行ってもよい。
【０１１８】
以下、マイノリティデータを用いた分割方法としては以下の方法が挙げられる。
データ分割方法１：クラスタ生成で使用するデータとしては、パッチそのままを利用することやパッチをＤＣＴ変換した結果のほか、再構成係数ベクトルを活用することや（式７）の再構成情報ベクトルｙi'を利用してもよい。データ空間を分割するには、階層的で凝集型のクラスタ生成や非階層的で最適化ベースのＫ平均法等、様々な基本的なクラスタリング手法を用いることが可能である。さらに、第１の実施形態において説明したＫ−ＳＶＤ等の辞書生成方法をマイノリティデータセットに適用して、得られた基準データをクラスタの中心にしてもよい。
【０１１９】
データ分割方法２：クラスタ生成で使用するデータは、元のデータを再構成するのにどの基準データを使用したかという情報である。この方法は、再構成方法がＯＭＰ（Ｏｒｔｈｏｇｏｎａｌ  Ｍａｔｃｈｉｎｇ  Ｐｕｒｓｕｉｔ）の場合に用いる。例えば、基準データ数Ｋ＝８で、選択基準データ数ｋ＝２の場合、再構成処理後、マイノリティデータセットが自動的にＮC＝kＣK＝２８個のクラスタに分けられる。
【０１２０】
データ分割方法３：データ分割方法２の拡張である。基準データ数が多い場合、基準データのペア数も増えてしまうため、クラスタ数をコントロールする必要がある。Ｎc個のクラスタを取得後、類似するクラスタを合併して、クラスタ数を減らす。具体的には、データ分割方法２で得たクラスタを凝集型クラスタリングの中間段階として、クラスタ間距離を算出してから類似クラスタを合併するというプロセスを指定クラスタ数になるまで繰り返す。クラスタ間距離算出方法に関しては、最短距離法や、群平均法、クラスタ間分散、ベイズ誤り確率等を用いても良い。
【０１２１】
次に、Ｓ１５０２において、分割部１４１２は、分割モデルを分割モデル保持部１４１３に記録する。ここで、分割モデルとは、Ｓ１５０１において得られたクラスタの生成のパラメータ（クラスタの中心等）の情報である。次に、Ｓ１５０３において、段階的辞書生成処理部１４１５は、サブデータセット保持部１４１４からサブデータセットを１つ取得する。次に、Ｓ１５０４において、段階的辞書生成処理部１４１５は、Ｓ１５０３において取得したサブセットデータを対象データセットとして、辞書生成処理を行い、辞書を辞書保持部１４１６に記録する。なお、Ｓ１５０４の処理は、図１１のＳ１１０１〜Ｓ１１０７の処理と同様である。また、他の例としては、Ｓ１５０４において、情報処理装置１１０は、図３のＳ３０１〜Ｓ３０９の処理を行うこととしてもよい。
【０１２２】
次に、Ｓ１５０５において、段階的辞書生成処理部１４１５は、すべてのサブデータセットについてＳ１５０４の処理が完了したか否かを確認する。段階的辞書生成処理部１４１５は、すべてのサブデータセットに対する処理が完了した場合には（Ｓ１５０５でＹｅｓ）、処理をＳ１５０６へ進める。段階的辞書生成処理部１４１５は、未処理のサブデータセットが存在する場合には（Ｓ１５０５でＮｏ）、処理をＳ１５０３へ進める。この場合、Ｓ１５０３において、段階的辞書生成処理部１４１５は、未処理のサブデータセットを１つ取得する。そして、以降の処理が実行される。Ｓ１５０６において、辞書出力処理部１４１７は、生成された辞書を出力するよう制御する。以上で、辞書生成処理が終了する。
【０１２３】
次に、評価処理について説明する。図１６の評価処理においては、まず、Ｓ１６００において、データ読込部１４２０は、判定対象となるデータを取得し、これをデータ保持部１４２１に読み込む。本処理は、図５のＳ５００の処理と同様である。次に、Ｓ１６０１において、サブ辞書特定部１４２２は、分割モデル保持部１４１３に記憶されている、各クラスタの分割モデルを取得する。次に、Ｓ１６０２において、段階的データ処理部１４２３は、辞書生成処理により得られた各クラスタの辞書を読み込む。
【０１２４】
次に、Ｓ１６０３において、段階的データ処理部１４２３は、対象データの判定に用いる辞書を選択する。具体的には、対象データと各々のクラスタの中心の距離を算出し、距離が最も小さいクラスタに対応する辞書を選択する。次に、Ｓ１６０４において、段階的データ処理部１４２３は、対象データをＳ１６０５において選択した辞書で再構成する。
【０１２５】
次に、Ｓ１６０５において、評価結果出力処理部１４２４は、判定結果を出力するよう制御する。なお、Ｓ１６０４及びＳ１６０５の処理は、第１の実施形態において、図５を参照しつつ説明したＳ５０２〜Ｓ５１０の処理と同様である。なお、他の例としては、評価処理において、情報処理装置１１０は、データが属するクラスタを特定せずに、各々のクラスタの辞書を用いて辞書適合度を特定し、クラスタ毎の辞書適合度の平均を判定結果として出力するよう制御してもよい。
【０１２６】
データマイノリティが存在するときは、データの分布に多峰性が現れると考えられる。多峰性のデータに対して辞書を学習すると、クラスタ間差異を表現する基準データが学習されるが、クラスタ内の細かい表現が足りない問題が起きる。本実施形態に係る情報処理装置１１０は、データ空間をサブ空間に分割して辞書生成及び判定を行うので、このような問題に対し、クラスタ内の細かい表現能力を高めることができる。
【０１２７】
なお、第４の実施形態の変形例としては、データを分割する処理は、実施形態に限定されるものではない。パッチのサイズが小さい場合、パッチが欠陥領域の一部か正常領域の一部かが特定しにくいので、パッチベースのクラスタリングは直観的な結果が得られない。このような場合には、周辺パッチを考慮し、大き目の領域を得てからクラスタリングすることが好ましい。しかし、この場合、データの次元数が高くなり、良いクラスタ結果が得られにくい。これに対し、情報処理装置１１０は、ユーザ操作に応じてクラスタリングを行うこととしてもよい。
【０１２８】
図１７は、変形例に係る表示画面例を示す図である。表示画面１７００には、データリスト８１０、元画像８２０及び再学習ボタン８４０が表示されている。また、クラスタに対応した２つの領域１７０１、１７０２と、追加ボタン１７１０が表示されている。ここで、各領域１７０１と領域１７０２は、それぞれ異なるクラスタに対応している。ユーザが領域１７０１に移動したデータは、領域１７０１に対応するクラスタに属することとなり、領域１７０２に移動したデータは、領域１７０２に移動したクラスタに属することとなる。さらに、本例においては、ユーザが追加ボタン１７１０を押下する毎に、クラスタに対応した領域が追加表示される。したがって、ユーザ操作に応じた数のクラスタを生成することができ、またユーザ操作に応じて、各データを適切なクラスタに分配することができる。本例においては、第２の実施形態のユーザによるマイノリティデータ選定に比べ、選定と同時に、分別することが可能で、データに多峰性が現れる場合に効果的である。
【０１２９】
（変形例）
上記の実施形態において生成される辞書は、特定カテゴリを表現するための表現辞書の生成方法に関するものである。これらの方法は、特定カテゴリと非特定カテゴリを識別するための識別辞書の生成にも適用可能である。表現辞書は、未知の欠陥の種類が予測困難の場合に効果的である。一方で、識別辞書は、たとえば、欠陥の種類が限られている際に効率的である。
【０１３０】
識別辞書を学習するには、学習データが特定カテゴリに属するか否かという学習データラベル情報を既知情報とする必要がある。識別器は、線形判別、サポートベクターマシン、ニューラルネットワーク等様々な識別器を用いることが可能である。識別辞書との適合度は、識別器の識別結果とラベル情報との一致具合を表す。識別器にニューラルネットワークを使った場合、学習画像から切り出した多数の多重解像の小画像を入力データとして、オートエンコーダで特徴抽出を行い、最終層にロジスティック回帰を用いて識別辞書学習を行う識別方法が考えられる。また、学習画像から切り出した多数の小画像を入力データとして、畳み込みニューラルネットワークを学習することで、識別を行うことも可能である。
【０１３１】
識別辞書を用いる一つの実施形態として、第１の実施形態において、情報処理装置１１０は、識別結果のカテゴリと既知のカテゴリが一致しないデータを再学習に使用してもよい。また、識別辞書を用いる他の実施形態としては、情報処理装置１１０は、第２の実施形態のユーザインタフェースに、特定カテゴリと非特定カテゴリそれぞれについて、再学習対象プールを備えてもよい。情報処理装置１１０は、表示する領域の順序は第２の実施形態のように異常度（識別スコア）の高さで決定する。ただし、情報処理装置１１０は、ユーザが領域選別する際に、特定カテゴリと非特定カテゴリそれぞれに対して、相手のカテゴリに入り込んだ領域をそれぞれのカテゴリの再学習対象プールに移動するようにして、識別辞書の再学習を行う。この実施形態では、学習データの内、ラベル情報が部分的にしかわかっていないデータが存在しても、ユーザが識別結果に対するフィードバックによって、識別辞書学習が可能である。
【０１３２】
また、識別辞書を用いるほかの実施形態として、第３の実施形態において、情報処理装置１１０は、学習データが特定カテゴリに属するか否かということを既知情報とし、識別結果のカテゴリと既知のカテゴリを比較する。そして、情報処理装置１１０は、両者が一致しない場合に、そのデータを重視して再学習してもよい。この際は、識別スコアを用いて、相手のカテゴリとどれほど間違いやすいかを再学習の際のデータ重みにすることが考えられる。
【０１３３】
また、識別辞書を用いるほかの実施形態として、第４の実施形態のように、特定カテゴリに属するデータに多峰性が生じる場合、上記方法を分割したそれぞれのデータグループに適用し、複数のサブ識別器を生成してもよい。
【０１３４】
なお、上記実施形態（第１の実施形態〜第４の実施形態）においては検査システム１００を外観検査に適用する場合を例に説明したが、検査システム１００の適用対象は実施形態に限定されるものではない。他の例としては、特定のシーンである動画であるかどうかといった評価処理にも適用可能である。例えば、監視カメラから異常の行動を検出するという例では、人間が歩いているという行動を正常行動として、歩く以外は異常な行動とする場合、シーンの中で歩く人間がすれ違うと正常として認められず、異常行動として検知されてしまう。しかし、すれ違いという行動をマイノリティパターンとしてとらえれば、上記実施形態の方法を適用することが可能である。また、例えば、音声データや、超音波の波形分析、その他のマルチメディアデータ、テキストデータ等、データを表現するための辞書が生成できるようなものであれば、その他の形式のデータに対しても、上記実施形態の方法を適用可能である。
【０１３５】
また、上記実施形態の検査システム１００は、カテゴリ未知のデータが特定カテゴリに属するか否かを判定するが、カテゴリ未知のデータが多数の特定カテゴリのいずれかに属するかどうかという、多クラス分類問題にも適用できる。その場合は、検査システム１００は、辞書学習時は各々のカテゴリに対して、段階的辞書学習を行い、評価時は評価データと各々のカテゴリの辞書との適合度を算出し、適合度の一番高いカテゴリ、あるいは、どのカテゴリにも属さないという結果を出力してもよい。
【０１３６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１３７】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１３８】
１００  検査システム
１１０  情報処理装置
１１１  ＣＰＵ
【図１】
2018116364.tif 000018
【図２】
2018116364.tif 000019
【図３】
2018116364.tif 000020
【図４】
2018116364.tif 000021
【図５】
2018116364.tif 000022
【図６】
2018116364.tif 000023
【図７】
2018116364.tif 000024
【図８】
2018116364.tif 000025
【図９】
2018116364.tif 000026
【図１０】
2018116364.tif 000027
【図１１】
2018116364.tif 000028
【図１２】
2018116364.tif 000029
【図１３】
2018116364.tif 000030
【図１４】
2018116364.tif 000031
【図１５】
2018116364.tif 000032
【図１６】
2018116364.tif 000033
【図１７】
2018116364.tif 000034
【図１８】
2018116364.tif 000035