画像処理アルゴリズムの導出方法および導出システム
【課題】 画像処理を規定するアルゴリズムの導出時間が短くなる導出方法を提供する。
【解決手段】 導出方法を実現するシステム1100は、データを格納する記憶部1112と、評価の対象となる複数の個体を生成する個体群生成部1116と、評価処理を実行する装置の数に応じて個体を分ける分割部1118と、分けられた個体のグループを各装置に対して転送する評価対象転送部1120と、転送された個体を予め準備された基準に従って評価する評価部1124と、評価結果を転送するタイミングを検知するタイミング検知部1126と、そのタイミングに応じて評価が完了した個体についての結果を転送する結果転送部1128と、その結果に基づいて評価されていた個体が属する世代の次の世代に属する個体を生成する次世代個体群生成部1132とを含む。
【解決手段】 導出方法を実現するシステム1100は、データを格納する記憶部1112と、評価の対象となる複数の個体を生成する個体群生成部1116と、評価処理を実行する装置の数に応じて個体を分ける分割部1118と、分けられた個体のグループを各装置に対して転送する評価対象転送部1120と、転送された個体を予め準備された基準に従って評価する評価部1124と、評価結果を転送するタイミングを検知するタイミング検知部1126と、そのタイミングに応じて評価が完了した個体についての結果を転送する結果転送部1128と、その結果に基づいて評価されていた個体が属する世代の次の世代に属する個体を生成する次世代個体群生成部1132とを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アルゴリズムを導出する技術に関する。本発明は、より特定的には、取得され画像から特徴のある画像を抽出するためのアルゴリズムの導出方法、導出装置およびコンピュータを導出装置として機能させるためのプログラムに関する。
【背景技術】
【0002】
従来、画像を用いた検査装置などにおいて、得られた画像中の特徴のあるパターンを抽出する要求があった場合、開発者は、そのパターンを抽出するための専用のアルゴリズムを作成する。アルゴリズムは、主として、対象となるパターンの特徴量を増大させるフィルタを組み合わせる処理、パターンを切り出す処理、およびパターンの情報を抽出する処理を含む。フィルタを組み合わせる処理の開発では、当該開発者は、既存の画像処理フィルタの中から有効なフィルタを選択し、処理の順序等を決定し、そして、所望のパターンの特徴量が増大する方向に画像が処理されるようにパラメータの設定その他の調整を行なう。このような画像処理アルゴリズムの開発は、一般に、試行錯誤的な処理として進められる。
【0003】
画像による検査装置の場合においては、検査を行なう対象物が変化した場合、あるいは対象物が同じでも抽出したい新たなパターンが追加された場合には、担当者が対象パターンの解析を逐次行い、そのパターンを抽出するためのアルゴリズムを開発する必要がある。しかし、この方法では、対象物の変化や追加の度に画像処理の担当者がアルゴリズムを考案する必要があり、そのための開発期間を要するという問題がある。
【0004】
アルゴリズムの開発に関し、遺伝的アルゴリズム(Generic Algorithm、以下「GA」)の手法が用いられている。遺伝的アルゴリズムを用いた処理の高速化に関し、並列処理によって実現する技術が開示されている。
【0005】
たとえば、特開2001−229148号公報(特許文献1)および特開2004−258842号公報(特許文献2)は、複数の処理プロセッサ上で遺伝的アルゴリズムによる評価を行なうアルゴリズム処理装置を開示している。これらの装置は、複数のプロセッサにより構成される並列処理装置である。各プロセッサは、遺伝的アルゴリズムを用いるために、個体群情報を保存する記憶部と、個体群情報および後述する通信部によって得られた個体を用いて次の個体群を生成する個体群生成部と、他のプロセッサと個体群情報を送受信する通信部とを備える。
【特許文献1】特開2001−229148号公報
【特許文献2】特開2004−258842号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
各特許文献に開示された処理装置によると、それぞれの処理プロセッサは遺伝的アルゴリズムを動作させるためのプログラムが必要になる。また特開2001−229148号公報に開示された構成によれば、それぞれの処理プロセッサについて個体群を記憶するためのメモリが必要となる。
【0007】
また、そのようなプロセッサは、遺伝的アルゴリズムによる世代生成機能(初期化、選択、交叉、突然変異等)と、生成した個体を評価する評価機能と、さらに他のプロセッサと同期して個体や評価結果をやり取りするための通信機能とを有する必要がある。このため、各プロセッサは、これらの機能を実現するための処理能力を必要とする。
【0008】
また、他のプロセッサと同期するためには、当該他のプロセッサの通信機能との間で同期通信するための機能、通信量を減らすために転送される個体の要/不要を判断して、個体を受信する/しないを決めるための機能が必要になる。
【0009】
このように、遺伝的アルゴリズムに基づいて並列処理を実現するためには、当該処理を実行するプロセッサは、通常の情報処理に使用されるプロセッサが有するスペックを上回るスペックが必要とされる。そのため、通常のプロセッサを有する情報処理装置において、画像処理を実行するアルゴリズムを速やかに得ることができない場合がある。
【0010】
本発明は、上述の問題点を解決するためになされたものであって、その第1の目的は、画像処理の手順を規定するアルゴリズムを速やかに得ることができる画像処理アルゴリズムの導出方法を提供することである。
【0011】
本発明の第2の目的は、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる画像処理アルゴリズムの導出方法を提供することである。
【0012】
本発明の第3の目的は、画像処理の手順を規定するアルゴリズムを速やかに得ることができる画像処理アルゴリズムの導出システムを提供することである。
【0013】
本発明の第4の目的は、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる画像処理アルゴリズムの導出システムを提供することである。
【課題を解決するための手段】
【0014】
上記の課題を解決するために、この発明のある局面に従うと、アルゴリズムの導出方法が提供される。この方法は、予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成手段と、予め準備された評価基準に基づいて生成手段により生成された各個体の評価を行なう評価手段とにより、画像処理の手順を規定するアルゴリズムを導出する方法である。この方法は、予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って個体の生成と評価とを繰り返す処理ステップと、終了条件が成立した場合に、評価の結果に対応する個体をアルゴリズムとして出力するステップとを備える。処理ステップは、生成手段が、各処理モジュールを組み合わせることにより、複数の個体を生成するステップと、生成された各個体を評価手段に転送するステップと、評価基準に基づいて、転送された個体の評価を行なう評価ステップと、予め定められたタイミングに従って、生成手段に対して、評価が完了した個体の評価結果を転送する結果転送ステップと、生成手段が、評価手段からの評価結果に基づいて、評価が完了した個体が属する世代の次世代に属する個体を生成する生成ステップとを含む。結果転送ステップは、評価の対象となる世代において評価が完了した個体についての第1の評価結果と、世代の一世代前の個体についての第2の評価結果とを、生成手段に転送するステップを含む。生成ステップは、第1の評価結果と第2の評価結果とに基づいて、次世代に属する個体を生成するステップを含む。評価ステップは、次世代に属する個体が生成されている間に、評価の対象となる世代に属する未評価の個体を評価するステップを含む。
【0015】
好ましくは、評価手段は、複数である。処理ステップは、生成された各個体を評価手段の数に分けるステップをさらに含む。転送するステップは、各個体を各評価手段に転送する。
【0016】
好ましくは、アルゴリズムの導出方法は、評価が完了した世代に属する個体を削除するステップと、次世代に属する個体を保存するステップとをさらに備える。
【0017】
好ましくは、処理モジュールは、画像処理のためのフィルタである。個体は、複数のフィルタからなるフィルタ列である。
【0018】
好ましくは、アルゴリズムの導出方法は、被写体の撮影により取得された原画像データと、原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各評価手段に送信するステップと、フィルタ列を用いて原画像データに対する画像処理を実行するステップとをさらに備える。評価ステップは、原画像データに対する画像処理の結果と結果画像データとに基づいて、フィルタ列を評価する。
【0019】
好ましくは、アルゴリズムの導出方法は、評価の対象となる世代に属する各個体を評価するために要する評価時間を計測するステップをさらに備える。結果転送ステップは、評価時間に応じて、評価の結果を転送する。
【0020】
好ましくは、アルゴリズムの導出方法は、評価が完了した個体の数を算出する算出ステップをさらに備える。結果転送ステップは、評価が完了した個体の数に応じて、評価の結果を転送する。
【0021】
好ましくは、算出ステップは、各評価手段において評価が完了した個体の数の合計値を算出するステップを含む。結果転送ステップは、合計値に応じて、評価の結果を転送する。
【0022】
好ましくは、算出ステップは、各評価手段の中の予め定められた評価手段によって評価された個体の数の合計値を算出するステップを含む。結果転送ステップは、合計値に応じて、評価の結果を転送する。
【0023】
好ましくは、終了条件は、予め設定された世代に属する個体の評価が完了することである。
【0024】
この発明の他の局面に従うと、画像処理アルゴリズムの導出システムが提供される。このシステムは、予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成装置と、予め準備された評価基準に基づいて生成装置により生成された各個体の評価を行なう評価装置とを備える。生成装置は、予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って、各処理モジュールを組み合わせることにより、個体の生成を繰り返す処理手段と、分けられた各個体を評価装置に転送する個体転送手段とを含む。評価装置は、評価基準に基づいて、転送された個体の評価を行なう評価手段と、予め定められたタイミングに従って、評価の対象となる世代において評価が完了した個体についての第1の評価結果と、世代の一世代前の個体についての第2の評価結果とを、生成装置に転送する結果転送手段とを含む。処理手段は、第1の評価結果と第2の評価結果とに基づいて、次世代に属する個体を生成する生成手段を含む。評価手段は、次世代に属する個体が生成されている間に、評価の対象となる世代に属する未評価の個体を評価する手段を含む。生成装置は、終了条件が成立した場合に、評価の結果に対応する個体を、画像処理の手順を規定するアルゴリズムとして出力する出力手段を含む。
【0025】
好ましくは、生成装置には、複数の評価装置が接続されている。生成装置は、生成された各個体を評価装置の数に分ける手段をさらに含む。個体転送手段は、分けられた各個体を各評価装置に転送する。
【0026】
好ましくは、評価装置は、評価が完了した世代に属する個体を削除する手段と、次世代に属する個体を保存する手段とをさらに備える。
【0027】
好ましくは、処理モジュールは、画像処理のためのフィルタである。個体は、複数のフィルタからなるフィルタ列である。
【0028】
好ましくは、生成装置は、被写体の撮影により取得された原画像データと、原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各評価装置に送信する手段をさらに含む。評価装置は、フィルタ列を用いて原画像データに対する画像処理を実行する手段とをさらに含む。評価手段は、原画像データに対する画像処理の結果と、結果画像データとに基づいて、フィルタ列を評価する。
【0029】
好ましくは、評価装置は、評価の対象となる世代に属する各個体を評価するために要する評価時間を計測する手段をさらに含む。結果転送手段は、評価時間に応じて、評価の結果を転送する。
【0030】
好ましくは、評価装置は、評価が完了した個体の数を算出する算出手段をさらに含む。結果転送手段は、評価が完了した個体の数に応じて、評価の結果を転送する。
【0031】
好ましくは、算出手段は、各評価装置において評価が完了した個体の数の合計値を算出する。結果転送手段は、合計値に応じて、評価の結果を転送する。
【0032】
好ましくは、算出手段は、各評価装置の中の予め定められた評価装置によって評価された個体の数の合計値を算出する。結果転送手段は、合計値に応じて、評価の結果を転送する。
【0033】
好ましくは、終了条件は、予め設定された世代に属する個体の評価が完了することである。
【0034】
好ましくは、評価手段は、動的再構成可能な回路である。
【発明の効果】
【0035】
本発明に係る画像処理アルゴリズムの導出方法によれば、画像処理の手順を規定するアルゴリズムを速やかに得ることができる。また、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる。
【0036】
本発明に係る画像処理アルゴリズムの導出システムによれば、画像処理の手順を規定するアルゴリズムを速やかに得ることができる。また、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる。
【発明を実施するための最良の形態】
【0037】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0038】
<第1の実施の形態>
最初に、図1を参照して、本発明の各実施の形態に係る画像処理装置における画像処理フィルタの組み合わせについて説明する。図1は、原画像100に対して予め準備されたフィルタ110−1,110−2,…,110−nを用いて結果画像120を得るための処理を概念的に表わす図である。
【0039】
各フィルタ110−1,110−2は、予め作成されたフィルタ、たとえば最大化フィルタ、最小化フィルタ、ゾーベル(sobel)フィルタ、ラプラシアンフィルタなどである。フィルタ処理が実行される場合、原画像100が最初に与えられる。また原画像100に対応する目標画像が与えられる。ここで、目標画像とは、原画像100を処理することにより得られる画像として期待される画像である。図1に示されるように、たとえばn段のフィルタの列が与えられた場合には、第1のフィルタ110−1を用いたフィルタ処理が原画像100に対して行なわれる。その結果画像に対して第2のフィルタ110−2を用いたフィルタ処理が実行される。同様に処理が繰り返され、第nのフィルタ110−nを用いた処理が実行される。最後の処理により得られる画像は、結果画像120として出力される。この場合、結果画像120が予め設定された目標画像に近い場合、すなわち結果画像120と目標画像とをそれぞれ定量化し、各々の値の差が予め定められた基準値よりも小さい場合には、結果画像120を得るために使用された各フィルタの列は、画像処理を実現するためのアルゴリズムに近いものと判断される。
【0040】
図2を参照して、本発明に係る画像処理装置において遺伝的アルゴリズム(GA)を用いた手法を適用した場合について説明する。図2は、複数のフィルタからなるフィルタ列を予め定められた評価基準により順次選択することにより、画像処理装置に使用するためのフィルタ列を選択する態様を表わす図である。
【0041】
図2(A)に示されるように、まず複数のフィルタ列からなる第1世代のフィルタ列群200−1,200−2等が生成される。各フィルタ列群は、予め準備されたフィルタをランダムに組み合わせることにより構成される。生成されたすべてのフィルタ列群のそれぞれのフィルタ列に対して予め準備された原画像100が、入力画像として与えられる。各フィルタ列群は、その原画像100に対して各フィルタを用いることにより、それぞれ対応する画像処理を実行し、結果画像210−1,210−2等を出力する。各結果画像は予め設定された目標画像と比較され、目標画像に近い結果画像を出力したフィルタ列(たとえばフィルタ列210−4)は、求めるフィルタ列に近いものとして高い評価値が与えられる。ここで評価値とは、後述するように、フィルタ列の評価結果として、各フィルタ列の属性を定量的に表現するために表わされる値である。第1の世代で高い評価値が与えられたフィルタ列は、その世代においていわゆる優秀なフィルタ列であるとされ、次の世代すなわち第2の世代を生成するための親として登録される(フィルタ列220)。
【0042】
なお、ここで、評価値は、たとえば、輝度の差の絶対和、当該差の二乗和、あるいは平均値等を用いて定量的に表現可能なデータであり、結果画像と目標画像との差が小さいほど大きな値をとるものである。すなわち、当該評価値は、生成されたフィルタ列を原画像に対して適用して得られる複数の画像に対し、目標画像との比較を行なって得られるものである。また、「優秀な」とは、当該評価値が大きいものをいう。
【0043】
次に、図2(B)に示されるように、第1の世代における処理において優秀なフィルタ列とされたフィルタ220は、第2の世代において、各フィルタの親として登録される。第2の世代は、GAの交叉・突然変異などの手法によって親から生成される。すなわち、複数のフィルタ列220−1,220−2等が生成される。各フィルタ列は、第1世代における処理と同様に原画像に対するフィルタ処理を実行し、結果画像230−1,230−2等を出力する。それぞれ出力された結果画像から、予め設定された目標画像に最も近い結果画像を出力したフィルタ列が特定され(たとえばフィルタ列230−n)、次の世代における親として登録される(フィルタ列240)。
【0044】
図2(C)に示されるように、同様の処理を第N世代まで繰り返すことにより、画像処理装置を実現するためのフィルタ列を導出することができる。すなわち、フィルタ列240を構成する各フィルタに基づいて、次の世代のフィルタ列群が生成され、(N−1)世代のフィルタ列から、目標画像に最も近い結果画像を出力したフィルタ列を親として、第N世代のフィルタ列250−1,250−2等のフィルタ列群が生成され、それぞれのフィルタ列を用いたフィルタ処理が実行される。予め設定された目標画像に最も近い結果画像を出力したフィルタ列260−2は、画像処理装置を実現するためのフィルタ列270として導出される。
【0045】
図3を参照して、本発明の第1の実施の形態に係る画像処理アルゴリズムを導出するためのシステム300について説明する。図3は、システム300の概略構成を表わすブロック図である。
【0046】
システム300は、画像処理を実現するための複数の処理モジュールから構成される複数の個体を生成可能な個体群生成部310と、予め準備された評価基準に基づいて当該個体を評価する個体評価部330−1,…,330−Pとを含む(以下、総称する時は個体評価部330と表わす。)。個体群生成部310と各個体評価部とは、通信回線390を介して接続されている。ここで、処理モジュールとは、画像処理を実現するために用いられるフィルタをいう。フィルタは、予め準備されたものであり、たとえば最大化フィルタ、最小化フィルタ、ゾーベル(sobel)フィルタ、ラプラシアンフィルタなどを含む。
【0047】
個体群生成部310は、複数の処理モジュールを格納するメモリ318と、各処理モジュールに基づいて遺伝的アルゴリズムに従い画像処理を規定するためのアルゴリズムを導出する世代生成部312と、通信回線390を介して各個体評価部330−1,…,330−Pとの間でデータの通信を行なう通信部314と、世代生成部312、通信部314およびメモリとの間におけるデータの通信を制御するための制御部316とを含む。
【0048】
各個体評価部330−1は、個体群生成部310により生成された個体を予め準備された評価基準に従って評価する評価部332と、通信回線390を介して個体群生成部310との間で通信を行なうための通信部334と、評価部332および通信部334の動作を制御するための制御部336と、評価部332により評価された結果および通信部334を介して受信されたデータを格納するためのメモリ338とを含む。
【0049】
なお、図3においてはP台の個体評価部が通信回線に接続されているが、個体評価部の数は「1」であってもよい。すなわち、本発明に係る画像処理アルゴリズムの導出は、1台の個体群生成部310と、1台の個体評価部とによって実現可能である。
【0050】
図4を参照して、システム300の制御構造について説明する。図4は、個体群生成部310と各個体評価部330とによって実行される処理の手順を表わすフローチャートである。
【0051】
ステップS410にて、個体群生成部310の制御部316は、通信部314を介して、原画像および目標画像を各個体評価部330に転送する。ステップS420にて、個体群生成部310の世代生成部312は、メモリ338に格納されている処理モジュールに基づいて初期の世代に属する複数の個体を生成する。
【0052】
ステップS430にて、個体群生成部310は、通信部314を介して世代生成部312によって生成された複数の個体をそれぞれ各個体評価部に転送する。各個体評価部に転送される個体の数は、たとえば評価の対象となる個体の数を個体評価部の数で除した値となる。この時余りが生じる場合には、予め設定された基準に従う個体評価部のみ、さらに1つの個体が割り当てられる。
【0053】
ステップS440にて、個体評価部330の評価部332は、通信部334により受信された個体を予め準備された評価基準に基づいて評価する。ステップS450にて、個体評価部330は、通信部334を介して、評価部332による個体の評価結果を個体群生成部310に対して転送する。
【0054】
ステップS460にて、個体群生成部310は、予め定められた世代だけの個体を生成したか否かを判断する。ここで、予め定められた世代とは、画像処理アルゴリズムを作成するために前もって個体群生成部310に対して入力された世代の上限値をいう。予め定められた世代だけの個体が生成された場合には(ステップS460にてYES)、処理は終了する。そうでない場合には(ステップS460にてNO)、処理はステップS470に移される。
【0055】
ステップS470にて、個体群生成部310は、次の世代に属する個体を生成する。その後、処理はステップS430に戻される。
【0056】
次に、図5を参照して、個体群生成部310の制御構造について詳細に説明する。図5は、個体群生成部310の制御部316が実行する処理の手順を表わすフローチャートである。
【0057】
なお、以下の説明において、評価を行なう世代数をGとする。1世代で生成される個体数をNとする。個体評価部の数をPと表わす。評価が行なわれている世代を示す値をgとする。個体群生成部が通信する個体評価部の識別番号をpとする。
【0058】
ステップS502にて、制御部316は、画像処理を規定するアルゴリズムを導出するための処理に用いるパラメータを初期化する。評価世代数gは、0に初期化される。ステップS504にて、制御部316は、前もって入力されてメモリ318に格納されている原画像および目標画像を、各個体評価部330に対して送信する。これにより、全ての個体評価部が原画像および目標画像を保持することになる。
【0059】
ステップS506にて、制御部316は、評価世代数gが評価を行なうために予め設定された世代数Gに等しいか否かを判断する。評価世代数gと世代数Gとが等しい場合には(ステップS506にてYES)、処理はステップS540に移される。そうでない場合には(ステップS506にてNO)、処理はステップS510に移される。
【0060】
ステップS510にて、制御部316は、メモリ318に格納されている複数の処理モジュールに基づいてN個の個体を生成する。ここで、個体の生成は、たとえば処理モジュールとしてのフィルタを予め定められた数だけ選択し、その選択された各フィルタを組み合わせてフィルタ列を構成することにより行なわれる。この場合、1つのフィルタ列が当該個体に相当する。
【0061】
ステップS512にて、制御部316は、個体群生成部310の通信相手である個体評価部330の中の、実際に通信する個体評価部を識別するための番号(以下「識別番号」という。)pを初期化する(p=0)。
【0062】
ステップS514にて、制御部316は、ステップS510にて生成されたN個の個体をすべての個体評価部330に割り当てる。具体的には、各個体評価部に転送する個体数をNの値とPの値から算出する。たとえば、まず、制御部316は、N/Pを算出し、その商を各個体評価部に割り当てる。また、余りは生じる場合には、制御部316は、予め定められた個体評価部の順位に従って、当該余りを割り当てる。したがって、各個体評価部に割り振られる個体数は、N/PまたはN/P+1となる。
【0063】
ステップS516にて、制御部316は、識別番号pと個体評価部のPとが等しいか否かを判断する。pとPとが等しい場合には(ステップS516にてYES)、処理はステップS522に移される。そうでない場合には(ステップS516にてNO)、処理はステップS518に移される。
【0064】
ステップS518にて、制御部316は、通信する個体評価部の識別番号pに対応する個体群(p)をその個体評価部に対して送信する。ステップS520にて、制御部316は、識別番号pを1インクリメントする。処理は、その後ステップS516に移される。
【0065】
ステップS522にて、制御部316は、識別番号pを0に初期化する。ステップS524にて、制御部316は、識別番号pと個体評価部の数Pとが等しいか否かを判断する。pとPとが等しい場合には(ステップS524にてYES)、処理はステップS526に移される。そうでない場合には(ステップS524にてNO)、処理はステップS532に移される。
【0066】
ステップS526にて、制御部316は、メモリ318に格納されているデータに基づいてすべてのpについてのフラグがアイドル(以下「IDLE」と表わす)であるか否かを判断する。すべてのフラグがIDLEである場合には(ステップS526にてYES)、処理はステップS528に移される。そうでない場合には(ステップS526にてNO)、処理はステップS530に移される。ステップS530にて、制御部316は、識別番号pを0に初期化する。
【0067】
ステップS532にて、制御部316は、識別番号pについてのフラグがIDLEであるか否かを判断する。そのフラグがIDLEである場合には(ステップS532にてYES)、処理はステップS534に移される。そうでない場合には(ステップS532にてNO)、処理はステップS538に移される。
【0068】
ステップS534にて、制御部316は、識別番号がpである個体評価部に対して、評価結果の転送を要求する。この要求は、たとえば、制御部316が、個体群生成部310と個体評価部330との間で予め定められた通信プロトコルに従うコマンドを生成して、当該固体評価部に対して送信することにより行なわれる。
【0069】
ステップS536にて、制御部316は、識別番号pの個体評価部から、その要求に応じた評価結果を受信する。この評価結果は、メモリ318に格納される。ステップS538にて、制御部316は、識別番号pを1つインクリメントする。その後、処理は、ステップS524に戻される。
【0070】
ステップS540にて、制御部316は、結果を予め定められた出力形式に変換し、当該形式のデータを外部に出力する。ここでは、評価結果が最も良好な個体が最優秀な個体として特定され、その個体を識別するデータが出力される。「評価結果が最も良好な」とは、すなわち、前述の評価値が最も大きいことである。
【0071】
なお、予め設定された世代数に到達した場合に処理を終了する態様に代えて、評価結果に基づいて処理を終了する態様によっても、画像処理の手順を規定するアルゴリズムを導出することができる。
【0072】
すなわち、各評価結果について予め定められた評価基準を満足する個体が存在するか否かを判定し、当該基準を満足する個体が得られた場合には、処理を終了してもよい。
【0073】
次に、図6および図7を参照して、個体群生成部310のデータ構造について説明する。図6は、個体群生成部310が上記の処理を実行している間にメモリ318に一時的に格納されるデータのテーブル600を表わす図である。メモリ318は、たとえばRAM(Random Access Memory)により実現される。図7は、個体評価部330による評価結果が格納されるテーブル700を表わす図である。
【0074】
図6に示されるように、メモリ318はテーブル600を含む。テーブル600は、識別番号Pが格納される領域610と、各識別番号に対応する個体評価部の状態を表わすデータが格納される領域620とを含む。たとえば、識別番号が「0」である個体評価部は、状態がビジィ(以下「BUSY」と表わす。)である。同様に識別番号1および2に対応する個体評価部に関し、各個体評価部の状態はBUSYである。この場合、各個体評価部は、それぞれに割り当てられた個体を評価するために予め設定された評価処理を実行していることになる。
【0075】
一方、識別番号Pに対応する個体評価部は、その状態はIDLEである。このとき、その個体評価部は、個体を評価するための処理を実行していない状態(すなわち待機状態)である。
【0076】
図7を参照して、メモリ318はテーブル700を含む。テーブル700は、領域710〜740を含む。個体を識別する番号を表わすデータは、領域710に格納されている。各個体に対応する具体的なフィルタ列は、領域720に格納されている。各個体が割り当てられる個体評価部を識別するデータは、領域730に格納されている。各個体に対する評価結果は、領域740に格納されている。
【0077】
なお、データの格納の態様は、図7に示される態様に限られない。すくなくとも、領域710〜領域740に格納されるデータが、それぞれ関連付けられていればよい。
【0078】
また、領域720に格納されているフィルタ列を表す数字は、具体的なフィルタの種別に対応するものであってもよい。この場合、評価結果とフィルタ列との対応を速やかに確認することが可能になる。
【0079】
図8を参照して、個体評価部330の制御構造についてさらに説明する。図8は、制御部336が実行する処理の手順を表わすフローチャートである。
【0080】
ステップS810にて、制御部336は、通信部334を介して個体群生成部310により生成されたコマンドを受信する。ステップS820にて、制御部336は、メモリ338に予め格納されているコマンドの情報に基づいて受信したコマンドの内容を確認する。制御部336は、その後の処理をそのコマンドに応じて切り換える。
【0081】
そのコマンドが個体群生成部310から目標画像および結果画像を受信することを要求するものである場合には、ステップS830にて、制御部336は、通信部334を介して、個体群生成部310から送信された目標画像と結果画像とを受信する。受信された各画像のデータは、メモリ338において予め定められた各領域に格納される。
【0082】
受信したコマンドが個体群生成部310から個体を受信することを要求するものである場合には、ステップS840にて、制御部336は、通信部334を介して個体群生成部310から個体を受信する。受信された個体のデータは、メモリ338に格納される。
【0083】
ステップS842にて、制御部336は、当該個体評価部の状態フラグをBUSYに設定する。このフラグは、メモリ338において当該フラグのために確保されている領域に格納される。フラグがBUSYに設定されると、制御部336は、後述するように、割り込み処理を除いて、原則として他のコマンドに基づく要求を受け付けなくなる。
【0084】
ステップS844にて、制御部336は、予め準備された評価基準に基づいてその個体を評価する。当該個体の評価結果は、メモリ338において結果を格納するために確保されている領域に格納される。評価の対象となる個体が複数存在する場合には、制御部336は、ステップS844の処理をその個体数だけ繰り返す。
【0085】
個体の評価が完了すると、制御部336は、他の処理を実行可能なように、個体評価部330の状態を切り換える。
【0086】
すなわち、ステップS846にて、制御部336は、状態フラグをIDLEに設定する。このフラグは、メモリ338において当該フラグのために確保されている領域に格納される。フラグがIDLEに設定されると、制御部336は、後述するように、他の個満とに基づく要求を受けることが可能になる。
【0087】
また、ステップS820にて確認されるコマンドには、個体評価部330の状態を問い合せるものが含まれる。この場合、ステップS850にて、制御部336は、当該コマンドを認識する。
【0088】
ステップS852にて、制御部336は、そのコマンドの認識に基づいて、メモリ338に格納されている状態フラグのデータをワークメモリ(図示しない)に読み出し、そのデータが含まれる信号を生成し、その信号を個体群生成部310に対して送信する。
【0089】
さらに、ステップS820にて確認されるコマンドには、個体の評価結果の転送を要求するものが含まれる。この場合、ステップS862にて、制御部336は、当該個体を識別する番号と、当該個体の評価結果を送信する。もし、当該個体についての評価処理が行なわれていない場合には、制御部336は、当該個体の評価結果についての情報が存在しないことを表わすメッセージ「情報なし」を生成し、そのメッセージを個体群生成部310に対して送信する。
【0090】
図9を参照して、システム300の状態の推移について説明する。図9は、個体群生成部310と各個体評価部330とにおける状態の変化を表わすタイムチャートである。
【0091】
図9に示されるように、個体評価部330は、以下の時間において、その作動を停止する。すなわち、世代生成時間(Tc)、少なくとも一つの個体評価部が評価結果を返送完了した時刻から、すべての個体評価部が評価を終了するまでの時刻差(Td_e)、個体群生成部が少なくとも一つの個体評価部に個体を転送開始した時刻から、最後の個体評価部に個体を転送開始するまでの時刻差(Td_s)、少なくとも一つの個体評価部が評価を終えた時点から、その個体評価部に対して個体群生成部からの状態確認が送信されてくるまでの時刻差(Td_f)として表わされる時間、個体評価部は、個体を評価するための処理を実行しない。
【0092】
個体群生成部310は、メモリ318に格納されているデータに基づいて特定の世代を構成する個体を生成し、その個体を各個体評価部に転送する。その後、個体群生成部310は、各個体評価部から当該個体の評価結果を受信する。したがって、個体群生成部310は、自己が作動する時間として、世代生成時間910と、ダウンロード時間930と、アップロード時間920とを含む。
【0093】
ここで、世代生成時間910は、遺伝的アルゴリズムに従って特定の世代に属する個体を生成するために要する時間である。ダウンロード時間930は、個体群生成部310から各個体評価部330に対して、個体のデータを送信するために要する時間である。アップロード時間920は、各個体評価部330から個体群生成部310に対して個体の評価結果を転送するために要する時間である。
【0094】
一方、各個体評価部330は、個体群生成部310から個体のデータを受信し、予め定められた評価基準に従ってその個体のデータを評価し、さらに評価結果を個体群生成部310に対して転送する。したがって、各個体評価部330は、それが作動する時間として、ダウンロード時間930と、評価時間940と、アップロード時間920とを含む。
【0095】
アップロード時間920とダウンロード時間930とは、前述の個体群生成部310における各時間に対応する。評価時間940は、上記の評価基準に基づいて個体を評価するために要する時間である。各個体評価部330は、これらの時間に加えてさらに停止時間950を含む。各個体評価部330は、評価の対象となる個体データが存在する間予め定められた評価処理を実行できるため、それらのデータが存在しない場合には、各個体評価部330は停止する。そのため、上述のようような停止時間950が生じることになる。
【0096】
ここで、図10を参照して、個体群生成部310あるいは個体評価部330を実現するコンピュータシステム1000について説明する。図10は、コンピュータシステム1000のハードウェア構成を表わすブロック図である。
【0097】
コンピュータシステム1000は、相互にデータバスにより接続されたCPU10と、外部から指示の入力を受けるためのマウス12およびキーボード13と、外部から入力されるデータあるいはCPU10によって一時的に生成されるデータを格納するRAM14と、データを不揮発的に格納できるハードディスク15と、CD−ROM駆動装置16と、モニタ16と、通信IF(interface)19とを含む。CD−ROM駆動装置16には、CD−ROM16aが装着される。
【0098】
コンピュータシステム1000における処理は、各ハードウェアおよびCPU10により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク15に予め記憶されている場合がある。あるいは、ソフトウェアは、CD−ROM16aその他の記憶媒体に格納されて、プログラム製品として流通している場合もある。さらに、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。
【0099】
このようなソフトウェアは、CD−ROM駆動装置16その他の読取装置によりその記憶媒体から読み取られた後、あるいは、通信IF19を介してダウンロードされた後、ハードディスク15に一旦格納される。そのソフトウェアは、CPU10によってハードディスク15から読み出され、RAM14に実行可能なプログラムの形式で格納される。CPU10は、そのプログラムを実行する。
【0100】
図10に示されるコンピュータシステム1000を構成する各ハードウェアは、一般的なものである。したがって、本発明を実現する個体群生成部の本質的な部分は、RAM14、ハードディスク15、CD−ROM16aその他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム1000の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0101】
図11を参照して、本発明に係るシステム1100が備える機能について説明する。図11は、システム1100の機能的構成を表わすブロック図である。
【0102】
システム1100は、外部からデータの入力を受けるデータ入力部1110と、外部から入力されたデータを格納する記憶部1112と、記憶部1112に格納されているデータを読み出すデータ読出部1114と、データ読出部1114により読み出されたデータに基づいて評価の対象となる複数の個体を生成する個体群生成部1116と、評価処理を実行する装置の数に応じて生成された個体を分割する分割部1118と、分割により生成された個体のグループを各装置に対して転送する評価対象転送部1120と、評価の対象となる個体の入力を受ける個体群入力部1122と、入力された個体を予め準備された基準に従って評価する評価部1124と、評価結果を転送するタイミングを検知するためのタイミング検知部1126と、そのタイミングに応じて評価が完了した個体についての結果を転送する結果転送部1128と、転送された評価結果を取得する評価結果取得部1130と、その結果に基づいて評価されていた個体が属する世代の次の世代に属する個体を生成する次世代個体群生成部1132と、評価が完了していない個体の評価を行なう未評価個体評価部1134と、評価が行なわれている世代の前の世代に属する個体を削除する前世代個体削除部1136とを含む。
【0103】
図12を参照して、本実施の形態に係るシステムの具体的構成について説明する。図12は、個体群生成部310と個体評価部330とをそれぞれコンピュータシステムにより構成した場合のシステムを表わすブロック図である。
【0104】
このシステムは、個体群生成部310として機能するコンピュータシステム1200と、個体評価部330としてそれぞれ機能するP台のコンピュータシステム1200−1,…,1200−Pとを含む。各コンピュータシステムは、通信回線1290によりそれぞれ接続されている。
【0105】
なお、図12に示される各コンピュータシステムに関し、図10に示されるコンピュータシステム1000が備える構成と同一の構成には同一の番号を付してある。それらの機能も同じである。したがって、ここではそれらについての説明は繰り返さない。
【0106】
図13を参照して、個体群生成部310として機能するコンピュータシステム1200のデータ構造について説明する。図13は、コンピュータシステム1200のハードディスク15におけるデータの格納の一態様を表わす図である。
【0107】
ハードディスク15は、領域1310〜領域1380を含む。画像処理の対象である原画像データは、領域1310に格納されている。原画像を処理して得られる画像として期待される結果である目標画像データは、領域1320に格納されている。後述する処理により生成されるN個の個体を表わすデータは、領域1330〜領域1350にそれぞれ格納される。また、個体評価部330として機能するコンピュータシステム1200−1〜1200−Pの各々から送信された各個体の評価結果は、領域1360〜領域1380に格納されている。
【0108】
図14を参照して、個体評価部330として機能するコンピュータシステム1200−Pのデータ構造について説明する。図14は、コンピュータシステム1200−Pのハードディスク15Pにおけるデータの格納の一態様を表わす図である。
【0109】
ハードディスク15Pはデータを格納する領域1410〜領域1460を含む。コンピュータシステム1200から送信されたデータは、各領域に格納される。すなわち評価の対象となるn個の個体データは、領域1410〜領域1430に格納されている。各個体データを用いた評価結果は、領域1440〜領域1460にそれぞれ格納される。
【0110】
なお、前述のように個体評価部330においては、評価の対象となる個体データがすべて生成されるとは限らないため、各個体データについての結果が、すべて図14に示される形で格納されるとは限らない。たとえば評価の途中で未評価のデータが削除された場合には、削除された個体データおよびそのデータについて生成される予定であった評価結果は格納されなくなる。
【0111】
図15を参照して、個体群生成部310として機能するコンピュータシステム1200の制御構造について説明する。図15は、コンピュータシステム1200のCPU10が実行する処理の手順を表わすフローチャートである。なお、図5に示される処理と同一の処理には同一のステップ番号を付してある。したがって、当該処理の説明は、ここでは繰り返さない。また、1世代の評価時間、すなわちその世代に属する個体の評価を行なうために要する時間をTa_estとする。世代評価時間をtとする。
【0112】
ステップS1502にて、CPU10は、画像処理アルゴリズムを導出するための処理に用いられるパラメータを初期化する。ここでは、評価世代数gが「0」に設定される。また、各個体評価部330において世代を評価するために与えられる時間(世代評価時間)Ta_estが予め設定された値に初期化される。ここで、Ta_estは、たとえば次式(1)の関係を満足するように設定される。
Ta_est < (N/P×T1_est) − Tc ・・・(1)
ただし、N:1世代で生成される個体数、P:個体評価部の数、T1_est:個体評価部の1つの個体の処理に要する時間、Tc:世代生成時間である。
【0113】
すなわち、個体群生成部が少なくとも一つの個体評価部に対して個体を転送した時刻から個体群生成部が少なくとも一つの個体評価部から評価結果を取得開始するまでの時間は、少なくとも一つの個体評価部が個体群生成部から転送された対応するすべての個体の評価を終える時間から世代生成の時間を差し引いた時間よりも短くなるように、設定される。
【0114】
図15を再び参照して、ステップS514にて、CPU10は、個体の評価のために経過した時間を表わす変数Tを0に設定する。ステップS516にて、CPU10は、個体評価部の識別番号pと個体評価部の数Pとが同じであるか否かを判断する。識別番号pと個体評価部の数Pとが同じである場合には(ステップS516にてYES)、処理はステップS1518に移される。そうでない場合には(ステップS516にてNO)、処理はステップS518に移される。
【0115】
ステップS1518にて、CPU10は、世代評価時間tが予め設定された評価時間Ta_estを上回るか否かを判断する。世代評価時間tが設定時間Ta_estを上回る場合には(ステップS1518にてYES)、処理はステップS1520に移される。そうでない場合には(ステップS1518にてNO)、CPU10は、ステップS1518における処理を再び実行する。
【0116】
ステップS1520にて、CPU10は、識別番号pを「0」に初期化する。ステップS1522にて、CPU10は、識別番号pと個体評価部の数Pとが同じであるか否かを判断する。識別番号pと個体評価部の数Pとが同じである場合には(ステップS1522にてYES)、処理はステップS1534に移される。そうでない場合には(ステップS1522にてNO)、処理はステップS534に移される。
【0117】
ステップS1534にて、CPU10は、評価世代数gを「1」インクリメントする。その後、処理は、ステップS1506に移される。
【0118】
図16を参照して、個体評価部330として機能するコンピュータシステム1200−Pの制御構造について説明する。図16は、コンピュータシステム1200−PのCPU10が実行する処理の手順を表わすフローチャートである。なお、図8に示される処理と同一の処理には同一のステップ番号を付してある。したがって、当該処理の説明は、ここでは繰り返さない。なお、以下の説明で、Emaxは、個体評価部300で評価できる最大個体数を表わす。eは、評価中の個体位置を表わし、0からEmaxまでの値を取る。Eは、評価リストに保存された個体の最大数を表わす。
【0119】
ステップS1622にて、CPU10は、RAM14に格納されている評価リストから、未評価の個体(第e+1番目以降の個体)を削除する。ステップS1624にて、CPU10は、通信IF19を介して受信した個体のデータを、評価リストの第e+1番目以降、第Emax番目まで追加する。
【0120】
ステップS1626にて、CPU10は、値Eのデータを更新する。すなわち、CPU10は、値Eを、評価リストの最後の個体の番号に設定する。ステップS1628にて、CPU10は、値Eと値eとが同じであるか否かを判断する。これらの値が同じである場合には(ステップS1628にてYES)、処理はステップS1630に移される。そうでない場合には(ステップS1628にてNO)、処理は終了する。
【0121】
ステップS1630にて、CPU10は、第e番目の個体の評価を行なう。ステップS1632にて、CPU10は、第e番目の評価結果を更新する。ステップS1634にて、CPU10は、eの値を1インクリメントする。その後、処理はステップS1628に戻される。
【0122】
ステップS1640にて、CPU10は、コンピュータシステム1200から評価結果の転送を要求するコマンドの受信を検知する。ステップS1642にて、CPU10は、その要求に基づいて、これまで実行していた評価処理を一時的に停止する。
【0123】
ステップS1644にて、CPU10は、ハードディスク15Pに格納されているデータに基づいて、評価済みの個体を識別するための個体ID(Identification)と、各個体の評価結果とが含まれる結果データを生成し、当該結果データを、コンピュータシステム1200に対して転送する。
【0124】
ステップS1646にて、CPU10は、個体リストから評価済みの個体のデータを削除する。ステップS1648にて、CPU10は、個体番号eの値を0に更新(初期化)する。
【0125】
ステップS1650にて、CPU10は、値Eを、評価リストの最後の個体の番号に設定する。ステップS1652にて、CPU10は、一時的に停止していた個体の評価を再開する。
【0126】
図17を参照して、コンピュータシステム1200−Pのデータ構造について説明する。図17は、コンピュータシステム1200−PのRAM14における評価リストの格納の一態様を表わす図である。
【0127】
リスト1710は、コンピュータシステム1200−Pが個体の評価処理を実行していた場合においてコンピュータシステム1200から受信したコマンドによる割り込みによって処理が中断した場合のリストの内容を表わす。リスト1710において、eの値は、評価の対象となる個体の番号、Eの値は、リストに保存されている個体の最大数を表わす。
【0128】
リスト1710では、第0番目〜第7番目までの個体について、その評価が完了している。第8番目の個体は、現在評価の途中である。ここで、個体評価部330として機能するコンピュータシステム1200−Pがコンピュータシステム1200から個体の受信を要求するコマンドを受信した場合には、未評価の個体がリスト1710からの削除の対象となる。コンピュータシステム1200から送信された新たな個体についての情報がリストに加えられると、そのリストは更新される(リスト1720)。この場合、第9番目の個体から第Emax番目の個体までが、当該コマンドに応じて新たに受信された個体についての情報を表わすことになる。
【0129】
コンピュータシステム1200−Pが、個体の評価処理を実行している間に、評価結果の転送要求のコマンドを受信した場合には、コンピュータシステム1200−Pは、実行していた評価処理を一時的に停止する。このとき、リスト1730に示されるように、評価が完了した個体のデータがコンピュータシステム1200に対する転送の対象となる。すなわち第0番目から第30番目の個体についての評価結果がコンピュータシステム1200に転送される。コンピュータシステム1200−PのCPU10が、その転送の完了を確認した後(たとえばコンピュータシステム1200が、送信されるべきデータをすべて受信したことを通知するレポートを送信し、コンピュータシステム1200−Pがそのレポートを受信した場合)、CPU10は、リスト1730の中から、第0番目から第30番目に属する個体のデータを削除する。この場合、第31番目の個体が評価の途中であったため、第31番目以降の個体のデータは、削除されることなく、そのまま保存される。
【0130】
一時的に中断されていた評価処理が再び開始されると、リスト1730の内容は、削除により生じた空欄だけ埋めるように更新される。その結果、リスト1740が生成される。すなわち、リスト1730において個体100から個体130までのデータが転送されたため、これらのデータが削除されている。
【0131】
評価結果が転送されていないデータ、すなわち個体131〜個体150までのデータは、その後の評価の対象となる。したがって個体131〜個体150までのデータがリストの先頭に来るようにデータが更新される。この場合、各領域に格納されるデータに関し、第0番目のデータは、個体131についてのデータとなり、最後の個体である個体150は、第19番目の領域に格納されることになる。
【0132】
図18を参照して、本実施の形態に係るシステムの状態の推移について説明する。図18は、図12に示される構成によって実現されるシステムにおいて、個体群生成部310および各個体評価部330の作動状態の推移を表わすタイムチャートである。
【0133】
チャート(A)に示されるように、個体群生成部310が作動する時間は、特定の世代に属する個体を生成するために要する世代作成時間1810と、個体のデータを各個体評価部に転送するために要するダウンロード時間1830と、各々の個体について評価が完了したものの評価結果を受信するアップロード時間1820とを含む。
【0134】
チャート(B)〜(D)に示されるように、各個体評価部330の作動時間は、個体群生成部310から個体のデータを受信するために要するダウンロード時間1830と、各個体について予め定められた基準に従って評価を行なうために要する評価時間1840と、評価が完了した個体についての評価結果を個体群生成部310に転送するために要するアップロード時間1820とを含む。
【0135】
この場合、各々の個体評価部は、図9に示された時間、すなわち、処理を実行しない停止時間950を含まない。すなわち、評価の処理のための待ち時間が生じない。停止時間が存在しない分、各個体評価部の稼働率が上昇するため、画像処理アルゴリズムの導出に要する時間はその分短くなる。
【0136】
さらに、図19〜21を参照して、本実施の形態に係るシステムにより期待される効果について説明する。図19は、ある世代gについて個体群生成部310が生成した個体が、個体評価部330で評価されるために要する時間を示すタイムチャートである。図20は、ある世代gを生成するための個体が個体評価部330で評価されるために要する時間を示すタイムチャートである。
【0137】
図19に示されるように、個体群生成部310が第g世代に属する複数の個体(個体群)を生成している間、個体評価部330は、第g−1世代に属する個体の評価を続ける。そして、第g−1世代に属する全ての個体の評価が完了するまでに、個体群生成部310は、第g世代の個体のデータを個体評価部に対して転送する。
【0138】
また、図20に示されるように、アップロード時間2020に関し、第g+1世代に属する個体を生成するために、第g世代に属する個体群を生成していた間に評価された第g−1世代に属する個体の評価結果と、第g世代に属する個体であって、評価が完了している個体の評価結果が使用される。したがって、ある世代(たとえば第g世代)に属する全ての個体の評価結果から次の世代(たとえば第g+1世代)に属する全ての個体が生成されず、第g−1世代に属する一部の個体の評価結果と、第g世代に属する一部の個体の評価結果とから、第g+1世代の全ての個体が生成される。
【0139】
図21は、本発明に係る手法による処理の結果と、従来の手法による処理の結果との相違を示す図である。
【0140】
まず、領域2110に示される個体評価部330の停止時間は、従来の手法によれば、Tc+Td_e+Td_s+Td_fとなるところ、本発明に係る手法によれば、「0」となる。つまり、従来の手法の場合に生じていた個体評価部の停止区間は、なくなることになる。
【0141】
次に、1世代評価時間(Ta_est+Tc)あたりの個体評価数は、従来の手法によれば、Nとなるところ、本発明に係る手法によれば、N+n(Tc)+n(Td_e)+n(Td_s)+n(Td_f)となる。ここで、n(x)は、期間xにおける評価個体数を示す。
【0142】
また、1世代あたりの評価結果の期待値は、従来の手法と本発明に係る手法において、Ta_est+Tcが等しいことから、評価結果が個体数に比例するとした場合、従来の手法の期待値1に対し、本発明に係る手法によれば、{N+n(Tc)+n(Td_e)+n(Td_s)+n(Td_f)}/Nとなり、1を上回ることになる。
【0143】
さらに、一定の値以上の評価結果への到達時間は、評価結果が個体数に比例するとした場合、前述の1世代評価時間当たりの個体評価数に反比例するので、従来の手法に係る期待値1に対して、本発明に係る手法によれば、N/{N+n(Tc)+n(Td_e)+n(Td_s)+n(Td_f)}となる。
【0144】
以上のようにして、本発明の第1の実施の形態によれば、個体評価部が特定の世代に属する個体を評価している場合に予め定められたタイミングが検出されると、個体評価部は評価が完了した個体についての評価結果を個体群生成部に転送する。個体群生成部は、その評価結果に基づいて当該世代の次の世代に属する個体を生成する。個体群生成部は、当該次の世代に属する個体を、各個体評価部に転送する。
【0145】
このようにすると、個体評価部は、常にいずれかの世代に属する個体の評価、個体群生成部との間の通信その他の処理を実行しつづけることになるため、個体評価部は、通信回線の遮断その他の不測の事態が発生しない限り作動しつづける。その結果、個体の生成と評価とを順次行なう場合に比べて、予め設定された評価基準を満足する個体を速やかに抽出することができる。これにより、画像処理の手順を規定するアルゴリズムが、従来よりも迅速に導出され得る。
【0146】
また、個体の評価のために与えられた時間内で評価を行なえる個体の数が増加することになるため、評価の対象範囲を広げることができる。その結果、評価基準をより満足する個体を抽出し易くなる。
【0147】
<第2の実施の形態>
本発明の第2の実施の形態に係るシステムは、世代評価時間を予め設定することなく、特定の1世代において評価された個体の数に基づいて次の世代の個体を生成するタイミングを規定する機能を有する点で、前述の実施の形態と異なる。
【0148】
なお、本実施の形態に係るシステムは、たとえば図12に示されるコンピュータネットワークシステムにおいて実現される。したがって、ここではそのハードウェア構成についての説明は繰り返さない。
【0149】
図22を参照して、本実施の形態に係るシステムの制御構造について説明する。図22は、個体群生成部として機能するコンピュータシステム1200のCPU10が実行する処理の手順を表わすフローチャートである。なお、前述の実施の形態(図15)に示される処理と同一の処理には同一のステップ番号を付し、当該処理の説明は、繰り返さない。
【0150】
ステップS2210にて、コンピュータシステム1200のCPU10は、画像処理を規定するアルゴリズムを導出する処理の実行に用いるパラメータを初期化する。この初期化により、評価世代数gは、「0」に設定される。また世代評価を行なう評価済み個体数Nth_endが予め定められた数に設定される。
【0151】
ステップS2220にて、CPU10は、評価が完了した個体の総和Σn(p)が評価済み個体数Nth_endを上回るか否かを判断する。評価が完了した数が評価済み個体数Nth_endを上回っている場合には(ステップS2220にてYES)、処理はステップS1520に移される。そうでない場合には(ステップS2220にてNO)、処理は再びステップS2220に戻される。
【0152】
ここで図23を参照して、個体評価部と個体群生成部との間で行なわれる割込処理について説明する。図23は、当該割込処理の手順を表わすフローチャートである。
【0153】
ステップS2310にて、個体評価部として機能するコンピュータシステム1200−PのCPU10は、個体群生成部として機能するコンピュータシステム1200から処理済みの個体数の転送要求を受信する。コンピュータシステム1200−PのCPU10は、その要求に基づいてRAM14に格納されている評価が完了した個体のデータから評価済みの個体数を算出し、その個体数をコンピュータシステム1200に対して送信する。
【0154】
ステップS2320にて、コンピュータシステム1200は、コンピュータシステム1200−Pによって送信された処理済み個体数を受信する。ステップS2330にて、コンピュータシステム1200のCPU10は、全処理済み個体数の値を更新する。
【0155】
図24を参照して、本実施の形態に係る個体評価部として機能するコンピュータシステム1200−Pの制御構造について説明する。なお、前述の実施の形態(図16)に示される処理と同一の処理には同一のステップ番号を付し、それらについての説明は繰り返さない。
【0156】
ステップS2440にて、コンピュータシステム1200−PのCPU10は、コンピュータシステム1200に、処理済みの個体数の転送要求を送信する。この要求は、コンピュータシステム1200によって割り込みのコマンドとして認識される。コンピュータシステム1200は、コンピュータシステム1200−Pから送信されるデータ、すなわち評価が完了した個体の数を格納するためのメモリ領域を確保する。
【0157】
ステップS2450にて、CPU10は、コンピュータシステム1200に対して、評価処理が完了した個体数n(p)を送信する。コンピュータシステム1200は、個体数を当該メモリ領域に格納する。
【0158】
以上のようにして、本実施の形態によれば、時間ではなく個体数によって次の世代の評価タイミングが規定される。次の世代に属する個体を生成するための個体評価結果数は、一定に保たれる。したがって、特定の世代に属する個体の評価に関し、個体評価部は、無駄なく作動することができる。その結果、第1の実施の形態において説明したように、全体としての評価時間の短縮あるいは評価基準に一層近い結果を導出し得るアルゴリズムを探索することができる。
【0159】
なお、本実施の形態に代えて、たとえば、少なくとも一つの個体評価部の評価済み個体数によって次の世代の評価タイミングを規定してもよい。この場合、少なくとも一つの個体評価部からのみ、評価済み個体数転送要求を送信するようにすればよい。
【0160】
この方法によると、全体の構成における、評価済み個体数の送信回数が1/Pとなるため、個体評価部は、削減された通信回数に応じた時間だけ、個体を評価するための時間として作動することができる。
【0161】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0162】
【図1】本発明の各実施の形態に係る画像処理装置における画像処理フィルタの組み合わせについて説明するための図である。
【図2】複数のフィルタからなるフィルタ列を予め定められた評価基準により順次選択することにより、画像処理装置に使用するためのフィルタ列を選択する態様を表わす図である。
【図3】本発明の第1の実施の形態に係る画像処理アルゴリズムを導出するためのシステム300の概略構成を表わすブロック図である。
【図4】個体群生成部310と各個体評価部330とによって実行される処理の手順を表わすフローチャートである。
【図5】個体群生成部310の制御部316が実行する処理の手順を表わすフローチャートである。
【図6】個体群生成部310が処理を実行している間に揮発性メモリに一時的に格納されるデータの態様を表わす図である。
【図7】個体評価部330による評価結果の格納の態様を表わす図である。
【図8】個体評価部330の制御部336が実行する処理の手順を表わすフローチャートである。
【図9】システム300を構成する個体群生成部310と各個体評価部330とにおける状態の変化を表わすタイムチャートである。
【図10】個体群生成部310あるいは個体評価部330を実現するコンピュータシステム1000のハードウェア構成を表わすブロック図である。
【図11】システム300の機能的構成を表わすブロック図である。
【図12】個体群生成部310と個体評価部330とをそれぞれコンピュータシステムにより構成した場合のシステムを表わすブロック図である。
【図13】コンピュータシステム1200のハードディスク15におけるデータの格納の一態様を表わす図である。
【図14】個体評価部330として機能するコンピュータシステム1200−Pのハードディスク15Pにおけるデータの格納の一態様を表わす図である。
【図15】個体群生成部310として機能するコンピュータシステム1200のCPU10が実行する処理の手順を表わすフローチャートである。
【図16】個体評価部330として機能するコンピュータシステム1200−PのCPU10が実行する処理の手順を表わすフローチャートである。
【図17】コンピュータシステム1200−PのRAM14における評価リストの格納の一態様を表わす図である。
【図18】図12に示される構成によって実現されるシステムにおいて、個体群生成部310および各個体評価部330の作動状態の推移を表わすタイムチャートである。
【図19】ある世代gについて個体群生成部310が生成した個体が、個体評価部330で評価されるために要する時間を示すタイムチャートである。
【図20】ある世代gを生成するための個体が個体評価部330で評価されるために要する時間を示すタイムチャートである。
【図21】本発明に係る手法による処理の結果と、従来の手法による処理の結果との相違を示す図である。
【図22】本発明の第2の実施の形態に係る個体群生成部として機能するコンピュータシステム1200のCPU10が実行する処理の手順を表わすフローチャートである。
【図23】個体評価部と個体群生成分との間で行なわれる割込処理の手順を表わすフローチャートである。
【図24】本実施の形態に係る個体評価部として機能するコンピュータシステム1200−PのCPUが実行する処理の手順を表わすフローチャートである。
【符号の説明】
【0163】
10 CPU、12 マウス、13 キーボード、14 RAM、15,15P ハードディスク、16 CD-ROM駆動装置、16a,16P CD-ROM、18 モニタ、19 通信IF、300,1100 システム、310 個体群生成部、312 世代生成部、314,334 通信部、316,336 制御部、318,338 メモリ、330,330−1,330−n 個体評価部、332 評価部、1200,1200−1,1200−p コンピュータシステム、1110 データ入力部、1112 記憶部、1114 データ読出部、1116 個体群生成部、1118 分割部、1120 評価対象転送部、1122 個体群入力部、1124 評価部、1126 タイミング検知部、1128 結果転送部、1130 評価結果取得部、1132 次世代個体群生成部、1134 未評価個体評価部、1136 前世代個体削除部、1290 通信回線。
【技術分野】
【0001】
本発明は、アルゴリズムを導出する技術に関する。本発明は、より特定的には、取得され画像から特徴のある画像を抽出するためのアルゴリズムの導出方法、導出装置およびコンピュータを導出装置として機能させるためのプログラムに関する。
【背景技術】
【0002】
従来、画像を用いた検査装置などにおいて、得られた画像中の特徴のあるパターンを抽出する要求があった場合、開発者は、そのパターンを抽出するための専用のアルゴリズムを作成する。アルゴリズムは、主として、対象となるパターンの特徴量を増大させるフィルタを組み合わせる処理、パターンを切り出す処理、およびパターンの情報を抽出する処理を含む。フィルタを組み合わせる処理の開発では、当該開発者は、既存の画像処理フィルタの中から有効なフィルタを選択し、処理の順序等を決定し、そして、所望のパターンの特徴量が増大する方向に画像が処理されるようにパラメータの設定その他の調整を行なう。このような画像処理アルゴリズムの開発は、一般に、試行錯誤的な処理として進められる。
【0003】
画像による検査装置の場合においては、検査を行なう対象物が変化した場合、あるいは対象物が同じでも抽出したい新たなパターンが追加された場合には、担当者が対象パターンの解析を逐次行い、そのパターンを抽出するためのアルゴリズムを開発する必要がある。しかし、この方法では、対象物の変化や追加の度に画像処理の担当者がアルゴリズムを考案する必要があり、そのための開発期間を要するという問題がある。
【0004】
アルゴリズムの開発に関し、遺伝的アルゴリズム(Generic Algorithm、以下「GA」)の手法が用いられている。遺伝的アルゴリズムを用いた処理の高速化に関し、並列処理によって実現する技術が開示されている。
【0005】
たとえば、特開2001−229148号公報(特許文献1)および特開2004−258842号公報(特許文献2)は、複数の処理プロセッサ上で遺伝的アルゴリズムによる評価を行なうアルゴリズム処理装置を開示している。これらの装置は、複数のプロセッサにより構成される並列処理装置である。各プロセッサは、遺伝的アルゴリズムを用いるために、個体群情報を保存する記憶部と、個体群情報および後述する通信部によって得られた個体を用いて次の個体群を生成する個体群生成部と、他のプロセッサと個体群情報を送受信する通信部とを備える。
【特許文献1】特開2001−229148号公報
【特許文献2】特開2004−258842号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
各特許文献に開示された処理装置によると、それぞれの処理プロセッサは遺伝的アルゴリズムを動作させるためのプログラムが必要になる。また特開2001−229148号公報に開示された構成によれば、それぞれの処理プロセッサについて個体群を記憶するためのメモリが必要となる。
【0007】
また、そのようなプロセッサは、遺伝的アルゴリズムによる世代生成機能(初期化、選択、交叉、突然変異等)と、生成した個体を評価する評価機能と、さらに他のプロセッサと同期して個体や評価結果をやり取りするための通信機能とを有する必要がある。このため、各プロセッサは、これらの機能を実現するための処理能力を必要とする。
【0008】
また、他のプロセッサと同期するためには、当該他のプロセッサの通信機能との間で同期通信するための機能、通信量を減らすために転送される個体の要/不要を判断して、個体を受信する/しないを決めるための機能が必要になる。
【0009】
このように、遺伝的アルゴリズムに基づいて並列処理を実現するためには、当該処理を実行するプロセッサは、通常の情報処理に使用されるプロセッサが有するスペックを上回るスペックが必要とされる。そのため、通常のプロセッサを有する情報処理装置において、画像処理を実行するアルゴリズムを速やかに得ることができない場合がある。
【0010】
本発明は、上述の問題点を解決するためになされたものであって、その第1の目的は、画像処理の手順を規定するアルゴリズムを速やかに得ることができる画像処理アルゴリズムの導出方法を提供することである。
【0011】
本発明の第2の目的は、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる画像処理アルゴリズムの導出方法を提供することである。
【0012】
本発明の第3の目的は、画像処理の手順を規定するアルゴリズムを速やかに得ることができる画像処理アルゴリズムの導出システムを提供することである。
【0013】
本発明の第4の目的は、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる画像処理アルゴリズムの導出システムを提供することである。
【課題を解決するための手段】
【0014】
上記の課題を解決するために、この発明のある局面に従うと、アルゴリズムの導出方法が提供される。この方法は、予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成手段と、予め準備された評価基準に基づいて生成手段により生成された各個体の評価を行なう評価手段とにより、画像処理の手順を規定するアルゴリズムを導出する方法である。この方法は、予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って個体の生成と評価とを繰り返す処理ステップと、終了条件が成立した場合に、評価の結果に対応する個体をアルゴリズムとして出力するステップとを備える。処理ステップは、生成手段が、各処理モジュールを組み合わせることにより、複数の個体を生成するステップと、生成された各個体を評価手段に転送するステップと、評価基準に基づいて、転送された個体の評価を行なう評価ステップと、予め定められたタイミングに従って、生成手段に対して、評価が完了した個体の評価結果を転送する結果転送ステップと、生成手段が、評価手段からの評価結果に基づいて、評価が完了した個体が属する世代の次世代に属する個体を生成する生成ステップとを含む。結果転送ステップは、評価の対象となる世代において評価が完了した個体についての第1の評価結果と、世代の一世代前の個体についての第2の評価結果とを、生成手段に転送するステップを含む。生成ステップは、第1の評価結果と第2の評価結果とに基づいて、次世代に属する個体を生成するステップを含む。評価ステップは、次世代に属する個体が生成されている間に、評価の対象となる世代に属する未評価の個体を評価するステップを含む。
【0015】
好ましくは、評価手段は、複数である。処理ステップは、生成された各個体を評価手段の数に分けるステップをさらに含む。転送するステップは、各個体を各評価手段に転送する。
【0016】
好ましくは、アルゴリズムの導出方法は、評価が完了した世代に属する個体を削除するステップと、次世代に属する個体を保存するステップとをさらに備える。
【0017】
好ましくは、処理モジュールは、画像処理のためのフィルタである。個体は、複数のフィルタからなるフィルタ列である。
【0018】
好ましくは、アルゴリズムの導出方法は、被写体の撮影により取得された原画像データと、原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各評価手段に送信するステップと、フィルタ列を用いて原画像データに対する画像処理を実行するステップとをさらに備える。評価ステップは、原画像データに対する画像処理の結果と結果画像データとに基づいて、フィルタ列を評価する。
【0019】
好ましくは、アルゴリズムの導出方法は、評価の対象となる世代に属する各個体を評価するために要する評価時間を計測するステップをさらに備える。結果転送ステップは、評価時間に応じて、評価の結果を転送する。
【0020】
好ましくは、アルゴリズムの導出方法は、評価が完了した個体の数を算出する算出ステップをさらに備える。結果転送ステップは、評価が完了した個体の数に応じて、評価の結果を転送する。
【0021】
好ましくは、算出ステップは、各評価手段において評価が完了した個体の数の合計値を算出するステップを含む。結果転送ステップは、合計値に応じて、評価の結果を転送する。
【0022】
好ましくは、算出ステップは、各評価手段の中の予め定められた評価手段によって評価された個体の数の合計値を算出するステップを含む。結果転送ステップは、合計値に応じて、評価の結果を転送する。
【0023】
好ましくは、終了条件は、予め設定された世代に属する個体の評価が完了することである。
【0024】
この発明の他の局面に従うと、画像処理アルゴリズムの導出システムが提供される。このシステムは、予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成装置と、予め準備された評価基準に基づいて生成装置により生成された各個体の評価を行なう評価装置とを備える。生成装置は、予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って、各処理モジュールを組み合わせることにより、個体の生成を繰り返す処理手段と、分けられた各個体を評価装置に転送する個体転送手段とを含む。評価装置は、評価基準に基づいて、転送された個体の評価を行なう評価手段と、予め定められたタイミングに従って、評価の対象となる世代において評価が完了した個体についての第1の評価結果と、世代の一世代前の個体についての第2の評価結果とを、生成装置に転送する結果転送手段とを含む。処理手段は、第1の評価結果と第2の評価結果とに基づいて、次世代に属する個体を生成する生成手段を含む。評価手段は、次世代に属する個体が生成されている間に、評価の対象となる世代に属する未評価の個体を評価する手段を含む。生成装置は、終了条件が成立した場合に、評価の結果に対応する個体を、画像処理の手順を規定するアルゴリズムとして出力する出力手段を含む。
【0025】
好ましくは、生成装置には、複数の評価装置が接続されている。生成装置は、生成された各個体を評価装置の数に分ける手段をさらに含む。個体転送手段は、分けられた各個体を各評価装置に転送する。
【0026】
好ましくは、評価装置は、評価が完了した世代に属する個体を削除する手段と、次世代に属する個体を保存する手段とをさらに備える。
【0027】
好ましくは、処理モジュールは、画像処理のためのフィルタである。個体は、複数のフィルタからなるフィルタ列である。
【0028】
好ましくは、生成装置は、被写体の撮影により取得された原画像データと、原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各評価装置に送信する手段をさらに含む。評価装置は、フィルタ列を用いて原画像データに対する画像処理を実行する手段とをさらに含む。評価手段は、原画像データに対する画像処理の結果と、結果画像データとに基づいて、フィルタ列を評価する。
【0029】
好ましくは、評価装置は、評価の対象となる世代に属する各個体を評価するために要する評価時間を計測する手段をさらに含む。結果転送手段は、評価時間に応じて、評価の結果を転送する。
【0030】
好ましくは、評価装置は、評価が完了した個体の数を算出する算出手段をさらに含む。結果転送手段は、評価が完了した個体の数に応じて、評価の結果を転送する。
【0031】
好ましくは、算出手段は、各評価装置において評価が完了した個体の数の合計値を算出する。結果転送手段は、合計値に応じて、評価の結果を転送する。
【0032】
好ましくは、算出手段は、各評価装置の中の予め定められた評価装置によって評価された個体の数の合計値を算出する。結果転送手段は、合計値に応じて、評価の結果を転送する。
【0033】
好ましくは、終了条件は、予め設定された世代に属する個体の評価が完了することである。
【0034】
好ましくは、評価手段は、動的再構成可能な回路である。
【発明の効果】
【0035】
本発明に係る画像処理アルゴリズムの導出方法によれば、画像処理の手順を規定するアルゴリズムを速やかに得ることができる。また、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる。
【0036】
本発明に係る画像処理アルゴリズムの導出システムによれば、画像処理の手順を規定するアルゴリズムを速やかに得ることができる。また、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる。
【発明を実施するための最良の形態】
【0037】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0038】
<第1の実施の形態>
最初に、図1を参照して、本発明の各実施の形態に係る画像処理装置における画像処理フィルタの組み合わせについて説明する。図1は、原画像100に対して予め準備されたフィルタ110−1,110−2,…,110−nを用いて結果画像120を得るための処理を概念的に表わす図である。
【0039】
各フィルタ110−1,110−2は、予め作成されたフィルタ、たとえば最大化フィルタ、最小化フィルタ、ゾーベル(sobel)フィルタ、ラプラシアンフィルタなどである。フィルタ処理が実行される場合、原画像100が最初に与えられる。また原画像100に対応する目標画像が与えられる。ここで、目標画像とは、原画像100を処理することにより得られる画像として期待される画像である。図1に示されるように、たとえばn段のフィルタの列が与えられた場合には、第1のフィルタ110−1を用いたフィルタ処理が原画像100に対して行なわれる。その結果画像に対して第2のフィルタ110−2を用いたフィルタ処理が実行される。同様に処理が繰り返され、第nのフィルタ110−nを用いた処理が実行される。最後の処理により得られる画像は、結果画像120として出力される。この場合、結果画像120が予め設定された目標画像に近い場合、すなわち結果画像120と目標画像とをそれぞれ定量化し、各々の値の差が予め定められた基準値よりも小さい場合には、結果画像120を得るために使用された各フィルタの列は、画像処理を実現するためのアルゴリズムに近いものと判断される。
【0040】
図2を参照して、本発明に係る画像処理装置において遺伝的アルゴリズム(GA)を用いた手法を適用した場合について説明する。図2は、複数のフィルタからなるフィルタ列を予め定められた評価基準により順次選択することにより、画像処理装置に使用するためのフィルタ列を選択する態様を表わす図である。
【0041】
図2(A)に示されるように、まず複数のフィルタ列からなる第1世代のフィルタ列群200−1,200−2等が生成される。各フィルタ列群は、予め準備されたフィルタをランダムに組み合わせることにより構成される。生成されたすべてのフィルタ列群のそれぞれのフィルタ列に対して予め準備された原画像100が、入力画像として与えられる。各フィルタ列群は、その原画像100に対して各フィルタを用いることにより、それぞれ対応する画像処理を実行し、結果画像210−1,210−2等を出力する。各結果画像は予め設定された目標画像と比較され、目標画像に近い結果画像を出力したフィルタ列(たとえばフィルタ列210−4)は、求めるフィルタ列に近いものとして高い評価値が与えられる。ここで評価値とは、後述するように、フィルタ列の評価結果として、各フィルタ列の属性を定量的に表現するために表わされる値である。第1の世代で高い評価値が与えられたフィルタ列は、その世代においていわゆる優秀なフィルタ列であるとされ、次の世代すなわち第2の世代を生成するための親として登録される(フィルタ列220)。
【0042】
なお、ここで、評価値は、たとえば、輝度の差の絶対和、当該差の二乗和、あるいは平均値等を用いて定量的に表現可能なデータであり、結果画像と目標画像との差が小さいほど大きな値をとるものである。すなわち、当該評価値は、生成されたフィルタ列を原画像に対して適用して得られる複数の画像に対し、目標画像との比較を行なって得られるものである。また、「優秀な」とは、当該評価値が大きいものをいう。
【0043】
次に、図2(B)に示されるように、第1の世代における処理において優秀なフィルタ列とされたフィルタ220は、第2の世代において、各フィルタの親として登録される。第2の世代は、GAの交叉・突然変異などの手法によって親から生成される。すなわち、複数のフィルタ列220−1,220−2等が生成される。各フィルタ列は、第1世代における処理と同様に原画像に対するフィルタ処理を実行し、結果画像230−1,230−2等を出力する。それぞれ出力された結果画像から、予め設定された目標画像に最も近い結果画像を出力したフィルタ列が特定され(たとえばフィルタ列230−n)、次の世代における親として登録される(フィルタ列240)。
【0044】
図2(C)に示されるように、同様の処理を第N世代まで繰り返すことにより、画像処理装置を実現するためのフィルタ列を導出することができる。すなわち、フィルタ列240を構成する各フィルタに基づいて、次の世代のフィルタ列群が生成され、(N−1)世代のフィルタ列から、目標画像に最も近い結果画像を出力したフィルタ列を親として、第N世代のフィルタ列250−1,250−2等のフィルタ列群が生成され、それぞれのフィルタ列を用いたフィルタ処理が実行される。予め設定された目標画像に最も近い結果画像を出力したフィルタ列260−2は、画像処理装置を実現するためのフィルタ列270として導出される。
【0045】
図3を参照して、本発明の第1の実施の形態に係る画像処理アルゴリズムを導出するためのシステム300について説明する。図3は、システム300の概略構成を表わすブロック図である。
【0046】
システム300は、画像処理を実現するための複数の処理モジュールから構成される複数の個体を生成可能な個体群生成部310と、予め準備された評価基準に基づいて当該個体を評価する個体評価部330−1,…,330−Pとを含む(以下、総称する時は個体評価部330と表わす。)。個体群生成部310と各個体評価部とは、通信回線390を介して接続されている。ここで、処理モジュールとは、画像処理を実現するために用いられるフィルタをいう。フィルタは、予め準備されたものであり、たとえば最大化フィルタ、最小化フィルタ、ゾーベル(sobel)フィルタ、ラプラシアンフィルタなどを含む。
【0047】
個体群生成部310は、複数の処理モジュールを格納するメモリ318と、各処理モジュールに基づいて遺伝的アルゴリズムに従い画像処理を規定するためのアルゴリズムを導出する世代生成部312と、通信回線390を介して各個体評価部330−1,…,330−Pとの間でデータの通信を行なう通信部314と、世代生成部312、通信部314およびメモリとの間におけるデータの通信を制御するための制御部316とを含む。
【0048】
各個体評価部330−1は、個体群生成部310により生成された個体を予め準備された評価基準に従って評価する評価部332と、通信回線390を介して個体群生成部310との間で通信を行なうための通信部334と、評価部332および通信部334の動作を制御するための制御部336と、評価部332により評価された結果および通信部334を介して受信されたデータを格納するためのメモリ338とを含む。
【0049】
なお、図3においてはP台の個体評価部が通信回線に接続されているが、個体評価部の数は「1」であってもよい。すなわち、本発明に係る画像処理アルゴリズムの導出は、1台の個体群生成部310と、1台の個体評価部とによって実現可能である。
【0050】
図4を参照して、システム300の制御構造について説明する。図4は、個体群生成部310と各個体評価部330とによって実行される処理の手順を表わすフローチャートである。
【0051】
ステップS410にて、個体群生成部310の制御部316は、通信部314を介して、原画像および目標画像を各個体評価部330に転送する。ステップS420にて、個体群生成部310の世代生成部312は、メモリ338に格納されている処理モジュールに基づいて初期の世代に属する複数の個体を生成する。
【0052】
ステップS430にて、個体群生成部310は、通信部314を介して世代生成部312によって生成された複数の個体をそれぞれ各個体評価部に転送する。各個体評価部に転送される個体の数は、たとえば評価の対象となる個体の数を個体評価部の数で除した値となる。この時余りが生じる場合には、予め設定された基準に従う個体評価部のみ、さらに1つの個体が割り当てられる。
【0053】
ステップS440にて、個体評価部330の評価部332は、通信部334により受信された個体を予め準備された評価基準に基づいて評価する。ステップS450にて、個体評価部330は、通信部334を介して、評価部332による個体の評価結果を個体群生成部310に対して転送する。
【0054】
ステップS460にて、個体群生成部310は、予め定められた世代だけの個体を生成したか否かを判断する。ここで、予め定められた世代とは、画像処理アルゴリズムを作成するために前もって個体群生成部310に対して入力された世代の上限値をいう。予め定められた世代だけの個体が生成された場合には(ステップS460にてYES)、処理は終了する。そうでない場合には(ステップS460にてNO)、処理はステップS470に移される。
【0055】
ステップS470にて、個体群生成部310は、次の世代に属する個体を生成する。その後、処理はステップS430に戻される。
【0056】
次に、図5を参照して、個体群生成部310の制御構造について詳細に説明する。図5は、個体群生成部310の制御部316が実行する処理の手順を表わすフローチャートである。
【0057】
なお、以下の説明において、評価を行なう世代数をGとする。1世代で生成される個体数をNとする。個体評価部の数をPと表わす。評価が行なわれている世代を示す値をgとする。個体群生成部が通信する個体評価部の識別番号をpとする。
【0058】
ステップS502にて、制御部316は、画像処理を規定するアルゴリズムを導出するための処理に用いるパラメータを初期化する。評価世代数gは、0に初期化される。ステップS504にて、制御部316は、前もって入力されてメモリ318に格納されている原画像および目標画像を、各個体評価部330に対して送信する。これにより、全ての個体評価部が原画像および目標画像を保持することになる。
【0059】
ステップS506にて、制御部316は、評価世代数gが評価を行なうために予め設定された世代数Gに等しいか否かを判断する。評価世代数gと世代数Gとが等しい場合には(ステップS506にてYES)、処理はステップS540に移される。そうでない場合には(ステップS506にてNO)、処理はステップS510に移される。
【0060】
ステップS510にて、制御部316は、メモリ318に格納されている複数の処理モジュールに基づいてN個の個体を生成する。ここで、個体の生成は、たとえば処理モジュールとしてのフィルタを予め定められた数だけ選択し、その選択された各フィルタを組み合わせてフィルタ列を構成することにより行なわれる。この場合、1つのフィルタ列が当該個体に相当する。
【0061】
ステップS512にて、制御部316は、個体群生成部310の通信相手である個体評価部330の中の、実際に通信する個体評価部を識別するための番号(以下「識別番号」という。)pを初期化する(p=0)。
【0062】
ステップS514にて、制御部316は、ステップS510にて生成されたN個の個体をすべての個体評価部330に割り当てる。具体的には、各個体評価部に転送する個体数をNの値とPの値から算出する。たとえば、まず、制御部316は、N/Pを算出し、その商を各個体評価部に割り当てる。また、余りは生じる場合には、制御部316は、予め定められた個体評価部の順位に従って、当該余りを割り当てる。したがって、各個体評価部に割り振られる個体数は、N/PまたはN/P+1となる。
【0063】
ステップS516にて、制御部316は、識別番号pと個体評価部のPとが等しいか否かを判断する。pとPとが等しい場合には(ステップS516にてYES)、処理はステップS522に移される。そうでない場合には(ステップS516にてNO)、処理はステップS518に移される。
【0064】
ステップS518にて、制御部316は、通信する個体評価部の識別番号pに対応する個体群(p)をその個体評価部に対して送信する。ステップS520にて、制御部316は、識別番号pを1インクリメントする。処理は、その後ステップS516に移される。
【0065】
ステップS522にて、制御部316は、識別番号pを0に初期化する。ステップS524にて、制御部316は、識別番号pと個体評価部の数Pとが等しいか否かを判断する。pとPとが等しい場合には(ステップS524にてYES)、処理はステップS526に移される。そうでない場合には(ステップS524にてNO)、処理はステップS532に移される。
【0066】
ステップS526にて、制御部316は、メモリ318に格納されているデータに基づいてすべてのpについてのフラグがアイドル(以下「IDLE」と表わす)であるか否かを判断する。すべてのフラグがIDLEである場合には(ステップS526にてYES)、処理はステップS528に移される。そうでない場合には(ステップS526にてNO)、処理はステップS530に移される。ステップS530にて、制御部316は、識別番号pを0に初期化する。
【0067】
ステップS532にて、制御部316は、識別番号pについてのフラグがIDLEであるか否かを判断する。そのフラグがIDLEである場合には(ステップS532にてYES)、処理はステップS534に移される。そうでない場合には(ステップS532にてNO)、処理はステップS538に移される。
【0068】
ステップS534にて、制御部316は、識別番号がpである個体評価部に対して、評価結果の転送を要求する。この要求は、たとえば、制御部316が、個体群生成部310と個体評価部330との間で予め定められた通信プロトコルに従うコマンドを生成して、当該固体評価部に対して送信することにより行なわれる。
【0069】
ステップS536にて、制御部316は、識別番号pの個体評価部から、その要求に応じた評価結果を受信する。この評価結果は、メモリ318に格納される。ステップS538にて、制御部316は、識別番号pを1つインクリメントする。その後、処理は、ステップS524に戻される。
【0070】
ステップS540にて、制御部316は、結果を予め定められた出力形式に変換し、当該形式のデータを外部に出力する。ここでは、評価結果が最も良好な個体が最優秀な個体として特定され、その個体を識別するデータが出力される。「評価結果が最も良好な」とは、すなわち、前述の評価値が最も大きいことである。
【0071】
なお、予め設定された世代数に到達した場合に処理を終了する態様に代えて、評価結果に基づいて処理を終了する態様によっても、画像処理の手順を規定するアルゴリズムを導出することができる。
【0072】
すなわち、各評価結果について予め定められた評価基準を満足する個体が存在するか否かを判定し、当該基準を満足する個体が得られた場合には、処理を終了してもよい。
【0073】
次に、図6および図7を参照して、個体群生成部310のデータ構造について説明する。図6は、個体群生成部310が上記の処理を実行している間にメモリ318に一時的に格納されるデータのテーブル600を表わす図である。メモリ318は、たとえばRAM(Random Access Memory)により実現される。図7は、個体評価部330による評価結果が格納されるテーブル700を表わす図である。
【0074】
図6に示されるように、メモリ318はテーブル600を含む。テーブル600は、識別番号Pが格納される領域610と、各識別番号に対応する個体評価部の状態を表わすデータが格納される領域620とを含む。たとえば、識別番号が「0」である個体評価部は、状態がビジィ(以下「BUSY」と表わす。)である。同様に識別番号1および2に対応する個体評価部に関し、各個体評価部の状態はBUSYである。この場合、各個体評価部は、それぞれに割り当てられた個体を評価するために予め設定された評価処理を実行していることになる。
【0075】
一方、識別番号Pに対応する個体評価部は、その状態はIDLEである。このとき、その個体評価部は、個体を評価するための処理を実行していない状態(すなわち待機状態)である。
【0076】
図7を参照して、メモリ318はテーブル700を含む。テーブル700は、領域710〜740を含む。個体を識別する番号を表わすデータは、領域710に格納されている。各個体に対応する具体的なフィルタ列は、領域720に格納されている。各個体が割り当てられる個体評価部を識別するデータは、領域730に格納されている。各個体に対する評価結果は、領域740に格納されている。
【0077】
なお、データの格納の態様は、図7に示される態様に限られない。すくなくとも、領域710〜領域740に格納されるデータが、それぞれ関連付けられていればよい。
【0078】
また、領域720に格納されているフィルタ列を表す数字は、具体的なフィルタの種別に対応するものであってもよい。この場合、評価結果とフィルタ列との対応を速やかに確認することが可能になる。
【0079】
図8を参照して、個体評価部330の制御構造についてさらに説明する。図8は、制御部336が実行する処理の手順を表わすフローチャートである。
【0080】
ステップS810にて、制御部336は、通信部334を介して個体群生成部310により生成されたコマンドを受信する。ステップS820にて、制御部336は、メモリ338に予め格納されているコマンドの情報に基づいて受信したコマンドの内容を確認する。制御部336は、その後の処理をそのコマンドに応じて切り換える。
【0081】
そのコマンドが個体群生成部310から目標画像および結果画像を受信することを要求するものである場合には、ステップS830にて、制御部336は、通信部334を介して、個体群生成部310から送信された目標画像と結果画像とを受信する。受信された各画像のデータは、メモリ338において予め定められた各領域に格納される。
【0082】
受信したコマンドが個体群生成部310から個体を受信することを要求するものである場合には、ステップS840にて、制御部336は、通信部334を介して個体群生成部310から個体を受信する。受信された個体のデータは、メモリ338に格納される。
【0083】
ステップS842にて、制御部336は、当該個体評価部の状態フラグをBUSYに設定する。このフラグは、メモリ338において当該フラグのために確保されている領域に格納される。フラグがBUSYに設定されると、制御部336は、後述するように、割り込み処理を除いて、原則として他のコマンドに基づく要求を受け付けなくなる。
【0084】
ステップS844にて、制御部336は、予め準備された評価基準に基づいてその個体を評価する。当該個体の評価結果は、メモリ338において結果を格納するために確保されている領域に格納される。評価の対象となる個体が複数存在する場合には、制御部336は、ステップS844の処理をその個体数だけ繰り返す。
【0085】
個体の評価が完了すると、制御部336は、他の処理を実行可能なように、個体評価部330の状態を切り換える。
【0086】
すなわち、ステップS846にて、制御部336は、状態フラグをIDLEに設定する。このフラグは、メモリ338において当該フラグのために確保されている領域に格納される。フラグがIDLEに設定されると、制御部336は、後述するように、他の個満とに基づく要求を受けることが可能になる。
【0087】
また、ステップS820にて確認されるコマンドには、個体評価部330の状態を問い合せるものが含まれる。この場合、ステップS850にて、制御部336は、当該コマンドを認識する。
【0088】
ステップS852にて、制御部336は、そのコマンドの認識に基づいて、メモリ338に格納されている状態フラグのデータをワークメモリ(図示しない)に読み出し、そのデータが含まれる信号を生成し、その信号を個体群生成部310に対して送信する。
【0089】
さらに、ステップS820にて確認されるコマンドには、個体の評価結果の転送を要求するものが含まれる。この場合、ステップS862にて、制御部336は、当該個体を識別する番号と、当該個体の評価結果を送信する。もし、当該個体についての評価処理が行なわれていない場合には、制御部336は、当該個体の評価結果についての情報が存在しないことを表わすメッセージ「情報なし」を生成し、そのメッセージを個体群生成部310に対して送信する。
【0090】
図9を参照して、システム300の状態の推移について説明する。図9は、個体群生成部310と各個体評価部330とにおける状態の変化を表わすタイムチャートである。
【0091】
図9に示されるように、個体評価部330は、以下の時間において、その作動を停止する。すなわち、世代生成時間(Tc)、少なくとも一つの個体評価部が評価結果を返送完了した時刻から、すべての個体評価部が評価を終了するまでの時刻差(Td_e)、個体群生成部が少なくとも一つの個体評価部に個体を転送開始した時刻から、最後の個体評価部に個体を転送開始するまでの時刻差(Td_s)、少なくとも一つの個体評価部が評価を終えた時点から、その個体評価部に対して個体群生成部からの状態確認が送信されてくるまでの時刻差(Td_f)として表わされる時間、個体評価部は、個体を評価するための処理を実行しない。
【0092】
個体群生成部310は、メモリ318に格納されているデータに基づいて特定の世代を構成する個体を生成し、その個体を各個体評価部に転送する。その後、個体群生成部310は、各個体評価部から当該個体の評価結果を受信する。したがって、個体群生成部310は、自己が作動する時間として、世代生成時間910と、ダウンロード時間930と、アップロード時間920とを含む。
【0093】
ここで、世代生成時間910は、遺伝的アルゴリズムに従って特定の世代に属する個体を生成するために要する時間である。ダウンロード時間930は、個体群生成部310から各個体評価部330に対して、個体のデータを送信するために要する時間である。アップロード時間920は、各個体評価部330から個体群生成部310に対して個体の評価結果を転送するために要する時間である。
【0094】
一方、各個体評価部330は、個体群生成部310から個体のデータを受信し、予め定められた評価基準に従ってその個体のデータを評価し、さらに評価結果を個体群生成部310に対して転送する。したがって、各個体評価部330は、それが作動する時間として、ダウンロード時間930と、評価時間940と、アップロード時間920とを含む。
【0095】
アップロード時間920とダウンロード時間930とは、前述の個体群生成部310における各時間に対応する。評価時間940は、上記の評価基準に基づいて個体を評価するために要する時間である。各個体評価部330は、これらの時間に加えてさらに停止時間950を含む。各個体評価部330は、評価の対象となる個体データが存在する間予め定められた評価処理を実行できるため、それらのデータが存在しない場合には、各個体評価部330は停止する。そのため、上述のようような停止時間950が生じることになる。
【0096】
ここで、図10を参照して、個体群生成部310あるいは個体評価部330を実現するコンピュータシステム1000について説明する。図10は、コンピュータシステム1000のハードウェア構成を表わすブロック図である。
【0097】
コンピュータシステム1000は、相互にデータバスにより接続されたCPU10と、外部から指示の入力を受けるためのマウス12およびキーボード13と、外部から入力されるデータあるいはCPU10によって一時的に生成されるデータを格納するRAM14と、データを不揮発的に格納できるハードディスク15と、CD−ROM駆動装置16と、モニタ16と、通信IF(interface)19とを含む。CD−ROM駆動装置16には、CD−ROM16aが装着される。
【0098】
コンピュータシステム1000における処理は、各ハードウェアおよびCPU10により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク15に予め記憶されている場合がある。あるいは、ソフトウェアは、CD−ROM16aその他の記憶媒体に格納されて、プログラム製品として流通している場合もある。さらに、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。
【0099】
このようなソフトウェアは、CD−ROM駆動装置16その他の読取装置によりその記憶媒体から読み取られた後、あるいは、通信IF19を介してダウンロードされた後、ハードディスク15に一旦格納される。そのソフトウェアは、CPU10によってハードディスク15から読み出され、RAM14に実行可能なプログラムの形式で格納される。CPU10は、そのプログラムを実行する。
【0100】
図10に示されるコンピュータシステム1000を構成する各ハードウェアは、一般的なものである。したがって、本発明を実現する個体群生成部の本質的な部分は、RAM14、ハードディスク15、CD−ROM16aその他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム1000の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0101】
図11を参照して、本発明に係るシステム1100が備える機能について説明する。図11は、システム1100の機能的構成を表わすブロック図である。
【0102】
システム1100は、外部からデータの入力を受けるデータ入力部1110と、外部から入力されたデータを格納する記憶部1112と、記憶部1112に格納されているデータを読み出すデータ読出部1114と、データ読出部1114により読み出されたデータに基づいて評価の対象となる複数の個体を生成する個体群生成部1116と、評価処理を実行する装置の数に応じて生成された個体を分割する分割部1118と、分割により生成された個体のグループを各装置に対して転送する評価対象転送部1120と、評価の対象となる個体の入力を受ける個体群入力部1122と、入力された個体を予め準備された基準に従って評価する評価部1124と、評価結果を転送するタイミングを検知するためのタイミング検知部1126と、そのタイミングに応じて評価が完了した個体についての結果を転送する結果転送部1128と、転送された評価結果を取得する評価結果取得部1130と、その結果に基づいて評価されていた個体が属する世代の次の世代に属する個体を生成する次世代個体群生成部1132と、評価が完了していない個体の評価を行なう未評価個体評価部1134と、評価が行なわれている世代の前の世代に属する個体を削除する前世代個体削除部1136とを含む。
【0103】
図12を参照して、本実施の形態に係るシステムの具体的構成について説明する。図12は、個体群生成部310と個体評価部330とをそれぞれコンピュータシステムにより構成した場合のシステムを表わすブロック図である。
【0104】
このシステムは、個体群生成部310として機能するコンピュータシステム1200と、個体評価部330としてそれぞれ機能するP台のコンピュータシステム1200−1,…,1200−Pとを含む。各コンピュータシステムは、通信回線1290によりそれぞれ接続されている。
【0105】
なお、図12に示される各コンピュータシステムに関し、図10に示されるコンピュータシステム1000が備える構成と同一の構成には同一の番号を付してある。それらの機能も同じである。したがって、ここではそれらについての説明は繰り返さない。
【0106】
図13を参照して、個体群生成部310として機能するコンピュータシステム1200のデータ構造について説明する。図13は、コンピュータシステム1200のハードディスク15におけるデータの格納の一態様を表わす図である。
【0107】
ハードディスク15は、領域1310〜領域1380を含む。画像処理の対象である原画像データは、領域1310に格納されている。原画像を処理して得られる画像として期待される結果である目標画像データは、領域1320に格納されている。後述する処理により生成されるN個の個体を表わすデータは、領域1330〜領域1350にそれぞれ格納される。また、個体評価部330として機能するコンピュータシステム1200−1〜1200−Pの各々から送信された各個体の評価結果は、領域1360〜領域1380に格納されている。
【0108】
図14を参照して、個体評価部330として機能するコンピュータシステム1200−Pのデータ構造について説明する。図14は、コンピュータシステム1200−Pのハードディスク15Pにおけるデータの格納の一態様を表わす図である。
【0109】
ハードディスク15Pはデータを格納する領域1410〜領域1460を含む。コンピュータシステム1200から送信されたデータは、各領域に格納される。すなわち評価の対象となるn個の個体データは、領域1410〜領域1430に格納されている。各個体データを用いた評価結果は、領域1440〜領域1460にそれぞれ格納される。
【0110】
なお、前述のように個体評価部330においては、評価の対象となる個体データがすべて生成されるとは限らないため、各個体データについての結果が、すべて図14に示される形で格納されるとは限らない。たとえば評価の途中で未評価のデータが削除された場合には、削除された個体データおよびそのデータについて生成される予定であった評価結果は格納されなくなる。
【0111】
図15を参照して、個体群生成部310として機能するコンピュータシステム1200の制御構造について説明する。図15は、コンピュータシステム1200のCPU10が実行する処理の手順を表わすフローチャートである。なお、図5に示される処理と同一の処理には同一のステップ番号を付してある。したがって、当該処理の説明は、ここでは繰り返さない。また、1世代の評価時間、すなわちその世代に属する個体の評価を行なうために要する時間をTa_estとする。世代評価時間をtとする。
【0112】
ステップS1502にて、CPU10は、画像処理アルゴリズムを導出するための処理に用いられるパラメータを初期化する。ここでは、評価世代数gが「0」に設定される。また、各個体評価部330において世代を評価するために与えられる時間(世代評価時間)Ta_estが予め設定された値に初期化される。ここで、Ta_estは、たとえば次式(1)の関係を満足するように設定される。
Ta_est < (N/P×T1_est) − Tc ・・・(1)
ただし、N:1世代で生成される個体数、P:個体評価部の数、T1_est:個体評価部の1つの個体の処理に要する時間、Tc:世代生成時間である。
【0113】
すなわち、個体群生成部が少なくとも一つの個体評価部に対して個体を転送した時刻から個体群生成部が少なくとも一つの個体評価部から評価結果を取得開始するまでの時間は、少なくとも一つの個体評価部が個体群生成部から転送された対応するすべての個体の評価を終える時間から世代生成の時間を差し引いた時間よりも短くなるように、設定される。
【0114】
図15を再び参照して、ステップS514にて、CPU10は、個体の評価のために経過した時間を表わす変数Tを0に設定する。ステップS516にて、CPU10は、個体評価部の識別番号pと個体評価部の数Pとが同じであるか否かを判断する。識別番号pと個体評価部の数Pとが同じである場合には(ステップS516にてYES)、処理はステップS1518に移される。そうでない場合には(ステップS516にてNO)、処理はステップS518に移される。
【0115】
ステップS1518にて、CPU10は、世代評価時間tが予め設定された評価時間Ta_estを上回るか否かを判断する。世代評価時間tが設定時間Ta_estを上回る場合には(ステップS1518にてYES)、処理はステップS1520に移される。そうでない場合には(ステップS1518にてNO)、CPU10は、ステップS1518における処理を再び実行する。
【0116】
ステップS1520にて、CPU10は、識別番号pを「0」に初期化する。ステップS1522にて、CPU10は、識別番号pと個体評価部の数Pとが同じであるか否かを判断する。識別番号pと個体評価部の数Pとが同じである場合には(ステップS1522にてYES)、処理はステップS1534に移される。そうでない場合には(ステップS1522にてNO)、処理はステップS534に移される。
【0117】
ステップS1534にて、CPU10は、評価世代数gを「1」インクリメントする。その後、処理は、ステップS1506に移される。
【0118】
図16を参照して、個体評価部330として機能するコンピュータシステム1200−Pの制御構造について説明する。図16は、コンピュータシステム1200−PのCPU10が実行する処理の手順を表わすフローチャートである。なお、図8に示される処理と同一の処理には同一のステップ番号を付してある。したがって、当該処理の説明は、ここでは繰り返さない。なお、以下の説明で、Emaxは、個体評価部300で評価できる最大個体数を表わす。eは、評価中の個体位置を表わし、0からEmaxまでの値を取る。Eは、評価リストに保存された個体の最大数を表わす。
【0119】
ステップS1622にて、CPU10は、RAM14に格納されている評価リストから、未評価の個体(第e+1番目以降の個体)を削除する。ステップS1624にて、CPU10は、通信IF19を介して受信した個体のデータを、評価リストの第e+1番目以降、第Emax番目まで追加する。
【0120】
ステップS1626にて、CPU10は、値Eのデータを更新する。すなわち、CPU10は、値Eを、評価リストの最後の個体の番号に設定する。ステップS1628にて、CPU10は、値Eと値eとが同じであるか否かを判断する。これらの値が同じである場合には(ステップS1628にてYES)、処理はステップS1630に移される。そうでない場合には(ステップS1628にてNO)、処理は終了する。
【0121】
ステップS1630にて、CPU10は、第e番目の個体の評価を行なう。ステップS1632にて、CPU10は、第e番目の評価結果を更新する。ステップS1634にて、CPU10は、eの値を1インクリメントする。その後、処理はステップS1628に戻される。
【0122】
ステップS1640にて、CPU10は、コンピュータシステム1200から評価結果の転送を要求するコマンドの受信を検知する。ステップS1642にて、CPU10は、その要求に基づいて、これまで実行していた評価処理を一時的に停止する。
【0123】
ステップS1644にて、CPU10は、ハードディスク15Pに格納されているデータに基づいて、評価済みの個体を識別するための個体ID(Identification)と、各個体の評価結果とが含まれる結果データを生成し、当該結果データを、コンピュータシステム1200に対して転送する。
【0124】
ステップS1646にて、CPU10は、個体リストから評価済みの個体のデータを削除する。ステップS1648にて、CPU10は、個体番号eの値を0に更新(初期化)する。
【0125】
ステップS1650にて、CPU10は、値Eを、評価リストの最後の個体の番号に設定する。ステップS1652にて、CPU10は、一時的に停止していた個体の評価を再開する。
【0126】
図17を参照して、コンピュータシステム1200−Pのデータ構造について説明する。図17は、コンピュータシステム1200−PのRAM14における評価リストの格納の一態様を表わす図である。
【0127】
リスト1710は、コンピュータシステム1200−Pが個体の評価処理を実行していた場合においてコンピュータシステム1200から受信したコマンドによる割り込みによって処理が中断した場合のリストの内容を表わす。リスト1710において、eの値は、評価の対象となる個体の番号、Eの値は、リストに保存されている個体の最大数を表わす。
【0128】
リスト1710では、第0番目〜第7番目までの個体について、その評価が完了している。第8番目の個体は、現在評価の途中である。ここで、個体評価部330として機能するコンピュータシステム1200−Pがコンピュータシステム1200から個体の受信を要求するコマンドを受信した場合には、未評価の個体がリスト1710からの削除の対象となる。コンピュータシステム1200から送信された新たな個体についての情報がリストに加えられると、そのリストは更新される(リスト1720)。この場合、第9番目の個体から第Emax番目の個体までが、当該コマンドに応じて新たに受信された個体についての情報を表わすことになる。
【0129】
コンピュータシステム1200−Pが、個体の評価処理を実行している間に、評価結果の転送要求のコマンドを受信した場合には、コンピュータシステム1200−Pは、実行していた評価処理を一時的に停止する。このとき、リスト1730に示されるように、評価が完了した個体のデータがコンピュータシステム1200に対する転送の対象となる。すなわち第0番目から第30番目の個体についての評価結果がコンピュータシステム1200に転送される。コンピュータシステム1200−PのCPU10が、その転送の完了を確認した後(たとえばコンピュータシステム1200が、送信されるべきデータをすべて受信したことを通知するレポートを送信し、コンピュータシステム1200−Pがそのレポートを受信した場合)、CPU10は、リスト1730の中から、第0番目から第30番目に属する個体のデータを削除する。この場合、第31番目の個体が評価の途中であったため、第31番目以降の個体のデータは、削除されることなく、そのまま保存される。
【0130】
一時的に中断されていた評価処理が再び開始されると、リスト1730の内容は、削除により生じた空欄だけ埋めるように更新される。その結果、リスト1740が生成される。すなわち、リスト1730において個体100から個体130までのデータが転送されたため、これらのデータが削除されている。
【0131】
評価結果が転送されていないデータ、すなわち個体131〜個体150までのデータは、その後の評価の対象となる。したがって個体131〜個体150までのデータがリストの先頭に来るようにデータが更新される。この場合、各領域に格納されるデータに関し、第0番目のデータは、個体131についてのデータとなり、最後の個体である個体150は、第19番目の領域に格納されることになる。
【0132】
図18を参照して、本実施の形態に係るシステムの状態の推移について説明する。図18は、図12に示される構成によって実現されるシステムにおいて、個体群生成部310および各個体評価部330の作動状態の推移を表わすタイムチャートである。
【0133】
チャート(A)に示されるように、個体群生成部310が作動する時間は、特定の世代に属する個体を生成するために要する世代作成時間1810と、個体のデータを各個体評価部に転送するために要するダウンロード時間1830と、各々の個体について評価が完了したものの評価結果を受信するアップロード時間1820とを含む。
【0134】
チャート(B)〜(D)に示されるように、各個体評価部330の作動時間は、個体群生成部310から個体のデータを受信するために要するダウンロード時間1830と、各個体について予め定められた基準に従って評価を行なうために要する評価時間1840と、評価が完了した個体についての評価結果を個体群生成部310に転送するために要するアップロード時間1820とを含む。
【0135】
この場合、各々の個体評価部は、図9に示された時間、すなわち、処理を実行しない停止時間950を含まない。すなわち、評価の処理のための待ち時間が生じない。停止時間が存在しない分、各個体評価部の稼働率が上昇するため、画像処理アルゴリズムの導出に要する時間はその分短くなる。
【0136】
さらに、図19〜21を参照して、本実施の形態に係るシステムにより期待される効果について説明する。図19は、ある世代gについて個体群生成部310が生成した個体が、個体評価部330で評価されるために要する時間を示すタイムチャートである。図20は、ある世代gを生成するための個体が個体評価部330で評価されるために要する時間を示すタイムチャートである。
【0137】
図19に示されるように、個体群生成部310が第g世代に属する複数の個体(個体群)を生成している間、個体評価部330は、第g−1世代に属する個体の評価を続ける。そして、第g−1世代に属する全ての個体の評価が完了するまでに、個体群生成部310は、第g世代の個体のデータを個体評価部に対して転送する。
【0138】
また、図20に示されるように、アップロード時間2020に関し、第g+1世代に属する個体を生成するために、第g世代に属する個体群を生成していた間に評価された第g−1世代に属する個体の評価結果と、第g世代に属する個体であって、評価が完了している個体の評価結果が使用される。したがって、ある世代(たとえば第g世代)に属する全ての個体の評価結果から次の世代(たとえば第g+1世代)に属する全ての個体が生成されず、第g−1世代に属する一部の個体の評価結果と、第g世代に属する一部の個体の評価結果とから、第g+1世代の全ての個体が生成される。
【0139】
図21は、本発明に係る手法による処理の結果と、従来の手法による処理の結果との相違を示す図である。
【0140】
まず、領域2110に示される個体評価部330の停止時間は、従来の手法によれば、Tc+Td_e+Td_s+Td_fとなるところ、本発明に係る手法によれば、「0」となる。つまり、従来の手法の場合に生じていた個体評価部の停止区間は、なくなることになる。
【0141】
次に、1世代評価時間(Ta_est+Tc)あたりの個体評価数は、従来の手法によれば、Nとなるところ、本発明に係る手法によれば、N+n(Tc)+n(Td_e)+n(Td_s)+n(Td_f)となる。ここで、n(x)は、期間xにおける評価個体数を示す。
【0142】
また、1世代あたりの評価結果の期待値は、従来の手法と本発明に係る手法において、Ta_est+Tcが等しいことから、評価結果が個体数に比例するとした場合、従来の手法の期待値1に対し、本発明に係る手法によれば、{N+n(Tc)+n(Td_e)+n(Td_s)+n(Td_f)}/Nとなり、1を上回ることになる。
【0143】
さらに、一定の値以上の評価結果への到達時間は、評価結果が個体数に比例するとした場合、前述の1世代評価時間当たりの個体評価数に反比例するので、従来の手法に係る期待値1に対して、本発明に係る手法によれば、N/{N+n(Tc)+n(Td_e)+n(Td_s)+n(Td_f)}となる。
【0144】
以上のようにして、本発明の第1の実施の形態によれば、個体評価部が特定の世代に属する個体を評価している場合に予め定められたタイミングが検出されると、個体評価部は評価が完了した個体についての評価結果を個体群生成部に転送する。個体群生成部は、その評価結果に基づいて当該世代の次の世代に属する個体を生成する。個体群生成部は、当該次の世代に属する個体を、各個体評価部に転送する。
【0145】
このようにすると、個体評価部は、常にいずれかの世代に属する個体の評価、個体群生成部との間の通信その他の処理を実行しつづけることになるため、個体評価部は、通信回線の遮断その他の不測の事態が発生しない限り作動しつづける。その結果、個体の生成と評価とを順次行なう場合に比べて、予め設定された評価基準を満足する個体を速やかに抽出することができる。これにより、画像処理の手順を規定するアルゴリズムが、従来よりも迅速に導出され得る。
【0146】
また、個体の評価のために与えられた時間内で評価を行なえる個体の数が増加することになるため、評価の対象範囲を広げることができる。その結果、評価基準をより満足する個体を抽出し易くなる。
【0147】
<第2の実施の形態>
本発明の第2の実施の形態に係るシステムは、世代評価時間を予め設定することなく、特定の1世代において評価された個体の数に基づいて次の世代の個体を生成するタイミングを規定する機能を有する点で、前述の実施の形態と異なる。
【0148】
なお、本実施の形態に係るシステムは、たとえば図12に示されるコンピュータネットワークシステムにおいて実現される。したがって、ここではそのハードウェア構成についての説明は繰り返さない。
【0149】
図22を参照して、本実施の形態に係るシステムの制御構造について説明する。図22は、個体群生成部として機能するコンピュータシステム1200のCPU10が実行する処理の手順を表わすフローチャートである。なお、前述の実施の形態(図15)に示される処理と同一の処理には同一のステップ番号を付し、当該処理の説明は、繰り返さない。
【0150】
ステップS2210にて、コンピュータシステム1200のCPU10は、画像処理を規定するアルゴリズムを導出する処理の実行に用いるパラメータを初期化する。この初期化により、評価世代数gは、「0」に設定される。また世代評価を行なう評価済み個体数Nth_endが予め定められた数に設定される。
【0151】
ステップS2220にて、CPU10は、評価が完了した個体の総和Σn(p)が評価済み個体数Nth_endを上回るか否かを判断する。評価が完了した数が評価済み個体数Nth_endを上回っている場合には(ステップS2220にてYES)、処理はステップS1520に移される。そうでない場合には(ステップS2220にてNO)、処理は再びステップS2220に戻される。
【0152】
ここで図23を参照して、個体評価部と個体群生成部との間で行なわれる割込処理について説明する。図23は、当該割込処理の手順を表わすフローチャートである。
【0153】
ステップS2310にて、個体評価部として機能するコンピュータシステム1200−PのCPU10は、個体群生成部として機能するコンピュータシステム1200から処理済みの個体数の転送要求を受信する。コンピュータシステム1200−PのCPU10は、その要求に基づいてRAM14に格納されている評価が完了した個体のデータから評価済みの個体数を算出し、その個体数をコンピュータシステム1200に対して送信する。
【0154】
ステップS2320にて、コンピュータシステム1200は、コンピュータシステム1200−Pによって送信された処理済み個体数を受信する。ステップS2330にて、コンピュータシステム1200のCPU10は、全処理済み個体数の値を更新する。
【0155】
図24を参照して、本実施の形態に係る個体評価部として機能するコンピュータシステム1200−Pの制御構造について説明する。なお、前述の実施の形態(図16)に示される処理と同一の処理には同一のステップ番号を付し、それらについての説明は繰り返さない。
【0156】
ステップS2440にて、コンピュータシステム1200−PのCPU10は、コンピュータシステム1200に、処理済みの個体数の転送要求を送信する。この要求は、コンピュータシステム1200によって割り込みのコマンドとして認識される。コンピュータシステム1200は、コンピュータシステム1200−Pから送信されるデータ、すなわち評価が完了した個体の数を格納するためのメモリ領域を確保する。
【0157】
ステップS2450にて、CPU10は、コンピュータシステム1200に対して、評価処理が完了した個体数n(p)を送信する。コンピュータシステム1200は、個体数を当該メモリ領域に格納する。
【0158】
以上のようにして、本実施の形態によれば、時間ではなく個体数によって次の世代の評価タイミングが規定される。次の世代に属する個体を生成するための個体評価結果数は、一定に保たれる。したがって、特定の世代に属する個体の評価に関し、個体評価部は、無駄なく作動することができる。その結果、第1の実施の形態において説明したように、全体としての評価時間の短縮あるいは評価基準に一層近い結果を導出し得るアルゴリズムを探索することができる。
【0159】
なお、本実施の形態に代えて、たとえば、少なくとも一つの個体評価部の評価済み個体数によって次の世代の評価タイミングを規定してもよい。この場合、少なくとも一つの個体評価部からのみ、評価済み個体数転送要求を送信するようにすればよい。
【0160】
この方法によると、全体の構成における、評価済み個体数の送信回数が1/Pとなるため、個体評価部は、削減された通信回数に応じた時間だけ、個体を評価するための時間として作動することができる。
【0161】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0162】
【図1】本発明の各実施の形態に係る画像処理装置における画像処理フィルタの組み合わせについて説明するための図である。
【図2】複数のフィルタからなるフィルタ列を予め定められた評価基準により順次選択することにより、画像処理装置に使用するためのフィルタ列を選択する態様を表わす図である。
【図3】本発明の第1の実施の形態に係る画像処理アルゴリズムを導出するためのシステム300の概略構成を表わすブロック図である。
【図4】個体群生成部310と各個体評価部330とによって実行される処理の手順を表わすフローチャートである。
【図5】個体群生成部310の制御部316が実行する処理の手順を表わすフローチャートである。
【図6】個体群生成部310が処理を実行している間に揮発性メモリに一時的に格納されるデータの態様を表わす図である。
【図7】個体評価部330による評価結果の格納の態様を表わす図である。
【図8】個体評価部330の制御部336が実行する処理の手順を表わすフローチャートである。
【図9】システム300を構成する個体群生成部310と各個体評価部330とにおける状態の変化を表わすタイムチャートである。
【図10】個体群生成部310あるいは個体評価部330を実現するコンピュータシステム1000のハードウェア構成を表わすブロック図である。
【図11】システム300の機能的構成を表わすブロック図である。
【図12】個体群生成部310と個体評価部330とをそれぞれコンピュータシステムにより構成した場合のシステムを表わすブロック図である。
【図13】コンピュータシステム1200のハードディスク15におけるデータの格納の一態様を表わす図である。
【図14】個体評価部330として機能するコンピュータシステム1200−Pのハードディスク15Pにおけるデータの格納の一態様を表わす図である。
【図15】個体群生成部310として機能するコンピュータシステム1200のCPU10が実行する処理の手順を表わすフローチャートである。
【図16】個体評価部330として機能するコンピュータシステム1200−PのCPU10が実行する処理の手順を表わすフローチャートである。
【図17】コンピュータシステム1200−PのRAM14における評価リストの格納の一態様を表わす図である。
【図18】図12に示される構成によって実現されるシステムにおいて、個体群生成部310および各個体評価部330の作動状態の推移を表わすタイムチャートである。
【図19】ある世代gについて個体群生成部310が生成した個体が、個体評価部330で評価されるために要する時間を示すタイムチャートである。
【図20】ある世代gを生成するための個体が個体評価部330で評価されるために要する時間を示すタイムチャートである。
【図21】本発明に係る手法による処理の結果と、従来の手法による処理の結果との相違を示す図である。
【図22】本発明の第2の実施の形態に係る個体群生成部として機能するコンピュータシステム1200のCPU10が実行する処理の手順を表わすフローチャートである。
【図23】個体評価部と個体群生成分との間で行なわれる割込処理の手順を表わすフローチャートである。
【図24】本実施の形態に係る個体評価部として機能するコンピュータシステム1200−PのCPUが実行する処理の手順を表わすフローチャートである。
【符号の説明】
【0163】
10 CPU、12 マウス、13 キーボード、14 RAM、15,15P ハードディスク、16 CD-ROM駆動装置、16a,16P CD-ROM、18 モニタ、19 通信IF、300,1100 システム、310 個体群生成部、312 世代生成部、314,334 通信部、316,336 制御部、318,338 メモリ、330,330−1,330−n 個体評価部、332 評価部、1200,1200−1,1200−p コンピュータシステム、1110 データ入力部、1112 記憶部、1114 データ読出部、1116 個体群生成部、1118 分割部、1120 評価対象転送部、1122 個体群入力部、1124 評価部、1126 タイミング検知部、1128 結果転送部、1130 評価結果取得部、1132 次世代個体群生成部、1134 未評価個体評価部、1136 前世代個体削除部、1290 通信回線。
【特許請求の範囲】
【請求項1】
予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成手段と、予め準備された評価基準に基づいて前記生成手段により生成された各前記個体の評価を行なう評価手段とにより、前記画像処理の手順を規定するアルゴリズムを導出する方法であって、
予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って前記個体の生成と評価とを繰り返す処理ステップと、
前記終了条件が成立した場合に、前記評価の結果に対応する個体を前記アルゴリズムとして出力するステップとを備え、
前記処理ステップは、
前記生成手段が、各前記処理モジュールを組み合わせることにより、前記複数の個体を生成するステップと、
生成された各前記個体を前記評価手段に転送するステップと、
前記評価基準に基づいて、転送された個体の評価を行なう評価ステップと、
予め定められたタイミングに従って、前記生成手段に対して、前記評価が完了した個体の評価結果を転送する結果転送ステップと、
前記生成手段が、前記評価手段からの評価結果に基づいて、前記評価が完了した個体が属する世代の次世代に属する個体を生成する生成ステップとを含み、
前記結果転送ステップは、前記評価の対象となる世代において評価が完了した個体についての第1の評価結果と、前記世代の一世代前の個体についての第2の評価結果とを、前記生成手段に転送するステップを含み、
前記生成ステップは、前記第1の評価結果と前記第2の評価結果とに基づいて、前記次世代に属する個体を生成するステップを含み、
前記評価ステップは、前記次世代に属する個体が生成されている間に、前記評価の対象となる世代に属する未評価の個体を評価するステップを含む、画像処理アルゴリズムの導出方法。
【請求項2】
前記評価手段は、複数であり、
前記処理ステップは、生成された各前記個体を前記評価手段の数に分けるステップをさらに含み、
前記転送するステップは、各前記個体を各前記評価手段に転送する、請求項1に記載の画像処理アルゴリズムの導出方法。
【請求項3】
前記評価が完了した世代に属する個体を削除するステップと、
前記次世代に属する個体を保存するステップとをさらに備える、請求項1または2に記載の画像処理アルゴリズムの導出方法。
【請求項4】
前記処理モジュールは、前記画像処理のためのフィルタであり、
前記個体は、複数の前記フィルタからなるフィルタ列である、請求項3に記載の画像処理アルゴリズムの導出方法。
【請求項5】
被写体の撮影により取得された原画像データと、前記原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各前記評価手段に送信するステップと、
前記フィルタ列を用いて前記原画像データに対する画像処理を実行するステップとをさらに備え、
前記評価ステップは、前記原画像データに対する画像処理の結果と前記結果画像データとに基づいて、前記フィルタ列を評価する、請求項4に記載の画像処理アルゴリズムの導出方法。
【請求項6】
前記評価の対象となる世代に属する各前記個体を評価するために要する評価時間を計測するステップをさらに備え、
前記結果転送ステップは、前記評価時間に応じて、前記評価の結果を転送する、請求項1〜5のいずれかに記載の画像処理アルゴリズムの導出方法。
【請求項7】
前記評価が完了した個体の数を算出する算出ステップをさらに備え、
前記結果転送ステップは、前記評価が完了した個体の数に応じて、前記評価の結果を転送する、請求項1〜5のいずれかに記載の画像処理アルゴリズムの導出方法。
【請求項8】
前記算出ステップは、各前記評価手段において前記評価が完了した個体の数の合計値を算出するステップを含み、
前記結果転送ステップは、前記合計値に応じて、前記評価の結果を転送する、請求項7に記載の画像処理アルゴリズムの導出方法。
【請求項9】
前記算出ステップは、各前記評価手段の中の予め定められた評価手段によって評価された個体の数の合計値を算出するステップを含み、
前記結果転送ステップは、前記合計値に応じて、前記評価の結果を転送する、請求項7に記載の画像処理アルゴリズムの導出方法。
【請求項10】
前記終了条件は、予め設定された世代に属する個体の評価が完了することである、請求項1〜9のいずれかに記載の画像処理アルゴリズムの導出方法。
【請求項11】
予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成装置と、予め準備された評価基準に基づいて前記生成装置により生成された各前記個体の評価を行なう評価装置とを備え、
前記生成装置は、
予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って、各前記処理モジュールを組み合わせることにより、前記個体の生成を繰り返す処理手段と、
分けられた各前記個体を前記評価装置に転送する個体転送手段とを含み、
前記評価装置は、
前記評価基準に基づいて、転送された個体の評価を行なう評価手段と、
予め定められたタイミングに従って、前記評価の対象となる世代において評価が完了した個体についての第1の評価結果と、前記世代の一世代前の個体についての第2の評価結果とを、前記生成装置に転送する結果転送手段とを含み、
前記処理手段は、前記第1の評価結果と前記第2の評価結果とに基づいて、前記次世代に属する個体を生成する生成手段を含み、
前記評価手段は、前記次世代に属する個体が生成されている間に、前記評価の対象となる世代に属する未評価の個体を評価する手段を含み、
前記生成装置は、前記終了条件が成立した場合に、前記評価の結果に対応する個体を、前記画像処理の手順を規定するアルゴリズムとして出力する出力手段を含む、画像処理アルゴリズムの導出システム。
【請求項12】
前記生成装置には、複数の前記評価装置が接続されており、
前記生成装置は、生成された各前記個体を前記評価装置の数に分ける手段をさらに含み、
前記個体転送手段は、分けられた各前記個体を各前記評価装置に転送する、請求項11に記載の画像処理アルゴリズムの導出システム。
【請求項13】
前記評価装置は、
前記評価が完了した世代に属する個体を削除する手段と、
前記次世代に属する個体を保存する手段とをさらに備える、請求項12に記載の画像処理アルゴリズムの導出システム。
【請求項14】
前記処理モジュールは、前記画像処理のためのフィルタであり、
前記個体は、複数の前記フィルタからなるフィルタ列である、請求項13に記載の画像処理アルゴリズムの導出システム。
【請求項15】
前記生成装置は、被写体の撮影により取得された原画像データと、前記原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各前記評価装置に送信する手段をさらに含み、
前記評価装置は、前記フィルタ列を用いて前記原画像データに対する画像処理を実行する手段とをさらに含み、
前記評価手段は、前記原画像データに対する画像処理の結果と、前記結果画像データとに基づいて、前記フィルタ列を評価する、請求項14に記載の画像処理アルゴリズムの導出システム。
【請求項16】
前記評価装置は、前記評価の対象となる世代に属する各前記個体を評価するために要する評価時間を計測する手段をさらに含み、
前記結果転送手段は、前記評価時間に応じて、前記評価の結果を転送する、請求項11〜15のいずれかに記載の画像処理アルゴリズムの導出システム。
【請求項17】
前記評価装置は、前記評価が完了した個体の数を算出する算出手段をさらに含み、
前記結果転送手段は、前記評価が完了した個体の数に応じて、前記評価の結果を転送する、請求項11〜15のいずれかに記載の画像処理アルゴリズムの導出システム。
【請求項18】
前記算出手段は、各前記評価装置において前記評価が完了した個体の数の合計値を算出し、
前記結果転送手段は、前記合計値に応じて、前記評価の結果を転送する、請求項17に記載の画像処理アルゴリズムの導出システム。
【請求項19】
前記算出手段は、各前記評価装置の中の予め定められた評価装置によって評価された個体の数の合計値を算出し、
前記結果転送手段は、前記合計値に応じて、前記評価の結果を転送する、請求項17に記載の画像処理アルゴリズムの導出システム。
【請求項20】
前記終了条件は、予め設定された世代に属する個体の評価が完了することである、請求項11〜19のいずれかに記載の画像処理アルゴリズムの導出システム。
【請求項21】
前記評価手段は、動的再構成可能な回路である、請求項11〜20のいずれかに記載の画像処理アルゴリズムの導出システム。
【請求項1】
予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成手段と、予め準備された評価基準に基づいて前記生成手段により生成された各前記個体の評価を行なう評価手段とにより、前記画像処理の手順を規定するアルゴリズムを導出する方法であって、
予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って前記個体の生成と評価とを繰り返す処理ステップと、
前記終了条件が成立した場合に、前記評価の結果に対応する個体を前記アルゴリズムとして出力するステップとを備え、
前記処理ステップは、
前記生成手段が、各前記処理モジュールを組み合わせることにより、前記複数の個体を生成するステップと、
生成された各前記個体を前記評価手段に転送するステップと、
前記評価基準に基づいて、転送された個体の評価を行なう評価ステップと、
予め定められたタイミングに従って、前記生成手段に対して、前記評価が完了した個体の評価結果を転送する結果転送ステップと、
前記生成手段が、前記評価手段からの評価結果に基づいて、前記評価が完了した個体が属する世代の次世代に属する個体を生成する生成ステップとを含み、
前記結果転送ステップは、前記評価の対象となる世代において評価が完了した個体についての第1の評価結果と、前記世代の一世代前の個体についての第2の評価結果とを、前記生成手段に転送するステップを含み、
前記生成ステップは、前記第1の評価結果と前記第2の評価結果とに基づいて、前記次世代に属する個体を生成するステップを含み、
前記評価ステップは、前記次世代に属する個体が生成されている間に、前記評価の対象となる世代に属する未評価の個体を評価するステップを含む、画像処理アルゴリズムの導出方法。
【請求項2】
前記評価手段は、複数であり、
前記処理ステップは、生成された各前記個体を前記評価手段の数に分けるステップをさらに含み、
前記転送するステップは、各前記個体を各前記評価手段に転送する、請求項1に記載の画像処理アルゴリズムの導出方法。
【請求項3】
前記評価が完了した世代に属する個体を削除するステップと、
前記次世代に属する個体を保存するステップとをさらに備える、請求項1または2に記載の画像処理アルゴリズムの導出方法。
【請求項4】
前記処理モジュールは、前記画像処理のためのフィルタであり、
前記個体は、複数の前記フィルタからなるフィルタ列である、請求項3に記載の画像処理アルゴリズムの導出方法。
【請求項5】
被写体の撮影により取得された原画像データと、前記原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各前記評価手段に送信するステップと、
前記フィルタ列を用いて前記原画像データに対する画像処理を実行するステップとをさらに備え、
前記評価ステップは、前記原画像データに対する画像処理の結果と前記結果画像データとに基づいて、前記フィルタ列を評価する、請求項4に記載の画像処理アルゴリズムの導出方法。
【請求項6】
前記評価の対象となる世代に属する各前記個体を評価するために要する評価時間を計測するステップをさらに備え、
前記結果転送ステップは、前記評価時間に応じて、前記評価の結果を転送する、請求項1〜5のいずれかに記載の画像処理アルゴリズムの導出方法。
【請求項7】
前記評価が完了した個体の数を算出する算出ステップをさらに備え、
前記結果転送ステップは、前記評価が完了した個体の数に応じて、前記評価の結果を転送する、請求項1〜5のいずれかに記載の画像処理アルゴリズムの導出方法。
【請求項8】
前記算出ステップは、各前記評価手段において前記評価が完了した個体の数の合計値を算出するステップを含み、
前記結果転送ステップは、前記合計値に応じて、前記評価の結果を転送する、請求項7に記載の画像処理アルゴリズムの導出方法。
【請求項9】
前記算出ステップは、各前記評価手段の中の予め定められた評価手段によって評価された個体の数の合計値を算出するステップを含み、
前記結果転送ステップは、前記合計値に応じて、前記評価の結果を転送する、請求項7に記載の画像処理アルゴリズムの導出方法。
【請求項10】
前記終了条件は、予め設定された世代に属する個体の評価が完了することである、請求項1〜9のいずれかに記載の画像処理アルゴリズムの導出方法。
【請求項11】
予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成装置と、予め準備された評価基準に基づいて前記生成装置により生成された各前記個体の評価を行なう評価装置とを備え、
前記生成装置は、
予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って、各前記処理モジュールを組み合わせることにより、前記個体の生成を繰り返す処理手段と、
分けられた各前記個体を前記評価装置に転送する個体転送手段とを含み、
前記評価装置は、
前記評価基準に基づいて、転送された個体の評価を行なう評価手段と、
予め定められたタイミングに従って、前記評価の対象となる世代において評価が完了した個体についての第1の評価結果と、前記世代の一世代前の個体についての第2の評価結果とを、前記生成装置に転送する結果転送手段とを含み、
前記処理手段は、前記第1の評価結果と前記第2の評価結果とに基づいて、前記次世代に属する個体を生成する生成手段を含み、
前記評価手段は、前記次世代に属する個体が生成されている間に、前記評価の対象となる世代に属する未評価の個体を評価する手段を含み、
前記生成装置は、前記終了条件が成立した場合に、前記評価の結果に対応する個体を、前記画像処理の手順を規定するアルゴリズムとして出力する出力手段を含む、画像処理アルゴリズムの導出システム。
【請求項12】
前記生成装置には、複数の前記評価装置が接続されており、
前記生成装置は、生成された各前記個体を前記評価装置の数に分ける手段をさらに含み、
前記個体転送手段は、分けられた各前記個体を各前記評価装置に転送する、請求項11に記載の画像処理アルゴリズムの導出システム。
【請求項13】
前記評価装置は、
前記評価が完了した世代に属する個体を削除する手段と、
前記次世代に属する個体を保存する手段とをさらに備える、請求項12に記載の画像処理アルゴリズムの導出システム。
【請求項14】
前記処理モジュールは、前記画像処理のためのフィルタであり、
前記個体は、複数の前記フィルタからなるフィルタ列である、請求項13に記載の画像処理アルゴリズムの導出システム。
【請求項15】
前記生成装置は、被写体の撮影により取得された原画像データと、前記原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各前記評価装置に送信する手段をさらに含み、
前記評価装置は、前記フィルタ列を用いて前記原画像データに対する画像処理を実行する手段とをさらに含み、
前記評価手段は、前記原画像データに対する画像処理の結果と、前記結果画像データとに基づいて、前記フィルタ列を評価する、請求項14に記載の画像処理アルゴリズムの導出システム。
【請求項16】
前記評価装置は、前記評価の対象となる世代に属する各前記個体を評価するために要する評価時間を計測する手段をさらに含み、
前記結果転送手段は、前記評価時間に応じて、前記評価の結果を転送する、請求項11〜15のいずれかに記載の画像処理アルゴリズムの導出システム。
【請求項17】
前記評価装置は、前記評価が完了した個体の数を算出する算出手段をさらに含み、
前記結果転送手段は、前記評価が完了した個体の数に応じて、前記評価の結果を転送する、請求項11〜15のいずれかに記載の画像処理アルゴリズムの導出システム。
【請求項18】
前記算出手段は、各前記評価装置において前記評価が完了した個体の数の合計値を算出し、
前記結果転送手段は、前記合計値に応じて、前記評価の結果を転送する、請求項17に記載の画像処理アルゴリズムの導出システム。
【請求項19】
前記算出手段は、各前記評価装置の中の予め定められた評価装置によって評価された個体の数の合計値を算出し、
前記結果転送手段は、前記合計値に応じて、前記評価の結果を転送する、請求項17に記載の画像処理アルゴリズムの導出システム。
【請求項20】
前記終了条件は、予め設定された世代に属する個体の評価が完了することである、請求項11〜19のいずれかに記載の画像処理アルゴリズムの導出システム。
【請求項21】
前記評価手段は、動的再構成可能な回路である、請求項11〜20のいずれかに記載の画像処理アルゴリズムの導出システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2007−41697(P2007−41697A)
【公開日】平成19年2月15日(2007.2.15)
【国際特許分類】
【出願番号】特願2005−222998(P2005−222998)
【出願日】平成17年8月1日(2005.8.1)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成19年2月15日(2007.2.15)
【国際特許分類】
【出願日】平成17年8月1日(2005.8.1)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]