説明

遺伝的処理装置、遺伝的処理方法およびプログラム

【課題】遺伝的処理で使用される遺伝子の数を無駄に増大することなく、フィルタ部品のパラメータを遺伝的処理する。
【解決手段】入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも1つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する生成部と、新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する調整部と、を備える遺伝的処理装置を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、遺伝的処理装置、遺伝的処理方法およびプログラムに関する。
【背景技術】
【0002】
遺伝的アルゴリズムまたは遺伝的プログラミングといった進化的計算を用いたフィルタ列の生成方法が知られている。この方法は、フィルタ列に対し、交叉、突然変異および選択等の操作を複数回繰返し、新たなフィルタ列を生成する。このような進化的計算を用いたフィルタ列の生成方法によれば、それぞれの事例に対して最適であり、解析的に得ることが困難な複雑な構造のフィルタ列を、より少ない労力で設計することができる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】前薗正宜 他2名、「遺伝的アルゴリズムによる画像フィルタ設計の研究」、[online]、コンピュータ利用教育協議会、[2008年3月20日検索]、インターネット<URL:http://www.ciec.or.jp/event/2003/papers/pdf/E00086.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、フィルタを構成する各フィルタ部品がパラメータを有する場合に、このようなフィルタ部品のパラメータを進化的計算によって調節すると、該パラメータが異なるフィルタ部品を複数使用する必要があり、フィルタ部品を組み合わせて生成される遺伝子の数を無駄に増大する結果をもたらす。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明の第1の態様においては、入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも1つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する生成部と、新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する調整部と、を備える遺伝的処理装置を提供する。
【0006】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0007】
【図1】図1は、本実施形態に係る遺伝的処理装置100の構成を示す。
【図2】図2は、本実施形態に係るフィルタ部品22を直列に組み合わせた構成のフィルタ20の一例を示す。
【図3】図3は、本実施形態に係るフィルタ部品22を木構造に組み合わせた構成のフィルタ20の一例を示す。
【図4】図4は、本実施形態に係るフィルタ部品22を直列に組み合わせた構成のフィルタ20に対して行われる遺伝子的な操作の一例を示す。
【図5】図5は、本実施形態に係るフィルタ部品22を木構造に組み合わせた構成のフィルタ20に対して行われる交叉操作の一例を示す。
【図6】図6は、本実施形態に係るフィルタ部品22を木構造に組み合わせた構成のフィルタ20に対して行われる突然変異操作の一例を示す。
【図7】図7は、本実施形態に係るフィルタ20が画像フィルタである場合の、フィルタ20の適合度を表わすパラメータの一例である類似度の算出方法の一例を示す。
【図8】図8は、本実施形態に係るフィルタ部品のパラメータから構成される遺伝子の一例を示す。
【図9】図9は、本実施形態に係るフィルタ部品のパラメータ調整の一例を示す。
【図10】図10は、本実施形態に係る選定部150によるフィルタ削除の一例を示す。
【図11】図11は、本実施形態に係る統合部160によるフィルタ部品の統合および分割部180によるフィルタ部品の分割の一例を示す。
【図12】図12は、本実施形態に係る遺伝的処理装置100の処理フローを示す。
【図13】図13は、図12のステップS1230における遺伝的処理装置100の処理フローの一例を示す。
【図14】図14は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。
【発明を実施するための形態】
【0008】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0009】
図1は、本実施形態に係る遺伝的処理装置100の構成を示す。遺伝的処理装置100は、フィルタ格納部110と、生成部120と、学習用データ格納部130と、適合度算出部140と、選定部150と、統合部160と、繰り返し処理部170と、分割部180と、調整部190とを備える。フィルタ格納部110は、既に生成された互いに異なる複数のフィルタを格納する。
【0010】
フィルタは、1または複数の入力データを含む入力データセットを1または複数の出力データを含む出力データセットに変換する複数のフィルタ部品を含む構成であってもよい。フィルタは、フィルタ部品を直列に組み合わせた構成であってもよい。また、フィルタは、フィルタ部品を木構造等に組み合わせた構成であってもよい。また、フィルタは、データセットに対して演算を施すプログラム、および、データセットに対して施すべき演算内容を表わす演算式等であってもよい。
【0011】
また、フィルタの変換対象となるデータセットは、データセットは、1次元データ列、2次元データ群、3次元データ群、又は、更に多次元のデータ群であってもよい。1次元データ列は、例えば、時系列データ又は配列状のデータ列等である。2次元データ群は、複数の画素データ等が2次元空間に配列された画像データ等である。3次元データ群は、色又は濃度等を表わすデータ値が3次元空間の各格子点に配置されたボリュームデータ等である。また、フィルタは、入力されたデータセットと異なる次元のデータセットを出力してもよい。
【0012】
生成部120は、入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも1つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する。遺伝的処理については、図4〜6を参照して後述される。生成部120は、フィルタ群から遺伝的処理により新たなフィルタを生成してフィルタ群に加えてもよい。
【0013】
学習用データ格納部130は、学習用データを格納する。学習用データは、学習用入力データと学習用目標データとを含む。学習用目標データは、フィルタ(変換器)が学習用入力データを変換して得られるデータの目標となるデータである。本実施形態において、学習用入力データは学習用入力画像であってもよく、学習用目標データは学習用目標画像であってもよい。例えば、学習用入力画像は、欠陥が含まれる検査対象を撮像した検査対象画像であってもよく、学習用目標画像は、当該検査対象画像から抽出する目標となる当該欠陥の抽出画像であってもよい。
【0014】
適合度算出部140は、フィルタ群に含まれるそれぞれのフィルタについて、学習用入力データから学習用目標データへの変換に対する適合度を算出する。ここで、適合度は、学習用入力データを学習用目標データへと変換するのに適しているかどうかを表す指標値であり、本実施形態においては値が高いほど学習用入力データを学習用目標データへと変換するのに適していることを表す。一例では、適合度算出部140は、当該適合度として、図7を参照して後述される、学習用入力画像の学習用目標画像への類似度を算出する。
【0015】
選定部150は、それぞれのフィルタについての適合度に基づいて、フィルタ群に残すフィルタを選定する。統合部160は、入出力間の接続により連結された2以上のフィルタ部品を統合して、当該2以上のフィルタ部品による変換に相当する変換をする統合フィルタ部品に置き換える。ここで、当該2以上のフィルタ部品による変換に相当する処理とは、入力データが与えられると、当該2以上のフィルタ部品が当該入力データを処理することによって得られる出力データと同一または類似の出力データを得る処理である。統合部160は、2以上のフィルタ部品を、当該2以上のフィルタ部品による処理を合成した処理をするフィルタ部品に置き換えてもよい。
【0016】
繰り返し処理部170は、生成部120による新たなフィルタの生成、適合度算出部140による適合度の算出、および選定部150による次世代のフィルタ群に残すフィルタの選定、および統合部160によるフィルタ部品の統合を繰り返し処理させる。
【0017】
分割部180は、少なくとも1つのフィルタにおけるフィルタ部品を2以上のフィルタ部品に分割する。繰り返し処理部170は、統合部160によるフィルタ部品の統合および生成部120による新たなフィルタの生成の間に、2以上のフィルタを交叉させる場合においてフィルタ部品を分割する必要が生じた場合に、分割部180によるフィルタ部品の分割を行ってもよい。その場合、分割部180は、少なくとも1つのフィルタにおけるフィルタ部品を2以上のフィルタ部品に分割することにより、少なくとも1つのフィルタを2以上の部分フィルタに分割し、生成部120は、2以上の部分フィルタのうちの一部の部分フィルタを新たなフィルタの少なくとも一部としてもよい。
【0018】
調整部190は、新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する。一例では、調整部190は、少なくとも1つの新たなフィルタのうち、繰り返し処理部170による繰り返し処理の結果得られた調整対象フィルタについて、フィルタ部品のパラメータを、遺伝的処理により調整する。ここで、調整対象フィルタは、選定部150が最後に選定した1つまたは複数のフィルタであってもよい。フィルタ部品のパラメータは、例えば、画像フィルタの1つである膨張フィルタ(Dilate filter)で使用される基準輝度、メディアンフィルタ(Median filter)で使用される範囲の画素数、最大・最小輝度採用(Adoption)フィルタで使用される範囲の画素数、乗算フィルタの乗数、および最大値化フィルタの閾値、最小値化フィルタの閾値、または2値化フィルタの閾値等である。こうすると、繰り返し処理部170による繰り返し処理の度に生成部120はパラメータのみが異なるフィルタ部品を複数使用する必要がなくなり、演算コストが低減される。
【0019】
図2は、フィルタ部品22を直列に組み合わせた構成のフィルタ20の一例を示す。図3は、フィルタ部品22を木構造に組み合わせた構成のフィルタ20の一例を示す。フィルタ20は、入力画像データを受け取り、受け取った入力画像データに対してフィルタ演算処理を施して、出力データを出力する。
【0020】
フィルタ20は、複数のフィルタ部品22を組み合わせた構成を有する。フィルタ20は、図2に示されるように、フィルタ部品22を直列に組み合わせた構成を有してもよい。また、フィルタ20は、図3に示されるように、フィルタ部品22を木構造に組み合わせた構成を有してもよい。
【0021】
なお、フィルタ部品22が木構造に組み合わされた構成のフィルタ20は、木構造の末端のフィルタ部品22に入力画像データが与えられ、木構造の最上位のフィルタ部品22から出力データを出力する。また、このようなフィルタ20は、複数の末端のフィルタ部品22のそれぞれに、同一の入力データが与えられる。これに代えて、このようなフィルタ20は、複数の末端のフィルタ部品22のそれぞれに互いに異なる入力データが与えられてもよい。
【0022】
複数のフィルタ部品22のそれぞれは、プログラムモジュールおよび演算式等であってもよい。フィルタ部品22は、前段に配置されたフィルタ部品22から出力されたデータを受け取り、受け取ったデータに演算を施して後段に配置されたフィルタ部品22に与える。
【0023】
複数のフィルタ部品22のそれぞれは、2値化演算、ヒストグラム演算、平滑化演算、エッジ検出演算、モルフォロジ演算及び/又は周波数空間での演算(例えば、ローパスフィルタリング演算およびハイパスフィルタリング演算)等の単項演算を行う画像フィルタであってもよい。さらに、複数のフィルタ部品22のそれぞれは、平均演算、差分演算及び/又はファジー演算(例えば論理和演算、論理積演算、代数和、代数積、限界和、限界積、激烈和および激烈積等)等の二項演算を行ってもよい。
【0024】
図4は、フィルタ部品22を直列に組み合わせた構成のフィルタ20に対して行われる遺伝的な操作の一例を示す。図5は、フィルタ部品22を木構造に組み合わせた構成のフィルタ20に対して行われる交叉操作の一例を示す。図6は、フィルタ部品22を木構造に組み合わせた構成のフィルタ20に対して行われる突然変異操作の一例を示す。
【0025】
生成部120は、2個又はそれ以上のフィルタ20に対して、遺伝的な操作の一例として交叉操作を行って新たな2個又はそれ以上のフィルタ20を生成する。生成部120は、図4および図5に示されるように、既に生成された少なくとも1つの一のフィルタ20Aの一部のフィルタ部品群24Aを、既に生成された他のフィルタ20Bの少なくとも一部のフィルタ部品群24Bと置換して、新たなフィルタ20Eおよび20Fを生成してもよい。なお、フィルタ部品群24は、1又は複数のフィルタ部品22の組み合わせた部材である。
【0026】
また、生成部120は、一のフィルタ20に対して、遺伝的な操作の一例として突然変異操作を行い、新たな一のフィルタ20を生成する。生成部120は、図4および図6に示されるように、既に生成された一のフィルタ20Cの一部のフィルタ部品群24Cを、ランダムに選択された他のフィルタ部品群24Gに置換して、新たなフィルタ20Gを生成してもよい。
【0027】
また、生成部120は、現世代のフィルタ20をそのまま次世代のフィルタ20として残してもよい。生成部120は、図4に示されるように、フィルタ20Dのフィルタ部品22の構成をそのまま含む次世代のフィルタ20Hを生成してもよい。
【0028】
選定部150は、生成部120により生成された複数のフィルタ20に対して生物の自然淘汰をモデル化した手法により1または複数のフィルタ20を選択する。選定部150は、複数のフィルタ20の中の適合度がより高いフィルタ20を優先的に選択する。選定部150は、複数のフィルタ20のそれぞれの適合度に基づき、エリート選択およびルーレット選択といった手法に応じて、フィルタ20を選択してもよい。そして、選定部150は、選択したフィルタ20を次世代へ生存させるべく当該フィルタ20をフィルタ格納部110内に保存し、選択されなかったフィルタ20を死滅させるべくフィルタ格納部110内から削除する。
【0029】
図7は、フィルタ20が画像フィルタである場合の、フィルタ20の適合度を表わすパラメータの一例である類似度の算出方法の一例を示す。本実施形態において、適合度算出部140は、当該フィルタ20により入力画像を変換させることにより生成された出力画像と、目標画像とがどれだけ類似しているかを表わす類似度を算出する。この類似度は、フィルタ20の適合度を表わすパラメータの一例であって、値がより大きいほど、当該出力画像を生成したフィルタ20がより適切であることを示す評価値または指標として用いられる。
【0030】
適合度算出部140は、出力画像の各領域の値と目標画像の対応する各領域の値とを比較した比較値を算出し、領域毎の比較値に対して重みデータにより指定される重みを乗じる。そして、適合度算出部140は、重みが乗じられた領域毎の比較値を全領域について平均または合計した値を算出し、算出した値を当該出力画像の類似度として出力する。
【0031】
適合度算出部140は、一例として、出力画像のピクセル毎の輝度値と、目標画像の対応するピクセルの輝度値との差分または比率を算出してよい。そして、適合度算出部140は、一例として、算出したピクセル毎の差分または比率のそれぞれに、重みデータにより指定される対応する重みを乗じ、重みが乗じられたピクセル毎の差分または比率を合計または平均して、類似度を算出してよい。
【0032】
例えば、重みデータが重み画像により表わされている場合、適合度算出部140は、下記式(1)に示される演算をして、類似度を算出してよい。なお、この場合において、出力画像、目標画像および重み画像のサイズは、同一とされる。
【0033】
【数1】

【0034】
式(1)において、fは、類似度を表わす。Ymaxは、輝度の最大値を表わす。
【0035】
また、xは、画像の水平方向のピクセル位置を示す変数である。yは、画像の垂直方向のピクセル位置を示す変数である。xmaxは、画像の水平方向のピクセル数を示す定数である。ymaxは、画像の垂直方向のピクセル数を示す定数である。
【0036】
Iweight(x,y)は、重み画像における(x,y)位置のピクセルの輝度値を表わす。Itarget(x,y)は、目標画像における(x,y)位置のピクセルの輝度値を表わす。Ifilter(x,y)は、出力画像における(x,y)位置のピクセルの輝度値を表わす。
【0037】
すなわち、式(1)の中カッコ内の分子部分に示されるように、適合度算出部140は、目標画像の輝度値から出力画像の輝度値の差の絶対値に対して重み画像の輝度値を乗じた重み付き差分値を、画面内の全てのピクセル毎に算出し、算出した重み付き差分値を全ピクセルについて合計した合計重み付け差分値を算出する。さらに、式(1)の中カッコ内の分母部分に示されるように、適合度算出部140は、重み画像の輝度値を全ピクセルについて合計した合計重みを算出する。さらに、適合度算出部140は、合計重み付け差分値を合計重みで除算した除算値(式(1)の中カッコ内)に、輝度値の最大値の逆数(1/Ymax)を乗じて正規化値(式(1)の2番目の項)を算出する。そして、適合度算出部140は、1から、正規化値を減じた値を、類似度fとして算出する。このようにして、適合度算出部140は、出力画像と目標画像との差分を領域毎に重み付けして類似度を算出することができる。
【0038】
図8は、フィルタ部品のパラメータを調整する場合に用いられる遺伝子の一例を示す。フィルタ810は、フィルタ部品812,814,816、および818を有する。フィルタ部品812は、パラメータPaを有し、フィルタ部品814は、パラメータ(Pb,Pc)を有し、フィルタ部品816は、パラメータPeを有し、フィルタ部品818は、パラメータPdを有する。
【0039】
これらのパラメータPa、Pb、Pc、Pd、およびPeの値を例えば一列に並べて、遺伝子820とする。こうして得られた遺伝子に対して、図4〜6と同様の遺伝的な操作を繰り返すことにより、調整部190は、より適合度の高いフィルタを生成することができる。なお、遺伝的な操作を行うときに、遺伝子の長さを一定に保つことに留意する。
【0040】
図9は、フィルタ部品のパラメータ調整の一例を示す。フィルタ910は、パラメータPを有するフィルタ部品912、フィルタ部品914、およびフィルタ部品916を有する。当該パラメータPの値はいずれも1に等しい。新たなフィルタが入出力間の接続により連結された同一の2以上のフィルタ部品を含む場合に、調整部190は、当該2以上のフィルタ部品のうち一部のフィルタ部品のパラメータを固定として、他の一部のフィルタ部品のパラメータを調整してもよい。また、新たなフィルタが入出力間の接続により連結された同一の2以上のフィルタ部品を含む場合に、調整部190は、当該2以上のフィルタ部品のうち一のフィルタ部品以外のパラメータを固定として、一のフィルタ部品のパラメータを調整してもよい。
【0041】
例えば、フィルタ910内のフィルタ部品916のパラメータPの値を2に調節することによって、調整部190は、フィルタ910をフィルタ920に調整する。ここで、フィルタ部品912とフィルタ部品922は同一のフィルタ部品であり、フィルタ部品914とフィルタ部品924は同一のフィルタ部品である。また、フィルタがパラメータを有するn段の同一フィルタ部品を有する場合、フィルタが有するフィルタ部品のうち一のフィルタ部品のフィルタパラメータを、n−1〜n+1またはn−0.5〜n+0.5段分の範囲で調整してもよい。こうすると、調整部190は、フィルタ部品の段数によりフィルタの強度等を調整する場合と比較して、フィルタの強度をより高い分解能で調整することができる。
【0042】
図10は、選定部150によるフィルタ削除の一例を示す。第1フィルタ1010は、同一のフィルタ部品1012A、1012B、および1012Cを有する。第2フィルタ1020は、それらのフィルタ部品の一つと同一のフィルタ部品1012Dを有する。第1フィルタ1010の構造と、第2フィルタ1020の構造は、フィルタ部品1012A、1012B、1012C、および1012Dを除いて同一である。
【0043】
一例では、選定部150は、入出力間の接続により連結された同一の2以上のフィルタ部品を含む第1フィルタ1010と、第1フィルタ1010における当該2以上のフィルタ部品に対応する部分に第1フィルタと同一のフィルタ部品が異なる数連結されており、かつ他の部分は第1フィルタ1010と同一構造の第2フィルタ1020とがフィルタ群に含まれる場合に、第1フィルタ1010および第2フィルタ1020の一方を選定せずに削除する。この場合、選定部150は、例えば、より複雑な構造を有する第1フィルタ1010を選定せずに削除してもよい。これに代えて、選定部150は、同一のフィルタ部品の数が予め定められた範囲内にある複数のフィルタのうち少なくとも1つを削除してもよい。また、選定部150は、複数のフィルタを同時に削除してもよい。
【0044】
図11は、本実施形態に係る統合部160によるフィルタ部品の統合および分割部180によるフィルタ部品の分割の一例を示す。フィルタ1110内で、黒丸で示された同一のフィルタ部品が、1114Aおよび1114Bとして繰り返し連結されている。統合部160がフィルタ1110内の同一のフィルタ部品を統合すると、フィルタ1110はフィルタ1120に変換される。フィルタ1120内では、フィルタ部品1114Aおよび1114Bが、強度の変更されたフィルタ部品1114Cに統合されている。また、フィルタ1110内のフィルタ部品1112、フィルタ部品1116、およびフィルタ部品1118は変更されていない。
【0045】
続いて、分割部180がフィルタ1120内のフィルタ部品1114Cを分割すると、フィルタ1120はフィルタ1130に変換される。フィルタ1130内では、フィルタ部品1114Cが、強度の変更されたフィルタ部品1114D、1114E、および1114Fに分割されている。ここで、分割部180は、統合部160によって統合されたフィルタ部品の全てを分割してもよく、または、一部を分割してもよい。続いて、調整部190は、統合部160により統合された統合フィルタ部品のパラメータを調整してもよい。こうすることにより、調整部190は、より長さの短いフィルタに対して、フィルタ部品のパラメータの調整をすることができる。
【0046】
図12は、遺伝的処理装置100の処理フローを示す。遺伝的処理装置100は、ステップS1210〜ステップS1250およびステップS1270の各処理を、複数回(例えば複数世代)繰返して実行する。なお、遺伝的処理装置100は、与えられた学習用入力データを学習用目標データに変換するフィルタを生成するための初期のフィルタとして、ランダムに生成したまたは既に生成したフィルタを、予めフィルタ格納部110に格納しておく。
【0047】
各世代において、まず、生成部120は、前世代から残存した複数のフィルタに対して、交叉操作および突然変異操作等の遺伝的な操作を行って、新たな複数のフィルタを生成する(S1210)。なお、生成部120は、最初の世代においては、使用者等により予め生成された複数のフィルタに対して遺伝的な操作を行って新たな複数のフィルタを生成してもよい。
【0048】
続いて、適合度算出部140は、前世代から残存した複数のフィルタおよびステップS1210で新たに生成された複数のフィルタのそれぞれにより、学習用入力データをフィルタ処理して出力データを生成する(S1220)。
【0049】
続いて、適合度算出部140は、それぞれの出力データと学習用目標データとの適合度を算出し、選定部150は、適合度がより高い出力データに対応する複数のフィルタを選定する(S1230)。なお、選定部150は、最後の世代においては、適合度の最も高い1個の出力データに対応する1個のフィルタを選択してもよい。
【0050】
続いて、選定部150は、ステップS1230において選択された1または複数のフィルタを次世代に残存させ、ステップS1230において選択されなかった出力データを生成したフィルタを削除する(S1240)。続いて、統合部160は、ステップS1260において得られたフィルタ内のフィルタ部品22を置き換えにより統合する(S1250)。例えば、統合部160は、連結されているn個の膨張・収縮フィルタを、n倍膨張・収縮フィルタに置き換えてもよい。また、例えば、ぼかしフィルタ、メディアンフィルタ、平均フィルタ、ヒストグラム伸張・圧縮フィルタ等がn個連結されている場合に、統合部160は、当該n個のフィルタをn倍の強度を行うフィルタに置き換えてもよい。こうすると、統合部160は、入力データに対して、同一のフィルタ部品22を同一または類似の効果をもたらす一のフィルタ部品22に置き換えてフィルタ部品22の数を減らすことができるので、演算コストが減少する。
【0051】
繰り返し処理部170は、以上の処理が第N世代(Nは2以上の整数、例えば数十または数百)まで実行されたかどうかを判定する(S1260)。以上の処理が第N世代まで実行されていない場合、分割部180は、少なくとも1つのフィルタにおける統合フィルタ部品を、2以上のフィルタ部品の組に分割する(S1270)。分割部180は、統合フィルタ部品を、合わせて統合フィルタ部品と同じ変換を行う2以上のフィルタ部品の組に分割してもよい。例えば、分割部180は、n倍の強度を有する、ぼかしフィルタ、メディアンフィルタ、平均フィルタ、ヒストグラム伸張・圧縮フィルタ等の統合フィルタ部品を、n=a+bとして、a倍およびb倍の強度を有する同じ変換を行うフィルタ部品の合成に置き換えてもよい。
【0052】
また、生成部120が複数のフィルタ20を交叉させることを目的として生成部120がフィルタ部品22を分割する場合に、生成部120は、分割部180に当該フィルタ部品22の分割を指示してもよい。これにより、分割部180は、生成部120が多様な遺伝子的な操作を行うのに適した分割をすることができる。
【0053】
以上の処理が第N世代まで実行された場合、遺伝的処理装置100は、当該フローを抜ける(S1260)。
【0054】
続いて、調整部190は、遺伝的処理装置100が当該フローを抜けたときに得られたフィルタ内のフィルタ部品のパラメータを調整する(S1280)。なお、ステップS1280は、当該フローを抜けたときに得られたフィルタを実応用するときに実行されてもよい。
【0055】
図13は、図12のステップS1230における遺伝的処理装置100の処理フローの一例を示す。遺伝的処理装置100は、図9に示されるステップS1230において、以下の処理を実行する。
【0056】
まず、適合度算出部140は、フィルタ格納部110に格納された複数のフィルタのそれぞれにより生成された複数の出力データのそれぞれについて、以下のステップS1320の処理を実行する(S1310、S1330)。ステップS1320において、適合度算出部140は、当該出力データと学習目標データとの適合度を算出する。適合度算出部140は、複数の出力データの全てについて処理を終えると、処理をステップS1340に進める(S1330)。
【0057】
続いて、選定部150は、複数の出力データのそれぞれの適合度に基づき、複数の出力データの中から学習用目標データにより近い出力データを選定する(S1340)。選定部150は、一例として、複数のフィルタにより変換された複数の出力データのうち、適合度がより高い出力データを優先的に選定してもよい。選定部150は、一例として、適合度が基準適合度より高い出力データを選定してもよい。また、選定部150は、一例として、適合度が上位から予め定められた範囲の出力データを選定してもよい。また、選定部150は、適合度がより高い出力データがより高い確率で選択されるように設定がされている条件下で、ランダムに出力データを選定してもよい。
【0058】
続いて、選定部150は、選定部150により選定された出力データを生成するフィルタを、学習用入力データを学習用目標データにより適合するデータに変換するフィルタとして選択する(S1350)。このステップS1350の処理を終えると、遺伝的処理装置100は、当該フローを終了する。
【0059】
図14は、本発明の実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びDVDドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
【0060】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0061】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、DVDドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。DVDドライブ2060は、DVD2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0062】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0063】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、DVD2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0064】
コンピュータ1900にインストールされ、コンピュータ1900を第1実施形態に係る遺伝的処理装置100として機能させるプログラムは、フィルタ格納モジュール、生成モジュール、学習用データ格納モジュール、適合度算出モジュール、選定モジュール、統合モジュール、繰り返し処理モジュール、分割モジュール、および調整モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、フィルタ格納部110、生成部120、学習用データ格納部130、適合度算出部140、選定部150、統合部160、繰り返し処理部170、分割部180、および調整部190としてそれぞれ機能させる。
【0065】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段であるフィルタ格納部110、生成部120、学習用データ格納部130、適合度算出部140、選定部150、統合部160、繰り返し処理部170、分割部180、および調整部190として機能する。そして、これらの具体的手段によって、第1実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の遺伝的処理装置100が構築される。
【0066】
一例では、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はDVD2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0067】
また、CPU2000は、ハードディスクドライブ2040、DVDドライブ2060(DVD2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0068】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0069】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0070】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、DVD2095の他に、CD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0071】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0072】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0073】
20 フィルタ、22 フィルタ部品、24 フィルタ部品群、100 遺伝的処理装置、110 フィルタ格納部、120 生成部、130 学習用データ格納部、140 適合度算出部、150 選定部、160 統合部、170 繰り返し処理部、180 分割部、190 調整部、810 フィルタ、812 フィルタ部品、814 フィルタ部品、816 フィルタ部品、818 フィルタ部品、820 遺伝子、910 フィルタ、912 フィルタ部品、914 フィルタ部品、916 フィルタ部品、920 フィルタ、1010 第1フィルタ、1012 フィルタ部品、1020 第2フィルタ、1110 フィルタ、1112 フィルタ部品、1114 フィルタ部品、1116 フィルタ部品 、1118 フィルタ部品、1120 フィルタ、1130 フィルタ、1900 コンピュータ、2000 CPU、2010 ROM、2020 RAM、2030 通信インターフェイス、2040 ハードディスクドライブ、2050 フレキシブルディスク・ドライブ、2060 DVDドライブ、2070 入出力チップ、2075 グラフィック・コントローラ、2080 表示装置、2082 ホスト・コントローラ、2084 入出力コントローラ、2090 フレキシブルディスク、2095 DVD

【特許請求の範囲】
【請求項1】
入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも1つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する生成部と、
前記新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する調整部と、
を備える遺伝的処理装置。
【請求項2】
前記生成部は、前記フィルタ群から遺伝的処理により前記新たなフィルタを生成して前記フィルタ群に加え、
前記フィルタ群に含まれるそれぞれのフィルタについて、学習用入力データから学習用目標データへの変換に対する適合度を算出する適合度算出部と、
それぞれの前記フィルタについての前記適合度に基づいて、前記フィルタ群に残す前記フィルタを選定する選定部と、
を備える請求項1に記載の遺伝的処理装置。
【請求項3】
前記生成部による前記新たなフィルタの生成、前記適合度算出部による適合度の算出、および前記選定部による次世代の前記フィルタ群に残す前記フィルタの選定を繰り返し処理させる繰り返し処理部を更に備える請求項2に記載の遺伝的処理装置。
【請求項4】
前記調整部は、前記少なくとも1つの新たなフィルタのうち、前記繰り返し処理部による繰り返し処理の結果得られた調整対象フィルタについて、前記フィルタ部品のパラメータを、遺伝的処理により調整する請求項3に記載の遺伝的処理装置。
【請求項5】
前記新たなフィルタが入出力間の接続により連結された同一の2以上のフィルタ部品を含む場合に、前記調整部は、当該2以上のフィルタ部品のうち一部のフィルタ部品のパラメータを固定として、他の一部のフィルタ部品のパラメータを調整する請求項2から4のいずれかに記載の遺伝的処理装置。
【請求項6】
前記新たなフィルタが入出力間の接続により連結された同一の2以上のフィルタ部品を含む場合に、前記調整部は、当該2以上のフィルタ部品のうち一のフィルタ部品以外のパラメータを固定として、前記一のフィルタ部品のパラメータを調整する請求項4に記載の遺伝的処理装置。
【請求項7】
前記選定部は、入出力間の接続により連結された同一の2以上のフィルタ部品を含む第1フィルタと、前記第1フィルタにおける当該2以上のフィルタ部品に対応する部分に前記第1フィルタと同一のフィルタ部品が異なる数連結されており、かつ他の部分は前記第1フィルタと同一構造の第2フィルタとが前記フィルタ群に含まれる場合に、前記第1フィルタおよび前記第2フィルタの一方を選定せずに削除する請求項2から6のいずれかに記載の遺伝的処理装置。
【請求項8】
入出力間の接続により連結された2以上のフィルタ部品を統合して、当該2以上のフィルタ部品による変換に相当する変換をする統合フィルタ部品に置き換える統合部を更に備え、
前記調整部は、前記統合部により統合された前記統合フィルタ部品のパラメータを調整する
請求項1から7のいずれかに記載の遺伝的処理装置。
【請求項9】
前記少なくとも1つのフィルタにおけるフィルタ部品を2以上のフィルタ部品に分割する分割部を更に備える請求項8に記載の遺伝的処理装置。
【請求項10】
前記分割部は、前記少なくとも1つのフィルタにおける前記統合フィルタ部品を、2以上のフィルタ部品の組に分割する請求項9に記載の遺伝的処理装置。
【請求項11】
前記分割部は、前記統合フィルタ部品を、合わせて前記統合フィルタ部品と同じ変換を行う前記2以上のフィルタ部品の組に分割する請求項10に記載の遺伝的処理装置。
【請求項12】
前記分割部は、前記少なくとも1つのフィルタにおける前記フィルタ部品を前記2以上のフィルタ部品に分割することにより、前記少なくとも1つのフィルタを2以上の部分フィルタに分割し、
前記生成部は、前記2以上の部分フィルタのうちの一部の部分フィルタを前記新たなフィルタの少なくとも一部とする請求項9から11のいずれかに記載の遺伝的処理装置。
【請求項13】
生成部によって、入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも1つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する段階と、
調整部によって、前記新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する段階と、
を備える遺伝的処理方法。
【請求項14】
遺伝的処理装置として、コンピュータを機能させるためのプログラムであって、
前記コンピュータを、
入力データを変換して出力データとして出力する複数のフィルタ部品を組み合わせた少なくとも1つのフィルタを含むフィルタ群から、遺伝的処理により新たなフィルタを生成する生成部と、
前記新たなフィルタに含まれるフィルタ部品のパラメータを、遺伝的処理により調整する調整部と、
して機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−257257(P2010−257257A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2009−107017(P2009−107017)
【出願日】平成21年4月24日(2009.4.24)
【出願人】(000004112)株式会社ニコン (12,601)