説明

情報処理装置、情報処理方法、およびプログラム

【課題】クラックや重複を含む3次元形状モデルから画像上でエッジとして観察される3次元ラインの抽出精度を向上する。
【解決手段】3次元モデルを保持する保持部と、3次元モデルの位置および姿勢を入力する位置姿勢入力部と、3次元モデルから3次元モデルを構成する線分を選択する選択部と、対象物体の位置および姿勢に基づいて、3次元モデルを構成する線分および面を、3次元モデルまでの奥行き情報が各画素に保持された2次元画像上に、投影線分および投影面として投影する投影部と、選択された線分から、投影線分のうち2次元画像上で重複する線分を、1つ残して削除する削除部と、選択された線分であって、削除された後の線分から、奥行き情報に基づいて、2次元画像上において対象物体の特徴を示すエッジとなる線分を抽出する抽出部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元形状モデルから、画像上でエッジとして観察される3次元ラインを抽出する情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
近年のロボット技術の発展とともに、工業製品の組立のようなこれまで人間が行っていた複雑なタスクをロボットが代わりに行うようになりつつある。このようなロボットは、ハンドなどのエンドエフェクタによって部品を把持して組立を行う。ロボットが部品を把持するためには、把持の対象となる部品とロボット(ハンド)との間の相対的な位置及び姿勢を計測する必要がある。位置及び姿勢を計測する方法としては、カメラが撮影する2次元画像上から検出される特徴に対して物体の3次元形状モデルを当てはめる、モデルフィッティングによる計測が一般的である。非特許文献1では、2次元画像上から検出される特徴としてエッジを利用する方法が開示されている。この方法では、物体の形状は3次元ラインの集合によって表される。そして、物体の概略の位置及び姿勢は既知であるとして、画像上で検出されるエッジに3次元ラインの投影像が当てはまるように概略の位置及び姿勢を補正することにより物体の位置及び姿勢を計測する。一般的に、物体の形状を表す3次元ラインとしては、物体の輪郭(ジャンプエッジ)となる3次元ライン用いることが多い。また、物体内部においてルーフエッジとなる3次元ラインを用いることが多い。しかし、輪郭となる3次元ラインは、物体を観察する方向によって変化するため、物体を観察する方向に応じて輪郭となる3次元ラインを抽出する処理が必要になる。
【0003】
物体の形状を表す3次元形状モデルから輪郭となる3次元ラインを抽出する方法として、3次元形状モデル中の面の法線情報を利用する方法が特許文献1に開示されている。この方法では、3次元形状モデル中の各3次元ラインについて、隣接する2つの面が視点に対して表を向いているか、裏を向いているかを算出し、表裏が異なる場合は輪郭線として判定することで3次元ラインを抽出している。
【0004】
また、特許文献2で開示されている手法では、3次元形状モデル中の面と面との法線の内積と面間の色の内積を算出して、双方の内積が一定値以下であれば、その面と面との境界となる3次元ラインは、輪郭であると判別している。
【0005】
また、3次元形状モデルから直接3次元ラインを抽出しない手法として、3次元形状モデルの描画画像から3次元ラインを計算する方法が非特許文献2で開示されている。この方法は、コンピュータグラフィックス(CG)により3次元形状モデルを描画し、描画の結果として得られるデプスバッファに対して、エッジ検出を行う。デプスバッファとは、視点からモデル上の各点までの奥行き値が格納された画像であり、デプスバッファからエッジを検出することで、奥行きが不連続に変化する領域を算出することが可能である。デプスバッファ上でエッジとして検出された画素の画像座標と奥行き値とから、エッジに対応する3次元ラインのパラメータを算出することで、画像上でエッジとなる3次元ラインを算出する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−319031号公報
【特許文献2】特開平10−188030号公報
【特許文献3】特開平11−260812号公報
【非特許文献】
【0007】
【非特許文献1】T. Drummond and R. Cipolla, “Real-time visual tracking of complex structures,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.24, no.7, pp.932-946, 2002.
【非特許文献2】H. Wuest, F. Wientapper, and D. Stricker, “Adaptive Model-based Tracking Using Analysis-by-Synthesis Techniques,“ International Conference on Computer Analysis of Image and Patterns (CAIP), 2007.
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1または2で開示されているような、3次元形状モデルから直接3次元ラインを抽出する手法では、3次元形状モデル中で3次元ラインが重複して定義されておらず、形状を表す面と面の間にはクラック(隙間)がないことが前提となっている。しかし、3次元形状モデルがパラメトリック曲面により記述された設計用CADデータを三角形メッシュ変換されたモデルである場合などには、3次元曲面またはポリゴンパッチ間の境界曲線または線分が単一のものとして定義されていない。そのため、それぞれの面に属するものとして独立に定義されている場合がある。さらに独立に定義されたライン間にクラックがある場合も多い。その結果、隣り合う面を参照することや、面と面の角度を計算することが出来ず、3次元ラインを正確に抽出すること自体が困難であり、抽出前に重複データを削除する処理が必要となるといった課題がある。
【0009】
クラックを含む3次元形状モデルへの対応としては、3次元形状モデルのクラックを補間し、クラックのないモデルを一度生成してから3次元ライン抽出を行うという方策が考えられる。
【0010】
特許文献3では、クラックを含むモデルを簡略化することで、クラックを補間する手法が開示されている。この方法は、メッシュを近似する領域を定め、近似範囲にある頂点をマージし、モデルを簡略化することで、クラックを除去している。しかし、元の形状が簡略化されるため、元の形状データの精度が保存されないという問題がある。また、閾値が不適切に設定された場合は、モデルの精度は著しく損なわれてしまう恐れがある。加えて、モデルのスケールや観察距離、観察方向に応じて、適切な近似範囲の閾値が変化するため、多様な利用シーンに適用することには限界がある。
【0011】
一方、非特許文献2に示されるような、3次元形状モデルのCG描画結果の画像を利用する方法は、クラックを含むモデルからであっても、正確に輪郭となる3次元ラインを抽出することが可能である。3次元形状モデル中の3次元ラインの画像上への投影像を画素単位で標本化することにより、ほとんどの場合、クラックが画素の範囲に埋もれる。そのため、クラックを含むモデルからでも問題なく輪郭となる3次元ラインを抽出することが可能である。しかし、画像から検出したエッジの2次元座標から3次元ラインのパラメータを算出しているため、描画による標本化誤差の影響によって精度が低下してしまうという問題がある。これは、描画する画像の解像度が低いときには特に顕著になる。3次元形状モデルの精度を損なわないという観点では、3次元形状モデルから直接3次元ラインの情報を抽出する方式が望ましい。
【0012】
上記の課題に鑑み、本発明は、3次元ラインが画像上でエッジとして観察されるかどうかの判定を適切に行い、且つ3次元ラインのパラメータの精度を落とすことなく、クラックや重複を含む3次元形状モデルからでも3次元ラインを抽出することを目的とする。
【課題を解決するための手段】
【0013】
上記の目的を達成する本発明に係る情報処理装置は、
対象物体の3次元形状情報を示す3次元モデルを保持する保持手段と、
前記3次元モデルの位置および姿勢を入力する位置姿勢入力手段と、
前記3次元モデルから当該3次元モデルを構成する線分を選択する選択手段と、
前記対象物体の位置および姿勢に基づいて、前記3次元モデルを構成する線分および面を、当該3次元モデルまでの奥行き情報が各画素に保持された2次元画像上に、投影線分および投影面として投影する投影手段と、
前記選択手段により選択された線分から、前記投影線分のうち前記2次元画像上で重複する線分を、1つ残して削除する削除手段と、
前記選択手段により選択された線分であって、前記削除手段により削除された後の線分から、前記奥行き情報に基づいて、前記2次元画像上において前記対象物体の特徴を示すエッジとなる線分を抽出する抽出手段と、
を備えることを特徴とする。
【発明の効果】
【0014】
本発明によれば、3次元形状モデルがクラックや重複定義を含んでいても、エッジとして観察される3次元ラインを高精度に抽出することが可能となる。また、3次元ラインの投影像を2次元画像上で標本化することにより、3次元ラインが2次元平面上で重複しないように3次元ラインを抽出することが可能になる。さらに、3次元形状モデルの投影像から、3次元ライン周辺の形状を参照することにより、輪郭またはルーフエッジとなる3次元ラインを判定することが可能になる。
【図面の簡単な説明】
【0015】
【図1】(a)3次元ライン抽出装置100のハードウェア構成を示す図、(b)3次元ライン抽出装置100の構成を示す図。
【図2】3次元形状モデル中の線分からの3次元ライン抽出の様子を示す図。
【図3】2次元画面上で重複する3次元ラインを除去する処理を示す図。
【図4】3次元ライン抽出方法の処理手順を示すフローチャート。
【図5】3次元形状モデルから2次元画面上で重複がないように3次元ラインを抽出する処理手順を示すフローチャート。
【図6】3次元ラインのエッジ判定の処理手順を示すフローチャート。
【図7】デプスバッファから距離値を参照することによる、3次元ラインのエッジ判定処理を説明する図。
【発明を実施するための形態】
【0016】
(第1実施形態)
本実施形態では、本発明に係る情報処理装置を、実写画像に対する3次元モデルフィッティングのための3次元ライン抽出装置として適用した場合について説明する。3次元ライン抽出装置は、対象物体の3次元形状情報を示す3次元モデルを構成する線分から2次元画像上で、対象物体の特徴を示すエッジとして観察される線分を抽出する。
【0017】
まず、図1(a)を参照して、3次元ライン抽出装置100のハードウェア構成について説明する。CPU1は装置全体の動作、具体的には後述の各処理部の動作を制御する。メモリ2は、CPU1の動作に用いるプログラムやデータを格納する。バス3は各処理部間でのデータ転送を司る。インタフェース4はバス3と各種装置とのインタフェースである。また、外部記憶装置5は、CPU1に読み込むためのプログラムやデータを格納する外部記憶装置である。キーボード6およびマウス7はプログラムを起動したり、プログラムの動作を指定したりするための入力装置を構成する。表示部8はプロセスの動作結果を表示する。
【0018】
図1(b)を参照して、観察対象物体の形状を表す3次元モデルデータ10から、エッジとして観察される3次元ラインの抽出を行う3次元ライン抽出装置100の構成について説明する。3次元ライン抽出装置100は、3次元モデル保存部101と、観察方向入力部102と、3次元ライン抽出部103と、モデル描画部と104、サンプリング部105と、エッジ判定部106とを備える。
【0019】
3次元ライン抽出装置100は、3次元モデル保存部101に保存されている観察対象物体の形状を表す3次元モデルデータ10から、画像上でエッジとして観察される3次元ラインを抽出する。抽出された3次元ラインは、位置姿勢推定装置11に入力され、物体の位置姿勢推定処理に利用される。
【0020】
次に、3次元ライン抽出装置100を構成する各処理部について説明する。
【0021】
3次元モデル保存部101は、3次元モデルデータ10を保存する。3次元モデル保存部101は、3次元ライン抽出部103およびモデル描画部104に接続されている。3次元モデルデータ10は、3次元ラインを抽出する対象となる、物体の形状を表すモデルである。3次元モデルデータ10は、例えば、複数の面の情報によって構成されるメッシュモデルとして記述されてもよいし、NURBSなどのパラメトリック表現により形状が記述されてもよい。この3次元モデルデータ10は、対象物体の形状を表す幾何情報を含む限り、いずれの方式で表現されてもよい。本実施形態では、面と、面を定義する点および線分とによって構成されるメッシュモデルを3次元モデルデータ10として利用する。
【0022】
観察方向入力部102は、3次元モデルデータ10の観察方向を入力する。ここで、観察方向とは、3次元モデルを観察する視点に対する3次元形状モデルの位置及び姿勢のことをいう。観察方向入力部102により位置姿勢入力が行われる。本実施形態では、位置姿勢推定装置11は時間軸方向に連続して計測を行うものとして、前回(前時刻)の位置姿勢推定装置11による計測値を、次回の3次元モデルデータ10の位置及び姿勢として用いる。
【0023】
3次元ライン抽出部103は、3次元モデルデータ10から、3次元ラインを抽出する。3次元ラインとは、3次元空間中における位置および方向によって記述される直線情報を表す。本実施形態では、3次元ラインとして、位置および方向によって記述される長さのない局所的な直線を抽出する。3次元ラインの表現形式としては、位置および方向を記述できる幾何情報であればよい。通過位置と方向によってラインを表しても、パラメトリックデータとして表してもよい。
【0024】
図2に示すように、メッシュモデルから3次元ラインを抽出する処理では、メッシュモデルを構成する線分の投影像を2次元画像上で一定の間隔で分割し、各分割点に位置および方向を割り当てることで局所的な直線を抽出する。また、パラメトリック表現により形状が記述されているモデルを用いる場合は、パラメトリック曲線を分割することで3次元ラインを抽出してもよい。3次元ライン抽出の詳細な処理方法については、後述する。
【0025】
モデル描画部104は、3次元モデルデータ10のCG描画処理を行う。3次元描画部において描画に利用するグラフィックライブラリは、例えば、OpenGLやDirectXなどの広く利用されているグラフィックライブラリでも、独自に開発したグラフィックライブラリでもよい。3次元モデル保存部101に保存されたモデル形式を2次元画像上に投影することができる限り、いずれの方式を用いてもよい。本実施形態ではグラフィックライブラリとしてOpenGLを利用する。
【0026】
サンプリング部105は、3次元ライン抽出部103により抽出された3次元ラインから、他の3次元ラインの投影像と2次元画像上で近接しないように3次元ラインを選出する。3次元形状モデル中に頂点や辺の重複、またはクラックが存在すると、図3(a)に示すように、3次元形状モデルから抽出した3次元ラインにも重複が発生する。そこで、図3(b)に示すように、3次元ラインの重複フラグマップを作成して、着目する3次元ラインの近傍に他の3次元ラインが存在するかどうかをチェックする。そして、近傍の範囲で唯一となるように3次元ラインを選択することで、2次元画面上で重複することなく3次元ラインを抽出する。3次元ライン抽出の詳細な処理方法については、後述する。
【0027】
エッジ判定部106は、サンプリング部105で選出された3次元ラインの中から、エッジとして観察される3次元ラインをさらに選出する。ここで、エッジとなる3次元ラインとは、図7に示すように、3次元ライン周辺の形状がステップ状に不連続に変化する部分やルーフ状に不連続に変化する部分の3次元ラインのことを指す。エッジ判定の詳細な処理については、後述する。
【0028】
次に、図4を参照して、本実施形態における3次元ライン抽出方法の処理手順を示すフローチャートについて説明する。
【0029】
まず、ステップS401において、初期化が実行される。観察方向入力部102は、3次元モデル保存部101に保存された3次元モデルデータ10を観察する方向を3次元ライン抽出装置100に入力する。前述したように、本実施形態では、観察方向入力部102は、位置姿勢推定装置11から3次元モデルを観察する位置及び姿勢を取得する。また、モデル描画部104の処理において、描画処理に利用するカメラ内部パラメータ(焦点距離および主点位置)も必要となるため、観察方向と一緒にカメラ内部パラメータを位置姿勢推定装置11から取得する。これによりステップS401の初期化が終了する。そして、ステップS402の処理に進む。
【0030】
ステップS402において、3次元ライン抽出部103は、3次元モデルデータ10から、モデル中の各面を構成する線分データを投影・分割することにより、3次元ラインを抽出する。具体的には、まず、ステップS401で取得された3次元モデルデータ10を観察する視点の位置及び姿勢とカメラ内部パラメータとを用いて、3次元モデル中の線分データを全て画像上へ投影し、2次元画像上の投影線分を算出する。線分の投影像は画像上でも線分となる。
【0031】
次に、図2で説明したように、この投影線分が画像上で等間隔になるように、3次元モデル中の線分データを分割し、各分割点に対して3次元ラインのパラメータを割り当てることによって、3次元ラインを抽出する。3次元ラインは、位置の3次元座標および分割元の線分の3次元方向を保持する。投影結果の2次元座標および投影線分の2次元方向をさらに保持してもよい。このように、線分を示すデータ形式が、当該線分に対応する投影線分が等間隔となるように線分を分割した分割点の位置情報および当該線分の3次元方向により記述される。
【0032】
3次元モデル中の全ての線分データから3次元ラインを抽出し終え、抽出結果を3次元ラインリストとして保存したら、ステップS402の処理を終了する。そして、ステップS403の処理に進む。ステップS403において、モデル描画部104は、ステップS401で取得された3次元モデルデータ10を観察する視点の位置および姿勢と、カメラ内部パラメータとを用いて、3次元モデルデータ10のCG描画を行う。ここで、CG描画処理は、ステップS401で取得された物体の位置および姿勢と、カメラ内部パラメータとに基づいて、3次元形状モデルの面情報を2次元画像上に投影し、画像として出力する処理である。このとき、視点からモデルまでの距離の最大値および最小値を設定しておき、その範囲外のモデルの描画は行わないことにより、描画処理の計算コストが低減する。この処理はクリッピングと呼ばれ、一般的に行われている処理である。3次元モデルデータ10のCG描画により、3次元モデルデータ10までの奥行き値が格納されたデプスバッファが2次元画像から生成される。3次元モデルデータ10のCG描画が終わったら、ステップS403の処理を終了する。そして、ステップS404の処理に進む。
【0033】
すなわち、対象物体の位置および姿勢に基づいて、3次元モデルを構成する線分および面を、3次元モデルまでの奥行き情報が各画素に保持された2次元画像上に、投影線分および投影面として投影する。
【0034】
ステップS404において、サンプリング部105は、ステップS402で抽出された3次元ラインリストから、2次元画面上で重複が起こらないように、3次元ラインをサンプリングする。このサンプリング処理について図5を参照して説明する。
【0035】
図5は、本実施形態に係る3次元ラインのサンプリング方法の処理手順を示すフローチャートである。本処理は、ステップS402で抽出された3次元ライン単位で行われる。
【0036】
まず、ステップS501において、1つの3次元ラインが選択され、その3次元ラインが3次元モデルの表面にあるか、または3次元モデルの面の裏に隠れているかが特定される。ステップS402で抽出された3次元ラインリストの中には、3次元モデルの面によって隠れる3次元ラインも含まれる。そこで、3次元ラインの3次元座標と、ステップS403で算出されたデプスバッファの値とを比較し、3次元ラインがデプスバッファよりも奥にある(陰線)か否かが特定される。抽出された線分の3次元位置と、奥行き情報が示す位置とを比較して、奥行き情報が示す位置よりも奥に存在する線分を陰線として除去する。
【0037】
次に、ステップS502において、3次元ラインがステップS501で3次元モデルの面の裏に隠れると特定されたか否かが判定される。3次元モデルの面の裏に隠れると特定された場合は(ステップS502;YES)、ステップS505に進む。そしてステップS505において、その3次元ラインを3次元ラインリストから除去する。3次元ラインが3次元モデルの表面にあると特定された場合は(ステップS502;NO)、ステップS503に進む。
【0038】
ステップS503において、3次元ラインの重複をチェックする。3次元ラインの重複判定には、着目する3次元ラインの近傍に他の3次元ラインが存在するかどうかをチェックするための重複フラグマップを利用する。重複フラグマップとは、3次元ラインが存在する場所は真を示すフラグを、存在しない場所には偽を示すフラグを格納したマップである。重複フラグマップは、あらかじめ偽のフラグで初期化しておく。そして3次元ラインの2次元座標に応じて重複フラグマップを参照・更新することにより、着目する3次元ラインの2次元座標近傍に他の3次元ラインがあるかどうかが判別される。
【0039】
次に、ステップS504において、ステップS503で近傍に他の3次元ラインがあると判定された場合は(ステップS504;YES)、ステップS505に進む。ステップS505において、その3次元ラインを3次元ラインリストから除去する。近傍に他の3次元ラインがないと判定された場合は(ステップS504;NO)、重複フラグマップを参照し、その3次元ラインの2次元座標位置に真のフラグを格納して、ステップS506に進む。3次元ラインを3次元ラインリストから除去する処理は、例えば、選択された線分に対応する投影線分のうち、2次元画像上で当該投影線分の1つから所定領域の範囲に存在する投影線分を、2次元画像上で重複する線分として、1つを残して削除する処理である。
【0040】
ステップS506において、3次元ラインリスト中の全ての3次元ラインが処理されたか否かが判定される。まだ処理していない3次元ラインがあれば(ステップS506;NO)、ステップS501戻る。一方、次の3次元ラインの処理を行い、全ての3次元ラインの処理が終了していれば(ステップS506;YES)、図4のステップS404の処理を終了する。そして、ステップS405に進む。
【0041】
ステップS405において、エッジ判定部106は、ステップS404で選択された3次元ラインリストの中から、エッジとなる3次元ラインをさらに選択する。具体的には、まず、3次元ラインリストから除去する処理が実行された後の線分に対して、当該線分を構成する点が示す位置から当該線分と直交する方向に所定画素分当該画素の奥行き情報を取得する。そして、その直交する方向に対する奥行き情報の2次微分値を算出する。この2次微分値の絶対値が閾値以上であるか否か判断する。2次微分値の絶対値が閾値以上であると判断された場合、当該線分を、2次元画像上において対象物体の特徴を示すエッジとなる線分として抽出する。
【0042】
図6を参照して、このステップS405に係る3次元ラインのエッジ選択方法の詳細な処理手順を説明する。
【0043】
まず、ステップS601において、ステップS404で選出された3次元ラインリストのうちの1つに着目して、3次元ライン周辺領域の奥行き値情報を、ステップS403で得られたデプスバッファから取得する。奥行き値情報としては、図7(a)(b)に示されるように、3次元ラインの投影位置の距離値と、投影されたラインの法線方向±2ピクセル位置の距離値を取得する。サンプリングする距離値の数や間隔は、モデルの詳細度や描画解像度に応じて調整してもよい。
【0044】
次に、ステップS602において、図7(c)に示されるように、3次元ライン周辺領域の距離値に対して2次微分値を算出する。次に、ステップS603において、算出された距離値の2次微分値を利用して、エッジ判定を行う。算出された距離値の2次微分値の絶対値が閾値以下であるか否かが判定される。2次微分値の絶対値が閾値よりも大きい場合は(ステップS603;NO)、距離値が不連続に変化する境界部分、すなわちエッジとなる3次元ラインであると判定されたことになるため、ステップS605に進む。一方、2次微分値の絶対値が閾値以下である場合は(ステップS603;NO)、エッジではないと判定されたことになるため、ステップS604に進む。
【0045】
ステップS604において、エッジでないと判定された3次元ラインを、3次元ラインリストから除去する。ステップS605において、以上の処理が3次元ラインリスト中の全ての3次元ラインに対して行われたか否かが判定される。全ての3次元ラインに対して処理が行われていない場合(ステップS605;NO)、ステップS601に戻る。一方、全ての3次元ラインに対して処理が行われている場合(ステップS605;YES)、処理を終了する。
【0046】
以上の処理により、3次元モデルデータ10から、エッジとなる3次元ラインリストが抽出される。結果として得られた3次元ラインリストは位置姿勢推定装置11に出力され、モデルフィッティング処理に用いられる。モデルフィッティング処理は、例えば非特許文献1に開示される方法によって行うことができる。すなわち、まず、3次元ライン抽出装置100から出力された3次元ラインを、物体の概略の位置および姿勢に基づいてモデルフィッティング対象の物体が撮像された2次元画像上に投影する。そして、投影像近傍から1次元エッジ検出を行い、各3次元ラインと対応する画像上のエッジを検出する。次に、3次元ラインと画像上のエッジとの対応に基づいて、非線形最適化計算によって繰り返し位置及び姿勢を補正することにより、対象物体の位置及び姿勢の算出を行うことができる。
【0047】
以上述べたように、本実施形態では、2次元画面上で重複がないように3次元ラインを3次元モデルから抽出し、且つデプスバッファを利用して3次元ラインのエッジ判定を行うことにより、3次元形状モデルのクラックや頂点の重複に対処可能となる。また、3次元ラインの座標は、3次元形状モデルの座標から直接算出することにより、元の3次元形状モデルの精度を保持したまま、エッジとなる3次元ラインを抽出することが可能となる。
【0048】
(第2実施形態)
第1実施形態では、ステップS405において、3次元ライン周辺のデプスバッファの距離値の2次微分値を算出することにより、3次元ラインの輪郭判定を行っていた。しかし、3次元ラインの輪郭判定は、これに限るものでなく、例えば、デプスバッファ全体からエッジ検出を行って生成されたエッジ画像を利用してもよい。具体的には、ステップS403において、3次元形状モデルのCG描画によりデプスバッファを取得した後、デプスバッファ全体に対してエッジ検出処理を行う。エッジ検出処理は、例えば公知の手法であるCannyのエッジ検出器を用いる。そして、ステップS405のエッジ判定処理では、3次元ラインの2次元位置に対応するデプスバッファのエッジ検出結果を参照し、デプスバッファ上でエッジになっている場合は、その3次元ラインをエッジと判定する。なお、3次元ラインのエッジ判定は、以上に挙げた方法に限るものでなく、3次元ライン周辺の形状の不連続性に基づいて判定処理を行う限り、いずれの手法を用いてもよい。
【0049】
(第3実施形態)
第1実施形態では、ステップS404において、2次元画面上の重複フラグマップを作成することで、2次元画面上での3次元ラインの重複を除去していた。しかし、3次元ラインの重複除去は、これに限るものでなく、例えば、3次元ライン間の2次元距離を計算して判定してもよい。具体的には、既に確定した3次元ラインの投影像と、着目する3次元ラインの投影像との間の2次元距離を算出し、閾値以下の近傍に他の3次元ラインがある場合には、着目する3次元ラインを3次元ラインリストから除去する処理である。また、3次元ライン間の近傍探索処理は、基本的に全探索になるため、k‐dツリーを利用して3次元ラインのデータ構造を保持して、探索の効率化を図ってもよい。以上に示すように、2次元画面上で3次元ラインの近傍を判定することが出来る限り、いずれの手法でもよく、手法の選択に特に制限はない。
【0050】
(第4実施形態)
第1実施形態では、3次元ラインは、長さのない局所ラインデータとして処理・出力を行っていた。しかし、3次元ラインのデータ形式は、これに限るものでなく、始点と終点の端点によって記述されるような、有限の長さをもつ線分データとして扱ってもよい。例えば、線分を示すデータ形式が、当該線分を構成する始点および終点の各端点の位置情報により記述される構成とすればよい。具体的には、ステップS402において、3次元モデルデータ10から抽出された長さのない局所的な直線データではなく、3次元モデルデータ10を構成する各線分そのものを3次元ラインとして登録する。ただし、このときにステップS402の処理と同様の手法により各線分から分割した局所線分のデータも保持してもよい。以降の処理は、第1実施形態と同様に、線分から分割された局所線分データごとに処理を行う。そして、ステップS405の処理が終了した時点で、エッジでないと判定された局所線分データを含む3次元ラインは削除し、エッジとなる3次元ラインのみを位置姿勢推定装置11に出力する。以上に示すように、3次元ラインとして取り扱うラインデータは、輪郭またはルーフエッジとして観察される3次元的直線を記述可能であって、位置姿勢推定装置11が対応できる形式であれば、いずれの形式でもよい。
【0051】
(第5実施形態)
第1実施形態では、観察方向に応じた輪郭となる3次元ラインを位置姿勢推定装置11にランタイムで出力していた。しかし、予め様々な方向から観察した3次元ラインのデータを作成しておき、位置姿勢推定装置11に出力してもよい。具体的には対象物体を取り囲むGeodesic Domeを、半径を変えて複数設定し、対象物体の観察方向および観察距離を、Geodesic Dome上で均等になるように設定する。そして、各Geodesic Domeの各点に相当する位置及び姿勢を観察視点として、エッジとなる3次元ラインの抽出を行い、対象物体の観察方向と観察距離の情報とともに3次元ラインのデータを保存する。位置姿勢推定装置11は、方向別の3次元ラインデータから、前時刻の対象物体の位置姿勢に最も近い3次元ラインのデータを選択して、位置姿勢推定に用いる。この方式は、ランタイムに3次元ラインを選出する方式と比較して、保持するデータ量が増える代わりに、ランライム時の計算量が削減される特徴がある。これら方式の選択は、利用シーンに応じて選択すればよい。
【0052】
(第6実施形態)
第1実施形態では、3次元モデルデータ10は、点、面、および線分により構成されたメッシュデータであった。しかし、3次元モデルデータ10のデータ形式は、これに限るものではなく、例えば、NURBS曲面などで表現されるパラメトリックモデルでもよい。この場合、ステップS402において、パラメトリックモデルから3次元線分を算出する処理が必要となる。この処理は、例えば、パラメトリックモデルの法線マップからエッジ検出を行い、法線が急激に変化する部分の座標と方向を抽出することにより、3次元線分を算出する処理である。以上に示すように、3次元モデルデータ10として取り扱うデータ形式は、対象物体の形状を表現できる限り、いずれの形式でもよい。
【0053】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
対象物体の3次元形状情報を示す3次元モデルを保持する保持手段と、
前記3次元モデルの位置および姿勢を入力する位置姿勢入力手段と、
前記3次元モデルから当該3次元モデルを構成する線分を選択する選択手段と、
前記対象物体の位置および姿勢に基づいて、前記3次元モデルを構成する線分および面を、当該3次元モデルまでの奥行き情報が各画素に保持された2次元画像上に、投影線分および投影面として投影する投影手段と、
前記選択手段により選択された線分から、前記投影線分のうち前記2次元画像上で重複する線分を、1つ残して削除する削除手段と、
前記選択手段により選択された線分であって、前記削除手段により削除された後の線分から、前記奥行き情報に基づいて、前記2次元画像上において前記対象物体の特徴を示すエッジとなる線分を抽出する抽出手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記抽出手段により抽出された線分の3次元位置と、前記奥行き情報が示す位置とを比較して、当該奥行き情報が示す位置よりも奥に存在する線分を陰線として、前記抽出手段により抽出された線分から除去する除去手段をさらに備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記削除手段は、
前記選択手段により選択された線分に対応する前記投影線分のうち、前記2次元画像上で当該投影線分の1つから所定領域の範囲に存在する投影線分を、前記2次元画像上で重複する線分として、1つを残して削除することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記抽出手段は、
前記選択手段により選択された線分であって、前記削除手段により削除された後の線分に対して、当該線分を構成する点が示す位置から当該線分と直交する方向に所定画素分当該画素の奥行き情報を取得する取得手段と、
前記直交する方向に対する、前記取得手段により取得された奥行き情報の2次微分値を算出する算出手段と、
前記2次微分値の絶対値が閾値以上であるか否か判断する判断手段と、を備え、
前記判断手段により前記2次微分値の絶対値が閾値以上であると判断された場合、当該線分を、前記2次元画像上において前記対象物体の特徴を示すエッジとなる線分として抽出することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項5】
前記線分を示すデータ形式が、当該線分に対応する前記投影線分が等間隔となるように前記線分を分割した分割点の位置情報および当該線分の3次元方向により記述されることを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
【請求項6】
前記線分を示すデータ形式が、当該線分を構成する始点および終点の各端点の位置情報により記述されることを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
【請求項7】
対象物体の3次元形状情報を示す3次元モデルを構成する線分から2次元画像上で前記対象物体の特徴を示すエッジとして観察される線分を抽出する情報処理方法であって、
位置姿勢入力手段が、対象物体の3次元形状情報を示す保持手段に保持された3次元モデルの位置および姿勢を入力する位置姿勢入力工程と、
選択手段が、前記3次元モデルから当該3次元モデルを構成する線分を選択する選択工程と、
投影手段が、前記対象物体の位置および姿勢に基づいて、前記3次元モデルを構成する線分および面を、当該3次元モデルまでの奥行き情報が各画素に保持された2次元画像上に、投影線分および投影面として投影する投影工程と、
削除手段が、前記選択工程により選択された線分から、前記投影線分のうち前記2次元画像上で重複する線分を、1つ残して削除する削除工程と、
抽出手段が、前記選択工程により選択された線分であって、前記削除工程により削除された後の線分から、前記奥行き情報に基づいて、前記2次元画像上において前記対象物体の特徴を示すエッジとなる線分を抽出する抽出工程と、
を有することを特徴とする情報処理方法。
【請求項8】
請求項7に記載の情報処理方法をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−38105(P2012−38105A)
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願番号】特願2010−178070(P2010−178070)
【出願日】平成22年8月6日(2010.8.6)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】