説明

データ処理装置、データ処理方法およびプログラム

【課題】進化的計算によって生成された変換器の修正を容易にする。
【解決手段】入力データを処理して処理結果を出力データとして出力する複数の処理部品を組み合わせて、与えられた学習用入力データを学習用目標データにより近いデータに変換する変換器を生成する生成部と、変換器に対して実入力データを入力して各処理部品の処理を実行させて、変換器の実出力データを求める処理部と、実出力データを修正するための修正指示を受けたことに応じて、変換器を修正する修正部と、を備えるデータ処理装置を提供する。

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

【0039】
式(1)において、fは、類似度を表わす。Ymaxは、輝度の最大値を表わす。
【0040】
また、xは、画像の水平方向のピクセル位置を示す変数である。yは、画像の垂直方向のピクセル位置を示す変数である。xmaxは、画像の水平方向のピクセル数を示す定数である。ymaxは、画像の垂直方向のピクセル数を示す定数である。
【0041】
Iweight(x,y)は、重み画像における(x,y)位置のピクセルの輝度値を表わす。Itarget(x,y)は、目標画像における(x,y)位置のピクセルの輝度値を表わす。Ifilter(x,y)は、出力画像における(x,y)位置のピクセルの輝度値を表わす。
【0042】
すなわち、式(1)の中カッコ内の分子部分に示されるように、変換器選択部124は、目標画像の輝度値から出力画像の輝度値の差の絶対値に対して重み画像の輝度値を乗じた重み付き差分値を、画面内の全てのピクセル毎に算出し、算出した重み付き差分値を全ピクセルについて合計した合計重み付け差分値を算出する。さらに、式(1)の中カッコ内の分母部分に示されるように、変換器選択部124は、重み画像の輝度値を全ピクセルについて合計した合計重みを算出する。さらに、変換器選択部124は、合計重み付け差分値を合計重みで除算した除算値(式(1)の中カッコ内)に、輝度値の最大値の逆数(1/Ymax)を乗じて正規化値(式(1)の2番目の項)を算出する。そして、変換器選択部124は、1から、正規化値を減じた値を、類似度fとして算出する。このようにして、変換器選択部124は、出力画像と目標画像との差分を領域毎に重み付けして類似度を算出することができる。
【0043】
図8は、データ処理装置100の処理フローを示す。データ処理装置100は、ステップS810〜ステップS860の各処理を、複数回(例えば複数世代)繰返して実行する(S810、S860)。なお、データ処理装置100は、与えられた学習用入力データを学習用目標データに変換するフィルタ列20を生成するための初期のフィルタ列20として、ランダムに生成したまたは既に生成したフィルタ列20を、予め変換器記憶部130に格納しておく。
【0044】
各世代において、まず、変換器生成部122は、前世代から残存した複数のフィルタ列20に対して、交叉操作および突然変異操作等の遺伝的な操作を行って、新たな複数のフィルタ列20を生成する(S820)。なお、変換器生成部122は、最初の世代においては、使用者等により予め生成された複数のフィルタ列20に対して遺伝的な操作を行って新たな複数のフィルタ列20を生成してもよい。
【0045】
続いて、変換器選択部124は、前世代から残存した複数のフィルタ列20およびステップS820で新たに生成された複数のフィルタ列20のそれぞれにより、学習用入力画像をフィルタ処理して出力画像を生成する(S830)。これにより、変換器選択部124は、複数のフィルタ列20に対応した複数の出力画像を生成する。
【0046】
続いて、変換器選択部124は、複数の出力画像のそれぞれと学習用目標画像との類似度を算出し、類似度がより高い出力画像に対応する複数のフィルタ列20を選択する(S840)。なお、変換器選択部124は、最後の世代においては、類似度の最も高い1個の出力画像に対応する1個のフィルタ列20を選択してもよい。
【0047】
続いて、変換器選択部124は、ステップS840において選択された1または複数のフィルタ列20を次世代に残存させ、ステップS840において選択されなかった出力画像を生成したフィルタ列20を削除する(S850)。データ処理装置100は、以上の処理を複数の世代(例えば数十世代または数百世代)繰返して実行し、第N世代(Nは2以上の整数)まで処理を実行した後に、当該フローを抜ける(S860)。このようにして、データ処理装置100は、学習用入力画像を学習用目標画像へ変換するのに適したフィルタ列20を、進化的計算を用いて生成することができる。
【0048】
続いて、処理部140は、ステップS810〜S860によって生成されたフィルタ列20を使用して、実応用におけるデータ変換を行う。処理部140は、例えば検査対象物を撮像した撮像画像等の実入力画像を変換して実出力画像を求める(S870)。編集部160は、ステップS810〜S860によって生成されたフィルタ列20を修正する修正指示をユーザから受け付ける(S880)。
【0049】
ステップS880において修正指示がない場合は、処理をS870に戻し、実応用におけるデータ変換を継続する。
【0050】
ステップS880において修正指示がある場合、修正部150は、当該修正指示に応じて、フィルタ列20に含まれるフィルタ部品22のフィルタパラメータを修正する(S890)。続いて、修正部150は、当該修正指示に応じて、フィルタ列20に含まれるフィルタ部品22の繰返し構造における繰返し回数を修正する(S892)。データ処理装置100は、ユーザからの指定に応じてフィルタパラメータおよび/またはフィルタ部品の繰返し回数を修正してもよい。
【0051】
修正部150は、実出力画像の修正がある場合には、ステップS870において求められた実出力画像を表示して、ユーザにより画像を修正させる(S894,S896)。実出力画像の修正がない場合は、データ処理装置100は、処理をS870に戻し、実応用におけるデータ変換を継続する。
【0052】
続いて、データ処理装置100は、実入力画像および修正された実出力画像を、それぞれ学習用入力画像および学習用目標画像として、ステップS810〜ステップS860の各処理を、再度複数回繰返す。その場合、生成部120は、現在の遺伝子(例、現在のフィルタ列20)を初期遺伝子として使用してもよい。
【0053】
ここで、フィルタパラメータを修正するステップと、フィルタ部品22の繰返し回数を修正するステップと、ユーザにより画像を修正させるステップと、フィルタ列20に対して再度遺伝子的な処理を繰返すステップとは、全てが実行される必要はなく、選択的に、かつ任意の順序で実行されてもよい。
【0054】
図9は、図8のステップS840におけるデータ処理装置100の処理フローの一例を示す。データ処理装置100は、図8に示されるステップS840において、以下の処理を実行する。
【0055】
まず、変換器選択部124は、変換器記憶部130に格納された複数のフィルタ列20のそれぞれにより生成された複数の出力画像のそれぞれ毎に、以下のステップS920の処理を実行する(S910、S930)。ステップS920において、変換器選択部124は、当該出力画像と学習用目標画像とを重み画像に応じた重み付けをした比較をし、当該出力画像と学習用目標画像との類似度を算出する。変換器選択部124は、複数の出力画像の全てについて処理を終えると、処理をステップS940に進める(S930)。
【0056】
続いて、変換器選択部124は、複数の出力画像のそれぞれの類似度に基づき、複数の出力画像の中から学習用目標画像により近い出力画像を選択する(S940)。変換器選択部124は、一例では、複数のフィルタ列20により変換された複数の出力画像のうち、類似度がより高い出力画像を優先的に選択する。変換器選択部124は、類似度が基準類似度より高い出力画像を選択してもよい。また、変換器選択部124は、類似度が上位から予め定められた範囲の出力画像を選択してもよい。また、変換器選択部124は、類似度がより高い出力画像がより高い確率で選択されるように設定がされている条件下で、ランダムに出力画像を選択してもよい。
【0057】
続いて、変換器選択部124は、変換器選択部124により選択された出力画像を生成するフィルタ列20を、学習用入力画像を学習用目標画像により類似する画像に変換するフィルタ列20として選択する(S950)。このステップS950の処理を終えると、データ処理装置100は、当該フローを終了する。
【0058】
図10は、本発明の実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びDVDドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
【0059】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0060】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、DVDドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。DVDドライブ2060は、DVD2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0061】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0062】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、DVD2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0063】
コンピュータ1900にインストールされ、コンピュータ1900を第1実施形態に係るデータ処理装置100として機能させるプログラムは、学習用データ記憶モジュール、生成モジュール、変換器記憶モジュール、処理モジュール、修正モジュール、編集モジュール、および追加モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、学習用データ記憶部110、生成部120、変換器記憶部130、処理部140、修正部150、編集部160、および追加部170としてそれぞれ機能させる。
【0064】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である学習用データ記憶部110、生成部120、変換器記憶部130、処理部140、修正部150、編集部160、および追加部170として機能する。そして、これらの具体的手段によって、第1実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のデータ処理装置100が構築される。
【0065】
一例では、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はDVD2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0066】
また、CPU2000は、ハードディスクドライブ2040、DVDドライブ2060(DVD2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0067】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0068】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0069】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、DVD2095の他に、CD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0070】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0071】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0072】
20 フィルタ列、22 フィルタ部品、24 フィルタ部品群、100 データ処理装置、110 学習用データ記憶部、120 生成部、122 変換器生成部、124 変換器選択部、130 変換器記憶部、140 処理部、150 修正部、160 編集部、170 追加部、1900 コンピュータ、2000 CPU、2010 ROM、2020 RAM、2030 通信インターフェイス、2040 ハードディスクドライブ、2050 フレキシブルディスク・ドライブ、2060 DVDドライブ、2070 入出力チップ、2075 グラフィック・コントローラ、2080 表示装置、2082 ホスト・コントローラ、2084 入出力コントローラ、2090 フレキシブルディスク、2095 DVD

【特許請求の範囲】
【請求項1】
入力データを処理して処理結果を出力データとして出力する複数の処理部品を組み合わせて、与えられた学習用入力データを学習用目標データにより近いデータに変換する変換器を生成する生成部と、
前記変換器に対して実入力データを入力して前記変換器に含まれる前記複数の処理部品のそれぞれの処理を実行させて、前記変換器の実出力データを求める処理部と、
前記実出力データを修正するための修正指示を受けたことに応じて、前記変換器を修正する修正部と、
を備えるデータ処理装置。
【請求項2】
前記生成部は、入力画像を出力画像にそれぞれ変換する複数のフィルタ部品を組み合わせて、与えられた学習用入力画像を学習用目標画像により近い画像に変換するフィルタ列を生成し、
前記処理部は、前記フィルタ列に対して実入力画像を入力して前記フィルタ列に含まれる前記複数のフィルタ部品のそれぞれにより変換させて、前記フィルタ列の実出力画像を求め、
前記修正部は、前記修正指示を受けたことに応じて、前記フィルタ列を修正する
請求項1に記載のデータ処理装置。
【請求項3】
前記修正部は、前記修正指示を受けたことに応じて、前記フィルタ列に含まれる前記複数のフィルタ部品のうち指定されたフィルタ部品のフィルタパラメータを修正する請求項2に記載のデータ処理装置。
【請求項4】
前記修正部は、前記修正指示を受けたことに応じて、前記フィルタ列に含まれる前記複数のフィルタ部品のうち2以上のフィルタ部品の繰返し構造における繰返し回数を修正する請求項2または3に記載のデータ処理装置。
【請求項5】
前記学習用入力画像および前記学習用目標画像の組を記憶する記憶部と、
前記実出力画像が修正されたことに応じて、前記実入力画像および修正された前記実出力画像の組を新たな前記学習用入力画像および新たな前記学習用目標画像の組として前記記憶部に追加する追加部を更に備え、
前記生成部は、前記複数の処理部品を組み合わせて、前記記憶部に記憶されたそれぞれの前記学習用入力画像を、対応する前記学習用目標画像により近い画像に変換する前記フィルタ列を再生成し、
前記処理部は、再生成した前記フィルタ列に対して新たな実入力画像を入力して再生成した前記フィルタ列に含まれる前記複数のフィルタ部品のそれぞれの処理を実行させて、再生成した前記フィルタ列の実出力画像を求める
請求項2から4のいずれかに記載のデータ処理装置。
【請求項6】
前記生成部は、
修正対象となった前記実出力画像を出力した前記フィルタ列を有するフィルタ列群に対し、前記フィルタ列群が有する前記フィルタ列に含まれる前記複数のフィルタ部品のうち少なくとも一部のフィルタ部品を少なくとも1つの他のフィルタ部品に置換して生成した新たな前記フィルタ列を加えるフィルタ生成部と、
前記フィルタ列群が有する前記フィルタ列のうち、元の前記学習用入力画像および前記新たな学習用入力画像を元の前記学習用目標画像および前記新たな学習用目標画像により近い画像にそれぞれ変換する前記フィルタ列を選択するフィルタ選択部と、
を有する請求項5に記載のデータ処理装置。
【請求項7】
生成部によって、入力データを処理して処理結果を出力データとして出力する複数の処理部品を組み合わせて、与えられた学習用入力データを学習用目標データにより近いデータに変換する変換器を生成する段階と、
処理部によって、前記変換器に対して実入力データを入力して前記変換器に含まれる前記複数の処理部品のそれぞれの処理を実行させて、前記変換器の実出力データを求める段階と、
修正部によって、前記実出力データを修正するための修正指示を受けたことに応じて、前記変換器を修正する段階と、
を備えるデータ処理方法。
【請求項8】
データ処理装置として、コンピュータを機能させるためのプログラムであって、
前記コンピュータを、
入力データを処理して処理結果を出力データとして出力する複数の処理部品を組み合わせて、与えられた学習用入力データを学習用目標データにより近いデータに変換する変換器を生成する生成部と、
前記変換器に対して実入力データを入力して前記変換器に含まれる前記複数の処理部品のそれぞれの処理を実行させて、前記変換器の実出力データを求める処理部と、
前記実出力データを修正するための修正指示を受けたことに応じて、前記変換器を修正する修正部と、
して機能させるプログラム。

【図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


【公開番号】特開2010−244446(P2010−244446A)
【公開日】平成22年10月28日(2010.10.28)
【国際特許分類】
【出願番号】特願2009−94537(P2009−94537)
【出願日】平成21年4月9日(2009.4.9)
【出願人】(000004112)株式会社ニコン (12,601)
【Fターム(参考)】