(57)【要約】【課題】ピラミッド構造データを使用したテンプレートマッチングを高速化することが可能な方法及び装置を提供する。【解決手段】対象物の低解像度の画像１１ｃとそのテンプレート画像１１ｃ’とのマッチング演算を開始し（状態Ａ）、所定のマッチング結果が得られたときに（状態Ｃ）、高解像度の画像１１ｂとそのテンプレート１１ｂ’とのマッチング演算も開始し、両マッチング演算を並列させてテンプレートマッチングを行う（状態Ｄ）。このような構成では、解像度の低い画像に対する下位の階層でのマッチングにおいて、所定値以上の相関値が得られマッチングが成功すると、その階層でのマッチングを続けながら、それより解像度の高い画像に対する上位の階層でのマッチングも並列して行うことができ、下位の階層でのマッチングの終了を待って上位の階層でのマッチングを開始するのに比較して、高速なテンプレートマッチングが可能となる。【選択図】  図４
2004362186.tif 000002
【特許請求の範囲】
【請求項１】
対象物の低解像度の画像と高解像度の画像を、それぞれ低解像度画像用テンプレートと高解像度画像用テンプレートを用いてテンプレートマッチングを行うテンプレートマッチング方法において、
低解像度画像用テンプレートによるマッチング演算を開始し、
前記マッチング演算から所定のマッチング演算結果が得られたときに、高解像度画像用テンプレートによるマッチング演算を開始し、その後、低解像度画像用テンプレートと高解像度画像用テンプレートによる両マッチング演算を並列して行いテンプレートマッチングすることを特徴とするテンプレートマッチング方法。
【請求項２】
マッチング演算を並列して行っているときに、さらに、低解像度画像用テンプレートによるマッチング演算から所定のマッチング演算結果が得られたときは、高解像度画像用テンプレートによるマッチング演算が終了後、該マッチング演算結果に基づき、高解像度画像用テンプレートによるマッチング演算を再開することを特徴とする請求項１に記載のテンプレートマッチング方法。
【請求項３】
対象物の低解像度の画像と高解像度の画像を、それぞれ低解像度画像用テンプレートと高解像度画像用テンプレートを用いてテンプレートマッチングを行うテンプレートマッチング装置において、
低解像度画像用テンプレートによるマッチング演算を行う低解像度画像用マッチング演算手段と、
高解像度画像用テンプレートによるマッチング演算を行う高解像度画像用マッチング演算手段と、
前記低解像度画像用マッチング演算手段によるマッチング演算から所定のマッチング演算結果が得られたときに、高解像度画像用マッチング演算手段を起動し、低解像度画像用テンプレートと高解像度画像用テンプレートによる両マッチング演算が並列して行われるように、低解像度画像用マッチング演算手段と高解像度画像用マッチング演算手段を制御するマッチング制御手段と、
を有することを特徴とするテンプレートマッチング装置。
【請求項４】
前記マッチング制御手段は、マッチング演算を並列して行っているときに、さらに、低解像度画像用テンプレートによるマッチング演算から所定のマッチング演算結果が得られたときは、高解像度画像用テンプレートによるマッチング演算が終了後、該マッチング演算結果に基づき、高解像度画像用テンプレートによるマッチング演算を再開させる制御を行うことを特徴とする請求項３に記載のテンプレートマッチング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テンプレートマッチング方法及び装置、さらに詳細には、対象物の低解像度の画像と高解像度の画像を、それぞれ低解像度画像用テンプレートと高解像度画像用テンプレートを用いてテンプレートマッチングを行う、ピラミッド構造データを使用したテンプレートマッチング方法及び装置に関する。
【０００２】
【従来の技術】
従来から、フィーダーから供給される部品をヘッド部で吸着し、その部品を所定の基板上に搭載する部品実装機が知られている。このような部品実装機では、吸着した部品をＣＣＤカメラで撮影し、その画像を処理して部品の位置（姿勢）を認識し、部品位置の補正をしてから搭載を行い、搭載精度を向上させている。このような部品の認識のために、撮影された画像の中から部品の画像がどの位置にあるかを知るために、撮影画像全体に対してテンプレート画像（部品の基準画像）を１画素づつずらしながらテンプレート画像と撮影画像との対応領域の相関値を計算してマッチングを行なうテンプレートマッチングが知られている。
【０００３】
このようなテンプレートマッチングでは膨大な計算量が必要となり、多大な処理時間を要するので、処理を高速化する方法として、ピラミッド構造データを用いたテンプレートマッチング方法が知られている。この方法は、撮影画像とテンプレート画像を縮小し、縮小された画像間においてテンプレートマッチングを実行することによりおおまかなマッチング位置を求め、その後、順に縮小率を下げながら、前の処理で求めたマッチング位置によりその近傍に限定された領域内で詳細なテンプレートマッチングを行なうものであり、例えば、原画像に対して解像度を落とした解像度の異なる画像を複数用意し、一番解像度の低い画像からテンプレート画像でマッチングして、所定のしきい値以上の一致度を持つ候補点を複数見つけ、次に二番目に解像度の低い画像で前回の候補点付近をマッチングして、ここでも所定のしきい値以上の複数の候補点を見つけ、これを繰り返して最終的に原画像で候補点付近をマッチングして一致度の一番高い点をマッチング結果としている（特許文献１）。
【０００４】
【特許文献１】
特開平１０−２１３８９号公報（請求項１）
【０００５】
【発明が解決しようとする課題】
しかしながら、従来のピラミッド構造データを用いたテンプレートマッチング方法では、マッチング演算モジュールが１つしかないために、１枚の画像に対して画像全体をマッチングし終わらないと、次に解像度の高い画像の候補点を探せないため、高速化ができない、という問題があった。
【０００６】
本発明は、このような問題点を解決するためになされたもので、簡単な構成でピラミッド構造データを使用したテンプレートマッチングを高速化することか可能なテンプレートマッチング方法及び装置を提供することを課題とする。
【０００７】
【課題を解決するための手段】
本発明は、上記課題を解決するために、
対象物の低解像度の画像と高解像度の画像を、それぞれ低解像度画像用テンプレートと高解像度画像用テンプレートを用いてテンプレートマッチングを行うテンプレートマッチング方法において、
低解像度画像用テンプレートによるマッチング演算を開始し、
前記マッチング演算から所定のマッチング演算結果が得られたときに、高解像度画像用テンプレートによるマッチング演算を開始し、その後、低解像度画像用テンプレートと高解像度画像用テンプレートによる両マッチング演算を並列して行いテンプレートマッチングする構成を採用している。
【０００８】
また、本発明では、
対象物の低解像度の画像と高解像度の画像を、それぞれ低解像度画像用テンプレートと高解像度画像用テンプレートを用いてテンプレートマッチングを行うテンプレートマッチング装置において、
低解像度画像用テンプレートによるマッチング演算を行う低解像度画像用マッチング演算手段と、
高解像度画像用テンプレートによるマッチング演算を行う高解像度画像用マッチング演算手段と、
前記低解像度画像用マッチング演算手段によるマッチング演算から所定のマッチング演算結果が得られたときに、高解像度画像用マッチング演算手段を起動し、低解像度画像用テンプレートと高解像度画像用テンプレートによる両マッチング演算が並列して行われるように、低解像度画像用マッチング演算手段と高解像度画像用マッチング演算手段を制御するマッチング制御手段とを備える構成も採用している。
【０００９】
このような構成では、低解像度の画像に対するマッチングが成功すると、そのマッチングを継続させながら、それより高解像度の画像に対するマッチングも並列して行われるので、ピラミッド構造データを使用するテンプレートマッチングを高速化することが可能となる。
【００１０】
【発明の実施の形態】
以下、図面に示す実施の形態に基づいて本発明を詳細に説明する。
【００１１】
図１には、対象物１１を、ＣＣＤカメラ１０で撮像し、その対象物の画像を認識する画像認識回路１２が図示されている。対象物１１は、例えば、部品供給装置から供給され部品実装機で基板上に搭載される電子部品であるが、このような電子部品に限定されず、工場における組み立てや検査工程で組み立てられ、あるいは検査される部品など、カメラなどで撮影されその位置が認識される対象物など一般的な対象物も含むものである。
【００１２】
画像認識回路１２は、ＣＣＤカメラ１０で撮影された対象物の画像を圧縮する画像圧縮回路１７、対象物１１の画像並びに圧縮された画像を格納する画像メモリ１３、対象物の基準画像となるテンプレート画像を格納するテンプレートメモリ１４、テンプレートによるマッチング演算を行うマッチング演算モジュール（マッチング演算手段）１５、それにマッチング演算モジュール１５を制御するマッチングコントローラ（マッチング制御手段）１６などから構成される。
【００１３】
画像認識回路１２の詳細な構成が図２に図示されており、本発明では、ピラミッド構造データを用いたテンプレートマッチングを行うので、カメラ１０で取り込んだ対象物の画像が、画像圧縮回路１７を用いて圧縮され、例えば、１／４と１／１６の圧縮画像が形成されて、それが画像メモリ１３に格納される。そのために、画像メモリ１３は、カメラ１０から入力された対象物の原画像（非圧縮画像）を格納する画像メモリ１３ａと、面積比で１／４に圧縮した原画像より解像度の低い画像を格納する画像メモリ１３ｂと、原画像並びに１／４圧縮画像より解像度の低い、面積比で１／１６に圧縮した画像を格納する画像メモリ１３ｃから構成されている。
【００１４】
原画像、１／４圧縮画像、それに１／１６圧縮画像は、ピラミッド構造データとなり、それに対応して原画像のテンプレート画像を格納するテンプレートメモリ１４ａ、原画像のテンプレート画像を１／４に圧縮して得られるテンプレート画像を格納するテンプレートメモリ１４ｂ、原画像のテンプレート画像を１／１６に圧縮して得られるテンプレート画像を格納するテンプレートメモリ１４ｃが設けられ、また、マッチング演算モジュール１５も、原画像に対してマッチング演算を行うマッチング演算モジュール１５ａ、１／４圧縮画像に対してマッチング演算を行うマッチング演算モジュール１５ｂ、１／１６圧縮画像に対してマッチング演算を行うマッチング演算モジュール１５ｃが設けられる。
【００１５】
マッチングコントローラ１６は、各マッチング演算モジュール１５ａ〜１５ｃにマッチング命令を出力し、各マッチング演算モジュールからのマッチング結果を受信し各マッチング演算モジュールを制御する。マッチング演算モジュール１５ａ〜１５ｃは、マッチングコントローラ１６からの演算命令によって、画像メモリ１３ａ〜１３ｃ、テンプレートメモリ１４ａ〜１４ｃを参照してマッチング演算を行い、演算結果をマッチングコントローラ１６に返す。
【００１６】
このような構成により、ピラミッド構造の階層化が行われ、画像メモリ１３ａ、テンプレートメモリ１４ａ、マッチング演算モジュール１５ａにより階層１が形成され、画像メモリ１３ｂ、テンプレートメモリ１４ｂ、マッチング演算モジュール１５ｂにより階層２が形成され、画像メモリ１３ｃ、テンプレートメモリ１４ｃ、マッチング演算モジュール１５ｃにより階層３が形成される。
【００１７】
以下、図２に示すマッチング装置の構成で、ピラミッド構造データを使用するマッチングがどのように行われるかを説明する。
【００１８】
以下の説明中でマッチングコントローラ１６は、各階層１〜３でのマッチングが開始されたらそのマッチング範囲が終了するまで、その階層のマッチング演算モジュール１５ａ〜１５ｃに演算命令を出力するものとする。
【００１９】
また、画像メモリ１３ａには、図４に示したように、円形な対象物１１の原画像１１ａ、それにごみなどの異物の画像２０ａが撮像されて各画像が格納されており、また画像メモリ１３ｂ、１３ｃには、その１／４、１／１６に圧縮された対象物の画像１１ｂ、１１ｃ並びに異物の画像２０ｂ、２０ｃが格納されているとする。また、テンプレートメモリ１４ａ〜１４ｃには、対象物１１の各圧縮率に対応した基準画像（テンプレート画像）１１ａ’〜１１ｃ’が格納されているとする。
【００２０】
まず、マッチングコントローラ１６は、図３のステップＳ１において、一番解像度の低い階層３でマッチングを開始するようにマッチング演算モジュール１５ｃに命令を出力する。これにより、画像メモリ１３ｃに格納されている１／１６に圧縮された一番解像度の低い画像と、テンプレートメモリ１４ｃに格納されている１／１６圧縮の低解像度画像用テンプレート（画像）とのマッチングが開始され、マッチング演算モジュール１５ｃにより、このテンプレートによるマッチング演算が開始される。
【００２１】
階層３でのテンプレートマッチングは、テンプレートメモリ１４ｃでの画像１１ｃ’を含む全画像領域をマッチング枠（テンプレート）３０として、このマッチング枠３０を、画像メモリ１３ｃ上で移動させてマッチング演算を行うことになるので、ステップＳ１でマッチングが開始されると、図４の状態Ａで示したように、マッチング枠３０の左上角が画像メモリ１３ｃの左上角に合わせた状態から、マッチング枠が画素ごとに右方向に移動され、そのラインの移動が終わると、マッチング枠が次のラインに沿って画素ごとに移動し、その動作を繰り返してマッチング枠がメモリ画像の終端まで移動したときにマッチング演算が終了する。
【００２２】
このようなマッチング枠の移動ごとに、マッチング演算モジュール１５ｃは、テンプレート画像１１ｃ’と対象物の画像１１ｃとのマッチング演算を行い、マッチング演算結果（相関値）を出力する。所定のマッチング演算結果が得られない場合には、ステップＳ２の判断が否定され、ステップＳ６に進む。ここでは、まだ所定のマッチング演算結果が得られていないので、そのステップＳ６の判断が否定され、またステップＳ８の判断も否定されるので、階層３でのマッチング演算が継続される。例えば、異物の画像２０ｃがスキャンされても所定の相関値が得られないので、状態Ｂのように、階層３でのマッチングが継続する。
【００２３】
マッチングが進んで、図４の状態Ｃのように、マッチング枠３０が中央位置に進み、テンプレート画像１１ｃ’と対象物の画像１１ｃがほぼ一致するようになると、相関値が所定のしきい値より大きくなり、所定のマッチング演算結果が得られるので、ステップＳ２の判断が肯定される。このとき、階層２でのマッチングはまだ行われていないので、ステップＳ３の判断が否定され、ステップＳ４で階層２でのマッチングが開始される。この状態が図４の状態Ｄに図示されている。
【００２４】
階層２でのマッチング開始時のマッチング枠３０’（テンプレートメモリ１４ｂの全画像領域に対応し、階層２でのテンプレートとなる）の位置は、マッチング枠３０’の左上角が画像メモリ１３ｂの左上角と一致する初期位置ではなく、所定の画素並びにライン分進んだ位置に設定される。具体的には、階層３でのマッチング演算結果が所定のしきい値以上になる状態Ｃでのマッチング枠３０の位置に対応するマッチング枠３０’の位置より所定画素分左並びに上に戻った位置で、初期位置までは戻らない位置に設定される（階層２の状態Ｄ）。
【００２５】
状態Ｄからは、マッチングコントローラ１６は、マッチング演算モジュール１５ｃのほかに、マッチング演算モジュール１５ｂにもマッチング演算命令を出力するので（ステップＳ４）、テンプレートメモリ１４ｃに格納された低解像度画像用テンプレートと、テンプレートメモリ１４ｂに格納されたそれより高解像度画像用テンプレートによる両マッチング演算が並列して行われ、階層３と２でのマッチングが並列して行われるようになる。この階層２でのマッチングの流れがステップＳ１１からＳ１８で図示されており、各ステップは階層３でのステップＳ１からＳ１８に対応している。
【００２６】
階層３と２でマッチングが並列して行われている過程で、さらに、階層３でのマッチング演算結果が所定のしきい値以上になると、ステップＳ２、Ｓ３の判断が肯定され、ステップＳ５でマッチング演算結果が保存される。このとき、マッチングコントローラ１６は、階層２でのマッチング演算が終了するまで、階層３でのマッチングを中断するように、マッチング演算モジュール１５ｃを制御する。
【００２７】
階層２でのマッチングが終了すると、マッチング演算モジュール１５ｂが未使用となり、このとき上記マッチング演算結果が保存されているので、ステップＳ６の判断が肯定され、マッチングコントローラ１６は、再びマッチング演算モジュール１５ｂに演算命令を出力し、保存してある階層３でのマッチング演算結果に基づき階層２でのマッチング演算を再開させ、保存されているマッチング演算結果をクリアする（ステップＳ７）。この階層２でのマッチング再開位置は、保存したマッチング演算結果に依存し、所定のマッチング演算結果が得られたときのマッチング枠３０の位置に対応するマッチング枠３０’の位置より所定画素分左並びに上に戻った位置で、最初のマッチング枠３０’のマッチング開始位置（図４の状態Ｄで示したマッチング枠３０’の位置）までは戻らない位置に設定される。その後は、上述したような階層３と２での並列したマッチング演算が行われる。
【００２８】
このように、解像度の低い階層でのマッチング演算結果が再度所定のしきい値以上になる場合には、解像度の高い階層でのマッチングが再度行われるので、より確実なテンプレートマッチングが可能となる。
【００２９】
一番解像度の低い階層３（画像圧縮率１／１６）と次に解像度の高い階層２（画像圧縮率１／４）でのマッチングの関係は、階層２とそれより解像度の高い階層１（画像圧縮率１／１で原画像）でのマッチングとの関係と同じであり、階層２で所定のマッチング演算結果が得られると、マッチングコントローラ１６は、マッチング演算モジュール１５ａにも演算命令を出力するので（ステップＳ１４）、階層３、２、１での３つのマッチング演算が並列して行われる。また、階層２で再度所定のマッチング演算結果が得られた場合に、階層１でのマッチングが階層２でのマッチング結果に基づき再開されることも、同様である。この階層１でのマッチングの流れが、図３でステップＳ２１〜Ｓ２４で図示されている。
【００３０】
階層１では、それより高い解像度の階層がないので、マッチング演算結果が所定のしきい値以上になるまで、ループが繰り返される。なお、ステップＳ２３では、マッチング演算結果が保存されるが、ループの過程で、複数回マッチング演算結果が所定のしきい値以上になる場合は、そのうち一番相関値が高いものをマッチング演算結果として上書き保存するようにする。最終的に、階層１で最も高い相関値が得られたときのテンプレートの位置が、撮像した対象物が存在する位置（エリア）とされる。
【００３１】
このように複数のマッチング演算モジュールをマッチングコントローラで制御することによって、一番解像度の低い階層（３）でマッチングを行いながら、上位の階層（２、１）でのマッチングも平行して行うことが可能になる。
【００３２】
上述した実施形態では、画像圧縮比は、１／１、１／４、１／１６の３種類で、３階層であったが、２種類、あるいは３種類以上の圧縮比の画像を生成し、それに対応した複数の階層でのマッチング演算を行うことも可能である。マッチングコントローラ１６は、例えばＣＰＵ、ＤＳＰ、あるいはコントローラ専用回路で構成され、またマッチング演算モジュール１５ａ〜１５ｃも、同様に、ＣＰＵ、ＤＳＰ、あるいはマッチング専用回路で構成される。
【００３３】
また、上述した実施形態では、各メモリ１３ａ〜１３ｃ、１４ａ〜１４ｃがそれぞれ単独に存在しているが、マッチング演算モジュールからのメモリアクセスがマッチング演算モジュールの処理より十分に高速ならば、図５に示すように、一つの画像メモリ４０、一つのテンプレートメモリ４１を設け、画像メモリ４０を３つに細分して、各階層１〜３用の画像を格納する画像メモリ４０ａ〜４０ｃとし、またテンプレートメモリ４１も３分割して、各階層１〜３用のテンプレートメモリ４１ａ〜４１ｃとすることもできる。この時、メモリにアクセスできるバスは１つなので、複数のマッチング演算モジュールから同時にメモリアクセスされた時にバスを制御するバスコントローラ４３、４４を設けるようにする。
【００３４】
図５のような構成であれば、１つの階層のマッチングに全てのマッチング演算モジュールを使用するようにマッチングコントローラで制御して、各階層のマッチングを順次実行することで高速化を図ることも可能である。
【００３５】
【発明の効果】
以上説明したように、本発明では、解像度の低い画像に対する下位の階層でのマッチングを開始し、その階層で所定値以上の相関値が得られマッチングが成功すると、その階層でのマッチングを続けながら、それより解像度の高い画像に対する上位の階層でのマッチングも並列して行うことができ、下位の階層でのマッチングの終了を待って上位の階層でのマッチングを開始するのに比較して、高速なテンプレートマッチングが可能となる。
【図面の簡単な説明】
【図１】テンプレートマッチング装置の構成を示したブロック図である。
【図２】テンプレートマッチング装置の詳細な構成を示したブロック図である。
【図３】ピラミッド構造データを用いてテンプレートマッチングを行う流れを示したフローチャートである。
【図４】ピラミッド構造データを用いてテンプレートマッチングを行う流れを示した説明図である。
【図５】テンプレートマッチング装置の他の実施形態の詳細な構成を示したブロック図である。
【符号の説明】
１０  ＣＣＤカメラ
１１  対象物
１３  画像メモリ
１４  テンプレートメモリ
１５  マッチング演算モジュール
１６  マッチングコントローラ
【図１】
2004362186.tif 000003
【図２】
2004362186.tif 000004
【図３】
2004362186.tif 000005
【図４】
2004362186.tif 000006
【図５】
2004362186.tif 000007