JP2003216979A - 3dコンピュータモデリング装置 - Google Patents
3dコンピュータモデリング装置Info
- Publication number
- JP2003216979A JP2003216979A JP2002169584A JP2002169584A JP2003216979A JP 2003216979 A JP2003216979 A JP 2003216979A JP 2002169584 A JP2002169584 A JP 2002169584A JP 2002169584 A JP2002169584 A JP 2002169584A JP 2003216979 A JP2003216979 A JP 2003216979A
- Authority
- JP
- Japan
- Prior art keywords
- volume
- points
- polyhedron
- subject object
- volume portion
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
を生成する。 【解決手段】オブジェクトの3Dコンピュータモデル
が、各々が少なくともオブジェクトの一部を含む3D空
間のボリュームを定義する複数の多面体520の共通部
分を計算することによって生成される。多面体の複数の
平面の共通部分の複数の3D点が計算され、各3D点
は、そこで交わる複数の平面と共にラベル付けされる。
その後、どの点を相互に連結すべきかを判定するための
ラベルを使用して複数の3D点を連結し、多角形メッシ
ュを形成する。多面体の各面の共通部分の複数の点を計
算するための好適な方法では、オブジェクトを含むボリ
ュームが複数の部分に分割され、各部分は、多面体に対
して検査される。各部分の廃棄、再分割、あるいは、ボ
リューム部分を通る多面体の平面の共通部分の点の計算
のいずれかが行なわれる。
Description
コンピュータモデルを生成するコンピュータ処理に関す
る。特に、本発明は、オブジェクトの少なくとも一部を
含む3D空間のボリュームを各々が定義する多面体(pp
lyhedra)の共通部分を計算することによって、3Dコ
ンピュータモデルを生成するコンピュータ処理に関す
る。
生成する方法としては、数多くの方法が知られている。
uette」法がある。この方法は、既知の位置及び向きで
記録したオブジェクトの画像を処理し、各画像中のオブ
ジェクトのシルエットを逆投影し、そのオブジェクトを
含むと共に頂点が画像を記録したときのカメラの焦点の
位置にある無限の円錐形を生じることによって3Dコン
ピュータモデルを生成する。従って、各円錐形が、オブ
ジェクトが占める3D空間のボリュームを制限すること
で、オブジェクトに近似する各円錐形の共通部分が計算
される。
ば、Illingworth及びHiltonの“Looking to build a mo
del world: automatic construction of static object
modelsusing computer vision”(Electronics and Co
mmunication Engineering Journal、1998年6月、
103〜113ページ)、及び、Niemの“Automatic re
construction of 3D objects using a mobile camera”
(Image and Vision Computing 17、1999年、12
5〜134ページ)などに記載されている。しかし、こ
れらの論文の双方に記載されている方法では、シルエッ
ト円錐形の共通部分を計算して複数のボクセル(直平行
六面体)から構成されるオブジェクトの「ボリューム表
現」を生成する。具体的には、3D空間を複数のボクセ
ルに分割し、これらのボクセルを検査してどのボクセル
がシルエット円錐形の共通部分により定義されるボリュ
ームの内側に位置するかを判定する。共通部分のボリュ
ームの内側のボクセルは、オブジェクトを表す複数のボ
クセルのボリュームを定義するために保持される。
つかの問題点がある。特に、結果として生じるオブジェ
クトのボリューム表現の正確さ及び解像度は、3D空間
が分割される各ボクセルの寸法により判定される。この
ために、ボクセルの寸法を縮小してモデル解像度を向上
すると、検査を要するボクセルの数が大幅に増加し、結
果的に処理時間が長くなる。加えて、大半のコンピュー
タグラフィックスレンダリングアルゴリズムは、ボクセ
ルモデルをレンダリングしてユーザに対して表示するた
めの画像を生成することができないので、ボクセル表現
は、複数の多角形(ポリゴン)から成るサーフェスモデル
へと変換される必要がある。この変換により、更なる処
理資源及び処理時間が必要になるだけでなく、結果とし
て生じるコンピュータモデルの解像度及び正確さが低下
する可能性がある。
ction Algorithm for 3d-Reconstruction Using a Boun
dary-Representation”(http:// i31www.ira.uka.de/d
iplomarbeiten/da_martin_loehlein/Reconstruction.ht
ml)では、3Dコンピュータモデルを生成するshape-fr
om-silhouette法を開示するが、この方法ではボクセル
表現を生成しない。代わりに、複数の画像を元にした各
シルエット円錐形の共通部分が直接計算される。具体的
には、方法は、まず始めにオブジェクトを含む立方体を
用意し、第1のシルエット円錐形と交わらせてオブジェ
クトの第1の近似を得る。続いて、この近似を次の円錐
形と交わらせ、同様の処理を繰り返す。シルエット円錐
形を近似と交わらせるために、この円錐形及び近似は、
円錐形作成の元となった画像へと投影される。これによ
り、円錐形は元の2D多角形(シルエット)へと戻さ
れ、近似は3D多角形から2D多角形へと戻される。円
錐形の多角形は、2D多角形の交わり用の従来のアルゴ
リズムを使用して近似の全ての多角形と交わるように仕
向けられる。
ion Algorithm for 3d-Reconstruction Using a Bounda
ry-Representation”に記載された方法は、処理資源及
び処理時間の観点から見て非効率的である。本発明者等
は、この問題が発生する1つの理由が、シルエット円錐
形を表現と交わらせることで平面を定義する複数の連結
3D点から構成されるより精度の高い表現を生成し、こ
の表現を別のシルエット円錐形と交わらせ、更に同様の
処理を繰り返すインクリメンタル手法にあることを認識
した。
etermining the Intersection of Two Simple Polyhedr
a”(Computer Graphics Forum 3、1984年、219
〜225ページ)では、「plane-sweep アルゴリズム」
を使用して各多面体のエッジともう一方の多面体の面と
の全ての共通部分を見出すことによって、四面体及び角
柱などの2つの単純な多面体の共通部分を計算する方法
を開示している。この方法は、それぞれの面の数が少な
い2つの多面体に対しては有用であるが、3つ以上の多
面体及び/又は面の数が多い多面体の場合は、計算資源
及び計算時間の観点から見て極めて非効率的であろう。
たものであり、問題点の1つ以上に対処することを目的
とする。
を交わらせることによって、オブジェクトの非ボクセル
表現を生成するコンピュータ処理方法及び装置が提供さ
れる。多面体を構成する平面の各々の共通部分の各点が
計算/検査され、どの点がオブジェクトの点に対応する
かが判定される。各オブジェクト点は、そこで交わる平
面と共にラベル付けされる。その後、全てのオブジェク
ト点の識別が終了すると、ラベルに応じてオブジェクト
点間の連結が特定される。
定する前にオブジェクト点の全てを計算する場合、連結
を判定する処理を1度だけ実行すれば良いので、処理資
源及び/又は処理時間は必然的に節減される。これは、
交差して各オブジェクト点を生成する平面に基づいて各
オブジェクト点にラベル付けすると共に、これらのラベ
ルを使用してどのオブジェクト点を相互に連結するべき
かを計算することによって可能となる。
わらせることによって、オブジェクトの非ボクセル表現
を生成するコンピュータ処理方法及び装置が提供され
る。中にオブジェクトが入った初期3Dボリュームを複
数の部分に分割し、各部分を多面体に対して検査する。
ボリュームの一部分が少なくとも1つの多面体の外側に
ある場合、オブジェクトの表面上の点を含むことができ
ないために廃棄される。多面体の外側にない場合、ボリ
ュームと交わる多面体の面が処理されて共通部分の各点
が計算される。従って、共通部分の計算された各点から
構成される3Dコンピュータモデルが生成される。
とができない共通部分の計算が回避されるために多面体
の面の全ての共通部分を計算する必要がないので、処理
資源及び処理時間の節減につながる。
し、ボリュームの一部分が少数の多面体の面と交わる場
合にのみ、その部分に対して多面体の面の共通部分を計
算することによって、一層効率的に実行されるのが好ま
しい。説明すると、一実施形態において、各共通部分は
3つの多面体の面の共通部分から成る。従って、ボリュ
ームの一部分と交わる3つの面の組み合わせをそれぞれ
検査し、これらが相互に交わるか否かを判定する必要が
ある。結果として、ボリュームの一部分が多数の多面体
の面と交わる場合には相当な回数の計算を行なうことに
なる。共通部分の点はオブジェクト上の点を表さないの
で、その計算のうちの多くが無駄になる。しかし、初期
ボリュームを繰り返し再分割することによって、共通部
分を計算する必要なしに大量のボリュームを廃棄するこ
とができると共に、少数の多面体の面と交わる十分に小
さいボリュームの一部分が得られたときのみ共通部分を
計算することによって、実際に実行する必要のある共通
部分の計算の回数が最低限に抑えられる。
うに動作可能に、あるいは、上述の装置として構成され
るように、プログラム可能な処理装置を構成させるため
の命令を含む記憶装置又は信号などとして具現化された
コンピュータプログラム製品を提供する。
の本発明の実施形態を説明する。
に1つ以上のプロセッサと、複数のメモリと、グラフィ
ックスカードなどを含むパーソナルコンピュータのよう
な処理装置2と、従来通りのパーソナルコンピュータモ
ニタのような表示装置4と、キーボード、マウスなどの
ユーザ入力装置6と、プリンタ8と、WACOM社製のPL400
などの、制御可能画素を有するフラットパネルから構成
される表示パネル10とを具備する。
のデータ記憶媒体に格納されたデータとして及び/又は
遠隔データベース等からインターネットなどの通信ネッ
トワーク(図示せず)を介する伝送、あるいは無線伝送
により処理装置2に入力され且つ/又はキーボードなど
のユーザ入力装置6を介してユーザにより入力される信
号14として入力されるプログラミング命令に従って動
作するようにプログラムされている。
ログラミング命令は、入力画像が記録された位置及び向
きを計算するために、様々に異なる位置と向きで記録さ
れた1つ以上の被写体オブジェクト(subject object)の
複数の画像を定義する入力データを処理し且つ計算され
た位置及び向きを使用して、被写体オブジェクトの3次
元コンピュータモデルを定義するデータを生成するよう
に処理装置2を構成させるための命令である。この実施
形態では、被写体オブジェクトは、既知の特徴パターン
を有する校正オブジェクト(この実施形態においては2
次元写真マット)の上で撮影される。入力画像が記録さ
れたときの位置と向きは、画像中の校正オブジェクトパ
ターンの特徴の位置を検出することにより計算される。
被写体オブジェクトの3Dコンピュータモデルは、新規
の創意に富んだ多面体(polyhedra)共通部分技術を使用
して生成される。この技術では、各画像中の被写体オブ
ジェクトの輪郭が複数の部分に分割され、輪郭部分の3
D投影により定義される多面体の共通部分を判定するこ
とによって被写体オブジェクトの表面の各点を表す3D
点を計算するための処理が実行される。以下に更に詳細
に説明するが、この処理では、特に、被写体オブジェク
トの表面上に3D点を生じることができない多面体内の
各面の共通部分の計算をしなくても良いので、非常に効
率的な方法で実行される。
プログラミングされたとき、処理動作を実行するための
幾つかの機能ユニットとして構成されていると考えるこ
とができる。そのような機能ユニットの例及びそれらの
相互接続関係を図1に示す。しかし、図1に示すユニッ
ト及び相互接続は概念上のものであり、理解を助けると
いう目的のために一例として示されているにすぎない。
従って、それらは、処理装置2のプロセッサ、メモリな
どが構成されるユニットや接続を必ずしも表してはいな
い。
央制御装置20はユーザ入力装置6からの入力を処理す
ると共に、その他の機能ユニットの制御及び処理を実行
するように構成されている。メモリ24は、中央制御装
置20及びその他の機能ユニットにより使用されるべく
設けられている。
に校正(キャリブレーション)パターンをプリントして
プリント済の写真マットを形成するため、又は表示パネ
ル10に校正パターンを表示して写真マットを表示する
ためにプリンタ8又は表示パネル10を制御する制御信
号を発生する。以下に更に詳細に説明するが、写真マッ
トは所定の特徴の校正パターンを有し、3次元コンピュ
ータモデルを生成すべきオブジェクトは、プリント済写
真マット34、又は、校正パターンが表示されている表
示パネル10の上に配置される。その後、オブジェクト
の画像及び校正パターンを記録して、処理装置2に入力
する。マット発生器30は、処理装置2が入力画像記録
時の位置及び向きを計算する際に使用するための、写真
マット上にプリント又は表示された特徴の校正パターン
を定義するデータを格納するように構成される。すなわ
ち、この実施形態では、マット発生器30は、特徴パタ
ーンに対する座標系(実際には校正パターンの基準位置
及び基準向きを定義する)と共に特徴パターンを定義す
るデータを格納するように構成されており、処理装置2
は、入力画像が記録されたときの位置及び向きを定義済
み座標系において(従って、基準位置及び基準向きに対
して)計算するように構成されている。
ーンは、例えば、PCT特許出願GB00/04469
(これらの内容は全て参考として本明細書に取り入れら
れている)に記載されているような特徴の空間クラス
タ、あるいは、例えば、JP−A−9−170914に
記載されているような、各々の対応するドットが一意の
ものであるように各ドットが異なる色相/輝度の組み合
わせを有する着色ドットの既知のパターン、例えば、Ni
emの“Automatic Reconstruction of 3D ObjectsUsing
A Mobile Camera”(Image and Vision Computing 17
(1999年)、125〜134ページ)に記載されて
いるような、各象限で複数の同心円を寸法がわかってい
る半径方向線分及び位置マーカで結ぶことにより形成さ
れるパターン、又はGortler他の“The Lumigraph”(Co
mputer Graphics Proceedings, Annual Conference Ser
ies、1996年、ACM-0-89791-764-4/96/008に記載さ
れているような、それぞれ異なる直径を有する複数の同
心リングから構成されるパターンなどを含む。
リント写真マット34を生成するために、校正パターン
はプリンタ8により記録媒体(この実施形態では、シー
ト紙)にプリントされるものと想定するが、先に述べた
通り、表示パネル10に校正パターンを表示することも
可能であろう。
スク42などの記憶装置に格納されるデータとして、又
は処理装置2へ送信される信号44として、又はユーザ
入力装置6を使用して処理装置2に入力される入力デー
タを格納するように構成される。入力データは、様々に
異なる位置及び向きで記録された写真マット上の1つ以
上の被写体オブジェクトの複数の画像と、写真マットの
背景色又は写真マットの背景色と同じ色を有する異なる
オブジェクトを示すための写真マットの一部と共に、オ
ブジェクトが撮影された背景を示す入力画像を定義して
いる。加えて、この実施形態では、入力データは、画像
を記録したカメラ固有のパラメータ、すなわち、縦横
比、焦点距離、主点(光軸が撮影平面と交わる点)、一
次半径方向歪み係数及びスキュー角(画素格子の軸が厳
密には直交していないことがありえるため、それらの軸
が成す角度)を定義するデータも含む。
ば、画像を記録したデジタルカメラから画素データをダ
ウンロードするか、又はスキャナ(図示せず)を使用し
て写真を走査することにより生成されても良い。固有カ
メラパラメータを定義する入力データはユーザの側から
ユーザ入力装置6を使用して入力されても良い。
て、画像の中における写真マット上の校正パターンの特
徴の位置を検出すると共に、入力画像が記録されたとき
のカメラの位置と向きを計算するように構成される。
処理して、被写体オブジェクトに対応する画像データを
画像中のその他の画像データから分離するように構成さ
れる。
下に、画像データセグメンタ60により生成される分割
済画像データを編集するように動作可能である。以下に
更に詳細に説明するが、これにより、ユーザは画像デー
タセグメンタ60により生成された画像分割を訂正する
ことができ、特に、例えば、画像データセグメンタ60
により誤って判定された画素を訂正し、被写体オブジェ
クト210に関連付けることができる(例えば、写真マ
ット34及び被写体オブジェクトが撮影のために配置さ
れる面で見える印又はその他の特徴に関連する画素、写
真マット34及び/又はそれが配置される面上の陰影に
関連する画素、及び、入力画像中の被写体オブジェクト
の輪郭に接する写真マット34上の校正特徴に関連する
画素の全てが、画像データ分割中に誤って分類され、訂
正されない場合には、結果として生じる3Dコンピュー
タモデルが不正確になる可能性がある)。
は画像データセグメンタ60及び画像分割エディタ70
により生成される分割済画像データと、カメラ計算器5
0により生成される画像が記録されたときの位置及び向
きを定義するデータとを処理して、入力画像におけるオ
ブジェクトの実際の面を表現する3Dコンピュータモデ
ルを定義するデータを生成するように構成される。
ロキシメータ82、3D点計算器84及び多角形生成器
86を具備する。
approximator)82は、画像データセグメンタ60及び
画像分割エディタ70により入力画像ごとに生成される
分割済画像データを処理し、各画像中の被写体オブジェ
クトのシルエットを線分で近似するように構成される。
シメータ82により生成された線分を処理し、線分の3
次元空間への投影により定義される多角形の共通部分を
計算するように構成される。これらの共通部分は、被写
体オブジェクトの表面に潜在的に存在する3D点を定義
する。3D点計算器84は、計算された3D点を検査し
て、どの点が被写体オブジェクト中の実際の点を表すの
かを判定するように構成される。
は、3D点計算器84により生成された3D点を連結
し、被写体オブジェクトの表面を表す多角形(polygon)
のメッシュを形成するように構成される。
される多角形の共通部分が、被写体オブジェクトの視覚
的な体を定義するので、これらの3D点は、被写体オブ
ジェクトの表面を表す多角形のメッシュ中の多角形の頂
点を形成するように多角形生成器86により連結され
る。このため、これ以降、3D点計算器84により計算
される3D点を3D頂点と呼ぶ。
スモデラ80により生成されたサーフェスモデルにレン
ダリングするために、入力画像データからテクスチャデ
ータを生成するように構成される。
御装置20の制御の下に、3Dコンピュータモデルを生
成する処理中に、表示装置4を介してユーザに対し画像
及び命令を表示するように構成される。更に、中央制御
装置20の制御の下に、ディスプレイプロセッサ110
は、サーフェスモデラ80により生成されたサーフェス
モデルデータを処理し且つサーフェステクスチャラ90
により生成されたテクスチャデータをサーフェスモデル
上にレンダリングすることにより、ユーザが選択した視
点からオブジェクトの3Dコンピュータモデルの画像を
表示するように構成される。
モデラ80により生成されたサーフェスモデルを定義す
るデータを格納するのに加え、オプションとしてサーフ
ェステクスチャラ90により生成されたテクスチャデー
タも格納するように構成される。中央制御装置20は、
出力データ記憶装置120からのデータの出力を、例え
ば、ディスク122などの記憶装置へのデータ及び/又
は信号124として制御する。
34が面200に配置されており、3Dコンピュータモ
デルを生成すべき被写体オブジェクト210は、オブジ
ェクト210がマット上の校正パターンを構成する特徴
により包囲されるように、写真マット34上に配置され
ている。
しく、可能であれば、画像データセグメンタ60による
分割処理中、入力画像において、被写体オブジェクト2
10に関連する画像データをその他の画像データから正
確に区別することができるように、被写体オブジェクト
210中のどの色とも異なるようにする。しかし、いず
れかの色と同じである場合、例えば、被写体オブジェク
ト210中の色と同じ色を有する印220が面200上
に出現する(従って、入力画像中にも出現する)場合、
この実施形態では、後程詳細に説明するように、ユーザ
が画像データセグメンタ60により生成される分割デー
タを編集できるようにすることによって、これを実現す
るべく処理を実行することができる。
部分を示すため、被写体オブジェクト210及び写真マ
ット34の画像はデジタルカメラ230を使用して様々
に異なる位置と向きで記録される。この実施形態では、
カメラ230により記録される画像を定義するデータ
が、ワイヤ232を介して信号44として処理装置2に
入力される。
カメラ230の位置は固定されたままであり、被写体オ
ブジェクト210を乗せた写真マット34が面200上
で移動(並進)及び(例えば、矢印240の方向に)回
転され、カメラ230に対して様々に異なる位置と向き
で被写体オブジェクト210の写真が記録される。面2
00上での写真マット34の回転及び並進中、被写体オ
ブジェクト210はマット34に対して動かない。
る位置及び向きにある被写体オブジェクト210及び写
真マット34の処理装置2へのデータ入力において定義
される画像300、302、304及び306の例を示
す。
10及び写真マット34の画像の記録/入力に続いて、
別の画像を記録し、処理装置2に入力する。この別の画
像は、面200と写真マット34がプリントされている
紙と同じ色を有するオブジェクトとの画像である「背景
画像」である。そのような背景画像は、写真マット34
が記録されている紙と同じ色を有する何もプリントされ
ていない紙のシートを面200上に配置するか、あるい
は、パターンが画像中で見えないように、写真マット3
4を裏返して面200上に配置することによって記録さ
れても良い。
を処理するために処理装置2により実行される処理動作
を示す。
置20はディスプレイプロセッサ110に対してユーザ
が処理すべき入力データを入力することを要求するメッ
セージを表示装置4に表示させる。
で要求に応答してユーザにより入力されたデータを入力
データ記憶装置40に格納する。すなわち、この実施形
態では、入力データは、カメラ230に対して様々に異
なる位置及び向きで記録された被写体オブジェクト21
0及び写真マット34の画像を定義する画像データと、
入力画像を記録するために写真マット34が配置された
面200と、写真マット34の校正パターンがプリント
されている記録材料と同じ色を有するオブジェクトとを
共に示す「背景画像」と、入力画像を記録したカメラ2
30の固有パラメータ、すなわち、アスペクト比、焦点
距離、主点(光軸が撮影平面と交わる点)、1次半径方
向歪み係数及びスキュー角(画素格子の軸が成す角度)
を定義するデータとから構成されている。
は、ステップS4−4で格納された入力データを処理し
て、入力画像ごとに写真マット34上の校正パターンに
対する(従って、被写体オブジェクト210に対する)
カメラ230の位置と向きを判定する。この処理は、入
力画像ごとに、写真マット34の校正パターンを構成し
ている画像中の特徴を検出し、それらの特徴を格納され
ている写真マットのパターンと比較して、マットに対す
るカメラ230の位置と向きを判定することから成る。
ステップS4−6でカメラ計算器50により実行される
処理は、写真マット34上で使用されている特徴の校正
パターンによって決まる。適切な処理は、例えば、同時
係属PCT出願PCT/GB00/04469、JP−
A−9−170914、Niemの“Automatic Reconstruc
tion of 3D Objects Using A Mobile Camera”(Image
and Vision Computing 17(1999年)、125〜1
34ページ及びGortler他の“The Lumigraph”(Comput
er Graphics Proceedings, Annual Conference Serie
s、1996年、ACM-0-89791-764-4/96/008)に記載さ
れている。
ンタ60は各入力画像を処理し、被写体オブジェクト2
10を表現する画像データを写真マット34、及び、写
真マット34が配置されている面200を表現する画像
データから分離する(ステップS4−8は、この実施形
態では、以下に更に詳細に説明するように、後に被写体
オブジェクト210の面の3Dコンピュータモデルを生
成するときに使用するためのデータを生成する予備ステ
ップである)。
グメンタ60により実行される処理動作を示す。
S5−10において、画像データセグメンタ60は、写
真マット34及び背景200を表現するが、被写体オブ
ジェクト210自体を表現しない入力画像中の色を表す
量子化値のハッシュテーブルを作成する。
タセグメンタ60は、図4のステップS4−4で格納さ
れた「背景画像」(すなわち、面200と、写真マット
34がプリントされている材料と同じ色を有するオブジ
ェクトとを示す、処理装置2に入力されるべき最終画
像)における次の画素のRGBデータ値を読み取る。
タ60は下記の式に従って画素の量子化赤色(R)値、
量子化緑色(G)値及び量子化青色(B)値を計算す
る。 q=(p+t/2)/t … (1) 式中、「q」は量子化値、「p」はステップS5−2で
読み取られたR、G又はBの値、「t」は被写体オブジ
ェクト210を示す入力画像からのRGB値が背景とラ
ベル付けされるべき背景色にどれほど近くなければなら
ないかを判定する閾値である。この実施形態では、
「t」は4に設定されている。
タ60は、ステップS5−4で計算された量子化R値、
G値及びB値を従来と同様に組み合わせて、「三重値
(triple value)」を生成する。
ンタ60は、ステップS5−4で計算された量子化R
値、G値及びB値にハッシング関数を適用して、ハッシ
ュテーブルのビン(bin)を定義し、且つステップS5
−6で定義された「三重」値を定義されたビンに追加す
る。すなわち、この実施形態では、画像データセグメン
タ60は、下記のハッシング関数を量子化R値、G値及
びB値に適用し、ハッシュテーブルのビンを定義する。 h(q)=(qred&7)*2^6+(qgreen&7)*2^3+(qblue&7) … (2) 具体的には、ハッシュテーブルのビンは、各色の3つの
最下位ビットにより定義される。この関数は、各ビンが
少数の「三重」値のみを有するように、データを試行
し、ハッシュテーブルの利用可能なビンに分散させるよ
うに選択されている。この実施形態では、ステップS5
−8で、「三重」値がビンに既に存在していない場合に
限って「三重」値をそのビンに追加するので、各「三
重」値はハッシュテーブルに一度しか追加されない。
メンタ60は、背景画像中に別の画素が存在するか否か
を判定する。以上説明したように「背景」画像の各画素
を処理し終わるまで、ステップS5−2からS5−10
を繰り返す。この処理の結果、「背景」画像中の色を表
現する値を含むハッシュテーブルが生成される。
画像データセグメンタ60は各入力画素を順に考慮し、
ハッシュテーブルを使用して、写真マット34及び背景
に関連する入力画像中のデータを、被写体オブジェクト
210に関連する入力画像中のデータから分離する。分
割処理の結果が表示装置4に表示される。
成するためにステップS5−2からS5−10で処理さ
れる「背景」画像は、写真マット34上の校正特徴を示
していない。従って、ステップS5−12からS5−4
8で実行される分割は被写体オブジェクト210に関連
する画素データと、写真マット34上の校正特徴に関連
する画素データとを区別しない。その代わりに、この実
施形態では、以下に更に詳細に説明するように、被写体
オブジェクト210の面の3Dコンピュータモデルを生
成するためにサーフェスモデラ80により実行される処
理は、写真マット34上の校正特徴に関連する画素がサ
ーフェスモデルに寄与することのないように実行され
る。
メンタ60は次の入力画像を考慮し、ステップS5−1
4では、入力画像中の次の画素(ステップS5−14が
初めて実行される場合、これは最初の画素である)のR
値、G値及びB値を読み取る。
メンタ60は先の式(1)を使用して、画素の量子化R
値、量子化G値及び量子化B値を計算する。
メンタ60はステップS5−16で計算された量子化R
値、G値及びB値を組み合わせて、「三重値」を生成す
る。
メンタ60は先の式(2)に従ってハッシング関数をス
テップS5−16で計算された量子化値に適用して、ス
テップS5−2からS5−10で生成されたハッシュテ
ーブルのビンを定義する。
メンタ60は、ステップS5−20で定義されたハッシ
ュテーブルのビンの「三重」値を読み取る。それらの
「三重」値は、写真マット34の材料及び背景の面20
0の色を表現している。
メンタ60は、ステップS5−18で生成された、現在
考慮すべき入力画像中の画素の「三重」値がハッシュテ
ーブルのビンの背景「三重」値のいずれかと同じである
か否かを判定する。
が背景「三重」値と同じであると判定されれば、ステッ
プS5−26で、その画素は背景画素であると判定し、
画素の値を「黒色」に設定する。
の「三重」値が背景のどの「三重」値とも同じでないと
判定された場合には、ステップS5−28で、その画素
は被写体オブジェクト210の一部であると判定し、画
像データセグメンタ60は画素の値を「白色」に設定す
る。
メンタ60は、入力画像に別の画素が存在するか否かを
判定する。入力画像中の各画素を以上説明したように処
理し終わるまで、ステップS5−14からS5−30を
繰り返す。
画像データセグメンタ60は画像の画素を背景画素又は
オブジェクト画素として分類する上での誤りを修正する
と共に表示装置4に分割処理の結果を表示するための処
理を実行する。
データセグメンタ60はメディアンフィルタとして使用
すべき円形マスクを定義する。この実施形態では、円形
マスクは4画素分の半径を有する。
メンタ60はステップS5−32で定義したマスクの中
心をステップS5−26及びS5−28で生成された2
値画像の次の画素(ステップS5−34が初めて実行さ
れる場合には、これは最初の画素である)の中心に配置
するための処理を実行する。
メンタ60はマスク内部の黒色画素の数及び白色画素の
数をカウントする。
メンタ60は、マスク内部の白色画素の数がマスク内部
の黒色画素の数以上であるか否かを判定する。
画素の数以上であると判定されれば、ステップS5−4
0で、画像データセグメンタ60はマスクの中心を位置
決めする画素の値を白色に設定する。これに対し、ステ
ップS5−38で黒色画素の数が白色画素の数より多い
と判定された場合には、ステップS5−42で、画像デ
ータセグメンタ60はマスクの中心を位置決めする画素
の値を黒色に設定する。
ロセッサ110は、現在処理中の入力画像の低解像度版
(「サムネイル」画像)を表示装置4に表示し、先にス
テップS5−34からS5−42で画素に対して実行さ
れた分割処理の結果をこのサムネイル画像中に表示す
る。このように、サムネイル画像は、入力画像中の各画
素が処理される毎に分割処理の結果を示すためにインク
リメンタルに変更される。この実施形態では、ディスプ
レイプロセッサ110は、背景を表すものとして判定さ
れた入力画像中の画像データが、サムネイル画像中にお
いて青色などの所定の色として提示されるようにサムネ
イル画像中で分割処理の結果を表示する。
により、ユーザは、入力画像の処理済の部分と分割処理
の結果とを確認できるので、修正が必要か否かを判定す
ることができる。
メンタ60は2値画像中に別の画素が存在するか否かを
判定し、以上説明したように各画素を処理し終わるま
で、ステップS5−34からS5−46を繰り返す。
メンタ60は、処理すべき別の入力画像が存在するか否
かを判定する。以上説明したように各入力画像を処理し
終わるまで、ステップS5−12からS5−48を繰り
返す。
は、中央制御装置20は、ステップS4−8で生成され
た画像分割の修正の希望を示す信号がユーザ入力装置6
を介してユーザから受信されたか否かを判定する(この
実施形態では、信号は、修正が望まれる分割に対応する
表示装置4に表示されたサムネイル画像をユーザが指示
/クリックすることによって生成される)。
更すべきであると判定される場合、ステップS4−12
において、画像分割エディタ70は、ユーザの入力命令
に従ってステップS4−10でユーザにより選択された
分割を修正する。
の対話修正中に、画像分割エディタ70により実行され
る処理動作を示す。
いて、画像分割エディタ70は、ディスプレイプロセッ
サ110に対して、ステップS4−10でユーザにより
(対応するサムネイル画像を指示/クリックすることに
よって)選択された画像分割を編集のために表示装置4
に表示させる。図7を参照して具体的に説明すると、こ
の実施形態では、表示されたサムネイル画像310から
324の全ての中からステップS4−10でユーザによ
り選択された画像分割318が、サムネイル画像よりも
大きい形式でウィンドウ400内に表示される。この実
施形態では、ウィンドウ400に表示される画像分割
は、分割を生成するように処理された入力画像と同数の
画素を有する。加えて、編集用の拡大形式で表示された
分割であることを示すために、ユーザにより選択された
サムネイル画像(図7の例ではサムネイル画像318)
は、境界が強調表示されたり、あるいは、別の方法で残
りのサムネイル画像と区別されたりする。
割エディタ70は、ディスプレイプロセッサ110に対
して、ウィンドウ400内に表示された画像分割上にユ
ーザによる移動が可能なウィンドウ402を表示させ
る。加えて、画像分割エディタ70は、どの画素がステ
ップS4−8で画像データセグメンタ60によりオブジ
ェクト210又は写真マット34の特徴に属するものと
して判定されたか、及び、どの画素が背景画素であると
判定されたかをユーザが見ることができるように、ウィ
ンドウ402に含まれる画像分割の一部が拡大形式で示
される別のウィンドウ410をディスプレイプロセッサ
110に対して表示させる。
ィタ70は、ユーザの命令に従って、ウィンドウ410
に表示された画素を背景画素からオブジェクト画素(す
なわち、オブジェクト210又は写真マット34の特徴
を表す画素)に変更し、及び/又は、オブジェクト画素
を背景画素に変更する。具体的には、編集のために、画
像分割エディタ70は、この実施形態ではブラシの形態
を有し、マウスなどのユーザ入力装置6を使用して移動
させることでウィンドウ410において変更する画素を
指定することができるポインタ412をディスプレイプ
ロセッサ110に対して表示させる。この実施形態で
は、ポインタ412を用いてユーザが指示する各画素
は、元が背景画素の場合にはオブジェクト画素に変更さ
れ、元がオブジェクト画素の場合には背景画素に変更さ
れる。この実施形態では、画像分割エディタ70は、ユ
ーザ選択ボタン350及び360をディスプレイプロセ
ッサ110に表示させる。ボタン350を選択すると、
ポインタ412の幅が広くなり(同時により多くの画素
を指定でき、ウィンドウ410中の広い領域を迅速に変
更できるようになる)、ボタン360を選択すると、ポ
インタ412の幅が狭くなる。
ユーザは、例えば、画像データセグメンタ60により生
成された分割を編集し、画像データセグメンタ60によ
り被写体オブジェクト210に関連するものとして誤っ
て判定された画素(例えば、被写体オブジェクト210
の色と同じ色を有する場合、画像データセグメンタ60
が被写体オブジェクト210に関連する画像データから
分離しないであろう面200上の印220に関連する画
素データ)を背景画素として指定して、及び/又は、訂
正されない場合には、サーフェスモデラ80により後の
処理で生成される被写体オブジェクトの3次元コンピュ
ータモデルにおいて誤差を生じることが判明している画
像分割(図7の例に示す)中の被写体オブジェクト21
0の輪郭に接する写真マット34の各校正特徴に関連す
る画素を背景として指定する。同様に、ユーザは、画像
データセグメンタ60により誤って被写体オブジェクト
210に関連する画素であると判定された写真マット3
4及び/又は面200上の陰影に関する画素を背景とし
て指定することができる。
のサムネイル画像を指示/クリックするか、あるいは、
「処理開始」ボタンを指示/クリックすることによっ
て)現在表示中の分割の編集を終了すると、ディスプレ
イプロセッサ110は、ステップS6−4でユーザによ
り行なわれた画像分割に対する変更を示すために、ステ
ップS6−4でユーザにより編集された分割に対応する
表示中のサムネイル画像(図7の例ではサムネイル画像
318)を変更する。
14において、画像分割エディタ70は、ユーザが画像
分割に対して更なる変更を行なうことを希望するか否
か、すなわち、ユーザが別のサムネイル画像310から
324を指示/クリックしたか否かを判定する。
4において、画像分割に対してそれ以上の変更が行なわ
れない(すなわち、ユーザが「処理開始」ボタン340
を指示/クリックした)と判定される場合、処理はステ
ップS4−16へと進む。
モデラ80は、被写体オブジェクト210の面の3Dコ
ンピュータモデルを定義するデータを生成するための処
理を実行する。
モデラ80により実行される処理動作を示す。
ットアプロキシメータ82は、ステップS4−8におい
ては画像データセグメンタ60、ステップS4−12に
おいては画像分割エディタ70により予め生成された分
割済画像データを処理して、各入力画像中の被写体オブ
ジェクトのシルエット(すなわち、輪郭)を直線で近似
すると共に、各直線に対して固有のラベルを割り当て
る。この実施形態において、各画像の被写体オブジェク
トのシルエットを直線で近似するために、シルエットア
プロキシメータ82は、例えば、M.K. Leung及びY.H. Y
angの“Dynamic Strip Algorithm in Curve Fitting”
(Computer Vision Graphics and Image Processing 51
(2)、145〜165ページ、1990年8月)に記載
されるような従来の方法で処理を実行する。
各画像中の被写体オブジェクトのシルエットは、図9に
示すように複数の連結された直線により近似される。図
9は、図3の入力画像302の処理により生じたオブジ
ェクトシルエットの近似を示す。尚、図9の例(及びシ
ルエットを示す図9以降の全ての図面)では、シルエッ
トを近似する図示直線の本数は、ステップS8−2でシ
ルエットアプロキシメータ82により実際に生成される
であろう本数よりもかなり少ない場合もある。
は、各入力画像中のシルエット500から514は、線
分により近似されており、3次元空間における各シルエ
ットの位置及び向きは、各入力画像の位置及び向きを判
定するためにステップS4−6でカメラ計算器50によ
り実行された計算の結果、既知である(各シルエット5
00から514は、入力画像の2次元平面に位置す
る)。加えて、3次元空間におけるカメラ230の焦点
の位置も、ステップS4−6でカメラ計算器50により
実行された計算の結果、各入力画像に対して既知であ
る。
像を記録したカメラ230の焦点515から519と共
に、3次元空間における各点(この時点では未知)で被
写体オブジェクト210の表面に接する3次元空間での
無限の円錐形を定義する(シルエットは、画像中のオブ
ジェクト表面の輪郭を定義するためである)。これは、
図10において、シルエット502に関して示されてお
り、シルエット502は、焦点位置515と共に円錐形
520を定義する。円錐形の断面図は、シルエットと同
じ形状であるので、各円錐形は、複数の無限の平面三角
形から成る。各三角形は、シルエットを近似する線分の
うちの1本の端点を通る線とカメラ230の焦点とによ
り定義されている(各平面三角形は、シルエットの線分
の3D空間への投影により定義される)。
で全てが交わる無限の三角形の平面から成る無限の多面
体である。
定義される円錐形の共通部分が、3次元空間における被
写体オブジェクトの境界面を定義する。従って、被写体
オブジェクトの3次元コンピュータモデルは、全円錐形
の共通部分、すなわち、視覚的な体を計算することによ
って生成することができる。
各円錐形を構成する平面三角形の共通部分を計算するこ
とによって計算される。少なくとも2つの別々の円錐形
(すなわち、少なくとも2つの別々のシルエット)の平
面三角形のうちの3つが交わる任意の3D点により、被
写体オブジェクト210の表面の頂点が定義されるであ
ろう。別々のシルエットの3つの三角形が交わる場合
が、ここでは、3D点528で交わる三角形522、5
24及び526として図10に示される。2つのシルエ
ットの3つの三角形が交わる場合、同じシルエットを元
にした三角形は、シルエット中の隣接する線分(すなわ
ち、シルエット中の1つの頂点で交わる線分)の3D投
影により定義される。これは、3D点536で交わる平
面530、532及び534として図10に示される
(平面530及び532は、シルエット514中の隣接
する線分531及び533により定義され、点536
は、平面530と532が交わるエッジに位置する)。
体オブジェクト210の表面を確実に正確に表せるよう
にするためには、被写体オブジェクトの表面の頂点とな
る三角形の各共通部分を計算する必要がある。第3実施
形態で説明するように、これは、各シルエット中の線分
により定義された各三角形を残る全ての三角形のその他
の全ての線分により定義された全ての三角形に対して検
査し、3D点の1組(セット)を生成することによっ
て、達成することができると考えられる。しかし、被写
体オブジェクトの表面の頂点を表す3D点をこのような
方法で計算するのに必要な計算の回数は膨大である。具
体的には、シルエットの総数が「m」個であり、シルエ
ット中の直線の本数が「n」本である場合、O(mn
3)回の計算が必要になるであろう。加えて、検査され
る三角形の多くが交わらない(従って、3D点の生成に
至らない)うえに、被写体オブジェクト210の表面上
に位置しない3D点は、三角形が偶然に交わることによ
って生成される可能性がある(このため、被写体オブジ
ェクト210のモデルに対してどの3D点が実際に頂点
を表すのかを判定するための処理を3D点に対して更に
行なう必要がある)ので、この計算の大半が不必要なも
のとなる。
ェクトの表面の頂点を表す3D点を計算するのに必要な
計算の回数を低減するように処理が実行される。
理について説明する。
空間のボリュームを考慮し、このボリュームを検査して
以下の点を判定するための処理が実行される: (1)交わって3D点を生成するのに十分な平面三角形
(すなわち、この実施形態では3つ)がボリューム中に
存在しないか、あるいは、ボリューム中の平面三角形
が、被写体オブジェクト210の表面の頂点を表す3D
点で交わることがないという理由で、ボリュームを廃棄
することができるか否か(以下で詳細に後述)、(2)
ボリュームが、相互に交わるのに十分であると共に、被
写体オブジェクト210の表面の頂点を表すであろう所
定数(この実施形態では、1つの3D点)を超える3D
点を生成するのに十分な平面三角形を含むという理由
で、より小さいボリュームを考慮すべくボリュームを再
分割すべきか否か、又は、(3)ボリュームが、相互に
交わると共に、被写体オブジェクト210の表面の頂点
を表す十分に少ない所定数(この実施形態では1つ)の
3D点を生成するのに適切な数(この実施形態では3
つ)の平面三角形を含むか否か。この場合、これらの点
の3D位置が計算/検査され、被写体オブジェクト21
0の表面の頂点を実際に表すか否かが判定される。
て、3D点の計算に至らない不必要な処理を回避しなが
ら、シルエットの共通部分により定義される被写体オブ
ジェクト210の表面の全ての頂点を確実に計算するこ
とができる。特に、更に計算することなく、大きなボリ
ュームの3D空間を廃棄することができる。
を廃棄又は再分割すべきか、あるいは、3D点を計算す
べきかを判定するための3D空間のボリュームに対する
検査が、3Dボリュームを各2次元画像に投影し、3D
ボリュームの2D投影を画像中の各シルエットを構成す
る直線(ステップS8−2において生成済)に対して検
査することによって実行される。このように2Dにおい
て検査を実行することによって、ボリュームを検査する
のに実行しなければならない処理動作の数が削減され
る。
ェクト210の表面の頂点を表す3D点で交わらないと
いう理由でボリュームを廃棄することができるか否かを
判定するため、3D点で交わる平面に寄与しないシルエ
ットにより定義される全ての円錐形(多面体)の内部に
3D点が位置するか否かを判定するための処理が実行さ
れる。図10に示す例を参照すると、平面530、53
2及び534の場合、シルエット500、502、50
4、506、508及び510により定義される全ての
円錐形の内部に3D点536が位置するか否かを判定す
るための処理が実行される(これらのシルエットは、3
D点536で交わる3つの平面のうちのいずれも定義し
ないためである)。この実施形態では、各画像中のボリ
ュームの2D投影を検査し、2D投影が各シルエット内
に位置することを確認することによって、この処理が実
行される。すなわち、検査は2Dで実行されるので、実
行すべき処理動作が削減される。
き、被写体オブジェクト210の頂点を表すか否かを判
定するために、この3D点の検査が続けて行なわれる。
これは、3つの平面三角形を含む3Dボリュームが識別
されるときに3D点が計算されるからである。しかし、
3つの平面三角形は、ボリューム内の3D点で実際には
交わらないこともある。従って、この実施形態では、計
算された3D点が識別されたボリューム内にあるか否か
を判定するための検査が実行される。
クトの表面が単純な多面体である、すなわち、4つ以上
の平面が単一の3D点で交わるような一致が存在しない
ことを想定している。コンピュータグラフィックスアプ
リケーションでは、必要に応じて、各シルエットを近似
する直線を定義するデータに少量の乱雑音を加えること
によって、視覚的な結果に影響することなく、この状態
が常に得られるのでこの制限はあまり問題とならない。
表す3D点を計算するためにこの実施形態で実行される
処理について詳細に説明する。
において、シルエットアプロキシメータ82は、シルエ
ットごとにステップS8−2で生成されたデータを処理
し、内部の各線分に対するバウンディングボックスを計
算すると共に、シルエットごとの4分木構造にバウンデ
ィングボックスデータに格納する。
表面の任意の3D頂点の計算に先立って実行される。こ
れは、後述するように、3D点を計算する処理中にシル
エット中のどの直線を考慮しなくても良いかを判定する
のにステップS8−4で生成されるデータを使用するか
らである。考慮しなくても良いと判定される直線は、処
理しても被写体オブジェクト210の表面の3D頂点を
生成することができない直線である。
アプロキシメータ82により実行される処理動作を示し
ている。
ルエットアプロキシメータ82は、処理すべき次のシル
エット(ステップS11−2が初めて実行される場合、
これは最初のシルエットである)を考慮し、ステップS
11−4において、ステップS8−2で生成されたシル
エットを近似する各直線に対する画像の側面に平行な側
面を有するバウンディングボックスを計算する。
と、シルエットアプロキシメータ82は、バウンディン
グボックスの各辺が画像の側面に平行であるように、シ
ルエットを構成する各線分に対してバウンディングボッ
クス(図12の点線で示す)を計算する。バウンディン
グボックスが計算されるシルエット中の直線は、バウン
ディングボックスの対角線である。それ自体が画像の側
面に平行であるシルエット中の直線(すなわち、図12
の例では線550及び552)の場合、バウンディング
ボックスは、線に垂直な方向の幅が0であるように定義
される(図12の例では、線550及び552に対する
バウンディングボックスは、バウンディングボックスを
見ることができるように狭い幅で示される)。
の4分木のルートノードに各バウンディングボックスの
最小/最大x値及び最小/最大y値を格納する(これら
の値は、図12に示す例では、バウンディングボックス
554において示される)。
アプロキシメータ82は、現在考慮中の4分木に格納さ
れているx値の範囲及びy値の範囲を判定する(ステッ
プS11−6が初めて実行される場合、これはステップ
S11−4で生成されたルートノードである)。すなわ
ち、ステップS11−6において、シルエットアプロキ
シメータ82は、最小x値と最大x値との間の差分、及
び、最小y値と最大y値との間の差分を計算する。
アプロキシメータ82は、現在考慮中のノードをステッ
プS11−6で最大範囲を有するものとして判定された
座標中の値の中央値で分割することによって、4分木に
2つの子ノードを作成する。すなわち、ステップS11
−6においてy値の範囲がx値の範囲より広いと判定さ
れる場合、シルエットアプロキシメータ82は、y値の
中央値でノードを分割し、範囲が狭いと判定される場合
には、x値の中央値で分割される。
値の範囲はx値の範囲よりも広いので、シルエットアプ
ロキシメータ82は、y値の中央値(すなわち、シルエ
ットの中央値線分の端点)を通るy軸に垂直な線564
を定義することによって2つの子ノード560及び56
2を作成する。図12の例において、17個の線の端点
が存在するので、線564の上方には8つの線分の端点
があり、線564の下方には8つの線分の端点があるよ
うに、線564は端点を通るよう定義される。偶数個の
値が存在する場合、この実施形態では、シルエットアプ
ロキシメータ82は、線564が中央値にまたがる2つ
の値の中間点を通るように定義する。ステップS11−
10において、シルエットアプロキシメータ82は、ス
テップS11−4で計算されたバウンディングボックス
を親ノードからステップS11−8で作成された子ノー
ドに割り当てる。
82は、バウンディングボックスの全体又は一部が子ノ
ード内に位置する場合、又は、子ノードに接する場合
に、バウンディングボックスをその子ノードに割り当て
る。従って、図12に示す例において、全体が線564
の上方に位置する各バウンディングボックスは、子ノー
ド560に割り当てられ、全体が線564の下方に位置
する各バウンディングボックスは、子ノード562に割
り当てられる。バウンディングボックス570、572
及び574は、部分的に子ノード560及び562の双
方にあるので、子ノード560及び562の双方に割り
当てられる。バウンディングボックス576及び578
は、それぞれが、子ノード560及び562の境界を定
義する線564に接触するので、子ノード560及び5
62の双方に割り当てられる。
トアプロキシメータ82は、次の子ノードを考慮し、ス
テップS11−14において、子ノード中のバウンディ
ングボックスの数が、親ノード中のバウンディングボッ
クスの数と同数であるか否かを判定する。
中のバウンディングボックスの数と親ノード中のバウン
ディングボックスの数が同数であると判定される場合、
更に下位の子ノード間でのバウンディングボックスの分
割が不可能であると考えられる(更に下位の子ノード
は、各々、親から割り当てられたバウンディングボック
スの全てを含む)ので、子ノードを更に再分割する必要
はない。加えて、ステップS11−12で考慮される現
在の子ノードは、親と同じバウンディングボックスを含
むのでこれを保持する必要がなく、また、子ノードはバ
ウンディングボックスを含まない(親からのバウンディ
ングボックスの全ては、ステップS11−12で考慮さ
れる現在の子ノード中にある)ので、ステップS11−
8で作成されるもう一方の子ノード(すなわち、ステッ
プS11−12で考慮される子ノードの同胞)を保持す
る必要もない。
のバウンディングボックスの数が親ノード中の数と同数
であると判定される場合、処理はステップS11−16
へと進む。ここで、シルエットアプロキシメータ82
は、ステップS11−12で考慮された子ノードとステ
ップS11−8で作成された兄弟ノードを削除する。続
いて、処理はステップS11−20へと進む。
て、子ノード中のバウンディングボックスの数が親ノー
ド中の数と同数でないと判定される場合、処理はステッ
プS11−18へと進む。ここで、シルエットアプロキ
シメータ82は、子ノード中のバウンディングボックス
の数が2に等しいか否かを判定する。
中のバウンディングボックスの数が2に等しいと判定さ
れる場合、十分に少ない数のバウンディングボックスを
有する子ノードが既に取得されているので、この実施形
態では、子ノードの更なる再分割は実行されない。従っ
て、処理はステップS11−20へと進む。
て、子ノード中のバウンディングボックスの数が2に等
しくないと判定される場合、処理はステップS11−6
へと戻る。ステップS11−14において子ノード中の
バウンディングボックスの数と親ノード中のバウンディ
ングボックスの数が等しいと判定されるか、あるいは、
ステップS11−18において2つのバウンディングボ
ックスを含む子ノードが生成されたと判定されるまで、
ステップS11−6からS11−8が繰り返され、子ノ
ードの作成/再分割が繰り返し行なわれる。
トアプロキシメータ82は、処理すべき別の子ノードが
存在するか否かを判定し、以上説明したように各子ノー
ドを処理し終わるまでステップS11−12からS11
−20を繰り返す。
トアプロキシメータ82は、処理すべき別のシルエット
が存在するか否かを判定し、以上説明したように各シル
エットを処理し終わるまでステップS11−12からS
11−22を繰り返す。
において、3D点計算器84は、被写体オブジェクト2
10の表面の頂点を表す3D点を計算するための処理を
実行する。
器84により実行される処理動作を示す。
D点計算器84は、被写体オブジェクト210が位置
し、従って、オブジェクト表面の各点を表す全ての計算
された3D点も位置することになる3D空間中のボリュ
ームを定義する。
テップS13−2で3D点計算器84により定義された
開始ボリュームは、垂直な側面と水平な上面及び底面を
有する直平行六面体600である。垂直な側面は、写真
マット34の特徴の校正パターンの縁部に接するように
位置決めされる(従って、被写体オブジェクト210の
全体を含む)。直平行六面体600の上面の位置は、カ
メラ230の焦点612からステップS4−4で格納さ
れた入力画像のうちのいずれか1つの上エッジを通る線
610が写真マット34の中心を通る垂直線614と交
わることによって定義される位置に設定される。具体的
に説明すると、カメラ230の焦点612及び画像の上
エッジは、ステップS4−16で実行された位置及び向
きの計算の結果、既知であり、上面の高さを線610が
写真マット34の中心を通る垂直線614と交わる点に
対応するように設定することによって、上面は常に被写
体オブジェクト210の最上部より上方に位置すること
になる(被写体オブジェクト210の最上部が各入力画
像で見える場合)。直平行六面体600の水平底面の位
置は、ステップS4−4で格納された入力画像のうちの
いずれか1つの底エッジを通るカメラ230の焦点61
2からの線616が、写真マット34の中心を通る垂直
線614と交わることによって定義される位置に設定さ
れる。これにより、直平行六面体600の底面は、確実
に被写体オブジェクト210の底面の下方に延伸するよ
うになる(被写体オブジェクト210の底面が各入力画
像で見える場合)。
に、カメラ230が三脚上の固定位置に設置され、被写
体オブジェクト210を乗せた写真マット34がカメラ
に対して移動させられる状態で被写体オブジェクト21
0を撮影すると、各画像が記録されたとき、カメラ23
0は常に直平行六面体600の外側に位置することにな
る。しかし、写真マット34及び被写体オブジェクト2
10をカメラ230に対して移動させる代わりに、写真
マット34及び被写体オブジェクト210を固定してお
いてカメラ230を別の位置及び向きに移動させること
もできる。この場合、図14bに示すように、高い視点
から被写体オブジェクト210の上面を示すように画像
が記録されるとき、カメラ230の位置は直平行六面体
600内にあっても良い。この実施形態で3D点計算器
84により実行される処理により、直平行六面体600
はカメラ230により記録される画像へと投影され、投
影されたボリューム中に含まれるものに関する情報が判
定されるので、直平行六面体600は、全ての記録画像
に関して、完全にカメラ230の正面に位置する必要が
ある。従って、この実施形態では、3D点計算器84
は、ステップS4−6で計算されたカメラ位置及びカメ
ラ向きに対して直平行六面体600を検査し、図14c
に示すように、各角(corner)が全ての計算されたカメ
ラ位置の正面にくるように直平行六面体600を調整す
る。
−4において、3D点計算器84は、ステップS13−
2で定義された3Dボリューム(すなわち、図14a、
14b及び14cの例での直平行六面体600)を格納
スタックの最上部に加え、ステップS13−6におい
て、スタックの最上部から次のボリュームを取り出す
(ステップS13−6が初めて実行される場合、これは
ステップS13−2で定義される最初のボリュームであ
る)。
器84は、ステップS13−6でスタックから取り出さ
れたボリュームの状態を判定する。
ステップS13−6でスタックから取り出されたボリュ
ームが、被写体オブジェクト210の表面のいずれかの
3D頂点を含む可能性がない(従って、廃棄することが
できる)か否か、被写体オブジェクト210の表面の2
つ以上の3D頂点を含む可能性があるためにボリューム
を再分割する必要があるか否か、あるいは、被写体オブ
ジェクトの表面の単一の頂点のみを定義する平面をボリ
ュームが含むか否かを判定する。この場合、3D頂点の
位置を計算し、検査することができる。この実施形態に
おいて、3D点計算器84は、ステップS13−6でス
タックから取り出された3Dボリュームを各画像へと投
影し、ステップS8−2で予め計算された各シルエット
を近似する直線に対して結果として生じる2D投影を検
査することによってこれらの判定を実行する。
D点計算器84により実行される処理動作を示す。
D点計算器84は、ステップS13−6でスタックから
取り出されたボリュームの角をステップS4−6で予め
計算された各撮影位置及び撮影向きに対してカメラ23
0の2次元撮影平面へと投影し、投影された角の連結性
を定義するデータを保持する。
るこの投影の結果は、2次元撮影平面内の6つの包囲さ
れた領域(これらの領域は重なる可能性がある)を定義
する8つの点620から634から構成される2D投影
650である。図16の例では、各点により定義される
6つの領域は、それぞれ、点のグループ(620、62
2、624、626)、(620、622、630、6
28)、(622、630、632、624)、(62
4、632、634、626)、(626、620、6
28、634)及び(628、630、632、63
4)により定義される領域である。
器84は、カウンタnvの値を0に設定する。以下に説
明するように、このカウンタは、少なくとも1つの「検
証済頂点」(すなわち、2D投影されたボリューム65
0内に位置するシルエット中の2つの隣接する直線が交
わる点)が検出された「アクティブなカメラ」リスト上
のカメラの台数を表す。アクティブなカメラのリスト
は、ステップS8−2で生成された処理中に考慮される
べきシルエットのリストである。最初に、アクティブな
カメラリストは、全てのシルエットを含むが、後述する
ように、シルエットがステップS15−2で生成された
2D投影領域650を包囲すると判定される場合、シル
エットはリストから削除される。具体的には、シルエッ
トは2D投影領域650を包囲するので、全ての投影さ
れた子ボリュームを包囲することになり、子ボリューム
が生成/検査されるのを回避するために、シルエットは
アクティブなカメラリストから削除される。
器84は、カウンタneの値を0に等しく設定する。後
述するように、このカウンタの値は、少なくとも1本の
「検証済エッジ」(すなわち、2D投影ボリューム65
0内に位置するシルエットからの直線)が検出された
「アクティブなカメラ」リスト上のカメラの台数を表
す。
器84は、カウンタnpの値を0に等しく設定する。後
述するように、このカウンタの値は、平面三角形(すな
わち、図10を参照して説明したように、シルエット中
の線分−すなわち「エッジ」−及びカメラ230の焦点
により定義される三角形)の数を表す。この平面三角形
は、ステップS13−6でスタックから取り出されたボ
リュームと交わる。ステップS15−10において、3
D点計算器84は、フラグ「either SubdivideOrDisca
rd」の値を「偽」に設定する。
は、ステップS15−2で生成された2D投影ボリュー
ム650とステップS8−2の処理で生成された各画像
中のシルエットの直線(エッジ)との間の関係に基づい
て処理を実行し、(被写体オブジェクト210の表面の
いずれかの3D頂点を含まないことが理由で)ステップ
S13−6でスタックから取り出された3Dボリューム
を廃棄することができるか否かを判定するか、(オブジ
ェクト表面の2つ以上の3D頂点を含む可能性があるの
で)より小さいボリュームを考慮するのに再分割を必要
とするか、あるいは、オブジェクト表面の単一の頂点を
定義する平面を含むか(この場合、頂点の位置が計算/
検査される)を判定する。
処理ステップを説明する前に、画像中の2D投影ボリュ
ーム650とシルエットとの間に存在し、3D点計算器
84により検査される様々な関係に関して説明する。加
えて、3D点計算器84が、シルエットと2D投影ボリ
ューム650との間の画像ごとに判定された関係に基づ
いて、ステップS13−6でスタックから取り出された
ボリュームに対してどの処理を実行するべきかを判定す
る方法についても説明する。
ットと2D投影ボリューム650とが有する可能性があ
り、3D点計算器84により検査される8つの異なる関
係を示す。
シルエットのちょうど1つの頂点700(すなわち、シ
ルエットを構成する2つの連続する線分が交わるシルエ
ット中の点)が、投影されたボリューム650の6つの
2次元領域(これらの領域は、先に説明したように、ボ
リュームの投影された角により定義される)のうちの1
つの内部に位置する。
ちょうど1つの頂点702が、2D投影ボリューム65
0内に位置すると共に、投影ボリューム中に頂点をもた
ない少なくとも1本の線分704が、2D投影ボリュー
ム650内に位置する。
2D投影ボリューム650は、2つ以上のシルエット頂
点(図17cの例では、4つのシルエット頂点706、
708、710及び712が示されるが、2つ以上の任
意の数の頂点が2D投影ボリューム650内に位置する
ときにこの第3の関係が存在すると判定される)を含
む。
シルエットのちょうど1つの単一の線分714が2D投
影ボリューム650内に位置し、線分714の頂点はい
ずれも投影ボリューム650内に位置しない。
2D投影ボリューム650は、その中に位置する頂点を
有しないシルエットの少なくとも2本の線分716及び
718を含む。
シルエット720は、全体的に2D投影ボリューム65
0の境界の内側に位置する。この第6の関係は、図17
cを参照して説明した関係3(2D投影ボリューム65
0が少なくとも1つのシルエット頂点を含む)の特別な
場合であり、関係3及び関係6の双方は、ステップS1
3−6でスタックから取り出されたボリュームを同様に
処理する方法に関する決定に影響する。従って、この実
施形態では、関係6は3D点計算器84により明示的に
識別されず、その代わりに関係3のみが検出される。こ
れには処理が削減されるという効果があるが、それは、
シルエットの全ての頂点が検査されて、2D投影ボリュ
ーム650中にあるか否かが判定される訳ではないから
である(関係6が明示的に識別される場合には必要とな
るであろう)。
2D投影ボリューム650は、全体的にシルエット72
2内に位置する。
シルエット724及び2D投影ボリューム650は相互
に重ならない。
ルエットとの間の関係に基づいて、3D点計算器84
は、ステップS13−6でスタックから取り出されたボ
リュームの状態を3D点計算器84により検査される以
下の8つのケースで示されるように設定する(すなわ
ち、ボリュームの処理法を判定する)。8つのケース
は、優先順位に従って以下に挙げられるので、リスト中
の優先順位の高いケースは、リスト中の優先順位の低い
ケースに優先し、スタックから取り出されたボリューム
に対して実行される処理は、より高い優先順位のケース
に基づいて判定される。
画像が、シルエットと2D投影ボリューム650との間
で関係8(図17hを参照して説明)を有する場合、状
態を「ボリュームの廃棄」に設定する。関係8におい
て、2D投影ボリューム650及びシルエット724は
重なり合わないので、ステップS13−6でスタックか
ら取り出されたボリューム中の3D点はいずれも、シル
エット724上、又は、その内部の点へと投影されな
い。このため、3D点は、被写体オブジェクト210の
表面の頂点を表すことができない。従って、ステップS
13−6でスタックから取り出されたボリュームは、廃
棄されることになる。
つの画像がシルエットと2D投影ボリューム650との
間で関係4(図17dを参照して説明)を有する場合、
状態を「3D点の計算」に設定する。その他の全ての画
像における関係は関係7である(図17gを参照して説
明)。
写体オブジェクト210の表面の3D頂点は、それぞれ
別々のシルエットを元にした3つの平面三角形の共通部
分によって、あるいは、同じシルエットを元にした2つ
の三角形と別のシルエットを元にした1つの三角形との
共通部分によって定義される。
ューム650との関係4を有する3つのシルエットが見
出され、その他の全ての画像中のシルエットと2D投影
ボリューム650との間の関係が図17gを参照して説
明した関係7であるとき、この実施形態では、別々のシ
ルエットを元にした3つの三角形が3D点で交わる場合
が識別される。具体的には、関係4は、2D投影ボリュ
ーム650中にシルエットの単一のエッジしかないこと
を識別するので、2D投影ボリューム650とこの関係
を有する3つのシルエットは、ステップS13−6でス
タックから取り出されたボリューム中の3D点で交わる
可能性がある3つの平面三角形(2D投影ボリューム6
50と交わる3つのエッジにより定義される)を識別す
る。加えて、その他の全ての画像中のシルエットと投影
ボリューム650との間の関係が関係7であるので、3
つの平面三角形の共通部分により定義される3D点は、
全画像中においてシルエット内の点へと投影され、被写
体オブジェクト210の表面の頂点を表す(3D点がス
テップS13−6でスタックから取り出されたボリュー
ム中に実際に位置し、このボリュームの外側には位置し
ない場合)。
のみ)の画像がシルエットと2D投影ボリューム650
との間で関係1(図17aを参照して説明)を有し、1
つ(1つのみ)の画像が、関係4(図17dを参照して
説明)を有し、その他の全ての画像における関係が関係
7である(図17gを参照して説明)場合、状態を「3
D点の計算」に設定する。
た2つの平面三角形と別のシルエットを元にした1つの
平面三角形とが交わる場合を表す。具体的には、図17
aを参照して説明した関係、すなわち、2D投影ボリュ
ーム650に単一のシルエット頂点しか存在しない関係
は、3D点で交わる同じシルエットを元にした2つの平
面三角形(これらの平面三角形は、2D投影ボリューム
650中の頂点700で交わるシルエットエッジにより
定義される)を定義する。図17dを参照して説明した
関係では、3D点で交わる第2のシルエットを元にした
平面三角形(すなわち、2D投影ボリューム650と交
わる直線の端点を通る平面三角形)を定義する。上述の
ように、その他の全ての画像におけるシルエットと2D
投影ボリューム650との間の関係は、図17gを参照
して説明した関係7であるので、第1のシルエットを元
にした2つの平面三角形と第2のシルエットを元にした
平面三角形との共通部分により定義される3D点は、そ
の他の全ての画像中においてシルエット内の点に投影さ
れるので、被写体オブジェクト210の表面の頂点を表
すことになる(3D点がステップS13−6でスタック
から取り出されたボリューム内に実際に位置する場
合)。
おいて、ステップS13−6でスタックから取り出され
たボリュームが相互に交わり、被写体オブジェクト21
0の表面に位置する3D点を定義するのに十分な数の平
面三角形(すなわち、3つ)を含まないことを示す(従
って、ボリュームが廃棄されることになる)以下の状況
のいずれかが起こる場合、状態を「ボリュームの廃棄」
に設定する: (i) 1つ(1つのみ)の画像が、シルエットと2D
投影ボリューム650との間で関係1(図17aを参照
して説明)を有し、その他の全ての画像における関係が
関係7である(図17gを参照して説明)。 (ii) 1つ又は2つ(2つ以下)の画像が、シルエッ
トと2D投影ボリューム650との間で関係4(図17
dを参照して説明)を有し、その他の全ての画像におけ
る関係が関係7である(図17gを参照して説明)。 (iii) 全ての画像が、シルエットと2D投影ボリュ
ーム650との間で関係7(図17gを参照して説明)
を有する。
のみ)の画像が、シルエットと2D投影ボリューム65
0との間で関係3(図17cを参照して説明)又は関係
5(図17eを参照して説明)を有し、その他の全ての
画像における関係が関係7である(図17gを参照して
説明)場合、状態を「ボリュームの廃棄」に設定する。
この場合、1つのみの画像が、2D投影ボリューム65
0内にシルエット頂点又はシルエットエッジを含む。し
かし、上述のボリューム状態のケースB又はボリューム
状態のケースCが発生する(結果として3D点の計算を
行なう)には、シルエットの頂点又はエッジが2D投影
ボリューム650内に位置する画像が少なくとも2つ存
在しなければならない。従って、3D点計算器84は、
ステップS13−6でスタックから取り出されたボリュ
ームを廃棄すべきであると判定するが、それは、ボリュ
ームを再分割により更に処理しても、既にシルエットの
一部が2D投影ボリューム650と交わっている1つの
画像を除くいずれの画像においても、同様の状況に至る
可能性がないからである。
画像がシルエットと2D投影ボリューム650との間で
関係1、2、3、4又は5(図17aから図17eを参
照して説明)である場合、状態を「ボリュームの再分
割」に設定する(3つ以上の画像における関係は、相互
に同じであっても、異なっていても良い)。この場合、
3D点計算器84は、ステップS13−6でスタックか
ら取り出されたボリュームを再分割により更に処理すべ
きであると判定するが、それは、再分割により関係1、
2、3、4又は5を有する3つ以上の画像においてボリ
ューム状態のケースB又はボリューム状態のケースCが
起こる可能性があるからである。
のみ)の画像がシルエットと2D投影ボリューム650
との間で関係5(図17eを参照して説明)を有し、1
つ(1つのみ)の画像が、関係4(図17dを参照して
説明)又は関係5(図17eを参照して説明)を有し、
その他の全ての画像における関係が関係7である(図1
7gを参照して説明)場合、状態を「ボリュームの廃
棄」に設定する。この場合、ステップS13−6でスタ
ックから取り出されたボリュームを更に処理しても、シ
ルエットが必要とされる3つの画像においてではなく、
2つの画像においてのみ2D投影ボリューム650と交
わるので、上述のボリューム状態のケースB(3D点が
計算されることになる)に至る可能性はない。加えて、
ステップS13−6でスタックから取り出されたボリュ
ームを更に処理しても、シルエットの頂点が関係4又は
関係5を有する画像のいずれにおいても2D投影ボリュ
ーム650内に位置せず、ボリュームを再分割し、より
小さいボリュームの処理を行なっても、シルエットの頂
点が2D投影ボリューム650内にあるようなケースに
至ることがないので、結果として上述のボリューム状態
のケースC(3D点が計算されるもう1つの場合)にな
ることはない。従って、この場合、3D点計算器84
は、ステップS13−6でスタックから取り出されたボ
リュームを廃棄すべきであると判定する。
のみ)の画像がシルエットと2D投影ボリューム650
との間で関係1、2又は3(図17aから図17cを参
照して説明)を有し、1つ(1つのみ)の画像が関係
1、2、3、4又は5(図17aから図17eを参照し
て説明)を有し、その他の全ての画像における関係が関
係7である(図17gを参照して説明)場合、状態を
「ボリュームの再分割」に設定する。この場合、3D点
計算器84は、ボリュームのより小さい部分を処理する
ことにより3D点が計算される上述のボリューム状態の
ケースCに至る可能性があるので、ステップS13−6
でスタックから取り出されたボリュームを再分割すべき
であると判定する。
7hを参照して説明したどのタイプの関係が各シルエッ
トと2D投影ボリューム650との間に存在するか、及
び、識別された関係に基づいて、ステップS13−6で
スタックから取り出されたボリュームを再分割すべき
か、廃棄すべきか、あるいは、3D点を計算すべきかを
定義する上述のボリューム状態のケースのうちのどれが
存在するかを判定するために3D点計算器84により実
行される処理ステップの詳細な説明を行なう。
−12において、3D点計算器84は、処理すべき別の
カメラ画像(すなわち、ステップS15−2においてボ
リュームの角が投影される別の画像)が存在するか否か
を判定する。ステップS15−12が初めて実行される
場合は、全てのカメラ画像が未処理の状態で残存するの
で、処理はステップS15−14へと進む。しかし、そ
の後の反復では、全てのカメラ画像の処理が終了する
と、処理は後述のステップS15−66へと進む。
算器84は、処理すべき次のカメラ画像を考慮する。
は、現在考慮中の画像中のシルエットとステップS15
−2で生成された画像へのボリュームの2D投影650
との間の関係を検査し、図17aから図17hを参照し
て説明した8つの異なる予想される関係のうちのいずれ
をシルエット及び投影ボリュームが有するのかを判定す
る。先に説明したように、この関係は、単独で、あるい
は、その他の画像における投影ボリュームとシルエット
との間の関係と関連させて使用し、ボリュームを廃棄す
べきか又は再分割すべきか、あるいは、3D点を計算/
検査して被写体オブジェクト210の表面に位置するか
否かを判定すべきかを判定する。
て、3D点計算器84は、現在考慮中の画像中のシルエ
ットの線分のうちのどれが、2D投影ボリューム650
と交わるのかを判定し、その線分に「候補エッジ」とし
てラベル付けする。この処理により、後続の検査を実行
する必要がある直線状のエッジの数が削減される。ま
た、この処理では、ステップS8−4で予め生成された
4分木データが利用される。
計算器84により実行される処理動作を示す。
D点計算器84は、2D投影ボリュームの周囲の画像の
側面に平行な側面を有するバウンディングボックスを定
義する。これは、一例として図19に示されており、点
線は2D投影ボリューム650の周囲で定義されるバウ
ンディングボックス800を表す。
いて、3D点計算器84は、ステップS8−4で生成さ
れた4分木のノードを考慮し、ステップS18−2で生
成された投影ボリュームのバウンディングボックスと交
わらないノード中にあるシルエット線分を廃棄し、4分
木の残りのノード中のシルエット線分を「候補エッジ」
としてラベル付けするための処理を実行する。
て、3D点計算器84は、現在考慮中の画像に対するシ
ルエットエッジのバウンディングボックスデータを格納
するステップS8−4で生成された4分木の次のノード
を考慮する(ステップS18−4が初めて実行される場
合、これはルートノードである)。
器84は、現在考慮中のノードにより定義される画像の
領域が、ステップS18−2で生成された投影ボリュー
ムのバウンディングボックス800と重なり合うか否か
を判定する。すなわち、3D点計算器84は、投影ボリ
ュームのバウンディングボックス800のいずれかの部
分がノードにより定義される領域内に位置するか否かを
検査する。
つの領域810、812及び814が示されている。4
分木のルートノードは、画像全体(すなわち、領域81
0、812及び814)であるので、ルートノードとバ
ウンディングボックス800との間には重なりが存在す
る。
0であり、ルートノードの第2の子ノードは領域812
+領域814である。双方の場合において、子ノードと
バウンディングボックス800との間には重なりが存在
する。しかし、第2の子ノードの各子ノード(すなわ
ち、領域812及び814)を考慮するとき、投影ボリ
ュームのバウンディングボックス800とノード814
との間には重なりが存在するが、バウンディングボック
ス800とノード812との間には重なりは存在しな
い。
のノードが、投影ボリュームのバウンディングボックス
と交わらないと判定される場合、ステップS18−8に
おいて、3D点計算器84は、現在考慮中のノードの子
又は更なる子孫を未処理ノードのリストから削除する
(子と更なる子孫は全て親の領域内に位置するので、親
が投影ボリュームのバウンディングボックスと交わらな
い場合、これと交わる可能性はない)。従って、図19
の例を参照すると、ノード812がステップS18−4
で考慮されており、ノードが投影ボリュームのバウンデ
ィングボックス800と重なり合わないことがステップ
S18−6で判明した場合、ステップS18−8におい
て、ノード812の子及び更なる子孫は、未処理ノード
から削除され、実行すべき処理量が削減される。
現在考慮中のノードが投影ボリュームのバウンディング
ボックス800と重なり合うと判定される場合、ステッ
プS18−10において、3D点計算器84は、ノード
に子があるか否かを判定する。
があると判定される場合、ステップS18−12におい
て次の子ノードが考慮され、処理はステップS18−6
へと戻る。ここで、子ノードが投影ボリュームのバウン
ディングボックス800と重なり合うか否かが判定され
る。4分木内において、投影ボリュームのバウンディン
グボックス800と重なり合い、子ノードをもたないノ
ードに到達するまでステップS18−6、S18−10
及びS18−12が反復的に実行される。このようなノ
ードに到達したとき、処理はステップS18−14へと
進む。ここで、3D点計算器84は、ノード中の各エッ
ジのバウンディングボックスを検査し、各エッジが2D
投影ボリューム650のバウンディングボックス800
と交わるか否かを判定する。続いて、3D点計算器84
は、投影ボリューム650のバウンディングボックス8
00と交わらないバウンディングボックスを有するノー
ド中の各エッジに「候補エッジ」としてラベル付けす
る。
算器84は、4分木に更に別のノードが存在するか否か
を判定し、以上のような方法で各ノードを処理し終わる
までステップS18−4からS18−16が繰り返され
る。
リュームのバウンディングボックスと交わらない4分木
の全てのノードを廃棄し、残りのノード中のシルエット
の線分に「候補エッジ」(すなわち、2D投影ボリュー
ム650自体と交わる可能性があるエッジ)としてラベ
ル付けする。
−18において、3D点計算器84は、どの候補エッジ
の端点(すなわち、ステップS15−16で識別された
第1の候補エッジがシルエット中の第2の候補エッジと
交わる点)が2D投影ボリューム650内に位置するか
を判定し、このような端点に「検証済頂点」としてラベ
ル付けする。従って、ステップS15−18の処理で
は、2D投影ボリューム650内に図17a、17b及
び17cの点700、702、706、708、710
及び712(これらの点は「検証済頂点」としてラベル
付けされる)などの点が存在するか否かが判定される。
3D点計算器84により実行される処理動作を示す。
D点計算器84は、検証済頂点の数を表すカウンタ「n
vv」を0に等しく設定する。
器84は、次の候補エッジの第2の端点を考慮する(ス
テップS20−4が初めて実行される場合、これは最初
の候補エッジである)。後続の処理において、端点が検
査され、2D投影ボリューム650内に位置するか否か
が判定される。端点は、(閉じている)各シルエットが
エッジ(p1,p2),(p2,p3),.....,
(pn,p1)から成る(p1からpnは端点)ように
順序づけられているので、それぞれの第2の端点を考慮
/検査するだけで良い。従って、端点(p,q)間の線
分が候補エッジである場合、あるxに対して同様に候補
エッジである端点(x,p)間のエッジが存在するであ
ろう。なぜなら、シルエット中のこれらの線分のバウン
ディングボックスが点pで交わるために、第1の端点を
検査する必要がないからである。
器84は、現在考慮中の端点が2D投影ボリューム65
0内に位置するか否かを判定する。この実施形態では、
“Graphics Gems”(IV、16〜46ページ、ISBN 0-12
-336155-9)に記載される各方法のうちの1つのような
従来の方法を使用して、各投影面に対して端点を検査す
ることで端点がボリュームの6つの投影面のいずれかの
内部にあるか否かを判定することによってこれが実行さ
れる。
投影ボリューム内にあると判定される場合、ステップS
20−8において、3D点計算器84は、端点に「検証
済頂点」としてラベル付けし、ステップS20−10に
おいて、カウンタnvvの値を1だけ増分する。
2D投影ボリューム内に位置しないと判定される場合、
ステップS20−8及びS20−10は省略される。
算器84は、カウンタnvvの値が1より大きいか否か
を判定する。
nvvの値が1より大きいと判定される場合、投影ボリ
ュームは2つ以上の線分の頂点を含むので、図17cを
参照して説明した関係3(又は図17fを参照して説明
した関係6)が識別され、ボリューム中に更に別の線分
の頂点が存在するか否かを判定する処理を更に実行する
必要がなくなる。従って、処理はステップS20−14
へと進み、2つ以上の検証済頂点が識別されたことを示
すためのフラグが設定される。
てカウンタnvvの値が1以下であると判定される場
合、処理はステップS20−16へと進み、ここで、3
D点計算器84は、処理すべき別の候補エッジが存在す
るか否かを判定する。
vvの値が1より大きいと判定されるまで、あるいは、
ステップS20−16において全ての候補エッジの処理
が終了したと判定されるまで、ステップS20−4から
S20−16が繰り返される。
ジの全ての処理が終了したと判定される場合、処理はス
テップS20−18へと進み、ここで、3D点計算器8
4は、カウンタnvvの値を読み取り、カウンタnvv
により定義される検証済頂点の数によって、識別された
検証済頂点の数が0又は1であることを示すためのフラ
グを設定する。
ットと投影ボリュームとの間の関係は、図17aを参照
して説明した関係1、及び、図17bを参照して説明し
た関係2のいずれかであり、後述するように、これらの
関係のうちのどちらが実際に存在するかを判定するため
の更なる検査が実行される。
d、17e、17g及び17hをそれぞれ参照して説明
した関係4、5、7及び8のうちのどれが2D投影ボリ
ューム650と現在考慮中のシルエットとの間の関係で
あるかを判定するための検査が実行される。
−20において、3D点計算器84は、ステップS20
−14又はステップS20−18で設定されたフラグの
値を読み取り、検証済頂点の数を判定する。
の検証済頂点が存在すると判定される場合、ステップS
15−22において、3D点計算器84は、少なくとも
1つの検証済頂点が見出されたアクティブなカメラの台
数を定義するカウンタnvの値を1だけ増分し、フラグ
eitherSubdivideOrDiscardの値を「真」に設定する。フ
ラグeitherSubdivideOrDiscardが「真」に設定されるの
は、先に説明したように、2D投影ボリューム650に
2つ以上の検証済頂点が存在する場合、投影ボリューム
とシルエットとの間の関係が、図17cを参照して説明
した関係3、又は、図17fを参照して説明した関係6
であるからである。この場合、ステップS13−6でス
タックから取り出されたボリュームは、後続の処理にお
いて、その他の画像中における2D投影ボリューム65
0とシルエットとの間の関係によって、再分割又は廃棄
されることになる。
算器84は、ステップS13−6でスタックから取り出
されたボリュームと交わる平面三角形の数を定義するカ
ウンタnpの値が後述の検査で使用される閾値3より大
きくなるように、カウンタnpの値を4だけ増分する。
のシルエットを処理し、ステップS13−6でスタック
から取り出されたボリュームを再分割すべきか、あるい
は、廃棄すべきかを判定する。
の検証済頂点が存在すると判定される場合、処理はステ
ップS15−28へと進み、ここで、3D点計算器84
は、現在処理中のシルエットが位置するカメラを識別す
るデータを格納する。
算器84は、少なくとも1つの検証済頂点が検出された
アクティブなカメラの台数を定義するカウンタnvの値
を1だけ増分し、ステップS15−32において、ステ
ップS13−6でスタックから取り出されたボリューム
と交わる平面の数を定義するカウンタnpの値を2だけ
増分する(検証済頂点で交わる2本の線分がボリューム
と交わる平面三角形を定義するためである)。
算器84は、カウンタnpの値が3以下であるか否かを
判定する。
npの値が3以下であると判定される場合、3D点計算
器84は、検証済頂点で交わる2本の候補エッジを定義
するデータを格納する。
て、カウンタnpの値が3より大きいと判定される場
合、ステップS15−36は省略される。npカウンタ
の値が3より大きいことは、スタックから取り出された
ボリューム内に少なくとも4つの平面三角形が存在する
ことを示すので、上述のボリューム状態のケースB又は
ボリューム状態のケースCが起こる可能性がなく、3D
点を計算するのに使用されない以上、候補エッジを定義
するデータを格納する必要がないからである。
は、ステップS15−34においてカウンタnpの値が
3より大きいと判定される場合、処理はステップS15
−12へと戻り、次の画像を考慮する。
処理中の画像中に検証済頂点が存在しないと判定される
場合、処理はステップS15−38へと進む。ここで、
3D点計算器84は、2D投影ボリューム650と交わ
る候補エッジがあるとすれば、どのエッジであるかを判
定し、投影ボリュームと交わる候補エッジに「検証済エ
ッジ」としてラベル付けする。
計算器84により実行される処理動作を示す。
D点計算器84は、検証済エッジの本数を表すカウンタ
「nve」を0に等しく設定する。
器84は、ステップS15−16で先に識別された次の
候補エッジを考慮する(ステップS21−4が初めて実
行される場合、これは最初の候補エッジである)。
器84は、ステップS21−4で選択された候補エッジ
の一部が2D投影ボリューム650と交わるか否かを判
定する。
ステップS21−6において、3D点計算器84は、
“Graphics Gems”(II、7〜9ページ、ISBN 0-12-064
481-9)に記載される方法のような従来の共通部分検査
方法を使用して、2D投影ボリューム650の12本の
エッジの各々に対して候補エッジを検査する。
が2D投影ボリューム650と交わると判定される場
合、ステップS21−8において、3D点計算器84
は、その候補エッジに「検証済エッジ」としてラベル付
けし、ステップS21−10において、カウンタnve
の値を1だけ増分する。
て、候補エッジが2D投影ボリューム650と交わらな
いと判定される場合、ステップS21−8及びS21−
10が省略される。
算器84は、カウンタnveの値が1より大きいか否か
を判定する。
nveの値が1より大きいと判定される場合、処理はス
テップS21−14へと進む。ここで、2本以上の検証
済エッジが識別されたことを示すフラグが設定される。
て、カウンタnveの値が1以下であると判定される場
合、処理はステップS21−16へと進み、ここで、3
D点計算器84は、処理すべき別の候補エッジが存在す
るか否かを判定する。
nveの値が1より大きいと判定されるまで、あるい
は、ステップS21−16において全ての候補エッジの
処理が終了したと判定されるまで、ステップS21−4
からS21−16が繰り返される。
補エッジの処理が終了したと判定される場合、処理はス
テップS21−18へと進む。ここで、3D点計算器8
4は、カウンタnveの値を読み取り、カウンタnve
により定義される検証済エッジの本数によって、識別さ
れる検証済エッジの本数が1又は0であることを示すた
めのフラグを設定する。
−40において、3D点計算器84は、ステップS21
−14又はステップS21−18で設定されたフラグの
値を読み取り、検証済エッジの本数を判定する。
ルエットと2D投影ボリューム650との間の関係は、
図17eを参照して説明した関係5である(関係が図1
7bを参照して説明した関係2、図17cを参照して説
明した関係3、又は、図17fを参照して説明した関係
6でないように、2D投影ボリューム中にシルエットエ
ッジの頂点が存在しないことが先にステップS15−2
0で確立されている)。この場合、処理はステップS1
5−42へと進み、ここで、3D点計算器84は、少な
くとも1本の検証済エッジが検出されたアクティブなカ
メラの台数を定義するカウンタneの値を1だけ増分す
る。
算器84は、フラグeitherSubdivideOrDiscardを「真」
に設定する。これは、任意のシルエットと2D投影ボリ
ューム650との間の関係が、図17eを参照して説明
した関係5である場合、上述のボリューム状態のケース
B又はボリューム状態のケースC(3D点が計算される
ことになる)は起こり得ないからである。従って、ステ
ップS13−6でスタックから取り出されたボリューム
は、その他の画像中における2D投影ボリューム650
とシルエットとの間の関係によって、再分割すべきか、
あるいは、廃棄すべきかが決まる。
算器84は、後述の処理で使用される閾値3よりもカウ
ンタnpの値が大きくなるように、ステップS13−6
でスタックから取り出されたボリュームと交わる平面の
数を定義するカウンタnpの値を4だけ増分する。
済エッジの本数が1であると判定される場合、現在処理
中のシルエットと2D投影ボリューム650との間の関
係は、図17dを参照して説明した関係4である。この
場合、処理はステップS15−48へと進み、ここで、
3D点計算器84は、現在のシルエットを定義するデー
タを格納する。
算器84は、少なくとも1つの検証済エッジが検出され
たアクティブなカメラの台数を定義するカウンタneの
値を1だけ増分し、ステップS15−52において、ス
テップS13−6でスタックから取り出されたボリュー
ムと交わる平面の数を定義するカウンタnpの値を1だ
け増分する。
算器84は、カウンタnpの値が3以下であるか否かを
判定する。
npの値が3以下であると判定される場合、上述のボリ
ューム状態のケースB又はボリューム状態のケースC
(3D点が計算されることになる)が起こる可能性はま
だあり、ステップS15−56において、3D点計算器
84は、検証済エッジを定義するデータを格納する。
て、カウンタnpの値が3より大きいと判定される場
合、上述のボリューム状態のケースBとボリューム状態
のケースCのいずれも起こり得ないので、ステップS1
5−56が省略される。
いは、ステップS15−54においてカウンタnpの値
が3より大きいと判定されるとき、処理はステップS1
5−12へと戻り、次のシルエットが存在する場合はそ
れを考慮する。
ッジの本数が0の場合、現在処理中のシルエットと2D
投影ボリューム650との間の関係は、図17gを参照
して説明した関係7、及び、図17hを参照して説明し
た関係8のいずれかである。この場合、処理はステップ
S15−58へと進み、ここで、3D点計算器84は、
2D投影ボリューム650上の任意の点を選択する。具
体的には、この実施形態において、3D点計算器84
は、投影ボリュームの隅の1つに対応する点を選択す
る。
算器84は、ステップS15−58で選択された2D投
影ボリューム650上の点が現在考慮中のシルエットの
内側にあるか、あるいは、外側にあるかを判定する。
ボリューム650上の点がシルエットの内側にあると判
定される場合、2D投影ボリューム650とシルエット
との間の関係は、図17gを参照して説明した関係7で
ある。この場合、処理はステップS15−62へと進
む。ここで、3D点計算器84は、現在のシルエットが
位置するカメラをアクティブなカメラのリストから削除
する(シルエットは、2D投影ボリューム650を包囲
するので、子ボリュームを生成/検査する必要がないた
めである)。
て、2D投影ボリューム650上の選択された点が、シ
ルエットの外側に存在すると判定される場合、シルエッ
トと2D投影ボリューム650との間の関係は、図17
hを参照して説明した関係8である。この場合、処理は
ステップS15−64へと進み、ここで、3D点計算器
84は、上述のケースAが存在すると判明したので、ス
テップS13−6でスタックから取り出されたボリュー
ムの状態が「廃棄」であると判定されたことを示すため
のフラグを設定する。
理は図13のステップS13−10へと戻る。これは、
上述のボリューム状態のケースAが存在することを判定
するためには、3D点計算器84は、2D投影ボリュー
ム650と関係8を有する1つのシルエットのみを識別
すれば良く、更に別の画像中の2D投影ボリューム65
0とシルエットとの間の関係を判定する必要がないから
である。
リューム650に対する全てのシルエットの検査が終了
する前に、処理がステップS13−10へと戻る唯一の
ケースである。その他の全てのケースでは、次のシルエ
ットがあれば、それを以上説明したように2D投影ボリ
ューム650に対して検査することができるように、処
理はステップS15−12へと戻る。
2D投影ボリューム650との間の関係が、関係8であ
ると判明していない全ての場合において、更に別のシル
エットを考慮するためステップS15−12へと戻るよ
うに処理は構成される。なぜなら、後続のシルエットが
2D投影ボリューム650と関係8を有することが判明
した場合、この関係のもつ優先度により、先に判定され
た全ての関係は無効になり、ステップS13−6でスタ
ックから取り出されたボリュームは廃棄されるからであ
る。
リュームの2D投影ボリューム650に対する全てのシ
ルエットの検査が終了したと判定される場合、処理はス
テップS15−66へと進む。
算器84は、ステップS13−6でスタックから取り出
されたボリュームと交わる平面の数を定義するカウンタ
npの値を読み取り、値が3未満か否かを判定する。
npの値が3未満であると判定される場合、上述のボリ
ューム状態のケースDが識別される。尚、第1に、ボリ
ューム状態のケースAがステップS15−64で検出さ
れた場合、処理はステップS15−66には到達しない
ことと、第2に、ボリューム状態のケースB又はCが存
在する場合、カウンタnpの値は3に等しくなること
と、第3に、画像中で2つ以上の検証済頂点又は2本以
上の検証済エッジが検出されるとき、ステップS15−
26又はS15−46でカウンタnpの値を4だけ増分
する処理が行なわれるので、ボリューム状態のケースD
からHのいずれかが存在する場合、カウンタnpの値は
3より大きくなることとにより、ボリューム状態はケー
スD以外になり得ない。従って、ステップS15−66
において、カウンタnpの値が3未満であると判定され
る場合、処理はステップS15−68へと進み、ここ
で、3D点計算器84は、ボリュームを廃棄すべきであ
ることを示すためのフラグを設定する。
て、カウンタnpの値が3以上であると判定される場
合、処理はステップS15−70へと進む。ここで、3
D点計算器84は、カウンタnpの値が3に等しいか否
かを判定し、フラグeitherSubdivideOrDiscardを「偽」
に設定する。
npの値が3に等しく、フラグeitherSubdivideOrDisca
rdが「偽」に設定されている場合、ボリューム状態のケ
ースB又はボリューム状態のケースCが識別され、処理
はステップS15−72へと進む。ここで、3D点計算
器84は、3D点を計算すべきであることを示すフラグ
を設定する。
て、カウンタnpの値が3より大きく、及び/又は、フ
ラグeitherSubdivideOrDiscardが「真」に設定されてい
ると判定される場合、3D点計算器84は、ステップS
13−6でスタックから取り出されたボリュームの状態
が上述のボリューム状態のケースE、F、G又はHのう
ちの1つであることを判定する。3D点計算器84によ
り実行される後続の処理により、(少なくとも1つの検
証済頂点が検出されたアクティブなカメラの台数、及
び、少なくとも1つの検証済エッジが検出されたアクテ
ィブなカメラの台数のそれぞれを定義する)カウンタn
v及びneの値と以下に示す規則とに基づいて、これら
のボリューム状態のケースのうちのどれが実際のボリュ
ーム状態のケースであるかが判定される: (a)nv+neの値において、子ボリュームは親ボリ
ュームよりも増加することはない。 (b)nv+neの値において、子ボリュームは親ボリ
ュームよりも増加することはない。 (c)単一の候補頂点を含むボリュームは、カウンタ値
(nv=0、ne=3)又は(nv=1、ne=1)を
有する。
て、3D点計算器84は、少なくとも1つの検証済頂点
が検出されたアクティブなカメラの台数を定義するカウ
ンタnvの値と少なくとも1本の検証済エッジが検出さ
れたアクティブなカメラの台数を定義するカウンタne
の値との合計が2未満であるか否かを判定する。
+neが2未満であると判定される場合、ボリューム状
態のケースEが識別され、処理はステップS15−76
へと進む。ここで、3D点計算器84は、ステップS1
3−6でスタックから取り出されたボリュームを廃棄す
べきであることを示すフラグを設定する。
て、合計nv+neが2以上であると判定される場合、
処理はステップS15−78へと進み、ここで、3D点
計算器84は、合計nv+neが2より大きいか否かを
判定する。
+neの値が2より大きい場合、上述のボリューム状態
のケースFが識別され、処理はステップS15−80へ
と進む。ここで、3D点計算器84は、ステップS13
−6でスタックから取り出されたボリュームを再分割す
べきであり、再分割されたボリュームを更に処理するこ
とを示すためのフラグを設定する。
て、合計nv+neが2に等しいと判定される場合、処
理はステップS15−82へと進み、ここで、少なくと
も1つの検証済頂点が検出されたアクティブなカメラの
台数を定義するカウンタnvの値が0に等しいか否かを
判定する。
nvの値が0に等しいと判定される場合、ボリューム状
態のケースGが識別され、処理はステップS15−84
へと進む。ここで、3D点計算器84は、ステップS1
3−6でスタックから取り出されたボリュームを廃棄す
べきであることを示すためのフラグを設定する。
て、カウンタnvの値が0に等しくないと判定される場
合、ボリューム状態のケースHが識別され、処理はステ
ップS15−86へと進む。ここで、3D点計算器84
は、ステップS13−6でスタックから取り出されたボ
リュームを再分割すべきであり、結果として生じるより
小さいボリュームを更に処理することを示すためのフラ
グを設定する。
結果、3D点計算器84は、ステップS13−6でスタ
ックから取り出されたボリュームに対して存在するボリ
ューム状態のケースを判定し、どの後続の処理をボリュ
ームに対して実行すべきかを示す判定されたボリューム
状態のケースに従ってフラグを設定している。
うにボリュームの状態を判定するための処理を実行した
後、ステップS13−10において、3D点計算器84
は、状態を「頂点を計算する」とすべきか否かを判定す
る。
算すべきであると判定される場合、処理はステップS1
3−12へと進み、頂点が計算される。計算すべきであ
ると判定されない場合、ステップS13−12が省略さ
れる。
計算器84が頂点を計算するのに実行する処理動作を示
す。
D点計算器84は、現在のボリュームと交わる3本のシ
ルエットエッジ(すなわち、ステップS15−36及び
/又はS15−56で格納されるデータにおいて識別さ
れるエッジ)を考慮し、各々がエッジのうちの1本とそ
のエッジを含む画像が記録されたときのカメラ230の
焦点とを含む3つの平面の共通部分の3D点を計算す
る。言い換えると、3D点計算器84は、カメラ焦点か
ら格納されたシルエットエッジの端点を通って光線を投
影することによって定義される平面を含む各平面の共通
部分の3D点を計算する。従って、図10の例を参照す
ると、平面522、524及び526を含む3つの平面
の共通部分528の3D点が計算される。この処理は、
従来の平面共通部分アルゴリズムを使用して実行され
る。
器84は、ステップS22−2で計算された3D点がス
テップS13−6でスタックから取り出されたボリュー
ムの内側にあるか否かを検査する。ボリュームと交わる
各平面は、必ずしもボリューム中の3D点で相互に交わ
る必要がないので、この検査が必要である。
3D点がボリュームの内側にあると判定される場合、処
理はステップS22−6へと進む。ここで、3D点計算
器84は、計算された3D点を被写体オブジェクト21
0の表面の頂点を表す3D点のリストへと加える。
て、計算された3D点がボリュームの外側にあると判定
される場合、ステップS22−6は省略される。ステッ
プS22−8において、3D点計算器84は、処理が完
了しているのでステップS13−6でスタックから取り
出されたボリュームを廃棄すべきであることを示すため
にフラグを設定する。
−14において、3D点計算器84は、ステップS13
−6でスタックから取り出されたボリュームの状態が
「廃棄」及び「再分割(subdivide)」のいずれに設定
されているかを判定する。
テップS13−8での処理により、あるいは、ステップ
S13−12においてステップS22−8の結果として
設定される可能性がある)、ステップS13−6におい
て、3D点計算器84は、ボリュームを廃棄する。
割」に設定される場合、ステップS13−18におい
て、3D点計算器84は、ボリュームを再分割し、子ボ
リュームをステップS13−4で作成されたスタックの
最上部に加える。この実施形態では、ステップS13−
18でのボリュームの再分割は、8つの新規の子ボリュ
ームを生成するためのボリュームの2値的な再分割であ
る。ステップS13−16又はステップS13−18に
引き続いて、処理はステップS13−20へと進む。こ
こで、3D点計算器84は、スタックに別のボリューム
(ステップS13−18で加えられた子ボリュームを含
む)が存在するか否かを判定する。
ームを処理し終わるまで、ステップS13−6からステ
ップS13−20が繰り返される。
算器84は、被写体オブジェクト210の表面の頂点を
表す3D空間中の1組の点を生成している。
において、多角形生成器86は、3D点計算器84によ
り生成された3D点を連結し、被写体オブジェクト21
0の表面を表す多角形メッシュを生成する。
器86により実行される処理動作を示す。
角形生成器86は、生成すべき多角形メッシュ中の各多
角形に対して平面データを生成し、3D点計算器84に
より生成された各3D点に対していわゆる「シグネチ
ャ」を判定する。
ジェクト210の表面を近似するために多角形生成器8
6により生成される各多角形は、シルエット中の線分の
端点とカメラ230の焦点(図10を参照して説明)と
を通る線により定義される三角形の平面に位置する。従
って、例えば、多角形900は、オブジェクトシルエッ
ト中の線分の端点920及び930とステップS4−6
でカメラ計算器50により計算されたカメラ焦点の位置
940とを通る線により定義される三角形910の平面
に位置する。
器86は、各多角形平面に固有のIDを割り当てると共
に、各多角形平面に対して法ベクトルnを計算するため
の処理を実行する。
ステップS8−6で3D点計算器84により計算される
各3D点は、3つの多角形平面の共通部分により定義さ
れる。従って、ステップS23−2において、多角形生
成器86は、3D点計算器84により計算された各3D
点に対して、3D点で交わる3つの平面の平面IDから
構成される「シグネチャ」を定義する。例えば、図24
において、3D点950のシグネチャは、平面900、
960及び970のIDから構成されるであろう。
角形生成器86により実行される処理動作を示す。
角形生成器86は、ステップS8−6で3D点計算器8
4が被写体オブジェクト210の3D頂点を計算する元
となった次のシルエットエッジ(すなわち、ステップS
8−2で生成されたシルエット中の線分)を考慮する
(ステップS25−2が初めて実行される場合、これは
最初のシルエットエッジである)。
器86は、ステップS25−2で選択されたエッジのI
Dをそのエッジにより定義された平面(すなわち、エッ
ジの端点とステップS4−6においてそのエッジが位置
する画像に対してカメラ計算器50により予め計算され
た焦点の位置とを通る線により定義される平面)に割り
当てる。この実施形態では、ステップS25−4で割り
当てられたシルエットエッジIDは、ステップS8−2
において予めエッジに割り当てられた固有のラベルから
構成される。
器86は、現在考慮中のシルエットエッジにより定義さ
れる平面に対する単位法ベクトルの方向を計算する。こ
の実施形態では、単位法ベクトルは、ステップS4−6
でカメラ計算器50により計算された平面を定義する撮
影パラメータを使用して、従来通りに計算される。ステ
ップS25−8において、多角形生成器86は、ステッ
プS8−6において3D点計算器84が被写体オブジェ
クト210の3D頂点を計算する元となった別のシルエ
ットエッジが存在するか否かを判定する。以上説明した
ように各シルエットエッジを処理し終わるまで、ステッ
プS25−2からS25−8が繰り返される。
成器86は、ステップS8−6において3D点計算器8
4により計算された次の3D点を考慮し(ステップS2
5−10が初めて実行される場合、これは最初の3D点
である)、ステップS25−12において、3D点に対
して3D点で交わる各平面の3つのID(ステップS2
5−4で各平面に割り当てられたID)から構成される
シグネチャを定義する。
成器86は、別の計算された3D点が存在するか否かを
判定し、以上説明したように各3D点を処理し終わるま
で、ステップS25−10からS25−14が繰り返さ
れる。
−4において、多角形生成器86は、3D点計算器84
により予め計算された3D点をステップS23−2で定
義されたシグネチャに従って幾つかの組へと編成する。
成器86により実行される処理動作を示す。
角形生成器86は、ステップS8−6で3D点計算器8
4により予め計算された次の3D点(ステップS26−
2が初めて実行される場合、これは最初の3D点であ
る)を考慮する。
器86は、ステップS26−2で選択された点のシグネ
チャ(ステップS25−12で予め割り当てられたシグ
ネチャ)を読み取り、ステップS26−6において、シ
グネチャ中で定義された平面ごとに3D点を1組の点に
割り当てる。すなわち、3D点は、3D点のシグネチャ
中に定義された平面ごとに1組の3つの異なる組に割り
当てられる。
器86は、3D点計算器84により計算された処理すべ
き別の3D点が存在するか否かを判定し、以上説明した
ように各3D点を処理し終わるまでステップS26−2
からS26−8が繰り返される。
写体オブジェクト210のサーフェスモデル中の平面ご
とに1組の点が生成される。各グループ中の点は、被写
体オブジェクト210の表面のある平面上に位置する1
つ以上の多角形を定義する。
−6において、多角形生成器86は、被写体オブジェク
ト210の表面の一部を表す多角形を生成するために各
組の3D点が連結される順番を判定する。
86により実行される処理ステップの詳細を説明する前
に、処理の原則を説明する。
点及び5つの平面が拡大形式で示される。ステップS8
−6で3D点計算器84により計算された4つの3D点
は、V1、V2、V3及びV4(V3は、図24の点9
50に対応)とラベル付けされ、5つの平面は、a、
b、c、d及びe(平面a、c及びdは、図24の例に
おいて平面900、960及び970にそれぞれ対応す
る)とラベル付けされる。
86により計算される各エッジ(連結)は、2つの3D
点を連結する。どの3D点が連結されるかを判定するた
めに、この実施形態において、多角形生成器86は、3
D点のシグネチャを利用する。具体的には、連結される
2つの3D点は、ステップS25−12で割り当てられ
たシグネチャ中に、双方のシグネチャに共通する2つの
平面IDを有する。例えば、図27の3D点V1のシグ
ネチャは、{a,b,e}であり、3D点V2のシグネ
チャは、{a,b,c}である。従って、平面IDのa
及びbは、双方のシグネチャにおいて共通であり、図2
7で示すように3D点V1及びV2間のエッジで交わる
平面を定義するので、3D点V1及びV2間の連結を識
別する。
理では、多角形生成器86は、連結が開始3D点に戻る
まで、以上説明したように3D点のシグネチャを使用し
て判定された多角形の周囲のエッジをたどることによっ
て各多角形中の3D点間の連結を判定する。
プS23−4で生成された3D点の各組(同じ平面上に
位置する3D点から構成される)において、同じ2つの
平面IDをシグネチャ中に有する3D点は2つだけであ
ると考えられるので、これは3D点を連結するのに実行
しなければならない唯一の処理である。一例として図2
7を参照すると、平面Aに対する1組の3D点は、点V
1、V2、V3及びV4から構成されるが、点V1及び
V2のみが、シグネチャ中に平面IDa及びbを有す
る。
面の各部分に対しては、シグネチャ中に同じ2つの平面
IDを有する3D点は2つより多くあるかもしれない。
従って、3D点間の連結は、シグネチャのみに基づいて
判定することはできない。
00、1010、1020及び1030が2つの平面9
10、1040の共通部分上に位置する例を示す。従っ
て、この例では、4つの3D点1000、1010、1
020及び1030の各々のシグネチャは、平面910
及び1040の平面IDを含む。
では、多角形生成器86は、平面910及び1040の
共通部分により定義されるエッジに沿って見出される順
番に基づいて、対を成すように各点を連結することによ
って3D点間の連結を判定するための処理を実行する。
この処理について以下で詳細に説明する。
形生成器86は、凸状でない被写体オブジェクト表面の
各部分で発生する可能性のある更なる問題、すなわち、
オブジェクト表面を表す2つ以上の多角形が同じ平面に
位置するという問題に対処するための処理を実行する。
況が、図28の例で示される。ここでは、被写体オブジ
ェクト表面の別々の部分を表す多角形1050及び10
60が、共に平面910に位置する。
能性がある第2の状況が、図29に示される。この例で
は、多角形1100は、オブジェクト表面の一部を表
し、多角形1110は、被写体オブジェクト表面の穴を
表す。
より実行される処理を詳細に説明する。
成器86により実行される処理動作を示す。
角形生成器86は、被写体オブジェクト210の3Dコ
ンピュータモデルに対して空の多角形の組「S」を作成
する。この組に対して、被写体オブジェクト210の表
面の各部分を表す多角形が、計算される際に加えられ
る。
器86は、ステップS23−2で定義された次の平面
「p」を考慮し、ステップS23−4において平面に対
して生成された組Vp中の3D点を読み取る。
器86は、ステップS30−4で読み取られた組Vp中
に3D点が存在するか否かを判定する。処理の反復の1
回目では、3D点が組Vpに存在するので、処理はステ
ップS30−8へと進む。しかし、後続の処理では、点
に対する連結が計算された後に3D点は組Vpから削除
されるので、以降の反復では、ステップS30−6にお
いて、組Vp中に3D点が残存しないと判定される可能
性がある。この場合、処理は後述のステップS30−5
0へと進む。
器86は、ステップS30−2で作成された多角形の組
「S」に新規の多角形データ構造(polygon data struc
ture)「s」を加える。多角形を定義するデータが、生
成されたときにこれに入力される。また、ステップS3
0−8において、多角形生成器86は、多角形に対する
法線を定義するために、現在考慮中の平面に対してステ
ップS25−6で予め計算された法ベクトルを定義する
データを多角形データ構造「s」に格納する。
成器86は、組Vpから多角形の開始頂点「u」として
3D点を選択する(いずれの3D点を開始頂点「u」と
して選択しても良い)。
成器86は、頂点「u」に対して現在処理中の頂点であ
ることを示す現在頂点ポインタ「w」を設定し、ステッ
プS30−14において、開始頂点「u」のシグネチャ
を読み取る。
成器86は、ステップS30−14で読み取られたシグ
ネチャ中に定義されている平面「q」を選択する。この
平面「q」は、現在考慮中(ステップS30−4で選
択)の平面「p」とは異なる。
理解を促進するために、図27の例を参照する。一例と
して図27を参照すると、ステップS30−4で選択さ
れた平面「p」が平面「a」であると想定する。セット
Vp中の3D点は、3D点V1、V2、V3及びV4と
なる。
において、開始頂点(u)として選択されたとする。こ
のとき、ステップS30−16において、多角形生成器
86は、平面b及び平面cのいずれかを選択するが、そ
れは、これらの平面の双方が、平面aと共に3D点V2
のシグネチャ中に定義されているからである。平面cが
ステップS30−16で選択されるものとする。
−18において、多角形生成器86は、現在頂点「w」
(すなわち、現在考慮中の例では3D点V2)を組Vp
から削除し、ステップS30−20において、ステップ
S30−8で生成された多角形データ構造「s」にこの
頂点を加え、多角形「s」の頂点を定義する。
成器86は、組Vp中に残存し、シグネチャ中にステッ
プS30−16で選択された平面「q」のIDを有する
3D点の組「Vpq」を判定する。
は、シグネチャ{a,c,d}を有し、シグネチャ中に
平面c(ステップS30−16で選択)を有する組Vp
中での唯一の点である。
成器86は、ステップS30−22で判定された組Vp
q中に3D点が存在するか否かを判定する。
qに存在する。しかし、上述のように、ステップS30
−18では、各3D点が処理後に組Vpから削除され
る。従って、多角形の全ての頂点の処理が終了したと
き、組Vpqには3D点は存在しなくなる。この場合、
処理はステップS30−6へと戻り、ここで、多角形生
成器86は、組Vpに残存する3D点が存在するか否か
を判定する。
ように、平面「p」に位置する多角形が3つ以上存在す
る場合、点が組Vpに残存している可能性がある。2つ
以上の多角形が平面「p」に存在する状況では、ステッ
プS30−24での検査により、1つの多角形の処理が
終了したときに組Vpqに点は存在しないと判定され、
ステップS30−6で実行される処理により、平面
「p」に位置する別の多角形に対する連結が計算されず
に残存しているときに組Vpに3D点が残存すると判定
されるであろう。この場合、処理がステップS30−6
からS30−8へと進むときに、新規の多角形データ構
造が、平面「p」に位置する別の多角形に対して生成さ
れる。
に点が存在すると判定される場合、処理はステップS3
0−26へと進み、ここで、多角形生成器86は、組V
pq中の点の数が1に等しいか否かを判定する。組Vp
qの各3D点は、現在頂点「w」に連結される3D点を
表す。従って、組Vpqにちょうど1つの点だけが存在
する場合、図27に示す例のような場合が存在する。し
かし、組Vpqに2つ以上の点が存在する場合、上述の
3D点1000、1010、1020及び1030に対
して図28の例のような場合が存在する。
にちょうど1つの3D点が存在する場合、処理はステッ
プS30−28へと進む。ここで、多角形生成器86
は、多角形「s」の次の頂点「x」(すなわち、現在頂
点に連結された頂点)を組Vpq中の3D点に設定す
る。
テップS30−16で選択された平面であるとすると、
ステップS30−28で設定される次の頂点「x」は3
D点V3である。
と進み、ここで、多角形生成器86は、現在頂点ポイン
タ「w」を頂点「x」に設定する。
成器86は、現在頂点のシグネチャを読み取り、ステッ
プS30−48において、ステップS30−4で選択さ
れた平面「p」とは異なり且つステップS30−16で
選択された平面「q」とも異なるシグネチャ中に定義さ
れた平面「r」を選択する。従って、図27の例におい
て、3D点V3のシグネチャは{a,c,d}であり、
平面dがステップS30−48で選択される。
へと戻り、ここで、現在頂点は組Vpから削除される。
とに連結された頂点を判定し、処理が終了したときにこ
の頂点を削除しながら多角形中の3D点間を横断する。
多角形に対する処理は、ステップS30−24で組Vp
qに点が存在せず、多角形の全ての頂点の連結が終了し
たと判定されるときに完了する。
に2つ以上の3D点が存在すると判定される場合、図2
8の例に示すような状況が発生していることになる。こ
の図28に示す状況では、複数の3D点1000、10
10、1020及び1030が2つの平面の共通部分に
より定義される線に位置する。この場合、多角形生成器
86は、現在考慮中の3D点と各々が位置する直線に沿
った組Vpq中の各3D点の相対的な位置に基づいて、
組Vpq中のどの3D点が現在考慮中の3D点に連結さ
れるべきかを判定するための処理を実行する。
て、多角形生成器86は、組Vpq中に3D点は奇数個
存在するか、あるいは、偶数個存在するかを判定する。
ッジ上に位置する3D点の数は、偶数でなければならな
い。これは、3D点が第1と第2、第3と第4のように
対を成して連結されなければならないからである。従っ
て、図28の例を参照すると、3D点1000は、3D
点1010に連結され、3D点1020は、3D点10
30に連結される。
る組Vpq中の3D点の数は奇数であっても良い。なぜ
なら、処理中の現在頂点「w」であったために、2つの
平面の共通部分により定義されるエッジ上に位置する3
D点のうちの1つが、ステップS30−18で組Vpか
ら削除されたような場合も起こりうるからである。
された開始頂点「u」が、3つ以上の頂点が存在するエ
ッジ上に位置する頂点のうちの1つであり、処理される
次の頂点が3つ以上の頂点を有するエッジ上に位置する
頂点でない(すなわち、開始頂点が3つ以上の頂点を有
するエッジ上の端点のうちの1つであって、多角形が3
つ以上の頂点を有するエッジに沿ってそれまで通ってい
ない方向に横断される)場合、開始頂点がステップS3
0−18で組Vpから削除されており、3つ以上の頂点
を有するエッジ上に位置する頂点である現在頂点wも、
ステップS30−18で組Vpから削除されていると考
えられるので、ステップS30−30で検査される組V
pq中の3D点の数は偶数になるであろう。
平面910がステップS30−4で選択される平面であ
り、3D点1000がステップS30−10で開始頂点
「u」として選択されるものとする。平面1040がス
テップS30−16で選択される場合、ステップS30
−18において、3D点1000は、組Vpから削除さ
れ、ステップS30−22及びS30−24において、
組Vpqは、3つの点1010、1020及び1030
を含むものと判定される。これに対し、ステップS30
−16において、平面1040の代わりに平面1080
が選択された場合、ステップS30−18において、3
D点1000が組Vpから削除され、ステップS30−
28及び後続のステップにおいて3D点1070が処理
されるであろう。後続の処理において、3D点101
0、1020及び1030のうちの1つが現在頂点
「w」となる。これらの点のうちの最初のものが現在頂
点「w」になるとき、この頂点が、ステップS30−1
8において、組Vpから削除され、結果として、ステッ
プS30−24及びS30−26で検査された組Vpq
中に残存する平面910及び1040の共通部分上に2
つの点(すなわち、偶数個の点)が位置するようにな
る。
組Vpq中の点の数が奇数であると判定される場合、多
角形生成器86は、組が現在頂点「w」と組Vpq中の
3D点とから構成されるように、平面「p」及び「q」
の共通部分に位置する3D点の組「Vline」を定義
する。
て、組Vpq中の点の数が偶数であると判定される場
合、ステップS30−32において、多角形生成器86
は、組が現在頂点「w」と開始頂点「u」と組Vpq中
の3D点とから構成されるように、平面p及びqの共通
部分に位置する3D点の組「Vline」を定義する。
−34に引き続いて、処理はステップS30−36へと
進む。ここで、多角形生成器86は、平面「p」及び
「q」の共通部分により定義される線に沿った相対的な
位置に従って、組Vline中の各3D点にランク0か
らランクn−1(nは組Vline中の点の数)のラン
クを割り当てる。具体的には、共通部分上の端点の一方
(どちらでも良い)に、ランク0が割り当てられ、組V
lineの残りの点にランク0の点からの距離に従って
ランク1、2...が割り当てられる。従って、図28
に示す例を参照すると、3D点1000にランク0が割
り当てられる場合、3D点1010にランク1が割り当
てられ、3D点1020にランク2が割り当てられ、3
D点1030にランク3が割り当てられる。
成器86は、現在頂点「w」のランクが偶数であるか、
又は、奇数であるかを判定する。
「w」のランクが偶数であると判定される場合、ステッ
プS30−40において、多角形生成器86は、以下の
式が成立するように、多角形「s」の次の頂点「x」
(すなわち、現在頂点に連結された頂点)を組Vpq中
の頂点「v」に設定する: rank(v)=rank(w)+1 … (3) これに対し、ステップS30−38において、現在頂点
「w」のランクが奇数であると判定される場合、ステッ
プS30−42において、多角形生成器86は、以下の
式が成立するように、次の頂点「x」及び多角形「s」
を組Vpq中の頂点「v」に設定する: rank(v)=rank(w)-1 … (4) 続いて、処理はステップS30−44へと進む。
いて、多角形生成器86は、現在頂点ポインタ「w」を
頂点「x」に設定し、ステップS30−46において、
新規の現在頂点のシグネチャを読み取る。
成器86は、ステップS30−4で選択された平面
「p」と異なり、ステップS30−16で選択された平
面「q」とも異なるステップS30−46で読み取られ
たシグネチャ中に定義された平面「r」を選択する。
テップS30−18へと戻る。
Vp中にこれ以上の3D点が存在しないと判定される
(全ての3D点がステップS30−18の処理の前回の
反復で削除されているため)場合、ステップS30−4
で選択された平面「p」上に位置する3D点の全てに対
して連結が判定され、処理はステップS30−50へと
進む。
成器86は、平面「p」に位置する2つ以上の多角形が
存在するか否かを判定する。具体的には、この実施形態
において、多角形生成器86は、2つ以上の多角形デー
タ構造「s」が平面「p」に対して生成されたか否かを
判定する(新規の多角形データ構造「s」がステップS
30−8で平面「p」に位置する各多角形に対して生成
される)。
「p」に位置する2つ以上の多角形が存在すると判定さ
れる場合、処理はステップS30−52へと進み、ここ
で、多角形生成器86は、平面「p」に位置する各多角
形を検査し、平面「p」に位置するその他の多角形のう
ちのいずれかを含むか否かを判定する。
成器86は、平面「p」に位置する各多角形が被写体オ
ブジェクト210の表面の一部又はその中の穴を表すか
否かを判定する。具体的には、多角形がその他の多角形
と共に含まれない場合、その多角形は、被写体オブジェ
クト210の表面を表す。ちょうど1つの多角形が別の
多角形の内部に位置する場合、大きい方の多角形は、被
写体オブジェクト210の表面を表し、大きい多角形に
含まれる小さい方の多角形は、表面の穴を表す。多角形
に含まれる多角形が2つ以上存在する場合、多角形生成
器86は、各親多角形が複数の子多角形を含むように階
層構造を作成する。多角形生成器86は、続いて、階層
構造の奇数の世代の各多角形を被写体オブジェクト21
0の表面として識別し、偶数の世代の多角形を穴として
識別する。
て、平面「p」に1つだけ多角形が存在すると判定され
る場合、ステップS30−52及びS30−54は省略
される。
成器86は、ステップS23−2において識別された処
理すべき別の平面が存在するか否かを判定する。
き別の平面が残存すると判定される場合、処理はステッ
プS30−4へと戻る。
まで、ステップS30−4からS30−56が繰り返さ
れる。
写体オブジェクト210の表面を表す多角形メッシュを
計算する。
−8において、多角形生成器86は、ステップS23−
6で生成された多角形中の3D点を連結し、連結された
平面三角形のメッシュを生成する。この実施形態では、
多角形生成器86は、“OpenGL Programming Guide 2nd
edition”(第11章、ISBN 0-201-46138-2)に記載さ
れるようなOpen GLユーティリティライブラリ“g
lutess”による従来の方法を使用してステップS23−
8での処理を実行する。
8において、サーフェステクスチャラ90は、入力画像
データを処理し、ステップS4−16でサーフェスモデ
ラ80により生成されるサーフェスモデル中の各表面三
角形に対してテクスチャデータを生成する。
フェステクスチャラ90は、ステップS4−16で生成
されたサーフェスメッシュ中の各三角形を選択すると共
に、選択された三角形に最も真正面に近い状態で直面す
る入力画像「i」を見出すための処理を従来の方法で実
行する。すなわち、 値が最大の入力画像が見出される。ここで、 は、各三角形が位置する多角形に対してステップS30
−10で割り当てられた三角形の法線であり、 は「i」番目の画像に対するビューイング方向である。
これにより、選択された三角形が最大投影領域を有する
入力画像が識別される。
れた入力画像へと投影され、投影された三角形の頂点
は、画像テクスチャマップを定義するためのテクスチャ
座標として使用される。
ャラ90がテクスチャデータを生成するのに使用するそ
の他の技術は、同時係属英国特許出願第002633
1.9号、第0026343.4号及び第002634
7.5号に記載される。その内容は、相互参照により本
明細書に取り入れられている。
ジェクト210の表面のVRML(又は、類似の形式)
モデルであり、モデル上にレンダリングされる画像デー
タを定義するテクスチャ座標を備えている。
置20は出力データ記憶装置120からの、被写体オブ
ジェクト210の3Dコンピュータモデルを定義するデ
ータを、例えば、ディスク122などの記憶装置に格納
されるデータ又は信号124(図1)として出力する。
これに加えて、又はその代わりに、中央制御装置20
は、ディスプレイプロセッサ110に、被写体オブジェ
クト210の3Dコンピュータモデルの画像を、例え
ば、ユーザ入力装置6を使用してユーザにより入力され
た視点に従って、テクスチャデータによってレンダリン
グして表示させても良い。
ブジェクト210のシルエットとカメラ230の焦点と
により定義される円錐形の多面体を定義するデータを処
理することによって3Dコンピュータモデルを生成する
ための処理が実行されている。この処理は、多面体を構
成する所定数の三角形平面が相互に交わる3D点を計算
するために実行され、その結果、各3D点は、3D点で
交わる各平面のうちのいずれも含まない多面体の各々の
内部にある。従って、第1実施形態では、3Dコンピュ
ータモデルは、被写体オブジェクトの画像と画像が記録
された位置及び向きを定義するデータとに基づいて生成
される。
平面から成る多面体から3Dコンピュータモデルを生成
する場合に対しても適用可能である。
れる多面体から成る複数のコンポーネント3Dオブジェ
クトから構成される複合オブジェクトの3Dコンピュー
タモデルが生成される第2実施形態を説明する。
来の通りに1つ以上のプロセッサと、複数のメモリと、
グラフィックスカードなどを含むパーソナルコンピュー
タのような処理装置2002と、従来通りのパーソナル
コンピュータモニタのような表示装置2004と、キー
ボード、マウスなどのユーザ入力装置2006とを具備
する。
012などのデータ記憶媒体に格納されたデータとして
及び/又は遠隔データベース等からインターネットなど
の通信ネットワーク(図示せず)を介する伝送、あるい
は無線伝送により処理装置2002に入力され且つ/又
はキーボードなどのユーザ入力装置2006を介してユ
ーザにより入力される信号2014として入力されるプ
ログラミング命令に従って動作するようにプログラムさ
れている。
ログラミング命令は、各々が複数の平面多面体から成る
3Dコンピュータモデルを定義するデータを生成し、及
び/又は、このような3Dコンピュータモデルを定義す
るデータを入力データとして受け取り、ユーザの入力命
令に従って相互に対して3Dコンピュータモデルを位置
決めし、コンポーネントとしての元のコンピュータモデ
ルとユーザにより定義される相対的な位置とを使用して
複合オブジェクトの3Dコンピュータモデルを生成する
ように処理装置2002を構成させるための命令であ
る。複合オブジェクトの3Dコンピュータモデルは、新
規の創意に富んだ技術を使用して生成される。この技術
では、コンポーネントの3Dコンピュータモデルを定義
する平面多角形の共通部分を判定することによって、複
合オブジェクトの頂点を表す3D点を計算するための処
理が実行される。以下で説明するように、特に、複合オ
ブジェクトの頂点である3D点を生成する可能性がない
多角形の共通部分の計算をしなくても良いので、この処
理は非常に効率的な方法で実行される。
によりプログラミングされたとき、処理動作を実行する
ための幾つかの機能ユニットとして構成されたと考える
ことができる。そのような機能ユニットの例及びそれら
の相互接続関係を図31に示す。しかし、図31に示す
ユニット及び相互接続は概念上のものであり、理解を助
けるという目的のために一例として示されているにすぎ
ない。従って、それらは、処理装置2002のプロセッ
サ、メモリなどが構成されるユニットや接続を必ずしも
表してはいない。
中央制御装置2020はユーザ入力装置2006からの
入力を処理すると共に、その他の機能ユニットの制御及
び処理を実行するように構成されている。
及びその他の機能ユニットにより使用されるべく設けら
れている。
ディスク2042などの記憶装置に格納されるデータと
して、又は処理装置2002へ送信される信号2044
として、又はユーザ入力装置2006を使用して処理装
置2002に入力される入力データを格納するように構
成される。入力データは、各々が従来の方法で平面多角
形から構成される1つ以上の3Dコンピュータモデルを
定義する。
0は、入力データ格納装置2040に格納された入力デ
ータを処理し、ユーザ命令に従って入力された3Dコン
ピュータモデルを修正して形状、外観などを変更するよ
うに構成される。加えて、コンポーネントオブジェクト
モデラ2050は、ユーザにより入力された命令に従っ
て、平面多角形から成る新規の3Dコンピュータモデル
を定義するデータを生成するように構成される。
060は、ユーザがユーザ入力装置2006を使用して
入力した命令を処理し、複合オブジェクトのコンポーネ
ントを定義するように、入力データ記憶装置2040に
格納された入力データ中で定義され、及び/又は、共通
の座標空間で相互に対してコンポーネントオブジェクト
モデラ2050により生成されたデータにより定義され
たオブジェクトを位置決めするように構成される。
点計算器2080及び多角形生成器2090を具備す
る。
の3Dコンピュータモデルとその相対的な位置を定義す
るデータを処理し、コンポーネントモデルを構成する平
面多角形の共通部分(複合オブジェクトの潜在頂点を定
義する共通部分)の3D位置を計算すると共に、この共
通部分を検査して複合オブジェクトの実際の値を表す共
通部分がどれであるかを判定するように構成される。
080により生成された3D点を連結して複合オブジェ
クトの表面を表す多角形メッシュを形成するように構成
される。
制御装置2020の制御の下に、コンポーネントオブジ
ェクトモデラ2050、モデルポジショナ2060及び
複合オブジェクトモデラ2070による処理中に、表示
装置2004を介してユーザに対し画像及び命令を表示
するように構成される。特に、ディスプレイプロセッサ
2100は、ユーザが選択した視点からのコンポーネン
トの画像及び複合コンピュータモデルを表示するように
構成される。
ジェクトモデラ2070により生成される複合オブジェ
クトを定義するデータを格納するように構成される。中
央制御装置2020は、出力データ記憶装置2110か
らのデータの出力を、例えば、ディスク2120などの
記憶装置へのデータ及び/又は信号2130として制御
するように構成される。
置2002により実行される処理動作を示す。
ンポーネントオブジェクトモデラ2050は、ユーザ入
力装置2006を介してユーザにより入力された命令に
基づいて動作し、複数のコンポーネントオブジェクトの
各々に対して、3Dコンピュータモデルを定義するデー
タを生成する。この処理は、例えば、計算機支援設計
(CAD)装置などにおいて従来の方法で実行される。
スプレイプロセッサ2100は、表示装置2004に表
示するための画像データを生成し、ユーザに対してコン
ポーネントオブジェクトを表示する。この実施形態で
は、コンポーネントオブジェクトの3Dコンピュータモ
デルは対話方式で生成される。すなわち、ユーザからの
各命令の入力による3Dコンピュータモデルの形成に対
する効果が表示装置2004に表示され、ユーザは、入
力効果の連続表示に応じて更に命令を入力して3Dコン
ピュータモデルを完成させる。
が、図33aにおいて示される。ここでは、コンポーネ
ントオブジェクトモデラ2050により生成されるデー
タにより定義された3つの3Dコンポーネントオブジェ
クト2200、2210及び2220が示されている。
底面多角形2230と、上面多角形2240と、側面多
角形2250、2260、2270及び2280とで構
成される。
上面多角形2290と、底面多角形2300と、側面多
角形2310、2320及び2330とで構成される。
多角形2340、2350、2360、2370、23
80、2390、2400及び2410から構成され
る。
明するために、図33aに示すコンポーネントオブジェ
クトを以下で参照する。
ントオブジェクトモデラ2050が全てのコンポーネン
トオブジェクトを定義するためのデータを生成する代わ
りに、処理装置2002に入力され、入力データ記憶装
置2040に格納されたデータによりコンポーネントオ
ブジェクトのうちの1つ以上を定義しても良い。このよ
うな入力データは、例えば、第1実施形態で説明した処
理を使用したり、あるいは、1つ以上のオブジェクトを
レーザ走査したりすることによって生成しても良い。
データ記憶装置2040に格納された1つ以上の3Dコ
ンピュータモデルに対するデータを、3Dコンピュータ
モデルを編集し、コンポーネントオブジェクトの形状、
外観などを変更するためにユーザ入力装置2006を介
してユーザにより入力された命令に従ってコンポーネン
トオブジェクトモデラ2050により修正しても良い。
−4において、モデルポジショナ2060は、ユーザ入
力装置2006を介してユーザにより入力された命令に
基づいて動作し、ステップS32−2において生成され
た(あるいは、入力データ記憶装置2040に格納され
たデータ中に定義された)コンポーネントオブジェクト
を複合オブジェクトの各部分として共通座標空間におい
て位置決めする。加えて、ディスプレイプロセッサ21
00は、中央制御装置2020の制御の下に、表示装置
2004に表示するための画像データを生成し、共通の
座標空間において位置決めされたコンポーネントオブジ
ェクトの画像を表示する。
の結果の一例を示す。ここで、図33aのコンポーネン
トオブジェクト2200、2210及び2220は、複
合オブジェクトの各部分として相互に対して位置決めさ
れる。
ェクト2210は、多角形2230を介してコンポーネ
ントオブジェクト2200に嵌入する(すなわち、コン
ポーネントオブジェクト2210の多角形2290を定
義する頂点2420、2430及び2440がコンポー
ネントオブジェクト2200の内側にある)ように位置
決めされる。
コンポーネントオブジェクト2210の多角形2310
及び2330と交わるように位置決めされる。
−6において、3D点計算器2080は、複合オブジェ
クトの頂点を表す3D点を計算する。
ら構成される多面体から成る複数の3Dコンポーネント
オブジェクトが存在し、コンポーネントオブジェクト
(及び平面多角形)の相対的な位置及び向きは既知であ
る。
ュータモデルは、コンポーネントオブジェクトの結合を
計算することによって生成することができる。この結合
は、コンポーネントオブジェクトが3D空間において占
めるボリュームの結合である。
ェクトの結合は、各コンポーネントオブジェクトを構成
する平面多角形の共通部分を計算することによって計算
される。多角形のうちの3つが交わる任意の3D点(こ
れらの多角形が同じコンポーネントオブジェクトを元に
しているか、2つの異なるコンポーネントオブジェクト
を元にしているか、あるいは、3つの異なるコンポーネ
ントオブジェクトを元にしているかを問わない)が、潜
在的に複合オブジェクトの表面にある点を定義する。各
潜在点は検査され、複合オブジェクト上の点を実際に表
すのがどの点であるかが判定される。
ュータモデル正確さを保証するために、複合オブジェク
トの頂点となるコンポーネントオブジェクトを元にした
各多角形の共通部分を計算する必要がある。これは、各
多角形をそれ以外の全ての多角形に対して検査し、3つ
の多角形が交わる一揃いの3D点を生成することによっ
て達成することができるであろう。しかし、このように
複合オブジェクト上の3D点を計算するのに必要な計算
の回数は膨大である。具体的には、全てのコンポーネン
トオブジェクト中の多角形の総数が「n」個である場
合、O(n3)回の計算が必要になると思われる。加え
て、検査される多角形の多くが交わらない(従って、3
D点の生成に至らない)うえに、3つの多角形の共通部
分を計算するのに計算上最も効率の良い方法は、多角形
が位置する3つの平面の共通部分を計算することである
ので、計算の大半が不必要なものとなる。このため、複
合オブジェクトの表面に位置せず、複合オブジェクトの
頂点を実際に表すのはどの3D点であるかを判定するた
めの処理を行なう必要がある3D点を計算することとな
る。
ンポーネントオブジェクト2200、2210、222
0の各々は少数の多角形から成るので、計算回数は、処
理可能な範囲に納まるであろう。しかし、より複雑なケ
ースでは、各コンポーネントオブジェクトは、数千の多
角形から成る可能性もあり、計算を実行するのに必要と
される時間は膨大なものとなるであろう。
クト上の点を表す3D点を計算するのに必要な計算の回
数を低減するように処理が実行される。
理について説明する。
ップS32−4でコンポーネントオブジェクトが位置決
めされた3D空間のボリュームを考慮し、このボリュー
ムを検査して以下の点を判定するための処理が実行され
る: (1) 交わって3D点を生成するのに十分な多角形
(すなわち、この実施形態では3つ)がボリューム中に
存在しないか、あるいは、ボリューム中の多角形が、複
合オブジェクトの頂点を表す3D点で交わることがない
という理由で、ボリュームを廃棄することができるか否
か(以下で詳細に後述)、(2) ボリュームが、相互
に交わるのに十分であると共に、複合オブジェクトの頂
点を表すであろう所定数(この実施形態では、1つの3
D点)を超える3D点を生成するのに十分な多角形を含
むという理由で、より小さいボリュームを考慮すべくボ
リュームを再分割すべきか否か、又は、(3) ボリュ
ームが、相互に交わると共に、複合オブジェクトの頂点
を表す十分に少ない所定数(この実施形態では1つ)の
3D点を生成するのに適した数(この実施形態では3
つ)の多角形を含むか否か。この場合、これらの点の3
D位置が計算/検査され、複合オブジェクトの頂点を実
際に表すか否かが判定される。
このような点の計算に至らない不必要な処理を回避しな
がら、複合オブジェクトの頂点を表す全ての3D点を確
実に計算することができる。特に、これ以上の計算をす
ることなく、3D空間のうちの大きなボリュームを廃棄
することができる。
す3D点で交わらないためにボリュームを廃棄すること
ができるか否かを判定するために、この実施形態では、
3D点がコンポーネントオブジェクトのうちの1つの内
側に位置し、複合オブジェクトの頂点を表すことができ
ないか否かを判定するための処理が実行される。具体的
には、一例として図33bを参照すると、3D点242
0、2430及び2440の各々は、コンポーネントオ
ブジェクト2200の内側に位置するので、複合オブジ
ェクトの頂点を表すことができない。従って、この実施
形態の処理では、これらの点の計算/検査が行なわれな
いため、実行される処理の量が削減される。
態では、3D点がコンポーネントオブジェクトの内部に
位置するか否かを判定するための検査が、各コンポーネ
ントオブジェクトを適切な大きさの多面体の穴と見な
し、3D点が全てのコンポーネントオブジェクトに対し
て、全ての多面体の内部に位置するか否かを検査する
(これは、3D点が元の3Dオブジェクトのうちの少な
くとも1つの内側に位置するか否かの検査と同等であ
る)ための処理を実行することによって実際に実行され
る。
に引き続いて検査が行なわれ、3D点が複合オブジェク
トの頂点を表すか否かが判定される。これは、3つの平
面多角形を含む3Dボリュームが識別されるときに3D
点が計算されるからである。しかし、多角形は、ボリュ
ーム内の3D点で実際には交わらない可能性がある。加
えて、3D点が、多角形が位置する3つの各平面の共通
部分を計算することによって計算される結果、計算され
た3D点が2つ以上の多角形の内部に位置しない可能性
もある。従って、この実施形態では、計算された3D点
が識別されたボリューム内にあるか否か、及び、3つの
多角形全ての内部にあるか否かを判定するための検査が
実行される。
の頂点を表す3D点を計算するために実行される処理を
詳細に説明する。
する3D点を計算するためにステップS32−6におい
て3D点計算器2080により実行される処理動作を示
す。
D点計算器2080は、複合オブジェクトの頂点を表す
全ての3D点が位置する3D空間中のボリュームを定義
する。
の実施形態では、3D点計算器2080は、ステップS
34−2において、複合オブジェクトの頂点を含むボリ
ュームとしてコンポーネントオブジェクト2200、2
210及び2220の周囲で軸方向に整列したバウンデ
ィング直平行六面体2500を定義する。このバウンデ
ィング直平行六面体は従来通りに定義されるので、ここ
では説明を行なわない。
−4において、3D点計算器2080は、ステップS3
4−2において定義された3Dボリュームを複数のより
小さい子ボリュームへと再分割し、子ボリュームをメモ
リ中に定義された格納スタックの最上部へと加える。
の実施形態において、ステップS34−4でのボリュー
ムの再分割は、8つの新規の子ボリューム2510、2
520、2530、2540、2550、2560、2
570及び2580を生成するためのバウンディング直
平行六面体2500の2値再分割である。
−6において、3D点計算器2080は、コンポーネン
トオブジェクトを穴として含む多面体を各コンポーネン
トオブジェクトに対して定義する。
00に関して、この処理及びその効果を説明する(処理
及びその効果は、その他のコンポーネントオブジェクト
の各々に関しても同じである)。
処理は、元のコンポーネントオブジェクト2200と同
じ座標を有する穴2610(以降、「コンポーネントオ
ブジェクト穴」と呼ぶ)を設けた直平行六面体の形態を
有する多面体2600を定義する。
の各多角形は、多面体2600のコンポーネントオブジ
ェクト穴を定義する。
々が先にステップS34−2で定義されたバウンディン
グ直平行六面体2500の対応する面の外側から多少離
間した位置にある複数の面を有するように直平行六面体
2600を定義することによって、ステップS34−6
での処理を実行する。このため、直平行六面体2600
は、バウンディング直平行六面体2500と同じ形状を
有するが、寸法がわずかに大きい。このように、直平行
六面体2600は、生成する複合オブジェクト上の全て
の点を包囲する。
ポーネントオブジェクト2200、2210、2220
が占めるボリュームの結合を計算するための処理は、多
面体のコンポーネントオブジェクト穴の結合を計算する
ための処理となる。
−8において、3D点計算器2080は、ステップS3
4−4で作成されたスタックの最上部から次のボリュー
ム(ステップS34−8が初めて実行される場合、これ
は最初のボリュームである)を取り出し、ステップS3
4−10において、スタックから取り出されたボリュー
ムの状態を判定する。
3D点計算器2080は、ステップS34−8でスタッ
クから取り出されたボリュームが、複合オブジェクトの
頂点を表すいずれかの3D点を含む可能性がない(従っ
て、ボリュームを廃棄することができる)か否か、複合
オブジェクトの頂点を表す2つ以上の3D点を定義する
のに十分な数の多角形を含むためにボリュームを再分割
する必要があるか否か、あるいは、ボリュームが複合オ
ブジェクトの頂点を表す単一の3D点を定義するのに十
分な多角形のみを含むか否か(この場合、3D点の位置
を計算/検査することができる)を判定する。
計算器2080により実行される処理動作を示す。
10において、3D点計算器2080は、コンポーネン
トオブジェクト穴を定義するどの多角形が、ステップS
34−8でスタックから取り出されたボリュームと交わ
るかを判定するための処理を実行する。
分に対して親ボリューム(すなわち、現在処理中のボリ
ュームを作成するために分割されるボリューム)と交わ
る多角形のみを検査し、現在のボリュームの子ボリュー
ムの処理を行なう際に使用される現在のボリュームと交
わる多角形のリストを格納することによって、計算上効
率の良い方法で実行される。
て、3D点計算器2080は、親ボリュームと交わる多
角形(親ボリュームがステップS34−2で定義された
直平行六面体2500である場合、これは、コンポーネ
ントオブジェクト穴を定義する全ての多角形である)の
リストを考慮する。
器2080は、ステップS38−2で読み取られたリス
ト上の次の多角形(ステップS38−4が初めて実行さ
れる場合、これは最初の多角形である)を考慮し、ステ
ップS38−6において、多角形が現在のボリュームと
交わるか否かを判定する。多角形が現在のボリュームと
交わるか否かを検査するためにこの実施形態で実行され
る処理は、“GraphicsGems”(V、375〜379ペー
ジ、Alan W. Paeth編集、Morgan Kaufmann出版、ISBN 0
-12-543455-3)に記載されるような従来の方法で実施さ
れる。
在のボリュームと交わると判定される場合、ステップS
38−8において、3D点計算器2080は、多角形を
現在のボリュームと交わる多角形のリストに加える。
て、多角形が現在のボリュームと交わらないと判定され
る場合、ステップS38−8は省略される。
算器2080は、ステップS38−2で読み取られたリ
ストに別の多角形が存在するか否かを判定する。以上説
明したようにステップS38−2で読み取られたリスト
上の各多角形を処理し終わるまで、ステップS38−4
からS38−10が繰り返される。
おいて、3D点計算器2080は、ステップS34−8
でスタックから取り出されたボリュームは、全体的に1
つ以上のコンポーネントオブジェクト穴の内部に存在す
る(従って、ボリューム中に位置する3D点は、複合オ
ブジェクトの頂点を表す可能性がない)ためにこのボリ
ュームを廃棄できるか否かを判定するための処理を実行
する。実施形態では、この処理は、ボリュームを検査し
てステップS34−6で生成された全ての多面体により
包囲されるか否かを判定することから成る。加えて、処
理は特に計算上効率的な方法で行なわれる。具体的に
は、ボリュームが多面体により包囲される場合、その子
ボリュームの全ても多面体により包囲される。従って、
この実施形態では、3D点計算器2080は、親ボリュ
ームを包囲するものとして検証されていない多面体(以
降、「アクティブな多面体」と呼ぶ)のみを検査し、現
在のボリュームを包囲するか否かを判定する。多面体が
現在のボリュームを包囲するものとして検証される場
合、この多面体は、現在のボリュームの子ボリュームの
各々に渡されるアクティブな多面体のリストから削除さ
れる。(従って、アクティブな多面体のリストは、第1
実施形態での「アクティブなカメラ」のリストと同等で
ある。)具体的には、ステップS38−12において、
3D点計算器2080は、親ボリュームに対するアクテ
ィブな多面体のリスト(すなわち、上述のように、親ボ
リュームを包囲するものとして検証されていない多面体
のリスト)を現在のボリュームに対するリストとしてコ
ピーする。親ボリュームがステップS34−2で定義さ
れたバウンディング直平行六面体2500である場合、
アクティブな多面体のリストは、ステップS34−6で
生成された全ての多面体から構成される。
算器2080は、ステップS38−12でコピーされた
リスト上に現在のボリュームと交わる少なくとも1つの
多角形を含まない多面体が存在するか否かを判定する。
具体的には、3D点計算器2080は、ステップS38
−8で生成された現在のボリュームと交わる多角形のリ
ストを読み取り、ステップS38−12でコピーされた
リスト上において、現在のボリュームと交わる被写体オ
ブジェクト穴を定義する少なくとも1つの多角形を有し
ない多面体を識別する。
形を有する場合、現在のボリュームは、部分的に多面体
の被写体オブジェクト穴の内側と外側の双方に位置す
る。更に、全ての多面体が現在のボリュームと交わる多
角形を有する場合、現在のボリュームは、少なくとも1
つの被写体オブジェクト穴の内側にその全体が位置する
訳ではなく、部分的に全ての多面体の内側と外側の双方
に位置するので、ボリュームを廃棄することができな
い。従って、ステップS38−14において、全ての多
面体が現在のボリュームと交わる少なくとも1つの多角
形を含むと判定される場合、処理は後述のステップS3
8−28へと進む。
て、多面体が現在のボリュームと交わる多角形を含まな
いと判定される場合、現在のボリュームは、全体的に多
面体の内側に位置する(すなわち、ボリュームは多面体
により包囲される)か、全体的に多面体の被写体オブジ
ェクト穴に位置する(すなわち、ボリュームは多面体か
ら「外れて」いる)かのいずれかである。この場合、3
D点計算器2080は、ステップS38−16からS3
8−26において、現在のボリュームが、これと交わる
多角形を有しない各多面体により包囲されているか、あ
るいは、多面体から外れているかを判定するための処理
を実行する。
て、3D点計算器2080は、現在のボリュームと交わ
る多角形を有しないリスト上の次の多面体を考慮する
(ステップS38−16が初めて実行される場合、これ
は最初の多面体である)。
算器2080は、多面体が現在のボリュームを包囲する
か、あるいは、これから外れているかを判定する。
計算器2080により実行される処理動作を示す。
D点計算器2080は、ステップS34−8でスタック
から取り出されたボリュームの表面の点を選択する。ボ
リュームの表面のどの点でも良く、この実施形態では、
3D点計算器2080は、ボリュームの第1の面の第1
の頂点を選択する。
器2080は、ステップS39−2で選択された点か
ら、光線が考慮中の多面体の外へ確実に放出されるよう
に十分に離間した地点(この実施形態では、x方向にお
いて多角形の寸法の2倍の距離に設定される)に対し
て、x軸方向(任意の方向で良い)に光線を投影する。
加えて、3D点計算器2080は、光線の多面体との共
通部分の数をカウントし、ステップS39−6におい
て、光線の多面体との共通部分の数が奇数であるか、あ
るいは、偶数であるかを判定する。
b、41a及び41bを参照して説明する。
34−8でスタックから取り出されたボリューム265
0が被写体オブジェクト穴2610の外側にある場合、
ステップS39−4で投影された光線2660は、被写
体オブジェクト穴2610を有する多面体2600と奇
数回交わる。図40bに示す例では、光線2660は、
多面体2600と点2670で1回だけ交わる。光線2
660は、穴2610を通過する場合、穴2610の形
状によって多面体2600と3つ、5つ、又はそれ以上
の奇数個の点で交わっても良い。しかし、ボリューム2
650が穴2610の外側にある(従って、多面体26
00により包囲される)場合は常に、光線2660の多
面体2600との共通部分の数が奇数になる。
ると、ステップS34−8でスタックから取り出された
ボリューム2680が全体的に被写体オブジェクト穴2
610の内側にある場合、ステップS39−4で投影さ
れる光線2690は、多面体2600と偶数個の地点で
交わることになる。図41bの例では、光線2690
は、多面体2600と2つの地点、すなわち、点270
0及び2710で交わる。しかし、光線2690は、被
写体オブジェクト穴2610の形状によって多面体26
00とそれより多い偶数個の地点で交わっても良い。
−6において、ステップS39−4で投影された光線の
多面体との共通部分の数が奇数であると判定される場
合、ステップS39−8において、3D点計算器208
0は、ステップS34−8でスタックから取り出された
ボリュームが多面体により包囲されていることを示すた
めのフラグを設定する。
て、ステップS39−4で投影された光線の多面体との
共通部分の数が偶数であると判定される場合、ステップ
S39−10において、3D点計算器2080は、ステ
ップS39−8でスタックから取り出されたボリューム
が多面体から外れている(すなわち、ボリュームが全体
的に多面体の被写体オブジェクト穴の内側にある)こと
を示すフラグを設定する。
−20において、3D点計算器2080は、ステップS
39−8又はステップS39−10で設定されたフラグ
を読み取り、現在のボリュームが多面体により包囲され
ているか、あるいは、多面体から外れているかを判定す
る。
S34−8でスタックから取り出されたボリュームが多
面体から外れていると判定される場合、ステップS38
−22において、3D点計算器2080は、ボリューム
がコンポーネントオブジェクト穴のうちの1つの完全な
内側(従って、元の3Dコンポーネントオブジェクトの
うちの1つの完全な内側)に位置し、複合オブジェクト
の頂点を表す3D点を含む可能性がないために、ステッ
プS34−8でスタックから取り出されたボリュームの
状態が「廃棄」と判定されたことを示すためのフラグを
設定する。
理は図34のステップS34−12へと戻る。これは、
現在のボリュームが複合オブジェクトの頂点を表す3D
点を含む可能性がないことを判定するには、3D点計算
器2080は、現在のボリュームから外れた多面体の1
つだけを識別すれば良いので、現在のボリュームと更に
別の多面体との間の関係を判定する必要がないからであ
る。
て、ステップS34−8でスタックから取り出されたボ
リュームが多面体により包囲されていると判定される場
合、ステップS38−24において、3D点計算器20
80は、現在のボリュームに対するアクティブな多面体
のリストからこの多面体を削除する。その結果、この多
面体に対して、現在のボリュームのいずれかの子ボリュ
ームを包囲するか否かを判定するための検査が行なわれ
ない。
こで、3D点計算器2080は、ステップS38−12
でコピーされたリスト上に現在のボリュームと交わる多
角形を含まない別の多面体が存在するか否かを判定す
る。以上説明したようにこのような多面体の各々を処理
し終わるまで、あるいは、ステップS38−20におい
て、現在のボリュームが多面体のうちの1つから外れて
いると判定される(この場合、ステップS38−22に
おいてボリュームの状態が「廃棄」と判定され、処理は
ステップS34−12へと戻る)まで、ステップS38
−16からS38−26が繰り返される。
S38−12でコピーされたリスト上に現在のボリュー
ムと交わる多角形を有しない多面体が存在しないと判定
される場合、あるいは、ステップS38−26におい
て、このような多角形の全ての処理が終了し、これらの
多角形が現在のボリュームを包囲することが判明したと
判定される場合、処理はステップS38−28へと進
む。
算器2080は、現在のボリュームと交わる多角形を定
義するステップS38−8で生成されたリストを読み取
る。
算器2080は、ステップS38−28で読み取られた
リスト上の多角形の数が3であるか、3より大きいか、
あるいは、3未満であるかを判定する。
リュームと交わる多角形の数が3未満であると判定され
る場合、ステップS38−32において、3D点計算器
2080は、相互に交わり、複合オブジェクトの頂点を
表す3D点を生成するのに十分な数の多角形をボリュー
ムが含まないために、ステップS34−8でスタックか
ら取り出されたボリュームの状態が「廃棄」と判定され
たことを示すためのフラグを設定する。続いて、処理は
図34のステップS34−12へと戻る。
リュームと交わる多角形の数が3であると判定される場
合、ステップS38−34において、3D点計算器20
80は、相互に交わり、複合オブジェクトの頂点を表す
単一の3D点を定義するのに適した数の多角形をボリュ
ームが含むために、ステップS34−8でスタックから
取り出されたボリュームの状態が「頂点の計算」と判定
されたことを示すためのフラグを設定する。処理は図3
4のステップS34−12へと戻る。
リュームと交わる多角形の数が3より多いと判定される
場合、ステップS38−36において、3D点計算器2
080は、相互に交わり、複合オブジェクトの頂点を表
す単一の3D点を定義するのに必要な数(すなわち、3
つ)より多い多角形をボリュームが含むために、ステッ
プS34−8でスタックから取り出されたボリュームの
状態が「再分割」と判定されたことを示すためのフラグ
を設定する。処理は図34のステップS34−12へと
戻る。
結果、3D点計算器2080は、ステップS34−8で
スタックから取り出されたボリュームの状態の判定を終
了し、判定された状態に従って、どの後続の処理をボリ
ュームに対して実行すべきかを示すフラグの設定を終了
する。
うなボリュームの状態を判定するための処理を実行した
後、ステップS34−12において、3D点計算器20
80は、状態が「頂点の計算」であるか否かを判定す
る。
算すべきであると判定される場合、処理はステップS3
4−14へと進み、ここで、頂点の計算が行なわれる。
頂点を計算すべきであると判定されない場合、ステップ
S34−14は省略される。
S34−14で3D点計算器2080により実行される
処理動作を示す。
D点計算器2080は、3つの多角形を含む3つの平面
が交わる点の3D位置を計算する(この処理は、従来の
平面共通部分技術を使用して実行される)。
器2080は、ステップS42−2で計算された3D点
が、ステップS34−8でスタックから取り出された3
Dボリューム内にあると同時に2D多角形の3つ全ての
内部にもあるか否かを判定する。3D点は多角形を含む
各平面の共通部分として計算され、各平面は、必ずしも
ボリューム中の点、あるいは、実際に各多角形の一部で
ある(すなわち、各多角形の内部にある)点で相互に交
わる必要がないので、この検査が必要である。ステップ
S34−8でスタックから取り出されたボリュームは、
軸方向に整列した直平行六面体であるので、3D点がボ
リュームの内側にあるか否かを判定するための検査は、
3D点の座標と最小/最大x座標、最小/最大y座標及
び最小/最大z座標との間での従来の不等検査を使用し
て実行される。3D点が各2D多角形内にあるか否かを
判定するための処理は、“Graphics Gems”(IV、16
〜46ページ、P. Heckbert編集、Morgan Kaufmann出
版、ISBN 0-12-336155-9)に記載されるような従来の方
法で実行される。
3D点がボリュームの内側にあると同時に3つの多角形
全ての内部にもあると判定される場合、処理はステップ
S42−6へと進み、ここで、3D点計算器2080
は、計算された3D点を複合オブジェクトの頂点を表す
3D点のリストに加える。
て、計算された3D点がボリュームの外側、あるいは、
3つの多角形のうちの少なくとも1つの外側にあると判
定される場合、ステップS42−6は省略される。
器2080は、ステップS34−8でスタックから取り
出されたボリュームの処理が終了したのでこのボリュー
ムを廃棄することを示すためのフラグを設定する。
−16において、3D点計算器2080は、ステップS
34−8でスタックから取り出されたボリュームの状態
が「廃棄」に設定されるのか、あるいは、「再分割」に
設定されるのかを判定する。
の処理により、あるいは、ステップS42−8の結果と
してステップS34−14で設定される可能性がある)
に設定される場合、ステップS34−18において、3
D点計算器2080はこのボリュームを廃棄する。
割」に設定される場合、ステップS34−20におい
て、3D点計算器2080は、ボリュームを再分割し、
子ボリュームをステップS34−4で作成されたスタッ
クの最上部に加える。この実施形態では、ステップS3
4−20でのボリュームの再分割は、ステップS34−
4での再分割と同様に実行される。すなわち、この再分
割は、8つの新規の子ボリュームを生成するためのボリ
ュームの2値再分割である。ステップS34−18又は
ステップS34−20に引き続いて、処理はステップS
34−22へと進む。ここで、3D点計算器2080
は、スタック上に別のボリューム(ステップS34−2
0で加えられた子ボリュームを含む)が存在するか否か
を判定する。
ームを処理し終わるまでステップS34−8からS34
−22が繰り返される。
れた結果、3D点計算器2080は、複合オブジェクト
の頂点を表す3D空間中の1組の点(図43中の各円に
より示す)を生成する。各頂点は、同じ2つ又は3つの
コンポーネントオブジェクトを元にした3つの多角形が
交わる位置を表す。
トオブジェクト2210の頂点2420、2430及び
2440は、コンポーネントオブジェクト2200の内
側にある。このため、3D点計算器2080により実行
される処理では、これらの頂点は計算されず、複合オブ
ジェクトの一部を形成しない(これらの頂点は、コンポ
ーネントオブジェクト2200に対してステップS34
−6で生成された多面体2600から「外れた」ボリュ
ーム中に位置するためである)。従って、再度図43を
参照すると、複合オブジェクトの頂点2800、280
2及び2804は、頂点2806、2808、2810
及び2812と同じ平面に位置する。
オブジェクトの頂点間の連結は点線により示される。し
かし、処理のこの段階では、頂点間の連結はまだ計算さ
れておらず、処理装置2002は、連結を計算するため
の処理を実行する。次にこの処理の説明を行なう。
−8において、多角形生成器2090は、3D点計算器
2080により計算された3D点を連結してこの3D点
間の連結を計算し、複合オブジェクトの表面を表す多角
形メッシュを生成する。
2090により実行される処理は、ステップS23−2
で実行される処理を除き、第1実施形態のステップS8
−8において多角形生成器86により実行される処理
(図23を参照して説明)と同じである。従って、この
処理における差異のみをここで説明する。
計算された3D点ごとに、平面データを生成し、「シグ
ネチャ」を定義するために第2実施形態のステップS2
3−2で多角形生成器2090により実行される処理動
作を示す。
角形生成器2090は、ステップS42−2において3
D点が3D点計算器2080により計算され、ステップ
S42−6において複合オブジェクトの頂点のリストに
加えられる元となった次の多角形を考慮する(このステ
ップが初めて実行される場合、これは最初の多角形であ
る)。
器2090は、このステップの前回の反復時に固有のI
Dが割り当てられている場合を除き、ステップS44−
2で選択された多角形にこのIDを割り当てる。
器2090は、複合オブジェクトの頂点を計算するのに
使用される別の多角形が存在するか否かを判定し、以上
説明したように各多角形を処理し終わるまで、ステップ
S44−2からS44−6が繰り返される。
器2090は、ステップS42−6で3D点計算器20
80により生成されたリストから複合オブジェクトの次
の計算された頂点を考慮し、ステップS44−10にお
いて、3D点で交わる多角形のID(ステップS44−
4で多角形に割り当てられたID)から構成される頂点
に対するシグネチャを定義する。
成器2090は、複合オブジェクトの別の計算された頂
点が存在するか否かを判定し、以上説明したように各頂
点を処理し終わるまで、ステップS44−8からS44
−12が繰り返される。
果、多角形生成器2090は、複合オブジェクトの表面
を表す三角の多角形のメッシュを生成する。
−10において、中央制御装置2020は、出力データ
記憶装置2110から複合オブジェクトの3Dコンピュ
ータモデルを定義するデータを、例えば、ディスク21
20などの記憶装置に格納されるデータとして、又は、
信号2130(図31)として出力する。これに加え
て、又はその代わりに、中央制御装置2020は、ディ
スプレイプロセッサ2110に、複合オブジェクトの3
Dコンピュータモデルを、例えば、ユーザ入力装置20
06を使用してユーザにより入力された視点に従って表
示装置2004に表示させても良い。
行される処理動作は、図4のステップS4−16でサー
フェスモデラ80により実行される処理動作を除いて、
第1実施形態と同じであり、この処理動作は第3実施形
態では異なっている。
ステップS4−16でサーフェスモデラ80により実行
される処理動作を示す。
ルエットアプロキシメータ82は、図4のステップS4
−8においては画像データセグメンタ60、ステップS
4−12においては画像分割エディタ70により予め生
成された分割画像データを処理し、各入力画像中の被写
体オブジェクトのシルエットを直線で近似する。この処
理は、第1実施形態において図8のステップS8−2で
シルエットアプロキシメータ82により実行された処理
と同じであり、各シルエットは、図9の例で示されるよ
うに、連結された直線により近似される。
器84は、各シルエットの各直線を3次元空間へと投影
し、直線の端点を通り、この直線を含む画像が記録され
たときのカメラ230の焦点の位置で交わるエッジを有
する無限の平面三角形を生成する(各画像の焦点位置
は、ステップS4−6でカメラ計算器50により予め計
算済である)。
で実行される処理により、3次元空間における各点(こ
の時点では未知)で被写体オブジェクト210の表面に
接すると共に、カメラ230の焦点位置に頂点を有する
複数の三角形の平面(シルエットの線分ごとに1つ)か
ら成る無限の円錐形520から構成される多面体を各入
力画像に対して生成する。従って、各円錐形の横断面
は、円錐形を生成する元となったシルエットと同じ形状
である。
各々に対して固有のIDを割り当てる。
いて、3D点計算器84は、ステップS45−4で生成
された多面体からの平面の共通部分の各点を計算し、共
通部分の計算された各点を検査して被写体オブジェクト
210の表面の各点を表すか否かを判定するための処理
を実行する。
て、3D点計算器84は、ステップS45−4で生成さ
れた全ての多面体の全ての平面を考慮し、少なくとも2
つの多面体の面を含むこれらの平面のうちの3つから成
る次の組を考慮する(ステップS45−6が初めて実行
される場合、これは最初の組である)。
器84は、ステップ45−6で考慮された3つの平面の
共通部分の点を計算する。具体的には、この実施形態に
おいて、共通部分の点は、従来の平面共通部分アルゴリ
ズムを使用して、3つの平面を含む3つの平面が交わる
点を計算することによって計算される。
算器84は、ステップS45−8で計算された共通部分
の点が、ステップS45−4で生成された全ての多面体
の内部に位置するか否かを判定する。
くとも1つの多面体の外側に位置すると判定される場
合、被写体オブジェクト210の表面の点を表す可能性
がないために、ステップS45−12においてこの点は
廃棄される。
て、点が全ての多面体の内部にあると判定される場合、
ステップS45−14において、3D点計算器84は、
その点がステップS45−6で考慮された3つの平面の
全ての内部にあるか否かを判定する(点は、平面自体の
共通部分の点を計算することによってではなく、各面を
含む平面の共通部分の点を計算することによって計算さ
れるので、点はこれらの平面の1つ以上の外側にあって
も良いことに留意すべきである)。
のうちの少なくとも1つの外側に位置する場合、ステッ
プS45−12において、点は被写体オブジェクト21
0の表面の点を表す可能性がないので廃棄される。
て、点が3つの平面の全ての内部にあると判定される場
合、ステップS45−16において、点は被写体オブジ
ェクト210の表面の点として保持される。加えて、点
には、そこで交わる各平面の3つのID(これらのID
は、ステップS45−4で予め平面に割り当てられたI
Dである)から形成される三重値から構成される「シグ
ネチャ」が割り当てられる。
算器84は、少なくとも2つの多面体の面を含む3つの
平面から成る別の組が存在するか否かを判定する。以上
説明したように少なくとも2つの多面体の3つの平面の
各組を処理し終わるまで、ステップS45−6からS4
5−18が繰り返される。
4は、少なくとも2つの多面体の3つの平面の全ての予
想可能な組み合わせの共通部分の点を計算/検査し、被
写体オブジェクト210の表面の点を表す3D空間中の
各点から構成される被写体オブジェクト210の3Dコ
ンピュータモデルを生成する。
成器86は、各点に割り当てられたシグネチャを使用し
て、ステップS45−16で保持された3D点を連結
し、どの点を相互に連結すべきかを判定し、それによ
り、被写体オブジェクト210の表面を表す多角形メッ
シュを生成する。従って、3D点を連結して多角形メッ
シュを生成するための処理は、ステップS45−4で生
成された全ての多面体の共通部分から生成される3D点
が計算/検査された後に実行される。
角形生成器86により実行される処理は、第3実施形態
では図25のステップS25−10からS25−14が
実行されない点を除いて、第1実施形態においてステッ
プS8−8で実行される処理と同じである。ステップS
25−10からS25−14の処理は代わりに図45の
ステップS45−16で実行される。
上高い費用がかかるが、それでも、被写体オブジェクト
210の3Dコンピュータモデルを生成するために第3
実施形態で実行される処理は、3Dコンピュータモデル
を生成する従来の方法よりも、必要とする処理資源及び
/又は処理時間が少なくて済む。
請求の範囲内で多数の変形を行なうことができる。
形態では、入力画像データは、カメラ230により記録
された被写体オブジェクト210の「静止」画像であっ
たが、この入力画像は、ビデオカメラにより記録された
画像データのフレームであっても良い。
は、ステップS4−4において、カメラの固有パラメー
タを定義するためにユーザにより入力されたデータが格
納される。しかし、その代わりに、固有のカメラパラメ
ータの一部又は全部に対してデフォルト値を想定して
も、あるいは、Hartleyの“Euclidean Reconstruction
From Uncalibrated Views”(Applications of Invaria
nce in Computer Vision、Mundy, Zisserman and Forsy
th編集、237〜256ページ、Azores、1993年)
に記載されるような従来の方法で、固有のパラメータ値
を計算するための処理を実行しても良い。
は、図5を参照して説明したように、被写体オブジェク
ト210に関連する入力画像からの画像データが、背景
に関連する画像データから分割される。しかし、他の従
来の分割方法を代わりに使用しても良い。例えば、写真
マット34及び背景(又は背景のみ)の色を表す単一の
RGB値が格納され、入力画像中の各画素が処理されて
RGB背景値とRGB画素値との間のRGB空間でのユ
ークリッド距離が特定の閾値未満であるか否かが判定さ
れる分割方法が使用されても良い。
は、カメラ計算器50は、写真マット34に対するカメ
ラ230の位置及び向きを入力画像ごとに計算する(ス
テップS4−6を参照して説明済)ことによって、入力
画像の相対的な位置及び向きを計算する。しかし、撮影
位置及び向きが計算される方法は重要ではない。例え
ば、写真マット34を廃棄し、その代わりに、被写体オ
ブジェクト210を包囲し、各々が処理装置2に入力さ
れる既知で固定の位置及び向きを有する複数のカメラを
使用して入力画像を生成しても良い。あるいは、写真マ
ット34を廃棄し、被写体オブジェクト210がその正
確な回転を処理装置2に入力する位置符号器を有するタ
ーンテーブル上に設置されても良い。カメラ230の固
定位置及びターンテーブルの角度が分かっているので、
処理装置2は、被写体オブジェクト210の各画像の相
対的な位置及び向きを計算することができる。
−8で実行される処理中にフラグ“eitherSubdivideOrD
iscard”が設定される。しかし、ステップS15−26
及びS15−46において「np」カウンタをオーバー
フローさせる(すなわち、第1実施形態において値が3
を超過する)処理を実行した結果、処理は依然として機
能するので、このフラグを必ずしも設定する必要はな
い。
−16において、処理装置2は、投影されたボリューム
と交わる1組の「候補エッジ」を生成する。後続の検査
は、その1組の候補エッジに位置するエッジに限定され
る。しかし、ステップS15−16(及びステップS1
5−16の処理を促進するために実行されるステップS
8−4)が省略され、後続の検査が全てのエッジで行な
われても良い。しかし、これにより、実行しなければな
らない処理動作の量が大幅に増加する可能性がある。
参照して説明したオブジェクト表面の全ての計算された
点が位置する3Dボリュームを定義するための処理を実
行する代わりに、様々な方法で3Dボリュームを定義す
るための処理が実行されても良い。例えば、初期開始ボ
リュームは、任意の大きな立方体として定義されても良
い。立方体が初期ボリュームに加えられるか(全ての隅
が全てのカメラの正面にある場合)、廃棄されるか(全
ての角がカメラのうちの1台の背面にある場合、又は、
立方体がある所定の寸法よりも小さい場合)、あるい
は、再分割されるか(これらの条件のいずれにも当ては
まらない場合)のいずれかである。再分割された立方体
は同様に処理される。このように、ステップS13−2
で定義される3Dボリュームは、1組の立方体の結合か
ら成ると考えられ、完全に全てのカメラの正面に位置し
且つ最小の立方体寸法により求められる許容誤差までの
最大範囲になることが保証される。
を含むような十分に小さいボリュームが得られるまで、
3D空間のボリュームは繰り返し再分割される。しか
し、その代わりに、3Dボリュームの再分割は、ボリュ
ームが2つ以上の所定数の頂点を含むときに停止しても
良い。複数の頂点の各々が計算/検査され、第1実施形
態で各単一の頂点が計算/検査されたのと同様に被写体
オブジェクトの実際の頂点を表すか否かが判定されても
良い。
明された処理動作が、ステップS8−2で生成されたシ
ルエットが穴(及び穴の内部の島)を表す多角形を含む
場合にまで拡張できるのは明白である。
−30及びS38−36において、現在のボリュームと
交わる多角形の数が3より多い場合に、ボリュームの状
態は「再分割」に設定される。しかし、その代わりに、
現在のボリュームと交わる多角形が3個より多く所定数
(例えば5個)以下の個数で存在する場合、ボリューム
の状態は「複数の頂点の計算」に設定されても良い。従
って、後続の処理において、処理装置2002は、ボリ
ュームと交わる3つの多角形から成る部分集合により定
義される各頂点を計算/検査するであろう。従って、ボ
リュームは、これと交わる多角形が所定の最大数より多
く存在する場合にのみ再分割されると考えられる。この
ように、ボリュームは2つ以上の頂点を複合オブジェク
トのモデルに加えることができ、それにより、(別の候
補頂点を計算/検査する手間をかけて)更にボリューム
を再分割する処理を行なわなくて済む。
18でスタックから取り出された3Dボリュームを再分
割する際、及び、第2実施形態のステップS34−4及
びS34−20において、実行される再分割は、8つの
新規の子ボリュームを生成するボリュームの2値再分割
である。しかし、言うまでもなく、他の種類の再分割を
行なうこともできる。
−8において、3つの平面の共通部分の点は、各面を含
む3つの無限の平面が交わる点を計算することによって
計算される。引き続いて、ステップS45−10及びS
45−14において、計算された点が全ての多面体の内
部にあると同時に、3つの平面全ての内部にあるか否か
を判定するための検査が実行される。しかし、その代わ
りに、ステップS45−8において、3つの平面自体の
共通部分の点が(これらが位置する平面の代わりに)計
算されても良い。この場合、ステップS45−10及び
S45−14は省略される。
クトの表面のコンピュータモデルを生成する第1実施形
態での処理に対する変形を説明している。多面体の共通
部分を計算/検査し、結果として生じる点を連結してサ
ーフェスモデルを生成するための第2実施形態での処理
も、同様に変形することができるであろう。
は、オブジェクトの表面の計算すべき点の全てを含むよ
うに定義される(第1実施形態のステップS13−2及
び第2実施形態のステップS34−2で定義される)初
期ボリュームは、各々がオブジェクトの表面の所定数の
3D点のみを含むように十分に小さいボリュームが生成
されるまで、より小さいボリュームへと繰り返し再分割
される。再分割プロセスを介してこのような小さいボリ
ュームが得られるようになってから、3D点が計算/検
査される。これは、オブジェクトの表面上の点を表す点
を計算するのに特に効率的な方法ではあるが、他の方法
を使用しても良い。例えば、計算された3D点の全てを
含むことになる初期ボリュームが、多面体を構成する平
面多角形の位置を参照することなく複数の部分へと分割
され、その部分を更に再分割することなく3D点の計算
が実行されても良い。具体的には、ボリュームは、(例
えば、同じ形状及びボリュームの)複数の部分へと分割
され、各部分が多面体に対して検査され、その全体が多
面体のうちの少なくとも1つの外側にあるか否かが判定
されても良い。ボリューム部分が少なくとも1つの多面
体の外側にある場合、そのボリューム部分は廃棄され
る。これに対し、ボリュームが少なくとも部分的に全て
の多面体の内部にある場合、多面体の平面多角形が相互
に交わるボリューム部分中の3D点が計算される。この
ように、各ボリューム部分が廃棄されるか、あるいは、
3D点が計算されるが、更なる再分割が起こることはな
い。ボリューム部分の3D点を計算するために、3つの
平面多角形の各組み合わせが考慮され、これらの多角形
の共通部分が計算/検査され、ボリューム部分の内部に
あるか否かが判定される。これにより、上述の第1実施
形態及び第2実施形態と比較して、計算/検査の必要が
ある共通部分の数は増加するが、依然として、3Dコン
ピュータモデルを生成するには効率的な方法である。な
ぜなら、ボリューム部分が全ての多面体の外側に位置す
る場合には、このボリューム部分を廃棄することがで
き、多面体を構成する平面多角形の全ての予想可能な共
通部分を計算/検査する必要がないからである。
ラミング命令により定義される処理ルーチンを使用して
コンピュータにより処理を行なう。しかし、処理の一部
又は全部は、言うまでもなく、ハードウェアを使用して
実行されても良い。
ミング命令によりプログラムされたときに処理装置の構
成要素が構成されるものと考えられる概念上の機能処理
ユニットと共に概略的に示す図である。
クトの画像の記録を示す図である。
像を示す図である。
めに実行する処理動作を示す図である。
作を示す図である。
作を示す図である。
における図1の表示装置の画面の一例を示す図である。
作を示す図である。
線で近似される被写体オブジェクトのシルエットの一例
を示す図である。
示すと共に、様々な多面体を元にした多角形が交わって
3Dコンピュータモデル中の各点をどのように生成する
かを示す図である。
動作を示す図である。
で実行される処理動作の一例を示す図である。
作を示す図である。
ームがどのように定義されるかを示す図である。
処理動作を示す図である。
の2D画像への投影の一例を示す図である。
のオブジェクトのシルエットのエッジとの間の8つの関
係であって、そのうちのどれが存在するかを検査するた
めの処理が第1実施形態において実行される関係を示す
図である。
処理動作を示す図である。
びS18−6で実行される処理動作の一例を示す図であ
る。
処理動作を示す図である。
処理動作を示す図である。
処理動作を示す図である。
作を示す図である。
理動作の一例を示す図である。
理動作を示す図である。
理動作を示す図である。
理動作の一例を示す図である。
理動作の別の例を示す図である。
理動作の更なる例を示す図である。
処理動作を示す図である。
ラミング命令によりプログラムされたときに処理装置の
構成要素が構成されるものと考えられる概念上の機能処
理ユニットと共に概略的に示す図である。
めに実行する処理動作を示す図である。
構成要素オブジェクトの一例を示す図である。
32のステップS32−4でどのように配置されるかの
一例を示す図である。
理動作を示す図である。
プS34−2でどのように定義されるかを示す図であ
る。
リュームが、ステップS34−4でどのように再分割さ
れるかを示す図である。
が、図34のステップS34−6でどのように生成され
るかを示す図である。
る処理動作を示す図である。
処理動作を示す図である。
及びS39−6で実行される処理動作の第1の例を示す
図である。
及びS39−6で実行される処理動作の第2の例を示す
図である。
処理動作を示す図である。
理の結果を示す図である。
において実行される処理動作を示す図である。
において実行される処理動作を示す図である。
Claims (42)
- 【請求項1】 少なくとも被写体オブジェクトの一部が
内部に位置するボリュームを定義する3次元空間中の複
数の平面から各々が構成される少なくとも3つの多面体
を定義するデータを処理して、多角形メッシュを形成す
るように連結された前記被写体オブジェクトの表面上の
複数の点を表す前記3次元空間中の複数の点から構成さ
れる前記被写体オブジェクトの3Dコンピュータモデル
を生成する方法であって、 前記多面体の所定数の平面が相互に交わる点を計算する
ことによって、前記被写体オブジェクトの表面上の複数
の点を表す前記3次元空間中の複数の点を計算する工程
と、 前記被写体オブジェクト上の1つの点を表す各計算され
た点に対して前記1つの点で交わる複数の平面に従って
識別情報を割り当てる工程と、 前記被写体オブジェクト上の複数の点を表す前記複数の
点を計算し、各々に四季別情報を割り当てた後、前記割
り当てられた識別情報に従って前記複数の点を連結し、
前記被写体オブジェクトの表面を表す多角形メッシュか
ら構成される3Dコンピュータモデルを生成する工程と
を備えることを特徴とする方法。 - 【請求項2】 前記被写体オブジェクト上の複数の点を
表す複数の点を計算する工程において、前記3次元空間
の複数のボリュームを検査し、前記被写体オブジェクト
の部分を全く含まないボリュームを識別することによっ
て、前記被写体オブジェクト上の1つの点で交わる可能
性がなく、前記識別されたボリュームと交わるのがどの
平面であるかを識別するための検査が実行され、共通部
分の複数の点は、前記被写体オブジェクト上の1つの点
で交わる可能性がない前記平面に対して計算されないこ
とを特徴とする請求項1記載の方法。 - 【請求項3】 前記被写体オブジェクトの表面上の複数
の点を表す前記3次元空間中の複数の点を計算する工程
は、 前記被写体オブジェクト上の全ての点が位置する前記3
次元空間のボリュームを定義する工程と、 前記ボリュームを複数のボリューム部分に分割する工程
と、前記多面体に対して各ボリューム部分を検査する工
程と、 前記ボリューム部分が全体的に前記多面体のうちの少な
くとも1つの外側にある場合、前記ボリューム部分を廃
棄し、 前記ボリューム部分が少なくとも部分的に前記多面体の
全ての内部にある場合、前記ボリューム部分と交わる前
記複数の平面を定義する前記データを処理して前記複数
の平面のうちの所定数の平面が交わる前記ボリューム部
分中の前記3D点を計算する工程とを含むことを特徴と
する請求項2記載の方法。 - 【請求項4】 少なくとも被写体オブジェクトの一部が
内部に位置するボリュームを定義する3次元空間中の複
数の平面から各々が構成される複数の多面体を定義する
データを処理して、前記被写体オブジェクトの表面上の
複数の点を表す前記3次元空間中の複数の点から構成さ
れる前記被写体オブジェクトの3Dコンピュータモデル
を生成する方法であって、 前記3Dコンピュータモデル中の全ての点が位置する前
記3次元空間のボリュームを定義する工程と、 前記ボリュームを複数のボリューム部分に分割する工程
と、 前記多面体に対して各ボリューム部分を検査する工程
と、 前記ボリューム部分が全体的に前記多面体のうちの少な
くとも1つの外側にある場合、前記ボリューム部分を廃
棄し、 前記ボリューム部分が少なくとも部分的に前記多面体の
全ての内部にある場合、前記ボリューム部分と交わる前
記複数の平面を定義する前記データを処理して前記複数
の平面のうちの所定数の平面が交わる前記ボリューム部
分中の前記複数の3D点を計算する工程とを備えること
を特徴とする方法。 - 【請求項5】 前記ボリュームを複数のボリューム部分
に分割する工程及び前記複数のボリューム部分を検査す
る工程は、前記多面体に対して前記複数のボリューム部
分を検査する工程と、 前記ボリューム部分が前記多面体のうちの少なくとも1
つの外側に全体的にある場合、前記ボリューム部分を廃
棄し、 前記ボリューム部分が少なくとも部分的に前記多面体の
全ての内部にある場合、前記ボリューム部分と交わる前
記複数の平面を定義する前記データを処理し、前記ボリ
ューム部分と交わる前記複数の平面の数に従って、 前記ボリューム部分を更なる検査を行なうために複数の
より小さいボリューム部分に再分割するか、 前記複数の平面のうちの所定数の平面が交わる前記ボリ
ューム部分中の前記複数の3D点を計算するか、或い
は、 前記ボリューム部分を廃棄する工程を含むことを特徴と
する請求項3又は4記載の方法。 - 【請求項6】 ボリューム部分が少なくとも部分的に前
記多面体の全ての内部にあり、前記ボリューム部分と交
わる複数の平面の数が所定数よりも多い場合、前記ボリ
ューム部分は再分割されることを特徴とする請求項5記
載の方法。 - 【請求項7】 ボリューム部分が少なくとも部分的に前
記多面体の全ての内部にあり、前記ボリューム部分と交
わる複数の平面の数が所定数未満の場合、前記ボリュー
ム部分は廃棄されることを特徴とする請求項5又は6記
載の方法。 - 【請求項8】 ボリューム部分が検査されるときに、前
記ボリューム部分と交わる前記複数の平面を定義するデ
ータが格納され、親ボリューム部分の再分割により生成
されたより小さいボリューム部分が検査されるときに、
前記複数の平面のうちの前記親ボリューム部分と交わる
平面のみが検査されて前記より小さいボリューム部分と
交わるか否かが判定されることを特徴とする請求項5乃
至7のいずれか1項に記載の方法。 - 【請求項9】 ボリューム部分が検査されるときに、前
記ボリューム部分が全体的に内側に位置すると判定され
る各多面体を定義するデータが格納され、親ボリューム
部分の再分割により生成されたより小さいボリューム部
分が検査されるときに、前記より小さいボリューム部分
が前記格納されたデータ中で定義されない前記多面体の
各々の内側に位置するか否かを判定するための検査は実
行されるが、前記格納されたデータ中で定義される前記
多面体のうちのいずれかの内側に位置するか否かを判定
するための検査は実行されないことを特徴とする請求項
5乃至8のいずれか1項に記載の方法。 - 【請求項10】 多面体に対してボリューム部分が検査
され、前記多面体の複数の多角形面のいずれかが前記ボ
リューム部分と交わるか否かを判定することで、そのボ
リューム部分が多面体全体の外側に存在するかどうかが
検査され、 少なくとも1つの多角形面が前記ボリューム部分と交わ
る場合には、前記ボリューム部分が少なくとも部分的に
前記多面体の内部に位置することを判定し、 前記複数の多角形面のいずれも前記ボリューム部分と交
わらない場合には、前記ボリューム部分内の点から前記
3次元空間中の所定の点に対して光線を投影し、前記光
線の前記多面体との共通部分の数に従って、前記ボリュ
ーム部分が全体的に前記多面体の内側に位置するか、あ
るいは、全体的に前記多面体の外側に位置するかを判定
することによって前記ボリューム部分が全体的に前記多
面体の外側に位置するか否かが判定されることを特徴と
する請求項3乃至9のいずれか1項に記載の方法。 - 【請求項11】 各多面体は、前記3次元空間中の既知
の位置及び向きを有する2次元画像から前記被写体オブ
ジェクトの輪郭の前記3次元空間への投影から構成さ
れ、それにより、各多面体は、前記投影を生成する元と
なった前記画像の平面に平行な平面において前記被写体
オブジェクトの形状を表すことを特徴とする請求項1乃
至10のいずれか1項に記載の方法。 - 【請求項12】 更に、 前記被写体オブジェクトの複数の画像を定義するデータ
を処理して各画像中の前記被写体オブジェクトの前記輪
郭を複数の直線で近似する工程と、 前記3次元空間中の前記複数の画像の位置及び向きに従
って、前記複数の直線を前記3次元空間へと投影し、各
々が前記投影を生成する元となった前記画像の平面に平
行な平面において前記被写体オブジェクトの形状を表す
前記複数の多面体を定義する工程とを備えることを特徴
とする請求項11に記載の方法。 - 【請求項13】 多面体に対してボリューム部分を検査
する前記工程は、 前記ボリューム部分を前記多面体に対応する前記2次元
画像へと投影し、前記画像中の前記被写体オブジェクト
の前記輪郭に対して前記2次元の投影されたボリューム
部分を検査する工程を備えることを特徴とする請求項1
1又は12に記載の方法。 - 【請求項14】 各2次元画像中の前記被写体オブジェ
クトの前記輪郭は、複数の直線状エッジから構成され、
前記ボリューム部分と交わる前記複数の平面を判定する
ために、前記2次元の投影されたボリューム部分が検査
され、前記投影されたボリューム部分と交わる前記複数
の輪郭エッジが判定されることを特徴とする請求項13
に記載の方法。 - 【請求項15】 各2次元画像中の前記輪郭の前記複数
の直線状エッジは、複数の頂点で端部と端部をつなぐよ
うに連結され、前記ボリューム部分と交わる前記複数の
平面を判定するために、前記2次元の投影されたボリュ
ーム部分が検査され、その中に位置する複数の輪郭頂点
と前記投影されたボリューム部分と交わる前記複数の輪
郭エッジとが判定されることを特徴とする請求項14に
記載の方法。 - 【請求項16】 投影されたボリューム部分と交わる前
記複数の輪郭エッジを判定するため、 前記投影されたボリューム部分を含む前記画像の部分が
識別され、 前記画像の複数の領域及び各領域内の前記複数の輪郭エ
ッジを定義する格納されたデータが読み取られ、 前記投影されたボリューム部分を含む前記画像の前記識
別された部分と重複する複数の領域に位置するように前
記格納されたデータ中で定義された複数の輪郭エッジに
対してのみ前記投影されたボリューム部分が検査される
ことを特徴とする請求項14又は15に記載の方法。 - 【請求項17】 各多面体は、前記被写体オブジェクト
の部分の輪郭の3次元形状を定義する穴を有する多面体
であることを特徴とする請求項1乃至10のいずれか1
項に記載の方法。 - 【請求項18】 被写体オブジェクトの複数の画像を定
義するデータを処理し、前記被写体オブジェクトの3D
コンピュータモデルを定義するデータを生成する方法で
あって、 各画像を処理して3次元空間中の前記画像の位置及び向
きに従ってその中の前記被写体オブジェクトの輪郭を前
記3次元空間へと投影し、前記被写体オブジェクトの視
覚的な体を定義する複数の平面から構成される多面体を
各画像から生成する工程と、 以下に示す工程により、少なくとも2つの多面体の所定
数の平面が交わる前記3次元空間中の前記複数の点を計
算する工程と、 ここで、前記以下に示す工程は、 前記被写体オブジェクトの表面上の全ての点が必ず位置
する前記3次元空間のボリュームを定義する工程と、 前記ボリュームを複数のボリューム部分に分割し、前記
複数のボリューム部分のリストを定義するデータを格納
する工程と、 前記リストからボリューム部分を選択し、前記複数の画
像から生成された前記多面体に対して検査する工程、そ
して、 前記ボリューム部分が前記多面体のうちの少なくとも1
つの外側に全体的にある場合には、前記ボリューム部分
を廃棄し、 前記ボリューム部分が少なくとも部分的に前記多面体の
全ての内部にある場合;前記ボリューム部分と交わる前
記複数の平面が前記被写体オブジェクトの表面上の複数
の点を表す所定数より多い3D点を生成するのに十分な
数である場合、前記ボリューム部分を複数のより小さい
ボリューム部分に再分割し、各より小さいボリューム部
分を処理すべき部分のリストに加え、 前記ボリューム部分と交わる前記複数の平面が、相互に
交わって前記被写体オブジェクトの表面上の点を表す少
なくとも1つの3D点を生成するのに十分な数でない場
合、前記ボリューム部分を廃棄し、 前記ボリューム部分と交わる平面の数が、相互に交わっ
て前記被写体オブジェクトの表面上の複数の点を表す所
定数の3D点を生成するのに必要とされる数に等しい場
合、前記被写体オブジェクトの表面上の複数の点を表す
前記ボリューム部分中の複数の3D点を計算し、 前記リスト上の全てのボリューム部分が選択/検査され
るまで前記リストからボリューム部分を選択して前記ボ
リューム部分の検査を行なう前記工程を繰り返し、それ
により、前記多面体の複数の平面の共通部分により定義
され、各々が前記被写体オブジェクトの前記視覚的な体
上の点を表す前記3次元空間中の複数の点から構成され
る前記被写体オブジェクトの3Dコンピュータモデルを
生成する工程とを備えることを特徴とする方法。 - 【請求項19】 更に、前記被写体オブジェクトの表面
上の複数の点を表す前記3次元空間中の前記計算された
点を連結し、前記被写体オブジェクトの表面を表す多角
形メッシュから構成される3Dコンピュータモデルを生
成する工程を備えることを特徴とする請求項4乃至18
のいずれか1項に記載の方法。 - 【請求項20】 更に、前記3Dコンピュータモデルを
搬送する信号を生成する工程を備えることを特徴とする
請求項1乃至19のいずれか1項記載の方法。 - 【請求項21】 直接に又は間接的に前記信号の記録を
作成する過程を更に含む請求項20記載の方法。 - 【請求項22】 少なくとも被写体オブジェクトの一部
が内部に位置するボリュームを定義する3次元空間中の
複数の平面から各々が構成される少なくとも3つの多面
体を定義するデータを処理して、多角形メッシュを形成
するように連結された前記被写体オブジェクトの表面上
の複数の点を表す前記3次元空間中の複数の点から構成
される前記被写体オブジェクトの3Dコンピュータモデ
ルを生成するための装置であって、 前記多面体の所定数の平面が相互に交わる点を計算する
ことによって、前記被写体オブジェクトの表面上の複数
の点を表す前記3次元空間中の複数の点を計算する3D
点計算手段と、 前記被写体オブジェクト上の1つの点を表す各計算され
た点に対して前記1つの点で交わる前記平面に従って識
別情報を割り当てる3D点識別手段と、 前記割り当てられた識別情報に従って前記複数の点を連
結し、前記被写体オブジェクトの表面を表す多角形メッ
シュから構成される3Dコンピュータモデルを生成する
手段であって、前記3D点計算手段によって前記3Dコ
ンピュータモデル中の全ての3D点を計算する処理が終
了した後に、前記複数の点を連結するように構成される
3D点連結手段とを備えることを特徴とする装置。 - 【請求項23】 前記3D点計算手段は、前記3次元空
間の複数のボリュームを検査し、前記被写体オブジェク
トの部分を全く含まないボリュームを識別することによ
って、前記被写体オブジェクト上の1つの点で交わる可
能性がなく、前記識別されたボリュームと交わるのがど
の平面であるかを識別するための検査を実行するように
構成され、3D点計算手段は、前記被写体オブジェクト
上の1つの点で交わる可能性がない前記識別された平面
に対して共通部分の複数の点を計算しないように構成さ
れることを特徴とする請求項22に記載の装置。 - 【請求項24】 前記3D点計算手段は、 前記被写体オブジェクト上の全ての点が位置する前記3
次元空間のボリュームを定義するボリューム定義手段
と、 前記ボリュームを複数のボリューム部分に分割するボリ
ューム分割手段と、 前記多面体に対して各ボリューム部分を検査し、 前記ボリューム部分が全体的に前記多面体のうちの少な
くとも1つの外側にある場合、前記ボリューム部分を廃
棄し、 前記ボリューム部分が少なくとも部分的に前記多面体の
全ての内部にある場合、前記ボリューム部分と交わる前
記複数の平面を定義する前記データを処理して前記複数
の平面のうちの所定数の平面が交わる前記ボリューム部
分中の前記複数の3D点を計算するボリューム検査手段
とを備えることを特徴とする請求項23に記載の装置。 - 【請求項25】 少なくとも被写体オブジェクトの一部
が内部に位置するボリュームを定義する3次元空間中の
複数の平面から各々が構成される複数の多面体を定義す
るデータを処理して、前記被写体オブジェクトの表面上
の複数の点を表す前記3次元空間中の複数の点から構成
される前記被写体オブジェクトの3Dコンピュータモデ
ルを生成するための装置であって、 前記3Dコンピュータモデル中の全ての点が位置する前
記3次元空間のボリュームを定義するボリューム定義手
段と、 前記ボリュームを複数のボリューム部分に分割するボリ
ューム分割手段と、 前記多面体に対して各ボリューム部分を検査するボリュ
ーム検査手段であって、当該ボリューム検査手段は、 前記ボリューム部分が全体的に前記多面体のうちの少な
くとも1つの外側にある場合、前記ボリューム部分を廃
棄し、 前記ボリューム部分が少なくとも部分的に前記多面体の
全ての内部にある場合、前記ボリューム部分と交わる前
記複数の平面を定義する前記データを処理して前記複数
の平面のうちの所定数の平面が交わる前記ボリューム部
分中の前記複数の3D点を計算するように構成されるを
備えることを特徴とする装置。 - 【請求項26】 前記ボリューム分割手段及び前記ボリ
ューム検査手段は、ボリューム部分が全体的に前記多面
体のうちの少なくとも1つの外側にある場合、前記ボリ
ューム部分を廃棄し、 前記ボリューム部分が少なくとも部分的に前記多面体の
全ての内部にある場合、前記ボリューム部分と交わる前
記複数の平面を定義する前記データを処理し、前記ボリ
ューム部分と交わる前記複数の平面の数に従って、 前記ボリューム部分を更なる検査を行なうために複数の
より小さいボリューム部分に再分割するか、 前記複数の平面のうちの所定数の平面が交わる前記ボリ
ューム部分中の前記複数の3D点を計算するか、あるい
は、 前記ボリューム部分を廃棄するための処理を実行するよ
うに構成されることを特徴とする請求項24又は25に
記載の装置。 - 【請求項27】 前記ボリューム分割手段及び前記ボリ
ューム検査手段は、ボリューム部分が少なくとも部分的
に前記多面体の全ての内部にあり、前記ボリューム部分
と交わる複数の平面の数が所定数よりも多い場合、前記
ボリューム部分を再分割するように構成されることを特
徴とする請求項26に記載の装置。 - 【請求項28】 前記ボリューム分割手段及び前記ボリ
ューム検査手段は、ボリューム部分が少なくとも部分的
に前記多面体の全ての内部にあり、前記ボリューム部分
と交わる複数の平面の数が所定数未満の場合、前記ボリ
ューム部分を廃棄するように構成される請求項26又は
27記載の装置。 - 【請求項29】 前記ボリューム検査手段は、ボリュー
ム部分が検査されるときに、前記ボリューム部分と交わ
る前記複数の平面を定義するデータを格納し、親ボリュ
ーム部分の再分割により生成されたより小さいボリュー
ム部分が検査されるときに、前記複数の平面のうちの前
記親ボリューム部分と交わる平面のみが検査されて前記
より小さいボリューム部分と交わるか否かが判定される
よう動作するように構成されることを特徴とする請求項
26乃至28のいずれか1項に記載の装置。 - 【請求項30】 前記ボリューム検査手段は、ボリュー
ム部分が検査されるときに、前記ボリューム部分が全体
的に内側に位置すると判定される各多面体を定義するデ
ータを格納し、親ボリューム部分の再分割により生成さ
れたより小さいボリューム部分が検査されるときに、前
記より小さいボリューム部分が前記格納されたデータ中
で定義されない前記多面体の各々の内側に位置するか否
かを判定するための検査は実行されるが、前記格納され
たデータ中で定義される前記多面体のうちのいずれかの
内側に位置するか否かを判定するための検査は実行され
ないよう動作するように構成されることを特徴とする請
求項26乃至29のいずれか1項に記載の装置。 - 【請求項31】 前記ボリューム検査手段は、多面体に
対してボリューム部分を検査し、前記多面体の複数の多
角形面のいずれかが前記ボリューム部分と交わるか否か
を判定し、 少なくとも1つの多角形面が前記ボリューム部分と交わ
る場合には、前記ボリューム部分が少なくとも部分的に
前記多面体の内部に位置することを判定し、 前記複数の多角形面のいずれも前記ボリューム部分と交
わらない場合には、前記ボリューム部分内の点から前記
3次元空間中の所定の点に対して光線を投影し、前記光
線の前記多面体との共通部分の数に従って、前記ボリュ
ーム部分が全体的に前記多面体の内側に位置するか、あ
るいは、全体的に前記多面体の外側に位置するかを判定
することによって前記ボリューム部分が全体的に前記多
面体の外側に位置するか否かを判定するように構成され
ることを特徴とする請求項24乃至30のいずれか1項
に記載の装置。 - 【請求項32】 各多面体は、前記3次元空間中の既知
の位置及び向きを有する2次元画像から前記被写体オブ
ジェクトの輪郭の前記3次元空間への投影から構成さ
れ、それにより、各多面体は、前記投影を生成する元と
なった前記画像の平面に平行な平面において前記被写体
オブジェクトの形状を表すことを特徴とする請求項22
乃至31のいずれか1項に記載の装置。 - 【請求項33】 更に、 前記被写体オブジェクトの複数の画像を定義するデータ
を処理して各画像中の前記被写体オブジェクトの前記輪
郭を複数の直線で近似する輪郭近似手段と、 前記3次元空間中の前記複数の画像の位置及び向きに従
って、前記複数の直線を前記3次元空間へと投影し、各
々が前記投影を生成する元となった前記画像の平面に平
行な平面において前記被写体オブジェクトの形状を表す
前記複数の多面体を定義する投影手段とを備えることを
特徴とする請求項32記載の装置。 - 【請求項34】 前記ボリューム検査手段は、ボリュー
ム部分を多面体に対応する前記2次元画像へと投影し、
前記画像中の前記被写体オブジェクトの前記輪郭に対し
て前記2次元の投影されたボリューム部分を検査するこ
とによって、前記多面体に対して前記ボリューム部分を
検査するように構成されることを特徴とする請求項32
又は33に記載の装置。 - 【請求項35】 各2次元画像中の前記被写体オブジェ
クトの前記輪郭は、複数の直線状のエッジから構成さ
れ、前記ボリューム部分と交わる前記複数の平面を判定
するために、前記ボリューム検査手段は、前記2次元の
投影されたボリューム部分を検査し、前記投影されたボ
リューム部分と交わる前記複数の輪郭エッジを判定する
ように構成されることを特徴とする請求項34に記載の
装置。 - 【請求項36】 各2次元画像中の前記輪郭の前記複数
の直線状のエッジは、複数の頂点で端部と端部をつなぐ
ように連結され、前記ボリューム部分と交わる前記複数
の平面を判定するために、前記ボリューム検査手段は、
前記2次元の投影されたボリューム部分を検査し、その
中に位置する前記複数の輪郭頂点と前記投影されたボリ
ューム部分と交わる前記複数の輪郭エッジとを判定する
ように構成されることを特徴とする請求項35に記載の
装置。 - 【請求項37】 前記ボリューム検査手段は、 投影されたボリューム部分を含む前記画像の部分を識別
し、 前記画像の複数の領域及び各領域内の前記複数の輪郭エ
ッジを定義する格納されたデータを読み取り、 前記投影されたボリューム部分を含む前記画像の前記識
別された部分と重複する複数の領域に位置するように前
記格納されたデータ中で定義された複数の輪郭エッジに
対してのみ前記投影されたボリューム部分を検査するこ
とによって、投影されたボリューム部分と交わる前記複
数の輪郭エッジを判定するための処理を実行するように
構成されることを特徴とする請求項35又は36に記載
の装置。 - 【請求項38】 各多面体は、前記被写体オブジェクト
の部分の輪郭の3次元形状を定義する穴を有する多面体
であることを特徴とする請求項22乃至31のいずれか
1項に記載の装置。 - 【請求項39】 被写体オブジェクトの複数の画像を定
義するデータを処理し、前記被写体オブジェクトの3D
コンピュータモデルを定義するデータを生成するための
装置であって、 各画像を処理して3次元空間中の前記画像の位置及び向
きに従ってその中の前記被写体オブジェクトの輪郭を前
記3次元空間へと投影し、前記被写体オブジェクトの視
覚的な体を定義する複数の平面から構成される多面体を
各画像から生成する手段と、 以下に示す処理でもって、少なくとも2つの多面体の所
定数の平面が交わる前記3次元空間中の前記複数の点を
計算する手段と、 前記以下に示す処理は、 前記被写体オブジェクトの表面上の全ての点が必ず位置
する前記3次元空間のボリュームを定義し、 前記ボリュームを複数のボリューム部分に分割し、前記
複数のボリューム部分のリストを定義するデータを格納
し、 前記リストからボリューム部分を選択し、前記複数の画
像から生成された前記多面体に対して検査し、そして、 前記ボリューム部分が全体的に前記多面体のうちの少な
くとも1つの外側にある場合には、前記ボリューム部分
を廃棄し、 前記ボリューム部分が少なくとも部分的に前記多面体の
全ての内部にある場合には、 前記ボリューム部分と交わる前記複数の平面が前記被写
体オブジェクトの表面上の複数の点を表す所定数より多
い3D点を生成するのに十分な数である場合、前記ボリ
ューム部分を複数のより小さいボリューム部分に再分割
し、各より小さいボリューム部分を処理すべき部分のリ
ストに加え、 前記ボリューム部分と交わる前記複数の平面が、相互に
交わって前記被写体オブジェクトの表面上の点を表す少
なくとも1つの3D点を生成するのに十分な数でない場
合、前記ボリューム部分を廃棄し、 前記ボリューム部分と交わる平面の数が、相互に交わっ
て前記被写体オブジェクトの表面上の複数の点を表す所
定数の3D点を生成するのに必要とされる数に等しい場
合、前記被写体オブジェクトの表面上の複数の点を表す
前記ボリューム部分中の複数の3D点を計算し、 前記リスト上の全てのボリューム部分が選択/検査され
るまで前記リストからボリューム部分を選択して前記ボ
リューム部分の検査を行なう前記過程を反復し、それに
より、前記多面体の前記複数の平面の共通部分により定
義され、各々が前記被写体オブジェクトの前記視覚的な
体上の点を表す前記3次元空間中の複数の点から構成さ
れる前記被写体オブジェクトの3Dコンピュータモデル
を生成する;を備えることを特徴とする装置。 - 【請求項40】 更に、前記被写体オブジェクトの表面
上の複数の点を表す前記3次元空間中の前記計算された
点を連結し、前記被写体オブジェクトの表面を表す多角
形メッシュから構成される3Dコンピュータモデルを生
成する手段を備えることを特徴とする請求項35乃至3
9のいずれか1項に記載の装置。 - 【請求項41】 プログラム可能な処理装置が請求項1
乃至21のうちの少なくとも1項に記載の方法を実行す
るよう動作可能となる命令を格納する記憶装置。 - 【請求項42】 プログラム可能な処理装置が請求項1
乃至21のうちの少なくとも1項に記載の方法を実行す
るよう動作可能となる命令を搬送する信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0114157.1 | 2001-06-11 | ||
GBGB0114157.1A GB0114157D0 (en) | 2001-06-11 | 2001-06-11 | 3D Computer modelling apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003216979A true JP2003216979A (ja) | 2003-07-31 |
JP3793115B2 JP3793115B2 (ja) | 2006-07-05 |
Family
ID=9916316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002169584A Expired - Fee Related JP3793115B2 (ja) | 2001-06-11 | 2002-06-11 | 3dコンピュータモデリング装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6867772B2 (ja) |
EP (1) | EP1267309B1 (ja) |
JP (1) | JP3793115B2 (ja) |
DE (1) | DE60219242D1 (ja) |
GB (1) | GB0114157D0 (ja) |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0126526D0 (en) * | 2001-11-05 | 2002-01-02 | Canon Europa Nv | Three-dimensional computer modelling |
GB2383245B (en) | 2001-11-05 | 2005-05-18 | Canon Europa Nv | Image processing apparatus |
GB2383915B (en) * | 2001-11-23 | 2005-09-28 | Canon Kk | Method and apparatus for generating models of individuals |
EP1347418A3 (en) | 2002-02-28 | 2005-11-23 | Canon Europa N.V. | Texture map editing |
GB2387519B (en) * | 2002-04-08 | 2005-06-22 | Canon Europa Nv | Viewing controller for three-dimensional computer graphics |
GB0208909D0 (en) * | 2002-04-18 | 2002-05-29 | Canon Europa Nv | Three-dimensional computer modelling |
GB0224449D0 (en) * | 2002-10-21 | 2002-11-27 | Canon Europa Nv | Apparatus and method for generating texture maps for use in 3D computer graphics |
GB2394873B (en) * | 2002-10-29 | 2005-12-28 | Canon Europa Nv | Apparatus and method for generating texture maps for use in 3D computer graphics |
GB2398469B (en) * | 2003-02-12 | 2005-10-26 | Canon Europa Nv | Image processing apparatus |
GB2400288B (en) * | 2003-04-02 | 2005-12-28 | Canon Europa Nv | Generating texture maps for use in 3D computer graphics |
GB2405776B (en) * | 2003-09-05 | 2008-04-02 | Canon Europa Nv | 3d computer surface model generation |
GB2406252B (en) * | 2003-09-18 | 2008-04-02 | Canon Europa Nv | Generation of texture maps for use in 3d computer graphics |
GB2407953A (en) * | 2003-11-07 | 2005-05-11 | Canon Europa Nv | Texture data editing for three-dimensional computer graphics |
GB2415344B (en) | 2004-06-14 | 2010-10-06 | Canon Europa Nv | Texture data compression and rendering in 3D computer graphics |
US7479012B1 (en) * | 2004-11-22 | 2009-01-20 | Basimah Khulusi Md, Llc | Method for producing polyhedral nets |
US7955081B2 (en) * | 2004-11-22 | 2011-06-07 | Basimah Khulusi Md, Llc | Methods and systems for producing faces of N-dimensional forms |
US7629985B2 (en) * | 2006-01-26 | 2009-12-08 | Autodesk, Inc. | Method for creation of architectural space objects for area and volume calculation |
US7639249B2 (en) * | 2006-05-05 | 2009-12-29 | Microsoft Corporation | Direct inset beveling of geometric figures |
US8224065B2 (en) * | 2007-01-09 | 2012-07-17 | Purdue Research Foundation | Reconstruction of shapes of objects from images |
US7877210B2 (en) * | 2007-01-11 | 2011-01-25 | Siemens Industry, Inc. | System and method for projecting b-rep outlines to detect collisions along a translational path |
DE102007043836B3 (de) * | 2007-09-14 | 2009-01-02 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Ausrichten eines 3D-Objekts in einem einem Gesichtsfeld einer Aufnahmevorrichtung entsprechenden Bild |
US8671350B2 (en) * | 2007-10-22 | 2014-03-11 | 3D Data Llc | System and method for creating gateway between an analytical database and a virtual world |
KR100915574B1 (ko) * | 2007-12-17 | 2009-09-07 | 한국전자통신연구원 | 충분히 매끄럽게 만들어진 메쉬의 각진 부분을 복원하는메쉬 재구성 방법 및 장치 |
TWI346309B (en) * | 2007-12-21 | 2011-08-01 | Ind Tech Res Inst | Method for reconstructing three dimension model |
WO2009129824A1 (de) * | 2008-04-24 | 2009-10-29 | Siemens Aktiengesellschaft | Verfahren und system zur erkennung von gruppierungseigenschaften |
US8731313B2 (en) * | 2009-03-23 | 2014-05-20 | Level Set Systems, Inc. | Method and apparatus for accurate compression and decompression of three-dimensional point cloud data |
KR20120089452A (ko) | 2009-08-04 | 2012-08-10 | 아이큐 비젼 테크놀로지즈 리미티드 | 물체 추출 시스템 및 방법 |
US9595108B2 (en) * | 2009-08-04 | 2017-03-14 | Eyecue Vision Technologies Ltd. | System and method for object extraction |
CN102472617B (zh) * | 2009-11-10 | 2014-07-02 | 三菱重工业株式会社 | 工件测量装置、防止碰撞装置和机床 |
US10152198B2 (en) * | 2009-12-15 | 2018-12-11 | Dassault Systèmes | Method and system for editing a product assembly |
US8665266B2 (en) * | 2010-06-23 | 2014-03-04 | The United States Of America, As Represented By The Secretary Of The Navy | Global visualization process terrain database builder |
JP5652097B2 (ja) * | 2010-10-01 | 2015-01-14 | ソニー株式会社 | 画像処理装置、プログラム及び画像処理方法 |
KR101638173B1 (ko) * | 2011-09-06 | 2016-07-12 | 한국전자통신연구원 | 캘리브레이션을 위한 자동 피처 탐지용 기구물 및 그 탐지 방법 |
US8730264B1 (en) | 2011-09-26 | 2014-05-20 | Google Inc. | Determining when image elements intersect |
US9451810B2 (en) | 2011-11-18 | 2016-09-27 | Nike, Inc. | Automated identification of shoe parts |
US10552551B2 (en) | 2011-11-18 | 2020-02-04 | Nike, Inc. | Generation of tool paths for shore assembly |
US8849620B2 (en) | 2011-11-18 | 2014-09-30 | Nike, Inc. | Automated 3-D modeling of shoe parts |
US8958901B2 (en) | 2011-11-18 | 2015-02-17 | Nike, Inc. | Automated manufacturing of shoe parts |
US8755925B2 (en) | 2011-11-18 | 2014-06-17 | Nike, Inc. | Automated identification and assembly of shoe parts |
KR20140096298A (ko) * | 2011-11-25 | 2014-08-05 | 톰슨 라이센싱 | 복제 포인트를 갖는 공간 트리에 기초한 위치 코딩 |
US20140218358A1 (en) | 2011-12-01 | 2014-08-07 | Lightcraft Technology, Llc | Automatic tracking matte system |
US8854362B1 (en) * | 2012-07-23 | 2014-10-07 | Google Inc. | Systems and methods for collecting data |
US9196084B2 (en) * | 2013-03-15 | 2015-11-24 | Urc Ventures Inc. | Determining object volume from mobile device images |
WO2014209806A1 (en) * | 2013-06-24 | 2014-12-31 | Theranova, Llc | Devices and methods for determining menstrual blood loss |
BR112017004783A2 (pt) | 2014-09-10 | 2017-12-12 | Hasbro Inc | sistema de brinquedo com digitalizador operado manualmente |
US20170124726A1 (en) * | 2015-11-02 | 2017-05-04 | Canon Kabushiki Kaisha | System and method for determining wall thickness |
US10169665B1 (en) * | 2016-02-28 | 2019-01-01 | Alarm.Com Incorporated | Virtual inductance loop |
US9495764B1 (en) | 2016-03-21 | 2016-11-15 | URC Ventures, Inc. | Verifying object measurements determined from mobile device images |
US10403037B1 (en) | 2016-03-21 | 2019-09-03 | URC Ventures, Inc. | Verifying object measurements determined from mobile device images |
US9965863B2 (en) * | 2016-08-26 | 2018-05-08 | Elekta, Inc. | System and methods for image segmentation using convolutional neural network |
US9947102B2 (en) * | 2016-08-26 | 2018-04-17 | Elekta, Inc. | Image segmentation using neural network method |
US10186049B1 (en) | 2017-03-06 | 2019-01-22 | URC Ventures, Inc. | Determining changes in object structure over time using mobile device images |
US20180357819A1 (en) * | 2017-06-13 | 2018-12-13 | Fotonation Limited | Method for generating a set of annotated images |
US11087536B2 (en) * | 2017-08-31 | 2021-08-10 | Sony Group Corporation | Methods, devices and computer program products for generation of mesh in constructed 3D images |
EP3514757A1 (en) * | 2018-01-18 | 2019-07-24 | Koninklijke Philips N.V. | Spectral matching for assessing image segmentation |
US10679367B2 (en) * | 2018-08-13 | 2020-06-09 | Hand Held Products, Inc. | Methods, systems, and apparatuses for computing dimensions of an object using angular estimates |
WO2020123469A1 (en) * | 2018-12-11 | 2020-06-18 | Futurewei Technologies, Inc. | Hierarchical tree attribute coding by median points in point cloud coding |
US11605177B2 (en) | 2019-06-11 | 2023-03-14 | Cognex Corporation | System and method for refining dimensions of a generally cuboidal 3D object imaged by 3D vision system and controls for the same |
US11335021B1 (en) | 2019-06-11 | 2022-05-17 | Cognex Corporation | System and method for refining dimensions of a generally cuboidal 3D object imaged by 3D vision system and controls for the same |
EP3809314A1 (en) * | 2019-10-15 | 2021-04-21 | Bentley Systems, Incorporated | 3d object detection from calibrated 2d images background |
US11282291B1 (en) | 2021-02-09 | 2022-03-22 | URC Ventures, Inc. | Determining object structure using fixed-location cameras with only partial view of object |
US11989899B2 (en) | 2021-02-09 | 2024-05-21 | Everypoint, Inc. | Determining object structure using physically mounted devices with only partial view of object |
US11741618B2 (en) | 2021-03-22 | 2023-08-29 | Everypoint, Inc. | Performing object modeling by combining visual data from images with motion data of the image acquisition device |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3869876B2 (ja) | 1995-12-19 | 2007-01-17 | キヤノン株式会社 | 画像計測方法及び画像計測装置 |
CN1480903A (zh) * | 1996-08-29 | 2004-03-10 | ������������ʽ���� | 特征信息赋予、物体抽取和立体模型生成方法及其装置 |
EP0898245B1 (en) | 1997-08-05 | 2004-04-14 | Canon Kabushiki Kaisha | Image processing method and apparatus |
US6563499B1 (en) | 1998-07-20 | 2003-05-13 | Geometrix, Inc. | Method and apparatus for generating a 3D region from a surrounding imagery |
CN1421020B (zh) | 1999-11-23 | 2010-04-28 | 佳能株式会社 | 图像处理设备 |
US7065242B2 (en) | 2000-03-28 | 2006-06-20 | Viewpoint Corporation | System and method of three-dimensional image capture and modeling |
US7728848B2 (en) | 2000-03-28 | 2010-06-01 | DG FastChannel, Inc. | Tools for 3D mesh and texture manipulation |
JP3364654B2 (ja) * | 2000-05-31 | 2003-01-08 | 独立行政法人産業技術総合研究所 | 仮想形態生成装置及び生成方法 |
JP4474743B2 (ja) * | 2000-07-03 | 2010-06-09 | ソニー株式会社 | 三次元画像生成装置および三次元画像生成方法、並びにプログラム記録媒体 |
US6765572B2 (en) * | 2001-04-23 | 2004-07-20 | Koninklijke Philips Electronics N.V. | Virtual modeling by voxel-clipping shadow-cast |
US6762769B2 (en) * | 2002-01-23 | 2004-07-13 | Microsoft Corporation | System and method for real-time texture synthesis using patch-based sampling |
-
2001
- 2001-06-11 GB GBGB0114157.1A patent/GB0114157D0/en not_active Ceased
-
2002
- 2002-06-10 DE DE60219242T patent/DE60219242D1/de not_active Expired - Lifetime
- 2002-06-10 EP EP02254027A patent/EP1267309B1/en not_active Expired - Lifetime
- 2002-06-10 US US10/164,435 patent/US6867772B2/en not_active Expired - Fee Related
- 2002-06-11 JP JP2002169584A patent/JP3793115B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1267309A3 (en) | 2004-01-02 |
EP1267309A2 (en) | 2002-12-18 |
JP3793115B2 (ja) | 2006-07-05 |
US6867772B2 (en) | 2005-03-15 |
DE60219242D1 (de) | 2007-05-16 |
GB0114157D0 (en) | 2001-08-01 |
EP1267309B1 (en) | 2007-04-04 |
US20020190982A1 (en) | 2002-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003216979A (ja) | 3dコンピュータモデリング装置 | |
US6952204B2 (en) | 3D computer modelling apparatus | |
US5809179A (en) | Producing a rendered image version of an original image using an image structure map representation of the image | |
US5751852A (en) | Image structure map data structure for spatially indexing an imgage | |
Attene et al. | Polygon mesh repairing: An application perspective | |
US5442733A (en) | Method and apparatus for generating realistic images using a discrete representation | |
US7079680B2 (en) | 3D computer model processing apparatus | |
Remondino | From point cloud to surface: the modeling and visualization problem | |
Fabio | From point cloud to surface: the modeling and visualization problem | |
US6483518B1 (en) | Representing a color gamut with a hierarchical distance field | |
US20040155877A1 (en) | Image processing apparatus | |
EP1193646A2 (en) | Image processing apparatus | |
JP2004157968A (ja) | 3次元コンピュータモデリング | |
US10853990B2 (en) | System and method for processing a graphic object | |
GB2405776A (en) | 3D computer surface model generation | |
US20020064305A1 (en) | Image processing apparatus | |
Chu et al. | GL4D: A GPU-based architecture for interactive 4D visualization | |
Nguyen et al. | High-definition texture reconstruction for 3D image-based modeling | |
Santos et al. | Integration of CAD Models into Game Engines. | |
US6518964B1 (en) | Apparatus, system, and method for simplifying annotations on a geometric surface | |
dos Passos et al. | Sample-based synthesis of illustrative patterns | |
Constantinou et al. | An effective approach to the use of 3D scanning technology which shortens the development time of 3D models | |
RU2749749C1 (ru) | Способ синтеза двумерного изображения сцены, просматриваемой с требуемой точки обзора, и электронное вычислительное устройство для его реализации | |
EP4428826A1 (en) | Method and device for generating a 3d representation derived from an original 3d representation | |
JPH0644346A (ja) | 距離画像処理方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051028 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060224 |
|
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: 20060320 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060406 |
|
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: 20090414 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140414 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |