(57)【要約】【課題】データ処理アルゴリズムの自動的最適化を早期に完了させ、データ処理アルゴリズムの開発や調整のコストを抑制する。【解決手段】複数のデータ処理アルゴリズムに対応する複数個の教示データの全ての評価結果を取得すると共に、当該全教示データの評価結果に対応した最上位のデータ処理アルゴリズムを特定する。また、当該評価結果に基づいて、複数の教示データを複数の確定グループに分類する。各確定グループから１つの教示データを選択して、選出された教示データを生成し、この選出された教示データに対する評価結果を用いてデータ処理アルゴリズム群の順位付けを行う。全教示データの評価結果に対応した最上位のアルゴリズムと選出教示データの評価結果に対応した最上位のアルゴリムとを含む新アルゴリズム群を生成し、これを用いて再度全教示データを評価する。この評価結果に基づいて新アルゴリズム群を順位づけし、最適なデータ処理アルゴリズムを決定する。【選択図】図１
2015075798.tif 000002
【特許請求の範囲】
【請求項１】
入力されるデータを処理するためのデータ処理アルゴリズムを決定するデータ処理装置であって、
複数個の教示データを格納するメモリと、
前記複数個の教示データに対するそれぞれの評価結果が所定の値の範囲内に収まるようにデータ処理アルゴリズムを最適化処理するプロセッサと、を有し、
前記プロセッサは、
前記複数個の教示データの全てに対して、用意された複数のデータ処理アルゴリズムを実行し、前記複数のデータ処理アルゴリズムに対応して前記複数個の教示データの全てを評価し、当該評価結果に基づいて全教示データ評価に対して最上位のデータ処理アルゴリズムを特定する第１の評価処理と、
前記複数のデータ処理アルゴリズムに対応する前記複数個の教示データの全ての評価結果に基づいて、前記複数の教示データを複数の確定グループに分類し、各確定グループから少なくとも１つの教示データを選出する教示データ選出処理と、
前記選出された教示データに対してデータ処理を実行した前記複数のデータ処理アルゴリズムを順位付けする順位付け処理と、
前記順位付け処理において評価結果が最上位と判定されたデータ処理アルゴリズムを含めて改善された複数のデータ処理アルゴリズムを生成し、当該改善された複数のデータ処理アルゴリズムを前記複数個の教示データの全てに対して実行し、前記改善された複数のデータ処理アルゴリズムを評価する第２の評価処理と、
前記第２の評価処理の結果に基づいて、最適なデータ処理アルゴリズムを決定するアルゴリズム決定処理と、
を実行することを特徴とするデータ処理装置。
【請求項２】
請求項１において、
前記教示データには画像データが含まれ、前記データ処理アルゴリズムは画像処理アルゴリズムであることを特徴とするデータ処理装置。
【請求項３】
請求項２において、
前記プロセッサは、前記教示データ選出処理において、前記複数のデータ処理アルゴリズムのそれぞれに対応する各教示データの評価結果を評価値ベクトルとし、当該評価値ベクトル間の距離に基づいて前記教示データを分類することを特徴とするデータ処理装置。
【請求項４】
請求項３において、
前記プロセッサは、前記教示データ選出処理において、
前記評価値ベクトル間の距離が最小となる２つの教示データ同士を１つのグループに属するものとして分類し、複数の仮グループを生成する処理と、
当該複数の仮グループに属する教示データの評価値ベクトルを用いて当該複数の仮グループの代表評価値ベクトルを生成する処理と、
前記複数の仮グループの代表評価値ベクトル同士、或いは前記複数の仮グループのそれぞれの代表評価値ベクトルと前記複数の仮グループに属さない教示データの評価値ベクトルのうちベクトル間距離が最小となる仮グループ或いは教示データを１つのグループに属するものとして更なる仮グループを生成する処理と、
全ての教示データが１つのグループに収まるまで前記更なる仮グループを生成する処理を繰り返す処理と、
前記仮グループ或いは前記更なる仮グループに含まれる教示データの評価値の平均値と前記仮グループ或いは前記更なる仮グループに含まれる教示データの数との乗算値の差が最大となる仮グループ或いは更なる仮グループを特定する処理と、
前記特定された仮グループ或いは更なる仮グループを生成する処理を実行する前までに生成された前記仮グループ及び前記更なる仮グループを前記複数の確定グループとする処理と、
前記複数の確定グループから少なくとも１つの教示データを選出する処理と、
を実行するデータ処理装置。
【請求項５】
請求項１において、
前記プロセッサは、複数個の教示データの少なくも一部を一様に選出し、当該一様選出した教示データに対して前記用意された複数のデータ処理アルゴリズムを実行し、前記複数のデータ処理アルゴリズムを前記一様に選出された教示データによって評価する事前評価処理を実行し、当該事前評価処理において評価結果が最上位と判定されたデータ処理アルゴリズムを含めた複数のデータ処理アルゴリズムで前記第１の評価処理を実行することを特徴とするデータ処理装置。
【請求項６】
請求項１において、
前記プロセッサは、
前記教示データ選出処理において、前記複数のデータ処理アルゴリズムに対応する前記複数個の教示データの全ての評価結果のうち最も評価値が悪い教示データから所定の距離内にある教示データと、当該所定の距離外にある教示データとに分類して前記確定グループを生成し、前記所定の距離内にある教示データを前記選出された教示データとすることを特徴とするデータ処理装置。
【請求項７】
請求項１において、
前記メモリは、複数個の対象データと、当該複数個の対象データのそれぞれにおける処理部分を示す複数個の正解データとの組み合わせで構成される複数個の教示データを格納し、
前記プロセッサは、前記複数個の対象データの処理結果と前記複数個の正解データに対するそれぞれの評価結果が所定の値の範囲内に収まるようにデータ処理アルゴリズムを最適化処理することを特徴とするデータ処理装置。
【請求項８】
請求項１において、
前記順位付け処理において、前記プロセッサは、前記複数のデータ処理アルゴリズムに対応する前記複数個の教示データの全ての評価結果に基づいて、前記選出された教示データに対してデータ処理を実行した前記複数のデータ処理アルゴリズムを順位付けし、
前記第２の評価処理において、前記プロセッサは、前記全教示データ評価に対して最上位のデータ処理アルゴリズムと前記順位付け処理において評価結果が最上位と判定されたデータ処理アルゴリズムを含めて改善された複数のデータ処理アルゴリズムを生成することを特徴とするデータ処理装置。
【請求項９】
請求項２に記載のデータ処理装置と、
前記教示データとしての画像データを取得し、前記データ処理装置に前記画像データを提供する電子顕微鏡装置と、を有し、
前記画像処理アルゴリズムは、テンプレートマッチングアルゴリズムであり、
前記データ処理装置は、前記決定されたテンプレートマッチングアルゴリズムを用いて、パターンマッチング処理を実行することを特徴とする測長システム。
【請求項１０】
請求項２に記載のデータ処理装置と、
前記教示データとしての画像データを取得し、前記データ処理装置に前記画像データを提供する電子顕微鏡装置と、を有し、
前記画像処理アルゴリズムは、欠陥検査処理アルゴリズムであり、
前記データ処理装置は、前記決定された欠陥検査処理アルゴリズムを用いて、製造物の欠陥分類処理を実行することを特徴とする欠陥検査システム。
【請求項１１】
請求項２に記載のデータ処理装置と、
前記教示データとしての画像データを取得し、前記データ処理装置に前記画像データを提供する撮像装置と、を有し、
前記画像処理アルゴリズムは、トラッキングアルゴリズムであり、
前記データ処理装置は、前記決定されたトラッキングアルゴリズムを用いて、トラッキング処理を実行することを特徴とする画像トラッキングシステム。
【請求項１２】
データ処理装置に入力される教示データを処理するためのデータ処理アルゴリズムを決定するデータ処理方法であって、
前記データ処理装置は、複数個の教示データを格納するメモリと、前記複数個の教示データに対するそれぞれの評価結果が所定の値の範囲内に収まるようにデータ処理アルゴリズムを最適化処理するプロセッサと、を有し、
前記データ処理方法は、
前記プロセッサが、前記複数個の教示データの全てに対して、用意された複数のデータ処理アルゴリズムを実行し、前記複数のデータ処理アルゴリズムに対応して前記複数個の教示データの全てを評価する第１の評価ステップと、
前記プロセッサが、前記複数のデータ処理アルゴリズムに対応する前記複数個の教示データの全ての評価結果に基づいて、前記複数の教示データを複数の確定グループに分類し、各確定グループから少なくとも１つの教示データを選出する教示データ選出ステップと、
前記プロセッサが、前記選出された教示データに対してデータ処理を実行した前記複数のデータ処理アルゴリズムを順位付けする順位付けステップと、
前記プロセッサが、前記順位付け処理において評価結果が最上位と判定されたデータ処理アルゴリズムを含めて複数のデータ処理アルゴリズムを生成し、当該複数のデータ処理アルゴリズムを前記複数個の教示データの全てに対して実行し、前記最上位と判定されたデータ処理アルゴリズムを含む複数のデータ処理アルゴリズムを評価する第２の評価ステップと、
前記プロセッサが、前記第２の評価ステップの評価結果に基づいて、最適なデータ処理アルゴリズムを決定するアルゴリズム決定ステップと、
を含むことを特徴とするデータ処理方法。
【請求項１３】
請求項１２において、
前記教示データは画像データであり、前記複数のデータ処理アルゴリズムは画像処理アルゴリズムであり、
前記教示データ選出ステップにおいて、前記プロセッサは、前記複数の画像処理アルゴリズムのそれぞれに対応する各教示データの評価結果を評価値ベクトルとし、当該評価値ベクトル間の距離に基づいて前記教示データを分類することを特徴とするデータ処理方法。
【請求項１４】
請求項１３において、
前記教示データ選出ステップは、
前記プロセッサが、前記評価値ベクトル間の距離が最小となる２つの教示データ同士を１つのグループに属するものとして分類し、複数の仮グループを生成するステップと、
前記プロセッサが、当該複数の仮グループに属する教示データの評価値ベクトルを用いて当該複数の仮グループの代表評価値ベクトルを生成するステップと、
前記プロセッサが、前記複数の仮グループの代表評価値ベクトル同士、或いは前記複数の仮グループのそれぞれの代表評価値ベクトルと前記複数の仮グループに属さない教示データの評価値ベクトルのうちベクトル間距離が最小となる仮グループ或いは教示データを１つのグループに属するものとして更なる仮グループを生成するステップと、
前記プロセッサが、全ての教示データが１つのグループに収まるまで前記更なる仮グループを生成する処理を繰り返すステップと、
前記プロセッサが、前記仮グループ或いは前記更なる仮グループに含まれる教示データの評価値の平均値と前記仮グループ或いは前記更なる仮グループに含まれる教示データの数との乗算値の差が最大となる仮グループ或いは更なる仮グループを特定するステップと、
前記プロセッサが、前記特定された仮グループ或いは更なる仮グループを生成する処理を実行する前までに生成された前記仮グループ及び前記更なる仮グループを前記複数の確定グループとするステップと、
前記プロセッサが、前記複数の確定グループから少なくとも１つの教示データを選出するステップと、
を含むことを特徴とするデータ処理方法。
【請求項１５】
請求項１２において、さらに、
前記プロセッサが、複数個の教示データの少なくも一部を一様に選出し、当該一様選出した教示データに対して前記用意された複数のデータ処理アルゴリズムを実行し、前記複数のデータ処理アルゴリズムを前記一様に選出された教示データによって評価する事前評価処理を実行するステップを含み、
前記プロセッサは、前記事前評価処理において評価結果が最上位と判定されたデータ処理アルゴリズムを含めた複数のデータ処理アルゴリズムで前記第１の評価ステップを実行することを特徴とするデータ処理方法。
【請求項１６】
請求項１２において、
前記教示データ選出ステップにおいて、前記プロセッサは、前記複数のデータ処理アルゴリズムに対応する前記複数個の教示データの全ての評価結果のうち最も評価値が悪い教示データから所定の距離内にある教示データと、当該所定の距離外にある教示データとに分類して前記確定グループを生成し、前記所定の距離内にある教示データを前記選出された教示データとすることを特徴とするデータ処理方法。
【請求項１７】
請求項１２において、
前記メモリは、複数個の対象データと、当該複数個の対象データのそれぞれにおける処理部分を示す複数個の正解データとの組み合わせで構成される複数個の教示データを格納し、
前記プロセッサは、前記複数個の対象データの処理結果と前記複数個の正解データに対するそれぞれの評価結果が所定の値の範囲内に収まるようにデータ処理アルゴリズムを最適化処理することを特徴とするデータ処理方法。
【請求項１８】
請求項１２おいて、
前記順位付けステップにおいて、前記プロセッサは、前記複数のデータ処理アルゴリズムに対応する前記複数個の教示データの全ての評価結果に基づいて、前記選出された教示データに対してデータ処理を実行した前記複数のデータ処理アルゴリズムを順位付けし、
ることを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、測長システム、欠陥検査システム、画像トラッキングシステム、及びデータ処理方法に関し、例えば、データ処理アルゴリズムを最適化するための技術に関するものである。
【背景技術】
【０００２】
半導体製造に係る検査装置や医用診断をはじめとして各種の画像処理による検査装置、計測装置が提案され、使用されている。これらは一般に、製造物を電子顕微鏡で撮影した画像、Ｘ線撮影した画像や光学カメラで取得した画像において、欠陥部位などを検出したり、計測すべき部位を画像内で抽出し特定したりするものである。
【０００３】
検査装置や計測装置では画像処理により自動的に部位を特定しようとするが、画像の大域的特性や特定しようとする対象の特性に合わせて画像処理アルゴリズムを構築し、それを最適化することは容易ではない。汎用的に数多くの画像サンプルに対して当該アルゴリズムが有効であることが期待される。しかし、種々の調整パラメータ数値や処理関数の組み合わせが数多くの画像サンプルに対して有効であるか否かの検証をしなければならず、最適なアルゴリズムを早期に構築するには熟練や豊富な経験を要していた。
【０００４】
以上の課題を改善するため、例えば特許文献１では、ユーザが多くの画像から選択した一部の画像に対して有効なアルゴリズムを自動選択し、そのアルゴリズムによる全画像の処理結果を表示する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２６２３５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示の方法は、ユーザの判断による画像の選択や全画像での処理結果の確認を前提としており、ユーザの知識や熟練が必要とされる。このため、十分な知識や経験を有しないユーザは、アルゴリズムを自動選択するために必要な画像を適切に選択することができない場合がある。
【０００７】
一般的に、アルゴリズムを検討する者は、数多くの画像サンプルから代表的と思われる少数の画像をいくつか選び出し、それら代表的画像に対して有効なアルゴリズムを構築して、その効果を検証した後に残りの数多くの画像サンプルでの有効性を検証するという手順によりしばしばアルゴリズム最適化の効率を上げている。この代表的な画像の選出は、見た目が類似する画像どうしをまとめることで分類してその一部を選択したり、あるいは多くの場合で有効に働きそうなアルゴリズムを予想し、適用できそうな画像サンプルであるか否かという観点で選択したりするというものである。
【０００８】
しかし、このような方法は、主観的、直観的であり効率が向上する選出を行えるようになるには知識や熟練を必要とする。画像サンプルの選出が不適切であれば、選出したサンプルに対して有効なアルゴリズムを構築できても、後に残りの数多くの画像サンプルでの有効性を検証したときには失敗が多く、アルゴリズムの検討をはじめからやり直すことになってしまうのである。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、数多くの画像サンプルに対して汎用的に有効な画像処理アルゴリズムの構築や最適化を自動的かつ高速に行うための技術を提供するものである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明によるデータ処理装置では、プロセッサが、複数個の教示データの全てに対して、用意された複数のデータ処理アルゴリズムを実行し、複数のデータ処理アルゴリズムに対応して複数個の教示データの全てを評価し、全教示データに対して最上位のデータ処理アルゴリズムを特定する第１の評価処理と、複数のデータ処理アルゴリズムに対応する複数個の教示データの全ての評価結果に基づいて、複数の教示データを複数の確定グループに分類し、各確定グループから１つの教示データを選択して、選出された教示データを生成する教示データ選出処理と、複数のデータ処理アルゴリズムに対応する複数個の教示データの全ての評価結果に基づいて、選出された教示データに対してデータ処理を実行した複数のデータ処理アルゴリズムを順位付けする順位付け処理と、全教示データに対して最上位のデータアルゴリズムと順位付け処理において評価結果が最上位と判定されたデータ処理アルゴリズムとを含めて改善された複数のデータ処理アルゴリズムを生成し、当該改善された複数のデータ処理アルゴリズムを複数個の教示データの全てに対して実行し、改善された複数のデータ処理アルゴリズムを評価する第２の評価処理と、第２の評価処理の結果に基づいて、最適なデータ処理アルゴリズムを決定するアルゴリズム決定処理と、を実行する。
【００１１】
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本発明の態様は、要素及び多様な要素の組み合わせ及び以降の詳細な記述と添付される特許請求の範囲の様態により達成され実現される。
【発明の効果】
【００１２】
本発明によれば、数多くの画像サンプルに対して汎用的に有効な画像処理アルゴリズムの構築や最適化を自動的かつ高速に行うことができるようになる。これにより、データ処理アルゴリズムの開発や調整のコストを抑制することができ、当該アルゴリズムを用いた検査や計測の精度を安定させることができるようになる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る画像処理装置の概略構成を示すブロック図である。
【図２Ａ】本発明の実施形態に係る画像処理装置のハードウェア構成を示す図である。
【図２Ｂ】正解データ設定手段としてのキーボード、マウス、ディスプレイ、スタイラスペンを示す図である。
【図３】本発明の第１の実施形態による画像処理アルゴリズム最適化処理を説明するためのフローチャートである。
【図４】本発明の第１の実施形態による画像処理アルゴリズム最適化処理の経過を説明するための図である。
【図５】本発明の第１の実施形態による画像処理アルゴリズム最適化処理の長時間に亘る経過を示す図である。
【図６】教示データ選出の概念図である。
【図７】本発明の実施形態による教示データ選出処理を説明するためのフローチャートである。
【図８Ａ】教示データ毎のアルゴリズム群による評価値の表の例を示す図である。
【図８Ｂ】段差値の概念を説明するための図である。
【図９】教示データの評価値ベクトル間の距離に基づく樹系図の例を示す図である。
【図１０】パターンマッチングに用いるテンプレート画像の例を示す図である。
【図１１】パターンマッチングに用いる被検索画像、および正解データの設定の例を示す図である。
【図１２】パターンマッチングの結果データから評価値を算出する一例を示す図である。
【図１３】パターンマッチングのアルゴリズム群による評価値の表の例を示すである。
【図１４】パターンマッチングの教示データとアルゴリズム群の関係を示す図である。
【図１５】教示データのクラスタリング結果の表示例を示す図である。
【図１６】半導体の検査画像と正解データ設定の様子を示す図である。
【図１７】欠陥分類の結果データから評価値を算出する一例を示す図である。
【図１８】分類アルゴリズム群による評価値の表の例を示す図である。
【図１９】欠陥分類の教示データとアルゴリズム群の関係を示す図である。
【図２０】トラッキングの結果データから評価値を算出する一例を示す図である。
【図２１】トラッキングアルゴリズム群による評価値の表の例を示す図である。
【図２２】トラッキングの教示データとアルゴリズム群の関係を示す図である。
【図２３】音声認識の結果データから評価値を算出する一例を示す図である。
【図２４】音声認識アルゴリズム群による評価値の表の例を示す図である。
【図２５】音声認識の教示データとアルゴリズム群の関係を示す図である。
【図２６】本発明の第２の実施形態による画像処理アルゴリズム最適化処理を説明するためのフローチャートである。
【図２７】本発明の第３の実施形態による画像処理アルゴリズム最適化処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００１５】
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【００１６】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【００１７】
なお、以後の説明では「テーブル」形式によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「ＤＢ」、「キュー」等について単に「情報」と呼ぶことがある。
【００１８】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【００１９】
（１）第１の実施形態
＜情報処理システムの構成＞
（i）機能ブロック図
図１は、本発明の実施形態によるデータ処理システム（画像処理システム）の機能ブロック図である。なお、本実施形態では、情報処理システムとして、製造物の検査を画像処理で自動的に行う検査システムを例に挙げて説明するが、これに限られるものではなく、後述するように様々なデータ処理に適用することができる。
【００２０】
画像処理システム１００は、正解設定部１０１と、正解データ格納部１０２と、評価部１０３と、撮像部１０４と、画像データ格納部１０５と、画像処理アルゴリズム実行部１０６と、画像処理の結果を格納する結果データ格納部１０７と、自動最適化部１０８と、アルゴリズム設定データ格納部１０９と、評価値格納部１１０と、選択機能部１１１と、を有している。
【００２１】
撮像部１０４は、処理対象（検査対象物）の画像を取得し、取得した画像データを画像データ格納部１０５に出力する。具体的には、電子顕微鏡、光学顕微鏡、Ｘ線撮影装置、あるいは他の光学イメージセンサによるカメラ等である。撮像部１０４については、アルゴリズム設定データ格納部１０９からの設定データによって感度や露光時間、歪み補正などが調整される。
【００２２】
撮像部１０４から取得された画像データは、ハードディクやメモリなどの記憶手段で構成される画像データ格納部１０５に格納される画像情報である。
【００２３】
画像処理アルゴリズム実行部１０６は、画像データ格納部１０５からの画像データを入力とし、所定の画像処理（例えば、欠陥検査処理）を行って、画像処理結果を結果データ格納部１０７に出力する。画像処理アルゴリズム実行部１０６は、アルゴリズム設定データ１０９に従って各種の画像処理機能の組合せやパラメータを選択して変更が可能でありコンピュータやプログラムで実現できる。同様に他の構成要素も例えば、マイクロプロセッサやハードディクやメモリ、ディスプレイ等で構成されたコンピュータやプログラムで実現できる。
【００２４】
なお、撮像部１０４及び画像処理アルゴリズム実行部１０６は、アルゴリズム設定データに基づいて撮像条件や処理内容を調整する。撮像部１０４に対する設定データは、例えば、露光時間、しぼり、焦点距離等である。また、画像処理アルゴリズム実行部１０６に対する設定データは、例えば、フィルタ係数、テンプレートのサイズ、マッチング方法の詳細内容（例えば、２段階処理：縮小画像でテンプレートマッチングし、その結果を踏まえて元サイズの画像でテンプレートマッチングする方法）等である。
【００２５】
結果データ格納部１０７は、製造物の欠陥領域を示す画像や位置合わせのためのマッチング結果の座標情報を格納する。
【００２６】
正解設定部１０１は、画像処理アルゴリズム実行部１０６に出力を期待する正解データを作成するものである。
【００２７】
評価部１０３は、正解データ格納部１０２からの正解データと結果データ格納部１０７からの結果データとを比較して評価結果としての評価値を評価値格納部１１０に出力する。評価値は、両データが合致するほど高評価となる。
【００２８】
なお、正解データは必ずしも必要ではなく、正解設定部１０１、正解データ格納部１０２は省略可能である。すなわち、評価値を求めるためには、正解データの代わりに、一定の評価基準が決まっており、その基準に従って画像データが評価されれば良い。この場合、画像データをある一定の基準で評価した結果の評価値が評価値格納部１１０に格納され、また後述の評価値ベクトルのパラメータとなる。例えば半導体パターンの寸法計測値のばらつきが小さくなるようなアルゴリズムに最適化する場合には、正解データが与えられず、代わりの評価基準として寸法計測値のばらつき量が採用される。
【００２９】
自動最適化部１０８は、評価値格納部１１０からの評価値を入力として、この評価値に基づいてアルゴリズム設定データを変更する。これにより、画像処理アルゴリズム実行部１０６における処理が最適化される。アルゴリズム最適化処理の詳細は後述する（図３等参照）。
【００３０】
また、自動最適化部１０８は、選択機能部１１１を制御して、多数の画像データの中から選んだものだけを画像処理アルゴリズム実行部１０６の入力にし、評価値を取得するようにしている。なお、自動最適化部１０８及び選択機能部１１１による画像データの選択処理についても詳細は後述する（図６乃至９参照）。
【００３１】
（ii）ハードウェア構成例
図２Ａは、図１に対応する、画像処理システムのハードウェア構成例を示す図である。図示されるように、画像処理システム１００は、コンピュータを用いて実現することができる。
【００３２】
図２Ａにおいて、画像処理システム１００は、各種プログラムの処理を実行するＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）等のプロセッサ２０１と、データを格納するためのメモリ／ＨＤＤ２０２と、キーボード、マウス、スタイラスペン等で構成される入力デバイス２０３と、プリンタやディスプレイ等で構成される出力デバイス２０４と、図１の撮像部１０４に相当する撮像装置２０５と、を有している。
【００３３】
プロセッサ２０１は、図１の画像処理アルゴリズム実行部１０６に相当する画像処理アルゴリズム実行プログラム２０１１、正解設定部１０１に相当する正解設定プログラム２０１２、評価部１０３に相当する評価プログラム２０１３、自動最適化部１０８に相当する自動最適化プログラム２０１４、及び選択機能部１１１に相当する画像選択プログラム２０１５のそれぞれを実行する。
【００３４】
メモリ／ＨＤＤ２０２は、撮像装置２０５によって取得される画像データ２０２１と、正解設定プログラム２０１２によって設定される正解データ２０２２と、画像処理アルゴリズム実行プログラム２０１１の実行結果である結果データ２０２３と、評価プログラム２０１３による評価結果である評価値２０２４と、撮像装置２０５の設定データや画像処理アルゴリズム実行プログラム２０１１の設定データであるアルゴリズム設定データ２０２５と、を格納している。図２Ａにおいては、それぞれのデータや情報は、１つのメモリ／ＨＤＤに格納される形態となっているが、別々のメモリやＨＤＤに格納されるようにしても良い。
【００３５】
撮像装置２０５は、電子顕微鏡、光学顕微鏡、Ｘ線撮影装置、あるいは他の光学イメージセンサによるカメラ等に該当する。撮像装置２０５は、静止画だけでなく動画を撮像するものであっても良い。
【００３６】
また、図２Ｂは、正解設定プログラム２０１２（正解設定部１０１）に与えられるデータを入力するための具体的な手段（入力デバイス２０３）の例を示す図である。入力デバイス２０３の例として、キーボード２０３１、マウス２０３２、スタイラスペン２０３３等が挙げられる。キーボード２０３１は、画像データ内の位置座標や製造物の欠陥の種別を数値で入力するものである。マウス２０３２やスタイラスペン２０３３は、出力デバイスであるディスプレイ２０４の画面上で画像データ内の位置座標を指定するものである。マウス２０３２やスタイラスペン２０３３は一般にポインティングデバイスと呼ばれるものの例であり、トラックボールやタッチパッドなど他のポインティングデバイスによって座標を指定しても良い。正解データはこれらの手段により作成できる。
【００３７】
＜画像処理アルゴリズム最適化処理＞
図３は、自動最適化部１０８（自動最適化プログラム２０１４）で実行される画像処理アルゴリズム最適化処理の内容を説明するためのフローチャートである。なお、以下では、動作主体を自動最適化プログラム２０１４としているが、自動最適化部１０８やプロセッサ２０１と置き換えても良い。
【００３８】
（i）ステップ３０１
まず、自動最適化プログラム２０１４は、初期のアルゴリズム群を生成する（ステップ３０１）。ここで、アルゴリズム群とは概念的な用語であり、実際には画像処理アルゴリズム実行部１０６の処理を指定するアルゴリズム設定データを複数種類用意したり、同実行部１０６における処理に関する異なる手順や内容を複数用意したりすれば良い。過去に実績があり、効果が期待できそうなアルゴリズムに相当する設定データを予め複数指定しておいても良いし、乱数にもとづいて設定データを多数生成しても良い。本実施形態では５０個一定のアルゴリズム群を生成する。つまり、本発明において、複数のアルゴリズムとは、手順等のアルゴリズムの内容は同一だが設定パラメータが異なるアルゴリズムと、設定パラメータは同一だがアルゴリズムの内容が異なるアルゴリズムの少なくとも一方を含む概念であるとする。
【００３９】
（ii）ステップ３０３
自動最適化プログラム２０１４は、画像処理アルゴリズム実行プログラム２０１１及び評価プログラム２０１３を用いて、用意された全教示データについて評価を行う（ステップ３０３）。ここで、教示データとは、入力される画像データと、それに対応する正解データの組で表されるデータを意味する。言い換えれば、アルゴリズムを最適化するために用いる入力情報と出力期待値の組であり、最適化を学習とみなして試験問題と用意された模範解答に相当するという意味の言葉である。また、正解データがない場合には、教示データとは入力される画像データ自体を意味する。
【００４０】
具体的には、まず、画像処理アルゴリズム実行プログラム２０１１は、多数のサンプルの画像データ２０２１（画像データ格納部１０５に格納される画像データ）を入力して、ステップ３０１で生成したアルゴリズム群の全てにより画像処理アルゴリズム実行プログラム２０１１（画像処理アルゴリズム実行部１０６）の処理を実施する。撮像部１０４の調整を行うときは撮像部での画像データ２０２１の取得から実施する。そして、評価プログラム２０１３（評価部１０３）は、出力された全ての結果データ２０２３について評価を行い、評価値２０２４を得る。このステップで得る評価値２０２４の総数は（画像データ２０２１のサンプル数）×（アルゴリズムの数）である。評価値の例としては、後述の図１２、１７、２０、及び２３に示されるものがある。
【００４１】
（iii）ステップ３０４
自動最適化プログラム２０１４は、ステップ３０３で得られた全教示データの評価結果に基づいてアルゴリズムの順位づけを行う（ステップ３０４）。ステップ３０３で得られた評価値２０２４が良いほど上位に各アルゴリズムの順位がつけられる。１つのアルゴリズムについて教示データの数だけ評価値２０２４を得ているが、順位付けには平均値（あるいは総和）や目標値に達している評価値の割合を基にすれば良い。平均値を用いると評価値に著しいばらつきがあっても順位が上位になるケースもあるが、目標値に達している評価値の割合を基に順位づけを行えばより正確な順位づけを実行することができるようになる。
【００４２】
（iv）ステップ３０５
自動最適化プログラム２０１４は、最適化処理を終了するか判定する（ステップ３０５）。順位付けしたアルゴリズムで最上位のものがユーザの期待を満足するものであれば終了する（ステップ３０６）。具体的には、予め評価値平均の目標をユーザが設定しておき、その目標値に達していることで判定すればよい。また、結果データや評価値平均の推移グラフを表示させてユーザが監視できるようにし、ユーザが随時判断してキーボードから終了指示を行い、このステップで指示を検知することで終了させることもできる。なお、本発明の実施形態による自動最適化処理では、評価値が最上位となるアルゴリズムは必ず次のアルゴリズム群に残されるため、評価平均の推移グラフは右肩上がりとなっている。
【００４３】
（v）ステップ３０７
ステップ３０４で最上位のアルゴリズムであるとされたものがユーザの期待を満足するものでないため最適化処理を終了することができないと判断された場合（ステップ３０５でＮｏの場合）、自動最適化プログラム２０１４は、ステップ３０３で得られた全教示データの評価結果を用いて、教示データの選出を行う（ステップ３０７）。多数の画像データと正解データを用いての評価を繰り返すコストを抑えるために代表的なものだけを選出し、選出したものだけで評価を繰り返す最適化を行うための準備である。このステップの詳細は後述する（図６乃至９参照）。
【００４４】
（vi）ステップ３０９
自動最適化プログラム２０１４は、ステップ３０７で選出した教示データの評価結果（選出された教示データについては既にステップ３０３で評価値が算出されている）で５０個のアルゴリズムの順位づけを行う（ステップ３０９）。ステップ３０９では、評価値２０２４が良いほど上位に各アルゴリズムの順位がつけられる。１つのアルゴリズムについては、選出した教示データの数だけ評価値２０２４を得ているが、順位付けには平均値（あるいは総和）や目標値に達している評価値の割合を基にすれば良い。この点は、上述のステップ３０４と同様である。
【００４５】
（vii）ステップ３１０
自動最適化プログラム２０１４は、選出した教示データでの最適化処理を終了するか判定する（ステップ３１０）。順位付けしたアルゴリズムで最上位のものがユーザの期待を満足するものであれば全教示データ評価のループへ抜ける（ステップ３０２）。ユーザの期待を満足するかどうかは、ステップ３０５と同様に、ユーザが予め設定した評価値平均の目標値に達していることにより判定してもよい。ただし、必ずしも達成可能かわからない場合には適当ではないので、本実施形態では、選出教示データでの最適化のループ繰り返し回数の上限値を設定してその上限値に達している否かで判定することとしている。
【００４６】
（viii）ステップ３１１
自動最適化プログラム２０１４は、選出した教示データでの最適化処理を終了しない場合は、アルゴリズム群の変更を行う（ステップ３１１）。具体的には、自動最適化プログラム２０１４は、アルゴリズム群の評価値２０２４を参照して、改善が見込まれる変更（ここでは任意の変更を改善が見込まれる変更としている）を加えて、変更アルゴリズム群を生成する。選出教示データ評価値の平均が高いアルゴリズム（設定データ）を中心に選んで、画像処理アルゴリズム実行プログラム２０１１で処理する画像処理機能の組合せやパラメータ数値の部分的小変更を加えればよい。例えば、遺伝的アルゴリズムや遺伝的プログラミングと呼ばれる手法に従って、確率的に選び出した２つのアルゴリズムを組合せて新たなアルゴリズムを生成したり（交叉）、乱数によって変更を加えたアルゴリズムを生成する（突然変異）。あるいは、局所解のようなものがないことが解っている場合には最上位のアルゴリズムを基に乱数で変更部分を選んで小変更を加えたアルゴリズムを多数生成すればよい。なお、最も良かったアルゴリズムを保存するため、変更アルゴリズム群にはステップ３０９の順位づけで最上位であったアルゴリズムは変更せずに変更アルゴリズム群に追加される。また、新たな変更アルゴリズム群でのアルゴリズムの総数は本実施形態ではステップ３０１と同様に５０個で良いものとする。
【００４７】
（ix）ステップ３０８
自動最適化プログラム２０１４は、変更アルゴリズム群の評価を行うように評価プログラム２０１３に指示し、評価プログラム２０１３はその指示に応答し、ステップ３０７で選出した教示データを用いて変更アルゴリズム群の評価を行う（ステップ３０８）。ステップ３０３と同様の処理だが、選出した教示データについてだけ評価すれば良く、ステップ３０３より低コストで行える。ステップ３０８の処理の後は、処理はステップ３０９に移行し、ステップ３０９乃至３１１の処理が繰り返される。
【００４８】
（x）ステップ３０２
ステップ３１０で最適化を終了した場合（ステップ３１０でＹｅｓの場合）、処理はステップ３０２に進む。
【００４９】
ステップ３０２では、自動最適化プログラム２０１４は、新アルゴリズム群を形成する。ステップ３０２での新アルゴリズム群は、ステップ３０７で選出した教示データを用いてアルゴリズムの評価を行う処理（最適化ループ（Ｓ３０９→Ｓ３１０→Ｓ３１１→Ｓ３０８・・・）のステップ３１１で最後に生成されたアルゴリズム群にステップ３０４で最上位だったアルゴリズムを加えたものである。なお、アルゴリズムの総数を５０個に揃えるため、Ｓ３０４で最上位とされたアルゴリズムの追加をする代わりにステップ３１１で生成された変更アルゴリズム群で最下位のアルゴリズムは除かれることになる。
【００５０】
（xi）ステップ３０３乃至３０５
自動最適化プログラム２０１４は、引き続いて、評価プログラム２０１３を用いて、ステップ３０３の全教示データ評価を行い、ステップ３０４及び３０５の全体処理を繰り返す。つまり、ステップ３０２で生成したアルゴリズム群について最適なアルゴリズムが存在するか検証することになる。
【００５１】
以上のように、全教示データを用いての評価と自動選出した教示データでの評価を組み合わせて最適化を行えば、ユーザの知識や熟練を必要とせず、全教示データでの評価だけを繰り返すよりもアルゴリズム評価の総数を減少させ、早期に最適化を完了させることができるようになる。
【００５２】
なお、本実施形態では、アルゴリズム群として用意するアルゴリズムの総数は５０個としたが、一般にはなるべく多いほど良い。ただし、画像処理アルゴリズム実行部１０６で処理する画像処理機能の組合せの数やパラメータ数値の範囲がごく限られるならば逆に少なくても十分である。また、ステップ３１１のアルゴリズム群変更の方法も例示しただけであり本発明を限定するものでなく、アルゴリズム群の改善が見込める変更方法であれば他の方針に従ってよい。
【００５３】
＜最適化処理の時系列＞
図４（上部）は、図３のフローチャートに示される画像処理アルゴリズム最適化処理を時系列で説明するための図である。また、図４（下部）は、アルゴリズム群の変更の流れを模式的に示したものも含んでいる。なお、図４において、上部の処理結果として下部のアルゴリズム群が点線で対応付けられている。
【００５４】
まず、ステップ３０１の処理により、初期のアルゴリズム群４０１が生成される。
そして、全教示データ４００及びアルゴリズム群４０１を用いて、ステップ３０３における評価が実行される。その評価結果でアルゴリズムの順位付け処理（Ｓ３０４）が実行される。この順位づけ処理の結果がアルゴリズム群４０２である。アルゴリズム群４０２の中で最上位のアルゴリズムは後の新アルゴリズム群形成の処理（Ｓ３０２）に加えられるものである。
【００５５】
最適化処理を終了せずに教示データ選出処理（Ｓ３０７）が行われる。そして、選出された教示データでの評価値により順位付け処理（Ｓ３０９）を行うと、アルゴリズム群４０３が生成される。
【００５６】
続いて、アルゴリズム群変更処理（Ｓ３１１）が行われ、変更アルゴリズム群４０４が生成される。
【００５７】
さらに、選出教示データ４０６を用いて変更アルゴリズム群４０４が評価され（Ｓ３０８）、順位づけしたアルゴリズム群４０５が生成される。
以降、同様の処理が繰り返され、アルゴリズムが最適化される。
【００５８】
図５は、図４よりもさらに長期にわたる処理を時系列で示す図である。図５においては、選出された教示データを用いた最適化終了判定処理（Ｓ３１０）の回数（Ｓ３０９→Ｓ３１０→Ｓ３１１→Ｓ３０８のループの回数）を４回とし、アルゴリズム群変更処理（Ｓ３１１）と選出された教示データ評価（Ｓ３０８）をそれぞれ４回実施したら新アルゴリズム群形成処理（Ｓ３０２）に移行させるようにしている。このように最適化処理の全体ループを繰り返し、新アルゴリズム群形成処理（Ｓ３０２）を１回目、２回目、３回目、・・・と行う。最終的にｎ回目の新アルゴリズム群形成処理（Ｓ３０２）を行った後で、全教示データ評価処理（Ｓ３０３）と順位付け処理（Ｓ３０４）を実行した結果、最上位のアルゴリズムがユーザの期待を満足するものであれば最適化処理が終了する。最終アルゴリズム出力５０１はそのときの最上位のアルゴリズムに相当する。
【００５９】
＜教示データ選出処理の詳細＞
図６乃至９を用いて、教示データ選出処理（Ｓ３０７）の詳細について説明する。
（Ａ）教示データ選出処理の概要
図６は、教示データ選出処理（Ｓ３０７）の概要を示す図である。
まず、全教示データ４００をいくつかのグループ毎に分け分類する。
次に、各分類から代表として１つの教示データを選択する。こうして分類したグループの数だけの選出教示データを決定する。
大まかにはこのような方法で教示データを選出すれば、性質の偏りが少なく全教示データからまんべんなく代表的な教示データを選出できる。
【００６０】
（Ｂ）教示データ選出処理の詳細
図７は、教示データ選出処理（Ｓ３０７）の詳細を説明するためのフローチャートである。
【００６１】
（i）ステップ７０１
自動最適化プログラム２０１４は、各々のアルゴリズムによる各々の教示データについての評価値から、教示データ毎の評価値ベクトルを得る（Ｓ７０１）。全教示データ評価処理（Ｓ３０３）において、ある１つの教示データについては全アルゴリズムの数だけ評価値が得られているが、これらの評価値を要素にして１つのベクトル（評価値ベクトル）として扱うということである。なお、要素の並べ方（アルゴリズムとの対応）は全ての評価値ベクトルで統一させておく。
【００６２】
図８は、評価値ベクトルの例を示す図である。全教示データがＮ個あり、個々の教示データはｄ１〜ｄＮである。またアルゴリズム群の総数がＭ個であり、個々のアルゴリズムはａ１〜ａＭである。そして各教示データについての各アルゴリズムの評価値はｖ１１〜ｖＭＮである。このとき各々の教示データの評価値ベクトルＶｄ１〜ＶｄＮは（ｖ１１，ｖ２１，…，ｖＭ１）〜（ｖ１Ｎ，ｖ２Ｎ，…，ｖＭＮ）である。
【００６３】
（ii）ステップ７０２
自動最適化プログラム２０１４は、評価値ベクトル間の距離が最も短い２つの教示データ同士を類似性があるものとみなしてリンクを張る（ステップ７０２）。単独の教示データ同士だけでなく、後述のグループとの距離、グループ間の距離も対象に含む。ベクトル間の距離としてはマンハッタン距離を用いる。つまり、例えば、評価値ベクトルＶｄ１と評価値ベクトルＶｄ２のベクトル間の距離とは、（｜ｖ１１−ｖ１２｜＋｜ｖ２１−ｖ２２｜＋｜ｖ３１−ｖ３２｜＋・・・＋｜ｖＭ１−ｖＭ２｜）と表すことができる。
【００６４】
複数のアルゴリズムの評価値からなる評価値ベクトルは、教示データの性質を示している。従って、本発明の実施形態では、２つの教示データの評価値ベクトル間の距離が短いほど似た性質を持っており、これらを１つのグループに分類して処理することとしている。
【００６５】
（iii）ステップ７０３
自動最適化プログラム２０１４は、ステップ７０２でリンクを張った２つの教示データやグループに含まれる全ての教示データの評価値を平均し、新たなグループの評価値ベクトルとする。以後、新たなグループを１つの教示データと同等に扱う（ステップ７０３）。例として前の評価値ベクトルＶｄ１と評価値ベクトルＶｄ２で云えば、新たなグループの評価値ベクトルＶｄ（１、２）は（（ｖ１１＋ｖ１２）／２，（ｖ２１＋ｖ２２）／２，（ｖ３１＋ｖ３２）／２，・・・，（ｖＭ１＋ｖＭ２）／２）である。
【００６６】
ここで、新たなグループを１つの教示データと同等に扱うとは、ステップ７０２で距離が最も短い２つの教示データ同士を検索する際の対象にするということを意味する。一方、リンクが張られた元の教示データや元のグループは対象から外す。
【００６７】
（iv）ステップ７０４
自動最適化プログラム２０１４は、ステップ７０２でリンクを張った２つの教示データやグループ各々の最上位アルゴリズムによる評価値（本実施形態では評価値ベクトルの要素の１つ）の差分に、評価値が低い方の教示データやグループに教示データの数を掛けた数値をそのリンクにおける「段差値」として設定する（ステップ７０４）。ここで用いる最上位アルゴリズムは、全教示データの評価結果で順位付け（Ｓ３０４）したときに最上位にしたアルゴリズムである。段差値は最適化を優先させるグループ分けの目安になる。
【００６８】
段差値の例を、１つの教示データの評価値ベクトルＡと３つの教示データを含むグループの評価値ベクトルＢで説明する。最上位アルゴリズムの評価値を評価値ベクトル先頭の要素にしているとすると、ベクトルＡの先頭要素Ａ０がベクトルＢの先頭要素Ｂ０より小さいときは、段差値は（｜Ａ０−Ｂ０｜×１）となる。逆にＢ０がＡ０より小さいときは、段差値は（｜Ａ０−Ｂ０｜×３）である。
【００６９】
また、図８Ｂに示されるような評価値を取る教示データの各グループを例として考える。ここで、各グループの評価値の平均を、グループ１についてはＡＶ１、グループ２についてはＡＶ２、グループ３についてはＡＶ３とする。この場合、グループ１とグループ２の間、及びグループ２とグループ３の間の何れにグループを隔てる段差があるか（段差値が大きいか）を検証する。グループ１と２の段差値は、｜ＡＶ１−ＡＶ２｜×（グループ１の教示データ数）＝Ｓ１部分の面積として表される。また、グループ２と３の段差値は、｜ＡＶ２−ＡＶ３｜×（グループ３の教示データ数）＝Ｓ２部分の面積として表される。評価値平均の差分値は、グループ２と３における差の方がグループ１と２における差よりも大きいが、段差値としてはグループ１と２の間の方が大きいことが分かる。よって、図８Ｂのような例では、グループ１と２の間に段差があり、グループ１を独立のグループとして扱った方が効率的な教示データが選出できることが分かる。このように、段差値（段差評価値）とは、最上位アルゴリズムで改善を期待する教示データ群を判別するための目安である。この段差値によって、教示データ全体で、平均評価値を上げるために最も改善すべきグループを特定することができるようになる。上記の例では、段差値を計算することにより、グループ１に含まれる教示データ群が独立のグループとして扱うことが特定された。
【００７０】
（v）ステップ７０５
自動最適化プログラム２０１４は、１つのグループに全ての教示データが収まったか判定する（ステップ７０５）。例えば教示データの総数がＮとすると、張ったリンクの総数がＮ−１であれば１つのグループに収まっていると判定できる。
【００７１】
１つのグループに全ての教示データが収まっていなければ（ステップ７０５でＮｏの場合）、自動最適化プログラム２０１４は、ステップ７０２からの処理を繰り返す。
【００７２】
１つのグループに全ての教示データが収まっていれば（ステップ７０５でＹｅｓの場合）、処理はステップ７０６に移行する。
【００７３】
（vi）ステップ７０６
自動最適化プログラム２０１４は、最も段差値が大きいリンクを検索し、そのリンクを張る以前に形成したグループ群で分類を決定する（ステップ７０６）。段差値が大きいリンクは分断して教示データやグループを独立させるべきものと判断するのである。この処理で分類は完了する。
【００７４】
（vii）ステップ７０７
最後に、自動最適化プログラム２０１４は、画像選択プログラム２０１５を用いて、分類毎に１つの教示データをランダムに選出する（ステップ７０７）。
以上で教示データ選出処理（Ｓ３０７）を完了する。
【００７５】
（Ｃ）教示データ選出処理の例
図９は、図８に示した教示データｄ１〜ｄＮについてリンクを張り、１つのグループに収めた様子（例）を説明するための図である。
【００７６】
最初の１つ目のリンクを教示データｄ１とｄ２に張り、２つ目のリンクをｄ５とｄ６に張る。３つ目のリンクはｄ１とｄ２からなるグループとｄ３に張る。さらに、４つ目のリンクはｄ１〜ｄ３のグループとｄ５〜ｄ６のグループに張る。リンクを張り続けて最終的にＮ−１回目で全ての教示データをリンクでつなぎ１つのグループにする作業を終える。ここで仮に４つ目のリンクの段差値が最大であったときは、分類は３つ目までのリンクで形成したグループで決定し、｛ｄ１、ｄ２、ｄ３｝、｛ｄ４｝、｛ｄ５、ｄ６｝、｛ｄ７｝、…となる。そして、各グループから１つずつ教示データを選出して、例えば｛ｄ２，ｄ４，ｄ５，ｄ７，…｝が選出教示データになる。
【００７７】
以上のように教示データを選出すれば、性質の偏りが少なく全教示データからまんべんなく代表的な教示データを選出できる。そして、全教示データより数少ない教示データで最適化を進めることができるようになる。
【００７８】
なお、以上の教示データ選択の方法は例示として挙げるものであり、これにより本発明を限定的に解釈するものではない。階層的に教示データを関係づけるのではなく、例えば単純に評価ベクトル間の距離が予め設定した一定値以下であれば同類としてグループに扱うという方法でも教示データ数を削減して最適化を進めることができる。あるいは一定値ではなく、評価ベクトル間の距離の分布を調査して一定割合以下のもの同士をグループにするという方法でもよい。
【００７９】
これらは階層的方法よりも分類の妥当性が落ちるものの簡易な方法である。また、グループ間の距離を評価値ベクトルの平均で測るのではなく、グループに属する個々の教示データとの距離で最小のものや最大のものなどを用いても良い。
【００８０】
さらに、評価値ベクトル間の距離は目的の画像処理アルゴリズムや評価値の算出方法にあわせ、マンハッタン距離ではなくユークリッド距離を用いても良い。
【００８１】
また、必ず段差値が最大のリンクを選択して分類を決定するのではなく、確率的に段差値が大きいリンクほど選択されるようにしても良い。そうすれば評価値の算出方法が適切さを欠いている場合も最適化を進められる可能性が高まる。あるいはなるべく分類グループの数を減らして選出教示データの数を少なくするように段差値にリンク順番の重みを掛けてから確率的にリンクを選択しても良い。または予め分類グループの数を設定しておき、数が合うリンクの箇所を選択しても良い。
【００８２】
さらに、評価値ベクトルの要素にアルゴリズム群の全ての評価値を用いるのではなく限定して要素数（ベクトルの次元数）を削減することによって、距離計算のコストを抑えても良い。例えばある２つのアルゴリズムにおいて、全ての教示データについての評価値が同一であれば、一方だけのアルゴリズムの評価値が評価値ベクトルの要素であれば良いし、全ての教示データについて評価値が等しいアルゴリズムの評価値も要素にする必要はない。あるいは各教示データ毎に最大の評価値を得ているアルゴリズムを選出して評価値ベクトルの要素にするという限定方法や、単純に最上位から一定数のアルゴリズムによって評価値ベクトルを構成するという限定方法に依っても良い。
【００８３】
なお、ステップ７０７においては、分類毎に１つの教示データをランダムに選出するというのではなく、グループ内で評価値が高いものや低いものを加えたり、あるいは評価値に従った確率的選択方法をとってグループ内から選出しても良い。
【００８４】
＜本発明の適用例＞
以降、本発明をより具体的な適用例で説明する。
（Ａ）テンプレートマッチングへの適用例
図１０乃至１４は、本発明をテンプレートマッチングに適用した例を示す図である。
【００８５】
（i）テンプレート画像の例
図１０は、テンプレート画像１００１の一例を示している。テンプレートマッチングでは、アライメントマーク１００２（十字形）と同様のものを被検索画像内で探索し、その位置を出力結果として得て位置検出するための画像処理である。
【００８６】
（ii）被検索画像の例
図１１は、対応する被検索画像の一例を示す図である。図１１に示される画面は、ディスプレイ２０４に表示されたウィンドウであり、領域１１０１の内側が被検索画像である。被検索画像１１０１にはアライメントマーク１１０２があり、テンプレート画像１００１に対応する領域は点線で示した１１０３の位置である。正解データとしてユーザは座標１１０４をスタイラスペン２０３３等で設定する。あるいはキーボード２０３１により数値で入力する（１１０５）。
以上のようにテンプレートマッチングではテンプレート画像と被検索画像、そして正解データであるマッチング結果の位置座標が教示データに該当する。
【００８７】
（iii）テンプレートマッチング評価
図１２は、テンプレートマッチングにおける評価部１０３が行う評価値の算出方法の例を説明する。
【００８８】
テンプレート画像１１０１と被検索画像１２０１を、テンプレートマッチングの画像処理の入力画像データとして与えたとき、結果として複数の位置座標が候補として順位付きで結果データになって出力されることを想定している。
【００８９】
結果データの例として、候補第１位データ１２０２、候補第２位データ１２０３、候補第３位データ１２０４の３つの座標が得られたとする。また、この例は、正解データを候補第２位データ１２０３の位置座標とし、候補１位には選ばれなかったという例である。
【００９０】
ここでは、評価値の算出方法の一例として、１００／（正解位置の候補順位）を挙げる。つまり、ここでの結果データでは正解位置が第２位であるので、１００／２＝５０が評価値となる。もし、正解位置の候補順位が第１位であれば１００／１＝１００で最大となる。なお、正解が候補に挙げられずに無かった場合には評価値を０にすればよい。
【００９１】
（iv）評価値ベクトルの例
図１３は、以上のような評価値算出方法を用いて複数のテンプレートマッチングを実行することにより、得られる多数の教示データ毎の評価値ベクトル例を示す図である。全教示データが６０個あり、個々の教示データはｐ１〜ｐ６０である。
【００９２】
また、アルゴリズム群の総数が５０個であり、個々のアルゴリズムはａｐ１〜ａｐ５０である。そして、各教示データについての各アルゴリズムの評価値は表の各欄の０〜１００の値である。このとき各々の教示データの評価値ベクトルＶｄ１〜Ｖｄ６０はそれぞれで横に並ぶ評価値を要素にしたものである。
【００９３】
これらの評価値ベクトルを用いてベクトル間の距離を算出し教示データ選出を行えばよい。
【００９４】
（v）評価対象となるテンプレートマッチングアルゴリズムの例
図１４は、前処理フィルタを組合せることにより生成される複数のテンプレートマッチングのアルゴリズムの例を示す図である。
【００９５】
図１４に示されるように、基本的なテンプレートマッチングの処理１４０２の前段で、入力画像データに対して前処理として各種のフィルタ処理１４０１を実行する。画像処理フィルタとは、例えば、エッジ強調やノイズ低減処理、コントラスト調整など良く知られる画質調整処理である。これらのフィルタの組合せや各フィルタのパラメータのバリエーションを複数のアルゴリズムａｐ１〜ａｐ５０として用いるのである。あるいはテンプレートマッチングの処理１４０２について各種のパラメータのバリエーションを用いても良い。
【００９６】
以上説明したように正解データを設定し、妥当な評価値を算出させて教示データ選出を行えば良い。そしてテンプレートマッチングのアルゴリズムについて本発明による最適化を行えば、全教示データでの評価だけを繰り返すよりもアルゴリズム評価の総数を減少させ、早期に最適化を完了させることができるようになる。
【００９７】
（vi）教示データの分類
図１５は、分類の過程の表示例を示す図であり、図７で説明した階層的グループの形成を被検索画像について１つ１つ囲んで示したものである。このようなグループ形成画像を表示する機能を設けておくことにより、アルゴリズムを検討するものにとって画像の特性としてどのような分類傾向があるかを理解しやすくなる。例えば、用意した画像処理フィルタの組合せでは結局満足できる結果にならない場合でもヒントを得やすくなる。
【００９８】
（Ｂ）欠陥分類への適用例
図１６乃至１９は、本発明を欠陥分類に適用した例を示す図である。欠陥分類とは製造物を検査する装置において何らかの製造物の欠陥を検出した際にその欠陥が例えば異物の付着なのか、それとも製造プロセスにおける不良なのかを自動分類する処理のことである。
【００９９】
（i）欠陥画像の例
図１６は、製造物（半導体デバイス）の欠陥部位をとらえた検査画像の一例を示す図である。
【０１００】
領域１６０１は、ディスプレイ２０４に表示されたウィンドウであり、当該領域の内側に検査画像が表示されている。検査画像には異物の付着１６０３と製造不良部位１６０５がある。これらに対し、正解データとしてユーザは異物の付着１６０３に対して座標１６０４を、製造不良部位１６０５に対しては座標１６０６をスタイラスペン２０３３で設定する。さらに、キーボード２０３１により数値で欠陥の分類種別等を選択して入力する（領域１６０２参照）。
【０１０１】
以上のように欠陥分類では検査画像、そして正解データである欠陥部位の位置座標と分類種別等が教示データに該当する。
【０１０２】
（ii）欠陥評価
図１７は、欠陥分類における評価部１０３が行う評価値の算出方法の例を示す図である。
【０１０３】
異物が付着した部位をとらえた検査画像１７０１や配線がショートしたり断線したりしている部位をとらえた検査画像１７０２を欠陥分類の画像処理の入力画像データとして与えたとき、結果として１つ以上の結果部位の位置情報とその位置の欠陥の分類種別、およびサイズが結果データとして出力される。
【０１０４】
ここでは、結果データの例として３種の大分類と個々の小分類があるとしている。大分類とは前述の異物付着と製造不良、加えて外的要因の可能性があるスクラッチ（傷の類）の種別である。異物付着についてはさらに細かく小分類として異物が金属か化学物質の種別が出力される。製造不良については小分類としてショート、断線、変形の種別が出力される。これら大小の種別だけでなく欠陥部位のサイズが出力される。
【０１０５】
評価値の算出方法の例として、（大分類正解度×４０)＋(小分類正解度×３０)＋(サイズ正解度×３０)とする。大分類正解度は予め用意した正解データと一致すれば１、不一致であれば０である。小分類正解度は大分類正解度が０のときは０であるが、大分類正解度が１のときは判定を行い正解データと一致すれば１、不一致であれば０である。サイズ正解度は正解データのサイズと一致すれば１、差が大きいほど０に近いとする。
【０１０６】
（iii）評価ベクトルの例
図１８は、図１７に示す評価値算出方法により複数の欠陥分類のアルゴリズムを評価したときに得られる、多数の教示データ毎の評価値ベクトルの例を示す図である。
【０１０７】
この例では、全教示データが３３個あり、個々の教示データはｐ１〜ｐ３３で表されている。また、この例では、アルゴリズム群の総数が４０個であり、個々のアルゴリズムはａｒ１〜ａｒ４０で表されている。そして、各教示データについての各アルゴリズムの評価値は表の各欄の１２〜１００の値となっている。このとき各々の教示データの評価値ベクトルＶｄ１〜Ｖｄ３３はそれぞれで横に並ぶ評価値を要素にしたものである。これらの評価値ベクトルを用いてベクトル間の距離を算出し教示データ選出を行えばよい。
【０１０８】
（iv）評価対象となる欠陥分類アルゴリズムの例
図１９は、各種特徴値の組合せ演算を行う、複数の欠陥分類のアルゴリズムの例を示す図である。ここで、各種特徴値とは、例えば複雑度や凹凸性、モーメント特徴といった画像処理における形状特徴を示すものや、粗さ、線状性、規則性といったテクスチャ特徴、あるいは画像データがカラーであれば色合の特徴、またはスペクトル分布特徴などである。
【０１０９】
これら特徴値１９０１を１つ以上用いて四則演算や整数化、絶対値化などごく基本的な演算やパラメータとしてしきい値を与えて分類結果の数値を結果として出すように演算１９０２を組み合わせてアルゴリズムを構成する。これらの各種特徴値や演算の組合せや演算のパラメータのバリエーションを複数のアルゴリズムａｒ１〜ａｒ４０として用いている。図示や説明はしないが、欠陥部位のサイズ算出もアルゴリズムに含んで処理するものである。
【０１１０】
以上説明したように、正解データを設定し、妥当な評価値を算出させて教示データ選出を行えば良い。そして欠陥分類のアルゴリズムについて本発明による最適化を行えば、全教示データでの評価だけを繰り返すよりもアルゴリズム評価の総数を減少させ、早期に最適化を完了させることができるようになる。
【０１１１】
（Ｃ）トラッキング処理への適用例
図２０乃至２２は、本発明をトラッキング処理（モーションキャプチャなどとも呼ばれるもの）に適用した例を示す図である。数多くの時系列画像からなる動画像において、特定の物体が移動するときの位置を検知する処理である。各種の検査装置においての高速高精度な位置決めや医用分野における細胞観察など広範囲の分野に用いられる技術である。トラッキングアルゴリズム自体は元来リアルタイムで使用できることが期待されていて高速化が図られているが、評価対象の動画像は多様で長時間にせざるを得ない。このためアルゴリズムの最適化処理にはコストがかかるという課題がある。
【０１１２】
そこで、本発明をトラッキング処理に適用し、迅速にアルゴリズムの最適化を図れば、コストを抑えることが可能となる。
【０１１３】
（i）時系列画像群の例、及び評価方法の例
図２０は、一連の時系列画像群２００１の例を示す図である。図２０では、分かり易い例として、昆虫が飛び回る様子を動画撮影したときのものを１フレームずつ順に並べたものが示されている。
【０１１４】
図２０において、昆虫は少しずつ移動しており、各画像内での位置が異なる。これらの各画像について昆虫の正しい位置を正解データ２００３として設定しておく。これに対してトラッキング処理による検知位置の結果２００４は多少のずれが生じることがある。ずれが少ないほど良いトラッキング処理である。正解データ２００３「二重丸」とトラッキング結果２００４「十字」が判別しやすいように下部の一連の画像領域２００２に示したが、画像領域群２００２と時系列画像群２００１は同一のものである。
【０１１５】
本発明を適用して評価値を算出する場合に先のテンプレートマッチングのように単純に１枚ずつの画像データで評価するのは適当ではない。トラッキング処理の場合、前後の画像を関連付けて位置を推定する場合が多いため正しい評価にならないからである。そこで、トラッキング処理の内容に合わせ、連なった複数画像を、一部は重複させて選択し評価に用いるようにする。図２０では画像３枚ごと、うち前後１枚は重複させた区間でトラッキング処理の評価値を得ることを示す。
【０１１６】
このように、複数画像データからなる区間の評価値は、例えば（Σ（１００／（１＋[位置ずれ量]）））／[区間画像数]として算出すればよい。
【０１１７】
（ii）評価値ベクトルの例
図２１は、図２０に示す評価値算出方法を用いて、複数のトラッキング処理のアルゴリズムを評価して得られた、多数の区間毎の評価値ベクトルの例を示す図である。当該例では、全教示データの区間を１〜Ｅｎｄとする。また、個々のアルゴリズムをａｔ１〜ａｔ２０とする。そして、各区間についての各アルゴリズムの評価値は表の各欄の値に対応している。
【０１１８】
このとき、各々の教示データの区間ごとの評価値ベクトルＶｄ１〜ＶｄＥは、それぞれで横に並ぶ評価値を要素にしたものである。これらの評価値ベクトルを用いてベクトル間の距離を算出し教示データ区間の選出を行えばよい。
【０１１９】
（iii）評価対象となるトラッキング処理のアルゴリズムの例
図２２は、前処理フィルタの組合せにより生成された、複数のトラッキング処理のアルゴリズムの例を示す図である。
【０１２０】
図２２に示されるように、基本的なトラッキングの処理２２０２の前段に前処理として各種のフィルタ処理２２０１を組合せる。これらのフィルタの組合せや各フィルタのパラメータのバリエーションを複数のアルゴリズムａｔ１〜ａｔ２０として用いる。あるいはトラッキングの処理２２０２について各種のパラメータのバリエーションを用いても良い。
【０１２１】
以上説明したように区間を設定し区間毎に妥当な評価値を算出させて教示データの区間の選出を行えば良い。そしてトラッキングのアルゴリズムについて本発明による最適化を行えば、長大な動画像での評価だけを繰り返すよりもアルゴリズム評価の総時間を減少させ、早期に最適化を完了させることができるようになる。
【０１２２】
（Ｄ）音声認識への適用例
図２３乃至２５は、本発明を音声認識に適用した例を示す図である。本発明は、これまで説明した画像処理に限らず、多種多様なデータ処理に広く適用可能である。このように、本発明によれば、多種多様なデータ処理のアルゴリズムの評価コスト（最適化のためのコスト）を抑えられるようになる。
【０１２３】
（i）データ例、及び評価方法の例
図２３は、評価対象のデータ及び評価方法の例を示す図である。図２３において、フレーム２３０１は、雑音が取り巻く中で検査装置のオペレータが装置の停止指示（“Ｓｔｏｐ”）を音声で行う様子を示している。これまでの撮像部１０４に代わりステレオマイクロフォン２３０２が音声を電気信号に変換し、画像データに代わり音声データ２３０３を処理対象にする。
【０１２４】
音声認識アルゴリズム２３０４は、音声データを言語の単語文字列に変換し結果データとして出力するもので、これまでの画像処理アルゴリズム実行部１０６に対応する。
【０１２５】
評価値の算出方法の例として、１００／（１＋[正解との差]）で算出する。［正解との差］とは、例えば正解データの文字列に対して音声認識の結果データの文字列が誤っている文字数である。図２３の例の”Ｓｔｏｐ“の音声指示についての正解データは当然”Ｓｔｏｐ“であるが、結果データが”Ｓｔｏｐ“であれば誤りはなく正解との差は０、結果データが”Ｔｏｐ“であれば１文字違いであるので正解との差は１、結果データが”Ｔａｐ“であれば２とする。このようにすれば評価値は１００を満点として結果の良し悪しを表わす。
【０１２６】
（ii）評価値ベクトルの例
図２４は、図２３で示す評価値算出方法を用いて、複数の音声認識のアルゴリズムを評価することにより得られた、多数の音声データについての評価値ベクトルの例を示す図である。図２４において、全教示データを音声１〜音声９３とし、個々のアルゴリズムをａａ１〜ａａ４０とする。そして、各音声データについての各アルゴリズムの評価値は表の各欄の値のように得られたとする。このとき各々の教示データの区間ごとの評価値ベクトルＶｄ１〜Ｖｄ９３はそれぞれで横に並ぶ評価値を要素にしたものである。これらの評価値ベクトルを用いてベクトル間の距離を算出し教示データの選出を行えばよい。
【０１２７】
（iii）評価対象となる音声認識のアルゴリズムの例
図２５は、複数種類のフィルタを組み合せることにより生成された、複数の音声認識のアルゴリズムの例を示す図である。
【０１２８】
図２５に示されるように、基本的な音声認識の処理２５０５の前段に前処理として各種のフィルタ処理（２５０２〜２５０４）の組み合せが設けられている。音声データ２５０１に関するフィルタは、例えばハイパスフィルタ（ＨＰＦ）やローパスフィルタ（ＬＰＦ）、あるいはステレオ情報に基づく方向性フィルタである。これらのフィルタの組合せや各フィルタのパラメータのバリエーションを複数のアルゴリズムａａ１〜ａａ４０として用いる。あるいは音声認識の処理２５０５について各種のパラメータのバリエーションを用いても良い。
【０１２９】
以上説明したように妥当な評価値を算出させて教示データの選出を行えば良い。そして本発明による最適化を行えば、多数の全音声データでの評価だけを繰り返すよりもアルゴリズム評価の総時間を減少させ、早期に最適化を完了させることができるようになる。
【０１３０】
（２）第２の実施形態
図２６は、本発明の第２の実施形態によるアルゴリズムの最適化処理を説明するためのフローチャートである。当該最適化処理は、図３に示す処理の一部を変更したもので、「教示データ一様選出」（Ｓ２６０１）の処理と判定の「初回か？」（Ｓ２６０２）の箇所が図３とは異なっている。
【０１３１】
（i）ステップ２６０１
自動最適化プログラム２０１４は、最初のアルゴリズム群生成（Ｓ３０１）を行った後、教示データ一様選出を実施する（Ｓ２６０１）。教示データ一様選出とは、全教示データからあらかじめ定めた方法で全教示データよりも数の少ない教示データを重複なくランダムに選出する処理である。なお、あらかじめ定めた方法とは、例えばユーザが固定数を与えても良いし、全教示データのうちの所定の割合（例：２割）をランダムに選択するようにすれば良い。
【０１３２】
次に、自動最適化プログラム２０１４は、評価プログラム２０１３を用いて、一様に選出された教示データ評価（Ｓ３０８）を行い、以後は選出された教示データでの最適化の繰り返しループ（Ｓ３０８→Ｓ３０９→Ｓ３１０→Ｓ３１１→Ｓ３０８・・・）を行う。
【０１３３】
（ii）ステップ２６０２
自動最適化プログラム２０１４は、選出された教示データを用いた最適化を終了したら、ステップ２６０２の判定が「初回か」否か判定する。言い換えれば、全教時示データの評価（Ｓ３０３）を既に１回でも行っているか否か判定される。ステップ２６０２で「初回」であると判定された場合（ステップ２６０２でＹｅｓの場合）、処理はステップ３０３に移行し、新アルゴリズム群形成処理（Ｓ３０２）は行われずに、全教示データ評価（Ｓ３０３）が実行される。一方、ステップ２６０２で「初回」でないと判定された場合（ステップ２６０２でＮｏの場合）、処理はステップ３０２に移行し、新アルゴリズム群形成処理を実行してから、処理はステップ３０３に移行する。以降は、図３と同一の処理になる。
【０１３４】
図３では初期のアルゴリズム群生成処理（Ｓ３０１）の後では全教示データ評価処理（Ｓ３０３）を行うので、最初の教示データ選出処理（Ｓ３０７）では代表として信頼度の高い教示データが選ばれるのに対し、図２６ではステップ２６０１で一様に選出された教示データを用いるため、必ずしも代表的な教示データが選ばれるとは言えない。しかしながら、全教示データ評価の回数を最初の１回分だけ少なくすることができるので、教示データの全数が非常に多いときには早期にアルゴリズムの最適化を完了することができる。
【０１３５】
（３）第３の実施形態
図２７は、本発明の第３の実施形態によるアルゴリズムの最適化処理を説明するためのフローチャートである。評価値ベクトルの要素として最上位アルゴリズムの評価値だけを使って教示データの選出を行う方法である。当該最適化処理も、図３の処理の一部を変更したもので、ステップ３０２がステップ２７０１に、ステップ３０７がステップ２７０３に置き換えられている。また、ステップ２７０２が新たに追加されている。
【０１３６】
図３では全教示データの評価結果で教示データ選出処理（Ｓ３０７）を行っているが、ステップ２７０３では、最上位アルゴリズムの評価結果が悪い教示データ選出する処理を行う。この処理は、最上位アルゴリズムの評価値だけを使って教示データ選出を行う方法に相当するものである。
【０１３７】
具体的には、自動最適化プログラム２０１４は、ステップ３０４で得られる評価結果のうち、評価値が最も悪い教示データから距離が近い教示データ（所定の距離内にある教示データ）とそれら以外の教示データを分類し、評価値が悪い方のグループの教示データを選出する。図３のフローチャートでは全教示データからまんべんなく代表的な教示データを選出していたのに対して、第３の実施形態では一部の特異な教示データのみを選出しているため、以下のように、他に２カ所の変更を行うことで最適化が進むようにする。
【０１３８】
１ヶ所目は、選出された教示データを用いて最適化したアルゴリズムを加えて、新アルゴリズム群を形成する処理（Ｓ３０２）である。図３では選出された教示データを用いて最適化したアルゴリズム群に全教示データの評価結果のうち最上位のアルゴリズムを加えていたが、図２７では逆であり、全教示データ評価結果で上位から多数のアルゴリズム群と選出された教示データを用いて最適化したアルゴリズム群から上位の一部のアルゴリズムを合わせて新アルゴリズム群を形成する（Ｓ２７０１）。評価結果が悪い教示データだけで最適化を行うと全教示データの全般に対して最適化が進むわけではないからである。
【０１３９】
２か所目は、アルゴリズム群変更処理（Ｓ２７０２）をさらに追加している点である。ステップ２７０２では、全教示データの評価結果に基づきアルゴリズム群を変更している。この処理により、評価結果が悪い選出された教示データを用いて最適化されたアルゴリズムと全教示データで比較的評価結果の良いアルゴリズムの融合が行われる。
【０１４０】
以上の図２７のフローチャートの処理では図３の処理に比べると最適化が早期には完了しにくい場合もある。しかし、教示データの選出は単純であり、全教示データでの評価だけを繰り返す場合よりはアルゴリズム評価の総数を減少させ、早期に最適化を完了させることができる。
【０１４１】
（４）まとめ
（i）本発明では、複数個の教示データの全てに対して、用意された複数のデータ処理アルゴリズムが実行され、複数のデータ処理アルゴリズムに対応して複数個の教示データの全てが評価される（図３、２６、及び２７のＳ３０３）。これにより、複数のデータ処理アルゴリズムに対応する複数個の教示データの全ての評価結果が得られる。この評価結果に基づいて、複数のアルゴリズムが順位づけられ、全教示データに対して最上位のアルゴリズムが特定される（同図のＳ３０４）。最上位のアルゴリズムにおいて所望の結果が得られなければ、教示データ選出処理が行われる（同図のＳ３０７やＳ２７０３）。教示データ選出処理では、全教時データの評価結果を用いて、複数の教示データを複数の確定グループに分類し、各確定グループから１つの教示データを選択して、選出された教示データが生成される。そして、再度、用意された複数のデータ処理アルゴリズムが、選出された教示データの評価結果（全教時データの評価結果に含まれる）に基づいて順位づけされ、所望の結果が得られるか判定される（同図のＳ３０９及びＳ３１０）。次に、この順位付け処理において評価結果が最上位と判定されたデータ処理アルゴリズムを含む新たなデータ処理アルゴリズム群が生成される（同図のＳ３１１）。Ｓ３０９で最上位となったアルゴリズム以外は、例えば乱数を用いて設定パラメータを決定しても良い。続いて、Ｓ３０９で最上位となったアルゴリズムとＳ３０４で最上位となったアルゴリズムを含む新たなデータ処理アルゴリズム群（改善された複数のデータ処理アルゴリズム）のそれぞれを複数個の教示データの全てに対して実行し（同図のＳ３０２→Ｓ３０３）、当該改善されたデータ処理アルゴリズム群が評価される（同図のＳ３０４）。そして、この評価結果に基づいて、最適なデータ処理アルゴリズムが決定される。このようにすることにより、ユーザがこれから用いようとするデータ処理アルゴリズムについての知識がなく、或いは熟練していなくても、データ処理アルゴリズムの最適化を自動的に、かつ高速に行うことができるようになる。
【０１４２】
また、教示データ選出処理（Ｓ３０７）の詳細は次のような内容である。つまり、評価値ベクトル（図８Ａ参照）間の距離が最小となる２つの教示データ同士を１つのグループに属するものとして分類し、複数の仮グループが生成される（図９におけるVd(1,2)、Vd(5,6)等参照）。そして、複数の仮グループに属する教示データの評価値ベクトルを用いて複数の仮グループの代表評価値ベクトルが生成される。代表評価値ベクトルは、例えば、仮グループに属する教示データの評価値ベクトルを平均することにより得られる。次に、複数の仮グループの代表評価値ベクトル同士、或いは複数の仮グループのそれぞれの代表評価値ベクトルと複数の仮グループに属さない教示データの評価値ベクトルのうちベクトル間距離が最小となる仮グループ或いは教示データを１つのグループに属するものとして更なる仮グループが生成される（図９のVd(1,2,3)、Vd(1,2,3,5,6)参照）。全ての教示データが１つのグループに収まるまで更なる仮グループを生成する処理が繰り返される（図９のVd(all)参照）。そして、仮グループ或いは更なる仮グループに含まれる教示データの評価値の平均値と仮グループ或いは更なる仮グループに含まれる教示データの数との乗算値の差（段差値）が最大となる仮グループ或いは更なる仮グループが特定される（図８Ｂ参照）。さらに、特定された仮グループ或いは更なる仮グループを生成する処理を実行する前までに生成された仮グループ及び更なる仮グループを複数の確定グループとされる。最後に、複数の確定グループから１つの教示データを選択して、選出された教示データが生成される。このように段差値という概念を導入して処理すべき教示データを選出するので、教示データ全体で、平均評価値を上げるために最も改善すべきグループを特定することができるようになり、効率よくデータ処理アルゴリズムの最適化を実行することが可能となる。
【０１４３】
（ii）本発明の第２の実施形態として、全教示データに対する評価を行う（図２６のＳ３０３）前に、複数個の教示データの少なくも一部が一様に選出される（図２６のＳ２６０１）ようにしても良い。そして、一様選出した教示データに対して用意された複数のデータ処理アルゴリズムが実行され、複数のデータ処理アルゴリズムに対応して一様選出した教示データが評価（事前評価）される（図２６のＳ３０８→Ｓ３０９→Ｓ３１０）。そして、この事前評価の結果に基づいて、全ての教示データの評価が行われる（図２６のＳ３０３）。このようにすることにより、処理対象となる入力データ（画像データ）にばらつきが少なく、最初に全ての教示データ（入力データと正解データの組み合わせ）を評価しなくてもよいような場合に、さらに効率よくデータ処理アルゴリズムの最適化を実行することが可能となる。
【０１４４】
（iii）本発明の第３の実施形態として、教示データ選出処理（Ｓ３０７）の詳細として、複数のデータ処理アルゴリズムに対応する複数個の教示データの全ての評価結果のうち最も評価値が悪い教示データから所定の距離内にある教示データと、当該所定の距離外にある教示データとに分類して確定グループを生成し、所定の距離内にある教示データを選出された教示データとする（図２７のＳ２７０３）ようにしても良い。このようにすることにより、評価すべき教示データの総数を減少させることができるので、データ処理アルゴリズムの最適化を迅速に実行することができるようになる。
【０１４５】
（iv）本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１４６】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【０１４７】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【０１４８】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本発明は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本発明を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１４９】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【０１５０】
加えて、本技術分野の通常の知識を有する者には、本発明のその他の実装がここに開示された本発明の明細書及び実施形態の考察から明らかになる。明細書と具体例は典型的なものに過ぎず、本発明の範囲と精神は後続する請求範囲で示される。
【符号の説明】
【０１５１】
１００・・・画像処理システム
１０１・・・正解設定部
１０２・・・正解データ格納部
１０３・・・評価部
１０４・・・撮像部
１０５・・・画像データ格納部
１０６・・・画像処理アルゴリズム実行部
１０７・・・結果データ格納部
１０８・・・自動最適化部
１０９・・・アルゴリズム設定データ格納部
１１０・・・評価値格納部
１１１・・・選択機能部
２０１・・・プロセッサ
２０２・・・メモリ／ＨＤＤ
２０３・・・入力デバイス
２０４・・・出力デバイス
２０５・・・撮像装置
【図１】
2015075798.tif 000003
【図２Ａ】
2015075798.tif 000004
【図２Ｂ】
2015075798.tif 000005
【図３】
2015075798.tif 000006
【図４】
2015075798.tif 000007
【図５】
2015075798.tif 000008
【図６】
2015075798.tif 000009
【図７】
2015075798.tif 000010
【図８Ａ】
2015075798.tif 000011
【図８Ｂ】
2015075798.tif 000012
【図９】
2015075798.tif 000013
【図１０】
2015075798.tif 000014
【図１１】
2015075798.tif 000015
【図１２】
2015075798.tif 000016
【図１３】
2015075798.tif 000017
【図１４】
2015075798.tif 000018
【図１５】
2015075798.tif 000019
【図１６】
2015075798.tif 000020
【図１７】
2015075798.tif 000021
【図１８】
2015075798.tif 000022
【図１９】
2015075798.tif 000023
【図２０】
2015075798.tif 000024
【図２１】
2015075798.tif 000025
【図２２】
2015075798.tif 000026
【図２３】
2015075798.tif 000027
【図２４】
2015075798.tif 000028
【図２５】
2015075798.tif 000029
【図２６】
2015075798.tif 000030
【図２７】
2015075798.tif 000031