(57)【要約】【課題】ワークを撮像した画像に対する検査領域を高速に計算する。【解決手段】ワークに対応する３次元モデルと、撮像素子に対応する仮想面とを規定し、カメラに撮像させた際のワークの相対位置と同じ相対位置の３次元モデルを仮想面に投影し、投影した領域の輪郭を構成する境界画素２２を計算する。移動元の画素の座標位置と移動先に対する移動元の画素の移動量とを対応付けた複数のテーブル要素３１で構成された歪み付与テーブル３０に従って、境界画素２２の座標位置を変換する。座標位置を変換した境界画素２５で囲まれた内側を検査領域とし、画像における検査領域内を検査する。複数のテーブル要素３１には、１つの座標位置に対して１つの移動量を対応付けた第１テーブル要素３１Ａと、１つの座標位置に対して複数の移動量を対応付けた第２テーブル要素３１Ｂとが含まれている。【選択図】図９
2017016169.tif 000002
【特許請求の範囲】
【請求項１】
カメラが撮像素子と撮像レンズとを有しており、処理部が、ワークを前記カメラに撮像させて得られる画像に基づき前記ワークを検査する検査方法であって、
前記処理部が、前記ワークに対応する３次元モデルと、前記撮像素子に対応する仮想面とを規定し、前記カメラに撮像させた際の前記ワークの相対位置と同じ相対位置の前記３次元モデルを前記仮想面に投影し、該投影した領域の輪郭を構成する境界画素を計算する画素計算工程と、
前記処理部が、移動元の画素の座標位置と移動先に対する移動元の画素の移動量とを対応付けた複数のテーブル要素で構成された、前記撮像レンズによる歪みを対象画像に付与する歪み付与テーブルに従って、前記境界画素の座標位置を変換する変換工程と、
前記処理部が、前記変換工程にて座標位置を変換した前記境界画素で囲まれた内側を検査領域とする設定工程と、
前記処理部が、前記画像における前記検査領域内を検査する検査工程と、を備え、
前記歪み付与テーブルの複数のテーブル要素には、移動元の画素が１つの座標位置に移動するように、１つの座標位置に対して１つの移動量を対応付けた第１テーブル要素と、移動元の画素が複数の座標位置に分散して移動するように、１つの座標位置に対して複数の移動量を対応付けた第２テーブル要素とが含まれていることを特徴とする検査方法。
【請求項２】
前記歪み付与テーブルは、
移動元の画素の座標位置と移動先に対する移動元の画素の移動量とを対応付けた複数のテーブル要素で構成された、前記撮像レンズによる歪みを対象画像から除去する歪み除去テーブルが、前記カメラのカメラパラメータに基づき生成され、
前記歪み除去テーブルにて対象画像の各画素の座標位置を変換した際に、注目している座標位置に移動してきた画素の移動量の正負の符号を反転させた移動量を、前記注目している座標位置と対応付けて生成されることを特徴とする請求項１に記載の検査方法。
【請求項３】
前記歪み付与テーブルが、記憶部に予め記憶されており、
前記変換工程では、前記処理部が、前記記憶部に記憶されている前記歪み付与テーブルに従って、前記境界画素の座標位置を変換することを特徴とする請求項１又は２に記載の検査方法。
【請求項４】
前記処理部が、光源により光が照射された前記ワークに対して前記光源及び前記カメラの少なくとも一方の相対的な位置を変更して前記カメラに前記ワークを撮像させて前記画像を複数取得する画像取得工程を更に備えたことを特徴とする請求項１乃至３のいずれか１項に記載の検査方法。
【請求項５】
前記ワークが光学部品であり、
前記検査工程において、前記処理部が、前記各画像において前記検査領域内の欠陥候補を抽出し、前記欠陥候補が欠陥であるか否かを検査することを特徴とする請求項４に記載の検査方法。
【請求項６】
撮像素子と撮像レンズとを有するカメラと、
前記カメラにワークを撮像させて得られる画像に基づき前記ワークを検査する処理部と、を有し、
前記処理部は、
前記ワークに対応する３次元モデルと、前記撮像素子に対応する仮想面とを規定し、前記カメラに撮像させた際の前記ワークの相対位置と同じ相対位置の前記３次元モデルを前記仮想面に投影し、該投影した領域の輪郭を構成する境界画素を計算する画素計算処理と、
移動元の画素の座標位置と移動先に対する移動元の画素の移動量とを対応付けた複数のテーブル要素で構成された、前記撮像レンズによる歪みを対象画像に付与する歪み付与テーブルに従って、前記境界画素の座標位置を変換する変換処理と、
前記変換処理にて座標位置を変換した前記境界画素で囲まれた内側を検査領域とする設定処理と、
前記画像における前記検査領域内を検査する検査処理と、を実行し、
前記歪み付与テーブルの複数のテーブル要素には、移動元の画素が１つの座標位置に移動するように、１つの座標位置に対して１つの移動量を対応付けた第１テーブル要素と、移動元の画素が複数の座標位置に分散して移動するように、１つの座標位置に対して複数の移動量を対応付けた第２テーブル要素とが含まれていることを特徴とする検査装置。
【請求項７】
前記処理部は、前記歪み付与テーブルを生成して記憶部に記憶させるテーブル生成処理を更に実行し、
前記変換処理において、前記記憶部に記憶させた前記歪み付与テーブルに従って、前記境界画素の座標位置を変換することを特徴とする請求項６に記載の検査装置。
【請求項８】
前記処理部は、前記テーブル生成処理において、
移動元の画素の座標位置と移動先に対する移動元の画素の移動量とを対応付けた、対象画像の複数の画素にそれぞれ対応する複数のテーブル要素で構成され、前記撮像レンズによる歪みを対象画像から除去する歪み除去テーブルを、前記カメラのカメラパラメータに基づき生成し、
前記歪み除去テーブルにて対象画像の各画素の座標位置を変換した際に、注目している座標位置に移動してきた画素の移動量の正負の符号を反転させた移動量を、前記注目している座標位置と対応付けて、前記歪み付与テーブルのテーブル要素とすることを特徴とする請求項７に記載の検査装置。
【請求項９】
前記ワークが光学部品であり、
前記処理部は、前記検査処理において、前記各画像において前記検査領域内の欠陥候補を抽出し、前記欠陥候補が欠陥であるか否かを検査することを特徴とする請求項６に記載の検査装置。
【請求項１０】
前記ワークに光を照射する光源を更に備え、
前記処理部は、前記ワークに対して前記光源及び前記カメラの少なくとも一方の相対的な位置を変更して前記カメラに前記ワークを撮像させて前記画像を複数取得する画像取得処理を更に実行することを特徴とする請求項６乃至９のいずれか１項に記載の検査装置。
【請求項１１】
撮像素子と撮像レンズとを有するカメラにワークを撮像させて得られる画像に基づき前記ワークを検査する処理部を有する画像処理装置であって、
前記処理部は、
前記ワークに対応する３次元モデルと、前記撮像素子に対応する仮想面とを規定し、前記カメラに撮像させた際の前記ワークの相対位置と同じ相対位置の前記３次元モデルを前記仮想面に投影し、該投影した領域の輪郭を構成する境界画素を計算する画素計算処理と、
移動元の画素の座標位置と移動先に対する移動元の画素の移動量とを対応付けた、対象画像の複数の画素にそれぞれ対応する複数のテーブル要素で構成され、前記撮像レンズによる歪みを対象画像に付与する歪み付与テーブルに従って、前記境界画素の座標位置を変換する変換処理と、
前記変換処理にて座標位置を変換した前記境界画素で囲まれた内側を検査領域とする設定処理と、
前記画像における前記検査領域内を検査する検査処理と、を実行し、
前記歪み付与テーブルの複数のテーブル要素には、移動元の画素が１つの座標位置に移動するように、１つの座標位置に対して１つの移動量を対応付けた第１テーブル要素と、移動元の画素が複数の座標位置に分散して移動するように、１つの座標位置に対して複数の移動量を対応付けた第２テーブル要素とが含まれていることを特徴とする画像処理装置。
【請求項１２】
コンピュータに、請求項１乃至５のいずれか１項に記載の検査方法の各工程を実行させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークを検査する検査方法、検査装置、画像処理装置、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
外観検査の分野では人による目視検査から機械での検査に変更が進められている。現在コンピュータの計算能力向上や低価格化により３次元データを扱う技術や画像処理技術が普及したことで、検査対象物であるワークの形状に依存しない汎用的な検査装置の開発が始まってきている。
【０００３】
例えば特許文献１では検査対象の３次元ＣＡＤデータを入力すれば、自動的に検査経路や検査領域を設定できる。簡易な形状、可視化が難しくない欠陥種のみをもつワークに関しては、上記の技術を用いることで検査が可能になる。
【０００４】
しかしながらワークの位置（姿勢も含む）を様々に変えて多数の撮像条件で撮影しなければ、全ての欠陥を可視化できない検査対象が存在する。例えば形状が複雑で欠陥も照明光に対し方向性を持っている小型製品の外装検査などである。このようなワークの場合、照明とカメラは固定しワークの位置を変化させて連続撮像することで検査を行うことが好ましい。
【０００５】
ワークを動かしながら撮像する場合は、撮影した画像上のどこを検査対象とするかについて特定する必要がある。３次元形状のワークがカメラでどう見えるにかについては、特許文献２の例のようにカメラパラメータを用いてカメラをピンホールモデルとして計算する方法がある。
【０００６】
この技術を用いればワークの位置と撮像カメラのピンホールモデルから撮影画像上のどこを検査対象とするかについて計算できるが、実際の撮像レンズで撮影した画像は歪曲収差と呼ばれる歪みを生じることから、レンズ歪みの対応を行わなくてはならない。
【０００７】
撮像した画像から撮像レンズの歪みを除去する手法は多く存在し、特許文献３では、レンズの歪みの補正テーブルを用意しておき、その補正テーブルを使用してレンズ歪み計算を行う方法が提案されている。
【０００８】
ワークの外観検査では、撮像した画像中どの領域を測定するかは非常に重要であり、検査範囲内外の境界管理は厳密に行う必要がある。検査範囲領域がずれると過検出や見逃し等の重大な影響を検査機に及ぼす。またワークを大きく動かす場合はレンズ周辺の歪みが大きい箇所も検査に使用するので、レンズ歪みは必ず考慮しなくてはならない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特表２００７−５２７９９３号公報
【特許文献２】特許第３５１６１１８号公報
【特許文献３】特許第４９０６７５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
レンズ歪みに対する対策方法としては、撮像した画像に対してレンズ歪みを除去して得られた画像を用いてワークの検査をするか、または計算した検査領域（比較画像）に対してレンズ歪みを付与してワークの検査をするかの二通りの対策が考えられる。生産現場で使用される検査装置は、速い検査タクトが要求されるので、撮像により得られた画像に対して画像全体の歪みを除去するよりも、計算した検査領域にのみ歪みを付与した方が計算負荷は小さいので、検査領域にレンズ歪みを与えるほうがよい。
【００１１】
また検査領域画像は二値化処理した二値化画像で定義することができるので、検査領域の全ての画素に歪み付与計算を実施するよりも、検査領域の輪郭を構成する境界画素のみに対しレンズ歪みを付与計算したほうが計算負荷を減らすことができる。境界画素に歪みを付与し、次にその内部を、境界画素と同じ値として検査領域とすればよい。
【００１２】
レンズ歪み付与もレンズ歪み除去と同様にカメラパラータを用いて行うことができる。また歪み移動量を記録した補正テーブルを用いて歪み付与計算を行うほうが、各画素の移動量を逐一計算するより高速に行うことができる。
【００１３】
しかしながら、デジタル画像の画素位置は整数値で構成されるため、整数型の歪み付与テーブルを使用した場合、検査領域の境界線が途切れてしまうことがある。境界線が途切れてしまうと、閉空間で構成されるはずの検査領域が閉空間でなくなり、検査領域を境界画素と同じ値に設定する作業（いわゆる、塗りつぶし作業）ができなくなる。
【００１４】
境界線の途切れに対しては、膨張収縮処理や補間処理でつなげることは可能であるが、その分計算時間が遅くなる。膨張収縮処理や補間処理を行わず、かつ検査領域の境界線をとぎらせることなく検査領域画像にレンズ歪みを付与することが求められていた。
【００１５】
そこで、本発明は、ワークを撮像した画像に対する検査領域を高速に計算することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の検査方法は、カメラが撮像素子と撮像レンズとを有しており、処理部が、ワークを前記カメラに撮像させて得られる画像に基づき前記ワークを検査する検査方法であって、前記処理部が、前記ワークに対応する３次元モデルと、前記撮像素子に対応する仮想面とを規定し、前記カメラに撮像させた際の前記ワークの相対位置と同じ相対位置の前記３次元モデルを前記仮想面に投影し、該投影した領域の輪郭を構成する境界画素を計算する画素計算工程と、前記処理部が、移動元の画素の座標位置と移動先に対する移動元の画素の移動量とを対応付けた複数のテーブル要素で構成された、前記撮像レンズによる歪みを対象画像に付与する歪み付与テーブルに従って、前記境界画素の座標位置を変換する変換工程と、前記処理部が、前記変換工程にて座標位置を変換した前記境界画素で囲まれた内側を検査領域とする設定工程と、前記処理部が、前記画像における前記検査領域内を検査する検査工程と、を備え、前記歪み付与テーブルの複数のテーブル要素には、移動元の画素が１つの座標位置に移動するように、１つの座標位置に対して１つの移動量を対応付けた第１テーブル要素と、移動元の画素が複数の座標位置に分散して移動するように、１つの座標位置に対して複数の移動量を対応付けた第２テーブル要素とが含まれていることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ワークを撮像した画像に対する検査領域を高速に計算することができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態に係る検査装置を示す概略図である。
【図２】実施形態に係る画像処理装置を示すブロック図である。
【図３】実施形態に係る検査方法を示すフローチャートである。
【図４】図１の撮像系をピンホールモデルで表した模式図である。
【図５】（ａ）は仮想面に対して３次元モデルが中央に位置する場合に被検査面が仮想面に透視投影された例を示す模式図である。（ｂ）は仮想面に対して３次元モデルが並進移動により右にずれた場合に被検査面が仮想面に透視投影された例を示す模式図である。（ｃ）は仮想面に対して３次元モデルが回転した場合に被検査面が仮想面に透視投影された例を示す模式図である。
【図６】（ａ）はカメラにより撮像された画像の歪みを示す模式図である。（ｂ）はピンホールモデルで計算した画像と、撮像レンズによる歪みを付与した画像とを比較する説明図である。
【図７】実施形態に係る検査領域の計算処理を示すフローチャートである。
【図８】実施形態に係る検査領域の計算処理の一例を示す説明図である。
【図９】実施形態に係るＬＵＴを用いて画像を補正する場合を示す説明図である。
【図１０】歪み付与テーブルを生成するテーブル生成処理を示すフローチャートである。
【図１１】歪み付与テーブルを生成するテーブル生成処理を示す説明図である。
【図１２】注目画素の走査方法を示す説明図である。
【図１３】比較例のＬＵＴを用いて画像を補正する場合の例を示す説明図である。
【図１４】比較例のＬＵＴを用いて画像を補正する場合の例を示す説明図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図１は、本発明の実施形態に係る検査装置を示す概略図である。検査装置１００は、ワーク（被検査物）Ｗに光を照射する光源１０２と、ワークＷを移動させる移動装置１０３と、撮像装置としてのカメラ１０５と、制御装置でもある画像処理装置２００と、を備えている。
【００２０】
本実施形態ではワークＷは光学部品である。検査装置１００は、ワークＷの表面ＷＡのキズ、汚れ、ゴミ等の欠陥を検出する外観検査を行う。なお、ワークＷは、光学部品以外の部品、例えばカメラの外装部品等でもよく、工場で製造される部品全般を含むものである。
【００２１】
光源１０２は、ワークＷに光を照射（照明）する照明装置である。光源１０２は、例えばＬＥＤやハロゲンランプ等、画像処理に必要な光量の光をワークＷに照射するものであればいかなるものでもよく、また、リング照明やバー照明等いかなるものであってもよい。また、光源１０２の発光面側に拡散板やレンズ等を配置してもよい。
【００２２】
カメラ１０５は、ワークＷからの光を受光して、撮像画像のデータを生成するデジタルカメラである。カメラ１０５は、撮像レンズ１０５Ａと、撮像素子（固体撮像素子）１０５Ｂとを有する。
【００２３】
撮像素子１０５Ｂは、ＣＭＯＳイメージセンサ又はＣＣＤイメージセンサ等のエリアセンサである。撮像レンズ１０５Ａは、倍率を調整する対物レンズユニットであり、撮像素子１０５ＢにおいてワークＷの全体が撮像されるように調整される。
【００２４】
移動装置１０３は、カメラ１０５及び光源１０２に対してワークＷを相対的に直動又は回転移動させる。
【００２５】
画像処理装置２００は、カメラ１０５で撮像された撮像画像に対して画像処理を行い、ワークＷに存在する欠陥を検出する。そして、画像処理装置２００は、ワークＷの良否を判定する。また、画像処理装置２００は、カメラ１０５による撮像タイミング等の撮像制御や移動装置１０３の動作、つまりワークＷの位置及び姿勢を制御し、このときのワークＷの位置及び姿勢のデータを取得する。
【００２６】
画像処理装置２００には、入力装置としてのキーボード２２０と、表示装置としてのモニタ２３０とが接続されている。モニタ２３０には、例えば画像処理装置２００による画像処理結果や良否判定結果が表示される。
【００２７】
本実施形態では、カメラ１０５と光源１０２は、架台その他の構造物に固定され、カメラ１０５と光源１０２との相対位置は固定である。また、カメラ１０５及び光源１０２に対するワークＷの相対位置が変化する。即ち、移動装置１０３によりワークＷを移動させることで、ワークＷに対するカメラ１０５及び光源１０２の相対的な位置を変更することができる。なお、移動装置１０３によりワークＷを移動させる場合について説明するが、これに限定するものではない。ワークＷに対して光源１０２（カメラ１０５）を移動させてもよく、また、ワークＷ及び光源１０２（カメラ１０５）を移動させてもよい。つまり、移動装置は、ワークＷに対して光源１０２及びカメラ１０５の少なくとも一方の相対的な位置を変更するものであればよい。
【００２８】
図２は、本発明の実施形態に係る画像処理装置を示すブロック図である。画像処理装置２００は、処理部（演算部）としてのＣＰＵ（Central  Processing  Unit）２０１を備えている。また、画像処理装置２００は、記憶部として、ＲＯＭ（Read  Only  Memory）２０２、ＲＡＭ（Random  Access  Memory）２０３、ＨＤＤ（Hard  Disk  Drive）２０４を備えている。また、画像処理装置２００は、記録ディスクドライブ２０５及び各種のインタフェース２１１〜２１６を備えている。
【００２９】
ＣＰＵ２０１には、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、記録ディスクドライブ２０５及び各種のインタフェース２１１〜２１６が、バス２１０を介して接続されている。ＲＯＭ２０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００３０】
ＨＤＤ２０４は、ＣＰＵ２０１の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、ＣＰＵ２０１に、後述する各種演算処理を実行させるためのプログラム２５０を記録するものである。ＣＰＵ２０１は、ＨＤＤ２０４に記録（格納）されたプログラム２５０に基づいて検査方法の各工程を実行する。
【００３１】
記録ディスクドライブ２０５は、記録ディスク２５１に記録された各種データやプログラム等を読み出すことができる。
【００３２】
光源１０２は、インタフェース２１１に接続され、ＣＰＵ２０１の制御の下で点灯又は消灯する。移動装置１０３は、インタフェース２１２に接続され、ＣＰＵ２０１の制御の下、ワークＷを移動（本実施形態では直動移動又は回転移動）させる。
【００３３】
カメラ１０５は、インタフェース２１３に接続され、ＣＰＵ２０１からのトリガ信号により撮像し、撮像結果である撮像画像のデータをＣＰＵ２０１に出力する。ＣＰＵ２０１は、カメラ１０５から撮像画像のデータを取得し、撮像画像に画像処理を施して、ワークＷのキズや汚れ等の欠陥を検出する。
【００３４】
キーボード２２０は、インタフェース２１４に接続され、ＣＰＵ２０１にユーザの操作結果を出力する。モニタ２３０は、インタフェース２１５に接続され、ＣＰＵ２０１の制御の下、画像を表示する。また、インタフェース２１６には、書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置２４０が接続可能となっている。
【００３５】
なお、本実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ２０４であり、ＨＤＤ２０４にプログラム２５０が格納される場合について説明するが、これに限定するものではない。プログラム２５０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム２５０を供給するための記録媒体としては、図２に示すＲＯＭ２０２や、記録ディスク２５１、外部記憶装置２４０等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性メモリ、ＲＯＭ等を用いることができる。
【００３６】
次に、本実施形態に係る検査方法について説明する。図３は、本発明の実施形態に係る検査方法を示すフローチャートである。本実施形態では、ＣＰＵ２０１がプログラム２５０に従って図３に示す検査方法の各工程（各処理）を実行する。ここで、移動装置１０３にはワークＷが固定されているものとする。
【００３７】
まず、ＣＰＵ２０１は、光源１０２を点灯させ（Ｓ１０１）、移動装置１０３にワークＷを初期位置（姿勢を含む）に移動させる（Ｓ１０２）。
【００３８】
次にＣＰＵ２０１は、移動装置１０３を動作させてワークＷを移動、即ちワークＷの位置（姿勢を含む）を変化させる（Ｓ１０３）。ここで、移動装置１０３の動作は、予め画像処理装置２００（具体的には、記憶部であるＨＤＤ２０４等）に設定されている。ＣＰＵ２０１は、動作データに従って移動装置１０３を動作させることにより、光源１０２及びカメラ１０５に対するワークＷの位置を変化させることができる。
【００３９】
次にＣＰＵ２０１は、ワークＷをカメラ１０５に撮像させ、カメラ１０５から画像を取得する（Ｓ１０４）。その際、ＣＰＵ２０１は、カメラ１０５から取得した画像に対して２値化処理を施し、２値化処理した画像（２値化画像）を取得する（画像取得工程，画像取得処理）。
【００４０】
撮像レンズ１０５Ａのフォーカスは、ワークＷに合わせてあり、ワークＷにあるゴミ、キズ、汚れ等の欠陥の散乱光を画像データとして撮像素子１０１Ａで取り込む。撮像素子１０１Ａにより光電変換された画像は、不図示のＡ／Ｄ変換器によりデジタル画像信号に変換され、ＣＰＵ２０１に出力される。また、ＣＰＵ２０１は、撮像時に移動装置１０３から３次元空間における移動装置１０３の姿勢情報を取得し、ワークＷの位置（姿勢も含む）のデータ（位置情報）を求める。
【００４１】
そして、ＣＰＵ２０１は、ワークＷの被検査面ＷＡの３次元空間の位置（姿勢も含む）、及びカメラ１０５のカメラパラメータから、撮影画像内のどこを検査対象とすべきかを示す検査領域の計算を行う（Ｓ１０５）。
【００４２】
ＣＰＵ２０１は、画像のデータと計算した検査領域とを用いて画像処理を行い、検査用画像として保存する（Ｓ１０６）。具体的には、ＣＰＵ２０１は、２値化処理した画像中、検査領域のみを抽出して検査用の画像としてＨＤＤ２０４等に保存する。
【００４３】
次にＣＰＵ２０１は、ワークＷが予定されていた位置変化（姿勢変化を含む）を全て実施したか否かを判断する（Ｓ１０７）。
【００４４】
ＣＰＵ２０１は、全ての位置変化を実施していなければ（Ｓ１０７：Ｎｏ）、ステップＳ１０３へ戻り、引き続き位置変化、撮像、画像処理を続ける。これにより、ＣＰＵ２０１は、ワークＷの位置が異なる画像を複数取得し、複数の画像それぞれに対する検査領域を複数生成することになる。全ての位置変化が終了していれば（Ｓ１０７：Ｙｅｓ）、光源１０２を消灯させる（Ｓ１０８）。
【００４５】
次にＣＰＵ２０１は、ステップＳ１０６で取得した検査用画像によりワークＷの検査を行う（Ｓ１０９：検査工程、検査処理）。具体的には、ＣＰＵ２０１は、ステップＳ１０６にて取得した、ステップＳ１０５で計算した検査領域内を抜き出した検査用画像に対して検査する。本実施形態では、ＣＰＵ２０１は、検査領域内の２値化画像に対してワークＷの被検査面ＷＡ上の不良要因、即ち欠陥候補を抽出し、欠陥候補が欠陥であるか否かを判定する。そして、ＣＰＵ２０１は、欠陥の点数化を行い、算出した点数が許容範囲内であるかどうかの判定を行う。
【００４６】
ここで、欠陥の点数が許容範囲内のワークＷを良品、欠陥の点数が許容範囲外のワークＷを不良品と表現する。ＣＰＵ２０１は、ステップＳ１０９の判断に従い、ワークＷが良品であれば（Ｓ１０９：ＯＫ）、不図示のロボット等を用いてワークＷを不図示の良品棚へ収納させる（Ｓ１１０）。ＣＰＵ２０１は、ワークＷが不良品であれば（Ｓ１０９：ＮＧ）、不図示のロボット等を用いてワークＷを不図示の不良品棚へ収納させる（Ｓ１１１）。
【００４７】
以下、図３のステップＳ１０５の処理について詳述する。まず、ＣＰＵ２０１は、予め、撮像レンズ１０５Ａを搭載したカメラ１０５で様々に姿勢変化させたドットパターン等のキャリブレーションプレートを複数枚撮像させて、カメラ１０５のカメラパラータを算出しておく。このカメラパラメータは、ＨＤＤ２０４等の記憶部に予め記憶させておく。ＣＰＵ２０１は、測定したカメラパラータを使用して、実際の撮像系をピンホールモデルに模擬する。
【００４８】
図４は、図１の撮像系をピンホールモデルで表した模式図である。図４に示すように、仮想空間ＶＳには、ピンホール１０６Ｖと、カメラ１０５の撮像素子１０５Ｂのセンサ面に対応する仮想面１０５Ｖと、ワークＷに対応する３次元モデルＶＷとを配置する。仮想面１０５Ｖはピンホール１０６Ｖからカメラパラメータの焦点距離ｆ離れた位置にある。３次元モデルＶＷは、例えば３次元ＣＡＤデータである。
【００４９】
３次元モデルＶＷの被検査面ＶＷＡを仮想面１０５Ｖに透視投影した領域１０８Ｖを求める。ここで、ワークＷ上の被検査面ＷＡの座標（位置姿勢）が把握できれば、カメラ１０５の撮像素子１０５Ｂ（センサ面）に写る被検査面ＷＡの位置が計算できる。ワークＷを移動装置１０３で姿勢変化させる場合、移動装置１０３の変位量を検知することでワークＷの移動後の姿勢を計算することができる。
【００５０】
図５（ａ）は、仮想面１０５Ｖに対して３次元モデルＶＷが中央に位置する場合に被検査面ＶＷＡが仮想面１０５Ｖに透視投影された例を示す模式図である。図５（ｂ）は、仮想面１０５Ｖに対して３次元モデルＶＷが並進移動により右にずれた場合に被検査面ＶＷＡが仮想面１０５Ｖに透視投影された例を示す模式図である。図５（ｃ）は、仮想面１０５Ｖに対して３次元モデルＶＷが回転した場合に被検査面ＶＷＡが仮想面１０５Ｖに透視投影された例を示す模式図である。被検査面ＶＷＡが仮想面１０５Ｖに透視投影された領域１０８Ｖが、並進移動によりセンサ右にずれたり、回転により変形したりする。
【００５１】
以上、ピンホールモデルについての透視投影について説明したが、ピンホールモデルと実画像との大きな違いは、実際の撮像レンズ１０５Ａでは撮像素子１０５Ｂの位置によって画像が歪む歪曲収差が大小の差こそあれ必ず存在することである。
【００５２】
図６（ａ）は、カメラ１０５により撮像された画像の歪みを示す模式図である。図６（ｂ）は、ピンホールモデルで計算した画像と、撮像レンズ１０５Ａによる歪みを付与した画像とを比較する説明図である。
【００５３】
特に撮像レンズ１０５Ａが検査でよく使用される広角レンズの場合は、図６（ａ）に示すように、樽型歪みとよばれる画像中央から離れるほど画像ＩＭが縮む歪みが発生する。
【００５４】
例えば被検査面ＷＡがセンサ面の左上端に写る位置で撮影した場合は、図６（ｂ）に示すように検査領域の境界線は、ピンホールモデル計算した直線１０９のように直線にはならず、線１１０のように歪んだ曲線となる。
【００５５】
そこで、本実施形態では、検査領域の境界画素にのみレンズ歪み付与を行い、その後境界線内部を塗りつぶして検査領域として使用する。
【００５６】
以下、ステップＳ１０５の検査領域の計算処理について詳細に説明する。図７は、本発明の実施形態に係る検査領域の計算処理を示すフローチャートである。図８は、本発明の実施形態に係る検査領域の計算処理の一例を示す説明図である。
【００５７】
ＣＰＵ２０１は、ワークＷに対応する３次元モデルＶＷと、撮像素子１０５Ｂに対応する仮想面１０５Ｖとを仮想空間ＶＳ内で規定する。ＣＰＵ２０１は、カメラ１０５に撮像させた際のワークＷの相対位置と同じ相対位置の３次元モデルＶＷを仮想面１０５Ｖに投影し、投影した領域１０８Ｖの輪郭を構成する境界画素１０９を計算する（Ｓ１２１：画素計算工程、画素計算処理）。
【００５８】
ＣＰＵ２０１は、撮像レンズ１０５Ａによる歪みを対象画像に付与する歪み付与テーブル（ルックアップテーブル：ＬＵＴ）に従って、境界画素１０９の座標位置を変換して新たな境界画素１１０を求める（Ｓ１２２：変換工程、変換処理）。以下、歪み付与テーブルを、「歪み付与テーブル」のほか、「歪み付与ＬＵＴ」又は「ＬＵＴ」と表現する。歪み付与テーブルは、予め作成してＨＤＤ２０４等の記憶部に記憶させておく。歪み付与テーブルは、詳細は後述するが、移動元の画素の座標位置と移動先に対する移動元の画素の移動量とを対応付けた複数のテーブル要素で構成されている。
【００５９】
ＣＰＵ２０１は、ステップＳ１２２にて座標位置を変換した境界画素１１０で囲まれた内側を検査領域１１１として設定する（Ｓ１２３：設定工程、設定処理）。
【００６０】
図８では、計算で行われた境界画素（直線境界線）１０９に対して歪みを与えて新たな境界画素１１０とし、その内部を境界画素１１０と同じ値（色）で塗りつぶして、検査領域１１１としている。
【００６１】
本実施形態におけるステップＳ１２２の処理で境界画素に歪みを付与するＬＵＴについて説明する前に、境界画素に歪みを付与する比較例のＬＵＴについて説明する。
【００６２】
図１３及び図１４は、比較例のＬＵＴを用いて画像を補正する場合の例を示す説明図である。撮像レンズ１０５Ａによる歪みを画像に付与するＬＵＴ３０Ｘは、対応点画素のＸ軸Ｙ軸値の２つの移動量を記録している複数のテーブル要素３１Ｘからなる。例えば、対象画像が２０４８×２０４８ピクセルの画像の場合、ＬＵＴ３０Ｘは、２０４８×２０４８のテーブル要素３１Ｘからなる。
【００６３】
図１３の例では注目しているテーブル要素３１Ｘの移動量（＋１，０）は、その座標位置の画素をＸ軸に＋１、Ｙ軸は０移動させることを意味している。補正前の画像２１Ｘに対し、歪み付与ＬＵＴ３０Ｘを用いてレンズ歪みを与えた後の画像が画像２４Ｘとなる。つまり、各テーブル要素３１Ｘは、移動元の画素の座標位置に、移動先に対する移動元の画素の移動量を対応付けたものである。元の画像２１Ｘ上の境界線２２Ｘは、補正後に画像２４Ｘの境界線２５Ｘに移動している。ここで、境界線は、連続して連なる複数の境界画素からなる。
【００６４】
歪み付与の計算では、多くの場合、画素の移動量は整数にならず少数になる。レンズ歪み付与を１画素以下の小数点まで考慮すると計算速度が遅くなるので、高速性を重視する場合は歪み付与ＬＵＴは整数値で保持するほうが好ましい。移動量の小数値を丸めや切り捨て等の処理を行って整数型ＬＵＴとして作成すればよい。しかし歪み付与を整数型で与える場合、歪み付与ＬＵＴの移動量が変化する箇所に検査領域の境界線が跨ると境界線が途切れる問題が生じる。例えば図１４で示した歪み付与ＬＵＴ４０Ｘでは、Ｘ軸の移動量が変化するテーブル要素４１Ｘがある。そこに画像２１Ｘの境界線２２Ｘが跨って入力されると、その補正後の出力画像２４Ｘの境界画素は境界線が途切れる箇所２７Ｘが発生する。
【００６５】
そこで、本実施形態では、一対多の整数型の歪み付与ＬＵＴを用いて、境界画素に撮像レンズによる歪みを付与することで境界線の途切れを発生させずに歪み付与する。
【００６６】
図９は、本発明の実施形態に係るＬＵＴを用いて画像を補正する場合を示す説明図である。図９に示す歪み付与テーブルを示すＬＵＴ３０は、移動元の画素の座標位置と移動先に対する移動元の画素の移動量とを対応付けた複数のテーブル要素３１で構成されている。ＬＵＴ３０は、整数型のＬＵＴである。
【００６７】
ＬＵＴ３０の複数のテーブル要素３１には、移動元の画素が１つの座標位置に移動するように、１つの座標位置に対して１つの移動量を対応付けた第１テーブル要素３１Ａが含まれている。また、ＬＵＴ３０の複数のテーブル要素３１には、移動元の画素が複数の座標位置に分散して移動するように、１つの座標位置に対して複数の移動量を対応付けた第２テーブル要素３１Ｂが含まれている。つまり、ＬＵＴ３０は、第１テーブル要素３１Ａと第２テーブル要素３１Ｂとで構成されている。第１テーブル要素３１Ａの座標位置に対応する画素は、第１テーブル要素３１Ａに従って、１つの座標位置に移動する。第２テーブル要素３１Ｂの座標位置に対応する画素は、第２テーブル要素３１Ｂに従って、複数の座標位置に移動する。
【００６８】
ＣＰＵ２０１は、元の画像２１の境界線２２を構成する各境界画素について、ＬＵＴ３０により移動量の分、移動させて、新たな画像２４を生成する。ＬＵＴ３０において、図９中の右端から２画素目の座標位置、即ち座標位置（４，２）に対応するテーブル要素３１が第２テーブル要素３１Ｂであり、２つの移動量（０，０）及び（−１，０）が座標位置（４，２）と対応付けられている。そのため、座標位置（４，２）の画素は、第２テーブル要素３１Ｂにより、複数の移動先の座標位置（４，２），（３，２）に分散して移動して複数の画素が生成される。したがって、図１４に示す比較例で途切れていた箇所３５にも画素が生成されて、複数の境界画素からなる境界線２５が途切れない。
【００６９】
本実施形態では、ＬＵＴ３０は、予めＨＤＤ２０４等の記憶部に記憶させておき、ＣＰＵ２０１が図７のステップＳ１２２を実行する際には、ＨＤＤ２０４に記憶されているＬＵＴ３０を用いる。
【００７０】
次に、ステップＳ１２２で用いるＬＵＴ３０の生成方法について説明する。図１０は、歪み付与テーブルを生成するテーブル生成処理（テーブル生成工程）を示すフローチャートである。図１１は、歪み付与テーブルを生成するテーブル生成処理（テーブル生成工程）を示す説明図である。本実施形態では、画像処理装置２００のＣＰＵ２０１が作成する場合について説明する。なお、画像処理装置２００以外の装置（コンピュータ）、つまりテーブル作成装置がＬＵＴ３０を作成するようにしてもよい。このテーブル生成処理は、図３に示すフローチャートに従った検査方法を実行する前に行い、生成したＬＵＴ３０をＨＤＤ２０４に記憶させる。
【００７１】
まずＣＰＵ２０１は、カメラ１０５のカメラパラメータに基づき、図１１に示すように、撮像レンズ１０５Ａによる歪みを対象画像から除去する歪み除去テーブル（ＬＵＴ）４０を生成する（Ｓ２０１）。以下、歪み除去テーブルを、「歪み除去テーブル」のほか、「歪み除去ＬＵＴ」又は「ＬＵＴ」と表現する。
【００７２】
歪み除去ＬＵＴ４０は、移動元の画素の座標位置と移動先に対する移動元の画素の移動量とを対応付けた複数のテーブル要素４１で構成されている。図１４の歪み付与ＬＵＴ４０Ｘに対して、同位置でのレンズ歪み除去ＬＵＴ４０では、図１１に示すように、歪み付与と除去とは逆なので移動量の符号が逆になっている。
【００７３】
次に、ＣＰＵ２０１は、注目している画素（注目画素）４１に対する探索範囲を決定する（Ｓ２０２）。探索範囲は、注目画素の座標位置に移動元の画素がくる可能性のある範囲である。図１１の例では、探索範囲４２は、注目画素を中心に３×３画素の範囲である。探索範囲４２は、撮像レンズ１０５Ａの歪みにより最大の移動量が発生し得る値以下で設定すればよい。
【００７４】
次に、ＣＰＵ２０１は、画像の一番左上から注目画素４１の走査を開始する（Ｓ２０３）。図１２は、注目画素の走査方法を示す説明図である。図１２に示すように、歪み除去ＬＵＴ４０のＸ軸方向に注目画素４１を一画素ずつ増やし、それに伴って探索範囲４２も同様にずらしていく。画像の一番右端までくればＹ軸に一画素下げて再度Ｘ軸走査を行っていく。
【００７５】
次に、ＣＰＵ２０１は、歪み除去ＬＵＴ４０上の注目画素の探索範囲４２内を探索する探索範囲走査を行い（Ｓ２０４）、注目画素４１の座標位置にくる画素（対応点）があればその符号を逆にして保存する（Ｓ２０５）。つまり歪み除去補正がかけられた後の画素の位置から逆に歪み付与の移動量を記録していく。例えば、図１１の注目している座標位置にくる画素の移動量は（０，０）と（＋１，０）である。このため、正負の符号を反転させて（０，０）と（−１，０）の移動量が歪み付与ＬＵＴ３０のテーブル要素３１として注目画素の座標位置と対応付けられて記録される。
【００７６】
以上、ＬＵＴ３０の各テーブル要素３１は、ＬＵＴ４０にて対象画像の各画素の座標位置を変換した際に、注目している座標位置に移動してきた画素の移動量の正負の符号を反転させた移動量を、注目している座標位置と対応付けて生成される。
【００７７】
ＣＰＵ２０１は、注目画素の探索範囲内の全ての対応点の探索が終了したか否かを判断し（Ｓ２０６）、終了していなければ（Ｓ２０６：Ｎｏ）、ステップＳ２０４に戻り、終了していれば（Ｓ２０６：Ｙｅｓ）、次のステップＳ２０７に進む。
【００７８】
歪み除去ＬＵＴ４０は整数型で作製されているため、注目画素にくる対応点が一つもない場合も存在する。その場合、ＣＰＵ２０１は、その注目画素の近傍の値を保持する等の対応を行う（Ｓ２０７）。一例としては注目画素の一個左と一個上の既に作成されたＬＵＴ３０の値を保持する方法がある。
【００７９】
ＣＰＵ２０１は、上述した探索と記録が歪み除去ＬＵＴ４０全画素について終了しているかどうかを判定し（Ｓ２０８）、終了していなければ（Ｓ２０８：Ｎｏ）、ステップＳ２０３に戻り、終了していれば（Ｓ２０８：Ｙｅｓ）、処理を終了する。これにより、歪み付与ＬＵＴ３０が完成する。
【００８０】
例として２０４８×２０４８ピクセルの画像、カメラ焦点距離を４０［ｍｍ］程度、３０×３０［ｍｍ］角の正方形形状の被検査面ＷＡとした。同一ＰＣ条件にて本実施形態のＬＵＴ３０を用いた場合と、比較例のＬＵＴ４０Ｘと膨張収縮処理との組合せで画像に歪み付与した場合の処理速度を比較した。本実施形態のＬＵＴ３０を使用した場合の領域計算速度は８［ｍｓ］であったが、比較例のＬＵＴ４０Ｘと膨張収縮処理の組合せ手法では４８［ｍｓ］の時間がかかった。
【００８１】
以上、本実施形態によれば、ＬＵＴ３０を用いて検査領域計算を実施することにより、他手法よりも高速にレンズ歪みを考慮した検査領域を計算することができる。また、ＬＵＴ３０を予めＨＤＤ２０４に記憶させておき、検査時には、ＨＤＤ２０４に記憶されているＬＵＴ３０を用いて検査領域を計算するので、ＣＰＵ２０１による計算負荷が軽減される。
【００８２】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【００８３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８４】
３０…歪み付与テーブル、３１…テーブル要素、３１Ａ…第１テーブル要素、３１Ｂ…第２テーブル要素、１００…検査装置、１０１Ａ…撮像素子、１０３…移動装置、１０５…カメラ、１０５Ａ…撮像レンズ、１０５Ｂ…撮像素子、２００…画像処理装置、２０１…ＣＰＵ（処理部）
【図１】
2017016169.tif 000003
【図２】
2017016169.tif 000004
【図３】
2017016169.tif 000005
【図４】
2017016169.tif 000006
【図５】
2017016169.tif 000007
【図６】
2017016169.tif 000008
【図７】
2017016169.tif 000009
【図８】
2017016169.tif 000010
【図９】
2017016169.tif 000011
【図１０】
2017016169.tif 000012
【図１１】
2017016169.tif 000013
【図１２】
2017016169.tif 000014
【図１３】
2017016169.tif 000015
【図１４】
2017016169.tif 000016