JP6798619B2 - 情報処理装置、情報処理プログラム及び情報処理方法 - Google Patents

情報処理装置、情報処理プログラム及び情報処理方法 Download PDF

Info

Publication number
JP6798619B2
JP6798619B2 JP2019533730A JP2019533730A JP6798619B2 JP 6798619 B2 JP6798619 B2 JP 6798619B2 JP 2019533730 A JP2019533730 A JP 2019533730A JP 2019533730 A JP2019533730 A JP 2019533730A JP 6798619 B2 JP6798619 B2 JP 6798619B2
Authority
JP
Japan
Prior art keywords
image
data
learning
feature amount
information 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.)
Active
Application number
JP2019533730A
Other languages
English (en)
Other versions
JPWO2019026104A1 (ja
Inventor
岡本 浩明
浩明 岡本
毅 長門
毅 長門
哲男 肥塚
哲男 肥塚
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
Publication of JPWO2019026104A1 publication Critical patent/JPWO2019026104A1/ja
Application granted granted Critical
Publication of JP6798619B2 publication Critical patent/JP6798619B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/24765Rule-based classification
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • 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
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置、情報処理プログラム及び情報処理方法に関する。
従来、所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術がある。この技術は、入力画像と目標となる処理結果(目標画像等)を用いて、画像処理プログラムを遺伝的プログラミングによって最適化していくものである。
また、画像処理プログラムの自動生成の一つとして、画像のクラス分類(カテゴリー分類)を行う画像分類プログラムの自動生成法が提案されている(例えば、特許文献1等参照)。画像分類プログラムを用いることで、例えば、画像に写った対象物を良品と不良品の2クラスに分類することができる。
国際公開第2017/068675号
従来の良否判定アルゴリズム自動生成では、複数枚の学習画像とそれぞれに写っている対象物が良品か不良品かのみを示す教示データを用いて学習を実施していた。しかしながら、このような方法では、本来不良品と判断される原因となった部分のほかに、良否とは無関係の差異を良否判定基準として学習に利用してしまう場合があり、判定精度の低下を招くおそれがあった。
1つの側面では、本発明は、精度よく画像を分類できる画像分類プログラムを自動生成することが可能な情報処理装置、情報処理プログラム及び情報処理方法を提供することを目的とする。
一つの態様では、情報処理装置は、要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理装置であって、学習画像において特徴的な部分を含む特徴領域の指定を受け付ける受付部と、前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第1データを作成する第1データ作成部と、前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第2データを作成する第2データ作成部と、前記第1データと前記第2データとの類似度を算出する算出部と、前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する処理部と、を備えている。
精度よく画像を分類できる画像分類プログラムを自動生成することができる。
第1の実施形態に係る画像分類装置のハードウェア構成の一例を示す図である。 遺伝的プログラミングにおいて取り扱う個体の木構造フィルタ列の基本構成の例を示す図である。 図3(a)〜図3(c)は、NG領域の教示方法について説明するための図である。 図4(a)〜図4(d)は、NG領域の指標化について説明するための図であり、図4(e)は、分割領域の画像特徴量の指標化について説明するための図である。 図5(a)、図5(b)は、類似度計算の具体例について説明するための図(その1)である。 図6(a)、図6(b)は、類似度計算の具体例について説明するための図(その2)である。 図7(a)〜図7(f)は、NG部分の推定について説明するための図である。 画像分類装置が備える処理機能の構成例を示すブロック図である。 プログラム生成部の処理手順の例を示すフローチャートである。 図9のステップS28の具体的な処理を示すフローチャート(その1)である。 図9のステップS28の具体的な処理を示すフローチャート(その2)である。 画像検査処理部の処理手順の例を示すフローチャートである。 第1の実施形態において画像特徴分布データ(画像特徴分布指標)の生成に用いる画像特徴量を抽出するためのフィルタについて説明するための図である。 図14(a)〜図14(e)は、疑似的なNG画像について、学習および良否判定を実施した結果を説明するための図(その1)である。 疑似的なNG画像について、学習および良否判定を実施した結果を説明するための図(その2)である。 疑似的なNG画像について、学習および良否判定を実施した結果を説明するための図(その3)である。 第2の実施形態の概要を示す図である。 図18(a)〜図18(e)は、第2の実施形態による学習及び良否判定をテストした結果を示す図である。 第2の実施形態において、NG領域を教示した場合におけるNG部分の推定結果を示す図である。 第3の実施形態について説明するための図である。 第4の実施形態について説明するための図である。
《第1の実施形態》
以下、情報処理装置としての画像分類装置の第1の実施形態について、図1〜図16に基づいて詳細に説明する。第1の実施形態に係る画像分類装置は、要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する機能と、生成された画像分類プログラムを実行して画像分類処理を実行する機能とを備える。
図1は、第1の実施形態に係る画像分類装置100のハードウェア構成の一例を示す図である。画像分類装置100は、プロセッサ101と、RAM102と、HDD103と、グラフィック処理装置104と、入力インタフェース105と、読み取り装置106と、通信インタフェース107と、ネットワークインタフェース108と、を備える。画像分類装置100の各部は、バス109に接続されている。
プロセッサ101は、画像分類装置100全体を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、画像分類装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
HDD103は、画像分類装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像を表示装置104aの画面に表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース107は、接続された外部デバイスとの間でデータの送受信を行う。本第1の実施形態では、通信インタフェース107には、外部デバイスとしてカメラ107aが接続され、通信インタフェース107は、カメラ107aから送信された画像データをプロセッサ101に送信する。
ネットワークインタフェース108は、ネットワーク108aを介して他の装置との間でデータの送受信を行う。
画像分類装置100は、入力画像を複数のクラスのうちの1つに分類するための画像分類プログラムを、遺伝的プログラミングによって自動的に生成する。生成された画像分類プログラムに基づく画像分類処理には、例えば、入力画像に写っている製品や部品が良品か不良品かを判定する処理や、入力画像に顔が写っているか否かを判定する処理などが含まれる。
画像分類プログラムによって実現される処理には、学習画像を用いた学習によって識別器を生成する識別器生成処理と、識別器に入力する特徴情報を学習画像に基づいて生成する前処理とが含まれる。高精度な画像分類を実現する上で、学習画像からどのような特徴量を抽出して用いるかという点と、得られた特徴量に基づいてどのような識別器を生成するかという点の両方が重要である。画像分類装置100は、遺伝的プログラミングにより、識別器の生成アルゴリズムと前処理アルゴリズムの最適な組み合わせを探索する。これにより、高精度な画像分類が可能な識別器の処理を実現する画像分類プログラムが生成される。
(遺伝的プログラミングにおいて取り扱う個体について)
図2は、遺伝的プログラミングにおいて取り扱う個体の木構造フィルタ列の基本構成の例を示す図である。図2に示すように、個体は、各ノードの要素としてプログラムモジュールが設定された木構造によって表され、この木構造では、入力画像に様々な画像変換を加えて特徴抽出画像を生成し、生成した画像から画像特徴量を抽出し、画像特徴量を組み合わせて特徴ベクトルを作成し、SVM識別器によってOK画像とNG画像を判定するための学習あるいは判定を実行する。なお、OK画像は、良品が写っている画像であり、NG画像は不良品が写っている画像を意味する。また、個体を表す木構造は、それぞれ1以上の隣接する階層を含む区間(処理)に区分される。本第1の実施形態では、木構造は、そのリーフ側(図2の上側)からルート側(図2の下側)に向かって画像変換処理、画像特徴量抽出処理、入力データ作成処理、SVM識別器作成処理に区分される。なお、SVM識別器作成処理には、SVMパラメータ設定処理、SVM識別器生成処理、適応度算出処理が含まれる。
ここで、画像変換処理、画像特徴量抽出処理、入力データ作成処理は、識別器に入力するデータを生成するための前処理に対応づけられている。画像変換処理では、画像変換フィルタを用いて、入力画像を特徴抽出に適するように変換する。なお、画像変換フィルタとしては、Smoothフィルタ、Sobelフィルタ、Laplaceフィルタ、Andフィルタ、Subフィルタ、Addフィルタ、Orフィルタ、Erodeフィルタ、Dilateフィルタ、Thresholdフィルタなどを適用可能である。
画像特徴量抽出処理は、画像変換処理で変換された画像から、特徴抽出フィルタを用いて特徴量を抽出する処理である。特徴抽出フィルタとしては、平均輝度を算出するフィルタ、輝度ヒストグラムを算出するフィルタ、FFT(Fast Fourier Transformation)を実行するフィルタなどを適用可能である。また、領域分割数などの制御パラメータが異なる同じ種類のフィルタを適用することもできる。
入力データ作成処理は、画像特徴量抽出処理で抽出された特徴量に基づいて、識別器に入力するための入力データ(特徴ベクトル)を生成する処理である。識別器に入力する入力データを生成するための入力データ生成モジュールとしては、例えば、入力数がそれぞれ1,2のプログラムモジュールや、入力データの正規化、入力データの圧縮などを実行するプログラムモジュールを、用いることができる。
SVMパラメータ設定処理は、例えば、学習パラメータの絶対値を設定する処理と、学習パラメータの相対値を設定する処理を含む。設定された絶対値が、設定された相対値を用いた加減算やスケーリングなどによって増減されることで、識別器の生成のための学習パラメータが決定される。
SVM識別器生成処理は、使用するカーネル関数や動作モードを決定する。カーネル関数としては、例えば、LINEARカーネル、POLYNOMIALカーネル、RBF(Radial Basis Function)カーネル、SIGMOIDカーネルなどを適用可能である。また、動作モードとしては、木構造とSVM識別器の学習や、入力画像の良否判定が決定される。
適応度算出処理は、SVM識別器生成処理で生成された識別器情報にしたがって、入力データ作成処理で作成された入力データに基づいて、学習画像の良否(OK画像又はNG画像)を判定する分類処理を実行し、分類処理による分類結果と、学習画像に付加されたラベルが示す良否とを比較して、分類結果が正解か不正解かを判定する。そして、適応度算出処理は、交差検定などを用いて判定を複数回実行して学習画像に対する正解率を算出し、算出された正解率に基づいて、個体の適応度を算出する。ここで、適応度とは、目的とする画像認識結果に対して、自動生成した木構造フィルタ列の出力結果がどの程度一致しているかを示す指標である。本第1の実施形態では、適応度算出処理において、各個体の適応度を算出する際に、ペナルティ項も考慮するものとする。ペナルティ項としては、識別器の特徴次元数、木構造のサイズ(木構造に含まれるノード数またはノードの最大階層数)、SVM識別器が用いられる場合のサポートベクトル数などを適用可能である。例えば、一般に、得られるデータと比較して識別器の複雑さが大きくなるほど、過学習が起こりやすくなる。そこで、例えば、特徴次元数が大きいほど、また、木構造のサイズが大きいほど、また、サポートベクトル数が大きいほど、正解率を小さくするように補正して適応度を算出する。なお、特徴次元数は、入力データ作成処理において設定された入力データ生成モジュールに基づいて判別可能である。このように正解率をペナルティ項に応じて補正することで、学習結果の優劣を正確に評価でき、分類精度の高い画像分類プログラムを生成できる。なお、詳細については後述するが、適応度算出処理では、ユーザが画像上で指定するNG領域の位置と、画像変換処理で変換された画像から得られる特徴量の分布との類似度に基づくペナルティ項についても考慮する。この場合、類似度が大きければペナルティ項の値を小さくし、類似度が小さければペナルティ項の値を大きくする。
以上のように図2の木構造のノードがそれぞれ設定されることで、個体が生成される。画像分類装置100は、まず、個体群に含める複数の初期個体を生成した後、この個体群から選択した親個体を基に子個体を生成し、適応度の高い子個体を個体群内の親個体と入れ替える。画像分類装置100は、このような処理を繰り返し実行し、一定以上(予め定めた閾値以上)の適応度を有する個体を最良個体として出力する。
このような処理において、親個体を進化させて子個体を生成する際には、親個体の交叉、あるいは、親個体や子個体の突然変異により、親個体の1つ以上のノードの要素が変更される。親個体の進化のためにあるノードの要素が変更される場合には、変更後の要素は、そのノードが属する区間に対してあらかじめ用意されたプログラムモジュールとなる。例えば、突然変異によって画像変換処理の要素を変更する場合、変更後の要素は、画像変換処理に対応する画像変換フィルタの中から選択される。
このような処理により、各区間での処理アルゴリズムの組み合わせが最適化される。例えば、識別器に入力する特徴量を抽出するための処理アルゴリズムと、識別器を生成するための処理アルゴリズムとの組み合わせが最適化される。その結果、画像分類のための適切な識別器の種類や学習パラメータが選択されるとともに、その識別器への入力に適した特徴量を抽出することが可能になる。したがって、分類精度の高い画像分類プログラムを生成することができる。
(処理の概要)
次に、本第1の実施形態における処理の概要について説明する。本第1の実施形態では、学習画像を用いた学習の際に、ユーザが学習画像(NG画像)のうち、NGと判定される根拠となるNG領域を入力し、画像分類装置100に対して教示する。なお、ユーザは、良否判定の基準に精通しており、目視によりNG領域を特定し、入力装置105aを介してNG領域の座標を入力するものとする。そして、画像分類装置100では、学習画像内におけるNG領域の位置と、学習画像を変換した後の画像の特徴量の分布との類似度を算出する。さらに、画像分類装置100では、算出した類似度を考慮して、個体の適応度を算出し、遺伝的プログラミングによる画像分類プログラムの学習に利用する。
以下、上記各処理について、詳細に説明する。
(1) NG領域の教示方法
以下、ユーザがNG領域を指定し、画像分類装置100に教示する方法について説明する。なお、NG領域は、学習画像において特徴的な部分(キズや異物)を含む領域である。
図3(a)には、学習画像の一例が示されている。図3(a)の学習画像には、矩形状の対象物が存在しており、この対象物が存在する領域を注目領域(ROI:Region of Interest)と呼ぶものとする。なお、本第1の実施形態では、原則として、画像内の任意の位置にROIが設定されており、そのROI内のみを対象として学習や検査等を行うこととするが、ROIは画像全体であってもよい。
ここで、学習画像のOK画像には対象物に異物やキズは存在せず(図3(a)参照)、NG画像には異物やキズが存在するものとする(図3(b)参照)。この場合において、ユーザがNG領域を教示する際には、図3(b)において破線枠で示すような矩形領域をNG領域として指定することとする。このように、NG領域を矩形領域とすることで、教示作業を簡素化でき、後述するNG領域の指標化の計算を簡単にすることができる。
この場合において、図3(b)の右端の図において示すように、異物やキズが複雑に分布している場合には、複数の矩形領域(NG領域)を教示することとしてもよいし、図3(b)の右から2つ目の図において示すように、1つの大きな矩形領域(NG領域)を教示することとしてもよい。また、図3(b)の左端の図において示すように、一部の異物やキズを含まずに矩形領域(NG領域)を教示することとしてもよい。なお、本第1の実施形態では、学習後に与えられる検査画像(未知画像)には、学習画像と同じ位置にNG領域が存在するとは限らないし、同一のNG(異物やキズ)が存在するとも限らないことを前提としている。
なお、矩形領域に限らず、図3(c)に示すように、ユーザは、円や楕円形状などの矩形以外の基本的な図形でNG領域を教示してもよい。
(2) NG領域の指標化
次に、画像分類装置100が、上述したように教示されたNG領域を指標化する処理について、図4(a)〜図4(d)に基づいて説明する。
図4(a)には、円形の部品(対象物)が画像中央付近に存在するNG画像が示されている。図4(a)のNG画像は、対象物の表面に打痕あるいは異物となる楕円が描画されているようなテスト画像(学習画像)である。この学習画像に対して、ユーザが、図4(a)において白色の太線矩形枠で示す領域をNG領域として教示したとする。
また、この画像のROIは図4(b)の白色の細線矩形枠のように設定されているとする。なお、以下においては、ROIの範囲内という意味で単純に「画像内」という文言を用いる場合もあるものとする。
画像中のROIに対しては、分割領域が設定される。例えば、横にM分割、縦にN分割すると、ROIはM×N領域に分割される。図4(b)では5×5領域に分割した例が示されている。なお、分割数については、ユーザが設定することができるものとする。ただし、これに限らず、分割数は、予め定められていてもよい。分割領域には、それぞれ番号が付されているものとする(図4(c)参照)。
このような分割領域に対して、教示したNG領域の指標化が行われる。図4(c)において、黒色の太線矩形枠(図4(a)の白色の太線矩形枠に対応)がNG領域である。ここでは、各分割領域においてNG領域がどれだけの割合を占めるかという値を指標値として求める。図4(d)は、求めた指標値を示すグラフである。図4(d)のグラフによれば、教示したNG領域が画像内のどこに分布しているかが示されており、指標値は、各分割領域で0.0〜1.0の値を取る。なお、これに限らず、指標値は、NG領域がそれぞれの分割領域にどれだけの割合で分割されているかを示す値とすることもできる。この場合、全分割領域における指標値の合計が1.0になる。なお、矩形領域(NG領域)が複数存在する場合にも、同様に指標化することができる。以下においては、図4(d)のように画像内でのNG領域の分布を示すデータを「NG教示領域データ」あるいは「NG教示領域指標」などと呼ぶ。なお、NG教示領域データ(NG教示領域指標)は、学習画像を分割した分割領域それぞれと、NG領域との重なり具合を示す第1データであるといえる。
(3) 分割領域の画像特徴量の指標化
次に、画像分類装置100による、分割領域の画像特徴量の指標化処理について、図4(e)に基づいて説明する。
図4(e)は、後述する画像変換処理によって得られた特徴抽出画像(変換画像)の特徴量が各分割領域においてどのように分布しているかを表したグラフである。
図4(e)の例では、特徴抽出画像が原画像そのままであると仮定し、各分割領域での平均輝度を画像特徴量として算出した例を示している。本第1の実施形態では、図2に示すように、特徴抽出画像からは各種の特徴抽出フィルタにより画像特徴量を抽出して良否判定の識別器を作成しており、良否判定において重要な画像となっている。なお、分割領域の特徴量としては、各分割領域での平均輝度の他にも、ばらつきの標準偏差や範囲(最大値と最小値との差)などを用いることもできる。
以下においては、図4(e)に示すように、変換画像における画像特徴量が各分割領域でどのように分布しているかを表したデータを「画像特徴分布データ」あるいは「画像特徴分布指標」などと呼ぶものとする。なお、画像特徴分布データ(画像特徴分布指標)は、変換画像から算出した分割領域ごとの画像特徴量を示す第2データであるといえる。
(4) NG領域指標と画像特徴分布指標との類似度
上述の(2)、(3)で得られた2つの指標(図4(d)、図4(e))は、NG領域がどのように分布しているか、および、画像特徴量がどのように分布しているかをそれぞれ表した指標となっている。これらの指標が類似していれば、画像変換によって得られた画像が、NG部分の特徴を正しく抽出していると言える。したがって、本第1の実施形態では、この類似度が高くなるような画像変換処理を学習する。ここで、2つの指標の類似度は、2つの指標をベクトルとみなして、コサイン類似度や正規化相関値として求めることができる。
以下、類似度計算の具体例について、図5及び図6に基づいて説明する。図5(a)、図5(b)の上段には、NG画像の入力画像(学習画像)が示されている。また、図5(a)、図5(b)の中段には、白色矩形枠でNG領域を示した入力画像と、学習序盤において各入力画像を画像変換した後の特徴抽出画像が示されている。さらに、図5(a)、図5(b)の下段には、NG教示領域指標と、画像特徴分布指標が示されている。
また、図6(a)、図6(b)には、学習終盤における、図5(a)、図5(b)と対応する図が示されている。ここで、図5、図6の例では、NG教示領域指標は各分割領域内でNG領域が占める割合であり、画像特徴量は変換画像の各分割領域内の平均輝度である。
図5、図6の最下段には、NG教示領域指標と画像特徴分布指標の類似度を、正規化相関演算で求めた結果が示されている。図5(a)、図5(b)に示すように、学習序盤では、NG画像2の方の類似度はまだ非常に小さい。一方、学習終盤になると、図6(a)、図6(b)に示すように、NG画像1もNG画像2も類似度が1.0に近付いており、学習終盤の方が特徴抽出画像においてNG部分のみを正確に抽出できていることがわかる。
なお、本第1の実施形態では、図2に示すように、木構造フィルタ列には複数の枝が存在する場合があるため、NG領域の類似度も枝の数だけ算出される。したがって、複数の類似度を総合した類似度(総合類似度)を計算する必要があり、その方法としては、一例として以下の(a)、(b)のような方法が考えられる。なお、総合類似度は、NG画像1枚ごとに算出される。
(a)複数の枝についての類似度の絶対値の平均値、最大値又は最小値
(b)複数の枝についての類似度の平均値、最大値又は最小値
(5) 適応度の定義
次に、上述したように求められる類似度(総合類似度)を考慮した適応度の算出方法について説明する。
図5(a)、図5(b)の状態(学習序盤)から図6(a)、図6(b)の状態(学習終盤)のように学習を進めるために、類似度が高い場合に類似度に基づくペナルティ項の値が小さくなるようにし、次式(1)のような適応度を定義する。また、次式(2)に示すように、類似度に基づくペナルティ項は、類似度が高くなる(1.0に近づく)につれてゼロに漸近するように定義する。なお、ペナルティ量の算出の際には、前述したNG画像ごとの総合類似度に基づいてペナルティ量を求める必要がある。その際、各NG画像の総合類似度を単純に平均してもよいし、各NG画像の総合類似度の重み付き平均を取ることとしてもよい。重みを付ける基準としては、NG領域の面積に応じた重み係数などが考えられる。
適応度
=正解率−識別器のペナルティ項−類似度に基づくペナルティ項 …(1)
この適応度は、自動生成したプログラムの評価値を示し、適応度が高いほど良いプログラムである。
類似度に基づくペナルティ項
=1.0−類似度のNG画像全体の平均値 …(2)
(2)式で表すように、類似度が高いほど、そのペナルティ項は小さくなる。従って、(1)式で表した適応度は、各項の合計として高くなるように補正される。
ここで、正解率としては、学習画像についての交差検定の正解率を用いることができる。以下、NG教示領域データと画像特徴分布データとの類似度に基づくペナルティを単に「類似度に基づくペナルティ項」と呼ぶ。
なお、類似度に基づくペナルティ項を、適切な形で適応度に反映させるため、類似度に基づくペナルティ項に対し、固定あるいは可変の重み係数を掛けることとしてもよい。例えば、類似度の算出に正規化相関演算を用い、総合類似度として、複数の枝の類似度の絶対値の平均値を求め、類似度のペナルティ項を1.0−(複数の枝の類似度の絶対値の平均値)としたとする。この場合、適切な適応度とするには重み係数を0.1〜0.3程度とすることが好ましい。
なお、類似度が高いほどペナルティ値が小さくなるように、類似度の値を負に変換したり、逆数に変換したりすることとしてもよい。
(6) NG部分の推定
次に、画像分類装置100によるNG部分の推定方法について説明する。なお、NG部分の推定の際には、遺伝的プログラミングによる画像分類プログラムの学習が既に完了しているものとする。なお、NG部分とは、分割領域のうち、キズや異物が存在する可能性の高い分割領域を意味する。
NG部分の推定においても、図4(b)、図4(c)と同様、分割領域それぞれの画像特徴量を利用することとする。ただし、図4(b)、図4(c)では、NG画像の画像特徴量を対象としていたのに対し、本処理では、OK画像から画像特徴量を求める。
すなわち、本処理では、図7(a)に示すように、学習用のOK画像のROI(白色の実線矩形枠)についてもこれまでと同様に領域分割を実施する。そして、学習用のOK画像のそれぞれについて、画像変換による特徴抽出画像を得た後に、各分割領域において画像特徴量の分布(平均と標準偏差)を算出する。こうして得られた画像特徴量の分布は、図7(b)のように表される。なお、図7(b)のデータは、正常な分布(正常範囲)として学習時に保存しておく。
一方、学習後の良否判定時には、図7(c)に示すような検査対象の画像(対象画像)から同様に各分割領域の画像特徴量を図7(d)のように求め、図7(b)との差分に基づいて、正常な分布に対する異常スコアを算出する。異常スコアは例えば次式(3)により求めることができる。
画像特徴異常スコア
=(対象画像の画像特徴量−正常分布平均値)/正常分布標準偏差 …(3)
この異常スコアは分割領域ごとに求められるため、図7(e)のように表すことができる。本第1の実施形態では、異常スコアが所定の閾値よりも大きい分割領域をNG部分と推定する。
図7(f)には、図7(e)において異常スコアが閾値(=3)以上である分割領域をNG部分として推定し、その分割領域を対象画像にオーバーレイ表示した例が示されている。図7(f)では、推定したNG部分が白色の矩形枠にて示されている。
(画像分類装置100の処理機能について)
図8は、画像分類装置100が備える処理機能の構成例を示すブロック図である。画像分類装置100は、画像入力部111、判定部としての画像検査処理部112、プログラム生成部120、記憶部150、を有する。
画像入力部111、画像検査処理部112、及びプログラム生成部120の処理は、例えば、画像分類装置100のプロセッサ101が所定のプログラム(画像分類プログラムを含む)を実行することで実現される。記憶部150は、例えば、画像分類装置100のRAM102の記憶領域として実現される。
画像入力部111は、カメラ107aが撮像した画像のデータを取得し、プログラム生成部120又は画像検査処理部112に出力する。プログラム生成部120は、遺伝的プログラミングにより画像分類プログラムを生成し、生成された画像分類プログラムに対応するデータ(最良個体のデータ)を記憶部150に保存する。なお、プログラム生成部120の内部構成については後述する。
画像検査処理部112は、カメラ107aが撮像した画像のデータを、画像入力部111を介して取得する。また、画像検査処理部112は、記憶部150に記憶されている画像分類プログラムのデータ(最良個体のデータ)を読み出し、読み出した画像分類プログラムを用いて、取得した画像の良否を判定する。画像検査処理部112は、判定結果を、例えば表示装置104aに表示する。
記憶部150は、学習画像や、プログラム生成部120で生成された画像分類プログラムのデータ(最良個体のデータ)を記憶する。学習画像には、学習画像の良否(OK画像又はNG画像)を示すラベルが付加されている。学習画像としては、画像入力部111がカメラ107aから取得した画像を用いることができる。
ここで、プログラム生成部120の詳細についてさらに説明する。プログラム生成部120は、処理部としてのGP(Genetic Programming)学習制御部121、画像変換部122、第3データ作成部としての画像特徴量抽出部123、入力データ作成部124、識別器パラメータ設定部125、識別器生成部126、受付部としてのNG領域入力部127、分割領域設定部128、第1データ作成部としてのNG領域指標算出部129、第2データ作成部としての分割領域特徴量抽出部130、算出部としての類似度算出部131、適応度算出部132、を有する。
GP学習制御部121は、遺伝的プログラミングによるプログラム生成処理全体の実行を制御する。例えば、GP学習制御部121は、初期個体の生成、個体の進化処理などの処理を実行する。
画像変換部122は、個体の木構造における画像変換処理のノードに設定された画像変換フィルタにしたがって、入力画像に対する画像変換処理を実行する。
画像特徴量抽出部123は、個体の木構造における画像特徴量抽出処理のノードに設定された特徴抽出フィルタにしたがって、画像変換後の入力画像からの特徴量抽出処理を実行する。
入力データ作成部124は、個体の木構造における入力データ作成処理のノードに設定されたプログラムモジュールにしたがって、識別器に入力する入力データを画像の特徴量に基づいて生成する。
識別器パラメータ設定部125は、個体の木構造におけるSVMパラメータ設定処理のノードに設定された絶対値と相対値にしたがって、識別器の学習パラメータを設定する処理を実行する。
識別器生成部126は、個体の木構造におけるSVM識別器生成処理のノードに設定されたカーネル関数や動作モードにしたがって、識別器パラメータ設定部125によって設定された学習パラメータを用いて、学習により識別器を生成する処理を実行する。
NG領域入力部127は、ユーザが入力装置105aを介して入力したNG領域の指定を受け付け、NG領域指標算出部129にNG領域の情報(座標)を入力する。
分割領域設定部128は、図4(b)において白色の破線にて示すように、ROIに対して分割領域を設定する。
NG領域指標算出部129は、図4(d)に示すようなNG教示領域指標を算出する。
分割領域特徴量抽出部130は、分割領域それぞれの画像特徴量を抽出し、図4(e)に示すような画像特徴分布指標を算出する。
類似度算出部131は、NG教示領域指標(図4(d))と画像特徴分布指標(図4(e))との類似度を正規化相関演算により算出する。
適応度算出部132は、類似度算出部131が算出した類似度に基づいて、適応度を算出する。
次に、画像分類装置100の処理についてフローチャートを用いて説明する。
(プログラム生成部120の処理)
図9は、プログラム生成部120の処理手順の例を示すフローチャートである。
図9の処理では、まず、ステップS10において、GP学習制御部121は、複数の初期個体を生成し、生成した初期個体を示す情報を記憶部150に格納する。以下、記憶部150に格納される個体のことを「個体群」と呼ぶ。
初期個体の生成手順としては、基本的に、個体の木構造の各処理にノードが設定され、各ノードの要素が、ノードが属する処理に対応するプログラムモジュールの中から選択されて設定される。
次いで、ステップS12では、分割領域設定部128が、分割領域の設定を行う。具体的には、分割領域設定部128は、ROIを縦方向に何等分し、横方向に何等分するかを設定する。なお、分割領域設定部128は、ユーザの入力に基づいて、分割領域の設定を行うこととしてもよいし、予め定められている条件に基づいて分割領域の設定を行うこととしてもよい。本実施形態では、ROIを5×5領域に分割するものとする。
次いで、ステップS14では、GP学習制御部121が、学習画像を記憶部150から読み出す。この場合、例えば、GP学習制御部121は、1枚の学習画像として、OK画像又はNG画像を記憶部150から読み出す。
次いで、ステップS16では、GP学習制御部121が、良否正解データを取得する。この場合、GP学習制御部121が、学習画像に付加されたラベルから、良否正解データ(OK画像であるか、NG画像であるかの情報)を取得する。
次いで、ステップS18では、NG領域入力部127が、NG領域のデータを取得する。この場合、NG領域入力部127は、ユーザからの入力に基づいて、NG領域のデータを教示データとして取得し、NG領域指標算出部129に対して入力する。
次いで、ステップS20では、NG領域指標算出部129が、NG領域の指標化を行う。すなわち、NG領域指標算出部129は、図4(d)に示すようなNG教示領域データ(NG教示領域指標)を生成する。
次いで、ステップS22では、GP学習制御部121が、記憶部150に格納されている学習画像が終了したか否か、すなわち、全ての学習画像を読み出したか否かを判断する。このステップS22の判断が否定された場合には、ステップS14に戻り、次の学習画像に対する処理としてステップS14〜S22の処理を実行する。一方、ステップS22の判断が肯定された場合には、ステップS24に移行する。
次いで、ステップS24では、GP学習制御部121が、個体群に含まれる個体の中から、2つの親個体をランダムに選択する。
次いで、ステップS26では、GP学習制御部121が、選択した親個体を用いて2以上の所定数の子個体を生成する。例えば、GP学習制御部121は、選択された2つの親個体の間で交叉を行うことで、2つ以上の所定数の子個体を生成する。また、GP学習制御部121は、生成された各子個体のいずれかのノードに突然変異を発生させ、そのノードの要素を変更する。
次いで、ステップS27では、GP学習制御部121は、生成された子個体の1つを選択する。
次いで、ステップS28では、進化過程処理のサブルーチンが実行される。進化過程処理のサブルーチンにおいては、図10、図11のフローチャートに沿った処理が実行される。
図10、図11の処理では、まず、ステップ50において、GP学習制御部121が、記憶部150から学習画像を読み出す。
次いで、ステップS52では、画像変換部122が、選択された子個体を用いて、ステップS50において読み出された学習画像を画像変換する。次いで、ステップS54では、画像特徴量抽出部123が、変換後の画像に基づいて、画像特徴量を抽出する。
ここで、本第1の実施形態では、図13に示すように、子個体において画像特徴量抽出処理に設定されているフィルタ(図13では、F1、F3)とは異なるフィルタ(F0)を用いて、画像特徴量を抽出することとしている。なお、フィルタF0は、各子個体において共通の(固定の)フィルタであるものとする。すなわち、フィルタF1、F3は、交叉や突然変異によって学習しながら次第に変化して行くが、フィルタF0は変化しないようになっている。なお、フィルタF0への入力は画像変換処理によって変換された特徴抽出画像であり、SVM識別器に入力される特徴抽出画像と同一の画像である。
次いで、ステップS56では、入力データ生成部124が、子個体に基づいて、識別器に入力する入力データを生成する。次いで、ステップS58では、分割領域特徴量抽出部130が、分割領域それぞれの画像特徴量を算出し、図4(e)に示すような画像特徴分布データ(画像特徴分布指標)を生成する。
次いで、ステップS60では、類似度算出部131が、学習画像がNG画像であるか否かを判断する。このステップS60の判断が肯定された場合には、ステップS62に移行し、否定された場合には、ステップS64に移行する。
ステップS60の判断が肯定されて、ステップS62に移行すると、類似度算出部131は、現在読み出している学習画像に対応する画像特徴分布データ(画像特徴分布指標)を記憶部150から読み出し、ステップS56で生成したNG教示領域データ(NG教示領域指標)との類似度を算出する。なお、類似度算出部131は、算出した類似度を記憶部150に格納しておく。その後は、ステップS66に移行する。
一方、ステップS60の判断が否定されて、ステップS64に移行すると、画像特徴量抽出部123は、図7(b)に示すような画像特徴分布データ(画像特徴分布指標)を正常範囲算出用として、記憶部150に格納する。ステップS64の後は、ステップS66に移行する。
ステップS66に移行すると、GP学習制御部121は、学習画像が終了したか否か、すなわちステップS50において全ての学習画像を読み出したか否かを判断する。このステップS66の判断が否定された場合には、ステップS50に戻り、ステップS66の判断が肯定されるまで、ステップS50〜S66の処理・判断を繰り返す。一方、ステップS66の判断が肯定されると、図11のステップS70に移行する。
図11のステップS70に移行すると、画像特徴量抽出部123が、画像特徴分布データの正常範囲を算出する。具体的には、画像特徴量抽出部123は、記憶部150から、正常範囲算出用の画像特徴分布データ(図7(b))を複数取得し、基本統計量(平均や標準偏差など)を算出して、画像特徴分布データの正常範囲とする。なお、画像特徴分布データの正常範囲は、OK画像を画像変換して得られた画像から算出した各分割領域の画像特徴量を示す第3データであるといえる。
次いで、ステップS72では、識別器パラメータ設定部125が、識別器の学習パラメータの設定を行う。次いで、ステップS74では、識別器生成部126が、識別器を生成する。
次いで、ステップS76では、GP学習制御部121が、正解率を算出する。すなわち、学習画像それぞれがNG画像であるかOK画像であるかを、例えば交差検定法を用いて判定し、その判定結果が各学習画像に付加された良否を示すラベルと一致した割合を正解率として算出する。次いで、ステップS78では、GP学習制御部121が、識別器のペナルティ項を算出する。
次いで、ステップS80では、類似度算出部131が、前述したようにして、画像特徴分布データとNG教示領域データとの類似度(総合類似度)の算出を行う。次いで、ステップS82では、適応度算出部132が、算出した類似度(総合類似度)に基づくペナルティ項を算出する。そして、ステップS84では、適応度算出部132が、上式(1)に基づいて、適応度を計算する。
以上のようにして、図10、図11の処理(ステップS28の処理)が行われた後は、図9のステップS30に移行する。ステップS30に移行すると、GP学習制御部121が、生成した子個体のすべてを選択済みか否かを判断する。このステップS30の判断が否定された場合には、ステップS26に戻り、ステップS27〜S30を繰り返し実行することで、生成した子個体のすべてに対するステップS28の処理を実行する。一方、ステップS30の判断が肯定された場合には、ステップS32に移行する。
ステップS32に移行すると、GP学習制御部121は、ステップS26で生成された子個体の中から、適応度が最も高い子個体を生存させる子個体として選択する。さらに、GP学習制御部121は、残りの子個体の中から生存させる個体をさらに1つ選択する。この選択処理では、例えば、適応度に応じた確率で個体が選択される。GP学習制御部121は、ステップS24で選択された親個体を、生存させる2つの個体に入れ替える。すなわち、GP学習制御部121は、ステップS32において、NG教示領域データ(NG教示領域指標)と画像特徴分布データ(画像特徴分布指標)との類似度に基づく子個体の適応度を、遺伝的プログラミングに利用しているといえる。
次いで、ステップS34では、GP学習制御部121は、親個体の最大適応度が閾値より大きいか否かを判断する。このステップS34の判断が否定された場合には、ステップS24に戻るが、肯定された場合には、ステップS36に移行する。ステップS36に移行すると、GP学習制御部121は、最良個体、すなわち、適応度が最大の個体を記憶部150に保存する。この個体には、ステップS28の処理において生成された識別器を示す識別器情報も含まれる。
以上の処理により、学習処理が終了する。
(画像検査処理部112の処理)
次に、学習処理により得られた個体(最良個体)を用いた画像検査処理部112の処理について、図12のフローチャートに沿って説明する。
図12の処理では、まずステップS102において、画像検査処理部112が、記憶部150から最良個体の情報を読み出し、読み出した情報に基づいて、最良個体の木構造を画像検査に用いる木構造として設定する。
次いで、ステップS104では、画像検査処理部112が、読み出した最良個体の情報に基づいて、最良個体の識別器を画像検査に用いる識別器として設定する。
次いで、ステップS106では、画像検査処理部112が、記憶部150から画像特徴分布データの正常範囲を読み出す。なお、ここで読み出す画像特徴分布データの正常範囲は、ステップS70において算出されたデータである。
次いで、ステップS108では、画像検査処理部112が、画像入力部111を介して、検査対象の画像を取得する。この画像は、例えば、カメラ107aによって撮像された画像である。
次いで、ステップS110では、画像検査処理部112が、検査対象の画像をステップS102で設定された画像変換フィルタを用いて画像変換する。また、ステップS112では、画像検査処理部112が、設定されている特徴抽出フィルタにしたがって、変換後の画像の特徴量を抽出する。さらに、ステップS114では、画像検査処理部112が、特徴量データを識別器に入力する。そして、ステップS116では、画像検査処理部112が、識別器による分類を実行する。すなわち、画像検査処理部112は、変換後の画像をOK画像又はNG画像に分類する。
次いで、ステップS118では、画像検査処理部112が、分割領域の画像特徴量を算出する。次いで、ステップS120では、画像検査処理部112が、分割領域単位でのNG部分の推定を行う。すなわち、画像検査処理部112は、図7(e)に示すように分割領域単位で異常スコアを求め、異常スコアが予め定めた閾値を超えている分割領域をNG部分と推定する。なお、本ステップS120の処理は、検査対象の画像の各分割領域の正常又は異常を判定する処理であるといえる。
その後は、ステップS122において、画像検査処理部112が、画像検査結果を表示装置104a上に出力する。画像検査結果には、良否判定結果(OK画像かNG画像か)のほか、ステップS120で推定されたNG部分の情報(図7(f)のようにNG部分をオーバーレイ表示した検査対象の画像)も含まれる。
以上のように、ステップS122までの処理が終了すると、図12の全処理を終了する。
(具体例)
図14〜図16には、疑似的なNG画像について、学習および良否判定を実施した結果が示されている。本例では、図14(a)に示すように、学習画像40枚(OK画像20枚、NG画像20枚)で学習し、未知の評価用画像160枚(OK画像80枚、NG画像80枚)で判定精度を調べた。
図14(b)は、学習画像のOK画像の例を示し、図14(c)は、学習画像のNG画像の例を示している。NG画像は、図4(a)と同様、円形の対象物の表面に打痕あるいは異物となる楕円が描画されているようなテスト画像である。
NG画像に対して、ユーザは、図14(b)に示すように、NG領域を矩形で教示した。また、ROIの分割数は5×5とした。
図14(d)には、NG領域を教示せずに、OK又はNGの正解だけを教示して学習した場合の良否判定結果(正解率)が示され、図14(e)には、NG領域と、OK又はNGの正解とを教示して学習した場合の良否判定結果(正解率)が示されている。なお、図14(d)、図14(e)では、学習序盤や中盤における学習結果も含めて、評価用画像に対して良否判定を行った結果が示されている。なお、世代番号が小さいほど、学習序盤を意味し、世代番号が大きいほど、学習終盤を意味する。
図14(d)、図14(e)からは、NG領域の教示を行って学習した方(図14(e)の方)が、最終的な正解率を高くでき、また、早い段階で正解率100%に達していることから、学習時間を短縮できることがわかる。
図15には、NG領域を教示しない場合の最終世代(第400世代)における、NG部分の推定をOK画像とNG画像それぞれについて実施した結果を示す図である。また、図16には、NG領域を教示する場合の最終世代(第268世代)における、NG部分の推定をOK画像とNG画像それぞれについて実施した結果を示す図である。なお、図15、図16のNG画像は、NG領域教示なしの場合にOK画像と判定され(誤判定され)、NG領域教示ありの場合にNG画像と判定されたNG画像である。
図15の中段と、図16の中段とを比較するとわかるように、NG領域を教示しないで学習した場合には、特徴抽出画像において、判定に無関係な対象物の外径部分が特徴部分として抽出されており、NG領域を教示して学習した場合には、NG部分に限定して特徴部分を抽出できていることがわかる。
また、図15の下段と、図16の下段を比較するとわかるように、NG領域を教示して学習した場合(図16)には、キズや異物が存在する部分のみをNG部分と推定できるが、NG領域を教示しないで学習した場合(図15)には、キズや異物が存在する部分をNG部分と推定できず、また、キズや異物が存在する部分以外をNG部分と推定してしまうことが分かった。なお、図15の下段と図16の下段においては、白線矩形の線が太いほど異常スコアが大きいことを意味している。
以上のように、NG領域を教示して学習する場合の方が、良否判定の精度が高く、NG部分の推定も正確であることが確認できた。
以上、詳細に説明したように、本第1の実施形態によると、遺伝的プログラミングに基づいて画像分類プログラムを自動生成する際に、画像分類装置100は、学習画像のNG領域の入力を受け付け(S18)、学習画像(ROI)を分割した分割領域それぞれと、NG領域との重なり具合を示すNG教示領域データ(NG教示領域指標)を作成する(S20)。また、画像分類装置100は、学習画像を所定の画像分類プログラム(子個体)により画像変換し、得られた画像から、分割領域それぞれの画像特徴量を算出し、分割領域それぞれに対応する画像特徴分布データ(画像特徴分布指標)を作成する(S58)。そして、画像分類装置100は、NG教示領域データ(NG教示領域指標)と画像特徴分布データ(画像特徴分布指標)との類似度を算出し(S80)、類似度に基づいて画像分類プログラム(子個体)を評価した結果(適応度)を、遺伝的プログラミングの実行に利用する(S82、S84)。これにより、本第1の実施形態では、教示したNG領域において差異が顕著に現れるような画像変換処理を優先的に学習することができるため、真のNG部分に基づいた学習結果(画像分類プログラム)を得ることができるとともに、学習速度の高速化も実現できる。また、学習結果に基づいて画像の良否判定を行うことで、判定精度を向上させることができる。
また、本第1の実施形態では、画像分類装置100は、自動生成された画像分類プログラムを用いて、全ての分割領域が正常な学習画像を画像変換し、得られた画像から、画像特徴量分布データの正常範囲を算出し(S106)、検査対象の画像の画像特徴分布データと、正常範囲との比較結果に基づいて、検査対象の画像のNG部分を推定する(S120)。これにより、検査対象の画像内のNG部分を分割領域の単位で精度よく推定することができる。また、領域の分割や、画像特徴分布データの算出方法は、学習時と共通であるため、計算コストなどを抑えることができる。
また、本第1の実施形態では、ユーザが指定するNG領域が、矩形や円形、楕円形などの簡単な形状であるため、教示作業の負担を軽減することができるとともに、NG領域の指標化の計算を簡単にすることができる。
《第2の実施形態》
以下、第2の実施形態について、図17〜図19に基づいて説明する。
上述した第1の実施形態では、学習画像として原画像をそのまま木構造フィルタ列へ入力することとしていたが、本第2の実施形態では、図17に示すように、原画像に対して事前処理を行い、事前処理が施された画像を学習画像として入力する。
入力画像の事前処理は、原画像に対して画像全体の平均輝度のばらつきを抑える処理であり、例えば、画像1枚単位で平均差分処理あるいは正規化処理である。ここで、平均差分処理は、平均輝度を調整する処理であり、正規化処理とは、平均差分処理を行った上で、輝度のばらつきで除する処理である。画像全体の平均輝度がばらついている場合には、画像1枚単位で平均差分処理や正規化処理を行うことが有効である。
また、入力画像の事前処理としては、画像1枚単位ではなく、例えば、学習時のOK画像全体の平均画像を用いて平均差分処理あるいは正規化処理を実施することとしてもよい。OK画像全体の平均画像を用いて平均差分画像を作成した場合、入力画像を全く変換せずに特徴抽出を行っても、その画像特徴量を正常分布からの変化量として得ることができる。したがって、簡単な画像変換でも、NG領域と画像特徴量との類似度を高くすることができる。
図18には、本第2の実施形態による学習及び良否判定をテストした結果が示されている。図18(a)に示すように、このテストに用いた原画像は、円形部品の表面にキズ不良が生じている画像であり、OK画像であっても小さなキズが多数存在するため、所定の長さや所定の太さ以上の線分だけをNGと扱うこととした。
図18(b)には、NG画像に対してNG領域を教示した例が示されている。また、図18(c)には、図18(b)の原画像に対して事前処理を行い、その結果得られた入力画像が示されている。このテストでは、事前処理として、画像1枚単位で平均輝度を合わせた後に、OK画像全体の平均画像との差分をとる処理を採用した。なお、OK画像全体の平均画像との差分は絶対値で求めているため、平均画像に一致していればゼロ、平均輝度より明るい画素や暗い画素はどちらもゼロ以上の輝度値となるように変換される。
第1の実施形態(図14(a))と同様、学習画像40枚を用い、全く同じ初期個体からNG領域の教示なしと教示ありの両方で学習を行って、評価用画像160枚の良否判定を比較した結果を図18(d)、図18(e)に示す。図18(d)、図18(e)に示すように、平均的な判定精度および最終的な判定精度の両方において、NG領域を教示して学習した方が高い精度を得ることができることがわかった。
図19には、NG領域を教示した場合におけるNG部分の推定結果が示されている。本テストにおいては、OK画像にも小さなキズ等がわずかに存在しているため、OK画像及びNG画像のいずれにおいてもNG部分がやや多めに推定されるが、NG画像においてNG部分を正しく推定することができることが分かった。
《第3の実施形態》
次に、第3の実施形態について、図20に基づいて説明する。
本第3の実施形態では、図20に示すように、原画像に対して位置合わせを自動的に行う事前処理を実行し、事前処理が施された画像を入力画像とする。
すなわち、本第3の実施形態では、対象の物体の画像をテンプレート画像として与えておき、事前処理においては、GP学習制御部121が、原画像上でテンプレートマッチングにより探索した位置をROIとして設定する。そして、ROIが設定された画像を入力画像として、第1の実施形態と同様の処理を実行する。このようにすることで、例えば、実際の生産ラインの外観検査などにおいて、対象物の位置ずれなどに合わせてROIを自動的に正しく設定することが可能となる。
なお、学習時に作成したOK画像の平均画像をテンプレート画像として保存し、良否判定時にはそのテンプレート画像を用いてROIを設定するようにしてもよい。
なお、本第3の実施形態では、GP学習制御部121が、原画像と、テンプレート画像とを用いたテンプレートマッチングにより、原画像からROIを抽出する抽出部として機能している。
《第4の実施形態》
上述した第1の実施形態及び第2、第3の実施形態では、各領域の画像特徴量を算出する際に用いる特徴抽出フィルタ(図13のフィルタF0)として、木構造フィルタ列とは独立のものを用意していた。これに対し、本第4の実施形態では、フィルタF0の機能を木構造フィルタ列に組み込むこととしている。
図21には、第4の実施形態に係る木構造フィルタ列が示されている。本第4の実施形態では、分割領域の特徴量を抽出するフィルタを複数用意しておき、図21中の点線円で示すフィルタとして、用意しておいた複数のフィルタのいずれかを使用する(図21では、フィルタF4を使用している)。
なお、この画像特徴抽出フィルタ(F4)は、通常のフィルタと同様に学習しながら突然変異により変更してもよいし、1つのフィルタで固定してもよい。いずれの場合でも、この特徴抽出フィルタの出力が、NG教示領域との類似度を計算する際の画像特徴量として用いられるとともに、SVM識別器を生成する際の画像特徴量としても用いられることになる。
(変形例)
以下、変形例について説明する。
(1) 分割領域の画像特徴量
図4(e)などの処理においては、各分割領域の画像特徴量を抽出しているが、その画像特徴量として、各分割領域内の平均輝度、輝度のばらつき、輝度範囲、あるいは、それらの組合せを使用することができる。
(2) NG教示領域データと画像特徴量分布データとの類似度演算
図4(d)、図4(e)などのデータに基づいて類似度を算出する場合、前述した正規化相関値やコサイン類似度のほかにも、差分二乗和、差分絶対値和などベクトル間の距離を求める各種の演算を用いることができる。なお、演算の種類に応じて、適応度への反映のさせ方を調節する必要はある。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
100 画像分類装置(情報処理装置)
112 画像検査処理部(判定部)
121 GP学習制御部(処理部、抽出部)
123 画像特徴量抽出部(第3データ作成部)
127 NG領域入力部(受付部)
129 NG領域指標算出部(第1データ作成部)
130 分割領域特徴量抽出部(第2データ作成部)
131 類似度算出部(算出部)

Claims (10)

  1. 要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理装置であって、
    学習画像において特徴的な部分を含む特徴領域の指定を受け付ける受付部と、
    前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第1データを作成する第1データ作成部と、
    前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第2データを作成する第2データ作成部と、
    前記第1データと前記第2データとの類似度を算出する算出部と、
    前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する処理部と、
    を備える情報処理装置。
  2. 自動生成された画像分類プログラムを用いて、正常な画像を画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第3データを作成する第3データ作成部と、
    処理対象の画像の前記分割領域それぞれの画像特徴量と、前記第3データとの比較結果に基づいて、前記処理対象の画像の各分割領域の正常又は異常を判定する判定部と、を更に備える請求項1に記載の情報処理装置。
  3. 前記特徴領域は、矩形、円形又は楕円形の領域であることを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記処理部は、前記類似度が高いほど前記所定の画像分類プログラムの評価の高さを示す適応度が高くなるように補正する、ことを特徴とする請求項1〜3のいずれか一項に記載の情報処理装置。
  5. 前記学習画像は、原画像に対して画像全体の平均輝度のばらつきを抑える事前処理を実行した後の画像であることを特徴とする請求項1〜4のいずれか一項に記載の情報処理装置。
  6. 前記学習画像は、原画像の一部であり、
    前記原画像と、予め用意しておいたテンプレート画像とを用いたテンプレートマッチングにより、前記原画像から前記学習画像を抽出する抽出部を更に備える請求項1〜4のいずれか一項に記載の情報処理装置。
  7. 前記第2データ作成部が前記分割領域それぞれの画像特徴量を算出する際に用いる特徴量フィルタは、予め定められた特徴量フィルタであることを特徴とする請求項1〜6のいずれか一項に記載の情報処理装置。
  8. 前記第2データ作成部が前記分割領域それぞれの画像特徴量を算出する際に用いる特徴量フィルタは、前記遺伝的プログラミングによる前記画像分類プログラムの生成処理に応じて変更されることを特徴とする請求項1〜6のいずれか一項に記載の情報処理装置。
  9. 要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理プログラムであって、
    学習画像において特徴的な部分を含む特徴領域の指定を受け付け、
    前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第1データを作成し、
    前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第2データを作成し、
    前記第1データと前記第2データとの類似度を算出し、
    前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する、
    処理をコンピュータに実行させるための情報処理プログラム。
  10. 要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理方法であって、
    学習画像において特徴的な部分を含む特徴領域の指定を受け付け、
    前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第1データを作成し、
    前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第2データを作成し、
    前記第1データと前記第2データとの類似度を算出し、
    前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する
    処理をコンピュータが実行することを特徴とする情報処理方法。
JP2019533730A 2017-07-31 2017-07-31 情報処理装置、情報処理プログラム及び情報処理方法 Active JP6798619B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/027633 WO2019026104A1 (ja) 2017-07-31 2017-07-31 情報処理装置、情報処理プログラム及び情報処理方法

Publications (2)

Publication Number Publication Date
JPWO2019026104A1 JPWO2019026104A1 (ja) 2020-03-19
JP6798619B2 true JP6798619B2 (ja) 2020-12-09

Family

ID=65233555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019533730A Active JP6798619B2 (ja) 2017-07-31 2017-07-31 情報処理装置、情報処理プログラム及び情報処理方法

Country Status (5)

Country Link
US (1) US11055571B2 (ja)
EP (1) EP3664019A4 (ja)
JP (1) JP6798619B2 (ja)
CN (1) CN110914864A (ja)
WO (1) WO2019026104A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6333871B2 (ja) * 2016-02-25 2018-05-30 ファナック株式会社 入力画像から検出した対象物を表示する画像処理装置
JP6792842B2 (ja) * 2017-06-06 2020-12-02 株式会社デンソー 外観検査装置、変換データ生成装置、及びプログラム
WO2019026104A1 (ja) * 2017-07-31 2019-02-07 富士通株式会社 情報処理装置、情報処理プログラム及び情報処理方法
US20220044147A1 (en) * 2018-10-05 2022-02-10 Nec Corporation Teaching data extending device, teaching data extending method, and program
CN110069347B (zh) * 2019-04-29 2022-10-25 河南科技大学 一种基于过程重要度的线程划分方法
JP7308656B2 (ja) * 2019-05-16 2023-07-14 株式会社キーエンス 画像検査装置
JP7248496B2 (ja) * 2019-05-16 2023-03-29 株式会社キーエンス 画像検査装置
JP2020187657A (ja) * 2019-05-16 2020-11-19 株式会社キーエンス 画像検査装置
JP7006954B2 (ja) * 2019-09-22 2022-01-24 株式会社リョーワ 良否判定システム、サーバ及び良否判定方法
JP2021051617A (ja) * 2019-09-26 2021-04-01 東洋製罐グループホールディングス株式会社 画像処理システム、及び画像処理プログラム
JP2021117548A (ja) * 2020-01-22 2021-08-10 富士通株式会社 画像処理装置、画像処理方法及び画像処理プログラム
US20210248463A1 (en) * 2020-02-06 2021-08-12 Socionext Inc. Neural network derivation method
JP2022114332A (ja) * 2021-01-26 2022-08-05 日東電工株式会社 クラス判定システム、クラス判定方法及びクラス判定プログラム
US11521313B2 (en) * 2021-02-11 2022-12-06 Panasonic Intellectual Property Management Co., Ltd. Method and system for checking data gathering conditions associated with image-data during AI enabled visual-inspection process

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4428077A (en) * 1979-09-03 1984-01-24 Hitachi, Ltd. Line recognition method
US5485531A (en) * 1987-12-17 1996-01-16 Fuji Electric Co., Ltd. Character-feature extraction device
CA2077969C (en) * 1991-11-19 1997-03-04 Daniel P. Huttenlocher Method of deriving wordshapes for subsequent comparison
JP3744464B2 (ja) * 2002-05-20 2006-02-08 ソニー株式会社 信号記録再生装置及び方法、信号再生装置及び方法、並びにプログラム及び記録媒体
US7167587B2 (en) * 2002-08-30 2007-01-23 Lockheed Martin Corporation Sequential classifier for use in pattern recognition system
JP2004239870A (ja) * 2003-02-10 2004-08-26 Seiko Epson Corp 空間フィルタ、空間フィルタの作成方法、空間フィルタ作成プログラム、画面欠陥の検査方法及び装置
JP4217964B2 (ja) * 2003-08-20 2009-02-04 ソニー株式会社 情報信号処理装置および情報信号処理方法
US7668376B2 (en) * 2004-06-30 2010-02-23 National Instruments Corporation Shape feature extraction and classification
JP2006260410A (ja) * 2005-03-18 2006-09-28 Sharp Corp 画像処理アルゴリズムの評価装置、生成装置、評価方法、生成方法、コンピュータをその評価装置として機能させるためのプログラム、およびコンピュータをその生成装置として機能させるためのプログラム
JP2007200246A (ja) 2006-01-30 2007-08-09 Sharp Corp 画像処理アルゴリズムの評価方法、生成方法、装置、プログラムおよび記録媒体
JP4392622B2 (ja) * 2007-10-22 2010-01-06 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US8131657B2 (en) 2007-10-22 2012-03-06 Sony Corporation Information processing device, information processing method, and program
JP4670976B2 (ja) * 2008-10-03 2011-04-13 ソニー株式会社 学習装置および方法、認識装置および方法、プログラム、並びに記録媒体
JP2011216080A (ja) * 2010-03-18 2011-10-27 Canon Inc 画像処理装置、画像処理方法、および記憶媒体
JP5548508B2 (ja) * 2010-04-21 2014-07-16 日本放送協会 画像分類装置及びプログラム
JP2013125524A (ja) * 2011-12-16 2013-06-24 Hitachi High-Technologies Corp 学習用装置、および、遺伝子学習方法
JP5894492B2 (ja) * 2012-04-19 2016-03-30 日本放送協会 画像処理装置、画像検索装置及びプログラム
JP6188400B2 (ja) * 2013-04-26 2017-08-30 オリンパス株式会社 画像処理装置、プログラム及び画像処理方法
CN108140133B (zh) 2015-10-22 2022-03-22 富士通株式会社 程序生成装置、程序生成方法及记录介质
US9904874B2 (en) * 2015-11-05 2018-02-27 Microsoft Technology Licensing, Llc Hardware-efficient deep convolutional neural networks
WO2019026104A1 (ja) * 2017-07-31 2019-02-07 富士通株式会社 情報処理装置、情報処理プログラム及び情報処理方法
KR101977174B1 (ko) * 2017-09-13 2019-05-10 이재준 영상 분석 방법, 장치 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
CN110914864A (zh) 2020-03-24
WO2019026104A1 (ja) 2019-02-07
EP3664019A1 (en) 2020-06-10
US20200125889A1 (en) 2020-04-23
US11055571B2 (en) 2021-07-06
EP3664019A4 (en) 2020-08-26
JPWO2019026104A1 (ja) 2020-03-19

Similar Documents

Publication Publication Date Title
JP6798619B2 (ja) 情報処理装置、情報処理プログラム及び情報処理方法
CN110428475B (zh) 一种医学图像的分类方法、模型训练方法和服务器
CN110619618B (zh) 一种表面缺陷检测方法、装置及电子设备
JP7028322B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6088792B2 (ja) 画像検出装置及び制御プログラム並びに画像検出方法
CN108280455B (zh) 人体关键点检测方法和装置、电子设备、程序和介质
US9443287B2 (en) Image processing method and apparatus using trained dictionary
JP7058941B2 (ja) 辞書生成装置、辞書生成方法、及びプログラム
JP5333589B2 (ja) 代表特徴抽出システムおよび方法
CN105225222B (zh) 对不同图像集的感知视觉质量的自动评估
JP2012032370A (ja) 欠陥検出方法、欠陥検出装置、学習方法、プログラム、及び記録媒体
JPWO2017017722A1 (ja) 処理装置、処理方法及びプログラム
US11348349B2 (en) Training data increment method, electronic apparatus and computer-readable medium
JP5214679B2 (ja) 学習装置、方法及びプログラム
US20230021551A1 (en) Using training images and scaled training images to train an image segmentation model
CN111127400A (zh) 一种乳腺病变检测方法和装置
US9424484B2 (en) Feature interpolation
JP2007200246A (ja) 画像処理アルゴリズムの評価方法、生成方法、装置、プログラムおよび記録媒体
CN115294405B (zh) 农作物病害分类模型的构建方法、装置、设备及介质
WO2016092783A1 (en) Information processing apparatus, method for processing information, discriminator generating apparatus, method for generating discriminator, and program
CN116129417A (zh) 一种基于低质量图像的数字仪表读数检测方法
CN113627538B (zh) 训练非对称生成对抗网络产生图像的方法及电子装置
US11954865B2 (en) Image processing apparatus, image processing method, and storage medium for foreground extraction
JP5391876B2 (ja) 代表特徴抽出システム、方法およびプログラム
JP6453618B2 (ja) 算出装置、方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191111

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: 20201020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201102

R150 Certificate of patent or registration of utility model

Ref document number: 6798619

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150