JP4229398B2 - Three-dimensional modeling program, three-dimensional modeling control program, three-dimensional modeling data transmission program, recording medium, and three-dimensional modeling method - Google Patents

Three-dimensional modeling program, three-dimensional modeling control program, three-dimensional modeling data transmission program, recording medium, and three-dimensional modeling method Download PDF

Info

Publication number
JP4229398B2
JP4229398B2 JP2003091359A JP2003091359A JP4229398B2 JP 4229398 B2 JP4229398 B2 JP 4229398B2 JP 2003091359 A JP2003091359 A JP 2003091359A JP 2003091359 A JP2003091359 A JP 2003091359A JP 4229398 B2 JP4229398 B2 JP 4229398B2
Authority
JP
Japan
Prior art keywords
point
dimensional
recording unit
pixel
recorded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003091359A
Other languages
Japanese (ja)
Other versions
JP2004302524A (en
Inventor
正浩 奥田
真澄 豊島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kitakyushu Foundation for Advancement of Industry Science and Technology
Original Assignee
Kitakyushu Foundation for Advancement of Industry Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kitakyushu Foundation for Advancement of Industry Science and Technology filed Critical Kitakyushu Foundation for Advancement of Industry Science and Technology
Priority to JP2003091359A priority Critical patent/JP4229398B2/en
Publication of JP2004302524A publication Critical patent/JP2004302524A/en
Application granted granted Critical
Publication of JP4229398B2 publication Critical patent/JP4229398B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Analysis (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、3次元モデリング・プログラム等に関し、特に物体の周囲に配置された複数の撮像装置を用いて該物体の3次元モデルを作成する3次元モデリング・プログラム、物体の3次元モデルを作成する処理を制御する3次元モデリング制御プログラム、物体の3次元モデリング・データを伝送する3次元モデリング・データ伝送プログラム等に関する。
【0002】
【従来の技術】
【非特許文献1】
Proceedings of IEEE Visualization ’97, Phoenix, Arizona, October 1997, pp. 277-283, 552
【非特許文献2】
延原章平、和田俊和、松山隆司、「弾性メッシュモデルを用いた多視点画像からの高精度3次元形状復元」、情報処理学会 CVIM研究会論文誌、Vol. 43, SIG11(CVIM5), pp.53-63, 2002.12
【非特許文献3】
安居院猛、中嶋正之共著、「コンピュータグラフィックス」、pp.107-109, 昭晃堂
【非特許文献4】
Lee, A.W.F., Sweldens, W., Schroder, P., Cowsar, L., and Dobkin, D.,“MAPS : Multiresolution Adaptive Parameterization of Surfaces.”,Proceedings of SIGGRAPH 98, pp.95-104
【特許文献1】
特開2002−324246号公報
【特許文献2】
特開2001−67495号公報
【0003】
従来、物体の3次元(以下、「3D」と略す)モデルを編集、獲得および表示する技術はエンターテインメントまたは医療の分野等で主に発展してきた。近年の半導体技術の進歩およびネットワークにおける伝送速度の高速化に伴い、テキスト、音声および画像に続くディジタルコンテンツとしての3Dモデルの需要は更に高まってきている。この需要の高まりに伴い、モデリングおよびレンダリングを中心とした様々な関連技術の研究が盛んに進められている。一般に3Dモデルには様々な表現方法がある。例えば、ボクセルの集合体として再構成した3D離散モデルであるヴォリュームモデル、幾何モデルの中で3D形状を立体によって表すソリッドモデル、自由曲面をスプライン曲線による曲面パッチの多面体で近似するスプラインパッチ等が挙げられる。
【0004】
図18は、頂点と三角形とで物体(オブジェクト)の表面を近似した3Dメッシュ(mesh)モデル(以下、「3Dメッシュ」と略す)を例示する。図18に示されるように、3Dメッシュは物体の表面を三角形等の多角形のポリゴン面で近似しており、高精細なモデルおよびアニメーション等を比較的簡単に表現できるため広く用いられている。
【0005】
ここで、3Dメッシュの正則性(regularity)および非正則性(irregularity)について説明する。一般に、幾何情報は式1で示されるその頂点の3次元座標Viと三角形がもつ頂点のインデックスの集合(p,q,r)とにより構成される。式1でx、y、zはxyz座標における座標値を示し、Rは3D空間を示し、Nは頂点の数を示す。頂点インデックスの集合を考慮することができるが、本明細書ではこれ以上は立ち入らないこととする。
【0006】
【数1】

Figure 0004229398
【0007】
すべての頂点がk個の辺を持つ(頂点の次数がkであるという)ものをk正則メッシュ(k-regular meshes)または単に正則メッシュと呼び、頂点が任意の数の次数を持つものを非正則メッシュと呼ぶ。またほとんどすべての頂点が正則であるものを正則メッシュと区別して半正則メッシュ(semi-regular meshes)と呼ぶことがあるが、本明細書では3Dメッシュの境界部分以外のすべての頂点が正則となる場合、単に正則メッシュと呼ぶことにする。図19は正則メッシュと非正則メッシュとを例示する。図19(A)に示されるように、頂点と三角形とからなる3Dメッシュにおいて、すべて(またはほとんどすべて)の頂点がk個の三角形(または辺)を持つ場合、その3Dメッシュは正則性を持つという。一方、図19(B)に示されるように、すべて(またはほとんどすべて)の頂点がk個の三角形(または辺)を持たない場合、その3Dメッシュは非正則性を持つという。3Dメッシュは3次元空間上に配置された頂点を多角形で結ぶことにより物体の表面を近似した3Dモデルである。
【0008】
次に、代表的な従来のモデリング手法について説明する。非特許文献1に記載されているように、「Virtualized Reality」という 米国カーネギーメロン大学で開発された3D動画生成システムがある。この3D動画生成システムは複数の距離画像(Range Image)を用いて3Dメッシュを得る手法を用いている。この距離画像とは、3D空間内にある平面(画像)を仮定し、その平面から物体までの距離を画素値として持たせた画像である。しかし、上述の3D動画生成システムでは、正則性を実現することができないという問題があった。さらに処理の実時間性も実現することができず、処理に時間をかければかけるほど画質(解像度)が良くなる特性であるプログレッシブ性(漸進性)も実現することができないという問題があった。
【0009】
他の従来のモデリング手法として、非特許文献2に記載されているような京都大学の松山教授が開発したモデリングシステムとして実時間性を持つ3D動画生成システムがある。この3D動画生成システムは視体積交差法を用いている。視体積交差法は2次元画像から3D空間を再構成する方法の1つであり、同一時刻にカメラで撮像した複数枚の画像を利用して物体の位置および周囲形状を求める方法である。この3D動画生成システムは実時間性を持つものの、正則性およびプログレッシブ性は持たないという問題があった。
【0010】
他のモデリング手法として、特許文献1に記載されている方法があるが、当該方法は実時間性は有するものの、正則性およびプログレッシブ性等を考慮したものではないという問題があった。
【0011】
次に、メッシュ化および三角形化に関する手法について説明する。非特許文献3に記載されているように、良く知られている三角形化の手法としてDelauney法がある。Delauney法は3点を通る円の中に他の点が存在しない場合、その3点で三角形を構成するということをすべての頂点について行なうという方法である。しかしDelauney法は処理計算量が多いため実時間性がなく、また正則性は約束されないという問題があった。
【0012】
他のメッシュ化および三角形化に関する手法として、非特許文献4に記載されているように、非正則メッシュを正則メッシュへ変換するMAPSという著名な手法がある。MAPSは既にモデリング済みの非正則メッシュを対象としている。MAPSは処理計算量が多く、実時間性がないという問題があった。
【0013】
他のメッシュ化および三角形化に関する手法として、特許文献1に記載されている方法があるが、当該方法は鋭角特徴を再現するものであり、正則性、プログレッシブ性および実時間性等を考慮したものではないという問題があった。
【0014】
【発明が解決しようとする課題】
何らかの方法で取得された3Dメッシュに対する各種の「3Dメッシュ処理」技術は種々存在し、スムージング、特徴抽出、簡略化/詳細化および符号化等の技術は多数提案されてきた。3Dメッシュは3D空間上でランダムにサンプリングされた点を様々な方法で接続することによりポリゴンを構築している。このようにランダムにサンプリングを行なっているため、例えば通常のディジタル信号における等間隔でサンプリングされたグリッドおよび画素等のような概念はない。このため等間隔の時系列データとして処理することが困難となり、3Dメッシュ処理を複雑なものにしている。このため従来から、頂点同士が不規則に接続されたメッシュ(非正則メッシュ)をパラメータ化し、正則メッシュへ変換することにより、3Dメッシュの取り扱いを容易にしようという試みが盛んに行われてきた。しかしいずれも正則性およびプログレッシブ性を持たないという問題があった。特に、非正則3Dメッシュをモデリングした後、正則メッシュに変換するという二つの手順を踏んでいるため、処理計算量が非常に多くなる。この結果、短時間で正則3Dメッシュを得たい場合、または動きのある物体(動的物体)に対する動的な正則3Dメッシュを実時間で生成したい場合に不都合となるという問題があった。
【0015】
従来の多くの3Dモデリング手法は、静止した物体(静的物体)の形状を取得することを目的とするか、またはディスク上に保存されたビデオ信号列を用いてオフラインで3Dアニメーションを取得することを目的としている。動的物体の3Dアニメーションの取得について、カメラから送られるビデオ信号列を実時間で処理し、モデリングする手法もいくつか提案されてきた。しかし、動きのある物体を実時間でモデリングする際、当然、計算に用いるプロセッサの処理能力に応じて1フレームのモデリングにかかる時間にばらつきが生じることになる。従来のモデリング手法ではそのアルゴリズム全体に沿った処理を実行することにより一つのモデルができあがることになる。このため、上記アルゴリズムが終了する時間が1フレーム時間より長くなると、モデリングが完了せずに無駄な処理となって終了することになるという問題があった。
【0016】
従来、3Dメッシュ・データを伝送する場合、頂点座標の他に三角形の接続を表す情報を送る必要があった。このため3Dメッシュ・データの伝送には長時間を要するという問題があった。
【0017】
そこで、本発明の目的は、上記問題を解決するためになされたものであり、静的物体だけではなく動的物体に対しても正則性を持つ3Dメッシュを実時間でモデリングすることができ、プログレッシブ性を併せ持つ3次元モデリング・プログラム等を提供することにある。
【0018】
本発明の第2の目的は、アルゴリズムを途中で打ち切ることができ、打ち切った時点で最良の解像度を有する3Dメッシュをモデリングすることができる3次元モデリング・プログラム等を提供することにある。
【0019】
本発明の第3の目的は、3Dメッシュ・データの伝送に長時間を要することのない3次元モデリング・データ伝送プログラムを提供することにある。
【0020】
【課題を解決するための手段】
この発明の3次元モデリング・プログラムは、物体の周囲に配置された複数の撮像装置を用いて該物体の3次元モデルを作成する3次元モデリング・プログラムであって、該複数の撮像装置により各々取得させた、該物体までの距離を画素値として有する距離画像を各撮像装置に応じて記録した距離画像記録部と、所定の解像度を記録した初期解像度記録部とを用いるものであり、コンピュータに、前記距離画像記録部に記録させた各距離画像の対応点を決定させる対応点決定ステップ、
前記物体の距離画像を前記初期解像度記録部に記録された所定の解像度および前記対応点決定ステップで決定された対応点の下で前記複数の撮像装置により各々取得させると共に、取得させた時刻を時刻記録部に記録させ、該所定の解像度を解像度記録部に記録させる距離画像取得ステップ、
前記距離画像取得ステップで取得させた各距離画像を前記距離画像記録部に記録させる距離画像記録ステップ、
前記解像度記録部に記録された解像度の下で前記距離画像記録部に記録された各距離画像に基づき、前記物体の3次元メッシュ・モデルを作成させる3次元メッシュ・モデリング・ステップ、
前記時刻記録部に記録された時刻から所定の時間が経過していない場合、前記解像度記録部に記録された解像度を所定の割合で増加させて前記3次元メッシュ・モデリング・ステップから繰返して実行させ、前記時刻記録部に記録された時刻から所定の時間が経過し且つ所定の終了時刻を越えていない場合、前記距離画像取得ステップから繰返して実行させるステップ
を実行させるための3次元モデリング・プログラムである。
【0021】
ここで、この発明の3次元モデリング・プログラムにおいて、前記3次元メッシュ・モデリング・ステップは、
前記距離画像記録部に記録された各距離画像の各画素値を仮想3次元空間内で逆射影することにより得られる各表面点の3次元座標値を求める表面点作成ステップと、
前記表面点作成ステップで求められた各表面点の3次元座標値を表面点記録部に記録する表面点記録ステップと、
前記表面点記録部に記録された3次元座標値を有する各表面点から仮想3次元空間に形成された仮想立体上へ射影することにより得られる各3次元射影点への3次元射影ベクトルを求める3次元射影点作成ステップと、
前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点と対応する表面点との間の3次元距離値を示す属性値と共に3次元射影点記録部に記録する3次元射影点記録ステップと、
前記3次元射影点記録部に記録された各3次元射影点毎の3次元射影ベクトルを前記仮想立体を切断して展開された仮想平面上へ変換して、2次元変換点への2次元変換ベクトルとして求める2次元変換点作成ステップと、
前記2次元変換点作成ステップで求められた各2次元変換点への2次元変換ベクトルを、各2次元変換点毎に前記3次元射影点記録部に記録された前記属性値と共に2次元変換点記録部に記録する2次元変換点記録ステップと、
前記仮想平面上に所定のサイズの画素を設定し、各画素の中心点の2次元座標値を求める画素中心点作成ステップと、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値と前記2次元変換点記録部に記録された2次元変換点の2次元変換ベクトルとに基づいて、所定の2次元距離値の範囲内における所定の数の2次元変換点を求め、該所定の数の2次元変換点について前記2次元変換点記録部に記録された前記属性値に基づき、各画素の中心点の補間距離値を求める補間距離値作成ステップと、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値を、前記補間距離値作成ステップで求められた各画素の中心点の補間距離値と共に画素中心点記録部に記録する画素中心点記録ステップと、
前記画素中心記録部に記録された各画素の中心点の2次元座標値を、前記仮想立体上の3次元座標値へ逆変換して各画素の中心点の3次元逆変換点を求める画素中心3次元逆変換点作成ステップと、
前記画素中心3次元逆変換点作成ステップで求められた各画素の中心点の3次元逆変換点の3次元座標値を、前記画素中心点記録部に記録された各画素の中心点の補間距離値と共に画素中心3次元逆変換点記録部に記録する画素中心3次元逆変換点記録ステップと、
前記画素中心3次元逆変換点記録部に記録された各画素の中心点の補間距離値を仮想3次元空間内で逆射影することにより得られる各画素の中心点に対応する各表面点の3次元座標値を求める画素中心対応表面点作成ステップと、
前記画素中心対応表面点作成ステップで求められた各画素の中心点に対応する各表面点の3次元座標値を画素中心対応表面点記録部に記録する画素中心対応表面点記録ステップとを備えることができる。
【0022】
ここで、この発明の3次元モデリング・プログラムにおいて、前記3次元射影点記録ステップは、前記解像度記録部に記録された解像度が前記初期解像度記録部に記録された所定の解像度と等しい場合、前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点に対応する表面点の3次元座標値を示す属性値と共に3次元射影点記録部に記録し、
前記3次元射影点作成ステップは、前記解像度記録部に記録された解像度が前記初期解像度記録部に記録された所定の解像度より大きい場合、
前記表面点記録部に既に記録された3次元座標値を有する従前の表面点に関しては、該従前の表面点に対応する従前の3次元射影点毎に既に前記3次元射影点記録部に記録された従前の3次元射影ベクトルを用い、解像度の増加により新たに前記表面点記録部に記録された3次元座標値を有する新表面点に関しては、新表面点の近傍における従前の表面点に対応する該従前の3次元射影ベクトルの前記属性値に基づいて新たな3次元射影ベクトルを求めることができる。
【0023】
ここで、この発明の3次元モデリング・プログラムにおいて、前記3次元射影点作成ステップは、前記仮想立体が仮想円筒または仮想円錐の場合、表面点に対応する画素を含む距離画像を取得した撮像装置と物体との間の空間位置情報が記録された空間位置情報部をさらに備え、
仮想円筒または仮想円錐の中心線を仮想空間上で作成する仮想立体作成ステップと、
前記仮想立体作成ステップで作成された中心線に垂直で且つ前記表面点記録部に記録された表面点を通る仮想円筒または仮想円錐を切断する平面であって周囲が該仮想円筒または仮想円錐の周囲と一致する切断平面を作成する切断平面作成ステップと、
前記切断平面作成ステップで作成された切断平面の中心点の座標値を求める中心点座標値作成ステップと、
前記中心点座標値作成ステップで求められた中心点の座標値と前記表面点記録部に記録された前記表面点の座標値とを結ぶ線分が前記切断平面の周囲と交わる2点を求める2点作成ステップと、
前記空間位置情報部に記録された空間位置情報に基づき、前記表面点記録部に記録された前記表面点に対応する画素を含む距離画像に対応する仮想平面を仮想空間上で作成する仮想平面作成ステップと、
前記仮想平面作成ステップで作成された仮想平面における前記表面点に対応する画素の座標値を求める画素座標値作成ステップと、
前記画素座標値作成ステップで求められた画素の座標値から前記中心点座標値作成ステップで求められた中心点の座標値へ向かう画素ベクトルと、前記表面点記録部に記録された前記表面点の座標値から前記2点作成ステップで求められた2点への2つの表面点ベクトルを求めるベクトル作成ステップと、
前記ベクトル作成ステップで求められた画素ベクトルと前記2つの表面点ベクトルの各々との間の角度を比較し、小さい角度に対応する表面点ベクトルを3次元射影ベクトルとするステップとを備えることができる。
【0024】
ここで、この発明の3次元モデリング・プログラムにおいて、前記3次元射影点作成ステップは、前記仮想立体が仮想球の場合、
仮想球の中心点の座標値を求める中心点座標値作成ステップと、
前記中心点座標値作成ステップで求められた中心点の座標値と前記表面点記録部に記録された前記表面点の座標値とを結ぶ線分上において、該中心点の座標値から該表面点へ向かう方向のベクトルを3次元射影ベクトルとするステップとを備えることができる。
【0025】
この発明の3次元モデリング制御プログラムは、物体の周囲に配置された複数の撮像装置を用いて該物体の3次元モデルを作成する処理を制御する3次元モデリング制御プログラムであって、該複数の撮像装置により各々取得させた、該物体までの距離を画素値として有する距離画像を各撮像装置に応じて記録した距離画像記録部と、所定の解像度を記録した初期解像度記録部とを用いるものであり、各撮像装置を用いて該物体の3次元モデルを作成する各距離画像記録部に対応した複数のコンピュータと、該複数のコンピュータの処理結果を統合する統合コンピュータとを有し、
3次元モデリング制御プログラムを実行するコンピュータに、
前記距離画像記録部に記録させた各距離画像の対応点を決定させる対応点決定ステップを実行させ、
前記複数のコンピュータの各々に、
前記物体の距離画像を前記初期解像度記録部に記録された所定の解像度および前記対応点決定ステップで決定された対応点の下で前記撮像装置により取得させると共に、取得させた時刻を時刻記録部に記録させ、該所定の解像度を解像度記録部に記録させる距離画像取得ステップ、
前記距離画像取得ステップで取得させた距離画像を前記距離画像記録部に記録させる距離画像記録ステップ、
前記距離画像記録部に記録された距離画像の各画素値を仮想3次元空間内で逆射影することにより得られる各表面点の3次元座標値を求める表面点作成ステップ、
前記表面点作成ステップで求められた各表面点の3次元座標値を表面点記録部に記録する表面点記録ステップ、
前記表面点記録部に記録された3次元座標値を有する各表面点から仮想3次元空間に形成された仮想立体上へ射影することにより得られる各3次元射影点への3次元射影ベクトルを求める3次元射影点作成ステップ、
前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点と対応する表面点との間の3次元距離値を示す属性値と共に3次元射影点記録部に記録する3次元射影点記録ステップを実行させ、
前記統合コンピュータに、
前記3次元射影点記録部に記録された各3次元射影点毎の3次元射影ベクトルを前記仮想立体を切断して展開された仮想平面上へ変換して、2次元変換点への2次元変換ベクトルとして求める2次元変換点作成ステップ、
前記2次元変換点作成ステップで求められた各2次元変換点への2次元変換ベクトルを、各2次元変換点毎に前記3次元射影点記録部に記録された前記属性値と共に2次元変換点記録部に記録する2次元変換点記録ステップ、
前記仮想平面上に所定のサイズの画素を設定し、各画素の中心点の2次元座標値を求める画素中心点作成ステップ、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値と前記2次元変換点記録部に記録された2次元変換点の2次元変換ベクトルとに基づいて、所定の2次元距離値の範囲内における所定の数の2次元変換点を求め、該所定の数の2次元変換点について前記2次元変換点記録部に記録された前記属性値に基づき、各画素の中心点の補間距離値を求める補間距離値作成ステップ、前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値を、前記補間距離値作成ステップで求められた各画素の中心点の補間距離値と共に画素中心点記録部に記録する画素中心点記録ステップ、
前記画素中心記録部に記録された各画素の中心点の2次元座標値を、前記仮想立体上の3次元座標値へ逆変換して各画素の中心点の3次元逆変換点を求める画素中心3次元逆変換点作成ステップ、
前記画素中心3次元逆変換点作成ステップで求められた各画素の中心点の3次元逆変換点の3次元座標値を、前記画素中心点記録部に記録された各画素の中心点の補間距離値と共に画素中心3次元逆変換点記録部に記録する画素中心3次元逆変換点記録ステップ、
前記画素中心3次元逆変換点記録部に記録された各画素の中心点の補間距離値を仮想3次元空間内で逆射影することにより得られる各画素の中心点に対応する各表面点の3次元座標値を求める画素中心対応表面点作成ステップ、
前記画素中心対応表面点作成ステップで求められた各画素の中心点に対応する各表面点の3次元座標値を画素中心対応表面点記録部に記録する画素中心対応表面点記録ステップを実行させ、
前記時刻記録部に記録された時刻から所定の時間が経過していない場合、前記解像度記録部に記録された解像度を所定の割合で増加させて、前記複数のコンピュータの各々に前記表面点作成ステップから繰返して実行させ、前記時刻記録部に記録された時刻から所定の時間が経過し且つ所定の終了時刻を越えていない場合、前記複数のコンピュータの各々に前記距離画像取得ステップから繰返して実行させるステップ
を実行させるための3次元モデリング制御プログラムである。
【0026】
この発明の3次元モデリング・データ伝送プログラムは、物体の周囲に配置された複数の撮像装置を用いて作成された該物体の3次元モデリング・データを伝送する3次元モデリング・データ伝送プログラムであって、該複数の撮像装置により各々取得させた、該物体までの距離を画素値として有する距離画像を各撮像装置に応じて記録した距離画像記録部と、所定の解像度を記録した初期解像度記録部とを用いるものであり、コンピュータに、
前記距離画像記録部に記録させた各距離画像の対応点を決定させる対応点決定ステップ、
前記物体の距離画像を前記初期解像度記録部に記録された所定の解像度および前記対応点決定ステップで決定された対応点の下で前記複数の撮像装置により各々取得させると共に、取得させた時刻を時刻記録部に記録させ、該所定の解像度を解像度記録部に記録させる距離画像取得ステップ、
前記距離画像取得ステップで取得させた各距離画像を前記距離画像記録部に記録させる距離画像記録ステップ、
前記距離画像記録部に記録された各距離画像の各画素値を仮想3次元空間内で逆射影することにより得られる各表面点の3次元座標値を求める表面点作成ステップ、
前記表面点作成ステップで求められた各表面点の3次元座標値を表面点記録部に記録する表面点記録ステップ、
前記表面点記録部に記録された3次元座標値を有する各表面点から仮想3次元空間に形成された仮想立体上へ射影することにより得られる各3次元射影点への3次元射影ベクトルを求める3次元射影点作成ステップ、
前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点と対応する表面点との間の3次元距離値を示す属性値と共に3次元射影点記録部に記録する3次元射影点記録ステップ、
前記3次元射影点記録部に記録された各3次元射影点毎の3次元射影ベクトルを前記仮想立体を切断して展開された仮想平面上へ変換して、2次元変換点への2次元変換ベクトルとして求める2次元変換点作成ステップ、
前記2次元変換点作成ステップで求められた各2次元変換点への2次元変換ベクトルを、各2次元変換点毎に前記3次元射影点記録部に記録された前記属性値と共に2次元変換点記録部に記録する2次元変換点記録ステップ、
前記仮想平面上に所定のサイズの画素を設定し、各画素の中心点の2次元座標値を求める画素中心点作成ステップ、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値と前記2次元変換点記録部に記録された2次元変換点の2次元変換ベクトルとに基づいて、所定の2次元距離値の範囲内における所定の数の2次元変換点を求め、該所定の数の2次元変換点について前記2次元変換点記録部に記録された前記属性値に基づき、各画素の中心点の補間距離値を求める補間距離値作成ステップ、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値を、前記補間距離値作成ステップで求められた各画素の中心点の補間距離値と共に画素中心点記録部に記録する画素中心点記録ステップ、
前記時刻記録部に記録された時刻から所定の時間が経過していない場合、前記解像度記録部に記録された解像度を所定の割合で増加させて前記表面点作成ステップから繰返して実行させ、前記時刻記録部に記録された時刻から所定の時間が経過し且つ所定の終了時刻を越えていない場合、前記距離画像取得ステップから繰返して実行させ、前記時刻記録部に記録された時刻から所定の時間が経過し且つ所定の終了時刻を越えた場合、前記画素中心点記録部に記録された各画素の中心点の2次元座標値と該各画素の中心点の補間距離値とを含む3次元モデリング・データを伝送するステップ
を実行させるための3次元モデリング・データ伝送プログラムである。
【0027】
この発明の記録媒体は本発明のいずれかのプログラムを記録したコンピュータ読取り可能な記録媒体である。
【0028】
この発明の3次元モデリング方法は、物体の周囲に配置された複数の撮像装置を用いて該物体の3次元モデルを作成する3次元モデリング方法であって、該複数の撮像装置により各々取得させた、該物体までの距離を画素値として有する距離画像を各撮像装置に応じて記録した距離画像記録部と、所定の解像度を記録した初期解像度記録部とを用いるものであり、コンピュータに、
前記距離画像記録部に記録させた各距離画像の対応点を決定させる対応点決定ステップと、
前記物体の距離画像を前記初期解像度記録部に記録された所定の解像度および前記対応点決定ステップで決定された対応点の下で前記複数の撮像装置により各々取得させると共に、取得させた時刻を時刻記録部に記録させ、該所定の解像度を解像度記録部に記録させる距離画像取得ステップと、
前記距離画像取得ステップで取得させた各距離画像を前記距離画像記録部に記録させる距離画像記録ステップと、
前記解像度記録部に記録された解像度の下で前記距離画像記録部に記録された各距離画像に基づき、前記物体の3次元メッシュ・モデルを作成させる3次元メッシュ・モデリング・ステップと、
前記時刻記録部に記録された時刻から所定の時間が経過していない場合、前記解像度記録部に記録された解像度を所定の割合で増加させて前記3次元メッシュ・モデリング・ステップから繰返して実行させ、前記時刻記録部に記録された時刻から所定の時間が経過し且つ所定の終了時刻を越えていない場合、前記距離画像取得ステップから繰返して実行させるステップと
を実行させることを特徴とする。
【0029】
ここで、この発明の3次元モデリング方法において、前記3次元メッシュ・モデリング・ステップは、
前記距離画像記録部に記録された各距離画像の各画素値を仮想3次元空間内で逆射影することにより得られる各表面点の3次元座標値を求める表面点作成ステップと、
前記表面点作成ステップで求められた各表面点の3次元座標値を表面点記録部に記録する表面点記録ステップと、
前記表面点記録部に記録された3次元座標値を有する各表面点から仮想3次元空間に形成された仮想立体上へ射影することにより得られる各3次元射影点への3次元射影ベクトルを求める3次元射影点作成ステップと、
前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点と対応する表面点との間の3次元距離値を示す属性値と共に3次元射影点記録部に記録する3次元射影点記録ステップと、
前記3次元射影点記録部に記録された各3次元射影点毎の3次元射影ベクトルを前記仮想立体を切断して展開された仮想平面上へ変換して、2次元変換点への2次元変換ベクトルとして求める2次元変換点作成ステップと、
前記2次元変換点作成ステップで求められた各2次元変換点への2次元変換ベクトルを、各2次元変換点毎に前記3次元射影点記録部に記録された前記属性値と共に2次元変換点記録部に記録する2次元変換点記録ステップと、
前記仮想平面上に所定のサイズの画素を設定し、各画素の中心点の2次元座標値を求める画素中心点作成ステップと、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値と前記2次元変換点記録部に記録された2次元変換点の2次元変換ベクトルとに基づいて、所定の2次元距離値の範囲内における所定の数の2次元変換点を求め、該所定の数の2次元変換点について前記2次元変換点記録部に記録された前記属性値に基づき、各画素の中心点の補間距離値を求める補間距離値作成ステップと、前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値を、前記補間距離値作成ステップで求められた各画素の中心点の補間距離値と共に画素中心点記録部に記録する画素中心点記録ステップと、
前記画素中心記録部に記録された各画素の中心点の2次元座標値を、前記仮想立体上の3次元座標値へ逆変換して各画素の中心点の3次元逆変換点を求める画素中心3次元逆変換点作成ステップと、
前記画素中心3次元逆変換点作成ステップで求められた各画素の中心点の3次元逆変換点の3次元座標値を、前記画素中心点記録部に記録された各画素の中心点の補間距離値と共に画素中心3次元逆変換点記録部に記録する画素中心3次元逆変換点記録ステップと、
前記画素中心3次元逆変換点記録部に記録された各画素の中心点の補間距離値を仮想3次元空間内で逆射影することにより得られる各画素の中心点に対応する各表面点の3次元座標値を求める画素中心対応表面点作成ステップと、
前記画素中心対応表面点作成ステップで求められた各画素の中心点に対応する各表面点の3次元座標値を画素中心対応表面点記録部に記録する画素中心対応表面点記録ステップとを備えることができる。
【0030】
ここで、この発明の3次元モデリング方法において、前記3次元射影点記録ステップは、前記解像度記録部に記録された解像度が前記初期解像度記録部に記録された所定の解像度と等しい場合、前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点に対応する表面点の3次元座標値を示す属性値と共に3次元射影点記録部に記録し、
前記3次元射影点作成ステップは、前記解像度記録部に記録された解像度が前記初期解像度記録部に記録された所定の解像度より大きい場合、
前記表面点記録部に既に記録された3次元座標値を有する従前の表面点に関しては、該従前の表面点に対応する従前の3次元射影点毎に既に前記3次元射影点記録部に記録された従前の3次元射影ベクトルを用い、解像度の増加により新たに前記表面点記録部に記録された3次元座標値を有する新表面点に関しては、新表面点の近傍における従前の表面点に対応する該従前の3次元射影ベクトルの前記属性値に基づいて新たな3次元射影ベクトルを求めることができる。
【0031】
ここで、この発明の3次元モデリング方法において、前記3次元射影点作成ステップは、前記仮想立体が仮想円筒または仮想円錐の場合、表面点に対応する画素を含む距離画像を取得した撮像装置と物体との間の空間位置情報が記録された空間位置情報部をさらに備え、
仮想円筒または仮想円錐の中心線を仮想空間上で作成する仮想立体作成ステップと、
前記仮想立体作成ステップで作成された中心線に垂直で且つ前記表面点記録部に記録された表面点を通る仮想円筒または仮想円錐を切断する平面であって周囲が該仮想円筒または仮想円錐の周囲と一致する切断平面を作成する切断平面作成ステップと、
前記切断平面作成ステップで作成された切断平面の中心点の座標値を求める中心点座標値作成ステップと、
前記中心点座標値作成ステップで求められた中心点の座標値と前記表面点記録部に記録された前記表面点の座標値とを結ぶ線分が前記切断平面の周囲と交わる2点を求める2点作成ステップと、
前記空間位置情報部に記録された空間位置情報に基づき、前記表面点記録部に記録された前記表面点に対応する画素を含む距離画像に対応する仮想平面を仮想空間上で作成する仮想平面作成ステップと、
前記仮想平面作成ステップで作成された仮想平面における前記表面点に対応する画素の座標値を求める画素座標値作成ステップと、
前記画素座標値作成ステップで求められた画素の座標値から前記中心点座標値作成ステップで求められた中心点の座標値へ向かう画素ベクトルと、前記表面点記録部に記録された前記表面点の座標値から前記2点作成ステップで求められた2点への2つの表面点ベクトルを求めるベクトル作成ステップと、
前記ベクトル作成ステップで求められた画素ベクトルと前記2つの表面点ベクトルの各々との間の角度を比較し、小さい角度に対応する表面点ベクトルを3次元射影ベクトルとするステップとを備えることができる。
【0032】
ここで、この発明の3次元モデリング方法において、前記3次元射影点作成ステップは、前記仮想立体が仮想球の場合、
仮想球の中心点の座標値を求める中心点座標値作成ステップと、
前記中心点座標値作成ステップで求められた中心点の座標値と前記表面点記録部に記録された前記表面点の座標値とを結ぶ線分上において、該中心点の座標値から該表面点へ向かう方向のベクトルを3次元射影ベクトルとするステップとを備えることができる。
【0033】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して詳細に説明する。本明細書では最も一般的なすべての多角形が三角形となる三角メッシュのみを取り扱うこととする。以下の説明に用いる各図において、同じ符号を付した箇所は同じ要素を示すため、当該符号が付された要素に関する説明は原則として最初に現れた図に関してのみ行い、再度現れた図に関しては省略する。
【0034】
実施の形態1.
図1は、本発明の実施の形態1における3次元モデリング・プログラム等が動作する環境を示す。図1において、符号1は本発明の3次元モデリング・プログラム等が実行されるコンピュータ、10はコンピュータ1に接続されたディスク等の記録装置、20は3次元モデルを作成する対象となる物体、25a、25b、25c、25d、25eおよび25fは、コンピュータ1に接続され物体20の周囲に配置された複数のカメラ(撮像装置)である。図1ではカメラ25a等は6台示されているが、これは図面の都合上のものであり、本発明の3次元モデリング・プログラム等は2台以上のカメラについて適用することが可能である。
【0035】
図1に示されるように、記録装置10は、複数のカメラ25a等により各々取得させた距離画像を各カメラ25a等に応じて記録した距離画像記録部3を有している。ここで距離画像とは、3D空間内にある平面(画像)を仮定し、その平面から物体20までの距離を画素値として有する所定の解像度の画像である。記録装置10はさらに、所定の解像度(N×Mの場合はNおよびM)を記録した初期解像度記録部4、カメラ25a等により距離画像を取得させた時刻を記録する時刻記録部5、後述するように更新される解像度を記録した初期解像度記録部6を有している。記録装置10は所定のデータを記録する他の表面点記録部11、3次元射影点記録部12、2次元変換点記録部13、画素中心点記録部14、画素中心3次元逆変換点記録部15、画素中心対応表面点記録部16および空間位置情報部17を有しているが、これらの記録部については後述する。
【0036】
図2は、距離画像について説明する図である。図2(A)において、符号30は例えばカメラ25aにより取得された物体20の距離画像である。図2(A)に示されるように、距離画像30上の画素Aは画素Aと物体20上の点Bとの間の距離raを画素値として有している。図2(B)において、符号30は例えばカメラ25aにより取得された物体20の距離画像、31は例えばカメラ25bにより取得された物体20の距離画像、32は例えばカメラ25cにより取得された物体20の距離画像、33は例えばカメラ25dにより取得された物体20の距離画像、34は例えばカメラ25eにより取得された物体20の距離画像、35は例えばカメラ25fにより取得された物体20の距離画像である。図2(B)に示されるように、距離画像35上の画素Cは画素Cと物体20上の点Bとの間の距離rbを画素値として有している。これらの距離画像30等が各カメラ25a等に応じて距離画像記録部3に各々記録されている。
【0037】
本発明の3次元モデリング・プログラムはカメラ25a等の数(I)に対応する枚数分作成された距離画像を用いる。複数のカメラ25a等を用いて距離画像30等を得る手法は多数存在するが、本明細書では距離画像30等を得る手法は問わず、あるアルゴリズムを用いて距離画像30等が得られ、距離画像記録部3に各々記録されていることを前提とする。距離画像30等を取得する手法としては、一般的なステレオ画像法を用いることができる。光レーダ型レンジファインダ、位相差検出型レンジファインダ等を用いた光飛行時間測定法により距離を測定する方法を用いてもよい。あるいはスポット光投影法、スリット光投影法、ステップ光投影法またはパターン光投影法等を用いた三角測量に基づくレンジファインダを用いることもできる。
【0038】
次に、本発明の3次元モデリング・プログラムの機能について説明する。図3は本発明の3次元モデリング・プログラムの機能をフローチャートで示す。図3に示されるように、まず距離画像記録部3に記録させた各距離画像30等の対応点を決定させる(対応点決定ステップ。ステップS10)。複数の距離画像30等を用いる場合、ある距離画像30における画素Aが他の距離画像35におけるどの画素に対応するのかという対応点(対応位置)の決定を予め行っておく必要がある。この対応点の決定には例えばICP(Iterative Closest Point Method)を用いることができる。各距離画像30等の対応点を調べることをレジストレーション(Registration)と呼ぶ。以上により各距離画像30等の合成ができる。対応点決定ステップ(ステップS10)の処理はオフラインで行う。
【0039】
続いて、物体20の距離画像30等を初期解像度記録部4に記録された所定の解像度(N×M)および対応点決定ステップ(ステップS10)で決定された対応点の下で複数のカメラ25a等により各々取得させる。この結果、カメラ25a等の数(I)分の距離画像30等を取得することになる。併せて、距離画像30等を取得させた時刻(t)を時刻記録部5に記録させ、所定の解像度(N×M)を解像度記録部6に記録させる(距離画像取得ステップ。ステップS12)。
【0040】
次に、距離画像取得ステップ(ステップS12)で取得させた各距離画像30等を距離画像記録部3に各々記録させる(距離画像記録ステップ。ステップS14)。
【0041】
解像度記録部6に記録された解像度(最初はN×M)の下で、距離画像記録部3に記録された各距離画像30等に基づき、物体20の3次元メッシュ・モデルを作成させる(3次元メッシュ・モデリング・ステップ。ステップS16)。当該ステップS16については後で詳述する。
【0042】
時刻記録部5に記録された時刻(t)から所定の時間(フレームレート:δT)が経過したか否かを判定し(ステップS18)、経過していない場合、解像度記録部6に記録された解像度(最初はN×M)を所定の割合、例えば2倍ずつの割合(2N×2M)で増加させて、3次元メッシュ・モデリング・ステップ(ステップS16)から繰返して実行させる(ステップS20)。一方、時刻記録部5に記録された時刻(t)から所定の時間(δT)が経過して時刻がt+δTとなっており、且つ所定の終了時刻を越えていない場合、距離画像取得ステップ(ステップS12)から繰返して実行させる(ステップS22)。距離画像取得ステップ(ステップS12)からステップS20またはS22までの処理は実時間で実行する。
【0043】
次に、3次元メッシュ・モデリング・ステップ(ステップS16)について詳述する。図4は本発明の3次元モデリング・プログラムにおける3次元メッシュ・モデリング・ステップの機能をフローチャートで示す。以下、図4のフローチャートについて図5ないし図11を併せ用いて説明する。
【0044】
すべての距離画像30等の画素値(すなわち画素Aの中心から物体20までの距離)を3D平面上に逆射影することにより、物体20の表面上に点を定義することができる。この点を以下では「表面点」と呼ぶことにする。図4に示されるように、まず距離画像記録部3に記録された各距離画像30等の各画素値を仮想3次元空間内で逆射影することにより得られる各表面点の3次元座標値を求める(表面点作成ステップ。ステップS30)。図5は表面点を説明するための図である。図5において、符号28は物体20の表面上に上述のように定義された表面点の1つを示す。
【0045】
表面点作成ステップ(ステップS30)で求められた各表面点28等の3次元座標値を表面点記録部11に記録する(表面点記録ステップ。ステップS32)。
【0046】
事前に決めておいた基準点を中心とする仮想的に3D空間内に定義された仮想立体、例えば仮想円筒(Virtual Cylinder)を定義する。図6は仮想円筒を説明するための図である。図6(A)および(B)において、符号45は事前に決めておいた基準点、40は基準点45を中心として定義された仮想円筒である。図6(A)は仮想円筒40を上から見た平面図を示し、図6(B)は斜視図を示す。図7(A)、(B)および(C)は、各々図6に示される仮想円筒40と位相同型の多様体40a、40bおよび40cを示す。以下では仮想円筒の例を用いて説明していくが、図7に示されるような多様体40a、40bおよび40cであれば3次元メッシュ・モデリング・ステップ(ステップS16)の処理を同様に適用することができる。
【0047】
次に、物体20の表面上のすべての表面点28等を仮想円筒40上に射影(マッピング)する。図4に示されるように、表面点記録部11に記録された3次元座標値を有する各表面点28等から仮想3次元空間に形成された仮想立体、たとえば仮想円筒40上へ射影することにより得られる各3次元射影点への3次元射影ベクトルを求める(3次元射影点作成ステップ。ステップS34)。ここで射影は、例えば透視射影法または直交射影法等を用いることができる。
【0048】
図8および図9は、表面点28等の仮想円筒40への射影を説明する図である。図8(A)に示されるように、まず仮想円筒40の中心線41に垂直で且つ物体20上の一つの表面点28を通る切断平面(または円)42を想定する。次に図8(B)に示されるように切断平面(または円)42により仮想円筒40を輪切りにする。図9(A)に示されるように、輪切りにされた円42の中心(基準点)45と表面点28とを結ぶ線L1を定義する。射影点(3次元射影点)は円42の円周上に点44aと点44bとの2点が得られる。そこで図9(B)に示されるように、表面点28に相当する画素Aから表面点28へ向かうベクトル(画素ベクトル)Gと、表面点28から円42上のある射影点44aへ向かうベクトル(表面点ベクトル)Maおよび表面点28から円42上の別の射影点44bへ向かうベクトル(表面点ベクトル)Mbとを想定する。ベクトルGおよびベクトルMaがなす角θaとベクトルGおよびベクトルMbがなす角θbとを比較して角度が近い方に射影する。例えば図9(B)の場合、θa<θbであるため、上部、つまり射影点44aへ射影される。この射影に用いたベクトルMaを射影ベクトル(3次元射影ベクトル)と呼ぶ。以上の操作をすべての表面点28等に対して行うことにより距離画像30等のパノラマを作成することができる。
【0049】
仮想円筒40上の射影点44a等はその点から物体20までの距離を値として持つ。そのような点の集合をVとする。図4に示されるように、3次元射影点作成ステップ(ステップS34)で求められた各3次元射影点44a等への3次元射影ベクトルMa等を、各3次元射影点44a等毎に、当該3次元射影点44a等と対応する表面点28等との間の3次元距離値を示す属性値と共に3次元射影点記録部12に記録する(3次元射影点記録ステップ。ステップS36)。すなわち3次元射影点記録部12に上述の集合Vが記録される。
【0050】
次に、仮想円筒40をある線で切断することにより一枚の展開された平面を得る。図4に示されるように、3次元射影点記録部12に記録された各3次元射影点44a等毎の3次元射影ベクトルMa等を仮想立体40を切断して展開された仮想平面上へ変換して、2次元変換点への2次元変換ベクトルとして求める(2次元変換点作成ステップ。ステップS38)。図10は仮想円筒40の展開を説明するための図である。図10(A)に示されるように、仮想円筒40をある線L2で切断すると、図10(B)に示されるような仮想平面Pへ展開することができる。図10(B)に示されるように、仮想平面P上の点44a(2)は3次元射影点44aが2次元空間へ変換された2次元変換点である。
【0051】
図4に示されるように、2次元変換点作成ステップ(ステップS38)で求められた各2次元変換点44a(2)等への2次元変換ベクトルを、各2次元変換点44a(2)等毎に3次元射影点記録部12に記録された属性値と共に2次元変換点記録部13に記録する(2次元変換点記録ステップ。ステップS40)。
【0052】
次に図4に示されるように、仮想平面P上に所定のサイズの矩形の画素を定義し、さらにそれぞれの画素の中心に中心点を新たに定義しその座標値を求める(画素中心点作成ステップ。ステップS42)。中心点の集合をVcとする。図11は仮想平面Pを示す。図11(A)に示されるように、仮想平面Pは矩形の画素P11、P15等が定義されている。2次元変換点44a(2)は画素P15内に含まれており、他の2次元変換点46(2)、47(2)および48(2)等が周囲の画素内に含まれている。図11(B)に示されるように、仮想平面Pに上述の中心点を定義する。例えば画素P11の中心点はC11、画素P15の中心点はC15等のように定義される。集合Vcの要素はC11、C15等となる。
【0053】
ここで集合Vcの各点が持つ物体20までの距離値を以下の手順で計算する。まず集合Vcのそれぞれの点C15等に仮想平面P内で定義されるユークリッド距離が最も近いVの点を数点見つける。例えば2次元変換点44a(2)、46(2)、47(2)および48(2)等を見つけることができる。それらの数点の距離値(属性値)を用いて単純な線形補間によりVcの距離値を求める。詳しくは、図4に示されるように、画素中心点作成ステップ(ステップS42)で求められた各画素P15等の中心点C15等の2次元座標値と2次元変換点記録部13に記録された2次元変換点44a(2)等の2次元変換ベクトルとに基づいて、所定の2次元距離(ユークリッド距離)値の範囲内における所定の数の2次元変換点44a(2)等を求める。当該所定の数の2次元変換点44a(2)等について2次元変換点記録部13に記録された属性値(表面点28等と3次元射影点44a等との間の3次元距離値)に基づき、各画素P15等の中心点C15等の補間された補間距離値を求める(補間距離値作成ステップ。ステップS44)。ここで補間距離値を求める場合、例えば線形補間またはスプライン補間等を用いることができる。
【0054】
図4に示されるように、画素中心点作成ステップ(ステップS42)で求められた各画素P15等の中心点C15等の2次元座標値を、補間距離値作成ステップ(ステップS44)で求められた各画素P15等の中心点C15等の補間距離値と共に画素中心点記録部14に記録する(画素中心点記録ステップ。ステップS46)。
【0055】
次に図11(C)に示されるように、各中心点C15等を三角形でつなぐことにより実際に3Dモデルを三角形化する。上述のVcは規則性を持っているため、三角形化は図11(C)に示す通り、単純に左上、上、左、右、下、右下の画素P15等の中心点C15等と接続させることにより達成することができる。仮想平面Pの右端の点と左端の点とも同様に接続する。距離画像30等の解像度に合わせて仮想平面P上のグリッドの数も増加させる。
【0056】
次に、仮想平面Pを仮想円筒40へ戻す。新たに作られた距離値Vcを物体20上に逆射影することにより正則メッシュを持つ3Dモデルを作成することができる。詳しくは、図4に示されるように、画素中心記録部14に記録された各画素P15等の中心点C15等の2次元座標値を、仮想円筒40上の3次元座標値へ逆変換して各画素P15等の中心点C15等の3次元逆変換点を求める(画素中心3次元逆変換点作成ステップ。ステップS48)。画素中心3次元逆変換点作成ステップ(ステップS48)で求められた各画素P15等の中心点C15等の3次元逆変換点の3次元座標値を、画素中心点記録部14に記録された各画素P15等の中心点C15等の補間距離値と共に画素中心3次元逆変換点記録部15に記録する(画素中心3次元逆変換点記録ステップ。ステップS50)。画素中心3次元逆変換点記録部15に記録された各画素P15等の中心点C15等の補間距離値を仮想3次元空間内で逆射影することにより得られる各画素P15等の中心点C15等に対応する各表面点28等の3次元座標値を求める(画素中心対応表面点作成ステップ。ステップS52)。画素中心対応表面点作成ステップ(ステップ52)で求められた各画素P15等の中心点C15等に対応する各表面点28の3次元座標値を画素中心対応表面点記録部16に記録する(画素中心対応表面点記録ステップ。ステップS54)。
【0057】
本発明の3次元モデリング・プログラムは、上述したように「実時間性」と「正則性」とに関わるところに特徴があるだけではなく、その他にプログレッシブなモデリングが可能となるところにも大きな特徴を持っている。本発明の3次元モデリング・プログラムは計算時間にスケーラビリティを持っている。ここでスケーラビリティとは、アルゴリズムの一部またはすべてを選択し実行することで、モデリングにおけるある変数(ここでは計算の複雑さ)を制御できる特性のことを言う。したがって本発明の3次元モデリング・プログラムは1フレームに対するアルゴリズム全体を実行せずに途中でうち切ったとしても、その時点での最適な解像度を持つモデルを取得することができるという特徴を持つ。プロセッサの処理能力が高い場合は高解像度の、低い場合は低解像度の3Dメッシュがモデリング可能である。これは実時間モデリングに大きな利点をもたらす。アルゴリズムを繰り返し実行すればするほど解像度が上がるという意味で、本発明の3次元モデリング・プログラムをプログレッシブモデリングと呼ぶことができる。
【0058】
以上説明したように、本発明の実施の形態1によれば、まず予めオフライン処理で距離画像記録部3に記録させた各距離画像30等の対応点を決定させておく。次に、オンライン処理で物体20の距離画像30等を初期解像度記録部6に記録された所定の解像度(N×M)および決定された対応点の下で複数のカメラ25a等により各々取得させると共に、取得させた時刻(t)を時刻記録部5に記録させ、所定の解像度(N×M)を解像度記録部6に記録させておく。取得させた各距離画像30等は距離画像記録部に記録させる。解像度記録部6に記録された解像度の下で距離画像記録部3に記録された各距離画像30等に基づき、物体20の3次元メッシュ・モデルを作成させる。
【0059】
3次元メッシュ・モデルの作成は、まず複数の距離画像30等の画素値を3D空間上に逆射影して物体20上に表面点を定義する。3D空間に仮想円筒40を定義し、物体20上のすべての表面点を仮想円筒40上に射影して3次元射影点を求める。3次元射影点には表面点28と射影点との間の距離値を持たせる。仮想円筒を2次元空間の仮想平面Pへ展開し、3次元射影点を2次元空間へ変換した2次元変換点を求める。この2次元変換点は3次元射影点の距離値を有している。仮想平面P上に所定のサイズの矩形の画素を定義し、さらにそれぞれの画素の中心に中心点を新たに定義する。中心点の距離値は周囲の2次元変換点の距離値を補間することにより求める。各中心点を三角形でつなぐことにより3Dモデルを三角形化する。仮想平面Pを仮想円筒40へ戻し、中心点の距離値を物体20上へ逆射影することにより、正則メッシュを持つ3Dメッシュ・モデルを作成することができる。
【0060】
続いて、時刻記録部5に記録された時刻(t)から所定の時間(δT)が経過していない場合、解像度記録部6に記録された解像度を所定の割合、例えば2倍で増加させて3次元メッシュ・モデリング・ステップから繰返して実行させる。時刻記録部に記録された時刻(t)から所定の時間が経過して時刻がt+δTとなり、且つ所定の終了時刻を越えていない場合、距離画像取得ステップから繰返して実行させる。以上により、静的物体だけではなく動的物体に対しても正則性を持つ3Dメッシュを実時間でモデリングすることができ、プログレッシブ性を併せ持つ3次元モデリング・プログラム等を提供することができる。このプログレッシブ性を併せ持つことにより、アルゴリズムを途中で打ち切ることができ、打ち切った時点で最良の解像度を有する3Dメッシュをモデリングすることができる3次元モデリング・プログラム等を提供することができる。
【0061】
実施の形態2.
実施の形態1では3次元射影点作成ステップ(ステップS34)で、表面点28等から仮想円筒40へのマッピングの方法を示した。本実施の形態2では、別のマッピングの方法を説明する。
【0062】
各時間tにおける1回目の繰り返し、つまり距離画像30等の解像度がN×Mの時は3次元射影点作成ステップ(ステップS34)と同様の処理を行う。ただし3次元射影点44a等は物体20までの距離値ではなく、物体20上の表面点28等の3次元座標(x, y, z)を値として持つ。詳しくは、3次元射影点記録ステップ(ステップS36)において、解像度記録部6に記録された解像度が初期解像度記録部4に記録された所定の解像度と等しい場合、3次元射影点作成ステップ(ステップS34)で求められた各3次元射影点44a等への3次元射影ベクトルMa等を、各3次元射影点44a等毎に、表面点28等の3次元座標値を示す属性値と共に3次元射影点記録部12に記録しておく。
【0063】
2回目の繰り返し、つまり解像度が2N×2M以上の時は以下の手順で射影を行う。N×Mから2N×2Mに解像度を上げることによりできる新たな画素の3次元射影ベクトルをまず求める。図12は、本発明の実施の形態2におけるマッピングの方法を説明するための図である。図12(A)は解像度がN×Mの場合の仮想平面P上の画素P11、P12等(黒丸)を示し、図12(B)は解像度が2N×2Mの場合の仮想平面P上の画素P11、P12、P11−2、P11−3、P11−4等を示す。図12(B)で白丸で示される画素P11−2、P11−3、P11−4等が新たな画素である。N×Mの画素P11、P12等(黒丸)が持つ3次元射影ベクトルMa等は既に求まっており、その3次元射影ベクトルを内挿または外挿することにより新たに加えられた画素P11−2、P11−3、P11−4等の3次元射影ベクトルを求める。詳しくは、3次元射影点作成ステップ(ステップS34)において、解像度記録部6に記録された解像度が初期解像度記録部4に記録された所定の解像度(N×M)より大きい場合、表面点記録部11に既に記録された3次元座標値を有する従前の表面点28等に関しては、従前の表面点28等に対応する従前の3次元射影点44a等毎に既に3次元射影点記録部12に記録された従前の3次元射影ベクトルMa等を用いる。一方、解像度の増加により新たに表面点記録部11に記録された3次元座標値を有する新表面点に関しては、新表面点の近傍における従前の表面点28等に対応する該従前の3次元射影ベクトルMa等の属性値(3次元距離値)に基づいて新たな3次元射影ベクトルを求めることができる。後は、新たな3次元射影ベクトルと仮想円筒40との交点をもとめマッピングする。3次元射影点は相当する物体20上の点の3次元座標(x, y, z)を値として持つ。
【0064】
以上説明したように、本発明の実施の形態2によれば、各時間tにおける1回目の繰り返しの時は、3次元射影点44a等は物体20までの距離値ではなく、物体20上の表面点28等の3次元座標(x, y, z)を値として持つ点を除き、3次元射影点作成ステップ(ステップS34)と同様の処理を行う。2回目以降の繰り返しの時は、新たな画素の3次元射影ベクトルは既に前回の繰返しの時に求めた3次元射影ベクトルを内挿または外挿することにより求めることができる。この結果、繰返しにより解像度が増加した場合に新たな3次元ベクトルを効率よく求めることができる。
【0065】
実施の形態3.
実施の形態1および2では射影をする対象として仮想円筒を用いた。本実施の形態3では仮想円錐の場合を説明する。本発明の3次元モデリング・プログラムのアルゴリズムでは仮想円筒40と同様に仮想円錐(または円錐と位相同型の多様体)の場合にも、そのまま適用できる。以下では、図4に示されるフローチャート中の3次元射影点作成ステップ(ステップS34)について仮想円筒40を仮想円錐へ置き換えて説明する。他のステップは同様であるため説明は省略する。
【0066】
図13は、本発明の実施の形態3における仮想円錐を用いたマッピングを説明する図である。図13(A)に示されるように、仮想円錐50をある線L2で切断して展開すると、図13(B)に示される仮想平面P2を得ることができる。まず、表面点28等に対応する画素を含む距離画像30等を取得したカメラ25a等と物体20との間の空間位置情報が記録された空間位置情報部17をさらに設けておく。図14は、本発明の実施の形態3における3次元射影点作成ステップのフローチャートを示す。図14に示されるように、仮想円錐50の中心線(仮想円筒40の場合の中心線41に相当)を仮想空間上で作成する(仮想立体作成ステップ。ステップS60)。作成された中心線に垂直で且つ表面点記録部11に記録された表面点28等を通る仮想円錐50を切断する平面であって、周囲が仮想円錐50の周囲と一致する切断平面(仮想円筒40の場合の切断平面42に相当)を作成する(切断平面作成ステップ。ステップS62)。作成された切断平面の中心点の座標値を求め(中心点座標値作成ステップ。ステップS64)、求められた中心点の座標値と表面点記録部11に記録された表面点28等の座標値とを結ぶ線分が切断平面の周囲と交わる2点(仮想円筒40の場合の44aおよび44bに相当)を求める(2点作成ステップ。ステップS66)。空間位置情報部17に記録された空間位置情報に基づき、表面点記録部11に記録された表面点28等に対応する画素を含む距離画像30等に対応する仮想平面を仮想空間上で作成する(仮想平面作成ステップ。ステップS68)。作成された仮想平面における表面点28等に対応する画素の座標値を求める(画素座標値作成ステップ。ステップS70)。求められた画素の座標値から上記中心点の座標値へ向かう画素ベクトル(仮想円筒40の場合のベクトルGに相当)と、表面点記録部11に記録された表面点28等の座標値から上記2点への2つの表面点ベクトル(仮想円筒40の場合のベクトルMaおよびMbに相当)を求める(ベクトル作成ステップ。ステップS72)。画素ベクトルと上記2つの表面点ベクトルの各々との間の角度(仮想円筒40の場合の角度θaおよびθbに相当)を比較し(ステップS74)、小さい角度に対応する表面点ベクトルを3次元射影ベクトルとする(ステップS76、S78)。
【0067】
以上説明したように、本発明の実施の形態3によれば、本発明の3次元モデリング・プログラムのアルゴリズムは仮想円筒40と同様に仮想円錐(または円錐と位相同型の多様体)の場合にも、そのまま適用することができる。
【0068】
実施の形態4.
上述の実施の形態では射影をする対象として仮想円筒または仮想円錐を用いた場合を説明した。本発明の3次元モデリング・プログラムのアルゴリズムは仮想円筒40または仮想円錐と同様に仮想球(または球と位相同型の多様体)の場合にも、一部を変更することにより同様に適用できる。以下では、図4に示されるフローチャート中の3次元射影点作成ステップ(ステップS34)と2次元変換点作成ステップ(ステップS38)とについて仮想円筒40を仮想球へ置き換えて説明する。他のステップは同様であるため説明は省略する。
【0069】
図15は、本発明の実施の形態4における仮想球を用いたマッピングを説明する図である。図15(A)に示されるように、3次元射影点作成ステップ(ステップS34)では、まず仮想球60の中心点65の座標値を求め(中心点座標値作成ステップ)、次に中心点65の座標値と表面点記録部11に記録された表面点28等の座標値とを結ぶ線分上において、中心点65の座標値から表面点28等へ向かう方向のベクトルを3次元射影ベクトルとする。図15(B)に示されるように、2次元変換点作成ステップ(ステップS38)では、地球儀を世界地図へマッピングするのと同様の方法で行うことにより仮想平面P3を得ることができる。
【0070】
以上説明したように、本発明の実施の形態4によれば、本発明の3次元モデリング・プログラムのアルゴリズムは仮想円筒40と同様に仮想球(または球と位相同型の多様体)の場合にも、仮想球60の中心点65から表面点28等へ向かう方向のベクトルを3次元射影ベクトルとすることにより、適用することができる。
【0071】
実施の形態5.
上述した本発明の各実施の形態における3次元モデリング・プログラムのアルゴリズムは、1台のコンピュータではなく、複数台のコンピュータ(パーソナル・コンピュータ:PC)をツリー状に配置したシステムにより実行することができる。
【0072】
図16は、本発明の実施の形態5における物体の3次元モデルを作成する処理を制御する3次元モデリング制御プログラムが実行される環境(システム)を示す。図16において、符号70aないし70mはm台のカメラ、80aないし80mはカメラ70aないし70mに対応する距離画像記録部、5aないし5nは各カメラ70a等を用いて物体20の3次元モデルを作成する各距離画像記録部80aないし80mに対応した複数のコンピュータ、5pは複数のコンピュータ5aないし5nの処理結果を統合する統合コンピュータ、5qは3次元モデリング制御プログラム自体が実行されるコンピュータである。カメラ70aないし70m、距離画像記録部80aないし80m、コンピュータ5aないし5n、統合コンピュータ5pおよびコンピュータ5qはバス75により接続されており、レイヤ3を構成する。レイヤ2では距離画像記録部80aないし80mを2つずつまとめた結果を記録する統合記録部90aないし90m/2により構成され、レイヤ1では最終結果を記録する最終結果記録部100を有している。
【0073】
以下では、図3および図4に示されるフローチャート中の各ステップをどのコンピュータに実行させるかについて説明する。まず、コンピュータ5qに距離画像記録部80aないし80mに記録させた各距離画像の対応点を決定させる(対応点決定ステップ。ステップS10)を実行させる。レイヤ3では、距離画像取得ステップ(ステップS12)から3次元射影点記録ステップ(ステップS36)までを複数のコンピュータ5aないし5nの各々に担当させる。各PCは一枚の距離画像のみを取り扱う。レイヤ2では、統合コンピュータ5pに2次元変換点作成ステップ(ステップS38)から画素中心対応表面点記録ステップ(ステップS54)までを担当させる。つまり、1台の統合コンピュータ5pが仮想平面の一部を取り扱う。次にコンピュータ5qに、ステップS18、S20およびS22の繰返し判定の処理を行わせる。
【0074】
以上説明したように、本発明の実施の形態5によれば、本発明の3次元モデリング・プログラムのアルゴリズムは、複数台のPCをツリー状に配置し、各処理を複数のPCに担当させることにより、短時間で効率よく実行することができる。
【0075】
実施の形態6.
本実施の形態6では、3次元モデリング・データを伝送する3次元モデリング・データ伝送プログラムについて説明する。
【0076】
図16に示されるように、最終結果記録部100には上述の実施の形態で説明された図11(B)に示されるような矩形画素の画素値が記録されている(画素中心点記録ステップ。ステップS54)。そこで3次元モデリング・データをネットワーク102を介してクライアントの記録部104、106、108および110等へ伝送する際、3Dメッシュ・データを直接伝送するのではなく、最終結果記録部100に記録された矩形画素の画素値を伝送する。クライアント側では受け取ったデータに対して上述の三角形化を施し、それを3D空間内に逆射影することで復号、レンダリングが可能になる。以上により、3Dメッシュ・データを伝送する際に、頂点座標の他に三角形の接続を表す情報を送る必要がなくなる。
【0077】
以上説明したように、本発明の実施の形態6によれば、3次元モデリング・データをネットワーク102を介してクライアント側へ伝送する場合、最終結果記録部100に記録された矩形画素の画素値を伝送することにより、頂点座標の他に三角形の接続を表す情報を送る必要をなくすことができる。この結果、3Dメッシュ・データの伝送に長時間を要することのない3次元モデリング・データ伝送プログラムを提供することができる。
【0078】
実施の形態7.
図17は、上述した各実施の形態を実現するための本発明のコンピュータ・プログラムを実行するコンピュータ1等の内部回路120を示すブロック図である。図17において、上述の本発明のコンピュータ・プログラムは、ROM122、ディスク125aまたはCD−ROM125n等の記録媒体に記録されている。このコンピュータ・プログラムは、ROM122、ディスク125aまたはCD−ROM125n等の記録媒体からコンピュータローラ124を介しバス126を通ってRAM123へロードされる。ディスク125a等の記録媒体は記録装置10等を対応させておくことができる。入力操作部128はコンピュータ1等に入力を行うためのマウスまたはテンキー等の入力装置であり、入力制御部127は入力操作部128と接続され入力制御等を行う。外部インタフェース(I/F)部129は、コンピュータ5q等がネットワーク102を介して通信を行う際のインタフェース機能を有する。
【0079】
CPU121がRAM123内の上述の本発明のコンピュータ・プログラムを実行することにより、本発明の目的を達成することができる。当該コンピュータ・プログラムは上述のようにCD−ROM125n等の脱着可能な記録媒体の形態でコンピュータCPU121に供給することができ、当該コンピュータ・プログラムを記録したCD−ROM125n等の記録媒体も同様に本発明を構成することになる。当該コンピュータ・プログラムを記録した記録媒体としては上述された記録媒体の他に、例えばDVD、光ディスク、メモリ・カード、メモリスティック、MO、FD等を用いることができる。
【0080】
【発明の効果】
以上説明したように、本発明の3次元モデリング・プログラムによれば、距離画像30等の解像度を段階的に増大させながら入力し、その入力距離画像30等をもとに3Dメッシュを構成している。これによりアルゴリズムを長時間実行すればするほど3Dメッシュの解像度が上がる「プログレッシブ性」を実現することができる。本発明の3次元モデリング・プログラム等では、いったんモデリングした非正則3Dメッシュを正則に変換するという二重の手順を踏むことなく、直接正則な3Dメッシュを生成することができる。以上により、静的物体だけではなく動的物体に対しても正則性を持つ3Dメッシュを実時間でモデリングすることができ、プログレッシブ性を併せ持つ3次元モデリング・プログラム等を提供することができる。
【0081】
本発明の3次元モデリング・プログラム等ではアルゴリズムを途中で打ち切ることが可能である。このため、打ち切った時点での最良の解像度を持つ3Dメッシュを出力することができる3次元モデリング・プログラム等を提供することができる。
【0082】
本発明の3次元モデリング伝送プログラムでは実時間でモデリングし伝送することにより、遠隔地にいるクライアントがその3Dメッシュをあらゆる角度から、しかも実時間で見ることができるようにすることができる。クライアント側へ送るデータは3Dメッシュそのものではなく、矩形画素の画素値という画像に似たデータであるため、静止画像または動画像の圧縮アルゴリズムを直接適用することができる。これは高圧縮につながるだけでなく、SNRスケーラビリティ、解像度スケーラビリティ等の各種スケーラビリティを容易に実現することができるという利点を有している。以上により、3Dメッシュ・データの伝送に長時間を要することのない3次元モデリング・データ伝送プログラムを提供することができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態1における3次元モデリング・プログラム等が動作する環境を示す図である。
【図2】 距離画像について説明する図である。
【図3】 本発明の3次元モデリング・プログラムの機能を示すフローチャートである。
【図4】 本発明の3次元モデリング・プログラムにおける3次元メッシュ・モデリング・ステップの機能を示すフローチャートである。
【図5】 表面点を説明するための図である。
【図6】 仮想円筒を説明するための図である。
【図7】 仮想円筒40と位相同型の多様体40a、40bおよび40cを示す図である。
【図8】 表面点28等の仮想円筒40への射影を説明する図である。
【図9】 表面点28等の仮想円筒40への射影を説明する図である。
【図10】 仮想円筒40の展開を説明するための図である。
【図11】 仮想平面Pを示す図である。
【図12】 本発明の実施の形態2におけるマッピングの方法を説明するための図である。
【図13】 本発明の実施の形態3における仮想円錐を用いたマッピングを説明する図である。
【図14】 本発明の実施の形態3における3次元射影点作成ステップを示すフローチャートである。
【図15】 本発明の実施の形態4における仮想球を用いたマッピングを説明する図である。
【図16】 本発明の実施の形態5における物体の3次元モデルを作成する処理を制御する3次元モデリング制御プログラムが実行される環境(システム)を示す図である。
【図17】 本発明のコンピュータ・プログラムを実行するコンピュータ1等の内部回路120を示すブロック図である。
【図18】 頂点と三角形とで物体(オブジェクト)の表面を近似した3Dメッシュを例示する図である。
【図19】 正則メッシュと非正則メッシュとを例示する図である。
【符号の説明】
1 コンピュータ、 3,80a,80b,80c,80d,80m−1,80m 距離画像記録部、 4 初期解像度記録部、 5 時刻記録部、 6 初期解像度記録部、 10 記録装置、 11 表面点記録部、 12 3次元射影点記録部、13 2次元変換点記録部、 14 画素中心点記録部、 15画素中心3次元逆変換点記録部、 16 画素中心対応表面点記録部、 20物体、 25a,25b,25c,25d,25e,25f,70a、70b,70c,70d,70e、70f カメラ(撮像装置)、 28 表面点、 30,31,32,33,34,35 距離画像、 40 仮想円筒、 40a,40b,40c 仮想円筒と位相同型の多様体、 41 中心線、42 切断平面、 44a、44b 3次元射影点、 44a(2)、46(2),47(2),48(2) 2次元変換点、 45 基準点、 50 仮想円錐、 60仮想球、 65 中心点、 75,126 バス、 90a,90b,90m/2 統合記録部、 100 最終結果記録部、 102 ネットワーク、 104,106,108,110 記録部、 120 内部回路、 121 CPU、 122 ROM、 123 RAM、 124 コンピュータローラ、 125a ディスク、 125n CD−ROM、 127 入力制御部、 128 入力操作部、 129 外部I/F部。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a three-dimensional modeling program and the like, and in particular, a three-dimensional modeling program for creating a three-dimensional model of an object using a plurality of imaging devices arranged around the object, and a three-dimensional model of the object. The present invention relates to a three-dimensional modeling control program for controlling processing, a three-dimensional modeling / data transmission program for transmitting three-dimensional modeling / data of an object, and the like.
[0002]
[Prior art]
[Non-Patent Document 1]
Proceedings of IEEE Visualization '97, Phoenix, Arizona, October 1997, pp. 277-283, 552
[Non-Patent Document 2]
Nobuhara Shohei, Wada Toshikazu, Matsuyama Takashi, “Highly accurate 3D shape restoration from multi-viewpoint images using elastic mesh models”, Information Processing Society of Japan, CVIM Technical Journal, Vol. 43, SIG11 (CVIM5), pp.53 -63, 2002.12
[Non-Patent Document 3]
Takeshi Aoi, Masayuki Nakajima, "Computer Graphics", pp.107-109, Shosodo
[Non-Patent Document 4]
Lee, AWF, Sweldens, W., Schroder, P., Cowsar, L., and Dobkin, D., “MAPS: Multiresolution Adaptive Parameterization of Surfaces.”, Proceedings of SIGGRAPH 98, pp.95-104
[Patent Document 1]
JP 2002-324246 A
[Patent Document 2]
JP 2001-67495 A
[0003]
Conventionally, techniques for editing, acquiring, and displaying a three-dimensional (hereinafter abbreviated as “3D”) model of an object have been mainly developed in the field of entertainment or medical care. With recent advances in semiconductor technology and higher transmission speeds in networks, the demand for 3D models as digital content following text, audio, and images has further increased. Along with this increase in demand, research on various related technologies centering on modeling and rendering has been actively promoted. In general, there are various representation methods for 3D models. For example, a volume model that is a 3D discrete model reconstructed as a collection of voxels, a solid model that represents a 3D shape as a solid in a geometric model, a spline patch that approximates a free-form surface with a polyhedron of curved surface patches using spline curves, and the like. It is done.
[0004]
FIG. 18 illustrates a 3D mesh (mesh) model (hereinafter abbreviated as “3D mesh”) that approximates the surface of an object with vertices and triangles. As shown in FIG. 18, the 3D mesh approximates the surface of an object with a polygonal polygonal surface such as a triangle, and is widely used because a high-definition model and animation can be expressed relatively easily.
[0005]
Here, regularity and irregularity of the 3D mesh will be described. In general, the geometric information is composed of the three-dimensional coordinates Vi of the vertices expressed by Equation 1 and the vertex index set (p, q, r) of the triangle. X in Equation 1 i , Y i , Z i Indicates a coordinate value in xyz coordinates, and R 3 Indicates a 3D space, and N indicates the number of vertices. A set of vertex indices can be considered, but no further entry will be made in this specification.
[0006]
[Expression 1]
Figure 0004229398
[0007]
All vertices with k edges (the vertex order is k) are called k-regular meshes or simply regular meshes, and vertices with any number of orders are non- This is called a regular mesh. In addition, a case where almost all vertices are regular may be called semi-regular meshes in order to distinguish them from regular meshes. In this specification, all vertices other than the boundary part of the 3D mesh are regular. In this case, it is simply called a regular mesh. FIG. 19 illustrates a regular mesh and a non-regular mesh. As shown in FIG. 19A, in a 3D mesh composed of vertices and triangles, if all (or almost all) vertices have k triangles (or sides), the 3D mesh has regularity. That's it. On the other hand, as shown in FIG. 19B, when all (or almost all) vertices do not have k triangles (or sides), the 3D mesh is said to be irregular. A 3D mesh is a 3D model that approximates the surface of an object by connecting vertices arranged in a three-dimensional space with polygons.
[0008]
Next, a typical conventional modeling method will be described. As described in Non-Patent Document 1, there is a 3D video generation system developed at Carnegie Mellon University in the United States called “Virtualized Reality”. This 3D moving image generation system uses a technique for obtaining a 3D mesh using a plurality of range images. This distance image is an image in which a plane (image) in the 3D space is assumed and the distance from the plane to the object is given as a pixel value. However, the above-described 3D moving image generation system has a problem that regularity cannot be realized. Furthermore, there is a problem that the real-time property of the processing cannot be realized, and the progressiveness (gradual property), which is a characteristic that the image quality (resolution) is improved as the processing time is increased.
[0009]
As another conventional modeling method, there is a 3D video generation system having real-time characteristics as a modeling system developed by Professor Matsuyama of Kyoto University as described in Non-Patent Document 2. This 3D moving image generation system uses a visual volume intersection method. The visual volume intersection method is one of methods for reconstructing a 3D space from a two-dimensional image, and is a method for obtaining the position and surrounding shape of an object using a plurality of images taken by a camera at the same time. Although this 3D moving image generation system has real-time characteristics, it has a problem that it does not have regularity and progressiveness.
[0010]
As another modeling method, there is a method described in Patent Document 1. However, although this method has real-time properties, there is a problem in that it does not consider regularity and progressiveness.
[0011]
Next, techniques relating to meshing and triangulation will be described. As described in Non-Patent Document 3, there is a Delauney method as a well-known triangulation method. The Delauney method is a method in which if there are no other points in a circle passing through three points, a triangle is formed from those three points for all vertices. However, since the Delauney method has a large amount of processing calculation, there is a problem that there is no real time property and regularity is not promised.
[0012]
As another meshing and triangulation method, as described in Non-Patent Document 4, there is a well-known method called MAPS that converts a non-regular mesh into a regular mesh. MAPS targets non-regular meshes that have already been modeled. MAPS has a problem that it has a large amount of processing calculation and lacks real-time performance.
[0013]
As another method related to meshing and triangulation, there is a method described in Patent Document 1, but this method reproduces an acute angle feature and takes into account regularity, progressiveness, real-time characteristics, and the like. There was a problem that was not.
[0014]
[Problems to be solved by the invention]
There are various “3D mesh processing” techniques for 3D meshes acquired in some way, and many techniques such as smoothing, feature extraction, simplification / detailing, and encoding have been proposed. The 3D mesh constructs polygons by connecting randomly sampled points in 3D space by various methods. Since sampling is performed randomly as described above, there is no concept such as grids and pixels sampled at regular intervals in a normal digital signal. For this reason, it becomes difficult to process as time-sequential data at equal intervals, and the 3D mesh processing is complicated. For this reason, conventionally, attempts have been actively made to facilitate the handling of 3D meshes by parameterizing meshes with irregularly connected vertices (non-regular meshes) and converting them into regular meshes. However, there is a problem that none of them has regularity and progressiveness. In particular, since the two steps of modeling a non-regular 3D mesh and then converting it to a regular mesh are taken, the amount of processing calculation becomes very large. As a result, there is a problem that it is inconvenient when it is desired to obtain a regular 3D mesh in a short time, or when it is desired to generate a dynamic regular 3D mesh for a moving object (dynamic object) in real time.
[0015]
Many conventional 3D modeling techniques aim to obtain the shape of a stationary object (static object) or obtain 3D animation off-line using a video signal sequence stored on disk. It is an object. Several methods for processing and modeling a video signal sequence sent from a camera in real time have been proposed for acquiring a 3D animation of a dynamic object. However, when modeling a moving object in real time, naturally, the time required for modeling one frame varies depending on the processing capability of the processor used for calculation. In the conventional modeling method, one model is completed by executing processing along the entire algorithm. For this reason, there is a problem that if the time for completing the above algorithm is longer than one frame time, the modeling is not completed and the processing is wasted.
[0016]
Conventionally, when transmitting 3D mesh data, it is necessary to send information representing the connection of triangles in addition to the vertex coordinates. Therefore, there is a problem that it takes a long time to transmit 3D mesh data.
[0017]
Therefore, an object of the present invention is to solve the above-described problem, and a 3D mesh having regularity not only for a static object but also for a dynamic object can be modeled in real time. The purpose is to provide a 3D modeling program and the like having both progressive characteristics.
[0018]
A second object of the present invention is to provide a three-dimensional modeling program or the like that can abort an algorithm halfway and can model a 3D mesh having the best resolution at the time of termination.
[0019]
A third object of the present invention is to provide a three-dimensional modeling data transmission program that does not require a long time for transmission of 3D mesh data.
[0020]
[Means for Solving the Problems]
The three-dimensional modeling program according to the present invention is a three-dimensional modeling program for creating a three-dimensional model of an object using a plurality of imaging devices arranged around the object, each acquired by the plurality of imaging devices. A distance image recording unit that records a distance image having a distance to the object as a pixel value in accordance with each imaging device, and an initial resolution recording unit that records a predetermined resolution. A corresponding point determination step for determining a corresponding point of each distance image recorded in the distance image recording unit;
The distance image of the object is acquired by each of the plurality of imaging devices under a predetermined resolution recorded in the initial resolution recording unit and the corresponding point determined in the corresponding point determination step, and the acquired time is a time A distance image acquisition step of recording in the recording unit and recording the predetermined resolution in the resolution recording unit;
A distance image recording step of causing the distance image recording unit to record each distance image acquired in the distance image acquisition step;
A three-dimensional mesh modeling step of creating a three-dimensional mesh model of the object based on each distance image recorded in the distance image recording unit under the resolution recorded in the resolution recording unit;
If a predetermined time has not elapsed since the time recorded in the time recording unit, the resolution recorded in the resolution recording unit is increased at a predetermined rate and repeatedly executed from the three-dimensional mesh modeling step. A step of repeatedly executing from the distance image acquiring step when a predetermined time has elapsed from a time recorded in the time recording unit and a predetermined end time has not been exceeded.
Is a three-dimensional modeling program for executing
[0021]
Here, in the three-dimensional modeling program of the present invention, the three-dimensional mesh modeling step includes:
A surface point creating step for obtaining a three-dimensional coordinate value of each surface point obtained by back-projecting each pixel value of each distance image recorded in the distance image recording unit in a virtual three-dimensional space;
A surface point recording step for recording a three-dimensional coordinate value of each surface point obtained in the surface point creation step in a surface point recording unit;
A three-dimensional projection vector to each three-dimensional projection point obtained by projecting from each surface point having a three-dimensional coordinate value recorded in the surface point recording unit onto a virtual solid formed in a virtual three-dimensional space is obtained. A three-dimensional projection point creation step;
The three-dimensional projection vector for each three-dimensional projection point obtained in the three-dimensional projection point creation step is calculated for each three-dimensional projection point by a three-dimensional distance value between the three-dimensional projection point and the corresponding surface point. A three-dimensional projection point recording step for recording in the three-dimensional projection point recording unit together with an attribute value indicating
Two-dimensional conversion to a two-dimensional conversion point by converting a three-dimensional projection vector for each three-dimensional projection point recorded in the three-dimensional projection point recording unit onto a virtual plane developed by cutting the virtual solid A step of creating a two-dimensional transformation point obtained as a vector;
The two-dimensional conversion point to each two-dimensional conversion point obtained in the two-dimensional conversion point creation step is converted into a two-dimensional conversion point together with the attribute value recorded in the three-dimensional projection point recording unit for each two-dimensional conversion point. A two-dimensional conversion point recording step for recording in the recording unit;
A pixel center point creating step of setting a pixel of a predetermined size on the virtual plane and obtaining a two-dimensional coordinate value of the center point of each pixel;
Based on the two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step and the two-dimensional conversion vector of the two-dimensional conversion point recorded in the two-dimensional conversion point recording unit, a predetermined two-dimensional A predetermined number of two-dimensional conversion points within a range of distance values are obtained, and the center point of each pixel is determined based on the attribute value recorded in the two-dimensional conversion point recording unit for the predetermined number of two-dimensional conversion points. An interpolation distance value creation step for obtaining an interpolation distance value;
The two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step is recorded in the pixel center point recording unit together with the interpolation distance value of the center point of each pixel obtained in the interpolation distance value creation step. A pixel center point recording step;
Pixel center for obtaining a three-dimensional inverse transformation point of the center point of each pixel by inversely transforming the two-dimensional coordinate value of the center point of each pixel recorded in the pixel center recording unit into a three-dimensional coordinate value on the virtual solid A three-dimensional inverse transformation point creation step;
The three-dimensional coordinate value of the three-dimensional inverse transform point of the center point of each pixel obtained in the pixel center three-dimensional inverse transform point creation step is used as the interpolation distance of the center point of each pixel recorded in the pixel center point recording unit. A pixel center 3D inverse transform point recording step for recording in the pixel center 3D inverse transform point recording unit together with the value;
3 of each surface point corresponding to the center point of each pixel obtained by back-projecting the interpolation distance value of the center point of each pixel recorded in the pixel center three-dimensional inverse transformation point recording unit in the virtual three-dimensional space. A step of creating a surface point corresponding to a pixel center for obtaining a dimensional coordinate value;
A pixel center corresponding surface point recording step for recording a three-dimensional coordinate value of each surface point corresponding to the center point of each pixel obtained in the pixel center corresponding surface point creating step in a pixel center corresponding surface point recording unit. Can do.
[0022]
Here, in the three-dimensional modeling program of the present invention, the three-dimensional projection point recording step includes the step of recording the three-dimensional projection point recording step when the resolution recorded in the resolution recording unit is equal to a predetermined resolution recorded in the initial resolution recording unit The three-dimensional projection vector to each three-dimensional projection point obtained in the three-dimensional projection point creation step is combined with an attribute value indicating the three-dimensional coordinate value of the surface point corresponding to the three-dimensional projection point for each three-dimensional projection point. Record in the 3D projection point recording unit,
In the three-dimensional projection point creation step, when the resolution recorded in the resolution recording unit is larger than a predetermined resolution recorded in the initial resolution recording unit,
With respect to the previous surface point having the three-dimensional coordinate value already recorded in the surface point recording unit, the previous three-dimensional projection point corresponding to the previous surface point is already recorded in the three-dimensional projection point recording unit. A new surface point having a three-dimensional coordinate value newly recorded in the surface point recording unit by increasing the resolution using the previous three-dimensional projection vector corresponds to the previous surface point in the vicinity of the new surface point. A new three-dimensional projection vector can be obtained based on the attribute value of the conventional three-dimensional projection vector.
[0023]
Here, in the three-dimensional modeling program of the present invention, when the virtual solid is a virtual cylinder or a virtual cone, the three-dimensional projection point creating step includes an imaging device that has acquired a distance image including pixels corresponding to surface points. A spatial position information section in which spatial position information between the object and the object is recorded;
A virtual solid creation step of creating a center line of a virtual cylinder or virtual cone in a virtual space;
A plane that cuts the virtual cylinder or virtual cone that is perpendicular to the center line created in the virtual solid creation step and passes through the surface point recorded in the surface point recording unit, and the periphery is the circumference of the virtual cylinder or virtual cone A cutting plane creation step to create a cutting plane that matches
A center point coordinate value creating step for obtaining a coordinate value of the center point of the cutting plane created in the cutting plane creating step;
Find two points where a line segment connecting the coordinate value of the center point obtained in the center point coordinate value creating step and the coordinate value of the surface point recorded in the surface point recording unit intersects the periphery of the cutting plane 2 A point creation step;
Virtual plane creation that creates a virtual plane corresponding to a distance image including a pixel corresponding to the surface point recorded in the surface point recording unit in a virtual space based on the spatial position information recorded in the spatial position information unit Steps,
A pixel coordinate value creating step for obtaining a coordinate value of a pixel corresponding to the surface point in the virtual plane created in the virtual plane creating step;
A pixel vector that goes from the coordinate value of the pixel obtained in the pixel coordinate value creation step to the coordinate value of the center point obtained in the center point coordinate value creation step, and the surface point recorded in the surface point recording unit A vector creation step for obtaining two surface point vectors from the coordinate values to the two points obtained in the two-point creation step;
Comparing the angle between the pixel vector obtained in the vector creation step and each of the two surface point vectors, and setting the surface point vector corresponding to the small angle as a three-dimensional projection vector. .
[0024]
Here, in the three-dimensional modeling program of the present invention, the three-dimensional projection point creation step includes the step of:
A center point coordinate value creation step for obtaining a coordinate value of the center point of the virtual sphere;
On the line segment connecting the coordinate value of the center point obtained in the center point coordinate value creating step and the coordinate value of the surface point recorded in the surface point recording unit, the surface point is calculated from the coordinate value of the center point. And a step of setting a vector in the direction toward the three-dimensional projection vector.
[0025]
A three-dimensional modeling control program according to the present invention is a three-dimensional modeling control program for controlling processing for creating a three-dimensional model of an object using a plurality of imaging devices arranged around the object, the plurality of imaging A distance image recording unit that records a distance image having a pixel value as a distance to the object acquired by each device, and an initial resolution recording unit that records a predetermined resolution are used. A plurality of computers corresponding to each distance image recording unit that creates a three-dimensional model of the object using each imaging device, and an integrated computer that integrates the processing results of the plurality of computers,
To a computer that executes a 3D modeling control program,
A corresponding point determination step for determining a corresponding point of each distance image recorded in the distance image recording unit;
In each of the plurality of computers,
The distance image of the object is acquired by the imaging device under the predetermined resolution recorded in the initial resolution recording unit and the corresponding point determined in the corresponding point determining step, and the acquired time is stored in the time recording unit. A distance image acquisition step of recording and recording the predetermined resolution in a resolution recording unit;
A distance image recording step of recording the distance image acquired in the distance image acquisition step in the distance image recording unit;
A surface point creating step for obtaining a three-dimensional coordinate value of each surface point obtained by back-projecting each pixel value of the distance image recorded in the distance image recording unit in a virtual three-dimensional space;
A surface point recording step of recording a three-dimensional coordinate value of each surface point obtained in the surface point creation step in a surface point recording unit;
A three-dimensional projection vector to each three-dimensional projection point obtained by projecting from each surface point having a three-dimensional coordinate value recorded in the surface point recording unit onto a virtual solid formed in a virtual three-dimensional space is obtained. 3D projection point creation step,
The three-dimensional projection vector for each three-dimensional projection point obtained in the three-dimensional projection point creation step is calculated for each three-dimensional projection point by a three-dimensional distance value between the three-dimensional projection point and the corresponding surface point. A three-dimensional projection point recording step for recording in the three-dimensional projection point recording unit together with an attribute value indicating
In the integrated computer,
Two-dimensional conversion to a two-dimensional conversion point by converting a three-dimensional projection vector for each three-dimensional projection point recorded in the three-dimensional projection point recording unit onto a virtual plane developed by cutting the virtual solid A step of creating a two-dimensional transformation point obtained as a vector;
The two-dimensional conversion point to each two-dimensional conversion point obtained in the two-dimensional conversion point creation step is converted into a two-dimensional conversion point together with the attribute value recorded in the three-dimensional projection point recording unit for each two-dimensional conversion point. A two-dimensional conversion point recording step for recording in the recording unit;
A pixel center point creating step of setting a pixel of a predetermined size on the virtual plane and obtaining a two-dimensional coordinate value of the center point of each pixel;
Based on the two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step and the two-dimensional conversion vector of the two-dimensional conversion point recorded in the two-dimensional conversion point recording unit, a predetermined two-dimensional A predetermined number of two-dimensional conversion points within a range of distance values are obtained, and the center point of each pixel is determined based on the attribute value recorded in the two-dimensional conversion point recording unit for the predetermined number of two-dimensional conversion points. An interpolation distance value creation step for obtaining an interpolation distance value, and a two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step is interpolated with the center point of each pixel obtained in the interpolation distance value creation step. A pixel center point recording step for recording in the pixel center point recording unit together with the distance value;
Pixel center for obtaining a three-dimensional inverse transformation point of the center point of each pixel by inversely transforming the two-dimensional coordinate value of the center point of each pixel recorded in the pixel center recording unit into a three-dimensional coordinate value on the virtual solid 3D inverse transformation point creation step,
The three-dimensional coordinate value of the three-dimensional inverse transform point of the center point of each pixel obtained in the pixel center three-dimensional inverse transform point creation step is used as the interpolation distance of the center point of each pixel recorded in the pixel center point recording unit. A pixel center three-dimensional inverse transform point recording step for recording in the pixel center three-dimensional inverse transform point recording unit together with the value;
3 of each surface point corresponding to the center point of each pixel obtained by back-projecting the interpolation distance value of the center point of each pixel recorded in the pixel center three-dimensional inverse transformation point recording unit in the virtual three-dimensional space. A step for creating a surface point corresponding to a pixel center for obtaining a dimensional coordinate value;
Performing a pixel center corresponding surface point recording step of recording a three-dimensional coordinate value of each surface point corresponding to the center point of each pixel obtained in the pixel center corresponding surface point creating step in a pixel center corresponding surface point recording unit;
When a predetermined time has not elapsed since the time recorded in the time recording unit, the resolution recorded in the resolution recording unit is increased at a predetermined rate, and the surface point creating step is performed in each of the plurality of computers. When the predetermined time has elapsed from the time recorded in the time recording unit and the predetermined end time has not been exceeded, each of the plurality of computers is repeatedly executed from the distance image acquisition step. Step
Is a three-dimensional modeling control program for executing
[0026]
A three-dimensional modeling data transmission program of the present invention is a three-dimensional modeling data transmission program for transmitting three-dimensional modeling data of an object created using a plurality of imaging devices arranged around the object. A distance image recording unit that records a distance image having a distance to the object as a pixel value acquired by each of the plurality of imaging devices according to each imaging device, and an initial resolution recording unit that records a predetermined resolution. To the computer,
A corresponding point determination step for determining a corresponding point of each distance image recorded in the distance image recording unit;
The distance image of the object is acquired by each of the plurality of imaging devices under a predetermined resolution recorded in the initial resolution recording unit and the corresponding point determined in the corresponding point determination step, and the acquired time is a time A distance image acquisition step of recording in the recording unit and recording the predetermined resolution in the resolution recording unit;
A distance image recording step of causing the distance image recording unit to record each distance image acquired in the distance image acquisition step;
A surface point creating step for obtaining a three-dimensional coordinate value of each surface point obtained by back-projecting each pixel value of each distance image recorded in the distance image recording unit in a virtual three-dimensional space;
A surface point recording step of recording a three-dimensional coordinate value of each surface point obtained in the surface point creation step in a surface point recording unit;
A three-dimensional projection vector to each three-dimensional projection point obtained by projecting from each surface point having a three-dimensional coordinate value recorded in the surface point recording unit onto a virtual solid formed in a virtual three-dimensional space is obtained. 3D projection point creation step,
The three-dimensional projection vector for each three-dimensional projection point obtained in the three-dimensional projection point creation step is calculated for each three-dimensional projection point by a three-dimensional distance value between the three-dimensional projection point and the corresponding surface point. A three-dimensional projection point recording step for recording in the three-dimensional projection point recording unit together with an attribute value indicating
Two-dimensional conversion to a two-dimensional conversion point by converting a three-dimensional projection vector for each three-dimensional projection point recorded in the three-dimensional projection point recording unit onto a virtual plane developed by cutting the virtual solid A step of creating a two-dimensional transformation point obtained as a vector;
The two-dimensional conversion point to each two-dimensional conversion point obtained in the two-dimensional conversion point creation step is converted into a two-dimensional conversion point together with the attribute value recorded in the three-dimensional projection point recording unit for each two-dimensional conversion point. A two-dimensional conversion point recording step for recording in the recording unit;
A pixel center point creating step of setting a pixel of a predetermined size on the virtual plane and obtaining a two-dimensional coordinate value of the center point of each pixel;
Based on the two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step and the two-dimensional conversion vector of the two-dimensional conversion point recorded in the two-dimensional conversion point recording unit, a predetermined two-dimensional A predetermined number of two-dimensional conversion points within a range of distance values are obtained, and the center point of each pixel is determined based on the attribute value recorded in the two-dimensional conversion point recording unit for the predetermined number of two-dimensional conversion points. An interpolation distance value creation step for obtaining an interpolation distance value;
The two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step is recorded in the pixel center point recording unit together with the interpolation distance value of the center point of each pixel obtained in the interpolation distance value creation step. Pixel center point recording step,
When a predetermined time has not elapsed since the time recorded in the time recording unit, the resolution recorded in the resolution recording unit is increased at a predetermined rate and repeatedly executed from the surface point creating step, and the time When a predetermined time has elapsed since the time recorded in the recording unit and the predetermined end time has not been exceeded, the distance image obtaining step is repeatedly executed, and the predetermined time from the time recorded in the time recording unit is set. 3D modeling including a two-dimensional coordinate value of the center point of each pixel recorded in the pixel center point recording unit and an interpolation distance value of the center point of each pixel when a predetermined end time has passed. Steps for transmitting data
Is a three-dimensional modeling data transmission program.
[0027]
The recording medium of the present invention is a computer-readable recording medium on which any program of the present invention is recorded.
[0028]
The three-dimensional modeling method of the present invention is a three-dimensional modeling method for creating a three-dimensional model of an object using a plurality of imaging devices arranged around the object, each of which is acquired by the plurality of imaging devices. A distance image recording unit that records a distance image having a distance to the object as a pixel value according to each imaging device, and an initial resolution recording unit that records a predetermined resolution.
A corresponding point determination step for determining a corresponding point of each distance image recorded in the distance image recording unit;
The distance image of the object is acquired by each of the plurality of imaging devices under a predetermined resolution recorded in the initial resolution recording unit and the corresponding point determined in the corresponding point determination step, and the acquired time is a time A distance image acquisition step of recording in the recording unit and recording the predetermined resolution in the resolution recording unit;
A distance image recording step of recording each distance image acquired in the distance image acquisition step in the distance image recording unit;
A three-dimensional mesh modeling step of creating a three-dimensional mesh model of the object based on each distance image recorded in the distance image recording unit under the resolution recorded in the resolution recording unit;
If a predetermined time has not elapsed since the time recorded in the time recording unit, the resolution recorded in the resolution recording unit is increased at a predetermined rate and repeatedly executed from the three-dimensional mesh modeling step. A step of repeatedly executing from the distance image acquiring step when a predetermined time has elapsed from a time recorded in the time recording unit and a predetermined end time has not been exceeded;
Is executed.
[0029]
Here, in the three-dimensional modeling method of the present invention, the three-dimensional mesh modeling step includes:
A surface point creating step for obtaining a three-dimensional coordinate value of each surface point obtained by back-projecting each pixel value of each distance image recorded in the distance image recording unit in a virtual three-dimensional space;
A surface point recording step for recording a three-dimensional coordinate value of each surface point obtained in the surface point creation step in a surface point recording unit;
A three-dimensional projection vector to each three-dimensional projection point obtained by projecting from each surface point having a three-dimensional coordinate value recorded in the surface point recording unit onto a virtual solid formed in a virtual three-dimensional space is obtained. A three-dimensional projection point creation step;
The three-dimensional projection vector for each three-dimensional projection point obtained in the three-dimensional projection point creation step is calculated for each three-dimensional projection point by a three-dimensional distance value between the three-dimensional projection point and the corresponding surface point. A three-dimensional projection point recording step for recording in the three-dimensional projection point recording unit together with an attribute value indicating
Two-dimensional conversion to a two-dimensional conversion point by converting a three-dimensional projection vector for each three-dimensional projection point recorded in the three-dimensional projection point recording unit onto a virtual plane developed by cutting the virtual solid A step of creating a two-dimensional transformation point obtained as a vector;
The two-dimensional conversion point to each two-dimensional conversion point obtained in the two-dimensional conversion point creation step is converted into a two-dimensional conversion point together with the attribute value recorded in the three-dimensional projection point recording unit for each two-dimensional conversion point. A two-dimensional conversion point recording step for recording in the recording unit;
A pixel center point creating step of setting a pixel of a predetermined size on the virtual plane and obtaining a two-dimensional coordinate value of the center point of each pixel;
Based on the two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step and the two-dimensional conversion vector of the two-dimensional conversion point recorded in the two-dimensional conversion point recording unit, a predetermined two-dimensional A predetermined number of two-dimensional conversion points within a range of distance values are obtained, and the center point of each pixel is determined based on the attribute value recorded in the two-dimensional conversion point recording unit for the predetermined number of two-dimensional conversion points. An interpolation distance value creation step for obtaining an interpolation distance value, and a two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step is used as the center point of each pixel obtained in the interpolation distance value creation step. A pixel center point recording step for recording in the pixel center point recording unit together with the interpolation distance value;
Pixel center for obtaining a three-dimensional inverse transformation point of the center point of each pixel by inversely transforming the two-dimensional coordinate value of the center point of each pixel recorded in the pixel center recording unit into a three-dimensional coordinate value on the virtual solid A three-dimensional inverse transformation point creation step;
The three-dimensional coordinate value of the three-dimensional inverse transform point of the center point of each pixel obtained in the pixel center three-dimensional inverse transform point creation step is used as the interpolation distance of the center point of each pixel recorded in the pixel center point recording unit. A pixel center 3D inverse transform point recording step for recording in the pixel center 3D inverse transform point recording unit together with the value;
3 of each surface point corresponding to the center point of each pixel obtained by back-projecting the interpolation distance value of the center point of each pixel recorded in the pixel center three-dimensional inverse transformation point recording unit in the virtual three-dimensional space. A step of creating a surface point corresponding to a pixel center for obtaining a dimensional coordinate value;
A pixel center corresponding surface point recording step for recording a three-dimensional coordinate value of each surface point corresponding to the center point of each pixel obtained in the pixel center corresponding surface point creating step in a pixel center corresponding surface point recording unit. Can do.
[0030]
Here, in the three-dimensional modeling method of the present invention, when the resolution recorded in the resolution recording unit is equal to a predetermined resolution recorded in the initial resolution recording unit, the three-dimensional projection point recording step The three-dimensional projection vector to each three-dimensional projection point obtained in the projection point creation step is set together with an attribute value indicating the three-dimensional coordinate value of the surface point corresponding to the three-dimensional projection point for each three-dimensional projection point. Recorded in the dimensional projection point recording section,
In the three-dimensional projection point creation step, when the resolution recorded in the resolution recording unit is larger than a predetermined resolution recorded in the initial resolution recording unit,
With respect to the previous surface point having the three-dimensional coordinate value already recorded in the surface point recording unit, the previous three-dimensional projection point corresponding to the previous surface point is already recorded in the three-dimensional projection point recording unit. A new surface point having a three-dimensional coordinate value newly recorded in the surface point recording unit by increasing the resolution using the previous three-dimensional projection vector corresponds to the previous surface point in the vicinity of the new surface point. A new three-dimensional projection vector can be obtained based on the attribute value of the conventional three-dimensional projection vector.
[0031]
Here, in the three-dimensional modeling method according to the present invention, the three-dimensional projection point creation step includes: an imaging device and an object that acquire a distance image including pixels corresponding to surface points when the virtual solid is a virtual cylinder or a virtual cone; Further comprising a spatial position information section in which spatial position information is recorded between
A virtual solid creation step of creating a center line of a virtual cylinder or virtual cone in a virtual space;
A plane that cuts the virtual cylinder or virtual cone that is perpendicular to the center line created in the virtual solid creation step and passes through the surface point recorded in the surface point recording unit, and the periphery is the circumference of the virtual cylinder or virtual cone A cutting plane creation step to create a cutting plane that matches
A center point coordinate value creating step for obtaining a coordinate value of the center point of the cutting plane created in the cutting plane creating step;
Find two points where a line segment connecting the coordinate value of the center point obtained in the center point coordinate value creating step and the coordinate value of the surface point recorded in the surface point recording unit intersects the periphery of the cutting plane 2 A point creation step;
Virtual plane creation that creates a virtual plane corresponding to a distance image including a pixel corresponding to the surface point recorded in the surface point recording unit in a virtual space based on the spatial position information recorded in the spatial position information unit Steps,
A pixel coordinate value creating step for obtaining a coordinate value of a pixel corresponding to the surface point in the virtual plane created in the virtual plane creating step;
A pixel vector that goes from the coordinate value of the pixel obtained in the pixel coordinate value creation step to the coordinate value of the center point obtained in the center point coordinate value creation step, and the surface point recorded in the surface point recording unit A vector creation step for obtaining two surface point vectors from the coordinate values to the two points obtained in the two-point creation step;
Comparing the angle between the pixel vector obtained in the vector creation step and each of the two surface point vectors, and setting the surface point vector corresponding to the small angle as a three-dimensional projection vector. .
[0032]
Here, in the three-dimensional modeling method of the present invention, the three-dimensional projection point creation step includes the step of:
A center point coordinate value creation step for obtaining a coordinate value of the center point of the virtual sphere;
On the line segment connecting the coordinate value of the center point obtained in the center point coordinate value creating step and the coordinate value of the surface point recorded in the surface point recording unit, the surface point is calculated from the coordinate value of the center point. And a step of setting a vector in the direction toward the three-dimensional projection vector.
[0033]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In this specification, only the triangular mesh in which all the most general polygons are triangles will be handled. In the drawings used in the following description, the parts with the same reference numerals indicate the same elements. Therefore, the description of the elements with the reference numerals is performed only for the first figure that appears in principle, and is omitted for the figure that appears again. To do.
[0034]
Embodiment 1 FIG.
FIG. 1 shows an environment in which a three-dimensional modeling program or the like according to Embodiment 1 of the present invention operates. In FIG. 1, reference numeral 1 is a computer on which the three-dimensional modeling program of the present invention is executed, 10 is a recording device such as a disk connected to the computer 1, 20 is an object for creating a three-dimensional model, 25a , 25b, 25c, 25d, 25e, and 25f are a plurality of cameras (imaging devices) connected to the computer 1 and arranged around the object 20. In FIG. 1, six cameras 25a and the like are shown, but this is for the convenience of the drawing, and the three-dimensional modeling program of the present invention can be applied to two or more cameras.
[0035]
As shown in FIG. 1, the recording apparatus 10 includes a distance image recording unit 3 that records distance images acquired by a plurality of cameras 25a and the like according to the cameras 25a and the like. Here, the distance image is an image with a predetermined resolution having a pixel value as a distance from the plane to the object 20 assuming a plane (image) in the 3D space. The recording apparatus 10 further includes an initial resolution recording unit 4 that records a predetermined resolution (N and M in the case of N × M), a time recording unit 5 that records the time when the distance image is acquired by the camera 25a, and the like, which will be described later. Thus, the initial resolution recording unit 6 that records the updated resolution is provided. The recording apparatus 10 includes another surface point recording unit 11 that records predetermined data, a three-dimensional projection point recording unit 12, a two-dimensional conversion point recording unit 13, a pixel center point recording unit 14, and a pixel center three-dimensional inverse conversion point recording unit. 15. A pixel center-corresponding surface point recording unit 16 and a spatial position information unit 17 are provided. These recording units will be described later.
[0036]
FIG. 2 is a diagram illustrating the distance image. In FIG. 2A, reference numeral 30 denotes a distance image of the object 20 acquired by the camera 25a, for example. As shown in FIG. 2A, the pixel A on the distance image 30 has a distance ra between the pixel A and a point B on the object 20 as a pixel value. In FIG. 2B, reference numeral 30 is a distance image of the object 20 acquired by the camera 25a, for example, 31 is a distance image of the object 20 acquired by the camera 25b, for example, and 32 is an object 20 acquired by the camera 25c, for example. A distance image 33 is a distance image of the object 20 acquired by the camera 25d, for example, 34 is a distance image of the object 20 acquired by the camera 25e, for example, and 35 is a distance image of the object 20 acquired by the camera 25f, for example. As shown in FIG. 2B, the pixel C on the distance image 35 has a distance rb between the pixel C and the point B on the object 20 as a pixel value. These distance images 30 and the like are recorded in the distance image recording unit 3 according to each camera 25a and the like.
[0037]
The three-dimensional modeling program of the present invention uses distance images created for the number of cameras 25a and the like corresponding to the number (I). There are many methods for obtaining the distance image 30 and the like using a plurality of cameras 25a and the like. However, regardless of the method for obtaining the distance image 30 or the like in this specification, the distance image 30 or the like is obtained using a certain algorithm. It is assumed that each image is recorded in the image recording unit 3. As a method for acquiring the distance image 30 or the like, a general stereo image method can be used. A method of measuring distance by an optical time-of-flight measurement method using an optical radar range finder, a phase difference detection range finder, or the like may be used. Alternatively, a range finder based on triangulation using a spot light projection method, a slit light projection method, a step light projection method, a pattern light projection method, or the like can be used.
[0038]
Next, the function of the three-dimensional modeling program of the present invention will be described. FIG. 3 is a flowchart showing the function of the three-dimensional modeling program of the present invention. As shown in FIG. 3, first, corresponding points of each distance image 30 and the like recorded in the distance image recording unit 3 are determined (corresponding point determination step, step S10). When using a plurality of distance images 30 and the like, it is necessary to determine in advance the corresponding point (corresponding position) to which pixel in the other distance image 35 the pixel A in a certain distance image 30 corresponds. For example, ICP (Iterative Closest Point Method) can be used to determine the corresponding points. Examining the corresponding point of each distance image 30 or the like is called registration. Thus, the distance images 30 and the like can be combined. The corresponding point determination step (step S10) is performed offline.
[0039]
Subsequently, a plurality of cameras 25a under the predetermined resolution (N × M) recorded in the initial resolution recording unit 4 such as the distance image 30 of the object 20 and the corresponding points determined in the corresponding point determination step (step S10). Each is acquired by etc. As a result, the number (I) of distance images 30 and the like of the cameras 25a and the like are acquired. At the same time, the time (t) at which the distance image 30 or the like is acquired is recorded in the time recording unit 5, and a predetermined resolution (N × M) is recorded in the resolution recording unit 6 (distance image acquisition step, step S12).
[0040]
Next, each distance image 30 acquired in the distance image acquisition step (step S12) is recorded in the distance image recording unit 3 (distance image recording step, step S14).
[0041]
Under the resolution (initially N × M) recorded in the resolution recording unit 6, a three-dimensional mesh model of the object 20 is created based on each distance image 30 and the like recorded in the distance image recording unit 3 (3 Dimensional mesh modeling step, step S16). Step S16 will be described in detail later.
[0042]
It is determined whether or not a predetermined time (frame rate: δT) has elapsed from the time (t) recorded in the time recording unit 5 (step S18). If not, it is recorded in the resolution recording unit 6. The resolution (initially N × M) is increased at a predetermined rate, for example, a rate of 2 times (2N × 2M), and is repeatedly executed from the three-dimensional mesh modeling step (step S16) (step S20). On the other hand, when the predetermined time (δT) has elapsed from the time (t) recorded in the time recording unit 5 and the time is t + δT and the predetermined end time has not been exceeded, the distance image acquisition step (step The process is repeated from S12) (step S22). The processing from the distance image acquisition step (step S12) to step S20 or S22 is executed in real time.
[0043]
Next, the three-dimensional mesh modeling step (step S16) will be described in detail. FIG. 4 is a flowchart showing the function of the three-dimensional mesh modeling step in the three-dimensional modeling program of the present invention. Hereinafter, the flowchart of FIG. 4 will be described with reference to FIGS.
[0044]
A point can be defined on the surface of the object 20 by back-projecting all pixel values of the distance image 30 and the like (that is, the distance from the center of the pixel A to the object 20) on the 3D plane. This point is hereinafter referred to as “surface point”. As shown in FIG. 4, first, the three-dimensional coordinate value of each surface point obtained by back-projecting each pixel value such as each distance image 30 recorded in the distance image recording unit 3 in the virtual three-dimensional space is obtained. Obtain (surface point creation step. Step S30). FIG. 5 is a diagram for explaining the surface points. In FIG. 5, reference numeral 28 denotes one of the surface points defined as described above on the surface of the object 20.
[0045]
The three-dimensional coordinate values such as each surface point 28 obtained in the surface point creation step (step S30) are recorded in the surface point recording unit 11 (surface point recording step, step S32).
[0046]
A virtual solid, for example, a virtual cylinder (Virtual Cylinder), which is virtually defined in the 3D space around a reference point determined in advance, is defined. FIG. 6 is a diagram for explaining a virtual cylinder. In FIGS. 6A and 6B, reference numeral 45 is a reference point determined in advance, and 40 is a virtual cylinder defined around the reference point 45. 6A shows a plan view of the virtual cylinder 40 as viewed from above, and FIG. 6B shows a perspective view. 7A, 7B, and 7C show manifolds 40a, 40b, and 40c that are in phase with the virtual cylinder 40 shown in FIG. 6, respectively. In the following, description will be made using an example of a virtual cylinder. However, in the case of manifolds 40a, 40b and 40c as shown in FIG. 7, the processing of the three-dimensional mesh modeling step (step S16) is similarly applied. be able to.
[0047]
Next, all surface points 28 on the surface of the object 20 are projected (mapped) onto the virtual cylinder 40. As shown in FIG. 4, by projecting from each surface point 28 having the three-dimensional coordinate value recorded in the surface point recording unit 11 onto a virtual solid formed in a virtual three-dimensional space, for example, a virtual cylinder 40. A three-dimensional projection vector for each obtained three-dimensional projection point is obtained (three-dimensional projection point creation step, step S34). Here, for the projection, for example, a perspective projection method or an orthogonal projection method can be used.
[0048]
8 and 9 are diagrams for explaining the projection of the surface point 28 and the like onto the virtual cylinder 40. FIG. As shown in FIG. 8A, first, a cutting plane (or circle) 42 that is perpendicular to the center line 41 of the virtual cylinder 40 and passes through one surface point 28 on the object 20 is assumed. Next, as shown in FIG. 8B, the virtual cylinder 40 is cut into circles by a cutting plane (or circle) 42. As shown in FIG. 9A, a line L1 connecting the center (reference point) 45 and the surface point 28 of the circle 42 cut into a circle is defined. As projection points (three-dimensional projection points), two points of points 44 a and 44 b are obtained on the circumference of the circle 42. Therefore, as shown in FIG. 9B, a vector (pixel vector) G from the pixel A corresponding to the surface point 28 toward the surface point 28 and a vector (from the surface point 28 toward a projection point 44a on the circle 42) ( A surface point vector Ma and a vector (surface point vector) Mb from the surface point 28 to another projection point 44b on the circle 42 are assumed. The angle θa formed by the vector G and the vector Ma and the angle θb formed by the vector G and the vector Mb are compared and projected to the closer angle. For example, in the case of FIG. 9B, since θa <θb, the projection is performed on the upper portion, that is, the projection point 44a. The vector Ma used for this projection is called a projection vector (three-dimensional projection vector). A panorama such as the distance image 30 can be created by performing the above operation on all the surface points 28 and the like.
[0049]
The projected point 44a etc. on the virtual cylinder 40 has the value from the point to the object 20 as a value. Let V be the set of such points. As shown in FIG. 4, for each 3D projection point 44a etc., the 3D projection vector Ma etc. to each 3D projection point 44a etc. obtained in the 3D projection point creation step (step S34) The attribute value indicating the three-dimensional distance value between the three-dimensional projected point 44a and the like and the corresponding surface point 28 is recorded in the three-dimensional projected point recording unit 12 (three-dimensional projected point recording step, step S36). That is, the set V is recorded in the three-dimensional projection point recording unit 12.
[0050]
Next, one developed plane is obtained by cutting the virtual cylinder 40 with a certain line. As shown in FIG. 4, the three-dimensional projection vector Ma and the like recorded for each three-dimensional projection point 44a and the like recorded in the three-dimensional projection point recording unit 12 are converted into a virtual plane developed by cutting the virtual solid 40. As a two-dimensional conversion vector to a two-dimensional conversion point (two-dimensional conversion point creation step, step S38). FIG. 10 is a view for explaining the development of the virtual cylinder 40. As shown in FIG. 10A, when the virtual cylinder 40 is cut along a certain line L2, it can be developed into a virtual plane P as shown in FIG. 10B. As shown in FIG. 10B, the point 44a (2) on the virtual plane P is a two-dimensional conversion point obtained by converting the three-dimensional projection point 44a into a two-dimensional space.
[0051]
As shown in FIG. 4, the two-dimensional conversion vector to each two-dimensional conversion point 44a (2) obtained in the two-dimensional conversion point creation step (step S38) is converted into each two-dimensional conversion point 44a (2) etc. Each attribute value recorded in the three-dimensional projection point recording unit 12 is recorded in the two-dimensional conversion point recording unit 13 (two-dimensional conversion point recording step, step S40).
[0052]
Next, as shown in FIG. 4, a rectangular pixel of a predetermined size is defined on the virtual plane P, and a new center point is defined at the center of each pixel, and its coordinate value is obtained (pixel center point creation) Step, step S42). Let Vc be the set of center points. FIG. 11 shows the virtual plane P. As shown in FIG. 11A, the virtual plane P is a rectangular pixel P. 11 , P 15 Etc. are defined. The two-dimensional conversion point 44a (2) is a pixel P 15 The other two-dimensional conversion points 46 (2), 47 (2), 48 (2) and the like are included in the surrounding pixels. As shown in FIG. 11B, the above-mentioned center point is defined on the virtual plane P. For example, pixel P 11 The center point of C is C 11 , Pixel P 15 The center point of C is C 15 And so on. The element of the set Vc is C 11 , C 15 Etc.
[0053]
Here, the distance value to the object 20 which each point of the set Vc has is calculated in the following procedure. First, each point C of the set Vc 15 For example, several points of V having the closest Euclidean distance defined in the virtual plane P are found. For example, two-dimensional conversion points 44a (2), 46 (2), 47 (2), 48 (2), etc. can be found. Using the distance values (attribute values) of these several points, the distance value of Vc is obtained by simple linear interpolation. Specifically, as shown in FIG. 4, each pixel P obtained in the pixel center point creation step (step S42). 15 Center point C 15 Within a range of a predetermined two-dimensional distance (Euclidean distance) value based on a two-dimensional coordinate value such as a two-dimensional conversion vector such as a two-dimensional conversion point 44a (2) recorded in the two-dimensional conversion point recording unit 13. A predetermined number of two-dimensional conversion points 44a (2) and the like are obtained. For the predetermined number of two-dimensional conversion points 44a (2), etc., the attribute values (three-dimensional distance values between the surface points 28, etc. and the three-dimensional projection points 44a, etc.) recorded in the two-dimensional conversion point recording unit 13 are used. Based on each pixel P 15 Center point C 15 The interpolated interpolation distance value is obtained (interpolation distance value creating step, step S44). Here, when obtaining the interpolation distance value, for example, linear interpolation or spline interpolation can be used.
[0054]
As shown in FIG. 4, each pixel P obtained in the pixel center point creation step (step S42). 15 Center point C 15 The two-dimensional coordinate values such as the pixel P obtained in the interpolation distance value creating step (step S44). 15 Center point C 15 Are recorded in the pixel center point recording unit 14 together with the interpolation distance value such as (pixel center point recording step, step S46).
[0055]
Next, as shown in FIG. 15 The 3D model is actually triangulated by connecting etc. with triangles. Since the above-described Vc has regularity, the triangulation is simply performed at the upper left, upper, left, right, lower, lower right pixels P as shown in FIG. 15 Center point C 15 It can be achieved by connecting with the above. The right end point and the left end point of the virtual plane P are similarly connected. The number of grids on the virtual plane P is also increased in accordance with the resolution of the distance image 30 or the like.
[0056]
Next, the virtual plane P is returned to the virtual cylinder 40. A 3D model having a regular mesh can be created by back-projecting the newly created distance value Vc onto the object 20. Specifically, as shown in FIG. 4, each pixel P recorded in the pixel center recording unit 14. 15 Center point C 15 Are converted back to the three-dimensional coordinate values on the virtual cylinder 40 to convert each pixel P 15 Center point C 15 Are obtained (pixel center three-dimensional inverse transformation point creation step, step S48). Each pixel P obtained in the pixel center three-dimensional inverse transformation point creation step (step S48) 15 Center point C 15 For each pixel P recorded in the pixel center point recording unit 14. 15 Center point C 15 Are recorded in the pixel center three-dimensional inverse transform point recording unit 15 together with the interpolation distance value such as (pixel center three-dimensional inverse transform point recording step, step S50). Each pixel P recorded in the pixel center three-dimensional inverse transformation point recording unit 15 15 Center point C 15 Each pixel P obtained by back-projecting the interpolation distance value such as in the virtual three-dimensional space 15 Center point C 15 The three-dimensional coordinate value of each surface point 28 etc. corresponding to etc. is obtained (pixel center corresponding surface point creation step, step S52). Each pixel P obtained in the pixel center corresponding surface point creation step (step 52) 15 Center point C 15 Are recorded in the pixel center corresponding surface point recording unit 16 (pixel center corresponding surface point recording step, step S54).
[0057]
As described above, the three-dimensional modeling program of the present invention has not only a feature related to “real time property” and “regularity” but also a feature that enables progressive modeling. have. The three-dimensional modeling program of the present invention has scalability in calculation time. Here, scalability refers to a characteristic that can control a certain variable (here, computational complexity) in modeling by selecting and executing part or all of the algorithm. Therefore, the three-dimensional modeling program of the present invention has a feature that even if the entire algorithm for one frame is cut off without being executed, a model having the optimum resolution at that time can be obtained. A high-resolution 3D mesh can be modeled when the processing capacity of the processor is high, and a low-resolution 3D mesh when it is low. This provides significant advantages for real-time modeling. The three-dimensional modeling program of the present invention can be called progressive modeling in the sense that the resolution increases as the algorithm is repeatedly executed.
[0058]
As described above, according to the first embodiment of the present invention, first, corresponding points such as each distance image 30 recorded in the distance image recording unit 3 in advance by offline processing are determined. Next, the distance image 30 or the like of the object 20 is acquired by the plurality of cameras 25a or the like under the predetermined resolution (N × M) recorded in the initial resolution recording unit 6 and the determined corresponding points by online processing. The acquired time (t) is recorded in the time recording unit 5 and a predetermined resolution (N × M) is recorded in the resolution recording unit 6. The acquired distance images 30 and the like are recorded in the distance image recording unit. Based on the distance images 30 and the like recorded in the distance image recording unit 3 under the resolution recorded in the resolution recording unit 6, a three-dimensional mesh model of the object 20 is created.
[0059]
In creating a three-dimensional mesh model, first, pixel values of a plurality of distance images 30 and the like are projected back onto the 3D space to define surface points on the object 20. A virtual cylinder 40 is defined in the 3D space, and all surface points on the object 20 are projected onto the virtual cylinder 40 to obtain a three-dimensional projection point. The three-dimensional projection point has a distance value between the surface point 28 and the projection point. A virtual cylinder is developed on a virtual plane P in a two-dimensional space, and a two-dimensional conversion point obtained by converting a three-dimensional projection point into a two-dimensional space is obtained. This two-dimensional conversion point has a distance value of a three-dimensional projection point. A rectangular pixel of a predetermined size is defined on the virtual plane P, and a center point is newly defined at the center of each pixel. The distance value of the center point is obtained by interpolating the distance values of the surrounding two-dimensional conversion points. Triangulate the 3D model by connecting each center point with a triangle. A 3D mesh model having a regular mesh can be created by returning the virtual plane P to the virtual cylinder 40 and back-projecting the distance value of the center point onto the object 20.
[0060]
Subsequently, when the predetermined time (δT) has not elapsed since the time (t) recorded in the time recording unit 5, the resolution recorded in the resolution recording unit 6 is increased by a predetermined rate, for example, twice. Repeat from the 3D mesh modeling step. When the predetermined time has elapsed from the time (t) recorded in the time recording unit and the time becomes t + δT and the predetermined end time has not been exceeded, the distance image acquisition step is repeatedly executed. As described above, a 3D mesh having regularity not only for a static object but also for a dynamic object can be modeled in real time, and a three-dimensional modeling program having progressive characteristics can be provided. By combining this progressive property, it is possible to provide a three-dimensional modeling program or the like that can abort the algorithm halfway and model a 3D mesh having the best resolution at the time of termination.
[0061]
Embodiment 2. FIG.
In the first embodiment, the mapping method from the surface point 28 or the like to the virtual cylinder 40 is shown in the three-dimensional projection point creation step (step S34). In the second embodiment, another mapping method will be described.
[0062]
When the first repetition at each time t, that is, when the resolution of the distance image 30 or the like is N × M, the same processing as the three-dimensional projection point creation step (step S34) is performed. However, the three-dimensional projection point 44a or the like has not a distance value to the object 20 but a three-dimensional coordinate (x, y, z) of the surface point 28 or the like on the object 20 as a value. Specifically, in the three-dimensional projection point recording step (step S36), when the resolution recorded in the resolution recording unit 6 is equal to the predetermined resolution recorded in the initial resolution recording unit 4, a three-dimensional projection point creating step (step S34). The three-dimensional projection vector Ma to the respective three-dimensional projection points 44a and the like obtained in (3) is obtained for each three-dimensional projection point 44a and the like together with the attribute value indicating the three-dimensional coordinate value of the surface point 28 and the like. Recorded in the recording unit 12.
[0063]
When the second repetition, that is, when the resolution is 2N × 2M or more, the projection is performed according to the following procedure. First, a three-dimensional projection vector of a new pixel that can be obtained by increasing the resolution from N × M to 2N × 2M is obtained. FIG. 12 is a diagram for explaining a mapping method according to Embodiment 2 of the present invention. FIG. 12A shows a pixel P on the virtual plane P when the resolution is N × M. 11 , P 12 Etc. (black circles), and FIG. 12B shows a pixel P on the virtual plane P when the resolution is 2N × 2M. 11 , P 12 , P 11-2 , P 11-3 , P 11-4 Etc. Pixel P indicated by a white circle in FIG. 11-2 , P 11-3 , P 11-4 Etc. are new pixels. N × M pixel P 11 , P 12 Etc. (black circle) has already been obtained, such as the three-dimensional projection vector Ma, and the pixel P newly added by interpolating or extrapolating the three-dimensional projection vector 11-2 , P 11-3 , P 11-4 A three-dimensional projection vector such as is obtained. Specifically, when the resolution recorded in the resolution recording unit 6 is larger than the predetermined resolution (N × M) recorded in the initial resolution recording unit 4 in the three-dimensional projection point creation step (step S34), the surface point recording unit For the previous surface point 28 having the three-dimensional coordinate value already recorded in 11, the previous three-dimensional projection point 44a corresponding to the previous surface point 28, etc. is already recorded in the three-dimensional projection point recording unit 12. A conventional three-dimensional projection vector Ma or the like is used. On the other hand, for a new surface point having a three-dimensional coordinate value newly recorded in the surface point recording unit 11 due to an increase in resolution, the previous three-dimensional projection corresponding to the previous surface point 28 in the vicinity of the new surface point, etc. A new three-dimensional projection vector can be obtained based on an attribute value (three-dimensional distance value) such as the vector Ma. After that, the intersection between the new three-dimensional projection vector and the virtual cylinder 40 is determined and mapped. The three-dimensional projection point has a three-dimensional coordinate (x, y, z) of a point on the corresponding object 20 as a value.
[0064]
As described above, according to the second embodiment of the present invention, at the first repetition at each time t, the three-dimensional projection point 44a and the like are not distance values to the object 20, but the surface on the object 20. Except for the point having the three-dimensional coordinates (x, y, z) such as the point 28 as a value, the same processing as the three-dimensional projected point creation step (step S34) is performed. In the second and subsequent iterations, the three-dimensional projection vector of the new pixel can be obtained by interpolating or extrapolating the three-dimensional projection vector already obtained in the previous iteration. As a result, a new three-dimensional vector can be efficiently obtained when the resolution increases due to repetition.
[0065]
Embodiment 3 FIG.
In the first and second embodiments, a virtual cylinder is used as an object to be projected. In the third embodiment, the case of a virtual cone will be described. The algorithm of the three-dimensional modeling program of the present invention can be applied as it is to the case of a virtual cone (or a manifold having the same shape as the cone) as well as the virtual cylinder 40. In the following, the three-dimensional projection point creation step (step S34) in the flowchart shown in FIG. 4 will be described by replacing the virtual cylinder 40 with a virtual cone. Since other steps are the same, description thereof is omitted.
[0066]
FIG. 13 is a diagram for explaining mapping using a virtual cone in Embodiment 3 of the present invention. As shown in FIG. 13A, when the virtual cone 50 is cut along a certain line L2 and developed, a virtual plane P2 shown in FIG. 13B can be obtained. First, a spatial position information unit 17 in which the spatial position information between the camera 25a and the object 20 that acquired the distance image 30 including the pixels corresponding to the surface point 28 and the like and the object 20 is recorded is further provided. FIG. 14 shows a flowchart of the three-dimensional projection point creation step in the third embodiment of the present invention. As shown in FIG. 14, the center line of the virtual cone 50 (corresponding to the center line 41 in the case of the virtual cylinder 40) is created in the virtual space (virtual solid creation step, step S60). A cutting plane (virtual cylinder) that cuts the virtual cone 50 that is perpendicular to the created center line and passes through the surface point 28 and the like recorded in the surface point recording unit 11 and whose circumference coincides with the circumference of the virtual cone 50 (Corresponding to the cutting plane 42 in the case of 40) is created (cutting plane creation step, step S62). The coordinate value of the center point of the created cutting plane is obtained (center point coordinate value creating step, step S64), and the obtained coordinate value of the center point and the coordinate value of the surface point 28 etc. recorded in the surface point recording unit 11 are obtained. 2 points (corresponding to 44a and 44b in the case of the virtual cylinder 40) where the line segment connecting the two intersects the periphery of the cutting plane is obtained (two-point creation step, step S66). Based on the spatial position information recorded in the spatial position information unit 17, a virtual plane corresponding to the distance image 30 including pixels corresponding to the surface points 28 recorded in the surface point recording unit 11 is created in the virtual space. (Virtual plane creation step. Step S68). The coordinate value of the pixel corresponding to the surface point 28 etc. in the created virtual plane is obtained (pixel coordinate value creation step, step S70). The pixel vector (corresponding to the vector G in the case of the virtual cylinder 40) heading from the obtained pixel coordinate value to the coordinate value of the center point, and the coordinate value of the surface point 28 etc. recorded in the surface point recording unit 11 Two surface point vectors to two points (corresponding to vectors Ma and Mb in the case of the virtual cylinder 40) are obtained (vector creation step, step S72). The angle between the pixel vector and each of the two surface point vectors (corresponding to the angles θa and θb in the case of the virtual cylinder 40) is compared (step S74), and the surface point vector corresponding to the small angle is three-dimensionally projected. A vector is set (steps S76 and S78).
[0067]
As described above, according to the third embodiment of the present invention, the algorithm of the three-dimensional modeling program of the present invention is similar to the virtual cylinder 40 in the case of a virtual cone (or a manifold that is in phase with the cone). Can be applied as is.
[0068]
Embodiment 4 FIG.
In the above-described embodiment, the case where a virtual cylinder or a virtual cone is used as a target to be projected has been described. The algorithm of the three-dimensional modeling program of the present invention can be similarly applied to a virtual sphere (or a manifold that is in phase with the sphere) as well as the virtual cylinder 40 or the virtual cone by changing a part thereof. In the following, the three-dimensional projection point creation step (step S34) and the two-dimensional conversion point creation step (step S38) in the flowchart shown in FIG. 4 will be described by replacing the virtual cylinder 40 with a virtual sphere. Since other steps are the same, description thereof is omitted.
[0069]
FIG. 15 is a diagram for explaining mapping using a virtual sphere according to Embodiment 4 of the present invention. As shown in FIG. 15A, in the three-dimensional projection point creation step (step S34), first, the coordinate value of the center point 65 of the phantom sphere 60 is obtained (center point coordinate value creation step), and then the center point 65. A vector in a direction from the coordinate value of the center point 65 to the surface point 28 etc. on a line segment connecting the coordinate value of the surface point 28 and the coordinate value of the surface point 28 recorded in the surface point recording unit 11 is a three-dimensional projection vector. To do. As shown in FIG. 15B, in the two-dimensional transformation point creation step (step S38), the virtual plane P3 can be obtained by performing the same method as mapping the globe to the world map.
[0070]
As described above, according to the fourth embodiment of the present invention, the algorithm of the three-dimensional modeling program of the present invention is used in the case of a virtual sphere (or a manifold that is in phase with the sphere) as with the virtual cylinder 40. This can also be applied by making a vector in the direction from the center point 65 of the phantom sphere 60 to the surface point 28 etc. a three-dimensional projection vector.
[0071]
Embodiment 5 FIG.
The algorithm of the three-dimensional modeling program in each embodiment of the present invention described above can be executed by a system in which a plurality of computers (personal computers: PCs) are arranged in a tree shape instead of a single computer. .
[0072]
FIG. 16 shows an environment (system) in which a three-dimensional modeling control program for controlling processing for creating a three-dimensional model of an object according to Embodiment 5 of the present invention is executed. In FIG. 16, reference numerals 70a to 70m are m cameras, 80a to 80m are distance image recording units corresponding to the cameras 70a to 70m, and 5a to 5n are each a camera 70a. A plurality of computers corresponding to the distance image recording units 80a to 80m, 5p is an integrated computer that integrates the processing results of the plurality of computers 5a to 5n, and 5q is a computer on which the three-dimensional modeling control program itself is executed. The cameras 70a to 70m, the distance image recording units 80a to 80m, the computers 5a to 5n, the integrated computer 5p, and the computer 5q are connected by a bus 75 and constitute layer 3. In layer 2, integrated recording units 90a to 90 that record the results of collecting the distance image recording units 80a to 80m two by two. m / 2 The layer 1 has a final result recording unit 100 that records a final result.
[0073]
Below, which computer is made to perform each step in the flowchart shown by FIG. 3 and FIG. 4 is demonstrated. First, the computer 5q is caused to determine the corresponding point of each distance image recorded in the distance image recording units 80a to 80m (corresponding point determination step, step S10). In layer 3, each of the plurality of computers 5a to 5n is in charge of the distance image acquisition step (step S12) to the three-dimensional projection point recording step (step S36). Each PC handles only one distance image. In layer 2, the integrated computer 5p is in charge of the process from the two-dimensional conversion point creation step (step S38) to the pixel center corresponding surface point recording step (step S54). That is, one integrated computer 5p handles a part of the virtual plane. Next, the computer 5q is caused to perform the repeated determination process of steps S18, S20 and S22.
[0074]
As described above, according to the fifth embodiment of the present invention, the algorithm of the three-dimensional modeling program of the present invention arranges a plurality of PCs in a tree shape and assigns each process to a plurality of PCs. Thus, it can be executed efficiently in a short time.
[0075]
Embodiment 6 FIG.
In the sixth embodiment, a three-dimensional modeling data transmission program that transmits three-dimensional modeling data will be described.
[0076]
As shown in FIG. 16, the final result recording unit 100 records pixel values of rectangular pixels as shown in FIG. 11B described in the above embodiment (pixel center point recording step). Step S54). Therefore, when the 3D modeling data is transmitted to the client recording units 104, 106, 108, 110, etc. via the network 102, the 3D mesh data is not directly transmitted but is recorded in the final result recording unit 100. Transmit the pixel value of a rectangular pixel. On the client side, the above-described triangulation is performed on the received data, and decoding and rendering are possible by back-projecting it into the 3D space. As described above, when 3D mesh data is transmitted, it is not necessary to send information representing the connection of triangles in addition to the vertex coordinates.
[0077]
As described above, according to the sixth embodiment of the present invention, when three-dimensional modeling data is transmitted to the client side via the network 102, the pixel values of the rectangular pixels recorded in the final result recording unit 100 are determined. By transmitting, it is possible to eliminate the need to send information representing the connection of the triangle in addition to the vertex coordinates. As a result, it is possible to provide a 3D modeling data transmission program that does not require a long time for transmission of 3D mesh data.
[0078]
Embodiment 7 FIG.
FIG. 17 is a block diagram showing an internal circuit 120 of the computer 1 or the like that executes the computer program of the present invention for realizing the above-described embodiments. In FIG. 17, the above-described computer program of the present invention is recorded on a recording medium such as a ROM 122, a disk 125a, or a CD-ROM 125n. This computer program is loaded from the recording medium such as the ROM 122, the disk 125a, or the CD-ROM 125n to the RAM 123 via the computer roller 124 and the bus 126. The recording medium such as the disk 125a can correspond to the recording device 10 or the like. The input operation unit 128 is an input device such as a mouse or a numeric keypad for inputting to the computer 1 or the like. The input control unit 127 is connected to the input operation unit 128 and performs input control or the like. The external interface (I / F) unit 129 has an interface function when the computer 5q or the like communicates via the network 102.
[0079]
The object of the present invention can be achieved by the CPU 121 executing the above-described computer program of the present invention in the RAM 123. The computer program can be supplied to the computer CPU 121 in the form of a removable recording medium such as a CD-ROM 125n as described above, and a recording medium such as a CD-ROM 125n on which the computer program is recorded is also the present invention. Will be configured. As a recording medium on which the computer program is recorded, for example, a DVD, an optical disk, a memory card, a memory stick, an MO, an FD, or the like can be used in addition to the recording medium described above.
[0080]
【The invention's effect】
As described above, according to the three-dimensional modeling program of the present invention, input is performed while increasing the resolution of the distance image 30 or the like in stages, and a 3D mesh is configured based on the input distance image 30 or the like. Yes. This makes it possible to realize “progressiveness” in which the resolution of the 3D mesh increases as the algorithm is executed for a longer time. In the three-dimensional modeling program of the present invention, a regular 3D mesh can be directly generated without going through the double procedure of converting a modeled irregular regular 3D mesh into regular. As described above, a 3D mesh having regularity not only for a static object but also for a dynamic object can be modeled in real time, and a three-dimensional modeling program having progressive characteristics can be provided.
[0081]
In the three-dimensional modeling program or the like of the present invention, the algorithm can be aborted halfway. Therefore, it is possible to provide a 3D modeling program or the like that can output a 3D mesh having the best resolution at the time of termination.
[0082]
In the 3D modeling transmission program of the present invention, modeling and transmission in real time enables a remote client to view the 3D mesh from any angle and in real time. Since the data sent to the client side is not a 3D mesh itself but data similar to an image called a pixel value of a rectangular pixel, a compression algorithm for still images or moving images can be directly applied. This not only leads to high compression, but also has an advantage that various scalability such as SNR scalability and resolution scalability can be easily realized. As described above, it is possible to provide a 3D modeling data transmission program that does not require a long time for transmission of 3D mesh data.
[Brief description of the drawings]
FIG. 1 is a diagram showing an environment in which a three-dimensional modeling program or the like according to Embodiment 1 of the present invention operates.
FIG. 2 is a diagram illustrating a distance image.
FIG. 3 is a flowchart showing functions of the three-dimensional modeling program of the present invention.
FIG. 4 is a flowchart showing functions of a three-dimensional mesh modeling step in the three-dimensional modeling program of the present invention.
FIG. 5 is a diagram for explaining surface points;
FIG. 6 is a diagram for explaining a virtual cylinder.
7 is a diagram showing manifolds 40a, 40b, and 40c that are in phase with the virtual cylinder 40. FIG.
FIG. 8 is a diagram for explaining projection of a surface point 28 or the like onto a virtual cylinder 40;
FIG. 9 is a diagram for explaining the projection of a surface point 28 or the like onto a virtual cylinder 40;
10 is a view for explaining the development of the virtual cylinder 40. FIG.
11 is a diagram showing a virtual plane P. FIG.
FIG. 12 is a diagram for explaining a mapping method according to Embodiment 2 of the present invention;
FIG. 13 is a diagram illustrating mapping using a virtual cone in Embodiment 3 of the present invention.
FIG. 14 is a flowchart showing a three-dimensional projection point creation step in the third embodiment of the present invention.
FIG. 15 is a diagram illustrating mapping using a virtual sphere according to the fourth embodiment of the present invention.
FIG. 16 is a diagram showing an environment (system) in which a three-dimensional modeling control program for controlling processing for creating a three-dimensional model of an object according to Embodiment 5 of the present invention is executed.
FIG. 17 is a block diagram showing an internal circuit 120 of the computer 1 or the like that executes the computer program of the present invention.
FIG. 18 is a diagram illustrating a 3D mesh that approximates the surface of an object with vertices and triangles.
FIG. 19 is a diagram illustrating a regular mesh and a non-regular mesh.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 Computer, 3,80a, 80b, 80c, 80d, 80m-1,80m Distance image recording part, 4 Initial resolution recording part, 5 Time recording part, 6 Initial resolution recording part, 10 Recording apparatus, 11 Surface point recording part, 12 three-dimensional projection point recording unit, 13 two-dimensional transformation point recording unit, 14 pixel center point recording unit, 15 pixel center three-dimensional inverse transformation point recording unit, 16 pixel center corresponding surface point recording unit, 20 objects, 25a, 25b, 25c, 25d, 25e, 25f, 70a, 70b, 70c, 70d, 70e, 70f Camera (imaging device), 28 Surface points, 30, 31, 32, 33, 34, 35 Distance image, 40 Virtual cylinder, 40a, 40b , 40c A manifold that is in phase with the virtual cylinder, 41 center line, 42 cutting plane, 44a, 44b three-dimensional projection point, 44a (2), 46 (2), 47 (2), 8 (2) 2D conversion point, 45 reference point, 50 virtual cone, 60 virtual sphere, 65 center point, 75, 126 bus, 90a, 90b, 90m / 2 integrated recording unit, 100 final result recording unit, 102 network, 104, 106, 108, 110 Recording unit, 120 Internal circuit, 121 CPU, 122 ROM, 123 RAM, 124 Computer roller, 125a disk, 125n CD-ROM, 127 Input control unit, 128 Input operation unit, 129 External I / F Department.

Claims (13)

物体の周囲に配置された複数の撮像装置を用いて該物体の3次元モデルを作成する3次元モデリング・プログラムであって、該複数の撮像装置により各々取得させた、該物体までの距離を画素値として有する距離画像を各撮像装置に応じて記録した距離画像記録部と、所定の解像度を記録した初期解像度記録部とを用いるものであり、コンピュータに、
前記距離画像記録部に記録させた各距離画像の対応点を決定させる対応点決定ステップ、
前記物体の距離画像を前記初期解像度記録部に記録された所定の解像度および前記対応点決定ステップで決定された対応点の下で前記複数の撮像装置により各々取得させると共に、取得させた時刻を時刻記録部に記録させ、該所定の解像度を解像度記録部に記録させる距離画像取得ステップ、
前記距離画像取得ステップで取得させた各距離画像を前記距離画像記録部に記録させる距離画像記録ステップ、
前記解像度記録部に記録された解像度の下で前記距離画像記録部に記録された各距離画像に基づき、前記物体の3次元メッシュ・モデルを作成させる3次元メッシュ・モデリング・ステップ、
前記時刻記録部に記録された時刻から所定の時間が経過していない場合、前記解像度記録部に記録された解像度を所定の割合で増加させて前記3次元メッシュ・モデリング・ステップから繰返して実行させ、前記時刻記録部に記録された時刻から所定の時間が経過し且つ所定の終了時刻を越えていない場合、前記距離画像取得ステップから繰返して実行させるステップ
を実行させるための3次元モデリング・プログラム。
A three-dimensional modeling program for creating a three-dimensional model of an object using a plurality of imaging devices arranged around the object, the distance to the object obtained by each of the plurality of imaging devices being a pixel A distance image recording unit that records a distance image as a value according to each imaging device and an initial resolution recording unit that records a predetermined resolution are used.
A corresponding point determination step for determining a corresponding point of each distance image recorded in the distance image recording unit;
The distance image of the object is acquired by each of the plurality of imaging devices under a predetermined resolution recorded in the initial resolution recording unit and the corresponding point determined in the corresponding point determination step, and the acquired time is a time A distance image acquisition step of recording in the recording unit and recording the predetermined resolution in the resolution recording unit;
A distance image recording step of causing the distance image recording unit to record each distance image acquired in the distance image acquisition step;
A three-dimensional mesh modeling step of creating a three-dimensional mesh model of the object based on each distance image recorded in the distance image recording unit under the resolution recorded in the resolution recording unit;
If a predetermined time has not elapsed since the time recorded in the time recording unit, the resolution recorded in the resolution recording unit is increased at a predetermined rate and repeatedly executed from the three-dimensional mesh modeling step. A three-dimensional modeling program for executing a step of repeatedly executing from the distance image acquiring step when a predetermined time has elapsed from a time recorded in the time recording unit and a predetermined end time has not been exceeded.
請求項1記載の3次元モデリング・プログラムにおいて、前記3次元メッシュ・モデリング・ステップは、
前記距離画像記録部に記録された各距離画像の各画素値を仮想3次元空間内で逆射影することにより得られる各表面点の3次元座標値を求める表面点作成ステップと、
前記表面点作成ステップで求められた各表面点の3次元座標値を表面点記録部に記録する表面点記録ステップと、
前記表面点記録部に記録された3次元座標値を有する各表面点から仮想3次元空間に形成された仮想立体上へ射影することにより得られる各3次元射影点への3次元射影ベクトルを求める3次元射影点作成ステップと、
前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点と対応する表面点との間の3次元距離値を示す属性値と共に3次元射影点記録部に記録する3次元射影点記録ステップと、
前記3次元射影点記録部に記録された各3次元射影点毎の3次元射影ベクトルを前記仮想立体を切断して展開された仮想平面上へ変換して、2次元変換点への2次元変換ベクトルとして求める2次元変換点作成ステップと、
前記2次元変換点作成ステップで求められた各2次元変換点への2次元変換ベクトルを、各2次元変換点毎に前記3次元射影点記録部に記録された前記属性値と共に2次元変換点記録部に記録する2次元変換点記録ステップと、
前記仮想平面上に所定のサイズの画素を設定し、各画素の中心点の2次元座標値を求める画素中心点作成ステップと、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値と前記2次元変換点記録部に記録された2次元変換点の2次元変換ベクトルとに基づいて、所定の2次元距離値の範囲内における所定の数の2次元変換点を求め、該所定の数の2次元変換点について前記2次元変換点記録部に記録された前記属性値に基づき、各画素の中心点の補間距離値を求める補間距離値作成ステップと、前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値を、前記補間距離値作成ステップで求められた各画素の中心点の補間距離値と共に画素中心点記録部に記録する画素中心点記録ステップと、
前記画素中心記録部に記録された各画素の中心点の2次元座標値を、前記仮想立体上の3次元座標値へ逆変換して各画素の中心点の3次元逆変換点を求める画素中心3次元逆変換点作成ステップと、
前記画素中心3次元逆変換点作成ステップで求められた各画素の中心点の3次元逆変換点の3次元座標値を、前記画素中心点記録部に記録された各画素の中心点の補間距離値と共に画素中心3次元逆変換点記録部に記録する画素中心3次元逆変換点記録ステップと、
前記画素中心3次元逆変換点記録部に記録された各画素の中心点の補間距離値を仮想3次元空間内で逆射影することにより得られる各画素の中心点に対応する各表面点の3次元座標値を求める画素中心対応表面点作成ステップと、
前記画素中心対応表面点作成ステップで求められた各画素の中心点に対応する各表面点の3次元座標値を画素中心対応表面点記録部に記録する画素中心対応表面点記録ステップとを備えたことを特徴とする3次元モデリング・プログラム。
The three-dimensional modeling program according to claim 1, wherein the three-dimensional mesh modeling step includes:
A surface point creating step for obtaining a three-dimensional coordinate value of each surface point obtained by back-projecting each pixel value of each distance image recorded in the distance image recording unit in a virtual three-dimensional space;
A surface point recording step for recording a three-dimensional coordinate value of each surface point obtained in the surface point creation step in a surface point recording unit;
A three-dimensional projection vector to each three-dimensional projection point obtained by projecting from each surface point having a three-dimensional coordinate value recorded in the surface point recording unit onto a virtual solid formed in a virtual three-dimensional space is obtained. A three-dimensional projection point creation step;
The three-dimensional projection vector for each three-dimensional projection point obtained in the three-dimensional projection point creation step is calculated for each three-dimensional projection point by a three-dimensional distance value between the three-dimensional projection point and the corresponding surface point. A three-dimensional projection point recording step for recording in the three-dimensional projection point recording unit together with an attribute value indicating
Two-dimensional conversion to a two-dimensional conversion point by converting a three-dimensional projection vector for each three-dimensional projection point recorded in the three-dimensional projection point recording unit onto a virtual plane developed by cutting the virtual solid A step of creating a two-dimensional transformation point obtained as a vector;
The two-dimensional conversion point to each two-dimensional conversion point obtained in the two-dimensional conversion point creation step is converted into a two-dimensional conversion point together with the attribute value recorded in the three-dimensional projection point recording unit for each two-dimensional conversion point. A two-dimensional conversion point recording step for recording in the recording unit;
A pixel center point creating step of setting a pixel of a predetermined size on the virtual plane and obtaining a two-dimensional coordinate value of the center point of each pixel;
Based on the two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step and the two-dimensional conversion vector of the two-dimensional conversion point recorded in the two-dimensional conversion point recording unit, a predetermined two-dimensional A predetermined number of two-dimensional conversion points within a range of distance values are obtained, and the center point of each pixel is determined based on the attribute value recorded in the two-dimensional conversion point recording unit for the predetermined number of two-dimensional conversion points. An interpolation distance value creation step for obtaining an interpolation distance value, and a two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step is used as the center point of each pixel obtained in the interpolation distance value creation step. A pixel center point recording step for recording in the pixel center point recording unit together with the interpolation distance value;
Pixel center for obtaining a three-dimensional inverse transformation point of the center point of each pixel by inversely transforming the two-dimensional coordinate value of the center point of each pixel recorded in the pixel center recording unit into a three-dimensional coordinate value on the virtual solid A three-dimensional inverse transformation point creation step;
The three-dimensional coordinate value of the three-dimensional inverse transform point of the center point of each pixel obtained in the pixel center three-dimensional inverse transform point creation step is used as the interpolation distance of the center point of each pixel recorded in the pixel center point recording unit. A pixel center 3D inverse transform point recording step for recording in the pixel center 3D inverse transform point recording unit together with the value;
3 of each surface point corresponding to the center point of each pixel obtained by back-projecting the interpolation distance value of the center point of each pixel recorded in the pixel center three-dimensional inverse transformation point recording unit in the virtual three-dimensional space. A step of creating a surface point corresponding to a pixel center for obtaining a dimensional coordinate value;
A pixel center corresponding surface point recording step for recording a three-dimensional coordinate value of each surface point corresponding to the center point of each pixel obtained in the pixel center corresponding surface point creating step in a pixel center corresponding surface point recording unit; A three-dimensional modeling program characterized by this.
請求項2記載の3次元モデリング・プログラムにおいて、前記3次元射影点記録ステップは、前記解像度記録部に記録された解像度が前記初期解像度記録部に記録された所定の解像度と等しい場合、前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点に対応する表面点の3次元座標値を示す属性値と共に3次元射影点記録部に記録し、
前記3次元射影点作成ステップは、前記解像度記録部に記録された解像度が前記初期解像度記録部に記録された所定の解像度より大きい場合、
前記表面点記録部に既に記録された3次元座標値を有する従前の表面点に関しては、該従前の表面点に対応する従前の3次元射影点毎に既に前記3次元射影点記録部に記録された従前の3次元射影ベクトルを用い、解像度の増加により新たに前記表面点記録部に記録された3次元座標値を有する新表面点に関しては、新表面点の近傍における従前の表面点に対応する該従前の3次元射影ベクトルの前記属性値に基づいて新たな3次元射影ベクトルを求めることを特徴とする3次元モデリング・プログラム。
3. The three-dimensional modeling program according to claim 2, wherein the three-dimensional projection point recording step is performed when the resolution recorded in the resolution recording unit is equal to a predetermined resolution recorded in the initial resolution recording unit. The 3D projection vector to each 3D projection point obtained in the projection point creation step is set to 3 for each 3D projection point together with an attribute value indicating the 3D coordinate value of the surface point corresponding to the 3D projection point. Recorded in the dimensional projection point recording section,
In the three-dimensional projection point creation step, when the resolution recorded in the resolution recording unit is larger than a predetermined resolution recorded in the initial resolution recording unit,
With respect to the previous surface point having the three-dimensional coordinate value already recorded in the surface point recording unit, the previous three-dimensional projection point corresponding to the previous surface point is already recorded in the three-dimensional projection point recording unit. A new surface point having a three-dimensional coordinate value newly recorded in the surface point recording unit by increasing the resolution using the previous three-dimensional projection vector corresponds to the previous surface point in the vicinity of the new surface point. A three-dimensional modeling program characterized in that a new three-dimensional projection vector is obtained based on the attribute value of the conventional three-dimensional projection vector.
請求項2または3記載の3次元モデリング・プログラムにおいて、前記3次元射影点作成ステップは、前記仮想立体が仮想円筒または仮想円錐の場合、表面点に対応する画素を含む距離画像を取得した撮像装置と物体との間の空間位置情報が記録された空間位置情報部をさらに備え、
仮想円筒または仮想円錐の中心線を仮想空間上で作成する仮想立体作成ステップと、
前記仮想立体作成ステップで作成された中心線に垂直で且つ前記表面点記録部に記録された表面点を通る仮想円筒または仮想円錐を切断する平面であって周囲が該仮想円筒または仮想円錐の周囲と一致する切断平面を作成する切断平面作成ステップと、
前記切断平面作成ステップで作成された切断平面の中心点の座標値を求める中心点座標値作成ステップと、
前記中心点座標値作成ステップで求められた中心点の座標値と前記表面点記録部に記録された前記表面点の座標値とを結ぶ線分が前記切断平面の周囲と交わる2点を求める2点作成ステップと、
前記空間位置情報部に記録された空間位置情報に基づき、前記表面点記録部に記録された前記表面点に対応する画素を含む距離画像に対応する仮想平面を仮想空間上で作成する仮想平面作成ステップと、
前記仮想平面作成ステップで作成された仮想平面における前記表面点に対応する画素の座標値を求める画素座標値作成ステップと、
前記画素座標値作成ステップで求められた画素の座標値から前記中心点座標値作成ステップで求められた中心点の座標値へ向かう画素ベクトルと、前記表面点記録部に記録された前記表面点の座標値から前記2点作成ステップで求められた2点への2つの表面点ベクトルを求めるベクトル作成ステップと、
前記ベクトル作成ステップで求められた画素ベクトルと前記2つの表面点ベクトルの各々との間の角度を比較し、小さい角度に対応する表面点ベクトルを3次元射影ベクトルとするステップとを備えたことを特徴とする3次元モデリング・プログラム。
4. The three-dimensional modeling program according to claim 2, wherein the three-dimensional projection point creation step acquires a distance image including pixels corresponding to surface points when the virtual solid is a virtual cylinder or a virtual cone. A spatial position information section in which the spatial position information between the object and the object is recorded;
A virtual solid creation step of creating a center line of a virtual cylinder or virtual cone in a virtual space;
A plane that cuts the virtual cylinder or virtual cone that is perpendicular to the center line created in the virtual solid creation step and passes through the surface point recorded in the surface point recording unit, and the periphery is the circumference of the virtual cylinder or virtual cone A cutting plane creation step to create a cutting plane that matches
A center point coordinate value creating step for obtaining a coordinate value of the center point of the cutting plane created in the cutting plane creating step;
Find two points where a line segment connecting the coordinate value of the center point obtained in the center point coordinate value creating step and the coordinate value of the surface point recorded in the surface point recording unit intersects the periphery of the cutting plane 2 A point creation step;
Virtual plane creation that creates a virtual plane corresponding to a distance image including a pixel corresponding to the surface point recorded in the surface point recording unit in a virtual space based on the spatial position information recorded in the spatial position information unit Steps,
A pixel coordinate value creating step for obtaining a coordinate value of a pixel corresponding to the surface point in the virtual plane created in the virtual plane creating step;
A pixel vector that goes from the coordinate value of the pixel obtained in the pixel coordinate value creation step to the coordinate value of the center point obtained in the center point coordinate value creation step, and the surface point recorded in the surface point recording unit A vector creation step for obtaining two surface point vectors from the coordinate values to the two points obtained in the two-point creation step;
Comparing the angle between the pixel vector obtained in the vector creation step and each of the two surface point vectors, and setting the surface point vector corresponding to the small angle as a three-dimensional projection vector. Characteristic 3D modeling program.
請求項2または3記載の3次元モデリング・プログラムにおいて、前記3次元射影点作成ステップは、前記仮想立体が仮想球の場合、
仮想球の中心点の座標値を求める中心点座標値作成ステップと、
前記中心点座標値作成ステップで求められた中心点の座標値と前記表面点記録部に記録された前記表面点の座標値とを結ぶ線分上において、該中心点の座標値から該表面点へ向かう方向のベクトルを3次元射影ベクトルとするステップとを備えたことを特徴とする3次元モデリング・プログラム。
The three-dimensional modeling program according to claim 2 or 3, wherein the three-dimensional projection point creating step includes the step of:
A center point coordinate value creation step for obtaining a coordinate value of the center point of the virtual sphere;
On the line segment connecting the coordinate value of the center point obtained in the center point coordinate value creating step and the coordinate value of the surface point recorded in the surface point recording unit, from the coordinate value of the center point to the surface point A three-dimensional modeling program comprising a step of setting a vector in a direction toward the three-dimensional projection vector.
物体の周囲に配置された複数の撮像装置を用いて該物体の3次元モデルを作成する処理を制御する3次元モデリング制御プログラムであって、該複数の撮像装置により各々取得させた、該物体までの距離を画素値として有する距離画像を各撮像装置に応じて記録した距離画像記録部と、所定の解像度を記録した初期解像度記録部とを用いるものであり、各撮像装置を用いて該物体の3次元モデルを作成する各距離画像記録部に対応した複数のコンピュータと、該複数のコンピュータの処理結果を統合する統合コンピュータとを有し、
3次元モデリング制御プログラムを実行するコンピュータに、
前記距離画像記録部に記録させた各距離画像の対応点を決定させる対応点決定ステップを実行させ、
前記複数のコンピュータの各々に、
前記物体の距離画像を前記初期解像度記録部に記録された所定の解像度および前記対応点決定ステップで決定された対応点の下で前記撮像装置により取得させると共に、取得させた時刻を時刻記録部に記録させ、該所定の解像度を解像度記録部に記録させる距離画像取得ステップ、
前記距離画像取得ステップで取得させた距離画像を前記距離画像記録部に記録させる距離画像記録ステップ、
前記距離画像記録部に記録された距離画像の各画素値を仮想3次元空間内で逆射影することにより得られる各表面点の3次元座標値を求める表面点作成ステップ、
前記表面点作成ステップで求められた各表面点の3次元座標値を表面点記録部に記録する表面点記録ステップ、
前記表面点記録部に記録された3次元座標値を有する各表面点から仮想3次元空間に形成された仮想立体上へ射影することにより得られる各3次元射影点への3次元射影ベクトルを求める3次元射影点作成ステップ、
前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点と対応する表面点との間の3次元距離値を示す属性値と共に3次元射影点記録部に記録する3次元射影点記録ステップを実行させ、
前記統合コンピュータに、
前記3次元射影点記録部に記録された各3次元射影点毎の3次元射影ベクトルを前記仮想立体を切断して展開された仮想平面上へ変換して、2次元変換点への2次元変換ベクトルとして求める2次元変換点作成ステップ、
前記2次元変換点作成ステップで求められた各2次元変換点への2次元変換ベクトルを、各2次元変換点毎に前記3次元射影点記録部に記録された前記属性値と共に2次元変換点記録部に記録する2次元変換点記録ステップ、
前記仮想平面上に所定のサイズの画素を設定し、各画素の中心点の2次元座標値を求める画素中心点作成ステップ、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値と前記2次元変換点記録部に記録された2次元変換点の2次元変換ベクトルとに基づいて、所定の2次元距離値の範囲内における所定の数の2次元変換点を求め、該所定の数の2次元変換点について前記2次元変換点記録部に記録された前記属性値に基づき、各画素の中心点の補間距離値を求める補間距離値作成ステップ、前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値を、前記補間距離値作成ステップで求められた各画素の中心点の補間距離値と共に画素中心点記録部に記録する画素中心点記録ステップ、
前記画素中心記録部に記録された各画素の中心点の2次元座標値を、前記仮想立体上の3次元座標値へ逆変換して各画素の中心点の3次元逆変換点を求める画素中心3次元逆変換点作成ステップ、
前記画素中心3次元逆変換点作成ステップで求められた各画素の中心点の3次元逆変換点の3次元座標値を、前記画素中心点記録部に記録された各画素の中心点の補間距離値と共に画素中心3次元逆変換点記録部に記録する画素中心3次元逆変換点記録ステップ、
前記画素中心3次元逆変換点記録部に記録された各画素の中心点の補間距離値を仮想3次元空間内で逆射影することにより得られる各画素の中心点に対応する各表面点の3次元座標値を求める画素中心対応表面点作成ステップ、
前記画素中心対応表面点作成ステップで求められた各画素の中心点に対応する各表面点の3次元座標値を画素中心対応表面点記録部に記録する画素中心対応表面点記録ステップを実行させ、
前記時刻記録部に記録された時刻から所定の時間が経過していない場合、前記解像度記録部に記録された解像度を所定の割合で増加させて、前記複数のコンピュータの各々に前記表面点作成ステップから繰返して実行させ、前記時刻記録部に記録された時刻から所定の時間が経過し且つ所定の終了時刻を越えていない場合、前記複数のコンピュータの各々に前記距離画像取得ステップから繰返して実行させるステップ
を実行させるための3次元モデリング制御プログラム。
A three-dimensional modeling control program for controlling processing for creating a three-dimensional model of an object using a plurality of imaging devices arranged around the object, up to the object acquired by each of the plurality of imaging devices A distance image recording unit that records a distance image having a distance of 2 as a pixel value in accordance with each imaging device, and an initial resolution recording unit that records a predetermined resolution. A plurality of computers corresponding to each distance image recording unit for creating a three-dimensional model, and an integrated computer for integrating the processing results of the plurality of computers,
To a computer that executes a 3D modeling control program,
A corresponding point determination step for determining a corresponding point of each distance image recorded in the distance image recording unit;
In each of the plurality of computers,
The distance image of the object is acquired by the imaging device under the predetermined resolution recorded in the initial resolution recording unit and the corresponding point determined in the corresponding point determining step, and the acquired time is stored in the time recording unit. A distance image acquisition step of recording and recording the predetermined resolution in a resolution recording unit;
A distance image recording step of recording the distance image acquired in the distance image acquisition step in the distance image recording unit;
A surface point creating step for obtaining a three-dimensional coordinate value of each surface point obtained by back-projecting each pixel value of the distance image recorded in the distance image recording unit in a virtual three-dimensional space;
A surface point recording step of recording a three-dimensional coordinate value of each surface point obtained in the surface point creation step in a surface point recording unit;
A three-dimensional projection vector to each three-dimensional projection point obtained by projecting from each surface point having a three-dimensional coordinate value recorded in the surface point recording unit onto a virtual solid formed in a virtual three-dimensional space is obtained. 3D projection point creation step,
The three-dimensional projection vector for each three-dimensional projection point obtained in the three-dimensional projection point creation step is calculated for each three-dimensional projection point by a three-dimensional distance value between the three-dimensional projection point and the corresponding surface point. A three-dimensional projection point recording step for recording in the three-dimensional projection point recording unit together with an attribute value indicating
In the integrated computer,
Two-dimensional conversion to a two-dimensional conversion point by converting a three-dimensional projection vector for each three-dimensional projection point recorded in the three-dimensional projection point recording unit onto a virtual plane developed by cutting the virtual solid A step of creating a two-dimensional transformation point obtained as a vector;
The two-dimensional conversion point to each two-dimensional conversion point obtained in the two-dimensional conversion point creation step is converted into a two-dimensional conversion point together with the attribute value recorded in the three-dimensional projection point recording unit for each two-dimensional conversion point. A two-dimensional conversion point recording step for recording in the recording unit;
A pixel center point creating step of setting a pixel of a predetermined size on the virtual plane and obtaining a two-dimensional coordinate value of the center point of each pixel;
Based on the two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step and the two-dimensional conversion vector of the two-dimensional conversion point recorded in the two-dimensional conversion point recording unit, a predetermined two-dimensional A predetermined number of two-dimensional conversion points within a range of distance values are obtained, and the center point of each pixel is determined based on the attribute value recorded in the two-dimensional conversion point recording unit for the predetermined number of two-dimensional conversion points. An interpolation distance value creation step for obtaining an interpolation distance value, and a two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step is interpolated with the center point of each pixel obtained in the interpolation distance value creation step. A pixel center point recording step for recording in the pixel center point recording unit together with the distance value;
Pixel center for obtaining a three-dimensional inverse transformation point of the center point of each pixel by inversely transforming the two-dimensional coordinate value of the center point of each pixel recorded in the pixel center recording unit into a three-dimensional coordinate value on the virtual solid 3D inverse transformation point creation step,
The three-dimensional coordinate value of the three-dimensional inverse transform point of the center point of each pixel obtained in the pixel center three-dimensional inverse transform point creation step is used as the interpolation distance of the center point of each pixel recorded in the pixel center point recording unit. A pixel center three-dimensional inverse transform point recording step for recording in the pixel center three-dimensional inverse transform point recording unit together with the value;
3 of each surface point corresponding to the center point of each pixel obtained by back-projecting the interpolation distance value of the center point of each pixel recorded in the pixel center three-dimensional inverse transformation point recording unit in the virtual three-dimensional space. A step for creating a surface point corresponding to a pixel center for obtaining a dimensional coordinate value;
Performing a pixel center corresponding surface point recording step of recording a three-dimensional coordinate value of each surface point corresponding to the center point of each pixel obtained in the pixel center corresponding surface point creating step in a pixel center corresponding surface point recording unit;
When a predetermined time has not elapsed since the time recorded in the time recording unit, the resolution recorded in the resolution recording unit is increased at a predetermined rate, and the surface point creating step is performed in each of the plurality of computers. When the predetermined time has elapsed from the time recorded in the time recording unit and the predetermined end time has not been exceeded, each of the plurality of computers is repeatedly executed from the distance image acquisition step. A three-dimensional modeling control program for executing steps.
物体の周囲に配置された複数の撮像装置を用いて作成された該物体の3次元モデリング・データを伝送する3次元モデリング・データ伝送プログラムであって、該複数の撮像装置により各々取得させた、該物体までの距離を画素値として有する距離画像を各撮像装置に応じて記録した距離画像記録部と、所定の解像度を記録した初期解像度記録部とを用いるものであり、コンピュータに、
前記距離画像記録部に記録させた各距離画像の対応点を決定させる対応点決定ステップ、
前記物体の距離画像を前記初期解像度記録部に記録された所定の解像度および前記対応点決定ステップで決定された対応点の下で前記複数の撮像装置により各々取得させると共に、取得させた時刻を時刻記録部に記録させ、該所定の解像度を解像度記録部に記録させる距離画像取得ステップ、
前記距離画像取得ステップで取得させた各距離画像を前記距離画像記録部に記録させる距離画像記録ステップ、
前記距離画像記録部に記録された各距離画像の各画素値を仮想3次元空間内で逆射影することにより得られる各表面点の3次元座標値を求める表面点作成ステップ、
前記表面点作成ステップで求められた各表面点の3次元座標値を表面点記録部に記録する表面点記録ステップ、
前記表面点記録部に記録された3次元座標値を有する各表面点から仮想3次元空間に形成された仮想立体上へ射影することにより得られる各3次元射影点への3次元射影ベクトルを求める3次元射影点作成ステップ、
前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点と対応する表面点との間の3次元距離値を示す属性値と共に3次元射影点記録部に記録する3次元射影点記録ステップ、
前記3次元射影点記録部に記録された各3次元射影点毎の3次元射影ベクトルを前記仮想立体を切断して展開された仮想平面上へ変換して、2次元変換点への2次元変換ベクトルとして求める2次元変換点作成ステップ、
前記2次元変換点作成ステップで求められた各2次元変換点への2次元変換ベクトルを、各2次元変換点毎に前記3次元射影点記録部に記録された前記属性値と共に2次元変換点記録部に記録する2次元変換点記録ステップ、
前記仮想平面上に所定のサイズの画素を設定し、各画素の中心点の2次元座標値を求める画素中心点作成ステップ、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値と前記2次元変換点記録部に記録された2次元変換点の2次元変換ベクトルとに基づいて、所定の2次元距離値の範囲内における所定の数の2次元変換点を求め、該所定の数の2次元変換点について前記2次元変換点記録部に記録された前記属性値に基づき、各画素の中心点の補間距離値を求める補間距離値作成ステップ、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値を、前記補間距離値作成ステップで求められた各画素の中心点の補間距離値と共に画素中心点記録部に記録する画素中心点記録ステップ、
前記時刻記録部に記録された時刻から所定の時間が経過していない場合、前記解像度記録部に記録された解像度を所定の割合で増加させて前記表面点作成ステップから繰返して実行させ、前記時刻記録部に記録された時刻から所定の時間が経過し且つ所定の終了時刻を越えていない場合、前記距離画像取得ステップから繰返して実行させ、前記時刻記録部に記録された時刻から所定の時間が経過し且つ所定の終了時刻を越えた場合、前記画素中心点記録部に記録された各画素の中心点の2次元座標値と該各画素の中心点の補間距離値とを含む3次元モデリング・データを伝送するステップ
を実行させるための3次元モデリング・データ伝送プログラム。
A three-dimensional modeling data transmission program for transmitting three-dimensional modeling data of the object created using a plurality of imaging devices arranged around the object, each acquired by the plurality of imaging devices, A distance image recording unit that records a distance image having a distance to the object as a pixel value according to each imaging device and an initial resolution recording unit that records a predetermined resolution are used.
A corresponding point determination step for determining a corresponding point of each distance image recorded in the distance image recording unit;
The distance image of the object is acquired by each of the plurality of imaging devices under a predetermined resolution recorded in the initial resolution recording unit and the corresponding point determined in the corresponding point determination step, and the acquired time is a time A distance image acquisition step of recording in the recording unit and recording the predetermined resolution in the resolution recording unit;
A distance image recording step of causing the distance image recording unit to record each distance image acquired in the distance image acquisition step;
A surface point creating step for obtaining a three-dimensional coordinate value of each surface point obtained by back-projecting each pixel value of each distance image recorded in the distance image recording unit in a virtual three-dimensional space;
A surface point recording step of recording a three-dimensional coordinate value of each surface point obtained in the surface point creation step in a surface point recording unit;
A three-dimensional projection vector to each three-dimensional projection point obtained by projecting from each surface point having a three-dimensional coordinate value recorded in the surface point recording unit onto a virtual solid formed in a virtual three-dimensional space is obtained. 3D projection point creation step,
The three-dimensional projection vector for each three-dimensional projection point obtained in the three-dimensional projection point creation step is calculated for each three-dimensional projection point by a three-dimensional distance value between the three-dimensional projection point and the corresponding surface point. A three-dimensional projection point recording step for recording in the three-dimensional projection point recording unit together with an attribute value indicating
Two-dimensional conversion to a two-dimensional conversion point by converting a three-dimensional projection vector for each three-dimensional projection point recorded in the three-dimensional projection point recording unit onto a virtual plane developed by cutting the virtual solid A step of creating a two-dimensional transformation point obtained as a vector;
The two-dimensional conversion point to each two-dimensional conversion point obtained in the two-dimensional conversion point creation step is converted into a two-dimensional conversion point together with the attribute value recorded in the three-dimensional projection point recording unit for each two-dimensional conversion point. A two-dimensional conversion point recording step for recording in the recording unit;
A pixel center point creating step of setting a pixel of a predetermined size on the virtual plane and obtaining a two-dimensional coordinate value of the center point of each pixel;
Based on the two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step and the two-dimensional conversion vector of the two-dimensional conversion point recorded in the two-dimensional conversion point recording unit, a predetermined two-dimensional A predetermined number of two-dimensional conversion points within a range of distance values are obtained, and the center point of each pixel is determined based on the attribute value recorded in the two-dimensional conversion point recording unit for the predetermined number of two-dimensional conversion points. An interpolation distance value creation step for obtaining an interpolation distance value;
The two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step is recorded in the pixel center point recording unit together with the interpolation distance value of the center point of each pixel obtained in the interpolation distance value creation step. Pixel center point recording step,
When a predetermined time has not elapsed since the time recorded in the time recording unit, the resolution recorded in the resolution recording unit is increased at a predetermined rate and repeatedly executed from the surface point creating step, and the time When a predetermined time has elapsed since the time recorded in the recording unit and the predetermined end time has not been exceeded, the distance image obtaining step is repeatedly executed, and the predetermined time from the time recorded in the time recording unit is set. 3D modeling including a two-dimensional coordinate value of the center point of each pixel recorded in the pixel center point recording unit and an interpolation distance value of the center point of each pixel when a predetermined end time has passed. A three-dimensional modeling data transmission program for executing a step of transmitting data.
請求項1ないし7のいずれかに記載のプログラムを記録したコンピュータ読取り可能な記録媒体。A computer-readable recording medium on which the program according to claim 1 is recorded. 物体の周囲に配置された複数の撮像装置を用いて該物体の3次元モデルを作成する3次元モデリング方法であって、該複数の撮像装置により各々取得させた、該物体までの距離を画素値として有する距離画像を各撮像装置に応じて記録した距離画像記録部と、所定の解像度を記録した初期解像度記録部とを用いるものであり、コンピュータに、
前記距離画像記録部に記録させた各距離画像の対応点を決定させる対応点決定ステップと、
前記物体の距離画像を前記初期解像度記録部に記録された所定の解像度および前記対応点決定ステップで決定された対応点の下で前記複数の撮像装置により各々取得させると共に、取得させた時刻を時刻記録部に記録させ、該所定の解像度を解像度記録部に記録させる距離画像取得ステップと、
前記距離画像取得ステップで取得させた各距離画像を前記距離画像記録部に記録させる距離画像記録ステップと、
前記解像度記録部に記録された解像度の下で前記距離画像記録部に記録された各距離画像に基づき、前記物体の3次元メッシュ・モデルを作成させる3次元メッシュ・モデリング・ステップと、
前記時刻記録部に記録された時刻から所定の時間が経過していない場合、前記解像度記録部に記録された解像度を所定の割合で増加させて前記3次元メッシュ・モデリング・ステップから繰返して実行させ、前記時刻記録部に記録された時刻から所定の時間が経過し且つ所定の終了時刻を越えていない場合、前記距離画像取得ステップから繰返して実行させるステップと
を実行させることを特徴とする3次元モデリング方法。
A three-dimensional modeling method for creating a three-dimensional model of an object using a plurality of imaging devices arranged around the object, the distance to the object obtained by each of the plurality of imaging devices being a pixel value Using a distance image recording unit that records a distance image according to each imaging device, and an initial resolution recording unit that records a predetermined resolution.
A corresponding point determination step for determining a corresponding point of each distance image recorded in the distance image recording unit;
The distance image of the object is acquired by each of the plurality of imaging devices under a predetermined resolution recorded in the initial resolution recording unit and the corresponding point determined in the corresponding point determination step, and the acquired time is a time A distance image acquisition step of recording in the recording unit and recording the predetermined resolution in the resolution recording unit;
A distance image recording step of recording each distance image acquired in the distance image acquisition step in the distance image recording unit;
A three-dimensional mesh modeling step of creating a three-dimensional mesh model of the object based on each distance image recorded in the distance image recording unit under the resolution recorded in the resolution recording unit;
If a predetermined time has not elapsed since the time recorded in the time recording unit, the resolution recorded in the resolution recording unit is increased at a predetermined rate and repeatedly executed from the three-dimensional mesh modeling step. A step of repeatedly executing from the distance image acquiring step when a predetermined time has elapsed from a time recorded in the time recording unit and a predetermined end time has not been exceeded. Modeling method.
請求項9記載の3次元モデリング方法において、前記3次元メッシュ・モデリング・ステップは、
前記距離画像記録部に記録された各距離画像の各画素値を仮想3次元空間内で逆射影することにより得られる各表面点の3次元座標値を求める表面点作成ステップと、
前記表面点作成ステップで求められた各表面点の3次元座標値を表面点記録部に記録する表面点記録ステップと、
前記表面点記録部に記録された3次元座標値を有する各表面点から仮想3次元空間に形成された仮想立体上へ射影することにより得られる各3次元射影点への3次元射影ベクトルを求める3次元射影点作成ステップと、
前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点と対応する表面点との間の3次元距離値を示す属性値と共に3次元射影点記録部に記録する3次元射影点記録ステップと、
前記3次元射影点記録部に記録された各3次元射影点毎の3次元射影ベクトルを前記仮想立体を切断して展開された仮想平面上へ変換して、2次元変換点への2次元変換ベクトルとして求める2次元変換点作成ステップと、
前記2次元変換点作成ステップで求められた各2次元変換点への2次元変換ベクトルを、各2次元変換点毎に前記3次元射影点記録部に記録された前記属性値と共に2次元変換点記録部に記録する2次元変換点記録ステップと、
前記仮想平面上に所定のサイズの画素を設定し、各画素の中心点の2次元座標値を求める画素中心点作成ステップと、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値と前記2次元変換点記録部に記録された2次元変換点の2次元変換ベクトルとに基づいて、所定の2次元距離値の範囲内における所定の数の2次元変換点を求め、該所定の数の2次元変換点について前記2次元変換点記録部に記録された前記属性値に基づき、各画素の中心点の補間距離値を求める補間距離値作成ステップと、
前記画素中心点作成ステップで求められた各画素の中心点の2次元座標値を、前記補間距離値作成ステップで求められた各画素の中心点の補間距離値と共に画素中心点記録部に記録する画素中心点記録ステップと、
前記画素中心記録部に記録された各画素の中心点の2次元座標値を、前記仮想立体上の3次元座標値へ逆変換して各画素の中心点の3次元逆変換点を求める画素中心3次元逆変換点作成ステップと、
前記画素中心3次元逆変換点作成ステップで求められた各画素の中心点の3次元逆変換点の3次元座標値を、前記画素中心点記録部に記録された各画素の中心点の補間距離値と共に画素中心3次元逆変換点記録部に記録する画素中心3次元逆変換点記録ステップと、
前記画素中心3次元逆変換点記録部に記録された各画素の中心点の補間距離値を仮想3次元空間内で逆射影することにより得られる各画素の中心点に対応する各表面点の3次元座標値を求める画素中心対応表面点作成ステップと、
前記画素中心対応表面点作成ステップで求められた各画素の中心点に対応する各表面点の3次元座標値を画素中心対応表面点記録部に記録する画素中心対応表面点記録ステップとを備えたことを特徴とする3次元モデリング方法。
The three-dimensional modeling method according to claim 9, wherein the three-dimensional mesh modeling step includes:
A surface point creating step for obtaining a three-dimensional coordinate value of each surface point obtained by back-projecting each pixel value of each distance image recorded in the distance image recording unit in a virtual three-dimensional space;
A surface point recording step for recording a three-dimensional coordinate value of each surface point obtained in the surface point creation step in a surface point recording unit;
A three-dimensional projection vector to each three-dimensional projection point obtained by projecting from each surface point having a three-dimensional coordinate value recorded in the surface point recording unit onto a virtual solid formed in a virtual three-dimensional space is obtained. A three-dimensional projection point creation step;
The three-dimensional projection vector for each three-dimensional projection point obtained in the three-dimensional projection point creation step is calculated for each three-dimensional projection point by a three-dimensional distance value between the three-dimensional projection point and the corresponding surface point. A three-dimensional projection point recording step for recording in the three-dimensional projection point recording unit together with an attribute value indicating
Two-dimensional conversion to a two-dimensional conversion point by converting the three-dimensional projection vector for each three-dimensional projection point recorded in the three-dimensional projection point recording unit onto a virtual plane developed by cutting the virtual solid A step of creating a two-dimensional transformation point obtained as a vector;
The two-dimensional conversion point to each two-dimensional conversion point obtained in the two-dimensional conversion point creation step is converted into a two-dimensional conversion point together with the attribute value recorded in the three-dimensional projection point recording unit for each two-dimensional conversion point. A two-dimensional conversion point recording step for recording in the recording unit;
A pixel center point creating step of setting a pixel of a predetermined size on the virtual plane and obtaining a two-dimensional coordinate value of the center point of each pixel;
Based on the two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step and the two-dimensional conversion vector of the two-dimensional conversion point recorded in the two-dimensional conversion point recording unit, a predetermined two-dimensional A predetermined number of two-dimensional conversion points within a range of distance values are obtained, and the center point of each pixel is determined based on the attribute value recorded in the two-dimensional conversion point recording unit for the predetermined number of two-dimensional conversion points. An interpolation distance value creation step for obtaining an interpolation distance value;
The two-dimensional coordinate value of the center point of each pixel obtained in the pixel center point creation step is recorded in the pixel center point recording unit together with the interpolation distance value of the center point of each pixel obtained in the interpolation distance value creation step. A pixel center point recording step;
Pixel center for obtaining a three-dimensional inverse transformation point of the center point of each pixel by inversely transforming the two-dimensional coordinate value of the center point of each pixel recorded in the pixel center recording unit into a three-dimensional coordinate value on the virtual solid A three-dimensional inverse transformation point creation step;
The three-dimensional coordinate value of the three-dimensional inverse transform point of the center point of each pixel obtained in the pixel center three-dimensional inverse transform point creation step is used as the interpolation distance of the center point of each pixel recorded in the pixel center point recording unit. A pixel center 3D inverse transform point recording step for recording in the pixel center 3D inverse transform point recording unit together with the value;
3 of each surface point corresponding to the center point of each pixel obtained by back-projecting the interpolation distance value of the center point of each pixel recorded in the pixel center three-dimensional inverse transformation point recording unit in the virtual three-dimensional space. A step of creating a surface point corresponding to a pixel center for obtaining a dimensional coordinate value;
A pixel center corresponding surface point recording step for recording a three-dimensional coordinate value of each surface point corresponding to the center point of each pixel obtained in the pixel center corresponding surface point creating step in a pixel center corresponding surface point recording unit; A three-dimensional modeling method characterized by this.
請求項10記載の3次元モデリング方法において、前記3次元射影点記録ステップは、前記解像度記録部に記録された解像度が前記初期解像度記録部に記録された所定の解像度と等しい場合、前記3次元射影点作成ステップで求められた各3次元射影点への3次元射影ベクトルを、各3次元射影点毎に、該3次元射影点に対応する表面点の3次元座標値を示す属性値と共に3次元射影点記録部に記録し、
前記3次元射影点作成ステップは、前記解像度記録部に記録された解像度が前記初期解像度記録部に記録された所定の解像度より大きい場合、
前記表面点記録部に既に記録された3次元座標値を有する従前の表面点に関しては、該従前の表面点に対応する従前の3次元射影点毎に既に前記3次元射影点記録部に記録された従前の3次元射影ベクトルを用い、解像度の増加により新たに前記表面点記録部に記録された3次元座標値を有する新表面点に関しては、新表面点の近傍における従前の表面点に対応する該従前の3次元射影ベクトルの前記属性値に基づいて新たな3次元射影ベクトルを求めることを特徴とする3次元モデリング方法。
11. The three-dimensional modeling method according to claim 10, wherein the three-dimensional projection point recording step includes the step of recording the three-dimensional projection when the resolution recorded in the resolution recording unit is equal to a predetermined resolution recorded in the initial resolution recording unit. The three-dimensional projection vector for each three-dimensional projection point obtained in the point creation step is displayed for each three-dimensional projection point together with an attribute value indicating the three-dimensional coordinate value of the surface point corresponding to the three-dimensional projection point. Record in the projection point recording section,
In the three-dimensional projection point creation step, when the resolution recorded in the resolution recording unit is larger than a predetermined resolution recorded in the initial resolution recording unit,
With respect to the previous surface point having the three-dimensional coordinate value already recorded in the surface point recording unit, the previous three-dimensional projection point corresponding to the previous surface point is already recorded in the three-dimensional projection point recording unit. A new surface point having a three-dimensional coordinate value newly recorded in the surface point recording unit by increasing the resolution using the previous three-dimensional projection vector corresponds to the previous surface point in the vicinity of the new surface point. A three-dimensional modeling method, wherein a new three-dimensional projection vector is obtained based on the attribute value of the conventional three-dimensional projection vector.
請求項10または11記載の3次元モデリング方法において、前記3次元射影点作成ステップは、前記仮想立体が仮想円筒または仮想円錐の場合、表面点に対応する画素を含む距離画像を取得した撮像装置と物体との間の空間位置情報が記録された空間位置情報部をさらに備え、
仮想円筒または仮想円錐の中心線を仮想空間上で作成する仮想立体作成ステップと、
前記仮想立体作成ステップで作成された中心線に垂直で且つ前記表面点記録部に記録された表面点を通る仮想円筒または仮想円錐を切断する平面であって周囲が該仮想円筒または仮想円錐の周囲と一致する切断平面を作成する切断平面作成ステップと、
前記切断平面作成ステップで作成された切断平面の中心点の座標値を求める中心点座標値作成ステップと、
前記中心点座標値作成ステップで求められた中心点の座標値と前記表面点記録部に記録された前記表面点の座標値とを結ぶ線分が前記切断平面の周囲と交わる2点を求める2点作成ステップと、
前記空間位置情報部に記録された空間位置情報に基づき、前記表面点記録部に記録された前記表面点に対応する画素を含む距離画像に対応する仮想平面を仮想空間上で作成する仮想平面作成ステップと、
前記仮想平面作成ステップで作成された仮想平面における前記表面点に対応する画素の座標値を求める画素座標値作成ステップと、
前記画素座標値作成ステップで求められた画素の座標値から前記中心点座標値作成ステップで求められた中心点の座標値へ向かう画素ベクトルと、前記表面点記録部に記録された前記表面点の座標値から前記2点作成ステップで求められた2点への2つの表面点ベクトルを求めるベクトル作成ステップと、
前記ベクトル作成ステップで求められた画素ベクトルと前記2つの表面点ベクトルの各々との間の角度を比較し、小さい角度に対応する表面点ベクトルを3次元射影ベクトルとするステップとを備えたことを特徴とする3次元モデリング方法。
12. The three-dimensional modeling method according to claim 10 or 11, wherein the three-dimensional projection point creation step includes an imaging device that acquires a distance image including pixels corresponding to surface points when the virtual solid is a virtual cylinder or a virtual cone. A spatial position information section in which spatial position information between the object and the object is recorded;
A virtual solid creation step of creating a center line of a virtual cylinder or virtual cone in a virtual space;
A plane that cuts the virtual cylinder or virtual cone that is perpendicular to the center line created in the virtual solid creation step and passes through the surface point recorded in the surface point recording unit, and the periphery is the circumference of the virtual cylinder or virtual cone A cutting plane creation step to create a cutting plane that matches
A center point coordinate value creating step for obtaining a coordinate value of the center point of the cutting plane created in the cutting plane creating step;
Find two points where a line segment connecting the coordinate value of the center point obtained in the center point coordinate value creating step and the coordinate value of the surface point recorded in the surface point recording unit intersects the periphery of the cutting plane 2 A point creation step;
Virtual plane creation that creates a virtual plane corresponding to a distance image including a pixel corresponding to the surface point recorded in the surface point recording unit in a virtual space based on the spatial position information recorded in the spatial position information unit Steps,
A pixel coordinate value creating step for obtaining a coordinate value of a pixel corresponding to the surface point in the virtual plane created in the virtual plane creating step;
A pixel vector that goes from the coordinate value of the pixel obtained in the pixel coordinate value creation step to the coordinate value of the center point obtained in the center point coordinate value creation step, and the surface point recorded in the surface point recording unit A vector creation step for obtaining two surface point vectors from the coordinate values to the two points obtained in the two-point creation step;
Comparing the angle between the pixel vector obtained in the vector creation step and each of the two surface point vectors, and setting the surface point vector corresponding to the small angle as a three-dimensional projection vector. Characteristic 3D modeling method.
請求項10または11記載の3次元モデリング方法において、前記3次元射影点作成ステップは、前記仮想立体が仮想球の場合、
仮想球の中心点の座標値を求める中心点座標値作成ステップと、
前記中心点座標値作成ステップで求められた中心点の座標値と前記表面点記録部に記録された前記表面点の座標値とを結ぶ線分上において、該中心点の座標値から該表面点へ向かう方向のベクトルを3次元射影ベクトルとするステップとを備えたことを特徴とする3次元モデリング方法。
The three-dimensional modeling method according to claim 10 or 11, wherein the three-dimensional projection point creation step includes the step of:
A center point coordinate value creation step for obtaining a coordinate value of the center point of the virtual sphere;
On the line segment connecting the coordinate value of the center point obtained in the center point coordinate value creating step and the coordinate value of the surface point recorded in the surface point recording unit, the surface point is calculated from the coordinate value of the center point. A three-dimensional modeling method comprising: a step of setting a vector in a direction toward the three-dimensional projection vector.
JP2003091359A 2003-03-28 2003-03-28 Three-dimensional modeling program, three-dimensional modeling control program, three-dimensional modeling data transmission program, recording medium, and three-dimensional modeling method Expired - Fee Related JP4229398B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003091359A JP4229398B2 (en) 2003-03-28 2003-03-28 Three-dimensional modeling program, three-dimensional modeling control program, three-dimensional modeling data transmission program, recording medium, and three-dimensional modeling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003091359A JP4229398B2 (en) 2003-03-28 2003-03-28 Three-dimensional modeling program, three-dimensional modeling control program, three-dimensional modeling data transmission program, recording medium, and three-dimensional modeling method

Publications (2)

Publication Number Publication Date
JP2004302524A JP2004302524A (en) 2004-10-28
JP4229398B2 true JP4229398B2 (en) 2009-02-25

Family

ID=33404744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003091359A Expired - Fee Related JP4229398B2 (en) 2003-03-28 2003-03-28 Three-dimensional modeling program, three-dimensional modeling control program, three-dimensional modeling data transmission program, recording medium, and three-dimensional modeling method

Country Status (1)

Country Link
JP (1) JP4229398B2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008036092A1 (en) * 2006-09-21 2008-03-27 Thomson Licensing A method and system for three-dimensional model acquisition
DE102006055641B4 (en) 2006-11-22 2013-01-31 Visumotion Gmbh Arrangement and method for recording and reproducing images of a scene and / or an object
JP2015041936A (en) * 2013-08-23 2015-03-02 ソニー株式会社 Image display device, image processing apparatus and image processing method
CN105180830B (en) * 2015-09-28 2017-09-01 浙江大学 A kind of three-dimensional point cloud autoegistration method and system suitable for ToF cameras
US11055909B2 (en) 2017-08-22 2021-07-06 Sony Corporation Image processing device and image processing method
JP7051457B2 (en) * 2018-01-17 2022-04-11 キヤノン株式会社 Image processing equipment, image processing methods, and programs
CN110489778B (en) * 2019-07-02 2023-04-18 西安电子科技大学 Graph segmentation method and laser etching control system for laser etching processing
JP7245574B2 (en) * 2019-12-20 2023-03-24 馭勢科技(浙江)有限公司 3D reconstruction method, device, system and storage medium
CN112508832B (en) * 2020-12-03 2024-02-13 中国矿业大学 Object-oriented remote sensing image data space-time fusion method, system and equipment
JP2022137826A (en) * 2021-03-09 2022-09-22 株式会社Mawari 3d object streaming method, device and program

Also Published As

Publication number Publication date
JP2004302524A (en) 2004-10-28

Similar Documents

Publication Publication Date Title
JP3840150B2 (en) Image-based representation and rendering method for 3D objects and animated 3D objects
JP4679033B2 (en) System and method for median fusion of depth maps
JP3981302B2 (en) Hierarchical image-based representation of a three-dimensional stationary or moving object and method and apparatus for using the representation for rendering an object
EP3367334B1 (en) Depth estimation method and depth estimation apparatus of multi-view images
JP2903303B2 (en) Animation processing method and its application
US20020080139A1 (en) Apparatus and method of interactive model generation using multi-images
WO2012037863A1 (en) Method for simplifying and progressively transmitting 3d model data and device therefor
CN109906600B (en) Simulated depth of field
US20190272347A1 (en) Scalable and precise fitting of nurbs surfaces to large-size mesh representations
CN109191554A (en) A kind of super resolution image reconstruction method, device, terminal and storage medium
JP2006031561A (en) High-dimensional texture mapping device, method and program
JP2000348213A (en) Three-dimensional image generating device, three- dimensional image generating and display device, and method thereof and recording medium
JP4229398B2 (en) Three-dimensional modeling program, three-dimensional modeling control program, three-dimensional modeling data transmission program, recording medium, and three-dimensional modeling method
US6914601B2 (en) Method, apparatus, and computer program for generating three-dimensional shape data or volume data
CN109448135B (en) Three-dimensional model repairing method based on multi-source data
Moustakides et al. 3D image acquisition and NURBS based geometry modelling of natural objects
KR100837776B1 (en) Apparatus and Method for Converting 2D Images to 3D Object
JP2837584B2 (en) How to create terrain data
Schirmacher et al. Efficient Free Form Light Field Rendering.
JP2000322576A (en) Method for preparing three-dimensional image data and method for preparing optional viewpoint image using three-dimensional image data
JP2010152529A (en) Vertex texture mapping device and program
KR20220069827A (en) Method and Apparatus for transforming 3-dimensional Volume Resolution Using Truncated Signed Distance Function
JP2655056B2 (en) Texture data generator
CN112907733A (en) Method and device for reconstructing three-dimensional model and three-dimensional model acquisition and reconstruction system
JPH1139506A (en) Optional view point image generator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081010

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081129

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees