(57)【特許請求の範囲】
【請求項１】
認識対象となる物体の画像を取得する取得部と、
前記認識対象となる物体の画像の輪郭線における曲率が極大又は極小となる曲率極値点を抽出する第１の抽出部と、
求められた各々の前記曲率極値点ごとに、当該曲率極値点と当該曲率極値点に係る曲率半径中心と前記輪郭線に基づく局所的な特徴ベクトルを抽出する第２の抽出部と、
基準となる物体の画像に係る各々の前記曲率極値点ごとに求められた、当該曲率極値点に係る前記特徴ベクトルを含む基準データを記憶する基準データ記憶部と、
前記認識対象となる物体の画像に係る各々の前記曲率極値点ごとに、当該曲率極値点に係る前記特徴ベクトルを、前記基準となる物体の画像に係る前記特徴ベクトルと照合して、前記認識対象となる物体の画像に係る前記曲率極値点と、前記基準となる物体の画像に係る前記曲率極値点とを対応付ける認識処理部とを備えたことを特徴とする物体認識装置。
【請求項２】
前記基準データ記憶部は、前記基準となる物体の画像に係る各々の前記曲率極値点ごとに求められた前記特徴ベクトルに対応付けて、更に該基準となる物体の画像に係る所定の特徴に関する関連情報を記憶するものであり、
前記認識処理部は、前記認識対象となる物体の画像に係る前記曲率極値点に対応付けられた、前記基準となる物体の画像に係る前記曲率極値点に対応して前記基準データ記憶部に記憶されている前記関連情報を取得し、該関連情報を使用して、当該認識対象となる物体の画像に係る前記所定の特徴又は前記基準となる物体の画像に係る前記所定の特徴からの変化量を認識結果として求めるものであり、
前記物体認識装置は、前記認識結果を出力する出力部を更に含むことを特徴とする請求項１に記載の物体認識装置。
【請求項３】
前記所定の特徴は、前記基準となる物体の画像における重心であり、
前記関連情報は、前記基準となる物体の画像に係る前記曲率極大点から前記重心までを結ぶ補助線の長さと、該補助線が前記輪郭線における当該曲率極大点の接線となす角度と、当該曲率極大点に係る曲率半径とを含むものであり、
前記認識処理部は、前記認識対象となる物体の画像に係る前記曲率極値点に対応付けられた、前記基準となる物体の画像に係る前記曲率極値点に対応して前記基準データ記憶部に記憶されている前記関連情報に含まれる前記補助線の長さと前記角度と前記曲率半径と、該認識対象となる物体の画像に係る当該曲率極値点の曲率半径とを用いて、該認識対象となる物体における重心を推定する請求項２に記載の物体認識装置。
【請求項４】
前記特徴ベクトルは、前記輪郭線における前記曲率極値点に係る曲率半径中心から該輪郭線へ投射したｎ本（ｎは予め定められた数）の放射線それぞれの長さに関する値を各要素とするｎ次元のベクトルであることを特徴とする請求項１ないし３のいずれか１項に記載の物体認識装置。
【請求項５】
前記特徴ベクトルに係る各々の前記要素の値は、それぞれ、対応する前記放射線の長さを前記曲率極値点に係る曲率半径で除して得た値であることを特徴とする請求項４に記載の物体認識装置。
【請求項６】
ｎ本の前記放射線は、等角度間隔で設けられたものであることを特徴とする請求項４または５に記載の物体認識装置。
【請求項７】
前記認識対象となる物体の画像から、数式で近似した輪郭線を得る輪郭線抽出部を更に含むことを特徴とする請求項１ないし６のいずれか１項に記載の物体認識装置。
【請求項８】
前記基準データ記憶部に記憶される前記基準データを抽出するための第３の抽出部を更に備えたことを特徴とする請求項１ないし７のいずれか１項に記載の物体認識装置。
【請求項９】
前記基準データ記憶部に記憶される前記基準データを外部から入力するための入力部を更に備えたことを特徴とする請求項１ないし７のいずれか１項に記載の物体認識装置。
【請求項１０】
前記認識処理部は、ｋ−ニアレスト・ネイバー法を用いて、前記認識対象となる物体の画像に係る前記特徴ベクトルを、前記基準となる物体の画像に係る前記特徴ベクトルと照合することを特徴とする請求項１ないし９のいずれか１項に記載の物体認識装置。
【請求項１１】
取得部と第１の抽出部と第２の抽出部と基準データ記憶部と認識処理部とを備えた物体認識装置の物体認識方法において、
前記基準データ記憶部が、基準となる物体の画像の輪郭線における曲率が極大又は極小となる曲率極値点ごとに求められた、当該曲率極値点と当該曲率極値点に係る曲率半径中心と前記輪郭線に基づく局所的な特徴ベクトルを含む基準データを記憶するステップと、
前記取得部が、認識対象となる物体の画像を取得するステップと、
前記第１の抽出部が、前記認識対象となる物体の画像の輪郭線における曲率が極大又は極小となる曲率極値点を抽出するステップと、
前記第２の抽出部が、求められた各々の前記曲率極値点ごとに、当該曲率極値点と当該曲率極値点に係る曲率半径中心と前記輪郭線に基づく局所的な特徴ベクトルを抽出するステップと、
前記認識処理部が、前記認識対象となる物体の画像に係る各々の前記曲率極値点ごとに、当該曲率極値点に係る前記特徴ベクトルを、前記基準となる物体の画像に係る前記特徴ベクトルと照合して、前記認識対象となる物体の画像に係る前記曲率極値点と、前記基準となる物体の画像に係る前記曲率極値点とを対応付けるステップとを有することを特徴とする物体認識方法。
【請求項１２】
認識対象となる物体の画像を取得する取得部と、
前記認識対象となる物体の画像の輪郭線における曲率が極大又は極小となる曲率極値点を抽出する第１の抽出部と、
求められた各々の前記曲率極値点ごとに、当該曲率極値点と当該曲率極値点に係る曲率半径中心と前記輪郭線に基づく局所的な特徴ベクトルを抽出する第２の抽出部と、
基準となる物体の画像に係る各々の前記曲率極値点ごとに求められた、当該曲率極値点に係る前記特徴ベクトルを含む基準データを記憶する基準データ記憶部と、
前記認識対象となる物体の画像に係る各々の前記曲率極値点ごとに、当該曲率極値点に係る前記特徴ベクトルを、前記基準となる物体の画像に係る前記特徴ベクトルと照合して、前記認識対象となる物体の画像に係る前記曲率極値点と、前記基準となる物体の画像に係る前記曲率極値点とを対応付ける認識処理部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、物体の画像を認識する画像認識装置、画像認識方法及びプログラムに関する。
【背景技術】
【０００２】
物体を認識処理する際に、対象物体に、スケール変化、回転変化、部分隠れがあると、物体認識は一般に難しくなる。
【０００３】
スケール変化及び回転変化に対応可能な技術として、物体の輪郭線の全周囲の曲率変化をグラフ化（ベクトル化）し、このスケール変化及び回転変化に対して不変のグラフを画像マッチングに用いる技術が知られている。しかしながら、遮蔽されている部分のグラフを描くことは困難であることから、この技術は、部分隠れに対応可能でない。
【０００４】
部分隠れに強いマッチング技術として、ＳＩＦＴ（Scale Invariant Feature Transform）特徴量を用いた技術が現在注目されている。ＳＩＦＴは、ＤＯＧ（Difference of Gaussian）という方法で抽出した特徴点の周りの輝度変化方向ヒストグラムをベクトル化してマッチングを行うものである。しかしながら、この技術は、平面内に多くの絵柄を必要とするものであり、精密な輪郭線マッチングには不向きである。また、ヒストグラムのビンは、８方向のみなので、曲線同士の緻密なマッチングには、不向きである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−５５４４７号公報
【特許文献２】米国特許第６７１１２９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
スケール変化、回転変化、部分隠れがある物体の認識は、一般に難しい。特に特徴点の少ない物体に関しては、ＳＩＦＴなどの手法でも困難である。
【０００７】
本実施形態は、スケール変化、回転変化、部分隠れがある物体に対して、物体表面の絵柄の有無にかかわらず、物体認識を可能にする画像認識装置、画像認識方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態によれば、取得部と、第１の抽出部と、第２の抽出部と、基準データ記憶部と、認識処理部とを備える。取得部は、認識対象となる物体の画像を取得する。第１の抽出部は、前記認識対象となる物体の画像の輪郭線における曲率が極大又は極小となる曲率極値点を抽出する。第２の抽出部は、求められた各々の前記曲率極値点ごとに、当該曲率極値点と当該曲率極値点に係る曲率半径中心と前記輪郭線に基づく局所的な特徴ベクトルを抽出する。基準データ記憶部は、基準となる物体の画像に係る各々の前記曲率極値点ごとに求められた、当該曲率極値点に係る前記特徴ベクトルを含む基準データを記憶する。認識処理部は、前記認識対象となる物体の画像に係る各々の前記曲率極値点ごとに、当該曲率極値点に係る前記特徴ベクトルを、前記基準となる物体の画像に係る前記特徴ベクトルと照合して、前記認識対象となる物体の画像に係る前記曲率極値点と、前記基準となる物体の画像に係る前記曲率極値点とを対応付ける。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る物体認識装置の一構成例を示す図。
【図２】局所的な特徴量について概略的に説明するための図。
【図３】実施形態に係る物体認識装置の登録時の概略的な動作例を示すフローチャート。
【図４】実施形態に係る物体認識装置の認識処理時の概略的な動作例を示すフローチャート。
【図５】実施形態に係る前処理部の内部構成の一例を示す図。
【図６】実施形態に係る基準データ抽出部の内部構成の一例を示す図。
【図７】実施形態に係る認識処理部の内部構成の一例を示す図。
【図８】実施形態に係る物体認識装置の登録時の詳細な動作例を示すフローチャート。
【図９】局所的な特徴量について詳しく説明するための図。
【図１０】登録時の処理の例について説明するための図。
【図１１】認識時の処理の例について説明するための図。
【図１２】実施形態に係る物体認識装置の認識処理時の詳細な動作例を示すフローチャート。
【図１３】実施形態の効果について説明するための図。
【図１４】実施形態の効果について説明するための図。
【図１５】実施形態の効果について説明するための図。
【図１６】本実施形態に係る物体認識装置の他の構成例を示す図。
【図１７】比較例について説明するための図。
【図１８】比較例について説明するための図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本発明の実施形態に係る物体認識装置について詳細に説明する。なお、以下の実施形態では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。
【００１１】
最初に、物体の画像の輪郭全周囲の曲率変化をグラフ化する比較例について説明する。
【００１２】
認識対象として図１７の（ａ）に示すような形状の物体があったとする。
【００１３】
輪郭線上の位置をｘ（ｔ），ｙ（ｔ）とし、ｔを媒介変数とすると、各点ｔにおける曲率ｋ（ｔ）は、次の式（１）で表すことができる。
【数１】
0005275373.tif 000002
【００１４】
そして、横軸にｔ、縦軸に曲率をとると、（ｂ）のようなグラフが得られる。図中の目盛は、最大曲率を１．０に規格化し、一周を１００に規格化しているので、対象物体のスケール変化に対して不変である。例えば、（ａ）の物体を（ｃ）のように拡大しても、曲率を表すグラフは、（ｂ）のグラフと同じである。さらに、例えば最大曲率を常に横軸の左端にしておけば、（ａ）から（ｄ）のような回転変化に対しても、（ｂ）のグラフは不変である。
【００１５】
それゆえ、このグラフを画像マッチングに用いれば、スケール変化や回転変化に対して不変のマッチングが可能となる。具体的には、例えば、グラフを適度な粒度で縦切りしてベクトル化し、登録画像のベクトルと、新規入力画像のベクトルとを比較することによりマッチングを行う。ベクトルの比較には、ユークリッド距離の近さなどの類似度を尺度にする。
【００１６】
しかし、この手法は、対象物体に部分隠れがあると成り立たなくなる。
【００１７】
例えば、図１７（ａ）と同じ形状の物体に対して、その一部を遮蔽する遮蔽物（図１８の（ａ）の斜線部９００参照）が存在する場合を考える。この場合、得られる曲率グラフは、図１８の（ｂ）のようになる。すなわち、遮蔽されている部分のグラフは描くことはできない（９０１，９０２参照）。このような場合、縦軸の曲率や、横軸の周囲長を規格化することはできない。対象物体の見えている部分だけでグラフを規格化すると、対象物体の全体が見えている場合に規格化されたグラフから変化してしまう可能性があるので、部分隠れがある対象物体を、全体が見えている物体とマッチングすることは困難である。
【００１８】
そこで、本実施形態では、スケール変化、回転変化があり得るだけでなく、部分隠れがあり得る場合にも、対象物体に対する認識を可能にする。また、ＳＩＦＴで必要とする物体表面の絵柄を不要とする物体輪郭線のマッチングを可能にし、ＳＩＦＴよりも緻密なマッチングを行うことを可能にする。
【００１９】
詳しくは後述するが本実施形態では、部分隠れに対応するために、局所的な特徴量を用いる。図２の太線で示すような物体の局所的輪郭（物体の輪郭線の曲率極大点及び曲率極小点の近傍）から固有の特徴量を抽出し（ただし、図２は、局所特徴量自体を示すものではない。）、局所特徴量同士をマッチングさせることにより、部分隠れに対してロバストにするものである（すなわち、幾つかの局所的輪郭が部分隠れしていても、見えている局所的輪郭から、物体認識が可能になる）。
【００２０】
以下、本実施形態について詳しく説明する。
【００２１】
なお、以下の説明において、物体の画像の輪郭線において曲率が極大になる点（以下、曲率極大点）と、物体の画像の輪郭線において曲率が極小になる点（以下、曲率極小点）とを総称して、曲率極値点（或いは極値点）と呼ぶことがある。
【００２２】
図１に、本実施形態に係る物体認識装置の構成例を示す。
【００２３】
図１に示されるように、本実施形態の物体認識装置１は、基準データ記憶部１１、画像取得部１２、前処理部１３、基準データ抽出部１４、認識処理部１５、認識結果出力部１６を含む。
【００２４】
本実施形態の物体認識装置１は、基準とする物体から所定の特徴量（及び後述する関連情報）を抽出して、これを認識処理時の照合における基準となるデータ（すなわち、辞書データ或いは登録画像データ）（以下、基準データと呼んで説明する。）として登録する機能、及び、認識対象とする物体を認識処理する機能を有する。
【００２５】
なお、本実施形態の物体認識装置は、例えば、サービスロボット、ＦＡ、施設保全、セキュリティー、車載、医用機器など各種自動化機器の物体検出・認識に利用することができる。
【００２６】
図３に、物体認識装置１の基準データ登録時の概略的な動作例を示す。
【００２７】
まず、画像取得部１２により、基準とする物体の画像を取得する（ステップＳ１）。次に、前処理部１２により、取得した画像に所定の前処理を施す（ステップＳ２）。次に、基準データ抽出部１４により、前処理により得られたデータから、基準データを抽出する（ステップＳ３）。そして、抽出した基準データを、所定の形で基準データ記憶部１１に登録する（ステップＳ４）。
【００２８】
図４に、物体認識装置１の認識処理時の概略的な動作例を示す。
【００２９】
まず、画像取得部１２により、認識対象とする物体の画像を取得する（ステップＳ１１）。次に、前処理部１２により、取得した画像に所定の前処理を施す（ステップＳ１２）。次に、認識処理部１５により、前処理により得られたデータから、特徴データを抽出し、該特徴データと、基準データ記憶部１１に登録されている基準データに係る特徴データとをもとに、認識対象物体に対する認識結果を求める（ステップＳ１３）。そして、認識結果出力部１６により、認識結果を出力する（ステップＳ１４）。
【００３０】
以下、各部について説明する。
【００３１】
基準データ記憶部１１は、上記の基準データを記憶する。
【００３２】
本実施形態では、登録物体に係る基準データは、例えば、当該物体の画像の輪郭線における各曲率極値点（曲率極大点及び曲率極小点）ごとに、当該曲率極値点に係る特徴ベクトル（当該曲率極値点の曲率半径中心から輪郭線へのθ間隔でのｎ本の放射線の各（基準化した）長さからなる曲率ベクトル）と、関連情報とを対応付けて（例えば、ハフ変換用データベースとして）登録したものである。
【００３３】
関連情報は、例えば、スケール変化、回転変化に関係するデータであり、具体的には、例えば、当該曲率極値点の曲率半径、当該曲率極値点から当該物体の画像における重心への線分の方向ベクトル（長さｓ、所定の方向（例えば、水平方向）からの角度α）、当該曲率極値点の輪郭線に対する接線と当該方向ベクトルとのなす角度β）などである。
【００３４】
また、基準データは、関連情報として、スケール変化、回転変化に関係するデータの代わりに又はこれに加えて、当該登録物体の画像データそのもの又は輪郭のみ抽出したデータを含んでも良い（なお、このデータは、全曲率極値点に共通のデータになる）。
【００３５】
なお、基準データ記憶部１１に基準データを登録するにあたって、実際には、例えば、ＫＤ−Ｔｒｅｅを作成しても良い。
【００３６】
画像取得部１２は、物体の画像を取得するためのものである。画像取得部１２は、典型的には、例えば、実際の物体を撮像するカメラであるが、その代わりに又はこれに加えて、例えば、物体の写真、ＣＧ又はイラストを読み込むＯＣＲ、物体を作図するソフトウェアツール、既に電子化されている物体の画像を、ネットワークを介して取得する通信装置や、記録媒体に記録されている物体の画像を読み込む、ドライブ装置などの全部又は一部を含んでも良い。
【００３７】
前処理部１３は、取得した物体の画像に、所定の前処理を施す。所定の前処理は、例えば、物体の画像における重心の抽出と、物体の画像における輪郭線の抽出と、該輪郭線における曲率極値点の探索である。
【００３８】
図５に、本実施形態に係る前処理部１３の内部構成の一例を示す。図５に示されるように、本例の前処理部１３は、物体の画像における重心を抽出する重心抽出部１３１、物体の画像における輪郭線を抽出する輪郭線抽出部１３２、該輪郭線における曲率極値点を抽出する曲率極値点抽出部１３３を含んでも良い。
【００３９】
基準データ抽出部１４は、基準データ登録時に、登録対象とする物体の前処理データから、上記基準データを抽出して、上記記憶部１１に登録する。
【００４０】
図６に、本実施形態に係る基準データ抽出部１４の内部構成の一例を示す。図６に示されるように、本例の基準データ抽出部１４は、登録対象とする物体の画像から特徴ベクトルを抽出する特徴ベクトル抽出部１４１、登録対象とする物体の画像から関連情報抽出部１４２を含んでも良い。
【００４１】
認識処理部１５は、対象物体の認識処理時に、当該認識対象物体の画像の輪郭線における各曲率極値点ごとに、当該曲率極値点に係る特徴ベクトルと、基準データ記憶部１１に登録された基準データの各曲率極値点に係る特徴ベクトルとを照合して、基準データにおける対応する曲率極値点を特定する。また、基準データのうち当該認識対象物体の（遮蔽されずに見えている）各曲率極値点との対応関係が特定された各曲率極値点に係る関連情報を利用して、該認識対象とする物体に対する認識結果を求める。
【００４２】
詳しくは後述するが、例えば、認識対象とする物体の画像の輪郭線における各曲率極値点ごとに、当該曲率極値点に係る特徴ベクトル及び曲率を抽出し、抽出した特徴ベクトルと、登録された基準データに係る特徴ベクトルとを照合して、対応する関連情報を取得し、認識対象物体の曲率Ｒと関連情報の曲率ｒと方向ベクトルの長さｓとから、認識対象物体の当該曲率極値点から推定重心までの長さＳを求めるとともに、認識対象物体の当該曲率極値点の接線と関連情報の角度βから、当該曲率極値点から見た推定重心の方向を求め（これによって、推定重心の位置が特定される）、更に、例えば、認識対象物体の当該曲率極値点から当該物体の重心への方向ベクトルの（例えば、水平方向からの）角度αと、関連情報の角度αとから、認識対象物体の方位角（認識対象物体が、登録された基準データに係る物体の状態に比較して、どのくらい回転しているかを示す角度）を求める。
【００４３】
図７に、本実施形態に係る認識処理部１５の内部構成の一例を示す。図７に示されるように、本例の認識処理部１５は、認識対象とする物体の画像から特徴ベクトルを抽出する特徴ベクトル抽出１５１、特徴ベクトル同士の照合処理を行う照合部１５２、照合の結果に基づき、関連情報を利用して、認識結果を生成する関連情報処理部１５３を含んでも良い。
【００４４】
認識結果出力部１６は、認識結果を出力するためのものである。認識結果出力部１６は、認識結果をネットワークを介して送信する通信装置であっても良いし、認識結果を記録媒体に書き込むドライブ装置であっても良いし、認識結果を表示するディスプレイ装置であっても良いし、それらの２以上を含んでも良い。
【００４５】
なお、上記構成は一例であり、種々変形して実施することが可能である。例えば、曲率極値点の探索を、前処理部１３ではなく、基準データ抽出部１４及び認識処理部１５でそれぞれ行っても良い。また、物体の重心の抽出及び曲率極値点の探索を、前処理部１３ではなく、基準データ抽出部１４及び認識処理部１５でそれぞれ行っても良い。また、物体認識時には、物体の重心の抽出を行わなくても良い。また、基準データ抽出部１４における特徴ベクトル抽出部１４１と、認識処理部１５における特徴ベクトル抽出部１５１とを共通化しても良い。
【００４６】
図８に、物体認識装置１の登録時の詳細な動作例を示す。
【００４７】
なお、図８のＳ１０１が図３のＳ１に対応し、図８のＳ１０２〜Ｓ１０６が図３のＳ２に対応し、図８のＳ１０７〜Ｓ１１４が図３のＳ３に対応する（図８では、図３のＳ４に対応するステップは図示を省略されている）。
【００４８】
ここでは、登録対象となる物体として、図９（ａ）の１００１に示すようなスプーン形状の物体を具体例にとりつつ説明する。なお、図９（ｂ）では、図９（ａ）の１００２の部分を拡大して説明する。
【００４９】
まず、登録対象となる物体の画像を入力し、必要に応じて二値化するなどし（ステップＳ１０１）、該対象物体の重心を計算する（ステップＳ１０２）。
【００５０】
そして、例えばＣａｎｎｙオペレータなどの手法により輪郭線エッジ（１００３参照）を検出する（ステップＳ１０３）。
【００５１】
そして、このエッジを点列化し（ステップＳ１０４）、この点列への曲線フィッティング（１００４参照）を行うことによって、輪郭線を抽出する（ステップＳ１０５）。
【００５２】
画像１００１は、実際には、拡大した画像１００２に示すように、画素の大きさで量子化されており、曲率計算のために微分すると、極端に大きな値や、小さな値が発生してしまう。そこで、画素の点列をスムーシングする必要があり、曲線フィッティングを行う（１００４参照）。曲線は、フィッティング性能を高めるため４次関数が好ましく、最小二乗法又はスプライン補間などでフィッティングを行っても良い。
【００５３】
なお、輪郭線を抽出するにあたっては、輪郭線の全周囲の曲率を計算する。曲率計算は、前述の数式（１）で行うことができる。
【００５４】
この曲率をさらに微分して、全ての曲率極値点を探す（ステップＳ１０６）。
【００５５】
曲率極値点には、曲率極大点と曲率極小点が含まれる。曲率極大点の曲率をｋmax（ｔ）、曲率極小点の曲率をｋmin（ｔ）で表すと、曲率極値点の曲率半径ｒは、ｒ＝１／｜ｋmax(t)｜又はｒ＝１／｜ｋmin(t)｜で表される。
【００５６】
次に、各曲率極値点に対して、ステップＳ１０８〜Ｓ１１０の処理と、ステップＳ１１１〜Ｓ１１２の処理を行う（Ｓ１０７）。
【００５７】
ステップＳ１０８で、曲率極値点の曲率半径中心を計算し、ステップＳ１０９で、曲率半径中心から元のフィッティング曲線（すなわち、輪郭線）へθ間隔で放射線状にｎ本の放射線を引いたときの各放射線の長さを計算し、ステップＳ１１０で、それら放射線の長さをＮ次元成分とする特徴ベクトルを作成する。
【００５８】
この処理について、図９を参照しながら説明すると、曲率極値点（１００５参照）の接線から曲率半径ｒ（ｒ＝１／｜ｋmax(t)｜又はｒ＝１／｜ｋmin(t)｜）（例としてｒ＝ｒｏとする）だけ離れた点（１００６参照）が、曲率極値点においてフィッティング曲線に外接する円（１００７参照）の中心となる。この円の中心（１００６参照）から、フィッティング曲線すなわち輪郭線（１００４参照）へ等角度間隔（θ）で引いたｎ本の放射線（１００７）の長さ要素とするベクトルを定義する。なお、スケール不変性を出すために、各放射線の長さをｒｏで割って規格化したものをベクトルの要素とするのが望ましい。
【００５９】
この場合、曲率極値点の曲率半径をｒｏ、各放射線の長さをｒ１〜ｒｎとすると、ベクトルは、次の式（２）で表される。
【数２】
0005275373.tif 000003
【００６０】
これらの操作により曲率極値点付近の曲線を、スケール不変のベクトルにすることができた。この特徴ベクトルを曲率ベクトルと呼ぶこととする。この曲率ベクトルは、同時に回転不変性も持つ。
【００６１】
放射線の間隔θと本数ｎは、任意に決めることができる。ただし、登録時と認識時で同じ値を使用するものとする。具体例として、例えば、θ＝５°、ｎ＝３１が挙げられるが、これに制限されるものではない。
【００６２】
なお、曲率ベクトルのマッチングには、ｋＮＮ（ｋ−ニアレスト・ネイバー）法すなわち、最近傍探索法などを用いることができる。もちろん、ベクトル間の距離又は類似度に基づく他の種々の方法を使用することも可能である。
【００６３】
一方、ステップＳ１１１で、曲率極値点から重心への方向ベクトルの長さｓを計算し、ステップＳ１１２で、曲率極値点の接点と、重心への方向ベクトルとのなす角度βを計算する。
【００６４】
ここで、一般化ハフ変換について説明する。
【００６５】
直線検出のためのハフ変換を、Ballard（Ballard, D.H., “Generalizing the Hough transform to detect arbitrary patterns”, Pattern Recognition, 13(2):pp.111-122. 1981.）が一般図形に拡張したものが、一般化ハフ変換である。これを用いて、データベース登録画像に対する入力画像の回転量、平行移動量を算出し、さらに、不良ペアのフィルタリングを行う。
【００６６】
図１０を参照しながら説明する。図１０の登録画像用のスプーン形状の物体の画像１０１０の例においては、６つの曲率極値点（すなわち、４つの曲率極大点１０１１，１０１３，１０１４，１０１５と、２つの曲率極小値点１０１２，１０１６）が存在する。図１０に示されるように、各々の曲率極値点（例えば、１０１１、１０１３）から重心１０２０へ線分（補助線）（例えば、１０２１、１０２２）を引き、この線分（例えば、１０２１、１０２２）と、当該曲率極値点の接線（例えば、１０２３、１０２４）とのなす角β（例えば、β１、β２）及び線分の長さｓ（例えば、ｓ１、ｓ２）をそれぞれ求める。
【００６７】
なお、各々の曲率極値点から重心への線分（例えば、１０２１、１０２２）について、予め決められた方向に対する（例えば、画像上の水平軸１０８０からの）回転角度α（例えば、α１又はα２（なお、図中では、α１＝０°の例になっている））を求めるようにしても良い。その代わりに又はそれに加えて、各々の曲率極値点の接線について、予め決められた方向に対する（例えば、画像上の水平軸１０８０からの）回転角度γを求めるようにしても良い。
【００６８】
そして、ステップＳ１１３で、各々の曲率極値点について、曲率ベクトルと、関連情報（例えば、当該曲率極値点の曲率半径ｒ、重心への方向ベクトル（長さｓ、角β）など）とを対応付けて、ハフ変換用データベースとして登録する。
【００６９】
さらに、本手順例では、ステップＳ１１４で、複数の曲率ベクトルから、ＫＤ−Ｔｒｅｅを作成するものとしている。
【００７０】
なお、ハフ変換用データベースやＫＤ−Ｔｒｅｅは一例であり、他の手法を利用することも可能である。
【００７１】
次に、物体認識処理について説明する。
【００７２】
物体認識時には、認識対象となる物体の画像に係る特徴ベクトル（曲率ベクトル）と、登録されている基準データにおける各曲率極値点ごとの特徴ベクトル（曲率ベクトル）とを照合して、基準データにおける対応する曲率極値点を特定する。
【００７３】
基準データのうち当該認識対象物体の（遮蔽されずに見えている）各曲率極値点との対応関係が特定されると、当該特定された各曲率極値点に係る関連情報を利用して、該認識対象とする物体に対する認識結果を求めることができる。
【００７４】
例えば、マッチングが成立した曲率極値点に対応して登録されている重心への方向ベクトル（長さｓ、角β）から、認識対象物体における重心を推定することができる。
【００７５】
図１１に、認識対象となる物体の画像の一例を示す。ここで、認識対象物体の画像１０３０の一部が遮蔽されているものとする（斜線部１０５０参照）。例えば、図１１の認識対象物体の曲率極大点１０３１に係る曲率ベクトルと、図１０の登録画像の曲率極大点１０１１に係る曲率ベクトルとがマッチングしたものとする。この場合、図１１の認識対象物体の曲率極大点１０３１が、図１０の登録画像の曲率極大点１０１１に対応することになる。
【００７６】
この結果、図１１の認識対象物体の曲率極大点１０３１に対して、図１０の登録画像の曲率極大点１０１１に対応付けて登録されている関連情報、例えば、重心への方向ベクトル（長さｓ１、角β１）が得られる（回転角度α１も対応付けて登録されている場合には、回転角度α１も得られる）。
【００７７】
ここで、認識対象物体における推定重心は、登録画像と認識対象物体との曲率半径同士の比から、重心への線分長を変化させることによって、真の重心を推定することができる。
【００７８】
例えば、図１１の曲率極大点１０３１から推定重心１０４０への線分１０４１について、該曲率極大点１０３１の接線１０４３と線分１０４１とのなす角β１´は、登録画像の対応する角β１に等しい。
【００７９】
図１１の曲率極大点１０３１から推定重心１０４０への線分１０４１の推定長さｓ１´については、登録画像の曲率極大点１０１１の曲率半径をｒ１、登録画像の曲率極大点１０１１の重心への方向ベクトルの長さをｓ１、対象物体の曲率極大点１０３１の曲率半径をＲ１とすると、ｓ１´＝（Ｒ１／ｒ１）×ｓ１により求められる。
【００８０】
なお、Ｒ１とｒ１を比較して、それらが一致する場合には、スケールが異ならないので、ｓ１´を計算せずに、ｓ１´＝ｓ１とし、それらが一致しない場合には、スケールが異なるので、ｓ１´を計算するようにしても良い。
【００８１】
これによって、一つの曲率極値点について、一つの推定重心が得られる。
【００８２】
また、上記登録画像の曲率極大点１０１１の曲率半径ｒ１と、対象物体の曲率極大点１０３１の曲率半径Ｒ１から、スケール比ＳＲを、ＳＲ＝Ｒ１／ｒ１で求めることができる。
【００８３】
また、対象物体の曲率極大点１０３１に係る重心への方向ベクトル１０４１の予め決められた方向に対する（例えば、画像上の水平軸１０８２からの）回転角度α１´が得られるので、これと、登録画像の曲率極大点１０１１に係る重心への方向ベクトル１０２１の角度α１とを比較することによって、登録画像における物体を基準として、対象物体の（推定）重心の周りの回転角度（方位角）を得ることができる。これは、他の情報、例えば、曲率極値点における接線の予め決められた方向に対する回転角度（前述のγ）を比較することなどによっても、可能である。
【００８４】
どのような関連情報を登録しておき、どのような内容の認識結果を得るかについては、任意に構成可能である。
【００８５】
なお、認識対象物体において、複数の曲率極値点が見えている場合には、複数の曲率極値点に係る推定重心をもとに、一つの重心を求めるようにするのが望ましい。
【００８６】
例えば、複数の曲率極値点から、重心を投票し、最も得票の大きな点をその重心とする。投票にあたっては、例えば、まず、ＸＹ座標を適当な間隔で縦横に区切って、複数の領域に分割する。そして、推定重心の座標が属する領域を中心とし、中心から遠ざかるにつれて値が低下する所定の２次元分布（例えば、ガウス分布）に従った値を、それら複数の領域に投票することを、各曲率極値点に対する推定重心について行う（例えば、それぞれの領域において、投票された値は加算される）。そして、最大の得票値を得た領域の代表点を、推定重心とする。なお、得票値の閾値を設け、得票値が閾値未満である場合には、認識エラーとして扱うようにしても良い。
【００８７】
これは、スケール比や方位角など、他の量を推定する場合についても同様である。
【００８８】
なお、例えば、登録画像のデータそのもの又はその輪郭線のデータなどを登録しておけば、認識対象物体の各曲率極値点と登録画像の各曲率極値点との対応が特定できた後は、上記の方法などで対象物体の重心が特定されれば、登録画像の画像データ（或いはその輪郭線）と対象物体の画像データ（或いはその輪郭線）とを比較することによって、登録画像を基準として、対象物体の重心周りの回転角度、重心の並進量、スケール比などを推定することもできる。
【００８９】
図１２に、物体認識装置１の認識処理時の詳細な動作例を示す。
【００９０】
なお、図１２のＳ１２１が図４のＳ１１に対応し、図１２のＳ１２２〜Ｓ１２６が図４のＳ１２に対応し、図１２のＳ１２７〜Ｓ１３５が図４のＳ１３に対応する（図１２では、図４のＳ１４に対応するステップは図示を省略されている）。
【００９１】
図１２の手順例において、対象物画像の取得（Ｓ１２１）、対象物重心の計算（Ｓ１２２）、Ｃａｎｎｙエッジ検出（Ｓ１２３）、エッジの点列化（Ｓ１２４）、点列への曲線フィッティング（Ｓ１２５）、曲率極大点の探索（Ｓ１２６）は、登録時の図８の手順例におけるＳ１０１〜Ｓ１０６と同じである。
【００９２】
次に、各曲率極値点に対して、ステップＳ１２７〜Ｓ１３３の処理を行う（Ｓ１２７）。
【００９３】
なお、極大点の曲率半径中心の計算（Ｓ１２８）、θ間隔の放物線計算（Ｓ１２９）、曲率ベクトル生成（Ｓ１２５）は、図８の登録時の手順例のＳ１０８〜Ｓ１１０と同じである。
【００９４】
以下、Ｓ１３１において曲率ベクトルをエッジ情報ＤＢのｋｄ−Ｔｒｅｅに流す箇所からの処理について説明する。
【００９５】
ｋｄ−Ｔｒｅｅとは、前述のｋＮＮを行う部分である。ｋｄ−Ｔｒｅｅにより、モデル画像で対応する曲率ベクトルを探し出し、それに付随する重心への方向ベクトルと、接線とのなす角βを引き出す（Ｓ１３１）。これにより一般化ハフ変換による重心への投票が行われる（Ｓ１３２）。
【００９６】
そして、最も得票の多かった重心位置を採用する（Ｓ１３４）。
【００９７】
なお、方位角やスケールなどの他の量を推定することを可能とする関連情報が得られる場合には、同様にして、認識した対象物の方位角やスケールなどの他の量への投票を行い（Ｓ１３３）、最も得票の多かった方位角やスケールなどの他の量を採用しても良い（Ｓ１３５）。
【００９８】
さて、以上説明してきたように、本実施形態によれば、図１３に示すように認識対象物体が回転変化していても、図１４に示すように認識対象物体がスケール変化及び回転変化していても（もちろん図示しないが認識対象物体が回転変化せずにスケール変化していても）、認識することができる。これは、本実施形態で用いる曲率ベクトルがスケール不変性・回転不変性を持っているからである。
【００９９】
また、図１５のように、本実施形態によれば、部分隠れ１２００に対してもロバストである。本実施形態は、局所的な特徴量を導入したことによって、全体が見えていなくても、局所から（例えば一般化ハフ変換などを用いて）対象物体の重心、方位角、スケール比などの量を求めることができるからである。
【０１００】
なお、図１３〜図１５において点線は登録画像と認識画像との曲率極値点の対応関係（の一部）を表す。
【０１０１】
以上のように本実施形態によれば、スケール変化、回転変化、部分隠れがある物体に対して、物体表面の絵柄の有無にかかわらず、物体認識が可能になる。特に輪郭線同士の画像認識（マッチング）に対して有効である。
【０１０２】
ところで、図１の物体認識装置１は、基準データ登録機能と、物体認識機能を有するものであったが、基準データ登録機能の部分を基準データ提供装置として物体認識装置から独立させても良い。
【０１０３】
図１６に、この場合の基準データ提供装置３０及び物体認識装置３２の構成例を示す。基準データ提供装置３０と物体認識装置３２は、１対１に設けられても良いし、１対多に設けられても良い。
【０１０４】
図１６に示されるように、基準データ提供装置３０は、画像取得部１２、前処理部１３、基準データ抽出部１４、記憶部２１、基準データ提供部２２を含む。
【０１０５】
また、物体認識装置３２は、基準データ記憶部１１、画像取得部１２、基準データ取得部２３、前処理部２４、認識処理部１５、認識結果出力部１６を含む。
【０１０６】
基準データ提供装置３０の記憶部２１は、１又は複数の物体認識装置３２に提供するための基準データを保存する。
【０１０７】
基準データ提供装置３０の基準データ提供部２２は、記憶部２１に保存されている基準データを、物体認識装置３２に提供する。物体認識装置３２の基準データ取得部２３は、基準データ提供装置３０（の基準データ提供部２２）から提供される基準データを取得する。基準データ提供装置３０（の基準データ提供部２２）と物体認識装置３２（の基準データ取得部２３）との間の基準データの受け渡しには、通信媒体を利用しても良いし、記録媒体を利用しても良い。
【０１０８】
物体認識装置３２の基準データ記憶部１１は、基準データ取得部２３により取得された基準データを格納する。
【０１０９】
物体認識機能に必要な前処理が、基準データ登録機能に必要な前処理の一部である場合には、物体認識装置３２の前処理部２４は、物体認識機能に必要な前処理のみ実行できれば良い。
【０１１０】
また、図１の構成に更に基準データ取得部２３を備え、物体認識装置１内で基準データを作成することと、外部から基準データを取得することの両方が可能になるようにしても良い。
【０１１１】
以下では、これまで説明した実施形態の他の構成例について説明する。
【０１１２】
これまで説明した構成例では、曲率極値点（曲率極大点、曲率極小点）から曲率半径中心を求め、その中心から、輪郭線に放射線を引くときに、予め決められた１セットの（θ，ｎ）を用いて、等間隔θ°でｎ本の放射線を引くものとして説明した。
【０１１３】
具体例として挙げたθ＝５°、ｎ＝３１の例の場合、ベクトルとしては３１次元で、中心から１５０°（＝５°×３０）に亘り放射線が引かれることになる。
【０１１４】
しかし、認識の冗長性を上げるために、複数セットの（θ，ｎ）をそれぞれ用いて、複数種類の曲率ベクトルを利用する構成も可能である。
【０１１５】
例えば、第１のセット（θ１＝５°，ｎ１＝３１）、第２のセット（θ２＝５°，ｎ２＝５１）として、１つの曲率半径中心から、ｎ１＝３１次元の放射線の他に、さらにｎ２＝５１次元の放射線を引くという手法もある。第２のセットについては、中心から２５０°（＝５°×５０）の範囲をカバーするものとなる。なお、３セット以上の（θ，ｎ）をそれぞれ用いて、３種類以上の曲率ベクトルを利用しても良いし、θを各セットごとに異なる値にしても良い。
【０１１６】
このように放射線を多重化させれば、冗長性を上げることになる。ｎ２＝５１次元ベクトルの方が、範囲が広い分だけ、部分隠れに弱い場合もあるが、例えば、ｎ１＝３１次元ベクトルでは、類似ベクトルが多いために、一つの曲率極値点を特定できないことがあり得る場合であっても、ｎ２＝５１次元のベクトルなら、範囲が大きいので、一つの曲率極値点を特定できる可能性が大きくなることを期待できる。
【０１１７】
このように、カバーする輪郭線の範囲の異なる複数のベクトルを用意することより、相補的となり、冗長性を上げることができる。もちろん、ベクトルのマッチングを行うときは、（θ，ｎ）の異なる曲率ベクトルごとに、それぞれ独立してマッチングを行う必要があるが、例えば、一般化ハフ変換時の重心、方位角、スケール比などの量に関する投票は、（θ，ｎ）の異なる曲率ベクトルからの複数の推定結果を同じ空間に対して行うことができ、これにより冗長性を上げることができる。
【０１１８】
また、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態の物体認識装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷなど）、半導体メモリ、またはこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態の物体認識装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合または読み込む場合はネットワークを通じて取得または読み込んでもよい。  
また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本実施形態における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。  
また、記録媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本実施形態における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
【０１１９】
なお、本実施形態におけるコンピュータまたは組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。  
また、本実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本実施形態における機能を実現することが可能な機器、装置を総称している。
【０１２０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２１】
１…物体認識装置、１１…基準データ記憶部、１２…画像取得部、１３，２４…前処理部、１４…基準データ抽出部、１５…認識処理部、１６…認識結果出力部、２１…記憶部、２２…基準データ提供部、２３…基準データ取得部、３０…基準データ提供装置、３２…物体認識装置。
【図１】
0005275373.tif 000004
【図２】
0005275373.tif 000005
【図３】
0005275373.tif 000006
【図４】
0005275373.tif 000007
【図５】
0005275373.tif 000008
【図６】
0005275373.tif 000009
【図７】
0005275373.tif 000010
【図８】
0005275373.tif 000011
【図９】
0005275373.tif 000012
【図１０】
0005275373.tif 000013
【図１１】
0005275373.tif 000014
【図１２】
0005275373.tif 000015
【図１３】
0005275373.tif 000016
【図１４】
0005275373.tif 000017
【図１５】
0005275373.tif 000018
【図１６】
0005275373.tif 000019
【図１７】
0005275373.tif 000020
【図１８】
0005275373.tif 000021