(57)【要約】【課題】画像中には原理的にマッチングが取れない点や正しいマッチング位置を求めるのが困難な点が含まれるので、マッチング演算を行う画素を選択してさらにその画素における演算内容を選択することにより、効率よく処理を行うマッチング演算回路を提供する。【解決手段】各画素の処理内容（実行する処理の選択、対応点探索範囲、マッチングブロックサイズ）を保存するフラグメモリを具備し、画素ごとにその値を読み出して、処理内容を選択してマッチング演算を実行する。【選択図】図１
2004145473.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像データのうち１つを選択して基準画像、その他を参照画像として、基準画像の一部（ブロックという）を選択して基準データとし、参照画像から対応位置を求める範囲内（対応点探索範囲という）に存在する全ての参照画像のブロック（参照データ）を選択し、基準データと各参照データを画素ごとにずらして対応させ、各対応について類似度を演算してもっとも類似する基準データと参照データの対応を求めるブロックマッチング演算回路において、基準画像に対応した空間をもつフラグメモリにフラグ情報をセットし、このフラグの情報を読み出してその内容に応じて、マッチング演算を行うことを特徴とするマッチング演算回路。
【請求項２】
請求項１に記載の画像処理装置において、フラグの情報により、各基準データについてマッチング演算を行うか行わないかを選択することを特徴とするマッチング演算回路。
【請求項３】
請求項１に記載の画像処理装置において、フラグの情報により、各対応について対応点を探索する範囲とマッチングに用いるブロックサイズを選択することを特徴とするマッチング演算回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像認識システムにおけるマッチング演算装置に関するものである。
【０００２】
【従来の技術】
現在、特にロボットビジョンや画像検査システムにおいて高速・高性能なマッチング演算装置が強く望まれており、開発が盛んに行われている。マッチング演算装置は、ある画像データともっとも似通った画像データを検出する装置で、検査システムや物体検出および認識などに用いられている。マッチング演算を用いた物体検出手法であるステレオビジョンや動きベクトル検出では、マッチング演算結果をもとに、空間中に存在する物体の位置や動きを求めることができる。
【０００３】
マッチング演算を実用化するためには、実環境に存在する雑音などに左右されず正しい結果を高速に求めることが不可欠である。一般に、マッチング演算では全ての対応についてマッチング演算を行うが、特にロボットビジョンにおいては原理的にマッチングがとれない（視点の位置の違いにより基準画像中には存在するが参照画像中には存在しない領域が存在したり、局所的に全く同一もしくは非常に似通った画像データとなるブロックが存在したりする）場合が実環境内に存在するため、正しくマッチングをとることができないものが存在する。
特に物体検出および認識システムでは、マッチング演算結果の中に誤りが混入すると、空間中に存在する物体の位置や動きを正しく検出することができなくなるため、そのような箇所が問題となっている。
さらに、原理的にマッチングのとれない点においてマッチング演算を行うと演算時間や消費電力が無駄になってしまうという問題もある。
【０００４】
画像処理で用いられるマッチング演算方法のひとつにブロックマッチング法がある。この手法は、画像中からある一定サイズの小領域（ブロック）を選択してその濃淡またはカラーパターンをもとにマッチング演算を行う手法である。この手法は演算が単純でハードウェアに実装しやすく、かつ並列化による高速化が可能であるため、よく用いられている。しかし、基準データとするブロック内に十分な特徴となるパターンが存在しない場合、正しい対応付けを求めることが困難である。そのため、各データに対して適切にブロックサイズを変化させ、マッチングをとるのに十分な特徴が入るようにしてマッチング演算を行うことが重要である。
【０００５】
【発明が解決しようとする課題】
本発明の第１の目的は、各対応についてマッチング演算の実行を選択することにより、確からしい結果の得られるマッチング演算のみを行い、演算量と消費電力の低減および処理の効率化を図るマッチング演算回路を提供することである。
また、ブロックマッチング法ではマッチング演算の際にブロック内に適当な特徴が入るように適切なブロックサイズを設定する必要があり、このサイズはデータによって最適な値が異なる。そこで、本発明の第２の目的は、各対応に対してマッチングに用いるブロックのサイズ（マッチングブロックサイズという）を可変にすることにより、様々な入力画像データに対してマッチングを正しく行えるように調整可能とするマッチング演算回路を提供することである。
さらに、代表的な視覚処理である視差検出や動き検出において探索範囲は注目する距離や動きを決定する。本発明の第３の目的は、探索範囲を対応毎に可変にすることで注目範囲を設定可能とすることにより、処理の効率化を達成するマッチング演算回路を提供することである。
【０００６】
【発明が解決するための手段】
本発明のマッチング演算装置は、基準画像を格納するための基準画像メモリと、マッチング演算内容を選択するためのフラグデータを格納するフラグメモリと、参照画像を格納するための参照画像メモリと、フラグデータの内容に従って基準データと参照データの読み出しを制御するための制御回路と、読み出された基準データと参照データでブロックマッチングを行って対応を求めるためのマッチング演算回路を具備することを特徴とする。
さらに、フラグデータにより、各基準データに対してマッチング演算を選択的に実行することを特徴とする。
また、フラグデータにマッチングブロックサイズや対応点探索範囲を持たせることにより、基準データごとにマッチング演算の内容を変えられることを特徴とする。
【０００７】
【発明の実施の形態】
以下，本発明の実施例について図面を参照しながら説明する。
本発明の第１の特徴は、従来のマッチング演算装置ではマッチングを行う画素を選択することができなかったことに対し、フラグメモリを追加してその内容によってマッチング演算を選択できるようにして効率のよいマッチング演算を実現した点である。
本発明の第２の特徴は、従来のマッチング演算装置ではブロックマッチング法で用いるブロックサイズと対応点探索範囲が画像中の全ての点において固定だったことに対し、フラグデータにマッチングブロックサイズと対応点探索範囲を持つことにより、マッチング演算の内容を各点について可変にした点である。
【０００８】
図１に本発明の第１の実施形態を示す。
スタート信号が与えられると制御回路１はフラグアドレスを生成し、フラグメモリ２に与えて、そのアドレスのフラグデータを読み出す。制御回路１は、読み出されたフラグデータからマッチング演算内容を決定する。マッチング演算を行う場合、マッチング演算を実行する画素のアドレス（フラグアドレスという）とマッチングブロックサイズと対応点探索範囲から、基準データと参照データのアドレスを生成し、それぞれ基準画像メモリ３と参照画像メモリ４に与え、それぞれデータを読みだす。読み出された画像データは類似度演算回路５で各対応における類似度を計算し、もっとも類似度の高い点を対応位置として出力する。
【０００９】
フラグデータとして、各画素に対応して処理選択ビットを設けることにより、その点についてマッチング演算を行うかどうかを判断することを可能とする。フラグデータの処理選択ビットとして、例えば、基準画像に対してエッジ検出した結果を用いると、エッジ点においてのみマッチング演算を行うことが可能となる。
また、例えば、基準画像に対するラベリング結果から得られる領域の情報を利用して領域を選択し、選択された領域に対して処理選択ビットをたてることにより、基準画像のある領域のみにおいてマッチング演算を行うことが可能となる。
また、処理選択ビットを１画素または数画素おきにおいて処理にかけるデータの数を減らし、マッチング演算を行うことにより、画像のマッチング結果のおおまかな特徴（例えば動き検出の場合、画像中に動物体がひとつでもあったかどうか）を高速に得ることが可能となる。
さらに、フラグデータとして処理選択ビットに加えて、マッチングブロックサイズと対応点探索範囲の２つをフラグデータに含ませることにより、各画素それぞれについて、処理の選択のみではなく、マッチングブロックサイズと対応点探索範囲を可変にすることが可能となる。
以上の動作を保存されている全てのフラグメモリについて読み出しが完了するまで繰り返すことにより、各データについてマッチング演算内容を変化させながらマッチング演算を行うことができる。
【００１０】
図２に本発明の第２の実施形態を示す。
この構成は、ひとつの基準画像に対して異なるマッチング演算を同時に行うことができるようにするため、フラグデータ内の処理選択ビットで処理の実行を選択するだけでなく複数の処理の中から選択して実行するように拡張して、参照画像メモリ２４と類似度演算部２５を複数個配置する点が実施例１と異なる。
実施例１と同様に、スタート信号によってフラグデータの読み出しを開始し、フラグデータの内容によってマッチング演算内容を決定して、マッチング結果を求める。
参照メモリ２４を複数設け、１つの基準画像に対する異なる参照画像をそれぞれに保持することにより、異なる画像間におけるマッチング演算の実行を可能とする。複数の参照メモリ２４に同一の基準画像を格納することにより、各類似度演算部が他の処理に影響されることなくメモリへのアクセスを行うことが可能となり、メモリ構成を簡単化することができる。また、同一データの読み出しが複数の類似度演算部２５から発生した場合、どちらかの読み出しが終了するまで読み出しを待たなくてはいけないが、独立したメモリをもつことでこのような待ち時間の発生がなくなるため、処理の高速化にも貢献する。
類似度演算部２５を複数設けることにより、各基準画像と参照画像の組み合わせに対して、異なるマッチング演算を行うことが可能となる。
例えば、ロボットビジョンのような移動視覚システムでは、ステレオビジョンによる距離検出と動きベクトルによる動き検出がよく用いられる。ステレオビジョンでは視点の異なる複数台のカメラで同一時刻に撮影された画像間でマッチング演算を行い、動き検出では同一のカメラで異なる時刻に撮影された画像間でマッチング演算を行う。ある時刻で撮影された画像に対して、距離検出と動き検出を同時に行うためには、異なる２組の画像に対し、異なるマッチング演算を行う必要があり、図２に示す構成が必要である。
以上により、基準画像メモリ２３に対し、参照画像メモリ２４と類似度演算部２５をＮ個と配置すると、Ｎ個の処理を各基準データについて並列に行うことが可能となる。この場合、フラグデータの処理選択ビットはＮビット必要である。
【００１１】
図３に本発明の第３の実施の形態を示す。
これは、マッチング演算を行った結果からフラグメモリ３２に格納されているフラグデータを更新し、マッチング演算を多段階で行えるようにするため、フラグ更新回路３６を追加した点が他と異なる。
マッチング演算結果をフラグデータの更新に利用することにより、前に行った処理結果に応じて、次に行う処理内容を変更することが可能となる。
例えば、最初にステレオビジョンによる距離検出を画像全体について行い、そのマッチング演算結果からある距離の範囲にある点を選択し、選択された点について動き検出を行うようにフラグデータの処理選択ビットと探索範囲を更新することができる。これにより、ある距離に存在する物体が移物体か静止物体かを検出することが可能となる。逆に、最初に動き検出を行って、移動物体もしくは静止物体として検出されたものについて、距離検出を行うこともできる。以上の例では、フラグ更新時に参照画像を変更する必要となる。
また、参照画像の変更無しでフラグのみを更新する場合では、フラグデータに含まれるマッチングブロックサイズと対応点探索範囲を変えながらマッチング演算を同一の基準画像と参照画像に対して行うことで、多重マッチング演算を実行することが可能となる。
【００１２】
【発明の効果】
以上実施の形態に基づいて詳細に説明したように、本発明では基準画像と参照画像に対応するフラグデータを保存するフラグメモリを設けたことにより、各画素にマッチング演算の内容を変化させることができる。これにより、マッチングをとるのに十分な特徴をもつ点についてのみ演算を行うことが可能となり、演算時間の短縮と低消費電力化が可能となる。
また、フラグデータにより、マッチングブロックサイズと対応点探索範囲を各画素に設定することを可能にすることで、マッチング演算結果が正確になるように調節を行うことが可能となり、これにより、マッチング演算結果の正解率を向上させることが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態を示すブロック図
【図２】本発明の第２の実施形態を示すブロック図
【図３】本発明の第３の実施形態を示すブロック図
【符号の説明】
１，２１，３１　制御回路
２，２２，３２　フラグメモリ
３，２３，３３　基準画像メモリ
４，２４，３４　参照画像メモリ
５，２５，３５　類似度演算部
６　フラグ更新回路
【図１】
2004145473.tif 000003
【図２】
2004145473.tif 000004
【図３】
2004145473.tif 000005