(57)【要約】【課題】  画像処理を規定するアルゴリズムの導出時間が短くなる導出方法を提供する。【解決手段】  導出方法を実現するシステム１１００は、データを格納する記憶部１１１２と、評価の対象となる複数の個体を生成する個体群生成部１１１６と、評価処理を実行する装置の数に応じて個体を分ける分割部１１１８と、分けられた個体のグループを各装置に対して転送する評価対象転送部１１２０と、転送された個体を予め準備された基準に従って評価する評価部１１２４と、評価結果を転送するタイミングを検知するタイミング検知部１１２６と、そのタイミングに応じて評価が完了した個体についての結果を転送する結果転送部１１２８と、その結果に基づいて評価されていた個体が属する世代の次の世代に属する個体を生成する次世代個体群生成部１１３２とを含む。【選択図】        図１１
2007041697.tif 000002
【特許請求の範囲】
【請求項１】
予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成手段と、予め準備された評価基準に基づいて前記生成手段により生成された各前記個体の評価を行なう評価手段とにより、前記画像処理の手順を規定するアルゴリズムを導出する方法であって、
予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って前記個体の生成と評価とを繰り返す処理ステップと、
前記終了条件が成立した場合に、前記評価の結果に対応する個体を前記アルゴリズムとして出力するステップとを備え、
前記処理ステップは、
前記生成手段が、各前記処理モジュールを組み合わせることにより、前記複数の個体を生成するステップと、
生成された各前記個体を前記評価手段に転送するステップと、
前記評価基準に基づいて、転送された個体の評価を行なう評価ステップと、
予め定められたタイミングに従って、前記生成手段に対して、前記評価が完了した個体の評価結果を転送する結果転送ステップと、
前記生成手段が、前記評価手段からの評価結果に基づいて、前記評価が完了した個体が属する世代の次世代に属する個体を生成する生成ステップとを含み、
前記結果転送ステップは、前記評価の対象となる世代において評価が完了した個体についての第１の評価結果と、前記世代の一世代前の個体についての第２の評価結果とを、前記生成手段に転送するステップを含み、
前記生成ステップは、前記第１の評価結果と前記第２の評価結果とに基づいて、前記次世代に属する個体を生成するステップを含み、
前記評価ステップは、前記次世代に属する個体が生成されている間に、前記評価の対象となる世代に属する未評価の個体を評価するステップを含む、画像処理アルゴリズムの導出方法。
【請求項２】
前記評価手段は、複数であり、
前記処理ステップは、生成された各前記個体を前記評価手段の数に分けるステップをさらに含み、
前記転送するステップは、各前記個体を各前記評価手段に転送する、請求項１に記載の画像処理アルゴリズムの導出方法。
【請求項３】
前記評価が完了した世代に属する個体を削除するステップと、
前記次世代に属する個体を保存するステップとをさらに備える、請求項１または２に記載の画像処理アルゴリズムの導出方法。
【請求項４】
前記処理モジュールは、前記画像処理のためのフィルタであり、
前記個体は、複数の前記フィルタからなるフィルタ列である、請求項３に記載の画像処理アルゴリズムの導出方法。
【請求項５】
被写体の撮影により取得された原画像データと、前記原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各前記評価手段に送信するステップと、
前記フィルタ列を用いて前記原画像データに対する画像処理を実行するステップとをさらに備え、
前記評価ステップは、前記原画像データに対する画像処理の結果と前記結果画像データとに基づいて、前記フィルタ列を評価する、請求項４に記載の画像処理アルゴリズムの導出方法。
【請求項６】
前記評価の対象となる世代に属する各前記個体を評価するために要する評価時間を計測するステップをさらに備え、
前記結果転送ステップは、前記評価時間に応じて、前記評価の結果を転送する、請求項１〜５のいずれかに記載の画像処理アルゴリズムの導出方法。
【請求項７】
前記評価が完了した個体の数を算出する算出ステップをさらに備え、
前記結果転送ステップは、前記評価が完了した個体の数に応じて、前記評価の結果を転送する、請求項１〜５のいずれかに記載の画像処理アルゴリズムの導出方法。
【請求項８】
前記算出ステップは、各前記評価手段において前記評価が完了した個体の数の合計値を算出するステップを含み、
前記結果転送ステップは、前記合計値に応じて、前記評価の結果を転送する、請求項７に記載の画像処理アルゴリズムの導出方法。
【請求項９】
前記算出ステップは、各前記評価手段の中の予め定められた評価手段によって評価された個体の数の合計値を算出するステップを含み、
前記結果転送ステップは、前記合計値に応じて、前記評価の結果を転送する、請求項７に記載の画像処理アルゴリズムの導出方法。
【請求項１０】
前記終了条件は、予め設定された世代に属する個体の評価が完了することである、請求項１〜９のいずれかに記載の画像処理アルゴリズムの導出方法。
【請求項１１】
予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成装置と、予め準備された評価基準に基づいて前記生成装置により生成された各前記個体の評価を行なう評価装置とを備え、
前記生成装置は、
予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って、各前記処理モジュールを組み合わせることにより、前記個体の生成を繰り返す処理手段と、
分けられた各前記個体を前記評価装置に転送する個体転送手段とを含み、
前記評価装置は、
前記評価基準に基づいて、転送された個体の評価を行なう評価手段と、
予め定められたタイミングに従って、前記評価の対象となる世代において評価が完了した個体についての第１の評価結果と、前記世代の一世代前の個体についての第２の評価結果とを、前記生成装置に転送する結果転送手段とを含み、
前記処理手段は、前記第１の評価結果と前記第２の評価結果とに基づいて、前記次世代に属する個体を生成する生成手段を含み、
前記評価手段は、前記次世代に属する個体が生成されている間に、前記評価の対象となる世代に属する未評価の個体を評価する手段を含み、
前記生成装置は、前記終了条件が成立した場合に、前記評価の結果に対応する個体を、前記画像処理の手順を規定するアルゴリズムとして出力する出力手段を含む、画像処理アルゴリズムの導出システム。
【請求項１２】
前記生成装置には、複数の前記評価装置が接続されており、
前記生成装置は、生成された各前記個体を前記評価装置の数に分ける手段をさらに含み、
前記個体転送手段は、分けられた各前記個体を各前記評価装置に転送する、請求項１１に記載の画像処理アルゴリズムの導出システム。
【請求項１３】
前記評価装置は、
前記評価が完了した世代に属する個体を削除する手段と、
前記次世代に属する個体を保存する手段とをさらに備える、請求項１２に記載の画像処理アルゴリズムの導出システム。
【請求項１４】
前記処理モジュールは、前記画像処理のためのフィルタであり、
前記個体は、複数の前記フィルタからなるフィルタ列である、請求項１３に記載の画像処理アルゴリズムの導出システム。
【請求項１５】
前記生成装置は、被写体の撮影により取得された原画像データと、前記原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各前記評価装置に送信する手段をさらに含み、
前記評価装置は、前記フィルタ列を用いて前記原画像データに対する画像処理を実行する手段とをさらに含み、
前記評価手段は、前記原画像データに対する画像処理の結果と、前記結果画像データとに基づいて、前記フィルタ列を評価する、請求項１４に記載の画像処理アルゴリズムの導出システム。
【請求項１６】
前記評価装置は、前記評価の対象となる世代に属する各前記個体を評価するために要する評価時間を計測する手段をさらに含み、
前記結果転送手段は、前記評価時間に応じて、前記評価の結果を転送する、請求項１１〜１５のいずれかに記載の画像処理アルゴリズムの導出システム。
【請求項１７】
前記評価装置は、前記評価が完了した個体の数を算出する算出手段をさらに含み、
前記結果転送手段は、前記評価が完了した個体の数に応じて、前記評価の結果を転送する、請求項１１〜１５のいずれかに記載の画像処理アルゴリズムの導出システム。
【請求項１８】
前記算出手段は、各前記評価装置において前記評価が完了した個体の数の合計値を算出し、
前記結果転送手段は、前記合計値に応じて、前記評価の結果を転送する、請求項１７に記載の画像処理アルゴリズムの導出システム。
【請求項１９】
前記算出手段は、各前記評価装置の中の予め定められた評価装置によって評価された個体の数の合計値を算出し、
前記結果転送手段は、前記合計値に応じて、前記評価の結果を転送する、請求項１７に記載の画像処理アルゴリズムの導出システム。
【請求項２０】
前記終了条件は、予め設定された世代に属する個体の評価が完了することである、請求項１１〜１９のいずれかに記載の画像処理アルゴリズムの導出システム。
【請求項２１】
前記評価手段は、動的再構成可能な回路である、請求項１１〜２０のいずれかに記載の画像処理アルゴリズムの導出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アルゴリズムを導出する技術に関する。本発明は、より特定的には、取得され画像から特徴のある画像を抽出するためのアルゴリズムの導出方法、導出装置およびコンピュータを導出装置として機能させるためのプログラムに関する。
【背景技術】
【０００２】
従来、画像を用いた検査装置などにおいて、得られた画像中の特徴のあるパターンを抽出する要求があった場合、開発者は、そのパターンを抽出するための専用のアルゴリズムを作成する。アルゴリズムは、主として、対象となるパターンの特徴量を増大させるフィルタを組み合わせる処理、パターンを切り出す処理、およびパターンの情報を抽出する処理を含む。フィルタを組み合わせる処理の開発では、当該開発者は、既存の画像処理フィルタの中から有効なフィルタを選択し、処理の順序等を決定し、そして、所望のパターンの特徴量が増大する方向に画像が処理されるようにパラメータの設定その他の調整を行なう。このような画像処理アルゴリズムの開発は、一般に、試行錯誤的な処理として進められる。
【０００３】
画像による検査装置の場合においては、検査を行なう対象物が変化した場合、あるいは対象物が同じでも抽出したい新たなパターンが追加された場合には、担当者が対象パターンの解析を逐次行い、そのパターンを抽出するためのアルゴリズムを開発する必要がある。しかし、この方法では、対象物の変化や追加の度に画像処理の担当者がアルゴリズムを考案する必要があり、そのための開発期間を要するという問題がある。
【０００４】
アルゴリズムの開発に関し、遺伝的アルゴリズム（Generic  Algorithm、以下「ＧＡ」）の手法が用いられている。遺伝的アルゴリズムを用いた処理の高速化に関し、並列処理によって実現する技術が開示されている。
【０００５】
たとえば、特開２００１−２２９１４８号公報（特許文献１）および特開２００４−２５８８４２号公報（特許文献２）は、複数の処理プロセッサ上で遺伝的アルゴリズムによる評価を行なうアルゴリズム処理装置を開示している。これらの装置は、複数のプロセッサにより構成される並列処理装置である。各プロセッサは、遺伝的アルゴリズムを用いるために、個体群情報を保存する記憶部と、個体群情報および後述する通信部によって得られた個体を用いて次の個体群を生成する個体群生成部と、他のプロセッサと個体群情報を送受信する通信部とを備える。
【特許文献１】特開２００１−２２９１４８号公報
【特許文献２】特開２００４−２５８８４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
各特許文献に開示された処理装置によると、それぞれの処理プロセッサは遺伝的アルゴリズムを動作させるためのプログラムが必要になる。また特開２００１−２２９１４８号公報に開示された構成によれば、それぞれの処理プロセッサについて個体群を記憶するためのメモリが必要となる。
【０００７】
また、そのようなプロセッサは、遺伝的アルゴリズムによる世代生成機能（初期化、選択、交叉、突然変異等）と、生成した個体を評価する評価機能と、さらに他のプロセッサと同期して個体や評価結果をやり取りするための通信機能とを有する必要がある。このため、各プロセッサは、これらの機能を実現するための処理能力を必要とする。
【０００８】
また、他のプロセッサと同期するためには、当該他のプロセッサの通信機能との間で同期通信するための機能、通信量を減らすために転送される個体の要／不要を判断して、個体を受信する／しないを決めるための機能が必要になる。
【０００９】
このように、遺伝的アルゴリズムに基づいて並列処理を実現するためには、当該処理を実行するプロセッサは、通常の情報処理に使用されるプロセッサが有するスペックを上回るスペックが必要とされる。そのため、通常のプロセッサを有する情報処理装置において、画像処理を実行するアルゴリズムを速やかに得ることができない場合がある。
【００１０】
本発明は、上述の問題点を解決するためになされたものであって、その第１の目的は、画像処理の手順を規定するアルゴリズムを速やかに得ることができる画像処理アルゴリズムの導出方法を提供することである。
【００１１】
本発明の第２の目的は、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる画像処理アルゴリズムの導出方法を提供することである。
【００１２】
本発明の第３の目的は、画像処理の手順を規定するアルゴリズムを速やかに得ることができる画像処理アルゴリズムの導出システムを提供することである。
【００１３】
本発明の第４の目的は、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる画像処理アルゴリズムの導出システムを提供することである。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、この発明のある局面に従うと、アルゴリズムの導出方法が提供される。この方法は、予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成手段と、予め準備された評価基準に基づいて生成手段により生成された各個体の評価を行なう評価手段とにより、画像処理の手順を規定するアルゴリズムを導出する方法である。この方法は、予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って個体の生成と評価とを繰り返す処理ステップと、終了条件が成立した場合に、評価の結果に対応する個体をアルゴリズムとして出力するステップとを備える。処理ステップは、生成手段が、各処理モジュールを組み合わせることにより、複数の個体を生成するステップと、生成された各個体を評価手段に転送するステップと、評価基準に基づいて、転送された個体の評価を行なう評価ステップと、予め定められたタイミングに従って、生成手段に対して、評価が完了した個体の評価結果を転送する結果転送ステップと、生成手段が、評価手段からの評価結果に基づいて、評価が完了した個体が属する世代の次世代に属する個体を生成する生成ステップとを含む。結果転送ステップは、評価の対象となる世代において評価が完了した個体についての第１の評価結果と、世代の一世代前の個体についての第２の評価結果とを、生成手段に転送するステップを含む。生成ステップは、第１の評価結果と第２の評価結果とに基づいて、次世代に属する個体を生成するステップを含む。評価ステップは、次世代に属する個体が生成されている間に、評価の対象となる世代に属する未評価の個体を評価するステップを含む。
【００１５】
好ましくは、評価手段は、複数である。処理ステップは、生成された各個体を評価手段の数に分けるステップをさらに含む。転送するステップは、各個体を各評価手段に転送する。
【００１６】
好ましくは、アルゴリズムの導出方法は、評価が完了した世代に属する個体を削除するステップと、次世代に属する個体を保存するステップとをさらに備える。
【００１７】
好ましくは、処理モジュールは、画像処理のためのフィルタである。個体は、複数のフィルタからなるフィルタ列である。
【００１８】
好ましくは、アルゴリズムの導出方法は、被写体の撮影により取得された原画像データと、原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各評価手段に送信するステップと、フィルタ列を用いて原画像データに対する画像処理を実行するステップとをさらに備える。評価ステップは、原画像データに対する画像処理の結果と結果画像データとに基づいて、フィルタ列を評価する。
【００１９】
好ましくは、アルゴリズムの導出方法は、評価の対象となる世代に属する各個体を評価するために要する評価時間を計測するステップをさらに備える。結果転送ステップは、評価時間に応じて、評価の結果を転送する。
【００２０】
好ましくは、アルゴリズムの導出方法は、評価が完了した個体の数を算出する算出ステップをさらに備える。結果転送ステップは、評価が完了した個体の数に応じて、評価の結果を転送する。
【００２１】
好ましくは、算出ステップは、各評価手段において評価が完了した個体の数の合計値を算出するステップを含む。結果転送ステップは、合計値に応じて、評価の結果を転送する。
【００２２】
好ましくは、算出ステップは、各評価手段の中の予め定められた評価手段によって評価された個体の数の合計値を算出するステップを含む。結果転送ステップは、合計値に応じて、評価の結果を転送する。
【００２３】
好ましくは、終了条件は、予め設定された世代に属する個体の評価が完了することである。
【００２４】
この発明の他の局面に従うと、画像処理アルゴリズムの導出システムが提供される。このシステムは、予め準備された複数の処理モジュールを用いて画像処理の手順を構成する複数の個体を生成する生成装置と、予め準備された評価基準に基づいて生成装置により生成された各個体の評価を行なう評価装置とを備える。生成装置は、予め定められた終了条件が成立するまで、遺伝的アルゴリズムに従って、各処理モジュールを組み合わせることにより、個体の生成を繰り返す処理手段と、分けられた各個体を評価装置に転送する個体転送手段とを含む。評価装置は、評価基準に基づいて、転送された個体の評価を行なう評価手段と、予め定められたタイミングに従って、評価の対象となる世代において評価が完了した個体についての第１の評価結果と、世代の一世代前の個体についての第２の評価結果とを、生成装置に転送する結果転送手段とを含む。処理手段は、第１の評価結果と第２の評価結果とに基づいて、次世代に属する個体を生成する生成手段を含む。評価手段は、次世代に属する個体が生成されている間に、評価の対象となる世代に属する未評価の個体を評価する手段を含む。生成装置は、終了条件が成立した場合に、評価の結果に対応する個体を、画像処理の手順を規定するアルゴリズムとして出力する出力手段を含む。
【００２５】
好ましくは、生成装置には、複数の評価装置が接続されている。生成装置は、生成された各個体を評価装置の数に分ける手段をさらに含む。個体転送手段は、分けられた各個体を各評価装置に転送する。
【００２６】
好ましくは、評価装置は、評価が完了した世代に属する個体を削除する手段と、次世代に属する個体を保存する手段とをさらに備える。
【００２７】
好ましくは、処理モジュールは、画像処理のためのフィルタである。個体は、複数のフィルタからなるフィルタ列である。
【００２８】
好ましくは、生成装置は、被写体の撮影により取得された原画像データと、原画像データに基づく画像処理の結果として予め準備された結果画像データとを、各評価装置に送信する手段をさらに含む。評価装置は、フィルタ列を用いて原画像データに対する画像処理を実行する手段とをさらに含む。評価手段は、原画像データに対する画像処理の結果と、結果画像データとに基づいて、フィルタ列を評価する。
【００２９】
好ましくは、評価装置は、評価の対象となる世代に属する各個体を評価するために要する評価時間を計測する手段をさらに含む。結果転送手段は、評価時間に応じて、評価の結果を転送する。
【００３０】
好ましくは、評価装置は、評価が完了した個体の数を算出する算出手段をさらに含む。結果転送手段は、評価が完了した個体の数に応じて、評価の結果を転送する。
【００３１】
好ましくは、算出手段は、各評価装置において評価が完了した個体の数の合計値を算出する。結果転送手段は、合計値に応じて、評価の結果を転送する。
【００３２】
好ましくは、算出手段は、各評価装置の中の予め定められた評価装置によって評価された個体の数の合計値を算出する。結果転送手段は、合計値に応じて、評価の結果を転送する。
【００３３】
好ましくは、終了条件は、予め設定された世代に属する個体の評価が完了することである。
【００３４】
好ましくは、評価手段は、動的再構成可能な回路である。
【発明の効果】
【００３５】
本発明に係る画像処理アルゴリズムの導出方法によれば、画像処理の手順を規定するアルゴリズムを速やかに得ることができる。また、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる。
【００３６】
本発明に係る画像処理アルゴリズムの導出システムによれば、画像処理の手順を規定するアルゴリズムを速やかに得ることができる。また、画像処理の結果の精度を向上させることができるアルゴリズムを導くことができる。
【発明を実施するための最良の形態】
【００３７】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００３８】
＜第１の実施の形態＞
最初に、図１を参照して、本発明の各実施の形態に係る画像処理装置における画像処理フィルタの組み合わせについて説明する。図１は、原画像１００に対して予め準備されたフィルタ１１０−１，１１０−２，…，１１０−ｎを用いて結果画像１２０を得るための処理を概念的に表わす図である。
【００３９】
各フィルタ１１０−１，１１０−２は、予め作成されたフィルタ、たとえば最大化フィルタ、最小化フィルタ、ゾーベル（ｓｏｂｅｌ）フィルタ、ラプラシアンフィルタなどである。フィルタ処理が実行される場合、原画像１００が最初に与えられる。また原画像１００に対応する目標画像が与えられる。ここで、目標画像とは、原画像１００を処理することにより得られる画像として期待される画像である。図１に示されるように、たとえばｎ段のフィルタの列が与えられた場合には、第１のフィルタ１１０−１を用いたフィルタ処理が原画像１００に対して行なわれる。その結果画像に対して第２のフィルタ１１０−２を用いたフィルタ処理が実行される。同様に処理が繰り返され、第ｎのフィルタ１１０−ｎを用いた処理が実行される。最後の処理により得られる画像は、結果画像１２０として出力される。この場合、結果画像１２０が予め設定された目標画像に近い場合、すなわち結果画像１２０と目標画像とをそれぞれ定量化し、各々の値の差が予め定められた基準値よりも小さい場合には、結果画像１２０を得るために使用された各フィルタの列は、画像処理を実現するためのアルゴリズムに近いものと判断される。
【００４０】
図２を参照して、本発明に係る画像処理装置において遺伝的アルゴリズム（ＧＡ）を用いた手法を適用した場合について説明する。図２は、複数のフィルタからなるフィルタ列を予め定められた評価基準により順次選択することにより、画像処理装置に使用するためのフィルタ列を選択する態様を表わす図である。
【００４１】
図２（Ａ）に示されるように、まず複数のフィルタ列からなる第１世代のフィルタ列群２００−１，２００−２等が生成される。各フィルタ列群は、予め準備されたフィルタをランダムに組み合わせることにより構成される。生成されたすべてのフィルタ列群のそれぞれのフィルタ列に対して予め準備された原画像１００が、入力画像として与えられる。各フィルタ列群は、その原画像１００に対して各フィルタを用いることにより、それぞれ対応する画像処理を実行し、結果画像２１０−１，２１０−２等を出力する。各結果画像は予め設定された目標画像と比較され、目標画像に近い結果画像を出力したフィルタ列（たとえばフィルタ列２１０−４）は、求めるフィルタ列に近いものとして高い評価値が与えられる。ここで評価値とは、後述するように、フィルタ列の評価結果として、各フィルタ列の属性を定量的に表現するために表わされる値である。第１の世代で高い評価値が与えられたフィルタ列は、その世代においていわゆる優秀なフィルタ列であるとされ、次の世代すなわち第２の世代を生成するための親として登録される（フィルタ列２２０）。
【００４２】
なお、ここで、評価値は、たとえば、輝度の差の絶対和、当該差の二乗和、あるいは平均値等を用いて定量的に表現可能なデータであり、結果画像と目標画像との差が小さいほど大きな値をとるものである。すなわち、当該評価値は、生成されたフィルタ列を原画像に対して適用して得られる複数の画像に対し、目標画像との比較を行なって得られるものである。また、「優秀な」とは、当該評価値が大きいものをいう。
【００４３】
次に、図２（Ｂ）に示されるように、第１の世代における処理において優秀なフィルタ列とされたフィルタ２２０は、第２の世代において、各フィルタの親として登録される。第２の世代は、ＧＡの交叉・突然変異などの手法によって親から生成される。すなわち、複数のフィルタ列２２０−１，２２０−２等が生成される。各フィルタ列は、第１世代における処理と同様に原画像に対するフィルタ処理を実行し、結果画像２３０−１，２３０−２等を出力する。それぞれ出力された結果画像から、予め設定された目標画像に最も近い結果画像を出力したフィルタ列が特定され（たとえばフィルタ列２３０−ｎ）、次の世代における親として登録される（フィルタ列２４０）。
【００４４】
図２（Ｃ）に示されるように、同様の処理を第Ｎ世代まで繰り返すことにより、画像処理装置を実現するためのフィルタ列を導出することができる。すなわち、フィルタ列２４０を構成する各フィルタに基づいて、次の世代のフィルタ列群が生成され、（Ｎ−１）世代のフィルタ列から、目標画像に最も近い結果画像を出力したフィルタ列を親として、第Ｎ世代のフィルタ列２５０−１，２５０−２等のフィルタ列群が生成され、それぞれのフィルタ列を用いたフィルタ処理が実行される。予め設定された目標画像に最も近い結果画像を出力したフィルタ列２６０−２は、画像処理装置を実現するためのフィルタ列２７０として導出される。
【００４５】
図３を参照して、本発明の第１の実施の形態に係る画像処理アルゴリズムを導出するためのシステム３００について説明する。図３は、システム３００の概略構成を表わすブロック図である。
【００４６】
システム３００は、画像処理を実現するための複数の処理モジュールから構成される複数の個体を生成可能な個体群生成部３１０と、予め準備された評価基準に基づいて当該個体を評価する個体評価部３３０−１，…，３３０−Ｐとを含む（以下、総称する時は個体評価部３３０と表わす。）。個体群生成部３１０と各個体評価部とは、通信回線３９０を介して接続されている。ここで、処理モジュールとは、画像処理を実現するために用いられるフィルタをいう。フィルタは、予め準備されたものであり、たとえば最大化フィルタ、最小化フィルタ、ゾーベル（ｓｏｂｅｌ）フィルタ、ラプラシアンフィルタなどを含む。
【００４７】
個体群生成部３１０は、複数の処理モジュールを格納するメモリ３１８と、各処理モジュールに基づいて遺伝的アルゴリズムに従い画像処理を規定するためのアルゴリズムを導出する世代生成部３１２と、通信回線３９０を介して各個体評価部３３０−１，…，３３０−Ｐとの間でデータの通信を行なう通信部３１４と、世代生成部３１２、通信部３１４およびメモリとの間におけるデータの通信を制御するための制御部３１６とを含む。
【００４８】
各個体評価部３３０−１は、個体群生成部３１０により生成された個体を予め準備された評価基準に従って評価する評価部３３２と、通信回線３９０を介して個体群生成部３１０との間で通信を行なうための通信部３３４と、評価部３３２および通信部３３４の動作を制御するための制御部３３６と、評価部３３２により評価された結果および通信部３３４を介して受信されたデータを格納するためのメモリ３３８とを含む。
【００４９】
なお、図３においてはＰ台の個体評価部が通信回線に接続されているが、個体評価部の数は「１」であってもよい。すなわち、本発明に係る画像処理アルゴリズムの導出は、１台の個体群生成部３１０と、１台の個体評価部とによって実現可能である。
【００５０】
図４を参照して、システム３００の制御構造について説明する。図４は、個体群生成部３１０と各個体評価部３３０とによって実行される処理の手順を表わすフローチャートである。
【００５１】
ステップＳ４１０にて、個体群生成部３１０の制御部３１６は、通信部３１４を介して、原画像および目標画像を各個体評価部３３０に転送する。ステップＳ４２０にて、個体群生成部３１０の世代生成部３１２は、メモリ３３８に格納されている処理モジュールに基づいて初期の世代に属する複数の個体を生成する。
【００５２】
ステップＳ４３０にて、個体群生成部３１０は、通信部３１４を介して世代生成部３１２によって生成された複数の個体をそれぞれ各個体評価部に転送する。各個体評価部に転送される個体の数は、たとえば評価の対象となる個体の数を個体評価部の数で除した値となる。この時余りが生じる場合には、予め設定された基準に従う個体評価部のみ、さらに１つの個体が割り当てられる。
【００５３】
ステップＳ４４０にて、個体評価部３３０の評価部３３２は、通信部３３４により受信された個体を予め準備された評価基準に基づいて評価する。ステップＳ４５０にて、個体評価部３３０は、通信部３３４を介して、評価部３３２による個体の評価結果を個体群生成部３１０に対して転送する。
【００５４】
ステップＳ４６０にて、個体群生成部３１０は、予め定められた世代だけの個体を生成したか否かを判断する。ここで、予め定められた世代とは、画像処理アルゴリズムを作成するために前もって個体群生成部３１０に対して入力された世代の上限値をいう。予め定められた世代だけの個体が生成された場合には（ステップＳ４６０にてＹＥＳ）、処理は終了する。そうでない場合には（ステップＳ４６０にてＮＯ）、処理はステップＳ４７０に移される。
【００５５】
ステップＳ４７０にて、個体群生成部３１０は、次の世代に属する個体を生成する。その後、処理はステップＳ４３０に戻される。
【００５６】
次に、図５を参照して、個体群生成部３１０の制御構造について詳細に説明する。図５は、個体群生成部３１０の制御部３１６が実行する処理の手順を表わすフローチャートである。
【００５７】
なお、以下の説明において、評価を行なう世代数をＧとする。１世代で生成される個体数をＮとする。個体評価部の数をＰと表わす。評価が行なわれている世代を示す値をｇとする。個体群生成部が通信する個体評価部の識別番号をｐとする。
【００５８】
ステップＳ５０２にて、制御部３１６は、画像処理を規定するアルゴリズムを導出するための処理に用いるパラメータを初期化する。評価世代数ｇは、０に初期化される。ステップＳ５０４にて、制御部３１６は、前もって入力されてメモリ３１８に格納されている原画像および目標画像を、各個体評価部３３０に対して送信する。これにより、全ての個体評価部が原画像および目標画像を保持することになる。
【００５９】
ステップＳ５０６にて、制御部３１６は、評価世代数ｇが評価を行なうために予め設定された世代数Ｇに等しいか否かを判断する。評価世代数ｇと世代数Ｇとが等しい場合には（ステップＳ５０６にてＹＥＳ）、処理はステップＳ５４０に移される。そうでない場合には（ステップＳ５０６にてＮＯ）、処理はステップＳ５１０に移される。
【００６０】
ステップＳ５１０にて、制御部３１６は、メモリ３１８に格納されている複数の処理モジュールに基づいてＮ個の個体を生成する。ここで、個体の生成は、たとえば処理モジュールとしてのフィルタを予め定められた数だけ選択し、その選択された各フィルタを組み合わせてフィルタ列を構成することにより行なわれる。この場合、１つのフィルタ列が当該個体に相当する。
【００６１】
ステップＳ５１２にて、制御部３１６は、個体群生成部３１０の通信相手である個体評価部３３０の中の、実際に通信する個体評価部を識別するための番号（以下「識別番号」という。）ｐを初期化する（ｐ＝０）。
【００６２】
ステップＳ５１４にて、制御部３１６は、ステップＳ５１０にて生成されたＮ個の個体をすべての個体評価部３３０に割り当てる。具体的には、各個体評価部に転送する個体数をＮの値とＰの値から算出する。たとえば、まず、制御部３１６は、Ｎ／Ｐを算出し、その商を各個体評価部に割り当てる。また、余りは生じる場合には、制御部３１６は、予め定められた個体評価部の順位に従って、当該余りを割り当てる。したがって、各個体評価部に割り振られる個体数は、Ｎ／ＰまたはＮ／Ｐ＋１となる。
【００６３】
ステップＳ５１６にて、制御部３１６は、識別番号ｐと個体評価部のＰとが等しいか否かを判断する。ｐとＰとが等しい場合には（ステップＳ５１６にてＹＥＳ）、処理はステップＳ５２２に移される。そうでない場合には（ステップＳ５１６にてＮＯ）、処理はステップＳ５１８に移される。
【００６４】
ステップＳ５１８にて、制御部３１６は、通信する個体評価部の識別番号ｐに対応する個体群（ｐ）をその個体評価部に対して送信する。ステップＳ５２０にて、制御部３１６は、識別番号ｐを１インクリメントする。処理は、その後ステップＳ５１６に移される。
【００６５】
ステップＳ５２２にて、制御部３１６は、識別番号ｐを０に初期化する。ステップＳ５２４にて、制御部３１６は、識別番号ｐと個体評価部の数Ｐとが等しいか否かを判断する。ｐとＰとが等しい場合には（ステップＳ５２４にてＹＥＳ）、処理はステップＳ５２６に移される。そうでない場合には（ステップＳ５２４にてＮＯ）、処理はステップＳ５３２に移される。
【００６６】
ステップＳ５２６にて、制御部３１６は、メモリ３１８に格納されているデータに基づいてすべてのｐについてのフラグがアイドル（以下「ＩＤＬＥ」と表わす）であるか否かを判断する。すべてのフラグがＩＤＬＥである場合には（ステップＳ５２６にてＹＥＳ）、処理はステップＳ５２８に移される。そうでない場合には（ステップＳ５２６にてＮＯ）、処理はステップＳ５３０に移される。ステップＳ５３０にて、制御部３１６は、識別番号ｐを０に初期化する。
【００６７】
ステップＳ５３２にて、制御部３１６は、識別番号ｐについてのフラグがＩＤＬＥであるか否かを判断する。そのフラグがＩＤＬＥである場合には（ステップＳ５３２にてＹＥＳ）、処理はステップＳ５３４に移される。そうでない場合には（ステップＳ５３２にてＮＯ）、処理はステップＳ５３８に移される。
【００６８】
ステップＳ５３４にて、制御部３１６は、識別番号がｐである個体評価部に対して、評価結果の転送を要求する。この要求は、たとえば、制御部３１６が、個体群生成部３１０と個体評価部３３０との間で予め定められた通信プロトコルに従うコマンドを生成して、当該固体評価部に対して送信することにより行なわれる。
【００６９】
ステップＳ５３６にて、制御部３１６は、識別番号ｐの個体評価部から、その要求に応じた評価結果を受信する。この評価結果は、メモリ３１８に格納される。ステップＳ５３８にて、制御部３１６は、識別番号ｐを１つインクリメントする。その後、処理は、ステップＳ５２４に戻される。
【００７０】
ステップＳ５４０にて、制御部３１６は、結果を予め定められた出力形式に変換し、当該形式のデータを外部に出力する。ここでは、評価結果が最も良好な個体が最優秀な個体として特定され、その個体を識別するデータが出力される。「評価結果が最も良好な」とは、すなわち、前述の評価値が最も大きいことである。
【００７１】
なお、予め設定された世代数に到達した場合に処理を終了する態様に代えて、評価結果に基づいて処理を終了する態様によっても、画像処理の手順を規定するアルゴリズムを導出することができる。
【００７２】
すなわち、各評価結果について予め定められた評価基準を満足する個体が存在するか否かを判定し、当該基準を満足する個体が得られた場合には、処理を終了してもよい。
【００７３】
次に、図６および図７を参照して、個体群生成部３１０のデータ構造について説明する。図６は、個体群生成部３１０が上記の処理を実行している間にメモリ３１８に一時的に格納されるデータのテーブル６００を表わす図である。メモリ３１８は、たとえばＲＡＭ（Random  Access  Memory）により実現される。図７は、個体評価部３３０による評価結果が格納されるテーブル７００を表わす図である。
【００７４】
図６に示されるように、メモリ３１８はテーブル６００を含む。テーブル６００は、識別番号Ｐが格納される領域６１０と、各識別番号に対応する個体評価部の状態を表わすデータが格納される領域６２０とを含む。たとえば、識別番号が「０」である個体評価部は、状態がビジィ（以下「ＢＵＳＹ」と表わす。）である。同様に識別番号１および２に対応する個体評価部に関し、各個体評価部の状態はＢＵＳＹである。この場合、各個体評価部は、それぞれに割り当てられた個体を評価するために予め設定された評価処理を実行していることになる。
【００７５】
一方、識別番号Ｐに対応する個体評価部は、その状態はＩＤＬＥである。このとき、その個体評価部は、個体を評価するための処理を実行していない状態（すなわち待機状態）である。
【００７６】
図７を参照して、メモリ３１８はテーブル７００を含む。テーブル７００は、領域７１０〜７４０を含む。個体を識別する番号を表わすデータは、領域７１０に格納されている。各個体に対応する具体的なフィルタ列は、領域７２０に格納されている。各個体が割り当てられる個体評価部を識別するデータは、領域７３０に格納されている。各個体に対する評価結果は、領域７４０に格納されている。
【００７７】
なお、データの格納の態様は、図７に示される態様に限られない。すくなくとも、領域７１０〜領域７４０に格納されるデータが、それぞれ関連付けられていればよい。
【００７８】
また、領域７２０に格納されているフィルタ列を表す数字は、具体的なフィルタの種別に対応するものであってもよい。この場合、評価結果とフィルタ列との対応を速やかに確認することが可能になる。
【００７９】
図８を参照して、個体評価部３３０の制御構造についてさらに説明する。図８は、制御部３３６が実行する処理の手順を表わすフローチャートである。
【００８０】
ステップＳ８１０にて、制御部３３６は、通信部３３４を介して個体群生成部３１０により生成されたコマンドを受信する。ステップＳ８２０にて、制御部３３６は、メモリ３３８に予め格納されているコマンドの情報に基づいて受信したコマンドの内容を確認する。制御部３３６は、その後の処理をそのコマンドに応じて切り換える。
【００８１】
そのコマンドが個体群生成部３１０から目標画像および結果画像を受信することを要求するものである場合には、ステップＳ８３０にて、制御部３３６は、通信部３３４を介して、個体群生成部３１０から送信された目標画像と結果画像とを受信する。受信された各画像のデータは、メモリ３３８において予め定められた各領域に格納される。
【００８２】
受信したコマンドが個体群生成部３１０から個体を受信することを要求するものである場合には、ステップＳ８４０にて、制御部３３６は、通信部３３４を介して個体群生成部３１０から個体を受信する。受信された個体のデータは、メモリ３３８に格納される。
【００８３】
ステップＳ８４２にて、制御部３３６は、当該個体評価部の状態フラグをＢＵＳＹに設定する。このフラグは、メモリ３３８において当該フラグのために確保されている領域に格納される。フラグがＢＵＳＹに設定されると、制御部３３６は、後述するように、割り込み処理を除いて、原則として他のコマンドに基づく要求を受け付けなくなる。
【００８４】
ステップＳ８４４にて、制御部３３６は、予め準備された評価基準に基づいてその個体を評価する。当該個体の評価結果は、メモリ３３８において結果を格納するために確保されている領域に格納される。評価の対象となる個体が複数存在する場合には、制御部３３６は、ステップＳ８４４の処理をその個体数だけ繰り返す。
【００８５】
個体の評価が完了すると、制御部３３６は、他の処理を実行可能なように、個体評価部３３０の状態を切り換える。
【００８６】
すなわち、ステップＳ８４６にて、制御部３３６は、状態フラグをＩＤＬＥに設定する。このフラグは、メモリ３３８において当該フラグのために確保されている領域に格納される。フラグがＩＤＬＥに設定されると、制御部３３６は、後述するように、他の個満とに基づく要求を受けることが可能になる。
【００８７】
また、ステップＳ８２０にて確認されるコマンドには、個体評価部３３０の状態を問い合せるものが含まれる。この場合、ステップＳ８５０にて、制御部３３６は、当該コマンドを認識する。
【００８８】
ステップＳ８５２にて、制御部３３６は、そのコマンドの認識に基づいて、メモリ３３８に格納されている状態フラグのデータをワークメモリ（図示しない）に読み出し、そのデータが含まれる信号を生成し、その信号を個体群生成部３１０に対して送信する。
【００８９】
さらに、ステップＳ８２０にて確認されるコマンドには、個体の評価結果の転送を要求するものが含まれる。この場合、ステップＳ８６２にて、制御部３３６は、当該個体を識別する番号と、当該個体の評価結果を送信する。もし、当該個体についての評価処理が行なわれていない場合には、制御部３３６は、当該個体の評価結果についての情報が存在しないことを表わすメッセージ「情報なし」を生成し、そのメッセージを個体群生成部３１０に対して送信する。
【００９０】
図９を参照して、システム３００の状態の推移について説明する。図９は、個体群生成部３１０と各個体評価部３３０とにおける状態の変化を表わすタイムチャートである。
【００９１】
図９に示されるように、個体評価部３３０は、以下の時間において、その作動を停止する。すなわち、世代生成時間（Ｔｃ）、少なくとも一つの個体評価部が評価結果を返送完了した時刻から、すべての個体評価部が評価を終了するまでの時刻差（Ｔｄ＿ｅ）、個体群生成部が少なくとも一つの個体評価部に個体を転送開始した時刻から、最後の個体評価部に個体を転送開始するまでの時刻差（Ｔｄ＿ｓ）、少なくとも一つの個体評価部が評価を終えた時点から、その個体評価部に対して個体群生成部からの状態確認が送信されてくるまでの時刻差（Ｔｄ＿ｆ）として表わされる時間、個体評価部は、個体を評価するための処理を実行しない。
【００９２】
個体群生成部３１０は、メモリ３１８に格納されているデータに基づいて特定の世代を構成する個体を生成し、その個体を各個体評価部に転送する。その後、個体群生成部３１０は、各個体評価部から当該個体の評価結果を受信する。したがって、個体群生成部３１０は、自己が作動する時間として、世代生成時間９１０と、ダウンロード時間９３０と、アップロード時間９２０とを含む。
【００９３】
ここで、世代生成時間９１０は、遺伝的アルゴリズムに従って特定の世代に属する個体を生成するために要する時間である。ダウンロード時間９３０は、個体群生成部３１０から各個体評価部３３０に対して、個体のデータを送信するために要する時間である。アップロード時間９２０は、各個体評価部３３０から個体群生成部３１０に対して個体の評価結果を転送するために要する時間である。
【００９４】
一方、各個体評価部３３０は、個体群生成部３１０から個体のデータを受信し、予め定められた評価基準に従ってその個体のデータを評価し、さらに評価結果を個体群生成部３１０に対して転送する。したがって、各個体評価部３３０は、それが作動する時間として、ダウンロード時間９３０と、評価時間９４０と、アップロード時間９２０とを含む。
【００９５】
アップロード時間９２０とダウンロード時間９３０とは、前述の個体群生成部３１０における各時間に対応する。評価時間９４０は、上記の評価基準に基づいて個体を評価するために要する時間である。各個体評価部３３０は、これらの時間に加えてさらに停止時間９５０を含む。各個体評価部３３０は、評価の対象となる個体データが存在する間予め定められた評価処理を実行できるため、それらのデータが存在しない場合には、各個体評価部３３０は停止する。そのため、上述のようような停止時間９５０が生じることになる。
【００９６】
ここで、図１０を参照して、個体群生成部３１０あるいは個体評価部３３０を実現するコンピュータシステム１０００について説明する。図１０は、コンピュータシステム１０００のハードウェア構成を表わすブロック図である。
【００９７】
コンピュータシステム１０００は、相互にデータバスにより接続されたＣＰＵ１０と、外部から指示の入力を受けるためのマウス１２およびキーボード１３と、外部から入力されるデータあるいはＣＰＵ１０によって一時的に生成されるデータを格納するＲＡＭ１４と、データを不揮発的に格納できるハードディスク１５と、ＣＤ−ＲＯＭ駆動装置１６と、モニタ１６と、通信ＩＦ（interface）１９とを含む。ＣＤ−ＲＯＭ駆動装置１６には、ＣＤ−ＲＯＭ１６ａが装着される。
【００９８】
コンピュータシステム１０００における処理は、各ハードウェアおよびＣＰＵ１０により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク１５に予め記憶されている場合がある。あるいは、ソフトウェアは、ＣＤ−ＲＯＭ１６ａその他の記憶媒体に格納されて、プログラム製品として流通している場合もある。さらに、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。
【００９９】
このようなソフトウェアは、ＣＤ−ＲＯＭ駆動装置１６その他の読取装置によりその記憶媒体から読み取られた後、あるいは、通信ＩＦ１９を介してダウンロードされた後、ハードディスク１５に一旦格納される。そのソフトウェアは、ＣＰＵ１０によってハードディスク１５から読み出され、ＲＡＭ１４に実行可能なプログラムの形式で格納される。ＣＰＵ１０は、そのプログラムを実行する。
【０１００】
図１０に示されるコンピュータシステム１０００を構成する各ハードウェアは、一般的なものである。したがって、本発明を実現する個体群生成部の本質的な部分は、ＲＡＭ１４、ハードディスク１５、ＣＤ−ＲＯＭ１６ａその他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム１０００の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【０１０１】
図１１を参照して、本発明に係るシステム１１００が備える機能について説明する。図１１は、システム１１００の機能的構成を表わすブロック図である。
【０１０２】
システム１１００は、外部からデータの入力を受けるデータ入力部１１１０と、外部から入力されたデータを格納する記憶部１１１２と、記憶部１１１２に格納されているデータを読み出すデータ読出部１１１４と、データ読出部１１１４により読み出されたデータに基づいて評価の対象となる複数の個体を生成する個体群生成部１１１６と、評価処理を実行する装置の数に応じて生成された個体を分割する分割部１１１８と、分割により生成された個体のグループを各装置に対して転送する評価対象転送部１１２０と、評価の対象となる個体の入力を受ける個体群入力部１１２２と、入力された個体を予め準備された基準に従って評価する評価部１１２４と、評価結果を転送するタイミングを検知するためのタイミング検知部１１２６と、そのタイミングに応じて評価が完了した個体についての結果を転送する結果転送部１１２８と、転送された評価結果を取得する評価結果取得部１１３０と、その結果に基づいて評価されていた個体が属する世代の次の世代に属する個体を生成する次世代個体群生成部１１３２と、評価が完了していない個体の評価を行なう未評価個体評価部１１３４と、評価が行なわれている世代の前の世代に属する個体を削除する前世代個体削除部１１３６とを含む。
【０１０３】
図１２を参照して、本実施の形態に係るシステムの具体的構成について説明する。図１２は、個体群生成部３１０と個体評価部３３０とをそれぞれコンピュータシステムにより構成した場合のシステムを表わすブロック図である。
【０１０４】
このシステムは、個体群生成部３１０として機能するコンピュータシステム１２００と、個体評価部３３０としてそれぞれ機能するＰ台のコンピュータシステム１２００−１，…，１２００−Ｐとを含む。各コンピュータシステムは、通信回線１２９０によりそれぞれ接続されている。
【０１０５】
なお、図１２に示される各コンピュータシステムに関し、図１０に示されるコンピュータシステム１０００が備える構成と同一の構成には同一の番号を付してある。それらの機能も同じである。したがって、ここではそれらについての説明は繰り返さない。
【０１０６】
図１３を参照して、個体群生成部３１０として機能するコンピュータシステム１２００のデータ構造について説明する。図１３は、コンピュータシステム１２００のハードディスク１５におけるデータの格納の一態様を表わす図である。
【０１０７】
ハードディスク１５は、領域１３１０〜領域１３８０を含む。画像処理の対象である原画像データは、領域１３１０に格納されている。原画像を処理して得られる画像として期待される結果である目標画像データは、領域１３２０に格納されている。後述する処理により生成されるＮ個の個体を表わすデータは、領域１３３０〜領域１３５０にそれぞれ格納される。また、個体評価部３３０として機能するコンピュータシステム１２００−１〜１２００−Ｐの各々から送信された各個体の評価結果は、領域１３６０〜領域１３８０に格納されている。
【０１０８】
図１４を参照して、個体評価部３３０として機能するコンピュータシステム１２００−Ｐのデータ構造について説明する。図１４は、コンピュータシステム１２００−Ｐのハードディスク１５Ｐにおけるデータの格納の一態様を表わす図である。
【０１０９】
ハードディスク１５Ｐはデータを格納する領域１４１０〜領域１４６０を含む。コンピュータシステム１２００から送信されたデータは、各領域に格納される。すなわち評価の対象となるｎ個の個体データは、領域１４１０〜領域１４３０に格納されている。各個体データを用いた評価結果は、領域１４４０〜領域１４６０にそれぞれ格納される。
【０１１０】
なお、前述のように個体評価部３３０においては、評価の対象となる個体データがすべて生成されるとは限らないため、各個体データについての結果が、すべて図１４に示される形で格納されるとは限らない。たとえば評価の途中で未評価のデータが削除された場合には、削除された個体データおよびそのデータについて生成される予定であった評価結果は格納されなくなる。
【０１１１】
図１５を参照して、個体群生成部３１０として機能するコンピュータシステム１２００の制御構造について説明する。図１５は、コンピュータシステム１２００のＣＰＵ１０が実行する処理の手順を表わすフローチャートである。なお、図５に示される処理と同一の処理には同一のステップ番号を付してある。したがって、当該処理の説明は、ここでは繰り返さない。また、１世代の評価時間、すなわちその世代に属する個体の評価を行なうために要する時間をＴａ＿ｅｓｔとする。世代評価時間をｔとする。
【０１１２】
ステップＳ１５０２にて、ＣＰＵ１０は、画像処理アルゴリズムを導出するための処理に用いられるパラメータを初期化する。ここでは、評価世代数ｇが「０」に設定される。また、各個体評価部３３０において世代を評価するために与えられる時間（世代評価時間）Ｔａ＿ｅｓｔが予め設定された値に初期化される。ここで、Ｔａ＿ｅｓｔは、たとえば次式（１）の関係を満足するように設定される。
Ｔａ＿ｅｓｔ  ＜  （Ｎ／Ｐ×Ｔ１＿ｅｓｔ）  −  Ｔｃ  ・・・（１）
ただし、Ｎ：１世代で生成される個体数、Ｐ：個体評価部の数、Ｔ１＿ｅｓｔ：個体評価部の１つの個体の処理に要する時間、Ｔｃ：世代生成時間である。
【０１１３】
すなわち、個体群生成部が少なくとも一つの個体評価部に対して個体を転送した時刻から個体群生成部が少なくとも一つの個体評価部から評価結果を取得開始するまでの時間は、少なくとも一つの個体評価部が個体群生成部から転送された対応するすべての個体の評価を終える時間から世代生成の時間を差し引いた時間よりも短くなるように、設定される。
【０１１４】
図１５を再び参照して、ステップＳ５１４にて、ＣＰＵ１０は、個体の評価のために経過した時間を表わす変数Ｔを０に設定する。ステップＳ５１６にて、ＣＰＵ１０は、個体評価部の識別番号ｐと個体評価部の数Ｐとが同じであるか否かを判断する。識別番号ｐと個体評価部の数Ｐとが同じである場合には（ステップＳ５１６にてＹＥＳ）、処理はステップＳ１５１８に移される。そうでない場合には（ステップＳ５１６にてＮＯ）、処理はステップＳ５１８に移される。
【０１１５】
ステップＳ１５１８にて、ＣＰＵ１０は、世代評価時間ｔが予め設定された評価時間Ｔａ＿ｅｓｔを上回るか否かを判断する。世代評価時間ｔが設定時間Ｔａ＿ｅｓｔを上回る場合には（ステップＳ１５１８にてＹＥＳ）、処理はステップＳ１５２０に移される。そうでない場合には（ステップＳ１５１８にてＮＯ）、ＣＰＵ１０は、ステップＳ１５１８における処理を再び実行する。
【０１１６】
ステップＳ１５２０にて、ＣＰＵ１０は、識別番号ｐを「０」に初期化する。ステップＳ１５２２にて、ＣＰＵ１０は、識別番号ｐと個体評価部の数Ｐとが同じであるか否かを判断する。識別番号ｐと個体評価部の数Ｐとが同じである場合には（ステップＳ１５２２にてＹＥＳ）、処理はステップＳ１５３４に移される。そうでない場合には（ステップＳ１５２２にてＮＯ）、処理はステップＳ５３４に移される。
【０１１７】
ステップＳ１５３４にて、ＣＰＵ１０は、評価世代数ｇを「１」インクリメントする。その後、処理は、ステップＳ１５０６に移される。
【０１１８】
図１６を参照して、個体評価部３３０として機能するコンピュータシステム１２００−Ｐの制御構造について説明する。図１６は、コンピュータシステム１２００−ＰのＣＰＵ１０が実行する処理の手順を表わすフローチャートである。なお、図８に示される処理と同一の処理には同一のステップ番号を付してある。したがって、当該処理の説明は、ここでは繰り返さない。なお、以下の説明で、Ｅｍａｘは、個体評価部３００で評価できる最大個体数を表わす。ｅは、評価中の個体位置を表わし、０からＥｍａｘまでの値を取る。Ｅは、評価リストに保存された個体の最大数を表わす。
【０１１９】
ステップＳ１６２２にて、ＣＰＵ１０は、ＲＡＭ１４に格納されている評価リストから、未評価の個体（第ｅ＋１番目以降の個体）を削除する。ステップＳ１６２４にて、ＣＰＵ１０は、通信ＩＦ１９を介して受信した個体のデータを、評価リストの第ｅ＋１番目以降、第Ｅｍａｘ番目まで追加する。
【０１２０】
ステップＳ１６２６にて、ＣＰＵ１０は、値Ｅのデータを更新する。すなわち、ＣＰＵ１０は、値Ｅを、評価リストの最後の個体の番号に設定する。ステップＳ１６２８にて、ＣＰＵ１０は、値Ｅと値ｅとが同じであるか否かを判断する。これらの値が同じである場合には（ステップＳ１６２８にてＹＥＳ）、処理はステップＳ１６３０に移される。そうでない場合には（ステップＳ１６２８にてＮＯ）、処理は終了する。
【０１２１】
ステップＳ１６３０にて、ＣＰＵ１０は、第ｅ番目の個体の評価を行なう。ステップＳ１６３２にて、ＣＰＵ１０は、第ｅ番目の評価結果を更新する。ステップＳ１６３４にて、ＣＰＵ１０は、ｅの値を１インクリメントする。その後、処理はステップＳ１６２８に戻される。
【０１２２】
ステップＳ１６４０にて、ＣＰＵ１０は、コンピュータシステム１２００から評価結果の転送を要求するコマンドの受信を検知する。ステップＳ１６４２にて、ＣＰＵ１０は、その要求に基づいて、これまで実行していた評価処理を一時的に停止する。
【０１２３】
ステップＳ１６４４にて、ＣＰＵ１０は、ハードディスク１５Ｐに格納されているデータに基づいて、評価済みの個体を識別するための個体ＩＤ（Identification）と、各個体の評価結果とが含まれる結果データを生成し、当該結果データを、コンピュータシステム１２００に対して転送する。
【０１２４】
ステップＳ１６４６にて、ＣＰＵ１０は、個体リストから評価済みの個体のデータを削除する。ステップＳ１６４８にて、ＣＰＵ１０は、個体番号ｅの値を０に更新（初期化）する。
【０１２５】
ステップＳ１６５０にて、ＣＰＵ１０は、値Ｅを、評価リストの最後の個体の番号に設定する。ステップＳ１６５２にて、ＣＰＵ１０は、一時的に停止していた個体の評価を再開する。
【０１２６】
図１７を参照して、コンピュータシステム１２００−Ｐのデータ構造について説明する。図１７は、コンピュータシステム１２００−ＰのＲＡＭ１４における評価リストの格納の一態様を表わす図である。
【０１２７】
リスト１７１０は、コンピュータシステム１２００−Ｐが個体の評価処理を実行していた場合においてコンピュータシステム１２００から受信したコマンドによる割り込みによって処理が中断した場合のリストの内容を表わす。リスト１７１０において、ｅの値は、評価の対象となる個体の番号、Ｅの値は、リストに保存されている個体の最大数を表わす。
【０１２８】
リスト１７１０では、第０番目〜第７番目までの個体について、その評価が完了している。第８番目の個体は、現在評価の途中である。ここで、個体評価部３３０として機能するコンピュータシステム１２００−Ｐがコンピュータシステム１２００から個体の受信を要求するコマンドを受信した場合には、未評価の個体がリスト１７１０からの削除の対象となる。コンピュータシステム１２００から送信された新たな個体についての情報がリストに加えられると、そのリストは更新される（リスト１７２０）。この場合、第９番目の個体から第Ｅｍａｘ番目の個体までが、当該コマンドに応じて新たに受信された個体についての情報を表わすことになる。
【０１２９】
コンピュータシステム１２００−Ｐが、個体の評価処理を実行している間に、評価結果の転送要求のコマンドを受信した場合には、コンピュータシステム１２００−Ｐは、実行していた評価処理を一時的に停止する。このとき、リスト１７３０に示されるように、評価が完了した個体のデータがコンピュータシステム１２００に対する転送の対象となる。すなわち第０番目から第３０番目の個体についての評価結果がコンピュータシステム１２００に転送される。コンピュータシステム１２００−ＰのＣＰＵ１０が、その転送の完了を確認した後（たとえばコンピュータシステム１２００が、送信されるべきデータをすべて受信したことを通知するレポートを送信し、コンピュータシステム１２００−Ｐがそのレポートを受信した場合）、ＣＰＵ１０は、リスト１７３０の中から、第０番目から第３０番目に属する個体のデータを削除する。この場合、第３１番目の個体が評価の途中であったため、第３１番目以降の個体のデータは、削除されることなく、そのまま保存される。
【０１３０】
一時的に中断されていた評価処理が再び開始されると、リスト１７３０の内容は、削除により生じた空欄だけ埋めるように更新される。その結果、リスト１７４０が生成される。すなわち、リスト１７３０において個体１００から個体１３０までのデータが転送されたため、これらのデータが削除されている。
【０１３１】
評価結果が転送されていないデータ、すなわち個体１３１〜個体１５０までのデータは、その後の評価の対象となる。したがって個体１３１〜個体１５０までのデータがリストの先頭に来るようにデータが更新される。この場合、各領域に格納されるデータに関し、第０番目のデータは、個体１３１についてのデータとなり、最後の個体である個体１５０は、第１９番目の領域に格納されることになる。
【０１３２】
図１８を参照して、本実施の形態に係るシステムの状態の推移について説明する。図１８は、図１２に示される構成によって実現されるシステムにおいて、個体群生成部３１０および各個体評価部３３０の作動状態の推移を表わすタイムチャートである。
【０１３３】
チャート（Ａ）に示されるように、個体群生成部３１０が作動する時間は、特定の世代に属する個体を生成するために要する世代作成時間１８１０と、個体のデータを各個体評価部に転送するために要するダウンロード時間１８３０と、各々の個体について評価が完了したものの評価結果を受信するアップロード時間１８２０とを含む。
【０１３４】
チャート（Ｂ）〜（Ｄ）に示されるように、各個体評価部３３０の作動時間は、個体群生成部３１０から個体のデータを受信するために要するダウンロード時間１８３０と、各個体について予め定められた基準に従って評価を行なうために要する評価時間１８４０と、評価が完了した個体についての評価結果を個体群生成部３１０に転送するために要するアップロード時間１８２０とを含む。
【０１３５】
この場合、各々の個体評価部は、図９に示された時間、すなわち、処理を実行しない停止時間９５０を含まない。すなわち、評価の処理のための待ち時間が生じない。停止時間が存在しない分、各個体評価部の稼働率が上昇するため、画像処理アルゴリズムの導出に要する時間はその分短くなる。
【０１３６】
さらに、図１９〜２１を参照して、本実施の形態に係るシステムにより期待される効果について説明する。図１９は、ある世代ｇについて個体群生成部３１０が生成した個体が、個体評価部３３０で評価されるために要する時間を示すタイムチャートである。図２０は、ある世代ｇを生成するための個体が個体評価部３３０で評価されるために要する時間を示すタイムチャートである。
【０１３７】
図１９に示されるように、個体群生成部３１０が第ｇ世代に属する複数の個体（個体群）を生成している間、個体評価部３３０は、第ｇ−１世代に属する個体の評価を続ける。そして、第ｇ−１世代に属する全ての個体の評価が完了するまでに、個体群生成部３１０は、第ｇ世代の個体のデータを個体評価部に対して転送する。
【０１３８】
また、図２０に示されるように、アップロード時間２０２０に関し、第ｇ＋１世代に属する個体を生成するために、第ｇ世代に属する個体群を生成していた間に評価された第ｇ−１世代に属する個体の評価結果と、第ｇ世代に属する個体であって、評価が完了している個体の評価結果が使用される。したがって、ある世代（たとえば第ｇ世代）に属する全ての個体の評価結果から次の世代（たとえば第ｇ＋１世代）に属する全ての個体が生成されず、第ｇ−１世代に属する一部の個体の評価結果と、第ｇ世代に属する一部の個体の評価結果とから、第ｇ＋１世代の全ての個体が生成される。
【０１３９】
図２１は、本発明に係る手法による処理の結果と、従来の手法による処理の結果との相違を示す図である。
【０１４０】
まず、領域２１１０に示される個体評価部３３０の停止時間は、従来の手法によれば、Ｔｃ＋Ｔｄ＿ｅ＋Ｔｄ＿ｓ＋Ｔｄ＿ｆとなるところ、本発明に係る手法によれば、「０」となる。つまり、従来の手法の場合に生じていた個体評価部の停止区間は、なくなることになる。
【０１４１】
次に、１世代評価時間(Ｔa_est＋Ｔc)あたりの個体評価数は、従来の手法によれば、Ｎとなるところ、本発明に係る手法によれば、Ｎ＋ｎ（Ｔc）＋ｎ（Ｔd_e）＋ｎ（Ｔd_s）＋ｎ（Ｔd_f）となる。ここで、ｎ（ｘ）は、期間ｘにおける評価個体数を示す。
【０１４２】
また、１世代あたりの評価結果の期待値は、従来の手法と本発明に係る手法において、Ｔa_est＋Ｔcが等しいことから、評価結果が個体数に比例するとした場合、従来の手法の期待値１に対し、本発明に係る手法によれば、｛Ｎ＋ｎ（Ｔc）＋ｎ（Ｔd_e）＋ｎ（Ｔd_s）＋ｎ（Ｔd_f）｝／Ｎとなり、１を上回ることになる。
【０１４３】
さらに、一定の値以上の評価結果への到達時間は、評価結果が個体数に比例するとした場合、前述の１世代評価時間当たりの個体評価数に反比例するので、従来の手法に係る期待値１に対して、本発明に係る手法によれば、Ｎ／｛Ｎ＋ｎ（Ｔc）＋ｎ（Ｔd_e）＋ｎ（Ｔd_s）＋ｎ（Ｔd_f）｝となる。
【０１４４】
以上のようにして、本発明の第１の実施の形態によれば、個体評価部が特定の世代に属する個体を評価している場合に予め定められたタイミングが検出されると、個体評価部は評価が完了した個体についての評価結果を個体群生成部に転送する。個体群生成部は、その評価結果に基づいて当該世代の次の世代に属する個体を生成する。個体群生成部は、当該次の世代に属する個体を、各個体評価部に転送する。
【０１４５】
このようにすると、個体評価部は、常にいずれかの世代に属する個体の評価、個体群生成部との間の通信その他の処理を実行しつづけることになるため、個体評価部は、通信回線の遮断その他の不測の事態が発生しない限り作動しつづける。その結果、個体の生成と評価とを順次行なう場合に比べて、予め設定された評価基準を満足する個体を速やかに抽出することができる。これにより、画像処理の手順を規定するアルゴリズムが、従来よりも迅速に導出され得る。
【０１４６】
また、個体の評価のために与えられた時間内で評価を行なえる個体の数が増加することになるため、評価の対象範囲を広げることができる。その結果、評価基準をより満足する個体を抽出し易くなる。
【０１４７】
＜第２の実施の形態＞
本発明の第２の実施の形態に係るシステムは、世代評価時間を予め設定することなく、特定の１世代において評価された個体の数に基づいて次の世代の個体を生成するタイミングを規定する機能を有する点で、前述の実施の形態と異なる。
【０１４８】
なお、本実施の形態に係るシステムは、たとえば図１２に示されるコンピュータネットワークシステムにおいて実現される。したがって、ここではそのハードウェア構成についての説明は繰り返さない。
【０１４９】
図２２を参照して、本実施の形態に係るシステムの制御構造について説明する。図２２は、個体群生成部として機能するコンピュータシステム１２００のＣＰＵ１０が実行する処理の手順を表わすフローチャートである。なお、前述の実施の形態（図１５）に示される処理と同一の処理には同一のステップ番号を付し、当該処理の説明は、繰り返さない。
【０１５０】
ステップＳ２２１０にて、コンピュータシステム１２００のＣＰＵ１０は、画像処理を規定するアルゴリズムを導出する処理の実行に用いるパラメータを初期化する。この初期化により、評価世代数ｇは、「０」に設定される。また世代評価を行なう評価済み個体数Ｎｔｈ＿ｅｎｄが予め定められた数に設定される。
【０１５１】
ステップＳ２２２０にて、ＣＰＵ１０は、評価が完了した個体の総和Σｎ（ｐ）が評価済み個体数Ｎｔｈ＿ｅｎｄを上回るか否かを判断する。評価が完了した数が評価済み個体数Ｎｔｈ＿ｅｎｄを上回っている場合には（ステップＳ２２２０にてＹＥＳ）、処理はステップＳ１５２０に移される。そうでない場合には（ステップＳ２２２０にてＮＯ）、処理は再びステップＳ２２２０に戻される。
【０１５２】
ここで図２３を参照して、個体評価部と個体群生成部との間で行なわれる割込処理について説明する。図２３は、当該割込処理の手順を表わすフローチャートである。
【０１５３】
ステップＳ２３１０にて、個体評価部として機能するコンピュータシステム１２００−ＰのＣＰＵ１０は、個体群生成部として機能するコンピュータシステム１２００から処理済みの個体数の転送要求を受信する。コンピュータシステム１２００−ＰのＣＰＵ１０は、その要求に基づいてＲＡＭ１４に格納されている評価が完了した個体のデータから評価済みの個体数を算出し、その個体数をコンピュータシステム１２００に対して送信する。
【０１５４】
ステップＳ２３２０にて、コンピュータシステム１２００は、コンピュータシステム１２００−Ｐによって送信された処理済み個体数を受信する。ステップＳ２３３０にて、コンピュータシステム１２００のＣＰＵ１０は、全処理済み個体数の値を更新する。
【０１５５】
図２４を参照して、本実施の形態に係る個体評価部として機能するコンピュータシステム１２００−Ｐの制御構造について説明する。なお、前述の実施の形態（図１６）に示される処理と同一の処理には同一のステップ番号を付し、それらについての説明は繰り返さない。
【０１５６】
ステップＳ２４４０にて、コンピュータシステム１２００−ＰのＣＰＵ１０は、コンピュータシステム１２００に、処理済みの個体数の転送要求を送信する。この要求は、コンピュータシステム１２００によって割り込みのコマンドとして認識される。コンピュータシステム１２００は、コンピュータシステム１２００−Ｐから送信されるデータ、すなわち評価が完了した個体の数を格納するためのメモリ領域を確保する。
【０１５７】
ステップＳ２４５０にて、ＣＰＵ１０は、コンピュータシステム１２００に対して、評価処理が完了した個体数ｎ（ｐ）を送信する。コンピュータシステム１２００は、個体数を当該メモリ領域に格納する。
【０１５８】
以上のようにして、本実施の形態によれば、時間ではなく個体数によって次の世代の評価タイミングが規定される。次の世代に属する個体を生成するための個体評価結果数は、一定に保たれる。したがって、特定の世代に属する個体の評価に関し、個体評価部は、無駄なく作動することができる。その結果、第１の実施の形態において説明したように、全体としての評価時間の短縮あるいは評価基準に一層近い結果を導出し得るアルゴリズムを探索することができる。
【０１５９】
なお、本実施の形態に代えて、たとえば、少なくとも一つの個体評価部の評価済み個体数によって次の世代の評価タイミングを規定してもよい。この場合、少なくとも一つの個体評価部からのみ、評価済み個体数転送要求を送信するようにすればよい。
【０１６０】
この方法によると、全体の構成における、評価済み個体数の送信回数が１／Ｐとなるため、個体評価部は、削減された通信回数に応じた時間だけ、個体を評価するための時間として作動することができる。
【０１６１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１６２】
【図１】本発明の各実施の形態に係る画像処理装置における画像処理フィルタの組み合わせについて説明するための図である。
【図２】複数のフィルタからなるフィルタ列を予め定められた評価基準により順次選択することにより、画像処理装置に使用するためのフィルタ列を選択する態様を表わす図である。
【図３】本発明の第１の実施の形態に係る画像処理アルゴリズムを導出するためのシステム３００の概略構成を表わすブロック図である。
【図４】個体群生成部３１０と各個体評価部３３０とによって実行される処理の手順を表わすフローチャートである。
【図５】個体群生成部３１０の制御部３１６が実行する処理の手順を表わすフローチャートである。
【図６】個体群生成部３１０が処理を実行している間に揮発性メモリに一時的に格納されるデータの態様を表わす図である。
【図７】個体評価部３３０による評価結果の格納の態様を表わす図である。
【図８】個体評価部３３０の制御部３３６が実行する処理の手順を表わすフローチャートである。
【図９】システム３００を構成する個体群生成部３１０と各個体評価部３３０とにおける状態の変化を表わすタイムチャートである。
【図１０】個体群生成部３１０あるいは個体評価部３３０を実現するコンピュータシステム１０００のハードウェア構成を表わすブロック図である。
【図１１】システム３００の機能的構成を表わすブロック図である。
【図１２】個体群生成部３１０と個体評価部３３０とをそれぞれコンピュータシステムにより構成した場合のシステムを表わすブロック図である。
【図１３】コンピュータシステム１２００のハードディスク１５におけるデータの格納の一態様を表わす図である。
【図１４】個体評価部３３０として機能するコンピュータシステム１２００−Ｐのハードディスク１５Ｐにおけるデータの格納の一態様を表わす図である。
【図１５】個体群生成部３１０として機能するコンピュータシステム１２００のＣＰＵ１０が実行する処理の手順を表わすフローチャートである。
【図１６】個体評価部３３０として機能するコンピュータシステム１２００−ＰのＣＰＵ１０が実行する処理の手順を表わすフローチャートである。
【図１７】コンピュータシステム１２００−ＰのＲＡＭ１４における評価リストの格納の一態様を表わす図である。
【図１８】図１２に示される構成によって実現されるシステムにおいて、個体群生成部３１０および各個体評価部３３０の作動状態の推移を表わすタイムチャートである。
【図１９】ある世代ｇについて個体群生成部３１０が生成した個体が、個体評価部３３０で評価されるために要する時間を示すタイムチャートである。
【図２０】ある世代ｇを生成するための個体が個体評価部３３０で評価されるために要する時間を示すタイムチャートである。
【図２１】本発明に係る手法による処理の結果と、従来の手法による処理の結果との相違を示す図である。
【図２２】本発明の第２の実施の形態に係る個体群生成部として機能するコンピュータシステム１２００のＣＰＵ１０が実行する処理の手順を表わすフローチャートである。
【図２３】個体評価部と個体群生成分との間で行なわれる割込処理の手順を表わすフローチャートである。
【図２４】本実施の形態に係る個体評価部として機能するコンピュータシステム１２００−ＰのＣＰＵが実行する処理の手順を表わすフローチャートである。
【符号の説明】
【０１６３】
１０  ＣＰＵ、１２  マウス、１３  キーボード、１４  ＲＡＭ、１５，１５Ｐ  ハードディスク、１６  ＣＤ-ＲＯＭ駆動装置、１６ａ，１６Ｐ  ＣＤ-ＲＯＭ、１８  モニタ、１９  通信ＩＦ、３００，１１００  システム、３１０  個体群生成部、３１２  世代生成部、３１４，３３４  通信部、３１６，３３６  制御部、３１８，３３８  メモリ、３３０，３３０−１，３３０−ｎ  個体評価部、３３２  評価部、１２００，１２００−１，１２００−ｐ  コンピュータシステム、１１１０  データ入力部、１１１２  記憶部、１１１４  データ読出部、１１１６  個体群生成部、１１１８  分割部、１１２０  評価対象転送部、１１２２  個体群入力部、１１２４  評価部、１１２６  タイミング検知部、１１２８  結果転送部、１１３０  評価結果取得部、１１３２  次世代個体群生成部、１１３４  未評価個体評価部、１１３６  前世代個体削除部、１２９０  通信回線。
【図１】
2007041697.tif 000003
【図２】
2007041697.tif 000004
【図３】
2007041697.tif 000005
【図４】
2007041697.tif 000006
【図５】
2007041697.tif 000007
【図６】
2007041697.tif 000008
【図７】
2007041697.tif 000009
【図８】
2007041697.tif 000010
【図９】
2007041697.tif 000011
【図１０】
2007041697.tif 000012
【図１１】
2007041697.tif 000013
【図１２】
2007041697.tif 000014
【図１３】
2007041697.tif 000015
【図１４】
2007041697.tif 000016
【図１５】
2007041697.tif 000017
【図１６】
2007041697.tif 000018
【図１７】
2007041697.tif 000019
【図１８】
2007041697.tif 000020
【図１９】
2007041697.tif 000021
【図２０】
2007041697.tif 000022
【図２１】
2007041697.tif 000023
【図２２】
2007041697.tif 000024
【図２３】
2007041697.tif 000025
【図２４】
2007041697.tif 000026