(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-18
(45)【発行日】2023-07-26
(54)【発明の名称】画像処理システム、及び画像処理プログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20230719BHJP
【FI】
G06T7/00 350D
(21)【出願番号】P 2019149261
(22)【出願日】2019-08-16
【審査請求日】2022-07-12
(31)【優先権主張番号】P 2018164368
(32)【優先日】2018-09-03
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000003768
【氏名又は名称】東洋製罐グループホールディングス株式会社
(74)【代理人】
【識別番号】100154184
【氏名又は名称】生富 成一
(72)【発明者】
【氏名】高橋 直己
(72)【発明者】
【氏名】柏原 賢
(72)【発明者】
【氏名】中村 圭亨
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2017-162069(JP,A)
【文献】特開2013-050837(JP,A)
【文献】特開2018-072938(JP,A)
【文献】特開2007-310491(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06T 7/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
生物の進化を数学的に模擬した最適化手法である遺伝的操作を用いて、画像から検出対象を検出する画像処理を最適化する画像処理システムであって、
有閉路を含み得るネットワーク状に複数の機能単位の実行順序を定義する一又は二以上の個体情報を記憶する個体群記憶部と、
学習用又は検証用の画像を入力する画像入力部と、
出力情報を評価するための教師情報を入力する教師情報入力部と、
前記個体情報にもとづいて前記画像を処理し、前記出力情報を生成する画像処理部と、
前記出力情報と前記教師情報を比較して評価値を計算し、この評価値にもとづき前記個体情報を順位付けする評価値計算部と、
前記個体情報の順位付け情報にもとづき前記個体情報の選択又は変更を行って、前記個体群記憶部を更新する遺伝子操作部と、を備え、
前記画像処理部による処理に、前記画像における検出対象を計数する処理が含まれ、
前記教師情報及び前記出力情報が、前記画像における検出対象の個数を示す数値である
ことを特徴とする画像処理システム。
【請求項2】
前記画像処理部による処理に、ノイズ除去、補正処理、2値化処理、エッジ検出処理、及び四則演算処理の少なくともいずれかが含まれることを特徴とする請求項1記載の画像処理システム。
【請求項3】
前記画像処理部による処理に、前記画像における一定範囲の特徴量を算出する処理、及び前記特徴量にもとづいて前記一定範囲が検出対象であるか否かを判定する処理が含まれることを特徴とする請求項1又は2記載の画像処理システム。
【請求項4】
前記遺伝子操作部が、
前記評価値が高い個体情報を次世代に残すエリート保存部と、
前記評価値にもとづいて、一定の確率で個体情報を次世代に残す選択部と、
2つの個体情報の一部を相互に交換する交叉処理部と、
選択された1つの個体情報の一部又は全部をランダムに書き換える突然変異部と、を有する
ことを特徴とする請求項1~3のいずれかに記載の画像処理システム。
【請求項5】
前記ネットワークが、機能単位と向きが付いたリンクにより構成される有向ネットワークであり、直線構造と木構造を含むことを特徴とする請求項1~4のいずれかに記載の画像処理システム。
【請求項6】
前記画像入力部が、検査用の画像を入力し、最も評価値の高い個体情報にもとづき前記画像処理部によって前記検査用の画像を処理して得られた処理結果情報を記憶する処理結果記憶部を備えたことを特徴とする請求項1~5のいずれかに記載の画像処理システム。
【請求項7】
前記画像処理部による処理に、検出対象を表す検出対象画像を作成する処理が含まれ、
前記教師情報及び前記出力情報に、検出対象を表す検出対象画像が含まれる
ことを特徴とする請求項1~6のいずれかに記載の画像処理システム。
【請求項8】
生物の進化を数学的に模擬した最適化手法である遺伝的操作を用いて、画像から検出対象を検出する画像処理を最適化する画像処理プログラムであって、
コンピュータを、
有閉路を含み得るネットワーク状に複数の機能単位の実行順序を定義する一又は二以上の個体情報を記憶する個体群記憶部、
学習用又は検証用の画像を入力する画像入力部、
出力情報を評価するための教師情報を入力する教師情報入力部、
前記個体情報にもとづいて前記画像を処理し、前記出力情報を生成する画像処理部、
前記出力情報と前記教師情報を比較して評価値を計算し、この評価値にもとづき前記個体情報を順位付けする評価値計算部、及び、
前記個体情報の順位付け情報にもとづき前記個体情報の選択又は変更を行って、前記個体群記憶部を更新する遺伝子操作部として機能させ、
前記画像処理部による処理に、前記画像における検出対象を計数する処理が含まれ、
前記教師情報及び前記出力情報が、前記画像における検出対象の個数を示す数値である
ことを特徴とする画像処理プログラム。
【請求項9】
前記遺伝子操作部が、
前記評価値が高い個体情報を次世代に残すエリート保存部、
前記評価値にもとづいて、一定の確率で個体情報を次世代に残す選択部、
2つの個体情報の一部を相互に交換する交叉処理部、及び、
選択された1つの個体情報の一部又は全部をランダムに書き換える突然変異部を有する
ことを特徴とする請求項8記載の画像処理プログラム。
【請求項10】
前記画像処理部による処理に、検出対象を表す検出対象画像を作成する処理が含まれ、
前記教師情報及び前記出力情報に、検出対象を表す検出対象画像が含まれる
ことを特徴とする請求項8又は9記載の画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像から検出対象を見つけ出す画像処理技術に関し、特に画像処理を最適化する画像処理システムに関する。
【背景技術】
【0002】
従来、画像から検出対象を見つけ出す画像処理技術において、入力画像に画像処理を行って得られた出力画像を教師画像と比較して評価値を算出することにより、画像処理を最適化する方法が行われている。
この方法では、画像における検出対象領域と非検出対象領域の比率にもとづいて評価値が悪化する場合があること、教師画像を生成するために手間がかかること、及びコンピュータによる最適化のために人の過度な干渉が必要になることが問題となっている。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第5479944号公報
【文献】特許第4862150号公報
【文献】特許第5011533号公報
【文献】特開2008-15817号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、画像から検出対象を見つけ出す画像処理技術として、特許文献1に記載の方法を挙げることができる。
この方法では、遺伝的プログラミング(GP)による並列型画像フィルタ自動生成システムにサイズ依存型交叉を導入している。これにより、複数の実舗装画像からクラックが存在する画像をフィルタ構築の訓練データに選定採用することで、様々なタイプの画像からクラックの抽出用画像フィルタを自動的に構築し、これを用いて損傷レベルの評価が行われている。
【0005】
また、このようないわゆる進化的計算を用いる技術として、特許文献2~4に記載の進化的計算システムを挙げることができる。これらの進化的計算システムによれば、それぞれのシステムにおける処理のアルゴリズムの最適化を図ることが可能になっている。
【0006】
しかしながら、これらの技術を用いても、入力画像に画像処理を行って得られた出力画像を教師画像と比較することによって画像処理を最適化する場合には、上述のように、検出対象領域の割合により評価値が悪化すること、教師画像の生成に手間がかかること、及び人の過度な干渉が必要になるという課題があった。
例えば、出力画像を教師画像と比較するために最小二乗法などを用いて各ピクセルに対して輝度の差で評価を行うと、検出対象物のサイズにもとづいて、同じ非検出の場合でも評価値に大きな相違が発生していた。
【0007】
本発明者らは、このような検出対象物のサイズの評価値への影響が、画像処理の最適化の障害になっていると考え、入力画像に画像処理を行って検出対象の個数を示す出力情報を作成し、これを教師情報としての数値と比較することによって、上記の課題を解消できることに想到した。また、進化的計算において、遺伝的ネットワークプログラミング(GNP)の手法を採用することにより、最適化の自由度を向上させることを可能にして、本発明を完成させた。
【0008】
すなわち、本発明は、画像から検出対象を見つけ出す画像処理技術において、画像処理をより最適化することが可能な画像処理システム、及び画像処理プログラムの提供を目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明の画像処理システムは、生物の進化を数学的に模擬した最適化手法である遺伝的操作を用いて、画像から検出対象を検出する画像処理を最適化する画像処理システムであって、有閉路を含み得るネットワーク状に複数の機能単位の実行順序を定義する一又は二以上の個体情報を記憶する個体群記憶部と、学習用又は検証用の画像を入力する画像入力部と、出力情報を評価するための教師情報を入力する教師情報入力部と、前記個体情報にもとづいて前記画像を処理し、前記出力情報を生成する画像処理部と、前記出力情報と前記教師情報を比較して評価値を計算し、この評価値にもとづき前記個体情報を順位付けする評価値計算部と、前記個体情報の順位付け情報にもとづいて、前記個体情報の選択又は変更を行って、前記個体群記憶部を更新する遺伝子操作部とを備え、前記画像処理部による処理に、前記画像における検出対象を計数する処理が含まれ、前記教師情報及び前記出力情報が、前記画像における検出対象の個数を示す数値である構成としてある。
【0010】
また、本発明の画像処理システムを、前記画像処理部による処理に、検出対象を表す検出対象画像を作成する処理が含まれ、前記教師情報及び前記出力情報に、検出対象を表す検出対象画像が含まれる構成とすることも好ましい。
【0011】
また、本発明の画像処理プログラムは、生物の進化を数学的に模擬した最適化手法である遺伝的操作を用いて、画像から検出対象を検出する画像処理を最適化する画像処理プログラムであって、コンピュータを、有閉路を含み得るネットワーク状に複数の機能単位の実行順序を定義する一又は二以上の個体情報を記憶する個体群記憶部、学習用又は検証用の画像を入力する画像入力部、出力情報を評価するための教師情報を入力する教師情報入力部、前記個体情報にもとづいて前記画像を処理し、前記出力情報を生成する画像処理部、前記出力情報と前記教師情報を比較して評価値を計算し、この評価値にもとづき前記個体情報を順位付けする評価値計算部、及び、前記個体情報の順位付け情報にもとづいて、前記個体情報の選択又は変更を行って、前記個体群記憶部を更新する遺伝子操作部として機能させ、前記画像処理部による処理に、前記画像における検出対象を計数する処理が含まれ、前記教師情報及び前記出力情報が、前記画像における検出対象の個数を示す数値である構成としてある。
【0012】
また、本発明の画像処理プログラムを、前記画像処理部による処理に、検出対象を表す検出対象画像を作成する処理が含まれ、前記教師情報及び前記出力情報に、検出対象を表す検出対象画像が含まれる構成とすることも好ましい。
【発明の効果】
【0013】
本発明によれば、画像から検出対象を見つけ出す画像処理技術において、画像処理をより最適化することが可能な画像処理システム、及び画像処理プログラムの提供が可能となる。
【図面の簡単な説明】
【0014】
【
図1】本発明の第一実施形態の画像処理装置の構成を示すブロック図である。
【
図2】本発明の第一実施形態の画像処理装置による処理手順を示すフローチャートである。
【
図3】本発明の第一実施形態の画像処理装置による処理手順における遺伝子操作の処理手順を示すフローチャートである。
【
図4】本発明の第二実施形態の画像処理装置の構成を示すブロック図である。
【
図5】本発明の第二実施形態の画像処理装置による処理手順を示すフローチャートである。
【
図6】実施例及び参考例で用いたノードの機能(画像処理:ノイズ除去)を示す説明図である。
【
図7】実施例及び参考例で用いたノードの機能(画像処理:輝度補正、組合せ)を示す説明図である。
【
図8】実施例及び参考例で用いたノードの機能(画像処理:2値化)を示す説明図である。
【
図9】実施例及び参考例で用いたノードの機能(画像処理:エッジ検出)を示す説明図である。
【
図10】実施例及び参考例で用いたノードの機能(画像処理:エッジ検出、四則演算)を示す説明図である。
【
図11】実施例及び参考例で用いたノードの機能(検出対象判定)を示す説明図である。
【
図12】実施例及び参考例による学習とその結果を比較した説明図(No,1-4)である。
【
図13】実施例及び参考例による学習とその結果を比較した説明図(No,5-8)である。
【
図14】実施例及び参考例による検証結果を比較した説明図(No,1-3)である。
【
図15】実施例及び参考例による学習における正規化した評価値の遷移のグラフを示す図である。
【
図16】実施例の学習によって得られた個体情報の構造を示す図である。
【
図17】実施例の学習によって得られた個体情報で用いられたノードの機能を示す図である。
【
図18】参考例の学習によって得られた個体情報の構造を示す図である。
【
図19】参考例の学習によって得られた個体情報で用いられたノードの機能を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の画像処理システム、及び画像処理プログラムの実施形態について詳細に説明する。ただし、本発明は、以下の実施形態、及び後述する実施例の具体的な内容に限定されるものではない。
【0016】
[第一実施形態]
まず、本発明の第一実施形態に係る画像処理システム、及び画像処理プログラムの第一実施形態について、
図1~
図3を参照して説明する。
図1は、本実施形態の画像処理システムに対応する画像処理装置の構成を示すブロック図であり、
図2は、同画像処理装置による処理手順を示すフローチャートである。また、
図3は、同画像処理装置による処理手順における遺伝子操作の処理手順を示すフローチャートである。
【0017】
本実施形態の画像処理システムは、生物の進化を数学的に模擬した最適化手法である遺伝的操作を用いて、画像から検出対象を検出する画像処理を最適化する。
具体的には、本実施形態の画像処理装置1は、
図1に示すように、機能単位記憶部10、個体生成部11、個体群記憶部12、画像入力部13、画像記憶部14、教師情報入力部15、教師情報記憶部16、画像処理部17、出力情報記憶部18、評価値計算部19、評価結果記憶部20、及び遺伝子操作部21を備えている。
本実施形態の画像処理装置1におけるこれらの各構成は、
図1に示すように一個の情報処理装置に全て備えることができる。また、これらの各構成は、複数の情報処理装置からなる画像処理システムの各装置に分散して備えてもよい。これは、後述する第二実施形態についても同様である。
【0018】
機能単位記憶部10は、ある処理を実行する機能単位であるノード(遺伝子に相当する)をノード番号ごとに記憶する。本実施形態において、このノードとして、画像処理を行うための様々なものを用いることができ、後述する実施例では、
図6~
図11に示すものを用いている。
また、これらのノードは、それぞれの処理の実行に用いるパラメータが存在する場合には、そのパラメータと共に機能単位記憶部10に記憶される。
【0019】
さらに、ノードとして、何ら処理を実行しないものを用いてもよく、複数の処理を実行する機能単位をまとめたものを1個のノード(ノードセット)として用いてもよい。ノードとして何ら処理を実行しないものを含めて用いることにより、例えば個体情報を生成するための初期ノード数の設定値が多すぎた場合などに、実質的なノード数を減らすことができる。
【0020】
本明細書において、「画像処理」には、ノイズ除去のための各種フィルター処理や、輝度補正などの補正処理、2値化処理、エッジ検出処理、四則演算等の狭義の画像処理の他、これに伴って実行され得る検出対象判定処理、及び出力処理などが含まれる。
【0021】
個体生成部11は、機能単位記憶部10に記憶されているノードを用いて、複数のノードの配列からなる個体情報を生成する。このとき、個体生成部11は、複数のノードにもとづいて、複数の個体情報をランダムに生成することができる。
またこのとき、個体生成部11は、個体情報において、有閉路を含み得るネットワーク状に複数のノードの実行順序を定義することができる。このネットワークは、向きが付いたリンクにより構成される有向ネットワークであり、フィードバックが含まれることがある。また、このネットワークには、直線構造と木構造も含まれ得る。
【0022】
このような個体情報を用いれば、直線構造や木構造のみからなる個体情報を用いる場合に比較して、より柔軟な表現力を持つネットワーク構造を含めて学習を行うことができるため、最適解(実用上の最適解,実用解)を導き出す上で優位性がある。すなわち、問題に対してどの構造体が最適解になるかは人が事前に把握することができないため、機械学習の前に構造体の条件を決定することは難しい。このため、個体情報として、有閉路を含み得るネットワーク状に複数のノードの実行順序を定義するものを使用して、幅広い条件で最適解を探索することは、真の最適解を導き出せる可能性を高める上で有効と考えられる。
【0023】
個体群記憶部12は、個体生成部11によって生成された複数の個体情報からなる個体群を記憶する。この個体群として、一の世代又は複数の世代を個体群記憶部12に記憶させることができ、世代番号ごとに個体情報を個体群記憶部12に記憶させることができる。
後述する評価値計算部19は、世代ごとに個体情報を順位付けして、順位付け情報を評価結果記憶部20に記憶させることができる。
【0024】
画像入力部13は、学習用又は検証用の画像を画像処理装置1に入力して、画像識別情報ごとに画像記憶部14に記憶させる。
教師情報入力部15は、画像識別情報に対応させて、出力情報を評価するための教師情報を入力し、当該画像識別情報ごとに教師情報記憶部16に記憶させる。本実施形態において、教師情報は、当該画像識別情報に対応する画像における検出対象の個数を示す数値である。
検出対象(検出対象要素)とは、画像における欠陥(クラック、キズ、汚れなど)、特定の部品、特定の柄等とすることができる。なお、検出対象が画像の全体に相当する場合もあり得る。
【0025】
ここで、教師情報を画像にする場合、最小二乗法による評価では、検出対象物の大きさに評価値が影響を強く受けるため、小さい検出対象がない場合よりも、大きい検出対象の形状が異なる方が、評価値が悪化し易くなる。
例えば、ある画像において三角形を検出対象とした場合に、サイズが10ピクセルの三角形が検出されなかったとする。
このとき、同じ画像におけるより大きい三角形の出力が教師画像のものよりも一回り小さくなったとすると、その差が10ピクセル以上であれば、10ピクセルの三角形が無いことより評価値が悪化することになる。このため、機械学習では小さい三角より大きい三角を教師画像に近づけた方が評価値が良くなる傾向になり、小さい三角形より大きい三角形を一致させるように進化が進み、局所解に陥り易い状態になる。これに対して、本実施形態では検出対象の大きさに拘わらず、未検出の誤差が同一になるため、局所解に陥り難くなっている。
【0026】
画像処理部17は、画像記憶部14から画像を入力すると共に、個体群記憶部12から個体情報を入力して、その個体情報にもとづき当該個体情報に含まれる複数のノードを順次実行する。
このとき、各ノードは、画像から得られる情報を用いて、それぞれの機能に対応する処理を実行する。また、各ノードは、その処理結果にもとづいて、処理結果に対応する次のノードを選択的に実行し得る。したがって、個体情報に含まれるノードであっても、画像処理において、必ずしも全てのノードが実行される訳ではない。勿論、個体情報における全てのノードが実行される場合はある。また、フィードバックが行われることによって、一つの個体情報において1つのみ定義されているノードが、複数回実行されることもあり得る。
【0027】
また、ノードの機能としては、上述したように、ノイズ除去のための各種画像フィルター処理や、輝度補正などの補正処理、2値化処理、エッジ検出処理、四則演算等の狭義の画像処理がある。これらは、画像処理部17によって、主として、検出対象候補を見つけるための処理として行われる。
【0028】
また、ノードの機能としての検出対象判定処理は、画像処理部17によって、画像における一定範囲の検出対象候補をラベリングしてその特徴量を計算し、閾値などにもとづいて、その特徴量を備えた検出対象候補が、正しい検出対象であるか否かを判定する処理として行われる。
なお、検出対象判定処理において、非検出対象候補をラベリングしてその特徴量を計算し、閾値などにもとづきその特徴量を備えていないことにより、検出対象でないことを判定する処理を行うこともできる。
【0029】
さらに、画像処理部17は、出力情報を生成して出力する。
具体的には、画像における検出対象を計数(カウント)して出力情報を生成する。そして、この出力情報を当該画像の画像識別情報ごとで、かつ個体情報の識別情報ごとに出力情報記憶部18に記憶させることができる。
このように、本実施形態における画像処理部17によって得られる出力情報は、画像における検出対象の個数を示す数値として生成される。
【0030】
なお、画像における検出対象の個数を示す数値を取得する機能を評価値計算部19に行わせることもできる。すなわち、画像処理部17により画像処理された後の画像にもとづいて、評価値計算部19が検出対象の個数を示す数値を取得し、これにもとづき評価値を計算する構成とすることも可能である。
【0031】
評価値計算部19は、出力情報記憶部18から出力情報を入力すると共に、教師情報記憶部16からその出力情報に対応する画像識別情報に対応する教師情報を入力する。
そして、出力情報と教師情報を比較して評価値を計算し、得られた評価値を当該画像の画像識別情報ごとで、かつ個体情報の識別情報ごとに評価結果記憶部20に記憶させることができる。
このとき、評価値計算部19は、出力情報と教師情報を用いて、最小二乗法により、平均二乗誤差を評価値として算出することができる。
【0032】
また、評価値計算部19は、個体群記憶部12に記憶されている全ての個体情報(又は1世代分の個体情報)につき評価値を計算し終えて評価結果記憶部20に記憶させた場合などに、これらの評価値にもとづき個体情報を順位付け(ランキング)して、得られた順位付け情報を評価結果記憶部20に記憶させることができる。
【0033】
さらに、評価値計算部19は、画像処理部17による画像処理を終了するか否かを判定するための終了判定を行うことができる。終了判定は、終了条件を満たすか否かにもとづき行うことができ、終了条件を満たす場合、画像処理部17による画像の処理を終了させて、画像処理装置1による処理を終了させることができる。そして、評価結果記憶部20に記憶された最も評価値の高い個体情報が、画像処理を行うための最適化された個体情報として得られる。
【0034】
終了条件としては、予め設定した全ての世代の個体群について画像処理を完了した場合や、一定の世代数以上で進化が発生していない場合などを挙げることができる。
進化が発生していない場合とは、評価値が、比較対象の時点よりも高くなっていない場合である。なお、後述する実施例では、評価値として平均二乗誤差を用いているため、評価値の小さいほうが良い個体情報となる。したがって、一定の世代数について画像処理を行って評価値が小さくなっていなければ、進化していないと判定できる。
【0035】
なお、評価値計算部19からこの終了判定の機能を分離して、本実施形態の画像処理装置1において終了判定を行うための終了判定部を備えてもよい。
【0036】
遺伝子操作部21は、評価結果記憶部20における個体情報の順位付け情報にもとづいて、個体情報の選択又は変更を行って、個体群記憶部12を更新する。
具体的には、遺伝子操作部21は、評価値が高い個体情報を次世代に残すエリート個体保存部と、評価値にもとづいて、一定の確率で個体情報を次世代に残す個体選択部と、2つの個体情報の一部を相互に交換する交叉部と、選択された1つの個体情報の一部又は全部をランダムに書き換える突然変異部とを有するものとすることができる。
【0037】
エリート個体保存部は、各世代の個体群において、一番評価値の良い個体情報などを、無条件で次世代に残す処理を行うことができる。
個体選択部は、各世代の個体群において、評価値の順位の高い個体情報を高い確率で選択して、次世代に残す処理を行うことができる。
【0038】
交叉部は、交叉処理として、複数の個体情報の各ノードの配列における同一(ノード番号)の並びについて、ある確率で入れ替える1様交叉を行うことができる。また、交叉部は、交叉処理として、各ノードの配列における同一の並びの1点を境として、一方の配列を相互に入れ替える1点交叉や、同一の並びの複数点を境として配列を相互に入れ替える複数点交叉を行うこともできる。交叉部は、このような交叉処理を、個体選択部により選択された個体情報に対して行うことができる。
【0039】
突然変異部は、突然変異処理として、機能単位記憶部10に記憶されているノードを用いて、個体情報ごとに一定の確率でその個体情報の一部を書き換えたり、その個体情報の全てを書き換えることができる。突然変異部は、このような突然変異処理を、個体選択部により選択された個体情報に対して行うことができる。また、突然変異部は、突然変異処理として、機能単位記憶部10に記憶されているノードを用いて、新しい個体情報を生成することもできる。
【0040】
なお、同じ個体情報にもとづいて生成された同系列個体が増えると、多様性が失われて進化が袋小路(数学的に局所解に陥った状態)に入ってしまう。一方、同系列以外の個体を増やしすぎると、ランダム探索に近づき、効率的な進化が行われない。
そこで、学習初期では多様性を持たせるために、同系列以外の個体を増やすように突然変異部による処理を行い、学習中期では効率的な進化を実施するために、個体選択部により同系列を増やすことが好ましい。また、進化が止まった場合には、再度多様性を持たせるために突然変異部により同系列以外を増やすことなどを好適に行うことができる。
【0041】
そして、遺伝子操作部21は、新たな世代の個体群を生成して、個体群記憶部12に記憶させる。このとき、遺伝子操作部21は、前の世代の個体群を上書きすることにより、個体群記憶部12を更新することができる。また、複数世代の個体群を世代ごとに記憶させることにより、個体群記憶部12を更新することもできる。
【0042】
次に、本実施形態の画像処理装置による処理手順について、
図2及び
図3を参照して説明する。
まず、画像処理装置1における画像入力部13が、画像を入力する(ステップ10)。また、教師情報入力部15が、教師情報としての数値を入力する(ステップ11)。そして、個体生成部11によって、初期個体群が生成される(ステップ12)。
このとき、個体生成部11は、機能単位記憶部10からノードをランダムに選択して配列することにより個体情報を生成して、個体情報の識別情報ごとに個体群記憶部12に記憶させることができる。また、個体生成部11は、複数の個体情報からなる個体群を一つの世代として、世代番号ごとに複数の世代の個体群を個体群記憶部12に記憶させることもできる。
【0043】
次に、画像処理部17は、個体群記憶部12における個体群の世代ごとに、個体群における全ての個体情報について画像処理を実行する(ステップ13、14、15)。
このとき、画像処理部17は、個体情報ごとに出力情報として、画像における検出対象の個数を示す数値を出力して、出力情報記憶部18に記憶させる。
【0044】
次に、評価値計算部19は、個体情報ごとに、出力情報と教師情報を比較して、評価値を計算する(ステップ16)。
このとき、評価値計算部19による評価値の計算において、例えば最小二乗法を用いて、評価値として平均二乗誤差を算出することができる。
また、評価値計算部19は、得られた評価値を評価結果記憶部20に個体情報ごとに記憶させる。
そして、当該世代の全ての個体情報について、画像の処理から評価値の計算及び記憶までの処理を繰り返し実行する。
【0045】
次に、評価値計算部19は、評価結果記憶部20に記憶されている評価値にもとづいて、個体情報の順位付けを行う(ステップ17)。
また、評価値計算部19は、終了条件が満たされているか否かの判定処理を行う(ステップ18)。終了条件が満たされている場合、画像処理装置1による処理を終了する。
【0046】
終了条件が満たされていない場合、遺伝子操作部21は、遺伝子操作処理を実行する(ステップ19)。
具体的には、
図3に示すように、遺伝子操作部21におけるエリート個体保存部は、最も評価値の高い個体情報を次世代の個体群の個体情報として選択する(ステップ20)。
また、遺伝子操作部21における個体選択部は、評価値の順位の高い個体情報ほど高い確率で次世代の個体群の個体情報として選択する(ステップ21)。
【0047】
さらに、遺伝子操作部21における交叉部は、個体選択部により選択された個体情報に対して、交叉処理を実行して、新たな個体情報を生成する(ステップ22)。
また、遺伝子操作部21における突然変異部は、個体選択部により選択された個体情報にもとづいて、またはこれらの個体情報を用いることなく、突然変異処理を行い、新たな個体情報を生成する(ステップ23)。
なお、エリート個体保存部、個体選択部、交叉部、突然変異部による各処理の順序を、各処理を実行可能な順序の範囲で入れ替えて実行してもよい。
【0048】
このような本実施形態の画像処理装置によれば、画像から検出対象を見つけ出す画像処理技術において、入力画像に画像処理を行って検出対象の個数を示す出力情報を作成し、その出力情報に対して、教師情報としての数値を用いて比較することができる。このため、画像内の検出対象のサイズに拘わらず評価値を同一とすることができ、検出対象領域の割合により評価値が悪化する問題を解消することが可能である。また、従来、教師画像の生成に手間がかかっていた問題や人の過度な干渉が必要になっていた問題を解消することも可能となる。
【0049】
[第二実施形態]
次に、本発明の第二実施形態に係る画像処理システム、及び画像処理プログラムについて、
図4及び
図5を参照して説明する。
図4は、本実施形態の画像処理システムに対応する画像処理装置の構成を示すブロック図であり、
図5は、同画像処理装置による処理手順を示すフローチャートである。
【0050】
本実施形態の画像処理装置1aは、
図4に示すように、機能単位記憶部10a、個体生成部11a、個体群記憶部12a、画像入力部13a、画像記憶部14a、教師情報入力部15a、教師情報記憶部16a、画像処理部17a、出力情報記憶部18a、評価値計算部19a、評価結果記憶部20a、及び遺伝子操作部21aを備えている。また、個体群記憶部12aは、親個体群記憶部121aと子個体群記憶部122aを備えている。
【0051】
本実施形態の画像処理装置1aにおける機能単位記憶部10a、画像入力部13a、画像記憶部14a、教師情報入力部15a、教師情報記憶部16a、出力情報記憶部18a、及び評価結果記憶部20aは、第一実施形態と同様のものとすることができる。また、本実施形態の画像処理装置1aにおけるその他の構成についても、以下に説明する点を除いて、第一実施形態と同様のものとすることができる。
【0052】
個体生成部11aは、機能単位記憶部10に記憶されているノードを用いて、複数のノードの配列からなる個体情報を生成する。このとき、個体生成部11aは、第一実施形態と同様に、個体情報において、有閉路を含み得るネットワーク状に複数のノードの実行順序を定義することができる。
また、本実施形態における個体生成部11aは、個体情報として、複数の親個体情報をランダムに生成し、これら親個体情報からなる初期の親個体群を親個体群記憶部121aに記憶させることができる。
【0053】
遺伝子操作部21aは、親個体群記憶部121aにおける親個体情報に対して遺伝子操作を実行する。
具体的には、まず、親個体群記憶部121aにおける親個体群からランダムに、子個体情報を生成する親個体情報を選択する。
【0054】
遺伝子操作部21aにおけるエリート個体保存部は、選択された親個体情報と同一の子個体情報からなる子個体群を子個体群記憶部122aに記憶させることができる。
そして、遺伝子操作部21aにおける交叉部は、選択された親個体情報に対して交叉処理を実行して、複数の子個体情報を生成し、これら子個体情報からなる子個体群を子個体群記憶部122aに記憶させることができる。
また、遺伝子操作部21aにおける突然変異部は、機能単位記憶部10に記憶されているノードを用いて、選択された親個体情報に対して突然変異処理を実行して、一定の確率で親個体情報の一部を書き換えたり、その全てを書き換えることによって得られた子個体情報からなる子個体群を子個体群記憶部122aに記憶させることができる。また、突然変異部は、突然変異処理として、機能単位記憶部10aに記憶されているノードを用いて、新しい個体情報を生成することもできる。
【0055】
さらに、遺伝子操作部21aは、評価結果記憶部20aにおける子個体情報の順位付け情報にもとづいて、一番評価値の良い子個体情報及び確率で選択された子個体情報を、親個体群からランダムに選択された上記の親個体情報と入れ替えることなどによって、親個体群記憶部121aにおける親個体情報を更新することができる。
【0056】
画像処理部17aは、画像記憶部14aから画像を入力すると共に、子個体群記憶部122aから子個体情報を入力して、その子個体情報にもとづき当該子個体情報に含まれる複数のノードを順次実行する。そして、画像処理部17aは、画像における検出対象を計数して出力情報を生成し、この出力情報を当該画像の画像識別情報ごとで、かつ子個体情報の識別情報ごとに出力情報記憶部18aに記憶させることができる。
【0057】
評価値計算部19aは、出力情報記憶部18aから出力情報を入力すると共に、教師情報記憶部16aからその出力情報に対応する画像識別情報に対応する教師情報を入力する。
そして、出力情報と教師情報を比較して評価値を計算し、得られた評価値を当該画像の画像識別情報ごとで、かつ子個体情報の識別情報ごとに評価結果記憶部20aに記憶させることができる。
【0058】
また、評価値計算部19aは、個体群記憶部12aにおける子個体群記憶部122aに記憶されている全ての子個体情報(又は1世代分の子個体情報)につき評価値を計算し終えて評価結果記憶部20aに記憶させた場合などに、これらの評価値にもとづき子個体情報を順位付けして、得られた順位付け情報を評価結果記憶部20aに記憶させることができる。
さらに、評価値計算部19aは、画像処理部17aによる画像処理を終了するか否かを判定するための終了判定を行うことができる。
【0059】
次に、本実施形態の画像処理装置の処理手順について、
図5を参照して説明する。
まず、画像処理装置1aにおける画像入力部13aが、画像を入力する(ステップ30)。また、教師情報入力部15aが、教師情報としての数値を入力する(ステップ31)。そして、個体生成部11aによって、初期の親個体群が生成される(ステップ32)。
【0060】
このとき、個体生成部11aは、機能単位記憶部10aからノードをランダムに選択して配列することにより親個体情報を生成して、親個体情報の識別情報ごとに個体群記憶部12aにおける親個体群記憶部121aに記憶させることができる。この親個体群記憶部121aにおける親個体群は、後述する親個体群の更新処理によって更新され、設定された世代について以下の処理が繰り返し行われる(ステップ33)。
【0061】
遺伝子操作部21aは、親個体群記憶部121aにおける親個体群からランダムに、子個体情報を生成する親個体情報を選択する。(ステップ34)。そして、選択された親個体情報に対して遺伝子操作を実行する(ステップ35)。なお、ステップ34の親個体情報の選択を、ステップ35の遺伝子操作の一部として、実行してもよい。
【0062】
すなわち、遺伝子操作部21aは、ランダムに選択された親個体情報に対して交叉処理や突然変異処理を実行して、複数の子個体情報を生成し、これら子個体情報からなる子個体群を子個体群記憶部122aに記憶させる。
【0063】
次に、画像処理部17aは、子個体群記憶部122aにおける全ての子個体情報について画像の処理を実行する(ステップ36、37)。
このとき、画像処理部17aは、子個体情報ごとに出力情報として、画像における検出対象の個数を示す数値を出力して、出力情報記憶部18aに記憶させる。
【0064】
次に、評価値計算部19aは、子個体情報ごとに、出力情報と教師情報を比較して評価値を計算し(ステップ38)、得られた評価値を評価結果記憶部20に子個体情報ごとに記憶させる。
そして、子個体群記憶部122aにおける全ての子個体情報について、画像の処理から評価値の計算及び記憶までの処理を繰り返し実行する。
【0065】
次に、評価値計算部19aは、評価結果記憶部20aに記憶されている評価値にもとづいて、子個体情報の順位付けを行う(ステップ39)。
そして、遺伝子操作部21は、評価結果記憶部20aにおける子個体情報の順位付け情報にもとづいて、一番評価値の良い子個体情報及び確率で選択された子個体情報を、親個体群からランダムに選択された上記の親個体情報と入れ替えることにより、個体群記憶部12における親個体群記憶部121aの親個体情報を更新する(ステップ40)。
【0066】
また、評価値計算部19aは、終了条件が満たされているか否かの判定処理を行い(ステップ41)、終了条件が満たされている場合、画像処理装置1aによる処理を終了する。
【0067】
画像処理装置1aによる処理を終了させる場合、評価値計算部19aは、最終世代における全ての個体情報につき評価値を計算し、評価値にもとづき個体情報を順位付けして、得られた順位付け情報を評価結果記憶部20aに記憶させることができる。
【0068】
このような本実施形態の画像処理装置によれば、親個体群から親を選択して子個体情報を生成する時に遺伝子操作が実行されると共に、子個体情報を親個体群における親個体情報と入れ替えることで、親個体群を更新することができる。これにより、第一実施形態に比較して、進化の多様性をより保った状態で、最適な個体情報を探すことが可能となっている。
【0069】
[第三実施形態]
次に、本発明の第三実施形態に係る画像処理システム、及び画像処理プログラムについて説明する。本実施形態の画像処理システムは、教師情報として、画像における検出対象の個数を示す数値と、画像における検出対象の画像(以下、検出対象画像)を用いる点で、第一実施形態と相違する。その他の点は、第一実施形態と同様である。
【0070】
すなわち、本実施形態の画像処理システムに相当する画像処理装置1cは、図示しないが、機能単位記憶部10c、個体生成部11c、個体群記憶部12c、画像入力部13c、画像記憶部14c、教師情報入力部15c、教師情報記憶部16c、画像処理部17c、出力情報記憶部18c、評価値計算部19c、評価結果記憶部20c、及び遺伝子操作部21cを備えている。
【0071】
本実施形態の画像処理装置1cにおいて、教師情報入力部15cは、画像識別情報に対応させて、出力情報を評価するための教師情報として、当該画像識別情報に対応する画像における検出対象の個数を示す数値と、同画像における検出対象画像を入力し、当該画像識別情報ごとに教師情報記憶部16cに記憶させる。
【0072】
また、本実施形態において、画像処理部17cは、画像における検出対象を計数し、得られた検出対象の個数を示す数値と、画像における検出対象画像とを出力情報として生成する。そして、この出力情報を当該画像の画像識別情報ごとで、かつ個体情報の識別情報ごとに出力情報記憶部18cに記憶させることができる。
このように、本実施形態における画像処理部17cによって得られる出力情報は、画像における検出対象の個数を示す数値及び検出対象画像として生成される。
【0073】
評価値計算部19cは、出力情報と教師情報を用いて、検出対象要素の画像(1ピクセルごとの差)と個数に対して重み付けを行い、これらを足し合わせた数値を評価値として算出することができる。具体的には、例えば、以下の式により評価値を算出することができる。
教師画像との平均二乗誤差×重み1.0+教師個数との平均二乗誤差×重み0.1
【0074】
このような本実施形態の画像処理装置によれば、画像から検出対象を見つけ出す画像処理技術において、入力画像に画像処理を行って検出対象の個数を示す数値と検出対象画像を含む出力情報を作成し、その出力情報を教師情報である検出対象の個数を示す数値及び検出対象画像と比較することができる。このため、教師情報として検出対象の個数を示す数値のみを用いる場合に比較して、より優れた個体情報を効率良く生成することが可能となる。
【0075】
例えば、境界線がはっきりとしていない検出対象について、教師情報として画像のみを用いる場合、与えた教師情報の画像の境界線は人が決定した物であるため決定した人間による差違が発生し、良質な学習が行えない可能性がある。しかし、教師情報に個数を用いた場合、このような影響を受けない。そのため、教師情報として検出対象の個数と画像を組み合わせて教師情報とすることで、より良い個体情報が得られる可能性を高めることが可能である。
【0076】
上記実施形態の画像処理装置は、本発明の画像処理プログラムに制御されたコンピュータを用いて実現することができる。コンピュータのCPUは、画像処理プログラムにもとづいてコンピュータの各構成要素に指令を送り、画像処理装置の動作に必要となる所定の処理、例えば、個体生成処理、画像処理、評価値計算処理、遺伝子操作処理等を行わせる。このように、本発明の画像処理装置における各処理、動作は、プログラムとコンピュータとが協働した具体的手段により実現できるものである。
【0077】
プログラムは予めROM,RAM等の記録媒体に格納され、コンピュータに実装された記録媒体から当該コンピュータにプログラムを読み込ませて実行されるが、例えば通信回線を介してコンピュータに読み込ませることもできる。
また、プログラムを格納する記録媒体は、例えば半導体メモリ、磁気ディスク、光ディスク、その他任意のコンピュータで読取り可能な任意の記録手段により構成できる。
【0078】
以上説明したように、本発明の実施形態に係る画像処理システム、及び画像処理プログラムによれば、画像から検出対象を見つけ出す画像処理技術において画像処理をより最適化することが可能である。
【実施例】
【0079】
以下、本発明の実施形態に係る画像処理装置を用いて、画像から検出対象を検出する画像処理を最適化した実験について、
図6~
図19を用いて説明する。
実施例として、本発明の第二実施形態に係る画像処理装置を使用した。
また、参考例として、本発明の第二実施形態に係る画像処理装置の一部を変更したものを使用した。具体的には、参考例では教師情報として画像情報を用いるように変更した。
【0080】
また、参考例において、画像処理部は、検出対象の個数示す数値を出力情報として生成せずに、検出対象を表示する画像を出力情報として生成させ、出力情報記憶部に記憶させた。また、評価値計算部は、教師情報としての画像情報と出力情報をピクセルごとに比較して平均二乗誤差を算出し、これを評価値として評価結果記憶部に記憶させた。また、遺伝子操作は実施例と同様に行った。
【0081】
ここで、評価値は、実施例では数値である出力情報と教師情報を用いて検出対象の個数の差にもとづき平均二乗誤差を計算し、参考例では画像である出力情報と教師情報を用いて1ピクセルごとの差にもとづき平均二乗誤差を計算しているため、これらをそのまま比較することはできない。そこで、これらの評価値が、0~1の間になるように、以下の式を用いて評価値の正規化を行った。
【数1】
【0082】
機能単位記憶部に記憶させたノードを
図6~
図11に示す。
図6に示すノードは、画像処理(ノイズ除去)を行うものであり、
図7に示すノードは、画像処理(輝度補正、組合せ)を行うものであり、
図8に示すノードは、画像処理(2値化)を行うものであり、
図9に示すノードは、画像処理(エッジ検出)を行うものであり、
図10に示すノードは、画像処理(エッジ検出、四則演算)を行うものであり、
図11に示すノードは、検出対象判定を行うものである。
【0083】
画像入力部により入力する学習用及び検証用の画像としては、様々な大きさと形状をもつ丸、三角、四角を表示したものなどを使用した。参考例では教師情報として学習用の画像から三角形を選択して表示した2値化画像を使用し、実施例では教師情報として学習用の画像における三角形の個数を示す数値を使用した。
【0084】
実施例及び参考例ともに、学習で使用した入力画像の数は8枚であり、検証で使用した入力画像の枚数は3枚である。
個体生成部により生成させる初期の親個体情報の個数を150個とし、2個の親個体情報をランダムに選択して親個体群からは削除し、これらの親個体情報に対して遺伝子操作を実行して、52個の子個体情報を生成した(親と同一個体:2、一様交叉個体:20、突然変異個体:30)。
【0085】
また、画像処理を行って、子個体情報の評価結果にもとづいて、評価値が一番よい子個体情報と確率で選択された子個体情報の2個の子個体情報を選択し、これらの子個体情報を親個体情報として親個体群に戻し、以上の処理を設定した世代数分繰り返し実行した。
最大の世代数を5000世代に設定し、進化がストップしたと判定された場合(正規化後の評価値が0になった場合)、処理を終了した。
【0086】
その結果を
図12~
図19に示す。
図12及び
図13は、実施例及び参考例による学習とその結果を比較した説明図であり、
図14は、実施例及び参考例による検証結果を比較した説明図である。また、
図15は、実施例及び参考例による学習における正規化した評価値の遷移のグラフを示す図である。さらに、
図16は、実施例の学習によって得られた個体情報の構造を示す図であり、
図17は、実施例の学習によって得られた個体情報で用いられたノードの機能を示す図である。また、
図18は、参考例の学習によって得られた個体情報の構造を示す図であり、
図19は、参考例の学習によって得られた個体情報で用いられたノードの機能を示す図である。
【0087】
図12~
図14において、参考例の「検出誤差」は、出力画像にある白い物体を目視で数えて、教師画像との誤差を計算した結果である。
また、「備考」の「実施例において検出対象と認識した箇所」は、参考情報として作成したものであり、画像処理部において作成された2値化画像にもとづいて、実施例の出力情報が画像の何処についてその数がカウントされたのかを確認し、そのカウントされた部分に白丸を付したものである。
「出力」に示された画像及び数値は、評価値が一番良い個体情報によるものが示されている。すなわち、これらの出力情報の出力に用いられた個体情報が、実施例及び参考例における最終的に得られた個体情報である。
【0088】
図12及び
図13に示す学習結果においては、実施例及び参考例ともに検出誤差は発生しなかった。しかしながら、評価値の推移を観察すると、
図15に示すように、実施例では412世代で評価値が0となり、学習処理が終了している。これに対して、参考例では評価値は0にならず、最大学習回数(設定した最大世代数)まで世代を重ねた。これは参考例の場合、1ピクセルごとに出力画像と教師画像を比較しているため、1ピクセルでも違う箇所があると0にならないことに起因している。
【0089】
図14に示す検証結果においては、実施例では検出誤差は発生しなかった。また、教師情報を検出対象の数としているが、「備考」に示されるように、検出した箇所は全て三角形であり、検出対象が正確に計数されていた。
【0090】
これに対して、参考例ではサンプルNo.2に検出誤差が生じていた。出力画像を参照すると、教師画像と大幅に違うことが分かる。すなわち、3個の三角形の他、背景が1個の検出対象として認識された結果、検出誤差が1となっている。これは学習データに対して過学習が発生したことに起因していると考えられる。すなわち、学習において背景について過学習がなされて、サンプルNo.2の背景を検出対象として誤認識したと推定される。
【0091】
また、
図16~
図19に示されるように、実施例の学習によれば、参考例よりも優れた個体情報が得られていると考えられ、参考例よりも少ない学習回数でこれを得ることができている。そして、実施例の学習によって得られた個体情報によれば、参考例よりも正確な画像処理を行うことが可能になっている。
【0092】
本発明は、以上の実施形態及び実施例に限定されるものではなく、本発明の範囲内において、種々の変更実施が可能であることは言うまでもない。
例えば、画像処理装置における各構成を複数の情報処理装置に分散して持たせたり、ノードとして実施例で用いたもの以外のものを含めて使用したりすることができる。
また、上記の画像処理装置を画像検査用に用い、画像処理装置を、画像入力部が検査用の画像を入力し、最も評価値の高い個体情報にもとづき画像処理部によって検査用の画像を処理して得られた処理結果情報を記憶する処理結果記憶部を備えた構成とするなど適宜変更することが可能である。
さらに、第二実施形態と第三実施形態を組み合わせた構成とすることもできる。
【産業上の利用可能性】
【0093】
本発明は、設備や製品などの画像データにもとづき検査などを行う場合であって、画像処理が最適化された画像検査用の情報処理装置を得るために、好適に利用することが可能である。
【符号の説明】
【0094】
1,1a 画像処理装置
10,10a 機能単位記憶部
11,11a 個体生成部
12,12a 個体群記憶部
121a 親個体群記憶部
122a 子個体群記憶部
13,13a 画像入力部
14,14a 画像記憶部
15,15a 教師情報入力部
16,16a 教師情報記憶部
17,17a 画像判定部
18,18a 出力情報記憶部
19,19a 評価値計算部
20,20a 評価結果記憶部
21,21a 遺伝子操作部