3次元物体認識装置及び3次元物体認識方法
【課題】高精度且つ高速に3次元物体を漏れなく認識することができる3次元物体認識装置及び3次元認識方法を提供する。
【解決手段】 認識対象である3次元物体3のモデルをあらゆる姿勢に変化させながら、カメラ画像に射影して得た各姿勢での輪郭モデルを格納した輪郭マップ14及び前記3次元物体3のモデルに含まれる文字等のテクスチャ画像における各姿勢でのテクスチャモデルを格納したテクスチャマップ15を記憶し、認識対象である3次元物体3を所定方向から撮像手段4により撮影して画像を取得し、取得した原画像に基づいて、該原画像の解像度を異なる比率で低下させたピラミッド画像を作成し、解像度が最も低い前記ピラミッド画像に対して各姿勢での輪郭モデル及びテクスチャモデルをあらゆる位置に移動させながら、前記3次元物体3の位置及び姿勢を評価する。
【解決手段】 認識対象である3次元物体3のモデルをあらゆる姿勢に変化させながら、カメラ画像に射影して得た各姿勢での輪郭モデルを格納した輪郭マップ14及び前記3次元物体3のモデルに含まれる文字等のテクスチャ画像における各姿勢でのテクスチャモデルを格納したテクスチャマップ15を記憶し、認識対象である3次元物体3を所定方向から撮像手段4により撮影して画像を取得し、取得した原画像に基づいて、該原画像の解像度を異なる比率で低下させたピラミッド画像を作成し、解像度が最も低い前記ピラミッド画像に対して各姿勢での輪郭モデル及びテクスチャモデルをあらゆる位置に移動させながら、前記3次元物体3の位置及び姿勢を評価する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、形状が既知の3次元物体をカメラ等により撮影した2次元画像における輪郭などの特徴から認識する3次元物体認識装置に関する。
【背景技術】
【0002】
生産ラインにおいてロボットアームによる部品等の正確な操作を可能とするため、山積みにされた部品等を個々に認識し、各部品の位置及び姿勢を認識する3次元物体認識装置が近年開発されている。
【0003】
従来、このような3次元物体認識装置としては、例えば、入力画像から得られる対象物体の輪郭等の特徴を直線、円弧等に近似したデータであるとともにステレオ計測等で得た3次元位置データを有する特徴データと、対象物体のモデルの三次元位置データとのマッチングにより対象物体の3次元位置姿勢を得るものがある(例えば、特許文献1参照)。この3次元認識装置では、3次元位置姿勢を計算するために必要な3点を形成できる特徴のグループである特徴グループを用いて対象物体の特徴データとモデルの特徴データとのマッチングを行っている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平09−212643号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の3次元物体認識装置では、単純なグループ(2つの線分等)ごとにマッチングするため、誤検出が発生しやすくなり、且つ、複雑な形状を認識できないという問題がある。
【0006】
本発明は、上記のような課題に鑑みてなされたものであって、高精度且つ高速に3次元物体を漏れなく認識することができる3次元物体認識装置及び3次物体認識方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、請求項1記載の3次元物体認識装置は、認識対象である3次元物体を所定方向から撮影して画像を取得する撮像手段と、認識対象である3次元物体のモデルを前記撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら、カメラ画像に射影して得た各姿勢でのエッジ点における勾配角度を有する輪郭モデルを格納した輪郭マップ、又は該輪郭マップ及び前記3次元物体のモデルに含まれる文字又は模様等のテクスチャ画像における各姿勢でのエッジ点における勾配角度を有するテクスチャモデルを格納したテクスチャマップを予め記憶する射影モデル画像記憶手段と、前記撮像手段により取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのテクスチャモデルをあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価する位置・姿勢評価手段と、を備えることを特徴としている。
【0008】
請求項2記載の3次元物体認識装置は、前記撮像手段が取得した原画像に基づいて、該原画像の解像度を異なる比率で低下させた複数枚のピラミッド画像を作成するピラミッド画像作成手段を備え、前記位置・姿勢評価手段は、解像度が最も低い前記ピラミッド画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのテクスチャモデルをあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価することを特徴としている。
【0009】
請求項3記載の3次元物体認識装置は、前記撮像手段が、複数設けられており、前記射影モデル画像記憶手段に記憶された第1撮像手段のカメラ画像に射影して得た各姿勢での輪郭マップ及びテクスチャマップを他の撮像手段に関しても参照して利用することを特徴としている。
【0010】
請求項4記載の3次元物体認識装置は、予め勾配ベクトルに対応付けて勾配角度を格納した勾配角度ルックアップテーブルを記憶する勾配角度ルックアップテーブル記憶手段と、予め前記3次元物体のモデル上の各画素における勾配角度と前記撮像手段により取得した原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関数ルックアップテーブルを記憶する評価関数ルックアップテーブル記憶手段と、前記撮像手段により取得した原画像の各画素に対して勾配ベクトルを算出する勾配ベクトル算出手段と、を備え、前記位置・姿勢評価手段は、前記勾配ベクトル算出手段により算出された勾配ベクトルを前記勾配角度ルックアップテーブルを参照することにより勾配角度に変換し、該勾配角度を用いて前記評価関数ルックアップテーブルを参照して類似度を算出することにより前記3次元物体の位置及び姿勢を評価することを特徴としている。
【0011】
請求項5記載の3次元物体認識装置は、認識対象である3次元物体を所定方向から撮影して画像を取得する撮像手段と、認識対象である3次元物体のモデルを前記撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら得た各姿勢での各画素に対する奥行きデータを格納したデプスマップを予め記憶する射影モデル画像記憶手段と、前記撮像手段が取得した原画像に基づいて、前記3次元物体の奥行きデータを算出する奥行き算出手段と、前記撮像手段が取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での奥行きデータをあらゆる位置に移動させながら、各画素に対して、前記奥行きデータと前記奥行き算出手段により算出された奥行きデータとの差の自乗平均に基づいて類似度を算出することにより、前記3次元物体の位置及び姿勢を評価する位置・姿勢評価手段と、を備えることを特徴としている。
【0012】
請求項6記載の3次元物体認識方法は、認識対象である3次元物体のモデルを撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら、カメラ画像に射影して得た各姿勢でのエッジ点における勾配角度を有する輪郭モデルを格納した輪郭マップ、又は該輪郭マップ及び前記3次元物体のモデルに含まれる文字又は模様等のテクスチャ画像における各姿勢でのエッジ点における勾配角度を有するテクスチャモデルを格納したテクスチャマップを予め射影モデル画像記憶手段に記憶するステップと、認識対象である3次元物体を所定方向から前記撮像手段により撮影して画像を取得するステップと、取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのエッジ点をあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価するステップと、備えることを特徴としている。
【0013】
請求項7記載の3次元物体認識方法は、前記撮像手段が複数設けられており、前記射影モデル画像記憶手段に記憶した第1撮像手段のカメラ画像に射影して得た各姿勢での輪郭マップ及びテクスチャマップを他の撮像手段に関しても参照して利用することを特徴としている。
【0014】
請求項8記載の3次元物体認識方法は、予め勾配ベクトルに対応付けて勾配角度を格納した勾配角度ルックアップテーブルを記憶するステップと、予め前記3次元物体のモデル上の各画素における勾配角度と前記撮像手段により取得した原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関するルックアップテーブルを記憶するステップと、前記撮像手段により取得した原画像の各画素に対して勾配ベクトルを算出するステップと、を備え、前記3次元物体の位置及び姿勢を評価するステップでは、算出した原画像の各画素に対する勾配ベクトルを前記勾配角度ルックアップテーブルを参照することにより勾配角度に変換し、該勾配角度を用いて前記類似度評価関数ルックアップテーブルを参照して類似度を算出することにより前記3次元物体の位置及び姿勢を評価することを特徴としている。
【0015】
請求項9記載の3次元物体認識方法は、認識対象である3次元物体のモデルを撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら得た各姿勢での各画素に対する奥行きデータを格納したデプスマップを予め射影モデル画像記憶手段に記憶するステップと、認識対象である3次元物体を所定方向から撮像手段により撮影して画像を取得するステップと、該撮像手段が取得した原画像に基づいて、前記3次元物体の奥行きデータを取得するステップと、取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での奥行きデータをあらゆる位置に移動させながら、各画素に対して、前記奥行きデータと前記奥行き算出手段により算出された奥行きデータとの差の自乗平均に基づいて類似度を算出することにより、前記3次元物体の位置及び姿勢を評価するステップと、を備えることを特徴とする3次元物体認識方法。
【発明の効果】
【0016】
請求項1及び6記載の発明によれば、予め認識対象である3次元物体のモデルのあらゆる姿勢における輪郭モデルを格納した輪郭マップを記憶しておき、撮像手段により取得した画像に対してこの輪郭モデルをあらゆる位置に移動させながら3次元物体の位置及び姿勢の評価を行う。つまり、輪郭モデルを位置(3自由度)及び姿勢(3自由度)の計6自由度全てにおいて、撮像手段により取得した入力画像と合っているか否かの評価をまんべんなく行うので、高精度に3次元物体の位置及び姿勢を認識することができる。また、輪郭モデルだけでなく、3次元物体に含まれる文字又は模様等のテクスチャ画像における各姿勢でのテクスチャモデルを格納したテクスチャマップを予め記憶しておき、このテクスチャモデルについてもあらゆる位置に移動させながら評価を行うことにより、例えば、直方体等のような輪郭だけでは向きが特定できないような3次元物体についても、その3次元物体に含まれる文字又は模様等のテクスチャが統一されていれば、その向きまで認識することが可能になるので、箱詰め作業等をロボットアーム等を用いて行う際に、部品の向きまで考慮して箱詰め作業等を正確に行うことが可能になる。
【0017】
請求項2記載の発明によれば、撮像手段が取得した原画像に基づいて、該原画像の解像度を異なる比率で低下させた複数枚のピラミッド画像のうち、まずは解像度が最も低いピラミッド画像に対して、位置及び姿勢の評価を行っていくので、処理速度を高速化させることができる。
【0018】
請求項3及び7記載の発明によれば、1つの撮像手段に対して輪郭マップ及びテクスチャマップを予め記憶しておけば、他の撮像手段はその輪郭マップ及びテクスチャマップを参照して利用することにより、別途他の撮像手段に対する輪郭マップ及びテクスチャマップを記憶しておく必要がなくなるので、予め記憶しておくデータ量を軽減することができる。
【0019】
請求項4及び8記載の発明によれば、予め勾配ベクトルに対応付けて勾配角度を格納した勾配角度ルックアップテーブルを記憶する勾配角度ルックアップテーブルと、3次元物体のモデル上の各画素における勾配角度と前記撮像手段により取得した原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関数ルックアップテーブルを記憶しておくので、撮像手段により取得した原画像の各画素に対して勾配ベクトルを算出して、勾配角度ルックアップテーブル及び類似度評価関数ルックアップテーブルを参照すれば良く、3次元物体の位置及び姿勢を評価するための演算処理に掛かる時間が短縮されるので、処理速度を向上させることができる。
【0020】
請求項5及び9記載の発明によれば、予め認識対象である3次元物体のモデルのあらゆる姿勢での各画素に対する奥行きデータを格納したデプスマップを記憶しておき、撮像手段により取得した原画像に対して各姿勢における奥行きデータをあらゆる位置に移動させながら、原画像に基づいて算出した奥行きデータとの差の自乗平均に基づいて類似度を算出することにより、3次元物体の位置及び姿勢の評価を行うので、高精度に3次元物体の位置及び姿勢を認識することができる。
【図面の簡単な説明】
【0021】
【図1】本発明の第1の実施形態に係る3次元物体認識装置の構成の一例を示す概略模式図である。
【図2】第1の実施形態に係る3次元物体認識装置による処理の流れを示すフローチャートである。
【図3】輪郭マップの作成方法を説明するための説明図である。
【図4】輪郭モデルについて説明するための説明図である。
【図5】探索空間を分割して、輪郭モデルを作成する方法を説明するための説明図である。
【図6】探索空間を分割して、輪郭モデルを作成する方法を説明するための説明図である。
【図7】カメラ座標系とモデル座標系の関係を示す概略模式図である。
【図8】勾配角度ルックアップテーブルの一例を示す概略模式図である。
【図9】類似度評価関数ルックアップテーブルの一例を示す概略模式図である。
【図10】ピラミッド画像を説明するための説明図である。
【図11】3次元物体の位置及び姿勢の評価について説明するための説明図である。
【図12】3次元物体の位置及び姿勢の評価について説明するための説明図である。
【図13】類似度評価関数ルックアップテーブルの他の一例を示す概略模式図である。
【図14】第2の実施形態に係る3次元物体認識装置による処理の流れを示すフローチャートである。
【図15】エッジ抽出を説明するための説明図であって、原画像の一部をピクセルレベルまで拡大した状態を示す図である。
【図16】第3の実施形態に係る3次元物体認識装置による処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0022】
以下に本発明に係る3次元物体認識装置1について、図面を参照しつつ説明する。図1に示すように、3次元物体認識装置1は、作業台2の上に載置された認識対象である3次元物体3を認識するためのものであって、この3次元物体3を異なる方向から撮影するための2台のカメラ(撮像手段)4と、3次元物体3を把持するためのロボットアーム5と、各カメラ4から入力された撮影画像に基づいてロボットアーム5の動作を制御するコンピュータ6とを備えるものである。
【0023】
コンピュータ6は、図1に示すように、カメラ4が撮影した画像データ等を記憶する画像メモリ7と、3次元物体3の認識を行うための処理プログラム等を格納するハードディスク8と、該ハードディスク8から読み出された処理プログラムを一時記憶するRAM(Random Access Memory)9と、この処理プログラムに従って3次元物体3の位置及び姿勢を算出するCPU(Central Proceessing Unit)10と、画像メモリ7に記憶された画像データやCPU10による算出結果等を表示するための表示部11と、マウスやキーボード等で構成される操作部12と、これら各部を互いに接続するシステムバス13とを有している。尚、本実施形態では、3次元物体3の認識を行う処理プログラムをハードディスク8に格納している例を示しているが、これに代えて、コンピュータ読み取り可能な記憶媒体(不図示)に格納しておき、この記録媒体から処理プログラムを読み出すように構成することも可能である。
【0024】
以下、3次元物体認識装置1による処理の流れについて図2のフローチャートを用いながら説明する。本実施形態に係る3次元物体認識装置1では、図2に示すように、まずオフラインで輪郭マップ14及びテクスチャマップ15を作成し、このような射影モデル画像の記憶手段として機能するRAM9等に予め記憶しておく(S101)。この輪郭マップの作成方法としては、例えば、図3に示すように、まず3次元物体3の各エッジEの上にサンプリング点Aを設定し、各サンプリング点Aがカメラ4から視認可能であるか否かを判定する。そして、カメラ4から視認可能と判断した各サンプリング点Aをカメラ画像I上に射影し、各エッジ点Pの座標及びエッジ点Pにおける勾配角度を算出する。この作業を図4に示すように、3次元CAD等を利用して、予めオフラインでカメラ4の位置等から考えて可能性のある全範囲に渡って、3次元物体3のモデルをあらゆる姿勢(3自由度)に少しずつ細かく変化させながら、繰り返し行う。このようにして得られた各姿勢でのエッジ点における勾配角度を有する輪郭モデル3aを格納することにより輪郭マップ14を作成する。この際の輪郭モデル3aは、認識精度を向上させるために、できる限り細かい姿勢毎にサンプリングしておくことが好ましいが、そのサンプリング数等は特に限定されるものではない。また、テクスチャマップ15は、図1に示すような3次元物体3に含まれる模様や文字等のテクスチャ31に対しても同様に、カメラ4から視認可能な範囲において、あらゆる姿勢(3自由度)に少しずつ細かく変化させながら、カメラ画像I上に射影して得たテクスチャ画像における各姿勢でのエッジ点における勾配角度を有するテクスチャモデルを格納したものである。
【0025】
また、位置の違いによる姿勢変形の影響を軽減するために、このように輪郭モデル3aを生成する際に図5,6に示すように、位置については、カメラ4から視認可能な探索空間Sを分割して、その中心における輪郭モデル3aを生成するようにしても良い。図5,6では、3×3の9つに分割した際の例を示しているが、この探索空間Sの分割はこれに限定されるものではなく、適宜分割数を設定することができる。
【0026】
また、1台のカメラ4aにおける輪郭マップ14及びテクスチャマップ15をあらゆる姿勢について生成して記憶しておけば、もう一方のカメラ4bに対しては、この輪郭マップ14及びテクスチャマップ15を参照して利用することができる。つまり、カメラ4bから見た場合の3次元物体3の輪郭モデルは、カメラ4aにおける輪郭マップ14に格納されているいずれかの輪郭モデル3aと対応している。従って、カメラ4a、4bのお互いの位置及び姿勢がわかれば、カメラ4aに対する輪郭マップ14からカメラ4bから見た場合の輪郭モデルを参照することができる。例えば、図7に示すような関係にカメラ4a、4b、及び3次元物体3のモデルがあった場合には、モデル座標系における座標X=[X Y Z]Tを左カメラ4aのカメラ座標系に変換すると、数式(1)のように表される。Xc=[Xc Yc Zc]Tは左カメラ4aのカメラ座標系における座標を表している。そして、右カメラ4bのカメラ座標系における座標では、数式(2)のように表され、このような変換式により、回転行列R’及び並進移動ベクトルt’が計算される。この回転行列R’がわかれば、輪郭マップ14のどの回転姿勢を参照すれば良いかが決定され、又、並進移動ベクトルt’により探索空間の分割のどの部分を参照すれば良いかが決定されるので、左カメラにおける輪郭マップ14及びテクスチャマップ15を記憶しておけば、別途右カメラ4bにおける輪郭マップやテクスチャマップを作成しないで済む。これにより、RAM9等に記憶するデータ量を軽減することができる。尚、本実施形態では、2台のカメラ4を設けた例を示しているが、単眼でも3台以上のカメラ4を設けるように構成しても良い。3台以上のカメラ4を設ける場合でも、2台のカメラ4の場合と同様に1台のカメラ4に対しての輪郭マップ14及びテクスチャマップ15が記憶されていれば、他のカメラ4については、この輪郭マップ14及びテクスチャマップ15を参照して利用することができる。
【数1】
【数2】
【0027】
また、予め勾配ベクトルに対応つけて勾配角度を格納した勾配角度ルックアップテーブル(以下、勾配角度LUTとする)16と、3次元物体3のモデル上の各画素における勾配角度とカメラ4から取得する原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関数ルックアップテーブル(類似度評価関数LUTとする)17とをRAM9等に記憶しておく(S102)。
【0028】
勾配角度LUT16は、例えば、図8に示すように、勾配ベクトル(Ix、Iy)16aに対応つけて勾配角度16bを格納したものであり、整数の精度での勾配ベクトル(Ix、Iy)16aに対する勾配角度16bが参照できるようになっている。類似度評価関数LUT17は、例えば、図9に示すように、3次元物体3のモデル上の各画素における勾配角度θm17aと勾配角度LUT16を参照して得られるカメラ4から取得する原画像の各画素における勾配角度θc16bとに対応付けて両勾配角度の差から類似度Eを評価する関数の計算結果を格納したものであり、例えば、類似度Eを評価する関数である数式(3)等を用いた計算結果を予め格納しておくものである。但し、数式(3)におけるθmは3次元物体3のモデル上の画素における勾配角度、θcはカメラ4から取得する原画像の画素における勾配角度、τは閾値を表している。この数式(3)では、両勾配角度の差が小さいときには、関数は1に近い数字を出力し、差が大きくなるにつれて0に近づくような結果を出力する。そして、両勾配角度の差の絶対値が予め設定された閾値τより大きくなる場合には、0を出力結果とするものである。尚、この数式(3)は、勾配角度の差から類似度を評価する関数の一例であり、類似度を評価する関数はこれに限れるものではない。
【数3】
【0029】
次に、カメラ4により認識対象となる3次元物体3を撮影する(S103)。そして、カメラ4から3次元物体3を撮影した原画像が入力されると、CPU10は、この入力された原画像に基づいて、複数枚のピラミッド画像18を作成し(S104)、図1に示す画像メモリ7に記憶する。
【0030】
図10は、ピラミッド画像を説明するための説明図である。このピラミッド画像18は、カメラ4により撮影されて得られた原画像19の解像度を所定の比率で低下させたものである。例えば、CPU10は、縦横両方向にそれぞれn個ずつのピクセルが並んだ原画像19が入力された場合、縦横両方向にそれぞれn/2個のピクセルが並んだ第1ピラミッド画像18A、縦横両方向にそれぞれn/4個のピクセルが並んだ第2ピラミッド画像18B、縦横両方向にそれぞれn/8個のピクセルが並んだ第3ピラミッド画像18Cを作成する。尚、本実施例では、図10に示すように3段階のピラミッド画像18を作成しているが、この段階数は入力画像の大きさに応じて適宜変更することができる。
【0031】
次に、CPU10は、各ピラミッド画像18の各画素に対して各画素の濃度が変化する方向と大きさを示す勾配ベクトルを整数の精度で算出し(S105)、その算出結果をRAM9等に格納する。
【0032】
次に、CPU10は、解像度が最も低い第3ピラミッド画像18Cに対して、図11に示すように輪郭マップ14に格納された輪郭モデル3a及びテクスチャマップ15に格納されたテクスチャモデル31aを第3ピラミッド画像18Cの解像度に合わせて粗くしたものをあらゆる位置(3自由度)に移動させながら、3次元物体3の位置及び姿勢を評価する(S106)。尚、Z方向に対しては、図12に示すように、輪郭モデル3aのスケールを拡大及び縮小させることによって探索を行う。この3次元物体3の位置及び姿勢の評価では、まずS105の処理で算出された勾配ベクトル(Ix(u,v),Iy(u,v))を式(4)に示す参照式を用いて、図8に示すような予めオフラインで生成した勾配角度LUT16を参照させることにより、勾配角度θc16bに変換させる。尚、IxもIyも予め設定した設定値より小さい画素に対しては、評価を行わないように、例えば、LUT16=Aのように所定の値を返すようにしておく。
【数4】
【0033】
次に、この各勾配角度θc16bを式(5)に示す参照式を用いて、図9に示すような予めオフラインで生成した類似度評価関数LUT17を参照させることにより、数式(3)を用いた勾配角度θc16bと3次元物体のモデル上の各画素における勾配角度θm17aとの差から類似度Eを求めた計算結果を得る。これを数式(6)に示すように、式(5)を参照することにより得られる各画素における類似度Eの和の平均を計算することにより、類似度を算出し、3次元物体の位置及び姿勢を評価する。但し、a(u,v)は、モデル上の各画素における勾配角度を表すものである。
【数5】
【数6】
【0034】
そして、その評価結果に基づき、位置及び姿勢が必要な精度を満たしているか否かを判定し(S107)、必要な精度を満たしていると判断した場合は(S107:YES)、その結果を最終結果として出力し(S108)、処理を終了する。一方、必要な精度を満たしていないと判断した場合は(S107:NO)、まだ位置及び姿勢を評価していない高解像度のピラミッド画像18があるか否かを判定し(S109)、そのような未処理のピラミッド画像18がないと判断した場合は(S109:NO)、第3ピラミッド画像18Cの結果を最終結果として出力し(S108)、処理を終了する。一方、未処理のピラミッド画像18があると判断した場合は(S109:YES)、S106へ戻って残りのピラミッド画像18について同様の処理を行う。この場合、1回目の位置及び姿勢の評価でおおよそ3次元物体3の位置及び姿勢を認識しているので、より高解像度のピラミッド画像18においては、予めその近辺を探索しながら位置及び姿勢の評価を行っていく。そして、未処理のピラミッド画像18が無くなるまでこれを繰り返す。このように、必要な精度に達するまで、より解像度の高いピラミッド画像15について処理を行うことにより、3次元物体3の位置及び姿勢をより高い精度で認識することができる。本実施形態では、このようにピラミッド画像を作成して解像度を低下させておくことにより、探索の高速化を図ることができる。また、予めオフラインで生成した勾配角度LUT16及び類似度評価関数LUT17を参照するので、3次元物体の位置及び姿勢を評価するための演算処理に掛かる時間が短縮され、より処理速度を向上させることができる。尚、本実施形態では、ピラミッド画像に対して位置及び姿勢の評価を行っていく例を用いて説明したが、当然原画像に対して同様の手法により位置及び姿勢の評価を行うことも可能である。
【0035】
尚、本実施形態では、図9に示すようなマトリクス状の類似度評価関数LUT17を参照して類似度Eを求めているが、この類似度評価関数LUT17の代わりに、図13に示すように、勾配角度LUT16を参照して得られるカメラ4から取得する原画像の各画素における勾配角度θcと3次元物体3のモデル上の各画素における勾配角度θmとに対応付けて両勾配角度の差から類似度Eを評価する関数の計算結果を格納する1次元の類似度評価関数LUT20を参照することにより類似度Eを得るようにしても良い。
【0036】
この場合、S105の処理で算出された勾配ベクトル(Ix(u,v),Iy(u,v))を式(4)に示す参照式を用いて、勾配角度LUT16を参照させることにより、勾配角度θcを求めた後、式(7)に示す参照式を用いて、類似度評価関数LUT20を参照させることにより、数式(3)を用いた勾配角度θcと3次元物体のモデル上の各画素における勾配角度θmとの差から類似度Eを求めた計算結果を得ることができる。類似度評価関数LUT20は、図13に示すように、1次元のルックアップテーブルであるので、この類似度評価関数LUT20を格納するのに使用するメモリの容量を小さくすることができる。また、類似度評価関数LUT17では、原画像から求められる勾配角度θcとモデル定義された勾配角度θmをそれぞれ参照するようになっているが、この類似度評価関数LUT20では、原画像から求められる勾配角度θcとモデル定義された勾配角度θmの差を参照すれば良いので、処理速度をより向上させることができる。
【数7】
【0037】
次に、第2の実施形態に係る3次元物体認識装置1aの処理の流れについて図14を用いて説明する。3次元物体認識装置1aは第1実施形態に係る3次元物体認識装置1と略同様の構成を備えるものであり、3次元物体3の位置及び姿勢の評価手段が異なるものである。3次元物体認識装置1aでも同様に、図3に示すように、カメラ4から視認可能と判断したサンプリング点Aをカメラ画像Iに射影し、射影点Pの座標及び射影点Pにおけるエッジの向きを算出する作業を、予めオフラインで、カメラ4の位置等から考えて可能性のある全範囲に渡って、3次元物体3の位置(3自由度)及び姿勢(3自由度)を十分に細かく変化させながら、繰り返し行う。そして、3次元物体3の位置及び姿勢に対応付けて、射影点Pの座標と射影点Pにおけるエッジの向きと格納することにより作成したルックアップテーブルをRAM9等に記憶しておく。
【0038】
次に、カメラ4により認識対象となる3次元物体3を撮影する(S202)。そして、カメラ4から3次元物体3を撮影した原画像が入力されると、CPU10は、この入力された原画像に基づいて、複数枚のピラミッド画像18を作成し(S203)、図1に示す画像メモリ7に記憶する。尚、ピラミッド画像18については、第1の実施形態と同様であるので、その詳細な説明は省略する。
【0039】
次に、CPU10は、図14に示すように、解像度が最も低い第3ピラミッド画像18Cについて3次元物体3のエッジを抽出する(S204)。ここで、このエッジ抽出としては、ピクセル精度でのエッジ抽出を行う。図15は、エッジ抽出を説明するための説明図であって、原画像19の一部をピクセルレベルまで拡大した状態を示している。ピクセル精度でのエッジ抽出によれば、図において黒く塗り潰されたエッジ構成ピクセル20の集合体としてエッジが抽出される(以下、このエッジを「ピクセルエッジ21」と呼ぶ)。尚、本実施形態では処理速度を優先させるためにピクセル精度でのエッジ抽出を行ったが、より高い認識精度が要求される場合には、サブピクセル精度でのエッジ抽出を行っても良い。サブピクセル精度でのエッジ抽出によれば、図15に直線で示すように、隣接ピクセル間隔以下の精度でエッジが抽出される(以下、このエッジを「サブピクセルエッジ22」と呼ぶ)。
【0040】
次にCPU10は、方向付きディスタンスマップを作成し(S205)、図1に示すRAM9に記憶する。方向付きディスタンスマップとは、エッジ抽出を行った第3ピラミッド画像18Cを構成する各ピクセルに、そのピクセルから最も近いピクセルエッジ21までの距離と、最も近いピクセルエッジ21の向きとを画素値として持たせたものである。
【0041】
次にCPU10は、方向付きディスタンスマップ上に、予め記憶したルックアップテーブルに格納された射影点をそれぞれマッピングする(S206)。CPU10は、このルックアップテーブルに格納された各射影点Pを、その座標に基づいて方向付きディスタンスマップ上に順次配置する。尚、方向付きディスタンスマップでは、最も近いピクセルエッジ21までの距離は画素毎にしか格納されていないため、射影点Pのマッピングに際し、射影点Pの座標値が小数部分を有する場合には、バイリニア補間を用いることによって射影点Pの配置位置を決定すれば良い。
【0042】
次に、CPU10は、マッピングされた各射影点Pにおけるエッジの向きと、方向付きディスタンスマップ上でその射影点Pに対応するピクセルが画素値として持つ最も近いピクセルエッジ21の向きとを比較する。そして、両者が一致する射影点群について、CPU10は、その射影点群に対応するピクセル群が持つ最も近いピクセルエッジ21までの距離の自乗和を算出し、その算出結果に基づいて、3次元物体3の位置及び姿勢を評価する(S207)。すなわち、射影点Pからなるエッジと、ピラミッド画像18Cにおけるピクセルエッジ21とを比較した時の誤差の大きさに基づいて、ルックアップテーブルに従って決定した位置及び姿勢が、3次元物体3の実際の位置及び姿勢からどの程度近いかを評価する。
【0043】
ここで、前記自乗和の算出に際しては、最も近いエッジまでの距離として、図15に示す対象ピクセル23からピクセルエッジ21までの距離Laを用いる。このピクセルエッジ21までの距離Laとは、図で黒く塗り潰されたエッジ構成ピクセル20までの最短距離を意味している。尚、前述のようにピラミッド画像18についてのエッジ抽出をサブピクセル精度で行った場合には、最も近いエッジまでの距離として図15に示す対象ピクセル23からサブピクセルエッジ22までの距離Lbを用いても良い。このサブピクセルエッジ22までの距離Lbとは、対象ピクセル23からサブピクセルエッジ22へと降ろした垂線24の長さを意味している。また、要求される処理速度と認識精度の兼ね合いによっては、最も近いエッジまでの距離として距離Laと距離Lbを混在させて用いても良い。
【0044】
そして、評価の結果、ルックアップテーブルに従って決定した位置及び姿勢が、3次元物体3の実際の位置及び姿勢に近いと判断した場合、CPU10は、前記自乗和が最小となるように、当該位置及び姿勢を最適化する(S208)。この最適化には、従来公知のレーベンバーグ・マーカート法を用いる。このように、方向付けディスタンスマップとエッジの向きが略一致する射影点Pだけについて前記自乗和を算出するので、カメラ4の方向から見て3次元物体3の一部が他の物体によって隠れた状態であって、最も近いエッジまでの距離が誤って計算されたピクセルに関しては、エッジの向きが一致せず、前記自乗和を算出する対象から除外される。これにより、いわゆる隠れの影響を低減して、ロバスト性を向上させることができる。また、自乗和が最小となるように位置及び姿勢を最適化することにより、位置及び姿勢の認識精度を向上させることができる。尚、位置及び姿勢の最適化の手法としては、レーベンバーグ・マーカート法に限定されず、従来公知の他の非線形最適化法を用いても良い。
【0045】
その後、CPU10は、S208で最適化した位置及び姿勢が必要な精度を満たしているか否かを判定し(S209)、必要な精度を満たしていると判断した場合は(S209:YES)、第3ピラミッド画像18Cについて得られた位置及び姿勢を最終結果として出力し(S210)、処理を終了する。一方、S209での判定の結果、必要な精度を満たしていないと判断した場合は(S209:NO)、未処理のピラミッド画像18があるか否かを判定し(S211)、未処理のピラミッド画像18がないと判断した場合は(S211:NO)、第3ピラミッド画像18Cの結果を最終結果として出力し(S210)、処理を終了する。一方、未処理のピラミッド画像18があると判断した場合は(S211:YES)、S2へ戻って残りのピラミッド画像18について同様の処理を行う。そして、未処理のピラミッド画像18が無くなるまでこれを繰り返す。このように、必要な精度に達するまで、より解像度の高いピラミッド画像18について処理を行うことにより、3次元物体3の位置及び姿勢をより高い精度で認識することができる。
【0046】
次に、第3の実施形態に係る3次元物体認識装置1bの処理の流れについて図16を用いながら説明する。3次元物体認識装置1bでは、図16に示すように、まずオフラインでデプスマップを作成し、RAM9等に予め記憶しておく(S301)。ここで、デプスマップとは、3次元CAD等を利用して認識対象である3次元空間における3次元物体3のモデルをカメラ4から視認可能な範囲内において、あらゆる姿勢(3自由度)に少しずつ細かく変化させながら、カメラ画像上に射影して得た各姿勢での各画素に対する奥行きデータを格納したものである。
【0047】
次に、カメラ4により認識対象となる3次元物体3を撮影する(S302)。そして、カメラ4から3次元物体3を撮影した原画像が入力されると、CPU10は、この原画像に基づいて、各画素に対する奥行きデータを算出する(S303)。例えば、奥行きデータの算出には、2台のカメラ4を用いてステレオで3次元物体3の奥行きを計算する。具体的には、ステレオ視を用いて、2次元平面から3次元位置情報を取得し、3次元物体3までの距離計測を行う。2台のカメラ4から撮影した2枚の画像に対してマッチング(ステレオマッチング)を行い、画像間の視差を求め、3次元物体3の奥行きデータを取得する。また、その他にも3次元物体3に投光器(不図示)を用いてラインレーザーを照射した画像から奥行きデータを算出する等、従来公知の奥行きデータの取得方法を適宜用いても良い。
【0048】
次に、CPU10は、取得した原画像に対して、予めRAM9に記憶したデプスマップの各姿勢での奥行きデータをあらゆる位置(3自由度)に移動させながら、各画素に対してデプスマップに格納した奥行きデータとS303の処理により算出された奥行きデータに基づいて類似度を算出することにより、3次元物体3の位置及び姿勢を評価する(S304)。具体的には、数式(8)に示すように、デプスマップに格納した奥行きデータとS303の処理により算出された奥行きデータの差の自乗平均に基づいて類似度を算出する。数式(8)のu、vは画素座標を表している。また、Dm(u、v)は、画素座標がu、vの時の3次元物体3のモデルの奥行き(Z座標)であり、予めデプスマップに格納されている。Di(u、v)は、画素座標がu、vの時の入力画像の奥行きを表すものであり、wは所定の重み、τは閾値を表している。数式(8)では、奥行きの差の絶対値が、閾値τ以下の場合には重みwを1とし、それ以外の場合、つまり、奥行きの差の絶対値が、閾値τを超えた場合には、隠れと見なして、重みwを0とする。このようにして、第3の実施形態に係る3次元物体認識装置1bでは、類似度を算出し、3次元物体3の位置及び姿勢について評価を行う。そして、このようにして得られた評価結果が出力される(S305)。
【数8】
【0049】
尚、本実施形態では、ピラミッド画像を作成せずに、3次元物体3の位置及び姿勢の評価を行った例を示しているが、処理速度を向上させるために、ピラミッド画像に対して同様の処理を行うことも当然可能である。
【0050】
以上の説明では、3次元物体の位置及び姿勢の3種類の評価方法を個別に行った例を用いて説明を行ったが、これらの評価方法を組み合わせて3次元物体認識装置を構成することも当然可能である。これにより、より精度良く3次元物体の位置・姿勢を認識することができる。また、本実施形態では、3次元物体を対象とした例について説明したが、対象物が平面パタンの場合も真上にカメラ4を設けなくても同様に認識することができる。
【0051】
尚、本発明の実施の形態は上述の形態に限るものではなく、本発明の思想の範囲を逸脱しない範囲で適宜変更することができることは云うまでもない。
【産業上の利用可能性】
【0052】
本発明に係る3次元物体認識装置及び3次元物体認識方法は、生産ライン等における部品等の正確な位置及び姿勢を認識するための技術として有効に利用することができる。
【符号の説明】
【0053】
1、1a、1b 3次元物体認識装置
3 3次元物体
3a 輪郭モデル
4 カメラ(撮像手段)
9 RAM(射影モデル画像記憶手段)
10 CPU
14 輪郭マップ
15 テクスチャマップ
16 勾配角度ルックアップテーブル
17、20 類似度評価関数ルックアップテーブル
18 ピラミッド画像
19 原画像
31 テクスチャ
31a テクスチャモデル
I カメラ画像
【技術分野】
【0001】
本発明は、形状が既知の3次元物体をカメラ等により撮影した2次元画像における輪郭などの特徴から認識する3次元物体認識装置に関する。
【背景技術】
【0002】
生産ラインにおいてロボットアームによる部品等の正確な操作を可能とするため、山積みにされた部品等を個々に認識し、各部品の位置及び姿勢を認識する3次元物体認識装置が近年開発されている。
【0003】
従来、このような3次元物体認識装置としては、例えば、入力画像から得られる対象物体の輪郭等の特徴を直線、円弧等に近似したデータであるとともにステレオ計測等で得た3次元位置データを有する特徴データと、対象物体のモデルの三次元位置データとのマッチングにより対象物体の3次元位置姿勢を得るものがある(例えば、特許文献1参照)。この3次元認識装置では、3次元位置姿勢を計算するために必要な3点を形成できる特徴のグループである特徴グループを用いて対象物体の特徴データとモデルの特徴データとのマッチングを行っている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平09−212643号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の3次元物体認識装置では、単純なグループ(2つの線分等)ごとにマッチングするため、誤検出が発生しやすくなり、且つ、複雑な形状を認識できないという問題がある。
【0006】
本発明は、上記のような課題に鑑みてなされたものであって、高精度且つ高速に3次元物体を漏れなく認識することができる3次元物体認識装置及び3次物体認識方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、請求項1記載の3次元物体認識装置は、認識対象である3次元物体を所定方向から撮影して画像を取得する撮像手段と、認識対象である3次元物体のモデルを前記撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら、カメラ画像に射影して得た各姿勢でのエッジ点における勾配角度を有する輪郭モデルを格納した輪郭マップ、又は該輪郭マップ及び前記3次元物体のモデルに含まれる文字又は模様等のテクスチャ画像における各姿勢でのエッジ点における勾配角度を有するテクスチャモデルを格納したテクスチャマップを予め記憶する射影モデル画像記憶手段と、前記撮像手段により取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのテクスチャモデルをあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価する位置・姿勢評価手段と、を備えることを特徴としている。
【0008】
請求項2記載の3次元物体認識装置は、前記撮像手段が取得した原画像に基づいて、該原画像の解像度を異なる比率で低下させた複数枚のピラミッド画像を作成するピラミッド画像作成手段を備え、前記位置・姿勢評価手段は、解像度が最も低い前記ピラミッド画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのテクスチャモデルをあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価することを特徴としている。
【0009】
請求項3記載の3次元物体認識装置は、前記撮像手段が、複数設けられており、前記射影モデル画像記憶手段に記憶された第1撮像手段のカメラ画像に射影して得た各姿勢での輪郭マップ及びテクスチャマップを他の撮像手段に関しても参照して利用することを特徴としている。
【0010】
請求項4記載の3次元物体認識装置は、予め勾配ベクトルに対応付けて勾配角度を格納した勾配角度ルックアップテーブルを記憶する勾配角度ルックアップテーブル記憶手段と、予め前記3次元物体のモデル上の各画素における勾配角度と前記撮像手段により取得した原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関数ルックアップテーブルを記憶する評価関数ルックアップテーブル記憶手段と、前記撮像手段により取得した原画像の各画素に対して勾配ベクトルを算出する勾配ベクトル算出手段と、を備え、前記位置・姿勢評価手段は、前記勾配ベクトル算出手段により算出された勾配ベクトルを前記勾配角度ルックアップテーブルを参照することにより勾配角度に変換し、該勾配角度を用いて前記評価関数ルックアップテーブルを参照して類似度を算出することにより前記3次元物体の位置及び姿勢を評価することを特徴としている。
【0011】
請求項5記載の3次元物体認識装置は、認識対象である3次元物体を所定方向から撮影して画像を取得する撮像手段と、認識対象である3次元物体のモデルを前記撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら得た各姿勢での各画素に対する奥行きデータを格納したデプスマップを予め記憶する射影モデル画像記憶手段と、前記撮像手段が取得した原画像に基づいて、前記3次元物体の奥行きデータを算出する奥行き算出手段と、前記撮像手段が取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での奥行きデータをあらゆる位置に移動させながら、各画素に対して、前記奥行きデータと前記奥行き算出手段により算出された奥行きデータとの差の自乗平均に基づいて類似度を算出することにより、前記3次元物体の位置及び姿勢を評価する位置・姿勢評価手段と、を備えることを特徴としている。
【0012】
請求項6記載の3次元物体認識方法は、認識対象である3次元物体のモデルを撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら、カメラ画像に射影して得た各姿勢でのエッジ点における勾配角度を有する輪郭モデルを格納した輪郭マップ、又は該輪郭マップ及び前記3次元物体のモデルに含まれる文字又は模様等のテクスチャ画像における各姿勢でのエッジ点における勾配角度を有するテクスチャモデルを格納したテクスチャマップを予め射影モデル画像記憶手段に記憶するステップと、認識対象である3次元物体を所定方向から前記撮像手段により撮影して画像を取得するステップと、取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのエッジ点をあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価するステップと、備えることを特徴としている。
【0013】
請求項7記載の3次元物体認識方法は、前記撮像手段が複数設けられており、前記射影モデル画像記憶手段に記憶した第1撮像手段のカメラ画像に射影して得た各姿勢での輪郭マップ及びテクスチャマップを他の撮像手段に関しても参照して利用することを特徴としている。
【0014】
請求項8記載の3次元物体認識方法は、予め勾配ベクトルに対応付けて勾配角度を格納した勾配角度ルックアップテーブルを記憶するステップと、予め前記3次元物体のモデル上の各画素における勾配角度と前記撮像手段により取得した原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関するルックアップテーブルを記憶するステップと、前記撮像手段により取得した原画像の各画素に対して勾配ベクトルを算出するステップと、を備え、前記3次元物体の位置及び姿勢を評価するステップでは、算出した原画像の各画素に対する勾配ベクトルを前記勾配角度ルックアップテーブルを参照することにより勾配角度に変換し、該勾配角度を用いて前記類似度評価関数ルックアップテーブルを参照して類似度を算出することにより前記3次元物体の位置及び姿勢を評価することを特徴としている。
【0015】
請求項9記載の3次元物体認識方法は、認識対象である3次元物体のモデルを撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら得た各姿勢での各画素に対する奥行きデータを格納したデプスマップを予め射影モデル画像記憶手段に記憶するステップと、認識対象である3次元物体を所定方向から撮像手段により撮影して画像を取得するステップと、該撮像手段が取得した原画像に基づいて、前記3次元物体の奥行きデータを取得するステップと、取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での奥行きデータをあらゆる位置に移動させながら、各画素に対して、前記奥行きデータと前記奥行き算出手段により算出された奥行きデータとの差の自乗平均に基づいて類似度を算出することにより、前記3次元物体の位置及び姿勢を評価するステップと、を備えることを特徴とする3次元物体認識方法。
【発明の効果】
【0016】
請求項1及び6記載の発明によれば、予め認識対象である3次元物体のモデルのあらゆる姿勢における輪郭モデルを格納した輪郭マップを記憶しておき、撮像手段により取得した画像に対してこの輪郭モデルをあらゆる位置に移動させながら3次元物体の位置及び姿勢の評価を行う。つまり、輪郭モデルを位置(3自由度)及び姿勢(3自由度)の計6自由度全てにおいて、撮像手段により取得した入力画像と合っているか否かの評価をまんべんなく行うので、高精度に3次元物体の位置及び姿勢を認識することができる。また、輪郭モデルだけでなく、3次元物体に含まれる文字又は模様等のテクスチャ画像における各姿勢でのテクスチャモデルを格納したテクスチャマップを予め記憶しておき、このテクスチャモデルについてもあらゆる位置に移動させながら評価を行うことにより、例えば、直方体等のような輪郭だけでは向きが特定できないような3次元物体についても、その3次元物体に含まれる文字又は模様等のテクスチャが統一されていれば、その向きまで認識することが可能になるので、箱詰め作業等をロボットアーム等を用いて行う際に、部品の向きまで考慮して箱詰め作業等を正確に行うことが可能になる。
【0017】
請求項2記載の発明によれば、撮像手段が取得した原画像に基づいて、該原画像の解像度を異なる比率で低下させた複数枚のピラミッド画像のうち、まずは解像度が最も低いピラミッド画像に対して、位置及び姿勢の評価を行っていくので、処理速度を高速化させることができる。
【0018】
請求項3及び7記載の発明によれば、1つの撮像手段に対して輪郭マップ及びテクスチャマップを予め記憶しておけば、他の撮像手段はその輪郭マップ及びテクスチャマップを参照して利用することにより、別途他の撮像手段に対する輪郭マップ及びテクスチャマップを記憶しておく必要がなくなるので、予め記憶しておくデータ量を軽減することができる。
【0019】
請求項4及び8記載の発明によれば、予め勾配ベクトルに対応付けて勾配角度を格納した勾配角度ルックアップテーブルを記憶する勾配角度ルックアップテーブルと、3次元物体のモデル上の各画素における勾配角度と前記撮像手段により取得した原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関数ルックアップテーブルを記憶しておくので、撮像手段により取得した原画像の各画素に対して勾配ベクトルを算出して、勾配角度ルックアップテーブル及び類似度評価関数ルックアップテーブルを参照すれば良く、3次元物体の位置及び姿勢を評価するための演算処理に掛かる時間が短縮されるので、処理速度を向上させることができる。
【0020】
請求項5及び9記載の発明によれば、予め認識対象である3次元物体のモデルのあらゆる姿勢での各画素に対する奥行きデータを格納したデプスマップを記憶しておき、撮像手段により取得した原画像に対して各姿勢における奥行きデータをあらゆる位置に移動させながら、原画像に基づいて算出した奥行きデータとの差の自乗平均に基づいて類似度を算出することにより、3次元物体の位置及び姿勢の評価を行うので、高精度に3次元物体の位置及び姿勢を認識することができる。
【図面の簡単な説明】
【0021】
【図1】本発明の第1の実施形態に係る3次元物体認識装置の構成の一例を示す概略模式図である。
【図2】第1の実施形態に係る3次元物体認識装置による処理の流れを示すフローチャートである。
【図3】輪郭マップの作成方法を説明するための説明図である。
【図4】輪郭モデルについて説明するための説明図である。
【図5】探索空間を分割して、輪郭モデルを作成する方法を説明するための説明図である。
【図6】探索空間を分割して、輪郭モデルを作成する方法を説明するための説明図である。
【図7】カメラ座標系とモデル座標系の関係を示す概略模式図である。
【図8】勾配角度ルックアップテーブルの一例を示す概略模式図である。
【図9】類似度評価関数ルックアップテーブルの一例を示す概略模式図である。
【図10】ピラミッド画像を説明するための説明図である。
【図11】3次元物体の位置及び姿勢の評価について説明するための説明図である。
【図12】3次元物体の位置及び姿勢の評価について説明するための説明図である。
【図13】類似度評価関数ルックアップテーブルの他の一例を示す概略模式図である。
【図14】第2の実施形態に係る3次元物体認識装置による処理の流れを示すフローチャートである。
【図15】エッジ抽出を説明するための説明図であって、原画像の一部をピクセルレベルまで拡大した状態を示す図である。
【図16】第3の実施形態に係る3次元物体認識装置による処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0022】
以下に本発明に係る3次元物体認識装置1について、図面を参照しつつ説明する。図1に示すように、3次元物体認識装置1は、作業台2の上に載置された認識対象である3次元物体3を認識するためのものであって、この3次元物体3を異なる方向から撮影するための2台のカメラ(撮像手段)4と、3次元物体3を把持するためのロボットアーム5と、各カメラ4から入力された撮影画像に基づいてロボットアーム5の動作を制御するコンピュータ6とを備えるものである。
【0023】
コンピュータ6は、図1に示すように、カメラ4が撮影した画像データ等を記憶する画像メモリ7と、3次元物体3の認識を行うための処理プログラム等を格納するハードディスク8と、該ハードディスク8から読み出された処理プログラムを一時記憶するRAM(Random Access Memory)9と、この処理プログラムに従って3次元物体3の位置及び姿勢を算出するCPU(Central Proceessing Unit)10と、画像メモリ7に記憶された画像データやCPU10による算出結果等を表示するための表示部11と、マウスやキーボード等で構成される操作部12と、これら各部を互いに接続するシステムバス13とを有している。尚、本実施形態では、3次元物体3の認識を行う処理プログラムをハードディスク8に格納している例を示しているが、これに代えて、コンピュータ読み取り可能な記憶媒体(不図示)に格納しておき、この記録媒体から処理プログラムを読み出すように構成することも可能である。
【0024】
以下、3次元物体認識装置1による処理の流れについて図2のフローチャートを用いながら説明する。本実施形態に係る3次元物体認識装置1では、図2に示すように、まずオフラインで輪郭マップ14及びテクスチャマップ15を作成し、このような射影モデル画像の記憶手段として機能するRAM9等に予め記憶しておく(S101)。この輪郭マップの作成方法としては、例えば、図3に示すように、まず3次元物体3の各エッジEの上にサンプリング点Aを設定し、各サンプリング点Aがカメラ4から視認可能であるか否かを判定する。そして、カメラ4から視認可能と判断した各サンプリング点Aをカメラ画像I上に射影し、各エッジ点Pの座標及びエッジ点Pにおける勾配角度を算出する。この作業を図4に示すように、3次元CAD等を利用して、予めオフラインでカメラ4の位置等から考えて可能性のある全範囲に渡って、3次元物体3のモデルをあらゆる姿勢(3自由度)に少しずつ細かく変化させながら、繰り返し行う。このようにして得られた各姿勢でのエッジ点における勾配角度を有する輪郭モデル3aを格納することにより輪郭マップ14を作成する。この際の輪郭モデル3aは、認識精度を向上させるために、できる限り細かい姿勢毎にサンプリングしておくことが好ましいが、そのサンプリング数等は特に限定されるものではない。また、テクスチャマップ15は、図1に示すような3次元物体3に含まれる模様や文字等のテクスチャ31に対しても同様に、カメラ4から視認可能な範囲において、あらゆる姿勢(3自由度)に少しずつ細かく変化させながら、カメラ画像I上に射影して得たテクスチャ画像における各姿勢でのエッジ点における勾配角度を有するテクスチャモデルを格納したものである。
【0025】
また、位置の違いによる姿勢変形の影響を軽減するために、このように輪郭モデル3aを生成する際に図5,6に示すように、位置については、カメラ4から視認可能な探索空間Sを分割して、その中心における輪郭モデル3aを生成するようにしても良い。図5,6では、3×3の9つに分割した際の例を示しているが、この探索空間Sの分割はこれに限定されるものではなく、適宜分割数を設定することができる。
【0026】
また、1台のカメラ4aにおける輪郭マップ14及びテクスチャマップ15をあらゆる姿勢について生成して記憶しておけば、もう一方のカメラ4bに対しては、この輪郭マップ14及びテクスチャマップ15を参照して利用することができる。つまり、カメラ4bから見た場合の3次元物体3の輪郭モデルは、カメラ4aにおける輪郭マップ14に格納されているいずれかの輪郭モデル3aと対応している。従って、カメラ4a、4bのお互いの位置及び姿勢がわかれば、カメラ4aに対する輪郭マップ14からカメラ4bから見た場合の輪郭モデルを参照することができる。例えば、図7に示すような関係にカメラ4a、4b、及び3次元物体3のモデルがあった場合には、モデル座標系における座標X=[X Y Z]Tを左カメラ4aのカメラ座標系に変換すると、数式(1)のように表される。Xc=[Xc Yc Zc]Tは左カメラ4aのカメラ座標系における座標を表している。そして、右カメラ4bのカメラ座標系における座標では、数式(2)のように表され、このような変換式により、回転行列R’及び並進移動ベクトルt’が計算される。この回転行列R’がわかれば、輪郭マップ14のどの回転姿勢を参照すれば良いかが決定され、又、並進移動ベクトルt’により探索空間の分割のどの部分を参照すれば良いかが決定されるので、左カメラにおける輪郭マップ14及びテクスチャマップ15を記憶しておけば、別途右カメラ4bにおける輪郭マップやテクスチャマップを作成しないで済む。これにより、RAM9等に記憶するデータ量を軽減することができる。尚、本実施形態では、2台のカメラ4を設けた例を示しているが、単眼でも3台以上のカメラ4を設けるように構成しても良い。3台以上のカメラ4を設ける場合でも、2台のカメラ4の場合と同様に1台のカメラ4に対しての輪郭マップ14及びテクスチャマップ15が記憶されていれば、他のカメラ4については、この輪郭マップ14及びテクスチャマップ15を参照して利用することができる。
【数1】
【数2】
【0027】
また、予め勾配ベクトルに対応つけて勾配角度を格納した勾配角度ルックアップテーブル(以下、勾配角度LUTとする)16と、3次元物体3のモデル上の各画素における勾配角度とカメラ4から取得する原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関数ルックアップテーブル(類似度評価関数LUTとする)17とをRAM9等に記憶しておく(S102)。
【0028】
勾配角度LUT16は、例えば、図8に示すように、勾配ベクトル(Ix、Iy)16aに対応つけて勾配角度16bを格納したものであり、整数の精度での勾配ベクトル(Ix、Iy)16aに対する勾配角度16bが参照できるようになっている。類似度評価関数LUT17は、例えば、図9に示すように、3次元物体3のモデル上の各画素における勾配角度θm17aと勾配角度LUT16を参照して得られるカメラ4から取得する原画像の各画素における勾配角度θc16bとに対応付けて両勾配角度の差から類似度Eを評価する関数の計算結果を格納したものであり、例えば、類似度Eを評価する関数である数式(3)等を用いた計算結果を予め格納しておくものである。但し、数式(3)におけるθmは3次元物体3のモデル上の画素における勾配角度、θcはカメラ4から取得する原画像の画素における勾配角度、τは閾値を表している。この数式(3)では、両勾配角度の差が小さいときには、関数は1に近い数字を出力し、差が大きくなるにつれて0に近づくような結果を出力する。そして、両勾配角度の差の絶対値が予め設定された閾値τより大きくなる場合には、0を出力結果とするものである。尚、この数式(3)は、勾配角度の差から類似度を評価する関数の一例であり、類似度を評価する関数はこれに限れるものではない。
【数3】
【0029】
次に、カメラ4により認識対象となる3次元物体3を撮影する(S103)。そして、カメラ4から3次元物体3を撮影した原画像が入力されると、CPU10は、この入力された原画像に基づいて、複数枚のピラミッド画像18を作成し(S104)、図1に示す画像メモリ7に記憶する。
【0030】
図10は、ピラミッド画像を説明するための説明図である。このピラミッド画像18は、カメラ4により撮影されて得られた原画像19の解像度を所定の比率で低下させたものである。例えば、CPU10は、縦横両方向にそれぞれn個ずつのピクセルが並んだ原画像19が入力された場合、縦横両方向にそれぞれn/2個のピクセルが並んだ第1ピラミッド画像18A、縦横両方向にそれぞれn/4個のピクセルが並んだ第2ピラミッド画像18B、縦横両方向にそれぞれn/8個のピクセルが並んだ第3ピラミッド画像18Cを作成する。尚、本実施例では、図10に示すように3段階のピラミッド画像18を作成しているが、この段階数は入力画像の大きさに応じて適宜変更することができる。
【0031】
次に、CPU10は、各ピラミッド画像18の各画素に対して各画素の濃度が変化する方向と大きさを示す勾配ベクトルを整数の精度で算出し(S105)、その算出結果をRAM9等に格納する。
【0032】
次に、CPU10は、解像度が最も低い第3ピラミッド画像18Cに対して、図11に示すように輪郭マップ14に格納された輪郭モデル3a及びテクスチャマップ15に格納されたテクスチャモデル31aを第3ピラミッド画像18Cの解像度に合わせて粗くしたものをあらゆる位置(3自由度)に移動させながら、3次元物体3の位置及び姿勢を評価する(S106)。尚、Z方向に対しては、図12に示すように、輪郭モデル3aのスケールを拡大及び縮小させることによって探索を行う。この3次元物体3の位置及び姿勢の評価では、まずS105の処理で算出された勾配ベクトル(Ix(u,v),Iy(u,v))を式(4)に示す参照式を用いて、図8に示すような予めオフラインで生成した勾配角度LUT16を参照させることにより、勾配角度θc16bに変換させる。尚、IxもIyも予め設定した設定値より小さい画素に対しては、評価を行わないように、例えば、LUT16=Aのように所定の値を返すようにしておく。
【数4】
【0033】
次に、この各勾配角度θc16bを式(5)に示す参照式を用いて、図9に示すような予めオフラインで生成した類似度評価関数LUT17を参照させることにより、数式(3)を用いた勾配角度θc16bと3次元物体のモデル上の各画素における勾配角度θm17aとの差から類似度Eを求めた計算結果を得る。これを数式(6)に示すように、式(5)を参照することにより得られる各画素における類似度Eの和の平均を計算することにより、類似度を算出し、3次元物体の位置及び姿勢を評価する。但し、a(u,v)は、モデル上の各画素における勾配角度を表すものである。
【数5】
【数6】
【0034】
そして、その評価結果に基づき、位置及び姿勢が必要な精度を満たしているか否かを判定し(S107)、必要な精度を満たしていると判断した場合は(S107:YES)、その結果を最終結果として出力し(S108)、処理を終了する。一方、必要な精度を満たしていないと判断した場合は(S107:NO)、まだ位置及び姿勢を評価していない高解像度のピラミッド画像18があるか否かを判定し(S109)、そのような未処理のピラミッド画像18がないと判断した場合は(S109:NO)、第3ピラミッド画像18Cの結果を最終結果として出力し(S108)、処理を終了する。一方、未処理のピラミッド画像18があると判断した場合は(S109:YES)、S106へ戻って残りのピラミッド画像18について同様の処理を行う。この場合、1回目の位置及び姿勢の評価でおおよそ3次元物体3の位置及び姿勢を認識しているので、より高解像度のピラミッド画像18においては、予めその近辺を探索しながら位置及び姿勢の評価を行っていく。そして、未処理のピラミッド画像18が無くなるまでこれを繰り返す。このように、必要な精度に達するまで、より解像度の高いピラミッド画像15について処理を行うことにより、3次元物体3の位置及び姿勢をより高い精度で認識することができる。本実施形態では、このようにピラミッド画像を作成して解像度を低下させておくことにより、探索の高速化を図ることができる。また、予めオフラインで生成した勾配角度LUT16及び類似度評価関数LUT17を参照するので、3次元物体の位置及び姿勢を評価するための演算処理に掛かる時間が短縮され、より処理速度を向上させることができる。尚、本実施形態では、ピラミッド画像に対して位置及び姿勢の評価を行っていく例を用いて説明したが、当然原画像に対して同様の手法により位置及び姿勢の評価を行うことも可能である。
【0035】
尚、本実施形態では、図9に示すようなマトリクス状の類似度評価関数LUT17を参照して類似度Eを求めているが、この類似度評価関数LUT17の代わりに、図13に示すように、勾配角度LUT16を参照して得られるカメラ4から取得する原画像の各画素における勾配角度θcと3次元物体3のモデル上の各画素における勾配角度θmとに対応付けて両勾配角度の差から類似度Eを評価する関数の計算結果を格納する1次元の類似度評価関数LUT20を参照することにより類似度Eを得るようにしても良い。
【0036】
この場合、S105の処理で算出された勾配ベクトル(Ix(u,v),Iy(u,v))を式(4)に示す参照式を用いて、勾配角度LUT16を参照させることにより、勾配角度θcを求めた後、式(7)に示す参照式を用いて、類似度評価関数LUT20を参照させることにより、数式(3)を用いた勾配角度θcと3次元物体のモデル上の各画素における勾配角度θmとの差から類似度Eを求めた計算結果を得ることができる。類似度評価関数LUT20は、図13に示すように、1次元のルックアップテーブルであるので、この類似度評価関数LUT20を格納するのに使用するメモリの容量を小さくすることができる。また、類似度評価関数LUT17では、原画像から求められる勾配角度θcとモデル定義された勾配角度θmをそれぞれ参照するようになっているが、この類似度評価関数LUT20では、原画像から求められる勾配角度θcとモデル定義された勾配角度θmの差を参照すれば良いので、処理速度をより向上させることができる。
【数7】
【0037】
次に、第2の実施形態に係る3次元物体認識装置1aの処理の流れについて図14を用いて説明する。3次元物体認識装置1aは第1実施形態に係る3次元物体認識装置1と略同様の構成を備えるものであり、3次元物体3の位置及び姿勢の評価手段が異なるものである。3次元物体認識装置1aでも同様に、図3に示すように、カメラ4から視認可能と判断したサンプリング点Aをカメラ画像Iに射影し、射影点Pの座標及び射影点Pにおけるエッジの向きを算出する作業を、予めオフラインで、カメラ4の位置等から考えて可能性のある全範囲に渡って、3次元物体3の位置(3自由度)及び姿勢(3自由度)を十分に細かく変化させながら、繰り返し行う。そして、3次元物体3の位置及び姿勢に対応付けて、射影点Pの座標と射影点Pにおけるエッジの向きと格納することにより作成したルックアップテーブルをRAM9等に記憶しておく。
【0038】
次に、カメラ4により認識対象となる3次元物体3を撮影する(S202)。そして、カメラ4から3次元物体3を撮影した原画像が入力されると、CPU10は、この入力された原画像に基づいて、複数枚のピラミッド画像18を作成し(S203)、図1に示す画像メモリ7に記憶する。尚、ピラミッド画像18については、第1の実施形態と同様であるので、その詳細な説明は省略する。
【0039】
次に、CPU10は、図14に示すように、解像度が最も低い第3ピラミッド画像18Cについて3次元物体3のエッジを抽出する(S204)。ここで、このエッジ抽出としては、ピクセル精度でのエッジ抽出を行う。図15は、エッジ抽出を説明するための説明図であって、原画像19の一部をピクセルレベルまで拡大した状態を示している。ピクセル精度でのエッジ抽出によれば、図において黒く塗り潰されたエッジ構成ピクセル20の集合体としてエッジが抽出される(以下、このエッジを「ピクセルエッジ21」と呼ぶ)。尚、本実施形態では処理速度を優先させるためにピクセル精度でのエッジ抽出を行ったが、より高い認識精度が要求される場合には、サブピクセル精度でのエッジ抽出を行っても良い。サブピクセル精度でのエッジ抽出によれば、図15に直線で示すように、隣接ピクセル間隔以下の精度でエッジが抽出される(以下、このエッジを「サブピクセルエッジ22」と呼ぶ)。
【0040】
次にCPU10は、方向付きディスタンスマップを作成し(S205)、図1に示すRAM9に記憶する。方向付きディスタンスマップとは、エッジ抽出を行った第3ピラミッド画像18Cを構成する各ピクセルに、そのピクセルから最も近いピクセルエッジ21までの距離と、最も近いピクセルエッジ21の向きとを画素値として持たせたものである。
【0041】
次にCPU10は、方向付きディスタンスマップ上に、予め記憶したルックアップテーブルに格納された射影点をそれぞれマッピングする(S206)。CPU10は、このルックアップテーブルに格納された各射影点Pを、その座標に基づいて方向付きディスタンスマップ上に順次配置する。尚、方向付きディスタンスマップでは、最も近いピクセルエッジ21までの距離は画素毎にしか格納されていないため、射影点Pのマッピングに際し、射影点Pの座標値が小数部分を有する場合には、バイリニア補間を用いることによって射影点Pの配置位置を決定すれば良い。
【0042】
次に、CPU10は、マッピングされた各射影点Pにおけるエッジの向きと、方向付きディスタンスマップ上でその射影点Pに対応するピクセルが画素値として持つ最も近いピクセルエッジ21の向きとを比較する。そして、両者が一致する射影点群について、CPU10は、その射影点群に対応するピクセル群が持つ最も近いピクセルエッジ21までの距離の自乗和を算出し、その算出結果に基づいて、3次元物体3の位置及び姿勢を評価する(S207)。すなわち、射影点Pからなるエッジと、ピラミッド画像18Cにおけるピクセルエッジ21とを比較した時の誤差の大きさに基づいて、ルックアップテーブルに従って決定した位置及び姿勢が、3次元物体3の実際の位置及び姿勢からどの程度近いかを評価する。
【0043】
ここで、前記自乗和の算出に際しては、最も近いエッジまでの距離として、図15に示す対象ピクセル23からピクセルエッジ21までの距離Laを用いる。このピクセルエッジ21までの距離Laとは、図で黒く塗り潰されたエッジ構成ピクセル20までの最短距離を意味している。尚、前述のようにピラミッド画像18についてのエッジ抽出をサブピクセル精度で行った場合には、最も近いエッジまでの距離として図15に示す対象ピクセル23からサブピクセルエッジ22までの距離Lbを用いても良い。このサブピクセルエッジ22までの距離Lbとは、対象ピクセル23からサブピクセルエッジ22へと降ろした垂線24の長さを意味している。また、要求される処理速度と認識精度の兼ね合いによっては、最も近いエッジまでの距離として距離Laと距離Lbを混在させて用いても良い。
【0044】
そして、評価の結果、ルックアップテーブルに従って決定した位置及び姿勢が、3次元物体3の実際の位置及び姿勢に近いと判断した場合、CPU10は、前記自乗和が最小となるように、当該位置及び姿勢を最適化する(S208)。この最適化には、従来公知のレーベンバーグ・マーカート法を用いる。このように、方向付けディスタンスマップとエッジの向きが略一致する射影点Pだけについて前記自乗和を算出するので、カメラ4の方向から見て3次元物体3の一部が他の物体によって隠れた状態であって、最も近いエッジまでの距離が誤って計算されたピクセルに関しては、エッジの向きが一致せず、前記自乗和を算出する対象から除外される。これにより、いわゆる隠れの影響を低減して、ロバスト性を向上させることができる。また、自乗和が最小となるように位置及び姿勢を最適化することにより、位置及び姿勢の認識精度を向上させることができる。尚、位置及び姿勢の最適化の手法としては、レーベンバーグ・マーカート法に限定されず、従来公知の他の非線形最適化法を用いても良い。
【0045】
その後、CPU10は、S208で最適化した位置及び姿勢が必要な精度を満たしているか否かを判定し(S209)、必要な精度を満たしていると判断した場合は(S209:YES)、第3ピラミッド画像18Cについて得られた位置及び姿勢を最終結果として出力し(S210)、処理を終了する。一方、S209での判定の結果、必要な精度を満たしていないと判断した場合は(S209:NO)、未処理のピラミッド画像18があるか否かを判定し(S211)、未処理のピラミッド画像18がないと判断した場合は(S211:NO)、第3ピラミッド画像18Cの結果を最終結果として出力し(S210)、処理を終了する。一方、未処理のピラミッド画像18があると判断した場合は(S211:YES)、S2へ戻って残りのピラミッド画像18について同様の処理を行う。そして、未処理のピラミッド画像18が無くなるまでこれを繰り返す。このように、必要な精度に達するまで、より解像度の高いピラミッド画像18について処理を行うことにより、3次元物体3の位置及び姿勢をより高い精度で認識することができる。
【0046】
次に、第3の実施形態に係る3次元物体認識装置1bの処理の流れについて図16を用いながら説明する。3次元物体認識装置1bでは、図16に示すように、まずオフラインでデプスマップを作成し、RAM9等に予め記憶しておく(S301)。ここで、デプスマップとは、3次元CAD等を利用して認識対象である3次元空間における3次元物体3のモデルをカメラ4から視認可能な範囲内において、あらゆる姿勢(3自由度)に少しずつ細かく変化させながら、カメラ画像上に射影して得た各姿勢での各画素に対する奥行きデータを格納したものである。
【0047】
次に、カメラ4により認識対象となる3次元物体3を撮影する(S302)。そして、カメラ4から3次元物体3を撮影した原画像が入力されると、CPU10は、この原画像に基づいて、各画素に対する奥行きデータを算出する(S303)。例えば、奥行きデータの算出には、2台のカメラ4を用いてステレオで3次元物体3の奥行きを計算する。具体的には、ステレオ視を用いて、2次元平面から3次元位置情報を取得し、3次元物体3までの距離計測を行う。2台のカメラ4から撮影した2枚の画像に対してマッチング(ステレオマッチング)を行い、画像間の視差を求め、3次元物体3の奥行きデータを取得する。また、その他にも3次元物体3に投光器(不図示)を用いてラインレーザーを照射した画像から奥行きデータを算出する等、従来公知の奥行きデータの取得方法を適宜用いても良い。
【0048】
次に、CPU10は、取得した原画像に対して、予めRAM9に記憶したデプスマップの各姿勢での奥行きデータをあらゆる位置(3自由度)に移動させながら、各画素に対してデプスマップに格納した奥行きデータとS303の処理により算出された奥行きデータに基づいて類似度を算出することにより、3次元物体3の位置及び姿勢を評価する(S304)。具体的には、数式(8)に示すように、デプスマップに格納した奥行きデータとS303の処理により算出された奥行きデータの差の自乗平均に基づいて類似度を算出する。数式(8)のu、vは画素座標を表している。また、Dm(u、v)は、画素座標がu、vの時の3次元物体3のモデルの奥行き(Z座標)であり、予めデプスマップに格納されている。Di(u、v)は、画素座標がu、vの時の入力画像の奥行きを表すものであり、wは所定の重み、τは閾値を表している。数式(8)では、奥行きの差の絶対値が、閾値τ以下の場合には重みwを1とし、それ以外の場合、つまり、奥行きの差の絶対値が、閾値τを超えた場合には、隠れと見なして、重みwを0とする。このようにして、第3の実施形態に係る3次元物体認識装置1bでは、類似度を算出し、3次元物体3の位置及び姿勢について評価を行う。そして、このようにして得られた評価結果が出力される(S305)。
【数8】
【0049】
尚、本実施形態では、ピラミッド画像を作成せずに、3次元物体3の位置及び姿勢の評価を行った例を示しているが、処理速度を向上させるために、ピラミッド画像に対して同様の処理を行うことも当然可能である。
【0050】
以上の説明では、3次元物体の位置及び姿勢の3種類の評価方法を個別に行った例を用いて説明を行ったが、これらの評価方法を組み合わせて3次元物体認識装置を構成することも当然可能である。これにより、より精度良く3次元物体の位置・姿勢を認識することができる。また、本実施形態では、3次元物体を対象とした例について説明したが、対象物が平面パタンの場合も真上にカメラ4を設けなくても同様に認識することができる。
【0051】
尚、本発明の実施の形態は上述の形態に限るものではなく、本発明の思想の範囲を逸脱しない範囲で適宜変更することができることは云うまでもない。
【産業上の利用可能性】
【0052】
本発明に係る3次元物体認識装置及び3次元物体認識方法は、生産ライン等における部品等の正確な位置及び姿勢を認識するための技術として有効に利用することができる。
【符号の説明】
【0053】
1、1a、1b 3次元物体認識装置
3 3次元物体
3a 輪郭モデル
4 カメラ(撮像手段)
9 RAM(射影モデル画像記憶手段)
10 CPU
14 輪郭マップ
15 テクスチャマップ
16 勾配角度ルックアップテーブル
17、20 類似度評価関数ルックアップテーブル
18 ピラミッド画像
19 原画像
31 テクスチャ
31a テクスチャモデル
I カメラ画像
【特許請求の範囲】
【請求項1】
認識対象である3次元物体を所定方向から撮影して画像を取得する撮像手段と、
認識対象である3次元物体のモデルを前記撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら、カメラ画像に射影して得た各姿勢でのエッジ点における勾配角度を有する輪郭モデルを格納した輪郭マップ、又は該輪郭マップ及び前記3次元物体のモデルに含まれる文字又は模様等のテクスチャ画像における各姿勢でのエッジ点における勾配角度を有するテクスチャモデルを格納したテクスチャマップを予め記憶する射影モデル画像記憶手段と、
前記撮像手段により取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのテクスチャモデルをあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価する位置・姿勢評価手段と、を備えることを特徴とする3次元物体認識装置。
【請求項2】
前記撮像手段が取得した原画像に基づいて、該原画像の解像度を異なる比率で低下させた複数枚のピラミッド画像を作成するピラミッド画像作成手段を備え、
前記位置・姿勢評価手段は、解像度が最も低い前記ピラミッド画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのテクスチャモデルをあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価することを特徴とする請求項1記載の3次元物体認識装置。
【請求項3】
前記撮像手段は、複数設けられており、前記射影モデル画像記憶手段に記憶された第1撮像手段のカメラ画像に射影して得た各姿勢での輪郭マップ及びテクスチャマップを他の撮像手段に関しても参照して利用することを特徴とする請求項1又は2記載の3次元物体認識装置。
【請求項4】
予め勾配ベクトルに対応付けて勾配角度を格納した勾配角度ルックアップテーブルを記憶する勾配角度ルックアップテーブル記憶手段と、
予め前記3次元物体のモデル上の各画素における勾配角度と前記撮像手段により取得した原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関数ルックアップテーブルを記憶する評価関数ルックアップテーブル記憶手段と、
前記撮像手段により取得した原画像の各画素に対して勾配ベクトルを算出する勾配ベクトル算出手段と、を備え、
前記位置・姿勢評価手段は、前記勾配ベクトル算出手段により算出された勾配ベクトルを前記勾配角度ルックアップテーブルを参照することにより勾配角度に変換し、該勾配角度を用いて前記類似度評価関数ルックアップテーブルを参照して類似度を算出することにより前記3次元物体の位置及び姿勢を評価することを特徴とする請求項1乃至3のいずれかに記載の3次元物体認識装置。
【請求項5】
認識対象である3次元物体を所定方向から撮影して画像を取得する撮像手段と、
認識対象である3次元物体のモデルを前記撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら得た各姿勢での各画素に対する奥行きデータを格納したデプスマップを予め記憶する射影モデル画像記憶手段と、
前記撮像手段が取得した原画像に基づいて、前記3次元物体の奥行きデータを算出する奥行き算出手段と、
前記撮像手段が取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での奥行きデータをあらゆる位置に移動させながら、各画素に対して、前記奥行きデータと前記奥行き算出手段により算出された奥行きデータとの差の自乗平均に基づいて類似度を算出することにより、前記3次元物体の位置及び姿勢を評価する位置・姿勢評価手段と、を備えることを特徴とする3次元物体認識装置。
【請求項6】
認識対象である3次元物体のモデルを撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら、カメラ画像に射影して得た各姿勢でのエッジ点における勾配角度を有する輪郭モデルを格納した輪郭マップ、又は該輪郭マップ及び前記3次元物体のモデルに含まれる文字又は模様等のテクスチャ画像における各姿勢でのエッジ点における勾配角度を有するテクスチャモデルを格納したテクスチャマップを予め射影モデル画像記憶手段に記憶するステップと、
認識対象である3次元物体を所定方向から前記撮像手段により撮影して画像を取得するステップと、
取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのエッジ点をあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価するステップと、備えることを特徴とする3次元物体認識方法。
【請求項7】
前記撮像手段は、複数設けられており、前記射影モデル画像記憶手段に記憶した第1撮像手段のカメラ画像に射影して得た各姿勢での輪郭マップ及びテクスチャマップを他の撮像手段に関しても参照して利用することを特徴とする請求項6記載の3次元物体認識方法。
【請求項8】
予め勾配ベクトルに対応付けて勾配角度を格納した勾配角度ルックアップテーブルを記憶するステップと、
予め前記3次元物体のモデル上の各画素における勾配角度と前記撮像手段により取得した原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関数ルックアップテーブルを記憶するステップと、
前記撮像手段により取得した原画像の各画素に対して勾配ベクトルを算出するステップと、を備え、
前記3次元物体の位置及び姿勢を評価するステップでは、算出した原画像の各画素に対する勾配ベクトルを前記勾配角度ルックアップテーブルを参照することにより勾配角度に変換し、該勾配角度を用いて前記類似度評価関数ルックアップテーブルを参照して類似度を算出することにより前記3次元物体の位置及び姿勢を評価することを特徴とする請求項6又は7記載の3次元物体認識方法。
【請求項9】
認識対象である3次元物体のモデルを撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら得た各姿勢での各画素に対する奥行きデータを格納したデプスマップを予め射影モデル画像記憶手段に記憶するステップと、
認識対象である3次元物体を所定方向から撮像手段により撮影して画像を取得するステップと、
該撮像手段が取得した原画像に基づいて、前記3次元物体の奥行きデータを算出するステップと、
取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での奥行きデータをあらゆる位置に移動させながら、各画素に対して、前記奥行きデータと前記奥行き算出手段により算出された奥行きデータとの差の自乗平均に基づいて類似度を算出することにより、前記3次元物体の位置及び姿勢を評価するステップと、を備えることを特徴とする3次元物体認識方法。
【請求項1】
認識対象である3次元物体を所定方向から撮影して画像を取得する撮像手段と、
認識対象である3次元物体のモデルを前記撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら、カメラ画像に射影して得た各姿勢でのエッジ点における勾配角度を有する輪郭モデルを格納した輪郭マップ、又は該輪郭マップ及び前記3次元物体のモデルに含まれる文字又は模様等のテクスチャ画像における各姿勢でのエッジ点における勾配角度を有するテクスチャモデルを格納したテクスチャマップを予め記憶する射影モデル画像記憶手段と、
前記撮像手段により取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのテクスチャモデルをあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価する位置・姿勢評価手段と、を備えることを特徴とする3次元物体認識装置。
【請求項2】
前記撮像手段が取得した原画像に基づいて、該原画像の解像度を異なる比率で低下させた複数枚のピラミッド画像を作成するピラミッド画像作成手段を備え、
前記位置・姿勢評価手段は、解像度が最も低い前記ピラミッド画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのテクスチャモデルをあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価することを特徴とする請求項1記載の3次元物体認識装置。
【請求項3】
前記撮像手段は、複数設けられており、前記射影モデル画像記憶手段に記憶された第1撮像手段のカメラ画像に射影して得た各姿勢での輪郭マップ及びテクスチャマップを他の撮像手段に関しても参照して利用することを特徴とする請求項1又は2記載の3次元物体認識装置。
【請求項4】
予め勾配ベクトルに対応付けて勾配角度を格納した勾配角度ルックアップテーブルを記憶する勾配角度ルックアップテーブル記憶手段と、
予め前記3次元物体のモデル上の各画素における勾配角度と前記撮像手段により取得した原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関数ルックアップテーブルを記憶する評価関数ルックアップテーブル記憶手段と、
前記撮像手段により取得した原画像の各画素に対して勾配ベクトルを算出する勾配ベクトル算出手段と、を備え、
前記位置・姿勢評価手段は、前記勾配ベクトル算出手段により算出された勾配ベクトルを前記勾配角度ルックアップテーブルを参照することにより勾配角度に変換し、該勾配角度を用いて前記類似度評価関数ルックアップテーブルを参照して類似度を算出することにより前記3次元物体の位置及び姿勢を評価することを特徴とする請求項1乃至3のいずれかに記載の3次元物体認識装置。
【請求項5】
認識対象である3次元物体を所定方向から撮影して画像を取得する撮像手段と、
認識対象である3次元物体のモデルを前記撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら得た各姿勢での各画素に対する奥行きデータを格納したデプスマップを予め記憶する射影モデル画像記憶手段と、
前記撮像手段が取得した原画像に基づいて、前記3次元物体の奥行きデータを算出する奥行き算出手段と、
前記撮像手段が取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での奥行きデータをあらゆる位置に移動させながら、各画素に対して、前記奥行きデータと前記奥行き算出手段により算出された奥行きデータとの差の自乗平均に基づいて類似度を算出することにより、前記3次元物体の位置及び姿勢を評価する位置・姿勢評価手段と、を備えることを特徴とする3次元物体認識装置。
【請求項6】
認識対象である3次元物体のモデルを撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら、カメラ画像に射影して得た各姿勢でのエッジ点における勾配角度を有する輪郭モデルを格納した輪郭マップ、又は該輪郭マップ及び前記3次元物体のモデルに含まれる文字又は模様等のテクスチャ画像における各姿勢でのエッジ点における勾配角度を有するテクスチャモデルを格納したテクスチャマップを予め射影モデル画像記憶手段に記憶するステップと、
認識対象である3次元物体を所定方向から前記撮像手段により撮影して画像を取得するステップと、
取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での輪郭モデル、又は該輪郭モデル及び前記テクスチャ画像における各姿勢でのエッジ点をあらゆる位置に移動させながら、前記3次元物体の位置及び姿勢を評価するステップと、備えることを特徴とする3次元物体認識方法。
【請求項7】
前記撮像手段は、複数設けられており、前記射影モデル画像記憶手段に記憶した第1撮像手段のカメラ画像に射影して得た各姿勢での輪郭マップ及びテクスチャマップを他の撮像手段に関しても参照して利用することを特徴とする請求項6記載の3次元物体認識方法。
【請求項8】
予め勾配ベクトルに対応付けて勾配角度を格納した勾配角度ルックアップテーブルを記憶するステップと、
予め前記3次元物体のモデル上の各画素における勾配角度と前記撮像手段により取得した原画像の各画素における勾配角度とに対応付けて両勾配角度の差から類似度を評価する関数の計算結果を格納した類似度評価関数ルックアップテーブルを記憶するステップと、
前記撮像手段により取得した原画像の各画素に対して勾配ベクトルを算出するステップと、を備え、
前記3次元物体の位置及び姿勢を評価するステップでは、算出した原画像の各画素に対する勾配ベクトルを前記勾配角度ルックアップテーブルを参照することにより勾配角度に変換し、該勾配角度を用いて前記類似度評価関数ルックアップテーブルを参照して類似度を算出することにより前記3次元物体の位置及び姿勢を評価することを特徴とする請求項6又は7記載の3次元物体認識方法。
【請求項9】
認識対象である3次元物体のモデルを撮像手段から視認可能な範囲において、あらゆる姿勢に変化させながら得た各姿勢での各画素に対する奥行きデータを格納したデプスマップを予め射影モデル画像記憶手段に記憶するステップと、
認識対象である3次元物体を所定方向から撮像手段により撮影して画像を取得するステップと、
該撮像手段が取得した原画像に基づいて、前記3次元物体の奥行きデータを算出するステップと、
取得した原画像に対して前記射影モデル画像記憶手段に記憶された各姿勢での奥行きデータをあらゆる位置に移動させながら、各画素に対して、前記奥行きデータと前記奥行き算出手段により算出された奥行きデータとの差の自乗平均に基づいて類似度を算出することにより、前記3次元物体の位置及び姿勢を評価するステップと、を備えることを特徴とする3次元物体認識方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−129082(P2011−129082A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2010−9868(P2010−9868)
【出願日】平成22年1月20日(2010.1.20)
【特許番号】特許第4677536号(P4677536)
【特許公報発行日】平成23年4月27日(2011.4.27)
【出願人】(301021658)株式会社三次元メディア (15)
【Fターム(参考)】
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願日】平成22年1月20日(2010.1.20)
【特許番号】特許第4677536号(P4677536)
【特許公報発行日】平成23年4月27日(2011.4.27)
【出願人】(301021658)株式会社三次元メディア (15)
【Fターム(参考)】
[ Back to top ]