(57)【要約】【課題】３次元物体のモデルデータを少ないメモリー容量で記憶させ、比較のための演算量を削減することを課題としている。【解決手段】対象物モデルの形状データから基準点を抽出する基準点抽出部１０２、基準点を中心とし対象物モデルを内包する仮想的な立方体データを生成する立方体データ生成部１０３、立方体の各面を２つの直角二等辺三角形に分割し又は認識部からの再分割指示に基づき直角と斜辺中点を結ぶ垂線で２つに再分割する三角形分割部１０４、分割された一方の各頂点及び斜辺中点の各視点から見た対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成部１０６、登録モデルデータを記憶する登録モデルデータ記憶部１０８、登録モデルデータを用いて各視点からのモデルデータを認識する認識部１０５、認識出来なかった視点のモデルデータを登録モデルデータ記憶部に記憶させるモデルデータ登録部１０７を備える。【選択図】図２
2012032909.tif 000002
【特許請求の範囲】
【請求項１】
対象物モデルの形状データから基準点を抽出する基準点抽出部と、
前記抽出された基準点を中心とし、前記対象物モデルを内包する仮想的な立方体の空間データを生成する立方体データ生成部と、
前記仮想的な立方体の各面を２つの直角二等辺三角形に分割し、または、認識部からの再分割指示に基づき、前記直角二等辺三角形を直角と斜辺の中点とを結ぶ垂線により２つの直角二等辺三角形に再分割する三角形分割部と、
前記分割された直角二等辺三角形の一方を選択し、選択した前記直角二等辺三角形の各頂点及び斜辺中点の各視点から見た前記対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成部と、
登録モデルデータを記憶する登録モデルデータ記憶部と、
前記登録モデルデータを用いて前記各視点からのモデルデータを認識できるか否かを判定し、全ての前記各視点からのモデルデータを認識できる場合、前記生成されたモデルデータの登録指示をモデルデータ登録部に出力せず、かつ前記三角形分割部による三角形分割を停止し、認識できない視点からのモデルデータがあった場合、認識できなかった視点の前記モデルデータの登録指示と前記認識できなかった視点からのモデルデータとを前記モデルデータ登録部に出力し且つ前記三角形分割部に再分割の指示を出力する認識部と、
前記登録指示に基づき、前記認識できなかった視点からのモデルデータを前記登録モデルデータ記憶部に新たな登録モデルデータとして記憶させるモデルデータ登録部と、
を備え、
前記分割された直角二等辺三角形について、前記モデルデータ生成と、前記４つの視点からの認識と、前記モデルデータ登録と、前記直角二等辺三角形の再分割を再帰的に繰り返すことで前記対象物モデルの登録データの登録を行い、前記登録モデルデータを用いて物体の識別を行う
ことを特徴とする物体識別装置。
【請求項２】
前記三角形分割部は、
前記立方体の各面の一辺の画素数を２ｎ＋１（ｎは自然数）にする
ことを特徴とする請求項１に記載の物体識別装置。
【請求項３】
対象物モデルの形状データから基準点を抽出する基準点抽出部と、
前記抽出された基準点を中心とし、前記対象物モデルを内包する仮想的な立方体の空間データを生成する立方体データ生成部と、
前記仮想的な立方体の各面を２つの直角二等辺三角形に分割し、または、認識部からの再分割指示に基づき、前記直角二等辺三角形を直角と斜辺の中点とを結ぶ垂線により２つの直角二等辺三角形に再分割する三角形分割部と、
前記分割された直角二等辺三角形の一方を選択し、選択した前記直角二等辺三角形の各頂点及び斜辺中点の各視点から見た前記対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成部と、
登録モデルデータを記憶する登録モデルデータ記憶部と、
前記登録モデルデータを用いて前記各視点からのモデルデータを認識できるか否かを判定し、全ての前記各視点からのモデルデータを認識できる場合、前記生成されたモデルデータの登録指示をモデルデータ登録部に出力せず、かつ前記三角形分割部による三角形分割を停止し、認識できない視点からのモデルデータがあった場合、認識できなかった視点の前記モデルデータの登録指示と前記認識できなかった視点からのモデルデータとを前記モデルデータ登録部に出力し且つ前記三角形分割部に再分割の指示を出力する認識部と、
前記登録指示に基づき、前記認識できなかった視点からのモデルデータを前記登録モデルデータ記憶部に新たな登録モデルデータとして記憶させるモデルデータ登録部と、
を備え、
前記分割された直角二等辺三角形について、前記モデルデータ生成と、前記４つの視点からの認識と、前記モデルデータ登録と、前記直角二等辺三角形の再分割を再帰的に繰り返すことで前記対象物モデルの登録データの登録を行う
ことを特徴とするモデルデータの登録装置。
【請求項４】
物体識別装置における物体識別方法において、
基準点抽出部が、対象物モデルの形状データから基準点を抽出する基準点抽出工程と、
立方体データ生成部が、前記抽出された基準点を中心とし、前記対象物モデルを内包する仮想的な立方体の空間データを生成する空間データ生成工程と、
三角形分割部が、前記仮想的な立方体の各面を２つの直角二等辺三角形に分割し、または、認識部からの再分割指示に基づき、前記直角二等辺三角形を直角と斜辺の中点とを結ぶ垂線により２つの直角二等辺三角形に再分割する三角形分割工程と、
モデルデータ生成部が、前記分割された直角二等辺三角形の一方を選択し、選択した前記直角二等辺三角形の各頂点及び斜辺中点の各視点から見た前記対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成工程と、
認識部が、登録モデルデータ記憶部に記憶されている前記対象物モデルの特徴に基づく登録モデルデータを用いて前記各視点からのモデルデータを認識できるか否かを判定し、全ての前記各視点からのモデルデータを認識できる場合、前記生成されたモデルデータの登録指示を登録モデルデータ登録部に出力せず、かつ前記三角形分割工程による三角形分割を停止し、認識できない視点からのモデルデータがあった場合、認識できなかった視点の前記モデルデータの登録指示と前記認識できなかった視点からのモデルデータとを前記モデルデータ登録部に出力し且つ前記三角形分割部に再分割の指示を出力する認識部と、
モデルデータ登録部が、前記登録指示に基づき、前記認識できなかった視点からのモデルデータを前記登録モデルデータ記憶部に新たな登録モデルデータとして記憶させるモデルデータ登録工程と、
を備え、
前記分割された直角二等辺三角形について、前記モデルデータ生成と、前記４つの視点からの認識と、前記登録を行うか否かの判別と、前記モデルデータ登録と、前記直角二等辺三角形の再分割を再帰的に繰り返すことで前記対象物モデルの登録データの登録を行い、前記登録モデルデータを用いて物体の識別を行う
ることを特徴とする物体識別方法。
【請求項５】
コンピュータに、
対象物モデルの形状データから基準点を抽出する基準点抽出手順と、
前記抽出された基準点を中心とし、前記対象物モデルを内包する仮想的な立方体の空間データを生成する空間データ生成手順と、
前記仮想的な立方体の各面を２つの直角二等辺三角形に分割し、または、認識部からの再分割指示に基づき、前記直角二等辺三角形を直角と斜辺の中点とを結ぶ垂線により２つの直角二等辺三角形に再分割する三角形分割する手順と、
前記分割された直角二等辺三角形の一方を選択し、選択した前記直角二等辺三角形の各頂点及び斜辺中点の各視点から見た前記対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成する手順と、
登録モデルデータ記憶部に記憶されている前記対象物モデルの特徴に基づく登録モデルデータを用いて前記各視点からのモデルデータを認識できるか否かを判定し、全ての前記各視点からのモデルデータを認識できる場合、前記生成されたモデルデータの登録指示をモデルデータ登録部に出力せず、かつ前記三角形分割する手順による三角形分割を停止し、認識できない視点からのモデルデータがあった場合、認識できなかった視点の前記モデルデータの登録指示と前記認識できなかった視点からのモデルデータとを前記モデルデータ登録部に出力し且つ前記三角形分割部に再分割の指示を出力する認識する手順と、
前記登録指示に基づき、前記認識できなかった視点からのモデルデータを前記登録モデルデータ記憶部に新たな登録モデルデータとして記憶させるモデルデータ登録する手順と、
を含み、
前記分割された直角二等辺三角形について、前記モデルデータ生成手順と、前記４つの視点からの認識手順と、前記モデルデータ登録手順と、前記直角二等辺三角形の再分割の手順を再帰的に繰り返すことで前記対象物モデルの登録データの登録を行い、前記登録モデルデータを用いて物体の識別を行うこと
を実行させることを特徴とする物体識別プログラム。
【請求項６】
対象物モデルの形状データから基準点を抽出する基準点抽出部と、
前記抽出された基準点を中心とし、前記対象物モデルを内包する仮想的な立方体の空間データを生成する立方体データ生成部と、
前記仮想的な立方体の各面を２つの直角二等辺三角形に分割し、または、認識部からの再分割指示に基づき、前記直角二等辺三角形を直角と斜辺の中点とを結ぶ垂線により２つの直角二等辺三角形に再分割する三角形分割部と、
前記分割された直角二等辺三角形の一方を選択し、選択した前記直角二等辺三角形の各頂点及び斜辺中点の各視点から見た前記対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成部と、
登録モデルデータを記憶する登録モデルデータ記憶部と、
前記登録モデルデータを用いて前記各視点からのモデルデータを認識できるか否かを判定し、全ての前記各視点からのモデルデータを認識できる場合、前記生成されたモデルデータの登録指示をモデルデータ登録部に出力せず、かつ前記三角形分割部による三角形分割を停止し、認識できない視点からのモデルデータがあった場合、認識できなかった視点の前記モデルデータの登録指示と前記認識できなかった視点からのモデルデータとを前記モデルデータ登録部に出力し且つ前記三角形分割部に再分割の指示を出力する認識部と、
前記登録指示に基づき、前記認識できなかった視点からのモデルデータを前記記憶部に新たな登録モデルデータとして記憶させるモデルデータ登録部と、
を備え、
前記分割された直角二等辺三角形について、前記モデルデータ生成と、前記４つの視点からの認識と、前記モデルデータ登録と、前記直角二等辺三角形の再分割を再帰的に繰り返すことで前記対象物モデルの登録データの登録を行い、前記登録モデルデータを用いて物体の識別を行う
ことを特徴とするロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体識別装置、モデルデータの登録装置、物体識別方法、物体識別プログラム、及びロボットに関する。
【背景技術】
【０００２】
入力画像中から、撮像された３次元物体の位置、姿勢を認識することは、非常に多くの分野で必要とされている。例えば、ロボットなどに３次元物体を掴ませるように制御する場合、対象物体の位置と姿勢を正確に取得する必要がある。３次元物体の位置、姿勢を取得する手法として、３次元照合法と２次元照合法がある。
【０００３】
３次元照合法は、光切断法や視差法により取得した検出対象物体の３次元情報そのものを、検出対象物体の３次元的な幾何情報（抽出された特徴量）と比較することにより、検出対象物体である３次元物体の位置、姿勢を識別するものである。具体的には、例えば幾何ハッシング法などが知られている。図２２は、３次元物体の方向による見え方の差を説明する図である。図２２のように、３次元物体９００は、見る位置によって画像９０１〜９０９のように多様な見え方をする。このため、光切断法においては遮蔽の問題があり、また視差法においても遮蔽の問題や対応点の誤検出の問題があり、物体の形状が複雑である場合の３次元特徴量を安定して取得することが困難であるという問題点がある。
【０００４】
一方、２次元照合法は、物体を様々な方向から見た１つ以上の２次元画像に基づく特徴量（モデルデータ）を予め生成し、実際にある視点から見た３次元物体の２次元画像を、予め生成されたモデルデータと比較することにより、３次元物体の位置、姿勢を知るものである。この手法は、従来、実用に供されてきた実績のある２次元物体認識方法を用いることができるので、信頼性の高いシステムを実現できる。例えば図２３に示すように、３次元物体を様々な方向から見た２次元画像のぞれぞれから特徴量を抽出し、それと入力された画像とを２次元的に比較することにより、３次元物体の位置、姿勢を知るものである。
図２３は、３次元物体の２次元照合をより詳細に説明するための図である。２次元照合法は、図２３のように、予め登録モデルデータ９６１〜９６９を記憶部に記憶し登録しておく。そして、検出対象物体の検出時、画像取得手段が撮像された３次元物体９００の画像情報を取得する。特徴抽出部が取得した画像情報から特徴量９５０を抽出する。なお、図２３では、特徴量９５０および特徴量であるモデルデータ９６１〜９６９を模式的に可視化して表している。そして２次元パターンマッチング手段が、抽出された特徴量と登録モデルデータとを順次、パターンマッチングの手法を用いて比較することで対象物を識別している。
【０００５】
このように、２次元照合法は、多数のモデルデータと、ある視点から見た２次元画像との比較が必要となり、計算量が増大するという問題点がある。このような演算量が増大するという問題を解決するために、多数の２次元画像の特徴を、より少ないメモリー容量で記憶させる手法が提案されている。より少ないメモリー容量で記憶させた結果、データ量が削減され、比較のための演算量も削減される（例えば、非特許文献１参照）。
【０００６】
非特許文献１の手法は、検出対象である３次元物体を様々な方向から見た２次元画像を用意し、様々な方向から見た２次元画像の大きさを正規化し、正規化された画像を１つのベクトルと見なし、そのベクトル間の分散を求め、その固有値と固有ベクトルを算出し、固有値の大きさの上位から所定の個数の固有ベクトルを選択し、選択した所定個数の固有ベクトルの張る仮想的な空間を生成し、生成した仮想的な空間で各々の画像を表している。これにより、様々な方向から見た２次元画像は、所定個数の固有ベクトルが張る仮想的な空間内の所定個数分の次元座標値として表現できるため、より少ないメモリー容量で記憶させることができる。
【０００７】
しかしながら、非特許文献１記載の従来技術では、元画像を正規化しているために、実際の物体検出においても、その物体の含まれる画像を正規化して比較する必要がある。正規化して比較するためには、先ずその物体の位置を決めるための試行錯誤が必要となり、その物体の位置を決めるための試行錯誤における演算量が増えてしまうという問題点がある。
このような問題点を改善するために、試行錯誤により発見した物体を、それ以降は動き追跡手段、たとえばパーティクルフィルター手法などにより追跡することにより、試行錯誤の演算量を削減する手法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−３０５０５９号公報
【非特許文献】
【０００９】
【非特許文献１】村瀬  洋、シュリー  ナイヤー、「２次元照合による３次元物体認識  パラメトリック固有空間法」、電子情報通信学会論文誌 Vol. J77-D-II No.11 pp.2179-2187, １９９４
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、非特許文献１記載の従来技術では、物体の特徴を少数の固有ベクトル空間内で表現するために、物体の細かな特徴が失われてしまうという問題点がある。これを解決するために、例えば、固有ベクトルの数を増やせば、データ数が増えてしまい、この従来技術の効果が減ぜられてしまうという課題があった。
【００１１】
本発明は、上記の課題に鑑みてなされたものであって、３次元物体のモデルデータを少ないメモリー容量で記憶させ、比較のための演算量を削減する物体識別装置、モデルデータの登録装置、物体識別方法、物体識別プログラム、及びロボットを提供することを目的としている。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明の物体識別装置は、対象物モデルの形状データから基準点を抽出する基準点抽出部と、前記抽出された基準点を中心とし、前記対象物モデルを内包する仮想的な立方体の空間データを生成する立方体データ生成部と、前記仮想的な立方体の各面を２つの直角二等辺三角形に分割し、または、認識部からの再分割指示に基づき、前記直角二等辺三角形を直角と斜辺の中点とを結ぶ垂線により２つの直角二等辺三角形に再分割する三角形分割部と、前記分割された直角二等辺三角形の一方を選択し、選択した前記直角二等辺三角形の各頂点及び斜辺中点の各視点から見た前記対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成部と、登録モデルデータを記憶する登録モデルデータ記憶部と、前記登録モデルデータを用いて前記各視点からのモデルデータを認識できるか否かを判定し、全ての前記各視点からのモデルデータを認識できる場合、前記生成されたモデルデータの登録指示をモデルデータ登録部に出力せず、かつ前記三角形分割部による三角形分割を停止し、認識できない視点からのモデルデータがあった場合、認識できなかった視点の前記モデルデータの登録指示と前記認識できなかった視点からのモデルデータとを前記モデルデータ登録部に出力し且つ前記三角形分割部に再分割の指示を出力する認識部と、前記登録指示に基づき、前記認識できなかった視点からのモデルデータを前記登録モデルデータ記憶部に新たな登録モデルデータとして記憶させるモデルデータ登録部とを備え、前記分割された直角二等辺三角形について、前記モデルデータ生成と、前記４つの視点からの認識と、前記モデルデータ登録と、前記直角二等辺三角形の再分割を再帰的に繰り返すことで前記対象物モデルの登録データの登録を行い、前記登録モデルデータを用いて物体の識別を行うことを特徴としている。
【００１３】
本発明によれば、３次元の検出対象物体の画像を二等辺三角形の分割、各頂点及び斜辺中点からの視点によるモデルデータの生成、登録モデルデータを用いて生成された各視点のモデルデータを認識し、登録モデルデータを用いて認識できない視点のモデルデータがある場合、モデルデータの登録と直角二等辺三角形の再分割を行って再度モデルデータを生成するようにし、登録モデルデータを用いて直角二等辺三角形の全ての頂点と斜辺からの視点によるモデルデータを認識できた場合、直角二等辺三角形の再分割を停止し、モデルデータの生成を停止、すなわちモデルデータの登録も停止するようにしたので、３次元物体を少ないメモリー容量でモデルデータを記憶でき、比較のための演算量を削減して対象物体を認識することができる物体識別装置を提供できる。
【００１４】
また、本発明の物体識別装置において、前記三角形分割部は、前記立方体の各面の一辺の画素数を２ｎ＋１（ｎは自然数）にするようにしてもよい。
【００１５】
本発明によれば、立方体の各面の１辺の画素数２ｎ＋１（ｎは自然数）にするようにしたので、三角形分割部が行う三角形の再分割処理を整数系で誤差無く再分割していくことができる。
【００１６】
上記目的を達成するため、本発明のモデルデータの登録装置は、対象物モデルの形状データから基準点を抽出する基準点抽出部と、前記抽出された基準点を中心とし、前記対象物モデルを内包する仮想的な立方体の空間データを生成する立方体データ生成部と、前記仮想的な立方体の各面を２つの直角二等辺三角形に分割し、または、認識部からの再分割指示に基づき、前記直角二等辺三角形を直角と斜辺の中点とを結ぶ垂線により２つの直角二等辺三角形に再分割する三角形分割部と、前記分割された直角二等辺三角形の一方を選択し、選択した前記直角二等辺三角形の各頂点及び斜辺中点の各視点から見た前記対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成部と、登録モデルデータを記憶する登録モデルデータ記憶部と、前記登録モデルデータを用いて前記各視点からのモデルデータを認識できるか否かを判定し、全ての前記各視点からのモデルデータを認識できる場合、前記生成されたモデルデータの登録指示をモデルデータ登録部に出力せず、かつ前記三角形分割部による三角形分割を停止し、認識できない視点からのモデルデータがあった場合、認識できなかった視点の前記モデルデータの登録指示と前記認識できなかった視点からのモデルデータとを前記モデルデータ登録部に出力し且つ前記三角形分割部に再分割の指示を出力する認識部と、前記登録指示に基づき、前記認識できなかった視点からのモデルデータを前記登録モデルデータ記憶部に新たな登録モデルデータとして記憶させるモデルデータ登録部とを備え、前記分割された直角二等辺三角形について、前記モデルデータ生成と、前記４つの視点からの認識と、前記モデルデータ登録と、前記直角二等辺三角形の再分割を再帰的に繰り返すことで前記対象物モデルの登録データの登録を行うことを特徴としている。
【００１７】
本発明によれば、３次元の検出対象物体の画像を二等辺三角形の分割、各頂点及び斜辺中点からの視点によるモデルデータの生成、登録モデルデータを用いて生成された各視点のモデルデータを認識し、登録モデルデータを用いて認識できない視点のモデルデータがある場合、モデルデータの登録と直角二等辺三角形の再分割を行って再度モデルデータを生成するようにし、登録モデルデータを用いて直角二等辺三角形の全ての頂点と斜辺からの視点によるモデルデータを認識できた場合、直角二等辺三角形の再分割を停止し、モデルデータの生成を停止、すなわちモデルデータの登録も停止するようにしたので、３次元物体を少ないメモリー容量でモデルデータを記憶させて登録することができる。
【００１８】
上記目的を達成するため、本発明の物体識別装置における物体識別方法において、基準点抽出部が、対象物モデルの形状データから基準点を抽出する基準点抽出工程と、立方体データ生成部が、前記抽出された基準点を中心とし、前記対象物モデルを内包する仮想的な立方体の空間データを生成する空間データ生成工程と、三角形分割部が、前記仮想的な立方体の各面を２つの直角二等辺三角形に分割し、または、認識部からの再分割指示に基づき、前記直角二等辺三角形を直角と斜辺の中点とを結ぶ垂線により２つの直角二等辺三角形に再分割する三角形分割工程と、モデルデータ生成部が、前記分割された直角二等辺三角形の一方を選択し、選択した前記直角二等辺三角形の各頂点及び斜辺中点の各視点から見た前記対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成工程と、認識部が、登録モデルデータ記憶部に記憶されている前記対象物モデルの特徴に基づく登録モデルデータを用いて前記各視点からのモデルデータを認識できるか否かを判定し、全ての前記各視点からのモデルデータを認識できる場合、前記生成されたモデルデータの登録指示を登録モデルデータ登録部に出力せず、かつ前記三角形分割工程による三角形分割を停止し、認識できない視点からのモデルデータがあった場合、認識できなかった視点の前記モデルデータの登録指示と前記認識できなかった視点からのモデルデータとを前記モデルデータ登録部に出力し且つ前記三角形分割部に再分割の指示を出力する認識部と、モデルデータ登録部が、前記登録指示に基づき、前記認識できなかった視点からのモデルデータを前記登録モデルデータ記憶部に新たな登録モデルデータとして記憶させるモデルデータ登録工程とを備え、前記分割された直角二等辺三角形について、前記モデルデータ生成と、前記４つの視点からの認識と、前記登録を行うか否かの判別と、前記モデルデータ登録と、前記直角二等辺三角形の再分割を再帰的に繰り返すことで前記対象物モデルの登録データの登録を行い、前記登録モデルデータを用いて物体の識別を行うることを特徴としている。
【００１９】
本発明によれば、３次元の検出対象物体の画像を二等辺三角形の分割、各頂点及び斜辺中点からの視点によるモデルデータの生成、登録モデルデータを用いて生成された各視点のモデルデータを認識し、登録モデルデータを用いて認識できない視点のモデルデータがある場合、モデルデータの登録と直角二等辺三角形の再分割を行って再度モデルデータを生成するようにし、登録モデルデータを用いて直角二等辺三角形の全ての頂点と斜辺からの視点によるモデルデータを認識できた場合、直角二等辺三角形の再分割を停止し、モデルデータの生成を停止、すなわちモデルデータの登録も停止するようにしたので、３次元物体を少ないメモリー容量でモデルデータを記憶でき、比較のための演算量を削減して対象物体を認識することができる。
【００２０】
上記目的を達成するため、本発明の物体識別プログラムは、コンピュータに、コンピュータに、対象物モデルの形状データから基準点を抽出する基準点抽出手順と、前記抽出された基準点を中心とし、前記対象物モデルを内包する仮想的な立方体の空間データを生成する空間データ生成手順と、前記仮想的な立方体の各面を２つの直角二等辺三角形に分割し、または、認識部からの再分割指示に基づき、前記直角二等辺三角形を直角と斜辺の中点とを結ぶ垂線により２つの直角二等辺三角形に再分割する三角形分割する手順と、前記分割された直角二等辺三角形の一方を選択し、選択した前記直角二等辺三角形の各頂点及び斜辺中点の各視点から見た前記対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成する手順と、登録モデルデータ記憶部に記憶されている前記対象物モデルの特徴に基づく登録モデルデータを用いて前記各視点からのモデルデータを認識できるか否かを判定し、全ての前記各視点からのモデルデータを認識できる場合、前記生成されたモデルデータの登録指示をモデルデータ登録部に出力せず、かつ前記三角形分割する手順による三角形分割を停止し、認識できない視点からのモデルデータがあった場合、認識できなかった視点の前記モデルデータの登録指示と前記認識できなかった視点からのモデルデータとを前記モデルデータ登録部に出力し且つ前記三角形分割部に再分割の指示を出力する認識する手順と、前記登録指示に基づき、前記認識できなかった視点からのモデルデータを前記登録モデルデータ記憶部に新たな登録モデルデータとして記憶させるモデルデータ登録する手順とを含み、前記分割された直角二等辺三角形について、前記モデルデータ生成手順と、前記４つの視点からの認識手順と、前記モデルデータ登録手順と、前記直角二等辺三角形の再分割の手順を再帰的に繰り返すことで前記対象物モデルの登録データの登録を行い、前記登録モデルデータを用いて物体の識別を行うことを実行させることを特徴としている。
【００２１】
本発明によれば、３次元の検出対象物体の画像を二等辺三角形の分割、各頂点及び斜辺中点からの視点によるモデルデータの生成、登録モデルデータを用いて生成された各視点のモデルデータを認識し、登録モデルデータを用いて認識できない視点のモデルデータがある場合、モデルデータの登録と直角二等辺三角形の再分割を行って再度モデルデータを生成するようにし、登録モデルデータを用いて直角二等辺三角形の全ての頂点と斜辺からの視点によるモデルデータを認識できた場合、直角二等辺三角形の再分割を停止し、モデルデータの生成を停止、すなわちモデルデータの登録も停止するようにしたので、３次元物体を少ないメモリー容量でモデルデータを記憶でき、比較のための演算量を削減して対象物体を認識することができる物体識別プログラムを提供できる。
【００２２】
上記目的を達成するため、本発明のロボットは、対象物モデルの形状データから基準点を抽出する基準点抽出部と、前記抽出された基準点を中心とし、前記対象物モデルを内包する仮想的な立方体の空間データを生成する立方体データ生成部と、前記仮想的な立方体の各面を２つの直角二等辺三角形に分割し、または、認識部からの再分割指示に基づき、前記直角二等辺三角形を直角と斜辺の中点とを結ぶ垂線により２つの直角二等辺三角形に再分割する三角形分割部と、前記分割された直角二等辺三角形の一方を選択し、選択した前記直角二等辺三角形の各頂点及び斜辺中点の各視点から見た前記対象物モデルの特徴に基づく４つのモデルデータを生成するモデルデータ生成部と、登録モデルデータを記憶する登録モデルデータ記憶部と、前記登録モデルデータを用いて前記各視点からのモデルデータを認識できるか否かを判定し、全ての前記各視点からのモデルデータを認識できる場合、前記生成されたモデルデータの登録指示をモデルデータ登録部に出力せず、かつ前記三角形分割部による三角形分割を停止し、認識できない視点からのモデルデータがあった場合、認識できなかった視点の前記モデルデータの登録指示と前記認識できなかった視点からのモデルデータとを前記モデルデータ登録部に出力し且つ前記三角形分割部に再分割の指示を出力する認識部と、前記登録指示に基づき、前記認識できなかった視点からのモデルデータを前記記憶部に新たな登録モデルデータとして記憶させるモデルデータ登録部とを備え、前記分割された直角二等辺三角形について、前記モデルデータ生成と、前記４つの視点からの認識と、前記モデルデータ登録と、前記直角二等辺三角形の再分割を再帰的に繰り返すことで前記対象物モデルの登録データの登録を行い、前記登録モデルデータを用いて物体の識別を行うことを特徴としている。
【００２３】
本発明によれば、３次元の検出対象物体の画像を二等辺三角形の分割、各頂点及び斜辺中点からの視点によるモデルデータの生成、各頂点及び斜辺中点からの視点によるモデルデータの相関値に基づき、モデルデータの登録か二等辺三角形の再分割を行って再度モデルデータを生成するようにし、近似したモデルデータが得られると判定したとき、二等辺三角形の再分割を停止し、モデルデータの生成を停止、すなわちモデルデータの登録も停止するようにしたので、３次元物体のモデルデータを少ないメモリー容量で記憶でき、比較のための演算量を削減して対象物体を認識することができるロボットを提供できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態であるロボットの斜視図である。
【図２】第１実施形態に係る物体識別装置の構成の一例を示すブロック図である。
【図３】同実施形態に係る検出対象物体および原点を説明する図である。
【図４】同実施形態に係る検出対象物体を内包する仮想的な立方体を説明する図である。
【図５】同実施形態に係る仮想的な立方体の各面を直角二等辺三角形に分割する一例を説明する図である。
【図６】同実施形態に係る直角二等辺三角形の各頂点からの視点で見たモデルデータを説明する図である。
【図７】同実施形態に係る直角二等辺三角形の各頂点及び斜辺中点からの視点で見たモデルデータを説明する図である。
【図８】同実施形態に係る登録モデルデータ記憶部１０８に記憶されている情報の一例を説明する図である。
【図９】同実施形態に係る検出対象物体を内包する仮想立方体の各面を再帰的に直角二等辺三角形に分割して行く処理を説明する図である。
【図１０】同実施形態に係る直角二等辺三角形のパターン（型）と各頂点及び斜辺中点との関係を説明する図である。
【図１１】同実施形態に係るパターン７０６（型＃６）の直角二等辺三角形を二分割した後に生成される直角二等辺三角形を説明する図である。
【図１２】同実施形態に係る分割前の直角二等辺三角形と分割後の直角二等辺三角形の各頂点と斜辺中点との関係を説明する図である。
【図１３】同実施形態に係る面２１１を２つの直角二等辺三角形に分割し、直角二等辺三角形の各頂点及び斜辺中点からの視点によるモデルデータを説明する図である。
【図１４】同実施形態に係る面２１１を再帰的に再分割した後の直角二等辺三角形の各頂点及び斜辺中点からの視点によるモデルデータを説明する図である。
【図１５】同実施形態に係る物体識別装置のモデルデータ登録方法のフローチャートである。
【図１６】同実施形態に係る物体識別装置のモデルデータ登録処理方法のフローチャートである。
【図１７】同実施形態に係る物体識別装置のモデルデータ登録方法のフローチャートである。
【図１８】同実施形態に係る直角二等辺三角形の再帰的２分割の手順を説明する図である。
【図１９】同実施形態に係る直角二等辺三角形の再帰的２分割の手順を説明する図である。
【図２０】同実施形態に係る直角二等辺三角形を再帰的に分割する面の分割数を説明する図である。
【図２１】第２実施形態に係る物体識別装置の識別手順のフローチャートである。
【図２２】３次元物体の方向による見え方の差を説明する図である。
【図２３】３次元物体の２次元照合を説明するための図である。
【発明を実施するための形態】
【００２５】
以下、図１〜図２１を用いて本発明の実施形態について詳細に説明する。なお、本発明は斯かる実施形態に限定されず、その技術思想の範囲内で種々の変更が可能である。
【００２６】
［第１実施形態］
図１は、本発明の一実施形態であるロボットの斜視図である。図１のように、ロボット１は、床に固定された支持台２と、旋回および屈伸動作が可能なアーム部３と、回転および首振り動作が可能なハンド部４と、フレーム５と、カメラ６と、ケーブル７と、物体識別装置８と、画像表示装置９と、ロボットコントローラー１０を含んで構成される。
【００２７】
ロボット１は、アーム部３およびハンド部４の伸縮、屈伸、旋回等の動作が可能である。このロボット１は、例えば、３軸以上の自由度を有し、アーム部３およびハンド部４が可動自在な産業用ロボットである。なお、同図に示すロボット１は、６軸の自由度を有する例である。
ロボット１は、ロボットコントローラー１０の制御によって、アーム部３とハンド部４とを複合的に動作させ、ハンド部４を移動させる。なお、支持台２は、床の他に壁や天井等の地面に対して固定された場所に設置してもよい。
【００２８】
フレーム５は、ハンド部４に取り付けられている。そして、フレーム５は、カメラ６を固定支持する。これによって、カメラ６は、空間中を自在に移動することができる。このように、カメラ６は、ハンド部４の動きに伴って空間を移動し、検出対象物体を任意の位置および任意の角度から撮像することができる。
【００２９】
カメラ６は、ケーブル７を介して物体識別装置８に接続される。カメラ６は、例えば受光レンズとＣＣＤセンサー等で構成され、検出対象物体を撮像し、撮像信号を生成する。そして、カメラ６は、撮像信号を物体識別装置８に出力する。なお、図１の例では、カメラ６は、フレーム５を介してロボット１に装着されている例を示したが、用途に応じて、カメラ６は、ロボット１に装着せず、外付けでも良い。
【００３０】
物体識別装置８には、撮像された撮像信号が入力され、入力された撮像信号に基づき識別した識別結果を画像表示装置９とロボットコントローラー１０に出力する。
画像表示装置９は、物体識別装置８から入力された識別結果を表示する。また、ロボットコントローラー１０は、ロボット１を非図示の制御プログラムにより制御し、さらに物体識別装置８からの識別結果に基づき、対象物体を移動するようにアーム部３などの制御を行う。
【００３１】
次に、図２を用いて、本実施形態の物体識別装置８について説明する。図２は、本実施形態に係る物体識別装置の構成の一例を示すブロック図である。図２のように、物体識別装置８は、形状データ取得部１０１と、原点抽出部１０２と、立方体データ生成部１０３と、三角形分割部１０４と、認識部１０５と、モデルデータ生成部１０６と、モデルデータ登録部１０７と、登録モデルデータ記憶部１０８と、画像データ取得部１１１と、識別部１１２と、識別結果出力部１１３とを備える。
【００３２】
形状データ取得部１０１には、例えば、図３（ａ）のような検出対象物体の３次元形状情報（例えばＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）データ）が入力され、入力された検出対象物体の３次元形状情報を原点抽出部１０２に出力する。図３は、検出対象物体および原点を説明する図である。
原点抽出部１０２（基準点抽出部）は、形状データ取得部１０１が検出した検出対象物体の３次元形状情報が入力され、入力された検出対象物体の３次元形状情報から重心などの代表点２０１（本実施形態では、重心とし、以下、代表点２０１を重心２０１という）を原点として抽出し、抽出した原点情報と検出対象物体の３次元形状情報を立方体データ生成部１０３に出力する。例えば、図３（ｂ）のように、原点抽出部１０２は、検出対象物体２００の３次元形状情報に基づき、重心２０１を算出する。
【００３３】
立方体データ生成部１０３は、原点抽出部１０２が抽出した原点情報と検出対象物体の３次元形状情報とが入力され、入力された原点情報と検出対象物体の３次元形状情報に基づき、原点を重心として検出対象物体を内包する仮想的な立方体データを生成する。また、立方体データ生成部１０３は、生成した立方体データと検出対象物の３次元形状情報と原点情報とを三角形分割部１０４に出力する。図４は、本実施形態における検出対象物体を内包する仮想的な立方体を説明する図である。図４のように、仮想的な立方体は、原点２０１（図３の重心２０１）を重心とし、検出対象物体２００を内包する。また、記号２１１〜２１６は、立方体表面の各面を示している。
【００３４】
三角形分割部１０４は、立方体データ生成部１０３が生成した立方体データと検出対象物の３次元形状情報と原点情報が入力され、入力された立方体データから各面を順次、選択する。また、三角形分割部１０４は、選択した各面をそれぞれ２つの直角辺三角形に分割する。さらに、三角形分割部１０４は、生成した２つの直角二等辺三角形情報（各頂点の座標）と立方体データと検出対象物体の３次元形状情報と原点情報とを認識部１０５に出力する。図５は、仮想的な立方体の各面を直角二等辺三角形に分割する一例を説明する図である。図５のように、６つの面２１１〜２１６は、それぞれ２つの直角二等辺三角形に分割される。図５において、面２１２は頂点ａ２とａ４を結ぶ対角線で分割する例を説明したが、これに限られずに頂点ａ１とａ３を結ぶ対角線を用いて分割しても良い。
【００３５】
認識部１０５は、三角形分割部１０４が生成した直角二等辺三角形情報と立方体データと検出対象物体の３次元形状情報と原点情報、およびモデルデータ生成部１０６が生成したモデルデータが入力される。また、認識部１０５は、入力された立方体データと直角二等辺三角形情報に基づき、未登録処理の面の１つの直角二等辺三角形を選択する。そして、選択した直角二等辺三角形の各頂点および斜辺中点からの各視点に基づき生成された各モデルデータの特徴と登録モデルデータ記憶部１０８に記憶されている登録モデルデータの特徴とを比較することで、検出対象物体を認識する。すなわち、認識部１０５は、例えば、１つの頂点からの視点に基づくモデルデータの特徴と登録モデルデータの特徴とを比較し、その頂点からの視点のモデルデータの特徴が登録モデルデータの特徴を使って認識できるか否かを判別する。判別の結果、認識できた場合、認識部１０５は、未照会の頂点か斜辺かの視点によるモデルデータの特徴と登録モデルデータの特徴との比較による認識を繰り返す。そして、選択した１つの頂点または斜辺中点からの視点のモデルデータが、登録モデルデータの特徴を使って認識できた場合、登録モデルデータで認識が可能、すなわち、登録モデルデータとモデルデータを共用（兼用）可能と判断する。そして、認識部１０５は、モデルデータ登録部１０７に、選択した１つの頂点または斜辺中点からの視点の座標値を認識出来た登録モデルデータに対応付けて設定する指示を行う。一方、比較の結果、登録モデルデータの特徴を使って認識できなかった視点のモデルデータがあった場合、認識できなかった視点のモデルデータとその視点の座標（頂点情報）、およびそのモデルデータの登録指示と設定指示とをモデルデータ登録部１０７に出力する。
尚、この処理の初期状態では登録モデルデータは１つも無く、前記、および後記の処理の進行に伴い、必要最小数のモデルデータが登録されることになる。
さらに、認識部１０５は、選択された直角二等辺三角形の各頂点及び斜辺中点からの視点によるモデルデータを生成する指示をモデルデータ生成部１０６に出力する。
さらに、認識部１０５は、認識結果をモデルデータ登録部１０７に出力する。
【００３６】
図６は、直角二等辺三角形の各頂点からの視点で見たモデルデータを説明する図である。図６のように、例えば、画像３０１は、面２１１の頂点ａ１から検出対象物体２００を見た２次元画像情報であり、同様に画像３０２〜３０４は、各頂点ａ２〜ａ４から見た二次元画像情報である。図７は、直角二等辺三角形の各頂点及び斜辺中点からの視点で見たモデルデータを説明する図である。図７のように、検出対象物体２００が比較的、対称性の高い形状を有している場合、いくつかの方向から見た画像は近似しているため、それらの認識においては共通のモデルデータを用いることができる可能性がある。
【００３７】
モデルデータ生成部１０６は、認識部１０５からモデル生成指示と頂点情報とが入力され、入力されたモデル生成指示に応じて、入力された直角二等辺三角形の各頂点と斜辺中点からの視点の２次元画像を生成する。また、モデルデータ生成部１０６は、各視点の２次元画像ごとに特徴を抽出し、抽出した各視点の特徴をモデルデータとして生成し、生成したモデルデータを認識部１０５に出力する。
【００３８】
モデルデータ登録部１０７は、認識部１０５から認識結果と頂点情報と、生成されたモデルデータと、モデルデータを登録する指示が入力され、または、頂点情報と、登録モデルデータに頂点情報を対応付けて設定する指示とが入力される。また、モデルデータ登録部１０７は、入力された判別結果に基づき、モデルデータを登録する指示に応じて、モデルデータをモデルデータ登録部１０７に登録して記憶させ、登録したモデルデータに、その頂点または斜辺中点の座標値を対応付けて設定する。さらに、モデルデータ登録部１０７は、登録データに頂点情報を対応付けて設定する指示に応じて、登録済みモデルデータ（登録モデルデータ）に頂点情報を対応付けて登録モデルデータ記憶部１０８に設定して記憶させる。
【００３９】
登録モデルデータ記憶部１０８は、図８のように、特徴量であるモデルデータと頂点情報とが対応付けられて記憶されている。図８は、登録モデルデータ記憶部１０８に記憶されている情報の一例を説明する図である。図８のように、表形式で記憶され、モデルデータとそのモデルデータが生成された視点の座標（ｘ、ｙ、ｚ）とが対応付けられて記憶されている。また、図８では、モデルデータ４０１〜４０９を可視化して示しているが、モデルデータ４０１〜４０９は、それぞれ特徴量の集合である。また、認識部１０５の比較結果に基づき、同じモデルデータであると判別された視点の座標も対応付けて記憶させる。一例として、図７の頂点５０１からの視点のモデルデータ５１１と、頂点５０７からの視点のモデルデータ５１７との相関値が所定のしきい値以上であった場合、モデルデータ５１１のみ記憶され、モデルデータ５１１に頂点５０１と頂点５１７とが対応付けて記憶される。
【００４０】
画像データ取得部１１１は、カメラ６が撮像した画像信号を識別部１１２に出力する。
【００４１】
識別部１１２は、画像データ取得部１１１から取得された画像情報が入力される。また、識別部１１２は、登録モデルデータ記憶部１０８に登録されている登録モデルデータを順次、読み出す。さらに、識別部１１２は、読み出した登録モデルデータと入力された画像情報と比較することで、撮像された物体が登録されている検出対象物であるか否かを識別する。識別部１１２は、撮像された物体が登録されている検出対象物と識別された場合、登録モデルデータに対応付けて記憶されている座標値を読み出し、検出対象物体の位置、回転角度を算出し、判定結果と算出した検出対象物体の位置、回転角度とを識別結果出力部１１３に出力する。また、識別部１１２は、撮像された物体が登録されている検出対象物と識別されなかった場合、未照会の登録モデルデータと撮像された物体との比較を順次行い、登録されている全ての登録モデルデータを用いても撮像された物体を識別できなかった場合、識別できなかった情報を識別結果出力部１１３に出力する。
識別結果出力部１１３は、識別部１１２が判定した判定結果と算出した検出対象物体の位置、回転角度とが入力され、入力された判定した判定結果と算出した検出対象物体の位置、回転角度とを画像表示装置９に表示可能な表示データに変換して画像表示装置９に出力する。
【００４２】
［モデルデータ登録方法の説明］
次に、本実施形態における物体識別装置８のモデルデータ登録方法を、図３〜図５、図９、図１０、図１３〜図１７を用いて説明する。図１５〜図１７は、本実施形態における物体識別装置８のモデルデータの登録方法のフローチャートである。
【００４３】
まず、モデルデータ登録部１０７は、登録モデルデータを初期化する（ステップＳ１）。登録モデルデータを初期化するとは、登録モデルデータを記憶するメモリーを全てクリアするということである。
次に、形状データ取得部１０１には、検出対象物体２００の３次元形状情報（例えばＣＡＤデータ）が入力され、入力された検出対象物体の３次元形状情報を原点抽出部１０２に出力する（ステップＳ２、図３（ａ））。
次に、原点抽出部１０２には、検出対象物体２００の３次元形状情報が入力され、入力された検出対象物体の３次元形状情報から重心などの代表点を抽出し、抽出した代表点を原点２０１に設定する（ステップＳ３、図３（ｂ））。そして、原点抽出部１０２は、設定した原点情報と検出対象物体の３次元形状情報を立方体データ生成部１０３に出力する。
【００４４】
次に、立方体データ生成部１０３には、検出対象物体２００の３次元形状情報と原点情報が入力され、入力された検出対象物体の３次元形状情報と原点情報に基づき、原点を中心として検出対象物体を内部に含む立方体データを生成する（ステップＳ４、図４）。そして、立方体データ生成部１０３は、生成した立方体データと検出対象物体２００の３次元形状情報と原点情報を三角形分割部１０４に出力する。
次に、認識部１０５は、前記立方体の全ての面についての登録処理が終了したか否かを判定し（ステップＳ５）、判定の結果、全ての面の登録処理が終了してない場合（ステップＳ５；Ｎｏ）、ステップＳ６に進む。
【００４５】
次に、三角形分割部１０４には、生成された立方体データと検出対象物体の３次元形状情報と原点情報が入力され、入力された立方体データから６つの面の中から１つの面を選択する（ステップＳ６、図５、図９）。次に、三角形分割部１０４は、図９のように、選択した面を２つの直角二等辺三角形に分割する（ステップＳ７、図９）。
次に、三角形分割部１０４は、生成した２つの三角形情報（各頂点の座標）と検出対象物体の３次元形状情報と原点情報を認識部１０５に出力する。図９は、検出対象物体２００を内包する仮想立方体の各面を再帰的に直角二等辺三角形に分割して行く処理を説明する図である。
【００４６】
次に、認識部１０５には、生成された２つの三角形情報と検出対象物体２００の３次元形状情報と原点情報が入力される。そして、認識部１０５は、２つの直角二等辺三角形の処理が完了したか否かを判定し（ステップＳ７）、判定の結果、２つの直角二等辺三角形の処理が完了している場合（ステップＳ７；Ｙｅｓ）、ステップＳ５に戻り、まだ処理を行っていない面の処理を行う。
判定の結果、２つの直角二等辺三角形の処理が完了していない場合（ステップＳ７；Ｎｏ）、入力された２つの三角形情報（各頂点の座標）に基づき、未登録処理の直角二等辺三角形を選択する（ステップＳ８）。
次に、認識部１０５とモデル登録部１０７は、モデル登録処理を行う（ステップＳ９）。
【００４７】
次に、ステップＳ９のモデル登録処理の方法を、図１６のフローチャートを用いて説明する。認識部１０５は、選択した直角二等辺三角形の各頂点を図１０のルールに従って置き換え、さらに斜辺中点ｄの座標を算出する（ステップＳ１０１）。なお、分割後の直角二等辺三角形は、図１０のように８パターン７０１（型＃１）〜７０８（型＃８）に分類できる。そして、頂点ａ，ｂ，ｃ及び斜辺中点ｄを、各パターンに応じて図１０のように定義する。図１０は、二等辺三角形のパターン（型）と各頂点及び斜辺中点との関係を説明する図である。
【００４８】
次に、認識部１０５は、直角二等辺三角形の各頂点ａ、ｂ、ｃおよび斜辺中点ｄの全てにモデルデータが設定されているか否かを判定する（ステップＳ１０２）。判定の結果、直角二等辺三角形の頂点ａ、ｂ、ｃおよび斜辺中点ｄにモデルデータが設定されている場合（ステップＳ１０２；Ｙｅｓ）、ステップＳ１２１に進む。
ステップＳ１０２の判定の結果、直角二等辺三角形の頂点ａ、ｂ、ｃおよび斜辺中点ｄの中にモデルデータが設定されていない点がある場合（ステップＳ１０２；Ｎｏ）、認識部１０５は、モデルデータが未設定の頂点、あるいは斜辺中点のいずれかを選択する（ステップＳ１０３）。なお、選択された１つの直角二等辺三角形において、モデルデータが設定されている点が複数ある場合、点の選択の優先順位は、例えば、頂点ａが頂点ｂより高く、頂点ｂが頂点ｃより高く、頂点ｃが斜辺中点ｃより高くしてもよいが、本発明はこれに限られない。
【００４９】
次に、認識部１０５は、選択した頂点か斜辺中点から検出対象物体２００を見た２次元画像データの特徴であるモデルデータ（例えば頂点ａからの視点のモデルデータであれば、以下、視点ａのモデルデータという）を生成する指示と、選択した頂点または斜辺中点の座標と、検出対象物体の３次元形状情報と、原点情報とをモデルデータ生成部１０６に出力する。
次に、モデルデータ生成部１０６には、検出対象物体の３次元形状情報と、原点情報と、頂点または斜辺中点のモデルデータを生成する指示が入力される。モデルデータ生成部１０６は、与えられた指示に基づき、頂点または斜辺中点のモデルデータを生成し、生成した頂点または斜辺中点のモデルデータを認識部１０５に出力する（ステップＳ１０４）。
【００５０】
次に、認識部１０５は、ステップＳ１０３で選択した以外の選択した直角二等辺三角形における各頂点および斜辺中点からの視点によるモデルデータが登録モデルデータ記憶部１０８に設定されているか否かを判別する（ステップＳ１０５）。図９において、面２１２が選択された場合、先に直角二等辺三角形６０１の登録処理が終了し、次ぎに直角二等辺三角形６０２の登録処理を行う場合、頂点ａ１１とｃ１１のモデルデータはすでに頂点ａ１とｂ１のモデルデータとして設定されている。このように、すでに頂点や斜辺中点のモデルデータが、他の直角二等辺三角形で設定されている場合がある。
なお、登録とは、モデルデータ登録部１０７が、モデルデータ生成部１０６が生成した特徴量であるモデルデータを登録モデルデータ記憶部１０８に記憶することである。また、設定されるとは、直角二等辺三角形の各頂点または斜辺中点におけるモデルデータが、登録済みモデルデータで認識可能な場合に、認識可能なモデルデータにその頂点または斜辺中点が対応付けられて設定されていることである。
【００５１】
ステップＳ１０５の判別の結果、選択した以外の頂点および斜辺中点からの視点によるモデルデータが登録モデルデータ記憶部１０８に設定されている場合（ステップＳ１０５；Ｙｅｓ）、ステップＳ１０７に進む。
ステップＳ１０５の判定の結果、選択した以外の頂点および斜辺中点からの視点によるモデルデータが登録モデルデータ記憶部１０８に設定されていない場合（ステップＳ１０５；Ｎｏ）、認識部１０５は、他に登録済みのモデルデータが登録モデルデータ記憶部１０８に登録されているか否かを判別する（ステップＳ１０６）。他に登録済みのモデルデータが登録モデルデータ記憶部１０８に登録されていない場合（ステップＳ１０６；Ｎｏ）、ステップＳ１１０に進む。
【００５２】
ステップＳ１０６で、他に登録モデルデータが登録されていないと判別された場合（ステップＳ１０６；Ｎｏ）、認識部１０５は、選択した頂点または斜辺中点のモデルデータと、選択した頂点または斜辺中点の座標値とをモデルデータ登録部１０７に出力し、ステップＳ１１１に進む。
【００５３】
他に登録モデルデータが登録モデルデータ記憶部１０８に登録されている場合（ステップＳ１０６；Ｙｅｓ）、認識部１０５は登録モデルデータ記憶部１０８に登録されているモデルデータの中から１つ選択する（ステップＳ１０７）。
【００５４】
次に、認識部１０５は、ステップＳ１０７で選択した登録済みのモデルデータを用いて、選択した頂点または斜辺中点の視点から検出対象物体２００を認識できるか否かを判定する（ステップＳ１０８）。すなわち、認識部１０５は、選択した頂点または斜辺中点のモデルデータとステップＳ１０７で選択した登録モデルデータを比較することで、選択した頂点または斜辺中点の視点から検出対象物体２００を認識できるか否かを判定する。
ステップＳ１０８の判定の結果、選択した登録済みのモデルデータを用いて、選択した頂点または斜辺中点からの視点で検出対象物体２００を認識できた場合（ステップＳ１０８；Ｙｅｓ）、認識部１０５は、判定結果と認識できた登録モデルデータと頂点情報または斜辺中点情報をモデルデータ登録部１０７に出力する。この場合、ステップＳ１０７で選択した登録済みのモデルデータで認識できたため、選択した頂点または斜辺中点のモデルデータと登録モデルデータが一致または類似していることになる。
次に、モデルデータ登録部１０７には、認識出来た登録済みのモデルデータと頂点情報または斜辺中点情報が入力され、入力された登録済みのモデルデータと頂点情報または斜辺中点情報に基づき、登録モデルデータ記憶部１０８に登録済みのモデルデータに選択した頂点または斜辺中点の座標値を対応付けて設定する（ステップＳ１０９）。設定後、ステップＳ１０２に戻る。
【００５５】
ステップＳ１０８の判定の結果、登録モデルデータ記憶部１０８に登録されているモデルデータを用いて頂点または斜辺中点からの視点で検出対象物体２００を認識できない場合（ステップＳ１０８；Ｎｏ）、認識部１０５は、登録モデルデータ記憶部１０８に未比較の登録済みモデルデータがあるか否かを判定する（ステップＳ１１０）。
ステップＳ１１０の判定の結果、登録モデルデータ記憶部１０８に未比較のモデルデータが登録されている場合（ステップＳ１１０；Ｙｅｓ）、ステップＳ１０７に戻る。
ステップＳ１１０の判定の結果、登録モデルデータ記憶部１０８に未比較のモデルデータが登録されていない場合（ステップＳ１１０；Ｎｏ）、認識部１０５は、ステップＳ１０３で選択された頂点または斜辺中点の座標値と、ステップＳ１０４で生成された頂点または斜辺中点のモデルデータをモデルデータ登録部１０７に出力する。
【００５６】
次に、モデル登録部１０７には、頂点または斜辺中点の座標値と、頂点または斜辺中点のモデルデータが入力される。モデルデータ登録部１０７は、入力された頂点または斜辺中点のモデルデータ、すなわちステップＳ１０４で生成されたモデルデータを新たな登録モデルデータとして登録モデルデータ記憶部１０８に記憶させることで登録する。また、モデルデータ登録部１０７は、入力された頂点または斜辺中点の座標値を登録したモデルデータと対応付けて設定する（ステップＳ１１１）。登録及び設定処理の終了後、ステップＳ１０２に戻る。
選択した直角二等辺三角形の全ての頂点ａ、ｂ、ｃおよび斜辺中点ｄについてステップＳ１０２〜ステップＳ１１１を繰り返す。
【００５７】
図１３は、面２１１を２つの直角二等辺三角形に分割し、直角二等辺三角形の各頂点及び斜辺中点からの視点によるモデルデータを説明する図である。図１３のように、面２１１を２つの直角二等辺三角形８２１と８２２に分割し、直角二等辺三角形８２１の各頂点８０１〜８０３及び斜辺中点８０９からの視点によるそれぞれのモデルデータ８１１、８１５、８１７、８１９が生成される。
【００５８】
ステップＳ１０２の判定の結果、直角二等辺三角形の各頂点および斜辺中点の４箇所にモデルデータが設定されている場合（ステップＳ１０２；Ｙｅｓ）、認識部１０５は、登録モデルデータ記憶部１０８に記憶されている直角二等辺三角形の頂点および斜辺中点に設定されている各モデルデータを読み出す。そして、認識部１０５は、読み出した直角二等辺三角形の頂点および斜辺中点のモデルデータ同士が互いに一致するか否かを判定する（ステップＳ１２１）。
ステップＳ１２１の判定の結果、４箇所のモデルデータ同士が互いに登録モデルデータと一致する場合（ステップＳ１２１；Ｙｅｓ）、選択した直角二等辺三角形の再分割指示を三角形分割部１０４に指示せず再分割を終了し、選択した直角三角形についての登録処理を終了する。
【００５９】
ステップＳ１２１の判定の結果、４箇所のモデルデータ同士が互いに一致しない場合（ステップＳ１２１；Ｎｏ）、認識部１０５は、ステップＳ８で選択された直角二等辺三角形を再分割する指示を三角形分割部１０４に出力する。
次に、三角形分割部１０４には、直角二等辺三角形を再分割する指示が入力される。三角形分割部１０４は、入力された再分割指示に基づきステップＳ８で選択された直角二等辺三角形を２つの直角二等辺三角形に二等分割し、分割した２つの直角二等辺三角形の頂点座標情報を認識部１０５に出力する（ステップＳ１２２）。
【００６０】
三角形分割部１０４は、再分割された２つの直角二等辺三角形のうち１つの２つの直角二等辺三角形を選択し、ステップＳ１０１〜ステップＳ１２１を３つの頂点と斜辺中点からの視点から見たモデルデータ同士が互いに一致するまで再帰的に繰り返す（ステップＳ１２３）。
次に、三角形分割部１０４と認識部１０５とモデルデータ生成部１０６とモデルデータ登録部１０７は、再分割された２つの直角二等辺三角形のうちの未処理の直角二等辺三角形を選択し、ステップＳ１０１〜ステップＳ１２１を３つの頂点と斜辺中点からの視点から見たモデルデータ同士が互いに一致するまで、分割とモデルデータの登録と再帰的に繰り返す（ステップＳ１２４）。以上で、登録モデルデータおよびモデルデータの登録処理（ステップＳ９）を終了する。
図１４は、直角二等辺三角形の３頂点及び斜辺中点の各視点から見たモデルデータが一致する例を説明する図である。図１４のように、直角二等辺三角形８５１の頂点８６１〜８６３及び斜辺中点８６４の各視点から見たモデルデータ８７１〜８７４を一致しているとして扱う。
【００６１】
［フローチャートにおけるモデルデータ登録処理の一例の説明］
具体的な処理方法の一例を説明する。認識部１０５は、まず分割された直角二等辺三角形のうちの一方を選択する（ステップＳ８）。この時点では、まだ登録モデルデータ記憶部１０８にはモデルデータが登録されていないとする。
次に、認識部１０５は、直角二等辺三角形の各頂点及び斜辺中点にモデルデータがまだ設定されていないため（ステップＳ１０２；Ｎｏ）、頂点ａを選択する（ステップＳ１０３）。
次に、モデルデータ生成部１０６は、選択した頂点ａのモデルデータを生成する（ステップＳ１０４）。次に、認識部１０５は、登録モデルデータ記憶部１０８に他の頂点ｂ、ｃまたは斜辺中点ｄにモデルデータが設定されていないか判定する（ステップＳ１０５）。この場合、他の頂点ｂ、ｃまたは斜辺中点ｄは、まだモデルデータに対応付けられて設定されていないため（ステップＳ１０５；Ｎｏ）、認識部１０５は、登録モデルデータ記憶部１０８にすでに登録済みモデルデータがあるか否かを判別する（ステップＳ１０６）。この場合、モデルデータが、まだ何も登録されていないので、ステップＳ１１１に進み、モデルデータ登録部１０７は、ステップＳ１０４で生成された頂点ａのモデルデータを登録し、さらに頂点ａの座標値を登録したモデルデータに対応付けて登録する（ステップＳ１１０）。
【００６２】
ステップＳ１０２に戻り、まだ頂点ａのみにしかモデルデータが設定されていないため（ステップＳ１０２；Ｎｏ）、認識部１０５は、頂点ｂを選択する（ステップＳ１０３）。次に、モデルデータ生成部１０６は、頂点ｂのモデルデータを生成する（ステップＳ１０４）。
次に、認識部１０５は、すでに頂点ａにモデルデータが設定されているので、設定済みの頂点があると判定する（ステップＳ１０５；Ｙｅｓ）。次に、認識部１０５は、頂点ａに設定されているモデルデータ、すなわち頂点ａのモデルデータを選択する（ステップＳ１０７）。
次に、認識部１０５は、頂点ｂからの視点を選択した登録済みの頂点ａのモデルデータで認識できるか否かを判別する（ステップＳ１０８）。すなわち、頂点ａのモデルデータと頂点ｂのモデルデータを比較することで、頂点ｂからの視点を頂点ａのモデルデータで認識できるか否かを判別する。
頂点ｂからの視点をこの頂点ａのモデルデータで認識できた場合（ステップＳ１０８；Ｙｅｓ）、モデルデータ登録部１０７は、頂点ａのモデルデータに頂点ｂの座標値を対応付けて登録モデルデータ記憶部１０８に設定する（ステップＳ１０９）。
【００６３】
再びステップＳ１０２に戻り、認識部１０５は、次に頂点ｃを選択する（ステップＳ１０２〜Ｓ１０３）。次に、モデルデータ生成部１０６は、頂点ｃのモデルデータを生成する（ステップＳ１０４）。
次に、認識部１０５は、すでに頂点ａ及び頂点ｂにモデルデータが設定されているので、設定済みの頂点があると判定する（ステップＳ１０５；Ｙｅｓ）。次に、認識部１０５は、頂点ａに設定されているモデルデータ、すなわち頂点ａのモデルデータを選択する（ステップＳ１０７）。
次に、認識部１０５は、登録済みの頂点ａのモデルデータを用いて頂点ｃからの視点を認識出来るか否かを判別する（ステップＳ１０８）。頂点ｃからの視点を頂点ａのモデルデータで認識できた場合（ステップＳ１０８；Ｙｅｓ）、モデルデータ登録部１０７は、頂点ａのモデルデータに頂点ｃの座標値を対応付けて登録モデルデータ記憶部１０８に設定する（ステップＳ１０９）。
【００６４】
再びステップＳ１０２に戻り、認識部１０５は、次に斜辺中点ｄを選択する（ステップＳ１０２〜Ｓ１０３）。次に、モデルデータ生成部１０６は、斜辺中点ｄのモデルデータを生成する（ステップＳ１０４）。
次に、認識部１０５は、すでに頂点ａ、ｂ及びｃにモデルデータが設定されているので、設定済みの頂点があると判定する（ステップＳ１０５；Ｙｅｓ）。次に、認識部１０５は、頂点ａに設定されているモデルデータ、すなわち頂点ａのモデルデータを選択する（ステップＳ１０７）。
次に、認識部１０５は、登録済みの頂点ａのモデルデータを用いて斜辺中点ｄからの視点を認識出来るか否かを判別する（ステップＳ１０８）。斜辺中点ｄからの視点を頂点ａのモデルデータで認識できた場合（ステップＳ１０８；Ｙｅｓ）、モデルデータ登録部１０７は、頂点ａのモデルデータに斜辺中点ｄの座標値を対応付けて登録モデルデータ記憶部１０８に設定する（ステップＳ１０９）。
再びステップＳ１０２に戻り、選択した直角二等辺三角形の頂点ａ〜ｃ及び斜辺中点ｄ全てにモデルデータが設定済みであるため（ステップＳ１０２；Ｙｅｓ）、認識部１０５は、各頂点と斜辺中点に設定されているモデルデータ同士が互いに一致するか否か判定する（ステップＳ１２１）。各頂点と斜辺中点のモデルデータ同士が互いに一致するため（ステップＳ１２１；Ｙｅｓ）、認識部１０５は、選択した直角に等辺三角形の再分割指示は行わず、選択した直角三角形についての登録処理を終了する。
【００６５】
例えば、頂点ａ〜ｃ及び斜辺中点ｄに設定されているモデルデータが一致しない場合、すなわち１つのモデルデータで頂点ａ〜ｃ及び斜辺中点ｄの全ての視点から認識出来なかった場合（ステップＳ１２１；Ｎｏ）、認識部１０５は、選択した直角二等三角形について三角形分割部１０４への再分割指示を行い、再分割した直角二等辺三角形の一方を選択し、ステップＳ１０１〜ステップＳ１２２を行う。
【００６６】
例えば、ステップＳ１０８において、頂点ｂからの視点が視点ａのモデルデータで認識出来なかった場合（ステップＳ１０８；Ｎｏ）、認識部１０５は、未比較の登録済みモデルデータが登録モデルデータ記憶部１０８にあるか否か判別する（ステップＳ１１０）。登録済みのモデルデータが無い場合（ステップＳ１１０；Ｎｏ）、モデルデータ登録部１０７は、頂点ｂのモデルデータを新たなモデルデータとして登録モデルデータ記憶部１０８に登録し、登録した頂点ｂのモデルデータに頂点ｂの座標値を対応付けて設定する（ステップＳ１１１）。
また、ステップＳ１０８において、頂点ｃからの視点が視点ａのモデルデータで認識出来なかった場合（ステップＳ１０８；Ｎｏ）、認識部１０５は、頂点ｂのモデルデータ及び、すでに登録済みのモデルデータを用いて認識が出来るか判別する（ステップ１０７〜Ｓ１０８）。
このように、各頂点及び斜辺中点からの視点について、登録モデルデータ記憶部１０８に登録済みのモデルデータを順次用いて認識ができるか否かを判別していく。この場合、１つの登録モデルデータで全ての頂点および斜辺中点の視点を認識出来なかったため（ステップＳ１２１；Ｎｏ）、認識部１０５は、選択した直角二等三角形について三角形分割部１０４への再分割指示を行う。次に、三角形分割部１０４は、選択された直角二等辺三角形を再分割する（ステップＳ１２２）。そして、再分割された各直角二等辺三角形について、それぞれ１つのモデルデータで認識できるまで再帰的に分割して処理を行う（ステップＳ１２３、Ｓ１２４）。
【００６７】
次に、ステップＳ８で選択した一方の二等辺直角三角形に対する登録と設定処理が終了している例について説明する。直角二等辺三角形の頂点ａを選択後（ステップＳ１０３）、登録モデルデータ記憶部１０８に、例えば、すでに頂点ｂにモデルデータが対応付けられて設定されている場合（ステップＳ１０５；Ｙｅｓ）、認識部１０５は頂点ｂに対応付けられて設定されている登録済みのモデルデータを選択する（ステップＳ１０７）。
次に、認識部１０５は、選択した頂点ｂに対応付けられている登録済みのモデルデータを用いて頂点ａからの視点を認識出来るか否かを判定する（ステップＳ１０８）。選択した頂点ｂに対応付けられている登録済みのモデルデータで認識可能だった場合（ステップＳ１０８；Ｙｅｓ）、モデルデータ登録部１０７は、選択した頂点ｂに対応付けられている登録済みのモデルデータに、頂点ａの座標値を対応付けて登録モデルデータ記憶部１０８に設定する（ステップＳ１０９）。
次に、頂点ｃ及び斜辺中点ｄからの視点も頂点ａと同様に、選択された頂点ｂの登録モデルデータで認識できた場合、この直角二等辺三角形については新たなモデルデータの登録は行わず、認識出来た頂点ｂに対応付けられている登録済みのモデルデータに、頂点ａとｃ及び斜辺中点ｄの座標値を対応付けて設定するのみで、選択した直角二等辺三角形の登録処理を終了する。
【００６８】
次に、直角二等辺三角形の頂点ａを選択後（ステップＳ１０３）、登録モデルデータ記憶部１０８に他の頂点ｂ、ｃおよび斜辺中点ｄのモデルデータは設定されていず（ステップＳ１０５；Ｎｏ）、登録モデルデータ記憶部１０８に他のモデルデータが登録されている場合について説明する。
認識部１０５は、登録済みのモデルデータの１つを選択する（ステップＳ１０７）。次に、認識部１０５は、選択したモデルデータを用いて頂点ａからの視点を認識出来るか否かを判定する（ステップＳ１０８）。選択したモデルデータで認識可能だった場合（ステップＳ１０８；Ｙｅｓ）、モデルデータ登録部１０７は、選択したモデルデータに頂点ａの座標値を対応付けて登録モデルデータ記憶部１０８に設定する（ステップＳ１０９）。
次に、頂点ｂ、ｃ及び斜辺中点ｄからの視点も頂点ａと同様に、選択されたモデルデータで認識できた場合、認識部１０５とモデルデータ登録部１０７は、この直角二等辺三角形については新たなモデルデータの登録は行わない。そして、認識部１０５とモデルデータ登録部１０７は、認識出来たモデルデータに各頂点及び斜辺中点の座標値を対応付けて設定するのみで、選択した直角二等辺三角形の登録処理を終了する。
【００６９】
図９の例では、面２１２は直角二等辺三角形６０１と６０２に分割し、直角二等辺三角形６０１は、さらに直角二等辺三角形６０３と６０４とに再分割され、直角二等辺三角形６０３に対応する各頂点（ａ２，ｂ２，ｃ２）及び斜辺中点に対応付けられている４つのモデルデータ同士が互いに一致したため、三角形分割部１０４は分割を終了する。そして、直角二等辺三角形６０４は、さらに直角二等辺三角形６０５と６０６とに再分割され、直角二等辺三角形６０５に対応する各頂点（ａ４，ｂ４，ｃ４）及び斜辺中点に対応付けられている４つのモデルデータ同士が互いに一致し、さらに、直角二等辺三角形６０６に対応する各頂点（ａ５，ｂ５，ｃ５）及び斜辺中点に対応付けられた４つのモデルデータ同士が互いに一致したため、三角形分割部１０４は三角形６０５と６０６の分割を終了する。  
次に、三角形分割部１０４は、未処理の三角形６０２に戻り、同様に３つの頂点と斜辺中点に対応付けられたモデルデータ同士が互いに一致するまで再帰的に繰り返して、直角二等辺三角形６０７と６０８に分割する。
【００７０】
［直角二等辺三角形の分割とモデルデータ登録処理の具体例］
次に、本実施形態における物体識別装置８のモデルデータの登録処理の具体的な例を、図３〜図５、図９〜図１４を用いて説明する。まず、形状データ取得部１０１は、検出対象物体２００の３次元形状情報を取得し（図３（ａ））、原点抽出部１０２は、取得した３次元形状情報から重心（中心）などの原点２０１を抽出する（図３（ｂ））。次に、立方体データ生成部１０３は、原点２０１を重心とし、検出対象物体２００を内包する仮想的な立方体データを生成する（図４）。次ぎに、三角形分割部１０４は、生成された立方体の各面２１１〜２１６をそれぞれ直角二等辺三角形に分割する（図５、図９）。
【００７１】
次に、三角形分割部１０４は、図９のように、立方体の１つの面、例えば面２１２を選択し、選択した面２１２の２つの直角二等辺三角形６０１と６０２の中から、どちらか一方の直角二等辺三角形、例えば直角二等辺三角形６０１を選択する。図１１のように、７０６の直角二等辺三角形を再分割すると、パターン７０１とパターン７０４の直角二等辺三角形が生成される。そして、パターン７０１（型＃１）〜パターン７０２（型＃７）をそれぞれ再分割した場合、再分割後の２つの直角二等辺三角形のパターンおよび有する頂点は、図１２のような関係である。図１１は、パターン７０６（型＃６）の直角二等辺三角形を二分割した後に生成される直角二等辺三角形を説明する図である。図１２は、分割前の直角二等辺三角形と分割後の直角二等辺三角形の各頂点と斜辺中点との関係を説明する図である。
【００７２】
直角二等辺三角形６０１は、パターン７０３に相当するため、三角形分割部１０４は、各頂点がａ１，ｂ１，ｃ１に変換され、さらに斜辺ａ１ｂ１の中点ｄ１を算出する。認識部１０５は、図１６と図１７におけるステップＳ１０１〜ステップＳ１２５を繰り返し、モデルデータ登録部１０７がモデルデータの登録、または登録済みモデルデータに各頂点と斜辺中点と対応付けた設定を行う。
そして、認識部１０５は、登録モデルデータ記憶部１０８に登録されているモデルデータ、または、すでにモデルデータが設定されている頂点に対応付けられている登録済みのモデルデータを用いて、順次、各頂点ａ１，ｂ１，ｃ１と斜辺中点ｄ１からの視点が認識出来るか否かを判別する。この場合、選択するモデルデータに優先順位は、選択された直角二等辺三角形の頂点にすでにモデルデータが設定されていれば、設定済みのモデルデータを用い、設定されていない場合に選択した直角二等辺三角形の各頂点及び斜辺中点と対応付けられていない他のモデルデータを選択する。
また、直角二等辺三角形における頂点および斜辺中点の選択の優先順位は、頂点ａ１が頂点ｂ１より高く、頂点ｂ１が頂点ｃ１より高く、頂点ｃ１は斜辺中点ｄ１より高い。例えば、頂点ａ１のモデルデータで他の頂点ｂ１，ｃ１および斜辺中点ｄ１からの視点が認識出来た場合、モデルデータ登録部１０７は、頂点ａ１のモデルデータのみが新たなモデルデータとして登録モデルデータ記憶部１０８に登録する。さらに、モデルデータ登録部１０７は、登録した頂点ａ１のモデルデータのモデルデータに頂点ａ１、ｂ１、ｃ１、及び斜辺中点ｄ１の座標値を対応付けて設定し、この直角二等辺三角形６０１の分割を終了する。
【００７３】
一方、登録モデルデータ記憶部１０８に登録されている登録モデルデータを用いて、認識でき無い視点がある場合、すなわち、各頂点及び斜辺中点に対応付けられている４つのモデルデータ同士が互いに一致しないため、三角形分割部１０４は、直角二等辺三角形６０１を直角二等辺三角形６０３と６０４とに再分割する。
次に、三角形分割部１０４は、直角二等辺三角形６０３を選択し、直角二等辺三角形６０１のときと同様に、各頂点及び斜辺中点に対応付けられているモデルデータ同士が互いに一致するか否か、すなわち、１つの登録済みモデルデータを用いて、全ての頂点および斜辺中点からの視点が認識出来るか否を判別する。認識部１０５は、直角二等辺三角形６０３に関して、各頂点ａ２，ｂ２，ｃ２及び斜辺中点ｄ２の４点が頂点ａ２の登録済みモデルデータを用いて認識出来たと判定する。この場合、三角形分割部１０４は直角二等辺三角形６０３の再分割は行わず、モデルデータ登録部１０７は、頂点ａ２のモデルデータに、頂点ａ２の座標と対応付けて登録モデルデータ記憶部１０８に記憶させて登録する。次に、モデルデータ登録部１０７は、頂点ａ２の登録済みモデルデータに頂点ｂ２，ｃ２及び斜辺中点ｄ２の座標と対応付けて登録モデル記憶部１０８に設定する。
【００７４】
直角二等辺三角形６０３の残りの直角二等辺三角形６０４についても、同様に、認識部１０５は、１つの登録済みモデルデータを用いて各頂点ａ３，ｂ３，ｃ３及び斜辺中点ｄ３からの視点を認識できるか否かを判定する。直角二等辺三角形６０４に１つの登録済みモデルデータを用いて認識できない視点があった場合、三角形分割部１０４は、直角二等辺三角形６０４を直角二等辺三角形６０５と６０６とに再分割する。認識部１０５は、直角二等辺三角形６０５と６０６それぞれについて、登録済みモデルデータを用いて、各視点のモデルデータを認識できるか否かを判定する。
そして、直角二等辺三角形６０５と６０６について登録済みモデルデータを用いて、各視点のモデルデータを認識できない視点のモデルデータがあった場合、三角形分割部１０４は、直角二等辺三角形を再分割する。
二等辺三角形６０１の残りの直角二等辺三角形６０２についても同様の処理を行う。
【００７５】
このように、直角二等辺三角形に分割し、その一方を選択して、選択した直角二等辺三角形の各頂点及び斜辺中点からの視点が、１つの登録済みモデルデータを用いて、各視点を認識できるか否かを判定する。次に、判定結果に基づき、モデルデータの登録処理と、登録済みモデルデータで認識できた頂点及び斜辺中点と登録済みのモデルデータを対応付けた設定処理と、直角二等辺三角形の再分割処理とを再帰的に繰り返す。
そして、全ての面２１１〜２１６について、これらの再帰的処理を行い、順次、モデルデータを登録、各頂点及び斜辺中点を登録済みモデルデータに対応付けて設定して行く。
【００７６】
以上のように、本実施形態によれば、３次元の検出対象物体の画像を直角二等辺三角形の分割、各頂点及び斜辺中点からの視点によるモデルデータが、登録済みモデルデータを用いて認識できるか否かを判定する。そして、登録済みモデルデータで認識出来ない場合には、モデルデータの登録を行い、登録済みモデルデータで認識できた場合には、その登録済みモデルデータに認識出来た頂点または斜辺中点を対応付けて設定する。そして、各頂点及び斜辺中点に対応付けられて設定されたモデルデータ同士が互いに一致しない場合、直角二等辺三角形の再分割を行って登録済みモデルデータによる認識を行う。一方、直角二等辺三角形の各頂点及び斜辺中点に対応付けられたモデルデータ同士が互いに一致する場合、すなわち１つの登録済みモデルデータで各頂点及び斜辺中点からの視点によるモデルデータを認識出来た場合、直角二等辺三角形の再分割を停止する。このように、登録されるモデルデータ、及び再帰的に行われる直角三角形の再分割とが、規則に基づいているので、登録されるモデルデータ数が従来技術と比較して削減でき、この結果、登録モデルデータに必要な記憶容量を削減できる。
【００７７】
［直角二等辺三角形の再帰的分割方法の説明］
次に、三角形分割部１０４が直角二等辺三角形を再帰的に分割する処理について、図１８〜図２０を用いて説明する。図１８〜図１９は、直角二等辺三角形の再帰的２分割の手順を説明する図である。
図１８のような頂点ａ１〜ａ４で囲まれた面を用いて説明する。まず、三角形分割部１０４は、対角線ａ１ａ３により、２つのａ１ａ２ａ３で囲まれた直角二等辺三角形（以下、三角形ａ１ａ２ａ３という）、三角形ａ１ａ３ａ４に分割する。次に、三角形分割部１０４は、三角形ａ１ａ３ａ４を選択し、選択した三角形ａ１ａ３ａ４の斜辺ａ１ａ３の中点であるａ５を算出し、三角形ａ１ａ３ａ４を、三角形ａ３ａ４ａ５と三角形ａ１ａ４ａ５に再分割する。次に、三角形分割部１０４は、三角形ａ１ａ２ａ３を選択し、選択した三角形ａ１ａ２ａ３を、三角形ａ１ａ２ａ５と三角形ａ２ａ３ａ５に再分割する。
次に、三角形分割部１０４は、三角形ａ２ａ３ａ５を選択し、選択した三角形ａ２ａ３ａ５の斜辺ａ２ａ３の中点であるａ２１を算出し、三角形ａ２ａ３ａ５を、三角形ａ２ａ５ａ２１と三角形ａ３ａ５ａ２１に再分割する。同様に、角形分割部１０４は、三角形ａ１ａ２ａ５を三角形ａ１ａ５ａ２２と三角形ａ２ａ５ａ２２に再分割する。
三角形ａ１ａ２ａ３の再分割は、ここで終了する。すなわち、位置変化に対して見え方があまり変化しない方向では、より大きな分割となる。
【００７８】
次に、三角形分割部１０４は、三角形ａ３ａ４ａ５を選択し、選択した三角形ａ３ａ４ａ５の斜辺ａ３ａ４の中点であるａ６を算出し、三角形ａ３ａ４ａ５を、三角形ａ３ａ５ａ６と三角形ａ４ａ５ａ６に再分割する。次に、三角形分割部１０４は、三角形ａ４ａ５ａ６を選択し、選択した三角形ａ４ａ５ａ６の斜辺ａ４ａ５の中点であるａ７を算出し、三角形ａ４ａ５ａ６を、三角形ａ５ａ６ａ７と三角形ａ４ａ６ａ７に再分割する。次に、三角形分割部１０４は、三角形ａ５ａ６ａ７を選択し、選択した三角形ａ５ａ６ａ７の斜辺ａ５ａ６の中点であるａ８を算出し、三角形分割部１０４は、三角形ａ５ａ６ａ７を、三角形ａ５ａ７ａ８と三角形ａ６ａ７ａ８に再分割する。次に、三角形分割部１０４は、三角形ａ５ａ７ａ８を選択し、選択した三角形ａ５ａ７ａ８の斜辺ａ５ａ７の中点であるａ９を算出し、三角形ａ５ａ７ａ８を、三角形ａ５ａ８ａ９と三角形ａ７ａ８ａ９に再分割する。
【００７９】
次に、三角形分割部１０４は、三角形ａ５ａ８ａ９を選択し、選択した三角形ａ５ａ８ａ９の斜辺ａ５ａ８の中点であるａ１０を算出し、三角形ａ５ａ８ａ９を、三角形ａ５ａ９ａ１０と三角形ａ８ａ９ａ１０に再分割する。次に、三角形分割部１０４は、三角形ａ８ａ９ａ１０を選択し、選択した三角形ａ８ａ９ａ１０の斜辺ａ８ａ９の中点であるａ１１を算出し、三角形ａ８ａ９ａ１０を、三角形ａ８ａ１０ａ１１と三角形ａ９ａ１０ａ１１に再分割する。次に、三角形分割部１０４は、三角形ａ９ａ１０ａ１１を選択し、選択した三角形ａ９ａ１０ａ１１の斜辺ａ９ａ１０の中点であるａ１２を算出し、三角形ａ９ａ１０ａ１１を、三角形ａ９ａ１１ａ１２と三角形ａ１０ａ１１ａ１２に再分割する。
【００８０】
また、三角形ａ１ａ３ａ５が、再帰的に分割され、三角形ａ９ａ１１ａ１２と三角形ａ１０ａ１１ａ１２まで分割する例を説明したが、わずかの位置変化で見え方が大きく異なる方向は、直角二等辺三角形はより細かく再分割されることを意味している。
【００８１】
図１９は、別の再分割の例である。三角形分割部１０４は、正方形ａ１ａ２ａ３ａ４を三角形ａ１ａ２ａ３（型＃４）と三角形ａ２ａ３ａ４（型＃３）に分割後、三角形ａ１ａ２ａ３（型＃４）を選択し、選択した三角形ａ１ａ２ａ３（型＃４）を斜辺中点ａ５の垂線により型＃６と型＃７の二等辺三角形に分割する。同様に、三角形分割部１０４は、型＃７の二等辺三角形を斜辺中点ａ２２の垂線により型＃２と型＃４の二等辺三角形に分割する。同様に、三角形分割部１０４は、型＃６の二等辺三角形を斜辺中点ａ３１の垂線により型＃１と型＃４の直角二等辺三角形に分割する。
【００８２】
図２０は、直角二等辺三角形を再帰的に分割する面の分割数を説明する図である。例えば、正方形ｂ１ｂ２ｂ３ｂ４の最大の分割数を２ｎ＋１に設定し、ｎ＝５の場合、３３分割である。この場合、図１９のように、１回目の分割は、三角形ｂ１ｂ２ｂ４と三角形ｂ２ｂ３ｂ４に分割し、２回目の分割は、三角形ｂ１ｂ２ｂ４を三角形ｂ１ｂ２ｂ５と三角形ｂ１ｂ４ｂ５に分割し、３回目の分割は、三角形ｂ１ｂ４ｂ５を三角形ｂ１ｂ５ｂ６と三角形ｂ４ｂ５ｂ６に分割する。以後、分割を繰り返していくと、９回目の分割は、三角形ｂ４ｂ９ｂ１０を三角形ｂ４ｂ１０ｂ１１と三角形ｂ９ｂ１０ｂ１１とに分割する。このように、正方形の最大の分割数、すなわち１辺の画素数を２ｎ＋１に設定することで、図１９のように整数系で誤差無く再分割していくことができる。
【００８３】
以上のように、正方形の１辺の画素数を２ｎ＋１に設定することで、整数系で再分割できるため、認識部１０５が比較のための演算を行う際の演算量を削減することができる。
【００８４】
［第２実施形態］
次に、第１実施形態で生成されたモデルデータを用いて物体を識別する方法を、図２１を用いて説明する。図２１は、物体識別装置の識別手順のフローチャートである。
画像データ取得部１１１には、カメラ６が撮像した画像が入力され、入力された画像を識別部１１２に出力する（ステップＳ２０１）。
次に、識別部１１２には、取得された画像情報が入力される。そして、識別部１１２は、登録モデルデータ記憶部１０８から、登録されているモデルデータを順次読み出し（ステップＳ２０２）、読み出したモデルデータと入力された画像情報とを比較する（ステップＳ２０３）。
次に、識別部１１２は、登録済みモデルデータを用いて撮像された画像情報に含まれる物体を識別できた場合（ステップＳ２０３；Ｙｅｓ）、撮像された物体と登録モデルデータ記憶部１０８に記憶されている対象物体とが同じであると識別し、識別結果を識別結果出力部１１３に出力する（ステップＳ２０５）。
【００８５】
撮像された画像情報をステップＳ２０２で読み出したモデルデータで識別できなかった場合（ステップＳ２０３；Ｎｏ）、登録されている全ての登録モデルデータと撮像された画像情報との比較が終了したか判別する（ステップＳ２０４）。登録されている全てのモデルデータと撮像された画像情報との比較が終了していない場合（ステップＳ２０４；Ｎｏ）、識別部１１２は、ステップＳ２０２〜ステップＳ２０４を繰り返す。
登録されている全てのモデルデータと撮像された画像情報とが一致しない場合（ステップＳ２０４；Ｙｅｓ）、撮像された物体と登録モデルデータ記憶部１０８に登録されている対象物体とが異なると識別し、識別結果を識別結果出力部１１３に出力する（ステップＳ２０５）。
次に、識別結果出力部１１３には、識別結果が入力され、入力された識別結果を画像表示装置９に出力する。
画像表示装置９には、識別結果が入力され、入力された識別結果を表示する。
【００８６】
また、第２実施形態では、識別する物体を１方向から撮像した画像情報と登録モデルデータとを比較して識別する例を説明したが、識別する物体を複数の方向から撮像して、撮像された各画像情報と登録モデルデータとを比較して識別するようにしてもよい。この場合、対象物モデルを登録するときと同様に、撮像した画像から重心を算出して、算出された重心と撮像された画像から抽出した識別対象と想定される輪郭線を内包する仮想的な正方形データを生成し、生成された正方形を２分割して２つの直角二等辺三角形を生成して、直角二等辺三角形の各頂点及び斜辺中点からの視点に基づく画像を、カメラ６を非図示のカメラ制御部で制御して撮像し、撮像された画像信号から抽出した各視点の画像情報を取得して、登録モデルデータと比較するようにしてもよい。
【００８７】
また、物体識別装置８は、このように識別した結果を、ロボットコントローラー１０に出力する。ロボットコントローラー１０は、入力された識別結果に基づき、例えば、識別した物体が登録されている対象物モデルと不一致の場合、組み立て作業を行わない等の制御をロボット１に対して行う。
【００８８】
以上のように、本実施形態の物体識別装置８は、対象物モデルについて登録されている登録モデルデータと撮像された画像から抽出した特徴量との比較を行うようにしたので、従来技術の手法と比較し、少ない演算量で識別することが可能になる。
【００８９】
また、本実施形態では、物体識別装置８とロボットコントローラー１０が分かれている例を説明したが、同じケースの中に物体識別装置８とロボットコントローラー１０を組み込むようにしてもよい。
【００９０】
また、本実施形態では、対象物モデルとして３次元物体を用いる例を説明したが、対象モデルは２次元物体でも良く、この場合、立方体データ生成部１０３は、対象物モデルの重心を内包する正方形データを生成し、三角形分割部１０４は生成された正方形を直角二等辺三角形に分割することで、本実施形態の物体識別装置８の構成のままで識別することができる。
【００９１】
なお、本発明において、モデルデータの特徴または登録モデルデータの特徴は、特定の特徴量に依存するものではなく、二次元認識方式も特定の方式に依存するものではなく、何れの方式に対しても適用できる。一例として、公知である以下の文献１に記載されている一般化ハフ変換を用いて認識部１０５が認識を行う。
文献１：D.H. Ballard, "Generalizing The Hough Transform to Detect Arbitrary Shapes", Pattern Recognition, Vol.13, No.2, p.111-122, 1981.
あるいは、公知である以下の文献２に示されているオープンソースであるＯｐｅｎＣＶに実装されているテンプレートマッチング方式を用いて認識部１０５が認識を行う。
文献２：奈良先端科学技術大学院大学 OpenCVプログラミングブック制作チーム、OpenCVプログラミングブック  第２版、毎日コミュニケーションズ、p.206-213、2009.
【００９２】
なお、実施形態の図２の各部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ等の可搬媒体、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）  Ｉ／Ｆ（インタフェース）を介して接続されるＵＳＢメモリー、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【符号の説明】
【００９３】
１・・・ロボット
２・・・支持台
３・・・アーム部
４・・・ハンド部
５・・・フレーム
６・・・カメラ
７・・・ケーブル
８・・・物体識別装置
９・・・画像表示装置
１０・・・ロボットコントローラー
１０１・・・形状データ取得部
１０２・・・原点抽出部（基準点抽出部）
１０３・・・立方体データ生成部
１０４・・・三角形分割部
１０５・・・認識部
１０６・・・モデルデータ生成部
１０７・・・モデルデータ登録部
１０８・・・登録モデルデータ記憶部
１１１・・・画像データ取得部
１１２・・・識別部
１１３・・・識別結果出力部
【図１】
2012032909.tif 000003
【図２】
2012032909.tif 000004
【図３】
2012032909.tif 000005
【図４】
2012032909.tif 000006
【図５】
2012032909.tif 000007
【図６】
2012032909.tif 000008
【図７】
2012032909.tif 000009
【図８】
2012032909.tif 000010
【図９】
2012032909.tif 000011
【図１０】
2012032909.tif 000012
【図１１】
2012032909.tif 000013
【図１２】
2012032909.tif 000014
【図１３】
2012032909.tif 000015
【図１４】
2012032909.tif 000016
【図１５】
2012032909.tif 000017
【図１６】
2012032909.tif 000018
【図１７】
2012032909.tif 000019
【図１８】
2012032909.tif 000020
【図１９】
2012032909.tif 000021
【図２０】
2012032909.tif 000022
【図２１】
2012032909.tif 000023
【図２２】
2012032909.tif 000024
【図２３】
2012032909.tif 000025