透光性基板検査装置
【課題】 多数枚の透光性基板OBの検査を短時間でできるようにする。
【解決手段】 複数のガラス基板OBの一部に対してライン状の光を照射し、このライン状の光が照射される設定枚数のガラス基板OBを検査対象ブロックとする。検査対象ブロック内のガラス基板OBがカメラ21の被写界深度内に入るように、治具11の位置を調整して撮影する。撮影画面における輝度データに基づいて、検査対象ブロック内に欠陥が存在するガラス基板OBがあるか否かを判定し、欠陥が存在するガラス基板OBがある場合には、カメラ位置をガラス基板OBの法線方向に細かく切り替えて撮影し、カメラ位置に対する輝度値と関連する値の変化曲線から欠陥が存在するガラス基板OBを判別する。
【解決手段】 複数のガラス基板OBの一部に対してライン状の光を照射し、このライン状の光が照射される設定枚数のガラス基板OBを検査対象ブロックとする。検査対象ブロック内のガラス基板OBがカメラ21の被写界深度内に入るように、治具11の位置を調整して撮影する。撮影画面における輝度データに基づいて、検査対象ブロック内に欠陥が存在するガラス基板OBがあるか否かを判定し、欠陥が存在するガラス基板OBがある場合には、カメラ位置をガラス基板OBの法線方向に細かく切り替えて撮影し、カメラ位置に対する輝度値と関連する値の変化曲線から欠陥が存在するガラス基板OBを判別する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ガラス基板等の透光性基板の欠陥をカメラ撮影により検出する検査装置に関する。
【背景技術】
【0002】
従来から、ガラス基板等の透光性基板に、基板面の法線方向に対して直角な方向から光りを照射し、基板面の法線方向からカメラにより撮影を行って、撮影画像データを処理することにより透光性基板の表面に欠陥(キズや異物付着)が存在するか否かを検査する検査装置が知られている。このような検査装置としては、例えば、特許文献1に提案されている。この検査装置では、検査対象となる1枚の透光性基板にシート状のレーザ光を照射し、基板の表面に形成された欠陥からの散乱光や反射光を、カメラにより光点として撮影することで欠陥を検出している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−274173号公報
【発明の概要】
【0004】
しかしながら、従来の検査装置は、基板を1枚ずつ検査しているため、多数枚の基板を検査するのに時間がかかり検査効率が悪いという問題がある。
【0005】
本発明は、上記問題に対処するためになされたもので、多数枚の透光性基板を短時間で検査できるようにすることを目的とする。
【0006】
上記目的を達成するために、本発明の特徴は、複数の透光性基板(OB)を、その基板面の法線方向に沿って所定間隔に平行に並べてセットする治具(11)と、前記治具にセットされた複数の透光性基板に対して光を照射する光照射器(50)と、被写界深度が前記所定間隔よりも広く、前記光照射器により光が照射されている前記透光性基板を前記法線方向から撮影し、撮影により得られた画像データを出力するカメラ(21)と、前記治具と前記カメラとの相対位置が前記法線方向に変化するように前記治具あるいは前記カメラを移動させることにより、前記治具にセットされた複数の透光性基板における前記カメラの被写界深度内に入る範囲を前記法線方向に変化させる移動手段(10,20)と、前記治具にセットされた透光性基板のうち前記カメラの被写界深度内に入る複数の透光性基板を1つの検査対象ブロックとして、前記検査対象ブロックを順次切り替えるように前記移動手段を制御するとともに、前記検査対象ブロックを切り替えるたびに前記カメラの出力する画像データを取得する撮影制御手段(60,S104,S126,S128,S152)と、前記撮影制御手段により取得された画像データに基づいて、前記検査対象ブロックごとに、検査対象ブロック内の透光性基板に存在する欠陥を検出する欠陥検出手段(60,S200,S136)とを備えたことにある。
【0007】
本発明においては、複数の透光性基板が基板面の法線方向に沿って所定間隔に平行に並ぶように治具にセット(保持)される。この複数の透光性基板は、光照射器から光が照射された状態で基板の法線方向からカメラにより撮影される。カメラは、被写界深度が透光性基板の配置間隔よりも広く設定されているため、複数の透光性基板を被写界深度内(ピントが合う範囲)に入れることができる。従って、複数の透光性基板の欠陥を1つの撮影画面内に重ねて映し出すことができる。そこで、本発明においては、カメラの被写界深度内に入る複数の透光性基板を1つの検査対象ブロックとしている。
【0008】
撮影制御手段は、治具にセットされた透光性基板のうちカメラの被写界深度内に入る複数の透光性基板を1つの検査対象ブロックとして、検査対象ブロックを順次切り替えるように移動手段を制御するとともに、検査対象ブロックを切り替えるたびに前記カメラの出力する画像データを取得する。例えば、治具にセットされた複数の透光性基板を、カメラの被写界深度内に入る枚数分の透光性基板を1つのブロックとして複数ブロックに分割し、移動手段を制御してカメラと治具との相対位置を変化させて検査対象ブロックを順次切り替えるとともに、検査対象ブロックを切り替えるたびにカメラの出力する画像データを取得する。従って、撮影制御手段が取得する画像データは、検査対象ブロック内の複数の透光性基板に欠陥が存在する場合、その欠陥を重ねて映し出した撮影画像のデータとなる。
【0009】
欠陥検出手段は、撮影制御手段により取得された画像データに基づいて、検査対象ブロックごとに、検査対象ブロック内の透光性基板に存在する欠陥を検出する。つまり、複数枚の透光性基板を透視撮影して得た画像データを使って、検査対象ブロックごとに欠陥が存在する透光性基板があるか否かを判定する。このため、多数枚の透光性基板をブロック単位で短時間にて検査することができる。ブロック単位の検査で欠陥が検出されない場合には、その検査対象ブロック内の透光性基板の全てを検査合格にすることができるため、特に、透光性基板の欠陥発生率が低い場合には、非常に有効なものとなる。また、複数ブロックの透光性基板を治具にセットした状態で、検査対象ブロックを切り替えるため、一度に多数枚の透光性基板を治具にセットしておくことができ、透光性基板のセット時間(取り付け、取り外し時間)を短縮することができる。この結果、検査効率を向上させることができる。
【0010】
本発明の他の特徴は、前記光照射器は、前記治具にセットされた複数の透光性基板のうち前記検査対象ブロック内の透光性基板に対して、前記法線方向の直角方向から光を照射することにある。
【0011】
本発明によれば、検査対象ブロック内の透光性基板のみに対して光を照射するため、検査対象とならない透光性基板から散乱光等がカメラに入射しない。従って、画像データにノイズがのりにくく、透光性基板の欠陥を精度良く検出することができる。
【0012】
本発明の他の特徴は、前記撮影制御手段は、前記カメラと前記光照射器との相対位置関係を保ったまま、前記治具を前記カメラに対して前記法線方向に移動させることにより、前記検査対象ブロックを切り替えるとともに前記切り替えられた検査対象ブロック内の透光性基板に光が照射されるようにしたことにある。
【0013】
本発明によれば、治具を法線方向に移動させるだけで、次の検査対象ブロックの透光性基板がカメラの被写界深度内に入り、かつ、そのブロックの透光性基板に光が照射されるようになる。従って、光照射器を移動する必要がなく、検査装置の制御システムをシンプルにすることができる。
【0014】
本発明の他の特徴は、前記欠陥検出手段により前記検査対象ブロック内の透光性基板に存在する欠陥が検出された場合、前記検査対象ブロック内の透光性基板から、前記欠陥が存在する透光性基板を判別する欠陥基板判別手段(S300)を備えたことにある。
【0015】
本発明によれば、欠陥検出手段により検査対象ブロック内の透光性基板に存在する欠陥が検出された場合、欠陥基板判別手段が、検査対象ブロック内の透光性基板から欠陥が存在する透光性基板を判別する。従って、治具にセットされた全ての透光性基板に対して、個々に欠陥の有無を検査することができる。また、検査対象ブロックにおいて欠陥が検出された場合にのみ、その検査対象ブロック内における複数の透光性基板から欠陥が存在する透光性基板を判別すればよいため、多数枚の透光性基板の検査を短時間にて実施することができる。
【0016】
本発明の他の特徴は、前記欠陥基板判別手段(S300)は、前記移動手段(20)を制御して、前記欠陥が検出された検査対象ブロックに対して前記カメラが撮影する位置を前記法線方向に複数通りに切り替えるブロック内撮影位置切替手段(S308,S322)と、前記各撮影位置において前記カメラが出力した画像データを取得し、取得した画像データに基づいて前記欠陥が存在する透光性基板を判別する基板判別用画像データ処理手段(S316,S318,S400)とを備えたことにある。
【0017】
本発明においては、ブロック内撮影位置切替手段が、移動手段を制御して欠陥が検出された検査対象ブロックに対してカメラが撮影する位置を法線方向に複数通りに切り替える。そして、基板判別用画像データ処理手段が、各撮影位置においてカメラが出力した画像データを取得し、取得した画像データに基づいて欠陥が存在する透光性基板を判別する。例えば、撮影位置の変化に対する画像データの変化特性を捉えることで、検査対象ブロック内における複数の透光性基板から欠陥が存在する透光性基板を判別する。これにより、欠陥が存在する透光性基板を精度よく判別できる。
【0018】
本発明の他の特徴は、前記ブロック内撮影位置切替手段は、前記治具と前記光照射器との相対位置関係を保ったまま、前記カメラを前記治具に対して前記法線方向に移動させることにより、前記カメラが撮影する位置を切り替えることにある。
【0019】
本発明によれば、カメラを法線方向に移動させるだけで、欠陥が検出された検査対象ブロック内の透光性基板に光が照射された状態で、カメラの撮影位置を切り替えることができる。従って、光照射器を移動する必要がなく、検査装置の制御システムをシンプルにすることができる。
【0020】
本発明の他の特徴は、前記カメラが出力する画像データは、前記カメラの撮像素子を構成する画素の撮影画面上における座標位置と輝度値を表すデータであり、前記基板判別用画像データ処理手段は、前記輝度値が基準値以上となる高輝度画素の集合体の輝度値と関連する値を、前記欠陥が存在する透光性基板を判別するためのパラメータ値として算出するパラメータ値算出手段(S600〜S640,S718,S724,S738,S768,S776,S790)を備え、前記カメラの撮影位置の変化に対する、前記パラメータ値算出手段により算出された前記パラメータ値の変化特性に基づいて前記欠陥が存在する透光性基板を判別する(S806,S812,S814〜S816)ことにある。
【0021】
本発明においては、基板判別用画像データ処理手段は、パラメータ値算出手段を備えており、このパラメータ値算出手段が、輝度値が基準値以上となる高輝度画素の集合体の輝度値と関連する値を、欠陥が存在する透光性基板を判別するためのパラメータ値として算出する。基板判別用画像データ処理手段は、カメラの撮影位置の変化に対するパラメータ値の変化特性を作成し、このパラメータ値の変化特性に基づいて欠陥が存在する透光性基板を判別する。欠陥が生じている部分においては、欠陥が生じていない部分に比べて、撮影画面における輝度値が大きく異なる。従って、輝度値と関連する値をパラメータ値とすることで、欠陥が存在する透光性基板を精度良く判別することができる。例えば、パラメータ値がピーク(極大、極小)となるカメラの撮影位置を求めることで、この撮影位置から欠陥が存在する透光性基板を特定することができる。
【0022】
本発明の他の特徴は、前記パラメータ値算出手段は、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域内における高輝度画素の輝度値の合計と、前記四角形の画素数との比を前記パラメータ値として算出する(S600〜S616,S768,S776,S790)ことにある。
【0023】
本発明によれば、透光性基板に存在する欠陥が線状である場合に適したパラメータ値を算出することができる。
【0024】
本発明の他の特徴は、前記パラメータ値算出手段は、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域の中心から等角度間隔で放射方向に延びた複数のライン上の高輝度画素の輝度値の合計値と、前記各ライン上の高輝度画素の画素数との比をパラメータ値として算出する(S600〜S640,S718,S724,S738)ことにある。
【0025】
本発明によれば、透光性基板に存在する欠陥が塊状である場合に適したパラメータ値を算出することができる。
【0026】
本発明の他の特徴は、前記基板判別用画像データ処理手段は、前記取得した画像データに基づいて前記透光性基板に存在する欠陥の形状が線状であるか塊状であるかを判定する欠陥形状判定手段(S618〜S622)を備え、前記パラメータ値算出手段は、前記透光性基板に存在する欠陥の形状が線状であると判定された場合には、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域内における高輝度画素の輝度値の合計と、前記四角形の画素数との比を前記パラメータ値として算出し、前記透光性基板に存在する欠陥の形状が塊状であると判定された場合には、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域の中心から等角度間隔で放射方向に延びた複数のライン上の高輝度画素の輝度値の合計値と、前記各ライン上の高輝度画素の画素数との比をパラメータ値として算出することにある。
【0027】
本発明によれば、欠陥形状判定手段が、透光性基板に存在する欠陥の形状が線状であるか塊状であるかを判定し、パラメータ値算出手段が、欠陥の形状に適したパラメータ値を算出するため、欠陥が存在する透光性基板の判別精度をさらに向上させることができる。
【0028】
尚、上記説明において、括弧内に示した符号は、発明の理解を助けるものであり、発明の各構成要件を前記符号によって規定される実施形態に限定させるものではない。
【図面の簡単な説明】
【0029】
【図1】実施形態に係る透光性基板検査装置のシステム構成図である。
【図2】透光性基板のブロックおよび被写界深度の位置変化を表す説明図である。
【図3】画像データから作成した撮影画像を表す図である。
【図4A】基板検査ルーチン(メインルーチン)を表すフローチャートである。
【図4B】基板検査ルーチン(メインルーチン)を表すフローチャートである。
【図5】欠陥判定用画像データ処理ルーチンを表すフローチャートである。
【図6】基板判別ルーチンを表すフローチャートである。
【図7A】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7B】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7C】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7D】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7E】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7F】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7G】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7H】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7I】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7J】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7K】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図8】欠陥検出画素に番号tを付与する処理を説明する説明図である。
【図9】欠陥検出画素にグループ番号gxを付与する処理を説明する説明図である。
【図10】欠陥検出画素にグループ番号gyを付与する処理を説明する説明図である。
【図11】欠陥検出画素にグループ番号gを付与する処理を説明する説明図である。
【図12】画像データから欠陥の中心座標を算出する処理を説明する説明図である。
【図13】画像データから欠陥のパラメータ値を算出する際に選択するラインを説明する説明図である。
【図14】カメラ位置毎の画像における欠陥を同一欠陥ごとにグループ化する処理を説明する説明図である。
【図15】カメラ位置に対するパラメータ値の変化を表すグラフである。
【図16】変形例に係る透光性基板検査装置のシステム構成図である。
【発明を実施するための形態】
【0030】
以下、本発明の一実施形態について図面を用いて説明する。図1は、実施形態に係る透光性基板検査装置1の概略システム構成図である。この透光性基板検査装置1(以下、単に検査装置1と呼ぶ)は、透光性のガラス基板OBを検査対象物とし、ガラス基板OBにキズが形成されている、あるいは、異物が付着しているといった欠陥を検出するものである。本実施形態のガラス基板OBは、平面視で長方形の平板である。
【0031】
検査装置1は、複数のガラス基板OBをセット(保持)する治具11と、治具11を固定する治具ステージ12と、治具ステージ12をガラス基板OBの法線方向(ガラス基板OBの板面と直交する方向:以下、単に法線方向と呼ぶ)に移動させる治具移動機構10と、治具11にセットされたガラス基板OBを撮影するカメラ21と、カメラ21を固定するカメラステージ22と、カメラステージ22を法線方向に移動させるカメラ移動機構20と、ガラス基板OBに対して光を照射する光照射器50と、検査処理を実行するコントローラ60とを備えている。
【0032】
治具11は、複数のガラス基板OBを、板面が互いに向かい合うように、法線方向に沿って等間隔、かつ、平行になるように並べて保持するものである。この治具11は、複数のガラス基板OBをセットした状態で治具ステージ12に固定される。治具移動機構10は、法線方向に中心軸が向けられたスクリューロッド13と、スクリューロッド13を回転させるモータ14(以下、治具移動モータ14と呼ぶ)とを備えている。スクリューロッド13は、一端がステージ基台40に立設された支持壁41に回転可能に支持され、他端が治具移動モータ14の出力軸に連結される。治具移動モータ14は、ステージ基台40と一体的に形成されたモータ台(図示略)に固定されている。治具ステージ12には、その内部にスクリューロッド13と螺合するナット(図示略)が形成されている。治具ステージ12は、スクリューロッド13の軸線方向への移動が許容され、かつ、スクリューロッド13の軸線回りの回転が不能となるようにステージ基台40上に配置される。従って、治具移動機構10は、治具移動モータ14によりスクリューロッド13を回転させ、このスクリューロッド13の回転により治具ステージ12を法線方向に移動させるねじ送り機構を構成したものである。
【0033】
カメラ移動機構20は、法線方向に中心軸が向けられたスクリューロッド23と、スクリューロッド23を回転させるモータ24(以下、カメラ移動モータ24と呼ぶ)とを備えている。スクリューロッド23は、一端がステージ基台40に立設された支持壁42に回転可能に支持され、他端がカメラ移動モータ24の出力軸に連結される。カメラ移動モータ24は、ステージ基台40と一体的に形成されたモータ台(図示略)に固定されている。カメラ21は、カメラステージ22に固定される。カメラステージ22には、その内部にスクリューロッド23と螺合するナット(図示略)が形成されている。カメラステージ22は、スクリューロッド23の軸線方向への移動が許容され、かつ、スクリューロッド23の軸線回りの回転が不能となるようにステージ基台40上に配置される。従って、カメラ移動機構20は、カメラ移動モータ24によりスクリューロッド23を回転させ、このスクリューロッド23の回転によりカメラステージ22を法線方向に移動させるねじ送り機構を構成したものである。また、カメラステージ22および支持壁42には、治具移動機構10のスクリューロッド13が非接触で貫通する貫通孔が形成されている。
【0034】
尚、本実施形態における治具移動機構10およびカメラ移動機構20が本発明の移動手段に相当するが、何れか一方の移動機構10,20だけを動作させれば、カメラ21と治具11との法線方向の相対位置を変化させることができるため、移動手段としては必ずしも両方の移動機構10,20を備える必要はない。
【0035】
治具移動モータ14内には、同モータ14が所定角度回転するたびに回転検出用パルス信号を出力するエンコーダ14aが組み込まれている。エンコーダ14aから出力される回転検出用パルス信号は、治具移動位置検出回路31に出力される。回転検出用パルス信号は、治具移動モータ14の回転方向を識別するために互いにπ/2だけ位相のずれたA相信号とB相信号とで構成される。治具移動位置検出回路31は、エンコーダ14aから出力される回転検出用パルス信号のパルス数を治具移動モータ14の回転方向に応じてカウントアップ又はカウントダウンし、そのカウント値から治具ステージ12の法線方向の移動位置(以下、治具位置と呼ぶ)を検出し、治具位置を表したデジタルデータをコントローラ60と治具移動モータ制御回路32に出力する。
【0036】
治具移動位置検出回路31におけるカウント値の初期値は、電源投入時にコントローラ60の指示によって設定される。すなわち、コントローラ60は、電源投入時に、治具移動モータ制御回路32に治具ステージ12の原点位置への移動、および、治具移動位置検出回路31に初期設定を指示する。この指示により、治具移動モータ制御回路32は、治具移動モータ14を回転させて治具ステージ12を原点位置に移動させる。この原点位置は、治具移動モータ14によって駆動される治具ステージ12の駆動限界位置である。治具移動位置検出回路31は、この治具ステージ12の移動中、エンコーダ14aからの回転検出用パルス信号を入力し続けている。そして、治具ステージ12が原点位置まで達して治具移動モータ14の回転が停止すると、治具移動位置検出回路31はエンコーダ14aからの回転検出用パルス信号の入力停止を検出して、カウント値を「0」にリセットする。このとき、治具移動位置検出回路31は、治具移動モータ制御回路32に出力停止のための信号を出力し、これにより、治具移動モータ制御回路32は治具移動モータ14への駆動信号の出力を停止する。その後、治具移動モータ14が駆動された際には、治具移動位置検出回路31は、回転検出用パルス信号のパルス数を治具移動モータ14の回転方向に応じてカウントアップまたはカウントダウンし、そのカウント値に基づいて治具位置を計算し、治具位置を表したデジタルデータを治具移動モータ制御回路32およびコントローラ60に出力し続ける。
【0037】
治具移動モータ制御回路32は、コントローラ60の指示により、治具移動モータ14を駆動制御して、治具ステージ12を法線方向へ移動させる。具体的には、治具移動モータ制御回路32は、コントローラ60によって指定される治具位置への移動が指示されたときに、治具移動位置検出回路31によって検出される治具位置を用いて治具移動モータ14の回転を制御し、検出される治具位置がコントローラ60から指定された治具位置に等しくなるまで治具移動モータ14を回転させる。
【0038】
カメラ移動モータ24内にも、カメラ移動モータ24の回転を検出して、前記エンコーダ14aと同様な回転検出用パルス信号を出力するエンコーダ24aが組み込まれている。エンコーダ24aから出力される回転検出用パルス信号は、カメラ移動位置検出回路33に出力される。カメラ移動位置検出回路33は、エンコーダ24aから出力される回転検出用パルス信号のパルス数をカメラ移動モータ24の回転方向に応じてカウントアップ又はカウントダウンし、そのカウント値からカメラステージ22の法線方向の移動位置(以下、カメラ位置と呼ぶ)を検出し、カメラ位置を表したデジタルデータをコントローラ60とカメラ移動モータ制御回路34に出力する。
【0039】
カメラ移動位置検出回路33におけるカウント値の初期値は、電源投入時にコントローラ60の指示によって設定される。すなわち、コントローラ60は、電源投入時に、カメラ移動モータ制御回路34にカメラステージ22の原点位置への移動、および、カメラ移動位置検出回路33に初期設定を指示する。この指示により、カメラ移動モータ制御回路34は、カメラ移動モータ24を回転させてカメラステージ22を原点位置に移動させる。この原点位置は、カメラ移動モータ24によって駆動されるカメラステージ22の駆動限界位置である。カメラ移動位置検出回路33は、このカメラステージ22の移動中、エンコーダ24aからの回転検出用パルス信号を入力し続けている。そして、カメラステージ22が原点位置まで達してカメラ移動モータ24の回転が停止すると、カメラ移動位置検出回路33はエンコーダ24aからの回転検出用パルス信号の入力停止を検出して、カウント値を「0」にリセットする。このとき、カメラ移動位置検出回路33は、カメラ移動モータ制御回路34に出力停止のための信号を出力し、これにより、カメラ移動モータ制御回路34はカメラ移動モータ24への駆動信号の出力を停止する。その後、カメラ移動モータ24が駆動された際には、カメラ移動位置検出回路33は、回転検出用パルス信号のパルス数をカメラ移動モータ24の回転方向に応じてカウントアップまたはカウントダウンし、そのカウント値に基づいてカメラ位置を計算し、カメラ位置を表したデジタルデータをカメラ移動モータ制御回路34およびコントローラ60に出力し続ける。
【0040】
カメラ移動モータ制御回路34は、コントローラ60の指示により、カメラ移動モータ24を駆動制御して、カメラステージ22を法線方向へ移動させる。具体的には、カメラ移動モータ制御回路34は、コントローラ60によって指定されるカメラ位置への移動が指示されたときに、カメラ移動位置検出回路33によって検出されるカメラ位置を用いてカメラ移動モータ24の回転を制御し、検出されるカメラ位置がコントローラ60から指定されたカメラ位置に等しくなるまでカメラ移動モータ24を回転させる。
【0041】
ステージ基台40上方には、光照射器50が設けられる。光照射器50は、光源51と、光源51を駆動する照射光源駆動回路52と、光源51から照射された光をライン状(帯状)の光にするスリット板53とを備えている。照射光源駆動回路52は、コントローラ60から光照射開始指令を入力すると光源51に電力を供給して光源51を点灯し、コントローラ60から光照射停止指令を入力すると光源51への電力供給を停止して光源51を消灯する。また、照射光源駆動回路52は、光源51を点灯する際には、コントローラ60にて指定された強度の光が光源51から照射されるように通電量を調整する。
【0042】
スリット板53は、基板検査時における治具11にセットされた複数のガラス基板OBの上端面から少し離れた位置に設けられる。スリット板53には、その中央に長方形のスリット開口53aが形成されている。光源51から照射された光は広がるが、光源51からスリット板53までの距離を長くすることで、スリット開口53aを通過する光は、スリット開口53aの幅(法線方向の長さ)と同じ幅のガラス基板OBの板面と平行なライン状の光となる。尚、スリット開口53aと光源51との位置関係は、スリット開口53aを通過した光の向きが、法線方向に対して直角な方向となるように、つまり、ガラス基板OBの板面と平行となるように設定されている。以下、法線方向に対して直角な方向を板面方向と呼ぶ。また、スリット開口53aの長さ(図1の奥行き方向の長さ)は、ガラス基板OBの長さ(図1の奥行き方向の長さ)と同程度、あるいは、やや大きく設定されており、ガラス基板OBの全面にわたって光が照射されるようになっている。
【0043】
スリット開口53aの幅は、スリット開口53aを通過したライン状の光が、治具11にセットされた複数のガラス基板OBの一部となる設定枚数のガラス基板OBに照射されるように設定されている。また、スリット開口53aの幅(つまり、ライン状の光の幅)は、カメラ21の被写界深度と同程度、あるいは、やや小さい値に設定されている。
【0044】
光源51およびスリット板53は、ステージ基台40に対して相対位置が変化しないように本体フレーム(図示略)に固定されている。従って、治具ステージ12を法線方向に移動させることにより、治具11にセットされた複数のガラス基板OBに照射される光の位置が法線方向に移動する。
【0045】
尚、光照射器50は、ライン状の光をガラス基板OBに対して板面方向に照射できるものであれば、色々な構成を採用することができる。例えば、LEDを一列に並べたものを光源51として、その光源51から照射された光をスリット開口53aを通過させるようにしてもよい。また、レーザ光をシリンドリカルレンズを通過させることでライン状の光を作り、このライン状の光をガラス基板OBに直接照射するようにしてもよい。
【0046】
カメラ21は、撮影方向が法線方向に向くようにカメラステージ22に固定され、治具11にセットされたガラス基板OBの板面を撮影する。カメラ21は、被写界深度がライン状の光の幅と同じかやや大きい値になるようにレンズのNA(開口数)が設定されている。カメラ21は、コントローラ60に接続され、コントローラ60から撮影指令を入力すると、内蔵したCCD(またはCMOS)の撮像素子の画素が出力する輝度に基づく信号から輝度のデジタルデータを作成し、このデジタルデータを画素位置のx,y座標データに対応付けてコントローラ60に出力する。
【0047】
コントローラ60は、CPU、ROM、RAMを備えたマイクロコンピュータを主要部とした電子制御装置であり、各種のデータ(後述する画像データ等)を記憶するメモリ60aを備えている。また、コントローラ60には、作業者が各種設定値や処理等を指示するための入力装置61と、作業者に対して各種の設定状況や検査結果等を視覚的に知らせるための表示装置62とが接続されている。
【0048】
コントローラ60は、作業者が入力装置61を使って検査開始指令を入力すると、後述する基板検査ルーチンを開始し、基板検査ルーチンにしたがって照射光源駆動回路52、治具移動モータ制御回路32、カメラ移動モータ制御回路34、カメラ21に指令を出力する。また、カメラ21から出力されるデータを入力してメモリ60aに記憶し、メモリ60aに記憶したデータを処理することによりガラス基板OBを検査する。そして、データ処理して得られた検査結果を表示装置62に表示する。
【0049】
コントローラ60のメモリ60aには、基板検査ルーチンを実施するにあたって必要となる以下の設定値が記憶されている。
治具位置:P(1),P(2),P(3)・・・P(nmax)
カメラ位置:C(1),C(2),C(3)・・・C(mmax)
光強度:In(1),In(2),In(3)・・・In(kmax)
【0050】
治具11にセットされた複数のガラス基板OBは、設定枚数のガラス基板OBを1つの検査単位としてグループ分けされている。このグループ分けされた1つの検査単位(設定枚数のガラス基板OB)をブロックと呼ぶ。図2に示すように、治具11にセットされた複数のガラス基板OBは、その先頭から設定枚数ごとに第1ブロックBL1、第2ブロックBL2、第3ブロックBL3・・・というように分けられる。各ブロックの幅(法線方向の距離)は、カメラ21の被写界深度と同程度、あるいは、やや小さく設定されている。従って、カメラ21の被写界深度内にブロック内のガラス基板OBを全て入れることができるようになっている。
【0051】
光照射器50は、スリット板53を通過したライン状の光が1つのブロックのみを照射するようにスリット開口53aの幅(法線方向の距離)が設定されている。つまり、スリット開口53aの幅は、ブロックの幅と等しく設定されている。ガラス基板OBの検査は、後述するようにブロック単位にて行われ、光照射器50からの光が照射されるブロックが検査対象ブロックとなる。検査対象ブロックは、治具11を法線方向に移動させることにより切り替えられる。従って、治具位置P(n)は、検査対象ブロックを指定するものとなる。尚、図2においては、分かりやすくするために、1ブロックを構成するガラス基板OBの枚数を8枚としているが、実際には、もっと多くすることができ、例えば、20枚程度にすることが可能である。
【0052】
カメラ位置C(m)は、被写界深度の中心位置(即ち、最もピントが合う位置)がライン状の光が照射される範囲の中心になる位置と、その位置を中心として前後に同じ数だけ設定されている。本実施形態においては、図2に簡易検査時として示すように、1つの検査対象ブロック(この例では、第2ブロックBL2の検査時)に対して3つのカメラ位置C(1),C(2),C(3)が設定されており、カメラ位置C(2)がカメラ21の被写界深度の中心位置がライン状光の範囲の中心位置(つまり、検査対象ブロックの法線方向の中心位置)となるように設定されている。従って、カメラ位置C(2)においては、カメラ21の被写界深度内に検査対象ブロックの全てのガラス基板OBが入るようになる。尚、図2における矢印Hの範囲がカメラ21の被写界深度(ピントが合う範囲)を表している。
【0053】
光強度In(k)は、光源51から照射される光の強度を指定する設定値である。
【0054】
次に、基板検査処理について説明する。図4A〜図4Bは、コントローラ60により実行される基板検査ルーチンを表す。基板検査ルーチンは、コントローラ60のROM内に制御プログラムとして記憶されている。作業者は、基板検査を行うにあたって、まず、治具11に複数のガラス基板OBをセットする。そして、ガラス基板OBのセットされた治具11を治具ステージ12にセットして、入力装置61を使って検査開始指示を入力する。コントローラ60は、この検査開始指示が入力されると、基板検査ルーチンを開始する。
【0055】
コントローラ60は、ステップS100にて基板検査ルーチンを開始すると、ステップS102において、変数n,変数m,変数kの値をそれぞれ「1」に設定する。この変数n,変数m,変数kは、治具位置,カメラ位置,光強度を特定する変数である。続いて、ステップS104において、治具移動モータ制御回路32に対して、治具11を治具位置P(n)に移動させる移動指令を出力する。治具移動モータ制御回路32は、この移動指令にしたがって、治具移動位置検出回路31により検出される治具位置を入力しながら、治具位置が治具位置P(n)に一致するまで治具移動モータ14の回転を制御して治具11(治具ステージ12)を移動させる。こうして第1ブロックBL1が、検査対象ブロックとなり、光照射器50からライン状光が照射される位置に位置決めされる。尚、この時点ではライン状光は照射されていない。
【0056】
続いて、コントローラ60は、ステップS106,S108において、治具移動位置検出回路31により検出される治具位置を入力し、治具位置が治具位置P(n)に一致するまで待機する。コントローラ60は、治具位置が治具位置P(n)に一致したと判断すると(S108:Yes)、続くステップS110において、カメラ移動モータ制御回路34に対して、カメラ21をカメラ位置C(m)に移動させる移動指令を出力する。カメラ移動モータ制御回路34は、この移動指令にしたがって、カメラ移動位置検出回路33により検出されるカメラ位置を入力しながら、カメラ位置がカメラ位置C(m)に一致するまでカメラ移動モータ24の回転を制御してカメラ21(カメラステージ22)を移動させる。
【0057】
続いて、コントローラ60は、ステップS112,S114において、カメラ移動位置検出回路33により検出されるカメラ位置を入力し、カメラ位置がカメラ位置C(m)に一致するまで待機する。コントローラ60は、カメラ位置がカメラ位置C(m)に一致したと判断すると(S114:Yes)、続くステップS118において、カメラ21に対して撮影指令を出力する。カメラ21は、この撮影指令にしたがって、撮像素子が出力する輝度に応じた信号から輝度のデジタルデータを作成し、このデジタルデータを画素位置を表すx,y座標データに対応付けてコントローラ60に出力する。カメラ21が出力するデータ(画素位置ごとの輝度を表すデータ)を画像データと呼ぶが、このステップS118で得られる画像データは、光照射器50からライン状の光が照射されていない状態での画像データである。以下、光照射器50からライン状の光が照射されていない状態で撮影したときの画像データを画像データD’(x,y)と呼び、ライン状の光が照射されている状態で撮影したときの画像データを画像データD(x,y)と呼ぶ。コントローラ60は、続くステップS120において、カメラ21の出力する画像データD’(x,y)を入力しメモリ60aに記憶する。
【0058】
続いて、コントローラ60は、ステップS122において、照射光源駆動回路52に対して光照射開始指令を出力するとともに、ステップS124において、光強度In(k)を指示する。照射光源駆動回路52は、この指令にしたがって、光源51から光強度In(k)の光が照射されるように設定された通電量で光源51を駆動する。こうして、第1ブロックBL1にライン状の光が照射される。続いて、コントローラ60は、ステップS126において、カメラ21に対して撮影指令を出力し、ステップS128において、カメラ21から出力される画像データD(x,y)を入力してメモリ60aに記憶する。
【0059】
続いて、コントローラ60は、ステップS200において欠陥判定用画像データ処理を行う。このステップS200の欠陥判定用画像データ処理は、画素ごとの輝度値が閾値以上であるか否かを判断することにより、検査対象ブロック内においてガラス基板OBの何れかに欠陥が存在するか否かを判定する処理である。このステップS200の欠陥判定用画像データ処理については、図5に示すフローチャート(サブルーチン)を用いて後述することとし、先に基板検査ルーチンにおける全体的な処理を説明する。
【0060】
コントローラ60は、ステップS200にて欠陥判定用画像データ処理を行うと、続くステップS132において、光強度を設定する変数kが最大値kmaxと等しくなっているか否かを判断する。この処理が最初に実行されるときには、変数kは「1」に設定されているため、コントローラ60は、「No」と判定して、ステップS134で変数kの値を「1」だけインクリメントし、その処理をステップS124に戻して上述した処理を繰り返す。従って、光源51から照射される光の強度が1段階づつ変更(増加あるいは減少)され、その都度、カメラ撮影(S126)、画像データD(x,y)のメモリ60aへの記憶(S128)、欠陥判定用画像データ処理(S200)が行われる。尚、本実施形態においては、光の強度を3段階としているため、kmaxが「3」に設定されている。
【0061】
こうした処理が繰り返され、全ての光強度での撮影と欠陥判定用画像データ処理が完了して変数kが最大値kmaxに達すると(S132:Yes)、コントローラ60は、その処理をステップS136に進めて、検査対象ブロックにおいて欠陥が存在しているか否かを判断する。ステップS200における欠陥判定用画像データ処理においては、検査対象ブロックにおける欠陥の有無を判定するが、ブロック内のどのガラス基板OBに欠陥が存在しているのか判別していない。つまり、検査対象ブロック内のガラス基板OB全体に対して欠陥が存在するか否かを判定している。従って、欠陥のあるガラス基板OBが1枚でも存在すれば、ステップS136の判断は「Yes」となる。
【0062】
コントローラ60は、検査対象ブロックに欠陥が存在していないと判定した場合(S136:No)には、続くステップS138において、カメラ位置を設定する変数mが最大値mmaxと等しくなっているか否かを判断する。変数mが最大値mmaxと等しくない場合には、ステップS140において、変数kの値を「1」に設定し、ステップS142において、変数mの値を「1」だけインクリメントする。続いて、ステップS143において照射光源駆動回路52に対して光照射停止指令を出力する。これにより、照射光源駆動回路52は、光源51への通電を停止して光源51を消灯させる。
【0063】
コントローラ60は、ステップS143の処理を行うと、その処理をステップS110に進めて上述した処理を実行する。従って、カメラ位置がC(2)に切り替えられ、そのカメラ位置C(2)において、画像データD’(x,y)がメモリ60aに記憶される。そして、光照射器50が駆動されるとともに光強度が1段階づつ変更され、各光強度における画像データD(x,y)がメモリ60aに記憶され、その都度、欠陥判定用画像データ処理が行われることになる。そして、コントローラ60は、ステップS136において、再度、検査対象ブロックに欠陥が存在しているか否かを判断する。欠陥が存在していなければ、その処理をステップS138に進め、カメラ位置を変更して上述の処理を行う。
【0064】
こうした処理が繰り返され、検査対象ブロックに欠陥が検出されずに変数mの値が最大値mmaxに到達すると、コントローラ60は、その処理をステップS146に進める。ステップS146においては、治具位置を設定する変数nが最大値nmaxと等しくなっているか否かを判断する。変数nが最大値nmaxと等しくない場合には、ステップS148において、変数kの値を「1」に設定し、ステップS150において、変数mの値を「1」に設定し、ステップS152において、変数nの値を「1」だけインクリメントする。続いて、ステップS154において照射光源駆動回路52に対して光照射停止指令を出力する。これにより、照射光源駆動回路52は、光源51への通電を停止して光源51を消灯させる。
【0065】
コントローラ60は、ステップS154の処理を行うと、その処理をステップS104に進めて上述した処理を実行する。従って、治具11が次の治具位置P(2)に移動して、第2ブロックBL2が検査対象ブロックとなる。そして、カメラ位置C(1)における画像データD’(x,y)と各光強度に応じた画像データD(x,y)がメモリ60aに記憶され、欠陥判定用画像データ処理が行われて第2ブロックBL2の欠陥の有無が判定される。欠陥が検出されなければ、カメラ位置が順次変更されていく。本実施形態においては、カメラ位置は3種類、つまり、mmaxが「3」に設定されている。従って、図2に示すように、1つの検査対象ブロックに対して、最大3つのカメラ位置にて撮影して欠陥の有無を判定する。複数のカメラ位置で撮影する理由は、検査対象ブロック内の欠陥の有無を精度良く判定するためであるが、カメラ21の被写界深度の中心位置がブロックの幅方向の中心位置となる位置(この例では、カメラ位置C(2))のみの撮影で判定するようにしてもよい。
【0066】
こうした処理が繰り返され、第2ブロックBL2に対しても欠陥が検出されなかった場合には、変数nの値がインクリメントされて(S152)、第3ブロックBL3に対する検査が開始される。そして、全てのブロックに対して欠陥が検出されなかった場合には、ステップS146において「Yes」と判定される。この場合、コントローラ60は、ステップS156において、治具移動モータ制御回路32に対して、治具11をガラス基板OBの交換位置まで移動させる移動指令を出力する。治具移動モータ制御回路32は、この移動指令にしたがって、治具移動位置検出回路31により検出される治具位置を入力しながら、治具位置がガラス基板OBの交換位置に一致するまで治具移動モータ14の回転を制御して治具11(治具ステージ12)を移動させる。続いて、コントローラ60は、ステップS158において、照射光源駆動回路52に対して光照射停止指令を出力する。これにより、照射光源駆動回路52は、光源51への通電を停止して光源51を消灯する。こうして、ステップS160において、基板検査ルーチンが終了する。
【0067】
一方、上述した処理の途中で欠陥が検出された場合(S136:Yes)には、その処理をステップS300に進めて、検査対象ブロック内のガラス基板OBのうち、欠陥が存在するガラス基板OBを判別する処理(以下、基板判別処理と呼ぶ)を行う。このステップS300の基板判別処理については、図6に示すフローチャート(サブルーチン)を用いて後述する。コントローラ60は、基板判別処理を完了すると、その処理をステップS146に進めて、検査対象ブロックを次のブロックに変更する。欠陥の存在の有無判定(S136)は、1つのカメラ位置毎に行われるため、欠陥が検出された時点において、撮影していないカメラ位置が残っていても、そのカメラ位置の撮影をスキップして、基板判別処理の後、次のブロックの検査に移行する。
【0068】
この基板検査ルーチンにおいては、1つのブロックごとにmmax通りのカメラ位置でそれぞれkmax通りの光強度で撮影を行い、各カメラ位置毎に欠陥の有無を判定する。この場合、カメラ21の被写界深度内(ピントの合う範囲)に検査対象ブロックの複数のガラス基板OBが入るように、ガラス基板OBの間隔、および、カメラ21のNAが設定されているため、一度にたくさんのガラス基板OBの検査を行うことができる。このため、カメラ位置の数mmaxは、検査対象ブロックのガラス基板OBの枚数よりも少なく設定でき、欠陥の有無を判定するために要する検査時間を短縮することができる。そして、欠陥が存在すると判定されたブロックに対しては、後述する基板判別処理によりカメラ位置を細かく変化させて撮影することで、欠陥が存在するガラス基板OBおよび欠陥位置を特定する。
【0069】
ステップS128で入力した画像データに基づいて撮影画像を視覚化すると、図3のようになる。点線で囲まれた領域がガラス基板OBの撮影された領域である。また、符号G1は塊状の欠陥、符号G2は線状の欠陥を表す。ガラス基板OBに欠陥(キズ、異物付着)があると、光照射器50から照射された光は、欠陥のある個所で散乱する。このため、カメラ撮影により得られた画像データにおいては、欠陥のある位置で明るくなる。そこで、ステップS200の欠陥判定用画像データ処理では、撮影画面の画素ごとに輝度値が閾値以上であるか否かを判定することにより、欠陥の有無を判定する。以下、ステップS200の欠陥判定用画像データ処理について説明する。尚、上述した画像データD(x,y),画像データD’(x,y)は、各画素における輝度値を表しているため、以下、輝度値として取り扱う場合には、それらを輝度値D(x,y),輝度値D’(x,y)と呼ぶ。
【0070】
図5は、欠陥判定用画像データ処理ルーチンを表すフローチャートである。この欠陥判定用画像データ処理ルーチンは、上述した基板検査ルーチンにおけるステップS200の処理を表すサブルーチンである。
【0071】
コントローラ60は、ステップS201で欠陥判定用画像データ処理ルーチンを起動すると、ステップS202において、画素のx座標位置を表す値xとy座標位置を表す値yをそれぞれ「1」に設定するとともに、欠陥検出画素数を表す欠陥カウント値Conを「0」に設定する。続いて、ステップS204において、輝度値D(x,y)から輝度値D’(x,y)を減算した値を正規の輝度値D”(x,y)として設定する。つまり、光を照射して撮影したときの輝度値D(x,y)と光を照射せずに撮影したときの輝度値D’(x,y)との差を正規の輝度値D”(x,y)として設定する。続いて、ステップS206において、座標値xが最大値xmax(画像データのx座標の最大値)と等しいか否かを判断し、座標値xが最大値xmaxより小さければ(S206:No)、ステップS208において、座標値xを「1」だけインクリメントして、その処理をステップS204に戻す。従って、y座標を固定してx方向に延びた1ライン分の画素の輝度値D”(x,y)が順番に求められることになる。
【0072】
こうした処理が繰り返され、座標値xが最大値xmaxに達した場合には(S206:Yes)、ステップS210において、座標値yが最大値ymax(画像データのy座標の最大値)と等しいか否かを判断する。コントローラ60は、座標値yが最大値ymaxより小さければ(S210:No)、ステップS212において、座標値xを「1」に設定し、ステップS214において、座標値yを「1」だけインクリメントして、その処理をステップS204に戻す。従って、y座標を1つずらした1ライン分の画素の輝度値D”(x,y)が順番に求められることになる。
【0073】
こうした処理が繰り返され、座標値yが最大値ymaxに達すると(S210:Yes)、全ての画素の輝度値D”(x,y)の算出が完了したことになる。この場合、コントローラ60は、ステップS216において、座標値xと座標値yをそれぞれ「1」に設定する。続いて、ステップS218において、欠陥を判定するための輝度の閾値Aを算出する。閾値Aは、判定対象となる画素(x,y)の周囲の画素の輝度を平均し、その平均値に所定値αを加算して設定する。この場合、輝度の平均値の算出にあたっては、判定対象となる画素(x,y)を中心として、設定数(s個)分だけx方向とy方向とに離れた画素で囲まれる正方形の領域の輝度の平均値を求める。輝度値D”(x,y)は欠陥が無い場合であっても変動する。従って、このように閾値Aを計算することで、輝度値D”(x,y)の変動に応じた適切な閾値Aを設定することができる。
【0074】
続いて、コントローラ60は、ステップS220において、輝度値D”(x,y)が閾値A以上であるか否かを判断する。輝度値D”(x,y)が閾値A以上である場合は、その画素(x,y)に対応する位置において、何れかのガラス基板OBに欠陥が存在すると推定できる。コントローラ60は、輝度値D”(x,y)が閾値A以上であれば(S220:Yes)、ステップS232において、欠陥カウント値Conを「1」だけインクリメントする。一方、輝度値D”(x,y)が閾値A未満であれば(S220:No)、ステップS222において、座標値xが最大値xmaxと等しいか否かを判断する。座標値xが最大値xmaxより小さければ(S222:No)、ステップS224において、座標値xを「1」だけインクリメントして、その処理をステップS218に戻す。従って、y座標を固定してx方向に延びた1ライン分の画素に対して順番に欠陥の有無が判定されることになる。
【0075】
こうした処理が繰り返され、座標値xが最大値xmaxに達した場合には(S226:Yes)、ステップS226において、座標値yが最大値ymaxと等しいか否かを判断する。コントローラ60は、座標値yが最大値ymaxより小さければ(S226:No)、ステップS228において、座標値xを「1」に設定し、ステップS230において、座標値yを「1」だけインクリメントして、その処理をステップS218に戻す。従って、y座標を1つずらした1ライン分の画素に対して順番に欠陥の有無が判定されることになる。
【0076】
こうした処理が繰り返され、座標値yが最大値ymaxに達すると(S226:Yes)、全ての画素に対して欠陥の有無判定が完了したことになる。この場合、コントローラ60は、ステップS234において、欠陥カウント値Conを光強度I(k)に対応付けた欠陥カウント値Con(k)として記憶する。こうして欠陥カウント値Con(k)を記憶すると、この欠陥判定用画像データ処理ルーチンをステップS236にて抜けて、基板検査ルーチン(メインルーチン)のステップS132の処理に移行する。従って、光強度が切り替えられるたびに、欠陥判定用画像データ処理ルーチン(S200)が実行され、その光強度I(k)に対応した欠陥カウント値Con(k)が記憶される。
【0077】
コントローラ60は、基板検査ルーチンのステップS136において、欠陥カウント値Con(k)が1以上であれば、つまり、閾値A以上となる画素が1つ以上あれば、検査対象ブロックに欠陥が存在すると判定する。その場合には、検査対象ブロックのどのガラス基板OBに欠陥が存在しているのか判別するために、ステップS300の基板判別処理を行う。以下、基板判別処理について説明する。
【0078】
図6は、基板判別ルーチンを表すフローチャートである。この基板判別ルーチンは、上述した基板検査ルーチンにおけるステップS300の処理を表すサブルーチンである。
【0079】
コントローラ60は、ステップS301で基板判別ルーチンを起動すると、ステップS302において、変数qの値を「1」に設定する。この変数qは、カメラ位置を特定する番号となる。続いて、ステップS304において、kmax通りの欠陥カウント値Con(k)のうちで最大値となる変数kを求める。つまり、欠陥カウント値Con(1)〜欠陥カウント値Con(kmax)のうちで、その値が最大となる変数kを求める。この場合、欠陥カウント値Con(k)が最大となる変数kが2つ以上あれば、大きい方のk、つまり、光強度が強く設定されるほうの変数kを選択する。続いて、コントローラ60は、ステップS306において、その変数kで設定された光強度In(k)を照射光源駆動回路52に対して指示する。照射光源駆動回路52は、この指令にしたがって、光源51から光強度In(k)の光が照射されるように設定された通電量で光源51を駆動する。このステップS304,S306の処理は、欠陥検査に最適な光強度に設定する処理である。
【0080】
続いて、コントローラ60は、ステップS308において、カメラ移動モータ制御回路34に対して、カメラ21をカメラ位置Cs(q)に移動させる移動指令を出力する。この移動指令を出力するにあたって、コントローラ60のメモリ60aには、予め、以下のカメラ位置が記憶されている。
カメラ位置:Cs(1),Cs(2),Cs(3)・・・Cs(qmax)
【0081】
上述したようにブロックごとに欠陥の有無を判定する処理においては、検査対象ブロックのガラス基板OBの複数枚がカメラ21の被写界深度内に入るようにカメラ位置を調整して撮影しているため、ガラス基板OBの枚数に対して少ないカメラ位置にて検査対象ブロックの欠陥を検出できる。欠陥が検出されなければ、それで検査は終了するわけだが、欠陥が検出された場合には、欠陥が存在するガラス基板OBおよび欠陥の位置を特定するために、図2に詳細検査時として示すように、カメラ位置を細かく切り替えて撮像する。このカメラ位置がカメラ位置Cs(q)として指定される。カメラ位置の切り替え間隔は、治具11に配置されるガラス基板OBの配設間隔より小さく、例えば、ガラス基板OBの配設間隔の1/5程度に設定されている。
【0082】
ステップS308にて移動指令が出力されると、カメラ移動モータ制御回路34は、カメラ位置がカメラ位置Cs(q)に一致するまでカメラ移動モータ24の回転を制御してカメラ21(カメラステージ22)を移動させる。この場合、変数qが「1」に設定されているため、カメラ21は、カメラ移動モータ24からカメラ21方向に見て一番手前の位置にセットされる。続いて、コントローラ60は、ステップS312,S314において、カメラ移動位置検出回路33により検出されるカメラ位置を入力し、カメラ位置がカメラ位置Cs(q)に一致するまで待機する。コントローラ60は、カメラ位置がカメラ位置Cs(q)に一致したと判断すると(S314:Yes)、続くステップS316において、カメラ21に対して撮影指令を出力する。カメラ21は、この撮影指令にしたがって、輝度値を画素位置に対応付けて表す画像データD(x,y)をコントローラ60に出力する。続いて、コントローラ60は、ステップS318において、カメラ21の出力する画像データD(x,y)にカメラ位置Cs(q)のデータを付与した画像データD(x,y,q)を作成してメモリ60aに記憶する。
【0083】
続いて、コントローラ60は、ステップS320において、変数qが最大値qmaxと等しいか否かを判断する。コントローラ60は、変数qが最大値qmaxと等しくなければ(S320:No)、ステップS322において、変数qの値を「1」だけインクリメントして、その処理をステップS308に戻す。従って、カメラ位置が所定距離だけ移動して、上述したカメラ撮影が行われ、そのカメラ位置における画像データD(x,y,q)がメモリ60aに記憶される。
【0084】
こうした処理が繰り返され、変数qが最大値qmaxに達すると(S320:Yes)、検査対象ブロックにおいて全てのカメラ位置にて画像データD(x,y,q)がメモリ60aに記憶されたことになる。コントローラ60は、続くステップS400において、画像データD(x,y,q)に基づいて基板判別用画像データ処理を行ったのち、ステップS326で基板判別ルーチンを抜け、基板検査ルーチン(メインルーチン)のステップS146の処理に移行する。以下、ステップS400の基板判別用画像データ処理について説明する。
【0085】
図7A〜図7K(以下、これらを総称する場合には図7と呼ぶ)は、基板判別用画像データ処理ルーチンを表すフローチャートである。この基板判別用画像データ処理ルーチンは、上述したステップS400の処理を表すサブルーチンである。
【0086】
コントローラ60は、ステップS401で基板判別用画像データ処理ルーチンを起動すると、ステップS402において、カメラ位置を指定する変数qの値を「1」に設定し、ステップS404において、画素のx座標位置を表す座標値xとy座標位置を表す座標値yとをそれぞれ「1」に設定する。続いて、ステップS406において、輝度値D(x,y,q)から輝度値D’(x,y)を減算した値を正規の輝度値D”(x,y,q)として設定する。つまり、光を照射して撮影したときの輝度値D(x,y,q)と光を照射せずに撮影したときの輝度値D’(x,y)との差を正規の輝度値D”(x,y,q)として設定する。尚、コントローラ60は、輝度値D’(x,y)として、欠陥の有無を判定するときの撮影時における最後のカメラ位置での輝度値を用いる。
【0087】
続いて、コントローラ60は、ステップS408において、座標値xが最大値xmaxと等しいか否かを判断し、座標値xが最大値xmaxより小さければ(S408:No)、ステップS410において、座標値xを「1」だけインクリメントして、その処理をステップS406に戻す。従って、y座標を固定してx方向に延びた1ライン分の画素の輝度値D”(x,y,q)が順番に求められることになる。
【0088】
こうした処理が繰り返され、座標値xが最大値xmaxに達した場合には(S408:Yes)、ステップS412において、座標値yが最大値ymaxと等しいか否かを判断する。コントローラ60は、座標値yが最大値ymaxより小さければ(S412:No)、ステップS414において、座標値xを「1」に設定し、ステップS416において、座標値yを「1」だけインクリメントして、その処理をステップS406に戻す。従って、y座標を1つずらした1ライン分の画素の輝度値D”(x,y,q)が順番に求められることになる。
【0089】
こうした処理が繰り返され、座標値yが最大値ymaxに達すると(S412:Yes)、全ての画素の輝度値D”(x,y,q)の算出が完了する。この場合、コントローラ60は、ステップS418において、座標値xと座標値yをそれぞれ「1」に設定するとともに、番号tを「1」に設定する。この番号tは、後述の処理でわかるように、輝度値D”(x,y,q)が閾値A以上となる画素の一つ一つに対して、1から順番に付与される番号である。
【0090】
続いて、コントローラ60は、ステップS420において、欠陥を判定するための輝度の閾値Aを算出する。閾値Aは、上述したステップS218にて算出したように、判定対象となる画素(x,y,q)の回りの画素の輝度を平均し、その平均値に所定値αを加算して求められる。従って、輝度値D”(x,y、q)の変動に応じた適切な閾値Aを設定することができる。続いて、コントローラ60は、ステップS421において、輝度値D”(x,y,q)が閾値A以上であるか否かを判断する。輝度値D”(x,y,q)が閾値A以上である場合(S421:Yes)は、ステップS422において、座標値xをx(t)の値に設定し、ステップS424において、座標値yをy(t)の値に設定する。従って、x(t)およびy(t)は、番号tの画素のx座標データおよびy座標データとなる。続いて、番号tを「1」だけインクリメントして、その処理をステップS428に進める。一方、輝度値D”(x,y,q)が閾値A未満であれば(S421:No)、ステップS422,424,426の処理をスキップしてステップS428に移行する。
【0091】
コントローラ60は、ステップS428において、座標値xが最大値xmaxと等しいか否かを判断する。座標値xが最大値xmaxより小さければ(S428:No)、ステップS430において、座標値xを「1」だけインクリメントして、その処理をステップS420に戻す。こうした処理が繰り返され、座標値xが最大値xmaxに達した場合には(S428:Yes)、ステップS432において、座標値yが最大値ymaxと等しいか否かを判断する。コントローラ60は、座標値yが最大値ymaxより小さければ(S432:No)、ステップS434において、座標値xを「1」に設定し、ステップS436において、座標値yを「1」だけインクリメントして、その処理をステップS420に戻す。
【0092】
こうした処理が繰り返されることにより、輝度値D”(x,y,q)が閾値A以上となった画素については、画素の座標位置を表すデータ(x,y)に番号tを表すデータが付与される。換言すれば、輝度値D”(x,y,q)が閾値A以上となった画素(x、y)に対して、図8に示すように、検出順に番号tが付与される。従って、番号tから画素の座標(x,y)を特定することができる。例えば、図8に示す例では、番号1により画素の座標(10,3)を特定することができ、番号2により画素の座標(11,3)を特定することができる。
【0093】
検査対象ブロックにおいては、このように番号tの付与された画素の座標位置に対応したガラス基板OBの位置に欠陥が存在すると推定される。以下、番号tの付与された画素を欠陥検出画素と呼ぶ。ガラス基板OBの欠陥は、複数の画素にまたがって撮影される。そこで、以下に説明するステップS438〜S512の処理においては、連続した欠陥検出画素を一つの欠陥として捉えるためにグループ化する。
【0094】
コントローラ60は、ステップS438において、変数aの値を「1」に設定し、グループ番号gxを「1」に設定する。続いて、ステップS440において、y座標y(t)がaとなる欠陥検出画素の番号tを抽出する。この処理が最初に実行されるときにはa=1に設定されているため、y(t)=1、つまり、y座標が1となる全ての欠陥検出画素の番号tを抽出する。図8に示す例では、それに該当する欠陥検出画素は存在しないため、番号tは抽出できない。続いて、コントローラ60は、ステップS442において、抽出できた番号tが存在するか否かを判断する。抽出できた番号tが存在しない場合は(S442:No)、ステップS444において、グループ番号gxが付与されていないx座標データx(t)が存在するか否かを判断する。この時点においては、どのx座標データx(t)にもグループ番号gxが付与されていないため、コントローラ60は、「Yes」と判定して、ステップS446において変数aの値を「1」だけインクリメントし、その処理をステップS440に戻す。
【0095】
コントローラ60は、こうした処理を繰り返し、y(t)=aとなる欠陥検出画素が存在していると判断した場合(S442:Yes)には、ステップS448において、その欠陥検出画素のx座標x(t)を抽出する。例えば、図8に示す例では、y(t)=3のときに、t=1,t=2の欠陥検出画素のx座標であるx(1)=10,x(2)=11が抽出される。続いて、コントローラ60は、ステップS450において、抽出したx座標x(t)のうちの最小値を抽出する。この例では、最小値は、1番目の欠陥検出画素のx座標となるため、x(1)=10となる。
【0096】
続いて、コントローラ60は、ステップS452において、x(t,gx)の値として、ステップS450で抽出したx座標x(t)を設定する。このx(t,gx)は、x座標データにグルーブ番号gxを付与したデータである。この時点では、gx=1であるため、この例では、x(1,1)=10となる。続いて、ステップS454において、ステップS448で抽出した欠陥検出画素の中に、x座標x(t)が(x(t,gx)+1)となる欠陥検出画素が存在するか否かを判断する。つまり、x方向に隣接する(連続する)欠陥検出画素が存在するか否かを判断する。図8に示す例では、x座標x(t)が11(=10+1)となる欠陥検出画素の存在が判断される。この場合、2番目(t=2)の欠陥検出画素がそれに該当する。コントローラ60は、続くステップS456において、x座標x(t)が(x(t,gx)+1)となる欠陥検出画素のx座標x(t)を抽出する。この例では、x座標x(2)=11が抽出される。
【0097】
コントローラ60は、ステップS456にてx座標x(t)を抽出すると、その処理をステップS452に戻して同様の処理を実行する。従って、ステップS452においては、グループ番号の付与されたx座標x(2,1)の値として11が設定される。コントローラ60は、こうした処理を繰り返し、ステップS454において、x方向に隣接する欠陥検出画素が存在しないと判断すると、その処理をステップS458に進める。ステップS458においては、ステップS448で抽出した欠陥検出画素のx(t)が残っているか否かを判断する。つまり、y座標がaとなるx方向に延びた1ライン分の画素において、グループ番号gxを付与していない欠陥検出画素がまだ存在するか否かを判断する。グループ番号gxを付与していない欠陥検出画素が存在する場合には(S458:Yes)、ステップS460において、グループ番号gxを「1」だけインクリメントして、その処理をステップS450に戻し、同様の処理を実行する。これにより、y座標がaとなるx方向に延びた1ライン分の画素において、隣接する欠陥検出画素を1グループとした単位でグループ番号gxがx座標データに付与される。
【0098】
コントローラ60は、ステップS458において、グループ番号gxを付与していない欠陥検出画素が存在しないと判断した場合には、ステップS461において、グループ番号gxを「1」だけインクリメントして、その処理をステップS444に戻し、同様の処理を実行する。従って、x座標x(t)にグループ番号gxが付与されていない欠陥検出画素があれば、変数aの値を「1」だけインクリメントし、その処理をステップS440に戻す。これにより、グループ番号gxの付与対象となるx方向に延びた1ライン分の画素が、y方向に1つ移動して上述した処理が行われる。
【0099】
こうした処理が繰り返されることにより、全ての欠陥検出画素のx座標x(t)にグループ番号gxが付与される。図9は、上述した処理により付与されたグループ番号gxを欠陥検出画素位置に表したものである。x方向に隣接する欠陥検出画素に対しては、同一のグループ番号gxが付与される。
【0100】
コントローラ60は、全ての欠陥検出画素のx座標x(t)にグループ番号gxを付与すると(S444:No)、その処理をステップS462に進める。このステップS462からステップS485の処理は、y方向に延びた1ライン分の画素ごとに、隣接する欠陥検出画素に対して共通のグループ番号gyを付与するものであり、上述したステップS438からステップS461の処理とは、グループ番号を付ける画素のライン方向がy方向になるだけで、基本的な処理は共通する。
【0101】
コントローラ60は、ステップS462において、変数bの値を「1」に設定し、グループ番号gyを「1」に設定する。続いて、ステップS464において、x座標x(t)がbとなる欠陥検出画素の番号tを抽出する。この処理が最初に実行されるときにはb=1に設定されているため、x(t)=1、つまり、x座標が1となる全ての欠陥検出画素の番号tを抽出する。図8に示す例では、それに該当する欠陥検出画素は存在しないため、番号tは抽出できない。続いて、コントローラ60は、ステップS466において、抽出できた番号tが存在するか否かを判断する。抽出できた番号tが存在しない場合は(S466:No)、ステップS468において、グループ番号gyが付与されていないy座標データy(t)が存在するか否かを判断する。この時点においては、どのy座標データy(t)にもグループ番号gyが付与されていないため、コントローラ60は、「Yes」と判定して、ステップS470において変数bの値を「1」だけインクリメントし、その処理をステップS464に戻す。
【0102】
コントローラ60は、こうした処理を繰り返し、x(t)=bとなる欠陥検出画素が存在していると判断した場合(S466:Yes)には、ステップS472において、その欠陥検出画素のy座標y(t)を抽出する。例えば、図8に示す例では、x(t)=6のときに、t=8,t=56の欠陥検出画素のy座標であるy(8)=5,y(56)=16が抽出される。続いて、コントローラ60は、ステップS474において、抽出したy座標y(t)のうちの最小値を抽出する。この例では、最小値は、8番目の欠陥検出画素のy座標となるため、y(8)=5となる。
【0103】
続いて、コントローラ60は、ステップS476において、y(t,gy)の値として、ステップS474で抽出したy座標y(t)を設定する。このy(t,gy)は、y座標データにグルーブ番号gyを付与したデータである。この時点では、gy=1であるため、この例では、y(8,1)=5となる。続いて、ステップS478において、ステップS472で抽出した欠陥検出画素の中に、y座標y(t)が(y(t,gy)+1)となる欠陥検出画素が存在するか否かを判断する。つまり、y方向に隣接する(連続する)欠陥検出画素が存在するか否かを判断する。存在する場合には、コントローラ60は、続くステップS480において、y座標x(t)が(y(t,gy)+1)となる欠陥検出画素のy座標y(t)を抽出して、その処理をステップS476に戻して同様の処理を実行する。
【0104】
コントローラ60は、こうした処理を繰り返し、ステップS478において、y方向に隣接する欠陥検出画素が存在しないと判断すると、その処理をステップS482に進める。ステップS482においては、ステップS472で抽出した欠陥検出画素が残っているか否かを判断する。つまり、x座標がbとなるy方向に延びた1ライン分の画素において、グループ番号gyを付与していない欠陥検出画素がまだ存在するか否かを判断する。グループ番号gyを付与していない欠陥検出画素が存在する場合には(S482:Yes)、ステップS484において、グループ番号gyを「1」だけインクリメントして、その処理をステップS474に戻し、同様の処理を実行する。これにより、x座標がbとなるy方向に延びた1ライン分の画素において、隣接する欠陥検出画素を1グループとした単位でグループ番号gyがy座標データに付与される。
【0105】
コントローラ60は、ステップS482において、グループ番号gyを付与していない欠陥検出画素が存在しないと判断した場合には、ステップS485において、グループ番号gyを「1」だけインクリメントして、その処理をステップS468に戻し、同様の処理を実行する。従って、y座標y(t)にグループ番号gyが付与されていない欠陥検出画素があれば、変数bの値を「1」だけインクリメントし、その処理をステップS464に戻す。これにより、グループ番号gyの付与対象となるy方向に延びた1ライン分の画素が、x方向に1つ移動して上述した処理が行われる。
【0106】
こうした処理が繰り返されることにより、全ての欠陥検出画素のy座標y(t)にグループ番号gyが付与される。図10は、上述した処理により付与されたグループ番号gyを欠陥検出画素位置に表したものである。y方向に隣接する欠陥検出画素に対しては、同一のグループ番号gyが付与される。
【0107】
コントローラ60は、全ての欠陥検出画素のy座標y(t)にグループ番号gyを付与すると(S468:No)、その処理をステップS486に進める。このステップS486からステップS512の処理は、グループ番号gx,gyに基づいて、撮影画面の平面座標位置においてx方向、y方向に連続する欠陥検出画素をグループ化して、座標データにグループ番号gを付与する処理である。
【0108】
コントローラ60は、まず、ステップS486において、変数gx1の値を「1」に設定し、グループ番号gを「1」に設定する。続いて、ステップS488において、グループ番号gxがgx1となる欠陥検出画素のx座標データx(t,gx)を全て抽出する。図8の例では、t=1,t=2となる欠陥検出画素のx座標値10,11が抽出される。続いて、ステップS490において、抽出されたx座標データx(t,gx)が存在するか否かを判断し、存在する場合には、ステップS492において、グループ番号gを用いたx座標データx(t,g)の値をステップS488で抽出したx座標データx(t,gx)の値に設定する。この例では、x(1,1)=10,x(2,1)=11と設定される。続いて、ステップS494において、抽出したx座標データx(t,gx)の番号tを有する欠陥検出画素のy座標データy(t,gy)を抽出する。この例では、y座標データy(t,gy)は、y(1,10)とy(2,12)となる。続いて、ステップS496において、この抽出したy座標データy(t,gy)のグループ番号gyを有するy座標データy(t,gy)を抽出する。この例では、グループ番号gyがgy=10、gy=12のy座標データy(t,gy)が抽出される。
【0109】
続いて、コントローラ60は、ステップS498において、グループ番号gを用いたy座標データy(t,g)の値を、ステップS496で抽出されたy座標データy(t,gy)の値に設定する。続いて、ステップS500において、抽出されたy座標データy(t,gy)の番号tを有する欠陥検出画素のx座標データx(t,gx)を抽出し、ステップS502において、抽出されたx座標データx(t,gx)のグループ番号gxを有する欠陥検出画素のx座標データx(t,gx)を抽出する。図8の例では、左上に集中している欠陥検出画素すべてのx座標データx(t,gx)が抽出されることになる。
【0110】
続いて、コントローラ60は、ステップS504において、ステップS502でx座標データx(t,gx)が抽出されているか否かを判断し、抽出されている場合には、その処理をステップS492に戻す。従って、図8の例では、左上に集中している欠陥検出画素すべてのx座標データおよびy座標データが、番号tとグループ番号g(=1)が付与されたデータに置き換えられる。
【0111】
コントローラ60は、こうした処理を繰り返し、ステップS504において「No」と判定した場合には、ステップS506において、上述した処理において抽出したx座標データx(t,gx)の全ての数(全抽出数)が設定数N(例えばN=5)以上であるか否かを判断し、設定数N以上であれば、ステップS508において、グループ番号gの値を「1」だけインクリメントしてその処理をステップS510に進める。一方、x座標データx(t,gx)の全抽出数が設定数N未満である場合(S506:No)には、ステップS508の処理をスキップしてステップS510に移行する。つまり、このステップS506,S508の処理は、欠陥検出画素の集合体が小さい場合には、欠陥として取り扱わずにグループ番号gを付与しないようにする処理である。
【0112】
コントローラ60は、ステップS510において、変数gx1の値が最大値gxmaxと等しくなったか否かを判断し、変数gx1の値が最大値gxmaxと等しくなければ、ステップS512において、変数gx1の値を「1」だけインクリメントして、その処理をステップS488に戻す。従って、変数gx1の値がグループ番号gxの最大値を表すgxmaxと等しくなるまで、ステップS488〜S512の処理が繰り返される。
【0113】
コントローラ60は、こうした処理を繰り返すことにより、グループ番号gxが付与されたx座標データ(t,gx)から、その番号tを有するy座標データy(t,gy)を抽出し、この抽出したy座標データy(t,gy)の番号tを有するx座標データ(t,gx)を抽出するという処理を繰り返し、それぞれ抽出された座標データに同一のグループ番号gを付与することで、撮影画面上においてx方向とy方向とに連続する欠陥検出画素を1つのグループとして扱えるようにする。図11は、このように付与されたグループ番号gを欠陥検出画素位置に表したものである。以下、グループ化された欠陥検出画素の集合を欠陥検出画素グループと呼ぶ。
【0114】
コントローラ60は、グループ番号の付与処理が完了すると(S510:Yes)、その処理をステップS600に進める。ステップS600〜S638の処理は、欠陥検出画素グループ毎に、その中心座標と欠陥基板判別用のパラメータ値を算出する処理である。
【0115】
コントローラ60は、ステップS600において、グループ番号gを「1」に設定する。続いて、ステップS602において、x座標x(t,g)での最小値、この場合、グループ番号gが1となる欠陥検出画素グループにおけるx座標の最小値を求め、その値を座標x(1)の値として設定する。続いて、ステップS604において、x座標x(t,g)での最大値、この場合、グループ番号gが1となる欠陥検出画素グループにおけるx座標の最大値を求め、その値を座標x(2)の値として設定する。続いて、ステップS606において、y座標y(t,g)での最小値、この場合、グループ番号gが1となる欠陥検出画素グループにおけるy座標の最小値を求め、その値を座標y(1)の値として設定する。続いて、ステップS608において、y座標x(t,g)での最大値、この場合、グループ番号gが1となる欠陥検出画素グループにおけるy座標の最大値を求め、その値を座標y(2)の値として設定する。
【0116】
続いて、ステップS610において、座標x(1)の値と座標x(2)の値との中間値(x(1)+x(2))/2を算出し、その値を、欠陥検出画素グループの中心におけるx座標xc(g,q)の値として設定する。続いて、ステップS612において、座標y(1)の値と座標y(2)の値との中間値(y(1)+y(2))/2を算出し、その値を、欠陥検出画素グループの中心におけるy座標yc(g,q)の値として設定する。
【0117】
こうして、欠陥検出画素グループの中心座標(xc、yc)が算出されると、コントローラ60は、ステップS614において、座標x(1)、座標x(2)、座標y(1)、座標y(2)で囲まれる領域、つまり、xy座標においてx=x(1)、x=x(2)、y=y(1)、y=y(2)となる直線で囲まれる領域の画素数(g)を計算する。画素数(g)は、{x(2)−x(1)+1}×{y(2)−y(1)+1}として求められる。この画素数(g)は、欠陥検出画素グループを最小面積の長方形で囲んだときの、長方形の画素数となる。欠陥検出画素グループの中心座標(xc、yc)は、視覚的に示すと図12に示すように、最小面積の長方形で囲まれる領域の中心(対角線が交差する点)となる。
【0118】
続いて、コントローラ60は、ステップS616において、欠陥検出画素グループを囲む長方形の平均輝度値Dave(g,q)を算出する。平均輝度値Dave(g,q)は、座標(x(t,g),y(t,g))に対応する輝度値D”(x,y,q)の積算値を、画素数(g)で除算することにより求める。つまり、欠陥検出画素グループ(初回は第1グループ)を構成する各画素の輝度値D”(x、y,q)の合計値を、最小面積の長方形で囲まれる領域の画素数(g)で除算することにより求める。
【0119】
続いて、コントローラ60は、ステップS618において、平均輝度値Dave(g,q)が閾値B以上であるか否かを判断し、平均輝度値Dave(g,q)が閾値B以上である場合には、ステップS620において形状判別データEs(g,q)の値を「0」に設定し、平均輝度値Dave(g,q)が閾値B未満である場合には、ステップS622において形状判別データEs(g,q)の値を「1」に設定する。この形状判別データEs(g,q)は、欠陥検出画素グループに対応する欠陥の形状が塊状であるか線状であるかを推定した結果を表すもので、Es(g,q)=0により欠陥が塊状であると推定されることを表し、Es(g,q)=1により欠陥が線状であると推定されることを表す。図12に示すように、ガラス基板OBに形成された欠陥が塊状(図12(a))である場合と、線状(図12(b))である場合とでは、平均輝度値Daveが大きく異なるため、ステップS618においては、平均輝度値Daveに基づいて欠陥が塊状であるか線状であるかを判定する。そして、平均輝度値Dave(g,q)が閾値B以上である場合(S618:Yes)には、欠陥検出画素グループに対応する欠陥が塊状であると判定して形状判別データEs(g,q)を「0」に設定し、平均輝度値Dave(g,q)が閾値B未満である場合(S618:No)には、欠陥検出画素グループに対応する欠陥が線状であると判定して形状判別データEs(g,q)を「1」に設定する。
【0120】
コントローラ60は、欠陥が塊状であると判定した場合(S618:Yes)には、ステップS624において、変数Anの値を「1」に設定する。続いて、ステップS626において、長方形領域において、欠陥検出画素グループの中心(xc(g,q),yc(g,q))からAn×45°方向のライン上にある欠陥検出画素の座標(x(t,g),y(t,g))を抽出する。例えば、初回であれば、図13に示す(1)の方向のライン上に存在する欠陥検出画素の座標(x(t,g),y(t,g))を抽出する。続いて、コントローラ60は、ステップS628において、抽出した座標(x(t,g),y(t、g))の数、つまり、An×45°方向のライン上にある欠陥検出画素の数を画素数(g)に設定する。続いて、ステップS630において、ライン上にある欠陥検出画素の平均輝度値DL(g,An)を算出する。平均輝度値DL(g,An)は、抽出した座標(x(t,g),y(t,g))に対応する輝度値D”(x、y,q)の積算値を、画素数(g)で除算することにより求める。
【0121】
続いて、コントローラ60は、ステップS632において、変数Anが8で有るか否かを判断する。変数Anが8でない場合は、ステップS634において、変数Anの値を「1」だけインクリメントして、その処理をステップS626に戻し、上述した処理を繰り返す。従って、図13に示すように、45°間隔となる8方向のライン上の欠陥検出画素の平均輝度値DL(g,An)が計算される。
【0122】
コントローラ60は、8方向の平均輝度値DLの計算が完了すると(S632:Yes)、ステップS636において、8方向の平均輝度値DL(g,An)の平均値である平均輝度値DLave(g,q)を算出する。この平均輝度値DLave(g,q)が、塊状の欠陥に対する平均輝度値を表すものとなる。一方、ステップS618において、欠陥が線状であると判定された場合は、これらのステップS624〜S636までの処理がスキップされる。
【0123】
続いて、コントローラ60は、ステップS638において、グループ番号gが最大値gmaxと等しいか否かを判断し、グループ番号gが最大値gmaxと等しくない場合(S638:no)には、ステップS640において、グループ番号gを「1」だけインクリメントして、その処理をステップS602に戻し、グループ番号gが最大値gmaxと等しくなるまで、上述した処理を繰り返す。これにより、全ての欠陥検出画素グループの中心座標(xc(g,q),yc(g,q))と、平均輝度値DLave(g,q)あるいは平均輝度値Dave(g,q)が算出される。
【0124】
続いて、コントローラ60は、ステップS642において、カメラ位置を指定する変数qが最大値qmaxに等しいか否かを判断し、変数qが最大値qmaxに等しくない場合(S642:No)には、ステップS644において、変数qを「1」だけインクリメントして、その処理をステップS404に戻し、変数qが最大位置qmaxに等しくなるまで、上述した処理を繰り返す。これにより、各カメラ位置で撮影した撮影画面ごとに、全ての欠陥検出画素グループの中心座標(xc(g,q),yc(g,q))と、平均輝度値DLave(g,q)あるいは平均輝度値Dave(g,q)が算出される。続いて、コントローラ60は、その処理をステップS700に進める。
【0125】
ステップS700〜S796の処理は、カメラ位置Cs(q)ごとに撮影された撮影画面の間で、欠陥検出画素グループの中心座標を比較し、中心座標の差が許容値内であるものは同一の欠陥であるとして共通のシリーズ番号sを付与する処理である。
【0126】
コントローラ60は、ステップS700において、グループ番号gおよび、変数q(カメラ位置を特定する値)の値を「1」に設定する。続いて、ステップS702において、シリーズ番号sを「1」に設定する。続いて、ステップS704において、形状判別データEs(g,q)の値が「0」に設定されているか否か、つまり、カメラ位置Cs(q)で撮影した撮影画面におけるグループ番号gの欠陥が塊状であるか否かを判断する。欠陥が塊状である場合には、その処理をステップS706に進め、欠陥が線状である場合には、その処理をステップS758に進める。ここでは、欠陥が塊状である場合から説明する。
【0127】
コントローラ60は、ステップS706において、平均輝度値DLave(s,g,q)を平均輝度値DLave(g,q)と同じ値に設定する。つまり、平均輝度値DLave(g,q)にシリーズ番号sを付与したデータを、新たに平均輝度値DLave(s,g,q)として設定する。続いて、ステップS708において、変数g1の値を「1」に設定する。続いて、ステップS710において、カメラ位置Cs(q)における撮影画面の欠陥検出画素グループgの中心位置のx座標xc(g,q)と、隣のカメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)との差(絶対値)を算出し、その差が予め設定した許容値C以下であるか否かを判断する。許容値C以下である場合(S710:Yes)には、続くステップS712において、ステップS710で比較した中心位置のy座標yc(g,q)とy座標yc(g1,q+1)との差(絶対値)を算出し、その差が予め設定した許容値C以下であるか否かを判断する。
【0128】
コントローラ60は、y座標においても、その差が許容値C以下である場合(S712:Yes)には、ステップS714において、平均輝度値DLave(g1,q+1)のデータが存在するか否かを判断する。平均輝度値DLave(g1,q+1)のデータが存在する場合(S714:Yes)には、ステップS716において、平均輝度値DLave(g1,q+1)のデータにシリーズ番号sが付与されているか否かを判断し、シリーズ番号sが付与されていない場合(S716:No)には、ステップS718において、平均輝度値DLave(s,g1,q+1)を平均輝度値DLave(g1,q+1)と同じ値に設定する。つまり、平均輝度値DLave(g1,q+1)にシリーズ番号sを付与したデータを、新たに平均輝度値DLave(s,g1,q+1)として設定する。これにより、隣り合う撮影画面間において中心位置が近接する欠陥検出画素グループには、平均輝度値を表すデータに共通のシリーズ番号sが付与される。尚、ステップS714の処理は、隣のカメラ位置Cs(q+1)の撮影画面において中心座標が接近する欠陥検出画素グループが線状の欠陥であると判定されている可能性があるため、接近する欠陥検出画素グループの欠陥が線状であると判定されている場合に処理対象から外す処理である。
【0129】
コントローラ60は、ステップS718において、平均輝度値を表すデータにシリーズ番号sを付与すると、その処理をステップS730に進めて、変数g1の値を「1」だけインクリメントする。尚、ステップS710またはS712において、隣り合う撮影画面間において欠陥検出画素グループの中心座標が近接していないと判断した場合、あるいは、ステップS714において、平均輝度値DLave(g1,q+1)のデータが存在しないと判断した場合においても、その処理をステップS730に進める。
【0130】
続いて、コントローラ60は、ステップS732において、カメラ位置Cs(q+1)における撮影画面の次の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)のデータが存在するか否かを判断する。コントローラ60は、x座標xc(g1,q+1)のデータが存在する場合(S732:Yes)には、その処理をステップS710に戻して上述した処理を行う。コントローラ60は、こうした処理を繰り返して、ステップS716において「Yes」、つまり、平均輝度値DLave(g1,q+1)のデータにシリーズ番号sがすでに付与されていると判定した場合には、その処理をステップS720に進める。
【0131】
カメラ21の撮影画面においては、被写界深度の境界近くにある欠陥(特に線状の欠陥)に対しては、本来1つのものが2つ以上に分離して検出されてしまう場合がある。つまり、カメラ位置を変更していくと、最初に複数で検出されていた欠陥が、被写界深度の中心に近づくにつれて1つになり、その後、被写界深度の中心から離れるにつれて複数に分離するようになる。そこで、ステップS720〜S728において、あるカメラ位置で1つとして検出された欠陥が、手前(qの小さい側)のカメラ位置で2つ以上の欠陥として検出されている場合に、2つ以上に検出された欠陥を1つの欠陥として計算し直す処理を行う。
【0132】
コントローラ60は、ステップS720において変数kの値を「0」に設定する。続いて、ステップS721において、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループgfの中心位置のx座標xc(gf,q−k)と、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)との差(絶対値)が許容値C以下となり、かつ、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループgfの中心位置のy座標yc(gf,q−k)と、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のy座標yc(g1,q+1)との差(絶対値)が許容値C以下となる欠陥検出画素グループgfの中心座標(xc(gf,q−k),yc(gf,q−k))を抽出する。つまり、カメラ位置Cs(q―k)における撮影画面において、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置に近い欠陥検出画素グループgfの中心座標を抽出する。尚、gfは、任意の値をとり得る。
【0133】
続いて、コントローラ60は、ステップS722において、抽出した中心座標(xc(gf,q−k),yc(gf,q−k))を有する欠陥検出画素グループgfに対応する輝度値D”(x,y,q−k)で平均輝度値DLave(gf,q―k)を再計算する。つまり、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループg1と中心位置が接近したカメラ位置Cs(q−k)における撮影画面の欠陥検出画素グループgfを1つの欠陥検出画素グループとして、それらを囲む最小面積の長方形の領域内における8方向のライン上の欠陥検出画素の輝度値D”(x,y,q−k)に基づいて、ステップS626〜S636の処理と同様に、平均輝度値DLave(gf,q―k)を再計算する。
【0134】
続いて、ステップS724において、平均輝度値DLave(s,gf,q−k)を平均輝度値DLave(gf,q―k)と同じ値に設定する。つまり、平均輝度値DLave(gf,q−k)にシリーズ番号sを付与したデータを、新たに平均輝度値DLave(s,gf,q−k)として設定する。続いて、ステップS726において、変数kの値を「1」だけインクリメントし、続くステップS728において、平均輝度値DLave(s,gf,q―k)のデータが存在するか否かを判断する。平均輝度値DLave(s,gf,q―k)のデータが存在する場合には、その処理をステップS721に戻し、存在しない場合には、その処理をステップS718に進める。
【0135】
コントローラ60は、ステップS732において、カメラ位置Cs(q+1)における撮影画面の次の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)のデータが存在しないと判断すると、その処理をステップS734に進める。ステップS734〜S738の処理は、あるカメラ位置で1つに判定された欠陥が、後方(qが大きい側)のカメラ位置で2つ以上の欠陥として判定されている場合に、2つ以上に判定された欠陥を1つの欠陥として計算し直す処理である。
【0136】
コントローラ60は、ステップS734において、平均輝度値DLave(s,g1,q+1)のデータの中に同一のシリーズ番号sが付与されているものが存在するか否かを判断する。存在していない場合(S734:No)は、後述のステップS736,S738をスキップしてステップS740の処理に移行する。一方、同一のシリーズ番号sが付与されているものが存在する場合(S734:Yes)は、ステップS736において、そのシリーズ番号sの付与された平均輝度値DLave(s,g1,q+1)の計算に用いた輝度D”(x,y,q+1)を使って、平均輝度値DLave(g1,q+1)を再計算する。つまり、同一のシリーズ番号sが付与された欠陥検出画素グループを1つの欠陥検出画素グループとして、それらを囲む最小面積の長方形の領域内における8方向のライン状の欠陥検出画素の輝度値D”(x,y,q+1)に基づいて、ステップS626〜S636の処理と同様に、平均輝度値DLave(g1,q+1)を再計算する。
【0137】
続いて、ステップS738において、平均輝度値DLave(s,g1,q+1)を平均輝度値DLave(g1,q+1)と同じ値に設定する。つまり、平均輝度値DLave(g1,q+1)にシリーズ番号sを付与したデータを、新たに平均輝度値DLave(s,g1,q+1)として設定する。コントローラ60は、続くステップS740において、グループ番号gの値を「1」だけインクリメントし、続くステップS742において、x座標xc(g,q)のデータが存在するか否かを判断する。存在している場合(S742:Yes)には、その処理を後述するステップS752に進め、存在していない場合(S742:No)には、ステップS744において、x座標xc(gmax,q)のデータが存在するか否かを判断する。x座標xc(gmax,q)のデータが存在する場合(S744:Yes)には、その処理をステップS740に戻して上述の処理を繰り返す。一方、x座標xc(gmax,q)のデータが存在しない場合(S744:No)には、ステップS746において、カメラ位置を表す変数qの値が最大値qmaxと等しいか否かを判断する。変数qの値が最大値qmaxに達していない場合(S746:No)には、ステップS748において、変数qの値を「1」だけインクリメントする。続いて、ステップS750においてグループ番号gを「1」に設定し、その処理をステップS752に進める。また、変数qの値が最大値qmaxに達している場合(S746:Yes)には、その処理を後述するステップS800(図7K)に進める。
【0138】
コントローラ60は、ステップS752において、平均輝度値DLave(g,q)のデータにシリーズ番号sが付与されているか否かを判断し、シリーズ番号sが付与されている(S752:Yes)場合には、ステップS756において、形状判別データEs(g,q)が「0」、つまり、欠陥形状が塊状であるか否かを判断する。形状判別データEs(g,q)が「0」の場合(S756:Yes)には、その処理をステップS708(図7G)に戻して上述した処理を繰り返す。一方、形状判別データEs(g,q)が「1」の場合(S756:No)には、その処理を後述するステップS760(図7I)に進める。また、ステップS752において、平均輝度値DLave(g,q)のデータにシリーズ番号sが付与されていないと判定した場合には、ステップS754において、シリーズ番号sを「1」だけインクリメントして、その処理をステップS704(図7G)に戻す。
【0139】
コントローラ60は、ステップS704において、形状判別データEs(g,q)が「1」、つまり、線状の欠陥であると判定した場合には、その処理をステップS758に進める。このステップS758からステップS796の処理は、上述したステップS706からステップS744の処理に対して、データ処理対象が線状の欠陥である点で相違し、基本的な処理は同一である。
【0140】
コントローラ60は、ステップS758において、平均輝度値Dave(s,g,q)を平均輝度値Dave(g,q)と同じ値に設定する。つまり、平均輝度値Dave(g,q)にシリーズ番号sを付与したデータを、新たに平均輝度値Dave(s,g,q)として設定する。続いて、ステップS760において、変数g1の値を「1」に設定する。続いて、ステップS762において、カメラ位置Cs(q)における撮影画面の欠陥検出画素グループgの中心位置のx座標xc(g,q)と、隣のカメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)との差(絶対値)を算出し、その差が予め設定した許容値D以下であるか否かを判断する。許容値D以下である場合(S762:Yes)には、続くステップS764において、ステップS762で比較した中心位置のy座標yc(g,q)とy座標xc(g1,q+1)との差(絶対値)を算出し、その差が予め設定した許容値D以下であるか否かを判断する。
【0141】
コントローラ60は、y座標においても、その差が許容値D以下である場合(S764:Yes)には、ステップS766において、平均輝度値Dave(g1,q+1)のデータにシリーズ番号sが付与されているか否かを判断し、シリーズ番号sが付与されていない場合(S766:No)には、ステップS768において、平均輝度値Dave(s,g1,q+1)を平均輝度値Dave(g1,q+1)と同じ値に設定する。つまり、平均輝度値Dave(g1,q+1)にシリーズ番号sを付与したデータを、新たに平均輝度値Dave(s,g1,q+1)として設定する。これにより、隣り合う撮影画面間において中心位置が近接する欠陥検出画素グループには、平均輝度値を表すデータに共通のシリーズ番号sが付与される。
【0142】
コントローラ60は、ステップS768において、平均輝度値を表すデータにシリーズ番号sを付与すると、その処理をステップS782に進めて、変数g1の値を「1」だけインクリメントする。尚、ステップS762またはS764において、隣り合う撮影画面間において欠陥検出画素グループの中心位置が近接しないと判断した場合においても、その処理をステップS782に進める。
【0143】
続いて、コントローラ60は、ステップS784において、カメラ位置Cs(q+1)における撮影画面の次の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)のデータが存在するか否かを判断する。コントローラ60は、x座標xc(g1,q+1)のデータが存在する場合(S784:Yes)には、その処理をステップS762に戻して上述した処理を行う。コントローラ60は、こうした処理を繰り返して、ステップS766において「Yes」、つまり、平均輝度値Dave(g1,q+1)のデータにシリーズ番号sがすでに付与されていると判定した場合には、その処理をステップS770に進める。
【0144】
コントローラ60は、ステップS770において変数kの値を「0」に設定する。続いて、ステップS772において、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループgfの中心位置のx座標xc(gf,q―k)と、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)との差(絶対値)が許容値D以下となり、かつ、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループgfの中心位置のy座標yc(gf,q−k)と、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のy座標yc(g1,q+1)との差(絶対値)が許容値D以下となる欠陥検出画素グループgfの中心座標(xc(gf,q−k),yc(gf,q−k))を抽出する。つまり、カメラ位置Cs(q―k)における撮影画面において、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置に近い欠陥検出画素グループgfの中心座標を抽出する。
【0145】
続いて、コントローラ60は、ステップS774において、抽出した中心座標(xc(gf,q−k),yc(gf,q−k))を有する欠陥検出画素グループgfに対応する輝度値D”(x,y,q−k)で平均輝度値Dave(gf,q―k)を再計算する。つまり、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループg1と中心位置が接近したカメラ位置Cs(q−k)における撮影画面の欠陥検出画素グループgfを1つの欠陥検出画素グループとして、それらを囲む最小面積の長方形の領域内における欠陥検出画素の輝度値D”(x,y,q−k)に基づいて、ステップS616の処理と同様に、平均輝度値Dave(gf,q―k)を再計算する。
【0146】
続いて、ステップS776において、平均輝度値Dave(s,gf,q−k)を平均輝度値Dave(gf,q―k)と同じ値に設定する。つまり、平均輝度値Dave(gf,q−k)にシリーズ番号sを付与したデータを、新たに平均輝度値Dave(s,gf,q−k)として設定する。続いて、ステップS778において、変数kの値を「1」だけインクリメントし、続くステップS780において、平均輝度値Dave(s,gf,q―k)のデータが存在するか否かを判断する。平均輝度値Dave(s,gf,q―k)のデータが存在する場合には、その処理をステップS772に戻し、存在しない場合には、その処理をステップS768に進める。
【0147】
コントローラ60は、ステップS784において、カメラ位置Cs(q+1)における撮影画面の次の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)のデータが存在しないと判断すると、その処理をステップS786に進める。
【0148】
コントローラ60は、ステップS786において、平均輝度値Dave(s,g1,q+1)のデータの中に同一のシリーズ番号sが付与されているものが存在するか否かを判断する。存在していない場合(S786:No)は、後述のステップS788,S790をスキップしてステップS792の処理に移行する。一方、同一のシリーズ番号sが付与されているものが存在する場合(S786:Yes)は、ステップS788において、そのシリーズ番号sの付与された平均輝度値Dave(s,g1,q+1)の計算に用いた輝度値D”(x,y,q+1)を使って、平均輝度値Dave(g1,q+1)を再計算する。つまり、同一のシリーズ番号sが付与された欠陥検出画素グループを1つの欠陥検出画素グループとして、それらを囲む最小面積の長方形の領域内における欠陥検出画素の輝度値D”(x,y,q+1)に基づいて、ステップS616の処理と同様に、平均輝度値Dave(g1,q+1)を再計算する。
【0149】
続いて、ステップS790において、平均輝度値Dave(s,g1,q+1)を平均輝度値Dave(g1,q+1)と同じ値に設定する。つまり、平均輝度値Dave(g1,q+1)にシリーズ番号sを付与したデータを、新たに平均輝度値Dave(s,g1,q+1)として設定する。コントローラ60は、続くステップS792において、グループ番号gの値を「1」だけインクリメントし、続くステップS794において、x座標xc(g,q)のデータが存在するか否かを判断する。存在している場合(S794:Yes)には、その処理をステップS752に進め、存在していない場合(S794:No)には、ステップS796において、x座標xc(gmax,q)のデータが存在するか否かを判断する。x座標xc(gmax,q)のデータが存在する場合(S796:Yes)には、その処理をステップS792に戻して上述の処理を繰り返す。一方、x座標xc(gmax,q)のデータが存在しない場合(S796:No)には、ステップS746において、カメラ位置を表す変数qの値が最大値qmaxと等しいか否かを判断する。変数qの値が最大値qmaxに達していない場合(S746:No)には、変数qの値が最大値qmaxに達するまで、上述した処理が繰り返される。
【0150】
こうした処理が全てのカメラ位置で繰り返されることにより、図14に示すように、各カメラ位置で撮影された撮影画面F間において、互いに中心座標が接近する欠陥検出画素グループごとに、共通するシリーズ番号sが平均輝度値データに付与される。こうして、1つの欠陥に対して1つのシリーズ番号sが付与される。従って、シリーズ番号sにより撮影された欠陥を特定することができ、平均輝度値データにより、その欠陥の各撮影画面における平均輝度値を把握することができる。
【0151】
コントローラ60は、ステップS746において、カメラ位置を表す変数qの値が最大値qmaxに達したと判断すると、その処理をステップS800(図7K)に進める。コントローラ60は、ステップS800において、シリーズ番号sを「1」に設定する。続いて、ステップS802において、平均輝度値DLave(s,g,q)のデータが3つ以上存在するか否かを判断する。つまり、3つ以上のカメラ位置(撮影画面)において、シリーズ番号sの塊状の欠陥検出画素グループが検出されているか否かを判断する。平均輝度値DLave(s,g,q)のデータが3つ以上存在する場合(S802:Yes)には、ステップS804において、最終的に決定した欠陥の種類を表すデータである欠陥種類(s)を塊状欠陥に設定する。続いて、ステップS806において、図15に示すように、カメラ位置Cs(q)に対する平均輝度値DLave(s,g,q)の変化曲線を作成する。この場合、カメラ位置Cs(q)は等間隔となるため、横軸を変数qとして変化曲線を作成すればよい。
【0152】
一方、ステップS802において、平均輝度値DLave(s,g,q)のデータが3つ以上存在しないと判定した場合には、ステップS808において、平均輝度値Dave(s,g,q)のデータが3つ以上存在するか否かを判断する。つまり、3つ以上のカメラ位置(撮影画面)において、シリーズ番号sの線状の欠陥検出画素グループが検出されているか否かを判断する。平均輝度値Dave(s,g,q)のデータが3つ以上存在する場合(S808:Yes)には、ステップS810において、欠陥種類(s)を線状欠陥に設定する。続いて、ステップS812において、図15に示すように、カメラ位置Cs(q)に対する平均輝度値Dave(s,g,q)の変化曲線を作成する。ステップS808において、平均輝度値DLave(s,g,q)のデータが3つ以上存在しないと判定した場合には、その欠陥検出画素グループを欠陥とは判定せず、その処理を後述するステップS824に進める。
【0153】
ステップS806、あるいは、ステップS812で変化曲線を作成すると、続いて、ステップS814において、変化曲線から平均輝度値がピーク(最大)となるピーク点に最も近いカメラ位置Cs(q)を求め、そのカメラ位置Cs(q)に対応するガラス基板OBにシリーズ番号sの欠陥があると判定し、その判定されたガラス基板OBのブロック内番号pを検出する。ガラス基板OBのブロック内番号pは、検査対象ブロック内におけるガラス基板OBの順番(1,2,3・・・)を表す。コントローラ60は、予め、ガラス基板OBのブロック内番号pと、平均輝度値がピークとなるカメラ位置Cs(q)との関係をメモリ60aに記憶している。つまり、検査対象ブロック内の各ガラス基板OBごとに欠陥により平均輝度値がピークとなるカメラ位置Cs(q)を記憶している。従って、変化曲線から平均輝度値のピーク点を求めることで、欠陥のあるガラス基板OBのブロック内番号pを特定することができる。
【0154】
続いて、コントローラ60は、ステップS816において、シリーズ番号sの欠陥があるガラス基板番号(s)を算出する。ガラス基板番号(s)は、治具11にセットされた複数ブロックのガラス基板OBの先頭(カメラ21側)から順に1,2,3・・と付けられる番号である。従って、検査対象ブロック番号をn、1ブロックを構成するガラス基板OBの枚数をBとすると、ガラス基板番号(s)は、次式により計算される。
ガラス基板番号(s)=(n−1)×B+p
【0155】
続いて、コントローラ60は、ステップS818において、変化曲線のピーク点に最も近いカメラ位置Cs(q)での欠陥検出画素グループの中心のx座標xc(g,q)をシリーズ番号sの欠陥の中心のx座標xc(s)として設定する。続いて、ステップS820において、変化曲線のピーク点に最も近いカメラ位置Cs(q)での欠陥検出画素グループの中心のy座標yc(g,q)をシリーズ番号sの欠陥の中心のy座標yc(s)として設定する。
【0156】
続いて、コントローラ60は、ステップS824において、表示装置62に、シリーズ番号sの欠陥の情報として、欠陥種類(s)、ガラス基板番号(s)、欠陥中心座標(xc(s),yc(s))を表示する。続いて、ステップS824において、シリーズ番号sを「1」だけインクリメントし、ステップS826において、シリーズ番号sが最大値smaxと等しいか否かを判断する。コントローラ60は、シリーズ番号sが最大値smaxに達していない場合(S826:No)には、その処理をステップS802に戻して上述した処理を繰り返す。
【0157】
コントローラ60は、シリーズ番号sが最大値smaxに達したと判断すると(S826:Yes)、ステップS828において、基板判別用画像データ処理サブルーチンを一旦終了して、その処理をメインルーチンのステップS146に進め、検査対象ブロックを次のブロックに変更して上述した処理を実行する。そして、全てのブロックに対して検査が完了すると(S146:Yes)、治具11をガラス基板OBの交換位置にまで移動し(S156)、光照射器50の光源51を消灯して(S158)、基板検査ルーチンを終了する(S160)。
【0158】
以上説明した検査装置1においては、治具11に複数のガラス基板OBを法線方向に並べてセットした状態で、複数のガラス基板OBの一部に対してライン状の光を照射し、このライン状の光が照射される設定枚数(複数)のガラス基板OBを検査対象ブロックとしている。そして、治具11を法線方向に移動させることにより、ライン状の光を照射する位置をガラス基板OBに対して相対的に法線方向に移動させて、検査対象ブロックを切り替える。カメラ21は、検査対象ブロック内の複数枚のガラス基板OBが被写界深度内(ピントの合う範囲内)に入るように、治具11との相対位置が法線方向に調整されてガラス基板OBを法線方向から撮影する。ガラス基板OBに欠陥が存在すると、光照射器50から照射された光が欠陥で散乱し、その散乱光が他のガラス基板OBを通過してカメラ21に入射する。従って、カメラ21は、検査対象ブロック内で被写界深度内に入る複数枚のガラス基板OBの欠陥(散乱光)を一度に撮影することができる。この場合、複数枚のガラス基板OBに存在する欠陥が、1つの撮影画面に散乱光(高輝度領域)として映し出される。
【0159】
基板検査ルーチンにおいては、最初に、ブロック単位にガラス基板OBの欠陥の有無を判定する簡易検査が行われる(S102〜S143)。簡易検査において、ガラス基板OBの欠陥が存在しないと判定された場合には、そのブロックのガラス基板OB全てに対して検査合格とし、ガラス基板OBに欠陥が存在すると判定された場合のみ(S136:Yes)、詳細検査である基板判別処理(S300)が行われ、欠陥が存在するガラス基板OB、欠陥の位置、欠陥の種類が検出される。
【0160】
簡易検査においては、検査対象ブロックに対して3つのカメラ位置にて撮影して得られた画像データを個々にデータ処理して欠陥の有無が判定される(S200)。本実施形態においては、検査ブロックの幅(ライン状の光の幅)がカメラ21の被写界深度と同程度かやや小さく設定されているため、検査対象ブロック内の全てのガラス基板OBを被写界深度内に入れることができる。このため、1つのカメラ位置での撮影で検査対象ブロック内の全てのガラス基板OBの欠陥の有無を判定できるが、欠陥検出精度を上げるためにカメラ位置を法線方向に3通りに切り替えて、各カメラ位置にて撮影する(S110,S142)。この場合、各カメラ位置ごとに照射光の強度を3段階に切り替えて撮影して(S124〜S134)、画像データ処理(S200)により高輝度となる画素の数をカウントする(S220〜S234)。高輝度となる画素が1つでも検出された場合には、3通りのカメラ位置での撮影が完了していなくても、その時点で、欠陥が存在するガラス基板OBを判別するために基板判別処理(S300)が開始される。そして、基板判別処理により欠陥が存在するガラス基板OBの基板番号、欠陥の位置、欠陥の種類が判定されて表示装置62に表示された後に(S822)、検査対象が自動的に次のブロックに切り替えられ(S146〜S152)、同様の処理が繰り返される。
【0161】
基板判別処理においては、高輝度となる画素の数である欠陥カウント値Conが最大となる光強度I(k)、つまり、欠陥検査に最適な光強度に設定されて(S304,S306)、カメラ21の撮影位置が細かく切り替えられる(S308〜S320)。そして、検査対象ブロック内で全てのカメラ位置において撮影が完了すると、画像データから輝度値D”(x,y,q)が閾値A以上となる欠陥検出画素が抽出され、その座標データに番号tが順番に付与される(S420〜S436)。次に、番号tを使って、x方向に連続する欠陥検出画素がグループ化されて座標データに同一のグループ番号gxが付与され(S438〜S461)、y方向に連続する欠陥検出画素がグループ化されて座標データに同一のグループ番号gyが付与される(S462〜S485)。そして、グループ番号gx,gyを使って、x方向とy方向とに連続する欠陥検出画素がグループ化されて座標データにグループ番号gが付与される(S486〜S512)。
【0162】
こうして欠陥検出画素がグループ化されると、その欠陥検出画素グループの中心座標と平均輝度値が計算され(S602〜S616)、平均輝度値が閾値B以上となるものについては欠陥形状が塊状と推定され、平均輝度値が閾値B未満となるものについては欠陥形状が線状と推定される(S620〜S624)。欠陥形状が塊状と推定された場合には、欠陥検出画素グループの中心座標から8方向に延びたライン上の欠陥検出画素の輝度の平均値が計算され、その値が平均輝度値として新たに設定される(S624〜S636)。この平均輝度値は、欠陥が存在するガラス基板OBを判別するためのパラメータ値となる。
【0163】
全てのカメラ位置での撮影画面において、欠陥検出画素のグループ化、中心座標と平均輝度値の計算が完了すると、次に、各撮影画面間において、欠陥の形状別に、欠陥検出画素グループの中心座標が比較される。そして、中心座標の差が許容値内であるものについては、同一のシリーズ番号sが平均輝度値に付与されるとともに、同一撮影画面において、同一シリーズ番号sが付与された欠陥検出画素グループを1つの欠陥検出画素グループとしてまとめた平均輝度値が計算される(S700〜S796)。
【0164】
このようにして、撮影画面上において複数に分離して検出された欠陥検出画素グループであっても、共通のシリーズ番号sが付与されたものについては、1つの欠陥としてみなされる。そして、形状判別データが塊状であって同一のシリーズ番号sが付与される欠陥検出画素グループが3つ以上の撮影画面に存在する場合には、欠陥種類が塊状欠陥として確定され(S802〜S804)、形状判別データが線状であって同一のシリーズ番号sが付与される欠陥検出画素グループが3つ以上の撮影画面に存在する場合には、欠陥種類が線状欠陥として決定される(S808〜S810)。その後、欠陥検出画素グループごとに、カメラ位置に対する平均輝度値の変化曲線が作成され、この変化曲線におけるピーク点から、欠陥のあるガラス基板番号、欠陥の中心座標が求められ、欠陥種類と合わせて表示器に表示される(S806,S812〜S814)。
【0165】
以上説明した本実施形態の検査装置1によれば、以下の効果を奏する。
1.カメラの被写界深度内に複数のガラス基板OBを並べて配置し、ガラス基板OBの欠陥からの散乱光を、ガラス基板OBを透過させて撮影し、撮影して得た画像データから欠陥の有無を判定するため、短時間にて多数枚のガラス基板の検査を行うことができる。欠陥が存在しないと判定した場合には、撮影したガラス基板OB全てを検査合格にすることができるため、特に、ガラス基板OBの欠陥発生率が低い場合には、非常に有効なものとなる。
2.治具11にセットしたガラス基板OBを複数のブロックに分け、検査対象ブロックを自動的に切り替えるため、一度に治具11にセットできるガラス基板OBの枚数を多くすることができる。このため、ガラス基板のセット時間(取り付け、取り外し時間)を短縮することができ、効率よく多数枚のガラス基板の検査を行うことができる。
【0166】
3.検査対象ブロックのみに光を照射して検査するため、他のブロックのガラス基板OBから散乱光がカメラに入射しない。これにより、画像データにノイズがのりにくく、ガラス基板の欠陥を精度良く検査することができる。
4.ブロック内に欠陥が存在するガラス基板OBがあると判定された場合は、そのまま検査対象ブロックの詳細検査が開始されて、欠陥が存在するガラス基板OB、および、欠陥の位置を特定するため、全てのガラス基板OBを個々に検査できるだけでなく、全てのブロックの検査が終了するまで、ガラス基板OBを治具11から取り外す必要が無く、検査作業の省力化を図ることができる。
【0167】
5.簡易検査においても、3つのカメラ位置で撮影するため欠陥検出精度が高く、また、途中で欠陥が検出された場合には、全てのカメラ位置での撮影が完了していなくても詳細検査に移行するため、検査時間を短縮することができる。
6.簡易検査時においてブロックごとに複数通りの光強度でカメラ撮影し、最も欠陥カウント値(ガラス基板に欠陥が存在していると推定される画素の数)が多かった光強度にて詳細検査を行うようにしているため、詳細検査においては検査対象ブロックごとに適正な光強度が設定され、欠陥が存在するガラス基板OBの判別精度を向上させることができる。
【0168】
7.詳細検査においては、欠陥検出画素グループごとに欠陥が存在するガラス基板OBを判別するためのパラメータ値を算出し、カメラ位置の変化に対するパラメータ値の変化曲線(変化特性)のピーク値に基づいて欠陥が存在するガラス基板OBを判別するため、その判別を良好に行うことができる。特に、パラメータ値として、欠陥の種類に応じた計算式で求めた平均輝度値を用いているため、欠陥が存在するガラス基板OBの判別を精度良く行うことができる。
8.詳細検査においては、撮影画面間において欠陥検出画素グループの中心位置が接近するものに対しては共通するシリーズ番号を付与するため、カメラ位置によっては複数に分離して撮影される欠陥に対しても1つの欠陥として捉えることができる。このため、ガラス基板OBを判別するためのパラメータ値となる平均輝度値が適正となり、欠陥が存在するガラス基板OBの判別精度をさらに向上させることができる。
【0169】
9.検査対象ブロックの切り替えは治具ステージ12の移動により行い、各検査対象ブロックに対する撮影位置の切り替えはカメラステージ22の移動により行うため、光照射器50を移動する必要がなく、検査装置1の制御システムがシンプルになる。
10.欠陥の種類を判別して表示装置62に表示するため、欠陥の生じた原因を究明しやすい。
【0170】
以上、本発明の実施形態について説明したが、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変形も可能である。
【0171】
例えば、本実施形態においては、検査対象ブロックのガラス基板OBに対して、基板面に平行となる方向からライン状の光を照射したが、図16に示す変形例としての透光性基板検査装置1’のように、基板面に対して法線方向から光を照射するようにしてもよい。この変形例では、光源51から出射した光をコリメートレンズ54により平行光にし、その平行光をハーフミラー55により法線方向に反射させてガラス基板OBに法線方向から照射する。カメラ21は、ガラス基板OBを法線方向からハーフミラー55を介して撮影する。この場合、カメラ21の被写界深度の範囲が検査対象ブロックとなる。従って、治具11とカメラ21との法線方向の相対位置を切り替えることにより検査対象ブロックを切り替えることができる。例えば、被写界深度の値が、治具11にセットされるガラス基板OBの所定枚数N分の距離に相当すれば、1つのブロックをN枚のガラス基板OBに設定する。
【0172】
この変形例では、検査対象ブロックの切り替えとカメラ位置の切り替えを、治具ステージ12を法線方向に駆動することにより行う。従って、実施形態に比べてカメラ21を法線方向に移動させる構成(カメラ移動モータ24、カメラ移動位置検出回路33、カメラ移動モータ制御回路34)を省略することができる。尚、検査対象ブロックの切り替えとカメラ位置の切り替えを、治具ステージ12を駆動して行わずに、カメラステージ22を駆動して行うようにしてもよい。この場合は、実施形態に比べて治具11を法線方向に移動させる構成(治具移動モータ14、治具移動位置検出回路31、治具移動モータ制御回路32)を省略することができる。
【0173】
この変形例においても、ガラス基板OBに欠陥が存在する場合には、欠陥位置に対応する撮影画面上の画素の輝度値が正常位置(欠陥のない位置)における画素の輝度値と大きく相違するため、輝度値と関連する値をパラメータとして用いることにより、欠陥が存在するガラス基板OBを判別することができる。
【0174】
この変形例によれば、検査装置1’のシステム構成を簡易にすることができ低コスト化を図ることができる。また、光をガラス基板OBに対して法線方向から照射するため、ガラス基板OBの縁部における散乱光の発生が抑制される。従って、ガラス基板OBの縁部付近に存在する欠陥の検出精度を高くすることができる。
【0175】
また、他の例として、ガラス基板OBに対して法線方向から光を照射するにあたって、カメラ21とは反対側から(ガラス基板OBを挟んでカメラ21とは反対側から、つまり、図1の右側から)光を照射し、ガラス基板OBを透過した光をカメラ21で撮影するようにしてもよい。この場合には、カメラ撮影で得られた画像データにおいて、輝度値が予め設定した閾値未満となる画素を欠陥検出画素として処理すればよい。
【0176】
また、他の例として、本実施形態においては、表示装置62に欠陥が存在するガラス基板番号、欠陥の位置、欠陥の種類を表示するが、他の検査情報も合わせて表示するようにしてもよい。例えば、平均輝度値がピークとなる撮影画面(カメラ位置)における座標x(t,g),y(t,g)を用いて、欠陥の形状を表示装置62に表示するようにしてもよい。また、輝度値D”(x,y,q)、座標x(t,g),y(t,g)を用いて、明暗を付けて欠陥の形状を表示するようにしてもよい。また、輝度値D”(x,y,q)、座標x(t,g),y(t,g)を用いて、欠陥の面積、輝度値の勾配といった各種の評価値を算出して表示してもよい。輝度値の勾配は、欠陥の立体的な形状(凸状あるいは凹状)を推定するのに役立てることができる。
【0177】
また、本実施形態においては、検査対象ブロックを変更する場合に、ガラス基板OBをセットした治具11を移動させるようにしたが、治具11を固定してカメラ21を移動させるようにしてもよい。この場合、光源51およびスリット板53も、カメラ21との相対位置関係が変化しないように移動させる。また、本実施形態においては、欠陥が存在するガラス基板OBを判別する場合に、カメラ21を移動させるようにしたが、カメラ21を固定して治具11を移動させるようにしてもよい。この場合、光源51およびスリット板53も、治具11との相対位置関係が変化しないように移動させる。
【0178】
また、本実施形態においては、ブロックごとに光強度を複数通りに変化させて最適な光強度を求めているが、光強度を変化させない構成であってもよい。また、本実施形態においては、ガラス基板OBを検査対象物としているが、ガラス基板OBに限らず透光性を有する基板であれば検査対象となる。
【0179】
また、本実施形態においては、検査対象ブロック内のガラス基板に存在する欠陥を検出する場合(簡易検査)に、3通りのカメラ位置にて撮影しているが、1つのカメラ位置(被写界深度内に検査対象ブロックの全てのガラス基板OBが入る位置)で撮影して得た画像データに基づいて、検査対象ブロック内のガラス基板に欠陥が存在するか否かを判定するようにしてもよい。
【符号の説明】
【0180】
1,1’…透光性基板検査装置、10…治具移動機構、11…治具、12…治具ステージ、14…治具移動モータ、20…カメラ移動機構、21…カメラ、22…カメラステージ、24…カメラ移動モータ、31…治具移動位置検出回路、32…治具移動モータ制御回路、33…カメラ移動位置検出回路、34…カメラ移動モータ制御回路、40…ステージ基台、50…光照射器、51…光源、52…照射光源駆動回路、53…スリット板、53a…スリット開口、60…コントローラ、60a…メモリ、61…入力装置、62…表示装置、G1…塊状欠陥、G2…線状欠陥、OB…ガラス基板、H…被写界深度、F…撮影画面。
【技術分野】
【0001】
本発明は、ガラス基板等の透光性基板の欠陥をカメラ撮影により検出する検査装置に関する。
【背景技術】
【0002】
従来から、ガラス基板等の透光性基板に、基板面の法線方向に対して直角な方向から光りを照射し、基板面の法線方向からカメラにより撮影を行って、撮影画像データを処理することにより透光性基板の表面に欠陥(キズや異物付着)が存在するか否かを検査する検査装置が知られている。このような検査装置としては、例えば、特許文献1に提案されている。この検査装置では、検査対象となる1枚の透光性基板にシート状のレーザ光を照射し、基板の表面に形成された欠陥からの散乱光や反射光を、カメラにより光点として撮影することで欠陥を検出している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−274173号公報
【発明の概要】
【0004】
しかしながら、従来の検査装置は、基板を1枚ずつ検査しているため、多数枚の基板を検査するのに時間がかかり検査効率が悪いという問題がある。
【0005】
本発明は、上記問題に対処するためになされたもので、多数枚の透光性基板を短時間で検査できるようにすることを目的とする。
【0006】
上記目的を達成するために、本発明の特徴は、複数の透光性基板(OB)を、その基板面の法線方向に沿って所定間隔に平行に並べてセットする治具(11)と、前記治具にセットされた複数の透光性基板に対して光を照射する光照射器(50)と、被写界深度が前記所定間隔よりも広く、前記光照射器により光が照射されている前記透光性基板を前記法線方向から撮影し、撮影により得られた画像データを出力するカメラ(21)と、前記治具と前記カメラとの相対位置が前記法線方向に変化するように前記治具あるいは前記カメラを移動させることにより、前記治具にセットされた複数の透光性基板における前記カメラの被写界深度内に入る範囲を前記法線方向に変化させる移動手段(10,20)と、前記治具にセットされた透光性基板のうち前記カメラの被写界深度内に入る複数の透光性基板を1つの検査対象ブロックとして、前記検査対象ブロックを順次切り替えるように前記移動手段を制御するとともに、前記検査対象ブロックを切り替えるたびに前記カメラの出力する画像データを取得する撮影制御手段(60,S104,S126,S128,S152)と、前記撮影制御手段により取得された画像データに基づいて、前記検査対象ブロックごとに、検査対象ブロック内の透光性基板に存在する欠陥を検出する欠陥検出手段(60,S200,S136)とを備えたことにある。
【0007】
本発明においては、複数の透光性基板が基板面の法線方向に沿って所定間隔に平行に並ぶように治具にセット(保持)される。この複数の透光性基板は、光照射器から光が照射された状態で基板の法線方向からカメラにより撮影される。カメラは、被写界深度が透光性基板の配置間隔よりも広く設定されているため、複数の透光性基板を被写界深度内(ピントが合う範囲)に入れることができる。従って、複数の透光性基板の欠陥を1つの撮影画面内に重ねて映し出すことができる。そこで、本発明においては、カメラの被写界深度内に入る複数の透光性基板を1つの検査対象ブロックとしている。
【0008】
撮影制御手段は、治具にセットされた透光性基板のうちカメラの被写界深度内に入る複数の透光性基板を1つの検査対象ブロックとして、検査対象ブロックを順次切り替えるように移動手段を制御するとともに、検査対象ブロックを切り替えるたびに前記カメラの出力する画像データを取得する。例えば、治具にセットされた複数の透光性基板を、カメラの被写界深度内に入る枚数分の透光性基板を1つのブロックとして複数ブロックに分割し、移動手段を制御してカメラと治具との相対位置を変化させて検査対象ブロックを順次切り替えるとともに、検査対象ブロックを切り替えるたびにカメラの出力する画像データを取得する。従って、撮影制御手段が取得する画像データは、検査対象ブロック内の複数の透光性基板に欠陥が存在する場合、その欠陥を重ねて映し出した撮影画像のデータとなる。
【0009】
欠陥検出手段は、撮影制御手段により取得された画像データに基づいて、検査対象ブロックごとに、検査対象ブロック内の透光性基板に存在する欠陥を検出する。つまり、複数枚の透光性基板を透視撮影して得た画像データを使って、検査対象ブロックごとに欠陥が存在する透光性基板があるか否かを判定する。このため、多数枚の透光性基板をブロック単位で短時間にて検査することができる。ブロック単位の検査で欠陥が検出されない場合には、その検査対象ブロック内の透光性基板の全てを検査合格にすることができるため、特に、透光性基板の欠陥発生率が低い場合には、非常に有効なものとなる。また、複数ブロックの透光性基板を治具にセットした状態で、検査対象ブロックを切り替えるため、一度に多数枚の透光性基板を治具にセットしておくことができ、透光性基板のセット時間(取り付け、取り外し時間)を短縮することができる。この結果、検査効率を向上させることができる。
【0010】
本発明の他の特徴は、前記光照射器は、前記治具にセットされた複数の透光性基板のうち前記検査対象ブロック内の透光性基板に対して、前記法線方向の直角方向から光を照射することにある。
【0011】
本発明によれば、検査対象ブロック内の透光性基板のみに対して光を照射するため、検査対象とならない透光性基板から散乱光等がカメラに入射しない。従って、画像データにノイズがのりにくく、透光性基板の欠陥を精度良く検出することができる。
【0012】
本発明の他の特徴は、前記撮影制御手段は、前記カメラと前記光照射器との相対位置関係を保ったまま、前記治具を前記カメラに対して前記法線方向に移動させることにより、前記検査対象ブロックを切り替えるとともに前記切り替えられた検査対象ブロック内の透光性基板に光が照射されるようにしたことにある。
【0013】
本発明によれば、治具を法線方向に移動させるだけで、次の検査対象ブロックの透光性基板がカメラの被写界深度内に入り、かつ、そのブロックの透光性基板に光が照射されるようになる。従って、光照射器を移動する必要がなく、検査装置の制御システムをシンプルにすることができる。
【0014】
本発明の他の特徴は、前記欠陥検出手段により前記検査対象ブロック内の透光性基板に存在する欠陥が検出された場合、前記検査対象ブロック内の透光性基板から、前記欠陥が存在する透光性基板を判別する欠陥基板判別手段(S300)を備えたことにある。
【0015】
本発明によれば、欠陥検出手段により検査対象ブロック内の透光性基板に存在する欠陥が検出された場合、欠陥基板判別手段が、検査対象ブロック内の透光性基板から欠陥が存在する透光性基板を判別する。従って、治具にセットされた全ての透光性基板に対して、個々に欠陥の有無を検査することができる。また、検査対象ブロックにおいて欠陥が検出された場合にのみ、その検査対象ブロック内における複数の透光性基板から欠陥が存在する透光性基板を判別すればよいため、多数枚の透光性基板の検査を短時間にて実施することができる。
【0016】
本発明の他の特徴は、前記欠陥基板判別手段(S300)は、前記移動手段(20)を制御して、前記欠陥が検出された検査対象ブロックに対して前記カメラが撮影する位置を前記法線方向に複数通りに切り替えるブロック内撮影位置切替手段(S308,S322)と、前記各撮影位置において前記カメラが出力した画像データを取得し、取得した画像データに基づいて前記欠陥が存在する透光性基板を判別する基板判別用画像データ処理手段(S316,S318,S400)とを備えたことにある。
【0017】
本発明においては、ブロック内撮影位置切替手段が、移動手段を制御して欠陥が検出された検査対象ブロックに対してカメラが撮影する位置を法線方向に複数通りに切り替える。そして、基板判別用画像データ処理手段が、各撮影位置においてカメラが出力した画像データを取得し、取得した画像データに基づいて欠陥が存在する透光性基板を判別する。例えば、撮影位置の変化に対する画像データの変化特性を捉えることで、検査対象ブロック内における複数の透光性基板から欠陥が存在する透光性基板を判別する。これにより、欠陥が存在する透光性基板を精度よく判別できる。
【0018】
本発明の他の特徴は、前記ブロック内撮影位置切替手段は、前記治具と前記光照射器との相対位置関係を保ったまま、前記カメラを前記治具に対して前記法線方向に移動させることにより、前記カメラが撮影する位置を切り替えることにある。
【0019】
本発明によれば、カメラを法線方向に移動させるだけで、欠陥が検出された検査対象ブロック内の透光性基板に光が照射された状態で、カメラの撮影位置を切り替えることができる。従って、光照射器を移動する必要がなく、検査装置の制御システムをシンプルにすることができる。
【0020】
本発明の他の特徴は、前記カメラが出力する画像データは、前記カメラの撮像素子を構成する画素の撮影画面上における座標位置と輝度値を表すデータであり、前記基板判別用画像データ処理手段は、前記輝度値が基準値以上となる高輝度画素の集合体の輝度値と関連する値を、前記欠陥が存在する透光性基板を判別するためのパラメータ値として算出するパラメータ値算出手段(S600〜S640,S718,S724,S738,S768,S776,S790)を備え、前記カメラの撮影位置の変化に対する、前記パラメータ値算出手段により算出された前記パラメータ値の変化特性に基づいて前記欠陥が存在する透光性基板を判別する(S806,S812,S814〜S816)ことにある。
【0021】
本発明においては、基板判別用画像データ処理手段は、パラメータ値算出手段を備えており、このパラメータ値算出手段が、輝度値が基準値以上となる高輝度画素の集合体の輝度値と関連する値を、欠陥が存在する透光性基板を判別するためのパラメータ値として算出する。基板判別用画像データ処理手段は、カメラの撮影位置の変化に対するパラメータ値の変化特性を作成し、このパラメータ値の変化特性に基づいて欠陥が存在する透光性基板を判別する。欠陥が生じている部分においては、欠陥が生じていない部分に比べて、撮影画面における輝度値が大きく異なる。従って、輝度値と関連する値をパラメータ値とすることで、欠陥が存在する透光性基板を精度良く判別することができる。例えば、パラメータ値がピーク(極大、極小)となるカメラの撮影位置を求めることで、この撮影位置から欠陥が存在する透光性基板を特定することができる。
【0022】
本発明の他の特徴は、前記パラメータ値算出手段は、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域内における高輝度画素の輝度値の合計と、前記四角形の画素数との比を前記パラメータ値として算出する(S600〜S616,S768,S776,S790)ことにある。
【0023】
本発明によれば、透光性基板に存在する欠陥が線状である場合に適したパラメータ値を算出することができる。
【0024】
本発明の他の特徴は、前記パラメータ値算出手段は、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域の中心から等角度間隔で放射方向に延びた複数のライン上の高輝度画素の輝度値の合計値と、前記各ライン上の高輝度画素の画素数との比をパラメータ値として算出する(S600〜S640,S718,S724,S738)ことにある。
【0025】
本発明によれば、透光性基板に存在する欠陥が塊状である場合に適したパラメータ値を算出することができる。
【0026】
本発明の他の特徴は、前記基板判別用画像データ処理手段は、前記取得した画像データに基づいて前記透光性基板に存在する欠陥の形状が線状であるか塊状であるかを判定する欠陥形状判定手段(S618〜S622)を備え、前記パラメータ値算出手段は、前記透光性基板に存在する欠陥の形状が線状であると判定された場合には、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域内における高輝度画素の輝度値の合計と、前記四角形の画素数との比を前記パラメータ値として算出し、前記透光性基板に存在する欠陥の形状が塊状であると判定された場合には、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域の中心から等角度間隔で放射方向に延びた複数のライン上の高輝度画素の輝度値の合計値と、前記各ライン上の高輝度画素の画素数との比をパラメータ値として算出することにある。
【0027】
本発明によれば、欠陥形状判定手段が、透光性基板に存在する欠陥の形状が線状であるか塊状であるかを判定し、パラメータ値算出手段が、欠陥の形状に適したパラメータ値を算出するため、欠陥が存在する透光性基板の判別精度をさらに向上させることができる。
【0028】
尚、上記説明において、括弧内に示した符号は、発明の理解を助けるものであり、発明の各構成要件を前記符号によって規定される実施形態に限定させるものではない。
【図面の簡単な説明】
【0029】
【図1】実施形態に係る透光性基板検査装置のシステム構成図である。
【図2】透光性基板のブロックおよび被写界深度の位置変化を表す説明図である。
【図3】画像データから作成した撮影画像を表す図である。
【図4A】基板検査ルーチン(メインルーチン)を表すフローチャートである。
【図4B】基板検査ルーチン(メインルーチン)を表すフローチャートである。
【図5】欠陥判定用画像データ処理ルーチンを表すフローチャートである。
【図6】基板判別ルーチンを表すフローチャートである。
【図7A】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7B】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7C】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7D】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7E】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7F】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7G】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7H】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7I】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7J】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図7K】基板判別用画像データ処理ルーチンを表すフローチャートである。
【図8】欠陥検出画素に番号tを付与する処理を説明する説明図である。
【図9】欠陥検出画素にグループ番号gxを付与する処理を説明する説明図である。
【図10】欠陥検出画素にグループ番号gyを付与する処理を説明する説明図である。
【図11】欠陥検出画素にグループ番号gを付与する処理を説明する説明図である。
【図12】画像データから欠陥の中心座標を算出する処理を説明する説明図である。
【図13】画像データから欠陥のパラメータ値を算出する際に選択するラインを説明する説明図である。
【図14】カメラ位置毎の画像における欠陥を同一欠陥ごとにグループ化する処理を説明する説明図である。
【図15】カメラ位置に対するパラメータ値の変化を表すグラフである。
【図16】変形例に係る透光性基板検査装置のシステム構成図である。
【発明を実施するための形態】
【0030】
以下、本発明の一実施形態について図面を用いて説明する。図1は、実施形態に係る透光性基板検査装置1の概略システム構成図である。この透光性基板検査装置1(以下、単に検査装置1と呼ぶ)は、透光性のガラス基板OBを検査対象物とし、ガラス基板OBにキズが形成されている、あるいは、異物が付着しているといった欠陥を検出するものである。本実施形態のガラス基板OBは、平面視で長方形の平板である。
【0031】
検査装置1は、複数のガラス基板OBをセット(保持)する治具11と、治具11を固定する治具ステージ12と、治具ステージ12をガラス基板OBの法線方向(ガラス基板OBの板面と直交する方向:以下、単に法線方向と呼ぶ)に移動させる治具移動機構10と、治具11にセットされたガラス基板OBを撮影するカメラ21と、カメラ21を固定するカメラステージ22と、カメラステージ22を法線方向に移動させるカメラ移動機構20と、ガラス基板OBに対して光を照射する光照射器50と、検査処理を実行するコントローラ60とを備えている。
【0032】
治具11は、複数のガラス基板OBを、板面が互いに向かい合うように、法線方向に沿って等間隔、かつ、平行になるように並べて保持するものである。この治具11は、複数のガラス基板OBをセットした状態で治具ステージ12に固定される。治具移動機構10は、法線方向に中心軸が向けられたスクリューロッド13と、スクリューロッド13を回転させるモータ14(以下、治具移動モータ14と呼ぶ)とを備えている。スクリューロッド13は、一端がステージ基台40に立設された支持壁41に回転可能に支持され、他端が治具移動モータ14の出力軸に連結される。治具移動モータ14は、ステージ基台40と一体的に形成されたモータ台(図示略)に固定されている。治具ステージ12には、その内部にスクリューロッド13と螺合するナット(図示略)が形成されている。治具ステージ12は、スクリューロッド13の軸線方向への移動が許容され、かつ、スクリューロッド13の軸線回りの回転が不能となるようにステージ基台40上に配置される。従って、治具移動機構10は、治具移動モータ14によりスクリューロッド13を回転させ、このスクリューロッド13の回転により治具ステージ12を法線方向に移動させるねじ送り機構を構成したものである。
【0033】
カメラ移動機構20は、法線方向に中心軸が向けられたスクリューロッド23と、スクリューロッド23を回転させるモータ24(以下、カメラ移動モータ24と呼ぶ)とを備えている。スクリューロッド23は、一端がステージ基台40に立設された支持壁42に回転可能に支持され、他端がカメラ移動モータ24の出力軸に連結される。カメラ移動モータ24は、ステージ基台40と一体的に形成されたモータ台(図示略)に固定されている。カメラ21は、カメラステージ22に固定される。カメラステージ22には、その内部にスクリューロッド23と螺合するナット(図示略)が形成されている。カメラステージ22は、スクリューロッド23の軸線方向への移動が許容され、かつ、スクリューロッド23の軸線回りの回転が不能となるようにステージ基台40上に配置される。従って、カメラ移動機構20は、カメラ移動モータ24によりスクリューロッド23を回転させ、このスクリューロッド23の回転によりカメラステージ22を法線方向に移動させるねじ送り機構を構成したものである。また、カメラステージ22および支持壁42には、治具移動機構10のスクリューロッド13が非接触で貫通する貫通孔が形成されている。
【0034】
尚、本実施形態における治具移動機構10およびカメラ移動機構20が本発明の移動手段に相当するが、何れか一方の移動機構10,20だけを動作させれば、カメラ21と治具11との法線方向の相対位置を変化させることができるため、移動手段としては必ずしも両方の移動機構10,20を備える必要はない。
【0035】
治具移動モータ14内には、同モータ14が所定角度回転するたびに回転検出用パルス信号を出力するエンコーダ14aが組み込まれている。エンコーダ14aから出力される回転検出用パルス信号は、治具移動位置検出回路31に出力される。回転検出用パルス信号は、治具移動モータ14の回転方向を識別するために互いにπ/2だけ位相のずれたA相信号とB相信号とで構成される。治具移動位置検出回路31は、エンコーダ14aから出力される回転検出用パルス信号のパルス数を治具移動モータ14の回転方向に応じてカウントアップ又はカウントダウンし、そのカウント値から治具ステージ12の法線方向の移動位置(以下、治具位置と呼ぶ)を検出し、治具位置を表したデジタルデータをコントローラ60と治具移動モータ制御回路32に出力する。
【0036】
治具移動位置検出回路31におけるカウント値の初期値は、電源投入時にコントローラ60の指示によって設定される。すなわち、コントローラ60は、電源投入時に、治具移動モータ制御回路32に治具ステージ12の原点位置への移動、および、治具移動位置検出回路31に初期設定を指示する。この指示により、治具移動モータ制御回路32は、治具移動モータ14を回転させて治具ステージ12を原点位置に移動させる。この原点位置は、治具移動モータ14によって駆動される治具ステージ12の駆動限界位置である。治具移動位置検出回路31は、この治具ステージ12の移動中、エンコーダ14aからの回転検出用パルス信号を入力し続けている。そして、治具ステージ12が原点位置まで達して治具移動モータ14の回転が停止すると、治具移動位置検出回路31はエンコーダ14aからの回転検出用パルス信号の入力停止を検出して、カウント値を「0」にリセットする。このとき、治具移動位置検出回路31は、治具移動モータ制御回路32に出力停止のための信号を出力し、これにより、治具移動モータ制御回路32は治具移動モータ14への駆動信号の出力を停止する。その後、治具移動モータ14が駆動された際には、治具移動位置検出回路31は、回転検出用パルス信号のパルス数を治具移動モータ14の回転方向に応じてカウントアップまたはカウントダウンし、そのカウント値に基づいて治具位置を計算し、治具位置を表したデジタルデータを治具移動モータ制御回路32およびコントローラ60に出力し続ける。
【0037】
治具移動モータ制御回路32は、コントローラ60の指示により、治具移動モータ14を駆動制御して、治具ステージ12を法線方向へ移動させる。具体的には、治具移動モータ制御回路32は、コントローラ60によって指定される治具位置への移動が指示されたときに、治具移動位置検出回路31によって検出される治具位置を用いて治具移動モータ14の回転を制御し、検出される治具位置がコントローラ60から指定された治具位置に等しくなるまで治具移動モータ14を回転させる。
【0038】
カメラ移動モータ24内にも、カメラ移動モータ24の回転を検出して、前記エンコーダ14aと同様な回転検出用パルス信号を出力するエンコーダ24aが組み込まれている。エンコーダ24aから出力される回転検出用パルス信号は、カメラ移動位置検出回路33に出力される。カメラ移動位置検出回路33は、エンコーダ24aから出力される回転検出用パルス信号のパルス数をカメラ移動モータ24の回転方向に応じてカウントアップ又はカウントダウンし、そのカウント値からカメラステージ22の法線方向の移動位置(以下、カメラ位置と呼ぶ)を検出し、カメラ位置を表したデジタルデータをコントローラ60とカメラ移動モータ制御回路34に出力する。
【0039】
カメラ移動位置検出回路33におけるカウント値の初期値は、電源投入時にコントローラ60の指示によって設定される。すなわち、コントローラ60は、電源投入時に、カメラ移動モータ制御回路34にカメラステージ22の原点位置への移動、および、カメラ移動位置検出回路33に初期設定を指示する。この指示により、カメラ移動モータ制御回路34は、カメラ移動モータ24を回転させてカメラステージ22を原点位置に移動させる。この原点位置は、カメラ移動モータ24によって駆動されるカメラステージ22の駆動限界位置である。カメラ移動位置検出回路33は、このカメラステージ22の移動中、エンコーダ24aからの回転検出用パルス信号を入力し続けている。そして、カメラステージ22が原点位置まで達してカメラ移動モータ24の回転が停止すると、カメラ移動位置検出回路33はエンコーダ24aからの回転検出用パルス信号の入力停止を検出して、カウント値を「0」にリセットする。このとき、カメラ移動位置検出回路33は、カメラ移動モータ制御回路34に出力停止のための信号を出力し、これにより、カメラ移動モータ制御回路34はカメラ移動モータ24への駆動信号の出力を停止する。その後、カメラ移動モータ24が駆動された際には、カメラ移動位置検出回路33は、回転検出用パルス信号のパルス数をカメラ移動モータ24の回転方向に応じてカウントアップまたはカウントダウンし、そのカウント値に基づいてカメラ位置を計算し、カメラ位置を表したデジタルデータをカメラ移動モータ制御回路34およびコントローラ60に出力し続ける。
【0040】
カメラ移動モータ制御回路34は、コントローラ60の指示により、カメラ移動モータ24を駆動制御して、カメラステージ22を法線方向へ移動させる。具体的には、カメラ移動モータ制御回路34は、コントローラ60によって指定されるカメラ位置への移動が指示されたときに、カメラ移動位置検出回路33によって検出されるカメラ位置を用いてカメラ移動モータ24の回転を制御し、検出されるカメラ位置がコントローラ60から指定されたカメラ位置に等しくなるまでカメラ移動モータ24を回転させる。
【0041】
ステージ基台40上方には、光照射器50が設けられる。光照射器50は、光源51と、光源51を駆動する照射光源駆動回路52と、光源51から照射された光をライン状(帯状)の光にするスリット板53とを備えている。照射光源駆動回路52は、コントローラ60から光照射開始指令を入力すると光源51に電力を供給して光源51を点灯し、コントローラ60から光照射停止指令を入力すると光源51への電力供給を停止して光源51を消灯する。また、照射光源駆動回路52は、光源51を点灯する際には、コントローラ60にて指定された強度の光が光源51から照射されるように通電量を調整する。
【0042】
スリット板53は、基板検査時における治具11にセットされた複数のガラス基板OBの上端面から少し離れた位置に設けられる。スリット板53には、その中央に長方形のスリット開口53aが形成されている。光源51から照射された光は広がるが、光源51からスリット板53までの距離を長くすることで、スリット開口53aを通過する光は、スリット開口53aの幅(法線方向の長さ)と同じ幅のガラス基板OBの板面と平行なライン状の光となる。尚、スリット開口53aと光源51との位置関係は、スリット開口53aを通過した光の向きが、法線方向に対して直角な方向となるように、つまり、ガラス基板OBの板面と平行となるように設定されている。以下、法線方向に対して直角な方向を板面方向と呼ぶ。また、スリット開口53aの長さ(図1の奥行き方向の長さ)は、ガラス基板OBの長さ(図1の奥行き方向の長さ)と同程度、あるいは、やや大きく設定されており、ガラス基板OBの全面にわたって光が照射されるようになっている。
【0043】
スリット開口53aの幅は、スリット開口53aを通過したライン状の光が、治具11にセットされた複数のガラス基板OBの一部となる設定枚数のガラス基板OBに照射されるように設定されている。また、スリット開口53aの幅(つまり、ライン状の光の幅)は、カメラ21の被写界深度と同程度、あるいは、やや小さい値に設定されている。
【0044】
光源51およびスリット板53は、ステージ基台40に対して相対位置が変化しないように本体フレーム(図示略)に固定されている。従って、治具ステージ12を法線方向に移動させることにより、治具11にセットされた複数のガラス基板OBに照射される光の位置が法線方向に移動する。
【0045】
尚、光照射器50は、ライン状の光をガラス基板OBに対して板面方向に照射できるものであれば、色々な構成を採用することができる。例えば、LEDを一列に並べたものを光源51として、その光源51から照射された光をスリット開口53aを通過させるようにしてもよい。また、レーザ光をシリンドリカルレンズを通過させることでライン状の光を作り、このライン状の光をガラス基板OBに直接照射するようにしてもよい。
【0046】
カメラ21は、撮影方向が法線方向に向くようにカメラステージ22に固定され、治具11にセットされたガラス基板OBの板面を撮影する。カメラ21は、被写界深度がライン状の光の幅と同じかやや大きい値になるようにレンズのNA(開口数)が設定されている。カメラ21は、コントローラ60に接続され、コントローラ60から撮影指令を入力すると、内蔵したCCD(またはCMOS)の撮像素子の画素が出力する輝度に基づく信号から輝度のデジタルデータを作成し、このデジタルデータを画素位置のx,y座標データに対応付けてコントローラ60に出力する。
【0047】
コントローラ60は、CPU、ROM、RAMを備えたマイクロコンピュータを主要部とした電子制御装置であり、各種のデータ(後述する画像データ等)を記憶するメモリ60aを備えている。また、コントローラ60には、作業者が各種設定値や処理等を指示するための入力装置61と、作業者に対して各種の設定状況や検査結果等を視覚的に知らせるための表示装置62とが接続されている。
【0048】
コントローラ60は、作業者が入力装置61を使って検査開始指令を入力すると、後述する基板検査ルーチンを開始し、基板検査ルーチンにしたがって照射光源駆動回路52、治具移動モータ制御回路32、カメラ移動モータ制御回路34、カメラ21に指令を出力する。また、カメラ21から出力されるデータを入力してメモリ60aに記憶し、メモリ60aに記憶したデータを処理することによりガラス基板OBを検査する。そして、データ処理して得られた検査結果を表示装置62に表示する。
【0049】
コントローラ60のメモリ60aには、基板検査ルーチンを実施するにあたって必要となる以下の設定値が記憶されている。
治具位置:P(1),P(2),P(3)・・・P(nmax)
カメラ位置:C(1),C(2),C(3)・・・C(mmax)
光強度:In(1),In(2),In(3)・・・In(kmax)
【0050】
治具11にセットされた複数のガラス基板OBは、設定枚数のガラス基板OBを1つの検査単位としてグループ分けされている。このグループ分けされた1つの検査単位(設定枚数のガラス基板OB)をブロックと呼ぶ。図2に示すように、治具11にセットされた複数のガラス基板OBは、その先頭から設定枚数ごとに第1ブロックBL1、第2ブロックBL2、第3ブロックBL3・・・というように分けられる。各ブロックの幅(法線方向の距離)は、カメラ21の被写界深度と同程度、あるいは、やや小さく設定されている。従って、カメラ21の被写界深度内にブロック内のガラス基板OBを全て入れることができるようになっている。
【0051】
光照射器50は、スリット板53を通過したライン状の光が1つのブロックのみを照射するようにスリット開口53aの幅(法線方向の距離)が設定されている。つまり、スリット開口53aの幅は、ブロックの幅と等しく設定されている。ガラス基板OBの検査は、後述するようにブロック単位にて行われ、光照射器50からの光が照射されるブロックが検査対象ブロックとなる。検査対象ブロックは、治具11を法線方向に移動させることにより切り替えられる。従って、治具位置P(n)は、検査対象ブロックを指定するものとなる。尚、図2においては、分かりやすくするために、1ブロックを構成するガラス基板OBの枚数を8枚としているが、実際には、もっと多くすることができ、例えば、20枚程度にすることが可能である。
【0052】
カメラ位置C(m)は、被写界深度の中心位置(即ち、最もピントが合う位置)がライン状の光が照射される範囲の中心になる位置と、その位置を中心として前後に同じ数だけ設定されている。本実施形態においては、図2に簡易検査時として示すように、1つの検査対象ブロック(この例では、第2ブロックBL2の検査時)に対して3つのカメラ位置C(1),C(2),C(3)が設定されており、カメラ位置C(2)がカメラ21の被写界深度の中心位置がライン状光の範囲の中心位置(つまり、検査対象ブロックの法線方向の中心位置)となるように設定されている。従って、カメラ位置C(2)においては、カメラ21の被写界深度内に検査対象ブロックの全てのガラス基板OBが入るようになる。尚、図2における矢印Hの範囲がカメラ21の被写界深度(ピントが合う範囲)を表している。
【0053】
光強度In(k)は、光源51から照射される光の強度を指定する設定値である。
【0054】
次に、基板検査処理について説明する。図4A〜図4Bは、コントローラ60により実行される基板検査ルーチンを表す。基板検査ルーチンは、コントローラ60のROM内に制御プログラムとして記憶されている。作業者は、基板検査を行うにあたって、まず、治具11に複数のガラス基板OBをセットする。そして、ガラス基板OBのセットされた治具11を治具ステージ12にセットして、入力装置61を使って検査開始指示を入力する。コントローラ60は、この検査開始指示が入力されると、基板検査ルーチンを開始する。
【0055】
コントローラ60は、ステップS100にて基板検査ルーチンを開始すると、ステップS102において、変数n,変数m,変数kの値をそれぞれ「1」に設定する。この変数n,変数m,変数kは、治具位置,カメラ位置,光強度を特定する変数である。続いて、ステップS104において、治具移動モータ制御回路32に対して、治具11を治具位置P(n)に移動させる移動指令を出力する。治具移動モータ制御回路32は、この移動指令にしたがって、治具移動位置検出回路31により検出される治具位置を入力しながら、治具位置が治具位置P(n)に一致するまで治具移動モータ14の回転を制御して治具11(治具ステージ12)を移動させる。こうして第1ブロックBL1が、検査対象ブロックとなり、光照射器50からライン状光が照射される位置に位置決めされる。尚、この時点ではライン状光は照射されていない。
【0056】
続いて、コントローラ60は、ステップS106,S108において、治具移動位置検出回路31により検出される治具位置を入力し、治具位置が治具位置P(n)に一致するまで待機する。コントローラ60は、治具位置が治具位置P(n)に一致したと判断すると(S108:Yes)、続くステップS110において、カメラ移動モータ制御回路34に対して、カメラ21をカメラ位置C(m)に移動させる移動指令を出力する。カメラ移動モータ制御回路34は、この移動指令にしたがって、カメラ移動位置検出回路33により検出されるカメラ位置を入力しながら、カメラ位置がカメラ位置C(m)に一致するまでカメラ移動モータ24の回転を制御してカメラ21(カメラステージ22)を移動させる。
【0057】
続いて、コントローラ60は、ステップS112,S114において、カメラ移動位置検出回路33により検出されるカメラ位置を入力し、カメラ位置がカメラ位置C(m)に一致するまで待機する。コントローラ60は、カメラ位置がカメラ位置C(m)に一致したと判断すると(S114:Yes)、続くステップS118において、カメラ21に対して撮影指令を出力する。カメラ21は、この撮影指令にしたがって、撮像素子が出力する輝度に応じた信号から輝度のデジタルデータを作成し、このデジタルデータを画素位置を表すx,y座標データに対応付けてコントローラ60に出力する。カメラ21が出力するデータ(画素位置ごとの輝度を表すデータ)を画像データと呼ぶが、このステップS118で得られる画像データは、光照射器50からライン状の光が照射されていない状態での画像データである。以下、光照射器50からライン状の光が照射されていない状態で撮影したときの画像データを画像データD’(x,y)と呼び、ライン状の光が照射されている状態で撮影したときの画像データを画像データD(x,y)と呼ぶ。コントローラ60は、続くステップS120において、カメラ21の出力する画像データD’(x,y)を入力しメモリ60aに記憶する。
【0058】
続いて、コントローラ60は、ステップS122において、照射光源駆動回路52に対して光照射開始指令を出力するとともに、ステップS124において、光強度In(k)を指示する。照射光源駆動回路52は、この指令にしたがって、光源51から光強度In(k)の光が照射されるように設定された通電量で光源51を駆動する。こうして、第1ブロックBL1にライン状の光が照射される。続いて、コントローラ60は、ステップS126において、カメラ21に対して撮影指令を出力し、ステップS128において、カメラ21から出力される画像データD(x,y)を入力してメモリ60aに記憶する。
【0059】
続いて、コントローラ60は、ステップS200において欠陥判定用画像データ処理を行う。このステップS200の欠陥判定用画像データ処理は、画素ごとの輝度値が閾値以上であるか否かを判断することにより、検査対象ブロック内においてガラス基板OBの何れかに欠陥が存在するか否かを判定する処理である。このステップS200の欠陥判定用画像データ処理については、図5に示すフローチャート(サブルーチン)を用いて後述することとし、先に基板検査ルーチンにおける全体的な処理を説明する。
【0060】
コントローラ60は、ステップS200にて欠陥判定用画像データ処理を行うと、続くステップS132において、光強度を設定する変数kが最大値kmaxと等しくなっているか否かを判断する。この処理が最初に実行されるときには、変数kは「1」に設定されているため、コントローラ60は、「No」と判定して、ステップS134で変数kの値を「1」だけインクリメントし、その処理をステップS124に戻して上述した処理を繰り返す。従って、光源51から照射される光の強度が1段階づつ変更(増加あるいは減少)され、その都度、カメラ撮影(S126)、画像データD(x,y)のメモリ60aへの記憶(S128)、欠陥判定用画像データ処理(S200)が行われる。尚、本実施形態においては、光の強度を3段階としているため、kmaxが「3」に設定されている。
【0061】
こうした処理が繰り返され、全ての光強度での撮影と欠陥判定用画像データ処理が完了して変数kが最大値kmaxに達すると(S132:Yes)、コントローラ60は、その処理をステップS136に進めて、検査対象ブロックにおいて欠陥が存在しているか否かを判断する。ステップS200における欠陥判定用画像データ処理においては、検査対象ブロックにおける欠陥の有無を判定するが、ブロック内のどのガラス基板OBに欠陥が存在しているのか判別していない。つまり、検査対象ブロック内のガラス基板OB全体に対して欠陥が存在するか否かを判定している。従って、欠陥のあるガラス基板OBが1枚でも存在すれば、ステップS136の判断は「Yes」となる。
【0062】
コントローラ60は、検査対象ブロックに欠陥が存在していないと判定した場合(S136:No)には、続くステップS138において、カメラ位置を設定する変数mが最大値mmaxと等しくなっているか否かを判断する。変数mが最大値mmaxと等しくない場合には、ステップS140において、変数kの値を「1」に設定し、ステップS142において、変数mの値を「1」だけインクリメントする。続いて、ステップS143において照射光源駆動回路52に対して光照射停止指令を出力する。これにより、照射光源駆動回路52は、光源51への通電を停止して光源51を消灯させる。
【0063】
コントローラ60は、ステップS143の処理を行うと、その処理をステップS110に進めて上述した処理を実行する。従って、カメラ位置がC(2)に切り替えられ、そのカメラ位置C(2)において、画像データD’(x,y)がメモリ60aに記憶される。そして、光照射器50が駆動されるとともに光強度が1段階づつ変更され、各光強度における画像データD(x,y)がメモリ60aに記憶され、その都度、欠陥判定用画像データ処理が行われることになる。そして、コントローラ60は、ステップS136において、再度、検査対象ブロックに欠陥が存在しているか否かを判断する。欠陥が存在していなければ、その処理をステップS138に進め、カメラ位置を変更して上述の処理を行う。
【0064】
こうした処理が繰り返され、検査対象ブロックに欠陥が検出されずに変数mの値が最大値mmaxに到達すると、コントローラ60は、その処理をステップS146に進める。ステップS146においては、治具位置を設定する変数nが最大値nmaxと等しくなっているか否かを判断する。変数nが最大値nmaxと等しくない場合には、ステップS148において、変数kの値を「1」に設定し、ステップS150において、変数mの値を「1」に設定し、ステップS152において、変数nの値を「1」だけインクリメントする。続いて、ステップS154において照射光源駆動回路52に対して光照射停止指令を出力する。これにより、照射光源駆動回路52は、光源51への通電を停止して光源51を消灯させる。
【0065】
コントローラ60は、ステップS154の処理を行うと、その処理をステップS104に進めて上述した処理を実行する。従って、治具11が次の治具位置P(2)に移動して、第2ブロックBL2が検査対象ブロックとなる。そして、カメラ位置C(1)における画像データD’(x,y)と各光強度に応じた画像データD(x,y)がメモリ60aに記憶され、欠陥判定用画像データ処理が行われて第2ブロックBL2の欠陥の有無が判定される。欠陥が検出されなければ、カメラ位置が順次変更されていく。本実施形態においては、カメラ位置は3種類、つまり、mmaxが「3」に設定されている。従って、図2に示すように、1つの検査対象ブロックに対して、最大3つのカメラ位置にて撮影して欠陥の有無を判定する。複数のカメラ位置で撮影する理由は、検査対象ブロック内の欠陥の有無を精度良く判定するためであるが、カメラ21の被写界深度の中心位置がブロックの幅方向の中心位置となる位置(この例では、カメラ位置C(2))のみの撮影で判定するようにしてもよい。
【0066】
こうした処理が繰り返され、第2ブロックBL2に対しても欠陥が検出されなかった場合には、変数nの値がインクリメントされて(S152)、第3ブロックBL3に対する検査が開始される。そして、全てのブロックに対して欠陥が検出されなかった場合には、ステップS146において「Yes」と判定される。この場合、コントローラ60は、ステップS156において、治具移動モータ制御回路32に対して、治具11をガラス基板OBの交換位置まで移動させる移動指令を出力する。治具移動モータ制御回路32は、この移動指令にしたがって、治具移動位置検出回路31により検出される治具位置を入力しながら、治具位置がガラス基板OBの交換位置に一致するまで治具移動モータ14の回転を制御して治具11(治具ステージ12)を移動させる。続いて、コントローラ60は、ステップS158において、照射光源駆動回路52に対して光照射停止指令を出力する。これにより、照射光源駆動回路52は、光源51への通電を停止して光源51を消灯する。こうして、ステップS160において、基板検査ルーチンが終了する。
【0067】
一方、上述した処理の途中で欠陥が検出された場合(S136:Yes)には、その処理をステップS300に進めて、検査対象ブロック内のガラス基板OBのうち、欠陥が存在するガラス基板OBを判別する処理(以下、基板判別処理と呼ぶ)を行う。このステップS300の基板判別処理については、図6に示すフローチャート(サブルーチン)を用いて後述する。コントローラ60は、基板判別処理を完了すると、その処理をステップS146に進めて、検査対象ブロックを次のブロックに変更する。欠陥の存在の有無判定(S136)は、1つのカメラ位置毎に行われるため、欠陥が検出された時点において、撮影していないカメラ位置が残っていても、そのカメラ位置の撮影をスキップして、基板判別処理の後、次のブロックの検査に移行する。
【0068】
この基板検査ルーチンにおいては、1つのブロックごとにmmax通りのカメラ位置でそれぞれkmax通りの光強度で撮影を行い、各カメラ位置毎に欠陥の有無を判定する。この場合、カメラ21の被写界深度内(ピントの合う範囲)に検査対象ブロックの複数のガラス基板OBが入るように、ガラス基板OBの間隔、および、カメラ21のNAが設定されているため、一度にたくさんのガラス基板OBの検査を行うことができる。このため、カメラ位置の数mmaxは、検査対象ブロックのガラス基板OBの枚数よりも少なく設定でき、欠陥の有無を判定するために要する検査時間を短縮することができる。そして、欠陥が存在すると判定されたブロックに対しては、後述する基板判別処理によりカメラ位置を細かく変化させて撮影することで、欠陥が存在するガラス基板OBおよび欠陥位置を特定する。
【0069】
ステップS128で入力した画像データに基づいて撮影画像を視覚化すると、図3のようになる。点線で囲まれた領域がガラス基板OBの撮影された領域である。また、符号G1は塊状の欠陥、符号G2は線状の欠陥を表す。ガラス基板OBに欠陥(キズ、異物付着)があると、光照射器50から照射された光は、欠陥のある個所で散乱する。このため、カメラ撮影により得られた画像データにおいては、欠陥のある位置で明るくなる。そこで、ステップS200の欠陥判定用画像データ処理では、撮影画面の画素ごとに輝度値が閾値以上であるか否かを判定することにより、欠陥の有無を判定する。以下、ステップS200の欠陥判定用画像データ処理について説明する。尚、上述した画像データD(x,y),画像データD’(x,y)は、各画素における輝度値を表しているため、以下、輝度値として取り扱う場合には、それらを輝度値D(x,y),輝度値D’(x,y)と呼ぶ。
【0070】
図5は、欠陥判定用画像データ処理ルーチンを表すフローチャートである。この欠陥判定用画像データ処理ルーチンは、上述した基板検査ルーチンにおけるステップS200の処理を表すサブルーチンである。
【0071】
コントローラ60は、ステップS201で欠陥判定用画像データ処理ルーチンを起動すると、ステップS202において、画素のx座標位置を表す値xとy座標位置を表す値yをそれぞれ「1」に設定するとともに、欠陥検出画素数を表す欠陥カウント値Conを「0」に設定する。続いて、ステップS204において、輝度値D(x,y)から輝度値D’(x,y)を減算した値を正規の輝度値D”(x,y)として設定する。つまり、光を照射して撮影したときの輝度値D(x,y)と光を照射せずに撮影したときの輝度値D’(x,y)との差を正規の輝度値D”(x,y)として設定する。続いて、ステップS206において、座標値xが最大値xmax(画像データのx座標の最大値)と等しいか否かを判断し、座標値xが最大値xmaxより小さければ(S206:No)、ステップS208において、座標値xを「1」だけインクリメントして、その処理をステップS204に戻す。従って、y座標を固定してx方向に延びた1ライン分の画素の輝度値D”(x,y)が順番に求められることになる。
【0072】
こうした処理が繰り返され、座標値xが最大値xmaxに達した場合には(S206:Yes)、ステップS210において、座標値yが最大値ymax(画像データのy座標の最大値)と等しいか否かを判断する。コントローラ60は、座標値yが最大値ymaxより小さければ(S210:No)、ステップS212において、座標値xを「1」に設定し、ステップS214において、座標値yを「1」だけインクリメントして、その処理をステップS204に戻す。従って、y座標を1つずらした1ライン分の画素の輝度値D”(x,y)が順番に求められることになる。
【0073】
こうした処理が繰り返され、座標値yが最大値ymaxに達すると(S210:Yes)、全ての画素の輝度値D”(x,y)の算出が完了したことになる。この場合、コントローラ60は、ステップS216において、座標値xと座標値yをそれぞれ「1」に設定する。続いて、ステップS218において、欠陥を判定するための輝度の閾値Aを算出する。閾値Aは、判定対象となる画素(x,y)の周囲の画素の輝度を平均し、その平均値に所定値αを加算して設定する。この場合、輝度の平均値の算出にあたっては、判定対象となる画素(x,y)を中心として、設定数(s個)分だけx方向とy方向とに離れた画素で囲まれる正方形の領域の輝度の平均値を求める。輝度値D”(x,y)は欠陥が無い場合であっても変動する。従って、このように閾値Aを計算することで、輝度値D”(x,y)の変動に応じた適切な閾値Aを設定することができる。
【0074】
続いて、コントローラ60は、ステップS220において、輝度値D”(x,y)が閾値A以上であるか否かを判断する。輝度値D”(x,y)が閾値A以上である場合は、その画素(x,y)に対応する位置において、何れかのガラス基板OBに欠陥が存在すると推定できる。コントローラ60は、輝度値D”(x,y)が閾値A以上であれば(S220:Yes)、ステップS232において、欠陥カウント値Conを「1」だけインクリメントする。一方、輝度値D”(x,y)が閾値A未満であれば(S220:No)、ステップS222において、座標値xが最大値xmaxと等しいか否かを判断する。座標値xが最大値xmaxより小さければ(S222:No)、ステップS224において、座標値xを「1」だけインクリメントして、その処理をステップS218に戻す。従って、y座標を固定してx方向に延びた1ライン分の画素に対して順番に欠陥の有無が判定されることになる。
【0075】
こうした処理が繰り返され、座標値xが最大値xmaxに達した場合には(S226:Yes)、ステップS226において、座標値yが最大値ymaxと等しいか否かを判断する。コントローラ60は、座標値yが最大値ymaxより小さければ(S226:No)、ステップS228において、座標値xを「1」に設定し、ステップS230において、座標値yを「1」だけインクリメントして、その処理をステップS218に戻す。従って、y座標を1つずらした1ライン分の画素に対して順番に欠陥の有無が判定されることになる。
【0076】
こうした処理が繰り返され、座標値yが最大値ymaxに達すると(S226:Yes)、全ての画素に対して欠陥の有無判定が完了したことになる。この場合、コントローラ60は、ステップS234において、欠陥カウント値Conを光強度I(k)に対応付けた欠陥カウント値Con(k)として記憶する。こうして欠陥カウント値Con(k)を記憶すると、この欠陥判定用画像データ処理ルーチンをステップS236にて抜けて、基板検査ルーチン(メインルーチン)のステップS132の処理に移行する。従って、光強度が切り替えられるたびに、欠陥判定用画像データ処理ルーチン(S200)が実行され、その光強度I(k)に対応した欠陥カウント値Con(k)が記憶される。
【0077】
コントローラ60は、基板検査ルーチンのステップS136において、欠陥カウント値Con(k)が1以上であれば、つまり、閾値A以上となる画素が1つ以上あれば、検査対象ブロックに欠陥が存在すると判定する。その場合には、検査対象ブロックのどのガラス基板OBに欠陥が存在しているのか判別するために、ステップS300の基板判別処理を行う。以下、基板判別処理について説明する。
【0078】
図6は、基板判別ルーチンを表すフローチャートである。この基板判別ルーチンは、上述した基板検査ルーチンにおけるステップS300の処理を表すサブルーチンである。
【0079】
コントローラ60は、ステップS301で基板判別ルーチンを起動すると、ステップS302において、変数qの値を「1」に設定する。この変数qは、カメラ位置を特定する番号となる。続いて、ステップS304において、kmax通りの欠陥カウント値Con(k)のうちで最大値となる変数kを求める。つまり、欠陥カウント値Con(1)〜欠陥カウント値Con(kmax)のうちで、その値が最大となる変数kを求める。この場合、欠陥カウント値Con(k)が最大となる変数kが2つ以上あれば、大きい方のk、つまり、光強度が強く設定されるほうの変数kを選択する。続いて、コントローラ60は、ステップS306において、その変数kで設定された光強度In(k)を照射光源駆動回路52に対して指示する。照射光源駆動回路52は、この指令にしたがって、光源51から光強度In(k)の光が照射されるように設定された通電量で光源51を駆動する。このステップS304,S306の処理は、欠陥検査に最適な光強度に設定する処理である。
【0080】
続いて、コントローラ60は、ステップS308において、カメラ移動モータ制御回路34に対して、カメラ21をカメラ位置Cs(q)に移動させる移動指令を出力する。この移動指令を出力するにあたって、コントローラ60のメモリ60aには、予め、以下のカメラ位置が記憶されている。
カメラ位置:Cs(1),Cs(2),Cs(3)・・・Cs(qmax)
【0081】
上述したようにブロックごとに欠陥の有無を判定する処理においては、検査対象ブロックのガラス基板OBの複数枚がカメラ21の被写界深度内に入るようにカメラ位置を調整して撮影しているため、ガラス基板OBの枚数に対して少ないカメラ位置にて検査対象ブロックの欠陥を検出できる。欠陥が検出されなければ、それで検査は終了するわけだが、欠陥が検出された場合には、欠陥が存在するガラス基板OBおよび欠陥の位置を特定するために、図2に詳細検査時として示すように、カメラ位置を細かく切り替えて撮像する。このカメラ位置がカメラ位置Cs(q)として指定される。カメラ位置の切り替え間隔は、治具11に配置されるガラス基板OBの配設間隔より小さく、例えば、ガラス基板OBの配設間隔の1/5程度に設定されている。
【0082】
ステップS308にて移動指令が出力されると、カメラ移動モータ制御回路34は、カメラ位置がカメラ位置Cs(q)に一致するまでカメラ移動モータ24の回転を制御してカメラ21(カメラステージ22)を移動させる。この場合、変数qが「1」に設定されているため、カメラ21は、カメラ移動モータ24からカメラ21方向に見て一番手前の位置にセットされる。続いて、コントローラ60は、ステップS312,S314において、カメラ移動位置検出回路33により検出されるカメラ位置を入力し、カメラ位置がカメラ位置Cs(q)に一致するまで待機する。コントローラ60は、カメラ位置がカメラ位置Cs(q)に一致したと判断すると(S314:Yes)、続くステップS316において、カメラ21に対して撮影指令を出力する。カメラ21は、この撮影指令にしたがって、輝度値を画素位置に対応付けて表す画像データD(x,y)をコントローラ60に出力する。続いて、コントローラ60は、ステップS318において、カメラ21の出力する画像データD(x,y)にカメラ位置Cs(q)のデータを付与した画像データD(x,y,q)を作成してメモリ60aに記憶する。
【0083】
続いて、コントローラ60は、ステップS320において、変数qが最大値qmaxと等しいか否かを判断する。コントローラ60は、変数qが最大値qmaxと等しくなければ(S320:No)、ステップS322において、変数qの値を「1」だけインクリメントして、その処理をステップS308に戻す。従って、カメラ位置が所定距離だけ移動して、上述したカメラ撮影が行われ、そのカメラ位置における画像データD(x,y,q)がメモリ60aに記憶される。
【0084】
こうした処理が繰り返され、変数qが最大値qmaxに達すると(S320:Yes)、検査対象ブロックにおいて全てのカメラ位置にて画像データD(x,y,q)がメモリ60aに記憶されたことになる。コントローラ60は、続くステップS400において、画像データD(x,y,q)に基づいて基板判別用画像データ処理を行ったのち、ステップS326で基板判別ルーチンを抜け、基板検査ルーチン(メインルーチン)のステップS146の処理に移行する。以下、ステップS400の基板判別用画像データ処理について説明する。
【0085】
図7A〜図7K(以下、これらを総称する場合には図7と呼ぶ)は、基板判別用画像データ処理ルーチンを表すフローチャートである。この基板判別用画像データ処理ルーチンは、上述したステップS400の処理を表すサブルーチンである。
【0086】
コントローラ60は、ステップS401で基板判別用画像データ処理ルーチンを起動すると、ステップS402において、カメラ位置を指定する変数qの値を「1」に設定し、ステップS404において、画素のx座標位置を表す座標値xとy座標位置を表す座標値yとをそれぞれ「1」に設定する。続いて、ステップS406において、輝度値D(x,y,q)から輝度値D’(x,y)を減算した値を正規の輝度値D”(x,y,q)として設定する。つまり、光を照射して撮影したときの輝度値D(x,y,q)と光を照射せずに撮影したときの輝度値D’(x,y)との差を正規の輝度値D”(x,y,q)として設定する。尚、コントローラ60は、輝度値D’(x,y)として、欠陥の有無を判定するときの撮影時における最後のカメラ位置での輝度値を用いる。
【0087】
続いて、コントローラ60は、ステップS408において、座標値xが最大値xmaxと等しいか否かを判断し、座標値xが最大値xmaxより小さければ(S408:No)、ステップS410において、座標値xを「1」だけインクリメントして、その処理をステップS406に戻す。従って、y座標を固定してx方向に延びた1ライン分の画素の輝度値D”(x,y,q)が順番に求められることになる。
【0088】
こうした処理が繰り返され、座標値xが最大値xmaxに達した場合には(S408:Yes)、ステップS412において、座標値yが最大値ymaxと等しいか否かを判断する。コントローラ60は、座標値yが最大値ymaxより小さければ(S412:No)、ステップS414において、座標値xを「1」に設定し、ステップS416において、座標値yを「1」だけインクリメントして、その処理をステップS406に戻す。従って、y座標を1つずらした1ライン分の画素の輝度値D”(x,y,q)が順番に求められることになる。
【0089】
こうした処理が繰り返され、座標値yが最大値ymaxに達すると(S412:Yes)、全ての画素の輝度値D”(x,y,q)の算出が完了する。この場合、コントローラ60は、ステップS418において、座標値xと座標値yをそれぞれ「1」に設定するとともに、番号tを「1」に設定する。この番号tは、後述の処理でわかるように、輝度値D”(x,y,q)が閾値A以上となる画素の一つ一つに対して、1から順番に付与される番号である。
【0090】
続いて、コントローラ60は、ステップS420において、欠陥を判定するための輝度の閾値Aを算出する。閾値Aは、上述したステップS218にて算出したように、判定対象となる画素(x,y,q)の回りの画素の輝度を平均し、その平均値に所定値αを加算して求められる。従って、輝度値D”(x,y、q)の変動に応じた適切な閾値Aを設定することができる。続いて、コントローラ60は、ステップS421において、輝度値D”(x,y,q)が閾値A以上であるか否かを判断する。輝度値D”(x,y,q)が閾値A以上である場合(S421:Yes)は、ステップS422において、座標値xをx(t)の値に設定し、ステップS424において、座標値yをy(t)の値に設定する。従って、x(t)およびy(t)は、番号tの画素のx座標データおよびy座標データとなる。続いて、番号tを「1」だけインクリメントして、その処理をステップS428に進める。一方、輝度値D”(x,y,q)が閾値A未満であれば(S421:No)、ステップS422,424,426の処理をスキップしてステップS428に移行する。
【0091】
コントローラ60は、ステップS428において、座標値xが最大値xmaxと等しいか否かを判断する。座標値xが最大値xmaxより小さければ(S428:No)、ステップS430において、座標値xを「1」だけインクリメントして、その処理をステップS420に戻す。こうした処理が繰り返され、座標値xが最大値xmaxに達した場合には(S428:Yes)、ステップS432において、座標値yが最大値ymaxと等しいか否かを判断する。コントローラ60は、座標値yが最大値ymaxより小さければ(S432:No)、ステップS434において、座標値xを「1」に設定し、ステップS436において、座標値yを「1」だけインクリメントして、その処理をステップS420に戻す。
【0092】
こうした処理が繰り返されることにより、輝度値D”(x,y,q)が閾値A以上となった画素については、画素の座標位置を表すデータ(x,y)に番号tを表すデータが付与される。換言すれば、輝度値D”(x,y,q)が閾値A以上となった画素(x、y)に対して、図8に示すように、検出順に番号tが付与される。従って、番号tから画素の座標(x,y)を特定することができる。例えば、図8に示す例では、番号1により画素の座標(10,3)を特定することができ、番号2により画素の座標(11,3)を特定することができる。
【0093】
検査対象ブロックにおいては、このように番号tの付与された画素の座標位置に対応したガラス基板OBの位置に欠陥が存在すると推定される。以下、番号tの付与された画素を欠陥検出画素と呼ぶ。ガラス基板OBの欠陥は、複数の画素にまたがって撮影される。そこで、以下に説明するステップS438〜S512の処理においては、連続した欠陥検出画素を一つの欠陥として捉えるためにグループ化する。
【0094】
コントローラ60は、ステップS438において、変数aの値を「1」に設定し、グループ番号gxを「1」に設定する。続いて、ステップS440において、y座標y(t)がaとなる欠陥検出画素の番号tを抽出する。この処理が最初に実行されるときにはa=1に設定されているため、y(t)=1、つまり、y座標が1となる全ての欠陥検出画素の番号tを抽出する。図8に示す例では、それに該当する欠陥検出画素は存在しないため、番号tは抽出できない。続いて、コントローラ60は、ステップS442において、抽出できた番号tが存在するか否かを判断する。抽出できた番号tが存在しない場合は(S442:No)、ステップS444において、グループ番号gxが付与されていないx座標データx(t)が存在するか否かを判断する。この時点においては、どのx座標データx(t)にもグループ番号gxが付与されていないため、コントローラ60は、「Yes」と判定して、ステップS446において変数aの値を「1」だけインクリメントし、その処理をステップS440に戻す。
【0095】
コントローラ60は、こうした処理を繰り返し、y(t)=aとなる欠陥検出画素が存在していると判断した場合(S442:Yes)には、ステップS448において、その欠陥検出画素のx座標x(t)を抽出する。例えば、図8に示す例では、y(t)=3のときに、t=1,t=2の欠陥検出画素のx座標であるx(1)=10,x(2)=11が抽出される。続いて、コントローラ60は、ステップS450において、抽出したx座標x(t)のうちの最小値を抽出する。この例では、最小値は、1番目の欠陥検出画素のx座標となるため、x(1)=10となる。
【0096】
続いて、コントローラ60は、ステップS452において、x(t,gx)の値として、ステップS450で抽出したx座標x(t)を設定する。このx(t,gx)は、x座標データにグルーブ番号gxを付与したデータである。この時点では、gx=1であるため、この例では、x(1,1)=10となる。続いて、ステップS454において、ステップS448で抽出した欠陥検出画素の中に、x座標x(t)が(x(t,gx)+1)となる欠陥検出画素が存在するか否かを判断する。つまり、x方向に隣接する(連続する)欠陥検出画素が存在するか否かを判断する。図8に示す例では、x座標x(t)が11(=10+1)となる欠陥検出画素の存在が判断される。この場合、2番目(t=2)の欠陥検出画素がそれに該当する。コントローラ60は、続くステップS456において、x座標x(t)が(x(t,gx)+1)となる欠陥検出画素のx座標x(t)を抽出する。この例では、x座標x(2)=11が抽出される。
【0097】
コントローラ60は、ステップS456にてx座標x(t)を抽出すると、その処理をステップS452に戻して同様の処理を実行する。従って、ステップS452においては、グループ番号の付与されたx座標x(2,1)の値として11が設定される。コントローラ60は、こうした処理を繰り返し、ステップS454において、x方向に隣接する欠陥検出画素が存在しないと判断すると、その処理をステップS458に進める。ステップS458においては、ステップS448で抽出した欠陥検出画素のx(t)が残っているか否かを判断する。つまり、y座標がaとなるx方向に延びた1ライン分の画素において、グループ番号gxを付与していない欠陥検出画素がまだ存在するか否かを判断する。グループ番号gxを付与していない欠陥検出画素が存在する場合には(S458:Yes)、ステップS460において、グループ番号gxを「1」だけインクリメントして、その処理をステップS450に戻し、同様の処理を実行する。これにより、y座標がaとなるx方向に延びた1ライン分の画素において、隣接する欠陥検出画素を1グループとした単位でグループ番号gxがx座標データに付与される。
【0098】
コントローラ60は、ステップS458において、グループ番号gxを付与していない欠陥検出画素が存在しないと判断した場合には、ステップS461において、グループ番号gxを「1」だけインクリメントして、その処理をステップS444に戻し、同様の処理を実行する。従って、x座標x(t)にグループ番号gxが付与されていない欠陥検出画素があれば、変数aの値を「1」だけインクリメントし、その処理をステップS440に戻す。これにより、グループ番号gxの付与対象となるx方向に延びた1ライン分の画素が、y方向に1つ移動して上述した処理が行われる。
【0099】
こうした処理が繰り返されることにより、全ての欠陥検出画素のx座標x(t)にグループ番号gxが付与される。図9は、上述した処理により付与されたグループ番号gxを欠陥検出画素位置に表したものである。x方向に隣接する欠陥検出画素に対しては、同一のグループ番号gxが付与される。
【0100】
コントローラ60は、全ての欠陥検出画素のx座標x(t)にグループ番号gxを付与すると(S444:No)、その処理をステップS462に進める。このステップS462からステップS485の処理は、y方向に延びた1ライン分の画素ごとに、隣接する欠陥検出画素に対して共通のグループ番号gyを付与するものであり、上述したステップS438からステップS461の処理とは、グループ番号を付ける画素のライン方向がy方向になるだけで、基本的な処理は共通する。
【0101】
コントローラ60は、ステップS462において、変数bの値を「1」に設定し、グループ番号gyを「1」に設定する。続いて、ステップS464において、x座標x(t)がbとなる欠陥検出画素の番号tを抽出する。この処理が最初に実行されるときにはb=1に設定されているため、x(t)=1、つまり、x座標が1となる全ての欠陥検出画素の番号tを抽出する。図8に示す例では、それに該当する欠陥検出画素は存在しないため、番号tは抽出できない。続いて、コントローラ60は、ステップS466において、抽出できた番号tが存在するか否かを判断する。抽出できた番号tが存在しない場合は(S466:No)、ステップS468において、グループ番号gyが付与されていないy座標データy(t)が存在するか否かを判断する。この時点においては、どのy座標データy(t)にもグループ番号gyが付与されていないため、コントローラ60は、「Yes」と判定して、ステップS470において変数bの値を「1」だけインクリメントし、その処理をステップS464に戻す。
【0102】
コントローラ60は、こうした処理を繰り返し、x(t)=bとなる欠陥検出画素が存在していると判断した場合(S466:Yes)には、ステップS472において、その欠陥検出画素のy座標y(t)を抽出する。例えば、図8に示す例では、x(t)=6のときに、t=8,t=56の欠陥検出画素のy座標であるy(8)=5,y(56)=16が抽出される。続いて、コントローラ60は、ステップS474において、抽出したy座標y(t)のうちの最小値を抽出する。この例では、最小値は、8番目の欠陥検出画素のy座標となるため、y(8)=5となる。
【0103】
続いて、コントローラ60は、ステップS476において、y(t,gy)の値として、ステップS474で抽出したy座標y(t)を設定する。このy(t,gy)は、y座標データにグルーブ番号gyを付与したデータである。この時点では、gy=1であるため、この例では、y(8,1)=5となる。続いて、ステップS478において、ステップS472で抽出した欠陥検出画素の中に、y座標y(t)が(y(t,gy)+1)となる欠陥検出画素が存在するか否かを判断する。つまり、y方向に隣接する(連続する)欠陥検出画素が存在するか否かを判断する。存在する場合には、コントローラ60は、続くステップS480において、y座標x(t)が(y(t,gy)+1)となる欠陥検出画素のy座標y(t)を抽出して、その処理をステップS476に戻して同様の処理を実行する。
【0104】
コントローラ60は、こうした処理を繰り返し、ステップS478において、y方向に隣接する欠陥検出画素が存在しないと判断すると、その処理をステップS482に進める。ステップS482においては、ステップS472で抽出した欠陥検出画素が残っているか否かを判断する。つまり、x座標がbとなるy方向に延びた1ライン分の画素において、グループ番号gyを付与していない欠陥検出画素がまだ存在するか否かを判断する。グループ番号gyを付与していない欠陥検出画素が存在する場合には(S482:Yes)、ステップS484において、グループ番号gyを「1」だけインクリメントして、その処理をステップS474に戻し、同様の処理を実行する。これにより、x座標がbとなるy方向に延びた1ライン分の画素において、隣接する欠陥検出画素を1グループとした単位でグループ番号gyがy座標データに付与される。
【0105】
コントローラ60は、ステップS482において、グループ番号gyを付与していない欠陥検出画素が存在しないと判断した場合には、ステップS485において、グループ番号gyを「1」だけインクリメントして、その処理をステップS468に戻し、同様の処理を実行する。従って、y座標y(t)にグループ番号gyが付与されていない欠陥検出画素があれば、変数bの値を「1」だけインクリメントし、その処理をステップS464に戻す。これにより、グループ番号gyの付与対象となるy方向に延びた1ライン分の画素が、x方向に1つ移動して上述した処理が行われる。
【0106】
こうした処理が繰り返されることにより、全ての欠陥検出画素のy座標y(t)にグループ番号gyが付与される。図10は、上述した処理により付与されたグループ番号gyを欠陥検出画素位置に表したものである。y方向に隣接する欠陥検出画素に対しては、同一のグループ番号gyが付与される。
【0107】
コントローラ60は、全ての欠陥検出画素のy座標y(t)にグループ番号gyを付与すると(S468:No)、その処理をステップS486に進める。このステップS486からステップS512の処理は、グループ番号gx,gyに基づいて、撮影画面の平面座標位置においてx方向、y方向に連続する欠陥検出画素をグループ化して、座標データにグループ番号gを付与する処理である。
【0108】
コントローラ60は、まず、ステップS486において、変数gx1の値を「1」に設定し、グループ番号gを「1」に設定する。続いて、ステップS488において、グループ番号gxがgx1となる欠陥検出画素のx座標データx(t,gx)を全て抽出する。図8の例では、t=1,t=2となる欠陥検出画素のx座標値10,11が抽出される。続いて、ステップS490において、抽出されたx座標データx(t,gx)が存在するか否かを判断し、存在する場合には、ステップS492において、グループ番号gを用いたx座標データx(t,g)の値をステップS488で抽出したx座標データx(t,gx)の値に設定する。この例では、x(1,1)=10,x(2,1)=11と設定される。続いて、ステップS494において、抽出したx座標データx(t,gx)の番号tを有する欠陥検出画素のy座標データy(t,gy)を抽出する。この例では、y座標データy(t,gy)は、y(1,10)とy(2,12)となる。続いて、ステップS496において、この抽出したy座標データy(t,gy)のグループ番号gyを有するy座標データy(t,gy)を抽出する。この例では、グループ番号gyがgy=10、gy=12のy座標データy(t,gy)が抽出される。
【0109】
続いて、コントローラ60は、ステップS498において、グループ番号gを用いたy座標データy(t,g)の値を、ステップS496で抽出されたy座標データy(t,gy)の値に設定する。続いて、ステップS500において、抽出されたy座標データy(t,gy)の番号tを有する欠陥検出画素のx座標データx(t,gx)を抽出し、ステップS502において、抽出されたx座標データx(t,gx)のグループ番号gxを有する欠陥検出画素のx座標データx(t,gx)を抽出する。図8の例では、左上に集中している欠陥検出画素すべてのx座標データx(t,gx)が抽出されることになる。
【0110】
続いて、コントローラ60は、ステップS504において、ステップS502でx座標データx(t,gx)が抽出されているか否かを判断し、抽出されている場合には、その処理をステップS492に戻す。従って、図8の例では、左上に集中している欠陥検出画素すべてのx座標データおよびy座標データが、番号tとグループ番号g(=1)が付与されたデータに置き換えられる。
【0111】
コントローラ60は、こうした処理を繰り返し、ステップS504において「No」と判定した場合には、ステップS506において、上述した処理において抽出したx座標データx(t,gx)の全ての数(全抽出数)が設定数N(例えばN=5)以上であるか否かを判断し、設定数N以上であれば、ステップS508において、グループ番号gの値を「1」だけインクリメントしてその処理をステップS510に進める。一方、x座標データx(t,gx)の全抽出数が設定数N未満である場合(S506:No)には、ステップS508の処理をスキップしてステップS510に移行する。つまり、このステップS506,S508の処理は、欠陥検出画素の集合体が小さい場合には、欠陥として取り扱わずにグループ番号gを付与しないようにする処理である。
【0112】
コントローラ60は、ステップS510において、変数gx1の値が最大値gxmaxと等しくなったか否かを判断し、変数gx1の値が最大値gxmaxと等しくなければ、ステップS512において、変数gx1の値を「1」だけインクリメントして、その処理をステップS488に戻す。従って、変数gx1の値がグループ番号gxの最大値を表すgxmaxと等しくなるまで、ステップS488〜S512の処理が繰り返される。
【0113】
コントローラ60は、こうした処理を繰り返すことにより、グループ番号gxが付与されたx座標データ(t,gx)から、その番号tを有するy座標データy(t,gy)を抽出し、この抽出したy座標データy(t,gy)の番号tを有するx座標データ(t,gx)を抽出するという処理を繰り返し、それぞれ抽出された座標データに同一のグループ番号gを付与することで、撮影画面上においてx方向とy方向とに連続する欠陥検出画素を1つのグループとして扱えるようにする。図11は、このように付与されたグループ番号gを欠陥検出画素位置に表したものである。以下、グループ化された欠陥検出画素の集合を欠陥検出画素グループと呼ぶ。
【0114】
コントローラ60は、グループ番号の付与処理が完了すると(S510:Yes)、その処理をステップS600に進める。ステップS600〜S638の処理は、欠陥検出画素グループ毎に、その中心座標と欠陥基板判別用のパラメータ値を算出する処理である。
【0115】
コントローラ60は、ステップS600において、グループ番号gを「1」に設定する。続いて、ステップS602において、x座標x(t,g)での最小値、この場合、グループ番号gが1となる欠陥検出画素グループにおけるx座標の最小値を求め、その値を座標x(1)の値として設定する。続いて、ステップS604において、x座標x(t,g)での最大値、この場合、グループ番号gが1となる欠陥検出画素グループにおけるx座標の最大値を求め、その値を座標x(2)の値として設定する。続いて、ステップS606において、y座標y(t,g)での最小値、この場合、グループ番号gが1となる欠陥検出画素グループにおけるy座標の最小値を求め、その値を座標y(1)の値として設定する。続いて、ステップS608において、y座標x(t,g)での最大値、この場合、グループ番号gが1となる欠陥検出画素グループにおけるy座標の最大値を求め、その値を座標y(2)の値として設定する。
【0116】
続いて、ステップS610において、座標x(1)の値と座標x(2)の値との中間値(x(1)+x(2))/2を算出し、その値を、欠陥検出画素グループの中心におけるx座標xc(g,q)の値として設定する。続いて、ステップS612において、座標y(1)の値と座標y(2)の値との中間値(y(1)+y(2))/2を算出し、その値を、欠陥検出画素グループの中心におけるy座標yc(g,q)の値として設定する。
【0117】
こうして、欠陥検出画素グループの中心座標(xc、yc)が算出されると、コントローラ60は、ステップS614において、座標x(1)、座標x(2)、座標y(1)、座標y(2)で囲まれる領域、つまり、xy座標においてx=x(1)、x=x(2)、y=y(1)、y=y(2)となる直線で囲まれる領域の画素数(g)を計算する。画素数(g)は、{x(2)−x(1)+1}×{y(2)−y(1)+1}として求められる。この画素数(g)は、欠陥検出画素グループを最小面積の長方形で囲んだときの、長方形の画素数となる。欠陥検出画素グループの中心座標(xc、yc)は、視覚的に示すと図12に示すように、最小面積の長方形で囲まれる領域の中心(対角線が交差する点)となる。
【0118】
続いて、コントローラ60は、ステップS616において、欠陥検出画素グループを囲む長方形の平均輝度値Dave(g,q)を算出する。平均輝度値Dave(g,q)は、座標(x(t,g),y(t,g))に対応する輝度値D”(x,y,q)の積算値を、画素数(g)で除算することにより求める。つまり、欠陥検出画素グループ(初回は第1グループ)を構成する各画素の輝度値D”(x、y,q)の合計値を、最小面積の長方形で囲まれる領域の画素数(g)で除算することにより求める。
【0119】
続いて、コントローラ60は、ステップS618において、平均輝度値Dave(g,q)が閾値B以上であるか否かを判断し、平均輝度値Dave(g,q)が閾値B以上である場合には、ステップS620において形状判別データEs(g,q)の値を「0」に設定し、平均輝度値Dave(g,q)が閾値B未満である場合には、ステップS622において形状判別データEs(g,q)の値を「1」に設定する。この形状判別データEs(g,q)は、欠陥検出画素グループに対応する欠陥の形状が塊状であるか線状であるかを推定した結果を表すもので、Es(g,q)=0により欠陥が塊状であると推定されることを表し、Es(g,q)=1により欠陥が線状であると推定されることを表す。図12に示すように、ガラス基板OBに形成された欠陥が塊状(図12(a))である場合と、線状(図12(b))である場合とでは、平均輝度値Daveが大きく異なるため、ステップS618においては、平均輝度値Daveに基づいて欠陥が塊状であるか線状であるかを判定する。そして、平均輝度値Dave(g,q)が閾値B以上である場合(S618:Yes)には、欠陥検出画素グループに対応する欠陥が塊状であると判定して形状判別データEs(g,q)を「0」に設定し、平均輝度値Dave(g,q)が閾値B未満である場合(S618:No)には、欠陥検出画素グループに対応する欠陥が線状であると判定して形状判別データEs(g,q)を「1」に設定する。
【0120】
コントローラ60は、欠陥が塊状であると判定した場合(S618:Yes)には、ステップS624において、変数Anの値を「1」に設定する。続いて、ステップS626において、長方形領域において、欠陥検出画素グループの中心(xc(g,q),yc(g,q))からAn×45°方向のライン上にある欠陥検出画素の座標(x(t,g),y(t,g))を抽出する。例えば、初回であれば、図13に示す(1)の方向のライン上に存在する欠陥検出画素の座標(x(t,g),y(t,g))を抽出する。続いて、コントローラ60は、ステップS628において、抽出した座標(x(t,g),y(t、g))の数、つまり、An×45°方向のライン上にある欠陥検出画素の数を画素数(g)に設定する。続いて、ステップS630において、ライン上にある欠陥検出画素の平均輝度値DL(g,An)を算出する。平均輝度値DL(g,An)は、抽出した座標(x(t,g),y(t,g))に対応する輝度値D”(x、y,q)の積算値を、画素数(g)で除算することにより求める。
【0121】
続いて、コントローラ60は、ステップS632において、変数Anが8で有るか否かを判断する。変数Anが8でない場合は、ステップS634において、変数Anの値を「1」だけインクリメントして、その処理をステップS626に戻し、上述した処理を繰り返す。従って、図13に示すように、45°間隔となる8方向のライン上の欠陥検出画素の平均輝度値DL(g,An)が計算される。
【0122】
コントローラ60は、8方向の平均輝度値DLの計算が完了すると(S632:Yes)、ステップS636において、8方向の平均輝度値DL(g,An)の平均値である平均輝度値DLave(g,q)を算出する。この平均輝度値DLave(g,q)が、塊状の欠陥に対する平均輝度値を表すものとなる。一方、ステップS618において、欠陥が線状であると判定された場合は、これらのステップS624〜S636までの処理がスキップされる。
【0123】
続いて、コントローラ60は、ステップS638において、グループ番号gが最大値gmaxと等しいか否かを判断し、グループ番号gが最大値gmaxと等しくない場合(S638:no)には、ステップS640において、グループ番号gを「1」だけインクリメントして、その処理をステップS602に戻し、グループ番号gが最大値gmaxと等しくなるまで、上述した処理を繰り返す。これにより、全ての欠陥検出画素グループの中心座標(xc(g,q),yc(g,q))と、平均輝度値DLave(g,q)あるいは平均輝度値Dave(g,q)が算出される。
【0124】
続いて、コントローラ60は、ステップS642において、カメラ位置を指定する変数qが最大値qmaxに等しいか否かを判断し、変数qが最大値qmaxに等しくない場合(S642:No)には、ステップS644において、変数qを「1」だけインクリメントして、その処理をステップS404に戻し、変数qが最大位置qmaxに等しくなるまで、上述した処理を繰り返す。これにより、各カメラ位置で撮影した撮影画面ごとに、全ての欠陥検出画素グループの中心座標(xc(g,q),yc(g,q))と、平均輝度値DLave(g,q)あるいは平均輝度値Dave(g,q)が算出される。続いて、コントローラ60は、その処理をステップS700に進める。
【0125】
ステップS700〜S796の処理は、カメラ位置Cs(q)ごとに撮影された撮影画面の間で、欠陥検出画素グループの中心座標を比較し、中心座標の差が許容値内であるものは同一の欠陥であるとして共通のシリーズ番号sを付与する処理である。
【0126】
コントローラ60は、ステップS700において、グループ番号gおよび、変数q(カメラ位置を特定する値)の値を「1」に設定する。続いて、ステップS702において、シリーズ番号sを「1」に設定する。続いて、ステップS704において、形状判別データEs(g,q)の値が「0」に設定されているか否か、つまり、カメラ位置Cs(q)で撮影した撮影画面におけるグループ番号gの欠陥が塊状であるか否かを判断する。欠陥が塊状である場合には、その処理をステップS706に進め、欠陥が線状である場合には、その処理をステップS758に進める。ここでは、欠陥が塊状である場合から説明する。
【0127】
コントローラ60は、ステップS706において、平均輝度値DLave(s,g,q)を平均輝度値DLave(g,q)と同じ値に設定する。つまり、平均輝度値DLave(g,q)にシリーズ番号sを付与したデータを、新たに平均輝度値DLave(s,g,q)として設定する。続いて、ステップS708において、変数g1の値を「1」に設定する。続いて、ステップS710において、カメラ位置Cs(q)における撮影画面の欠陥検出画素グループgの中心位置のx座標xc(g,q)と、隣のカメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)との差(絶対値)を算出し、その差が予め設定した許容値C以下であるか否かを判断する。許容値C以下である場合(S710:Yes)には、続くステップS712において、ステップS710で比較した中心位置のy座標yc(g,q)とy座標yc(g1,q+1)との差(絶対値)を算出し、その差が予め設定した許容値C以下であるか否かを判断する。
【0128】
コントローラ60は、y座標においても、その差が許容値C以下である場合(S712:Yes)には、ステップS714において、平均輝度値DLave(g1,q+1)のデータが存在するか否かを判断する。平均輝度値DLave(g1,q+1)のデータが存在する場合(S714:Yes)には、ステップS716において、平均輝度値DLave(g1,q+1)のデータにシリーズ番号sが付与されているか否かを判断し、シリーズ番号sが付与されていない場合(S716:No)には、ステップS718において、平均輝度値DLave(s,g1,q+1)を平均輝度値DLave(g1,q+1)と同じ値に設定する。つまり、平均輝度値DLave(g1,q+1)にシリーズ番号sを付与したデータを、新たに平均輝度値DLave(s,g1,q+1)として設定する。これにより、隣り合う撮影画面間において中心位置が近接する欠陥検出画素グループには、平均輝度値を表すデータに共通のシリーズ番号sが付与される。尚、ステップS714の処理は、隣のカメラ位置Cs(q+1)の撮影画面において中心座標が接近する欠陥検出画素グループが線状の欠陥であると判定されている可能性があるため、接近する欠陥検出画素グループの欠陥が線状であると判定されている場合に処理対象から外す処理である。
【0129】
コントローラ60は、ステップS718において、平均輝度値を表すデータにシリーズ番号sを付与すると、その処理をステップS730に進めて、変数g1の値を「1」だけインクリメントする。尚、ステップS710またはS712において、隣り合う撮影画面間において欠陥検出画素グループの中心座標が近接していないと判断した場合、あるいは、ステップS714において、平均輝度値DLave(g1,q+1)のデータが存在しないと判断した場合においても、その処理をステップS730に進める。
【0130】
続いて、コントローラ60は、ステップS732において、カメラ位置Cs(q+1)における撮影画面の次の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)のデータが存在するか否かを判断する。コントローラ60は、x座標xc(g1,q+1)のデータが存在する場合(S732:Yes)には、その処理をステップS710に戻して上述した処理を行う。コントローラ60は、こうした処理を繰り返して、ステップS716において「Yes」、つまり、平均輝度値DLave(g1,q+1)のデータにシリーズ番号sがすでに付与されていると判定した場合には、その処理をステップS720に進める。
【0131】
カメラ21の撮影画面においては、被写界深度の境界近くにある欠陥(特に線状の欠陥)に対しては、本来1つのものが2つ以上に分離して検出されてしまう場合がある。つまり、カメラ位置を変更していくと、最初に複数で検出されていた欠陥が、被写界深度の中心に近づくにつれて1つになり、その後、被写界深度の中心から離れるにつれて複数に分離するようになる。そこで、ステップS720〜S728において、あるカメラ位置で1つとして検出された欠陥が、手前(qの小さい側)のカメラ位置で2つ以上の欠陥として検出されている場合に、2つ以上に検出された欠陥を1つの欠陥として計算し直す処理を行う。
【0132】
コントローラ60は、ステップS720において変数kの値を「0」に設定する。続いて、ステップS721において、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループgfの中心位置のx座標xc(gf,q−k)と、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)との差(絶対値)が許容値C以下となり、かつ、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループgfの中心位置のy座標yc(gf,q−k)と、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のy座標yc(g1,q+1)との差(絶対値)が許容値C以下となる欠陥検出画素グループgfの中心座標(xc(gf,q−k),yc(gf,q−k))を抽出する。つまり、カメラ位置Cs(q―k)における撮影画面において、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置に近い欠陥検出画素グループgfの中心座標を抽出する。尚、gfは、任意の値をとり得る。
【0133】
続いて、コントローラ60は、ステップS722において、抽出した中心座標(xc(gf,q−k),yc(gf,q−k))を有する欠陥検出画素グループgfに対応する輝度値D”(x,y,q−k)で平均輝度値DLave(gf,q―k)を再計算する。つまり、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループg1と中心位置が接近したカメラ位置Cs(q−k)における撮影画面の欠陥検出画素グループgfを1つの欠陥検出画素グループとして、それらを囲む最小面積の長方形の領域内における8方向のライン上の欠陥検出画素の輝度値D”(x,y,q−k)に基づいて、ステップS626〜S636の処理と同様に、平均輝度値DLave(gf,q―k)を再計算する。
【0134】
続いて、ステップS724において、平均輝度値DLave(s,gf,q−k)を平均輝度値DLave(gf,q―k)と同じ値に設定する。つまり、平均輝度値DLave(gf,q−k)にシリーズ番号sを付与したデータを、新たに平均輝度値DLave(s,gf,q−k)として設定する。続いて、ステップS726において、変数kの値を「1」だけインクリメントし、続くステップS728において、平均輝度値DLave(s,gf,q―k)のデータが存在するか否かを判断する。平均輝度値DLave(s,gf,q―k)のデータが存在する場合には、その処理をステップS721に戻し、存在しない場合には、その処理をステップS718に進める。
【0135】
コントローラ60は、ステップS732において、カメラ位置Cs(q+1)における撮影画面の次の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)のデータが存在しないと判断すると、その処理をステップS734に進める。ステップS734〜S738の処理は、あるカメラ位置で1つに判定された欠陥が、後方(qが大きい側)のカメラ位置で2つ以上の欠陥として判定されている場合に、2つ以上に判定された欠陥を1つの欠陥として計算し直す処理である。
【0136】
コントローラ60は、ステップS734において、平均輝度値DLave(s,g1,q+1)のデータの中に同一のシリーズ番号sが付与されているものが存在するか否かを判断する。存在していない場合(S734:No)は、後述のステップS736,S738をスキップしてステップS740の処理に移行する。一方、同一のシリーズ番号sが付与されているものが存在する場合(S734:Yes)は、ステップS736において、そのシリーズ番号sの付与された平均輝度値DLave(s,g1,q+1)の計算に用いた輝度D”(x,y,q+1)を使って、平均輝度値DLave(g1,q+1)を再計算する。つまり、同一のシリーズ番号sが付与された欠陥検出画素グループを1つの欠陥検出画素グループとして、それらを囲む最小面積の長方形の領域内における8方向のライン状の欠陥検出画素の輝度値D”(x,y,q+1)に基づいて、ステップS626〜S636の処理と同様に、平均輝度値DLave(g1,q+1)を再計算する。
【0137】
続いて、ステップS738において、平均輝度値DLave(s,g1,q+1)を平均輝度値DLave(g1,q+1)と同じ値に設定する。つまり、平均輝度値DLave(g1,q+1)にシリーズ番号sを付与したデータを、新たに平均輝度値DLave(s,g1,q+1)として設定する。コントローラ60は、続くステップS740において、グループ番号gの値を「1」だけインクリメントし、続くステップS742において、x座標xc(g,q)のデータが存在するか否かを判断する。存在している場合(S742:Yes)には、その処理を後述するステップS752に進め、存在していない場合(S742:No)には、ステップS744において、x座標xc(gmax,q)のデータが存在するか否かを判断する。x座標xc(gmax,q)のデータが存在する場合(S744:Yes)には、その処理をステップS740に戻して上述の処理を繰り返す。一方、x座標xc(gmax,q)のデータが存在しない場合(S744:No)には、ステップS746において、カメラ位置を表す変数qの値が最大値qmaxと等しいか否かを判断する。変数qの値が最大値qmaxに達していない場合(S746:No)には、ステップS748において、変数qの値を「1」だけインクリメントする。続いて、ステップS750においてグループ番号gを「1」に設定し、その処理をステップS752に進める。また、変数qの値が最大値qmaxに達している場合(S746:Yes)には、その処理を後述するステップS800(図7K)に進める。
【0138】
コントローラ60は、ステップS752において、平均輝度値DLave(g,q)のデータにシリーズ番号sが付与されているか否かを判断し、シリーズ番号sが付与されている(S752:Yes)場合には、ステップS756において、形状判別データEs(g,q)が「0」、つまり、欠陥形状が塊状であるか否かを判断する。形状判別データEs(g,q)が「0」の場合(S756:Yes)には、その処理をステップS708(図7G)に戻して上述した処理を繰り返す。一方、形状判別データEs(g,q)が「1」の場合(S756:No)には、その処理を後述するステップS760(図7I)に進める。また、ステップS752において、平均輝度値DLave(g,q)のデータにシリーズ番号sが付与されていないと判定した場合には、ステップS754において、シリーズ番号sを「1」だけインクリメントして、その処理をステップS704(図7G)に戻す。
【0139】
コントローラ60は、ステップS704において、形状判別データEs(g,q)が「1」、つまり、線状の欠陥であると判定した場合には、その処理をステップS758に進める。このステップS758からステップS796の処理は、上述したステップS706からステップS744の処理に対して、データ処理対象が線状の欠陥である点で相違し、基本的な処理は同一である。
【0140】
コントローラ60は、ステップS758において、平均輝度値Dave(s,g,q)を平均輝度値Dave(g,q)と同じ値に設定する。つまり、平均輝度値Dave(g,q)にシリーズ番号sを付与したデータを、新たに平均輝度値Dave(s,g,q)として設定する。続いて、ステップS760において、変数g1の値を「1」に設定する。続いて、ステップS762において、カメラ位置Cs(q)における撮影画面の欠陥検出画素グループgの中心位置のx座標xc(g,q)と、隣のカメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)との差(絶対値)を算出し、その差が予め設定した許容値D以下であるか否かを判断する。許容値D以下である場合(S762:Yes)には、続くステップS764において、ステップS762で比較した中心位置のy座標yc(g,q)とy座標xc(g1,q+1)との差(絶対値)を算出し、その差が予め設定した許容値D以下であるか否かを判断する。
【0141】
コントローラ60は、y座標においても、その差が許容値D以下である場合(S764:Yes)には、ステップS766において、平均輝度値Dave(g1,q+1)のデータにシリーズ番号sが付与されているか否かを判断し、シリーズ番号sが付与されていない場合(S766:No)には、ステップS768において、平均輝度値Dave(s,g1,q+1)を平均輝度値Dave(g1,q+1)と同じ値に設定する。つまり、平均輝度値Dave(g1,q+1)にシリーズ番号sを付与したデータを、新たに平均輝度値Dave(s,g1,q+1)として設定する。これにより、隣り合う撮影画面間において中心位置が近接する欠陥検出画素グループには、平均輝度値を表すデータに共通のシリーズ番号sが付与される。
【0142】
コントローラ60は、ステップS768において、平均輝度値を表すデータにシリーズ番号sを付与すると、その処理をステップS782に進めて、変数g1の値を「1」だけインクリメントする。尚、ステップS762またはS764において、隣り合う撮影画面間において欠陥検出画素グループの中心位置が近接しないと判断した場合においても、その処理をステップS782に進める。
【0143】
続いて、コントローラ60は、ステップS784において、カメラ位置Cs(q+1)における撮影画面の次の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)のデータが存在するか否かを判断する。コントローラ60は、x座標xc(g1,q+1)のデータが存在する場合(S784:Yes)には、その処理をステップS762に戻して上述した処理を行う。コントローラ60は、こうした処理を繰り返して、ステップS766において「Yes」、つまり、平均輝度値Dave(g1,q+1)のデータにシリーズ番号sがすでに付与されていると判定した場合には、その処理をステップS770に進める。
【0144】
コントローラ60は、ステップS770において変数kの値を「0」に設定する。続いて、ステップS772において、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループgfの中心位置のx座標xc(gf,q―k)と、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)との差(絶対値)が許容値D以下となり、かつ、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループgfの中心位置のy座標yc(gf,q−k)と、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置のy座標yc(g1,q+1)との差(絶対値)が許容値D以下となる欠陥検出画素グループgfの中心座標(xc(gf,q−k),yc(gf,q−k))を抽出する。つまり、カメラ位置Cs(q―k)における撮影画面において、カメラ位置Cs(q+1)における撮影画面の欠陥検出画素グループg1の中心位置に近い欠陥検出画素グループgfの中心座標を抽出する。
【0145】
続いて、コントローラ60は、ステップS774において、抽出した中心座標(xc(gf,q−k),yc(gf,q−k))を有する欠陥検出画素グループgfに対応する輝度値D”(x,y,q−k)で平均輝度値Dave(gf,q―k)を再計算する。つまり、カメラ位置Cs(q―k)における撮影画面の欠陥検出画素グループg1と中心位置が接近したカメラ位置Cs(q−k)における撮影画面の欠陥検出画素グループgfを1つの欠陥検出画素グループとして、それらを囲む最小面積の長方形の領域内における欠陥検出画素の輝度値D”(x,y,q−k)に基づいて、ステップS616の処理と同様に、平均輝度値Dave(gf,q―k)を再計算する。
【0146】
続いて、ステップS776において、平均輝度値Dave(s,gf,q−k)を平均輝度値Dave(gf,q―k)と同じ値に設定する。つまり、平均輝度値Dave(gf,q−k)にシリーズ番号sを付与したデータを、新たに平均輝度値Dave(s,gf,q−k)として設定する。続いて、ステップS778において、変数kの値を「1」だけインクリメントし、続くステップS780において、平均輝度値Dave(s,gf,q―k)のデータが存在するか否かを判断する。平均輝度値Dave(s,gf,q―k)のデータが存在する場合には、その処理をステップS772に戻し、存在しない場合には、その処理をステップS768に進める。
【0147】
コントローラ60は、ステップS784において、カメラ位置Cs(q+1)における撮影画面の次の欠陥検出画素グループg1の中心位置のx座標xc(g1,q+1)のデータが存在しないと判断すると、その処理をステップS786に進める。
【0148】
コントローラ60は、ステップS786において、平均輝度値Dave(s,g1,q+1)のデータの中に同一のシリーズ番号sが付与されているものが存在するか否かを判断する。存在していない場合(S786:No)は、後述のステップS788,S790をスキップしてステップS792の処理に移行する。一方、同一のシリーズ番号sが付与されているものが存在する場合(S786:Yes)は、ステップS788において、そのシリーズ番号sの付与された平均輝度値Dave(s,g1,q+1)の計算に用いた輝度値D”(x,y,q+1)を使って、平均輝度値Dave(g1,q+1)を再計算する。つまり、同一のシリーズ番号sが付与された欠陥検出画素グループを1つの欠陥検出画素グループとして、それらを囲む最小面積の長方形の領域内における欠陥検出画素の輝度値D”(x,y,q+1)に基づいて、ステップS616の処理と同様に、平均輝度値Dave(g1,q+1)を再計算する。
【0149】
続いて、ステップS790において、平均輝度値Dave(s,g1,q+1)を平均輝度値Dave(g1,q+1)と同じ値に設定する。つまり、平均輝度値Dave(g1,q+1)にシリーズ番号sを付与したデータを、新たに平均輝度値Dave(s,g1,q+1)として設定する。コントローラ60は、続くステップS792において、グループ番号gの値を「1」だけインクリメントし、続くステップS794において、x座標xc(g,q)のデータが存在するか否かを判断する。存在している場合(S794:Yes)には、その処理をステップS752に進め、存在していない場合(S794:No)には、ステップS796において、x座標xc(gmax,q)のデータが存在するか否かを判断する。x座標xc(gmax,q)のデータが存在する場合(S796:Yes)には、その処理をステップS792に戻して上述の処理を繰り返す。一方、x座標xc(gmax,q)のデータが存在しない場合(S796:No)には、ステップS746において、カメラ位置を表す変数qの値が最大値qmaxと等しいか否かを判断する。変数qの値が最大値qmaxに達していない場合(S746:No)には、変数qの値が最大値qmaxに達するまで、上述した処理が繰り返される。
【0150】
こうした処理が全てのカメラ位置で繰り返されることにより、図14に示すように、各カメラ位置で撮影された撮影画面F間において、互いに中心座標が接近する欠陥検出画素グループごとに、共通するシリーズ番号sが平均輝度値データに付与される。こうして、1つの欠陥に対して1つのシリーズ番号sが付与される。従って、シリーズ番号sにより撮影された欠陥を特定することができ、平均輝度値データにより、その欠陥の各撮影画面における平均輝度値を把握することができる。
【0151】
コントローラ60は、ステップS746において、カメラ位置を表す変数qの値が最大値qmaxに達したと判断すると、その処理をステップS800(図7K)に進める。コントローラ60は、ステップS800において、シリーズ番号sを「1」に設定する。続いて、ステップS802において、平均輝度値DLave(s,g,q)のデータが3つ以上存在するか否かを判断する。つまり、3つ以上のカメラ位置(撮影画面)において、シリーズ番号sの塊状の欠陥検出画素グループが検出されているか否かを判断する。平均輝度値DLave(s,g,q)のデータが3つ以上存在する場合(S802:Yes)には、ステップS804において、最終的に決定した欠陥の種類を表すデータである欠陥種類(s)を塊状欠陥に設定する。続いて、ステップS806において、図15に示すように、カメラ位置Cs(q)に対する平均輝度値DLave(s,g,q)の変化曲線を作成する。この場合、カメラ位置Cs(q)は等間隔となるため、横軸を変数qとして変化曲線を作成すればよい。
【0152】
一方、ステップS802において、平均輝度値DLave(s,g,q)のデータが3つ以上存在しないと判定した場合には、ステップS808において、平均輝度値Dave(s,g,q)のデータが3つ以上存在するか否かを判断する。つまり、3つ以上のカメラ位置(撮影画面)において、シリーズ番号sの線状の欠陥検出画素グループが検出されているか否かを判断する。平均輝度値Dave(s,g,q)のデータが3つ以上存在する場合(S808:Yes)には、ステップS810において、欠陥種類(s)を線状欠陥に設定する。続いて、ステップS812において、図15に示すように、カメラ位置Cs(q)に対する平均輝度値Dave(s,g,q)の変化曲線を作成する。ステップS808において、平均輝度値DLave(s,g,q)のデータが3つ以上存在しないと判定した場合には、その欠陥検出画素グループを欠陥とは判定せず、その処理を後述するステップS824に進める。
【0153】
ステップS806、あるいは、ステップS812で変化曲線を作成すると、続いて、ステップS814において、変化曲線から平均輝度値がピーク(最大)となるピーク点に最も近いカメラ位置Cs(q)を求め、そのカメラ位置Cs(q)に対応するガラス基板OBにシリーズ番号sの欠陥があると判定し、その判定されたガラス基板OBのブロック内番号pを検出する。ガラス基板OBのブロック内番号pは、検査対象ブロック内におけるガラス基板OBの順番(1,2,3・・・)を表す。コントローラ60は、予め、ガラス基板OBのブロック内番号pと、平均輝度値がピークとなるカメラ位置Cs(q)との関係をメモリ60aに記憶している。つまり、検査対象ブロック内の各ガラス基板OBごとに欠陥により平均輝度値がピークとなるカメラ位置Cs(q)を記憶している。従って、変化曲線から平均輝度値のピーク点を求めることで、欠陥のあるガラス基板OBのブロック内番号pを特定することができる。
【0154】
続いて、コントローラ60は、ステップS816において、シリーズ番号sの欠陥があるガラス基板番号(s)を算出する。ガラス基板番号(s)は、治具11にセットされた複数ブロックのガラス基板OBの先頭(カメラ21側)から順に1,2,3・・と付けられる番号である。従って、検査対象ブロック番号をn、1ブロックを構成するガラス基板OBの枚数をBとすると、ガラス基板番号(s)は、次式により計算される。
ガラス基板番号(s)=(n−1)×B+p
【0155】
続いて、コントローラ60は、ステップS818において、変化曲線のピーク点に最も近いカメラ位置Cs(q)での欠陥検出画素グループの中心のx座標xc(g,q)をシリーズ番号sの欠陥の中心のx座標xc(s)として設定する。続いて、ステップS820において、変化曲線のピーク点に最も近いカメラ位置Cs(q)での欠陥検出画素グループの中心のy座標yc(g,q)をシリーズ番号sの欠陥の中心のy座標yc(s)として設定する。
【0156】
続いて、コントローラ60は、ステップS824において、表示装置62に、シリーズ番号sの欠陥の情報として、欠陥種類(s)、ガラス基板番号(s)、欠陥中心座標(xc(s),yc(s))を表示する。続いて、ステップS824において、シリーズ番号sを「1」だけインクリメントし、ステップS826において、シリーズ番号sが最大値smaxと等しいか否かを判断する。コントローラ60は、シリーズ番号sが最大値smaxに達していない場合(S826:No)には、その処理をステップS802に戻して上述した処理を繰り返す。
【0157】
コントローラ60は、シリーズ番号sが最大値smaxに達したと判断すると(S826:Yes)、ステップS828において、基板判別用画像データ処理サブルーチンを一旦終了して、その処理をメインルーチンのステップS146に進め、検査対象ブロックを次のブロックに変更して上述した処理を実行する。そして、全てのブロックに対して検査が完了すると(S146:Yes)、治具11をガラス基板OBの交換位置にまで移動し(S156)、光照射器50の光源51を消灯して(S158)、基板検査ルーチンを終了する(S160)。
【0158】
以上説明した検査装置1においては、治具11に複数のガラス基板OBを法線方向に並べてセットした状態で、複数のガラス基板OBの一部に対してライン状の光を照射し、このライン状の光が照射される設定枚数(複数)のガラス基板OBを検査対象ブロックとしている。そして、治具11を法線方向に移動させることにより、ライン状の光を照射する位置をガラス基板OBに対して相対的に法線方向に移動させて、検査対象ブロックを切り替える。カメラ21は、検査対象ブロック内の複数枚のガラス基板OBが被写界深度内(ピントの合う範囲内)に入るように、治具11との相対位置が法線方向に調整されてガラス基板OBを法線方向から撮影する。ガラス基板OBに欠陥が存在すると、光照射器50から照射された光が欠陥で散乱し、その散乱光が他のガラス基板OBを通過してカメラ21に入射する。従って、カメラ21は、検査対象ブロック内で被写界深度内に入る複数枚のガラス基板OBの欠陥(散乱光)を一度に撮影することができる。この場合、複数枚のガラス基板OBに存在する欠陥が、1つの撮影画面に散乱光(高輝度領域)として映し出される。
【0159】
基板検査ルーチンにおいては、最初に、ブロック単位にガラス基板OBの欠陥の有無を判定する簡易検査が行われる(S102〜S143)。簡易検査において、ガラス基板OBの欠陥が存在しないと判定された場合には、そのブロックのガラス基板OB全てに対して検査合格とし、ガラス基板OBに欠陥が存在すると判定された場合のみ(S136:Yes)、詳細検査である基板判別処理(S300)が行われ、欠陥が存在するガラス基板OB、欠陥の位置、欠陥の種類が検出される。
【0160】
簡易検査においては、検査対象ブロックに対して3つのカメラ位置にて撮影して得られた画像データを個々にデータ処理して欠陥の有無が判定される(S200)。本実施形態においては、検査ブロックの幅(ライン状の光の幅)がカメラ21の被写界深度と同程度かやや小さく設定されているため、検査対象ブロック内の全てのガラス基板OBを被写界深度内に入れることができる。このため、1つのカメラ位置での撮影で検査対象ブロック内の全てのガラス基板OBの欠陥の有無を判定できるが、欠陥検出精度を上げるためにカメラ位置を法線方向に3通りに切り替えて、各カメラ位置にて撮影する(S110,S142)。この場合、各カメラ位置ごとに照射光の強度を3段階に切り替えて撮影して(S124〜S134)、画像データ処理(S200)により高輝度となる画素の数をカウントする(S220〜S234)。高輝度となる画素が1つでも検出された場合には、3通りのカメラ位置での撮影が完了していなくても、その時点で、欠陥が存在するガラス基板OBを判別するために基板判別処理(S300)が開始される。そして、基板判別処理により欠陥が存在するガラス基板OBの基板番号、欠陥の位置、欠陥の種類が判定されて表示装置62に表示された後に(S822)、検査対象が自動的に次のブロックに切り替えられ(S146〜S152)、同様の処理が繰り返される。
【0161】
基板判別処理においては、高輝度となる画素の数である欠陥カウント値Conが最大となる光強度I(k)、つまり、欠陥検査に最適な光強度に設定されて(S304,S306)、カメラ21の撮影位置が細かく切り替えられる(S308〜S320)。そして、検査対象ブロック内で全てのカメラ位置において撮影が完了すると、画像データから輝度値D”(x,y,q)が閾値A以上となる欠陥検出画素が抽出され、その座標データに番号tが順番に付与される(S420〜S436)。次に、番号tを使って、x方向に連続する欠陥検出画素がグループ化されて座標データに同一のグループ番号gxが付与され(S438〜S461)、y方向に連続する欠陥検出画素がグループ化されて座標データに同一のグループ番号gyが付与される(S462〜S485)。そして、グループ番号gx,gyを使って、x方向とy方向とに連続する欠陥検出画素がグループ化されて座標データにグループ番号gが付与される(S486〜S512)。
【0162】
こうして欠陥検出画素がグループ化されると、その欠陥検出画素グループの中心座標と平均輝度値が計算され(S602〜S616)、平均輝度値が閾値B以上となるものについては欠陥形状が塊状と推定され、平均輝度値が閾値B未満となるものについては欠陥形状が線状と推定される(S620〜S624)。欠陥形状が塊状と推定された場合には、欠陥検出画素グループの中心座標から8方向に延びたライン上の欠陥検出画素の輝度の平均値が計算され、その値が平均輝度値として新たに設定される(S624〜S636)。この平均輝度値は、欠陥が存在するガラス基板OBを判別するためのパラメータ値となる。
【0163】
全てのカメラ位置での撮影画面において、欠陥検出画素のグループ化、中心座標と平均輝度値の計算が完了すると、次に、各撮影画面間において、欠陥の形状別に、欠陥検出画素グループの中心座標が比較される。そして、中心座標の差が許容値内であるものについては、同一のシリーズ番号sが平均輝度値に付与されるとともに、同一撮影画面において、同一シリーズ番号sが付与された欠陥検出画素グループを1つの欠陥検出画素グループとしてまとめた平均輝度値が計算される(S700〜S796)。
【0164】
このようにして、撮影画面上において複数に分離して検出された欠陥検出画素グループであっても、共通のシリーズ番号sが付与されたものについては、1つの欠陥としてみなされる。そして、形状判別データが塊状であって同一のシリーズ番号sが付与される欠陥検出画素グループが3つ以上の撮影画面に存在する場合には、欠陥種類が塊状欠陥として確定され(S802〜S804)、形状判別データが線状であって同一のシリーズ番号sが付与される欠陥検出画素グループが3つ以上の撮影画面に存在する場合には、欠陥種類が線状欠陥として決定される(S808〜S810)。その後、欠陥検出画素グループごとに、カメラ位置に対する平均輝度値の変化曲線が作成され、この変化曲線におけるピーク点から、欠陥のあるガラス基板番号、欠陥の中心座標が求められ、欠陥種類と合わせて表示器に表示される(S806,S812〜S814)。
【0165】
以上説明した本実施形態の検査装置1によれば、以下の効果を奏する。
1.カメラの被写界深度内に複数のガラス基板OBを並べて配置し、ガラス基板OBの欠陥からの散乱光を、ガラス基板OBを透過させて撮影し、撮影して得た画像データから欠陥の有無を判定するため、短時間にて多数枚のガラス基板の検査を行うことができる。欠陥が存在しないと判定した場合には、撮影したガラス基板OB全てを検査合格にすることができるため、特に、ガラス基板OBの欠陥発生率が低い場合には、非常に有効なものとなる。
2.治具11にセットしたガラス基板OBを複数のブロックに分け、検査対象ブロックを自動的に切り替えるため、一度に治具11にセットできるガラス基板OBの枚数を多くすることができる。このため、ガラス基板のセット時間(取り付け、取り外し時間)を短縮することができ、効率よく多数枚のガラス基板の検査を行うことができる。
【0166】
3.検査対象ブロックのみに光を照射して検査するため、他のブロックのガラス基板OBから散乱光がカメラに入射しない。これにより、画像データにノイズがのりにくく、ガラス基板の欠陥を精度良く検査することができる。
4.ブロック内に欠陥が存在するガラス基板OBがあると判定された場合は、そのまま検査対象ブロックの詳細検査が開始されて、欠陥が存在するガラス基板OB、および、欠陥の位置を特定するため、全てのガラス基板OBを個々に検査できるだけでなく、全てのブロックの検査が終了するまで、ガラス基板OBを治具11から取り外す必要が無く、検査作業の省力化を図ることができる。
【0167】
5.簡易検査においても、3つのカメラ位置で撮影するため欠陥検出精度が高く、また、途中で欠陥が検出された場合には、全てのカメラ位置での撮影が完了していなくても詳細検査に移行するため、検査時間を短縮することができる。
6.簡易検査時においてブロックごとに複数通りの光強度でカメラ撮影し、最も欠陥カウント値(ガラス基板に欠陥が存在していると推定される画素の数)が多かった光強度にて詳細検査を行うようにしているため、詳細検査においては検査対象ブロックごとに適正な光強度が設定され、欠陥が存在するガラス基板OBの判別精度を向上させることができる。
【0168】
7.詳細検査においては、欠陥検出画素グループごとに欠陥が存在するガラス基板OBを判別するためのパラメータ値を算出し、カメラ位置の変化に対するパラメータ値の変化曲線(変化特性)のピーク値に基づいて欠陥が存在するガラス基板OBを判別するため、その判別を良好に行うことができる。特に、パラメータ値として、欠陥の種類に応じた計算式で求めた平均輝度値を用いているため、欠陥が存在するガラス基板OBの判別を精度良く行うことができる。
8.詳細検査においては、撮影画面間において欠陥検出画素グループの中心位置が接近するものに対しては共通するシリーズ番号を付与するため、カメラ位置によっては複数に分離して撮影される欠陥に対しても1つの欠陥として捉えることができる。このため、ガラス基板OBを判別するためのパラメータ値となる平均輝度値が適正となり、欠陥が存在するガラス基板OBの判別精度をさらに向上させることができる。
【0169】
9.検査対象ブロックの切り替えは治具ステージ12の移動により行い、各検査対象ブロックに対する撮影位置の切り替えはカメラステージ22の移動により行うため、光照射器50を移動する必要がなく、検査装置1の制御システムがシンプルになる。
10.欠陥の種類を判別して表示装置62に表示するため、欠陥の生じた原因を究明しやすい。
【0170】
以上、本発明の実施形態について説明したが、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変形も可能である。
【0171】
例えば、本実施形態においては、検査対象ブロックのガラス基板OBに対して、基板面に平行となる方向からライン状の光を照射したが、図16に示す変形例としての透光性基板検査装置1’のように、基板面に対して法線方向から光を照射するようにしてもよい。この変形例では、光源51から出射した光をコリメートレンズ54により平行光にし、その平行光をハーフミラー55により法線方向に反射させてガラス基板OBに法線方向から照射する。カメラ21は、ガラス基板OBを法線方向からハーフミラー55を介して撮影する。この場合、カメラ21の被写界深度の範囲が検査対象ブロックとなる。従って、治具11とカメラ21との法線方向の相対位置を切り替えることにより検査対象ブロックを切り替えることができる。例えば、被写界深度の値が、治具11にセットされるガラス基板OBの所定枚数N分の距離に相当すれば、1つのブロックをN枚のガラス基板OBに設定する。
【0172】
この変形例では、検査対象ブロックの切り替えとカメラ位置の切り替えを、治具ステージ12を法線方向に駆動することにより行う。従って、実施形態に比べてカメラ21を法線方向に移動させる構成(カメラ移動モータ24、カメラ移動位置検出回路33、カメラ移動モータ制御回路34)を省略することができる。尚、検査対象ブロックの切り替えとカメラ位置の切り替えを、治具ステージ12を駆動して行わずに、カメラステージ22を駆動して行うようにしてもよい。この場合は、実施形態に比べて治具11を法線方向に移動させる構成(治具移動モータ14、治具移動位置検出回路31、治具移動モータ制御回路32)を省略することができる。
【0173】
この変形例においても、ガラス基板OBに欠陥が存在する場合には、欠陥位置に対応する撮影画面上の画素の輝度値が正常位置(欠陥のない位置)における画素の輝度値と大きく相違するため、輝度値と関連する値をパラメータとして用いることにより、欠陥が存在するガラス基板OBを判別することができる。
【0174】
この変形例によれば、検査装置1’のシステム構成を簡易にすることができ低コスト化を図ることができる。また、光をガラス基板OBに対して法線方向から照射するため、ガラス基板OBの縁部における散乱光の発生が抑制される。従って、ガラス基板OBの縁部付近に存在する欠陥の検出精度を高くすることができる。
【0175】
また、他の例として、ガラス基板OBに対して法線方向から光を照射するにあたって、カメラ21とは反対側から(ガラス基板OBを挟んでカメラ21とは反対側から、つまり、図1の右側から)光を照射し、ガラス基板OBを透過した光をカメラ21で撮影するようにしてもよい。この場合には、カメラ撮影で得られた画像データにおいて、輝度値が予め設定した閾値未満となる画素を欠陥検出画素として処理すればよい。
【0176】
また、他の例として、本実施形態においては、表示装置62に欠陥が存在するガラス基板番号、欠陥の位置、欠陥の種類を表示するが、他の検査情報も合わせて表示するようにしてもよい。例えば、平均輝度値がピークとなる撮影画面(カメラ位置)における座標x(t,g),y(t,g)を用いて、欠陥の形状を表示装置62に表示するようにしてもよい。また、輝度値D”(x,y,q)、座標x(t,g),y(t,g)を用いて、明暗を付けて欠陥の形状を表示するようにしてもよい。また、輝度値D”(x,y,q)、座標x(t,g),y(t,g)を用いて、欠陥の面積、輝度値の勾配といった各種の評価値を算出して表示してもよい。輝度値の勾配は、欠陥の立体的な形状(凸状あるいは凹状)を推定するのに役立てることができる。
【0177】
また、本実施形態においては、検査対象ブロックを変更する場合に、ガラス基板OBをセットした治具11を移動させるようにしたが、治具11を固定してカメラ21を移動させるようにしてもよい。この場合、光源51およびスリット板53も、カメラ21との相対位置関係が変化しないように移動させる。また、本実施形態においては、欠陥が存在するガラス基板OBを判別する場合に、カメラ21を移動させるようにしたが、カメラ21を固定して治具11を移動させるようにしてもよい。この場合、光源51およびスリット板53も、治具11との相対位置関係が変化しないように移動させる。
【0178】
また、本実施形態においては、ブロックごとに光強度を複数通りに変化させて最適な光強度を求めているが、光強度を変化させない構成であってもよい。また、本実施形態においては、ガラス基板OBを検査対象物としているが、ガラス基板OBに限らず透光性を有する基板であれば検査対象となる。
【0179】
また、本実施形態においては、検査対象ブロック内のガラス基板に存在する欠陥を検出する場合(簡易検査)に、3通りのカメラ位置にて撮影しているが、1つのカメラ位置(被写界深度内に検査対象ブロックの全てのガラス基板OBが入る位置)で撮影して得た画像データに基づいて、検査対象ブロック内のガラス基板に欠陥が存在するか否かを判定するようにしてもよい。
【符号の説明】
【0180】
1,1’…透光性基板検査装置、10…治具移動機構、11…治具、12…治具ステージ、14…治具移動モータ、20…カメラ移動機構、21…カメラ、22…カメラステージ、24…カメラ移動モータ、31…治具移動位置検出回路、32…治具移動モータ制御回路、33…カメラ移動位置検出回路、34…カメラ移動モータ制御回路、40…ステージ基台、50…光照射器、51…光源、52…照射光源駆動回路、53…スリット板、53a…スリット開口、60…コントローラ、60a…メモリ、61…入力装置、62…表示装置、G1…塊状欠陥、G2…線状欠陥、OB…ガラス基板、H…被写界深度、F…撮影画面。
【特許請求の範囲】
【請求項1】
複数の透光性基板を、その基板面の法線方向に沿って所定間隔に平行に並べてセットする治具と、
前記治具にセットされた複数の透光性基板に対して光を照射する光照射器と、
被写界深度が前記所定間隔よりも広く、前記光照射器により光が照射されている前記透光性基板を前記法線方向から撮影し、撮影により得られた画像データを出力するカメラと、
前記治具と前記カメラとの相対位置が前記法線方向に変化するように前記治具あるいは前記カメラを移動させることにより、前記治具にセットされた複数の透光性基板における前記カメラの被写界深度内に入る範囲を前記法線方向に変化させる移動手段と、
前記治具にセットされた透光性基板のうち前記カメラの被写界深度内に入る複数の透光性基板を1つの検査対象ブロックとして、前記検査対象ブロックを順次切り替えるように前記移動手段を制御するとともに、前記検査対象ブロックを切り替えるたびに前記カメラの出力する画像データを取得する撮影制御手段と、
前記撮影制御手段により取得された画像データに基づいて、前記検査対象ブロックごとに、検査対象ブロック内の透光性基板に存在する欠陥を検出する欠陥検出手段と
を備えたことを特徴とする透光性基板検査装置。
【請求項2】
前記光照射器は、前記治具にセットされた複数の透光性基板のうち前記検査対象ブロック内の透光性基板に対して、前記法線方向の直角方向から光を照射することを特徴とする請求項1記載の透光性基板検査装置。
【請求項3】
前記撮影制御手段は、前記カメラと前記光照射器との相対位置関係を保ったまま、前記治具を前記カメラに対して前記法線方向に移動させることにより、前記検査対象ブロックを切り替えるとともに前記切り替えられた検査対象ブロック内の透光性基板に光が照射されるようにしたことを特徴とする請求項2記載の透光性基板検査装置。
【請求項4】
前記欠陥検出手段により前記検査対象ブロック内の透光性基板に存在する欠陥が検出された場合、前記検査対象ブロック内の透光性基板から、前記欠陥が存在する透光性基板を判別する欠陥基板判別手段を備えたことを特徴とする請求項1ないし請求項3の何れか一項記載の透光性基板検査装置。
【請求項5】
前記欠陥基板判別手段は、
前記移動手段を制御して、前記欠陥が検出された検査対象ブロックに対して前記カメラが撮影する位置を前記法線方向に複数通りに切り替えるブロック内撮影位置切替手段と、
前記各撮影位置において前記カメラが出力した画像データを取得し、取得した画像データに基づいて前記欠陥が存在する透光性基板を判別する基板判別用画像データ処理手段と
を備えたことを特徴とする請求項4記載の透光性基板検査装置。
【請求項6】
前記ブロック内撮影位置切替手段は、前記治具と前記光照射器との相対位置関係を保ったまま、前記カメラを前記治具に対して前記法線方向に移動させることにより、前記カメラが撮影する位置を切り替えることを特徴とする請求項5記載の透光性基板検査装置。
【請求項7】
前記カメラが出力する画像データは、前記カメラの撮像素子を構成する画素の撮影画面上における座標位置と輝度値を表すデータであり、
前記基板判別用画像データ処理手段は、
前記輝度値が基準値以上となる高輝度画素の集合体の輝度値と関連する値を、前記欠陥が存在する透光性基板を判別するためのパラメータ値として算出するパラメータ値算出手段を備え、
前記カメラの撮影位置の変化に対する、前記パラメータ値算出手段により算出された前記パラメータ値の変化特性に基づいて前記欠陥が存在する透光性基板を判別することを特徴とする請求項5または請求項6記載の透光性基板検査装置。
【請求項8】
前記パラメータ値算出手段は、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域内における高輝度画素の輝度値の合計と、前記四角形の画素数との比を前記パラメータ値として算出することを特徴とする請求項7記載の透光性基板検査装置。
【請求項9】
前記パラメータ値算出手段は、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域の中心から等角度間隔で放射方向に延びた複数のライン上の高輝度画素の輝度値の合計値と、前記各ライン上の高輝度画素の画素数との比をパラメータ値として算出することを特徴とする請求項7記載の透光性基板検査装置。
【請求項10】
前記基板判別用画像データ処理手段は、
前記取得した画像データに基づいて前記透光性基板に存在する欠陥の形状が線状であるか塊状であるかを判定する欠陥形状判定手段を備え、
前記パラメータ値算出手段は、前記透光性基板に存在する欠陥の形状が線状であると判定された場合には、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域内における高輝度画素の輝度値の合計と、前記四角形の画素数との比を前記パラメータ値として算出し、前記透光性基板に存在する欠陥の形状が塊状であると判定された場合には、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域の中心から等角度間隔で放射方向に延びた複数のライン上の高輝度画素の輝度値の合計値と、前記各ライン上の高輝度画素の画素数との比をパラメータ値として算出することを特徴とする請求項7記載の透光性基板検査装置。
【請求項1】
複数の透光性基板を、その基板面の法線方向に沿って所定間隔に平行に並べてセットする治具と、
前記治具にセットされた複数の透光性基板に対して光を照射する光照射器と、
被写界深度が前記所定間隔よりも広く、前記光照射器により光が照射されている前記透光性基板を前記法線方向から撮影し、撮影により得られた画像データを出力するカメラと、
前記治具と前記カメラとの相対位置が前記法線方向に変化するように前記治具あるいは前記カメラを移動させることにより、前記治具にセットされた複数の透光性基板における前記カメラの被写界深度内に入る範囲を前記法線方向に変化させる移動手段と、
前記治具にセットされた透光性基板のうち前記カメラの被写界深度内に入る複数の透光性基板を1つの検査対象ブロックとして、前記検査対象ブロックを順次切り替えるように前記移動手段を制御するとともに、前記検査対象ブロックを切り替えるたびに前記カメラの出力する画像データを取得する撮影制御手段と、
前記撮影制御手段により取得された画像データに基づいて、前記検査対象ブロックごとに、検査対象ブロック内の透光性基板に存在する欠陥を検出する欠陥検出手段と
を備えたことを特徴とする透光性基板検査装置。
【請求項2】
前記光照射器は、前記治具にセットされた複数の透光性基板のうち前記検査対象ブロック内の透光性基板に対して、前記法線方向の直角方向から光を照射することを特徴とする請求項1記載の透光性基板検査装置。
【請求項3】
前記撮影制御手段は、前記カメラと前記光照射器との相対位置関係を保ったまま、前記治具を前記カメラに対して前記法線方向に移動させることにより、前記検査対象ブロックを切り替えるとともに前記切り替えられた検査対象ブロック内の透光性基板に光が照射されるようにしたことを特徴とする請求項2記載の透光性基板検査装置。
【請求項4】
前記欠陥検出手段により前記検査対象ブロック内の透光性基板に存在する欠陥が検出された場合、前記検査対象ブロック内の透光性基板から、前記欠陥が存在する透光性基板を判別する欠陥基板判別手段を備えたことを特徴とする請求項1ないし請求項3の何れか一項記載の透光性基板検査装置。
【請求項5】
前記欠陥基板判別手段は、
前記移動手段を制御して、前記欠陥が検出された検査対象ブロックに対して前記カメラが撮影する位置を前記法線方向に複数通りに切り替えるブロック内撮影位置切替手段と、
前記各撮影位置において前記カメラが出力した画像データを取得し、取得した画像データに基づいて前記欠陥が存在する透光性基板を判別する基板判別用画像データ処理手段と
を備えたことを特徴とする請求項4記載の透光性基板検査装置。
【請求項6】
前記ブロック内撮影位置切替手段は、前記治具と前記光照射器との相対位置関係を保ったまま、前記カメラを前記治具に対して前記法線方向に移動させることにより、前記カメラが撮影する位置を切り替えることを特徴とする請求項5記載の透光性基板検査装置。
【請求項7】
前記カメラが出力する画像データは、前記カメラの撮像素子を構成する画素の撮影画面上における座標位置と輝度値を表すデータであり、
前記基板判別用画像データ処理手段は、
前記輝度値が基準値以上となる高輝度画素の集合体の輝度値と関連する値を、前記欠陥が存在する透光性基板を判別するためのパラメータ値として算出するパラメータ値算出手段を備え、
前記カメラの撮影位置の変化に対する、前記パラメータ値算出手段により算出された前記パラメータ値の変化特性に基づいて前記欠陥が存在する透光性基板を判別することを特徴とする請求項5または請求項6記載の透光性基板検査装置。
【請求項8】
前記パラメータ値算出手段は、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域内における高輝度画素の輝度値の合計と、前記四角形の画素数との比を前記パラメータ値として算出することを特徴とする請求項7記載の透光性基板検査装置。
【請求項9】
前記パラメータ値算出手段は、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域の中心から等角度間隔で放射方向に延びた複数のライン上の高輝度画素の輝度値の合計値と、前記各ライン上の高輝度画素の画素数との比をパラメータ値として算出することを特徴とする請求項7記載の透光性基板検査装置。
【請求項10】
前記基板判別用画像データ処理手段は、
前記取得した画像データに基づいて前記透光性基板に存在する欠陥の形状が線状であるか塊状であるかを判定する欠陥形状判定手段を備え、
前記パラメータ値算出手段は、前記透光性基板に存在する欠陥の形状が線状であると判定された場合には、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域内における高輝度画素の輝度値の合計と、前記四角形の画素数との比を前記パラメータ値として算出し、前記透光性基板に存在する欠陥の形状が塊状であると判定された場合には、前記輝度値が基準値以上となる高輝度画素の集合体を撮影画面上において最小面積の四角形で囲んだ領域の中心から等角度間隔で放射方向に延びた複数のライン上の高輝度画素の輝度値の合計値と、前記各ライン上の高輝度画素の画素数との比をパラメータ値として算出することを特徴とする請求項7記載の透光性基板検査装置。
【図1】
【図2】
【図3】
【図4A】
【図4B】
【図5】
【図6】
【図7A】
【図7B】
【図7C】
【図7D】
【図7E】
【図7F】
【図7G】
【図7H】
【図7I】
【図7J】
【図7K】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4A】
【図4B】
【図5】
【図6】
【図7A】
【図7B】
【図7C】
【図7D】
【図7E】
【図7F】
【図7G】
【図7H】
【図7I】
【図7J】
【図7K】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−158318(P2011−158318A)
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願番号】特願2010−19014(P2010−19014)
【出願日】平成22年1月29日(2010.1.29)
【出願人】(000112004)パルステック工業株式会社 (179)
【Fターム(参考)】
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願日】平成22年1月29日(2010.1.29)
【出願人】(000112004)パルステック工業株式会社 (179)
【Fターム(参考)】
[ Back to top ]