(57)【要約】  画像処理プログラムの生成時間を短縮する。  演算部（１ｂ）は、母集団（２）に含まれる各個体の適応度のうち最大適応度の増加率を計算し、増加率が第１の閾値以上の場合、子の生成数を示す設定値を第１の個数に設定し、増加率が第１の閾値より低い場合、設定値を第１の個数より大きい第２の個数に設定する設定処理（Ｓ１）と、母集団（２）に含まれる各個体の中から選択された親個体（４ａ，４ｂ）に基づいて、設定値の数だけ子個体（５ａ，５ｂ）を生成する進化処理（Ｓ２）と、親個体（４ａ，４ｂ）と子個体（５ａ，５ｂ）の中から適応度が最大である個体（６）を選択し、母集団（２）に含まれる個体の１つを個体（６）と入れ替える生存選択処理（Ｓ３）とを繰り返し実行する。
2017056320.tif 000002
【特許請求の範囲】
【請求項１】
遺伝的プログラミングを用いたプログラム生成装置において、
それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、前記母集団に含まれる前記各個体の適応度とを記憶する記憶部と、
前記母集団に含まれる前記各個体の適応度のうち最大適応度の増加率を計算し、前記増加率が第１の閾値以上の場合、子の生成数を示す設定値を第１の個数に設定し、前記増加率が前記第１の閾値より低い場合、前記設定値を前記第１の個数より大きい第２の個数に設定する設定処理と、
前記母集団に含まれる前記各個体の中から選択された親個体に基づいて、前記設定値の数だけ子個体を生成する進化処理と、
前記親個体の適応度を前記記憶部から取得するとともに前記子個体の適応度を計算し、前記親個体と前記子個体の中から適応度が最大である選択個体を選択し、前記母集団に含まれる前記個体の１つを前記選択個体と入れ替えるとともに、前記選択個体の適応度を前記記憶部に登録する生存選択処理と、
を繰り返し実行する演算部と、
を有するプログラム生成装置。
【請求項２】
前記設定処理では、前記増加率が前記第１の閾値以上の場合、その後に前記設定処理を第１の回数だけ実行する間、前記設定値を前記第１の個数に設定し続け、前記増加率が前記第１の閾値より低い場合、その後に前記設定処理を前記第１の回数より少ない第２の回数だけ実行する間、前記設定値を前記第２の個数に設定し続ける、
請求項１記載のプログラム生成装置。
【請求項３】
前記設定値が前記第２の個数に設定された前記設定処理が前記第２の回数だけ実行された後の前記設定処理では、前記増加率が第３の閾値より低い場合、前記設定値を前記第１の個数より小さい第３の個数に設定する、
請求項２記載のプログラム生成装置。
【請求項４】
前記演算部は、さらに、前記進化処理において生成された前記子個体のそれぞれの適応度のばらつきに基づいて、前記設定値を増減させる、
請求項１乃至３のいずれか１項に記載のプログラム生成装置。
【請求項５】
前記演算部は、さらに、前記最大適応度が第４の閾値以上である場合には、前記母集団から適応度の低い個体を削除するとともに、前記設定値を増加させる、
請求項１乃至４のいずれか１項に記載のプログラム生成装置。
【請求項６】
前記設定処理では、前記親個体のそれぞれの適応度のばらつきに基づいて、前記設定値を増減する、
請求項１乃至５のいずれか１項に記載のプログラム生成装置。
【請求項７】
前記設定処理では、前記親個体を示す木構造のサイズに基づいて、前記設定値を増減する、
請求項１乃至６のいずれか１項に記載のプログラム生成装置。
【請求項８】
前記演算部は、さらに、前記母集団に含まれる前記各個体の適応度のばらつきが第５の閾値より小さい場合、前記最大適応度に基づいて前記母集団に含まれる前記個体の数を増減する、
請求項１乃至７のいずれか１項に記載のプログラム生成装置。
【請求項９】
遺伝的プログラミングを用いたプログラム生成方法において、
コンピュータが、
それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、前記母集団に含まれる前記各個体の適応度とを記憶する記憶部を参照して、前記母集団に含まれる前記各個体の適応度のうち最大適応度の増加率を計算し、前記増加率が第１の閾値以上の場合、子の生成数を示す設定値を第１の個数に設定し、前記増加率が前記第１の閾値より低い場合、前記設定値を前記第１の個数より大きい第２の個数に設定する設定処理と、
前記母集団に含まれる前記各個体の中から選択された親個体に基づいて、前記設定値の数だけ子個体を生成する進化処理と、
前記親個体の適応度を前記記憶部から取得するとともに前記子個体の適応度を計算し、前記親個体と前記子個体の中から適応度が最大である選択個体を選択し、前記母集団に含まれる前記個体の１つを前記選択個体と入れ替えるとともに、前記選択個体の適応度を前記記憶部に登録する生存選択処理と、
を繰り返し実行する、
プログラム生成方法。
【請求項１０】
遺伝的プログラミングを用いてプログラムを生成する生成プログラムにおいて、
コンピュータに、
それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、前記母集団に含まれる前記各個体の適応度とを記憶する記憶部を参照して、前記母集団に含まれる前記各個体の適応度のうち最大適応度の増加率を計算し、前記増加率が第１の閾値以上の場合、子の生成数を示す設定値を第１の個数に設定し、前記増加率が前記第１の閾値より低い場合、前記設定値を前記第１の個数より大きい第２の個数に設定する設定処理と、
前記母集団に含まれる前記各個体の中から選択された親個体に基づいて、前記設定値の数だけ子個体を生成する進化処理と、
前記親個体の適応度を前記記憶部から取得するとともに前記子個体の適応度を計算し、前記親個体と前記子個体の中から適応度が最大である選択個体を選択し、前記母集団に含まれる前記個体の１つを前記選択個体と入れ替えるとともに、前記選択個体の適応度を前記記憶部に登録する生存選択処理と、
を繰り返す処理を実行させる、
生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム生成装置、プログラム生成方法および生成プログラムに関する。
【背景技術】
【０００２】
所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術が注目されている。この技術は、入力画像と目標となる処理結果（例えば、目標画像）とを用いて、画像処理のための部分プログラム（例えば、画像フィルタのプログラム）を組み合わせて生成される画像処理プログラムを、遺伝的プログラミングによって最適化していくものである。【０００３】
また、遺伝的アルゴリズムを用いて最適解を探索する技術の例として、探索された解の評価値の上昇率を観測し、ある１つの探索状態における探索の効果が低下したと判定すると、別の探索状態に遷移する演算装置が提案されている。さらに、ファジィ推論におけるルールの学習を遺伝的アルゴリズムによって実現する技術の例として、新規に生成されるルール数を１世代前の個体の数に依存して変化させるようにしたファジィ推論装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２２５７５２号公報
【特許文献２】特開平６−１１９１７６号公報
【非特許文献】
【０００５】
【非特許文献１】青木紳也、長尾智晴、「木構造画像変換の自動構築法ＡＣＴＩＴ」、情報メディア学会誌Ｖｏｌ．５３，Ｎｏ．６、１９９９年６月２０日、ｐ．８９０−８９２
【発明の概要】
【発明が解決しようとする課題】
【０００６】
画像処理プログラムを遺伝的プログラミングによって生成する際、通常、親個体を基に生成される子個体の数は各世代で一定とされる。ここで、生成される子個体の数が少ない場合には、解の探索空間において１世代当たりで探索される範囲が狭い。このため、子個体の適応度が上昇しにくくなって、学習の進行速度が低下する場合がある。一方、生成される子個体の数が多い場合には、探索範囲が広がることから、世代ごとの子個体の適応度は上昇しやすい。しかし、世代ごとに適応度の算出回数が増加し、１世代当たりの学習時間が長くなる。このため、子個体の生成数を多くしても、プログラム生成にかかる時間を必ずしも短縮できないという問題がある。【０００７】
１つの側面では、本発明は、画像処理プログラムの生成時間を短縮可能なプログラム生成装置、プログラム生成方法および生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、遺伝的プログラミングを用いたプログラム生成装置が提供される。このプログラム生成装置は、記憶部と演算部とを有する。記憶部は、それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、母集団に含まれる各個体の適応度とを記憶する。演算部は、母集団に含まれる各個体の適応度のうち最大適応度の増加率を計算し、増加率が第１の閾値以上の場合、子の生成数を示す設定値を第１の個数に設定し、増加率が第１の閾値より低い場合、設定値を第１の個数より大きい第２の個数に設定する設定処理と、母集団に含まれる各個体の中から選択された親個体に基づいて、設定値の数だけ子個体を生成する進化処理と、親個体の適応度を記憶部から取得するとともに子個体の適応度を計算し、親個体と子個体の中から適応度が最大である選択個体を選択し、母集団に含まれる個体の１つを選択個体と入れ替えるとともに、選択個体の適応度を記憶部に登録する生存選択処理と、を繰り返し実行する。【０００９】
また、１つの案では、上記のプログラム生成装置と同様の処理がコンピュータによって実行されるプログラム生成方法が提供される。
さらに、１つの案では、上記のプログラム生成装置と同様の処理をコンピュータに実行させる生成プログラムが提供される。
【発明の効果】
【００１０】
１つの側面では、画像処理プログラムの生成時間を短縮できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。
【図２】画像処理プログラムの生成処理手順の比較例を示す図である。
【図３】交叉の例を示す図である。
【図４】突然変異の例を示す図である。
【図５】子個体の数と探索範囲との関係を模式的に示す図である。
【図６】子個体の生成数が一定の場合における最大適応度の変化の例を示す図である。
【図７】画像処理装置のハードウェア構成例を示す図である。
【図８】画像処理装置が備える処理機能の構成例を示すブロック図である。
【図９】プログラム生成処理手順の例を示すフローチャートである。
【図１０】進化・適応度算出処理の手順の例を示すフローチャートである。
【図１１】世代交代に伴う最大適応度および子個体の生成数の変化の例を示す図である。
【図１２】時間経過に伴う最大適応度の変化の例を示す図である。
【図１３】母集団の個体数と探索範囲との関係を模式的に示す図である。
【図１４】変形例１における処理手順の例を示すフローチャートである。
【図１５】変形例２における処理手順の例を示すフローチャートである。
【図１６】変形例３における処理手順の例を示すフローチャートである。
【図１７】変形例４における処理手順の例を示すフローチャートである。
【図１８】変形例５における処理手順の例を示すフローチャートである。
【図１９】変形例６における処理手順の例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。第１の実施の形態に係るプログラム生成装置１は、画像処理プログラムを遺伝的プログラミングによって生成する装置である。このプログラム生成装置１は、記憶部１ａおよび演算部１ｂを有する。記憶部１ａは、例えば、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、あるいはＨＤＤ（Hard Disk Drive）、フラッシュメモリなどの不揮発性記憶装置として実装される。演算部１ｂは、例えば、プロセッサである。
【００１３】
記憶部１ａは、複数の個体を含む母集団２を示す母集団情報２ａを記憶する。母集団２に含まれる個体は、それぞれ木構造で表される画像処理プログラムである。また、記憶部１ａは、母集団２に含まれる各個体について算出された適応度３ａ，３ｂ，・・・を記憶する。
【００１４】
後述するように、母集団２に含まれる個体の少なくとも一部は、演算部１ｂによって更新される。また、母集団２に含まれる個体が更新されると、更新後の個体についての適応度によって、記憶部１ａに記憶される適応度も更新される。
【００１５】
演算部１ｂは、設定処理（ステップＳ１）と、進化処理（ステップＳ２）と、生存選択処理（ステップＳ３）とを繰り返し実行する。
ステップＳ１の設定処理では、次のような処理が実行される。演算部１ｂは、母集団２に含まれる各個体の適応度３ａ，３ｂ，・・・のうち、最大適応度の増加率を計算する。例えば、演算部１ｂは、現時点を基準に母集団２が所定回数だけ更新された期間における最大適応度の増加率を計算する。
【００１６】
演算部１ｂは、算出された増加率に基づいて、ステップＳ２での子個体の生成数を示す設定値を設定する。具体的には、演算部１ｂは、増加率が所定の閾値Ｔｈ１以上である場合、設定値をＰ１に設定する。一方、演算部１ｂは、増加率が閾値Ｔｈ１より低い場合、設定値をＰ１より大きいＰ２に設定する。
【００１７】
次に、ステップＳ２の進化処理では、演算部１ｂは、母集団２に含まれる個体の中から選択された親個体４ａ，４ｂに基づいて、ステップＳ１で設定された設定値の数だけ子個体を生成する。図１の例では、２つの子個体５ａ，５ｂが生成されている。なお、親個体は、あらかじめ決められた一定数だけ選択される。また、親個体の選択は、ステップＳ１の開始時からステップＳ２での子個体の生成までの間の任意のタイミングで、演算部１ｂによって実行されればよい。
【００１８】
次に、ステップＳ３の生存選択処理では、次のような処理が実行される。演算部１ｂは、親個体４ａ，４ｂについての各適応度を記憶部１ａから取得する。また、演算部１ｂは、ステップＳ２で生成した子個体５ａ，５ｂについての各適応度を計算する。なお、例えば、入力画像と、この入力画像に対して画像処理を施したときの目標画像とがあらかじめ用意される場合には、個体の適応度は次のようにして算出される。演算部１ｂは、個体に対応する画像処理プログラムを実行して、入力画像に画像処理を施す。演算部１ｂは、画像処理によって得られた画像と目標画像とを比較して、これらの画像間の類似度を適応度として算出する。
【００１９】
演算部１ｂは、次に、親個体４ａ，４ｂと子個体５ａ，５ｂの中から、適応度が最大である個体６を選択する。ここで、演算部１ｂは、例えば、選択された個体６の適応度が所定の閾値Ｔｈ２より大きい場合、個体６を最終的な画像処理プログラムとして出力する。一方、演算部１ｂは、個体６の適応度が閾値Ｔｈ２以下である場合、母集団２に含まれる個体の１つを、選択された個体６と入れ替える。例えば、演算部１ｂは、親個体４ａ，４ｂのいずれかを母集団２から削除して、選択された個体６を母集団２に含める。これによって、母集団２が更新される。また、記憶部１ａに記憶された適応度も、個体６の適応度によって更新される。
【００２０】
この後、ステップＳ１に戻り、更新後の母集団２に含まれる個体の適応度のうち最大適応度が計算されて、算出された最大適応度の増加率に応じて設定値が設定される。
以上のプログラム生成装置１の処理では、母集団２に含まれる個体の適応度のうち最大適応度の増加率に基づいて、子個体の生成数が増減される。増加率が閾値Ｔｈ１以上の場合には、子個体の生成数はＰ１に抑えられる。これにより、ステップＳ３での子個体の適応度の算出回数が抑制され、増加率を一定以上に保持したまま、１世代当たりの処理時間を短縮することができる。
【００２１】
一方、増加率が閾値Ｔｈ１より低い場合には、子個体の生成数がＰ１からＰ２に増加される。子個体の生成数が増加すると、解の探索空間における探索範囲が拡大する。これにより、生成された各子個体の適応度のうちの最大値が増加しやすくなる。そして、その最大値が算出された子個体によって母集団２が更新されることで、母集団２に含まれる個体の適応度のうち最大適応度の増加率が上昇する可能性が高まる。
【００２２】
ここで、子個体の生成数が増加すると、ステップＳ３での子個体の適応度の算出回数も増加するため、１世代当たりの処理時間が増大する。このため、最大適応度を増加させるために子個体の生成数を長期間増やしたままにすることは、プログラム生成にかかる時間が長くなり、好ましくない。
【００２３】
これに対して、上記のプログラム生成装置１は、最大適応度の増加率が低くなった期間のみ、子個体の生成数を一時的に増加させる。これにより、必要最小限の期間のみ、子個体の生成数が増加されて、１世代当たりの適応度の算出回数が増加する。したがって、全体として、子個体の適応度の算出回数を抑制しつつ、最大適応度の増加率をある程度維持することができ、プログラム生成が完了するまでにかかる時間を短縮することができる。
【００２４】
〔第２の実施の形態〕
次に、第２の実施の形態に係る画像処理装置について説明する。第２の実施の形態に係る画像処理装置は、図１に示したプログラム生成装置１と同様の処理機能と、この処理機能によって生成された画像処理プログラムを実行して画像処理を行う機能とを備える。
【００２５】
以下の説明では、まず、図２〜図４を用いて、遺伝的プログラミングによる画像処理プログラムの生成処理の比較例について説明し、次に、図５を用いて、この比較例における問題点について説明した後、第２の実施の形態に係る画像処理装置の詳細について説明する。
【００２６】
＜画像処理プログラム生成処理の比較例＞
図２は、画像処理プログラムの生成処理手順の比較例を示す図である。
画像処理プログラムの生成処理の前に、１つ以上の学習データ２０が用意される。学習データ２０には、入力画像２１と、入力画像２１に対して画像処理を施したときの目標画像２２とが含まれる。入力画像２１は、例えば、カメラによって被写体を撮像することによって得られる。
【００２７】
遺伝的プログラミングによる画像処理プログラムの生成処理では、個体は、１つ以上の部分プログラムを組み合わせて構成される。例えば、図２の左上に示すように、個体は木構造で定義される。
【００２８】
個体に組み込むことが可能な複数の部分プログラムも、あらかじめ用意される。以下、個体に組み込まれる部分プログラムの例として、画像フィルタを想定するが、部分プログラムは画像フィルタに限るものではなく、他の種類の画像処理を行うプログラムを用いることもできる。なお、図２の左上において、“Ｆ”は画像フィルタを示し、“Ｉ”は入力端子を示し、“Ｏ”は出力端子を示す。
【００２９】
遺伝的プログラミングによる画像処理プログラムの生成処理は、例えば、次のように実行される。まず、母集団３１に含められる複数の初期個体が生成される（ステップＳ１１）。各初期個体のノードには、あらかじめ用意された複数の画像フィルタの中から画像フィルタがランダムに選択されて組み込まれる。次に、母集団３１の中から、ランダムに一定数の親個体が選択される（ステップＳ１２）。以下、例として２つの親個体が選択されるものとする。
【００３０】
次に、選択された２つの親個体に対して進化過程の処理が施されることで、２以上の一定数の子個体が生成される（ステップＳ１３）。進化過程では、２つの親個体に対して交叉処理および突然変異処理が行われる。２つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、３つ以上の子個体が生成されてもよい。すなわち、生成される子個体の数は、母集団３１から選択される親個体の数以上とされる。
【００３１】
次に、進化過程を経て生成された子個体、および元の親個体のそれぞれについて、適応度が計算される（ステップＳ１４）。この処理では、対象の個体それぞれを用いた画像処理が、学習データ２０の各入力画像２１に対して実行され、実行後の画像と対応する目標画像２２とが比較されることで適応度が計算される。複数の学習データ２０が存在する場合、個体それぞれについて、複数の学習データ２０を用いて得られた適応度の平均値が算出される。
【００３２】
なお、母集団３１が生成された時点で母集団３１に含まれる初期個体の適応度が算出されてもよい。この場合、ステップＳ１４では、生成された子個体の適応度だけが算出される。
【００３３】
ここで、生成された子個体および元の親個体のうちのいずれかの適応度が所定の閾値以上であった場合には、その個体が最終的な画像処理プログラムとして出力され、プログラム生成処理が終了する。一方、すべての個体の適応度が所定の閾値未満であった場合には、生成された各子個体および元の２つの親個体を含む個体群３２の中から、生存選択が行われる（ステップＳ１５）。この生存選択では、個体群３２の中から、算出された適応度が最大の個体が選択される。さらに、個体群３２内の残りの個体の中から、所定の方法で個体が１つ選択される。例えば、残りの個体の中から、適応度に応じた確率で個体が選択される。
【００３４】
このような生存選択によって選択された２つの個体は、母集団３１に含まれる個体のうち、親個体として選択された２つの個体と入れ替えられる（ステップＳ１６）。これにより、母集団３１に含まれる個体が次世代の個体へ変更される。そして、適応度が所定の閾値以上となる個体が出現するまで、同様の処理が繰り返される。
【００３５】
図３は、交叉の例を示す図である。図３では、親個体４１ａと親個体４２ａとの間で交叉が行われ、親個体４１ａに基づく子個体４１ｂと、親個体４２ａに基づく子個体４２ｂとが生成される場合の例を示す。
【００３６】
親個体４１ａは、画像フィルタＦ１，Ｆ２，Ｆ３，Ｆ４を含み、親個体４２ａは、画像フィルタＦ２，Ｆ３，Ｆ５，Ｆ６を含む。ここで、親個体４１ａにおける画像フィルタＦ２のノードと、親個体４２ａにおける画像フィルタＦ５のノードが、交叉を行う箇所として選択されたものとする。
【００３７】
交叉の処理では、例えば、選択されたノードだけでなく、そのノードより下位階層のノードも交叉の対象となる。このため、図３の例では、親個体４１ａにおける“画像フィルタＦ２，Ｆ１、画像フィルタＦ２の一方に接続された入力端子のノード、画像フィルタＦ１に接続された入力端子のノード”と、親個体４２ａにおける“画像フィルタＦ５、画像フィルタＦ５に接続された入力端子のノード”とが入れ替えられる。このような交叉により、画像フィルタＦ３，Ｆ４，Ｆ５を含む子個体４１ｂと、画像フィルタＦ１，Ｆ３，Ｆ６をそれぞれ１つ含み、画像フィルタＦ２を２つ含む子個体４２ｂとが生成される。
【００３８】
図４は、突然変異の例を示す図である。図４において、個体４３ａは、画像フィルタＦ３，Ｆ４，Ｆ５を含む。この個体４３ａは、例えば、母集団３１から選択された親個体であってもよいし、または、母集団３１から親個体として選択された後、交叉が行われた個体であってもよい。
【００３９】
ここで、個体４３ａにおける画像フィルタＦ３のノードが突然変異を行う箇所として選択されるとともに、突然変異による置き換え後の画像フィルタとして画像フィルタＦ７が選択されたものとする。なお、突然変異による置き換え後の画像フィルタは、あらかじめ用意された複数の画像フィルタの中からランダムに選択される。このような突然変異により、画像フィルタＦ４，Ｆ５，Ｆ７を含む子個体４３ｂが生成される。
【００４０】
以上の比較例のような手順により生成される画像処理プログラムの用途の例としては、ＦＡ（Factory Automation）分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、欠陥が生じた箇所を抽出する、位置合わせを行う箇所を抽出するといった用途が考えられる。
【００４１】
このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像処理アルゴリズムの再構築の必要が生じる場合がある。このため、画像処理アルゴリズムの構築の容易性が求められている。また、照明条件の変化や被写体の形状、位置姿勢のバラツキなどの撮像環境の変化に対するロバスト性が高い画像処理アルゴリズムを構築することが求められている。
【００４２】
遺伝的プログラミングを利用することで、入力画像２１とこれに対応する目標画像２２とをあらかじめ用意しておくだけで、このような用途で使用可能な画像処理プログラムを容易に生成することができる。また、それぞれ撮像環境が異なる入力画像２１と目標画像２２のペア（学習データ２０）を複数用意しておくことで、撮像環境の変化に対するロバスト性が高い画像処理アルゴリズムを自動生成することもできる。
【００４３】
＜比較例における問題点＞
上記の比較例では、図２のステップＳ１３の進化過程において２つの親個体から生成される子個体の数は、一定値に固定されている。ここで、子個体の生成数に関しては、次のような問題がある。子個体の生成数が少ない場合には、子個体の適応度が上昇しにくくなって、学習の進行速度が低下する場合がある。一方、子個体の生成数が多い場合には、世代ごとの子個体の適応度は上昇しやすくなるが、世代ごとの適応度の算出回数が増加し、世代ごとの学習時間が長くなる。このため、子個体の生成数を多くしても、プログラム生成にかかる時間を必ずしも短縮できないという問題がある。
【００４４】
この問題点について、次の図５を用いてさらに説明する。
図５は、子個体の数と探索範囲との関係を模式的に示す図である。図５に示す解の探索空間５１は、個体が含まれる空間を模式的に示したものである。この探索空間５１では、各個体の適応度は正解領域５２との近さによって表される。なお、図５において、黒丸は、ある世代の母集団３１に含まれる個体を示し、白丸は、母集団３１から選択された個体を基に生成された子個体を示す。
【００４５】
上記の比較例のような遺伝的プログラミングによる学習は、母集団３１に含まれる個体を、適応度の高い子個体によって更新していくことで、母集団３１に含まれる個体の適応度を全体的に上昇させるものである。これは、解の探索空間５１に含まれる個体を全体的に正解領域５２に近づけていくことに相当する。そして、適応度が所定閾値を超える個体が現れたとき、すなわち、正解領域５２に含まれる個体が現れたときに、その個体が学習結果として出力される。
【００４６】
また、母集団３１から選択された親個体に基づいて子個体が生成される場合、子個体は解の探索空間５１において親個体に比較的近い領域に現れる。これは、子個体は親個体の一部が変形されることで生成されるため、親個体とある程度類似するからである。
【００４７】
ここで、図５（Ａ）は、２つの親個体５３ａ，５３ｂから生成される子個体の数が少ない場合の例を示し、図５（Ｂ）は、２つの親個体５３ａ，５３ｂから生成される子個体の数が多い場合の例を示す。探索領域５４ａ，５４ｂは、母集団３１から選択された２つの親個体５３ａ，５３ｂと、親個体５３ａ，５３ｂから生成された子個体の個体群とが含まれる領域である。
【００４８】
図５（Ｂ）に示す探索領域５４ｂは、図５（Ａ）に示す探索領域５４ａより大きくなる可能性が高い。換言すると、子個体の生成数が多い方が、探索領域が大きくなる可能性が高い。これは、子個体の生成数が多くなることで、親個体に対する変形パターンが増え、解の探索空間５１における親個体の位置から互いに異なる方向に位置する多くの子個体が生成されるからである。
【００４９】
このため、子個体の生成数を多くして探索領域を拡大することで、子個体の個体群の中に正解領域５２により近い子個体、すなわち適応度がより大きい子個体が現れる可能性が高くなる。したがって、子個体の生成数が多い方が、母集団に含まれる子個体の適応度のうちの最大適応度についての、世代数を基準とした増加率は高くなる。
【００５０】
しかしながら、子個体の生成数が多くなるほど、世代ごとに子個体の適応度を算出する回数が多くなる。その結果、１世代当たりの処理時間が長くなり、世代数を基準とした最大適応度の増加率は高くなったとしても、最大適応度が所定の閾値に達するまでの時間が短縮されるとは限らず、逆に時間が長くかかってしまう可能性が高い。したがって、子個体の生成数を固定的に大きくしたとしても、プログラム生成にかかる時間を必ずしも短縮できないという問題がある。
【００５１】
＜第２の実施の形態でのプログラム生成処理の概要＞
上記の問題に対して、第２の実施の形態のプログラム生成処理では、母集団３１に含まれる個体の適応度のうち最大適応度の増加率に応じて、子個体の生成数が動的に設定されるように、上記の比較例の処理が変形される。
【００５２】
図６は、子個体の生成数が一定の場合における最大適応度の変化の例を示す図である。この図６において、期間６１，６３，６５，６７では、最大適応度の増加率が所定の閾値以上である一方、期間６２，６４，６６では、最大適応度の増加率が閾値より小さい。すなわち、期間６２，６４，６６では、学習の進行が停滞している。
【００５３】
そこで、本実施の形態の画像処理装置は、期間６２，６４，６６のように最大適応度の増加率が低くなっている期間のみ、１世代の親個体から生成される子個体の数を増加させて、最大適応度の増加を促進させる。このように、必要最小限の期間のみ子個体の生成数を多くすることで、処理時間を抑制しつつ、最大適応度の増加率が一定以上に維持されるようにする。その結果、プログラム生成にかかる時間を短縮する。
【００５４】
また、処理時間を短くするには、子個体の生成数が多い期間（世代数）を、生成数が少ない期間（世代数）より短くすることが望ましい。そこで、本実施の形態に係る画像処理装置は、最大適応度の増加率が閾値より低くなったことを契機として一定の世代数の期間、子個体の生成数を多くした後、それより多くの世代数の期間、最大適応度の増加率に関係なく子個体の生成数を少なくする。
【００５５】
図６の例のように、一般的に、子個体の生成数が一定の場合、最大適応度は段階的に増加する。このため、ある一定の世代数の期間、子個体の生成数を多くすることで、その後の期間で子個体の生成数を少なくしても、最大適応度の増加率を一定以上に維持できる可能性は高い。したがって、上記のように子個体の生成数を制御することで、最大適応度の増加率を高めながらも、子個体の適応度の算出数が多くなる期間を短くすることができ、学習を効率化できる。
【００５６】
＜第２の実施の形態に係る画像処理装置の詳細＞
以下、第２の実施の形態に係る画像処理装置の詳細について説明する。
まず、図７は、画像処理装置のハードウェア構成例を示す図である。本実施の形態に係る画像処理装置１００は、例えば、図７に示すようなコンピュータとして実現される。
【００５７】
画像処理装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００５８】
プロセッサ１０１には、バス１０９を介して、ＲＡＭ１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、画像処理装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００５９】
バス１０９に接続されている周辺機器としては、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５、読み取り装置１０６、通信インタフェース１０７およびネットワークインタフェース１０８がある。
【００６０】
ＨＤＤ１０３は、画像処理装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００６１】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１０４ａの画面に表示させる。表示装置としては、液晶ディスプレイや有機ＥＬ（ElectroLuminescence）ディスプレイなどがある。
【００６２】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００６３】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００６４】
通信インタフェース１０７は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース１０７には、外部デバイスとしてカメラ１０７ａが接続され、通信インタフェース１０７は、カメラ１０７ａから送信された画像データをプロセッサ１０１に送信する。
【００６５】
ネットワークインタフェース１０８は、ネットワーク１０８ａを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、画像処理装置１００の処理機能を実現することができる。
【００６６】
図８は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置１００は、画像取得部１１１、画像処理部１１２、プログラム生成部１２０、プログラム記憶部１３０、フィルタセット記憶部１４１、学習データ記憶部１４２および母集団情報記憶部１４３を有する。
【００６７】
画像取得部１１１、画像処理部１１２およびプログラム生成部１２０の処理は、例えば、画像処理装置１００のプロセッサ１０１が所定のプログラムを実行することで実現される。また、画像処理部１１２の処理の一部は、プログラム記憶部１３０に保存された画像処理プログラムを、画像処理装置１００のプロセッサ１０１が実行することで実現される。プログラム記憶部１３０、フィルタセット記憶部１４１および学習データ記憶部１４２は、例えば、画像処理装置１００のＨＤＤ１０３の記憶領域として実現される。母集団情報記憶部１４３は、例えば、画像処理装置１００のＲＡＭ１０２の記憶領域として実現される。
【００６８】
画像取得部１１１は、撮像された画像のデータをカメラ１０７ａから取得し、プログラム生成部１２０または画像処理部１１２に出力する。
プログラム生成部１２０は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部１３０に保存する。なお、プログラム生成部１２０の内部構成については後述する。
【００６９】
画像処理部１１２は、カメラ１０７ａによって撮像された画像のデータを画像取得部１１１を介して取得する。画像処理部１１２は、プログラム記憶部１３０に保存された画像処理プログラムにしたがって、取得した画像に画像処理を施す。処理後の画像は、例えば、表示装置１０４ａに表示される。
【００７０】
プログラム記憶部１３０は、プログラム生成部１２０によって生成された画像処理プログラムを記憶する。
フィルタセット記憶部１４１は、プログラム生成部１２０によって生成される各個体に組み込むことが可能な画像フィルタのプログラムを、複数記憶する。
【００７１】
学習データ記憶部１４２は、それぞれ入力画像および目標画像の各データを含む学習データを、１つ以上記憶する。学習データに含まれる入力画像は、例えば、画像処理装置１００に接続されたカメラ１０７ａによって撮像された画像であってもよい。
【００７２】
母集団情報記憶部１４３は、母集団３１に含まれる各個体の情報を記憶する。個体の情報には、個体の木構造を示す情報と、個体について算出された適応度とが含まれる。さらに、母集団情報記憶部１４３には、母集団３１に含まれる各個体の適応度のうち最大適応度についての世代ごとの履歴情報が記憶される。
【００７３】
プログラム生成部１２０は、学習制御部１２１、適応度算出部１２２および学習状況解析部１２３を有する。
学習制御部１２１は、プログラム生成部１２０でのプログラム生成処理全体を統括的に制御する。例えば、学習制御部１２１は、母集団３１に含める初期個体の生成、個体の進化処理、適応度に基づく生存選択および最終的な画像処理プログラムの出力、生存選択された個体による母集団３１の更新などの処理を実行する。
【００７４】
適応度算出部１２２は、個体を評価するための適応度を算出する。具体的には、適応度算出部１２２は、個体の木構造に基づいて構築される画像処理プログラムにしたがって、学習データに含まれる入力画像に画像処理を施す。適応度算出部１２２は、画像処理によって得られた画像と、入力画像に対応づけられた目標画像との類似度を、個体の適応度として算出する。
【００７５】
学習状況解析部１２３は、学習状況を示す指標を計算する。本実施の形態では、学習状況解析部１２３は、母集団情報記憶部１４３に記憶された履歴情報に基づいて、母集団３１の個体の適応度のうち最大適応度の増加率を算出する。この増加率は、世代交代に伴う学習の進行速度を示す。なお、以下の説明では、母集団３１の個体の適応度のうち最大適応度を、「母集団３１の最大適応度」と略称する場合がある。
【００７６】
次に、画像処理装置１００における画像処理プログラムの生成処理について、フローチャートを用いて説明する。
図９は、プログラム生成処理手順の例を示すフローチャートである。
【００７７】
この図９の処理では、進化・適応度算出処理での動作モードとして「通常モード」と「増加モード」のいずれかが設定される。通常モードでは、１世代当たりＣ個の子個体が生成され、増加モードでは、１世代当たり通常モードよりｋ倍（ｋ＞１）の子個体が生成される。
【００７８】
また、母集団３１の最大適応度が閾値より低い場合に通常モードから増加モードに遷移し、その後の一定世代数の期間、増加モードに維持された後、必ず通常モードに戻るという制御が行われる。さらに、通常モードも一定世代数以上の期間、連続して設定され、増加モードに設定される期間（世代数）より通常モードに設定される期間（世代数）の方が長いものとする。
【００７９】
本実施の形態では、例として、母集団３１に含まれる個体数をＰとし、通常モードに設定される最小期間ＬをＰ／２に設定する。この「Ｐ／２」は、母集団３１から親個体を２個選択する場合に、母集団３１の中の個体が平均で１回入れ替わる世代数に相当する。一方、本実施の形態では、増加モードに設定される期間ＤをＰ／１０に設定する。なお、期間Ｄは経験的な値に設定されるが、期間Ｄが長いと処理時間が増大する一方、期間Ｄが短すぎると母集団３１の個体のうちごく少数の個体だけしか親個体として選択されないため、母集団３１の最大適応度を増加させる効果を十分得ることができない。
【００８０】
期間Ｄの目安としては、例えば次のように算出することができる。増加モードでの子個体の増加率を示す前述のｋと、期間全体に対する増加モードの割合ｍ（０≦ｍ≦１）とを用い、通常モードと増加モードを合わせた場合の世代当たりの平均処理時間をｄ（ｄ＞１）に抑えることを考えた場合、「１×（１−ｍ）＋ｋ×ｍ≦ｄ」という式を満たす必要がある。この式を変形すると、「ｍ≦（ｄ−１）／（ｋ−１）」となる。
【００８１】
例えば、増加モードでの個体数を５倍（すなわち、ｋ＝５）とし、１世代当たりの平均処理時間を１．５倍に抑えるケースでは、ｍ≦（１．５−１）／（５−１）＝１／８という値が得られる。この場合、例えば、増加モードに設定される期間Ｄは、通常モードに設定される最小期間Ｌの１／８倍に設定される。
【００８２】
［ステップＳ２１］学習制御部１２１は、学習データの設定のための入力操作を受け付ける。例えば、学習データ記憶部１４２に記憶された学習データの中から、本処理で使用される学習データが指定される。
【００８３】
［ステップＳ２２］学習制御部１２１は、フィルタセットの設定のための入力操作を受け付ける。例えば、フィルタセット記憶部１４１に登録された画像フィルタの中から、本処理で使用される画像フィルタが指定される。
【００８４】
［ステップＳ２３］学習制御部１２１は、母集団３１に含まれる個体数Ｐと、通常モードで生成される子個体の個体数Ｃを設定するための入力操作を受け付ける。
［ステップＳ２４］学習制御部１２１は、母集団３１に含めるＰ個の初期個体を生成する。各初期個体は、木構造の各ノードに対して、ステップＳ２２で指定された画像フィルタをランダムに選択して組み合わせることで生成される。また、各初期個体の木構造は、例えば、あらかじめ決められた複数の木構造の中からランダムに選択される。あるいは、木構造自体がランダムに決定されてもよい。
【００８５】
学習制御部１２１は、生成した各初期個体に関する情報を母集団情報記憶部１４３に登録する。
［ステップＳ２５］適応度算出部１２２は、母集団３１に含まれる各初期個体の適応度を算出する。具体的には、適応度算出部１２２は、各初期個体に対応する画像処理プログラムにしたがって、学習データに含まれる入力画像に画像処理を施す。適応度算出部１２２は、画像処理によって得られた画像と、入力画像に対応づけられた目標画像との類似度を、その初期個体の適応度として算出する。なお、学習データが複数登録されている場合には、適応度算出部１２２は、例えば、各学習データを用いて類似度を算出し、それらの類似度の平均値を初期個体の適応度とする。適応度算出部１２２は、各初期個体について算出した適応度を母集団情報記憶部１４３に登録する。
【００８６】
［ステップＳ２６］学習制御部１２１は、動作モードを通常モードに設定する。
［ステップＳ２７］進化・適応度算出処理が実行される。この処理では、基本的には、母集団３１から２つの親個体が選択され、それらの親個体に基づいて１つ以上の子個体が生成され、各子個体についての適応度が算出される。進化・適応度算出処理の内容については、後の図１０において詳しく説明する。
【００８７】
［ステップＳ２８］学習制御部１２１は、ステップＳ２７で選択された親個体と、ステップＳ２７で生成された子個体の中から、適応度が最大の個体を選択し、その適応度が閾値Ｔｈ１１より大きいかを判定する。適応度が閾値Ｔｈ１１以下の場合、ステップＳ２９の処理が実行され、適応度が閾値Ｔｈ１１より大きい場合、ステップＳ３０の処理が実行される。
【００８８】
［ステップＳ２９］学習制御部１２１は、ステップＳ２７で選択された親個体と、ステップＳ２７で生成された子個体の中から、適応度が最大の個体を生存させる個体として選択する。さらに、学習制御部１２１は、残りの個体の中から生存させる個体をさらに１つ選択する。この選択処理では、例えば、算出された適応度に応じた確率で個体が選択される。
【００８９】
学習制御部１２１は、母集団３１に含まれる個体のうちステップＳ２７で親個体として選択された２つの個体を、生存させる個体として選択された２つの個体に入れ替える。これによって、母集団３１の世代が更新される。実際の処理としては、学習制御部１２１は、ステップＳ２７で親個体として選択された２つの個体の情報を母集団情報記憶部１４３から削除し、生存させる個体として選択された２つの個体の情報を母集団情報記憶部１４３に登録する。
【００９０】
なお、学習制御部１２１は、例えば、母集団３１に含まれる個体のうち適応度が小さい２つの個体を、生存させる個体として選択された２つの個体に入れ替えてもよい。
［ステップＳ３０］学習制御部１２１は、ステップＳ２８で選択された適応度が最大の個体に対応する画像処理プログラムを、プログラム記憶部１３０に格納して、処理を終了する。
【００９１】
図１０は、進化・適応度算出処理の手順の例を示すフローチャートである。この図１０の処理は、図９のステップＳ２７の処理に対応する。
［ステップＳ４１］学習制御部１２１は、母集団３１に含まれる個体の中から２つの親個体をランダムに選択する。
【００９２】
［ステップＳ４２］学習制御部１２１は、現在の動作モードが通常モードであるかを判定する。通常モードである場合、ステップＳ４３の処理が実行される。一方、通常モードでない場合、すなわち増加モードである場合には、ステップＳ４８の処理が実行される。
【００９３】
［ステップＳ４３］学習制御部１２１は、通常モードの期間が終了したかを判定する。具体的には、学習制御部１２１は、通常モードに設定された期間が、前述の最小期間Ｌを超えた場合（すなわち、通常モードに設定されてからのステップＳ４３の実行回数がＬを超えた場合）に、通常モードの期間が終了したと判定する。通常モードの期間が終了したと判定された場合、ステップＳ４４の処理が実行され、通常モードの期間が終了していないと判定された場合、ステップＳ５０の処理が実行される。
【００９４】
［ステップＳ４４］学習状況解析部１２３は、母集団情報記憶部１４３に記憶された履歴情報に基づいて、過去の一定数の世代における母集団３１の最大適応度の増加率を算出する。本実施の形態では例として、過去のＬ世代における母集団３１の最大適応度の増加率が算出される。すなわち、増加率は、現世代における母集団３１の最大適応度から、Ｌ世代前における母集団３１の最大適応度を減算した値を、Ｌで除算することによって算出される。
【００９５】
なお、母集団情報記憶部１４３には、増加率を算出するために、少なくとも過去のＬ世代における母集団３１の最大適応度についての履歴情報が記録される。
［ステップＳ４５］学習制御部１２１は、ステップＳ４４で算出された増加率が、所定の閾値Ｔｈ１２より低いかを判定する。増加率が閾値Ｔｈ１２より低い場合、ステップＳ４６の処理が実行される。一方、増加率が閾値Ｔｈ１２以上である場合は、動作モードが通常モードに維持されたままステップＳ５０の処理が実行される。すなわち、増加率が閾値Ｔｈ１２以上である場合は、通常モードの期間が最小期間Ｌを超える長さに延長される。
【００９６】
［ステップＳ４６］学習制御部１２１は、動作モードを通常モードから増加モードに変更する。
［ステップＳ４７］学習制御部１２１は、ステップＳ４１で選択された２つの親個体を用いて、ｋＣ個の子個体を生成する。なお、子個体の生成は、例えば、次のような手順が行われる。学習制御部１２１は、２つの親個体の間で交叉を行うことで、２つ以上の所定数の子個体を生成する。さらに、学習制御部１２１は、生成された子個体のいずれかのノードに突然変異を発生させて、元の子個体のノードに組み込まれていた画像フィルタを図９のステップＳ２２で指定された他の画像フィルタのいずれかに置き換える。
【００９７】
［ステップＳ４８］学習制御部１２１は、増加モードの期間が終了したかを判定する。具体的には、学習制御部１２１は、増加モードに設定された期間が、前述の期間Ｄを超えた場合（すなわち、増加モードに設定されてからのステップＳ４８の実行回数がＤを超えた場合）に、増加モードの期間が終了したと判定する。増加モードの期間が終了したと判定された場合、ステップＳ４９の処理が実行され、増加モードの期間が終了していないと判定された場合、ステップＳ４７の処理が実行される。
【００９８】
［ステップＳ４９］学習制御部１２１は、動作モードを増加モードから通常モードに変更する。
［ステップＳ５０］学習制御部１２１は、ステップＳ４１で選択された２つの親個体を用いて、Ｃ個の子個体を生成する。
【００９９】
［ステップＳ５１］適応度算出部１２２は、ステップＳ４７で生成されたｋＣ個の子個体、またはステップＳ５０で生成されたＣ個の子個体のそれぞれについて、適応度を算出する。この後、図９のステップＳ２８の処理が実行される。
【０１００】
以上の図９，図１０の処理によれば、通常モードが最小期間Ｌ以上継続された後、母集団３１の最大適応度の増加率が閾値Ｔｈ１２より低いと判定されると、動作モードは増加モードに遷移する。これにより、子個体の生成数が増加し、母集団３１の最大適応度の増加が促進される。この後、期間Ｄだけ増加モードが継続されてから通常モードに遷移し、期間Ｄより長い最小期間Ｌ以上、通常モードが継続される。そして、母集団３１の最大適応度の増加率が再度閾値Ｔｈ１２より低いと判定されると、再び増加モードに遷移して、その増加が促進される。
【０１０１】
図１１は、世代交代に伴う最大適応度および子個体の生成数の変化の例を示す図である。図１１において、グラフ７１は、母集団３１の最大適応度の変化の例を示し、グラフ７２は、子個体の生成数の変化の例を示す図である。
【０１０２】
グラフ７１に示す点線は、通常モードのままで学習を行った場合の比較例を示す。一方、グラフ７１に示す実線は、最大適応度の増加率に応じて通常モードと増加モードとを切り替えた場合の例を示す。また、グラフ７２の実線は、最大適応度の増加率に応じて通常モードと増加モードとを切り替えた場合の子個体の生成数を示す。グラフ７２の実線のように、この例では、増加モードに遷移するとほとんどの場合一時的に最大適応度の増加率が上昇するものの、通常モードに戻ると増加率が低下することから、ほぼ一定間隔で増加モードへの遷移が発生している。
【０１０３】
グラフ７１でわかるように、最大適応度の増加率が閾値Ｔｈ１１より低い場合に増加モードに遷移させ、子個体の生成数を増加させることで、最大適応度の増加が促進される。そのため、通常モードに固定した場合と比較して、少ない世代数で最大適応度が所望の目標値に到達している。
【０１０４】
図１２は、時間経過に伴う最大適応度の変化の例を示す図である。この図１２のグラフは、図１１のグラフ７１に示した母集団３１の最大適応度の変化を、横軸を世代数から時間に変更して示したものである。この図１２からわかるように、最大適応度の増加率に応じて動作モードを切り替えることで、短時間で最大適応度が所望の目標値に到達している。
【０１０５】
増加モードに遷移すると、１世代当たりの子個体の適応度の計算回数が増加するため、１世代当たりの最大適応度の増加は促進されるものの、処理時間は長くなってしまう。これに対して、図１１のグラフ７２に示すように限定された期間のみ増加モードに設定されることで、最大適応度が目標値に到達するまでの処理時間を短縮することができる。
【０１０６】
次に、第２の実施の形態に係る画像処理装置１００の処理の一部を変形した変形例について説明する。なお、以下の各変形例では、図７，図８に示した画像処理装置１００と同様の符号を用いて説明する。
【０１０７】
＜変形例１＞
変形例１では、画像処理装置１００は、第２の実施の形態のように増加モードに設定した子個体の生成数を増加させても、母集団３１の最大適応度の増加率が上昇しない場合に、逆に子個体の生成数を減少させる。子個体の生成数が減少することで、１世代当たりの処理時間が短縮され、時間当たりの親個体の選択回数および子個体の生成回数が増加する。これにより、生成される子個体のバリエーションを増やすことができ、図５に示した解の探索空間５１において正解領域５２に近い子個体が生成されやすくなる。
【０１０８】
さらに、画像処理装置１００は、子個体の生成数を減少させても最大適応度の増加率が上昇しない場合には、母集団３１の個体数を増加させる。
ここで、図１３は、母集団の個体数と探索範囲との関係を模式的に示す図である。図１３に示す解の探索空間８１では、図５に示した解の探索空間５１と同様に、各個体の適応度は正解領域８２との近さによって表される。
【０１０９】
図１３（Ａ）は、母集団３１の個体数が少ない場合の例を示す。探索領域８３ａ，８３ｂはそれぞれ、個体数が少ない母集団３１に含まれる任意の２つの個体から一定数の子個体を生成した場合に、生成された子個体が含まれ得る領域を示す。また、図１３（Ｂ）は、母集団３１の個体数が多い場合の例を示す。探索領域８４ａ〜８４ｄはそれぞれ、個体数が多い母集団３１に含まれる任意の２つの個体から一定数の子個体を生成した場合に、生成された子個体が含まれ得る領域を示す。
【０１１０】
図１３（Ａ）のように母集団３１の個体数が少ない場合には、親個体が正解領域８２の近傍に存在しない可能性が高くなる。その結果、１世代当たりで正解領域８２に近い子個体が生成される可能性が低くなり、学習の進展が遅くなる。そこで、図１３（Ｂ）のように母集団３１の個体数を増やすことで、正解領域８２の近傍に存在する親個体が生成される可能性が生じ、学習の進展速度の向上を期待できる。
【０１１１】
ただし、母集団３１の個体数を多くしただけでは、正解領域８２に近い親個体が選択される確率は必ずしも上がらない。このため、正解領域８２に近い親個体が選択されるまでの時間が長くなることもあり得る。そこで、例えば、子個体の生成数を小さくして世代交代の速度を高めることで、正解領域８２に近い親個体が短時間で選択されるようになる。
【０１１２】
なお、母集団３１の個体数を多くする代わりに、母集団３１の個体のうち適応度の低い個体を、新たに生成した個体に入れ替える方法もある。この方法によれば、子個体の生成数を減らさなくても、正解領域８２に近い親個体が選択される確率を向上させ、学習の進展速度を向上させることができる。
【０１１３】
図１４は、変形例１における処理手順の例を示すフローチャートである。図１４の処理では例として、動作モードとして通常モードおよび増加モードに加えて減少モードが用意される。減少モードでは、子個体の生成数が通常モードより少ないＣ’に設定される。減少モードは、前述の期間Ｄだけ増加モードが継続した後に、母集団３１の最大適応度の増加率が閾値Ｔｈ１２以上に増加しなかった場合に設定されるものとする。
【０１１４】
変形例１では、例えば、図１０のステップＳ４２で動作モードが通常モードではないと判定された場合に、図１４のステップＳ６１の処理が実行される。
［ステップＳ６１］学習制御部１２１は、現在の動作モードが増加モードであるかを判定する。増加モードである場合、ステップＳ６２の処理が実行される。一方、増加モードでない場合、すなわち減少モードである場合には、ステップＳ６７の処理が実行される。
【０１１５】
［ステップＳ６２］学習制御部１２１は、増加モードの期間が終了したかを判定する。具体的には、学習制御部１２１は、増加モードに設定された期間が、前述の期間Ｄを超えた場合（すなわち、増加モードに設定されてからのステップＳ６２の実行回数がＤを超えた場合）に、増加モードの期間が終了したと判定する。増加モードの期間が終了したと判定された場合、ステップＳ６３の処理が実行され、増加モードの期間が終了していないと判定された場合、図１０のステップＳ４７の処理が実行される。
【０１１６】
［ステップＳ６３］学習状況解析部１２３は、図１０のステップＳ４４と同様の手順で、母集団情報記憶部１４３に記憶された履歴情報に基づいて、過去のＬ世代における母集団３１の最大適応度の増加率を算出する。
【０１１７】
［ステップＳ６４］学習制御部１２１は、ステップＳ６３で算出された増加率が閾値Ｔｈ１２より低いかを判定する。増加率が閾値Ｔｈ１２より低い場合、ステップＳ６５の処理が実行される。一方、増加率が閾値Ｔｈ１２以上である場合は、図１０のステップＳ４９の処理が実行され、動作モードが通常モードに変更される。
【０１１８】
［ステップＳ６５］学習制御部１２１は、動作モードを増加モードから減少モードに変更する。
［ステップＳ６６］学習制御部１２１は、図１０のステップＳ４１で選択された２つの親個体を用いて、Ｃ’個の子個体を生成する（ただし、Ｃ’＜Ｃ）。この後、図９のステップＳ２８の処理が実行される。
【０１１９】
［ステップＳ６７］学習制御部１２１は、減少モードの期間が終了したかを判定する。具体的には、学習制御部１２１は、減少モードに設定された期間が前述の期間Ｄを超えた場合（すなわち、減少モードに設定されてからのステップＳ６７の実行回数がＤを超えた場合）に、減少モードの期間が終了したと判定する。減少モードの期間が終了したと判定された場合、ステップＳ６８の処理が実行され、減少モードの期間が終了していないと判定された場合、ステップＳ６６の処理が実行される。
【０１２０】
［ステップＳ６８］学習状況解析部１２３は、ステップＳ６３と同様の手順で、母集団情報記憶部１４３に記憶された履歴情報に基づいて、過去のＬ世代における母集団３１の最大適応度の増加率を算出する。
【０１２１】
［ステップＳ６９］学習制御部１２１は、ステップＳ６８で算出された増加率が閾値Ｔｈ１２より低いかを判定する。増加率が閾値Ｔｈ１２より低い場合、ステップＳ７０の処理が実行される。一方、増加率が閾値Ｔｈ１２以上である場合は、図１０のステップＳ４９の処理が実行され、動作モードが通常モードに変更される。なお、このステップＳ６９では、閾値Ｔｈ１２とは異なる閾値が使用されてもよい。
【０１２２】
［ステップＳ７０］学習制御部１２１は、図９のステップＳ２２で指定されたフィルタセットを用いて、所定数の個体を新たに生成する。学習制御部１２１は、生成した個体を母集団３１に追加する。具体的な処理としては、追加した個体についての木構造情報および適応度が母集団情報記憶部１４３に登録される。この後、動作モードが減少モードに維持されたまま、ステップＳ６６の処理が実行される。
【０１２３】
以上の図１４の処理では、最大適応度の増加促進のために期間Ｄだけ増加モードに設定された後に、最大適応度の増加率が閾値Ｔｈ１２以上に回復しなかった場合に、減少モードに設定される。これにより、子個体の生成数が減少して、１世代当たりの処理時間が短縮され、時間当たりの親個体の選択回数および子個体の生成回数が増加する。その結果、生成される子個体のバリエーションが増え、適応度の高い子個体が生成されやすくなる。
【０１２４】
しかし、期間Ｄだけ減少モードに設定されても最大適応度の増加率が閾値Ｔｈ１２以上に回復しなかった場合には、減少モードが継続されたまま、母集団３１に新たな個体が追加される。これにより、短時間で適応度の高い子個体が生成される可能性が高まる。
【０１２５】
なお、ステップＳ６９で増加率が閾値Ｔｈ１２より低い場合、学習制御部１２１は、新たな個体を生成し、母集団３１の個体数を変化させずに、母集団３１の個体のうち適応度の低い個体を、新たに生成した個体に入れ替えてもよい。この場合、個体の入れ替えが行われた後、図１０のステップＳ４９に進んで通常モードに変更されてもよい。この場合でも、短時間で適応度の高い子個体が生成される可能性が高まる。
【０１２６】
また、例えば、ステップＳ６１で増加モードの期間が終了したと判定されたとき、それまでに増加モードに遷移した回数が所定数以上である場合に、ステップＳ６３以後の処理が実行されてもよい。
【０１２７】
＜変形例２＞
変形例２では、画像処理装置１００は、生成された各子個体の適応度のばらつきが小さい場合にも、子個体の生成数を増加させる。子個体の適応度のばらつきが小さい場合には、適応度が増加しにくく、学習の進行が停滞しやすい。そこで、このような場合にも子個体の生成数を増加させることで、学習の進行を促進することができる。
【０１２８】
さらに、画像処理装置１００は、子個体の生成数を増加しても各子個体の適応度のばらつきがほとんど変化しない場合には、逆に子個体の生成数を通常モードより減少させる。これにより、単位時間内に生成される子個体のバリエーションを増やし、図５に示した解の探索空間５１において正解領域５２に近い子個体が生成されやすくする。
【０１２９】
図１５は、変形例２における処理手順の例を示すフローチャートである。変形例２では、例えば、図１０のステップＳ５０でＣ個の子個体が生成された後、次のステップＳ８１の処理が実行される。
【０１３０】
［ステップＳ８１］適応度算出部１２２は、図１０のステップＳ５１と同様の手順により、ステップＳ５０で生成されたＣ個の子個体のそれぞれについて、適応度を算出する。  ［ステップＳ８２］学習状況解析部１２３は、ステップＳ８１で算出された適応度のばらつき（分散）を計算する。学習制御部１２１は、算出されたばらつきが所定の閾値Ｔｈ１３より小さいかを判定する。ばらつきが閾値Ｔｈ１３より小さい場合、ステップＳ８３の処理が実行され、ばらつきが閾値Ｔｈ１３以上である場合、ステップＳ８７の処理が実行される。
【０１３１】
［ステップＳ８３］学習制御部１２１は、図１０のステップＳ４１で選択された２つの親個体を用いて、所定数の個体を新たに生成する。例えば、（ｋＣ−Ｃ）個の個体が生成される。
【０１３２】
［ステップＳ８４］適応度算出部１２２は、図１０のステップＳ５１と同様の手順により、ステップＳ８３で生成された各個体の適応度を算出する。
［ステップＳ８５］学習状況解析部１２３は、ステップＳ８１およびステップＳ８４で算出されたすべての適応度に基づいて、適応度のばらつきを計算する。学習制御部１２１は、算出されたばらつき閾値Ｔｈ１３より小さいかを判定する。ばらつきが閾値Ｔｈ１３より小さい場合、ステップＳ８６の処理が実行され、ばらつきが閾値Ｔｈ１３以上である場合、ステップＳ８７の処理が実行される。
【０１３３】
［ステップＳ８６］学習制御部１２１は、ステップＳ５０およびステップＳ８３で生成された子個体の中から、適応度の大きい所定数の個体を、処理対象の個体として選択する。ここで選択される個体の数は、通常モードでの子個体の生成数Ｃより小さい値とされる。
【０１３４】
［ステップＳ８７］学習制御部１２１は、ステップＳ５０およびステップＳ８３で生成されたすべての個体を、処理対象の個体として選択する。
ステップＳ８６，Ｓ８７の後、図９のステップＳ２８の処理が実行される。ステップＳ２８では、ステップＳ８６またはステップＳ８７で処理対象として選択された個体が、子個体として利用される。さらに、ステップＳ２８の次のステップＳ２９の処理が実行された場合でも、ステップＳ８６またはステップＳ８７で処理対象として選択された個体が、子個体として利用される。
【０１３５】
以上の図１５の処理では、通常モードで生成された各子個体の適応度のばらつきが閾値Ｔｈ１３より小さい場合に、子個体の生成数が一時的に増加され、学習の進行が促進される。また、子個体の生成数を増加しても各子個体の適応度のばらつきが依然として閾値Ｔｈ１３より小さい場合には、その後の処理に用いる子個体の数を通常モードより減少させて、単位時間内に生成される子個体のバリエーションを増やす。このような処理により、学習の進行が停滞することを抑制することができる。
【０１３６】
なお、上記の図１５では、１世代の処理において、子個体が生成された後にその適応度のばらつきに基づいてさらに子個体の個数を増減するようにした。しかし、他の処理例として、前世代の処理において生成された子個体の適応度のばらつきに基づいて、現世代での子個体の生成数を増減するようにしてもよい。
【０１３７】
また、以上の変形例２の処理は、変形例１の処理と組み合わせることも可能である。
＜変形例３＞
母集団３１の最大適応度がある一定値以上となり、学習の到達段階が末期である場合には、母集団３１から適応度の高い個体が親個体として選択されやすくすることで、学習の進行を促進することができる。そこで、変形例３では、画像処理装置１００は、学習の到達段階が末期であると推定される場合には、母集団３１から適応度の低い個体を削除し、母集団３１の個体数を減少させる。これにより、母集団３１の中から適応度の高い個体が親個体として選択されやすくなり、学習を促進することができる。
【０１３８】
図１６は、変形例３における処理手順の例を示すフローチャートである。変形例３では、例えば、図１０のステップＳ４１の前に、図１６に示すステップＳ１０１〜Ｓ１０３の処理が実行される。
【０１３９】
［ステップＳ１０１］学習制御部１２１は、母集団３１の最大適応度が所定の閾値Ｔｈ１４以上であるかを判定する。最大適応度が閾値Ｔｈ１４以上である場合、ステップＳ１０２の処理が実行され、最大適応度が閾値Ｔｈ１４より低い場合、図１０のステップＳ４１の処理が実行される。
【０１４０】
［ステップＳ１０２］学習制御部１２１は、母集団３１から適応度の低い所定数の個体を削除する。
［ステップＳ１０３］学習制御部１２１は、動作モードを増加モードに変更する。
【０１４１】
以上の図１６の処理では、母集団３１の最大適応度が閾値Ｔｈ１４以上になったとき、母集団３１の個体数を減少させるとともに、増加モードに遷移して子個体の生成数を増加させている。適応度の高い親個体が選択されやすい状況で子個体の生成数を増加させることで、子個体の適応度の上昇を期待でき、学習の進行がさらに促進される。
【０１４２】
なお、以上の変形例３の処理は、変形例１，２の処理と組み合わせることも可能である。
＜変形例４＞
母集団３１に含まれる各個体の適応度のばらつきが小さい場合には、正解領域の近傍に個体が存在しない可能性がある。この場合には、母集団３１の最大適応度は増加しにくい。ただし、学習の末期では母集団３１の最大適応度がすでに高くなっているため、正解領域の近傍に母集団３１に含まれる個体が存在する可能性が高い。
【０１４３】
そこで、変形例４では、画像処理装置１００は、学習の初期において母集団３１に含まれる各個体の適応度のばらつきが小さい場合には、母集団３１に新たな個体を追加して母集団３１の個体数を増加させる。これにより、適応度の高い個体が親個体として選択されやすくなり、学習の進行が促進される。
【０１４４】
図１７は、変形例４における処理手順の例を示すフローチャートである。変形例４では、例えば、図１０のステップＳ４１の前に、図１７に示すステップＳ１２１〜Ｓ１２６の処理が実行される。
【０１４５】
［ステップＳ１２１］学習状況解析部１２３は、母集団３１に含まれる各個体の適応度のばらつき（分散）を計算する。
［ステップＳ１２２］学習制御部１２１は、ステップＳ１２１で算出されたばらつきが所定の閾値Ｔｈ１５より小さいかを判定する。ばらつきが閾値Ｔｈ１５より小さい場合、ステップＳ１２３の処理が実行され、ばらつきが閾値Ｔｈ１５以上である場合、図１０のステップＳ４１の処理が実行される。
【０１４６】
［ステップＳ１２３］学習制御部１２１は、母集団３１の最大適応度が所定の閾値Ｔｈ１６＿Ｌより低いかを判定する。最大適応度が閾値Ｔｈ１６＿Ｌより低い場合、ステップＳ１２４の処理が実行され、最大適応度が閾値Ｔｈ１６＿Ｌ以上である場合、ステップＳ１２５の処理が実行される。
【０１４７】
［ステップＳ１２４］学習制御部１２１は、図１４のステップＳ７０と同様の手順で、図９のステップＳ２２で指定されたフィルタセットを用いて所定数の個体を新たに生成し、生成した個体を母集団３１に追加する。この後、図１０のステップＳ４１の処理が実行される。
【０１４８】
［ステップＳ１２５］学習制御部１２１は、母集団３１の最大適応度が所定の閾値Ｔｈ１６＿Ｈ以上であるかを判定する。この閾値Ｔｈ１６＿Ｈは、ステップＳ１２３で使用された閾値Ｔｈ１６＿Ｌより大きい値とされる。最大適応度が閾値Ｔｈ１６＿Ｈ以上である場合、ステップＳ１２６の処理が実行され、最大適応度が閾値Ｔｈ１６＿Ｈより低い場合、図１０のステップＳ４１の処理が実行される。
【０１４９】
なお、ステップＳ１２３，Ｓ１２５では、例えば、最大適応度がある閾値より低い場合にステップＳ１２４の処理が実行され、最大適応度が同じ閾値以上である場合にステップＳ１２６の処理が実行されるように、変形されてもよい。
【０１５０】
［ステップＳ１２６］学習制御部１２１は、適応度が類似する個体が母集団３１に含まれないように、母集団３１に含まれる個体数を削減する。例えば、学習制御部１２１は、母集団３１に含まれる個体について、互いの適応度の差が所定閾値以下となる個体のペアを特定し、特定された個体のペアの一方を母集団３１から削除する。この後、図１０のステップＳ４１の処理が実行される。
【０１５１】
以上の図１７の処理では、ステップＳ１２２で母集団３１に含まれる個体の適応度のばらつきが低いと判定された場合に、ステップＳ１２３，Ｓ１２５で学習の段階が判定される。学習の初期段階と判定された場合、ステップＳ１２４において母集団３１に新たな個体が追加される。これにより、適応度の高い個体が親個体として選択されやすくなり、学習の進行が促進される。
【０１５２】
一方、図１７の例ではさらに、学習の末期段階と判定された場合には、ステップＳ１２６において、適応度が互いに類似する個体の一方が母集団３１から削除される。母集団３１の個体数が削減されることで、母集団３１内の個体全体が親個体として短時間で選択されやすくなる。しかも、適応度の高い個体ペアの一方が削除されることで、各世代で親個体として選択される個体の適応度のばらつきが大きくなる。これら２つの効果により、母集団３１の個体の中から最適な個体が親個体として短時間で選択されやすくなり、学習の進行が促進される。
【０１５３】
なお、ステップＳ１２６では、例えば、母集団３１に含まれる個体から木構造が類似する個体のペアが特定され、特定された個体のペアの一方が母集団３１から削除されてもよい。木構造の類似度は、例えば、木構造に含まれるノードの数や、各ノードに割り当てられた画像フィルタの種類の類似性に基づいて算出される。このような処理が行われた場合でも、母集団３１の個体の中から最適な個体が親個体として短時間で選択されやすくなり、学習の進行が促進される。
【０１５４】
また、以上の変形例４の処理は、変形例１，２の処理と組み合わせることも可能である。
＜変形例５＞
母集団３１から選択された２つの親個体の適応度のばらつきが小さい場合、解の探索空間における１世代当たりの探索範囲は狭くなる。そこで、変形例５では、画像処理装置１００は、親個体の適応度のばらつきが小さい場合には、子個体の生成数を増加させる。これにより、正解領域に近い子個体が生成されやすくなり、学習の進行が促進される。
【０１５５】
図１８は、変形例５における処理手順の例を示すフローチャートである。変形例５では、例えば、図１０のステップＳ４１で２つの親個体が選択された後、次のステップＳ１４１の処理が実行される。
【０１５６】
［ステップＳ１４１］学習状況解析部１２３は、ステップＳ４１で選択された各親個体の適応度の差分を計算する。学習制御部１２１は、算出された差分が所定の閾値Ｔｈ１７より小さいかを判定する。差分が閾値Ｔｈ１７以上である場合には、図１０のステップＳ４２の処理が実行される。一方、差分が閾値Ｔｈ１７より小さく、親個体の適応度のばらつきが小さいと判定された場合には、図１０のステップＳ４７に進み、一時的に子個体の生成数が増加される。
【０１５７】
なお、図１８のステップＳ１４１の処理は、増加モードへの遷移による母集団３１の最大適応度の増加効果が十分得られない場合に実行されてもよい。例えば、画像処理装置１００は、増加モードへの遷移回数が所定の閾値を超えた場合に、ステップＳ４１の実行後に母集団３１の最大適応度の増加率を計算する。画像処理装置１００は、増加率が所定閾値より低い場合のみステップＳ１４１の処理を実行し、増加率が閾値以上である場合にはステップＳ１４１をスキップしてステップＳ４２の処理を実行する。
【０１５８】
また、以上の変形例５の処理は、変形例１〜４の処理と組み合わせることも可能である。
＜変形例６＞
変形例６では、母集団３１から選択された親個体の木構造のサイズに応じて、子個体の生成数が制御される。木構造のサイズとは、例えば、木構造に含まれるノード数を示す。
【０１５９】
親個体の木構造のサイズが大きいほど、その親個体から様々なバリエーションの子個体が生成され得る。そのため、子個体の適応度が高くなりやすい。そこで、変形例６では、画像処理装置１００は、親個体の木構造のサイズが大きい場合には、子個体の生成数を増加させて、学習の進行をさらに加速させる。
【０１６０】
逆に、親個体の木構造のサイズが小さい場合には、その親個体に交叉処理を施して子個体を生成しても、互いに類似する子個体が生成されやすく、その分だけ学習の進行速度が低下する。そこで、変形例６では、画像処理装置１００は、親個体の木構造のサイズが小さい場合には、子個体の生成数を通常モードより減少させて、短時間で新たな親個体が選択されるようにする。これにより、学習の進行の停滞を抑制できる。
【０１６１】
図１９は、変形例６における処理手順の例を示すフローチャートである。変形例６では、例えば、図１０のステップＳ４１で２つの親個体が選択された後、次のような処理が実行される。
【０１６２】
［ステップＳ１５１］学習制御部１２１は、ステップＳ４１で選択された親個体の各木構造のサイズと、所定の閾値Ｔｈ１８＿Ｌとを比較する。各木構造のサイズのうち少なくとも一方が閾値Ｔｈ１８＿Ｌより小さい場合、図１０のステップＳ４７に進み、子個体の生成数が一時的にｋＣ個に増加される。一方、木構造のサイズが両方とも閾値Ｔｈ１８＿Ｌ以上である場合には、ステップＳ１５２の処理が実行される。
【０１６３】
［ステップＳ１５２］学習制御部１２１は、ステップＳ４１で選択された親個体の各木構造のサイズと、所定の閾値Ｔｈ１８＿Ｈとを比較する。閾値Ｔｈ１８＿Ｈは、閾値Ｔｈ１８＿Ｌより大きい値とされる。各木構造のサイズのうち少なくとも一方が閾値Ｔｈ１８＿Ｈ以上である場合、ステップＳ１５３の処理が実行される。一方、木構造のサイズが両方とも閾値Ｔｈ１８＿Ｈより小さい場合、図１０のステップＳ４２の処理が実行される。
【０１６４】
［ステップＳ１５３］学習制御部１２１は、ステップＳ４１で選択された２つの親個体を用いて、通常モードでの子個体の生成数Ｃより小さいＣ’個の子個体を生成する。すなわち、親個体の木構造のサイズのうち少なくとも一方が閾値Ｔｈ１８＿Ｌより大きい場合には、子個体の生成数が一時的に増加される。この後、図９のステップＳ２８の処理が実行される。
【０１６５】
なお、図１９のステップＳ１５１，Ｓ１５２の判定処理は、増加モードへの遷移による母集団３１の最大適応度の増加効果が十分得られない場合に実行されてもよい。例えば、画像処理装置１００は、増加モードへの遷移回数が所定の閾値を超えた場合に、ステップＳ４１の実行後に母集団３１の最大適応度の増加率を計算する。画像処理装置１００は、増加率が所定閾値より低い場合のみステップＳ１５１の処理を実行し、増加率が閾値以上である場合にはステップＳ１５１，Ｓ１５２をスキップしてステップＳ４２の処理を実行する。
【０１６６】
また、以上の変形例６の処理は、変形例１〜５の処理と組み合わせることも可能である。
なお、上記の各実施の形態に示した装置（プログラム生成装置１および画像処理装置１００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１６７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１６９】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１７０】
１  プログラム生成装置
１ａ  記憶部
１ｂ  演算部
２  母集団
２ａ  母集団情報
３ａ，３ｂ，・・・  適応度
４ａ，４ｂ  親個体
５ａ，５ｂ  子個体
６  個体
【図１】
2017056320.tif 000003
【図２】
2017056320.tif 000004
【図３】
2017056320.tif 000005
【図４】
2017056320.tif 000006
【図５】
2017056320.tif 000007
【図６】
2017056320.tif 000008
【図７】
2017056320.tif 000009
【図８】
2017056320.tif 000010
【図９】
2017056320.tif 000011
【図１０】
2017056320.tif 000012
【図１１】
2017056320.tif 000013
【図１２】
2017056320.tif 000014
【図１３】
2017056320.tif 000015
【図１４】
2017056320.tif 000016
【図１５】
2017056320.tif 000017
【図１６】
2017056320.tif 000018
【図１７】
2017056320.tif 000019
【図１８】
2017056320.tif 000020
【図１９】
2017056320.tif 000021
【国際調査報告】
2017056320.tif 000022
2017056320.tif 000023
2017056320.tif 000024
2017056320.tif 000025