(57)【特許請求の範囲】
【請求項１】
検査対象物を撮像して得られた検査対象画像の中から予め登録された規範パターンをサーチし、当該検査対象画像に対して当該規範パターンを位置決めする位置決め方法であって、
前記検査対象物の規範となる製品の規範画像を表示し、当該規範画像において前記規範パターンを取り囲むように第一領域を設定するとともに、前記検査対象画像において前記規範パターンに類似した複数の候補を選別するための領域である第二領域を、当該規範画像において設定する設定工程と、
前記設定工程により設定された前記第一領域に対する前記第二領域の相対的な位置関係を記憶する記憶工程と、
前記規範パターンを前記検査対象画像からサーチすることで前記規範パターンに類似した複数の候補を抽出し、該複数の候補の各々に対応する前記第一領域の位置および姿勢を特定する抽出工程と、
前記抽出工程において抽出された前記規範パターンの複数の候補の各々に対して、前記抽出工程において特定された前記第一領域の位置および姿勢に対して前記相対的な位置関係を有するように、前記第一領域の位置および姿勢に応じて前記第二領域を配置させ、前記規範パターンの複数の候補のそれぞれに配置された前記第二領域の評価値に基づき、前記規範パターンの複数の候補を選別する選別工程と、
前記選別工程における選別結果に基づいて、前記規範パターンの所望の候補を出力する出力工程と
を有することを特徴とする位置決め方法。
【請求項２】
前記選別工程は、前記規範パターンの複数の候補のそれぞれに配置された前記第二領域の評価値が所定条件を満たしているかどうかを判定する判定工程を含むことを特徴とする請求項１に記載の位置決め方法。
【請求項３】
前記判定工程は、前記検査対象画像から抽出された前記規範パターンの複数の候補についての前記第二領域の評価値が閾値を超えているかどうかを判定することを特徴とする請求項２に記載の位置決め方法。
【請求項４】
前記抽出工程は、前記規範パターンと前記検査対象画像との相関値に基づき前記規範パターンに類似した複数の候補を抽出する工程を含み、
前記選別工程における評価値と前記抽出工程における相関値とはそれぞれ異なる指標であることを特徴とする請求項１ないし３のいずれか一項に記載の位置決め方法。
【請求項５】
前記相関値は前記第一領域に含まれる輪郭の類似度に関する指標であり、前記評価値は前記第二領域に含まれる輪郭画素の数に関する指標であることを特徴とする請求項４に記載の位置決め方法。
【請求項６】
前記規範パターンの候補の位置および姿勢に合わせて前記検査対象物の外観検査を実行する外観検査ツールの検査領域の位置および姿勢を決定する決定工程と、
前記外観検査ツールにより前記検査対象画像に対して配置された前記検査領域において外観検査を実行する実行工程と
を有することを特徴とする請求項１ないし５のいずれか一項に記載の位置決め方法。
【請求項７】
前記選別工程の実行の可否を選択する選択工程をさらに有し、
前記選択工程において前記選別工程を実行することが選択されると、前記出力工程は、前記選別工程において選別された前記規範パターンの候補を出力し、前記選択工程において前記選別工程を実行しないことが選択されると、前記出力工程は、前記抽出工程において抽出された前記規範パターンの候補を出力することを特徴とする請求項１ないし６のいずれか一項に記載の位置決め方法。
【請求項８】
前記第一領域は前記検査対象物に設けられたアライメントマークを囲むように設定され、前記第二領域は前記アライメントマークの周囲に設定されることを特徴とする請求項１ないし７のいずれか一項に記載の位置決め方法。
【請求項９】
前記第二領域は、前記検査対象物の表面と裏面とを識別するための特徴に対して設定されることを特徴とする請求項１ないし７のいずれか一項に記載の位置決め方法。
【請求項１０】
前記第二領域は、前記検査対象物をロボットハンドで把持する際の障害となる障害物の有無を検知するために前記第一領域の周囲に配置されることを特徴とする請求項１ないし９のいずれか一項に記載の位置決め方法。
【請求項１１】
前記第二領域は、複数の飛び地領域で構成されることを特徴とする請求項１ないし１０のいずれか一項に記載の位置決め方法。
【請求項１２】
コンピュータに請求項１ないし１１のいずれか一項に記載の位置決め方法に含まれる各工程を実行させるプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録したコンピュータ可読記録媒体。
【請求項１４】
検査対象物を撮像して得られた検査対象画像の中から予め登録された規範パターンをサーチし、当該検査対象画像に対して当該規範パターンを位置決めする位置決め装置であって、
前記検査対象物の規範となる製品の規範画像を表示し、当該規範画像において前記規範パターンを取り囲むように第一領域を設定するとともに、前記検査対象画像において前記規範パターンに類似した複数の候補を選別するための領域である第二領域を、当該規範画像において設定する設定手段と、
前記設定手段により設定された前記第一領域に対する前記第二領域の相対的な位置関係を記憶する記憶手段と、
前記規範パターンを前記検査対象画像からサーチすることで前記規範パターンに類似した複数の候補を抽出し、該複数の候補の各々に対応する前記第一領域の位置および姿勢を特定する抽出手段と、
前記抽出手段により抽出された前記規範パターンの複数の候補の各々に対して、前記抽出手段により特定された前記第一領域の位置および姿勢に対して前記相対的な位置関係を有するように、前記第一領域の位置および姿勢に応じて前記第二領域を配置させ、前記規範パターンの複数の候補のそれぞれに配置された前記第二領域の評価値に基づき、前記規範パターンの複数の候補を選別する選別手段と、
前記選別手段による選別結果に基づいて、前記規範パターンの所望の候補を出力する出力手段と
を有することを特徴とする位置決め装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、製品の画像を撮像して製品の位置決めを行う位置決め方法、位置決め装置、プログラムおよびコンピュータ可読記録媒体に関する。
【背景技術】
【０００２】
工場で製造された製品の良否を判定するために外観検査が実行される。外観検査では検査対象物をカメラで撮影して検査対象画像が取得される。製品の規範となる良品を撮影して得られた規範画像から、当該良品を取り囲むように領域を設定し、当該領域から良品の特徴（規範パターンなど）を抽出し、この特徴と類似した候補が検査対象画像内で探索され、探索により見つかった候補に対して外観検査が実行される。候補を見つけるために、規範画像から抽出されたエッジ情報が用いられることも多い（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−０６７２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、検査対象画像内に規範パターンと類似する多数の候補が存在することがある。中には単に画像として類似しているにすぎず、抽出された候補が外観検査の対象でないこともある。外観検査以外のアプリケーションにおいても候補の選別が必要となることがある。たとえば、複数の製品の中からロボットハンドでロボットピッキングしやすい製品を選別したいとの要望もある。たとえば、製品の周囲に障害物があって、ロボットピッキングに失敗しそうな製品は候補から排除されることが望ましい。また、製品に刻印されたアライメントマークを検出して製品の位置決めを行うアプリケーションでは、アライメントマークによく似た形状部分を誤検知しないようにする工夫が必要となる。そこで、本発明は、検査対象画像の中からユーザが所望する特徴部分を精度よく位置決めすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、たとえば、
検査対象物を撮像して得られた検査対象画像の中から予め登録された規範パターンをサーチし、当該検査対象画像に対して当該規範パターンを位置決めする位置決め方法であって、
前記検査対象物の規範となる製品の規範画像を表示し、当該規範画像において前記規範パターンを取り囲むように第一領域を設定するとともに、前記検査対象画像において前記規範パターンに類似した複数の候補を選別するための領域である第二領域を、当該規範画像において設定する設定工程と、
前記設定工程により設定された前記第一領域に対する前記第二領域の相対的な位置関係を記憶する記憶工程と、
前記規範パターンを前記検査対象画像からサーチすることで前記規範パターンに類似した複数の候補を抽出し、該複数の候補の各々に対応する前記第一領域の位置および姿勢を特定する抽出工程と、
前記抽出工程において抽出された前記規範パターンの複数の候補の各々に対して、前記抽出工程において特定された前記第一領域の位置および姿勢に対して前記相対的な位置関係を有するように、前記第一領域の位置および姿勢に応じて前記第二領域を配置させ、前記規範パターンの複数の候補のそれぞれに配置された前記第二領域の評価値に基づき、前記規範パターンの複数の候補を選別する選別工程と、
前記選別工程における選別結果に基づいて、前記規範パターンの所望の候補を出力する出力工程と
を有することを特徴とする位置決め方法を提供する。
【発明の効果】
【０００６】
本発明によれば、検査対象画像の中からユーザが所望する特徴部分を精度よく位置決めすることが可能となる。
【図面の簡単な説明】
【０００７】
【図１】外観検査装置の概略を示す概略図
【図２】外観検査装置のハードウェア構成の一例を示す図
【図３】外観検査処理の基本フローを示すフローチャート
【図４】規範パターンと候補との関係を説明する図
【図５】規範パターンと候補との関係を説明する図
【図６】規範領域と選別領域の例を説明する図
【図７】規範領域と選別領域の例を説明する図
【図８】ＣＰＵや画像処理部の機能を説明する図
【図９】設定ユーザインタフェースの一例を示す図
【図１０】設定処理を示すフローチャート
【図１１】選別処理を含むアプリケーションを示すフローチャート
【図１２】選別処理を示すフローチャート
【図１３】検査画像における規範領域と選別領域の配置の例を示す図
【図１４】評価値決定処理を示すフローチャート
【発明を実施するための形態】
【０００８】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【０００９】
図１は外観検査装置１の概略を示す概略図である。外観検査装置１は、コントローラ２、プログラマブルロジックコントローラ（ＰＬＣ）３、カメラ４、照明装置５、コンソール９、モニタ１０、プログラム作成支援装置１１を有している。ＰＬＣ３によって制御されるベルトコンベヤなどの搬送装置７によって検査対象物８が搬送され、照明装置５によって照明された検査対象物８がカメラ４によって撮像される。検査対象物８はワークと呼ばれることもある。コントローラ２は、たとえば、ＰＬＣ３からの命令にしたがって、照明装置５の照明条件を切り替えたり、カメラ４に撮像を実行させたりする。
【００１０】
コントローラ２は検査対象物８の画像からエッジ検出や面積計算などの各種計測処理を実行する。たとえば、コントローラ２はカメラ４から得られた画像データを用いて画像処理を実行し、外部接続されたＰＬＣ３などの制御機器に対し、検査対象物８の良否などの判定結果を示す信号として判定信号を出力する。
【００１１】
カメラ４は検査対象物８を撮像する撮像素子を有するカメラモジュールを備えている。撮像素子としては、たとえばＣＭＯＳ（相補型金属酸化膜半導体）やＣＣＤ（電荷結合素子）を用いることができる。カメラ４は、ＰＬＣ３から入力される制御信号、たとえばカメラ４から画像データを取り込むタイミングを規定する撮像トリガ信号に基づいて、検査対象物８の撮像を行う。
【００１２】
モニタ１０は液晶パネルや自発光式パネル等の表示装置である。検査対象物８を撮像して得られた画像や、その画像データを用いた計測処理の結果を表示する。モニタ１０は、パターンマッチング用の比較データ（規範画像）を作成するために使用される基準画像など、良品から取得された画像を表示してもよい。なお、規範画像はモデル画像と呼ばれてもよい。
【００１３】
コンソール９は、ユーザがモニタ１０上で各種操作するため（モニタ１０がタッチパネルなら省略可）の入力装置である。コンソール９は、モニタ１０上で各メニュー項目を選択したり、パラメータ値を設定したりする。コンソール９は、ポインティングデバイスの一例である。ユーザは、モニタ１０を視認することで、コントローラ２の運転中の動作状態を確認することができる。また、ユーザは、モニタ１０を視認しつつ、コンソール９を操作することによって、必要に応じて各種設定や各種編集を行うことができる。
【００１４】
照明装置５は、検査対象物８を照明する装置である。照明装置５としては、たとえば、光沢を際立たせる同軸落射照明、傷や刻印のエッジが際立つローアングル照明、ブラックライトを当てるブラックライト照明、面照明（検査対象物の透過光または影を観察するための透過照明）、四方八方から拡散光を照射するドーム照明など、各種の照明を行う照明装置が採用されうる。特に、同軸落射照明は、視野全体に略均一に照明を当てる照明手法であり、カメラ４と照明装置５をＶ字に配置して検査対象物８からの正反射光を受光する照明手法とほぼ同様の効果が得られる利点がある。また、ローアングル照明は、たとえばＬＥＤ等の投光素子をリング状に配置し、検査対象物８の表面を浅い角度で全周方向から光を照らす照明手法である。検査対象物８の表面に当たった光はカメラ４の方向には反射せず、刻印や傷のエッジ部分で反射した光だけが受光される。すなわち、照射角度が非常に浅い角度であるため、光沢面では反射が弱く、検査対象物８上の僅かな傷やエッジでのみ強い反射が得られ、はっきりとしたコントラストが得られる。
【００１５】
プログラム作成支援装置１１は、コントローラ２が実行する制御プログラムを作成するためのコンピュータ（ＰＣ）である。制御プログラムは、以下で説明するような外観検査に関するそれぞれ異なる計測を実行するための複数の計測処理モジュールを有している。コントローラ２は、設定された順番に沿って各種計測処理モジュールを呼び出して実行する。プログラム作成支援装置１１とコントローラ２とは、通信ケーブルや通信ネットワークを介して接続されている。プログラム作成支援装置１１上で生成された制御プログラムやパラメータ値等の設定情報は通信ケーブル等を介してコントローラ２に転送される。また逆に、コントローラ２から制御プログラムやパラメータ値等の設定情報などを取り込んで、プログラム作成支援装置１１が再編集してもよい。
【００１６】
工場において、複数の検査対象物８は、コンベアなどの搬送装置７のライン上を流れてくる。コントローラ２は、検査対象物８の上方（または側方、下方）に設置されているカメラ４により検査対象物８を撮像し、撮像した画像を基準画像（たとえば良品を撮像した画像）や基準画像から作成したモデル画像と比較して、検査対象物８に傷や欠陥等が存在するか否かの判断を行う。検査対象物８に傷や欠陥等が存在すると判断した場合には、ＮＧ判定となる。一方、検査対象物８に傷や欠陥等が存在しないと判断した場合には、ＯＫ判定となる。このように、外観検査装置１は、検査対象物８を撮像した画像を用いて、検査対象物８の外観の良否判定を行う。
【００１７】
検査対象物８の外観検査を行う場合、ユーザは検査に用いる各種パラメータの内容（パラメータ値等）を設定する必要がある。パラメータとしては、たとえば、シャッタースピードなどの撮像条件を規定する撮像パラメータ、照度などの照明条件を規定する照明パラメータ、どのような検査を行うかを示す検査条件を規定する計測処理パラメータ（いわゆる検査パラメータ）等がある。外観検査装置１では、良否判定を行う前に、これらの各種パラメータの内容を設定する。
【００１８】
外観検査装置１は、実際に搬送装置７のライン上を次々と流れてくる検査対象物８の外観検査を行うモード、すなわち実際に検査対象物８の良否判定を行う運転モード（Ｒｕｎモード）と、検査に用いる各種パラメータの内容の設定を行う設定モード（非Ｒｕｎモード）とを有しており、これらのモードを切り替えるためのモード切替手段を有している。ユーザは、運転モードにおいて、搬送装置７のライン上を流れてくる複数の検査対象物８に対して良否判定が繰り返し行われる前に、設定モードにおいて、各種パラメータに対して最適なパラメータ値を設定（調整）する。基本的に、各種パラメータに対してはデフォルト値が設定されており、ユーザがパラメータ値としてデフォルト値が最適であると判断した場合には、特段、パラメータ値を調整する必要はない。しかし、実際のところ、周囲の照明環境、カメラ４の取り付け位置、カメラ４の姿勢ずれ、ピント調整等の相違に起因して、デフォルト値のままではユーザが望む判定結果を得ることができない場合がある。そこで、設定モードにおいて、コントローラ２のモニタ１０上またはプログラム作成支援装置１１上にて、運転モードから設定モードに切り換え、各種パラメータの内容を編集できるようになっている。
【００１９】
＜外観検査装置１のハードウェア構成＞
図２は外観検査装置１のハードウェア構成の一例を示す図である。主制御部２１は、各種プログラムに基づき数値計算や情報処理を行うとともに、ハードウェア各部の制御を行う。たとえば、中間演算処理装置としてのＣＰＵ２２と、主制御部２１が各種プログラムを実行する際のワークエリアとして機能するＲＡＭなどのワークメモリ２３と、起動プログラムや初期化プログラムなどが格納されたＲＯＭ、フラッシュＲＯＭまたはＥＥＰＲＯＭなどのプログラムメモリ２４とを有している。照明制御部２６は主制御部２１のＣＰＵ２２やＰＬＣ３からの命令に基づいて照明装置５に対して照明制御信号を送信する。
【００２０】
画像入力部２５はカメラ４での撮像により取得された画像データを取り込むＡＳＩＣ（Application Specific Integrated Circuit）などから構成される。画像入力部２５には画像データをバッファリングするためのフレームバッファが含まれていてもよい。具体的に、画像入力部２５は、ＣＰＵ２２からカメラ４の撮像指令を受信すると、カメラ４に対して画像データ取り込み信号を送信する。そして、画像入力部２５は、カメラ４で撮像が行われた後、撮像して得られた画像データを取り込む。取り込んだ画像データは、一旦バッファリング（キャッシュ）される。
【００２１】
操作入力部２７は、コンソール９からの操作信号が入力される。操作入力部２７は、ユーザの操作に応じてコンソール９が出力する操作信号を受信するインターフェース（Ｉ／Ｆ）として機能する。
【００２２】
モニタ１０には、コンソール９を用いたユーザの操作内容が表示される。具体的に説明すると、コンソール９を操作することによって、ユーザはモニタ１０上で、画像処理の制御プログラムを編集したり、各計測処理モジュールのパラメータ値を編集したり、カメラ４の撮像条件を設定したり、基準画像の中で特徴的な部分を規範画像として登録したり、サーチ領域内をサーチして規範画像に一致した領域を検査領域として設定したりと、様々なことを行うことができる。
【００２３】
表示制御部２８はモニタ１０に対して画像を表示させる表示用ＤＳＰなどから構成される。表示制御部２８には、画像を表示させる際に画像データを一時記憶するＶＲＡＭなどのビデオメモリが含まれていてもよい。表示制御部２８はＣＰＵ２２から送られてきた表示指令（表示コマンド）に基づいてモニタ１０に対して所定の画像（映像）を表示させるための制御信号を送信する。たとえば、表示制御部２８は、計測処理前または計測処理後の画像データを表示するために、モニタ１０に対して制御信号を送信する。また、表示制御部２８はコンソール９を用いたユーザの操作内容をモニタ１０に表示させるための制御信号も送信する。
【００２４】
通信部２９は、外部のＰＬＣ３やプログラム作成支援装置１１などと通信可能に接続される。たとえば、センサ（不図示の光電センサ等）が検査対象物８の到着タイミングを認識するために製造ラインに設置され、かつ、ＰＬＣ３に接続されている。当該センサは検査対象物８を検知するとトリガ信号を出力する。通信部２９はＰＬＣ３から出力されたトリガ信号を受信するインターフェース（Ｉ／Ｆ）として機能する。トリガ信号はカメラ４に撮像を実行させる制御信号として利用される。また、通信部２９は、プログラム作成支援装置１１から転送されてくるコントローラ２の制御プログラムなどを受信するインターフェース（Ｉ／Ｆ）としても機能する。
【００２５】
画像処理部３０はエッジ検出や面積計算などの計測処理を実行する演算用ＤＳＰなどから構成される。画像処理部３０には計測処理用の画像データを記憶するメモリが含まれていてもよい。画像処理部３０は画像データに対する計測処理を実行する。具体的に、画像処理部３０は、画像入力部２５のフレームバッファから画像データを読み出して、画像処理部３０内のメモリへ内部転送を行う。そして、画像処理部３０は、そのメモリに記憶された画像データを読み出して、計測処理を実行する。
【００２６】
プログラムメモリ２４は、照明制御部２６、画像入力部２５、操作入力部２７、表示制御部２８、通信部２９、および画像処理部３０の各部を、ＣＰＵ２２のコマンド等により制御するための制御プログラムを格納している。また、プログラム作成支援装置１１から転送されてきた制御プログラムはプログラムメモリ２４に格納される。
【００２７】
ＣＰＵ２２は、通信部２９を介してＰＬＣ３から撮像トリガ信号を受信すると、画像入力部２５に対して撮像指令（コマンド）を送る。また、ＣＰＵ２２は、制御プログラムに基づいて、画像処理部３０に対して、実行すべき画像処理を指示するコマンドを送信する。なお、撮像トリガ信号を生成する装置として、ＰＬＣ３ではなく、光電センサなどのトリガ入力用のセンサを通信部２９に直接接続してもよい。
【００２８】
これらの各ハードウェアは、バスなどの電気的な通信路（配線）を介し、通信可能に接続されている。
【００２９】
＜計測モジュール（画像処理ツール）＞
ここでは、外観検査を実行する計測モジュールを画像処理ツールと呼ぶことにする。なお、画像処理ツールは検査ツールや計測ツールと呼ばれてもよい。画像処理ツールには様々なものがあり、主要な画像処理ツールとしては、エッジ位置計測ツール、エッジ角度計測ツール、エッジ幅計測ツール、エッジピッチ計測ツール、エリア計測ツール、ブロブ計測ツール、パターンサーチ計測ツール、傷計測ツールなどがある。
●エッジ位置計測ツール：検査対象物８の画像が表示される画面上において、エッジ位置を検出したい検査領域に対してウインドウを設定することにより、設定された検査領域内で、任意の方向にスキャンして複数のエッジ（明から暗に切り替わる箇所または暗から明に切り替わる箇所）を検出する。検出した複数のエッジから、一のエッジの指定を受け付け、指定を受け付けたエッジの位置を計測する。
●エッジ角度計測ツール：設定を受け付けた検査領域内に２つのセグメントを設定し、それぞれのセグメントで検出したエッジからの検査対象物８の傾斜角度を計測する。傾斜角度は、たとえば時計回りを正とすることができる。
●エッジ幅計測ツール：設定を受け付けた検査領域内で、任意の方向にスキャンして複数のエッジを検出し、検出した複数のエッジ間の幅を計測する。
●エッジピッチ計測ツール：設定を受け付けた検査領域内で、任意の方向にスキャンして複数のエッジを検出する。検出した複数のエッジ間の距離（角度）の最大値／最小値や平均値を計測する。
●エリア計測ツール：カメラ４で撮像した検査対象物８の画像を二値化処理して、白色領域または黒色領域の面積を計測する。たとえば、計測する対象として白色領域または黒色領域の指定をパラメータとして受け付けることにより、白色領域または黒色領域の面積を計測する。
●ブロブ計測ツール：カメラ４で撮像した検査対象物８の画像を二値化処理して、同一の輝度値（２５５または０）の画素の集合（ブロブ）に対してパラメータとしての数、面積、重心位置等を計測する。
●パターンサーチ計測ツール：比較対象とする画像パターン（モデル画像）を事前に記憶装置に記憶しておき、撮像した検査対象物８の画像の中から記憶してある画像パターンに類似している部分を検出することで、画像パターンの位置、傾斜角度、相関値を計測する。
●傷計測ツール：設定を受け付けた検査領域内で、小領域（セグメント）を移動させて画素値の平均濃度値を算出し、閾値以上の濃度差となった位置を傷が存在すると判定する。
●その他にも、検査領域内の文字情報を切り出して辞書データ等と照合することで文字列を認識するＯＣＲ認識ツール、画像上に設定したウインドウ（領域）をシフトさせながら、各ウインドウの位置においてエッジの検出を繰り返す機能を有するトレンドエッジツール、設定したウインドウ内の濃淡の平均、偏差等を計測する機能を有する濃淡ツール、設定したウインドウ内の濃度の平均、偏差等を計測する機能を有する濃度ツールなどもあり、ユーザは検査内容に応じて必要な画像処理ツールを選択することができる。なお、これらの画像処理ツールは、典型的な機能およびその実現方法の代表例を示すものに過ぎない。あらゆる画像処理に対応する画像処理ツールが本願発明の対象になり得る。
【００３０】
＜外観検査の基本フロー＞
図３は外観検査処理の基本フローを示すフローチャートである。外観検査処理は、検査対象物８の良否を判定するために必要となる規範画像、検査領域、サーチ領域、検出点（以下、基準点と称す）、基準線、公差などの閾値を設定する設定モードと、実際に検査対象物８を撮像してパターンマッチングなどの画像処理を実行して良否を判定する運転モードとに分かれている。なお、検査用のパラメータを適切に設定するために、設定モードと運転モードとを繰り返し実行することが一般的である。なお、寸法計測、エリアツールや傷ツールなどによる外観検査処理が実行されてもよい。
【００３１】
Ｓ１で、ＣＰＵ２２は、画像入力部２５を通じてカメラ４に撮像命令を送信することで、カメラ４に撮像を実行させる。ＣＰＵ２２は、カメラ４により取得された画像データを、表示制御部２８を通じてモニタ１０に表示させる。ユーザは、モニタ１０に表示された画像を視認することで、カメラ４の姿勢や照明装置５の照明状態を確認する。
【００３２】
Ｓ２で、ＣＰＵ２２は、コンソール９によって入力された指示に基づいてカメラ４のシャッタースピードなどの露光条件を調整する。なお、ユーザは、カメラ４の姿勢を手動で調整してもよい。
【００３３】
Ｓ３で、ＣＰＵ２２は、搬送装置７の撮像位置に配置された検査対象物８の画像をワーク画像として取り込むために、カメラ４に撮像命令を送信する。なお、ワーク画像（基本画像）は、不揮発性メモリに記憶されて繰り返し使用される基準画像であってもよいし、規範画像を作成するためにその都度撮像される都度画像であってもよい。ここでは、ワーク画像はワークメモリ２３に記憶される。なお、モデル画像は基準画像から作成してもよい。
【００３４】
Ｓ４で、ＣＰＵ２２は、位置・姿勢補正の設定処理を実行する。カメラ４によって取得された画像において、検査対象物８の画像の位置が理想位置からずれていることがある。そこで、ＣＰＵ２２は、検査対象物８の画像から検査対象物８の位置と姿勢（回転角度）を取得する。取得された位置におうじて画像処理ツール（検査ツール）の位置と姿勢を補正することで、位置ずれを補正する。なお、位置・姿勢補正は、画像処理部３０が実行してもよい。このように位置・姿勢補正は検査ツールの位置と姿勢を検査対象物８の画像の位置と姿勢に整合させる処理である。
【００３５】
Ｓ５で、ＣＰＵ２２は、上述した各種の検査ツールを設定する。たとえば、外観検査においてどの計測を実行するかや計測を実行するために必要となるサーチ領域、検査領域、基準点などが設定される。
【００３６】
Ｓ６で、ＣＰＵ２２は、外観検査で必要となるパラメータ（例：公差などの検査閾値）を、コンソール９によって入力された指示に基づいて設定する。Ｓ７で、ＣＰＵ２２は、設定モードから運転モードに切り替える。
【００３７】
Ｓ８で、ＣＰＵ２２は、ＰＬＣ３からの指示にしたがって検査対象物８をカメラ４で撮像し、画像処理部３０にパターンマッチングなどを実行させ、実行結果に基づいて良否を判定し、判定結果をＰＬＣ３に出力したり、モニタ１０に出力したりする。
【００３８】
Ｓ９で、ＣＰＵ２２は、コンソール９からモードの切り替え指示が入力されると、運転モードから設定モードに切り替える。Ｓ１０で、ＣＰＵ２２は、コンソール９によって入力された指示に基づいてパラメータを再設定する。
【００３９】
＜選別手法の基本的な考え方＞
図４（Ａ）は検査対象物８の一部に付与されるアライメントマークの規範パターン３１を示している。規範パターンは、検査対象物８の良品を撮影して得られた規範画像（モデル画像やテンプレート画像と呼ばれてもよい）から画像処理によって抽出される画像特徴である。検査対象物８を加工するために検査対象物８を加工機械に対して位置決めするために、アライメントマークが利用される。
【００４０】
図４（Ｂ）は検査対象物８に形成されているアライメントマーク３２と、一部がアライメントマーク３２に類似した類似形状３３とを示している。アライメントマーク３２に傷がついてしまったり、検査対象物８を撮像するときに照明光の影響でアライメントマーク３２が不鮮明に写ってしまったりすることがある。このような場合に、類似形状３３の一部が規範パターン３１の候補として検知されてしまうことがある。また、エッジの一致度による評価値に基づいて候補を選択する場合、規範パターン３１と類似したエッジが検査画像内に存在する限り、規範パターン３１に対する評価値が高くなってしまう。つまり、検査画像には規範パターン３１と類似したエッジに連なった別のエッジが存在したとしても、評価値のみに頼った手法では評価値が高くなってしまうのである。なお、規範パターン３１の内部にある傷やマークなどが規範パターン上で輪郭を形成しない場合や形成するとしても規範パターンに比べマーク等が相対的に小さい場合、輪郭の評価値に頼った手法では規範パターン３１の候補を取捨選択できないだろう。また、ここでは規範パターンを構成するエッジと、検査画像上のエッジとを比較し、規範パターンを構成するエッジに対応するエッジが検査画像上に存在すると高くなるような評価値を例にしたが、評価値を演算する手法としては様々な手法を採用されうる。たとえば、正規化相関などにより得られる相関値が採用されてもよい。画像の正規化相関に着目する手法では、規範画像に存在しない部分があると相関値が下がるといった利点がある。しかし、正規化相関による相関値であっても、検査画像が不鮮明な場合や、規範パターンに比べマーク等が相対的に小さい場合などは、相関値だけではマークや傷の有無を判別できない点で、エッジ評価値と同じ課題を有する。なお、エッジの一致度による評価値や正規化相関による相関値を含む、規範パターンとの類似度を表す評価値を単に相関値と呼ぶ。
【００４１】
図４（Ｃ）は複数のワーク（半導体チップ３６ａ、３６ｂ）から表向きのワーク（半導体チップ３６ａ）のみを選別する例を示している。小さな電子部品を基板に実装する際に表向きに小さな電子部品を実装したいという要望がある。従来のように規範パターンの外形的な特徴に基づいて電子部品をサーチしたのでは、表向きだけでなく裏向きの電子部品も候補として検知されてしまう。
【００４２】
図５（Ａ）はロボットハンドによるロボットピッキングの対象となっているネジ３５を示している。ネジ３５を撮影することでネジ３５の規範パターンが抽出される。図５（Ｂ）はベルトコンベア等により搬送されてきた複数のネジ３５ａ、３５ｂなどである。ロボットハンドでネジ３５を把持するには、ネジ３５の周囲には障害物が無いことが望ましい。たとえば、ネジ３５ａの周囲には他のネジが存在しているため、ネジ３５ａのロボットピッキングは容易ではない。したがって、周囲に障害物が存在しないネジ３５ｂが候補として検知されることが望まれる。しかし、ネジ３５から抽出された規範パターンを用いてサーチを実行すると、図５（Ｃ）が示すように、規範パターンと類似する全てのネジ３５が候補として抽出されてしまう。
【００４３】
このように外観検査やロボットピッキングなどの様々なアプリケーションでは規範パターンと類似する複数の候補のうちよりアプリケーションの目的に適したワークを選別する手法が必要とされている。
【００４４】
本実施形態では規範パターンに類似した複数の候補の中から所望の候補を選別するために規範画像に対して選別領域が設定される。また、規範画像には規範パターンを抽出するための規範領域も設定される。なお、規範パターンと選別領域との位置関係は規範画像を用いて設定され、この位置関係は検査対象画像においても維持される。スケール処理が介在したとしてもこれらの位置関係は維持される。
【００４５】
図６（Ａ）はアライメントマークの外形（輪郭）を規範パターン３１として設定ないしは抽出するための規範領域４０と検査対象画像（検査画像）において規範パターン３１の候補を選別するための選別領域４１との配置例を示している。この例では複数の選別領域４１が設けられているため、規範領域４０の左側に配置された選別領域４１を選別領域４１ａと称し、規範領域４０の右側に配置された選別領域４１を選別領域４１ｂと称すことにする。このように、ａ，ｂなどの文字は複数の選別領域４１を区別するために付与される便宜上の文字にすぎない。複数の選別領域４１に共通の事項を説明する際には、ａ，ｂなどの文字が省略される。規範領域４０および選別領域４１は規範画像に対して設定され、規範領域４０と選別領域４１との相対的な位置関係は維持される。なお、規範画像には検出点４２も設定されてもよい。
【００４６】
図６（Ｂ）はネジ３５の輪郭を規範パターン３１として設定ないしは抽出するための規範領域４０と検査画像において規範パターン３１の候補を選別するための選別領域４１との配置例を示している。この例ではネジ３５のロボットピッキングが想定されているため、ロボットピッキングの稼働範囲に選別領域４１ａ、４１ｂが設けられている。
【００４７】
図６（Ｃ）は半導体チップ３６の輪郭を規範パターン３１として設定ないしは抽出するための規範領域４０と検査画像において規範パターン３１の候補を選別するための選別領域４１との配置例を示している。この例では半導体チップ３６を表向きに実装するアプリケーションが想定されているため、表向きの半導体チップ３６ａと裏向きの半導体チップ３６ｂとを選別するための選別領域４１が設けられている。この例では、半導体チップ３６の表面には識別番号などの文字が付与されており、裏面には文字が付与されていない。したがって、表面の文字に対して選別領域４１が設定されれば、半導体チップ３６の表裏を区別可能となる。
【００４８】
図７は選別領域を用いた選別結果の一例を示す図である。規範領域４０から抽出された輪郭特徴を規範パターン３１として用いることで、図５（Ｃ）に示したように規範パターン３１に類似した複数の候補が抽出される。次に、図６（Ｂ）に示したような２つの選別領域４１ａ、４１ｂに着目する。この例では、２つの選別領域４１ａ、４１ｂにはともに障害物が無いことが選別条件として設定される。検査画像から抽出された複数の候補のうち、２つの選別領域４１ａ、４１ｂにおける画像の特徴と選別条件とが比較される。その結果、図７が示すように、ネジ３５ａなどの選別領域４１ａ、４１ｂは選別条件を満たしていないためネジ３５ａなどは候補から除外される。ネジ３５ｂの選別領域４１ａ、４１ｂは選別条件を満たしているためネジ３５ｂは最終的な候補に決定される。
【００４９】
＜ＣＰＵや画像処理部の機能＞
図８はＣＰＵ２２や画像処理部３０の機能の一例を示す図である。ＣＰＵ２２はプログラムメモリ２４に記憶されている制御プログラムを実行することで様々な機能を実現する。これらの機能の一部またはすべてはＡＳＩＣやＦＰＧＡなどの論理回路によって実現されてもよい。
【００５０】
ＵＩ制御部５０は外観検査などの各種のアプリケーションを実行する上で必要となる各種の設定を行うためのユーザインタフェース（ＵＩ）を制御する。ＵＩ制御部５０はコンソール９などから入力されるユーザ指示を受け付けたり、表示制御部２８を通じてモニタ１０に情報を表示したりする。たとえば、コンソール９を通じて位置補正設定が指示されると、ＵＩ制御部５０は、図９に示すような位置補正設定ＵＩ８０をモニタ１０に表示する。位置補正設定ＵＩ８０は、規範画像を表示する表示領域８１や選別処理を有効化／無効化するためのチェックボックス８２、規範領域４０を編集するための編集ボタン８３、選別領域４１を編集するための編集ボタン８４、選別条件を編集するための編集ボタン８５などを有している。選別有効化部５４は、チェックボックス８２にチェックが付与されると、選別処理が有効化されたことを示す情報を設定データ記憶部６２に記憶する。なお、ＵＩ制御部５０は、チェックボックス８２にチェックが付与されると、選別領域４１を編集するための編集ボタン８４と選別条件を編集するための編集ボタン８５を操作不可能な状態（グレーアウトなど）から操作可能な状態に変更してもよい。
【００５１】
規範領域設定部５２は、コンソール９からのユーザ指示に応じて、表示領域８１に表示されている規範画像に対して規範領域４０を設定する。規範領域設定部５２は規範画像における規範領域４０の位置（例：４つの頂点の座標や検出点４２の座標など）を示すデータを設定データ記憶部６２に記憶する。なお、画像処理部３０は、規範領域４０によって囲まれている規範パターン３１の特徴を抽出し、特徴を示すデータを設定データ記憶部６２に記憶してもよい。なお、規範パターン３１の特徴の抽出が不要なサーチ手法が採用される場合、事前の特徴抽出処理は省略される。
【００５２】
選別領域設定部５３は、コンソール９からのユーザ指示に応じて、表示領域８１に表示されている規範画像に対して選別領域４１を設定する。選別領域設定部５３は規範領域４０に対する各選別領域４１の位置（例：原点や検出点４２からの４つの頂点までの距離など）を示すデータを設定データ記憶部６２に記憶する。なお、画像処理部３０は、選別領域４１によって囲まれている規範画像の一部の特徴を抽出し、この特徴を示すデータを選別条件として設定データ記憶部６２に記憶してもよい。なお、選別領域４１の特徴の抽出が不要な選別手法が採用される場合、事前の特徴抽出処理は省略される。
【００５３】
選別条件設定部６３は、選別条件の編集ボタン８５が操作されてユーザにより設定された選別条件を設定データ記憶部６２に記憶する。たとえば、エッジ画素数またはエッジ画素比の下限値や上限値が選別条件として設定されてもよい。下限値や上限値などの閾値は検査対象物８の種類や規範パターン３１の周囲の状況にも依存するため、ユーザがテストなどを繰り返して適切値を探ることになろう。
【００５４】
検査ツール選択部５５は検査対象物８に対して実行される検査ツールを、コンソール９を通じて入力されるユーザ指示にしたがって選択する。画像処理部３０の外観検査部６８は様々な検査ツールを有しているが、そのすべてが常に必要となるわけではない。ユーザは検査対象物８に応じて実行されるべき検査ツールを選択する。検査領域設定部５６は検査ツール選択部５５によって選択された検査ツールによって検査の対象となる領域（検査領域）を設定する。たとえば、検査対象物８の第一部位から第二部位までの距離を計測する計測ツールが選択された場合、検査対象物８の規範となる製品（検査合格品）の画像に対して第一部位を囲む検査領域と第二部位を囲む検査領域とが設定される。検査対象物８の第一部位の面積を計測する面積計測ツールが選択された場合は、検査対象物８の規範となる製品（検査合格品）の画像に対して第一部位を囲む検査領域が設定される。検査閾値設定部５７は検査対象物８の良否を判定するための基準となる検査閾値を設定する。たとえば、検査ツール選択部５５によって距離を計測する計測ツールが選択された場合、検査閾値設定部５７は距離の合格基準となる範囲（公差）を検査閾値として設定する。検査閾値はコンソール９などを通じてユーザにより入力される。これらの設定データも設定データ記憶部６２に記憶され、運転モードにおいて外観検査部６８により読み出されて使用される。なお、各検査領域は規範領域に対して関連付けられていてもよい。つまり、各検査領域の位置は規範領域の位置を基準として予め定められてもよい。つまり、規範領域は位置補正領域として兼用されてもよい。
【００５５】
撮像制御部５８は、設定モードにおいて、カメラ４や照明装置５を制御して検査対象物８の規範となる製品（検査合格品／良品／基準品／モデル品）を撮像し、規範画像の画像データを規範画像記憶部６０に記憶させる。また、撮像制御部５８は、運転モードにおいて、カメラ４や照明装置５を制御して検査対象物８（未検査品）を撮像して検査画像を取得し、検査画像の画像データを検査画像記憶部６１に記憶させる。良否判定部５９は外観検査部６８から受け取った外観検査の実行結果と、検査閾値設定部５７により設定された閾値とを比較することで、検査画像に写りこんでいる検査対象物８が良品かどうかを判定する。
【００５６】
画像処理部３０にも様々な機能が含まれている。候補抽出部６４は、規範画像から規範パターン３１の特徴を抽出し、抽出した特徴に類似した規範パターン３１の候補を検査画像から抽出する。候補選別部６５は、検査画像から抽出された複数の候補のうち選別条件に合致する候補を選別する。出力部６６は選別結果を位置姿勢決定部６７、外観検査部６８またはモニタ１０に出力する。
【００５７】
位置姿勢決定部６７は、選別された候補の位置に合わせて検査ツールの検査領域を決定する。外観検査部６８は、検査ツール選択部５５により選択された検査ツールを用いて外観検査を実行する。なお、ロボットピッキングを実行するにすぎず、外観検査を実行しない場合、外観検査に関する機能は省略されてもよい。この場合、位置姿勢決定部６７は、候補の位置に基づいてロボットピッキングの位置を制御してもよい。
【００５８】
＜設定処理＞
図１０は選別領域４１の設定などを含む設定処理を示すフローチャートである。Ｓ１１でＣＰＵ２２（撮像制御部５８）は、カメラ４や照明装置５を制御して検査対象物８の規範となる製品を撮像し、規範画像の画像データを規範画像記憶部６０に記憶させる。規範画像はＣＰＵ２２が設定モードに遷移している期間において保持されていれば十分であるが、運転モードに遷移している期間においても継続的に保持されていてもよい。Ｓ１２でＣＰＵ２２（ＵＩ制御部５０）は規範画像の画像データを規範画像記憶部６０から読み出して、表示制御部２８を介してモニタ１０に表示する。図９を用いて説明したように、ＵＩ制御部５０は位置補正設定ＵＩ８０を表示し、とりわけ表示領域８１に規範画像を表示する。
【００５９】
Ｓ１３で規範領域設定部５２はコンソール９からのユーザ指示に応じて、表示領域８１に表示されている規範画像に対して規範領域４０を設定する。ユーザは規範画像に含まれている規範パターン３１を取り囲むように規範領域４０を設定する。規範領域設定部５２は規範画像における規範領域４０の位置（例：４つの頂点の座標や検出点４２の座標など）を示すデータを設定データ記憶部６２に記憶する。Ｓ１４で画像処理部３０は規範領域４０によって囲まれている規範パターン３１の特徴を抽出し、特徴を示すデータを設定データ記憶部６２に記憶する。上述したようにサーチ手法によってはＳ１４は省略されてもよい。
【００６０】
Ｓ１５で選別領域設定部５３は、コンソール９からのユーザ指示に応じて、表示領域８１に表示されている規範画像に対して選別領域４１を設定する。選別領域４１の位置はアプリケーションに応じて異なる。たとえば、ロボットピッキングでは、図６（Ｂ）に示したようにピック部が稼働する領域に選別領域４１が配置される。アライメントマークであれば、図６（Ａ）に示したようにアライメントマークの左右に選別領域４１が配置される。ワークの表裏判別であれば、図６（Ｃ）に示したように表裏の判別に役立つ部位に選別領域４１が配置される。選別領域設定部５３は規範領域４０に対する各選別領域４１の位置（例：原点や検出点４２からの４つの頂点までの距離など）を示すデータを設定データ記憶部６２に記憶する。なお、各選別領域４１の位置はベクトルにより表現されてもよい。たとえば、このベクトルは、規範領域の基準点から選別領域の基準点までの距離と方向とを示すベクトルであってもよい。また、規範領域や選別領域とも矩形に限られない場合は、これらの領域の形状を示す形状情報も記憶されてもよい。
【００６１】
Ｓ１６で選別条件設定部６３は、選別条件の編集ボタン８５が操作されてユーザにより設定された選別条件を設定データ記憶部６２に記憶する。たとえば、選別のために評価値が使用されるのであれば、当該評価値の閾値などが選別条件として設定される。
【００６２】
＜位置決め処理＞
図１１は複数の候補からの選別工程を含む位置決め処理を示すフローチャートである。Ｓ２０でＣＰＵ２２（撮像制御部５８）はカメラ４や照明装置５を制御して検査対象物８（未検査品）を撮像し、検査画像の画像データを検査画像記憶部６１に記憶させる。アプリケーションに依存して、１つの検査画像には複数のワークが含まれていることもあるし、１つの検査画像に１つのワークが含まれていることもある。
【００６３】
Ｓ２１で画像処理部３０（候補抽出部６４）は規範画像の規範領域４０から抽出された特徴を検査画像からサーチすることで規範パターン３１の候補を抽出する。これにより検査画像内での規範パターン３１の候補の位置が発見される。なお、規範パターン３１と候補との相関値が所定の下限値を下回っている場合、そのような候補は排除されてもよい。
【００６４】
Ｓ２２で候補選別部６５は検査画像から抽出された複数の候補のうち選別条件に合致する候補を選別する。なお、選別処理のさらに詳細な具体例については図１２などを用いて後述する。
【００６５】
Ｓ２３で出力部６６は選別結果を位置姿勢決定部６７、外観検査部６８またはモニタ１０の少なくとも一つに出力する。たとえば、出力部６６は、Ｓ２１で抽出された複数の候補のうち選別された候補と選別されなかった候補とにそれぞれ視覚的に区別可能なマークを付与してもよい。たとえば、選別された候補に対しては当該候補を囲むように赤色の枠が表示され、選別されなかった候補に対しては当該候補を囲むように黄色の枠が表示されてもよい。もちろん、選別された候補に対しては当該候補を囲むように何らかの強調表示が施され、選別されなかった候補に対してはそのような強調表示が省略されてもよい。選別結果としては、選別された候補に対してはフラグを立て（フラグビットを１にする）、選別されなかった候補に対してはフラグを下げる（フラグビットを０にする）ことが含まれてもよい。また、選別結果には、選別された候補の位置を示す座標が含まれてもよい。ところで、選別されなかった候補に対しては当該候補を表示する理由は、これがデバッグに役立つからである。このような候補が相関値の閾値によって足切りされたのか、選別閾値によって足切りされたのかは、デバッグに役立つ情報である。したがって、選別されなかった候補（選別閾値によって足切りされた候補）を表示することはデバッグを担当する者にとって有益である。
【００６６】
Ｓ２４でＣＰＵ２２は選別結果を用いてアプリケーションに応じた処理を実行する。たとえば、ＣＰＵ２２は選別結果に含まれている座標に基づきロボットハンドを移動させ、選別された候補であるネジをロボットハンドにピッキングさせる。ＣＰＵ２２は選別結果に含まれている座標に基づきロボットハンドを移動させ、選別された候補である表向きの電子部品をピッキングし、プリント回路基板上の取り付け位置に電子部品を位置決めしてもよい。また、ＣＰＵ２２および位置姿勢決定部６７は、選別結果に含まれているアライメントマークの座標に応じて、検査ツールの検査領域を検査画像に配置させ、検査領域に対して外観検査を実行してもよい。
【００６７】
＜選別処理＞
図１２は選別処理（Ｓ２２）に含まれうるいくつかの工程を示すフローチャートである。なお、Ｎ個の候補が見つかったのであれば選別処理はＮ個の候補のそれぞれについて実行される。
【００６８】
Ｓ３０で候補選別部６５は候補の位置に応じて選別領域を配置する。各候補が見つかった時点で検査画像内での各候補の規範領域４０の位置は確定している。また、規範領域４０と各選別領域４１との相対的な位置関係も既知であり、これは設定データ記憶部６２に保持されている。よって、候補選別部６５は検査画像内での各候補の規範領域４０の位置と、設定データ記憶部６２に保持されている相対的な位置関係のデータとから、各候補についての選別領域４１を決定する。
【００６９】
図１３は規範画像７０における規範領域４０と選別領域４１ａ、４１ｂの位置関係を示している。検査画像９０においては規範パターン３１の候補は規範パターン３１に対して位置と姿勢（回転角度）がずれていることが多い。したがって、検査画像９０内で規範パターン３１の候補を見つけ、規範領域４０と選別領域４１ａ、４１ｂの位置関係が維持されるように規範パターン３１の候補の位置に対して選別領域４１ａ、４１が配置される。たとえば、規範領域４０の中央に設定された検出点４２の位置と姿勢を検査画像９０内での検出点の位置と姿勢に変換する変換行列を求め、この変換行列により選別領域４１ａ、４１ｂの位置を変換することで、検査画像９０内で選別領域４１ａ、４１ｂの位置が決定される。変換行列ではスケール（倍率）の変化も考慮されてもよい。
【００７０】
Ｓ３１で候補選別部６５は検査画像９０に対して配置された選別領域内の画像について評価値を決定する。評価値の決定手法について図１４を用いて後述する。
【００７１】
Ｓ３２で候補選別部６５は複数の候補のそれぞれについて選別領域から求められた評価値と選別条件と比較し、選別条件を満たしている評価値をもたらした候補を選別する。
【００７２】
＜評価値の決定方法＞
評価値として採用可能な指標は多数存在する。たとえば、検査画像９０に対して設定された選別領域４１に依拠する評価値としては、エッジ画素数、エッジ画素比、平均画素値、平均色差、エッジ位置、エッジ数、エッジ幅またはこれらの組み合わせなどがある。また、検査画像９０に対して設定された選別領域４１と規範画像７０における選別領域４１との両方に依拠する評価値としては、コントラスト比、平均色の差、差分絶対和、正規化相関の相関値・相互情報量・位相限定相関値、エッジ位置の差、エッジ幅の差、濃淡もしくはエッジ強度・エッジ角度のヒストグラムの距離、または、これらの組み合わせなどがある。以下では、エッジ画素数とエッジ画素比を評価値の一例として説明する。
【００７３】
図１４は評価値の決定処理（Ｓ３１）に含まれうるいくつかの工程を示すフローチャートである。Ｓ４０で候補選別部６５は検査画像９０において規範パターン３１の各候補に配置された選別領域４１に外接する外接矩形を求める。図１３によれば、選別領域４１ａに対して外接矩形９１ａが決定され、選別領域４１ｂに対して外接矩形９１ｂが決定されている。
【００７４】
Ｓ４１で候補選別部６５は外接矩形９１ａ、９１ｂ内の画像について縦エッジ画像と横エッジ画像を求める。たとえば、候補選別部６５は外接矩形９１ａ、９１ｂ内の画像に対してＳｏｂｅｌフィルタをかけることで縦エッジ画像と横エッジ画像を求める。Ｓ４２で候補選別部６５は縦エッジ画像と横エッジ画像とからエッジ強度画像とエッジ角度画像を求める。なお、方向別の処理が省略される場合、エッジ角度画像の生成は省略される。ところで、外接矩形を用いる理由は、候補選別領域が複雑な形状な場合にも処理を簡単にするためである。ただし、外接矩形を用いずに、形状内に限ってエッジ抽出が実行されてもよい。この場合には後述するS47が省略されてもよい。
【００７５】
Ｓ４３で候補選別部６５はエッジ角度画像の各画素を候補の回転角度で補正する。エッジ角度画像を構成する各画素の画素値はエッジの角度を示している。外接矩形９１ａ、９１ｂと選別領域４１ａ、４１ｂとがなす角度は、規範画像７０における規範パターン３１と検査画像９０における規範パターン３１の候補のなす角度に等しい。エッジ角度画像の各画素からこの回転角度を減算することで、各画素を補正する。つまり、エッジ角度画像は回転角度で補正される。なお、候補選別部６５は回転角度で補正されたエッジ角度画像の各画素が所定のエッジ角度範囲内でなければ、その画素に対応するエッジ強度画像内の画素の画素値を０に補正してもよい。このようにエッジ角度画像はエッジ強度画像を補正するために利用される。エッジ角度画像でエッジ強度画像を補正することで、ノイズの影響を軽減できる。つまり、方向依存性のある特徴を使って選別が実行されるため、方向依存性の低いノイズの影響が軽減される。なお、方向別処理が不要な検査対象に関しては、Ｓ４３は省略されてもよい。
【００７６】
Ｓ４４で候補選別部６５はエッジ強度画像において下限閾値を下回る画素を補正する。たとえば、候補選別部６５はエッジ強度画像において下限閾値を下回る画素の画素値を０に変更する。
【００７７】
Ｓ４５で候補選別部６５は規範画像７０の座標系を検査画像９０の座標系に変換する座標変換行列を求める。たとえば、候補選別部６５は規範画像７０における規範パターン３１の検出点４２の座標と検査画像９０における規範パターン３１の候補についての検出点４２の座標とから座標変換行列を求める。Ｓ４６で候補選別部６５は座標変換行列の逆行列を求める。
【００７８】
Ｓ４７で候補選別部６５は外接矩形内で画素値（エッジ強度）が０でない画素の位置を求め、規範画像内での対応位置を求める。たとえば、候補選別部６５は外接矩形内で画素値が０でない画素の位置を逆行列で座標変換することで規範画像内での対応位置を求める。
【００７９】
Ｓ４８で候補選別部６５は規範画像における対応位置が選別領域内かどうかを判定し、選別領域内における対応位置の数をエッジ画素数として求める。なお、候補選別部６５は対応位置の数をスケール値の２上で除算して標準化されたエッジ画素数を算出してもよい。
【００８０】
Ｓ４９で候補選別部６５はエッジ画素数からエッジ画素比を求める。たとえば、候補選別部６５はエッジ画素数を選別領域４１の面積で除算することでエッジ画素比を算出してもよい。このようにして、エッジ画素比が評価値として算出される。
【００８１】
＜まとめ＞
本実施形態によれば、検査対象物８を撮像して得られた検査対象画像（検査画像）の中から予め登録された規範パターンをサーチし、当該検査対象画像に対して当該規範パターンを位置決めする位置決め方法が提供される。規範パターンの位置決めとは、たとえば、検査画像内における規範パターンの位置（座標や姿勢など）を求めることや、規範パターンに対して外観検査の検査領域を配置すること、ロボットピッキングの把持部（ロボットハンド）の位置を制御することなである。
【００８２】
Ｓ１２によれば検査対象物８の規範となる製品の規範画像を表示する表示工程が提供される。Ｓ１３によれば当該規範画像において規範パターンを取り囲むように第一領域である規範領域を設定する設定工程が提供される。Ｓ１５によれば検査画像において規範パターンに類似した複数の候補を選別するための領域である第二領域である選別領域を設定する設定工程が提供される。Ｓ２１によれば規範パターンを検査画像からサーチすることで規範パターンに類似した複数の候補を抽出する抽出工程が提供される。Ｓ２２によれば抽出工程において抽出された規範パターンの複数の候補に対して選別領域を配置させ、規範パターンの複数の候補のそれぞれに配置された選別領域の評価値に基づき、規範パターンの候補を選別する選別工程が提供される。Ｓ３３によれば選別工程において選別された規範パターンの候補を出力する出力工程が提供される。このように、本実施形態によれば、規範領域とは別に選別領域を設けることで検査画像の中からユーザが所望する特徴部分を精度よく位置決めすることが可能となる。
【００８３】
Ｓ３２に関して説明したように、選別工程は、規範パターンの複数の候補のそれぞれに配置された選別領域の評価値が所定条件を満たしているかどうかを判定する判定工程を含んでもよい。また、判定工程は、検査画像から抽出された規範パターンの複数の候補についての選別領域の評価値が閾値を超えているかどうかを判定する工程を含んでもよい。このように、エッジ画素数などに関連する閾値を用いて候補の絞り込みが実行されてもよい。
【００８４】
Ｓ２１に関して説明したように、抽出工程は、規範パターンと検査画像との相関値に基づき規範パターンに類似した複数の候補を抽出する工程を含んでもよい。たとえば、検査画像に対して規範パターンの座標、位置、スケール（Ａｆｆｉｎｅパラメータ）などを可変させながら検査画像内で規範パターンがサーチされ、相関値が閾値以上となる部分画像が候補として決定される。閾値は相関値の下限となるものであり、サーチの信頼性の高い候補のみを抽出する上で有利であろう。なお、選別工程における評価値と抽出工程における相関値とはそれぞれ異なる指標であってもよい。たとえば、評価値としては、エッジ画素比が用いられてもよい。エッジ画素比はスケール変動に対してロバストな指標であるため、スケール変動が起きやすい検査対象物８を位置決めする際には有利であろう。相関値は規範領域に含まれる輪郭（エッジ）の類似度に関する指標であり、評価値は選別領域に含まれる輪郭画素（エッジ画素）の数に関する指標であってもよい。
【００８５】
Ｓ２４によれば、規範パターンの候補の位置および姿勢に合わせて検査対象物８の外観検査を実行する外観検査ツールの検査領域の位置および姿勢を決定する決定工程と、外観検査ツールにより検査対象画像に対して配置された検査領域において外観検査を実行する実行工程が提供される。本実施形態によれば検査画像内での規範パターンの候補の位置および姿勢のサーチ精度が向上するため、外観検査ツールの検査領域の位置および姿勢の位置決め精度も向上する。最終的には、外観検査の精度も向上する。
【００８６】
選別有効化部５４や選別有効／無効を切り替えるためのチェックボックス８２に関して説明したように選別工程の実行の可否を選択する選択工程がさらに設けられてもよい。選択工程は、位置・姿勢補正の設定工程（図３のＳ４）の一部であってもよい。この選択工程において選別工程を実行することが選択されると、出力工程は、選別工程において選別された規範パターンの候補を出力する。一方、選択工程において選別工程を実行しないことが選択されると、出力工程は、抽出工程において抽出された規範パターンの候補を出力する。規範パターン自体の形状や規範パターンの周囲の形状によっては規範領域だけでも十分に規範パターンの候補を抽出できる。このような場合には選別工程を省略して、位置決め方法全体での処理時間を短縮することが望ましいだろう。
【００８７】
図１３などを用いて説明したように、選別領域は、設定工程において設定された規範領域に対する相対的な位置関係を維持するように、選別工程において規範パターンの複数の候補に対してそれぞれ配置される。たとえば、規範領域の位置や姿勢が変わったとして、選別領域は規範領域の位置や姿勢に応じて決定される。また、スケールの変化が考慮される場合、選別領域は規範領域に対する相対的な位置関係を維持するようにスケールが調整される。
【００８８】
図６（Ａ）を用いて説明したように、規範領域は検査対象物８に設けられたアライメントマークを囲むように設定され、選別領域はアライメントマークの周囲に設定されてもよい。検査対象物８においてアライメントマークが周囲形状から離れて刻印されたり、印刷されたりすることがある。この場合、アライメントマークと周囲形状との間には平坦でエッジのない領域が広がる。一方、アライメントマークに類似した形状の周囲にはエッジが存在することがある。よって、アライメントマークの周囲で、かつ、エッジ等の存在しない領域を選別領域とすることで、アライメントマークを類似形状から区別しやすくなろう。つまり、選別領域は、規範パターンと類似形状とを区別するのに役立つ、規範パターンの周囲に設定されることになろう。
【００８９】
図６（Ｃ）を用いて説明したように、選別領域は、検査対象物８の表面と裏面とを識別するための特徴に対して設定されてもよい。これにより、検査対象物８の表面と裏面とを精度よく識別することが可能となる。また、表裏の判別を行うための選別領域に加え、ロボットハンドの把持領域を確保するための選別領域が同時に設定されてもよい。これらの２つの選別領域はそれぞれ複数（例：４つ）の飛び地領域により定義されていてもよい。なお、規範領域については原則として飛び地領域ではなく、選別領域は複数の飛び地領域により定義されてもよい。たとえば、ロボットハンドの把持のための選別領域について飛び地となる理由は、ロボットハンドは少なくとも２本の指を有し、これらによって検査対象物８を挟むように把持するためである。つまり、複数の指はそれぞれ検査対象物８の表面のうち異なる領域に接触するため、複数の離間した接触部分が選別領域に設定される。
【００９０】
図６（Ｂ）を用いて説明したように、選別領域は、検査対象物８をロボットハンドで把持する際の障害となる障害物の有無を検知するために規範領域の周囲に配置されてもよい。検査対象物８の周囲に障害物があるとロボットピッキングに失敗することがある。したがって、周囲に障害物のない検査対象物８に対してロボットハンドを位置決めすることで、ロボットピッキングの成功率が向上しよう。
【００９１】
上述した位置決め処理やアプリケーションは制御プログラムとしてプログラムメモリ２４に記憶されていてもよい。この場合、ＣＰＵ２２や画像処理部３０は一種のコンピュータとして機能し、プログラムメモリ２４に記憶されている制御プログラムを実行することで各工程を実行する。画像処理部３０は制御プログラムを実行する第二のＣＰＵを有していてもよいし、画像処理部３０がＣＰＵ２２に統合されていてもよい。なお、制御プログラムはコンピュータ可読記録媒体に記録されて提供されてもよい。
【００９２】
上述した外観検査装置１やコントローラ２は検査画像に対して規範パターンを位置決めする位置決め装置の一例である。モニタ１０は検査対象物８の規範となる製品の規範画像を表示する表示手段として機能する。規範領域設定部５２や選別領域設定部５３は当該規範画像において規範パターンを取り囲むように規範領域を設定するとともに、検査画像において規範パターンに類似した複数の候補を選別するための領域である選別領域を設定する設定手段として機能する。候補抽出部６４は規範パターンを検査画像からサーチすることで規範パターンに類似した複数の候補を抽出する抽出手段として機能する。候補選別部６５は抽出された規範パターンの複数の候補に対して選別領域を配置させ、規範パターンの複数の候補のそれぞれに配置された選別領域の評価値に基づき、規範パターンの候補を選別する選別手段として機能する。出力部６６は選別された規範パターンの候補を出力する出力手段として機能する。
【００９３】
なお、評価値としてエッジ画素数やエッジ画素比について例示したが、方向別エッジ画素数が採用されてもよい。また、選別領域４１内のエッジの分散、傷検査ユニットにより検知された傷値、エッジ幅計測ユニットにより計測されたエッジ幅が採用されてもよい。また、検査画像における選別領域から算出された特徴値と、規範画像にける候補ごとの選別領域から算出された特徴値とが比較されることで、複数の候補の内で特徴が類似する候補に絞り込みが実行されてもよい。特徴値としては、差分絶対和、相互情報量、正規化相関値、濃淡もしくはエッジ強度、エッジ角度のヒストグラムの距離などが採用されうる。
【００９４】
なお、抽出工程によって抽出されたすべての候補を表示することがユーザによって指定されてもよい。この場合、出力部は、検査画像において見つかった規範パターン３１の候補のすべてに候補であることがわかるような強調表示を行ってもよい。また、出力部は、検査画像において見つかった規範パターン３１の候補から選別された候補を別の強調表示によって区別してもよい。さらに、出力部は、選別された候補のうちで最良の候補に対してさらに別の強調表示を適用してもよい。たとえば、検査画像において見つかった規範パターン３１の候補には黄色の枠を表示し、選別候補には赤枠を表示し、最良候補には緑枠を表示してもよい。
【００９５】
アプリケーションとしては、アライメントマークの検出、ロボットピッキング、表裏判別などを例示したが、もちろん他のアプリケーションにも本実施形態を採用できる。ある品種と他の品種とを区別する特徴部に選別領域を付与することで品種の識別を行うアプリケーションが採用されてもよい。あるワークの周囲に選別領域を設定することであるワークと他のワークとの重なりを検知するアプリケーションが採用されてもよい。ワークの周囲に選別領域を設定することでワークと障害物の重なりを検知するアプリケーションが採用されてもよい。選別領域に傷のないワークを選別するアプリケーションや、選別領域に傷のあるワークを排除するアプリケーションが採用されてもよい。選別領域の設定された部位の寸法の公差が許容範囲であるワークを選別するアプリケーションが採用されてもよい。選別領域に異物の付着を検知することで異物のついたワークを排除したり、異物のないワークを仕分けしたりするアプリケーションが採用されてもよい。
【００９６】
図１３においては各選別領域４１に外接矩形を定義したが、複数の選別領域４１について単一の外接矩形が定義されてもよい。つまり、複数の選別領域４１を取り囲む最小の矩形が定義されてもよい。これにより、演算量が削減されよう。
【図１】
0006630545.tif 000002
【図２】
0006630545.tif 000003
【図３】
0006630545.tif 000004
【図４】
0006630545.tif 000005
【図５】
0006630545.tif 000006
【図６】
0006630545.tif 000007
【図７】
0006630545.tif 000008
【図８】
0006630545.tif 000009
【図９】
0006630545.tif 000010
【図１０】
0006630545.tif 000011
【図１１】
0006630545.tif 000012
【図１２】
0006630545.tif 000013
【図１３】
0006630545.tif 000014
【図１４】
0006630545.tif 000015