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