JP2020101900A - 画像検査装置、画像検査のための学習方法および画像検査プログラム - Google Patents

画像検査装置、画像検査のための学習方法および画像検査プログラム Download PDF

Info

Publication number
JP2020101900A
JP2020101900A JP2018238353A JP2018238353A JP2020101900A JP 2020101900 A JP2020101900 A JP 2020101900A JP 2018238353 A JP2018238353 A JP 2018238353A JP 2018238353 A JP2018238353 A JP 2018238353A JP 2020101900 A JP2020101900 A JP 2020101900A
Authority
JP
Japan
Prior art keywords
image
defective
learning
region
image processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018238353A
Other languages
English (en)
Other versions
JP7206892B2 (ja
Inventor
毅 長門
Takeshi Nagato
毅 長門
岡本 浩明
Hiroaki Okamoto
浩明 岡本
哲男 肥塚
Tetsuo Hizuka
哲男 肥塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018238353A priority Critical patent/JP7206892B2/ja
Priority to US16/676,503 priority patent/US11222267B2/en
Publication of JP2020101900A publication Critical patent/JP2020101900A/ja
Application granted granted Critical
Publication of JP7206892B2 publication Critical patent/JP7206892B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2111Selection of the most significant subset of features by using evolutionary computational techniques, e.g. genetic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/771Feature selection, e.g. selecting representative features from a multi-dimensional feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/776Validation; Performance evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Abstract

【課題】画像検査用の画像処理プログラムの学習負荷を低減することを課題とする。【解決手段】画像検査装置は、欠陥領域を含む学習用画像のうち、欠陥領域以外の良品領域を抽出した良品領域データを生成し、欠陥領域の検出対象である入力画像から欠陥領域を検出する画像検査用の画像処理プログラムに学習用画像を入力して出力画像を取得する。画像検査装置は、出力画像の所定領域ごとに特徴量を抽出し、良品領域データにしたがって、所定領域ごとの特徴量を良品領域に該当する良品特徴量と欠陥領域に該当する欠陥特徴量とに分類する。画像検査装置は、良品特徴量を用いて、画像処理プログラムから出力される出力画像の領域を識別する識別器を学習する。【選択図】図1

Description

本発明は、画像検査装置、画像検査のための学習方法および画像検査プログラムに関する。
工業製品の外観検査などでは、撮像装置を用いて工業製品の外観を撮像し、欠陥の有無を判定している。ここで、FA(ファクトリーオートメーション)分野においては、現場の撮像環境に応じたノイズや、影、明るさの変動などが画像に影響を与えることが多く、欠陥部を抽出するために、画像処理アルゴリズムを適用した画像処理プログラムが利用されている。そして、画像処理プログラムには、カメラなどで撮像した画像に対して平滑化処理、エッジ抽出処理、二値化処理などを実行する各画像処理の組み合わせが用いられる。
このような画像処理を遺伝的プログラミングに基づいた進化的計算によって生成することが知られている。例えば、原画像と目的の認識結果とを入力として用いた遺伝的プログラミングによる学習によって、画像処理の処理順序などを最適化して、撮像画像から欠陥等を正確に検出する画像処理プログラムを生成する。
なお、遺伝的プログラミングとは、生物の進化の過程をモデルとしたものであり、木構造状の画像処理に対して交叉処理と突然変異処理を行い、新たな画像処理を複数生成する手法である。さらに、適応度の高い新しい画像処理と、初期の画像処理とを交換し、上記工程を繰り返すことによって画像処理を世代交代させ、最適な画像処理を探索する。
特開2008−204102号公報 特開2008−299687号公報
しかしながら、上記技術では、画像処理プログラムの再構築の度に、画像処理プログラムの評価に用いる正解画像を生成することになるので、教示作業が頻繁に発生し、学習負荷が高い。
例えば、画像処理プログラムを工業製品の外観を検査する外観検査装置などに適用した場合、装置の開発段階、装置の製造段階、部品の仕様変更段階など、各段階で検査環境が変化するので、その都度、画像処理プログラムの再構築が行われる。また、画像処理プログラムの評価は、入力画像から得られた出力画像と、予め用意した教示情報である正解画像との差によって評価される。評価は、画素単位で行われるので、欠陥領域と正常領域の境界付近の教示誤差が評価の精度に大きく影響する。
このため、予め用意する正解画像の質が高くない場合、遺伝的プログラミングによる学習精度が低下し、画像処理プログラムの品質が低下する。ところが、欠陥領域と正常領域の境界を正確に判断するには、専門的な知識があったとしても難しく、検査環境が変化した都度、教示情報である正解画像を生成するのは、非常に作業負荷が大きい。
一つの側面では、画像検査用の画像処理プログラムの学習負荷を低減することができる画像検査装置、画像検査のための学習方法および画像検査プログラムを提供することを目的とする。
第1の案では、画像検査装置は、欠陥領域を含む学習用画像のうち、前記欠陥領域以外の良品領域を抽出した良品領域データを生成する生成部を有する。画像検査装置は、欠陥領域の検出対象である入力画像から欠陥領域を検出する画像検査用の画像処理プログラムに前記学習用画像を入力して出力画像を取得する取得部を有する。画像検査装置は、前記出力画像の所定領域ごとに特徴量を抽出する抽出部を有する。画像検査装置は、前記良品領域データにしたがって、前記所定領域ごとの特徴量を前記良品領域に該当する良品特徴量と前記欠陥領域に該当する欠陥特徴量とに分類する分類部を有する。画像検査装置は、前記良品特徴量を用いて、前記画像処理プログラムから出力される出力画像の領域を識別する識別器を学習する学習部を有する。
一実施形態によれば、画像検査用の画像処理プログラムの学習負荷を低減することができる。
図1は、実施例1にかかる画像検査装置を説明する図である。 図2は、遺伝的プログラミングを用いた最適化を説明する図である。 図3は、画像処理プログラムを説明する図である。 図4は、実施例1にかかる画像検査装置の機能構成を示す機能ブロック図である。 図5は、教示情報の生成を説明する図である。 図6は、学習処理を説明する図である。 図7は、全体的な処理の流れを示すフローチャートである。 図8は、適応度算出処理の流れを示すフローチャートである。 図9は、ハードウェア構成例を説明する図である。
以下に、本願の開示する画像検査装置、画像検査のための学習方法および画像検査プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[画像検査装置の説明]
図1は、実施例1にかかる画像検査装置10を説明する図である。図1に示す画像検査装置10は、入力画像から欠陥部分を抽出する画像処理プログラムが有する複数の画像処理の最適化を、遺伝的プログラミング(Genetic Programming:GP)を用いて実行するコンピュータ装置の一例である。なお、実施例では、欠陥部分の領域を欠陥領域、欠陥領域外の良品部分の領域を良品領域と記載する場合がある。
学習フェーズでは、画像検査装置10は、遺伝的プログラミングにより選択された画像処理プログラムの適応度を、教示情報を含む学習データを用いて評価し、評価結果に応じて遺伝的プログラミングによる最適化を実行する。適用フェーズでは、画像検査装置10は、最適化された、適応度が高い画像処理プログラムに検出対象の入力画像を入力し、欠陥部分の抽出画像を適用結果として取得する。
次に、遺伝的プログラミングによる最適化を説明する。図2は、遺伝的プログラミングを用いた最適化を説明する図である。図2に示すように、遺伝的プログラミングは、複数の画像処理プログラム(個体)を含む親の集団から、ランダムに2つの個体を両親として選択する。続いて、遺伝的プログラミングは、交叉処理や突然変異処理などを行う進化過程を経て、新しい個体の集団(子の集団)を生成する。その後、遺伝的プログラミングは、新しい個体の集団から画像処理プログラムを選択して、適応度の算出などを含む評価処理を実行する。
ここで、最適化の対象となる画像処理プログラムは、入力画像から欠陥等を検出するプログラムの一例である。図3は、画像処理プログラムを説明する図である。図3に示すように、画像処理プログラムは、遺伝子Fnで表される複数の画像処理の関数をノードとする木構造を有する。図3に示す画像処理プログラムの木構造は、画像処理前の入力画像を入力するノードF1と、画像処理後の出力画像P2を出力するノードF9を有し、その間に複数のノードF2〜F8を有する。各ノードF1〜F9は、1つ1つが所定のプログラムモージュールや演算式になっている。
例えば、画像処理プログラムは、部品Aと部品Bとを含む入力画像に対してノードF1からノードF9の画像処理を実行し、部品Aと部品Bとのエッジを抽出した出力画像を出力する。なお、画像処理プログラムの構造は、図1に示すものに限定されない。また、このような画像処理プログラムは、画像処理フィルタとも呼ばれる。
このような画像処理プログラムに対して、画像検査装置10が評価を実行し、適応度の高い画像処理プログラムを生成する。具体的には、画像検査装置10は、判定対象として選択中の画像処理プログラムに用いて学習データ(入力画像)から局所特徴量を算出し、局所特徴量のうち、欠陥領域に該当しない良品領域の特徴量を識別できるように、教師無学習によって識別器を学習する。そして、画像検査装置10は、学習された識別器を用いて、選択中の画像処理プログラムの適応度を判定する。
そして、画像検査装置10は、適応度が閾値未満である場合には、遺伝的プログラムによって次の画像処理プログラムを選択して、同様の処理を実行する。その後、画像検査装置10は、適応度が閾値以上の画像処理プログラムが探索されると、画像検査用の画像処理プログラムとして特定する。このように、画像検査装置10は、遺伝的プログラミングによる画像処理プログラムの学習と、画像処理プログラミングの出力を識別する識別器との学習とを実行することで、識別精度の高い画像処理プログラムの生成を実行する。
[機能構成]
図4は、実施例1にかかる画像検査装置10の機能構成を示す機能ブロック図である。図4に示すように、画像検査装置10は、通信部11、記憶部12、制御部20を有する。
通信部11は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、カメラ等の撮像装置により撮像された撮像画像を受信する。
記憶部12は、データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、撮像画像データDB13、学習データDB14、学習結果DB15を記憶する。
撮像画像データDB13は、撮像画像を記憶するデータベースである。例えば、撮像画像データDB13は、検出対象(識別対象)時に入力される撮像画像を含む、通信部11により取得された撮像画像を記憶する。
学習データDB14は、学習に用いられる入力画像と教示情報とを含む学習データを記憶するデータベースである。例えば、学習データDB14は、欠陥領域が含まれる欠陥画像(入力画像)と、入力画像の欠陥領域が含まれない良品領域が指定された良品領域データ(教示情報)とを組とする複数の学習データを記憶する。
学習結果DB15は、後述する学習部22による学習結果を記憶するデータベースである。例えば、学習結果DB15は、画像処理プログラムの最適化を行う遺伝的プログラミングによる最適化結果や、識別器の学習を行うワンクラスSVM(Support Vector Machine)などの学習結果を記憶する。
制御部20は、画像検査装置10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、教示部21と学習部22を有する。なお、教示部21と学習部22は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。
教示部21は、学習データに含まれる教示情報であって、入力画像の欠陥領域を含まない良品領域が指定された良品領域データを生成する処理部である。具体的には、教示部21は、教示作業者から、入力画像である欠陥画像に対して検出した欠陥を包括する閉領域を受け付ける。そして、教示部21は、指定された閉領域を抽出し、閉領域と重複しない領域を良品領域データとして保存する。
図5は、教示情報の生成を説明する図である。図5に示すように、教示部21は、欠陥部分を含む入力画像において、欠陥を包括する閉領域の指定を教示作業者から受け付ける。ここで、教示作業者は、欠陥領域を詳細に指定する必要はなく、欠陥領域が含まれる領域や欠陥領域が含まれると想定される領域など、少なくとも欠陥領域が含まれる領域を大雑把に指定すればよい。
その後、教示部21は、入力画像を所定の矩形領域に分割し、各矩形領域が閉領域に該当するか否かを判定する。そして、教示部21は、各矩形領域のうち閉領域に該当する領域を除いた画像データを生成し、良品領域データとして学習データDB14に格納する。すなわち、教示部21は、入力画像から指定済みの閉領域以外の領域を抽出した教示情報を生成する。なお、教示部21は、抽出元の入力画像と、良品領域データとを対応付けて学習データとして、学習データDB14に格納する。また、教示部21は、学習対象の各入力画像について教示情報の生成を行う。
学習部22は、生成部23、前処理部24、抽出部25、識別器学習部26、評価部27を有し、遺伝的アルゴリズムによる学習や識別器による学習を実行し、識別精度の高い画像処理プログラムの生成する処理部である。
図6は、学習処理を説明する図である。図6に示すように、学習部22は、欠陥部分が含まれる入力画像と、入力画像に対応した良品領域データとを学習データとして取得する。そして、学習部22は、入力画像に対して選択中の画像処理プログラムによる各種処理(前処理)を実行して出力画像を取得し、出力画像の矩形ごとに局所特徴量を算出する。
その後、学習部22は、教示情報(良品領域データ)にしたがって、出力画像の矩形ごとの局所特徴量を分類し、分類結果を用いた教師無学習により、識別器を学習する。そして、学習部22は、前処理後の出力画像を識別器に入力し、その結果を用いて、画像処理プログラムの適応度を判定する。
図4に戻り、生成部23は、遺伝的アルゴリズムを用いて、画像処理プログラムの生成を実行する処理部である。例えば、生成部23は、図2で説明した遺伝的アルゴリズムによる選択や生成を実行して、適応度の高い画像処理プログラムの探索を繰り返し実行する。なお、画像処理プログラムの探索には、一般的な遺伝的アルゴリズムと同様の手法を採用することができるので、詳細な説明は省略する。
前処理部24は、生成部23により選択された、適応度の評価対象である画像処理プログラムを用いて、入力画像に対する評価対象前の前処理を実行する処理部である。例えば、前処理部24は、学習データDB14から、入力画像と良品領域データとの組を取得する。そして、前処理部24は、評価対象である画像処理プログラムに入力画像を入力して、画像処理プログラムによる各種処理(前処理)が実行された出力画像を取得する。その後、前処理部24は、出力画像を抽出部25に出力し、教示情報である良品領域データを識別器学習部26に出力する。
抽出部25は、前処理部24から取得した出力画像から局所特徴量を抽出する処理部である。例えば、抽出部25は、出力画像を矩形に分割する。このとき、抽出部25は、教示情報との分割数を合わせるために、教示部21が分割した矩形と同じサイズで分割することが好ましい。
そして、抽出部25は、分割された出力画像の矩形領域ごとに、領域内の輝度値の平均(特徴量A)と領域内の輝度値の標準偏差(特徴量B)を算出する。その後、抽出部25は、算出結果を識別器学習部26に出力する。
識別器学習部26は、抽出部25による抽出結果を用いて、前処理後の出力画像の部分領域に識別する識別器を学習する処理部である。例えば、識別器学習部26は、抽出部25によって抽出された局所特徴量(特徴量A、特徴量B)を、学習データの良品領域データを用いて、良品領域に該当する特徴量(良品特徴量)と、良品領域に該当しない特徴量(非良品特徴量)とに分類する。
そして、識別器学習部26は、良品特徴量のみを用いて、出力画像を部分領域に識別する識別器を学習する。より詳細には、識別器学習部26は、ワンクラスSVMなどの手法を用いて、識別器を学習する。
評価部27は、識別器学習部26による学習される識別器を用いて、前処理部24によって生成された出力画像に対する部分領域の識別を実行し、識別結果に応じて、評価対象の画像処理プログラムを評価する処理部である。
例えば、評価部27は、前処理部24から出力画像を取得し、学習された識別器に出力画像を入力して、特徴量(特徴量A、特徴量B)の分布を生成する。そして、評価部27は、特徴量の分布を良品領域のクラスと非良品領域のクラスに分割し、一般的な手法を用いて算出されるクラス間距離によって、画像プログラムの適応度を判定する。
ここで、評価部27は、クラス間距離が閾値以上か否かにより、適応度が閾値以上になったか判定する。クラス間距離が閾値以上になれば、識別精度の高い画像処理プログラムの生成が完了したものとし、当該画像処理プログラムを学習結果として学習結果DB15に格納する。
一方、クラス間距離が閾値未満である場合には、適応度が低いと判定されて、当該画像処理プログラムが淘汰され、次世代の親について、上述した学習部22による学習処理が繰り返される。例えば、進化過程で生成した個体からなる個体群から、所定数の個体を例えば2つ抽出し、初期の個体群内の個体と置き換える。抽出される個体は、例えば、最良個体選択や、ルーレット選択によって決定される。その後、上記学習処理を実行し、適応度が高く、識別精度の高い画像処理プログラムの生成を継続する。
[全体的な処理の流れ]
図7は、全体的な処理の流れを示すフローチャートである。図7に示すように、教示部21は、複数の撮像画像それぞれに対して、欠陥部分を閉領域で教示する(S101)。続いて、教示部21は、教示した領域外を良品領域として抽出し、各撮像画像(入力画像)とともに学習データとして登録する(S102)。
そして、学習部22は、複数の画像処理プログラムを集団とする初期プログラム群を生成する(S103)。続いて、学習部22は、各画像処理プログラムに対して学習前の識別器などを適用して適応度を算出し(S104)、適応度が高い親プログラムを選択する(S105)。なお、S104とS105の代わりに、ランダムに選択する手法を用いることもできる。
その後、学習部22は、遺伝的プログラミングによる進化過程により子プログラムを複数選択し(S106)、各子プログラムについて、適応度の算出処理を実行する(S107)。
そして、学習部22は、適応度が閾値以上のプログラムが検出されない場合(S108:No)、遺伝的プログラミングによるプログラム群の更新を実行し(S109)、S105以降を繰り返す。
一方、学習部22は、適応度が閾値以上のプログラムが検出された場合(S108:Yes)、当該プログラムを単一プログラムとして出力する(S110)。すなわち、学習部22は、適応度が閾値以上の子プログラムを、学習結果として保存する。
[適応度算出処理の流れ]
図8は、適応度算出処理の流れを示すフローチャートである。この処理は、図7のS107で実行される処理である。
図8に示すように、学習部22は、各撮像画像に対して、選択中の画像処理プログラムを実行し(S201)、各実行結果の出力画像に対して、部分領域ごとに局所特徴量を算出する(S202)。
続いて、学習部22は、良品領域における局所特徴量を基に識別器を学習する(S203)。その後、学習部22は、学習した識別器を用いて、出力画像に対する部分領域を識別する(S204)。
そして、学習部22は、良品領域と非良品領域に対する識別器の評価指標に基づき、クラス間距離を算出し(S205)、クラス間距離をプログラムの適応度として記憶部12等に登録する(S206)。
[効果]
上述したように、画像検査装置10は、簡単な教示画像を生成して、画像処理プログラムの最適化を実行することができる。したがって、画像処理プログラムを工業製品の外観を検査する外観検査装置などに適用した場合であっても、画像の検査環境が変化した場合であっても、簡単な教示画像を生成するだけで、教師データを生成することができる。また、一般的な手法と比較して、簡単に画像処理プログラムの再構築を行うことができ、画像処理プログラムの学習負荷を低減することができる。
また、一般技術のように、画像処理プログラムの出力結果と教示画像とを比較する処理の代わりに、識別器による学習結果を用いて、適応度を判定することができる。このため、欠陥領域が漏れなく正確に指定された教示画像を用いることなく、簡単な教示画像を用いて適応度を判定することができる。また、同じ学習データを用いて、遺伝的アルゴリズムによる画像処理プログラムの探索と識別器の学習との両方を実行することができるので、学習データの収集にかかる時間を短縮することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[特徴量]
上記実施例では、特徴量として、領域内の輝度値の平均と領域内の輝度値の標準偏差とを用いた例を説明したが、これに限定されるものではなく、例えば領域内の輝度の最大値や最小値、各領域のカラー情報に対するヒストグラム、空間的な周波数情報、輝度の勾配情報などを用いることもできる。また、使用する特徴量も任意に組み合わせることができ、3つ以上の特徴量を使用することもできる。
[識別器の学習]
上述した識別器の学習は、任意のタイミングで実行することができる。例えば、遺伝的プログラミングによる画像処理プログラムの探索の前に学習することもでき、遺伝的プログラミングによる画像処理プログラムの探索と並行して学習することもでき、遺伝的プログラミングによる画像処理プログラムの探索から識別器の学習を一連の学習処理として実行することもできる。また、識別器は一度学習した後は、各検査段階では学習を省略して学習済みの同じ識別器を使うことで、全体的な学習時間を短縮することができる。
また、上記実施例では、入力画像を所定の矩形領域に分割する例を説明したが、矩形に分割することや分割手法を限定するものではなく、各領域に分割できる他の手法を採用することができる。また、識別器の学習方法もワンクラスSVMに限らず、公知の様々な手法を採用することができる。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、学習フェーズを実行する装置と適用フェーズを実行する装置とを同一サーバで実現することもできる。
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
図9は、ハードウェア構成例を説明する図である。図9に示すように、画像検査装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、図9に示した各部は、バス等で相互に接続される。
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、図2に示した機能を動作させるプログラムやDBを記憶する。
プロセッサ10dは、図2に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図2等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、画像検査装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、教示部21と学習部22等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、教示部21と学習部22等と同様の処理を実行するプロセスを実行する。
このように画像検査装置10は、プログラムを読み出して実行することで画像検査方法を実行する情報処理装置として動作する。また、画像検査装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、画像検査装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
10 画像検査装置
11 通信部
12 記憶部
13 撮像画像データDB
14 学習データDB
15 学習結果DB
20 制御部
21 教示部
22 学習部
23 生成部
24 前処理部
25 抽出部
26 識別器学習部
27 評価部

Claims (8)

  1. 欠陥領域を含む学習用画像のうち、前記欠陥領域以外の良品領域を抽出した良品領域データを生成する生成部と、
    欠陥領域の検出対象である入力画像から欠陥領域を検出する画像検査用の画像処理プログラムに前記学習用画像を入力して出力画像を取得する取得部と、
    前記出力画像の所定領域ごとに特徴量を抽出する抽出部と、
    前記良品領域データにしたがって、前記所定領域ごとの特徴量を前記良品領域に該当する良品特徴量と前記欠陥領域に該当する欠陥特徴量とに分類する分類部と、
    前記良品特徴量を用いて、前記画像処理プログラムから出力される出力画像の領域を識別する識別器を学習する学習部と
    を有することを特徴とする画像検査装置。
  2. 前記学習部は、前記良品特徴量と前記欠陥特徴量とをクラスタリングし、前記良品特徴量のクラスタと前記欠陥特徴量のクラスタとが分離するように、前記良品特徴量を用いた教師無学習によって前記識別器を学習することを特徴とする請求項1に記載の画像検査装置。
  3. 前記生成部は、前記学習用画像の各領域のうち、欠陥部分が含まれる領域および前記欠陥部分が含まれると想定される領域の指定を受け付け、指定された各領域を前記学習用画像から除去して前記良品領域データを生成することを特徴とする請求項1または2に記載の画像検査装置。
  4. 遺伝的プログラミングにより選択された前記画像処理プログラムに、前記学習用画像を入力して出力画像を取得し、前記出力画像を学習済みの前記識別器に入力して得られる前記良品特徴量と前記欠陥特徴量とをクラスタリングし、前記良品特徴量のクラスタと前記欠陥特徴量のクラスタとのクラスタ間距離に基づいて、前記画像処理プログラムの適応度を評価する評価部をさらに有する請求項1から3のいずれか一つに記載の画像検査装置。
  5. 前記評価部は、前記適応度が閾値以上の画像処理プログラムが検出されるまで、前記遺伝的プログラミングによる遺伝的な進化によって、前記画像処理プログラムが有する画像処理内容を示す木構造を更新し、更新後の画像処理プログラムに対して前記適応度の評価を繰り返して実行することを特徴とする請求項4に記載の画像検査装置。
  6. 前記抽出部は、前記出力画像の所定領域ごとに、領域内の輝度値の平均と前記領域内の輝度値の標準偏差とを抽出することを特徴とする請求項1から5のいずれか一つに記載の画像検査装置。
  7. コンピュータが、
    欠陥領域を含む学習用画像のうち、前記欠陥領域以外の良品領域を抽出した良品領域データを生成し、
    欠陥領域の検出対象である入力画像から欠陥領域を検出する画像検査用の画像処理プログラムに前記学習用画像を入力して出力画像を取得し、
    前記出力画像の所定領域ごとに特徴量を抽出し、
    前記良品領域データにしたがって、前記所定領域ごとの特徴量を前記良品領域に該当する良品特徴量と前記欠陥領域に該当する欠陥特徴量とに分類し、
    前記良品特徴量を用いて、前記画像処理プログラムから出力される出力画像の領域を識別する識別器を学習する
    処理を実行することを特徴とする画像検査のための学習方法。
  8. コンピュータに、
    欠陥領域を含む学習用画像のうち、前記欠陥領域以外の良品領域を抽出した良品領域データを生成し、
    欠陥領域の検出対象である入力画像から欠陥領域を検出する画像検査用の画像処理プログラムに前記学習用画像を入力して出力画像を取得し、
    前記出力画像の所定領域ごとに特徴量を抽出し、
    前記良品領域データにしたがって、前記所定領域ごとの特徴量を前記良品領域に該当する良品特徴量と前記欠陥領域に該当する欠陥特徴量とに分類し、
    前記良品特徴量を用いて、前記画像処理プログラムから出力される出力画像の領域を識別する識別器を学習する
    処理を実行させることを特徴とする画像検査プログラム。
JP2018238353A 2018-12-20 2018-12-20 画像検査装置、画像検査のための学習方法および画像検査プログラム Active JP7206892B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018238353A JP7206892B2 (ja) 2018-12-20 2018-12-20 画像検査装置、画像検査のための学習方法および画像検査プログラム
US16/676,503 US11222267B2 (en) 2018-12-20 2019-11-07 Image inspection apparatus, image inspection learning method, and non-transitory computer-readable storage medium for storing image inspection program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018238353A JP7206892B2 (ja) 2018-12-20 2018-12-20 画像検査装置、画像検査のための学習方法および画像検査プログラム

Publications (2)

Publication Number Publication Date
JP2020101900A true JP2020101900A (ja) 2020-07-02
JP7206892B2 JP7206892B2 (ja) 2023-01-18

Family

ID=71098538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018238353A Active JP7206892B2 (ja) 2018-12-20 2018-12-20 画像検査装置、画像検査のための学習方法および画像検査プログラム

Country Status (2)

Country Link
US (1) US11222267B2 (ja)
JP (1) JP7206892B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220084177A1 (en) * 2020-09-11 2022-03-17 Panasonic Intellectual Property Management Co., Ltd. Information processing method and information processing device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015041164A (ja) * 2013-08-20 2015-03-02 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
WO2017126046A1 (ja) * 2016-01-20 2017-07-27 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP2017162069A (ja) * 2016-03-08 2017-09-14 株式会社Screenホールディングス 最適化方法、最適化装置、プログラムおよび画像処理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4910090B2 (ja) 2007-02-19 2012-04-04 国立大学法人横浜国立大学 画像処理システム
JP2008299687A (ja) 2007-06-01 2008-12-11 National Printing Bureau 画像処理構築方法
US9456146B2 (en) * 2011-12-22 2016-09-27 Panasonic Intellectual Property Management Co., Ltd. Exposure control device, imaging device, image display device, and exposure control method
JP7015001B2 (ja) * 2018-03-14 2022-02-02 オムロン株式会社 欠陥検査装置、欠陥検査方法、及びそのプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015041164A (ja) * 2013-08-20 2015-03-02 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
WO2017126046A1 (ja) * 2016-01-20 2017-07-27 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP2017162069A (ja) * 2016-03-08 2017-09-14 株式会社Screenホールディングス 最適化方法、最適化装置、プログラムおよび画像処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220084177A1 (en) * 2020-09-11 2022-03-17 Panasonic Intellectual Property Management Co., Ltd. Information processing method and information processing device
US11836914B2 (en) * 2020-09-11 2023-12-05 Panasonic Intellectual Property Management Co., Ltd. Information processing method and information processing device for detecting a trace formed on a surface of a workpiece

Also Published As

Publication number Publication date
US20200202225A1 (en) 2020-06-25
US11222267B2 (en) 2022-01-11
JP7206892B2 (ja) 2023-01-18

Similar Documents

Publication Publication Date Title
JP6573226B2 (ja) データ生成装置、データ生成方法及びデータ生成プログラム
JP6905954B2 (ja) 自動欠陥分類のための未知欠陥除去の最適化
JP6285640B2 (ja) 自動及び手動欠陥分類の統合
US9430743B2 (en) Composite defect classifier
JP7289427B2 (ja) プログラム、情報処理方法及び情報処理装置
EP3480735A1 (en) Inspection apparatus, data generation apparatus, data generation method, and data generation program
KR20190063839A (ko) 제조 공정에서 딥러닝을 활용한 머신 비전 기반 품질검사 방법 및 시스템
JP6102947B2 (ja) 画像処理装置及び特徴検出方法
CN110852983A (zh) 用于检测半导体装置中的缺陷的方法
JP2015087903A (ja) 情報処理装置及び情報処理方法
CN114600154B (zh) 用于sem图像的bbp辅助缺陷检测流程
EP2431918A2 (en) Graph lattice method for image clustering, classification, and repeated structure finding
CN101097564A (zh) 参数学习方法及设备、模式识别方法及设备
CN108334805B (zh) 检测文档阅读顺序的方法和装置
JP2014178229A (ja) 教師データ作成方法、画像分類方法および画像分類装置
JP6641195B2 (ja) 最適化方法、最適化装置、プログラムおよび画像処理装置
CN114092387B (zh) 生成可用于检查半导体样本的训练数据
KR20210038303A (ko) 제품 분류 시스템 및 방법
WO2015001967A1 (ja) 画像処理フィルタの作成装置及びその方法
US9582869B2 (en) Dynamic binning for diversification and defect discovery
KR102483787B1 (ko) 반도체 장치의 결함 모델링 장치 및 방법, 이를 위한 컴퓨터 프로그램과, 이를 이용한 반도체 장치의 결함 검사 시스템
JP7206892B2 (ja) 画像検査装置、画像検査のための学習方法および画像検査プログラム
Nayak et al. Fruit recognition using image processing
Borkar et al. Comparative study of supervised learning algorithms for fake news classification
JP2022089430A (ja) 画像処理システム、及び画像処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221219

R150 Certificate of patent or registration of utility model

Ref document number: 7206892

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150