(57)【要約】【課題】フォトメトリックステレオ法を用いて生成されるワークの表面形状を示す形状画像において形状誤差を削減すること。【解決手段】カメラ４が検査対象物をフォトメトリックステレオ法により撮像して複数の輝度画像を生成する。フォトメトリック処理部８１１が複数の輝度画像から検査対象物の表面の法線ベクトルと反射率とを算出する。フォトメトリック処理部８１１が法線ベクトルに基づき当該表面の形状に応じた複数の画素値を有する形状画像を生成するとともに、反射率に応じた複数の画素値を有する反射率画像を生成する。フォトメトリック処理部８１１は、形状画像に含まれているテクスチャの映り込みまたは鏡面反射光を示すテクスチャ情報を反射率画像から抽出する。フォトメトリック処理部８１１はテクスチャ情報に基づき偽形状の軽減処理を実行する。【選択図】図８
2015232481.tif 000002
【特許請求の範囲】
【請求項１】
検査対象物をフォトメトリックステレオ法により撮像して複数の輝度画像を生成する輝度画像生成手段と、
前記複数の輝度画像においてそれぞれ座標が一致している複数の画素の画素値を用いて前記検査対象物の表面の法線ベクトルと反射率とを算出し、前記検査対象物の表面の法線ベクトルに基づき、当該表面の形状に応じた複数の画素値を有する形状画像を生成するとともに、前記検査対象物の表面の反射率に応じた複数の画素値を有する反射率画像を生成する生成手段と、
前記反射率画像に基づき前記形状画像に含まれているテクスチャの映り込みまたは鏡面反射光を示すテクスチャ情報を抽出する抽出手段と、
前記抽出手段により抽出された前記テクスチャ情報に基づき、テクスチャの映り込みまたは鏡面反射光に起因した偽形状の軽減処理を実行する軽減処理手段と、
前記軽減処理を施された形状画像を用いて前記検査対象物の良否を判定する判定手段と
を有することを特徴とする検査装置。
【請求項２】
前記軽減処理手段は、前記テクスチャ情報に基づき前記反射率画像において注目領域内のテクスチャのエッジ強度が高くなるに応じて、前記形状画像の当該注目領域内のコントラストを低下させることでテクスチャの映り込みを軽減することを特徴とする請求項１に記載の検査装置。
【請求項３】
前記生成手段は、前記法線ベクトルのＸ方向の傾き成分を画素値としたＸ方向傾き画像と前記法線ベクトルのＹ方向の傾き成分を画素値としたＹ方向傾き画像とを生成し、
前記抽出手段は、前記テクスチャ情報として、前記反射率画像から前記Ｘ方向におけるテクスチャのエッジ強度と、前記反射率画像からＹ方向におけるテクスチャのエッジ強度を求め、
前記軽減処理手段は、前記Ｘ方向におけるテクスチャのエッジ強度に応じて前記Ｘ方向傾き画像のコントラストを低下させるとともに、前記Ｙ方向におけるテクスチャのエッジ強度に応じて前記Ｙ方向傾き画像のコントラストを低下させ、
前記生成手段は、前記軽減処理を施された前記Ｘ方向傾き画像と前記Ｙ方向傾き画像とを合成して前記形状画像を生成することを特徴とする請求項２に記載の検査装置。
【請求項４】
前記抽出手段は、前記Ｘ方向傾き画像の各画素に対する重みを前記Ｘ方向におけるテクスチャのエッジ強度に応じて決定するとともに、前記Ｙ方向傾き画像の各画素に対する重みを前記Ｙ方向におけるテクスチャのエッジ強度に応じて決定し、
前記軽減処理手段は、前記テクスチャ情報として前記抽出手段から重みを取得し、前記Ｘ方向傾き画像の各画素にそれぞれ対応する重みを乗算するとともに前記Ｙ方向傾き画像の各画素にそれぞれ対応する重みを乗算して合成することで検査用の形状画像を生成することを特徴とする請求項３に記載の検査装置。
【請求項５】
前記生成手段は、前記Ｘ方向傾き画像と前記Ｙ方向傾き画像とについて複数レベルの縮小画像を生成し、前記複数レベルの縮小画像のそれぞれについて前記軽減処理を適用し、さらに積み上げ計算を実行することで前記検査用の形状画像を生成することを請求項４に記載の検査装置。
【請求項６】
前記抽出手段は、注目画素の近傍に位置する少なくとも２つの画素の階調値の差分または重み付き和を、当該注目画素のエッジ強度として算出するエッジ強度算出手段を有することを特徴とする請求項２ないし５のいずれか１項に記載の検査装置。
【請求項７】
前記抽出手段は、注目画素の近傍に位置する少なくとも２つの画素の階調値を除積算した値を、当該注目画素のエッジ強度として算出するエッジ強度算出手段を有することを特徴とする請求項２ないし５のいずれか１項に記載の検査装置。
【請求項８】
前記抽出手段は、注目画素の近傍に位置する少なくとも２つの画素の階調値の対数変換後の値の差分または重み付き和を、当該注目画素のエッジ強度として算出するエッジ強度算出手段を有することを特徴とする請求項２ないし５のいずれか１項に記載の検査装置。
【請求項９】
前記軽減処理の効果を複数のレベルからユーザに選択させる選択手段をさらに有し、
前記軽減処理手段は選択されたレベルにしたがって前記軽減処理の効果を制御することを特徴とする請求項１ないし８のいずれか１項に記載の検査装置。
【請求項１０】
前記生成手段は特徴サイズの異なる複数の形状画像を生成し、
前記軽減処理手段は前記特徴サイズの異なる複数の形状画像のそれぞれに前記軽減処理を実行することを特徴とする請求項１ないし９のいずれか１項に記載の検査装置。
【請求項１１】
検査対象物をフォトメトリックステレオ法により撮像して複数の輝度画像を生成する輝度画像生成工程と、
前記複数の輝度画像においてそれぞれ座標が一致している複数の画素の画素値を用いて前記検査対象物の表面の法線ベクトルと反射率とを算出し、前記検査対象物の表面の法線ベクトルに基づき、当該表面の形状に応じた複数の画素値を有する形状画像を生成するとともに、前記検査対象物の表面の反射率に応じた複数の画素値を有する反射率画像を生成する生成工程と、
前記反射率画像に基づき前記形状画像に含まれているテクスチャの映り込みまたは鏡面反射光を示すテクスチャ情報を抽出する抽出工程と、
前記抽出工程により抽出された前記テクスチャ情報に基づき、テクスチャの映り込みまたは鏡面反射光に起因した偽形状の軽減処理を実行する軽減処理工程と、
前記軽減処理を施された形状画像を用いて前記検査対象物の良否を判定する判定工程と
を有することを特徴とする検査方法。
【請求項１２】
検査対象物をフォトメトリックステレオ法により撮像して複数の輝度画像を生成する輝度画像生成手段と、
前記複数の輝度画像においてそれぞれ座標が一致している複数の画素の画素値を用いて前記検査対象物の表面の法線ベクトルと反射率とを算出し、前記検査対象物の表面の法線ベクトルに基づき、当該表面の形状に応じた複数の画素値を有する形状画像を生成するとともに、前記検査対象物の表面の反射率に応じた複数の画素値を有する反射率画像を生成する生成手段と、
前記反射率画像に基づき前記形状画像に含まれているテクスチャの映り込みまたは鏡面反射光を示すテクスチャ情報を抽出する抽出手段と、
前記抽出手段により抽出された前記テクスチャ情報に基づき、テクスチャの映り込みまたは鏡面反射光に起因した偽形状の軽減処理を実行する軽減処理手段と、
前記軽減処理を施された形状画像を用いて前記検査対象物の良否を判定する判定手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は検査装置、検査方法およびプログラムに関する。
【背景技術】
【０００２】
フォトメトリックステレオの原理を使ってワーク（検査対象製品）について正確な三次元形状を計測するためには、ワークの各表面に対して均一な光量で照明光が入射するような照明光源が必要となる。また、照明光の入射角は既知である必要がある。さらに、ワークの部位に応じて光の入射角が変化してはならないため、検査したいワークのサイズに応じたサイズの照明光源が必要となる。また、カメラに映し出された画像のスケール情報（１画素あたりの実寸法）も必要となる。外観検査装置はユーザにより設置されることが多く、これらの厳格な設置条件をユーザに要求するのは困難である。そこで、特許文献１によれば、照明とカメラを一体化した専用装置を提案することで、ユーザの設置負担を軽減している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２０６７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フォトメトリックステレオの原理によれば、それぞれ照明方向が異なる複数の輝度画像から表面の法線ベクトルを求め、この法線ベクトルに基づきワークの表面形状を示す形状画像を生成することができる。ところでワークには文字や模様などのテクスチャが印刷されていることがある。このようなテクスチャは平面的であって凹凸形状ではないが、輝度に影響する。よって、このようなテクスチャの存在するワークの形状画像を生成すると、テクスチャが形状として形状画像に表れてしまうことがある。たとえば、平面的なワークに印刷されている文字が形状画像では凸状の文字となってしまったり、彫りこまれたような窪んだ文字となってしまったりする。このように形状でないものが形状となって表れてしまうことを形状誤差と呼ぶことにする。同様にワークの表面に鏡面反射を起こすような部分が存在する場合も、鏡面反射光によって法線ベクトルに誤差が発生し、形状画像に偽の形状が発生してしまう。
【０００５】
そこで、本発明は、フォトメトリックステレオ法を用いて生成されるワークの表面形状を示す形状画像において形状誤差を削減することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、たとえば、
検査対象物をフォトメトリックステレオ法により撮像して複数の輝度画像を生成する輝度画像生成手段と、
前記複数の輝度画像においてそれぞれ座標が一致している複数の画素の画素値を用いて前記検査対象物の表面の法線ベクトルと反射率とを算出し、前記検査対象物の表面の法線ベクトルに基づき、当該表面の形状に応じた複数の画素値を有する形状画像を生成するとともに、前記検査対象物の表面の反射率に応じた複数の画素値を有する反射率画像を生成する生成手段と、
前記反射率画像に基づき前記形状画像に含まれているテクスチャの映り込みまたは鏡面反射光を示すテクスチャ情報を抽出する抽出手段と、
前記抽出手段により抽出された前記テクスチャ情報に基づき、テクスチャの映り込みまたは鏡面反射光に起因した偽形状の軽減処理を実行する軽減処理手段と、
前記軽減処理を施された形状画像を用いて前記検査対象物の良否を判定する判定手段と
を有することを特徴とする検査装置が提供される。
【発明の効果】
【０００７】
本発明によれば、フォトメトリックステレオ法を用いて生成されるワークの表面形状を示す形状画像において形状誤差を削減できるようになる。
【図面の簡単な説明】
【０００８】
【図１】検査装置の概要を示す図
【図２】フォトメトリックステレオの原理を説明するための図
【図３】積み上げ演算を説明するための図
【図４】特徴サイズに基づく重みの決定方法を示す図
【図５】特徴サイズの異なる検査画像の一例を示す図
【図６】表面形状画像の生成に関与する画像を説明する図
【図７】テクスチャ画像の生成方法を説明する図
【図８】検査装置の機能ブロック図
【図９】設定モードを示すフローチャート
【図１０】ユーザインタフェースの一例を示す図
【図１１】ユーザインタフェースの一例を示す図
【図１２】ユーザインタフェースの一例を示す図
【図１３】ユーザインタフェースの一例を示す図
【図１４】ユーザインタフェースの一例を示す図
【図１５】ユーザインタフェースの一例を示す図
【図１６】ユーザインタフェースの一例を示す図
【図１７】ユーザインタフェースの一例を示す図
【図１８】ユーザインタフェースの一例を示す図
【図１９】ユーザインタフェースの一例を示す図
【図２０】検査モードを示すフローチャート
【図２１】ユーザインタフェースの一例を示す図
【図２２】ユーザインタフェースの一例を示す図
【図２３】ユーザインタフェースの一例を示す図
【図２４】ユーザインタフェースの一例を示す図
【図２５】ユーザインタフェースの一例を示す図
【図２６】ユーザインタフェースの一例を示す図
【図２７】テクスチャの映り込みによって発生した形状誤差（偽形状）の一例を示す図
【図２８】フォトメトリック処理部に含まれる機能の一部を例示した図
【図２９】軽減処理の一例を示す図
【図３０】実施例の効果を示す図
【図３１】画像の明るさの違いに応じてエッジ強度の一例を示す図
【発明を実施するための形態】
【０００９】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１０】
図１は外観検査システムの一例を示す図である。ライン１は検査対象物であるワーク２を搬送する搬送ベルトなどである。照明装置３はフォトメトリックステレオ法にしたがって検査対象物を照明する照明手段の一例である。カメラ４はフォトメトリックステレオ法にしたがって前記照明された検査対象物からの反射光を受光して輝度画像を生成する撮像手段の一例である。画像処理装置５は、カメラ４により取得された複数の輝度画像からワーク２の表面の法線ベクトルを算出し、複数の輝度画像から算出された法線ベクトルに基づく画素値により構成された傾き画像と、当該傾き画像の縮小画像とについて、注目画素に隣接する隣接画素の法線ベクトルを用いて注目画素の画素値を積み上げ演算し、画素値を有する検査画像を生成し、検査画像を用いて検査対象物の良否を判定する外観検査装置である。傾き画像は法線ベクトル画像と呼ばれることもある。画像処理装置５は輝度画像から反射率画像（アルベド画像）を作成してもよい。表示部７は検査に関連する制御パラメータを設定するためのユーザインタフェースや傾き画像、反射率画像、検査画像などを表示する。入力部６は、コンソール、ポインティングデバイス、キーボードなどであり、制御パラメータを設定するために使用される。画像処理装置５と照明装置３は信号線８によって接続されている。画像処理装置５とカメラ４は信号線９によって接続されている。
【００１１】
とりわけ、図１によればカメラ４と照明装置３とが独立して移動可能なようにそれぞれ異なるフレームによって支持されている。このように照明装置３は、カメラ４から独立して移動可能となっているため、ワーク２から照明装置３までの距離を自在に調整できるようになっている。つまり、ワーク２の種類や置き方に応じて照明装置３をワーク２から遠ざけて配置させることで、カメラ４は正反射光を強く受光できるようになる。また、照明装置３をワーク２に近づけて配置することでカメラ４は拡散反射光を強く受光できるようになる。なお、同一のフレームによってカメラ４と照明装置３とが指示されていてもよい。この場合には、照明装置３の取り付け位置を調整するためのクランプ機構などで照明装置３をフレームに固定すればよい。
【００１２】
＜フォトメトリクスステレオの原理＞
一般的なフォトメトリックステレオ法では、図２に示すように、ワーク２に対して４方向から照明光Ｌ１〜Ｌ４を順番に切り替えながら照射し、４枚の輝度画像を生成する。各輝度画像を撮影する際に使用される照明光の方向は一方向だけである。なお、輝度画像は複数の画素により構成されており、４枚の輝度画像において座標が一致する４つの画素は同一のワーク表面に対応している。４つの画素の画素値（輝度値）Ｉ１、Ｉ２、Ｉ３、Ｉ４と、法線ベクトルｎとの間には図２示した式１が成り立つ。ここでρは反射率である。Ｌは各方向からの照明光の光量であり、既知である。ここでは４方向とも光量は同一である。Ｓは照明方向行列であり、既知である。この数式を解くことで各座標（ワーク表面）ごとの反射率ρと法線ベクトルｎが求められる。その結果、反射率画像と傾き画像とが得られる。
【００１３】
本実施形態では、さらに、傾き画像から高さ成分を抽出しワークの形状を示す形状画像を検査画像として作成する。検査画像は、図２に示し式２である積み上げ演算式により求められる。ここで、ｚｎはｎ回目の積み上げ結果であり、ワーク表面の形状を示している。ｘ、ｙは画素の座標を示している。ｎは何回目の繰り返し計算であるかを示している。ｐは水平方向の傾き成分を示し、ｑは垂直方向の傾き成分を示している。ｐ、ｑは法線ベクトルｎから求められる。ｗは重みである。また、１回目の積み上げ演算では１／１の傾き画像を用い、２回目の積み上げには１／２の縮小傾き画像を用い、３回目の積み上げには１／４の縮小傾き画像を用いる。縮小画像を作成する際にはガウシアン処理を施してから縮小処理が施されてもよい。
【００１４】
本実施形態では積み上げ演算において特徴サイズというパラメータを採用する。特徴サイズは積み上げ演算において使用される縮小画像の成分に対する重みを与えるパラメータである。特徴サイズはワーク２の表面形状の大きさを示すパラメータである。たとえば、特徴サイズが１であればｘｙ方向で注目画素に隣接した４つの画素についての重みが最も大きくされて積み上げ演算される。特徴サイズが２であればｘｙ方向で注目画素に隣接した８つの画素についての重みが最も大きく設定されて積み上げ演算が実行される。ただし、８つの画素を用いて演算することは演算量の増大を招くため、上述した縮小画像を作成して演算に使用する。つまり、８つの隣接画素を用いる代わりに、傾き画像を１／２に縮小して演算を実行する。これにより、ある注目画素について縮小画像における４つの画素を演算に考慮すればよいことになる。これは特徴サイズが４、８、１６、３２と増加したときもそれに応じた縮小画像を作成し、特徴サイズに対応した縮小画像について重みを最大に設定することで、同様の演算負荷の軽減効果が得られる。
【００１５】
図３は積み上げ演算の一例を示している。この例では法線ベクトルｎから求められた２枚の傾き画像（水平方向の傾き成分ｐの画像と垂直方向の傾き成分ｑの画像）を入力としている。まず、縮小度の大きい傾き画像で全体の形状を積み上げ、それよりも縮小度の小さい画像で細部形状を積み上げる。これにより短時間で全体の形状を復元できるようになる。図３によれば、たとえば、１／３２の縮小画像について式２により注目画素についてワーク表面の形状ｚを算出する。重みｗは特徴サイズに応じて決定される。縮小画像を構成する１つ１つの画素を注目画素として積み上げ演算をイタレーション（繰り返し処理）する。ｚの初期値はゼロである。次に式２にしたがって１／１６の縮小画像についてｚを算出する。ここでは、１／３２の演算結果に対して１／１６の縮小画像の傾き成分が積み上げられる。同様にして、１／８縮小画像から１／１画像まで積み上げ演算が実行される。
【００１６】
図４は各特徴サイズごと重みの一例を示している。横軸は解像度レベル（縮小度）を示し、縦軸は重みを示している。図４からわかるように、特徴サイズ１では縮小度が最も小さいレベル０（１／１画像）の重みが最大となる。これにより微細な形状を積み上げることが可能となる。特徴サイズ２ではレベル１（１／２画像）の重みが最大となる。これによりさらに大きなサイズの形状を積み上げることが可能となる。このように各重みは、特徴サイズに対応したレベルでピークが生じるように決定される。
【００１７】
形状画像の復元方法としては、上記の積み上げ演算の他に公知のフーリエ変換積分法を採用することもできる（A Method for Enforcing Integrability in Shape from Shading Algorithms, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.10, No.4 July 1988）。当該方法においても計算プロセスにおいて縮小画像を生成し、重み付け成分を調整することにより抽出する特徴サイズを変更することが可能である。
【００１８】
図５は特徴サイズの違いに応じた検査画像の一例を示している。特徴サイズ４では細部の形状が抽出されており、特徴サイズ６４では全体の形状が抽出されており、特徴サイズ１６ではこれらの中間的なサイズの形状が抽出されていることがわかる。このように小さな特徴サイズは細かい傷を検査するのに役立ち、大きな特徴サイズは物体の有無の判別に適しており、中間の特徴サイズは凹凸文字のＯＣＲなどに適している。つまり検査ツールに応じて適切な特徴サイズを選択することで検査精度を向上させることが可能となる。
【００１９】
図６はフォトメトリックステレオ法による検査画像の作成工程を示す図である。輝度画像６０１〜６０４はそれぞれ照明方向の異なる照明光によりワーク２を照明して取得された輝度画像である。なお、輝度画像６００は４方向から同時に照明して得られた輝度画像である。それぞれ照明方向の異なる照明光によりワーク２を照明して取得された複数の輝度画像から演算によりワーク表面の法線ベクトルが求められる。傾き画像６１１は、輝度画像６０１〜６０４から求められた法線ベクトルのＸ方向の傾き成分を画素値とした傾き画像である。傾き画像６１２は、輝度画像６０１〜６０４から求められた法線ベクトルのＹ方向の傾き成分を画素値とした傾き画像である。反射率画像６１０は、輝度画像６０１〜６０４から求められた法線ベクトルから、ワーク表面の傾きによる輝度値の変動分を除去し、ワーク表面の反射率を画像にした反射率画像である。検査画像６２１〜６２３は傾き画像６１１、６１２から求められたそれぞれ特徴サイズの異なる画像（表面形状画像）である。なお、検査画像６２１〜６２３も傾き成分に基づく画素により構成されているため、傾き画像の一種である。このような手順でワーク２の検査画像が生成される。なお、検査ツールに依存して全方向照明画像である輝度画像６００や反射率画像６１０が検査画像として採用されてもよい。全方向照明画像とは、照明装置３が備える複数の光源をすべて点灯させて取得された輝度画像のことである。
【００２０】
＜テクスチャ情報＞
テクスチャ情報とはワーク２の表面の反射率ρに基づく情報である。式１によって反射率ρが求められる、つまり４枚の輝度画像から１枚の反射率画像が得られる。反射率画像はワーク表面の反射率ρに比例した画素値を有する画像である。図７に示すように、４枚の輝度画像７０１〜７０４から法線ベクトルを算出し、算出された法線ベクトルと複数の輝度画像の各々対応する画素の輝度値に基づいて各画素の反射率に比例した画素値を算出することで反射率画像であるテクスチャ画像７１１、７１２が求められる。この合成方法としては４枚の輝度画像の画素平均によってテクスチャ画像を求める方法や、４枚の輝度画像からハレーションを除去してから画素平均によってテクスチャ画像を求める方法などがある。テクスチャ画像７１１は画像平均によって求められたものであり、テクスチャ画像７１２はハレーション除去によって求められたものの一例である。４枚の輝度画像において座標が一致する画素が４つ存在する。４つの画素のうち画素値が１番大きい画素を除外したり、画素値の大きい順に１番目からＮ番目（Ｎは３以下の自然数）までの画素を除外したりすることでハレーションを除去することが可能である。ハレーションは高い輝度として画像に表れるからである。テクスチャ画像７１１、７１２はともに反射率に基づく画素により構成されているため、反射率画像の一種である。
【００２１】
＜機能ブロック＞
図８は検査装置のブロック図である。この例では照明装置３、カメラ４および画像処理装置５がそれぞれ個別の筐体に収容されているが、これは一例に過ぎず、適宜に一体化されてもよい。照明装置３は、フォトメトリックステレオ法にしたがって検査対象物を照明する照明手段の一例であり、光源群８０１とこれを制御する照明コントローラ８０２を備えている。複数の発光素子で１つのセグメントが構成され、さらに複数のセグメントによって光源群８０１が構成されていてもよい。セグメントの数は一般的には４つであるが、３つ以上であればよい。これは３方向以上の照明方向からワーク２を照明できれば、フォトメトリックステレオ法により検査画像を生成できるからである。図１に示したように照明装置３の外形はリング状をしていてもよい。また、照明装置３は、それぞれ分離した複数の照明ユニットにより構成されていてもよい。たとえば、市場にはワーク２を撮影するために使用される照明ユニットが存在しているが、これらはフォトメトリックステレオ用に開発されたものではない。ただし、このような照明ユニットを複数個用意するとともに、これらを制御する照明コントローラを接続することで、照明装置３を構成してもよい。照明コントローラ８０２は、画像処理装置５からの制御コマンドに応じて光源群８０１の点灯タイミングや照明パターン（点灯パターン）を制御する。照明コントローラ８０２は照明装置３に内蔵されているものとして説明するが、カメラ４に内蔵されていてもよいし、画像処理装置５に内蔵されていてもよいし、これらからは独立した筐体に収容されていてもよい。
【００２２】
カメラ４はフォトメトリックステレオ法にしたがって照明された検査対象物からの反射光を受光して輝度画像を生成する撮像手段の一例であり、画像処理装置５からの制御コマンドに応じて撮像処理を実行する。カメラ４はワーク２の輝度画像を作成して画像処理装置５に転送してもよいし、撮像素子から得られる輝度信号を画像処理装置５に転送し、画像処理装置５が輝度画像を生成してもよい。輝度信号は輝度画像の元になる信号であるため、広義には輝度信号も輝度画像である。
【００２３】
画像処理装置５は、コンピュータの一種であり、ＣＰＵやＡＳＩＣなどのプロセッサ８１０と、ＲＡＭ、ＲＯＭ、可搬記憶媒体などの記憶装置８２０と、ＡＳＩＣなどの画像処理部８３０と、ネットワークインタフェースなどの通信部８５０とを有している。プロセッサ８１０は検査ツールの設定や、制御パラメータの調整、検査画像の生成・再生成・更新を担当する。フォトメトリック処理部８１１は、カメラ４により取得された複数の輝度画像からワーク２の表面の法線ベクトルｎを算出し、複数の輝度画像から算出された法線ベクトルｎに基づく画素値を有する傾き画像と、傾き画像の縮小画像とについて、注目画素に隣接する隣接画素の法線ベクトルｎを用いて当該注目画素の画素値を積み上げ演算し、当該画素値を有する検査画像を生成する演算手段（検査画像生成手段）として機能する。なお、具体的には上述した数式などを使用して検査画像が生成される。照明制御部８１２は、照明コントローラ８０２に対して制御コマンドを送信することで点灯パターンや照明切り替えタイミングなどを制御する。撮像制御部８１３は、カメラ４を制御する。ＵＩ管理部８１４は、検査ツールを設定するためのユーザインタフェース（ＵＩ）や検査画像を生成するために必要となるパラメータを設定するためのＵＩなどを表示部７に表示し、入力部６から入力された情報したがって検査ツールやパラメータを設定する。とりわけ、特徴サイズ設定部８１５は積み上げ演算において使用される縮小画像の成分に対する重みｗを与えるパラメータである特徴サイズを設定する設定手段として機能する。画像選択部８１６は複数の輝度画像や複数の検査画像、複数の傾き画像、複数の反射率画像のうち表示すべき画像などを選択したりする。画像選択部８１６はカメラ４により取得された複数の輝度画像および検査画像のうち保存対象もしくは出力対象となる画像を選択してもよい。検査ツール設定部８１７は画像選択部８１６により選択された検査画像に対して検査ツールを設定する。検査ツール設定部８１７は、たとえば、基準画像に対して傷検査領域を設定したり、文字認識領域を設定したりする。基準画像設定部８１８は良品から取得された検査画像である基準画像を設定する。表示制御部８５１は輝度画像と検査画像を切り替えて表示部７に表示させたり、または、輝度画像と検査画像とを同時に表示させたりする。また表示制御部８５１は制御パラメータが調整されると表示部７に表示されている画像を当該制御パラメータが反映された画像に更新する。検査ツール設定部８１７は、表示制御部８５１、特徴サイズ設定部８１５、画像選択部８１６、基準画像設定部８１８および条件設定部８１９を内包していてもよい。画像処理部８３０は基準画像を用いて検査画像にパターンサーチを実行し、検査画像に検査領域（例：傷検査領域や文字認識領域など）を設定する検査領域設定手段として機能する。検査領域は、たとえば、文字認識領域である。条件設定部８１９は画像を表示部７や通信部８５０に接続された外部機器に出力する条件や、可搬記憶媒体などに保存する条件を設定する。判定部８４０は検査画像を用いてワーク２の良否を判定する判定手段として機能する。たとえば、判定部８４０は画像処理部８３０において検査画像を用いて実行された検査の結果を受け取って検査結果が良品条件（公差など）を満たしているかどうかを判定する。
【００２４】
記憶装置８２０は、カメラ４によって取得された輝度画像のデータである輝度画像データ８２１、フォトメトリック処理部８１１により生成された傾き画像データ８２２や反射率画像データ８２３を記憶する。また、記憶装置８２０は各種の設定データやユーザインタフェースを生成するためのプログラムコードなども記憶している。記憶装置８２０は特徴サイズがそれぞれ異なる検査画像を記憶して保持していてもよい。また、記憶装置８２０は検査画像に加え、検査画像の元になった傾き画像データや反射率画像データを記憶してもよい。これらはワーク２の誤判定が見つかったときに、検査画像、傾き画像または反射率画像のいずれに問題があったのかを特定して、その制御パラメータを修正するのに役立つであろう。
【００２５】
画像処理部８３０は、フォトメトリック処理部８１１によって生成された検査画像（傾き画像データ８２２や反射率画像データ８２３）を用いて外観検査を実行する。傷検査部８３１は、それぞれ異なる特徴サイズ用いて生成された複数の検査画像の傷検査領域において傷検査を実行する。ＯＣＲ部８３２はそれぞれ異なる特徴サイズ用いて生成された複数の検査画像に対して文字認識処理を実行する文字認識処理手段として機能する。傷検査部８３１やＯＣＲ部８３２は記憶装置８２０に記憶されている検査画像（傾き画像データ８２２や反射率画像データ８２３）を読み出し、文字認識領域において検査を実行し、検査結果を記憶装置８２０に書き込んだり、判定部８４０に渡したりしてもよい。判定部８４０はこの検査結果に基づきワーク２の良否を判定する。
【００２６】
＜設定モード＞
検査システムには検査ツールを設定する設定モードと、設定された検査ツールにしたがってワーク２の外観検査を実行する検査モード（運転モード）とを有しいている。ここでは設定モードの一例について説明する。
【００２７】
図９は設定モードに関するフローチャートである。入力部６を通じて設定モードの開始が指示されると、プロセッサ８１０のＵＩ管理部８１４は検査ツールを設定するためのＵＩを表示部７に表示する。
【００２８】
図１０はＵＩの一例を示している。ＵＩ管理部８１４が表示部７に表示するＵＩ１０００には、検査結果の保存先を指定するプルダウンメニュー１００１や検査ツールの名称を入力するテキストボックス１００２が設けられている。ＵＩ管理部８１４は実行ボタンの押し下げを検出すると次のＵＩを表示する。
【００２９】
図１１に示すＵＩ１１００には、検査ツールを設定するためのガイダンス１１０１と、カメラ４に撮像を指示する計測実行ボタン１１０２と、カメラ４により撮像された画像を表示する表示領域１１０３と、カメラ設定の開始を指示するカメラ設定ボタン１１０４を有している。なお、画像選択部１１０５は、表示領域１１０３に表示する画像や検査に使用する画像を選択するためのボタンである。この例では画像選択部１１０５によって、形状１、形状２、テクスチャおよびノーマルのうちいずれか１つの画像が択一的に選択される。計測実行ボタン１１０２が操作されると、撮像制御部がカメラ４に撮像を指示する。ＵＩ管理部８１４はカメラ４により取得された輝度画像を表示領域１１０３にレンダリングする。なお、画像選択部１１０５によって別の画像が選択されると、ＵＩ管理部８１４は画像選択部１１０５によって選択された画像を表示領域１１０３にレンダリングする。このようにユーザは画像選択部１１０５を操作するか、入力部６を通じて画像の切り替えを指示することで表示領域１１０３に表示される画像を切り替えることができる。カメラ設定ボタン１１０４が操作されると、ＵＩ管理部８１４は次のＵＩに切り替える。
【００３０】
Ｓ９０１でＵＩ管理部８１４はカメラ４を設定するためＵＩを表示部７に表示し、カメラ設定を実行する。図１２はカメラ設定ＵＩ１２００の一例を示している。カメラ設定タブ１２０１には、カメラの機種を設定するプルダウンメニュー１２０２、画像サイズを設定するプルダウンメニュー１２０３、シャッタースピードを設定するプルダウンメニュー１２０４、カメラの感度を設定するスライダー１２０５などを有している。なお、計測実行ボタン１１０２が操作されると、ＵＩ管理部８１４は、その時点で設定されている撮像パラメータにしたがってカメラ４によって取得された輝度画像を表示領域１１０３に表示する。これによりユーザは設定したパラメータが適切かどうかを判定できる。
【００３１】
Ｓ９０２でＵＩ管理部８１４はフォトメトリック処理を設定するためＵＩを表示部７に表示し、設定を実行する。たとえば、カメラ設定ＵＩ１２００に設けられているフォトメトリックステレオ設定タブ１２１０が操作されたこと検知すると、ＵＩ管理部８１４は、図１３に示すように、フォトメトリックステレオ設定タブ１２１０を有効に切り替える。有効に切り替えるとは、ユーザ操作可能な状態にフォトメトリックステレオ設定タブ１２１０の表示状態を切り替えることをいう。フォトメトリックステレオ設定タブ１２１０には、画像を選択するためのプルダウンメニュー１３０１と、特徴サイズ設定部１３０２とが含まれている。この例では、それぞれ特徴サイズが異なる３つの検査画像（形状１、形状２、形状３）のいずれかを選択できるものとする。プルダウンメニュー１３０１によって選択された画像ごとに特徴サイズ設定部１３０２により特徴サイズが設定される。
【００３２】
フォトメトリックステレオ設定タブ１２１０に点灯パターンを選択するための選択部が配置されてもよい。また、一回の照明あたりの発光量を指定する指定部が設けられてもよい。
【００３３】
Ｓ９０３でＵＩ管理部８１４は検査ツールを設定するためのＵＩを表示部７に表示し、設定を実行する。図１４は検査ツールを設定するＵＩ１４００の一例である。画像選択ボタン１４０１は、複数ある検査画像のうち検査に使用する検査画像を選択するためのボタンである。検査カテゴリー選択ボタン１４０２は、複数ある検査カテゴリーのうち検査ツールとして追加すべきツールのカテゴリーを選択するためのボタンである。認識対象設定ボタン１４０３は複数ある認識対象のうち１つを選択するためのボタンである。この例では、検査画像として「形状１」が選択され、カテゴリーとして「認識」が選択され、認識処理として「文字認識」が選択されている。追加ボタン１４０４が操作されると、ＵＩ管理部８１４は次のＵＩに切り替える。図１５は基準画像登録ＵＩ１５００を示している。基準画像登録ＵＩ１５００には、上述した計測実行ボタン１１０２、表示領域１１０３に加え、登録ボタン１５０１が配置されている。登録ボタン１５０１が操作されると、ＵＩ管理部８１４は計測実行ボタン１１０２によって取得され、表示領域１１０３に表示されている画像を基準画像として登録する。登録が完了すると、ＵＩ管理部８１４は次のＵＩに切り替える。
【００３４】
図１６は計測領域設定ＵＩ１６００を示している。計測領域設定ＵＩ１６００の表示領域１１０３には基準画像１６０１と、計測領域を示すフレーム１６０２が配置される。ＵＩ管理部８１４は入力部６からの指示に応じてフレーム１６０２の位置とサイズを変更する。ユーザは基準画像１６０１のうち計測対象としたい部分の位置とサイズに合わせてフレーム１６０２の位置とサイズを調整する。なお、さらに、ＵＩ管理部８１４は、文字の切り出し設定や、認識すべき文字の具体例（文字画像）と文字画像に対応する文字キャラクタを登録するための辞書設定などを実行してもよい。
【００３５】
次に傷検査ツールについて説明する。図１７に示すように、検査カテゴリー選択ボタン１４０２によって傷検査が選択されると、ＵＩ管理部８１４は、検査内容選択ボタン１７０１を表示する。この例では、検査内容選択ボタン１７０１によって傷の総面積を計測するツールが選択されている。追加ボタン１４０４が操作されると、ＵＩ管理部８１４はＵＩを切り替える。
【００３６】
図１８は計測領域設定ＵＩ１８００を示している。計測領域設定ＵＩ１８００には、計測領域（傷検査領域）を示すフレーム１８０２が配置される。フレーム１８０２の形状は変更可能であり、たとえば、形状を選択するためのプルダウンメニュー１８０１によって複数の形状のうちいずれかの形状が選択される。ＵＩ管理部８１４はプルダウンメニュー１８０１によって選択された形状のフレーム１８０２を表示領域１１０３にレンダリングする。ＵＩ管理部８１４は入力部６からの指示に応じてフレーム１８０２の位置とサイズを変更する。
【００３７】
図１９は傷の検出条件を設定するための設定ＵＩ１９００を示している。設定ＵＩ１９００には、傷の検出方向を選択するためのプルダウンメニュー１９０１と、傷のセグメントサイズを指定するためのボックス１９０２と、傷のレベルを指定するためのスライダー１９０３が配置されている。設定ＵＩ１９００により設定された傷検出条件に基づいて傷検査領域内（フレーム１８０２内）で傷検査部８３１が傷を検出したときは、ＵＩ管理部８１４が傷の位置に傷検出マーク１９１０を表示してもよい。これにより、ユーザは、傷検出条件が適切かどうかを判断できよう。
【００３８】
＜検査モード＞
図２０は検査モードを示すフローチャートである。入力部６を通じて検査モードの開始が指示されると、プロセッサ８１０が動作モードを検査モードに移行させる。
【００３９】
Ｓ２００１でプロセッサ８１０は設定された点灯パターンにしたがって照明方向を切り替えながらワーク２の画像を撮像して取得する。具体的には、照明制御部８１２が、記憶装置８２０に保持されている設定データを参照して点灯パターンを特定し、点灯パターンを指定するためのコマンドを照明コントローラ８０２に送出する。撮像制御部８１３は記憶装置８２０に保持されている設定データを参照してカメラ４に関する制御パラメータ（シャッタースピードや感度など）を特定し、これを指定するコマンドをカメラ４に送信する。フォトメトリック処理部８１１は照明の開始を指示するためのトリガー信号を照明コントローラ８０２に送信するとともに、これと連動して撮像の開始を指示するためのトリガー信号をカメラ４に送信する。照明コントローラ８０２はトリガー信号に同期して照明方向を切り替える。たとえば、照明コントローラ８０２はコマンドにより指定された点灯パターンにしたがって４つの照明方向について１つずつ順番に対応する発光素子を点灯させる。照明コントローラ８０２はコマンドと点灯パターンとの対応関係をメモリなどに保持していてもよい。トリガー信号は照明開始時に１つだけ発行されてもよいし、切り替えタイミングにおいても発行されてもよい。カメラ４は制御パラメータにしたがってワーク２を撮像し、輝度画像を画像処理装置５に転送する。このようにして、たとえば、１つの照明方向につき１枚の輝度画像が生成される。
【００４０】
Ｓ２００２でプロセッサ８１０は複数の輝度画像から法線ベクトルｎと反射率ρとを求める。上述したようにフォトメトリック処理部８１１は複数の輝度画像の画素値について式１を適用し、法線ベクトルｎと反射率ρとを求める。
【００４１】
Ｓ２００３でプロセッサ８１０は設定された特徴サイズにしたがって検査画像を生成する。上述したようにフォトメトリック処理部８１１は特徴サイズに対応する重みＷを重みテーブルなどから決定し、式２を用いて積み上げ演算を実行して検査画像（傾き画像）を生成する。このように、フォトメトリック処理部８１１は複数の輝度画像からワーク２の表面の法線ベクトルｎに基づく画素値を有する傾き画像を生成してもよい。なお、それぞれ値の異なる複数の特徴サイズを設定されている場合、フォトメトリック処理部８１１は設定された複数の特徴サイズのそれぞれについて検査画像を生成してもよい。また、フォトメトリック処理部８１１は上述した手法により反射率画像やテクスチャ画像を生成してもよい。たとえば、フォトメトリック処理部８１１は複数の輝度画像からワーク２の表面の法線ベクトルｎとともにワーク２の表面の反射率ρを算出し、当該反射率ρに基づく画素値を有する反射率画像を生成してもよい。ここでは検査の対象とされる画像が生成され、検査の対象とさていない画像については生成が省略されてもよい。
【００４２】
Ｓ２００４でプロセッサ８１０は検査画像を表示部７に表示する。ＵＩ管理部８１４は検査画像とともに、輝度画像、傾き画像、反射率画像を表示部７に同時または選択的に表示してもよい。選択的に表示する場合、ＵＩ管理部８１４は入力部６からの切り替え指示にしたがって、たとえば、４つの輝度画像を順番に切り替え表示してもよい。たとえば、入力部６のうちコンソールに設けられた特定のキーが画像の切替ボタンとして割り当てられていてもよい。
【００４３】
Ｓ２００５でプロセッサ８１０は画像処理部８３０に検査の実行を指示する。画像処理部８３０は検査を指示されると、予め設定された検査ツールを起動して検査画像に対して検査を実行する。たとえば、傷検査部８３１は設定された計測領域や検出条件にしたがって傷のレベルを判別し、検査結果（傷のレベル）を判定部８４０に転送する。なお、傷検査部８３１は、上述した基準画像を用いてパターンサーチを実行して検査領域を設定し、検査領域において検査を実行してもよい。また、ＯＣＲ部８３２は、予め設定された文字認識設定にしたがって検査画像に対して文字認識処理を実行し、文字認識結果を判定部８４０に転送する。ＯＣＲ部８３２も上述した基準画像を用いてパターンサーチを実行して検査領域（文字認識領域）を設定し、検査領域において検査を実行してもよい。
【００４４】
Ｓ２００６でプロセッサ８１０の判定部８４０は検査結果と判定閾値とを比較して、ワーク２が良品であるかどうかを判定する。たとえば、傷検査とＯＣＲの両方を実行するように設定されている場合、判定部８４０は傷検査部８３１の検査結果とＯＣＲ部８３２の文字認識結果との両方が合格レベルにあるときに、ワーク２を良品と判定する。
【００４５】
＜画像保存設定＞
図２１は検査フローを設定するＵＩ２１００の一例を示している。ＵＩ管理部８１４はＵＩ２１００を表示部７に表示させ、検査フローのスタートからエンドまでの間に実行される複数の工程を入力部６から入力される指示にしたがって設定して行く。この例では、撮像工程、パターンサーチ工程、位置補正工程および傷検査工程が検査フローに追加されている。たとえば、入力部６を通じて検査フローのエンドが指定されると、ＵＩ管理部８１４はエンドにおいて検査履歴を蓄積するように設定してもよい。検査履歴とは、検査結果や検査に使用された画像などである。
【００４６】
なお、各工程を追加するときにＵＩ管理部８１４は各工程で使用される画像の選択を、入力部６を通じて受け付けてもよい。たとえば、ユーザは入力部６を通じて撮像工程に対しては照明方向と異なる４つの輝度画像や傾き画像、反射率画像などを取得対象として指定し、パターンサーチ工程に対してはいずれかの輝度画像（全方向照明画像など）をサーチ対象として指定し、傷検査工程に対しては傾き画像から生成された検査画像などを検査対象として指定してもよい。
【００４７】
図２２は履歴を蓄積する条件を設定するＵＩ２２００の一例を示している。蓄積条件を識別するための識別情報を設定する設定部２２０１は複数ある識別情報から設定対象となる識別情報を選択するためのプルダウンメニューによって構成されている。この例では設定部２２０１において「０：」という識別情報の蓄積条件が選択されている。蓄積条件としては、たとえば、検査結果が良品ではないときにのみ画像を蓄積するといった条件や、検査結果に依存せずに各ワークごとに常に画像を蓄積するといった条件などがある。ここでは、プロセッサ８１０は詳細設定ボタンなどが押されたことを検知すると条件設定部８１９を起動する。条件設定部８１９は、たとえば、常に画像を保存または出力するモードと、判定部８４０により検査対象物が良品ではないと判定されたときに画像を保存または出力するモードとのうちいずれかを設定してもよい。画像選択部２２０２は蓄積条件が満たされたときに保存する画像を選択する。ここでは画像選択部２２０２によって「すべて」と「指定」とを選択することができる。保存先選択部２２０３は、画像の保存先（例：内蔵メモリ、メモリカードなどの可搬メディアやＦＴＰサーバなどのネットワークストレージ）を選択するためのプルダウンメニューによって構成されている。
【００４８】
図２３は画像選択部２２０２で「指定」が選択されたときにＵＩ管理部８１４が表示部７に表示させるＵＩ２３００の一例を示している。この例では、検査フローにおいて扱われるすべての種類の画像のうち実際に保存すべき画像を選択するためのチェックボックス２３０１が設けられている。形状１、２は特徴サイズが異なる検査画像（傾き画像）である。テクスチャは反射率画像である。ノーマルは全方向照明により取得された画像である。４つの矢印は照明方向を示すアイコンである。つまり矢印マークによって照明方向が異なる４つの輝度画像が区別されている。チェックボックスにチェックされた画像が保存対象として設定される。
【００４９】
ところで、プロセッサ８１０は判定部８４０が判定を終了した後で画像を保存または出力する条件が満たされているかどうかを判断する判断手段を備えていてもよい。すなわち、検査フローのエンド部において、プロセッサ８１０は、条件設定部８１９により設定された蓄積条件や出力条件が満たされているかどうかを判断してもよい。
【００５０】
図２４は画像出力工程２４０１を検査フローに追加する例を示している。上述した実施例では検査フローの最後に画像を出力するように設定したが、この例では入力部６から入力されるユーザ指示にしたがってＵＩ管理部８１４が検査フローの任意の位置に画像出力工程２４０１を設定する。このように、プロセッサ８１０は、判定部８４０が判定を終了する前に位置する画像出力工程２４０１で画像を保存または出力する条件が満たされているかどうかを判断してもよい。画像出力工程２４０１に関連する蓄積設定等は図２１ないし図２３を用いて説明したのと同様であってもよいし、異なってもよい。
【００５１】
図２５は蓄積設定（出力設定）に関するＵＩの別の例を示している。画像出力工程２４０１が入力部６により選択された状態で、さらに入力部６により設定を開始する指示が入力されると、ＵＩ管理部８１４はＵＩ２５０１を表示する。画像変数２５０２は出力すべき画像を選択する画像選択部として機能し、この例では検査フローにおける各工程に付与されている画像変数によって出力すべき画像が指定される。つまり、各工程ごとに出力すべき画像を選択できる。ＵＩ２５０１において画像の出力枚数や画像形式なども設定されてもよい。出力先選択部２５０３は画像の出力先（例：内蔵メモリ、メモリカードなどの可搬記憶メディアやＦＴＰサーバなどのネットワークストレージ）を選択するためのプルダウンメニューである。
【００５２】
図２６は画像を選択するＵＩ２６００の一例である。ＵＩ２５０１において詳細設定ボタンが押し下げられると、ＵＩ管理部８１４はＵＩ２６００を表示する。ＵＩ２６００ではすべての画像を保存するか、個別指定するかを選択するためのラジオボタンや、画像を個別に選択するためのチェックボックスなどが配置されている。この例では、ラジオボタンにより個別指定が選択されているため、チェックボックスが有効となり、チェックボックスを通じていくつかの画像が選択されている。このように、複数の輝度画像、検査画像、全方向照明画像および複数の輝度画像を合成して得られた合成輝度画像から保存対象もしくは出力対象となる画像が選択されてもよい。また、それぞれ特徴サイズが異なる複数の検査画像から保存対象もしくは出力対象となる画像を選択できるようにＵＩ２６００が構成されてもよい。また、複数の輝度画像、検査画像および検査対象物の表面の反射率を画素値とした反射率画像から保存対象もしくは出力対象となる画像を選択できるようにＵＩ２６００が構成されてもよい。
【００５３】
＜形状誤差の軽減処理＞
図２７はテクスチャの映り込みによって発生した形状誤差（偽形状）の一例を示す図である。上述したようにワークの表面に印刷された文字や模様などのテクスチャが形状画像に形状となって表れてしまうことがある。形状画像２７０３は８つの輝度画像２７００から生成された形状画像である。８つの輝度画像２７００にはそれぞれ短冊状のワーク２７０１とその表面に印刷された文字２７０２が写っている。このように印刷された文字２７０２は平面的であり、本来は３次元形状を構成しない。しかしながら、形状画像２７０３には文字２７０２が凹凸形状として表れてしまっている。また、形状画像２７１３は８つの輝度画像２７１０から生成された形状画像である。８つの輝度画像２７１０には円形の平面的なワーク２７１１とその表面に印刷された格子模様２７１２が写っている。このように印刷された格子模様２７１２は平面的であり、本来は凹凸形状を構成しない。しかしながら、形状画像２７１３には格子模様２７１２が凹凸形状として表れてしまっている。図２７が示すように模様の縁部など反射率が大きく変化する場所がエッジとなって形状画像に表れやすい。
【００５４】
このような形状誤差は、撮像素子のオフセットや輝度の飽和、鏡面反射光の存在、照明光の角度ムラ、照明光の光量ムラ、環境光の存在、撮像素子の受光光量と輝度信号との線形性の崩れなどが原因となり、大きくなりやすい。つまり、これらによってテクスチャが映り込み易くなるため、算出された傾きに誤差が発生し、傾き画像に偽のエッジが発生し、最終的には形状画像に偽の凹凸が発生する。
【００５５】
そこで、フォトメトリック処理部８１１は、形状画像に含まれているテクスチャの映り込みまたは鏡面反射光を示すテクスチャ情報を反射率画像から抽出し、テクスチャ情報に基づきテクスチャの映り込みまたは鏡面反射光に起因した偽形状の軽減処理を実行する。
【００５６】
図２８はフォトメトリック処理部８１１に含まれる機能の一部を例示した図である。本実施形態では、形状画像データを生成する際に反射率画像データからテクスチャによる偽形状を特定し、偽形状が軽減されるように重みづけ演算を行う。
【００５７】
カメラ４はワークをフォトメトリックステレオ法により撮像して複数の輝度画像データ８２１を生成する。上述したように、フォトメトリック処理部８１１は、複数の輝度画像データにおいてそれぞれ座標が一致している複数の画素の画素値を用いてワークの表面の法線ベクトルと反射率とを算出する。ｘ成分傾き画像演算部２８０１は、法線ベクトルを算出し、そのうちｘ成分の傾きを求めてｘ成分の傾き画像データを生成する。同様に、成分傾き画像演算部２８０１は、法線ベクトルからｘ成分の傾きを求めてｙ成分の傾き画像データを生成する。縮小画像演算部２８０２は、ｘ成分の傾き画像データを縮小して縮小画像データを生成する。ここでは複数レベルの縮小度の縮小画像データが生成されてもよい。同様に縮小画像演算部２８１２はｙ成分の傾き画像データを縮小して縮小画像データを生成する。ここでは複数レベルの縮小度の縮小画像データが生成されてもよい。微分部２８０３はｘ成分の縮小画像データに微分演算を施す。同様に微分部２８１３はｙ成分の縮小画像データに微分演算を施す。
【００５８】
一方、テクスチャ演算部２８２１は輝度画像データ８２１からテクスチャ（ここでは反射率）を算出し、反射率画像データ（テクスチャ画像データ）を生成する。縮小画像演算部２８２２は反射率画像データを縮小して縮小画像データを生成する。ここでは複数レベルの縮小度の縮小画像データが生成されてもよい。Ｘ方向形状重み演算部２８２３は、反射率画像データや縮小された少なくとも１つの反射率画像データのうち２つ以上の画像データを用いてＸ方向のエッジ強度を算出し、算出したエッジ強度に応じたＸ方向形状重みを算出する。同様に、Ｙ方向形状重み演算部２８２４は、反射率画像データや縮小された少なくとも１つの反射率画像データのうち２つ以上の画像データを用いてＹ方向のエッジ強度を算出し、算出したエッジ強度に応じたＹ方向形状重みを算出する。重みは各画素ごとに決定される。重みはテクスチャ情報によって特定される偽形状を軽減するような値に決定される。たとえば、テクスチャのエッジ強度が所定値よりも高い領域を特定し、特定された領域に対応する形状画像の領域のコントラストを低下させるように重みが決定される。このように、文字や模様などの輪郭は偽形状となりやすいが、これらはテクスチャ画像においてエッジ検出を実行することでその画素の位置とエッジ強度と求まり、偽形状の軽減に有用である。
【００５９】
重みづけ合成部２８０４は、ｘ成分について、縮小していない傾き画像データや少なくとも１つの縮小傾き画像データとのうち２つ以上の画像データに対して画素ごとにＸ方向形状重みを乗算する。たとえば、重みづけ合成部２８０４は、２つの画像の画素値（傾き）の微分に対して重みづけを行ってもよい。なお、形状画像の生成方法自体は公知の方法を採用できる。これは、本実施例では偽形状の軽減するための重みを用いて合成を行う点に特徴があるからである。同様に、重みづけ合成部２８０４は、ｙ成分について、縮小していない傾き画像データや少なくとも１つの縮小傾き画像データとのうち２つ以上の画像データに対して画素ごとにＹ方向形状重みを乗算する。さらに、重みづけ合成部２８０４は画素ごとにｘ成分の積とｙ成分の積を加算して形状画像データ２８９０を生成する。つまり、重みづけ合成部２８０４はＸ方向形状重み演算部２８２３から取得した重みとＹ方向形状重み演算部２８２４から取得した重みを用いて上述した積み上げ演算を行っている。
【００６０】
一般に形状画像を生成するには、テクスチャ演算部２８２１などのテクスチャ画像を生成するための機能は不要である。しかし、本実施例では、テクスチャ画像から偽形状となり得る画素を特定し、その画素のコントラストが低下するように重み作成するために、テクスチャ画像の生成機能を利用している。
【００６１】
＜エッジの方向ごとに重みを算出する利点＞
図２８では重みを計算する際に、エッジの方向に着目して、Ｘ方向のエッジとＹ方向のエッジとのそれぞれに分離してエッジの検出と重みの算出とを実行している。その理由について図２９（Ａ）ないし図２９（Ｃ）を用いて説明する。
【００６２】
図２９（Ａ）はあるワークから得られた傾き画像とテクスチャ画像の一例を示している。図２９（Ｂ）は傾き画像をｘ微分して得られる画像、ｙ微分して得られる画像およびテクスチャ画像から求められた各画素の重みから形状画像が生成されることを示している。この重みはエッジの方向を考慮していないものとする。傾き画像にテクスチャが存在しなければｘ微分して得られる画像には偽形状が発生しない。しかし、この例ではワークにテクスチャが存在するため、ｘ微分して得られる画像には偽形状が発生してしまう。とりわけ、この例では、傾き画像におけるエッジの方向とテクスチャのエッジの方向とが直交しており、偽形状によって形状誤差が発生してしまう。これはエッジの方向に応じて重みを算出することで緩和できる。
【００６３】
図２９（Ｃ）が示すように、Ｘ方向形状重み演算部２８２３がエッジのＸ方向の成分について重みを求め、Ｙ方向形状重み演算部２８２４がエッジのＹ方向の成分について重みを求め、重みづけ合成部２８０４に供給する。図２９（Ｃ）が示すように、重みづけ合成部２８０４は、Ｘ成分の傾き画像にはＸ方向の重みを乗算して形状画像のＸ成分を算出し、Ｙ成分の傾き画像にはＹ方向の重みを乗算して形状画像のＹ成分を算出し、これらを合成して形状画像を生成する。これにより、偽形状による形状誤差が目立ちにくくなる。
【００６４】
図３０は本実施例の効果を示す図である。形状画像３００１は、図２７で説明した形状画像２７０３に対して本実施例の形状誤差の軽減処理を施したものである。印刷文字による偽形状が緩和されることを理解できよう。同様に形状画像３００２は、図２７で説明した形状画像２７１３に対して本実施例の形状誤差の軽減処理を施したものである。ワーク表面に印刷された格子模様による偽形状が緩和されることを理解できよう。
【００６５】
＜縮小画像を用いることによる利点＞
図２８では傾き画像やテクスチャ画像から縮小画像を生成するものとして説明したが、これらは本発明にとって必須ではない。ただし、縮小画像を用いることで処理時間を大幅に削減できる。
【００６６】
たとえば、縮小されていない傾き画像のサイズを１０２４ピクセル×１０２４ピクセルと仮定する。この場合、各画素ごとに演算が必要となるため、トータルでは１０４８５７６画素について演算が必要となってしまう。これはテクスチャ画像についても同様である。また、１つの画素について形状を求めるために、±６４画素で差分を求めると仮定する。この場合、１つの画素について形状を求めるためにはトータルで８１２９画素（６４×６４×２＝８１９２）について積和が必要となる。つまり、トータル演算量は１０４８５７６×８１２９＝８５８９９３４５９２となる。
【００６７】
一方で、画像サイズを１／６４に縮小すると、傾き画像やテクスチャ画像のサイズは１６画素×１６画素となる。よって、算出対象となる画素の数は２５６画素となる。また、１画素について形状を求めるためには、２画素について演算すればよい（１×１×２＝２）。ただし、縮小のために積和が必要な画素の数は１０４８５７６画素である。よって、トータル演算量は２５６×２＋１０４８５７６＝１０４９０８８となる。
【００６８】
このように元の画像をそのまま使用する場合のトータル演算量と、縮小画像を使用する場合のトータル演算量とでは８１８８倍も異なる。よって、縮小画像を採用することで、大幅に演算量を削減できるようになり、短時間で形状画像が得られるようになる。
【００６９】
＜エッジの計算方法の工夫＞
たとえば、ｘ方向においてｉ番目の画素についてエッジを求めることを考える。単純な方法では、注目画素であるｉ番目の画素のエッジ強度は、注目画素の左隣に位置するｉ−１番目の画素値と注目画素の右隣に位置するｉ＋１番目の画素値との差分である。つまり、Ｘ方向形状重み演算部２８２３は、注目画素の右隣りに位置する画素の画素値と左隣りに位置する画素の画素値との差分を当該注目画素のエッジ強度として算出するエッジ強度算出手段を有している。なお、Ｙ方向形状重み演算部２８２４は、それぞれ注目画素の上隣りに位置する画素の画素値と下隣りに位置する画素の画素値との差分を当該注目画素のエッジ強度として算出するエッジ強度算出手段を有している。
【００７０】
図３１（Ａ）は比較的に明るい画像におけるエッジ強度の算出例を示している。図３１（Ｂ）は比較的に暗い画像におけるエッジ強度の算出例を示している。画素値の最大値を２５６とする。このように明るい画像におけるエッジ強度は１００であり、暗い画像におけるエッジ強度は１０となってしまい、画像の明るさに依存して重みが変わってしまう。これは、形状誤差の軽減処理では、エッジ強度から重みを算出しているからである。
【００７１】
そこで、２つの画素値の対数を求めてその対数差分をエッジ強度として求めたり、２つの画素値の商（比率）をエッジ強度として求めたりしてもよい。これにより、明るさの影響を軽減できる。
【００７２】
図３１（Ｃ）は、図３１（Ａ）に示した例について対数差分によりエッジ強度を求めた例を示している。図３１（Ｄ）は、図３１（Ｂ）に示した例について対数差分によりエッジ強度を求めた例を示している。図３１（Ａ）においてｉ−１番目の画素の画素値は１００であるため、その常用対数はｌｏｇ１０（１００）＝２．０となる。図３１（Ａ）においてｉ＋１番目の画素の画素値は２００であるため、その常用対数はｌｏｇ１０（２００）＝２．３となる。よって対数差分は２．３−２．０＝０．３となる。図３１（Ｂ）においてｉ−１番目の画素の画素値は１０であるためその常用対数はｌｏｇ１０（１０）＝１．０となる。図３１（Ｂ）においてｉ＋１番目の画素の画素値は２０であるためその常用対数はｌｏｇ１０（２０）＝１．３となる。よって対数差分は１．３−１．０＝０．３となる。よって、画像の明るさがエッジ強度に及ぼす影響が低減されることがわかる。
【００７３】
＜その他＞
軽減処理の効果についてはユーザが調整できるようにしてもよい。たとえば、ＵＩ管理部８１４は、軽減処理の効果を複数のレベルからユーザに選択させるためのＵＩを表示部７に表示させ、入力部６を通じてレベルの選択を受け付けてもよい。たとえば、スライダーバーによって効果のレベルを変更できるようにしてもよいし、テキストボックスにレベルを入力できるようにしてもよい。フォトメトリック処理部８１１は、ユーザにより指定されたレベルに応じて重みを調整する。たとえば、重みにレベルを乗算することが一例として考えられる。重みづけ合成部２８０４は、レベル調整された重みを用いて合成処理を実行することで、選択されたレベルにしたがって軽減処理の効果を制御できるようになる。このよう重みを調整することでユーザは軽減処理の効果を確認しつつ、形状誤差を削減できるようになろう。フォトメトリック処理部８１１は、調整された重みを用いて生成された形状画像を表示部７にプレビュー表示してもよい。
【００７４】
＜まとめ＞
本実施例によれば、カメラ４は輝度画像生成手段として機能し、検査対象物をフォトメトリックステレオ法により撮像して複数の輝度画像を生成する。フォトメトリック処理部８１１が複数の輝度画像においてそれぞれ座標が一致している複数の画素の画素値を用いて検査対象物の表面の法線ベクトルと反射率とを算出する算出手段として機能する。また、フォトメトリック処理部８１１が検査対象物の表面の法線ベクトルに基づき当該表面の形状に応じた複数の画素値を有する形状画像を生成する形状画像生成手段として機能するとともに、検査対象物の表面の反射率に応じた複数の画素値を有する反射率画像を生成する反射率画像生成手段として機能する。図２８などを用いて説明したように、Ｘ方向形状重み演算部２８２３やＹ方向形状重み演算部２８２４は、形状画像に含まれているテクスチャの映り込みまたは鏡面反射光を示すテクスチャ情報を反射率画像から抽出する。たとえば、反射率画像からエッジを検出してそのエッジ強度が求められる。重みづけ合成部２８０４は抽出されたテクスチャ情報に基づき、テクスチャの映り込みまたは鏡面反射光に起因した偽形状の軽減処理を実行する。判定部８４０は軽減処理を施された形状画像を用いて検査対象物の良否を判定する。このようにテクスチャの映り込みまたは鏡面反射光に起因した偽形状が形状画像から軽減されるため、形状誤差が小さくなる。
【００７５】
図２８や図２９などを用いて説明したように、Ｘ方向形状重み演算部２８２３やＹ方向形状重み演算部２８２４は、反射率画像の各画素のエッジ強度に基づき反射率画像においてテクスチャのエッジ強度が高い領域を特定し、当該特定された領域に対応する形状画像の領域のコントラストを低下させることでテクスチャの映り込みを軽減している。これにより、テクスチャが偽形状となって表れそうな画素を特定することができ、またそのような画素については軽減処理の重みを大きく設定することで、効率よく形状誤差を削減できるようになろう。エッジ強度が高いかどうかは、たとえば、しきい値と比較することで判定されてもよい。また、Ｘ方向形状重み演算部２８２３やＹ方向形状重み演算部２８２４は、テクスチャ情報に基づき反射率画像における注目領域内のテクスチャのエッジ強度が高くなるに応じて、形状画像における対応する注目領域内のコントラストを低下させることでテクスチャの映り込みを軽減してもよい。反射率画像をいくつかの画素からなる領域に分割し、各領域を注目領域としてエッジ強度が求められる。同様に、形状画像もいくつかの画素からなる領域に分割し、各領域を注目領域としてコントラストが調整される。なお、反射率画像における領域と形状画像における領域とは一対一で対応している。そのため、反射率画像における領域のエッジ強度が高くなれば、対応する形状画像の領域のコントラスとを低下させることになる。
【００７６】
図２８や図２９などを用いて説明したように、ｘ成分傾き画像演算部２８０１が法線ベクトルのＸ方向の傾き成分を画素値としたＸ方向傾き画像を生成し、ｙ成分傾き画像演算部２８１１が法線ベクトルのＹ方向の傾き成分を画素値としたＹ方向傾き画像を生成してもよい。Ｘ方向形状重み演算部２８２３およびＹ方向形状重み演算部２８２４は、テクスチャ情報として、反射率画像からＸ方向におけるテクスチャのエッジ強度とＹ方向におけるテクスチャのエッジ強度を求める。重みづけ合成部２８０４は、Ｘ方向のエッジ強度に応じてＸ方向傾き画像のコントラストを低下させるとともに、Ｙ方向のエッジ強度に応じてＹ方向傾き画像のコントラストを低下させ、軽減処理を施されたＸ方向傾き画像とＹ方向傾き画像とを合成して形状画像を生成してもよい。図２９を用いて説明したように、Ｘ方向とＹ方向とに分離して軽減処理を実行することで、Ｘ方向のエッジとＹ方向のエッジとが直交する部分においても精度よく偽形状を軽減でき、形状誤差を削減できるようになろう。
【００７７】
具体的にｘ成分傾き画像演算部２８０１はＸ方向傾き画像の各画素に対する重みをＸ方向におけるテクスチャのエッジ強度に応じて決定する。ｙ成分傾き画像演算部２８１１はＹ方向傾き画像の各画素に対する重みをＹ方向におけるテクスチャのエッジ強度に応じて決定する。そして、重みづけ合成部２８０４は、テクスチャ情報としてエッジ強度から求められた重みを取得し、Ｘ方向傾き画像の各画素に対応する重みを乗算するとともにＹ方向傾き画像の各画素に対応する重みを乗算して合成することで検査用の形状画像を生成してもよい。
【００７８】
図２８を用いて説明したように、縮小画像演算部２８０２、２８１２はＸ方向傾き画像とＹ方向傾き画像とについて複数レベルの縮小画像を生成してもよい。この場合、重みづけ合成部２８０４は、複数レベルの縮小画像のそれぞれについて軽減処理を適用し、さらに上述した積み上げ計算を実行することで形状画像を生成してもよい。縮小画像を用いることで演算時間を大幅に短縮できるようになる。
【００７９】
エッジ強度の求め方は様々なものがありうる。たとえば、注目画素を挟んで注目画素の隣りに位置する２つの画素の画素値の差分を当該注目画素のエッジ強度として算出することが考えられる。２つの画素は、Ｘ方向に関しては右隣りと左隣の画素であり、Ｙ方向に関しては上隣の画素と下隣の画素となる。また、３つ以上の隣接画素ないしは周辺画素を考慮してエッジ強度が求められてもよい。つまり、注目画素の近傍に位置する少なくとも２つの画素の階調値の差分または重み付き和を、当該注目画素のエッジ強度として算出してもよい。たとえば、エッジ検出フィルタとして知られているソーベルフィルタは３ｘ３画素ごとにエッジ強度を算出できる。
【００８０】
図３１を用いて説明したように、少なくとも２つの画素の画素値の商または対数を注目画素のエッジ強度として算出してもよい。これにより画像の明るさが異なっても適切に重みを決定できるようになる。たとえば、注目画素の近傍に位置する少なくとも２つの画素の階調値を除積算した値を注目画素のエッジ強度として算出してもよい。また、注目画素の近傍に位置する少なくとも２つの画素の階調値の対数変換後の値の差分または重み付き和を該注目画素のエッジ強度として算出してもよい。
【００８１】
ＵＩ管理部８１４、表示部７および入力部６は、軽減処理の効果を複数のレベルからユーザに選択させる選択手段として機能してもよい。Ｘ方向形状重み演算部２８２３やＹ方向形状重み演算部２８２４が選択されたレベルにしたがって重みを調整することで、ユーザは軽減処理の効果を制御することが可能となる。
【００８２】
上述したようにフォトメトリック処理部８１１は特徴サイズの異なる複数の形状画像を生成できる。そこで、フォトメトリック処理部８１１は特徴サイズの異なる複数の形状画像のそれぞれに軽減処理を実行してもよい。これにより、特徴サイズの異なる複数の形状画像のそれぞれの形状誤差を削減できるようになる。また、形状誤差の小さな形状画像を用いて外観検査を実行することにより、外観検査の精度も向上するであろう。
【図１】
2015232481.tif 000003
【図２】
2015232481.tif 000004
【図３】
2015232481.tif 000005
【図４】
2015232481.tif 000006
【図５】
2015232481.tif 000007
【図６】
2015232481.tif 000008
【図７】
2015232481.tif 000009
【図８】
2015232481.tif 000010
【図９】
2015232481.tif 000011
【図１０】
2015232481.tif 000012
【図１１】
2015232481.tif 000013
【図１２】
2015232481.tif 000014
【図１３】
2015232481.tif 000015
【図１４】
2015232481.tif 000016
【図１５】
2015232481.tif 000017
【図１６】
2015232481.tif 000018
【図１７】
2015232481.tif 000019
【図１８】
2015232481.tif 000020
【図１９】
2015232481.tif 000021
【図２０】
2015232481.tif 000022
【図２１】
2015232481.tif 000023
【図２２】
2015232481.tif 000024
【図２３】
2015232481.tif 000025
【図２４】
2015232481.tif 000026
【図２５】
2015232481.tif 000027
【図２６】
2015232481.tif 000028
【図２７】
2015232481.tif 000029
【図２８】
2015232481.tif 000030
【図２９】
2015232481.tif 000031
【図３０】
2015232481.tif 000032
【図３１】
2015232481.tif 000033