(57)【要約】【課題】遺伝的処理において、検査対象物を適切に抽出する画像フィルタを生成する。【解決手段】学習用入力画像から目標画像への変換に適応させた適応済画像フィルタを複数の画像フィルタの中から選択する画像処理装置であって、適応済画像フィルタによる画像変換の対象となる対象物の３次元モデルを記憶するモデル記憶部と、対象物を撮像した撮像画像における検査対象外領域を、３次元モデルに基づいて特定する特定部と、検査対象外領域の重みを、撮像画像における他の領域の重みより小さくした重み画像を生成する重み画像生成部と、複数の画像フィルタのそれぞれの出力画像と目標画像との差分を重み画像により領域毎に重み付けして類似度を算出する算出部と、複数の画像フィルタのそれぞれの類似度に基づいて、複数の画像フィルタの中から適応済画像フィルタを選択するフィルタ選択部と、を備える画像処理装置を提供する。【選択図】図１
2011014047.tif 000002
【特許請求の範囲】
【請求項１】
学習用入力画像から目標画像への変換に適応させた適応済画像フィルタを複数の画像フィルタの中から選択する画像処理装置であって、
前記適応済画像フィルタによる画像変換の対象となる対象物の３次元モデルを記憶するモデル記憶部と、
前記対象物を撮像した撮像画像における検査対象外領域を、前記３次元モデルに基づいて特定する特定部と、
前記検査対象外領域の重みを、前記撮像画像における他の領域の重みより小さくした重み画像を生成する重み画像生成部と、
複数の画像フィルタのそれぞれについて、当該画像フィルタの出力画像と目標画像との差分を前記重み画像により領域毎に重み付けして類似度を算出する算出部と、
前記複数の画像フィルタのそれぞれの前記類似度に基づいて、前記複数の画像フィルタの中から前記適応済画像フィルタを選択するフィルタ選択部と、
を備える画像処理装置。
【請求項２】
前記特定部は、前記３次元モデルに基づいて、前記撮像画像における前記対象物が写らない領域を、前記検査対象外領域として特定する
請求項１に記載の画像処理装置。
【請求項３】
前記特定部は、前記３次元モデルを前記撮像画像に投影した場合に、前記３次元モデル上の検査対象外とすべき箇所が投影される前記撮像画像内の領域を、前記検査対象外領域として特定する
請求項１または２に記載の画像処理装置。
【請求項４】
前記特定部は、複数の撮像位置のそれぞれから前記対象物を撮像した場合に得られる複数の前記撮像画像のそれぞれにおける前記検査対象外領域を、前記３次元モデルに基づいて特定し、
前記重み画像生成部は、前記複数の撮像位置のそれぞれに対する前記重み画像を生成する
請求項１から３のいずれかに記載の画像処理装置。
【請求項５】
前記算出部は、前記複数の画像フィルタのそれぞれについて、前記複数の撮像位置のそれぞれに対応する学習用入力画像を当該画像フィルタにより変換した出力画像と、当該出力画像の目標画像との類似度を算出し、
前記フィルタ選択部は、前記複数の画像フィルタのそれぞれについて前記複数の撮像位置のそれぞれに対応して算出された前記類似度に基づいて、前記複数の画像フィルタの中から前記適応済画像フィルタを選択する
請求項４に記載の画像処理装置。
【請求項６】
前記複数の画像フィルタを生成するフィルタ生成部を更に備える
請求項１から５のいずれかに記載の画像処理装置。
【請求項７】
前記フィルタ生成部は、入力画像を出力画像にそれぞれ変換する複数のフィルタ部品をそれぞれ含む前記複数の画像フィルタから、遺伝的処理により新たな画像フィルタを生成して前記複数の画像フィルタに加える
請求項６に記載の画像処理装置。
【請求項８】
学習用入力画像から目標画像への変換に適応させた適応済画像フィルタを複数の画像フィルタの中から選択する画像処理方法であって、
前記適応済画像フィルタによる画像変換の対象となる対象物の３次元モデルを記憶するモデル記憶ステップと、
前記対象物を撮像した撮像画像における検査対象外領域を、前記３次元モデルに基づいて特定する特定ステップと、
前記検査対象外領域の重みを、前記撮像画像における他の領域の重みより小さくした重み画像を生成する重み画像生成ステップと、
複数の画像フィルタのそれぞれについて、当該画像フィルタの出力画像と目標画像との差分を前記重み画像により領域毎に重み付けして類似度を算出する算出ステップと、
前記複数の画像フィルタのそれぞれの前記類似度に基づいて、前記複数の画像フィルタの中から前記適応済画像フィルタを選択するフィルタ選択ステップと、
を備える画像処理方法。
【請求項９】
学習用入力画像から目標画像への変換に適応させた適応済画像フィルタを複数の画像フィルタの中から選択する画像処理装置としてコンピュータを機能させる画像処理プログラムであって、
前記適応済画像フィルタによる画像変換の対象となる対象物の３次元モデルを記憶するモデル記憶部と、
前記対象物を撮像した撮像画像における検査対象外領域を、前記３次元モデルに基づいて特定する特定部と、
前記検査対象外領域の重みを、前記撮像画像における他の領域の重みより小さくした重み画像を生成する重み画像生成部と、
複数の画像フィルタのそれぞれについて、当該画像フィルタの出力画像と目標画像との差分を前記重み画像により領域毎に重み付けして類似度を算出する算出部と、
前記複数の画像フィルタのそれぞれの前記類似度に基づいて、前記複数の画像フィルタの中から前記適応済画像フィルタを選択するフィルタ選択部と、
を備える画像処理装置として機能させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、および画像処理プログラムに関する。
【背景技術】
【０００２】
遺伝的アルゴリズムまたは遺伝的プログラミングといった進化的計算を用いたフィルタまたは変換器の生成方法が知られている（非特許文献１参照）。このような進化的計算を用いたフィルタまたは変換器の生成方法によれば、それぞれの事例に対して最適であって解析的に得ることが困難な複雑な構造のフィルタまたは変換器を、より少ない労力と時間で設計することができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】前薗正宜  他２名、「遺伝的アルゴリズムによる画像フィルタ設計の研究」、［ｏｎｌｉｎｅ］、コンピュータ利用教育協議会、［２００８年３月２０日検索］、インターネット＜URL：http://www.ciec.or.jp/event/2003/papers/pdf/E00086.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像フィルタの学習においては、学習用入力画像および目標画像の全領域を対象として画像フィルタの適合度を計算することが一般的である。しかしながら、様々な形状等の対象物の検査等に適応させるべく、撮像画像中の一部の領域を対象として適応させた画像フィルタを生成したい場合もあり得る。
【０００５】
そこで本発明は、上記の課題を解決することのできる画像処理装置、画像処理方法、および画像処理プログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の態様においては、学習用入力画像から目標画像への変換に適応させた適応済画像フィルタを複数の画像フィルタの中から選択する画像処理装置であって、適応済画像フィルタによる画像変換の対象となる対象物の３次元モデルを記憶するモデル記憶部と、対象物を撮像した撮像画像における検査対象外領域を、３次元モデルに基づいて特定する特定部と、検査対象外領域の重みを、撮像画像における他の領域の重みより小さくした重み画像を生成する重み画像生成部と、複数の画像フィルタのそれぞれについて、当該画像フィルタの出力画像と目標画像との差分を重み画像により領域毎に重み付けして類似度を算出する算出部と、複数の画像フィルタのそれぞれの類似度に基づいて、複数の画像フィルタの中から適応済画像フィルタを選択するフィルタ選択部と、を備える画像処理装置、並びに当該画像処理装置に関する画像処理方法、および画像処理プログラムを提供する。
【０００７】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る画像処理装置１０の構成を示す。
【図２】本実施形態に係るフィルタ部品２２を直列に組み合わせた画像フィルタ２０の一例を示す。
【図３】本実施形態に係るフィルタ部品２２を木構造に組み合わせた画像フィルタ２０の一例を示す。
【図４】本実施形態に係るフィルタ部品２２を直列に組み合わせた画像フィルタ２０に対して行われる遺伝的な操作の一例を示す。
【図５】本実施形態に係るフィルタ部品２２を木構造に組み合わせた画像フィルタ２０に対して行われる交叉操作の一例を示す。
【図６】本実施形態に係るフィルタ部品２２を木構造に組み合わせた画像フィルタ２０に対して行われる突然変異操作の一例を示す。
【図７】本実施形態に係る画像フィルタ２０の類似度の算出方法の一例を示す。
【図８】本実施形態に係る画像処理装置１０の処理フローの一例を示す。
【図９】図８のステップＳ１４において画像フィルタ２０を選択するまでの処理フローの一例を示す。
【図１０】図９のステップＳ２１における重み画像生成部４３による重み画像の更新処理フローの一例を示す。
【図１１】本実施形態に係る３次元モデルの指定範囲を利用した検査対象領域指定の一例を示す。
【図１２】本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１は、本実施形態に係る画像処理装置１０の構成を示す。画像処理装置１０は、少なくとも１つの画像フィルタ２０を含む画像フィルタ群を進化的計算に基づいて複数世代にわたり進化させる。ここで、画像処理装置１０は、３次元モデルを用いて撮像画像中における検査対象外となる領域を特定して、検査対象となる領域の画像を元に画像フィルタ２０を進化させる。本実施形態において、各画像フィルタ２０は、学習用入力画像を処理して処理結果を出力画像として出力する複数のフィルタ部品の入出力間を組み合わせた構造であってよい。そして、画像処理装置１０は、学習用入力画像を目標画像へ変換するのに適した画像フィルタ２０を生成する。画像処理装置１０は、一例として、コンピュータにより実現される。
【００１１】
画像処理装置１０は、フィルタ格納部３４と、学習用入力画像格納部３６と、モデル記憶部５６と、特定部５４と、フィルタ処理部３８と、出力画像格納部４０と、目標画像格納部４２と、重み画像生成部４３と、算出部４４と、フィルタ選択部４６と、フィルタ更新部４８と、フィルタ生成部５０とを備える。フィルタ格納部３４は、互いに異なる構成の複数の画像フィルタ２０を格納する。
【００１２】
学習用入力画像格納部３６は、画像フィルタ２０の変換対象である１又は複数の学習用入力画像を格納する。学習用入力画像は、一例として、ユーザによって予め撮像された画像および予め生成された画像である。
【００１３】
モデル記憶部５６は、適応済画像フィルタ２０による画像変換の対象となる製品又は部品等の検査対象物の３次元モデルを少なくとも１つ記憶する。ここで、３次元モデルは、三角形又は四角形等の２次元ポリゴンを多数配置して対象物の外形を表わしたものであってよく、円柱等の基本的な立体を組み合わせ、またはワイヤーフレーム等により対象物の構造を表わしたものでもよい。また、３次元モデルの表現形式としては、これらの例に限らず任意のものであってよい。モデル記憶部５６は、一例として、画像処理装置１０に予め設定され、またはユーザが新たに準備した検査対象物等の構造を示す３次元モデルを記憶する。
【００１４】
特定部５４は、検査対象物を撮像した撮像画像における検査対象外領域を、モデル記憶部５６から供給された３次元モデルに基づいて特定する。特定部５４は、一例として、３次元モデルに基づいて、撮像画像における対象物が写らない領域すなわち例えば撮像画像の背景部分を、検査対象外領域として特定する。或いは、特定部５４は、一例として、３次元モデルに基づいて、撮像画像における対象物のうち一部の領域を、検査対象外領域として特定する。
【００１５】
フィルタ処理部３８は、フィルタ格納部３４に格納された複数の画像フィルタ２０を順次に取得する。フィルタ処理部３８は、取得したそれぞれの画像フィルタ２０により、学習用入力画像格納部３６に格納された学習用入力画像を変換させて、出力画像のそれぞれを生成する。
【００１６】
出力画像格納部４０は、フィルタ処理部３８において生成された出力画像を格納する。出力画像格納部４０は、一例として、出力画像のそれぞれを、変換した画像フィルタ２０に対応付けて格納する。
【００１７】
目標画像格納部４２は、学習用入力画像を変換して生成される出力画像の目標となる目標画像を格納する。目標画像は、一例として、使用者により予め生成され、または当該画像処理装置１０によって準備された画像であってよい。ここで、目標画像は、対象物のサンプルを撮像した画像から、抽出したい欠陥部分を特定し、抜き出す等により、使用者により生成されてもよい。
【００１８】
重み画像生成部４３は、特定部５４によって特定された検査対象外領域の重みを、撮像画像における他の領域の重みより小さくした重み画像を生成する。重み画像生成部４３は、一例として、検査対象外領域において、重みを大きくする比率を検査対象領域より小さくした画像を重み画像として生成する。この場合、重み画像生成部４３は、一例として、撮像画像におけるデータ領域毎（例えば各ピクセル）に対応付けられた値によって重みを表わす重み画像を生成する。
【００１９】
さらに、重み画像生成部４３は、少なくとも１つの世代において、出力画像および目標画像に基づいて、画像の領域毎の重みを示す重み画像を更新してもよい。
【００２０】
重み画像生成部４３は、重み記憶部６０と、重み更新部６２とを有する。重み記憶部６０は、重み画像を記憶する。重み更新部６２は、少なくとも１つの出力画像と目標画像との例えばピクセル毎の差分を算出して、当該ピクセル毎の差分がより大きい領域の重みを差分がより小さい領域の重みより大きくすることにより、重み記憶部６０に記憶された重み画像を更新する。
【００２１】
重み更新部６２は、重み画像の更新を世代毎に行ってよい。ここで、例えば、重み更新部６２は、現世代の重み画像における目標画像との差分が閾値より大きいデータに対応する重みに所定値を加算して、現世代の重み画像における目標画像との差分が閾値以下のデータに対応する重みに所定値より小さい値を加算する。
【００２２】
このようにして、重み更新部６２は、現世代の重み画像に基づいて、次世代の重み画像を生成する。これに代えて、重み更新部６２は、現世代の重み画像における、目標画像との差分が閾値より大きいデータに対応する重みに所定値を加算して、目標画像との差分が閾値以下のデータに対応する重みから所定値を減算してもよい。
【００２３】
なお、重み記憶部６０は、例えば重み更新部６２により重み画像が更新される毎に、更新される前の重み画像を更新された重み画像と区別して記憶してもよい。このようにして、画像処理装置１０は、検査対象となる領域がより重み付けられた評価によって画像フィルタ２０を進化させる。
【００２４】
算出部４４は、フィルタ格納部３４に格納された複数の画像フィルタ２０のそれぞれについて、当該画像フィルタ２０の出力画像と目標画像との差分を重み画像生成部４３によって生成した重み画像により領域毎に重み付けして類似度を算出する。ここで、類似度は、学習用入力画像を目標画像へと変換した出力画像が類似しているかどうかを表す指標値であり、値が高いほど学習用入力画像を目標画像へ類似した変換ができることを表す。
【００２５】
また、算出部４４は、複数の画像フィルタ２０のそれぞれについて、複数の撮像位置のそれぞれに対応する学習用入力画像を当該画像フィルタ２０により変換した出力画像と、当該出力画像の目標画像との類似度をそれぞれ算出してもよい。この場合、撮像位置は、対象物に対して撮像角度等を変えたものであって、カメラ向き、方角、高さおよび撮像距離などについて、１又は複数を組み合わせたものであってよい。
【００２６】
フィルタ選択部４６は、複数の画像フィルタ２０のそれぞれの類似度に基づいて、フィルタ格納部３４に格納された複数の画像フィルタ２０の中から少なくとも１つの適応済画像フィルタ２０を選択する。この場合において、フィルタ選択部４６は、複数の画像フィルタ２０の中の類似度がより高い画像フィルタ２０を優先的に選択する。より具体的には、フィルタ選択部４６は、生物の自然淘汰をモデル化した手法により、残存させる少なくとも１つの画像フィルタ２０を選択する。
【００２７】
フィルタ選択部４６は、一例として、フィルタ格納部３４に格納された複数の画像フィルタ２０のそれぞれの類似度に基づき、エリート選択およびルーレット選択といった遺伝的計算により少なくとも１つの画像フィルタ２０を選択する。また、フィルタ選択部４６は、複数の画像フィルタ２０のそれぞれについて複数の撮像位置のそれぞれに対応して算出された類似度に基づいて、フィルタ格納部３４に格納された複数の画像フィルタ２０の中から少なくとも１つの適応済画像フィルタ２０を選択してもよい。この場合、フィルタ選択部４６は、一例として、複数の撮像位置のそれぞれの類似度の和または重み付けした和等がより大きい画像フィルタ２０を優先的に選択する。
【００２８】
フィルタ更新部４８は、フィルタ格納部３４に格納された複数の画像フィルタ２０のうち、フィルタ選択部４６により選択された画像フィルタ２０を残存させ、フィルタ選択部４６により選択されなかった画像フィルタ２０を淘汰する。フィルタ更新部４８は、一例として、画像フィルタ２０をフィルタ格納部３４から削除することにより淘汰する。
【００２９】
フィルタ生成部５０は、学習用入力画像を処理して処理結果を出力画像として出力する１又は複数の画像フィルタ２０を遺伝的処理により生成する。フィルタ生成部５０は、フィルタ更新部４８による更新処理において残存した少なくとも１つの画像フィルタ２０に対して、交叉および突然変異等の遺伝的な操作によって新たな画像フィルタ２０を生成する。
【００３０】
このような画像処理装置１０は、フィルタ処理部３８による変換処理、算出部４４による類似度の算出処理、フィルタ選択部４６による画像フィルタ２０の選択処理、フィルタ更新部４８による更新処理およびフィルタ生成部５０による新たな画像フィルタ２０の生成処理を、複数回（例えば複数世代）繰り返す。これにより、画像処理装置１０は、学習用入力画像を目標画像へ変換するのに適した画像フィルタ２０を、進化的計算を用いて生成することができる。
【００３１】
図２は、本実施形態に係るフィルタ部品２２を直列に組み合わせた画像フィルタ２０の一例を示す。図３は、本実施形態に係るフィルタ部品２２を木構造に組み合わせた画像フィルタ２０の一例を示す。
【００３２】
画像フィルタ２０は、図２に示されるような、複数のフィルタ部品２２を直列に組み合わせた構成であってよい。また、画像フィルタ２０は、図３に示されるような、複数のフィルタ部品２２を木構造に組み合わせた構成であってもよい。また、画像フィルタ２０は、１つの入力端に対して、複数の出力端を有する構成であってもよい。また、画像フィルタ２０は、複数の入力端および複数の出力端を有する構成であってもよい。
【００３３】
画像フィルタ２０は、受け取った学習用入力画像に対してフィルタ演算処理を施して、出力画像を出力する。画像フィルタ２０は、一例として、画像データに対して演算を施すプログラムとする。また、画像フィルタ２０は、画像データに対して施すべき演算内容を表わす演算式であってもよい。
【００３４】
なお、フィルタ部品２２が木構造に組み合わされた構成の画像フィルタ２０は、木構造の末端（最下位）のフィルタ部品２２のそれぞれに、同一の学習用入力画像が与えられ、木構造の最上位のフィルタ部品２２から出力画像を出力する。これに代えて、このような画像フィルタ２０は、複数の末端のフィルタ部品２２のそれぞれに互いに異なる学習用入力画像が与えられてもよい。
【００３５】
本実施形態において、フィルタ生成部５０は、入力画像を出力画像にそれぞれ変換する複数のフィルタ部品２２を少なくとも１つ含む複数の画像フィルタ２０から、遺伝的処理により新たな画像フィルタ２０を生成して複数の画像フィルタ２０に加えて複数の画像フィルタ２０を生成する。ここで、画像フィルタ２０は、画像データに対して演算を施すプログラムであるフィルタ部品２２を組み合わせた構成であってもよい。また、画像フィルタ２０は、画像データに対して施すべき演算内容を表わす演算式であるフィルタ部品２２を組み合わせた構成であってもよい。
【００３６】
複数のフィルタ部品２２のそれぞれは、前段に配置されたフィルタ部品２２から出力された画像データを受け取り、受け取った画像データに演算を施して後段に配置されたフィルタ部品２２に与える。複数のフィルタ部品２２のそれぞれは、プログラムモジュールおよび演算式等であってよく、受け取った画像データに対して２値化演算、ヒストグラム演算、平滑化演算、エッジ検出演算、モルフォロジ演算、及び／または周波数空間での演算（例えば、ローパスフィルタリング演算およびハイパスフィルタリング演算）等の単項演算を施してもよい。
【００３７】
また、複数のフィルタ部品２２のそれぞれは、受け取った画像データに対して平均演算、差分演算及び／またはファジー演算（例えば論理和演算、論理積演算、代数和、代数積、限界和、限界積、激烈和および激烈積等）等の二項演算を施してもよい。
【００３８】
図４は、本実施形態に係るフィルタ部品２２を直列に組み合わせた画像フィルタ２０に対して行われる遺伝的な操作の一例を示す。図５は、本実施形態に係るフィルタ部品２２を木構造に組み合わせた画像フィルタ２０に対して行われる交叉操作の一例を示す。図６は、本実施形態に係るフィルタ部品２２を木構造に組み合わせた画像フィルタ２０に対して行われる突然変異操作の一例を示す。
【００３９】
フィルタ生成部５０は、一例として、２個またはそれ以上の画像フィルタ２０に対して、遺伝的な操作の一例である交叉操作を行って新たな２個またはそれ以上の画像フィルタ２０を生成する。フィルタ生成部５０は、一例として、図４および図５に示されるように、既に生成された少なくとも１つの一の画像フィルタ２０Ａの一部のフィルタ部品群２４Ａを、既に生成された他の画像フィルタ２０Ｂの少なくとも一部のフィルタ部品群２４Ｂと置換して、新たな画像フィルタ２０Ｅおよび２０Ｆを生成する。なお、フィルタ部品群２４は、１または複数のフィルタ部品２２を組み合わせた部材であってもよい。
【００４０】
また、フィルタ生成部５０は、一例として、一の画像フィルタ２０に対して、遺伝的な操作の一例である突然変異操作を行って新たな一の画像フィルタ２０を生成する。フィルタ生成部５０は、一例として、図４および図６に示されるように、既に生成された一の画像フィルタ２０Ｃの一部のフィルタ部品群２４Ｃを、ランダムに選択された他のフィルタ部品群２４Ｇに置換して、新たな画像フィルタ２０Ｇを生成する。
【００４１】
また、フィルタ生成部５０は、現世代の画像フィルタ２０をそのまま次世代の画像フィルタ２０として残してもよい。フィルタ生成部５０は、一例として、図４に示されるように、画像フィルタ２０Ｄのフィルタ部品２２の構成をそのまま含む次世代の画像フィルタ２０Ｈを生成する。
【００４２】
フィルタ選択部４６は、フィルタ生成部５０により生成された１または複数の画像フィルタ２０から、適合度の高いものを優先的に選択して、適者生存させる。フィルタ更新部４８は、選択された画像フィルタ２０をフィルタ格納部３４内に保存し、選択されなかった画像フィルタ２０をフィルタ格納部３４内から削除する。
【００４３】
図７は、本実施形態に係る画像フィルタ２０の類似度の算出方法の一例を示す。本実施形態において、算出部４４は、当該画像フィルタ２０により学習用入力画像を変換させることにより生成された出力画像と、目標画像とがどれだけ類似しているかを表わす類似度を算出する。この類似度は、値がより大きいほど、当該出力画像を生成した画像フィルタ２０がより適切であることを示す評価値または指標として用いられる。
【００４４】
算出部４４は、出力画像の各領域の値と目標画像の対応する各領域の値とを比較した比較値を算出し、領域毎の比較値に対して重み画像により指定される重みを乗じる。そして、算出部４４は、重みが乗じられた領域毎の比較値を全領域について平均または合計した値を算出し、算出した値を当該出力画像の類似度として出力する。
【００４５】
算出部４４は、一例として、出力画像のピクセル毎の輝度値と、目標画像の対応するピクセルの輝度値との差分または比率を算出する。そして、算出部４４は、一例として、算出したピクセル毎の差分または比率のそれぞれに、重み画像により指定される対応する重みを乗じ、重みが乗じられたピクセル毎の差分または比率を合計または平均して、類似度を算出する。
【００４６】
例えば、算出部４４は、下記式（１）に示される演算をして、類似度を算出する。なお、この場合において、出力画像、目標画像および重み画像のサイズは、同一とされる。
【００４７】
【数１】
2011014047.tif 000003
【００４８】
式（１）において、ｆは、類似度を表わす。Ｙｍａｘは、輝度の最大値を表わす。また、ｘは、画像の水平方向のピクセル位置を示す変数である。ｙは、画像の垂直方向のピクセル位置を示す変数である。ｘｍａｘは、画像の水平方向のピクセル数を示す定数である。ｙｍａｘは、画像の垂直方向のピクセル数を示す定数である。
【００４９】
Ｉｗｅｉｇｈｔ（ｘ，ｙ）は、重み画像における（ｘ，ｙ）位置のピクセルの輝度値を表わす。Ｉｔａｒｇｅｔ（ｘ，ｙ）は、目標画像における（ｘ，ｙ）位置のピクセルの輝度値を表わす。Ｉｆｉｌｔｅｒ（ｘ，ｙ）は、出力画像における（ｘ，ｙ）位置のピクセルの輝度値を表わす。
【００５０】
すなわち、式（１）の中カッコ内の分子部分に示されるように、算出部４４は、目標画像の輝度値から出力画像の輝度値の差の絶対値に対して、重み画像の輝度値を乗じた重み付き差分値を、画面内の全てのピクセル毎に算出し、算出した重み付き差分値を全ピクセルについて合計した合計重み付け差分値を算出する。さらに、式（１）の中カッコ内の分母部分に示されるように、算出部４４は、重み画像の輝度値を全ピクセルについて合計した合計重みを算出する。
【００５１】
さらに、算出部４４は、合計重み付け差分値を合計重みで除算した除算値（式（１）の中カッコ内）に、輝度値の最大値の逆数（１／Ｙｍａｘ）を乗じて正規化値（式（１）の２番目の項）を算出する。そして、算出部４４は、１から、正規化値を減じた値を、類似度ｆとして算出する。このようにして、算出部４４は、出力画像と目標画像との差分を領域毎に重み付けして類似度を算出することができる。
【００５２】
図８は、本実施形態に係る画像処理装置１０の処理フローの一例を示す。まず、画像処理装置１０は、モデル記憶部５６に予め設定され、またはユーザにより新たに準備して記憶された３次元モデルを取得して、特定部５４によって学習用入力画像へ投影して検査対象外領域を特定する（Ｓ１８）。
【００５３】
ここで、特定部５４は、一例として、モデル記憶部５６から供給され、またはユーザ入力によって直接指定された３次元モデルに基づいて、撮像画像における対象物が写らない領域（例えば背景領域）を検査対象外領域として特定する。また、特定部５４は、ユーザが編集した３次元モデルを、モデル記憶部５６へ保存してもよい。
【００５４】
そして、重み更新部６２は、特定部５４によって検査対象外領域を特定した撮像画像から、検査対象外領域の重みを大きくする比率を検査対象領域より小さくした重み画像を生成する。また、重み更新部６２は、ユーザが撮像した複数の撮像位置のそれぞれに対する重み画像を生成してもよい。重み画像生成部４３は、一例として、撮像画像におけるそれぞれの撮像位置に応じて、各ピクセルに対応付けられた値（例えば輝度値等）を、検査対象外領域の重みを大きくする比率を検査対象領域より小さくした重み画像を生成する。そして、画像処理装置１０は、ステップＳ１２〜ステップＳ１５の各処理を、複数回（例えば複数世代）繰返して実行する（Ｓ１１、Ｓ１６）。
【００５５】
各世代の処理において、フィルタ生成部５０は、前世代から残存したフィルタ更新部４８による更新処理において残存した少なくとも１つの画像フィルタ２０を取得する。続いて、フィルタ生成部５０は、取得した少なくとも１つの画像フィルタ２０に対して、交叉操作および突然変異操作等の遺伝的な操作を行って、少なくとも一部のフィルタ部品２２を他のフィルタ部品２２に置換した少なくとも１つの新たな画像フィルタ２０を生成する（Ｓ１２）。そして、フィルタ生成部５０は、生成した少なくとも１つの新たな画像フィルタ２０をフィルタ格納部３４に書き込む。なお、フィルタ生成部５０は、一例として、学習用入力画像を出力画像に変換する画像フィルタ２０を生成するための初期の画像フィルタ２０として、ランダムに生成した、または既に生成した画像フィルタ２０を、予めフィルタ格納部３４に格納しておく。
【００５６】
続いて、フィルタ処理部３８は、前世代から残存した複数の画像フィルタ２０およびステップＳ１２で新たに生成された複数の画像フィルタ２０のそれぞれにより、学習用入力画像をフィルタ処理して出力画像を生成する（Ｓ１３）。これにより、フィルタ処理部３８は、複数の画像フィルタ２０に対応した複数の出力画像を生成することができる。
【００５７】
続いて、算出部４４は、学習用入力画像を画像フィルタ２０により変換した出力画像および目標画像を重み画像生成部４３が生成した重み画像により重み付けして比較する。ここで、算出部４４は、複数の出力画像のそれぞれと目標画像との類似度を算出する。なお、算出部４４は、類似度または近似度に加え、フィルタ部品２２の数の少なさ、処理負荷の低さ、および並列度の大きさ等に応じて評価を高めた適合度を算出してもよい。
【００５８】
そして、フィルタ選択部４６は、類似度がより高い出力画像に対応する複数の画像フィルタ２０を選択する（Ｓ１４）。なお、フィルタ選択部４６は、最後の世代においては、類似度の最も高い１個の出力画像に対応する１個の画像フィルタ２０を選択してよい。
【００５９】
さらに、フィルタ更新部４８は、ステップＳ１４において選択された１または複数の画像フィルタ２０を次世代に残存させ、ステップＳ１４において選択されなかった出力画像を生成した画像フィルタ２０を、フィルタ格納部３４内における画像フィルタ群から削除することにより淘汰する（Ｓ１５）。また、フィルタ生成部５０は、新たに生成した複数の画像フィルタ２０をフィルタ格納部３４に戻して、既に生成された複数の画像フィルタ２０に加えて格納させてもよい。
【００６０】
画像処理装置１０は、以上の処理を複数の世代（例えば数十世代または数百世代以上）繰り返して実行して、最後の世代（例えば第Ｎ世代、Ｎは２以上の自然数）まで処理を実行した後に、当該フローを抜ける（Ｓ１６）。このようにして、画像処理装置１０は、３次元構造の対象物を撮像した撮像画像または学習用入力画像を、適切な検査範囲の目標画像へ変換するのに適した画像フィルタ２０を、進化的計算を用いて生成することができる。
【００６１】
図９は、図８のステップＳ１４において画像フィルタ２０を選択するまでの処理フローの一例を示す。画像処理装置１０は、図８に示されるステップＳ１４において、以下の処理を実行する。
【００６２】
まず、重み画像生成部４３は、世代毎に適切な重み画像を発生させるべく、重み画像を更新する（ステップＳ２１）。なお、重み画像生成部４３による重み画像の更新処理については、後述の図１０において詳細を説明する。
【００６３】
続いて、算出部４４は、フィルタ格納部３４に格納された複数の画像フィルタ２０のそれぞれにより生成された複数の出力画像のそれぞれ毎に、以下のステップＳ２３の処理を実行する（Ｓ２２、Ｓ２４）。ステップＳ２３において、算出部４４は、当該出力画像と目標画像とを重み画像生成部４３によって生成した重み画像に応じた重み付けをした比較をして、当該出力画像と目標画像との類似度を算出する。算出部４４は、複数の出力画像のすべてについて処理を終えると、処理をステップＳ２５に進める（Ｓ２４）。
【００６４】
続いて、フィルタ選択部４６は、複数の出力画像のそれぞれの類似度に基づき、複数の出力画像の中から目標画像により近い出力画像を選択する（Ｓ２５）。フィルタ選択部４６は、一例として、複数の画像フィルタ２０により変換された複数の出力画像のうち、類似度がより高い出力画像を優先的に選択する。フィルタ選択部４６は、一例として、類似度が基準類似度より高い出力画像を選択する。また、フィルタ選択部４６は、類似度が上位から予め定められた範囲の選択対象画像を選択してもよい。また、フィルタ選択部４６は、類似度がより高い出力画像がより高い確率で選択されるように設定がされている条件下で、ランダムに出力画像を選択してもよい。
【００６５】
そして、フィルタ選択部４６は、選択された出力画像を生成する画像フィルタ２０を、学習用入力画像を目標画像により類似する画像に変換する画像フィルタ２０として選択する（Ｓ２６）。このステップＳ２６の処理を終えると、画像処理装置１０は、当該フローを終了する。
【００６６】
図１０は、図９のステップＳ２１における重み画像生成部４３による重み画像の更新処理フローの一例を示す。重み画像生成部４３は、図９に示されたステップＳ２１における重み画像の更新処理において、以下のステップＳ３１〜Ｓ３３の処理を実行する。
【００６７】
重み更新部６２は、一例として、前世代から残存した複数の画像フィルタ２０および図８のステップＳ１２において新たに生成された複数の画像フィルタ２０のそれぞれにより生成された複数の出力画像のうち、少なくとも１つの出力画像を、重み画像更新用の出力画像として抽出する（Ｓ３１）。ここで、重み更新部６２は、一例として、複数の画像フィルタ２０のうち、前世代において算出された類似度が最も高かった画像フィルタ２０により生成された出力画像を抽出する。また、重み更新部６２は、前世代において算出された類似度が所定値以上の画像フィルタ２０により生成された１または複数の出力画像を抽出してもよい。また、重み更新部６２は、一例として、複数の画像フィルタ２０のうち任意の一個の画像フィルタ２０により生成された出力画像を抽出する。
【００６８】
続いて、重み更新部６２は、ステップＳ３１において選択された少なくとも１つの出力画像と目標画像との領域毎の差分を算出する（Ｓ３２）。重み更新部６２は、一例として、ステップＳ３１において選択された少なくとも１つの出力画像と、目標画像とのピクセル毎の差分を算出する。なお、ステップＳ３１において複数の出力画像を選択した場合には、重み更新部６２は、一例として、選択された複数の出力画像のそれぞれと一の目標画像との複数個の差分のうち、最も大きい１個の差分またはこれら複数個の差分の平均値を、領域毎（例えばピクセル毎）に選択する。
【００６９】
続いて、重み更新部６２は、重み記憶部６０に記憶された重み画像、すなわち、前世代の処理において用いられた重み画像を、ステップＳ３２において算出された領域毎の差分に基づき変更する（Ｓ３３）。より具体的には、重み更新部６２は、差分がより大きい領域の重みを当該差分がより小さい領域の重みより大きくするべく、重み記憶部６０に記憶された重みデータを更新する。なお、重み更新部６２は、特定部５４によって検査領域外と特定された範囲においては、予め重みを０としまたは増加させずに更新してもよい。
【００７０】
以上において、重み画像生成部４３は、学習入力画像を学習用目標画像により類似する画像に変換する重み画像を生成することができる。
【００７１】
図１１は、３次元モデルの指定範囲を利用した検査対象領域指定の一例を示す。本図において、特定部５４は、撮像画像に対して３次元モデルを投影して、検査対象外領域を指定する。
【００７２】
特定部５４は、３次元モデルに基づいて、撮像画像における対象物が写らない領域（例えば背景領域）を検査対象外領域として特定する。一例として、特定部５４は、３次元モデルを、撮像装置の視野に応じたスクリーンに投影して、３次元モデルが投影される領域を検査対象領域とし、３次元モデルが投影されない領域を検査対象外領域としてもよい。また、特定部５４は、３次元モデルを撮像画像に投影した場合に、３次元モデル上の検査対象外とすべき箇所が投影される撮像画像内の領域を、検査対象外領域として特定してよい。ここで、特定部５４は、３次元モデルにおける予め指定された箇所の基準以下の面率を有する箇所、および／または面の法線と撮影方向との間の角度が所定以上の箇所等、検査として適切ではない箇所を検査対象外領域として特定してもよい。
【００７３】
また、特定部５４は、複数の撮像位置のそれぞれから対象物を撮像した場合に得られる複数の撮像画像のそれぞれにおける検査対象外領域を、３次元モデルに基づいて特定してもよい。この場合、特定部５４は、３次元モデルを投影するスクリーンを撮像位置に応じて複数用意することで、撮像位置が異なる複数の撮像画像の検査対象外領域を特定する。
【００７４】
図１２は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスク・ドライブ２０４０、及びＤＶＤドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００７５】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００７６】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスク・ドライブ２０４０、ＤＶＤドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスク・ドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＤＶＤドライブ２０６０は、ＤＶＤ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスク・ドライブ２０４０に提供する。
【００７７】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスク・ドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００７８】
ＲＡＭ２０２０を介してハードディスク・ドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＤＶＤ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスク・ドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００７９】
コンピュータ１９００にインストールされ、コンピュータ１９００を画像処理装置１０として機能させるプログラムは、モデル記憶モジュールと、特定モジュールと、フィルタ処理モジュールと、重み画像生成モジュールと、算出モジュールと、フィルタ選択モジュールと、フィルタ更新モジュールと、フィルタ生成モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、モデル記憶部５６と、特定部５４と、フィルタ処理部３８と、重み画像生成部４３と、算出部４４と、フィルタ選択部４６と、フィルタ更新部４８と、フィルタ生成部５０としてそれぞれ機能させる。
【００８０】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段であるモデル記憶部５６と、特定部５４と、フィルタ処理部３８と、重み画像生成部４３と、算出部４４と、フィルタ選択部４６と、フィルタ更新部４８と、フィルタ生成部５０として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の画像処理装置１０が構築される。
【００８１】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスク・ドライブ２０４０、フレキシブルディスク２０９０、又はＤＶＤ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００８２】
また、ＣＰＵ２０００は、ハードディスク・ドライブ２０４０、ＤＶＤドライブ２０６０（ＤＶＤ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００８３】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００８４】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００８５】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＤＶＤ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００８６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００８７】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００８８】
１０  画像処理装置、２０  画像フィルタ、２２  フィルタ部品、２４  フィルタ部品群、３４  フィルタ格納部、３６  学習用入力画像格納部、３８  フィルタ処理部、４０  出力画像格納部、４２  目標画像格納部、４３  重み画像生成部、４４  算出部、４６  フィルタ選択部、４８  フィルタ更新部、５０  フィルタ生成部、５４  特定部、５６  モデル記憶部、６０  重み記憶部、６２  重み更新部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスク・ドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＤＶＤドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＤＶＤ
【図１】
2011014047.tif 000004
【図２】
2011014047.tif 000005
【図３】
2011014047.tif 000006
【図４】
2011014047.tif 000007
【図５】
2011014047.tif 000008
【図６】
2011014047.tif 000009
【図７】
2011014047.tif 000010
【図８】
2011014047.tif 000011
【図９】
2011014047.tif 000012
【図１０】
2011014047.tif 000013
【図１１】
2011014047.tif 000014
【図１２】
2011014047.tif 000015