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

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

Info

Publication number
JP6511986B2
JP6511986B2 JP2015128263A JP2015128263A JP6511986B2 JP 6511986 B2 JP6511986 B2 JP 6511986B2 JP 2015128263 A JP2015128263 A JP 2015128263A JP 2015128263 A JP2015128263 A JP 2015128263A JP 6511986 B2 JP6511986 B2 JP 6511986B2
Authority
JP
Japan
Prior art keywords
individuals
program
image
fitness
individual
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.)
Active
Application number
JP2015128263A
Other languages
English (en)
Other versions
JP2017010475A (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
Priority to JP2015128263A priority Critical patent/JP6511986B2/ja
Priority to US15/171,416 priority patent/US10062007B2/en
Publication of JP2017010475A publication Critical patent/JP2017010475A/ja
Application granted granted Critical
Publication of JP6511986B2 publication Critical patent/JP6511986B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • 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
    • 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/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching

Landscapes

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

Description

本発明は、プログラム生成装置、プログラム生成方法および生成プログラムに関する。
所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術が注目されている。この技術は、入力画像と目標となる処理結果(例えば、目標画像)とを用いて、画像処理のための部分プログラム(例えば、画像フィルタのプログラム)を組み合わせて生成される画像処理プログラムを、遺伝的プログラミングによって最適化していくものである。
遺伝的プログラミングを利用した装置の例として、使用者が、処理対象画像の一部の領域を指定するとともに、指定された領域に使用者所望の画像処理が施された目標画像を作成するだけで、所望の処理結果が得られる画像処理手順が生成される画像処理装置が提案されている。
また、テンプレートマッチングで用いられる特徴量抽出方法を遺伝的プログラミングによって学習することも提案されている。
特開2009−151371号公報 特開2014−26521号公報
青木紳也、長尾智晴、「木構造画像変換の自動構築法ACTIT」、情報メディア学会誌Vol.53,No.6、1999年6月20日、p.890−892
画像処理プログラムの一例として、入力画像におけるテンプレート画像の位置を検出するための画像認識プログラムを遺伝的プログラミングによって自動生成することが考えられる。この場合、例えば、学習データとして入力画像と当該画像におけるテンプレート画像の正解位置とが利用される。また、画像認識処理の出力は入力画像におけるテンプレート画像の位置であるので、学習途中におけるアルゴリズムの評価を、入力画像におけるテンプレート画像の位置と正解位置との誤差に基づいて行う方法が考えられる。しかし、このように位置の比較によってアルゴリズムを評価するだけでは、入力画像によって認識位置精度に大きなバラツキが生じるという問題がある。
1つの側面では、本発明は、認識位置精度の高い画像認識プログラムを生成可能なプログラム生成装置、プログラム生成方法および生成プログラムを提供することを目的とする。
1つの案では、プログラムを遺伝的プログラミングによって生成するプログラム生成装置が提供される。このプログラム生成装置は、記憶部と演算部とを有する。記憶部は、入力画像におけるテンプレート画像の位置を検出する画像認識プログラムの構成要素となる複数の部分プログラムを記憶する。演算部は、複数の部分プログラムの中からそれぞれ2以上の部分プログラムを組み合わせることで複数の個体を生成する。演算部は、複数の個体をそれぞれ用いて、入力画像の各画素にテンプレート画像との類似度を対応づけた類似度マップを算出する。演算部は、類似度マップの分布に基づいて複数の個体のそれぞれについての適応度を算出する。演算部は、複数の個体の中から適応度が所定閾値以上の個体を画像認識プログラムとして出力する。
また、1つの案では、上記のプログラム生成装置と同様の処理がコンピュータにより実効されるプログラム生成方法が提供される。
さらに、1つの案では、上記のプログラム生成装置と同様の処理をコンピュータに実行させる生成プログラムが提供される。
1つの側面では、認識位置精度の高い画像認識プログラムを生成できる。
第1の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。 個体の一例を示す図である。 個体に含めることが可能な要素の例を示す図である。 画像認識プログラムの生成処理手順の比較例を示す図である。 交叉の例を示す図である。 突然変異の例を示す図である。 第1の個体例に基づく類似度マップを示す図である。 第2の個体例に基づく類似度マップを示す図である。 類似度マップの分布と目標分布との形状比較の例を示す図である。 画像処理装置のハードウェア構成例を示す図である。 画像処理装置が備える処理機能の構成例を示すブロック図である。 テンプレート画像の生成例を示す図である。 プログラム生成処理手順の例を示すフローチャートである。 目標分布の形状変化の例を示す図である。 世代交代の回数と適応度および類似度マップとの関係について示す図である。 入力画像および目標分布の例を示す図である。 第3の実施の形態におけるプログラム生成処理手順の例を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。図1に示すプログラム生成装置10は、画像に含まれるテンプレート画像1aの位置を検出するための画像認識プログラムを、遺伝的プログラミングによって生成する。
プログラム生成装置10は、記憶部11および演算部12を有する。記憶部11は、例えば、RAM(Random Access Memory)などの揮発性記憶装置、あるいはHDD(Hard Disk Drive)、フラッシュメモリなどの不揮発性記憶装置として実装される。演算部12は、例えば、プロセッサである。
記憶部11は、画像認識プログラムの構成要素となる複数の部分プログラム2a,2b,2c,・・・を記憶する。このような部分プログラムとしては、例えば、テンプレートマッチングの前処理のための各種の画像フィルタなどがある。
演算部12は、これらの部分プログラム2a,2b,2c,・・・の中からそれぞれ2以上の部分プログラムを組み合わせることにより、複数の個体3a〜3dを生成する(ステップS1)。すなわち、個体3a〜3dはそれぞれ、部分プログラムが組み合わされたプログラムである。この個体生成処理は、例えば、次のような手順を含む。
演算部12は、部分プログラム2a,2b,2c,・・・の中からそれぞれ2以上の部分プログラムを組み合わせることにより、多数の個体を含む個体群を生成する。この個体群に含まれる個体は、最初に演算部12によって生成された初期個体のみであってもよいし、初期個体の一部が生存選択された個体によって入れ替えられた個体であってもよい。演算部12は、個体群の中から所定数の親個体を選択する。また、演算部12は、選択した親個体に対して所定の進化処理を施すことで子個体を生成する。
以上の手順により、個体3a〜3dが生成される。個体3a〜3dには、子個体のみが含まれてもよいし、子個体と親個体とが含まれてもよい。
次に、演算部12は、生成された個体3a〜3dのそれぞれについての類似度マップ4a〜4dを算出し、類似度マップ4a〜4dに基づいて個体3a〜3dのそれぞれについての適応度を算出する(ステップS2)。類似度マップの算出では、テンプレート画像1aと、入力画像1bと、入力画像1bにおけるテンプレート画像1aの正解位置1cとが利用される。類似度マップは、次のような手順で算出される。
演算部12は、個体3aを用いて、入力画像1bにおけるテンプレート画像1aの位置の検出処理を実行する。演算部12は、この検出処理の過程で、個体3aに対応する類似度マップを算出する。類似度マップは、入力画像1bの各画素に対してテンプレート画像1aとの類似度を対応づけた情報である。なお、演算部12は、上記の検出処理を最後まで実行する必要はなく、類似度マップを算出した段階まで実行すればよい。個体3b〜3dにそれぞれ対応する類似度マップ4b〜4dについても、同様の手順で対応する算出される。
適応度は、類似度マップ4a〜4dのそれぞれの分布に基づいて算出される。適応度は、類似度マップの分布の仕方が目標とする分布の仕方に近いほど、高い値とされる。例えば、適応度は、類似度マップ4a〜4dのそれぞれの分布と、目標分布5との比較に基づいて算出される。図1に例示する目標分布5は、入力画像1bにおける正解位置1cにピークを有し、そのピークから離れるほど類似度が低下するような形状となっている。このような分布の例としては、正解位置1cにピークを有する正規分布がある。
次に、演算部12は、個体3a〜3dの中から、適応度が所定閾値以上の個体を画像認識プログラムとして出力する(ステップS3)。なお、個体3a〜3dの中に適応度が所定閾値以上の個体が存在しない場合には、演算部12は、例えば、個体3a〜3dの中から適応度に基づいて生存個体を選択し、上記の個体群の一部を生存個体によって置換してもよい。
以上の処理によれば、プログラム生成装置10は、個体3a〜3dのそれぞれについて適応度を個体3a〜3dのそれぞれに基づく類似度マップ4a〜4dの分布に基づいて算出する。そして、プログラム生成装置10は、このような個体3a〜3dのそれぞれについての適応度に基づいて、最終的な画像認識プログラムを出力する。これにより、テンプレート画像1aの位置の検出精度の高い画像認識プログラムを生成することができる。
ここで、遺伝的プログラミングの学習過程においては、類似度マップの分布形状は様々な形状となり、その形状の違いが適応度の算出精度、すなわち個体3a〜3dの評価の精度に影響を与えることがある。プログラム生成装置10は、類似度マップの分布の適正度合いに基づいて適応度を算出することにより、適応度の算出精度を向上させ、その結果、高精度な画像認識プログラムを生成できる。
例えば、学習過程における類似度マップの分布形状は、互いに近い類似度の複数のピークを有するような形状になる場合がある。このような形状の場合、たとえ複数のピークのうち正解位置1cのピークが最大の類似度であったとしても、撮像時の環境変化などによって入力画像が変化した場合に、正解位置1c以外のピークが最大の類似度になり、位置の誤検出が発生する可能性がある。すなわち、類似度マップが上記のような形状になるような個体(プログラム)は、ロバスト性が低い。
例えば、個体3a〜3dのそれぞれの適応度を、類似度が最大値となる位置と正解位置1cとの誤差だけに基づいて算出する方法では、上記のようなロバスト性を評価することはできない。このため、ロバスト性の低い個体の適応度を高く評価してしまい、結果的に位置検出精度の低い画像認識プログラムが生成される可能性がある。プログラム生成装置10によれば、類似度マップの分布に基づくことで、ロバスト性を正しく評価した適応度を算出することができ、上記の問題を改善することができる。
〔第2の実施の形態〕
以下の説明では、第2の実施の形態について説明する前に、まず、図2〜図6を用いて、遺伝的プログラミングによる画像認識プログラムの基本的な生成手順を示す比較例について説明し、さらに、図7,図8を用いて、比較例における問題点について説明する。そして、その後に第2の実施の形態に係る画像処理装置について説明する。ここで、比較例および第2の実施の形態のどちらでも、生成される画像認識プログラムは、テンプレート画像が入力画像内のどの位置に存在するかを検出するテンプレートマッチング処理を実行するためのプログラムである。
図2は、個体の一例を示す図である。遺伝的プログラミングでは、最初に複数の個体を含む個体群が生成される。最初に生成される個体は「初期個体」と呼ばれる。各個体は、複数の部分プログラムが組み合わされた画像処理プログラムである。
テンプレートマッチング処理を実現する場合、図2に例示するように、各個体は、2つの入力端子I1,I2、出力端子O1、および複数の部分プログラムという要素によって構成される。入力端子I1には、テンプレート画像の位置の探索対象とされる入力画像が入力され、入力端子I2には、テンプレート画像が入力される。出力端子O1からは、入力画像におけるテンプレート画像の位置が出力される。
個体には、マッチング処理を実行する部分プログラムMと、その他の処理を実行する1以上の部分プログラムとが含まれる。以下の説明では、その他の処理を実行する部分プログラムの例として画像フィルタを適用する。図2に例示した個体には、画像フィルタF1〜F7が含まれている。
初期個体は、木構造で定義される。なお、図2の例では、フィルタF3の出力がフィルタF4,F5に接続されているが、実際には2つのフィルタF3の出力がそれぞれフィルタF4,F5に接続されることで、木構造とされる。
初期個体は、さらに次のようなルールにしたがって生成されるものとする。マッチング処理を実行する部分プログラムMの出力は、出力端子O1の入力に接続される。部分プログラムMは第1の入力と第2の入力とを備え、それらのうち第2の入力には、入力端子I2の出力が接続される。部分プログラムMの第1の入力と入力端子I1との間には、1以上の画像フィルタが配置される。
部分プログラムMの第1の入力と入力端子I1との間に配置される画像フィルタ(図2の例では画像フィルタF1〜F7)は、テンプレートマッチング処理の前処理を実行するものである。この前処理とは、部分プログラムMでの処理に適するように入力画像を加工するものである。このような処理としては、入力画像からの特徴量の抽出などがある。部分プログラムMは、第1の入力から入力される画像内を走査し、その画像の各画素を中心とした領域ごとに、入力端子I2から第2の入力を介して入力されたテンプレート画像との類似度を算出する。マッチングの結果として、類似度が最大の領域に対応する画素の座標が出力端子O1を介して出力される。なお、以下の説明では、マッチングの結果として出力される座標を「マッチング位置」と記載する場合がある。
図3は、個体に含めることが可能な要素の例を示す図である。図3の表40に示す要素のうち、平滑化フィルタ、ソベルフィルタ、ラプラシアンフィルタ、階調反転フィルタ、差分フィルタ、積算フィルタ、差分絶対値フィルタ、閾値処理フィルタ、エッジ検出フィルタおよびNo Changeフィルタは、個体に含めることが可能な画像フィルタの例である。なお、No Changeフィルタは、入力画像に対して何も処理を施さないフィルタである。
初期個体が生成される際には、初期個体に含められる画像フィルタが、表40のようにあらかじめ用意された画像フィルタの中から選択される。また、後述する進化過程の突然変異の際にも、表40のようにあらかじめ用意された画像フィルタの中から置換後の画像フィルタが選択される。
図4は、画像認識プログラムの生成処理手順の比較例を示す図である。画像認識プログラムの生成処理の前に、1つ以上の学習データ50とテンプレート画像51とが用意される。学習データ50には、入力画像50aと、入力画像50aにおけるテンプレート画像51の正解位置50bとが含まれる。入力画像50aは、例えば、カメラによって被写体を撮像することによって得られる。
遺伝的プログラミングによる画像認識プログラムの生成処理は、例えば、次のように実行される。まず、複数の初期個体による個体群61が生成される(ステップS11)。各初期個体のノードのうち、マッチング処理を実行する部分プログラムMの第1の入力の配下のノードには、前述のようにあらかじめ用意された複数の画像フィルタの中から、画像フィルタがランダムに選択されて組み込まれる。次に、生成された個体群61の中から、ランダムに2つの親個体が取り出される(ステップS12)。
次に、これら2つの親個体に対して進化過程の処理が施されることで、2つ以上の子個体が生成される(ステップS13)。進化過程では、2つの親個体に対して交叉処理および突然変異処理が行われる。2つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、3つ以上の子個体が生成されてもよい。
次に、進化過程を経て生成された子個体、および元の親個体のそれぞれについて、適応度が計算される(ステップS14)。この処理では、対象の個体それぞれを用いたテンプレートマッチング処理が、学習データ50の入力画像50aに対して実行され、処理結果の正しさを示す適応度が計算される。処理結果とは、入力画像50aにおけるテンプレート画像51の位置(マッチング位置)である。適応度の計算方法としては、算出されたマッチング位置と正解位置50bとの差分を計算する方法がある。なお、複数の学習データ50が存在する場合、個体それぞれについて、複数の学習データ50それぞれの入力画像50aを用いて得られた適応度の平均値が算出される。
ここで、いずれかの個体の適応度が所定の閾値以上であった場合には、その個体が最終的な画像認識プログラムとして出力され、プログラム生成処理が終了する。一方、すべての個体の適応度が所定の閾値未満であった場合には、生成された各子個体および元の2つの親個体を含む個体群62の中から、生存選択が行われる(ステップS15)。この生存選択では、個体群62の中から、算出された適応度が最大の個体が選択される。さらに、個体群62内の残りの個体の中から、所定の方法で個体が1つ選択される。例えば、残りの個体の中から、適応度に応じた確率で個体が選択される。
このような生存選択によって選択された2つの個体は、個体群61に含まれる個体のうち、親個体として取り出された2つの個体と入れ替えられる(ステップS16)。これにより、個体群61に含まれる個体が次世代の個体へ変更される。そして、適応度が所定の閾値以上となる個体が出現するまで、同様の処理が繰り返される。
図5は、交叉の例を示す図である。図5では、親個体71aと親個体72aとの間で交叉が行われ、親個体71aに基づく子個体71bと、親個体72aに基づく子個体72bとが生成される場合の例を示す。なお、図5では、各個体において接続位置があらかじめ決められている入力端子I2、出力端子O1および部分プログラムMについての図示を省略している。
親個体71aは、画像フィルタF1〜F7を含み、親個体72aは、画像フィルタF1,F3,F6,F7,F8,F9を含む。ここで、親個体71aにおける画像フィルタF2のノードと、親個体72aにおける画像フィルタF8のノードが、交叉を行う箇所として選択されたものとする。
交叉の処理では、例えば、選択されたノードだけでなく、そのノードより下位階層のノードも交叉の対象となる。このため、図5の例では、親個体71aにおける画像フィルタF2,F1および入力端子I1と、親個体72aにおける画像フィルタF8,F1および入力端子I1とが入れ替えられる。このような交叉により、画像フィルタF1,F3〜F8を含む子個体71bと、画像フィルタF1〜F3,F6,F7,F9を含む子個体72bとが生成される。
図6は、突然変異の例を示す図である。図6において、個体73aは、画像フィルタF1,F3〜F8を含む。この個体73aは、例えば、個体群61から取り出された親個体であってもよいし、または、個体群61から親個体として取り出された後、交叉が行われた個体であってもよい。
ここで、個体73aにおける画像フィルタF8のノードが突然変異を行う箇所として選択されるとともに、突然変異による置き換え後の画像フィルタとして画像フィルタF10が選択されたものとする。このような突然変異により、画像フィルタF1,F3〜F7,F10を含む子個体73bが生成される。なお、突然変異による置き換え後の画像フィルタは、あらかじめ用意された複数の画像フィルタの中からランダムに選択される。
ところで、図4で説明したように、画像認識プログラムを生成する場合、個体の適応度としては、個体に基づいて算出されたマッチング位置と正解位置との差分を用いることができる。しかし、このような適応度を用いた場合、ロバスト性の低い画像認識プログラムが生成される可能性があるという問題がある。
ここで、2つの個体の例に基づく類似度マップを図7,図8に示す。類似度マップとは、個体(プログラム)にしたがって実行される処理の途中で得られる中間データであり、入力画像の各画素について算出されたテンプレート画像との類似度を、画素ごとにプロットしたものである。
図7は、第1の個体例に基づく類似度マップを示す図である。また、図8は、第2の個体例に基づく類似度マップを示す図である。図7および図8において、x軸は入力画像の水平方向の画素を示し、y軸は入力画像の垂直方向の画素を示し、z軸は、画素について算出された類似度を示す。図7のグラフ81a,81bは、第1の個体例に基づく類似度マップのうち、類似度のピークをとる画素を含む水平ラインおよび垂直ラインについての類似度をそれぞれグラフ化したものである。同様に、図8のグラフ82a,82bは、第2の個体例に基づく類似度マップのうち、類似度のピークをとる画素を含む水平ラインおよび垂直ラインについての類似度をそれぞれグラフ化したものである。
第1の個体例と第2の個体例では、類似度のピークをとる画素の位置はともに同じである。この場合、前述の図4のステップS14に示したようにマッチング位置と正解位置との差分を計算する方法で適応度を計算した場合、第1の個体例の適応度と第2の個体例の適応度は同じ値となるので、同じ性能を有するプログラムと評価される。しかし、例えばグラフ81aとグラフ82aとを比較すると、グラフ81aの方が、類似度が最大となる位置以外の場所にも最大値に近い類似度を有するピークが多数存在している。このため、第1の個体例は、第2の個体例と比較した場合に、入力画像の変化があった場合に誤認識する(すなわち、テンプレート画像の位置を間違える)可能性が高く、ロバスト性が低い。
すなわち、上記の方法で算出した適応度を用いた場合には、この適応度によればテンプレートマッチングの精度が同じと評価されるにもかかわらず、実際にはロバスト性の違いに起因する精度差がある可能性がある。このため、必ずしも検出位置精度の高い画像認識プログラムを生成できない可能性があるという問題がある。
ここで、上記の手順により生成される画像認識プログラムの用途の例としては、FA(Factory Automation)分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製造ライン上の製品の認識や検査などを目的として、製品の外観を撮像した画像から特定の部品の位置を検出することが考えられる。
このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像認識アルゴリズムの再構築の必要が生じる場合がある。このため、アルゴリズム構築の容易性が求められている。そして、照明条件の変化や被写体の形状、位置姿勢のバラツキなどの撮像環境の変化に対するロバスト性が高いアルゴリズムを構築することが求められている。
そこで、第2の実施の形態では、上記比較例における適応度の算出方法を変形することで、ロバスト性の高い画像認識プログラムを安定的に生成できるようにする。具体的には、適応度として、個体の実行により算出された類似度マップの分布と、類似度マップの目標分布との形状の類似度を利用する。
以下、第2の実施の形態に係る画像処理装置について説明する。
図9は、類似度マップの分布と目標分布との形状比較の例を示す図である。本実施の形態の画像処理装置は、図4のステップS14に対応する適応度の計算過程において、個体(プログラム)にしたがってテンプレートマッチング処理を実行し、その処理の中間情報として類似度マップを取得する。図9のグラフ83aは、得られた類似度マップを3次元表示したものである。
画像処理装置は、得られた類似度マップの分布を、あらかじめ設定された類似度マップの目標分布と比較し、形状の類似度を適応度として算出する。図9のグラフ83bは、類似度マップの目標分布を3次元表示したものである。このグラフ83bの例のように、目標分布は、テンプレート画像の正解位置に唯一のピークを有し、ピークから離れるほど類似度が低下するような形状を有する。好ましい例としては、目標分布はガウス分布(正規分布)である。
個体に基づく類似度マップの分布が目標分布に近い場合、その個体を用いたテンプレートマッチング処理によって得られるマッチング位置が正解位置以外の位置になる可能性は非常に低い。このため、個体に基づく類似度マップの分布と目標分布との間の形状の類似度は、その個体を用いたテンプレートマッチング処理のロバスト性の高さを示すと考えることができる。したがって、適応度としてこのような形状類似性を用いることで、ロバスト性の高い画像認識プログラムが生成される確率を高めることができる。
目標分布は、例えば、計算式にしたがってあらかじめ用意される。あるいは、目標分布は、学習過程で適宜算出し直されてもよい。本実施の形態では、例として後者の方法を採用する。具体的には、個体群61(図4参照)が更新されるたびに、個体群61に含まれる各個体に基づいて算出されるマッチング位置と正解位置との差に基づいて、目標分布が算出される。
図10は、画像処理装置のハードウェア構成例を示す図である。画像処理装置100は、例えば、図10に示すようなコンピュータとして実現される。
画像処理装置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に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、読み取り装置106、ネットワークインタフェース107および通信インタフェース108がある。
HDD103は、画像処理装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像を表示装置104aの画面に表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
ネットワークインタフェース107は、ネットワーク107aを介して他の装置との間でデータの送受信を行う。
通信インタフェース108は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース108には、外部デバイスとしてカメラ108aが接続されており、通信インタフェース108は、カメラ108aから送信された画像データをプロセッサに送信する。
以上のようなハードウェア構成によって、画像処理装置100の処理機能を実現することができる。
図11は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置100は、図1に示したプログラム生成装置10と同様の処理機能と、この処理機能によって生成された画像認識プログラムを実行して画像処理を行う機能とを備える。画像処理装置100は、画像取得部111、画像処理部112、プログラム生成部120、プログラム記憶部130、要素記憶部141、学習データ記憶部142および中間データ記憶部143を有する。
画像取得部111、画像処理部112およびプログラム生成部120の処理は、例えば、画像処理装置100のプロセッサ101が所定のプログラムを実行することで実現される。また、画像処理部112の処理の一部は、プログラム記憶部130に保存された画像認識プログラムを、画像処理装置100のプロセッサ101が実行することで実現される。プログラム記憶部130、要素記憶部141および学習データ記憶部142は、例えば、画像処理装置100のHDD103の記憶領域として実現される。中間データ記憶部143は、例えば、画像処理装置100のRAM102の記憶領域として実現される。
画像取得部111は、撮像された画像のデータをカメラ108aから取得し、プログラム生成部120または画像処理部112に出力する。
プログラム生成部120は、遺伝的プログラミングにより画像認識プログラムを生成し、生成された画像認識プログラムをプログラム記憶部130に保存する。なお、プログラム生成部120の内部構成については後述する。
画像処理部112は、カメラ108aによって撮像された画像のデータを画像取得部111を介して取得する。画像処理部112は、プログラム記憶部130に保存された画像認識プログラムにしたがって、取得した画像のデータを用いてテンプレートマッチング処理を行い、画像におけるテンプレート画像の位置を出力する。
プログラム記憶部130は、プログラム生成部120によって生成された画像認識プログラムを記憶する。
要素記憶部141は、プログラム生成部120によって生成される各個体に組み込むことが可能な要素のデータを記憶する。これらの要素は、図3の表40に示した要素であり、例えば、各種の画像フィルタのプログラムや、マッチング処理を実行するプログラムなどが含まれる。
学習データ記憶部142は、入力画像と、入力画像におけるテンプレート画像の正解位置とをそれぞれ含む学習データを、1組以上記憶する。学習データに含まれる入力画像は、例えば、画像処理装置100に接続されたカメラ108aによって撮像された画像であってもよい。また、学習データ記憶部142は、マッチング対象のテンプレート画像を記憶する。
中間データ記憶部143は、プログラム生成部120の処理中に生成される各種のデータを一時的に記憶する。例えば、中間データ記憶部143は、要素記憶部141に記憶された要素を組み合わせて生成される個体に対応するプログラム、個体の実行によって得られる位置や類似度マップの各データ、適応度の算出のために計算される各種のデータ、各個体について算出された適応度のデータなどを記憶する。
プログラム生成部120は、学習制御部121、プログラム実行部122および適応度算出部123を有する。
学習制御部121は、プログラム生成部120でのプログラム生成処理全体を統括的に制御する。例えば、学習制御部121は、初期個体の生成、個体の進化処理、適応度に基づく生存選択および最終的な画像認識プログラムの出力、生存選択された個体による個体群の更新などの処理を実行する。
プログラム実行部122は、学習制御部121からの指示に応じて、個体(プログラム)を実行する。プログラム実行部122は、個体の実行により、入力画像におけるテンプレート画像の位置を検出し、さらに必要に応じて、その処理過程で生成される類似度マップを出力する。
適応度算出部123は、学習制御部121からの指示に応じて、各個体を評価するための適応度を算出する。後述するように、適応度としては、位置適応度、形状類似度、総合適応度がある。また、適応度算出部123は、適応度の算出に必要な目標分布などのデータの算出も行う。
ここで、図12は、テンプレート画像の生成例を示す図である。画像処理装置100の管理者は、例えば、対象部品91が写った撮像画像90をカメラ108aに撮像させる。テンプレート画像92は、このような撮像画像90から対象部品91を切り出すことで生成することができる。また、この撮像画像90を学習データの入力画像として使用することもできる。
次に、画像処理装置100における画像認識プログラムの生成処理について、フローチャートを用いて説明する。図13は、プログラム生成処理手順の例を示すフローチャートである。
[ステップS21]学習制御部121は、学習データの設定のための入力操作を受け付ける。例えば、学習データ記憶部142に記憶された学習データの中から、本処理で使用される学習データが指定される。
[ステップS22]学習制御部121は、要素記憶部141に登録された要素を組み合わせることで、複数の初期個体を生成し、生成された初期個体を中間データ記憶部143に格納する。この処理において生成される個体群は図3に示した個体群61に相当するので、これ以後、「個体群61」と表記する。
[ステップS23]次のような手順で、個体群61に含まれる各個体についての位置適応度fk1が算出される。学習制御部121は、個体群61に含まれる個体を1つ選択し、選択した個体をプログラム実行部122に実行させる。プログラム実行部122は、選択された個体にしたがって、ステップS21で指定された学習データに含まれる入力画像におけるテンプレート画像の位置(マッチング位置)を算出する。学習制御部121は、プログラム実行部122によって算出されたマッチング位置と、ステップS21で指定された学習データに含まれる正解位置とを適応度算出部123に通知して、位置適応度fk1の算出を指示する。適応度算出部123は、マッチング位置と正解位置との差分dkを算出し、次の式(1)にしたがって位置適応度fk1を算出する。
Figure 0006511986
式(1)において、σは、目的とする位置検出精度に応じてあらかじめ設定されるパラメータである。
学習制御部121の制御により個体群61に含まれるすべての個体について上記処理が実行されることで、すべての個体についての位置適応度fk1が算出される。なお、個体群61に含まれる個体のうち、以前のステップS23の実行によって位置適応度fk1が算出済みである個体については、ステップS23での位置適応度fk1の算出がスキップされてもよい。
[ステップS24]学習制御部121は、適応度算出部123に目標分布T(i,j)の算出を指示する。適応度算出部123は、次の式(2)にしたがって目標分布T(i,j)を算出する。
Figure 0006511986
式(2)において、i,jは、入力画像の画素の座標を示す。ave(fk12は、ステップS23で算出された、個体群61に含まれる全個体についての位置適応度fk1の平均値である。δは、学習用の調整パラメータである。
学習制御部121は、算出された目標分布T(i,j)を中間データ記憶部143に格納する。なお、学習制御部121は、以前のステップS24の実行によって算出された目標分布T(i,j)が中間データ記憶部143に保存されている場合、この目標分布T(i,j)を新たに算出された目標分布T(i,j)によって更新する。
[ステップS25]学習制御部121は、個体群61に含まれる個体の中から、2つの親個体をランダムに選択する。
[ステップS26]学習制御部121は、選択された2つの親個体の間で交叉を行うことで、2つ以上の所定数の子個体を生成する。
[ステップS27]学習制御部121は、生成された子個体のいずれかのノードに突然変異を発生させ、元の子個体のノードに組み込まれていた画像フィルタを、要素記憶部141に登録されている他の画像フィルタのいずれかに置き換える。
[ステップS28]ステップS25で選択された各親個体、および、ステップS26,S27の処理によって得られた各子個体について、位置適応度fk2、形状類似度Rk、および総合類似度Fkが算出される。この処理では、算出対象の各個体について次のような処理が行われる。
学習制御部121は、算出対象の各個体をプログラム実行部122に実行させ、各個体によるマッチング位置を算出させるとともに、算出過程で個体ごとに得られる類似度マップI(i,j)を取得する。
学習制御部121は、算出されたマッチング位置に基づき、適応度算出部123に各個体についての位置適応度fk2を算出させる。位置適応度fk2は、各個体についてのマッチング位置と正解位置との差分dkを用いて、式(1)にしたがって算出される。ここでは、ステップS28で算出される位置適応度fk2を、ステップS23で算出される位置適応度fk1と区別して表記する。なお、親個体についての位置適応度fk2はステップS23で算出済みなので、ステップS28での算出がスキップされてもよい。
学習制御部121は、適応度算出部123に各個体についての形状類似度Rkを算出させる。適応度算出部123は、次の(3)にしたがって各個体についての形状類似度Rkを算出する。
Figure 0006511986
式(3)において、I(i,j)は、対応する個体の実行により得られた類似度マップであり、Iaveは、当該類似度マップI(i,j)における類似度の平均値を示す。T(i,j)は、ステップS24で算出された目標分布であり、Taveは、当該目標分布T(i,j)における類似度の平均値を示す。式(3)によって算出される形状類似度Rkは、対応する個体についての類似度マップI(i,j)の分布の形状と、目標分布T(i,j)の形状との類似度を示す。
学習制御部121は、適応度算出部123に各個体についての総合類似度Fkを算出させる。適応度算出部123は、個体ごとに、個体に対応する位置適応度fk2と形状類似度Rkとから次の式(4)にしたがって総合類似度Fkを算出する。
k=Rk・fk2 ・・・(4)
[ステップS29]学習制御部121は、ステップS25で選択された各親個体、および、ステップS26,S27の処理によって得られた各子個体の中に、次の条件を満たす個体があるかを判定する。条件とは、総合類似度Fkが所定の閾値Th1以上であり、かつ、形状類似度Rkが所定の閾値Th2以上である、というものである。条件を満たす個体がある場合、ステップS31の処理が実行され、条件を満たす個体がない場合、ステップS30の処理が実行される。
[ステップS30]学習制御部121は、ステップS25で選択された各親個体、および、ステップS26,S27の処理によって得られた各子個体の中から、総合類似度Fkが最大の個体を生存させる個体として選択する。さらに、学習制御部121は、残りの個体の中から生存させる個体をさらに1つ選択する。この選択処理では、例えば、算出された総合類似度Fkに応じた確率で個体が選択される。
学習制御部121は、選択した2つの個体によって、個体群61に含まれる個体のうちステップS25で選択した親個体を置換する。これによって、個体群61の世代が更新される。
[ステップS31]学習制御部121は、ステップS29で条件を満たした個体が示す画像認識プログラムをプログラム記憶部130に格納して、処理を終了する。なお、ステップS29で複数の個体が条件を満たした場合、学習制御部121は、例えば、総合類似度Fkが最大の個体が示す画像認識プログラムをプログラム記憶部130に格納する。
以上の図13の処理によれば、ステップS24において、個体群61に含まれる各個体についての位置適応度fk1に基づいて、目標分布T(i,j)が算出される。目標分布T(i,j)は、正解位置にピークを有する正規分布となる。そして、ステップS28において、進化過程で得られた各個体についての位置適応度fk2とともに、これらの各個体に基づく類似度マップI(i,j)の分布と目標分布T(i,j)の分布との形状の類似度合いを示す形状類似度Rkが算出される。
ステップS30では、位置適応度fk2と形状類似度Rkとが加味された指標に基づいて、次世代に生存させる個体が選択される。これにより、マッチング結果が正解位置に近いだけでなく、類似度マップI(i,j)の形状が目標分布T(i,j)の形状に近く、ロバスト性が向上した個体が、個体群61に多く残るようになる。
また、ステップS29でも、位置適応度fk2と形状類似度Rkとが加味された指標に基づいて、最終的な画像認識プログラムとして出力すべき個体が判定される。特にステップS29では、形状類似度Rkが閾値と直接的に比較されることで、ステップS30より形状類似度Rkを重視した判定が行われ、出力される画像認識プログラムとしてロバスト性の高い個体が確実に選択されるようになる。
また、上記のように、個体群61が更新されるたびに、個体群61には類似度マップI(i,j)の形状が目標分布T(i,j)の形状に近い個体が多くなる。このため、ステップS24で算出される目標分布T(i,j)の形状は、次の図14に示すように徐々に変化していく。
図14は、目標分布の形状変化の例を示す図である。グラフ84a,84b,84cは、図13の処理が開始されてからそれぞれ初期、中期、後期に生成される目標分布T(i,j)の一例を示している。この図14の例のように、目標分布T(i,j)の形状は、処理が進行していくに連れて、正解位置の周囲の傾きが急峻な形状に徐々に変化していく。
グラフ84aのように目標分布T(i,j)の傾きが緩やかな場合には、マッチング位置の正確性よりロバスト性を重視した個体の評価が行われる。そして、目標分布T(i,j)の傾きが徐々に急峻になっていくに連れて、正解位置の近傍でのマッチング位置の正確性が高められていく。このような処理により、最終的に、ロバスト性が高く、マッチング位置の正確性も高い画像認識プログラムを生成することができる。
図15は、世代交代の回数と適応度および類似度マップとの関係について示す図である。グラフ85aは、世代交代の回数と適応度との関係の例を示す。適応度は、位置適応度fk2としている。グラフ85b,85c,85d,85eは、それぞれ1世代、数十世代、200世代、1000世代における個体の類似度マップの例を示す。グラフ85b,85c,85d,85eは、類似度マップのデータのうち、正解位置を通る水平ライン上のデータを示したものである。
これらのグラフ85b,85c,85d,85eからわかるように、類似度マップの分布形状は、学習の初期では正解位置付近の類似度とそれ以外の領域の類似度との差が大きくなるように変化していく。その結果、正解位置から離れた位置に存在していたピークが徐々に消えていき、ロバスト性が高まる方向に性能が変化していく。そして、ある程度学習が進んでいくと、ピークの近傍における傾きが急峻になり、正解位置での類似度だけが突出して大きくなる。これにより、正解位置の近傍でのマッチング位置の正確性が高くなる。
なお、以上の第2の実施の形態では、個体群61に含まれる各個体についての位置適応度fk1に基づいて、目標分布T(i,j)が動的に算出される。しかし、目標分布T(i,j)は、固定的に与えられてもよい。また、傾きの急峻性が異なる複数の目標分布T(i,j)を用意しておき、学習が進むに連れて利用する目標分布T(i,j)を傾きが急峻なものに変更していってもよい。
〔第3の実施の形態〕
第3の実施の形態では、第2の実施の形態を、顔画像を認識する画像認識プログラムを生成するように変形した例を示す。なお、第3の実施の形態に係る画像処理装置の基本的な構成は第2の実施の形態と同様であるので、第2の実施の形態と同様の符号を用いて説明する。
図16は、入力画像および目標分布の例を示す図である。図16に示す画像93は、入力画像の一例であり、2つの顔94a,94bを含む。画像認識プログラムにより、顔のテンプレート画像を用いたテンプレートマッチング処理が実行される。なお、顔のテンプレート画像としては、例えば、多数の顔画像から生成された平均画像が用いられる。
第3の実施の形態で生成される画像認識プログラムは、マッチング位置が2か所出力されるプログラムとなる。また、第3の実施の形態で生成される個体において、マッチング処理を実行する部分プログラムM(図2参照)は、例えば、類似度が最大の座標と2番目の座標とをそれぞれマッチング位置として出力する。また、学習データには、入力画像とともに、各顔に対応する2つの正解位置が含まれる。
グラフ86は、第3の実施の形態で用いられる目標分布T(i,j)の例である。グラフ86の例のように、本実施の形態では、各顔の正解位置にピークを有する目標分布T(i,j)が用いられる。
図17は、第3の実施の形態におけるプログラム生成処理手順の例を示すフローチャートである。なお、図17では、図13と同様の処理が実行される処理ステップには同じ符号を付して示し、その説明を省略する。
図17の処理は、ステップS21の次にステップS41が実行される。
[ステップS41]学習制御部121は、適応度算出部123に目標分布T(i,j)の算出を指示する。適応度算出部123は、各顔の正解位置にそれぞれピークを有する目標分布T(i,j)を算出する。例えば、適応度算出部123は、各顔の正解位置に基づき、次の式(5)にしたがって目標分布T(i,j)を算出する。
Figure 0006511986
式(5)において、xt,ytは、t番目の顔の正解位置を示すx座標およびy座標である。式(5)によって算出される目標分布T(i,j)は、各顔の正解位置にピークを有する正規分布を合成したものとなる。
ステップS41の次にステップS22が実行され、さらにステップS25以後の処理が実行される。ただし、ステップS28で算出される位置適応度fk2は、例えば、次のように算出される。算出対象の各個体の実行によって個体ごとに2つのマッチング位置が算出される。適応度算出部123は、各個体について、マッチング位置とそれに対応する正解位置との2つの組み合わせをそれぞれ用いて式(1)にしたがって位置適応度を算出する。適応度算出部123は、算出された2つの位置適応度の合計値または平均値を、その個体についての位置適応度fk2とする。
以上の第3の実施の形態によれば、ロバスト性の高い画像認識プログラムを生成することが可能になる。
なお、上記の各実施の形態に示した装置(プログラム生成装置10および画像処理装置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などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
1a テンプレート画像
1b 入力画像
1c 正解位置
2a〜2c 部分プログラム
3a〜3d 個体
4a〜4d 類似度マップ
5 目標分布
10 プログラム生成装置
11 記憶部
12 演算部
S1〜S3 ステップ

Claims (9)

  1. プログラムを遺伝的プログラミングによって生成するプログラム生成装置において、
    入力画像におけるテンプレート画像の位置を検出する画像認識プログラムの構成要素となる複数の部分プログラムを記憶する記憶部と、
    前記複数の部分プログラムの中からそれぞれ2以上の部分プログラムを組み合わせることで複数の個体を生成し、前記複数の個体をそれぞれ用いて、前記入力画像の各画素に前記テンプレート画像との類似度を対応づけた類似度マップを算出し、前記類似度マップの分布に基づいて前記複数の個体のそれぞれについての適応度を算出し、前記複数の個体の中から前記適応度が所定閾値以上の個体を前記画像認識プログラムとして出力する演算部と、
    を有するプログラム生成装置。
  2. 前記適応度は、前記類似度マップの分布と前記類似度マップの目標分布との比較結果に基づいて算出される、
    請求項1記載のプログラム生成装置。
  3. 前記目標分布は、前記入力画像における前記テンプレート画像の正解位置にピークを有し、前記ピークから離れるのにしたがって類似度の値が低下する形状を有する、
    請求項2記載のプログラム生成装置。
  4. 前記演算部は、さらに、前記複数の部分プログラムの中からそれぞれ2以上の部分プログラムを組み合わせることで複数の第1個体を生成して前記記憶部に格納し、
    前記複数の個体の生成は、
    前記複数の第1個体の中から所定数の第2個体を選択し、
    前記所定数の第2個体に基づいて生成される複数の第3個体であって、前記所定数の第2個体のいずれかに進化処理を施した個体を少なくとも含む前記複数の第3個体を出力する、
    処理を含み、
    前記適応度の算出では、前記複数の第3個体のそれぞれについて前記適応度が算出される、
    請求項1記載のプログラム生成装置。
  5. 前記演算部は、さらに、前記複数の第3個体の中に前記適応度が前記所定閾値以上の個体が存在しなかった場合、前記適応度に基づいて前記複数の第3個体の中から生存個体を選択し、前記生存個体によって前記記憶部に記憶された前記複数の第1個体のうちの一部の個体を置換する、
    請求項4記載のプログラム生成装置。
  6. 前記適応度は、前記類似度マップの分布と前記類似度マップの目標分布との比較結果に基づいて算出され、
    前記目標分布は、前記入力画像における前記テンプレート画像の正解位置にピークを有し、前記ピークから離れるのにしたがって類似度の値が低下する形状を有し、前記複数の第1個体のそれぞれを用いて実行される前記入力画像における前記テンプレート画像の位置の検出処理の結果に基づいて算出される、
    請求項5記載のプログラム生成装置。
  7. 前記演算部は、さらに、
    前記複数の第1個体の一部が前記生存個体によって置換されることで得られる複数の第4個体に基づいて、前記目標分布を再計算し、
    前記複数の第4個体と再計算された前記目標分布とを用いて、前記複数の第4個体の中からの前記所定数の第2個体の選択、前記所定数の第2個体に基づいて生成される前記複数の第3個体の出力、前記複数の第3個体のそれぞれについての前記適応度の算出、および前記適応度と前記所定閾値との比較に基づく前記画像認識プログラムの出力を実行する、
    請求項6記載のプログラム生成装置。
  8. プログラムを遺伝的プログラミングによって生成するプログラム生成方法において、
    コンピュータが、
    入力画像におけるテンプレート画像の位置を検出する画像認識プログラムの構成要素となる複数の部分プログラムの中から、それぞれ2以上の部分プログラムを組み合わせることで複数の個体を生成し、
    前記複数の個体をそれぞれ用いて、前記入力画像の各画素に前記テンプレート画像との類似度を対応づけた類似度マップを算出し、
    前記類似度マップの分布に基づいて前記複数の個体のそれぞれについての適応度を算出し、
    前記複数の個体の中から前記適応度が所定閾値以上の個体を前記画像認識プログラムとして出力する、
    プログラム生成方法。
  9. プログラムを遺伝的プログラミングによって生成する生成プログラムにおいて、
    コンピュータに、
    入力画像におけるテンプレート画像の位置を検出する画像認識プログラムの構成要素となる複数の部分プログラムの中から、それぞれ2以上の部分プログラムを組み合わせることで複数の個体を生成し、
    前記複数の個体をそれぞれ用いて、前記入力画像の各画素に前記テンプレート画像との類似度を対応づけた類似度マップを算出し、
    前記類似度マップの分布に基づいて前記複数の個体のそれぞれについての適応度を算出し、
    前記複数の個体の中から前記適応度が所定閾値以上の個体を前記画像認識プログラムとして出力する、
    生成プログラム。
JP2015128263A 2015-06-26 2015-06-26 プログラム生成装置、プログラム生成方法および生成プログラム Active JP6511986B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015128263A JP6511986B2 (ja) 2015-06-26 2015-06-26 プログラム生成装置、プログラム生成方法および生成プログラム
US15/171,416 US10062007B2 (en) 2015-06-26 2016-06-02 Apparatus and method for creating an image recognizing program having high positional recognition accuracy

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015128263A JP6511986B2 (ja) 2015-06-26 2015-06-26 プログラム生成装置、プログラム生成方法および生成プログラム

Publications (2)

Publication Number Publication Date
JP2017010475A JP2017010475A (ja) 2017-01-12
JP6511986B2 true JP6511986B2 (ja) 2019-05-15

Family

ID=57602478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015128263A Active JP6511986B2 (ja) 2015-06-26 2015-06-26 プログラム生成装置、プログラム生成方法および生成プログラム

Country Status (2)

Country Link
US (1) US10062007B2 (ja)
JP (1) JP6511986B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101765432B1 (ko) * 2017-01-17 2017-08-04 조승훈 게임 대회 운영을 위한 게임 승패 결정 방법
JP6663873B2 (ja) * 2017-02-22 2020-03-13 株式会社日立製作所 プログラム自動生成システム及びプログラム自動生成方法
JP6729810B2 (ja) * 2017-09-11 2020-07-22 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
JP7013182B2 (ja) * 2017-09-21 2022-01-31 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP6875058B2 (ja) * 2018-02-09 2021-05-19 Kddi株式会社 複数の認識エンジンを用いてコンテキストを推定するプログラム、装置及び方法
JP7247578B2 (ja) * 2018-12-27 2023-03-29 東洋製罐グループホールディングス株式会社 画像処理システム、及び画像処理プログラム
JP2020107008A (ja) * 2018-12-27 2020-07-09 東洋製罐グループホールディングス株式会社 画像処理システム、及び画像処理プログラム
US20190325316A1 (en) * 2019-05-16 2019-10-24 Intel Corporation Apparatus and methods for program synthesis using genetic algorithms
JP7404962B2 (ja) 2020-03-24 2023-12-26 東洋製罐グループホールディングス株式会社 画像処理システム、及び画像処理プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099890A (ja) * 2000-09-26 2002-04-05 Zexel Valeo Climate Control Corp プログラム自動生成方法及びプログラム自動生成装置
JP2003288579A (ja) * 2001-07-27 2003-10-10 National Institute Of Advanced Industrial & Technology 最適フィッティングパラメータ決定方法および装置、並びに最適フィッティングパラメータ決定プログラム
JP2009122939A (ja) * 2007-11-14 2009-06-04 Bridgestone Corp タイヤ検査用特徴抽出プログラム作成装置及びタイヤ検査装置
JP2009151371A (ja) 2007-12-18 2009-07-09 Dainippon Screen Mfg Co Ltd 画像処理装置、画像処理方法およびプログラム
JP2010266983A (ja) * 2009-05-13 2010-11-25 Sony Corp 情報処理装置及び方法、学習装置および方法、プログラム、並びに情報処理システム
JP5353597B2 (ja) * 2009-09-24 2013-11-27 日本電気株式会社 パターン認識装置
JP5941782B2 (ja) 2012-07-27 2016-06-29 株式会社日立ハイテクノロジーズ マッチング処理装置、マッチング処理方法、及びそれを用いた検査装置

Also Published As

Publication number Publication date
JP2017010475A (ja) 2017-01-12
US20160379088A1 (en) 2016-12-29
US10062007B2 (en) 2018-08-28

Similar Documents

Publication Publication Date Title
JP6511986B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
US11468261B2 (en) Information processing apparatus, image processing method, and computer-readable recording medium recording image processing program
US10325184B2 (en) Depth-value classification using forests
JP6024658B2 (ja) 物体検出装置、物体検出方法及びプログラム
US10489710B2 (en) Program generation apparatus and program generation method
US10303447B2 (en) Program generating apparatus and method therefor
US10540592B2 (en) Program generation apparatus and program generation method
JPWO2019026104A1 (ja) 情報処理装置、情報処理プログラム及び情報処理方法
JP6607261B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
US20210110215A1 (en) Information processing device, information processing method, and computer-readable recording medium recording information processing program
CN108205581A (zh) 生成数字媒介环境中的紧凑视频特征表示
US11328176B2 (en) Information processing apparatus, information processing method, and storage medium
JP7086878B2 (ja) 学習装置、学習方法、プログラムおよび認識装置
US20230237777A1 (en) Information processing apparatus, learning apparatus, image recognition apparatus, information processing method, learning method, image recognition method, and non-transitory-computer-readable storage medium
US11182650B2 (en) Information processing apparatus to generate a next generation image processing program in genetic programming, control method, and non-transitory computer-readable storage medium for storage program
JP6544435B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
CN113167568A (zh) 坐标计算装置、坐标计算方法和计算机可读记录介质
JP6331914B2 (ja) アルゴリズム生成装置、アルゴリズム生成方法及びアルゴリズム生成用コンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190213

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: 20190312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190325

R150 Certificate of patent or registration of utility model

Ref document number: 6511986

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150