説明

形状欠損検査装置、形状モデリング装置および形状欠損検査プログラム

【課題】検査対象物体の形状を観察し、個体差を考慮しつつ欠損を検出する。
【解決手段】検査撮像部154は、ワークとなるセルを撮像して検査画像を取得する。抽出部160は、検査画像を参照し、ワークの輪郭部分に位置する点である検査エッジ点のを特定する。検査エッジ誤差算出部168は、マスタとなるセルの輪郭線を定義する基本関数と検査エッジ点の距離を算出し、欠損点特定部174は乖離が大きい検査エッジ点を欠損点として除外する。検査関数特定部172は、欠損点以外の検査エッジ点の座標に基づいて、ワークの輪郭線を定義するための検査関数を算出する。検査エッジ誤差算出部168は、検査関数と検査エッジ点の距離を算出する。検査関数から乖離する検査エッジ点は欠損候補点として特定される。欠損判定部176は、欠損候補点に基づいて、ワークの欠損を判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体の欠損を検出するための技術、特に、太陽電池セル(Solar cell)の欠損を検出するための技術、に関する。
【背景技術】
【0002】
近年、再生可能エネルギー(Renewable Energy)に対する期待が高まっているが、その中でも太陽電池は特に注目されている。太陽電池は、太陽電池セル(以下、単に「セル」とよぶ)をつなぎ合わせてモジュールを作り、モジュールをつなぎ合わせてアレイを作り、更に、充放電コントローラや蓄電池をアレイに接続して構成される。セルは、いわゆる光起電力効果によって太陽の光エネルギーを電気エネルギーに変換する素子である。セルの生産投資は急増しつつあり、今後しばらくはこの傾向が続くと考えられている。
【0003】
セルの形状はさまざまであるが、たとえば、150mm×150mm程度のサイズに対して厚みはわずか125μm程度である。製造中のセルには割れや欠け(以下、まとめて「欠損」とよぶ)が発生する可能性があるため、モジュールを組み立てる前に欠損を生じたセル(以下、「欠損品」とよぶ)を取り除く必要がある。今後、セルの薄厚化がいっそう進むため、セルの欠損を防ぐ技術だけでなく、セルの欠損を検出する技術も重要である。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−139519号公報
【特許文献2】特開平9−281055号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
欠損を抑制するため、セルの角部分を面取りすることが多い。面取りは、欠損を抑制する上で効果的であるが、欠損をゼロにするのは難しい。また、面取りはセルに個体差を発生させる。セルの欠損を検出する際には、欠損なのか個体差なのかを判断する必要がある。
【0006】
本発明は、上記課題に基づいて完成された発明であり、その主たる目的は、太陽電池セル等の検査対象物体の形状を観察し、個体差を考慮しつつ欠損を検出する技術、を提供することにある。
【課題を解決するための手段】
【0007】
本発明に係る形状欠損検査装置は、検査対象物体を撮像し、輪郭部分に位置する検査エッジ点を特定し、所定の基本関数と検査エッジ点との距離である第1検査エッジ誤差を検査エッジ点ごとに算出する。第1検査エッジ誤差が大きい検査エッジ点を欠損点として除外し、欠損点以外の検査エッジ点の座標に基づいて、検査対象物体の輪郭線を定義するための検査関数を算出する。更に、検査エッジ点と検査関数の距離である第2検査エッジ誤差を検査エッジ点ごとに算出し、第2検査エッジ誤差が大きい検査エッジ点を欠損候補点として特定する。欠損候補点について所定の欠損検出条件が充足されるとき、前記検査対象物体を欠損品と判定する。
【0008】
本発明に係る別の形状欠損検査装置は、検査対象物体を撮像し、輪郭部分に位置する検査エッジ点を特定し、検査エッジ点の座標に基づいて検査対象物体の輪郭線を定義するための検査関数を算出し、検査エッジ点と検査関数との距離である検査エッジ誤差を検査エッジ点ごとに算出する。検査エッジ誤差が大きい検査エッジ点を欠損候補点として特定し、欠損候補点について所定の欠損検出条件が充足されるとき、検査対象物体を欠損品と判定する。また、検査関数により定義される輪郭線が検査対象物体のひな形の輪郭線から所定距離以上離れるときにも、検査対象物体を欠損品と判定する。
【0009】
本発明に係る形状モデリング装置は、モデリング対象物体を撮像し、輪郭部分に位置する基本エッジ点を特定し、基本エッジ点の座標に基づいてモデリング対象物体の輪郭線を定義するための複数種類の基本関数を特定し、基本エッジ点と基本関数の距離である基本エッジ誤差を、基本エッジ点と基本関数の組みあわせごとに算出し、各基本エッジ点の基本エッジ誤差に基づいて、基本エッジ点集合と基本関数との誤差の大きさを示す基本モデル誤差を基本関数ごとに算出する。そして、複数種類の基本関数のうち基本モデル誤差が最小となる基本関数をモデリング対象物体の輪郭線を定義するための関数として選択する。
【0010】
本発明に係る更に別の形状欠損検査装置は、モデリング対象物体を撮像し、輪郭部分に位置する基本エッジ点を特定し、基本エッジ点の座標に基づいてモデリング対象物体の輪郭線を定義するための複数種類の基本関数を特定し、基本エッジ点と基本関数の距離である基本エッジ誤差を、基本エッジ点と基本関数の組みあわせごとに算出し、各基本エッジ点の基本エッジ誤差に基づいて、基本エッジ点集合と基本関数との誤差の大きさを示す基本モデル誤差を基本関数ごとに算出する。そして、複数種類の基本関数のうち基本モデル誤差が最小となる基本関数をモデリング対象物体の輪郭線を定義するための関数として選択する。次に、モデリング対象物体をひな形とする検査対象物体を撮像し、輪郭部分に位置する検査エッジ点を特定し、基本関数と検査エッジ点との距離である第1検査エッジ誤差を検査エッジ点ごとに算出し、第1検査エッジ誤差が大きい検査エッジ点を欠損点として特定する。欠損点以外の検査エッジ点の座標に基づいて、検査対象物体の輪郭線を定義する関数であって基本関数と同型となる検査関数を特定し、検査エッジ点と検査関数の距離である第2検査エッジ誤差を検査エッジ点ごとに算出し、第2検査エッジ誤差が大きい検査エッジ点を欠損候補点として特定する。欠損候補点について所定の欠損検出条件が充足されるとき、検査対象物体を欠損品と判定する。
【0011】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0012】
本発明によれば、検査対象物体の形状における個体差を考慮した上で、検査対象物体の欠損を検出しやすくなる。
【図面の簡単な説明】
【0013】
【図1】セルの外観図である。
【図2】セルの欠損態様を示す図である。
【図3】検査システムのハードウェア構成図である。
【図4】形状欠損検査装置の機能ブロック図である。
【図5】基本画像を示す図である。
【図6】基本エッジ点をクラス分類する方法を説明するための模式図である。
【図7】マスタ領域のコーナー点と中央点を特定する方法を説明するための模式図である。
【図8】丸カットセルを想定して基本関数を算出する場合の模式図である。
【図9】線カットセルを想定して基本関数を算出する場合の模式図である。
【図10】コーナー近傍点群から直線を近似する場合の模式図である。
【図11】基本関数に基づく基本エッジ点の再分類を説明するための模式図である。
【図12】欠損点を示す図である。
【図13】(1)個体差はあるが欠損はないワークについての検査関数を示す図である。
【図14】(2)大きな欠損があるワークについての検査関数を示す図である。
【図15】(3)小さな欠損があるワークについての検査関数を示す図である。
【図16】マスタ処理の処理過程を示すフローチャートである。
【図17】図16のS18における円モデル化処理の詳細を示すフローチャートである。
【図18】図16のS20における直線モデル化処理の詳細を示すフローチャートである。
【図19】ワーク処理の処理過程を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。
【0015】
図1は、本実施の形態において検査対象となるセル200の外観図である。セル200の形状はさまざまであるが、正方形や長方形といった矩形形状が一般的である。図1に示すセル200a、200bのように正方形を面取りしたタイプもあれば、セル200cのように長方形を面取りしたタイプもある。セル200a、200b、200cをまとめていうときや特に区別しないときには、単に、「セル200」とよぶ。正方形型のセル200a、200bのサイズは、たとえば、150mm×150mm程度である。以下、本実施の形態において検査対象となるセル200のサイズは、156mm×156mmであるとして説明する。
【0016】
セル200の角部分は欠損防止のために面取りされるが、面取りの形状・程度もさまざまである。セル200a、200cのように角部分が直線的にカットされたタイプもあれば(以下、「線カットセル」とよぶ)、セル200bのように丸くカットされたタイプもある(以下、「丸カットセル」とよぶ)。面取りの形状・程度には規格がないため、メーカーAの提供するセル200とメーカーBの提供するセル200は、セル自体のサイズや面取りのタイプが同じであっても、面取り形状まで完全一致するとは限らない。更に、同一メーカーが提供する同一タイプのセル200同士でも、面取り形状が完全一致するとは限らない。これは、セル200の製造過程において面取り部分に個体差が発生するためである。
【0017】
図2は、セル200の欠損態様を示す図である。セル200は、その製造過程において欠損を生じることがある。図2に示す欠損202aは、セル200の辺部分に生じている小さな欠けを示す。欠損202bは、セル200の面取り部分に生じている小さな割れを示す。欠損202cは、セル200の面取り部分全体に生じている大きな割れを示す。このように、セル200に生じる欠損の形状や大きさはさまざまである。一般的には、欠損は面取り部分に発生しやすい。欠損202a、202b、202c等をまとめていうときや特に区別しないときには、単に、「欠損202」とよぶ。
【0018】
欠損を生じると、その欠損からヒビが入って最終的にはセル200自体が割れてしまう可能性がある。ごく小さな欠損であっても、モジュールの組み立て工程までに大きな破損に成長してしまうことがある。したがって、セル200の製造段階で欠損を検出し、欠損品を除外する必要がある。本実施の形態において後述する形状欠損検査装置100の目的は、検査対象物体としてのセル200における欠損を検出することにより、欠損品を自動的に特定することである。
【0019】
本実施の形態においては、最小欠損サイズとして0.5mm程度を想定する。もちろん、3mm以上の大きな欠損も発生し得る。セルの個体差は、面取り部分において1〜2mmの範囲で生じる。セル200の個体差をある程度許容しつつ、大小さまざまな欠損を検出する必要がある。
【0020】
図3は、検査システム208のハードウェア構成図である。検査システム208では、まず、照明体204によってセル200にバックライトを当てた状態で、カメラ206によりセル200を撮影する。カメラ206は、セル200の矩形面に対向するように設置される。形状欠損検査装置100は、この撮影画像に基づいてセル200の欠損を検出する。画像解像度としては、640×480、または、1600×1200程度を想定する。画像解像度は、処理効率やコスト、必要な検出精度等に鑑みて、決定すればよい。
【0021】
セル200の欠損検出は、「マスタ処理」と「ワーク処理」の2段階に分かれる。マスタ処理およびワーク処理の概要は以下の通りであるが、詳細については図5以降に関連して後述する。
【0022】
マスタ処理:まず、欠損の存在しないセル200、いいかえれば、ひな形となるセル200(以下、「マスタ」とよぶ)を撮像する。このとき撮像された画像を「基本画像」とよぶ。形状欠損検査装置100は、基本画像から、マスタの形状(輪郭線)を数学的に表現するための関数(以下、「基本関数」とよぶ)を算出する。マスタ処理の主目的は、この基本関数を算出することである。
【0023】
ワーク処理:ワーク処理は、基本関数が得られた後に実行される。まず、検査対象となるセル200、いいかえれば、欠損が存在するかもしれないセル200(以下、「ワーク」とよぶ)を撮像する。このとき撮像された画像を「検査画像」とよぶ。形状欠損検査装置100は、検査画像と基本関数から、ワークの形状(輪郭線)を数学的に表現するための関数(以下、「検査関数」とよぶ)を算出する。そして、この検査関数に基づいて、ワークが欠損品であるか合格品であるかを判定する。
【0024】
マスタとワークが完全に同一形状であれば、それぞれの輪郭線をモデリングする基本関数と検査関数も同一となる。しかし、セル200の面取り部分には個体差が生じやすいため、欠損のないワークであっても、基本関数と検査関数が一致するとは限らない。いいかえれば、基本関数と検査関数が不一致であっても、ワークが欠損品であるとは断定できない。これは、形状欠損検査装置100の処理を理解する上で重要なポイントである。マスタ処理およびワーク処理の具体的な内容を説明する前に、形状欠損検査装置100の構成を説明する。
【0025】
図4は、形状欠損検査装置100の機能ブロック図である。形状欠損検査装置100は、ハードウェア的には、コンピュータのCPUをはじめとする素子で実現でき、ソフトウェア的にはデータ送受信機能のあるプログラム等によって実現されるが、図4ではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できる。ここでは、各機能ブロックの構成を中心として説明する。
【0026】
形状欠損検査装置100は、マスタ処理部110とワーク処理部150を含む。マスタ処理部110はマスタ処理を担当し、ワーク処理部150はワーク処理を担当する。マスタ処理部110はいわば「形状モデリング装置」として機能し、マスタというモデリング対象物体の形状を数学的に表現するために基本関数を算出する機能ブロックである。ワーク処理部150は狭義の「形状欠損検査装置」として機能し、ワークという検査対象物体の形状を数学的に表現するために検査関数を算出し、検査関数に基づいて欠損を検出する機能ブロックである。
【0027】
[マスタ処理部110]
マスタ処理部110は、UI(ユーザインタフェース)部112、データ処理部116およびデータ保持部134を含む。UI部112は、ユーザインタフェース処理を担当する。データ処理部116は、UI部112やデータ保持部134から取得されたデータを元にして各種のデータ処理を実行する。データ処理部116は、UI部112とデータ保持部134の間のインタフェースの役割も果たす。データ保持部134は、各種データを保持するための記憶領域である。
【0028】
UI部112は、基本撮像部114を含む。このほかにもユーザの操作を受け付ける入力部や、画面に各種情報を表示させる表示部を含んでもよい。基本撮像部114は、カメラ206を駆動してマスタを撮像し、基本画像を取得する。データ保持部134は、基本画像保持部136とパラメータ保持部138を含む。基本画像保持部136は、基本画像を保持する。パラメータ保持部138は、基本関数に関連する各種パラメータを保持する。
【0029】
データ処理部116は、基本エッジ処理部118、基本関数特定部124、誤差算出部126および基本関数選択部132を含む。基本エッジ処理部118は、基本画像において、マスタの輪郭部分に位置する点(以下、「基本エッジ点」とよぶ)を処理する。基本エッジ処理部118は、抽出部120と分類部122を含む。抽出部120は、基本画像から基本エッジ点を抽出する。分類部122は、基本エッジ点をクラスに分類する。クラスについては後述する。
【0030】
基本関数特定部124は、基本エッジ点の座標集合から、マスタの輪郭線を定義するための基本関数を算出する。基本関数特定部124は、基本関数の算出だけでなく、基本関数の算出に必要な他の計算処理も担当する。誤差算出部126は、基本エッジ点と基本関数の誤差計算に関する処理を担当する。誤差算出部126は、基本エッジ誤差算出部128と基本モデル誤差算出部130を含む。基本エッジ誤差算出部128は、基本エッジ点と基本関数との距離を「基本エッジ誤差」として算出する。本実施の形態においては、複数の基本関数を算出する。このため、基本エッジ誤差は、基本エッジ点と基本関数の組みあわせごとに算出される。基本モデル誤差算出部130は、基本関数と基本エッジ点の集合の乖離度を「基本モデル誤差」として指標化する。本実施の形態においては、複数の基本関数を算出するため、基本モデル誤差は、基本関数ごとに算出される。基本関数選択部132は、基本モデル誤差に基づいて、複数の基本関数の中からいずれかの基本関数を選択する。
【0031】
[ワーク処理部150]
ワーク処理部150は、検査撮像部154、データ処理部156およびデータ保持部178を含む。UI部152は、ユーザインタフェース処理を担当する。データ処理部156は、UI部152やデータ保持部178から取得されたデータを元にして各種のデータ処理を実行する。データ処理部156は、UI部152とデータ保持部178の間のインタフェースの役割も果たす。データ保持部178は、各種データを保持するための記憶領域である。
【0032】
UI部152は、検査撮像部154を含む。このほかにもユーザの操作を受け付ける入力部や、画面に各種情報を表示させる表示部を含んでもよい。検査撮像部154は、カメラ206を駆動してワークを撮像し、検査画像を取得する。データ保持部178は、検査画像保持部180とパラメータ保持部182を含む。検査画像保持部180は、検査画像を保持する。パラメータ保持部182は、検査関数に関連する各種パラメータを保持する。
【0033】
データ処理部156は、検査エッジ処理部158、基本関数調整部164、検査関数特定部172、誤差算出部166、欠損点特定部174、欠損候補点特定部175および欠損判定部176を含む。検査エッジ処理部158は、検査画像において、ワークの輪郭部分に位置する点(以下、「検査エッジ点」とよぶ)を処理する。検査エッジ処理部158は、抽出部160と分類部162を含む。抽出部160は、検査画像から検査エッジ点を抽出する。分類部162は、検査エッジ点をクラスに分類する。
【0034】
基本関数調整部164は、マスタ処理において選択された基本関数を検査画像に合うように位置調整する。検査関数特定部172は、検査エッジ点の座標集合から、ワークの輪郭線を定義するための検査関数を算出する。誤差算出部166は、検査エッジ点と検査関数の誤差計算に関する処理を担当する。誤差算出部166は、検査エッジ誤差算出部168と検査モデル誤差算出部170を含む。検査エッジ誤差算出部168は、検査エッジ点と検査関数との距離を「検査エッジ誤差」として算出する。検査エッジ点ごとに検査エッジ誤差が算出される。検査モデル誤差算出部170は、検査関数と検査エッジ点の集合の乖離の大きさを「検査モデル誤差」として指標化する。欠損点特定部174は、検査エッジ誤差に基づいて、検査関数から大きく乖離している検査エッジ点を「欠損点」として特定する。欠損候補点特定部175は、検査関数が確定したあと、検査関数に適合していない検査エッジ点を「欠損候補点」として特定する。欠損判定部176は、ワークが欠損品か合格品かを判定する。
【0035】
以上をふまえ、マスタ処理の具体的な内容について説明する。
【0036】
図5は、基本画像を示す図である。基本撮像部114は、カメラ206によりマスタを撮像し、基本画像212を取得する。同図横方向をx軸、縦方向をy軸とする。マスタには照明体204によってバックライトが当てられるため、マスタによって光が遮蔽される領域であるマスタ領域210とそれ以外の領域では画素の明るさ(濃淡値)が大きく異なる。したがって、濃淡値が大きく変化する場所にある点(画素)が、マスタの輪郭部分に位置する基本エッジ点である。図5では基本エッジ点を黒丸にて示している。基本エッジ点の集合により、マスタの輪郭線を見いだすことができる。基本エッジ処理部118の抽出部120は、基本画像から複数の基本エッジ点を抽出し、各基本エッジ点のxy座標を一時的に保存する。このような濃淡値に基づく基本エッジ点の抽出方法は既知技術として一般的に利用されている。
【0037】
図6は、基本エッジ点をクラス分類する方法を説明するための模式図である。基本エッジ処理部118の分類部122は、基本エッジ点ごとに法線ベクトル(エッジ方位)を求める。ここでいうエッジ方位とは、マスタ領域210の輪郭線となす角度が直角であって、マスタ領域210から外側に向かうベクトル(方向+大きさ)である。ここでは、エッジ方位の大きさは「1」に正規化される。
【0038】
エッジ方位も、各画素の濃淡値の変化に基づいて求められる。たとえば、図6に示す基本エッジ点P1やP2では、基本エッジ点の真左の画素は暗く、真右の画素は明るい。このとき、基本エッジ点P1、P2におけるエッジ方位(x,y)は、x軸の正方向のベクトル(1,0)として特定される。同様の方法にて他の基本エッジ点についてもエッジ方位を求める。たとえば、基本エッジ点P3のエッジ方位(x,y)は(0,1)であり、基本エッジ点P4のエッジ方位(x,y)は(−1,0)である。
【0039】
ここで、あらかじめ5種類のクラスL1、L2、L3、L4、Uを定義しておく。クラスL1はマスタ領域210の右辺、L2は下辺、L3は左辺、L4は上辺に対応する。また、Uは「不明」を意味するクラスである。クラスL1〜L4の分類基準を以下のように定義する。θは、−180°≦θ<180°の範囲で定義される角度である(xの正方向がθ=0°である)。θをこの範囲で変化させながら、クラスL1〜L4に分類された基本エッジ点の総数をカウントする。この総数が最も大きくなるときのθを確定させ、この確定したθについてクラスL1〜L4を確定させる。
L1:エッジ方位の向きが(θ−α)〜(θ+α)の範囲にある基本エッジ点の集合
L2:エッジ方位の向きが(θ−90−α)〜(θ−90+α)の範囲にある基本エッジ点の集合
L3:エッジ方位の向きが(θ−180−α)〜(θ−180+α)の範囲にある基本エッジ点の集合
L4:エッジ方位の向きが(θ+90−α)〜(θ++α)の範囲にある基本エッジ点の集合
【0040】
仮にθ=0°に確定したとすると、多くの基本エッジ点のエッジ方位が(1,0)となる。分類部122は、このような基本エッジ点をクラスL1に分類する。また、多くの基本エッジ点のエッジ方位は(0,1)となる。分類部122は、このような基本エッジ点を上辺に対応するクラスL4に分類する。L1〜L4のいずれにも分類されなかった基本エッジ点は不明クラスUに分類される。
【0041】
エッジ方位を参照することにより、各基本エッジ点がマスタ領域210の右辺、下辺、左辺、上辺、あるいはそれ以外のいずれに位置するかを特定できる。ただし、濃淡値はノイズの影響を受けやすく、また、画像解像度にも依存するため、濃淡値からエッジ方位を正確に求めるのは通常困難である。したがって、濃淡値とエッジ方位に基づくクラス分類は、仮分類にすぎない。
【0042】
図7は、マスタ領域210のコーナー点と中央点を特定する方法を説明するための模式図である。基本関数特定部124は、クラスL1に属する基本エッジ点の集合を最小自乗法によって直線近似することにより、直線l1を求める。同様にしてクラスL2から直線l2、クラスL3から直線l3、クラスL4から直線l4を求める。基本関数特定部124は、直線l1とl4の交点をコーナー点Q1、l1とl2の交点をコーナー点Q2、l2とl3の交点をコーナー点Q3、l3とl4の交点をコーナー点Q4とする。次に、コーナー点Q2とQ4を結ぶ直線m1とコーナー点Q1とQ3を結ぶ直線m2を求め、その交点を中心点Cとする。
【0043】
図8は、コーナー近傍点を特定する方法を説明するための模式図である。基本関数特定部124は、次に、5つのコーナー近傍点R0〜R4を特定する。コーナー近傍点とは、セル200の面取り部分にある基本エッジ点のうち、コーナー点に近い数個の基本エッジ点である。図8は、コーナー点Q4の周辺を示している。基本関数特定部124は、まず、コーナー点Q4と各基本エッジ点との距離を算出し、コーナー点Q4に最も近い基本エッジ点をコーナー近傍点R0として特定する。コーナー点Q4に2番目に近い基本エッジ点をコーナー近傍点R1として特定する。以後同様であり、コーナー点Q4に近い順にコーナー近傍点R0〜R4を特定する。コーナー点Q1、Q2、Q3についても、それぞれ5つずつコーナー近傍点を特定する。コーナー近傍点の数は任意である。クラスL1〜L4に属する基本エッジ点の集合から直線l1〜l4を特定したように、コーナー近傍点の集合から、面取り部分の形状を表現するための関数を特定する。マスタが、丸カットセルと線カットセルのいずれのタイプであるかはこの段階では不明であるため、丸カットセルを想定した関数と線カットセルを想定した関数をそれぞれ求め、より実態に適合する方の関数を採用する。
【0044】
図9は、丸カットセルを想定して基本関数を算出する場合の模式図である。基本関数特定部124は、まず、合計20個のコーナー近傍点の集合を最小自乗法により円近似して、関数f1を求める。関数f1の中心点はCであるため、半径rが導出対象となる。半径rは、面取りの大きさに依存する。直線の関数l1〜l4および円の関数f1の5つの関数により、マスタ領域210の輪郭線、いいかえれば、マスタの輪郭線を数学的に表現できる。これら5つの関数l1〜l4、f1は、マスタを丸カットセルとして表現した場合の基本関数(以下、「円形基本関数」ともよぶ)である。マスタが実際に丸カットセルであれば、円形基本関数によりマスタの輪郭線を適切に表現できる。
【0045】
図10は、線カットセルを想定して基本関数を算出する場合の模式図である。基本関数特定部124は、合計20個のコーナー近傍点の集合を最小自乗法により直線近似することにより、関数g1〜g4を求める。関数g1〜g4もマスタの面取りの大きさに依存する。直線の関数l1〜l4および直線の関数g1〜g4の8つの関数により、マスタの輪郭線が数学的に表現できる。これら8つの関数がマスタを線カットセルとして表現した場合の基本関数(以下、「直線形基本関数」ともよぶ)である。マスタが実際に線カットセルであれば、円形基本関数よりも直線形基本関数の方がマスタの輪郭線を適切に表現できる。
【0046】
図11は、基本関数に基づいて基本エッジ点を再分類する方法を説明するための模式図である。図9や図10に関連して説明した円形基本関数や直線形基本関数は、基本画像のエッジ方位(法線ベクトル)をベースとして算出しているが、エッジ方位は誤差が大きくなりやすいため、この段階で算出された基本関数にはそれほどの精度を期待できない。そこで、基本関数特定部124や誤差算出部126は、円形基本関数や直線形基本関数の精度を高めるための処理を実行する。ここでは、円形基本関数を例として説明するが、直線形基本関数についても考え方は同じである。
【0047】
まず、基本エッジ誤差算出部128は、基本エッジ点と関数l1〜l4、f1それぞれとの距離を基本エッジ誤差として算出する。ここで、クラスUの代わりにクラスCを定義する。Cは面取り部分を意味する。基本エッジ処理部118の分類部122は、基本エッジ点を基本エッジ誤差が最小となるクラスに再度分類する。たとえば、図11に示す基本エッジ点P5について、関数l1〜l4、f1それぞれとの5種類の基本エッジ誤差を算出する。関数f1との基本エッジ誤差が最小であった場合には、分類部122は基本エッジ点P5をクラスCに分類する。図6に関連して説明したエッジ方位に基づくクラス分類では、エッジ方位の誤差により基本エッジ点P5がたまたまクラスL3に分類されているかもしれない。基本エッジ誤差に基づくクラス分類を実行することにより、基本エッジ点の分類精度を高めることができる。
【0048】
このようにして、基本エッジ処理部118の分類部122は、全基本エッジ点をクラスL1〜L4、Cのいずれかに分類する。基本モデル誤差算出部130は、各基本エッジ点の基本エッジ誤差に基づいて、基本モデル誤差を算出する。基本モデル誤差とは、各基本エッジ点の集合と基本関数との乖離度を表す指標値であり、基本モデル誤差が小さいほど基本関数がマスタの輪郭線を精度よく表現できていることを示す。本実施の形態においては、各基本エッジ点の基本エッジ誤差の合計値を基本モデル誤差として算出している。別例として、各基本エッジ点の基本エッジ誤差の分散を基本モデル誤差としてもよい。あるいは、クラスに応じて基本エッジ誤差を加重平均した値を基本モデル誤差としてもよい。いずれにしても、基本モデル誤差は、基本エッジ誤差が大きいほど、あるいは、基本関数から乖離した基本エッジ点が多いほど大きくなる値であることが好ましい。
【0049】
基本モデル誤差が所定の閾値Tm1未満であれば、円形基本関数はそのまま確定する。Tm1以上であれば、基本関数特定部124は新たなクラス分類L1〜L4、Cに基づいて円形基本関数を再算出する。すなわち、クラスL1〜L4に基づいて直線の関数l1〜l4を再計算し、クラスCに基づいて円の関数f1を再計算する。こうして新たな円形基本関数を計算し、基本モデル誤差を再計算する。基本モデル誤差が閾値Tm1未満となるか、円形基本関数の算出回数が所定の上限回数に達するまで円形基本関数は繰り返し算出される。円形基本関数の計算とクラスの分類を繰り返すことにより、円形基本関数の精度を高めることができる。円形基本関数を算出する処理の流れについては、図17のフローチャートに関連して後述する。
【0050】
円形基本関数が確定した後、基本関数特定部124や誤差算出部126は、直線形基本関数についても同様の処理を実行する。基本エッジ誤差算出部128は、基本エッジ点と関数l1〜l4、g1〜g4それぞれとの距離を基本エッジ誤差として算出する。直線形基本関数の場合には、クラスUの代わりにクラスC1〜C4を定義する。C1〜C4は4つの面取り部分に対応するクラスである。基本エッジ処理部118の分類部122は、基本エッジ点を基本エッジ誤差が最小となるクラスに分類する。このようにして、分類部122は、全基本エッジ点をクラスL1〜L4、C1〜C4のいずれかに分類する。基本モデル誤差算出部130は、各基本エッジ点の基本エッジ誤差に基づいて、基本モデル誤差を算出する。
【0051】
基本モデル誤差が所定の閾値Tm2未満であれば、直線形基本関数はそのまま確定する。ここで閾値Tm2はTm1と同一であってもよいし、別の値であってもよい。Tm2以上であれば、基本関数特定部124は新たなクラス分類に基づいて直線形基本関数を再計算する。すなわち、クラスL1〜L4に基づいて直線の関数l1〜l2を再計算し、クラスC1〜C4に基づいて直線の関数g1〜g4を再計算する。こうして新たな直線形基本関数を計算し、基本モデル誤差を再計算する。基本モデル誤差が閾値Tm2未満となるか、直線形基本関数の算出回数が所定の上限回数に達するまで直線形基本関数は繰り返し算出される。直線形基本関数の算出とクラスの分類を繰り返すことにより、直線形基本関数の精度を高めることができる。直線形基本関数を算出する処理の流れについては、図18のフローチャートに関連して後述する。
【0052】
円形基本関数とその基本モデル誤差および直線形基本関数とその基本モデル誤差が確定すると、基本関数選択部132は、基本モデル誤差が小さい方の基本関数を選択する。丸カットセルであれば円形基本関数が選択される可能性が高く、線カットセルであれば直線形基本関数が選択される可能性が高い。したがって、マスタが丸カットセルか線カットセルかという情報があらかじめわかっていなくても、適切な型の基本関数が自動的に選択される。円形基本関数や直線形基本関数以外にも、たとえば、ひし形や六角形のようにさまざまなタイプの基本関数を想定可能であることは当業者には理解されるところである。
【0053】
基本関数選択部132は、基本関数のタイプや各種の定数パラメータをパラメータ保持部138に保存する。たとえば、中心点Cの座標や、直線l1〜l4の傾きや切片といった定数パラメータが保存される。円形基本関数が選択されたときには半径rが記録され、直線形基本関数が選択されたときには、直線g1〜g4の傾きや切片が記録される。このように、マスタ処理部110は、マスタの形状に応じて適切な型の基本関数とその定数パラメータを特定する。マスタ処理により、マスタの形状を数学的に表現する基本関数を特定できる。メーカーによってセル200のサイズや形状はさまざまであるため、どのようなセル200をマスタとするかにより基本関数も変化する。この基本関数をベースとして、後述のワーク処理が実行される。なお、マスタのCAD(Computer Aided Design)図面等から基本関数を直接取得できるときには、マスタ処理を実行しなくてもよい。
【0054】
次に、ワーク処理の具体的な内容について説明する。
【0055】
ワーク処理の一部はマスタ処理と内容が重複するため、ここでは、ワーク処理に特有の内容を中心として説明する。ワーク処理部150は、基本関数の取得後にワークを順次検査する。ここでは1枚ずつワークを検査するものとして説明する。まず、検査撮像部154は、カメラ206によりワークを撮像し、検査画像を取得する。検査画像の表示態様も図5に示した基本画像とほぼ同等である。ただし、ワークには欠損が生じている可能性がある。また、面取り部分の個体差により、マスタにおける面取りの大きさとワークにおける面取りの大きさは完全一致しない可能性がある。マスタが円カットセルの場合にはワークも円カットセル、マスタが線カットセルである場合にはワークも線カットセルであるため、面取りの形状自体は同じである。
【0056】
検査エッジ処理部158の抽出部160は、濃淡値に基づいて検査画像から複数の検査エッジ点を抽出する。検査エッジ点の特定方法は、基本エッジ点の特定方法と同じである。検査エッジ処理部158の分類部162は、各検査エッジ点のエッジ方位を求め、5種類のクラスL1、L2、L3、L4、Uのいずれかに各検査エッジ点を仮分類する。検査エッジ点のクラス分類方法も、基本エッジ点のクラス分類方法と同じである。
【0057】
検査関数特定部172は、ワークについての直線l1〜l4を求め、ワークのコーナー点および中心点を求める。基本関数調整部164は、基本関数の位置と向きをワークの輪郭に合うように座標変換する。具体的には、基本関数についての中心点Cをワークの中心点に一致させ、ワークにおける直線l1〜l4の向きと基本関数における直線l1〜l4の向きが一致するように基本関数の傾きを調整する。検査関数特定部172は、調整後の基本関数を「検査関数」とする。この検査関数は、いわば初期値としての検査関数(以下、「初期検査関数」ともよぶ)であり、検査関数も基本関数と同様、何度も再計算されることになる。以下、円形基本関数を対象として説明するが、直線形基本関数についても基本的な原理は同様である。
【0058】
検査エッジ誤差算出部168は、検査エッジ点と初期検査関数に含まれる関数l1〜l4、f1それぞれとの距離を検査エッジ誤差として算出する。以下、初期検査関数、いいかえれば、位置調整された基本関数についての検査エッジ誤差のことを特に「第1検査エッジ誤差」とよぶ。また、再計算によって求められる検査関数についての検査エッジ誤差のことを特に「第2検査エッジ誤差」とよぶ。本実施の形態においては、検査エッジ誤差算出部168は「第1検査エッジ誤差算出部」と「第2検査エッジ誤差算出部」の両方の機能を備えている。
【0059】
クラスL1、L2、L3、L4、Uの代わりに、クラスL1、L2、L3、L4、C、Eを定義しておく。検査エッジ処理部158の分類部162は、各検査エッジ点を検査エッジ誤差が最小となるクラスに分類する。このときの分類方法は、図11に関連して説明した方法と同様である。ただし、クラスEは、検査エッジ誤差が所定の「除外条件」を充足する検査エッジ点のクラスであり、クラスEに分類される検査エッジ点は以後「欠損点」として扱われる。除外条件とは、たとえば、検査エッジ誤差が所定の閾値Tn以上となること、であってもよい。ここでいうTnはセル200の個体差(1〜2mm)以上の距離を示す値に設定することが望ましい。
【0060】
図12は、欠損点を示す図である。図12に示す検査エッジ点P6、P7、P8に最も近い検査関数は関数f1である。このうち、検査エッジ点P6と関数f1の検査エッジ誤差が閾値Tn以上となると、除外条件が成立するため、欠損点特定部174は、検査エッジ点P6をクラスCではなくクラスEに分類する。検査エッジ点P6は「欠損点」となる。なお、別例として、各検査エッジ点の検査エッジ誤差の平均値をμ、標準偏差をσとしたときに、検査エッジ誤差のばらつきを正規分布と仮定するならば、μ−3σ以上、μ+3σ以下の範囲に99.74%の検査エッジ点が収まることになる。したがって、μ+3σ以上となる検査エッジ点は、統計的には、検査関数から特に大きく乖離していると見なすことができる。そこで、除外条件を、検査エッジ誤差がμ+3σ以上となること、と設定してもよい。また、μ+3σ以上となっても、別の検査関数との検査エッジ誤差がμ+3σ以内に収まるのであれば、そのような検査エッジ点を除外せずに、クラス分類を変更してもよい。
【0061】
欠損点は、ワークの大きな欠損を示唆しているかもしれないし、単に検査画像の画像ノイズに起因するのかもしれない。いずれにしても、欠損点は、ワークの理想的な輪郭線、いいかえれば、マスタの輪郭線から大きく外れているため、以後の処理においては欠損点は計算処理から除外される。
【0062】
検査モデル誤差算出部170は、欠損点以外の検査エッジ点の検査エッジ誤差に基づいて、検査モデル誤差を算出する。検査モデル誤差の算出方法は、基本モデル誤差の算出方法と同様である。欠損点を除外しているため、ワークに大きな欠損が生じていても、検査モデル誤差が過度に大きくなりにくい。
【0063】
検査モデル誤差が所定の閾値Tm3未満であれば、検査関数はそのまま確定する。Tm3以上であれば、検査関数特定部172は新たなクラス分類L1〜L4、Cに基づいて検査関数を再計算する。具体的には、クラスL1〜L4に基づいて直線の関数l1〜l4を再計算し、クラスCに基づいて円の関数f1を再計算する。クラスEの欠損点は考慮されない。検査関数を再計算したあと、各検査エッジ点について検査エッジ誤差(第2検査エッジ誤差)を算出する。このときにも、上述の方法により欠損点を特定し、以後の計算処理から除外する。検査モデル誤差算出部170は、新たな検査関数についての検査モデル誤差を計算する。検査モデル誤差が閾値Tm3未満となるか、検査関数の算出回数が所定の上限回数に達するまで検査関数は繰り返し算出される。検査関数を計算とクラスの分類や欠損点の除外を繰り返すことにより、検査関数の精度を高めることができる。
【0064】
検査関数から大きく乖離する欠損点はクラスEに分類されるが、検査関数からの乖離が小さい検査エッジ点はクラスL1〜L4、Cのいずれかに分類される。検査関数が確定したあと、欠損候補点特定部175は、クラスL1〜L4、Cに属する検査エッジ点の中から欠損候補点を検出する。大きな欠損を示す検査エッジ点は「欠損点」としてクラスEに分類されている。しかし、ワークには欠損点のような大きな欠損だけではなくごく小さな欠損を生じることもある。そこで、欠損候補点特定部175は、確定後の検査関数に対する検査エッジ誤差が所定の閾値To以上となっている検査エッジ点を欠損候補点として検出する。閾値Toは、欠損点を特定するための閾値Tn以下の値であり、セル200の個体差(1〜2mm)以下の距離を示す値であってもよい。
【0065】
欠損判定部176は、所定の「欠損検出条件」が成立するとき、ワークを欠損品と判定する。それ以外の場合にはワークを合格品と判定する。欠損検出条件とは、たとえば、所定個数以上の欠損候補点が検出されることであってもよい。また、所定個数以上の欠損点が抽出されることであってもよいし、欠損点と欠損候補点の合計数が所定個数以上となることであってもよい。欠損点を欠損候補点とみなしてもよい。ワークの検査画像において局所的に欠損点や欠損候補点が発生しているときには欠損検出条件が成立する、としてもよい。具体的には、所定の大きさの範囲内から欠損点や欠損候補点が所定個数以上検出されることを欠損検出条件としてもよい。たとえば、ワークの左上面取り部分から、欠損候補点や欠損点が所定数以上検出されたときには、左上面取り部分に欠損が発生している可能性が高いと判断できる。このほかにも、欠損候補点についての検査エッジ誤差の合計値や平均値が所定値以上であることや、検査エッジ点全体に占める欠損候補点や欠損点の割合が所定割合以上であるとき、欠損検出条件成立としてもよい。いずれにしても欠損検出条件とは、欠損候補点や欠損点の数やその検査エッジ誤差の大きさにより欠損の有無を判断するための条件であればよい。
【0066】
上述のように、ワーク処理においては、基本関数に基づいて欠損判定をしているのではなく、検査関数に基づいて欠損判定している。いいかえれば、マスタの輪郭線とワークの輪郭線を直接比較して欠損判定しているのではなく、ワークの輪郭線に対する部分的な乖離の有無に基づいて欠損判定している。このような欠損判定方法により、セル200の個体差を許容しつつ、大小の欠損を検出している。以下、(1)個体差はあるが欠損はないワーク、(2)大きな欠損があるワーク、(3)小さな欠損があるワーク、のそれぞれについて、想定される欠損判定の流れを説明する。原理の明確化のため、以下の例では、基本画像や検査画像に画像ノイズはないものと仮定する。
【0067】
図13は、(1)個体差はあるが欠損はないワークについての検査関数を示す図である。点線で示すマスタ214に比べて実線で示すワーク216は面取り部分において若干小さいとする。マスタ214とワーク216の面取り部分の差が個体差程度であれば、基本関数や検査関数から大きく乖離する検査エッジ点(欠損点)は検出されない。個体差ゆえ、基本関数のf1により定義される円よりも検査関数のf1’により定義される円は若干小さくなる。関数f1はマスタ214の円形基本関数において面取り部分を表現する関数であり、関数f1’はワーク216の円形基本関数において面取り部分を表現する関数である。欠損が存在しないので検査関数f1’から乖離する検査エッジ点も見いだされることなく、欠損候補点も検出されない。したがって、欠損判定部176は、このようなワーク216を合格品と判定する。すなわち、マスタ214とワーク216の差が個体差があって検査関数と基本関数が一致しなくても、その個体差が「欠損点」と認定されるほど大きくなければ、個体差を原因として欠損品と判定されることはない。
【0068】
図14は、(2)大きな欠損があるワークについての検査関数を示す図である。このワーク216には、大きな割れが生じている。マスタとワーク216に個体差はないとする。初期検査関数に対する検査エッジ誤差、いいかえれば、第1検査エッジ誤差が大きい検査エッジ点が欠損点として多数検出される。図14の場合、割れ部分である大欠損部分218から多数の欠損点が検出される。欠損点を除外して検査関数を計算するため、大欠損部分218は検査関数の算出過程に影響しない。したがって、基本関数と検査関数はほとんど同一となる。欠損判定部176は、多くの欠損点が検出されたため、このようなワークを欠損品と判定する。
【0069】
図15は、(3)小さな欠損があるワークについての検査関数を示す図である。このワーク216には、小欠損部分220において小さな欠けが生じている。マスタとワーク216に個体差はないとする。欠損が小さいため欠損点は検出されない。小さな欠けの影響により、基本関数のf1により定義される円よりも検査関数のf1’により定義される円は若干小さくなるかもしれない。欠損候補点特定部175は、小欠損部分220から数個の欠損候補点を検出する。したがって、欠損判定部176は、このようなワークを欠損品と判定する。
【0070】
直線形基本関数が選択された場合にも、ワーク処理の内容は基本的に同様である。検査エッジ誤差算出部168は、検査エッジ点と検査関数に含まれる関数l1〜l4、g1〜g4を対象として検査エッジ誤差を算出する。検査エッジ処理部158の分類部162は、全検査エッジ点をクラスL1〜L4、C1〜C4、Eのいずれかに再分類する。ここでクラスC1〜C4は、関数g1〜g4に対応する。欠損点特定部174は、欠損点をクラスEに分類する。検査モデル誤差算出部170は、欠損点以外の検査エッジ点についての検査エッジ誤差に基づいて、検査モデル誤差を算出する。検査モデル誤差が所定の閾値Tm3未満であれば、検査関数はそのまま確定する。Tm3以上であれば、検査関数特定部172は新たなクラス分類L1〜L4、C1〜C4に基づいて検査関数を再計算する。具体的には、クラスL1〜L4に基づいて直線の関数l1〜l4を再計算し、クラスC1〜C4に基づいて直線の関数g1〜g4を再計算する。検査モデル誤差が閾値Tm3未満となるか、検査関数の算出回数が所定の上限回数に達するまで検査関数は繰り返し算出される。検査関数が確定したあと、欠損候補点特定部175は、クラスL1〜L4、C1〜C4に所属する検査エッジ点の中から欠損候補点を検出する。欠損判定部176は、欠損候補点に基づいて欠損判定を実行する。
【0071】
最後に、以上に示したマスタ処理およびワーク処理の処理過程をまとめる。
【0072】
図16は、マスタ処理の処理過程を示すフローチャートである。図16に示す処理は、通常、マスタとなるセル200を対象として1回だけ実行される。基本撮像部114は、まず、基本画像を取得する(S10)。抽出部120は、基本画像から基本エッジ点を抽出する(S12)。分類部122は、エッジ方位に基づいて、各基本エッジ点をクラスL1〜L4、Uに分類する(S14)。基本関数特定部124は、クラスL1〜L4に属する基本エッジ点から、マスタの4辺にあたる直線l1〜l4を算出する(S16)。基本関数特定部124および誤差算出部126は、円モデル化処理として円形基本関数を特定し(S18)、直線モデル化処理として直線形基本関数を特定する(S20)。円モデル化処理および直線モデル化処理の詳細については、それぞれ、図17、図18に関連して詳述する。基本関数選択部132は、円形基本関数の基本モデル誤差と直線形基本関数の基本モデル誤差を比較し、基本モデル誤差が小さい方の基本関数を選択する(S22)。基本関数特定部124は、選択された基本関数に関する各種定数パラメータをパラメータ保持部138に保存する(S24)。
【0073】
図17は、図16のS18における円モデル化処理の詳細を示すフローチャートである。まず、基本関数特定部124は、図7、図8に関連して説明した方法にて、コーナー点Q1〜Q4、中心点Cを特定した上で、コーナー近傍点を特定する(S26)。基本関数特定部124は、図9に関連して説明した方法にて、円形基本関数(l1〜l4およびf1)を算出する(S28)。基本エッジ誤差算出部128は、各基本エッジ点についての基本エッジ誤差を算出する(S30)。分類部122は、基本エッジ誤差に基づいて、図11に関連して説明した方法にて、各基本エッジ点をクラスL1〜L4、Cのいずれかに分類する(S32)。基本モデル誤差算出部130は、基本エッジ誤差に基づいて、基本モデル誤差を算出する(S34)。基本モデル誤差が閾値Tm1未満であれば(S36のY)、円モデル化処理は完了し、円形基本関数はそのまま確定する。
【0074】
基本モデル誤差が閾値Tm1以上であれば(S36のN)、基本関数特定部124はS32におけるクラス分類の結果に基づいて、再度、円形基本関数を算出する(S28)。こうして、円形基本関数に基づく基本エッジ点の分類(S32)を繰り返しながら、基本モデル誤差がTm1未満となる円形基本関数を算出する。なお、S36においては、円形基本関数の算出回数が所定回数を超えたときにも、円モデル化処理が完了するとしてもよい。
【0075】
図18は、図16のS20における直線モデル化処理の詳細を示すフローチャートである。基本関数特定部124は、円モデル化処理において特定したコーナー近傍点に基づいて、直線形基本関数(l1〜l4、g1〜g4)を算出する(S40)。基本エッジ誤差算出部128は、各基本エッジ点についての基本エッジ誤差を算出する(S42)。分類部122は、基本エッジ誤差に基づいて、各基本エッジ点をクラスL1〜L4、C1〜C4のいずれか分類する(S44)。基本モデル誤差算出部130は、基本エッジ誤差に基づいて、基本モデル誤差を算出する(S34)。基本モデル誤差が閾値Tm2未満であれば(S36のY)、直線モデル化処理は完了し、直線形基本関数はそのまま確定する。
【0076】
基本モデル誤差が閾値Tm2以上であれば(S48のN)、基本関数特定部124はS44におけるクラス分類の結果に基づいて、再度、直線形基本関数を算出する(S40)。こうして、直線形基本関数に基づく基本エッジ点の分類(S44)を繰り返しながら、基本モデル誤差がTm2未満となる直線形基本関数を算出する。なお、S48においても、直線形基本関数の算出回数が所定回数を超えたときに、直線モデル化処理が完了するとしてもよい。
【0077】
図19は、ワーク処理の処理過程を示すフローチャートである。図19に示す処理は、ワークとなるセル200が選択されるごとに実行される。検査撮像部154は、まず、検査画像を取得する(S50)。抽出部160は、検査画像から検査エッジ点を抽出する(S52)。分類部162は、エッジ方位に基づいて、各検査エッジ点をクラスL1〜L4、Uに分類する(S53)。検査関数特定部172は、クラスL1〜L4に所属する検査エッジ点から、ワークの4辺にあたる直線l1〜l4を算出する(S54)。また、コーナー点や中心点も算出する。基本関数調整部164は、基本関数の位置および向きをワークにあわせて調整する(S56)。調整後の基本関数を初期検査関数として設定する。
【0078】
検査エッジ誤差算出部168は、各検査エッジ点についての検査エッジ誤差(第1検査エッジ誤差)を算出する(S58)。分類部162は、第1検査エッジ誤差に基づいて、各検査エッジ点をいずれかのクラスに分類する(S60)。欠損点特定部174が欠損点を検出したときには、欠損点はクラスEに分類される(S62)。検査モデル誤差算出部170は、検査エッジ誤差に基づいて、検査モデル誤差を算出する(S64)。検査モデル誤差が閾値Tm3未満であれば(S66のY)、検査関数はそのまま確定する。閾値Tm3以上の場合には(S66のN)、検査関数特定部172はS60における分類結果に基づいて、再度、検査関数を算出する(S72)。
【0079】
こうして、検査エッジ点の分類(S60)と欠損点の除外(S62)を繰り返しながら、検査モデル誤差がTm3未満となる検査関数を算出する。なお、S66においては、検査関数の算出回数が所定回数を超えたときに、検査モデル誤差がTm3以上であっても、検査関数をそのまま確定させるとしてもよい。欠損判定部176は、閾値Tm3未満となる検査関数を特定できなかったときには、ワークを欠損品と判定してもよい。
【0080】
検査関数が確定すると(S66のY)、欠損候補点特定部175は欠損候補点を検出する(S68)。欠損判定部176は、欠損候補点に基づいて、ワークが合格品か欠損品かを判定する(S70)。
【0081】
以上、実施の形態に基づいて、形状欠損検査装置100を説明した。マスタ処理により、セル200の輪郭線を数学的に表現した基本関数を特定できる。基本関数は、円形基本関数や直線形基本関数のように複数種類用意することが好ましい。そして、各基本関数ごとに基本モデル誤差を算出することにより、マスタの形状に適合した基本関数を選択できる。一般的には、基本画像の濃淡値から各基本エッジ点のエッジ方位(法線ベクトル)を正確に求めるのは難しい。しかし、本実施の形態におけるマスタ処理によれば、エッジ方位に基づいて基本エッジ点を仮分類したあと、基本エッジ誤差に基づいて基本エッジ点を再分類している。このため、基本エッジ点のクラス分類精度が高まり、基本関数の精度も高まることになる。
【0082】
ワーク処理では、基本関数と同型の検査関数により、ワークの輪郭線を数学的に表現できる。ワークの個体差が検査関数に反映される。いわば、検査関数は、個体差を考慮した上で、ワークのあるべき輪郭線を示す関数である。検査関数と検査エッジ点の距離である検査エッジ誤差に基づいて欠損候補点を特定するため、ワークの割れや欠けを自動的に検出できる。特に大きな欠損が生じているときには、欠損点が計算過程から除外されるため、欠損点の存在によって検査関数が歪むのを防いでいる。大きな欠損が生じているワークであっても、残りの正常部分に基づいて検査関数を算出できる。これにより、セル200の個体差を考慮しつつ、大小の欠損を合理的に検出可能となる。
【0083】
本実施の形態に示す形状欠損検査装置100によれば、複数の直線および曲線を含む複雑な形状の対象物に対して、理想的なモデルを自動的に選択できる。また、ワークの外形を構成するエッジ点を高精度にて分類できるため、個体差に影響されることなく微小な欠損を検出しやすくなる。更に、ワークから得られた情報(検査関数)だけではなく、マスタから得られた情報(基本関数)も使用するため、微小な欠損(欠け)と共に大きな欠損(割れ)も検出できる。
【0084】
本実施の形態においては、太陽電池のセル200を対象として説明したが、検査対象物体はこれに限られるものではない。たとえば、プリント基板、ネームプレート、アクリル板プレートやガラス板、瓦、セラミック製品等、矩形形状を有する物体であれば広く検査対象物体とできる。特に、矩形の角部分の形状にバリエーションがある場合でも、適切な基本関数を用意することにより、精度の高い形状欠損検出が可能となる。また、ワークの検査関数に基づいて数学的に欠損判定しているため、マスタの基準画像とワークの検査画像を画素単位で直接比較するよりも検出精度が高い。
【0085】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0086】
本実施の形態においては、検査関数の算出過程において、欠損点を検出・除外することにより、検査関数と基本関数が過度に乖離するのを防いでいる。変形例として、欠損点を検出・除外せずに、検査関数を算出してもよい。この場合には、大きな欠損を有するワークの場合、大きな欠損によって検査関数は大きく変化するかもしれない。欠損判定部176は、基本関数により定義される輪郭線と検査関数により定義される輪郭線のずれの大きさが所定範囲内であれば個体差として許容し、所定範囲外であれば欠損品と判定してもよい。たとえば、円形基本関数であれば、検査関数における半径rと基本関数の半径rを比較すればよい。直線形基本関数であれば、検査関数におけるg1〜g4の傾きや切片と、基本関数におけるg1〜g4の傾きや切片を比較すればよい。
【0087】
適切な基本関数が与えられる状況においては、形状欠損検査装置100のうちワーク処理部150のみを「形状欠損検査装置」として使用してもよい。また、マスタ処理部110のみを「形状モデリング装置」として抽出し、さまざまなモデリング対象物体の輪郭線を数学的に表現するための基本関数を算出する装置として機能させてもよい。
【符号の説明】
【0088】
100 形状欠損検査装置
110 マスタ処理部
114 基本撮像部
118 基本エッジ処理部
120 抽出部
122 分類部
124 基本関数特定部
126 誤差算出部
128 基本エッジ誤差算出部
130 基本モデル誤差算出部
132 基本関数選択部
134 データ保持部
150 ワーク処理部
154 検査撮像部
158 検査エッジ処理部
164 基本関数調整部
166 誤差算出部
168 検査エッジ誤差算出部
170 検査モデル誤差算出部
172 検査関数特定部
174 欠損点特定部
175 欠損候補点特定部
176 欠損判定部

【特許請求の範囲】
【請求項1】
検査対象物体を所定方向から撮像することにより、検査画像を取得する検査撮像部と、
前記検査画像を参照し、前記検査対象物体の輪郭部分に位置する点である検査エッジ点の座標を特定する検査エッジ抽出部と、
所定の基本関数と検査エッジ点との距離である第1検査エッジ誤差を検査エッジ点ごとに算出する第1検査エッジ誤差算出部と、
第1検査エッジ誤差が所定の除外条件を充足する検査エッジ点を欠損点として特定する欠損点特定部と、
欠損点以外の検査エッジ点の座標に基づいて、前記検査対象物体の輪郭線を定義するための検査関数を算出する検査関数特定部と、
検査エッジ点と前記検査関数の距離である第2検査エッジ誤差を検査エッジ点ごとに算出する第2検査エッジ誤差算出部と、
第2検査エッジ誤差が所定の閾値以上となる検査エッジ点を欠損候補点として特定する欠損候補点特定部と、
欠損候補点について所定の欠損検出条件が充足されるとき、前記検査対象物体を欠損品と判定する欠損判定部と、
を備えることを特徴とする形状欠損検査装置。
【請求項2】
前記基本関数は、前記検査対象物体のひな形の輪郭線を定義する関数であり、
前記検査関数は、前記基本関数と同型の関数であり、
前記ひな形は、前記所定方向から見たときに角部分が面取りされた矩形状の輪郭を有する物体であることを特徴とする請求項1に記載の形状欠損検査装置。
【請求項3】
前記欠損点特定部は、更に、第2検査エッジ誤差が前記除外条件を充足する検査エッジ点も欠損点として特定し、
前記検査関数特定部は、第2検査エッジ誤差により特定された欠損点も除外して、前記検査関数を再計算することを特徴とする請求項1または2に記載の形状欠損検査装置。
【請求項4】
各検査エッジ点の第2検査エッジ誤差に基づいて、検査エッジ点集合と前記検査関数との誤差の大きさを示す検査モデル誤差を算出する検査モデル誤差算出部、を更に備え、
前記検査関数特定部は、検査モデル誤差が所定値以上となることを条件として、前記検査関数を再計算することを特徴とする請求項3に記載の形状欠損検査装置。
【請求項5】
前記検査対象物体は、太陽電池セルであることを特徴とする請求項1から4のいずれか一項に記載の形状欠損検査装置。
【請求項6】
検査対象物体を所定方向から撮像することにより、検査画像を取得する検査撮像部と、
前記検査画像を参照し、前記検査対象物体の輪郭部分に位置する点である検査エッジ点の座標を特定する検査エッジ抽出部と、
検査エッジ点の座標に基づいて、前記検査対象物体の輪郭線を定義するための検査関数を算出する検査関数特定部と、
検査エッジ点と検査関数との距離である検査エッジ誤差を検査エッジ点ごとに算出する検査エッジ誤差算出部と、
検査エッジ誤差が所定の閾値以上となる検査エッジ点を欠損候補点として特定する欠損候補点特定部と、
欠損候補点について所定の欠損検出条件が充足されるとき、前記検査対象物体を欠損品と判定する欠損判定部と、を備え、
前記欠損判定部は、前記検査関数により定義される輪郭線が前記検査対象物体のひな形の輪郭線から所定距離以上離れるときにも、前記検査対象物体を欠損品と判定することを特徴とする形状欠損検査装置。
【請求項7】
モデリング対象物体を所定方向から撮像することにより、基本画像を取得する基本撮像部と、
前記基本画像を参照し、前記モデリング対象物体の輪郭部分に位置する点である基本エッジ点の座標を特定する基本エッジ抽出部と、
基本エッジ点の座標に基づいて、前記モデリング対象物体の輪郭線を定義するための複数種類の基本関数それぞれの定数パラメータを特定する基本関数特定部と、
基本エッジ点と基本関数の距離である基本エッジ誤差を、基本エッジ点と基本関数の組みあわせごとに算出する基本エッジ誤差算出部と、
各基本エッジ点の基本エッジ誤差に基づいて、基本エッジ点集合と基本関数との誤差の大きさを示す基本モデル誤差を基本関数ごとに算出する基本モデル誤差算出部と、
前記複数種類の基本関数のうち基本モデル誤差が最小となる基本関数を前記モデリング対象物体の輪郭線を定義するための関数として選択する基本関数選択部と、
を備えることを特徴とする形状モデリング装置。
【請求項8】
モデリング対象物体を所定方向から撮像することにより、基本画像を取得する基本撮像部と、
前記基本画像を参照し、前記モデリング対象物体の輪郭部分に位置する点である基本エッジ点の座標を特定する基本エッジ抽出部と、
基本エッジ点の座標に基づいて、前記モデリング対象物体の輪郭線を定義するための複数種類の基本関数それぞれの定数パラメータを特定する基本関数特定部と、
基本エッジ点と基本関数の距離である基本エッジ誤差を、基本エッジ点と基本関数の組みあわせごとに算出する基本エッジ誤差算出部と、
各基本エッジ点の基本エッジ誤差に基づいて、基本エッジ点集合と基本関数との誤差の大きさを示す基本モデル誤差を基本関数ごとに算出する基本モデル誤差算出部と、
前記複数種類の基本関数のうち基本モデル誤差が最小となる基本関数を前記モデリング対象物体の輪郭線を定義するための関数として選択する基本関数選択部と、
前記モデリング対象物体をひな形とする検査対象物体を所定方向から撮像することにより、検査画像を取得する検査撮像部と、
前記検査画像を参照し、前記検査対象物体の輪郭部分に位置する点である検査エッジ点の座標を特定する検査エッジ抽出部と、
前記選択された基本関数と検査エッジ点との距離である第1検査エッジ誤差を検査エッジ点ごとに算出する第1検査エッジ誤差算出部と、
第1検査エッジ誤差が所定の除外条件を充足する検査エッジ点を欠損点として特定する欠損点特定部と、
欠損点以外の検査エッジ点の座標に基づいて、前記検査対象物体の輪郭線を定義する関数であって前記選択された基本関数と同型となる検査関数の定数パラメータを特定する検査関数特定部と、
検査エッジ点と検査関数の距離である第2検査エッジ誤差を検査エッジ点ごとに算出する第2検査エッジ誤差算出部と、
第2検査エッジ誤差が所定の閾値以上となる検査エッジ点を欠損候補点として特定する欠損候補点特定部と、
欠損候補点について所定の欠損検出条件が充足されるとき、前記検査対象物体を欠損品と判定する欠損判定部と、
を備えることを特徴とする形状欠損検査装置。
【請求項9】
検査対象物体を所定方向から撮像することにより、検査画像を取得する機能と、
前記検査画像を参照し、前記検査対象物体の輪郭部分に位置する点である検査エッジ点の座標を特定する機能と、
所定の基本関数と検査エッジ点との距離である第1検査エッジ誤差を検査エッジ点ごとに算出する機能と、
第1検査エッジ誤差が所定の除外条件を充足する検査エッジ点を欠損点として特定する機能と、
欠損点以外の検査エッジ点の座標に基づいて、前記検査対象物体の輪郭線を定義するための検査関数の定数パラメータを特定する機能と、
検査エッジ点と検査関数の距離である第2検査エッジ誤差を検査エッジ点ごとに算出する機能と、
第2検査エッジ誤差が所定の閾値以上となる検査エッジ点を欠損候補点として特定する機能と、
欠損候補点について所定の欠損検出条件が充足されるとき、前記検査対象物体を欠損品と判定する機能と、
をコンピュータに発揮させることを特徴とする形状欠損検査プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2010−256053(P2010−256053A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2009−103562(P2009−103562)
【出願日】平成21年4月22日(2009.4.22)
【出願人】(505361093)ヴィスコ・テクノロジーズ株式会社 (6)
【Fターム(参考)】