JPWO2015194006A1 - プログラム生成装置、プログラム生成方法およびプログラム - Google Patents

プログラム生成装置、プログラム生成方法およびプログラム Download PDF

Info

Publication number
JPWO2015194006A1
JPWO2015194006A1 JP2016528725A JP2016528725A JPWO2015194006A1 JP WO2015194006 A1 JPWO2015194006 A1 JP WO2015194006A1 JP 2016528725 A JP2016528725 A JP 2016528725A JP 2016528725 A JP2016528725 A JP 2016528725A JP WO2015194006 A1 JPWO2015194006 A1 JP WO2015194006A1
Authority
JP
Japan
Prior art keywords
program
partial
image
filter
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016528725A
Other languages
English (en)
Other versions
JP6344471B2 (ja
Inventor
毅 長門
毅 長門
哲男 肥塚
哲男 肥塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2015194006A1 publication Critical patent/JPWO2015194006A1/ja
Application granted granted Critical
Publication of JP6344471B2 publication Critical patent/JP6344471B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2111Selection of the most significant subset of features by using evolutionary computational techniques, e.g. genetic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/771Feature selection, e.g. selecting representative features from a multi-dimensional feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Physiology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

画像処理プログラムの生成時間を短縮する。設定部(11)は、学習データ(30)内の少なくとも入力画像(31)から得られる特徴量と、複数の部分プログラムのうちのパラメータ可変プログラムに対して選択的に設定可能な複数のパラメータとの関係に基づいて、複数のパラメータのそれぞれに対応する選択確率を設定する。選択処理部(12)は、個体(41)を突然変異によって進化させる際に、突然変異対象の位置に新たに組み込む部分プログラムとしてパラメータ可変プログラムを選択した場合、複数のパラメータの中から各パラメータに対応する選択確率にしたがってパラメータを1つ選択し、このパラメータを設定したパラメータ可変プログラムを個体(41)に組み込む。

Description

本発明は、プログラム生成装置、プログラム生成方法およびプログラムに関する。
所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術が注目されている。この技術は、入力画像と処理結果の画像(目標画像)とを用いて、画像処理のための部分プログラム(例えば、画像フィルタのプログラム)を組み合わせて生成される画像処理プログラムを、遺伝的プログラミングによって最適化していくものである。
遺伝的プログラミングを利用した装置の例として、使用者が、処理対象画像の一部の領域を指定するとともに、指定された領域に使用者所望の画像処理が施された目標画像を作成するだけで、所望の処理結果が得られる画像処理手順が生成される画像処理装置が提案されている。
特開2009−151371号公報
青木紳也、長尾智晴、「木構造画像変換の自動構築法ACTIT」、情報メディア学会誌Vol.53,No.6、1999年6月20日、p.890−892
遺伝的プログラミングによって画像処理プログラムを自動生成する処理では、プログラム生成処理に要する時間が長いという問題がある。例えば、上記処理では、選択し得る部分プログラムがあらかじめ多数用意されているほど、目的とする処理に近い高品質な画像処理を実現できる可能性が高まるが、その反面、適切な部分プログラムの組み合わせが探索されるまでの時間が長くなる可能性も高まる。
1つの側面では、本発明は、画像処理プログラムの生成時間を短縮可能なプログラム生成装置、プログラム生成方法およびプログラムを提供することを目的とする。
1つの案では、複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラム生成装置が提供される。このプログラム生成装置は、次のような設定部および選択処理部を有する。
設定部は、学習データに含まれる情報のうち少なくとも入力画像から得られる特徴量と、複数の部分プログラムのうちのパラメータ可変プログラムに対して選択的に設定可能な複数のパラメータとの関係に基づいて、複数のパラメータのそれぞれに対応する選択確率を設定する。選択処理部は、複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、個体の突然変異対象の位置に新たに組み込む部分プログラムとしてパラメータ可変プログラムを選択した場合、複数のパラメータの中から各パラメータに対応する選択確率にしたがってパラメータを1つ選択し、このパラメータを設定したパラメータ可変プログラムを個体に組み込む。
また、1つの案では、上記のプログラム生成装置と同様の処理が実行されるプログラム生成方法が提供される。さらに、1つの案では、上記のプログラム生成装置と同様の処理をコンピュータに実行させるプログラムが提供される。
また、1つの案では、複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラム生成装置が提供される。このプログラム生成装置は、次のような設定部および選択処理部を有する。
設定部は、複数の部分プログラムを分類して生成された複数のグループのうち、部分プログラムが複数含まれるグループについて、このグループに含まれる各部分プログラムと、学習データに含まれる情報のうち少なくとも入力画像から得られる特徴量との関係に基づいて、このグループに含まれる部分プログラムのそれぞれに対応する選択確率を設定する。選択処理部は、複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、複数のグループの中からグループを1つ選択し、このグループに部分プログラムが複数含まれる場合、このグループに含まれる部分プログラムの中から各部分プログラムに対応する選択確率にしたがって部分プログラムを1つ選択し、この部分プログラムを個体の突然変異対象の位置に組み込む。
また、1つの案では、上記のプログラム生成装置と同様の処理が実行されるプログラム生成方法が提供される。さらに、1つの案では、上記のプログラム生成装置と同様の処理をコンピュータに実行させるプログラムが提供される。
1つの側面では、画像処理プログラムの生成時間を短縮できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
実施の形態1−1に係るプログラム生成装置の構成例および処理例を示す図である。 画像処理プログラムの生成処理手順の参考例を示す図である。 交叉の例を示す図である。 突然変異の例を示す図である。 画像処理装置のハードウェア構成例を示す図である。 画像処理装置が備える処理機能の構成例を示すブロック図である。 フィルタセットデータベースに登録される情報の例を示す図である。 フィルタ特性データベースに格納される情報の例を示す図である。 プログラム生成処理全体の手順の例を示すフローチャートである。 画像フィルタの選択処理手順の例を示すフローチャートである。 ガウシアンフィルタに関する特性情報の例を示す図である。 入力画像と目標画像に基づく透過率の算出方法の例を示す図である。 透過率の比較に基づく選択確率の算出方法の例を示す図である。 ガウシアンフィルタのパラメータに対する選択確率の設定処理例を示すフローチャートである。 輝度ヒストグラムと選択確率の設定例を示す図である。 閾値処理フィルタのパラメータに対する選択確率の設定処理例を示すフローチャートである。 ソーベルフィルタのパラメータに対する選択確率の設定処理例を示すフローチャートである。 入力画像の特定領域を抽出する処理の例を示す図である。 目標画像に基づいてマスクパターンを決定する処理例を示す図である。 マスク処理フィルタのパラメータの設定処理例を示すフローチャートである。 実施の形態2−1に係るプログラム生成装置の構成例および処理例を示す図である。 実施の形態2−2においてフィルタセットデータベースに登録される情報の例を示す図である。 画像フィルタのグループ分けの例を示す図である。 実施の形態2−2においてフィルタ特性データベースに格納される情報の例を示す図である。 プログラム生成処理全体の手順の例を示すフローチャートである。 画像フィルタの選択処理手順の例を示すフローチャートである。 周波数処理グループに含まれる各画像フィルタに対する選択確率の設定処理例を示すフローチャートである。 閾値処理グループに含まれる各画像フィルタに対する選択確率の設定処理例を示すフローチャートである。 微分処理グループに含まれる各画像フィルタに対する選択確率の設定処理例を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して説明する。
〔実施の形態1−1〕
図1は、実施の形態1−1に係るプログラム生成装置の構成例および処理例を示す図である。プログラム生成装置10は、遺伝的プログラミングによって画像処理プログラムを生成する。
プログラム生成装置10の図示しない記憶装置には、それぞれが画像処理を実行するための複数の部分プログラム21,22,23,・・・があらかじめ記憶される。部分プログラムは、例えば、画像フィルタである。プログラム生成装置10によって生成される画像処理プログラムは、あらかじめ記憶された複数の部分プログラム21,22,23,・・・の中から選択された部分プログラムが、複数組み合わされることで実現される。プログラム生成装置10は、画像処理プログラムに含めるべき部分プログラムの最適な組み合わせを、学習データ30を用いて遺伝的プログラミングによって決定する。
学習データ30には、入力画像31と、この入力画像に目的とする画像処理を施した場合の目標画像32とのペアが含まれる。学習データ30も、プログラム生成装置10が備える図示しない記憶装置に記憶される。なお、図1では入力画像31と目標画像32のペアが1組用いられるものとするが、このようなペアが複数組用いられてもよい。
また、あらかじめ記憶された複数の部分プログラム21,22,23,・・・のうちの少なくとも1つは、パラメータを設定可能となっている。図1では例として、部分プログラム21が、パラメータを設定可能な“パラメータ可変プログラム”であるものとする。パラメータ可変プログラムに設定可能なパラメータは、離散的な値としてあらかじめ用意され、これらの複数のパラメータの中から選択されたパラメータが、パラメータ可変プログラムに設定される。図1の例では、部分プログラム21に対してパラメータ#1,#2,#3が設定可能になっている。
プログラム生成装置10は、設定部11および選択処理部12を有する。設定部11および選択処理部12の処理は、例えば、プログラム生成装置10が備える図示しないプロセッサが所定のプログラムを実行することで実現される。
設定部11は、パラメータ可変プログラム(部分プログラム21)に対して選択的に設定可能な複数のパラメータのそれぞれに対応する選択確率を設定する。設定部11は、各パラメータに対応する選択確率を、学習データ30に含まれる情報のうち少なくとも入力画像31から得られる特徴量と、各パラメータとの関係に基づいて設定する(ステップS1)。なお、特徴量は、入力画像31と、これに対応する目標画像32とから算出されてもよい。
設定部11による設定処理により、各パラメータに対して、そのパラメータをパラメータ可変プログラムに設定した場合に実現される処理の有効性が高いほど、高い選択確率が設定される。有効性が高いとは、そのパラメータをパラメータ可変プログラムに設定した場合に実現される処理内容が、目的とする処理内容に近く、学習に対する寄与度が高いことを示す。すなわち、有効性が高いパラメータが設定されたパラメータ可変プログラムが、学習過程で個体に組み込まれることで、個体から算出される適応度が高くなる可能性が高まり、その結果、適応度が高い値に収束しやすくなって、学習が促進される。
選択処理部12は、遺伝的プログラミングによる学習処理中において、個体のノードに組む込む部分プログラムを、複数の部分プログラム21,22,23,・・・の中から選択する。個体とは、複数の部分プログラム21,22,23,・・・の中から選択された部分プログラムを、複数組み合わせて生成される。個体は、例えば木構造を有し、木構造内の各ノードに部分プログラムが割り当てられる。
選択処理部12は、個体のノードに組み込む部分プログラムとしてパラメータ可変プログラムを選択した場合には、選択したパラメータ可変プログラムに設定するパラメータを、設定可能なパラメータに対応付けられた選択確率にしたがって選択する。そして、選択したパラメータをパラメータ可変プログラムに設定し、設定済みのパラメータ可変プログラムを該当ノードに組み込む。
パラメータ可変プログラムに設定するパラメータを選択確率にしたがって選択することにより、学習データ30を用いた画像処理に対する有効性が高いと推定されるパラメータほど、パラメータ可変プログラムに設定されやすくなる。これにより、適応度の高い個体が生成されやすくなって、学習が促進され、その結果、画像処理プログラムの生成に要する時間が短縮される可能性が高まる。
ここで、個体のノードに部分プログラムを組み込むケースとしては、個体に突然変異を発生させる際に、突然変異の対象のノードに組み込まれていた部分プログラムの代わりに新たな部分プログラムを組み込むケースがある。以下、例として、図1に示す個体41に含まれる部分プログラムP1〜P4のうち、部分プログラムP2に対して突然変異を発生させて(ステップS2)個体41を進化させるケースについて説明する。
選択処理部12は、複数の部分プログラム21,22,23,・・・の中から、部分プログラムP2の代わりに個体41に組み込む部分プログラムを、例えばランダムに選択する。ここで、個体41に組み込む部分プログラムとして、パラメータ可変プログラムである部分プログラム21を選択した場合(ステップS3)、選択処理部12は、部分プログラム21に設定可能なパラメータ#1〜#3の中から、対応する選択確率にしたがってパラメータを1つ選択する(ステップS4)。選択処理部12は、選択したパラメータを、選択した部分プログラム21に設定し、パラメータが設定された部分プログラム21を、部分プログラムP2の代わりに個体41に組み込む(ステップS5)。
このような選択処理部12の処理により、学習データ30を用いた画像処理に対する有効性が高いと推定されるパラメータほど、パラメータ可変プログラムに設定されやすくなる。これにより、学習が促進され、画像処理プログラムの生成に要する時間が短縮される可能性が高まる。
また、パラメータ可変プログラムに設定可能なパラメータの数が多いほど、目的とする処理に近い高品質な画像処理プログラムが生成される可能性が高まる反面、プログラム生成処理に要する時間が長くなる可能性も高まる。上記の選択処理部12の処理により、パラメータ可変プログラムに設定可能なパラメータの数を多くした場合でも、その中から有効なパラメータが実際に設定される可能性が高くなる。このため、プログラム処理時間が増大する可能性が抑制される。したがって、高品質な画像処理プログラムを短時間で生成できる可能性が高められる。
なお、個体のノードに部分プログラムを組み込む他のケースとしては、初期個体を生成する際に、初期個体の各ノードに、複数の部分プログラム21,22,23,・・・の中から選択した部分プログラムを組み込むケースがある。このケースでも、選択処理部12は、上記のステップS3〜S5と同様の手順で、各ノードに組み込む部分プログラムを選択することができる。このケースでも、上記の突然変異の場合と同様に、学習が促進され、画像処理プログラムの生成に要する時間が短縮される可能性が高まる。
〔実施の形態1−2〕
次に、実施の形態1−2に係る画像処理装置について説明する。実施の形態1−2に係る画像処理装置は、図1に示したプログラム生成装置10と同様の処理機能と、この処理機能によって生成された画像処理プログラムを実行して画像処理を行う機能とを備える。
以下の説明では、まず、図2〜図4を用いて、遺伝的プログラミングによる画像処理プログラムの生成処理の基本的な手順を示す参考例について説明し、その後に、実施の形態1−2の画像処理装置について説明する。
図2は、画像処理プログラムの生成処理手順の参考例を示す図である。
画像処理プログラムの生成処理の前に、1つ以上の学習データ50が用意される。学習データ50には、入力画像51と、入力画像51に対して画像処理を施したときの目標画像52とが含まれる。入力画像51は、例えば、カメラによって被写体を撮像することによって得られる。
遺伝的プログラミングによる画像処理プログラムの生成処理では、個体は、1つ以上の部分プログラムを組み合わせて構成される。例えば、図2の左上に示すように、個体は木構造で定義される。
個体に組み込むことが可能な複数の部分プログラムも、あらかじめ用意される。以下、個体に組み込まれる部分プログラムの例として、画像フィルタを想定するが、部分プログラムは画像フィルタに限るものではなく、他の種類の画像処理を行うプログラムを用いることもできる。なお、図2の左上において、“F”は画像フィルタを示し、“I”は入力端子を示し、“O”は出力端子を示す。
遺伝的プログラミングによる画像処理プログラムの生成処理は、例えば、次のように実行される。まず、複数の初期個体による個体群61が生成される(ステップS11)。各初期個体のノードには、あらかじめ用意された複数の画像フィルタの中から画像フィルタがランダムに選択されて組み込まれる。次に、生成された個体群61の中から、ランダムに2つの親個体が取り出される(ステップS12)。
次に、これら2つの親個体に対して進化過程の処理が施されることで、2つ以上の子個体が生成される(ステップS13)。進化過程では、2つの親個体に対して交叉処理および突然変異処理が行われる。2つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、3つ以上の子個体が生成されてもよい。
次に、進化過程を経て生成された子個体、および元の親個体のそれぞれについて、適応度が計算される(ステップS14)。この処理では、対象の個体それぞれを用いた画像処理が、学習データ50の各入力画像51に対して実行され、実行後の画像と対応する目標画像52とが比較されることで適応度が計算される。複数の学習データ50が存在する場合、個体それぞれについて、複数の学習データ50を用いて得られた適応度の平均値が算出される。
ここで、いずれかの個体の適応度が所定の閾値以上であった場合には、その個体が最終的な画像処理プログラムとして出力され、プログラム生成処理が終了する。一方、すべての個体の適応度が所定の閾値未満であった場合には、生成された各子個体および元の2つの親個体を含む個体群62の中から、生存選択が行われる(ステップS15)。この生存選択では、個体群62の中から、算出された適応度が最大の個体が選択される。さらに、個体群62内の残りの個体の中から、所定の方法で個体が1つ選択される。例えば、残りの個体の中から、適応度に応じた確率で個体が選択される。
このような生存選択によって選択された2つの個体は、個体群61に含まれる個体のうち、親個体として取り出された2つの個体と入れ替えられる(ステップS16)。これにより、個体群61に含まれる個体が次世代の個体へ変更される。そして、適応度が所定の閾値以上となる個体が出現するまで、同様の処理が繰り返される。
図3は、交叉の例を示す図である。図3では、親個体71aと親個体72aとの間で交叉が行われ、親個体71aに基づく子個体71bと、親個体72aに基づく子個体72bとが生成される場合の例を示す。
親個体71aは、画像フィルタF1,F2,F3,F4を含み、親個体72aは、画像フィルタF2,F3,F5,F6を含む。ここで、親個体71aにおける画像フィルタF2のノードと、親個体72aにおける画像フィルタF5のノードが、交叉を行う箇所として選択されたものとする。
交叉の処理では、例えば、選択されたノードだけでなく、そのノードより下位階層のノードも交叉の対象となる。このため、図3の例では、親個体71aにおける“画像フィルタF2,F1、画像フィルタF2の一方に接続された入力端子のノード、画像フィルタF1に接続された入力端子のノード”と、親個体72aにおける“画像フィルタF5、画像フィルタF5に接続された入力端子のノード”とが入れ替えられる。このような交叉により、画像フィルタF3,F4,F5を含む子個体71bと、画像フィルタF1,F2,F4をそれぞれ1つ含み、画像フィルタF3を2つ含む子個体72bとが生成される。
図4は、突然変異の例を示す図である。図4において、個体73aは、画像フィルタF3,F4,F5を含む。この個体73aは、例えば、個体群61から取り出された親個体であってもよいし、または、個体群61から親個体として取り出された後、交叉が行われた個体であってもよい。
ここで、個体73aにおける画像フィルタF3のノードが突然変異を行う箇所として選択されるとともに、突然変異による置き換え後の画像フィルタとして画像フィルタF7が選択されたものとする。なお、突然変異による置き換え後の画像フィルタは、あらかじめ用意された複数の画像フィルタの中からランダムに選択される。このような突然変異により、画像フィルタF4,F5,F7を含む子個体73bが生成される。
ところで、上記の手順により生成される画像処理プログラムの用途の例としては、FA(Factory Automation)分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、欠陥が生じた箇所を抽出する、位置合わせを行う箇所を抽出するといった用途が考えられる。
このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像処理アルゴリズムの再構築の必要が生じる場合がある。このため、画像処理アルゴリズムの構築の容易性が求められている。また、照明条件の変化や被写体の形状、位置姿勢のバラツキ等の撮像環境の変化に対するロバスト性が高い画像処理アルゴリズムを構築することが求められている。
遺伝的プログラミングを利用することで、入力画像51とこれに対応する目標画像52とをあらかじめ用意しておくだけで、このような用途で使用可能な画像処理プログラムを容易に生成することができる。また、それぞれ撮像環境が異なる入力画像51と目標画像52のペア(学習データ50)を複数用意しておくことで、撮像環境の変化に対するロバスト性が高い画像処理アルゴリズムを自動生成することもできる。
また、遺伝的プログラミングによる画像処理プログラムの生成処理では、選択し得る画像フィルタが多く用意されているほど、目的とする処理に近い高品質な画像処理を実現できる可能性が高まる。例えば、同じ種類の画像処理を実現し、かつ、設定されたパラメータが異なる複数の画像フィルタが用意されているとする。そして、ある画像処理を実現する場合に最適なパラメータは“8”であるが、パラメータ“8”が設定された画像フィルタが用意されていないとする。この場合、目的とする処理を精度よく実現できない可能性がある。また、“8”以外のパラメータが設定された同種の画像フィルタが複数重ねがけされることで、ある程度の精度の処理が実現される可能性もあるが、この場合には木構造のノード数が多くなる可能性が高く、その分だけ学習が終了するまでの時間も長くなる可能性が高い。
このように、選択し得る画像フィルタが多く用意されているほど、高品質な画像処理を実現できる可能性が高まる。その反面、適切な画像フィルタの組み合わせが探索されるまでの時間が長くなり、その結果、プログラム生成処理に要する時間が長くなる可能性が高まる。
処理時間が長くなる要因としては、初期個体の生成時や画像フィルタの進化過程で、画像フィルタがランダムに選択されることが考えられる。画像フィルタがランダムに選択されると、所望の画像処理を実現するために適切ではない画像フィルタが選択される可能性がある。
例えば、初期個体群の中から、適切でない画像フィルタを含む個体が親個体として選択された場合、選択された親個体、およびこの親個体に基づく子個体からそれぞれ算出される適応度は、低い値となる可能性が高い。また、進化過程において適切でない画像フィルタを含む子個体が生成された場合にも、その子個体から算出される適応度は低い値となる可能性が高い。したがって、適切でない画像フィルタを含む個体が多く生成されるほど、プログラム生成処理の過程で適応度の増加に寄与しない無駄な処理が実行される可能性が高くなり、学習の進行が遅くなる可能性が高くなる。
そこで、実施の形態1−2では、参考例として示した上記のプログラム生成処理に対して、次のような工夫が施される。まず、プログラム生成処理に利用する画像フィルタとして、プログラム生成処理の過程で選択される際にパラメータを設定可能な画像フィルタが用意される。以下、このような画像フィルタを、“パラメータ可変フィルタ”と呼ぶ場合がある。
パラメータ可変フィルタが用意されることで、同種の画像フィルタが1つだけ用意されているにもかかわらず、設定されたパラメータの異なる複数の処理が実行される画像フィルタが、初期個体の生成時や進化過程で選択可能となる。これにより、高品質な画像処理が実現しやすくなる。
これに加えて、パラメータ可変フィルタのそれぞれに対して設定可能なパラメータごとに、目的とする画像処理に対する有効性に応じた選択確率が設定される。そして、初期個体の生成時や進化過程において、設定された選択確率が高いパラメータほど選択されやすくする。これにより、設定可能なパラメータ数を多くした場合でも、該当するパラメータ可変フィルタが選択された際に、有効性の高いパラメータが設定される可能性が高まり、プログラム生成処理に要する時間が増大する可能性が低減される。
以下、実施の形態1−2に係る画像処理装置の詳細について説明する。
図5は、画像処理装置のハードウェア構成例を示す図である。画像処理装置100は、例えば、図5に示すようなコンピュータとして実現される。
画像処理装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ101には、バス109を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、画像処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、読み取り装置106、ネットワークインタフェース107および通信インタフェース108がある。
HDD103は、画像処理装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像を表示装置104aの画面に表示させる。表示装置としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
ネットワークインタフェース107は、ネットワーク107aを介して他の装置との間でデータの送受信を行う。
通信インタフェース108は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース108には、外部デバイスとしてカメラ108aが接続されており、通信インタフェース108は、カメラ108aから送信された画像データをプロセッサに送信する。
以上のようなハードウェア構成によって、画像処理装置100の処理機能を実現することができる。
図6は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置100は、画像取得部111、プログラム生成部112、画像処理部113、プログラム記憶部130、フィルタセット記憶部140および学習データ記憶部150を有する。
画像取得部111およびプログラム生成部112の処理は、例えば、画像処理装置100のプロセッサ101が所定のプログラムを実行することで実現される。プログラム記憶部130、フィルタセット記憶部140および学習データ記憶部150は、例えば、画像処理装置100のHDD103の記憶領域として実現される。
画像取得部111は、撮像された画像のデータをカメラ108aから取得し、プログラム生成部112または画像処理部113に出力する。
プログラム生成部112は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部130に保存する。
画像処理部113の処理は、プログラム記憶部130に保存された画像処理プログラムを、画像処理装置100のプロセッサ101が実行することで実現される。画像処理部113は、カメラ108aによって撮像された画像のデータを画像取得部111を介して取得し、取得した画像のデータに対して画像処理を施す。処理後の画像は、例えば表示装置104aに表示される。
フィルタセット記憶部140は、学習処理部122によって選択可能な画像フィルタのプログラムを、複数記憶する。フィルタセット記憶部140に記憶された画像フィルタの少なくとも一部は、プログラム生成処理の過程で選択される際にパラメータを設定可能なパラメータ可変フィルタである。また、フィルタセット記憶部140は、パラメータ可変フィルタについて、各パラメータに対して設定された選択確率を記憶する。
さらに、フィルタセット記憶部140には、パラメータ可変フィルタの一部について、その特性を示す情報が記憶される。この情報は、対応するパラメータ可変フィルタの各パラメータに対する選択確率を算出する際に参照される。
学習データ記憶部150は、それぞれ入力画像および目標画像の各データを含む学習データを、1つ以上記憶する。学習データに含まれる入力画像は、例えば、画像処理装置100に接続されたカメラ108aによって撮像された画像であってもよい。
プログラム生成部112は、初期設定部121および学習処理部122を有する。なお、初期設定部121は、図1に示した設定部11の一例である。また、学習処理部122は、図1に示した選択処理部12の一例である。
初期設定部121は、プログラム生成処理の実行のための初期設定処理を行う。例えば、初期設定部121は、パラメータ可変フィルタのそれぞれについて、パラメータごとに選択確率を算出し、算出した選択確率をパラメータに対応付けてフィルタセット記憶部140に設定する。また、初期設定部121は、フィルタセット記憶部140に記憶された一部の画像フィルタについて、学習データに基づいて、設定すべきパラメータを決定する。
学習処理部122は、初期設定部121によって初期設定された画像フィルタと、学習データ記憶部150に記憶された学習データとを用いて、遺伝的プログラミングによって画像処理プログラムを生成する。このプログラム生成処理過程において、学習処理部122は、初期個体のノードにパラメータ可変フィルタを選択した際には、設定可能な各パラメータに対応付けられた選択確率にしたがって、設定するパラメータを選択する。また、学習処理部122は、突然変異における置き換え先の画像フィルタとして、パラメータ可変フィルタを選択した際には、設定可能な各パラメータに対応付けられた選択確率にしたがって、設定するパラメータを選択する。
次に、フィルタセット記憶部140に格納される情報の例について説明する。フィルタセット記憶部140には、フィルタセットデータベースとフィルタ特性データベースとが格納される。
図7は、フィルタセットデータベースに登録される情報の例を示す図である。
フィルタセットデータベース141には、画像処理プログラムに組み込むことが可能な画像フィルタごとに、レコードが登録されている。各レコードには、対応する画像フィルタを識別するためのフィルタIDが登録されている。図7の例では、「フィルタ#1」はフィルタID“1”の画像フィルタを示す。レコードのそれぞれは、1つの画像フィルタプログラムのプログラムコードに対応付けられている。なお、対応するプログラムコードは、例えば、フィルタセット記憶部140に格納されている。
フィルタセットデータベース141の各レコードには、属性情報が登録される。属性情報は、該当する画像フィルタが、“パラメータ可変フィルタ”、“パラメータ未定フィルタ”、“通常フィルタ”のいずれであるかを示す情報である。パラメータ未定フィルタとは、初期状態では必要なパラメータが設定されていない画像フィルタを指す。パラメータ未定フィルタに対しては、プログラム生成処理が実行されるたびに、その処理内の初期設定工程において、初期設定部121によって学習データに基づいてパラメータが設定される。本実施の形態では、パラメータ未定フィルタとして、マスク処理フィルタが登録される。通常フィルタとは、パラメータ可変フィルタおよびパラメータ未定フィルタ以外の画像フィルタを指す。
さらに、フィルタセットデータベース141のレコードのうち、パラメータ可変フィルタに対応するレコードには、複数のパラメータ情報と、各パラメータ情報に対応する選択確率とが登録される。パラメータ情報には、対応するパラメータ可変フィルタに設定可能なパラメータの値が登録される。例えば、パラメータ可変フィルタに対して2種類のパラメータを設定可能である場合、パラメータ情報には、2種類のパラメータの数値の組み合わせが登録される。パラメータ情報は、該当レコードに対してあらかじめ登録される。
なお、プログラム生成処理の過程において、個体に組み込む画像フィルタとしてパラメータ可変フィルタが選択された場合、さらに、そのパラメータ可変フィルタに設定するパラメータが選択される。このため、フィルタセットデータベース141において、パラメータ可変フィルタに対応付けて登録されたパラメータ情報が多いほど、実質的に多くの数の画像フィルタを個体に組み込むことができるようになり、実現される画像処理手順の数が多くなる。その結果、目的とする処理に近い高品質な画像処理を実現できる可能性が高くなる。
上記のように後からパラメータを設定可能なパラメータ可変フィルタを用いた場合、設定可能なパラメータのバリエーションの数に関係なく、フィルタセット記憶部140にあらかじめ記憶しておくべきパラメータ可変フィルタのプログラムコードは1セットだけで済む。したがって、高品質な画像処理を実現できる可能性を高めつつ、フィルタセット記憶部140の記憶容量を低減できる。
選択確率は、初期個体のノードまたは突然変異の対象ノードに対して対応するパラメータ可変フィルタが選択された際に、選択されたパラメータ可変フィルタに対して該当パラメータが選択される確率を示す。選択確率は、プログラム生成処理が実行されるたびに、その初期設定工程において初期設定部121によって設定される。
ここで、パラメータ可変フィルタとしては、例えば、ローパスフィルタ、ハイパスフィルタ、バンドパスフィルタ、微分フィルタ、閾値処理フィルタなどがある。ローパスフィルタ(平滑化フィルタ)の例としては、ガウシアン(Gaussian)フィルタがある。微分フィルタの例としては、ソーベル(Sobel)フィルタ、ラプラス(Laplace)フィルタ、プレウィット(Prewitt)フィルタがある。
各パラメータ可変フィルタに設定可能なパラメータとしては、次のようなパラメータがある。ローパスフィルタ、ハイパスフィルタ、バンドパスフィルタに対しては、パラメータとしてフィルタ径(カーネルサイズ)を設定可能である。ソーベルフィルタ、プレウィットフィルタに対しては、パラメータとして、x方向およびy方向の各微分次数と、フィルタ径、またはこれらのうちの一方を設定可能である。ラプラスフィルタに対しては、パラメータとしてフィルタ径を設定可能である。閾値処理フィルタに対しては、パラメータとして閾値を設定可能である。
図8は、フィルタ特性データベースに格納される情報の例を示す図である。フィルタ特性データベース142には、パラメータ可変フィルタの中の一部のフィルタについて、パラメータ情報ごとの特性情報が登録される。図8には、フィルタID“1”のパラメータ可変フィルタ(フィルタ#1)に設定可能なパラメータ情報“x1,y1”,“x1,y2”,“x2,y1”,“x2,y2”のそれぞれに対して、特性情報が登録された例を示している。
本実施の形態では、例として、フィルタ特性データベース142には、ローパスフィルタ、ハイパスフィルタ、バンドパスフィルタなどの、特定の空間周波数帯の信号成分を増減させる画像フィルタについての特性情報が登録される。この場合、特性情報としては、各画像フィルタの周波数特性(空間周波数に対する透過率特性)を示す情報が登録される。この場合の特性情報の例については後述する。
次に、プログラム生成処理手順の詳細について説明する。まず、図9は、プログラム生成処理全体の手順の例を示すフローチャートである。
[ステップS21]初期設定部121は、学習データの設定のための入力操作を受け付ける。例えば、学習データ記憶部150に記憶された学習データの中から、本処理で使用される学習データが指定される。
[ステップS22]初期設定部121は、フィルタセットの設定のための入力操作を受け付ける。例えば、フィルタセットデータベース141に登録された画像フィルタの中から、本処理で使用される画像フィルタが指定される。
[ステップS23]初期設定部121は、ステップS22で指定された画像フィルタのうち、パラメータ可変フィルタについて、パラメータごとに選択確率を算出し、算出した選択確率をフィルタセットデータベース141に設定する。この処理の詳細については、図11〜図17において説明する。
[ステップS24]初期設定部121は、ステップS22で指定された画像フィルタのうち、パラメータ未定フィルタに設定するパラメータを、学習データに基づいて決定する。初期設定部121は、決定したパラメータを対応するパラメータ未定フィルタのプログラムコードに設定することで、このプログラムコードを実行可能な状態にする。なお、このステップS24の処理の詳細については、図18〜図20において説明する。
[ステップS25]学習処理部122は、所定数の初期個体を含む個体群(初期個体群)を生成する。各初期個体は、各初期個体に設定された各ノードに対して、ステップS22で指定された画像フィルタをランダムに選択して組み合わせることで生成される。また、学習処理部122は、パラメータ可変フィルタを選択した場合、選択したパラメータ可変フィルタに対して設定するパラメータを選択する。その際、学習処理部122は、フィルタセットデータベース141においてパラメータごとに設定された選択確率にしたがって、パラメータを選択する。このステップS25の処理の詳細については、図10において説明する。
なお、ステップS25において生成される個体群は、図2に示した個体群61に相当するので、これ以後、“個体群61”と表記する。
[ステップS26]学習処理部122は、個体群61に含まれる個体の中から、2つの親個体をランダムに選択する。
[ステップS27]学習処理部122は、選択された2つの親個体の間で交叉を行うことで、2つ以上の所定数の子個体を生成する。
[ステップS28]学習処理部122は、生成された子個体のいずれかのノードに突然変異を発生させ、元の子個体のノードに組み込まれていた画像フィルタを、ステップS22で指定された他の画像フィルタのいずれかに置き換える。
また、学習処理部122は、置き換え後の画像フィルタとしてパラメータ可変フィルタを選択した場合には、選択したパラメータ可変フィルタに対して設定するパラメータを選択する。その際、学習処理部122は、フィルタセットデータベース141においてパラメータごとに設定された選択確率にしたがって、パラメータを選択する。
このステップS28での置き換え後の画像フィルタの選択処理の詳細については、図10において説明する。
[ステップS29]ステップS26で選択された各親個体、および、ステップS27,S28の処理によって得られた各子個体について、適応度が算出される。この処理では、算出対象の各個体について次のような処理が行われる。
学習処理部122は、ステップS21で指定された学習データを1つ選択し、選択した学習データに含まれる入力画像に対して、算出対象の個体の処理を適用する。学習処理部122は、個体の処理によって得られた画像と、選択した学習データに含まれる目標画像との間の一致度を計算することで、適応度を算出する。学習処理部122は、以上の処理を、ステップS21で指定された学習データのすべてについて実行する。学習処理部122は、算出されたすべての適応度の平均値を算出し、この平均値を、算出対象の個体の適応度として出力する。
[ステップS30]学習処理部122は、ステップS29で算出された各個体の適応度のうちの最大値が、所定の閾値より大きいかを判定する。適応度の最大値が閾値より大きい場合、ステップS32の処理が実行される。一方、適応度の最大値が閾値以下である場合、ステップS31の処理が実行される。
[ステップS31]学習処理部122は、ステップS26で選択された各親個体、および、ステップS27,S28の処理によって得られた各子個体のうち、適応度が最大の個体を、生存させる個体として選択する。さらに、学習処理部122は、残りの個体の中から、生存させる個体をさらに1つ選択する。この選択処理では、例えば、算出された適応度に応じた確率で個体が選択される。
学習処理部122は、個体群62の個体のうち、ステップS26で選択された2つの個体を、生存させる個体として選択された2つの個体に入れ替える。これによって、個体群62の世代が更新される。
[ステップS32]学習処理部122は、ステップS29で適応度が算出された個体のうち、適応度が最大の個体を選択する。学習処理部122は、選択した個体が示す画像処理プログラムをプログラム記憶部130に格納し、プログラム生成処理を終了する。
次に、ステップS25において、個体のノードに組み込む画像フィルタを選択する処理、および、ステップS28において、突然変異の対象ノードに対して新たに組み込む画像フィルタを選択する処理について、その詳細を説明する。これらの選択処理では、学習処理部122は、次の図10に示す処理を実行する。
図10は、画像フィルタの選択処理手順の例を示すフローチャートである。
[ステップS41]学習処理部122は、ステップS22で指定された画像フィルタの中から、画像フィルタをランダムに(すなわち、同じ確率で)選択する。
なお、このステップS41では、指定された画像フィルタのうちのパラメータ可変フィルタに設定可能なパラメータの数を考慮して、画像フィルタごとの選択確率が設定されてもよい。例えば、指定された画像フィルタのうち、パラメータ可変フィルタの数がn、パラメータ未定フィルタおよび通常フィルタの総数がmであり、各パラメータ可変フィルタに対してp通りのパラメータの組み合わせを設定可能である(すなわち、フィルタセットデータベース141において、各パラメータ可変フィルタにp個のパラメータ情報が登録されている)とする。この場合、例えば、ステップS22でのパラメータ可変フィルタの選択確率は、p/(n・p+m)と算出され、パラメータ未定フィルタおよび通常フィルタの各選択確率は、1/(n・p+m)と算出される。
[ステップS42]学習処理部122は、ステップS41でパラメータ可変フィルタを選択したかを判定する。この判定は、フィルタセットデータベース141における、選択した画像フィルタに対応するレコードに登録された属性情報に基づいて行われる。パラメータ可変フィルタが選択された場合、ステップS43の処理が実行される。一方、パラメータ可変フィルタ以外の画像フィルタが選択された場合、ステップS44の処理が実行される。
[ステップS43]学習処理部122は、フィルタセットデータベース141内の選択した画像フィルタに対応するレコードに、パラメータごとに設定された選択確率にしたがって、パラメータを選択する。
[ステップS44]学習処理部122は、ステップS41で選択した画像フィルタを、該当ノードに組み込む。また、選択された画像フィルタがパラメータ可変フィルタである場合、学習処理部122は、ステップS43で選択したパラメータを、ノードに組み込む画像フィルタに設定する。
次に、図9のステップS23において、パラメータ可変フィルタのパラメータごとに選択確率を設定する処理の詳細について説明する。ここでは、パラメータ可変フィルタの例として、ガウシアンフィルタ、閾値処理フィルタ、ソーベルフィルタについて説明する。
まず、図11〜図14を用いて、ガウシアンフィルタのパラメータに対する選択確率の設定処理について説明する。ガウシアンフィルタについては、フィルタ特性データベース142にパラメータごとの特性情報が登録され、選択確率の設定処理時に特性情報が参照される。
図11は、ガウシアンフィルタに関する特性情報の例を示す図である。フィルタ特性データベース142には、ガウシアンフィルタに関する特性情報として、対応するパラメータが設定されたガウシアンフィルタの、空間周波数に対する透過率を示す情報があらかじめ登録される。ここでは例として、透過率とは、輝度値の透過率を示すものとする。また、ガウシアンフィルタに対しては、パラメータとしてフィルタ径(カーネルサイズ)が設定可能であるものとする。
ここで、空間周波数をν、パラメータ(フィルタ径)をσ、画像フィルタに固有の係数をαとすると、ガウシアンフィルタの透過率L(ν,σ)は次の式(1)によって表される。
L(ν,σ)=exp{−(αν2/σ2)} ・・・(1)
図11では例として、ガウシアンフィルタに対して、パラメータσとして“3”,“5”,“7”,“9”をそれぞれ設定した場合の透過率を示す。
図12は、入力画像と目標画像に基づく透過率の算出方法の例を示す図である。また、図13は、透過率の比較に基づく選択確率の算出方法の例を示す図である。
初期設定部121は、まず、図9のステップS21で指定された学習データに基づいて、入力画像から、対応する目標画像に対する透過率(周波数透過特性)を求める。ここでは例として、入力画像と目標画像のペアが1組指定されたものとする。
透過率の計算のために、初期設定部121は、入力画像および対応する目標画像のそれぞれに対してフーリエ変換を行い、各画像のデータを周波数領域のデータに変換する。入力画像fの輝度値をフーリエ変換して得られた変換データF(ν)は、例えば、図12左上に示すグラフ201のように求められる。また、目標画像gの輝度値をフーリエ変換して得られた変換データG(ν)は、例えば、図12左下に示すグラフ202のように求められる。透過率H(ν)は、次の式(2)を用いて求められる。
H(ν)=G(ν)/F(ν) ・・・(2)
図12右側に示すグラフ203は、グラフ201,202に示した変換データF(ν),G(ν)を基に式(2)を用いて求められた透過率H(ν)の例を示す。
次に、初期設定部121は、入力画像fおよび目標画像gに基づいて求められた透過率H(ν)と、フィルタ特性データベース142に特性情報として登録された、パラメータごとの透過率L(ν,σ)のそれぞれとの相関を求める。透過率H(ν)と、パラメータσに対応する透過率(ν,σ)との相関を示す相関係数R(σ)は、例えば、次の式(3)を用いて求められる。
Figure 2015194006
ここで、各パラメータのうち、対応する透過率L(ν,σ)と求められた透過率H(ν)との相関が高いパラメータほど、そのパラメータがガウシアンフィルタに設定された場合に目的とする処理に近い処理が行われる可能性が高く、有効性が高いと推定される。そこで、初期設定部121は、透過率H(ν)との相関が高いパラメータほど選択確率が高くなるように、各パラメータに対して選択確率を設定する。
ある画像フィルタについてのパラメータσの選択確率は、例えば、各パラメータσの相関係数R(σ)を正規化する次の式(4)を用いて求められる。
Figure 2015194006
図13上側に示すグラフ211は、図11に示したパラメータごとの透過率L(ν,σ)と、図12のグラフ203に示した透過率H(ν)とを重ねて示したものである。この例では、パラメータσの値が“7”,“9”,“5”,“3”の順に、求められた透過率H(ν)との相関が高くなっている。この場合、選択確率P(σ)は、例えば、図13下側に示すグラフ212のように設定される。
なお、以上の図12,図13の例は、入力画像と目標画像のペアを1組だけ用いた場合の処理である。入力画像と目標画像のペアを複数組用いる場合には、次の図14に示すように、初期設定部121は、ペアごとに相関係数を算出した後、パラメータごとに相関係数の平均値を求め、求めた平均値に基づいて選択確率を決定する。
図14は、ガウシアンフィルタのパラメータに対する選択確率の設定処理例を示すフローチャートである。
[ステップS101]初期設定部121は、図9のステップS21で指定された学習データの中から、学習データ(すなわち、入力画像と目標画像のペア)を1つ選択する。
[ステップS102]初期設定部121は、選択した学習データに含まれる入力画像と目標画像とを、それぞれフーリエ変換する。
[ステップS103]初期設定部121は、フーリエ変換によって得られた各データを基に、上記の式(2)を用いて透過率H(ν)を算出する。
[ステップS104]初期設定部121は、算出された透過率H(ν)と、ガウシアンフィルタに設定可能な各パラメータσに対して特性情報として対応付けられた透過率(ν,σ)のそれぞれとの相関係数R(σ)を、上記の式(3)を用いて算出する。透過率(ν,σ)は、フィルタ特性データベース142におけるガウシアンフィルタに対応する各レコードから取得される。
[ステップS105]初期設定部121は、図9のステップS21で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップS101の処理が再度実行される。すべての学習データを選択済みの場合、ステップS106の処理が実行される。
[ステップS106]初期設定部121は、ステップS101〜S105の処理で、同じパラメータについて異なる学習データを基に算出された相関係数R(σ)の平均値Rave(σ)を算出する。これにより、平均値Rave(σ)がパラメータσごとに算出される。
[ステップS107]初期設定部121は、パラメータσごとの相関係数の平均値Rave(σ)を正規化することで、パラメータσごとの選択確率を算出する。選択確率は、式(4)に対して、各パラメータσの相関係数R(σ)の代わりにパラメータσごとの相関係数の平均値Rave(σ)を代入することで算出される。初期設定部121は、算出された選択確率を、フィルタセットデータベース141におけるガウシアンフィルタに対応するレコードに対して、該当するパラメータに対応付けて設定する。
以上の図11〜図14の処理により、ガウシアンフィルタに対して各パラメータを設定して実現される画像処理のそれぞれが、入力画像を対応する目標画像に変換する画像処理にどれだけ近いかを示す有効度が、相関係数またはその平均値として算出される。そして、各パラメータに対して、相関係数またはその平均値に応じた選択確率が設定される。これにより、学習処理部122の処理過程でノードに組み込む画像フィルタとしてガウシアンフィルタが選択された際に、目的とする処理に近い画像処理を実行するためのパラメータが、ガウシアンフィルタに設定されやすくなる。
なお、ガウシアンフィルタ以外のローパスフィルタ、ハイパスフィルタ、バンドパスフィルタなど、特定の空間周波数帯の信号成分を増減させる処理を行うパラメータ可変フィルタについても、上記の図11〜図14と同様の処理によって、設定可能なパラメータごとに選択確率を設定可能である。
次に、図15,図16を用いて、閾値処理フィルタのパラメータに対する選択確率の設定処理について説明する。
閾値処理フィルタは、画素値(ここでは輝度値)が閾値以上または閾値未満である画素について、その画素値に対して所定の変換処理を行う画像フィルタである。変換処理としては、例えば、画素値を最大値または最小値に変換する処理がある。以下の説明では、閾値処理フィルタに対して、パラメータとして閾値を設定可能であるものとする。閾値は、輝度値で表される。
図15は、輝度ヒストグラムと選択確率の設定例を示す図である。
初期設定部121は、例えば、まず、学習データに含まれる入力画像に基づいて、輝度値のヒストグラムを算出する。次に、初期設定部121は、ヒストグラムの谷の位置を判定する。谷の位置は、例えば、ヒストグラムの微分値に基づいて判定される。または、谷の位置は、2つのピークの位置の間における最小値の位置として判定されてもよい。
初期設定部121は、判定された谷の位置を中心として正規分布状に選択確率を設定する。すなわち、パラメータの輝度値が、判定された谷の位置に近いほど、そのパラメータには高い選択確率が設定され、パラメータの輝度値が、判定された谷の位置から遠いほど、そのパラメータには低い選択確率が設定される。
閾値は、例えば、入力画像内で何らかの特徴を有する領域が、それ以外の領域から抽出されるように設定される。そして、何らかの特徴を有する領域における画素値の分布領域と、それ以外の領域における画素値の分布領域とは、別の領域にある場合が多い。輝度ヒストグラムにおける谷の位置は、これらのそれぞれの分布領域の境界に近い場合が多い。このため、ある入力画像を閾値処理フィルタによって処理する場合に、その入力画像に基づく輝度ヒストグラムにおける谷の位置が、設定される閾値に近い場合が多いと推定される。
図15の例では、輝度ヒストグラム221に基づいて谷の位置L1が求められ、谷の位置L1を中心とした正規分布状に、選択確率を示す曲線222が設定されている。設定されるパラメータは、横軸の輝度値の離散値として表され、各パラメータに対応する選択確率が曲線222により求められる。
なお、以上の図15の例は、入力画像と目標画像のペアを1組だけ用いた場合の処理である。入力画像と目標画像のペアを複数組用いる場合には、次の図16に示すように、初期設定部121は、ペアごとに輝度ヒストグラムを求め、各輝度ヒストグラムから検出した谷の位置の平均値を求める。そして、求めた平均値を中心として正規分布状に選択確率を設定する。
図16は、閾値処理フィルタのパラメータに対する選択確率の設定処理例を示すフローチャートである。
[ステップS111]初期設定部121は、図9のステップS21で指定された学習データの中から、学習データ(すなわち、入力画像と目標画像のペア)を1つ選択する。
[ステップS112]初期設定部121は、選択した学習データに含まれる入力画像の輝度値を基に、輝度ヒストグラムを算出する。
[ステップS113]初期設定部121は、輝度ヒストグラムの谷の位置を判定する。
[ステップS114]初期設定部121は、図9のステップS21で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップS111の処理が再度実行される。すべての学習データを選択済みの場合、ステップS115の処理が実行される。
[ステップS115]初期設定部121は、入力画像ごとに判定された谷の位置の平均値を算出する。
[ステップS116]初期設定部121は、算出された平均値を中心とした正規分布状の曲線を生成し、生成した曲線を基に、閾値処理フィルタに設定可能な各パラメータに対応する選択確率を決定する。初期設定部121は、決定された選択確率を、フィルタセットデータベース141における閾値処理フィルタに対応するレコードに対して、該当するパラメータに対応付けて設定する。
以上の図15,図16の処理により、閾値処理フィルタに対して各パラメータを設定して実現される画像処理のそれぞれが、入力画像を対応する目標画像に変換する画像処理にどれだけ近いかを示す有効度に応じて、各パラメータに対応する選択確率が設定される。これにより、学習処理部122の処理過程でノードに組み込む画像フィルタとして閾値処理フィルタが選択された際に、目的とする処理に近い画像処理を実行するためのパラメータが、閾値処理フィルタに設定されやすくなる。
次に、図17を用いて、ソーベルフィルタのパラメータに対する選択確率の設定処理について説明する。
初期設定部121は、例えば、学習データに含まれる入力画像に対して、各パラメータを設定したソーベルフィルタによる画像処理を施す。初期設定部121は、各画像処理による処理後の画像に基づいて、画像ごとに画素値(例えば、輝度値)の総和を算出する。ソーベルフィルタは、エッジの抽出を行う画像フィルタであるので、処理後の画像における画素値の総和が大きいほど、多くの領域からエッジが検出されたことになる。このため、処理後の画像における画素値の総和が大きいほど、設定されたパラメータは、対応する入力画像を処理するための有効度が高いと推定される。そこで、初期設定部121は、画素値の総和が大きいほど、対応するパラメータに設定する選択確率を大きくする。
また、以上説明した処理例は、入力画像を1つだけ用いた場合の処理である。入力画像を複数用いる場合には、次の図17に示すような処理が行われる。
図17は、ソーベルフィルタのパラメータに対する選択確率の設定処理例を示すフローチャートである。
[ステップS121]初期設定部121は、図9のステップS21で指定された学習データの中から、学習データ(すなわち、入力画像と目標画像のペア)を1つ選択する。
[ステップS122]初期設定部121は、各パラメータを設定したソーベルフィルタを用いて、選択した学習データに含まれる入力画像に対して画像処理を施す。これにより、パラメータの数だけ処理後の画像が得られる。
[ステップS123]初期設定部121は、得られた画像のそれぞれについて、輝度値の総和を算出する。これにより、パラメータごとに輝度値の総和が算出される。
[ステップS124]初期設定部121は、図9のステップS21で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップS121の処理が再度実行される。すべての学習データを選択済みの場合、ステップS125の処理が実行される。
[ステップS125]この時点で、それぞれのパラメータについて、学習データの数だけの輝度値の総和が算出されている。初期設定部121は、輝度値の総和の中から、対応するパラメータごとに総和の最大値を抽出する。初期設定部121は、抽出した各最大値が同じ値になるように、パラメータごとに算出された輝度値の総和を正規化する。
パラメータが設定されたソーベルフィルタによる処理後の画像における輝度値の総和の最大値は、入力画像によって異なる。上記の正規化処理により、入力画像ごとに異なる、処理後の画像における輝度値の総和の最大値の差が、誤差として現れにくくなる。
[ステップS126]初期設定部121は、パラメータごとに、正規化後の総和の平均値を算出する。
[ステップS127]初期設定部121は、パラメータごとに算出された平均値に基づいて、各パラメータに対応する選択確率を算出する。初期設定部121は、決定された選択確率を、フィルタセットデータベース141におけるソーベルフィルタに対応するレコードに対して、該当するパラメータに対応付けて設定する。
例えば、あるパラメータに対応する選択確率は、そのパラメータについて算出された平均値を、全パラメータについて算出された平均値の合計によって除算することで計算される。これにより、平均値が高いパラメータほど、高い選択確率が設定される。
以上の図17の処理により、ソーベルフィルタに対して各パラメータを設定して実現される画像処理のそれぞれが、入力画像からエッジを抽出するのにどれだけ有効かを示す有効度に応じて、各パラメータに対応する選択確率が設定される。これにより、学習処理部122の処理過程でノードに組み込む画像フィルタとしてソーベルフィルタが選択された際に、目的とする処理に近い画像処理を実行するためのパラメータが、ソーベルフィルタに設定されやすくなる。
なお、例えば、ラプラスフィルタ、プレウィットフィルタなど、ソーベルフィルタ以外の微分フィルタについても、上記の図17と同様の処理によって、設定可能なパラメータごとに選択確率を設定可能である。
以上の図11〜図17において説明した手順により、パラメータ可変フィルタの各パラメータに対して、学習データを用いた画像処理に対する有効性に応じた選択確率が設定される。
図10に示したように、学習処理部122は、個体のノードに組み込む画像フィルタとしてパラメータ可変フィルタを選択した場合に、上記手順によって設定された選択確率にしたがって、パラメータ可変フィルタに設定するパラメータを選択する。これにより、目的とする処理に近い処理を実行するためのパラメータが、パラメータ可変フィルタに設定されやすくなる。その結果、プログラム生成処理の過程で算出される適応度が高い値に収束しやすくなり、プログラム生成に要する時間が短縮される可能性が高くなる。
また、パラメータ可変フィルタに設定可能なパラメータ数を多くした場合でも、プログラム生成に要する時間が増大する可能性を低減できる。したがって、目的とする処理に近い高品質な画像処理を実現する画像処理プログラムを、短時間で生成できるようになる。さらに、多くのパラメータの中から適切なパラメータが選択されやすくなるため、生成される画像処理プログラムにおいて、適切とは言えないパラメータが設定されたパラメータ可変フィルタが多段に接続される可能性が低くなる。したがって、個体に生成されるノード数が増大することも防止され、この点も、プログラム生成処理時間の短縮に寄与する。
次に、パラメータ未定フィルタに対して設定すべきパラメータを決定する処理について説明する。以下の説明では、パラメータ未定フィルタとして、マスク処理フィルタを例示する。設定されるパラメータは、マスク領域を示す座標情報である。
図18は、入力画像の特定領域を抽出する処理の例を示す図である。学習データとして、図18に示す入力画像251と目標画像252のペアが与えられたとする。入力画像251には、同種の特徴を有する2カ所の特徴領域251a,251bが存在する。一方、目標画像252においては、特徴領域251aに対応する領域252aのみが抽出され、特徴領域251bに対応する領域は抽出されていない。なお、目標画像252は2値画像であり、抽出される領域の画素値が“1”、それ以外の領域(マスクされる領域)の画素値が“0”となっている。
このような場合に、遺伝的プログラミングを用いたプログラム生成処理では、入力画像251から、同種の特徴を有する特徴領域251a,252aの両方を抽出する画像処理プログラムを生成することは、比較的容易である。この場合、処理後の画像253には、特徴領域251aに対応する領域253aと、特徴領域251bに対応する領域253bとが抽出される。しかし、特徴領域251a,252aのうちの一方のみを抽出する画像処理プログラムを生成することは、これらの領域の位置情報が与えられない限り、非常に困難である。
これに対して、本実施の形態では、パラメータを自由に設定可能なマスク処理フィルタのプログラムコードが、フィルタセットデータベース141にあらかじめ用意される。そして、初期設定部121は、学習データに含まれる目標画像を解析し、その解析結果に基づいて、マスク処理フィルタに設定すべきパラメータを決定する。
図19は、目標画像に基づいてマスクパターンを決定する処理例を示す図である。
図19の目標画像261a,261b,261c,・・・のように、目標画像が複数存在する場合、初期設定部121は、まず、目標画像261a,261b,261c,・・・の論理和をとった合成画像262を生成する。次に、初期設定部121は、合成画像262における抽出領域(画素値“1”の領域)に対して距離変換を行い、距離変換画像263を算出する。距離変換とは、該当画素からその周囲の“0”でない画素までの距離を、該当画素の値とする変換である。なお、目標画像が1つのみの場合、初期設定部121は、その目標画像に対して直接距離変換を行う。
次に、初期設定部121は、得られた距離変換画像263に対して閾値処理を行うことで、マスクパターン264を生成する。すなわち、距離変換画像263の各画素について、画素値(距離)が所定の閾値より大きい場合に画素値を“1”に変換し、画素値が閾値以下の場合に画素値を“0”に変換する。生成されたマスクパターン264における値“0”の領域(マスク領域)の座標が、マスク処理フィルタに設定されるパラメータとなる。なお、上記の閾値処理によれば、入力画像間での抽出対象領域の位置ズレに対して所定のマージンを取った状態で、マスク領域が設定されるようになる。
図20は、マスク処理フィルタのパラメータの設定処理例を示すフローチャートである。この図20の処理は、図9のステップS24において実行される。なお、図9のステップS21において、学習データが複数指定されたものとする。
[ステップS131]初期設定部121は、ステップS21で指定された各学習データに含まれる目標画像の論理和をとり、合成画像を生成する。
[ステップS132]初期設定部121は、生成された合成画像に対して距離変換を行い、距離変換画像を生成する。
なお、ステップS21で学習データが1つのみ指定された場合、初期設定部121は、その学習データに対して距離変換を行う。
[ステップS133]初期設定部121は、生成された距離変換画像に対して閾値処理を行い、マスクパターンを生成する。
[ステップS134]初期設定部121は、生成されたマスクパターンにおけるマスク領域の座標を、マスク処理フィルタのパラメータとして設定する。具体的には、初期設定部121は、フィルタセットデータベース141におけるマスク処理フィルタに対応するレコードに、パラメータ情報としてマスク領域の座標を設定する。
以上の図19,図20で説明した処理により、初期設定部121は、同種の特徴を有する特徴領域が複数存在する入力画像から、それらの特徴領域の数より少ない領域を抽出するためのマスク処理フィルタのパラメータを、正確に設定することが可能となる。
〔実施の形態2−1〕
上記の実施の形態1−1に係るプログラム生成装置10では、パラメータを後から設定可能な部分プログラム(パラメータ可変プログラム)が用いられる。そして、プログラム生成装置10は、個体に組み込む部分プログラムとしてパラメータ可変プログラムを選択した際に、設定可能な各パラメータに対応付けられた選択確率にしたがってパラメータを1つ選択し、選択したパラメータをパラメータ可変プログラムに設定する。
これに対して、実施の形態2−1に係るプログラム生成装置では、個体に組み込むために選択可能な複数の部分プログラムが分類され、グループ化される。そしてプログラム生成装置は、個体に組み込む部分プログラムを選択する際、まず、グループを選択した後、選択したグループに含まれる部分プログラムの中から、部分プログラムを1つ選択する。ここで、グループ内に複数の部分プログラムが含まれる場合、プログラム生成装置は、各部分プログラムに選択確率を対応付ける。そして、グループに含まれる部分プログラムの中から1つを選択する際に、選択確率にしたがって選択を行う。
図21は、実施の形態2−1に係るプログラム生成装置の構成例および処理例を示す図である。図21に示すプログラム生成装置10aは、遺伝的プログラミングによって画像処理プログラムを生成する。なお、図21では、図1と同じ構成要素には同じ符号を付して示し、それらの説明を省略する。
前述のように、個体に組み込むことが可能な複数の部分プログラムは、あらかじめ複数のグループに分類される。各グループには、1つ以上の部分プログラムが含まれる。図21の例では、個体に組み込むことが可能な複数の部分プログラムは、グループ#1〜#3に分類されている。そして、グループ#1には、部分プログラム#1〜#3が含まれる。
ここで、同一のグループに含められる部分プログラムとしては、例えば、同種類の部分プログラムがある。例えば、設定されたパラメータのみが異なる同種類の部分プログラムが、同一のグループに含められる。また、対応する選択確率の計算方法が互いに同じである部分プログラムを、同一のグループに含めることもできる。
プログラム生成装置10aは、設定部11aおよび選択処理部12aを有する。設定部11aおよび選択処理部12aの処理は、例えば、プログラム生成装置10aが備える図示しないプロセッサが所定のプログラムを実行することで実現される。
設定部11aは、部分プログラムが複数含まれるグループについて、そのグループに含まれる各部分プログラムに対応する選択確率を設定する。設定部11aは、各部分プログラムに対応する選択確率を、学習データ30に含まれる情報のうち少なくとも入力画像31から得られる特徴量と、各部分プログラムとの関係に基づいて設定する。図21では例として、設定部11aがグループ#1に含まれる各部分プログラムに対応する選択確率を設定する場合を示している(ステップS1a)。なお、特徴量は、入力画像31と、これに対応する目標画像32とから算出されてもよい。
設定部11aによる設定処理により、各部分プログラムに対して、その部分プログラムによって実現される処理の有効性が高いほど、高い選択確率が設定される。有効性が高いとは、その部分プログラムによって実現される処理内容が、目的とする処理内容に近く、学習に対する寄与度が高いことを示す。すなわち、有効性が高い部分プログラムが学習過程で個体に組み込まれることで、個体から算出される適応度が高くなる可能性が高まり、その結果、適応度が高い値に収束しやすくなって、学習が促進される。
選択処理部12aは、遺伝的プログラミングによる学習処理中において、個体のノードに組み込む部分プログラムを選択する際に、まず、グループを例えばランダムに選択する。そして、選択したグループに複数の部分プログラムが含まれる場合、選択処理部12aは、それらの部分プログラムの中から、各部分プログラムに対応付けられた選択確率にしたがって部分プログラムを1つ選択し、選択した部分プログラムを該当ノードに組み込む。
グループに含まれる部分プログラムの中から、選択確率にしたがって1つの部分プログラムを選択することにより、学習データ30を用いた画像処理に対する有効性が高いと推定される部分プログラムほど、個体に組み込まれる可能性が高くなる。これにより、適応度の高い個体が生成されやすくなって、学習が促進され、その結果、画像処理プログラムの生成に要する時間が短縮される可能性が高まる。
以下、例として、図21に示す個体41に含まれる部分プログラムP1〜P4のうち、部分プログラムP2に対して突然変異を発生させて(ステップS2a)個体41を進化させるケースについて説明する。
選択処理部12aは、グループ#1〜#3の中から、例えばランダムに1つのグループを選択する。ここで、グループ#1が選択されたものとすると(ステップS3a)、選択処理部12aは、グループ#1に含まれる部分プログラム#1〜#3の中から、対応する選択確率にしたがって部分プログラムを1つ選択する(ステップS4a)。選択処理部12aは、選択した部分プログラムを、部分プログラムP2の代わりに個体41に組み込む。
このような選択処理部12aの処理により、学習データ30を用いた画像処理に対する有効性が高いと推定される部分プログラムほど、個体に組み込まれやすくなる。これにより、学習が促進され、画像処理プログラムの生成に要する時間が短縮される可能性が高まる。
また、個体に組み込むために選択可能な部分プログラムの数が多いほど、目的とする処理に近い高品質な画像処理プログラムが生成される可能性が高まる反面、プログラム生成処理に要する時間が長くなる可能性も高まる。上記の選択処理部12aの処理により、選択可能な部分プログラムの数を多くした場合でも、その中から有効な部分プログラムが選択されて個体に組み込まれる可能性が高くなる。このため、プログラム処理時間が増大する可能性が抑制される。したがって、高品質な画像処理プログラムを短時間で生成できる可能性が高められる。
なお、個体のノードに部分プログラムを組み込む他のケースとしては、初期個体を生成する際に、初期個体の各ノードに、複数の部分プログラムの中から選択した部分プログラムを組み込むケースがある。このケースでも、選択処理部12aは、上記のステップS3a〜S4aと同様の手順で、各ノードに組み込む部分プログラムを選択することができる。このケースでも、上記の突然変異の場合と同様に、学習が促進され、画像処理プログラムの生成に要する時間が短縮される可能性が高まる。
〔実施の形態2−2〕
次に、実施の形態2−2に係る画像処理装置について説明する。実施の形態2−2に係る画像処理装置は、図21に示したプログラム生成装置10aと同様の処理機能と、この処理機能によって生成された画像処理プログラムを実行して画像処理を行う機能とを備える。
実施の形態2−2に係る画像処理装置は、例えば、図5に示したハードウェア構成のコンピュータとして実現できる。また、これ以後、実施の形態2−2に係る画像処理装置の構成については、図6に示した処理機能のブロック名および符号を用いて説明するものとする。実施の形態2−2に係る画像処理装置100は、プログラム生成部112による処理内容の一部と、フィルタセット記憶部140に格納される情報の内容とが、実施の形態1−2の場合とは異なる。なお、以下の説明において、プログラム生成部112内の初期設定部121は、図21に示した設定部11aの一例であり、学習処理部122は、図21に示した選択処理部12aの一例である。
図22は、実施の形態2−2においてフィルタセットデータベースに登録される情報の例を示す図である。図22に示すフィルタセットデータベース141aは、図7に示したフィルタセットデータベース141の代わりにフィルタセット記憶部140に格納される。
フィルタセットデータベース141aには、画像処理プログラムに組み込むことが可能な複数の画像フィルタを分類して得られたフィルタグループごとに、レコードが登録されている。各レコードには、対応するフィルタグループを識別するためのグループIDが登録されている。図22の例では、「フィルタグループ#1」はグループID“1”のフィルタグループを示す。
各レコードには、対応するフィルタグループに含まれる画像フィルタを示す識別情報が登録されている。図22の例では、「フィルタ#1」はフィルタID“1”の画像フィルタを示す。各レコードには、画像フィルタの識別情報が1つ以上登録される。すなわち、各フィルタグループには、少なくとも1つの画像フィルタが含まれる。
各レコードに登録された画像フィルタの識別情報は、それぞれ個別の画像フィルタのプログラムコードに対応付けられている。なお、対応するプログラムコードは、例えば、フィルタセット記憶部140に格納されている。
さらに、画像フィルタを複数含むフィルタグループに対応するレコードにおいては、画像フィルタを示す識別情報のそれぞれに対して、選択確率が登録される。選択確率は、初期個体のノードまたは突然変異の対象ノードに対して組み込む画像フィルタを選択する際に、該当フィルタグループが選択された場合に、該当フィルタグループから該当画像フィルタが選択される確率を示す。選択確率は、プログラム生成処理が実行されるたびに、その初期設定工程において初期設定部121によって設定される。
図23は、画像フィルタのグループ分けの例を示す図である。図23に示す分類表3001においては、フィルタグループとして“周波数処理グループ”、“閾値処理グループ”、“微分処理グループ”が例示されている。
1つのフィルタグループには、例えば、同じ種類の画像処理を行うものの、設定されたパラメータが異なる画像フィルタを含めることができる。図23の閾値処理グループはこのようなフィルタグループの例であり、閾値処理グループには、それぞれ設定されたパラメータが異なる複数の閾値処理フィルタが含められる。なお、閾値処理フィルタのパラメータとは、例えば、閾値である。
また、周波数処理グループおよび微分処理グループのそれぞれには、処理内容が類似する複数種類の画像フィルタが含まれている。例えば、周波数処理グループには、ローパスフィルタ、ハイパスフィルタが含まれている。これらの画像フィルタは、特定の空間周波数帯の信号成分を増減させる点で共通している。また、周波数処理グループには、設定されたパラメータがそれぞれ異なる複数のローパスフィルタおよび複数のハイパスフィルタが含まれていてもよい。なお、設定が異なるパラメータとしては、例えば、フィルタ径(カーネルサイズ)などが挙げられる。
また、微分処理グループには、例えば、ソーベルフィルタ、ラプラスフィルタ、プレウィットフィルタが含まれている。これらの画像フィルタは、微分処理を行う点で共通している。また、微分処理グループには、設定されたパラメータがそれぞれ異なる複数のソーベルフィルタ、複数のラプラスフィルタ、複数のプレウィットフィルタが含まれていてもよい。なお、ソーベルフィルタ、プレウィットフィルタについての設定が異なるパラメータとしては、x方向およびy方向の各微分次数と、フィルタ径、またはこれらのうちの一方が挙げられる。ラプラスフィルタについての設定が異なるパラメータとしては、フィルタ径が挙げられる。
以上の周波数処理グループおよび微分処理グループのいずれについても、同じフィルタグループに含まれる各画像フィルタに対応する選択確率は、同じ計算方法で計算されるようになっている。これにより、学習データを用いた画像処理に対する有効性に応じた選択確率を、各画像フィルタに対して正確に設定することができる。なお、フィルタグループごとの選択確率の計算方法については、後の図27〜図29において説明する。
なお、学習データを基に計算されるまでパラメータが設定されないパラメータ未定フィルタについては、このパラメータ未定フィルタのみが含まれるフィルタグループに分類される。実施の形態2−2において、パラメータ未定フィルタ(例えば、マスク処理フィルタ)に対して設定すべきパラメータを決定する処理の手順は、実施の形態1−2と同様であるので、その説明を省略する。
図24は、実施の形態2−2においてフィルタ特性データベースに格納される情報の例を示す図である。図24に示すフィルタ特性データベース142aは、図8に示したフィルタ特性データベース142の代わりにフィルタセット記憶部140に格納される。
一部のフィルタグループに含まれる各画像フィルタの選択確率を計算する際には、画像フィルタごとの特性情報が使用される。フィルタ特性データベース142aには、このような特性情報が登録される。フィルタ特性データベース142aには、画像フィルタごとのレコードが登録される。より具体的には、フィルタ特性データベース142aには、画像フィルタの種別と、その画像フィルタに設定されたパラメータとの組み合わせごとに、レコードが登録される。そして、各レコードには、該当する画像フィルタの特性情報が登録される。特性情報としては、例えば周波数処理グループに含まれる画像フィルタの場合、各画像フィルタの周波数特性(空間周波数に対する透過率特性)を示す情報が登録される。
次に、実施の形態2−2でのプログラム生成処理について、フローチャートを用いて説明する。
図25は、プログラム生成処理全体の手順の例を示すフローチャートである。図25では、図9と同じ処理内容のステップには同じステップ番号を付して示し、それらの処理内容の説明を省略する。
図25に示す処理は、図9におけるステップS22,S23,S25,S28の代わりに、それぞれステップS22a,S23a,S25a,S28aを含む。
[ステップS22a]初期設定部121は、フィルタセットの設定のための入力操作を受け付ける。例えば、フィルタセットデータベース141に登録されたフィルタグループの中から、本処理で使用されるフィルタグループが指定される。
[ステップS23a]初期設定部121は、ステップS22aで指定されたフィルタグループのうち、画像フィルタが複数含まれるフィルタグループについて、画像フィルタごとに選択確率を算出し、算出した選択確率をフィルタセットデータベース141aに設定する。この処理の詳細については、図27〜図29において説明する。
[ステップS25a]学習処理部122は、所定数の初期個体を含む個体群61(初期個体群)を生成する。学習処理部122は、初期個体の各ノードに組み込む画像フィルタを選択する際、まず、ステップS22aで指定されたフィルタグループをランダムに選択する。ここで、選択されたフィルタグループに複数の画像フィルタが含まれる場合、学習処理部122は、各画像フィルタに対応付けられた選択確率にしたがって画像フィルタを1つ選択する。このステップS25aの処理の詳細については、図26において説明する。
[ステップS28a]学習処理部122は、生成された子個体のいずれかのノードに突然変異を発生させ、元の子個体のノードに組み込まれていた画像フィルタを、ステップS22aで指定されたいずれかのフィルタグループ内の他のいずれかの画像フィルタに置き換える。
置き換え後の画像フィルタの選択処理は、次のように行われる。学習処理部122は、ステップS22aで指定されたフィルタグループをランダムに選択する。ここで、選択されたフィルタグループに複数の画像フィルタが含まれる場合、学習処理部122は、各画像フィルタに対応付けられた選択確率にしたがって画像フィルタを1つ選択する。このステップS28aでの置き換え後の画像フィルタの選択処理の詳細については、図25において説明する。
次に、ステップS25aにおいて、個体のノードに組み込む画像フィルタを選択する処理、および、ステップS28aにおいて、突然変異の対象ノードに対して新たに組み込む画像フィルタを選択する処理について、その詳細を説明する。これらの選択処理では、学習処理部122は、次の図26に示す処理を実行する。
図26は、画像フィルタの選択処理手順の例を示すフローチャートである。
[ステップS51]学習処理部122は、ステップS22aで指定されたフィルタグループの中から、フィルタグループをランダムに(すなわち、同じ確率で)選択する。
なお、このステップS51では、指定されたフィルタグループのそれぞれに含まれる画像フィルタの数を考慮して、フィルタグループごとの選択確率が設定されてもよい。例えば、フィルタグループ#1〜#3が指定され、フィルタグループ#1,#2,#3にそれぞれ含まれる画像フィルタの数がn1,n2,n3であるとする。この場合、例えば、フィルタグループ#1の選択確率はn1/(n1+n2+n3)と算出され、フィルタグループ#2の選択確率はn2/(n1+n2+n3)と算出され、フィルタグループ#3の選択確率はn3/(n1+n2+n3)と算出される。
[ステップS52]学習処理部122は、ステップS51で選択したグループに画像フィルタが複数含まれるかを判定する。選択したグループに画像フィルタが複数含まれる場合、ステップS53の処理が実行される。一方、選択したグループに画像フィルタが1つのみ含まれる場合、ステップS54の処理が実行される。後者の場合、選択する画像フィルタが、グループに含まれる画像フィルタに確定される。
[ステップS53]学習処理部122は、フィルタセットデータベース141a内の選択したフィルタグループに対応するレコードに、画像フィルタごとに設定された選択確率にしたがって、画像フィルタを選択する。
[ステップS54]学習処理部122は、選択した画像フィルタを、該当ノードに組み込む。
次に、図23に例示した周波数処理グループ、閾値処理グループおよび微分処理グループのそれぞれについて、画像フィルタごとに選択確率を設定する処理について説明する。
図27は、周波数処理グループに含まれる各画像フィルタに対する選択確率の設定処理例を示すフローチャートである。
[ステップS201]初期設定部121は、図25のステップS21で指定された学習データの中から、学習データ(すなわち、入力画像と目標画像のペア)を1つ選択する。
[ステップS202]初期設定部121は、選択した学習データに含まれる入力画像と目標画像とを、それぞれフーリエ変換する。
[ステップS203]初期設定部121は、フーリエ変換によって得られた各データを基に、前述の式(2)を用いて透過率H(ν)を算出する。
[ステップS204]ここでは、変数“σ”が、周波数処理グループに含まれる画像フィルタそれぞれの通し番号を示すものとして説明する。初期設定部121は、算出された透過率H(ν)と、周波数処理グループに含まれる各画像フィルタに対して特性情報として対応付けられた透過率(ν,σ)のそれぞれとの相関係数R(σ)を、前述の式(3)を用いて算出する。透過率(ν,σ)は、フィルタ特性データベース142aにおける周波数処理グループに対応する各レコードから取得される。
[ステップS205]初期設定部121は、図25のステップS21で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップS201の処理が再度実行される。すべての学習データを選択済みの場合、ステップS206の処理が実行される。
[ステップS206]初期設定部121は、ステップS201〜S205の処理で、同じ画像フィルタについて異なる学習データを基に算出された相関係数R(σ)の平均値Rave(σ)を算出する。これにより、平均値Rave(σ)が画像フィルタごとに算出される。
[ステップS207]初期設定部121は、画像フィルタごとの相関係数の平均値Rave(σ)を正規化することで、画像フィルタごとの選択確率を算出する。選択確率は、前述の式(4)に対して、各画像フィルタの相関係数R(σ)の代わりに画像フィルタごとの相関係数の平均値Rave(σ)を代入することで算出される。初期設定部121は、算出された選択確率を、フィルタセットデータベース141aにおける周波数処理グループに対応するレコードに対して、該当する画像フィルタに対応付けて設定する。
以上の図27の処理により、周波数処理グループに含まれる各画像フィルタによって実現される画像処理のそれぞれが、入力画像を対応する目標画像に変換する画像処理にどれだけ近いかを示す有効度が、相関係数またはその平均値として算出される。そして、各画像フィルタに対して、相関係数またはその平均値に応じた選択確率が設定される。これにより、学習処理部122の処理過程でノードに組み込む画像フィルタのフィルタグループとして周波数処理フィルタが選択された際に、目的とする処理に近い画像処理を実行するための画像処理が選択されてノードに組み込まれやすくなる。
図28は、閾値処理グループに含まれる各画像フィルタに対する選択確率の設定処理例を示すフローチャートである。
[ステップS211]初期設定部121は、図25のステップS21で指定された学習データの中から、学習データ(すなわち、入力画像と目標画像のペア)を1つ選択する。
[ステップS212]初期設定部121は、選択した学習データに含まれる入力画像の輝度値を基に、輝度ヒストグラムを算出する。
[ステップS213]初期設定部121は、輝度ヒストグラムの谷の位置を判定する。
[ステップS214]初期設定部121は、図25のステップS21で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップS211の処理が再度実行される。すべての学習データを選択済みの場合、ステップS215の処理が実行される。
[ステップS215]初期設定部121は、入力画像ごとに判定された谷の位置の平均値を算出する。
[ステップS216]初期設定部121は、算出された平均値を中心とした正規分布状の曲線を生成する。初期設定部121は、生成した曲線と、閾値処理グループに含まれる各閾値処理フィルタに設定されたパラメータとを比較することで、各閾値処理フィルタに対応する選択確率を決定する。初期設定部121は、決定された選択確率を、フィルタセットデータベース141aにおける閾値処理グループに対応するレコードに対して、該当する閾値処理フィルタに対応付けて設定する。
以上の図28の処理により、閾値処理グループに含まれる各閾値処理フィルタによって実現される画像処理のそれぞれが、入力画像を対応する目標画像に変換する画像処理にどれだけ近いかを示す有効度に応じて、各閾値処理パラメータに対応する選択確率が設定される。これにより、学習処理部122の処理過程でノードに組み込む画像フィルタのフィルタグループとして閾値処理グループが選択された際に、目的とする処理に近い画像処理を実行する閾値処理フィルタが選択されてノードに組み込まれやすくなる。
図29は、微分処理グループに含まれる各画像フィルタに対する選択確率の設定処理例を示すフローチャートである。
[ステップS221]初期設定部121は、図25のステップS21で指定された学習データの中から、学習データ(すなわち、入力画像と目標画像のペア)を1つ選択する。
[ステップS222]初期設定部121は、微分処理グループに含まれる各画像フィルタを用いて、選択した学習データに含まれる入力画像に対して画像処理を施す。これにより、画像フィルタの数だけ処理後の画像が得られる。
[ステップS223]初期設定部121は、得られた画像のそれぞれについて、輝度値の総和を算出する。これにより、画像フィルタごとに輝度値の総和が算出される。
[ステップS224]初期設定部121は、図25のステップS21で指定されたすべての学習データを選択済みかを判定する。未選択の学習データがある場合、ステップS221の処理が再度実行される。すべての学習データを選択済みの場合、ステップS225の処理が実行される。
[ステップS225]この時点で、それぞれの画像フィルタについて、学習データの数だけの輝度値の総和が算出されている。初期設定部121は、輝度値の総和の中から、対応する画像フィルタごとに総和の最大値を抽出する。初期設定部121は、抽出した各最大値が同じ値になるように、画像フィルタごとに算出された輝度値の総和を正規化する。
各画像フィルタによる処理後の画像における輝度値の総和の最大値は、入力画像によって異なる。上記の正規化処理により、入力画像ごとに異なる、処理後の画像における輝度値の総和の最大値の差が、誤差として現れにくくなる。
[ステップS226]初期設定部121は、画像フィルタごとに、正規化後の総和の平均値を算出する。
[ステップS227]初期設定部121は、画像フィルタごとに算出された平均値に基づいて、各画像フィルタに対応する選択確率を算出する。初期設定部121は、決定された選択確率を、フィルタセットデータベース141aにおける微分処理グループに対応するレコードに対して、該当する画像フィルタに対応付けて設定する。
例えば、ある画像フィルタに対応する選択確率は、その画像フィルタについて算出された平均値を、微分処理グループ内の全画像フィルタについて算出された平均値の合計によって除算することで計算される。これにより、平均値が高い画像フィルタほど、高い選択確率が設定される。
以上の図29の処理により、微分処理グループに含まれる各画像フィルタによって実現される画像処理のそれぞれが、入力画像からエッジを抽出するのにどれだけ有効かを示す有効度に応じて、各画像フィルタに対応する選択確率が設定される。これにより、学習処理部122の処理過程でノードに組み込む画像フィルタのフィルタグループとして微分処理グループが選択された際に、目的とする処理に近い画像処理を実行する画像フィルタが選択されたノードに組み込まれやすくなる。
以上の図27〜図29において説明した手順により、各フィルタグループ内の各画像フィルタに対して、学習データを用いた画像処理に対する有効性に応じた選択確率が設定される。
図26に示したように、学習処理部122は、個体のノードに組み込む画像フィルタのフィルタグループとして、画像フィルタが複数含まれるフィルタグループを選択した場合に、上記手順によって設定された選択確率にしたがって、フィルタグループ内の画像フィルタを選択する。これにより、目的とする処理に近い処理を実行する画像フィルタが選択されやすくなる。その結果、プログラム生成処理の過程で算出される適応度が高い値に収束しやすくなり、プログラム生成に要する時間が短縮される可能性が高くなる。
また、各フィルタグループに含める画像フィルタ数を多くした場合でも、プログラム生成に要する時間が増大する可能性を低減できる。したがって、目的とする処理に近い高品質な画像処理を実現する画像処理プログラムを、短時間で生成できるようになる。さらに、多くの画像フィルタから適切な画像フィルタが選択されやすくなるため、生成される画像処理プログラムにおいて、適切とは言えない画像フィルタが多段に接続される可能性が低くなる。したがって、個体に生成されるノード数が増大することも防止され、この点も、プログラム生成処理時間の短縮に寄与する。
なお、上記の各実施の形態に示した装置(プログラム生成装置10,10aおよび画像処理装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
10 プログラム生成装置
11 設定部
12 選択処理部
21,22,23 部分プログラム
30 学習データ
31 入力画像
32 目標画像
41 個体
青木紳也、長尾智晴、「木構造画像変換の自動構築法ACTIT」、情報メディア学会誌Vol.53,No.6、1999年6月20日、p.888−894
また、パラメータ可変プログラムに設定可能なパラメータの数が多いほど、目的とする処理に近い高品質な画像処理プログラムが生成される可能性が高まる反面、プログラム生成処理に要する時間が長くなる可能性も高まる。上記の選択処理部12の処理により、パラメータ可変プログラムに設定可能なパラメータの数を多くした場合でも、その中から有効なパラメータが実際に設定される可能性が高くなる。このため、プログラム生成処理時間が増大する可能性が抑制される。したがって、高品質な画像処理プログラムを短時間で生成できる可能性が高められる。
ネットワークインタフェース107は、ネットワーク107aを介して他の装置との間でデータの送受信を行う。
通信インタフェース108は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース108には、外部デバイスとしてカメラ108aが接続されており、通信インタフェース108は、カメラ108aから送信された画像データをプロセッサ101に送信する。
次に、初期設定部121は、入力画像fおよび目標画像gに基づいて求められた透過率H(ν)と、フィルタ特性データベース142に特性情報として登録された、パラメータごとの透過率L(ν,σ)のそれぞれとの相関を求める。透過率H(ν)と、パラメータσに対応する透過率(ν,σ)との相関を示す相関係数R(σ)は、例えば、次の式(3)を用いて求められる。
[ステップS104]初期設定部121は、算出された透過率H(ν)と、ガウシアンフィルタに設定可能な各パラメータσに対して特性情報として対応付けられた透過率(ν,σ)のそれぞれとの相関係数R(σ)を、上記の式(3)を用いて算出する。透過率(ν,σ)は、フィルタ特性データベース142におけるガウシアンフィルタに対応する各レコードから取得される。
また、個体に組み込むために選択可能な部分プログラムの数が多いほど、目的とする処理に近い高品質な画像処理プログラムが生成される可能性が高まる反面、プログラム生成処理に要する時間が長くなる可能性も高まる。上記の選択処理部12aの処理により、選択可能な部分プログラムの数を多くした場合でも、その中から有効な部分プログラムが選択されて個体に組み込まれる可能性が高くなる。このため、プログラム生成処理時間が増大する可能性が抑制される。したがって、高品質な画像処理プログラムを短時間で生成できる可能性が高められる。
図23は、画像フィルタのグループ分けの例を示す図である。図23に示す分類表301においては、フィルタグループとして“周波数処理グループ”、“閾値処理グループ”、“微分処理グループ”が例示されている。
[ステップS204]ここでは、変数“σ”が、周波数処理グループに含まれる画像フィルタそれぞれの通し番号を示すものとして説明する。初期設定部121は、算出された透過率H(ν)と、周波数処理グループに含まれる各画像フィルタに対して特性情報として対応付けられた透過率(ν,σ)のそれぞれとの相関係数R(σ)を、前述の式(3)を用いて算出する。透過率(ν,σ)は、フィルタ特性データベース142aにおける周波数処理グループに対応する各レコードから取得される。
以上の図27の処理により、周波数処理グループに含まれる各画像フィルタによって実現される画像処理のそれぞれが、入力画像を対応する目標画像に変換する画像処理にどれだけ近いかを示す有効度が、相関係数またはその平均値として算出される。そして、各画像フィルタに対して、相関係数またはその平均値に応じた選択確率が設定される。これにより、学習処理部122の処理過程でノードに組み込む画像フィルタのフィルタグループとして周波数処理グループが選択された際に、目的とする処理に近い画像処理を実行するための画像フィルタが選択されてノードに組み込まれやすくなる。

Claims (20)

  1. 複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラム生成装置において、
    前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量と、前記複数の部分プログラムのうちのパラメータ可変プログラムに対して選択的に設定可能な複数のパラメータとの関係に基づいて、前記複数のパラメータのそれぞれに対応する選択確率を設定する設定部と、
    前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記個体の突然変異対象の位置に新たに組み込む部分プログラムとして前記パラメータ可変プログラムを選択した場合、前記複数のパラメータの中から各パラメータに対応する前記選択確率にしたがってパラメータを1つ選択し、当該パラメータを設定した前記パラメータ可変プログラムを前記個体に組み込む選択処理部と、
    を有することを特徴とするプログラム生成装置。
  2. 前記選択処理部は、さらに、前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた初期個体を生成する際に、前記初期個体に組み込む部分プログラムとして前記パラメータ可変プログラムを選択した場合、前記複数のパラメータの中から各パラメータに対応する前記選択確率にしたがってパラメータを1つ選択し、当該パラメータを設定した前記パラメータ可変プログラムを前記初期個体に組み込むことを特徴とする請求項1記載のプログラム生成装置。
  3. 前記設定部は、前記入力画像および前記目標画像をそれぞれ周波数領域のデータに変換した第1の変換データおよび第2の変換データを算出し、前記第1の変換データと前記第2の変換データとに基づく情報を前記特徴量として算出することを特徴とする請求項1または2記載のプログラム生成装置。
  4. 前記複数のパラメータのそれぞれが設定された前記パラメータ可変プログラムそれぞれについての透過率特性を記憶する記憶部をさらに有し、
    前記設定部は、前記第1の変換データと前記第2の変換データとに基づく透過率を前記特徴量として算出し、前記記憶部に記憶された前記透過率特性のそれぞれと算出された前記透過率との相関を算出し、算出された前記相関に基づいて前記複数のパラメータのそれぞれに対応する前記選択確率を設定する、
    ことを特徴とする請求項3記載のプログラム生成装置。
  5. 前記設定部は、前記特徴量として、前記入力画像の各画素のデータのヒストグラムを算出することを特徴とする請求項1または2記載のプログラム生成装置。
  6. 前記設定部は、前記複数のパラメータのそれぞれが設定された前記パラメータ可変プログラムそれぞれを用いて、前記入力画像を処理して得られる複数の変換画像を生成し、前記複数の変換画像に基づく情報を前記特徴量として算出することを特徴とする請求項1または2記載のプログラム生成装置。
  7. 前記設定部は、さらに、前記複数の部分プログラムのうち、前記パラメータ可変プログラムを除く一の部分プログラムに対して、前記目標画像に基づいてパラメータを設定することを特徴とする請求項1〜6のいずれか1項に記載のプログラム生成装置。
  8. 複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラム生成装置において、
    前記複数の部分プログラムを分類して生成された複数のグループのうち、部分プログラムが複数含まれるグループについて、当該グループに含まれる各部分プログラムと、前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量との関係に基づいて、当該グループに含まれる部分プログラムのそれぞれに対応する選択確率を設定する設定部と、
    前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記複数のグループの中からグループを1つ選択し、当該グループに部分プログラムが複数含まれる場合、当該グループに含まれる部分プログラムの中から各部分プログラムに対応する前記選択確率にしたがって部分プログラムを1つ選択し、当該部分プログラムを前記個体の突然変異対象の位置に組み込む選択処理部と、
    を有することを特徴とするプログラム生成装置。
  9. 前記選択処理部は、さらに、前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた初期個体を生成する際に、前記複数のグループの中からグループを1つ選択し、当該グループに部分プログラムが複数含まれる場合、当該グループに含まれる部分プログラムの中から各部分プログラムに対応する前記選択確率にしたがって部分プログラムを1つ選択し、当該部分プログラムを前記初期個体の1つのノードに組み込むことを特徴とする請求項8記載のプログラム生成装置。
  10. 前記複数のグループのうち部分プログラムが複数含まれるグループには、設定されたパラメータが異なる同種類の部分プログラムが複数含まれることを特徴とする請求項8または9記載のプログラム生成装置。
  11. 前記複数のグループのうち部分プログラムが複数含まれるグループについて、当該グループに含まれる各部分プログラムに対応する前記選択確率は、互いに同じ計算方法によって算出されることを特徴とする請求項8〜10のいずれか1項に記載のプログラム生成装置。
  12. 前記設定部は、前記入力画像および前記目標画像をそれぞれ周波数領域のデータに変換した第1の変換データおよび第2の変換データを算出し、前記第1の変換データと前記第2の変換データとに基づく情報を前記特徴量として算出することを特徴とする請求項8〜11のいずれか1項に記載のプログラム生成装置。
  13. 前記複数のグループのうち部分プログラムが複数含まれるグループについて、当該グループに含まれる部分プログラムのそれぞれについての透過率特性を記憶する記憶部をさらに有し、
    前記設定部は、前記第1の変換データと前記第2の変換データとに基づく透過率を前記特徴量として算出し、前記記憶部に記憶された前記透過率特性のそれぞれと算出された前記透過率との相関を算出し、算出された前記相関に基づいて当該グループに含まれる部分プログラムのそれぞれに対応する前記選択確率を設定する、
    ことを特徴とする請求項12記載のプログラム生成装置。
  14. 前記設定部は、前記特徴量として、前記入力画像の各画素のデータのヒストグラムを算出することを特徴とする請求項8〜11のいずれか1項に記載のプログラム生成装置。
  15. 前記設定部は、前記複数のグループのうち部分プログラムが複数含まれるグループについて、当該グループに含まれる部分プログラムをそれぞれ用いて、前記入力画像を処理して得られる複数の変換画像を生成し、前記複数の変換画像に基づく情報を前記特徴量として算出することを特徴とする請求項8〜11のいずれか1項に記載のプログラム生成装置。
  16. 前記設定部は、さらに、前記複数のグループのうち部分プログラムが1つ含まれるグループについて、当該部分プログラムに対して、前記目標画像に基づいてパラメータを設定することを特徴とする請求項8〜15のいずれか1項に記載のプログラム生成装置。
  17. 複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラム生成方法において、
    コンピュータが、
    前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量と、前記複数の部分プログラムのうちのパラメータ可変プログラムに対して選択的に設定可能な複数のパラメータとの関係に基づいて、前記複数のパラメータのそれぞれに対応する選択確率を設定し、
    前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記個体の突然変異対象の位置に新たに組み込む部分プログラムとして前記パラメータ可変プログラムを選択した場合、前記複数のパラメータの中から各パラメータに対応する前記選択確率にしたがってパラメータを1つ選択し、当該パラメータを設定した前記パラメータ可変プログラムを前記個体に組み込む、
    ことを特徴とするプログラム生成方法。
  18. 複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラム生成方法において、
    コンピュータが、
    前記複数の部分プログラムを分類して生成された複数のグループのうち、部分プログラムが複数含まれるグループについて、当該グループに含まれる各部分プログラムと、前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量との関係に基づいて、当該グループに含まれる部分プログラムのそれぞれに対応する選択確率を設定し、
    前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記複数のグループの中からグループを1つ選択し、当該グループに部分プログラムが複数含まれる場合、当該グループに含まれる部分プログラムの中から各部分プログラムに対応する前記選択確率にしたがって部分プログラムを1つ選択し、当該部分プログラムを前記個体の突然変異対象の位置に組み込む、
    ことを特徴とするプログラム生成方法。
  19. 複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラムにおいて、
    コンピュータに、
    前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量と、前記複数の部分プログラムのうちのパラメータ可変プログラムに対して選択的に設定可能な複数のパラメータとの関係に基づいて、前記複数のパラメータのそれぞれに対応する選択確率を設定し、
    前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記個体の突然変異対象の位置に新たに組み込む部分プログラムとして前記パラメータ可変プログラムを選択した場合、前記複数のパラメータの中から各パラメータに対応する前記選択確率にしたがってパラメータを1つ選択し、当該パラメータを設定した前記パラメータ可変プログラムを前記個体に組み込む、
    処理を実行させることを特徴とするプログラム。
  20. 複数の部分プログラムの中から選択された部分プログラムの組み合わせを、入力画像と対応する目標画像とを含む学習データを用いて遺伝的プログラミングによって決定することで、画像処理プログラムを生成するプログラムにおいて、
    コンピュータに、
    前記複数の部分プログラムを分類して生成された複数のグループのうち、部分プログラムが複数含まれるグループについて、当該グループに含まれる各部分プログラムと、前記学習データに含まれる情報のうち少なくとも前記入力画像から得られる特徴量との関係に基づいて、当該グループに含まれる部分プログラムのそれぞれに対応する選択確率を設定し、
    前記複数の部分プログラムの中から選択された部分プログラムを複数組み合わせた個体を突然変異によって進化させる際に、前記複数のグループの中からグループを1つ選択し、当該グループに部分プログラムが複数含まれる場合、当該グループに含まれる部分プログラムの中から各部分プログラムに対応する前記選択確率にしたがって部分プログラムを1つ選択し、当該部分プログラムを前記個体の突然変異対象の位置に組み込む、
    処理を実行させることを特徴とするプログラム。
JP2016528725A 2014-06-19 2014-06-19 プログラム生成装置、プログラム生成方法およびプログラム Active JP6344471B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/066278 WO2015194006A1 (ja) 2014-06-19 2014-06-19 プログラム生成装置、プログラム生成方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2015194006A1 true JPWO2015194006A1 (ja) 2017-04-20
JP6344471B2 JP6344471B2 (ja) 2018-06-20

Family

ID=54935036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016528725A Active JP6344471B2 (ja) 2014-06-19 2014-06-19 プログラム生成装置、プログラム生成方法およびプログラム

Country Status (5)

Country Link
US (1) US10303447B2 (ja)
EP (1) EP3159790B1 (ja)
JP (1) JP6344471B2 (ja)
CN (1) CN106462401B (ja)
WO (1) WO2015194006A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016208037A1 (ja) * 2015-06-25 2016-12-29 富士通株式会社 プログラム生成装置、プログラム生成方法および生成プログラム
JP6631641B2 (ja) * 2016-01-20 2020-01-15 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP2017182552A (ja) * 2016-03-31 2017-10-05 株式会社Screenホールディングス 処理フロー生成システム、処理フロー生成方法、およびプログラム
WO2018078735A1 (ja) * 2016-10-26 2018-05-03 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP6939162B2 (ja) * 2017-07-13 2021-09-22 横河電機株式会社 プラント制御支援装置、プラント制御支援方法、プラント制御支援プログラム及び記録媒体
EP3683763A4 (en) * 2017-09-11 2020-09-16 Fujitsu Limited INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING PROGRAM
US11132180B2 (en) * 2018-01-05 2021-09-28 Microsoft Technology Licensing, Llc Neural-guided deductive search for program synthesis
CN112905181B (zh) * 2019-12-04 2023-10-10 杭州海康威视数字技术股份有限公司 一种模型编译、运行方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282822A (ja) * 1998-03-26 1999-10-15 Toshiba Corp 画像処理プログラム合成方法及びその装置並びに最適解探索方法及びその装置
JP2007200246A (ja) * 2006-01-30 2007-08-09 Sharp Corp 画像処理アルゴリズムの評価方法、生成方法、装置、プログラムおよび記録媒体
JP2010244363A (ja) * 2009-04-07 2010-10-28 Nikon Corp 遺伝的処理装置、遺伝的処理方法およびプログラム
US20140104450A1 (en) * 2012-10-12 2014-04-17 Nvidia Corporation System and method for optimizing image quality in a digital camera

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039716A1 (en) * 2002-08-23 2004-02-26 Thompson Dean S. System and method for optimizing a computer program
US7577935B2 (en) * 2004-02-14 2009-08-18 Matthew T. Reynolds Generative programming system and method employing focused grammars
JP4376199B2 (ja) 2005-03-31 2009-12-02 国立大学法人横浜国立大学 画像処理装置
EP1830320A4 (en) * 2004-12-24 2010-10-20 Nat Univ Corp Yokohama Nat Uni IMAGE PROCESSOR
US7711674B2 (en) * 2005-11-01 2010-05-04 Fuji Xerox Co., Ltd. System and method for automatic design of components in libraries
US8250006B2 (en) * 2007-03-19 2012-08-21 Dow Global Technologies Llc Inferential sensors developed using three-dimensional pareto-front genetic programming
JP2009151371A (ja) 2007-12-18 2009-07-09 Dainippon Screen Mfg Co Ltd 画像処理装置、画像処理方法およびプログラム
US20100179930A1 (en) * 2009-01-13 2010-07-15 Eric Teller Method and System for Developing Predictions from Disparate Data Sources Using Intelligent Processing
JP5284863B2 (ja) * 2009-04-30 2013-09-11 独立行政法人理化学研究所 画像処理装置、画像処理方法およびプログラム
US8885565B2 (en) * 2012-09-28 2014-11-11 Intel Corporation Mixed off-site/on-site prediction computation for reducing wireless reconnection time of a computing device
JP6179224B2 (ja) * 2013-07-02 2017-08-16 富士通株式会社 画像処理フィルタの作成装置及びその方法
GB201317203D0 (en) * 2013-09-27 2013-11-13 Cory Robert Computer program generation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282822A (ja) * 1998-03-26 1999-10-15 Toshiba Corp 画像処理プログラム合成方法及びその装置並びに最適解探索方法及びその装置
JP2007200246A (ja) * 2006-01-30 2007-08-09 Sharp Corp 画像処理アルゴリズムの評価方法、生成方法、装置、プログラムおよび記録媒体
JP2010244363A (ja) * 2009-04-07 2010-10-28 Nikon Corp 遺伝的処理装置、遺伝的処理方法およびプログラム
US20140104450A1 (en) * 2012-10-12 2014-04-17 Nvidia Corporation System and method for optimizing image quality in a digital camera

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AOKI S ET AL.: "Automatic construction of tree-structural image transformation using genetic programming", PROCEEDINGS OF 1999 INTERNATIONAL CONFERENCE ON IMAGE PROCESSING, JPN6018001982, 28 October 1999 (1999-10-28), pages 529 - 533, XP010369160, ISSN: 0003725305, DOI: 10.1109/ICIP.1999.821685 *
藤嶋 航 ほか: "GPによる構造最適化とGAによる数値最適化を併用した画像処理自動生成法PT−ACTIT", 映像情報メディア学会誌, vol. 第59巻/第11号, JPN6018001981, 1 November 2005 (2005-11-01), pages 1687 - 1693, ISSN: 0003725304 *

Also Published As

Publication number Publication date
EP3159790A4 (en) 2017-06-21
US20170083295A1 (en) 2017-03-23
US10303447B2 (en) 2019-05-28
WO2015194006A1 (ja) 2015-12-23
EP3159790A1 (en) 2017-04-26
EP3159790B1 (en) 2021-03-24
CN106462401B (zh) 2019-09-10
CN106462401A (zh) 2017-02-22
JP6344471B2 (ja) 2018-06-20

Similar Documents

Publication Publication Date Title
JP6344471B2 (ja) プログラム生成装置、プログラム生成方法およびプログラム
EP3156897B1 (en) Program generation device, program generation method and program
JP6511986B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP6631641B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
WO2017068675A1 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP6468356B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP2012216207A (ja) 複数の画像の記述的情報を取得する方法及び装置、並びに画像マッチング方法
EP3822872A1 (en) Information processing device, information processing method, and information processing program
JP2011138194A (ja) 情報処理装置、情報処理方法およびプログラム
JP6729810B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Marrugo et al. Improving the blind restoration of retinal images by means of point-spread-function estimation assessment
CN108876759B (zh) 图像探测方法、装置、系统和存储介质
US9652832B2 (en) Image processing apparatus, image pickup apparatus, image processing method, and non-transitory computer-readable storage medium which perform image restoration processing
US20210042550A1 (en) Information processing device, information processing method, and computer-readable recording medium recording information processing program
JP2007199865A (ja) 画像処理アルゴリズム評価装置、画像処理アルゴリズムの生成装置および画像検査装置ならびに画像処理アルゴリズム評価方法、画像処理アルゴリズムの生成方法および画像検査方法
Ashrafinia et al. Towards continualized task-based resolution modeling in PET imaging
WO2018173257A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2016146022A (ja) モデルベース開発支援装置、モデルベース開発支援方法、およびモデルベース開発支援プログラム
JPWO2017056320A1 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP2019159406A (ja) データ解析システム、データ解析方法、及びプログラム
JP2013050762A (ja) 線分および円弧検出装置
JP6171732B2 (ja) 作物判別装置、作物判別プログラム及び作物判別方法
JP2020107210A (ja) スキルマップ処理装置、スキルマップ処理方法、及びスキルマップ処理プログラム
Gan et al. Memory efficient and constant time 2D-recursive spatial averaging filter for embedded implementations
JP2010026944A (ja) 画像フィルタ生成装置、画像フィルタ生成方法およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180328

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180507

R150 Certificate of patent or registration of utility model

Ref document number: 6344471

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150