説明

情報処理装置および方法

【課題】 モデル座標系を基準とした位置姿勢の自由度のうち、特定自由度のパラメータを一意に定める特徴が不足するような物体においても、ロバストかつ高精度な位置姿勢計測を実現する。
【解決手段】 計測対象物体との位置姿勢合わせにより、当該計測対象物体の位置姿勢を取得するための三次元形状モデルを保持するモデル保持手段と、前記計測対象物体の画像を取得する画像取得手段と、前記三次元形状モデルの第一の幾何特徴と前記画像内の第一の幾何特徴とに基づき、第一の座標系において、前記三次元形状モデルの第一の位置姿勢を取得する第一の位置姿勢取得手段と、前記三次元形状モデルの第二の幾何特徴と前記画像内の第二の幾何特徴と前記第一の位置姿勢とに基づき、前記第一の座標系と異なる第二の座標系において、前記三次元形状モデルの第二の位置姿勢を取得する第二の位置姿勢取得手段と、を有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、三次元形状を有する計測対象物体の位置姿勢を取得する技術に関する。
【背景技術】
【0002】
近年のロボット技術の発展とともに、工業製品の組立のような人間が行っていた複雑なタスクをロボットが代わりに行うようになりつつある。ロボットが、ハンドなどのエンドエフェクタによって部品を把持して組立を行うためには、把持の対象となる部品とロボット(ハンド)との間の相対的な位置姿勢を計測する必要がある。
物体の位置姿勢を計測する方法として、カメラで撮影した濃淡画像やカラー画像(以下、総称して二次元画像と呼ぶ)上から検出される特徴を用いる方法がある。
また、距離センサで画像様に計測して得られた距離データに対して、物体の三次元形状モデルをあてはめる方法がある。このような手法は、モデルフィッティングと呼ばれる。
モデルフィッティングによる位置姿勢推定を行う場合、物体の形状によっては位置姿勢を高精度に計測できないことがある。
例えば、距離データから算出される物体の重心位置と重心まわりのモーメントをモデルと比較する方法では、対象物体のアスペクト比が1に近いような場合に、撮像装置の座標系において、位置姿勢の6パラメータを精度よく推定するのが困難になる。
特許文献1では、距離画像に対するモデルフィッティングにおいて、撮像装置の座標系を基準とした位置姿勢パラメータの推定を複数の段階に分けることで、推定の安定化と効率化を図る方法が開示されている。
特許文献1に開示されている方法では、撮像装置の座標系を基準とした位置姿勢の6自由度成分を、高精度かつロバストに推定できるパラメータから順に推定する。まず、撮像画像の画像座標軸回転の2パラメータと視軸方向位置の1パラメータを推定した後、視軸に垂直な位置の2パラメータを推定し、最後に視軸回転の1パラメータを推定する。パラメータの推定手順を段階的に分けることで、ロバストかつ高精度に位置姿勢の計測を行うことが可能になる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特登録03253430
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1でも指摘されているように、物体(モデル)座標系を基準とした位置姿勢の6自由度において、推定が困難な自由度成分を持つような物体が存在する。例えば、工業製品に使われる部品の中には、回転対称に近い形状であって、その回転方向の姿勢成分を一意に決定するための微小な切り欠きを有する部品が存在する。
このような部品では、画像とモデルとのフィッティングにより、位置姿勢の6パラメータを同時に推定しようとすると、ほかの自由度成分に比べて、特定自由度(この場合モデルの回転対称性を定義する軸まわりの姿勢)成分の推定に寄与する情報が不足する。そのため、特定自由度方向のパラメータを推定するのが困難となり、その結果、位置姿勢のロバスト性や精度が低くなるという問題がある。
特許文献1に開示されている方法では、撮像装置の座標系を基準とした位置姿勢の6自由度成分を、高精度かつロバストに推定できるパラメータから順に推定する。つまり、モデル座標系を基準とした特定自由度成分のみを分離して推定するわけではなく、物体の回転中心軸が撮像装置の視軸に一致する場合を除いて、物体の回転中心軸回りの姿勢成分の高い推定精度を得ることが出来ない。
本発明は、以上の課題を鑑みてなされたものであり、モデル座標系を基準とした位置姿勢の自由度の内に、一意に定めるのが困難な特定自由度のパラメータを有する物体においても、ロバストかつ高精度な位置姿勢の計測を実現することを目的とする。
【課題を解決するための手段】
【0005】
上記課題を鑑み、本発明は、計測対象物体との位置姿勢合わせにより、当該計測対象物体の位置姿勢を取得するための三次元形状モデルを保持するモデル保持手段と、前記計測対象物体の画像を取得する画像取得手段と、前記三次元形状モデルの第一の幾何特徴と前記画像内の第一の幾何特徴とに基づき、第一の座標系において、前記三次元形状モデルの第一の位置姿勢を取得する第一の位置姿勢取得手段と、前記三次元形状モデルの第二の幾何特徴と前記画像内の第二の幾何特徴と前記第一の位置姿勢とに基づき、前記第一の座標系と異なる第二の座標系において、前記三次元形状モデルの第二の位置姿勢を取得する第二の位置姿勢取得手段と、を有することを特徴とする。
【発明の効果】
【0006】
本発明によれば、モデル座標系を基準とした位置姿勢の自由度の内に、一意に定めるのが困難な特定自由度のパラメータを有する物体においても、ロバストかつ高精度な位置姿勢の計測を実現することが出来る。
【図面の簡単な説明】
【0007】
【図1】第一の実施形態における位置姿勢計測装置の構成を示す図である。
【図2】第一の実施形態における三次元形状モデルを説明する図である。
【図3】第一の実施形態における位置姿勢計測処理のフローチャートである。
【図4】第一の実施形態における第一の位置姿勢パラメータおよび第二の位置姿勢パラメータの設定を説明する図である。
【図5】ステップS1400における第一の位置姿勢算出処理のフローチャートである。
【図6】画像からのエッジ検出を説明する図である。
【図7】線分の投影像と検出されたエッジの関係を説明する図である。
【図8】ステップS1600における第二の位置姿勢算出処理のフローチャートである。
【図9】モデル特徴点の投影像と、対応する画像特徴を説明する図である。
【図10】ステップS1220における距離画像とモデルとの対応付け処理を説明する図である。
【図11】第二の実施形態における第一の位置姿勢パラメータおよび第二の位置姿勢パラメータの設定を説明する図である。
【図12】変形例2−1における第一の位置姿勢パラメータおよび第二の位置姿勢パラメータの設定を説明する図である。
【図13】第八の実施形態におけるモデル中心幾何情報決定部の構成を示す図である。
【図14】第八の実施形態におけるモデル中心幾何情報決定処理のフローチャートである。
【発明を実施するための形態】
【0008】
[第一の実施形態]
第一の実施形態では、物体における特定の軸に対してほぼ回転対称であり、かつその軸回りの回転を決めるための特徴が少ない物体の位置姿勢推定を行う。このような物体では、位置姿勢の6自由度成分を公平に扱って位置姿勢を算出すると、物体の回転中心軸まわりの姿勢パラメータが正しく求まらない。そこで、本実施形態では、まず6自由度の位置姿勢を算出した後で、物体の特定軸方向の姿勢パラメータのみ別途推定することで、高度な位置姿勢推定を行う。具体的には、まず、二次元画像上のエッジに対してモデルをあてはめることにより6自由度の位置姿勢を算出する。次に、モデル座標系における特定軸方向の姿勢を決める特徴の位置をもとにして、特定軸まわりの姿勢を算出する。
【0009】
図1は、本実施形態における位置姿勢計測装置1として機能する情報処理装置の構成を示している。同図に示すように、位置姿勢計測装置1は、撮像部110、概略位置姿勢入力部120、三次元形状モデル入力部130、画像特徴検出部140、特定自由度設定部150、第一の姿勢算出部160、対応取得部170、第二の位置姿勢算出部180から構成されている。以下、位置姿勢計測装置1を構成する各部について説明する。
【0010】
撮像部110は、カメラであり、計測対象である計測対象物体を撮像する。撮像により得られた画像は画像取得手段により取得される。カメラの内部パラメータ(焦点距離、主点位置、レンズ歪みパラメータ)は、公知の手法により、事前に校正しておく。
【0011】
概略位置姿勢入力部120は、位置姿勢計測装置1に対する物体の位置及び姿勢の概略値を入力する。位置姿勢計測装置1には、位置及び姿勢計測の基準となる3次元の座標系(基準座標系)が規定されているものとする。本実施形態では、撮像部110であるカメラのカメラ中心を原点とし、画像の水平方向をX軸、垂直方向をY軸、カメラの光軸をZ軸とした撮像座標系を基準座標系(第一の座標系)とする。同様に、物体の3次元形状モデルにも、位置および姿勢計測の基準となる3次元の座標系(モデル座標系もしくは第二の座標系)が規定されているものとする。
【0012】
位置姿勢計測装置1に対する物体の位置及び姿勢とは、基準座標系における物体の位置及び姿勢を表す。本実施形態では、位置姿勢計測装置1は時間軸方向に連続して計測を行うものとして、前回(前時刻)の計測値を概略の位置及び姿勢として用いる。しかしながら、位置及び姿勢の概略値の入力方法はこれに限るものではない。例えば、過去の位置及び姿勢の計測結果をもとに、位置及び姿勢の変化量を推定し、過去の位置及び姿勢と推定された変化量から現在の位置及び姿勢を予測してもよい。
【0013】
また、物体が置かれているおおよその位置や姿勢があらかじめわかっている場合には、その値を概略値として用いる。概略位置及び姿勢は、第一の位置姿勢取得手段として機能する第一の位置姿勢算出部160において第一の位置姿勢を算出する際に用いられる。
【0014】
3次元形状モデル入力部130は、計測対象物体との位置姿勢合わせにより、当該計測対象物体の位置姿勢を取得するための三次元形状モデルを保持するモデル保持手段から、位置姿勢計測装置1によって位置及び姿勢を計測する対象物体の3次元形状モデルを入力する。図2は、本実施形態における3次元形状モデルを説明する図である。3次元形状モデルは、点の集合及び各点を結んで構成される線分の集合によって定義される。図2(a)に示すように、観察対象物体の3次元形状モデルは点P1〜点P15の15点から構成される。また図2(b)に示すように、観察対象物体10の3次元形状モデルは線分L1〜L21により構成されている。点P1〜点P15は3次元座標値によって表される。線分L1〜L21は、線分を構成する点のIDによって表される。さらに3次元形状モデルは、面の情報も保持する。各面は、各面を構成する点のIDによって表される。図2に示す3次元形状モデルでは、物体を構成する8つの面の情報が記憶されている。3次元形状モデルは、第一の位置姿勢算出部160において物体の第一の位置姿勢を算出する際と、第二の位置姿勢取得手段として機能する第二の位置姿勢算出部180において物体の第二の位置姿勢を算出する際に用いられる。
【0015】
画像特徴検出部140は、撮像部110によって撮像された画像から画像内の画像特徴(幾何特徴)を検出する。本実施形態では画像特徴としてエッジを検出する。具体的には、概略位置姿勢入力部120から入力される物体の位置及び姿勢の概略値に基づいて、3次元形状モデルの各線分を画像上に投影し、投影された線分の近傍で対応するエッジ探索を行う。画像特徴は、第一の位置姿勢算出部160において、物体の第一の位置及び姿勢を算出する際に用いられる。
【0016】
特定自由度設定部150は、第一の位置姿勢算出部160で推定する位置姿勢パラメータの成分、第二の位置姿勢算出部で推定する位置姿勢パラメータの成分をそれぞれ設定する。
【0017】
尚、これ以後、第一の位置姿勢算出部160で推定する位置姿勢パラメータの成分を第一の位置姿勢パラメータとし、第二の位置姿勢算出部180で推定する位置姿勢パラメータの成分を第二の位置姿勢パラメータとする。
【0018】
具体的には、基準座標系を基準とした物体の位置姿勢の6パラメータを第一の位置姿勢パラメータとして記録する。さらに、物体形状がほぼ回転体称であり、かつその軸回りの回転を決めるための特徴が少ないことに起因して、6パラメータのうち、算出が困難なパラメータをあらかじめ第二の位置姿勢パラメータとして記録しておく。
【0019】
第一の位置姿勢算出部160は、画像特徴検出部140が検出した画像特徴を用いて、計測対象物体の第一の位置姿勢を算出する。
【0020】
対応取得部170は、第一の位置姿勢に基づいて、第二の位置姿勢パラメータを算出する手がかりとなる、3次元形状モデルと撮像画像との幾何特徴の対応を取得する。取得した対応は、第二の位置姿勢算出部180において、第二の位置姿勢パラメータを推定する際に用いられる。
【0021】
第二の位置姿勢算出部180は、第一の位置姿勢に基づき、対応取得部170によって得られた対応を利用して第二の位置姿勢を算出する。
【0022】
図3は、第一の実施形態における物体の位置及び姿勢の計測の処理手順を示すフローチャートである。尚、位置姿勢計測装置1は、図3で示したステップS1100〜ステップS1600の一連の処理を繰り返すことで、時間軸方向に連続して位置姿勢の計測を行う。
【0023】
(ステップS1100)
特定自由度設定部150は、第一の位置姿勢パラメータと、第二の位置姿勢パラメータとを設定する。
【0024】
図4(a)に、本実施形形態で対象とする物体の具体例とそのモデルの座標系を示す。
本実施形態では、図4(a)のように、物体がある軸に対してほぼ回転対称な形状を有することを前提とする。そこで、物体の回転対称性を定義する軸(以後、モデル中心軸と呼ぶ)を決定する。モデル中心軸の設定は、例えば、ユーザからの入力により行う。
【0025】
具体的には、図4(a)のようなモデルの場合、モデルの回転対称な面上から対面する2点a、bおよびc、dの2組をユーザからの入力として取得する。このとき、線分abと、線分cdとの交点を通り、かつ四角形acbdに垂直な方向をもつベクトルをモデル中心軸として算出する(図4(b))。ただし、モデル中心軸の設定方法はこれに限るものではない。たとえば、もし三角柱のような回転対称な形状の場合には、ユーザからの入力として回転対称な三角形上の3点を取得する。そして、その3点が成す三角形の重心を通り、かつ三角形に垂直な方向をもつベクトルをモデル中心軸として算出する。
【0026】
あるいは、モデル面上で回転対称性のある面(図4(a)中では八角形)をユーザからの入力として取得し、その重心を通り、かつ入力された面に直交する直線をモデル中心軸としてもよい。その他、モデル形状の回転対称性を定義する回転中心軸を算出できる他の手法を用いても良い。
【0027】
次に、モデル中心軸に対して互いに直交する2つの軸を設定する。ここで、モデル中心軸と、設定した2つの軸とが座標軸となるようにモデル座標系を変換して新しいモデル座標系とする(図4(c))。
【0028】
ここでは、新しいモデル座標系において、Y軸(実線)がモデル中心軸と一致するようにする。ただし、モデル座標系の変換方法はこれに限るものではない。例えば、モデル座標系のX軸がモデル中心軸と一致するように変換を行ってもよい。そのほか、モデル中心軸がモデル原点を通るようにモデル座標系が変換されていれば、いかなる変換であっても構わない。なお、以後の処理は、新しいモデル座標系を用いて行うものとする。基準座標系に対する物体の位置姿勢を6次元ベクトルs =[tx,ty,tz,θ,φ,ψ]で表す。ここで、tx、ty、tzはそれぞれX、Y、Z軸方向の位置(並進)成分を、θ、φ、ψはそれぞれX、Y、Z軸に対する姿勢(回転)成分を表す。この各回転成分の変換順序を考慮することで、座標変換において、物体軸回りの回転を分離する。この6パラメータを第一の位置姿勢パラメータとして記録する。さらに、モデル中心軸と一致する座標軸に対する回転成分を第二の位置姿勢パラメータとして記録する。本実施形態では、Y軸がモデル中心軸と一致するため、Y軸回りの回転成分であるφを第二の位置姿勢パラメータとして記録する。
【0029】
(ステップS1200)
撮像部110により、計測対象物体の二次元画像を撮像し、画像特徴検出部140に入力する。
【0030】
(ステップS1300)
位置姿勢計測装置1に対する物体の位置及び姿勢の概略値を概略位置姿勢入力部120により位置姿勢計測装置1に入力する。本実施形態では、前の時刻において計測された位置及び姿勢を用いる。
【0031】
(ステップS1400)
二次元画像の情報に基づいて物体の第一の位置姿勢パラメータの算出を行う。本実施形態では、二次元画像上の特徴であるエッジに3次元形状モデル中の線分の投影像が当てはまるように計測対象物体の位置及び姿勢を算出する。図5は、本ステップにおける第一の位置姿勢算出の処理手順を示すフローチャートである。ここでは、画像上で検出されたエッジと推定される位置及び姿勢に基づいて画像上に投影される線分との距離の二乗和が最小になるように位置及び姿勢のパラメータsの最適化を行う。このとき、位置姿勢に基づく、モデル座標系の三次元点X=[x,y,zから基準座標系の三次元点X=[x,y,zへの座標変換を数1のように表すものとする。
【0032】
=R X + T ・・・[数1]
ただしRは物体の姿勢を表す3つの成分θ、φ、ψで表現される3×3行列、Tはモデルの位置を表す3つの成分から成る3次元ベクトルT=[tx, ty, tz]である。さらに、概略位置姿勢に対する物体の位置及び姿勢の微小変化量を6次元ベクトルΔs =[Δtx,Δty,Δtz,Δθ,Δφ,Δψ]とし、これらの成分により表される姿勢の微小変化量をΔR、位置の微小変化量をΔTとする。このとき、位置及び姿勢が微小変化したときの、物体座標系の三次元点X=[x,y,zから基準座標系の三次元点X=[x,y,zへの座標変換を、数2のように表す。
【0033】
=RΔR X + T+ΔT ・・・[数2]
本ステップでは、微小変化量Δsを求めて、各成分の補正を行う処理を繰り返すことで、位置及び姿勢の算出を行う。以下、位置及び姿勢算出の処理手順について順に説明する。
【0034】
(ステップS1410)
初期化処理を行う。ここでは、ステップS1300で得られた計測対象物体の概略の位置及び姿勢を位置及び姿勢算出における概略値として入力する。
【0035】
(ステップS1420)
ステップS1200において入力された二次元画像上において画像特徴の検出・画像特徴とモデルとの対応付けを行う。本ステップは画像特徴検出部140において行われる。本実施形態では、画像特徴としてエッジを検出する。エッジは濃度勾配が極値となる点である。エッジの検出方法としては、種々の方法が提案されているため、詳細な説明は省く。
【0036】
図6は、本実施形態におけるエッジ検出を説明する図である。まず、ステップS1300において入力された計測対象物体の位置及び姿勢の概略値と、校正済みのカメラの内部パラメータを用いて、3次元形状モデルを構成する各線分の画像上への投影像を算出する。線分の投影像は画像上でも線分となる。次に、画像上で等間隔になるように投影線分上に制御点を設定し、制御点を通りかつ投影された線分に直交する線分上で1次元のエッジ検出を行う(図6(a))。エッジは画素値の濃度勾配の極値として検出されるため、図6(b)に示すように、近傍にエッジが存在する場合には複数のエッジが検出されることがある。本実施形態では、検出されるエッジのうち最も濃度勾配の大きいものを対応するエッジとする。
【0037】
(ステップS1430)
モデルの線分上の制御点と画像上のエッジとの対応をもとに、位置及び姿勢を算出するための係数行列・誤差ベクトルを算出する。図7は、線分の投影像と検出されたエッジの関係を説明する図である。図7では、画像の水平方向、垂直方向をそれぞれu軸、v軸としている。位置及び姿勢の概略値sに基づいて投影されたモデルの線分上のある制御点の画像上での位置を(u,v)、該制御点が所属する線分の画像上での傾きをu軸に対する傾きθとして表す。
【0038】
傾きθは、モデルの線分の両端の3次元座標をsの概略値(s)に基づいて画像上に投影し、画像上での両端の座標を結んだ直線の傾きとして算出する。該線分の画像上での法線ベクトルは(sinθ,−cosθ)となる。また、該制御点の対応点(エッジ)の画像座標を(u’,v’)とする。ここで、点(u’,v’)を通り、傾きがθである直線(図7の破線)上の点(u,v)は、
【0039】
【数1】

【0040】
と表せる。なお、θは定数とする。ここで、
【0041】
【数2】

【0042】
(定数)である。制御点の画像上での位置は計測対象物体の位置及び姿勢sにより変化する。したがって、制御点の画像座標(u,v)は、(u,v)の近傍での1次のテイラー展開によって数4のように近似できる。但しΔs(i=1,2,・・・,6)はsの各成分の微小変化を表す。つまり、Δs=Δtx、Δs=Δty、Δs=Δtz、Δs=Δθ、Δs=Δφ、Δs=Δψである。
【0043】
【数3】

【0044】
正しいsによって得られる制御点の画像上での位置が数1によって表される直線上にあると仮定すると、数4を数3に代入することにより、観測方程式(数5)が得られる。
【0045】
【数4】

【0046】
ただし、
【0047】
【数5】

【0048】
(定数)である。数5の観測方程式は対応付けが行われたすべての制御点について立式することができる。ここで、数3はsの各成分の微小変化Δs(i=1,2,・・・,6)についての方程式になっているため、数6に示すΔsに関する線形連立方程式を立てることができる。
【0049】
【数6】

【0050】
ここで、正規化画像座標系における画像座標u 、vはそれぞれu = x/ z、v = y/ zで表される。したがって、これらの数2に基づいて算出したu、vから、左辺の行列の各要素を算出する。
【0051】
この線形連立方程式を数7のように表す。
【0052】
Δs=E ・・・[数7]
左辺のJが求める係数行列であり、右辺のEが誤差ベクトルである。
【0053】
(ステップS1440)
数5をもとに、行列Jの一般化逆行列(J・J−1・Jを用いて位置及び姿勢の補正値Δsを最小二乗基準で求める。しかしながら、エッジの対応付けでは誤対応(外れ値)が多いため、次に述べるようなロバスト推定手法を用いる。一般に、外れ値であるエッジでは数4右辺の誤差ベクトルの値が大きくなる。そこで、誤差の絶対値が大きいデータには小さな重みを与え、誤差が小さいデータには大きな重みを与えるようにして、誤差の大きいデータの影響を抑制する。重みは例えば数8に示すようなTukeyの関数により与える。
【0054】
【数7】

【0055】
は定数である。なお、重みを与える関数はTukeyの関数である必要はなく、例えばHuberの関数など、誤差が大きいデータには小さな重みを与え、誤差が小さいデータには大きな重みを与える関数であればなんでもよい。各計測データに対応する重みをwとする。ここで数9のように重み行列Wを定義する。
【0056】
【数8】

【0057】
重み行列Wは、対角成分以外はすべて0の正方行列であり、対角成分には重みwが入る。この重み行列Wを用いて、数7を数10のように変形する。
【0058】
【数9】

【0059】
数10を数11のように解くことにより補正値Δsを求める。
【0060】
【数10】

【0061】
(ステップS1450)
ステップS1440において算出された位置及び姿勢の補正値Δsにより、位置及び姿勢の概略値を補正する。
【0062】
s←s+Δs
(ステップS1460)
収束判定を行い、収束していれば終了し、そうでなければステップS1420に戻る。収束判定では、補正値Δsがほぼ0である場合や、誤差ベクトルの二乗和が補正前と補正後でほとんど変わらない場合に収束したと判定する。
【0063】
以上の処理によって、ステップS1300で入力された位置及び姿勢の概略値が二次元画像の情報を用いて更新される。本ステップで最終的に算出された位置姿勢を第一の位置姿勢とする。
【0064】
(ステップS1500)
第一の位置姿勢に基づき、3次元形状モデル面上の点(モデル特徴点)に対応する二次元画像上の座標(画像特徴点)を取得する。本ステップにおいて、モデル座標系における特定軸方向の姿勢を決める特徴対応を別途取得することで、特定軸まわりの姿勢を高精度に算出可能となる。
【0065】
まず、3次元形状モデルの面上から、特定自由度方向のパラメータの算出に寄与する幾何特徴を選択し、その3次元座標を記録する。図2に示すモデルにおいて、p13〜p15が特定自由度方向のパラメータを一意に決める特徴となる。このモデル特徴点の選択は事前準備としてステップS1100の前にオフラインで行っておく。その際には、3次元形状モデルを自由な姿勢で観測できるツールを用いて、特定自由度方向のパラメータを一意に決める手がかりとなる幾何特徴を人手で指定したものを記録しておき、本ステップで読み出せばよい。あるいは、オンラインで人手による入力を介して指定してもよい。この場合は、第一の位置姿勢に基づいて撮像画像上にレンダリングした3次元形状モデルの中から、モデルの特定自由度方向のパラメータを一意に決める手がかりとなる幾何特徴が描画されている画素を人手により指定する。そして指定した画素に描画されているモデル面の3次元座標を取得することによりモデル特徴点を得る。
【0066】
次に、モデル特徴点に対応する画像特徴点を撮像画像から決定する。具体的には、第一の位置姿勢に基づき、3次元形状モデルおよび選択されたモデル特徴点の描画を行う。この画像と撮像画像とを比較して、モデル特徴点に対応する画素を撮像画像上で人手により指定することで画像特徴点を得る。ただし、モデル特徴点と画像特徴点との対応取得方法はこれに限るものではない。例えば、モデル特徴点に該当する部位の画像パターンをテンプレートとして用意しておき、撮像画像とのパターンマッチングにより対応する画像特徴点を取得してもよい。具体的には、まず3次元形状モデルと合わせて、モデルの姿勢を一意に決める手がかりとなる特徴点の三次元座標も保持しておき、それを読み込んでモデル特徴点とする。さらに、撮像装置に対する対象物体の姿勢を変化させてあらかじめ複数の視点から画像を撮影し、モデル特徴点の周辺部位のパターン画像を複数保持しておく。そして、撮像画像と各パターン画像とのパターンマッチングにより、もっとも類似する画素の位置を取得することで、対応する画像特徴点を得る。このとき、第一の位置姿勢に基づき、物体を特定自由度方向へ回転させた姿勢で撮影したパターン画像を候補としてパターンマッチングを行うことで、効率よく画像特徴点を探索する。
【0067】
以上の処理により、モデル特徴点に対応する画像特徴点を取得する。なお、モデル特徴点と画像特徴点との対応は最低一組必要だが、上述の処理を複数のモデル特徴点に対して行うことで、対応を複数取得してもよい。
【0068】
(ステップS1600)
ステップS1400で算出された第一の位置姿勢は、特定自由度に関するパラメータφを除き、正しい位置姿勢が算出されていることが期待される。本ステップでは、第一の位置姿勢を概略位置姿勢として、特定自由度に関するパラメータφのみに関する最適化を行い、位置姿勢を算出する処理を行う。
【0069】
第一の位置姿勢を概略位置姿勢とした場合、ステップS1400 と同様に数5の関係が成り立つ。ここで、モデル座標系を基準としたY軸方向に対するΔφの微小回転を表す3×3行列をΔRとする。このとき、第一の位置姿勢からモデル座標系のY軸方向にΔφだけ微小回転させたときの、物体座標系の三次元点X=[x,y,zから基準座標系の三次元点X=[x,y,zへの座標変換は、数12のように表される。
【0070】
=RΔR + T ・・・[数12]
そこで、本ステップでは、微小変化量Δφを求めて、モデルのY軸回転方向の補正を行うことで位置及び姿勢の算出を行う。
【0071】
図8は、本ステップにおける第二の位置姿勢算出の処理手順を示すフローチャートである。ここでは、画像上で検出された特徴点の座標と、第一の位置姿勢に基づいて画像上に投影されるモデル特徴点の座標との距離の二乗和が最小になるように位置及び姿勢の最適化を行う。
【0072】
(ステップS1610)
初期化処理を行う。ここでは、ステップS1400で得られた第一の位置姿勢を、位置及び姿勢算出における概略値として入力する。
【0073】
(ステップS1620)
モデル特徴点と画像特徴との対応をもとに、位置及び姿勢を算出するための係数行列・誤差ベクトルを算出する。図9は、モデル特徴点の投影像と、対応づいた画像特徴との関係を説明する図である。図9では、画像の水平方向、垂直方向をそれぞれu軸、v軸としている。位置及び姿勢の概略値φに基づいて投影されたモデル特徴点の画像上での位置を(u,v)として表す。また、該モデル特徴点に対応する画像特徴の画像座標を(u’,v’)とする。ここで、モデル点の画像上での位置は計測対象物体の微小変化φにより変化する。したがって、モデル特徴点を画面上に投影した座標(u’,v’)は、(u,v)の近傍での1次のテイラー展開によって数10のように近似できる。ただし、Δφはφの指定した軸方向の微小変化を表す。
【0074】
【数11】

【0075】
数13の観測方程式を対応付けが行われたすべての点群データについて立式して整理すると数14のように表される。
【0076】
【数12】

【0077】
ただし、u’、v’はモデル特徴点を投影した二次元座標、ui0i0はモデル特徴点に対応する画像特徴の二次元座標を意味する(i=1・・・n、n:特徴点数))。ここで、左辺の行列の値は、以下のように求める。まず、回転中心軸ベクトル[u,u,uに対する回転αを表す回転行列rは以下の数15により表される。
【0078】
【数13】

【0079】
ただし、c = cosα、s = sinαである。ここで、αが微小なとき、cosα≒1、sinα≒αであることを利用すると、Y軸に対する微小回転を表す行列ΔRは以下の数16で近似される。
【0080】
【数14】

【0081】
ただし[u,u,u=[0,1,0]である。以上より、数12は以下のように表される。
【0082】
【数15】

【0083】
【数16】

【0084】
正規化画像座標系における画像座標u 、vはそれぞれu = x/ z、v = y/ zで表される。したがって、これらをφで偏微分することで各値を算出する。
各行列成分を算出した数14の線形連立方程式を数19のように表す。
【0085】
Δφ=E ・・・[数19]
左辺のJが求める係数行列であり、右辺のEが誤差ベクトルである。
【0086】
(ステップS1630)
行列Jの一般化逆行列(J・J−1・Jを用いて、数19を数20のように解くことで、位置及び姿勢の補正値Δφを最小二乗基準で求める。
【0087】
Δφ=(J・J−1・J ・・・[数20]
(ステップS1640)
ステップS1630において算出された位置及び姿勢の補正値Δφにより、位置及び姿勢の概略値を補正する。
【0088】
φ←φ+Δφ
(ステップS1650)
収束判定を行い、収束していれば終了し、そうでなければステップS1620に戻る。収束判定では、補正値Δφがほぼ0である場合や、誤差ベクトルの二乗和が補正前と補正後でほとんど変わらない場合に収束したと判定する。
【0089】
以上述べたように、第一の実施形態では、特定の軸に対する回転体形状あるいは回転対称な形状を有する物体の位置姿勢推定を行う場合について述べた。まず、モデルと画像とのエッジ対応を利用して一度物体の位置及び姿勢を推定し、その後、モデルと画像との特徴点対応を利用して画像上の二次元距離を最小化することでモデルの特定軸回転方向に限定した位置合わせを行う。モデルの特定軸回転方向のみを後段で推定することで、特定自由度方向の類似形状によりパラメータが求まりにくい物体においても、ロバストかつ高精度に位置姿勢の計測が可能となる。
【0090】
(第二の実施形態)
第一の実施形態では、第一の位置姿勢算出において、まず物体の6自由度パラメータを最適化し、その後第二の位置姿勢算出で、特定自由度であるモデル座標系のY軸回転パラメータのみ最適化を行った。これに対して、本実施形態では、第一の位置姿勢算出においては、モデル座標系のY軸回転成分以外の5自由度のパラメータのみ最適化する。第一の位置姿勢算出において、推定が困難な自由度成分を削減することで、計算量を減らして効率よく位置姿勢を算出する。なお、本実施形態において、基本的な構成は第一の実施例と同様であるため説明を省略する。以下、本実施形態における各処理部について説明する。
【0091】
尚、撮像部110、概略位置姿勢入力部120、三次元形状モデル入力部130、画像特徴検出部140、第一の姿勢算出部160、対応取得部170、第二の位置姿勢算出部180については、実施例1と同様のため、説明を省略する。
【0092】
特定自由度設定部150は、第一の位置姿勢パラメータ、第二の位置姿勢パラメータをそれぞれ設定する。本実施形態においても、第一の実施形態と同様に、基準座標系を基準とした物体の位置姿勢の6パラメータのうち、モデルの形状に起因して算出が困難なパラメータを第二の位置姿勢パラメータとして記録しておく。ただし、第一の位置姿勢パラメータには、モデル座標系を基準とした位置姿勢の6パラメータのうち、第二の位置姿勢パラメータとして記録したパラメータ以外のパラメータを記録する。
【0093】
続いて、各処理について説明する。本実施形態において、基本的な処理フローは図3、図5および図8と同様である。第一の実施形態と異なる処理は、ステップS1100とステップS1400である。したがって、ステップS1100とステップS1400の説明を行い、その他の処理の説明は省略する。
【0094】
(ステップS1100)
第一の実施形態と同様の方法でモデル中心軸に対して互いに直交する2つの軸を設定し、モデル中心軸と、設定した2つの軸とが座標軸となるようモデル座標系を変換して新しいモデル座標系とする。その後、変換後のモデル座標系を基準とした位置姿勢パラメータを表す6次元ベクトルs =[tx,ty,tz,θ,φ,ψ]のうち、モデル中心軸まわりの回転成分であるφを第二の位置姿勢パラメータ、それ以外のパラメータを第一の位置姿勢パラメータとして記録する。
【0095】
(ステップS1400)
二次元画像の情報に基づいて物体の位置及び姿勢の計測を行う。本実施形態においても、画像上で検出されたエッジと、推定される位置及び姿勢に基づいて画像上に投影されるモデルの線分との距離の二乗和が最小になるように位置及び姿勢のパラメータの最適化を行う。ただし、位置姿勢パラメータであるs =[tx,ty,tz,θ,φ,ψ]のうち、第二の位置姿勢算出部で推定するφを除いた5つのパラメータtx,ty,tz,θ,ψを推定する。ここで、数1により表される、モデル座標系から基準座標系への変換において、姿勢変換を表す行列Rを各軸回りの回転に分解することで数21のように表すことができる。
【0096】
=R + T ・・・[数21]
ここでR、R、Rはそれぞれモデル座標系のX軸回転θ、Y軸回転φ、Z軸回転ψを表す行列である。
【0097】
ここで、概略位置姿勢に対する物体の位置及び姿勢の微小変化量を5次元ベクトルΔs =[Δtx,Δty,Δtz,Δθ,Δψ]とする。X軸微小回転Δθを表す回転行列をΔR、Z軸微小回転Δψを表す回転行列をΔR、位置の微小変化量をΔT=[Δtx,Δty,Δtz]とすると、モデル座標系において、5つのパラメータtx,ty,tz,θ,ψを微小変化させたときの物体座標系Xから基準座標系Xへの座標変換は、数22のように表される。
【0098】
=RΔRΔR + T+ΔT ・・・[数22]
実施例1と同様の方法で、この変換式に基づいて微小変化量Δsを求め、各位置姿勢成分の補正を行うことで、第一の位置及び姿勢の算出を行う。
【0099】
以上述べたように、本実施形態では、第一の位置姿勢算出においては、第二の位置姿勢算出で推定する自由度のパラメータは算出しない。第一の位置姿勢算出において推定する自由度成分を削減することで、より効率よく位置姿勢の算出が可能となる。
【0100】
(第三の実施形態)
第一の実施形態では、二次元画像を利用した位置姿勢推定について述べた。本実施形態では、第一の実施形態と同様の物体に対して距離画像を利用して位置姿勢推定を行う例について述べる。なお、本実施形態において、基本的な構成は第一の実施例と同様であるため説明を省略する。以下、本実施形態における各処理部について説明する。なお、概略位置姿勢入力部120、三次元形状モデル入力部130、特定自由度設定部150、対応取得部170については、第一の実施形態と同様のため、説明を省略する。
【0101】
撮像部110は、距離画像を撮像する距離センサである。距離画像は、各画素が奥行きの情報を持つ画像である。距離センサとしては、対象に照射したレーザ光やスリット光の反射光をカメラで撮影し、三角測量により距離を計測するアクティブ式のものが利用できる。しかしながら、距離センサはこれに限るものではなく、光の飛行時間を利用するTime−of−flight方式であってもよい。また、ステレオカメラが撮影する画像から三角測量によって各画素の奥行きを計算するパッシブ式であってもよい。その他、距離画像を計測するものであればいかなるものであっても本発明の本質を損なうものではない。
【0102】
画像特徴検出部140は、撮像部110によって撮像された画像から対応する幾何特徴を検出する。本実施形態では幾何特徴として三次元点を検出してモデル頂点と対応付ける。具体的には、概略位置姿勢入力部120から入力される物体の位置及び姿勢の概略値に基づいて、3次元形状モデルの各モデル頂点を画像上に投影し、モデル頂点が投影された画素に対応する距離値からカメラ座標系の三次元座標を算出する。三次元座標が算出された三次元点を投影されたモデル頂点に対応する画像特徴とする。画像特徴は、第一の位置姿勢算出部160において、第一の位置姿勢算出部160において物体の第一の位置及び姿勢を算出する際に用いられる。
【0103】
第一の位置姿勢算出部160は、画像特徴検出部140が検出した画像特徴を用いて、計測対象物体の第一の位置姿勢を算出する。本実施形態では、モデルの三次元面と、撮像画像から得られる点との距離を最小化することで第一の位置姿勢を算出する。
【0104】
対応取得部170は、第一の位置姿勢に基づいて、第二の位置姿勢パラメータを算出する手がかりとなる、3次元形状モデルと撮像画像との幾何特徴の対応を取得する。取得した対応は、第二の位置姿勢算出部180において、第二の位置姿勢パラメータを推定する際に用いられる。
【0105】
第二の位置姿勢算出部180は、第一の位置姿勢に基づき、対応取得部170によって得られた対応を利用して第二の位置姿勢を算出する。本実施形態では、モデル上の三次元点と、撮像画像から得られる点との距離を最小化することで第二の位置姿勢を算出する。
【0106】
続いて、各処理について説明する。本実施形態において、基本的な処理フローは図3、図5および図8と同様である。なお、ステップS1100、ステップS1300、ステップS1410、ステップS1440、ステップS1450、ステップS1460、ステップS1610、ステップS1630、ステップS1640、ステップS1650については第一の実施形態と同様であるため、説明を省略する。
【0107】
(ステップS1200)
撮像部110により、計測対象物体の距離画像を撮像し、画像特徴検出部140に入力する。
【0108】
(ステップS1400)
距離画像の情報に基づいて物体の位置及び姿勢の計測を行う。本実施形態では、距離画像上の特徴である三次元点に3次元形状モデルの投影像が当てはまるように計測対象物体の位置及び姿勢を算出する。本ステップにおける第一の位置姿勢算出の処理手順は、図5と同様であるため省略する。ここでは、距離画像から変換して得られる三次元点と、推定される位置及び姿勢に基づいて画像上に投影される3次元形状モデルの面との距離の二乗和が最小になるように位置及び姿勢の最適化を行う。以下の説明では、物体の位置及び姿勢を、実施例1と同様に6次元ベクトルsで表す。以下、位置及び姿勢算出の処理手順について順に説明する。なお、実施例1と処理が同一のものについては、説明を省略する。
【0109】
(ステップS1420)
ステップS1200において入力された距離画像とモデルとの対応付けを行う。以下、距離画像とモデルとの対応付け処理について説明する。図10は、本ステップにおける距離画像とモデルとの対応付け処理を説明する図である。本ステップでは、公知の手法により物体の3次元形状モデル(ポリゴンモデル)を距離画像上に投影することによって対応付けを行う。モデルを距離画像上に投影する理由は、距離画像の各画素がポリゴンモデルのどのポリゴンに対応するかを決定するためである。距離画像と同サイズの画像バッファに対し、校正済みであるカメラの内部パラメータと位置及び姿勢の概略値を用いてポリゴンモデルを描画する。以下、ポリゴンモデルを描画した画像をポリゴン描画画像と呼ぶ。描画する際には、各ポリゴンに固有の色を割り当てて描画を行う。ポリゴンの色はRGBの各色で表す。背景部分と区別するために、黒(R=0、G=0、B=0)以外の色を用いてポリゴンを描画する。これによって、距離画像の各画素に対応するポリゴンを、画像の色によって同定することができる。なお、ポリゴンの描画処理をGPU(Graphics Processing Unit)上で高速に行い、描画された結果の画像を読み出してもよい。ポリゴンモデルを描画した後、ポリゴン描画画像の各画素の値を読み取る。黒以外の値が保存されている画素については、距離画像のその画素に保持されている3次元座標とポリゴン描画画像上の色に相当するポリゴンと対応付ける。
【0110】
(ステップS1430)
3次元形状モデルのポリゴンと距離画像から変換した3次元点との対応をもとに、位置及び姿勢を算出するための係数行列・誤差ベクトルを算出する。以下、距離画像の画素(3次元の点)と面との対応に基づく係数行列・誤差ベクトルの算出方法について説明する。
【0111】
3次元空間における平面の方程式は一般にax+by+cz=e(a+b+c=1)の形で表される。ここでは、3次元形状モデル中のある面の計測物体の座標系における平面の方程式をax+by+cz=eであるとする。この平面の方程式は、位置及び姿勢の概略値に基づいて、基準座標系における平面の方程式a’x+b’y+c’z=e’に変換できる。位置及び姿勢の概略値に基づく、モデル座標系の三次元点X=[x,y,zから基準座標系の三次元点X=[x,y,zへの座標変換を数23のように表す。
【0112】
=R X + T ・・・[数23]
ただしRは姿勢を表す3×3回転行列、Tは位置を表す3次元ベクトルである。このとき、基準座標系における平面の方程式の係数は次式のようになる。
【0113】
【数17】

【0114】
基準座標系における3次元座標の計測値が(x’,y’,z’)である点Pが3次元形状モデル中のある面Fと対応付けられているとする。面Fに点Pから下ろした垂線の足をQとする。点Qの基準座標系における3次元座標(x,y,z)は、計測対象物体の位置及び姿勢sによって変換するものであり、ある位置及び姿勢sのときの3次元座標(x,y,z)の近傍で1次のテイラー展開によって数25のように近似できる。
【0115】
【数18】

【0116】
正しいsによって変換される(x,y,z)は、法線ベクトルが面Fと同じで点Pを通る平面(a’x+b’y+c’z=e’, e’=a’x’+b’y’+c’z’) 上にあると仮定すると、数21を平面の方程式に代入することにより数26が得られる。
【0117】
【数19】

【0118】
ただし、
【0119】
【数20】

【0120】
(定数)とした。数26の観測方程式は対応付けが行われたすべての点群データについて立式することができる。
【0121】
数25及び数26の観測方程式はsの各成分の微小変化Δs(i=1,2,・・・,6)についての方程式になっており、数12に示すΔsに関する線形連立方程式を立てることができる。
【0122】
【数21】

【0123】
この線形連立方程式を数28のように表す。
【0124】
JΔs = E ・・・[数28]
左辺のJが求める係数行列であり、右辺のEが誤差ベクトルである。
【0125】
(ステップS1500)
第一の位置姿勢に基づき、3次元形状モデル面上の点(モデル特徴点)に対応する距離画像上の三次元座標(画像特徴点)を取得する。なお、モデル特徴点は、実施例1と同様の方法で指定して記録しておく。次に、モデル特徴点に対応する画像特徴点を撮像した距離画像から決定する。具体的には、第一の位置姿勢に基づき、距離画像面上に3次元形状モデルおよび記録されているモデル特徴点の描画を行う。この画像と撮像画像とを比較して、モデル特徴点に対応する画素を撮像画像上で人手により指定する。その画素の距離値を三次元点に変換することで画像特徴点を得る。
【0126】
ただし、モデル特徴点と画像特徴点との対応取得方法はこれに限るものではない。たとえば、実施例1と同様に、モデル特徴点に該当する部位の距離画像パターンを保持して置き、撮像画像とのパターンマッチングにより対応する画像特徴点を取得してもよい。以上の処理により、モデル特徴点に対応する画像特徴点を取得する。なお、モデル特徴点と画像特徴点との対応は最低一組必要だが、上述の処理を複数のモデル特徴点に対して行うことで、対応を複数取得してもよい。
【0127】
(ステップS1620)
モデル特徴点と画像特徴点との対応をもとに、位置及び姿勢を算出するための係数行列・誤差ベクトルを算出する。本実施例では、第一の位置および姿勢を位置及び姿勢の概略値として,概略位置姿勢に基づいて基準座標系へ変換したモデル特徴点の三次元座標を(xc0,yc0,zc0)として表す。また、該モデル特徴点に対応する画像特徴の三次元座標を(x,y,z)とする。ここで、モデル点の画像上での位置は計測対象物体の微小変化φにより変化する。したがって、モデル特徴点を画面上に投影した座標(x,y,z)は、(xc0,yc0,zc0)の近傍での1次のテイラー展開によって数29のように近似できる。ただし、ΔφはY軸方向の回転φの微小変化を表す。
【0128】
【数22】

【0129】
数29の観測方程式を対応付けが行われたすべての点群データについて立式する。
【0130】
【数23】

【0131】
ただし、x’、y’ 、z’はモデル特徴点の三次元座標、xi0 、yi0 、zi0はモデル特徴点に対応する画像特徴の三次元元座標を意味する(i=1・・・n、n:特徴点数))。この線形連立方程式を数31のように表す。
【0132】
Δφ=E ・・・[数31]
左辺のJが求める係数行列であり、右辺のEが誤差ベクトルである。ここで求めた方程式を第一の実施形態のステップS1630と同様の方法で解くことで、第二の位置姿勢を算出する。
【0133】
以上述べたように、本実施形態では、第一の実施形態と同様の物体に対して距離画像を利用して位置姿勢推定を行う例について述べた。まず、モデルと画像との3次元点の対応を利用して一度物体の位置及び姿勢を推定し、その後、モデルと画像との特徴点対応を利用して三次元距離を最小化することでモデルの特定軸回転方向に限定した位置合わせを行う。
【0134】
なお、二次元画像と距離画像を同時に取得することが可能な場合には、第一の位置姿勢を算出する前段の位置合わせ、第二の位置姿勢を算出する後段の位置合わせにおいて、二次元画像を利用する手法と三次元画像を利用する手法をそれぞれ切り替えても良いし、同時に利用しても良い。
【0135】
(第四の実施形態)
第一の実施形態では、第二の位置姿勢算出において、非線形最適化により、パラメータの補正を繰り返すことで第二の位置姿勢算出を行った。これに対して、ステップS1610で得られる3次元形状モデルと撮像特徴との幾何特徴の対応から方程式を立て、この方程式を解くことで直接パラメータを算出してもよい。本実施形態では、第二の位置姿勢算出において、特徴対応から直接パラメータを算出して第二の位置姿勢を算出する方法について述べる。
【0136】
なお、本実施形態における位置姿勢計測装置1の構成は、第一の実施形態と同様のため、説明を省略する。
【0137】
続いて、各処理について説明する。本実施例においては、基本的な処理フローは図3、図5と同様である。実施例1と異なる処理は、ステップS1600のみであるため、その他の処理は説明を省略し、ステップS1600について説明を行う。
【0138】
(ステップS1600)
ステップS1400で算出された第一の位置姿勢は、特定自由度に関するパラメータφを除き、正しい位置姿勢が算出されていることが期待される。本ステップでは、第一の位置姿勢を概略位置姿勢として、特定自由度に関するパラメータφに関する方程式を立て、これを解くことで第二の位置姿勢を算出する。
【0139】
第一の実施形態で示したように、第一の位置姿勢を概略位置姿勢としてモデル座標系のY軸方向にφだけ回転させたときの、物体座標系の三次元点X=[x,y,zから基準座標系の三次元点X=[x,y,zへの座標変換は、数32のように表される。
【0140】
【数24】

【0141】
ただし、c=cosφ、s=sinφである。ここで概略位置姿勢からφだけ回転させたモデル特徴点を画面上に投影したときの正規化画像座標u 、vはそれぞれu = x/ z、v = y/ zにより算出される。このu、vが対応する画像特徴uo、voと等しい、という方程式を立てると、c=cosφ、s=sinφの2変数に関する以下のような方程式が立てられる。
【0142】
【数25】

【0143】
ここで、Aは2×2の行列、bは2次元ベクトルである。この方程式を解いて算出したsinφとcosφからtanφを計算し、atanφによりφを求める。
【0144】
以上述べたように、本実施形態では、第二の位置姿勢算出において、特徴対応から直接パラメータを算出して第二の位置姿勢を算出する方法について述べた。この方法では、第二の位置姿勢の算出で繰り返し処理を必要としないため、高速に位置姿勢を算出可能である。
【0145】
(第五の実施形態)
第一の実施形態では、特定の軸に対してほぼ回転対称な形状を有する物体の位置姿勢推定を行った。本実施形態では、モデル座標系の特定軸の並進方向を決める特徴が少ない物体の位置姿勢推定について述べる。このような物体では、位置姿勢の6自由度成分を公平に扱って位置姿勢を算出すると、モデルの特定軸並進方向のパラメータが正しく求まらない。そこで、位置姿勢を算出した後で、モデルの特定軸方向の並進パラメータのみ後段で推定する。本実施形態では、まず、エッジの位置合わせにより物体の位置姿勢を算出し、その後、モデルの特定軸の並進パラメータを推定することで位置および姿勢を計測する。
【0146】
なお、本実施形態における位置姿勢計測装置1の構成は、第一の実施形態と同様のため、説明を省略する。
【0147】
続いて、各処理について説明する。本実施形態において、基本的な処理フローは図3、図5および図8と同様である。第一の実施形態と異なる処理は、ステップS1100、ステップS1600ステップS1620である。したがって、その他の処理は説明を省略し、ステップS1100とステップS1600、ステップS1620の説明を行う。
【0148】
(ステップS1100)
第一の位置姿勢パラメータと、第二の位置姿勢パラメータを設定する。図11(a)に、本実施形態で対象とするモデルの具体例とその座標系を示す。本実施形態では、図11(a)のように、モデルがある軸方向に対して並進方向を決める特徴が少ない形状であることを前提とする。このモデルに対して、モデルの並進方向を定義する軸(以後、モデル中心軸と呼ぶ)を決定する。モデル中心軸の設定は、たとえばユーザからの入力により行う。具体的には、図11(a)のような四角柱形状のモデルの場合、四角柱の相対する2つの面を結ぶモデルのエッジ線分上から2点a、bをモデル中心軸として記録する(図11(b))。ただし、モデル中心軸の設定方法はこれに限るものではない。たとえば、モデル面上の頂点から主軸位置と方向を求め、これらにより表されるベクトルをモデル中心軸としてもよい。そのほか、モデル形状の回転対称性を定義する回転中心軸を算出できればいかなる方法であっても構わない。
【0149】
次に、モデル中心軸と互いに直交する2つの軸を設定する。ここで、モデル中心軸と、設定した2つの軸とが座標軸となるようにモデル座標系を変換して定義し直す(図11(c))。変換後のモデル座標系において、Y軸(実線)がモデル中心軸と一致している。ただし、モデル座標系の変換方法はこれに限るものではない。たとえばモデル座標系のX軸がモデル中心軸と一致するように変換を行ってもよい。そのほか、モデル中心軸の方向が、モデルの類似形状の方向と同一になるようモデル座標系が変換されていれば、いかなる変換であっても構わない。なお、以後の処理は、変換後のモデル座標系を用いて行うものとする。変換後のモデル座標系を基準として、第一の実施形態と同様に、位置姿勢計測装置1の位置姿勢を6次元ベクトルs =[tx,ty,tz,θ,φ,ψ]で表す。この6パラメータを第一の位置姿勢パラメータとして記録する。さらに、モデル中心軸と一致する座標軸に対する並進成分を第二の位置姿勢パラメータとして記録する。本実施例では、Y軸がモデル中心軸と一致するため、Y軸方向の並進成分であるtyを第二の位置姿勢パラメータとして記録する。
【0150】
(ステップS1600)
ステップS1400により算出された第一の位置姿勢は、特定自由度に関するパラメータtyを除き、正しい位置姿勢が算出されていることが期待される。本ステップでは、第一の位置姿勢を概略位置姿勢として、特定自由度に関するパラメータtyのみに関する最適化を行い、位置姿勢を算出する処理を行う。
【0151】
第一の位置姿勢を概略位置姿勢とした場合、ステップS1400 と同様に数5の関係が成り立つ。ここで、モデル座標系を基準としたY軸方向に対するΔtyの微小並進を表す3次元ベクトルをΔT = [0, ty, 0]とする。このとき、第一の位置姿勢からモデル座標系のY軸方向に微小並進させたときの、物体座標系の三次元点X=[x,y,zから基準座標系の三次元点X=[x,y,zへの座標変換は、数34のように表される。
【0152】
=R (X+ΔT)+ T ・・・[数34]
そこで、本ステップでは、微小変化量Δtyを求めて、モデル座標系Y軸方向の並進パラメータの補正を行うことで位置及び姿勢の算出を行う。
【0153】
ここでは、第一の実施形態と同様に、画像上で検出された特徴点の座標と、第一の位置姿勢に基づいて画像上に投影されるモデル特徴点の座標との距離の二乗和が最小になるように位置及び姿勢の最適化を行う。
【0154】
(ステップS1620)
モデル特徴点と画像特徴との対応をもとに、位置及び姿勢を算出するための係数行列・誤差ベクトルを算出する。本実施例においても、数14のφをtyに置き換えた形で、同様の関係が成立する。
ここで、数34は以下のように表される。
【0155】
【数26】

【0156】
【数27】

【0157】
正規化画像座標系における画像座標u 、vはそれぞれu = x/ z、v = y/ zで表される。したがって、これらをtyで偏微分することで、φをtxで置き換えた、数14と同様の線形連立方程式を立てることができる。この方程式を実施例1と同様の方法で解き、パラメータを更新することで第二の位置姿勢を算出する。
【0158】
以上、本実施形態では、モデル座標系の特定軸の並進方向に対して類似形状を有する物体の位置姿勢推定について述べた。一度物体の位置姿勢を算出し、その後、モデルの特定軸の並進パラメータを推定することで、特定軸並進方向のパラメータも正しく位置姿勢を計測する。なお、変形例1−1と同様に、第一の位置姿勢算出では、ty以外の5パラメータのみの推定を行っても良い。
【0159】
(第六の実施形態)
前述の実施形態では、モデル座標系の特定1自由度のパラメータの推定が困難な形状を持つ物体の位置姿勢推定方法について述べた。本実施形態では、モデル座標系を基準とした特定軸に対する回転、並進の2自由度に関するパラメータ推定が困難な形状の物体の位置姿勢を推定する方法について述べる。
【0160】
なお、本実施形態における位置姿勢計測装置1の構成は、実施例1と同様のため、説明を省略する。
【0161】
続いて、各処理について説明する。本実施形態において、基本的な処理フローは図3、図5および図8と同様である。第一の実施形態と異なる処理は、ステップS1100、ステップS1600ステップS1620である。したがって、その他の処理は説明を省略し、ステップS1100とステップS1600、ステップS1620の説明を行う。
【0162】
(ステップS1100)
第一の位置姿勢パラメータと、第二の位置姿勢パラメータを設定する。本実施例では、図12のように、モデルが特定軸方向に対してほぼ回転対称かつその特定軸の並進方向成分を決める特徴が少ない形状であることを前提とする。
【0163】
このモデルに対して、モデル中心軸を設定する。モデル中心軸の設定は、たとえばユーザからの入力により行う。回転対称性を定義する軸に対して垂直なモデル面(図12中では円)の輪郭線上の4点a、b、c、dをユーザからの入力として取得する。このとき、線分abの垂直二等分線と、線分cdの垂直二等分線との交点を通り、四角形abcdに垂直な方向をもつベクトルをモデル中心軸として算出する(図4(b))。ただし、モデル中心軸の設定方法はこれに限るものではない。たとえば、第一の実施形態と同様に、回転対称な面をユーザからの入力として取得し、その面の中心を通り、かつモデル面に直交する直線をモデル中心軸としてもよい。そのほか、モデル形状の回転対称性を定義する回転中心軸を算出できればいかなる方法であっても構わない。
【0164】
さらに、モデル中心軸と、モデル中心軸に対して互いに直交する2つの軸とが座標軸となるようにモデル座標系を変換して定義し直す。図12は、上述の処理による変換後のモデルを示している。変換後のモデル座標系において、Y軸(実線)がモデル中心軸と一致している。ここで、変換後のモデル座標系を基準として、実施例1と同様に、位置姿勢計測装置1の位置姿勢を6次元ベクトルs =[tx,ty,tz,θ,φ,ψ]で表す。この6パラメータを第一の位置姿勢パラメータとして記録する。さらに、モデル中心軸と一致する座標軸に対する回転成分、並進成分を第二の位置姿勢パラメータとして記録する。本実施例では、Y軸がモデル中心軸と一致するため、Y軸方向回転成分であるφ、Y軸方向並進成分であるtyを第二の位置姿勢パラメータとして記録する。
【0165】
(ステップS1600)
ステップS1400により算出された第一の位置姿勢は、特定自由度に関するパラメータφ、tyを除き、正しい位置姿勢が算出されていることが期待される。本ステップでは、第一の位置姿勢を概略位置姿勢として、特定自由度に関するパラメータφおよびtyに関する最適化を行い、位置姿勢を算出する処理を行う。
【0166】
第一の位置姿勢を概略位置姿勢とした場合、ステップS1400 と同様に数5の関係が成り立つ。
【0167】
ここで、モデル座標系を基準としたY軸方向に対するΔφの微小回転を表す3×3行列をΔR、Y軸方向に対するΔtyの微小並進を表す3次元ベクトルをΔT = [0, ty, 0]とする。このとき、第一の位置姿勢からモデル座標系のY軸方向に微小回転させたときの、物体座標系の三次元点X=[x,y,zから基準座標系の三次元点X=[x,y,zへの座標変換は、数30のように表される。
【0168】
=R (ΔR+ΔT)+ T ・・・[数37]
微小変化量Δφ、Δtyを求めて、モデル座標系Y軸方向の回転、並進パラメータの補正を行うことで位置及び姿勢の算出を行う。
【0169】
(ステップS1620)
数37の変換に基づき、第一の実施形態と同様の方法で、線形連立方程式の係数行列を算出する。この方程式は第一の実施形態と同様の方法で解き、パラメータを更新することで第二の位置姿勢を算出する。
【0170】
以上、本実施形態では、モデル座標系を基準とした特定軸に対する回転、並進の2自由度に関するパラメータ推定が困難な形状の物体の位置姿勢を推定する方法について述べた。なお、第二の実施形態と同様に、第一の位置姿勢算出では、φ、ty以外の4パラメータのみの推定を行っても良い。
【0171】
(第七の実施形態)
第六の実施形態では、モデル座標系を基準とした特定軸に対する回転、並進の2自由度に関するパラメータ推定が困難な形状の物体の位置姿勢を推定する方法について述べた。本変形例では、球あるいは正多面体のような形状で、かつモデル座標系における回転3自由度のパラメータに寄与する特徴が少ない物体の位置姿勢推定方法について述べる。
【0172】
なお、本実施例における位置姿勢計測装置1の構成は、第一の実施形態と同様のため、説明を省略する。
【0173】
続いて、各処理について説明する。本実施形態において、基本的な処理フローは図3、図5および図8と同様である。第一の実施形態と異なる処理は、ステップS1100、ステップS1500、ステップS1600ステップS1620である。したがって、その他の処理は説明を省略し、ステップS1100、ステップS1500、ステップS1600、ステップS1620の説明を行う。
【0174】
(ステップS1100)
第一の位置姿勢パラメータと、第二の位置姿勢パラメータを設定する。本実施形態では、物体が、球のような、3自由度の回転に対する対称性を有することを前提とする。このモデルに対して、モデルの3自由度の回転を定義する原点がモデル座標系の原点となるようモデル座標系を変換して定義し直す。モデルの回転を定義する原点の設定は、たとえばモデルを包含するBounding Boxの中心座標を利用する。そして、この原点を通り、互いに直交する3つの軸を設定し、この3つの軸がモデル座標系となるよう変換を行う。
【0175】
ここで、変換後のモデル座標系を基準として、第一の実施形態と同様に、位置姿勢計測装置1の位置姿勢を6次元ベクトルs =[tx,ty,tz,θ,φ,ψ]で表す。この6パラメータを第一の位置姿勢パラメータとして記録する。そして、モデルのX軸回転θ、Y軸回転φ、Z軸回転ψを第二の位置姿勢パラメータとして記録する。
【0176】
(ステップS1500)
第一の位置姿勢に基づき、3次元形状モデル面上の点(モデル特徴点)に対応する二次元画像上の座標(画像特徴点)を取得する。本実施形態でも第一の実施形態と同様の方法でモデルと画像との対応を取得する。本実施形態では、第二の位置姿勢算出において、3つのパラメータを推定する。二次元画像上の対応一組につき方程式が2つ得られるため、少なくとも2組の対応を取得する。
【0177】
(ステップS1600)
ステップS1400により算出された第一の位置姿勢は、θ、φ、ψを除き、正しい位置姿勢が算出されていることが期待される。本ステップでは、第一の位置姿勢を概略位置姿勢として、第二の位置姿勢パラメータθ、φ、ψに関する最適化を行い、位置姿勢を算出する処理を行う。
【0178】
第一の位置姿勢を概略位置姿勢とした場合、ステップS1400 と同様に数5の関係が成り立つ。
【0179】
ここで、モデル座標系を基準としたX軸方向に対するΔθの微小回転を表す3×3行列をΔR、Y軸方向に対するΔφの微小回転を表す3×3行列をΔR、Z軸方向に対するΔψの微小回転を表す3×3行列をΔRとする。このとき、第一の位置姿勢からモデル座標系のY軸方向に微小回転させたときの、物体座標系の三次元点X=[x,y,zから基準座標系の三次元点X=[x,y,zへの座標変換は、数38のように表される。
【0180】
=RΔRΔRΔR+ T ・・・[数38]
ここで、R、R、Rはそれぞれ数31の行列Rを各軸回りの回転に分解したものであり、R=Rの関係が成り立つ。
【0181】
本ステップでは、微小変化量Δθ、Δφ、Δψを求めて、モデル座標系の回転パラメータの補正を行うことで位置及び姿勢の算出を行う。
【0182】
(ステップS1620)
数38の変換に基づき、第一の実施形態と同様の方法で、線形連立方程式の係数行列を算出する。この方程式を第一の実施形態と同様の方法で解き、パラメータを更新することで第二の位置姿勢を算出する。
【0183】
以上、本実施形態では、モデル座標系を基準とした3自由度もしくは3自由度以下の回転パラメータ推定が困難な形状の物体の位置姿勢を推定する方法について述べた。なお、第二の実施形態と同様に、第一の位置姿勢算出では、θ、φ、ψ以外の3パラメータのみの推定を行っても良い。
【0184】
なお、球面上に特徴点が一点存在するような場合、その特徴点と球の中心とを結ぶ軸に対する回転パラメータは不定となる。このような形状に対しては、回転パラメータを2つとして、本実施形態と同様の方法で推定を行っても良い。
【0185】
(他の実施形態)
第二の位置姿勢パラメータの組み合わせは、これまで述べた方法に限るものではない。たとえば、薄い板のような平らな面1枚に、微小な特徴を有するような物体においては、物体面に垂直な軸に対する回転パラメータおよび物体面内の並進2パラメータの推定が困難である。そのため、このような物体に対して、これらの3パラメータを第二の位置姿勢パラメータとして推定を行っても良い。その他、推定が困難なパラメータをモデル座標系の特定自由度として分離できれば、どんな組み合わせであっても構わない。また、上記実施形態で説明された位置姿勢計測装置は、その機能のすべてもしくは一部を、CPU(セントラルプロセッシングユニット)、コンピュータプログラムが格納されたRAM(ランダムアクセスメモリ)などから構成されるコンピュータで代用することが可能である。
【0186】
(第八の実施形態)
第一の実施形態および第六の実施形態では、ステップS1100において、ユーザからの入力によりモデル中心軸の決定を行った。本実施形態では、物体の3次元設計CADデータから、モデル中心軸を自動で決定する方法について述べる。一般的に、モデル全体の形状がほぼ回転対称な場合、回転対称な解析曲面の回転対称軸の多くが、モデル全体形状の回転対称軸と一致する。そこで、物体の3次元設計CADデータを構成する解析曲面群の中から、回転対称な面形状の回転中心軸を抽出し、多数の回転対称面について、位置と方向とが一致する回転対称軸をモデル中心軸として設定する。
【0187】
図13は、本実施形態におけるモデル中心軸決定部2の構成を示している。同図に示すように、モデル軸中心軸決定部2は、3次元CADデータ保持部210、基準面選択および基準幾何情報抽出部220、参照面選択および参照幾何情報抽出部230、類似度算出部240、評価値算出部250、モデル幾何情報決定部260から構成されている。なお、モデル中心軸決定部2は、図1における特定自由度設定部150に、モデル中心軸を入力する。以下、モデル中心軸決定部2を構成する各部について説明する。
【0188】
3次元CADデータ保持部210は、計測対象物体の3次元CADデータを保持する。3次元CADデータには、たとえば対象物体の設計時のデータを利用する。ここで、3次元CADデータは、平面、B−Spline−曲面、トーラス曲面、円柱、円錐、円、といったいずれかの属性を持つ解析曲面を、輪郭線で切り取った、トリム曲面の集合により構成されるものとする。各解析曲面はその面形状を表現する解析パラメータを保持するものとする。なお、3次元CADデータと、位置合わせに利用する三次元形状モデルの座標系は、同一のものであるとする。ただし、3次元CADデータの座標系と位置合わせに利用する三次元形状モデルの座標系との相対位置関係が分かっていれば同一でなくてもかまわない。また、解析曲面の集合により形状を表現する3次元CADデータであれば、リバースエンジニアリングにより生成したものを利用してもよい。
【0189】
基準面選択および基準幾何情報抽出部220は、3次元CADデータを構成する複数の解析曲面の中から、回転対称軸の類似性を比較する際の基準となる解析曲面を1つ選択する。なお、回転対称な面のみを選択し、これ以外の面は選択しない。抽出した解析曲面を以後、基準面と呼ぶ。さらに、基準面選択および基準幾何情報抽出部220は、基準面の解析曲面パラメータから、面に固有の軸を抽出する。各解析曲面は、その面をUVパラメータ空間で表現するために、UV座標系を定義する2つの軸の、モデル座標系における位置と方向とをパラメータとして保持する。2つの軸とは、たとえば、解析曲面が回転対称であれば回転中心軸とそれに直交する軸、平面であれば面に平行な互いに直交する2軸がこれに相当する。そこで、この2軸のうち、回転中心軸を表すものを抽出する。抽出した軸を以後、基準軸と呼ぶことにする。
【0190】
参照面選択および参照幾何情報抽出部230は、3次元CADデータを構成する複数の解析曲面の中から、基準面選択および基準幾何情報抽出部で抽出した解析曲面とは異なる解析曲面を1つ選択し、選択した解析曲面に固有の軸を抽出する。ここで抽出した面および軸を、以後参照面および参照軸と呼ぶことにする。
【0191】
類似度算出部240は、基準軸と参照軸のパラメータから、基準軸と、参照軸との類似度を算出する。
【0192】
評価値算出部250は、基準軸に対する各参照軸の類似度に基づいて、基準軸について、類似度の高い回転対称軸の多さを評価する評価値をそれぞれ算出する。
【0193】
モデル幾何情報決定部260は、各基準軸に対して算出した評価値に基づいて、モデル中心軸を決定する。
【0194】
図14は、第八の実施形態におけるモデル軸決定の手順を示すフローチャートである。
【0195】
(ステップS2100)
3次元CADデータ保持部210により対象物体の3次元CADデータを入力する。
【0196】
(ステップS2200)
3次元CADデータを構成する複数の解析曲面の中から、モデル軸決定に利用するための解析曲面を抽出する。本実施例では、円、円柱、円錐のいずれかの属性を持つ解析曲面を抽出する。なお、回転対称な形状であれば、いかなる解析曲面を抽出してもかまわない。ここで、抽出した解析曲面の数をMとする。
【0197】
(ステップS2300)
基準面選択および基準幾何情報抽出部220により、ステップS2200で抽出したM個の解析曲面の中から基準面を選択し、基準軸の抽出を行う。まず、M個の解析曲面の中から1つ、基準とする解析曲面をランダムに選択する。選択した解析曲面を基準面F(i=1〜M)とする。次に、基準面Fを表現する解析曲面パラメータの中から、面の回転中心軸を、基準軸Aとして抽出する。ここで、Aはモデル座標系における始点位置を表す3次元座標p、方向を表す3次元ベクトルnにより表されるものとする。
【0198】
(ステップS2400)
参照面選択および参照幾何情報抽出部230により、ステップS2200で抽出したM個の解析曲面の中から、参照面および参照軸の抽出を行う。まず、M個の解析曲面のうち、基準面とは異なるものから1つ、参照する解析曲面を選択する。選択した解析曲面を参照面F(j=1〜M、ただしj≠i)とする。さらに、ステップS2300と同様に、参照面Fを表現する解析曲面パラメータから、回転中心軸をAとして抽出する。なお、参照軸の始点位置を表す3次元座標をp、方向をあらわす3次元ベクトルをnとする。
【0199】
(ステップS2500)
類似度算出部240により、基準軸Aと参照軸Aのパラメータから、基準軸Aに対する参照軸Aとの類似度を算出する。具体的には、2軸間の距離類似度と、方向類似度とを算出する。まず、基準軸と参照軸との始点間距離をd1、参照軸の始点を基準軸へ投影した際の基準軸の始点との距離をd2として、距離類似度αijを以下のように定義し、算出する。
【0200】
【数28】

【0201】
ここで、
【0202】
【数29】

【0203】
【数30】

【0204】
である。
【0205】
次に、基準軸と参照軸との方向の類似度βijを以下のように定義し、算出する。
【0206】
【数31】

【0207】
なお、類似度αij、類似度βijは値が大きいほど2つの軸が類似していることを意味する。ここで、算出したd1、αij、βijをそれぞれi、jとともに記録しておく。
【0208】
(ステップS2600)
ステップS2200で抽出したM個の解析曲面のうち、基準面以外に、参照面として未選択のものが存在すれば、ステップS2400へ戻り、存在しなければステップS2600へ進む。
【0209】
(ステップS2700)
評価値算出部250により、基準軸と各参照軸との類似度に基づき、類似度が閾値以上であった参照軸を持つ参照面の面積の和を評価値として算出する。まず、基準軸Aと各参照軸Aとの類似度αij、βijに基づいて、以下の条件をともに満たすjを類似する軸を保有する面のIDとして記録する。
【0210】
θ<αij、 φ<βij ・・・[数41]
ここで、θ、φはともに閾値である。θにはたとえばθ=d1×10、φにはたとえばφ=0.9を設定する。次に、記録しておいたIDに基づき、各参照面Fの表面積Sを求め、その総和を基準軸Aの評価値Vとして算出する。
ただし、評価値の算出方法はこれに限るものではない。たとえば、αijあるいはβijのどちらか一方の条件のみ満たすもののIDを類似する軸とみなしてもよい。あるいは、閾値を利用せずに評価値V=Σ(S×βij)としてもよい。あるいは、類似度が閾値以上であった面の総数を評価値としてもよい。その他、2つの軸の類似性を評価できる尺度であれば、これ以外のものであってもかまわない。
【0211】
(ステップS2800)
ステップS2200で抽出したM個の解析曲面のうち、基準面として未選択のものが存在すれば、ステップS2300へ戻り、存在しなければステップS2900へ進む。この結果、各基準面Fの軸に対する評価値Vを得る。
【0212】
(ステップS2900)
モデル幾何情報決定部260により、各評価値Vの中から、もっとも大きい評価値をもつ基準軸Aをモデル中心軸として決定する。あるいは、評価値の高い基準軸の中から上位数個を候補として抽出し、三次元CADデータの形状と基準軸とを重畳させて画面上に表示し、GUIによりユーザに選択させてもよい。具体的には、モデル全体の表面積Sに対する評価値Vの割合を閾値thresholdとして設定しておき(たとえばthreshold=0.1)、以下の関係を満たすものだけを抽出して提示する。
【0213】
Vi / S > threshold ・・・[数40]
このとき、評価値の高い基準軸から順に抽出し、逐次、抽出された基準軸との類似度が閾値以上の参照軸に関しては、次の抽出候補から除外することで、類似した軸のみが候補として複数提示されるのを防いでもよい。
【0214】
以上、本実施形態では、物体の3次元設計CADデータを構成する解析曲面群の中から、回転対称な面形状の回転対称軸を抽出し、多数の回転対称面について、位置と方向とが一致する回転対称軸をモデル中心軸として設定する方法について述べた。
【0215】
なお、回転対称軸を表現する始点位置の3パラメータおよび方向の3パラメータにより表される6自由度空間を適当な大きさに分割してbinを設定しておき、各解析曲面の回転対称軸の6パラメータに基づいてbinに投票を行って、類似するものを選別してもよい、この場合、もっとも投票の多かったbinに投票した全回転対称軸の平均値をとることで、モデル中心軸を決定する。このほか、回転対称な各解析曲面の回転対称軸に対して、方向と位置とが多数類似するものを決定できれば、上に述べた以外のいかなる方法であってもかまわない。
【0216】
また、本実施例では、CADデータの解析曲面から回転対称な面を抽出したが、解析曲面でなくても正多角形あるいは正多角柱など、回転対称なプリミティブを抽出して同様の方法をとってもよい。
【0217】
(第九の実施形態)
第五の実施形態では、ステップS1100において、ユーザからの入力あるいはモデル全体形状の主軸方向に基づいて、特定の1軸並進成分を規定するモデル中心軸の決定を行った。本実施形態では、第八の実施例と同様に、対象物体の3次元設計CADデータから、モデルの特定の並進成分を規定するモデル中心軸を設定する方法について述べる。
【0218】
特定の1軸方向に関する並進パラメータの推定が困難な物体の場合、モデルを構成する個々の解析曲面のうち、相対的に細長い平面がモデル全体の形状において支配的に分布していることが期待される。そこで、物体の3次元設計CADデータを構成する解析曲面群の中から平面を抽出し、その平面の重心を始点としてその平面の長軸方向へ向かうベクトルをモデル中心軸候補となる軸として抽出する。この軸との位置と方向とが一致する軸をモデル中心軸として設定する。
【0219】
なお、本実施形態におけるモデル幾何情報決定部2の構成は、第八の実施形態と同様のため、説明を省略する。ただし、本実施例では、基準面選択および基準幾何情報抽出部220、参照面選択および参照幾何情報抽出部230では、3次元CADデータを構成する複数の解析曲面の中から、モデル中心軸の決定に利用する際の解析曲面として、平面のみをそれぞれ抽出する。なお、平面以外の解析曲面については選択しない。さらに、面に固有の軸として、その面の重心を始点として、面の長軸方向へと向かうベクトルを抽出する。
【0220】
続いて、各処理について説明する。本実施形態において、基本的な処理フローは図14と同様である。第八の実施形態と異なる処理は、ステップS2200、ステップS2300、ステップS2400である。したがって、その他の処理は説明を省略し、ステップS2200、ステップS2300、ステップS2400の説明を行う。
【0221】
(ステップS2200)
3次元CADデータを構成する複数の解析曲面の中から、モデル軸決定に利用するための解析曲面を抽出する。本実施例では、平面のいずれかの属性を持つ解析曲面を抽出する。なお、曲面を持たず、平面のみで構成される面形状であれば、いかなる解析曲面を抽出してもかまわない。ここで、抽出した解析曲面の数をMとする。
【0222】
(ステップS2300)
抽出したM個の解析曲面の中から基準面を選択し、基準軸の抽出を行う。まず、M個の解析曲面の中から1つ、基準とする解析曲面をランダムに選択する。選択した解析曲面を基準面F(i=1〜M)とする。次に、基準面Fを表現する解析曲面パラメータから、面の重心および面に直交するベクトルを求め、重心位置を表す3次元座標をp、重心位置を始点として面の長軸方向に向かう3次元ベクトルをnとする。ただし、軸の抽出方法はこの限りではない。
【0223】
(ステップS2400)
抽出したM個の解析曲面の中から、参照面および参照軸の抽出を行う。まず、M個の解析曲面のうち、基準面とは異なるものから1つ、参照する解析曲面を選択する。選択した解析曲面を参照面F(j=1〜M、ただしj≠i)とする。さらに、ステップS2300と同様に、参照面Fを表現する解析曲面パラメータから、参照軸の始点位置を表す3次元座標をp、方向をあらわす3次元ベクトルをnとして抽出する。
【0224】
以上、本実施形態では、3次元設計CADデータを構成する解析曲面のうち、平面に関して、その平面の重心を始点として平面の長軸方向に向かうベクトルを軸としてそれぞれ抽出し、この軸の方向と位置とが多数類似するものを、モデル中心軸として設定した。
【0225】
なお、ステップS2300において、nには、面の重心位置から長軸方向へと向かうベクトルの代わりに、面の重心位置を始点として、面に直交するベクトルを用いてもよい。このとき、ステップS2400では、ステップS2300と軸の抽出方法を統一し、面の重心位置を表す3次元座標をp、重心位置を始点として面に直交する3次元ベクトルをnとして抽出する。さらに、ステップS2900では、各評価値Vの中から、もっとも大きい評価値をもつ基準軸Aの基準面Fの重心を始点としてその面の長軸方向に向かうベクトルをモデル中心軸として決定する。
【0226】
なお、第七の実施形態で述べたような、球形状の物体における回転3自由度を規定する中心点に関しても、同様の方法で決定可能である。この場合には、CADデータを構成する解析曲面群から、球形状の解析曲面を複数抽出し、各面の中心点との距離が多数類似度する点をモデル中心点として決定する。あるいはCADデータから正多面体の形状を複数抽出して同様に中心点を求めることで、多数の中心点と類似する点をモデル中心点として決定してもよい。
【産業上の利用可能性】
【0227】
本発明は、ロボットの自己位置推定や、ロボットと物体との間の相対的な位置及び姿勢を推定するのに利用することができる。
【符号の説明】
【0228】
1 位置姿勢計測装置
110 撮像部
120 概略位置姿勢入力部
130 三次元形状モデル入力部
140 画像特徴検出部
150 特定自由度設定部
160 第一の位置姿勢算出部
170 対応取得部
180 第二の位置姿勢算出部
2 モデル中心幾何情報決定部
210 CADデータ保持部
220 基準面選択および基準幾何情報抽出部
230 参照面選択および参照幾何情報抽出部
240 類似度算出部
250 評価値算出部
260 モデル幾何情報決定部

【特許請求の範囲】
【請求項1】
計測対象物体との位置姿勢合わせにより、当該計測対象物体の位置姿勢を取得するための三次元形状モデルを保持するモデル保持手段と、
前記計測対象物体の画像を取得する画像取得手段と、
前記三次元形状モデルの第一の幾何特徴と前記画像内の第一の幾何特徴とに基づき、第一の座標系において、前記三次元形状モデルの第一の位置姿勢を取得する第一の位置姿勢取得手段と、
前記三次元形状モデルの第二の幾何特徴と前記画像内の第二の幾何特徴と前記第一の位置姿勢とに基づき、前記第一の座標系と異なる第二の座標系において、前記三次元形状モデルの第二の位置姿勢を取得する第二の位置姿勢取得手段と、を有することを特徴とする情報処理装置。
【請求項2】
前記第一の座標系は、前記画像を取得した撮像装置の撮像座標系であり、
前記第二の座標系は、前記三次元形状モデルを基準としたモデル座標系であることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第一の位置姿勢は、前記撮像座標系における6自由度の位置姿勢パラメータで表される位置姿勢であることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記第二の位置姿勢は、前記モデル座標系を基準とした3自由度以下の位置姿勢パラメータで表される位置姿勢であることを特徴とする請求項2に記載の情報処理装置。
【請求項5】
前記第二の位置姿勢は、前記モデル座標系を基準とした1自由度の回転成分と1自由度の並進成分との少なくともいずれか一つで表される位置姿勢であることを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記第二の位置姿勢取得手段は、前記三次元形状モデルの第二の幾何特徴の画像を用いたパターンマッチングにより、前記第一の座標系と異なる第二の座標系において、前記三次元形状モデルの第二の位置姿勢を取得することを特徴とする請求項1に記載の情報処理装置。
【請求項7】
前記第二の位置姿勢取得手段は、非線形最適化により前記第二の位置姿勢を取得することを特徴とする請求項1に記載の情報処理装置。
【請求項8】
前記第二の位置姿勢取得手段は、連立方程式から前記第二の位置姿勢を取得することを特徴とする請求項1に記載の情報処理装置。
【請求項9】
前記画像取得手段は、前記計測対象物体の画像として、前記計測対象物体の二次元画像と距離画像との少なくともいずれか一つを取得することを特徴とする請求項1に記載の情報処理装置。
【請求項10】
前記第一の位置姿勢のパラメータは、前記モデル座標系における6自由度の位置姿勢パラメータのうち、前記第二の位置姿勢を表すパラメータ以外のパラメータであることを特徴とする請求項1に記載の情報処理装置。
【請求項11】
更に、前記計測対象物体の3次元設計CADデータを保持するデータ保持手段と、
前記3次元設計CADデータを基準とした3自由度以下の位置姿勢パラメータを規定するモデル中心軸またはモデル中心点を決定し、当該中心軸またはモデル中心点に基づいて、前記第二の座標系を決定するモデル中心幾何情報決定手段とを有することを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
【請求項12】
前記モデル中心幾何情報決定手段は、前記3次元設計CADデータを構成する解析曲面群における複数の解析曲面から抽出した回転対称軸との位置と方向との少なくとも一方の類似度が高くなるように、1自由度の回転成分と1自由度の並進成分との少なくとも一方を規定するモデル中心軸を決定することを特徴とする請求項11記載の情報処理装置。
【請求項13】
前記モデル中心幾何情報決定手段は、
前記3次元設計CADデータを構成する解析曲面群における複数の解析曲面から抽出した並進を規定する軸との位置と方向との少なくとも一方の類似度が高くなるように、1自由度の並進成分を規定するモデル中心軸を決定することを特徴とする請求項11に記載の情報処理装置。
【請求項14】
前記モデル中心幾何情報決定手段は、
前記3次元設計CADデータを構成する解析曲面群における複数の解析曲面から抽出した中心点との位置の類似度が高くなるように、3自由度の回転成分を規定するモデル中心点を決定することを特徴とする請求項11に記載の情報処理装置。
【請求項15】
前記モデル中心幾何情報決定手段は、前記類似度が高い軸または点をGUIによりユーザに1つ以上提示し、ユーザ指示に基づき、前記類似度が高い軸または点から前記モデル中心軸またはモデル中心点を選択することを特徴とする請求項11に記載の情報処理装置。
【請求項16】
計測対象物体を撮像する撮像部と、
計測対象物体との位置姿勢合わせにより、当該計測対象物体の位置姿勢を取得するための三次元形状モデルを保持するモデル保持手段と、
前記撮像部で撮像された前記計測対象物体の画像を取得する画像取得手段と、
前記三次元形状モデルの第一の幾何特徴と前記画像内の第一の幾何特徴とに基づき、第一の座標系において、前記三次元形状モデルの第一の位置姿勢を取得する第一の位置姿勢取得手段と、
前記三次元形状モデルの第二の幾何特徴と前記画像内の第二の幾何特徴と前記第一の位置姿勢とに基づき、前記第一の座標系と異なる第二の座標系において、前記三次元形状モデルの第二の位置姿勢を取得する第二の位置姿勢取得手段と、を有することを特徴とする情報処理装置。
【請求項17】
モデル保持手段が、計測対象物体との位置姿勢合わせにより、当該計測対象物体の位置姿勢を取得するための三次元形状モデルを保持するモデル保持工程と、
画像取得手段が、前記計測対象物体の画像を取得する画像取得工程と、
第一の位置姿勢取得手段が、前記三次元形状モデルの第一の幾何特徴と前記画像内の第一の幾何特徴とに基づき、第一の座標系において、前記三次元形状モデルの第一の位置姿勢を取得する第一の位置姿勢取得工程と、
第二の位置姿勢取得手段が、前記三次元形状モデルの第二の幾何特徴と前記画像内の第二の幾何特徴と前記第一の位置姿勢とに基づき、前記第一の座標系と異なる第二の座標系において、前記三次元形状モデルの第二の位置姿勢を取得する第二の位置姿勢取得工程と、を有することを特徴とする情報処理装置。
【請求項18】
コンピュータを、
計測対象物体との位置姿勢合わせにより、当該計測対象物体の位置姿勢を取得するための三次元形状モデルを保持するモデル保持手段と、
前記計測対象物体の画像を取得する画像取得手段と、
前記三次元形状モデルの第一の幾何特徴と前記画像内の第一の幾何特徴とに基づき、第一の座標系において、前記三次元形状モデルの第一の位置姿勢を取得する第一の位置姿勢取得手段と、
前記三次元形状モデルの第二の幾何特徴と前記画像内の第二の幾何特徴と前記第一の位置姿勢とに基づき、前記第一の座標系と異なる第二の座標系において、前記三次元形状モデルの第二の位置姿勢を取得する第二の位置姿勢取得手段と、を有することを特徴とする情報処理装置として機能させるためのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2012−150796(P2012−150796A)
【公開日】平成24年8月9日(2012.8.9)
【国際特許分類】
【出願番号】特願2011−279801(P2011−279801)
【出願日】平成23年12月21日(2011.12.21)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】