以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
図1は、外観検査装置1の概略を示す概略図である。外観検査装置1は、コントローラ2と、プログラマブルロジックコントローラ(PLC)3と、カメラ4と、照明装置5(フロントライト51、バックライト52)と、マウス9と、モニタ10と、プログラム作成支援装置11とを有している。PLC3によって制御されるベルトコンベヤなどの搬送装置7によって検査対象物8が搬送され、フロントライト51やバックライト52などの照明装置によって照明された検査対象物8がカメラ4によって撮像される。コントローラ2は、たとえば、PLC3からの命令にしたがって、検査対象物8を照明すべき照明装置を切り替えたり、カメラ4に撮像を実行させたりする。
コントローラ2は検査対象物(ワーク)8の画像からエッジ検出や面積計算などの各種計測処理を実行する。カメラ4から得られた画像データを用いて画像処理を実行し、外部接続されたPLC3などの制御機器に対し、検査対象物8の良否などの判定結果を示す信号として判定信号を出力する。
カメラ4は、検査対象物8を撮像する撮像素子を有するカメラモジュールを備えている。撮像素子としては、たとえばCMOS(相補型金属酸化膜半導体)やCCD(電荷結合素子)を用いることができる。PLC3から入力される制御信号、たとえばカメラ4から画像データを取り込むタイミングを規定する撮像トリガ信号に基づいて、検査対象物8の撮像を行う。
モニタ10は、液晶パネルや自発光式パネル等の表示装置である。検査対象物8を撮像して得られた画像や、その画像データを用いた計測処理の結果を表示する。モニタ10は、パターンマッチング用の比較データ(モデル画像)を作成するために使用される基準画像など、良品から取得された画像を表示してもよい。
マウス9は、ユーザがモニタ10上で各種操作するため(モニタ10がタッチパネルなら省略可)の入力装置である。マウス9は、モニタ10上で各メニュー項目を選択したり、パラメータ値を設定したりする。マウス9は、ポインティングデバイスの一例である。ユーザは、モニタ10を視認することで、コントローラ2の運転中の動作状態を確認することができる。また、ユーザは、モニタ10を視認しつつ、マウス9を操作することによって、必要に応じて各種設定や各種編集を行うことができる。
照明装置5は、検査対象物8を照明する装置であり、図1では、フロントライト51、バックライト52が示されている。照明装置5としては、これら以外にも、たとえば、光沢を際立たせる同軸落射照明、傷や刻印のエッジが際立つローアングル照明、ブラックライトを当てるブラックライト照明、バックライト52として用いられる面照明(フロントライト51とは反対側から照明を与え、検査対象物の透過光または影を観察するための透過照明)、四方八方から拡散光を照射するドーム照明など、各種の照明を行う照明装置が採用されてもよい。特に、同軸落射照明は、視野全体に略均一に照明を当てる照明手法であり、カメラ4と照明装置5をV字に配置して検査対象物8からの正反射光を受光する照明手法とほぼ同様の効果が得られる利点がある。また、ローアングル照明は、たとえばLED等の投光素子をリング状に配置し、検査対象物8の表面を浅い角度で全周方向から光を照らす照明手法である。検査対象物8の表面に当たった光はカメラ4の方向には反射せず、刻印や傷のエッジ部分で反射した光だけが受光される。すなわち、照射角度が非常に浅い角度であるため、光沢面では反射が弱く、検査対象物8上の僅かな傷やエッジでのみ強い反射が得られ、はっきりとしたコントラストが得られる。別の表現をすると、フロントライト51は、検査対象物8の表面の特徴(テクスチャ、エッジ等)を抽出するための照明であって、カメラの設置側から照明光を照射する。バックライト52は、検査対象物8の輪郭(または縁部)を抽出するための照明であって、カメラの設置側とは反対側から照明光を照射する。バックライト52について更に別の言い方をすると、検査対象物8を挟んでカメラと反対方向から光を照射するものである。
プログラム作成支援装置11は、コントローラ2が実行する制御プログラムを作成するためのコンピュータ(PC)である。制御プログラムは、以下で説明するような外観検査に関するそれぞれ異なる計測を実行するための複数の計測処理モジュールを有している。コントローラ2は、設定された順番に沿って各種計測処理モジュールを呼び出して実行する。プログラム作成支援装置11とコントローラ2とは、通信ネットワークを介して接続されており、プログラム作成支援装置11上で生成された制御プログラムやパラメータ値等の設定情報は、コントローラ2に転送される。また逆に、コントローラ2から制御プログラムやパラメータ値等の設定情報などを取り込んで、プログラム作成支援装置11上で編集することもできる。
工場において、複数の検査対象物8は、コンベアなどの搬送装置7のライン上を流れてくる。コントローラ2は、検査対象物8の上方(または側方、下方)に設置されているカメラ4により検査対象物8を撮像し、撮像した画像を基準画像(たとえば良品を撮像した画像)や基準画像から作成したモデル画像と比較して、検査対象物8に傷や欠陥等が存在するか否かの判断を行う。検査対象物8に傷や欠陥等が存在すると判断した場合には、NG判定となる。一方、検査対象物8に傷や欠陥等が存在しないと判断した場合には、OK判定となる。このように、外観検査装置1は、検査対象物8を撮像した画像を用いて、検査対象物8の外観の良否判定を行う。
検査対象物8の外観検査を行う場合、検査に用いる各種パラメータの内容(パラメータ値等)を設定する必要がある。パラメータとしては、たとえば、シャッタースピードなどの撮像条件を規定する撮像パラメータ、照度などの照明条件を規定する照明パラメータ、どのような検査を行うかを示す検査条件を規定する計測処理パラメータ(いわゆる検査パラメータ)等がある。外観検査装置1では、良否判定を行う前に、これらの各種パラメータの内容を設定する。
外観検査装置1は、実際に搬送装置7のライン上を次々と流れてくる検査対象物8の外観検査を行うモード、すなわち実際に検査対象物8の良否判定を行う運転モード(Runモード)と、検査に用いる各種パラメータの内容の設定を行う設定モード(非Runモード)とを有しており、これらのモードを切り替えるためのモード切替手段を有している。ユーザは、運転モードにおいて、搬送装置7のライン上を流れてくる複数の検査対象物8に対して良否判定が繰り返し行われる前に、設定モードにおいて、各種パラメータに対して最適なパラメータ値を設定(調整)する。基本的に、各種パラメータに対してはデフォルト値が設定されており、ユーザがパラメータ値としてデフォルト値が最適であると判断した場合には、特段、パラメータ値を調整する必要はない。しかし、実際のところ、周囲の照明環境、カメラ4の取り付け位置、カメラ4の姿勢ずれ、ピント調整等の相違に起因して、デフォルト値のままではユーザが望む判定結果を得ることができない場合がある。そこで、設定モードにおいて、コントローラ2のモニタ10上またはプログラム作成支援装置11上にて、運転モードから設定モードに切り換え、各種パラメータの内容を編集できるようになっている。
<外観検査装置1のハードウェア構成>
図2は、外観検査装置1のハードウェア構成の一例を示す図である。
主制御部21は、各種プログラムに基づき数値計算や情報処理を行うとともに、ハードウェア各部の制御を行う。たとえば、中間演算処理装置としてのCPU22と、主制御部21が各種プログラムを実行する際のワークエリアとして機能するRAMなどのワークメモリ23と、起動プログラムや初期化プログラムなどが格納されたROM、フラッシュROMまたはEEPROMなどのプログラムメモリ24とを有している。
照明制御部26は、主制御部21のCPU22やPLC3からの命令に基づいて、フロントライト51やバックライト52などに対して照明制御信号を送信する。
画像入力部25は、カメラ4での撮像により得られた画像データを取り込むASIC(Application Specific Integrated Circuit)などから構成される。画像入力部25には、画像データをバッファリングするためのフレームバッファが含まれていてもよい。具体的に、画像入力部25は、CPU22からカメラ4の撮像指令を受信すると、カメラ4に対して画像データ取り込み信号を送信する。そして、画像入力部25は、カメラ4で撮像が行われた後、撮像して得られた画像データを取り込む。取り込んだ画像データは、一旦バッファリング(キャッシュ)される。
操作入力部27は、マウス9からの操作信号が入力される。操作入力部27は、ユーザの操作に基づきマウス9からの操作信号を受信するインターフェース(I/F)として機能する。
モニタ10には、マウス9を用いたユーザの操作内容が表示される。具体的に説明すると、マウス9を操作することによって、ユーザはモニタ10上で、画像処理の制御プログラムを編集したり、各計測処理モジュールのパラメータ値を編集したり、カメラ4の撮像条件を設定したり、基準画像の中で特徴的な部分をモデル画像として登録したり、サーチ領域内をサーチしてモデル画像に一致した領域を検査領域として設定したりと、様々なことを行うことができる。
表示制御部28は、モニタ10に対して画像を表示させる表示用DSPなどから構成される。表示制御部28には、画像を表示させる際に画像データを一時記憶するVRAMなどのビデオメモリが含まれていてもよい。CPUから送られてきた表示指令(表示コマンド)に基づいて、モニタ10に対して所定の画像(映像)を表示させるための制御信号を送信する。たとえば、計測処理前または計測処理後の画像データを表示するために、モニタ10に対して制御信号を送信する。また、表示制御部28は、マウス9を用いたユーザの操作内容をモニタ10に表示させるための制御信号も送信する。
通信部29は、外部のPLC3やプログラム作成支援装置11などと通信可能に接続される。たとえば、通信部29は、検査対象物8の到着タイミングを認識するために製造ラインに設置され、PLC3に接続されたセンサ(光電センサ等、図示せず)からトリガ入力があったときに、PLC3から撮像トリガ信号を受信するインターフェース(I/F)として機能する。また、通信部29は、プログラム作成支援装置11から転送されてくるコントローラ2の制御プログラムなどを受信するインターフェース(I/F)としても機能する。
画像処理部30は、エッジ検出や面積計算などの計測処理を実行する演算用DSPなどから構成される。画像処理部30には、計測処理用に画像データを記憶するメモリが含まれていてもよい。画像処理部30は、画像データに対する計測処理を実行する。具体的に、画像処理部30は、まず画像入力部25のフレームバッファから画像データを読み出して、画像処理部30内のメモリへ内部転送を行う。そして、画像処理部30は、そのメモリに記憶された画像データを読み出して、計測処理を実行する。
プログラムメモリ24は、照明制御部26、画像入力部25、操作入力部27、表示制御部28、通信部29、および画像処理部30の各部を、CPU22のコマンド等により制御するための制御プログラムを格納している。また、プログラム作成支援装置11から転送されてきた制御プログラムは、プログラムメモリ24に格納される。
CPU22は、通信部29を介してPLC3から撮像トリガ信号を受信すると、画像入力部25に対して撮像指令(コマンド)を送る。また、CPU22は、制御プログラムに基づいて、画像処理部30に対して、実行すべき画像処理を指示するコマンドを送信する。なお、撮像トリガ信号を生成する装置として、PLC3ではなく、光電センサなどのトリガ入力用のセンサを通信部29に直接接続してもよい。
これらの各ハードウェアは、バスなどの電気的な通信路(配線)を介し、通信可能に接続されている。
<計測モジュール(画像処理ツール)>
ここでは、外観検査を実行する計測モジュールを画像処理ツールと呼ぶことにする。画像処理ツールには様々なものがあり、主要な画像処理ツールとしては、エッジ位置計測ツール、エッジ角度計測ツール、エッジ幅計測ツール、エッジピッチ計測ツール、エリア計測ツール、ブロブ計測ツール、パターンサーチ計測ツール、傷計測ツールなどがある。
●エッジ位置計測ツール:検査対象物8の画像が表示される画面上において、エッジ位置を検出したい検査領域に対してウインドウを設定することにより、設定された検査領域内で、任意の方向にスキャンして複数のエッジ(明から暗に切り替わる箇所または暗から明に切り替わる箇所)を検出する。検出した複数のエッジから、一のエッジの指定を受け付け、指定を受け付けたエッジの位置を計測する。
●エッジ角度計測ツール:設定を受け付けた検査領域内に2つのセグメントを設定し、それぞれのセグメントで検出したエッジからの検査対象物8の傾斜角度を計測する。傾斜角度は、たとえば時計回りを正とすることができる。
●エッジ幅計測ツール:設定を受け付けた検査領域内で、任意の方向にスキャンして複数のエッジを検出し、検出した複数のエッジ間の幅を計測する。
●エッジピッチ計測ツール:設定を受け付けた検査領域内で、任意の方向にスキャンして複数のエッジを検出する。検出した複数のエッジ間の距離(角度)の最大値/最小値や平均値を計測する。
●エリア計測ツール:カメラ4で撮像した検査対象物8の画像を二値化処理して、白色領域または黒色領域の面積を計測する。たとえば、計測する対象として白色領域または黒色領域の指定をパラメータとして受け付けることにより、白色領域または黒色領域の面積を計測する。
●ブロブ計測ツール:カメラ4で撮像した検査対象物8の画像を二値化処理して、同一の輝度値(255または0)の画素の集合(ブロブ)に対してパラメータとしての数、面積、重心位置等を計測する。
●パターンサーチ計測ツール:比較対象とする画像パターン(モデル画像)を事前に記憶装置に記憶しておき、撮像した検査対象物8の画像の中から記憶してある画像パターンに類似している部分を検出することで、画像パターンの位置、傾斜角度、相関値を計測する。
●傷計測ツール:設定を受け付けた検査領域内で、小領域(セグメント)を移動させて画素値の平均濃度値を算出し、閾値以上の濃度差となった位置を傷が存在すると判定する。
●その他にも、検査領域内の文字情報を切り出して辞書データ等と照合することで文字列を認識するOCR認識ツール、画像上に設定したウインドウ(領域)をシフトさせながら、各ウインドウの位置においてエッジの検出を繰り返す機能を有するトレンドエッジツール、設定したウインドウ内の濃淡の平均、偏差等を計測する機能を有する濃淡ツール、設定したウインドウ内の濃度の平均、偏差等を計測する機能を有する濃度ツールなどもあり、ユーザは検査内容に応じて必要な画像処理ツールを選択することができる。なお、これらの画像処理ツールは、典型的な機能およびその実現方法の代表例を示すものに過ぎない。あらゆる画像処理に対応する画像処理ツールが本願発明の対象になり得る。
<外観検査の基本フロー>
図3は、外観検査処理の基本フローを示すフローチャートである。外観検査処理は、検査対象物8の良否を判定するために必要となるモデル画像、検査領域、サーチ領域、検出点(以下、基準点と称す)、基準線、公差などの閾値を設定する設定モードと、実際に検査対象物8を撮像してパターンマッチングを実行して良否を判定する運転モードとに分かれている。なお、検査用のパラメータを適切に設定するために、設定モードと運転モードとを繰り返し実行することが一般的である。
S301で、CPU22は、画像入力部25を通じてカメラ4に撮像命令を送信することで、カメラ4に撮像を実行させる。CPU22は、カメラ4により取得された画像データを、表示制御部28を通じてモニタ10に表示させる。ユーザは、モニタ10に表示された画像を視認することで、カメラ4の姿勢や照明装置5の照明状態を確認する。
S302で、CPU22は、マウス9によって入力された指示に基づいてカメラ4のシャッタースピードなどの露光条件を調整する。なお、ユーザは、カメラ4の姿勢を手動で調整してもよい。
S303で、CPU22は、搬送装置7の撮像位置に配置された検査対象物8の画像をワーク画像として取り込むために、カメラ4に撮像命令を送信する。なお、ワーク画像は、不揮発性メモリに記憶されて繰り返し使用される基準画像であってもよいし、モデル画像を作成するためにその都度撮像される都度画像であってもよい。ここでは、ワーク画像はワークメモリ23に記憶される。なお、モデル画像は基準画像から作成してもよい。
S304で、CPU22は、位置ずれ補正の設定処理を実行する。カメラ4によって取得された画像において、検査対象物8の画像の位置が理想位置からずれていることがある。そこで、CPU22は、検査対象物8の画像を回転したり、シフトしたりすることで、位置ずれを補正する。なお、位置ずれ補正は、画像処理部30が実行してもよい。
S305で、CPU22は、上述した各種の画像処理ツールを設定する。たとえば、外観検査においてどの計測を実行するかや、計測を実行するために必要となるサーチ領域、検査領域、基準点などが設定される。
S306で、CPU22は、外観検査で必要となるパラメータ(例:公差などの検査閾値)を、マウス9によって入力された指示に基づいて設定する。S307で、CPU22は、設定モードから運転モードに切り替える。
S308で、CPU22は、PLC3からの指示にしたがって検査対象物8をカメラ4で撮像し、画像処理部30にパターンマッチングを実行させ、実行結果に基づいて良否を判定し、判定結果をPLC3に出力したり、モニタ10に出力したりする。
S309で、CPU22は、マウス9からモードの切り替え指示が入力されると、運転モードから設定モードに切り替える。S310で、CPU22は、マウス9によって入力された指示に基づいてパラメータを再設定する。
<パラメータの設定>
図4は、パラメータを設定する際の検査対象物8と、カメラ4と、照明装置5の位置関係を示している。検査対象物8は、複数のピンを有したIC(集積回路)、複数の半田ボールを有したBGA(ボールグリッドアレイ)などであってもよいが、ここでは、説明の便宜上、樹脂製のハウジング40と複数のピン41とを有したコネクタと仮定する。
照明装置5であるバックライト52は、搬送装置7を挟んでカメラ4に対向するように配置されており、検査対象物8の後ろ側から検査対象物8を照明する。フロントライト51は、リング照明装置であり、搬送装置7から見てカメラ4と同じ側に配置されており、検査対象物8の前側から照明する。
運転モードにおいては、PLC3が搬送装置7を制御し、検査対象物8がカメラ4の撮像位置に到着すると、搬送装置7を停止させ、コントローラ2を介してカメラ4に撮像を命令する。この際に、PLC3は、コントローラ2を介して照明装置5に照明するよう命令する。また、(ハウジング40の表面の特徴を抽出するための)フロントライト51でコネクタのピン41やハウジング40を照らした状態でカメラ4が撮像する。(ハウジング40の輪郭を抽出するための)バックライト52でコネクタのハウジング40の輪郭を浮かび上がらせた状態でカメラ4が撮像する。
一方で、設定モードにおいては、基本的に搬送装置7を停止させておき、コントローラ2が直接的にカメラ4や照明装置5を制御し、検査対象物8のワーク画像を撮像する。設定モードにおいて撮像される検査対象物8は、ユーザにより良品と判定されたワーク(製品)である。一般に、ワーク画像は1枚である。しかし、検査対象物8が搬送装置7の搬送方向に長く、一回の撮像では検査対象物8の全体を撮像できないことがある。この場合は、検査対象物8を複数回に分けて撮像するように、コントローラ2がカメラ4を制御する。なお、設定モードにおいて複数枚のワーク画像を取得したときは、運転モードでも同数枚の画像が取得され、ワーク画像とモデル画像と比較される。
設定モードにおいても運転モードにおいても、フロントライト51でコネクタのピン41やハウジング40を照らした状態でカメラ4が撮像する。また、バックライト52でコネクタのハウジング40の輪郭を浮かび上がらせた状態でカメラ4が撮像する。検査対象物8を複数回に分割して撮像する場合、PLC3は、検査対象物8またはカメラ4のいずれかを移動させることで、複数回の撮像を実行してもよい。検査対象物8またはカメラ4の移動は手動であってもよい。検査対象物8を3か所以上に分割して撮像する場合、搬送方向で最初の撮像箇所(図中の左端)と搬送方向で最後の撮像箇所(図中の右端)については、フロントライト51で検査対象物8を照明してカメラ4で撮像し、その後、バックライト52で検査対象物8を照明してカメラ4で撮像する。一方で、最初の撮像箇所と最後の撮像箇所との間に位置する1つ以上の中間の撮像箇所については、フロントライト51で検査対象物8を照明してカメラ4で撮像し、バックライト52を用いた撮像を省略する。これは、検査対象物8の中間部分の輪郭は、外観検査をするうえで重要ではないからである。中間部分については、バックライト52を用いた撮像を省略することで、外観検査の作業効率を向上できる。
図5は、検査対象物8であるコネクタを3分割し、フロントライト51で撮像した画像とバックライト52で撮像した画像とを示している。画像53は、フロントライト51で撮像したコネクタの左端の画像である。画像54は、フロントライト51で撮像したコネクタの中間の画像である。画像55は、フロントライト51で撮像したコネクタの右端の画像である。画像56は、バックライト52で撮像したコネクタの左端の画像である。画像57は、バックライト52で撮像したコネクタの右端の画像である。なお、画像53〜画像55の各画像においてコネクタの下に存在する黒ベタの部分は搬送装置7のベルトコンベヤの画像である。なお、検査対象物8が治具等に搭載されて搬送装置7によって搬送される場合は、治具が画像に映り込むことになる。上述したように、コネクタの中央(以下、中間と称す)についてはバックライト52による撮像が省略されている。
なお、カメラ4は、所定位置に配置されたコネクタをフロントライト51で撮像し、次に、コネクタの位置を維持したままバックライト52で撮像する。つまり、フロントライト51を用いて撮像された画像と、バックライト52を用いて撮像された画像とにおいて、検査対象物8の位置は一致している。
なお、画像53の右端と画像54の左端とには、コネクタの同一部分が写っている。同様に、画像54の右端と画像55の左端とには、コネクタの同一部分が写っている。このように隣り合った部分画像に同一の部分が重複して写っている理由は、これらの3枚の部分画像を連結して1枚の全体画像を作成するためである。つまり、画像処理部30は、隣り合った2枚の部分画像において共通に写っている同一のピンが重なるように、隣り合った2枚の部分画像を連結する。これにより作成された全体画像には、コネクタの全体が含まれることになる。
<寸法測定>
●ピンと角までの距離
図6は、寸法測定の一例を示す図である。モニタ10に表示されるユーザインタフェース(UI)60には、フロントライト51を用いて撮像された複数の部分画像を連結して構成された一枚の画像(フロントライト画像61)と、バックライト52を用いて撮像された複数の部分画像を連結して構成された画像(バックライト画像62)とが示されている。フロントライト画像61とバックライト画像62とは、フロントライト51と、バックライト52とを切り替えて撮像されたそれぞれ同一の被写体の部分画像を連結することで作成された全体画像である。よって、フロントライト画像61の座標系とバックライト画像62の座標系は一致している。ここでは、フロントライト画像61の座標系は、フロントライト画像61の左端を原点としており、バックライト画像62の座標系は、バックライト画像62の左端を原点としている。よって、フロントライト画像61における各ピンの中心位置と、バックライト画像62における各ピンの中心位置は同一の座標で表現できる。同様に、フロントライト画像61におけるハウジング40の角64の位置と、バックライト画像62におけるハウジング40の角64の位置は同一の座標で表現できる。
UI60においては、フロントライト画像61の横方向における両方の端部とバックライト画像62の横方向における両方の端部とがそれぞれ一致するように、フロントライト画像61とバックライト画像62とが同時に表示される。つまり、フロントライト画像61の横方向の端部とバックライト画像62の横方向の端部とを揃えて、フロントライト画像61とバックライト画像62とが上下に並べられて表示される。これにより、ユーザは、フロントライト画像61とバックライト画像62とがともに同一の検査対象物8を撮像して取得された画像であることを理解しやすくなる。また、フロントライト画像61に設定したサーチ領域、検査領域および検出点はそのままバックライト画像62に設定されるようにしてもよい。つまり、フロントライト画像61とバックライト画像62とにおいて、サーチ領域、検査領域および検出点は連動して表示されるようにしてもよい。同様に、バックライト画像62に設定したサーチ領域、検査領域および検出点はそのままフロントライト画像61に設定され、両者は連動して表示されるようにしてもよい。これにより、一方の画像において設定しにくい特徴部分については他方の画像を用いて設定できるようなる。本発明では、このような特徴を生かして、検査対象物8についての寸法など様々な計測対象を設定できるようになる。
図6では、画像処理部30がハウジング40の角64から1番ピン63の中心までの距離を算出する。なお、この例のコネクタには1列あたり17本のピンが2列にわたって配置されている。ピンの番号は左端のピンを1番ピンとし、右端のピンを17番ピンとしている。
ところで、ハウジング40の色が白色に近い場合、フロントライト画像61から角64の位置を精度よく検出できない可能性がある。一方で、バックライト画像62では、角64を精度よく検出できる。これは、背景とハウジングとのコントラストが高いからである。画像処理部30は、フロントライト画像61から1番ピン63の位置(座標)を決定し、バックライト画像62から角64の位置を決定する。ここで、フロントライト画像61とバックライト画像62の座標系は完全に一致しているため、フロントライト画像61から求められた1番ピン63の位置と、バックライト画像62から求められた角64の位置とから、画像処理部30は、両者の距離を算出できる。なお、17番ピンとハウジング40の右上の角までの距離も、同様の手順でフロントライト画像61とバックライト画像62とから算出できる。
図7は、2列目のピンに関する寸法測定の一例を示す図である。2列目の1番ピン65から角64までの距離についても1列目の1番ピン63と同様の手順で距離を算出できる。
ここでは、1番ピンと17番ピンについて説明したが、2番ピンから16番ピンについても、フロントライト画像61から特徴点であるピンの位置を検出し、バックライト画像62から特徴点である角の位置を検出し、両者の距離を求めることができる。
●ピンからハウジング外縁までの距離(ピン高さ)
図8は、各ピンの高さを求める方法を示している。この例では、画像処理部30が、各ピンの中心(基準点82)からハウジング40の上側にある外縁までの距離をピン高さとして算出する。
画像処理部30は、バックライト画像62からハウジング40の上側の外縁を確定するために、右上角の位置と左上角の位置とを検出し、両者を結ぶ直線(直線の方程式)を基準線81として決定する。バックライト画像62を利用するのは、フロントライト画像61と比較して、角を精度よく検出できるからである。画像処理部30は、フロントライト画像61から各ピンの中心位置を基準点82として検出する。画像処理部30は、各ピンの基準点82から基準線81までの距離を各ピンの高さとして算出する。
ここでは、フロントライト画像61から基準点82を検出し、バックライト画像62から基準線81を検出した。しかし、検査対象物8の外形や配色、素材など、画像のコントラストに影響を与えるパラメータが異なる場合、画像処理部30は、フロントライト画像61から基準線81を検出し、バックライト画像62から基準点82を検出してもよい。
図9は、2列目の各ピンについてピン高さを求める例を示している。画像処理部30は、バックライト画像62からハウジング40の上側の外縁を確定するために、右上角の位置と左上角の位置とを画像認識により検出し、両者を結ぶ直線(直線の方程式)を基準線81として決定する。さらに、画像処理部30は、フロントライト画像61から2列目の各ピンの中心位置を基準点85として検出する。画像処理部30は、各ピンの基準点85から基準線81までの距離を各ピンの高さとして算出する。
<撮像回数の設定>
図10および図11は、撮像回数を設定するためのダイアログ101を示している。ダイアログ101には、画像の分割数の入力欄102と、カメラ数や撮像手法の選択欄103が示されている。分割数が1に設定されると、検査対象物8の全体を1枚の画像に収めることを意味する。分割数が3に設定されると、検査対象物8の全体を3枚の画像に分割して収めることを意味する。図11が示すように、選択欄103において、検査対象物8の両端のみ照明を変えて撮像する撮像手法などを選択できる。
図12は、ユーザにより設定された撮像回数を視覚的に示すダイアログ104を示している。この例では、照明A(フロントライト51)により、3か所の撮像箇所で撮像が実行されること、照明B(バックライト52)により、中間を除く2か所の撮像箇所で撮像が実行されることが示されている。また、撮像順番をユーザに明示するために、撮像順番105も示されている。この例では、1番目に照明Aを用いて第1の撮像箇所で撮像を実行し、2番目に照明Bを用いて第1の撮像箇所で撮像を実行することが示されている。これによりユーザは1番目と2番目の撮像が終了したときに、検査対象物8を移動させればよいことを理解しやすくなる。
<コネクタ位置ずれ補正>
検査対象物8を搬送装置7で搬送しながら良否判定のための画像を撮像する際に、検査対象物8の位置が理想位置からずれていることがある。ここで、理想位置とは、パターンマッチングのためのモデル画像をカメラ4により撮像したときの良品ワークの配置位置である。良品ワークは手動で正確に配置されるため、カメラ4に対して精度よく位置決めされる。よって、実際の製造ラインにおいて検査対象物8の画像を撮像したときにパターンマッチングおよび良否判定の精度を向上させるためには、撮像した画像を回転させたり、左右上下にシフトしたりといった位置ずれ補正が必要となる。
ところで、上述したように検査対象物8の同一の個所を、照明手法を変えて複数回撮像することがある。たとえば、フロントライト画像61とバックライト画像62とでは検査対象物8を動かさずに同一の個所を撮像しているため、それぞれの位置ずれ量は一致しているはずである。そこで、各撮像箇所の画像でフロントライト画像61から求められた位置ずれ量またはその補正量を用いて、バックライト画像62についての補正量を設定する。コネクタの位置ずれが発生する場合に、後段の検査で正しく検査するためにコネクタの位置を検出し、ずれ量を補正する。
このように、本実施例では、画像処理部30が、検査対象物8の同一箇所を撮像した複数の画像について1つの画像から位置ずれの補正量を求め、求めた補正量で複数の画像のそれぞれの位置を補正し、補正した画像を用いて良否判定を実行する。
図13は、複数の画像処理ツールのカテゴリーを示したツールカタログ111からコネクタカテゴリー108がマウスによって選択され、さらに、画像処理ツールとしてコネクタ位置ずれ補正が選択されたことを示す図である。
図14、図15、図16は、コネクタ位置ずれ補正に必要となるパラメータを設定するためのUIを示している(図14〜図16は、それぞれ画像1A〜3Aに対応するUI)。ここでは、2つのサーチ領域112がマウス9によって設定される。図14の右方に示されるように、ユーザによって事前にモデル画像(サーチパターン)が登録されており、マウス9によってサーチ領域112が設定されると、サーチ領域112内にモデル画像とパターンマッチする部分があるか否かをリアルタイムでサーチする。そして、モデル画像が見つかった場合には、検査領域113として画面上に表示されている。すなわち、図14では、サーチ領域112内でモデル画像が見つかり、検査領域113が表示されている。ここで、サーチ領域112は、モデル画像を移動させることができる範囲を示す領域である。検査領域113は、パターンマッチングの対象となる部分(モデル画像)を含む領域である(上述したように、図14では、モデル画像が見つかった領域)。2つのサーチ領域112を設定する理由は、検査対象物の製造上の公差を考慮するため、或いは、検査対象物の搬送時の位置/傾きのずれを精度良く補正するためである。2つのサーチ領域112において、2つの検査領域113の位置が判明すれば、これらからコネクタ位置の位置ずれ量を算出できる。
図14、図15、図16が示すように、位置ずれ補正のための2つのサーチ領域112と、2つの検査領域113とが、コネクタの左端部、中間部、右端部のそれぞれに設定される。コネクタの左端部、中間部、右端部での位置ずれ量は同じである場合があるため、左端部、中間部、右端部の一か所のみから位置ずれ量を求めてもよい。ただし、位置ずれ補正の精度を向上するために、左端部、中間部、右端部の3か所から位置ずれ補正量を求めてもよい。
図17は、コネクタ位置ずれ補正のための設定が終了したことを示すUIの一例である。画像処理部30は、マウス9によって設定されたパラメータを使用して、カメラ4が撮像した良品に対して位置ずれ補正を実行し、位置ずれ補正に成功すると、成功を示すOKマーク114をモニタ10に表示してもよい。
<コネクタ寸法検査ツールの追加>
図18は、複数の画像処理ツールのカテゴリーを示したツールカタログ111からコネクタカテゴリー108がマウスによって選択され、さらに、画像処理ツールとしてコネクタ寸法検査ツール109が選択されたことを示す図である。コネクタ寸法検査ツール109を示すボタンがクリックされると、設定画面に遷移する。設定画面に遷移するために、さらに追加ボタンがクリックされてもよい。
●画像連結パラメータの設定
コネクタ寸法検査ツールの設定項目の1つとして画像連結パラメータが存在する。なお、画像を連結しない場合は、このパラメータの設定は不要である。
図19は、画像の連結点を設定する設定画面を示している。この画面では、画像の並び順116と、連結手法を指定する連結方法117とをマウス9によって選択できる。たとえば、画像の並び順116として「左→右」を選択すると、検査対象物8を左から右に画像が撮像されたことを示している。連結方法117として「ピン列で連結」を選択すると、画像処理部30は、各画像からピン列を検出し、ピン列が全体として一列になるように複数の画像を連結する。
●ピン列検出パラメータの設定
図20は、ピン列検出パラメータの設定画面を示している。この例では、ピンの配置118は、ピンが何列にわたって配置されているかを設定するための設定項目である。1番ピンの位置119は、一列に並んだ複数のピンのうちどのピンが1番ピンであるかを設定するための設定項目である。この例では、検査対象物8であるコネクタは2列であるため、ピンの配置118は、「2列」がマウス9によって選択される。
●ピンモデルの登録
コネクタは多数のピンを備えており、すべてのピンについて検査を実行する必要がある。そこで、検査対象の各ピンのモデル画像とその位置を良品判定用に登録しておく必要がある。
図21は、ピンモデルの登録画面を示している。CPU22は、登録画面内において、コネクタの左端の画像53を拡大表示する。これは、ピンモデルを登録しやすくするためである。ユーザは、1番ピン63を含むように検査領域113を設定する。CPU22は、検査領域113により囲まれた部分の画像をモデル画像としてメモリに格納する。検査領域113の位置と大きさはマウス9の操作に連動してCPU22によって変更される。
図22は、ピン検出の設定画面を示している。CPU22は、検査領域113の中心に基準点120を配置し、検査領域113を取り囲むようにサーチ領域112を配置する。検査領域113の位置、基準点120の位置およびサーチ領域112の位置はCPU22によってメモリに格納される。なお、上述したように、検査領域113は、サーチ領域112内において、図21で設定したモデル画像とパターンマッチした結果、検出された領域を示している。つまり、図22では、検査領域113は、モデル画像とパターンマッチした検出結果を示す。
上述したように、すべてのピンに対してサーチ領域112、検査領域113、基準点120などを設定しなければならない。しかし、この設定作業を手作業に任せると、ユーザは多大な負担を負うことになる。そこで、本実施例では、ユーザが設定項目の1つであるピン数121をマウス9で設定することにより、2番ピン以降の各ピンについてのサーチ領域112、検査領域113、基準点120の設定を半自動化できる。CPU22は、入力されたピン数121に応じて、サーチ領域112、検査領域113、基準点120を右方向にコピーすることで、6つあるピンのそれぞれに、サーチ領域112、検査領域113、基準点120を設定する。これは、各ピンが等間隔で配置されており、各ピンの大きさも一致していることを前提としている。各ピンにCPU22によって設定されたサーチ領域112、検査領域113、基準点120を、ユーザはマウス9によって微調整してもよい。CPU22は、マウス9からの入力にしたがってサーチ領域112、検査領域113、基準点120の座標(位置)を修正し、メモリに格納する。
図23、図24は、コネクタの中間部および右端部についてのサーチ領域112、検査領域113、基準点120の設定画面を示している。コネクタの中間部および右端部も左端部と同様の手順で、サーチ領域112、検査領域113、基準点120が設定される。つまり、CPU22は、一番ピンのサーチ領域112、検査領域113、基準点120のデータとピン数121を利用して、コネクタの中間部および右端部の各ピンにサーチ領域112、検査領域113、基準点120を設定する。
図25は、一列目のピンモデルの登録が完了したことを示す画面を示している。この画面では、コネクタの全体画像122がサーチ領域112、検査領域113、基準点120とともに表示される。なお、CPU22は、入力されたピン数を合計して総ピン数123をモニタ10に表示してもよい。
なお、図21ないし図25では、一列目のピンについて説明したが、2列目のピンについても同様の手順でピン登録を実行できる。
●端検出パラメータの設定
コネクタの外観検査を実行する際には、上述したように、コネクタの端(角)の位置を検出する必要がある。
図26は、コネクタの端検出に関する設定を行う設定画面を示す図である。コネクタの種類によって検出すべき端の数は異なる。そこで、追加ボタン124をマウス9で押すことで、必要な数の端を設定する。
図27は、端検出の対象となる端を選択する選択項目125を示している。コネクタの種類によっては、コネクタに設けられた金属を端とすべき場合や、コネクタのハウジングを端とすべき場合や、コネクタを搬送するための治具を端とすべき場合などがある。そこで、ユーザは、検査対象物8となっているコネクタの種類に応じて、選択項目125からマウス9の操作によって端検出の対象を選択する。
図28は、端検出用のサーチモデルの登録画面を示す図である。ワーク左端を設定するために、画像選択部126からマウス9によってコネクタの左端のフロントライト画像(撮像1A)が選択される。CPU22は、左端の画像を拡大表示し、サーチモデルを登録しやすくする。マウス9の操作によって端を含む検査領域127が設定される。CPU22は、モデル登録ボタン228が押し下げされたことを検出すると、その時点で設定された検査領域127の位置と検査領域127によって囲まれたモデル画像をメモリに格納する。
図29は、サーチ領域128の設定画面を示している。CPU22は、マウス9の操作にしたがって設定された矩形の領域を端検出用のサーチ領域128に設定する。ここで、CPU22は、モデル登録された検査領域127のモデル画像を、サーチ領域128内でサーチを実行し、モデル画像が見つかったかどうかを判定する。図29に示すように、背景とハウジングとのコントラストが低い場合、端検出に失敗してしまう。
そこで、本実施例では、バックライト画像を用いて端検出用のパラメータを設定する。
図30は、端検出用のサーチモデルの登録画面を示す図である。画像選択部126からマウス9によってコネクタの左端のバックライト画像(撮像1B)が選択される。CPU22は、左端のバックライト画像を拡大表示し、サーチモデルを登録しやすくする。マウス9の操作によって端を含む検査領域127が設定される。CPU22は、モデル登録ボタン228が押し下げされたことを検出すると、その時点で設定された検査領域127の位置と検査領域127によって囲まれたモデル画像をメモリに格納する。
図31は、サーチ領域128の設定画面を示している。CPU22は、マウス9の操作にしたがって設定された矩形の領域を端検出用のサーチ領域128に設定する。ここで、CPU22は、モデル登録された検査領域127のモデル画像を、サーチ領域128内でサーチを実行し、モデル画像が見つかったかどうかを判定する。図31に示すように、背景とハウジングとのコントラストが高い場合、端検出に成功する。基準点を指定するための基準点指定ボタン130がマウス9によってクリックされると、CPU22は、基準点の指定画面をモニタ10に表示させる。
図32、図33は、基準点131の指定画面を示す図である。とりわけ、図32は、微調整前の基準点131を示し、図33は、微調整後の基準点131を示している。CPU22は、基準点131を検査領域127の中間に配置する。ユーザはマウス9を操作することで基準点131を微調整し、CPU22は、微調整後の基準点131の位置をメモリに格納する。
なお、コネクタの右側の端であるワーク右端についても、ワーク左端と同様の手順で検査領域127、サーチ領域128および基準点131が設定される。
図34は、ワーク左端とワーク右端とが正常に設定されたことを示す画面である。この例では、バックライト画像を利用して、ワーク左端とワーク右端とが設定されていることが示されている。
●基準線の設定
図35は、基準線81を設定する設定画面を示している。追加ボタン(編集ボタン)140をクリックすると、基準線81の各パラメータを設定する詳細設定画面に遷移する。
図36は、基準線81の指定方法の選択項目141を示している。ここでは、検査対象物8であるコネクタに対してどのような線を基準線81とするかをマウス9によって指定する。
図37は、選択項目141から「ハウジングの両端を結んだ線」が基準線81として指定されたときの画面を示す図である。上述したように、バックライト画像を使用してハウジングの両端(ワーク左端とワーク右端)があらかじめ設定されている。そこで、CPU22は、「ハウジングの両端を結んだ線」が基準線81として指定されると、ワーク左端とワーク右端とを通るように基準線81を設定する。なお、ワーク左端は、基準点131に対応している。なお、図示は省略しているがワーク右端も基準点によって設定されている。
●寸法測定パラメータの設定
ここでは、コネクタの寸法のうち、どの部分の寸法を測定対象にするかを設定する。
図38は、寸法測定パラメータを設定するメイン画面を示す図である。項目選択ボタン150をマウス9でクリックすることで、測定すべき寸法をユーザが選択できる。
図39は、寸法測定パラメータを設定するための項目選択画面を示す図である。ここでは、コネクタのどの部分を測定するかをカテゴリー別に示した寸法測定カテゴリー151と、選択された寸法測定カテゴリーに対応した1つ以上の測定項目を示す測定項目一覧152とが表示される。CPU22は、マウス9によって選択されたカテゴリーに応じて測定項目一覧152を切り替える。図39に示した例では、ハウジングが寸法測定カテゴリー151から選択されると、ハウジングに関する種々の測定項目が示される。ハウジング高さは、基準線を起点としたハウジングの高さである。ハウジング距離は、ハウジングの左端から右端までの距離である。ハウジング・ピン(端)間距離は、ハウジングの端から端のピンまでの距離である。ハウジング金具距離は、ハウジングから金具までの距離であって、たとえば、ハウジングの端から金具の中心までの距離である。マウス9により測定項目一覧152から選択された測定項目が実際に実行される測定項目として追加される。
図40は、選択された測定項目について良否判定に使用されるパラメータを設定する画面を示している。パラメータ設定部160では、1列目のピンについてのハウジング・ピン(端)間距離についての設計上の標準値と正負の公差がマウス9を通じて入力される。CPU22は、標準値と公差とから寸法の上限値と下限値とを算出してパラメータ設定部160に表示してもよい。また、CPU22は、画像処理部30を用いて、ワーク画像から実際に寸法を測定し、1番ピンについての測定値と17番ピンについての測定値との平均値を求めて表示したり、最小値と最大値とを表示したりしてもよい。
図41は、選択された測定項目について良否判定に使用されるパラメータを設定する画面を示している。パラメータ設定部161では、2列目のピンについてのハウジング・ピン(端)間距離についての設計上の標準値と正負の公差がマウス9を通じて入力される。CPU22は、標準値と公差とから寸法の上限値と下限値とを算出してパラメータ設定部161に表示してもよい。また、CPU22は、画像処理部30を用いて、ワーク画像から実際に寸法を測定し、1番ピンについての測定値と17番ピンについての測定値との平均値を求めて表示したり、最小値と最大値とを表示したりしてもよい。
図42は、寸法測定パラメータを設定するための項目選択画面を示す図である。ここでは、寸法測定カテゴリー151からピン高さが選択されているため、測定項目一覧152には、ピン高さに関する測定項目が表示される。ユーザはマウス9により測定項目をクリックして選択する。ここでは、基準線からのピン高さが選択されたものとする。
図43は、選択された測定項目について良否判定に使用されるパラメータを設定する画面を示している。測定項目をわかりやすくするために、画像表示部162には、ワーク画像とともに、基準線、基準点、ピン番号、どの部分が測定されるかを示すマークなどが表示される。ここでは、ワーク画像として、フロントライト画像とバックライト画像の両方が表示される。パラメータ設定部163では、1列目のピンについてのピン高さについての設計上の標準値と正負の公差がマウス9を通じて入力される。CPU22は、標準値と公差とから寸法の上限値と下限値とを算出してパラメータ設定部163に表示してもよい。また、CPU22は、画像処理部30を用いて、ワーク画像から実際に寸法を測定し、1番ピンから17番ピンまで各ピンについて測定値の平均値を求めて表示したり、最小値と最大値とを表示したりしてもよい。これらの数値からワーク画像を撮像するために用いたワーク(製品)が適切であったかどうかを確認しやすくなろう。
図44は、選択された測定項目について良否判定に使用されるパラメータを設定する画面を示している。パラメータ設定部164では、2列目のピンについてのピン高さについてのパラメータが入力される。CPU22は、パラメータ設定部164に入力された標準値と公差とから寸法の上限値と下限値とを算出してパラメータ設定部164に表示してもよい。また、CPU22は、画像処理部30を用いて、ワーク画像から実際に寸法を測定し、2列目の1番ピンから17番ピンまで各ピンについて測定値の平均値を求めて表示したり、最小値と最大値とを表示したりしてもよい。
<画像連結の変形例>
上述した実施例では、隣り合った画像間で共通のピンが1つ以上含まれるように撮像を実行し、共通のピンを重ね合わせるようにして隣り合った2枚の画像を連結することで、検査対象物8の全体画像をCPU22または画像処理部30が作成するものとして説明した。しかし、隣り合った画像間で共通に含まれるべき部分は検査対象物8の一部である必要はない。つまり、治具やベルトコンベヤなど検査対象物8とともに移動する部材に連結の基準となるマークが付与されていてもよい。
図45は、複数の画像を連結するための基準となるマークの一例を示す図である。この例では、連結用のマーク170が、検査対象物8を搬送する治具に設けられている。連結方法117として「任意の点で連結」が選択されると、CPU22は、マーク170を基準として連結を実行できるようになる。
図46は、画像連結の基準となるマーク170を設定する設定画面を示す図である。CPU22は、コネクタの左端画像を拡大表示することで、基準点171、検査領域およびサーチ領域を設定しやすくしている。ユーザは、マウス9を操作することで、マーク170の中心に基準点171を設定する。さらに、CPU22は、基準点171を中心として検査領域およびサーチ領域を設定する。CPU22は、マウス9の操作にしたがって基準点171を微調整したり、検査領域およびサーチ領域の位置とサイズとを調整したりしてもよい。
図47は、画像連結の基準となるマーク170を設定する設定画面を示す図である。CPU22は、コネクタの中間部の画像を拡大表示することで、左端画像と中間部の画像とを連結するための基準となる基準点172、検査領域およびサーチ領域と、中間部の画像と右端画像とを連結するための基準となる基準点173、検査領域およびサーチ領域とを設定しやすくしている。ユーザは、マウス9を操作することで、左側のマーク170の中心に基準点172を設定し、右側のマーク170の中心に基準点173を設定する。さらに、CPU22は、基準点172および基準点173を中心としてそれぞれ検査領域およびサーチ領域を設定する。CPU22は、マウス9の操作にしたがって基準点172、173を微調整したり、検査領域およびサーチ領域の位置とサイズとを調整したりしてもよい。
図48は、画像連結の基準となるマーク170を設定する設定画面を示す図である。CPU22は、コネクタの右端画像を拡大表示することで、中間画像と右端画像とを連結するための基準となる基準点174、検査領域およびサーチ領域を設定しやすくしている。ユーザは、マウス9を操作することで、マーク170の中心に基準点174を設定する。さらに、CPU22は、基準点174を中心として検査領域およびサーチ領域を設定する。CPU22は、マウス9の操作にしたがって基準点174を微調整したり、検査領域およびサーチ領域の位置とサイズとを調整したりしてもよい。
図49は、マーク170を基準として連結されたフロントライト画像とバックライト画像とを示している。コネクタの左端画像、中間部の画像および右端画像を連結する際に、画像処理部30は、基準点171と基準点172とが重なるように、左端画像と中間部の画像を連結する。さらに、画像処理部30は、基準点173と基準点174とが重なるように、中間部の画像と右端画像とを連結する。これにより、検査対象物8の全体が収まった連結画像(全体画像)が作成される。フロントライト画像とバックライト画像とでは座標系が一致しているため、フロントライト画像の連結位置を基準として、バックライト画像についても同様に連結できる。なお、図49に示したように、バックライト画像については左端画像と右端画像しか存在しない場合は、フロントライト画像の左端画像と、バックライト画像の左端画像との各原点(画像の左上の角)が一致させる。また、フロントライト画像の右端画像と、バックライト画像の右端画像との各原点(画像の左上の角)も一致させる。これにより、図49に示したように、コネクタの全体を示したフロントライト画像とバックライト画像とが作成される。
<ピンやハウジングの検出方法>
上述の実施例は、モデル画像を用いたパターンマッチングを用いて検査対象物8のハウジングやピンを検出する例であった。しかし、必ずしもモデル画像は必要ではない。
図50は、エッジ検出を利用したピンの検出方法を示す図である。画像処理部30は、エッジ検出を実行することで、複数の横方向のエッジや縦方向のエッジを検出する。そして、検出された所定方向のエッジの中間位置(中心位置)が基準点200として自動設定される。画像処理部30は、基準点200から各エッジまでの距離を算出し、その距離が所定距離(一定の公差範囲内であれば許容される)であるエッジの組み合わせをサーチする。この例では、ピン41の左端に相当するエッジ201と右端に相当するエッジ202とが、ピンの検出条件に合致するエッジとして認識される。同様に、画像処理部30は、ピン41の上端に相当するエッジ203とし下端に相当するエッジ204とを、ピンの検出条件に合致するエッジとして認識する。これらは、基準点200からの距離がピンの検出条件に合致しているからである。このように、画像処理部30は、画像の全体についてエッジ検出を実行することで、各ピンの位置を検出できる。
図51は、エッジ検出を利用したハウジングの検出方法を示す図である。画像処理部30は、複数の横方向のエッジや縦方向のエッジを検出し、基準点210において直交するエッジ211とエッジ212を抽出する。ここで、エッジ211とエッジ212は最も外側に位置するエッジである。基準点(交点)210は、エッジ211とエッジ212が抽出された後、エッジ211とエッジ212が交差する点として自動設定される。このような検出条件を予め設定しておくことで、画像処理部30は、エッジ検出を利用してハウジングの端を検出してもよい。
<内部処理について>
以下ではCPU22や画像処理部30で実現されている機能について説明する。なお、各機能は、CPU22だけで実現されてもよいし、画像処理部30だけで実現されてもよいし、CPU22と画像処理部30との連携動作によって実現されてもよい。
図52は、外観検査装置1の機能ブロック図である。図2を用いてすでに説明したように、照明装置5は、検査対象物8に対して複数の異なる照明光を照射する照明部として機能する。照明制御部26が、CPU22または画像処理部30からの指示にしたがって照明装置5が照射する照明光を切り替えるように照明装置5を制御する。カメラ4は。照明装置5によって照明光を照射された検査対象物8を撮像する撮像部として機能する。また、外観検査装置1は、カメラ4により取得された検査対象物8の画像に対して計測処理を実行する装置である。
撮像制御部301は、フロントライトやバックライトなど照明光の切り替えを照明制御部26に命令したり、カメラ4に撮像を命令したりする制御部である。撮像制御部301は、検査対象物8を分割して撮影する際のカメラ4の制御や照明装置5の制御も担当する。
第1の画像記憶部304は、照明装置5により第1の照明光(例:フロントライト)が照射された検査対象物8の所定の領域(例:コネクタの全体やコネクタの左端、中間、右端など)をカメラ4が撮像して取得した第1の画像(例:フロントライト画像やその部分画像など)を記憶する。第2の画像記憶部305は、照明装置5により第2の照明光(例:バックライト)が照射された検査対象物8の所定の領域をカメラ4が撮像して取得した第2の画像(例:バックライト画像やその部分画像など)を記憶する。なお、第1の画像記憶部304や第2の画像記憶部305は、たとえば、ワークメモリ23により実現される。表示制御部28やモニタ10は、第1の画像と第2の画像とを表示する表示部として機能する。
UI制御部310は、上述したUI60などの表示系のユーザインタフェースやマウス9やキーボードなどの入力系のインタフェースを制御する。UI制御部310は、さらに種々の機能部に分かれている。図21ないし図25などを用いて説明したように、第1の計測対象設定部311は、モニタ10に表示されている第1の画像と第2の画像とのうちの一方の画像において、検査対象物8に関する寸法を計測するための起点となる特徴部分(例:ピンの検出点)を設定する。
図30ないし図37を用いて説明したように、第2の計測対象設定部312は、モニタ10に表示されている第1の画像と第2の画像とのうちの他方の画像において、検査対象物8に関する寸法を計測するための終点となる特徴部分(例:ハウジングの角を検出するための検出点や複数の検出点間を結ぶ基準線など)を設定する。第1の計測対象設定部311や第2の計測対象設定部312により設定されたモデル画像、基準点、基準線などのデータは、特徴データ記憶部306に格納される。特徴データ記憶部306もワークメモリ23によって実現される。
寸法算出部302は、第1の計測対象設定部311により設定された起点となる特徴部分から第2の計測対象設定部312により設定された終点となる特徴部分までの寸法を算出する。ここで、寸法とは、距離や面積などである。
UI制御部310は、検査対象物8の外観の良否を判定するための閾値を設定する閾値設定部313を有していてもよい。良否判定部303は、寸法算出部302により算出された寸法と閾値とを比較して、検査対象物8の外観の良否を判定する。たとえば、寸法算出部302が複数のピンについて求めたピン高さが、閾値設定部313により公差や標準値から求められた上限値を超えている場合、良否判定部303は、不良と判定する。
図6などを用いて説明したように、UI制御部310は、第1の画像の横方向の端部と第2の画像の横方向の端部とが一致するように第1の画像と第2の画像とを同時にモニタ10が表示するようユーザインタフェースの表示データを作成し、表示制御部28に渡す。つまり、UI制御部310は、モニタ10が、第1の画像の横方向の端部と第2の画像の横方向の端部とを揃えて第1の画像と第2の画像とを上下に並べて表示するように表示データを作成する。また、UI制御部310は、第1の画像と第2の画像とのうちの一方の画像に対して設定された起点となる特徴部分を示す指標(例:サーチ領域、検査領域、検出点を示す十字マークなど)を、第1の画像と第2の画像とのうちの他方の画像に対しても連動して表示するように表示データを作成するようにしてもよい(少なくとも、検出点を示す十字マークが連動して表示されるようにするのが好ましい)。なお、UI制御部310は、第1の画像と第2の画像とのうちの他方の画像に対して設定された終点となる特徴部分を示す指標を、第1の画像と第2の画像とのうちの一方の画像に対しても連動して表示するための表示データを作成してもよい。このように、UI60においては、サーチ領域、検査領域、検出点を示す十字マークなどは、フロントライト画像とバックライト画像との間で連動して表示されることになる。たとえば、UI制御部310は、バックライト画像を用いて設定したサーチ領域、検査領域、検出点をそのままフロントライト画像にも設定して表示する。バックライト画像の原点をバックライト画像の左上角とし、フロントライト画像の原点をフロントライト画像の左上角とすると、バックライト画像を用いて設定したサーチ領域、検査領域、検出点の座標と、フロントライト画像におけるサーチ領域、検査領域、検出点の座標とを一致させる。これにより、UI制御部310は、フロントライト画像の原点をフロントライト画像の左上角とすると、バックライト画像を用いて設定したサーチ領域、検査領域、検出点と、フロントライト画像におけるサーチ領域、検査領域、検出点とを連動して表示させることができる。
第1の計測対象設定部311および第2の計測対象設定部312は特徴部分として、画像上の一か所以上の座標である基準点82、85、120、131、171、172、173、174、200、210を設定する。
図21などを用いて説明したように、UI制御部310は、モニタ10が一方の画像を拡大表示するための表示データを作成してもよい。第1の計測対象設定部311は、モニタ10に拡大表示された一方の画像に、マウス9の操作にしたがって特徴部分を設定する。
図30などを用いて説明したように、UI制御部310は、モニタ10が他方の画像を拡大表示するための表示データを作成してもよい。第2の計測対象設定部312は、モニタ10に拡大表示された他方の画像に、マウス9の操作にしたがって特徴部分を設定する。
図35ないし図37を用いて説明したように、第2の計測対象設定部312は、他方の画像に対して指定された2つの基準点を結ぶ直線である基準線81を特徴部分として設定してもよい。とりわけ、ハウジング40の角を基準点として設定する場合、フロントライト画像では角の検出が難しくなってしまう。そこで、バックライト画像に対して、ハウジング40の角を基準点として設定することで、角の位置を正確に検出できるようになる。また、これにより、ピンの中心から角までの距離も精度よく算出できるようになる。さらに、製品の良否判定の精度も向上することになる。
図5などを用いて説明したように、画像連結部321は、カメラ4が検査対象物8を複数回に分割して撮像して得られた複数の部分画像を撮像された順番にしたがって左から右に並べて連結して第1の画像および第2の画像を作成する。ここで、画像連結部321は、第1の画像を構成する複数の部分画像の連結位置(例:共通に写っているピンの位置やマークの位置)の座標を用いて、第2の画像を構成する複数の部分画像を連結してもよい。なお、UI制御部310は、第1の画像において連結位置を設定する連結位置設定部314をさらに備えていてもよい。連結位置設定部314は、隣り合った部分画像に共通に写っている検査対象物のパーツ(例:ピンや金具など)の位置を連結位置に設定してもよい。図45ないし図49を用いて説明したように、連結位置設定部314は、隣り合った部分画像に共通に写っている検査対象物を固定する治具の一部(例:マーク170)の位置を連結位置に設定してもよい。
画像連結部321は、検査対象物8の左端の部分画像と右端の部分画像とを第2の画像の両端に配置し、検査対象物8の中間の画像を省略して、第2の画像を作成してもよい。
図52において、画像認識部322は、UI制御部を通じて設定された検査対象物8の良品の一部を示すモデル画像と、カメラ4により取得されたラインを流れる検査対象物8の画像とを比較し、モデル画像と一致する部分をパターン認識により特定する。画像認識部322は、予め設定されたサーチ領域の範囲内でモデル画像をサーチする。モデル画像と同サイズの画像領域が検査領域となる。なお、モデル画像と一致した検査領域の中心が基準点となる。なお、UI制御部を通じて基準点が微調整されていることもある。サーチ領域の座標データや基準点(検出点)の座標データは特徴データ記憶部306に記憶されており、画像認識部322や画像連結部321、座標計算部323によって使用される。座標計算部323は、マウス9のポインタの位置を示す座標データと、バックライト画像やフロントライト画像の座標データとからサーチ領域、検査領域および基準点の座標を算出する。
図53は、外観検査に関するパラメータの設定処理から良品判定までを含む一連の工程を示したフローチャートである。
S531で、撮像制御部301は照明制御部26を通じてフロントライト51を点灯させ、検査対象物8(良品)を撮像してフロントライト画像61を取得する。フロントライト画像61は第1の画像記憶部304に記憶される。
S532で、撮像制御部301は照明制御部26を通じてフロントライト51を点灯させ、バックライト52を転送させる。
S533で、撮像制御部301はバックライト52により照明光を当てられた検査対象物8(良品)を撮像してバックライト画像62を取得する。バックライト画像62は第2の画像記憶部305に記憶される。
なお、検査対象物8(良品)を複数回にわけて撮像し、画像連結を実行する場合、S531ないしS532が繰り返し実行される。上述したように、バックライト画像62において、検査対象物8(良品)の中間部の画像は省略されてもよい。
S534で、画像連結部321は、連結位置設定部314により設定された連結位置を基準として、隣り合った部分画像を連結してゆく。フロントライト画像については、検査対象物8(良品)のすべての部分画像が存在するため、撮影した順番にしたがって左から右へと隣り合った部分画像を連結する。バックライト画像について、中間の部分画像を存在しないときは、フロントライト画像の右端画像の座標を利用してバックライト画像の右端画像の座標を設定する。つまり、画像連結部321は、バックライト画像の左端と右端がそれぞれフロントライト画像の左端と右端に一致するように、バックライト画像の部分画像を配置する。
S535で、第1の計測対象設定部311はフロントライト画像の特徴部分(例:ピンなど)を設定する。上述したように、第1の計測対象設定部311は、サーチ領域、検査領域および検出点の座標をマウス9の操作に応じて設定する。
S536で、第2の計測対象設定部312はバックライト画像の特徴部分(例:ハウジングの端など)を設定する。上述したように、第2の計測対象設定部312は、サーチ領域、検査領域および検出点の座標をマウス9の操作に応じて設定する。ここで、フロントライト画像に設定されたサーチ領域、検査領域および検出点はそのままバックライトのサーチ領域、検査領域および検出点として反映されるようにしてもよい。同様に、バックライト画像に設定されたサーチ領域、検査領域および検出点はそのままフロントライトのサーチ領域、検査領域および検出点として反映される。また、第2の計測対象設定部312は、寸法測定に使用される基準線の設定をフロントライト画像またはバックライト画像のいずれか一方を用いて設定してもよい。
S537で、閾値設定部313は、良品判定に使用する閾値を設定する。上述したように、マウス9などを通じて設定された公差や標準値から上限値や下限値などの閾値を設定する。その後、運転モードに移行する。
S538で、撮像制御部301は、カメラ4や照明装置5を制御して、搬送装置7によってラインを搬送される製品を撮像させ、必要に応じて画像連結部321が画像連結を実行し、寸法算出部302が、フロントライト画像とバックライト画像に対して、予め設定されたサーチ領域、検査領域および検出点を使用して寸法を算出する。
S539で、良否判定部303は、寸法算出部302が算出した距離などの寸法と閾値設定部313によって設定された閾値とを比較し、良品か不良品かを判定する。
このように本実施例によれば、外観検査装置1は、異なる照明条件で取得された第1の画像と第2の画像に対して寸法計測のための複数の異なる特徴部分を設定し、寸法を計測できるようにしている。上述したように、ピンとハウジングの角までの距離を算出しようとすると、フロントライトで得られた画像ではピンの位置を認識しやすいが、ハウジングの角の位置を認識しにくいため、正確に距離を算出できなかった。一方で、バックライトで得られた画像では、ハウジングの角の位置を認識しやすいが、ピンの位置を認識しにくいため、やはり正確に距離を算出できなかった。そこで、フロントライト画像からピンの位置を検出し、バックライト画像からハウジングの角の位置を検出することで、両者の距離を精度よく求められるようになり、良品判定の精度も向上する。
また、照明条件を変えて検査対象物8の同一の部分を撮像して得られた2枚の画像をそれぞれの両端が一致するように同時に表示されるため、ユーザは、両者を比較しながら、基準点などを設定しやすくなろう。とりわけ、これらの画像を上下に並べて表示すれば、一方の画像における検査対象物8の横方向における端部と、他方の画像における検査対象物8の横方向における端部とが一致するため、距離の測定対象となる特徴部分を視覚的に把握しやすくなろう。
さらに、第1の画像と第2の画像とのうちの一方の画像に対して設定された特徴部分を示す指標を、他方の画像に対しても連動して表示することで、一方の画像における特徴部分が他の画像においてどの部分に相当するかを把握しながら、正確に特徴部分を設定できるようになろう。
特徴部分としては、上述したように寸法の算出に使用される基準点や基準線などがある。たとえば、ハウジングの角に基準点(検出点)を設けたい場合には、バックライト画像を使用すると、正確に基準点を設定しやすくなろう。同様に、基準線をハウジングの外形に沿って設定したいときも、バックライト画像は有利であろう。ただし、ハウジングの色やピンの色、背景の色に依存して、フロントライト画像が有利なこともある。この場合、上述した実施例において、フロントライト画像とバックライト画像とは入れ替えて利用されることになる。
また、第1の画像や第2の画像を拡大表示することで、さらに正確に基準点を設定しやすくなろう。すなわち、第1の計測対象設定部がモニタ10に拡大表示された一方の画像に特徴部分を設定し、第2の計測対象設定部がモニタ10に拡大表示された他方の画像に特徴部分を設定する際に、ユーザは、特徴部分を正確に把握して基準点を設定できるであろう。
本実施例では、画像連結部321が、カメラ4が検査対象物8を複数回に分割して撮像して得られた複数の部分画像を、撮像された順番にしたがって左から右に並べて連結して第1の画像や第2の画像を作成する。この際に連結位置を指定する際にも、第1の画像や第2の画像とのうち、連結の精度が高くなるようほうの画像を使用することが望ましい。
本実施例では、画像連結部321は、第1の画像を構成する複数の部分画像の連結位置の座標を用いて、第2の画像を構成する複数の部分画像を連結する。第1の画像の連結結果を利用できるため、第2の画像の連結に必要となる演算量を大幅に軽減できるであろう。とりわけ、第2の画像において中間の部分画像を省略する場合には、さらに、第2の画像の連結に必要となる演算量をさらに軽減できるであろう。
本実施例では、フロントライト51とバックライト52とを切り替える照明装置5を例示した。しかし、本発明は、異なる照明条件で照明光を検査対象物8に照射する照明装置であれば適用可能である。たとえば、光沢を際立たせる同軸落射照明、傷や刻印のエッジが際立つローアングル照明、ブラックライトを当てるブラックライト照明、バックライトとして用いられる面照明、四方八方から拡散光を照射するドーム照明などを行う照明装置が採用されてもよい。
なお、単一の照明装置を使用しつつ、カメラ4のシャッタースピードだけを変える、また、照明の明るさを変更するなど、撮像条件を変えてもよい。これは、実質的に異なる照明光を検査対象物8に照射するのと、同様の効果が得られるからである。この場合の外観検査装置1は、検査対象物8に対して照明光を照射する照明装置5と、照明装置5によって照明光を照射された検査対象物8を、撮影条件を切り替えながら撮像するカメラ4とを有し、撮影条件の異なる複数の画像に対して計測処理を実行することになる。第1の画像記憶部304は、第1の撮像条件で検査対象物の所定の領域を撮像部が撮像して取得した第1の画像を記憶する。第2の画像記憶部305は、第2の撮像条件で検査対象物の所定の領域を撮像部が撮像して取得した第2の画像を記憶する。その他の動作は、照明条件を変えて取得された第1の画像、第2の画像に関する処理と同様となる。