(57)【要約】 【課題】  後続処理の処理精度を低下させること無く、処理の対象画素数を抑制し、高速化を実現することができるエッジ抽出方法、定義表作成方法を提供し、検出精度向上するとともに、処理の高速化および必要なメモリ容量の縮小を実現することができる画像処理方法、画像処理装置、画像処理プログラムおよび画像処理プログラムを記録する記録媒体を提供する。【解決手段】  Sobelオペレータを用いてエッジ強度を求めた後、エッジ強度を閾値処理するための下限値を判別分析法によって算出する。エッジ強度を閾値処理するための上限値は、統計処理によって算出する。エッジ強度が、閾値の範囲内にあれば当該エッジ画素を登録候補画素とし、エッジ方向と画素の位置座標を記憶する。【選択図】      図３
2008097310.tif 000002
【特許請求の範囲】
【請求項１】
画像データに含まれるエッジ画素を抽出するエッジ抽出方法において、
前記画像データを構成する画素に対してSobelオペレータを使用し、エッジ強度を算出しするステップと、
算出されたエッジ強度が、予め定める閾値の範囲内にある画素をエッジ画素として抽出するステップとを有し、
前記閾値の範囲における下限値は、判別分析法に基づいて決定し、
前記閾値の範囲における上限値は、前記下限値以上のエッジ強度を有する画素数を計数し、計数値に予め定める割合を掛けて得た画素数を算出し、下限値以上のエッジ強度を有する画素数が、算出された画素数となるときのエッジ強度を上限値として決定することを特徴とするエッジ抽出方法。
【請求項２】
前記予め定める割合が、９５％〜１００％であることを特徴とする請求項１記載のエッジ抽出方法。
【請求項３】
一般化Hough変換に用いる形状定義表を作成する定義表作成方法において、
請求項１または２記載のエッジ抽出方法で抽出したエッジ画素を定義表への登録候補画素とするステップと、
形状定義表へ登録するエッジ画素数の目標数を設定するステップと、
細線化処理を含む、エッジ画素数を選別するための複数の選別処理を実行するステップであって、選別されたエッジ画素数が前記目標数に達するまで、前記複数の選別処理を予め定める順序で実行するステップと、
前記目標に達したときのエッジ画素に基づいて、形状定義表を作成することを特徴とする定義表作成方法。
【請求項４】
画像データに含まれる対象ワークを検出する画像処理方法において、
請求項３記載の定義表作成方法によって形状定義表を作成するステップと、
第１の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第１候補画素として選択する粗サーチステップと、
前記第１候補画素を対象に、画素間の距離および回転角度差に基づくクラスタリングを行い、各クラスタから代表画素を選出して第２候補画素を選択するクラスタリングステップと、
前記第２候補画素を対象に、前記第１の角度よりも小さい第２の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第３候補画素として選択する中間サーチステップと、
前記第３候補画素を対象に、正規化相関によって対象ワークの回転角度および位置を検出する最終サーチステップとを含むことを特徴とする画像処理方法。
【請求項５】
請求項４記載の画像処理方法をコンピュータに実行させるための画像処理プログラム。
【請求項６】
請求項４記載の画像処理方法をコンピュータに実行させるための画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
画像データに含まれる対象ワークを検出する画像処理装置において、
請求項３記載の定義表作成方法によって形状定義表を作成する作成手段と、
第１の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第１候補画素として選択する粗サーチ手段と、
前記第１候補画素を対象に、画素間の距離および回転角度差に基づくクラスタリングを行い、各クラスタから代表画素を選出して第２候補画素を選択するクラスタリング手段と、
前記第２候補画素を対象に、前記第１の角度よりも小さい第２の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第３候補画素として選択する中間サーチ手段と、
前記第３候補画素を対象に、正規化相関によって対象ワークの回転角度および位置を検出する最終サーチ手段とを含むことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置などから入力された画像データに対して図形処理を行うエッジ抽出方法、定義表作成方法、画像処理方法、画像処理装置、画像処理プログラムおよび画像処理プログラムを記録する記録媒体に関する。
【背景技術】
【０００２】
製品組立ての自動化および検品作業の自動化などを高精度で実現するために、食品容器、印刷文字、プリント基板上の部品、電子部品などの工業製品をカメラで撮像し、得られた画像データに対して各種画像処理を行う画像処理装置が必要となっている。
【０００３】
画像処理を利用して組立て、検査などの作業を行うためには、まず画像データに含まれる対象ワークを検出する必要がある。
【０００４】
対象ワークの検出を行う場合、よく知られている方法の１つに、対象ワークの形状を示す輪郭成分の解析がある。
【０００５】
対象ワークの輪郭成分を得るには、まず対象ワークの画像データに対して空間微分フィルタを施し、画像データ中の輪郭を成す濃度変化点のエッジ成分を抽出することが行われる。エッジ成分抽出としてよく利用されるSobelオペレータによる方法では、注目画素を中心とする３×３画素の画素ブロックに対して、以下のＡ式に示すようなＸ方向（水平方向）フィルタＦＸと、Ｙ方向（垂直方向）フィルタＦＹとで構成されるSobelオペレータを適用し、注目画素のＸ方向エッジ強度ｆｘおよびＹ方向エッジ強度ｆｙを算出する。
【０００６】
【数１】
2008097310.tif 000003
【０００７】
算出した水平方向エッジ強度ｆｘおよび垂直方向エッジ強度ｆｙに基づくエッジ強度（２方向の強度の二乗和平方根）と閾値とを比較し、閾値以上の値を持つ画素をエッジ画素として登録する。
【０００８】
こうして、エッジ画素が求められた後、対象ワークの輪郭形状に対応する部分を求める手法としては、一般化Hough変換（Generaled Hough Transform，ＧＨＴ）が挙げられる（非特許文献１参照）。
【０００９】
一般化Hough変換では、まず検査対象の図形をテンプレートとし、テンプレートが幾何学変換されて画像中に存在していると考える。次にテンプレートの位置および方向などを規定する幾何変換パラメータに着目し、そのパラメータ空間で投票を行う。この処理は、大まかには次の１〜４の手順で行われる。
手順１：テンプレートの形状定義
手順２：パラメータ空間の設定
手順３：投票
手順４：ピーク点の抽出
【００１０】
手順１では、図９に示すようなｕｖ座標系におけるテンプレートを定義し、図１０に示すようにθとｒ，αとを形状定義表に登録する。
【００１１】
一般化Hough変換の手順のなかで、手順１のテンプレートの形状定義が対象ワークの回転角度および位置を検出する精度と処理速度に大きく影響を与える。
【００１２】
テンプレートの形状定義である形状定義表の作成において、対象ワークの輪郭を成すエッジ画素を閾値で決定する方法は前述した通りで、そのエッジ画素はPi(i=1,2,3,・・・)として登録する。
【００１３】
次に、図９に示すように適当に設定した点Qの位置をテンプレート上の各点Pi(i=1,2,3,・・・)からの距離と方向で表すことで、テンプレートの形状を定義する。
【００１４】
点Ｑはテンプレートを代表する点であり、基準点と呼ぶ。この基準点の選び方には任意性があるが、テンプレートの重心とする場合に、精度が最も良いことが知られている。また、非特許文献２に記載されているように、求めたエッジ画素Pi(i=1,2,3,・・・)について予め細線化を施すことで高速化を図る場合がある。
【００１５】
【非特許文献１】画像処理テキストブック編集委員会、「画像処理標準テキストブック」、財団法人画像情報教育振興協会、平成９年、ｐ．２５４−２５９
【非特許文献２】木村彰男、渡辺孝志著、「高速一般化ハフ変換−相似変換不変な任意図形検出法−」、電子情報通信学会誌  Ｄ−ＩＩ、電子情報通信学会、１９９８年４月、Ｖｏｌ．Ｊ８１−Ｄ−ＩＩ、Ｎｏ．４、ｐ．７２６−７３４
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本来は、閾値以上のエッジ強度を有するエッジ画素全てを後続の処理に用いることが理想であるが、処理の対象となるエッジ数が多すぎて処理時間が膨大となる。たとえば、一般化Hough変換を考えると、閾値以上のエッジ強度を有するエッジ画素全てをテンプレートの形状定義として登録するのが理想であるが、それでは登録するエッジ数が多すぎ処理時間が膨大となる。そのため、形状定義表の登録数を削減することが効果的であり、エッジ強度の閾値調整や細線化処理でエッジ数を減らすことが考えられる。しかし、あまり減らしすぎると精度の低下が生じてしまう。
【００１７】
一般化Hough変換における検出精度の成否はエッジ手法の結果に大きく依存すると記載した論文（五十嵐悟、他３名、「方向ヒストグラムの自己回帰モデルに基づく回転不変画像照合」、精密工学会誌、精密工学会、２００１年、ｖｏｌ．６７、ｎｏ．９、ｐ．１５１９−１５２３参照）もあり、特に閾値の設定がエッジの検出精度に与える影響は大きい。エッジ手法の結果は、エッジ強度の閾値の決定といっても過言でなく、ユーザによるマニュアル設定では、検出精度上のリスクを伴う。また、従来の技術において、閾値の下限でのみエッジ画素を求めており、上限については設定されることはない。しかし、対象ワークと類似形状でコントラストが異なる場合、閾値が下限のみでは誤検出する可能性がある。
【００１８】
さらに、登録されたエッジ画素を単純に細線化で選別することは、実用レベルにおいて対象ワークの輪郭を照合するための登録数としては少なすぎる場合がある。また、細線化する手法として、複数存在するが、いずれが最適であるかは明確になっていない。
【００１９】
本発明の目的は、後続処理の処理精度を低下させること無く、処理の対象画素数を抑制し、高速化を実現することができるエッジ抽出方法、定義表作成方法を提供することである。本発明の他の目的は、検出精度向上するとともに、処理の高速化および必要なメモリ容量の縮小を実現することができる画像処理方法、画像処理装置、画像処理プログラムおよび画像処理プログラムを記録する記録媒体を提供することである。
【課題を解決するための手段】
【００２０】
本発明は、画像データに含まれるエッジ画素を抽出するエッジ抽出方法において、
前記画像データを構成する画素に対してSobelオペレータを使用し、エッジ強度を算出するステップと、
算出されたエッジ強度が、予め定める閾値の範囲内にある画素をエッジ画素として抽出するステップとを有し、
前記閾値の範囲における下限値は、判別分析法に基づいて決定し、
前記閾値の範囲における上限値は、前記下限値以上のエッジ強度を有する画素数を計数し、計数値に予め定める割合を掛けて得た画素数を算出し、下限値以上のエッジ強度を有する画素数が、算出された画素数となるときのエッジ強度を上限値として決定することを特徴とするエッジ抽出方法である。
【００２１】
また本発明は、前記予め定める割合が、９５％〜１００％であることを特徴とする。
また本発明は、一般化Hough変換に用いる形状定義表を作成する定義表作成方法において、
上記のエッジ抽出方法で抽出したエッジ画素を定義表への登録候補画素とするステップと、
形状定義表へ登録するエッジ画素数の目標数を設定するステップと、
細線化処理を含む、エッジ画素数を選別するための複数の選別処理を実行するステップであって、選別されたエッジ画素数が前記目標数に達するまで、前記複数の選別処理を予め定める順序で実行するステップと、
前記目標に達したときのエッジ画素に基づいて、形状定義表を作成することを特徴とする定義表作成方法である。
【００２２】
また本発明は、画像データに含まれる対象ワークを検出する画像処理方法において、
上記の定義表作成方法によって形状定義表を作成するステップと、
第１の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第１候補画素として選択する粗サーチステップと、
前記第１候補画素を対象に、画素間の距離および回転角度差に基づくクラスタリングを行い、各クラスタから代表画素を選出して第２候補画素を選択するクラスタリングステップと、
前記第２候補画素を対象に、前記第１の角度よりも小さい第２の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第３候補画素として選択する中間サーチステップと、
前記第３候補画素を対象に、正規化相関によって対象ワークの回転角度および位置を検出する最終サーチステップとを含むことを特徴とする画像処理方法である。
【００２３】
また本発明は、前記画像処理方法をコンピュータに実行させるための画像処理プログラムである。
【００２４】
また本発明は、前記画像処理方法をコンピュータに実行させるための画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００２５】
また本発明は、画像データに含まれる対象ワークを検出する画像処理装置において、
前記定義表作成方法によって形状定義表を作成する作成手段と、
第１の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第１候補画素として選択する粗サーチ手段と、
前記第１候補画素を対象に、画素間の距離および回転角度差に基づくクラスタリングを行い、各クラスタから代表画素を選出して第２候補画素を選択するクラスタリング手段と、
前記第２候補画素を対象に、前記第１の角度よりも小さい第２の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第３候補画素として選択する中間サーチ手段と、
前記第３候補画素を対象に、正規化相関によって対象ワークの回転角度および位置を検出する最終サーチ手段とを含むことを特徴とする画像処理装置である。
【発明の効果】
【００２６】
本発明によれば、画像データに含まれるエッジ画素を抽出するエッジ抽出方法において、前記画像データを構成する画素に対してSobelオペレータを使用し、エッジ強度を算出し、算出されたエッジ強度が、予め定める閾値の範囲内にある画素をエッジ画素として抽出する。ここで、前記閾値の範囲における下限値は、判別分析法に基づいて決定する。
【００２７】
また、前記閾値の範囲における上限値は、前記下限値以上のエッジ強度を有する画素数を計数し、計数値に予め定める割合を掛けて得た画素数を算出する。下限値以上のエッジ強度を有する画素数が、算出された画素数となるときのエッジ強度を上限値として決定する。予め定める割合としては、９５％〜１００％が好ましい。
【００２８】
これにより、後続処理の処理精度を低下させること無く、処理の対象画素数を抑制し、高速化を実現することができる。
【００２９】
また本発明によれば、一般化Hough変換に用いる形状定義表を作成する定義表作成方法において、
上記のエッジ抽出方法で抽出したエッジ画素を定義表への登録候補画素とし、形状定義表へ登録するエッジ画素数の目標数を設定する。
【００３０】
次に、細線化処理を含む、エッジ画素数を選別するための複数の選別処理を実行するが、選別されたエッジ画素数が前記目標数に達するまで、前記複数の選別処理を予め定める順序で実行する。
【００３１】
最後に、前記目標に達したときのエッジ画素に基づいて、形状定義表を作成する。
これにより、一般化Hough変換の精度を低下させることなく、処理の対象画素数を抑制し、高速化を実現することができる。
【００３２】
また本発明によれば、上記の定義表作成方法によって形状定義表を作成し、粗サーチステップでは、第１の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第１候補画素として選択する。
【００３３】
クラスタリングステップでは、前記第１候補画素を対象に、画素間の距離および回転角度差に基づくクラスタリングを行い、各クラスタから代表画素を選出して第２候補画素を選択し、中間サーチステップで、前記第２候補画素を対象に、前記第１の角度よりも小さい第２の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第３候補画素として選択する。
【００３４】
最終サーチステップでは、前記第３候補画素を対象に、正規化相関によって対象ワークの回転角度および位置を検出する。
【００３５】
これにより、検出精度が向上するとともに、処理の高速化および必要なメモリ容量の縮小を実現することができる。
【００３６】
また本発明によれば、上記の画像処理方法を、コンピュータに実行させるための画像処理プログラムおよび、画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体として提供することができる。
【００３７】
また本発明によれば、上記の定義表作成方法によって形状定義表を作成し、粗サーチ手段が、第１の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第１候補画素として選択する。
【００３８】
クラスタリング手段は、前記第１候補画素を対象に、画素間の距離および回転角度差に基づくクラスタリングを行い、各クラスタから代表画素を選出して第２候補画素を選択し、中間サーチ手段が、前記第２候補画素を対象に、前記第１の角度よりも小さい第２の角度ごとに設定された回転角度に基づいて一般化Hough変換を実行し、予め定める指定数分の画素を第３候補画素として選択する。
【００３９】
最終サーチ手段は、前記第３候補画素を対象に、正規化相関によって対象ワークの回転角度および位置を検出する。
【００４０】
これにより、検出精度が向上するとともに、処理の高速化および必要なメモリ容量の縮小を実現することができる。
【発明を実施するための最良の形態】
【００４１】
本発明は、以下に示す手順から構成される画像処理方法により、対象ワークの回転角度と位置の検出を行う。
手順１：平滑化処理
手順２：エッジ抽出処理
手順３：粗サーチ処理
手順４：クラスタリング処理
手順５：中間サーチ処理
手順６：最終サーチ処理
【００４２】
まず、各手順について、図１に示す画像処理のフローチャートを基に概略について説明する。
【００４３】
手順１：平滑化処理（ステップＳ１）
ノイズ除去するための前処理として、画像データに対して平滑化フィルタを用いた平滑化処理を行う。
【００４４】
手順２：エッジ抽出処理（ステップＳ２）
平滑化した画像データを対象に、Sobelオペレータによるエッジ強度を求め、その強度が予め設定された閾値範囲内であれば、エッジ方向と位置座標とを登録して抽出する。
【００４５】
手順３：粗サーチ処理（ステップＳ３）
手順２で抽出したエッジの方向と座標とを登録した後、対象ワークの輪郭形状に対応する部分の概略の回転角度と位置を求めるため、一定の回転角度刻みの粗サーチとして一般化Hough変換を実行する。一般化Hough変換で求めた投票数の多い順に、指定数分の第１候補画素を選択する。
【００４６】
手順４：クラスタリング処理（ステップＳ４）
手順３で選択された第１候補画素の中には、同じワークとみなせる画素が重複して挙げられている可能性がある。そのため座標および回転角度とも近似した複数の画素を同じクラスタとし、その中から最も投票数の多い点だけを第２候補画素とする。その他の画素は後続の処理の対象から外す。
【００４７】
手順５：中間サーチ処理（ステップＳ５）
第２候補画素を対象に、手順３の粗サーチにおける刻み角度よりも小さな回転角度で中間サーチとして一般化Hough変換の再投票を行い、第３候補画素を選出する。
【００４８】
手順６：最終サーチ処理（ステップＳ６）
手順３と手順５の一般化Hough変換２段処理で求めた回転角度と座標は、ピクセル精度であり、ピクセル単位の誤差が予想される。そのため、一般化Hough変換で求めた位置周辺について、第３候補画素を対象に、正規化相関を用いた最終サーチを行う。
【００４９】
本発明は、手順２のエッジ抽出処理おいて、エッジ強度に基づく閾値処理と、形状定義表への登録処理に特徴を有し、精度を低下させることなく後続処理の対象画素数を抑制し、処理速度の高速化を実現する。
【００５０】
以下では各手順について詳細に説明する。
手順１：平滑化処理
平滑化処理に用いる平滑化フィルタとしては、平均値フィルタとメディアンフィルタとがあり、実験結果から平均値フィルタが望ましい。
【００５１】
平均値フィルタは、図２に示すように、注目画素の画素値Ｇ１１にその周辺８画素の画素値Ｇ００，Ｇ１０，Ｇ２０，Ｇ０１，Ｇ２１，Ｇ０２，Ｇ１２，Ｇ２２を加えた９画素の画素値の平均が注目画素の画素値となるようなフィルタである。
【００５２】
平滑化処理後の注目画素の画素値Ｇ（平均）は、式１で算出する。
G（平均）＝(G00+G10+G20+G01+G11+G21+G02+G12+G22)／9              …（１）
【００５３】
手順２：エッジ抽出処理
図３は、閾値処理を示すフローチャートである。
【００５４】
ステップＳ１１では、平滑化処理した画像データを対象に、Sobelオペレータを用いてエッジ強度を求める。
【００５５】
Sobelオペレータは、３×３画素ではなく、以下のＢ式に示すような５×５画素の改良型オペレータを使用する。
【００５６】
Ｘ方向（水平方向）フィルタＦＸと、Ｙ方向（垂直方向）フィルタＦＹとで構成されるSobelオペレータを適用し、注目画素のＸ方向エッジ強度ｆｘおよびＹ方向エッジ強度ｆｙを算出する。なお、注目画素と注目画素に隣接する周辺画素との差分値が比較的大きい場合は、式Ａで表す従来の３×３画素Sobelオペレータを用いても良い。
【００５７】
【数２】
2008097310.tif 000004
【００５８】
エッジ強度ｆｘｙは式２で算出し、エッジ方向θは式３で算出する。
fxy＝√(fx2＋fy2)                                                …（２）
θ＝tan-1(fy／fx)                                                …（３）
【００５９】
ステップＳ１２では、テンプレートの全画素について、エッジ強度を算出したかどうかを判断する。算出していればステップＳ１３に進み、算出していなければステップＳ１１に戻る。
【００６０】
ステップＳ１３では、エッジ強度を閾値処理するための下限値を判別分析法によって算出する。
【００６１】
判別分析法については、田村秀行編著、「コンピュータ画像処理」、オーム社、平成１５年７月、ｐ．１４０の記載に基づいて求めることができる。
【００６２】
２値化しきい値を求める際、濃度分布を濃度値ｋで２つの領域に分割したとき、２つの領域が最もよく分離するような濃度値ｋを閾値として決定する方法が、判別分析法である。
【００６３】
この方法では、濃度値ｋを濃度範囲０〜２５４まで移動させ、濃度０〜ｋまでの集合C0と濃度ｋ＋１〜２５５までの集合C1との間で分散値が最大となるような濃度値ｋを求める。
分散値 S2 = w0w1(u1-u0)2                                          …（４）
u0：C0のポイント数の平均，u1：C1のポイント数の平均
w0：C0の発生する確率， w1：C1の発生する確率
【００６４】
ステップＳ１４では、エッジ強度を閾値処理するための上限値を統計処理によって算出する。
【００６５】
対象の最大濃度値から、統計に基づいて算出した割合だけ下げた値を上限値とする。
下限値以上のエッジ強度を有する画素数を計数し、計数値に予め定める割合Ｍ％を掛けて得た画素数を算出する。下限値以上のエッジ強度を有する画素数が、算出された画素数となるときのエッジ強度を上限値とする。ここで、割合Ｍ％としては、９５％〜１００％が望ましい。
【００６６】
このような、割合によって上限値を決定することが不適切な場合は、最大濃度値から予め定める値を差し引いたものを上限値としてもよい。
【００６７】
ステップＳ１５では、エッジ強度ｆｘｙが、下限側閾値ＴＨＬと上限側閾値ＴＨＨとの範囲内にあるかどうかを判断する。
【００６８】
エッジ強度ｆｘｙが、範囲内にあればステップＳ１６に進み、範囲外であればステップＳ１７に進む。ステップＳ１６では、当該エッジ画素を登録候補画素とし、エッジ方向と画素の位置座標を記憶する。ステップＳ１７では、全ての画素について処理が終了したかどうかを判断し、終了していれば閾値処理を終了する。終了していなければステップＳ１５に戻る。
【００６９】
次に、閾値処理によって登録候補画素とされたエッジ画素を対象に、形状定義表へ登録するエッジ画素を選択する定義表作成処理を行う。
【００７０】
図４は、定義表作成処理を示すフローチャートである。
処理の高速化を図りながら対象ワークの検出精度を確保するには、最低限必要なエッジ画素数があるが、目標とするエッジ画素数が得られるような細線化手法を見つけるのは困難である。
【００７１】
そこで、定義表に登録すべきエッジ画素数の目標数を設定し、次に細線化などによるエッジ画素選別を順次実行し、エッジ画素数が目標値に達したときに、そこまでの選別で得られたエッジ画素を定義表に登録する。
【００７２】
ステップＳ２１では、登録目標数を設定する。
上記の閾値処理で選択した登録候補画素を対象に、非極大化抑制処理を施した画像のエッジ画素数を計数し、計数値に予め定める比率、たとえば１５０％を掛ける。こうして得られた仮目標値と、実験データから予め得られた下限固定値とを比較し、大きい方の値を形状定義表の登録目標数として決定する。
【００７３】
非極大化抑制処理については、田村秀行編著、「コンピュータ画像処理」、オーム社、平成１５年７月、ｐ．２０１−２０２の記載に基づいて行うことができる。
【００７４】
ここで、目標数の基準となるエッジ画素数を、非極大化抑制処理を施した画像のエッジ画素数とした理由は、非極大化抑制処理、Hildichの細線化処理、横井の細線化処理、の３種類の手法を比較検討した結果、「非極大化抑制」＜「Hildichの細線化」＜「横井の細線化」＜「細線化処理無し」の順でエッジ画素数が増えていくことが判明したためである。
【００７５】
ステップＳ２２では、基準点として重心位置を算出し、ステップＳ２３でエッジ画素の選別処理を行う。
【００７６】
ステップＳ２３の選別処理では、以下の処理の中から決められた順序で１つの処理を選択し、エッジ画素を選別する。ここで実行する処理としては、（ａ）Hildichの細線化処理、（ｂ）横井の細線化処理、（ｃ）逆横井の細線化処理、（ｄ）未細線化、（ｅ）上限値拡大であり、後述する目標数との比較において、目標数に達しなかった場合は、目標数に達するまで、この順序で処理を実行する。
【００７７】
（ａ）Hildichの細線化処理については、井上誠喜他共著、「Ｃ言語で学ぶ実践画像処理」、オーム社、１９９９年１２月、ｐ．４７−５０の記載に基づいて行うことができる。
【００７８】
（ｂ）（ａ）の選別処理を経てもエッジ画素数が目標数に達しなかったときは、横井の細線化処理を行う。横井の細線化処理については、長谷川純一、輿水大和他共著、「画像処理の基本技法」、技術評論社、１９８６年７月、ｐ．６６−６９の記載に基づいて行うことができる。
【００７９】
（ｃ）（ｂ）横井の細線化処理では、画像を何度もスキャンし削除可能な画素を見つけてそれを削除していく。この場合、削除可能な画素が見つからなくなるまでスキャンを繰り返す。これに対して逆横井の細線化処理では、横井の細線化処理において最終的に削除可能な画素が見つからなくなる最大スキャン回数から、１回ずつスキャン回数を減らすことで、残るエッジ画素の数を増やす。
【００８０】
したがって、（ａ）、（ｂ）の選別処理を経てもエッジ画素数が目標数に達しなかったときは、目標数に達するまで、スキャン回数を最大スキャン回数から１回ずつ減らすことになる。
【００８１】
（ｄ）（ａ）から（ｃ）の選別処理を経てもエッジ画素数が目標数に達しなかったときは、細線化処理を行わない。
【００８２】
（ｅ）（ａ）から（ｄ）の選別処理を経てもエッジ画素数が目標数に達しなかったときは、エッジ画素数が目標数に達するまで、閾値の上限値を「１」ずつ上げる。最後まで目標数に達しなかったときは、閾値の上限を「２５５」として登録する。
【００８３】
ステップＳ２４で微分画像を作成し、ステップＳ２５で基準点との距離ｒおよび基準点との水平角αを算出する。
【００８４】
ステップＳ２６では、エッジ画素数が目標数以上となったかどうかを判断する。目標数以上であればステップＳ２７に進み、目標数より少なければステップＳ２３に戻り、上記のように、異なる処理を選択し、改めて選別処理を行う。
【００８５】
ステップＳ２７では、選別されたエッジ画素に基づいて、θをキーとしてソートを行い、ステップＳ２８で、θ、ｒおよびαを形状定義表に登録する。
【００８６】
手順３：粗サーチ処理
手順３では、粗サーチとして、所定の回転角度刻みで一般化Hough変換を行う。
【００８７】
図５は、粗サーチ処理を示すフローチャートである。ステップＳ３１で投票空間をクリアして、ステップＳ３２で投票処理を行う。
【００８８】
まず、投票箱（[φ][X][Y]  φ=回転角、Ｘ，Ｙ=基準点、用途の少ないサイズ変動のパラメータは割愛）を用意する。テンプレートが回転後、テンプレート上の点Pi(i=1,2,3,・・・)が画像中の座標(ｘi,ｙi)に置かれたとすると、基準点の画像座標(X,Y)は次式で表される。
X＝ｒicos(αi＋φ)＋ｘi、  Y＝ｒisin(αi＋φ)＋ｙi                …(５)
【００８９】
ここで、点Piにおけるθi、ｘi、ｙiが求められたとし、形状定義表登録時のθをθ´とすると、次の関係が成り立つ。
θ＝θ´＋φ                                                    …（６）
【００９０】
投票処理では、まず、回転角度（式５中のφ）を０°，ΔＡ，２×ΔＡ，・・・，（３６０°−ΔＡ）とΔＡ（単位は［°］）刻みで、式２を満たすθ´を求め、形状定義表のθ´の箇所から、ｒおよびαを求める。そして、式５を満たす(Ｘ,Ｙ)セル空間に投票する。
【００９１】
ステップＳ３３では全てのエッジについて投票処理を行ったかどうかを判断し、全て行っていればステップＳ３４に進み、行っていなければ次のエッジを対象にしてステップＳ３２に戻る。
【００９２】
ステップＳ３４では、最大の投票数となる回転角度と位置とを探し、第１候補画素を選択する。最大の投票数は各刻み角度ごとに求め、ステップＳ３５では、これまでの最大投票数（全角度を通した最大の投票数である全最大投票数）と比較する。全最大投票数以上であればステップＳ３６に進み、全最大投票数よりも小さければステップＳ３７に進む。ステップＳ３６では、全最大投票数、回転角度および位置を更新する。たとえば、１０°回転したと仮定すると、５０°のエッジ画素は、登録時には４０°のエッジ画素であったと考えられる。登録時４０°であったエッジ画素を形状定義表から集め、基準点との相対位置関係から、現在の基準位置を計算しそこに投票する。
【００９３】
ステップＳ３７では全ての回転角度についての処理が終了したかどうかを判断する。全て終了していれば粗サーチ処理を終了し、終了していなければステップＳ３８に進んで現在の回転角度に刻み角度ΔＡを加えてステップＳ３１に戻る。
【００９４】
手順３における刻み角度ΔＡは、５°〜１５°が望ましく、特に８°〜１０°が望ましい。刻み角度が５°よりも小さいと投票処理に要する計算時間が短縮されず、１５°よりも大きいと十分な検出精度が達成できない。
【００９５】
また、ステップＳ３４では、Sobelオペレータで求めたエッジ方向の精度誤差を改善するため、周辺画素の投票数を足し込むようにして最大投票数を求める。投票数を足し込む周辺画素は、注目画素を中心とする３×３画素における周辺８画素とすることが望ましい。
【００９６】
手順４：クラスタリング処理
手順３の粗サーチで選択された第１候補画素の中から、クラスタリングにより位置座標および回転角度がともに近似した画素を集めて同じクラスタとし、その中の最大投票数の画素だけを第２候補画素とする。１つのクラスタ内におけるその他の画素は、後続処理の対象から外す。クラスタリングとしては、単純クラスタリング（Nearest Neighbor法−
NN法）を採用する。その手順は、以下の通りである。
【００９７】
たとえば、図６の模式図に示すように、一つのデータＰ１をクラスタ中心とし、それから距離Ｔだけ離れたデータＰ２，Ｐ４，Ｐ５などは新たなクラスタ中心とする。距離Ｔ以内にあるＰ３は、Ｐ１と同じクラスタに属する。
【００９８】
このようにして、既存のクラスタ中心に近いものはそのクラスタのメンバとし、離れたものは新たなクラスタ中心とする。新たなクラスタ中心とするかどうかは、予め閾値を規定しておき、閾値以上に離れた場合に新たな中心とする。
【００９９】
本発明においては、クラスタのメンバであるか新たなクラスタ中心であるかを判断するために、２つのエッジ画素について、回転角度と、画素間の距離とを比較し、閾値よりも離れていれば新たなクラスタ中心であると判断する。
【０１００】
回転角度の閾値は、粗サーチにおける刻み角度ΔＡを採用し、２つのエッジ画素の回転角度が刻み角度以上に離れていれば、同一クラスタのメンバではないと判定する。距離の閾値は、基準テンプレートのエッジ画素の中で、中心から最も遠いエッジ画素までの距離をＳとしたとき、Ｓ×Ｎ％の距離を閾値とする。ここで、割合Ｎ％は７０％〜１００％である。
【０１０１】
クラスタリングの対象となる候補画素の数は予め設定されており、その数分の候補画素が粗サーチで選択される。選択された候補画素がクラスタリングされ、上位のクラスタの代表画素（１つのクラスタ内で最大の投票数である画素）が後続処理の対象として選択される。
【０１０２】
手順５：中間サーチ処理
手順５では、中間サーチとして、所定の回転角度刻みで一般化Hough変換を行う。
【０１０３】
手順４のクラスタリングで絞り込んだ第２候補画素について、手順３のフローと同様のサーチ処理を行う。手順３との違いは、クラスタリングでさらに絞り込まれた候補画素を対象にすることと、回転角度の刻み角度を手順３よりも小さくすることである。粗サーチでの刻み角度を９°とすると、ピーク角度±６°を３°刻みとし、さらにピーク角度±２°を１°刻みとする。
【０１０４】
刻み角度を小さくした上で、最大投票数の画素から順に指定候補数分の第３候補画素について回転角度と座標とを後続処理に渡す。
【０１０５】
手順６：最終サーチ処理
手順５の中間サーチで求めた第３候補画素について、その位置と回転角度周辺について、取込画像側を回転させながら、正規化相関を行い、最も一致度の高い回転角度と座標を検出結果として出力する。
【０１０６】
正規化相関は、以下の式７の相関式を用いて行う。
相関式＝{Ａ÷√(Ｂ×Ｃ)}×100                                    …（７）
【０１０７】
また、Ａ＝Σ(Ｉ×Ｔ)−(ΣＩ)×(ΣＴ)／Ｎ：入力画像と基準画像の相互相関であり、Ｂ＝Σ(Ｉ×Ｉ)−(ΣＩ)×(ΣＩ)／Ｎ：入力画像自己相関であり、Ｃ＝Σ(Ｔ×Ｔ)−(ΣＴ)×(ΣＴ)／Ｎ：基準画像自己相関である。ここで、Ｎは基準画像の画素数、Ｔは基準画像濃度であり、Ｉは入力画像濃度である。
【０１０８】
本発明は、対象ワークの検出のための画像処理において、検出精度向上するとともに、処理の高速化および必要なメモリ容量の縮小を実現することができる。
【０１０９】
図６は、画像処理システム１００の構成を示すブロック図である。画像処理システム１００は、撮像装置１０１、画像処理装置１０２、表示装置１０３を有し、前述のような部品の位置検出システムを構成する。
【０１１０】
撮像装置１０１は、ＣＣＤ（電荷結合素子）カメラ１１１、Ａ／Ｄ（アナログ／デジタル）変換器１１２、カメラコントローラ１１３、Ｄ／Ａ変換器１１４およびフレームメモリ１１５からなる。ＣＣＤカメラ１１１が、部品などを撮像し、受光量をアナログ画像信号として出力する。Ａ／Ｄ変換器１１２は、ＣＣＤカメラ１１１から出力されたアナログ画像信号をデジタルデータに変換し、デジタル画像データとして出力する。カメラコントローラ１１３は、デジタル画像データを１フレームごとにフレームメモリ１１５に格納するとともに、表示装置１０３に表示させるために、Ｄ／Ａ変換器１１４に出力する。Ｄ／Ａ変換器１１４は、カメラコントローラ１１３から出力されたデジタル画像データを表示装置１０３に応じたアナログ画像信号に変換して表示装置１０３に出力する。表示装置１０３は、ＬＣＤ（Liquid Crystal Display）やＣＲＴ（Cathode Ray Tube）ディスプレイなどで実現され、撮像装置１０１から出力されたアナログ画像信号を表示する。
【０１１１】
画像処理装置１０２は、ＣＰＵ（中央演算処理装置）１２１、ＲＡＭ（Random Access 
Memory）１２２、ＲＯＭ（Read Only Memory）１２３およびＩ／Ｏ（Input/Output）コントローラ１２４からなる。ＣＰＵ１２１は、ＲＯＭ１２３に記憶されている制御プログラムに基づいて画像処理装置１０２の動作を制御する。処理中の画像データや演算中のデータなどは一時的にＲＡＭ１２２に記憶される。Ｉ／Ｏコントローラ１２４は、キーボードやマウスなどの入力装置や部品の移動装置などが接続され、これらの入出力データの制御を行う。
【０１１２】
ＣＰＵ１２１およびＲＯＭ１２３は、作成手段、粗サーチ手段、クラスタリング手段、中間サーチ手段、最終サーチ手段を構成し、撮像装置１０１のカメラコントローラ１１３を介してフレームメモリ１１５から画像データを取得し、図１のフローチャートで示した画像処理を実行する。画像処理によって対象ワークの位置、回転角度が決定されると、たとえば、部品が正しい方向に実装されているかなどの検査を行うことができる。
【０１１３】
また、本発明の他の実施形態は、コンピュータを画像処理装置１０２として機能させるための画像処理プログラム、および画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体である。これによって、画像処理プログラムおよび画像処理プログラムを記録した記録媒体を持ち運び自在に提供することができる。
【０１１４】
記録媒体は、プリンタやコンピュータシステムに備えられるプログラム読み取り装置により読み取られることで、画像処理プログラムが実行される。
【０１１５】
コンピュータシステムの入力手段としては、フラットベッドスキャナ・フィルムスキャナ・デジタルカメラなどを用いてもよい。コンピュータシステムは、これらの入力手段と、所定のプログラムがロードされることにより画像処理などを実行するコンピュータと、コンピュータの処理結果を表示するＣＲＴディスプレイ・液晶ディスプレイなどの画像表示装置と、コンピュータの処理結果を紙などに出力するプリンタより構成される。さらには、ネットワークを介してサーバーなどに接続するための通信手段としてのＬＡＮ（
Local Area Network）インターフェイスなどが備えられる。
【０１１６】
なお、記録媒体としては、プログラム読み取り装置によって読み取られるものには限らず、マイクロコンピュータのメモリ、たとえばＲＯＭであっても良い。記録されているプログラムはマイクロプロセッサがアクセスして実行しても良いし、あるいは、記録媒体から読み出したプログラムを、マイクロコンピュータのプログラム記憶エリアにダウンロードし、そのプログラムを実行してもよい。このダウンロード機能は予めマイクロコンピュータが備えているものとする。
【０１１７】
記録媒体の具体的な例としては、磁気テープやカセットテープなどのテープ系、フレキシブルディスクやハードディスクなどの磁気ディスクやＣＤ−ＲＯＭ（Compact Disc-
Read Only Memory）／ＭＯ（Magneto Optical）ディスク／ＭＤ（Mini Disc）／ＤＶＤ（
Digital Versatile Disc）などの光ディスクのディスク系、ＩＣ（Integrated Circuit）カード（メモリカードを含む）／光カードなどのカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（Electrically 
Erasable Programmable Read Only Memory）、フラッシュＲＯＭなどの半導体メモリを含めた固定的にプログラムを担持する媒体である。
【０１１８】
また、本実施形態においては、コンピュータはインターネットを含む通信ネットワークに接続可能なシステム構成とし、通信ネットワークを介して画像処理プログラムをダウンロードしても良い。なお、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード機能は予めコンピュータに備えておくか、あるいは別な記録媒体からインストールされるものであっても良い。また、ダウンロード用のプログラムはユーザーインターフェースを介して実行されるものであっても良いし、決められたＵＲＬ（Uniform Resource Locater）から定期的にプログラムをダウンロードするようなものであっても良い。
【実施例】
【０１１９】
エッジ抽出処理において、閾値の上限設定有無の影響を調べた。
図８に示すような画像において、コントラストの低いワークＡをテンプレートとして形状定義登録した。
【０１２０】
実施例１として、閾値に上下限値を設定（下限＝７、上限＝２１）した場合、正常に検出したが、比較例１として、閾値が下限のみ（下限＝７、上限＝２５５）の場合、ワークＢが誤検出された。
【０１２１】
エッジ抽出処理において、細線化を利用した選別有無の影響を調べた。
間引き画像（偶数アドレスの画素）対象時に、図８に示した画像において、コントラストの低いワークＣをテンプレートとして形状定義登録した。
【０１２２】
このときの閾値は、下限値を３３、上限値を８３とした。
実施例２として、図４のフローチャートに示したように、細線化を利用して登録画素を選別した。なお、選別処理が横井の細線化処理を行った時点で目標数に達した。
【０１２３】
比較例２として、登録画素の選別を行わず、全エッジ画素を登録した。
それぞれの場合の形状定義表への登録数および上記手順１〜手順６までの処理に要する処理時間を表１に示す。
【０１２４】
【表１】
2008097310.tif 000005
【０１２５】
比較例２に比べて、実施例２では、登録数が大幅に削減され、上記手順１〜手順６までの処理も高速化された。
【図面の簡単な説明】
【０１２６】
【図１】本発明の画像処理を示すフローチャートである。
【図２】平均値フィルタの例を示す図である。
【図３】閾値処理を示すフローチャートである。
【図４】定義表作成処理を示すフローチャートである。
【図５】粗サーチ処理を示すフローチャートである。
【図６】クラスタリング処理を説明するための模式図である。
【図７】画像処理システム１００の構成を示すブロック図である。
【図８】実施例で画像処理の対象とした画像を示す図である。
【図９】形状テンプレートの定義例を示す図である。
【図１０】形状定義表の例を示す図である。
【符号の説明】
【０１２７】
１００  画像処理システム
１０１  撮像装置
１０２  画像処理装置
１０３  表示装置
１１１  ＣＣＤカメラ
１１２  Ａ／Ｄ変換器
１１３  カメラコントローラ
１１４  Ｄ／Ａ変換器
１１５  フレームメモリ
１２１  ＣＰＵ
１２２  ＲＡＭ
１２３  ＲＯＭ
１２４  Ｉ／Ｏコントローラ
【図１】
2008097310.tif 000006
【図２】
2008097310.tif 000007
【図３】
2008097310.tif 000008
【図４】
2008097310.tif 000009
【図５】
2008097310.tif 000010
【図６】
2008097310.tif 000011
【図７】
2008097310.tif 000012
【図８】
2008097310.tif 000013
【図９】
2008097310.tif 000014
【図１０】
2008097310.tif 000015