(58)【調査した分野】(Int.Cl.,DB名)
遺伝的アルゴリズムまたは遺伝的プログラミングを用いる最適化処理をコンピュータに行わせるプログラムであって、前記プログラムの前記コンピュータによる実行は、前記コンピュータに、
a)最適化対象の複数通りの条件をそれぞれ表現する複数の個体を記憶する工程と、
b)前記最適化対象に応じて定められた評価処理により、前記複数の個体のそれぞれにおける評価値を求める工程と、
c)前記複数の個体のうち前記評価値が高い個体が優先的に含まれる選択、並びに、突然変異および交叉を含む遺伝的操作により、新たな複数の個体を生成する工程と、
d)前記b)およびc)工程を、終了条件を満たすまで繰り返すことにより、最適解として推定される個体を取得する工程と、
を実行させ、
前記d)工程が、
d1)繰り返されるc)工程にて生成される個体を含む複数の教師個体のそれぞれから取得される特徴ベクトルと、前記複数の教師個体のそれぞれにおける前記評価値に基づくクラスとを用いて学習を行うことにより分類器を構築する工程と、
d2)前記d1)工程の後の各c)工程にて生成される新たな複数の個体を前記分類器にて分類することにより、前記各c)工程の次のb)工程において前記評価値が求められる個体を制限する工程と、
を備えることを特徴とするプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、遺伝的アルゴリズムまたは遺伝的プログラミングを用いた最適化処理では、次世代の個体を生成する際における突然変異や交叉のランダム性により、探索範囲を広くすることが可能となるが、評価値である適応度が極めて低い不適合な個体も発生しやすい。実際には、各個体が不適合なものであるか否かは、評価値を算出しなければ判らないため、各世代の全ての個体の評価値が算出される。したがって、最適解として推定される個体を取得するまでに、非常に長い演算時間が必要となる。
【0006】
本発明は上記課題に鑑みなされたものであり、遺伝的アルゴリズムまたは遺伝的プログラミングを用いた最適化処理において、最適解に至るまでの演算時間を短縮することを目的としている。
【課題を解決するための手段】
【0007】
請求項1に記載の発明は、遺伝的アルゴリズムまたは遺伝的プログラミングを用いるとともに、コンピュータを利用した最適化方法であって、a)最適化対象の複数通りの条件をそれぞれ表現する複数の個体を記憶する工程と、b)前記最適化対象に応じて定められた評価処理により、前記複数の個体のそれぞれにおける評価値を求める工程と、c)前記複数の個体のうち前記評価値が高い個体が優先的に含まれる選択、並びに、突然変異および交叉を含む遺伝的操作により、新たな複数の個体を生成する工程と、d)前記b)およびc)工程を、終了条件を満たすまで繰り返すことにより、最適解として推定される個体を取得する工程とを備え、前記d)工程が、d1)繰り返されるc)工程にて生成される個体を含む複数の教師個体のそれぞれから取得される特徴ベクトルと、前記複数の教師個体のそれぞれにおける前記評価値に基づくクラスとを用いて学習を行うことにより分類器を構築する工程と、d2)前記d1)工程の後の各c)工程にて生成される新たな複数の個体を前記分類器にて分類することにより、前記各c)工程の次のb)工程において前記評価値が求められる個体を制限する工程とを備える。
【0008】
請求項2に記載の発明は、請求項1に記載の最適化方法であって、前記複数の個体が、複数通りの画像処理シーケンスをそれぞれ表現し、前記評価処理において、所定の対象画像に対して各個体が表現する画像処理シーケンスを実行することにより生成される処理済み画像と、前記対象画像から生成されるべき目標画像との一致度が求められる。
【0009】
請求項3に記載の発明は、請求項2に記載の最適化方法であって、前記各個体が、複数の要素が並ぶ要素配列であり、前記複数の要素が、画像処理シーケンスに含まれる複数の画像処理における複数のパラメータの値を示し、前記特徴ベクトルにおける複数の特徴量が、前記複数のパラメータの値である。
【0010】
請求項4に記載の発明は、請求項2または3に記載の最適化方法であって、前記評価処理において、前記対象画像を含む複数の対象画像に対して前記各個体が表現する画像処理シーケンスを実行することにより生成される複数の処理済み画像と、前記複数の対象画像から生成されるべき複数の目標画像との一致度がそれぞれ求められ、前記d2)工程における前記分類器による分類結果が、前記次のb)工程において第1の個数の対象画像から前記評価値が求められるクラスと、前記第1の個数よりも少ない第2の個数の対象画像から前記評価値が求められるクラスと、前記評価値が求められないクラスとを含む。
【0011】
請求項5に記載の発明は、請求項1ないし4のいずれかに記載の最適化方法であって、前記d2)工程および前記各c)工程において、前記評価値が求められるクラスに前記分類器により分類される個体の個数が設定個体数になるまで、新たな個体の生成が繰り返される。
【0012】
請求項6に記載の発明は、請求項1ないし5のいずれかに記載の最適化方法であって、前記d)工程において、所定の条件が満たされる際に、前記d1)工程における分類器の構築が再度行われる。
【0013】
請求項7に記載の発明は、遺伝的アルゴリズムまたは遺伝的プログラミングを用いた最適化装置であって、最適化対象の複数通りの条件をそれぞれ表現する複数の個体を記憶する記憶部と、前記最適化対象に応じて定められた評価処理により、前記複数の個体のそれぞれにおける評価値を求める評価値算出部と、前記複数の個体のうち前記評価値が高い個体が優先的に含まれる選択、並びに、突然変異および交叉を含む遺伝的操作により、新たな複数の個体を生成する個体生成部と、前記評価値算出部および前記個体生成部における処理を、終了条件を満たすまで繰り返すことにより、最適解として推定される個体を取得する繰返制御部とを備え、前記繰返制御部が、前記個体生成部にて生成される個体を含む複数の教師個体のそれぞれから取得される特徴ベクトルと、前記複数の教師個体のそれぞれにおける前記評価値に基づくクラスとを用いて学習を行うことにより分類器を構築する分類器構築部と、前記個体生成部にて生成される新たな複数の個体を前記分類器にて分類することにより、前記評価値算出部において前記評価値が求められる個体を制限する分類制御部とを備える。
【0014】
請求項8に記載の発明は、請求項7に記載の最適化装置であって、前記複数の個体が、複数通りの画像処理シーケンスをそれぞれ表現し、前記評価処理において、所定の対象画像に対して各個体が表現する画像処理シーケンスを実行することにより生成される処理済み画像と、前記対象画像から生成されるべき目標画像との一致度が求められる。
【0015】
請求項9に記載の発明は、請求項8に記載の最適化装置であって、前記各個体が、複数の要素が並ぶ要素配列であり、前記複数の要素が、画像処理シーケンスに含まれる複数の画像処理における複数のパラメータの値を示し、前記特徴ベクトルにおける複数の特徴量が、前記複数のパラメータの値である。
【0016】
請求項10に記載の発明は、請求項8または9に記載の最適化装置であって、前記評価処理において、前記対象画像を含む複数の対象画像に対して前記各個体が表現する画像処理シーケンスを実行することにより生成される複数の処理済み画像と、前記複数の対象画像から生成されるべき複数の目標画像との一致度がそれぞれ求められ、前記分類器による分類結果が、前記評価値算出部において第1の個数の対象画像から前記評価値が求められるクラスと、前記第1の個数よりも少ない第2の個数の対象画像から前記評価値が求められるクラスと、前記評価値が求められないクラスとを含む。
【0017】
請求項11に記載の発明は、請求項7ないし10のいずれかに記載の最適化装置であって、前記分類器が構築された後、前記個体生成部が、前記評価値が求められるクラスに前記分類器により分類される個体の個数が設定個体数になるまで、新たな個体の生成を繰り返す。
【0018】
請求項12に記載の発明は、請求項7ないし11のいずれかに記載の最適化装置であって、所定の条件が満たされる際に、前記繰返制御部が、前記分類器構築部に分類器の構築を再度行わせる。
【0019】
請求項13に記載の発明は、遺伝的アルゴリズムまたは遺伝的プログラミングを用いる最適化処理をコンピュータに行わせるプログラムであって、前記プログラムの前記コンピュータによる実行は、前記コンピュータに、a)最適化対象の複数通りの条件をそれぞれ表現する複数の個体を記憶する工程と、b)前記最適化対象に応じて定められた評価処理により、前記複数の個体のそれぞれにおける評価値を求める工程と、c)前記複数の個体のうち前記評価値が高い個体が優先的に含まれる選択、並びに、突然変異および交叉を含む遺伝的操作により、新たな複数の個体を生成する工程と、d)前記b)およびc)工程を、終了条件を満たすまで繰り返すことにより、最適解として推定される個体を取得する工程とを実行させ、前記d)工程が、d1)繰り返されるc)工程にて生成される個体を含む複数の教師個体のそれぞれから取得される特徴ベクトルと、前記複数の教師個体のそれぞれにおける前記評価値に基づくクラスとを用いて学習を行うことにより分類器を構築する工程と、d2)前記d1)工程の後の各c)工程にて生成される新たな複数の個体を前記分類器にて分類することにより、前記各c)工程の次のb)工程において前記評価値が求められる個体を制限する工程とを備える。
【0020】
請求項14に記載の発明は、画像処理装置であって、対象物を撮像した撮像画像を記憶する画像記憶部と、画像処理シーケンスを取得する請求項7ないし12のいずれかに記載の最適化装置と、前記撮像画像に対して前記画像処理シーケンスを実行する画像処理部とを備える。
【発明の効果】
【0021】
本発明によれば、遺伝的アルゴリズムまたは遺伝的プログラミングを用いた最適化処理において、最適解に至るまでの演算時間を短縮することができる。
【発明を実施するための形態】
【0023】
図1は、本発明の一の実施の形態に係る検査装置1の構成を示すブロック図である。検査装置1は、様々な対象物の外観を検査する装置である。検査装置1における検査の対象物として、半導体基板やガラス基板、プリント配線基板等の基板が例示される。
【0024】
検査装置1は、撮像部11と、欠陥検出部12と、コンピュータ2とを備える。欠陥検出部12は、画像記憶部13と、画像処理部14とを備える。撮像部11は、対象物を撮像して当該対象物の外観を示す撮像画像を取得する。撮像画像は、欠陥検出部12に入力され、画像記憶部13にて記憶される。画像処理部14では、コンピュータ2により取得された欠陥領域抽出用の画像処理シーケンスが設定されており、撮像画像に対して当該画像処理シーケンスが実行される。これにより、対象物が欠陥を含む場合に、撮像画像中の欠陥領域を示す画像が取得される。すなわち、対象物の欠陥が検出される。画像処理部14による処理では、後述の参照画像が利用されてもよい。検査装置1では、画像処理シーケンスを取得するコンピュータ2と、画像処理シーケンスを実行する欠陥検出部12とにより、画像処理装置が実現される。欠陥検出部12は、コンピュータ2により実現されてもよい。
【0025】
図2はコンピュータ2の構成を示す図である。コンピュータ2は各種演算処理を行うCPU21、基本プログラムを記憶するROM22および各種情報を記憶するRAM23を含む一般的なコンピュータシステムの構成となっている。コンピュータ2は、情報記憶を行う固定ディスク24、画像等の各種情報の表示を行うディスプレイ25、操作者からの入力を受け付けるキーボード26aおよびマウス26b(以下、「入力部26」と総称する。)、光ディスク、磁気ディスク、光磁気ディスク等のコンピュータ読み取り可能な記録媒体91から情報の読み取りを行ったり記録媒体91に情報の書き込みを行う読取/書込装置27、並びに、外部と通信を行う通信部28をさらに含む。
【0026】
コンピュータ2では、事前に読取/書込装置27を介して記録媒体91からプログラム92が読み出されて固定ディスク24に記憶されている。CPU21は、プログラム92に従ってRAM23や固定ディスク24を利用しつつ演算処理を実行する。これにより、後述の画像処理取得装置の機能が実現される。
【0027】
図3は、コンピュータ2が実現する画像処理取得装置20の機能構成を示すブロック図である。画像処理取得装置20は、演算部31と、記憶部32とを備える。演算部31は、個体生成部311と、個体記憶部312と、評価値算出部313と、繰返制御部314とを備える。繰返制御部314は、分類制御部315と、分類器構築部316とを備える。演算部31の処理の詳細については後述する。なお、演算部31の機能は専用の電気回路により構築されてもよく、部分的に専用の電気回路が利用されてもよい。
【0028】
記憶部32は、複数の画像データセット40を記憶する。各画像データセット40は、対象画像データ41と、参照画像データ42と、目標画像データ43とを含む。対象画像データ41は対象画像を示し、参照画像データ42は参照画像を示し、目標画像データ43は目標画像を示す。
【0029】
対象画像は、対象物上の欠陥、および、その周囲を示す画像であり、例えば、撮像部11により取得される。参照画像は、欠陥が存在しない対象物を示す画像である。参照画像は、対象画像と同じ領域を示す。目標画像は、対象画像における欠陥領域のみを示す画像である。目標画像は、例えば、操作者が、対象画像における非欠陥領域を塗りつぶす作業を行うことにより、予め生成されて準備される。もちろん、目標画像は他の手法により生成されてよい。対象画像、参照画像および目標画像は、多階調画像または二値画像のいずれであってもよい(後述の処理済み画像において同様)。複数の画像データセット40は、欠陥の種類や撮像条件等が互いに異なる対象画像を含む。
【0030】
画像処理取得装置20では、選択された複数の画像処理を決められた順序にて画像に対して実行する処理を画像処理シーケンスとして、各対象画像を同じ画像データセット40に含まれる目標画像に近似させる画像処理シーケンスが取得される。すなわち、欠陥領域を抽出対象領域として、欠陥領域抽出用の画像処理シーケンスが取得される。また、当該画像処理シーケンスの取得では、遺伝的アルゴリズムを用いた後述の最適化処理が利用される。画像処理取得装置20は、欠陥領域抽出用の画像処理シーケンスを最適化対象として最適化処理を行う最適化装置である。
【0031】
図4は、画像処理シーケンス5を説明するための図である。画像処理取得装置20では、例えば、
図4の下段に示す要素配列6にて画像処理シーケンス5が表現されており、
図4の上段は、当該要素配列6が示す画像処理シーケンス5の構造を抽象的に示している。
【0032】
画像処理シーケンス5は、順次実行される複数の画像処理を含み、
図4の上段では、当該複数の画像処理において最初に実行される第1画像処理51aと、2番目に実行される第2画像処理51bとを示している。画像処理シーケンス5では、他の画像処理が含まれてよい。画像処理シーケンス5には、対象画像データ41が入力され、対象画像に対して第1画像処理51aが施される。続いて、第1画像処理51aが施された画像に対して第2画像処理51bが施される。このようにして、画像処理シーケンス5に含まれる複数の画像処理が順次実行され、最後の画像処理の処理結果が処理済み画像データ44として出力される。処理済み画像データ44は処理済み画像を示す。
【0033】
画像処理シーケンス5を表現する要素配列6は、遺伝的アルゴリズムにおける個体である。
図4の下段に示すように、要素配列6では、それぞれが値を収容する複数の要素600が一列に並ぶ。複数の要素600には、例えば昇順の要素番号が付されている。要素配列6は、第1画像処理部61aと、第2画像処理部61bとを含む。第1および第2画像処理部61a,61bは、画像処理シーケンス5における第1および第2画像処理51a,51bにそれぞれ対応する。各画像処理部61a,61bは、少なくとも1つの要素600の集合である。
図4の下段では、各画像処理部61a,61bに含まれる要素600を太い破線の矩形にて囲む。第1画像処理部61aの複数の要素600は、第1画像処理51aにおける複数のパラメータの値をそれぞれ示す。第2画像処理部61bの複数の要素600は、第2画像処理51bにおける複数のパラメータの値をそれぞれ示す。各画像処理51a,51bにおけるパラメータは、例えば、当該画像処理に用いられる各種フィルタ(ノイズ除去フィルタ等)のサイズや処理の強弱の度合い、あるいは、二値化処理における閾値等である。
【0034】
対象画像に対する画像処理シーケンスの実行(処理済み画像の取得)では、対象画像のみならず、他の画像が利用されてよい。例えば、一の画像処理が、対象画像と参照画像との差分画像を取得して二値化する処理である場合には、対象画像および参照画像を用いて当該処理が行われる。また、一の画像処理が、一のフィルタ処理を施した対象画像と、他の一のフィルタ処理を施した参照画像との差分画像を取得して二値化する処理である場合には、当該画像処理は、対象画像および参照画像に対する並列した処理を含む。さらに、一の画像処理と他の画像処理とが並列して実行され、両画像処理にて取得される2つの画像を用いて、さらに他の画像処理が行われてもよい。
【0035】
図5は、画像処理取得装置20が、欠陥領域抽出用の画像処理シーケンスを取得する処理の流れを示す図である。画像処理シーケンスの取得では、まず、複数の画像データセット40が準備され、画像処理取得装置20に入力される。複数の画像データセット40は、記憶部32にて記憶される。また、入力部26を介した操作者の入力に基づいて、複数通りの画像処理シーケンスをそれぞれ表現する複数の要素配列6が生成され、個体記憶部312に記憶される(ステップS11)。複数の要素配列6は互いに相違しており、複数通りの条件の画像処理シーケンスを示す。既述のように、要素配列6は、遺伝的アルゴリズムにおける個体であり、以下、「個体6」と呼ぶ。
【0036】
複数の個体6では、要素600の個数は同じである。複数の個体6において、同じ要素番号の要素600は、画像処理シーケンス5の同じ画像処理のパラメータに対応し、当該パラメータの値を示す要素600の値は原則として相違する。当該複数の個体6は、遺伝的アルゴリズムにおける初期世代に属する。以下、ステップS11にて準備される個体6の個数を「設定個体数」という。本処理例では、設定個体数は2以上である。ステップS11では、画像処理シーケンス5の基本構造のみが操作者により決定され、個体生成部311が各要素600の値をランダムに決定することにより、初期世代の複数の個体6が準備されてもよい。なお、各画像処理のパラメータが取り得る値の範囲は予め設定される。
【0037】
続いて、評価値算出部313では、予め定められた評価処理により、複数の個体6のそれぞれにおける評価値が求められる(ステップS12)。評価処理では、設定個体数の個体6が示す設定個体数の画像処理シーケンスのそれぞれを対象画像に対して実行することにより、当該対象画像に対して設定個体数の処理済み画像が取得される。そして、各処理済み画像と、当該対象画像から生成されるべき目標画像との一致度を示す値が求められる。一致度を示す値として、例えば、2値の処理済み画像と2値の目標画像との差分画像において、画素の値が0となる領域の面積率等が求められる。処理済み画像と目標画像との一致度を示す値は、様々な手法にて求められてよい。
【0038】
既述のように、画像処理取得装置20では、複数の画像データセット40が準備されており、各個体6が示す画像処理シーケンスにより複数の処理済み画像が取得される。評価値算出部313では、各個体6を用いて取得される複数の処理済み画像における一致度を示す値の代表値が、当該個体6の評価値(適応度)として求められる。各個体6および評価値は、繰返制御部314に出力され、分類器構築部316にて記憶される。ここで、代表値は、複数の値の分布の中央近傍を示す値であり、典型的には平均値や中央値である。
【0039】
複数の個体6のそれぞれの評価値が求められると、繰返制御部314では、終了条件が満たされたか否かが確認される(ステップS13)。例えば、現世代(現時点では、初期世代)の複数の個体6における評価値のうち最大の評価値(以下、「世代評価値」という。)が、予め定められた設定値以上である場合や、世代評価値が所定数の世代の間変化しない場合、あるいは、現世代が、予め指定された世代番号である場合等に、終了条件を満たしたと判定される。現時点では、終了条件が満たされていないとものとする。
【0040】
また、繰返制御部314では、分類器の構築条件が満たされたか否かが確認される(ステップS14)。本処理例では、分類器を構築すべき世代(世代番号)が予め定められており、現世代が当該世代である場合に、分類器の構築条件を満たしたと判定される。現時点では、分類器の構築条件が満たされていないとものとする。
【0041】
個体生成部311では、現世代と同数の(すなわち、設定個体数の)個体6が、新たな個体6として、現世代の複数の個体6から選択される(ステップS15)。新たな設定個体数の個体6は、現世代の同じ個体6を重複して含んでよい。新たな個体6の選択は、現世代の個体6の評価値に基づいて行われる。例えば、現世代の各個体6の評価値を、現世代の全ての個体6の評価値の和で割った値が、当該個体6の選択確率として求められ、選択確率が高い個体6ほど高い確率にて新たな個体6に含められる(いわゆる、ルーレット選択)。このように、ステップS15における個体6の選択では、現世代の複数の個体6のうち評価値が高い個体6が、新たな個体6に優先的に含められる。
【0042】
続いて、新たな設定個体数の個体6に対して、遺伝的操作が行われる。具体的には、まず、新たな各個体6の要素600の突然変異が行われる(ステップS16)。例えば、各要素600に対して、予め設定された突然変異確率に従って、実際に突然変異を行うか否かが決定される。既述のように、個体6の各要素600では、当該要素600が取り得る数値範囲が予め設定されており、突然変異を行うことが決定された要素600の値が、その取り得る数値範囲内のいずれか1つの値にランダムに変更される。
【0043】
各個体6の突然変異が完了すると、2つの個体6から新たな2つの個体6を生成する交叉が行われる(ステップS17)。本処理例では、突然変異後の設定個体数の個体6において2つの個体6の複数の組合せ(ペア)が定められている。そして、2つの個体6の各組合せにおいて、交叉範囲がランダムに決定され、当該交叉範囲内の要素600を両個体6間で入れ換える交叉(二点交叉)が行われる。交叉範囲の決定では、交叉範囲がない、すなわち、交叉を行わない場合を含んでよい。交叉では、一点交叉や、一様交叉等が行われてもよい。
【0044】
以上のようにして、評価値に基づく選択、並びに、突然変異および交叉を含む遺伝的操作により、新たな世代(現時点では、2番目の世代)に含まれる設定個体数の個体6が生成され、個体記憶部312に記憶される。新たな世代の複数の個体6の生成では、直前のステップS12の処理にて取得された評価値のうち最大の評価値の個体6が、そのまま新たな個体6に追加されるエリート保存等が行われてもよい。また、ステップS17における交叉が、ステップS16における突然変異よりも前に行われてもよい。
【0045】
新たな世代の複数の個体6が生成されると、ステップS12へと戻って、当該新たな世代の各個体6が示す画像処理シーケンスを複数の対象画像に対して実行することにより、複数の処理済み画像が取得される。そして、複数の処理済み画像と対応する複数の目標画像との一致度を示す値に基づいて、当該個体6の評価値が求められる。なお、分類器が構築されていない状態では、ステップS18はスキップされる。
【0046】
繰返制御部314では、終了条件が満たされたか否か、および、分類器の構築条件が満たされたか否かが確認される(ステップS13,S14)。終了条件および分類器の構築条件が満たされていない場合、上記と同様に、個体6の選択、突然変異、および、交叉が行われ、次の世代の新たな複数の個体6が生成される(ステップS15〜S17)。そして、当該複数の個体6に対する評価処理により、当該複数の個体6の評価値が算出される(ステップS12)。このようにして、ステップS15〜S17,S12の処理が、終了条件または分類器の構築条件が満たされるまで繰り返される(ステップS13,S14)。
【0047】
現世代が分類器を構築すべき世代となり、ステップS14にて分類器の構築条件が満たされたことが確認されると、分類器構築部316により分類器317が構築される(ステップS19)。分類器317の構築では、例えば、現世代までの全ての世代における全ての個体6のそれぞれが、教師個体として扱われる。すなわち、複数の教師個体は、繰り返されるステップS15〜S17により生成される複数の個体6を含む。分類器を構築すべき世代は、分類器317の構築に適した個数の個体6が揃う世代と捉えることができる。分類器を構築すべき世代は、各世代の世代評価値における、直前の世代の世代評価値からの増加率が所定の値以下となる世代等であってもよい。
【0048】
既述のように、各個体6の複数の要素600は、当該個体6が表現する画像処理シーケンスに含まれる複数の画像処理における複数のパラメータの値を示す。当該複数のパラメータの値をそれぞれ複数の特徴量として捉えることにより、各教師個体に対して複数の特徴量により規定される特徴ベクトルが取得される。また、各教師個体の評価値が記憶されており、例えば、ある値を判定閾値として、判定閾値以上の評価値を有する教師個体に「採用」のクラス(のラベル)が付与され、判定閾値未満の評価値を有する教師個体に「不採用」のクラスが付与される。すなわち、各教師個体に対して、「採用」のクラスまたは「不採用」のクラスが教示される。判定閾値は、例えば、評価値の降順で並ぶ全教師個体を所定の割合にて「採用」のクラスと「不採用」のクラスに分ける値や、全教師個体における最大の評価値の所定割合に相当する値等として決定される。もちろん、操作者により判定閾値が入力されてもよい。複数の教師個体には、操作者により予め準備された個体が含まれてもよい。
【0049】
分類器構築部316では、各教師個体の特徴ベクトルが、分類器317に入力される。そして、分類器317により分類されるクラスが、当該教師個体のクラスと同じになるように学習が行われる。このように、複数の教師個体の特徴ベクトルと、複数の教師個体の評価値に基づくクラスとが教師データとして使用され、分類器317が構築される。分類器の構築とは、分類器が含むパラメータに値を付与したり、構造を決定すること等により分類器を生成することを意味する。分類器317を構築する方法(学習アルゴリズム)または機構としては、例えば、線形判別分析、決定木法、ニューラルネットワーク、サポートベクターマシン(SVM)、ロジスティック回帰等が採用可能である。
【0050】
分類器317の構築後では、ステップS15〜S17において新たな世代の複数の個体6が生成されると、分類制御部315が、新たな世代の各個体6の特徴ベクトルを分類器317に入力することにより、当該個体6が「採用」のクラスまたは「不採用」のクラスのいずれかに分類される(ステップS18)。そして、次のステップS12では、「採用」のクラスに分類された個体6のみを用いて、複数の対象画像から複数の処理済み画像が取得され、当該個体6の評価値が算出される。「採用」のクラスに分類された個体6の評価値は、一定の値以上となることが予測される。「不採用」のクラスに分類された個体6については、処理済み画像は取得されず、評価値は算出されない。
【0051】
「採用」のクラスに分類された個体6に対する評価値の算出では、一部の対象画像のみが用いられてもよい。例えば、全ての対象画像を複数の対象画像グループに分割し、1つの対象画像グループに含まれる対象画像から評価値が算出される。評価値の算出に用いられる対象画像グループは、順次変更される、または、ランダムに選択される。各世代において、評価値の算出に用いられる一部の対象画像が全ての対象画像からランダムに抽出されてもよい。
【0052】
以上のように、ステップS19が行われた後、ステップS15〜S17が行われる毎に、ステップS18にて新たな世代の複数の個体6を分類器317にて分類することにより、次のステップS12において評価値が求められる個体6が制限(スクリーニング)される。ステップS15〜S18,S12の処理は、終了条件が満たされるまで繰り返される(ステップS13)。このとき、現世代の個体6の評価値に基づいて新たな個体6を選択するステップS15では、評価値が求められない「不採用」のクラスに分類された個体6に対して、例えば、判定閾値よりも十分に低い一定の評価値(評価値の最小値である0を含む。)が付与される。したがって、「不採用」のクラスに分類された個体6は、実質的に淘汰される。
【0053】
分類器317は、更新されてもよい。例えば、分類器の構築条件が、一定世代数毎の分類器の更新を含む場合、分類器317が構築された世代から当該世代数だけ世代が変わる毎に(分類器の構築条件が満たされる毎に)、繰返制御部314の制御により、ステップS19における分類器構築部316による分類器317の構築が再度行われる。分類器317の更新は、最初の分類器317が構築された後、各世代にて行われてもよい。
【0054】
2回目以降の分類器317の構築(更新)に用いられる複数の教師個体は、例えば、現世代までの全ての世代における全ての個体6のうち評価値が実際に算出されたものであり、「不採用」のクラスに分類された個体6は含まれない。分類器317の構築では、直近の所定数の世代における個体6のみが教師個体として用いられてもよく、この場合、教師個体の個数が比較的少なくなり、分類器317の構築に要する時間が短縮される。「不採用」のクラスに分類された個体6に対して「不採用」のクラスを付与しつつ、当該個体6(評価値が算出されない個体6)が教師個体に含められてもよい。分類器の構築条件として、世代評価値が、直前の分類器317の構築の際における世代評価値から、所定の値だけ上昇した場合等が含まれてもよい。
【0055】
このように、必要に応じて分類器317を更新しつつ(ステップS14,S19)、新たな世代の複数の個体6の生成(ステップS15〜S17)、当該複数の個体6の分類(ステップS18)、および、評価値の算出(ステップS12)が、終了条件が満たされるまで繰り返される(ステップS13)。ステップS13にて終了条件が満たされたことが確認されると、例えば直前のステップS12にて評価値が求められた現世代の複数の個体6のうち、評価値が最大である個体6が、欠陥領域抽出用の画像処理シーケンスを示す個体6として決定される。すなわち、遺伝的アルゴリズムを用いた本最適化処理において最適解として推定される個体6が取得される(ステップS20)。欠陥領域抽出用の画像処理シーケンスは、欠陥検出部12の画像処理部14に入力され、検査装置1における対象物の外観の検査に利用される。
【0056】
次に、
図5の処理において分類器の構築(ステップS14,S19)、および、個体の分類(ステップS18)を省略した比較例の処理について説明する。比較例の処理では、新たな世代の複数の個体の生成(ステップS15〜S17)、および、当該複数の個体の全てに対する評価値の算出(ステップS12)が、終了条件が満たされるまで繰り返される(ステップS13)。
【0057】
図6は、比較例の処理における一致度の変化を示す図である。比較例の処理では、10個の対象画像(画像データセット40)を用いており、
図6では、代表的な3個の対象画像に対して求められる一致度(20個の個体による一致度のうち最大の一致度である。
図6を参照する説明において、以下同様である。)を符号L1,L2,L3を付す線にて示し、10個の対象画像における一致度の平均を符号L0を付す線にて示す。
図6から判るように、初期世代では一致度の向上が急激であるが、世代が上がるに従って一致度の向上は鈍くなる。実際には、数十世代に亘って一致度がほとんど変化しない場合もある。比較例の処理では、このような期間においても、全ての個体の評価値が算出され、対象画像に対して画像処理シーケンスを実行する回数が多くなる。
【0058】
ここで、画像処理シーケンスに含まれる典型的な画像処理は、フィルタを用いた処理であり、当該処理では、対象画像の各画素に対して当該フィルタのサイズ分の積和演算が行われる。仮に、当該フィルタのサイズが3行3列であり、対象画像のサイズが1000行1000列である場合には、(3×3)個の積和演算が(1000×1000)回繰り返される。実際には、画像処理シーケンスには複数の画像処理が含まれるため、一の対象画像に対する一回の画像処理シーケンスの実行に、ある程度の演算時間を要してしまう。仮に、当該演算時間がおよそ1秒であり、一の対象画像に関して進化の停滞から抜け出すまでに30世代を要した場合には、600秒(20[個体]×30[世代]×1[秒])の演算時間が費やされることとなる。複数の対象画像が準備される場合、演算時間はさらに増大する。
【0059】
一方、
図3の画像処理取得装置20では、個体生成部311にて生成される個体6を含む複数の教師個体が準備されると、当該複数の教師個体のそれぞれから取得される特徴ベクトルと、当該複数の教師個体のそれぞれにおける評価値に基づくクラスとを用いて学習を行うことにより分類器317が構築される。そして、分類器317の構築後に、個体生成部311にて生成される新たな複数の個体6を当該分類器317にて分類することにより、評価値算出部313において評価値が求められる個体6が制限(限定)される。
【0060】
例えば、分類器317において、クラスの分類に利用される値が、特徴ベクトルが示す数百個の特徴量と、これらの特徴量にそれぞれ対応する重み係数との積和演算にて求められる場合、一の個体6の分類では、数百個の積和演算が1回だけ行われる。したがって、分類器317による一の個体6の分類に要する演算時間は、当該個体6に対する評価値の算出(対象画像に対する画像処理シーケンスの実行)に比べて極めて短くなる。また、個体6の分類に要する演算時間は、評価値の算出に用いる対象画像のサイズや、対象画像の個数、あるいは、画像処理シーケンスの複雑さ等には依存しない。
【0061】
よって、評価値が求められる個体6を、分類器317を用いた分類により制限する画像処理取得装置20では、画像処理シーケンスの実行回数を少なくして、最適解に至るまでの演算時間を短縮することができる。その結果、好ましい(高精度な)欠陥領域抽出用の画像処理シーケンスを短時間にて効率よく取得することができる。当該画像処理シーケンスを用いる欠陥検出部12では、撮像画像から欠陥領域を精度よく抽出することが可能となる。
【0062】
また、各個体6が示す画像処理シーケンスにより複数の対象画像から複数の処理済み画像が取得され、当該複数の処理済み画像に基づいて当該個体6の評価値が求められる。これにより、様々な撮像画像に対して欠陥領域を精度よく抽出することが可能な画像処理シーケンスを安定して取得することが可能となる。なお、欠陥領域抽出用の画像処理シーケンスに求められる精度によっては、1つの対象画像のみが用いられてもよい。
【0063】
画像処理取得装置20では、個体生成部311により生成された設定個体数の個体6において、分類器317により「不採用」のクラスに分類された個体6が存在する場合に、「不採用」の個体6に替わる新たな個体6がさらに生成されてもよい。すなわち、個体生成部311による新たな個体6の生成(ステップS15〜S17)、および、分類器317による個体6の分類(ステップS18)が、評価値が求められる「採用」のクラスに分類される個体6の個数が設定個体数になるまで繰り返される。そして、「採用」のクラスに分類される設定個体数の個体6の評価値が、評価値算出部313により算出される(ステップS12)。この場合も、「不採用」のクラスに分類された個体6に対する評価処理が実質的に省略されるため、最適解に至るまでの演算時間を短縮することができる。また、最適化処理における進化の停滞も抑制される。
【0064】
次に、分類器317が個体6を3個のクラスのいずれかに分類する他の処理例について説明する。当該他の処理例では、ステップS19における分類器の構築において、第1判定閾値以上の評価値を有する教師個体に「良」のクラスが付与され、第1判定閾値未満、かつ、第1判定閾値よりも低い第2判定閾値以上の評価値を有する教師個体に「可」のクラスが付与される。また、第2判定閾値未満の評価値を有する教師個体に「不採用」のクラスが付与される。そして、分類器構築部316では、複数の教師個体の特徴ベクトルと、当該複数の教師個体の評価値に基づくクラスとを用いて学習を行うことにより、分類器317が構築される。
【0065】
ステップS18では、新たな世代の各個体6が、分類器317により「良」のクラス、「可」のクラス、または、「不採用」のクラスのいずれかに分類される。次のステップS12では、「不採用」のクラスに分類された個体6については、処理済み画像は取得されず、評価値は算出されない。一方、「可」のクラスに分類された個体6については、記憶部32に記憶される複数の対象画像のうち、予め定められた第1の個数の対象画像(例えば、全ての対象画像)を用いて第1の個数の処理済み画像が取得される。そして、これらの処理済み画像における一致度を示す値の代表値が、当該個体6の評価値として算出される。また、「良」のクラスに分類された個体6については、複数の対象画像のうち、第1の個数よりも少ない第2の個数の対象画像(例えば、半分の対象画像)を用いて第2の個数の処理済み画像が取得される。そして、これらの処理済み画像における一致度を示す値の代表値が、当該個体6の評価値として算出される。評価値に基づく新たな世代の個体6の生成(ステップS15〜S17)は、上記と同様である。
【0066】
以上のように、上記処理例では、ステップS18における分類器317による分類結果が、次のステップS12において第1の個数の対象画像から評価値が求められる「可」のクラスと、第1の個数よりも少ない第2の個数の対象画像から評価値が求められる「良」のクラスと、評価値が求められない「不採用」のクラスとを含む。このように、高い評価値が見込まれる「良」のクラスの個体6において、評価値の算出に利用する対象画像を少なくすることにより、演算時間をさらに短縮することができる。もちろん、分類器317が、個体6を4以上のクラスのいずれかに分類するものであってもよい。
【0067】
また、分類器構築部316では、外れ値検出を行う分類器317が構築されてもよい。このような分類器317の構築では、現世代までの全ての世代における全ての個体6のうち、例えば最大の評価値(当該全ての個体6の最大の評価値)の70%以下の評価値を有する個体6のみが教師個体として扱われる。すなわち、教師個体は、評価値が比較的低い個体6である。そして、複数の教師個体から取得される複数の特徴ベクトルを用いて学習を行うことにより、比較的低い評価値の集合に対する外れ値を検出する分類器317が構築される。
【0068】
高次元データである特徴ベクトルを用いる外れ値検出に利用可能なアルゴリズムとしては、1クラスサポートベクターマシンが例示される。また、Hans-Peter Kriegelらによる"Angle-Based Outlier Detection in High-dimensional Data"に記載の手法、Charu C. Aggarwalらによる"Outlier Detection for High Dimensional Data"に記載の手法、Hans-Peter Kriegelらによる"Outlier Detection in Axis-Parallel Subspaces of High Dimensional Data"に記載の手法、Charles Suttonらによる"Feature Bagging: Preventing Weight Undertraining in Structured Discriminative Learning"に記載の手法、Fabian Kellerらによる"HiCS: High Contrast Subspaces for Density-Based Outlier Ranking"に記載の手法、並びに、Hans-Peter Kriegelらによる"Outlier Detection in Arbitrarily Oriented Subspaces"に記載の手法等も利用可能である(上記非特許文献1ないし6参照)。
【0069】
分類制御部315では、個体生成部311により生成される各個体6の特徴ベクトルが分類器317に入力される。そして、分類器317により特徴ベクトルが外れ値として検出される個体6のみに対して、評価値算出部313による評価値の算出が行われる。既述のように、全ての教師個体の評価値は比較的低いため、分類器317により外れ値として検出される個体6では、高い評価値が得られることが期待される。本処理例では、全ての教師個体には、評価値に基づいて「不採用」のクラスが付与されており、分類器317により外れ値として検出される個体6は、実質的に「採用」のクラスに分類されていると捉えることができる。
【0070】
外れ値検出を行う分類器317を用いる場合も、評価処理を行う個体6の個数を少なくすることができ、最適解に至るまでの演算時間を短縮することができる。また、外れ値検出を行う分類器317も、上記処理例と同様に更新されてよい。この場合、典型的には、分類器317を更新するに従って、更新に利用される教師個体の最大の評価値が大きくなり、より高い評価値となる個体6を外れ値として検出する分類器317が構築される。すなわち、分類器317を更新するに従って、分類器317の性能が向上する。
【0071】
画像処理取得装置20における最適化処理では、遺伝的プログラミングが利用されてもよい。遺伝的プログラミングでは、画像処理シーケンスを表現する個体は、木構造となる。例えば、
図7に示す個体6aは、1つの画像の入力を示す終端ノードI1〜I4と、1つまたは複数の画像が入力されるとともに1つの画像を出力する非終端ノードF1〜F7,F10,F100と、を含む。終端ノードI1〜I4には、一の画像データセット40に含まれる対象画像または参照画像(のデータ)が入力される。
【0072】
非終端ノードF1〜F7,F10,F100は、典型的には、画像処理フィルタを示す。1入力の非終端ノードF1〜F7では、入力される1つの画像に対して所定の画像処理(平均値フィルタ処理や、最大値フィルタ処理等)が実行され、処理後の1つの画像が次のノードに出力される。2入力の非終端ノードF10では、2つの非終端ノードF3,F5から入力される2つの画像に対して所定の画像処理(論理和演算や、論理積演算等)が実行され、処理後の1つの画像が次のノードに出力される。3入力の非終端ノード(ルートのノード)F100では、非終端ノードF6,F7および終端ノードI4から入力される3つの画像に対して所定の画像処理が実行され、処理後の1つの画像が処理済み画像として出力される。画像処理取得装置20では、多数の種類の画像処理が準備されており、様々な木構造の各ノードとして任意の画像処理が割り当てられることにより、様々な画像処理シーケンスが表現される。
【0073】
図5の最適化処理において、ステップS16の突然変異では、各個体6aの木構造においてノードや部分木の変更または削除がランダムに行われる。ステップS17の交叉では、ペアとなる2つの個体6aのそれぞれにおいて、1つのノードを交叉位置としてランダムに選択し、当該交叉位置よりも末端の部分である部分木を当該2つの木構造にて入れ替えることにより、新たな2つの個体6aが生成される。なお、ステップS15の個体6aの選択およびステップS12の評価値の算出は、遺伝的アルゴリズムの場合と同様である。
【0074】
ステップS19の分類器の構築では、各教師個体(木構造)において、3入力のノードの個数、2入力のノードの個数、1入力のノードの個数、各種類の画像処理を示すノードの個数等が特徴量として扱われ、教師個体から特徴ベクトルが取得される。そして、各教師個体の特徴ベクトルと、当該教師個体の評価値に基づくクラスとを用いて学習を行うことにより、分類器317が構築される。ステップS18では、新たな世代の各個体6aから取得される特徴ベクトルを分類器317に入力することにより、当該個体6aがいずれかのクラスに分類される。
【0075】
以上のように、評価値が求められる個体6aを、分類器317を用いた分類により制限する手法は、遺伝的プログラミングを用いた最適化処理においても採用することが可能である。この場合も、評価処理の回数を少なくすることができ、最適解に至るまでの演算時間を短縮することができる。
【0076】
上記検査装置1および画像処理取得装置20では、様々な変形が可能である。
【0077】
上記実施の形態では、複数の対象画像に対して共通の分類器317が構築されるが、画像処理取得装置20の設計によっては、複数の対象画像に対して互いに異なる分類器が構築されてもよい。具体的には、各教師個体が表現する画像処理シーケンスを各対象画像に施すことにより取得される処理済み画像と、対応する目標画像との一致度を用いて、当該教師個体の当該対象画像に関するクラスが決定される。分類器構築部316では、各対象画像に対する分類器が、複数の教師個体の特徴ベクトルと、当該複数の教師個体の当該対象画像に関するクラスとを用いた学習により構築される。各個体を分類する際には、例えば、複数の分類器による分類結果の多数決により、当該個体が「採用」のクラスまたは「不採用」のクラスに分類される。
【0078】
検査装置1では、太陽電池パネルのEL(エレクトロ・ルミネッセンス)発光やPL(フォト・ルミネッセンス)発光を撮像して得られる画像や、レーザーテラヘルツエミッション顕微鏡(LTEM)を用いて得られる太陽電池パネルの画像等を用いて、太陽電池パネルの欠陥が検出されてもよい。また、樹脂や金属等により形成される各種部品の画像を用いて、当該部品の欠陥が検出されてもよい。欠陥の検出に用いられる画像は、電子線やX線等により撮像される画像であってもよい。
【0079】
画像処理取得装置20では、欠陥領域抽出用の画像処理シーケンス以外の画像処理シーケンスが取得されてよい。例えば、血液や培養液等の所定の液中の細胞を撮像した細胞画像を対象画像とし、当該細胞の領域を抽出対象領域として、上記最適化処理により、細胞領域抽出用の画像処理シーケンスが取得されてもよい。また、領域の抽出以外の用途に用いられる画像処理シーケンスが取得されてもよい。
【0080】
遺伝的アルゴリズムまたは遺伝的プログラミングを用いた上記最適化処理は、画像処理シーケンス以外に、各種製品の設計、プロセス条件、文章や音声の解析アルゴリズム等、様々な最適化対象における条件の最適化に利用することが可能である。例えば、レンズの設計を最適化対象とする場合には、個体生成部311により、レンズの曲率半径、厚さ、屈折率等の設計パラメータ群の複数通りの条件をそれぞれ表現する複数の個体が生成され、個体記憶部312にて記憶される。また、評価値算出部313では、各個体が表現するレンズにおける収差の算出等、最適化対象に応じて定められた評価処理により各個体の評価値が求められる。繰返制御部314では、分類器317を構築(または再構築)しつつ、個体生成部311による新たな世代の個体の生成、分類器317による個体の分類、および、評価値算出部313による評価値の算出が、終了条件が満たされるまで繰り返される。以上のように、個体生成部311、個体記憶部312、評価値算出部313および繰返制御部314を主たる構成として実現される最適化装置は、様々な最適化対象における条件の最適化に利用することが可能である。
【0081】
上記実施の形態および各変形例における構成は、相互に矛盾しない限り適宜組み合わされてよい。