(57)【特許請求の範囲】
【請求項１】
探索の対象物の特徴点の座標を含むデータをあらかじめテンプレートとして記憶し、前記テンプレートのデータを用いて、対象物が撮像されたサーチ画像から任意の回転、スケール、平行移動の変動を受けた前記対象物を探索する画像処理装置において、
前記対象物のテンプレート画像の濃淡画像データ及び前記サーチ画像の濃淡画像データの双方からエッジ画像を生成するエッジ画像生成手段と、
前記エッジ画像から画像エネルギーを生成する画像エネルギー生成手段と、
前記画像エネルギーから前記サーチ画像内の点及び前記テンプレートの特徴点の少なくとも一方が受ける移動ベクトルを算出する移動ベクトル算出手段と、
前記移動ベクトルを移動量に変換する移動量変換手段と、
前記移動ベクトルの総和が収束条件を満たすか否かにより前記テンプレートがサーチ画像上の対象物の位置に合致したことを判定する判定手段と、
前記判定手段が収束条件を満たすと判定した時の前記移動量から探索情報を求める探索情報取得手段と、
前記サーチ画像内で前記テンプレートをピクセル単位の誤差範囲で探索する粗サーチ手段と、
前記粗サーチの探索結果に基づいて前記テンプレートを前記サーチ画像の座標系に当て嵌めて、当該テンプレートの複数の特徴点に近似するエッジ点の中から複数の対応点を求める対応点取得手段と、
前記移動ベクトル算出手段が、所定領域の前記複数の対応点を前記テンプレート画像の座標系に当て嵌めると共に、前記テンプレートの画像エネルギーから前記サーチ画像の対応点が受ける移動ベクトルを算出することを特徴とする画像処理装置。
【請求項２】
前記判定手段が収束条件を満たすと判定するまで前記移動ベクトル算出手段と前記移動量変換手段と前記移動量に応じて、テンプレートとサーチ画像との相対位置を更新させる移動手段とがその処理を繰り返し行うことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記移動ベクトル算出手段と前記移動手段との繰り返すサーチループ処理において、
前記移動量変換手段が、前記移動ベクトルを移動量に変換する際に、ループ回数が増えるたびに移動量を小さくする補正係数を乗算することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記粗サーチ手段による探索後に、その探索結果に基づいて、前記特徴点と対応点の相互間距離である対応点間距離の二乗総和を求め、当該二乗総和が最小となる変換量で前記各特徴点を変換して新たな対応点を求めることで前記粗サーチ手段による探索結果を補正する補正手段を備えることを特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
前記補正手段は、前記二乗総和が所定の収束条件を満たすまで前記各特徴点の変換と前記二乗総和の算出を繰り返し実行すると共に、その過程で前記対応点間距離が所定値以上となる場合或いは前記対応点間距離が減少しない特徴点については、外れ点として特定とすることを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記各特徴点について所定の重み付けを行うと共に、
前記補正手段は、前記二乗総和の算出を繰り返し実行する場合に、繰り返し回数が進むにつれて前記特徴点の参加数を段階的に増加させ、その際の特徴点の参加する優先順位を前記重み付けの重い順にすることを特徴とする請求項５記載の画像処理装置。
【請求項７】
前記テンプレートとして、前記複数の特徴点の各々のエッジ勾配ベクトルを求め、勾配が所定範囲で共通するベクトル数である出現頻度を求めて、当該出現頻度数に応じて前記各特徴点について重み付けを行う第一の重み付け手段を備えることを特徴とする請求項１から６のいずれか一項に記載の画像処理装置。
【請求項８】
前記テンプレートとして、前記複数の特徴点の各々のコーナー度を求め、当該コーナー度が高い特徴点について重み付けを重くして前記各特徴点の重み付けを行う第二の重み付け手段を備えることを特徴とする請求項１から７のいずれか一項に記載の画像処理装置。
【請求項９】
フィルタ演算を行うための並列演算機構を備えることを特徴とする請求項１から８のいずれか一項に記載の画像処理装置。
【請求項１０】
前記サーチ画像上の位置でテンプレートとの相関値を求め、サーチ画像上の対象物を正しく探し出したことを判定できる手段を設けたことを特徴とする請求項１から９のいずれか一項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、あらかじめサーチしたい対象物の形状パターンを登録しておき、回転、スケール、平行移動などの変動を受けた対象物をサーチ画像上から探索する画像処理装置に関するものである。
【背景技術】
【０００２】
対象物をテンプレートとしてあらかじめ登録しておき、別途撮像した画像から探し出す方法としては、濃度値を比較する、正規化相関法を使用した濃度ベースのマッチング方法や、エッジ勾配などの形状情報を比較する、形状ベースのマッチング方法等がある。
【０００３】
形状ベースのマッチング方法には、一般化ハフ変換や幾何学的ハッシング法などハフ変換をベースとした考え方のものが多い。これらは、画像データをベースに処理するので、基本的にはピクセル単位での処理であり、より精細な精度が求められるサブピクセル演算としては、最大相関位置周辺の画素位置の相関値分布について、ある間隔で離散的に求めた後、直線や放物線を当てはめてサブピクセルレベルのピーク位置を推定する方法が取られていた。
【０００４】
図２０にサブピクセル位置でのマッチング例を示す。これは、サブピクセル位置の画素濃度を周辺４近傍の整数位置の濃度から線形補間で求め、その補間濃度データを用いて、サブピクセル位置での濃度勾配ベクトルを求めるものである。このようにして、最大相関値の周辺の画素の相関値を用意する。
【０００５】
次に図２１にサブピクセルピークの推定例を示す。ここでは、パラボラフィッティングによる推定を記述している。最大相関値位置の前後の等間隔位置の２つのデータを加えた３つの相関値から記述の式により、真のピーク位置までのサブピクセル距離を算出することができる。
【０００６】
一方、３次元モデル化の分野では、複数の方向から撮像して複数の画像を取得し、この複数の画像を同一座標系に位置合わせする処理として、ICP（Iterative Closest Point）法が知られている。（非特許文献１参照）
【０００７】
ＩＣＰ法では、２つの画像中の最近傍点を対応点として、この対応点間距離を最小化するような各画像の変換行列を求め、繰り返し計算によってその対応付けの精度を上げながら、相対位置を求めていく。
【０００８】
図２２にＩＣＰ法の原理を簡単に示す。
（１）モデルを初期位置姿勢に配置
（２）モデルと計測点群の対応点を決定
（３）対応点間距離が最小になるようモデルの位置姿勢を変換
（４）モデルと計測点群の新たな対応点を決定
（５）以下、収束するまで繰り返す。
【０００９】
このとき、２つの画像のそれぞれをテンプレート画像、サーチ画像とし、テンプレート画像内の特徴点について、サーチ画像上での対応点を見つける手法だとみなすと、上述のマッチング方法として応用できる。
【００１０】
また、動的輪郭線モデルとエネルギー最小化の手法を用いて、輪郭線抽出を行なう技術としてＳｎａｋｅｓがある（非特許文献２参照）。
画像内の対象物の輪郭線抽出処理は、位置決め処理とも考えることができ、上述のマッチング方法として応用できる。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】P. J. Besl and N. D. McKay, A method for registration of 3-D shapes, IEEE Transactions on Pattern Analysis and Machine Intelligence, 14(2) 1992, 239-256
【非特許文献２】M.Kass,A.Witkin,and D.Terzopoulos,  ”Snakes:Active Contour Models,”  International Journal Computer Vision,vol.1,No.4,pp.321-331,Jan,1988..
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、ハフ変換のように投票空間を利用した手法をベースに、高精度化を行うと細かく分けた膨大なメモリ量の投票空間が必要になる、また投票空間を細かくすると、明確な投票ピークが出づらくなるなどの問題があった。
【００１３】
また、図２０に示した方法では実数演算を多用するので演算コストが膨大になる。さらに、その精度は、離散間隔にもよるが、パラボラフィッティングと組み合わせたとしてもせいぜい１／４画素程度であった。
【００１４】
一方、ＩＣＰ法をマッチング方法として応用しようとすると次のような問題がある。
ＩＣＰ法におけるサーチ画像とテンプレート画像との対応付けはテンプレート画像の各特徴点と当該各特徴点に個々に対応するサーチ画像上の各エッジ点との距離の総和が最小になるテンプレート画像の位置を探すというものである。単純に考えると、特徴点とエッジ点の組み合わせ数の演算が必要でとても膨大な処理量になる。
Ｋ−Ｄ木を用いた高速な探索方式を組み合わせて使い、これらの処理量を軽減する手法もあるが、さらにエッジ点数が増えると、メモリ量の問題や、Ｋ−Ｄ木作成に時間がかかるという問題も発生する。
【００１５】
さらには、図２３に示すように、サーチ画像上に対象物の隠蔽物Ｂがある場合には、いくら探しても対応点が存在しない（以下このような点を外れ点とよぶ）。また、図２４に示すように、ノイズＮがサーチ画像上にある場合は、本当の対応点より近くにあるノイズＮに対して対応付けしてしまう場合があった。
【００１６】
このような間違った対応付けを含んだまま処理してしまうと、一気に収束の速度、精度が落ちてしまう。さらに、この対応付けはテンプレートの各特徴点について、サーチ画像上の各エッジ点との距離が最小になる点を探すというものである。単純に考えると、特徴点とエッジ点の組み合わせ数の演算が必要で計算量はｎの２乗のオーダーとなり、エッジ点が増大するにつれ、とても膨大な時間を要する。
【００１７】
また、図２５に示すように、棒状の対象物など極端にエッジ勾配ベクトルの向きの頻度に差があるものは、頻度が低い方向について精度が落ちてしまう。
図２５に示す形状の対象物は、その長手方向がｘ方向に沿っている場合、ｙ方向のエッジ勾配ベクトルＤｙがｘ方向のエッジ勾配ベクトルＤｘに比べて極端に出現頻度（数量）が高くなる。このような対象物については、ｙ方向のエッジ勾配ベクトルＤｙを持った特徴点について対応点が収束してしまうと、ｘ方向のエッジ勾配ベクトルＤｘを持った特徴点の対応点間距離は、ある程度の大きさが残っていたとしても、全体の一致度合いから見ると、誤差のレベルになってしまい、まだ十分近づいていないにもかかわらず、収束条件を満たしてしまい、位置合わせが終了してしまう。
【００１８】
本発明は、処理負担を軽減しつつサブピクセルレベルでの位置検出を高速で行う画像処
理装置を提供することをその目的とする。
また、ノイズ成分や形状の相違により処理が不安定にならないこと、ロバスト性を向上させることをさらに他の目的とする。
【課題を解決するための手段】
【００１９】
請求項１記載の発明は、
探索の対象物の特徴点の座標を含むデータをあらかじめテンプレートとして記憶し、前記テンプレートのデータを用いて、対象物が撮像されたサーチ画像から任意の回転、スケール、平行移動の変動を受けた前記対象物を探索する画像処理装置において、
前記対象物のテンプレート画像の濃淡画像データ及び前記サーチ画像の濃淡画像データの双方からエッジ画像を生成するエッジ画像生成手段と、
前記エッジ画像から画像エネルギーを生成する画像エネルギー生成手段と、
前記画像エネルギーから前記サーチ画像内の点及び前記テンプレートの特徴点の少なくとも一方が受ける移動ベクトルを算出する移動ベクトル算出手段と、
前記移動ベクトルを移動量に変換する移動量変換手段と、
前記移動ベクトルの総和が収束条件を満たすか否かにより前記テンプレートがサーチ画像上の対象物の位置に合致したことを判定する判定手段と、
前記判定手段が収束条件を満たすと判定した時の前記移動量から探索情報を求める探索情報取得手段と、
前記サーチ画像内で前記テンプレートをピクセル単位の誤差範囲で探索する粗サーチ手段と、
前記粗サーチの探索結果に基づいて前記テンプレートを前記サーチ画像の座標系に当て嵌めて、当該テンプレートの複数の特徴点に近似するエッジ点の中から複数の対応点を求める対応点取得手段と、
前記移動ベクトル算出手段が、前記複数の対応点を前記テンプレート画像の座標系に当て嵌めると共に、前記テンプレートの画像エネルギーから前記サーチ画像の対応点が受ける移動ベクトルを算出することを特徴とする。
【００２０】
請求項２記載の発明は、請求項１記載の発明と同様の構成を備えると共に、
前記判定手段が収束条件を満たすと判定するまで前記移動ベクトル算出手段と前記移動量変換手段と前記移動量に応じて、テンプレートとサーチ画像との相対位置を更新させる移動手段とがその処理を繰り返し行うことを特徴とする。
【００２１】
請求項３記載の発明は、請求項２記載の発明と同様の構成を備えると共に、
前記移動ベクトル算出手段と前記移動手段との繰り返すサーチループ処理において、
前記移動量変換手段が、前記移動ベクトルを移動量に変換する際に、ループ回数が増えるたびに移動量を小さくする補正係数を乗算することを特徴とする。
【００２３】
請求項４記載の発明は、請求項１から３のいずれか一項に記載の発明と同様の構成を備えると共に、
前記粗サーチ手段による探索後に、その探索結果に基づいて、前記特徴点と対応点の相互間距離である対応点間距離の二乗総和を求め、当該二乗総和が最小となる変換量で前記各特徴点を変換して新たな対応点を求めることで前記粗サーチ手段による探索結果を補正する補正手段を備えることを特徴とする。
【００２４】
請求項５記載の発明は、請求項４記載の発明と同様の構成を備えると共に、
前記補正手段は、前記二乗総和が所定の収束条件を満たすまで前記各特徴点の変換と前記二乗総和の算出を繰り返し実行すると共に、その過程で前記対応点間距離が所定値以上となる場合或いは前記対応点間距離が減少しない特徴点については、外れ点として特定とすることを特徴とする。
【００２５】
請求項６記載の発明は、請求項５記載の発明と同様の構成を備えると共に、
前記各特徴点について所定の重み付けを行うと共に、
前記補正手段は、前記二乗総和の算出を繰り返し実行する場合に、繰り返し回数が進むにつれて前記特徴点の参加数を段階的に増加させ、その際の特徴点の参加する優先順位を前記重み付けの重い順にすることを特徴とする。
【００２６】
請求項７記載の発明は、請求項１から６のいずれか一項に記載の発明と同様の構成を備えると共に、
前記テンプレートとして、前記複数の特徴点の各々のエッジ勾配ベクトルを求め、勾配が所定範囲で共通するベクトル数である出現頻度を求めて、当該出現頻度数に応じて前記各特徴点について重み付けを行う第一の重み付け手段を備えることを特徴とする。
【００２７】
請求項８記載の発明は、請求項１から７のいずれか一項に記載の発明と同様の構成を備えると共に、
前記テンプレートとして、前記複数の特徴点の各々のコーナー度を求め、当該コーナー度が高い特徴点について重み付けを重くして前記各特徴点の重み付けを行う第二の重み付け手段を備えることを特徴とする。
【００２８】
請求項９記載の発明は、請求項１から８のいずれか一項に記載の発明と同様の構成を備えると共に、
フィルタ演算を行うための並列演算機構を備えることを特徴とする。
【００２９】
請求項１０記載の発明は、請求項１から９のいずれか一項に記載の発明と同様の構成を備えると共に、前記サーチ画像上の位置でテンプレートとの相関値を求め、サーチ画像上の対象物を正しく探し出したことを判定できる手段を設けたことを特徴とする。
【発明の効果】
【００３０】
請求項１記載の発明は、濃淡画像データより得られる画像エネルギーを利用してテンプレートをサーチ画像上の対象物に位置合わせすることから、特徴点の対応付けが不要となり、従来技術に比べて少ない処理量によってサーチ画像上の対象物位置への移動量を求めることができ、その際の移動量からサーチ画像内の対象物を精度良く探索することが可能となる。
また、テンプレートの画像エネルギーを利用して対象物を探索することができるので、画像エネルギーの算出は探索時に限らず事前に行うことができるため、探索処理を迅速に行うことが可能となる。
【００３１】
請求項２記載の発明は、判定手段が収束条件を満たすと判定するまで移動ベクトル算出手段と移動手段とがその処理を繰り返し行うので、収束条件の制御により、精度レベルの制御が可能となる。例えば、収束条件を厳しくすることで繰り返し回数は多くなるが、より精度良く位置合わせをすることができる。
【００３２】
請求項３記載の発明は、サーチループ処理において、ループ回数が増えるたびに小さくなる補正係数を乗算することにより、精度を保持したまま、収束を早くして処理の高速化を実現することが可能となる。
【００３４】
請求項４記載の発明は、補正手段を備えるので、粗サーチ手段による探索結果よりも精度の高い探索結果によって、より近傍で、かつ、より正確な対応点を用いて、テンプレートの画像エネルギーによる対応点の移動ベクトルの算出を行うことができ、より精度の高い探索を高速に行うことが可能となる。
【００３５】
請求項５記載の発明は、特徴点の中から外れ点を特定することができるので、その後の処理について、外れ点を除いたり、重みを低減して扱う等の処理を行うことができ、処理の遅速化原因を除くことができ、探索処理の高速化を図ることが可能となる。
【００３６】
請求項６記載の発明は、特徴点の参加数を段階的に増加させるので、収束の迅速化を図ることができ、なおかつ、重み付けに応じて特徴点の参加する優先順位を定めるので、探索精度を高く維持することができる。
【００３７】
請求項７記載の発明は、勾配による出現頻度に応じて特徴点の重み付けを行うので、出現頻度が少ない方向について精度をより高めて探索を行うことが可能となる。
【００３８】
請求項８記載の発明は、コーナー度の高い特徴点の重み付けをより高くするので、探索誤差を低減しより高い精度で探索を行うことが可能となる。
【００３９】
請求項９記載の発明は、探索において処理負担の高いフィルタ処理に特化した並列演算機構を備えるので、当該フィルタ処理を高速で行うことができ、探索の迅速化を図ることが可能となる。
【００４０】
請求項１０記載の発明は、サーチ画像上の位置でテンプレートとの相関値を求めるので、サーチ画像上の対象物を正しく探し出したか否かの判定が可能となる。
【図面の簡単な説明】
【００４１】
【図１】本実施の形態に係る電子部品実装装置の全体を示す平面図である。
【図２】電子部品実装装置の制御系を示すブロック図である。
【図３】テンプレート作成処理のフローチャートである。
【図４】コーナー度を計算する手法を示す説明図である。
【図５】局所領域のエッジ形状によってコーナー度が変わることを示す説明図である。
【図６】重心と特徴点上の重心法線と拡大縮小ベクトル、回転ベクトルの関係を示す図である。
【図７】重心法線ベクトルとエッジ勾配ベクトルの関係を示す図である。
【図８】図８（Ａ）は濃淡画像における一定方向の濃度値、図８（Ｂ）は濃淡画像の微分によるエッジ画像のエッジ強さ、図８（Ｃ）は画像エネルギー、図８（Ｄ）は画像のエッジからの力、図８（Ｅ）はエッジから受ける単位あたりの移動量を示す線図である。
【図９】エッジ点における画像エネルギーによる引き寄せ力をボールに生じる重力に例えて説明したイメージ説明図である。
【図１０】テンプレートにかかる力の様を示す説明図である。
【図１１】図１１（Ａ）から図１１（Ｃ）は画像エネルギーによりテンプレートがエッジ画像に対する位置合わせが行われる過程を示す説明図である。
【図１２】サーチ処理のフローチャートである。
【図１３】図１２のフローチャートに対応したデータフロー図である。
【図１４】撮像画像演算機構の構成図である。
【図１５】二乗距離総和の参加数を定めたテーブルである。
【図１６】最小二乗法による位置変換と変換後の対応点との関係を示す図である。
【図１７】テンプレート上の任意の特徴点上における力の関係を示す図である。
【図１８】ループ回数による移動量のリミットテーブルの図である。
【図１９】テンプレートが毎回のループ処理において画像エネルギーに基づいて収束する状態を示す図である。
【図２０】サブピクセル位置でのマッチング例を示す図である。
【図２１】サブピクセルピークの推定例を示す図である。
【図２２】ＩＣＰ法の原理を簡単に示す図であり、図２２（１）〜（４）の順で処理が行われる。
【図２３】サーチ画像上に対象物の隠蔽物がある場合の例を示す図である。
【図２４】サーチ画像上にノイズがある場合の例を示す図である。
【図２５】エッジ勾配ベクトルの向きの頻度に差がある場合の例を示す図である。
【発明を実施するための形態】
【００４２】
（発明の実施形態の全体構成）
本発明の実施形態について、図１乃至図１９に基づいて説明する。本実施形態は、撮像画像内で探索対象物である電子部品を探索するための画像処理装置１０が電子部品実装装置１００に搭載され、後述する吸着ノズルに吸着された電子部品の位置を検出する目的に利用される場合の例を示している。
【００４３】
（電子部品実装装置）
図１は電子部品実装装置１００の平面図、図２は制御系を示すブロック図である。電子部品実装装置１００は、基板に各種の電子部品の搭載を行うものであって、電子部品の搭載手段として、図１に示すように、搭載される電子部品を供給する複数の電子部品フィーダ１０１と、電子部品フィーダ１０１を複数並べて保持する電子部品供給部としてのフィーダバンク１０２と、一定方向に基板を搬送する基板搬送手段１０３と、当該基板搬送手段１０３による基板搬送経路の途中に設けられた基板に対する電子部品搭載作業を行うための搭載作業部１０４と、電子部品を吸着する吸着ノズル１０５を保持して電子部品の保持を行う部品保持手段としてのヘッド１０６と、ヘッド１０６を所定範囲内の任意の位置に駆動搬送するヘッド移動手段としてのＸ−Ｙガントリ１０７と、吸着ノズル１０５に吸着された電子部品の撮像を行う標準カメラ１１５及び高解像度カメラ１１６と、撮像位置に照明光を照射する照明装置１１７と、電子部品実装装置１００の各構成に対して制御を行う制御装置１２０と、カメラ１１５，１１６の撮像画像から探索対象となる電子部品の探索処理を実行する画像処理装置１０とを備えている。
画像処理装置１０は、カメラ１１５，１１６による電子部品Ｃの撮像画像から正確な位置情報を求め、制御装置１２０に出力することでヘッド１０６の位置決め動作に反映させるために利用される。
標準カメラ１１５及び高解像度カメラ１１６はいずれもＣＣＤカメラであり、搭載が行われる電子部品の電極サイズによって使い分けられるようになっている。以下の記載では、標準カメラ１１５が使用される前提で説明を行うこととする。
また、以下の説明において、水平面に沿って互いに直交する一の方向をＸ軸方向とし、他の方向をＹ軸方向とし、垂直上下方向をＺ軸方向と称することとする。
【００４４】
基板搬送手段１０３は、図示しない搬送ベルトを備えており、その搬送ベルトにより基板をＸ軸方向に沿って搬送する。
また、前述したように、基板搬送手段１０３による基板搬送経路の途中には、電子部品を基板へ搭載する搭載作業部１０４が設けられている。基板搬送手段１０３は、搭載作業部１０４まで基板を搬送すると共に停止して、図示しない保持機構により基板の保持を行う。つまり、基板は保持機構により保持された状態で安定した電子部品の搭載作業が行われる。
【００４５】
ヘッド１０６は、その先端部で空気吸引により電子部品を保持する吸着ノズル１０５と、この吸着ノズル１０５をＺ軸方向に駆動する駆動源であるＺ軸モータ１１１と、吸着ノズル１０５を介して保持された電子部品をＺ軸方向を中心として回転駆動させる回転駆動源であるθ軸モータ１１２とが設けられている。
また、各吸着ノズル１０５は負圧発生装置１０８に接続され、当該吸着ノズル１０５の先端部において吸気吸引を行うことにより電子部品の吸着及び保持が行われる。
つまりこれらの構造により、搭載作業時には、吸着ノズル１０５の先端部で所定の電子部品フィーダ１０１から電子部品を吸着し、所定位置で基板に向かって吸着ノズル１０５を下降させると共に吸着ノズル１０５を回転させて電子部品の向きの調整を行いつつ搭載作業が行われる。
また、前述した各カメラ１１５，１１６は、ベースフレーム１１４に搭載されており、Ｘ−Ｙガントリ１０７によりヘッド１０６が各カメラ１１５，１１６の位置決めされて撮像が行われるようになっている。
各カメラ１１５，１１６は、ベースフレーム１１４から上方に向けられた状態で保持されており、吸着ノズル１０５に吸着された電子部品Ｃを下方から撮像し、撮像画像を画像処理装置１０に出力する。
【００４６】
Ｘ−Ｙガントリ１０７は、Ｘ軸方向にヘッド１０６の移動を案内するＸ軸ガイドレール１０７ａと、このＸ軸ガイドレール１０７ａと共にヘッド１０６をＹ軸方向に案内する二本のＹ軸ガイドレール１０７ｂと、Ｘ軸方向に沿ってヘッド１０６を移動させる駆動源であるＸ軸モータ１０９と、Ｘ軸ガイドレール１０７ａを介してヘッド１０６をＹ軸方向に移動させる駆動源であるＹ軸モータ１１０とを備えている。そして、各モータ１０９，１１０の駆動により、ヘッド１０６を二本のＹ軸ガイドレール１０７ｂの間となる領域のほぼ全体に搬送することを可能としている。
なお、各モータは、ぞれぞれの回転量が制御装置１２０に認識され、所望の回転量となるように制御されることにより、ヘッド１０６を介して吸着ノズル１０５や各カメラ１１５，１１６の位置決めを行っている。
また、電子部品の必要上、前記したフィーダバンク１０２，搭載作業部１０４とはいずれもＸ−Ｙガントリ１０７によるヘッド１０６の搬送可能領域内に配置されている。
【００４７】
フィーダバンク１０２には、複数の電子部品フィーダ１０１がＸ軸方向に沿って羅列して載置装備される。
各電子部品フィーダ１０１は、後端部に電子部品が一列に並んで封止された部品テープのリール（図示略）が保持されており、部品テープはリールから電子部品フィーダ１０１の先端部（基板側の端部）の上側に設けられた部品受け渡し位置１０１ａまで繰り出され、当該部品受け渡し位置１０１ａにおいて吸着ノズル１０５により電子部品の吸着が行われるようになっている。
【００４８】
制御装置１２０は、基板Ｋに搭載する電子部品Ｃのリスト、搭載順番、各電子部品の部品吸着位置（いずれの電子部品フィーダ１０１から受け取るか）及び基板Ｋにおける搭載位置等が定められた搭載プログラムを記録し、当該搭載プログラムに従ってＸ軸モータ１０９、Ｙ軸モータ１１０及びＺ軸モータ１１１を制御し、ヘッド１０６の位置決め制御を行う。また、この制御装置１２０は、吸着時の電子部品に対してθ軸モータ１１２を駆動して吸着ノズル１０５を回転させて角度修正制御を行い、Ｘ軸モータ１０９及びＹ軸モータ１１０により位置修正制御を行う。
かかる制御装置１２０は、電子部品Ｃの吸着ノズル１０５による吸着後に標準カメラ１１５又は高解像度カメラ１１６による撮像が行われ、当該撮像画像に基づいて画像処理装置１０が求めた電子部品の正確な位置及び向きに基づいて電子部品Ｃの向きをθ軸モータ１１２により補正し、Ｘ軸モータ１０９及びＹ軸モータ１１０により搭載時のヘッド１０６による搭載位置を補正するようになっている。
【００４９】
（画像処理装置）
画像処理装置１０は、各カメラ１１５，１１６及びその照明装置１１７と画像処理装置全体を制御する制御部１１と、各カメラ１１５，１１６の画像信号をデジタル化するＡ／Ｄ変換器１２と、デジタル化された撮像画像データを記憶する画像メモリ１３と、撮像画像データに基づいて電子部品の探索対象を探索するための画像処理を実行する演算部１４と、画像処理や各部の制御において作業領域となる作業用メモリ１５と、後述する各種フィルタ演算を高速で行う高速フィルタ演算モジュールである並列演算機構１６と、画像処理装置１０の制御部１１が制御装置１２０とのデータ通信を行うインタフェース１７と、画像データに対してエッジ検出処理を行う撮像画像演算機構１８と、テンプレートデータを格納するテンプレートデータ格納メモリ１９と、各種の処理を施された画像データをアナログ化してモニタ２１に出力するＤ／Ａ変換器２０と、各種のテーブルを記憶するテーブルメモリ２２とを備えている。
また、制御装置１２０は、通常、対象物のサイズによって、撮像するカメラ１１５又は１１６を選択し、対象物Ｃを吸着ノズル１０５で吸着し、選択したカメラ１１５又は１１６の撮像位置にセットする。さらに、照明装置１１７を選択したカメラ１１５又は１１６で撮像できるよう移動、点灯させ、画像処理装置１０にインタフェース１７を介して、選択したカメラチャネル情報とともに処理実行を指示する。画像処理装置１０は、指定されたカメラ１１５又は１１６を制御し、対象物Ｃの画像を撮像し、Ａ／Ｄコンバータ１２でデジタル化し、画像メモリ１３に多値画像データとして記憶する。
【００５０】
（画像処理装置の行う処理の概要）
上記画像処理装置１０は、電子部品の撮像画像から電子部品の探索処理を行うものである。
画像処理装置１０では、テンプレートとなる対象物Ｃ（電子部品）を撮像してその基準画像データを画像メモリ１３に格納し、当該画像データからなる濃淡画像を微分処理してエッジ画像のデータを取得し、さらにこのエッジ画像を反転させ、画像エネルギーのデータを取得する。さらに、画像エネルギーを微分しマイナスをかけた、画像のエッジからの力のデータを取得し、この画像のエッジからの力に係数をかけ、エッジから受ける単位あたりの移動量を取得する。画像エネルギー、画像のエッジからの力、エッジから受ける単位値の移動量の関係については後述する。
そして、テンプレートがサーチ画像上の任意の位置において受ける力を算出し、その力から重力、回転力、拡大縮小力を算出、そして各力から移動ベクトルを算出、さらに移動量に変換し、対象物の次ポジションを設定する。移動ベクトル総和にしきい値を設け、収束条件とする。エネルギー最小となる位置（サーチ画像上の対象物の位置）に辿り着くまで延々と処理を繰り返す。
【００５１】
しかしながら、前処理として画像エネルギー、画像のエッジからの力、及びエッジから受ける単位あたりの移動量を生成しておかなければならないことは、タクトにおいてやはり問題となる。確かに、エッジ点数ｎが増大した場合、計算量がｎの２乗のオーダーとなり、爆発的にタクトが増大する最小二乗法に比べて改善はされているが、エッジ点数が少ない場合は、画像エネルギー等を生成する時間がボトルネックとなり、最小二乗法の方が速い場合もある。エッジ位置の周辺のみ演算するなど演算領域を絞り込むことで低減はできるものの、粗サーチの検出精度に保証がないと、未演算部分を参照することになり、正しく処理できなくなるリスクも発生する。
従って、画像処理装置１０では、予めテンプレートについて画像エネルギー、画像のエッジからの力、及びエッジから受ける単位あたりの移動量を算出しておき、サーチ画像内のエッジ点から対象物のモデルを作成してテンプレートに対して位置合わせを行うことで、探索処理の実行中に画像エネルギーの生成演算を行うことを回避している。
さらに、対象物のモデル作成時には、動的にノイズ成分や形状相違部分を削除し、テンプレートのロバスト性を向上させている。
【００５２】
また、先に記載した通り、この方法において、高精度な位置決め結果を得るためには、エッジ勾配ベクトルの角度精度が高精度であることが必要である。
そのため、エッジ検出フィルタとして、フィルタサイズの大きなガウシアンフィルタを使用することが望ましい。
フィルタサイズは７×７〜１５×１５、係数はfloat変数となる。
これらのフィルタ演算を２回、画像全面にもれなくかけることが望ましい。
これらの処理は位置決め処理の大半を占めるが、高精度な結果を得るためには不可欠な処理である。これらの処理を高速に行うために、フィルタサイズに対応した撮影画像演算機構１８（後述）を搭載している。
【００５３】
さらに、画像エネルギーを用いて画像の位置合わせを行う手法は、「一致した特徴点はエネルギー最小の位置にあるので、逆にまったく拘束されない。」という特性を利用するが、この方法の利点であるが、欠点にもなり得る。
この特性のため、まだ、一致していない特徴点が受ける力がエッジ点全体に作用し、前述した図２５のような極性のある対象物（例えば一方向に長い部品）でも長手方向に直交する方向について位置が一致した時点では止まらずにさらに長手方向についても移動して正確に位置合わせがおこなわれる。
【００５４】
テンプレートに登録された対象物の形状とサーチ画像上にある対象物の形状が一致していれば、画像エネルギーの特性は利点となり、ピッタリの位置で収束するが、形状に相違がある場合、最もフィットした位置で止まらず、サーチループ処理において振動が発生する。このため、最大ループ回数となり処理が打ち切られるまで処理を繰り返すので、タクトは悪化、振動の振幅に依存して繰り返し精度も悪化する。
従って、画像処理装置１０では、ループ回数が増えるにつれて、画像エネルギーから求まる重力及び回転力に対して係数が小さくなるように重み付けを行うこととしている。これにより、振動の発生を抑止し、収束時間の高速化を図っている。
【００５５】
＜テンプレート作成処理＞
以下、画像処理装置１０が行う対象物Ｃの探索処理を順を追って詳細に説明する。
まず、画像処理装置１０では、探索を実行する前の準備段階（例えば、電子部品の実装作業を開始する前の段階）で、対象物Ｃのテンプレート作成を行う。かかるテンプレート作成について図３のフローチャートに基づいて説明する。
本発明の画像処理装置１０を電子部品の位置決め、搭載を行う実装機に応用する場合、テンプレート作成は、実装作業時以外の機会で実行するものとし、作成作業には時間がかかっても構わない。テンプレートデータとして事前に準備しておける作業はすべてこのフェーズで行い、実装作業中に行われるサーチ処理を高速に行えるようにする。
【００５６】
（１）撮像（ｓ１１）
画像処理装置１０は、指定されたカメラ１１５もしくは１１６を制御し、基準姿勢の対象物Ｃの画像を撮像、Ａ／Ｄコンバータ１２でデジタル化し、画像メモリ１３に基準画像データとして記憶させる。
【００５７】
（２）エッジ検出処理（ｓ１２：エッジ画像生成手段としての処理）
撮像した基準画像についてエッジ検出処理を行う。
エッジは、ガウシアンフィルタなどのノイズ削除が行える平滑化効果を併せ持つ、エッジ検出フィルタをかけ、フィルタ出力結果に対して、しきい値処理等により検出する。
【００５８】
テンプレート作成時は、タクトより、基準となるきれいな輪郭エッジがきちんととれるよう、きめ細かなエッジ検出パラメータ制御ができることを優先し、通常のソフト演算モジュールで処理する。このとき、高速化のために、２×２ロバーツフィルタをかけ、予めエッジ候補点を絞り込み、ガウシアンフィルタをかけるようにする。
また、エッジ検出パラメータによっては、並列演算機構１６を用いた高速フィルタ演算モジュールで処理しても構わない。フィルタ出力結果は、作業用メモリ１５に格納される。
【００５９】
次に、フィルタ出力結果に対して、最小エッジ強さを定め、しきい値処理を行い、エッジ候補点を取得する。既に２×２ロバーツフィルタをかけて候補点を絞り込んでいる場合は、この処理はスキップして構わない。
次に、エッジ候補点の周辺のフィルタ出力値を調べ、非極大点を削除、細線化する。そして、残ったエッジ候補点をラベリング処理し、セグメント化する。
エッジセグメントの最大エッジ強さをそのセグメントの代表値として、セグメント別にしきい値処理を行い、エッジ点を検出する。
【００６０】
（３）特徴抽出処理（ｓ１３）
ｓ１２で検出したエッジ点について、例えばHarrisやSUSANなど、コーナー抽出器を用いてコーナー度を計算する。計算結果は、各エッジ点の属性データとして、作業用メモリ１５に格納される。
図４及び図５を用いてコーナー度について詳しく説明する。
コーナー度とは周辺領域との類似度である。ある点（x0,y0）を基準とする少領域Ｒと、そこから少しだけ動いた（x0+dx,y0+dy）を基準とする小領域Ｒａを考える。（図４）
これら２つの領域の類似度は、以下の式で求めることができる。
【数１】
0005689629.tif 000002
【００６１】
様々な微小変位（dx,dy）のいずれに対しても、両領域が似ていなければ、類似度が低くなり、コーナー度は高くなる。
コーナー度が高いほど、対応付けがし易い点だといえる。例えば、図５のＲＡの領域は本来の位置からずれたとしても類似度は下がらない。また、ＲＢの領域は領域内に唯一の辺方向（図５矢印の方向）以外にずれた場合は、類似度は下がるが、辺方向にずれた場合は、類似度は下がらない。一方、ＲＣの領域はいずれの方向にずれたとしても類似度は下がる。すなわち、領域内により多数の方向のエッジを含んでいれば類似度は下がり、コーナー度は上がる。
【００６２】
この評価値を用いて、特徴点の抽出、及び重み付けを行うことができる。
あるしきい値以上の値となる点について、特徴点として抽出し、抽出された特徴点の中で最大値のものを１、最小値のものを０として、０〜１の範囲で正規化し、重み値とする（第二の重み付け手段としての処理）。
【００６３】
このようにコーナー度を用いて抽出した特徴点は粗サーチ時の特徴点の基準点として用いる、特別な特徴点である。
また、HarrisやSUSANなどのコーナー抽出器は、計算コストがかかるため、テンプレート作成時のように重み値の設定が必要な場合のみ使用するものとする。
粗サーチ時（後述するｓ２４の場合）の通常の特徴点は、先に求めた基準点を始点、終点としたエッジセグメントについて折線近似法を適用、曲率の高いエッジ点を抽出し、追加する。
【００６４】
精サーチ用（後述するｓ４１〜ｓ４６の場合）の特徴点としては、高精度な位置決めを行うには、ｓ１２で検出したエッジ点はすべて利用すべきである。しかしながら、処理時間の短縮が必要な場合、例えばHarrisやSUSANなど、コーナー抽出器を用いてコーナーを検出し、コーナー間を等間隔に間引いて特徴点を設定する。
特徴点を間引く場合、エッジ点列の重心（エッジ点から構成される図形上の重心）が変わらないように間引く必要がある。各特徴点が受ける力の総和が重心にかかる力となる。特徴点の分布に偏りがあると重心にかかる力にも偏りが発生するので、サーチ画像中での対象物の探索時に収束位置がずれることがある。例えば、サーチ画像上の対象物の形状がテンプレートの形状と若干異なるような場合、分布が高い部分の一致度がより高くなるように収束することになり、全体としては位置がずれる。
逆に、特徴点に重み付けすることで一致度を高めたい部位を制御することも可能である。
精サーチ用の特徴点数は用途に合わせて、調整すべきである。
【００６５】
（４）ベクトル向き出現頻度計算（ｓ１４：第一の重み付け手段としての処理）
ｓ１３で抽出した各特徴点について、そのエッジ勾配ベクトルの向き別に出現頻度を計算し、ヒストグラムを作成する。エッジ勾配ベクトルについて一定の角度範囲ごとに出現頻度を求め、それぞれの出現頻度の比に応じて、ベクトル向き別に重みを設定する。重みは出現頻度の比の逆数となるようにする。また、重み値は０〜１で表し、最小頻度の重み値が１となるように設定する。
例えば、出現頻度が  ２：４：８：１であった場合、重み値は  0.5：0.25：0.125：１となる。
【００６６】
（５）重み値初期値設定（ｓ１５）
画像処理装置１０では、テンプレート作成時の特徴点の重み情報として、ｓ１３、ｓ１４で、それぞれ求めることができる２つの値が存在する。
これらの２つの重み値を掛け合わせ、１つの重み値として設定する。
【００６７】
（６）テンプレートデータとして格納（ｓ１６）
画像処理装置１０では、テンプレートデータとして、特徴点の座標、エッジ勾配ベクトル、そして重み値がテンプレートデータ格納メモリ１９に格納される。テンプレートデータを外部メディアに出力する場合は、これらのデータのみが出力される。
これらテンプレートデータは、サーチ処理を高速に行うためのデータ形式（以降、内部処理用データという）にさらに展開する。テンプレートデータを外部メディアから読み込んだ場合も同様に、これらの展開処理が必要である。
内部処理用データへの展開処理とは、次のような処理となる。
(1)各特徴点の座標を重心を原点とする座標系に変換する。
(2)各特徴点の重心法線単位ベクトルの取得
【００６８】
画像エネルギーを回転力と拡大縮小力に分解する際の基準となる方向は、特徴点とテンプレートの重心を結ぶ直線方向（以降、重心法線方向という）であり、この方向を示す単位ベクトルをあらかじめ計算しておくことで、サーチ処理時の処理を軽減、高速化が可能となる。
図６に重心と特徴点上の重心法線と拡大縮小ベクトル、回転ベクトルの関係を示す。また、図７に重心法線ベクトルとエッジ勾配ベクトルの関係を示す。これらの図において、Ｇは重心、Ｔは特徴点、ｇは平行移動ベクトル、ｈは拡大縮小ベクトル、ｖは回転ベクトル、Ｒｄは重心−特徴点間距離、ｊは重心法線である。
平行移動ベクトルｇは特徴点Ｔにおけるエッジ勾配ベクトルに平行であって当該特徴点Ｔが画像エネルギーから受ける力であって位置合わせのための移動力を示す。
拡大縮小ベクトルｈは、平行移動ベクトルｇの重心法線方向成分であり、テンプレートを拡大縮小させる力を示す。
回転ベクトルｖは、平行移動ベクトルｇの重心法線ｊに対する直交方向成分であり、この回転ベクトルｖと重心−特徴点間距離Ｒｄとの乗算値がテンプレートを回転させる力を示す。
【００６９】
（７）画像エネルギー等の生成（ｓ１７：画像エネルギー生成手段としての処理）
濃淡画像、エッジ画像、画像エネルギー、画像のエッジからの力、エッジから受ける単位あたりの移動量の関係を図８に示す。
濃淡画像は、例えば、画面内の各画素位置における輝度値からなる画像データであり（図８（Ａ））、当該濃淡画像を一定方向（例えばＸ方向）に沿って微分すると、エッジ勾配が強い部分がピークとなるエッジ画像が求まる（図８（Ｂ））。
これを上下逆さに反転させると、図９に示すようなエッジ点が底となる谷ができる。これが画像エネルギーである（図８（Ｃ））。
画像のエッジからの力は、画像エネルギーを微分してマイナスをかけることで求めることができる（図８（Ｄ）、以降、エネルギーベクトルと呼ぶ）。
さらにこのエッジからの力に係数をかけ、エッジから受ける単位あたりの移動量を求めることができる（図８（Ｅ））。
【００７０】
例えば、図９に示すように、谷の端にボールを置いたとする。ボールは重力の影響で谷の勾配を下り、スピードを増しながら落ちていく。谷底であるエッジ点を通過し、対面の勾配を上る。
しかしながら、再び重力の影響を受け、ボールは谷の勾配のどこかで止まり、逆向きに下り始める。このような動作を繰り返しながら、徐々に振幅が小さくなり、ボールは谷から受けるエネルギーが最小となる谷底、つまりエッジ点に収束して止まる。
【００７１】
画像処理装置１０は、精サーチ処理である画像の位置決め処理として、画像エネルギーが最小となる位置を見つける処理を実行する。テンプレート上の各特徴点が画像から受けるエネルギーを算出し、それが最も小さくなる場所を少しずつテンプレートを移動させながら繰り返し、探し出す。
【００７２】
図１０にテンプレートにかかる力の様を示す。図１０においてＭはテンプレート、Ｃはサーチ画像の対象物、ｂｅはサーチ画像の対象物のエッジ点におけるエネルギーベクトルである。
サーチ画像の対象物Ｃのエッジ近傍には当該エッジに向かってくる方向（エッジ勾配ベクトル方向）を向いたエネルギーベクトルｂｅが存在している。
テンプレートＭの各特徴点にはそれぞれ、直下の（特徴点を通過する）エネルギーベクトルｂｅの影響を受け、サーチ画像における近傍エッジに向かう力が発生する。これらの力の総和がテンプレート全体、すなわちテンプレートの重心Ｇにかかる力Ｆとなる。また、各特徴点における拡大縮小ベクトルｈの総和がテンプレートＭ全体に対する拡大縮小力であり、各特徴点における回転ベクトルｖの総和がテンプレートＭの重心Ｇ回りの回転力となる。
テンプレートは図１１（Ａ）から（Ｃ）に推移するように徐々にサーチ画像の対象物の位置に近づいていき、やがて止まる。
【００７３】
上記画像エネルギー等の生成は、テンプレート画像の濃淡画像に対してＸ方向とＹ方向とについて２階微分を行い、係数をかけ、それぞれの方向におけるエネルギーベクトルを直接求め、このデータのみを保存する。
これらの処理はサーチ処理の高速化のため、前処理として予め行っておく。
【００７４】
＜サーチ処理＞
次に、テンプレートとサーチ画像における対象物との位置合わせ処理であるサーチ処理について図１２のフローチャートに基づいて説明する。
図１３は図１２に対応したデータフロー図である。
サーチ処理におけるエッジ検出は、高速フィルタ演算モジュールを用いて行う。
さらに、画像データをピラミッド化し、上位階層のデータを用いて処理することで、さらなる高速化が可能となる。エッジ検出処理をサブピクセル化すれば、１階層上位のデータを用いても精度は同等レベルを保つことができる。
【００７５】
（８）サーチ画像撮像（ｓ２１）
画像処理装置１０は、指定されたカメラ１１５もしくは１１６を制御し、任意の姿勢の対象物Ｃの画像を撮像、Ａ／Ｄコンバータ１２でデジタル化し、画像メモリ１３にサーチ画像データとして記憶させる（ｓ１１と同様）。
【００７６】
（９）エッジ検出処理（ｓ２２）
撮像したサーチ画像は、画像メモリ１３に記憶されると、撮像画像演算機構１８でエッジ検出処理を行う。
図１４は撮像画像演算機構１８の構成図である。
Ｍ×Ｎで表わされるフィルタ係数処理を行う場合、並列演算機構としての撮像画像演算機構１８は、（Ｍ×Ｎ）個のフィルタ係数格納メモリ３１、フィルタ係数処理を行う1つの積算器３２、フィルタ係数処理を行う（Ｍ−１）×Ｎ個の積和演算器３３、フィルタ係数処理結果を格納数（Ｍ−１）×Ｎ個のデータバッファ器３４、画像データの水平方向のフィルタ係数処理結果を格納数（Ｎ−１）個のラインバッファ器３５、フィルタ係数処理後の積和データに対する絶対値演算器３６、絶対値演算結果に対する除算器３７、データバッファ器３４とラインバッファ器３５をコントロールするバッファコントローラ３８から構成される。
【００７７】
Ａ／Ｄコンバータ１２でデジタル化したサーチ画像は、プログレッシブ転送により画素毎に順次撮像画像演算機構１８へ転送される。転送されたサーチ画像データは、フィルタ処理を行う積算器３２と積和演算器３３へ同時に入力される。
この時、積算器３２と積和演算器３３は順次接続される構成とし、前段の演算結果を取得できるようにする。各演算器３２，３３に入力された画像データとフィルタ係数格納メモリ３１から読みだされた各フィルタ係数との演算を行う。
【００７８】
この時、積和演算器３３には加算データ入力に接続されたデータバッファ器３４からのデータが入力され、積算結果に加算され、演算器３３の出力に接続されたデータバッファ器３４へ格納される。
データバッファ器３４では、演算結果のデータと後段の演算器３３で使用するデータの切り替えをバッファコントローラ３８からのバッファコントロール信号を取得し行う。
【００７９】
この時、演算器にはラインバッファ器３５が接続されている場合がある。
ラインバッファ器３５では、演算結果のデータと後段の演算器３３で使用するデータの入出力を行う為、ディレイバッファを設ける。
バッファコントローラ３８では、画像データのプログレッシブ転送に同期し、画素毎、垂直方向の管理を行い、各バッファのコントロールを行う。
【００８０】
前述の演算を行うことによって、画像データの水平方向に対して、積和演算のフィルタ処理を行い、垂直方向に対してラインバッファ器３５を介することによって、前ラインのデータを取得し、演算することが可能となる。
最終段のフィルタ演算結果に対して、絶対値演算器３６、除算器３７で演算することによってＭ×Ｎで表わされるフィルタ処理が完了する。
エッジ検出結果は、作業用メモリ１５に格納される（ｓ１２と同様）。
【００８１】
（１０）特徴点抽出処理（ｓ２３）
ｓ２２で検出したエッジ点について、例えばHarrisやSUSANなど、コーナー抽出器を用いてコーナー度を計算する。計算結果は、各エッジ点の属性データとして、作業用メモリ１５に格納される。コーナー度をｓ１３と同様の処理で０〜１の値に正規化し、重み値とし、エッジ点の属性データとして保持しておく。タクトを優先する場合は、HarrisやSUSANなどのコーナー抽出器は、計算コストがかかるため、使用せず、重み値はすべて１に設定しておけばよい。
効果は弱まるが、サーチ画像のばらつき状況（形状相違、ノイズのレベル）とタクト、精度のトレードオフで選択すればよい。
【００８２】
粗サーチ用の特徴点は、サーチ画像をラスタスキャンし、エッジセグメント毎に最初に当った箇所を始点とし、折線近似法を適用、曲率の高いエッジ点を抽出し、特徴点に追加する。
サーチ処理時には、精サーチ用の特徴点を抽出する必要はない。
【００８３】
（１１）粗サーチ（ｓ２４：粗サーチ手段としての処理）
画像エネルギーを用いた位置合わせ処理は、位置合わせを行うもの同士がある程度近くに存在しなければならず、適当な粗サーチ方法と組み合わせ、初期位置を設定しなければならない。
収束時間と精度は、初期位置の与え方に依存する。
±２画素程度の精度で初期位置を設定できれば、全く問題ない。
例えば、Geometrical Hashing 等を用いれば、対象部品の姿勢やスケールに関係なく、ほぼ同じタクトで位置決めが可能である。
【００８４】
＜モデル作成処理＞
次にサーチ画像からのモデル生成処理について詳細に説明する。
最小二乗法のＩＣＰ法をベースに、タクトが増大しないよう、粗サーチ用の特徴点を用いて行う。
この処理はモデル生成すると同時に粗サーチの位置決め結果の精度不足を補完する役割がある。
【００８５】
（１２）対応点を決定（ｓ３１：対応点取得手段としての処理）
テンプレートの粗サーチ用の特徴点について、それぞれ、自身との距離が最小となるサーチ画像上のエッジ点を抽出し、対応点とする。
サーチ画像のエッジ点データは、２−Ｄ木構造で管理し、高速に対応点の抽出が行えるようにする。また、このｓ３１から後述するｓ３７までは所定の収束条件を満たすまで繰り替えされるループ処理であり、対応点数はループ処理の繰り返し回数が進むにつれて段階的に増やしていく。ループ回数とテンプレートとの二乗距離総和により収束状態を判定し、位置合わせに使う対応点の数を設定する。
【００８６】
二乗距離総和とは、各対応点間距離（特徴点とそれに対応する対応点との距離）を二乗し、足し合わせた値である。
この値が小さいほど、より真の位置（テンプレートとモデルの合致位置）に近づいている。
位置合わせの初期にはテンプレートの特徴点の中で、重み値が高い、つまり、間違えにくい特徴ある点（コーナーの点、例えば、図１１の●）に絞り込んで少ない点数で処理を行い、高速化を図る。そして、位置が近づいてきたならば、処理点数を増やしていき（図１８の●と▲）、高精度化を図る。）
【００８７】
処理点数の設定は、例えば、図１５に示すようなテーブルを参照することで行う。ループ回数、二乗距離総和をある間隔で段階分けし、それぞれの段階で何点参加させるかをあらかじめテーブル化してテーブルメモリ２２に保持しておく。
例えば、図１５のテーブルの例では、最大ループ回数を1000回までとしてループ回数を200回増えるごとに、或いは、二乗距離総和を2000pix以内として400pix減るごとに、特徴点の処理点数を段階的に増やすように設定されている。
【００８８】
（１３）最小二乗法による変換行列の算出（ｓ３２：補正手段としての処理）
図１６において、Ｍがテンプレートであり、これを回転（Ｒ）、平行移動（Ｔ）したものをＭ１とした時、Ｍ１とサーチ画像上の形状であるＣの二乗距離総和（Σ(m1i−ci)2）を最小にするＲ、Ｔを最小二乗法によって算出する。このとき、各対応点間距離は、実際の２点間距離（m1i−ci）に対して、サーチ画像上のエッジ点（ci）の重み値（コーナー度）と、テンプレートの特徴点（m1i）の重み値を掛けた値を用いる。
【００８９】
（１４）二乗距離総和、ループ回数を評価（ｓ３３）
ｓ３２で求めた変換行列で求まるテンプレート位置における対応点の二乗距離総和の算出結果が、予め決めておいたしきい値以下になったかどうかを判定する。この二乗距離総和のしきい値により精度を制御することができる。一般にしきい値を小さくすれば精度は上がる。
また、二乗距離総和がしきい値以下となっていない場合でも、ループ回数についても、無限ループに陥ることを防ぐため、予め決めておいた最大ループ回数を超えたかどうかを判定する。
【００９０】
（１５）収束条件成立判定（ｓ３４）
二乗距離総和がしきい値以下になるか、前回の処理と二乗距離総和が変わらないか、ループ回数が最大ループ回数を越えるかした場合、収束条件が成立し、処理ループを脱出してｓ３８に処理を進める。
一方、二乗距離総和がしきい値以上で、かつループ回数が最大ループ回数以下の場合、ｓ３１からｓ３７の処理を繰返し行う。
【００９１】
（１６）外れ点削除（ｓ３５）
収束条件をクリアしない場合には、外れ点の削除の処理を実行する。サーチ画像上に対応点がないテンプレートの特徴点を外れ点と呼ぶ。
このような点は、ｓ３１で示すような対応付けを行うと、間違った対応付けを行うため、位置合わせ処理に悪影響を及ぼす。このような点は、対応点間距離が大きい、もしくは、全体としては収束が進んでいるにもかかわらず、個別にみると対応点間距離が収束していないなどの特性がある。
【００９２】
従って、予め個々の点についての対応点間距離のしきい値を決めておき、そのしきい値以上となるテンプレートの特徴点については、重み値を０とし、二乗距離総和の算出に使わないようにする。
また、このような状態がループ回数を重ねても続くときは、ｓ３１の対応付け処理からも除外するようにする。
【００９３】
（１７）点間距離を重み値に変換（ｓ３６）
対応点間距離がしきい値以内の点について、対応点間距離が０の場合、重み値を１、対応点間距離がしきい値の場合に重み値を0として、テンプレートの各特徴点について、対応点間距離を０〜１に正規化し、重み値とする。
【００９４】
（１８）重み値調整（ｓ３７）
ｓ３６で求めた重み値を、テンプレート作成時にコーナー度から求めた重み値に掛け、テンプレート特徴点の重み値を再設定する。このとき、テンプレートデータ格納メモリ１０内において、重み値について降順になるよう特徴点を並び替えておく。即ち、ｓ３１では、ループ回数又は収束が進むと、特徴点数を段階的に増やして処理するので、重み値順に特徴点が並んでいると、重み値が大きいものから処理に加えられることとなる。
【００９５】
（１９）サーチ画像エッジよりモデルを作成（ｓ３８）
ｓ３１〜ｓ３７のループ処理を経ると、テンプレートの特徴点は重み値について降順、つまり対応の確からしさの順で並んでいる。
まず、重み値についてしきい値を設定し、対応付けが不安定であった特徴点を削除する。
例えば、重み値が０の特徴点を削除するようにすればよい。
こうして残った特徴点について、それぞれ、自身との距離が最小となるサーチ画像上のエッジ点を抽出し、これらのエッジ点を新たなテンプレートの特徴点として扱う。
【００９６】
（２０）サーチ画像座標系→テンプレート座標系変換（ｓ４０）
ｓ３８でサーチ画像エッジ点から作成した新たなテンプレートについて、サーチ画像上での粗サーチの位置決め結果をテンプレート座標系に変換し、初期位置を設定する。同時に、テンプレートデータ、サーチ画像エッジデータを入れ替える。
【００９７】
（２１）テンプレートが受ける力の算出（ｓ４１）
前述したように、図１０にはサーチ画像のエネルギーベクトルとテンプレート、そしてテンプレートにかかる力の関係を示している。エネルギーベクトルは先に述べた通り、画像の濃度データをｘ、ｙ方向それぞれに２階微分したもので、離散的な２次元ベクトルデータである。サーチ画像のエッジの近傍にエッジに向かうベクトルとして発生する。（以降、力場という）
【００９８】
この力場にテンプレートを置いたとき、テンプレート上の各特徴点の直下のエネルギーベクトルから受ける力の総和がテンプレートが受ける力となる。
テンプレートを移動させるためには、テンプレートが受ける力をテンプレートの重心Ｇにかかる、重力、回転力、拡大縮小力の３つに整理する必要がある。
【００９９】
重力Ｆは重心を平行移動させようとする力、回転力はテンプレートを重心を回転中心として回転させようとする力、拡大縮小力は、テンプレートの重心を拡大縮小中心として拡大縮小させようとする力である。
また、エネルギー場は画像データ同様、離散的なデータであるので、サブピクセル位置の値を求めるためには、いずれかの補間手法と組み合わせて実装する必要がある。
【０１００】
速度を重視する場合は、隣接する４つのデータを用い、線形補間法を適用するのがよい。
精度を重視する場合は、ピークを求めたいサブピクセルずれ分ずらしたフィルタ係数を再設定して、エネルギーベクトルを再計算すればよい。
【０１０１】
（２２）テンプレートが受ける力を移動ベクトルへ変換（ｓ４２：移動ベクトル算出手段としての処理）
図１７にテンプレートＭ上の任意の特徴点Ｔ上における力の関係を示す。
ある特徴点は、サーチ画像上のエッジＥの近傍にあるとき、力場から力を受け、エッジＥに引き寄せられる。この力の内、その特徴点Ｔが受ける力は、その特徴点Ｔのテンプレート画像におけるエッジ勾配ベクトルｂｔの方向成分のみである。この力が重力、すなわち特徴点の平行移動ベクトルｇである。なお、符号ｂｅは前述したエッジＥにおけるエッジ勾配ベクトルである。
【０１０２】
特徴点Ｔ上の平行移動ベクトルｇと拡大縮小ベクトルｈ、回転ベクトルｖの関係は前述した図６の通りである。
特徴点Ｔの平行移動ベクトルｇをその特徴点ＴとテンプレートＭの重心Ｇを結ぶ直線（重心法線）方向を基準に垂直成分、水平成分に分解する。このときの垂直成分が拡大縮小ベクトルｈであり、水平成分が回転ベクトルｖである。
テンプレートＭ上の各特徴点Ｔについて、それぞれ各平行移動ベクトルｇを算出し、さらに拡大縮小ベクトルｈ、回転ベクトルｖを算出し、３つの移動ベクトルごとにその総和を求め、テンプレートＭの移動ベクトルとする。
【０１０３】
（２３）移動ベクトル総和、ループ回数を評価（ｓ４３：判定手段としての処理）
ｓ４２で求めた３つのベクトルｇ、ｈ、ｖについて、その大きさを求め、足し合わせたものが移動ベクトル総和である。テンプレートＭがサーチ画像上の対象物とピッタリ一致した場合、０となる。
この移動ベクトル総和に対して、予め決めておいたしきい値以下になったかどうかを判定する。
【０１０４】
また、ｓ４１〜ｓ４６の処理は所定の収束条件を満たすまで行われるループ処理である。かかる処理のループ回数についても、無限ループに陥ることを防ぐため、予め決めておいた最大ループ回数を超えたかどうかを判定する。移動ベクトル総和のしきい値により精度を制御することができる。一般にしきい値を小さくすれば精度は上がる。
【０１０５】
（２４）収束条件判定（ｓ４４）
移動ベクトル総和がしきい値以下かつ、ループ回数が最大ループ回数以内の場合、収束条件が成立し、正常に位置合わせできたこととして、処理ループを脱出する。
また、移動ベクトル総和がしきい値以下でなくても、ループ回数が最大ループ回数を超えた場合は、処理ループを脱出する。これは、サーチ処理において、時間切れとなったことを意味する。
【０１０６】
どちらのルートで処理ループを脱出した場合も、その位置における相関値を計算し（ｓ４８）、相関値によって位置合わせが正常に完了したか否かは判定する。
また、移動ベクトル総和がしきい値以上で、かつループ回数が最大ループ回数以下の場合、ｓ４５に処理を進めて、ｓ４１からｓ４６の処理を繰返し行う。
【０１０７】
（２５）移動ベクトルを移動量に変換（ｓ４５：移動量変換手段としての処理）
移動ベクトル総和について収束条件を満たさない場合には、画像データ上でテンプレートを移動させるために、移動ベクトルを移動量に変換する。
平行移動、回転、拡大縮小毎に、さらに全体にと４つの補正係数を用意、下記の式を定義する。
【０１０８】
【数２】
0005689629.tif 000003
m：平行移動量（単位：画素）、θ：回転角度（単位：rad）
scl：スケール変動量  単位：倍率（等倍のとき、1.0）
Γ：全体の補正係数（デフォルト値：0.2）
γg：平行移動の補正係数（デフォルト値：1.0）
γθ：回転の補正係数（デフォルト値：1.0）
γscl：拡大縮小の補正係数（デフォルト値：0.007）
g：平行移動ベクトル、v：回転ベクトル、h：拡大縮小ベクトル
Rd：重心−特徴点間距離
【０１０９】
ここで定義した補正係数により、サーチの精度、タクトを制御することができる。
補正係数を大きくすれば、１回のループ処理でのテンプレートの移動量が大きくなり、収束までの時間を短縮できる。但し、真値を通り過ぎ、振動するなど、精度が落ちるリスクがある。
また、補正係数を小さくすれば、１回のループ処理でのテンプレートの移動量は小さくなり、収束までに時間がかかる。但し、確実に真値に辿り着くことができる。
収束判定のしきい値を小さくし、合わせてこの補正係数を小さくすれば、より高精度なサーチが期待できる。
【０１１０】
タクトと精度を両立させるためには、サーチの初期段階は大きく、終了段階は小さく移動するように１回のループ移動量を制御すればよい。
サーチ画像上の対象物の大体のずれ量が既知の場合、図１８に示すようなループ回数による移動量のリミットテーブルを作成し、移動量を制御することで、上記のようなタクトと精度を両立する実装が可能である。
なお、図１８において、ｘは平行移動量ｍのｘ方向成分に対する補正係数であり、ｙは平行移動量ｍのｙ方向成分に対する補正係数であり、θは回転角度に対する補正係数である。これらの補正係数は、いずれも１以下であって、ループ回数の進行に応じて数値が小さくなるように設定される。
これにより、図１９に示すように、テンプレートＭが毎回のループ処理において、画像エネルギーに基づいて移動した場合に、エッジを通過して振動することなく、徐々にエッジに近づけることを可能とする。つまり、振動を回避して、タクトと精度とを両立することができる。なお、この図１９に示すテーブルもテーブルメモリ２２に格納されている。
【０１１１】
（２６）テンプレートの移動（ｓ４６）
ｓ４５で求めた移動量に従い、テンプレートのカレント位置を更新する。
この位置更新によりテンプレートＭは前述した図１１（Ａ）〜（Ｃ）のようにその位置が推移し、サーチ画像のエッジ近傍にある特徴点はエッジに引き寄せられ、徐々にサーチ対象と一致していく。
【０１１２】
（２７）テンプレート座標系→サーチ画像座標系逆変換（ｓ４７：探索情報取得手段としての処理）
ｓ４１〜ｓ４６のループ処理により求まったテンプレートの変動量をサーチ画像座標系に逆変換し、ｓ４０の初期位置の元となったサーチ画像上の位置（粗サーチで求められた位置）に対して、逆変換した変動量を加え、サーチ画像上での最終位置を求める。
テンプレートデータとサーチ画像エッジデータは再度、入れ替える。
【０１１３】
（２８）相関値計算（ｓ４８：対象物を正しく探し出したことを判定できる手段としての処理）
テンプレート特徴点のベクトル方向とサーチ画像上のエッジ点のベクトル方向との一致度の総和を算出する。相関値は、以下の式で求める。ｎは特徴点数、θはテンプレート特徴点のベクトル方向とサーチ画像上のエッジ点のベクトル方向との開き角を表わす。
【数３】
0005689629.tif 000004
【０１１４】
＜実施形態の効果＞
画像処理装置１０は、テンプレートＭの特徴点Ｔを次位置に移動させる力の算出は直下のエネルギーベクトルを参照し、取得することができるので、総当りによる特徴点の対応付けが不要になり、処理時間を削減、高速で高精度な位置決めができる。
また、ループ処理において、テンプレートＭの特徴点Ｔから外れ点、不安定な点を除くので、これらによる精度低下のリスクを軽減、処理時間を削減、高速で高精度な位置決めができる。
さらに、テンプレート上に不要な特徴点があったとしても、サーチ画像上で付近にエッジが存在しなければ、なんら作用しないので、テンプレートのロバスト性が向上、サーチ対象物の形状変動に柔軟な安定した位置決めができる。
【０１１５】
また、画像処理装置１０では、棒状の部品など極端にエッジ勾配ベクトルの向きの出現頻度に差があるものは、出現頻度の低い方向について精度が落ちてしまっていたが、出現頻度にて重みを制御することで、その問題を解決している。また、画像エネルギーによる方式では、一致した特徴点はエネルギー最小の位置にあるので、まったく拘束されない。まだ、一致していない特徴点が受ける力がテンプレート全体に作用し、テンプレートは止まらずにさらに移動するので、画像エネルギーを用いる位置合わせの方式によりより対応力が向上している。
【０１１６】
また、画像処理装置１０では、図１８に示したループ制御テーブルの調整でタクト、精度を簡単に制御できるので、サーチ対象物に合わせたスペックの作りこみが容易にできる。サブピクセル位置のエネルギーベクトルの算出に速度重視の４隣接データの線形補間方式を用いた場合においても、1/10画素程度の繰り返し精度を得ることができる。
【０１１７】
また、画像処理装置１０では、並列演算機構１６を利用した高速フィルタ演算モジュールを実装することで、タクトの大半を占めるエッジ検出処理を高速化、高速で高精度な位置合わせを行うことができる。
【０１１８】
また、画像処理装置１０では、テンプレート作成時にテンプレート画像について、画像エネルギー等の生成を行い、精サーチ処理は、テンプレート画像に対して行うことで、サーチ処理を高速化、高速で高精度な位置合わせを行える。
なお、テンプレート読み出し時にテンプレート画像について、画像エネルギー等の生成を行っても良い。
【０１１９】
また、画像処理装置１０では、画像エネルギーを利用した精サーチ処理の前に、最小二乗法とテンプレート特徴点の重み制御を組み合わせ、動的に真値への収束を阻害する特徴点を削除でき、現在のサーチ画像にとってロバスト性の高い特徴点のみを抽出することで、形状のばらつきが大きな対象物や、ノイズ成分が多いサーチ画像においても高精度な位置合わせを行うことができる。
また、これにより、より収束しやすくなり、ループ回数が抑えられ、高速に結果を得ることが出来る。さらに、処理対象となる特徴点数が減り、高速に結果を得ることが出来る。
【符号の説明】
【０１２０】
１０  画像処理装置
１８  撮像画像演算機構（並列演算機構）
１９  テンプレートデータ格納メモリ（テンプレート記憶部）
１００  電子部品実装装置
【図１】
0005689629.tif 000005
【図２】
0005689629.tif 000006
【図３】
0005689629.tif 000007
【図４】
0005689629.tif 000008
【図５】
0005689629.tif 000009
【図６】
0005689629.tif 000010
【図７】
0005689629.tif 000011
【図８】
0005689629.tif 000012
【図９】
0005689629.tif 000013
【図１０】
0005689629.tif 000014
【図１１】
0005689629.tif 000015
【図１２】
0005689629.tif 000016
【図１３】
0005689629.tif 000017
【図１４】
0005689629.tif 000018
【図１５】
0005689629.tif 000019
【図１６】
0005689629.tif 000020
【図１７】
0005689629.tif 000021
【図１８】
0005689629.tif 000022
【図１９】
0005689629.tif 000023
【図２０】
0005689629.tif 000024
【図２１】
0005689629.tif 000025
【図２２】
0005689629.tif 000026
【図２３】
0005689629.tif 000027
【図２４】
0005689629.tif 000028
【図２５】
0005689629.tif 000029