(57)【要約】  画像処理プログラムの生成時間を短縮する。  情報記録部（１ｂ）は、進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す増減情報（２ａ）を、記憶部（１ｄ）に記録する。確率設定部（１ｃ）は、所定期間に記憶部（１ｄ）に蓄積された増減情報（２ａ）に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定する。生成処理部（１ａ）は、進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された選択確率にしたがって選択する。
2015189935.tif 000002
【特許請求の範囲】
【請求項１】
画像処理プログラムに含まれる部分プログラムの組み合わせを遺伝的プログラミングによって決定することで前記画像処理プログラムを生成するプログラム生成装置において、
部分プログラムが複数組み合わされた個体を進化させる進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部に記録する情報記録部と、
所定期間に前記記憶部に蓄積された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定する確率設定部と、
を有し、
前記確率設定部によって部分プログラムごとに前記選択確率が設定された後、前記進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された前記選択確率にしたがって選択することを特徴とするプログラム生成装置。
【請求項２】
前記情報記録部は、前記進化処理が実行されるたびに、進化後の個体において進化前より数が増加した部分プログラムのそれぞれに対して、進化後の個体に基づく適応度から進化前の個体に基づく適応度を減算した値に基づく適応度増加量を対応付けて前記記憶部に記録し、
前記確率設定部は、前記所定期間に前記記憶部に蓄積された、部分プログラムごとの前記適応度増加量に基づいて、部分プログラムごとに前記選択確率を設定する、
ことを特徴とする請求項１記載のプログラム生成装置。
【請求項３】
前記確率設定部は、前記所定期間に前記記憶部に蓄積された、部分プログラムごとの前記適応度増加量に基づいて、部分プログラムごとの前記貢献度を判定し、判定された前記貢献度が所定値以下の部分プログラムを、その後の前記進化処理での選択対象から除外することを特徴とする請求項２記載のプログラム生成装置。
【請求項４】
前記情報記録部は、進化後の個体に基づく適応度から進化前の個体に基づく適応度を減算した値を、対応する部分プログラムの進化後の個体における増加数で規格化することで、前記適応度増加量を算出することを特徴とする請求項２または３記載のプログラム生成装置。
【請求項５】
前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、設定された前記選択確率にしたがって選択させるか、またはランダムに選択させるかを決定する選択制御部をさらに有することを特徴とする請求項１〜４のいずれか１項に記載のプログラム生成装置。
【請求項６】
前記画像処理プログラムに組み込まれる複数の部分プログラムは、処理内容の類似性に基づいて複数のグループに分類され、
前記プログラム生成装置は、さらに、前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、進化前の個体における置き換え対象の部分プログラムと同じグループに属する他の部分プログラムの中から設定された前記選択確率にしたがって選択させるか、または、前記複数の部分プログラムのすべての中から選択させるかを決定する選択制御部を有する、
ことを特徴とする請求項１〜４のいずれか１項に記載のプログラム生成装置。
【請求項７】
前記画像処理プログラムに組み込まれる複数の部分プログラムは、処理の種類が同じで、かつ、設定されるパラメータが異なる部分プログラムが同じグループに属するように分類され、
前記プログラム生成装置は、さらに、前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、進化前の個体における置き換え対象の部分プログラムと同じグループに属する他の部分プログラムの中から設定された前記選択確率にしたがって選択させるか、または、前記複数の部分プログラムのすべての中から選択させるかを決定する選択制御部を有する、
ことを特徴とする請求項１〜４のいずれか１項に記載のプログラム生成装置。
【請求項８】
画像処理プログラムに含まれる部分プログラムの組み合わせを遺伝的プログラミングによって決定することで前記画像処理プログラムを生成するプログラム生成方法において、
コンピュータが、
部分プログラムが複数組み合わされた個体を進化させる進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部に記録し、
所定期間に前記記憶部に蓄積された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定し、
部分プログラムごとに前記選択確率が設定された後、前記進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された前記選択確率にしたがって選択する、
ことを特徴とするプログラム生成方法。
【請求項９】
前記記憶部への記録では、前記進化処理が実行されるたびに、進化後の個体において進化前より数が増加した部分プログラムのそれぞれに対して、進化後の個体に基づく適応度から進化前の個体に基づく適応度を減算した値に基づく適応度増加量を対応付けて前記記憶部に記録し、
前記選択確率の設定では、前記所定期間に前記記憶部に蓄積された、部分プログラムごとの前記適応度増加量に基づいて、部分プログラムごとに前記選択確率を設定する、
ことを特徴とする請求項８記載のプログラム生成方法。
【請求項１０】
前記選択確率の設定では、前記所定期間に前記記憶部に蓄積された、部分プログラムごとの前記適応度増加量に基づいて、部分プログラムごとの前記貢献度を判定し、判定された前記貢献度が所定値以下の部分プログラムを、その後の前記進化処理での選択対象から除外することを特徴とする請求項９記載のプログラム生成方法。
【請求項１１】
前記適応度増加量は、進化後の個体に基づく適応度から進化前の個体に基づく適応度を減算した値を、対応する部分プログラムの進化後の個体における増加数で規格化することで算出されることを特徴とする請求項９または１０記載のプログラム生成方法。
【請求項１２】
前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、設定された前記選択確率にしたがって選択させるか、またはランダムに選択させるかを決定する、
処理をさらに含むことを特徴とする請求項８〜１１のいずれか１項に記載のプログラム生成方法。
【請求項１３】
前記画像処理プログラムに組み込まれる複数の部分プログラムは、処理内容の類似性に基づいて複数のグループに分類され、
前記プログラム生成方法は、さらに、前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、進化前の個体における置き換え対象の部分プログラムと同じグループに属する他の部分プログラムの中から設定された前記選択確率にしたがって選択させるか、または、前記複数の部分プログラムのすべての中から選択させるかを決定する処理を含む、
ことを特徴とする請求項８〜１１のいずれか１項に記載のプログラム生成方法。
【請求項１４】
前記画像処理プログラムに組み込まれる複数の部分プログラムは、処理の種類が同じで、かつ、設定されるパラメータが異なる部分プログラムが同じグループに属するように分類され、
前記プログラム生成方法は、さらに、前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、進化前の個体における置き換え対象の部分プログラムと同じグループに属する他の部分プログラムの中から設定された前記選択確率にしたがって選択させるか、または、前記複数の部分プログラムのすべての中から選択させるかを決定する処理を含む、
ことを特徴とする請求項８〜１１のいずれか１項に記載のプログラム生成方法。
【請求項１５】
画像処理プログラムに含まれる部分プログラムの組み合わせを遺伝的プログラミングによって決定することで前記画像処理プログラムを生成するプログラムにおいて、
コンピュータに、
部分プログラムが複数組み合わされた個体を進化させる進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部に記録し、
所定期間に前記記憶部に蓄積された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定し、
部分プログラムごとに前記選択確率が設定された後、前記進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された前記選択確率にしたがって選択する、
処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム生成装置、プログラム生成方法およびプログラムに関する。
【背景技術】
【０００２】
所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術が注目されている。この技術は、入力画像と処理結果の画像（目標画像）とを用いて、画像処理のための部分プログラム（例えば、画像フィルタのプログラム）を組み合わせて生成される画像処理プログラムを、遺伝的プログラミングによって最適化していくものである。【０００３】
これに関連する技術として、例えば、処理プログラムの生成処理において、遺伝的プログラミングに用いられる適応度が、処理プログラムにおけるノード数が大きいほど小さい値をとるように算出される技術が提案されている。【０００４】
また、画像処理手順を生成する技術の例として、適応度の高い画像処理手順同士を交配させるようにした技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１７８８５７号公報
【特許文献２】国際公開第２００６／００１１０７号
【非特許文献】
【０００６】
【非特許文献１】青木紳也、長尾智晴、「木構造画像変換の自動構築法ＡＣＴＩＴ」、情報メディア学会誌Ｖｏｌ．５３，Ｎｏ．６、１９９９年６月２０日、ｐ．８９０−８９２
【発明の概要】
【発明が解決しようとする課題】
【０００７】
遺伝的プログラミングによって画像処理プログラムを自動生成する上記の処理では、プログラム生成処理に要する時間が長いという問題がある。例えば、上記処理では、選択し得る部分プログラムが多数用意されているほど、高品質な画像処理を実現できる可能性が高まる。その反面、処理の過程で算出される適応度が高い値に収束するまでに要する時間が長くなる可能性も高まり、その結果、プログラム生成処理が終了するまでの時間が長くなる可能性も高まる。【０００８】
１つの側面では、本発明は、画像処理プログラムの生成時間を短縮可能なプログラム生成装置、プログラム生成方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、画像処理プログラムに含まれる部分プログラムの組み合わせを遺伝的プログラミングによって決定することで画像処理プログラムを生成するプログラム生成装置が提供される。このプログラム生成装置は、情報記録部および確率設定部を有する。情報記録部は、部分プログラムが複数組み合わされた個体を進化させる進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部に記録する。確率設定部は、所定期間に記憶部に蓄積された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定する。そして、プログラム生成装置は、確率設定部によって部分プログラムごとに選択確率が設定された後、進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された選択確率にしたがって選択する。【００１０】
また、１つの案では、上記のプログラム生成装置と同様の処理が実行されるプログラム生成方法が提供される。
さらに、１つの案では、上記のプログラム生成装置と同様の処理をコンピュータに実行させるプログラムが提供される。
【発明の効果】
【００１１】
１つの側面では、画像処理プログラムの生成時間を短縮できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。
【図２】画像処理プログラムの生成処理手順の参考例を示す図である。
【図３】画像処理装置のハードウェア構成例を示す図である。
【図４】画像処理装置が備える処理機能の構成例を示すブロック図である。
【図５】フィルタセットデータベースに登録される情報の例を示す図である。
【図６】適応度変化テーブルの第１の例を示す図である。
【図７】適応度変化テーブルの第２の例を示す図である。
【図８】適応度変化の第１の登録処理例を示す図である。
【図９】適応度変化の第２の登録処理例を示す図である。
【図１０】進化過程での画像フィルタの増減の例を示す図である。
【図１１】適応度変化の第３の登録処理例を示す図である。
【図１２】適応度変化の第４の登録処理例を示す図である。
【図１３】適応度変化の累積ヒストグラムの例を示す。
【図１４】選択確率の他の設定処理例を示す図である。
【図１５】プログラム生成処理手順の例を示すフローチャートである。
【図１６】第３の実施の形態に係る画像処理装置の処理機能の構成例を示すブロック図である。
【図１７】選択モードの設定処理について示す図である。
【図１８】第３の実施の形態におけるプログラム生成処理手順の例を示すフローチャートである。
【図１９】選択モード設定処理手順の例を示すフローチャートである。
【図２０】画像フィルタのグループ化の例を示す図である。
【図２１】第４の実施の形態における突然変異処理手順の例を示すフローチャートである。
【図２２】第４の実施の形態における選択モード設定処理手順の例を示すフローチャートである。
【図２３】画像フィルタのグループ化の他の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。プログラム生成装置１は、生成処理部１ａ、情報記録部１ｂ、確率設定部１ｃおよび記憶部１ｄを有する。なお、図１では、記憶部１ｄはプログラム生成装置１の外側に示されているが、記憶部１ｄは、プログラム生成装置１に内蔵された記憶装置の記憶領域として実現される。
【００１４】
生成処理部１ａは、遺伝的プログラミングによって画像処理プログラムを生成する。生成される画像処理プログラムは、それぞれが画像処理を実行するための部分プログラムが組み合わされることで実現される。生成処理部１ａは、画像処理プログラムに含めるべき部分プログラムの組み合わせを、遺伝的プログラミングによって決定する。
【００１５】
画像処理プログラムに組み込むことが可能な複数の部分プログラムは、例えば、記憶部１ｄにあらかじめ記憶されている。生成処理部１ａは、例えば、記憶された部分プログラムをランダムに選択して組み合わせた個体を、所定数だけ生成する。そして、生成した個体を進化させ、適応度の低い個体を淘汰していくことで、部分プログラムの組み合わせが最適化された個体を判別し、その個体を最終的な画像処理プログラムとして出力する。
【００１６】
個体を進化させる進化処理としては、例えば、２つの親個体の間で部分プログラムを入れ替える交叉処理や、親個体に含まれる部分プログラムを他の部分プログラムに置き換える突然変異処理がある。これらのうち、突然変異処理において子個体に新たに組み込む部分プログラムは、初期状態では、あらかじめ記憶された部分プログラムの中からランダムに（すなわち、同じ確率で）選択される。そして、後述するように、部分プログラムごとに選択確率が設定された後は、設定された選択確率にしたがって選択される。
【００１７】
情報記録部１ｂは、生成処理部１ａによって進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部１ｄに記録する。図１では、情報記録部１ｂによって記憶部１ｄに記録される情報を、「増減情報２ａ」と表す。
【００１８】
例えば、図１に示すように、進化処理３＿１において、親個体４＿１から子個体５＿１が生成されたとする。親個体４＿１は、部分プログラム＃１〜＃４を含み、子個体５＿１は、部分プログラム＃１，＃３〜＃５を含むものとする。すなわち、親個体４＿１が子個体５＿１に進化する過程で、部分プログラム＃２が削除され、部分プログラム＃５が新たに組み込まれたとする。
【００１９】
この場合、情報記録部１ｂは、例えば、進化の前後で数が変化した部分プログラムとして、部分プログラム＃２，＃５を示す情報を増減情報２ａに記録する。図１の例では、増減情報２ａにおいて、部分プログラム＃２に対応付けて数値“−１”が記録され、部分プログラム＃５に対応付けて数値“＋１”が記録されている。これは、進化によって部分プログラム＃２が１つ減少し、部分プログラム＃５が１つ増加したことを示す。なお、情報記録部１ｂは、進化によって数が増加した部分プログラム＃５についての情報だけを増減情報２ａに記録してもよい。
【００２０】
また、進化処理３＿１では、親個体４＿１を基に算出された適応度より、子個体５＿１を基に算出された適応度の方が“０．１”だけ大きかったものとする。この場合、情報記録部１ｂは、例えば、進化の前後での適応度の差分を示す情報として、数値“＋０．１”を増減情報２ａに記録する。なお、適応度の差分を示す情報は、例えば、進化によって適応度が増加した場合のみ増減情報２ａに記録されてもよい。
【００２１】
確率設定部１ｃは、所定期間に情報記録部１ｂによって記憶部１ｄに記録された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定する。そして、判定された貢献度が高いほど設定値が高くなるように、部分プログラムごとに選択確率を設定する。
【００２２】
例えば、確率設定部１ｃは、図１に示すように、ｎ回の進化処理３＿１〜３＿ｎが実行された期間に記録された増減情報２ａに基づいて、貢献度を部分プログラムごとに判定する。そして、その判定結果に基づいて、部分プログラムごとの選択確率を設定情報２ｂに設定する。
【００２３】
生成処理部１ａは、確率設定部１ｃによって設定情報２ｂが設定された後、進化処理を実行する際には、突然変異により進化後の個体へ組み込む部分プログラムを、設定情報２ｂに設定された選択確率にしたがって選択する。例えば、生成処理部１ａは、（ｎ＋１）回目の進化処理３＿（ｎ＋１）において、親個体４＿（ｎ＋１）に対して突然変異処理を施して子個体５＿（ｎ＋１）を生成する際に、子個体５＿（ｎ＋１）へ新たに組み込む部分プログラムを、ランダムではなく、設定情報２ｂに設定された選択確率にしたがって選択する。これにより、設定された選択確率が高い部分プログラムほど、突然変異により子個体に対して新たに組み込まれる可能性が高くなる。
【００２４】
ここで、確率設定部１ｃは、所定期間に記憶部１ｄに記録された増減情報２ａに基づいて、適応度の増加に対する部分プログラムの貢献度を次のような方法で推定することができる。例えば、進化の前後に適応度が増加したときに、その進化の前後で個体中の数が増加した部分プログラムについては、適応度が増加したことに貢献している可能性が高いと推定できる。また、進化の前後に適応度が増加したときに、進化後に増加した数が多い部分プログラムほど、適応度の増加に対する貢献度が低いと推定することもできる。また、進化の前後に適応度が減少したときに、その進化の前後で個体中の数が増加した部分プログラムについては、適応度が増加したことに貢献している可能性が低いと推定することもできる。
【００２５】
確率設定部１ｃは、このような方法で判定した貢献度を基に、貢献度が高いほど設定値が高くなるように、部分プログラムごとに選択確率を設定する。これにより、その後の突然変異の処理の際に、適応度の増加に貢献する可能性が高い部分プログラムほど、子個体に対して新たに組み込まれる可能性が高くなる。その結果、生成された子個体を基に算出される適応度が増加する可能性も高まる。そして、このような進化処理が繰り返されることで、適応度が高い値に収束しやすくなり、学習が促進される。したがって、生成される画像処理プログラムの品質を維持したまま、プログラム生成処理に要する時間が短縮される可能性が高まる。
【００２６】
また、遺伝的プログラミングによる画像処理プログラムの生成処理では、選択し得る部分プログラムをあらかじめ多数用意しておくほど、生成される画像処理プログラムによる画像処理の品質を向上できる可能性が高まる。その反面、適応度が収束しにくくなり、プログラム生成処理に要する時間が長くなる可能性も高まる。
【００２７】
本実施の形態のプログラム生成装置１によれば、選択し得る部分プログラムの数が多くなった場合でも、学習が進むうちに、それらの部分プログラムの中から適応度の増加に貢献する可能性が高い部分プログラムが選択されやすくなる。これにより、適応度が高い値に収束しやすくなり、学習が促進される。したがって、高品質の画像処理を実現する画像処理プログラムを、短時間で生成できる可能性が高まる。
【００２８】
〔第２の実施の形態〕
次に、第２の実施の形態に係る画像処理装置について説明する。第２の実施の形態に係る画像処理装置は、図１に示したプログラム生成装置の処理機能と、この処理機能によって生成された画像処理プログラムを実行して画像処理を行う機能とを備える。
【００２９】
以下の説明では、まず、図２を用いて、遺伝的プログラミングによる画像処理プログラムの生成処理の基本的な手順を示す参考例について説明し、その後に、第２の実施の形態の画像処理装置について説明する。
【００３０】
図２は、画像処理プログラムの生成処理手順の参考例を示す図である。
画像処理プログラムの生成処理の前に、１つ以上の学習データ５０が用意される。学習データ５０には、入力画像５１と、入力画像５１に対して画像処理を施したときの目標画像５２とが含まれる。入力画像５１は、例えば、カメラによって被写体を撮像することによって得られる。
【００３１】
遺伝的プログラミングによる画像処理プログラムの生成処理では、個体は、１つ以上の部分プログラムを組み合わせて構成される。例えば、図２の左上に示すように、個体は木構造で定義される。
【００３２】
個体に組み込むことが可能な複数の部分プログラムも、あらかじめ用意される。以下、個体に組み込まれる部分プログラムの例として、画像フィルタを想定するが、部分プログラムは画像フィルタに限るものではなく、他の種類の画像処理を行うプログラムを用いることもできる。なお、図２の左上において、“Ｆ”は画像フィルタを示し、“Ｉ”は入力端子を示し、“Ｏ”は出力端子を示す。
【００３３】
遺伝的プログラミングによる画像処理プログラムの生成処理は、例えば、次のように実行される。まず、複数の初期個体による個体群６１が生成される（ステップＳ１１）。各初期個体のノードには、あらかじめ用意された複数の画像フィルタの中から画像フィルタがランダムに選択されて組み込まれる。次に、生成された個体群６１の中から、ランダムに２つの親個体が取り出される（ステップＳ１２）。
【００３４】
次に、これら２つの親個体に対して進化過程の処理が施されることで、２つ以上の子個体が生成される（ステップＳ１３）。進化過程では、２つの親個体に対して交叉処理および突然変異処理が行われる。２つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、３つ以上の子個体が生成されてもよい。
【００３５】
次に、進化過程を経て生成された子個体、および元の親個体のそれぞれについて、適応度が計算される（ステップＳ１４）。この処理では、対象の個体それぞれを用いた画像処理が、学習データ５０の各入力画像５１に対して実行され、実行後の画像と対応する目標画像５２とが比較されることで適応度が計算される。複数の学習データ５０が存在する場合、個体それぞれについて、複数の学習データ５０を用いて得られた適応度の平均値が算出される。
【００３６】
ここで、いずれかの個体の適応度が所定の閾値以上であった場合には、その個体が最終的な画像処理プログラムとして出力され、プログラム生成処理が終了する。一方、すべての個体の適応度が所定の閾値未満であった場合には、生成された各子個体および元の２つの親個体を含む個体群６２の中から、生存選択が行われる（ステップＳ１５）。この生存選択では、個体群６２の中から、算出された適応度が最大の個体が選択される。さらに、個体群６２内の残りの個体の中から、所定の方法で個体が１つ選択される。例えば、残りの個体の中から、適応度に応じた確率で個体が選択される。
【００３７】
このような生存選択によって選択された２つの個体は、個体群６１に含まれる個体のうち、親個体として取り出された２つの個体と入れ替えられる（ステップＳ１６）。これにより、個体群６１に含まれる個体が次世代の個体へ変更される。そして、適応度が所定の閾値以上となる個体が出現するまで、同様の処理が繰り返される。
【００３８】
ところで、上記の手順により生成される画像処理プログラムの用途の例としては、ＦＡ（Factory Automation）分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、欠陥が生じた箇所を抽出する、位置合わせを行う箇所を抽出するといった用途が考えられる。
【００３９】
このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像処理アルゴリズムの再構築の必要が生じる場合がある。このため、画像処理アルゴリズムの構築の容易性が求められている。また、照明条件の変化や被写体の形状、位置姿勢のバラツキ等の撮像環境の変化に対するロバスト性が高い画像処理アルゴリズムを構築することが求められている。
【００４０】
遺伝的プログラミングを利用することで、入力画像５１とこれに対応する目標画像５２とをあらかじめ用意しておくだけで、このような用途で使用可能な画像処理プログラムを容易に生成することができる。また、それぞれ撮像環境が異なる入力画像５１と目標画像５２のペア（学習データ５０）を複数用意しておくことで、撮像環境の変化に対するロバスト性が高い画像処理アルゴリズムを自動生成することもできる。
【００４１】
しかしながら、遺伝的プログラミングによる画像処理プログラムの生成処理では、その処理時間が長いという問題がある。特に、選択し得る画像フィルタが多く用意されているほど、高品質な画像処理を実現できる可能性が高まる反面、学習が収束しにくくなり、処理時間が長くなる可能性が高まる。
【００４２】
処理時間が長くなる要因としては、要素フィルタの進化過程で画像フィルタがランダムに選択されることが考えられる。例えば、画像フィルタがランダムに選択されると、所望の画像処理を実現するために適切ではない画像フィルタが選択される可能性があり、その場合には進化後の個体に基づく適応度が低下する可能性がある。このような事態が多く発生すると、無駄な進化過程を多数回経ることになり、学習の進行が遅くなってしまう。
【００４３】
そこで、第２の実施の形態に係る画像処理装置では、上記のようなプログラム生成手順に対して、進化過程で、適応度の増加に貢献する可能性が高い画像フィルタが選択されやすくなるような処理手順が追加される。これにより、生成される画像処理プログラムによる画像処理の品質を維持しつつも、プログラム生成処理に要する時間を短縮する。また、選択可能な画像フィルタを多くした場合でも、プログラム生成処理に要する時間が増大する可能性を低減する。
【００４４】
以下、第２の実施の形態に係る画像処理装置の詳細について説明する。
図３は、画像処理装置のハードウェア構成例を示す図である。画像処理装置１００は、例えば、図３に示すようなコンピュータとして実現される。
【００４５】
画像処理装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００４６】
プロセッサ１０１には、バス１０９を介して、ＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、画像処理装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００４７】
バス１０９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、読み取り装置１０６、ネットワークインタフェース１０７および通信インタフェース１０８がある。
【００４８】
ＨＤＤ１０３は、画像処理装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００４９】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１０４ａの画面に表示させる。表示装置としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００５０】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５１】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００５２】
ネットワークインタフェース１０７は、ネットワーク１０７ａを介して他の装置との間でデータの送受信を行う。
通信インタフェース１０８は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース１０８には、外部デバイスとしてカメラ１０８ａが接続されており、通信インタフェース１０８は、カメラ１０８ａから送信された画像データをプロセッサに送信する。
【００５３】
以上のようなハードウェア構成によって、画像処理装置１００の処理機能を実現することができる。
図４は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置１００は、画像取得部１１１、学習処理部１１２、画像処理部１１３、プログラム記憶部１３０、フィルタセット記憶部１４０、学習データ記憶部１５０および適応度変化記憶部１６０を有する。
【００５４】
画像取得部１１１および学習処理部１１２の処理は、例えば、画像処理装置１００のプロセッサ１０１が所定のプログラムを実行することで実現される。プログラム記憶部１３０、フィルタセット記憶部１４０および学習データ記憶部１５０は、例えば、画像処理装置１００のＨＤＤ１０３の記憶領域として実現される。適応度変化記憶部１６０は、例えば、画像処理装置１００のＲＡＭ１０２の記憶領域として実現される。
【００５５】
画像取得部１１１は、撮像された画像のデータをカメラ１０８ａから取得し、学習処理部１１２または画像処理部１１３に出力する。
学習処理部１１２は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部１３０に保存する。
【００５６】
画像処理部１１３の処理は、プログラム記憶部１３０に保存された画像処理プログラムを、画像処理装置１００のプロセッサ１０１が実行することで実現される。画像処理部１１３は、カメラ１０８ａによって撮像された画像のデータを画像取得部１１１を介して取得し、取得した画像のデータに対して画像処理を施す。処理後の画像は、例えば表示装置１０４ａに表示される。
【００５７】
フィルタセット記憶部１４０は、学習処理部１１２によって選択可能な画像フィルタのプログラムを、複数記憶する。また、フィルタセット記憶部１４０は、各画像フィルタに対応付けた選択確率を記憶する。
【００５８】
学習データ記憶部１５０は、それぞれ入力画像および目標画像の各データを含む学習データを、１つ以上記憶する。学習データに含まれる入力画像は、例えば、画像処理装置１００に接続されたカメラ１０８ａによって撮像された画像であってもよい。
【００５９】
適応度変化記憶部１６０には、後述する適応度変化テーブルが記憶される。適応度変化テーブルは、図１に示した増減情報２ａの一例であり、進化過程における親個体と子個体との間で数が変化した部分プログラムと、親個体および子個体のそれぞれを基に算出された適応度の差分とを示す情報を保持する。
【００６０】
学習処理部１１２は、学習制御部１２１、画像処理部１２２、適応度算出部１２３、適応度変化登録部１２４および選択確率設定部１２５を有する。なお、学習制御部１２１、画像処理部１２２および適応度算出部１２３は、図１に示した生成処理部１ａの一例である。また、適応度変化登録部１２４は、図１に示した情報記録部１ｂの一例であり、選択確率設定部１２５は、図１に示した確率設定部１ｃの一例である。
【００６１】
学習制御部１２１は、学習処理部１１２でのプログラム生成処理を統合的に制御する。
画像処理部１２２は、プログラム生成処理の過程で生成された個体に基づく画像処理を、学習データ記憶部１５０に記憶された入力画像に対して施す。
【００６２】
適応度算出部１２３は、画像処理部１２２による入力画像に対する処理が実行されたとき、処理後の画像と、学習データ記憶部１５０に記憶された対応する目標画像とを比較して、適応度を算出する。
【００６３】
適応度変化登録部１２４は、進化過程における親個体と子個体との間で数が変化した部分プログラムと、親個体および子個体のそれぞれを基に算出された適応度の差分とを判定する。適応度変化登録部１２４は、それらの判定結果に基づく情報を適応度変化記憶部１６０に登録する。
【００６４】
選択確率設定部１２５は、所定期間において適応度変化記憶部１６０に登録された情報に基づいて、フィルタセット記憶部１４０に登録された画像フィルタごとに選択確率を算出する。選択確率設定部１２５は、算出した選択確率を画像フィルタに対応付けてフィルタセット記憶部１４０に設定する。
【００６５】
図５は、フィルタセットデータベースに登録される情報の例を示す図である。フィルタセットデータベース（ＤＢ）１４１は、図１に示した設定情報２ｂの一例であり、図４のフィルタセット記憶部１４０に記憶される。
【００６６】
フィルタセットデータベース１４１には、画像処理プログラムに組み込むことが可能な画像フィルタごとに、レコードが登録されている。各レコードには、対応する画像フィルタのプログラムコードと、選択確率とが登録される。選択確率の欄には、初期状態では、全画像フィルタに対して同じ値（例えば、数値“１”を登録された画像フィルタの数で除算した値）が設定される。
【００６７】
次に、適応度変化記憶部１６０に登録される適応度変化テーブルについて、２つの例を示す。
図６は、適応度変化テーブルの第１の例を示す図である。図６に示す適応度変化テーブル１５１には、進化過程の前後で、個体に含まれる数が減少した画像フィルタと増加した画像フィルタとのペアごとに、レコードが登録されている。例えば、図６において、“Ｆ１−＞Ｆ２”に対応するレコードは、進化過程の前後で画像フィルタＦ１の数が減少し、画像フィルタＦ２の数が増加したことを示す。このようなケースとしては、例えば、親個体に含まれていた画像フィルタＦ１が、子個体において画像フィルタＦ２に入れ替えられるケースなどが考えられる。
【００６８】
また、各レコードには、進化後の子個体を基に算出された適応度から、進化前の親個体を基に算出された適応度を減算した値に基づいて算出される適応度変化が記録される。適応度変化の値としては、例えば、上記の減算値がそのまま記録されてもよいし、あるいは、後述するように、上記の増減値を、進化の過程での画像フィルタの増減数によって規格化した値が記録されてもよい。また、適応度変化の値は、例えば、進化過程の処理が実行されるたびに、対応するレコードに記録される。
【００６９】
図７は、適応度変化テーブルの第２の例を示す図である。図７に示す適応度変化テーブル１５２には、図６の例とは異なり、画像フィルタごとにレコードが登録され、各レコードに適応度変化が記録される。適応度変化の値は、例えば、対応する画像フィルタの数が進化後に増加した場合に、対応するレコードに登録される。また、適応度変化の値は、さらに、対応する画像フィルタの数が進化後に減少した場合にも、対応するレコードに登録されてもよい。
【００７０】
次に、上記の適応度変化テーブル１５１，１５２のいずれかを用いた、適応度変化登録部１２４による適応度変化の登録処理例について説明する。まず、図８，図９を用いて、進化の前後で画像フィルタが入れ替わる場合での適応度変化の登録処理例について説明する。
【００７１】
図８は、適応度変化の第１の登録処理例を示す図である。図８において、親個体７１ａは、画像フィルタＦ１，Ｆ３，Ｆ５を含み、親個体７１ｂは、画像フィルタＦ２，Ｆ３，Ｆ４，Ｆ６を含む。そして、親個体７１ａと親個体７１ｂとの間で交叉が行われることで、親個体７１ａ，７１ｂに対応する子個体（図示せず）がそれぞれ生成されるものとする。図８では例として、親個体７１ａに含まれる画像フィルタＦ３と、親個体７１ｂに含まれる画像フィルタＦ４との間で交叉が行われるものとする。
【００７２】
また、親個体７１ａに基づいて算出された適応度の値が“０．５”であり、親個体７１ａに対応する子個体に基づいて算出された適応度の値が“０．７”であったとする。さらに、親個体７１ｂに基づいて算出された適応度の値が“０．６”であり、親個体７１ｂに対応する子個体に基づいて算出された適応度の値が“０．３”であったとする。
【００７３】
この図８のケースでは、親個体７１ａの進化の前後では、画像フィルタＦ３が１つ減少し、画像フィルタＦ４が１つ増加し、適応度が“０．２”だけ増加する。そこで、適応度変化登録部１２４は、例えば、図６の適応度変化テーブル１５１における“Ｆ３−＞Ｆ４”に対応するレコードに、適応度変化の値として“０．２”を登録する。
【００７４】
また、図８のケースでは、親個体７１ｂの進化の前後では、画像フィルタＦ４が１つ減少し、画像フィルタＦ３が１つ増加し、適応度が“０．３”だけ減少する。そこで、適応度変化登録部１２４は、例えば、図６の適応度変化テーブル１５１における“Ｆ４−＞Ｆ３”に対応するレコードに、適応度変化の値として“−０．３”を登録する。
【００７５】
図９は、適応度変化の第２の登録処理例を示す図である。図９において、親個体７２は、画像フィルタＦ１，Ｆ３，Ｆ５を含む。そして、親個体７２に対して突然変異が行われることで、親個体７２に対応する子個体（図示せず）が生成されるものとする。図９では例として、親個体７２に含まれる画像フィルタＦ１が、突然変異により画像フィルタＦ２に置き換えられるものとする。また、親個体７２に基づいて算出された適応度の値が“０．４”であり、親個体７２に対応する子個体に基づいて算出された適応度の値が“０．５”であったとする。
【００７６】
この図９のケースでは、親個体７２の進化の前後では、画像フィルタＦ１が１つ減少し、画像フィルタＦ２が１つ増加し、適応度が“０．１”だけ増加する。そこで、適応度変化登録部１２４は、例えば、図６の適応度変化テーブル１５１における“Ｆ１−＞Ｆ２”に対応するレコードに、適応度変化の値として“０．１”を登録する。
【００７７】
なお、図７の適応度変化テーブル１５２が用いられる場合、図７，図８のケースでは、例えば、次のような登録処理が行われる。まず、一例として、進化前後で数が増加した画像フィルタについてのみ適応度変化が登録されるものとする。図８のケースでは、適応度変化登録部１２４は、画像フィルタ“Ｆ４”に対応するレコードに、適応度変化の値として“０．２”を登録し、画像フィルタ“Ｆ３”に対応するレコードに、適応度変化の値として“−０．３”を登録する。また、図９のケースでは、適応度変化登録部１２４は、画像フィルタ“Ｆ２”に対応するレコードに、適応度変化の値として“０．１”を登録する。
【００７８】
これに加えて、進化前後で数が減少した画像フィルタについても適応度変化が登録されてもよい。この場合、進化前後で数が減少した画像フィルタは、進化前後での適応度の変化に対する貢献度が低いと考えられることから、適応度変化の値としては、例えば、進化前後での適応度の変化量の正負を逆転した値が登録される。図８のケースでは、例えば、適応度変化登録部１２４はさらに、画像フィルタ“Ｆ３”に対応するレコードに、適応度変化の値として“−０．２”を登録し、画像フィルタ“Ｆ４”に対応するレコードに、適応度変化の値として“０．３”を登録する。また、図９のケースでは、例えば、適応度変化登録部１２４はさらに、画像フィルタ“Ｆ１”に対応するレコードに、適応度変化の値として“−０．１”を登録する。
【００７９】
以上の図８，図９の例は、進化の前後で画像フィルタが１つずつ入れ替わるという単純なケースであった。しかしながら、実際の進化過程では、例えば交叉により、進化の前後で２以上の画像フィルタが増加または減少する場合があり得る。例えば、進化の前後で画像フィルタが２つ増加し、適応度が“０．２”だけ増加した場合、増加した２つの画像フィルタは、適応度が“０．２”だけ増加することに対してそれぞれ１／２の割合で貢献したと推定することができる。適応度変化登録部１２４は、進化の前後での画像フィルタの増減数を加味して適応度変化の値を算出してもよい。
【００８０】
以下の説明では、まず、図１０に進化過程での画像フィルタの増減の例を示し、図１０の例を用いた場合の適応度変化の登録処理例について、図１１，図１２を用いて説明する。
【００８１】
図１０は、進化過程での画像フィルタの増減の例を示す図である。図１０の表８１は、個体の進化前後での構成および適応度の変化の例を示す。表８１の例では、親個体は、３つの画像フィルタＦ１と、２つの画像フィルタＦ２と、２つの画像フィルタＦ３と、３つの画像フィルタＦ４とを含む。また、この親個体の進化により生成された子個体は、２つの画像フィルタＦ１と、３つの画像フィルタＦ２と、２つの画像フィルタＦ３と、１つの画像フィルタＦ４と、３つの画像フィルタＦ５とを含む。また、親個体に基づいて算出された適応度は“０．５”であり、子個体に基づいて算出された適応度は“０．７”であるとする。
【００８２】
適応度変化登録部１２４は、進化過程で表８１のような個体の構成変化があった場合に、進化前後での個体内の画像フィルタの数の差分を抽出する。表８１に基づく差分は、図１０の表８２に示すように抽出される。すなわち、進化の前後で、画像フィルタＦ１は１つ減少し、画像フィルタＦ２は１つ増加し、画像フィルタＦ４は２つ減少し、画像フィルタＦ５は３つ増加している。また、画像フィルタＦ３の増減数は“０”である。
【００８３】
図１１は、適応度変化の第３の登録処理例を示す図である。この図１１では、図７の適応度変化テーブル１５２に対して適応度変化を登録する場合を想定する。
図１１（Ａ）は、進化前後で増加した画像フィルタだけに注目した場合の例を示す。図１０の表８２に示したように、進化により画像フィルタＦ２は１つ増加し、画像フィルタＦ５は３つ増加している。そこで、適応度変化登録部１２４は、適応度変化テーブル１５２のレコードのうち、画像フィルタＦ２，Ｆ５にそれぞれ対応するレコードに、適応度変化を登録する。図１１（Ａ）の例では、適応度変化登録部１２４は、画像フィルタＦ２，Ｆ５にそれぞれ対応するレコードに、進化前後での適応度の増加量“０．２”をそのまま登録している。
【００８４】
図１１（Ｂ）は、図１１（Ａ）の例に加えて、進化前後で減少した画像フィルタにも注目した場合の例を示す。図１０の表８２に示したように、進化により画像フィルタＦ１は１つ減少し、画像フィルタＦ４は２つ減少している。そこで、適応度変化登録部１２４は、適応度変化テーブル１５２のレコードのうち、画像フィルタＦ１，Ｆ４にそれぞれ対応するレコードにも、適応度変化を登録する。図１１（Ｂ）の例では、適応度変化登録部１２４は、画像フィルタＦ１，Ｆ４にそれぞれ対応するレコードに、進化前後での適応度の増加量の正負を逆転した値“−０．２”を登録している。
【００８５】
図１１（Ｃ）は、進化前後での画像フィルタの増減数に基づいて適応度変化を規格化した場合の例を示す。なお、図１１（Ｃ）の例では、図１１（Ｂ）と同様に、進化前後で増加した画像フィルタだけでなく、減少した画像フィルタに対応するレコードも適応度変化の登録対象とされている。
【００８６】
適応度変化登録部１２４は、例えば、進化前後で数が増加した画像フィルタに対応する適応度変化を、次の式（１）にしたがって算出する。
“適応度変化”＝“適応度の増加量”／（“増加した画像フィルタの種類の数”×“該当画像フィルタの増加数”）      ・・・（１）
例えば、画像フィルタＦ２に対応する適応度変化は、（０．７−０．５）／（２×１）＝０．１と算出される。
【００８７】
また、適応度変化登録部１２４は、例えば、進化前後で数が減少した画像フィルタに対応する適応度変化を、次の式（２）にしたがって算出する。
“適応度変化”＝（−１）×“適応度の増加量”／（“減少した画像フィルタの種類の数”×“該当画像フィルタの減少数”）      ・・・（２）
例えば、画像フィルタＦ１に対応する適応度変化は、（−１）×（０．７−０．５）／（２×１）＝−０．１と算出される。
【００８８】
この図１１（Ｃ）の例のように、進化前後での画像フィルタの増減数に基づいて適応度変化を規格化することで、図１１（Ａ），（Ｂ）の例と比較して、進化による適応度の変化量に対する各画像フィルタの影響度合いを、登録する適応度に正確に反映させることができる。その結果、画像フィルタごとの選択確率に対して、適応度の増加に対する貢献度を正確に反映できるようになり、プログラム生成処理に要する時間を短縮できる可能性を高めることができる。
【００８９】
図１２は、適応度変化の第４の登録処理例を示す図である。この図１２では、図６の適応度変化テーブル１５１に対して適応度変化を登録する場合を想定する。
図１２（Ａ）〜（Ｃ）に示す各表においては、縦方向に並列する画像フィルタは、進化前後で数が減少した画像フィルタを示し、横方向に並列する画像フィルタは、進化前後で数が増加した画像フィルタを示す。また、図１２（Ａ）〜（Ｃ）における左側の表は、画像フィルタの増加数または増減数を示し、右側の表は、適応度変化を示す。
【００９０】
右側の表においては、縦方向に並列した画像フィルタと、横方向に並列した画像フィルタとの組み合わせにより、適応度変化テーブル１５１における１つのレコードが示される。例えば、縦方向における画像フィルタＦ１と、横方向における画像フィルタＦ２との組み合わせは、適応度変化テーブル１５１における“Ｆ１−＞Ｆ２”に対応するレコード（すなわち、画像フィルタＦ１の数が減少し、画像フィルタＦ２の数が増加したことに対応するレコード）を示す。
【００９１】
図１２（Ａ）は、数が減少した画像フィルタと数が増加した画像フィルタとの組み合わせに対応するレコードに適応度変化を登録する場合の例を示す。図１０の表８２に示したように、進化により画像フィルタＦ２，Ｆ５が増加し、画像フィルタＦ１，Ｆ４が減少している。そこで、適応度変化登録部１２４は、適応度変化テーブル１５１のレコードのうち、“Ｆ１−＞Ｆ２”，“Ｆ４−＞Ｆ２”，“Ｆ１−＞Ｆ５”，“Ｆ４−＞Ｆ５”にそれぞれ対応するレコードに、適応度変化を登録する。
【００９２】
この図１２（Ａ）の例では、その左側の表に示すように、画像フィルタの増加数を考慮せず、増加数を一律に“１”とし、適応度変化に対して画像フィルタの増減数を反映させないものとする。この場合、適応度変化登録部１２４は、図１２（Ａ）の右側の表に示すように、“Ｆ１−＞Ｆ２”，“Ｆ４−＞Ｆ２”，“Ｆ１−＞Ｆ５”，“Ｆ４−＞Ｆ５”にそれぞれ対応するレコードに、進化前後での適応度の増加量“０．２”をそのまま登録する。
【００９３】
図１２（Ｂ）は、図１２（Ａ）の例に加えて、数が増加した画像フィルタと数が減少した画像フィルタとの組み合わせに対応するレコードにも、適応度変化を登録する場合の例を示す。適応度変化登録部１２４は、適応度変化テーブル１５１のレコードのうち、“Ｆ２−＞Ｆ１”，“Ｆ２−＞Ｆ４”，“Ｆ５−＞Ｆ１”，“Ｆ５−＞Ｆ４”にそれぞれ対応するレコードに、負の値の適応度変化を登録する。
【００９４】
図１２（Ｂ）の例では、図１２（Ａ）と同様、その左側の表に示すように、画像フィルタの減少数を考慮せず、減少数を一律に“１”とし、適応度変化に対して画像フィルタの増減数を反映させないものとする。この場合、適応度変化登録部１２４は、図１２（Ｂ）の右側の表に示すように、“Ｆ２−＞Ｆ１”，“Ｆ２−＞Ｆ４”，“Ｆ５−＞Ｆ１”，“Ｆ５−＞Ｆ４”にそれぞれ対応するレコードに、進化前後での適応度の増加量の正負を逆転した値“−０．２”を登録する。
【００９５】
図１２（Ｃ）の例は、図１２（Ａ）の例を、画像フィルタの増減数に応じて適応度変化を規格化するように変形したものである。適応度変化登録部１２４は、まず、画像フィルタの増加数を、減少した画像フィルタの数を用いて規格化する。
【００９６】
例えば、画像フィルタＦ２，Ｆ５の増加数はそれぞれ“１”，“３”であり、画像フィルタＦ１，Ｆ４の減少数はそれぞれ“１”，“２”である。そこで、適応度変化登録部１２４は、“Ｆ１−＞Ｆ２”，“Ｆ４−＞Ｆ２”の各レコードに対応するフィルタ増加数が、画像フィルタＦ２の増加数“１”を基準にして、画像フィルタＦ２，Ｆ４の減少数の比に一致するように、各レコードに対応するフィルタ増加数を計算する。これにより、図１２（Ｃ）の左側の表に示すように、“Ｆ１−＞Ｆ２”，“Ｆ４−＞Ｆ２”の各レコードに対応するフィルタ増加数は、“１”，“０．５”と算出される。
【００９７】
同様に、適応度変化登録部１２４は、“Ｆ１−＞Ｆ５”，“Ｆ４−＞Ｆ５”の各レコードに対応するフィルタ増加数が、画像フィルタＦ５の増加数“３”を基準にして、画像フィルタＦ２，Ｆ４の減少数の比に一致するように、各レコードに対応するフィルタ増加数を計算する。これにより、図１２（Ｃ）の左側の表に示すように、“Ｆ１−＞Ｆ５”，“Ｆ４−＞Ｆ５”の各レコードに対応するフィルタ増加数は、“３”，“１．５”と算出される。
【００９８】
次に、適応度変化登録部１２４は、各レコードに対応するフィルタ増加数に基づいて、各レコードに対応する適応度変化を算出する。例えば、適応度変化登録部１２４は、適応度の増加量“０．２”を、上記処理によって算出されたフィルタ増加数を用いて規格化する。
【００９９】
適応度変化登録部１２４は、例えば、レコードに登録する適応度変化を、式（１）を変形した次の式（３）にしたがって算出する。
“適応度変化”＝“適応度の増加量”／（“増減したフィルタの種類の数”×“該当レコードのフィルタ増加数”）      ・・・（３）
例えば、図１２（Ｃ）の右側の表に示すように、“Ｆ１−＞Ｆ２”に対応するレコードに登録される適応度変化は、（０．７−０．５）／（４×１）＝０．５と算出される。
【０１００】
この図１２（Ｃ）の例のように、進化前後での画像フィルタの増減数に基づいて適応度変化を規格化することで、図１２（Ａ）の例と比較して、進化による適応度の変化量に対する各画像フィルタの影響度合いを、登録する適応度に正確に反映させることができる。その結果、画像フィルタごとの選択確率に対して、適応度の増加に対する貢献度を正確に反映できるようになり、プログラム生成処理に要する時間を短縮できる可能性を高めることができる。
【０１０１】
なお、上記の図１１および図１２（Ｃ）では、進化前後で増減していない画像フィルタに対応する項目に値“０”が記載されている。実際の登録処理では、進化前後で増減していない画像フィルタに対応する、適応度変化テーブルのレコードには、適応度変化として値“０”が登録されてもよいし、あるいは何も登録されなくてもよい。
【０１０２】
次に、図１３，図１４を用いて、選択確率設定部１２５による選択確率の設定処理の例について説明する。選択確率設定部１２５は、所定期間において適応度変化記憶部１６０に登録された適応度変化に基づいて、画像フィルタごとに有効度を算出する。有効度は、対応する画像フィルタが、適応度の増加に対してどの程度有効か（貢献するか）を示す度合いの推定値である。選択確率設定部１２５は、算出した有効度に基づいて画像フィルタごとの選択確率を算出し、算出した選択確率を画像フィルタに対応付けてフィルタセットデータベース１４１に設定する。
【０１０３】
図１３は、適応度変化の累積ヒストグラムの例を示す。この図１３を用いて、適応度変化の累積ヒストグラムを用いて有効度を算出する処理例について説明する。なお、図１３では、図６の適応度変化テーブル１５１に登録された適応度変化を利用する場合を想定する。また、進化過程で算出される適応度の値は、“０”から“１”までの値をとるものとする。
【０１０４】
図１３（Ａ）に示す第１の例は、適応度変化テーブル１５１における“Ｆ１−＞Ｆ２”に対応するレコードに登録された適応度変化の累積ヒストグラムの例を示す。図１３（Ａ）の例では、適応度変化の値が正の領域に累積ヒストグラムのピークが存在しており、そのピークに対応する度数が所定の閾値Ｔｈ１以上となっている。
【０１０５】
この場合、画像フィルタＦ２は、適応度を増加させることに貢献すると推定され、ピーク位置の値がその貢献度を表すと考えられる。そこで、選択確率設定部１２５は、累積ヒストグラムのピーク位置の値（図１３（Ａ）の例では“０．５”）を、画像フィルタＦ２の有効度として算出する。あるいは、選択確率設定部１２５は、累積ヒストグラムの平均値を、画像フィルタＦ２の有効度として算出してもよい。
【０１０６】
実際には、適応度変化テーブル１５１には、進化後に数が増加した画像フィルタとして画像フィルタＦ２が設定されたレコードが、複数存在する。例えば、画像フィルタがｎ個存在する場合、適応度変化テーブル１５１には、“Ｆ１−＞Ｆ２”，“Ｆ３−＞Ｆ２”，・・・，“Ｆｎ−＞Ｆ２”にそれぞれ対応する（ｎ−１）個のレコードが存在する。選択確率設定部１２５は、これらの（ｎ−１）個のレコードのそれぞれから累積ヒストグラムのピーク位置の値を判別し、判別された各値の平均値を、画像フィルタＦ２の有効度として算出する。
【０１０７】
このような手順で各画像フィルタの有効度が算出されると、選択確率設定部１２５は、算出された有効度に基づいて、画像フィルタごとの選択確率を算出する。ここで、ｎ個の画像フィルタをランダムに（すなわち、同じ選択確率で）選択した場合、各画像フィルタの選択確率は“１／ｎ”となる。そこで、選択確率の算出方法としては、例えば、画像フィルタの有効度が全画像フィルタの有効度の平均値より高い場合には、その画像フィルタの選択確率を“１／ｎ”より高くし、画像フィルタの有効度が全画像フィルタの有効度の平均値より低い場合には、その画像フィルタの選択確率を“１／ｎ”より低くする方法を用いることができる。例えば、画像フィルタの選択確率は、次の式（４）にしたがって算出される。
“選択確率”＝（１／ｎ）＋（“該当画像フィルタの有効度”−“全画像フィルタの有効度の平均値”）×０．５      ・・・（４）
次に、図１３（Ｂ）に示す第２の例は、適応度変化テーブル１５１における“Ｆ２−＞Ｆ１”に対応するレコードに登録された適応度変化の累積ヒストグラムの例を示す。図１３（Ｂ）の例では、累積ヒストグラムのピーク値が閾値Ｔｈ１以上であるが、そのピーク位置が負の位置となっている。
【０１０８】
この場合でも、選択確率設定部１２５は、累積ヒストグラムのピーク位置の値を、画像フィルタＦ１の有効度として算出してもよい。ただし、有効度の値が低い場合、数が増加した画像フィルタＦ１は、適応度を増加させることに対して貢献していない可能性が高い。
【０１０９】
そこで、選択確率設定部１２５は、有効度の値が所定値（例えば“０”）以下である場合、該当画像フィルタの選択確率を所定の最低値に設定してもよい。これにより、その後の進化過程において、適応度の増加に貢献しない画像フィルタが新たに選択される確率が低くなり、算出される適応度の収束が促進されるようになる。
【０１１０】
あるいは、選択確率設定部１２５は、該当画像フィルタを、進化過程での選択対象から除外してもよい。また、選択対象から除外するために、該当画像フィルタに対応する選択確率として“０”が設定されてもよい。このように、進化過程において、適応度の増加に貢献しない画像フィルタが新たに選択されないようにすることで、適応度が収束する速度が向上する可能性が高まる。
【０１１１】
さらに、図１３（Ｃ）に示す第２の例は、適応度変化テーブル１５１における“Ｆ３−＞Ｆ４”に対応するレコードに登録された適応度変化の累積ヒストグラムの例を示す。図１３（Ｃ）の例では、登録された適応度変化の分布が分散しており、累積ヒストグラムのピーク値が閾値Ｔｈ１に達していない。この場合、画像フィルタＦ４は、適応度を増加させることに対して大きく貢献してはいないと推定される。そこで、選択確率設定部１２５は、例えば、画像フィルタＦ４に対応する有効度を、所定の最低値（例えば“−１”）とし、この画像フィルタＦ４の選択確率が低い値になるようにする。
【０１１２】
なお、図１３では、図６の適応度変化テーブル１５１に基づく累積ヒストグラムを利用する場合を想定したが、図７の適応度変化テーブル１５２に基づく累積ヒストグラムを利用してもよい。
【０１１３】
図１４は、選択確率の他の設定処理例を示す図である。この図１４でも、図６の適応度変化テーブル１５１に登録された適応度変化を利用する場合を想定する。
図１４の表において、縦方向に並列する画像フィルタは、進化前後で数が減少した画像フィルタＦｍ（ｍ＝１〜５）を示し、横方向に並列する画像フィルタは、進化前後で数が増加した画像フィルタＦｎ（ｎ＝１〜５）を示す。また、縦方向に並列した画像フィルタＦｍと、横方向に並列した画像フィルタＦｎとの組み合わせにより、適応度変化テーブル１５１における１つのレコードが特定される。図１４では、１つの画像フィルタＦｍと１つの画像フィルタＦｎとに対応付けられた欄には、該当レコードに登録された適応度変化の平均値が設定されている。
【０１１４】
選択確率設定部１２５は、例えば、このような適応度変化の平均値を、画像フィルタＦｎごとに平均することで、その画像フィルタＦｎに対応する有効度を算出する。例えば、画像フィルタＦ１に対応する有効度は、“（−０．４０−０．２０−０．１０−０．２０）／４＝−０．２２５”と算出される。そして、選択確率設定部１２５は、前述した式（４）にしたがって、画像フィルタＦｎそれぞれに対応する選択確率を算出する。
【０１１５】
なお、図１４の例では、画像フィルタＦ１，Ｆ４の各有効度が“０”以下の値となっている。選択確率設定部１２５は、例えば、有効度が所定の閾値（例えば“０”）以下である画像フィルタについては、選択確率を“０”とし、その画像フィルタが進化過程での選択対象から除外されるようにしてもよい。
【０１１６】
次に、第２の実施の形態におけるプログラム生成処理手順について、フローチャートを用いて説明する。図１５は、プログラム生成処理手順の例を示すフローチャートである。
［ステップＳ２１］学習制御部１２１は、学習データの設定のための入力操作を受け付ける。例えば、学習データ記憶部１５０に記憶された学習データの中から、本処理で使用される学習データが指定される。
【０１１７】
［ステップＳ２２］学習制御部１２１は、フィルタセットの設定のための入力操作を受け付ける。例えば、フィルタセットデータベース１４１に登録された画像フィルタの中から、本処理で使用される画像フィルタが指定される。
【０１１８】
［ステップＳ２３］学習制御部１２１は、所定数の個体を含む個体群を生成する。各個体は、ステップＳ２２で指定された画像フィルタをランダムに選択して組み合わせることで生成される。なお、生成される個体群は、図２に示した個体群６１に相当するので、これ以後、“個体群６１”と表記する。
【０１１９】
［ステップＳ２４］学習制御部１２１は、個体群６１に含まれる個体の中から、２つの親個体をランダムに選択する。
［ステップＳ２５］学習制御部１２１は、選択された２つの親個体の間で交叉を行うことで、２つ以上の所定数の子個体を生成する。
【０１２０】
［ステップＳ２６］学習制御部１２１は、生成された子個体に突然変異を発生させ、子個体に含まれる画像フィルタを、ステップＳ２２で指定された他の画像フィルタのいずれかに置き換える。このとき、学習制御部１２１は、フィルタセットデータベース１４１において画像フィルタに対応付けられた選択確率に基づいて、置き換え後の画像フィルタを選択する。すなわち、設定された選択確率が高い画像フィルタほど、突然変異によって子個体に新たに組み込まれる可能性が高くなるような選択処理が行われる。
【０１２１】
［ステップＳ２７］ステップＳ２４で選択された各親個体、および、ステップＳ２６，Ｓ２７の処理によって得られた各子個体について、適応度が算出される。この処理では、算出対象の各個体について次のような処理が行われる。
【０１２２】
画像処理部１２２は、ステップＳ２１で指定された学習データを１つ選択し、選択した学習データに含まれる入力画像に対して、算出対象の個体の処理を適用する。適応度算出部１２３は、個体の処理によって得られた画像と、選択した学習データに含まれる目標画像との間の一致度を計算することで、適応度を算出する。画像処理部１２２および適応度算出部１２３は、以上の処理を、ステップＳ２１で指定された学習データのすべてについて実行する。適応度算出部１２３は、算出されたすべての適応度の平均値を算出し、この平均値を、算出対象の個体の適応度として出力する。
【０１２３】
［ステップＳ２８］学習制御部１２１は、ステップＳ２７で算出された各個体の適応度のうちの最大値が、所定の閾値より大きいかを判定する。適応度の最大値が閾値より大きい場合、ステップＳ２９の処理が実行される。一方、適応度の最大値が閾値以下である場合、ステップＳ３０の処理が実行される。
【０１２４】
［ステップＳ２９］学習制御部１２１は、ステップＳ２７で適応度が算出された個体のうち、適応度が最大の個体を選択する。学習制御部１２１は、選択した個体が示す画像処理プログラムをプログラム記憶部１３０に格納し、プログラム生成処理を終了する。
【０１２５】
［ステップＳ３０］適応度変化登録部１２４は、ステップＳ２５，Ｓ２６の処理によって得られた各子個体と、子個体に対応する元の親個体とを対応付けることで、親子の個体のペアを複数生成する。適応度変化登録部１２４は、生成した個体ペアのそれぞれについて、適応度の増減を算出する。適応度の増減は、子個体の適応度から親個体の適応度を減算した値として算出される。
【０１２６】
［ステップＳ３１］適応度変化登録部１２４は、生成した個体ペアのそれぞれについて、フィルタ構造の差分を抽出する。この処理では、適応度変化登録部１２４は、親子の個体間で数が減少した画像フィルタとその減少数、および、数が増加した画像フィルタとその増加数を判別する。
【０１２７】
［ステップＳ３２］適応度変化登録部１２４は、ステップＳ３０で算出された適応度の増減と、ステップＳ３１で抽出されたフィルタ構造の差分の情報とに基づいて、画像フィルタごとの適応度変化を算出し、適応度変化記憶部１６０に登録する。
【０１２８】
適応度変化の算出方法については、図８〜図１２において説明した通りである。また、図６の適応度変化テーブル１５１が用いられる場合、適応度変化の値は、数が減少した画像フィルタと数が増加した画像フィルタとの組み合わせごとに設けられたレコードに登録される。一方、図７の適応度変化テーブル１５２が用いられる場合、適応度変化の値は、画像フィルタごとに設けられたレコードに登録される。
【０１２９】
［ステップＳ３３］学習制御部１２１は、ステップＳ２４で選択された各親個体、および、ステップＳ２６，Ｓ２７の処理によって得られた各子個体のうち、適応度が最大の個体を、生存させる個体として選択する。さらに、学習制御部１２１は、残りの個体の中から、生存させる個体をさらに１つ選択する。この選択処理では、例えば、算出された適応度に応じた確率で個体が選択される。
【０１３０】
学習制御部１２１は、個体群６２の個体のうち、ステップＳ２４で選択された２つの個体を、生存させる個体として選択された２つの個体に入れ替える。これによって、個体群６２の世代が更新される。
【０１３１】
［ステップＳ３４］学習制御部１２１は、所定期間が経過したかを判定する。所定期間が経過した場合、ステップＳ３５の処理が実行される。一方、所定期間が経過していない場合、ステップＳ２４の処理が実行される。なお、ステップＳ３４の実行後、所定期間をカウントするカウント値がリセットされる。
【０１３２】
このステップＳ３４の処理では、例えば、ステップＳ２４〜Ｓ３３までの処理が所定回数繰り返されたとき（すなわち、所定世代数分の進化処理が実行されたとき）に、所定期間が経過したと判定される。あるいは、適応度変化記憶部１６０に蓄積された適応度変化のデータ数が所定数に達したときに、所定期間が経過したと判定されてもよい。
【０１３３】
［ステップＳ３５］選択確率設定部１２５は、ステップＳ３４で判定された所定期間の間に適応度変化記憶部１６０に登録された適応度変化の値に基づいて、各画像フィルタの有効度を算出する。有効度の算出方法については、図１３，図１４で説明した通りである。
【０１３４】
［ステップＳ３６］選択確率設定部１２５は、ステップＳ３５で算出された有効度に基づいて、各画像フィルタの選択確率を算出する。選択確率は、例えば、前述した式（４）にしたがって算出される。また、選択確率設定部１２５は、有効度が所定の閾値以下の画像フィルタについて、選択確率を“０”としてもよい。選択確率が“０”とされた画像フィルタは、その後のステップＳ２６の処理における選択対象から除外される。
【０１３５】
選択確率設定部１２５は、算出された選択確率をフィルタセットデータベース１４１に設定する。このとき、フィルタセットデータベース１４１に登録された選択確率の値は、新たに算出された選択確率の値によって更新される。
【０１３６】
以上説明した第２の実施の形態では、画像処理装置１００は、進化前後の個体間の適応度の変化およびフィルタ構造の変化を示す情報を蓄積し、蓄積した情報を基に、適応度の増加に対する有効度を画像フィルタごとに算出する。そして、算出した有効度に応じた選択確率を各画像フィルタに設定し、その後の進化過程における突然変異の際に、子個体に組み込む画像フィルタを、設定された選択確率にしたがって選択する。これにより、進化過程において、適応度の増加に貢献する画像フィルタほど子個体に組み込まれる可能性が高くなり、その結果、算出される適応度が増加する可能性が高まり、適応度が高い値に収束されやすくなる。したがって、画像処理プログラムの生成処理に要する時間が短縮される可能性を高くすることができる。
【０１３７】
また、選択可能な画像フィルタの数を多くした場合や、参照される学習データの数を多くした場合でも、プログラム生成処理に要する時間が増大する可能性を低減することができる。その結果、品質の高い画像処理プログラムを短時間で生成できる可能性を高くすることができる。
【０１３８】
〔第３の実施の形態〕
ところで、第２の実施の形態のように、適応度の増加に貢献すると推定される画像フィルタの選択確率を高めた場合には、学習速度が加速される一方、局所的な解探索に陥る可能性も高くなる。局所的な解探索に陥るとは、本来の最適解とは異なる局所解に収束していくことを言う。このような場合には、画像フィルタの選択をランダムな選択に戻し、解の探索範囲を拡大して大局的な解探索が行われるようにする方がよいと考えられる。
【０１３９】
そこで、第３の実施の形態に係る画像処理装置には、第２の実施の形態に係る画像処理装置１００に対して、進化過程において、フィルタセットデータベース１４１に設定された選択確率にしたがって画像フィルタを選択する選択モードと、画像フィルタをランダムに選択する選択モードとを切り替える機能がさらに設けられる。そして、第３の実施の形態に係る画像処理装置は、進化過程での親子間の適応度の推移の傾向を判定し、その判定結果に応じて選択モードを切り替える。
【０１４０】
以下、フィルタセットデータベース１４１に設定された選択確率にしたがって画像フィルタを選択する選択モードを「非ランダム選択モード」と呼び、画像フィルタをランダムに選択する選択モードを「ランダム選択モード」と呼ぶ。
【０１４１】
図１６は、第３の実施の形態に係る画像処理装置の処理機能の構成例を示すブロック図である。この図１６では、図４と同じ構成要素には同じ符号を付して示しており、その説明を省略する。
【０１４２】
図１６に示す画像処理装置１００ａは、図４の画像処理装置１００の処理機能のうち、学習処理部１１２を学習処理部１１２ａに置き換え、さらにモード記憶部１７０ａを設けることで実現される。モード記憶部１７０ａには、現在、ランダム選択モードと非ランダム選択モードのどちらが設定されているかを示す情報が記憶される。
【０１４３】
学習処理部１１２ａは、図４の学習制御部１２１の代わりに学習制御部１２１ａを有する。学習制御部１２１ａの処理は、基本的には図４の学習制御部１２１と同じであるが、突然変異の際に、モード記憶部１７０ａに設定された選択モードにしたがって画像フィルタを選択する点が、学習制御部１２１と異なる。
【０１４４】
さらに、学習処理部１１２ａは、図４の学習処理部１１２が備える画像処理部１２２、適応度算出部１２３、適応度変化登録部１２４および選択確率設定部１２５に加えて、モード設定部１２６ａを有する。モード設定部１２６ａは、進化過程での親子間の適応度の推移の傾向を判定し、その判定結果に応じて選択モードを切り替え、切り替え後の選択モードをモード記憶部１７０ａに設定する。
【０１４５】
図１７は、選択モードの設定処理について示す図である。この図１７に示すグラフは、進化過程で算出された適応度の最大値（最大適応度）の推移を示す。
図１７における点線の折れ線Ｌ１は、非ランダム選択モードのままでプログラム生成処理が行われた場合の最大適応度の推移を示す。この折れ線Ｌ１に示すように、非ランダム選択モードに設定されていても、最大適応度は増加し続けるとは限らず、例えば図１７におけるタイミングＴ１からタイミングＴ２までの期間のように、その増加率が停滞することもあり得る。最大適応度の増加率が停滞する原因として、上記のように、局所的な解探索に陥っていることが考えられる。この場合、選択モードをランダム選択モードに切り替えて、より大局的な解探索が行われるようにすることで、最大適応度の増加が促進する可能性が高い。
【０１４６】
そこで、モード設定部１２６ａは、直近の所定世代数の処理のそれぞれにおいて算出された適応度の最大値に基づいて、最大適応度の増加率を算出する。そして、最大適応度の増加率が所定の閾値（ただし、閾値は“０”より大きい）以上の場合には、非ランダムモードに設定し、増加率が閾値未満の場合には、ランダムモードに設定する。これにより、図１７における太線の折れ線Ｌ２に示すように、最大適応度の増加率が停滞する期間が短くなる可能性が高くなり、最大適応度が所定の目標値に達するまでの時間を短縮できる可能性が高まる。
【０１４７】
図１８は、第３の実施の形態におけるプログラム生成処理手順の例を示すフローチャートである。この図１８では、図１５と同じ処理が行われる処理ステップには同じステップ番号を付して示し、その処理内容の説明を省略する。なお、これらの処理ステップにおいて、図１５で学習制御部１２１によって実行されていた処理は、図１８では学習制御部１２１ａによって実行される。
【０１４８】
図１８においては、図１５におけるステップＳ２６の代わりにステップＳ２６ａが実行される。また、図１５におけるステップＳ３３とステップＳ３４との間にステップＳ４１が実行される。
【０１４９】
［ステップＳ２６ａ］学習制御部１２１ａは、生成された子個体に突然変異を発生させ、子個体に含まれる画像フィルタを、ステップＳ２２で指定された他の画像フィルタに置き換える。このとき、学習制御部１２１ａは、モード記憶部１７０ａを参照して現在の選択モードを判別する。現在の選択モードがランダムモードである場合、学習制御部１２１ａは、置き換え後の画像フィルタをランダムに選択する。一方、現在の選択モードが非ランダムモードである場合、学習制御部１２１ａは、フィルタセットデータベース１４１において画像フィルタに対応付けられた選択確率に基づいて、置き換え後の画像フィルタを選択する。
【０１５０】
［ステップＳ４１］モード設定部１２６ａは、選択モードを設定する。この処理については、次の図１９を用いて説明する。
図１９は、選択モード設定処理手順の例を示すフローチャートである。
【０１５１】
［ステップＳ５１］モード設定部１２６ａは、現世代の処理（すなわち、直近のステップＳ２７の処理）で算出された適応度のうちの最大値と、所定世代数だけ前の処理で算出された適応度のうちの最大値とを収集する。これらの最大適応度は、例えば、算出された適応度を記憶したログ（図示せず）や、適応度変化記憶部１６０の情報などから収集することができる。
【０１５２】
［ステップＳ５２］モード設定部１２６ａは、抽出した最大適応度の増加率を計算する。最大適応度は、例えば、現世代の処理での最大適応度から、以前の世代の処理での最大適応度を減算し、その減算結果を世代数の差（すなわち、その世代から現世代までのステップＳ２７の繰り返し数）で除算することで算出される。
【０１５３】
［ステップＳ５３］モード設定部１２６ａは、算出された増加率と、“０”より大きい所定の閾値とを比較する。増加率が閾値以下である場合にはステップＳ５４の処理が実行され、増加率が閾値を超えている場合にはステップＳ５５の処理が実行される。
【０１５４】
［ステップＳ５４］モード設定部１２６ａは、モード記憶部１７０ａに設定された選択モードをランダム選択モードに更新する。
［ステップＳ５５］モード設定部１２６ａは、モード記憶部１７０ａに設定された選択モードを非ランダム選択モードに更新する。
【０１５５】
以上説明した第３の実施の形態では、画像処理装置１００ａは、適応度が順調に増加していると判断される場合には、突然変異の際に画像フィルタを、各画像フィルタに設定された選択確率に応じて選択する。一方、画像処理装置１００ａは、適応度の増加が停滞していると判断される場合には、突然変異の際に画像フィルタをランダムに選択する。これにより、算出される最大適応度が増加する可能性が高まり、適応度が高い値に収束されやすくなる。その結果、画像処理プログラムの生成処理に要する時間が短縮される可能性を高くすることができる。
【０１５６】
なお、上記の処理では、最大適応度の増加率が閾値より大きいか否かにより、画像フィルタをランダムに選択するか、または設定された選択確率に応じて選択するかを決定した。しかしながら、別の処理例として、最大適応度の増加率が閾値より大きいか否かにより、設定された選択確率に対して付加する重みを変化させ、突然変異の際には、重み付けを行った選択確率に応じて画像フィルタを選択するようにしてもよい。
【０１５７】
例えば、図１９のステップＳ５３において、モード設定部１２６ａは、増加率が閾値未満の場合には、重みの値を所定値または所定割合だけ低下させる。これにより、突然変異における画像フィルタの選択のランダム性が高まり、より大局的な解の探索を行うことが可能になる。一方、モード設定部１２６ａは、増加率が閾値以上の場合には、重みの値を所定値または所定割合だけ増加させる。これにより、突然変異の際に、適応度の増加に対する貢献度が高いと判定された画像フィルタほど選択される可能性が高くなる。なお、重みの値は、“０”以上“１”以下の範囲で設定される。
【０１５８】
このような処理が行われた場合でも、上記の第３の実施の形態の場合と同様に、算出される最大適応度が増加する可能性が高まり、適応度が高い値に収束されやすくなる。
〔第４の実施の形態〕
第４の実施の形態に係る画像処理装置では、選択モードの内容とその切り替え条件とが、第３の実施の形態に係る画像処理装置１００ａとは異なる。
【０１５９】
なお、第４の実施の形態に係る画像処理装置の処理機能の基本的な構成は、第３の実施の形態と同様であるので、以下の説明では、第４の実施の形態に係る画像処理装置を、図１６の符号を用いて説明する。
【０１６０】
図２０は、画像フィルタのグループ化の例を示す図である。第４の実施の形態に係る画像処理装置１００ａにおいて、フィルタセットデータベース１４１に登録されている画像フィルタは、処理内容が類似する画像フィルタごとのグループＦａ〜Ｆｄに分類されている。
【０１６１】
グループＦａには、空間フィルタ処理を行う画像フィルタが属する。例えば、グループＦａには、エッジ抽出を行う画像フィルタＦａ１、輪郭強調を行う画像フィルタＦａ２、平滑化を行う画像フィルタＦａ３、ノイズ除去を行う画像フィルタＦａ４などが属する。
【０１６２】
グループＦｂには、形状検出処理を行う画像フィルタが属する。例えば、グループＦｂには、直線検出を行う画像フィルタＦｂ１、コーナー検出を行う画像フィルタＦｂ２、円検出を行う画像フィルタＦｂ３、文字検出を行う画像フィルタＦｂ４、顔検出を行う画像フィルタＦｂ５などが属する。
【０１６３】
グループＦｃには、二値化処理を行う画像フィルタが属する。例えば、グループＦｃには、固定の閾値を用いて二値化処理を行う画像フィルタＦｃ１、可変の閾値を用いて二値化処理を行う画像フィルタＦｃ２、Ｐタイル法を用いて二値化処理を行う画像フィルタＦｃ３、適応二値化処理を行う画像フィルタＦｃ４などが属する。
【０１６４】
グループＦｄには、二値画像を処理する画像フィルタが属する。例えば、グループＦｄには、膨張・縮小処理を行う画像フィルタＦｄ１、ＡＮＤ演算を行う画像フィルタＦｄ２、ＯＲ演算を行う画像フィルタＦｄ３、輝度反転処理を行う画像フィルタＦｄ４などが属する。
【０１６５】
第４の実施の形態に係る画像処理装置１００ａは、最大適応度の増加率が高い状態では、“選択モード１”で画像フィルタの選択を行う。この選択モード１では、画像処理装置１００ａは、突然変異の対象の画像フィルタを、この画像フィルタと同じグループに属する画像フィルタを選択確率に応じて選択する。最大適応度の増加率が高い状態では、同じグループに属する画像フィルタ、すなわち、処理内容が類似する画像フィルタが選択されることで、適応度の増加に対して有効な画像フィルタが選択される可能性が高まると推定される。
【０１６６】
ただし、上記の選択モード１では、局所的な解探索に陥る可能性も高くなる。そこで、画像処理装置１００ａは、最大適応度の増加率が所定の閾値Ｔｈ＿Ｈ以下である場合には、選択モード１よりもランダム性を高めた選択が行われる選択モード２に設定する。選択モード２では、画像処理装置１００ａは、全画像フィルタの中から選択確率に応じて画像フィルタを選択する。選択モード１から選択モード２に変更されることで、解の探索範囲が拡大され、適応度の増加が促進される可能性が高まる。
【０１６７】
さらに、画像処理装置１００ｂは、最大適応度の増加率が閾値Ｔｈ＿Ｈより小さい所定の閾値Ｔｈ＿Ｌ以下である場合には、さらにランダム性を高めた選択が行われる選択モード３に設定する。選択モード３では、画像処理装置１００ａは、全画像フィルタの中からランダムに画像フィルタを選択する。選択モード２から選択モード３に変更されることで、解の探索範囲がさらに拡大され、適応度の増加が促進される可能性が高まる。
【０１６８】
このような処理により、算出される最大適応度が増加する可能性が高まり、適応度が高い値に収束されやすくなる。その結果、画像処理プログラムの生成処理に要する時間が短縮される可能性を高くすることができる。
【０１６９】
第４の実施の形態に係る画像処理装置１００ａのプログラム生成処理は、図１８のステップＳ２６ａの処理を図２１のように変形し、図１８のステップＳ４１の処理を図２２のように変形することで実現される。
【０１７０】
図２１は、第４の実施の形態における突然変異処理手順の例を示すフローチャートである。
［ステップＳ６１］学習制御部１２１ａは、モード記憶部１７０ａを参照して、現在設定されている選択モードを判定する。選択モード１に設定されている場合には、ステップＳ６２の処理が実行される。選択モード２に設定されている場合には、ステップＳ６３の処理が実行される。選択モード３に設定されている場合には、ステップＳ６４の処理が実行される。
【０１７１】
ステップＳ６２，Ｓ６３，Ｓ６４では、学習制御部１２１ａは、図１８のステップＳ２５の処理によって生成された子個体に突然変異を発生させ、子個体に含まれる画像フィルタを、ステップＳ２２で指定された他の画像フィルタのいずれかに置き換える。このとき、学習制御部１２１は、次のような手順で、置き換え後の画像フィルタを選択する。
【０１７２】
［ステップＳ６２］学習制御部１２１ａは、置き換え前の画像フィルタと同じグループを選択する。学習制御部１２１ａは、選択したグループに属する画像フィルタのうち、置き換え前の画像フィルタを除く画像フィルタの中から、フィルタセットデータベース１４１に設定された選択確率に基づく確率で画像フィルタを選択する。
【０１７３】
例えば、画像フィルタＦａ１を、グループＦａに属する他の画像フィルタに置き換える場合、次のような手順で選択時の確率が求められる。画像フィルタＦａ２，Ｆａ３，Ｆａ４に設定された選択確率をそれぞれＳａ２，Ｓａ３，Ｓａ４とする。この場合、学習制御部１２１ａは、画像フィルタＦａ２，Ｆａ３，Ｆａ４を、それぞれＳａ２／（Ｓａ２＋Ｓａ３＋Ｓａ４），Ｓａ３／（Ｓａ２＋Ｓａ３＋Ｓａ４），Ｓａ４／（Ｓａ２＋Ｓａ３＋Ｓａ４）の確率で選択する。
【０１７４】
［ステップＳ６３］学習制御部１２１ａは、全グループ内の画像フィルタの中から、フィルタセットデータベース１４１において画像フィルタに対応付けられた選択確率で、置き換え後の画像フィルタを選択する。
【０１７５】
［ステップＳ６４］学習制御部１２１ａは、全グループ内の画像フィルタの中から、置き換え後の画像フィルタをランダムに選択する。
図２２は、第４の実施の形態における選択モード設定処理手順の例を示すフローチャートである。なお、図２２のステップＳ５１，Ｓ５２の処理内容は、図１９のステップＳ５１，Ｓ５２の処理内容と同じであるので、それらの説明を省略する。
【０１７６】
［ステップＳ７１］モード設定部１２６ａは、算出された増加率と、所定の閾値Ｈ（ただし、Ｈ＞０）とを比較する。増加率が閾値Ｈを超えている場合にはステップＳ７２の処理が実行され、増加率が閾値Ｈ以下である場合にはステップＳ７３の処理が実行される。
【０１７７】
［ステップＳ７２］モード設定部１２６ａは、モード記憶部１７０ａに設定された選択モードを選択モード１に更新する。
［ステップＳ７３］モード設定部１２６ａは、算出された増加率と、所定の閾値Ｌ（ただし、Ｈ＞Ｌ＞０）とを比較する。増加率が閾値Ｌを超えている場合にはステップＳ７４の処理が実行され、増加率が閾値Ｌ以下である場合にはステップＳ７４の処理が実行される。
【０１７８】
［ステップＳ７４］モード設定部１２６ａは、モード記憶部１７０ａに設定された選択モードを選択モード２に更新する。
［ステップＳ７５］モード設定部１２６ａは、モード記憶部１７０ａに設定された選択モードを選択モード３に更新する。
【０１７９】
なお、以上の第４の実施の形態では、選択モード１〜３に切り替え可能としたが、例えば、選択モード１，３に切り替え可能としてもよい。例えば、図２２の処理を、増加率が閾値Ｈを超えた場合には選択モード１に設定し、増加率が閾値Ｈ以下の場合には選択モード３に設定するように変形してもよい。
【０１８０】
また、画像フィルタを次の図２３に示すようにグループ化してもよい。
図２３は、画像フィルタのグループ化の他の例を示す図である。図２３では、同じ種類の画像フィルタであって設定されたパラメータが異なる画像フィルタごとに、画像フィルタを４つのグループに分類した例を示している。
【０１８１】
Ｓｏｂｅｌフィルタグループには、設定されたパラメータが異なるＳｏｂｅｌフィルタが属する。パラメータとしては、例えば、垂直エッジを検出するか、または水平エッジを検出するかを示すパラメータや、カーネルサイズを示すパラメータがある。
【０１８２】
Ｌａｐｌａｃｉａｎフィルタグループには、設定されたパラメータが異なるＬａｐｌａｃｉａｎフィルタが属する。パラメータとしては、例えば、複数の係数の組み合わせを示す係数セットや、カーネルサイズを示すパラメータがある。
【０１８３】
平滑化フィルタグループには、設定されたパラメータが異なる平滑化フィルタが属する。パラメータとしては、例えば、平均値算出用として機能するか、またはガウシアンフィルタとして機能するかを示すパラメータや、カーネルサイズを示すパラメータがある。
【０１８４】
ノイズ除去フィルタグループには、設定されたパラメータが異なるノイズ除去フィルタが属する。パラメータとしては、例えば、Ｍｅｄｉａｎフィルタとして機能させるか、または孤立点除去フィルタとして機能させるかを指定するパラメータや、カーネルサイズを示すパラメータがある。
【０１８５】
図２３のように分類された画像フィルタを用いて、図２１，図２２で説明した処理が実行されることで、適応度が高い値に収束されやすくなり、その結果、画像処理プログラムの生成処理に要する時間が短縮される可能性を高くすることができる。
【０１８６】
なお、上記の各実施の形態に示した装置（プログラム生成装置１および画像処理装置１００，１００ａ）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１８７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１８８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１８９】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１９０】
１  プログラム生成装置
１ａ  生成処理部
１ｂ  情報記録部
１ｃ  確率設定部
１ｄ  記憶部
２ａ  増減情報
２ｂ  設定情報
３＿１，３＿２，３＿ｎ，３＿（ｎ＋１）  進化処理
４＿１，４＿（ｎ＋１）  親個体
５＿１，５＿（ｎ＋１）  子個体
【図１】
2015189935.tif 000003
【図２】
2015189935.tif 000004
【図３】
2015189935.tif 000005
【図４】
2015189935.tif 000006
【図５】
2015189935.tif 000007
【図６】
2015189935.tif 000008
【図７】
2015189935.tif 000009
【図８】
2015189935.tif 000010
【図９】
2015189935.tif 000011
【図１０】
2015189935.tif 000012
【図１１】
2015189935.tif 000013
【図１２】
2015189935.tif 000014
【図１３】
2015189935.tif 000015
【図１４】
2015189935.tif 000016
【図１５】
2015189935.tif 000017
【図１６】
2015189935.tif 000018
【図１７】
2015189935.tif 000019
【図１８】
2015189935.tif 000020
【図１９】
2015189935.tif 000021
【図２０】
2015189935.tif 000022
【図２１】
2015189935.tif 000023
【図２２】
2015189935.tif 000024
【図２３】
2015189935.tif 000025
【手続補正書】
【提出日】平成28年11月14日(2016.11.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
【非特許文献１】青木紳也、長尾智晴、「木構造画像変換の自動構築法ＡＣＴＩＴ」、情報メディア学会誌Ｖｏｌ．５３，Ｎｏ．６、１９９９年６月２０日、ｐ．８８８−８９４
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９６
【補正方法】変更
【補正の内容】
【００９６】
例えば、画像フィルタＦ２，Ｆ５の増加数はそれぞれ“１”，“３”であり、画像フィルタＦ１，Ｆ４の減少数はそれぞれ“１”，“２”である。そこで、適応度変化登録部１２４は、“Ｆ１−＞Ｆ２”，“Ｆ４−＞Ｆ２”の各レコードに対応するフィルタ増加数が、画像フィルタＦ２の増加数“１”を基準にして、画像フィルタＦ１，Ｆ４の減少数の比に一致するように、各レコードに対応するフィルタ増加数を計算する。これにより、図１２（Ｃ）の左側の表に示すように、“Ｆ１−＞Ｆ２”，“Ｆ４−＞Ｆ２”の各レコードに対応するフィルタ増加数は、“１”，“０．５”と算出される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９７
【補正方法】変更
【補正の内容】
【００９７】
同様に、適応度変化登録部１２４は、“Ｆ１−＞Ｆ５”，“Ｆ４−＞Ｆ５”の各レコードに対応するフィルタ増加数が、画像フィルタＦ５の増加数“３”を基準にして、画像フィルタＦ１，Ｆ４の減少数の比に一致するように、各レコードに対応するフィルタ増加数を計算する。これにより、図１２（Ｃ）の左側の表に示すように、“Ｆ１−＞Ｆ５”，“Ｆ４−＞Ｆ５”の各レコードに対応するフィルタ増加数は、“３”，“１．５”と算出される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１１１
【補正方法】変更
【補正の内容】
【０１１１】
さらに、図１３（Ｃ）に示す第３の例は、適応度変化テーブル１５１における“Ｆ３−＞Ｆ４”に対応するレコードに登録された適応度変化の累積ヒストグラムの例を示す。図１３（Ｃ）の例では、登録された適応度変化の分布が分散しており、累積ヒストグラムのピーク値が閾値Ｔｈ１に達していない。この場合、画像フィルタＦ４は、適応度を増加させることに対して大きく貢献してはいないと推定される。そこで、選択確率設定部１２５は、例えば、画像フィルタＦ４に対応する有効度を、所定の最低値（例えば“−１”）とし、この画像フィルタＦ４の選択確率が低い値になるようにする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１５２
【補正方法】変更
【補正の内容】
【０１５２】
［ステップＳ５２］モード設定部１２６ａは、抽出した最大適応度の増加率を計算する。増加率は、例えば、現世代の処理での最大適応度から、以前の世代の処理での最大適応度を減算し、その減算結果を世代数の差（すなわち、その世代から現世代までのステップＳ２７の繰り返し数）で除算することで算出される。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像処理プログラムに含まれる部分プログラムの組み合わせを遺伝的プログラミングによって決定することで前記画像処理プログラムを生成するプログラム生成装置において、
部分プログラムが複数組み合わされた個体を進化させる進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部に記録する情報記録部と、
所定期間に前記記憶部に蓄積された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定する確率設定部と、
を有し、
前記確率設定部によって部分プログラムごとに前記選択確率が設定された後、前記進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された前記選択確率にしたがって選択することを特徴とするプログラム生成装置。
【請求項２】
前記情報記録部は、前記進化処理が実行されるたびに、進化後の個体において進化前より数が増加した部分プログラムのそれぞれに対して、進化後の個体に基づく適応度から進化前の個体に基づく適応度を減算した値に基づく適応度増加量を対応付けて前記記憶部に記録し、
前記確率設定部は、前記所定期間に前記記憶部に蓄積された、部分プログラムごとの前記適応度増加量に基づいて、部分プログラムごとに前記選択確率を設定する、
ことを特徴とする請求項１記載のプログラム生成装置。
【請求項３】
前記確率設定部は、前記所定期間に前記記憶部に蓄積された、部分プログラムごとの前記適応度増加量に基づいて、部分プログラムごとの前記貢献度を判定し、判定された前記貢献度が所定値以下の部分プログラムを、その後の前記進化処理での選択対象から除外することを特徴とする請求項２記載のプログラム生成装置。
【請求項４】
前記情報記録部は、進化後の個体に基づく適応度から進化前の個体に基づく適応度を減算した値を、対応する部分プログラムの進化後の個体における増加数で規格化することで、前記適応度増加量を算出することを特徴とする請求項２または３記載のプログラム生成装置。
【請求項５】
前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、設定された前記選択確率にしたがって選択させるか、またはランダムに選択させるかを決定する選択制御部をさらに有することを特徴とする請求項１〜４のいずれか１項に記載のプログラム生成装置。
【請求項６】
前記画像処理プログラムに組み込まれる複数の部分プログラムは、処理内容の類似性に基づいて複数のグループに分類され、
前記プログラム生成装置は、さらに、前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、進化前の個体における置き換え対象の部分プログラムと同じグループに属する他の部分プログラムの中から設定された前記選択確率にしたがって選択させるか、または、前記複数の部分プログラムのすべての中から選択させるかを決定する選択制御部を有する、
ことを特徴とする請求項１〜４のいずれか１項に記載のプログラム生成装置。
【請求項７】
前記画像処理プログラムに組み込まれる複数の部分プログラムは、処理の種類が同じで、かつ、設定されるパラメータが異なる部分プログラムが同じグループに属するように分類され、
前記プログラム生成装置は、さらに、前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、進化前の個体における置き換え対象の部分プログラムと同じグループに属する他の部分プログラムの中から設定された前記選択確率にしたがって選択させるか、または、前記複数の部分プログラムのすべての中から選択させるかを決定する選択制御部を有する、
ことを特徴とする請求項１〜４のいずれか１項に記載のプログラム生成装置。
【請求項８】
画像処理プログラムに含まれる部分プログラムの組み合わせを遺伝的プログラミングによって決定することで前記画像処理プログラムを生成するプログラム生成方法において、
コンピュータが、
部分プログラムが複数組み合わされた個体を進化させる進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部に記録し、
所定期間に前記記憶部に蓄積された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定し、
部分プログラムごとに前記選択確率が設定された後、前記進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された前記選択確率にしたがって選択する、
ことを特徴とするプログラム生成方法。
【請求項９】
画像処理プログラムに含まれる部分プログラムの組み合わせを遺伝的プログラミングによって決定することで前記画像処理プログラムを生成するプログラムにおいて、
コンピュータに、
部分プログラムが複数組み合わされた個体を進化させる進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部に記録し、
所定期間に前記記憶部に蓄積された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定し、
部分プログラムごとに前記選択確率が設定された後、前記進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された前記選択確率にしたがって選択する、
処理を実行させることを特徴とするプログラム。
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2015189935.tif 000026
【国際調査報告】
2015189935.tif 000027
2015189935.tif 000028
2015189935.tif 000029