実施の形態1.
本発明の実施の形態1における検査システムについて図1から図15Bを用いて説明する。
本発明の実施の形態1の検査システムは、図1に示すように、対象へ光を照射する照明部20と、対象の表面の輝度を検出する輝度検出部としての輝度センサ30と、対象を撮像し、対象の撮像画像を取得する撮像部としてのカメラ40と、コンベア70をX方向に駆動し、対象を移動させる移動装置として機能するモータ80と、照明部20とカメラ40とモータ80とを制御し、撮像画像を用いて画像検査処理を実行するPLC(Programmable Logic Controller)10と、PLC10による画像検査処理の検査結果を表示する表示装置90と、を有している。照明部20、輝度センサ30、カメラ40と、モータ80及び表示装置90は、専用ケーブル等を介してPLC10に接続されている。なお、検査装置は、輝度センサ30と、カメラ40と、PLC10と、を有しており、検査システムの一部を構成する。
モータ80は、トレー60に載せられた状態の検査対象50をトレー60と一緒にX方向に移動させるようにコンベア70を駆動する。検査対象50は、例えば、表面に印刷が施された箱状の物品である。例えば、検査対象50の表面には、図2に示すように、商品名等の文字501、背景模様502、賞味期限の文字503が印刷されており、トレー60の表面には、検査対象50に対応して基準マーク600が設けられている。
照明部20は、例えば、複数のLED(Light Emitting Diode)を含んでおり、PLC10から受信した信号に基づいて、光の照射量を調整し、光の照射対象である検査対象50及びトレー60に対して、複数のLEDから光を照射する。
輝度センサ30は、例えば、フォトダイオードと電流増幅回路とを含んだセンサであり、光の照射対象の一つであるトレー60の表面に設けられた基準マーク600の表面の輝度を検出し、検出輝度をPLC10へ入力する。
カメラ40は、撮像対象である検査対象50及びトレー60に設けられた基準マーク600を撮像し、撮像画像を取得する。カメラ40は、例えば、CCD(Charge Coupled Device)カメラであり、カラー画像であるRGB画像をPLC10へ入力する。なお、撮像画像からも輝度を算出するため、カメラ40は輝度検出部としても機能する。
PLC10は、詳細には後述するが、第1記憶部110と第2記憶部120を含む記憶部と、制御プログラムによって、照明部20、カメラ40、モータ80及び表示装置90等の外部機器を制御し、カメラ40で撮像された検査対象50の撮像画像から色、模様、文字等の検査をするための画像検査処理を実行する制御部130と、照明部20、輝度センサ30、カメラ40、モータ80及び表示装置90等の外部機器とPLC10とを接続するための通信I/F(Interface)部140と、を有する。
PLC10は、より詳細には図3に示すように、第1記憶部110と、第2記憶部120と、制御部130と、通信I/F部140と、通信バス150と、を有し、第1記憶部110と、第2記憶部120と、制御部130と、通信I/F部140と、が通信バス150を介して接続されている。第1記憶部110及び第2記憶部120は、それぞれ、例えば、RAM(Random Access Memory)又はROM(Read Only Memory)であり、制御部130は、例えば、プロセッサである。
PLC10の第1記憶部110には、制御プログラム1101、初期設定値1102、輝度閾値1103、第1輪郭閾値1104、第2輪郭閾値1105、第1基準画像1106、及び、第2基準画像1107が記憶される。制御プログラム1101、初期設定値1102、輝度閾値1103、第2輪郭閾値1105、第1基準画像1106、及び、第2基準画像1107のそれぞれは、通信I/F部140に接続可能なエンジニアリングツール(不図示)を用いてユーザによって予め設定される。第1輪郭閾値1104は、後述するように第1基準画像1106に基づいて算出されて記憶される。
制御プログラム1101は、照明部20、カメラ40、モータ80及び表示装置90等の外部機器を制御し、また、カメラ40で撮像された基準マーク600の撮像画像(以下、第1撮像画像1406ともいう)を用いた画像検査前処理及び検査対象50の撮像画像(以下、第2撮像画像1407ともいう)を用いた画像検査処理を実行するプログラムである。
初期設定値1102は、照明部20、カメラ40、及び、コンベア70の移動速度を制御するためのモータ80の設定条件の初期値であり、制御プログラム1101を実行して検査対象50の第2撮像画像1407の取得を開始する初期時に設定される設定値である。具体的には、初期設定値1102には、照明部20の光の照射量Inの初期設定値I0、カメラ40のゲインGn(感度)の初期設定値G0、カメラ40の露光時間ETnの初期設定値ET0、モータ80の回転速度Vnの初期設定値V0が含まれる。例えば、光の照射量Inの初期設定値I0は、照明部20の光の照射量の設定可能範囲のうち最も小さい照射量となる設定値であり、カメラ40のゲインGnの初期設定値G0は、カメラ40のゲインGnの設定可能範囲のうち最も小さいゲインとなる設定値であり、カメラ40の露光時間の初期設定値ET0は、カメラ40の露光時間の設定可能範囲のうち最も短い露光時間となる設定値であり、モータ80の回転速度Vnの初期設定値V0は、モータ80の回転速度Vnの設定可能範囲のうち最も速い回転速度となる設定値である。
第1基準画像1106は、図4(a)に示すように、基準マーク600に適切な照射量で光を照射した上で、基準マーク600を撮像して得られた撮像画像であり、輪郭線の取得処理などの画像変換処理を行う前の原画像である。第1基準画像1106は、画像検査を行う際に、コンベア70によって移動する検査対象50を載せたトレー60に設けられた基準マーク600を撮像して得られた第2撮像画像1407と比較して検査対象50の検査が実行可能であるか否かを判定するために用いられる。なお、図8に示す第1撮像画像1406は、画像検査を行う際に、コンベア70によって移動する検査対象50を載せたトレー60に設けられた基準マーク600を撮像して得られた撮像画像であり、詳細については後述する。
なお、基準マーク600は、後述するように、検出輝度が輝度閾値の範囲内であるか否かの判定に用いるため、基準マーク600に適切な照射量で光を照射した上で、基準マーク600を撮像した場合に、適切な輝度範囲となるような色が設定されている。例えば、輝度の値の全範囲が0〜255の場合、中間値の128が検出輝度となる色(例えば灰色)が基準マーク600の格子模様の中央部と四隅の格子に設定され、それ以外の格子は検出輝度が255となる白色に設定される。仮に、中間値の128が検出輝度となるような色ではなく、検出輝度が255に近い色である場合、光の照射量が適切な範囲にあるのか、それとも、照明部20から基準マーク600への光の照射量が過剰であることに起因して基準マーク600の第1撮像画像1406に白飛び(ハレーション)が発生しているのか区別しにくい。逆に、検出輝度が0に近い色である場合、光の照射量が適切な範囲にあるのか、それとも、照明部20から基準マーク600への光の照射量が不足していることに起因して基準マーク600の第1撮像画像1406に黒潰れが発生しているのか区別しにくい。そのため、中間値の128が検出輝度となるような色が基準マーク600の格子模様に中央部と四隅に設定されることで、照明部20から基準マーク600への光の照射量が過剰であること、及び、光の照射量が不足していることの判定に用いることができる。なお、基準マーク600に適切な照射量で光を照射した条件下で基準マーク600を撮像した場合に、適切な輝度範囲となるような色として、中間値の128が検出輝度となる色を一例として説明したが、その他に、検出輝度が100から150の範囲の検出輝度となる色であってもよく、上述したように白飛び及び黒潰れと区別ができる色であればどのような色でもよい。基準マーク600の格子模様の中央部と四隅の格子以外の格子を白色としたが、中央部と四隅の格子とのコントラスト差が大きくとれる色であればどのような色でもよい。また、以下では、理解を容易にするため基準マーク600の格子模様の中央部と四隅の格子に、中間値が検出輝度となる色が設定された場合を説明するが、基準マーク600全体の輝度を検出した際に、基準マーク600全体の輝度値が中間値となるように設定してもよい。なお、図2及び図4(a)等においては、基準マーク600の格子模様の格子間に黒い線で区分けしているが、この黒い線は各格子を図において見易くするために付しているだけである。そのため、格子間に黒い線は無いことを前提として、後述の図7、図8等では検出輝度及びエッジ強度の算出について説明する。
また、基準マーク600は、輪郭取得処理を行い適切な輪郭線を取得でき輪郭線を用いた検査ができるか否かの判定に用いるため、基準マーク600中のコントラスト差が明確な模様であることが好ましく、本実施の形態では一例として格子模様を挙げているが、コントラスト差が明確な模様であればどのような模様でもよく、例えば、バーコード、又は、文字等でもよい。
第2基準画像1107は、図4(b)に示すように、検査対象50と同じ物品の良品に適切な照射量で光を照射した上で、検査対象50と同じ物品の良品を撮像して得られた撮像画像(良品画像)であり、輪郭取得処理を行う前の原画像(第2基準画像1107中の輪郭線である第1輪郭線の取得前の原画像)である。また、第2基準画像1107は、例えば、商品名等の文字1108、背景模様1109及び賞味期限の文字1110の印刷が鮮明に撮像されたRGB画像である。第2基準画像1107は、画像検査を行う際に、コンベア70によって移動する検査対象50の表面を撮像して得られた撮像画像と比較して検査対象50が良品であるか不良品であるかを判定するために用いられる。なお、図11(b)、図12(b)及び図14(b)に示す第2撮像画像1407は、画像検査を行う際に、コンベア70によって移動する検査対象50の表面を撮像して得られた撮像画像であり、詳細については後述する。
輝度閾値1103は、輝度センサ30で検出された基準マーク600の表面の輝度又はカメラ40で撮像された基準マーク600の第1撮像画像1406から算出された輝度(以下、本実施形態では、輝度センサ30が検出した輝度又はカメラ40で撮像された基準マーク600の第1撮像画像1406から算出された輝度を検出輝度Anともいう)が、画像検査処理を行うために必要な輝度閾値1103の範囲内か否か判断するための閾値である。輝度閾値1103は、上限と下限とを含む。検出輝度Anが、上限よりも大きい場合、照明部20から検査対象50及び基準マーク600への光の照射量が過剰であることに起因して、基準マーク600の第1撮像画像1406の白飛び(ハレーション)が発生、又は、第1撮像画像1406中の模様及び文字のコントラスト差が小さくなり、適切に検査対象50の第2撮像画像1407を用いた画像検査ができなくなるため、第1撮像画像1406の白飛びの発生を抑えられるように上限は設定される。また、検出輝度Anが、下限よりも小さい場合、照明部20から検査対象50及び基準マーク600への光の照射量が不足していることに起因して、第1撮像画像1406の黒潰れが発生し、適切に画像検査できなくなるため、第1撮像画像1406の黒潰れの発生を抑えられるように下限は設定される。
第1輪郭閾値1104は、基準マーク600を撮像して得られた第1撮像画像1406から取得されたエッジ強度が、第2撮像画像1407から取得する輪郭線を用いて画像検査処理を行うために必要な強度を有しているか否か判定するための閾値TH1である。
第2輪郭閾値1105は、検査対象50の表面を撮像して得られた第2撮像画像1407から取得された輪郭線と、検査対象50と同じ物品の良品を撮像して得られた第2基準画像1107から取得した輪郭線と、の一致度(一致率)を比較して、検査対象50が良品であるか不良品であるかを判定するための閾値TH2である。
なお、基準画像から取得される輪郭線は、撮像画像から取得される輪郭線と区別するため、以下では第1輪郭線といい、撮像画像から取得される輪郭線は第2輪郭線という。また、基準画像から取得されるエッジ強度は、撮像画像から取得されるエッジ強度と区別するため、以下では第1エッジ強度といい、撮像画像から取得されるエッジ強度は第2エッジ強度という。
PLC10の第2記憶部120は、第1格納領域1203と、第2格納領域1206と、第3格納領域1207と、を有している。第1格納領域1203は、輝度センサ30で検出された基準マーク600の表面の輝度又はカメラ40で撮像された基準マーク600の第1撮像画像1406から算出された輝度である検出輝度Anが格納される記憶領域である。第2格納領域1206は、画像検査を行う際に、コンベア70によって移動する検査対象50を載せたトレー60に設けられた基準マーク600を撮像して得られた第1撮像画像1406が格納される記憶領域である。第3格納領域1207は、画像検査を行う際に、コンベア70によって移動する検査対象50の表面を撮像して得られた第2撮像画像1407が格納される記憶領域である。そして、第1格納領域1203には、輝度センサ30等によって検出された検出輝度Anが記憶される。第2格納領域1206及び第3格納領域1207には、通信I/F部140を介して入力される、カメラ40が撮像した第1撮像画像1406及び第2撮像画像1407がそれぞれ記憶される。
PLC10の制御部130は、第1記憶部110から制御プログラム1101を読み出して実行することで、外部機器を制御し、また、画像検査前処理及び画像検査処理を実行する。制御部130は、第1記憶部110から制御プログラム1101と初期設定値1102とを読み出して制御プログラム1101中の設定値に初期設定値を設定する初期設定部1300と、輝度センサ30等で検出された検出輝度Anと基準マーク600の第1撮像画像1406と検査対象50の第2撮像画像1407とを、第2記憶部120のうち対応する格納領域にそれぞれ格納する入力取得部1301と、輝度センサ30等で検出された検出輝度Anが輝度閾値1103の範囲内か否かを判定する第1判定部1302と、基準マーク600に関する第1基準画像1106及び第1撮像画像1406、並びに、検査対象50に関する第2基準画像1107及び第2撮像画像1407からそれぞれ第1輪郭線及び第2輪郭線を取得する輪郭取得部1303と、第2判定部1304と、PLC10に接続された外部機器である照明部20、カメラ40及びコンベア70を駆動するモータ80の設定値を調整するため第1調整部1305と、第2調整部1306と、第3調整部1307と、第4調整部1308と、を有する。
より詳細には、第2判定部1304は、輪郭取得部1303によって取得された基準マーク600に関する第1基準画像1106及び第1撮像画像1406のエッジ強度(つまり、第1基準画像1106の第1エッジ強度及び第1撮像画像1406の第2エッジ強度)と第1輪郭閾値1104とを用いて、検査対象50に関する第2基準画像1107及び第2撮像画像1407の各輪郭線(つまり、第2基準画像1107の第1輪郭線及び第2撮像画像1407の第2輪郭線)を用いての検査対象50の検査が実行可能か否かを判定する。また、第2判定部1304は、輪郭取得部1303によって取得された検査対象50に関する第2基準画像1107及び第2撮像画像1407の各輪郭線(第2基準画像1107の第1輪郭線及び第2撮像画像1407の第2輪郭線)と第2輪郭閾値1105を用いて、検査対象50が良品であるか不良品であるかを判定する。
第1調整部1305は、第2判定部1304が第1基準画像1106の第1エッジ強度及び第1撮像画像1406の第2エッジ強度と第1輪郭閾値1104とを用いて、第2基準画像1107の第1輪郭線及び第2撮像画像1407の第2輪郭線から検査対象50の検査が実行不能であると判定した場合、カメラ40の露光時間の設定値である露光時間設定値ETnを変更することで、カメラ40の露光時間を調整する。
第2調整部1306は、第2判定部1304が第1基準画像1106の第1エッジ強度及び第1撮像画像1406の第2エッジ強度と第1輪郭閾値1104とを用いて、第2基準画像1107の第1輪郭線及び第2撮像画像1407の第2輪郭線から検査対象50の検査が実行不能であると判定した場合、コンベア70を駆動するモータ80の回転速度を変更するよう回転速度の設定値である回転速度設定値Vnを変更することで、検査対象50及びトレー60の移動速度を調整する。
第3調整部1307は、第1判定部1302が輝度センサ30等で検出された検出輝度Anが輝度閾値1103の範囲外であると判定した場合に、照明部20からの光の照射量の設定値である照射量設定値Inを変更することで、照明部20からの光の照射量を調整する。
第4調整部1308は、輝度センサ30等で検出された検出輝度Anが輝度閾値1103の範囲外であると第1判定部1302が判定した場合に、カメラ40のゲイン(感度)の設定値であるゲイン設定値Gnを変更することで、カメラ40のゲインを調整する。
なお、PLC10の制御部130の行う機能はプロセッサにより実現される。つまり、初期設定部1300と、入力取得部1301と、第1判定部1302と、輪郭取得部1303と、第2判定部1304と、第1調整部1305と、第2調整部1306と、第3調整部1307と、第4調整部1308のそれぞれの機能はプロセッサにより実現される。
通信I/F部140は、A/D(Analog-to-Digital)変換回路及びD/A(Digital-to-Analog)変換回路を含み、輝度センサ30からの入力値はアナログ信号からデジタル信号に変換され、PLC10から照明部20、モータ80等の外部機器へ出力される出力値はデジタル信号からアナログ信号に変換される。つまり、PLC10への入力信号のうちA/D変換処理が必要な信号であるアナログ信号については、通信I/F部140はアナログ信号からデジタル信号に変換し、PLC10からの出力信号のうちD/A変換処理が必要な信号であるデジタル信号については、デジタル信号からアナログ信号に変換する。なお、カメラ40からの入力信号はデジタル信号でPLC10に入力されるため、通信I/F部140はカメラ40からの入力信号をA/D変換しないよう通信I/F部140中のA/D変換回路を介すことなく通信バス150に送出する。PLC10からカメラ40への出力信号(露光時間の設定値)もデジタル信号であるため、通信I/F部140はカメラ40への出力信号をD/A変換しないよう通信I/F部140中のD/A変換回路を介すことなくカメラ40に送出する。
次に、本発明の実施の形態1の検査システムの検査処理について説明する。
まず、図5に示すように、検査システムを起動し検査を開始する際、PLC10の初期設定部1300は、第1記憶部110から制御プログラム1101と初期設定値1102を読み出し、制御プログラム1101中に含まれる照明部20、カメラ40及びモータ80の設定値を初期設定値1102に設定する(ステップS1)。すなわち、照明部20の光の照射量設定値Inに初期設定値I0を設定し、カメラ40のゲイン設定値Gnを初期設定値G0に設定し、カメラ40の露光時間設定値ETnを初期設定値ET0に設定し、コンベア70の移動速度を制御するためのモータ80の回転速度設定値Vnを初期設定値V0に設定し、照明部20、輝度センサ30、カメラ40及びモータ80の制御を開始する。
そして、PLC10の入力取得部1301は、トレー60の表面に設けられた基準マーク600の検出輝度Anを取得し、第2記憶部120の第1格納領域1203に格納し(ステップS2:輝度検出ステップ)、コンベア70によって移動しているトレー60に設けられた基準マーク600の第1撮像画像1406と、検査対象50の表面を撮像して得られた第2撮像画像1407と、を取得し、第2記憶部120の第2格納領域1206及び第3格納領域1207にそれぞれ格納する(ステップS3:撮像ステップ)。
そして、PLC10の第1判定部1302と第2判定部1304は、輝度閾値1103と、第2輪郭閾値1105と、第1基準画像1106と、第2基準画像1107と、を第1記憶部110から読み出す(ステップS4)。その後、詳細には後述するが、第1判定部1302と第2判定部1304は、検査対象50の検査が実行可能であるか否かの判定と、照明部20の光の照射量設定値In、カメラ40のゲイン設定値Gn及び露光時間設定値ETn、並びに、モータ80の回転速度設定値Vnの調整のための画像検査前処理(ステップS5)を行う。そして、第1判定部1302又は第2判定部1304が検査対象50の検査が実行可能であると判定した場合に、第2判定部1304は画像検査処理(ステップS6)を行い、ステップS6の画像検査処理の検査結果を通信I/F部140から出力する検査結果出力処理(ステップS7)を行う。
次に、ステップS5の画像検査前処理の詳細について、図6A及び図6Bを参照しながら説明する。
まず、ステップS10(輝度判定ステップ)において、第1判定部1302は、輝度センサ30によって検出された基準マーク600の検出輝度が輝度閾値1103の範囲内にあるか否かを判定する。例えば、以下の式(1)を満たすか否かにより判断する。
|An−At|≦δAt ・・・ 式(1)
ここで、Anは検出輝度であり、Atは輝度閾値1103の範囲の中間値であり、δAtは輝度閾値1103の範囲の中間値から上限又は下限までの許容ずれ量である。なお、輝度閾値1103の範囲は、At±δAtと表すことができ、At+δAtが上限であり、At-δAtが下限である。理解を容易にするために基準マーク600の第1基準画像1106における格子の中央部(色のついた格子)を例にして、以下では説明するが、輝度センサ30の検出輝度Anは基準マーク600の表面全体からの検出輝度となる。まず、基準マーク600に適切な照射量で光を照射した上で基準マーク600を撮像して得られた第1基準画像1106と、これら輝度閾値1103の上限At+δAtと、下限At-δAtと、の関係について図7を参照して説明する。図7の第1基準画像1106のA−A線における第1基準画像1106の画素位置(横軸方向)と輝度(縦軸方向)との関係は、図7の上から1つ目のグラフに示すように、第1基準画像1106の色のついた格子の輝度が中間値Atに設定され、中間値Atを中心として縦軸方向に許容ずれ量δAtを加えた値であるAt+δAtが一点鎖線で示すように上限として設定され、中間値Atから許容ずれ量δAを減じた値であるAt-δAtが一点鎖線で示すように下限として設定された関係となる。例えば、輝度の値の全範囲が0〜255の場合に、前述の基準マーク600の色のついた格子の輝度である128を中間値Atに設定し、許容ずれ量δAtに50を設定し、輝度閾値の範囲を78〜178の範囲としてもよい。
ステップS10にて、検出輝度Anが輝度閾値1103の範囲内であると第1判定部1302が判定した場合(ステップS10:YES)には、照明部20から検査対象50に照射されている光の照射量は十分であり、カメラ40で撮像した検査対象50の第2撮像画像1407を用いて良否判定を実行できるため、ステップS20に進む。そして、ステップS20では、第1判定部1302は、次の画像検査処理で第1画像検査処理を行うためのフラグである第1画像検査フラグF1を設定して、画像検査前処理を終了する。その後、図5のステップS6に進む。なお、第1画像検査処理は、検査対象50の表面上の印刷状態のうち、文字及びバーコード等のコントラストのはっきりした印刷に加え、色及び模様等も含め詳細な検査を行うための画像検査処理である。ステップS10にて、検出輝度Anが輝度閾値1103の範囲外であると第1判定部1302が判定した場合(ステップS10:NO)には、照明部20から検査対象50に照射されている光の照射量は不十分であり、カメラ40が取得した検査対象50の第2撮像画像1407を用いての第1画像検査処理を実行不能であるため、第1判定部1302は照明部20の光の候補照射量Ixを算出する(ステップS30)。候補照射量Ixは、例えば、以下の式(2)により算出する。
Ix=k1×At/An×In ・・・ 式(2)
ここで、Ixは光の候補照射量であり、k1は所定の係数であり、Atは輝度閾値1103の範囲の中間値であり、Anは検出輝度であり、InはAn検出時における照明部20の光の照射量の設定値である。なお、係数k1は、検出輝度Anが中間値Atより小さい場合(つまり、光の照射量が不足している場合)には、候補照射量Ixが大きくなるように設定され、検出輝度Anが中間値Atより大きい場合(つまり、光の照射量が過剰である場合)には、候補照射量Ixが小さくなるように設定されている。
続いて、ステップS40においては、第1判定部1302は、算出した候補照射量Ixが、照明部20に対して設定可能な範囲内か否か、つまり候補照射量Ixが設定可能な最小値Imin以上であり、且つ、設定可能な最大値Imax以下であるか否か(Imin≦Ix≦Imax)を判定する。候補照射量Ixが設定可能な範囲内であると第1判定部1302が判定した場合(ステップS40:YES)には、照明部20の照射量設定値InをステップS40で算出した候補照射量Ixに設定し照射量の調整が可能であるため、ステップS50に進む。
ステップS50では、第3調整部1307が、制御プログラム中の照明部20の照射量設定値Inを候補照射量Ixに設定し直して、図5のステップS2に戻る。これにより、照明部20からの光の照射量設定値Inを候補照射量Ixに設定して光の照射量を調整した後に、再度、図5のステップS2からステップS4を行い、画像検査前処理(ステップS5)のステップS10〜ステップS50を前述と同様に行うこととなる。
ステップS30にて、第1判定部1302が、算出した候補照射量Ixが照明部20に対して設定可能な範囲外(ステップS40:NO)であると判定した場合、算出した候補照射量Ixが照明部20に対して設定不可能な設定値であるため、ステップS60に進む。
ステップS60では、第1判定部1302は、検査に適切な検査対象50の第2撮像画像1407を得るためにカメラ40の候補ゲインGxを以下の式(3)により算出する。
Gx=k2×At/An×Gn ・・・ 式(3)
ここで、Gxはカメラ40の候補ゲインであり、k2は所定の係数であり、Atは輝度閾値1103の範囲の中間値であり、Anは検出輝度であり、GnはAn検出時におけるカメラ40のゲイン設定値である。なお、係数k2は、検出輝度Anが中間値Atより小さい場合(つまり、光の照射量が不足している場合)には、候補ゲインGxが大きくなるように設定され、検出輝度Anが中間値Atより大きい場合(つまり、光の照射量が過剰である場合)には、候補ゲインGxが小さくなるように設定されている。
なお、初回の候補ゲインGxの算出時には、輝度センサ30によって検出された検出輝度Anを用いるが、2回目以降の候補ゲインGxの算出時には、既に照明部20の照射量設定値Inでは検出輝度Anを調整しきれなくなっており輝度センサ30によって検出される検出輝度Anは変化しないため、カメラ40によって撮像された基準マーク600の第1撮像画像1406の全画素から算出された検出輝度Anが用いられる。第1撮像画像1406の検出輝度Anは、第1撮像画像1406中の対象画素のRGB濃度値から以下の式(4)により算出する。対象画素が複数ある場合は、複数の対象画素について以下の式(4)により算出して得た値を平均化して算出する。
An=k3×R+k4×G+k5×B ・・・ 式(4)
ここで、Anは検出輝度であり、Rは対象画素の赤色に関する濃度値であるR濃度値であり、Gは対象画素の緑色に関する濃度値であるG濃度値であり、Bは対象画素の青色に関する濃度値であるB濃度値であり、k3、k4及びk5は所定の係数(k4>k3>k5)である。R濃度値、G濃度値及びB濃度値は、例えば、それぞれ1から255の範囲を取る値である。係数k3、k4及びk5は、例えば、k3は0.3、k4は0.6、k5は0.1等のようにk3、k4及びk5の加算値が1となるような値であってもよい。また、照明部20からの光の照射量が適切な条件下で、第1撮像画像1406の検出輝度Anと輝度センサ30の検出輝度Anとが近い値となるように設定した別の係数k6を式(4)の右辺に更に掛け合わせてもよい。
ステップS70では、第1判定部1302は、算出した候補ゲインGxが、カメラ40に対して設定可能な範囲内にあるか否か、つまり候補ゲインGxが設定可能な最小値Gmin以上であり、且つ、設定可能な最大値Gmax以下であるか否か(Gmin≦Gx≦Gmax)を判定する。候補ゲインGxが設定可能な範囲内であると第1判定部1302が判定した場合(ステップS70:YES)には、カメラ40のゲイン設定値GnにステップS60で算出した候補ゲインGxを設定しゲインの調整が可能であるため、ステップS80に進む。
ステップS80では、第4調整部1308が、制御プログラム中のカメラ40のゲイン設定値Gnを候補ゲインGxに設定し直して、図5のステップS2に戻る。これにより、カメラ40のゲイン設定値Gnを候補ゲインGxに設定してカメラ40のゲインを調整した後に、再度、図5のステップS2からステップS4を行い、画像検査前処理(ステップS5)のステップS10〜ステップS80を前述と同様に行うこととなる。
ステップS60にて、第1判定部1302が、算出した候補ゲインGxがカメラ40に対して設定可能な範囲外(ステップS70:NO)であると判定した場合、算出した候補ゲインGxがカメラ40に対して設定不可能な設定値であるため、図6BのステップS90に進む。
図6BのステップS90以降の処理は、ステップ10からステップS80を経ても、照明部20の光の照射量設定値Inの調整及びカメラ40のゲイン設定値Gnの調整では検査に適切な検出輝度Anが得られない場合に実行される画像検査前処理である。この処理は、基準マーク600の第1基準画像1106及び第1撮像画像1406から各輪郭線から検査対象50の検査を実行可能であるか否かと判定するために、輪郭取得部1303と第2判定部1304によって実行される。
ステップS90において、輪郭取得部1303は、基準マーク600の第1基準画像1106から第1基準画像1106の第1エッジ強度を取得する。具体的には、第1基準画像1106の第1輪郭線の一部のエッジ強度である第1エッジ強度を算出する。そして、第1基準画像1106の第1エッジ強度から第1輪郭閾値1104を算出し、第1記憶部110に第1輪郭閾値1104を記憶させる。なお、第1基準画像1106から第1エッジ強度を取得する位置は、例えば、図7のA−A線で示すように、輪郭線を取得しやすい任意の位置が予め設定される。
第1基準画像1106からの第1エッジ強度の算出方法の例を、図7を参照しながら説明する。図7の第1基準画像1106のA−A線における画素と輝度との関係を示す図7の上から1つ目のグラフにおいては、輝度が例えば第1基準画像1106の横方向の1画素毎に算出される。次に、この算出された輝度が微分されることにより、第1基準画像1106の横方向における輝度の変化の度合いとして第1エッジ強度が算出される。図7の上から2つ目のグラフに第1エッジ強度の算出結果が示される。本例では、左から右への方向において、輝度が減少すると第1エッジ強度は負の値となり、輝度が増加すると第1エッジ強度が正の値となるような変化を表す波形であるエッジ強度波形が得られる。次に、図7の上から3つ目のグラフに示すように、ガウシアンフィルタ等により、エッジ強度波形の平滑化フィルタリング処理が行われる。そして、図7の上から4つ目のグラフに示すように、第1エッジ強度が絶対値化され、かつ、第1エッジ強度が相対値化される。例えば、第1基準画像1106の第1エッジ強度の最大値が100で表されるように、第1エッジ強度が相対値(百分率)に換算される。この第1基準画像1106から求めたエッジ強度であって、エッジ強度波形の極値(つまり、図7の上から4つ目のグラフに示すエッジ強度波形の頂点における縦軸の値)を相対値化したものが、第1基準画像1106の第1エッジ強度である。そして、第1エッジ強度から第1輪郭閾値1104が算出され、例えば、相対値化された第1エッジ強度の80%の値が第1輪郭閾値1104としての閾値TH1に設定されてもよい。第1基準画像1106から第1輪郭閾値1104を求め終わるとステップS100に進む。なお、この第1輪郭閾値1104の算出は、繰り返し実行する必要は無いため、最初の一回だけ実行し、2回目以降はステップS90をスキップしてもよい。また、この第1輪郭閾値1104の算出は、ステップS90ではなく、ステップS90よりも前のタイミングであればいつ行ってもよく、例えば、初期設定値を設定するステップS1で第1輪郭閾値1104を算出してもよいし、エンジニアリングツールにて予め算出しておいた第1輪郭閾値1104を検査開始前にPLC10の第1記憶部110に記憶するようにしてもよい。
ステップS100(輪郭取得ステップ)では、輪郭取得部1303は、基準マーク600の第1撮像画像1406を第2記憶部120の第2格納領域1206から読み出し、第1撮像画像1406の第2エッジ強度を取得する。具体的には、第1撮像画像1406の輪郭線の一部のエッジ強度である第2エッジ強度を算出する。第2エッジ強度の算出方法については、図7で示した第1エッジ強度の算出と同様に行うが、第1エッジ強度に対する相対値として算出されるよう相対値化が行われる。なお、第1撮像画像1406から第2エッジ強度を取得する位置は、第1基準画像1106のA−A線に対応する第1撮像画像1406中の位置である。
第1撮像画像1406から算出された第2エッジ強度の例を、図8(a)から図8(c)に示す。図8(a)に示す第1撮像画像1406は、図7で示した第1基準画像1106の輝度と同程度の検出輝度を有する撮像画像の例である。図8(a)に示す第1撮像画像1406から、第1基準画像1106のA−A線に対応する位置であるB−B線における検出輝度を用い第2エッジ強度を求めたものが図8(a)の上から2つ目のグラフに示される。図8(a)の上から4つ目のグラフに示す第2エッジ強度は、第1輪郭閾値1104としての閾値TH1以上である。図8(b)に示す第1撮像画像1406は、図7で示した第1基準画像1106の輝度よりも大きい検出輝度を有し、照明部20からの光の照射量が過剰である場合の撮像画像の例である。図8(b)に示す第1撮像画像1406から、第1基準画像1106のA−A線に対応する位置であるB−B線における検出輝度から第2エッジ強度を求めたものが図8(b)の上から4つ目のグラフに示される。図8(b)の上から4つ目のグラフに示す第2エッジ強度は、第1輪郭閾値1104としての閾値TH1未満である。図8(c)に示す第1撮像画像1406は、図7で示した第1基準画像1106の輝度よりも小さい検出輝度を有し、照明部20からの光の照射量が不足している場合の撮像画像の例である。図8(c)に示す第1撮像画像1406から、第1基準画像1106のA−A線に対応する位置であるB−B線における検出輝度から第2エッジ強度を求めたものが図8(c)の上から4つ目のグラフに示される。図8(c)の上から4つ目のグラフに示す第2エッジ強度は、第1輪郭閾値1104としての閾値TH1以上である。なお、第1撮像画像1406から求めたエッジ強度であって、エッジ強度波形の極値(つまり、図8(a)、図8(b)及び図8(c)の上から4つ目のそれぞれのグラフに示すエッジ強度波形の頂点における縦軸の値)を相対値化したものが、第1撮像画像1406の第2エッジ強度である。第1撮像画像1406から第2エッジ強度を求め終わるとステップS110に進む。
ステップS110では、輪郭取得部1303によって取得された第1撮像画像1406の第2エッジ強度が第1輪郭閾値1104としての閾値TH1以上か否か第2判定部1304が判定する。
図8(a)及び図8(c)に示したように第2エッジ強度が第1輪郭閾値1104としての閾値TH1以上である場合(ステップS110:YES)には、第2判定部1304は輪郭線を用いての検査対象50の検査を実行可能であると判定し、ステップS120へ進む。そして、第2判定部1304は、次の画像検査処理で第2画像検査処理を行うためのフラグである第2画像検査フラグF2を設定して、画像検査前処理を終了する。その後、図5のステップS6に進む。なお、第2画像検査処理は、検査対象50の表面上の印刷状態のうち、色及び模様等を除き文字及びバーコード等のコントラストのはっきりした印刷の検査を行うための画像検査処理である。
図8(b)に示したように第2エッジ強度が第1輪郭閾値1104としての閾値TH1未満である場合(ステップS110:NO)には、第2判定部1304は、検査対象50に関する第2基準画像1107の第1輪郭線と第2撮像画像1407の第2輪郭線とを用いての検査対象50の検査を実行不能であると判定し、ステップS130に進む。
ステップS130では、第2判定部1304は、カメラ40の候補露光時間ETx及びコンベア70の移動速度を制御するためのモータ80の候補回転速度Vxを算出する。ステップS110にて第2エッジ強度が閾値TH1未満の場合、例えば、照明部20からの光の照射量が少ないことに起因して第1撮像画像1406内のコントラスト差が小さく、第1撮像画像1406の第2エッジ強度が小さくなっていることから、検査対象50の第2撮像画像1407も同様に第2輪郭線の取得がしにくくなっていることが想定される。このため、第2判定部1304は、検査対象50に関する第2基準画像1107の第1輪郭線と第2撮像画像1407の第2輪郭線とを用いての検査対象50の検査を実行不能であると判定する前と比較して、カメラ40の候補露光時間ETxが長くなるよう、また、コンベア70の移動速度を制御するためのモータ80の候補回転速度Vxが遅くなるように、候補露光時間ETxと候補回転速度Vxを算出する。例えば、第2判定部1304は、カメラ40の候補露光時間ETxが前回設定されていた露光時間よりも長くなるよう、また、コンベア70の移動速度を制御するためのモータ80の候補回転速度Vxが前回設定されていた回転速度よりも遅くなるように算出する。
ステップS140では、第2判定部1304は、算出した候補露光時間ETxが、カメラ40に対して設定可能な範囲内か否か判定する。つまり、第2判定部1304は、候補露光時間ETxが設定可能な最小値ETmin以上であり、且つ、設定可能な最大値ETmax以下であるか否か(ETmin≦ETx≦ETmax)を判定し、算出した候補回転速度Vxが、モータ80に対して設定可能な範囲内か否か、つまり候補回転速度Vxが設定可能な最小値Vmin以上であり、且つ、設定可能な最大値Vmax以下であるか否か(Vmin≦Vx≦Vmax)を判定する。第2判定部1304が、候補露光時間ETx及び候補回転速度Vxがともに設定可能な範囲内であると判定した場合(ステップS140:YES)には、カメラ40の露光時間設定値ETnをステップS140で算出した候補露光時間ETxに設定し露光時間の調整が可能であり、また、モータ80の回転速度設定値VnをステップS140で算出した候補回転速度Vxに設定し調整が可能であるため、ステップS150に進む。
ステップS150では、第1調整部1305が、制御プログラム中のカメラ40の露光時間設定値ETnを候補露光時間ETxに設定し直し、モータ80の回転速度設定値Vnを候補回転速度Vxに設定し直し、図5のステップS2に戻る。これにより、カメラ40の露光時間設定値ETnを候補露光時間ETxに、且つ、モータ80の回転速度設定値Vnを候補回転速度Vxに設定してカメラ40の露光時間とモータ80の回転速度を調整した後に、再度、図5のステップS2からステップS4を行い、画像検査前処理(ステップS5)のステップS10〜ステップS150を前述と同様に行うこととなる。なお、ステップS130からステップS150は、調整ステップの一例である。
ステップS130にて、第2判定部1304が、算出された候補露光時間ETx又は候補回転速度Vxがともに設定可能な範囲外であると判定した場合(ステップS140:NO)には、算出した候補露光時間ETxがカメラ40に対して設定不可能な設定値であり、又は、算出した候補回転速度Vxがモータ80に対して設定不可能な設定値であるため、ステップS160に進む。
ステップS160では、カメラ40の露光時間設定値ETnを設定可能な範囲内で最大限長くし、又は、モータ80の回転速度設定値Vnを設定可能な範囲内で最も遅くしたにも関わらず、検査対象50に関する第2基準画像1107の第1輪郭線と第2撮像画像1407の第2輪郭線とを用いての第2画像検査処理もできないほどに第1撮像画像1406のコントラスト差が小さい。そのため、第2判定部1304は、異常フラグF3を設定し、画像検査前処理を終了する。その後、図5のステップS6に進む。
次に、図5のステップS6の画像検査処理の詳細について、図9から図15Bを参照しながら説明する。
まず、図9に示すように、ステップS200では、第2判定部1304は、画像検査前処理にて第1画像検査フラグF1が設定されたか否かを確認する。第1画像検査フラグF1が設定されていると判定された場合(ステップS200:YES)、ステップS210に進み、第1画像検査処理(第1画像検査ステップ)を実行し、画像検査処理を終了する。その後、図5のステップS7に進み、第2判定部1304は、通信I/F部140を介して表示装置90へ第1画像検査結果を出力する。ステップS200で、第1画像検査フラグF1が設定されていないと判定された場合(ステップS200:NO)、ステップS220に進む。なお、第1画像検査処理の詳細は後述する。
ステップS220では、第2判定部1304は、第2画像検査フラグF2が設定されているか否かを確認する。第2画像検査フラグF2が設定されていると判定された場合(ステップS220:YES)、ステップS230へ進み第2画像検査処理(第2画像検査ステップ、輪郭判定ステップ)を実行し、画像検査処理を終了する。その後、図5のステップS7に進み、第2判定部1304は、通信I/F部140を介して表示装置90へ第2画像検査結果を出力する。ステップS220で、第2画像検査フラグF2が設定されていないと判定された場合(ステップS220:NO)、ステップS240に進む。なお、第2画像検査処理の詳細は後述する。
ステップS240では、第2判定部1304は、異常フラグF3が設定されていることを確認する。この場合、検査対象50に関する第2基準画像1107の第1輪郭線と第2撮像画像1407の第2輪郭線とを用いての第2画像検査処理もできないほどに検査対象50の第2撮像画像1407のコントラスト差が小さくなっていることが想定されるため、画像検査処理を終了する。そして、図5のステップS7に進み、第2判定部1304は、通信I/F部140を介して表示装置90へ検査システムが異常である旨を出力し、ユーザに通知する。
図9のステップS210における第1画像検査処理は、検査対象50の表面上の印刷状態のうち、文字・バーコード等のコントラストのはっきりした印刷に加え、色模様等も含め詳細な検査を行うための画像検査処理であり、図10と図11を参照しながら説明する。
まず、ステップS300では、第2判定部1304は、第1記憶部110より読み出した第2基準画像1107の原画像(第1輪郭線の取得前の第2基準画像1107)から第1画像検査処理の基準となる許容範囲を含む第1色情報を算出する。なお、第1色情報は、第1輪郭線の取得前の第2基準画像1107の原画像の画素の画素値(第1画素値)である。また、図11(a)で示すように、第2基準画像1107には、商品名等の文字1108、背景模様1109及び賞味期限の文字1110の印刷が鮮明に撮像されている。本実施の形態では、商品名等の文字1108は赤色とし、背景模様1109は紺色とし、賞味期限の文字1110は黒色としたものを例示して説明する。第2基準画像1107のC−C線上の各画素を例として説明すると、図11(a)の下のグラフで示すように、第2基準画像1107のC−C線上の各画素について、第2基準画像1107の第1画素値として赤色に関する濃度値であるR濃度値を取得し、R濃度値に対して所定の範囲(縦軸方向)及び画素位置(横軸方向)に対しての所定の範囲、つまり、破線Eで囲まれた領域を許容範囲に設定する。また、第2基準画像1107の第1画素値として緑色に関する濃度値であるG濃度値、青色に関する濃度値であるB濃度値についてもR濃度値と同様に許容範囲を設定する。このような処理を第2基準画像1107の全画素に対して行うことでR濃度値、G濃度値及びB濃度値のそれぞれに許容範囲が設定された第1色情報を求める。なお、R濃度値、G濃度値及びB濃度値の範囲は、例えば、0〜255である。
次に、ステップS310では、第2判定部1304は、第2記憶部120の第3格納領域1207から第2撮像画像1407を読み出し、ステップS320に進む。なお、第2撮像画像1407は、図11(b)に示す例では、商品名等の文字1408、背景模様1409、賞味期限の文字1410が印刷されている点は、図11(a)の第2基準画像1107と同じであるが、汚れ1411のような印刷上の不良があるものとする。汚れ1411は、商品名等の文字1408の赤色の塗料がかすれて付着したものである。
次に、ステップS320では、第2判定部1304は、読み出した第2撮像画像1407の原画像(第2輪郭線の取得前の第2撮像画像1407)から第2色情報を算出する。なお、第2色情報は、第2輪郭線の取得前の第2撮像画像1407の原画像の画素の画素値(第2画素値)である。図11(b)に示す第2撮像画像1407の例では、図11(a)の第2基準画像1107のC−C線に対応する位置である第2撮像画像1407のD−D線上の各画素について、第2撮像画像1407の第2画素値として、赤色に関する濃度値であるR濃度値を取得し、同様にG濃度値及びB濃度値を取得する。この場合、図11(b)に示した第2基準画像1107のRGB濃度値とは異なり、汚れ1411のピークFが存在する。
次に、ステップS330では、ステップS300で算出した第1画像検査処理の基準となる許容範囲Eを含む第1色情報とステップS320で算出した第2色情報とを比較し、第2色情報が第1色情報に一致するか否かを第2判定部1304は判定する。具体的には、第2撮像画像1407の第2色情報に含まれているRGB濃度値が、第2基準画像1107の第1色情報に含まれる許容範囲E内か否か判定することによって第2色情報が第1色情報に一致するか判定する。第2色情報が第1色情報に一致する場合(ステップS330:YES)には、ステップS340に進み、検査対象50は良品であると判定される。第2色情報が第1色情報に一致しない場合(ステップS330:NO)には、ステップS350に進み、検査対象50は不良品であると判定される。例えば、図11(b)に示した第2撮像画像1407の場合、汚れ1411のピークFが許容範囲Eに収まらないため、不良品であると判定される。
前述の例では、第1画素値及び第2画素値としてRGB濃度値を用いて、第2基準画像1107から第1画像検査処理の基準となる許容範囲を含む第1色情報を算出し、第2撮像画像1407から第2色情報を算出したが、より人間が検査対象50を見たときの色合いに近いHSV色空間で比較をする場合は、各画素のRGB濃度値を以下の式(5)から式(7)で示すHSV変換式により色相H、彩度S及び明度Vを算出する。なお、これらの色相H、彩度S及び明度Vも、輪郭線を取得する前の原画像の画素値に含まれる。
H=60×(G−R)/(MAX−MIN)+60 (Bが最小の場合)
=60×(G−B)/(MAX−MIN)+180 (Rが最小の場合)
=60×(R−B)/(MAX−MIN)+300 (Gが最小の場合)
・・・式(5)
S=MAX−MIN ・・・ 式(6)
V=MAX ・・・ 式(7)
ここで、Hは色相であり、Sは彩度であり、Vは明度であり、Rは対象画素の赤色に関する濃度値であるR濃度値であり、Gは対象画素の緑色に関する濃度値であるG濃度値であり、Bは対象画素の青色に関する濃度値であるB濃度値であり、MAXはRGBの3つの濃度値のうちの最大の濃度値であり、MINはRGBの3つの濃度値のうち最小の濃度値である。
そして、HSV色空間の色相H、彩度S及び明度Vに基づいて、図12(a)で示すように、RGB濃度値の場合と同様に、色相H、彩度S及び明度Vに対しての所定の範囲(縦軸方向)及び画素位置(横軸方向)に対しての所定の範囲、つまり、破線Eで囲まれた領域を許容範囲に設定する。このような処理を第2基準画像1107の全画素に対して行うことで色相H、彩度S及び明度Vのそれぞれに許容範囲が設定された第1色情報を算出し、図12B(b)から図12B(d)で示すように、第2撮像画像1407から第2色情報を算出し、算出した第1画像検査処理の基準となる許容範囲Eを含む第1色情報と算出した第2色情報とを比較し、第2色情報が第1色情報に一致するか否かを第2判定部1304は判定してもよい。
続いて、図9のステップS230における第2画像検査処理の詳細について、図13から図15を参照しながら説明する。第2画像検査処理は、検査対象50の表面上の印刷状態のうち、色及び模様等を除き文字及びバーコード等のコントラストのはっきりした印刷の検査を行うための画像検査処理である。
まず、ステップS400では、輪郭取得部1303は、第1記憶部110より読み出した第2基準画像1107から第2画像検査処理の基準となる第2基準画像1107の第1輪郭線を取得する。
第2基準画像1107の第1輪郭線の取得方法の例を、図14(a)を参照しながら説明する。図14(a)の第2基準画像1107のC−C線における画素と輝度との関係を示す図14(a)の上から1つ目のグラフにおいては、輝度が例えば第2基準画像1107の横方向の1画素毎に算出される。この際に、輝度は前述の式(4)を用いて各画素のRGB濃度値から算出される。次に、この算出された輝度が微分されることにより、第2基準画像1107の横方向における輝度の変化の度合いとして第1エッジ強度が算出される。図14(a)の上から2つ目のグラフに第1エッジ強度の算出結果が示される。本例では、C−C線上を左から右への方向に向かう際、輝度が増加すると第1エッジ強度が正の値となり、輝度が減少すると第1エッジ強度は負の値となり、これを2回繰り返した変化を表す波形であるエッジ強度波形が得られる。次に、図14(a)の上から3つ目のグラフに示すように、ガウシアンフィルタ等により、エッジ強度波形の平滑化フィルタリング処理が行われる。そして、図14(a)の上から4つ目のグラフに示すように、第1エッジ強度が絶対値化され、エッジ強度波形の極値(エッジ強度波形の頂点における縦軸の値)を取る画素の座標値が特定され、その座標値を持つ画素が輪郭線を構成する点として取得される。エッジ強度波形の極値を取る画素の座標値の特定方法としては、例えば、図14(a)の上から4つ目のグラフにおいて横軸の値と第2基準画像1107上の横方向における座標値を対応付けておき、エッジ強度波形の極値における横軸の値から第2基準画像1107上の横方向座標値を求める。なお、第2基準画像1107上の縦方向における縦方向座標値は、第2基準画像1107の下辺からC−C線までの距離を用いることで取得する。このように、エッジ強度波形の極値を取る第2基準画像1107上の座標値を求め、その座標値を持つ画素を輪郭線を構成する点として取得する。以上では、図14(a)の第2基準画像1107のC−C線上の各画素を例に説明したが、ステップS400では、第2基準画像1107の全画素について、例えば、第2基準画像1107の下辺から上辺まで順次走査して同様の処理を行い、第2基準画像1107中の全ての画素について第1エッジ強度を算出し、エッジ強度波形の極値を取る画素の座標値を特定し、その座標値を持つ画素を輪郭線を構成する点として取得することで、図15(a)に示す第2基準画像1107中の第1エッジ強度を有する第1輪郭線が取得される。なお、この第2基準画像1107中の第1輪郭線の取得は、繰り返し実行する必要は無いため、最初の一回だけ実行して第1記憶部110に記憶しておき、2回目以降は第1記憶部110から読み出すようにしてステップS400をスキップしてもよい。また、この第2基準画像1107中の第1輪郭線の取得は、ステップS400ではなく、ステップS400よりも前のタイミングであればいつ行ってもよく、例えば、初期設定値を設定するステップS1で第2基準画像1107中の第1輪郭線を取得してもよいし、エンジニアリングツールを用いて予め取得しておいた第2基準画像1107中の第1輪郭線を検査開始前にPLC10の第1記憶部110に記憶するようにしてもよい。
次に、ステップS410では、輪郭取得部1303は、第2記憶部120の第3格納領域1207から第2撮像画像1407を読み出し、ステップS420に進む。
次に、ステップS420(輪郭取得ステップ)では、輪郭取得部1303は、読み出した第2撮像画像1407から第2撮像画像1407の第2輪郭線を第2基準画像1107と同様の方法で取得する。図14(b)に示す第2撮像画像1407の例では、汚れ1411が存在するために、第2基準画像1107のC−C線に対応する位置である第2撮像画像1407のD−D線上には図14(b)に示すように汚れ1411に起因する第2エッジ強度Gも取得される。以上では、図14(b)のD−D線上の各画素を例に説明したが、ステップS420では、第2撮像画像1407の全画素を走査して同様の処理を行い、第2撮像画像1407中の全ての画素について第2エッジ強度を算出し、エッジ強度波形の極値を取る画素の座標値を特定し、その座標値を持つ画素を輪郭線を構成する点として取得することで、図15(b)に示す第2撮像画像1407中の第2輪郭線が取得される。
次に、ステップS430では、第2判定部1304は、ステップS420で取得した第2撮像画像1407の第2輪郭線とステップS400で取得した第2基準画像1107の第1輪郭線とを比較し、第2撮像画像1407の第2輪郭線が第2基準画像1107の第1輪郭線に一致するか否かを判定する。具体的には、対応する画素の座標位置において、第2撮像画像1407の第2輪郭線と第2基準画像1107の第1輪郭線とを画素毎に一致するか判断し、全画素に対する一致度(一致率)が第2輪郭閾値以上か否かを判定する。なお、第2撮像画像1407の第2輪郭線と第2基準画像1107の第1輪郭線とが一致するか否かの判定方法は、第2基準画像1107の第1輪郭線を構成する画素の座標値と、第1輪郭線と対応する第2撮像画像1407の第2輪郭線を構成する画素の座標値とが完全に一致するか否かで判定する方法であってもよいし、第2撮像画像1407の第2輪郭線の画素の座標上の位置が対応する第2基準画像1107の第1輪郭線の画素の座標上の位置から所定距離範囲内にあれば一致すると判定する方法であってもよい。
第2撮像画像1407の第2輪郭線が第2基準画像1107の第1輪郭線に一致する場合(ステップS430:YES)には、ステップS440に進み、検査対象50は良品であると判定される。第2撮像画像1407の第2輪郭線が第2基準画像1107の第1輪郭線に一致しない場合(ステップS430:NO)には、ステップS450に進み、検査対象50は不良品であると判定される。例えば、図15(b)に示した第2撮像画像1407の場合、汚れ1411に対応する第2輪郭線が第2基準画像1107の第1輪郭線に一致せず、一致度(一致率)が第2輪郭閾値未満となり、不良品であると判定される。
このように、第1画像検査又は第2画像検査では、第2基準画像1107と第2撮像画像1407とに基づいて、検査対象50が良品か不良品かの判定が行われ、第1画像検査及び第2画像検査の検査結果は通信I/F部140を介して表示装置90へ出力される。
本実施の形態1における検査システムにあっては、輝度検出部としてのカメラ40の撮像した基準マーク600の第1撮像画像1406から求めた検出輝度Anが輝度閾値1103の範囲内であると第1判定部1302が判定した場合、第2基準画像1107中の第1画素値と第2撮像画像1407中の第2画素値とを比較して、対象の検査を実行し、検出輝度Anが輝度閾値1103の範囲外であると第1判定部1302が判定した場合、第2基準画像1107の第1輪郭線と第2撮像画像1407の第2輪郭線とが一致するか判定することにより対象の検査を実行する。そのため、検査対象50の表面の輝度が適切な範囲内となる状況下においては、第2基準画像1107の第1画素値と第2撮像画像1407の第2画素値とを比較することで対象の詳細な検査を実行でき、検査対象50の表面の輝度が適切な範囲外となる状況下においても検査対象50の輪郭線を取得できる場合には、移動装置の移動速度を遅くすることなく輪郭線を用いた対象の検査を実行できるという効果を奏する。
また、本実施の形態1における検査システムにあっては、検査対象50ではなく、基準マーク600の第1撮像画像1406から求めた検出輝度Anが輝度閾値1103の範囲内か否か第1判定部1302が判定する。そして、輪郭取得部1303は基準マーク600の第1撮像画像1406から第2エッジ強度を取得し、第2判定部1304が第1撮像画像1406の第2エッジ強度が第1輪郭閾値1104以上であるか判定するようにしている。このように、基準マーク600を用いて輝度判定及び輪郭線の取得可否の判定を行うため、検査対象50の影響を受けることなく輝度判定の精度及び輪郭線の取得可否の判定の精度を向上できるという効果を奏する。
更に、本実施の形態1における検査システムにあっては、輪郭取得部1303は基準マーク600の第1撮像画像1406から第2エッジ強度を取得し、第2判定部1304が第1撮像画像1406の第2エッジ強度が第1輪郭閾値以上であると判定した場合、第2基準画像1107中の第1輪郭線と第2撮像画像1407中の第2輪郭線とが一致するか判定することにより検査対象50の検査を実行し、第2判定部1304が第1撮像画像1406の第2エッジ強度が第1輪郭閾値未満であると判定した場合、第1撮像画像1406が取得された時と比較して、第1調整部1305はカメラ40の露光時間設定値ETnが長くなるように調整し、第2調整部1306は検査対象50を移動させる際の移動速度が遅くなるようにモータ80の回転速度設定値Vnを調整する。そのため、検査対象50の輝度が適切な範囲外となった状況下においても検査対象50の輪郭線を取得できる場合には輪郭線を用いた検査対象50の検査を実行でき、検査対象50の輪郭線を取得できない場合に、カメラ40の露光時間設定値ETnが長くなるように、検査対象50の移動速度が遅くなるように調整して、輪郭線を取得できる撮像環境に近づけることができるという効果を奏する。
実施の形態2.
続いて、本発明の実施の形態2における検査システムについて図16から図19Bを用いて説明する。なお、実施の形態1と異なる構成及びステップの番号にはAを追加している。実施の形態1と同じ構成については、同一の符号を付し、詳細な説明は省略する。
本発明の実施の形態2における検査システムにおいては、図16に示すようにトレー60に基準マーク600が無い状態で検査対象50の検査を行う点が実施の形態1に対して異なる。そのため、図17に示すように、実施の形態1に対して、PLC10の第1記憶部110から基準マーク600の第1基準画像1106が除かれた第1記憶部110Aと、基準マーク600の第1撮像画像1406を格納する第2格納領域1206が除かれた第2記憶部120Aと、を備える点が異なる。
また、基準マーク600ではなく検査対象50に関する第2基準画像1107と第2撮像画像1407を用いた画像検査前処理をするために、実施の形態1に対して、第1記憶部110Aに記憶されている制御プログラム1101A、輝度閾値1103A及び第1輪郭閾値1104A、第2記憶部120Aの第1格納領域1203A、制御部130の第1判定部1302A、輪郭取得部1303A及び第2判定部1304Aも異なっている。制御プログラム1101A、輝度閾値1103A、第1輪郭閾値1104A、第1格納領域1203A、第1判定部1302A、輪郭取得部1303A及び第2判定部1304Aについて、以下に詳細説明する。
制御プログラム1101Aは、照明部20、カメラ40、モータ80及び表示装置90等の外部機器を制御し、また、基準マーク600の第1撮像画像1406に代えて、カメラ40で撮像された検査対象50の第2撮像画像1407を用いた画像検査前処理及び検査対象50の第2撮像画像1407を用いた画像検査処理を実行するプログラムである。
輝度閾値1103Aは、基準マーク600に代えて、輝度センサ30で検出された検査対象50の表面の輝度又はカメラ40で撮像された検査対象50の第2撮像画像1407から算出された輝度(以下、本実施形態では、輝度センサ30が検出した輝度又はカメラ40で撮像された検査対象50の第2撮像画像1407から算出された輝度を検出輝度Anともいう)が、画像検査処理を行うために必要な輝度閾値1103Aの範囲内か否か判断するための閾値である。
第1輪郭閾値1104Aは、基準マーク600に代えて、検査対象50を撮像して得られた第2撮像画像1407から取得された第2エッジ強度が、検査対象50に関する第2基準画像1107の第1輪郭線と第2撮像画像1407の第2輪郭線とを用いての画像検査処理を行うために必要な強度を有しているか否か判定するための閾値TH1である。
第1格納領域1203Aは、基準マーク600に代えて、輝度センサ30等で検出された検査対象50の検出輝度Anが格納される記憶領域である。
第1判定部1302Aは、基準マーク600に代えて、輝度センサ30等で検出された検出輝度Anが輝度閾値1103Aの範囲内か否かを判定する。
輪郭取得部1303Aは、基準マーク600に関する画像を除き、検査対象50に関する第2基準画像1107の第1輪郭線、第2撮像画像1407の第2エッジ強度及び第2輪郭線を取得する。
第2判定部1304Aは、基準マーク600に関する輪郭線を除き、輪郭取得部1303によって取得された検査対象50に関する第2撮像画像1407の第2エッジ強度と第1輪郭閾値1104とを用いて、検査対象50に関する第2基準画像1107の第1輪郭線及び第2撮像画像1407の第2輪郭線から検査対象50の検査が実行可能か否かを判定する。
次に、本発明の実施の形態2の検査システムの検査処理について実施の形態1と異なる点を図18を参照しながら説明する。
PLC10の入力取得部1301は、ステップS2A(輝度検出ステップ)にて、輝度センサ30等で検出された検査対象50の検出輝度Anを取得し、第2記憶部120Aの第1格納領域1203Aに格納し、ステップS3A(撮像ステップ)にて、コンベア70によって移動している検査対象50の表面を撮像して得られた撮像画像である第2撮像画像1407を取得し、第2記憶部120Aの第3格納領域1207に格納する。
なお、初回の候補ゲインGxの算出時までは、輝度センサ30によって検出された検出輝度Anを用いるが、基準マーク600に代わり、検査対象50の表面からの検出輝度Anが用いられる。2回目以降の候補ゲインGxの算出時には、基準マーク600の第1撮像画像1406に代わり、検査対象50の第2撮像画像1407から算出された検出輝度Anが用いられる。検査対象50の検出輝度Anの検出範囲としては、輝度センサ30によって検査対象50の表面全体の輝度を検出し、カメラ40で検出した検出輝度Anは、カメラ40によって撮像された検査対象50の第2撮像画像1407の全画素から算出された検出輝度を用いる。なお、第2撮像画像1407から算出した検出輝度Anは、第2撮像画像1407中の対象画素のRGB濃度値から前述の式(4)により算出される。第2撮像画像1407中に対象画素が複数ある場合は、複数の対象画素について前述の式(4)により算出して得た値を平均化して算出する。
次に、ステップS4Aでは、PLC10の第1判定部1302Aと第2判定部1304Aは、輝度閾値1103Aと、第2輪郭閾値1105と、第2基準画像1107と、を第1記憶部110Aから読み出し、その後、詳細には後述するが、実施の形態1とは異なる画像検査前処理(ステップS5A)を行う。
次に、ステップS5Aの画像検査前処理の詳細について、実施の形態1と異なる点について図19A及び図19Bを参照しながら説明する。
まず、ステップS10Aにおいて、第1判定部1302Aは、基準マーク600に代えて、輝度センサ30によって検出された検査対象50の検出輝度Anが輝度閾値1103Aの範囲内にあるか否かを判定する。例えば、前述の式(1)を満たすか否かにより判断する。また、既にステップS80にてカメラ40のゲイン設定値Gnの調整がされている場合には、基準マーク600に代えて、検査対象50の第2撮像画像1407から算出された検出輝度Anが用いられる。なお、本実施の形態の場合では、基準マーク600を使用した実施の形態1とは異なり、基準マーク600の色及び模様を予め設定できないため、検査対象50の色及び模様等に合わせて輝度閾値1103Aはユーザによって予め調整される。
そして、ステップS10Aにて検出輝度Anが輝度閾値1103Aの範囲内か否かの判定された後、本実施の形態においても実施の形態1と同様にステップS20からステップS80が実行される。
次に、ステップS90Aでは、輪郭取得部1303Aは、検査対象50の第2基準画像1107から第2基準画像1107の第1エッジ強度を取得し、第1エッジ強度から第1輪郭閾値1104Aを算出し、第1記憶部110Aに第1輪郭閾値1104Aを記憶する。なお、第2基準画像1107から第1輪郭線の第1エッジ強度を取得する位置は、例えば、図14(a)のC−C線で示すように、輪郭線を取得しやすい任意の位置が予め設定される。第2基準画像1107の第1エッジ強度の算出方法は、実施の形態1で前述した第2基準画像1107の第1エッジ強度の算出方法と同様であり、また、相対値化された第2基準画像1107の第1エッジ強度から第1輪郭閾値1104Aとしての閾値TH1が設定される。
ステップS100A(輪郭取得ステップ)では、輪郭取得部1303は、検査対象50の第2撮像画像1407を第2記憶部120Aの第3格納領域1207から読み出し、第2撮像画像1407の第2エッジ強度を算出する。なお、第2撮像画像1407から第2エッジ強度を取得する位置は、例えば、図14(b)に示すように、第2基準画像1107のC−C線に対応する第2撮像画像1407中のD−D線の位置である。
ステップS110Aでは、輪郭取得部1303Aによって取得された第2撮像画像1407の第2エッジ強度が第1輪郭閾値1104Aとしての閾値TH1以上か否か第2判定部1304Aが判定する。
そして、ステップS110Aにて第2撮像画像1407の第2エッジ強度が第1輪郭閾値1104Aとしての閾値TH1以上か否かの判定された後、本実施の形態においても実施の形態1と同様にステップS120からステップS150が実行される。
このように、実施の形態2における検査システムにあっては、輝度検出部としてのカメラ40の撮像した検査対象50の第2撮像画像1407から求めた検出輝度Anが輝度閾値1103Aの範囲内であると第1判定部1302Aが判定した場合、第2基準画像1107中の第1画素値と第2撮像画像1407中の第2画素値とを比較して、対象の検査を実行し、検出輝度Anが輝度閾値1103Aの範囲外であると第1判定部1302Aが判定した場合、輪郭取得部1303によって取得された第2撮像画像1407の第2輪郭線と、第2基準画像1107の第1輪郭線と、が一致するか判定することにより検査対象50の検査を実行する。そのため、検査対象50の表面の輝度が適切な範囲内となる状況下においては、第2基準画像1107中の第1画素値と第2撮像画像1407中の第2画素値とを比較することで対象の詳細な検査を実行でき、検査対象50の表面の輝度が適切な範囲外となる状況下においても検査対象50の輪郭線を取得できる場合には、移動装置の移動速度を遅くすることなく輪郭線を用いた対象の検査を実行できるという効果を奏する。
また、本実施の形態2における検査システムにあっては、基準マーク600を省略し、検査対象50の第2撮像画像1407から求めた検出輝度Anが輝度閾値1103Aの範囲内か否か第1判定部1302Aが判定する。そして、輪郭取得部1303Aは検査対象50の第2撮像画像1407から第2撮像画像1407の第2エッジ強度を取得し、第2判定部1304Aが第2撮像画像1407の第2エッジ強度が第1輪郭閾値1104A以上であるか判定するようにしている。このように、検査対象50自体を用いて輝度判定及び輪郭線の取得可否の判定を行うため、基準マーク600を省略しコストを低減できるという効果を奏する。なお、実施の形態2の場合、基準マーク600を省略することから、適切な照射量で照明部20から光を照射した条件下において検査対象50の印刷が適切な輝度範囲となるような色が設定されており、コントラスト差が大きくとれる色と模様である場合に使用することが好ましい。
更に、本実施の形態2における検査システムにあっては、輪郭取得部1303Aは検査対象50の第2撮像画像1407から第2撮像画像1407の第2エッジ強度を取得し、第2判定部1304Aが第2撮像画像1407の第2エッジ強度が第1輪郭閾値以上であると判定した場合、第2基準画像1107中の第1輪郭線と第2撮像画像1407中の第2輪郭線とが一致するか判定することにより検査対象50の検査を実行し、第2判定部1304が第1撮像画像1406の第2エッジ強度が第1輪郭閾値1104A未満であると判定した場合、第2撮像画像1407が取得された時と比較して、第1調整部1305はカメラ40の露光時間設定値ETnが長くなるように調整し、第2調整部1306は検査対象50を移動させる際の移動速度が遅くなるようにモータ80の回転速度設定値Vnを調整する。そのため、検査対象50の輝度が適切な範囲外となった状況下においても検査対象50の輪郭線を取得できる場合には輪郭線を用いた検査対象50の検査を実行でき、検査対象50の輪郭線を取得できない場合に、カメラ40の露光時間設定値ETnが長くなるように、検査対象50の移動速度が遅くなるように調整して、輪郭線を取得できる撮像環境に近づけることができるという効果を奏する。
実施の形態3.
続いて、本発明の実施の形態3における検査システムについて図20から図21を用いて説明する。実施の形態3は、図6Bに示す実施の形態1の画像検査前処理の後半処理、又は、図19Bに示す実施の形態2の画像検査前処理の後半処理を変形した実施形態である。なお、実施の形態1及び実施の形態2と異なる構成及びステップの番号にはBを付している。実施の形態1及び実施の形態2と同じ構成については、同一の符号を付し、詳細な説明は省略する。
本発明の実施の形態3における検査システムにおいては、実施の形態1又は実施の形態2に対して、ステップS90BからステップS120Bで第2画像検査処理を行う点が異なる。
ステップS90Bでは、図13のステップS400と同様に、輪郭取得部1303Aは、検査対象50の第2基準画像1107の全画素を走査して第2基準画像1107の第1輪郭線を取得することで、図15(a)に示す第2基準画像1107中の第1輪郭線が取得される。なお、この第2基準画像1107中の第1輪郭線の取得は、繰り返し実行する必要は無いため、最初の一回だけ実行し第1記憶部110Aに記憶し、2回目以降はステップS90Bをスキップしてもよい。また、この第2基準画像1107中の第1輪郭線の取得は、ステップS90Bではなく、ステップS90Bよりも前のタイミングであればいつ行ってもよい。
次に、ステップS100B(輪郭取得ステップ)では、図13のステップS410とステップS420と同様に、輪郭取得部1303Aは、第2記憶部120Aの第3格納領域1207から第2撮像画像1407を読み出し、検査対象50の第2撮像画像1407の全画素を走査して第2撮像画像1407の第2輪郭線を取得することで、例えば、図15(b)に示す第2撮像画像1407の第2輪郭線を取得する。
次に、ステップS110B(第2画像検査ステップ、輪郭判定ステップ)では、図13のステップS430と同様に、ステップS100Bで取得した第2撮像画像1407の第2輪郭線とステップS90Bで取得した第2基準画像1107の第1輪郭線とを第2判定部1304Aは比較し、第2撮像画像1407の第2輪郭線が第2基準画像1107の第1輪郭線に一致するか否かを判定する。具体的には、第2撮像画像1407の第2輪郭線と第2基準画像1107の第1輪郭線とを各画素毎に座標上で一致するか判断し、全画素に対する一致度(一致率)が第2輪郭閾値以上か否かを判定する。
第2撮像画像1407の第2輪郭線が第2基準画像1107の第1輪郭線に一致する場合(ステップS110B:YES)には、ステップS120Bに進み、検査対象50は良品であると判定され、良品であることを示す第2画像処理結果フラグF4を設定する。第2撮像画像1407の第2輪郭線が第2基準画像1107の第1輪郭線に一致しない場合(ステップS110B:NO)には、ステップS130からステップS160の処理を実施の形態1及び実施の形態2と同様に行う。
そして、図21に示すように、ステップS220Bにて、第2画像処理結果フラグF4が設定されているか否かを第2判定部1304は確認する。第2画像処理結果フラグF4が設定されていると判定された場合(ステップS220B:YES)、ステップS230Bへ進み、検査対象50は良品であると判定し、画像検査処理を終了する。ステップS220Bで、第2画像処理結果フラグF4が設定されていないと判定された場合(ステップS220B:NO)、ステップS240以降の処理を実施の形態1及び実施の形態2と同様に行う。
このような実施の形態3における検査システムにあっても、実施の形態1及び実施の形態2と同様に、検査対象50の輝度が適切な範囲外となった状況下においても検査対象50の輪郭線を取得できる場合には輪郭線を用いた検査対象50の検査を実行でき、検査対象50の輪郭線を取得できない場合に、カメラ40の露光時間設定値ETnが長くなるように、検査対象50の移動速度が遅くなるように調整して、輪郭線を取得できる撮像環境に近づけることができるという効果を奏する。
変形例.
上述の実施の形態1から実施の形態3においては、輝度センサ30で輝度の検出をするとともに、カメラ40で撮像された基準マーク600の第1撮像画像1406又は検査対象50の第2撮像画像1407の輝度を検出し、それぞれを用いて検出輝度が輝度閾値1103,1103Aの範囲内に収まるか否か判定しているが、カメラ40で撮像された基準マーク600の第1撮像画像1406又は検査対象50の第2撮像画像1407の検出輝度のみを用いて輝度判定を行うようにしてもよい。この場合、輝度センサ30を省略できる。
また、実施の形態1から実施の形態3においては、輝度センサ30によって検出した検出輝度Anが基準マーク600又は検査対象50の表面全体からの検出輝度であり、カメラ40によって検出した検出輝度Anが基準マーク600の第1撮像画像1406又は検査対象50の第2撮像画像1407の全画素から算出された検出輝度を用いたが、検出輝度はこれに限定されない。輝度センサ30によって基準マーク600の表面のうちの特定位置の輝度を検出してもよく、この場合には、カメラ40で検出した検出輝度Anは、カメラ40によって撮像された基準マーク600の第1撮像画像1406中の全画素のうち特定位置に対応する画素から算出された検出輝度を用いてもよい。また、輝度センサ30によって検査対象50の表面のうちの特定位置の輝度を検出してもよく、この場合には、カメラ40で検出した検出輝度Anは、カメラ40によって撮像された検査対象50の第2撮像画像1407中の全画素のうち特定位置に対応する画素から算出された検出輝度を用いてもよい。
また、実施の形態1から実施の形態3においては、第1輪郭閾値1104,1104Aは、第1記憶部110,110Aに記憶された第1基準画像1106、第2基準画像1107から画像検査前処理にて算出されるようにしたが、第1基準画像1106、第2基準画像1107から算出したものを予め記憶するようにしてもよい。また、第1基準画像1106、第2基準画像1107のエッジ強度を絶対値化して第1輪郭閾値1104,1104Aを求めたが、これに限らず、エッジ強度を絶対値化せずに、正の閾値と負の閾値の両方を持たせ、正の閾値を正方向に超える、又は、負の閾値を負方向に超える場合を第1輪郭閾値以上と判定するようにしてもよい。この場合、正の閾値を正方向に超える、又は、負の閾値を負方向に超えるという判定条件は、本発明の「第1輪郭閾値以上」に含まれる。
また、実施の形態1から実施の形態3においては、エッジ強度の算出方法として、輝度を微分することを例示したが、キャニー法、キャニー・デリチェ法、ソーベル法、ラプラシアン法等の公知の他の方法を用いてもよい。
また、実施の形態1から実施の形態3においては、第1画像検査処理をRGB濃度値又はHSV色空間の色相H、彩度S及び明度Vに基づいて行っているが、色情報はこれらに限らず、HSL色空間又はCMYK等の他の色モデルに基づいて行ってもよい。
また、実施の形態1から実施の形態3においては、第1画像検査処理をRGB濃度値の3つの濃度値又はHSV色空間の色相H、彩度S及び明度Vの3つの色に関する特徴量に基づいて行っているが、RGB濃度値の3つの濃度値の少なくとも1つ、又は、色相H、彩度S及び明度Vの少なくとも1つの色情報を原画像の画素値として採用し、第1画像検査処理を行ってもよい。なお、第1画像検査処理に用いる画素値は、輪郭線を画像から抽出する前の多値を取りえる多階調の画素値であり、濃度値又は濃淡値等も含まれる。
また、実施の形態1から実施の形態3においては、検出輝度Anが輝度閾値1103,1103Aの範囲内であると判定した場合には、基準画像中の画素の画素値である第1画素値としての第1色情報と撮像画像中の画素の画素値である第2画素値としての第2色情報を用いる色成分抽出法を取り入れた良品判定処理を第1画像検査処理に用いているが、これに限らず、公知の他のパターンマッチング法、テンプレートマッチング法等を用いてもよい。
また、実施の形態1から実施の形態3においては、第2撮像画像1407の第2輪郭線と第2基準画像1107の第1輪郭線とを画素毎に座標値が一致するか比較し、全画素に対する一致率が第2輪郭閾値以上か否かを判定したが、これに限らず、第2撮像画像1407の第2輪郭線から第2基準画像1107の第1輪郭線を差し引いた差分画像を更に生成し、差分画像に残った輪郭線の画素数が第2輪郭閾値未満である場合に、第2撮像画像1407の第2輪郭線と第2基準画像1107の第1輪郭線とが一致すると判定しても良い。
また、実施の形態1から実施の形態3においては、第1記憶部110,110Aと、第2記憶部120,120Aとを分けたが、1つの記憶装置の中で格納領域が分かれているものであってもよい。
また、実施の形態1においては、基準マーク600をトレー60に設けたが、これに限らず、検査対象50の表面に基準マーク600のシール又は印刷を施してもよい。この場合、トレー60を省略し、検査対象50をコンベア70に直接載せてもよい。
また、実施の形態2においては、基準マーク600を省略したが、この場合もトレー60を省略し、検査対象50をコンベア70に直接載せてもよい。
本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。