(57)【要約】  画像処理プログラムの生成時間を短縮する。  設定部（１１）は、学習データ（３０）内の少なくとも入力画像（３１）から得られる特徴量と、複数の部分プログラムのうちのパラメータ可変プログラムに対して選択的に設定可能な複数のパラメータとの関係に基づいて、複数のパラメータのそれぞれに対応する選択確率を設定する。選択処理部（１２）は、個体（４１）を突然変異によって進化させる際に、突然変異対象の位置に新たに組み込む部分プログラムとしてパラメータ可変プログラムを選択した場合、複数のパラメータの中から各パラメータに対応する選択確率にしたがってパラメータを１つ選択し、このパラメータを設定したパラメータ可変プログラムを個体（４１）に組み込む。
2015194006.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）を用いた表示装置や液晶表示装置などがある。
【００６２】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００６３】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００６４】
ネットワークインタフェース１０７は、ネットワーク１０７ａを介して他の装置との間でデータの送受信を行う。
通信インタフェース１０８は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース１０８には、外部デバイスとしてカメラ１０８ａが接続されており、通信インタフェース１０８は、カメラ１０８ａから送信された画像データをプロセッサに送信する。
【００６５】
以上のようなハードウェア構成によって、画像処理装置１００の処理機能を実現することができる。
図６は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置１００は、画像取得部１１１、プログラム生成部１１２、画像処理部１１３、プログラム記憶部１３０、フィルタセット記憶部１４０および学習データ記憶部１５０を有する。
【００６６】
画像取得部１１１およびプログラム生成部１１２の処理は、例えば、画像処理装置１００のプロセッサ１０１が所定のプログラムを実行することで実現される。プログラム記憶部１３０、フィルタセット記憶部１４０および学習データ記憶部１５０は、例えば、画像処理装置１００のＨＤＤ１０３の記憶領域として実現される。
【００６７】
画像取得部１１１は、撮像された画像のデータをカメラ１０８ａから取得し、プログラム生成部１１２または画像処理部１１３に出力する。
プログラム生成部１１２は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部１３０に保存する。
【００６８】
画像処理部１１３の処理は、プログラム記憶部１３０に保存された画像処理プログラムを、画像処理装置１００のプロセッサ１０１が実行することで実現される。画像処理部１１３は、カメラ１０８ａによって撮像された画像のデータを画像取得部１１１を介して取得し、取得した画像のデータに対して画像処理を施す。処理後の画像は、例えば表示装置１０４ａに表示される。
【００６９】
フィルタセット記憶部１４０は、学習処理部１２２によって選択可能な画像フィルタのプログラムを、複数記憶する。フィルタセット記憶部１４０に記憶された画像フィルタの少なくとも一部は、プログラム生成処理の過程で選択される際にパラメータを設定可能なパラメータ可変フィルタである。また、フィルタセット記憶部１４０は、パラメータ可変フィルタについて、各パラメータに対して設定された選択確率を記憶する。
【００７０】
さらに、フィルタセット記憶部１４０には、パラメータ可変フィルタの一部について、その特性を示す情報が記憶される。この情報は、対応するパラメータ可変フィルタの各パラメータに対する選択確率を算出する際に参照される。
【００７１】
学習データ記憶部１５０は、それぞれ入力画像および目標画像の各データを含む学習データを、１つ以上記憶する。学習データに含まれる入力画像は、例えば、画像処理装置１００に接続されたカメラ１０８ａによって撮像された画像であってもよい。
【００７２】
プログラム生成部１１２は、初期設定部１２１および学習処理部１２２を有する。なお、初期設定部１２１は、図１に示した設定部１１の一例である。また、学習処理部１２２は、図１に示した選択処理部１２の一例である。
【００７３】
初期設定部１２１は、プログラム生成処理の実行のための初期設定処理を行う。例えば、初期設定部１２１は、パラメータ可変フィルタのそれぞれについて、パラメータごとに選択確率を算出し、算出した選択確率をパラメータに対応付けてフィルタセット記憶部１４０に設定する。また、初期設定部１２１は、フィルタセット記憶部１４０に記憶された一部の画像フィルタについて、学習データに基づいて、設定すべきパラメータを決定する。
【００７４】
学習処理部１２２は、初期設定部１２１によって初期設定された画像フィルタと、学習データ記憶部１５０に記憶された学習データとを用いて、遺伝的プログラミングによって画像処理プログラムを生成する。このプログラム生成処理過程において、学習処理部１２２は、初期個体のノードにパラメータ可変フィルタを選択した際には、設定可能な各パラメータに対応付けられた選択確率にしたがって、設定するパラメータを選択する。また、学習処理部１２２は、突然変異における置き換え先の画像フィルタとして、パラメータ可変フィルタを選択した際には、設定可能な各パラメータに対応付けられた選択確率にしたがって、設定するパラメータを選択する。
【００７５】
次に、フィルタセット記憶部１４０に格納される情報の例について説明する。フィルタセット記憶部１４０には、フィルタセットデータベースとフィルタ特性データベースとが格納される。
【００７６】
図７は、フィルタセットデータベースに登録される情報の例を示す図である。
フィルタセットデータベース１４１には、画像処理プログラムに組み込むことが可能な画像フィルタごとに、レコードが登録されている。各レコードには、対応する画像フィルタを識別するためのフィルタＩＤが登録されている。図７の例では、「フィルタ＃１」はフィルタＩＤ“１”の画像フィルタを示す。レコードのそれぞれは、１つの画像フィルタプログラムのプログラムコードに対応付けられている。なお、対応するプログラムコードは、例えば、フィルタセット記憶部１４０に格納されている。
【００７７】
フィルタセットデータベース１４１の各レコードには、属性情報が登録される。属性情報は、該当する画像フィルタが、“パラメータ可変フィルタ”、“パラメータ未定フィルタ”、“通常フィルタ”のいずれであるかを示す情報である。パラメータ未定フィルタとは、初期状態では必要なパラメータが設定されていない画像フィルタを指す。パラメータ未定フィルタに対しては、プログラム生成処理が実行されるたびに、その処理内の初期設定工程において、初期設定部１２１によって学習データに基づいてパラメータが設定される。本実施の形態では、パラメータ未定フィルタとして、マスク処理フィルタが登録される。通常フィルタとは、パラメータ可変フィルタおよびパラメータ未定フィルタ以外の画像フィルタを指す。
【００７８】
さらに、フィルタセットデータベース１４１のレコードのうち、パラメータ可変フィルタに対応するレコードには、複数のパラメータ情報と、各パラメータ情報に対応する選択確率とが登録される。パラメータ情報には、対応するパラメータ可変フィルタに設定可能なパラメータの値が登録される。例えば、パラメータ可変フィルタに対して２種類のパラメータを設定可能である場合、パラメータ情報には、２種類のパラメータの数値の組み合わせが登録される。パラメータ情報は、該当レコードに対してあらかじめ登録される。
【００７９】
なお、プログラム生成処理の過程において、個体に組み込む画像フィルタとしてパラメータ可変フィルタが選択された場合、さらに、そのパラメータ可変フィルタに設定するパラメータが選択される。このため、フィルタセットデータベース１４１において、パラメータ可変フィルタに対応付けて登録されたパラメータ情報が多いほど、実質的に多くの数の画像フィルタを個体に組み込むことができるようになり、実現される画像処理手順の数が多くなる。その結果、目的とする処理に近い高品質な画像処理を実現できる可能性が高くなる。
【００８０】
上記のように後からパラメータを設定可能なパラメータ可変フィルタを用いた場合、設定可能なパラメータのバリエーションの数に関係なく、フィルタセット記憶部１４０にあらかじめ記憶しておくべきパラメータ可変フィルタのプログラムコードは１セットだけで済む。したがって、高品質な画像処理を実現できる可能性を高めつつ、フィルタセット記憶部１４０の記憶容量を低減できる。
【００８１】
選択確率は、初期個体のノードまたは突然変異の対象ノードに対して対応するパラメータ可変フィルタが選択された際に、選択されたパラメータ可変フィルタに対して該当パラメータが選択される確率を示す。選択確率は、プログラム生成処理が実行されるたびに、その初期設定工程において初期設定部１２１によって設定される。
【００８２】
ここで、パラメータ可変フィルタとしては、例えば、ローパスフィルタ、ハイパスフィルタ、バンドパスフィルタ、微分フィルタ、閾値処理フィルタなどがある。ローパスフィルタ（平滑化フィルタ）の例としては、ガウシアン（Gaussian）フィルタがある。微分フィルタの例としては、ソーベル（Sobel）フィルタ、ラプラス（Laplace）フィルタ、プレウィット（Prewitt）フィルタがある。
【００８３】
各パラメータ可変フィルタに設定可能なパラメータとしては、次のようなパラメータがある。ローパスフィルタ、ハイパスフィルタ、バンドパスフィルタに対しては、パラメータとしてフィルタ径（カーネルサイズ）を設定可能である。ソーベルフィルタ、プレウィットフィルタに対しては、パラメータとして、ｘ方向およびｙ方向の各微分次数と、フィルタ径、またはこれらのうちの一方を設定可能である。ラプラスフィルタに対しては、パラメータとしてフィルタ径を設定可能である。閾値処理フィルタに対しては、パラメータとして閾値を設定可能である。
【００８４】
図８は、フィルタ特性データベースに格納される情報の例を示す図である。フィルタ特性データベース１４２には、パラメータ可変フィルタの中の一部のフィルタについて、パラメータ情報ごとの特性情報が登録される。図８には、フィルタＩＤ“１”のパラメータ可変フィルタ（フィルタ＃１）に設定可能なパラメータ情報“ｘ１，ｙ１”，“ｘ１，ｙ２”，“ｘ２，ｙ１”，“ｘ２，ｙ２”のそれぞれに対して、特性情報が登録された例を示している。
【００８５】
本実施の形態では、例として、フィルタ特性データベース１４２には、ローパスフィルタ、ハイパスフィルタ、バンドパスフィルタなどの、特定の空間周波数帯の信号成分を増減させる画像フィルタについての特性情報が登録される。この場合、特性情報としては、各画像フィルタの周波数特性（空間周波数に対する透過率特性）を示す情報が登録される。この場合の特性情報の例については後述する。
【００８６】
次に、プログラム生成処理手順の詳細について説明する。まず、図９は、プログラム生成処理全体の手順の例を示すフローチャートである。
［ステップＳ２１］初期設定部１２１は、学習データの設定のための入力操作を受け付ける。例えば、学習データ記憶部１５０に記憶された学習データの中から、本処理で使用される学習データが指定される。
【００８７】
［ステップＳ２２］初期設定部１２１は、フィルタセットの設定のための入力操作を受け付ける。例えば、フィルタセットデータベース１４１に登録された画像フィルタの中から、本処理で使用される画像フィルタが指定される。
【００８８】
［ステップＳ２３］初期設定部１２１は、ステップＳ２２で指定された画像フィルタのうち、パラメータ可変フィルタについて、パラメータごとに選択確率を算出し、算出した選択確率をフィルタセットデータベース１４１に設定する。この処理の詳細については、図１１〜図１７において説明する。
【００８９】
［ステップＳ２４］初期設定部１２１は、ステップＳ２２で指定された画像フィルタのうち、パラメータ未定フィルタに設定するパラメータを、学習データに基づいて決定する。初期設定部１２１は、決定したパラメータを対応するパラメータ未定フィルタのプログラムコードに設定することで、このプログラムコードを実行可能な状態にする。なお、このステップＳ２４の処理の詳細については、図１８〜図２０において説明する。
【００９０】
［ステップＳ２５］学習処理部１２２は、所定数の初期個体を含む個体群（初期個体群）を生成する。各初期個体は、各初期個体に設定された各ノードに対して、ステップＳ２２で指定された画像フィルタをランダムに選択して組み合わせることで生成される。また、学習処理部１２２は、パラメータ可変フィルタを選択した場合、選択したパラメータ可変フィルタに対して設定するパラメータを選択する。その際、学習処理部１２２は、フィルタセットデータベース１４１においてパラメータごとに設定された選択確率にしたがって、パラメータを選択する。このステップＳ２５の処理の詳細については、図１０において説明する。
【００９１】
なお、ステップＳ２５において生成される個体群は、図２に示した個体群６１に相当するので、これ以後、“個体群６１”と表記する。
［ステップＳ２６］学習処理部１２２は、個体群６１に含まれる個体の中から、２つの親個体をランダムに選択する。
【００９２】
［ステップＳ２７］学習処理部１２２は、選択された２つの親個体の間で交叉を行うことで、２つ以上の所定数の子個体を生成する。
［ステップＳ２８］学習処理部１２２は、生成された子個体のいずれかのノードに突然変異を発生させ、元の子個体のノードに組み込まれていた画像フィルタを、ステップＳ２２で指定された他の画像フィルタのいずれかに置き換える。
【００９３】
また、学習処理部１２２は、置き換え後の画像フィルタとしてパラメータ可変フィルタを選択した場合には、選択したパラメータ可変フィルタに対して設定するパラメータを選択する。その際、学習処理部１２２は、フィルタセットデータベース１４１においてパラメータごとに設定された選択確率にしたがって、パラメータを選択する。
【００９４】
このステップＳ２８での置き換え後の画像フィルタの選択処理の詳細については、図１０において説明する。
［ステップＳ２９］ステップＳ２６で選択された各親個体、および、ステップＳ２７，Ｓ２８の処理によって得られた各子個体について、適応度が算出される。この処理では、算出対象の各個体について次のような処理が行われる。
【００９５】
学習処理部１２２は、ステップＳ２１で指定された学習データを１つ選択し、選択した学習データに含まれる入力画像に対して、算出対象の個体の処理を適用する。学習処理部１２２は、個体の処理によって得られた画像と、選択した学習データに含まれる目標画像との間の一致度を計算することで、適応度を算出する。学習処理部１２２は、以上の処理を、ステップＳ２１で指定された学習データのすべてについて実行する。学習処理部１２２は、算出されたすべての適応度の平均値を算出し、この平均値を、算出対象の個体の適応度として出力する。
【００９６】
［ステップＳ３０］学習処理部１２２は、ステップＳ２９で算出された各個体の適応度のうちの最大値が、所定の閾値より大きいかを判定する。適応度の最大値が閾値より大きい場合、ステップＳ３２の処理が実行される。一方、適応度の最大値が閾値以下である場合、ステップＳ３１の処理が実行される。
【００９７】
［ステップＳ３１］学習処理部１２２は、ステップＳ２６で選択された各親個体、および、ステップＳ２７，Ｓ２８の処理によって得られた各子個体のうち、適応度が最大の個体を、生存させる個体として選択する。さらに、学習処理部１２２は、残りの個体の中から、生存させる個体をさらに１つ選択する。この選択処理では、例えば、算出された適応度に応じた確率で個体が選択される。
【００９８】
学習処理部１２２は、個体群６２の個体のうち、ステップＳ２６で選択された２つの個体を、生存させる個体として選択された２つの個体に入れ替える。これによって、個体群６２の世代が更新される。
【００９９】
［ステップＳ３２］学習処理部１２２は、ステップＳ２９で適応度が算出された個体のうち、適応度が最大の個体を選択する。学習処理部１２２は、選択した個体が示す画像処理プログラムをプログラム記憶部１３０に格納し、プログラム生成処理を終了する。
【０１００】
次に、ステップＳ２５において、個体のノードに組み込む画像フィルタを選択する処理、および、ステップＳ２８において、突然変異の対象ノードに対して新たに組み込む画像フィルタを選択する処理について、その詳細を説明する。これらの選択処理では、学習処理部１２２は、次の図１０に示す処理を実行する。
【０１０１】
図１０は、画像フィルタの選択処理手順の例を示すフローチャートである。
［ステップＳ４１］学習処理部１２２は、ステップＳ２２で指定された画像フィルタの中から、画像フィルタをランダムに（すなわち、同じ確率で）選択する。
【０１０２】
なお、このステップＳ４１では、指定された画像フィルタのうちのパラメータ可変フィルタに設定可能なパラメータの数を考慮して、画像フィルタごとの選択確率が設定されてもよい。例えば、指定された画像フィルタのうち、パラメータ可変フィルタの数がｎ、パラメータ未定フィルタおよび通常フィルタの総数がｍであり、各パラメータ可変フィルタに対してｐ通りのパラメータの組み合わせを設定可能である（すなわち、フィルタセットデータベース１４１において、各パラメータ可変フィルタにｐ個のパラメータ情報が登録されている）とする。この場合、例えば、ステップＳ２２でのパラメータ可変フィルタの選択確率は、ｐ／（ｎ・ｐ＋ｍ）と算出され、パラメータ未定フィルタおよび通常フィルタの各選択確率は、１／（ｎ・ｐ＋ｍ）と算出される。
【０１０３】
［ステップＳ４２］学習処理部１２２は、ステップＳ４１でパラメータ可変フィルタを選択したかを判定する。この判定は、フィルタセットデータベース１４１における、選択した画像フィルタに対応するレコードに登録された属性情報に基づいて行われる。パラメータ可変フィルタが選択された場合、ステップＳ４３の処理が実行される。一方、パラメータ可変フィルタ以外の画像フィルタが選択された場合、ステップＳ４４の処理が実行される。
【０１０４】
［ステップＳ４３］学習処理部１２２は、フィルタセットデータベース１４１内の選択した画像フィルタに対応するレコードに、パラメータごとに設定された選択確率にしたがって、パラメータを選択する。
【０１０５】
［ステップＳ４４］学習処理部１２２は、ステップＳ４１で選択した画像フィルタを、該当ノードに組み込む。また、選択された画像フィルタがパラメータ可変フィルタである場合、学習処理部１２２は、ステップＳ４３で選択したパラメータを、ノードに組み込む画像フィルタに設定する。
【０１０６】
次に、図９のステップＳ２３において、パラメータ可変フィルタのパラメータごとに選択確率を設定する処理の詳細について説明する。ここでは、パラメータ可変フィルタの例として、ガウシアンフィルタ、閾値処理フィルタ、ソーベルフィルタについて説明する。
【０１０７】
まず、図１１〜図１４を用いて、ガウシアンフィルタのパラメータに対する選択確率の設定処理について説明する。ガウシアンフィルタについては、フィルタ特性データベース１４２にパラメータごとの特性情報が登録され、選択確率の設定処理時に特性情報が参照される。
【０１０８】
図１１は、ガウシアンフィルタに関する特性情報の例を示す図である。フィルタ特性データベース１４２には、ガウシアンフィルタに関する特性情報として、対応するパラメータが設定されたガウシアンフィルタの、空間周波数に対する透過率を示す情報があらかじめ登録される。ここでは例として、透過率とは、輝度値の透過率を示すものとする。また、ガウシアンフィルタに対しては、パラメータとしてフィルタ径（カーネルサイズ）が設定可能であるものとする。
【０１０９】
ここで、空間周波数をν、パラメータ（フィルタ径）をσ、画像フィルタに固有の係数をαとすると、ガウシアンフィルタの透過率Ｌ（ν，σ）は次の式（１）によって表される。
Ｌ（ν，σ）＝ｅｘｐ｛−（αν2／σ2）｝      ・・・（１）
図１１では例として、ガウシアンフィルタに対して、パラメータσとして“３”，“５”，“７”，“９”をそれぞれ設定した場合の透過率を示す。
【０１１０】
図１２は、入力画像と目標画像に基づく透過率の算出方法の例を示す図である。また、図１３は、透過率の比較に基づく選択確率の算出方法の例を示す図である。
初期設定部１２１は、まず、図９のステップＳ２１で指定された学習データに基づいて、入力画像から、対応する目標画像に対する透過率（周波数透過特性）を求める。ここでは例として、入力画像と目標画像のペアが１組指定されたものとする。
【０１１１】
透過率の計算のために、初期設定部１２１は、入力画像および対応する目標画像のそれぞれに対してフーリエ変換を行い、各画像のデータを周波数領域のデータに変換する。入力画像ｆの輝度値をフーリエ変換して得られた変換データＦ（ν）は、例えば、図１２左上に示すグラフ２０１のように求められる。また、目標画像ｇの輝度値をフーリエ変換して得られた変換データＧ（ν）は、例えば、図１２左下に示すグラフ２０２のように求められる。透過率Ｈ（ν）は、次の式（２）を用いて求められる。
Ｈ（ν）＝Ｇ（ν）／Ｆ（ν）      ・・・（２）
図１２右側に示すグラフ２０３は、グラフ２０１，２０２に示した変換データＦ（ν），Ｇ（ν）を基に式（２）を用いて求められた透過率Ｈ（ν）の例を示す。
【０１１２】
次に、初期設定部１２１は、入力画像ｆおよび目標画像ｇに基づいて求められた透過率Ｈ（ν）と、フィルタ特性データベース１４２に特性情報として登録された、パラメータごとの透過率Ｌ（ν，σ）のそれぞれとの相関を求める。透過率Ｈ（ν）と、パラメータσに対応する透過率（ν，σ）との相関を示す相関係数Ｒ（σ）は、例えば、次の式（３）を用いて求められる。
【０１１３】
【数１】
2015194006.tif 000003
【０１１４】
ここで、各パラメータのうち、対応する透過率Ｌ（ν，σ）と求められた透過率Ｈ（ν）との相関が高いパラメータほど、そのパラメータがガウシアンフィルタに設定された場合に目的とする処理に近い処理が行われる可能性が高く、有効性が高いと推定される。そこで、初期設定部１２１は、透過率Ｈ（ν）との相関が高いパラメータほど選択確率が高くなるように、各パラメータに対して選択確率を設定する。
【０１１５】
ある画像フィルタについてのパラメータσの選択確率は、例えば、各パラメータσの相関係数Ｒ（σ）を正規化する次の式（４）を用いて求められる。
【０１１６】
【数２】
2015194006.tif 000004
【０１１７】
図１３上側に示すグラフ２１１は、図１１に示したパラメータごとの透過率Ｌ（ν，σ）と、図１２のグラフ２０３に示した透過率Ｈ（ν）とを重ねて示したものである。この例では、パラメータσの値が“７”，“９”，“５”，“３”の順に、求められた透過率Ｈ（ν）との相関が高くなっている。この場合、選択確率Ｐ（σ）は、例えば、図１３下側に示すグラフ２１２のように設定される。
【０１１８】
なお、以上の図１２，図１３の例は、入力画像と目標画像のペアを１組だけ用いた場合の処理である。入力画像と目標画像のペアを複数組用いる場合には、次の図１４に示すように、初期設定部１２１は、ペアごとに相関係数を算出した後、パラメータごとに相関係数の平均値を求め、求めた平均値に基づいて選択確率を決定する。
【０１１９】
図１４は、ガウシアンフィルタのパラメータに対する選択確率の設定処理例を示すフローチャートである。
［ステップＳ１０１］初期設定部１２１は、図９のステップＳ２１で指定された学習データの中から、学習データ（すなわち、入力画像と目標画像のペア）を１つ選択する。
【０１２０】
［ステップＳ１０２］初期設定部１２１は、選択した学習データに含まれる入力画像と目標画像とを、それぞれフーリエ変換する。
［ステップＳ１０３］初期設定部１２１は、フーリエ変換によって得られた各データを基に、上記の式（２）を用いて透過率Ｈ（ν）を算出する。
【０１２１】
［ステップＳ１０４］初期設定部１２１は、算出された透過率Ｈ（ν）と、ガウシアンフィルタに設定可能な各パラメータσに対して特性情報として対応付けられた透過率（ν，σ）のそれぞれとの相関係数Ｒ（σ）を、上記の式（３）を用いて算出する。透過率（ν，σ）は、フィルタ特性データベース１４２におけるガウシアンフィルタに対応する各レコードから取得される。
【０１２２】
［ステップＳ１０５］初期設定部１２１は、図９のステップＳ２１で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップＳ１０１の処理が再度実行される。すべての学習データを選択済みの場合、ステップＳ１０６の処理が実行される。
【０１２３】
［ステップＳ１０６］初期設定部１２１は、ステップＳ１０１〜Ｓ１０５の処理で、同じパラメータについて異なる学習データを基に算出された相関係数Ｒ（σ）の平均値Ｒａｖｅ（σ）を算出する。これにより、平均値Ｒａｖｅ（σ）がパラメータσごとに算出される。
【０１２４】
［ステップＳ１０７］初期設定部１２１は、パラメータσごとの相関係数の平均値Ｒａｖｅ（σ）を正規化することで、パラメータσごとの選択確率を算出する。選択確率は、式（４）に対して、各パラメータσの相関係数Ｒ（σ）の代わりにパラメータσごとの相関係数の平均値Ｒａｖｅ（σ）を代入することで算出される。初期設定部１２１は、算出された選択確率を、フィルタセットデータベース１４１におけるガウシアンフィルタに対応するレコードに対して、該当するパラメータに対応付けて設定する。
【０１２５】
以上の図１１〜図１４の処理により、ガウシアンフィルタに対して各パラメータを設定して実現される画像処理のそれぞれが、入力画像を対応する目標画像に変換する画像処理にどれだけ近いかを示す有効度が、相関係数またはその平均値として算出される。そして、各パラメータに対して、相関係数またはその平均値に応じた選択確率が設定される。これにより、学習処理部１２２の処理過程でノードに組み込む画像フィルタとしてガウシアンフィルタが選択された際に、目的とする処理に近い画像処理を実行するためのパラメータが、ガウシアンフィルタに設定されやすくなる。
【０１２６】
なお、ガウシアンフィルタ以外のローパスフィルタ、ハイパスフィルタ、バンドパスフィルタなど、特定の空間周波数帯の信号成分を増減させる処理を行うパラメータ可変フィルタについても、上記の図１１〜図１４と同様の処理によって、設定可能なパラメータごとに選択確率を設定可能である。
【０１２７】
次に、図１５，図１６を用いて、閾値処理フィルタのパラメータに対する選択確率の設定処理について説明する。
閾値処理フィルタは、画素値（ここでは輝度値）が閾値以上または閾値未満である画素について、その画素値に対して所定の変換処理を行う画像フィルタである。変換処理としては、例えば、画素値を最大値または最小値に変換する処理がある。以下の説明では、閾値処理フィルタに対して、パラメータとして閾値を設定可能であるものとする。閾値は、輝度値で表される。
【０１２８】
図１５は、輝度ヒストグラムと選択確率の設定例を示す図である。
初期設定部１２１は、例えば、まず、学習データに含まれる入力画像に基づいて、輝度値のヒストグラムを算出する。次に、初期設定部１２１は、ヒストグラムの谷の位置を判定する。谷の位置は、例えば、ヒストグラムの微分値に基づいて判定される。または、谷の位置は、２つのピークの位置の間における最小値の位置として判定されてもよい。
【０１２９】
初期設定部１２１は、判定された谷の位置を中心として正規分布状に選択確率を設定する。すなわち、パラメータの輝度値が、判定された谷の位置に近いほど、そのパラメータには高い選択確率が設定され、パラメータの輝度値が、判定された谷の位置から遠いほど、そのパラメータには低い選択確率が設定される。
【０１３０】
閾値は、例えば、入力画像内で何らかの特徴を有する領域が、それ以外の領域から抽出されるように設定される。そして、何らかの特徴を有する領域における画素値の分布領域と、それ以外の領域における画素値の分布領域とは、別の領域にある場合が多い。輝度ヒストグラムにおける谷の位置は、これらのそれぞれの分布領域の境界に近い場合が多い。このため、ある入力画像を閾値処理フィルタによって処理する場合に、その入力画像に基づく輝度ヒストグラムにおける谷の位置が、設定される閾値に近い場合が多いと推定される。
【０１３１】
図１５の例では、輝度ヒストグラム２２１に基づいて谷の位置Ｌ１が求められ、谷の位置Ｌ１を中心とした正規分布状に、選択確率を示す曲線２２２が設定されている。設定されるパラメータは、横軸の輝度値の離散値として表され、各パラメータに対応する選択確率が曲線２２２により求められる。
【０１３２】
なお、以上の図１５の例は、入力画像と目標画像のペアを１組だけ用いた場合の処理である。入力画像と目標画像のペアを複数組用いる場合には、次の図１６に示すように、初期設定部１２１は、ペアごとに輝度ヒストグラムを求め、各輝度ヒストグラムから検出した谷の位置の平均値を求める。そして、求めた平均値を中心として正規分布状に選択確率を設定する。
【０１３３】
図１６は、閾値処理フィルタのパラメータに対する選択確率の設定処理例を示すフローチャートである。
［ステップＳ１１１］初期設定部１２１は、図９のステップＳ２１で指定された学習データの中から、学習データ（すなわち、入力画像と目標画像のペア）を１つ選択する。
【０１３４】
［ステップＳ１１２］初期設定部１２１は、選択した学習データに含まれる入力画像の輝度値を基に、輝度ヒストグラムを算出する。
［ステップＳ１１３］初期設定部１２１は、輝度ヒストグラムの谷の位置を判定する。
【０１３５】
［ステップＳ１１４］初期設定部１２１は、図９のステップＳ２１で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップＳ１１１の処理が再度実行される。すべての学習データを選択済みの場合、ステップＳ１１５の処理が実行される。
【０１３６】
［ステップＳ１１５］初期設定部１２１は、入力画像ごとに判定された谷の位置の平均値を算出する。
［ステップＳ１１６］初期設定部１２１は、算出された平均値を中心とした正規分布状の曲線を生成し、生成した曲線を基に、閾値処理フィルタに設定可能な各パラメータに対応する選択確率を決定する。初期設定部１２１は、決定された選択確率を、フィルタセットデータベース１４１における閾値処理フィルタに対応するレコードに対して、該当するパラメータに対応付けて設定する。
【０１３７】
以上の図１５，図１６の処理により、閾値処理フィルタに対して各パラメータを設定して実現される画像処理のそれぞれが、入力画像を対応する目標画像に変換する画像処理にどれだけ近いかを示す有効度に応じて、各パラメータに対応する選択確率が設定される。これにより、学習処理部１２２の処理過程でノードに組み込む画像フィルタとして閾値処理フィルタが選択された際に、目的とする処理に近い画像処理を実行するためのパラメータが、閾値処理フィルタに設定されやすくなる。
【０１３８】
次に、図１７を用いて、ソーベルフィルタのパラメータに対する選択確率の設定処理について説明する。
初期設定部１２１は、例えば、学習データに含まれる入力画像に対して、各パラメータを設定したソーベルフィルタによる画像処理を施す。初期設定部１２１は、各画像処理による処理後の画像に基づいて、画像ごとに画素値（例えば、輝度値）の総和を算出する。ソーベルフィルタは、エッジの抽出を行う画像フィルタであるので、処理後の画像における画素値の総和が大きいほど、多くの領域からエッジが検出されたことになる。このため、処理後の画像における画素値の総和が大きいほど、設定されたパラメータは、対応する入力画像を処理するための有効度が高いと推定される。そこで、初期設定部１２１は、画素値の総和が大きいほど、対応するパラメータに設定する選択確率を大きくする。
【０１３９】
また、以上説明した処理例は、入力画像を１つだけ用いた場合の処理である。入力画像を複数用いる場合には、次の図１７に示すような処理が行われる。
図１７は、ソーベルフィルタのパラメータに対する選択確率の設定処理例を示すフローチャートである。
【０１４０】
［ステップＳ１２１］初期設定部１２１は、図９のステップＳ２１で指定された学習データの中から、学習データ（すなわち、入力画像と目標画像のペア）を１つ選択する。
［ステップＳ１２２］初期設定部１２１は、各パラメータを設定したソーベルフィルタを用いて、選択した学習データに含まれる入力画像に対して画像処理を施す。これにより、パラメータの数だけ処理後の画像が得られる。
【０１４１】
［ステップＳ１２３］初期設定部１２１は、得られた画像のそれぞれについて、輝度値の総和を算出する。これにより、パラメータごとに輝度値の総和が算出される。
［ステップＳ１２４］初期設定部１２１は、図９のステップＳ２１で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップＳ１２１の処理が再度実行される。すべての学習データを選択済みの場合、ステップＳ１２５の処理が実行される。
【０１４２】
［ステップＳ１２５］この時点で、それぞれのパラメータについて、学習データの数だけの輝度値の総和が算出されている。初期設定部１２１は、輝度値の総和の中から、対応するパラメータごとに総和の最大値を抽出する。初期設定部１２１は、抽出した各最大値が同じ値になるように、パラメータごとに算出された輝度値の総和を正規化する。
【０１４３】
パラメータが設定されたソーベルフィルタによる処理後の画像における輝度値の総和の最大値は、入力画像によって異なる。上記の正規化処理により、入力画像ごとに異なる、処理後の画像における輝度値の総和の最大値の差が、誤差として現れにくくなる。
【０１４４】
［ステップＳ１２６］初期設定部１２１は、パラメータごとに、正規化後の総和の平均値を算出する。
［ステップＳ１２７］初期設定部１２１は、パラメータごとに算出された平均値に基づいて、各パラメータに対応する選択確率を算出する。初期設定部１２１は、決定された選択確率を、フィルタセットデータベース１４１におけるソーベルフィルタに対応するレコードに対して、該当するパラメータに対応付けて設定する。
【０１４５】
例えば、あるパラメータに対応する選択確率は、そのパラメータについて算出された平均値を、全パラメータについて算出された平均値の合計によって除算することで計算される。これにより、平均値が高いパラメータほど、高い選択確率が設定される。
【０１４６】
以上の図１７の処理により、ソーベルフィルタに対して各パラメータを設定して実現される画像処理のそれぞれが、入力画像からエッジを抽出するのにどれだけ有効かを示す有効度に応じて、各パラメータに対応する選択確率が設定される。これにより、学習処理部１２２の処理過程でノードに組み込む画像フィルタとしてソーベルフィルタが選択された際に、目的とする処理に近い画像処理を実行するためのパラメータが、ソーベルフィルタに設定されやすくなる。
【０１４７】
なお、例えば、ラプラスフィルタ、プレウィットフィルタなど、ソーベルフィルタ以外の微分フィルタについても、上記の図１７と同様の処理によって、設定可能なパラメータごとに選択確率を設定可能である。
【０１４８】
以上の図１１〜図１７において説明した手順により、パラメータ可変フィルタの各パラメータに対して、学習データを用いた画像処理に対する有効性に応じた選択確率が設定される。
【０１４９】
図１０に示したように、学習処理部１２２は、個体のノードに組み込む画像フィルタとしてパラメータ可変フィルタを選択した場合に、上記手順によって設定された選択確率にしたがって、パラメータ可変フィルタに設定するパラメータを選択する。これにより、目的とする処理に近い処理を実行するためのパラメータが、パラメータ可変フィルタに設定されやすくなる。その結果、プログラム生成処理の過程で算出される適応度が高い値に収束しやすくなり、プログラム生成に要する時間が短縮される可能性が高くなる。
【０１５０】
また、パラメータ可変フィルタに設定可能なパラメータ数を多くした場合でも、プログラム生成に要する時間が増大する可能性を低減できる。したがって、目的とする処理に近い高品質な画像処理を実現する画像処理プログラムを、短時間で生成できるようになる。さらに、多くのパラメータの中から適切なパラメータが選択されやすくなるため、生成される画像処理プログラムにおいて、適切とは言えないパラメータが設定されたパラメータ可変フィルタが多段に接続される可能性が低くなる。したがって、個体に生成されるノード数が増大することも防止され、この点も、プログラム生成処理時間の短縮に寄与する。
【０１５１】
次に、パラメータ未定フィルタに対して設定すべきパラメータを決定する処理について説明する。以下の説明では、パラメータ未定フィルタとして、マスク処理フィルタを例示する。設定されるパラメータは、マスク領域を示す座標情報である。
【０１５２】
図１８は、入力画像の特定領域を抽出する処理の例を示す図である。学習データとして、図１８に示す入力画像２５１と目標画像２５２のペアが与えられたとする。入力画像２５１には、同種の特徴を有する２カ所の特徴領域２５１ａ，２５１ｂが存在する。一方、目標画像２５２においては、特徴領域２５１ａに対応する領域２５２ａのみが抽出され、特徴領域２５１ｂに対応する領域は抽出されていない。なお、目標画像２５２は２値画像であり、抽出される領域の画素値が“１”、それ以外の領域（マスクされる領域）の画素値が“０”となっている。
【０１５３】
このような場合に、遺伝的プログラミングを用いたプログラム生成処理では、入力画像２５１から、同種の特徴を有する特徴領域２５１ａ，２５２ａの両方を抽出する画像処理プログラムを生成することは、比較的容易である。この場合、処理後の画像２５３には、特徴領域２５１ａに対応する領域２５３ａと、特徴領域２５１ｂに対応する領域２５３ｂとが抽出される。しかし、特徴領域２５１ａ，２５２ａのうちの一方のみを抽出する画像処理プログラムを生成することは、これらの領域の位置情報が与えられない限り、非常に困難である。
【０１５４】
これに対して、本実施の形態では、パラメータを自由に設定可能なマスク処理フィルタのプログラムコードが、フィルタセットデータベース１４１にあらかじめ用意される。そして、初期設定部１２１は、学習データに含まれる目標画像を解析し、その解析結果に基づいて、マスク処理フィルタに設定すべきパラメータを決定する。
【０１５５】
図１９は、目標画像に基づいてマスクパターンを決定する処理例を示す図である。
図１９の目標画像２６１ａ，２６１ｂ，２６１ｃ，・・・のように、目標画像が複数存在する場合、初期設定部１２１は、まず、目標画像２６１ａ，２６１ｂ，２６１ｃ，・・・の論理和をとった合成画像２６２を生成する。次に、初期設定部１２１は、合成画像２６２における抽出領域（画素値“１”の領域）に対して距離変換を行い、距離変換画像２６３を算出する。距離変換とは、該当画素からその周囲の“０”でない画素までの距離を、該当画素の値とする変換である。なお、目標画像が１つのみの場合、初期設定部１２１は、その目標画像に対して直接距離変換を行う。
【０１５６】
次に、初期設定部１２１は、得られた距離変換画像２６３に対して閾値処理を行うことで、マスクパターン２６４を生成する。すなわち、距離変換画像２６３の各画素について、画素値（距離）が所定の閾値より大きい場合に画素値を“１”に変換し、画素値が閾値以下の場合に画素値を“０”に変換する。生成されたマスクパターン２６４における値“０”の領域（マスク領域）の座標が、マスク処理フィルタに設定されるパラメータとなる。なお、上記の閾値処理によれば、入力画像間での抽出対象領域の位置ズレに対して所定のマージンを取った状態で、マスク領域が設定されるようになる。
【０１５７】
図２０は、マスク処理フィルタのパラメータの設定処理例を示すフローチャートである。この図２０の処理は、図９のステップＳ２４において実行される。なお、図９のステップＳ２１において、学習データが複数指定されたものとする。
【０１５８】
［ステップＳ１３１］初期設定部１２１は、ステップＳ２１で指定された各学習データに含まれる目標画像の論理和をとり、合成画像を生成する。
［ステップＳ１３２］初期設定部１２１は、生成された合成画像に対して距離変換を行い、距離変換画像を生成する。
【０１５９】
なお、ステップＳ２１で学習データが１つのみ指定された場合、初期設定部１２１は、その学習データに対して距離変換を行う。
［ステップＳ１３３］初期設定部１２１は、生成された距離変換画像に対して閾値処理を行い、マスクパターンを生成する。
【０１６０】
［ステップＳ１３４］初期設定部１２１は、生成されたマスクパターンにおけるマスク領域の座標を、マスク処理フィルタのパラメータとして設定する。具体的には、初期設定部１２１は、フィルタセットデータベース１４１におけるマスク処理フィルタに対応するレコードに、パラメータ情報としてマスク領域の座標を設定する。
【０１６１】
以上の図１９，図２０で説明した処理により、初期設定部１２１は、同種の特徴を有する特徴領域が複数存在する入力画像から、それらの特徴領域の数より少ない領域を抽出するためのマスク処理フィルタのパラメータを、正確に設定することが可能となる。
【０１６２】
〔実施の形態２−１〕
上記の実施の形態１−１に係るプログラム生成装置１０では、パラメータを後から設定可能な部分プログラム（パラメータ可変プログラム）が用いられる。そして、プログラム生成装置１０は、個体に組み込む部分プログラムとしてパラメータ可変プログラムを選択した際に、設定可能な各パラメータに対応付けられた選択確率にしたがってパラメータを１つ選択し、選択したパラメータをパラメータ可変プログラムに設定する。
【０１６３】
これに対して、実施の形態２−１に係るプログラム生成装置では、個体に組み込むために選択可能な複数の部分プログラムが分類され、グループ化される。そしてプログラム生成装置は、個体に組み込む部分プログラムを選択する際、まず、グループを選択した後、選択したグループに含まれる部分プログラムの中から、部分プログラムを１つ選択する。ここで、グループ内に複数の部分プログラムが含まれる場合、プログラム生成装置は、各部分プログラムに選択確率を対応付ける。そして、グループに含まれる部分プログラムの中から１つを選択する際に、選択確率にしたがって選択を行う。
【０１６４】
図２１は、実施の形態２−１に係るプログラム生成装置の構成例および処理例を示す図である。図２１に示すプログラム生成装置１０ａは、遺伝的プログラミングによって画像処理プログラムを生成する。なお、図２１では、図１と同じ構成要素には同じ符号を付して示し、それらの説明を省略する。
【０１６５】
前述のように、個体に組み込むことが可能な複数の部分プログラムは、あらかじめ複数のグループに分類される。各グループには、１つ以上の部分プログラムが含まれる。図２１の例では、個体に組み込むことが可能な複数の部分プログラムは、グループ＃１〜＃３に分類されている。そして、グループ＃１には、部分プログラム＃１〜＃３が含まれる。
【０１６６】
ここで、同一のグループに含められる部分プログラムとしては、例えば、同種類の部分プログラムがある。例えば、設定されたパラメータのみが異なる同種類の部分プログラムが、同一のグループに含められる。また、対応する選択確率の計算方法が互いに同じである部分プログラムを、同一のグループに含めることもできる。
【０１６７】
プログラム生成装置１０ａは、設定部１１ａおよび選択処理部１２ａを有する。設定部１１ａおよび選択処理部１２ａの処理は、例えば、プログラム生成装置１０ａが備える図示しないプロセッサが所定のプログラムを実行することで実現される。
【０１６８】
設定部１１ａは、部分プログラムが複数含まれるグループについて、そのグループに含まれる各部分プログラムに対応する選択確率を設定する。設定部１１ａは、各部分プログラムに対応する選択確率を、学習データ３０に含まれる情報のうち少なくとも入力画像３１から得られる特徴量と、各部分プログラムとの関係に基づいて設定する。図２１では例として、設定部１１ａがグループ＃１に含まれる各部分プログラムに対応する選択確率を設定する場合を示している（ステップＳ１ａ）。なお、特徴量は、入力画像３１と、これに対応する目標画像３２とから算出されてもよい。
【０１６９】
設定部１１ａによる設定処理により、各部分プログラムに対して、その部分プログラムによって実現される処理の有効性が高いほど、高い選択確率が設定される。有効性が高いとは、その部分プログラムによって実現される処理内容が、目的とする処理内容に近く、学習に対する寄与度が高いことを示す。すなわち、有効性が高い部分プログラムが学習過程で個体に組み込まれることで、個体から算出される適応度が高くなる可能性が高まり、その結果、適応度が高い値に収束しやすくなって、学習が促進される。
【０１７０】
選択処理部１２ａは、遺伝的プログラミングによる学習処理中において、個体のノードに組み込む部分プログラムを選択する際に、まず、グループを例えばランダムに選択する。そして、選択したグループに複数の部分プログラムが含まれる場合、選択処理部１２ａは、それらの部分プログラムの中から、各部分プログラムに対応付けられた選択確率にしたがって部分プログラムを１つ選択し、選択した部分プログラムを該当ノードに組み込む。
【０１７１】
グループに含まれる部分プログラムの中から、選択確率にしたがって１つの部分プログラムを選択することにより、学習データ３０を用いた画像処理に対する有効性が高いと推定される部分プログラムほど、個体に組み込まれる可能性が高くなる。これにより、適応度の高い個体が生成されやすくなって、学習が促進され、その結果、画像処理プログラムの生成に要する時間が短縮される可能性が高まる。
【０１７２】
以下、例として、図２１に示す個体４１に含まれる部分プログラムＰ１〜Ｐ４のうち、部分プログラムＰ２に対して突然変異を発生させて（ステップＳ２ａ）個体４１を進化させるケースについて説明する。
【０１７３】
選択処理部１２ａは、グループ＃１〜＃３の中から、例えばランダムに１つのグループを選択する。ここで、グループ＃１が選択されたものとすると（ステップＳ３ａ）、選択処理部１２ａは、グループ＃１に含まれる部分プログラム＃１〜＃３の中から、対応する選択確率にしたがって部分プログラムを１つ選択する（ステップＳ４ａ）。選択処理部１２ａは、選択した部分プログラムを、部分プログラムＰ２の代わりに個体４１に組み込む。
【０１７４】
このような選択処理部１２ａの処理により、学習データ３０を用いた画像処理に対する有効性が高いと推定される部分プログラムほど、個体に組み込まれやすくなる。これにより、学習が促進され、画像処理プログラムの生成に要する時間が短縮される可能性が高まる。
【０１７５】
また、個体に組み込むために選択可能な部分プログラムの数が多いほど、目的とする処理に近い高品質な画像処理プログラムが生成される可能性が高まる反面、プログラム生成処理に要する時間が長くなる可能性も高まる。上記の選択処理部１２ａの処理により、選択可能な部分プログラムの数を多くした場合でも、その中から有効な部分プログラムが選択されて個体に組み込まれる可能性が高くなる。このため、プログラム処理時間が増大する可能性が抑制される。したがって、高品質な画像処理プログラムを短時間で生成できる可能性が高められる。
【０１７６】
なお、個体のノードに部分プログラムを組み込む他のケースとしては、初期個体を生成する際に、初期個体の各ノードに、複数の部分プログラムの中から選択した部分プログラムを組み込むケースがある。このケースでも、選択処理部１２ａは、上記のステップＳ３ａ〜Ｓ４ａと同様の手順で、各ノードに組み込む部分プログラムを選択することができる。このケースでも、上記の突然変異の場合と同様に、学習が促進され、画像処理プログラムの生成に要する時間が短縮される可能性が高まる。
【０１７７】
〔実施の形態２−２〕
次に、実施の形態２−２に係る画像処理装置について説明する。実施の形態２−２に係る画像処理装置は、図２１に示したプログラム生成装置１０ａと同様の処理機能と、この処理機能によって生成された画像処理プログラムを実行して画像処理を行う機能とを備える。
【０１７８】
実施の形態２−２に係る画像処理装置は、例えば、図５に示したハードウェア構成のコンピュータとして実現できる。また、これ以後、実施の形態２−２に係る画像処理装置の構成については、図６に示した処理機能のブロック名および符号を用いて説明するものとする。実施の形態２−２に係る画像処理装置１００は、プログラム生成部１１２による処理内容の一部と、フィルタセット記憶部１４０に格納される情報の内容とが、実施の形態１−２の場合とは異なる。なお、以下の説明において、プログラム生成部１１２内の初期設定部１２１は、図２１に示した設定部１１ａの一例であり、学習処理部１２２は、図２１に示した選択処理部１２ａの一例である。
【０１７９】
図２２は、実施の形態２−２においてフィルタセットデータベースに登録される情報の例を示す図である。図２２に示すフィルタセットデータベース１４１ａは、図７に示したフィルタセットデータベース１４１の代わりにフィルタセット記憶部１４０に格納される。
【０１８０】
フィルタセットデータベース１４１ａには、画像処理プログラムに組み込むことが可能な複数の画像フィルタを分類して得られたフィルタグループごとに、レコードが登録されている。各レコードには、対応するフィルタグループを識別するためのグループＩＤが登録されている。図２２の例では、「フィルタグループ＃１」はグループＩＤ“１”のフィルタグループを示す。
【０１８１】
各レコードには、対応するフィルタグループに含まれる画像フィルタを示す識別情報が登録されている。図２２の例では、「フィルタ＃１」はフィルタＩＤ“１”の画像フィルタを示す。各レコードには、画像フィルタの識別情報が１つ以上登録される。すなわち、各フィルタグループには、少なくとも１つの画像フィルタが含まれる。
【０１８２】
各レコードに登録された画像フィルタの識別情報は、それぞれ個別の画像フィルタのプログラムコードに対応付けられている。なお、対応するプログラムコードは、例えば、フィルタセット記憶部１４０に格納されている。
【０１８３】
さらに、画像フィルタを複数含むフィルタグループに対応するレコードにおいては、画像フィルタを示す識別情報のそれぞれに対して、選択確率が登録される。選択確率は、初期個体のノードまたは突然変異の対象ノードに対して組み込む画像フィルタを選択する際に、該当フィルタグループが選択された場合に、該当フィルタグループから該当画像フィルタが選択される確率を示す。選択確率は、プログラム生成処理が実行されるたびに、その初期設定工程において初期設定部１２１によって設定される。
【０１８４】
図２３は、画像フィルタのグループ分けの例を示す図である。図２３に示す分類表３００１においては、フィルタグループとして“周波数処理グループ”、“閾値処理グループ”、“微分処理グループ”が例示されている。
【０１８５】
１つのフィルタグループには、例えば、同じ種類の画像処理を行うものの、設定されたパラメータが異なる画像フィルタを含めることができる。図２３の閾値処理グループはこのようなフィルタグループの例であり、閾値処理グループには、それぞれ設定されたパラメータが異なる複数の閾値処理フィルタが含められる。なお、閾値処理フィルタのパラメータとは、例えば、閾値である。
【０１８６】
また、周波数処理グループおよび微分処理グループのそれぞれには、処理内容が類似する複数種類の画像フィルタが含まれている。例えば、周波数処理グループには、ローパスフィルタ、ハイパスフィルタが含まれている。これらの画像フィルタは、特定の空間周波数帯の信号成分を増減させる点で共通している。また、周波数処理グループには、設定されたパラメータがそれぞれ異なる複数のローパスフィルタおよび複数のハイパスフィルタが含まれていてもよい。なお、設定が異なるパラメータとしては、例えば、フィルタ径（カーネルサイズ）などが挙げられる。
【０１８７】
また、微分処理グループには、例えば、ソーベルフィルタ、ラプラスフィルタ、プレウィットフィルタが含まれている。これらの画像フィルタは、微分処理を行う点で共通している。また、微分処理グループには、設定されたパラメータがそれぞれ異なる複数のソーベルフィルタ、複数のラプラスフィルタ、複数のプレウィットフィルタが含まれていてもよい。なお、ソーベルフィルタ、プレウィットフィルタについての設定が異なるパラメータとしては、ｘ方向およびｙ方向の各微分次数と、フィルタ径、またはこれらのうちの一方が挙げられる。ラプラスフィルタについての設定が異なるパラメータとしては、フィルタ径が挙げられる。
【０１８８】
以上の周波数処理グループおよび微分処理グループのいずれについても、同じフィルタグループに含まれる各画像フィルタに対応する選択確率は、同じ計算方法で計算されるようになっている。これにより、学習データを用いた画像処理に対する有効性に応じた選択確率を、各画像フィルタに対して正確に設定することができる。なお、フィルタグループごとの選択確率の計算方法については、後の図２７〜図２９において説明する。
【０１８９】
なお、学習データを基に計算されるまでパラメータが設定されないパラメータ未定フィルタについては、このパラメータ未定フィルタのみが含まれるフィルタグループに分類される。実施の形態２−２において、パラメータ未定フィルタ（例えば、マスク処理フィルタ）に対して設定すべきパラメータを決定する処理の手順は、実施の形態１−２と同様であるので、その説明を省略する。
【０１９０】
図２４は、実施の形態２−２においてフィルタ特性データベースに格納される情報の例を示す図である。図２４に示すフィルタ特性データベース１４２ａは、図８に示したフィルタ特性データベース１４２の代わりにフィルタセット記憶部１４０に格納される。
【０１９１】
一部のフィルタグループに含まれる各画像フィルタの選択確率を計算する際には、画像フィルタごとの特性情報が使用される。フィルタ特性データベース１４２ａには、このような特性情報が登録される。フィルタ特性データベース１４２ａには、画像フィルタごとのレコードが登録される。より具体的には、フィルタ特性データベース１４２ａには、画像フィルタの種別と、その画像フィルタに設定されたパラメータとの組み合わせごとに、レコードが登録される。そして、各レコードには、該当する画像フィルタの特性情報が登録される。特性情報としては、例えば周波数処理グループに含まれる画像フィルタの場合、各画像フィルタの周波数特性（空間周波数に対する透過率特性）を示す情報が登録される。
【０１９２】
次に、実施の形態２−２でのプログラム生成処理について、フローチャートを用いて説明する。
図２５は、プログラム生成処理全体の手順の例を示すフローチャートである。図２５では、図９と同じ処理内容のステップには同じステップ番号を付して示し、それらの処理内容の説明を省略する。
【０１９３】
図２５に示す処理は、図９におけるステップＳ２２，Ｓ２３，Ｓ２５，Ｓ２８の代わりに、それぞれステップＳ２２ａ，Ｓ２３ａ，Ｓ２５ａ，Ｓ２８ａを含む。
［ステップＳ２２ａ］初期設定部１２１は、フィルタセットの設定のための入力操作を受け付ける。例えば、フィルタセットデータベース１４１に登録されたフィルタグループの中から、本処理で使用されるフィルタグループが指定される。
【０１９４】
［ステップＳ２３ａ］初期設定部１２１は、ステップＳ２２ａで指定されたフィルタグループのうち、画像フィルタが複数含まれるフィルタグループについて、画像フィルタごとに選択確率を算出し、算出した選択確率をフィルタセットデータベース１４１ａに設定する。この処理の詳細については、図２７〜図２９において説明する。
【０１９５】
［ステップＳ２５ａ］学習処理部１２２は、所定数の初期個体を含む個体群６１（初期個体群）を生成する。学習処理部１２２は、初期個体の各ノードに組み込む画像フィルタを選択する際、まず、ステップＳ２２ａで指定されたフィルタグループをランダムに選択する。ここで、選択されたフィルタグループに複数の画像フィルタが含まれる場合、学習処理部１２２は、各画像フィルタに対応付けられた選択確率にしたがって画像フィルタを１つ選択する。このステップＳ２５ａの処理の詳細については、図２６において説明する。
【０１９６】
［ステップＳ２８ａ］学習処理部１２２は、生成された子個体のいずれかのノードに突然変異を発生させ、元の子個体のノードに組み込まれていた画像フィルタを、ステップＳ２２ａで指定されたいずれかのフィルタグループ内の他のいずれかの画像フィルタに置き換える。
【０１９７】
置き換え後の画像フィルタの選択処理は、次のように行われる。学習処理部１２２は、ステップＳ２２ａで指定されたフィルタグループをランダムに選択する。ここで、選択されたフィルタグループに複数の画像フィルタが含まれる場合、学習処理部１２２は、各画像フィルタに対応付けられた選択確率にしたがって画像フィルタを１つ選択する。このステップＳ２８ａでの置き換え後の画像フィルタの選択処理の詳細については、図２５において説明する。
【０１９８】
次に、ステップＳ２５ａにおいて、個体のノードに組み込む画像フィルタを選択する処理、および、ステップＳ２８ａにおいて、突然変異の対象ノードに対して新たに組み込む画像フィルタを選択する処理について、その詳細を説明する。これらの選択処理では、学習処理部１２２は、次の図２６に示す処理を実行する。
【０１９９】
図２６は、画像フィルタの選択処理手順の例を示すフローチャートである。
［ステップＳ５１］学習処理部１２２は、ステップＳ２２ａで指定されたフィルタグループの中から、フィルタグループをランダムに（すなわち、同じ確率で）選択する。
【０２００】
なお、このステップＳ５１では、指定されたフィルタグループのそれぞれに含まれる画像フィルタの数を考慮して、フィルタグループごとの選択確率が設定されてもよい。例えば、フィルタグループ＃１〜＃３が指定され、フィルタグループ＃１，＃２，＃３にそれぞれ含まれる画像フィルタの数がｎ１，ｎ２，ｎ３であるとする。この場合、例えば、フィルタグループ＃１の選択確率はｎ１／（ｎ１＋ｎ２＋ｎ３）と算出され、フィルタグループ＃２の選択確率はｎ２／（ｎ１＋ｎ２＋ｎ３）と算出され、フィルタグループ＃３の選択確率はｎ３／（ｎ１＋ｎ２＋ｎ３）と算出される。
【０２０１】
［ステップＳ５２］学習処理部１２２は、ステップＳ５１で選択したグループに画像フィルタが複数含まれるかを判定する。選択したグループに画像フィルタが複数含まれる場合、ステップＳ５３の処理が実行される。一方、選択したグループに画像フィルタが１つのみ含まれる場合、ステップＳ５４の処理が実行される。後者の場合、選択する画像フィルタが、グループに含まれる画像フィルタに確定される。
【０２０２】
［ステップＳ５３］学習処理部１２２は、フィルタセットデータベース１４１ａ内の選択したフィルタグループに対応するレコードに、画像フィルタごとに設定された選択確率にしたがって、画像フィルタを選択する。
【０２０３】
［ステップＳ５４］学習処理部１２２は、選択した画像フィルタを、該当ノードに組み込む。
次に、図２３に例示した周波数処理グループ、閾値処理グループおよび微分処理グループのそれぞれについて、画像フィルタごとに選択確率を設定する処理について説明する。
【０２０４】
図２７は、周波数処理グループに含まれる各画像フィルタに対する選択確率の設定処理例を示すフローチャートである。
［ステップＳ２０１］初期設定部１２１は、図２５のステップＳ２１で指定された学習データの中から、学習データ（すなわち、入力画像と目標画像のペア）を１つ選択する。
【０２０５】
［ステップＳ２０２］初期設定部１２１は、選択した学習データに含まれる入力画像と目標画像とを、それぞれフーリエ変換する。
［ステップＳ２０３］初期設定部１２１は、フーリエ変換によって得られた各データを基に、前述の式（２）を用いて透過率Ｈ（ν）を算出する。
【０２０６】
［ステップＳ２０４］ここでは、変数“σ”が、周波数処理グループに含まれる画像フィルタそれぞれの通し番号を示すものとして説明する。初期設定部１２１は、算出された透過率Ｈ（ν）と、周波数処理グループに含まれる各画像フィルタに対して特性情報として対応付けられた透過率（ν，σ）のそれぞれとの相関係数Ｒ（σ）を、前述の式（３）を用いて算出する。透過率（ν，σ）は、フィルタ特性データベース１４２ａにおける周波数処理グループに対応する各レコードから取得される。
【０２０７】
［ステップＳ２０５］初期設定部１２１は、図２５のステップＳ２１で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップＳ２０１の処理が再度実行される。すべての学習データを選択済みの場合、ステップＳ２０６の処理が実行される。
【０２０８】
［ステップＳ２０６］初期設定部１２１は、ステップＳ２０１〜Ｓ２０５の処理で、同じ画像フィルタについて異なる学習データを基に算出された相関係数Ｒ（σ）の平均値Ｒａｖｅ（σ）を算出する。これにより、平均値Ｒａｖｅ（σ）が画像フィルタごとに算出される。
【０２０９】
［ステップＳ２０７］初期設定部１２１は、画像フィルタごとの相関係数の平均値Ｒａｖｅ（σ）を正規化することで、画像フィルタごとの選択確率を算出する。選択確率は、前述の式（４）に対して、各画像フィルタの相関係数Ｒ（σ）の代わりに画像フィルタごとの相関係数の平均値Ｒａｖｅ（σ）を代入することで算出される。初期設定部１２１は、算出された選択確率を、フィルタセットデータベース１４１ａにおける周波数処理グループに対応するレコードに対して、該当する画像フィルタに対応付けて設定する。
【０２１０】
以上の図２７の処理により、周波数処理グループに含まれる各画像フィルタによって実現される画像処理のそれぞれが、入力画像を対応する目標画像に変換する画像処理にどれだけ近いかを示す有効度が、相関係数またはその平均値として算出される。そして、各画像フィルタに対して、相関係数またはその平均値に応じた選択確率が設定される。これにより、学習処理部１２２の処理過程でノードに組み込む画像フィルタのフィルタグループとして周波数処理フィルタが選択された際に、目的とする処理に近い画像処理を実行するための画像処理が選択されてノードに組み込まれやすくなる。
【０２１１】
図２８は、閾値処理グループに含まれる各画像フィルタに対する選択確率の設定処理例を示すフローチャートである。
［ステップＳ２１１］初期設定部１２１は、図２５のステップＳ２１で指定された学習データの中から、学習データ（すなわち、入力画像と目標画像のペア）を１つ選択する。
【０２１２】
［ステップＳ２１２］初期設定部１２１は、選択した学習データに含まれる入力画像の輝度値を基に、輝度ヒストグラムを算出する。
［ステップＳ２１３］初期設定部１２１は、輝度ヒストグラムの谷の位置を判定する。
【０２１３】
［ステップＳ２１４］初期設定部１２１は、図２５のステップＳ２１で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップＳ２１１の処理が再度実行される。すべての学習データを選択済みの場合、ステップＳ２１５の処理が実行される。
【０２１４】
［ステップＳ２１５］初期設定部１２１は、入力画像ごとに判定された谷の位置の平均値を算出する。
［ステップＳ２１６］初期設定部１２１は、算出された平均値を中心とした正規分布状の曲線を生成する。初期設定部１２１は、生成した曲線と、閾値処理グループに含まれる各閾値処理フィルタに設定されたパラメータとを比較することで、各閾値処理フィルタに対応する選択確率を決定する。初期設定部１２１は、決定された選択確率を、フィルタセットデータベース１４１ａにおける閾値処理グループに対応するレコードに対して、該当する閾値処理フィルタに対応付けて設定する。
【０２１５】
以上の図２８の処理により、閾値処理グループに含まれる各閾値処理フィルタによって実現される画像処理のそれぞれが、入力画像を対応する目標画像に変換する画像処理にどれだけ近いかを示す有効度に応じて、各閾値処理パラメータに対応する選択確率が設定される。これにより、学習処理部１２２の処理過程でノードに組み込む画像フィルタのフィルタグループとして閾値処理グループが選択された際に、目的とする処理に近い画像処理を実行する閾値処理フィルタが選択されてノードに組み込まれやすくなる。
【０２１６】
図２９は、微分処理グループに含まれる各画像フィルタに対する選択確率の設定処理例を示すフローチャートである。
［ステップＳ２２１］初期設定部１２１は、図２５のステップＳ２１で指定された学習データの中から、学習データ（すなわち、入力画像と目標画像のペア）を１つ選択する。
【０２１７】
［ステップＳ２２２］初期設定部１２１は、微分処理グループに含まれる各画像フィルタを用いて、選択した学習データに含まれる入力画像に対して画像処理を施す。これにより、画像フィルタの数だけ処理後の画像が得られる。
【０２１８】
［ステップＳ２２３］初期設定部１２１は、得られた画像のそれぞれについて、輝度値の総和を算出する。これにより、画像フィルタごとに輝度値の総和が算出される。
［ステップＳ２２４］初期設定部１２１は、図２５のステップＳ２１で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップＳ２２１の処理が再度実行される。すべての学習データを選択済みの場合、ステップＳ２２５の処理が実行される。
【０２１９】
［ステップＳ２２５］この時点で、それぞれの画像フィルタについて、学習データの数だけの輝度値の総和が算出されている。初期設定部１２１は、輝度値の総和の中から、対応する画像フィルタごとに総和の最大値を抽出する。初期設定部１２１は、抽出した各最大値が同じ値になるように、画像フィルタごとに算出された輝度値の総和を正規化する。
【０２２０】
各画像フィルタによる処理後の画像における輝度値の総和の最大値は、入力画像によって異なる。上記の正規化処理により、入力画像ごとに異なる、処理後の画像における輝度値の総和の最大値の差が、誤差として現れにくくなる。
【０２２１】
［ステップＳ２２６］初期設定部１２１は、画像フィルタごとに、正規化後の総和の平均値を算出する。
［ステップＳ２２７］初期設定部１２１は、画像フィルタごとに算出された平均値に基づいて、各画像フィルタに対応する選択確率を算出する。初期設定部１２１は、決定された選択確率を、フィルタセットデータベース１４１ａにおける微分処理グループに対応するレコードに対して、該当する画像フィルタに対応付けて設定する。
【０２２２】
例えば、ある画像フィルタに対応する選択確率は、その画像フィルタについて算出された平均値を、微分処理グループ内の全画像フィルタについて算出された平均値の合計によって除算することで計算される。これにより、平均値が高い画像フィルタほど、高い選択確率が設定される。
【０２２３】
以上の図２９の処理により、微分処理グループに含まれる各画像フィルタによって実現される画像処理のそれぞれが、入力画像からエッジを抽出するのにどれだけ有効かを示す有効度に応じて、各画像フィルタに対応する選択確率が設定される。これにより、学習処理部１２２の処理過程でノードに組み込む画像フィルタのフィルタグループとして微分処理グループが選択された際に、目的とする処理に近い画像処理を実行する画像フィルタが選択されたノードに組み込まれやすくなる。
【０２２４】
以上の図２７〜図２９において説明した手順により、各フィルタグループ内の各画像フィルタに対して、学習データを用いた画像処理に対する有効性に応じた選択確率が設定される。
【０２２５】
図２６に示したように、学習処理部１２２は、個体のノードに組み込む画像フィルタのフィルタグループとして、画像フィルタが複数含まれるフィルタグループを選択した場合に、上記手順によって設定された選択確率にしたがって、フィルタグループ内の画像フィルタを選択する。これにより、目的とする処理に近い処理を実行する画像フィルタが選択されやすくなる。その結果、プログラム生成処理の過程で算出される適応度が高い値に収束しやすくなり、プログラム生成に要する時間が短縮される可能性が高くなる。
【０２２６】
また、各フィルタグループに含める画像フィルタ数を多くした場合でも、プログラム生成に要する時間が増大する可能性を低減できる。したがって、目的とする処理に近い高品質な画像処理を実現する画像処理プログラムを、短時間で生成できるようになる。さらに、多くの画像フィルタから適切な画像フィルタが選択されやすくなるため、生成される画像処理プログラムにおいて、適切とは言えない画像フィルタが多段に接続される可能性が低くなる。したがって、個体に生成されるノード数が増大することも防止され、この点も、プログラム生成処理時間の短縮に寄与する。
【０２２７】
なお、上記の各実施の形態に示した装置（プログラム生成装置１０，１０ａおよび画像処理装置１００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０２２８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２２９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２３０】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０２３１】
１０  プログラム生成装置
１１  設定部
１２  選択処理部
２１，２２，２３  部分プログラム
３０  学習データ
３１  入力画像
３２  目標画像
４１  個体
【図１】
2015194006.tif 000005
【図２】
2015194006.tif 000006
【図３】
2015194006.tif 000007
【図４】
2015194006.tif 000008
【図５】
2015194006.tif 000009
【図６】
2015194006.tif 000010
【図７】
2015194006.tif 000011
【図８】
2015194006.tif 000012
【図９】
2015194006.tif 000013
【図１０】
2015194006.tif 000014
【図１１】
2015194006.tif 000015
【図１２】
2015194006.tif 000016
【図１３】
2015194006.tif 000017
【図１４】
2015194006.tif 000018
【図１５】
2015194006.tif 000019
【図１６】
2015194006.tif 000020
【図１７】
2015194006.tif 000021
【図１８】
2015194006.tif 000022
【図１９】
2015194006.tif 000023
【図２０】
2015194006.tif 000024
【図２１】
2015194006.tif 000025
【図２２】
2015194006.tif 000026
【図２３】
2015194006.tif 000027
【図２４】
2015194006.tif 000028
【図２５】
2015194006.tif 000029
【図２６】
2015194006.tif 000030
【図２７】
2015194006.tif 000031
【図２８】
2015194006.tif 000032
【図２９】
2015194006.tif 000033
【手続補正書】
【提出日】平成28年12月2日(2016.12.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
【非特許文献１】青木紳也、長尾智晴、「木構造画像変換の自動構築法ＡＣＴＩＴ」、情報メディア学会誌Ｖｏｌ．５３，Ｎｏ．６、１９９９年６月２０日、ｐ．８８８−８９４
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】変更
【補正の内容】
【００２９】
また、パラメータ可変プログラムに設定可能なパラメータの数が多いほど、目的とする処理に近い高品質な画像処理プログラムが生成される可能性が高まる反面、プログラム生成処理に要する時間が長くなる可能性も高まる。上記の選択処理部１２の処理により、パラメータ可変プログラムに設定可能なパラメータの数を多くした場合でも、その中から有効なパラメータが実際に設定される可能性が高くなる。このため、プログラム生成処理時間が増大する可能性が抑制される。したがって、高品質な画像処理プログラムを短時間で生成できる可能性が高められる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
ネットワークインタフェース１０７は、ネットワーク１０７ａを介して他の装置との間でデータの送受信を行う。
通信インタフェース１０８は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース１０８には、外部デバイスとしてカメラ１０８ａが接続されており、通信インタフェース１０８は、カメラ１０８ａから送信された画像データをプロセッサ１０１に送信する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１１２
【補正方法】変更
【補正の内容】
【０１１２】
次に、初期設定部１２１は、入力画像ｆおよび目標画像ｇに基づいて求められた透過率Ｈ（ν）と、フィルタ特性データベース１４２に特性情報として登録された、パラメータごとの透過率Ｌ（ν，σ）のそれぞれとの相関を求める。透過率Ｈ（ν）と、パラメータσに対応する透過率Ｌ（ν，σ）との相関を示す相関係数Ｒ（σ）は、例えば、次の式（３）を用いて求められる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１２１
【補正方法】変更
【補正の内容】
【０１２１】
［ステップＳ１０４］初期設定部１２１は、算出された透過率Ｈ（ν）と、ガウシアンフィルタに設定可能な各パラメータσに対して特性情報として対応付けられた透過率Ｌ（ν，σ）のそれぞれとの相関係数Ｒ（σ）を、上記の式（３）を用いて算出する。透過率Ｌ（ν，σ）は、フィルタ特性データベース１４２におけるガウシアンフィルタに対応する各レコードから取得される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１７５
【補正方法】変更
【補正の内容】
【０１７５】
また、個体に組み込むために選択可能な部分プログラムの数が多いほど、目的とする処理に近い高品質な画像処理プログラムが生成される可能性が高まる反面、プログラム生成処理に要する時間が長くなる可能性も高まる。上記の選択処理部１２ａの処理により、選択可能な部分プログラムの数を多くした場合でも、その中から有効な部分プログラムが選択されて個体に組み込まれる可能性が高くなる。このため、プログラム生成処理時間が増大する可能性が抑制される。したがって、高品質な画像処理プログラムを短時間で生成できる可能性が高められる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１８４
【補正方法】変更
【補正の内容】
【０１８４】
図２３は、画像フィルタのグループ分けの例を示す図である。図２３に示す分類表３０１においては、フィルタグループとして“周波数処理グループ”、“閾値処理グループ”、“微分処理グループ”が例示されている。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０２０６
【補正方法】変更
【補正の内容】
【０２０６】
［ステップＳ２０４］ここでは、変数“σ”が、周波数処理グループに含まれる画像フィルタそれぞれの通し番号を示すものとして説明する。初期設定部１２１は、算出された透過率Ｈ（ν）と、周波数処理グループに含まれる各画像フィルタに対して特性情報として対応付けられた透過率Ｌ（ν，σ）のそれぞれとの相関係数Ｒ（σ）を、前述の式（３）を用いて算出する。透過率Ｌ（ν，σ）は、フィルタ特性データベース１４２ａにおける周波数処理グループに対応する各レコードから取得される。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０２１０
【補正方法】変更
【補正の内容】
【０２１０】
以上の図２７の処理により、周波数処理グループに含まれる各画像フィルタによって実現される画像処理のそれぞれが、入力画像を対応する目標画像に変換する画像処理にどれだけ近いかを示す有効度が、相関係数またはその平均値として算出される。そして、各画像フィルタに対して、相関係数またはその平均値に応じた選択確率が設定される。これにより、学習処理部１２２の処理過程でノードに組み込む画像フィルタのフィルタグループとして周波数処理グループが選択された際に、目的とする処理に近い画像処理を実行するための画像フィルタが選択されてノードに組み込まれやすくなる。
【手続補正１０】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラム生成装置において、
前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量と、前記複数の部分プログラムのうちのパラメータ可変プログラムに対して選択的に設定可能な複数のパラメータとの関係に基づいて、前記複数のパラメータのそれぞれに対応する選択確率を設定する設定部と、
前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記個体の突然変異対象の位置に新たに組み込む部分プログラムとして前記パラメータ可変プログラムを選択した場合、前記複数のパラメータの中から各パラメータに対応する前記選択確率にしたがってパラメータを１つ選択し、当該パラメータを設定した前記パラメータ可変プログラムを前記個体に組み込む選択処理部と、
を有することを特徴とするプログラム生成装置。
【請求項２】
前記選択処理部は、さらに、前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた初期個体を生成する際に、前記初期個体に組み込む部分プログラムとして前記パラメータ可変プログラムを選択した場合、前記複数のパラメータの中から各パラメータに対応する前記選択確率にしたがってパラメータを１つ選択し、当該パラメータを設定した前記パラメータ可変プログラムを前記初期個体に組み込むことを特徴とする請求項１記載のプログラム生成装置。
【請求項３】
前記設定部は、前記入力画像および前記目標画像をそれぞれ周波数領域のデータに変換した第１の変換データおよび第２の変換データを算出し、前記第１の変換データと前記第２の変換データとに基づく情報を前記特徴量として算出することを特徴とする請求項１または２記載のプログラム生成装置。
【請求項４】
前記複数のパラメータのそれぞれが設定された前記パラメータ可変プログラムそれぞれについての透過率特性を記憶する記憶部をさらに有し、
前記設定部は、前記第１の変換データと前記第２の変換データとに基づく透過率を前記特徴量として算出し、前記記憶部に記憶された前記透過率特性のそれぞれと算出された前記透過率との相関を算出し、算出された前記相関に基づいて前記複数のパラメータのそれぞれに対応する前記選択確率を設定する、
ことを特徴とする請求項３記載のプログラム生成装置。
【請求項５】
前記設定部は、前記特徴量として、前記入力画像の各画素のデータのヒストグラムを算出することを特徴とする請求項１または２記載のプログラム生成装置。
【請求項６】
前記設定部は、前記複数のパラメータのそれぞれが設定された前記パラメータ可変プログラムそれぞれを用いて、前記入力画像を処理して得られる複数の変換画像を生成し、前記複数の変換画像に基づく情報を前記特徴量として算出することを特徴とする請求項１または２記載のプログラム生成装置。
【請求項７】
前記設定部は、さらに、前記複数の部分プログラムのうち、前記パラメータ可変プログラムを除く一の部分プログラムに対して、前記目標画像に基づいてパラメータを設定することを特徴とする請求項１〜６のいずれか１項に記載のプログラム生成装置。
【請求項８】
複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラム生成装置において、
前記複数の部分プログラムを分類して生成された複数のグループのうち、部分プログラムが複数含まれるグループについて、当該グループに含まれる各部分プログラムと、前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量との関係に基づいて、当該グループに含まれる部分プログラムのそれぞれに対応する選択確率を設定する設定部と、
前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記複数のグループの中からグループを１つ選択し、当該グループに部分プログラムが複数含まれる場合、当該グループに含まれる部分プログラムの中から各部分プログラムに対応する前記選択確率にしたがって部分プログラムを１つ選択し、当該部分プログラムを前記個体の突然変異対象の位置に組み込む選択処理部と、
を有することを特徴とするプログラム生成装置。
【請求項９】
前記選択処理部は、さらに、前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた初期個体を生成する際に、前記複数のグループの中からグループを１つ選択し、当該グループに部分プログラムが複数含まれる場合、当該グループに含まれる部分プログラムの中から各部分プログラムに対応する前記選択確率にしたがって部分プログラムを１つ選択し、当該部分プログラムを前記初期個体の１つのノードに組み込むことを特徴とする請求項８記載のプログラム生成装置。
【請求項１０】
前記複数のグループのうち部分プログラムが複数含まれるグループには、設定されたパラメータが異なる同種類の部分プログラムが複数含まれることを特徴とする請求項８または９記載のプログラム生成装置。
【請求項１１】
前記複数のグループのうち部分プログラムが複数含まれるグループについて、当該グループに含まれる各部分プログラムに対応する前記選択確率は、互いに同じ計算方法によって算出されることを特徴とする請求項８〜１０のいずれか１項に記載のプログラム生成装置。
【請求項１２】
複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラム生成方法において、
コンピュータが、
前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量と、前記複数の部分プログラムのうちのパラメータ可変プログラムに対して選択的に設定可能な複数のパラメータとの関係に基づいて、前記複数のパラメータのそれぞれに対応する選択確率を設定し、
前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記個体の突然変異対象の位置に新たに組み込む部分プログラムとして前記パラメータ可変プログラムを選択した場合、前記複数のパラメータの中から各パラメータに対応する前記選択確率にしたがってパラメータを１つ選択し、当該パラメータを設定した前記パラメータ可変プログラムを前記個体に組み込む、
ことを特徴とするプログラム生成方法。
【請求項１３】
複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラム生成方法において、
コンピュータが、
前記複数の部分プログラムを分類して生成された複数のグループのうち、部分プログラムが複数含まれるグループについて、当該グループに含まれる各部分プログラムと、前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量との関係に基づいて、当該グループに含まれる部分プログラムのそれぞれに対応する選択確率を設定し、
前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記複数のグループの中からグループを１つ選択し、当該グループに部分プログラムが複数含まれる場合、当該グループに含まれる部分プログラムの中から各部分プログラムに対応する前記選択確率にしたがって部分プログラムを１つ選択し、当該部分プログラムを前記個体の突然変異対象の位置に組み込む、
ことを特徴とするプログラム生成方法。
【請求項１４】
複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラムにおいて、
コンピュータに、
前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量と、前記複数の部分プログラムのうちのパラメータ可変プログラムに対して選択的に設定可能な複数のパラメータとの関係に基づいて、前記複数のパラメータのそれぞれに対応する選択確率を設定し、
前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記個体の突然変異対象の位置に新たに組み込む部分プログラムとして前記パラメータ可変プログラムを選択した場合、前記複数のパラメータの中から各パラメータに対応する前記選択確率にしたがってパラメータを１つ選択し、当該パラメータを設定した前記パラメータ可変プログラムを前記個体に組み込む、
処理を実行させることを特徴とするプログラム。
【請求項１５】
複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラムにおいて、
コンピュータに、
前記複数の部分プログラムを分類して生成された複数のグループのうち、部分プログラムが複数含まれるグループについて、当該グループに含まれる各部分プログラムと、前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量との関係に基づいて、当該グループに含まれる部分プログラムのそれぞれに対応する選択確率を設定し、
前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記複数のグループの中からグループを１つ選択し、当該グループに部分プログラムが複数含まれる場合、当該グループに含まれる部分プログラムの中から各部分プログラムに対応する前記選択確率にしたがって部分プログラムを１つ選択し、当該部分プログラムを前記個体の突然変異対象の位置に組み込む、
処理を実行させることを特徴とするプログラム。
【国際調査報告】
2015194006.tif 000034
2015194006.tif 000035
2015194006.tif 000036