(57)【特許請求の範囲】
【請求項１】
テンプレートマッチングにより第１の画像のなかから対象物を検出する第１の探索ステップと、
前記第１の画像に比べ横ｎ倍、縦ｍ倍（ｎ、ｍは２以上の整数）の解像度をもつ第２の画像のうち、前記第１の探索ステップで対象物が検出された位置に対応するｎピクセル×ｍピクセルの領域を探索範囲とし、テンプレートマッチングにより前記第２の画像のなかから前記対象物を検出する第２の探索ステップと、を含む、粗密探索方法において、
前記第２の探索ステップに先立ち、前記第２の探索ステップにおいてテンプレートの同じ要素と照合演算され得るｎ×ｍ個のピクセルのデータが連続したメモリアドレスに格納されるように、前記第２の画像のデータをワークメモリ上に再配置する再配置ステップをさらに含み、
前記第２の探索ステップでは、前記ワークメモリ上で連続したメモリアドレスに格納されているｎ×ｍ個のピクセルに対するｎ×ｍ個の照合演算が、ＳＩＭＤ命令によるｎ×ｍよりも少ない回数の演算処理で実行される
ことを特徴とする粗密探索方法。
【請求項２】
前記再配置ステップでは、前記第２の画像において横方向に隣接する２つのピクセルのデータの間に、当該２つのピクセルのうちの一方のピクセルから縦方向に連なる（ｍ−１）個のピクセルのデータのコピーを挿入する
ことを特徴とする請求項１に記載の粗密探索方法。
【請求項３】
前記再配置ステップでは、前記第２の探索ステップにおいて用いるテンプレートの各要素のデータがｎ×ｍ個ずつ連続したメモリアドレスに格納されるように、前記テンプレートのデータをワークメモリ上に再配置する
ことを特徴とする請求項１又は２に記載の粗密探索方法。
【請求項４】
請求項１〜３のうちいずれか１項に記載の粗密探索方法の各ステップをコンピュータに実行させることを特徴とするプログラム。
【請求項５】
テンプレートマッチングにより画像のなかから対象物を検出する探索処理を実行するテンプレートマッチング部と、
前記探索処理に用いられるデータを格納するワークメモリと、
前記ワークメモリに格納するデータの再配置を行うデータ再配置部と、
前記テンプレートマッチング部の処理結果を出力する結果出力部と、
を有する画像処理装置であって、
前記テンプレートマッチング部は、テンプレートマッチングにより第１の画像のなかから対象物を検出する第１の探索処理を実行した後、前記第１の画像に比べ横ｎ倍、縦ｍ倍（ｎ、ｍは２以上の整数）の解像度をもつ第２の画像のうち、前記第１の探索処理で対象物が検出された位置に対応するｎピクセル×ｍピクセルの領域を探索範囲とし、テンプレートマッチングにより前記第２の画像のなかから前記対象物を検出する第２の探索処理を実行するものであり、
前記データ再配置部は、前記第２の探索処理に先立ち、前記第２の探索処理においてテンプレートの同じ要素と照合演算され得るｎ×ｍ個のピクセルのデータが連続したメモリアドレスに格納されるように、前記第２の画像のデータを前記ワークメモリ上に再配置し、
前記第２の探索処理では、前記ワークメモリ上で連続したメモリアドレスに格納されているｎ×ｍ個のピクセルに対するｎ×ｍ個の照合演算が、ＳＩＭＤ命令によるｎ×ｍよりも少ない回数の演算処理で実行される
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンプレートマッチングにより画像から対象物を検出する技術に関する。
【背景技術】
【０００２】
画像から対象物を検出する方法の一つにテンプレートマッチングと呼ばれる手法がある。テンプレートマッチングの基本処理は、検出対象となる物体のモデル（テンプレート）を予め用意しておき、入力画像とテンプレートのあいだの画像特徴の一致度を評価することで、画像中の物体の位置や姿勢を検出するというものである。テンプレートマッチングによる物体検出は、例えば、ＦＡ（Factory Automation）における検査やピッキング、ロボット・ビジョン、監視カメラなど様々な分野で実用されている。最近は、画像の高解像度化や、検出対象の種類の増加、動画像に対するリアルタイム処理の要請などから、テンプレートマッチングのさらなる高速化が求められている。
【０００３】
テンプレートマッチングによる探索処理を高速化する技術として、粗密探索と呼ばれるアルゴリズムが知られている。粗密探索とは、解像度を段階的に異ならせた画像群（画像ピラミッドと呼ばれる）を用意し、低解像度の画像における探索結果をもとに探索範囲を絞り込み、当該探索範囲について高解像度の画像でさらなる探索を行う、という処理を繰り返し、最終的に元の解像度の画像における物体の位置を特定する方法である。探索範囲を段階的に絞り込んでいくことで、照合演算の回数を削減できるため、全体の処理時間の短縮を図ることができる。
【０００４】
また、コンピュータによる演算処理を高速化する技術として、ＳＩＭＤ（single instruction multiple data）がある。ＳＩＭＤとは、１つの命令で複数のデータの演算を実行する並列処理の一種である。例えば、１２８ビット幅のＳＩＭＤレジスタをもつプロセッサの場合、１６ビットの８個のデータに対する演算や８ビットの１６個のデータに対する演算を１クロックの命令で並列に処理できる。特許文献１には、空間フィルタ演算の高速化のためにＳＩＭＤを適用した例が開示されている。また、非特許文献１には、レスポンスマップの計算にＳＩＭＤを適用するため、Ｔピクセルおきに並んだ複数の特徴量をメモリ上に連続的に並べて格納することが開示されている（非特許文献１中ではＳＩＭＤの代わりにＳＳＥ(Streaming Simd EXtensions)という用語で記載されている）。
【０００５】
ＳＩＭＤによる並列処理は処理の高速化に有効である。しかしながら、特許文献１や非特許文献１の方法は、各々の文献に開示された処理に特化した方法であり、前述した粗密探索には適用することができない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１３４６１２号公報
【非特許文献】
【０００７】
【非特許文献１】S. Hinterstoisser, et al., "Gradient Response Maps for Real-Time Detection of Textureless Objects", IEEE Transaction on Pattern Analysis and Machine Intelligence, vol. 34 (5) 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上記実情に鑑みてなされたものであり、粗密探索によるテンプレートマッチ
ングをより高速化するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明では、テンプレートマッチングにより第１の画像のなかから対象物を検出する第１の探索ステップと、前記第１の画像に比べ横ｎ倍、縦ｍ倍（ｎ、ｍは２以上の整数）の解像度をもつ第２の画像のうち、前記第１の探索ステップで対象物が検出された位置に対応するｎピクセル×ｍピクセルの領域を探索範囲とし、テンプレートマッチングにより前記第２の画像のなかから前記対象物を検出する第２の探索ステップと、を含む、粗密探索方法において、前記第２の探索ステップに先立ち、前記第２の探索ステップにおいてテンプレートの同じ要素と照合演算され得るｎ×ｍ個のピクセルのデータが連続したメモリアドレスに格納されるように、前記第２の画像のデータをワークメモリ上に再配置する再配置ステップをさらに含み、前記第２の探索ステップでは、前記ワークメモリ上で連続したメモリアドレスに格納されているｎ×ｍ個のピクセルに対するｎ×ｍ個の照合演算が、ＳＩＭＤ命令によるｎ×ｍよりも少ない回数の演算処理で実行されることを特徴とする粗密探索方法を提供する。
【００１０】
この構成によれば、第２の探索ステップに先立ち第２の画像のデータの再配置を行うため、ワークメモリからＳＩＭＤレジスタへのデータ転送を１クロックで行うことができ、ＳＩＭＤ演算による並列処理の効率を向上できる。したがって、粗密探索によるテンプレートマッチングをより高速化することが可能となる。
【００１１】
前記再配置ステップでは、前記第２の画像において横方向に隣接する２つのピクセルのデータの間に、当該２つのピクセルのうちの一方のピクセルから縦方向に連なる（ｍ−１）個のピクセルのデータのコピーを挿入することが好ましい。このような規則でデータの再配置を行うことで、データ重複（冗長性）が最小となり、ワークメモリの節約が可能だからである。
【００１２】
前記再配置ステップでは、前記第２の探索ステップにおいて用いるテンプレートの各要素のデータがｎ×ｍ個ずつ連続したメモリアドレスに格納されるように、前記テンプレートのデータをワークメモリ上に再配置することが好ましい。これにより、テンプレートのデータについても、ワークメモリからＳＩＭＤレジスタへのデータ転送を１クロックで行うことができ、ＳＩＭＤ演算による並列処理の効率を向上できる。
【００１３】
また、本発明の別の側面は、テンプレートマッチングにより画像のなかから対象物を検出する探索処理を実行するテンプレートマッチング部と、前記探索処理に用いられるデータを格納するワークメモリと、前記ワークメモリに格納するデータの再配置を行うデータ再配置部と、前記テンプレートマッチング部の処理結果を出力する結果出力部と、を有する画像処理装置であって、前記テンプレートマッチング部は、テンプレートマッチングにより第１の画像のなかから対象物を検出する第１の探索処理を実行した後、前記第１の画像に比べ横ｎ倍、縦ｍ倍（ｎ、ｍは２以上の整数）の解像度をもつ第２の画像のうち、前記第１の探索処理で対象物が検出された位置に対応するｎピクセル×ｍピクセルの領域を探索範囲とし、テンプレートマッチングにより前記第２の画像のなかから前記対象物を検出する第２の探索処理を実行するものであり、前記データ再配置部は、前記第２の探索処理に先立ち、前記第２の探索処理においてテンプレートの同じ要素と照合演算され得るｎ×ｍ個のピクセルのデータが連続したメモリアドレスに格納されるように、前記第２の画像のデータを前記ワークメモリ上に再配置し、前記第２の探索処理では、前記ワークメモリ上で連続したメモリアドレスに格納されているｎ×ｍ個のピクセルに対するｎ×ｍ個の照合演算が、ＳＩＭＤ命令によるｎ×ｍよりも少ない回数の演算処理で実行されることを特徴とする画像処理装置を提供する。
【００１４】
この構成によれば、第２の探索処理に先立ち第２の画像のデータの再配置を行うため、ワークメモリからＳＩＭＤレジスタへのデータ転送を１クロックで行うことができ、ＳＩＭＤ演算による並列処理の効率を向上できる。したがって、粗密探索によるテンプレートマッチングをより高速化することが可能となる。
【００１５】
なお、本発明は、上記処理の少なくとも一部を有する粗密探索方法、または、その粗密探索方法を用いる物体検出方法もしくは物体認識方法、または、かかる方法をコンピュータに実行させるためのプログラムやそのプログラムを非一時的に記憶したコンピュータ読取可能な記録媒体として捉えることもできる。また、本発明は、上記粗密探索方法を用いて物体を検出ないし認識する画像処理装置または物体認識装置として捉えることもできる。上記構成および処理の各々は技術的な矛盾が生じない限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００１６】
本発明によれば、粗密探索によるテンプレートマッチングをより高速化することができる。
【図面の簡単な説明】
【００１７】
【図１】物体認識装置の全体構成を示す図。
【図２】物体認識装置のハードウェア構成を示す図。
【図３】物体認識装置の機能構成を示す図。
【図４】カメラから取り込まれる画像の一例を示す図。
【図５】テンプレートのデータ構造の一例を示す図。
【図６】テンプレートの低解像度化処理の一例を示す図。
【図７】粗密探索アルゴリズムを概念的に示す図。
【図８】データの並べ替え（再配置）とＳＩＭＤによる高速化の原理を模式的に示す図。
【図９】照合演算のためにワークメモリからＳＩＭＤレジスタに読み込まれるデータ列を示す図。
【図１０】データ再配置の他の例を示す図。
【図１１】データ再配置の他の例を示す図。
【図１２】物体認識処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１８】
本発明は、テンプレートマッチングの粗密探索によって画像から対象物を検出する技術に関し、より詳しくは、ＳＩＭＤによる並列化処理によって粗密探索の高速化を図る技術に関する。この技術は、ＦＡ用の画像センサ、コンピュータビジョン、マシンビジョンなどにおける物体認識などに応用することができる。以下に述べる実施形態では、本発明の好ましい応用例の一つとして、ベルトコンベヤで搬送される物体の位置及び姿勢を判別するＦＡ用の画像センサに本発明を適用した例を説明する。
【００１９】
（物体認識装置の全体構成）
図１を参照して、本発明の実施形態に係る物体認識装置の全体構成および適用場面について説明する。
【００２０】
物体認識装置１は、生産ラインなどに設置され、カメラ１１から取り込まれた画像を用いてコンベヤ３上の物体２の認識を行うシステムである。コンベヤ３上には複数の物体２が任意の姿勢で流れている。物体認識装置１は、カメラ１１から所定の時間間隔で画像を取り込み、画像処理装置１０によって画像に含まれる各物体２の種類・位置・姿勢を認識する処理を実行し、その結果を出力する。物体認識装置１の出力（認識結果）は、例えば
、ピッキング・ロボットの制御、加工装置や印字装置の制御、物体２の検査・計測などに利用される。
【００２１】
（ハードウェア構成）
図２を参照して、物体認識装置１のハードウェア構成を説明する。物体認識装置１は、大まかに分けて、カメラ１１と画像処理装置１０から構成される。
【００２２】
カメラ１１は、物体２のデジタル画像を画像処理装置１０に取り込むための撮像デバイスであり、例えばＣＭＯＳ（Complementary Metal-Oxide-Semiconductor）カメラやＣＣ
Ｄ（Charge-Coupled Device）カメラを好適に用いることができる。入力画像の形式（解
像度、カラー／モノクロ、静止画像／動画、階調、データ形式など）は任意であり、物体２の種類やセンシングの目的に合わせて適宜選択すればよい。可視光像以外の特殊な画像（Ｘ線画像、サーモ画像など）を物体認識や検査に利用する場合には、その画像に合わせたカメラを用いてもよい。
【００２３】
画像処理装置１０は、ＣＰＵ（中央演算処理装置）１１０と、ワークメモリとして用いられるメインメモリ１１２と、固定記憶部であるハードディスク１１４と、カメラインターフェイス１１６と、入力インターフェイス１１８と、表示コントローラ１２０と、ＰＬＣインターフェイス１２２と、通信インターフェイス１２４と、データリーダ／ライタ１２６とを含む。これらの各部は、バス１２８を介して、互いにデータ通信可能に接続される。
【００２４】
カメラインターフェイス１１６は、ＣＰＵ１１０とカメラ１１とのあいだのデータ伝送を仲介する部分であり、カメラ１１からの画像データを一時的に蓄積するための画像バッファ１１６ａを有している。入力インターフェイス１１８は、ＣＰＵ１１０と入力部（マウス１３、キーボード、タッチパネル、ジョグコントローラなど）とのあいだのデータ伝送を仲介する。表示コントローラ１２０は、液晶モニタなどのディスプレイ１２に接続され、当該ディスプレイ１２での表示を制御する。ＰＬＣインターフェイス１２２は、ＣＰＵ１１０とＰＬＣ４のあいだのデータ伝送を仲介する。通信インターフェイス１２４は、ＣＰＵ１１０とコンソール（あるいは、パーソナルコンピュータやサーバ装置）などとのあいだのデータ伝送を仲介する。データリーダ／ライタ１２６は、ＣＰＵ１１０と記憶媒体であるメモリカード１４との間のデータ伝送を仲介する。
【００２５】
画像処理装置１０は、汎用的なアーキテクチャを有するコンピュータで構成可能であり、ＣＰＵ１１０が、ハードディスク１１４またはメモリカード１４に格納されたプログラムを読み込み、実行することで、各種機能を提供する。このようなプログラムは、メモリカード１４や光ディスクなどのコンピュータ読取可能な記録媒体に格納された状態で流通するか、インターネットなどを通じて提供（ダウンロード）される。なお、本実施形態に係るプログラムは単体のアプリケーションプログラムとして提供されてもよいし、他のプログラムの一部に組み込まれるモジュールとして提供されてもよい。また、その機能の一部または全部がＡＳＩＣなどの専用回路で代替されてもよい。
【００２６】
（機能構成）
図３に、物体認識装置１の機能構成を示す。図３に示す機能は、画像処理装置１０がプログラムを実行することにより実現されるものである。物体認識装置１は、大まかに分けて、テンプレート作成装置２０としての機能部と物体認識処理装置３０としての機能部とを備える。テンプレート作成装置２０は、物体認識処理で利用するテンプレートを作成する機能部である。テンプレート作成装置２０によって作成されたテンプレートは、物体認識処理装置３０のテンプレートＤＢ（データベース）３１に登録される。物体認識処理装置３０は、カメラ１１から取り込まれた画像に対しテンプレートマッチングによる粗密探
索を実行することで、画像中の物体を認識する機能部である。物体認識処理装置３０は、テンプレートＤＢ３１、画像取得部３２、画像ピラミッド生成部３３、特徴抽出部３４、データ最配置部３５、テンプレートマッチング部３６、認識結果出力部３７を有している。これらの機能の詳細については後述する。
【００２７】
図４にカメラ１１から取り込まれる画像の一例を示す。図４に示すように、画像の中には、複数の物体２が含まれており、且つ、各物体２の位置（ＸＹＺ座標）及び姿勢（ＸＹＺの３軸周りの角度）は任意である。完全な球体である場合を除き、カメラ１１に対する物体の姿勢（向き）が異なると、画像に写る物体の形態（形状、色など）も異なるものとなる。したがって、２Ｄ画像を用いた一般的なテンプレートマッチングにおいて任意姿勢の３Ｄ物体を認識するためには、物体の姿勢ごとに個別のテンプレートを用意し、それらのテンプレートの総当たりによるマッチングを行う。
【００２８】
（テンプレート）
テンプレートは、検出対象となる物体の画像特徴を表すデータである。テンプレートの形式はどのようなものでもよいが、本実施形態では、図５に示すように、画像中の複数の特徴点の特徴量を記述した配列形式のデータを用いる。図５右側のテンプレートの各行が１つの特徴点の情報を表しており、特徴点の情報は、特徴点の座標ｘ，ｙと特徴量の値ｖａｌを含んでいる。
【００２９】
特徴量としては、例えば、ピクセル値（輝度）、輝度勾配方向、量子化勾配方向、ＨｏＧ（Histogram of Oriented Gradients）、ＨＡＡＲ−ｌｉｋｅ、ＳＩＦＴ（Scale-Invariant Feature Transform）などを用いることができる。輝度勾配方向とは、特徴点を中心とする局所領域での輝度の勾配の方向（角度）を連続値で表すものであり、量子化勾配方向とは、特徴点を中心とする局所領域での輝度の勾配の方向を離散値で表す（例えば、８方向を０〜７の１バイトの情報で保持する）ものである。図５の特徴量ｖａｌは、量子化勾配方向を２進数で表記した例を示している。各ビットが０度、４５度、９０度、１３５度、１８０度、２２５度、２７０度、３１５度の方向を表している。
【００３０】
テンプレートは、物体の画像を用いて特徴点検出及び特徴量抽出の処理を行うことにより作成することができる。特徴点検出及び特徴量抽出については公知の手法を利用できるため、ここでは詳しい説明を割愛する。テンプレートの基になる画像は、実際の物体を撮影することにより得ることができる。あるいは、物体の３次元ＣＡＤデータを入手可能な場合には、３次元コンピュータグラフィックスを用いてレンダリング処理することにより、所望の姿勢（視点、回転角）及び光源の下での画像を得ることができる。
【００３１】
詳しくは後述するが、本実施形態では、解像度が段階的に異なる複数の画像（画像ピラミッド）を用いた粗密探索を行うため、それぞれの解像度に応じたテンプレートを用意する必要がある。解像度が異なる複数のテンプレートを作成する方法としては、解像度が異なる複数の物体画像からそれぞれテンプレートを作成する方法と、最も高い解像度の物体画像から作成したテンプレートに対し低解像度化処理を施すことで必要な解像度のテンプレートを作成する方法とがある。低解像度化処理とは、各特徴点の位置関係を基に、近傍にある複数の特徴点を統合することで、テンプレートの解像度を下げる処理である。図６に、テンプレートの解像度を１／２にする例を示す。解像度を１／２にする場合、２×２の範囲内の近傍特徴点が１つの特徴点に統合される。図６の例では、４つの特徴点（１，１）、（１，２）、（２，１）、（２，２）の特徴量の値を統合した結果が、低解像度テンプレートの特徴点（１，１）の特徴量の値となる。また、３つの特徴点（１，３）、（１，４）、（２，４）の特徴量の値を統合した結果が、低解像度テンプレートの特徴点（１，２）の特徴量の値となる。なお、これは低解像度化処理の一例である。テンプレートは特徴量の値をピクセル値にもつ画像データとみなすことができるので、公知の画像解像
度変換処理を用いることができる。
【００３２】
（粗密探索）
次に、粗密探索法について説明する。粗密探索とは、テンプレートマッチングによる探索処理を高速化するアルゴリズムであり、粗精探索、ピラミッド探索、ピラミッドサーチ、Coarse to Fine Searchとも呼ばれる。
【００３３】
図７に、粗密探索アルゴリズムを概念的に示す。粗密探索では、解像度を段階的に異ならせた第１層から第ｋ層（ｋは２以上の整数）のｋ枚の画像群（画像ピラミッド）を用いる。第１層画像が最も解像度が低く、第２層、…、第ｋ層の順に解像度が高くなる。第ｉ層画像（ｉ＝１，２，…，ｋ−１）に比べ、第（ｉ＋１）層画像は横ｎ倍、縦ｍ倍（ｎ、ｍは２以上の整数）の解像度をもつ。縦と横の倍率は異なっていてもよい（つまり、ｎ≠ｍでもよい）。
【００３４】
図７は、ｋ＝３、ｎ＝２、ｍ＝２の例である。第３層画像が元画像に対応しており、第２層画像、第１層画像といくにしたがい解像度が１／２ずつ低くなっている。例えば、第３層画像（元画像）が６４０ピクセル×４８０ピクセルのＶＧＡサイズの画像である場合、第２層画像は３２０ピクセル×２４０ピクセル、第１層画像は１６０ピクセル×１２０ピクセルの解像度となる。
【００３５】
粗密探索では、最初に、最も低解像度の第１層画像に対しテンプレートマッチングによる探索処理が行われ、第１層画像の中での物体の存在位置（候補）が検出される。図７の第１層画像において黒色の四角形で示したピクセルが検出位置を表している。次に、第２層画像に対する探索処理では、第１層画像での検出位置に対応する第２層画像内の領域が探索範囲に設定される。図７の例では第２層画像は第１層画像に比べて横２倍、縦２倍の解像度であるため、探索範囲は２ピクセル×２ピクセルの領域となる。そして、第２層画像に対しては、この探索範囲に対してのみ探索処理が行われる。同様に、第２層画像での検出結果に基づき第３層画像での探索範囲が設定され、その探索範囲に対する探索処理が行われ、最終的に、第３層画像（元画像）内での物体位置が特定される。
【００３６】
例えば、第３層用テンプレートの要素数をｔとすると、通常のテンプレートマッチングにより第３層画像内を網羅的に探索した場合、必要な照合演算の回数は、６４０×４８０×ｔ＝３０７２００×ｔとなる。これに対し、粗密探索の場合は、第１層画像のみ網羅的に探索するため、第１層画像の探索処理に必要な照合演算の回数は、１６０×１２０×（ｔ／４）となるが、以後は探索範囲が限定されるため、第２層画像の探索処理では２×２×（ｔ／２）、第３層画像の探索処理では２×２×ｔで済み、合計４８０６×ｔ回の照合演算でよい。すなわち、図７の例では、照合演算の回数を約１／６４に削減することができ、大幅な処理速度の向上を図ることができる。
【００３７】
（ＳＩＭＤによる高速化）
次に、ＳＩＭＤ命令による並列処理を用いることによって、粗密探索をさらに高速化するアルゴリズムを説明する。
【００３８】
テンプレートマッチングにおいては、テンプレートの各要素のデータと画像の各ピクセルのデータとの間で照合演算が行われる。ピクセルのデータが表す特徴量により四則演算や論理演算など様々な演算が照合演算として用いられる。例えば、特徴量が輝度である場合は減算や減算の絶対値などの照合演算が用いられる。また特徴量が量子化勾配方向である場合は排他的論理和などの照合演算が用いられる。照合演算を行うとき、ＳＩＭＤ命令を用いて複数の照合演算を一回の演算処理で実行すれば、探索処理の高速化を図ることができる。ただし、ＳＩＭＤ命令による並列処理が有効なのは、一回のＳＩＭＤ命令で同時
に演算される複数のデータ（つまり、ＳＩＭＤレジスタに格納される複数のデータ）がワークメモリ上で連続したメモリアドレスに並んでいる場合に限られる。連続したメモリアドレスに格納されているデータであれば１クロックの命令でワークメモリからＳＩＭＤレジスタに転送できるが、各データがワークメモリ上の離れたアドレスに存在する場合は、ワークメモリからＳＩＭＤレジスタへのデータ転送に数クロック必要となり（つまり、ワークメモリからＳＩＭＤレジスタへのデータ転送がボトルネックになり）、並列処理の効果が減殺されてしまうからである。そこで、本実施形態では、ＳＩＭＤ命令による並列処理の効率を最大限高めるため、探索処理に先立って画像データの再配置（並べ替え）を行う。このとき、粗密探索で参照され得るデータの範囲（探索範囲）の規則性に着目することで、粗密探索に最適なデータの並べ替えを行う点に本アルゴリズムの特徴がある。
【００３９】
図８に、データの並べ替え（再配置）とＳＩＭＤによる高速化の原理を模式的に示す。図８では、説明の簡単のため、第１層画像のサイズを４ピクセル×３ピクセル、第２層画像のサイズを８ピクセル×６ピクセルとする（つまり、ｎ＝ｍ＝２）。また、第１層用テンプレートのサイズを１×１、第２層用テンプレートのサイズを２×２とする。図８において、Ａ０〜Ａ１１は第１層画像の各ピクセルのインデックスを表し、Ｂ０〜Ｂ４７は第２層画像の各ピクセルのインデックスを表す。また、Ｐ０は第１層用テンプレートの要素のインデックス、Ｑ０〜Ｑ３は第２層用テンプレートの各要素のインデックスを表す。なお、第１層画像および第２層画像の各ピクセルには、テンプレートの各要素と同じく、特徴量のデータがセットされている。
【００４０】
第１層の探索処理では、第１層用テンプレートを用いて第１層画像の全体が探索される。具体的には、第１層用テンプレートを第１層画像の左上のピクセルＡ０から順に当てはめていき、Ｐ０とＡ０、Ｐ０とＡ１、・・・、Ｐ０とＡ１１、の計１２回の照合演算を行う。そして、特徴量の類似度が所定の閾値を超えるピクセルが検出されたら、そのピクセルを物体の存在位置の候補とする。図８は、ピクセルＡ５が存在位置の候補として検出された例である。
【００４１】
第２層画像において、第１層画像のピクセルＡ５に対応する領域は、（Ｂ１８，Ｂ１９，Ｂ２６，Ｂ２７）の２ピクセル×２ピクセルの領域である。この領域が第２層の探索処理における探索範囲に設定される。第２層の探索処理では、（１）第２層用テンプレートの要素Ｑ０を第２層画像のピクセルＢ１８の位置に当てはめた場合、（２）要素Ｑ０をピクセルＢ１９の位置に当てはめた場合、（３）要素Ｑ０をピクセルＢ２６の位置に当てはめた場合、（４）要素Ｑ０をピクセルＢ２７の位置に当てはめた場合、の４つの位置について探索を行うため、必要となる照合演算の組み合わせは以下の１６個である。
【００４２】
（１）Ｑ０とＢ１８、Ｑ１とＢ１９、Ｑ２とＢ２６、Ｑ３とＢ２７
（２）Ｑ０とＢ１９、Ｑ１とＢ２０、Ｑ２とＢ２７、Ｑ３とＢ２８
（３）Ｑ０とＢ２６、Ｑ１とＢ２７、Ｑ２とＢ３４、Ｑ３とＢ３５
（４）Ｑ０とＢ２７、Ｑ１とＢ２８、Ｑ２とＢ３５、Ｑ３とＢ３６
【００４３】
ここで、テンプレートの同じ要素と照合演算されるピクセルに注目すると、要素Ｑ０と照合演算される４つのピクセル（Ｂ１８，Ｂ１９，Ｂ２６，Ｂ２７）、要素Ｑ１と照合演算される４つのピクセル（Ｂ１９，Ｂ２０，Ｂ２７，Ｂ２８）、要素Ｑ２と照合演算される４つのピクセル（Ｂ２６，Ｂ２７，Ｂ３４，Ｂ３５）、要素Ｑ３と照合演算される４つのピクセル（Ｂ２７，Ｂ２８，Ｂ３５，Ｂ３６）はいずれも第２層画像において２×２のブロック様に並んでいる。そこで、第２層画像において２×２のブロック様に並ぶ任意の４つのピクセルがワークメモリ上で連続したアドレスに並ぶように、第２層画像のデータを再配置する。図８では、第２層画像のオリジナルのピクセル（白抜きで図示したピクセル）の次のアドレスに、当該ピクセルの列方向（縦方向）に隣接するピクセルのコピー（
網掛けで図示したピクセル）を挿入する、という規則でデータの再配置を行う。なお、最終行においては、列方向に隣接するピクセルが存在しないため、ダミーのデータを挿入すればよい。
【００４４】
一方、第２層用テンプレートに対してもデータの再配置を行う。具体的には、図８に示すように、テンプレートのそれぞれの要素Ｑ０〜Ｑ３が４つずつ連続するようなデータ列を作成する。
【００４５】
前処理（事前準備）として上記のようなデータの再配置を行っておくと、例えば、要素Ｑ０と４つのピクセル（Ｂ１８，Ｂ１９，Ｂ２６，Ｂ２７）との間の４つの照合演算が、
（１）データ列（Ｂ１８，Ｂ１９，Ｂ２６，Ｂ２７）をワークメモリからＳＩＭＤレジスタ＃１へ転送、
（２）データ列（Ｑ０，Ｑ０，Ｑ０，Ｑ０）をワークメモリからＳＩＭＤレジスタ＃２へ転送、
（３）ＳＩＭＤ命令による一括演算、
の３クロックで実行可能である。
【００４６】
図９（Ａ）〜図９（Ｄ）に示すように、要素Ｑ０の照合演算だけでなく、要素Ｑ１とピクセル（Ｂ１９，Ｂ２０，Ｂ２７，Ｂ２８）の間の照合演算、要素Ｑ２とピクセル（Ｂ２６，Ｂ２７，Ｂ３４，Ｂ３５）の間の照合演算、要素Ｑ３とピクセル（Ｂ２７，Ｂ２８，Ｂ３５，Ｂ３６）の間の照合演算についても、ＳＩＭＤによる効率的な並列処理が可能である。
【００４７】
データの再配置の仕方（並べ方）は図８の例に限定されない。例えば、図１０（Ａ）〜図１０（Ｄ）に示すように、テンプレートの同じ要素と照合演算され得る４つのピクセルのすべての組み合わせのデータ列を準備してもよい。この並べ方は、図８の並べ方に比べて必要なメモリサイズが増えるが、図８の並べ方と同様、ＳＩＭＤによる効率的な並列処理が可能である。
【００４８】
以上の説明において、第２層の探索処理の探索範囲が２ピクセル×２ピクセルの領域となり、テンプレートの同じ要素と照合演算され得るピクセルの数が４つとなるのは、第１層画像と第２層画像の解像度の比が横２倍、縦２倍（ｎ＝ｍ＝２）だからである。解像度の比が２倍でない場合も、もちろん同様の処理が可能である。また、第１層画像と第２層画像の間だけでなく、第２層画像と第３層画像の間、…、第ｉ層画像と第（ｉ＋１）層画像の間、…、第（ｋ−１）層画像と第ｋ層画像の間でも同様の処理が可能である。
【００４９】
一般化すると、第１の画像に比べて横ｎ倍、縦ｍ倍（ｎ、ｍは２以上の整数）の解像度をもつ第２の画像を考えたとき、第１の画像に対する探索処理で検出された位置に対応する第２の画像における探索範囲は、ｎピクセル×ｍピクセルの領域となる。したがって、第２の画像に対する探索処理においてテンプレートの同じ要素と照合演算され得るピクセルの数はｎ×ｍ個である。そこで、このｎ×ｍ個のピクセルのデータが連続したメモリアドレスに格納されるように、第２の画像のデータをワークメモリ上に再配置する。そうすると、ｎ×ｍ個のピクセルのデータ列が１クロックでＳＩＭＤレジスタに転送でき、ｎ×ｍ個の照合演算がＳＩＭＤ命令による一回の演算処理で実行可能となる。データの再配置の仕方としては、第２の画像において行方向（横方向）に隣接する２つのピクセルのデータの間に、当該２つのピクセルのうちの一方のピクセルから列方向（縦方向）に連なる（ｍ−１）個のピクセルのデータのコピーを挿入するのがよい。このような規則で再配置を行うと、データの重複（冗長性）が最小となり、ワークメモリの節約が可能だからである。図１１に、ｎ＝２、ｍ＝３の例を示す。
【００５０】
（物体認識処理）
次に、図１２のフローに沿って、物体認識処理装置３０によって実行される物体認識処理の流れを説明する。
【００５１】
まず、画像取得部３２が、カメラ１１から画像を取り込む（ステップＳ１０）。次に、画像ピラミッド生成部３３が、ステップＳ１０で取り込まれた元画像から低解像度画像を生成し、画像ピラミッドを生成する（ステップＳ１１）。本実施形態では、図７に示すように、第１層画像（１６０ピクセル×１２０ピクセル）、第２層画像（３２０ピクセル×２４０ピクセル）、第３層画像（６４０ピクセル×４８０ピクセル）の３枚の画像で構成される画像ピラミッドを用いる。
【００５２】
次に、特徴抽出部３４が、画像ピラミッドの各層画像に対し特徴抽出処理を施す（ステップＳ１２）。ここで抽出される特徴量はテンプレートのものと同種の特徴量であり、本実施形態では量子化勾配方向を用いるものとする。第１層画像に対する特徴抽出処理の結果として、第１層画像と同じ解像度を有し、第１層画像の各ピクセル位置で抽出された特徴量のデータ（特徴値）をピクセル値としてもつ画像（以後、第１層特徴画像と呼ぶ）が得られる。同様に、第２層画像に対する特徴抽出処理の結果として第２層特徴画像が、第３層画像に対する特徴抽出処理の結果として第３層特徴画像が得られる。第１層特徴画像〜第３層特徴画像も画像ピラミッドを構成している。
【００５３】
次に、データ再配置部３５が、第２層特徴画像と第３層特徴画像それぞれのデータをワークメモリ上において再配置する（ステップＳ１３）。この再配置処理は、後段の粗密探索によるテンプレートマッチングの照合処理を高速化するための前処理である。データの再配置の具体的な方法は前述のとおりである。
【００５４】
次に、テンプレートマッチング部３６が、第１層特徴画像と第１層用テンプレートを用いて第１の探索処理を実行する（ステップＳ１４）。なお、複数種類の物体が検出対象である場合や、物体の姿勢ごとにテンプレートがある場合には、テンプレートごとにステップＳ１４の処理を繰り返す。
【００５５】
続いて、テンプレートマッチング部３６は、第１の探索処理の検出結果に基づき第２層特徴画像の探索範囲を設定し、第２層特徴画像と第２層用テンプレートを用いて第２の探索処理を実行する（ステップＳ１５）。第２の探索処理では、前述のとおり、ワークメモリ上で連続したメモリアドレスに格納されている２×２個のピクセルに対する４つの照合演算がＳＩＭＤ命令による一回の演算処理で実行される。複数種類の物体が検出対象である場合や、物体の姿勢ごとにテンプレートがある場合には、テンプレートごとにステップＳ１５の処理を繰り返す。また、第１の探索処理で物体の存在位置候補が複数検出された場合には、検出された候補ごとにステップＳ１５の処理を繰り返す。
【００５６】
続いて、テンプレートマッチング部３６は、第２の探索処理の検出結果に基づき第３層特徴画像の探索範囲を設定し、第３層特徴画像と第３層用テンプレートを用いて第３の探索処理を実行する（ステップＳ１６）。第３の探索処理でも、前述のとおり、ワークメモリ上で連続したメモリアドレスに格納されている２×２個のピクセルに対する４つの照合演算がＳＩＭＤ命令による一回の演算処理で実行される。複数種類の物体が検出対象である場合や、物体の姿勢ごとにテンプレートがある場合には、テンプレートごとにステップＳ１６の処理を繰り返す。また、第２の探索処理で物体の存在位置候補が複数検出された場合には、検出された候補ごとにステップＳ１６の処理を繰り返す。
【００５７】
以上の処理の結果、元画像と同じ解像度をもつ第３層特徴画像における物体の存在位置を特定することができる。また、複数のテンプレートを用いた場合には、どのテンプレー
トと最もマッチしたかで、物体の種類や姿勢を認識することもできる。このような認識結果は、認識結果出力部３７により外部装置やディスプレイに出力される（ステップＳ１７）。認識結果の情報は、例えば、ピッキング・ロボットの制御、加工装置や印字装置の制御、物体２の検査・計測などに利用される。
【００５８】
（本実施形態の利点）
以上述べた構成によれば、探索処理に先立ちワークメモリ上のデータの再配置を行うことによって、ワークメモリからＳＩＭＤレジスタへのデータ転送を１クロックで行うことができ、ＳＩＭＤ演算による並列処理の効率を向上できる。したがって、粗密探索によるテンプレートマッチングをより高速化することが可能となる。
【００５９】
（変形例）
上述した実施形態の構成は本発明の一具体例を示したものにすぎず、本発明の範囲を限定する趣旨のものではない。本発明はその技術思想を逸脱しない範囲において、種々の具体的構成を採り得るものである。
【００６０】
例えば、上記実施形態では、粗密探索を実行する前に画像全体のデータを再配置するようにしたが、第１の探索処理の検出結果に基づいて、画像内の必要な領域のデータのみを再配置するようにしてもよい。これにより、データの再配置に要する時間およびメモリの削減を期待できる。また上記実施形態では、ｎ×ｍ個の照合演算を一回のＳＩＭＤ演算で実行したが、ｎ×ｍ個の照合演算で用いるデータがＳＩＭＤレジスタのデータ幅よりも大きい場合など、一回のＳＩＭＤ演算で実行できない場合には、ｎ×ｍ個の照合演算を複数回（ただし、ｎ×ｍよりも少ない回数）のＳＩＭＤ演算で実行してもよい。すなわち、ｎ×ｍ個の照合演算をｎ×ｍよりも少ない回数のＳＩＭＤ演算に置き換えることができれば、探索処理の高速化を図ることができる。
【符号の説明】
【００６１】
１：物体認識装置、２：物体、３：コンベヤ、１０：画像処理装置、１１：カメラ
２０：テンプレート作成装置
３０：物体認識処理装置、３１：テンプレートＤＢ、３２：画像取得部、３３：画像ピラミッド生成部、３４：特徴抽出部、３５：データ再配置部、３６：テンプレートマッチング部、３７：認識結果出力部
【図１】
0006493163.tif 000002
【図２】
0006493163.tif 000003
【図３】
0006493163.tif 000004
【図４】
0006493163.tif 000005
【図５】
0006493163.tif 000006
【図６】
0006493163.tif 000007
【図７】
0006493163.tif 000008
【図８】
0006493163.tif 000009
【図９】
0006493163.tif 000010
【図１０】
0006493163.tif 000011
【図１１】
0006493163.tif 000012
【図１２】
0006493163.tif 000013