以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
<A.適用例>
まず、図1および図2を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に従う外観検査システム1の概要を示す模式図である。
本実施の形態に従う外観検査システム1は、たとえば、工業製品の生産ラインなどにおいて、ステージ90上に載置された検査対象物(以下、「ワークW」とも称す。)上の複数の検査対象部分を撮像し、得られた画像を用いて、ワークWの外観検査を行なう。外観検査では、ワークWの傷、汚れ、異物の有無、寸法などが検査される。
ステージ90上に載置されたワークWの外観検査が完了すると、次のワークWがステージ90上に搬送される。このとき、ワークWは、ステージ90上の予め定められた位置に予め定められた姿勢で載置される。
図1に示すように、外観検査システム1は、撮像装置10と、画像処理装置20と、ロボット30と、ロボットコントローラ40と、PLC50と、設定装置60とを備える。
撮像装置10は、画像処理装置20からの指令に従って、撮像視野に存在する被写体を撮像して画像データを生成するものであり、被写体として外観検査の対象であるワークWを撮像する。
画像処理装置20は、PLC50からの指令に従って、撮像装置10に対して撮像指令を出力する。画像処理装置20は、検査部21と、表示制御部22と、表示装置23とを含む。検査部21および表示制御部22は、画像処理装置20のプロセッサ110(図8参照)によって実行される機能モジュールである。検査部21は、撮像装置10によって生成された画像データに対して予め定められた処理を実行することにより、ワークWの外観の良否を判定する。表示制御部22は、検査部21による判定結果を表示装置23に表示させる。なお、検査結果の出力は、画像処理装置20に備えられる表示装置23に出力されてもよいが、設定装置60に備えられる表示装置(たとえば、後述のディスプレイ366)に出力されてもよい。
ロボット30は、たとえば、基台31上に複数のアーム32が連結された垂直多関節ロボットである。複数のアーム32の各連結部には回転軸が含まれている。先端アーム32aの先端には、撮像装置10が取り付けられている。ロボットコントローラ40は、PLC50からの指令に応じてロボット30を制御し、ワークWと撮像装置10との間の相対位置およびワークWに対する撮像装置10の姿勢を変える。
なお、上述したように、ワークWは、ステージ90上の予め定められた位置に予め定められた姿勢で載置される。そのため、ロボット30は、ステージ90に対する撮像装置10の相対位置および姿勢を変更することにより、ワークWと撮像装置10との間の相対位置およびワークWに対する撮像装置10の姿勢を変更することができる。すなわち、ロボット30は、ステージ90上の点を原点とする座標系を用いて撮像装置10を移動することにより、ワークWと撮像装置10との間の相対位置およびワークWに対する撮像装置10の姿勢を変更することができる。
PLC50は、撮像装置10がワークW上の複数の検査対象部分を順次撮像するように、ロボットコントローラ40および画像処理装置20を制御する。PLC50は、設定装置60によって設定された撮像条件を満たす経路に従って、ロボットコントローラ40を制御する。さらに、PLC50は、撮像装置10が指定された撮像条件を満たしたタイミングで撮像指令を出力するように画像処理装置20を制御する。
設定装置60は、ワークW上の複数の検査対象部分を順次撮像するための、ワークWと撮像装置10との間の相対位置を含む撮像条件を満たす経路を設定する。設定装置60は、新製品または新品種のワークWの外観検査が必要となったときに、当該ワークWに適した撮像条件を満たす経路を設定する。
図2を参照して、図1に示される外観検査システム1による検査結果の表示態様について説明する。図2は、画像処理装置20の表示装置23に表示される検査結果の一例を示す図である。
画像処理装置20の検査部21は、ワークWを複数の方向から撮影して得られた各画像に対して予め定められた画像処理を実行することにより、ワークWの各検査対象部分について欠陥の有無を検査する。検査結果は、たとえば、「欠陥有」および「欠陥無」のいずれかで表わされる。検査部21による検査処理は、ステージ90が検査対象のワークWを予め定められた位置に搬送する度に実行される。検査部21による検査結果は、ワークWの識別情報とワークWの検査対象部分とに対応付けられた上で表示制御部22に出力される。表示制御部22は、ワークWの各検査対象部分についての検査結果をワークWごとに表わした検査結果マトリクス25を表示装置23に表示する。
図2に示されるように、検査結果マトリクス25の横軸には、ワークの検査対象部分が部位名別に並べられる。各部位名は、予め登録されていてもよいし、ユーザによって設定されてもよい。検査結果マトリクス25の縦軸には、検査済みのワークの識別情報が並べられる。ワークの識別情報は、たとえば、ワークの通し番号(以下、「ワークNo」ともいう。)やワーク名などで表わされる。図2の例では、ワークの識別情報がワークNoで表わされている。
また、検査結果マトリクス25上には、ワークの検査対象部分とワークNoとの各組み合わせに対応付けてセルが配置される。表示制御部22は、各ワークWの各検査対象部分の検査結果を対応するセル上に表示する。このように、各ワークの各検査対象部分についての検査結果が2次元に表わされることで、ユーザは、どのワークのどの部分に欠陥があるのかを即座に把握することができる。2次元での検査結果の表示は、検査結果が膨大になるほど有効になる。
典型的には、表示制御部22は、検査結果マトリクス25に含まれる検査結果の内の、欠陥を示す検査結果を、他の検査結果とは異なる表示態様で強調表示する。一例として、欠陥を示す検査結果のセルは、特定の色(たとえば、赤色)で表わされてもよいし、点滅表示で表わされてもよい。図2の例では、「欠陥有」を示すセルにはハッチングが付されており、「欠陥無」を示すセルにはハッチングが付されていない。欠陥を示す検査結果が他の検査結果とは異なる表示態様で強調表示されることで、ユーザは、欠陥を示す検査結果を容易に判別することができ、どのワークのどの部分に欠陥があるのかをより容易に把握することができる。
なお、上述では、ワークの検査対象部位が検査結果マトリクス25の横軸に配列され、ワークNoが検査結果マトリクス25の縦軸に配列される例について説明を行なったが、ワークNoが検査結果マトリクス25の横軸に配列され、ワークの検査対象部位が検査結果マトリクス25の縦軸に配列されてもよい。
<B.検査結果マトリクスの展開/集約機能>
図3〜図7を参照して、検査結果マトリクス25に示されるセルの展開/集約機能について説明する。図3は、図2に示される検査結果マトリクス25の変形例を示す図である。図3に示される検査結果マトリクス25の各行または各列は、予め定められた分類ルールに従って行単位または列単位でグルーピングされている点で、図2に示される検査結果マトリクス25と異なる。
図3の例では、検査結果マトリクス25の横軸方向においては、ワークの部位「A1」〜「A5」は、グループGV1としてグルーピングされており、ワークの部位「B1」〜「B3」は、グループGV2としてグルーピングされている。ワークの検査対象部分のグルーピングは、図4に示される分類ルール134Aに従って行なわれる。
図4は、分類ルール134Aのデータ構造の一例を示す図である。図4に示されるように、分類ルール134Aには、ワークWの検査対象部分が階層的に対応付けられている。各部位の対応関係は、予め登録されていてもよいし、ユーザによって任意に設定されてもよい。一例として、上位の階層に規定される検査対象部分は、下位の階層に規定される検査対象部分を包含する関係を有する。図4の例では、検査対象部分「A」は、部位「A1」〜「A5」に包含されている。すなわち、部位「A1」〜「A5」は、検査対象部分「A」内の領域である。
再び図3を参照して、検査結果マトリクス25の縦軸方向においては、ワークNo「001A」〜「001E」は、グループGH1としてグルーピングされており、ワークNo「002A」〜「002J」は、グループGH2としてグルーピングされている。ワークNoのグルーピングは、図5に示される分類ルール134Bに従って行なわれる。
図5は、分類ルール134Bのデータ構造の一例を示す図である。図5に示されるように、分類ルール134Bには、検査対象の各ワークが階層的に関連付けられている。各ワークの階層関係は、予め登録されていてもよいし、ユーザによって任意に設定されてもよい。一例として、各ワークは、生産ラインのロット番号に関連付けられる。上位の階層に規定されるロット番号は、下位の階層に規定されるワークを包含する関係を有する。図5の例では、ロット番号「001」は、ワークNo「001A」〜「001E」に包含される。すなわち、ロット番号「001」において、ワークNo「001A」〜「001E」が生産されたことを示す。
再び図3を参照して、検査結果マトリクス25の縦軸方向および横軸方向の各グループには、展開/集約ボタンが割り付けられている。図3の例では、グループGH1には展開/集約ボタンBH1が割り付けられている。グループGH2には展開/集約ボタンBH2が割り付けられている。グループGV1には展開/集約ボタンBV1が割り付けられている。GV2には展開/集約ボタンBV2が割り付けられている。
図6は、展開/集約ボタンBV2を押下した場合における検査結果マトリクス25の画面遷移を示す図である。展開/集約ボタンBV2は、グループGV2のセルに対する集約指示および展開指示を押下の度に交互に受け付ける。すなわち、グループGV2のセルが展開されている状態で、展開/集約ボタンBV2が押下された場合、画像処理装置20の表示制御部22は、グループGV2のセルを一列に集約する。一方で、グループGV2のセルが集約されている状態で、展開/集約ボタンBV2が押下された場合、表示制御部22は、グループGV2のセルの表示を集約前に戻す。
集約対象の検査結果に「欠陥有」を示す検査結果と「欠陥無」を示す検査結果とが含まれている場合、表示制御部22は、「欠陥有」の検査結果の表示を「欠陥無」の検査結果の表示よりも優先して集約処理を行なう。一例として、破線AR1内の検査結果には、「欠陥有」を示す検査結果が1個含まれており、「欠陥無」を示す検査結果が2個含まれている。集約処理により、破線AR1内の3個の検査結果は、破線AR2内に示される1個の検査結果に集約される。このとき、集約前の検査結果には、「欠陥有」が含まれているので、表示制御部22は、集約後の検査結果を「欠陥有」として表わす。
このように、表示制御部22は、集約前の検査結果に「欠陥有」を示す検査結果が1個でも含まれている場合には、表示制御部22は、集約後の検査結果を「欠陥有」とする。一方で、表示制御部22は、集約前の検査結果に「欠陥有」を示す検査結果が1個も含まれていない場合には、表示制御部22は、集約後の検査結果を「欠陥無」とする。
図7は、展開/集約ボタンBH2を押下した場合における検査結果マトリクス25の画面遷移を示す図である。展開/集約ボタンBH2は、グループGH2のセルに対する集約指示および展開指示を押下の度に交互に受け付ける。すなわち、グループGH2のセルが展開されている状態で、展開/集約ボタンBH2が押下された場合、表示制御部22は、グループGH2のセルを一行に集約する。一方で、グループGH2のセルが集約されている状態で、展開/集約ボタンBH2が押下された場合、表示制御部22は、グループGH2のセルの表示を集約前に戻す。
一例として、破線AR3内の検査結果には、「欠陥有」を示す検査結果が1個含まれ、「欠陥無」を示す検査結果が9個含まれている。集約処理により、破線AR3内の10個の検査結果は、破線AR4内に示される1個の検査結果に集約される。このとき、集約前の検査結果には、「欠陥有」が含まれているので、表示制御部22は、集約後の検査結果を「欠陥有」として表わす。
以上のように、画像処理装置20の表示制御部22は、グルーピングされている行群またはグルーピングされている列群に対する集約指示を受け付けた場合に、当該行群または当該列群の検査結果を一行または一列に集約して表示する。また、表示制御部22は、集約して表示されている検査結果に対する展開指示を受け付けた場合に、当該集約して表示されている検査結果の表示を集約前に戻す。これにより、検査結果マトリクス25の行数または列数が表示装置23に表示しきれないほど膨大である場合でも、ユーザは、集約表示および展開表示を活用することで検査結果を効率的に確認することができる。
なお、上述の例では、集約されたセルが「欠陥有」と「欠陥無」との2値で表される例について説明を行なったが、集約されたセルは必ずしも2値で表される必要はない。一例として、「欠陥有」を示す検査結果が集約対象のセルに多く含まれているほど、表示制御部22は、集約後のセルの表示を濃く表示してもよい。
<C.ハードウェア構成>
次に、図8〜図10を参照して、図1に示される画像処理装置20、PLC50、および設定装置60のハードウェア構成について順に説明する。
(C1.画像処理装置20のハードウェア構成)
図8は、画像処理装置20のハードウェア構成の一例を示す模式図である。図8を参照して、画像処理装置20は、典型的には、汎用的なコンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、外観検査処理などの各種の画像処理を実現する。
より具体的には、画像処理装置20は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ110と、RAM(Random Access Memory)112と、表示コントローラ114と、システムコントローラ116と、I/O(Input Output)コントローラ118と、ハードディスクなどの記憶装置120と、カメラインターフェイス122と、入力インターフェイス124と、コントローラインターフェイス126と、通信インターフェイス128と、メモリカードインターフェイス130とを含む。これらの各部は、システムコントローラ116を中心として、互いにデータ通信可能に接続される。
プロセッサ110は、システムコントローラ116との間でプログラム(コード)などを交換して、これらを所定順序で実行することで、目的の演算処理を実現する。
システムコントローラ116は、プロセッサ110、RAM112、表示コントローラ114、およびI/Oコントローラ118とそれぞれバスを介して接続されており、各部との間でデータ交換などを行なうとともに、画像処理装置20全体の処理を司る。
RAM112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、記憶装置120から読み出されたプログラムや、撮像装置10によって取得されたカメラ画像(画像データ)、カメラ画像に対する処理結果、およびワークデータなどを保持する。
表示コントローラ114は、表示装置23と接続されており、システムコントローラ116からの内部コマンドに従って、各種の情報を表示するための信号を表示装置23へ出力する。
I/Oコントローラ118は、画像処理装置20に接続される記録媒体や外部機器との間のデータ交換を制御する。より具体的には、I/Oコントローラ118は、記憶装置120と、カメラインターフェイス122と、入力インターフェイス124と、コントローラインターフェイス126と、通信インターフェイス128と、メモリカードインターフェイス130と接続される。
記憶装置120は、プロセッサ110で実行される画像処理プログラム142や表示プログラム143に加えて、プロジェクトファイル144などの各種データを格納する。プロジェクトファイル144の詳細については後述する。典型的には、記憶装置120は、ハードディスクなどの不揮発性の磁気記憶装置であってもよいし、フラッシュメモリなどの半導体記憶装置であってもよいし、DVD−RAM(Digital Versatile Disk Random Access Memory)などの光学記憶装置であってもよい。
画像処理プログラム142および表示プログラム143は、他のプログラムの一部に組み込まれて提供されるものであってもよい。その場合、画像処理プログラム142自体および表示プログラム143自体は、他のプログラムと協働して予め定められた処理を実行する。すなわち、画像処理プログラム142および表示プログラム143としては、このような他のプログラムに組み込まれた形態であってもよい。また、代替的に、画像処理プログラム142または表示プログラム143の実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
カメラインターフェイス122は、ワークWを撮影することで生成された画像データを受け付ける入力部に相当し、撮像装置10とプロセッサ110との間のデータ伝送を仲介する。より具体的には、カメラインターフェイス122は、1つ以上の撮像装置10と接続が可能であり、プロセッサ110からカメラインターフェイス122を介して撮像装置10とに撮影指示が出力される。これにより、撮像装置10とは、被写体を撮影し、生成した画像をカメラインターフェイス122を介してプロセッサ110に出力する。
入力インターフェイス124は、プロセッサ110とキーボード134、マウス、タッチパネル、専用コンソールなどの入力装置との間のデータ伝送を仲介する。
コントローラインターフェイス126は、PLC50とプロセッサ110との間のデータ伝送を仲介する。より具体的には、コントローラインターフェイス126は、PLC50によって制御される生産ラインの状態に係る情報やワークWに係る情報などをプロセッサ110へ伝送する。
通信インターフェイス128は、プロセッサ110と図示しない他のパーソナルコンピュータやサーバ装置などとの間のデータ伝送を仲介する。通信インターフェイス128は、典型的には、イーサネット(登録商標)やUSB(Universal Serial Bus)などからなる。
メモリカードインターフェイス130は、プロセッサ110と記録媒体であるメモリカード136との間のデータ伝送を仲介する。メモリカード136には、画像処理装置20で実行される画像処理プログラム142や表示プログラム143などが格納された状態で流通し、メモリカードインターフェイス130は、このメモリカード136からこれらのプログラムを読み出す。メモリカード136は、SD(Secure Digital)などの汎用的な半導体記憶デバイスや、フレキシブルディスク(Flexible Disk)などの磁気記録媒体や、CD−ROM(Compact Disk Read Only Memory)などの光学記録媒体等からなる。あるいは、通信インターフェイス128を介して、配信サーバなどからダウンロードしたプログラムを画像処理装置20にインストールしてもよい。
(C2.PLC50のハードウェア構成)
次に、図9を参照して、PLC50のハードウェア構成について説明する。図9は、PLC50のハードウェア構成の一例を示す模式図である。
PLC50は、チップセット212と、プロセッサ214と、不揮発性メモリ216と、主メモリ218と、システムクロック220と、メモリカードインターフェイス222と、通信インターフェイス228と、内部バスコントローラ230と、フィールドバスコントローラ238とを含む。チップセット212と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
プロセッサ214およびチップセット212は、典型的には、汎用的なコンピュータアーキテクチャに従う構成を有している。すなわち、プロセッサ214は、チップセット212から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット212は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ214に必要な命令コードを生成する。システムクロック220は、予め定められた周期のシステムクロックを発生してプロセッサ214に出力する。チップセット212は、プロセッサ214での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
PLC50は、記憶手段として、不揮発性メモリ216および主メモリ218を有する。不揮発性メモリ216は、OS、システムプログラム、ユーザプログラム、ログ情報などを不揮発的に保持する。主メモリ218は、揮発性の記憶領域であり、プロセッサ214で実行されるべき各種プログラムを保持するとともに、各種プログラムの実行時の作業用メモリとしても使用される。
PLC50は、通信手段として、通信インターフェイス228と、内部バスコントローラ230と、フィールドバスコントローラ238とを有する。これらの通信回路は、データの送信および受信を行なう。
通信インターフェイス228は、画像処理装置20や設定装置60との間でデータを遣り取りする。一例として、PLC50は、通信インターフェイス228を介して画像処理装置20に対して撮像指示を出力する。あるいは、PLC50は、通信インターフェイス228を介して画像処理装置20からワークWの外観検査結果を受け付ける。
内部バスコントローラ230は、内部バス226を介したデータの遣り取りを制御する。より具体的には、内部バスコントローラ230は、DMA(Dynamic Memory Access)制御回路232と、内部バス制御回路234と、バッファメモリ236とを含む。
メモリカードインターフェイス222は、PLC50に対して着脱可能なメモリカード224とプロセッサ214とを接続する。
フィールドバスコントローラ238は、フィールドネットワークに接続するための通信インターフェイスである。PLC50は、フィールドバスコントローラ238を介してロボットコントローラ40と接続される。当該フィールドネットワークには、たとえば、EtherCAT(登録商標)、EtherNet/IP(登録商標)、CompoNet(登録商標)などが採用される。
(C3.設定装置60のハードウェア構成)
次に、図10を参照して、設定装置60のハードウェア構成について説明する。図10は、設定装置60のハードウェア構成の一例を示す模式図である。
設定装置60は、プロセッサ362と、メインメモリ363と、記憶装置364と、ディスプレイ366と、入力デバイス367と、通信インターフェイス368とを含む。これらの各部は、バス361を介して、互いにデータ通信可能に接続される。
プロセッサ362は、記憶装置364にインストールされた設定プログラム365を含むプログラム(コード)をメインメモリ363に展開して、これらを所定順序で実行することで、各種の演算を実施する。メインメモリ363は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。
記憶装置364は、設定装置60が備える内部メモリであって、不揮発性の記憶装置であって、設定プログラム365等の各種プログラムを記憶する。なお、記憶装置364は、ハードディスクであってもよいし、フラッシュメモリなどの半導体記憶装置であってもよい。
設定プログラム365は、設定装置60による撮像条件の変更経路を設定するための手順を示すプログラムである。設定プログラム365などの各種プログラムは、記憶装置364に保存されている必要はなく、設定装置60と通信可能なサーバや、設定装置60と直接接続可能な外部メモリに保存されていてもよい。たとえば、外部メモリに設定装置60で実行される各種プログラムおよび各種プログラムで用いられる各種パラメータが格納された状態で流通し、設定装置60は、この外部メモリから各種プログラムおよび各種パラメータを読み出す。外部メモリは、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。あるいは、設定装置60と通信可能に接続されたサーバなどからダウンロードしたプログラムやパラメータを設定装置60にインストールしてもよい。
ディスプレイ366は、たとえば液晶ディスプレイである。入力デバイス367は、たとえばマウス、キーボード、タッチパッドなどにより構成される。
通信インターフェイス368は、PLC50とプロセッサ362との間で各種データをやり取りする。なお、通信インターフェイス368は、サーバとプロセッサ362との間でデータをやり取りしてもよい。通信インターフェイス368は、PLC50との間で各種データをやり取りするためのネットワークに対応するハードウェアを含む。
<D.プロジェクトファイル144>
図11を参照して、上述のプロジェクトファイル144(図8参照)について説明する。図11は、プロジェクトファイル144のデータ構造の一例を示す図である。
ワークWの検査処理に関する各種データがプロジェクトファイル144に関連付けられることで、ワークWの検査処理に関する各種データが一元的に管理される。
一例として、プロジェクトファイル144には、撮像条件ファイル146Aと、画像ファイル群146Bと、検査条件ファイル146Cと、検査結果ファイル146Dと、ワーク情報ファイル146Eと、生産情報ファイル146Fと、分類ルールファイル146Gと、期待値ファイル146Hとが関連付けられる。
撮像条件ファイル146Aは、ワークWの各検査対象部分についての撮像条件を規定するデータである。すなわち、画像処理装置20は、撮像条件ファイル146Aを参照すれば、検査対象部分をキーとして、撮像条件を一意に特定することができる。あるいは、ワークNoと検査対象部分との組み合わせをキーとして撮像条件が一意に特定されてもよい。撮像条件は、たとえば、ワークWと撮像装置10との間の相対位置、ワークWの撮像時における照明の位置などを含む。
画像ファイル群146Bは、規定される撮像条件に従ってワークWを撮像して撮像装置10から得られたデータ群である。画像ファイル群146Bに含まれる各画像ファイルは、ワークNoと検査対象部分とに対応付けられている。すなわち、画像処理装置20は、ワークNoと検査対象部分との組み合わせをキーとして、検査に用いられた画像ファイルを一意に特定することができる。ワークNoと検査対象部分との組み合わせに関する情報は、たとえば、画像ファイルのファイル名や画像ファイルのヘッダに規定される。
検査条件ファイル146Cは、ワークの各検査対象部分についての検査条件を規定するデータである。すなわち、画像処理装置20は、検査条件ファイル146Cを参照すれば、検査対象部分キーとして検査条件を一意に特定することができる。検査条件は、たとえば、画像内の検査対象部分、実行される画像処理フローチャート、画像処理の実行時に読み込まれる計測パラメータ、欠陥の有無を判断するための閾値などを含む。
検査結果ファイル146Dは、各ワークの各検査対象部分に対する計測値や検査結果などを規定するデータである。検査結果ファイル146Dのデータ構造の詳細については後述する。
ワーク情報ファイル146Eは、検査対象のワークの形状を表わす3次元モデルや、検査対象のワークの種別情報などを含む。
生産情報ファイル146Fは、検査対象のワークのロット番号、シリアル番号などを規定するデータである。
分類ルールファイル146Gは、上述の分類ルール134A(図4参照)と、上述の分類ルール134B(図5参照)と、後述の分類ルール134C(図30参照)との少なくとも1つを含むデータである。
期待値ファイル146Hは、検査対象の各ワークの各検査対象部分について検査結果の期待値を規定するデータである。期待値ファイル146Hの詳細については後述する。
<E.検査結果ファイル146D>
図12を参照して、上述のプロジェクトファイル144(図11参照)に含まれる検査結果ファイル146Dについて説明する。
図12は、検査結果ファイル146Dのデータ構造の一例を示す図である。検査結果ファイル146Dは、ワークの識別情報(たとえば、ワークNo)と、ワークの検査対象部分を示す部位名と、検査処理の出力結果として得られる計測値と、欠陥の有無を示す検査結果とを含む。
画像処理装置20は、検査結果ファイル146Dを参照すれば、ワークNoと検査対象部分との組み合わせをキーとして、計測値および検査結果を一意に特定することができる。
<F.設定装置における処理の流れ>
図13は、設定装置60における処理の流れの一例を示すフローチャートである。外観検査システム1によって新製品または新品種のワークWの外観検査が必要になったときに、設定装置60は、たとえば図13に示すフローチャートに従った処理を行ない、新製品または新品種のワークWに適した撮像条件の変更経路を設定する。新製品または新品種のワークWの設計上の表面を示す3次元設計データは、設定装置60の記憶装置364に予め格納される。
図13に示す例では、まずステップS1において、設定装置60のプロセッサ362は、記憶装置364から3次元設計データを読み込む。次にステップS2において、プロセッサ362は、3次元設計データで示されるワークWの設計上の外観を示す模式図を設定装置60のディスプレイ366に表示し、ユーザ入力に従ってワークW上の検査対象領域を決定する。このとき、ワークWがステージ90上の予め定められた位置に予め定められた姿勢で載置されることを前提として、プロセッサ362は、3次元設計データの座標系を、ステージ90上の点を原点とするXYZ座標系に変換する。そのため、検査対象領域は、ステージ90上の点を原点とするXYZ座標系で示される。
次にステップS3において、プロセッサ362は、検査対象領域に対応する検査要件を満たすように、検査対象領域内から複数の検査対象位置を決定する。すなわち、プロセッサ362は、検査対象領域内において決定された複数の検査対象位置の各々を検査対象部分として決定する。
次にステップS4において、プロセッサ362は、複数の検査対象位置の各々に対して、検査時のワークWと撮像装置10との間の相対位置を含む撮像条件を決定する。
次にステップS5において、プロセッサ362は、ステップS4で決定された、ワークWと撮像装置10との間の相対位置を通過するように撮影経路を決定する。
ステップS2で決定された検査対象領域、ステップS3で決定された検査対象位置、ステップS4で決定された撮像条件、およびステップS5で決定された撮影経路は、画像処理装置20およびPLC50に送信される。
なお、上記の例では、ステップS3において、検査対象部分から複数の検査対象位置が決定されるとした。しかしながら、ステップS2において、複数の検査対象部分が決定され、ステップS3において、複数の検査対象部分の各々から少なくとも1つの検査対象位置が決定されてもよい。これによっても、ステップS3により複数の検査対象位置が決定される。
<G.検査対象部分の決定方法>
図14および図15を参照して、検査対象部分の決定方法の一例について説明する。図14は、ワークWの設計上の外観を示す模式図が表示された画面の一例を示す図である。図15は、検査対象部分が表示された画面の一例を示す図である。
図14に示されるように、設定装置60は、ワークWの形状を表わす3次元モデルMLを含む画面61aをディスプレイ366に表示させる。画面61aには、垂直方向を軸として3次元モデルMLを回転させるためのツールボタン71と、水平方向を軸として3次元モデルMLを回転させるためのツールボタン72とが含まれる。ユーザは、ツールボタン71,72を操作することにより、3次元モデルMLを適宜回転させることができる。
設定装置60は、ユーザから検査したい場所の指定を受け付ける。具体的には、ユーザは、入力デバイス367を用いて、ワークWの3次元モデルML上における検査したい複数点をクリックする。図14に示す画面61aでは、ユーザによってクリックされた複数点が丸印74によって示されている。
設定装置60は、3次元モデルML上で指定された複数の丸印74を含む領域を検査対象領域として切り出す。具体的には、設定装置60は、指定された各丸印74に対応するワークWの表面上の点から当該表面に沿って所定距離以内の範囲を求め、当該範囲の和集合を検査対象領域として切り出す。
さらに、設定装置60は、輪郭線が直線または円などの幾何学図形となるように検査対象領域を調整する。図15に示すディスプレイ366の画面61bには、輪郭線がワークWのいずれかの稜線と平行な直線となるように調整された検査対象領域75が示される。
さらに、設定装置60は、ユーザから検査対象領域75の微調整の指示を受け付け、当該指示に応じて検査対象領域75を微調整する。画面61bには、検査対象領域75を拡大または縮小するためのツールボタン76,77が含まれる。ユーザは、入力デバイス367を用いて、検査対象領域75の輪郭線を構成する一辺を選択し、ツールボタン76,77を操作することにより、検査対象領域75の拡大または縮小の指示を入力する。もしくは、ユーザは、入力デバイス367に含まれるマウスを用いて、検査対象領域75の輪郭線を構成する一辺上の点78をドラッグすることにより、検査対象領域75の拡大または縮小の指示を入力してもよい。これにより、設定装置60は、検査対象領域75の拡大または縮小を行なう。このようにして、設定装置60は、検査対象領域75を決定する。図15に示す例では、直方体のワークWの6面のうちの4面の部分領域を集合した領域が検査対象領域75として決定されている。
<H.検査対象位置の決定方法>
図16〜図18を参照して、設定装置60による検査対象位置の決定方法の一例について説明する。図16は、検査対象領域上の点の例を示す図である。図17は、検査対象領域から決定された検査対象位置とそれに対応する実効視野との例を示す図である。図18は、検査対象領域から決定された全ての検査対象部分と実効視野とを示す図である。
カメラ解像度をR(pix)、要求される最小欠陥サイズをD(mm)とするとき、当該最小欠陥サイズの欠陥を認識できるという検査要件を満たすことが可能な最大の、撮像装置10による撮像視野FOVが検査対象部分として設定される。撮像視野FOVの径は、一般に、比例定数aを用いてa×D×Rで表わされる。
設定装置60は、検査対象領域75を点の集合とみなし、法線ベクトルの分布を用いて、検査対象領域75内の点の近傍の3次元形状を調査することができる。たとえば、設定装置60は、ワークWの3次元設計データに基づいて、検査対象領域75内の点から表面に沿って距離L以内の範囲における法線ベクトルの分布を求める。距離Lは、たとえば、撮像視野FOVの径(=a×D×R)に比例定数bを乗じた値(=b×a×D×R)である。
図16に示す例では、点P1の近傍は平坦である。そのため、点P1からワークWの表面に沿って距離L以内の範囲内の法線ベクトルは、全てベクトルn2となる。点P2は2面が交わる稜線の近傍に位置する。そのため、点P2からワークWの表面に沿って距離L以内の範囲内の法線ベクトルは、2つのベクトルn2,n4を含む。点P2は3面が交わる頂点の近傍に位置する。そのため、点P3からワークWの表面に沿って距離L以内の範囲内の法線ベクトルは、3つのベクトルn1,n2,n4を含む。したがって、設定装置60は、検査対象領域75内の点から表面に沿って距離L以内の範囲の法線ベクトルの分布により、当該点の近傍が平坦であるのか、当該点の近傍に稜線が存在するのか、当該点の近傍に稜線が存在するのか、を判定できる。
図17に示されるように、設定装置60は、検査対象領域75の中から無作為に選択した1点を検査対象位置Biとして選択する。設定装置60は、検査対象位置Biに対して、撮像装置10による実効視野FOV2iを検査対象部分として求める。実効視野FOV2iは、検査対象位置Biを含み、1つの撮像条件を用いて撮像装置10が撮像可能かつ検査可能な視野である。設定装置60は、検査対象位置Biの近傍の3次元形状に応じて実効視野FOV2iを決定する。実効視野FOV2iが取り得る最大径は、撮像視野FOVの径(=a×D×R)に設定される。
たとえば、設定装置60は、実効視野FOV2iにおける法線ベクトル分布のばらつきが所定範囲内に入るように、実効視野FOV2iを決定する。検査対象位置Biの近傍が平坦である場合、設定装置60は、検査対象位置Biから表面に沿って距離a×D×R以内の範囲(つまり、撮像視野FOV)を実効視野FOV2iとして決定する。一方、検査対象位置Biの近傍に稜線または頂点が存在する場合、図17に示されるように、設定装置60は、検査対象位置Biから表面に沿って距離a×D×R以内の範囲から一部の範囲を除いた範囲を実効視野FOV2iとする。除かれる範囲は、法線ベクトル分布において最大の分布量を示す法線ベクトル以外の法線ベクトルを有する表面の範囲である。
次に、設定装置60は、検査対象領域75に属する点の集合から、決定した実効視野FOV2iに属する点の集合を除去し、残った点の集合の中から無作為に選択した1点を次の検査対象位置B(i+1)として選択する。設定装置60は、選択した検査対象位置B(i+1)に対しても実効視野FOV2(i+1)を決定する。設定装置60は、検査対象領域75に属する点の集合が0になるまで、この処理を繰り返す。これにより、図18に示されるように、検査対象領域75から複数の検査対象位置Bi(i=1,2,・・・)が決定される。検査対象領域75内の全ての点は、複数の検査対象位置Bi(i=1,2,・・・)のいずれかの実効視野FOV2iに含まれる。上述したように、実効視野FOV2iが取り得る最大径は、撮像視野FOVの径に設定される。そのため、検査対象領域75の全域について最小欠陥サイズの欠陥が認識可能なように検査対象位置が決定される。
なお、上記の説明では、設定装置60は、検査対象領域75から無作為に検査対象位置Biを抽出するとした。しかしながら、設定装置60は、予め定められた幾何学的条件に従って検査対象領域75から検査対象位置Biを抽出してもよい。あるいは、設定装置60は、抽出された複数の検査対象位置Biが規則的に整列するように、検査対象領域75から検査対象位置Biを抽出してもよい。
たとえば、ワークWにおいて稜線または頂点の近傍に欠陥が生じやすい場合、稜線または頂点の近傍を優先的に検査するという検査要件を満たすように、検査対象位置が決定されてもよい。たとえば、検査対象領域75内のうち、所定距離内に稜線または頂点が存在する点の集合から優先的に検査対象位置Biが抽出されてもよい。
<I.撮像条件の決定方法>
図19は、設定装置60によるワークWの撮影位置Ciの決定方法の一例を示す図である。設定装置60は、検査対象位置BiにおけるワークWの設計上の外観表面の法線上において撮影位置Ciを決定する。具体的には、撮影位置Ciは、検査対象位置Biに対応する実効視野FOV2iを撮像可能であり、かつ、検査対象位置Biにピントが合う最適な被写体距離だけ検査対象位置Biから離れた位置に決定される。
次に、設定装置60は、決定された撮影位置Ciに基づいて撮像条件を決定する。典型的には、設定装置60は、検査対象位置Biを視野に含み、検査対象位置Biにピントが合う最適な撮像条件を決定する。
撮像条件は、たとえば、ステージ90上の点を原点とするXYZ座標系における撮像装置10のX座標、Y座標およびZ座標と、撮像装置10の光軸の方向を特定するθx、θy、θzとの6個のパラメータを含む。θxは、撮像装置10の光軸をXY平面に投影した線とX軸とのなす角度であり、θyは、撮像装置10の光軸をYZ平面に投影した線とY軸とのなす角度であり、θzは、撮像装置10の光軸をZX平面に投影した線とZ軸とのなす角度である。XYZ座標は、ワークWと撮像装置10との間の相対位置を特定するパラメータであり、θx,θy,θzは、ワークWに対する撮像装置10の姿勢を特定するパラメータである。
<J.撮影経路の決定方法>
図20は、撮影位置Ciに対して決定された撮影経路の一例を示す図である。
設定装置60は、決定した撮影位置C1〜C7を通過するように撮影経路を決定する。このとき、設定装置60は、予め定められた要件を満たすように撮影経路を決定する。たとえば、予め定められた要件が移動時間を最短とする要件である場合、設定装置60は、複数の撮像位置を順に通過する経路候補のうちで、移動時間が最短となる経路候補を撮影経路として設定する。たとえば、設定装置60は、予め定められた要件で示される項目(たとえば移動時間)を評価するための評価値を経路候補ごとに算出し、算出した評価値に基づいて撮影経路を設定すればよい。さらに、複数の検査対象位置の各々について複数の撮像位置候補が存在する場合も、設定装置60は、評価値に基づいて、当該複数の撮像位置候補の中の1つを撮像位置として選択すればよい。このようにして、予め定められた要件を満たすように最適化された撮影経路が設定される。
図20には、決定された撮影経路PSが示されている。図20の例では、「撮影位置C1」→「撮影位置C4」→「撮影位置C5」→「撮影位置C6」→「撮影位置C7」→「撮影位置C3」→「撮影位置C2」を順に通過するように撮影経路PSが決定されている。
<K.PLC50による制御処理>
図21は、PLC50における処理の流れの一例を示すフローチャートである。図21に示される処理は、PLC50のプロセッサ214がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
PLC50は、撮像装置10が決定された撮影経路PS(図20参照)を通過するようにロボットコントローラ40を制御するとともに、撮像装置10が決定された撮影位置Ci(図20参照)で撮影を実行するように画像処理装置20を制御する。
まず、ステップS10において、プロセッサ214は、ステージ90に載置されたワークWが予め定められた位置に設置されたか否かを判断する。プロセッサ214は、ワークWが予め定められた位置に設置されたと判断した場合(ステップS10においてYES)、制御をステップS12に切り替える。そうでない場合には(ステップS10においてNO)、プロセッサ214は、ステップS10の処理を再び実行する。
ステップS12において、プロセッサ214は、予め設定されている撮影経路PSに従ってロボットコントローラ40に指令値を順次出力する。ロボットコントローラ40は、PLC50からの指令値に従ってロボット30の各軸を駆動する。これにより、ロボット30の先端に取り付けられている撮像装置10が撮影経路PSに沿って順次移動する。
ステップS20において、プロセッサ214は、撮像装置10が予め設定されている撮影位置Ci(図20参照)に到達したか否かを判断する。撮像装置10が予め設定されている撮影位置Ciに到達したか否かは、たとえば、ステップS12でロボットコントローラ40に出力される指令値に基づいて判断される。プロセッサ214は、撮像装置10が予め設定されている撮影位置Ciに到達したと判断した場合(ステップS20においてYES)、制御をステップS22に切り替える。そうでない場合には(ステップS20においてNO)、プロセッサ214は、制御をステップS30に切り替える。
ステップS22において、プロセッサ214は、画像処理装置20に撮影指示を出力する。これにより、画像処理装置20は、撮影処理を実行する。
ステップS30において、プロセッサ214は、撮像装置10が予め設定されている撮影経路PSの終点に到達したか否かを判断する。撮像装置10が予め設定されている撮影経路PSの終点に到達したか否かは、たとえば、ステップS12でロボットコントローラ40に出力される指令値に基づいて判断される。プロセッサ214は、撮像装置10が予め設定されている撮影経路PSの終点に到達したと判断した場合(ステップS30においてNO)、プロセッサ214は、制御をステップS10に戻す。そうでない場合には(ステップS30においてNO)、プロセッサ214は、制御をステップS12に戻す。
<L.画像処理装置20による検査処理>
図22は、画像処理装置20による検査処理の流れの一例を示すフローチャートである。図22に示される処理は、画像処理装置20のプロセッサ110が画像処理プログラム142(図8参照)を実行することにより実現される。なお、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS50において、プロセッサ110は、PLC50から撮影指示を受け付けたか否かを判断する。上述の図21で説明したように、PLC50は、撮像装置10が予め設定されている撮影位置Ciに到達した時点で撮影指示を画像処理装置20に出力する。プロセッサ110は、PLC50から当該撮影指示を受け付けたと判断した場合(ステップS50においてYES)、制御をステップS52に切り替える。そうでない場合には(ステップS50においてNO)、プロセッサ110は、制御をステップS60に切り替える。
ステップS52において、プロセッサ110は、上述の検査部21(図1参照)として、撮影指示を撮像装置10に出力する。これにより、撮像装置10は、画像処理装置20から撮影指示を受け付けたことに基づいて、撮影処理を実行する。これにより、画像処理装置20は、予め定められた撮影位置Ciで撮像装置10に撮影処理を実行させることができる。
ステップS54において、プロセッサ110は、上述の検査部21として、撮像装置10から得られた画像に対して予め定められた画像処理を実行することで検査処理を実行する。実行される画像処理は、たとえば、上述の検査条件ファイル146C(図11参照)に規定されている。上述のように、検査条件ファイル146Cは、ワークWの各検査対象部分についての検査条件を規定するデータである。すなわち、画像処理装置20は、検査条件ファイル146Cを参照すれば、検査対象部分をキーとして検査条件を一意に特定することができる。プロセッサ110は、検査条件ファイル146Cから取得した検査条件に従って得られた画像に対して画像処理を実行し、検査結果を得る。
ステップS56において、プロセッサ110は、上述の検査部21として、ステップS54で得られた検査結果を上述の検査結果ファイル146D(図12参照)に書き込む。一例として、プロセッサ110は、ワークWの識別情報(たとえば、ワークNo)と、ワークWの検査対象部分を示す部位名と、検査処理の出力結果として得られる計測値と、欠陥の有無を示す検査結果とを対応付けた上で検査結果ファイル146Dに書き込む。
ステップS60において、プロセッサ110は、検査処理の終了命令を受け付けたか否かを判断する。プロセッサ110は、検査処理の終了命令を受け付けたと判断した場合(ステップS60においてYES)、図22に示される検査処理を終了する。そうでない場合には(ステップS60においてNO)、プロセッサ110は、制御をステップS50に戻す。
なお、図22の例では、ワークWの撮影処理が実行される度に検査処理が実行される例について説明を行ったが、ワークWの撮影処理と、画像に対する検査処理とは、個別に実行されてもよい。すなわち、画像処理装置20は、まず画像を蓄積し、その後に蓄積した画像を一括で検査してもよい。
<M.検査結果マトリクス25の表示フロー>
図23は、上述の検査結果マトリクス25の表示処理の流れの一例を示すフローチャートである。図23に示される処理は、画像処理装置20のプロセッサ110が表示プログラム143(図8参照)を実行することにより実現される。なお、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS70において、プロセッサ110は、検査結果マトリクス25の表示操作を受け付けたか否かを判断する。当該表示操作は、画像処理装置20に備えられる操作部に対して行なわれる。当該操作部は、たとえば、キーボード134(図8参照)、マウス、タッチパネルなどを含む。プロセッサ110は、検査結果マトリクス25の表示操作を受け付けたと判断した場合(ステップS70においてYES)、制御をステップS72に切り替える。そうでない場合には(ステップS70においてNO)、プロセッサ110は、ステップS70の処理を再び実行する。
ステップS72において、プロセッサ110は、上述の検査結果ファイル146D(図12参照)を参照して、検査結果ファイル146Dに規定されているワークNoと、検査結果ファイル146Dに規定されている検査対象部分とを取得する。
ステップS74において、プロセッサ110は、上述の表示制御部22(図1参照)として、ステップS72で取得したワークNoに従って検査結果マトリクス25の縦軸を構成する。これにより、検査結果マトリクス25の縦軸にワークNoが配列される。
ステップS76において、プロセッサ110は、上述の表示制御部22として、ステップS74で取得したワークの検査対象部分に従って検査結果マトリクス25の横軸を構成する。これにより、検査結果マトリクス25の横軸に検査対象部分が配列される。
ステップS78において、プロセッサ110は、上述の表示制御部22として、ステップS72で取得したワークNoと、ステップS74で取得したワークの検査対象部分との組み合わせごとに検査結果マトリクス25上に空白のセルを配置する。各セルは、ワークNoと検査対象部分とに対応付けられる。
ステップS80において、プロセッサ110は、上述の表示制御部22として、検査結果ファイル146Dを参照して、検査結果マトリクス25の各セルに検査結果を反映する。より具体的には、プロセッサ110は、ワークNoと検査対象部分との各組み合わせについて検査結果を取得し、各組み合わせに対応するセルに取得した検査結果を反映する。典型的には、プロセッサ110は、「欠陥有」の検査結果と「欠陥無」の検査結果とを区別可能な態様で各セルに検査結果を反映する。一例として、検査結果が「欠陥有」を示す場合、プロセッサ110は、対応するセルを特定の色(たとえば、赤色)で表示する。一方で、検査結果が「欠陥無」を示す場合、プロセッサ110は、対応するセルを他の色(たとえば、白色または緑色)で表示する。
ステップS82において、プロセッサ110は、検査結果マトリクス25内のいずれかのセルが選択されたか否かを判断する。当該選択操作は、画像処理装置20に備えられる操作部に対して行なわれる。当該操作部は、たとえば、キーボード134(図8参照)、マウス、タッチパネルなどを含む。プロセッサ110は、検査結果マトリクス25内のいずれかのセルが選択されたと判断した場合(ステップS82においてYES)、制御をステップS84に切り替える。そうでない場合には(ステップS82においてNO)、プロセッサ110は、制御をステップS90に切り替える。
検査結果マトリクス25は、ワークNoと検査対象部分とに対応付けられているため、各セルを選択することは、ワークNoと検査対象部分との組み合わせを指定することを意味する。
ステップS84において、プロセッサ110は、上述の検査部21(図1参照)または表示制御部22として、選択されたセルに応じた処理を実行する。すなわち、プロセッサ110は、指定されたワークNoと検査対象部分との組み合わせに応じた処理を実行する。セルの選択操作に応じて実行される処理の詳細については後述する。
ステップS90において、プロセッサ110は、検査結果マトリクス25を閉じる操作を受け付けたか否かを判断する。プロセッサ110は、検査結果マトリクス25を閉じる操作を受け付けたと判断した場合(ステップS90においてYES)、図23に示される処理を終了する。そうでない場合には(ステップS90においてNO)、プロセッサ110は、制御をステップS82に戻す。
<N.検査結果マトリクス内のセルの選択機能>
図24のステップS82,S84に示されるように、画像処理装置20は、検査結果マトリクス25内のセルが選択されたことに基づいて、選択されたセルに応じた処理を実行する。実行される得る処理としては、たとえば、以下で説明する具体例1〜5の処理が挙げられる。以下では、これらの処理について順に説明する。
なお、典型的には、画像処理装置20は、セルの選択操作を受け付けたことに基づいて、下記の具体例1〜5に示す処理の少なくとも1つを実行する。あるいは、画像処理装置20は、セルの選択操作を受け付けたことに基づいて、下記の具体例1〜5に示す処理の選択画面を表示し、当該選択画面において選択された処理を実行してもよい。
(N1.具体例1)
図24は、セル選択操作に応じて実行される処理の具体例1を示す図である。図24の例では、検査結果マトリクス25内のセルCE1が選択されている。
画像処理装置20の表示制御部22は、セルCE1が選択されたことに基づいて、セルCE1に対応する検査対象部分の検査に用いられた画像と、当該画像の撮像条件とを表示装置23に表示する。これにより、ユーザは、欠陥を示す画像を目視で確認したり、撮像条件の妥当性などを確認することができる。また、ユーザは、検査結果マトリクス25に示される検査対象部分がワークのどの部分を示しているのかを容易に確認することができる。
より具体的には、画像処理装置20は、選択されたセルCE1に関連付けられているワークNoと検査対象部分との組み合わせを特定する。次に、画像処理装置20は、特定したワークNoと検査対象部分との組み合わせをキーとして対応する画像ファイルを上述の画像ファイル群146B(図11参照)から取得する。次に、画像処理装置20は、特定した検査対象部分をキーとして対応する撮像条件を上述の撮像条件ファイル146A(図11参照)から取得する。表示制御部22は、取得した画像ファイルと撮像条件とを、セルCE1に対応付けられたポップアップ画面PU1上に表示する。表示された撮像条件は、任意の値に変更可能に構成される。
なお、図24の例では、セルの選択操作に応じて撮像画像と撮像条件との両方が表示される例について説明を行なったが、表示制御部22は、セルの選択操作に応じて撮像画像および撮像条件のいずれか一方を表示してもよい。
(N2.具体例2)
図25は、セル選択操作に応じて実行される処理の具体例2を示す図である。図25の例では、検査結果マトリクス25内のセル群CE2が選択されている。
画像処理装置20の表示制御部22は、セル群CE2が選択されたことに基づいて、検査対象のワークの形状を表わす3次元モデルMLを表示装置23に表示するとともに、セル群CE2に対応する検査対象部分の検査結果を当該3次元モデルML上の対応部分に表わす。これにより、ユーザは、ワークのどの部分に欠陥があるのかを容易に確認することができる。
より具体的には、画像処理装置20の表示制御部22は、セル群CE2が選択されたことに基づいて、上述のワーク情報ファイル146E(図11参照)から、検査対象のワークの3次元モデルMLを取得し、セル群CE2に対応付けられたポップアップ画面PU2上に当該3次元モデルMLを表示する。
次に、選択された各セルに関連付けられているワークNoと検査対象部分との組み合わせを特定する。次に、画像処理装置20は、特定したワークNoと検査対象部分との各組み合わせに対応する検査結果を上述の検査結果ファイル146D(図12参照)から取得する。次に、画像処理装置20は、各検査対象部分の検査結果を3次元モデルMLの対応箇所に表わす。上述の図13〜図18で説明したように、検査対象位置Biは、3次元モデルMLに対して設定されるので、3次元モデルMLと検査対象位置Biとの関係は既知である。そのため、画像処理装置20の表示制御部22は、この既知の情報に基づいて、各検査対象部分の検査結果を3次元モデルML上に反映することができる。
図25の例では、選択されたセル群CE2に対応する検査対象部分A3〜A5が3次元モデルML上に反映されている。このとき、表示制御部22は、3次元モデルML上において、「欠陥有」を示す検査対象部分を「欠陥無」とは異なる表示態様で表わす。「欠陥有」を示す検査対象部分は、3次元モデルML上で特定の色(たとえば、赤色)で表わされ、「欠陥無」を示す検査対象部分は、3次元モデルML上で他の色(たとえば、緑色)で表わされる。あるいは、「欠陥有」を示す検査対象部分は、点滅表示で表わされてもよい。
好ましくは、表示制御部22は、3次元モデルML上において、検査対象部分A3を含む検査対象領域75Aと、検査対象部分A4,A5を含む検査対象領域75Bとをさらに表わす。検査対象領域については図15で説明した通りであるので、その説明については繰り返さない。「欠陥有」を示す検査対象部分を含む検査対象領域75Bは、「欠陥有」を示す検査対象部分を含まない検査対象領域75Aとは異なる態様で表示される。一例として、検査対象領域75Bは、特定の色(たとえば、赤色)で表わされてもよいし、点滅表示で表わされてもよい。
また、表示制御部22は、垂直方向を軸として3次元モデルMLを回転させるためのツールボタン71と、水平方向を軸として3次元モデルMLを回転させるためのツールボタン72とをポップアップ画面PU2上にさらに表示する。ユーザは、ツールボタン71,72を操作することにより、3次元モデルMLを適宜回転させることができる。
(N3.具体例3)
図26は、セル選択操作に応じて実行される処理の具体例3を示す図である。図26の例では、検査結果マトリクス25内のセル群CE3が選択されている。
画像処理装置20の表示制御部22は、セル群CE3が選択されたことに基づいて、セル群CE3に対応する検査結果の統計結果を表示装置23に表わす。これにより、ユーザは、任意の検査対象部分の検査結果を容易に分析することができる。
より具体的には、画像処理装置20は、選択されたセル群CE3の各セルに関連付けられているワークNoと検査対象部分との組み合わせを特定する。次に、画像処理装置20は、特定したワークNoと検査対象部分との組み合わせの各々に対応する検査結果および計測値を上述の検査結果ファイル146Dから取得する。次に、画像処理装置20は、取得した計測値に対して予め定められた統計処理を実行する。
一例として、画像処理装置20は、予め定められた統計処理を実行することで、度数分布(すなわち、ヒストグラム)を生成する。当該ヒストグラムの横軸は計測値の区分を表わし、当該ヒストグラムの横軸は各区分に含まれる計測値の頻度を表わす。画像処理装置20の表示制御部22は、セル群CE3に対応付けられたポップアップ画面PU3上に、生成したヒストグラムを表示する。
好ましくは、計測値の度数分布は、選択された検査対象部分ごとに生成される。図26の例では、選択された検査対象部分A2,A3のそれぞれについて度数分布が示されている。
他の例として、画像処理装置20は、予め定められた統計処理を実行することで、計測値推移グラフを生成する。当該計測値推移グラフの横軸はワークNoを表わし、当該計測値推移グラフの縦軸は計測値を表わす。画像処理装置20の表示制御部22は、セル群CE3に対応付けられたポップアップ画面PU3上に、生成した計測値推移グラフを表示する。
好ましくは、計測値推移グラフは、選択されたセル群CE3に対応する検査対象部分ごとに生成される。図26の例では、選択された検査対象部分A2,A3のそれぞれについて計測値推移グラフが示されている。
なお、図26の例では、セル群の選択操作に応じてヒストグラムと計測値推移グラフとの2つの統計結果が表示される例について説明を行なったが、表示制御部22は、セル群の選択操作に応じて少なくとも1つの統計結果を表示すればよい。
(N4.具体例4)
図27は、セル選択操作に応じて実行される処理の具体例4を示す図である。図27の例では、検査結果マトリクス25内のセル群CE4が選択されている。
画像処理装置20の検査部21は、セル群CE4が選択されたことに基づいて、セル群CE4に対応する検査対象部分の検査に用いられた画像に基づいて、当該検査対象部分を再検査する。これにより、ユーザは、任意の検査対象部分について再検査を容易に実行することができる。
より具体的には、ユーザは、検査条件を設定し直し、その上で検査結果マトリクス25のセル群CE4を選択する。検査部21は、選択されたセル群CE4の各セルに関連付けられているワークNoと検査対象部分との組み合わせを特定する。次に、検査部21は、特定したワークNoと検査対象部分との組み合わせの各々に対応する画像データを上述の画像ファイル群146Bから取得する。次に、検査部21は、特定した検査対象部分の各々に対応する検査条件を上述の検査条件ファイル146Cから取得する。次に、検査部21は、取得した画像データの各々に対して、対応する検査条件に従った画像処理を実行する。次に、表示制御部22は、再検査の結果を検査結果マトリクス25に反映する。
なお、図27の例では、検査結果マトリクス25内において複数のセルが選択される例について説明を行なったが、本例においては、選択されるセル数は、1つ以上であればよい。
(N5.具体例5)
図28は、セル選択操作に応じて実行される処理の具体例5を示す図である。図28の例では、検査結果マトリクス25内のセル群CE5が選択されている。
画像処理装置20の表示制御部22は、セル群CE5が選択されたことに基づいて、検査対象のワークの3次元モデルMLを表示装置23に表示するとともに、セル群CE5に対応する検査対象部分の撮像条件を3次元モデルML上の対応部分に表わす。これにより、ユーザは、選択部分の撮像条件を容易に確認することができる。
より具体的には、画像処理装置20の表示制御部22は、セル群CE5が選択されたことに基づいて、検査対象のワークの3次元モデルMLを上述のワーク情報ファイル146E(図11参照)から取得し、セル群CE5に対応付けられたポップアップ画面PU5に3次元モデルMLを表示する。
次に、選択された各セルに関連付けられているワークNoと検査対象部分との組み合わせを特定する。次に、画像処理装置20は、特定したワークNoと検査対象部分との各組み合わせに対応する撮像条件を上述の撮像条件ファイル146A(図11参照)から取得する。
次に、画像処理装置20の表示制御部22は、セル群CE5に対応するワークNoの内からいずれか1つのワークNo(たとえば、最小のワークNo)を決定し、当該決定したワークNoに対応する各撮像条件を3次元モデルMLの対応箇所に表わす。ポップアップ画面PU5には、戻るボタン81と、進むボタン82とが表示されており、ユーザは、戻るボタン81または進むボタン82を押下することで、表示対象の撮像条件をワークNoの順に切り替えることができる。
表示される撮像条件は、3次元モデルMLに対する撮像装置10の撮影位置を含む。上述の図19で説明したように、3次元モデルMLに対する撮像装置10の撮影位置Ciは、設定装置60による設定処理で決定されているので、3次元モデルMLに対する撮像装置10の撮影位置Ciは既知である。そのため、画像処理装置20の表示制御部22は、この既知の情報に基づいて、撮像装置10を表わす模式図を撮影位置Ci上に表示することができる。図28の例では、撮影位置C5,C7において撮像装置10を表わす模式図が表示されている。
他の例として、表示される撮像条件は、ワーク上の検査対象部分を含む。上述の図13〜図18で説明したように、検査対象位置Biは、3次元モデルMLに対して設定されるので、3次元モデルMLと検査対象位置Biとの関係は既知である。そのため、画像処理装置20の表示制御部22は、この既知の情報に基づいて、各検査対象部分の検査結果を3次元モデルML上に反映することができる。図28の例では、検査対象部分A5,B1が3次元モデルML上に表わされている。
なお、上述の例では、撮像条件として撮影位置や検査対象部分が表示される例について説明を行なったが、表示される撮像条件は、撮影位置および検査対象部分に限定されない。たとえば、撮像時における撮像装置10の光学条件(撮像視野など)、撮像時における照明条件などが表示されてもよい。
<O.検査結果マトリクス25の変形例>
図29は、図3に示される検査結果マトリクス25の変形例を示す図である。図3に示される検査結果マトリクス25の各行は、ワークのロット番号でグルーピングされているのに対して、図29に示される検査結果マトリクス25の各行は、ワークの品種でグルーピングされている。
異なる品種のワーク間では、共通の検査対象部分が存在する可能性もあるし、特有の検査対象部分が存在する可能性もある。そのため、異なる品種の各ワークの検査結果を1つの検査結果マトリクス25上で表わす場合、工夫が必要になる。
一例として、ワーク品種αは、ワーク品種βにはない特有の検査対象部分「A1」,「A3」を有するとする。この場合、図29に示されるように、ワーク品種αの検査対象部分「A1」,「A3」に対応するセルについては検査結果が反映されるが、ワーク品種βの検査対象部分「A1」,「A3」に対応するセルについては「該当無」として空白が表示される。
また、ワーク品種βは、ワーク品種αにはない特有の検査対象部分「A5」,「B3」を有するとする。この場合、図29に示されるように、ワーク品種βの検査対象部分「A5」,「B3」に対応するセルについては検査結果が反映されるが、ワーク品種αの検査対象部分「A5」,「B3」に対応するセルについては「該当無」として空白が表示される。
また、ワーク品種α,βは、共通の検査対象部分「A2」,「A4」,「B1」,「B2」を有するとする。この場合、図29に示されるように、ワーク品種αの検査対象部分「A2」,「A4」,「B1」,「B2」に対応するセルと、ワーク品種βの検査対象部分「A2」,「A4」,「B1」,「B2」に対応するセルとの両方に、検査結果が反映される。
ワークの品種別の検査対象部分は、たとえば、図30に示される分類ルール134Cに規定されている。図30は、分類ルール134Cのデータ構造の一例を示す図である。
図30に示されるように、分類ルール134Cには、ワークWの検査対象部分が階層的に関連付けられている。図30の例では、ワーク品種αの検査対象部分「A」には、「A1」〜「A4」が関連付けられている。ワーク品種αの検査対象部分「B」には、「B1」,「B2」が関連付けられている。ワーク品種βの検査対象部分「A」には、「A2」,「A4」,「A5」が関連付けられている。ワーク品種βの検査対象部分「B」には、「B1」〜「B3」が関連付けられている。
再び図29を参照して、検査結果マトリクス25の縦軸方向および横軸方向の各グループには、ボタンが割り付けられている。図29の例では、グループGH1には展開/集約ボタンBH1が割り付けられている。グループGH2には展開/集約ボタンBH2が割り付けられている。グループGV1には展開/集約ボタンBV1が割り付けられている。グループGV2には展開/集約ボタンBV2が割り付けられている。
図31は、展開/集約ボタンBV2を押下した場合における検査結果マトリクス25の画面遷移を示す図である。展開/集約ボタンBV2は、グループGV2のセルに対する集約指示および展開指示を押下の度に交互に受け付ける。すなわち、グループGV2のセルが展開されている状態で、展開/集約ボタンBV2が押下された場合、画像処理装置20の表示制御部22は、グループGV2のセルを一列に集約する。一方で、グループGV2のセルが集約されている状態で、展開/集約ボタンBV2が押下された場合、表示制御部22は、グループGV2のセルの表示を集約前に戻す。
「欠陥有」と「欠陥無」と「該当無」との検査結果が集約対象のセルに含まれている場合、表示制御部22は、「欠陥有」の表示を「欠陥無」,「該当無」の表示よりも優先して集約処理を行なう。また、「欠陥無」と「該当無」との検査結果が集約対象のセルに含まれている場合、表示制御部22は、「欠陥無」の表示を「該当無」の表示よりも優先して集約処理を行なう。
一例として、破線AR10内には、「欠陥有」のセルが1個含まれており、「該当無」のセルが2個含まれている。集約処理により、破線AR10内の3個のセルは、破線AR12内に示される1個のセルに集約される。このとき、集約前のセルには、「欠陥有」のセルが含まれているので、表示制御部22は、集約後の検査結果を「欠陥有」として表わす。
他の例として、破線AR11内には、「欠陥無」のセルが2個含まれており、「該当無」のセルが1個含まれている。集約処理により、破線AR11内の3個のセルは、破線AR13内に示される1個のセルに集約される。このとき、集約前のセルには、「欠陥有」のセルが含まれておらず、「欠陥無」のセルが含まれているので、表示制御部22は、集約後の検査結果を「欠陥無」として表わす。
図32は、展開/集約ボタンBH2を押下した場合における検査結果マトリクス25の画面遷移を示す図である。展開/集約ボタンBH2は、グループGH2のセルに対する集約指示および展開指示を押下の度に交互に受け付ける。すなわち、グループGH2のセルが展開されている状態で、展開/集約ボタンBH2が押下された場合、表示制御部22は、グループGH2のセルを一行に集約する。一方で、グループGH2のセルが集約されている状態で、展開/集約ボタンBH2が押下された場合、表示制御部22は、グループGH2のセルの表示を集約前に戻す。
破線AR14内には、「該当無」のセルが10個含まれている。グループGH2のセルの集約処理により、破線AR14内の10個のセルは、破線AR15内に示される1個のセルに集約される。このとき、集約前のセルには、「欠陥有」および「欠陥無」のセルが含まれていないので、表示制御部22は、集約後の検査結果を「該当無」として表わす。
<P.検査結果マトリクスと期待値マトリクスとの比較機能>
画像処理装置20は、検査結果マトリクス25に含まれる各検査結果についての真の正解値(以下、「期待値」ともいう。)を示す期待値マトリクスと、検査結果マトリクス25との比較結果を表示装置23に表示する。これにより、ユーザは、検査結果マトリクス25に示される各検査結果が期待通りであるか否かを容易に判断することができる。このような比較処理は、検査結果マトリクス25に示される検査結果の数が増えるほど有効となる。
図33は、検査結果マトリクス25と期待値マトリクス27との比較処理を概略的に示す図である。
期待値マトリクス27内のセルにおいて、検査結果マトリクス25に含まれる検査結果の少なくとも一部について期待値が規定される。期待値マトリクス27の各セルの期待値は、たとえば、ユーザ入力によって設定される。入力可能な期待値は、たとえば、「欠陥有」、「欠陥無」、および「無効」のいずれかである。ユーザによって設定された期待値マトリクス27は、上述の期待値ファイル146H(図11参照)として画像処理装置20に格納される。
画像処理装置20は、検査結果マトリクス25内の各セルと期待値マトリクス27内の各セルとの間で、同一行かつ同一列のセル同士を比較する。
より具体的には、検査結果マトリクス25の検査結果が「欠陥無」で、期待値マトリクス27の期待値が「欠陥無」である場合、比較結果として「正解OK」が出力される。すなわち、「正解OK」は、検査結果が期待通りであることを意味する。
検査結果マトリクス25の検査結果が「欠陥有」で、期待値マトリクス27の期待値が「欠陥有」である場合、比較結果として「正解NG」が出力される。すなわち、「正解NG」は、検査結果が期待通りであることを意味する。
検査結果マトリクス25の検査結果が「欠陥無」で、期待値マトリクス27の期待値が「欠陥有」である場合、比較結果として「見逃し」が出力される。「見逃し」は、検出すべき欠陥を見逃したことを意味する。すなわち、「見逃し」は、検査結果が期待通りではないことを示す。比較結果が「見逃し」となる一因として、欠陥有/欠陥無を判断するための閾値が緩すぎることが挙げられる。
検査結果マトリクス25の検査結果が「欠陥有」で、期待値マトリクス27の期待値が「欠陥無」である場合、比較結果として「過検出」が出力される。「過検出」は、正常な部分を欠陥として検出してしまったことを意味する。すなわち、「過検出」は、検査結果が期待通りではないことを示す。比較結果が「過検出」となる一因として、欠陥有/欠陥無を判断するための閾値が厳しすぎることが挙げられる。
検査結果マトリクス25の検査結果と、期待値マトリクス27の期待値との少なくとも一方が「無効」である場合、比較結果として「無効」が出力される。「無効」は、検査結果および期待値の少なくとも一方が存在しないことを意味する。
検査結果マトリクス25と期待値マトリクス27との比較結果として比較結果マトリクス29が出力される。表示制御部22は、比較結果「正解OK」,「正解NG」,「見逃し」,「過検出」,「無効」を区別可能な態様で表示する。一例として、これらの比較結果は、色によって区別されてもよいし、ハッチングの種類によって区別されてもよい。
なお、期待通りの比較結果である「正解OK」および「正解NG」は、同一色(たとえば、白色)で表示されてもよい。
また、検査結果マトリクス25と同様に、比較結果マトリクス29についてもセルの集約/展開機能が実装されてもよい。一例として、集約対象のセルに「見逃し」または「過検出」が1つでも含まれている場合、表示制御部22は、集約後のセルを「見逃し」または「過検出」とする。集約対象のセルに「見逃し」および「過検出」の両方が含まれている場合、表示制御部22は、「見逃し」および「過検出」の両方を含むことを示す表示態様で集約対象のセルを表わす。
<Q.期待値マトリクスの作成支援機能>
図34は、期待値マトリクス27の作成過程の一例を示す図である。画像処理装置20は、期待値マトリクス27の作成を支援する機能を有する。
より具体的には、ユーザは、検査結果マトリクス25の各セルを選択する。セルの選択操作は、画像処理装置20に備えられる操作部に対して行なわれる。当該操作部は、たとえば、キーボード134(図8参照)、マウス、タッチパネルなどを含む。
一例として、ユーザによってセル群CE10が選択されたとする。その後、ユーザは、検査結果マトリクス25のセル群CE10を編集中の期待値マトリクス27にコピーする。これにより、ユーザは、期待値マトリクス27の各セルを1つずつ入力する必要がなくなり、期待値マトリクス27の作成の手間が軽減される。
ユーザによって作成された期待値マトリクス27は、上述の期待値ファイル146H(図11参照)として画像処理装置20に格納される。
<R.検査結果の3次元表示のフロー>
画像処理装置20は、ワークの検査結果を3次元モデルMLに反映することで、検査結果を3次元表示する機能を有する。ユーザは、3次元モデルML上で検査結果を確認することで、欠陥が生じている箇所を容易に判別することができる。
以下では、図35を参照して、検査結果の3次元表示処理について説明する。図35は、検査結果の3次元表示処理の流れの一例を示すフローチャートである。図35に示される処理は、画像処理装置20のプロセッサ110が表示プログラム143(図8参照)を実行することにより実現される。なお、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS90において、プロセッサ110は、検査結果の3次元表示処理の実行操作を受け付けたか否かを判断する。当該表示操作は、画像処理装置20に備えられる操作部に対して行なわれる。当該操作部は、たとえば、キーボード134(図8参照)、マウス、タッチパネルなどを含む。プロセッサ110は、検査結果の3次元表示処理の実行操作を受け付けたと判断した場合(ステップS90においてYES)、制御をステップS92に切り替える。そうでない場合には(ステップS90においてNO)、プロセッサ110は、ステップS90の処理を再び実行する。
ステップS92において、プロセッサ110は、上述の表示制御部22(図1参照)として、ワークの3次元モデルMLを上述のワーク情報ファイル146E(図11参照)から取得し、取得した3次元モデルMLを表示装置23に表示する。
ステップS100において、プロセッサ110は、検査結果の3次元表示の更新指示を受け付けたか否かを判断する。当該更新指示は、たとえば、新たな検査結果が検査部21から得られたことに基づいて発せられる。あるいは、当該更新指示は、欠陥を示す検査結果が検査部21によって検出されたことに基づいて発せられる。あるいは、当該更新指示は、ユーザ操作に基づいて発せられる。プロセッサ110は、検査結果の3次元表示の更新指示を受け付けたと判断した場合(ステップS100においてYES)、制御をステップS102に切り替える。そうでない場合には(ステップS100においてNO)、プロセッサ110は、制御をステップS120に切り替える。
ステップS102において、プロセッサ110は、上述の検査結果ファイル146D(図12参照)を参照して、検査対象のワークのワークNoの各検査対象部分について検査結果を取得する。
ステップS104において、プロセッサ110は、上述の表示制御部22として、ステップS102で取得した各検査結果を、ステップS92で表示された3次元モデルML上の対応箇所に表わす。上述の図13〜図18で説明したように、検査対象位置Biは、3次元モデルMLに対して設定されるので、3次元モデルMLと検査対象位置Biとの関係は既知である。そのため、画像処理装置20の表示制御部22は、この既知の情報に基づいて、ステップS102で取得した各検査結果を3次元モデルML上に反映することができる。
典型的には、プロセッサ110は、各検査対象部分の検査結果を3次元モデルML上の対応部分に表わす際に、欠陥を示す部分を他の部分とは異なる表示態様で表示する。一例として、欠陥を示す部分は、特定の色(たとえば、赤色)で表わされてもよいし、点滅表示で表わされてもよい。これにより、ユーザは、欠陥を示す部分をより判別しやすくなる。
ステップS110において、プロセッサ110は、3次元モデル上に示される検査対象部分のいずれかが選択されたか否かを判断する。当該選択操作は、画像処理装置20に備えられる操作部に対して行なわれる。当該操作部は、たとえば、キーボード134(図8参照)、マウス、タッチパネルなどを含む。プロセッサ110は、3次元モデル上に表わされている検査対象部分のいずれかが選択されたと判断した場合(ステップS110においてYES)、制御をステップS112に切り替える。そうでない場合には(ステップS110においてNO)、プロセッサ110は、制御をステップS120に切り替える。
ステップS112において、プロセッサ110は、上述の検査部21または表示制御部22として、ステップS110で選択された検査対象部分に応じた処理を実行する。選択された検査対象部分に応じて実行される処理の詳細については後述する。
ステップS120において、プロセッサ110は、検査結果の3次元表示画面を閉じる操作を受け付けたか否かを判断する。プロセッサ110は、検査結果の3次元表示画面を閉じる操作を受け付けたと判断した場合(ステップS120においてYES)、図35に示される処理を終了する。そうでない場合には(ステップS120においてNO)、プロセッサ110は、制御をステップS100に戻す。
以上のように、ステップS100において検査結果の3次元表示の更新指示が発せられた時点で検査結果の3次元表示が更新される。上述のように、更新指示は、たとえば、欠陥を示す検査結果が検査部21によって検出されたことに基づいて発せられる。すなわち、プロセッサ110は、順次検査されるワークに欠陥が検出された時点で、当該ワークについての各検査対象部分の検査結果で3次元モデルMLに表わされている検査結果を更新する。その結果、欠陥を示す検査結果が検出されない間は、3次元モデルML上に表示される検査結果が更新されない。これにより、常に、欠陥を示す最新の検査結果が3次元モデルML上に表示される。そのため、ユーザは、欠陥を示す検査結果を見逃しにくくなる。
<S.3次元モデルに対する検査対象部分の選択機能>
図35のステップS110,S112に示されるように、画像処理装置20は、3次元モデルMLに示される検査対象部分のいずれかが選択されたことに基づいて、選択された検査対象部分に応じた処理を実行する。実行される得る処理としては、たとえば、以下で説明する具体例1,2の処理が挙げられる。以下では、これらの処理について順に説明する。
なお、典型的には、画像処理装置20は、3次元モデルML上の検査対象部分の選択操作を受け付けたことに基づいて、下記の具体例1,2に示す処理の少なくとも1つを実行する。あるいは、画像処理装置20は、3次元モデルML上の検査対象部分の選択操作を受け付けたことに基づいて、下記の具体例1,2に示す処理の選択画面を表示し、当該選択画面において選択された処理を実行してもよい。
(S1.具体例1)
図36は、3次元モデルMLに示される検査対象部分の選択操作に応じて実行される処理の具体例1を示す図である。
図36に示されるように、表示装置23には、検査対象のワークの3次元モデルMLと、垂直方向を軸として3次元モデルMLを回転させるためのツールボタン71と、水平方向を軸として3次元モデルMLを回転させるためのツールボタン72とが表示される。ユーザは、ツールボタン71,72を操作することにより、3次元モデルMLを適宜回転させることができる。
上述の図13〜図18で説明したように、検査対象位置Biは、3次元モデルMLに対して設定されるので、3次元モデルMLと検査対象位置Biとの関係は既知である。そのため、画像処理装置20の表示制御部22は、この既知の情報に基づいて、3次元モデルML上に検査対象部分を表わすことができる。図36の例では、3次元モデルMLにおいて、検査対象部分A1〜A4が表わされている。
また、表示制御部22は、3次元モデルML上の検査対象部分A1〜A4において検査結果を表わす。一例として、「欠陥有」を示す部分は、特定の色(たとえば、赤色)で表わされてもよいし、点滅表示で表わされてもよい。「欠陥無」を示す部分は、「欠陥有」を示す部分とは異なる色(たとえば、緑色)で表わされる。
図36の例では、検査対象部分A1が「欠陥有」を示しており、検査対象部分A2〜A4が「欠陥無」を示している。好ましくは、表示制御部22は、検査対象部分A1内の欠陥を示す欠陥部分A1_1を他の部分よりも強調表示する。
ユーザは、検査対象部分A1〜A4のいずれかを選択することができる。図36の例では、検査対象部分A1が選択されている。画像処理装置20は、検査対象部分A1が選択されたことに基づいて、検査対象部分A1の検査に用いられた画像と、当該画像の撮像条件とを表示装置23に表示する。これにより、ユーザは、欠陥を示す画像を目視で確認したり、撮像条件の妥当性などを確認することができる。
より具体的には、画像処理装置20は、検査対象部分A1が選択されたことに基づいて、検査対象のワークのワークNoと選択された検査対象部分A1との組み合わせをキーとして対応する画像ファイルを上述の画像ファイル群146B(図11参照)から取得する。次に、画像処理装置20は、検査対象部分A1をキーとして対応する撮像条件を上述の撮像条件ファイル146A(図11参照)から取得する。表示制御部22は、取得した画像ファイルと撮像条件とを、選択された検査対象部分A1に対応付けられたポップアップ画面PU6上に表示する。表示された撮像条件は、任意の値に変更可能に構成される。
なお、図36の例では、検査対象部分の選択操作に応じて撮像画像と撮像条件との両方が表示される例について説明を行なったが、表示制御部22は、検査対象部分の選択操作に応じて撮像画像および撮像条件のいずれか一方を表示してもよい。
(S2.具体例2)
図37は、3次元モデルMLに示される検査対象部分の選択操作に応じて実行される処理の具体例2を示す図である。
3次元モデルMLは、検査対象部分A1〜A4を含む。ユーザは、検査対象部分A1〜A4のいずれかを選択することができる。図37の例では、検査対象部分A1が選択されている。画像処理装置20は、検査対象部分A1が選択されたことに基づいて、検査対象のワークのワークNoと選択された検査対象部分A1との組み合わせをキーとして対応する撮像条件を上述の撮像条件ファイル146A(図11参照)から取得する。次に、画像処理装置20の表示制御部22は、取得した撮像条件を3次元モデルMLの対応箇所に表わす。
一例として、表示される撮像条件は、3次元モデルMLに対する撮像装置10の撮影位置を含む。上述の図19で説明したように、3次元モデルMLに対する撮像装置10の撮影位置Ciは、設定装置60による設定処理で決定されているので、3次元モデルMLに対する撮像装置10の撮影位置Ciは既知である。そのため、画像処理装置20の表示制御部22は、この既知の情報に基づいて、撮像装置10を表わす模式図10Aを撮影位置Ci上に表示することができる。図37の例では、撮影位置C1において撮像装置10の模式図10Aが表示されている。
なお、上述の例では、撮像条件として撮影位置が表示される例について説明を行なったが、表示される撮像条件は、撮影位置に限定されない。たとえば、撮像時における撮像装置10の光学条件、撮像時における照明条件などが表示されてもよい。
<T.検査対象部分の展開/集約機能>
図38は、3次元モデルMLに示される検査対象部分の展開/集約している過程を示す図である。
3次元モデルMLに示される検査対象部分は、上述の分類ルール134A(図4参照)において階層的に関連付けられている。上位の階層に規定される検査対象部分は、下位の階層に規定される検査対象部分を包含する関係を有する。上位の階層に規定される検査対象部分に包含されている下位の検査対象部分は、同一グループとみなされる。
図38の例では、3次元モデルML上において、検査対象部分A〜Cが示されている。一例として、上位の検査対象部分Aには、下位の検査対象部分A1〜A3が関連付けられているとする。上位の検査対象部分Aに包含されている検査対象部分A1〜A3は、同一グループとみなされる。
上位の検査対象部分A1には、下位の検査対象部分A1_1〜A1_4が関連付けられているとする。上位の検査対象部分A1に包含されている検査対象部分A1_1〜A1_4は、同一グループとみなされる。
3次元モデルML上の検査対象部分A〜Cには検査結果が表わされる。検査対象部分A〜Cの検査結果は、上述の検査結果ファイル146D(図12参照)から取得される。一例として、検査対象部分Aは「欠陥有」を示し、検査対象部分B,Cは「欠陥無」を示す。
検査対象部分Aには、展開/集約ボタンBT1が割り付けられている。検査対象部分Bには、展開/集約ボタンBT2が割り付けられている。検査対象部分Cには、展開/集約ボタンBT3が割り付けられている。「+」は展開ボタンを示し、「−」は集約ボタンを示す。
表示制御部22は、グルーピングされている検査対象部分に対する集約指示を受け付けた場合に、当該グルーピングされている検査対象部分の検査結果を集約し、当該集約後の検査結果を、当該グルーピングされている検査対象部分に対応する3次元モデルML上の各部分に表わす。また、表示制御部22は、集約された検査結果に対する展開指示を受け付けた場合に、当該集約された検査結果の表示を集約前に戻す。
たとえば、展開/集約ボタンBT1が押下された場合、表示制御部22は、検査対象部分Aを下位の検査対象部分A1〜A3に展開する。次に、表示制御部22は、検査対象部分A1〜A3の検査結果を検査対象部分A1〜A3に反映する。検査対象部分A1〜A3の検査結果は、上述の検査結果ファイル146D(図12参照)から取得される。一例として、検査対象部分A1は「欠陥有」を示し、検査対象部分A2,A3は「欠陥無」を示す。
次に、表示制御部22は、検査対象部分A1に展開/集約ボタンBT1_1を割り付ける。同様に、表示制御部22は、検査対象部分A2に展開/集約ボタンBT1_2を割り付ける。同様に、表示制御部22は、検査対象部分A3に展開/集約ボタンBT1_3を割り付ける。
展開/集約ボタンBT1_1の「+」が押下された場合、表示制御部22は、検査対象部分A1を下位の検査対象部分A1_1〜A1_4に展開する。次に、表示制御部22は、検査対象部分A1_1〜A1_4の検査結果を検査対象部分A1_1〜A1_4に反映する。検査対象部分A1_1〜A1_4の検査結果は、上述の検査結果ファイル146D(図12参照)から取得される。一例として、検査対象部分A1_1〜A1_3は「欠陥無」を示し、検査対象部分A1_4は「欠陥有」を示す。
展開/集約ボタンBT1_1Aが押下された場合、表示制御部22は、検査対象部分A1_1〜A1_4を上位の検査対象部分A1に集約する。このとき、「欠陥有」を示す検査結果が集約対象の検査対象部分の検査結果に1個でも含まれている場合、表示制御部22は、集約後の検査対象部分の検査結果を「欠陥有」とする。一方で、「欠陥有」を示す検査結果が集約対象の検査対象部分の検査結果に1個も含まれていない場合、表示制御部22は、集約後の検査対象部分の検査結果を「欠陥無」とする。検査対象部分A1_4は「欠陥有」を示すので、表示制御部22は、検査対象部分A1_1〜A1_4を集約した検査対象部分A1の検査結果を「欠陥有」とする。
展開/集約ボタンBT1の「−」が押下された場合、表示制御部22は、検査対象部分A1〜A3を検査対象部分Aに集約する。検査対象部分A1は「欠陥有」を示すので、表示制御部22は、検査対象部分A1〜A3を集約した検査対象部分Aの検査結果を「欠陥有」とする。
<U.外観検査システムの変形例>
図39は、変形例に係る外観検査システムを示す図である。図39に示される外観検査システムは、図1に示す外観検査システム1と比較して、PLC50を備えず、画像処理装置20の代わりに画像処理装置20aを備える点で相違する。画像処理装置20aは、上記の画像処理装置20の構成とPLC50の構成との両方を有する。
図40は、ワークWと撮像装置10との間の相対位置を変更する別の形態を示す図である。図40に示されるように、ロボット30は、撮像装置10ではなく、ワークWを移動させてもよい。図40に示す例では、撮像装置10は固定される。このようにワークWを移動させることにより、ワークWと撮像装置10との間の相対位置を変更してもよい。
図41は、ワークWと撮像装置10との間の相対位置を変更するさらに別の形態を示す図である。図41に示されるように、ワークWは、回転テーブル91の上に載置されてもよい。回転テーブル91は、ロボットコントローラ40の指示に応じて回転する。これにより、ワークWと撮像装置10との間の相対位置を容易に変更することができる。
なお、ロボット30は、垂直多関節ロボット以外のロボット(たとえば、水平多関節ロボット、直交ロボットなど)であってもよい。
上記では、撮像視野FOVおよび実効視野FOV2を円形とした説明したが、撮像視野FOVおよび実効視野FOV2の形状は、円形に限定されず、たとえば矩形(長方形、正方形)であってもよい。
<V.付記>
以上のように、本実施形態は以下のような開示を含む。
[構成1]
検査対象物(W)の外観検査を行なう外観検査システム(1)であって、
表示装置(23)と、
撮像装置(10)を移動させるためのロボット(30)と、
前記ロボット(30)が前記撮像装置(10)を移動している間に前記撮像装置(10)が前記検査対象物(W)の複数の検査部分の各々を撮像して前記撮像装置(10)から得られた各画像に基づいて、前記複数の検査部分の各々について欠陥の有無を検査するための検査部(21)と、
前記複数の検査部分の各々についての前記検査部(21)による検査結果を検査対象物(W)ごとに表わした検査結果マトリクス(25)を前記表示装置(23)に表示するための表示制御部(22)とを備える、外観検査システム。
[構成2]
前記検査結果マトリクス(25)の各行または各列は、予め定められた分類ルールに従って行単位または列単位でグルーピングされており、
前記表示制御部(22)は、
グルーピングされている行群またはグルーピングされている列群に対する集約指示を受け付けた場合に、当該行群または当該列群の検査結果を一行または一列に集約して表示し、
集約して表示されている検査結果に対する展開指示を受け付けた場合に、当該集約して表示されている検査結果の表示を集約前に戻す、構成1に記載の外観検査システム。
[構成3]
前記表示制御部(22)は、前記検査結果マトリクス(25)に含まれる検査結果の内の、欠陥を示す検査結果を、他の検査結果とは異なる表示態様で表示する、構成1または2に記載の外観検査システム。
[構成4]
前記外観検査システム(1)は、前記検査結果マトリクス(25)に含まれる検査結果の内から1つ以上の検査結果を選択する選択操作を受け付けることで、1つ以上の検査対象物(W)と1つ以上の検査部分とを選択することが可能な操作部(134)と、
前記検査部(21)または前記表示制御部(22)は、前記操作部(134)が前記選択操作を受け付けたことに基づいて、選択された検査対象物(W)と選択された検査部分との少なくとも一方に関する処理を実行する、構成1〜3のいずれか1項に記載の外観検査システム。
[構成5]
前記表示制御部(22)は、前記選択された検査部分の検査に用いられた画像と、当該画像の撮像条件との少なくとも一方を前記表示装置(23)に表示する、構成4に記載の外観検査システム。
[構成6]
前記外観検査システム(1)は、前記検査対象物(W)の形状を表わす3次元モデル(ML)を格納するための記憶装置をさらに備え、前記複数の検査部分は、前記3次元モデル(ML)に対して予め設定されており、
前記表示制御部(22)は、前記3次元モデル(ML)を前記表示装置(23)に表示するとともに、前記選択された検査部分の検査結果を当該3次元モデル(ML)上の対応部分に表わす、構成4または5に記載の外観検査システム。
[構成7]
前記表示制御部(22)は、前記選択操作で複数の検査結果が選択された場合、当該複数の検査結果の統計結果を前記表示装置(23)に表示する、構成4〜6のいずれか1項に記載の外観検査システム。
[構成8]
前記検査部(21)は、前記選択された検査部分の検査に用いられた画像に基づいて、当該選択された検査部分を再検査する、構成4〜7のいずれか1項に記載の外観検査システム。
[構成9]
前記表示制御部(22)は、前記検査結果マトリクス(25)に含まれる各検査結果についての真の正解値を示す期待値マトリクスと、前記検査結果マトリクス(25)との比較結果を前記表示装置(23)に表示する、構成1〜8のいずれか1項に記載の外観検査システム。
[構成10]
検査対象物(W)の複数の検査部分を撮像装置(10)が撮像することによって行なわれた外観検査結果の表示方法であって、
ロボット(30)が前記撮像装置(10)を移動している間に前記撮像装置(10)が前記複数の検査部分の各々を撮像して得られた各画像を取得するステップと、
前記取得するステップで得られた各画像に基づいて、前記複数の検査部分の各々について欠陥の有無を検査するステップと、
前記複数の検査部分の各々についての検査結果を検査対象物(W)ごとに表わした検査結果マトリクス(25)を表示装置(23)に表示するステップと備える、外観検査結果の表示方法。
[構成11]
検査対象物(W)の複数の検査部分を撮像装置(10)が撮像することによって行なわれた外観検査結果の表示プログラムであって、
前記表示プログラムは、コンピュータに、
ロボット(30)が前記撮像装置(10)を移動している間に前記撮像装置(10)が前記複数の検査部分の各々を撮像して得られた各画像を取得するステップと、
前記取得するステップで得られた各画像に基づいて、前記複数の検査部分の各々について欠陥の有無を検査するステップと、
前記複数の検査部分の各々についての検査結果を検査対象物(W)ごとに表わした検査結果マトリクス(25)を表示装置(23)に表示するステップと実行させる、外観検査結果の表示プログラム。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。