以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
図1は外観検査システムの一例を示す図である。ライン1は検査対象物であるワーク2を搬送する搬送ベルトなどである。照明装置3はフォトメトリックステレオ法にしたがって検査対象物を照明する照明手段の一例である。カメラ4はフォトメトリックステレオ法にしたがって前記照明された検査対象物からの反射光を受光して輝度画像を生成する撮像手段の一例である。画像処理装置5は、カメラ4により取得された複数の輝度画像からワーク2の表面の法線ベクトルを算出し、複数の輝度画像から算出された法線ベクトルに基づく画素値により構成された傾き画像と、当該傾き画像の縮小画像とについて、注目画素に隣接する隣接画素の法線ベクトルを用いて注目画素の画素値を積み上げ演算し、画素値を有する検査画像を生成し、検査画像を用いて検査対象物の良否を判定する外観検査装置である。傾き画像は法線ベクトル画像と呼ばれることもある。画像処理装置5は輝度画像から反射率画像(アルベド画像)を作成してもよい。表示部7は検査に関連する制御パラメータを設定するためのユーザインタフェースや傾き画像、反射率画像、検査画像などを表示する。入力部6は、コンソール、ポインティングデバイス、キーボードなどであり、制御パラメータを設定するために使用される。
<フォトメトリクスステレオの原理>
一般的なフォトメトリックステレオ法では、図2に示すように、ワーク2に対して4方向から照明光L1〜L4を切り替えながら照射し、4枚の輝度画像を生成する。各輝度画像を撮影する際に使用される照明光の方向は一方向だけである。なお、輝度画像は複数の画素により構成されており、4枚の輝度画像において座標が一致する4つの画素は同一のワーク表面に対応している。4つの画素の画素値(輝度値)I1、I2、I3、I4と、法線ベクトルnとの間には図2示した式1が成り立つ。ここでρは反射率である。Lは各方向からの照明光の光量であり、既知である。ここでは4方向とも光量は同一である。Sは照明方向行列であり、既知である。この数式を解くことで各座標(ワーク表面)ごとの反射率ρと法線ベクトルnが求められる。その結果、反射率画像と傾き画像とが得られる。
本実施形態では、さらに、傾き画像から高さ成分を抽出しワークの形状を示す形状画像を検査画像として作成する。検査画像は、図2に示し式2である積み上げ演算式により求められる。ここで、znはn回目の積み上げ結果であり、ワーク表面の形状を示している。x、yは画素の座標を示している。nは何回目の繰り返し計算であるかを示している。pは水平方向の傾き成分を示し、qは垂直方向の傾き成分を示している。p、qは法線ベクトルnから求められる。wは重みである。また、1回目の積み上げ演算では1/1の傾き画像を用い、2回目の積み上げには1/2の縮小傾き画像を用い、3回目の積み上げには1/4の縮小傾き画像を用いる。縮小画像を作成する際にはガウシアン処理を施してから縮小処理が施されてもよい。
本実施形態では積み上げ演算において特徴サイズというパラメータを採用する。特徴サイズは積み上げ演算において使用される縮小画像の成分に対する重みを与えるパラメータである。特徴サイズはワーク2の表面形状の大きさを示すパラメータである。たとえば、特徴サイズが1であればxy方向で注目画素に隣接した4つの画素についての重みが最も大きくされて積み上げ演算される。特徴サイズが2であればxy方向で注目画素に隣接した8つの画素についての重みが最も大きく設定されて積み上げ演算が実行される。ただし、8つの画素を用いて演算することは演算量の増大を招くため、上述した縮小画像を作成して演算に使用する。つまり、8つの隣接画素を用いる代わりに、傾き画像を1/2に縮小して演算を実行する。これにより、ある注目画素について縮小画像における4つの画素を演算に考慮すればよいことになる。これは特徴サイズが4、8、16、32と増加したときもそれに応じた縮小画像を作成し、特徴サイズに対応した縮小画像について重みを最大に設定することで、同様の演算負荷の軽減効果が得られる。
図3は積み上げ演算の一例を示している。この例では法線ベクトルnから求められた2枚の傾き画像(水平方向の傾き成分pの画像と垂直方向の傾き成分qの画像)を入力としている。まず、縮小度の大きい傾き画像で全体の形状を積み上げ、それよりも縮小度の小さい画像で細部形状を積み上げる。これにより短時間で全体の形状を復元できるようになる。図3によれば、たとえば、1/32の縮小画像について式2により注目画素についてワーク表面の形状を示すパラメータであるzを算出する。重みwは特徴サイズに応じて決定される。縮小画像を構成する1つ1つの画素を注目画素として積み上げ演算をイタレーション(繰り返し処理)する。zの初期値はゼロである。次に式2にしたがって1/16の縮小画像についてzを算出する。ここでは、1/32の演算結果に対して1/16の縮小画像の傾き成分が積み上げられる。同様にして、1/8縮小画像から1/1画像まで積み上げ演算が実行される。
図4は各特徴サイズごと重みの一例を示している。横軸は解像度レベル(縮小度)を示し、縦軸は重みを示している。図4からわかるように、特徴サイズ1では縮小度が最も小さいレベル0(1/1画像)の重みが最大となる。これにより微細な形状を積み上げることが可能となる。特徴サイズ2ではレベル1(1/2画像)の重みが最大となる。これによりさらに大きなサイズの形状を積み上げることが可能となる。このように各重みは、特徴サイズに対応したレベルでピークが生じるように決定される。
形状画像の復元方法としては、上記の積み上げ演算の他に公知のフーリエ変換積分法を採用することもできる(A Method for Enforcing Integrability in Shape from Shading Algorithms, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.10, No.4 July 1988)。当該方法においても計算プロセスにおいて縮小画像を生成し、重み付け成分を調整することにより抽出する特徴サイズを変更することが可能である。
図5は特徴サイズの違いに応じた検査画像の一例を示している。特徴サイズ4では細部の形状が抽出されており、特徴サイズ64では全体の形状が抽出されており、特徴サイズ16ではこれらの中間的なサイズの形状が抽出されていることがわかる。このように小さな特徴サイズは細かい傷を検査するのに役立ち、大きな特徴サイズは物体の有無の判別に適しており、中間の特徴サイズは凹凸文字のOCRなどに適している。つまり検査ツールに応じて適切な特徴サイズを選択することで検査精度を向上させることが可能となる。
図6はフォトメトリックステレオ法による検査画像の作成工程を示す図である。輝度画像601〜604はそれぞれ照明方向の異なる照明光によりワーク2を照明して取得された輝度画像である。なお、輝度画像600は4方向から同時に照明して得られた輝度画像である。それぞれ照明方向の異なる照明光によりワーク2を照明して取得された複数の輝度画像から演算によりワーク表面の法線ベクトルが求められる。傾き画像611は、輝度画像601〜604から求められた法線ベクトルのX方向の傾き成分を画素値とした傾き画像である。傾き画像612は、輝度画像601〜604から求められた法線ベクトルのY方向の傾き成分を画素値とした傾き画像である。反射率画像610は、輝度画像601〜604から求められた法線ベクトルから、ワーク表面の傾きによる輝度値の変動分を除去し、ワーク表面の反射率を画像にした反射率画像である。検査画像621〜623は傾き画像611、612から求められたそれぞれ特徴サイズの異なる画像である。なお、検査画像621〜623も傾き成分に基づく画素により構成されているため、傾き画像の一種である。このような手順でワーク2の検査画像が生成される。なお、検査ツールに依存して全方向照明画像である輝度画像600や反射率画像610が検査画像として採用されてもよい。全方向照明画像とは、照明装置3が備える複数の光源をすべて点灯させて取得された輝度画像のことである。
<テクスチャ情報>
テクスチャ情報とはワーク2の表面の反射率ρに基づく情報である。式1によって反射率ρが求められる、つまり4枚の輝度画像から1枚の反射率画像が得られる。反射率画像はワーク表面の反射率ρに比例した画素値を有する画像である。図7に示すように、4枚の輝度画像701〜704から法線ベクトルを算出し、算出された法線ベクトルと複数の輝度画像の各々対応する画素の輝度値に基づいて各画素の反射率に比例した画素値を算出することで反射率画像であるテクスチャ画像711、712が求められる。この生成方法としては4枚の輝度画像の画素平均によってテクスチャ画像を求める方法や、4枚の輝度画像からハレーションを除去してから画素平均によってテクスチャ画像を求める方法などがある。テクスチャ画像711は画像平均によって求められたものであり、テクスチャ画像712はハレーション除去によって求められたものの一例である。4枚の輝度画像において座標が一致する画素が4つ存在する。4つの画素のうち画素値が1番大きい画素を除外したり、画素値の大きい順に1番目からN番目(Nは3以下の自然数)までの画素を除外したりすることでハレーションを除去することが可能である。ハレーションは高い輝度として画像に現れるからである。テクスチャ画像711、712はともに反射率に基づく画素により構成されているため、反射率画像の一種である。
<機能ブロック>
図8は検査装置のブロック図である。この例では照明装置3、カメラ4および画像処理装置5がそれぞれ個別の筐体に収容されているが、これは一例に過ぎず、適宜に一体化されてもよい。照明装置3は、フォトメトリックステレオ法にしたがって検査対象物を照明する照明手段の一例であり、光源群801とこれを制御する照明コントローラ802を備えている。複数の発光素子で1つのセグメントが構成され、さらに複数のセグメントによって光源群801が構成されていてもよい。セグメントの数は一般的には4つであるが、3つ以上であればよい。これは3方向以上の照明方向からワーク2を照明できれば、フォトメトリックステレオ法により検査画像を生成できるからである。図1に示したように照明装置3の外形はリング状をしていてもよい。また、照明装置3は、それぞれ分離した複数の照明ユニットにより構成されていてもよい。たとえば、市場にはワーク2を撮影するために使用される照明ユニットが存在しているが、これらはフォトメトリックステレオ用に開発されたものではない。ただし、このような照明ユニットを複数個用意するとともに、これらを制御する照明コントローラを接続することで、照明装置3を構成してもよい。照明コントローラ802は、画像処理装置5からの制御コマンドに応じて光源群801の点灯タイミングや点灯パターンを制御する。照明コントローラ802は照明装置3に内蔵されているものとして説明するが、カメラ4に内蔵されていてもよいし、画像処理装置5に内蔵されていてもよいし、これらからは独立した筐体に収容されていてもよい。
カメラ4はフォトメトリックステレオ法にしたがって照明された検査対象物からの反射光を受光して輝度画像を生成する撮像手段の一例であり、画像処理装置5からの制御コマンドに応じて撮像処理を実行する。カメラ4はワーク2の輝度画像を作成して画像処理装置5に転送してもよいし、撮像素子から得られる輝度信号を画像処理装置5に転送し、画像処理装置5が輝度画像を生成してもよい。輝度信号は輝度画像の元になる信号であるため、広義には輝度信号も輝度画像である。
画像処理装置5は、コンピュータの一種であり、CPUやASICなどのプロセッサ810と、RAM、ROM、可搬記憶媒体などの記憶装置820と、ASICなどの画像処理部830と、ネットワークインタフェースなどの通信部850とを有している。プロセッサ810は検査ツールの設定や、制御パラメータの調整、検査画像の生成・再生成・更新を担当する。フォトメトリック処理部811は、カメラ4により取得された複数の輝度画像からワーク2の表面の法線ベクトルnを算出し、複数の輝度画像から算出された法線ベクトルnに基づく画素値を有する傾き画像と、傾き画像の縮小画像とについて、注目画素に隣接する隣接画素の法線ベクトルnを用いて当該注目画素の画素値を積み上げ演算し、当該画素値を有する検査画像を生成する演算手段(検査画像生成手段)として機能する。なお、具体的には上述した数式などを使用して検査画像が生成される。照明制御部812は、照明コントローラ802に対して制御コマンドを送信することで照明パターンや照明切り替えタイミングなどを制御する。撮像制御部813は、カメラ4を制御する。UI管理部814は、検査ツールを設定するためのユーザインタフェース(UI)や検査画像を生成するために必要となるパラメータを設定するためのUIなどを表示部7に表示し、入力部6から入力された情報したがって検査ツールやパラメータを設定する。とりわけ、特徴サイズ設定部815は積み上げ演算において使用される縮小画像の成分に対する重みwを与えるパラメータである特徴サイズを設定する設定手段として機能する。画像選択部816は複数の輝度画像や複数の検査画像、複数の傾き画像、複数の反射率画像のうち表示すべき画像などを選択したりする。画像選択部816はカメラ4により取得された複数の輝度画像および検査画像のうち保存対象もしくは出力対象となる画像を選択してもよい。検査ツール設定部817は画像選択部816により選択された検査画像に対して検査ツールを設定する。基準画像設定部818は良品から取得された基準画像を設定する。表示制御部851は輝度画像と検査画像を切り替えて表示部7に表示させたり、または、輝度画像と検査画像とを同時に表示させたりする。また表示制御部851は制御パラメータが調整されると表示部7に表示されている画像を当該制御パラメータが反映された画像に更新する。検査ツール設定部817は、表示制御部851、特徴サイズ設定部815、画像選択部816、基準画像設定部818および条件設定部819を内包していてもよい。画像処理部830は基準画像を用いて検査画像にパターンサーチなどのサーチ処理を実行し、検査画像に検査領域を設定する検査領域設定手段として機能する。検査領域は、たとえば、文字認識領域である。条件設定部819は画像を表示部7や通信部850に接続された外部機器に出力する条件や、可搬記憶媒体などに保存する条件を設定する。判定部840は検査画像を用いてワーク2の良否を判定する判定手段として機能する。たとえば、判定部840は画像処理部830において検査画像を用いて実行された検査の結果を受け取って検査結果が良品条件(公差など)を満たしているかどうかを判定する。
記憶装置820は、カメラ4によって取得された輝度画像のデータである輝度画像データ821、フォトメトリック処理部811により生成された傾き画像データ822や反射率画像データ823を記憶する。また、記憶装置820は各種の設定データやユーザインタフェースを生成するためのプログラムコードなども記憶している。記憶装置820は特徴サイズがそれぞれ異なる検査画像を記憶して保持していてもよい。また、記憶装置820は検査画像に加え、検査画像の元になった傾き画像データや反射率画像データを記憶してもよい。これらはワーク2の誤判定が見つかったときに、検査画像、傾き画像または反射率画像のいずれに問題があったのかを特定して、その制御パラメータを修正するのに役立つであろう。
画像処理部830は、フォトメトリック処理部811によって生成された検査画像(傾き画像データ822や反射率画像データ823)を用いて外観検査を実行する。傷検査部831は、それぞれ異なる特徴サイズ用いて生成された複数の検査画像に対して傷検査を実行する。OCR部832はそれぞれ異なる特徴サイズ用いて生成された複数の検査画像に対して文字認識処理を実行する文字認識処理手段として機能する。傷検査部831やOCR部832は記憶装置820に記憶されている検査画像(傾き画像データ822や反射率画像データ823)を読み出して検査を実行し、検査結果を記憶装置820に書き込んだり、判定部840に渡したりしてもよい。判定部840はこの検査結果に基づきワーク2の良否を判定する。
<設定モード>
検査システムには検査ツールを設定する設定モードと、設定された検査ツールにしたがってワーク2の外観検査を実行する検査モード(運転モード)とを有しいている。ここでは設定モードの一例について説明する。
図9は設定モードに関するフローチャートである。入力部6を通じて設定モードの開始が指示されると、プロセッサ810のUI管理部814は検査ツールを設定するためのUIを表示部7に表示する。
図10はUIの一例を示している。UI管理部814が表示部7に表示するUI1000には、検査結果の保存先を指定するプルダウンメニュー1001や検査ツールの名称を入力するテキストボックス1002が設けられている。UI管理部814は実行ボタンの押し下げを検出すると次のUIを表示する。
図11に示すUI1100には、検査ツールを設定するためのガイダンス1101と、カメラ4に撮像を指示する計測実行ボタン1102と、カメラ4により撮像された画像を表示する表示領域1103と、カメラ設定の開始を指示するカメラ設定ボタン1104を有している。なお、画像選択部1105は、表示領域1103に表示する画像や検査に使用する画像を選択するためのボタンである。この例では画像選択部1105によって、形状1、形状2、テクスチャおよびノーマルのうちいずれか1つの画像が択一的に選択される。計測実行ボタン1102が操作されると、撮像制御部がカメラ4に撮像を指示する。UI管理部814はカメラ4により取得された輝度画像を表示領域1103にレンダリングする。なお、画像選択部1105によって別の画像が選択されると、UI管理部814は画像選択部1105によって選択された画像を表示領域1103にレンダリングする。このようにユーザは画像選択部1105を操作するか、入力部6を通じて画像の切り替えを指示することで表示領域1103に表示される画像を切り替えることができる。カメラ設定ボタン1104が操作されると、UI管理部814は次のUIに切り替える。
S901でUI管理部814はカメラ4を設定するためUIを表示部7に表示し、カメラ設定を実行する。図12はカメラ設定UI1200の一例を示している。カメラ設定タブ1201には、カメラの機種を設定するプルダウンメニュー1202、画像サイズを設定するプルダウンメニュー1203、シャッタースピードを設定するプルダウンメニュー1204、カメラの感度を設定するスライダー1205などを有している。なお、計測実行ボタン1102が操作されると、UI管理部814は、その時点で設定されている撮像パラメータにしたがってカメラ4によって取得された輝度画像を表示領域1103に表示する。これによりユーザは設定したパラメータが適切かどうかを判定できる。
S902でUI管理部814はフォトメトリック処理を設定するためUIを表示部7に表示し、設定を実行する。たとえば、カメラ設定UI1200に設けられているフォトメトリックステレオ設定タブ1210が操作されたこと検知すると、UI管理部814は、図13に示すように、フォトメトリックステレオ設定タブ1210を有効に切り替える。有効に切り替えるとは、ユーザ操作可能な状態にフォトメトリックステレオ設定タブ1210の表示状態を切り替えることをいう。フォトメトリックステレオ設定タブ1210には、画像を選択するためのプルダウンメニュー1301と、特徴サイズ設定部1302とが含まれている。この例では、それぞれ特徴サイズが異なる3つの検査画像(形状1、形状2、形状3)のいずれかを選択できるものとする。プルダウンメニュー1301によって選択された画像ごとに特徴サイズ設定部1302により特徴サイズが設定される。
フォトメトリックステレオ設定タブ1210に照明パターンを選択するための選択部が配置されてもよい。また、一回の照明あたりの発光量を指定する指定部が設けられてもよい。
S903でUI管理部814は検査ツールを設定するためのUIを表示部7に表示し、設定を実行する。図14は検査ツールを設定するUI1400の一例である。画像選択ボタン1401は、複数ある検査画像のうち検査に使用する検査画像を選択するためのボタンである。検査カテゴリー選択ボタン1402は、複数ある検査カテゴリーのうち検査ツールとして追加すべきツールのカテゴリーを選択するためのボタンである。認識対象設定ボタン1403は複数ある認識対象のうち1つを選択するためのボタンである。この例では、検査画像として「形状1」が選択され、カテゴリーとして「認識」が選択され、認識処理として「文字認識」が選択されている。追加ボタン1404が操作されると、UI管理部814は次のUIに切り替える。図15は基準画像登録UI1500を示している。基準画像登録UI1500には、上述した計測実行ボタン1102、表示領域1103に加え、登録ボタン1501が配置されている。登録ボタン1501が操作されると、UI管理部814は計測実行ボタン1102によって取得され、表示領域1103に表示されている画像を基準画像として登録する。登録が完了すると、UI管理部814は次のUIに切り替える。
図16は計測領域設定UI1600を示している。計測領域設定UI1600の表示領域1103には基準画像1601と、計測領域を示すフレーム1602が配置される。UI管理部814は入力部6からの指示に応じてフレーム1602の位置とサイズを変更する。ユーザは基準画像1601のうち計測対象としたい部分の位置とサイズに合わせてフレーム1602の位置とサイズを調整する。なお、さらに、UI管理部814は、文字の切り出し設定や、認識すべき文字の具体例(文字画像)と文字画像に対応する文字キャラクタを登録するための辞書設定などを実行してもよい。
次に傷検査ツールについて説明する。図17に示すように、検査カテゴリー選択ボタン1402によって傷検査が選択されると、UI管理部814は、検査内容選択ボタン1701を表示する。この例では、検査内容選択ボタン1701によって傷の総面積を計測するツールが選択されている。追加ボタン1404が操作されると、UI管理部814はUIを切り替える。
図18は計測領域設定UI1800を示している。計測領域設定UI1800には、計測領域を示すフレーム1802が配置される。フレーム1802の形状は変更可能であり、たとえば、形状を選択するためのプルダウンメニュー1801によって複数の形状のうちいずれかの形状が選択される。UI管理部814はプルダウンメニュー1801によって選択された形状のフレーム1802を表示領域1103にレンダリングする。UI管理部814は入力部6からの指示に応じてフレーム1802の位置とサイズを変更する。
図19は傷の検出条件を設定するための設定UI1900を示している。設定UI1900には、傷の検出方向を選択するためのプルダウンメニュー1901と、傷のセグメントサイズを指定するためのボックス1902と、傷のレベルを指定するためのスライダー1903が配置されている。設定UI1900により設定された傷検出条件に基づいて傷検査部831が傷を検出したときは、UI管理部814が傷の位置に傷検出マーク1910を表示してもよい。これにより、ユーザは、傷検出条件が適切かどうかを判断できよう。
<検査モード>
図20は検査モードを示すフローチャートである。入力部6を通じて検査モードの開始が指示されると、プロセッサ810が動作モードを検査モードに移行させる。
S2001でプロセッサ810は設定された照明パターンにしたがって照明方向を切り替えながらワーク2の画像を撮像して取得する。具体的には、照明制御部812が、記憶装置820に保持されている設定データを参照して照明パターンを特定し、照明パターンを指定するためのコマンドを照明コントローラ802に送出する。撮像制御部813は記憶装置820に保持されている設定データを参照してカメラ4に関する制御パラメータ(シャッタースピードや感度など)を特定し、これを指定するコマンドをカメラ4に送信する。フォトメトリック処理部811は照明の開始を指示するためのトリガー信号を照明コントローラ802に送信するとともに、これと連動して撮像の開始を指示するためのトリガー信号をカメラ4に送信する。照明コントローラ802はトリガー信号に同期して照明方向を切り替える。たとえば、照明コントローラ802はコマンドにより指定された照明パターンにしたがって4つの照明方向について1つずつ順番に対応する発光素子を点灯させる。照明コントローラ802はコマンドと照明パターンとの対応関係をメモリなどに保持していてもよい。トリガー信号は照明開始時に1つだけ発行されてもよいし、切り替えタイミングにおいても発行されてもよい。カメラ4は制御パラメータにしたがってワーク2を撮像し、輝度画像を画像処理装置5に転送する。このようにして、たとえば、1つの照明方向につき1枚の輝度画像が生成される。
S2002でプロセッサ810は複数の輝度画像から法線ベクトルnと反射率ρとを求める。上述したようにフォトメトリック処理部811は複数の輝度画像の画素値について式1を適用し、法線ベクトルnと反射率ρとを求める。
S2003でプロセッサ810は設定された特徴サイズにしたがって検査画像を生成する。上述したようにフォトメトリック処理部811は特徴サイズに対応する重みWを重みテーブルなどから決定し、式2を用いて積み上げ演算を実行して検査画像(傾き画像)を生成する。このように、フォトメトリック処理部811は複数の輝度画像からワーク2の表面の法線ベクトルnに基づく画素値を有する傾き画像を生成してもよい。なお、それぞれ値の異なる複数の特徴サイズを設定されている場合、フォトメトリック処理部811は設定された複数の特徴サイズのそれぞれについて検査画像を生成してもよい。また、フォトメトリック処理部811は上述した手法により反射率画像やテクスチャ画像を生成してもよい。たとえば、フォトメトリック処理部811は複数の輝度画像からワーク2の表面の法線ベクトルnとともにワーク2の表面の反射率ρを算出し、当該反射率ρに基づく画素値を有する反射率画像を生成してもよい。ここでは検査の対象とされる画像が生成され、検査の対象とさていない画像については生成が省略されてもよい。
S2004でプロセッサ810は検査画像を表示部7に表示する。UI管理部814は検査画像とともに、輝度画像、傾き画像、反射率画像を表示部7に同時または選択的に表示してもよい。選択的に表示する場合、UI管理部814は入力部6からの切り替え指示にしたがって、たとえば、4つの輝度画像を順番に切り替え表示してもよい。たとえば、入力部6のうちコンソールに設けられた特定のキーが画像の切替ボタンとして割り当てられていてもよい。
S2005でプロセッサ810は画像処理部830に検査の実行を指示する。画像処理部830は検査を指示されると、予め設定された検査ツールを起動して検査画像に対して検査を実行する。たとえば、傷検査部831は設定された計測領域や検出条件にしたがって傷のレベルを判別し、検査結果(傷のレベル)を判定部840に転送する。なお、傷検査部831は、上述した基準画像を用いてパターンサーチを実行して検査領域を設定し、検査領域において検査を実行してもよい。また、OCR部832は、予め設定された文字認識設定にしたがって検査画像に対して文字認識処理を実行し、文字認識結果を判定部840に転送する。OCR部832も上述した基準画像を用いてパターンサーチを実行して検査領域(文字認識領域)を設定し、検査領域において検査を実行してもよい。
S2006でプロセッサ810の判定部840は検査結果と判定閾値とを比較して、ワーク2が良品であるかどうかを判定する。たとえば、傷検査とOCRの両方を実行するように設定されている場合、判定部840は傷検査部831の検査結果とOCR部832の文字認識結果との両方が合格レベルにあるときに、ワーク2を良品と判定する。
<画像保存設定>
図21は検査フローを設定するUI2100の一例を示している。UI管理部814はUI2100を表示部7に表示させ、検査フローのスタートからエンドまでの間に実行される複数の工程を入力部6から入力される指示にしたがって設定して行く。この例では、撮像工程、パターンサーチ工程、位置補正工程および傷検査工程が検査フローに追加されている。たとえば、入力部6を通じて検査フローのエンドが指定されると、UI管理部814はエンドにおいて検査履歴を蓄積するように設定してもよい。検査履歴とは、検査結果や検査に使用された画像などである。
なお、各工程を追加するときにUI管理部814は各工程で使用される画像の選択を、入力部6を通じて受け付けてもよい。たとえば、ユーザは入力部6を通じて撮像工程に対しては照明方向が異なる4つの輝度画像や傾き画像、反射率画像などを取得対象として指定し、パターンサーチ工程に対してはいずれかの輝度画像(全方向照明画像など)をサーチ対象として指定し、傷検査工程に対しては傾き画像から生成された検査画像などを検査対象として指定してもよい。本実施例では撮像工程にて撮像された複数の輝度画像から生成された複数の形状画像や反射率画像を後段の検査工程に出力することができるため、ユーザは、共通の撮像工程から生成された複数の検査画像を各画像の特性に応じた様々な検査に応用することができる。
図22は履歴を蓄積する条件を設定するUI2200の一例を示している。蓄積条件を識別するための識別情報を設定する設定部2201は複数ある識別情報から設定対象となる識別情報を選択するためのプルダウンメニューによって構成されている。この例では設定部2201において「0:」という識別情報の蓄積条件が選択されている。蓄積条件としては、たとえば、検査結果が良品ではないときにのみ画像を蓄積するといった条件や、検査結果に依存せずに各ワークごとに常に画像を蓄積するといった条件などがある。ここでは、プロセッサ810は詳細設定ボタンなどが押されたことを検知すると条件設定部819を起動する。条件設定部819は、たとえば、常に画像を保存または出力するモードと、判定部840により検査対象物が良品ではないと判定されたときに画像を保存または出力するモードとのうちいずれかを設定してもよい。画像選択部2202は蓄積条件が満たされたときに保存する画像を選択する。ここでは画像選択部2202によって「すべて」と「指定」とを選択することができる。保存先選択部2203は、画像の保存先(例:内蔵メモリ、メモリカードなどの可搬メディアやFTPサーバなどのネットワークストレージ)を選択するためのプルダウンメニューによって構成されている。
図23は画像選択部2202で「指定」が選択されたときにUI管理部814が表示部7に表示させるUI2300の一例を示している。この例では、検査フローにおいて扱われるすべての種類の画像のうち実際に保存すべき画像を選択するためのチェックボックス2301が設けられている。形状1、2は特徴サイズが異なる検査画像(傾き画像)である。テクスチャは反射率画像である。ノーマルは全方向照明により取得された画像である。4つの矢印は照明方向を示している。つまり矢印マークによって照明方向が異なる4つの輝度画像が区別されている。チェックボックスにチェックされた画像が保存対象として設定される。
ところで、プロセッサ810は判定部840が判定を終了した後で画像を保存または出力する条件が満たされているかどうかを判断する判断手段を備えていてもよい。すなわち、検査フローのエンド部において、プロセッサ810は、条件設定部819により設定された蓄積条件や出力条件が満たされているかどうかを判断してもよい。
図24は画像出力工程2401を検査フローに追加する例を示している。上述した実施例では検査フローの最後に画像を出力するように設定したが、この例では入力部6から入力されるユーザ指示にしたがってUI管理部814が検査フローの任意の位置に画像出力工程2401を設定する。このように、プロセッサ810は、判定部840が判定を終了する前に位置する画像出力工程2401で画像を保存または出力する条件が満たされているかどうかを判断してもよい。画像出力工程2401に関連する蓄積設定等は図21ないし図23を用いて説明したのと同様であってもよいし、異なってもよい。
図25は蓄積設定(出力設定)に関するUIの別の例を示している。画像出力工程2401が入力部6により選択された状態で、さらに入力部6により設定を開始する指示が入力されると、UI管理部814はUI2501を表示する。画像変数2502は出力すべき画像を選択する画像選択部として機能し、この例では検査フローにおける各工程に付与されている画像変数によって出力すべき画像が指定される。つまり、各工程ごとに出力すべき画像を選択できる。UI2501において画像の出力枚数や画像形式なども設定されてもよい。出力先選択部2503は画像の出力先(例:内蔵メモリ、メモリカードなどの可搬記憶メディアやFTPサーバなどのネットワークストレージ)を選択するためのプルダウンメニューである。
図26は画像を選択するUI2600の一例である。UI2501において詳細設定ボタンが押し下げられると、UI管理部814はUI2600を表示する。UI2600ではすべての画像を保存するか、個別指定するかを選択するためのラジオボタンや、画像を個別に選択するためのチェックボックスなどが配置されている。この例では、ラジオボタンにより個別指定が選択されているため、チェックボックスが有効となり、チェックボックスを通じていくつかの画像が選択されている。このように、複数の輝度画像、検査画像、全方向照明画像および複数の輝度画像を合成して得られた合成輝度画像から保存対象もしくは出力対象となる画像が選択されてもよい。また、それぞれ特徴サイズが異なる複数の検査画像から保存対象もしくは出力対象となる画像を選択できるようにUI2600が構成されてもよい。また、複数の輝度画像、検査画像および検査対象物の表面の反射率を画素値とした反射率画像から保存対象もしくは出力対象となる画像を選択できるようにUI2600が構成されてもよい。
<パラメータ調整における画像の表示>
上述したように輝度画像と検査画像を確認しながら制御パラメータを調整することで、ユーザは適切な制御パラメータを決定しやすくなる。ここではパラメータ調整に関するUIについて具体例を示す。
図27は制御パラメータを調整する際にUI管理部814が表示部7に表示するUI2701a、2701bの一例を示している。UI2701aとUI2701bとの違いは表示領域1103に表示されている画像が異なる点である。撮像設定タブ2702はカメラ4の撮像条件や照明装置3の照明条件などの制御パラメータを設定するためのUIである。シャッタースピード設定部2703はカメラ4のシャッタースピードを指定するためのプルダウンメニューであり、複数あるシャッタースピードのリストから1つのシャッタースピードが選択可能となっている。画像変数設定部2704はカメラ4により取得された画像を格納するための変数を入力するテキストボックスである。照明パターン設定部2705は複数ある照明パターンから1つの照明パターンを指定するためのプルダウンメニューである。照明パターンとは、たとえば、環状に並んだ16個の素子のうち、どの素子をどのような順番で発光させるかを規定したパターンである。光量設定部2706は照明装置3の光量レベルを設定するためのテキストボックスである。点灯回数設定部2708は1つのワークに対して照明装置3を点灯させる回数を選択するためのプルダウンメニューである。標準の点灯回数は4回であるが、8回など他の点灯回数も設定可能である。8回が設定されると、照明方向が8通りとなり、輝度画像の枚数も8枚となる。照明方向と輝度画像を増やすことで、より細かい傷を検出しやすくなるとともに、ハレーションが起きやすいワークであっても検査精度が向上する。点灯幅設定部2709は、1回の点灯タイミングで点灯する発光素子の数を設定するためのプルダウンメニューである。たとえば、4つの照明方向から照明光を照射するときに、1つの照明方向あたりで点灯する発光素子の数を1個、2個、3個、4個というように変更することが可能となる。点灯位置調整部2710は各照明パターンにおいてどの光源群を最初に点灯させるかを設定するUIである。照明装置3の実際配置と検査装置が想定している配置とが一致していないことがある。たとえば、右方向からワーク2に対して照明することを想定していても、照明装置3が所定位置から90度回転して取り付けられていれば、実際の照明方向が上方向または下方向となってしまう。照明パターンが右、下、左、上といった順番であれば、下、左、上、右といった順番に変更することで、照明装置3の実際配置と検査装置が想定している配置とが一致するようになる。なお、点灯位置調整部2710が起動されると、UI管理部814は、点灯すべき光源(発光素子)を指定するためのユーザインタフェースを表示してもよい。検査ツール設定部は、このUIを通じて点灯すべき光源の指定を受け付けてもよい。図27によれば、表示制御部851は、各輝度画像に対してその輝度画像について想定されている照明方向を示す矢印2712を重畳表示している。これにより実際の照明方向と演算上の照明方向とが一致しているかどうかをユーザは容易に判別できよう。
UI管理部814の表示制御部851は表示領域1103に表示している画像について画素値が飽和している画素(白とび画素や黒つぶれ画素)を求め、これらを強調表示(例:赤色表示や点滅表示など)してもよい。白とび画素や黒つぶれ画素を明確にするために、表示制御部851は白とび画素や黒つぶれ画素をそれぞれ異なる色(例:赤色と青色など)に着色してもよい。さらに、白とびや黒つぶれは検査画像を見てもわからない。検査画像は輝度を示すものではなく法線ベクトル(傾き)などを示すものだからである。そこで、表示制御部851は輝度画像において白とび画素や黒つぶれ画素の位置(座標)を求め、検査画像を構成する画素のうち、輝度画像における白とび画素や黒つぶれ画素の位置に一致する位置の画素を強調表示してもよい。これにより、ユーザは検査画像を見ても白とび画素や黒つぶれ画素の発生を認識できるようになる。もちろん、強調表示は実際に白とび画素や黒つぶれ画素が生じている輝度画像においてのみ強調表示してもよい。ユーザは上述したように検査画像と輝度画像を切り替え表示できるため、輝度画像において白とび画素や黒つぶれ画素を確認できる。なお、表示制御部851は、合成輝度画像を構成している画素について飽和画素の位置と数を求め、飽和画素を合成輝度画像において強調表示したり、検査画像において強調表示したりしてもよい。
表示制御部851は、白とび画素や黒つぶれ画素の強調表示とともにまたは強調表示に代えて、白とび画素の比率や黒つぶれ画素の比率を通知部2711に表示してもよい。比率は飽和している画素と飽和している画素との割合であってもよいし、画像を構成しているすべての画素に対する飽和画素の割合であってもよい。表示制御部851は、複数の輝度画像のそれぞれにおいて白とび画素の数と黒つぶれ画素の数をカウントし、白とび画素の数の最大値から白とび画素の比率を算出し、黒つぶれ画素の数の最大値から黒つぶれ画素の比率を算出し、これを通知部2711に表示してもよい。この場合、表示領域1103に表示される画像の種類を問わずに、通知部2711には白とび画素の比率や黒つぶれ画素の比率が表示される。
このように白とび画素や黒つぶれ画素を強調表示したり、白とび画素の比率や黒つぶれ画素の比率を表示したりすることで、表示領域1103に表示された画像を確認しながら白とび画素の比率や黒つぶれ画素がなくなるまで、シャッタースピード、光量、レンズの絞りなどを調整できるようになる。
表示制御部851は入力部6を通じて表示画像の切り替え指示が入力されると、現在表示されている画像から予め定められている別の画像を表示してもよい。たとえば、表示制御部851はそれぞれ照明方向の異なる4つの輝度画像、これらから生成された傾き画像、反射率画像、表明形状画像、テクスチャ画像、合成輝度画像などを、切り替え指示が入力されるたびに順番に表示部7に表示させてもよい。さらに検査画像は複数であってもよい。たとえば、表示制御部851は切り替え指示が入力されるたびに順番にそれぞれ特徴サイズが異なる複数の検査画像(表面形状画像)を表示部7に表示させてもよい。図27によれば、UI2701aでは左方向から照明光を照射して撮像した輝度画像が表示されており、UI2701bでは検査画像が表示されている。なお、UI管理部814が撮像設定タブ2702においていずれかの制御パラメータの変更を受け付けると、検査ツール設定部817は、変更された制御パラメータを照明制御部812や撮像制御部813に設定する。照明制御部812は変更された制御パラメータを照明コントローラ802に設定する。照明コントローラ802は変更された制御パラメータにしたがって光源群801を設定する。撮像制御部813は変更された制御パラメータにしたがってカメラ4を制御し、輝度画像を取得させる。フォトメトリック処理部811は新しく取得された輝度画像を受信して傾き画像や反射率画像、検査画像などを再生成(更新)する。表示制御部851は画像が更新されたことをフォトメトリック処理部811から通知されると、記憶装置820から更新された画像を読み出して表示領域1103に表示させる。
このように輝度画像と検査画像とを切り替えながら表示することでユーザは適切な制御パラメータを見つけやすくなろう。また、制御パラメータが変更されたときは画像をリアルタイムで更新することで、さらに、ユーザは適切な制御パラメータを見つけやすくなろう。
図28は制御パラメータを調整する際にUI管理部814が表示部7に表示するUI2801a、2801bの一例を示している。UI2801a、2801bは制御パラメータのうち画像の補正処理(検査画像の生成条件など)に関連した制御パラメータを調整するために使用される。また、UI2801a、2801bの補正処理設定部2802では表示された画像についてのみ適用される個別設定と、複数の画像に対して共通に適用される共通設定とを調整できるように構成されている。個別設定としては、たとえば、ガイデッドフィルタの設定部2803とテクスチャ除去の設定部2804とが設けられている。ガイデッドフィルタとは画像を平滑化するフィルタである。ここでは平滑化のレベルを設定できる。テクスチャ除去とはワーク2の表面の模様や印刷の影響を除去することをいう。共通設定としては、暗部変動抑制の設定部2805やハレーション除去の設定部2806、方向別強調の設定部2807がある。暗部変動抑制とは画像の暗い部分におけるノイズの影響を抑制する処理のことである。ハレーション除去とは輝度画像におけるハレーションを除去して傾き画像や表面形状画像にその影響を及びにくくする処理である。方向別強調とはX方向(検査画像における上下方向)とY方向(検査画像における左右方向)とのうち指定した方向の凹凸を強調し、指定しなかった方向の凹凸を小さくする処理である。
図29は画像の切り替え指示を入力するためのUI2901a、2901b、2901cの一例を示している。図30は入力部6の一部であるコンソール3000の一例を示している。UI2901aではコンソール3000によって操作されるページ切替部2902が設けられている。コンソール3000の上下左右キー3001を操作することでページ切替部2902がアクティブにされる。この状態で、上下左右キー3001が操作されると、表示制御部851は画像の切り替え指示が入力されたと判定する。
UI2901bは入力部6がタッチパネルによって実装される場合のUIである。画像切替ボタン2903の操作を検知すると、表示制御部851は画像の切り替え指示が入力されたと判定する。なお、画像切替ボタン2903では複数の画像の順番のうち順方向に画像を切り替えるボタンと逆方向に画像を切り替えるボタンとが設けられている。これにより複数の画像が表示対象となっていても素早く目的の画像を表示させることが可能となる。
UI2901cは画像リスト2904と画像選択フレーム2905を有している。UI管理部814は入力部6を通じて画像リスト2904の表示指示が入力されると画像リスト2904を作成して表示する。表示制御部851は入力部6を通じて操作される画像選択フレーム2905によって選択された画像を表示領域1103に表示させる。
図31は制御パラメータを調整する際にUI管理部814が表示部7に表示するUI3101a、3101b、3101cの一例を示している。UI3101aでは表示領域1103に検査画像と輝度画像といった2つの画像が同時に表示される。UI3101bでは表示領域1103に3つの検査画像と輝度画像とが同時に表示される。このように複数の画像が表示されるときは制御パラメータを調整したい画像を選択するための画像選択フレーム3120を表示制御部851が表示してもよい。表示制御部851は入力部6から入力される移動指示に応じて画像選択フレーム3120の位置を変更する。これによりユーザは制御パラメータを調整したい画像を選択できるようになる。
UI3101cではフォトメトリックステレオに関する制御パラメータ(検査画像の生成条件など)を調整するためのタブ3102が有効にされている。この例でも生成条件の異なる複数の検査画像が表示領域1103に同時に表示されている。これにより生成条件の違いによる検査画像への影響を比較しやすくなろう。画像選択部3103は設定対象の画像を選択するためのプルダウンメニューである。この例ではプルダウンメニューには表示領域1103に表示されている4つの画像の識別情報が表示され、そのうち1つの画像の識別情報が選択される。なお、画像選択部3103によって選択された画像には画像選択フレーム2905が重畳表示されてもよい。特徴サイズ設定部3104は特徴サイズを指定するためのテキストボックスである。余裕度設定部3105は、特徴サイズに対してどの程度の余裕を持たせるかを設定するためのテキストボックスである。余裕度を小さくすると、特徴サイズに近いサイズの形状が強調される。余裕度を大きくすると、特徴サイズから離れたサイズの形状も強調される。このように余裕度を変更することで、図4に示した特徴サイズのピークが急峻になったり急峻ではなくなったりするように調整される。コントラスト設定部3106は画像のコントラストを設定するためのテキストボックスである。補正処理設定ボタン3107が操作せれるとUI管理部814は、図28に示したような補正処理設定部2802を呼び出す。移動体追従設定部3108は、移動体追従処理を有効化するか無効化するかを設定する設定部である。移動体追従処理とはワーク2が移動しているときに複数の輝度画像内でのワーク2の位置が整合するように輝度画像を補正する処理である。法線ベクトルや反射率は画素ごとの演算によって求められる。したがって同一の座標であれば同一の表面に対応するように輝度画像の位置合わせが必要となる。移動体追従処理は輝度画像から生成されるすべての画像に影響を及ぼす。それゆえ、輝度画像と検査画像とを対比しながら移動体追従処理の効果を確認することで、移動体追従処理を有効化すべきか無効化すべきかを適切に選択できるようになろう。環境光除去設定部3109は検査環境に設置されている蛍光灯などからの光(環境光)を除去する処理を有効化するための設定部である。環境光除去が有効化されるとフォトメトリック処理部が輝度画像から環境光除去処理を実行する。環境光はすべての輝度画像に影響し、それゆえに検査画像にも影響する。よって、輝度画像と検査画像とを対比しながら環境光除去処理の効果を確認することで、環境光除去処理を有効化すべきか無効化すべきかを適切に選択できるようになろう。
図32は同時に表示する画像の枚数を設定するためのUI3201a、3201bの一例を示す図である。UI3201aはコンソール3000によって操作されるUIである。表示パターン設定部3202は表示領域1103に何枚の画像をどのような配列で表示するかを設定するためのUIである。UI3201bはタッチパネル向けのUIである。表示パターン切替ボタン3203が押されるごとに、表示制御部851は、1x1(1枚のみ表示)→1x2(横に2枚表示)→2x1(縦に2枚表示)→2x2(縦横にそれぞれ2枚ずつ表示)→1x1といった順番で表示パターンを切り替える。
<まとめ>
本実施例によれば、フォトメトリック処理部811は、フォトメトリックステレオ法にしたがってカメラ4により取得された複数の輝度画像からワーク2の表面の法線ベクトルを算出し、複数の輝度画像から算出された法線ベクトルに基づく画素値により構成された傾き画像と、当該傾き画像の縮小画像とについて、注目画素に隣接する隣接画素の法線ベクトルを用いて当該注目画素の画素値を積み上げ演算し、当該画素値を有する検査画像を生成する。とりわけ、本実施例によれば、積み上げ演算において使用される縮小画像の成分に対する重みを与えるパラメータである特徴サイズを設定する特徴サイズ設定部815を設けている。このように特徴サイズという概念を導入することで、フォトメトリックステレオの原理を用いて取得された画像から検査用画像を生成する際のパラメータを容易に設定できるようになる。
特徴サイズ設定部815はそれぞれ値の異なる複数の特徴サイズを設定してもよい。この場合、フォトメトリック処理部811は、特徴サイズ設定部815により設定された複数の特徴サイズのそれぞれについて検査画像を生成してもよい。検査ツールの種類に応じて適切な特徴サイズが異なることが考えられる。よって、それぞれ値の異なる複数の特徴サイズに応じて検査画像を生成することは、検査に対応したより適切な検査画像を選択する上で有利であろう。
傷検査部831はそれぞれ異なる特徴サイズ用いて生成された複数の検査画像に対して傷検査を実行し、判定部840は、傷検査部831の検査結果を用いてワーク2の良否を判定してもよい。複数の検査画像に対して傷検査を実行することで、予め1つの検査画像を選択する必要がなくなり、ユーザにとっては便利であろう。OCR部832はそれぞれ異なる特徴サイズ用いて生成された複数の検査画像に対して文字認識処理を実行し、判定部840はOCR部832の文字認識結果を用いてワーク2の良否を判定してもよい。複数の検査画像に対して文字認識処理を実行することで、予め1つの検査画像を選択する必要がなくなり、ユーザにとっては便利であろう。
本来はフォトメトリックステレオ法によりワーク2の高さを示す高さ画像を生成することができる。しかし、ワーク2の表面の高さを計測するためには、かなり厳密にカメラ4と照明装置3の位置関係を設定する必要がある。一方で、フォトメトリックステレオ法により得られた画像のうち高さの情報を取得せずに形状の情報やテクスチャ(模様)の情報を使用することも可能である。たとえば、傷検査やOCRを行うのであれば、カメラ4と照明装置3の厳密な設定は不要である。このように正確な高さデータの不要な検査ツールであれば、カメラ4と照明装置3の配置条件を緩和することができる。なお、照明方向は3方向以上であればよい。
フォトメトリック処理部811はカメラ4により取得された複数の輝度画像からワーク2の表面の法線ベクトルとともにワーク2の表面の反射率を算出し、当該反射率に基づく画素値により構成された反射率画像を生成し、判定部840は反射率画像を用いてワーク2の良否を判定してもよい。これは反射率画像が検査に適している検査ツールも存在するからである。フォトメトリック処理部811はカメラ4により取得された複数の輝度画像からワーク2の表面の法線ベクトルに基づく画素値により構成された傾き画像を生成し、判定部840は傾き画像を用いてワーク2の良否を判定してもよい。これは傾き画像が検査に適している検査ツールも存在するからである。判定部840は輝度画像を用いてワーク2の良否を判定してもよい。傾き画像や反射率画像に加工する前の輝度画像が検査に適している検査ツールも存在するからである。判定部840は、それぞれ照明方向が異なる複数の輝度画像のうち少なくとも1つの輝度画像を用いてワーク2の良否を判定してもよい。照明方向の違いによって明確になるような傷なども存在するため、そのような傷の検出にはある方向からワーク2を照明することで得られた輝度画像が好適であろう。
判定部840は照明装置3のすべて光源を同時に点灯してカメラ4により取得された輝度画像を用いてワーク2の良否を判定してもよい。いわゆる全方向照明画像を用いることでワーク2の良否が判定されてもよい。たとえば、ワーク2のある部分の面積計算や端子の長さの測定などは、全方向照明画像が好適なことがある。
判定部840はそれぞれ照明方向が異なる複数の輝度画像を合成して生成された合成輝度画像を用いてワーク2の良否を判定してもよい。合成輝度画像は全方向照明画像に類似した画像となる。よって、全方向照明画像に代えて合成輝度画像を用いることで、全方向照明画像を取得することなく、検査を実行することが可能となろう。全方向照明画像が必要な場合、それぞれ照明方向が異なる4枚の輝度画像と、同時に4方向から照明して得られた1枚の全方向照明画像とを取得しなければならない。つまり、5回の照明と5回の撮像とが必要となる。一方で、合成輝度画像を使用すれば、4回の照明と4回の撮像とを実行すればよい。このように合成輝度画像を採用することで、短時間で複数の検査画像を処理する必要があるときにはプロセッサ810の処理負荷を軽減できる。また、画像の取得枚数が多くなればなるほどライン1の搬送速度を低下させる必要が生じるが、本実施例では、画像の取得枚数を削減できるため、ライン1の搬送速度の高速化も可能である。
記憶装置820は検査画像を記憶して保持してもよい。判定部840または画像処理部830は記憶装置820から検査画像を読み出して検査を実行し、検査結果に基づいてワーク2の良否を判定してもよい。なお、記憶装置820は内蔵メモリや可搬型記憶メディア、ネットワークストレージのいずれであってもよい。たとえば、可搬型記憶メディア、ネットワークストレージに検査画像を記憶すれば、検査画像を生成した装置とは異なる装置において検査処理を実行することも可能となろう。
記憶装置820はそれぞれ値の異なる特徴サイズを適用して生成された複数の検査画像を記憶してもよい。記憶装置820は、検査画像に加え、傾き画像および反射率画像のうち少なくとも一方を記憶してもよい。画像選択部816は複数の検査画像から1つの検査画像を選択してもよい。また、検査ツール設定部817は画像選択部816により選択された検査画像に対して検査ツールを設定してもよい。それぞれ値の異なる特徴サイズを適用して生成された複数の検査画像のうち検査に不要なものも存在しうる。よって、ユーザは検査ツールに応じて検査画像を設定してもよい。
図15などを用いて説明したように、画像処理部830は良品から取得された基準画像を用いてパターンサーチを実行して検査領域を設定してもよい。判定部840は検査領域において実行された検査の結果を用いてワーク2の良否を判定してもよい。検査領域は、たとえば、文字認識領域である。
図11、図21ないし図26を用いて説明したように、画像選択部816はカメラ4により取得された複数の輝度画像および検査画像のうち保存対象もしくは出力対象となる画像を選択してもよい。また、画像選択部816は複数の輝度画像、検査画像、照明装置3が備える複数の光源をすべて点灯させて取得された輝度画像および複数の輝度画像を合成して得られた合成輝度画像から保存対象もしくは出力対象となる画像を選択してもよい。さらに、画像選択部816はそれぞれ特徴サイズが異なる複数の検査画像から保存対象もしくは出力対象となる画像を選択してもよい。さらに、画像選択部816は複数の輝度画像、検査画像およびワーク2の表面の反射率を画素値とした反射率画像から保存対象もしくは出力対象となる画像を選択してもよい。このように検査に関連する画像を適宜選択できるようにすることで、所望の画像を保存または出力することが容易となろう。
画像を保存または出力する条件を設定する条件設定部819がさらに設けられてもよい。たとえば、図22や図26を用いて説明したように、条件設定部819は常に画像を保存または出力するモードと判定部840によりワーク2が良品ではないと判定されたときに画像を保存または出力するモードとのうちいずれかを設定してもよい。図21ないし図26を用いて説明したように、プロセッサ810は、判定部840が判定を終了した後でまたは前に画像を保存または出力する条件が満たされているかどうかを判断してもよい。たとえば、検査フローにおいて検査が終了した時点で画像を保存するかどうかが判断されてもよいし、検査フローのいずれかの工程で画像を保存するかどうかが判断されてもよい。とりわけ、後者の場合は検査フローの途中で生じる中間画像についても保存することが可能となろう。このような中間画像は検査に失敗した原因を探り、制御パラメータを調整する際に役立つであろう。
上述したようにフォトメトリック処理部811はカメラ4により取得された複数の輝度画像に基づき検査対象物の表面の法線ベクトルを求め、法線ベクトルに応じた複数の画素値により構成された検査画像を生成する。また表示制御部851および表示部7は複数の輝度画像のうち少なくとも1つと検査画像とを切り替えて表示するか、または、複数の輝度画像のうち少なくとも1つと検査画像とを同時に表示する。また、検査ツール設定部817はカメラ4の制御パラメータおよび照明装置3の制御パラメータのうち少なくとも1つを調整する調整手段として機能する。さらに表示制御部851は制御パラメータが調整されると表示部7に表示されている画像を変更後の制御パラメータが反映された画像に更新する更新手段として機能する。このように輝度画像と検査に使用される検査画像とを切り替えながら表示するか、またはこれらを同時に表示するため、ユーザにとってパラメータの調整結果を直感的にわかりやすくなる。これにより、フォトメトリックステレオの原理を用いて取得された画像から検査用画像を生成する際のパラメータを容易に設定できるようになるだろう。
シャッタースピード設定部2703に関して説明したように、検査ツール設定部817によりカメラ4のシャッタースピード(露光時間)が変更されるとカメラ4は当該露光時間に基づいてワーク2を撮像して複数の輝度画像を取得する。表示制御部851は露光時間が変更された後に取得された複数の輝度画像のうち少なくとも1つの輝度画像と、この輝度画像に基づき再生成された検査画像とを同時または切り替えて表示部7に表示させてもよい。シャッタースピードが変更されると輝度画像の明るさが変化し、さらには法線ベクトルと反射率もその影響を受ける。つまり、傾き画像や反射率画像、これらから派生的に生成される検査画像(表面形状画像やテクスチャ画像)にもこの変化が影響する。よって、輝度画像と検査画像を確認しながら調整することで露光時間を適切に調整することが可能となろう。とりわけ露光時間の変化は検査画像よりも輝度画像で確認しやすいため、検査画像とともに輝度画像を確認できることが有利であろう。
光量設定部2706に関して説明したように、検査ツール設定部817によって照明光量が変更されると照明装置3が備える複数の光源のそれぞれの照明光量が変更される。つまり、複数方向からの照明光の光量がそれぞれ連動して変更される。通常、複数方向からの照明光の各光量は同一である。照明光の光量もシャッタースピードと同様に画像に変化をもたらす。よって、輝度画像と検査画像を確認しながら調整することで照明光量を適切に調整することが可能となろう。
表示制御部851は輝度画像を表示するときに、当該輝度画像を構成している画素のうち画素値が飽和している画素(飽和画素)を強調表示してもよい。また、通知部2711に関して説明したように、表示制御部851は飽和画素と画素値が飽和していない画素(非飽和画素)との割合を示す情報を表示してもよい。また、表示制御部851は複数の輝度画像を合成した合成輝度画像を表示するときに、当該合成輝度画像を構成している画素のうち飽和画素を強調表示するか、または、飽和画素と非飽和画素との割合を示す情報を表示してもよい。白とびや黒つぶれなどの飽和画素は法線ベクトルや反射率の計算に誤差をもたらす。よって、飽和画素を強調表示することで、飽和画素が十分に少なくなるように制御パラメータを調整しやすくなる。表示制御部851は、検査画像を表示するときに、当該検査画像の画素のうち対応する輝度画像における飽和画素と座標が一致している画素を強調表示するか、または、飽和画素と非飽和画素との割合を示す情報を表示してもよい。上述したように傾き画像などの検査画像では輝度の飽和した画素を判別できない。そこで、輝度画像において飽和画素の座標を求め、検査画像においてその座標の画素を強調表示することで、検査画像を確認するだけでも飽和画素の有無をユーザが確認できるようになる。
点灯回数設定部2708に関して説明したように、検査ツール設定部817は照明装置3の点灯回数を調整してもよい。点灯回数は撮像回数に一致しているため、点灯回数が増えれば照明方向の数も増える。つまり、輝度画像の枚数が増加して、検査画像の演算精度も向上することになる。そこで、点灯回数を調整しながら輝度画像や検査画像を確認することで、検査画像の演算精度がどの程度向上するかを確認できるようになる。点灯回数を増やせば、それだけ演算量が増加するため、点灯回数と検査画像の演算精度との妥協点を見つけることにも役立つであろう。
点灯位置調整部2710に関して説明したように、検査ツール設定部817は、照明装置3が備える複数の光源のうち点灯すべき光源を変更してもよい。照明装置3が誤って設置されると、照明装置3の照明方向と、フォトメトリック処理部811で想定している照明方向とがずれてしまうことがある。図27では矢印2712がフォトメトリック処理部で想定している照明方向を示しており、この例では照明装置3の照明方向と、フォトメトリック処理部で想定している照明方向とが一致している。ユーザは輝度画像を確認することでこれらが一致してないことを容易に判別できる。一致していなければ、ユーザは点灯位置調整部2710により光源(発光素子)の点灯位置を調整することで、照明装置3の照明方向と、フォトメトリック処理部で想定している照明方向とを一致させることができる。
点灯位置調整部2710に関して説明したように、UI管理部814の表示制御部851は検査ツール設定部817が点灯すべき光源を変更するときに、点灯すべき光源を指定するためのユーザインタフェースを表示してもよい。検査ツール設定部817はユーザインタフェースにおいて点灯すべき光源の指定を受け付けてもよい。たとえば、UI管理部814は光源の配置(円形配置や矩形配置など)を示すUIを表示し、そのUI上で現在の輝度画像に対応する照明方向(光源群)の指定を受け付けてもよい。
図28や図31などを用いて説明したように、検査ツール設定部817は表示制御部851が検査画像を表示しているときに、フォトメトリックステレオ法による当該検査画像の生成条件を調整してもよい。生成条件のうち代表的なものは特徴サイズである。表示制御部851はそれぞれ生成条件が異なる複数の検査画像を切り替えて表示するか、または、同時に表示することで、ユーザは生成条件の影響を確認しつつ適切な生成条件を見出しやすくなろう。図29を用いて説明したように、表示制御部851は、それぞれ生成条件が異なる複数の検査画像のうちから選択された1つの検査画像を表示してもよい。フォトメトリック処理部は検査ツール設定部817により調整された特徴サイズにしたがって選択された1つの検査画像を再生成し、表示制御部851は再生成された検査画像を表示部7に表示させてもよい。生成条件は、複数の検査画像に対して共通に設定される共通設定項目と複数の検査画像に対して個別に設定される個別設定項目を含む。たとえば、露光時間や暗部変動制御、ハレーション除去などは各輝度画像に共通に設定される項目である。一方で特徴サイズやガイデッドフィルタ、テクスチャ除去などは、複数の検査画像のそれぞれで個別に設定される項目である。このように個別設定項目と共通設定項目とを分けることで効率よく調整を実行できるようになろう。
表示制御部851はワーク2の表面の法線ベクトルに応じた画素値により構成された傾き画像と、ワーク2の表面の反射率に応じた画素値により構成された反射率画像とを切り替えて表示するか、または、同時に表示してもよい。このように種類の異なる検査画像についても輝度画像ともに確認できるようにすることで、各検査画像について制御パラメータが適切かどうかをユーザが判断しやすくなろう。