(57)【要約】  情報処理装置は、複数の学習用の原画像から画像特徴量を算出する特徴量算出部と、前記画像特徴量を用いて前記複数の原画像に対してクラスタリングを行うことで前記複数の原画像を各クラスに分類する分類部と、前記分類部によって分類されたクラスごとに、前記複数の原画像に対する画像処理プログラムの評価値を算出する評価部と、クラスごとに算出された前記評価値を基に遺伝的プログラミングにより画像処理プログラムを生成するプログラム生成部と、クラスごとに、前記評価値が所定条件を満たす画像処理プログラムを関連付けて格納する格納部と、を備える。
2019220608.tif 000002
【特許請求の範囲】
【請求項１】
複数の学習用の原画像から画像特徴量を算出する特徴量算出部と、
前記画像特徴量を用いて前記複数の原画像に対してクラスタリングを行うことで前記複数の原画像を各クラスに分類する分類部と、
前記分類部によって分類されたクラスごとに、前記複数の原画像に対する画像処理プログラムの評価値を算出する評価部と、
クラスごとに算出された前記評価値を基に遺伝的プログラミングにより画像処理プログラムを生成するプログラム生成部と、
クラスごとに、前記評価値が所定条件を満たす画像処理プログラムを関連付けて格納する格納部と、を備えることを特徴とする情報処理装置。
【請求項２】
前記評価部は、クラスごとに、前記評価値の最大値を、前記画像処理プログラムの評価値として算出することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記プログラム生成部は、前記遺伝的プログラミングにより画像処理プログラムを生成する際に、生存選択時に各クラスにおいて前記評価値が最大となる画像処理プログラムを次世代の親として用いることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記分類部は、検査用画像に対して前記特徴量算出部が算出した特徴量を用いてクラスタリングを行い、
当該クラスタリングによって得られたクラスに関連付けられた画像処理プログラムを前記格納部から取得し、当該画像処理プログラムによって前記検査用画像データに対して画像処理を行う画像処理部を備えることを特徴とする請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
特徴量算出部が、複数の学習用の原画像から画像特徴量を算出し、
分類部が、前記画像特徴量を用いて前記複数の原画像に対してクラスタリングを行うことで前記複数の原画像を各クラスに分類し、
評価部が、前記分類部によって分類されたクラスごとに、前記複数の原画像に対する画像処理プログラムの評価値を算出し、
プログラム生成部が、クラスごとに算出された前記評価値を基に遺伝的プログラミングにより画像処理プログラムを生成し、
格納部が、クラスごとに、前記評価値が所定条件を満たす画像処理プログラムを関連付けて格納する、ことを特徴とする情報処理方法。
【請求項６】
コンピュータに、
複数の学習用の原画像から画像特徴量を算出する処理と、
前記画像特徴量を用いて前記複数の原画像に対してクラスタリングを行うことで前記複数の原画像を各クラスに分類する処理と、
分類されたクラスごとに、前記複数の原画像に対する画像処理プログラムの評価値を算出する処理と、
クラスごとに算出された前記評価値を基に遺伝的プログラミングにより画像処理プログラムを生成する処理と、
クラスごとに、前記評価値が所定条件を満たす画像処理プログラムを関連付けて格納する処理と、を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
学習用の原画像と目的画像とを用意し、遺伝的プログラミングによって適応度の高い画像処理プログラムを自動で生成する技術が開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２９９６８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、撮影環境の相違などに起因して、特定の原画像に対して高い適応度を有する画像処理プログラムが生成されることがある。このような画像処理プログラムは、他の原画像に対しても高い適応度を有するわけではないため、生存選択の際に淘汰される可能性がある。この場合、所望の精度を得るまでの学習時間が長くなるおそれがある。【０００５】
１つの側面では、本発明は、短時間で精度の高い画像処理プログラムを生成することができる情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、情報処理装置は、複数の学習用の原画像から画像特徴量を算出する特徴量算出部と、前記画像特徴量を用いて前記複数の原画像に対してクラスタリングを行うことで前記複数の原画像を各クラスに分類する分類部と、前記分類部によって分類されたクラスごとに、前記複数の原画像に対する画像処理プログラムの評価値を算出する評価部と、クラスごとに算出された前記評価値を基に遺伝的プログラミングにより画像処理プログラムを生成するプログラム生成部と、クラスごとに、前記評価値が所定条件を満たす画像処理プログラムを関連付けて格納する格納部と、を備える。
【発明の効果】
【０００７】
短時間で精度の高い画像処理プログラムを生成することができる。
【図面の簡単な説明】
【０００８】
【図１】（ａ）〜（ｃ）は画像処理を例示する図である。
【図２】画像処理プログラムの修正を例示する図である。
【図３】遺伝的プログラミングの概要を説明するための図である。
【図４】遺伝的処理を例示する図である。
【図５】適応度について例示する図である。
【図６】画像処理プログラムの評価を例示する図である。
【図７】実施例１に係る画像処理装置の全体構成を例示するブロック図である。
【図８】学習処理の際に情報処理装置によって実行される各処理を表すフローチャートを例示する図である。
【図９】学習処理の概要を例示する図である。
【図１０】検査処理の際に情報処理装置によって実行される各処理を表すフローチャートを例示する図である。
【図１１】検査処理の概要を例示する図である。
【図１２】情報処理装置のハードウェア構成を説明するためのブロック図である。
【発明を実施するための形態】
【０００９】
実施例の説明に先立って、外観検査の概要について説明する。
【００１０】
外観検査では、カメラなどの撮像装置を用いて検査対象の外観を撮影し、欠陥の有無を判定する。特に、ＦＡ（ファクトリーオートメーション）分野においては、現場の撮影環境に応じたノイズ、影、明るさの変動などが撮影画像に発生することが多い。例えば、図１（ａ）および図１（ｂ）で例示するように、明るさに変動が生じる場合がある。このような場合においても、画像処理プログラムには、環境変化にロバストな処理が望まれている。例えば、図１（ｃ）で例示するように、明るさの異なる画像から、同様の画像が得られることが望まれている。
【００１１】
また、検査装置を開発して実際の製造が開始された後に、図２で例示するように、明るさなどの装置環境が変化して認識率が低下することがある。この場合、画像処理プログラムを修正することになる。また、部品使用が変更になって、部品の向きなどの検査対象が変更されることがある。この場合においても認識率が低下するため、画像処理プログラムを再構築することになる。これらの修正や再構築のためには、生産ラインを停止させることになる。そこで、画像処理プログラムを迅速に修正する技術が求められている。
【００１２】
画像処理プログラムの自動生成手法として、遺伝的プログラミング（ＧＰ：Ｇｅｎｅｔｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ）を用いることが考えられる。画像処理プログラムは、それぞれ個別の画像処理を行うための複数の処理プログラムを備えている。これら複数の処理プログラムを木構造の形で組み合わせて一連のプログラム処理を実行することにより、目的とする画像処理を実現することができる。木構造状の処理プログラムの集団に対して、交叉または突然変異という遺伝的処理を施すことで、適応度の高い画像処理プログラムの生成を行う。適応度とは、目的とする結果に対して、自動生成した木構造状の処理プログラムの出力結果がどの程度良いものであるかの指標である。所定の閾値以上の適応度を持つ木構造状の処理プログラムが得られた場合に学習完了とみなす。その場合に得られた木構造状の処理プログラムが、目的の画像処理を実行する画像処理プログラムとなる。
【００１３】
図３は、遺伝的プログラミングの概要を説明するための図である。まず、複数の初期個体を作成する。図３において、円形状の「個体」として示したもののそれぞれが、木構造状の処理プログラムを有する画像処理プログラムを表している。すなわち、１つの個体が１つの画像処理プログラムであり、木構造状の処理プログラムを有する。図３において、画像処理プログラムに含まれる「Ｆ１」〜「Ｆ５」が処理プログラム（フィルタ）であり、「Ｉ」が入力画像であり、「Ｏ」が出力画像である。複数の初期個体を生成することで、親の母集団（集合）を生成することができる。
【００１４】
次に、親の母集団から複数の個体を選択して取り出す。次に、取り出した複数の個体について、遺伝的処理を行うことで、複数の子個体を生成する。遺伝的処理とは、図４で例示するように、木構造状の処理プログラムに対して交叉または突然変異の遺伝的処理を行う処理のことである。
【００１５】
次に、各子個体について、適応度を算出する。図５は、適応度について例示する図である。まず、学習データを用意する。学習データには、複数の原画像と、各原画像の目的とする結果である複数の目的画像とが含まれている。例えば、目的画像１〜Ｎのそれぞれは、原画像１〜Ｎのそれぞれに対応する。適応度は、図５で例示するように、原画像１〜Ｎのそれぞれに対して各個体の処理を行い、処理結果となる出力画像１〜Ｎのそれぞれと目的画像１〜Ｎのそれぞれとの比較により算出することができる。例えば、適応度は、出力画像１〜Ｎのそれぞれと目的画像１〜Ｎのそれぞれとの類似度が高いほど高くなる指標である。図５の例では、フィルタ構造１の個体の適応度（＝０．９）の方が、フィルタ構造２の個体の適応度（＝０．６）よりも高くなっている。
【００１６】
図３で例示するように、次に生存選択を行う。まず、適応度に応じて個体を１つ決定する。例えば、適応度の最も高い個体を最良個体として決定する。また、ルーレットによるランダム選択により個体を決定する。次に、決定した複数の個体を親の母集団の個体と入れ替える。次に、親の母集団において、各個体の適応度のうち最大値が閾値を上回っていれば、適応度が閾値を上回る個体を最良個体として保存する。
【００１７】
以上のことから、原画像のセットと目的画像のセットとを学習データとして用意することで、自動的に最適な画像処理プログラムを構築することができる。また、撮影環境の異なる原画像のセットと目的画像のセットとを複数用意することで、ロバストな画像処理プログラムを自動構成することが可能となる。
【００１８】
ロバストな画像処理プログラムを自動構成するためには、撮影環境の変化(例えば明るさの変動)を考慮した複数の原画像を学習データとして設定し、学習データすべてにおいて適応度が高くなる木構造を遺伝的プログラミングにより探索していく。各学習データの組ごとに算出した評価値の平均を用いることができる。しかしながら、平均による評価方法では、特定の撮影環境において評価の高い木構造が淘汰される可能性がある。
【００１９】
例えば、図６で例示するように、画像処理プログラム１〜３を学習データの原画像Ａ〜原画像Ｄでそれぞれ評価した際に、画像処理プログラム１は原画像Ａ〜原画像Ｃに対して評価が高く、画像処理プログラム２は原画像Ｄに対して評価が高いと仮定する。画像処理プログラム３はいずれの原画像に対しても他の画像処理プログラムより評価は低いが、その平均値は最も高いと仮定する。この場合、上述した平均による評価方法では、生存選択によって画像処理プログラム３が次世代に残り、特定環境において評価が高かった画像処理プログラム１および画像処理プログラム２は、淘汰されてしまう。そのため、平均による評価方法では汎用性のある木構造の構築が先行し、所望の精度を得るまでの学習速度が遅い問題があった。そのため、長時間の学習実行や、学習データを分割し複数回学習させる必要があり、効率的な学習手法の確立が課題となっている。
【００２０】
そこで、以下の実施例では、短時間で精度の高い画像処理プログラムを自動生成することができる情報処理装置、情報処理方法および情報処理プログラムについて説明する。
【実施例１】
【００２１】
図７は、実施例１に係る画像処理装置２００の全体構成を例示するブロック図である。図７で例示するように、画像処理装置２００は、情報処理装置１００、撮像装置１０１、入力装置１０２、表示装置１０３などを備える。情報処理装置１００は、教示部１０、特徴量算出部２０、クラス分類部３０、データ記憶部４０、プログラム生成部５０、プログラム処理部６０、クラス判定部７０などを備える。プログラム生成部５０は、適応度算出部５１を備える。【００２２】
撮像装置１０１は、カメラなどの装置である。撮像装置１０１は、対象物を撮影する。対象物とは、検査対象である。入力装置１０２は、情報処理装置１００に入力される画像の画像種類（原画像、目的画像および検査用画像）を入力するための装置であり、キーボード、マウスなどである。表示装置１０３は、情報処理装置１００による処理結果を表示する装置であり、液晶ディスプレイなどである。【００２３】
撮像装置１０１が取得した画像は、入力画像として情報処理装置１００に入力される。ユーザは、入力装置１０２を用いて入力画像の画像種類を入力する。教示部１０は、入力画像について、画像種類を関連付ける。学習処理においては、各入力画像は、学習データとして入力される。各入力画像に対して、原画像または目的画像が関連付けられる。データ記憶部４０は、画像種類が関連付けられた入力画像を格納する。例えば、原画像と、当該原画像から得られる目的画像とが対として格納される。原画像および目的画像がそれぞれ複数枚入力される場合には、原画像１〜Ｎに対して、当該原画像１〜Ｎに対応する目的画像１〜Ｎが格納される。【００２４】
（学習処理）
図８は、学習処理の際に、情報処理装置１００によって実行される各処理を表すフローチャートを例示する図である。以下、図８を参照しつつ、学習処理について説明する。まず、特徴量算出部２０は、データ記憶部４０に格納されている原画像１〜Ｎのそれぞれの画像特徴量を算出する（ステップＳ１）。例えば、画像処理プログラムは、画像処理における空間フィルタや閾値処理の木構造状の組合せである。画像処理プログラムによる画像処理は、画像全域で施される。そこで、本実施例においては、原画像の画像特徴を画像全体の明るさや鮮明度と考え、画像の輝度ヒストグラム、空間周波数情報等を画像特徴量とする。【００２５】
クラス分類部３０は、特徴量算出部２０が算出した画像特徴量を用いて、Ｋ−ｍｅａｎｓ法等により、原画像１〜Ｎに対してクラスタリングを行う（ステップＳ２）。それにより、クラス分類部３０は、原画像１〜Ｎを各クラスに分類する。データ記憶部４０は、データ記憶部４０は、原画像１〜Ｎのそれぞれに対して、属するクラスを関連付けて、クラス情報として格納する。また、データ記憶部４０は、原画像１〜Ｎの画像特徴量の分布および各クラスの中心となる画像特徴量を各クラスに関連付けて、画像特徴量分布として格納する（ステップＳ３）。【００２６】
次に、プログラム生成部５０は、原画像１〜Ｎを用いて複数の初期個体を親の母集団（初期プログラム群）として生成する（ステップＳ４）。生成されたプログラムは、データ記憶部４０に格納される。ステップＳ４は、図３において、初期個体の生成に相当する。次に、適応度算出部５１は、各クラスに分類された原画像を用いて、クラスごとに、親の母集団の各個体について適応度（評価値）を算出する（ステップＳ５）。例えば、クラス１に原画像１〜３が含まれる場合には、原画像１〜３を画像処理した場合の出力画像１〜３のそれぞれと目的画像１〜３のそれぞれとの類似度の平均値等を適応度として算出する。【００２７】
次に、プログラム生成部５０は、次世代の親を決定する（ステップＳ６）。例えば、プログラム生成部５０は、親の母集団から一様乱数により、クラス数Ｍと同数の個体をランダムに決定する。【００２８】
次に、プログラム生成部５０は、ステップＳ６で選択した親から、進化過程（交叉と突然変異）により複数の子個体を生成する（ステップＳ７）。例えば、ステップＳ６で選択したＭ個の個体から一様乱数により２個体を選択して交叉を行う。次に、適応度算出部５１は、クラスごとに、各子個体の適応度を算出する（ステップＳ８）。次に、プログラム生成部５０は、クラスごとに、条件が成立するか否かを判定する（ステップＳ９）。例えば、クラスごとに、子個体の適応度の最大値が閾値以上となっているか否かが判定される。【００２９】
ステップＳ９で「Ｎｏ」と判定された場合、プログラム生成部５０は、クラスごとの評価値の分布に応じて、子個体群から複数の子個体を選択し、親の母集団と入れ替えることで親の母集団を更新する（ステップＳ１０）。この場合の選択手法として、例えば、各クラスにおいて評価値が最大となるＭ個の子個体や、評価値に応じたルーレット選択などを用いることができる。例えば、評価値が高いほど選択される確率が高く、評価値が低いほど選択される確率が低くなるようなルーレット選択とすることができる。例えば、ステップＳ１０で選択したＭ個の子個体を、ステップＳ６で決定した個体の代わりに入れ替える。その後、ステップＳ６から再度実行される。ステップＳ９で「Ｙｅｓ」と判定された場合、プログラム生成部５０は、クラスごとに最大の適応度を有する個体（画像処理プログラム）を出力する（ステップＳ１１）。出力された画像処理プログラムは、各クラスと関連付けられ、データ記憶部４０に格納される。【００３０】
図９は、以上の学習処理の概要を例示する図である。図９で例示するように、原画像Ａ〜Ｄに対してクラスタリングを行うことで、原画像Ａ〜ＣがクラスＡに属し、原画像ＤがクラスＢに属すると仮定する。進化過程によって得られた画像処理プログラム１〜３の適応度を、クラスごとに算出する。画像処理プログラム１は、クラスＡに対して高い適応度を有している。画像処理プログラム２は、クラスＢに対して高い適応度を有している。画像処理プログラム３は、クラスＡおよびクラスＢの両方に対して、平均的な適応度を有している。クラスＡおよびクラスＢに対する平均値では、画像処理プログラム３が最も高い適応度を有する。したがって、平均による評価方法では、画像処理プログラム３が生存個体となる。これに対して、本実施例では、画像処理プログラム１がクラスＡに対する生存個体となり、画像処理プログラム２がクラスＢに対する生存個体となる。したがって、本実施例によれば、一部の学習データに対して非常に有効な画像処理プログラムが、淘汰されずに次世代に残ることになる。【００３１】
（検査処理）
図１０は、検査処理の際に、情報処理装置１００によって実行される各処理を表すフローチャートを例示する図である。以下、図１０を参照しつつ、検査処理について説明する。検査対象について撮像装置１０１が取得した画像は、入力画像として情報処理装置１００に入力される。検査処理では、教示部１０は、入力画像の種類を検査用画像とする。特徴量算出部２０は、検査用画像から画像特徴量を算出する（ステップＳ２１）。この場合の画像特徴量の種類は、学習処理で用いた画像特徴量と同じものである。クラス判定部７０は、データ記憶部４０に格納されている各クラス中心の画像特徴量と、ステップＳ２１で算出された画像特徴量との距離を算出する（ステップＳ２２）。例えば、クラス中心の画像特徴量からのユークリッド距離、マハラノビス距離などを用いることができる。【００３２】
次に、クラス判定部７０は、最も距離の短いクラスを対象クラスとして判定する（ステップＳ２３）。次に、プログラム処理部６０は、データ記憶部４０に格納されている画像処理プログラムのうち、ステップＳ２３で判定された対象クラスの画像処理プログラムを用いて、検査用画像に対して画像処理を行う（ステップＳ２４）。その後、例えば、良否判定などが行われることになる。【００３３】
図１１は、以上の検査処理の概要を例示する図である。図１１で例示するように、検査用画像から画像特徴量が算出される。算出された画像特徴量を用いて、クラス判定が行われる。検査用画像がクラスＡに属すると判定された場合には、クラスＡの最良の画像処理プログラムによって画像処理される。検査用画像がクラスＢに属すると判定された場合には、クラスＢの最良の画像処理プログラムによって画像処理される。それにより、適切な画像処理が行われることになる。【００３４】
本実施例によれば、複数の学習用の原画像から算出された画像特徴量を用いて原画像に対してクラスタリングを行うことで、原画像が各クラスに分類される。分類されたクラスごとに、原画像に対する画像処理プログラムの適応度が評価値として算出される。クラスごとに算出された評価値を基に遺伝的プログラミングにより画像処理プログラムが生成され、クラスごとに、評価値が所定条件を満たす画像処理プログラムが関連付けられて格納される。この構成によれば、学習処理の際に、短時間で（例えば１回の学習で）学習データの特徴に応じた精度の高い画像処理プログラムを複数構築することができる。また、検査処理の際には、検査用画像の画像特徴量に応じて選択的に、精度の高い画像処理プログラムを実行することができる。特に、平均による評価を行なう場合には学習データの選定にノウハウが必要であったが、本実施例においては学習データの画像特徴の差を気にすることなく学習ができる。それにより、専門家でなくても簡単な画像教示により高性能な画像処理プログラムを構築することができ、生産ラインの段替え時の早期構築や、異常動作に対する迅速な改善が可能となる。【００３５】
図１２は、情報処理装置１００のハードウェア構成を説明するためのブロック図である。図１２で例示するように、情報処理装置１００は、ＣＰＵ２０１、ＲＡＭ２０２、記憶装置２０３等が備わっている。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１は、中央演算処理装置である。ＣＰＵ２０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２は、ＣＰＵ２０１が実行するプログラム、ＣＰＵ２０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置２０３は、不揮発性記憶装置である。記憶装置２０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。記憶装置２０３は、情報処理プログラムを記憶している。ＣＰＵ２０１が記憶装置２０３に記憶されている情報処理プログラムを実行することで、情報処理装置１００の各部が実現される。なお、情報処理装置１００の各部は、専用の回路などのハードウェアであってもよい。【００３６】
上記実施例において、特徴量算出部２０が、複数の学習用の原画像から画像特徴量を算出する特徴量算出部の一例として機能する。クラス分類部３０が、前記画像特徴量を用いて前記複数の原画像に対してクラスタリングを行うことで前記複数の原画像を各クラスに分類する分類部の一例として機能する。適応度算出部５１が、前記分類部によって分類されたクラスごとに、前記複数の原画像に対する画像処理プログラムの評価値を算出する評価部の一例として機能する。プログラム生成部５０が、クラスごとに算出された前記評価値を基に遺伝的プログラミングにより画像処理プログラムを生成するプログラム生成部の一例として機能する。データ記憶部４０が、クラスごとに、前記評価値が所定条件を満たす画像処理プログラムを関連付けて格納する格納部の一例として機能する。【００３７】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００３８】
１０  教示部
２０  特徴量算出部
３０  クラス分類部
４０  データ記憶部
５０  プログラム生成部
５１  適応度算出部
６０  プログラム処理部
７０  クラス判定部
１００  情報処理装置
１０１  撮像装置
１０２  入力装置
１０３  表示装置
２００  画像処理装置
【図１】
2019220608.tif 000003
【図２】
2019220608.tif 000004
【図３】
2019220608.tif 000005
【図４】
2019220608.tif 000006
【図５】
2019220608.tif 000007
【図６】
2019220608.tif 000008
【図７】
2019220608.tif 000009
【図８】
2019220608.tif 000010
【図９】
2019220608.tif 000011
【図１０】
2019220608.tif 000012
【図１１】
2019220608.tif 000013
【図１２】
2019220608.tif 000014
【国際調査報告】
2019220608.tif 000015
2019220608.tif 000016
2019220608.tif 000017
2019220608.tif 000018