(57)【要約】【課題】検査対象物体の形状を観察し、個体差を考慮しつつ欠損を検出する。【解決手段】検査撮像部１５４は、ワークとなるセルを撮像して検査画像を取得する。抽出部１６０は、検査画像を参照し、ワークの輪郭部分に位置する点である検査エッジ点のを特定する。検査エッジ誤差算出部１６８は、マスタとなるセルの輪郭線を定義する基本関数と検査エッジ点の距離を算出し、欠損点特定部１７４は乖離が大きい検査エッジ点を欠損点として除外する。検査関数特定部１７２は、欠損点以外の検査エッジ点の座標に基づいて、ワークの輪郭線を定義するための検査関数を算出する。検査エッジ誤差算出部１６８は、検査関数と検査エッジ点の距離を算出する。検査関数から乖離する検査エッジ点は欠損候補点として特定される。欠損判定部１７６は、欠損候補点に基づいて、ワークの欠損を判定する。【選択図】図４
2010256053.tif 000002
【特許請求の範囲】
【請求項１】
検査対象物体を所定方向から撮像することにより、検査画像を取得する検査撮像部と、
前記検査画像を参照し、前記検査対象物体の輪郭部分に位置する点である検査エッジ点の座標を特定する検査エッジ抽出部と、
所定の基本関数と検査エッジ点との距離である第１検査エッジ誤差を検査エッジ点ごとに算出する第１検査エッジ誤差算出部と、
第１検査エッジ誤差が所定の除外条件を充足する検査エッジ点を欠損点として特定する欠損点特定部と、
欠損点以外の検査エッジ点の座標に基づいて、前記検査対象物体の輪郭線を定義するための検査関数を算出する検査関数特定部と、
検査エッジ点と前記検査関数の距離である第２検査エッジ誤差を検査エッジ点ごとに算出する第２検査エッジ誤差算出部と、
第２検査エッジ誤差が所定の閾値以上となる検査エッジ点を欠損候補点として特定する欠損候補点特定部と、
欠損候補点について所定の欠損検出条件が充足されるとき、前記検査対象物体を欠損品と判定する欠損判定部と、
を備えることを特徴とする形状欠損検査装置。
【請求項２】
前記基本関数は、前記検査対象物体のひな形の輪郭線を定義する関数であり、
前記検査関数は、前記基本関数と同型の関数であり、
前記ひな形は、前記所定方向から見たときに角部分が面取りされた矩形状の輪郭を有する物体であることを特徴とする請求項１に記載の形状欠損検査装置。
【請求項３】
前記欠損点特定部は、更に、第２検査エッジ誤差が前記除外条件を充足する検査エッジ点も欠損点として特定し、
前記検査関数特定部は、第２検査エッジ誤差により特定された欠損点も除外して、前記検査関数を再計算することを特徴とする請求項１または２に記載の形状欠損検査装置。
【請求項４】
各検査エッジ点の第２検査エッジ誤差に基づいて、検査エッジ点集合と前記検査関数との誤差の大きさを示す検査モデル誤差を算出する検査モデル誤差算出部、を更に備え、
前記検査関数特定部は、検査モデル誤差が所定値以上となることを条件として、前記検査関数を再計算することを特徴とする請求項３に記載の形状欠損検査装置。
【請求項５】
前記検査対象物体は、太陽電池セルであることを特徴とする請求項１から４のいずれか一項に記載の形状欠損検査装置。
【請求項６】
検査対象物体を所定方向から撮像することにより、検査画像を取得する検査撮像部と、
前記検査画像を参照し、前記検査対象物体の輪郭部分に位置する点である検査エッジ点の座標を特定する検査エッジ抽出部と、
検査エッジ点の座標に基づいて、前記検査対象物体の輪郭線を定義するための検査関数を算出する検査関数特定部と、
検査エッジ点と検査関数との距離である検査エッジ誤差を検査エッジ点ごとに算出する検査エッジ誤差算出部と、
検査エッジ誤差が所定の閾値以上となる検査エッジ点を欠損候補点として特定する欠損候補点特定部と、
欠損候補点について所定の欠損検出条件が充足されるとき、前記検査対象物体を欠損品と判定する欠損判定部と、を備え、
前記欠損判定部は、前記検査関数により定義される輪郭線が前記検査対象物体のひな形の輪郭線から所定距離以上離れるときにも、前記検査対象物体を欠損品と判定することを特徴とする形状欠損検査装置。
【請求項７】
モデリング対象物体を所定方向から撮像することにより、基本画像を取得する基本撮像部と、
前記基本画像を参照し、前記モデリング対象物体の輪郭部分に位置する点である基本エッジ点の座標を特定する基本エッジ抽出部と、
基本エッジ点の座標に基づいて、前記モデリング対象物体の輪郭線を定義するための複数種類の基本関数それぞれの定数パラメータを特定する基本関数特定部と、
基本エッジ点と基本関数の距離である基本エッジ誤差を、基本エッジ点と基本関数の組みあわせごとに算出する基本エッジ誤差算出部と、
各基本エッジ点の基本エッジ誤差に基づいて、基本エッジ点集合と基本関数との誤差の大きさを示す基本モデル誤差を基本関数ごとに算出する基本モデル誤差算出部と、
前記複数種類の基本関数のうち基本モデル誤差が最小となる基本関数を前記モデリング対象物体の輪郭線を定義するための関数として選択する基本関数選択部と、
を備えることを特徴とする形状モデリング装置。
【請求項８】
モデリング対象物体を所定方向から撮像することにより、基本画像を取得する基本撮像部と、
前記基本画像を参照し、前記モデリング対象物体の輪郭部分に位置する点である基本エッジ点の座標を特定する基本エッジ抽出部と、
基本エッジ点の座標に基づいて、前記モデリング対象物体の輪郭線を定義するための複数種類の基本関数それぞれの定数パラメータを特定する基本関数特定部と、
基本エッジ点と基本関数の距離である基本エッジ誤差を、基本エッジ点と基本関数の組みあわせごとに算出する基本エッジ誤差算出部と、
各基本エッジ点の基本エッジ誤差に基づいて、基本エッジ点集合と基本関数との誤差の大きさを示す基本モデル誤差を基本関数ごとに算出する基本モデル誤差算出部と、
前記複数種類の基本関数のうち基本モデル誤差が最小となる基本関数を前記モデリング対象物体の輪郭線を定義するための関数として選択する基本関数選択部と、
前記モデリング対象物体をひな形とする検査対象物体を所定方向から撮像することにより、検査画像を取得する検査撮像部と、
前記検査画像を参照し、前記検査対象物体の輪郭部分に位置する点である検査エッジ点の座標を特定する検査エッジ抽出部と、
前記選択された基本関数と検査エッジ点との距離である第１検査エッジ誤差を検査エッジ点ごとに算出する第１検査エッジ誤差算出部と、
第１検査エッジ誤差が所定の除外条件を充足する検査エッジ点を欠損点として特定する欠損点特定部と、
欠損点以外の検査エッジ点の座標に基づいて、前記検査対象物体の輪郭線を定義する関数であって前記選択された基本関数と同型となる検査関数の定数パラメータを特定する検査関数特定部と、
検査エッジ点と検査関数の距離である第２検査エッジ誤差を検査エッジ点ごとに算出する第２検査エッジ誤差算出部と、
第２検査エッジ誤差が所定の閾値以上となる検査エッジ点を欠損候補点として特定する欠損候補点特定部と、
欠損候補点について所定の欠損検出条件が充足されるとき、前記検査対象物体を欠損品と判定する欠損判定部と、
を備えることを特徴とする形状欠損検査装置。
【請求項９】
検査対象物体を所定方向から撮像することにより、検査画像を取得する機能と、
前記検査画像を参照し、前記検査対象物体の輪郭部分に位置する点である検査エッジ点の座標を特定する機能と、
所定の基本関数と検査エッジ点との距離である第１検査エッジ誤差を検査エッジ点ごとに算出する機能と、
第１検査エッジ誤差が所定の除外条件を充足する検査エッジ点を欠損点として特定する機能と、
欠損点以外の検査エッジ点の座標に基づいて、前記検査対象物体の輪郭線を定義するための検査関数の定数パラメータを特定する機能と、
検査エッジ点と検査関数の距離である第２検査エッジ誤差を検査エッジ点ごとに算出する機能と、
第２検査エッジ誤差が所定の閾値以上となる検査エッジ点を欠損候補点として特定する機能と、
欠損候補点について所定の欠損検出条件が充足されるとき、前記検査対象物体を欠損品と判定する機能と、
をコンピュータに発揮させることを特徴とする形状欠損検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の欠損を検出するための技術、特に、太陽電池セル（Solar cell）の欠損を検出するための技術、に関する。
【背景技術】
【０００２】
近年、再生可能エネルギー（Renewable Energy）に対する期待が高まっているが、その中でも太陽電池は特に注目されている。太陽電池は、太陽電池セル（以下、単に「セル」とよぶ）をつなぎ合わせてモジュールを作り、モジュールをつなぎ合わせてアレイを作り、更に、充放電コントローラや蓄電池をアレイに接続して構成される。セルは、いわゆる光起電力効果によって太陽の光エネルギーを電気エネルギーに変換する素子である。セルの生産投資は急増しつつあり、今後しばらくはこの傾向が続くと考えられている。
【０００３】
セルの形状はさまざまであるが、たとえば、１５０ｍｍ×１５０ｍｍ程度のサイズに対して厚みはわずか１２５μｍ程度である。製造中のセルには割れや欠け(以下、まとめて「欠損」とよぶ）が発生する可能性があるため、モジュールを組み立てる前に欠損を生じたセル（以下、「欠損品」とよぶ）を取り除く必要がある。今後、セルの薄厚化がいっそう進むため、セルの欠損を防ぐ技術だけでなく、セルの欠損を検出する技術も重要である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１３９５１９号公報
【特許文献２】特開平９−２８１０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
欠損を抑制するため、セルの角部分を面取りすることが多い。面取りは、欠損を抑制する上で効果的であるが、欠損をゼロにするのは難しい。また、面取りはセルに個体差を発生させる。セルの欠損を検出する際には、欠損なのか個体差なのかを判断する必要がある。
【０００６】
本発明は、上記課題に基づいて完成された発明であり、その主たる目的は、太陽電池セル等の検査対象物体の形状を観察し、個体差を考慮しつつ欠損を検出する技術、を提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係る形状欠損検査装置は、検査対象物体を撮像し、輪郭部分に位置する検査エッジ点を特定し、所定の基本関数と検査エッジ点との距離である第１検査エッジ誤差を検査エッジ点ごとに算出する。第１検査エッジ誤差が大きい検査エッジ点を欠損点として除外し、欠損点以外の検査エッジ点の座標に基づいて、検査対象物体の輪郭線を定義するための検査関数を算出する。更に、検査エッジ点と検査関数の距離である第２検査エッジ誤差を検査エッジ点ごとに算出し、第２検査エッジ誤差が大きい検査エッジ点を欠損候補点として特定する。欠損候補点について所定の欠損検出条件が充足されるとき、前記検査対象物体を欠損品と判定する。
【０００８】
本発明に係る別の形状欠損検査装置は、検査対象物体を撮像し、輪郭部分に位置する検査エッジ点を特定し、検査エッジ点の座標に基づいて検査対象物体の輪郭線を定義するための検査関数を算出し、検査エッジ点と検査関数との距離である検査エッジ誤差を検査エッジ点ごとに算出する。検査エッジ誤差が大きい検査エッジ点を欠損候補点として特定し、欠損候補点について所定の欠損検出条件が充足されるとき、検査対象物体を欠損品と判定する。また、検査関数により定義される輪郭線が検査対象物体のひな形の輪郭線から所定距離以上離れるときにも、検査対象物体を欠損品と判定する。
【０００９】
本発明に係る形状モデリング装置は、モデリング対象物体を撮像し、輪郭部分に位置する基本エッジ点を特定し、基本エッジ点の座標に基づいてモデリング対象物体の輪郭線を定義するための複数種類の基本関数を特定し、基本エッジ点と基本関数の距離である基本エッジ誤差を、基本エッジ点と基本関数の組みあわせごとに算出し、各基本エッジ点の基本エッジ誤差に基づいて、基本エッジ点集合と基本関数との誤差の大きさを示す基本モデル誤差を基本関数ごとに算出する。そして、複数種類の基本関数のうち基本モデル誤差が最小となる基本関数をモデリング対象物体の輪郭線を定義するための関数として選択する。
【００１０】
本発明に係る更に別の形状欠損検査装置は、モデリング対象物体を撮像し、輪郭部分に位置する基本エッジ点を特定し、基本エッジ点の座標に基づいてモデリング対象物体の輪郭線を定義するための複数種類の基本関数を特定し、基本エッジ点と基本関数の距離である基本エッジ誤差を、基本エッジ点と基本関数の組みあわせごとに算出し、各基本エッジ点の基本エッジ誤差に基づいて、基本エッジ点集合と基本関数との誤差の大きさを示す基本モデル誤差を基本関数ごとに算出する。そして、複数種類の基本関数のうち基本モデル誤差が最小となる基本関数をモデリング対象物体の輪郭線を定義するための関数として選択する。次に、モデリング対象物体をひな形とする検査対象物体を撮像し、輪郭部分に位置する検査エッジ点を特定し、基本関数と検査エッジ点との距離である第１検査エッジ誤差を検査エッジ点ごとに算出し、第１検査エッジ誤差が大きい検査エッジ点を欠損点として特定する。欠損点以外の検査エッジ点の座標に基づいて、検査対象物体の輪郭線を定義する関数であって基本関数と同型となる検査関数を特定し、検査エッジ点と検査関数の距離である第２検査エッジ誤差を検査エッジ点ごとに算出し、第２検査エッジ誤差が大きい検査エッジ点を欠損候補点として特定する。欠損候補点について所定の欠損検出条件が充足されるとき、検査対象物体を欠損品と判定する。
【００１１】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、検査対象物体の形状における個体差を考慮した上で、検査対象物体の欠損を検出しやすくなる。
【図面の簡単な説明】
【００１３】
【図１】セルの外観図である。
【図２】セルの欠損態様を示す図である。
【図３】検査システムのハードウェア構成図である。
【図４】形状欠損検査装置の機能ブロック図である。
【図５】基本画像を示す図である。
【図６】基本エッジ点をクラス分類する方法を説明するための模式図である。
【図７】マスタ領域のコーナー点と中央点を特定する方法を説明するための模式図である。
【図８】丸カットセルを想定して基本関数を算出する場合の模式図である。
【図９】線カットセルを想定して基本関数を算出する場合の模式図である。
【図１０】コーナー近傍点群から直線を近似する場合の模式図である。
【図１１】基本関数に基づく基本エッジ点の再分類を説明するための模式図である。
【図１２】欠損点を示す図である。
【図１３】（１）個体差はあるが欠損はないワークについての検査関数を示す図である。
【図１４】（２）大きな欠損があるワークについての検査関数を示す図である。
【図１５】（３）小さな欠損があるワークについての検査関数を示す図である。
【図１６】マスタ処理の処理過程を示すフローチャートである。
【図１７】図１６のＳ１８における円モデル化処理の詳細を示すフローチャートである。
【図１８】図１６のＳ２０における直線モデル化処理の詳細を示すフローチャートである。
【図１９】ワーク処理の処理過程を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。
【００１５】
図１は、本実施の形態において検査対象となるセル２００の外観図である。セル２００の形状はさまざまであるが、正方形や長方形といった矩形形状が一般的である。図１に示すセル２００ａ、２００ｂのように正方形を面取りしたタイプもあれば、セル２００ｃのように長方形を面取りしたタイプもある。セル２００ａ、２００ｂ、２００ｃをまとめていうときや特に区別しないときには、単に、「セル２００」とよぶ。正方形型のセル２００ａ、２００ｂのサイズは、たとえば、１５０ｍｍ×１５０ｍｍ程度である。以下、本実施の形態において検査対象となるセル２００のサイズは、１５６ｍｍ×１５６ｍｍであるとして説明する。
【００１６】
セル２００の角部分は欠損防止のために面取りされるが、面取りの形状・程度もさまざまである。セル２００ａ、２００ｃのように角部分が直線的にカットされたタイプもあれば(以下、「線カットセル」とよぶ）、セル２００ｂのように丸くカットされたタイプもある(以下、「丸カットセル」とよぶ）。面取りの形状・程度には規格がないため、メーカーＡの提供するセル２００とメーカーＢの提供するセル２００は、セル自体のサイズや面取りのタイプが同じであっても、面取り形状まで完全一致するとは限らない。更に、同一メーカーが提供する同一タイプのセル２００同士でも、面取り形状が完全一致するとは限らない。これは、セル２００の製造過程において面取り部分に個体差が発生するためである。
【００１７】
図２は、セル２００の欠損態様を示す図である。セル２００は、その製造過程において欠損を生じることがある。図２に示す欠損２０２ａは、セル２００の辺部分に生じている小さな欠けを示す。欠損２０２ｂは、セル２００の面取り部分に生じている小さな割れを示す。欠損２０２ｃは、セル２００の面取り部分全体に生じている大きな割れを示す。このように、セル２００に生じる欠損の形状や大きさはさまざまである。一般的には、欠損は面取り部分に発生しやすい。欠損２０２ａ、２０２ｂ、２０２ｃ等をまとめていうときや特に区別しないときには、単に、「欠損２０２」とよぶ。
【００１８】
欠損を生じると、その欠損からヒビが入って最終的にはセル２００自体が割れてしまう可能性がある。ごく小さな欠損であっても、モジュールの組み立て工程までに大きな破損に成長してしまうことがある。したがって、セル２００の製造段階で欠損を検出し、欠損品を除外する必要がある。本実施の形態において後述する形状欠損検査装置１００の目的は、検査対象物体としてのセル２００における欠損を検出することにより、欠損品を自動的に特定することである。
【００１９】
本実施の形態においては、最小欠損サイズとして０．５ｍｍ程度を想定する。もちろん、３ｍｍ以上の大きな欠損も発生し得る。セルの個体差は、面取り部分において１〜２ｍｍの範囲で生じる。セル２００の個体差をある程度許容しつつ、大小さまざまな欠損を検出する必要がある。
【００２０】
図３は、検査システム２０８のハードウェア構成図である。検査システム２０８では、まず、照明体２０４によってセル２００にバックライトを当てた状態で、カメラ２０６によりセル２００を撮影する。カメラ２０６は、セル２００の矩形面に対向するように設置される。形状欠損検査装置１００は、この撮影画像に基づいてセル２００の欠損を検出する。画像解像度としては、６４０×４８０、または、１６００×１２００程度を想定する。画像解像度は、処理効率やコスト、必要な検出精度等に鑑みて、決定すればよい。
【００２１】
セル２００の欠損検出は、「マスタ処理」と「ワーク処理」の２段階に分かれる。マスタ処理およびワーク処理の概要は以下の通りであるが、詳細については図５以降に関連して後述する。
【００２２】
マスタ処理：まず、欠損の存在しないセル２００、いいかえれば、ひな形となるセル２００(以下、「マスタ」とよぶ）を撮像する。このとき撮像された画像を「基本画像」とよぶ。形状欠損検査装置１００は、基本画像から、マスタの形状（輪郭線）を数学的に表現するための関数(以下、「基本関数」とよぶ）を算出する。マスタ処理の主目的は、この基本関数を算出することである。
【００２３】
ワーク処理：ワーク処理は、基本関数が得られた後に実行される。まず、検査対象となるセル２００、いいかえれば、欠損が存在するかもしれないセル２００(以下、「ワーク」とよぶ）を撮像する。このとき撮像された画像を「検査画像」とよぶ。形状欠損検査装置１００は、検査画像と基本関数から、ワークの形状（輪郭線）を数学的に表現するための関数(以下、「検査関数」とよぶ）を算出する。そして、この検査関数に基づいて、ワークが欠損品であるか合格品であるかを判定する。
【００２４】
マスタとワークが完全に同一形状であれば、それぞれの輪郭線をモデリングする基本関数と検査関数も同一となる。しかし、セル２００の面取り部分には個体差が生じやすいため、欠損のないワークであっても、基本関数と検査関数が一致するとは限らない。いいかえれば、基本関数と検査関数が不一致であっても、ワークが欠損品であるとは断定できない。これは、形状欠損検査装置１００の処理を理解する上で重要なポイントである。マスタ処理およびワーク処理の具体的な内容を説明する前に、形状欠損検査装置１００の構成を説明する。
【００２５】
図４は、形状欠損検査装置１００の機能ブロック図である。形状欠損検査装置１００は、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子で実現でき、ソフトウェア的にはデータ送受信機能のあるプログラム等によって実現されるが、図４ではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できる。ここでは、各機能ブロックの構成を中心として説明する。
【００２６】
形状欠損検査装置１００は、マスタ処理部１１０とワーク処理部１５０を含む。マスタ処理部１１０はマスタ処理を担当し、ワーク処理部１５０はワーク処理を担当する。マスタ処理部１１０はいわば「形状モデリング装置」として機能し、マスタというモデリング対象物体の形状を数学的に表現するために基本関数を算出する機能ブロックである。ワーク処理部１５０は狭義の「形状欠損検査装置」として機能し、ワークという検査対象物体の形状を数学的に表現するために検査関数を算出し、検査関数に基づいて欠損を検出する機能ブロックである。
【００２７】
［マスタ処理部１１０］
マスタ処理部１１０は、ＵＩ（ユーザインタフェース）部１１２、データ処理部１１６およびデータ保持部１３４を含む。ＵＩ部１１２は、ユーザインタフェース処理を担当する。データ処理部１１６は、ＵＩ部１１２やデータ保持部１３４から取得されたデータを元にして各種のデータ処理を実行する。データ処理部１１６は、ＵＩ部１１２とデータ保持部１３４の間のインタフェースの役割も果たす。データ保持部１３４は、各種データを保持するための記憶領域である。
【００２８】
ＵＩ部１１２は、基本撮像部１１４を含む。このほかにもユーザの操作を受け付ける入力部や、画面に各種情報を表示させる表示部を含んでもよい。基本撮像部１１４は、カメラ２０６を駆動してマスタを撮像し、基本画像を取得する。データ保持部１３４は、基本画像保持部１３６とパラメータ保持部１３８を含む。基本画像保持部１３６は、基本画像を保持する。パラメータ保持部１３８は、基本関数に関連する各種パラメータを保持する。
【００２９】
データ処理部１１６は、基本エッジ処理部１１８、基本関数特定部１２４、誤差算出部１２６および基本関数選択部１３２を含む。基本エッジ処理部１１８は、基本画像において、マスタの輪郭部分に位置する点(以下、「基本エッジ点」とよぶ）を処理する。基本エッジ処理部１１８は、抽出部１２０と分類部１２２を含む。抽出部１２０は、基本画像から基本エッジ点を抽出する。分類部１２２は、基本エッジ点をクラスに分類する。クラスについては後述する。
【００３０】
基本関数特定部１２４は、基本エッジ点の座標集合から、マスタの輪郭線を定義するための基本関数を算出する。基本関数特定部１２４は、基本関数の算出だけでなく、基本関数の算出に必要な他の計算処理も担当する。誤差算出部１２６は、基本エッジ点と基本関数の誤差計算に関する処理を担当する。誤差算出部１２６は、基本エッジ誤差算出部１２８と基本モデル誤差算出部１３０を含む。基本エッジ誤差算出部１２８は、基本エッジ点と基本関数との距離を「基本エッジ誤差」として算出する。本実施の形態においては、複数の基本関数を算出する。このため、基本エッジ誤差は、基本エッジ点と基本関数の組みあわせごとに算出される。基本モデル誤差算出部１３０は、基本関数と基本エッジ点の集合の乖離度を「基本モデル誤差」として指標化する。本実施の形態においては、複数の基本関数を算出するため、基本モデル誤差は、基本関数ごとに算出される。基本関数選択部１３２は、基本モデル誤差に基づいて、複数の基本関数の中からいずれかの基本関数を選択する。
【００３１】
［ワーク処理部１５０］
ワーク処理部１５０は、検査撮像部１５４、データ処理部１５６およびデータ保持部１７８を含む。ＵＩ部１５２は、ユーザインタフェース処理を担当する。データ処理部１５６は、ＵＩ部１５２やデータ保持部１７８から取得されたデータを元にして各種のデータ処理を実行する。データ処理部１５６は、ＵＩ部１５２とデータ保持部１７８の間のインタフェースの役割も果たす。データ保持部１７８は、各種データを保持するための記憶領域である。
【００３２】
ＵＩ部１５２は、検査撮像部１５４を含む。このほかにもユーザの操作を受け付ける入力部や、画面に各種情報を表示させる表示部を含んでもよい。検査撮像部１５４は、カメラ２０６を駆動してワークを撮像し、検査画像を取得する。データ保持部１７８は、検査画像保持部１８０とパラメータ保持部１８２を含む。検査画像保持部１８０は、検査画像を保持する。パラメータ保持部１８２は、検査関数に関連する各種パラメータを保持する。
【００３３】
データ処理部１５６は、検査エッジ処理部１５８、基本関数調整部１６４、検査関数特定部１７２、誤差算出部１６６、欠損点特定部１７４、欠損候補点特定部１７５および欠損判定部１７６を含む。検査エッジ処理部１５８は、検査画像において、ワークの輪郭部分に位置する点(以下、「検査エッジ点」とよぶ）を処理する。検査エッジ処理部１５８は、抽出部１６０と分類部１６２を含む。抽出部１６０は、検査画像から検査エッジ点を抽出する。分類部１６２は、検査エッジ点をクラスに分類する。
【００３４】
基本関数調整部１６４は、マスタ処理において選択された基本関数を検査画像に合うように位置調整する。検査関数特定部１７２は、検査エッジ点の座標集合から、ワークの輪郭線を定義するための検査関数を算出する。誤差算出部１６６は、検査エッジ点と検査関数の誤差計算に関する処理を担当する。誤差算出部１６６は、検査エッジ誤差算出部１６８と検査モデル誤差算出部１７０を含む。検査エッジ誤差算出部１６８は、検査エッジ点と検査関数との距離を「検査エッジ誤差」として算出する。検査エッジ点ごとに検査エッジ誤差が算出される。検査モデル誤差算出部１７０は、検査関数と検査エッジ点の集合の乖離の大きさを「検査モデル誤差」として指標化する。欠損点特定部１７４は、検査エッジ誤差に基づいて、検査関数から大きく乖離している検査エッジ点を「欠損点」として特定する。欠損候補点特定部１７５は、検査関数が確定したあと、検査関数に適合していない検査エッジ点を「欠損候補点」として特定する。欠損判定部１７６は、ワークが欠損品か合格品かを判定する。
【００３５】
以上をふまえ、マスタ処理の具体的な内容について説明する。
【００３６】
図５は、基本画像を示す図である。基本撮像部１１４は、カメラ２０６によりマスタを撮像し、基本画像２１２を取得する。同図横方向をｘ軸、縦方向をｙ軸とする。マスタには照明体２０４によってバックライトが当てられるため、マスタによって光が遮蔽される領域であるマスタ領域２１０とそれ以外の領域では画素の明るさ（濃淡値）が大きく異なる。したがって、濃淡値が大きく変化する場所にある点（画素）が、マスタの輪郭部分に位置する基本エッジ点である。図５では基本エッジ点を黒丸にて示している。基本エッジ点の集合により、マスタの輪郭線を見いだすことができる。基本エッジ処理部１１８の抽出部１２０は、基本画像から複数の基本エッジ点を抽出し、各基本エッジ点のｘｙ座標を一時的に保存する。このような濃淡値に基づく基本エッジ点の抽出方法は既知技術として一般的に利用されている。
【００３７】
図６は、基本エッジ点をクラス分類する方法を説明するための模式図である。基本エッジ処理部１１８の分類部１２２は、基本エッジ点ごとに法線ベクトル（エッジ方位）を求める。ここでいうエッジ方位とは、マスタ領域２１０の輪郭線となす角度が直角であって、マスタ領域２１０から外側に向かうベクトル（方向＋大きさ）である。ここでは、エッジ方位の大きさは「１」に正規化される。
【００３８】
エッジ方位も、各画素の濃淡値の変化に基づいて求められる。たとえば、図６に示す基本エッジ点Ｐ１やＰ２では、基本エッジ点の真左の画素は暗く、真右の画素は明るい。このとき、基本エッジ点Ｐ１、Ｐ２におけるエッジ方位（ｘ，ｙ）は、ｘ軸の正方向のベクトル（１，０）として特定される。同様の方法にて他の基本エッジ点についてもエッジ方位を求める。たとえば、基本エッジ点Ｐ３のエッジ方位（ｘ，ｙ）は（０，１）であり、基本エッジ点Ｐ４のエッジ方位（ｘ，ｙ）は（−１，０）である。
【００３９】
ここで、あらかじめ５種類のクラスＬ１、Ｌ２、Ｌ３、Ｌ４、Ｕを定義しておく。クラスＬ１はマスタ領域２１０の右辺、Ｌ２は下辺、Ｌ３は左辺、Ｌ４は上辺に対応する。また、Ｕは「不明」を意味するクラスである。クラスＬ１〜Ｌ４の分類基準を以下のように定義する。θは、−１８０°≦θ＜１８０°の範囲で定義される角度である（ｘの正方向がθ＝０°である）。θをこの範囲で変化させながら、クラスＬ１〜Ｌ４に分類された基本エッジ点の総数をカウントする。この総数が最も大きくなるときのθを確定させ、この確定したθについてクラスＬ１〜Ｌ４を確定させる。
Ｌ１：エッジ方位の向きが（θ−α）〜（θ＋α）の範囲にある基本エッジ点の集合
Ｌ２：エッジ方位の向きが（θ−９０−α）〜（θ−９０＋α）の範囲にある基本エッジ点の集合
Ｌ３：エッジ方位の向きが（θ−１８０−α）〜（θ−１８０＋α）の範囲にある基本エッジ点の集合
Ｌ４：エッジ方位の向きが（θ＋９０−α）〜（θ＋＋α）の範囲にある基本エッジ点の集合
【００４０】
仮にθ＝０°に確定したとすると、多くの基本エッジ点のエッジ方位が（１，０）となる。分類部１２２は、このような基本エッジ点をクラスＬ１に分類する。また、多くの基本エッジ点のエッジ方位は（０，１）となる。分類部１２２は、このような基本エッジ点を上辺に対応するクラスＬ４に分類する。Ｌ１〜Ｌ４のいずれにも分類されなかった基本エッジ点は不明クラスＵに分類される。
【００４１】
エッジ方位を参照することにより、各基本エッジ点がマスタ領域２１０の右辺、下辺、左辺、上辺、あるいはそれ以外のいずれに位置するかを特定できる。ただし、濃淡値はノイズの影響を受けやすく、また、画像解像度にも依存するため、濃淡値からエッジ方位を正確に求めるのは通常困難である。したがって、濃淡値とエッジ方位に基づくクラス分類は、仮分類にすぎない。
【００４２】
図７は、マスタ領域２１０のコーナー点と中央点を特定する方法を説明するための模式図である。基本関数特定部１２４は、クラスＬ１に属する基本エッジ点の集合を最小自乗法によって直線近似することにより、直線ｌ１を求める。同様にしてクラスＬ２から直線ｌ２、クラスＬ３から直線ｌ３、クラスＬ４から直線ｌ４を求める。基本関数特定部１２４は、直線ｌ１とｌ４の交点をコーナー点Ｑ１、ｌ１とｌ２の交点をコーナー点Ｑ２、ｌ２とｌ３の交点をコーナー点Ｑ３、ｌ３とｌ４の交点をコーナー点Ｑ４とする。次に、コーナー点Ｑ２とＱ４を結ぶ直線ｍ１とコーナー点Ｑ１とＱ３を結ぶ直線ｍ２を求め、その交点を中心点Ｃとする。
【００４３】
図８は、コーナー近傍点を特定する方法を説明するための模式図である。基本関数特定部１２４は、次に、５つのコーナー近傍点Ｒ０〜Ｒ４を特定する。コーナー近傍点とは、セル２００の面取り部分にある基本エッジ点のうち、コーナー点に近い数個の基本エッジ点である。図８は、コーナー点Ｑ４の周辺を示している。基本関数特定部１２４は、まず、コーナー点Ｑ４と各基本エッジ点との距離を算出し、コーナー点Ｑ４に最も近い基本エッジ点をコーナー近傍点Ｒ０として特定する。コーナー点Ｑ４に２番目に近い基本エッジ点をコーナー近傍点Ｒ１として特定する。以後同様であり、コーナー点Ｑ４に近い順にコーナー近傍点Ｒ０〜Ｒ４を特定する。コーナー点Ｑ１、Ｑ２、Ｑ３についても、それぞれ５つずつコーナー近傍点を特定する。コーナー近傍点の数は任意である。クラスＬ１〜Ｌ４に属する基本エッジ点の集合から直線ｌ１〜ｌ４を特定したように、コーナー近傍点の集合から、面取り部分の形状を表現するための関数を特定する。マスタが、丸カットセルと線カットセルのいずれのタイプであるかはこの段階では不明であるため、丸カットセルを想定した関数と線カットセルを想定した関数をそれぞれ求め、より実態に適合する方の関数を採用する。
【００４４】
図９は、丸カットセルを想定して基本関数を算出する場合の模式図である。基本関数特定部１２４は、まず、合計２０個のコーナー近傍点の集合を最小自乗法により円近似して、関数ｆ１を求める。関数ｆ１の中心点はＣであるため、半径ｒが導出対象となる。半径ｒは、面取りの大きさに依存する。直線の関数ｌ１〜ｌ４および円の関数ｆ１の５つの関数により、マスタ領域２１０の輪郭線、いいかえれば、マスタの輪郭線を数学的に表現できる。これら５つの関数ｌ１〜ｌ４、ｆ１は、マスタを丸カットセルとして表現した場合の基本関数(以下、「円形基本関数」ともよぶ）である。マスタが実際に丸カットセルであれば、円形基本関数によりマスタの輪郭線を適切に表現できる。
【００４５】
図１０は、線カットセルを想定して基本関数を算出する場合の模式図である。基本関数特定部１２４は、合計２０個のコーナー近傍点の集合を最小自乗法により直線近似することにより、関数ｇ１〜ｇ４を求める。関数ｇ１〜ｇ４もマスタの面取りの大きさに依存する。直線の関数ｌ１〜ｌ４および直線の関数ｇ１〜ｇ４の８つの関数により、マスタの輪郭線が数学的に表現できる。これら８つの関数がマスタを線カットセルとして表現した場合の基本関数(以下、「直線形基本関数」ともよぶ）である。マスタが実際に線カットセルであれば、円形基本関数よりも直線形基本関数の方がマスタの輪郭線を適切に表現できる。
【００４６】
図１１は、基本関数に基づいて基本エッジ点を再分類する方法を説明するための模式図である。図９や図１０に関連して説明した円形基本関数や直線形基本関数は、基本画像のエッジ方位（法線ベクトル）をベースとして算出しているが、エッジ方位は誤差が大きくなりやすいため、この段階で算出された基本関数にはそれほどの精度を期待できない。そこで、基本関数特定部１２４や誤差算出部１２６は、円形基本関数や直線形基本関数の精度を高めるための処理を実行する。ここでは、円形基本関数を例として説明するが、直線形基本関数についても考え方は同じである。
【００４７】
まず、基本エッジ誤差算出部１２８は、基本エッジ点と関数ｌ１〜ｌ４、ｆ１それぞれとの距離を基本エッジ誤差として算出する。ここで、クラスＵの代わりにクラスＣを定義する。Ｃは面取り部分を意味する。基本エッジ処理部１１８の分類部１２２は、基本エッジ点を基本エッジ誤差が最小となるクラスに再度分類する。たとえば、図１１に示す基本エッジ点Ｐ５について、関数ｌ１〜ｌ４、ｆ１それぞれとの５種類の基本エッジ誤差を算出する。関数ｆ１との基本エッジ誤差が最小であった場合には、分類部１２２は基本エッジ点Ｐ５をクラスＣに分類する。図６に関連して説明したエッジ方位に基づくクラス分類では、エッジ方位の誤差により基本エッジ点Ｐ５がたまたまクラスＬ３に分類されているかもしれない。基本エッジ誤差に基づくクラス分類を実行することにより、基本エッジ点の分類精度を高めることができる。
【００４８】
このようにして、基本エッジ処理部１１８の分類部１２２は、全基本エッジ点をクラスＬ１〜Ｌ４、Ｃのいずれかに分類する。基本モデル誤差算出部１３０は、各基本エッジ点の基本エッジ誤差に基づいて、基本モデル誤差を算出する。基本モデル誤差とは、各基本エッジ点の集合と基本関数との乖離度を表す指標値であり、基本モデル誤差が小さいほど基本関数がマスタの輪郭線を精度よく表現できていることを示す。本実施の形態においては、各基本エッジ点の基本エッジ誤差の合計値を基本モデル誤差として算出している。別例として、各基本エッジ点の基本エッジ誤差の分散を基本モデル誤差としてもよい。あるいは、クラスに応じて基本エッジ誤差を加重平均した値を基本モデル誤差としてもよい。いずれにしても、基本モデル誤差は、基本エッジ誤差が大きいほど、あるいは、基本関数から乖離した基本エッジ点が多いほど大きくなる値であることが好ましい。
【００４９】
基本モデル誤差が所定の閾値Ｔｍ１未満であれば、円形基本関数はそのまま確定する。Ｔｍ１以上であれば、基本関数特定部１２４は新たなクラス分類Ｌ１〜Ｌ４、Ｃに基づいて円形基本関数を再算出する。すなわち、クラスＬ１〜Ｌ４に基づいて直線の関数ｌ１〜ｌ４を再計算し、クラスＣに基づいて円の関数ｆ１を再計算する。こうして新たな円形基本関数を計算し、基本モデル誤差を再計算する。基本モデル誤差が閾値Ｔｍ１未満となるか、円形基本関数の算出回数が所定の上限回数に達するまで円形基本関数は繰り返し算出される。円形基本関数の計算とクラスの分類を繰り返すことにより、円形基本関数の精度を高めることができる。円形基本関数を算出する処理の流れについては、図１７のフローチャートに関連して後述する。
【００５０】
円形基本関数が確定した後、基本関数特定部１２４や誤差算出部１２６は、直線形基本関数についても同様の処理を実行する。基本エッジ誤差算出部１２８は、基本エッジ点と関数ｌ１〜ｌ４、ｇ１〜ｇ４それぞれとの距離を基本エッジ誤差として算出する。直線形基本関数の場合には、クラスＵの代わりにクラスＣ１〜Ｃ４を定義する。Ｃ１〜Ｃ４は４つの面取り部分に対応するクラスである。基本エッジ処理部１１８の分類部１２２は、基本エッジ点を基本エッジ誤差が最小となるクラスに分類する。このようにして、分類部１２２は、全基本エッジ点をクラスＬ１〜Ｌ４、Ｃ１〜Ｃ４のいずれかに分類する。基本モデル誤差算出部１３０は、各基本エッジ点の基本エッジ誤差に基づいて、基本モデル誤差を算出する。
【００５１】
基本モデル誤差が所定の閾値Ｔｍ２未満であれば、直線形基本関数はそのまま確定する。ここで閾値Ｔｍ２はＴｍ１と同一であってもよいし、別の値であってもよい。Ｔｍ２以上であれば、基本関数特定部１２４は新たなクラス分類に基づいて直線形基本関数を再計算する。すなわち、クラスＬ１〜Ｌ４に基づいて直線の関数ｌ１〜ｌ２を再計算し、クラスＣ１〜Ｃ４に基づいて直線の関数ｇ１〜ｇ４を再計算する。こうして新たな直線形基本関数を計算し、基本モデル誤差を再計算する。基本モデル誤差が閾値Ｔｍ２未満となるか、直線形基本関数の算出回数が所定の上限回数に達するまで直線形基本関数は繰り返し算出される。直線形基本関数の算出とクラスの分類を繰り返すことにより、直線形基本関数の精度を高めることができる。直線形基本関数を算出する処理の流れについては、図１８のフローチャートに関連して後述する。
【００５２】
円形基本関数とその基本モデル誤差および直線形基本関数とその基本モデル誤差が確定すると、基本関数選択部１３２は、基本モデル誤差が小さい方の基本関数を選択する。丸カットセルであれば円形基本関数が選択される可能性が高く、線カットセルであれば直線形基本関数が選択される可能性が高い。したがって、マスタが丸カットセルか線カットセルかという情報があらかじめわかっていなくても、適切な型の基本関数が自動的に選択される。円形基本関数や直線形基本関数以外にも、たとえば、ひし形や六角形のようにさまざまなタイプの基本関数を想定可能であることは当業者には理解されるところである。
【００５３】
基本関数選択部１３２は、基本関数のタイプや各種の定数パラメータをパラメータ保持部１３８に保存する。たとえば、中心点Ｃの座標や、直線ｌ１〜ｌ４の傾きや切片といった定数パラメータが保存される。円形基本関数が選択されたときには半径ｒが記録され、直線形基本関数が選択されたときには、直線ｇ１〜ｇ４の傾きや切片が記録される。このように、マスタ処理部１１０は、マスタの形状に応じて適切な型の基本関数とその定数パラメータを特定する。マスタ処理により、マスタの形状を数学的に表現する基本関数を特定できる。メーカーによってセル２００のサイズや形状はさまざまであるため、どのようなセル２００をマスタとするかにより基本関数も変化する。この基本関数をベースとして、後述のワーク処理が実行される。なお、マスタのＣＡＤ（Computer Aided Design）図面等から基本関数を直接取得できるときには、マスタ処理を実行しなくてもよい。
【００５４】
次に、ワーク処理の具体的な内容について説明する。
【００５５】
ワーク処理の一部はマスタ処理と内容が重複するため、ここでは、ワーク処理に特有の内容を中心として説明する。ワーク処理部１５０は、基本関数の取得後にワークを順次検査する。ここでは１枚ずつワークを検査するものとして説明する。まず、検査撮像部１５４は、カメラ２０６によりワークを撮像し、検査画像を取得する。検査画像の表示態様も図５に示した基本画像とほぼ同等である。ただし、ワークには欠損が生じている可能性がある。また、面取り部分の個体差により、マスタにおける面取りの大きさとワークにおける面取りの大きさは完全一致しない可能性がある。マスタが円カットセルの場合にはワークも円カットセル、マスタが線カットセルである場合にはワークも線カットセルであるため、面取りの形状自体は同じである。
【００５６】
検査エッジ処理部１５８の抽出部１６０は、濃淡値に基づいて検査画像から複数の検査エッジ点を抽出する。検査エッジ点の特定方法は、基本エッジ点の特定方法と同じである。検査エッジ処理部１５８の分類部１６２は、各検査エッジ点のエッジ方位を求め、５種類のクラスＬ１、Ｌ２、Ｌ３、Ｌ４、Ｕのいずれかに各検査エッジ点を仮分類する。検査エッジ点のクラス分類方法も、基本エッジ点のクラス分類方法と同じである。
【００５７】
検査関数特定部１７２は、ワークについての直線ｌ１〜ｌ４を求め、ワークのコーナー点および中心点を求める。基本関数調整部１６４は、基本関数の位置と向きをワークの輪郭に合うように座標変換する。具体的には、基本関数についての中心点Ｃをワークの中心点に一致させ、ワークにおける直線ｌ１〜ｌ４の向きと基本関数における直線ｌ１〜ｌ４の向きが一致するように基本関数の傾きを調整する。検査関数特定部１７２は、調整後の基本関数を「検査関数」とする。この検査関数は、いわば初期値としての検査関数(以下、「初期検査関数」ともよぶ）であり、検査関数も基本関数と同様、何度も再計算されることになる。以下、円形基本関数を対象として説明するが、直線形基本関数についても基本的な原理は同様である。
【００５８】
検査エッジ誤差算出部１６８は、検査エッジ点と初期検査関数に含まれる関数ｌ１〜ｌ４、ｆ１それぞれとの距離を検査エッジ誤差として算出する。以下、初期検査関数、いいかえれば、位置調整された基本関数についての検査エッジ誤差のことを特に「第１検査エッジ誤差」とよぶ。また、再計算によって求められる検査関数についての検査エッジ誤差のことを特に「第２検査エッジ誤差」とよぶ。本実施の形態においては、検査エッジ誤差算出部１６８は「第１検査エッジ誤差算出部」と「第２検査エッジ誤差算出部」の両方の機能を備えている。
【００５９】
クラスＬ１、Ｌ２、Ｌ３、Ｌ４、Ｕの代わりに、クラスＬ１、Ｌ２、Ｌ３、Ｌ４、Ｃ、Ｅを定義しておく。検査エッジ処理部１５８の分類部１６２は、各検査エッジ点を検査エッジ誤差が最小となるクラスに分類する。このときの分類方法は、図１１に関連して説明した方法と同様である。ただし、クラスＥは、検査エッジ誤差が所定の「除外条件」を充足する検査エッジ点のクラスであり、クラスＥに分類される検査エッジ点は以後「欠損点」として扱われる。除外条件とは、たとえば、検査エッジ誤差が所定の閾値Ｔｎ以上となること、であってもよい。ここでいうＴｎはセル２００の個体差（１〜２ｍｍ）以上の距離を示す値に設定することが望ましい。
【００６０】
図１２は、欠損点を示す図である。図１２に示す検査エッジ点Ｐ６、Ｐ７、Ｐ８に最も近い検査関数は関数ｆ１である。このうち、検査エッジ点Ｐ６と関数ｆ１の検査エッジ誤差が閾値Ｔｎ以上となると、除外条件が成立するため、欠損点特定部１７４は、検査エッジ点Ｐ６をクラスＣではなくクラスＥに分類する。検査エッジ点Ｐ６は「欠損点」となる。なお、別例として、各検査エッジ点の検査エッジ誤差の平均値をμ、標準偏差をσとしたときに、検査エッジ誤差のばらつきを正規分布と仮定するならば、μ−３σ以上、μ＋３σ以下の範囲に９９．７４％の検査エッジ点が収まることになる。したがって、μ＋３σ以上となる検査エッジ点は、統計的には、検査関数から特に大きく乖離していると見なすことができる。そこで、除外条件を、検査エッジ誤差がμ＋３σ以上となること、と設定してもよい。また、μ＋３σ以上となっても、別の検査関数との検査エッジ誤差がμ＋３σ以内に収まるのであれば、そのような検査エッジ点を除外せずに、クラス分類を変更してもよい。
【００６１】
欠損点は、ワークの大きな欠損を示唆しているかもしれないし、単に検査画像の画像ノイズに起因するのかもしれない。いずれにしても、欠損点は、ワークの理想的な輪郭線、いいかえれば、マスタの輪郭線から大きく外れているため、以後の処理においては欠損点は計算処理から除外される。
【００６２】
検査モデル誤差算出部１７０は、欠損点以外の検査エッジ点の検査エッジ誤差に基づいて、検査モデル誤差を算出する。検査モデル誤差の算出方法は、基本モデル誤差の算出方法と同様である。欠損点を除外しているため、ワークに大きな欠損が生じていても、検査モデル誤差が過度に大きくなりにくい。
【００６３】
検査モデル誤差が所定の閾値Ｔｍ３未満であれば、検査関数はそのまま確定する。Ｔｍ３以上であれば、検査関数特定部１７２は新たなクラス分類Ｌ１〜Ｌ４、Ｃに基づいて検査関数を再計算する。具体的には、クラスＬ１〜Ｌ４に基づいて直線の関数ｌ１〜ｌ４を再計算し、クラスＣに基づいて円の関数ｆ１を再計算する。クラスＥの欠損点は考慮されない。検査関数を再計算したあと、各検査エッジ点について検査エッジ誤差（第２検査エッジ誤差）を算出する。このときにも、上述の方法により欠損点を特定し、以後の計算処理から除外する。検査モデル誤差算出部１７０は、新たな検査関数についての検査モデル誤差を計算する。検査モデル誤差が閾値Ｔｍ３未満となるか、検査関数の算出回数が所定の上限回数に達するまで検査関数は繰り返し算出される。検査関数を計算とクラスの分類や欠損点の除外を繰り返すことにより、検査関数の精度を高めることができる。
【００６４】
検査関数から大きく乖離する欠損点はクラスＥに分類されるが、検査関数からの乖離が小さい検査エッジ点はクラスＬ１〜Ｌ４、Ｃのいずれかに分類される。検査関数が確定したあと、欠損候補点特定部１７５は、クラスＬ１〜Ｌ４、Ｃに属する検査エッジ点の中から欠損候補点を検出する。大きな欠損を示す検査エッジ点は「欠損点」としてクラスＥに分類されている。しかし、ワークには欠損点のような大きな欠損だけではなくごく小さな欠損を生じることもある。そこで、欠損候補点特定部１７５は、確定後の検査関数に対する検査エッジ誤差が所定の閾値Ｔｏ以上となっている検査エッジ点を欠損候補点として検出する。閾値Ｔｏは、欠損点を特定するための閾値Ｔｎ以下の値であり、セル２００の個体差（１〜２ｍｍ）以下の距離を示す値であってもよい。
【００６５】
欠損判定部１７６は、所定の「欠損検出条件」が成立するとき、ワークを欠損品と判定する。それ以外の場合にはワークを合格品と判定する。欠損検出条件とは、たとえば、所定個数以上の欠損候補点が検出されることであってもよい。また、所定個数以上の欠損点が抽出されることであってもよいし、欠損点と欠損候補点の合計数が所定個数以上となることであってもよい。欠損点を欠損候補点とみなしてもよい。ワークの検査画像において局所的に欠損点や欠損候補点が発生しているときには欠損検出条件が成立する、としてもよい。具体的には、所定の大きさの範囲内から欠損点や欠損候補点が所定個数以上検出されることを欠損検出条件としてもよい。たとえば、ワークの左上面取り部分から、欠損候補点や欠損点が所定数以上検出されたときには、左上面取り部分に欠損が発生している可能性が高いと判断できる。このほかにも、欠損候補点についての検査エッジ誤差の合計値や平均値が所定値以上であることや、検査エッジ点全体に占める欠損候補点や欠損点の割合が所定割合以上であるとき、欠損検出条件成立としてもよい。いずれにしても欠損検出条件とは、欠損候補点や欠損点の数やその検査エッジ誤差の大きさにより欠損の有無を判断するための条件であればよい。
【００６６】
上述のように、ワーク処理においては、基本関数に基づいて欠損判定をしているのではなく、検査関数に基づいて欠損判定している。いいかえれば、マスタの輪郭線とワークの輪郭線を直接比較して欠損判定しているのではなく、ワークの輪郭線に対する部分的な乖離の有無に基づいて欠損判定している。このような欠損判定方法により、セル２００の個体差を許容しつつ、大小の欠損を検出している。以下、（１）個体差はあるが欠損はないワーク、（２）大きな欠損があるワーク、（３）小さな欠損があるワーク、のそれぞれについて、想定される欠損判定の流れを説明する。原理の明確化のため、以下の例では、基本画像や検査画像に画像ノイズはないものと仮定する。
【００６７】
図１３は、（１）個体差はあるが欠損はないワークについての検査関数を示す図である。点線で示すマスタ２１４に比べて実線で示すワーク２１６は面取り部分において若干小さいとする。マスタ２１４とワーク２１６の面取り部分の差が個体差程度であれば、基本関数や検査関数から大きく乖離する検査エッジ点（欠損点）は検出されない。個体差ゆえ、基本関数のｆ１により定義される円よりも検査関数のｆ１’により定義される円は若干小さくなる。関数ｆ１はマスタ２１４の円形基本関数において面取り部分を表現する関数であり、関数ｆ１’はワーク２１６の円形基本関数において面取り部分を表現する関数である。欠損が存在しないので検査関数ｆ１’から乖離する検査エッジ点も見いだされることなく、欠損候補点も検出されない。したがって、欠損判定部１７６は、このようなワーク２１６を合格品と判定する。すなわち、マスタ２１４とワーク２１６の差が個体差があって検査関数と基本関数が一致しなくても、その個体差が「欠損点」と認定されるほど大きくなければ、個体差を原因として欠損品と判定されることはない。
【００６８】
図１４は、（２）大きな欠損があるワークについての検査関数を示す図である。このワーク２１６には、大きな割れが生じている。マスタとワーク２１６に個体差はないとする。初期検査関数に対する検査エッジ誤差、いいかえれば、第１検査エッジ誤差が大きい検査エッジ点が欠損点として多数検出される。図１４の場合、割れ部分である大欠損部分２１８から多数の欠損点が検出される。欠損点を除外して検査関数を計算するため、大欠損部分２１８は検査関数の算出過程に影響しない。したがって、基本関数と検査関数はほとんど同一となる。欠損判定部１７６は、多くの欠損点が検出されたため、このようなワークを欠損品と判定する。
【００６９】
図１５は、（３）小さな欠損があるワークについての検査関数を示す図である。このワーク２１６には、小欠損部分２２０において小さな欠けが生じている。マスタとワーク２１６に個体差はないとする。欠損が小さいため欠損点は検出されない。小さな欠けの影響により、基本関数のｆ１により定義される円よりも検査関数のｆ１’により定義される円は若干小さくなるかもしれない。欠損候補点特定部１７５は、小欠損部分２２０から数個の欠損候補点を検出する。したがって、欠損判定部１７６は、このようなワークを欠損品と判定する。
【００７０】
直線形基本関数が選択された場合にも、ワーク処理の内容は基本的に同様である。検査エッジ誤差算出部１６８は、検査エッジ点と検査関数に含まれる関数ｌ１〜ｌ４、ｇ１〜ｇ４を対象として検査エッジ誤差を算出する。検査エッジ処理部１５８の分類部１６２は、全検査エッジ点をクラスＬ１〜Ｌ４、Ｃ１〜Ｃ４、Ｅのいずれかに再分類する。ここでクラスＣ１〜Ｃ４は、関数ｇ１〜ｇ４に対応する。欠損点特定部１７４は、欠損点をクラスＥに分類する。検査モデル誤差算出部１７０は、欠損点以外の検査エッジ点についての検査エッジ誤差に基づいて、検査モデル誤差を算出する。検査モデル誤差が所定の閾値Ｔｍ３未満であれば、検査関数はそのまま確定する。Ｔｍ３以上であれば、検査関数特定部１７２は新たなクラス分類Ｌ１〜Ｌ４、Ｃ１〜Ｃ４に基づいて検査関数を再計算する。具体的には、クラスＬ１〜Ｌ４に基づいて直線の関数ｌ１〜ｌ４を再計算し、クラスＣ１〜Ｃ４に基づいて直線の関数ｇ１〜ｇ４を再計算する。検査モデル誤差が閾値Ｔｍ３未満となるか、検査関数の算出回数が所定の上限回数に達するまで検査関数は繰り返し算出される。検査関数が確定したあと、欠損候補点特定部１７５は、クラスＬ１〜Ｌ４、Ｃ１〜Ｃ４に所属する検査エッジ点の中から欠損候補点を検出する。欠損判定部１７６は、欠損候補点に基づいて欠損判定を実行する。
【００７１】
最後に、以上に示したマスタ処理およびワーク処理の処理過程をまとめる。
【００７２】
図１６は、マスタ処理の処理過程を示すフローチャートである。図１６に示す処理は、通常、マスタとなるセル２００を対象として１回だけ実行される。基本撮像部１１４は、まず、基本画像を取得する（Ｓ１０）。抽出部１２０は、基本画像から基本エッジ点を抽出する（Ｓ１２）。分類部１２２は、エッジ方位に基づいて、各基本エッジ点をクラスＬ１〜Ｌ４、Ｕに分類する（Ｓ１４）。基本関数特定部１２４は、クラスＬ１〜Ｌ４に属する基本エッジ点から、マスタの４辺にあたる直線ｌ１〜ｌ４を算出する（Ｓ１６）。基本関数特定部１２４および誤差算出部１２６は、円モデル化処理として円形基本関数を特定し（Ｓ１８）、直線モデル化処理として直線形基本関数を特定する（Ｓ２０）。円モデル化処理および直線モデル化処理の詳細については、それぞれ、図１７、図１８に関連して詳述する。基本関数選択部１３２は、円形基本関数の基本モデル誤差と直線形基本関数の基本モデル誤差を比較し、基本モデル誤差が小さい方の基本関数を選択する（Ｓ２２）。基本関数特定部１２４は、選択された基本関数に関する各種定数パラメータをパラメータ保持部１３８に保存する（Ｓ２４）。
【００７３】
図１７は、図１６のＳ１８における円モデル化処理の詳細を示すフローチャートである。まず、基本関数特定部１２４は、図７、図８に関連して説明した方法にて、コーナー点Ｑ１〜Ｑ４、中心点Ｃを特定した上で、コーナー近傍点を特定する（Ｓ２６）。基本関数特定部１２４は、図９に関連して説明した方法にて、円形基本関数（ｌ１〜ｌ４およびｆ１）を算出する（Ｓ２８）。基本エッジ誤差算出部１２８は、各基本エッジ点についての基本エッジ誤差を算出する（Ｓ３０）。分類部１２２は、基本エッジ誤差に基づいて、図１１に関連して説明した方法にて、各基本エッジ点をクラスＬ１〜Ｌ４、Ｃのいずれかに分類する（Ｓ３２）。基本モデル誤差算出部１３０は、基本エッジ誤差に基づいて、基本モデル誤差を算出する（Ｓ３４）。基本モデル誤差が閾値Ｔｍ１未満であれば（Ｓ３６のＹ）、円モデル化処理は完了し、円形基本関数はそのまま確定する。
【００７４】
基本モデル誤差が閾値Ｔｍ１以上であれば（Ｓ３６のＮ）、基本関数特定部１２４はＳ３２におけるクラス分類の結果に基づいて、再度、円形基本関数を算出する（Ｓ２８）。こうして、円形基本関数に基づく基本エッジ点の分類（Ｓ３２）を繰り返しながら、基本モデル誤差がＴｍ１未満となる円形基本関数を算出する。なお、Ｓ３６においては、円形基本関数の算出回数が所定回数を超えたときにも、円モデル化処理が完了するとしてもよい。
【００７５】
図１８は、図１６のＳ２０における直線モデル化処理の詳細を示すフローチャートである。基本関数特定部１２４は、円モデル化処理において特定したコーナー近傍点に基づいて、直線形基本関数（ｌ１〜ｌ４、ｇ１〜ｇ４）を算出する（Ｓ４０）。基本エッジ誤差算出部１２８は、各基本エッジ点についての基本エッジ誤差を算出する（Ｓ４２）。分類部１２２は、基本エッジ誤差に基づいて、各基本エッジ点をクラスＬ１〜Ｌ４、Ｃ１〜Ｃ４のいずれか分類する（Ｓ４４）。基本モデル誤差算出部１３０は、基本エッジ誤差に基づいて、基本モデル誤差を算出する（Ｓ３４）。基本モデル誤差が閾値Ｔｍ２未満であれば（Ｓ３６のＹ）、直線モデル化処理は完了し、直線形基本関数はそのまま確定する。
【００７６】
基本モデル誤差が閾値Ｔｍ２以上であれば（Ｓ４８のＮ）、基本関数特定部１２４はＳ４４におけるクラス分類の結果に基づいて、再度、直線形基本関数を算出する（Ｓ４０）。こうして、直線形基本関数に基づく基本エッジ点の分類（Ｓ４４）を繰り返しながら、基本モデル誤差がＴｍ２未満となる直線形基本関数を算出する。なお、Ｓ４８においても、直線形基本関数の算出回数が所定回数を超えたときに、直線モデル化処理が完了するとしてもよい。
【００７７】
図１９は、ワーク処理の処理過程を示すフローチャートである。図１９に示す処理は、ワークとなるセル２００が選択されるごとに実行される。検査撮像部１５４は、まず、検査画像を取得する（Ｓ５０）。抽出部１６０は、検査画像から検査エッジ点を抽出する（Ｓ５２）。分類部１６２は、エッジ方位に基づいて、各検査エッジ点をクラスＬ１〜Ｌ４、Ｕに分類する（Ｓ５３）。検査関数特定部１７２は、クラスＬ１〜Ｌ４に所属する検査エッジ点から、ワークの４辺にあたる直線ｌ１〜ｌ４を算出する（Ｓ５４）。また、コーナー点や中心点も算出する。基本関数調整部１６４は、基本関数の位置および向きをワークにあわせて調整する（Ｓ５６）。調整後の基本関数を初期検査関数として設定する。
【００７８】
検査エッジ誤差算出部１６８は、各検査エッジ点についての検査エッジ誤差（第１検査エッジ誤差）を算出する（Ｓ５８）。分類部１６２は、第１検査エッジ誤差に基づいて、各検査エッジ点をいずれかのクラスに分類する（Ｓ６０）。欠損点特定部１７４が欠損点を検出したときには、欠損点はクラスＥに分類される（Ｓ６２）。検査モデル誤差算出部１７０は、検査エッジ誤差に基づいて、検査モデル誤差を算出する（Ｓ６４）。検査モデル誤差が閾値Ｔｍ３未満であれば（Ｓ６６のＹ）、検査関数はそのまま確定する。閾値Ｔｍ３以上の場合には（Ｓ６６のＮ）、検査関数特定部１７２はＳ６０における分類結果に基づいて、再度、検査関数を算出する（Ｓ７２）。
【００７９】
こうして、検査エッジ点の分類（Ｓ６０）と欠損点の除外（Ｓ６２）を繰り返しながら、検査モデル誤差がＴｍ３未満となる検査関数を算出する。なお、Ｓ６６においては、検査関数の算出回数が所定回数を超えたときに、検査モデル誤差がＴｍ３以上であっても、検査関数をそのまま確定させるとしてもよい。欠損判定部１７６は、閾値Ｔｍ３未満となる検査関数を特定できなかったときには、ワークを欠損品と判定してもよい。
【００８０】
検査関数が確定すると（Ｓ６６のＹ）、欠損候補点特定部１７５は欠損候補点を検出する（Ｓ６８）。欠損判定部１７６は、欠損候補点に基づいて、ワークが合格品か欠損品かを判定する（Ｓ７０）。
【００８１】
以上、実施の形態に基づいて、形状欠損検査装置１００を説明した。マスタ処理により、セル２００の輪郭線を数学的に表現した基本関数を特定できる。基本関数は、円形基本関数や直線形基本関数のように複数種類用意することが好ましい。そして、各基本関数ごとに基本モデル誤差を算出することにより、マスタの形状に適合した基本関数を選択できる。一般的には、基本画像の濃淡値から各基本エッジ点のエッジ方位（法線ベクトル）を正確に求めるのは難しい。しかし、本実施の形態におけるマスタ処理によれば、エッジ方位に基づいて基本エッジ点を仮分類したあと、基本エッジ誤差に基づいて基本エッジ点を再分類している。このため、基本エッジ点のクラス分類精度が高まり、基本関数の精度も高まることになる。
【００８２】
ワーク処理では、基本関数と同型の検査関数により、ワークの輪郭線を数学的に表現できる。ワークの個体差が検査関数に反映される。いわば、検査関数は、個体差を考慮した上で、ワークのあるべき輪郭線を示す関数である。検査関数と検査エッジ点の距離である検査エッジ誤差に基づいて欠損候補点を特定するため、ワークの割れや欠けを自動的に検出できる。特に大きな欠損が生じているときには、欠損点が計算過程から除外されるため、欠損点の存在によって検査関数が歪むのを防いでいる。大きな欠損が生じているワークであっても、残りの正常部分に基づいて検査関数を算出できる。これにより、セル２００の個体差を考慮しつつ、大小の欠損を合理的に検出可能となる。
【００８３】
本実施の形態に示す形状欠損検査装置１００によれば、複数の直線および曲線を含む複雑な形状の対象物に対して、理想的なモデルを自動的に選択できる。また、ワークの外形を構成するエッジ点を高精度にて分類できるため、個体差に影響されることなく微小な欠損を検出しやすくなる。更に、ワークから得られた情報（検査関数）だけではなく、マスタから得られた情報（基本関数）も使用するため、微小な欠損（欠け）と共に大きな欠損（割れ）も検出できる。
【００８４】
本実施の形態においては、太陽電池のセル２００を対象として説明したが、検査対象物体はこれに限られるものではない。たとえば、プリント基板、ネームプレート、アクリル板プレートやガラス板、瓦、セラミック製品等、矩形形状を有する物体であれば広く検査対象物体とできる。特に、矩形の角部分の形状にバリエーションがある場合でも、適切な基本関数を用意することにより、精度の高い形状欠損検出が可能となる。また、ワークの検査関数に基づいて数学的に欠損判定しているため、マスタの基準画像とワークの検査画像を画素単位で直接比較するよりも検出精度が高い。
【００８５】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８６】
本実施の形態においては、検査関数の算出過程において、欠損点を検出・除外することにより、検査関数と基本関数が過度に乖離するのを防いでいる。変形例として、欠損点を検出・除外せずに、検査関数を算出してもよい。この場合には、大きな欠損を有するワークの場合、大きな欠損によって検査関数は大きく変化するかもしれない。欠損判定部１７６は、基本関数により定義される輪郭線と検査関数により定義される輪郭線のずれの大きさが所定範囲内であれば個体差として許容し、所定範囲外であれば欠損品と判定してもよい。たとえば、円形基本関数であれば、検査関数における半径ｒと基本関数の半径ｒを比較すればよい。直線形基本関数であれば、検査関数におけるｇ１〜ｇ４の傾きや切片と、基本関数におけるｇ１〜ｇ４の傾きや切片を比較すればよい。
【００８７】
適切な基本関数が与えられる状況においては、形状欠損検査装置１００のうちワーク処理部１５０のみを「形状欠損検査装置」として使用してもよい。また、マスタ処理部１１０のみを「形状モデリング装置」として抽出し、さまざまなモデリング対象物体の輪郭線を数学的に表現するための基本関数を算出する装置として機能させてもよい。
【符号の説明】
【００８８】
１００  形状欠損検査装置
１１０  マスタ処理部
１１４  基本撮像部
１１８  基本エッジ処理部
１２０  抽出部
１２２  分類部
１２４  基本関数特定部
１２６  誤差算出部
１２８  基本エッジ誤差算出部
１３０  基本モデル誤差算出部
１３２  基本関数選択部
１３４  データ保持部
１５０  ワーク処理部
１５４  検査撮像部
１５８  検査エッジ処理部
１６４  基本関数調整部
１６６  誤差算出部
１６８  検査エッジ誤差算出部
１７０  検査モデル誤差算出部
１７２  検査関数特定部
１７４  欠損点特定部
１７５  欠損候補点特定部
１７６  欠損判定部
【図１】
2010256053.tif 000003
【図２】
2010256053.tif 000004
【図３】
2010256053.tif 000005
【図４】
2010256053.tif 000006
【図５】
2010256053.tif 000007
【図６】
2010256053.tif 000008
【図７】
2010256053.tif 000009
【図８】
2010256053.tif 000010
【図９】
2010256053.tif 000011
【図１０】
2010256053.tif 000012
【図１１】
2010256053.tif 000013
【図１２】
2010256053.tif 000014
【図１３】
2010256053.tif 000015
【図１４】
2010256053.tif 000016
【図１５】
2010256053.tif 000017
【図１６】
2010256053.tif 000018
【図１７】
2010256053.tif 000019
【図１８】
2010256053.tif 000020
【図１９】
2010256053.tif 000021