(57)【特許請求の範囲】
【請求項１】
検査対象物を含む画像から複数の特徴量を抽出する抽出手段と、
前記抽出された特徴量に基づいて、前記検査対象物の異常度を判定する判定手段と、
前記画像から、前記特徴量それぞれのスコアを表す複数のスコアマップを生成するマップ生成手段と、
前記判定手段により判定される異常度に対する前記特徴量それぞれの寄与度に基づいて、前記複数のスコアマップを統合することにより、前記検査対象物が異常であると判定された根拠となる欠陥を表す欠陥表示画像を生成する画像生成手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
検査対象物を含む複数の画像から複数の特徴量を抽出する抽出手段と、
前記抽出された特徴量に基づいて、前記検査対象物の異常度を判定する判定手段と、
前記複数の画像から、前記特徴量それぞれのスコアを表す複数のスコアマップを生成するマップ生成手段と、
前記判定手段により判定される異常度に対する前記特徴量それぞれの寄与度に基づいて、前記複数のスコアマップを統合することにより、前記検査対象物が異常であると判定された根拠となる欠陥を強調表示する画像を生成する画像生成手段とを備えることを特徴とする情報処理装置。
【請求項３】
前記複数の画像は、異なるパターン照明がそれぞれ照射された前記検査対象物を含む画像であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
更に、前記異常度に基づいて前記検査対象物が正常であるか異常であるかを判定する判定手段を備え、
前記画像生成手段は、前記判定手段による判定結果に対する前記特徴量それぞれの寄与度に基づいて、前記複数のスコアマップを統合することにより、前記検査対象物が異常であると判定された根拠となる欠陥を表す欠陥表示画像を生成することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
更に、前記画像に対して、所定の変換を行い、解像度の異なる複数の階層画像を生成する階層画像生成手段を備え、
前記抽出手段は、前記階層画像から前記特徴量を抽出することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記特徴量は、前記階層画像内の画素値の最大値、平均値、分散、尖度、歪度、コントラスト、最大勾配のうち、少なくともいずれか１つを含むことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記所定の変換は、ウェーブレット変換であることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
検査対象物を含む画像から複数の特徴量を抽出する抽出ステップと、
前記抽出された特徴量に基づいて、前記検査対象物の異常度を判定する判定ステップと、
前記画像から、前記特徴量それぞれのスコアを表す複数のスコアマップを生成するマップ生成ステップと、
前記判定ステップで判定される異常度に対する前記特徴量それぞれの寄与度に基づいて、前記複数のスコアマップを統合することにより、前記検査対象物が異常であると判定された根拠となる欠陥を表す欠陥表示画像を生成する画像生成ステップと、
前記欠陥表示画像を出力する出力工程とを備えることを特徴とする情報処理方法。
【請求項９】
検査対象物を含む複数の画像から複数の特徴量を抽出する抽出ステップと、
前記抽出された特徴量に基づいて、前記検査対象物の異常度を判定する判定ステップと、
前記複数の画像から、前記特徴量それぞれのスコアを表す複数のスコアマップを生成するマップ生成ステップと、
前記判定ステップで判定される異常度に対する前記特徴量それぞれの寄与度に基づいて、前記複数のスコアマップを統合することにより、前記検査対象物が異常であると判定された根拠となる欠陥を強調表示する画像を生成する画像生成ステップとを備えることを特徴とする情報処理方法。
【請求項１０】
コンピュータを、請求項１乃至７のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体を撮像しその撮像された画像に基づいて、物体の正常異常を判定する方法に関する。
【背景技術】
【０００２】
画像等の信号が入力され、入力信号の属性等を識別器によって識別する際、識別結果の根拠をユーザに可視化して提示する物がある。例えば自動外観検査のような分野においては、検査対象を含む画像を用いて、検査対象が正常であるか異常であるかを判定する際に、異常であると判定した結果と共に、異常と判定した根拠を提示できればユーザにとって有益な情報となる。つまり、異常の原因となる領域を画像として可視化すれば自動外観検査装置の判定基準をユーザが直感的に知ることができる。そうすると、検査に関わるパラメータを調整する際や特定の異常パターン発生の多寡を知りその対応として生産ラインの工程にフィードバックを与えて改善を行う際に役立つ。
【０００３】
例えば特許文献１では、検査対象物を複数の照明条件で撮影することにより得られる複数の画像から、１枚の判定用画像を作成し、該判定用画像を用いて正常か異常かの検査を行うことが開示されている。特許文献１の方法で作成された判定用画像は、異常と判定された場合に、異常の存在する領域が他の正常な領域とは異なって可視化されており、ユーザにとってどの領域が異常であるか容易に理解しやすい。
【０００４】
しかし、特許文献１における判定用画像の生成は、予め定められた所望の検査項目に応じて最適化されており、複雑な検査や未知の欠陥に対応することが難しい。
【０００５】
そこで、特許文献２には、特許文献１のような判定用画像を生成せずに、入力された画像から予め選択された特徴量を抽出し、該特徴量を使って正常か異常かを判定する方法が開示されている。この方法は、判定用画像を生成せずに、正常か異常かの識別に影響のある特徴量を予め学習しておくことにより、精度良く正常か異常かを判別することが可能である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１７５３０５号公報
【特許文献２】特開２０１０―１０２６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献２のように、判定用画像を作成せずに検査結果を出力する方法を使った場合であっても、結果の分析も行いたいという場合もある。すなわち、部品の外観検査において、正常／異常の識別精度は非常に重要である一方で、副次的な情報である異常原因（異常の種類、場所等）を知り傾向を容易に把握するということもユーザにとって有益な情報になるケースも多く存在する。特許文献２の方法では、異常原因をユーザに提示することができないという課題があった。
【０００８】
そこで、本発明は上記課題に鑑みてなされたものであり、入力データに対する判定結果とともに、その判定結果の根拠をユーザに提示することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の情報処理装置は、例えば、検査対象物を含む画像から複数の特徴量を抽出する抽出手段と、前記抽出された特徴量に基づいて、前記検査対象物の異常度を判定する判定手段と、前記画像から、前記特徴量それぞれのスコアを表す複数のスコアマップを生成するマップ生成手段と、前記判定手段により判定される異常度に対する前記特徴量それぞれの寄与度に基づいて、前記複数のスコアマップを統合することにより、前記検査対象物が異常であると判定された根拠となる欠陥を表す欠陥表示画像を生成する画像生成手段とを備えることを特徴とする。
【００１０】
また、本発明の別の側面の情報処理装置は、例えば、検査対象物を含む複数の画像から複数の特徴量を抽出する抽出手段と、前記抽出された特徴量に基づいて、前記検査対象物の異常度を判定する判定手段と、前記複数の画像から、前記特徴量それぞれのスコアを表す複数のスコアマップを生成するマップ生成手段と、前記判定手段により判定される異常度に対する前記特徴量それぞれの寄与度に基づいて、前記複数のスコアマップを統合することにより、前記検査対象物が異常であると判定された根拠となる欠陥を強調表示する画像を生成する画像生成手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、入力データに対する判定結果とともに、その判定結果の根拠をユーザに提示することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態における情報処理装置を用いた検査システムの構成例を示した図である。
【図２】第１の実施形態における表示装置１０４の表示例である。
【図３】第１の実施形態の処理フローチャートである。
【図４】第１の実施形態の処理フローチャートである。
【図５】第１の実施形態における従来の装置の機能ブロック図と、本実施形態の情報処理装置の機能ブロック図を示す。
【図６】第１の実施形態における図５のマップ統合部の処理内容を詳細に表した構成図である。
【図７】第１、第２の実施形態における異常度スコアにおける各特徴量の重要度を決定する際の説明のための図である。
【図８】第２、第３の実施形態における情報処理装置を用いた検査システムの構成例を示した図である。
【図９】第２の実施形態における情報処理装置の機能ブロック図を示す。
【図１０】第２の実施形態における図９のマップ統合部の処理内容を詳細に表した構成図である。
【図１１】第３の実施形態における情報処理装置の機能ブロック図を示す。
【図１２】第３の実施形態における図１１の画像合成部の処理内容を詳細に表した構成図である。
【図１３】第４の実施形態における情報処理装置の機能ブロック図を示す。
【図１４】第４の実施形態における図１３のマップ統合部の処理内容を詳細に表した構成図である。
【図１５】第３の実施形態の処理フローチャートである。
【発明を実施するための形態】
【００１３】
以下に、図面を参照しながら、本発明を実施するための形態（実施形態）について説明する。
【００１４】
本発明にかかる各実施形態を説明するのに先立ち、各実施形態に示す情報処理装置１０１が実装されるハードウェア構成について、図１を用いて説明する。
【００１５】
同図において、ＣＰＵ１０１０は、バス１０００を介して接続する各デバイスを統括的に制御する。ＣＰＵ１０１０は、読み出し専用メモリ（ＲＯＭ）１０２０に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム（ＯＳ）をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はＲＯＭ１０２０に記憶されており、ランダムアクセスメモリ（ＲＡＭ）１０３０に一時記憶され、ＣＰＵ１０１０によって適宜実行される。また、入力Ｉ／Ｆ１０４０は、外部の装置（表示装置や操作装置など）から情報処理装置１で処理可能な形式で入力信号として入力する。また、出力Ｉ／Ｆ１０５０は、外部の装置（表示装置）へ表示装置が処理可能な形式で出力信号として出力する。
【００１６】
（第１の実施形態）
以下、図面を参照して本発明が適用される第１の実施形態を詳細に説明する。
【００１７】
図１は、本実施形態の情報処理装置１０１をつかった外観検査システムの概念図である。
【００１８】
撮像装置１０３は、検査対象物１０２の表面の映像（画像パターン）を取得可能なビデオカメラなどから構成され、取得した映像を情報処理装置１０１に送信する。情報処理装置１０１は、送信されたビデオ映像を用いて外観検査のための情報処理を行う。
【００１９】
検査対象物１０２は、情報処理装置１０１によって、良品であるか不良品であるかを判定される対象となる物体である。検査対象物１０２の例としては、工業製品に利用されるゴム成型品、金属部品、レンズ等ガラス成型品、プラスチック成型品等である。検査対象物１０２は、表面には、良品には見られない凹凸や表面の加工工程におけるムラやキズがあることがあり、外観検査によってこれらが検出され、不良品として検出される。
【００２０】
表示装置１０４はモニタなどから構成される。表示装置１０４への判定結果表示例を図２に示した。領域２０１には画像がいくつか表示されており、領域２０１内で選択され太枠強調表示された画像に対応する正常／異常分類結果が領域２０２にＯＫ／ＮＧとして表示され、そのときの識別器による異常度スコアが領域２０３に表示されている。そして選択されている画像に対する異常度スコアマップが領域２０４に表示されており、画像だけでは視認することが困難であった大きなキズ状の異常が、領域２０４に表示された異常度スコアマップでは容易に視認できる様子を表している。つまり、領域２０４に表示された画像をユーザが確認する事によって、なぜ領域２０１で選択された画像が異常と判定されたのかを理解することが容易となる。
【００２１】
図６（Ａ）は、特許文献１に記載されているような、入力画像４００から判定用画像を生成して可視化する従来の装置の機能ブロック図である。そして、図６（Ｂ）は本実施形態の機能ブロック図である。図６（Ａ）では入力画像４００が判定用画像生成部４０２で判定用中間画像４０３が生成され、該判定用中間画像４０３の結果を元に識別部４０４にて正常であるか異常であるかを識別している。以下、図６（Ｂ）における本実施形態の情報処理装置を構成する各機能について説明する。
【００２２】
入力画像４０１は、撮像部によって検査対象物体が撮像された画像である。
【００２３】
特徴抽出部４０５は、入力画像４０１から特徴量を抽出する。本実施形態では、特徴量として、入力画像を変換した画像から、最大値や平均値、分散、尖度、歪度やコントラスト、最大勾配等を抽出する。具体的な処理については後述する。
【００２４】
識別部４０６は、特徴抽出部４０５により抽出された特徴量を使って、入力画像４０１に含まれている検査対象物が正常か異常かを判定する。
【００２５】
マップ生成部４０７は、入力画像４０１から抽出特徴に対応した各特徴量のマップが４０７にて生成される。
【００２６】
マップ統合部４０８は、識別部４０６で識別時に得られた識別結果に対する各特徴量の寄与度を参照して、マップ生成部４０７で特徴量毎に生成された複数のマップを統合することにより、欠陥候補領域を可視化した可視化画像４０９を生成する。マップ統合部４０８は、生成された可視化画像４０９を出力する。
【００２７】
これらの各機能部は、ＣＰＵ１０１０が、ＲＯＭ１０２０に格納されたプログラムをＲＡＭ１０３０に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、ＣＰＵ１０１０を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００２８】
以下、本実施形態の処理フローチャートを、図３を参照しながら説明する。
【００２９】
（ステップＳ３０１）
ステップＳ３０１では、特徴抽出部４０５は、検査対象の画像である入力画像４０１からＮ個の特徴を抽出する。以下では、本実施形態において画像から抽出される特徴量をどのように決定するかに関して以下で説明する。
【００３０】
まず、入力画像４０１をＨａａｒ  Ｗａｖｅｌｅｔ（ハールウェーブレット）変換によるフィルタ処理により高周波数成分から低周波数成分の垂直、水平および対角方向の周波数成分の画像に分解して複数の階層画像を生成する。そして、生成された複数の階層画像から複数の特徴量を抽出する。ハールウェーブレット変換による処理は、入力画像４０１に対して以下の４種の行列で表されるフィルタ（式１−Ａ〜１−Ｄ）にて行う。
【００３１】
【数１】
0006632288.tif 000002
式１−Ａが垂直方向高周波数成分フィルタ、式１−Ｂが水平方向高周波数成分フィルタ、式１−Ｃが対角方向高周波数成分フィルタ、式１−Ｄが低周波数成分フィルタを表している。入力画像４０１内の２×２の画素に対し、式１−Ａ〜１−Ｄで示されるフィルタを用いて内積計算を行うことにより新規に得られた、周波数成分で分解された画像の対応する画素値を格納した新たな画像を生成する。このフィルタ処理を２×２の領域を重複させずに、入力が画像４０１内の全領域を移動させ、垂直方向高周波成分画像、水平方向高周波成分画像、対角方向高周波成分画像、低周波成分画像の４種類の画像サイズが縦横ともにサイズが２分の１になった画像が獲得される。
【００３２】
そして、低周波成分画像を入力画像と同様にさらにフィルタ処理を行うことによって次の階層の垂直方向高周波成分画像、水平方向高周波成分画像、対角方向高周波成分画像、低周波成分画像の４種類の画像を取得する。
【００３３】
以上の周波数ごとに信号を分離する処理を繰り返すことによって画像サイズが縦横２分の１になった画像の生成が繰り返され、最終的にそれ以上分離が不可能なレベルの階層まで繰り返して終了する。尚、何階層まで分離するかは入力画像４０１のサイズに依存することになるが、例えば８階層まで分解すると１階層あたり４種の画像が獲得されるため８×４＝３２種の画像が獲得される（階層画像生成）。
【００３４】
次に、３２種の画像から複数の統計的特徴量を抽出する。ここで抽出される特徴量は各々の周波数成分画像内（階層画像内の）の画素値の最大値、平均値、分散、尖度、歪度、コントラスト、最大勾配等の値とする。ここで各周波数成分画像から抽出する特徴量の数を２０個だとすると、最終的に１つの元画像から抽出される特徴量の数は３２×２０＝６４０個となる。しかし、６４０もの多数の特徴量を全て使った識別処理は扱う情報の次元数が高次元になってしまい、一般的に『次元の呪い』と呼ばれる現象により汎化能力が下がることが多い。そこで事前に正常と異常を精度よく分離する特徴量セットを探索する機械学習的な方法によって識別処理に適した特徴量の組合せを選択しておき、実際の検査では精度の高い識別処理を実現することができる。良好な特徴量の組合せを探索する特徴選択方法としては様々な方法が知られており、それらはＬＡＳＳＯやグラフカット、遺伝的アルゴリズムを用いた特徴選択手法等多様な手法がある。以降では事前に特徴選択処理によって最終的に選ばれた特徴量はＮ個（数１０個程度）であるものとする。尚、識別器はどのような物を用いても良いが、本実施形態では部分空間法を用いる。また、本実施形態では、Ｈａａｒ  Ｗａｖｅｌｅｔ変換を用いたが、本発明はこれに限られるものではなく、入力画像４０１から複数の画像を生成することができる所定の変換でよい。
【００３５】
（ステップＳ３０２）
ステップＳ３０２では、識別部４０６は、ステップＳ３０１で抽出されたＮ個の特徴量を取得し、部分空間法によって正常の分布として学習されていた正常の領域を表す高次元面からの距離によって異常であるかどうかを判定する。異常度スコアは識別器によって正常の分布からの距離等をスコア化したものとして定義される。本実施形態では識別部４０６による識別方法として部分空間法を用いている。図７に示すように入力される全特徴量をＸとすると事前の学習時の訓練正常データによってパターンの分布の分散が最大となる向きを持つ超平面が学習されている。そして、テスト時に新規に入力されたデータから超平面に対して直交する方向成分における距離Ｄを正常の分布から離れた距離、つまり異常度スコアとして利用する。よって、検査用の中間画像は存在せず、正常／異常を識別することができる。距離Ｄを求めるためには正常データの平均ベクトルＭｃ（ｃ＝１，２，…，Ｃ）と超平面構成ベクトルφｃｌ（ｌ＝１，２，…，Ｌ）によって表現したい正常の特徴空間における分布を超平面による近似表現で行うことができる。前記ｌは以降説明で適切な次元数Ｌを決定しＬ次元超平面を設定すると良い。
【００３６】
外観検査において、ｃは正常状態のクラス数であり、例えば２つの正常状態が混交している中での検査ならばｃ＝２として実施すれば良い。ｃ＝２の場合の距離Ｄは２つの正常クラス（ｃ＝１およびｃ＝２）で定義される２つの距離を算出し、２つの距離のうちのどちらかが事前に閾値設定した距離以下であれば正常と判定することができる。ただし、一般的に精密さが求められる外観検査では２種類の部品の検査を１つの検査工程で同時に行うという可能性は極めて低い為、以降ではｃ＝１であるとする。また、正常データの数をｔとする。このとき、Ｍｃは式２のように表される。
【００３７】
【数２】
0006632288.tif 000003
分散共分散行列Σｃは、特徴ベクトルＸｃｉを用いて示すことができる。分散共分散行列Σｃを式３に示す。
【００３８】
【数３】
0006632288.tif 000004
近似超平面を定義するためには式３で得られたΣｃを用いて式４に示される固有値問題を解く。
【００３９】
【数４】
0006632288.tif 000005
そして、Σｃの第ｌ番目の固有値、固有ベクトルをそれぞれλｃｌ、φｃｌとしてλｃｌの大きい方からＬ個を選びそれに対応するφｃｌによって式２のＭｃを通る超平面を正常の分布を説明する面として定義する。異常度スコアとなる距離Ｄは、テストサンプルから抽出された特徴ベクトルＸ’がＮ次元の特徴ベクトルであった場合、ｊ番目（１≦ｊ≦Ｎ）の要素をｘｊとし、同様に平均ベクトルＭｃのｊ次元目の要素をｍｊｃとし、式５のように表せる。
【００４０】
【数５】
0006632288.tif 000006
さらに、ここで異常度スコアＤ（距離Ｄ）算出とともにＮ個ある特徴量の異常度スコアＤへの寄与度を出力する。ここでいう寄与度は、異常度スコアＤに対する該特徴量それぞれの寄与する割合のことであり、後段で異常度スコアマップを可視化する際にステップＳ３１２で読込んで利用する。寄与度の算出方法は例えば以下のように計算することができる。Ｘ’に対する重みＷのｊ次元目の要素をｗｊ、固有ベクトルをｅとすると、異常度スコアＤとの関係は式６のように表すことができる。
【００４１】
【数６】
0006632288.tif 000007
これによって求めるべきｊ次元目の特徴量の寄与度ｗｊは式７として算出される。
【００４２】
【数７】
0006632288.tif 000008
ここで算出されたｗｊをステップＳ３０６の可視化ステップで利用するため出力する。また、異常度スコアＤに対して事前に閾値を設定しておき、ステップＳ３０３では、識別部は、正常であるか異常であるかを判定する。
【００４３】
（ステップＳ３０４）
ステップＳ３０４では、異常度スコアマップによる欠陥候補領域可視化をするかどうかを判定する。欠陥候補領域可視化をするかどうかは、ユーザにより予め設定されていればよい。異常度スコアマップ可視化をしないと設定されていた場合は、ステップＳ３０５に処理が進む。異常度スコアマップを可視化すると設定されていた場合は、ステップＳ３０６に処理が進み、欠陥領域候補の可視化を行う。また、ステップＳ３０４にて正常か異常かという判定結果によってステップＳ３０６に進むかステップＳ３０５に進むか決定をすればよい。すなわち、異常と判定された場合には、自動的にステップＳ３０６に処理が進むようにしてもよい。
【００４４】
（ステップＳ３０５）
ステップＳ３０５では、マップ統合部４０８は、正常であるか異常であるか、異常度スコア等の情報を表示装置１０４に出力する。
【００４５】
（ステップＳ３０６）
ステップＳ３０６では、欠陥領域を可視化する。この処理については図４の処理フローチャートを用いて説明する。
【００４６】
（ステップＳ３０８）
ステップＳ３０８では、マップ生成部４０７は、入力画像４０１を取得する。
【００４７】
（ステップＳ３０９）
ステップＳ３０９では、マップ生成部４０７は、ステップＳ３０１で抽出された特徴量のスコアを表すスコアマップを算出する。例えば、ステップＳ３０１で抽出したＮ個の特徴量の１つがＨａａｒＷａｖｅｌｅｔ変換し得られた階層画像の最大値であったとすると、マップ生成部４０７が生成するマップはステップＳ３０１で最大値を抽出するための階層画像と同一である。また、ステップＳ３０１で抽出したＮ個の特徴量の１つがＨａａｒＷａｖｅｌｅｔ変換し得られた階層画像の平均値であったとすると、階層画像を任意のサイズのグリッドに分割し、各グリッド内の平均値を算出して得られる画像をスコアマップとする。
【００４８】
（ステップＳ３１０）
ステップＳ３１０では、マップ生成部４０７は、ステップＳ３０９で得られたスコアマップの正規化を行う。事前に、欠陥のない検査対象物を含んだ複数の訓練画像を、ステップＳ３０９と同様の方法で、各特徴に対応するスコアマップに変換し、得られたスコアマップの平均値及び標準偏差を求めておき、例えばＲＯＭ１０２０に保持しておく。そして、保持されている平均値および標準偏差を読み出し、読み出された値を用いて、ステップＳ３０９で得られたスコアマップを正規化する。
【００４９】
（ステップＳ３１１）
ステップＳ３１１では、マップ統合部４０８は、スコアマップの閾値以上のみの値を残すか、全ての値を残すかをユーザの設定によって決定し、もし閾値切りを行う設定をしていた場合はステップＳ３１３にて閾値以下の領域を全て０にする。
【００５０】
（ステップＳ３１２）
ステップＳ３１２では、マップ統合部４０８は、ステップＳ３０２で出力していた特徴量の寄与度を読込み、その寄与度を各スコアマップの重要度として用いて各スコアマップを統合することにより、欠陥表示画像を作成する。このときの重要度を反映させた画像を作成する過程を図６の概念図に示す。図６の概念図は図５（Ｂ）のマップ統合部４０８を詳細に表現している。
【００５１】
式７で算出した重要度Ｗは入力されたＮ個の特徴量についてそれぞれ図６に示したように各ｗ１〜ｗＮの重みを保持しており、これらの重みが識別部４０６からマップ統合部４０８へ送られる。そしてＮ個の特徴量から算出された各マップがそれぞれＦｍａｐ１〜ＦｍａｐＮとしてマップ生成部４０７から送られる。そして各対応するマップに重要度が積算され、全てのマップの同一画素ごとに線形和をとり、１枚の欠陥表示画像を生成する。なお、各スコアマップを統合する際には、各スコアマップをいったん元の入力画像４０１と同じ解像度に変換してから統合する。欠陥表示画像は、欠陥の領域を強調して示す画像であり、識別部４０６により異常と判定された根拠を示す画像である。
【００５２】
（ステップＳ３１３）
ステップＳ３１３では、マップ統合部４０８は、ステップＳ３１０で正規化された各マップにおいて、閾値以下のスコアをもつ領域のスコアを全て０にする。これにより、欠陥領域のみスコアをもつようになるため、入力画像４０１に重畳して表示した場合に、欠陥領域の位置がより認識しやすくなる。
【００５３】
（ステップＳ３０７）
ステップＳ３０７では、マップ統合部４０８は、ステップＳ３０６で生成されたスコアマップを表示装置１０４に出力し、表示させる。ステップＳ３０５で正常であるか異常であるか、異常度スコアなどを出力して、処理を終了する。
【００５４】
本実施形態により、ユーザは、異常判定の結果と共になぜ異常であると判定したのか直感的に知ることができる。そのため、検査に関わるパラメータを調整する際や特定の異常パターン発生の多寡を知り、その対応として生産ラインの工程にフィードバックを与えて改善を行うこともできる。
【００５５】
（第２の実施形態）
以下に、図面を参照しながら、本発明を実施するための第２の形態（実施形態）について説明する。第２の実施形態は単一の検査対象を撮影して複数の画像が取得され、各々の画像から特徴量を抽出して外観検査を行う場合に検査結果の根拠を示す画像を生成する場合である。
【００５６】
本実施形態に示す情報処理装置８０１が実装されるハードウェア構成について、図８を用いて説明する。図８の構成は図１の構成に似るが、検査対象８０２は表面に大きな凹凸構造がありそれら凹凸の上のテクスチャ異常を精度良く検出するための構成となっている。よって、図１と比較して８０５〜８１２の８個の照明装置が加わりこれらが情報処理装置８０１にて制御されることによる差異が有る。
【００５７】
図８は本実施形態の情報処理装置８０１を使った外観検査システムの概念図である。
【００５８】
撮像装置８０３は、検査対象８０２の表面の映像（画像パターン）を取得可能なビデオカメラなどから構成され、取得した映像を情報処理装置８０１に送信する。ここで撮像装置８０３の撮像と同期して８０５〜８１２の照明装置の照明時期が制御され、検査対象８０２に関する複数種の画像を撮影する。図８では８０５〜８１２の照明装置は照射角度の異なる照明として例示したが、これらは可視光や一様照明に限らず、赤外線でも任意のパターン照明でも良い。特に検査対象８０２の立体構造を取得して利用する場合は複数のパターン照明を照射して撮像することが有り得る。さらにこれらの８個の照明の組合せによる照明条件下撮影することも有り得る。本実施形態ではそれぞれ単一の照明条件下１度の撮影を行い８個の入力画像が取得され、処理を行うものとして説明する。
【００５９】
以上により情報処理装置８０１は、８０５〜８１２の照明装置を制御して撮像装置８０３により撮影し送信された複数種のビデオ映像を用いて異常検出のための情報処理を行う。
【００６０】
検査対象物８０２は、情報処理装置８０１によって、正常であるか異常であるかを判定される対象となる物体である。
【００６１】
表示装置８０４はモニタなどから構成される。表示装置８０４への判定結果表示例は第１の実施形態と同様で図２に示した通りであり第１の実施形態と同様である。
【００６２】
図９は本実施形態の機能ブロック図である。以下、図９における本実施形態の情報処理装置を構成する各機能について説明する。
【００６３】
入力画像９００５〜９０１２は前記照明装置８０５〜８１２による照明環境下で検査対象物体が撮像部８０３によって撮影された画像である。特徴抽出部９０５０〜９０５７は、それぞれ入力画像９００５〜９０１２から特徴量を抽出する。本実施形態では第１の実施形態と同様、特徴量として、入力画像を変換した周波数した画像から、最大値や平均値、分散、尖度、歪度やコントラスト、最大勾配等を抽出する。
【００６４】
識別部９０６は、特徴抽出部９０５０〜９０５７により抽出された特徴量を使って、入力画像９００５〜９０１２に含まれている検査対象物が正常か異常かを判定する。
【００６５】
マップ生成部９０７０〜９０７７では、それぞれ対応する入力画像９００５〜９０１２からの抽出特徴に対応した各特徴量のマップが生成される。
【００６６】
マップ統合部９０８は、識別部９０６で識別時に得られた識別結果に対する各特徴量の寄与度を参照して、マップ生成部９０７０〜９０７７で特徴量毎に生成された複数のマップを統合することにより、欠陥候補領域を可視化した可視化画像９０９を生成する。可視化画像９０９を生成する処理は、第１の実施形態と同様に行うが、違いは入力画像の数である。第１の実施形態では１つの入力画像から抽出した特徴量群によって検査を行ったが、本実施形態では複数の画像から抽出した特徴量群を第１の実施形態の１つの入力画像から抽出した特徴量群と同様に用いて検査を行う。ここで可視化画像を生成する方法を図１０の概念図を参照して説明する。図１０の概念図は図９のマップ統合部９０８を詳細に表現している。
【００６７】
以下、本実施形態の処理フローチャートを、図３を参照しながら説明する。
【００６８】
（ステップＳ３０１）
ステップＳ３０１における一連の特徴抽出等処理は第１の実施形態と同様である。入力画像９００５〜９０１２から各々と対応する特徴抽出部９０５０〜９０５７によってそれぞれ特徴量が抽出される。１つの入力画像からの特徴抽出方法はＨａａｒ  Ｗａｖｅｌｅｔ（ハールウェーブレット）変換によるフィルタ処理により高周波数成分から低周波数成分の垂直、水平および対角方向の周波数成分の画像に分解して複数の階層画像を生成する。そして、生成された複数の階層画像から複数の特徴量を抽出する。ここで抽出される特徴量に関しても第１の実施形態と同様、事前に異常データを高精度に検出できる特徴量を選択している。ただし、本実施形態では特徴選択前の特徴抽出処理が入力画像８個全てで行われるため、抽出される特徴量は第１の実施形態と比して８倍の特徴量が抽出された状態から選択される。そしてこれら全抽出特徴から良好な特徴量の組合せを探索する。特徴選択方法としては良く知られたＬＡＳＳＯやグラフカット、遺伝的アルゴリズムを用いた特徴選択手法等によって選択すれば良い。特徴選択した結果、特徴抽出部９０５０〜９０５７で抽出される特徴量がそれぞれ同じ特徴量セットになる必要は無く、抽出される特徴量の数も等しくする必要は無い。場合によってはいくつかの照明条件下で撮影された画像からの抽出特徴数が０という場合も有り得る。
【００６９】
以降では事前に特徴選択処理によって最終的に選ばれた特徴量は全入力画像から抽出される特徴量の合計が数１０個程度であるものとする。
【００７０】
（ステップＳ３０２）
ステップＳ３０２では、ステップＳ３０１で抽出された特徴量が特徴抽出部９０５０〜９０５７から送られ、識別部９０６によって正常／異常判定される。尚、本実施形態では第１の実施形態と同様に識別部９０６では部分空間法によって正常の分布として学習されていた正常の領域を表す高次元面からの距離によって異常であるかどうかを判定する。異常度スコアに対する各特徴量の寄与度の算出方法は第１の実施形態と同様に行い、算出された各特徴量の寄与度を出力する。ステップＳ３０３では、識別部は、正常であるか異常であるかを判定する。
【００７１】
（ステップＳ３０４）
ステップＳ３０４では、異常度スコアマップによる欠陥候補領域可視化をするかどうかを判定する。欠陥候補領域可視化をするかどうかは、ユーザにより予め設定されていればよい。異常度スコアマップ可視化をしないと設定されていた場合は、ステップＳ３０５に処理が進む。異常度スコアマップを可視化すると設定されていた場合は、ステップＳ３０６に処理が進み、欠陥領域候補の可視化を行う。また、ステップＳ３０４にて正常か異常かという判定結果によってステップＳ３０６に進むかステップＳ３０５に進むか決定をすればよい。すなわち、異常と判定された場合には、自動的にステップＳ３０６に処理が進むようにしてもよい。
【００７２】
（ステップＳ３０５）
ステップＳ３０５では、マップ統合部９０８は、正常であるか異常であるか、異常度スコア等の情報を表示装置１０４に出力する。
【００７３】
（ステップＳ３０６）
ステップＳ３０６では、欠陥領域を可視化する。この処理については図４の処理フローチャートを用いて説明する。
【００７４】
（ステップＳ３０８）
ステップＳ３０８では、マップ生成部９０７０〜９０７７は、入力画像９００５〜９０１２を取得する。
【００７５】
（ステップＳ３０９）
ステップＳ３０９では、マップ生成部９０７０〜９０７７は、第１の実施形態と同様にステップＳ３０１で抽出された特徴量のスコアを表すスコアマップを算出する。
【００７６】
（ステップＳ３１０）
ステップＳ３１０では、マップ生成部９０７０〜９０７７は、第１の実施形態と同様にステップＳ３０９で得られたスコアマップの正規化を行う。
【００７７】
（ステップＳ３１１）
ステップＳ３１１では、マップ統合部９０８は、スコアマップの閾値以上のみの値を残すか、全ての値を残すかをユーザの設定によって決定し、もし閾値切りを行う設定をしていた場合はステップＳ３１３にて閾値以下の領域を全て０にする。
【００７８】
（ステップＳ３１２）
ステップＳ３１２では、マップ統合部９０８は、ステップＳ３０２で出力していた特徴量の寄与度を読込み、その寄与度を各スコアマップの重要度として用いて各スコアマップを統合することにより、欠陥表示画像を作成する。このときの重要度を反映させた画像を作成する過程を図１０の概念図に示す。図１０の概念図は図９のマップ統合部９０８を詳細に表現している。ここでのマップ統合も入力画像数が複数あるが、各々の特徴量から算出された各マップがそれぞれＦｍａｐ９０７０１〜ＦｍａｐＮまでが対応する重要度との積算を行い、全てのマップの同一画素ごとに線形和をとり、１枚の欠陥表示画像を生成する。なお、各スコアマップを統合する際には、各スコアマップをいったん元の入力画像９００５〜９０１２と同じ解像度に変換してから統合する。もし９００５〜９０１２の画像サイズが異なるような場合があれば、それらを同一のサイズに変換し（例えば最大の入力画像サイズに合わせる）、結合する。
【００７９】
欠陥表示画像は、欠陥の領域を強調して示す画像であり、識別部４０６により異常と判定された根拠を示す画像である。
【００８０】
（ステップＳ３１３）
ステップＳ３１３では、マップ統合部９０８は、ステップＳ３１０で正規化された各マップにおいて、閾値以下のスコアをもつ領域のスコアを全て０にする。これにより、欠陥領域のみスコアをもつようになるため、入力画像４０１に重畳して表示した場合に、欠陥領域の位置がより認識しやすくなる。
【００８１】
（ステップＳ３０７）
ステップＳ３０７では、マップ統合部９０８は、ステップＳ３０６で生成されたスコアマップを表示装置１０４に出力し、表示させる。ステップＳ３０５で正常であるか異常であるか、異常度スコアなどを出力して、処理を終了する。
【００８２】
本実施形態により、ユーザは、異常判定の結果と共になぜ異常であると判定したのか直感的に知ることができる。そのため、検査に関わるパラメータを調整する際や特定の異常パターン発生の多寡を知り、その対応として生産ラインの工程にフィードバックを与えて改善を行うこともできる。その他、複数の照明条件による撮影画像と各々画像に対応してＳ３０２で出力される特徴量の寄与度によって重要な撮影条件やどの撮影条件のときに認識されやすい欠陥であるかといった傾向を知ることができる。
【００８３】
（第３の実施形態）
以下に、図面を参照しながら、本発明を実施するための第３の形態（実施形態）について説明する。第３の実施形態は第２の実施形態と同様に単一の検査対象を撮影して複数の画像が取得され、各々の画像から特徴量を抽出して外観検査を行う場合に検査結果の根拠を示す画像を異常度スコアマップによる可視化画像ではなく、複数の照明条件で撮影された入力画像から異常領域が強調されて撮影された合成画像を可視化結果として表示する方法である。本実施形態によると、例えば初期設定では図８の８０５〜８１２に示すように照明条件を調整せずに撮影して検査を行ったとしても、最適な該照明条件の組合せによって得られる欠陥領域強調画像としてユーザが直感的に認識やすい画像として合成し、提示することができる。
【００８４】
本実施形態と第２の実施形態との差分を図９と図１１の比較によって説明する。本実施形態では第２の実施形態におけるマップ生成部９０７０〜９０７７およびマップ統合部９０８が存在せず、代わりに画像合成部９１０が存在し入力画像を受信して可視化画像９１１を出力する。よって、図３で表されるＳ３０１〜Ｓ３０７に関する処理フローは第２の実施形態と同様である。Ｓ３０６欠陥領域可視化のフローは本実施形態では図１５に変わる。
【００８５】
（ステップＳ３１４）
ステップＳ３１４では、入力画像９００５〜９０１２が読み込まれ、画像合成部９１０に送信される。
【００８６】
（ステップＳ３１５）
ステップＳ３０２で出力した各特徴量の寄与度（重要度）が識別部９０６から画像合成部９１０へ送られる。そして、各入力画像に対応する重要度を計算する。図１２は画像統合部９１０での処理の例を詳細に表している。各入力画像９００５〜９０１２に対する重要度は各々の特徴量重要度の内、各入力画像に対応する重要度の和によって定義される。各入力画像に対し前記算出された重要度を積算し得られる物は各画素値が小数の形態を許容し、０〜２５５の輝度の範囲を超える二次元の行列の形態になる。これら得られた結果を累積し、最終的に得られた２次元の行列を再度０〜２５５に納まるように正規化することによって可視化画像９１１を得る。
【００８７】
（第４の実施形態）
以下に、図面を参照しながら、本発明を実施するための第４の形態（実施形態）について説明する。第４の実施形態は単一の検査対象を撮影して複数の画像が取得され、画像から特徴量を抽出して外観検査を行う場合、各々の画像について識別器による異常度が算出され、入力画像の個数分の異常度を統合して再度正常であるか異常であるかを判定し、またそのときの複数の異常度スコアを基準にして検査結果の根拠を示す画像を生成する場合である。
【００８８】
第２の実施形態では複数の照明条件による撮影画像が入力されるとそれらから抽出した特徴量はまとめられて一つの識別器によって正常か異常かを判定した。しかし、特に生産ラインにおける実際のユースケースでは各々の撮影には時間がかかるため、全ての撮影が終了するまで検査が行われないとタクトタイム上不都合となることがある。そこで、このような検査を行う場合は各入力画像ごとに傾向の異なる異常を検出する検査装置を並べたラインを設計することが多い。そういった場合にも各識別器が出力した異常度スコアを用いて検査結果の根拠を示す画像を生成することを目的とする。
【００８９】
図１３で入力画像９００５〜９０１２が入力され、各々から特徴抽出部９０５０〜９０５７において事前に選択された特徴量が抽出される。そして各々抽出された特徴量が識別部９０６０〜９０６７にて異常度Ｄ１３０〜Ｄ１３７が算出される。ここで、識別部９０６０〜９０６７は例えば部分空間法などによって識別し、正常データの分布からの距離を異常度として算出できる方法を用いる。またこの各々の識別処理とマップ統合部９０８０〜９０８７がマップを出力する処理は、１個の入力画像が撮影されて識別処理及び可視化画像生成を行う第１の実施形態と同様である。そして入力画像個数分の異常度がさらに識別部９０６００に送信され、結果を総合的に判断して検査対象が正常であるか異常であるかを判定する。識別部９０６００はどのような識別方法でも良いが、例えば異常度Ｄ１３０〜Ｄ１３７の合計値を閾値判定する方法や、Ｄ１３０〜Ｄ１３７各々に閾値を予め設定しておき、１つでも閾値を超えていた場合は異常として判定するといった単純な方法で良い。そして、各マップ統合部９０８０〜９０８７によって算出された特徴量マップＦｍａｐ１３００〜Ｆｍａｐ１３０７はマップ統合部９０８００に送られる。そしてマップ統合部９０８００は識別部９０６０〜９０６７が出力した異常度Ｄ１３０〜Ｄ１３７を受信し、図１４に示すように各特徴量スコアマップに対して対応する異常度が積算され、累積することによって可視化画像９０９を生成する。これは異常度が大きい物が各異常傾向を強く反映していると考えられる為、第１〜第３の実施形態における重要度と同等に扱えるという考えに基いている。
【００９０】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0006632288.tif 000009
【図２】
0006632288.tif 000010
【図３】
0006632288.tif 000011
【図４】
0006632288.tif 000012
【図５】
0006632288.tif 000013
【図６】
0006632288.tif 000014
【図７】
0006632288.tif 000015
【図８】
0006632288.tif 000016
【図９】
0006632288.tif 000017
【図１０】
0006632288.tif 000018
【図１１】
0006632288.tif 000019
【図１２】
0006632288.tif 000020
【図１３】
0006632288.tif 000021
【図１４】
0006632288.tif 000022
【図１５】
0006632288.tif 000023