(57)【要約】  精度よく画像を分類できる画像分類プログラムを自動生成するため、遺伝的プログラミングに基づいて画像分類プログラムを自動生成する際に、画像分類装置は、学習画像のＮＧ領域の入力を受け付け、学習画像（ＲＯＩ）を分割した分割領域それぞれと、ＮＧ領域との重なり具合を示すＮＧ教示領域データを作成する。また、画像分類装置は、学習画像を所定の画像分類プログラム（子個体）により画像変換し、得られた画像から、分割領域それぞれの画像特徴量を算出し、分割領域それぞれに対応する画像特徴分布データを作成する。そして、画像分類装置は、ＮＧ教示領域データと画像特徴分布データとの類似度を算出し、類似度に基づいて画像分類プログラム（子個体）を評価した結果（適応度）を、遺伝的プログラミングの実行に利用する。
2019026104.tif 000002
【特許請求の範囲】
【請求項１】
要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理装置であって、
学習画像において特徴的な部分を含む特徴領域の指定を受け付ける受付部と、
前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第１データを作成する第１データ作成部と、
前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第２データを作成する第２データ作成部と、
前記第１データと前記第２データとの類似度を算出する算出部と、
前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する処理部と、
を備える情報処理装置。
【請求項２】
自動生成された画像分類プログラムを用いて、正常な画像を画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第３データを作成する第３データ作成部と、
処理対象の画像の前記分割領域それぞれの画像特徴量と、前記第３データとの比較結果に基づいて、前記処理対象の画像の各分割領域の正常又は異常を判定する判定部と、を更に備える請求項１に記載の情報処理装置。
【請求項３】
前記特徴領域は、矩形、円形又は楕円形の領域であることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記処理部は、前記類似度が高いほど前記所定の画像分類プログラムの評価の高さを示す適応度が高くなるように補正する、ことを特徴とする請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
前記学習画像は、原画像に対して画像全体の平均輝度のばらつきを抑える事前処理を実行した後の画像であることを特徴とする請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
前記学習画像は、原画像の一部であり、
前記原画像と、予め用意しておいたテンプレート画像とを用いたテンプレートマッチングにより、前記原画像から前記学習画像を抽出する抽出部を更に備える請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項７】
前記第２データ作成部が前記分割領域それぞれの画像特徴量を算出する際に用いる特徴量フィルタは、予め定められた特徴量フィルタであることを特徴とする請求項１〜６のいずれか一項に記載の情報処理装置。
【請求項８】
前記第２データ作成部が前記分割領域それぞれの画像特徴量を算出する際に用いる特徴量フィルタは、前記遺伝的プログラミングによる前記画像分類プログラムの生成処理に応じて変更されることを特徴とする請求項１〜６のいずれか一項に記載の情報処理装置。
【請求項９】
要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理プログラムであって、
学習画像において特徴的な部分を含む特徴領域の指定を受け付け、
前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第１データを作成し、
前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第２データを作成し、
前記第１データと前記第２データとの類似度を算出し、
前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する、
処理をコンピュータに実行させるための情報処理プログラム。
【請求項１０】
自動生成された画像分類プログラムを用いて、正常な画像を画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第３データを作成し、
処理対象の画像の前記分割領域それぞれの画像特徴量と、前記第３データとの比較結果に基づいて、前記処理対象の画像の各分割領域の正常又は異常を判定する、
処理を前記コンピュータに更に実行させることを特徴とする請求項９に記載の情報処理プログラム。
【請求項１１】
前記特徴領域は、矩形、円形又は楕円形の領域であることを特徴とする請求項９又は１０に記載の情報処理プログラム。
【請求項１２】
前記利用する処理では、前記類似度が高いほど前記所定の画像分類プログラムの評価の高さを示す適応度が高くなるように補正する、ことを特徴とする請求項９〜１１のいずれか一項に記載の情報処理プログラム。
【請求項１３】
前記学習画像は、原画像に対して画像全体の平均輝度のばらつきを抑える事前処理を実行した後の画像であることを特徴とする請求項９〜１２のいずれか一項に記載の情報処理プログラム。
【請求項１４】
前記学習画像は、原画像の一部であり、
前記原画像と、予め用意しておいたテンプレート画像とを用いたテンプレートマッチングにより、前記原画像から前記学習画像を抽出する、ことを特徴とする請求項９〜１２のいずれか一項に記載の情報処理プログラム。
【請求項１５】
前記第２データを作成する処理において、前記分割領域それぞれの画像特徴量を算出する際に用いる特徴量フィルタは、予め定められた特徴量フィルタであることを特徴とする請求項９〜１４のいずれか一項に記載の情報処理プログラム。
【請求項１６】
前記第２データを作成する処理において、前記分割領域それぞれの画像特徴量を算出する際に用いる特徴量フィルタは、前記遺伝的プログラミングによる前記画像分類プログラムの生成処理に応じて変更されることを特徴とする請求項９〜１４のいずれか一項に記載の情報処理プログラム。
【請求項１７】
要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理方法であって、
学習画像において特徴的な部分を含む特徴領域の指定を受け付け、
前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第１データを作成し、
前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第２データを作成し、
前記第１データと前記第２データとの類似度を算出し、
前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する
処理をコンピュータが実行することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
従来、所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術がある。この技術は、入力画像と目標となる処理結果（目標画像等）を用いて、画像処理プログラムを遺伝的プログラミングによって最適化していくものである。【０００３】
また、画像処理プログラムの自動生成の一つとして、画像のクラス分類（カテゴリー分類）を行う画像分類プログラムの自動生成法が提案されている（例えば、特許文献１等参照）。画像分類プログラムを用いることで、例えば、画像に写った対象物を良品と不良品の２クラスに分類することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１７／０６８６７５号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の良否判定アルゴリズム自動生成では、複数枚の学習画像とそれぞれに写っている対象物が良品か不良品かのみを示す教示データを用いて学習を実施していた。しかしながら、このような方法では、本来不良品と判断される原因となった部分のほかに、良否とは無関係の差異を良否判定基準として学習に利用してしまう場合があり、判定精度の低下を招くおそれがあった。【０００６】
１つの側面では、本発明は、精度よく画像を分類できる画像分類プログラムを自動生成することが可能な情報処理装置、情報処理プログラム及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様では、情報処理装置は、要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理装置であって、学習画像において特徴的な部分を含む特徴領域の指定を受け付ける受付部と、前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第１データを作成する第１データ作成部と、前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第２データを作成する第２データ作成部と、前記第１データと前記第２データとの類似度を算出する算出部と、前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する処理部と、を備えている。
【発明の効果】
【０００８】
精度よく画像を分類できる画像分類プログラムを自動生成することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る画像分類装置のハードウェア構成の一例を示す図である。
【図２】遺伝的プログラミングにおいて取り扱う個体の木構造フィルタ列の基本構成の例を示す図である。
【図３】図３（ａ）〜図３（ｃ）は、ＮＧ領域の教示方法について説明するための図である。
【図４】図４（ａ）〜図４（ｄ）は、ＮＧ領域の指標化について説明するための図であり、図４（ｅ）は、分割領域の画像特徴量の指標化について説明するための図である。
【図５】図５（ａ）、図５（ｂ）は、類似度計算の具体例について説明するための図（その１）である。
【図６】図６（ａ）、図６（ｂ）は、類似度計算の具体例について説明するための図（その２）である。
【図７】図７（ａ）〜図７（ｆ）は、ＮＧ部分の推定について説明するための図である。
【図８】画像分類装置が備える処理機能の構成例を示すブロック図である。
【図９】プログラム生成部の処理手順の例を示すフローチャートである。
【図１０】図９のステップＳ２８の具体的な処理を示すフローチャート（その１）である。
【図１１】図９のステップＳ２８の具体的な処理を示すフローチャート（その２）である。
【図１２】画像検査処理部の処理手順の例を示すフローチャートである。
【図１３】第１の実施形態において画像特徴分布データ（画像特徴分布指標）の生成に用いる画像特徴量を抽出するためのフィルタについて説明するための図である。
【図１４】図１４（ａ）〜図１４（ｅ）は、疑似的なＮＧ画像について、学習および良否判定を実施した結果を説明するための図（その１）である。
【図１５】疑似的なＮＧ画像について、学習および良否判定を実施した結果を説明するための図（その２）である。
【図１６】疑似的なＮＧ画像について、学習および良否判定を実施した結果を説明するための図（その３）である。
【図１７】第２の実施形態の概要を示す図である。
【図１８】図１８（ａ）〜図１８（ｅ）は、第２の実施形態による学習及び良否判定をテストした結果を示す図である。
【図１９】第２の実施形態において、ＮＧ領域を教示した場合におけるＮＧ部分の推定結果を示す図である。
【図２０】第３の実施形態について説明するための図である。
【図２１】第４の実施形態について説明するための図である。
【発明を実施するための形態】
【００１０】
《第１の実施形態》
以下、情報処理装置としての画像分類装置の第１の実施形態について、図１〜図１６に基づいて詳細に説明する。第１の実施形態に係る画像分類装置は、要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する機能と、生成された画像分類プログラムを実行して画像分類処理を実行する機能とを備える。
【００１１】
図１は、第１の実施形態に係る画像分類装置１００のハードウェア構成の一例を示す図である。画像分類装置１００は、プロセッサ１０１と、ＲＡＭ１０２と、ＨＤＤ１０３と、グラフィック処理装置１０４と、入力インタフェース１０５と、読み取り装置１０６と、通信インタフェース１０７と、ネットワークインタフェース１０８と、を備える。画像分類装置１００の各部は、バス１０９に接続されている。
【００１２】
プロセッサ１０１は、画像分類装置１００全体を制御する。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等である。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００１３】
ＲＡＭ１０２は、画像分類装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００１４】
ＨＤＤ１０３は、画像分類装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００１５】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１０４ａの画面に表示させる。表示装置としては、液晶ディスプレイや有機ＥＬ（ElectroLuminescence）ディスプレイなどがある。
【００１６】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００１７】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００１８】
通信インタフェース１０７は、接続された外部デバイスとの間でデータの送受信を行う。本第１の実施形態では、通信インタフェース１０７には、外部デバイスとしてカメラ１０７ａが接続され、通信インタフェース１０７は、カメラ１０７ａから送信された画像データをプロセッサ１０１に送信する。
【００１９】
ネットワークインタフェース１０８は、ネットワーク１０８ａを介して他の装置との間でデータの送受信を行う。
【００２０】
画像分類装置１００は、入力画像を複数のクラスのうちの１つに分類するための画像分類プログラムを、遺伝的プログラミングによって自動的に生成する。生成された画像分類プログラムに基づく画像分類処理には、例えば、入力画像に写っている製品や部品が良品か不良品かを判定する処理や、入力画像に顔が写っているか否かを判定する処理などが含まれる。
【００２１】
画像分類プログラムによって実現される処理には、学習画像を用いた学習によって識別器を生成する識別器生成処理と、識別器に入力する特徴情報を学習画像に基づいて生成する前処理とが含まれる。高精度な画像分類を実現する上で、学習画像からどのような特徴量を抽出して用いるかという点と、得られた特徴量に基づいてどのような識別器を生成するかという点の両方が重要である。画像分類装置１００は、遺伝的プログラミングにより、識別器の生成アルゴリズムと前処理アルゴリズムの最適な組み合わせを探索する。これにより、高精度な画像分類が可能な識別器の処理を実現する画像分類プログラムが生成される。
【００２２】
（遺伝的プログラミングにおいて取り扱う個体について）
図２は、遺伝的プログラミングにおいて取り扱う個体の木構造フィルタ列の基本構成の例を示す図である。図２に示すように、個体は、各ノードの要素としてプログラムモジュールが設定された木構造によって表され、この木構造では、入力画像に様々な画像変換を加えて特徴抽出画像を生成し、生成した画像から画像特徴量を抽出し、画像特徴量を組み合わせて特徴ベクトルを作成し、ＳＶＭ識別器によってＯＫ画像とＮＧ画像を判定するための学習あるいは判定を実行する。なお、ＯＫ画像は、良品が写っている画像であり、ＮＧ画像は不良品が写っている画像を意味する。また、個体を表す木構造は、それぞれ１以上の隣接する階層を含む区間（処理）に区分される。本第１の実施形態では、木構造は、そのリーフ側（図２の上側）からルート側（図２の下側）に向かって画像変換処理、画像特徴量抽出処理、入力データ作成処理、ＳＶＭ識別器作成処理に区分される。なお、ＳＶＭ識別器作成処理には、ＳＶＭパラメータ設定処理、ＳＶＭ識別器生成処理、適応度算出処理が含まれる。
【００２３】
ここで、画像変換処理、画像特徴量抽出処理、入力データ作成処理は、識別器に入力するデータを生成するための前処理に対応づけられている。画像変換処理では、画像変換フィルタを用いて、入力画像を特徴抽出に適するように変換する。なお、画像変換フィルタとしては、Ｓｍｏｏｔｈフィルタ、Ｓｏｂｅｌフィルタ、Ｌａｐｌａｃｅフィルタ、Ａｎｄフィルタ、Ｓｕｂフィルタ、Ａｄｄフィルタ、Ｏｒフィルタ、Ｅｒｏｄｅフィルタ、Ｄｉｌａｔｅフィルタ、Ｔｈｒｅｓｈｏｌｄフィルタなどを適用可能である。
【００２４】
画像特徴量抽出処理は、画像変換処理で変換された画像から、特徴抽出フィルタを用いて特徴量を抽出する処理である。特徴抽出フィルタとしては、平均輝度を算出するフィルタ、輝度ヒストグラムを算出するフィルタ、ＦＦＴ（Fast Fourier Transformation）を実行するフィルタなどを適用可能である。また、領域分割数などの制御パラメータが異なる同じ種類のフィルタを適用することもできる。
【００２５】
入力データ作成処理は、画像特徴量抽出処理で抽出された特徴量に基づいて、識別器に入力するための入力データ（特徴ベクトル）を生成する処理である。識別器に入力する入力データを生成するための入力データ生成モジュールとしては、例えば、入力数がそれぞれ１，２のプログラムモジュールや、入力データの正規化、入力データの圧縮などを実行するプログラムモジュールを、用いることができる。
【００２６】
ＳＶＭパラメータ設定処理は、例えば、学習パラメータの絶対値を設定する処理と、学習パラメータの相対値を設定する処理を含む。設定された絶対値が、設定された相対値を用いた加減算やスケーリングなどによって増減されることで、識別器の生成のための学習パラメータが決定される。
【００２７】
ＳＶＭ識別器生成処理は、使用するカーネル関数や動作モードを決定する。カーネル関数としては、例えば、ＬＩＮＥＡＲカーネル、ＰＯＬＹＮＯＭＩＡＬカーネル、ＲＢＦ（Radial Basis Function）カーネル、ＳＩＧＭＯＩＤカーネルなどを適用可能である。また、動作モードとしては、木構造とＳＶＭ識別器の学習や、入力画像の良否判定が決定される。
【００２８】
適応度算出処理は、ＳＶＭ識別器生成処理で生成された識別器情報にしたがって、入力データ作成処理で作成された入力データに基づいて、学習画像の良否（ＯＫ画像又はＮＧ画像）を判定する分類処理を実行し、分類処理による分類結果と、学習画像に付加されたラベルが示す良否とを比較して、分類結果が正解か不正解かを判定する。そして、適応度算出処理は、交差検定などを用いて判定を複数回実行して学習画像に対する正解率を算出し、算出された正解率に基づいて、個体の適応度を算出する。ここで、適応度とは、目的とする画像認識結果に対して、自動生成した木構造フィルタ列の出力結果がどの程度一致しているかを示す指標である。本第１の実施形態では、適応度算出処理において、各個体の適応度を算出する際に、ペナルティ項も考慮するものとする。ペナルティ項としては、識別器の特徴次元数、木構造のサイズ（木構造に含まれるノード数またはノードの最大階層数）、ＳＶＭ識別器が用いられる場合のサポートベクトル数などを適用可能である。例えば、一般に、得られるデータと比較して識別器の複雑さが大きくなるほど、過学習が起こりやすくなる。そこで、例えば、特徴次元数が大きいほど、また、木構造のサイズが大きいほど、また、サポートベクトル数が大きいほど、正解率を小さくするように補正して適応度を算出する。なお、特徴次元数は、入力データ作成処理において設定された入力データ生成モジュールに基づいて判別可能である。このように正解率をペナルティ項に応じて補正することで、学習結果の優劣を正確に評価でき、分類精度の高い画像分類プログラムを生成できる。なお、詳細については後述するが、適応度算出処理では、ユーザが画像上で指定するＮＧ領域の位置と、画像変換処理で変換された画像から得られる特徴量の分布との類似度に基づくペナルティ項についても考慮する。この場合、類似度が大きければペナルティ項の値を小さくし、類似度が小さければペナルティ項の値を大きくする。
【００２９】
以上のように図２の木構造のノードがそれぞれ設定されることで、個体が生成される。画像分類装置１００は、まず、個体群に含める複数の初期個体を生成した後、この個体群から選択した親個体を基に子個体を生成し、適応度の高い子個体を個体群内の親個体と入れ替える。画像分類装置１００は、このような処理を繰り返し実行し、一定以上（予め定めた閾値以上）の適応度を有する個体を最良個体として出力する。
【００３０】
このような処理において、親個体を進化させて子個体を生成する際には、親個体の交叉、あるいは、親個体や子個体の突然変異により、親個体の１つ以上のノードの要素が変更される。親個体の進化のためにあるノードの要素が変更される場合には、変更後の要素は、そのノードが属する区間に対してあらかじめ用意されたプログラムモジュールとなる。例えば、突然変異によって画像変換処理の要素を変更する場合、変更後の要素は、画像変換処理に対応する画像変換フィルタの中から選択される。
【００３１】
このような処理により、各区間での処理アルゴリズムの組み合わせが最適化される。例えば、識別器に入力する特徴量を抽出するための処理アルゴリズムと、識別器を生成するための処理アルゴリズムとの組み合わせが最適化される。その結果、画像分類のための適切な識別器の種類や学習パラメータが選択されるとともに、その識別器への入力に適した特徴量を抽出することが可能になる。したがって、分類精度の高い画像分類プログラムを生成することができる。
【００３２】
（処理の概要）
次に、本第１の実施形態における処理の概要について説明する。本第１の実施形態では、学習画像を用いた学習の際に、ユーザが学習画像（ＮＧ画像）のうち、ＮＧと判定される根拠となるＮＧ領域を入力し、画像分類装置１００に対して教示する。なお、ユーザは、良否判定の基準に精通しており、目視によりＮＧ領域を特定し、入力装置１０５ａを介してＮＧ領域の座標を入力するものとする。そして、画像分類装置１００では、学習画像内におけるＮＧ領域の位置と、学習画像を変換した後の画像の特徴量の分布との類似度を算出する。さらに、画像分類装置１００では、算出した類似度を考慮して、個体の適応度を算出し、遺伝的プログラミングによる画像分類プログラムの学習に利用する。
【００３３】
以下、上記各処理について、詳細に説明する。
【００３４】
(1) ＮＧ領域の教示方法
以下、ユーザがＮＧ領域を指定し、画像分類装置１００に教示する方法について説明する。なお、ＮＧ領域は、学習画像において特徴的な部分（キズや異物）を含む領域である。
【００３５】
図３（ａ）には、学習画像の一例が示されている。図３（ａ）の学習画像には、矩形状の対象物が存在しており、この対象物が存在する領域を注目領域（ＲＯＩ：Region of Interest）と呼ぶものとする。なお、本第１の実施形態では、原則として、画像内の任意の位置にＲＯＩが設定されており、そのＲＯＩ内のみを対象として学習や検査等を行うこととするが、ＲＯＩは画像全体であってもよい。
【００３６】
ここで、学習画像のＯＫ画像には対象物に異物やキズは存在せず（図３（ａ）参照）、ＮＧ画像には異物やキズが存在するものとする（図３（ｂ）参照）。この場合において、ユーザがＮＧ領域を教示する際には、図３（ｂ）において破線枠で示すような矩形領域をＮＧ領域として指定することとする。このように、ＮＧ領域を矩形領域とすることで、教示作業を簡素化でき、後述するＮＧ領域の指標化の計算を簡単にすることができる。
【００３７】
この場合において、図３（ｂ）の右端の図において示すように、異物やキズが複雑に分布している場合には、複数の矩形領域（ＮＧ領域）を教示することとしてもよいし、図３（ｂ）の右から２つ目の図において示すように、１つの大きな矩形領域（ＮＧ領域）を教示することとしてもよい。また、図３（ｂ）の左端の図において示すように、一部の異物やキズを含まずに矩形領域（ＮＧ領域）を教示することとしてもよい。なお、本第１の実施形態では、学習後に与えられる検査画像（未知画像）には、学習画像と同じ位置にＮＧ領域が存在するとは限らないし、同一のＮＧ（異物やキズ）が存在するとも限らないことを前提としている。
【００３８】
なお、矩形領域に限らず、図３（ｃ）に示すように、ユーザは、円や楕円形状などの矩形以外の基本的な図形でＮＧ領域を教示してもよい。
【００３９】
(2) ＮＧ領域の指標化
次に、画像分類装置１００が、上述したように教示されたＮＧ領域を指標化する処理について、図４（ａ）〜図４（ｄ）に基づいて説明する。
【００４０】
図４（ａ）には、円形の部品（対象物）が画像中央付近に存在するＮＧ画像が示されている。図４（ａ）のＮＧ画像は、対象物の表面に打痕あるいは異物となる楕円が描画されているようなテスト画像（学習画像）である。この学習画像に対して、ユーザが、図４（ａ）において白色の太線矩形枠で示す領域をＮＧ領域として教示したとする。
【００４１】
また、この画像のＲＯＩは図４（ｂ）の白色の細線矩形枠のように設定されているとする。なお、以下においては、ＲＯＩの範囲内という意味で単純に「画像内」という文言を用いる場合もあるものとする。
【００４２】
画像中のＲＯＩに対しては、分割領域が設定される。例えば、横にＭ分割、縦にＮ分割すると、ＲＯＩはＭ×Ｎ領域に分割される。図４（ｂ）では５×５領域に分割した例が示されている。なお、分割数については、ユーザが設定することができるものとする。ただし、これに限らず、分割数は、予め定められていてもよい。分割領域には、それぞれ番号が付されているものとする（図４（ｃ）参照）。
【００４３】
このような分割領域に対して、教示したＮＧ領域の指標化が行われる。図４（ｃ）において、黒色の太線矩形枠（図４（ａ）の白色の太線矩形枠に対応）がＮＧ領域である。ここでは、各分割領域においてＮＧ領域がどれだけの割合を占めるかという値を指標値として求める。図４（ｄ）は、求めた指標値を示すグラフである。図４（ｄ）のグラフによれば、教示したＮＧ領域が画像内のどこに分布しているかが示されており、指標値は、各分割領域で０．０〜１．０の値を取る。なお、これに限らず、指標値は、ＮＧ領域がそれぞれの分割領域にどれだけの割合で分割されているかを示す値とすることもできる。この場合、全分割領域における指標値の合計が１．０になる。なお、矩形領域（ＮＧ領域）が複数存在する場合にも、同様に指標化することができる。以下においては、図４（ｄ）のように画像内でのＮＧ領域の分布を示すデータを「ＮＧ教示領域データ」あるいは「ＮＧ教示領域指標」などと呼ぶ。なお、ＮＧ教示領域データ（ＮＧ教示領域指標）は、学習画像を分割した分割領域それぞれと、ＮＧ領域との重なり具合を示す第１データであるといえる。
【００４４】
(3) 分割領域の画像特徴量の指標化
次に、画像分類装置１００による、分割領域の画像特徴量の指標化処理について、図４（ｅ）に基づいて説明する。
【００４５】
図４（ｅ）は、後述する画像変換処理によって得られた特徴抽出画像（変換画像）の特徴量が各分割領域においてどのように分布しているかを表したグラフである。
【００４６】
図４（ｅ）の例では、特徴抽出画像が原画像そのままであると仮定し、各分割領域での平均輝度を画像特徴量として算出した例を示している。本第１の実施形態では、図２に示すように、特徴抽出画像からは各種の特徴抽出フィルタにより画像特徴量を抽出して良否判定の識別器を作成しており、良否判定において重要な画像となっている。なお、分割領域の特徴量としては、各分割領域での平均輝度の他にも、ばらつきの標準偏差や範囲（最大値と最小値との差）などを用いることもできる。
【００４７】
以下においては、図４（ｅ）に示すように、変換画像における画像特徴量が各分割領域でどのように分布しているかを表したデータを「画像特徴分布データ」あるいは「画像特徴分布指標」などと呼ぶものとする。なお、画像特徴分布データ（画像特徴分布指標）は、変換画像から算出した分割領域ごとの画像特徴量を示す第２データであるといえる。
【００４８】
(4) ＮＧ領域指標と画像特徴分布指標との類似度
上述の(2)、(3)で得られた２つの指標（図４（ｄ）、図４（ｅ））は、ＮＧ領域がどのように分布しているか、および、画像特徴量がどのように分布しているかをそれぞれ表した指標となっている。これらの指標が類似していれば、画像変換によって得られた画像が、ＮＧ部分の特徴を正しく抽出していると言える。したがって、本第１の実施形態では、この類似度が高くなるような画像変換処理を学習する。ここで、２つの指標の類似度は、２つの指標をベクトルとみなして、コサイン類似度や正規化相関値として求めることができる。
【００４９】
以下、類似度計算の具体例について、図５及び図６に基づいて説明する。図５（ａ）、図５（ｂ）の上段には、ＮＧ画像の入力画像（学習画像）が示されている。また、図５（ａ）、図５（ｂ）の中段には、白色矩形枠でＮＧ領域を示した入力画像と、学習序盤において各入力画像を画像変換した後の特徴抽出画像が示されている。さらに、図５（ａ）、図５（ｂ）の下段には、ＮＧ教示領域指標と、画像特徴分布指標が示されている。
【００５０】
また、図６（ａ）、図６（ｂ）には、学習終盤における、図５（ａ）、図５（ｂ）と対応する図が示されている。ここで、図５、図６の例では、ＮＧ教示領域指標は各分割領域内でＮＧ領域が占める割合であり、画像特徴量は変換画像の各分割領域内の平均輝度である。
【００５１】
図５、図６の最下段には、ＮＧ教示領域指標と画像特徴分布指標の類似度を、正規化相関演算で求めた結果が示されている。図５（ａ）、図５（ｂ）に示すように、学習序盤では、ＮＧ画像２の方の類似度はまだ非常に小さい。一方、学習終盤になると、図６（ａ）、図６（ｂ）に示すように、ＮＧ画像１もＮＧ画像２も類似度が１．０に近付いており、学習終盤の方が特徴抽出画像においてＮＧ部分のみを正確に抽出できていることがわかる。
【００５２】
なお、本第１の実施形態では、図２に示すように、木構造フィルタ列には複数の枝が存在する場合があるため、ＮＧ領域の類似度も枝の数だけ算出される。したがって、複数の類似度を総合した類似度（総合類似度）を計算する必要があり、その方法としては、一例として以下の（ａ）、（ｂ）のような方法が考えられる。なお、総合類似度は、ＮＧ画像１枚ごとに算出される。
（ａ）複数の枝についての類似度の絶対値の平均値、最大値又は最小値
（ｂ）複数の枝についての類似度の平均値、最大値又は最小値
【００５３】
(5) 適応度の定義
次に、上述したように求められる類似度（総合類似度）を考慮した適応度の算出方法について説明する。
【００５４】
図５（ａ）、図５（ｂ）の状態（学習序盤）から図６（ａ）、図６（ｂ）の状態（学習終盤）のように学習を進めるために、類似度が高い場合に類似度に基づくペナルティ項の値が小さくなるようにし、次式（１）のような適応度を定義する。また、次式（２）に示すように、類似度に基づくペナルティ項は、類似度が高くなる（１．０に近づく）につれてゼロに漸近するように定義する。なお、ペナルティ量の算出の際には、前述したＮＧ画像ごとの総合類似度に基づいてペナルティ量を求める必要がある。その際、各ＮＧ画像の総合類似度を単純に平均してもよいし、各ＮＧ画像の総合類似度の重み付き平均を取ることとしてもよい。重みを付ける基準としては、ＮＧ領域の面積に応じた重み係数などが考えられる。
【００５５】
適応度
＝正解率−識別器のペナルティ項−類似度に基づくペナルティ項  …（１）
この適応度は、自動生成したプログラムの評価値を示し、適応度が高いほど良いプログラムである。
【００５６】
類似度に基づくペナルティ項
＝１．０−類似度のＮＧ画像全体の平均値  …（２）
（２）式で表すように、類似度が高いほど、そのペナルティ項は小さくなる。従って、（１）式で表した適応度は、各項の合計として高くなるように補正される。
【００５７】
ここで、正解率としては、学習画像についての交差検定の正解率を用いることができる。以下、ＮＧ教示領域データと画像特徴分布データとの類似度に基づくペナルティを単に「類似度に基づくペナルティ項」と呼ぶ。
【００５８】
なお、類似度に基づくペナルティ項を、適切な形で適応度に反映させるため、類似度に基づくペナルティ項に対し、固定あるいは可変の重み係数を掛けることとしてもよい。例えば、類似度の算出に正規化相関演算を用い、総合類似度として、複数の枝の類似度の絶対値の平均値を求め、類似度のペナルティ項を１．０−（複数の枝の類似度の絶対値の平均値）としたとする。この場合、適切な適応度とするには重み係数を０．１〜０．３程度とすることが好ましい。
【００５９】
なお、類似度が高いほどペナルティ値が小さくなるように、類似度の値を負に変換したり、逆数に変換したりすることとしてもよい。
【００６０】
(6) ＮＧ部分の推定
次に、画像分類装置１００によるＮＧ部分の推定方法について説明する。なお、ＮＧ部分の推定の際には、遺伝的プログラミングによる画像分類プログラムの学習が既に完了しているものとする。なお、ＮＧ部分とは、分割領域のうち、キズや異物が存在する可能性の高い分割領域を意味する。
【００６１】
ＮＧ部分の推定においても、図４（ｂ）、図４（ｃ）と同様、分割領域それぞれの画像特徴量を利用することとする。ただし、図４（ｂ）、図４（ｃ）では、ＮＧ画像の画像特徴量を対象としていたのに対し、本処理では、ＯＫ画像から画像特徴量を求める。
【００６２】
すなわち、本処理では、図７（ａ）に示すように、学習用のＯＫ画像のＲＯＩ（白色の実線矩形枠）についてもこれまでと同様に領域分割を実施する。そして、学習用のＯＫ画像のそれぞれについて、画像変換による特徴抽出画像を得た後に、各分割領域において画像特徴量の分布（平均と標準偏差）を算出する。こうして得られた画像特徴量の分布は、図７（ｂ）のように表される。なお、図７（ｂ）のデータは、正常な分布（正常範囲）として学習時に保存しておく。
【００６３】
一方、学習後の良否判定時には、図７（ｃ）に示すような検査対象の画像（対象画像）から同様に各分割領域の画像特徴量を図７（ｄ）のように求め、図７（ｂ）との差分に基づいて、正常な分布に対する異常スコアを算出する。異常スコアは例えば次式（３）により求めることができる。
【００６４】
画像特徴異常スコア
＝（対象画像の画像特徴量−正常分布平均値）／正常分布標準偏差  …（３）
【００６５】
この異常スコアは分割領域ごとに求められるため、図７（ｅ）のように表すことができる。本第１の実施形態では、異常スコアが所定の閾値よりも大きい分割領域をＮＧ部分と推定する。
【００６６】
図７（ｆ）には、図７（ｅ）において異常スコアが閾値（＝３）以上である分割領域をＮＧ部分として推定し、その分割領域を対象画像にオーバーレイ表示した例が示されている。図７（ｆ）では、推定したＮＧ部分が白色の矩形枠にて示されている。
【００６７】
（画像分類装置１００の処理機能について）
図８は、画像分類装置１００が備える処理機能の構成例を示すブロック図である。画像分類装置１００は、画像入力部１１１、判定部としての画像検査処理部１１２、プログラム生成部１２０、記憶部１５０、を有する。
【００６８】
画像入力部１１１、画像検査処理部１１２、及びプログラム生成部１２０の処理は、例えば、画像分類装置１００のプロセッサ１０１が所定のプログラム（画像分類プログラムを含む）を実行することで実現される。記憶部１５０は、例えば、画像分類装置１００のＲＡＭ１０２の記憶領域として実現される。
【００６９】
画像入力部１１１は、カメラ１０７ａが撮像した画像のデータを取得し、プログラム生成部１２０又は画像検査処理部１１２に出力する。プログラム生成部１２０は、遺伝的プログラミングにより画像分類プログラムを生成し、生成された画像分類プログラムに対応するデータ（最良個体のデータ）を記憶部１５０に保存する。なお、プログラム生成部１２０の内部構成については後述する。
【００７０】
画像検査処理部１１２は、カメラ１０７ａが撮像した画像のデータを、画像入力部１１１を介して取得する。また、画像検査処理部１１２は、記憶部１５０に記憶されている画像分類プログラムのデータ（最良個体のデータ）を読み出し、読み出した画像分類プログラムを用いて、取得した画像の良否を判定する。画像検査処理部１１２は、判定結果を、例えば表示装置１０４ａに表示する。
【００７１】
記憶部１５０は、学習画像や、プログラム生成部１２０で生成された画像分類プログラムのデータ（最良個体のデータ）を記憶する。学習画像には、学習画像の良否（ＯＫ画像又はＮＧ画像）を示すラベルが付加されている。学習画像としては、画像入力部１１１がカメラ１０７ａから取得した画像を用いることができる。
【００７２】
ここで、プログラム生成部１２０の詳細についてさらに説明する。プログラム生成部１２０は、処理部としてのＧＰ（Genetic Programming）学習制御部１２１、画像変換部１２２、第３データ作成部としての画像特徴量抽出部１２３、入力データ作成部１２４、識別器パラメータ設定部１２５、識別器生成部１２６、受付部としてのＮＧ領域入力部１２７、分割領域設定部１２８、第１データ作成部としてのＮＧ領域指標算出部１２９、第２データ作成部としての分割領域特徴量抽出部１３０、算出部としての類似度算出部１３１、適応度算出部１３２、を有する。
【００７３】
ＧＰ学習制御部１２１は、遺伝的プログラミングによるプログラム生成処理全体の実行を制御する。例えば、ＧＰ学習制御部１２１は、初期個体の生成、個体の進化処理などの処理を実行する。
【００７４】
画像変換部１２２は、個体の木構造における画像変換処理のノードに設定された画像変換フィルタにしたがって、入力画像に対する画像変換処理を実行する。
【００７５】
画像特徴量抽出部１２３は、個体の木構造における画像特徴量抽出処理のノードに設定された特徴抽出フィルタにしたがって、画像変換後の入力画像からの特徴量抽出処理を実行する。
【００７６】
入力データ作成部１２４は、個体の木構造における入力データ作成処理のノードに設定されたプログラムモジュールにしたがって、識別器に入力する入力データを画像の特徴量に基づいて生成する。
【００７７】
識別器パラメータ設定部１２５は、個体の木構造におけるＳＶＭパラメータ設定処理のノードに設定された絶対値と相対値にしたがって、識別器の学習パラメータを設定する処理を実行する。
【００７８】
識別器生成部１２６は、個体の木構造におけるＳＶＭ識別器生成処理のノードに設定されたカーネル関数や動作モードにしたがって、識別器パラメータ設定部１２５によって設定された学習パラメータを用いて、学習により識別器を生成する処理を実行する。
【００７９】
ＮＧ領域入力部１２７は、ユーザが入力装置１０５ａを介して入力したＮＧ領域の指定を受け付け、ＮＧ領域指標算出部１２９にＮＧ領域の情報（座標）を入力する。
【００８０】
分割領域設定部１２８は、図４（ｂ）において白色の破線にて示すように、ＲＯＩに対して分割領域を設定する。
【００８１】
ＮＧ領域指標算出部１２９は、図４（ｄ）に示すようなＮＧ教示領域指標を算出する。
【００８２】
分割領域特徴量抽出部１３０は、分割領域それぞれの画像特徴量を抽出し、図４（ｅ）に示すような画像特徴分布指標を算出する。
【００８３】
類似度算出部１３１は、ＮＧ教示領域指標（図４（ｄ））と画像特徴分布指標（図４（ｅ））との類似度を正規化相関演算により算出する。
【００８４】
適応度算出部１３２は、類似度算出部１３１が算出した類似度に基づいて、適応度を算出する。
【００８５】
次に、画像分類装置１００の処理についてフローチャートを用いて説明する。
【００８６】
（プログラム生成部１２０の処理）
図９は、プログラム生成部１２０の処理手順の例を示すフローチャートである。
【００８７】
図９の処理では、まず、ステップＳ１０において、ＧＰ学習制御部１２１は、複数の初期個体を生成し、生成した初期個体を示す情報を記憶部１５０に格納する。以下、記憶部１５０に格納される個体のことを「個体群」と呼ぶ。
【００８８】
初期個体の生成手順としては、基本的に、個体の木構造の各処理にノードが設定され、各ノードの要素が、ノードが属する処理に対応するプログラムモジュールの中から選択されて設定される。
【００８９】
次いで、ステップＳ１２では、分割領域設定部１２８が、分割領域の設定を行う。具体的には、分割領域設定部１２８は、ＲＯＩを縦方向に何等分し、横方向に何等分するかを設定する。なお、分割領域設定部１２８は、ユーザの入力に基づいて、分割領域の設定を行うこととしてもよいし、予め定められている条件に基づいて分割領域の設定を行うこととしてもよい。本実施形態では、ＲＯＩを５×５領域に分割するものとする。
【００９０】
次いで、ステップＳ１４では、ＧＰ学習制御部１２１が、学習画像を記憶部１５０から読み出す。この場合、例えば、ＧＰ学習制御部１２１は、１枚の学習画像として、ＯＫ画像又はＮＧ画像を記憶部１５０から読み出す。
【００９１】
次いで、ステップＳ１６では、ＧＰ学習制御部１２１が、良否正解データを取得する。この場合、ＧＰ学習制御部１２１が、学習画像に付加されたラベルから、良否正解データ（ＯＫ画像であるか、ＮＧ画像であるかの情報）を取得する。
【００９２】
次いで、ステップＳ１８では、ＮＧ領域入力部１２７が、ＮＧ領域のデータを取得する。この場合、ＮＧ領域入力部１２７は、ユーザからの入力に基づいて、ＮＧ領域のデータを教示データとして取得し、ＮＧ領域指標算出部１２９に対して入力する。
【００９３】
次いで、ステップＳ２０では、ＮＧ領域指標算出部１２９が、ＮＧ領域の指標化を行う。すなわち、ＮＧ領域指標算出部１２９は、図４（ｄ）に示すようなＮＧ教示領域データ（ＮＧ教示領域指標）を生成する。
【００９４】
次いで、ステップＳ２２では、ＧＰ学習制御部１２１が、記憶部１５０に格納されている学習画像が終了したか否か、すなわち、全ての学習画像を読み出したか否かを判断する。このステップＳ２２の判断が否定された場合には、ステップＳ１４に戻り、次の学習画像に対する処理としてステップＳ１４〜Ｓ２２の処理を実行する。一方、ステップＳ２２の判断が肯定された場合には、ステップＳ２４に移行する。
【００９５】
次いで、ステップＳ２４では、ＧＰ学習制御部１２１が、個体群に含まれる個体の中から、２つの親個体をランダムに選択する。
【００９６】
次いで、ステップＳ２６では、ＧＰ学習制御部１２１が、選択した親個体を用いて２以上の所定数の子個体を生成する。例えば、ＧＰ学習制御部１２１は、選択された２つの親個体の間で交叉を行うことで、２つ以上の所定数の子個体を生成する。また、ＧＰ学習制御部１２１は、生成された各子個体のいずれかのノードに突然変異を発生させ、そのノードの要素を変更する。
【００９７】
次いで、ステップＳ２７では、ＧＰ学習制御部１２１は、生成された子個体の１つを選択する。
【００９８】
次いで、ステップＳ２８では、進化過程処理のサブルーチンが実行される。進化過程処理のサブルーチンにおいては、図１０、図１１のフローチャートに沿った処理が実行される。
【００９９】
図１０、図１１の処理では、まず、ステップ５０において、ＧＰ学習制御部１２１が、記憶部１５０から学習画像を読み出す。
【０１００】
次いで、ステップＳ５２では、画像変換部１２２が、選択された子個体を用いて、ステップＳ５０において読み出された学習画像を画像変換する。次いで、ステップＳ５４では、画像特徴量抽出部１２３が、変換後の画像に基づいて、画像特徴量を抽出する。
【０１０１】
ここで、本第１の実施形態では、図１３に示すように、子個体において画像特徴量抽出処理に設定されているフィルタ（図１３では、Ｆ１、Ｆ３）とは異なるフィルタ（Ｆ０）を用いて、画像特徴量を抽出することとしている。なお、フィルタＦ０は、各子個体において共通の（固定の）フィルタであるものとする。すなわち、フィルタＦ１、Ｆ３は、交叉や突然変異によって学習しながら次第に変化して行くが、フィルタＦ０は変化しないようになっている。なお、フィルタＦ０への入力は画像変換処理によって変換された特徴抽出画像であり、ＳＶＭ識別器に入力される特徴抽出画像と同一の画像である。
【０１０２】
次いで、ステップＳ５６では、入力データ生成部１２４が、子個体に基づいて、識別器に入力する入力データを生成する。次いで、ステップＳ５８では、分割領域特徴量抽出部１３０が、分割領域それぞれの画像特徴量を算出し、図４（ｅ）に示すような画像特徴分布データ（画像特徴分布指標）を生成する。
【０１０３】
次いで、ステップＳ６０では、類似度算出部１３１が、学習画像がＮＧ画像であるか否かを判断する。このステップＳ６０の判断が肯定された場合には、ステップＳ６２に移行し、否定された場合には、ステップＳ６４に移行する。
【０１０４】
ステップＳ６０の判断が肯定されて、ステップＳ６２に移行すると、類似度算出部１３１は、現在読み出している学習画像に対応する画像特徴分布データ（画像特徴分布指標）を記憶部１５０から読み出し、ステップＳ５６で生成したＮＧ教示領域データ（ＮＧ教示領域指標）との類似度を算出する。なお、類似度算出部１３１は、算出した類似度を記憶部１５０に格納しておく。その後は、ステップＳ６６に移行する。
【０１０５】
一方、ステップＳ６０の判断が否定されて、ステップＳ６４に移行すると、画像特徴量抽出部１２３は、図７（ｂ）に示すような画像特徴分布データ（画像特徴分布指標）を正常範囲算出用として、記憶部１５０に格納する。ステップＳ６４の後は、ステップＳ６６に移行する。
【０１０６】
ステップＳ６６に移行すると、ＧＰ学習制御部１２１は、学習画像が終了したか否か、すなわちステップＳ５０において全ての学習画像を読み出したか否かを判断する。このステップＳ６６の判断が否定された場合には、ステップＳ５０に戻り、ステップＳ６６の判断が肯定されるまで、ステップＳ５０〜Ｓ６６の処理・判断を繰り返す。一方、ステップＳ６６の判断が肯定されると、図１１のステップＳ７０に移行する。
【０１０７】
図１１のステップＳ７０に移行すると、画像特徴量抽出部１２３が、画像特徴分布データの正常範囲を算出する。具体的には、画像特徴量抽出部１２３は、記憶部１５０から、正常範囲算出用の画像特徴分布データ（図７（ｂ））を複数取得し、基本統計量（平均や標準偏差など）を算出して、画像特徴分布データの正常範囲とする。なお、画像特徴分布データの正常範囲は、ＯＫ画像を画像変換して得られた画像から算出した各分割領域の画像特徴量を示す第３データであるといえる。
【０１０８】
次いで、ステップＳ７２では、識別器パラメータ設定部１２５が、識別器の学習パラメータの設定を行う。次いで、ステップＳ７４では、識別器生成部１２６が、識別器を生成する。
【０１０９】
次いで、ステップＳ７６では、ＧＰ学習制御部１２１が、正解率を算出する。すなわち、学習画像それぞれがＮＧ画像であるかＯＫ画像であるかを、例えば交差検定法を用いて判定し、その判定結果が各学習画像に付加された良否を示すラベルと一致した割合を正解率として算出する。次いで、ステップＳ７８では、ＧＰ学習制御部１２１が、識別器のペナルティ項を算出する。
【０１１０】
次いで、ステップＳ８０では、類似度算出部１３１が、前述したようにして、画像特徴分布データとＮＧ教示領域データとの類似度（総合類似度）の算出を行う。次いで、ステップＳ８２では、適応度算出部１３２が、算出した類似度（総合類似度）に基づくペナルティ項を算出する。そして、ステップＳ８４では、適応度算出部１３２が、上式（１）に基づいて、適応度を計算する。
【０１１１】
以上のようにして、図１０、図１１の処理（ステップＳ２８の処理）が行われた後は、図９のステップＳ３０に移行する。ステップＳ３０に移行すると、ＧＰ学習制御部１２１が、生成した子個体のすべてを選択済みか否かを判断する。このステップＳ３０の判断が否定された場合には、ステップＳ２６に戻り、ステップＳ２７〜Ｓ３０を繰り返し実行することで、生成した子個体のすべてに対するステップＳ２８の処理を実行する。一方、ステップＳ３０の判断が肯定された場合には、ステップＳ３２に移行する。
【０１１２】
ステップＳ３２に移行すると、ＧＰ学習制御部１２１は、ステップＳ２６で生成された子個体の中から、適応度が最も高い子個体を生存させる子個体として選択する。さらに、ＧＰ学習制御部１２１は、残りの子個体の中から生存させる個体をさらに１つ選択する。この選択処理では、例えば、適応度に応じた確率で個体が選択される。ＧＰ学習制御部１２１は、ステップＳ２４で選択された親個体を、生存させる２つの個体に入れ替える。すなわち、ＧＰ学習制御部１２１は、ステップＳ３２において、ＮＧ教示領域データ（ＮＧ教示領域指標）と画像特徴分布データ（画像特徴分布指標）との類似度に基づく子個体の適応度を、遺伝的プログラミングに利用しているといえる。
【０１１３】
次いで、ステップＳ３４では、ＧＰ学習制御部１２１は、親個体の最大適応度が閾値より大きいか否かを判断する。このステップＳ３４の判断が否定された場合には、ステップＳ２４に戻るが、肯定された場合には、ステップＳ３６に移行する。ステップＳ３６に移行すると、ＧＰ学習制御部１２１は、最良個体、すなわち、適応度が最大の個体を記憶部１５０に保存する。この個体には、ステップＳ２８の処理において生成された識別器を示す識別器情報も含まれる。
【０１１４】
以上の処理により、学習処理が終了する。
【０１１５】
（画像検査処理部１１２の処理）
次に、学習処理により得られた個体（最良個体）を用いた画像検査処理部１１２の処理について、図１２のフローチャートに沿って説明する。
【０１１６】
図１２の処理では、まずステップＳ１０２において、画像検査処理部１１２が、記憶部１５０から最良個体の情報を読み出し、読み出した情報に基づいて、最良個体の木構造を画像検査に用いる木構造として設定する。
【０１１７】
次いで、ステップＳ１０４では、画像検査処理部１１２が、読み出した最良個体の情報に基づいて、最良個体の識別器を画像検査に用いる識別器として設定する。
【０１１８】
次いで、ステップＳ１０６では、画像検査処理部１１２が、記憶部１５０から画像特徴分布データの正常範囲を読み出す。なお、ここで読み出す画像特徴分布データの正常範囲は、ステップＳ７０において算出されたデータである。
【０１１９】
次いで、ステップＳ１０８では、画像検査処理部１１２が、画像入力部１１１を介して、検査対象の画像を取得する。この画像は、例えば、カメラ１０７ａによって撮像された画像である。
【０１２０】
次いで、ステップＳ１１０では、画像検査処理部１１２が、検査対象の画像をステップＳ１０２で設定された画像変換フィルタを用いて画像変換する。また、ステップＳ１１２では、画像検査処理部１１２が、設定されている特徴抽出フィルタにしたがって、変換後の画像の特徴量を抽出する。さらに、ステップＳ１１４では、画像検査処理部１１２が、特徴量データを識別器に入力する。そして、ステップＳ１１６では、画像検査処理部１１２が、識別器による分類を実行する。すなわち、画像検査処理部１１２は、変換後の画像をＯＫ画像又はＮＧ画像に分類する。
【０１２１】
次いで、ステップＳ１１８では、画像検査処理部１１２が、分割領域の画像特徴量を算出する。次いで、ステップＳ１２０では、画像検査処理部１１２が、分割領域単位でのＮＧ部分の推定を行う。すなわち、画像検査処理部１１２は、図７（ｅ）に示すように分割領域単位で異常スコアを求め、異常スコアが予め定めた閾値を超えている分割領域をＮＧ部分と推定する。なお、本ステップＳ１２０の処理は、検査対象の画像の各分割領域の正常又は異常を判定する処理であるといえる。
【０１２２】
その後は、ステップＳ１２２において、画像検査処理部１１２が、画像検査結果を表示装置１０４ａ上に出力する。画像検査結果には、良否判定結果（ＯＫ画像かＮＧ画像か）のほか、ステップＳ１２０で推定されたＮＧ部分の情報（図７（ｆ）のようにＮＧ部分をオーバーレイ表示した検査対象の画像）も含まれる。
【０１２３】
以上のように、ステップＳ１２２までの処理が終了すると、図１２の全処理を終了する。
【０１２４】
（具体例）
図１４〜図１６には、疑似的なＮＧ画像について、学習および良否判定を実施した結果が示されている。本例では、図１４（ａ）に示すように、学習画像４０枚（ＯＫ画像２０枚、ＮＧ画像２０枚）で学習し、未知の評価用画像１６０枚（ＯＫ画像８０枚、ＮＧ画像８０枚）で判定精度を調べた。
【０１２５】
図１４（ｂ）は、学習画像のＯＫ画像の例を示し、図１４（ｃ）は、学習画像のＮＧ画像の例を示している。ＮＧ画像は、図４（ａ）と同様、円形の対象物の表面に打痕あるいは異物となる楕円が描画されているようなテスト画像である。
【０１２６】
ＮＧ画像に対して、ユーザは、図１４（ｂ）に示すように、ＮＧ領域を矩形で教示した。また、ＲＯＩの分割数は５×５とした。
【０１２７】
図１４（ｄ）には、ＮＧ領域を教示せずに、ＯＫ又はＮＧの正解だけを教示して学習した場合の良否判定結果（正解率）が示され、図１４（ｅ）には、ＮＧ領域と、ＯＫ又はＮＧの正解とを教示して学習した場合の良否判定結果（正解率）が示されている。なお、図１４（ｄ）、図１４（ｅ）では、学習序盤や中盤における学習結果も含めて、評価用画像に対して良否判定を行った結果が示されている。なお、世代番号が小さいほど、学習序盤を意味し、世代番号が大きいほど、学習終盤を意味する。
【０１２８】
図１４（ｄ）、図１４（ｅ）からは、ＮＧ領域の教示を行って学習した方（図１４（ｅ）の方）が、最終的な正解率を高くでき、また、早い段階で正解率１００％に達していることから、学習時間を短縮できることがわかる。
【０１２９】
図１５には、ＮＧ領域を教示しない場合の最終世代（第４００世代）における、ＮＧ部分の推定をＯＫ画像とＮＧ画像それぞれについて実施した結果を示す図である。また、図１６には、ＮＧ領域を教示する場合の最終世代（第２６８世代）における、ＮＧ部分の推定をＯＫ画像とＮＧ画像それぞれについて実施した結果を示す図である。なお、図１５、図１６のＮＧ画像は、ＮＧ領域教示なしの場合にＯＫ画像と判定され（誤判定され）、ＮＧ領域教示ありの場合にＮＧ画像と判定されたＮＧ画像である。
【０１３０】
図１５の中段と、図１６の中段とを比較するとわかるように、ＮＧ領域を教示しないで学習した場合には、特徴抽出画像において、判定に無関係な対象物の外径部分が特徴部分として抽出されており、ＮＧ領域を教示して学習した場合には、ＮＧ部分に限定して特徴部分を抽出できていることがわかる。
【０１３１】
また、図１５の下段と、図１６の下段を比較するとわかるように、ＮＧ領域を教示して学習した場合（図１６）には、キズや異物が存在する部分のみをＮＧ部分と推定できるが、ＮＧ領域を教示しないで学習した場合（図１５）には、キズや異物が存在する部分をＮＧ部分と推定できず、また、キズや異物が存在する部分以外をＮＧ部分と推定してしまうことが分かった。なお、図１５の下段と図１６の下段においては、白線矩形の線が太いほど異常スコアが大きいことを意味している。
【０１３２】
以上のように、ＮＧ領域を教示して学習する場合の方が、良否判定の精度が高く、ＮＧ部分の推定も正確であることが確認できた。
【０１３３】
以上、詳細に説明したように、本第１の実施形態によると、遺伝的プログラミングに基づいて画像分類プログラムを自動生成する際に、画像分類装置１００は、学習画像のＮＧ領域の入力を受け付け（Ｓ１８）、学習画像（ＲＯＩ）を分割した分割領域それぞれと、ＮＧ領域との重なり具合を示すＮＧ教示領域データ（ＮＧ教示領域指標）を作成する（Ｓ２０）。また、画像分類装置１００は、学習画像を所定の画像分類プログラム（子個体）により画像変換し、得られた画像から、分割領域それぞれの画像特徴量を算出し、分割領域それぞれに対応する画像特徴分布データ（画像特徴分布指標）を作成する（Ｓ５８）。そして、画像分類装置１００は、ＮＧ教示領域データ（ＮＧ教示領域指標）と画像特徴分布データ（画像特徴分布指標）との類似度を算出し（Ｓ８０）、類似度に基づいて画像分類プログラム（子個体）を評価した結果（適応度）を、遺伝的プログラミングの実行に利用する（Ｓ８２、Ｓ８４）。これにより、本第１の実施形態では、教示したＮＧ領域において差異が顕著に現れるような画像変換処理を優先的に学習することができるため、真のＮＧ部分に基づいた学習結果（画像分類プログラム）を得ることができるとともに、学習速度の高速化も実現できる。また、学習結果に基づいて画像の良否判定を行うことで、判定精度を向上させることができる。
【０１３４】
また、本第１の実施形態では、画像分類装置１００は、自動生成された画像分類プログラムを用いて、全ての分割領域が正常な学習画像を画像変換し、得られた画像から、画像特徴量分布データの正常範囲を算出し（Ｓ１０６）、検査対象の画像の画像特徴分布データと、正常範囲との比較結果に基づいて、検査対象の画像のＮＧ部分を推定する（Ｓ１２０）。これにより、検査対象の画像内のＮＧ部分を分割領域の単位で精度よく推定することができる。また、領域の分割や、画像特徴分布データの算出方法は、学習時と共通であるため、計算コストなどを抑えることができる。
【０１３５】
また、本第１の実施形態では、ユーザが指定するＮＧ領域が、矩形や円形、楕円形などの簡単な形状であるため、教示作業の負担を軽減することができるとともに、ＮＧ領域の指標化の計算を簡単にすることができる。
【０１３６】
《第２の実施形態》
以下、第２の実施形態について、図１７〜図１９に基づいて説明する。
【０１３７】
上述した第１の実施形態では、学習画像として原画像をそのまま木構造フィルタ列へ入力することとしていたが、本第２の実施形態では、図１７に示すように、原画像に対して事前処理を行い、事前処理が施された画像を学習画像として入力する。
【０１３８】
入力画像の事前処理は、原画像に対して画像全体の平均輝度のばらつきを抑える処理であり、例えば、画像１枚単位で平均差分処理あるいは正規化処理である。ここで、平均差分処理は、平均輝度を調整する処理であり、正規化処理とは、平均差分処理を行った上で、輝度のばらつきで除する処理である。画像全体の平均輝度がばらついている場合には、画像１枚単位で平均差分処理や正規化処理を行うことが有効である。
【０１３９】
また、入力画像の事前処理としては、画像１枚単位ではなく、例えば、学習時のＯＫ画像全体の平均画像を用いて平均差分処理あるいは正規化処理を実施することとしてもよい。ＯＫ画像全体の平均画像を用いて平均差分画像を作成した場合、入力画像を全く変換せずに特徴抽出を行っても、その画像特徴量を正常分布からの変化量として得ることができる。したがって、簡単な画像変換でも、ＮＧ領域と画像特徴量との類似度を高くすることができる。
【０１４０】
図１８には、本第２の実施形態による学習及び良否判定をテストした結果が示されている。図１８（ａ）に示すように、このテストに用いた原画像は、円形部品の表面にキズ不良が生じている画像であり、ＯＫ画像であっても小さなキズが多数存在するため、所定の長さや所定の太さ以上の線分だけをＮＧと扱うこととした。
【０１４１】
図１８（ｂ）には、ＮＧ画像に対してＮＧ領域を教示した例が示されている。また、図１８（ｃ）には、図１８（ｂ）の原画像に対して事前処理を行い、その結果得られた入力画像が示されている。このテストでは、事前処理として、画像１枚単位で平均輝度を合わせた後に、ＯＫ画像全体の平均画像との差分をとる処理を採用した。なお、ＯＫ画像全体の平均画像との差分は絶対値で求めているため、平均画像に一致していればゼロ、平均輝度より明るい画素や暗い画素はどちらもゼロ以上の輝度値となるように変換される。
【０１４２】
第１の実施形態（図１４（ａ））と同様、学習画像４０枚を用い、全く同じ初期個体からＮＧ領域の教示なしと教示ありの両方で学習を行って、評価用画像１６０枚の良否判定を比較した結果を図１８（ｄ）、図１８（ｅ）に示す。図１８（ｄ）、図１８（ｅ）に示すように、平均的な判定精度および最終的な判定精度の両方において、ＮＧ領域を教示して学習した方が高い精度を得ることができることがわかった。
【０１４３】
図１９には、ＮＧ領域を教示した場合におけるＮＧ部分の推定結果が示されている。本テストにおいては、ＯＫ画像にも小さなキズ等がわずかに存在しているため、ＯＫ画像及びＮＧ画像のいずれにおいてもＮＧ部分がやや多めに推定されるが、ＮＧ画像においてＮＧ部分を正しく推定することができることが分かった。
【０１４４】
《第３の実施形態》
次に、第３の実施形態について、図２０に基づいて説明する。
【０１４５】
本第３の実施形態では、図２０に示すように、原画像に対して位置合わせを自動的に行う事前処理を実行し、事前処理が施された画像を入力画像とする。
【０１４６】
すなわち、本第３の実施形態では、対象の物体の画像をテンプレート画像として与えておき、事前処理においては、ＧＰ学習制御部１２１が、原画像上でテンプレートマッチングにより探索した位置をＲＯＩとして設定する。そして、ＲＯＩが設定された画像を入力画像として、第１の実施形態と同様の処理を実行する。このようにすることで、例えば、実際の生産ラインの外観検査などにおいて、対象物の位置ずれなどに合わせてＲＯＩを自動的に正しく設定することが可能となる。
【０１４７】
なお、学習時に作成したＯＫ画像の平均画像をテンプレート画像として保存し、良否判定時にはそのテンプレート画像を用いてＲＯＩを設定するようにしてもよい。
【０１４８】
なお、本第３の実施形態では、ＧＰ学習制御部１２１が、原画像と、テンプレート画像とを用いたテンプレートマッチングにより、原画像からＲＯＩを抽出する抽出部として機能している。
【０１４９】
《第４の実施形態》
上述した第１の実施形態及び第２、第３の実施形態では、各領域の画像特徴量を算出する際に用いる特徴抽出フィルタ（図１３のフィルタＦ０）として、木構造フィルタ列とは独立のものを用意していた。これに対し、本第４の実施形態では、フィルタＦ０の機能を木構造フィルタ列に組み込むこととしている。
【０１５０】
図２１には、第４の実施形態に係る木構造フィルタ列が示されている。本第４の実施形態では、分割領域の特徴量を抽出するフィルタを複数用意しておき、図２１中の点線円で示すフィルタとして、用意しておいた複数のフィルタのいずれかを使用する（図２１では、フィルタＦ４を使用している）。
【０１５１】
なお、この画像特徴抽出フィルタ（Ｆ４）は、通常のフィルタと同様に学習しながら突然変異により変更してもよいし、１つのフィルタで固定してもよい。いずれの場合でも、この特徴抽出フィルタの出力が、ＮＧ教示領域との類似度を計算する際の画像特徴量として用いられるとともに、ＳＶＭ識別器を生成する際の画像特徴量としても用いられることになる。
【０１５２】
（変形例）
以下、変形例について説明する。
【０１５３】
(1) 分割領域の画像特徴量
図４（ｅ）などの処理においては、各分割領域の画像特徴量を抽出しているが、その画像特徴量として、各分割領域内の平均輝度、輝度のばらつき、輝度範囲、あるいは、それらの組合せを使用することができる。
【０１５４】
(2) ＮＧ教示領域データと画像特徴量分布データとの類似度演算
図４（ｄ）、図４（ｅ）などのデータに基づいて類似度を算出する場合、前述した正規化相関値やコサイン類似度のほかにも、差分二乗和、差分絶対値和などベクトル間の距離を求める各種の演算を用いることができる。なお、演算の種類に応じて、適応度への反映のさせ方を調節する必要はある。
【０１５５】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【０１５６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５７】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１５８】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【０１５９】
１００  画像分類装置（情報処理装置）
１１２  画像検査処理部（判定部）
１２１  ＧＰ学習制御部（処理部、抽出部）
１２３  画像特徴量抽出部（第３データ作成部）
１２７  ＮＧ領域入力部（受付部）
１２９  ＮＧ領域指標算出部（第１データ作成部）
１３０  分割領域特徴量抽出部（第２データ作成部）
１３１  類似度算出部（算出部）
【図１】
2019026104.tif 000003
【図２】
2019026104.tif 000004
【図３】
2019026104.tif 000005
【図４】
2019026104.tif 000006
【図５】
2019026104.tif 000007
【図６】
2019026104.tif 000008
【図７】
2019026104.tif 000009
【図８】
2019026104.tif 000010
【図９】
2019026104.tif 000011
【図１０】
2019026104.tif 000012
【図１１】
2019026104.tif 000013
【図１２】
2019026104.tif 000014
【図１３】
2019026104.tif 000015
【図１４】
2019026104.tif 000016
【図１５】
2019026104.tif 000017
【図１６】
2019026104.tif 000018
【図１７】
2019026104.tif 000019
【図１８】
2019026104.tif 000020
【図１９】
2019026104.tif 000021
【図２０】
2019026104.tif 000022
【図２１】
2019026104.tif 000023
【手続補正書】
【提出日】令和1年11月11日(2019.11.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理装置であって、
学習画像において特徴的な部分を含む特徴領域の指定を受け付ける受付部と、
前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第１データを作成する第１データ作成部と、
前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第２データを作成する第２データ作成部と、
前記第１データと前記第２データとの類似度を算出する算出部と、
前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する処理部と、
を備える情報処理装置。
【請求項２】
自動生成された画像分類プログラムを用いて、正常な画像を画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第３データを作成する第３データ作成部と、
処理対象の画像の前記分割領域それぞれの画像特徴量と、前記第３データとの比較結果に基づいて、前記処理対象の画像の各分割領域の正常又は異常を判定する判定部と、を更に備える請求項１に記載の情報処理装置。
【請求項３】
前記特徴領域は、矩形、円形又は楕円形の領域であることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記処理部は、前記類似度が高いほど前記所定の画像分類プログラムの評価の高さを示す適応度が高くなるように補正する、ことを特徴とする請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
前記学習画像は、原画像に対して画像全体の平均輝度のばらつきを抑える事前処理を実行した後の画像であることを特徴とする請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
前記学習画像は、原画像の一部であり、
前記原画像と、予め用意しておいたテンプレート画像とを用いたテンプレートマッチングにより、前記原画像から前記学習画像を抽出する抽出部を更に備える請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項７】
前記第２データ作成部が前記分割領域それぞれの画像特徴量を算出する際に用いる特徴量フィルタは、予め定められた特徴量フィルタであることを特徴とする請求項１〜６のいずれか一項に記載の情報処理装置。
【請求項８】
前記第２データ作成部が前記分割領域それぞれの画像特徴量を算出する際に用いる特徴量フィルタは、前記遺伝的プログラミングによる前記画像分類プログラムの生成処理に応じて変更されることを特徴とする請求項１〜６のいずれか一項に記載の情報処理装置。
【請求項９】
要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理プログラムであって、
学習画像において特徴的な部分を含む特徴領域の指定を受け付け、
前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第１データを作成し、
前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第２データを作成し、
前記第１データと前記第２データとの類似度を算出し、
前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する、
処理をコンピュータに実行させるための情報処理プログラム。
【請求項１０】
要素フィルタを組合せた画像分類プログラムを遺伝的プログラミングに基づいて自動生成する情報処理方法であって、
学習画像において特徴的な部分を含む特徴領域の指定を受け付け、
前記学習画像を分割した分割領域それぞれと、前記特徴領域との重なり具合を示す第１データを作成し、
前記学習画像を所定の画像分類プログラムにより画像変換し、得られた画像から、前記分割領域それぞれの画像特徴量を算出し、前記分割領域それぞれに対応する前記画像特徴量を示す第２データを作成し、
前記第１データと前記第２データとの類似度を算出し、
前記類似度に基づいて前記所定の画像分類プログラムを評価した結果を、前記遺伝的プログラミングの実行に利用する
処理をコンピュータが実行することを特徴とする情報処理方法。
【国際調査報告】
2019026104.tif 000024
2019026104.tif 000025
2019026104.tif 000026
2019026104.tif 000027