画像処理装置
【課題】高速且つ精度良く対象物を探索する。
【解決手段】テンプレートを記憶し、テンプレートを用いて対象物を探索する画像処理装置において、対象物のテンプレート画像の濃淡画像データ及びサーチ画像の濃淡画像データの少なくとも一方からエッジ画像を生成するエッジ画像生成手段と、エッジ画像から画像エネルギーを生成する画像エネルギー生成手段と、画像エネルギーからサーチ画像内の点及びテンプレートの特徴点の少なくとも一方が受ける移動ベクトルを算出する移動ベクトル算出手段と、移動ベクトルを移動量に変換する移動量変換手段と、移動ベクトルの総和が収束条件を満たすか否かによりテンプレートがサーチ画像上の対象物の位置に合致したことを判定する判定手段と、判定手段が収束条件を満たすと判定した時の移動量から探索情報を求める探索情報取得手段とを備えている。
【解決手段】テンプレートを記憶し、テンプレートを用いて対象物を探索する画像処理装置において、対象物のテンプレート画像の濃淡画像データ及びサーチ画像の濃淡画像データの少なくとも一方からエッジ画像を生成するエッジ画像生成手段と、エッジ画像から画像エネルギーを生成する画像エネルギー生成手段と、画像エネルギーからサーチ画像内の点及びテンプレートの特徴点の少なくとも一方が受ける移動ベクトルを算出する移動ベクトル算出手段と、移動ベクトルを移動量に変換する移動量変換手段と、移動ベクトルの総和が収束条件を満たすか否かによりテンプレートがサーチ画像上の対象物の位置に合致したことを判定する判定手段と、判定手段が収束条件を満たすと判定した時の移動量から探索情報を求める探索情報取得手段とを備えている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、あらかじめサーチしたい対象物の形状パターンを登録しておき、回転、スケール、平行移動などの変動を受けた対象物をサーチ画像上から探索する画像処理装置に関するものである。
【背景技術】
【0002】
対象物をテンプレートとしてあらかじめ登録しておき、別途撮像した画像から探し出す方法としては、濃度値を比較する、正規化相関法を使用した濃度ベースのマッチング方法や、エッジ勾配などの形状情報を比較する、形状ベースのマッチング方法等がある。
【0003】
形状ベースのマッチング方法には、一般化ハフ変換や幾何学的ハッシング法などハフ変換をベースとした考え方のものが多い。これらは、画像データをベースに処理するので、基本的にはピクセル単位での処理であり、より精細な精度が求められるサブピクセル演算としては、最大相関位置周辺の画素位置の相関値分布について、ある間隔で離散的に求めた後、直線や放物線を当てはめてサブピクセルレベルのピーク位置を推定する方法が取られていた。
【0004】
図20にサブピクセル位置でのマッチング例を示す。これは、サブピクセル位置の画素濃度を周辺4近傍の整数位置の濃度から線形補間で求め、その補間濃度データを用いて、サブピクセル位置での濃度勾配ベクトルを求めるものである。このようにして、最大相関値の周辺の画素の相関値を用意する。
【0005】
次に図21にサブピクセルピークの推定例を示す。ここでは、パラボラフィッティングによる推定を記述している。最大相関値位置の前後の等間隔位置の2つのデータを加えた3つの相関値から記述の式により、真のピーク位置までのサブピクセル距離を算出することができる。
【0006】
一方、3次元モデル化の分野では、複数の方向から撮像して複数の画像を取得し、この複数の画像を同一座標系に位置合わせする処理として、ICP(Iterative Closest Point)法が知られている。(非特許文献1参照)
【0007】
ICP法では、2つの画像中の最近傍点を対応点として、この対応点間距離を最小化するような各画像の変換行列を求め、繰り返し計算によってその対応付けの精度を上げながら、相対位置を求めていく。
【0008】
図22にICP法の原理を簡単に示す。
(1)モデルを初期位置姿勢に配置
(2)モデルと計測点群の対応点を決定
(3)対応点間距離が最小になるようモデルの位置姿勢を変換
(4)モデルと計測点群の新たな対応点を決定
(5)以下、収束するまで繰り返す。
【0009】
このとき、2つの画像のそれぞれをテンプレート画像、サーチ画像とし、テンプレート画像内の特徴点について、サーチ画像上での対応点を見つける手法だとみなすと、上述のマッチング方法として応用できる。
【0010】
また、動的輪郭線モデルとエネルギー最小化の手法を用いて、輪郭線抽出を行なう技術としてSnakesがある(非特許文献2参照)。
画像内の対象物の輪郭線抽出処理は、位置決め処理とも考えることができ、上述のマッチング方法として応用できる。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】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
【非特許文献2】M.Kass,A.Witkin,and D.Terzopoulos, ”Snakes:Active Contour Models,” International Journal Computer Vision,vol.1,No.4,pp.321-331,Jan,1988..
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、ハフ変換のように投票空間を利用した手法をベースに、高精度化を行うと細かく分けた膨大なメモリ量の投票空間が必要になる、また投票空間を細かくすると、明確な投票ピークが出づらくなるなどの問題があった。
【0013】
また、図20に示した方法では実数演算を多用するので演算コストが膨大になる。さらに、その精度は、離散間隔にもよるが、パラボラフィッティングと組み合わせたとしてもせいぜい1/4画素程度であった。
【0014】
一方、ICP法をマッチング方法として応用しようとすると次のような問題がある。
ICP法におけるサーチ画像とテンプレート画像との対応付けはテンプレート画像の各特徴点と当該各特徴点に個々に対応するサーチ画像上の各エッジ点との距離の総和が最小になるテンプレート画像の位置を探すというものである。単純に考えると、特徴点とエッジ点の組み合わせ数の演算が必要でとても膨大な処理量になる。
K−D木を用いた高速な探索方式を組み合わせて使い、これらの処理量を軽減する手法もあるが、さらにエッジ点数が増えると、メモリ量の問題や、K−D木作成に時間がかかるという問題も発生する。
【0015】
さらには、図23に示すように、サーチ画像上に対象物の隠蔽物Bがある場合には、いくら探しても対応点が存在しない(以下このような点を外れ点とよぶ)。また、図24に示すように、ノイズNがサーチ画像上にある場合は、本当の対応点より近くにあるノイズNに対して対応付けしてしまう場合があった。
【0016】
このような間違った対応付けを含んだまま処理してしまうと、一気に収束の速度、精度が落ちてしまう。さらに、この対応付けはテンプレートの各特徴点について、サーチ画像上の各エッジ点との距離が最小になる点を探すというものである。単純に考えると、特徴点とエッジ点の組み合わせ数の演算が必要で計算量はnの2乗のオーダーとなり、エッジ点が増大するにつれ、とても膨大な時間を要する。
【0017】
また、図25に示すように、棒状の対象物など極端にエッジ勾配ベクトルの向きの頻度に差があるものは、頻度が低い方向について精度が落ちてしまう。
図25に示す形状の対象物は、その長手方向がx方向に沿っている場合、y方向のエッジ勾配ベクトルDyがx方向のエッジ勾配ベクトルDxに比べて極端に出現頻度(数量)が高くなる。このような対象物については、y方向のエッジ勾配ベクトルDyを持った特徴点について対応点が収束してしまうと、x方向のエッジ勾配ベクトルDxを持った特徴点の対応点間距離は、ある程度の大きさが残っていたとしても、全体の一致度合いから見ると、誤差のレベルになってしまい、まだ十分近づいていないにもかかわらず、収束条件を満たしてしまい、位置合わせが終了してしまう。
【0018】
本発明は、処理負担を軽減しつつサブピクセルレベルでの位置検出を高速で行う画像処
理装置を提供することをその目的とする。
また、ノイズ成分や形状の相違により処理が不安定にならないこと、ロバスト性を向上させることをさらに他の目的とする。
【課題を解決するための手段】
【0019】
請求項1記載の発明は、
探索の対象物の特徴点の座標を含むデータをあらかじめテンプレートとして記憶し、前記テンプレートのデータを用いて、対象物が撮像されたサーチ画像から任意の回転、スケール、平行移動の変動を受けた前記対象物を探索する画像処理装置において、
前記対象物のテンプレート画像の濃淡画像データ及び前記サーチ画像の濃淡画像データの少なくとも一方からエッジ画像を生成するエッジ画像生成手段と、
前記エッジ画像から画像エネルギーを生成する画像エネルギー生成手段と、
前記画像エネルギーから前記サーチ画像内の点及び前記テンプレートの特徴点の少なくとも一方が受ける移動ベクトルを算出する移動ベクトル算出手段と、
前記移動ベクトルを移動量に変換する移動量変換手段と、
前記移動ベクトルの総和が収束条件を満たすか否かにより前記テンプレートがサーチ画像上の対象物の位置に合致したことを判定する判定手段と、
前記判定手段が収束条件を満たすと判定した時の前記移動量から探索情報を求める探索情報取得手段とを備えることを特徴とする。
【0020】
請求項2記載の発明は、請求項1記載の発明と同様の構成を備えると共に、
前記判定手段が収束条件を満たすと判定するまで前記移動ベクトル算出手段と前記移動量変換手段と前記移動量に応じて、テンプレートとサーチ画像との相対位置を更新させる移動手段とがその処理を繰り返し行うことを特徴とする。
【0021】
請求項3記載の発明は、請求項2記載の発明と同様の構成を備えると共に、
前記移動ベクトル算出手段と前記移動手段との繰り返すサーチループ処理において、
前記移動量変換手段が、前記移動ベクトルを移動量に変換する際に、ループ回数が増えるたびに移動量を小さくする補正係数を乗算することを特徴とする。
【0022】
請求項4記載の発明は、請求項1から3のいずれか一項に記載の発明と同様の構成を備えると共に、
前記エッジ画像生成手段は前記対象物のテンプレート画像と前記サーチ画像の双方の濃淡画像データについてエッジ画像を生成し、
前記画像エネルギー生成手段は前記エッジ画像から画像エネルギーを生成し、
前記サーチ画像内で前記テンプレートをピクセル単位の誤差範囲で探索する粗サーチ手段と、
前記粗サーチの探索結果に基づいて前記テンプレートを前記サーチ画像の座標系に当て嵌めて、当該テンプレートの複数の特徴点に近似するエッジ点の中から複数の対応点を求める対応点取得手段と、
前記移動ベクトル算出手段が、前記複数の対応点を前記テンプレート画像の座標系に当て嵌めると共に、前記テンプレートの画像エネルギーから前記サーチ画像の対応点が受ける移動ベクトルを算出することを特徴とする。
【0023】
請求項5記載の発明は、請求項4記載の発明と同様の構成を備えると共に、
前記粗サーチ手段による探索後に、その探索結果に基づいて、前記特徴点と対応点の相互間距離である対応点間距離の二乗総和を求め、当該二乗総和が最小となる変換量で前記各特徴点を変換して新たな対応点を求めることで前記粗サーチ手段による探索結果を補正する補正手段を備えることを特徴とする。
【0024】
請求項6記載の発明は、請求項5記載の発明と同様の構成を備えると共に、
前記補正手段は、前記二乗総和が所定の収束条件を満たすまで前記各特徴点の変換と前記二乗総和の算出を繰り返し実行すると共に、その過程で前記対応点間距離が所定値以上となる場合或いは前記対応点間距離が減少しない特徴点については、外れ点として特定とすることを特徴とする。
【0025】
請求項7記載の発明は、請求項6記載の発明と同様の構成を備えると共に、
前記各特徴点について所定の重み付けを行うと共に、
前記補正手段は、前記二乗総和の算出を繰り返し実行する場合に、繰り返し回数が進むにつれて前記特徴点の参加数を段階的に増加させ、その際の特徴点の参加する優先順位を前記重み付けの重い順にすることを特徴とする。
【0026】
請求項8記載の発明は、請求項1から7のいずれか一項に記載の発明と同様の構成を備えると共に、
前記テンプレートとして、前記複数の特徴点の各々のエッジ勾配ベクトルを求め、勾配が所定範囲で共通するベクトル数である出現頻度を求めて、当該出現頻度数に応じて前記各特徴点について重み付けを行う第一の重み付け手段を備えることを特徴とする。
【0027】
請求項9記載の発明は、請求項1から8のいずれか一項に記載の発明と同様の構成を備えると共に、
前記テンプレートとして、前記複数の特徴点の各々のコーナー度を求め、当該コーナー度が高い特徴点について重み付けを重くして前記各特徴点の重み付けを行う第二の重み付け手段を備えることを特徴とする。
【0028】
請求項10記載の発明は、請求項1から9のいずれか一項に記載の発明と同様の構成を備えると共に、
フィルタ演算を行うための並列演算機構を備えることを特徴とする。
【0029】
請求項11記載の発明は、請求項1から10のいずれか一項に記載の発明と同様の構成を備えると共に、前記サーチ画像上の位置でテンプレートとの相関値を求め、サーチ画像上の対象物を正しく探し出したことを判定できる手段を設けたことを特徴とする。
【発明の効果】
【0030】
請求項1記載の発明は、濃淡画像データより得られる画像エネルギーを利用してテンプレートをサーチ画像上の対象物に位置合わせすることから、特徴点の対応付けが不要となり、従来技術に比べて少ない処理量によってサーチ画像上の対象物位置への移動量を求めることができ、その際の移動量からサーチ画像内の対象物を精度良く探索することが可能となる。
【0031】
請求項2記載の発明は、判定手段が収束条件を満たすと判定するまで移動ベクトル算出手段と移動手段とがその処理を繰り返し行うので、収束条件の制御により、精度レベルの制御が可能となる。例えば、収束条件を厳しくすることで繰り返し回数は多くなるが、より精度良く位置合わせをすることができる。
【0032】
請求項3記載の発明は、サーチループ処理において、ループ回数が増えるたびに小さくなる補正係数を乗算することにより、精度を保持したまま、収束を早くして処理の高速化を実現することが可能となる。
【0033】
請求項4記載の発明は、テンプレートの画像エネルギーを利用して対象物を探索することができるので、画像エネルギーの算出は探索時に限らず事前に行うことができるため、探索処理を迅速に行うことが可能となる。
【0034】
請求項5記載の発明は、補正手段を備えるので、粗サーチ手段による探索結果よりも精度の高い探索結果によって、より近傍で、かつ、より正確な対応点を用いて、テンプレートの画像エネルギーによる対応点の移動ベクトルの算出を行うことができ、より精度の高い探索を高速に行うことが可能となる。
【0035】
請求項6記載の発明は、特徴点の中から外れ点を特定することができるので、その後の処理について、外れ点を除いたり、重みを低減して扱う等の処理を行うことができ、処理の遅速化原因を除くことができ、探索処理の高速化を図ることが可能となる。
【0036】
請求項7記載の発明は、特徴点の参加数を段階的に増加させるので、収束の迅速化を図ることができ、なおかつ、重み付けに応じて特徴点の参加する優先順位を定めるので、探索精度を高く維持することができる。
【0037】
請求項8記載の発明は、勾配による出現頻度に応じて特徴点の重み付けを行うので、出現頻度が少ない方向について精度をより高めて探索を行うことが可能となる。
【0038】
請求項9記載の発明は、コーナー度の高い特徴点の重み付けをより高くするので、探索誤差を低減しより高い精度で探索を行うことが可能となる。
【0039】
請求項10記載の発明は、探索において処理負担の高いフィルタ処理に特化した並列演算機構を備えるので、当該フィルタ処理を高速で行うことができ、探索の迅速化を図ることが可能となる。
【0040】
請求項11記載の発明は、サーチ画像上の位置でテンプレートとの相関値を求めるので、サーチ画像上の対象物を正しく探し出したか否かの判定が可能となる。
【図面の簡単な説明】
【0041】
【図1】本実施の形態に係る電子部品実装装置の全体を示す平面図である。
【図2】電子部品実装装置の制御系を示すブロック図である。
【図3】テンプレート作成処理のフローチャートである。
【図4】コーナー度を計算する手法を示す説明図である。
【図5】局所領域のエッジ形状によってコーナー度が変わることを示す説明図である。
【図6】重心と特徴点上の重心法線と拡大縮小ベクトル、回転ベクトルの関係を示す図である。
【図7】重心法線ベクトルとエッジ勾配ベクトルの関係を示す図である。
【図8】図8(A)は濃淡画像における一定方向の濃度値、図8(B)は濃淡画像の微分によるエッジ画像のエッジ強さ、図8(C)は画像エネルギー、図8(D)は画像のエッジからの力、図8(E)はエッジから受ける単位あたりの移動量を示す線図である。
【図9】エッジ点における画像エネルギーによる引き寄せ力をボールに生じる重力に例えて説明したイメージ説明図である。
【図10】テンプレートにかかる力の様を示す説明図である。
【図11】図11(A)から図11(C)は画像エネルギーによりテンプレートがエッジ画像に対する位置合わせが行われる過程を示す説明図である。
【図12】サーチ処理のフローチャートである。
【図13】図12のフローチャートに対応したデータフロー図である。
【図14】撮像画像演算機構の構成図である。
【図15】二乗距離総和の参加数を定めたテーブルである。
【図16】最小二乗法による位置変換と変換後の対応点との関係を示す図である。
【図17】テンプレート上の任意の特徴点上における力の関係を示す図である。
【図18】ループ回数による移動量のリミットテーブルの図である。
【図19】テンプレートが毎回のループ処理において画像エネルギーに基づいて収束する状態を示す図である。
【図20】サブピクセル位置でのマッチング例を示す図である。
【図21】サブピクセルピークの推定例を示す図である。
【図22】ICP法の原理を簡単に示す図であり、図22(1)〜(4)の順で処理が行われる。
【図23】サーチ画像上に対象物の隠蔽物がある場合の例を示す図である。
【図24】サーチ画像上にノイズがある場合の例を示す図である。
【図25】エッジ勾配ベクトルの向きの頻度に差がある場合の例を示す図である。
【発明を実施するための形態】
【0042】
(発明の実施形態の全体構成)
本発明の実施形態について、図1乃至図19に基づいて説明する。本実施形態は、撮像画像内で探索対象物である電子部品を探索するための画像処理装置10が電子部品実装装置100に搭載され、後述する吸着ノズルに吸着された電子部品の位置を検出する目的に利用される場合の例を示している。
【0043】
(電子部品実装装置)
図1は電子部品実装装置100の平面図、図2は制御系を示すブロック図である。電子部品実装装置100は、基板に各種の電子部品の搭載を行うものであって、電子部品の搭載手段として、図1に示すように、搭載される電子部品を供給する複数の電子部品フィーダ101と、電子部品フィーダ101を複数並べて保持する電子部品供給部としてのフィーダバンク102と、一定方向に基板を搬送する基板搬送手段103と、当該基板搬送手段103による基板搬送経路の途中に設けられた基板に対する電子部品搭載作業を行うための搭載作業部104と、電子部品を吸着する吸着ノズル105を保持して電子部品の保持を行う部品保持手段としてのヘッド106と、ヘッド106を所定範囲内の任意の位置に駆動搬送するヘッド移動手段としてのX−Yガントリ107と、吸着ノズル105に吸着された電子部品の撮像を行う標準カメラ115及び高解像度カメラ116と、撮像位置に照明光を照射する照明装置117と、電子部品実装装置100の各構成に対して制御を行う制御装置120と、カメラ115,116の撮像画像から探索対象となる電子部品の探索処理を実行する画像処理装置10とを備えている。
画像処理装置10は、カメラ115,116による電子部品Cの撮像画像から正確な位置情報を求め、制御装置120に出力することでヘッド106の位置決め動作に反映させるために利用される。
標準カメラ115及び高解像度カメラ116はいずれもCCDカメラであり、搭載が行われる電子部品の電極サイズによって使い分けられるようになっている。以下の記載では、標準カメラ115が使用される前提で説明を行うこととする。
また、以下の説明において、水平面に沿って互いに直交する一の方向をX軸方向とし、他の方向をY軸方向とし、垂直上下方向をZ軸方向と称することとする。
【0044】
基板搬送手段103は、図示しない搬送ベルトを備えており、その搬送ベルトにより基板をX軸方向に沿って搬送する。
また、前述したように、基板搬送手段103による基板搬送経路の途中には、電子部品を基板へ搭載する搭載作業部104が設けられている。基板搬送手段103は、搭載作業部104まで基板を搬送すると共に停止して、図示しない保持機構により基板の保持を行う。つまり、基板は保持機構により保持された状態で安定した電子部品の搭載作業が行われる。
【0045】
ヘッド106は、その先端部で空気吸引により電子部品を保持する吸着ノズル105と、この吸着ノズル105をZ軸方向に駆動する駆動源であるZ軸モータ111と、吸着ノズル105を介して保持された電子部品をZ軸方向を中心として回転駆動させる回転駆動源であるθ軸モータ112とが設けられている。
また、各吸着ノズル105は負圧発生装置108に接続され、当該吸着ノズル105の先端部において吸気吸引を行うことにより電子部品の吸着及び保持が行われる。
つまりこれらの構造により、搭載作業時には、吸着ノズル105の先端部で所定の電子部品フィーダ101から電子部品を吸着し、所定位置で基板に向かって吸着ノズル105を下降させると共に吸着ノズル105を回転させて電子部品の向きの調整を行いつつ搭載作業が行われる。
また、前述した各カメラ115,116は、ベースフレーム114に搭載されており、X−Yガントリ107によりヘッド106が各カメラ115,116の位置決めされて撮像が行われるようになっている。
各カメラ115,116は、ベースフレーム114から上方に向けられた状態で保持されており、吸着ノズル105に吸着された電子部品Cを下方から撮像し、撮像画像を画像処理装置10に出力する。
【0046】
X−Yガントリ107は、X軸方向にヘッド106の移動を案内するX軸ガイドレール107aと、このX軸ガイドレール107aと共にヘッド106をY軸方向に案内する二本のY軸ガイドレール107bと、X軸方向に沿ってヘッド106を移動させる駆動源であるX軸モータ109と、X軸ガイドレール107aを介してヘッド106をY軸方向に移動させる駆動源であるY軸モータ110とを備えている。そして、各モータ109,110の駆動により、ヘッド106を二本のY軸ガイドレール107bの間となる領域のほぼ全体に搬送することを可能としている。
なお、各モータは、ぞれぞれの回転量が制御装置120に認識され、所望の回転量となるように制御されることにより、ヘッド106を介して吸着ノズル105や各カメラ115,116の位置決めを行っている。
また、電子部品の必要上、前記したフィーダバンク102,搭載作業部104とはいずれもX−Yガントリ107によるヘッド106の搬送可能領域内に配置されている。
【0047】
フィーダバンク102には、複数の電子部品フィーダ101がX軸方向に沿って羅列して載置装備される。
各電子部品フィーダ101は、後端部に電子部品が一列に並んで封止された部品テープのリール(図示略)が保持されており、部品テープはリールから電子部品フィーダ101の先端部(基板側の端部)の上側に設けられた部品受け渡し位置101aまで繰り出され、当該部品受け渡し位置101aにおいて吸着ノズル105により電子部品の吸着が行われるようになっている。
【0048】
制御装置120は、基板Kに搭載する電子部品Cのリスト、搭載順番、各電子部品の部品吸着位置(いずれの電子部品フィーダ101から受け取るか)及び基板Kにおける搭載位置等が定められた搭載プログラムを記録し、当該搭載プログラムに従ってX軸モータ109、Y軸モータ110及びZ軸モータ111を制御し、ヘッド106の位置決め制御を行う。また、この制御装置120は、吸着時の電子部品に対してθ軸モータ112を駆動して吸着ノズル105を回転させて角度修正制御を行い、X軸モータ109及びY軸モータ110により位置修正制御を行う。
かかる制御装置120は、電子部品Cの吸着ノズル105による吸着後に標準カメラ115又は高解像度カメラ116による撮像が行われ、当該撮像画像に基づいて画像処理装置10が求めた電子部品の正確な位置及び向きに基づいて電子部品Cの向きをθ軸モータ112により補正し、X軸モータ109及びY軸モータ110により搭載時のヘッド106による搭載位置を補正するようになっている。
【0049】
(画像処理装置)
画像処理装置10は、各カメラ115,116及びその照明装置117と画像処理装置全体を制御する制御部11と、各カメラ115,116の画像信号をデジタル化するA/D変換器12と、デジタル化された撮像画像データを記憶する画像メモリ13と、撮像画像データに基づいて電子部品の探索対象を探索するための画像処理を実行する演算部14と、画像処理や各部の制御において作業領域となる作業用メモリ15と、後述する各種フィルタ演算を高速で行う高速フィルタ演算モジュールである並列演算機構16と、画像処理装置10の制御部11が制御装置120とのデータ通信を行うインタフェース17と、画像データに対してエッジ検出処理を行う撮像画像演算機構18と、テンプレートデータを格納するテンプレートデータ格納メモリ19と、各種の処理を施された画像データをアナログ化してモニタ21に出力するD/A変換器20と、各種のテーブルを記憶するテーブルメモリ22とを備えている。
また、制御装置120は、通常、対象物のサイズによって、撮像するカメラ115又は116を選択し、対象物Cを吸着ノズル105で吸着し、選択したカメラ115又は116の撮像位置にセットする。さらに、照明装置117を選択したカメラ115又は116で撮像できるよう移動、点灯させ、画像処理装置10にインタフェース17を介して、選択したカメラチャネル情報とともに処理実行を指示する。画像処理装置10は、指定されたカメラ115又は116を制御し、対象物Cの画像を撮像し、A/Dコンバータ12でデジタル化し、画像メモリ13に多値画像データとして記憶する。
【0050】
(画像処理装置の行う処理の概要)
上記画像処理装置10は、電子部品の撮像画像から電子部品の探索処理を行うものである。
画像処理装置10では、テンプレートとなる対象物C(電子部品)を撮像してその基準画像データを画像メモリ13に格納し、当該画像データからなる濃淡画像を微分処理してエッジ画像のデータを取得し、さらにこのエッジ画像を反転させ、画像エネルギーのデータを取得する。さらに、画像エネルギーを微分しマイナスをかけた、画像のエッジからの力のデータを取得し、この画像のエッジからの力に係数をかけ、エッジから受ける単位あたりの移動量を取得する。画像エネルギー、画像のエッジからの力、エッジから受ける単位値の移動量の関係については後述する。
そして、テンプレートがサーチ画像上の任意の位置において受ける力を算出し、その力から重力、回転力、拡大縮小力を算出、そして各力から移動ベクトルを算出、さらに移動量に変換し、対象物の次ポジションを設定する。移動ベクトル総和にしきい値を設け、収束条件とする。エネルギー最小となる位置(サーチ画像上の対象物の位置)に辿り着くまで延々と処理を繰り返す。
【0051】
しかしながら、前処理として画像エネルギー、画像のエッジからの力、及びエッジから受ける単位あたりの移動量を生成しておかなければならないことは、タクトにおいてやはり問題となる。確かに、エッジ点数nが増大した場合、計算量がnの2乗のオーダーとなり、爆発的にタクトが増大する最小二乗法に比べて改善はされているが、エッジ点数が少ない場合は、画像エネルギー等を生成する時間がボトルネックとなり、最小二乗法の方が速い場合もある。エッジ位置の周辺のみ演算するなど演算領域を絞り込むことで低減はできるものの、粗サーチの検出精度に保証がないと、未演算部分を参照することになり、正しく処理できなくなるリスクも発生する。
従って、画像処理装置10では、予めテンプレートについて画像エネルギー、画像のエッジからの力、及びエッジから受ける単位あたりの移動量を算出しておき、サーチ画像内のエッジ点から対象物のモデルを作成してテンプレートに対して位置合わせを行うことで、探索処理の実行中に画像エネルギーの生成演算を行うことを回避している。
さらに、対象物のモデル作成時には、動的にノイズ成分や形状相違部分を削除し、テンプレートのロバスト性を向上させている。
【0052】
また、先に記載した通り、この方法において、高精度な位置決め結果を得るためには、エッジ勾配ベクトルの角度精度が高精度であることが必要である。
そのため、エッジ検出フィルタとして、フィルタサイズの大きなガウシアンフィルタを使用することが望ましい。
フィルタサイズは7×7〜15×15、係数はfloat変数となる。
これらのフィルタ演算を2回、画像全面にもれなくかけることが望ましい。
これらの処理は位置決め処理の大半を占めるが、高精度な結果を得るためには不可欠な処理である。これらの処理を高速に行うために、フィルタサイズに対応した撮影画像演算機構18(後述)を搭載している。
【0053】
さらに、画像エネルギーを用いて画像の位置合わせを行う手法は、「一致した特徴点はエネルギー最小の位置にあるので、逆にまったく拘束されない。」という特性を利用するが、この方法の利点であるが、欠点にもなり得る。
この特性のため、まだ、一致していない特徴点が受ける力がエッジ点全体に作用し、前述した図25のような極性のある対象物(例えば一方向に長い部品)でも長手方向に直交する方向について位置が一致した時点では止まらずにさらに長手方向についても移動して正確に位置合わせがおこなわれる。
【0054】
テンプレートに登録された対象物の形状とサーチ画像上にある対象物の形状が一致していれば、画像エネルギーの特性は利点となり、ピッタリの位置で収束するが、形状に相違がある場合、最もフィットした位置で止まらず、サーチループ処理において振動が発生する。このため、最大ループ回数となり処理が打ち切られるまで処理を繰り返すので、タクトは悪化、振動の振幅に依存して繰り返し精度も悪化する。
従って、画像処理装置10では、ループ回数が増えるにつれて、画像エネルギーから求まる重力及び回転力に対して係数が小さくなるように重み付けを行うこととしている。これにより、振動の発生を抑止し、収束時間の高速化を図っている。
【0055】
<テンプレート作成処理>
以下、画像処理装置10が行う対象物Cの探索処理を順を追って詳細に説明する。
まず、画像処理装置10では、探索を実行する前の準備段階(例えば、電子部品の実装作業を開始する前の段階)で、対象物Cのテンプレート作成を行う。かかるテンプレート作成について図3のフローチャートに基づいて説明する。
本発明の画像処理装置10を電子部品の位置決め、搭載を行う実装機に応用する場合、テンプレート作成は、実装作業時以外の機会で実行するものとし、作成作業には時間がかかっても構わない。テンプレートデータとして事前に準備しておける作業はすべてこのフェーズで行い、実装作業中に行われるサーチ処理を高速に行えるようにする。
【0056】
(1)撮像(s11)
画像処理装置10は、指定されたカメラ115もしくは116を制御し、基準姿勢の対象物Cの画像を撮像、A/Dコンバータ12でデジタル化し、画像メモリ13に基準画像データとして記憶させる。
【0057】
(2)エッジ検出処理(s12:エッジ画像生成手段としての処理)
撮像した基準画像についてエッジ検出処理を行う。
エッジは、ガウシアンフィルタなどのノイズ削除が行える平滑化効果を併せ持つ、エッジ検出フィルタをかけ、フィルタ出力結果に対して、しきい値処理等により検出する。
【0058】
テンプレート作成時は、タクトより、基準となるきれいな輪郭エッジがきちんととれるよう、きめ細かなエッジ検出パラメータ制御ができることを優先し、通常のソフト演算モジュールで処理する。このとき、高速化のために、2×2ロバーツフィルタをかけ、予めエッジ候補点を絞り込み、ガウシアンフィルタをかけるようにする。
また、エッジ検出パラメータによっては、並列演算機構16を用いた高速フィルタ演算モジュールで処理しても構わない。フィルタ出力結果は、作業用メモリ15に格納される。
【0059】
次に、フィルタ出力結果に対して、最小エッジ強さを定め、しきい値処理を行い、エッジ候補点を取得する。既に2×2ロバーツフィルタをかけて候補点を絞り込んでいる場合は、この処理はスキップして構わない。
次に、エッジ候補点の周辺のフィルタ出力値を調べ、非極大点を削除、細線化する。そして、残ったエッジ候補点をラベリング処理し、セグメント化する。
エッジセグメントの最大エッジ強さをそのセグメントの代表値として、セグメント別にしきい値処理を行い、エッジ点を検出する。
【0060】
(3)特徴抽出処理(s13)
s12で検出したエッジ点について、例えばHarrisやSUSANなど、コーナー抽出器を用いてコーナー度を計算する。計算結果は、各エッジ点の属性データとして、作業用メモリ15に格納される。
図4及び図5を用いてコーナー度について詳しく説明する。
コーナー度とは周辺領域との類似度である。ある点(x0,y0)を基準とする少領域Rと、そこから少しだけ動いた(x0+dx,y0+dy)を基準とする小領域Raを考える。(図4)
これら2つの領域の類似度は、以下の式で求めることができる。
【数1】
【0061】
様々な微小変位(dx,dy)のいずれに対しても、両領域が似ていなければ、類似度が低くなり、コーナー度は高くなる。
コーナー度が高いほど、対応付けがし易い点だといえる。例えば、図5のRAの領域は本来の位置からずれたとしても類似度は下がらない。また、RBの領域は領域内に唯一の辺方向(図5矢印の方向)以外にずれた場合は、類似度は下がるが、辺方向にずれた場合は、類似度は下がらない。一方、RCの領域はいずれの方向にずれたとしても類似度は下がる。すなわち、領域内により多数の方向のエッジを含んでいれば類似度は下がり、コーナー度は上がる。
【0062】
この評価値を用いて、特徴点の抽出、及び重み付けを行うことができる。
あるしきい値以上の値となる点について、特徴点として抽出し、抽出された特徴点の中で最大値のものを1、最小値のものを0として、0〜1の範囲で正規化し、重み値とする(第二の重み付け手段としての処理)。
【0063】
このようにコーナー度を用いて抽出した特徴点は粗サーチ時の特徴点の基準点として用いる、特別な特徴点である。
また、HarrisやSUSANなどのコーナー抽出器は、計算コストがかかるため、テンプレート作成時のように重み値の設定が必要な場合のみ使用するものとする。
粗サーチ時(後述するs24の場合)の通常の特徴点は、先に求めた基準点を始点、終点としたエッジセグメントについて折線近似法を適用、曲率の高いエッジ点を抽出し、追加する。
【0064】
精サーチ用(後述するs41〜s46の場合)の特徴点としては、高精度な位置決めを行うには、s12で検出したエッジ点はすべて利用すべきである。しかしながら、処理時間の短縮が必要な場合、例えばHarrisやSUSANなど、コーナー抽出器を用いてコーナーを検出し、コーナー間を等間隔に間引いて特徴点を設定する。
特徴点を間引く場合、エッジ点列の重心(エッジ点から構成される図形上の重心)が変わらないように間引く必要がある。各特徴点が受ける力の総和が重心にかかる力となる。特徴点の分布に偏りがあると重心にかかる力にも偏りが発生するので、サーチ画像中での対象物の探索時に収束位置がずれることがある。例えば、サーチ画像上の対象物の形状がテンプレートの形状と若干異なるような場合、分布が高い部分の一致度がより高くなるように収束することになり、全体としては位置がずれる。
逆に、特徴点に重み付けすることで一致度を高めたい部位を制御することも可能である。
精サーチ用の特徴点数は用途に合わせて、調整すべきである。
【0065】
(4)ベクトル向き出現頻度計算(s14:第一の重み付け手段としての処理)
s13で抽出した各特徴点について、そのエッジ勾配ベクトルの向き別に出現頻度を計算し、ヒストグラムを作成する。エッジ勾配ベクトルについて一定の角度範囲ごとに出現頻度を求め、それぞれの出現頻度の比に応じて、ベクトル向き別に重みを設定する。重みは出現頻度の比の逆数となるようにする。また、重み値は0〜1で表し、最小頻度の重み値が1となるように設定する。
例えば、出現頻度が 2:4:8:1であった場合、重み値は 0.5:0.25:0.125:1となる。
【0066】
(5)重み値初期値設定(s15)
画像処理装置10では、テンプレート作成時の特徴点の重み情報として、s13、s14で、それぞれ求めることができる2つの値が存在する。
これらの2つの重み値を掛け合わせ、1つの重み値として設定する。
【0067】
(6)テンプレートデータとして格納(s16)
画像処理装置10では、テンプレートデータとして、特徴点の座標、エッジ勾配ベクトル、そして重み値がテンプレートデータ格納メモリ19に格納される。テンプレートデータを外部メディアに出力する場合は、これらのデータのみが出力される。
これらテンプレートデータは、サーチ処理を高速に行うためのデータ形式(以降、内部処理用データという)にさらに展開する。テンプレートデータを外部メディアから読み込んだ場合も同様に、これらの展開処理が必要である。
内部処理用データへの展開処理とは、次のような処理となる。
(1)各特徴点の座標を重心を原点とする座標系に変換する。
(2)各特徴点の重心法線単位ベクトルの取得
【0068】
画像エネルギーを回転力と拡大縮小力に分解する際の基準となる方向は、特徴点とテンプレートの重心を結ぶ直線方向(以降、重心法線方向という)であり、この方向を示す単位ベクトルをあらかじめ計算しておくことで、サーチ処理時の処理を軽減、高速化が可能となる。
図6に重心と特徴点上の重心法線と拡大縮小ベクトル、回転ベクトルの関係を示す。また、図7に重心法線ベクトルとエッジ勾配ベクトルの関係を示す。これらの図において、Gは重心、Tは特徴点、gは平行移動ベクトル、hは拡大縮小ベクトル、vは回転ベクトル、Rdは重心−特徴点間距離、jは重心法線である。
平行移動ベクトルgは特徴点Tにおけるエッジ勾配ベクトルに平行であって当該特徴点Tが画像エネルギーから受ける力であって位置合わせのための移動力を示す。
拡大縮小ベクトルhは、平行移動ベクトルgの重心法線方向成分であり、テンプレートを拡大縮小させる力を示す。
回転ベクトルvは、平行移動ベクトルgの重心法線jに対する直交方向成分であり、この回転ベクトルvと重心−特徴点間距離Rdとの乗算値がテンプレートを回転させる力を示す。
【0069】
(7)画像エネルギー等の生成(s17:画像エネルギー生成手段としての処理)
濃淡画像、エッジ画像、画像エネルギー、画像のエッジからの力、エッジから受ける単位あたりの移動量の関係を図8に示す。
濃淡画像は、例えば、画面内の各画素位置における輝度値からなる画像データであり(図8(A))、当該濃淡画像を一定方向(例えばX方向)に沿って微分すると、エッジ勾配が強い部分がピークとなるエッジ画像が求まる(図8(B))。
これを上下逆さに反転させると、図9に示すようなエッジ点が底となる谷ができる。これが画像エネルギーである(図8(C))。
画像のエッジからの力は、画像エネルギーを微分してマイナスをかけることで求めることができる(図8(D)、以降、エネルギーベクトルと呼ぶ)。
さらにこのエッジからの力に係数をかけ、エッジから受ける単位あたりの移動量を求めることができる(図8(E))。
【0070】
例えば、図9に示すように、谷の端にボールを置いたとする。ボールは重力の影響で谷の勾配を下り、スピードを増しながら落ちていく。谷底であるエッジ点を通過し、対面の勾配を上る。
しかしながら、再び重力の影響を受け、ボールは谷の勾配のどこかで止まり、逆向きに下り始める。このような動作を繰り返しながら、徐々に振幅が小さくなり、ボールは谷から受けるエネルギーが最小となる谷底、つまりエッジ点に収束して止まる。
【0071】
画像処理装置10は、精サーチ処理である画像の位置決め処理として、画像エネルギーが最小となる位置を見つける処理を実行する。テンプレート上の各特徴点が画像から受けるエネルギーを算出し、それが最も小さくなる場所を少しずつテンプレートを移動させながら繰り返し、探し出す。
【0072】
図10にテンプレートにかかる力の様を示す。図10においてMはテンプレート、Cはサーチ画像の対象物、beはサーチ画像の対象物のエッジ点におけるエネルギーベクトルである。
サーチ画像の対象物Cのエッジ近傍には当該エッジに向かってくる方向(エッジ勾配ベクトル方向)を向いたエネルギーベクトルbeが存在している。
テンプレートMの各特徴点にはそれぞれ、直下の(特徴点を通過する)エネルギーベクトルbeの影響を受け、サーチ画像における近傍エッジに向かう力が発生する。これらの力の総和がテンプレート全体、すなわちテンプレートの重心Gにかかる力Fとなる。また、各特徴点における拡大縮小ベクトルhの総和がテンプレートM全体に対する拡大縮小力であり、各特徴点における回転ベクトルvの総和がテンプレートMの重心G回りの回転力となる。
テンプレートは図11(A)から(C)に推移するように徐々にサーチ画像の対象物の位置に近づいていき、やがて止まる。
【0073】
上記画像エネルギー等の生成は、テンプレート画像の濃淡画像に対してX方向とY方向とについて2階微分を行い、係数をかけ、それぞれの方向におけるエネルギーベクトルを直接求め、このデータのみを保存する。
これらの処理はサーチ処理の高速化のため、前処理として予め行っておく。
【0074】
<サーチ処理>
次に、テンプレートとサーチ画像における対象物との位置合わせ処理であるサーチ処理について図12のフローチャートに基づいて説明する。
図13は図12に対応したデータフロー図である。
サーチ処理におけるエッジ検出は、高速フィルタ演算モジュールを用いて行う。
さらに、画像データをピラミッド化し、上位階層のデータを用いて処理することで、さらなる高速化が可能となる。エッジ検出処理をサブピクセル化すれば、1階層上位のデータを用いても精度は同等レベルを保つことができる。
【0075】
(8)サーチ画像撮像(s21)
画像処理装置10は、指定されたカメラ115もしくは116を制御し、任意の姿勢の対象物Cの画像を撮像、A/Dコンバータ12でデジタル化し、画像メモリ13にサーチ画像データとして記憶させる(s11と同様)。
【0076】
(9)エッジ検出処理(s22)
撮像したサーチ画像は、画像メモリ13に記憶されると、撮像画像演算機構18でエッジ検出処理を行う。
図14は撮像画像演算機構18の構成図である。
M×Nで表わされるフィルタ係数処理を行う場合、並列演算機構としての撮像画像演算機構18は、(M×N)個のフィルタ係数格納メモリ31、フィルタ係数処理を行う1つの積算器32、フィルタ係数処理を行う(M−1)×N個の積和演算器33、フィルタ係数処理結果を格納数(M−1)×N個のデータバッファ器34、画像データの水平方向のフィルタ係数処理結果を格納数(N−1)個のラインバッファ器35、フィルタ係数処理後の積和データに対する絶対値演算器36、絶対値演算結果に対する除算器37、データバッファ器34とラインバッファ器35をコントロールするバッファコントローラ38から構成される。
【0077】
A/Dコンバータ12でデジタル化したサーチ画像は、プログレッシブ転送により画素毎に順次撮像画像演算機構18へ転送される。転送されたサーチ画像データは、フィルタ処理を行う積算器32と積和演算器33へ同時に入力される。
この時、積算器32と積和演算器33は順次接続される構成とし、前段の演算結果を取得できるようにする。各演算器32,33に入力された画像データとフィルタ係数格納メモリ31から読みだされた各フィルタ係数との演算を行う。
【0078】
この時、積和演算器33には加算データ入力に接続されたデータバッファ器34からのデータが入力され、積算結果に加算され、演算器33の出力に接続されたデータバッファ器34へ格納される。
データバッファ器34では、演算結果のデータと後段の演算器33で使用するデータの切り替えをバッファコントローラ38からのバッファコントロール信号を取得し行う。
【0079】
この時、演算器にはラインバッファ器35が接続されている場合がある。
ラインバッファ器35では、演算結果のデータと後段の演算器33で使用するデータの入出力を行う為、ディレイバッファを設ける。
バッファコントローラ38では、画像データのプログレッシブ転送に同期し、画素毎、垂直方向の管理を行い、各バッファのコントロールを行う。
【0080】
前述の演算を行うことによって、画像データの水平方向に対して、積和演算のフィルタ処理を行い、垂直方向に対してラインバッファ器35を介することによって、前ラインのデータを取得し、演算することが可能となる。
最終段のフィルタ演算結果に対して、絶対値演算器36、除算器37で演算することによってM×Nで表わされるフィルタ処理が完了する。
エッジ検出結果は、作業用メモリ15に格納される(s12と同様)。
【0081】
(10)特徴点抽出処理(s23)
s22で検出したエッジ点について、例えばHarrisやSUSANなど、コーナー抽出器を用いてコーナー度を計算する。計算結果は、各エッジ点の属性データとして、作業用メモリ15に格納される。コーナー度をs13と同様の処理で0〜1の値に正規化し、重み値とし、エッジ点の属性データとして保持しておく。タクトを優先する場合は、HarrisやSUSANなどのコーナー抽出器は、計算コストがかかるため、使用せず、重み値はすべて1に設定しておけばよい。
効果は弱まるが、サーチ画像のばらつき状況(形状相違、ノイズのレベル)とタクト、精度のトレードオフで選択すればよい。
【0082】
粗サーチ用の特徴点は、サーチ画像をラスタスキャンし、エッジセグメント毎に最初に当った箇所を始点とし、折線近似法を適用、曲率の高いエッジ点を抽出し、特徴点に追加する。
サーチ処理時には、精サーチ用の特徴点を抽出する必要はない。
【0083】
(11)粗サーチ(s24:粗サーチ手段としての処理)
画像エネルギーを用いた位置合わせ処理は、位置合わせを行うもの同士がある程度近くに存在しなければならず、適当な粗サーチ方法と組み合わせ、初期位置を設定しなければならない。
収束時間と精度は、初期位置の与え方に依存する。
±2画素程度の精度で初期位置を設定できれば、全く問題ない。
例えば、Geometrical Hashing 等を用いれば、対象部品の姿勢やスケールに関係なく、ほぼ同じタクトで位置決めが可能である。
【0084】
<モデル作成処理>
次にサーチ画像からのモデル生成処理について詳細に説明する。
最小二乗法のICP法をベースに、タクトが増大しないよう、粗サーチ用の特徴点を用いて行う。
この処理はモデル生成すると同時に粗サーチの位置決め結果の精度不足を補完する役割がある。
【0085】
(12)対応点を決定(s31:対応点取得手段としての処理)
テンプレートの粗サーチ用の特徴点について、それぞれ、自身との距離が最小となるサーチ画像上のエッジ点を抽出し、対応点とする。
サーチ画像のエッジ点データは、2−D木構造で管理し、高速に対応点の抽出が行えるようにする。また、このs31から後述するs37までは所定の収束条件を満たすまで繰り替えされるループ処理であり、対応点数はループ処理の繰り返し回数が進むにつれて段階的に増やしていく。ループ回数とテンプレートとの二乗距離総和により収束状態を判定し、位置合わせに使う対応点の数を設定する。
【0086】
二乗距離総和とは、各対応点間距離(特徴点とそれに対応する対応点との距離)を二乗し、足し合わせた値である。
この値が小さいほど、より真の位置(テンプレートとモデルの合致位置)に近づいている。
位置合わせの初期にはテンプレートの特徴点の中で、重み値が高い、つまり、間違えにくい特徴ある点(コーナーの点、例えば、図11の●)に絞り込んで少ない点数で処理を行い、高速化を図る。そして、位置が近づいてきたならば、処理点数を増やしていき(図18の●と▲)、高精度化を図る。)
【0087】
処理点数の設定は、例えば、図15に示すようなテーブルを参照することで行う。ループ回数、二乗距離総和をある間隔で段階分けし、それぞれの段階で何点参加させるかをあらかじめテーブル化してテーブルメモリ22に保持しておく。
例えば、図15のテーブルの例では、最大ループ回数を1000回までとしてループ回数を200回増えるごとに、或いは、二乗距離総和を2000pix以内として400pix減るごとに、特徴点の処理点数を段階的に増やすように設定されている。
【0088】
(13)最小二乗法による変換行列の算出(s32:補正手段としての処理)
図16において、Mがテンプレートであり、これを回転(R)、平行移動(T)したものをM1とした時、M1とサーチ画像上の形状であるCの二乗距離総和(Σ(m1i−ci)2)を最小にするR、Tを最小二乗法によって算出する。このとき、各対応点間距離は、実際の2点間距離(m1i−ci)に対して、サーチ画像上のエッジ点(ci)の重み値(コーナー度)と、テンプレートの特徴点(m1i)の重み値を掛けた値を用いる。
【0089】
(14)二乗距離総和、ループ回数を評価(s33)
s32で求めた変換行列で求まるテンプレート位置における対応点の二乗距離総和の算出結果が、予め決めておいたしきい値以下になったかどうかを判定する。この二乗距離総和のしきい値により精度を制御することができる。一般にしきい値を小さくすれば精度は上がる。
また、二乗距離総和がしきい値以下となっていない場合でも、ループ回数についても、無限ループに陥ることを防ぐため、予め決めておいた最大ループ回数を超えたかどうかを判定する。
【0090】
(15)収束条件成立判定(s34)
二乗距離総和がしきい値以下になるか、前回の処理と二乗距離総和が変わらないか、ループ回数が最大ループ回数を越えるかした場合、収束条件が成立し、処理ループを脱出してs38に処理を進める。
一方、二乗距離総和がしきい値以上で、かつループ回数が最大ループ回数以下の場合、s31からs37の処理を繰返し行う。
【0091】
(16)外れ点削除(s35)
収束条件をクリアしない場合には、外れ点の削除の処理を実行する。サーチ画像上に対応点がないテンプレートの特徴点を外れ点と呼ぶ。
このような点は、s31で示すような対応付けを行うと、間違った対応付けを行うため、位置合わせ処理に悪影響を及ぼす。このような点は、対応点間距離が大きい、もしくは、全体としては収束が進んでいるにもかかわらず、個別にみると対応点間距離が収束していないなどの特性がある。
【0092】
従って、予め個々の点についての対応点間距離のしきい値を決めておき、そのしきい値以上となるテンプレートの特徴点については、重み値を0とし、二乗距離総和の算出に使わないようにする。
また、このような状態がループ回数を重ねても続くときは、s31の対応付け処理からも除外するようにする。
【0093】
(17)点間距離を重み値に変換(s36)
対応点間距離がしきい値以内の点について、対応点間距離が0の場合、重み値を1、対応点間距離がしきい値の場合に重み値を0として、テンプレートの各特徴点について、対応点間距離を0〜1に正規化し、重み値とする。
【0094】
(18)重み値調整(s37)
s36で求めた重み値を、テンプレート作成時にコーナー度から求めた重み値に掛け、テンプレート特徴点の重み値を再設定する。このとき、テンプレートデータ格納メモリ10内において、重み値について降順になるよう特徴点を並び替えておく。即ち、s31では、ループ回数又は収束が進むと、特徴点数を段階的に増やして処理するので、重み値順に特徴点が並んでいると、重み値が大きいものから処理に加えられることとなる。
【0095】
(19)サーチ画像エッジよりモデルを作成(s38)
s31〜s37のループ処理を経ると、テンプレートの特徴点は重み値について降順、つまり対応の確からしさの順で並んでいる。
まず、重み値についてしきい値を設定し、対応付けが不安定であった特徴点を削除する。
例えば、重み値が0の特徴点を削除するようにすればよい。
こうして残った特徴点について、それぞれ、自身との距離が最小となるサーチ画像上のエッジ点を抽出し、これらのエッジ点を新たなテンプレートの特徴点として扱う。
【0096】
(20)サーチ画像座標系→テンプレート座標系変換(s40)
s38でサーチ画像エッジ点から作成した新たなテンプレートについて、サーチ画像上での粗サーチの位置決め結果をテンプレート座標系に変換し、初期位置を設定する。同時に、テンプレートデータ、サーチ画像エッジデータを入れ替える。
【0097】
(21)テンプレートが受ける力の算出(s41)
前述したように、図10にはサーチ画像のエネルギーベクトルとテンプレート、そしてテンプレートにかかる力の関係を示している。エネルギーベクトルは先に述べた通り、画像の濃度データをx、y方向それぞれに2階微分したもので、離散的な2次元ベクトルデータである。サーチ画像のエッジの近傍にエッジに向かうベクトルとして発生する。(以降、力場という)
【0098】
この力場にテンプレートを置いたとき、テンプレート上の各特徴点の直下のエネルギーベクトルから受ける力の総和がテンプレートが受ける力となる。
テンプレートを移動させるためには、テンプレートが受ける力をテンプレートの重心Gにかかる、重力、回転力、拡大縮小力の3つに整理する必要がある。
【0099】
重力Fは重心を平行移動させようとする力、回転力はテンプレートを重心を回転中心として回転させようとする力、拡大縮小力は、テンプレートの重心を拡大縮小中心として拡大縮小させようとする力である。
また、エネルギー場は画像データ同様、離散的なデータであるので、サブピクセル位置の値を求めるためには、いずれかの補間手法と組み合わせて実装する必要がある。
【0100】
速度を重視する場合は、隣接する4つのデータを用い、線形補間法を適用するのがよい。
精度を重視する場合は、ピークを求めたいサブピクセルずれ分ずらしたフィルタ係数を再設定して、エネルギーベクトルを再計算すればよい。
【0101】
(22)テンプレートが受ける力を移動ベクトルへ変換(s42:移動ベクトル算出手段としての処理)
図17にテンプレートM上の任意の特徴点T上における力の関係を示す。
ある特徴点は、サーチ画像上のエッジEの近傍にあるとき、力場から力を受け、エッジEに引き寄せられる。この力の内、その特徴点Tが受ける力は、その特徴点Tのテンプレート画像におけるエッジ勾配ベクトルbtの方向成分のみである。この力が重力、すなわち特徴点の平行移動ベクトルgである。なお、符号beは前述したエッジEにおけるエッジ勾配ベクトルである。
【0102】
特徴点T上の平行移動ベクトルgと拡大縮小ベクトルh、回転ベクトルvの関係は前述した図6の通りである。
特徴点Tの平行移動ベクトルgをその特徴点TとテンプレートMの重心Gを結ぶ直線(重心法線)方向を基準に垂直成分、水平成分に分解する。このときの垂直成分が拡大縮小ベクトルhであり、水平成分が回転ベクトルvである。
テンプレートM上の各特徴点Tについて、それぞれ各平行移動ベクトルgを算出し、さらに拡大縮小ベクトルh、回転ベクトルvを算出し、3つの移動ベクトルごとにその総和を求め、テンプレートMの移動ベクトルとする。
【0103】
(23)移動ベクトル総和、ループ回数を評価(s43:判定手段としての処理)
s42で求めた3つのベクトルg、h、vについて、その大きさを求め、足し合わせたものが移動ベクトル総和である。テンプレートMがサーチ画像上の対象物とピッタリ一致した場合、0となる。
この移動ベクトル総和に対して、予め決めておいたしきい値以下になったかどうかを判定する。
【0104】
また、s41〜s46の処理は所定の収束条件を満たすまで行われるループ処理である。かかる処理のループ回数についても、無限ループに陥ることを防ぐため、予め決めておいた最大ループ回数を超えたかどうかを判定する。移動ベクトル総和のしきい値により精度を制御することができる。一般にしきい値を小さくすれば精度は上がる。
【0105】
(24)収束条件判定(s44)
移動ベクトル総和がしきい値以下かつ、ループ回数が最大ループ回数以内の場合、収束条件が成立し、正常に位置合わせできたこととして、処理ループを脱出する。
また、移動ベクトル総和がしきい値以下でなくても、ループ回数が最大ループ回数を超えた場合は、処理ループを脱出する。これは、サーチ処理において、時間切れとなったことを意味する。
【0106】
どちらのルートで処理ループを脱出した場合も、その位置における相関値を計算し(s48)、相関値によって位置合わせが正常に完了したか否かは判定する。
また、移動ベクトル総和がしきい値以上で、かつループ回数が最大ループ回数以下の場合、s45に処理を進めて、s41からs46の処理を繰返し行う。
【0107】
(25)移動ベクトルを移動量に変換(s45:移動量変換手段としての処理)
移動ベクトル総和について収束条件を満たさない場合には、画像データ上でテンプレートを移動させるために、移動ベクトルを移動量に変換する。
平行移動、回転、拡大縮小毎に、さらに全体にと4つの補正係数を用意、下記の式を定義する。
【0108】
【数2】
m:平行移動量(単位:画素)、θ:回転角度(単位:rad)
scl:スケール変動量 単位:倍率(等倍のとき、1.0)
Γ:全体の補正係数(デフォルト値:0.2)
γg:平行移動の補正係数(デフォルト値:1.0)
γθ:回転の補正係数(デフォルト値:1.0)
γscl:拡大縮小の補正係数(デフォルト値:0.007)
g:平行移動ベクトル、v:回転ベクトル、h:拡大縮小ベクトル
Rd:重心−特徴点間距離
【0109】
ここで定義した補正係数により、サーチの精度、タクトを制御することができる。
補正係数を大きくすれば、1回のループ処理でのテンプレートの移動量が大きくなり、収束までの時間を短縮できる。但し、真値を通り過ぎ、振動するなど、精度が落ちるリスクがある。
また、補正係数を小さくすれば、1回のループ処理でのテンプレートの移動量は小さくなり、収束までに時間がかかる。但し、確実に真値に辿り着くことができる。
収束判定のしきい値を小さくし、合わせてこの補正係数を小さくすれば、より高精度なサーチが期待できる。
【0110】
タクトと精度を両立させるためには、サーチの初期段階は大きく、終了段階は小さく移動するように1回のループ移動量を制御すればよい。
サーチ画像上の対象物の大体のずれ量が既知の場合、図18に示すようなループ回数による移動量のリミットテーブルを作成し、移動量を制御することで、上記のようなタクトと精度を両立する実装が可能である。
なお、図18において、xは平行移動量mのx方向成分に対する補正係数であり、yは平行移動量mのy方向成分に対する補正係数であり、θは回転角度に対する補正係数である。これらの補正係数は、いずれも1以下であって、ループ回数の進行に応じて数値が小さくなるように設定される。
これにより、図19に示すように、テンプレートMが毎回のループ処理において、画像エネルギーに基づいて移動した場合に、エッジを通過して振動することなく、徐々にエッジに近づけることを可能とする。つまり、振動を回避して、タクトと精度とを両立することができる。なお、この図19に示すテーブルもテーブルメモリ22に格納されている。
【0111】
(26)テンプレートの移動(s46)
s45で求めた移動量に従い、テンプレートのカレント位置を更新する。
この位置更新によりテンプレートMは前述した図11(A)〜(C)のようにその位置が推移し、サーチ画像のエッジ近傍にある特徴点はエッジに引き寄せられ、徐々にサーチ対象と一致していく。
【0112】
(27)テンプレート座標系→サーチ画像座標系逆変換(s47:探索情報取得手段としての処理)
s41〜s46のループ処理により求まったテンプレートの変動量をサーチ画像座標系に逆変換し、s40の初期位置の元となったサーチ画像上の位置(粗サーチで求められた位置)に対して、逆変換した変動量を加え、サーチ画像上での最終位置を求める。
テンプレートデータとサーチ画像エッジデータは再度、入れ替える。
【0113】
(28)相関値計算(s48:対象物を正しく探し出したことを判定できる手段としての処理)
テンプレート特徴点のベクトル方向とサーチ画像上のエッジ点のベクトル方向との一致度の総和を算出する。相関値は、以下の式で求める。nは特徴点数、θはテンプレート特徴点のベクトル方向とサーチ画像上のエッジ点のベクトル方向との開き角を表わす。
【数3】
【0114】
<実施形態の効果>
画像処理装置10は、テンプレートMの特徴点Tを次位置に移動させる力の算出は直下のエネルギーベクトルを参照し、取得することができるので、総当りによる特徴点の対応付けが不要になり、処理時間を削減、高速で高精度な位置決めができる。
また、ループ処理において、テンプレートMの特徴点Tから外れ点、不安定な点を除くので、これらによる精度低下のリスクを軽減、処理時間を削減、高速で高精度な位置決めができる。
さらに、テンプレート上に不要な特徴点があったとしても、サーチ画像上で付近にエッジが存在しなければ、なんら作用しないので、テンプレートのロバスト性が向上、サーチ対象物の形状変動に柔軟な安定した位置決めができる。
【0115】
また、画像処理装置10では、棒状の部品など極端にエッジ勾配ベクトルの向きの出現頻度に差があるものは、出現頻度の低い方向について精度が落ちてしまっていたが、出現頻度にて重みを制御することで、その問題を解決している。また、画像エネルギーによる方式では、一致した特徴点はエネルギー最小の位置にあるので、まったく拘束されない。まだ、一致していない特徴点が受ける力がテンプレート全体に作用し、テンプレートは止まらずにさらに移動するので、画像エネルギーを用いる位置合わせの方式によりより対応力が向上している。
【0116】
また、画像処理装置10では、図18に示したループ制御テーブルの調整でタクト、精度を簡単に制御できるので、サーチ対象物に合わせたスペックの作りこみが容易にできる。サブピクセル位置のエネルギーベクトルの算出に速度重視の4隣接データの線形補間方式を用いた場合においても、1/10画素程度の繰り返し精度を得ることができる。
【0117】
また、画像処理装置10では、並列演算機構16を利用した高速フィルタ演算モジュールを実装することで、タクトの大半を占めるエッジ検出処理を高速化、高速で高精度な位置合わせを行うことができる。
【0118】
また、画像処理装置10では、テンプレート作成時にテンプレート画像について、画像エネルギー等の生成を行い、精サーチ処理は、テンプレート画像に対して行うことで、サーチ処理を高速化、高速で高精度な位置合わせを行える。
なお、テンプレート読み出し時にテンプレート画像について、画像エネルギー等の生成を行っても良い。
【0119】
また、画像処理装置10では、画像エネルギーを利用した精サーチ処理の前に、最小二乗法とテンプレート特徴点の重み制御を組み合わせ、動的に真値への収束を阻害する特徴点を削除でき、現在のサーチ画像にとってロバスト性の高い特徴点のみを抽出することで、形状のばらつきが大きな対象物や、ノイズ成分が多いサーチ画像においても高精度な位置合わせを行うことができる。
また、これにより、より収束しやすくなり、ループ回数が抑えられ、高速に結果を得ることが出来る。さらに、処理対象となる特徴点数が減り、高速に結果を得ることが出来る。
【符号の説明】
【0120】
10 画像処理装置
18 撮像画像演算機構(並列演算機構)
19 テンプレートデータ格納メモリ(テンプレート記憶部)
100 電子部品実装装置
【技術分野】
【0001】
本発明は、あらかじめサーチしたい対象物の形状パターンを登録しておき、回転、スケール、平行移動などの変動を受けた対象物をサーチ画像上から探索する画像処理装置に関するものである。
【背景技術】
【0002】
対象物をテンプレートとしてあらかじめ登録しておき、別途撮像した画像から探し出す方法としては、濃度値を比較する、正規化相関法を使用した濃度ベースのマッチング方法や、エッジ勾配などの形状情報を比較する、形状ベースのマッチング方法等がある。
【0003】
形状ベースのマッチング方法には、一般化ハフ変換や幾何学的ハッシング法などハフ変換をベースとした考え方のものが多い。これらは、画像データをベースに処理するので、基本的にはピクセル単位での処理であり、より精細な精度が求められるサブピクセル演算としては、最大相関位置周辺の画素位置の相関値分布について、ある間隔で離散的に求めた後、直線や放物線を当てはめてサブピクセルレベルのピーク位置を推定する方法が取られていた。
【0004】
図20にサブピクセル位置でのマッチング例を示す。これは、サブピクセル位置の画素濃度を周辺4近傍の整数位置の濃度から線形補間で求め、その補間濃度データを用いて、サブピクセル位置での濃度勾配ベクトルを求めるものである。このようにして、最大相関値の周辺の画素の相関値を用意する。
【0005】
次に図21にサブピクセルピークの推定例を示す。ここでは、パラボラフィッティングによる推定を記述している。最大相関値位置の前後の等間隔位置の2つのデータを加えた3つの相関値から記述の式により、真のピーク位置までのサブピクセル距離を算出することができる。
【0006】
一方、3次元モデル化の分野では、複数の方向から撮像して複数の画像を取得し、この複数の画像を同一座標系に位置合わせする処理として、ICP(Iterative Closest Point)法が知られている。(非特許文献1参照)
【0007】
ICP法では、2つの画像中の最近傍点を対応点として、この対応点間距離を最小化するような各画像の変換行列を求め、繰り返し計算によってその対応付けの精度を上げながら、相対位置を求めていく。
【0008】
図22にICP法の原理を簡単に示す。
(1)モデルを初期位置姿勢に配置
(2)モデルと計測点群の対応点を決定
(3)対応点間距離が最小になるようモデルの位置姿勢を変換
(4)モデルと計測点群の新たな対応点を決定
(5)以下、収束するまで繰り返す。
【0009】
このとき、2つの画像のそれぞれをテンプレート画像、サーチ画像とし、テンプレート画像内の特徴点について、サーチ画像上での対応点を見つける手法だとみなすと、上述のマッチング方法として応用できる。
【0010】
また、動的輪郭線モデルとエネルギー最小化の手法を用いて、輪郭線抽出を行なう技術としてSnakesがある(非特許文献2参照)。
画像内の対象物の輪郭線抽出処理は、位置決め処理とも考えることができ、上述のマッチング方法として応用できる。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】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
【非特許文献2】M.Kass,A.Witkin,and D.Terzopoulos, ”Snakes:Active Contour Models,” International Journal Computer Vision,vol.1,No.4,pp.321-331,Jan,1988..
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、ハフ変換のように投票空間を利用した手法をベースに、高精度化を行うと細かく分けた膨大なメモリ量の投票空間が必要になる、また投票空間を細かくすると、明確な投票ピークが出づらくなるなどの問題があった。
【0013】
また、図20に示した方法では実数演算を多用するので演算コストが膨大になる。さらに、その精度は、離散間隔にもよるが、パラボラフィッティングと組み合わせたとしてもせいぜい1/4画素程度であった。
【0014】
一方、ICP法をマッチング方法として応用しようとすると次のような問題がある。
ICP法におけるサーチ画像とテンプレート画像との対応付けはテンプレート画像の各特徴点と当該各特徴点に個々に対応するサーチ画像上の各エッジ点との距離の総和が最小になるテンプレート画像の位置を探すというものである。単純に考えると、特徴点とエッジ点の組み合わせ数の演算が必要でとても膨大な処理量になる。
K−D木を用いた高速な探索方式を組み合わせて使い、これらの処理量を軽減する手法もあるが、さらにエッジ点数が増えると、メモリ量の問題や、K−D木作成に時間がかかるという問題も発生する。
【0015】
さらには、図23に示すように、サーチ画像上に対象物の隠蔽物Bがある場合には、いくら探しても対応点が存在しない(以下このような点を外れ点とよぶ)。また、図24に示すように、ノイズNがサーチ画像上にある場合は、本当の対応点より近くにあるノイズNに対して対応付けしてしまう場合があった。
【0016】
このような間違った対応付けを含んだまま処理してしまうと、一気に収束の速度、精度が落ちてしまう。さらに、この対応付けはテンプレートの各特徴点について、サーチ画像上の各エッジ点との距離が最小になる点を探すというものである。単純に考えると、特徴点とエッジ点の組み合わせ数の演算が必要で計算量はnの2乗のオーダーとなり、エッジ点が増大するにつれ、とても膨大な時間を要する。
【0017】
また、図25に示すように、棒状の対象物など極端にエッジ勾配ベクトルの向きの頻度に差があるものは、頻度が低い方向について精度が落ちてしまう。
図25に示す形状の対象物は、その長手方向がx方向に沿っている場合、y方向のエッジ勾配ベクトルDyがx方向のエッジ勾配ベクトルDxに比べて極端に出現頻度(数量)が高くなる。このような対象物については、y方向のエッジ勾配ベクトルDyを持った特徴点について対応点が収束してしまうと、x方向のエッジ勾配ベクトルDxを持った特徴点の対応点間距離は、ある程度の大きさが残っていたとしても、全体の一致度合いから見ると、誤差のレベルになってしまい、まだ十分近づいていないにもかかわらず、収束条件を満たしてしまい、位置合わせが終了してしまう。
【0018】
本発明は、処理負担を軽減しつつサブピクセルレベルでの位置検出を高速で行う画像処
理装置を提供することをその目的とする。
また、ノイズ成分や形状の相違により処理が不安定にならないこと、ロバスト性を向上させることをさらに他の目的とする。
【課題を解決するための手段】
【0019】
請求項1記載の発明は、
探索の対象物の特徴点の座標を含むデータをあらかじめテンプレートとして記憶し、前記テンプレートのデータを用いて、対象物が撮像されたサーチ画像から任意の回転、スケール、平行移動の変動を受けた前記対象物を探索する画像処理装置において、
前記対象物のテンプレート画像の濃淡画像データ及び前記サーチ画像の濃淡画像データの少なくとも一方からエッジ画像を生成するエッジ画像生成手段と、
前記エッジ画像から画像エネルギーを生成する画像エネルギー生成手段と、
前記画像エネルギーから前記サーチ画像内の点及び前記テンプレートの特徴点の少なくとも一方が受ける移動ベクトルを算出する移動ベクトル算出手段と、
前記移動ベクトルを移動量に変換する移動量変換手段と、
前記移動ベクトルの総和が収束条件を満たすか否かにより前記テンプレートがサーチ画像上の対象物の位置に合致したことを判定する判定手段と、
前記判定手段が収束条件を満たすと判定した時の前記移動量から探索情報を求める探索情報取得手段とを備えることを特徴とする。
【0020】
請求項2記載の発明は、請求項1記載の発明と同様の構成を備えると共に、
前記判定手段が収束条件を満たすと判定するまで前記移動ベクトル算出手段と前記移動量変換手段と前記移動量に応じて、テンプレートとサーチ画像との相対位置を更新させる移動手段とがその処理を繰り返し行うことを特徴とする。
【0021】
請求項3記載の発明は、請求項2記載の発明と同様の構成を備えると共に、
前記移動ベクトル算出手段と前記移動手段との繰り返すサーチループ処理において、
前記移動量変換手段が、前記移動ベクトルを移動量に変換する際に、ループ回数が増えるたびに移動量を小さくする補正係数を乗算することを特徴とする。
【0022】
請求項4記載の発明は、請求項1から3のいずれか一項に記載の発明と同様の構成を備えると共に、
前記エッジ画像生成手段は前記対象物のテンプレート画像と前記サーチ画像の双方の濃淡画像データについてエッジ画像を生成し、
前記画像エネルギー生成手段は前記エッジ画像から画像エネルギーを生成し、
前記サーチ画像内で前記テンプレートをピクセル単位の誤差範囲で探索する粗サーチ手段と、
前記粗サーチの探索結果に基づいて前記テンプレートを前記サーチ画像の座標系に当て嵌めて、当該テンプレートの複数の特徴点に近似するエッジ点の中から複数の対応点を求める対応点取得手段と、
前記移動ベクトル算出手段が、前記複数の対応点を前記テンプレート画像の座標系に当て嵌めると共に、前記テンプレートの画像エネルギーから前記サーチ画像の対応点が受ける移動ベクトルを算出することを特徴とする。
【0023】
請求項5記載の発明は、請求項4記載の発明と同様の構成を備えると共に、
前記粗サーチ手段による探索後に、その探索結果に基づいて、前記特徴点と対応点の相互間距離である対応点間距離の二乗総和を求め、当該二乗総和が最小となる変換量で前記各特徴点を変換して新たな対応点を求めることで前記粗サーチ手段による探索結果を補正する補正手段を備えることを特徴とする。
【0024】
請求項6記載の発明は、請求項5記載の発明と同様の構成を備えると共に、
前記補正手段は、前記二乗総和が所定の収束条件を満たすまで前記各特徴点の変換と前記二乗総和の算出を繰り返し実行すると共に、その過程で前記対応点間距離が所定値以上となる場合或いは前記対応点間距離が減少しない特徴点については、外れ点として特定とすることを特徴とする。
【0025】
請求項7記載の発明は、請求項6記載の発明と同様の構成を備えると共に、
前記各特徴点について所定の重み付けを行うと共に、
前記補正手段は、前記二乗総和の算出を繰り返し実行する場合に、繰り返し回数が進むにつれて前記特徴点の参加数を段階的に増加させ、その際の特徴点の参加する優先順位を前記重み付けの重い順にすることを特徴とする。
【0026】
請求項8記載の発明は、請求項1から7のいずれか一項に記載の発明と同様の構成を備えると共に、
前記テンプレートとして、前記複数の特徴点の各々のエッジ勾配ベクトルを求め、勾配が所定範囲で共通するベクトル数である出現頻度を求めて、当該出現頻度数に応じて前記各特徴点について重み付けを行う第一の重み付け手段を備えることを特徴とする。
【0027】
請求項9記載の発明は、請求項1から8のいずれか一項に記載の発明と同様の構成を備えると共に、
前記テンプレートとして、前記複数の特徴点の各々のコーナー度を求め、当該コーナー度が高い特徴点について重み付けを重くして前記各特徴点の重み付けを行う第二の重み付け手段を備えることを特徴とする。
【0028】
請求項10記載の発明は、請求項1から9のいずれか一項に記載の発明と同様の構成を備えると共に、
フィルタ演算を行うための並列演算機構を備えることを特徴とする。
【0029】
請求項11記載の発明は、請求項1から10のいずれか一項に記載の発明と同様の構成を備えると共に、前記サーチ画像上の位置でテンプレートとの相関値を求め、サーチ画像上の対象物を正しく探し出したことを判定できる手段を設けたことを特徴とする。
【発明の効果】
【0030】
請求項1記載の発明は、濃淡画像データより得られる画像エネルギーを利用してテンプレートをサーチ画像上の対象物に位置合わせすることから、特徴点の対応付けが不要となり、従来技術に比べて少ない処理量によってサーチ画像上の対象物位置への移動量を求めることができ、その際の移動量からサーチ画像内の対象物を精度良く探索することが可能となる。
【0031】
請求項2記載の発明は、判定手段が収束条件を満たすと判定するまで移動ベクトル算出手段と移動手段とがその処理を繰り返し行うので、収束条件の制御により、精度レベルの制御が可能となる。例えば、収束条件を厳しくすることで繰り返し回数は多くなるが、より精度良く位置合わせをすることができる。
【0032】
請求項3記載の発明は、サーチループ処理において、ループ回数が増えるたびに小さくなる補正係数を乗算することにより、精度を保持したまま、収束を早くして処理の高速化を実現することが可能となる。
【0033】
請求項4記載の発明は、テンプレートの画像エネルギーを利用して対象物を探索することができるので、画像エネルギーの算出は探索時に限らず事前に行うことができるため、探索処理を迅速に行うことが可能となる。
【0034】
請求項5記載の発明は、補正手段を備えるので、粗サーチ手段による探索結果よりも精度の高い探索結果によって、より近傍で、かつ、より正確な対応点を用いて、テンプレートの画像エネルギーによる対応点の移動ベクトルの算出を行うことができ、より精度の高い探索を高速に行うことが可能となる。
【0035】
請求項6記載の発明は、特徴点の中から外れ点を特定することができるので、その後の処理について、外れ点を除いたり、重みを低減して扱う等の処理を行うことができ、処理の遅速化原因を除くことができ、探索処理の高速化を図ることが可能となる。
【0036】
請求項7記載の発明は、特徴点の参加数を段階的に増加させるので、収束の迅速化を図ることができ、なおかつ、重み付けに応じて特徴点の参加する優先順位を定めるので、探索精度を高く維持することができる。
【0037】
請求項8記載の発明は、勾配による出現頻度に応じて特徴点の重み付けを行うので、出現頻度が少ない方向について精度をより高めて探索を行うことが可能となる。
【0038】
請求項9記載の発明は、コーナー度の高い特徴点の重み付けをより高くするので、探索誤差を低減しより高い精度で探索を行うことが可能となる。
【0039】
請求項10記載の発明は、探索において処理負担の高いフィルタ処理に特化した並列演算機構を備えるので、当該フィルタ処理を高速で行うことができ、探索の迅速化を図ることが可能となる。
【0040】
請求項11記載の発明は、サーチ画像上の位置でテンプレートとの相関値を求めるので、サーチ画像上の対象物を正しく探し出したか否かの判定が可能となる。
【図面の簡単な説明】
【0041】
【図1】本実施の形態に係る電子部品実装装置の全体を示す平面図である。
【図2】電子部品実装装置の制御系を示すブロック図である。
【図3】テンプレート作成処理のフローチャートである。
【図4】コーナー度を計算する手法を示す説明図である。
【図5】局所領域のエッジ形状によってコーナー度が変わることを示す説明図である。
【図6】重心と特徴点上の重心法線と拡大縮小ベクトル、回転ベクトルの関係を示す図である。
【図7】重心法線ベクトルとエッジ勾配ベクトルの関係を示す図である。
【図8】図8(A)は濃淡画像における一定方向の濃度値、図8(B)は濃淡画像の微分によるエッジ画像のエッジ強さ、図8(C)は画像エネルギー、図8(D)は画像のエッジからの力、図8(E)はエッジから受ける単位あたりの移動量を示す線図である。
【図9】エッジ点における画像エネルギーによる引き寄せ力をボールに生じる重力に例えて説明したイメージ説明図である。
【図10】テンプレートにかかる力の様を示す説明図である。
【図11】図11(A)から図11(C)は画像エネルギーによりテンプレートがエッジ画像に対する位置合わせが行われる過程を示す説明図である。
【図12】サーチ処理のフローチャートである。
【図13】図12のフローチャートに対応したデータフロー図である。
【図14】撮像画像演算機構の構成図である。
【図15】二乗距離総和の参加数を定めたテーブルである。
【図16】最小二乗法による位置変換と変換後の対応点との関係を示す図である。
【図17】テンプレート上の任意の特徴点上における力の関係を示す図である。
【図18】ループ回数による移動量のリミットテーブルの図である。
【図19】テンプレートが毎回のループ処理において画像エネルギーに基づいて収束する状態を示す図である。
【図20】サブピクセル位置でのマッチング例を示す図である。
【図21】サブピクセルピークの推定例を示す図である。
【図22】ICP法の原理を簡単に示す図であり、図22(1)〜(4)の順で処理が行われる。
【図23】サーチ画像上に対象物の隠蔽物がある場合の例を示す図である。
【図24】サーチ画像上にノイズがある場合の例を示す図である。
【図25】エッジ勾配ベクトルの向きの頻度に差がある場合の例を示す図である。
【発明を実施するための形態】
【0042】
(発明の実施形態の全体構成)
本発明の実施形態について、図1乃至図19に基づいて説明する。本実施形態は、撮像画像内で探索対象物である電子部品を探索するための画像処理装置10が電子部品実装装置100に搭載され、後述する吸着ノズルに吸着された電子部品の位置を検出する目的に利用される場合の例を示している。
【0043】
(電子部品実装装置)
図1は電子部品実装装置100の平面図、図2は制御系を示すブロック図である。電子部品実装装置100は、基板に各種の電子部品の搭載を行うものであって、電子部品の搭載手段として、図1に示すように、搭載される電子部品を供給する複数の電子部品フィーダ101と、電子部品フィーダ101を複数並べて保持する電子部品供給部としてのフィーダバンク102と、一定方向に基板を搬送する基板搬送手段103と、当該基板搬送手段103による基板搬送経路の途中に設けられた基板に対する電子部品搭載作業を行うための搭載作業部104と、電子部品を吸着する吸着ノズル105を保持して電子部品の保持を行う部品保持手段としてのヘッド106と、ヘッド106を所定範囲内の任意の位置に駆動搬送するヘッド移動手段としてのX−Yガントリ107と、吸着ノズル105に吸着された電子部品の撮像を行う標準カメラ115及び高解像度カメラ116と、撮像位置に照明光を照射する照明装置117と、電子部品実装装置100の各構成に対して制御を行う制御装置120と、カメラ115,116の撮像画像から探索対象となる電子部品の探索処理を実行する画像処理装置10とを備えている。
画像処理装置10は、カメラ115,116による電子部品Cの撮像画像から正確な位置情報を求め、制御装置120に出力することでヘッド106の位置決め動作に反映させるために利用される。
標準カメラ115及び高解像度カメラ116はいずれもCCDカメラであり、搭載が行われる電子部品の電極サイズによって使い分けられるようになっている。以下の記載では、標準カメラ115が使用される前提で説明を行うこととする。
また、以下の説明において、水平面に沿って互いに直交する一の方向をX軸方向とし、他の方向をY軸方向とし、垂直上下方向をZ軸方向と称することとする。
【0044】
基板搬送手段103は、図示しない搬送ベルトを備えており、その搬送ベルトにより基板をX軸方向に沿って搬送する。
また、前述したように、基板搬送手段103による基板搬送経路の途中には、電子部品を基板へ搭載する搭載作業部104が設けられている。基板搬送手段103は、搭載作業部104まで基板を搬送すると共に停止して、図示しない保持機構により基板の保持を行う。つまり、基板は保持機構により保持された状態で安定した電子部品の搭載作業が行われる。
【0045】
ヘッド106は、その先端部で空気吸引により電子部品を保持する吸着ノズル105と、この吸着ノズル105をZ軸方向に駆動する駆動源であるZ軸モータ111と、吸着ノズル105を介して保持された電子部品をZ軸方向を中心として回転駆動させる回転駆動源であるθ軸モータ112とが設けられている。
また、各吸着ノズル105は負圧発生装置108に接続され、当該吸着ノズル105の先端部において吸気吸引を行うことにより電子部品の吸着及び保持が行われる。
つまりこれらの構造により、搭載作業時には、吸着ノズル105の先端部で所定の電子部品フィーダ101から電子部品を吸着し、所定位置で基板に向かって吸着ノズル105を下降させると共に吸着ノズル105を回転させて電子部品の向きの調整を行いつつ搭載作業が行われる。
また、前述した各カメラ115,116は、ベースフレーム114に搭載されており、X−Yガントリ107によりヘッド106が各カメラ115,116の位置決めされて撮像が行われるようになっている。
各カメラ115,116は、ベースフレーム114から上方に向けられた状態で保持されており、吸着ノズル105に吸着された電子部品Cを下方から撮像し、撮像画像を画像処理装置10に出力する。
【0046】
X−Yガントリ107は、X軸方向にヘッド106の移動を案内するX軸ガイドレール107aと、このX軸ガイドレール107aと共にヘッド106をY軸方向に案内する二本のY軸ガイドレール107bと、X軸方向に沿ってヘッド106を移動させる駆動源であるX軸モータ109と、X軸ガイドレール107aを介してヘッド106をY軸方向に移動させる駆動源であるY軸モータ110とを備えている。そして、各モータ109,110の駆動により、ヘッド106を二本のY軸ガイドレール107bの間となる領域のほぼ全体に搬送することを可能としている。
なお、各モータは、ぞれぞれの回転量が制御装置120に認識され、所望の回転量となるように制御されることにより、ヘッド106を介して吸着ノズル105や各カメラ115,116の位置決めを行っている。
また、電子部品の必要上、前記したフィーダバンク102,搭載作業部104とはいずれもX−Yガントリ107によるヘッド106の搬送可能領域内に配置されている。
【0047】
フィーダバンク102には、複数の電子部品フィーダ101がX軸方向に沿って羅列して載置装備される。
各電子部品フィーダ101は、後端部に電子部品が一列に並んで封止された部品テープのリール(図示略)が保持されており、部品テープはリールから電子部品フィーダ101の先端部(基板側の端部)の上側に設けられた部品受け渡し位置101aまで繰り出され、当該部品受け渡し位置101aにおいて吸着ノズル105により電子部品の吸着が行われるようになっている。
【0048】
制御装置120は、基板Kに搭載する電子部品Cのリスト、搭載順番、各電子部品の部品吸着位置(いずれの電子部品フィーダ101から受け取るか)及び基板Kにおける搭載位置等が定められた搭載プログラムを記録し、当該搭載プログラムに従ってX軸モータ109、Y軸モータ110及びZ軸モータ111を制御し、ヘッド106の位置決め制御を行う。また、この制御装置120は、吸着時の電子部品に対してθ軸モータ112を駆動して吸着ノズル105を回転させて角度修正制御を行い、X軸モータ109及びY軸モータ110により位置修正制御を行う。
かかる制御装置120は、電子部品Cの吸着ノズル105による吸着後に標準カメラ115又は高解像度カメラ116による撮像が行われ、当該撮像画像に基づいて画像処理装置10が求めた電子部品の正確な位置及び向きに基づいて電子部品Cの向きをθ軸モータ112により補正し、X軸モータ109及びY軸モータ110により搭載時のヘッド106による搭載位置を補正するようになっている。
【0049】
(画像処理装置)
画像処理装置10は、各カメラ115,116及びその照明装置117と画像処理装置全体を制御する制御部11と、各カメラ115,116の画像信号をデジタル化するA/D変換器12と、デジタル化された撮像画像データを記憶する画像メモリ13と、撮像画像データに基づいて電子部品の探索対象を探索するための画像処理を実行する演算部14と、画像処理や各部の制御において作業領域となる作業用メモリ15と、後述する各種フィルタ演算を高速で行う高速フィルタ演算モジュールである並列演算機構16と、画像処理装置10の制御部11が制御装置120とのデータ通信を行うインタフェース17と、画像データに対してエッジ検出処理を行う撮像画像演算機構18と、テンプレートデータを格納するテンプレートデータ格納メモリ19と、各種の処理を施された画像データをアナログ化してモニタ21に出力するD/A変換器20と、各種のテーブルを記憶するテーブルメモリ22とを備えている。
また、制御装置120は、通常、対象物のサイズによって、撮像するカメラ115又は116を選択し、対象物Cを吸着ノズル105で吸着し、選択したカメラ115又は116の撮像位置にセットする。さらに、照明装置117を選択したカメラ115又は116で撮像できるよう移動、点灯させ、画像処理装置10にインタフェース17を介して、選択したカメラチャネル情報とともに処理実行を指示する。画像処理装置10は、指定されたカメラ115又は116を制御し、対象物Cの画像を撮像し、A/Dコンバータ12でデジタル化し、画像メモリ13に多値画像データとして記憶する。
【0050】
(画像処理装置の行う処理の概要)
上記画像処理装置10は、電子部品の撮像画像から電子部品の探索処理を行うものである。
画像処理装置10では、テンプレートとなる対象物C(電子部品)を撮像してその基準画像データを画像メモリ13に格納し、当該画像データからなる濃淡画像を微分処理してエッジ画像のデータを取得し、さらにこのエッジ画像を反転させ、画像エネルギーのデータを取得する。さらに、画像エネルギーを微分しマイナスをかけた、画像のエッジからの力のデータを取得し、この画像のエッジからの力に係数をかけ、エッジから受ける単位あたりの移動量を取得する。画像エネルギー、画像のエッジからの力、エッジから受ける単位値の移動量の関係については後述する。
そして、テンプレートがサーチ画像上の任意の位置において受ける力を算出し、その力から重力、回転力、拡大縮小力を算出、そして各力から移動ベクトルを算出、さらに移動量に変換し、対象物の次ポジションを設定する。移動ベクトル総和にしきい値を設け、収束条件とする。エネルギー最小となる位置(サーチ画像上の対象物の位置)に辿り着くまで延々と処理を繰り返す。
【0051】
しかしながら、前処理として画像エネルギー、画像のエッジからの力、及びエッジから受ける単位あたりの移動量を生成しておかなければならないことは、タクトにおいてやはり問題となる。確かに、エッジ点数nが増大した場合、計算量がnの2乗のオーダーとなり、爆発的にタクトが増大する最小二乗法に比べて改善はされているが、エッジ点数が少ない場合は、画像エネルギー等を生成する時間がボトルネックとなり、最小二乗法の方が速い場合もある。エッジ位置の周辺のみ演算するなど演算領域を絞り込むことで低減はできるものの、粗サーチの検出精度に保証がないと、未演算部分を参照することになり、正しく処理できなくなるリスクも発生する。
従って、画像処理装置10では、予めテンプレートについて画像エネルギー、画像のエッジからの力、及びエッジから受ける単位あたりの移動量を算出しておき、サーチ画像内のエッジ点から対象物のモデルを作成してテンプレートに対して位置合わせを行うことで、探索処理の実行中に画像エネルギーの生成演算を行うことを回避している。
さらに、対象物のモデル作成時には、動的にノイズ成分や形状相違部分を削除し、テンプレートのロバスト性を向上させている。
【0052】
また、先に記載した通り、この方法において、高精度な位置決め結果を得るためには、エッジ勾配ベクトルの角度精度が高精度であることが必要である。
そのため、エッジ検出フィルタとして、フィルタサイズの大きなガウシアンフィルタを使用することが望ましい。
フィルタサイズは7×7〜15×15、係数はfloat変数となる。
これらのフィルタ演算を2回、画像全面にもれなくかけることが望ましい。
これらの処理は位置決め処理の大半を占めるが、高精度な結果を得るためには不可欠な処理である。これらの処理を高速に行うために、フィルタサイズに対応した撮影画像演算機構18(後述)を搭載している。
【0053】
さらに、画像エネルギーを用いて画像の位置合わせを行う手法は、「一致した特徴点はエネルギー最小の位置にあるので、逆にまったく拘束されない。」という特性を利用するが、この方法の利点であるが、欠点にもなり得る。
この特性のため、まだ、一致していない特徴点が受ける力がエッジ点全体に作用し、前述した図25のような極性のある対象物(例えば一方向に長い部品)でも長手方向に直交する方向について位置が一致した時点では止まらずにさらに長手方向についても移動して正確に位置合わせがおこなわれる。
【0054】
テンプレートに登録された対象物の形状とサーチ画像上にある対象物の形状が一致していれば、画像エネルギーの特性は利点となり、ピッタリの位置で収束するが、形状に相違がある場合、最もフィットした位置で止まらず、サーチループ処理において振動が発生する。このため、最大ループ回数となり処理が打ち切られるまで処理を繰り返すので、タクトは悪化、振動の振幅に依存して繰り返し精度も悪化する。
従って、画像処理装置10では、ループ回数が増えるにつれて、画像エネルギーから求まる重力及び回転力に対して係数が小さくなるように重み付けを行うこととしている。これにより、振動の発生を抑止し、収束時間の高速化を図っている。
【0055】
<テンプレート作成処理>
以下、画像処理装置10が行う対象物Cの探索処理を順を追って詳細に説明する。
まず、画像処理装置10では、探索を実行する前の準備段階(例えば、電子部品の実装作業を開始する前の段階)で、対象物Cのテンプレート作成を行う。かかるテンプレート作成について図3のフローチャートに基づいて説明する。
本発明の画像処理装置10を電子部品の位置決め、搭載を行う実装機に応用する場合、テンプレート作成は、実装作業時以外の機会で実行するものとし、作成作業には時間がかかっても構わない。テンプレートデータとして事前に準備しておける作業はすべてこのフェーズで行い、実装作業中に行われるサーチ処理を高速に行えるようにする。
【0056】
(1)撮像(s11)
画像処理装置10は、指定されたカメラ115もしくは116を制御し、基準姿勢の対象物Cの画像を撮像、A/Dコンバータ12でデジタル化し、画像メモリ13に基準画像データとして記憶させる。
【0057】
(2)エッジ検出処理(s12:エッジ画像生成手段としての処理)
撮像した基準画像についてエッジ検出処理を行う。
エッジは、ガウシアンフィルタなどのノイズ削除が行える平滑化効果を併せ持つ、エッジ検出フィルタをかけ、フィルタ出力結果に対して、しきい値処理等により検出する。
【0058】
テンプレート作成時は、タクトより、基準となるきれいな輪郭エッジがきちんととれるよう、きめ細かなエッジ検出パラメータ制御ができることを優先し、通常のソフト演算モジュールで処理する。このとき、高速化のために、2×2ロバーツフィルタをかけ、予めエッジ候補点を絞り込み、ガウシアンフィルタをかけるようにする。
また、エッジ検出パラメータによっては、並列演算機構16を用いた高速フィルタ演算モジュールで処理しても構わない。フィルタ出力結果は、作業用メモリ15に格納される。
【0059】
次に、フィルタ出力結果に対して、最小エッジ強さを定め、しきい値処理を行い、エッジ候補点を取得する。既に2×2ロバーツフィルタをかけて候補点を絞り込んでいる場合は、この処理はスキップして構わない。
次に、エッジ候補点の周辺のフィルタ出力値を調べ、非極大点を削除、細線化する。そして、残ったエッジ候補点をラベリング処理し、セグメント化する。
エッジセグメントの最大エッジ強さをそのセグメントの代表値として、セグメント別にしきい値処理を行い、エッジ点を検出する。
【0060】
(3)特徴抽出処理(s13)
s12で検出したエッジ点について、例えばHarrisやSUSANなど、コーナー抽出器を用いてコーナー度を計算する。計算結果は、各エッジ点の属性データとして、作業用メモリ15に格納される。
図4及び図5を用いてコーナー度について詳しく説明する。
コーナー度とは周辺領域との類似度である。ある点(x0,y0)を基準とする少領域Rと、そこから少しだけ動いた(x0+dx,y0+dy)を基準とする小領域Raを考える。(図4)
これら2つの領域の類似度は、以下の式で求めることができる。
【数1】
【0061】
様々な微小変位(dx,dy)のいずれに対しても、両領域が似ていなければ、類似度が低くなり、コーナー度は高くなる。
コーナー度が高いほど、対応付けがし易い点だといえる。例えば、図5のRAの領域は本来の位置からずれたとしても類似度は下がらない。また、RBの領域は領域内に唯一の辺方向(図5矢印の方向)以外にずれた場合は、類似度は下がるが、辺方向にずれた場合は、類似度は下がらない。一方、RCの領域はいずれの方向にずれたとしても類似度は下がる。すなわち、領域内により多数の方向のエッジを含んでいれば類似度は下がり、コーナー度は上がる。
【0062】
この評価値を用いて、特徴点の抽出、及び重み付けを行うことができる。
あるしきい値以上の値となる点について、特徴点として抽出し、抽出された特徴点の中で最大値のものを1、最小値のものを0として、0〜1の範囲で正規化し、重み値とする(第二の重み付け手段としての処理)。
【0063】
このようにコーナー度を用いて抽出した特徴点は粗サーチ時の特徴点の基準点として用いる、特別な特徴点である。
また、HarrisやSUSANなどのコーナー抽出器は、計算コストがかかるため、テンプレート作成時のように重み値の設定が必要な場合のみ使用するものとする。
粗サーチ時(後述するs24の場合)の通常の特徴点は、先に求めた基準点を始点、終点としたエッジセグメントについて折線近似法を適用、曲率の高いエッジ点を抽出し、追加する。
【0064】
精サーチ用(後述するs41〜s46の場合)の特徴点としては、高精度な位置決めを行うには、s12で検出したエッジ点はすべて利用すべきである。しかしながら、処理時間の短縮が必要な場合、例えばHarrisやSUSANなど、コーナー抽出器を用いてコーナーを検出し、コーナー間を等間隔に間引いて特徴点を設定する。
特徴点を間引く場合、エッジ点列の重心(エッジ点から構成される図形上の重心)が変わらないように間引く必要がある。各特徴点が受ける力の総和が重心にかかる力となる。特徴点の分布に偏りがあると重心にかかる力にも偏りが発生するので、サーチ画像中での対象物の探索時に収束位置がずれることがある。例えば、サーチ画像上の対象物の形状がテンプレートの形状と若干異なるような場合、分布が高い部分の一致度がより高くなるように収束することになり、全体としては位置がずれる。
逆に、特徴点に重み付けすることで一致度を高めたい部位を制御することも可能である。
精サーチ用の特徴点数は用途に合わせて、調整すべきである。
【0065】
(4)ベクトル向き出現頻度計算(s14:第一の重み付け手段としての処理)
s13で抽出した各特徴点について、そのエッジ勾配ベクトルの向き別に出現頻度を計算し、ヒストグラムを作成する。エッジ勾配ベクトルについて一定の角度範囲ごとに出現頻度を求め、それぞれの出現頻度の比に応じて、ベクトル向き別に重みを設定する。重みは出現頻度の比の逆数となるようにする。また、重み値は0〜1で表し、最小頻度の重み値が1となるように設定する。
例えば、出現頻度が 2:4:8:1であった場合、重み値は 0.5:0.25:0.125:1となる。
【0066】
(5)重み値初期値設定(s15)
画像処理装置10では、テンプレート作成時の特徴点の重み情報として、s13、s14で、それぞれ求めることができる2つの値が存在する。
これらの2つの重み値を掛け合わせ、1つの重み値として設定する。
【0067】
(6)テンプレートデータとして格納(s16)
画像処理装置10では、テンプレートデータとして、特徴点の座標、エッジ勾配ベクトル、そして重み値がテンプレートデータ格納メモリ19に格納される。テンプレートデータを外部メディアに出力する場合は、これらのデータのみが出力される。
これらテンプレートデータは、サーチ処理を高速に行うためのデータ形式(以降、内部処理用データという)にさらに展開する。テンプレートデータを外部メディアから読み込んだ場合も同様に、これらの展開処理が必要である。
内部処理用データへの展開処理とは、次のような処理となる。
(1)各特徴点の座標を重心を原点とする座標系に変換する。
(2)各特徴点の重心法線単位ベクトルの取得
【0068】
画像エネルギーを回転力と拡大縮小力に分解する際の基準となる方向は、特徴点とテンプレートの重心を結ぶ直線方向(以降、重心法線方向という)であり、この方向を示す単位ベクトルをあらかじめ計算しておくことで、サーチ処理時の処理を軽減、高速化が可能となる。
図6に重心と特徴点上の重心法線と拡大縮小ベクトル、回転ベクトルの関係を示す。また、図7に重心法線ベクトルとエッジ勾配ベクトルの関係を示す。これらの図において、Gは重心、Tは特徴点、gは平行移動ベクトル、hは拡大縮小ベクトル、vは回転ベクトル、Rdは重心−特徴点間距離、jは重心法線である。
平行移動ベクトルgは特徴点Tにおけるエッジ勾配ベクトルに平行であって当該特徴点Tが画像エネルギーから受ける力であって位置合わせのための移動力を示す。
拡大縮小ベクトルhは、平行移動ベクトルgの重心法線方向成分であり、テンプレートを拡大縮小させる力を示す。
回転ベクトルvは、平行移動ベクトルgの重心法線jに対する直交方向成分であり、この回転ベクトルvと重心−特徴点間距離Rdとの乗算値がテンプレートを回転させる力を示す。
【0069】
(7)画像エネルギー等の生成(s17:画像エネルギー生成手段としての処理)
濃淡画像、エッジ画像、画像エネルギー、画像のエッジからの力、エッジから受ける単位あたりの移動量の関係を図8に示す。
濃淡画像は、例えば、画面内の各画素位置における輝度値からなる画像データであり(図8(A))、当該濃淡画像を一定方向(例えばX方向)に沿って微分すると、エッジ勾配が強い部分がピークとなるエッジ画像が求まる(図8(B))。
これを上下逆さに反転させると、図9に示すようなエッジ点が底となる谷ができる。これが画像エネルギーである(図8(C))。
画像のエッジからの力は、画像エネルギーを微分してマイナスをかけることで求めることができる(図8(D)、以降、エネルギーベクトルと呼ぶ)。
さらにこのエッジからの力に係数をかけ、エッジから受ける単位あたりの移動量を求めることができる(図8(E))。
【0070】
例えば、図9に示すように、谷の端にボールを置いたとする。ボールは重力の影響で谷の勾配を下り、スピードを増しながら落ちていく。谷底であるエッジ点を通過し、対面の勾配を上る。
しかしながら、再び重力の影響を受け、ボールは谷の勾配のどこかで止まり、逆向きに下り始める。このような動作を繰り返しながら、徐々に振幅が小さくなり、ボールは谷から受けるエネルギーが最小となる谷底、つまりエッジ点に収束して止まる。
【0071】
画像処理装置10は、精サーチ処理である画像の位置決め処理として、画像エネルギーが最小となる位置を見つける処理を実行する。テンプレート上の各特徴点が画像から受けるエネルギーを算出し、それが最も小さくなる場所を少しずつテンプレートを移動させながら繰り返し、探し出す。
【0072】
図10にテンプレートにかかる力の様を示す。図10においてMはテンプレート、Cはサーチ画像の対象物、beはサーチ画像の対象物のエッジ点におけるエネルギーベクトルである。
サーチ画像の対象物Cのエッジ近傍には当該エッジに向かってくる方向(エッジ勾配ベクトル方向)を向いたエネルギーベクトルbeが存在している。
テンプレートMの各特徴点にはそれぞれ、直下の(特徴点を通過する)エネルギーベクトルbeの影響を受け、サーチ画像における近傍エッジに向かう力が発生する。これらの力の総和がテンプレート全体、すなわちテンプレートの重心Gにかかる力Fとなる。また、各特徴点における拡大縮小ベクトルhの総和がテンプレートM全体に対する拡大縮小力であり、各特徴点における回転ベクトルvの総和がテンプレートMの重心G回りの回転力となる。
テンプレートは図11(A)から(C)に推移するように徐々にサーチ画像の対象物の位置に近づいていき、やがて止まる。
【0073】
上記画像エネルギー等の生成は、テンプレート画像の濃淡画像に対してX方向とY方向とについて2階微分を行い、係数をかけ、それぞれの方向におけるエネルギーベクトルを直接求め、このデータのみを保存する。
これらの処理はサーチ処理の高速化のため、前処理として予め行っておく。
【0074】
<サーチ処理>
次に、テンプレートとサーチ画像における対象物との位置合わせ処理であるサーチ処理について図12のフローチャートに基づいて説明する。
図13は図12に対応したデータフロー図である。
サーチ処理におけるエッジ検出は、高速フィルタ演算モジュールを用いて行う。
さらに、画像データをピラミッド化し、上位階層のデータを用いて処理することで、さらなる高速化が可能となる。エッジ検出処理をサブピクセル化すれば、1階層上位のデータを用いても精度は同等レベルを保つことができる。
【0075】
(8)サーチ画像撮像(s21)
画像処理装置10は、指定されたカメラ115もしくは116を制御し、任意の姿勢の対象物Cの画像を撮像、A/Dコンバータ12でデジタル化し、画像メモリ13にサーチ画像データとして記憶させる(s11と同様)。
【0076】
(9)エッジ検出処理(s22)
撮像したサーチ画像は、画像メモリ13に記憶されると、撮像画像演算機構18でエッジ検出処理を行う。
図14は撮像画像演算機構18の構成図である。
M×Nで表わされるフィルタ係数処理を行う場合、並列演算機構としての撮像画像演算機構18は、(M×N)個のフィルタ係数格納メモリ31、フィルタ係数処理を行う1つの積算器32、フィルタ係数処理を行う(M−1)×N個の積和演算器33、フィルタ係数処理結果を格納数(M−1)×N個のデータバッファ器34、画像データの水平方向のフィルタ係数処理結果を格納数(N−1)個のラインバッファ器35、フィルタ係数処理後の積和データに対する絶対値演算器36、絶対値演算結果に対する除算器37、データバッファ器34とラインバッファ器35をコントロールするバッファコントローラ38から構成される。
【0077】
A/Dコンバータ12でデジタル化したサーチ画像は、プログレッシブ転送により画素毎に順次撮像画像演算機構18へ転送される。転送されたサーチ画像データは、フィルタ処理を行う積算器32と積和演算器33へ同時に入力される。
この時、積算器32と積和演算器33は順次接続される構成とし、前段の演算結果を取得できるようにする。各演算器32,33に入力された画像データとフィルタ係数格納メモリ31から読みだされた各フィルタ係数との演算を行う。
【0078】
この時、積和演算器33には加算データ入力に接続されたデータバッファ器34からのデータが入力され、積算結果に加算され、演算器33の出力に接続されたデータバッファ器34へ格納される。
データバッファ器34では、演算結果のデータと後段の演算器33で使用するデータの切り替えをバッファコントローラ38からのバッファコントロール信号を取得し行う。
【0079】
この時、演算器にはラインバッファ器35が接続されている場合がある。
ラインバッファ器35では、演算結果のデータと後段の演算器33で使用するデータの入出力を行う為、ディレイバッファを設ける。
バッファコントローラ38では、画像データのプログレッシブ転送に同期し、画素毎、垂直方向の管理を行い、各バッファのコントロールを行う。
【0080】
前述の演算を行うことによって、画像データの水平方向に対して、積和演算のフィルタ処理を行い、垂直方向に対してラインバッファ器35を介することによって、前ラインのデータを取得し、演算することが可能となる。
最終段のフィルタ演算結果に対して、絶対値演算器36、除算器37で演算することによってM×Nで表わされるフィルタ処理が完了する。
エッジ検出結果は、作業用メモリ15に格納される(s12と同様)。
【0081】
(10)特徴点抽出処理(s23)
s22で検出したエッジ点について、例えばHarrisやSUSANなど、コーナー抽出器を用いてコーナー度を計算する。計算結果は、各エッジ点の属性データとして、作業用メモリ15に格納される。コーナー度をs13と同様の処理で0〜1の値に正規化し、重み値とし、エッジ点の属性データとして保持しておく。タクトを優先する場合は、HarrisやSUSANなどのコーナー抽出器は、計算コストがかかるため、使用せず、重み値はすべて1に設定しておけばよい。
効果は弱まるが、サーチ画像のばらつき状況(形状相違、ノイズのレベル)とタクト、精度のトレードオフで選択すればよい。
【0082】
粗サーチ用の特徴点は、サーチ画像をラスタスキャンし、エッジセグメント毎に最初に当った箇所を始点とし、折線近似法を適用、曲率の高いエッジ点を抽出し、特徴点に追加する。
サーチ処理時には、精サーチ用の特徴点を抽出する必要はない。
【0083】
(11)粗サーチ(s24:粗サーチ手段としての処理)
画像エネルギーを用いた位置合わせ処理は、位置合わせを行うもの同士がある程度近くに存在しなければならず、適当な粗サーチ方法と組み合わせ、初期位置を設定しなければならない。
収束時間と精度は、初期位置の与え方に依存する。
±2画素程度の精度で初期位置を設定できれば、全く問題ない。
例えば、Geometrical Hashing 等を用いれば、対象部品の姿勢やスケールに関係なく、ほぼ同じタクトで位置決めが可能である。
【0084】
<モデル作成処理>
次にサーチ画像からのモデル生成処理について詳細に説明する。
最小二乗法のICP法をベースに、タクトが増大しないよう、粗サーチ用の特徴点を用いて行う。
この処理はモデル生成すると同時に粗サーチの位置決め結果の精度不足を補完する役割がある。
【0085】
(12)対応点を決定(s31:対応点取得手段としての処理)
テンプレートの粗サーチ用の特徴点について、それぞれ、自身との距離が最小となるサーチ画像上のエッジ点を抽出し、対応点とする。
サーチ画像のエッジ点データは、2−D木構造で管理し、高速に対応点の抽出が行えるようにする。また、このs31から後述するs37までは所定の収束条件を満たすまで繰り替えされるループ処理であり、対応点数はループ処理の繰り返し回数が進むにつれて段階的に増やしていく。ループ回数とテンプレートとの二乗距離総和により収束状態を判定し、位置合わせに使う対応点の数を設定する。
【0086】
二乗距離総和とは、各対応点間距離(特徴点とそれに対応する対応点との距離)を二乗し、足し合わせた値である。
この値が小さいほど、より真の位置(テンプレートとモデルの合致位置)に近づいている。
位置合わせの初期にはテンプレートの特徴点の中で、重み値が高い、つまり、間違えにくい特徴ある点(コーナーの点、例えば、図11の●)に絞り込んで少ない点数で処理を行い、高速化を図る。そして、位置が近づいてきたならば、処理点数を増やしていき(図18の●と▲)、高精度化を図る。)
【0087】
処理点数の設定は、例えば、図15に示すようなテーブルを参照することで行う。ループ回数、二乗距離総和をある間隔で段階分けし、それぞれの段階で何点参加させるかをあらかじめテーブル化してテーブルメモリ22に保持しておく。
例えば、図15のテーブルの例では、最大ループ回数を1000回までとしてループ回数を200回増えるごとに、或いは、二乗距離総和を2000pix以内として400pix減るごとに、特徴点の処理点数を段階的に増やすように設定されている。
【0088】
(13)最小二乗法による変換行列の算出(s32:補正手段としての処理)
図16において、Mがテンプレートであり、これを回転(R)、平行移動(T)したものをM1とした時、M1とサーチ画像上の形状であるCの二乗距離総和(Σ(m1i−ci)2)を最小にするR、Tを最小二乗法によって算出する。このとき、各対応点間距離は、実際の2点間距離(m1i−ci)に対して、サーチ画像上のエッジ点(ci)の重み値(コーナー度)と、テンプレートの特徴点(m1i)の重み値を掛けた値を用いる。
【0089】
(14)二乗距離総和、ループ回数を評価(s33)
s32で求めた変換行列で求まるテンプレート位置における対応点の二乗距離総和の算出結果が、予め決めておいたしきい値以下になったかどうかを判定する。この二乗距離総和のしきい値により精度を制御することができる。一般にしきい値を小さくすれば精度は上がる。
また、二乗距離総和がしきい値以下となっていない場合でも、ループ回数についても、無限ループに陥ることを防ぐため、予め決めておいた最大ループ回数を超えたかどうかを判定する。
【0090】
(15)収束条件成立判定(s34)
二乗距離総和がしきい値以下になるか、前回の処理と二乗距離総和が変わらないか、ループ回数が最大ループ回数を越えるかした場合、収束条件が成立し、処理ループを脱出してs38に処理を進める。
一方、二乗距離総和がしきい値以上で、かつループ回数が最大ループ回数以下の場合、s31からs37の処理を繰返し行う。
【0091】
(16)外れ点削除(s35)
収束条件をクリアしない場合には、外れ点の削除の処理を実行する。サーチ画像上に対応点がないテンプレートの特徴点を外れ点と呼ぶ。
このような点は、s31で示すような対応付けを行うと、間違った対応付けを行うため、位置合わせ処理に悪影響を及ぼす。このような点は、対応点間距離が大きい、もしくは、全体としては収束が進んでいるにもかかわらず、個別にみると対応点間距離が収束していないなどの特性がある。
【0092】
従って、予め個々の点についての対応点間距離のしきい値を決めておき、そのしきい値以上となるテンプレートの特徴点については、重み値を0とし、二乗距離総和の算出に使わないようにする。
また、このような状態がループ回数を重ねても続くときは、s31の対応付け処理からも除外するようにする。
【0093】
(17)点間距離を重み値に変換(s36)
対応点間距離がしきい値以内の点について、対応点間距離が0の場合、重み値を1、対応点間距離がしきい値の場合に重み値を0として、テンプレートの各特徴点について、対応点間距離を0〜1に正規化し、重み値とする。
【0094】
(18)重み値調整(s37)
s36で求めた重み値を、テンプレート作成時にコーナー度から求めた重み値に掛け、テンプレート特徴点の重み値を再設定する。このとき、テンプレートデータ格納メモリ10内において、重み値について降順になるよう特徴点を並び替えておく。即ち、s31では、ループ回数又は収束が進むと、特徴点数を段階的に増やして処理するので、重み値順に特徴点が並んでいると、重み値が大きいものから処理に加えられることとなる。
【0095】
(19)サーチ画像エッジよりモデルを作成(s38)
s31〜s37のループ処理を経ると、テンプレートの特徴点は重み値について降順、つまり対応の確からしさの順で並んでいる。
まず、重み値についてしきい値を設定し、対応付けが不安定であった特徴点を削除する。
例えば、重み値が0の特徴点を削除するようにすればよい。
こうして残った特徴点について、それぞれ、自身との距離が最小となるサーチ画像上のエッジ点を抽出し、これらのエッジ点を新たなテンプレートの特徴点として扱う。
【0096】
(20)サーチ画像座標系→テンプレート座標系変換(s40)
s38でサーチ画像エッジ点から作成した新たなテンプレートについて、サーチ画像上での粗サーチの位置決め結果をテンプレート座標系に変換し、初期位置を設定する。同時に、テンプレートデータ、サーチ画像エッジデータを入れ替える。
【0097】
(21)テンプレートが受ける力の算出(s41)
前述したように、図10にはサーチ画像のエネルギーベクトルとテンプレート、そしてテンプレートにかかる力の関係を示している。エネルギーベクトルは先に述べた通り、画像の濃度データをx、y方向それぞれに2階微分したもので、離散的な2次元ベクトルデータである。サーチ画像のエッジの近傍にエッジに向かうベクトルとして発生する。(以降、力場という)
【0098】
この力場にテンプレートを置いたとき、テンプレート上の各特徴点の直下のエネルギーベクトルから受ける力の総和がテンプレートが受ける力となる。
テンプレートを移動させるためには、テンプレートが受ける力をテンプレートの重心Gにかかる、重力、回転力、拡大縮小力の3つに整理する必要がある。
【0099】
重力Fは重心を平行移動させようとする力、回転力はテンプレートを重心を回転中心として回転させようとする力、拡大縮小力は、テンプレートの重心を拡大縮小中心として拡大縮小させようとする力である。
また、エネルギー場は画像データ同様、離散的なデータであるので、サブピクセル位置の値を求めるためには、いずれかの補間手法と組み合わせて実装する必要がある。
【0100】
速度を重視する場合は、隣接する4つのデータを用い、線形補間法を適用するのがよい。
精度を重視する場合は、ピークを求めたいサブピクセルずれ分ずらしたフィルタ係数を再設定して、エネルギーベクトルを再計算すればよい。
【0101】
(22)テンプレートが受ける力を移動ベクトルへ変換(s42:移動ベクトル算出手段としての処理)
図17にテンプレートM上の任意の特徴点T上における力の関係を示す。
ある特徴点は、サーチ画像上のエッジEの近傍にあるとき、力場から力を受け、エッジEに引き寄せられる。この力の内、その特徴点Tが受ける力は、その特徴点Tのテンプレート画像におけるエッジ勾配ベクトルbtの方向成分のみである。この力が重力、すなわち特徴点の平行移動ベクトルgである。なお、符号beは前述したエッジEにおけるエッジ勾配ベクトルである。
【0102】
特徴点T上の平行移動ベクトルgと拡大縮小ベクトルh、回転ベクトルvの関係は前述した図6の通りである。
特徴点Tの平行移動ベクトルgをその特徴点TとテンプレートMの重心Gを結ぶ直線(重心法線)方向を基準に垂直成分、水平成分に分解する。このときの垂直成分が拡大縮小ベクトルhであり、水平成分が回転ベクトルvである。
テンプレートM上の各特徴点Tについて、それぞれ各平行移動ベクトルgを算出し、さらに拡大縮小ベクトルh、回転ベクトルvを算出し、3つの移動ベクトルごとにその総和を求め、テンプレートMの移動ベクトルとする。
【0103】
(23)移動ベクトル総和、ループ回数を評価(s43:判定手段としての処理)
s42で求めた3つのベクトルg、h、vについて、その大きさを求め、足し合わせたものが移動ベクトル総和である。テンプレートMがサーチ画像上の対象物とピッタリ一致した場合、0となる。
この移動ベクトル総和に対して、予め決めておいたしきい値以下になったかどうかを判定する。
【0104】
また、s41〜s46の処理は所定の収束条件を満たすまで行われるループ処理である。かかる処理のループ回数についても、無限ループに陥ることを防ぐため、予め決めておいた最大ループ回数を超えたかどうかを判定する。移動ベクトル総和のしきい値により精度を制御することができる。一般にしきい値を小さくすれば精度は上がる。
【0105】
(24)収束条件判定(s44)
移動ベクトル総和がしきい値以下かつ、ループ回数が最大ループ回数以内の場合、収束条件が成立し、正常に位置合わせできたこととして、処理ループを脱出する。
また、移動ベクトル総和がしきい値以下でなくても、ループ回数が最大ループ回数を超えた場合は、処理ループを脱出する。これは、サーチ処理において、時間切れとなったことを意味する。
【0106】
どちらのルートで処理ループを脱出した場合も、その位置における相関値を計算し(s48)、相関値によって位置合わせが正常に完了したか否かは判定する。
また、移動ベクトル総和がしきい値以上で、かつループ回数が最大ループ回数以下の場合、s45に処理を進めて、s41からs46の処理を繰返し行う。
【0107】
(25)移動ベクトルを移動量に変換(s45:移動量変換手段としての処理)
移動ベクトル総和について収束条件を満たさない場合には、画像データ上でテンプレートを移動させるために、移動ベクトルを移動量に変換する。
平行移動、回転、拡大縮小毎に、さらに全体にと4つの補正係数を用意、下記の式を定義する。
【0108】
【数2】
m:平行移動量(単位:画素)、θ:回転角度(単位:rad)
scl:スケール変動量 単位:倍率(等倍のとき、1.0)
Γ:全体の補正係数(デフォルト値:0.2)
γg:平行移動の補正係数(デフォルト値:1.0)
γθ:回転の補正係数(デフォルト値:1.0)
γscl:拡大縮小の補正係数(デフォルト値:0.007)
g:平行移動ベクトル、v:回転ベクトル、h:拡大縮小ベクトル
Rd:重心−特徴点間距離
【0109】
ここで定義した補正係数により、サーチの精度、タクトを制御することができる。
補正係数を大きくすれば、1回のループ処理でのテンプレートの移動量が大きくなり、収束までの時間を短縮できる。但し、真値を通り過ぎ、振動するなど、精度が落ちるリスクがある。
また、補正係数を小さくすれば、1回のループ処理でのテンプレートの移動量は小さくなり、収束までに時間がかかる。但し、確実に真値に辿り着くことができる。
収束判定のしきい値を小さくし、合わせてこの補正係数を小さくすれば、より高精度なサーチが期待できる。
【0110】
タクトと精度を両立させるためには、サーチの初期段階は大きく、終了段階は小さく移動するように1回のループ移動量を制御すればよい。
サーチ画像上の対象物の大体のずれ量が既知の場合、図18に示すようなループ回数による移動量のリミットテーブルを作成し、移動量を制御することで、上記のようなタクトと精度を両立する実装が可能である。
なお、図18において、xは平行移動量mのx方向成分に対する補正係数であり、yは平行移動量mのy方向成分に対する補正係数であり、θは回転角度に対する補正係数である。これらの補正係数は、いずれも1以下であって、ループ回数の進行に応じて数値が小さくなるように設定される。
これにより、図19に示すように、テンプレートMが毎回のループ処理において、画像エネルギーに基づいて移動した場合に、エッジを通過して振動することなく、徐々にエッジに近づけることを可能とする。つまり、振動を回避して、タクトと精度とを両立することができる。なお、この図19に示すテーブルもテーブルメモリ22に格納されている。
【0111】
(26)テンプレートの移動(s46)
s45で求めた移動量に従い、テンプレートのカレント位置を更新する。
この位置更新によりテンプレートMは前述した図11(A)〜(C)のようにその位置が推移し、サーチ画像のエッジ近傍にある特徴点はエッジに引き寄せられ、徐々にサーチ対象と一致していく。
【0112】
(27)テンプレート座標系→サーチ画像座標系逆変換(s47:探索情報取得手段としての処理)
s41〜s46のループ処理により求まったテンプレートの変動量をサーチ画像座標系に逆変換し、s40の初期位置の元となったサーチ画像上の位置(粗サーチで求められた位置)に対して、逆変換した変動量を加え、サーチ画像上での最終位置を求める。
テンプレートデータとサーチ画像エッジデータは再度、入れ替える。
【0113】
(28)相関値計算(s48:対象物を正しく探し出したことを判定できる手段としての処理)
テンプレート特徴点のベクトル方向とサーチ画像上のエッジ点のベクトル方向との一致度の総和を算出する。相関値は、以下の式で求める。nは特徴点数、θはテンプレート特徴点のベクトル方向とサーチ画像上のエッジ点のベクトル方向との開き角を表わす。
【数3】
【0114】
<実施形態の効果>
画像処理装置10は、テンプレートMの特徴点Tを次位置に移動させる力の算出は直下のエネルギーベクトルを参照し、取得することができるので、総当りによる特徴点の対応付けが不要になり、処理時間を削減、高速で高精度な位置決めができる。
また、ループ処理において、テンプレートMの特徴点Tから外れ点、不安定な点を除くので、これらによる精度低下のリスクを軽減、処理時間を削減、高速で高精度な位置決めができる。
さらに、テンプレート上に不要な特徴点があったとしても、サーチ画像上で付近にエッジが存在しなければ、なんら作用しないので、テンプレートのロバスト性が向上、サーチ対象物の形状変動に柔軟な安定した位置決めができる。
【0115】
また、画像処理装置10では、棒状の部品など極端にエッジ勾配ベクトルの向きの出現頻度に差があるものは、出現頻度の低い方向について精度が落ちてしまっていたが、出現頻度にて重みを制御することで、その問題を解決している。また、画像エネルギーによる方式では、一致した特徴点はエネルギー最小の位置にあるので、まったく拘束されない。まだ、一致していない特徴点が受ける力がテンプレート全体に作用し、テンプレートは止まらずにさらに移動するので、画像エネルギーを用いる位置合わせの方式によりより対応力が向上している。
【0116】
また、画像処理装置10では、図18に示したループ制御テーブルの調整でタクト、精度を簡単に制御できるので、サーチ対象物に合わせたスペックの作りこみが容易にできる。サブピクセル位置のエネルギーベクトルの算出に速度重視の4隣接データの線形補間方式を用いた場合においても、1/10画素程度の繰り返し精度を得ることができる。
【0117】
また、画像処理装置10では、並列演算機構16を利用した高速フィルタ演算モジュールを実装することで、タクトの大半を占めるエッジ検出処理を高速化、高速で高精度な位置合わせを行うことができる。
【0118】
また、画像処理装置10では、テンプレート作成時にテンプレート画像について、画像エネルギー等の生成を行い、精サーチ処理は、テンプレート画像に対して行うことで、サーチ処理を高速化、高速で高精度な位置合わせを行える。
なお、テンプレート読み出し時にテンプレート画像について、画像エネルギー等の生成を行っても良い。
【0119】
また、画像処理装置10では、画像エネルギーを利用した精サーチ処理の前に、最小二乗法とテンプレート特徴点の重み制御を組み合わせ、動的に真値への収束を阻害する特徴点を削除でき、現在のサーチ画像にとってロバスト性の高い特徴点のみを抽出することで、形状のばらつきが大きな対象物や、ノイズ成分が多いサーチ画像においても高精度な位置合わせを行うことができる。
また、これにより、より収束しやすくなり、ループ回数が抑えられ、高速に結果を得ることが出来る。さらに、処理対象となる特徴点数が減り、高速に結果を得ることが出来る。
【符号の説明】
【0120】
10 画像処理装置
18 撮像画像演算機構(並列演算機構)
19 テンプレートデータ格納メモリ(テンプレート記憶部)
100 電子部品実装装置
【特許請求の範囲】
【請求項1】
探索の対象物の特徴点の座標を含むデータをあらかじめテンプレートとして記憶し、前記テンプレートのデータを用いて、対象物が撮像されたサーチ画像から任意の回転、スケール、平行移動の変動を受けた前記対象物を探索する画像処理装置において、
前記対象物のテンプレート画像の濃淡画像データ及び前記サーチ画像の濃淡画像データの少なくとも一方からエッジ画像を生成するエッジ画像生成手段と、
前記エッジ画像から画像エネルギーを生成する画像エネルギー生成手段と、
前記画像エネルギーから前記サーチ画像内の点及び前記テンプレートの特徴点の少なくとも一方が受ける移動ベクトルを算出する移動ベクトル算出手段と、
前記移動ベクトルを移動量に変換する移動量変換手段と、
前記移動ベクトルの総和が収束条件を満たすか否かにより前記テンプレートがサーチ画像上の対象物の位置に合致したことを判定する判定手段と、
前記判定手段が収束条件を満たすと判定した時の前記移動量から探索情報を求める探索情報取得手段とを備えることを特徴とする画像処理装置。
【請求項2】
前記判定手段が収束条件を満たすと判定するまで前記移動ベクトル算出手段と前記移動量変換手段と前記移動量に応じて、テンプレートとサーチ画像との相対位置を更新させる移動手段とがその処理を繰り返し行うことを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記移動ベクトル算出手段と前記移動手段との繰り返すサーチループ処理において、
前記移動量変換手段が、前記移動ベクトルを移動量に変換する際に、ループ回数が増えるたびに移動量を小さくする補正係数を乗算することを特徴とする請求項2記載の画像処理装置。
【請求項4】
前記エッジ画像生成手段は前記対象物のテンプレート画像と前記サーチ画像の双方の濃淡画像データについてエッジ画像を生成し、
前記画像エネルギー生成手段は前記エッジ画像から画像エネルギーを生成し、
前記サーチ画像内で前記テンプレートをピクセル単位の誤差範囲で探索する粗サーチ手段と、
前記粗サーチの探索結果に基づいて前記テンプレートを前記サーチ画像の座標系に当て嵌めて、当該テンプレートの複数の特徴点に近似するエッジ点の中から複数の対応点を求める対応点取得手段と、
前記移動ベクトル算出手段が、前記複数の対応点を前記テンプレート画像の座標系に当て嵌めると共に、前記テンプレートの画像エネルギーから前記サーチ画像の対応点が受ける移動ベクトルを算出することを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。
【請求項5】
前記粗サーチ手段による探索後に、その探索結果に基づいて、前記特徴点と対応点の相互間距離である対応点間距離の二乗総和を求め、当該二乗総和が最小となる変換量で前記各特徴点を変換して新たな対応点を求めることで前記粗サーチ手段による探索結果を補正する補正手段を備えることを特徴とする請求項4記載の画像処理装置。
【請求項6】
前記補正手段は、前記二乗総和が所定の収束条件を満たすまで前記各特徴点の変換と前記二乗総和の算出を繰り返し実行すると共に、その過程で前記対応点間距離が所定値以上となる場合或いは前記対応点間距離が減少しない特徴点については、外れ点として特定とすることを特徴とする請求項5記載の画像処理装置。
【請求項7】
前記各特徴点について所定の重み付けを行うと共に、
前記補正手段は、前記二乗総和の算出を繰り返し実行する場合に、繰り返し回数が進むにつれて前記特徴点の参加数を段階的に増加させ、その際の特徴点の参加する優先順位を前記重み付けの重い順にすることを特徴とする請求項6記載の画像処理装置。
【請求項8】
前記テンプレートとして、前記複数の特徴点の各々のエッジ勾配ベクトルを求め、勾配が所定範囲で共通するベクトル数である出現頻度を求めて、当該出現頻度数に応じて前記各特徴点について重み付けを行う第一の重み付け手段を備えることを特徴とする請求項1から7のいずれか一項に記載の画像処理装置。
【請求項9】
前記テンプレートとして、前記複数の特徴点の各々のコーナー度を求め、当該コーナー度が高い特徴点について重み付けを重くして前記各特徴点の重み付けを行う第二の重み付け手段を備えることを特徴とする請求項1から8のいずれか一項に記載の画像処理装置。
【請求項10】
フィルタ演算を行うための並列演算機構を備えることを特徴とする請求項1から9のいずれか一項に記載の画像処理装置。
【請求項11】
前記サーチ画像上の位置でテンプレートとの相関値を求め、サーチ画像上の対象物を正しく探し出したことを判定できる手段を設けたことを特徴とする請求項1から10のいずれか一項に記載の画像処理装置。
【請求項1】
探索の対象物の特徴点の座標を含むデータをあらかじめテンプレートとして記憶し、前記テンプレートのデータを用いて、対象物が撮像されたサーチ画像から任意の回転、スケール、平行移動の変動を受けた前記対象物を探索する画像処理装置において、
前記対象物のテンプレート画像の濃淡画像データ及び前記サーチ画像の濃淡画像データの少なくとも一方からエッジ画像を生成するエッジ画像生成手段と、
前記エッジ画像から画像エネルギーを生成する画像エネルギー生成手段と、
前記画像エネルギーから前記サーチ画像内の点及び前記テンプレートの特徴点の少なくとも一方が受ける移動ベクトルを算出する移動ベクトル算出手段と、
前記移動ベクトルを移動量に変換する移動量変換手段と、
前記移動ベクトルの総和が収束条件を満たすか否かにより前記テンプレートがサーチ画像上の対象物の位置に合致したことを判定する判定手段と、
前記判定手段が収束条件を満たすと判定した時の前記移動量から探索情報を求める探索情報取得手段とを備えることを特徴とする画像処理装置。
【請求項2】
前記判定手段が収束条件を満たすと判定するまで前記移動ベクトル算出手段と前記移動量変換手段と前記移動量に応じて、テンプレートとサーチ画像との相対位置を更新させる移動手段とがその処理を繰り返し行うことを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記移動ベクトル算出手段と前記移動手段との繰り返すサーチループ処理において、
前記移動量変換手段が、前記移動ベクトルを移動量に変換する際に、ループ回数が増えるたびに移動量を小さくする補正係数を乗算することを特徴とする請求項2記載の画像処理装置。
【請求項4】
前記エッジ画像生成手段は前記対象物のテンプレート画像と前記サーチ画像の双方の濃淡画像データについてエッジ画像を生成し、
前記画像エネルギー生成手段は前記エッジ画像から画像エネルギーを生成し、
前記サーチ画像内で前記テンプレートをピクセル単位の誤差範囲で探索する粗サーチ手段と、
前記粗サーチの探索結果に基づいて前記テンプレートを前記サーチ画像の座標系に当て嵌めて、当該テンプレートの複数の特徴点に近似するエッジ点の中から複数の対応点を求める対応点取得手段と、
前記移動ベクトル算出手段が、前記複数の対応点を前記テンプレート画像の座標系に当て嵌めると共に、前記テンプレートの画像エネルギーから前記サーチ画像の対応点が受ける移動ベクトルを算出することを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。
【請求項5】
前記粗サーチ手段による探索後に、その探索結果に基づいて、前記特徴点と対応点の相互間距離である対応点間距離の二乗総和を求め、当該二乗総和が最小となる変換量で前記各特徴点を変換して新たな対応点を求めることで前記粗サーチ手段による探索結果を補正する補正手段を備えることを特徴とする請求項4記載の画像処理装置。
【請求項6】
前記補正手段は、前記二乗総和が所定の収束条件を満たすまで前記各特徴点の変換と前記二乗総和の算出を繰り返し実行すると共に、その過程で前記対応点間距離が所定値以上となる場合或いは前記対応点間距離が減少しない特徴点については、外れ点として特定とすることを特徴とする請求項5記載の画像処理装置。
【請求項7】
前記各特徴点について所定の重み付けを行うと共に、
前記補正手段は、前記二乗総和の算出を繰り返し実行する場合に、繰り返し回数が進むにつれて前記特徴点の参加数を段階的に増加させ、その際の特徴点の参加する優先順位を前記重み付けの重い順にすることを特徴とする請求項6記載の画像処理装置。
【請求項8】
前記テンプレートとして、前記複数の特徴点の各々のエッジ勾配ベクトルを求め、勾配が所定範囲で共通するベクトル数である出現頻度を求めて、当該出現頻度数に応じて前記各特徴点について重み付けを行う第一の重み付け手段を備えることを特徴とする請求項1から7のいずれか一項に記載の画像処理装置。
【請求項9】
前記テンプレートとして、前記複数の特徴点の各々のコーナー度を求め、当該コーナー度が高い特徴点について重み付けを重くして前記各特徴点の重み付けを行う第二の重み付け手段を備えることを特徴とする請求項1から8のいずれか一項に記載の画像処理装置。
【請求項10】
フィルタ演算を行うための並列演算機構を備えることを特徴とする請求項1から9のいずれか一項に記載の画像処理装置。
【請求項11】
前記サーチ画像上の位置でテンプレートとの相関値を求め、サーチ画像上の対象物を正しく探し出したことを判定できる手段を設けたことを特徴とする請求項1から10のいずれか一項に記載の画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2012−48593(P2012−48593A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−191661(P2010−191661)
【出願日】平成22年8月30日(2010.8.30)
【出願人】(000003399)JUKI株式会社 (1,557)
【出願人】(304023318)国立大学法人静岡大学 (416)
【Fターム(参考)】
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願日】平成22年8月30日(2010.8.30)
【出願人】(000003399)JUKI株式会社 (1,557)
【出願人】(304023318)国立大学法人静岡大学 (416)
【Fターム(参考)】
[ Back to top ]