(57)【特許請求の範囲】
【請求項１】
撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理装置であって、
前記画像処理プログラムに基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補を複数生成する生成部と、
入力画像と目標となる処理結果とを含む学習用データのうち少なくとも前記入力画像の解像度を低下させることによって生成された低解像学習用データを用いて、前記次世代の画像処理プログラムの複数の候補の各々の適応度を評価する第１評価部と、
前記第１評価部の評価結果に基づいて、前記次世代の画像処理プログラムの複数の候補に対して絞り込みを行い、絞り込んだ前記次世代の画像処理プログラムの複数の候補の各々の適応度を、前記学習用データを用いて評価する第２評価部と、
前記第２評価部の評価結果に基づいて、前記次世代の画像処理プログラムを決定する決定部と、を備え、
前記第１評価部は、前記適応度を評価する際に、前記解像度を低下させる際に用いられた前記入力画像の縮小率に合わせて、前記画像処理プログラムが有する画像処理フィルタのパラメータを調整することを特徴とする情報処理装置。
【請求項２】
前記第２評価部は、前記次世代の画像処理プログラムの複数の候補の中から、前記第１評価部が評価した前記適応度が上位所定割合の候補又は上位所定数の候補に絞り込むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記低解像学習用データを作成する作成部を更に備え、
前記作成部は、前記縮小率の値を段階的に変更しながら、前記入力画像の解像度を低下させる処理と、前記低解像学習用データを用いた前記画像処理プログラムの前記適応度の評価と、を繰り返し、繰り返しの結果得られた前記適応度に基づいて、前記低解像学習用データを作成する際に用いる前記縮小率を決定する、ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理方法であって、
前記画像処理プログラムに基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補を複数生成し、
入力画像と目標となる処理結果とを含む学習用データのうち少なくとも前記入力画像の解像度を低下させることによって生成された低解像学習用データを用いて、前記次世代の画像処理プログラムの複数の候補の各々の適応度を評価し、
前記低解像学習用データを用いた評価結果に基づいて、前記次世代の画像処理プログラムの複数の候補に対して絞り込みを行い、絞り込んだ前記次世代の画像処理プログラムの複数の候補の各々の適応度を、前記学習用データを用いて評価し、
前記学習用データを用いた評価結果に基づいて、前記次世代の画像処理プログラムを決定する、処理をコンピュータが実行し、
前記次世代の画像処理プログラムの複数の候補の各々の適応度を評価する際に、前記解像度を低下させる際に用いられた前記入力画像の縮小率に合わせて、前記画像処理プログラムが有する画像処理フィルタのパラメータを調整することを特徴とする情報処理方法。
【請求項５】
コンピュータに、撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理させるための情報処理プログラムであって、
前記画像処理プログラムに基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補を複数生成し、
入力画像と目標となる処理結果とを含む学習用データのうち少なくとも前記入力画像の解像度を低下させることによって生成された低解像学習用データを用いて、前記次世代の画像処理プログラムの複数の候補の各々の適応度を評価し、
前記低解像学習用データを用いた評価結果に基づいて、前記次世代の画像処理プログラムの複数の候補に対して絞り込みを行い、絞り込んだ前記次世代の画像処理プログラムの複数の候補の各々の適応度を、前記学習用データを用いて評価し、
前記学習用データを用いた評価結果に基づいて、前記次世代の画像処理プログラムを決定する、処理を前記コンピュータに実行させ、
前記コンピュータに前記次世代の画像処理プログラムの複数の候補の各々の適応度を評価する処理を実行させる際に、前記解像度を低下させる際に用いられた前記入力画像の縮小率に合わせて、前記画像処理プログラムが有する画像処理フィルタのパラメータを調整させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
工業製品の外観検査などでは、撮像装置を用いて工業製品の外観を撮影し、欠陥の有無を判定している。ここで、ＦＡ（Factory Automation）分野においては、現場の撮影環境に応じたノイズや、影、明るさの変動などが撮影画像に影響を与えることが多く、欠陥部を抽出する画像処理プログラムには、環境変化にロバストな処理の実現が望まれている。また、工業製品の外観を検査する外観検査装置を運用する場合、検査対象の変更や、外観検査装置の改良に起因して検査環境が変化したときに、画像処理プログラムの再構築が必要になることがある。そのため、外観検査装置においては、画像処理方法を容易に構築できることが求められている。【０００３】
外観検査装置に使用される画像処理装置では、カメラなどで撮影した画像を画像処理フィルタで画像処理することで出力画像を得ている。ここで、従来の画像処理装置では、画像処理フィルタを遺伝的プログラミング（Genetic Programming：GP）に基づいた進化的計算を行って自動生成する技術が知られている。この技術では、画像処理プログラムを示す個体は、それぞれが画像処理のプログラム要素（画像処理フィルタ）に対応する１以上のノードを有する木構造で表現されており、ある世代の親個体に基づいて子個体が生成され、学習用データとして与えられた入力画像を用いて、子個体に基づく画像処理が実行される。そして、その処理結果と、学習用データとして与えられた目標となる処理結果（例えば、目標画像）との比較によって、子個体の適応度が算出される。また、適応度に基づいて世代交代の際に入れ替える個体が選択されることで、画像処理プログラムが最適化されていく（例えば、非特許文献１等参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】青木紳也、長尾智晴、「木構造画像変換の自動構築法ＡＣＴＩＴ」、情報メディア学会誌Ｖｏｌ．５３，Ｎｏ．６、１９９９年６月２０日、ｐ．８９０−８９２
【発明の概要】
【発明が解決しようとする課題】
【０００５】
遺伝的プログラミングによる画像処理プログラムの生成過程では、世代交代のたびに子個体の適応度が算出される。ここで、最終的に高性能の画像処理プログラムを得るためには多くの世代交代が行われるが、世代交代の回数が多くなるほど、適応度の算出処理にかかる全体の時間が長くなる。また、高機能の画像処理プログラムを生成するために個体の木構造が複雑になるほど、木構造に基づく画像処理も複雑になり、それに伴って個々の子個体の適応度を算出する時間も長くなる。また、画像処理のプログラム要素（画像処理フィルタ）が空間フィルタであることもあり、対象となる画像サイズが大きくなると、適応度の計算時間が長くなる。このように適応度算出にかかる時間が長くなると、最適な個体が得られるまでの時間が増大してしまう。【０００６】
１つの側面では、本発明は、遺伝的プログラミングによる次世代の画像処理フィルタの決定に要する時間を短縮することが可能な情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様では、情報処理装置は、撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理装置であって、前記画像処理プログラムに基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補を複数生成する生成部と、入力画像と目標となる処理結果とを含む学習用データのうち少なくとも前記入力画像の解像度を低下させることによって生成された低解像学習用データを用いて、前記次世代の画像処理プログラムの複数の候補の各々の適応度を評価する第１評価部と、前記第１評価部の評価結果に基づいて、前記次世代の画像処理プログラムの複数の候補に対して絞り込みを行い、絞り込んだ前記次世代の画像処理プログラムの複数の候補の各々の適応度を、前記学習用データを用いて評価する第２評価部と、前記第２評価部の評価結果に基づいて、前記次世代の画像処理プログラムを決定する決定部と、を備え、前記第１評価部は、前記適応度を評価する際に、前記解像度を低下させる際に用いられた前記入力画像の縮小率に合わせて、前記画像処理プログラムが有する画像処理フィルタのパラメータを調整する。
【発明の効果】
【０００８】
遺伝的プログラミングによる次世代の画像処理フィルタの決定に要する時間を短縮することができる
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る画像処理プログラム生成処理の概要を示す図である。
【図２】画像処理装置のハードウェア構成を示す図である。
【図３】画像処理装置の機能ブロック図である。
【図４】第１の実施形態に係る画像処理装置の処理を示すフローチャートである。
【図５】第２の実施形態に係る画像処理装置の処理を示すフローチャートである。
【図６】図５のステップＳ１１の処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
≪第１の実施形態≫
以下、情報処理装置の第１の実施形態について、図１〜図４に基づいて詳細に説明する。
【００１１】
まず、図１に基づいて、遺伝的プログラミングによる画像処理プログラムの生成処理の概要について説明する。
【００１２】
（画像処理プログラム生成処理の概要）
図１は、画像処理プログラムの生成処理手順の概要を示す図である。前提として、画像処理プログラムの生成処理の前に、１つ以上の学習用データ２０が用意される。学習用データ２０には、入力画像２１と、入力画像２１に対して画像処理を施したときの処理結果（本第１の実施形態では目標画像２２）とが含まれる。入力画像２１は、例えば、カメラによって被写体を撮像することによって得られる。
【００１３】
遺伝的プログラミングによる画像処理プログラムの生成処理では、個体（図１において白丸で表記）は、１つ以上の画像処理フィルタを組み合わせて構成される。例えば、図１の左上に示すように、個体は木構造で定義され、木構造の各ノードに画像処理フィルタが組み込まれる。なお、図１の左上において、“Ｆ”はノードに組み込まれた画像処理フィルタを示し、“Ｉ”は入力端子を示し、“Ｏ”は出力端子を示す。また、個体に組み込むことが可能な複数の画像処理フィルタも、あらかじめ用意される。
【００１４】
遺伝的プログラミングによる画像処理プログラムの生成処理は、例えば、以下のように実行される。
【００１５】
まず、ステップＳ１００において、母集団１１に含められる複数の初期個体が生成される。各初期個体のノードには、あらかじめ用意された複数の画像処理フィルタの中からランダムに選択された画像処理フィルタが組み込まれる。また、生成された各初期個体について、適応度が算出される。なお、適応度の算出処理の詳細については後述する。
【００１６】
次いでステップＳ１０２では、母集団１１の中から、一定数（図１では、例えば２つ）の親個体がランダムに選択される。次いで、ステップＳ１０４では、選択された一定数（２つ）の親個体に対して進化過程の処理が施されることで、２以上の一定数の子個体が生成される。進化過程では、２つの親個体に対して交叉処理および突然変異処理が行われる。２つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、３つ以上の子個体が生成されてもよい。すなわち、生成される子個体の数は、母集団１１から選択される親個体の数以上となる。
【００１７】
次いで、ステップＳ１０６では、生成された各子個体について、適応度が算出される。なお、適応度の算出処理の詳細については、後述する。
【００１８】
ここで、生成された子個体および元の親個体のうちのいずれかの適応度が所定の閾値以上であった場合には、その個体が最終的な画像処理プログラムとして出力され、プログラム生成処理が終了する。
【００１９】
一方、これらすべての個体の適応度が所定の閾値未満であった場合には、ステップＳ１０８において、生成された各子個体および元の２つの親個体を含む個体群１２の中から、生存選択が行われる。この生存選択では、個体群１２の中から、算出された適応度が最大の個体が選択される。また、個体群１２内の残りの個体の中から、所定の方法で個体が１つ選択される。例えば、残りの個体の中から、適応度に応じた確率で個体が選択される（ルーレット選択）。
【００２０】
このような生存選択によって選択された２つの個体は、ステップＳ１１０において、母集団１１に含まれる個体のうち、親個体として選択された２つの個体と入れ替えられる。これにより、母集団１１に含まれる個体が次世代の個体へ変更される。そして、適応度が所定の閾値以上となる個体が出現するまで、同様の処理が繰り返される。
【００２１】
以上のような手順によって生成される画像処理プログラムの用途としては、例えば、ＦＡ（Factory Automation）分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、欠陥が生じた箇所を抽出する、位置合わせを行う箇所を抽出するといった用途が考えられる。
【００２２】
このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像処理プログラムの再構築の必要が生じる場合がある。このため、画像処理プログラムの構築の容易性が求められている。また、照明条件の変化や被写体の形状、位置姿勢のバラツキなどの撮像環境の変化に対するロバスト性が高い画像処理プログラムを構築することが求められている。
【００２３】
遺伝的プログラミングを利用することで、入力画像２１とこれに対応する目標画像２２とをあらかじめ用意しておくだけで、このような用途で使用可能な画像処理プログラムを容易に生成することができる。また、それぞれ撮像環境が異なる入力画像２１と目標画像２２とのペア（学習用データ２０）を複数用意しておくことで、撮像環境の変化に対するロバスト性が高い画像処理プログラムを自動生成することもできる。
【００２４】
（画像処理装置の構成）
次に、上述した画像処理プログラム生成処理を実施する情報処理装置としての画像処理装置１００の構成等について、図２に基づいて説明する。図２には、画像処理装置１００のハードウェア構成の一例が概略的に示されている。本第１の実施形態に係る画像処理装置１００は、例えば、図２に示すようなコンピュータ（情報処理装置）として実現される。
【００２５】
画像処理装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等である。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。プロセッサ１０１には、バス１０９を介して、ＲＡＭ１０２と複数の機器（周辺機器）が接続されている。
【００２６】
ＲＡＭ１０２は、画像処理装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００２７】
バス１０９に接続される機器には、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、読み取り装置１０６、通信インタフェース１０７、及びネットワークインタフェース１０８等が含まれる。
【００２８】
ＨＤＤ１０３は、画像処理装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００２９】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、表示装置１０４ａの画面に画像を表示させる。表示装置１０４ａとしては、液晶ディスプレイや有機ＥＬ（ElectroLuminescence）ディスプレイなどがある。
【００３０】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３１】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着可能となっている。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａには、光ディスク、光磁気ディスク、半導体メモリなどが含まれる。
【００３２】
通信インタフェース１０７は、接続された外部デバイスとの間でデータの送受信を行う。本第１の実施形態では、通信インタフェース１０７に撮像装置としてのカメラ１０７ａが接続されており、通信インタフェース１０７は、カメラ１０７ａから送信された画像データをプロセッサ１０１に送信する。
【００３３】
ネットワークインタフェース１０８は、ネットワークを介して他の装置との間でデータの送受信を行う。
【００３４】
（画像処理装置１００が備える処理機能）
図３は、画像処理装置が備える処理機能の構成例を示すブロック図（機能ブロック図）である。画像処理装置１００は、画像取得部１１１、画像処理部１１２、プログラム生成部１２０、プログラム記憶部１３０、学習用データ記憶部１４１、低解像学習用データ記憶部１４２を有する。画像取得部１１１、画像処理部１１２及びプログラム生成部１２０の処理は、例えば、画像処理装置１００のプロセッサ１０１が所定のプログラムを実行することで実現される。また、画像処理部１１２の処理の一部は、プログラム記憶部１３０に保存された画像処理プログラムを、画像処理装置１００のプロセッサ１０１が実行することで実現される。プログラム記憶部１３０、学習用データ記憶部１４１、及び低解像学習用データ記憶部１４２は、例えば、画像処理装置１００のＨＤＤ１０３の記憶領域として実現される。
【００３５】
画像取得部１１１は、カメラ１０７ａによって撮像された画像のデータをカメラ１０７ａから取得し、プログラム生成部１２０または画像処理部１１２に出力する。
【００３６】
プログラム生成部１２０は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部１３０に保存する。なお、プログラム生成部１２０の詳細については、後述する。
【００３７】
画像処理部１１２は、カメラ１０７ａによって撮像された画像のデータを画像取得部１１１を介して取得する。画像処理部１１２は、プログラム記憶部１３０に保存された画像処理プログラムにしたがって、取得した画像に画像処理を施す。処理後の画像は、例えば、表示装置１０４ａに表示される。
【００３８】
プログラム記憶部１３０は、プログラム生成部１２０によって生成された画像処理プログラムを記憶する。
【００３９】
学習用データ記憶部１４１は、それぞれ入力画像および目標画像の各データを含む学習用データを、１つ以上記憶する。学習用データに含まれる入力画像は、例えば、画像処理装置１００に接続されたカメラ１０７ａによって撮像された画像であってもよい。
【００４０】
なお、本第１の実施形態では、一例として、生成される画像処理プログラムを用いた処理の結果として、画像が出力されるものとするが、処理の結果として画像以外の情報が出力されるようにしてもよい。そのような処理の結果としては、例えば、入力画像における領域を示す位置情報、入力画像の分類結果や評価結果などが考えられる。このように処理の結果が画像でない場合、学習用データには、目標となる処理結果を示す、画像以外の情報が、目標画像の代わりに含まれていてもよい。
【００４１】
低解像学習用データ記憶部１４２は、学習用データ記憶部１４１に格納されている学習用データの入力画像および目標画像の各データを低解像度化したデータ（低解像学習用データ）を１つ以上記憶する。
【００４２】
プログラム生成部１２０は、生成部及び決定部としての学習制御部１２１、第１評価部及び第２評価部としての適応度算出部１２２、作成部としての低解像度化部１２３を有する。
【００４３】
学習制御部１２１は、プログラム生成部１２０でのプログラム生成処理全体を統括的に制御する。例えば、学習制御部１２１は、図１に示す、母集団１１に含める初期個体の生成（Ｓ１００）、個体の進化過程の処理（Ｓ１０４）、適応度に基づく生存選択（Ｓ１０８）、最終的な画像処理プログラムの出力、生存選択された個体による母集団１１の更新（Ｓ１１０）などの処理を実行する。
【００４４】
適応度算出部１２２は、個体を評価するための適応度を算出する。具体的には、適応度算出部１２２は、状況に応じて、学習用データ記憶部１４１に記憶された学習用データと、低解像学習用データ記憶部１４２に記憶された低解像学習用データと、を使い分け、各画像処理プログラムの適応度を算出する。例えば、低解像学習用データを用いる場合、適応度算出部１２２は、画像処理プログラムに従って、低解像学習用データに含まれる入力画像に画像処理を施し、得られた画像と、画像処理された入力画像に対応する目標画像との類似度を、個体の適応度として算出する。また、学習用データを用いる場合、適応度算出部１２２は、画像処理プログラムに従って、学習用データに含まれる入力画像に画像処理を施し、得られた画像と、画像処理された入力画像に対応する目標画像との類似度を、個体の適応度として算出する。
【００４５】
低解像度化部１２３は、学習用データ記憶部１４１に格納されている学習用データを取得し、学習用データに含まれる入力画像と目標画像を所定の縮小率ｓで縮小する。なお、本第１の実施形態では、縮小率ｓが予め定められているものとする。
【００４６】
（画像処理装置１００の処理）
図４は、画像処理装置１００により実行される、プログラム生成処理の詳細を示すフローチャートである。
【００４７】
図４のステップＳ１０において、学習制御部１２１は、学習用データの設定のための入力操作を受け付ける。例えば、学習用データ記憶部１４１に記憶された学習用データの中から、本処理で使用される学習用データが指定される。あるいは、本処理で使用される学習用データが学習用データ記憶部１４１に登録される。
【００４８】
次いで、ステップＳ１２では、低解像度化部１２３が、学習用データ記憶部１４１から学習用データを取得し、取得した学習用データを低解像度化することで、低解像学習用データを作成する。本第１の実施形態では、低解像度化部１２３は、予め定められている縮小率ｓを用いて、学習用データに含まれる入力画像と目標画像とを低解像度化する。低解像度化部１２３は、低解像度化した学習用データ（低解像学習用データ）を低解像学習用データ記憶部１４２に格納する。なお、以下においては、低解像度化された入力画像及び目標画像を、「低解像入力画像」及び「低解像目標画像」と呼ぶものとする。
【００４９】
次いで、ステップＳ１４では、学習制御部１２１は、母集団１１に含める所定個数の初期個体を生成する（図１のステップＳ１００参照）。各初期個体は、木構造の各ノードに対して、画像処理フィルタをランダムに選択して組み合わせることで生成される。また、各初期個体の木構造は、例えば、あらかじめ決められた複数の木構造の中からランダムに選択される。あるいは、木構造自体がランダムに決定されてもよい。
【００５０】
次いで、ステップＳ１６では、学習制御部１２１は、母集団１１から個体を１つ選択し、選択された個体についての、低解像学習用データを用いた適応度の算出を適応度算出部１２２に依頼する。
【００５１】
次いで、ステップＳ１８では、適応度算出部１２２は、ステップＳ１６で選択された個体の適応度を、低解像学習用データを用いて算出（評価）する。具体的には、適応度算出部１２２は、選択された個体に対応する画像処理プログラムにしたがって、低解像学習用データに含まれる低解像入力画像に画像処理を施す。このとき、画像処理プログラムの構成要素である画像処理フィルタのパラメータは、縮小率ｓに合わせて調整する（例えば、空間フィルタのカーネル径を縮小率ｓに合わせて小さくする）ものとする。適応度算出部１２２は、画像処理によって得られた画像と、低解像入力画像に対応付けられた低解像目標画像との類似度を、選択された個体の適応度として算出する。なお、低解像学習用データが複数登録されている場合には、適応度算出部１２２は、例えば、各低解像学習用データを用いて類似度を算出し、それらの類似度の平均値を個体の適応度とする。
【００５２】
次いで、ステップＳ２０では、学習制御部１２１は、母集団１１に含まれるすべての個体を選択済みか否かを判定する。このステップＳ２０の判断が否定された場合、すなわち未選択の個体がある場合、学習制御部１２１は、ステップＳ１６に戻り、次の個体を選択する。一方、ステップＳ２０の判断が肯定された場合、すなわち全ての個体を選択済みの場合、学習制御部１２１は、ステップＳ２２に移行する。
【００５３】
全ての個体についての低解像学習用データを用いた適応度の算出が行われ、ステップＳ２２に移行すると、学習制御部１２１は、適応度が上位Ｎ個の個体を特定する（絞り込む）。ここで、Ｎの値は、事前に設定されているものとする。
【００５４】
次いで、ステップＳ２４では、学習制御部１２１は、特定したＮ個の個体のいずれかを選択し、選択された個体についての、学習用データを用いた適応度の算出を適応度算出部１２２に依頼する。
【００５５】
次いで、ステップＳ２６では、適応度算出部１２２は、ステップＳ２４で選択された個体の適応度を、学習用データを用いて算出（評価）する。具体的には、適応度算出部１２２は、選択された個体に対応する画像処理プログラムにしたがって、学習用データに含まれる入力画像に画像処理を施す。適応度算出部１２２は、画像処理によって得られた画像と、入力画像に対応付けられた目標画像との類似度を、選択された個体の適応度として算出する。なお、学習用データが複数登録されている場合には、適応度算出部１２２は、例えば、各学習用データを用いて類似度を算出し、それらの類似度の平均値を個体の適応度とする。
【００５６】
次いで、ステップＳ２８では、学習制御部１２１は、Ｎ個の個体のすべてを選択済みか否かを判定する。このステップＳ２８の判断が否定された場合、すなわち未選択の個体がある場合、学習制御部１２１は、ステップＳ２４に戻り、次の個体を選択する。一方、ステップＳ２８の判断が肯定された場合、すなわちＮ個全ての個体を選択済みの場合、学習制御部１２１は、ステップＳ３０に移行する。
【００５７】
Ｎ個全ての個体の適応度が算出され、ステップＳ３０に移行すると、学習制御部１２１は、母集団１１に含まれる個体の中から、２つの親個体をランダムに選択する（図１のステップＳ１０２参照）。
【００５８】
次いで、ステップＳ３２では、学習制御部１２１は、進化過程の処理により子個体を生成する（（図１のステップＳ１０４参照））。この場合、学習制御部１２１は、選択された２つの親個体の間で交叉を行うことで、２つ以上の所定数の子個体を生成する。また、学習制御部１２１は、生成された子個体のいずれかのノードに突然変異を発生させ、元の子個体のノードに組み込まれていた画像処理フィルタを他の画像処理フィルタに置き換える。
【００５９】
次いで、ステップＳ３４では、学習制御部１２１は、子個体の１つを選択し、選択された個体についての、低解像学習用データを用いた適応度の算出を適応度算出部１２２に依頼する。
【００６０】
次いで、ステップＳ３６では、適応度算出部１２２は、ステップＳ３４で選択された個体の適応度を、低解像学習用データを用いて算出（評価）する。このステップＳ３６の具体的な処理は、上述したステップＳ１８と同様である。
【００６１】
次いで、ステップＳ３８では、学習制御部１２１は、すべての子個体を選択済みか否かを判定する。このステップＳ３８の判断が否定された場合、すなわち未選択の子個体がある場合、学習制御部１２１は、ステップＳ３４に戻り、次の子個体を選択する。一方、ステップＳ３８の判断が肯定された場合、すなわち全ての子個体を選択済みの場合、学習制御部１２１は、ステップＳ４０に移行する。
【００６２】
全ての子個体についての低解像学習用データを用いた適応度の算出が行われ、ステップＳ４０に移行すると、学習制御部１２１は、適応度が上位Ｍ個の子個体を特定する（絞り込む）。ここで、Ｍの値は、事前に設定されているものとし、上述したＮと同一の値でもよいし、異なる値でもよい。
【００６３】
次いで、ステップＳ４２では、学習制御部１２１は、特定したＭ個の子個体のいずれかを選択し、選択された子個体についての、学習用データを用いた適応度の算出を適応度算出部１２２に依頼する。
【００６４】
次いで、ステップＳ４４では、適応度算出部１２２は、ステップＳ４２で選択された子個体の適応度を、学習用データを用いて算出（評価）する。このステップＳ４４の具体的な処理は、上述したステップＳ２６と同様である。
【００６５】
次いで、ステップＳ４６では、学習制御部１２１は、Ｍ個の子個体のすべてを選択済みか否かを判定する。このステップＳ４６の判断が否定された場合、すなわち未選択の子個体がある場合、学習制御部１２１は、ステップＳ４２に戻り、次の子個体を選択する。一方、ステップＳ４６の判断が肯定された場合、すなわちＭ個全ての子個体を選択済みの場合、学習制御部１２１は、ステップＳ４８に移行する。なお、本第１の実施形態では、ステップＳ３４〜Ｓ４６の処理が、図１のステップＳ１０６に相当する。本第１の実施形態では、上述したように、適応度算出部１２２は、低解像学習用データを用いて適応度を算出した結果に基づいて子個体を厳選し、厳選した子個体のみについて、高解像度の学習用データを用いて適応度を算出している。このため、すべての子個体について、高解像度の学習用データを用いた適応度の算出処理を行う場合に比べて、短時間で適応度の算出処理を行うことが可能となっている。
【００６６】
ステップＳ４８に移行すると、学習制御部１２１は、ステップＳ３０で選択された各親個体の適応度、およびステップＳ４４で算出された各子個体の適応度の中から、最大適応度を特定し、最大適応度が所定の閾値より大きいか否かを判定する。学習制御部１２１は、最大適応度が閾値より大きい場合、ステップＳ５４の処理に移行し、最大適応度が閾値以下の場合、ステップＳ５０の処理に移行する。
【００６７】
ステップＳ５０に移行すると、学習制御部１２１は、生存させる個体として、ステップＳ３０で選択された各親個体と、ステップＳ３２で生成された各子個体の中から、適応度が最大の個体を選択する（図１のステップＳ１０８参照）。さらに、学習制御部１２１は、残りの個体の中から生存させる個体を１つ選択する。この選択では、残りの個体それぞれの適応度に応じた確率で生存させる個体が選択される（ルーレット選択）。
【００６８】
次いで、ステップＳ５２では、学習制御部１２１は、母集団１１に含まれる個体のうちステップＳ３０で選択された親個体を、ステップＳ５０で選択された２つの個体に入れ替える（図１のステップＳ１１０参照）。これによって、母集団１１の世代が更新される。その後は、ステップＳ３０に戻り、上述したようにステップＳ３０以降の処理が実行されることになる。
【００６９】
一方、ステップＳ４８の判断が肯定され、ステップＳ５４に移行すると、学習制御部１２１は、ステップＳ４８で適応度が閾値より大きいと判定された個体に対応する画像処理プログラムをプログラム記憶部１３０に格納して、処理を終了する。
【００７０】
以上、詳細に説明したように、本第１の実施形態によると、学習制御部１２１は、母集団１１に含まれる画像処理プログラム（親個体）に基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補（子個体）を生成する（Ｓ３２）。また、適応度算出部１２２は、学習用データを低解像度化した低解像学習用データを用いて、子個体の適応度を算出し（Ｓ３６）、算出結果に基づいて、子個体を絞り込み（Ｓ４０）、絞り込んだ子個体の適応度を学習用データを用いて算出する（Ｓ４４）。そして、学習制御部１２１は、適応度算出部１２２の算出結果に基づいて、新たに利用する画像処理プログラムを決定し、プログラム記憶部１３０に格納する（Ｓ５４）。すなわち、本第１の実施形態では、低解像学習用データを用いた適応度の簡易的な算出処理は子個体の全てについて行うものの、当該簡易的な算出処理で算出された適応度に基づいて子個体を厳選し、厳選された子個体のみに対して、解像度の高い学習用データを用いた適応度の算出処理を行うこととしている。これにより、新たに利用する画像処理プログラムを決定する場合のように、適応度が高い子個体を見つけ出したい場合において、高解像度の学習用データを用いた適応度の算出処理を、厳選した一部の子個体についてのみ行うようにすることができる。したがって、高解像度の学習用データを用いた適応度の算出処理の回数を減らすことができるため、適応度算出部１２２による処理に要する時間を短くすることができる。なお、実際のシミュレーション結果からは、縮小率ｓを０．５とすることで、適応度算出部１２２による処理に要する時間を５０％短縮することができることが分かった。したがって、本第１の実施形態によれば、新たに利用する画像処理プログラムの決定に要する時間を短縮することができる。特に、子個体の木構造が複雑になるほど、木構造が示す画像処理プログラムを用いた入力画像の処理時間が長くなるが、本第１の実施形態を適用することで、処理時間の短縮を図ることができる。また、ＦＡ分野において、高解像度カメラを用いてより大きな撮影視野で微細な欠陥を検出する場合のように、入力画像の画像サイズが大きくなったとしても、画像処理プログラムを決定するために要する時間を許容範囲に収めることが可能となる。
【００７１】
また、本第１の実施形態では、初期個体の適応度の算出の際にも、ステップＳ１６〜Ｓ２８に示すように、ステップＳ３４〜Ｓ４６と同様の処理を行うこととしている。これにより、初期個体の適応度の算出に要する時間を短縮することができるので、この点からも、新たに利用する画像処理プログラムの決定に要する時間を短縮することができる。
【００７２】
また、本第１の実施形態では、低解像度化部１２３が、学習用データを低解像度化するため、学習用データを用意するだけで、上述した図４の処理を実現することができる。ただし、これに限らず、画像処理装置１００から低解像度化部１２３を省略してもよい。この場合、画像処理装置１００は、外部から低解像学習用データを取得するようにすればよい。
【００７３】
なお、上記第１の実施形態では、低解像度化部１２３が、学習用データに含まれる入力画像と目標画像の両方を低解像度化する場合について説明したが、これに限られるものではない。すなわち、低解像度化部１２３は、少なくとも入力画像を低解像度化すればよい。
【００７４】
≪第２の実施形態≫
以下、第２の実施形態について説明する。
【００７５】
図５は、本第２の実施形態の画像処理装置１００の処理を示すフローチャートである。図５の処理と上述した第１の実施形態の処理（図４）とを比較するとわかるように、本第２の実施形態では、ステップＳ１１の処理（縮小率ｓの算出処理）が追加されている。また、本第２の実施形態では、図４のステップＳ２２、Ｓ２８，Ｓ４０，Ｓ４６に代えて、ステップＳ２２’、Ｓ２８’、Ｓ４０’、Ｓ４６’を実行することとしている。以下、第１の実施形態と異なる部分を中心に、第２の実施形態について説明する。
【００７６】
上述した第１の実施形態では、縮小率ｓを予め定めておくこととしたが、本第２の実施形態では、図５のステップＳ１１において、図６のフローチャートに沿った処理を実行することで、縮小率ｓを自動的に決定する。
【００７７】
図６の処理では、まず、ステップＳ６０において、学習制御部１２１が、許容誤差σを設定する。なお、許容誤差σについては、予め入力されている値を用いるものとする。
【００７８】
次いで、ステップＳ６２では、学習制御部１２１は、学習用データを用いて、母集団に含まれる画像処理プログラムの適応度Ｃを算出する。なお、学習用データが複数存在する場合には、各学習用データを用いて適応度Ｃをそれぞれ算出する。
【００７９】
次いで、ステップＳ６４では、学習制御部１２１は、変数Ｂを０．９に設定する。
【００８０】
次いで、ステップＳ６６では、低解像度化部１２３が、学習用データを縮小率Ｂで低解像度化する。なお、学習用データが複数存在する場合には、各学習用データを低解像度化する。
【００８１】
次いで、ステップＳ６８では、学習制御部１２１が、ステップＳ６６において低解像度化した学習用データを用いて、母集団１１に含まれる画像処理プログラムの適応度ｃを算出する。この場合においても、低解像度化した学習用データが複数存在する場合には、各低解像度化した学習用データを用いて適応度ｃをそれぞれ算出する。
【００８２】
次いで、ステップＳ７０では、学習制御部１２１が、適応度Ｃと適応度ｃの誤差（誤差平均）ｄを算出する。学習用データが複数存在する場合には、１つ目の学習用データを用いて算出した適応度Ｃと、１つ目の学習用データを低解像度化したものを用いて算出した適応度の差分、２つ目の学習用データを用いて算出した適応度Ｃと、２つ目の学習用データを低解像度化したものを用いて算出した適応度の差分、…というように差分を複数算出し、複数の差分の平均を誤差平均ｄとする。
【００８３】
次いで、ステップＳ７２では、ｄがσよりも大きいか否かを判断する。このステップＳ７２の判断が否定された場合には、ステップＳ７４に移行し、学習制御部１２１は、縮小率ｓを変数Ｂの現在の値とする。次いで、ステップＳ７６では、学習制御部１２１は、変数Ｂを０．１だけ小さくし、ステップＳ６６に戻る。ステップＳ６６に戻った場合、新たに設定された変数Ｂを用いて、ステップＳ６６以降の処理を実行する。そして、ステップＳ７２の判断が肯定された段階で、図６の全処理（ステップＳ１１の全処理）を終了する。
【００８４】
なお、図６の処理が終了した場合、縮小率ｓは、誤差平均ｄがσよりも大きくなる直前のＢの値となる（ステップＳ７４参照）。
【００８５】
以上のように、本第２の実施形態では、ステップＳ１１の処理（図６の処理）を実行することで、縮小率ｓとして適切な値を自動的に定めることが可能となっている。なお、上述した変数Ｂの初期値＝０．９や、ステップＳ７６でＢの値を減算する値＝０．１は、一例である。したがって、各値としてその他の値を設定してもよい。
【００８６】
また、本第２の実施形態では、図５のステップＳ２２’において、適応度が上位ｎ％の個体を特定し、ステップＳ４０’において、適応度が上位ｍ％の子個体を特定することとしている。このように、学習用データを用いた適応値の算出に用いる個体や子個体を特定する際に、所定割合の個体や子個体を特定するようにすることで、母集団に含まれる個体数によらずに、適切な処理を行うことができる。
【００８７】
なお、上記第２の実施形態のステップＳ１１の処理は、第１の実施形態で説明した図４のステップＳ１０とステップＳ１２の処理の間に行うこととしてもよい。
【００８８】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【００８９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９０】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００９１】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【００９２】
１００  画像処理装置（情報処理装置）
１０７ａ  カメラ（撮像装置）
１２１  学習制御部（生成部、決定部）
１２２  適応度算出部（第１評価部、第２評価部）
１２３  低解像度化部（作成部）
【図１】
0006798607.tif 000002
【図２】
0006798607.tif 000003
【図３】
0006798607.tif 000004
【図４】
0006798607.tif 000005
【図５】
0006798607.tif 000006
【図６】
0006798607.tif 000007