以下、本発明の実施の形態を図面に基づいて説明する。ただし、以下に示す実施の形態は、本発明の技術思想を具体化するための三次元画像処理装置、三次元画像処理方法及び三次元画像処理プログラム並びにコンピュータで読み取り可能な記録媒体及び記録した機器を例示するものであって、本発明は三次元画像処理装置、三次元画像処理方法及び三次元画像処理プログラム並びにコンピュータで読み取り可能な記録媒体及び記録した機器を以下のものに特定しない。また、本明細書は特許請求の範囲に示される部材を、実施の形態の部材に特定するものでは決してない。特に実施の形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一もしくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。
また本明細書において「距離画像(高さ画像)」という場合には、高さ情報を含む画像の意味で使用し、例えば距離画像に光学的な輝度画像をテクスチャ情報として貼り付けた三次元の合成画像も、距離画像に含む意味で使用する。また、本明細書において距離画像の表示形態は二次元状に表示されるものに限られず、三次元状に表示されるものも含む。
(実施の形態1)
本発明の実施の形態1に係る三次元画像処理装置の構成を図1に示す。この三次元画像処理装置100は、ヘッド部1と、コントローラ部2とを備える。ヘッド部1は、検査対象物(ワーク)Wを照らす投光手段20と、ワークWの画像を撮像する撮像手段10と、コントローラ部2と接続するためのヘッド側通信手段36を備える。
一方コントローラ部2は、撮像された画像に基づいて、エッジ検出や面積計算等の計測処理を実行する。またコントローラ部2には、液晶パネル等の表示手段4、ユーザが表示手段4上で各種操作するためのコンソール等の入力手段3、PLC(Programmable Logic Controller)等を着脱自在に接続できる。
以上の三次元画像処理装置100は、ヘッド部1の投光手段20でワークWに測定光を投光し、測定光がワークWに入射されて反射された反射光を、撮像手段10でパターン投影画像として撮像する。またパターン投影画像に基づいて距離画像を生成し、さらにこの距離画像を、各画素が有する高さ情報を輝度に置き換えた低階調距離画像に変換する。コントローラ部2は、変換された低階調距離画像に基づいて、エッジ検出や面積計算等の計測処理を実行する。
なお検査対象物であるワークWは、例えばライン上を順次搬送される物品であり、移動又は静止している。また移動するワークは、コンベア等による平行移動の他、回転するものも含まれる。
(投光手段20)
投光手段20は、距離画像を生成するためにワークWを照らす照明として用いられる。したがって投光手段20は、距離画像を取得するための光切断法やパターン投影法に応じて、例えばワークに対してライン状のレーザ光を投光する光投影器、ワークに正弦波縞模様パターンを投影するためのパターン投影器等とすることができる。また投光手段以外に、明視野照明や暗視野照明を行うための一般的な照明装置を別途設けてもよい。あるいは投光手段20に、一般的な照明装置としての機能を持たせることも可能である。
コントローラ部2は、ヘッド部1から取得した距離画像データを用いて画像処理を実行し、外部接続されたPLC70等の制御機器に対し、ワークの良否等の判定結果を示す信号として判定信号を出力する。
撮像手段10は、PLC70から入力される制御信号、例えば撮像手段10から画像データを取り込むタイミングを規定する撮像トリガ信号に基づいて、ワークの撮像を行う。
表示手段4は、ワークを撮像して得られた画像データや、その画像データを用いた計測処理の結果を表示するための表示装置である。一般に、ユーザは、表示手段4を視認することによって、コントローラ部2の動作状態を確認することができる。入力手段3は、表示手段4上でフォーカス位置を移動させたり、メニュー項目を選択したりするための入力装置である。なお、表示手段4にタッチパネルを使用する場合は、表示手段と入力手段を兼用できる。
またコントローラ部2は、コントローラ部2の制御プログラムを生成するためのパーソナルコンピュータPCを接続することもできる。またパーソナルコンピュータPCには、三次元画像処理に関する設定を行う三次元画像処理プログラムをインストールして、コントローラ部2で行う処理の各種設定を行うこともできる。あるいは、このパーソナルコンピュータPC上で動作するソフトウェアによって、画像処理の処理順序を規定する処理順序プログラムを生成することができる。コントローラ部2では、その処理順序に沿って各画像処理が順次実行される。パーソナルコンピュータPCとコントローラ部2とは、通信ネットワークを介して接続されており、パーソナルコンピュータPC上で生成された処理順序プログラムは、例えば表示手段4の表示態様を規定するレイアウト情報等と共に、コントローラ部2に転送される。また逆に、コントローラ部2から処理順序プログラムやレイアウト情報等を取り込んで、パーソナルコンピュータPC上で編集することもできる。なお、この処理順序プログラムは、パーソナルコンピュータPCだけでなく、コントローラ部2においても生成できるようにしてもよい。
(変形例)
なお、以上の例ではコントローラ部2として専用のハードウェアを構築しているが、本発明はこの構成に限定されるものでない。例えば図2に示す変形例に係る三次元画像処理装置100’のように、汎用のパーソナルコンピュータやワークステーション等に専用の検査プログラムや三次元画像処理プログラムをインストールしたものをコントローラ部2’として機能させ、ヘッド部1に接続して利用することもできる。この三次元画像処理装置は、三次元画像処理プログラムで画像処理等、必要な設定を行った上で、ヘッド部1で撮像されたパターン投影画像に従って低階調距離画像を画像処理して、必要な検査を行う。
(ヘッド側通信手段36)
また、これに応じてヘッド部1側に、ヘッド側通信手段36として、専用のコントローラ部2や、コントローラ部2として機能するパーソナルコンピュータのいずれにも接続できるようなインターフェースを設けることもできる。例えばヘッド部1に、ヘッド側通信手段36として、図1に示すようにコントローラ部2と接続するためのコントローラ接続用インターフェース36Aを設けたり、あるいは図2に示すように、パーソナルコンピュータと接続するためのPC接続用インターフェース36Bを設ける。またこのようなインターフェースをユニット式に交換可能とすることで、ヘッド部の他の構成をある程度共通化して、共通のヘッド部でコントローラ部やパーソナルコンピュータのいずれにも接続可能とできる。あるいは、専用のコントローラ部2と、コントローラ部2のいずれにも接続可能なインターフェースを備えた一のヘッド側通信手段を設けてもよい。またこのようなインターフェースは、既存の通信規格、例えばイーサーネット(商品名)やUSB、RS−232C等が利用できる。また、必ずしも規格化された、あるいは汎用の通信方式によらず、専用の通信方式としてもよい。
(PC接続モード)
さらに三次元画像処理プログラムに、ヘッド部1に接続するコントローラ部2’としてパーソナルコンピュータを使用する場合の設定を行うPC接続モードを備えることもできる。すなわちコントローラ部が専用ハードウェアであるか、パーソナルコンピュータであるかに応じて、設定可能な項目や設定内容を変化させることで、いずれの場合にも三次元画像処理に関する設定を適切に行うことが可能となる。さらに、コントローラ部2’として機能するパーソナルコンピュータに、ヘッド部1の動作確認用途、及び簡易的な計測機能を持たせたビューワプログラムをインストールして、接続されたヘッド部の動作や機能を確認できるようにしてもよい。
なお図1に示す撮像手段10と投光手段20を利用することで得られる「距離画像」とは、ワークWを撮像する撮像手段10から、ワークWまでの距離に応じて各画素の濃淡値が変化する画像をいう。換言すれば、撮像手段10からワークWまでの距離に基づいて濃淡値が決定される画像ともいえるし、ワークWまでの距離に応じた濃淡値を有する多値画像ともいえるし、或いはワークWの高さに応じた濃淡値を有する多値画像ともいえる。さらに、輝度画像の画素ごとに、撮像手段10からの距離を濃淡値に変換した多値画像ともいえる。
距離画像を生成する手法としては、大きく分けて2つの方式があり、一つは、通常の画像を得るための照明条件で撮像した画像を用いて距離画像を生成するパッシブ方式(受動計測方式)、もう一つは、高さ方向の計測をするための光を能動的に照射して距離画像を生成するアクティブ方式(能動計測方式)である。パッシブ方式の代表的な手法は、ステレオ計測法である。これは、撮像手段10を2台用意し、これら2台のカメラを所定の位置関係で配置するだけで距離画像を生成できることから、輝度画像を生成するための一般的な画像処理システムを利用して距離画像を生成でき、システム構築コストを抑制することができる。しかし、ステレオ計測法では、一方のカメラによって得られる画像中の一点が、他方のカメラによって得られる画像中のどの点に対応しているのかを決定しなければならず、いわゆる対応点の決定処理に時間が掛かるという問題がある。また、計測位置は対応点のみであり、全画素ではないことから、この点においても外観検査の高速化には向かない。
一方で、アクティブ方式の代表的な手法は、光切断法とパターン投影法である。光切断法とは、表面の形状や粗さ等を光学的に測定する方法であり、検査対象物の面に対し、約45°の角度で細いスリット像を投影し、その像を正反射方向から観察する方法や、細いスリット状の光線束で検査対象物を切断するように照射し、表面に生じる切断線の形状を側方から観測する方法が知られている。また、光切断法では一ライン分のプロファイル(切断面)のみが得られるが、光切断を行う位置を連続的に変化させて、各位置で得られたプロファイルを合成することで、距離画像を構成することもできる。
ここでの光切断法は、上述したステレオ計測法において、一方のカメラを光投影器に置き換えて、ワークに対してライン状のレーザ光を投光し、物体表面の形状に応じたライン光の像の歪み具合からワークの三次元形状を復元する。光切断法は、対応点の決定が不要であるので安定した計測が可能である。しかし、1回の計測で1ライン分しか計測できないため、全画素の計測値を得ようとすると、対象物又はカメラを走査しなければならない。これに対し、パターン投影法は、ワークに投影された所定パターンの形状や位相等をずらして複数枚の画像を撮像し、撮像した複数枚の画像を解析することでワークの三次元形状を復元するものである。パターン投影法には幾つか種類があり、正弦波縞模様パターンの位相をずらして複数枚(最低3枚以上)の画像を撮像し、複数枚の画像から画素ごとに正弦波の位相を求め、求めた位相を利用してワーク表面上の三次元座標を求める位相シフト法や、2つの規則的なパターンが合成されるときに生じる一種の空間周波数のうねり現象を利用して三次元形状を復元するモアレポトグラフィ法、ワークに投影するパターン自体を撮影毎に異ならせ、例えば白黒デューティ比50%で縞幅が画面半分、4分の1、8分の1、、、と細くなっていく縞パターンを順次投影し、それぞれのパターンにてパターン投影画像の撮影を行い、ワークの高さの絶対位相を求める空間コード化法、ワークに複数の細線状のパターン照明(マルチスリット)を投影し、スリット周期より狭いピッチでパターンを移動させ、複数回撮影を行うマルチスリット法等が代表的である。
本実施形態に係る三次元画像処理装置100では、上述した位相シフト法と空間コード化法を組み合わせて距離画像を生成する。これにより、ワーク又はヘッドを相対的に動かすことなく、距離画像を生成することができる。本発明は、位相シフト法及び空間コード化法によって距離画像を生成することに限られず、他の方法によって距離画像を生成しても構わない。また、上述した方法以外の方法、例えば光レーダ法(タイムオブフライト)、合焦点法、共焦点法、白色光干渉法等、距離画像を生成するために考え得る如何なる手法を採用しても構わない。
なお図1に示す撮像手段10と投光手段20の配置レイアウトは、ワークWに対して斜め方向から投光し、ワークWからの反射光をほぼ垂直な方向で受光できるよう、投光手段20を斜めに、撮像手段10を鉛直姿勢に保持するように配置している。このように投光方向と撮像方向とを一致させず、傾斜させることで、ワークWの表面形状の凹凸に起因する陰影を捉えたパターン投影画像を撮像できる。
(実施の形態2)
ただ本発明は、この配置例に限定されるものでなく、例えば図3に示す実施の形態2に係る三次元画像処理装置200のように、撮像手段10側をワークWに対して傾斜姿勢に、投光手段20側を鉛直姿勢に保持する配置例としてもよい。このような配置のヘッド部1Bによっても、同様に投光方向と撮像方向とを傾斜させて、ワークWの陰影を捉えたパターン投影画像を撮像できる。
(実施の形態3)
さらに、投光手段や撮像手段の一方又は両方を複数配置することもできる。例えば、実施の形態3として図4Aに示す三次元画像処理装置300のように、撮像手段10をワークWに対して鉛直姿勢に保持する一方、撮像手段10を中心に2つの投光手段20を両側に配置して、左右からそれぞれ投光するヘッド部1Cとして構成することもできる。このように投光の方向が異なるパターン投影画像をそれぞれ撮像することで、一方向からの投光ではワークW自体で陰影パターンが隠れてしまう等、パターン投影画像を部分的に撮像できない状態が生じて高さ計測が不正確又は不可能となる事態を低減できる。特に、ワークに対して相対する方向(例えば左右や前後)から投光するように投光手段20を配置すれば、ワーク自体で遮られて撮像できない可能性を大幅に低減できる。
(実施の形態4)
また、以上の例では撮像手段を一台、投光手段を二台とする構成について説明したが、逆に撮像手段を二台、投光手段を一台とする構成とすることもできる。このような例を実施の形態4に係る三次元画像処理装置400として図4Bに示す。この例に示すヘッド部1Dでは、投光手段20をワークWに対して鉛直姿勢に保持し、図においてその左右に撮像手段10をそれぞれ、ワークWに対して傾斜姿勢に配置させている。この構成でも、ワークWを異なる傾斜角度から撮像できるので、実施の形態3と同様にパターン投影画像が部分的に撮像困難となる事態を抑制できる。またこの方法であれば、一回の投光で2枚のパターン投影画像を同時に撮像できるため、処理時間を短縮化できる利点も得られる。
その反面、2つの撮像手段で異なる角度から同じワークを撮像しても、撮像している部位や視野等が異なるため、各画素の位置を一致させる作業が必要となり、誤差も発生する可能性がある。これに対し、上述した実施の形態3によれば、撮像手段を共通化したことで、いずれの投光手段から測定光を投光しても、同一の視野の画像を撮像できるため、このような統合作業を不要とでき、また統合作業に伴う誤差の発生も回避して、処理を簡素化できる利点が得られる。
なお以上の例では、各ヘッド部において撮像手段10と投光手段20とを一体的に構成した例を説明したが、本発明はこの構成に限られない。例えば、撮像手段10と投光手段20とを別個の部材で構成したヘッド部とすること可能である。また、撮像手段や投光手段を3以上設けることも可能である。
(ブロック図)
次に、本発明の実施の形態3に係る三次元画像処理装置300の構成を示すブロック図を図5に示す。三次元画像処理装置300は、図5に示すように、ヘッド部1と、コントローラ部2とを備える。
(ヘッド部1)
このヘッド部1は、投光手段20と、撮像手段10と、ヘッド側制御部30と、ヘッド側演算部31と、記憶手段38と、ヘッド側通信手段36等を備えている。投光手段20は、測定光源21、パターン生成部22及び複数のレンズ23、24、25を含む。撮像手段10は、図示しないがカメラ及び複数のレンズを含む。
(投光手段20)
投光手段20は、撮像手段の光軸に対して斜め方向から入射光を所定の投影パターンの構造化照明として投光するための部材である。この投光手段20には、プロジェクタが利用でき、光学部材であるレンズやパターン生成部22等が含まれる。投光手段20は、静止若しくは移動するワークの位置の斜め上方に配置される。なおヘッド部1は、複数の投光手段20を含むこともできる。図5の例においては、ヘッド部1は2つの投光手段20を含む。ここでは、第一の方向からワークに対して測定用照明光を照射可能な第一プロジェクタ20A(図5において右側)と、第一の方向とは異なる第二の方向からワークに対して測定用照明光を照射可能な第二プロジェクタ20B(図5において左側)を、それぞれ配置している。第一プロジェクタ20A、第二プロジェクタ20Bは撮像手段10の光軸を挟んで対称に配置される。第一プロジェクタ20A、第二プロジェクタ20Bからワークに対し、交互に測定光を投光して、それぞれの反射光のパターンを撮像手段10で撮像する。
各第一プロジェクタ20A、第二プロジェクタ20Bの測定光源21は、例えば白色光を出射するハロゲンランプや白色光を出射する白色LED(発光ダイオード)等が利用できる。測定光源21から出射された測定光は、レンズにより適切に集光された後、パターン生成部22に入射する。
さらに、距離画像を生成するためのパターン投影画像を取得する測定光を出射するための投光手段に加え、通常の光学画像(輝度画像)を撮像するための観察用照明光源を設けることもできる。観察用照明光源には、LEDの他、半導体レーザ(LD)やハロゲンライト、HID等を利用できる。特に撮像素子としてカラーで撮像可能な素子を用いた場合は、観察用照明光源に白色光源を利用できる。
測定光源21から出射された測定光は、レンズ113により適切に集光された後、パターン生成部112に入射する。パターン生成部22は、任意のパターンの照明を実現できる。例えば、白字に黒字、黒字に白字等、ワークや背景の色に応じてパターンを反転させ、見易い、あるいは測定し易い適切なパターンを表現できる。このようなパターン生成部22は、例えばDMD(デジタルマイクロミラーデバイス)が利用できる。DMDは、画素毎に微小なミラーをON/OFFさせて任意のパターンを表現できる。これにより、白と黒を反転させたパターンを容易に照射できる。パターン生成部22にDMDを用いることで、任意のパターンを容易に生成でき、機械的なパターンマスクの準備やその入れ替え作業を不要とできるので、装置の小型化と迅速な計測ができる利点がある。また、DMDを用いたパターン生成部112は、すべての画素をONとする全照明パターンの照射によって、通常の照明と同様に利用できるので、輝度画像の撮像にも利用できる。またパターン生成部22は、LCD(液晶ディスプレイ)、LCOS(Liquid Crystal on Silicon:反射型液晶素子)又はマスクとすることもできる。パターン生成部22に入射した測定光は、予め設定されたパターン及び予め設定された強度(明るさ)に変換されて出射される。パターン生成部22により出射された測定光は、複数のレンズにより撮像手段10の観察・測定可能な視野よりも大きい径を有する光に変換された後、ワークに照射される。
(撮像手段10)
撮像手段10は、投光手段20で投光され、ワークWKで反射された反射光を取得して複数のパターン投影画像を撮像するためのカメラを備える。このようなカメラには、CCDやCMOS等が利用できる。この例では高解像度の得られるモノクロCCDカメラを利用している。なお、カラーで撮像可能なカメラを使用することも可能であることはいうまでも無い。また撮像手段は、パターン投影画像以外に、通常の輝度画像を撮像することも可能である。
ヘッド側制御部30は、撮像手段10及び投光手段20である第一プロジェクタ20A、第二プロジェクタ20Bを制御するための部材である。例えば、投光手段20がワークに対して測定光を投光してパターン投影画像を得るための投光パターンの作成を、ヘッド部側制御部30で行う。これによって撮像手段10で、投光手段20から位相シフト用の投影パターンを投影させて位相シフト画像を撮像させ、また投光手段20から空間コード化用の投影パターンを投影させて空間コード画像を撮像させる。このようにヘッド側制御部30は、撮像手段10で位相シフト画像と空間コード画像を撮像するよう、投光手段を制御するための投光制御手段として機能する。
ヘッド側演算部31は、フィルタ処理部34と距離画像生成手段32を含む。距離画像生成手段32は、撮像手段10で撮像された複数のパターン投影画像に基づいて、距離画像を生成する。
ヘッド側記憶手段38は、各種設定や画像等を保持するための部材であり、半導体メモリやハードディスク等の記憶素子が利用できる。例えば、撮像手段10で撮像されたパターン投影画像を保持するための輝度画像記憶部38b、及び距離画像生成手段32で生成された距離画像を保持するための距離画像記憶部38aを含む。
ヘッド側通信手段36は、コントローラ部2と通信を行うための部材である。ここではコントローラ部2のコントローラ側通信手段42と接続されて、データ通信を行う。例えば、距離画像生成手段32で生成された距離画像を、コントローラ部2に対して送出する。
(距離画像生成手段32)
距離画像生成手段32は、ワークWKを撮像する撮像手段10からワークWKまでの距離に応じて各画素の濃淡値が変化する距離画像を生成する手段である。例えば、位相シフト法で距離画像を生成する場合は、ワークに対して正弦波縞模様パターンを位相ずらして投影するように、ヘッド側制御部30が投光手段20を制御し、それに応じて正弦波縞模様パターンの位相がずれた画像を複数枚撮像するように、ヘッド側制御部30が撮像手段10を制御する。そしてヘッド側制御部30は、複数枚の画像から画素毎に正弦波の位相を求め、求めた位相を利用して距離画像を生成する。
また空間コード化法を用いて距離画像を生成する場合は、光が照射される空間を、多数の断面略扇状の小空間に分け、この小空間には一連の空間コード番号を付す。このため、ワークの高さが高くても、言い換えると高低差が大きくても、光が照射される空間内にあれば、空間コード番号から高さが演算できる。したがって、高さの高いワークについても全体にわたって形状を計測できる。
このようにしてヘッド部側で距離画像を生成し、コントローラ部側に送出することで、ヘッド部からコントローラ部側に送出すべきデータ量を低減でき、大量のデータ転送によって生じ得る処理の遅れを回避できる。
なお、本実施形態ではヘッド部1側で距離画像の生成処理を行うようにしているが、例えばコントローラ部2側で距離画像の生成処理を担うこともできる。また、距離画像から低階調距離画像への階調変換は、コントローラ部で行う他、ヘッド部側で行わせることもできる。この場合は、ヘッド側演算部31が階調変換手段の機能を実現する。
(コントローラ部2)
またコントローラ部2は、コントローラ側通信手段42と、コントローラ側制御部と、コントローラ側演算部と、コントローラ側記憶手段と、検査実行手段50と、コントローラ側設定手段41とを備えている。コントローラ側通信手段42は、ヘッド部1のヘッド側通信手段36と接続されてデータ通信を行う。コントローラ側制御部は、各部材の制御を行うための部材である。コントローラ側演算部は、画像処理部60の機能を実現する。画像処理部60は、画像サーチ手段64や階調変換手段46等の機能を実現する。
(階調変換手段)
階調変換手段46は、距離画像に基づいて、高階調の距離画像を、低階調の低階調距離画像に階調変換する(詳細な手順については後述する)。これによって、ヘッド部で生成された高さ情報を有する距離画像を、既存の設備でも扱える二次元の濃淡画像として表現することで、計測処理や検査処理に資することができる。また、距離画像の生成処理と、階調変換処理とを、ヘッド部とコントローラ部とで分担して、負荷を分散できる利点も得られる。なお、ヘッド部側で距離画像の生成に加え、低階調距離画像の生成も行わせてもよい。このような処理はヘッド側演算部で行うことができる。これによって、コントローラ部側の負荷を一層軽減して、効率のよい運用が可能となる。
さらに階調変換手段は、距離画像のすべてを階調変換するのでなく、好ましくは、必要な部分のみを選択して、階調変換する。具体的には、予め検査対象領域設定手段(詳細は後述)で設定された検査対象領域と対応する部分のみを階調変換する。このようにすることで、多階調の距離画像を低階調の距離画像に変換する処理を、検査対象領域のみに限ることで階調変換に要する負荷を軽減できる。またこのことは処理時間の短縮化にも寄与する。すなわち、処理時間の短縮化を図ることで、FA用途の検査のような処理時間の限られた用途においても好適に利用でき、リアルタイム処理が実現される。
コントローラ側記憶手段は、各種設定や画像を保持するための部材であり、半導体記憶素子やハードディスク等が利用できる。
コントローラ側設定手段41は、コントローラ部に対する各種設定を行うための部材であり、コントローラ部に接続されたコンソール等の入力手段3を介してユーザからの操作を受け付け、必要な条件等をコントローラ側に指示する。例えば、階調変換条件設定手段43や基準面設定手段44、空間コード化切替手段45、間隔均等化処理設定手段47、投光切替手段48、シャッタースピード設定手段49等の機能を実現する。
基準面設定手段44は、コントローラ側通信手段42で受信された距離画像を、二次元の低階調距離画像に変換する階調変換を行う際の階調変換条件を構成する階調変換パラメータとして、この階調変換を行う基準面を、該距離画像に基づいて設定する。階調変換手段46は、基準面設定手段44で設定された基準面を基準として、距離画像を、この距離画像の階調数よりも低い階調数の、高さ情報を画像の濃淡値に置き換えた低階調距離画像に階調変換する。
検査実行手段50は、階調変換手段46で階調変換された低階調距離画像に対して、所定の検査処理を実行する。
(ハードウェア構成)
次にコントローラ部2のハードウェア構成例を、図6のブロック図に示す。この図に示すコントローラ部2は、各種プログラムに基づき数値計算や情報処理を行うと共に、ハードウェア各部の制御を行う主制御部51を有している。主制御部51は、例えば、中央演算処理装置としてのCPUと、主制御部51が各種プログラムを実行する際のワークエリアとして機能するRAM等のワークメモリと、起動プログラムや初期化プログラム等が格納されたROM,フラッシュROM,又はEEPROM等のプログラムメモリとを有している。
またコントローラ部2は、撮像手段10や投光手段20等を含むヘッド部1と接続して、ワークに対して正弦波縞模様パターンを、位相をずらして投影するよう投光手段20を制御し、撮像手段10での撮像により得られた画像データを取り込むためのコントローラ側接続部52と、入力手段3からの操作信号が入力される操作入力部53と、液晶パネル等の表示手段4に対して画像を表示させる表示用DSP等から構成される表示制御部54と、外部のPLC70やパーソナルコンピュータPC等と通信可能に接続される通信部55と、一時的なデータを保持するRAM56と、設定内容を保存するコントローラ側記憶手段57と、パーソナルコンピュータPCにインストールされた三次元画像処理プログラムで設定されたデータを保持するための補助記憶手段58と、エッジ検出や面積計算等の計測処理を実行する演算用DSP等から構成される画像処理部60と、画像処理部60での処理結果等に基づいて所定の検査を行った結果を出力するための出力部59等を備えている。これらの各ハードウェアは、バス等の電気的な通信路(配線)を介し、通信可能に接続されている。
主制御部51内のプログラムメモリには、コントローラ側接続部52、操作入力部53、表示制御部54、通信部55、及び画像処理部60の各部を、CPUのコマンド等により制御するための制御プログラムが格納されている。また、上述した処理順序プログラム、すなわちパーソナルコンピュータPCにおいて生成され、パーソナルコンピュータPCから転送された処理順序プログラムは、プログラムメモリに格納される。
通信部55は、外部のPLC70に接続されたセンサ(光電センサ等)でトリガ入力があったときに、PLC70から撮像トリガ信号を受信するインターフェース(I/F)として機能する。また、パーソナルコンピュータPCから転送されてくる三次元画像処理プログラムや表示手段4の表示態様を規定するレイアウト情報等を受信するインターフェース(I/F)としても機能する。
主制御部51のCPUは、通信部55を介してPLC70から撮像トリガ信号を受信すると、コントローラ側接続部52に対して撮像指令(コマンド)を送る。また、処理順序プログラムに基づいて、画像処理部60に対して、実行すべき画像処理を指示するコマンドを送信する。なお、撮像トリガ信号を生成する装置として、PLC70ではなく、光電センサ等のトリガ入力用のセンサを、通信部55に直接接続するように構成してもよい。
操作入力部53は、ユーザの操作に基づき入力手段3からの操作信号を受信するインターフェース(I/F)として機能する。表示手段4には、入力手段3を用いたユーザの操作内容が表示される。例えば入力手段3にコンソールを用いる場合は、表示手段4上に表示されるカーソルを上下左右に移動させる十字キー、決定ボタン、又はキャンセルボタン等の各部品を配置できる。これらの各部品を操作することによって、ユーザは表示手段4上で、画像処理の処理順序を規定するフローチャートを作成したり、各画像処理のパラメータ値を編集したり、基準領域の設定をしたり、基準登録画像を編集したりすることができる。
コントローラ側接続部52は、画像データの取り込みを行う。具体的には、例えばCPUから撮像手段10の撮像指令を受信すると、撮像手段10に対して画像データ取り込み信号を送信する。そして、撮像手段10で撮像が行われた後、撮像して得られた画像データを取り込む。取り込んだ画像データは、一旦バッファリング(キャッシュ)され、予め用意しておいた画像変数に代入される。なお、「画像変数」とは、数値を扱う通常の変数と異なり、対応する画像処理ユニットの入力画像として割り付けることで、計測処理や画像表示の参照先となる変数をいう。
画像処理部60は、画像データに対する計測処理を実行する。具体的には、まずコントローラ側接続部52が上述した画像変数を参照しつつ、フレームバッファから画像データを読み出して、画像処理部60内のメモリへ内部転送を行う。そして、画像処理部60は、そのメモリに記憶された画像データを読み出して、計測処理を実行する。また画像処理部60には、階調変換手段46、異常点ハイライト手段62、画像サーチ手段64等が含まれる。
表示制御部54は、CPUから送られてきた表示指令(表示コマンド)に基づいて、表示手段4に対して所定画像(映像)を表示させるための制御信号を送信する。例えば、計測処理前又は計測処理後の画像データを表示するために、表示手段4に対して制御信号を送信する。また、表示制御部54は、入力手段3を用いたユーザの操作内容を表示手段4に表示させるための制御信号も送信する。
以上のようなハードウェアで構成されたヘッド部1やコントローラ部2は、各種プログラム等によって、図5の各手段や機能をソフトウェア的に実現可能な構成としている。この例では、図1のコンピュータに、三次元画像処理プログラムをインストールして、三次元画像処理に必要な設定を行う態様を採用している。
(階調変換)
以上の三次元画像処理装置は、ワークの距離画像を取得し、この距離画像に対して画像処理を行い、この結果に対して検査を行う。本実施の形態における三次元画像処理装置は、距離画像の画素値である高さ情報をそのまま用いて演算を行う高さ検査処理に加えて、既存のハードウェアを用いて面積やエッジ等の情報を用いた演算を行う画像検査処理の、2種類の検査を実施することができる。ここで、高さ検査処理の精度を維持するためには、多階調な距離画像を生成する必要がある。一方、既存のハードウェアではこのような多階調な距離画像に画像検査処理を実施することはできない。そのため、既存のハードウェアを用いて画像検査処理を行うために、多階調な距離画像に階調変換を施し、低階調距離画像を生成する。
しかしながら、多階調の距離画像の高さ情報を、そのまま低階調の距離画像に変換したのでは、高さ情報の精度が損なわれるという問題がある。FA用途等で利用される一般的な画像は、モノクロで各画素の濃淡値を8階調で表現した画像が多い。これに対して距離画像は、16階調画像のような高階調の画像が用いられている。このため、多階調の距離画像を低階調距離画像に階調変換する際に、高さ情報が相当量損なわれることとなり、検査の精度に影響を与える。かといって、精度を高めるために既存の画像処理で扱う画像の階調数を上げるには導入コストが高騰するとともに、処理負荷が高くなり、利用に対するハードルが高くなる。
そこで、このような階調変換に際して、必要な高さ情報が維持されるような階調変換の条件を設定することが必要となる。以下、その方法及び手順について詳述する。
(高さ検査又は画像検査)
まず、三次元画像処理装置を用いて高さ検査処理を行う処理動作を、図7のフローチャートに基づいて説明する。この三次元画像処理装置は、計算処理を行うためのツールとして、距離画像に対して高さ検査を行う高さ検査処理ツールと、既存の輝度画像に対して画像検査を行う各種の画像検査処理ツールとを備えている。ここでは、高さ検査処理について説明する。
最初に、距離画像を生成する(ステップS71)。具体的には、距離画像生成手段32が、撮像手段10と投光手段20とを用いて距離画像を生成する。次いで、所望の計算処理を選択する(ステップS72)。ここでは、計算処理に必要なツールを選択する。
画像検査処理ツールを選択する場合は、ステップS73に進み、上記ステップS71で得られた高階調の距離画像に対して、階調変換処理を行い、低階調の距離画像に変換する。これによって、既存の画像処理装置が備えている検査処理ツールでも、低階調距離画像を扱えるようになる。なお、階調変換処理は、高階調の距離画像の全域に対して行うのでなく、好ましくは画像検査処理のために設定された検査対象領域内でのみ行う。
一方、高さ検索ツールを選択する場合は、多階調距離画像が有する高さ情報をそのまま利用するため、階調変換を行うことなく、ステップS74に進む。
さらに、検査実行手段50が、各種計算処理を行い(ステップS74)、次いでこの計算結果に基づいて、ワークが良品であるか否かを判定する(ステップS75)。判定信号出力手段160は、検査実行手段50によってワークが良品であると判定された場合には(ステップS75:YES)、判定信号としてOK信号をPLC70に出力し(ステップS76)、検査実行手段50によってワークが良品でない、すなわち不良品であると判定された場合には(ステップS75:NO)、判定信号としてNG信号をPLC70に出力する(ステップS77)。
(設定モード)
次に、このような高さ検査や画像検査の処理実行に先立ち、三次元画像処理装置に対して各種の設定を行う設定モードにおける手順の一例を、図8のフローチャートに基づいて説明する。最初にステップS81において、設定用の画像(設定用画像)を選択する。ここでは、予め検査処理の対象となる画像を入力して、登録画像として保存したものを呼び出したり、あるいは新たな入力画像を取得して、これに対して設定を行うこともできる。ここでは、運用時に逐次入力される入力画像を代替的に示すものとして、ワークを撮像して得られる入力画像を、登録画像として登録している。また、予め登録しておいた登録画像を呼び出してもよい。次にステップS82において、階調変換方法を選択させる。ここでは、静的変換又は動的変換のいずれかの選択をユーザに促す。次にステップS83において、階調変換パラメータを調整する。ここでは、ステップS82で静的変換を選択した場合は、ステップS81で取得された画像に対して階調変換パラメータを調整する。階調変換パラメータの調整方法については、後述する。なお、以上説明した手順は一例であり、異なる順序とすることもできる。例えば画像の取得は、階調変換方法の選択後に行わせてもよい。
(設定手順の詳細)
次に、設定時の手順の詳細について説明する。三次元画像処理装置においては、運用モードに先立ち、設定モードにおいて予め必要な設定を行う。このような設定を行うための各種設定手段は、例えばコントローラ部2側に設けることができる。例えば図1の例では、コントローラ部2に接続された入力手段3の一形態であるコンソールが利用できる。また、これに代えて、又はこれに加えて、上述の通りコントローラ部2に接続されたパーソナルコンピュータにインストールした三次元画像処理プログラムに、このような設定手段の機能を実現させることもできる。以下、ここでは図1に示すパーソナルコンピュータにインストールした三次元画像処理プログラムを用いて、各設定を行う手順の詳細を、図9〜図113に示す三次元画像処理プログラムのユーザインターフェース(GUI)画面に基づいて説明する。なお、これらのGUIの例では、距離画像を「高さ画像」、輝度画像を「濃淡画像」と、それぞれ表示している。
(距離画像、輝度画像の登録工程)
まず、距離画像と輝度画像の登録を行う。ここでは、図9に示す三次元画像処理プログラムの初期画面260から、「撮像」処理ユニット263の設定を行う。具体的には「撮像」処理ユニットのボタン263のボタンを押下する。これにより、図10の撮像設定メニュー269に切り替わる。
(三次元画像処理プログラム)
図10のGUI画面例では、画面の右側に画像を表示させる第一画像表示領域111を設け、左側には複数の設定項目を表すボタンを複数配置した設定項目ボタン領域112が設けられる。設定項目ボタン領域112には、「画像登録」ボタン113、「撮像設定」ボタン284、「カメラ設定」ボタン、「トリガ設定」ボタン、「フラッシュ設定」ボタン、「照明ボリューム」ボタン、「照明拡張ユニット」ボタン、「保存」ボタン等が設けられている。ユーザは設定項目ボタン領域112中から、所望の設定項目ボタンを選択して、必要な設定項目の設定ができる。
図10の撮像設定メニュー269において、設定項目ボタン領域112に設けられた「画像登録」ボタン113を押下すると、図11の画像登録画面270に切り替わる。この画面から登録対象、カメラ選択、登録先等、各種の設定を行うことができる。ここでは、操作領域に設けられた各種のボタン等によって所望の画像に調整した上で、登録すなわち画像データの保存を行う。ここでは、第二画像表示領域121に距離画像が表示されており、さらにこの画像に割り当てられた画像変数が操作領域122に表示される。図11の例では、撮像手段を選択する「カメラ選択」欄271で「カメラ1」が選択されており、この「カメラ1」で撮像された距離画像として、画像変数「&Cam1Img」が「カメラ選択」欄271の下方に表示される。
設定終了後に操作領域の下段に設けられた「登録」ボタン272を押下すると、図12に示すように現在第二画像表示領域121で表示中の距離画像の登録が開始され、進捗状況がグラフィカルに表示される。また、図13に示すように輝度画像の登録も併せて行われる。この例では、先に距離画像が距離画像記憶部38aに保存され、次に輝度画像が輝度画像記憶部38bに保存される。また、距離画像の画像変数「&Cam1Img」及び輝度画像の画像変数「&Cam1GrayImg」も、それぞれ記録される。これらの画像変数は、各画像に対して固有の変数が各々付与されているので、登録画像を呼び出す際の指標として利用できる。ただ、この例は一例であり、各画像の登録順序を逆にしたり、同時に登録してもよい。このように、登録画像として距離画像と輝度画像とを同時に保存することで、ユーザは各画像の登録の手間を省力化できる。ただ、距離画像と輝度画像とを登録画像として個別に登録する構成とすることも可能である。
(位相シフト法)
ここでワークの変位及び三次元形状を非接触で計測する手法の一として、位相シフト法について説明する。位相シフト法は格子パターン投影法、縞走査法等とも呼ばれる。この方法では、照度分布を正弦波状に変動させた格子パターンをもつ光線をワークに投影する。しかも、正弦波の位相の異なる3つ以上の格子パターンで投影し、高さ計測点の各明度値を光線の投影方向とは別の角度から各パターン毎に撮像し、各明度値より格子パターンの位相値を計算する。計測点の高さに応じて、計測点に投影され、格子パターンの位相が変化し、基準となる位置で反射された光線により観察される位相とは異なった位相の光線が観察される。そこで、計測点における光線の位相を計算し、三角測量の原理を利用して、光学装置の幾何関係式に代入することにより計測点(従って物体)の高さを計測し、三次元形状を求める方法である。位相シフト法によれば、ワークの高さを格子パターン周期を小さくすることにより高分解能で計測することができるが、測定できる高さの範囲が、位相のずれ量で2π以内となる低い高さのもの(高低差の小さいもの)しか計測できない。
(空間コード化法)
そこで、空間コード化法を兼用する。空間コード化法によれば、光が照射される空間を、多数の断面略扇状の小空間に分け、この小空間に一連の空間コード番号を付す。このため、ワークの高さが高くても、すなわち高低差が大きくても、光が照射される空間内にあれば、空間コード番号から高さが演算できる。したがって、高さの高いワークについても全体にわたって形状を計測できる。このように空間コード化法によれば、許容高さのレンジ(ダイナミックレンジ)が広く、高さの高いワークについても全体にわたって形状を計測できる。
次に、撮像手段で距離画像を撮像する設定例を、図14〜図42に基づいて説明する。上述した画像の登録に先立ち、図10の撮像設定メニュー269から、「撮像設定」ボタン284を押下すると、図14の撮像設定画面280となる。撮像設定画面280では。撮像に関する基本的な設定を行える。例えば「撮像有効設定」ボタンを押下すると図15の撮像有効設定画面が表示され、三次元画像処理装置に接続されている撮像手段すなわちカメラを選択できる。例えば撮像手段として、通常の輝度画像を撮像するモノクロCCDカメラやカラーCCDカメラに代えて、あるいはこれに加えて、高さ情報を取得可能なカメラを接続することで、距離画像を三次元画像処理装置に取り込むことが可能となる。また、複数の撮像手段を三次元画像処理装置に接続している際に、いずれの撮像手段を使用するか、一以上を選択できる。
また、図14の撮像設定画面280から、操作領域に設けられた「詳細設定」ボタン282を押下すると、図16に示す三次元計測設定画面290となる。なお図16では説明の都合上、異なるワークを表示させている。図16の三次元計測設定画面290は、リアルタイム更新手段にあたる「連続更新で表示する」欄292、シャッタースピード設定手段49にあたるシャッタースピード設定欄294、濃淡レンジ設定欄296、前処理設定欄310、計測不能基準設定欄312、均等間隔処理設定欄314、空間コード設定欄316、プロジェクタ選択設定欄318、「表示画像」選択欄322等を備えている。
(リアルタイム更新手段)
ここでは、操作領域において設定が変更された場合、第二画像表示領域121上で表示中の画像に対して変更後の設定に更新するリアルタイム更新手段を備えている。リアルタイム更新手段はON/OFFを切り替えることができる。図16の画面例において、リアルタイム更新手段の一形態として操作領域の上段に設けられた「連続更新で表示する」欄292をONとすることで、リアルタイム更新機能を動作させることができる。
図16の例では、操作領域において設定可能な項目として、シャッタースピード、濃淡レンジ、前処理、計測不能基準、均等間隔処理、空間コード、プロジェクタ選択、表示画像等が挙げられる。以下、順次説明する。
(シャッタースピード設定手段49)
撮像手段による撮像時のシャッタースピードを調整するためのシャッタースピード設定手段49の一態様として、図16の例では、シャッタースピード設定欄294を設けている。シャッタースピード設定欄294から、シャッタースピードをユーザが指定できる。ここでは、ドロップダウンボックスから、予め設定されたシャッタースピード、例えば1/15、1/30、1/60、1/120、1/240、1/500、1/1000、、、、1/20000を選択する。選択された数値に応じた秒数が、右側の数値表示欄295に表示される。また、任意のシャッタースピードを数値で直接指定することもできる。例えばドロップダウンボックスの選択肢として「数値入力」を選択すると、数値表示欄295のグレーアウトが解除され、直接数値を入力可能となる。このようにしてシャッタースピード設定欄294で指定された数値に基づき、撮像手段であるカメラ(撮像素子)の露光時間が調整される。なおシャッタースピードの調整に際しては、距離画像よりも輝度画像の濃淡画像を第二画像表示領域121に表示させた方が、確認作業が容易となる。さらに、上記リアルタイム更新機能によって、シャッタースピード設定欄294でシャッタースピードを変更した画像が、速やかに第二画像表示領域121に反映されることで、ユーザは現在の設定が妥当かどうかを視覚的に確認でき、調整作業を容易に行うことが可能となる。
(濃淡レンジ設定欄296)
濃淡レンジ設定欄296においては、濃淡画像である輝度画像のダイナミックレンジを調整する。ここではドロップダウンボックスから、「低い(−1)」、「普通(0)」、「高い(1)」のいずれかを選択することで、ダイナミックレンジが増減される。
(前処理設定欄310)
前処理設定欄310においては、ヘッド部で距離画像を生成する前に行う共通のフィルタ処理を規定する。共通フィルタ処理としては、例えば、平均化フィルタ、メディアンフィルタ、ガウシアンフィルタのフィルタ等が考えられる。ここではパターン投影画像に対するフィルタ処理として、図17の例では、ドロップダウンボックスにより、「なし」、「メディアン」、「ガウシアン」、「平均」のいずれかを選択する。なおフィルタ処理は、距離画像を生成する前に行う前処理の他、ヘッド部1側で得られた距離画像に対しても行うことができる。
(計測不能基準設定欄312)
計測不能基準設定欄312では、ノイズ成分をカットするレベルを設定する。すなわち計測不能基準設定欄312で設定された量だけ、高さ計測を行わない。パターン投影画像を用いた三次元の高さ情報の計測においては、ある程度の光量がないと、正確な高さ情報を計測できない。その一方で、多重反射が生じている場合等は、明るすぎるため光量を落とす必要がある。このように、撮像されたパターン投影画像に応じてノイズ成分カット量を選択する。具体的には、各画素の高さ情報を演算するためデータに対して、ノイズによる無効データと見なす閾値を決定する。
ここでは図18に示すように、ドロップダウンボックスから、「高」、「中」、「低」、「なし」のいずれかを選択する。なお「なし」を選択すると、ノイズ成分カットを行わず、すべての画素について高さ計測を行う。例えば図19に示す例では、計測不能基準設定欄312で「なし」を選択しており、ノイズデータを含めたあらゆる点で高さデータを算出している。この画面からは判別し難いが、ワークの角の部分等で、ノイズデータによって不正な高さが計測されている。
一方、図20に示す例では、計測不能基準設定欄312で「低」を選択しており、ノイズデータに基づく高さ情報が不正な点が減少している。さらに図21に示す例では、計測不能基準設定欄312で「中」を選択しており、さらに高さ情報が不正な点が減少している。
その一方で、測定不能であることを示す黒点が特にワークの左下の領域で増大し、ノイズと見なされて高さ計測ができない位置が増えていることも、図21から確認できる。さらに、図22に示す例では、計測不能基準設定欄312で「高」を選択した状態を示しており、ノイズ成分の除去が効き過ぎている結果、本来残しておきたいデータまで失われていることが確認できる。このように、ノイズ除去の閾値を示す測定不能基準の設定が低すぎる場合は、ノイズを元に高さを計算することとなる。逆に高すぎると、本来残しておきたい箇所も無効と見なされてしまうことになる。このためユーザは、上記リアルタイム更新機能を利用することで、測定不能基準の設定を調整すると共に、調整後の画像を第二画像表示領域で確認し、設定の結果を直接画像で参照しながら、適切な値に調整することができる。
(均等間隔処理設定欄314)
均等間隔処理設定欄314では、画角による誤差の補正を行う。均等間隔処理設定欄314は、間隔均等化処理設定手段47として機能する。均等間隔処理設定欄314では、図23に示すようにONとOFFを選択できる。均等間隔処理をONとすることで、xy方向に等ピッチに並んだ距離画像を取得する。ここではXY方向の位置が高さ(Z座標)によらず等間隔な等ピッチ画像を、第二画像表示領域121に表示させる。例えば、XY平面における寸法の検査を行うような用途では、均等間隔処理をONとする必要がある。なお、補正されてデータが無くなった部分は無効として扱う。図24、図25は、均等間隔処理をONとした状態を示している。図24の例では、「表示画像」選択欄322を「高さ画像」すなわち距離画像として第二画像表示領域121に表示させた例を、図25は「濃淡画像」を選択して輝度画像を表示させた例を、それぞれ示している。
一方、均等間隔処理をOFFとすると、図26で示すように目で見たままの画像(Z画像)となり、画面の端部に進むに従ってXY方向に歪みが生じる。ただ、均等間隔処理を行わない分、画像の表示までに要する時間が短くて済む。なお図27は、表示画像欄で「濃淡画像」を選択して、第二画像表示領域121で輝度画像を表示させた例を示している。
(空間コード設定欄316)
空間コード設定欄316では、空間コード化法の使用の有無を選択する。すなわち空間コード設定欄316は、空間コード化切替手段45として機能する。この三次元画像処理装置では、距離画像の生成に位相シフト法を必須としており、位相シフト法に加えて、空間コード化法の適用の有無を空間コード設定欄316で選択できる。空間コード設定欄316では、図28に示すようにONとOFFを選択できる。空間コード設定欄316をONとすると、空間コード化法と位相シフト法の組み合わせで高さ計測を行う。この例を図29、図30に示す。これらの図において、図29は第二画像表示領域121に表示させる画像として距離画像を選択した状態を示している。具体的には、「表示画像」選択欄322で「高さ画像」を選択している。一方図30は第二画像表示領域121に輝度画像を表示させた状態を示しており、「表示画像」選択欄322で「濃淡画像」を選択している。位相シフト法に加えて、空間コード化法を用いることで、適切な距離画像を取得することができる。具体的には、空間コード化法によって、位相シフト法による位相ジャンプの補正(位相アンラップ)ができるので、高さのダイナミックレンジを広く確保しつつ、高分解能で計測できる。ただし、撮像時間はOFFの場合と比較して約2倍となる。
一方、図31、図32に示すように、空間コード設定欄316でOFFを選択すると、位相シフト法のみで高さ計測を行う。この場合は、高さの計測ダイナミックレンジが狭くなるので、高さの相違が大きいワークの場合は、位相が1周期以上ずれてしまうと、正しく高さの計測ができない。逆に、高さの変化が少ないワークの場合は、空間コード化法による縞画像の撮像や合成を行わないので、その分だけ処理を高速化でき、撮像時間を約半分にできるメリットがある。例えば、高さ方向の差異が少ないワークを計測する際には、ダイナミックレンジを大きく取る必要がないため、位相シフト法のみでも高精度な高さ計測性能を維持しつつ、処理時間を短くすることができる。この場合は、高さの計測ダイナミックレンジが狭くなるので、高さの相違が大きいワークの場合は、位相が1周期以上ずれてしまうと、正しく高さの計測ができない。逆に、高さの変化が少ないワークの場合は、空間コードをOFFとすることで、撮像時間を半分にできるという利点が得られる。
図31の例では、「表示画像」選択欄322で「高さ画像」すなわち距離画像を表示させた状態を示しており、一方図32の例では、「表示画像」選択欄322で「濃淡画像」を表示させた状態を示している。
なお、この例では位相シフト法を必須としているが、位相シフト法のON/OFFを選択可能としてもよい。
(プロジェクタ選択設定欄318)
プロジェクタ選択設定欄318は、第一プロジェクタと第二プロジェクタのON/OFFを切り替える投光切替手段48として機能する。ここでは、プロジェクタ選択設定欄318では、2つの投光手段である第一プロジェクタ、第二プロジェクタの内から、使用する投光手段(プロジェクタ)を選択する。このプロジェクタ選択設定欄318の例では、図33に示すように、ドロップダウンボックスから、「1」(第一プロジェクタ)、「2」(第二プロジェクタ)、「1+2」(第一プロジェクタと第二プロジェクタ)のいずれかを選択する。
プロジェクタ選択設定欄318で「1」又は「2」を選択した場合、すなわち第一プロジェクタ又は第二プロジェクタのいずれか一方からの投光である片投光の場合は、投光で陰になる部分の高さ計測は行われない。図34の例では、プロジェクタ選択設定欄318で「1」を選択した例、図35の例では「2」を選択した例を、それぞれ示している。各画面において、影になる部分のデータが黒色で表示されており、ワーク上で高さの計測ができない領域が存在することが、それぞれの画面から確認できる。また、これらの図から明らかな通り、計測不能となる領域は、投光手段によって異なることが判る。いいかえると、一方の投光手段では測定不能領域となっても、他方の投光手段では投光が可能となり、よって高さ計測も可能な領域が多く存在する。そこで、これらを組み合わせることで、測定不能領域を低減できる。特に、第一プロジェクタと第二プロジェクタで、ワークを両側から挟み込むように配置することで、第一プロジェクタからの第一投光と第二プロジェクタからの第二投光とが相対する方向となってワークに照射されるため、いずれか一方の投光では影となる領域であっても、真逆の方向となる他方からの投光によって影となるリスクを低減できる。
具体的には、図36に示すように、プロジェクタ選択設定欄318で「1+2」を選択すると、第一プロジェクタ及び第二プロジェクタの両方から投光させる両投光に切り替えられる。この状態で、いずれか一方のプロジェクタからの投光では陰になる部分であっても、他方のプロジェクタで投光可能であれば、これを補間することができる。ただしこの場合は、片投光に比べて約2倍の撮像時間を要する。ユーザは、検査対象のワークの凹凸の加減や、許容される撮像時間等に応じて、いずれの投光を用いるかを選択する。
(「表示画像」選択欄322)
「表示画像」選択欄322では、第二画像表示領域121に表示される画像を選択する。例えば、検査の用途に応じて表示対象を選択することで、各設定の妥当性を実際に表示された画像から視覚的に確認することができる。特に、上述したリアルタイム更新手段をONとすることで、設定の変更を逐次更新して変化の前後で対比できるので、用途に即して意図した画像となるよう、イメージに基づいて設定を調整できる。また各設定パラメータの意味に習熟していない初心者であっても、画像を見ながら設定できる利点も得られる。この例では、図37に示すように「表示画像」選択欄322から、「高さ画像」、「濃淡画像」、「白とび・黒つぶれ画像」、「縞投光−プロジェクタ1」、「縞投光−プロジェクタ2」のいずれかを選択する。「高さ画像」は距離画像であり、高さ毎に等高線状に色分けして着色した画像を表示する。「濃淡画像」は輝度画像である。この例では、位相シフト法に基づいて撮像した複数のパターン投影画像を合成した画像を、輝度画像として利用している。ただ、ワークに照明を照射して撮像手段で光学的な画像を撮像し、輝度画像として利用することもできる。
(異常点ハイライト手段62)
さらに三次元画像処理装置は、図5に示すように異常点ハイライト手段62を備えている。例えば上述した「表示画像」選択欄322で選択可能な「白とび・黒つぶれ画像」は、輝度画像に対して、飽和して白とびした画素や光量が不足した黒つぶれ画素等を部分的に着色した画像である。このように、画像中で正確な値が得られていない、測定精度の信頼性が低いと思われる部位を、着色処理によってハイライトさせることで、ユーザに対して測定精度の低い部分を視覚的に告知し、所望の検査用途に応じた画像が得られているかどうかを確認しやすくしている。この例では、白とび画素を黄色、黒つぶれ画素を青色に、それぞれ着色している。これによりユーザは、色を手掛かりにして白つぶれした領域が画像中でどのように分布しているかを目視により確認できる。また第二画像表示領域121の下部には、白とび画素及び黒つぶれ画素の画素数をカウントして表示させている。これを参照しながら、これらの画素数が0に近づくよう、ユーザは各設定項目を調整する。
なお着色される色や態様はこれに限られず、他の色で表示させたり、点滅表示させる等、既知の様々な態様を適宜利用できる。また、白とび画素と黒つぶれ画素で着色する色を変更することで、測定の信頼性が低くなっている理由をユーザに対して告知でき、よって対応策も講じやすくなる。ただ、白とび画素と黒つぶれ画素に対して同様の色やハイライトを施してもよい。
「縞投光−プロジェクタ1」は、第一プロジェクタのみでパターン投影して得られる濃淡で表現されたパターン投影画像である。また「縞投光−プロジェクタ2」は、第二プロジェクタのみで得られるパターン投影画像である。図38に、「表示画像」選択欄322で「縞投光−プロジェクタ1」を選択して、第二画像表示領域121に第一プロジェクタのパターン投影画像を表示させた例、図39に、「縞投光−プロジェクタ2」を選択して、第二画像表示領域121に第二プロジェクタのパターン投影画像を表示させた例を、それぞれ示す。この画面から縞画像を確認することにより、ワークの高さが計測できない場合の原因の特定、例えばワークの材質が半透明であるため、投光した光が潜り込んでいる等、パターン投影を得ることが困難なワークであることが、距離画像を生成する前の元のパターン投影画像から確認できる。
ユーザは、第二画像表示領域121に表示される画像を参照しながら、シャッタスピードと濃淡レンジが適切かをどうかを確認し、適切な値に調整する。具体的には、第二画像表示領域121に白とび・黒つぶれ画像を表示させた状態で、白とび画素や黒つぶれ画素が少なくなるように確認しながら調整する。例えば、シャッタースピード設定欄294でシャッタースピードを調整することによって、黒つぶれ画素、すなわち光量が足りず暗すぎる部位がなくなるようにする。また濃淡レンジを調整することで、白とび画素、すなわち明るすぎる部位がなくなるようにする。図16の例では、白とび・黒つぶれ画像中に、暗すぎるので黒つぶれ画素が多い。このため、シャッタースピードの調整を行う。
例えばシャッタースピード設定欄294を「1/120」に設定した図16の状態から、図40に示すように「1/15」に切り替えると、輝度画像が多少明るくなり、黒つぶれ画素数が0になったことが判る。ただし、白とび画素数は逆に増えてしまっている。そこで図41に示すようにシャッタースピードを「1/30」に切り替えると、黒つぶれ画素数が0のまま、白とび画素数も減少していることが判る。
さらに濃淡レンジ設定欄296を「低い(−1)」に設定した図41の状態から、図42に示すように「普通(0)」に切り替えて一段階上げると、白とび画素が減少したことが判る。さらに図43に示すように「高い(1)」に切り替えると、白とび画素が0になったことが判る。これによって白とび画素数、黒つぶれ画素数が共に0となって、シャッタースピードと濃淡レンジの調整作業を終了する。
以上のようにして、所望の撮像条件に設定した後、上述した図12〜図13に示すように、距離画像と輝度画像の登録を行い、画像登録作業を終了する。
(高さ計測設定手順)
次に、運用時に逐次入力される検査対象のワークの入力画像に対して、高さ計測を行う領域を設定する手順について、図44〜図55に基づいて説明する。ここでは、入力される複数のワークを代表する典型的なワークを、上述した手順によって予め登録画像として登録しておき、この登録画像に対して、高さ計測を行う領域を指定する。
具体的には、図9の初期画面260から、図44〜図45に示すように「高さ計測」処理ユニット266の追加を行う。図44の例では、フロー表示領域261において「撮像」処理ユニット263の下部に、右クリック等で表示される第一サブメニュー370から「追加」を選択し、第二サブメニュー372中の「計測」を選択して表示される「計測」メニュー373でリストされる検査処理の内、「高さ計測」を行う「高さ計測」処理ユニット266を追加する。これによって、図45に示すように、フロー表示領域261において「撮像」処理ユニット263の下部に、新たに「高さ計測」処理ユニット266が追加される。このように、「計測」メニュー373は検査実行手段で実行される検査処理を選択するための検査処理選択手段として機能する。
(検査対象領域設定画面120)
次に、「高さ計測」処理ユニット266で行うべき設定として、領域を設定する手順について、図46〜図49に基づいて説明する。まず図45の画面から、「高さ計測」処理ユニットの編集画面を呼び出すと、図46に示す高さ計測設定画面460に移行する。図46のGUI画面例でも、図10と同様、画面の右側に画像を表示させる第一画像表示領域111を設け、左側には設定項目ボタンを複数配置した設定項目ボタン領域112が設けられる。設定項目ボタン領域112には、「画像登録」ボタン113、「画像設定」ボタン114、「領域設定」ボタン115、「前処理」ボタン117、「検出条件」ボタン118、「詳細設定」ボタン119、「判定条件」ボタン、「表示設定」ボタン、「保存」ボタン等が設けられている。この画面から、ユーザは検査対象領域設定手段に相当する「領域設定」ボタン115を押下すると、図47に示す検査対象領域設定画面120に遷移する。検査対象領域設定画面120においては、検査を行う領域を指定することができる。図47の例では、画面の左に第二画像表示領域121を設け、画面の右側に各種の操作を行う操作領域122を配置している。操作領域122の上段には、第二画像表示領域121で表示される画像を選択するための「表示画像」選択欄124が設けられる。図47の例では、「表示画像」選択欄124で登録画像が選択されている。さらにその下方には、検査を実行する領域を指定する検査対象領域設定手段として、「計測領域」設定欄126が設けられている。
「計測領域」設定欄126では、予め規定された領域を選択できる。ここでは、「計測領域」設定欄126を選択すると、図48に示すようにドロップダウンボックスが表示され、所望の計測領域の形状を選択できる。この例では、選択可能な計測領域の形状の候補として、「なし」、「矩形」、「回転矩形」、「円」、「楕円」、「円周」、「円弧」、「多角形」、「複合領域」等が表示される。なお「なし」を選択すると、第二画像表示領域121に表示される画像の全体を検査対象領域として利用する。
さらに、「計測領域」設定欄126において選択された形状に応じて、詳細な寸法等の設定が可能となる。図48の例では、ワークに消しゴムを用いており、また「計測領域」設定欄126においては、図49に示すように「回転矩形」を選択した例を示している。この状態で「編集」ボタン128を押下すると、図50に示す計測領域編集画面130が表示される。図50の例では、第二画像表示領域121において、回転矩形がワーク上に重ねて表示される。ここでは消しゴムのケースの部分に、矩形状の計測領域が描かれて、距離画像上に重ねて表示される。また回転矩形の基本ベクトルが回転矩形の枠状内に矢印で表示されると共に、計測領域編集画面130の画面で、回転矩形の幅、高さと、中心のXY座標、基本ベクトルの傾斜角度等が表示される。ユーザは計測領域編集画面130上から数値を直接入力するか、あるいは回転矩形に表示されたハンドルをマウス等で操作して、回転矩形の形状や位置等を任意に調整できる。
なお計測領域編集画面130において設定可能な項目は、「計測領域」設定欄126において選択された形状に応じて変化する。例えば、「円周」を選択した場合は、図51に示すように、円周の外径や内径の寸法の指定等、円周に関するパラメータの設定が可能となる。さらに、図47の画面から、マスク領域を指定することも可能である。マスク領域としては、円形やドーナツ状、矩形状その他の多角形状、自由曲線等が指定できる。このようにして、検査対象のワークの形状に応じて、適切に検査対象領域を設定し、穴あき部分や背景等、検査に無用な領域を排除して、処理の効率化を図ることができる。
(第二計測表示領域)
このようにして計測領域が設定されると、図49に示すようにワーク上に設定済みの計測領域が重ねて表示される。続いて、他の計測領域を指定する場合は、同様の作業を繰り返す。すなわち、図52に示すように、フロー表示領域261において「高さ計測」処理ユニット266の下部に、さらに別の第二「高さ計測」処理ユニット266Bを追加する。そして図53、図54に示すように、新たな計測領域として回転矩形を、ここではワークである消しゴムの、ケースで覆われていない領域上に設定している。この結果、図55に示すように、新たに設定された第二計測領域がワーク上に重ねて表示される。
なお、上記の例では、一の「高さ計測」処理ユニットで一の高さ計測処理が行われる。すなわち、複数の高さ計測処理を行うには、複数の「高さ計測」処理ユニットをそれぞれ追加する必要がある。ただ、一の「高さ計測」処理ユニットにおいて複数の高さ計測処理が行われるように構成することも可能であることはいうまでもない。
(計測処理)
このようにして計測領域の設定が終了すると、次に実際に計測を行う処理を追加する。ここでは、図56に示すように、フロー表示領域261において第二「高さ計測」処理ユニット266Bの下部に、「演算」を行う「数値演算」処理ユニットを追加する。「数値演算」処理ユニットで実行される演算の内容として、数値演算や画像演算、キャリブレーション、画像連結等が選択できる。ここでは、図57に示すように数値演算を選択した「数値演算」処理ユニットを追加している。
(「数値演算」処理ユニット)
「数値演算」処理ユニットにおいては、具体的な演算式を入力することができる。例えば図58に示すように、数式を直接入力可能な数値演算編集画面を表示させ、ユーザが演算式を規定する。ここでは、電卓状の入力パッドを用意し、またコピーや切り取り、貼り付け等の編集ボタンも用意して、演算式の作成を容易にしている。ユーザはこの画面から、所望の演算式を入力する。入力された演算式の例を、図59に示す。
このようにして数値演算処理の内容が規定されると、図60に示すように初期画面260において、第三画像表示領域262上に演算式が表示される。
(「エリア」処理ユニット)
さらにまた、図61の例では「数値演算」処理ユニットの下に、「エリア」処理ユニットを追加している。「エリア」処理ユニットでは、実際に合否判定等を行う条件を規定する。具体的には、登録画像や入力画像に応じて、距離画像を低階調距離画像に階調変換するための階調変換条件を適切に変化させるべく、階調変換パラメータ(詳細は後述)の基準となる情報を取得するための領域や、この領域から高さを抽出する条件、あるいは距離画像を生成する際に、フィルタ処理を行う条件等を設定する。すなわち、「エリア」処理ユニットでは、領域設定、高さ抽出、前処理、判定等を設定する。まず、領域設定を行う手順については、上述した登録画像と同様である。すなわち、図62に示すようなエリア設定画面620から、設定項目ボタン領域112に配置された「領域設定」ボタン115を押下すると、図63に示す領域設定画面となり、対象となる領域を指定する。ここでも回転矩形を選択し、さらに詳細な座標等を必要に応じて指定する。このようにして、「エリア」処理ユニットにおける領域が決定され、図64に示すように第二画像表示領域において回転矩形がワーク上に重ねて表示される。
(高さ抽出設定画面)
次に高さ抽出の設定を行う。高さ抽出の設定とは、階調変換を行う際の階調変換パラメータを設定することである。すなわち図62の設定項目ボタン領域112中から、「高さ抽出」ボタン116を押下すると、図65に示す高さ抽出選択画面140に移行し、表示画像や抽出方法等が選択可能となる。高さ抽出選択画面140でも、図47等と同様、画面の左に第二画像表示領域121を設け、画面の右側に各種の操作を行う操作領域122を配置している。操作領域122の上段には、第二画像表示領域121で表示される画像を選択するための「表示画像」選択欄124が設けられる。図65の例では、「表示画像」選択欄124で登録画像が選択されている。さらにその下方には、高さ抽出機能の抽出方法を選択する抽出方法選択手段142が設けられる。
ここで「高さ抽出」ボタン116は、階調変換手段により距離画像の階調変換を行うための階調変換パラメータを設定する階調変換条件設定手段43として機能する。特に階調変換条件設定手段43は、画像の高さ情報を必要としない処理を、検査処理選択手段で選択した場合に表示される。逆に、画像の高さ情報を必要とする処理を検査処理選択手段で選択した場合は、この階調変換条件設定手段を表示させない。具体的には、検査処理ツールとして「高さ計測」処理ユニット266を選択した場合は、フロー表示領域261に「高さ抽出」ボタンが表示されない。これ以外の検査処理ツール、例えば「エリア」処理ユニットや「ブロブ」処理ユニット267、「色検査」処理ユニット267B、「Shapetrax2」処理ユニット264、「位置補正」処理ユニット265等に関しては、「高さ抽出」ボタン116が表示され、階調変換条件を設定可能としている。このようにすることで、階調変換が必要な場合には階調変換条件設定手段43を表示させて、ユーザに必要な設定を促す一方、階調変換が不要な場合は、階調変換の条件を設定する手段そのものを非表示として、ユーザが不要な設定で混乱することを回避し、使い勝手のよい環境が実現される。
(抽出方法選択手段142)
抽出方法選択手段142では、階調変換方法を指定する。例えば静的変換又は動的変換のいずれかをユーザに選択させる。図65の例では、予め選択肢として、静的変換に該当する「一点指定」又は「三点指定(平面)」、動的変換に該当する「リアルタイム抽出」のいずれかを、ドロップダウンボックスから選択させる。
(一点指定画面150)
図65の画面で、抽出方法選択手段142から「一点指定」を選択すると、図66の一点指定画面150に移行する。なお、図66〜図96においては、説明のためワークとして50円玉を用いた例を示している。図66の一点指定画面150では、第二画像表示領域121上で指定した部位の高さを基準の高さ(基準高さ)として設定する。図66の例では、画面右の操作領域122中に設けられた「抽出」ボタン144を選択すると、図67に示す画面となり、画面左の第二画像表示領域121上の任意の位置を指定できるようになる。ここでは、高さ抽出手段を用いて、第二画像表示領域121に表示されたワーク中で、高さの中心となる位置を指定する。図67の例では、高さ抽出手段は、スポイト状のアイコンSIを表示した「抽出」ボタン144で構成されており、この「抽出」ボタン144を押下すると、第二画像表示領域121上に点状のポインタ146が表示される。このポインタ146で指定された位置が、距離レンジの中間の高さとして登録される。
またポインタ146で指定された点の周辺の高さを求める範囲を、「抽出領域」指定欄145で指定できる。「抽出領域」指定欄145では、平均高さを求める領域の一辺を画素数で指定する。図67の例では「抽出領域」指定欄145で「16」を指定しており、ポインタ146で指定された点を中心とする16画素×16画素の領域内の、平均高さを抽出して、ポインタ146で抽出された高さとする。なお、第二画像表示領域121上においてポインタ146で指定される領域の大きさを、「抽出領域」指定欄145で指定される数値に連動させて変化させることもできる。
また「Z高さ」表示欄152には、指定された部位の高さ情報が数値として表示される(図68の例では「Z高さ」表示欄152に1.253と表示される)。例えば、距離レンジを28=256階調(0〜255)で表現する場合、高さ抽出手段で指定された高さを、その中心値としてゲイン(濃度値/mm;詳細は後述)が128となるように設定される。この構成により、ユーザは検査したい高さを直接画面上で指定することで、指定された高さを中心とする範囲で、低階調な距離画像に階調変換されるため、必要な高さ情報が損なわれる事態を回避できる。
(簡易表示機能)
以上のようにして階調変換に必要な階調変換パラメータとして、距離レンジとスパンが決定されると、高階調な距離画像を低階調距離画像に階調変換することが可能となる。また第二画像表示領域121上には、図68に示すように、現在操作領域122で設定されている階調変換条件で階調変換された低階調距離画像が、簡易的に表示される。また、操作領域122で階調変換条件を変更すると、これに応じて第二画像表示領域121上の階調変換後の低階調距離画像の簡易表示も、変更後の階調変換条件に応じて更新される。これにより、ユーザは階調変換条件の調整後の変化を視覚的に速やかに確認でき、試行錯誤による調整作業を容易に行うことが可能となる。このように第二画像表示領域121で表示される画像は、階調変換前の距離画像を表示させるモード、階調変換後の低階調距離画像を表示させるモード、及び通常の輝度画像を表示させるモードを切り替えることで、変更できる。
(ゲイン調整手段)
さらにユーザは、ゲイン調整手段を用いて、階調変換パラメータの一であるゲイン調整を行うことができる。図68の例では、操作領域122の中段に強調方法設定欄154が設けられており、ここにゲイン調整手段としてゲイン調整欄156が配置される。ゲイン調整欄156には、現在のゲインが数値で表示されている。ここでゲイン[階調/mm]とは、階調変換を行う際のスパンに該当するパラメータである。例えば16階調の距離画像を8階調に階調変換する際は、1mm当たりを8階調中の何階調として変換するかを設定する。ゲイン値を大きくすれば、コントラストがはっきりした階調変換となる。例えばゲイン値を100[階調/mm]に設定すると、1階調当たり0.010mmとなるような階調変換に設定される。また変換前の距離画像の高さ情報が、1階調当たり0.00025mmの分解能であったとすると、求めた基準面と入力高さデータとの差が、変換前にN階調であった場合、変換後はN[階調]×0.00025[mm/階調]×100[階調/mm]=N×0.025階調として算出できる。
ここで基準面とは、一点指定や後述する平均高さ基準、三点指定、平面基準、自由曲面基準等の方法で求めた面であり、階調変換時の基準となる面である。例えば、図69Aに示すように、16階調の変換前の距離画像(入力画像)の断面プロファイルが実線で示すような形状である場合、その基準面を波線で示す。このような入力画像を、16階調から8階調に階調変換した低階調距離画像のプロファイルは、図69Bに示すようになり、基準面からの差分に対してそのままゲイン(変換係数)がかかるような状態となる。
また、上述したゲイン値に応じて1階調当たりの高さ(ゲイン値の逆数)も自動的に演算されて、併せて表示させることもできる。図68の例では、ゲイン値として250[階調/mm]、1階調あたりの高さとして0.0040mmが表示されている。ユーザはゲイン値を変更することで、ゲイン値の調整が可能となる。例えばゲイン値を増加させると、図68の画面から図70の画面に示すように、濃度差を強調して高さ情報を細かく検査できる反面、検査可能な高さ範囲が狭くなる。逆にゲイン値を低下させると、図71に示すように広い高さ範囲まで検査できる反面、細かな変化が損なわれる。このように、ゲイン調整手段でゲインを調整させると、その階調変換条件で得られる階調変換画像を第二画像表示領域121で確認できる。これによりユーザは、リアルタイムに更新される階調変換画像を確認しながら、検査目的等に応じて、適切なゲイン値に調整できる。
(抽出高さの設定)
さらに、強調方法の設定項目は、ゲイン値の他、抽出高さの設定も含めることができる。例えば図72の画面において、操作領域122の右下に設けられた「詳細設定」ボタン158を押下すると、図73の強調方法詳細設定画面160に切り替わり、強調方法設定欄154に上述したゲイン調整欄156に加えて、「抽出高さ」設定欄162が表示される。「抽出高さ」設定欄162では、高さ抽出手段で抽出すべき高さ情報として、領域内に含まれる高い高さ情報、低い高さ情報、高いものと低いものの両方の高さ情報のいずれかを選択できる。ここでは、図74に示すように、「抽出高さ」設定欄162に設けられたドロップダウンリストによって「高い側」、「低い側」、「高低両方」のいずれかを選択できる。例えば、「高い側」を選択すると、ポインタ146で指定された位置の高さが、距離レンジの下限となるように階調変換される。この結果、指定された高さよりも高い側のみが抽出された低階調距離画像が生成される。同様に「低い側」を選択すると、ポインタ146で指定された位置の高さが距離レンジの上限となるように階調変換される。この結果、指定された高さよりも低い側のみが抽出された低階調距離画像が生成される。さらに「高低両方」の場合は、ポインタ146で指定された位置の高さが上述した距離レンジの中間となるように階調変換される。なお、階調変換後に範囲外となった画素は、低い側が黒(8階調の場合、画素値0)に、高い側が白(画素値255)にクリッピングされる。
さらに、図73の強調方法詳細設定画面160においては、ノイズを除去するためのノイズ除去設定欄164や、無効画素に与える値を指定するための無効画素指定欄166も設けられている。
(ノイズ除去設定欄164)
ノイズ除去設定欄164では、階調変換パラメータの一として、基準面から何mm分の差分をノイズとして除去するかを指定する。例えば、ノイズ除去パラメータを0.080mmと設定すると、基準面から0.080mm分の差分は除去される。ここで変換前の高さ情報が1階調あたり0.00025mmの分解能であるとすると、0.080[mm]÷0.00025[mm]=320[階調]の差分は、無視される動作となる。この様子を、図75A〜図75Cに基づいて説明する。これらの図において図75Aは、図69Aと同様、16階調の変換前の距離画像の断面プロファイルを実線で、その基準面を波線で示すと共に、さらにノイズ除去される範囲を一点鎖線で示している。このような入力画像に対し、基準面を基準にノイズ除去を行った結果、図75Bに示すプロファイルとなる。さらに図75Bの距離画像に対して、16階調から8階調に階調変換した低階調距離画像のプロファイルは、図75Cに示すようになり、残った成分に対してゲイン(変換係数)をかけた状態となる。
さらに、ゲイン調整とノイズ除去の効果を、図76A〜図76Fに基づいて説明する。まず図76Aに示すような輝度画像と、図76Bに示すような高階調(16階調)の距離画像を得たとする。ここで、図76Bの距離画像を、初期設定(ここでは、ゲインが100[階調/mm]、ノイズ除去が0.000[mm]とする。)のまま、低階調(8階調)に階調変換した低階調距離画像を、図76Cに示す。この低階調距離画像は、コントラストが比較的低い。そこで、この状態からゲインを上げると、図76Dに示すように、コントラストが高くなった低階調距離画像が新たに図76Bから階調変換されて、表示される。ただ、この画像ではノイズ成分も大きくなっている。図76Dの例では、ゲインが1000[階調/mm]、ノイズ除去が0.000[mm]に設定されている。そこで、図76Dからノイズ除去量を大きくした低階調距離画像を、図76Eに示す。ここでは、ゲインが1000[階調/mm]、ノイズ除去が0.080[mm]に設定されている。これによってノイズ成分は低減されたが、一方で左上の「E」の右上に、基準面よりも低い高さのノイズが存在することが確認できる。そこで、図74等に示す「抽出高さ」設定欄182において「高い側」に設定すると、基準面が最低値(画素値0)となるように変換されるため、基準面よりも低い部分は無視され、基準面よりも高い側のみが抽出される結果、図76Fに示すような低階調距離画像が得られる。例えば図77Aに示すようなプロファイルの距離画像(16階調)に対して、「抽出高さ」を「高い側」に設定すると、基準面からの高い側のみが抽出されるような結果となり、図77Bに示すような低階調距離画像(8階調)が得られる。このようにして、図76C等に比べてコントラストが高く、かつノイズ成分も少ない低階調距離画像を得ることができる。この例では、最終的な階調変換パラメータとして、ゲインを1000[階調/mm]、ノイズ除去を0.080[mm]、「抽出高さ」を「高い側」にそれぞれ設定して、図76Bの距離画像から図76Fの低階調距離画像に階調変換している。
このようにして、一点指定の実行に必要な条件が設定されると、指定された階調変換条件、すなわち基準高さ等に従って、入力画像が高階調な距離画像から低階調距離画像に階調変換され、図78に示すように、第一画像表示領域111に表示される。
ここで、基準面を一点指定で指定する方法が有効なワークの例を、図79A〜図79Bに基づいて説明する。図79Aは、ワークの計測面において平面的な傾斜がない、又は多少の傾斜があっても検査処理に影響しないワークWK7を示している。ここでは、鋳物の表面に数字や文字列が立体的に形成されたワークWK7に対して、文字列が適切かどうかをOCRによって読み取る検査処理を行う。このような用途において、図67等に示した「抽出」ボタン144を押下することで、第二画像表示領域121上にスポイト状のアイコンSIを表示させる。そしてポインタ146で、図79Aに示すようにワークWK7上面の、文字列の形成されていない平面(背景面)の一点を指定する。これにより、ポインタ146で指定された抽出領域(図67の例では16画素)の高さを基準面として、階調変換が行われ、図79Bに示す低階調距離画像に変換される。この低階調距離画像では、ワークWK7の平面を背景として、ここから突出した文字列部分が綺麗に抽出されるので、正確なOCRを実行し易くできる。このように一点指定は、ワークに多少傾きがあっても検査処理には影響のないケースに有効に利用できる。また一点指定は低負荷で高速に処理できる利点も挙げられる。
(三点指定)
以上は、一点指定による階調変換条件の設定方法について説明した。次に三点指定による階調変換条件の設定方法について、図80〜図85のGUI画面に基づいて説明する。三点指定とは、ユーザが指定した三点から求められる平面を基準面として、距離画像を低階調距離画像に階調変換する方法である。基準面も、上述した一点指定の基準高さと同様、例えば距離画像の高さ情報の内、低階調距離画像に階調変換される高さ範囲(距離レンジ)の中間の高さとする。あるいは、距離レンジの上限(階調変換される最も高い位置)や下限(階調変換される最も低い位置)とすることもできる。
図62の三次元画像処理プログラムのGUI画面で「高さ抽出」ボタン116を押下し、図80に示す高さ抽出選択画面140に移行した状態で、抽出方法選択手段142で階調変換方法として、「三点指定(平面)」を選択する。これにより、図81に示す高さ抽出設定を行う三点指定画面170が表示される。
(三点指定画面170)
三点指定画面170では、階調変換の基準となる基準面を、第二画像表示領域121上で3点指定して設定する。このため図81の三点指定画面170では、高さ抽出手段が設けられる。具体的には、画面右の操作領域122中に設けられた「抽出」ボタン144を選択することで、図82に示す画面となり、画面左の第二画像表示領域121上で任意の位置を三点指定できるようになる。ここでは、高さ抽出手段として図67と同様に点状のポインタ146が表示されており、ユーザは所望の位置をマウスやトラックボール、あるいはタッチパネル等のポインティングデバイスで順次指定していく。まず一点目を第二画像表示領域121上で指定すると、指定された位置で図83のように矩形状が十字状に変化して、指定済みの位置を示すと共に、次の二点目を、同じくポインタ146でもって指定できるようになる。この時点で、図82に表示されているカラーの距離画像は、指定された一点目の高さを含む水平面を基準として階調変換を行い、階調変換後の低階調距離画像を濃淡画像として第二画像表示領域に表示する。さらに二点目を指定すると、図84に示すように二点目の位置が矩形状から十字状に変化すると共に、三点目が指定可能となる。この時点で、指定された2点の高さを含む傾斜面を基準として再度階調変換を行い、低階調距離画像を更新する。そして三点目を指定すると、これら指定済みの三点を含む平面でもって基準面が設定される。また、高さ抽出手段で各点を指定する際に、高さ抽出画面表示領域上で現在指定されている点の高さを、「Z高さ」表示欄152に表示させてもよい。
さらに、基準面の情報として、傾斜角を表示させることもできる。図84の例では、操作領域122に設けられた高さ抽出表示欄172において、基準面のX方向傾き、Y方向傾き、及び三点目のZ方向高さが表示されている。
また、一点指定と同様、必要に応じて強調方法を指定することもできる。例えば、ゲイン調整手段を用いて、ゲイン調整を行ったり、三点指定「詳細設定」ボタン174を押下して図85に示すような三点指定詳細設定画面180を呼び出し、強調方法設定欄154にゲイン調整欄156に加えて「抽出高さ」設定欄182を表示させ、高さ抽出手段で抽出すべき高さ情報として、ドロップダウンリストから「高い側」、「低い側」、「高低両方」のいずれかを選択できる。
このようにして、指定された三点で規定される任意の平面を基準面として、距離画像の階調変換を行うことが可能となる。この結果、上述した一点指定のような水平な平面を基準とする階調変換のみならず、傾斜させた平面を基準面とした階調変換も可能となる。例えば、ワーク表面の傾斜面の傷や異物を検査する用途において、傾斜面のままでは距離レンジが狭くなるところ、傾斜面に沿って基準面を設定することで、傾斜面をキャンセルでき、効率よく傷や異物を検出できる。このようにして、ワークや検査目的に応じて高さ情報を活用した、柔軟な階調変換を実現できる。
ここで、基準面を三点指定で指定する方法が有効なワークの例を、図86A〜図86Dに基づいて説明する。図86Aは、ワークの計測面において平面的な傾斜が生じていたり、微小な平面傾斜が存在すると、検査処理の結果に影響するようなワークWK8を示している。ここでは、基板上に形成されたボールグリッドアレイ(BGA)を検出する検査処理を行う。このような用途において、図84等に示した「抽出」ボタン144を押下することで、第二画像表示領域121上にスポイト状のアイコンSIを表示させる。そしてポインタ146で、図86Aに示すように、ワークWK8上面の内、BGAが形成されていない点を三点指定する。これにより、指定された三点を含む平面が基準面として抽出されて、階調変換が行われ、図86Bに示す低階調距離画像に変換される。この低階調距離画像では、ワークWK8の平面を背景として、ここから突出したBGAが綺麗に抽出されるので、例えばこれを図86Cに示すように二値化してBGAの形状を確認できる。この方法であれば、ワークWK8の平面に傾きがあっても正確に検出できる利点が得られる。仮に図86Aに示すワークWK8に傾きがあると、例えば一点指定では二値化された画像が図86Dに示すようになって、正しく検出できない。これに対して、三点指定では上述の通り傾きを補正して正確な検出結果が得られる。このように三点指定は、平面の傾きが検査処理結果に影響するケースで有効である。
さらに、図87Aに示すような平面状のワークWK9の上面に緩やかな窪みを有する場合に、この窪みを検出する検査処理を考える。ここでは図87Aに示すように計測領域ROIを、窪みを含む領域に設定する。これにより、窪みを含んだ計測領域ROI内全体の高さデータから求めた平面を基準面として階調変換され、図87Bに示すような低階調距離画像が得られる。この例では最小二乗法で基準面を推定している。さらに得られた低階調距離画像を二値化して、図87Cに示す二値化画像を得る。これによって傾きを補正して、安定的に窪みの部分だけを抽出できる。仮に傾きがある状態で一点指定によって二値化画像を求めると、図87Dに示すような結果となって、傾斜面によって窪みの検出が困難となることが判る。このように、精度の高い基準面の推定に、三点指定が有効である。なお処理時間の面では、一点指定よりも処理時間がかかるものの、比較的高速に処理可能である。
以上は、設定段階で予め階調変換条件を指定して、運用時には指定された条件で階調変換を行う静的変換について説明した。いいかえると、静的変換では、階調変換パラメータは入力画像によらず一定値である。次に、検査対象の入力画像に応じて階調変換条件を調整する動的変換の具体例について、説明する。まず動的変換には、距離画像を低階調距離画像に階調変換する際に、残すべき高さ情報の基準を補正するため具体的な方法として、
(B1)入力画像に対して指定された平均抽出領域内の平均高さ(平均距離)を平均基準高さとして階調変換する平均高さ基準、
(B2)入力画像の指定領域内の推定平面を生成し、これを基準面として階調変換する平面基準、
(B3)入力画像から高周波成分を除いた自由曲面を生成し、これを基準面として階調変換する自由曲面基準
が含まれる。以下、各方法について順次説明する。
(B1:平均高さ基準)
平均高さ基準は、入力画像毎に、指定された平均抽出領域内の平均高さを演算し、これを平均基準高さとして階調変換する方法である。平均基準高さを規定するための平均抽出領域は、運用に先立って予め設定される(上述した図8のステップS83)。以下、図8のステップS83において、平均抽出領域を指定する手順の一例について、図62、図65、図88〜図92のGUIに基づいて説明する。まず、図62のGUI画面で「高さ抽出」ボタン116を選択して、図65の高さ抽出選択画面140に進み、抽出方法選択手段142で動的変換に該当する「リアルタイム抽出」を選択すると、図88の高さ動的抽出設定画面190となる。この例では、再びワークに消しゴムを用いた例を示している。次に抽出方法選択手段142の下方に設けられた「計算方法」選択欄192において、動的変換の基準を指定する。ここでは図89に示すようにドロップダウンボックスで、「平均高さ基準」、「平面基準」、「自由曲面基準」のいずれかを選択する。ここでは、「平均高さ基準」を選択する。これにより図90の平均高さ基準設定画面210に移行する。なお、図90、図91では説明の都合上、ワークに50円玉を用いた例を示している。
なお、動的変換に関する設定時には、実際の運用時に入力される距離画像とは異なる画像に対して、平均基準高さ等を設定する必要がある。このため、運用時のワークと対応する画像を事前に撮像し、これを登録画像として保存しておき、動的変換の設定に際しては登録画像を読み込んで、これを運用時のワーク画像に代用する形で各種の設定を行う。このため、図65等の画面において、「表示画像」選択欄124にて、該当する「登録画像」を指定する。
平均高さ基準設定画面210では、別途設定された検査対象領域をそのまま用いるか、必要に応じて任意の平均抽出領域を指定する。平均抽出領域の指定は、矩形状、あるいは四隅の指定、中心と半径の指定による円形、自由曲線等、任意の方式が利用できる。また、ワークの一点のみを指定したり、逆にワークの全体、あるいは第二画像表示領域121で表示される画像の全体を、平均抽出領域とすることもできる。あるいは、上述の通り別途指定された検査対象領域を、平均抽出領域として利用することもできる。これらの場合は、高さ抽出手段による平均抽出領域の指定作業を省略してもよい。
(マスク領域)
また、平均抽出領域に対して、平均高さを抽出しないマスク領域を指定することもできる。例えば図90の画面から、操作領域122に設けられた「抽出領域」ボタン194を押下すると、図91に示すマスク領域設定画面220に移行する。このマスク領域設定画面220上から、平均高さの抽出に不要なマスク領域を一以上指定できる。マスク領域の指定にも、上述の通り第二画像表示領域121上から、矩形状や円形状等、任意の領域を指定することで行える。
さらに、必要に応じてゲイン調整等を行うこともできる。例えば図90の画面から、操作領域122の右下に設けた「詳細設定」ボタン196を押下すると、図92に示す平均高さ基準詳細設定画面230に移行し、強調方法設定欄154にゲイン調整に加えて、抽出高さの指定やノイズ除去等の詳細な設定項目が表示される。
このようにして平均抽出領域が規定されると、設定画面を終了する。階調変換の際には、この平均抽出領域に含まれる高さ情報の平均値(平均基準高さ)を、基準高さとして、階調変換を行う。例えば、平均基準高さが、距離レンジの中心値(28=256階調の場合は0〜255の距離レンジの中心値である128)となるようにして階調変換する。また、平均抽出領域に含まれるすべての点の高さ情報を必ずしもすべて利用する必要はなく、適宜間引く、あるいは平均化する等、処理を簡略化することもできる。
そして運用時において、後述する図133に示す手順で動的変換が行われる。例えばライン上を搬送されるワークを撮像して距離画像を生成し(ステップS13301)、上記で設定された平均抽出領域の平均高さを演算し(ステップS13302)、これに基づいて階調変換を実行して低階調距離画像を生成し(ステップS13303)、得られた低階調距離画像に対して検査を行う(ステップS13304)。この方法であれば、ワークの高さ方向にばらつきがある場合でも、ワーク毎に階調変換の基準面を毎回再設定できるため、ワークの高さ方向のばらつきによらず、正確な検査が実現できる。
ここで、基準面を平均高さ基準で指定する方法が有効なワークの例を、図93A〜図93Bに基づいて説明する。図93Aは、上述した図79Aと同様、ワークの計測面において平面的な傾斜がないか、多少の傾斜があっても検査処理に影響しないワークWK7であり、鋳物の表面に数字や文字列が立体的に形成されたワークWK7に対して、文字列が適切かどうかをOCRによって読み取る検査処理を行う。このような用途において、図92等に示した抽出領域設定画面で、第二画像表示領域121上に矩形状に平均高さ基準を決定する計測領域ROIを設定する。ここでは図93Aに示すように、ワークWK7上面で文字列を囲む平面を計測領域ROIとして指定する。これにより、計測領域ROIの高さを基準面として、階調変換が行われ、図93Bに示す低階調距離画像に変換される。この低階調距離画像でも、図79Bと同様、ワークWK7の平面を背景として、ここから突出した文字列部分が綺麗に抽出されるので、正確なOCRを実行し易くできる。また、上述した図79AではワークWK7上の一点のみを指定することから、選択した点がノイズの影響を受ける可能性があるのに対し、図93Aでは平面で指定することから、このようなのノイズの影響を低減できる利点が得られる。
(平面基準)
以上は、平均高さ基準でもって動的変換を行う例について説明した。次に、別の動的変換として、入力画像に対して予め指定された基準面推定領域内に含まれる平面を推定し、この推定面を基準面として階調変換する平面基準について説明する。この方法では、例えばワークの表面が傾斜している場合等に、傾斜成分をキャンセルして階調変換を行えるため、上述した静的変換の三点指定と同様に活用できる利点が得られる。以下、平面基準の具体的な設定方法を説明する。平面基準においても、上述した平均高さ基準と同様、基準面を決定するための基準面推定領域は、運用に先立って予め設定される(上述した図8のステップS83)。以下、図8のステップS83において、基準面推定領域を指定する手順の一例について、図62、図88、図92〜図95のGUIに基づいて説明する。まず、図62のGUI画面で「高さ抽出」ボタン116を選択して、図80の高さ抽出選択画面140に進み、抽出方法選択手段142で動的変換に該当する「リアルタイム抽出」を選択すると、図88の高さ動的抽出設定画面190となる。次に「計算方法」選択欄192において、図89に示すように動的変換の基準として、「平面基準」を選択すると、図92の平面基準設定画面に移行する。
平面基準設定画面では、上述した図80の高さ抽出選択画面140における高さ抽出手段と同様、別途設定された検査対象領域をそのまま用いるか、必要に応じて任意の基準面推定領域を指定する。基準面推定領域の指定は、矩形状、あるいは四隅の指定、中心と半径の指定による円形、自由曲線等、任意の方式が利用できる。また、ワークの一点のみを指定したり、逆にワークの全体、あるいは第二画像表示領域121で表示される画像の全体を、基準面推定領域とすることもできる。
また、基準面推定領域に対して、推定面を推定しないマスク領域を指定することもできることは、上述した図90等と同様である。さらに、必要に応じてゲイン調整や抽出高さの指定、ノイズ除去等を行うこともできるのも、上記と同様である。例えば、図92の画面において、操作領域122に設けられた「詳細設定」ボタン222を押下すると、図94の平面基準詳細設定画面240となり、強調方法設定欄154にはゲイン調整欄156に加え、抽出高さを指定する「抽出高さ」設定欄162やノイズ除去のためのノイズ除去設定欄164、無効画素を指定するための無効画素指定欄166が表示され、これらの詳細な設定が可能となる。また無効画素指定欄166においては、図95に示すように、距離を求められなかった無効な画素を指定された規定値の他、背景の画素値やユーザが指定する任意の値で埋めることができる。
このようにして基準面推定領域が規定されると、設定画面を終了する。階調変換の際には、この基準面推定領域に含まれる高さ情報から、平面状の推定面を演算する。基準面推定領域内に分布する高さ情報のフィッティングには、最小二乗法等、既知の方法が適宜利用できる。なお、基準面推定領域に含まれるすべての点の高さ情報を推定面の演算に利用する必要は必ずしもなく、適宜間引く、あるいは平均化する等、処理を簡略化することもできることは上述の通りである。
このようにして推定面が決定されると、この推定面を基準として、階調変換を行う。例えば、推定面が距離レンジの中心値となるようにして階調変換する。また、演算された推定面の情報を表示させることもできる。例えば図92に示す例では、操作領域122に設けられた推定面表示欄において、推定面のX方向傾き、Y方向傾き、及び推定面のZ方向高さが表示されている。なお、この例では推定面を一枚の平面としたが、複数枚の平面を組み合わせた推定面とすることもできる。また、この例では推定面を平面としたが、推定面を球面等の単純な曲面として演算することも可能である。
また基準面を平面基準で指定する方法が有効なワークの例として、上述した図86Aや図87Aが挙げられる。このようなワークに対して平面基準を設定することで、仮にワークの上面に傾斜があっても傾斜分を補正して基準面が検出されるため、上述した三点指定と同様、正確なBGAパターンの検出が実現される。
(B3:自由曲面基準)
最後に、入力画像の所定の領域(自由曲面対象領域)から高周波成分を除いた自由曲面を生成し、これを基準面として階調変換する自由曲面基準について説明する。例えばワークが曲面を有する等、単純な平面では近似が困難な場合は、検査したい領域の高さ情報を精度よく抽出することが難しい。そこで、入力画像から高周波成分を除いて単純化した画像を生成して、この画像の表面形状(自由曲面)を基準面として利用することで、大まかな形状やなだらかな変化を無視し、急激な変化を生じている部分、すなわち細かな形状のみを残した検査を可能とできる。
以下、自由曲面基準の具体的な設定方法を、図62〜図96のGUIに基づいて説明する。自由曲面基準においても、上述した平均高さ基準等と同様、基準面を決定するための必要な条件は運用に先立って予め設定される(上述した図8のステップS83)。まず、図62のGUI画面で「高さ抽出」ボタン116を選択して、図80の高さ抽出選択画面140に進み、抽出方法選択手段142で動的変換に該当する「リアルタイム抽出」を選択すると、図88の高さ動的抽出設定画面190となる。次に「計算方法」選択欄192において、図89に示すように動的変換の基準として、「自由曲面基準」を選択する。これにより図96の自由曲面基準設定画面250に移行する。
自由曲面基準設定画面250でも、任意の領域を自由曲面対象領域として指定することも可能であるが、好ましくは、第二画像表示領域121で表示される画像の全体、又は別途指定された検査対象領域を、そのまま自由曲面対象領域として利用する。自由曲面対象領域として指定された領域から、高調波成分を除去して自由曲面を生成する。そして第二画像表示領域121上で表示される自由曲面対象領域に、自由曲面を基準面として階調変換を行った階調変換画像を重ねて表示させる。また、階調変換に際して、必要に応じてゲイン調整や抽出高さの指定、ノイズ除去等を行うこともできるのも、上述した図90等と同様である。
(抽出サイズ調整手段)
さらに、自由曲面基準で抽出される抽出面の細かさ(抽出サイズ)を調整する抽出サイズ調整機能も備えている。具体的には、図96において、操作欄の「抽出面の詳細設定」欄に、抽出サイズ調整手段として「抽出サイズ」指定欄252を設けている。「抽出サイズ」指定欄252の数値を増減させると、これに応じて自由曲面の曲率が変化し、抽出可能な欠陥のサイズが変動する。ここでは、設定されたサイズ以下の凹凸が抽出されるように、自由曲面画像が生成され、第二画像表示領域121に表示される。抽出サイズを大きくすると滑らかな自由曲面が生成され、設定された抽出サイズに応じた大きさの欠陥が抽出できる。一方、抽出サイズを小さくすると、ワークの表面形状に沿った自由曲面が生成されるようになり、設定された抽出サイズに応じた小さな欠陥のみが抽出される。例えば、抽出サイズを大きくすると図97に示すように自由曲面がワークの表面形状に対して滑らかとなるので、平滑化された基準面でもって抽出される凹凸が明瞭になる。逆に数値を小さくすると、図90に示すように自由曲面がワークの表面形状の凹凸に沿った詳細な形状に近づくため、結果としてこのような複雑な基準面でもって抽出される凹凸は不鮮明となる。また、「抽出サイズ」指定欄252の数値を増減させると、これにつれて第二画像表示領域121において表示されている自由曲面対象領域内の階調変換画像も、基準面として内部的に生成される自由曲面の状態が変化し、基準面からの差分として抽出・表示される対象物の大きさがリアルタイムに変化する。ユーザは、第二画像表示領域121を参照しながら、「抽出サイズ」指定欄252の数値を最適に調整できる。
このようにして自由曲面対象領域が規定されると、設定画面を終了する。階調変換の際には、この自由曲面対象領域に含まれる画像の高さ情報から、自由曲面を演算する。自由曲面対象領域内に分布する高さ情報のフィッティングには、図161のフローチャートに示すように、設定された抽出サイズに応じた画像縮小処理(ステップS1611)とフィルタ処理(ステップS1612)と画像拡大処理(ステップS1613)を行って、自由曲面画像を生成する方法が利用できる。フィルタ処理には、例えばメディアンフィルタが利用できる。このようにして自由曲面が決定されると、元の画像から差分を取ることで(ステップS1614)、抽出される凹凸などを明確にできる。あるいは、上述の通り最小二乗法等、既知の方法が適宜利用できる。なお、自由曲面対象領域に含まれるすべての点の高さ情報を推定面の演算に利用する必要は必ずしもなく、適宜間引く、あるいは平均化する等、処理を簡略化できることは上述の通りである。このようにして自由曲面が決定されると、この自由曲面を基準として、階調変換を行う。例えば、自由曲面が距離レンジの中心値となるように階調変換する。
ここで、基準面を自由曲面で指定する方法が有効なワークの例を、図98A〜図98Bに基づいて説明する。図98Aは、ワークの曲面状の面に含まれる突起物や窪み等の欠陥を検出する検査処理を示している。ここで計測領域ROIとして曲面から欠陥を含む領域を指定する。そして、指定された計測領域ROI内に含まれる高さ情報から自由曲面を求めて、得られた自由曲面を基準面として階調変換を行う。得られた低階調距離画像を図98Bに示す。この図に示すように、自由曲面を基準として、この面より高い部分を突起物(図98Bにおいて白点で表示される)、低い部分を窪み(図98Bにおいて黒点で表示される)として、それぞれ検出できる。このように、自由曲面による基準面の指定は、曲面形状のワークに対して有効に利用できる。なお、自由曲面の検出の処理負荷は、上述した一点指定や三点指定に比べて高い。
(欠陥抽出処理)
上述した自由曲面基準において、図161のステップS1611で示す画像縮小処理に際して、距離画像の縦横、すなわちXY方向に対して圧縮を行うと、検査対象物の曲面の状態によっては曲面と欠陥とを分離しきれず、思うように傷を抽出できない場合がある。例えば、図162に示すようなチューブ状の検査対象物を撮像した距離画像において、抽出対象1と抽出対象2を抽出しようとする例を考える。このような距離画像に対して、自由曲面基準を選択してXY方向に画像の圧縮を行うと、図163に示すように、チューブ状の長さ方向に沿って存在する山谷も抽出されてしまい、その一方で本来抽出したい抽出対象2は綺麗に抽出されていない状態となる。
(抽出方向指定手段)
そこで、このような場合でも正確な欠陥検出が実現できるように、検査対象面において特定の方向に連続して存在する形状を除外して、欠陥すなわち局所的な凹凸を抽出する抽出方向指定機能を設けることもできる。例えば、検査条件の指定時に抽出方向を指定可能な抽出方向指定手段を設ける。具体的には図89等に示すGUIの「計算方法」選択欄192において「自由曲面基準」を選択すると、上述した図96等に代えて、図164の自由曲面基準設定画面630のGUIを表示させる。図164の自由曲面基準設定画面630においては、「抽出サイズ」指定欄252の下方に、抽出方向指定手段の一形態として「抽出方向」指定欄632を追加する。「抽出方向」指定欄632においては、抽出すべき欠陥等の局所的な形状変化を抽出する方向を指定する。この例では予め設定された選択肢として、「X」,「Y」,「XY」のいずれかをドロップダウンリスト等により選択できる。また図164の画面において「詳細設定」ボタン222を押下すると、同様に図165に示す詳細設定画面640に切り替わり、強調方法設定欄154にはゲイン調整欄156、「抽出高さ」設定欄162、ノイズ除去設定欄164、無効画素指定欄166等が表示され、これらの詳細な設定が可能となる。
例えば図164や図165の画面で「抽出方向」指定欄632において「Y」を選択すると、画像のY方向(図162において縦方向)における局所的な形状変化を抽出する。言い換えると、Y方向において変化しない形状、例えば縦方向に延びる溝等は無視されて、図166に示すような検出結果が得られる。同様にXを選択すると、画像のX方向(図162において横方向)における形状変化が抽出される。またXYを選択すると、図163に示したような、XY方向における局所的な形状変化が抽出される。これにより、検査対象物の形状に応じて抽出方向を指定することで、不要な形状をキャンセルして所望の形状を適切に抽出できる。例えば図167に示すような検査対象物において、文字列1、文字列2を抽出したい場合、XY方向に抽出しようとすると図168に示すように長手方向に存在する凹凸も検出されてしまうが、抽出方向としてY方向を指定することで、図169に示すようにY方向に一様な形状を除去して、所望の文字列を正確に抽出できる。
ここで具体的な欠陥抽出処理等の形状抽出方法として、図166、図169に示したY方向の抽出処理を例として説明する。上述した画像縮小処理(図161のステップS1611)において、画像のY方向にのみ縮小を行う。この結果、フィルタ処理(ステップS1612)と画像拡大処理(ステップS1613)を得て得られた基準となる自由曲面画像は、Y方向の細かい凹凸が除去され、Y方向にのみ平滑化された自由曲面画像が生成されることとなる。いいかえると、Y方向に一様なキャンセル対象の形状のみが残された画像を得られる。このため、対象となる元画像に対して、この自由曲面画像との差分を取ると(ステップS1614)、Y方向に一様なキャンセル対象の形状が除去されることとなり、結果としてY方向に細かく凹凸した形状変化のみが残されることとなる。これにより、所望の方向における形状変化のみを抽出することが実現される。
このような処理は、特に一方向に長い検査対象物の検査に有効である。検査対象物の長手方向に沿って抽出方向を指定することで、長手方向に沿って連続した一様形状をキャンセルでき、正確な欠陥抽出が実現できる。
また、このような一方向に連続した検査対象物(例えばタイヤのような、一方向に一様な形状を持つ製品)の高さ情報を取得するには、構造化照明以外に、上述した光切断法を用いた検査が好適に適用できる。特に光切断法は、ライン状の切断面の形状(プロファイル)を取得する方法であるため、一方向に長い検査対象物に対して、切断位置を変化させながら連続的にプロファイルを取得し、得られたプロファイルを合成することで距離画像を取得できる。この方法であれば、検査対象物が移動する場合でも、いいかえると検査対象物を静止させなくとも検査できるため、例えば工場のライン上を搬送される製品の検査のような用途において、搬送される製品を停止させることなく不良品の検出を行うことが可能となる。
なお以上の例では、欠陥抽出処理を自由曲面基準に適用する例を説明したが、本発明は自由曲面基準に限らず、他の基準面に対しても適用できる。例えば、基準面として平均高さ基準を選択した際に、上述した欠陥抽出処理を適用することで、指定された方向に、ライン毎の平均高さを求めて、その平均高さからの差分を取ることができる。この方法によれば処理が単純なため、高速な処理が可能となる利点が得られる。
(抽出領域設定ダイヤログ148)
さらに、高さ抽出を行うに際して、入力画像から基準平面を算出するための対象領域(抽出領域)は、検査処理を行う検査対象領域(計測領域)と同じ領域とする他、計測領域とは別個に設定することもできる。一例として、図90において、「抽出領域」ボタン147を押下すると、図99に示すように抽出領域を設定可能な抽出領域設定ダイヤログ148が表示される。この抽出領域設定ダイヤログ148には抽出領域選択欄149が設けられ、抽出領域選択欄149からユーザは「計測領域と同じ」、「矩形」、「円形」、「回転矩形」等を選択できる。「計測領域と同じ」を選択すると、上述の通り抽出領域が計測領域と同じとなる。一方、「計測領域と同じ」以外を選択することで、計測領域とは異なる領域を抽出領域として設定できる。例えば図100に示すように抽出領域選択欄149で「矩形」を選択すると、第二画像表示領域121において矩形状の枠が表示され、ユーザは所望の領域をマウスのドラッグ等によって指定できる。また図100の抽出領域選択欄149の右に設けられた「編集」ボタン324を押下すると、図101に示すように抽出領域編集ダイヤログ326が表示され、矩形状の抽出領域をxy座標で数値により指定できる。抽出領域編集ダイヤログ326で抽出領域が調整されると、その変更が第二画像表示領域121において反映される。
(マスク領域設定欄330)
さらに抽出領域設定ダイヤログ148から、抽出領域としない領域を指定するためのマスク領域も設定できる。図99の例では、抽出領域選択欄149の下部にマスク領域設定欄330が設けられている。マスク領域設定欄330では、複数のマスク領域を設定できる。ここでは0〜3の最大4つのマスク領域が指定でき、各マスク領域は独立して設定できる。例えば図102に示すようにマスク領域0として「円形」を選択すると、第二画像表示領域121上に円形のマスク領域0が表示される。さらにこの状態から「編集」ボタン332を押下すると、図103に示すように円形のマスク領域0の詳細を規定するためのマスク領域編集ダイヤログ334が表示される。ユーザは、円形のマスク領域0を、中心のxy座標と半径とで規定できる。マスク領域は、第二画像表示領域121において抽出領域とは異なる色の枠線で表示され、ユーザが抽出領域とマスク領域とを視覚的に区別し易くしている。図103の例では、抽出領域を緑色、マスク領域を黄色で表示している。ただ、この例に限らず、異なる色で区別したり、線の太さや線種(実線、破線等)、ハイライト(点滅や強調)等で区別することも可能であることはいうまでもない。
このようにして、抽出領域を計測領域とは独立して設定することも可能となる。また、抽出領域の設定内容は、文字情報で表示させることもできる。例えば図90の例では、「抽出領域」ボタン147の下部にテキストで「計測領域と同じ」と表示しており、平面基準を算出する抽出領域が計測領域と同じであることを示している。またその下部には「マスク領域:無効」と表示し、抽出領域にマスク領域が設定されていないことを示している。これによってユーザは、「抽出領域」の概略をテキスト情報としても確認できる。
(前処理設定)
以上のようにして、「エリア」処理ユニットで、高さ抽出の設定を終えると、図104に示すように第三画像表示領域において、「エリア」処理ユニットで設定された領域の矩形内では、抽出された高さに基づいて階調変換された低階調距離画像が重ねて表示される。次に、前処理の設定を行う。前処理とは、上述の通り距離画像を生成する前に行う共通のフィルタ処理であり、ここでは各種のフィルタを選択できる。具体的には、図104の画面から、設定項目ボタン領域112に設けられた「前処理」ボタンを選択すると、図105のフィルタ処理設定画面340となり、適用するフィルタを選択できる。ここで選択可能なフィルタとしては、平均化フィルタ、メディアンフィルタ、ガウシアンフィルタ等が挙げられる。さらに、このようなフィルタ以外にも、例えば二値化レベルの設定も可能である。例えば図106の二値化レベル設定画面350では、二値化を行う上限値や下限値、回数を設定できる。また二値化された画素の分布を示すヒストグラムを表示させたり、入力画像に連動してヒストグラムを更新する機能を持たせてもよい。このようにしてフィルタ処理設定が終了すると、図107に示すように第三画像表示領域において、設定された領域内でフィルタ処理を経て二値化された低階調距離画像が重ねて表示される。
(判定設定)
さらに「エリア」処理ユニットでは、設定された領域、高さ抽出、前処理等の条件にしたがって、入力画像を低階調距離画像に階調変換した後、この低階調距離画像に対して高さ検査や画像検査等の判定を行う条件についても規定する。例えば図107の画面から、設定項目ボタン領域112に設けられた「判定条件」ボタンを押下すると、図108の判定条件設定画面360となり、判定条件を設定する。この例では、二値化された低階調距離画像の画素をカウントして、その数値が所定の範囲内にあるときをOK、ないときをNGに設定している。図108の例では、判定条件が0〜30であり、現在値が166であるため、NGと判定され、図109に示すように、第三画像表示領域において「判定結果:NG」と赤文字で表示される。このように、判定結果がNGの場合は、文字を赤文字とする等、目立つ態様とすることで、運用時にユーザが認識し易くできる。
(「ブロブ」処理ユニット267)
また、以上は高さ情報を用いた高さ検査に基づく判定について説明したが、本発明はこれに限らず、従来の輝度画像に対する画像検査に基づいた判定処理を加えることも可能である。このような画像検査をブロブと呼ぶ。例えば図110に示すように、フロー表示領域261において「エリア」処理ユニットの下部に、ブロブ(画像検査)を行う「ブロブ」処理ユニット267を追加する。「ブロブ」処理ユニット267においても、上記と同様に、対象領域を設定し前処理を設定したり(図111)、検出条件を設定したりして(図112)、判定条件を設定して判定結果を出力させることができる(図113)。
(「色検査」処理ユニット267B)
さらに、撮像手段としてカラーCCDカメラを接続している場合等、カラーの光学画像を入力できる場合は、色検査を組み合わせることも可能である。例えば図114に示すように、フロー表示領域261において「ブロブ」処理ユニット267の下部に、計測処理として色検査を行う「色検査」処理ユニット267Bを追加する。「色検査」処理ユニット267Bにおいても、上記と同様に、対象領域を設定したり(図115、図116)、濃度平均等の詳細設定を行ったりして(図117)、判定条件を設定して判定結果を出力させることができる(図118)。
以上のようにして、設定モードにて各種の設定を行った後、運用モードにおいて実際にワークを撮像して入力画像を取得し、高さ検査や画像検査の結果に基づいて判定処理を行う。なお、上記の例では、設定モードにおいても判定結果を出力可能な構成とすることで、判定結果をイメージを設定段階でユーザに認識し易くしている。ただ、判定結果は運用モードにおいてのみ出力可能とすることも可能であることはいうまでもない。
(運用モード)
次に、図4A、図4Bに示す三次元画像処理装置におけるヘッド部、コントローラ部内部での、運用時の処理について、図119、図120のフローチャートに基づいて説明する。まず、図4A、図5に示す実施の形態3に係る三次元画像処理装置のヘッド部での運用時の処理の流れを、図119のフローチャートに基づいて説明する。
(実施の形態3に係る処理の流れ)
まず、外部からトリガが入力されると(ステップS11901)、第一プロジェクタ20Aから一の投光パターンがワークに投光され(ステップS11902)、撮像手段で撮像する(ステップS11903)。次に、すべての投光パターンについて撮像が終了したかどうかを判定し(ステップS11904)、未だの場合は投光パターンを切り替えて(ステップS11905)、ステップS11902に戻って処理を繰り返す。ここでは、位相シフト法を用いた投光パターンでパターン投影画像を8枚、さらに空間コード化法を用いた投光パターンでパターン投影画像を8枚の、計16枚のパターン投影画像を撮像する。
一方、ステップS11904においてすべての投光パターンを撮像し終えた場合は、ステップS11906とステップS11907に分岐する。まずステップS11906において三次元計測演算を実行し、距離画像Aを生成する。
その一方でステップS11907において、位相シフト法で撮像した複数のパターン投影画像(パターン投影画像群)から、これを平均した平均画像A’を演算する。
以上のステップS11902〜S11906は、第一プロジェクタ20Aからのパターン投光による三次元計測である。次に第二プロジェクタ20Bからのパターン投光による三次元計測を行う。ここでは、ステップS11906に続いてステップS11908において、ステップS11902〜S11905と同様に、第二プロジェクタ20Bから投光パターンがワークに投光され(ステップS11908)、撮像手段で撮像し、(ステップS11909)、すべての投光パターンについて撮像が終了したかどうかを判定する(ステップS11910)。未だの場合は投光パターンを切り替えて(ステップS11911)ステップS11902に戻り処理を繰り返し、一方すべての投光パターンを撮像し終えた場合は、ステップS11912とステップS11912に分岐する。ステップS11912においては三次元計測演算を実行し、距離画像Bを生成する。一方ステップS11913においては、位相シフト法で撮像したパターン投影画像群の平均画像B’を演算する。このようにして三次元距離画像A、Bが生成されると、ステップS11914において、三次元距離画像A、Bを合成して、距離画像を生成する。またステップS11915において、平均画像A’、B’を用いて、これらを合成した輝度画像(平均二次元濃淡画像)を生成する。このようにして、図5の三次元画像処理装置において、ワークの高さ情報を有する距離画像が取得される。なお輝度画像が不要の場合は、ステップS11907、S11913、S11915を省略できる。
(実施の形態4の処理の流れ)
以上は、図4Aに示す実施の形態3に係る三次元画像処理装置のヘッド部の処理の流れについて説明した。次に図4Bに示す実施の形態4に係る三次元画像処理装置のヘッド部の処理の流れについて、図120のフローチャートに基づいて説明する。説明する。まず、外部からトリガが入力されると(ステップS12001)、投光手段20から一の投光パターンがワークに投光され(ステップS12002)、第一撮像手段10Aで撮像し、(ステップS12003)、同時に第二撮像手段10Bでも撮像する(ステップS12004)。そしてすべての投光パターンについて撮像が終了したかどうかを判定する(ステップS12005)。未だの場合は投光パターンを切り替えて(ステップS12006)ステップS12002に戻り処理を繰り返し、一方すべての投光パターンを撮像し終えた場合は、ステップS12007〜ステップS12010に分岐する。ステップS12007においては三次元計測演算を実行し、距離画像Aを生成する。ステップS12008においては三次元計測演算を実行し、距離画像Bを生成する。一方、ステップS12009において、位相シフト法で撮像したパターン投影画像群の平均画像A’を演算し、またステップS12010において、位相シフト法で撮像したパターン投影画像群の平均画像B’を演算する。そしてステップS12011において、ステップS12007、S12008で得られた三次元距離画像A、Bを合成して、距離画像を生成する。またステップS12009、10で得られた平均画像A’、B’を合成した輝度画像を生成する。この方法によれば、同時に2枚の画像を撮像できるので、撮像時間の短縮化を図ることができる。
(検査対象領域設定手段)
実際の運用時の検査に際して、ワークに対して検査実行手段50で検査を実行する対象となる領域(検査対象領域)を、予め指定しておく必要がある。このような検査対象領域の設定は、設定段階において検査対象領域設定手段により行われる。検査対象領域設定手段は、上述の通りコントローラ部2側に設けたり、あるいは三次元画像処理プログラムにて実現させることもできる。具体的には、上述の通り図62に示す三次元画像処理プログラムの検査対象領域設定手段に相当する「領域設定」ボタン115を押下すると、図47に示す検査対象領域設定画面120に遷移し、この検査対象領域設定画面120において、検査を行う領域を指定することができる。
このようにして検査対象領域を指定すると、この検査対象領域に対して三次元画像処理装置が画像処理を行い、さらに検査を実行する。すなわち図121のフローチャートに示すように、距離画像に対して検査対象領域を割り当て(ステップS12101)、この距離画像に基づいて階調変換パラメータを設定し(ステップS12102)、この階調変換パラメータに従って階調変換を行い(ステップS12103)、さらに階調変換画像に対して画像処理を行い、所定検査を行う(ステップS12104)。
なお階調変換処理は、上述した検査対象領域設定手段で設定された検査対象領域に対して行われる。すなわちこの例では、検査対象領域設定手段を、階調変換対象領域を指定する階調変換対象領域指定手段と共通としている。ただ、階調変換処理のパラメータを決めるのに用いる領域を、検査対象領域とは独立して設定してもよい。例えば検査対象領域設定手段、あるいはこれとは別個に用意した階調変換パラメータ作成用領域指定手段を用いて、階調変換パラメータ作成用領域を指定する。
(運用時のコントローラ部の動作フロー)
次に、ヘッド部側で得られた距離画像を、運用時にコントローラ部側で処理する手順を、図122のフローチャート、及び図123〜図127のGUIに基づいて説明する。ここで図123〜図126は三次元画像処理プログラムのGUIを示している。図123に示す三次元画像処理プログラムのGUIは初期画面260を示しており、画面の左側にフロー表示領域261を、右側に第三画像表示領域262を、それぞれ設けている。フロー表示領域261においては、三次元画像処理装置で行う各処理の内容を処理ユニット状に繋いだフロー図が表示される。ここでは処理ユニットとして、「撮像」処理ユニット263、「Shapetrax2」処理ユニット264、「位置補正」処理ユニット265、「高さ計測」処理ユニット266がフロー表示領域261に表示されている。また運用前の設定の段階では、各処理ユニットを選択して詳細な設定を行える。また第三画像表示領域262には、処理内容に応じて輝度画像や距離画像、あるいは検査結果等が表示される。図123の例では、ワーク(この例ではIC)を撮像した輝度画像が表示されており、後述するサーチ対象領域SAが緑色の枠状に表示されている。
(撮像ステップ)
まず図122のステップS12201において、距離画像と輝度画像をヘッド部1から取得する。ここでは、ヘッド部側でパターン投影画像を撮像し、距離画像と輝度画像を生成する。図123のGUIの例では、フロー表示領域261に表示される「撮像」処理ユニット263が該当する。
画像データは、先に距離画像をヘッド部からコントローラ部に送信し、次いで輝度画像もコントローラ部に送信する。なお、逆に輝度画像を先に転送した上で距離画像を転送したり、これらの転送を同時に行ってもよい。
(サーチステップ)
さらにステップS12202において、運用時に入力される入力画像に対し、コントローラ部でパターンサーチを行う。すなわち、撮像された輝度画像に含まれるワークの動きに追従するように、検査したい部位を特定する。図123の例では、フロー表示領域261に表示される「Shapetrax2」処理ユニット264がパターンサーチに該当する。ここではワークを撮像した輝度画像(入力画像)に対して、図5の画像サーチ手段64がパターンサーチを行い、位置決めを行う。具体的には、予め設定された検査対象領域が、入力された輝度画像中のどこに含まれるか、位置を特定する。パターンサーチを行うサーチ対象領域SAは、予め設定される。例えば図124の例では、第三画像表示領域に表示される輝度画像上で、サーチ対象領域SAが矩形状に指定されている。
(位置補正ステップ)
次にステップS12203において、パターンサーチの結果を用いて検査対象領域を位置補正する。図123の例では、フロー表示領域261に表示される「位置補正」処理ユニット265が該当する。検査対象領域は、検査対象領域設定画面において予め設定される。図125の例では、第三画像表示領域に表示された距離画像上で、検査対象領域が複数、設定されている。詳細には、図126に示すようにワークであるICの各ピンに対して矩形状の領域が設定されている。位置補正は、例えば正規化相関サーチにより位置ずれ量を算出する方法やパターンサーチの結果に基づく方法等によって行われる。このようにして位置補正により、次段で実行される検査処理の検査対象領域の位置が補正される。
(検査処理ステップ)
最後にステップS12204において、補正された位置にて距離画像を用いて検査を実行する。図123の例では、フロー表示領域261に表示される「高さ計測」処理ユニット266が該当する。また図127の例では、高さ計測を実行している。すなわち、補正された位置の検査対象領域でそれぞれ高さが計測され検査される。例えば平面高さが所定の基準値以内かどうかを判定して、判定結果を出力する。
なお以上の手順では、輝度画像を用いて位置補正を行った上で、距離画像に基づいて検査を行う例を説明した。ただ、本発明はこれに限らず、位置補正を行う画像、検査処理を行う画像を任意に設定できる。例えば上記と逆に、距離画像を用いて位置補正を行った上で、輝度画像を用いて検査処理を実行することもできる。一例として、白地の背景に白色のワークが置かれた場合のように、輝度画像では正確なパターンサーチが困難な例においては、距離画像を使用して高さ情報に基づいたパターンサーチが有効となる。また、検査処理についても、高さ情報に基づく判定処理のみならず、例えばワークに印字された文字列をOCRによって読み取る等、輝度画像を用いた画像処理結果によって判定することもできる。
(高さ情報の出力形式)
計測した三次元の高さ情報はそれぞれX,Y,Zの値を持った三次元ポイントクラウドデータとして求められる。また実際に求められた値を、どのように出力するかについて、三次元ポイントクラウドデータ以外に、例えばZ画像、XY等ピッチZ画像に変換することもできる。
(1:Z画像)
Z画像とは、Z座標のみの高さ画像データである。例えば撮像手段で撮像されたワークの位置の凹凸が重要で、X,Y座標は正確でなくても良いような場合は、X,Y座標は不要なので、Z座標のみのデータであるZ画像を出力すれば足りる。この場合は伝送するデータ量が少なくなり、伝送時間を短縮することができる。また通常の二次元の撮像手段と同じく、画像としてデータを扱えるので、既存の二次元画像用の画像処理装置を用いて画像処理を行うこともできる。
(2:XY等ピッチZ画像)
XY等ピッチZ画像とは、XY座標を高さによらず等ピッチとした高さ画像データである。具体的には、XY座標を等ピッチとした場合の位置におけるZ座標を、周辺のポイントクラウドデータから補間演算してXY等ピッチZ画像を求める。
一般に撮像手段のレンズが対物テレセントリックレンズではない場合は、撮像されたワークの高さ位置(Z座標)により、撮像手段で撮像される位置(X,Y座標)が異なる。このため、撮像素子上で同じ位置に写った物であっても、高さによって実際のXY座標位置は異なることになる。例えば体積のような、立体的な差異を検査したい場合は、カメラに対して近くにワークがあると値が大きくなり、遠くにあると値が小さくなってしまうので不都合となる。そこで、ポイントクラウドデータから、XY均等ピッチのZデータを求めることによって、高さに左右されないXY位置を持ったZ画像を得ることができる。
(3:XYZ(ポイントクラウドデータ))
あるいは、ポイントクラウドデータを三次元情報としてそのまま出力することもできる。例えば、計測した三次元データをそのまま扱いたい場合に用いる。この場合はZ座標のみの場合に比べてデータ量は3倍になるが、生データであるため、三次元CADデータとの立体的な差分を求める等の用途に利用できる。
(等ピッチ画像の生成)
次に、距離画像と輝度画像に加え、画角を補正した等ピッチ画像を作成するデータフロー図を図128に示す。この図に示すように、まずヘッド部で撮像する空間コード化用パターン投光ワーク画像群から、空間コード化法に従い空間コード画像を生成する。一方、位相シフト用パターン投光ワーク画像群から、位相計算に従い位相画像を生成する。そしてこれら空間コード画像、位相画像から、位相拡張計算を行って、拡張位相画像を生成する。また、これら空間コード化用パターン投光ワーク画像群や位相シフト用パターン投光ワーク画像群に対して、フィルタをかける等、共通フィルタ処理を適用することもできる。共通フィルタ処理には、メディアンフィルタ、ガウシアンフィルタ、平均化フィルタ等の二次元フィルタの適用が挙げられる。その一方で、位相シフト用パターン投光ワーク画像群を平均化することで、輝度画像(平均濃淡画像)を生成する。
(均等間隔処理)
以上のようにして、ヘッド部で三次元データと輝度画像を生成した後、さらにZ画像、又は等ピッチZ画像等の距離画像を作成する。まず、距離画像をヘッド部1からコントローラ部2に転送して、位相情報を高さ情報に変換する階調変換を行う。ここでは、位相情報からX画像、Y画像、Z画像をそれぞれ求めた上で、これらXYを均等化してXY平面におけるXY等ピッチZ画像、XY等ピッチZ平均画像を取得する。このような均等間隔処理は、間隔均等化処理設定手段47にて行う。
なお、図128の例では距離画像の生成において位相シフト法と空間コード化法を組み合わせた例を説明したが、空間コード化法を使用しないで位相シフト法のみで距離画像を生成することもできる。空間コード化処理は、図5に示す空間コード化切替手段45によってON/OFFを切り替えることができる。このような例を図129のデータフロー図に示す。この図に示すように、空間コード化法を使用しない分、撮像枚数を削減でき、高速にて距離画像を生成できる。
一方で、XY等ピッチ化機能をOFFして、Z画像を得る際のデータフロー図を図130に示す。この例であれば、階調変換に際してX画像やY画像に分解する必要がないので、その分処理を簡素化できる。
さらに、XYZの座標情報をそのまま出力するポイントクラウドデータを出力する例を、図131に示す。この例では、位相→高さ変換後のX画像、Y画像、Z画像をそのまま出力できるので、軽負荷で出力できる利点が得られる。
(階調変換方法)
次に、三次元画像処理装置の階調変換手段46が、距離画像に基づいて、高階調の距離画像を、低階調の低階調距離画像に自動的に階調変換する手順を説明する。ここでは、複数のワークが搬送されるライン上に設置される検査装置において、逐次入力される距離画像(入力画像)に対して、リアルタイムで低階調距離画像に階調変換する用途といった、複数の入力画像に対して階調変換を行う手順について説明する。この場合の階調変換処理は、大別して、(A)事前に階調変換パラメータを決定しておく方法(静的変換)と、(B)入力画像に応じて階調変換パラメータを決定する方法(動的方法)の2通りが挙げられる。以下、これらについて説明する。
(A:静的変換)
まず、予め階調変換パラメータを決定しておく静的変換について説明する。ここでは、設定時において入力画像や予め登録しておいた登録画像に対して、階調変換を行うための階調変換パラメータを調整する。そして運用時においては、設定時に設定された階調変換パラメータでもって、距離画像の階調変換を行い、階調変換後の低階調距離画像に対して検査を実行する。なお設定時における手順は、上述の図8のフローチャートに基づいて説明した通りである。
(運用時の手順)
階調変換パラメータが調整されると、この階調変換パラメータでもって運用時に入力される入力画像に対して、階調変換が行われる。ここで、運用時における静的変換の手順を、図132のフローチャートに基づいて説明する。まずステップS13201において、距離画像を取得する。ここでは、距離画像生成手段32が生成した距離画像を、コントローラ部2が取り込む。次にステップS13202において、入力された距離画像の階調変換処理を行う。ここでは、設定時に調整された階調変換パラメータに従って階調変換処理が実行され、距離画像の階調数すなわちダイナミックレンジを削減した低階調距離画像を生成する。最後に、ステップS13203において検査実行手段50により検査処理を実行する。この方法によれば、予め階調変換パラメータを設定しておくことにより、運用時は階調変換パラメータを演算する必要がなく、処理を軽負荷とできる。
(B:動的変換)
次に、階調変換時の階調変換パラメータを、入力画像に基づいて算出する動的変換について説明する。まず設定時の手順については、上述の通り図8のフローチャートに従って、行われる。具体的には、ステップS81において、入力画像又は登録画像を取得し、次にステップS82において、階調変換方法を選択させる。ここでは、ユーザが動的変換を選択したものとする。そしてステップS83において、階調変換パラメータを調整する。ここでは、運用時において入力される入力画像に対して、どのような条件で階調変換パラメータを演算、あるいは調整するかを、ステップS81で取得された画像に基づいて設定する。
このようにして階調変換パラメータの演算条件が設定されると、運用時においては、設定された階調変換パラメータ演算条件に従って、入力画像に応じた階調変換パラメータが個別に演算される。次に、動的変換によって距離画像を低階調距離画像に階調変換する運用時の手順を、図133のフローチャートに基づいて説明する。まずステップS13301において、距離画像を取得する。ここでも上述したステップS13201と同様、距離画像生成手段32が生成した距離画像を、コントローラ部2が取り込む。次にステップS13302において、入力画像である距離画像に基づいて、階調変換パラメータを決定する。階調変換パラメータの調整方法については、上述した方法が利用できる。さらにステップS13303において、階調変換を実行する。最後に、ステップS13304において検査処理を実行する。この方法によれば、入力画像に従って階調変換パラメータを変更できるので、異なるワークに対しても柔軟に階調変換を行って正確な検査が可能となる。例えば、高さにばらつきのあるワーク表面の検査も、精度を低下させることなく行うことができる。
ここで、動的変換の一例として、階調変換パラメータの調整によって、階調変換後の低階調距離画像を最適に作成する方法について、図134に基づいて説明する。ここでは、一の階調変換パラメータセットを動的に設定する方法と、予め複数の階調変換パラメータセットを準備しておき、動的に階調変換パラメータセットを選択する方法の二通りがある。
(1A一の階調変換パラメータセットを設定する方法)
まず、一の階調変換パラメータセットを動的に設定する方法について説明する。この方法では、入力画像である複数の距離画像の、予め定められた領域の画像情報に基づいて、階調変換に使用する階調変換パラメータの値を調整し、この調整された階調変換パラメータを用いて、階調変換手段46が距離画像の階調変換処理を実行する。ここでは、16階調の距離画像(階調変換前画像)を、8階調の低階調距離画像(階調変換後画像)に階調変換する例について説明する。また、検査対象のワークは、図134の斜視図に示すように、ワーク毎の計測面全体が上下にずれるものであり、その範囲は5mmである。また計測面全体の厚さや歪みを含めた高さ方向のレンジは0.5mmとする。このように表面高さが異なる各ワークに対して、それぞれの表面に傷を有していないかどうかを、画像処理によって検査する例を考える。距離画像を利用すると共に、距離画像を二次元の濃淡画像(低階調距離画像)に階調変換することで、既存の二次元画像用の画像処理装置でもって検査可能とできる。
まず、予めワーク上の検査したい領域を、検査対象領域設定手段で検査対象領域として指定しておく。なお、検査対象領域を、入力画像である距離画像の一部を指定する他、距離画像の全体とすることもできる。この場合は、検査対象領域を指定する作業を省略してもよい。
最初に、検査対象領域の平均距離を求める。次に、検査対象領域の最大距離と最小距離の差(距離レンジ)を求める。さらに、距離レンジを1.2倍した数値を変換後画像の距離レンジとする。例えば、図134のワークの分布では、距離レンジが0.5mmであるとすると、これを1.2倍した0.6mmが階調変換後画像の距離レンジとして設定される。よって、平均距離を中心に±0.3mmの範囲が計測レンジとなる。
さらにまた、階調変換後画像の距離レンジである0.6mm(平均距離を中心に±0.3mm)の範囲が、256階調となるように、入力画像である距離画像に対するスパンを求める。なお、スパンは予め決めた定数とすることもできる。また、距離画像に対して、平均距離が−0.3mm以下のものは0とし、一方平均距離が+0.3mm以上のものは255とすることもできる。
このようにして、入力される複数の距離画像から、検査に必要な範囲を定めて、この範囲の高さ情報が階調変換後の低階調距離画像においても維持されるように、適切に階調変換パラメータを設定できる。この結果、高さ方向に分散する各ワークの傷の有無や位置等を、既存の画像処理装置を用いて適切に検査することが可能となる。
(1B 予め複数の階調変換パラメータセットを準備しておく方法)
上記の実施例では、取得した距離画像の高さ情報を利用して、傷の検出に必要な高さ情報を損失しないように適切に階調変換パラメータセットを求める方法について説明した。一方で、予め複数の階調変換パラメータセットを準備しておく方法についても、以下説明する。この方法では、入力画像である複数の距離画像に対して、予め設定された複数の階調変換パラメータで階調変換された階調変換後画像をそれぞれ作成し、距離画像の予め指定された検査対象領域の画像情報に基づいて、検査に使用する階調変換後画像を選択する。
このような具体例を図135の模式図、及び図136のフローチャートに基づいて説明する。この例でも、上述した図134と同様に、ワーク毎の計測面全体が5mmの範囲で上下にずれる場合を考える。このようなワークに対して、変換中心を0.5mm毎に変化させて階調変換した階調変換後画像を、9枚作成する。そして得られた各階調変換後画像を表示手段上に、好ましくは並べて表示させ、入力画像である距離画像の平均値に一番近い変換中心による変換画像を、ユーザに選択させる。そして、ユーザにより選択された画像に適用された階調変換パラメータセットを設定する。具体的な手順は、図136に示す通り、まずワークの距離画像を生成した上で(ステップS13601)、上述の通り階調変換パラメータを変化させながら階調変換処理を複数回行う(ステップS13602)。そして得られた階調変換画像である簡易的な低階調距離画像中から、ユーザに所望の画像を選択させ(ステップS13603)、必要に応じて階調変換パラメータを調整し、得られた低階調距離画像に対して検査を行う(ステップS13604)。
(静的変換、動的変換の詳細)
次に、これら静的変換、動的変換の詳細について説明する。まず、静的変換について説明する。静的変換には、距離画像を低階調距離画像に階調変換する際に、残すべき高さ情報の基準を補正するため具体的な方法として、
(A1)指定した高さ(距離)で補正する一点指定と、
(A2)平面で補正する三点指定が利用できる。
(A1:一点指定)
一点指定は、ユーザが指定した点又は領域の高さ(距離)を基準として、距離画像を低階調距離画像に階調変換する方法である。基準高さは、例えば距離画像の高さ情報の内、低階調距離画像に階調変換される高さ範囲(距離レンジ)の中間の高さとする。あるいは、距離レンジの上限(階調変換される最も高い位置)や下限(階調変換される最も低い位置)とすることもできる。一点指定の具体的な手順は、上記図66〜図78に基づいて説明した通りである。
(A2:三点指定)
三点指定とは、ユーザが指定した三点から求められる平面を基準面として、距離画像を低階調距離画像に階調変換する方法である。基準面も、上述した一点指定の基準高さと同様、例えば距離画像の高さ情報の内、低階調距離画像に階調変換される高さ範囲(距離レンジ)の中間の高さとする。あるいは、距離レンジの上限(階調変換される最も高い位置)や下限(階調変換される最も低い位置)とすることもできる。三点指定の具体例は、上記図81〜図85のGUI画面に基づいて説明した通りである。
ここで、静的変換による基準面の指定が有効な例を、図137に基づいて説明する。この例では、同じ高さのワークWK7が、ベルトコンベアBCによって同一面上を搬送されている。この場合は、ワークWK7の高さの変動が殆どないため、ワークに応じて基準面を変化させる動的変換は不要であり、静的変換で対応できる。特に静的変換は動的変換よりも処理が高速であり、静的変換の利点を享受できる。
また図138Aは、高さの変動自体を抑制したいワークの例である。この例では、ベルトコンベアBCによって搬送されるワークWK10であるボトルのキャップに、「浮き」がある場合を異常として検出する検査処理を対象としている。この場合において、静的変換を採用することで、図138Bに示す低階調距離画像のように高さの変動分を検知できる。逆に動的変換を採用すると、変動分が補正されてしまう結果、異常の検出ができなくなる。よってこのような用途において、静的変換が好適に利用できる
(B:動的変換の具体例)
以上は、設定段階で予め階調変換条件を指定して、運用時には指定された条件で階調変換を行う静的変換について説明した。次に、検査対象の入力画像に応じて階調変換条件を調整する動的変換の具体例について、説明する。まず動的変換には、距離画像を低階調距離画像に階調変換する際に、残すべき高さ情報の基準を補正するため具体的な方法として、
(B1)入力画像に対して指定された平均抽出領域内の平均高さ(平均距離)を平均基準高さとして階調変換する平均高さ基準、
(B2)入力画像の指定領域内の推定平面を生成し、これを基準面として階調変換する平面基準、
(B3)入力画像から高周波成分を除いた自由曲面を生成し、これを基準面として階調変換する自由曲面基準
が含まれる。
平均基準高さを規定するための平均抽出領域は、運用に先立って予め設定される(上述した図8のステップS83)。図8のステップS83において、平均抽出領域を指定する手順の一例については、上記図88〜図92のGUIに基づいて説明した通りである。一方、運用時においては、図133で説明した手順で動的変換が行われる。例えばライン上を搬送されるワークを撮像して距離画像を生成し(ステップS13301)、上記で設定された平均抽出領域の平均高さを演算し(ステップS13302)、これに基づいて階調変換を実行して低階調距離画像を生成し(ステップS13303)、得られた低階調距離画像に対して検査を行う(ステップS13304)。この方法であれば、ワークの高さ方向にばらつきがある場合でも、ワーク毎に階調変換の基準面を毎回再設定できるため、ワークの高さ方向のばらつきによらず、正確な検査が実現できる。
次に、平面基準においても、上述した平均高さ基準と同様、基準面を決定するための基準面推定領域は、運用に先立って予め設定される(上述した図8のステップS83)。図8のステップS83において、基準面推定領域を指定する手順の一例については、上記図88、図92〜図95のGUIに基づいて説明した通りである。運用時においては、図133で説明した手順で動的変換が行われる。例えばライン上を搬送されるワークを撮像して距離画像を生成し(ステップS13301)、上記で設定された基準面推定領域を抽出して、推定面を演算し(ステップS13302)、得られた推定面を基準として階調変換を実行して低階調距離画像を生成し(ステップS13303)、得られた低階調距離画像に対して検査を行う(ステップS13304)。この方法であれば、ワークの表面に傾き等がある場合でも、これをキャンセルしてワークの傾きによらず、正確な検査が実現できる。
最後に、自由曲面基準の具体的な設定方法については、図126〜図32のGUIに基づいて説明した通りである。自由曲面基準においても、上述した平均高さ基準等と同様、基準面を決定するための必要な条件は運用に先立って予め設定される(上述した図8のステップS83)。また運用時においては、図133で説明した手順で動的変換が行われる。例えばライン上を搬送されるワークを撮像して距離画像を生成し(ステップS13301)、上記で設定された自由曲面対象領域に対して、自由曲面を演算し(ステップS13302)、得られた自由曲面を基準として階調変換を実行して低階調距離画像を生成し(ステップS13303)、得られた低階調距離画像に対して検査を行う(ステップS13304)。この方法であれば、曲面状のワークの表面検査等、従来の方法では正確な検査が困難であった作業も、高精度に行える利点が得られる。
ここで、動的変換による基準面の指定が有効な例を、図139に基づいて説明する。この例では、高さの異なるワークWK11が、ベルトコンベアBCによって同一面上を搬送されている。この場合は、ワークWK11の高さが個々に異なるため、平均高さ基準等を利用し、個体毎の高さに応じて基準面を変更し階調変換することで、ワークの高さに変動があっても最適な階調変換が可能となる。
また図140は、平面に微小な傾斜面と打痕のあるワークWK12の例を示している。この例では、打痕DEに起因してワークWK12の表面に微小な傾斜面が存在しているため、傾きによって打痕の検出精度に影響がでる虞がある。そこで、平面基準等を利用し、ワーク個体毎に平面を動的に求めて基準面として階調変換することで、僅かな窪みや打痕の検出といった高精度な検査が可能となる。
さらに図141は、半径の異なる曲面状のワークWK13の例を示している。この例でも、自由曲面基準等を利用し、ワーク毎に曲面を求め、これを基準面として階調変換を行うことで、個体毎の形状のばらつきの影響を軽減した検査が可能となる。
(階調変換パラメータの自動調整)
以上、階調変換パラメータを、階調変換後の画像イメージに基づいて手動で設定する手順について説明した。一方、階調変換パラメータを手動で設定する場合に、最初に設定した階調変換パラメータで階調変換した場合、ワークや環境の変化等によって、検査に適した画像が得られない場合がある。このような場合には、ユーザが画像を参照して微調整することなく、階調変換後のデータを用いて階調変換パラメータを補正し、再度変換を行うことにより検査に適した画像変換を行うこともできる。この方法では、階調変換の初期設定を行った上で、任意の階調変換パラメータを初期値としてまず階調変換を行い、その後、階調変換パラメータの調整を行う。
例えば階調変換条件自動設定手段を、階調変換条件自動設定手段と、階調変換条件手動設定手段として機能させることができる。すなわち、階調変換条件自動設定手段で、階調変換手段が距離画像を低階調距離画像に階調変換する際の簡易的な階調変換条件を設定する。また、階調変換条件自動設定手段で設定された簡易階調変換条件に基づき、階調変換された簡易低階調距離画像を表示手段に表示させた状態で、階調変換条件手動設定手段が、階調変換条件の手動調整を受け付ける。これにより、ユーザに対していきなり階調変換条件の設定を促すのでなく、暫定的な簡易階調変換条件を自動的に設定して階調変換を行った上で、得られた一以上の簡易低階調距離画像を参照しながら、所望の階調変換条件に設定できるため、ユーザが階調変換パラメータの意味を習熟していない場合や設定に不慣れな場合でも、ある程度自動化してこのような設定作業を行い易くすることができる。
具体的な手順を、図142のフローチャートに基づいて説明する。まずステップS14201において、距離画像の作成処理を実行する。次にステップS14202において、階調変換パラメータの初期値を用いて、初期の階調変換処理を行う。さらにステップS14203において、得られた階調変換画像が適切かどうかを判定し、適切でない場合はステップS14204において再度、階調変換パラメータの調整を行った後、ステップS14202に戻って処理を繰り返す。一方、ステップS14203において適切な階調変換画像が得られていると判定された場合は、ステップS14205に進み、所定の検査を実行する。
なお、以上の方法ではステップS14203において階調変換パラメータが適切かどうかの判定を行っているが、この手順を省略してもよい、この場合の手順を、図143に示す。各手順は上述した図142の例とほぼ同じであり、ステップS14301において、距離画像の作成処理を実行し、次にステップS14302において、初期の階調変換処理を行う。そしてステップS14303において階調変換パラメータの調整を行った後、ステップS14304において所定の検査を行う。
初期の階調変換方法としては、例えば入力画像に変換関数f(x,y,z)にかける方法、入力画像にシフト,スパンをかけ、その結果をn階調に圧縮する方法、又は任意の平面を基準平面として、入力画像と基準平面との差分をとり、シフト,スパンをかけ、その結果をn階調に圧縮する方法、あるいは入力画像と基準画像との差分をとり、シフト,スパンをかけ、その結果をn階調に圧縮する方法等が挙げられる。
次に、階調変換後の階調変換パラメータを自動調整する具体例について説明する。階調変換パラメータの自動調整方法には、(C1)変換後の距離画像データのヒストグラムの中央値を用いる方法、(C2)ヒストグラムの最大値、最小値を用いる方法、(C3)C1とC2の組み合わせ、等が考えられる。
(C1:ヒストグラムの中央値を用いる方法)
まず、ヒストグラムの中央値を用いる方法について、図144のフローチャートに基づいて説明する。最初に、ステップS14401において変換後の距離画像データのヒストグラムを計算する。次にステップS14402において、ヒストグラムの中央値を求める。そしてステップS14403において、中央値が予め定めた値になるよう、階調変換パラメータを変更する。ここで変更された階調変換パラメータを用いて、再度、階調変換処理を実行する。なお、中央の前後のn個を含めた2n+1の平均値を中央値としても良い。また、最大値,最小値はそれぞれ大きい方からn個,小さい方からm個をそれぞれ取り除いた後の中央値としてもよい。
(C2:ヒストグラムの最大値、最小値を用いる方法)
まず、変換後の距離画像データのヒストグラムを計算する。次にヒストグラムの最大値,最小値を求め、最大値−最小値の幅が予め定めた値になるよう、階調変換パラメータを変更する。そして変更した階調変換パラメータで再度、階調変換処理を実行する。ここで、最大値,最小値は、それぞれ大きい方からn個,小さい方からm個のそれぞれ平均値としてもよい。または最大値,最小値は、それぞれ大きい方からn個,小さい方からm個のそれぞれ取り除いた後の最大値、最小値とすることもできる。
(C3:C1とC2の組み合わせ)
上記のC1とC2を組み合わせてもよい。すなわち、ヒストグラムの計算後、その中央値と最大値−最小値の幅に基づいて、階調変換パラメータを変更して、再度階調変換する。
以上の方法では、ヒストグラムに予めローパスフィルタを適用することもできる。また、変換後の距離画像に予めローパスフィルタを適用した上で、ヒストグラムを求めても良い。
このような階調変換によって、高さ情報を含む階調数の高い距離画像を、低階調の低階調距離画像に変換できる。この低階調距離画像は二次元の画像として処理できるので、既存の二次元画像に対応した画像処理装置でも、低階調距離画像を扱うことが可能となる。例えば傷の有無を検査するためワークを撮像した距離画像に含まれる各画素の高さ情報を、濃淡値として16進数の2進数で表現する。ここで、距離画像と基準距離画像の差分を算出すると、ワークの表面に現れる浅くて小さな傷の欠陥情報は、下位8階調に集約される。このため、階調変換手段により、例えば上位8階調を削減することで、検出精度の低下を防ぎつつ、差分画像の情報量を大きく圧縮することができる。このように、階調変換手段が、差分画像の各画素の濃淡値を階調表現したときの階調のうち上位半分の階調を減らすことにより、検出精度の低下を防ぎつつ、差分画像の情報量を大きく圧縮することができる。
(階調変換処理の部分実行)
さらに階調変換処理は、距離画像のすべてに対して行うのでなく、一部においてのみ行うことができる。具体的には、階調変換手段は、距離画像の内で、指定された検査対象領域に対してのみ、階調変換処理を実行する。これにより、階調変換処理を軽減して、処理の負荷軽減、高速化が図られる。一例として、図145Aに示すような、径の異なる円柱が三重に重なった形状のワークWK14を用いて、高さ検査処理(第一検査処理)と画像検査処理(第二検査処理)を組み合わせた複数の検査処理を行う場合を考える。ここでは、高さ検査処理として、このワークWK14の円柱状の各面の高さを測定し、また画像検査処理として、ワークWK14の上から二段までの円柱状の部分で欠けや割れの検出を行う外観検査を行う。検査処理の選択は、検査処理選択手段で行う。さらに検査処理選択手段で選択された検査処理に対する具体的な設定は、検査処理設定手段で行う。
(検査処理選択手段)
検査処理選択手段は、距離画像に対して、検査実行手段で実行される検査処理を、複数の選択するための手段である。ここでは、図44、図56等に示すように、初期画面260から、処理ユニットの追加を行う際に、検査処理を選択する。具体的には、処理ユニットの「追加」のサブメニューから「計測」処理を選択して表示される、検査処理の一覧中から、所望の検査処理を選択する。この例では、「エリア」、「パターンサーチ」、「Shapetrax2」、「エッジ位置」、「エッジ幅」、「エッジピッチ」、「エッジ角度」、「ペアエッジ」、「傷」、「ブロブ」、「濃淡ブロブ」、「トレンドエッジ位置」、「トレンドエッジ幅」、「トレンドエッジ欠陥」、「濃淡検査」、「色検査」、「OCR」、「2Dコードリーダ」、「1Dコードリーダ」、「高さ計測」の中から、所望の検査処理を選択する。
(検査処理設定手段)
一方、検査処理設定手段は、検査処理選択手段で選択された各検査処理について、その詳細を設定する。ここでは、図46、図63、図78等に示すように、設定項目ボタン領域112に配置された各ボタンから、各設定項目を個別に設定するよう構成している。この例では、具体的な設定項目が設定項目ボタンとして並べられており、例えば「画像登録」ボタン113、「画像設定」ボタン114、「領域設定」ボタン115、「高さ抽出」ボタン116、「前処理」ボタン117、「検出条件」ボタン118、「詳細設定」ボタン119、「判定条件」ボタン、「表示設定」ボタン、「保存」ボタン等が含まれる。このように設定項目ボタン領域112は、検査処理設定手段として機能する。
(高さ検査処理)
図145Aのようなワーク対し、得られた距離画像の例を図145Bに示す。この距離画像は、階調変換前の16階調で表現している。このような距離画像に対し、高さ計測(高さ検査処理)を行う場合は、階調変換を行うことなく、16階調の高い精度のままの高さ情報を利用することで、高精度な検査が実現できる。具体的には、図145Cに示すように、ワークの各面の高さを計測するために、検査対象領域をワークの3つの面上にそれぞれ設定し、各検査対象領域の高さを16階調のまま計測する。
(画像検査処理)
一方、検査処理の内で高さ情報を用いない計測(画像検査処理)を行う場合は、高階調の情報は不要で、より低階調の距離画像で処理を行う方が、負荷が少ない。このため、高階調の距離画像に階調変換を行って、低階調の距離画像を得た上で処理を行う。ここで、距離画像の全体を低階調距離画像に変換する必要はなく、あくまで画像検査処理を行う対象のみに限って階調変換を行えば足りる。すなわち、階調変換を行う領域とは、一以上設定された検査対象領域の内で、高さ情報を用いない画像検査処理用に設定された検査対象領域を対象とする。図145Dに示す例では、図145Bと同様、階調変換前の高階調距離画像に対して、画像検査処理用の検査対象領域を設定する。この例では、ワークの上から二段までで欠け等を検出するために、二段目の円柱状を囲むように検査対象領域を設定する。いいかえると、三段目の円柱状は外観検査対象外なので、この部分を検査対象領域から除外するように設定する。そして、この画像処理検査用対象領域に対して、階調変換を行う。この結果得られた低階調距離画像を、図145Eに示す。この図に示す階調変換後の低階調距離画像は、8階調で表現されており、高階調距離画像に比べ高さ情報は幾分失われているものの、欠けの有無等を検出する外観検査用途には十分な精度が維持されているので、画像検査処理に支障はない。一方で、階調変換が必要な領域は、図145B等に比べて大幅に削減されているので、処理の簡素化、高速化に寄与する。
このようにして、検査処理に応じて階調変換の有無が選択される。例えば図110のフロー表示領域261に表示される検査処理の内、「高さ計測」処理ユニット及び第二「高さ計測」処理ユニットにおいては、階調変換を行うことなく距離画像が有する16階調の高さ情報を利用し、高精度な高さ計測が実現される。一方で、それ以外の検査処理、例えば「数値演算」処理ユニットや「エリア」処理ユニット、「ブロブ」処理ユニット267においては、階調変換した8階調の低階調濃淡画像が使用される。なお、図示しないが輝度画像に対して検査処理(例えば、カラーの輝度画像に対する色検査)を行う場合は、高さ情報がそもそも不要であるため、当然階調変換も不要である。
(階調変換条件設定手段43の表示)
また、このような階調変換処理が必要な画像検査処理に関しては、適切な階調変換を行うための階調変換条件を、階調変換条件設定手段43から設定する。この際、階調変換条件設定手段43は、階調変換処理が必要な場合にのみ設定可能とし、逆に階調変換処理が不要な検査処理、例えば高さ検査処理においては、階調変換条件を設定不能とすることで、ユーザは余計な設定作業に惑わされることなく、必要な項目のみをスムーズに設定することが可能となる。そこで、本実施の形態においては、高さ検査処理以外の、画像の高さ情報を必要としない検査処理の設定に際しては、距離画像の階調変換を行うための階調変換パラメータを設定する階調変換条件設定手段43を表示させる一方で、高さ検査処理を設定する際には、階調変換条件設定手段43を表示させないようにしている。
具体的な設定時の手順を、図146のフローチャートに基づいて説明する。まずステップS14601において、検査処理を選択する。ここでは検査処理選択手段である「計測」メニューで、検査実行手段で実行される検査処理を選択する。次にステップS14602においては、ステップS14601で選択した検査処理が、階調変換を要するものか否かを判定し、階調変換を要する検査処理である場合はステップS14603に進み、階調変換を有効にすると共に、設定項目に階調変換設定手段を表示させる。
例えば図145Aのワークに対して「エリア」処理ユニットで画像検査処理を行う際には、図147に示すように、検査処理設定手段である設定項目ボタン領域112に、階調変換条件設定手段43である「高さ抽出」ボタン116を表示させている。「高さ抽出」ボタン116を押下すると、図148に示すように、高さ抽出設定画面が表示される。ユーザはこの画面から、階調変換処理に必要な条件を各々設定できる。
なお図148の例においては、右側の操作領域で設定された階調変換条件に従い、階調変換された低階調距離画像が、画像表示領域上で表示されている。これによってユーザは、現在の階調変換条件で所望の検査結果が得られるかどうかを視覚的に確認でき、階調変換条件の調整作業を容易に行える利点が得られる。特に図148の例では、検査対象領域を円形に設定して、ワークの2番目の円柱状を囲むように配置している。また検出方法を動的変換(リアルタイム抽出)とし、計算方法として平面基準を設定することにより、ワークの中央の天面と、その外周面の2面が検出されて、これらを基準平面として、ワークの表面にある傷や窪みを検出している。また、階調変換条件に従い検出された基準平面のパラメータ表示は、コンソール操作による切り換えて表示させることも可能である。
さらに図148の例では、画像表示領域上に表示されるワークの全体を階調変換した低階調距離画像を表示させるのでなく、設定された検査対象領域の領域内でのみ、階調変換された低階調距離画像のイメージを表示させている。言い換えると、検査対象領域以外の画像は、元の距離画像をそのまま表示させている。これにより、階調変換が入力画像の全体で行われているのでなく、その一部である検査対象領域内でのみ実行されていることを、ユーザに対して視覚的に示すことができる。このようにして階調変換条件の設定が終了すると、ステップS14604に進む。
一方、階調変換を要しない検査処理の場合は、ステップS14603を経ることなくステップS14604にジャンプする。この場合は、検査処理の設定画面において階調変換条件設定手段は表示されない。例えば、「高さ計測」処理ユニットで高さ検査処理を行う場合は、図46等に示すように、検査処理設定手段である設定項目ボタン領域112には、階調変換条件設定手段43である「高さ抽出」ボタンが表示されない。これによってユーザは、高さ検査処理に不要な階調変換に関する条件設定を行う必要がないことを認識できる。あるいは、この検査処理に関しては階調変換条件の設定を行うことができないようにすることで、無用な設定に起因する混乱を回避することができる。
そしてステップS14604において、検査処理の設定を行う。最後にステップS14605において、すべての検査処理の設定が終了したか否かを判定し、未だの場合はステップS14601に戻って検査処理の選択から繰り返し、終了した場合は、処理を完了する。
一方、運転時の手順を、図149のフローチャートに基づいて説明する。まずステップS14901において、入力画像として距離画像を入力する。次にステップS14902において、初期化を行う。ここではnに1を設定する。さらにステップS14903において、n番目の検査処理を実行する。さらにステップS14904において、n<N(Nは設定された検査処理の数)か否かを判定し、YESの場合はステップS14905においてnを1インクリメントした上で、ステップS14903に戻り、次の検査処理を実行する処理を繰り返す。一方、n<Nでない場合は、すべての検査処理を終了したとして、処理を完了する。このようにして、すべての検査処理を順次実行していく。
ここでステップS14903の検査処理の実行について詳述すると、まず検査処理で階調変換を要する場合は、図150のフローチャートに示すように、先にステップS15001において、距離画像の内、検査対象領域に対して、階調変換する。その上で、ステップS15002にて、階調変換後の低階調距離画像に対して、検査処理を実行する。一方、階調変換を行わない検査処理の場合は、図151のフローチャートに示すように、階調変換を経ることなく、高階調の距離画像のまま、検査対象領域内の検査処理を実行する(ステップS15101)。
(画像選択の非表示機能)
また、設定時においては、検査処理の種別に応じて、検査処理の設定を行う対象となる画像の選択に制限をかけることもできる。すなわち、検査処理選択手段で選択された検査処理が、距離画像又は輝度画像のいずれに対しても実行可能な場合は、これら距離画像又は輝度画像を登録画像として呼び出すことが可能である。その一方で、検査処理が距離画像に対しては実行可能であるものの、輝度画像に対して実行不可能なものがある。例えば高さ計測処理は、高精度な高さ情報を有する距離画像に対して実行されるものである。高さ情報を有しない通常の輝度画像に対しては、行うことができない。そこで、高さ計測処理のような、高さ情報を有する画像、すなわち距離画像に対してのみ実行可能な検査処理は、設定時に登録画像を呼び出す時点において、距離画像のみを選択可能とし、逆に輝度画像については選択できないようにする。これによって、誤って輝度画像に対して高さ計測処理に関する設定を行うような、本来不可能な設定作業を禁止又は排除し、設定の無駄を省き、ユーザの操作性を向上させることができる。
以下、検査処理条件を設定する手順を、図152のフローチャートに基づいて説明する。まず、ステップS15201において、検査処理を選択する。次にステップS15202において、ステップS15201で選択した検査処理が、距離画像と輝度画像のいずれかを指定可能な検査処理か、あるいは距離画像のみを指定可能な検査処理かを判定する。ここで距離画像と輝度画像のいずれかを指定可能な検査処理の場合は、ステップS15203に進み、距離画像又は輝度画像のいずれかを選択する。
例えば、図61に示すように、検査処理として「エリア」処理ユニットを選択した場合を考える。この場合は、距離画像、輝度画像のいずれでも指定可能である。そこで、「エリア」処理ユニットでの検査処理設定項目として、例えば図62において「画像設定」ボタン114を押下して、図153に示す画像設定画面380を表示させる場合は、操作欄122から画像を選択できる。ここでは、画像選択欄382に設けられた「表示画像」選択欄124で、第二画像表示領域121に表示される画像を選択できる。また画像設定欄384では、入力画像と登録画像を選択できる。この画像設定欄384から、入力画像を画像変数で指定できる。ここでは、「入力画像」選択欄386を選択すると、図154の画像変数選択画面390が表示され、選択可能な画像の一覧が表示される。画像変数選択画面390では、三次元画像処理装置に接続されている複数の撮像手段(カメラ)で撮像された画像のいずれかを選択できる。ここでは、撮像手段毎に異なる画像変数が付与されており、撮像手段と画像変数とが関連付けられている。例えばカメラ1で撮像した距離画像には画像変数「&Cam1Img」が、カメラ2の距離画像には画像変数「&Cam2Img」が、カメラ3の距離画像には画像変数「&Cam3Img」が、カメラ4の距離画像には画像変数「&Cam4Img」が、それぞれ付与されている。さらにカメラ1で撮像した輝度画像には画像変数「&Cam1GrayImg」が付与されている。ユーザは画像変数選択画面390中から、所望の画像を選択する。このように、「エリア」処理ユニットでは距離画像と輝度画像のいずれでも指定可能であるため、距離画像のみならず輝度画像も、選択肢の候補に含めて表示させている。
さらに必要に応じて、画像変数選択画面390で一覧表示される画像変数を、ソートして表示することもでき、ユーザが所望の画像を選択し易いようにしている。
一方、検査処理が距離画像のみを指定可能な処理の場合は、ステップS15204に進み、距離画像を選択する。すなわち、輝度画像の選択ができないようにする。例えば、図45に示すように、検査処理として「高さ計測」処理ユニット266を選択した場合は、距離画像のみを選択できる。よって、図46に示すように、「高さ計測」処理ユニットにおける検査処理設定項目として、「画像設定」ボタン114を選択すると、同様に画像設定画面380が表示され、画像を選択できるようになる。ここで、同様に「入力画像」選択欄386を選択すると、図155の画像変数選択画面390が表示され、選択可能な画像の一覧が表示される。この画像変数選択画面390では、図154と異なり、輝度画像が選択肢に表示されず、距離画像のみが選択肢として表示される。この構成によって、ユーザは高さ計測に際して、誤って高さ情報を有さない輝度画像を選択する事態を回避でき、混乱の少ない操作環境が提供される。
このようにして、画像が選択されると、ステップS15205に進み、選択された画像に対して、検査処理条件を設定する。このように検査処理毎に、距離画像と輝度画像のいずれかを指定可能な検査処理か、あるいは距離画像のみを指定可能な検査処理かが決まっていることを利用して、検査処理毎に、選択可能な画像の種別を規定することで、設定ミスを回避し、ユーザの利便性に資する。
(検査処理の非表示機能)
以上は、先に検査処理をユーザに選択させた上で、選択された検査処理の種別に応じて、検査処理の設定を行う対象となる画像の選択に際して、選択可能な画像に制限をかける例について説明した。逆に、先に画像を選択させた上で、この画像に対して実行可能な検査処理の種別に制限をかけることもできる。すなわち、まず画像選択手段で距離画像又は輝度画像を選択させ、次に検査処理選択手段でもって、検査実行手段で実行した検査処理を一以上選択する際に、選択された画像が距離画像か輝度画像かに応じて、各画像に対して実行可能な検査処理のみを選択可能とする。この構成であれば、選択された画像に対して、誤って設定不可能な検査処理を選択したり、この検査処理に関する検査処理条件を設定してしまう事態を回避できる。
以下、この方法で検査処理条件を設定する手順を、図156のフローチャートに基づいて説明する。まず、ステップS15601において、画像を選択する。ここでは、距離画像か輝度画像かを選択する。次にステップS15602において、ステップS15601で選択した画像が、距離画像と輝度画像のいずれかであるかを判定する。距離画像の場合はステップS15603に進み、距離画像に対して実行可能な検査処理を、検査処理選択手段でもってユーザに選択させる。一方輝度画像の場合はステップS15604に進み、輝度画像に対して実行可能な検査処理を、検査処理選択手段でもってユーザに選択させる。このようにして検査処理が選択されると、ステップS15605に進み、選択された検査処理に対する検査処理条件を検査処理条件設定手段から設定する。
例えば、図157に示すように、ワークに対して輝度画像と距離画像を取得する場合を考える。上述の通り、画像登録を行うと輝度画像と距離画像とが同時に登録される。ユーザは、この内いずれかの画像を選択して、次に選択した画像に対する検査処理を選択し、さらにその検査処理条件の設定を行う。例えば輝度画像を選択した場合は、図158に示すように、輝度画像に対して行う検査処理に対応するツールを追加する。ここでは、上述した図44、図56等と同様に、画像を選択して表示されるサブメニューから追加を選択すると、輝度画像に対して実行可能な検査処理の一覧が表示される。例えば「計測」処理として、「エリア」処理ユニットや「傷」処理ユニット、「ブロブ」処理ユニット267が選択肢として表示される。この段階で、輝度画像に対して実行できない検査処理、例えば「高さ計測」処理ユニットは表示されない。これによって、ユーザが誤って輝度画像に設定できない検査処理を選択してしまう事態を回避できる。なお、すべての計測処理を一覧表示させつつ、グレーアウトさせる等して選択不能とすることもできる。検査処理が選択されると、処理ユニットが確定され、次にこの検査処理に対して必要な検査処理条件の設定を検査処理条件設定手段から行う。
また、距離画像を選択した場合は、図159に示すように距離画像に対して実行可能な検査処理に対応するツールを追加する。ここでも、距離画像を選択して表示されるサブメニューから追加を選択すると、輝度画像に対して実行可能な検査処理の一覧が表示される。例えば「計測」処理として、「エリア」処理ユニットや「傷」処理ユニット、「ブロブ」処理ユニット267に加えて、「高さ計測」処理ユニットも選択肢として表示される。ユーザは所望の検査処理を選択すると、処理ユニットが確定されて、この検査処理に対して必要な検査処理条件の設定を検査処理条件設定手段から行う。
このように、画像に対して検査処理ツールを紐付けることで、選択不可能な画像と検査処理との組み合わせを物理的に排除し、ユーザによる設定ミスを容易に回避できる。