(57)【要約】【課題】遺伝的処理で使用される遺伝子の数を無駄に増大することなく、フィルタ部品のパラメータを遺伝的処理する。【解決手段】入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも１つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する生成部と、新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する調整部と、を備える遺伝的処理装置を提供する。【選択図】図１
2010257257.tif 000002
【特許請求の範囲】
【請求項１】
入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも１つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する生成部と、
前記新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する調整部と、
を備える遺伝的処理装置。
【請求項２】
前記生成部は、前記フィルタ群から遺伝的処理により前記新たなフィルタを生成して前記フィルタ群に加え、
前記フィルタ群に含まれるそれぞれのフィルタについて、学習用入力データから学習用目標データへの変換に対する適合度を算出する適合度算出部と、
それぞれの前記フィルタについての前記適合度に基づいて、前記フィルタ群に残す前記フィルタを選定する選定部と、
を備える請求項１に記載の遺伝的処理装置。
【請求項３】
前記生成部による前記新たなフィルタの生成、前記適合度算出部による適合度の算出、および前記選定部による次世代の前記フィルタ群に残す前記フィルタの選定を繰り返し処理させる繰り返し処理部を更に備える請求項２に記載の遺伝的処理装置。
【請求項４】
前記調整部は、前記少なくとも１つの新たなフィルタのうち、前記繰り返し処理部による繰り返し処理の結果得られた調整対象フィルタについて、前記フィルタ部品のパラメータを、遺伝的処理により調整する請求項３に記載の遺伝的処理装置。
【請求項５】
前記新たなフィルタが入出力間の接続により連結された同一の２以上のフィルタ部品を含む場合に、前記調整部は、当該２以上のフィルタ部品のうち一部のフィルタ部品のパラメータを固定として、他の一部のフィルタ部品のパラメータを調整する請求項２から４のいずれかに記載の遺伝的処理装置。
【請求項６】
前記新たなフィルタが入出力間の接続により連結された同一の２以上のフィルタ部品を含む場合に、前記調整部は、当該２以上のフィルタ部品のうち一のフィルタ部品以外のパラメータを固定として、前記一のフィルタ部品のパラメータを調整する請求項４に記載の遺伝的処理装置。
【請求項７】
前記選定部は、入出力間の接続により連結された同一の２以上のフィルタ部品を含む第１フィルタと、前記第１フィルタにおける当該２以上のフィルタ部品に対応する部分に前記第１フィルタと同一のフィルタ部品が異なる数連結されており、かつ他の部分は前記第１フィルタと同一構造の第２フィルタとが前記フィルタ群に含まれる場合に、前記第１フィルタおよび前記第２フィルタの一方を選定せずに削除する請求項２から６のいずれかに記載の遺伝的処理装置。
【請求項８】
入出力間の接続により連結された２以上のフィルタ部品を統合して、当該２以上のフィルタ部品による変換に相当する変換をする統合フィルタ部品に置き換える統合部を更に備え、
前記調整部は、前記統合部により統合された前記統合フィルタ部品のパラメータを調整する
請求項１から７のいずれかに記載の遺伝的処理装置。
【請求項９】
前記少なくとも１つのフィルタにおけるフィルタ部品を２以上のフィルタ部品に分割する分割部を更に備える請求項８に記載の遺伝的処理装置。
【請求項１０】
前記分割部は、前記少なくとも１つのフィルタにおける前記統合フィルタ部品を、２以上のフィルタ部品の組に分割する請求項９に記載の遺伝的処理装置。
【請求項１１】
前記分割部は、前記統合フィルタ部品を、合わせて前記統合フィルタ部品と同じ変換を行う前記２以上のフィルタ部品の組に分割する請求項１０に記載の遺伝的処理装置。
【請求項１２】
前記分割部は、前記少なくとも１つのフィルタにおける前記フィルタ部品を前記２以上のフィルタ部品に分割することにより、前記少なくとも１つのフィルタを２以上の部分フィルタに分割し、
前記生成部は、前記２以上の部分フィルタのうちの一部の部分フィルタを前記新たなフィルタの少なくとも一部とする請求項９から１１のいずれかに記載の遺伝的処理装置。
【請求項１３】
生成部によって、入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも１つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する段階と、
調整部によって、前記新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する段階と、
を備える遺伝的処理方法。
【請求項１４】
遺伝的処理装置として、コンピュータを機能させるためのプログラムであって、
前記コンピュータを、
入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも１つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する生成部と、
前記新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する調整部と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遺伝的処理装置、遺伝的処理方法およびプログラムに関する。
【背景技術】
【０００２】
遺伝的アルゴリズムまたは遺伝的プログラミングといった進化的計算を用いたフィルタ列の生成方法が知られている。この方法は、フィルタ列に対し、交叉、突然変異および選択等の操作を複数回繰返し、新たなフィルタ列を生成する。このような進化的計算を用いたフィルタ列の生成方法によれば、それぞれの事例に対して最適であり、解析的に得ることが困難な複雑な構造のフィルタ列を、より少ない労力で設計することができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】前薗正宜  他２名、「遺伝的アルゴリズムによる画像フィルタ設計の研究」、［ｏｎｌｉｎｅ］、コンピュータ利用教育協議会、［２００８年３月２０日検索］、インターネット＜URL：http://www.ciec.or.jp/event/2003/papers/pdf/E00086.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、フィルタを構成する各フィルタ部品がパラメータを有する場合に、このようなフィルタ部品のパラメータを進化的計算によって調節すると、該パラメータが異なるフィルタ部品を複数使用する必要があり、フィルタ部品を組み合わせて生成される遺伝子の数を無駄に増大する結果をもたらす。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の第１の態様においては、入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも１つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する生成部と、新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する調整部と、を備える遺伝的処理装置を提供する。
【０００６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００７】
【図１】図１は、本実施形態に係る遺伝的処理装置１００の構成を示す。
【図２】図２は、本実施形態に係るフィルタ部品２２を直列に組み合わせた構成のフィルタ２０の一例を示す。
【図３】図３は、本実施形態に係るフィルタ部品２２を木構造に組み合わせた構成のフィルタ２０の一例を示す。
【図４】図４は、本実施形態に係るフィルタ部品２２を直列に組み合わせた構成のフィルタ２０に対して行われる遺伝子的な操作の一例を示す。
【図５】図５は、本実施形態に係るフィルタ部品２２を木構造に組み合わせた構成のフィルタ２０に対して行われる交叉操作の一例を示す。
【図６】図６は、本実施形態に係るフィルタ部品２２を木構造に組み合わせた構成のフィルタ２０に対して行われる突然変異操作の一例を示す。
【図７】図７は、本実施形態に係るフィルタ２０が画像フィルタである場合の、フィルタ２０の適合度を表わすパラメータの一例である類似度の算出方法の一例を示す。
【図８】図８は、本実施形態に係るフィルタ部品のパラメータから構成される遺伝子の一例を示す。
【図９】図９は、本実施形態に係るフィルタ部品のパラメータ調整の一例を示す。
【図１０】図１０は、本実施形態に係る選定部１５０によるフィルタ削除の一例を示す。
【図１１】図１１は、本実施形態に係る統合部１６０によるフィルタ部品の統合および分割部１８０によるフィルタ部品の分割の一例を示す。
【図１２】図１２は、本実施形態に係る遺伝的処理装置１００の処理フローを示す。
【図１３】図１３は、図１２のステップＳ１２３０における遺伝的処理装置１００の処理フローの一例を示す。
【図１４】図１４は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、本実施形態に係る遺伝的処理装置１００の構成を示す。遺伝的処理装置１００は、フィルタ格納部１１０と、生成部１２０と、学習用データ格納部１３０と、適合度算出部１４０と、選定部１５０と、統合部１６０と、繰り返し処理部１７０と、分割部１８０と、調整部１９０とを備える。フィルタ格納部１１０は、既に生成された互いに異なる複数のフィルタを格納する。
【００１０】
フィルタは、１または複数の入力データを含む入力データセットを１または複数の出力データを含む出力データセットに変換する複数のフィルタ部品を含む構成であってもよい。フィルタは、フィルタ部品を直列に組み合わせた構成であってもよい。また、フィルタは、フィルタ部品を木構造等に組み合わせた構成であってもよい。また、フィルタは、データセットに対して演算を施すプログラム、および、データセットに対して施すべき演算内容を表わす演算式等であってもよい。
【００１１】
また、フィルタの変換対象となるデータセットは、データセットは、１次元データ列、２次元データ群、３次元データ群、又は、更に多次元のデータ群であってもよい。１次元データ列は、例えば、時系列データ又は配列状のデータ列等である。２次元データ群は、複数の画素データ等が２次元空間に配列された画像データ等である。３次元データ群は、色又は濃度等を表わすデータ値が３次元空間の各格子点に配置されたボリュームデータ等である。また、フィルタは、入力されたデータセットと異なる次元のデータセットを出力してもよい。
【００１２】
生成部１２０は、入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも１つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する。遺伝的処理については、図４〜６を参照して後述される。生成部１２０は、フィルタ群から遺伝的処理により新たなフィルタを生成してフィルタ群に加えてもよい。
【００１３】
学習用データ格納部１３０は、学習用データを格納する。学習用データは、学習用入力データと学習用目標データとを含む。学習用目標データは、フィルタ（変換器）が学習用入力データを変換して得られるデータの目標となるデータである。本実施形態において、学習用入力データは学習用入力画像であってもよく、学習用目標データは学習用目標画像であってもよい。例えば、学習用入力画像は、欠陥が含まれる検査対象を撮像した検査対象画像であってもよく、学習用目標画像は、当該検査対象画像から抽出する目標となる当該欠陥の抽出画像であってもよい。
【００１４】
適合度算出部１４０は、フィルタ群に含まれるそれぞれのフィルタについて、学習用入力データから学習用目標データへの変換に対する適合度を算出する。ここで、適合度は、学習用入力データを学習用目標データへと変換するのに適しているかどうかを表す指標値であり、本実施形態においては値が高いほど学習用入力データを学習用目標データへと変換するのに適していることを表す。一例では、適合度算出部１４０は、当該適合度として、図７を参照して後述される、学習用入力画像の学習用目標画像への類似度を算出する。
【００１５】
選定部１５０は、それぞれのフィルタについての適合度に基づいて、フィルタ群に残すフィルタを選定する。統合部１６０は、入出力間の接続により連結された２以上のフィルタ部品を統合して、当該２以上のフィルタ部品による変換に相当する変換をする統合フィルタ部品に置き換える。ここで、当該２以上のフィルタ部品による変換に相当する処理とは、入力データが与えられると、当該２以上のフィルタ部品が当該入力データを処理することによって得られる出力データと同一または類似の出力データを得る処理である。統合部１６０は、２以上のフィルタ部品を、当該２以上のフィルタ部品による処理を合成した処理をするフィルタ部品に置き換えてもよい。
【００１６】
繰り返し処理部１７０は、生成部１２０による新たなフィルタの生成、適合度算出部１４０による適合度の算出、および選定部１５０による次世代のフィルタ群に残すフィルタの選定、および統合部１６０によるフィルタ部品の統合を繰り返し処理させる。
【００１７】
分割部１８０は、少なくとも１つのフィルタにおけるフィルタ部品を２以上のフィルタ部品に分割する。繰り返し処理部１７０は、統合部１６０によるフィルタ部品の統合および生成部１２０による新たなフィルタの生成の間に、２以上のフィルタを交叉させる場合においてフィルタ部品を分割する必要が生じた場合に、分割部１８０によるフィルタ部品の分割を行ってもよい。その場合、分割部１８０は、少なくとも１つのフィルタにおけるフィルタ部品を２以上のフィルタ部品に分割することにより、少なくとも１つのフィルタを２以上の部分フィルタに分割し、生成部１２０は、２以上の部分フィルタのうちの一部の部分フィルタを新たなフィルタの少なくとも一部としてもよい。
【００１８】
調整部１９０は、新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する。一例では、調整部１９０は、少なくとも１つの新たなフィルタのうち、繰り返し処理部１７０による繰り返し処理の結果得られた調整対象フィルタについて、フィルタ部品のパラメータを、遺伝的処理により調整する。ここで、調整対象フィルタは、選定部１５０が最後に選定した１つまたは複数のフィルタであってもよい。フィルタ部品のパラメータは、例えば、画像フィルタの１つである膨張フィルタ（Ｄｉｌａｔｅ  ｆｉｌｔｅｒ）で使用される基準輝度、メディアンフィルタ（Ｍｅｄｉａｎ  ｆｉｌｔｅｒ）で使用される範囲の画素数、最大・最小輝度採用（Ａｄｏｐｔｉｏｎ）フィルタで使用される範囲の画素数、乗算フィルタの乗数、および最大値化フィルタの閾値、最小値化フィルタの閾値、または２値化フィルタの閾値等である。こうすると、繰り返し処理部１７０による繰り返し処理の度に生成部１２０はパラメータのみが異なるフィルタ部品を複数使用する必要がなくなり、演算コストが低減される。
【００１９】
図２は、フィルタ部品２２を直列に組み合わせた構成のフィルタ２０の一例を示す。図３は、フィルタ部品２２を木構造に組み合わせた構成のフィルタ２０の一例を示す。フィルタ２０は、入力画像データを受け取り、受け取った入力画像データに対してフィルタ演算処理を施して、出力データを出力する。
【００２０】
フィルタ２０は、複数のフィルタ部品２２を組み合わせた構成を有する。フィルタ２０は、図２に示されるように、フィルタ部品２２を直列に組み合わせた構成を有してもよい。また、フィルタ２０は、図３に示されるように、フィルタ部品２２を木構造に組み合わせた構成を有してもよい。
【００２１】
なお、フィルタ部品２２が木構造に組み合わされた構成のフィルタ２０は、木構造の末端のフィルタ部品２２に入力画像データが与えられ、木構造の最上位のフィルタ部品２２から出力データを出力する。また、このようなフィルタ２０は、複数の末端のフィルタ部品２２のそれぞれに、同一の入力データが与えられる。これに代えて、このようなフィルタ２０は、複数の末端のフィルタ部品２２のそれぞれに互いに異なる入力データが与えられてもよい。
【００２２】
複数のフィルタ部品２２のそれぞれは、プログラムモジュールおよび演算式等であってもよい。フィルタ部品２２は、前段に配置されたフィルタ部品２２から出力されたデータを受け取り、受け取ったデータに演算を施して後段に配置されたフィルタ部品２２に与える。
【００２３】
複数のフィルタ部品２２のそれぞれは、２値化演算、ヒストグラム演算、平滑化演算、エッジ検出演算、モルフォロジ演算及び／又は周波数空間での演算（例えば、ローパスフィルタリング演算およびハイパスフィルタリング演算）等の単項演算を行う画像フィルタであってもよい。さらに、複数のフィルタ部品２２のそれぞれは、平均演算、差分演算及び／又はファジー演算（例えば論理和演算、論理積演算、代数和、代数積、限界和、限界積、激烈和および激烈積等）等の二項演算を行ってもよい。
【００２４】
図４は、フィルタ部品２２を直列に組み合わせた構成のフィルタ２０に対して行われる遺伝的な操作の一例を示す。図５は、フィルタ部品２２を木構造に組み合わせた構成のフィルタ２０に対して行われる交叉操作の一例を示す。図６は、フィルタ部品２２を木構造に組み合わせた構成のフィルタ２０に対して行われる突然変異操作の一例を示す。
【００２５】
生成部１２０は、２個又はそれ以上のフィルタ２０に対して、遺伝的な操作の一例として交叉操作を行って新たな２個又はそれ以上のフィルタ２０を生成する。生成部１２０は、図４および図５に示されるように、既に生成された少なくとも１つの一のフィルタ２０Ａの一部のフィルタ部品群２４Ａを、既に生成された他のフィルタ２０Ｂの少なくとも一部のフィルタ部品群２４Ｂと置換して、新たなフィルタ２０Ｅおよび２０Ｆを生成してもよい。なお、フィルタ部品群２４は、１又は複数のフィルタ部品２２の組み合わせた部材である。
【００２６】
また、生成部１２０は、一のフィルタ２０に対して、遺伝的な操作の一例として突然変異操作を行い、新たな一のフィルタ２０を生成する。生成部１２０は、図４および図６に示されるように、既に生成された一のフィルタ２０Ｃの一部のフィルタ部品群２４Ｃを、ランダムに選択された他のフィルタ部品群２４Ｇに置換して、新たなフィルタ２０Ｇを生成してもよい。
【００２７】
また、生成部１２０は、現世代のフィルタ２０をそのまま次世代のフィルタ２０として残してもよい。生成部１２０は、図４に示されるように、フィルタ２０Ｄのフィルタ部品２２の構成をそのまま含む次世代のフィルタ２０Ｈを生成してもよい。
【００２８】
選定部１５０は、生成部１２０により生成された複数のフィルタ２０に対して生物の自然淘汰をモデル化した手法により１または複数のフィルタ２０を選択する。選定部１５０は、複数のフィルタ２０の中の適合度がより高いフィルタ２０を優先的に選択する。選定部１５０は、複数のフィルタ２０のそれぞれの適合度に基づき、エリート選択およびルーレット選択といった手法に応じて、フィルタ２０を選択してもよい。そして、選定部１５０は、選択したフィルタ２０を次世代へ生存させるべく当該フィルタ２０をフィルタ格納部１１０内に保存し、選択されなかったフィルタ２０を死滅させるべくフィルタ格納部１１０内から削除する。
【００２９】
図７は、フィルタ２０が画像フィルタである場合の、フィルタ２０の適合度を表わすパラメータの一例である類似度の算出方法の一例を示す。本実施形態において、適合度算出部１４０は、当該フィルタ２０により入力画像を変換させることにより生成された出力画像と、目標画像とがどれだけ類似しているかを表わす類似度を算出する。この類似度は、フィルタ２０の適合度を表わすパラメータの一例であって、値がより大きいほど、当該出力画像を生成したフィルタ２０がより適切であることを示す評価値または指標として用いられる。
【００３０】
適合度算出部１４０は、出力画像の各領域の値と目標画像の対応する各領域の値とを比較した比較値を算出し、領域毎の比較値に対して重みデータにより指定される重みを乗じる。そして、適合度算出部１４０は、重みが乗じられた領域毎の比較値を全領域について平均または合計した値を算出し、算出した値を当該出力画像の類似度として出力する。
【００３１】
適合度算出部１４０は、一例として、出力画像のピクセル毎の輝度値と、目標画像の対応するピクセルの輝度値との差分または比率を算出してよい。そして、適合度算出部１４０は、一例として、算出したピクセル毎の差分または比率のそれぞれに、重みデータにより指定される対応する重みを乗じ、重みが乗じられたピクセル毎の差分または比率を合計または平均して、類似度を算出してよい。
【００３２】
例えば、重みデータが重み画像により表わされている場合、適合度算出部１４０は、下記式（１）に示される演算をして、類似度を算出してよい。なお、この場合において、出力画像、目標画像および重み画像のサイズは、同一とされる。
【００３３】
【数１】
2010257257.tif 000003
【００３４】
式（１）において、ｆは、類似度を表わす。Ｙｍａｘは、輝度の最大値を表わす。
【００３５】
また、ｘは、画像の水平方向のピクセル位置を示す変数である。ｙは、画像の垂直方向のピクセル位置を示す変数である。ｘｍａｘは、画像の水平方向のピクセル数を示す定数である。ｙｍａｘは、画像の垂直方向のピクセル数を示す定数である。
【００３６】
Ｉｗｅｉｇｈｔ（ｘ，ｙ）は、重み画像における（ｘ，ｙ）位置のピクセルの輝度値を表わす。Ｉｔａｒｇｅｔ（ｘ，ｙ）は、目標画像における（ｘ，ｙ）位置のピクセルの輝度値を表わす。Ｉｆｉｌｔｅｒ（ｘ，ｙ）は、出力画像における（ｘ，ｙ）位置のピクセルの輝度値を表わす。
【００３７】
すなわち、式（１）の中カッコ内の分子部分に示されるように、適合度算出部１４０は、目標画像の輝度値から出力画像の輝度値の差の絶対値に対して重み画像の輝度値を乗じた重み付き差分値を、画面内の全てのピクセル毎に算出し、算出した重み付き差分値を全ピクセルについて合計した合計重み付け差分値を算出する。さらに、式（１）の中カッコ内の分母部分に示されるように、適合度算出部１４０は、重み画像の輝度値を全ピクセルについて合計した合計重みを算出する。さらに、適合度算出部１４０は、合計重み付け差分値を合計重みで除算した除算値（式（１）の中カッコ内）に、輝度値の最大値の逆数（１／Ｙｍａｘ）を乗じて正規化値（式（１）の２番目の項）を算出する。そして、適合度算出部１４０は、１から、正規化値を減じた値を、類似度ｆとして算出する。このようにして、適合度算出部１４０は、出力画像と目標画像との差分を領域毎に重み付けして類似度を算出することができる。
【００３８】
図８は、フィルタ部品のパラメータを調整する場合に用いられる遺伝子の一例を示す。フィルタ８１０は、フィルタ部品８１２，８１４，８１６、および８１８を有する。フィルタ部品８１２は、パラメータＰａを有し、フィルタ部品８１４は、パラメータ（Ｐｂ，Ｐｃ）を有し、フィルタ部品８１６は、パラメータＰｅを有し、フィルタ部品８１８は、パラメータＰｄを有する。
【００３９】
これらのパラメータＰａ、Ｐｂ、Ｐｃ、Ｐｄ、およびＰｅの値を例えば一列に並べて、遺伝子８２０とする。こうして得られた遺伝子に対して、図４〜６と同様の遺伝的な操作を繰り返すことにより、調整部１９０は、より適合度の高いフィルタを生成することができる。なお、遺伝的な操作を行うときに、遺伝子の長さを一定に保つことに留意する。
【００４０】
図９は、フィルタ部品のパラメータ調整の一例を示す。フィルタ９１０は、パラメータＰを有するフィルタ部品９１２、フィルタ部品９１４、およびフィルタ部品９１６を有する。当該パラメータＰの値はいずれも１に等しい。新たなフィルタが入出力間の接続により連結された同一の２以上のフィルタ部品を含む場合に、調整部１９０は、当該２以上のフィルタ部品のうち一部のフィルタ部品のパラメータを固定として、他の一部のフィルタ部品のパラメータを調整してもよい。また、新たなフィルタが入出力間の接続により連結された同一の２以上のフィルタ部品を含む場合に、調整部１９０は、当該２以上のフィルタ部品のうち一のフィルタ部品以外のパラメータを固定として、一のフィルタ部品のパラメータを調整してもよい。
【００４１】
例えば、フィルタ９１０内のフィルタ部品９１６のパラメータＰの値を２に調節することによって、調整部１９０は、フィルタ９１０をフィルタ９２０に調整する。ここで、フィルタ部品９１２とフィルタ部品９２２は同一のフィルタ部品であり、フィルタ部品９１４とフィルタ部品９２４は同一のフィルタ部品である。また、フィルタがパラメータを有するｎ段の同一フィルタ部品を有する場合、フィルタが有するフィルタ部品のうち一のフィルタ部品のフィルタパラメータを、ｎ−１〜ｎ＋１またはｎ−０．５〜ｎ＋０．５段分の範囲で調整してもよい。こうすると、調整部１９０は、フィルタ部品の段数によりフィルタの強度等を調整する場合と比較して、フィルタの強度をより高い分解能で調整することができる。
【００４２】
図１０は、選定部１５０によるフィルタ削除の一例を示す。第１フィルタ１０１０は、同一のフィルタ部品１０１２Ａ、１０１２Ｂ、および１０１２Ｃを有する。第２フィルタ１０２０は、それらのフィルタ部品の一つと同一のフィルタ部品１０１２Ｄを有する。第１フィルタ１０１０の構造と、第２フィルタ１０２０の構造は、フィルタ部品１０１２Ａ、１０１２Ｂ、１０１２Ｃ、および１０１２Ｄを除いて同一である。
【００４３】
一例では、選定部１５０は、入出力間の接続により連結された同一の２以上のフィルタ部品を含む第１フィルタ１０１０と、第１フィルタ１０１０における当該２以上のフィルタ部品に対応する部分に第１フィルタと同一のフィルタ部品が異なる数連結されており、かつ他の部分は第１フィルタ１０１０と同一構造の第２フィルタ１０２０とがフィルタ群に含まれる場合に、第１フィルタ１０１０および第２フィルタ１０２０の一方を選定せずに削除する。この場合、選定部１５０は、例えば、より複雑な構造を有する第１フィルタ１０１０を選定せずに削除してもよい。これに代えて、選定部１５０は、同一のフィルタ部品の数が予め定められた範囲内にある複数のフィルタのうち少なくとも１つを削除してもよい。また、選定部１５０は、複数のフィルタを同時に削除してもよい。
【００４４】
図１１は、本実施形態に係る統合部１６０によるフィルタ部品の統合および分割部１８０によるフィルタ部品の分割の一例を示す。フィルタ１１１０内で、黒丸で示された同一のフィルタ部品が、１１１４Ａおよび１１１４Ｂとして繰り返し連結されている。統合部１６０がフィルタ１１１０内の同一のフィルタ部品を統合すると、フィルタ１１１０はフィルタ１１２０に変換される。フィルタ１１２０内では、フィルタ部品１１１４Ａおよび１１１４Ｂが、強度の変更されたフィルタ部品１１１４Ｃに統合されている。また、フィルタ１１１０内のフィルタ部品１１１２、フィルタ部品１１１６、およびフィルタ部品１１１８は変更されていない。
【００４５】
続いて、分割部１８０がフィルタ１１２０内のフィルタ部品１１１４Ｃを分割すると、フィルタ１１２０はフィルタ１１３０に変換される。フィルタ１１３０内では、フィルタ部品１１１４Ｃが、強度の変更されたフィルタ部品１１１４Ｄ、１１１４Ｅ、および１１１４Ｆに分割されている。ここで、分割部１８０は、統合部１６０によって統合されたフィルタ部品の全てを分割してもよく、または、一部を分割してもよい。続いて、調整部１９０は、統合部１６０により統合された統合フィルタ部品のパラメータを調整してもよい。こうすることにより、調整部１９０は、より長さの短いフィルタに対して、フィルタ部品のパラメータの調整をすることができる。
【００４６】
図１２は、遺伝的処理装置１００の処理フローを示す。遺伝的処理装置１００は、ステップＳ１２１０〜ステップＳ１２５０およびステップＳ１２７０の各処理を、複数回（例えば複数世代）繰返して実行する。なお、遺伝的処理装置１００は、与えられた学習用入力データを学習用目標データに変換するフィルタを生成するための初期のフィルタとして、ランダムに生成したまたは既に生成したフィルタを、予めフィルタ格納部１１０に格納しておく。
【００４７】
各世代において、まず、生成部１２０は、前世代から残存した複数のフィルタに対して、交叉操作および突然変異操作等の遺伝的な操作を行って、新たな複数のフィルタを生成する（Ｓ１２１０）。なお、生成部１２０は、最初の世代においては、使用者等により予め生成された複数のフィルタに対して遺伝的な操作を行って新たな複数のフィルタを生成してもよい。
【００４８】
続いて、適合度算出部１４０は、前世代から残存した複数のフィルタおよびステップＳ１２１０で新たに生成された複数のフィルタのそれぞれにより、学習用入力データをフィルタ処理して出力データを生成する（Ｓ１２２０）。
【００４９】
続いて、適合度算出部１４０は、それぞれの出力データと学習用目標データとの適合度を算出し、選定部１５０は、適合度がより高い出力データに対応する複数のフィルタを選定する（Ｓ１２３０）。なお、選定部１５０は、最後の世代においては、適合度の最も高い１個の出力データに対応する１個のフィルタを選択してもよい。
【００５０】
続いて、選定部１５０は、ステップＳ１２３０において選択された１または複数のフィルタを次世代に残存させ、ステップＳ１２３０において選択されなかった出力データを生成したフィルタを削除する（Ｓ１２４０）。続いて、統合部１６０は、ステップＳ１２６０において得られたフィルタ内のフィルタ部品２２を置き換えにより統合する（Ｓ１２５０）。例えば、統合部１６０は、連結されているｎ個の膨張・収縮フィルタを、ｎ倍膨張・収縮フィルタに置き換えてもよい。また、例えば、ぼかしフィルタ、メディアンフィルタ、平均フィルタ、ヒストグラム伸張・圧縮フィルタ等がｎ個連結されている場合に、統合部１６０は、当該ｎ個のフィルタをｎ倍の強度を行うフィルタに置き換えてもよい。こうすると、統合部１６０は、入力データに対して、同一のフィルタ部品２２を同一または類似の効果をもたらす一のフィルタ部品２２に置き換えてフィルタ部品２２の数を減らすことができるので、演算コストが減少する。
【００５１】
繰り返し処理部１７０は、以上の処理が第Ｎ世代（Ｎは２以上の整数、例えば数十または数百）まで実行されたかどうかを判定する（Ｓ１２６０）。以上の処理が第Ｎ世代まで実行されていない場合、分割部１８０は、少なくとも１つのフィルタにおける統合フィルタ部品を、２以上のフィルタ部品の組に分割する（Ｓ１２７０）。分割部１８０は、統合フィルタ部品を、合わせて統合フィルタ部品と同じ変換を行う２以上のフィルタ部品の組に分割してもよい。例えば、分割部１８０は、ｎ倍の強度を有する、ぼかしフィルタ、メディアンフィルタ、平均フィルタ、ヒストグラム伸張・圧縮フィルタ等の統合フィルタ部品を、ｎ＝ａ＋ｂとして、ａ倍およびｂ倍の強度を有する同じ変換を行うフィルタ部品の合成に置き換えてもよい。
【００５２】
また、生成部１２０が複数のフィルタ２０を交叉させることを目的として生成部１２０がフィルタ部品２２を分割する場合に、生成部１２０は、分割部１８０に当該フィルタ部品２２の分割を指示してもよい。これにより、分割部１８０は、生成部１２０が多様な遺伝子的な操作を行うのに適した分割をすることができる。
【００５３】
以上の処理が第Ｎ世代まで実行された場合、遺伝的処理装置１００は、当該フローを抜ける（Ｓ１２６０）。
【００５４】
続いて、調整部１９０は、遺伝的処理装置１００が当該フローを抜けたときに得られたフィルタ内のフィルタ部品のパラメータを調整する（Ｓ１２８０）。なお、ステップＳ１２８０は、当該フローを抜けたときに得られたフィルタを実応用するときに実行されてもよい。
【００５５】
図１３は、図１２のステップＳ１２３０における遺伝的処理装置１００の処理フローの一例を示す。遺伝的処理装置１００は、図９に示されるステップＳ１２３０において、以下の処理を実行する。
【００５６】
まず、適合度算出部１４０は、フィルタ格納部１１０に格納された複数のフィルタのそれぞれにより生成された複数の出力データのそれぞれについて、以下のステップＳ１３２０の処理を実行する（Ｓ１３１０、Ｓ１３３０）。ステップＳ１３２０において、適合度算出部１４０は、当該出力データと学習目標データとの適合度を算出する。適合度算出部１４０は、複数の出力データの全てについて処理を終えると、処理をステップＳ１３４０に進める（Ｓ１３３０）。
【００５７】
続いて、選定部１５０は、複数の出力データのそれぞれの適合度に基づき、複数の出力データの中から学習用目標データにより近い出力データを選定する（Ｓ１３４０）。選定部１５０は、一例として、複数のフィルタにより変換された複数の出力データのうち、適合度がより高い出力データを優先的に選定してもよい。選定部１５０は、一例として、適合度が基準適合度より高い出力データを選定してもよい。また、選定部１５０は、一例として、適合度が上位から予め定められた範囲の出力データを選定してもよい。また、選定部１５０は、適合度がより高い出力データがより高い確率で選択されるように設定がされている条件下で、ランダムに出力データを選定してもよい。
【００５８】
続いて、選定部１５０は、選定部１５０により選定された出力データを生成するフィルタを、学習用入力データを学習用目標データにより適合するデータに変換するフィルタとして選択する（Ｓ１３５０）。このステップＳ１３５０の処理を終えると、遺伝的処理装置１００は、当該フローを終了する。
【００５９】
図１４は、本発明の実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＤＶＤドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００６０】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６１】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＤＶＤドライブ２０６０は、ＤＶＤ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００６２】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００６３】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＤＶＤ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００６４】
コンピュータ１９００にインストールされ、コンピュータ１９００を第１実施形態に係る遺伝的処理装置１００として機能させるプログラムは、フィルタ格納モジュール、生成モジュール、学習用データ格納モジュール、適合度算出モジュール、選定モジュール、統合モジュール、繰り返し処理モジュール、分割モジュール、および調整モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、フィルタ格納部１１０、生成部１２０、学習用データ格納部１３０、適合度算出部１４０、選定部１５０、統合部１６０、繰り返し処理部１７０、分割部１８０、および調整部１９０としてそれぞれ機能させる。
【００６５】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段であるフィルタ格納部１１０、生成部１２０、学習用データ格納部１３０、適合度算出部１４０、選定部１５０、統合部１６０、繰り返し処理部１７０、分割部１８０、および調整部１９０として機能する。そして、これらの具体的手段によって、第１実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の遺伝的処理装置１００が構築される。
【００６６】
一例では、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＤＶＤ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００６７】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０（ＤＶＤ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００６８】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００６９】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００７０】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＤＶＤ２０９５の他に、ＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００７１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００７２】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００７３】
２０  フィルタ、２２  フィルタ部品、２４  フィルタ部品群、１００  遺伝的処理装置、１１０  フィルタ格納部、１２０  生成部、１３０  学習用データ格納部、１４０  適合度算出部、１５０  選定部、１６０  統合部、１７０  繰り返し処理部、１８０  分割部、１９０  調整部、８１０  フィルタ、８１２  フィルタ部品、８１４  フィルタ部品、８１６  フィルタ部品、８１８  フィルタ部品、８２０  遺伝子、９１０  フィルタ、９１２  フィルタ部品、９１４  フィルタ部品、９１６  フィルタ部品、９２０  フィルタ、１０１０  第１フィルタ、１０１２  フィルタ部品、１０２０  第２フィルタ、１１１０  フィルタ、１１１２  フィルタ部品、１１１４  フィルタ部品、１１１６  フィルタ部品 、１１１８  フィルタ部品、１１２０  フィルタ、１１３０  フィルタ、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＤＶＤドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＤＶＤ
【図１】
2010257257.tif 000004
【図２】
2010257257.tif 000005
【図３】
2010257257.tif 000006
【図４】
2010257257.tif 000007
【図５】
2010257257.tif 000008
【図６】
2010257257.tif 000009
【図７】
2010257257.tif 000010
【図８】
2010257257.tif 000011
【図９】
2010257257.tif 000012
【図１０】
2010257257.tif 000013
【図１１】
2010257257.tif 000014
【図１２】
2010257257.tif 000015
【図１３】
2010257257.tif 000016
【図１４】
2010257257.tif 000017