(57)【特許請求の範囲】
【請求項１】
異なる位置及び向きから被写体オブジェクトの画像を記録し、記録された画像データを処理して、被写体オブジェクトの三次元コンピュータモデルを生成する方法であって、
オブジェクト支持台を使用し、所定の特徴のパターンを有するキャリブレーションオブジェクトの上方に被写体オブジェクトを支持する工程と、
前記キャリブレーションオブジェクトの上方に支持された前記被写体オブジェクトの複数の画像を異なる位置及び向きで記録する工程と、
記録された画像を処理して、画像のうち少なくともいくつかの画像の各々の記録された位置及び向きを計算する工程と、
計算された位置及び向きを使用して、少なくとも前記被写体オブジェクトの三次元コンピュータモデルを定義するデータを生成するための処理を実行する工程とを備えることを特徴とする方法。
【請求項２】
前記キャリブレーションオブジェクトの上方に支持された前記被写体オブジェクトの画像は、記録される各画像において、前記被写体オブジェクトの輪郭が前記オブジェクト支持台にかかる場所を除いて背景により取り囲まれるように、ほぼ一様な色の背景を前記被写体オブジェクトの背後に配置した状態で記録されることを特徴とする請求項１記載の方法。
【請求項３】
前記背景は背景スクリーンにより提供されることを特徴とする請求項２記載の方法。
【請求項４】
前記オブジェクト支持台の、少なくとも前記被写体オブジェクトに隣接する部分は前記背景とほぼ同じ色であり、
三次元コンピュータモデルを生成するための処理工程は、前記被写体オブジェクトの三次元コンピュータモデルと、それとは別個の、前記オブジェクト支持台の三次元コンピュータモデルとを定義するデータを生成する工程を含むことを特徴とする請求項２又は３記載の方法。
【請求項５】
前記オブジェクト支持台の、少なくとも前記被写体オブジェクトに隣接する部分はほぼ透明であり、
三次元コンピュータモデルを生成するための処理工程は、前記被写体オブジェクトの三次元コンピュータモデルと、それとは別個の、前記オブジェクト支持台の三次元コンピュータモデルとを定義するデータを生成する工程を含むことを特徴とする請求項１乃至３のいずれか１項に記載の方法。
【請求項６】
前記被写体オブジェクトは、前記キャリブレーションオブジェクト上に立っているオブジェクト支持台の少なくとも１つの面により支持され、
前記被写体オブジェクトを支持している前記オブジェクト支持台の各面は前記被写体オブジェクトの下方から、はみ出ないことを特徴とする請求項１乃至５のいずれか１項に記載の方法。
【請求項７】
前記オブジェクト支持台は複数のキャリブレーション特徴を有し、
前記画像のうち少なくともいくつかの画像の各々が記録された位置及び向きを計算するための処理工程は、画像データ中の前記オブジェクト支持台のキャリブレーション特徴を検出する工程と、検出された特徴の位置を使用して、画像が記録された位置及び向きを計算する工程とを含むことを特徴とする請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
前記オブジェクト支持台のキャリブレーション特徴の相対位置を定義するデータは事前に格納されており、そのデータを使用して画像が記録された位置及び向きが計算されることを特徴とする請求項７記載の方法。
【請求項９】
前記オブジェクト支持台は前記キャリブレーションオブジェクトに対して所定の構成で配置されており、
前記キャリブレーションオブジェクトの特徴の位置に対する前記オブジェクト支持台のキャリブレーション特徴の位置を定義するデータが事前に格納され、そのデータを使用して画像が記録された位置及び向きを計算することを特徴とする請求項７又は８に記載の方法。
【請求項１０】
前記被写体オブジェクトは反射面の上方に支持され、
前記反射面における反射に対応する画像データに従って前記被写体オブジェクトの三次元コンピュータモデルのテクスチャデータを生成するための処理が実行されることを特徴とする請求項１乃至９のいずれか１項に記載の方法。
【請求項１１】
前記キャリブレーションオブジェクトは三次元であることを特徴とする請求項１乃至１０のいずれか１項に記載の方法。
【請求項１２】
前記オブジェクト支持台及び前記キャリブレーションオブジェクトは一体に形成され、前記被写体オブジェクトはそれにより前記キャリブレーションオブジェクトの所定の特徴のパターンの上方に支持されていることを特徴とする請求項１乃至１１のいずれか１項に記載の方法。
【請求項１３】
所定の特徴のパターンを有するキャリブレーションオブジェクトの上方にオブジェクト支持台により支持された被写体オブジェクトの異なる位置及び向きで記録された複数の画像を定義する画像データを処理する方法であって、
画像データを処理して、画像のうち少なくともいくつかの画像が記録された位置及び向きを計算する工程と、
計算された位置及び向きを使用して、前記オブジェクト支持台を含まない前記被写体オブジェクトの三次元コンピュータモデルを定義するデータを生成するための処理を実行する工程とを備えることを特徴とする方法。
【請求項１４】
異なる位置及び向きから被写体オブジェクトの画像を記録し、記録された画像データを処理して、前記被写体オブジェクトの三次元コンピュータモデルを生成するシステムであって、
所定の特徴のパターンを有するキャリブレーションオブジェクトと、
前記被写体オブジェクトを前記キャリブレーションオブジェクトより高い位置に支持するオブジェクト支持台と、
前記キャリブレーションオブジェクトより高い位置に支持された前記被写体オブジェクトの複数の画像を異なる位置及び向きで記録するイメージャと、
画像データ処理装置とを具備し、前記画像データ処理装置は、
記録された画像データを処理して、画像のうち少なくともいくつかの画像の各々が記録された位置及び向きを計算する手段と、
計算された位置及び向きを使用して、少なくとも前記被写体オブジェクトの三次元コンピュータモデルを定義するデータを生成するための処理を実行する手段とを備えることを特徴とするシステム。
【請求項１５】
オブジェクト支持台により、所定の特徴パターンを有するキャリブレーションオブジェクトより高い位置に支持される被写体オブジェクトの異なる位置及び向きで記録された複数の画像を定義する画像データを処理する装置であって、
画像データを処理して、画像のうち少なくともいくつかの画像が記録された位置及び向きを計算する手段と、
計算された位置及び向きを使用して、前記オブジェクト支持台を含まない前記被写体オブジェクトの三次元コンピュータモデルを定義するデータを生成する手段とを備えることをことを特徴とする装置。
【発明の詳細な説明】
【０００１】
本発明は、オブジェクトの画像の記録及び画像が記録された位置及び向きを判定し且つオブジェクトの三次元（３Ｄ）コンピュータモデルを生成するための画像データのコンピュータ処理に関する。更に特定すれば、本発明は、オブジェクトと共に撮影するためのパターンを規定されたキャリブレーションオブジェクトの使用と、画像におけるキャリブレーションオブジェクトのパターンに基づいて撮影位置及び向きを判定し且つ計算された位置及び向きを使用してオブジェクトの３Ｄコンピュータモデルを定義するデータを生成するための画像データのコンピュータ処理とに関する。
【０００２】
オブジェクトの３Ｄコンピュータモデルは多くの用途で有益である。すなわち、３Ｄンピュータモデルはコンピュータゲームや、コンピュータ利用設計（CAD）の用途に頻繁に使用されている。更に、現在では、インターネットサイトなどの装飾のような用途でオブジェクト３Ｄコンピュータモデルの需要が増している。
【０００３】
オブジェクトの３Ｄコンピュータモデルを生成する多くの方法が知られている。すなわち、モデルを生成すべき被写体オブジェクトを既知の特徴のパターンを有する平坦な二次元キャリブレーションオブジェクトの上に乗せ、その被写体オブジェクトの画像をキャリブレーションオブジェクトと共に異なる位置及び向きで記録するという方法が知られている。その後、記録された各画像を処理して、画像中のキャリブレーションオブジェクトのパターンにおける特徴の位置に基づいて、その画像が記録された位置と向きを計算する。次に、入力画像と、計算された位置及び向きとを使用して被写体オブジェクトの３Ｄコンピュータモデルを生成する。
【０００４】
この方法の例は、例えば、Niemの「Automatic Reconstruction of 3D Objects Using A Mobile Camera」（Image and Vision Computing 17（１９９９年）、１２５〜１３４ページ）、Gortler他の「The Lumigraph」（Computer Graphics Proceedings, Annual Conference Series、１９９６年、ACM-0-89791-764-4/96/008、ＪＰ−Ａ−９−１７０９１４及び出願人の同時係属特許出願ＰＣＴ／ＧＢ００／０４４６９（ＷＯ−Ａ−０１／３９１２４）（これらの内容は全て参考として本明細書に取り入れられている）などに記載されている。
【０００５】
しかし、本発明の発明者は、この公知の方法にはいくつかの問題点があることを発見した。すなわち、本発明の発明者はこの方法を使用して生成される３Ｄコンピュータモデルが不正確になる虞れがあることを発見した。
【０００６】
従って、本発明の目的はこの問題に対処することにある。
【０００７】
本発明の発明者は、３Ｄコンピュータモデルの不正確さは以下に述べるいくつかの要因によって起こることを認識した。
【０００８】
すなわち、キャリブレーションオブジェクトに、被写体オブジェクトの底部とつながっているように見える影がさすことが多い。従って、記録された画像において、処理装置が被写体オブジェクトと影を区別できないことがあり、そのような場合、影は被写体オブジェクトの一部であると判定されてしまう。様々に異なる位置及び向きで画像を記録するために被写体オブジェクトとキャリブレーションオブジェクトをカメラに対して移動させた場合、影も動くため、この問題は一層深刻になる。これに対し、カメラ自体を動かした場合には、カメラが投じた影が動くことになる。
【０００９】
同様に、キャリブレーションオブジェクトのパターンの特徴も二次元記録画像中で被写体オブジェクトに及んでしまう場合が多く、そのため、処理装置はそれを被写体オブジェクトの一部であると判定する。
【００１０】
同様に、被写体オブジェクト及びキャリブレーションオブジェクトが撮影時に載置される面にある特徴（床面又はテーブル上のマークなど）も、記録画像の中で被写体オブジェクトの輪郭にかかることが多く、そのため、処理装置はこれを被写体オブジェクトの一部であると判定してしまう。
【００１１】
更に、（処理装置による入力画像中の特徴パターンの検出を助けるために）キャリブレーションオブジェクト上の特徴のパターンを強調する（引き立たせる）ようにキャリブレーションオブジェクトの色を選択することが望ましい場合が多い。しかし、キャリブレーションオブジェクトの色が被写体オブジェクトに反射することが多く、そのため、生成される３Ｄコンピュータモデルの面の色は不正確なものになる。
【００１２】
更に、仰角が小さい場合に被写体オブジェクトの画像を記録するのは困難である。これは、仰角が小さい場合、被写体オブジェクトが乗っているキャリブレーションオブジェクトの特徴のパターンが画像の中で、処理装置による入力画像中の特徴の確実な検出が不可能になるほどに歪んでしまうためである。小さな仰角から画像を記録できないことによって、被写体オブジェクトの詳細な部分を示す入力画像を利用できず、その結果、それらの部分は３Ｄコンピュータモデルにおいて不正確に再現される。
【００１３】
従って、本発明の目的は上記の問題点の１つ又はいくつかに対処することである。
【００１４】
解決方法に関して、発明者は、被写体オブジェクト及びキャリブレーションオブジェクトに関して対称である拡散照明の使用により影の問題に対処できることを認めた。しかし、これを実際に実現することは非常に困難であり且つ／又はそのために高い費用を要する。
【００１５】
従って、本発明の目的はそれとは別の解決方法を提供することである。
【００１６】
本発明によれば、三次元コンピュータモデルを生成するために被写体オブジェクトの画像を記録し且つ処理する方法であって、被写体オブジェクトをオブジェクト支持台によりキャリブレーションオブジェクトに対して固定された構成で保持する一方で、異なるカメラ位置及び向きで画像を記録し、その画像データを処理して、画像中に見えるキャリブレーションオブジェクトからの特徴に基づき、撮影位置及び向きを判定し、計算された位置及び向きを使用して、被写体オブジェクト単独又は被写体オブジェクトとオブジェクト支持台双方の三次元コンピュータモデルを生成する方法が提供される。
【００１７】
また、本発明は処理装置及びコンピュータプログラムを含めて、上記の方法を実施するための装置構成要素、及びそれに関連する方法も提供する。
【００１８】
被写体オブジェクトを直接にキャリブレーションオブジェクトの上に配置するのではなく、被写体オブジェクトを（例えば、オブジェクトスタンドに乗せて）キャリブレーションオブジェクトの面から離して撮影することにより、ユーザはより大きな融通性をもってキャリブレーションオブジェクト上のパターン、キャリブレーションオブジェクトの色及び撮影位置と向きを選択できるようになる。これは、被写体オブジェクトをキャリブレーションオブジェクトから離間させることによって、キャリブレーションオブジェクトのパターンの特徴が入力画像中で被写体オブジェクトにまでかかって現れるという問題、キャリブレーションオブジェクトの色が被写体オブジェクトに反射してしまうという問題、及び小さな仰角から入力画像を記録する問題の全てが解決されるためである。
【００１９】
被写体オブジェクトが乗せられるオブジェクト支持台の上面の形状及び大きさは、被写体オブジェクトをオブジェクト支持台の上に乗せたときに被写体オブジェクトの底面の下から水平の面が大きく突出することのないように定められるのが好ましい。このようにすると、入力画像中に被写体オブジェクトの一部として影が現れるという問題も解決されるため、ユーザはより大きな融通性をもって照明条件を設定できるようになる。
【００２０】
被写体オブジェクトはその背後にスクリーンを配置した状態で撮影されるのが好ましい。このようにすると、面上のマークが入力画像中に被写体の一部として現れるという問題が解決されるため、ユーザはより大きな融通性をもって撮影時にキャリブレーションオブジェクト、オブジェクト支持台及び被写体オブジェクトを配置する面を選択できるようになる。
【００２１】
次に、添付の図面を参照して、単なる一例としての本発明の実施形態を説明する。
【００２２】
［第１の実施形態］
図１を参照すると、本発明の一実施形態は、従来の通りに１つ以上のプロセッサ、複数のメモリ、グラフィックスカードなどを含むパーソナルコンピュータのような処理装置２と、従来通りのパーソナルコンピュータモニタのような表示装置４と、キーボード、マウスなどのユーザ入力装置６と、プリンタ８と、ＷＡＣＯＭ製造のＰＬ４００などの、制御可能画素を有するフラットパネルで構成される表示パネル１０とを具備する。
【００２３】
処理装置２は、例えば、ディスク１２などのデータ記憶媒体に格納されたデータとして、及び／又は、遠隔データベース等からインターネットなどの通信ネットワーク（図示せず）を介する送信、あるいは大気中を通過する送信により処理装置２に入力され、及び／又は、キーボードなどのユーザ入力装置６を介してユーザにより入力される信号１４として入力されるプログラミング命令に従って動作するようにプログラムされている。
【００２４】
以下に更に詳細に説明するが、それらのプログラミング命令は、入力画像が記録された位置及び向きを計算するために、異なる位置と向きで記録された１つ以上の被写体オブジェクトの複数の画像を定義する入力データを処理し、且つ、計算された位置及び向きを使用して、被写体オブジェクトの三次元コンピュータモデルを定義するデータを生成するように処理装置２を構成させるための命令である。本実施形態では、被写体オブジェクトはオブジェクト支持台の上に配置され、被写体オブジェクトとオブジェクト支持台は既知の特徴パターンを有するキャリブレーションオブジェクト（本実施形態においては二次元写真マット）の上で撮影される。入力画像が記録されたときの位置と向きは、画像中のキャリブレーションオブジェクトの特徴の位置を検出することにより計算される。以下に更に詳細に説明するが、被写体オブジェクトを撮影するためにオブジェクト支持台を使用することにより、被写体オブジェクトの正確な三次元コンピュータモデルを一貫性をもって得ることができる。
【００２５】
処理装置２は、プログラミング命令によりプログラミングされたとき、処理動作を実行するためのいくつかの機能ユニットとして構成されたと考えることができる。そのような機能ユニットの例及びそれらの相互接続関係を図１に示す。しかし、図１に示すユニット及び相互接続は概念上のものであり、理解を助けるという目的のために一例として示されているにすぎない。従って、それらは、処理装置２のプロセッサ、メモリなどが構成されるユニットや接続を必ずしも表してはいない。
【００２６】
図１に示す機能ユニットを説明すると、中央制御装置２０はユーザ入力装置６からの入力を処理すると共に、その他の機能ユニットの制御及び処理を実行する。メモリ２４は、中央制御装置２０及びその他の機能ユニットにより使用されるべく設けられている。
【００２７】
マット発生器３０は、紙などの記録媒体上に写真マット３４をプリントするため、又は表示パネル１０に写真マットを表示するためにプリンタ８又は表示パネル１０を制御する制御信号を発生する。以下に更に詳細に説明するが、写真マットは所定の特徴パターンを有し、三次元コンピュータモデルを生成すべき被写体オブジェクトはオブジェクト支持台上の、プリント済み写真マット３４又は写真マットが表示されている表示パネル１０の上に配置される。その後、被写体オブジェクト、オブジェクト支持台及び写真マットの画像を記録して、処理装置２に入力する。
【００２８】
プリンタ８が写真マットをプリントする記録媒体の色は、記録媒体と写真マットのパターンの特徴とのコントラストを最大にするように選択される（これにより、処理装置２により特徴が入力画像に正しく位置決めされる確率が向上する）。本実施形態では、被写体オブジェクトをオブジェクト支持台上に配置し、それにより、被写体オブジェクトを写真マットから離して高い位置に上げることにより、プリントされた写真マットから被写体オブジェクトへ反射される光の影響を最小限に抑えるため、後に生成される３Ｄコンピュータモデルに悪影響を及ぼすことなく、色を自由に選択できる。実際には、記録媒体の色として明るい、不飽和色を選択すると、良い結果が得られることが確かめられた。
【００２９】
マット発生器３０は、処理装置２が入力画像記録時の位置及び向きを計算する際に使用するための、写真マット上にプリント又は表示された特徴のパターンを定義するデータを格納している。すなわち、マット発生器３０は、特徴パターンを定義するデータと共に、特徴パターンに対する座標系（実際には写真マットの基準位置及び基準向きを定義する）を格納しており、処理装置２は入力画像が記録されたときの位置及び向きを定義済み座標系において（従って、基準位置及び基準向きに対して）計算する。
【００３０】
本実施形態では、写真マットのパターンは、例えば、同時係属ＰＣＴ特許出願ＰＣＴ／ＧＢ００／０４４６９（ＷＯ−Ａ−０１／３９１２４）（これらの内容は全て参考として本明細書に取り入れられている）に記載されているような特徴の空間クラスタ、あるいは、例えば、ＪＰ−Ａ−９−１７０９１４に記載されているような、各々の対応するドットが一意のものであるように各ドットが異なる色相／輝度の組み合わせを有する着色ドットの既知のパターン、例えば、Niemの「Automatic Reconstruction of 3D Objects Using A Mobile Camera」（Image and Vision Computing 17（１９９９年）、１２５〜１３４ページに掲載）に記載されているような、各象限で複数の同心円を寸法がわかっている半径方向線分及び位置マーカで結ぶことにより形成されるパターン、又はGortler他の「The Lumigraph」（Computer Graphics Proceedings, Annual Conference Series、１９９６年、ACM-0-89791-764-4/96/008に記載されているような、それぞれ異なる直径を有する複数の同心リングからキャリブレーションされるパターンなどを含む。
【００３１】
本実施形態の以下の説明においては、プリント写真マット３４を生成するために、パターンはプリンタ８により記録媒体（本実施形態では、シート紙）にプリントされるものと想定するが、先に述べた通り、表示パネル１０にパターンを表示することも可能であろう。
【００３２】
入力データ記憶装置４０は、例えば、ディスク４２などの記憶装置に格納されるデータとして、又は処理装置２へ送信される信号４４として、又はユーザ入力装置６を使用して処理装置２に入力される入力データを格納する。入力データは１つ以上の被写体オブジェクトと、オブジェクト支持台が写真マット上に配置された状況を示す、異なる位置及び向きで記録された複数の画像を定義している。本実施形態では、入力データは、写真マットの背景色又は写真マットの背景色と同じ色を有する異なるオブジェクトを示すための写真マットの一部と共に、被写体オブジェクト及びオブジェクト支持台が撮影された背景を示す入力画像を更に定義している。加えて、本実施形態では、入力データは、画像を記録したカメラ固有のパラメータ、すなわち、アスペクト比、焦点距離、主点（光軸が撮影平面と交わる点）、一次半径方向歪み係数及びスキュー角（画素格子の軸が厳密には直交していないことがありえるため、それらの軸が成す角度）を定義するデータも含む。
【００３３】
入力画像を定義する入力データは、例えば、画像を記録したデジタルカメラから画素データをダウンロードするか、又はスキャナ（図示せず）を使用して写真を走査することにより生成されても良い。固有カメラパラメータはユーザの側からユーザ入力装置６を使用して入力されても良い。
【００３４】
カメラ計算器５０は各入力画像を処理して、画像の中における写真マット上の特徴の位置を検出すると共に、入力画像が記録されたときのカメラの位置と向きを計算する。
【００３５】
画像データセグメンタ６０は各入力画像を処理して、被写体オブジェクト及びオブジェクト支持台に対応する画像データを画像中のその他の画像データから分離する。
【００３６】
サーフェスモデラ７０は画像データセグメンタ６０により生成された分割画像データと、カメラ計算器５０により生成された、画像が記録されたときの位置及び向きを定義するデータとを処理して、入力画像における被写体オブジェクト及びオブジェクト支持台の実際の面を表現する３Ｄコンピュータモデルを定義するデータを生成する。
【００３７】
サーフェステクスチャラ８０は、サーフェスモデラ７０により生成されたサーフェスモデルにレンダリングするために、入力画像データからテクスチャデータを生成する。
【００３８】
オブジェクト／支持台セパレータ９０は、オブジェクト支持台に対応するモデルの部分を削除して、被写体オブジェクト単独の三次元コンピュータモデルを残すように、サーフェスモデラ７０により生成された被写体オブジェクト及びオブジェクト支持台の三次元コンピュータモデルを修正するための処理を実行する。
【００３９】
ディスプレイプロセッサ１１０は、中央制御装置２０の制御の下で、表示装置４を介してユーザに対し命令を表示する。更に、中央制御装置２０の制御の下に、ディスプレイプロセッサ１１０は、サーフェスモデラ７０及び／又はオブジェクト／支持台セパレータ９０により生成されたサーフェスモデルデータを処理し且つサーフェステクスチャラ８０により生成されたテクスチャデータをサーフェスモデル上にレンダリングすることにより、ユーザが選択した視点からの３Ｄコンピュータモデルの画像を表示する。
【００４０】
出力データ記憶装置１２０は、入力データごとにカメラ計算器５０により計算されたカメラの位置及び向きと、画像データセグメンタ６０により生成された各入力画像からの、被写体オブジェクト及びオブジェクト支持台に関連する画像データと、サーフェスモデラ７０、オブジェクト／支持台セパレータ９０及びサーフェステクスチャラ８０により生成されたサーフェスモデル及びそのテクスチャデータとを格納する。中央制御装置２０は出力データ記憶装置１２０からのデータの出力を、例えば、ディスク１２２などの記憶装置へのデータ及び／又は信号１２４として制御する。
【００４１】
図２を参照して説明する。本実施形態では、写真マット３４に穴１３０を残すように切り抜かれた中央ブランク領域の周囲に、写真マット３４の特徴パターンがプリンタ８によりプリントされる。
【００４２】
穴１３０を有する写真マット３４は、この後、例えば、のり付けによりミラー１４０に接着される。以下に更に詳細に説明するが、穴１３０とミラー１４０により、被写体オブジェクトの底面の反射を入力画像の中で見ることができるので、三次元コンピュータモデルにおける被写体オブジェクトの底面のテクスチャデータを生成できるのである。
【００４３】
図３を参照すると、プリント写真マット３４が接着されたミラー１４０が平坦な面２００に配置されており、３Ｄコンピュータモデルを生成すべき被写体オブジェクト２１０は、オブジェクト支持台２２０が穴１３０に位置決めされ且つマット上のパターンを構成している特徴により包囲されるように、写真マット３４上のオブジェクト支持台２２０の上に配置されている。
【００４４】
オブジェクト支持台２２０を使用して被写体オブジェクト２１０を写真マット３４から離れるように持ち上げることにより、写真マット３４上の影はオブジェクト支持台２２０には接触するが、被写体オブジェクト２１０に接触することはない。同様に、写真マットのパターンの特徴は、記録された画像中で、オブジェクト支持台２２０にのみ接触するように現れ、被写体オブジェクト２１０には現れない。従って、処理装置２により生成される３Ｄコンピュータモデルにおいて、オブジェクト支持台２２０のモデルに誤りは起こるかもしれないが、被写体オブジェクト２１０は正確にモデル化される。しかし、オブジェクト支持台２２０の誤りは重要ではなく、本実施形態では、オブジェクト／支持台セパレータ９０がオブジェクト支持台２２０の３Ｄコンピュータモデルを除去してしまい、被写体オブジェクト２１０の３Ｄコンピュータモデルのみが残る。
【００４５】
更に、以下に説明するように、被写体オブジェクト２１０を写真マット３４の上方へ持ち上げることにより、仰角の低い画像でも、写真マット３４上の特徴のパターンがそれほど歪まず、処理装置２が入力画像中の特徴を識別し、撮影位置及び撮影の向きを計算するための処理を実行できる程度には記録することができる。従って、被写体オブジェクト２１０の必要な詳細を示す画像を記録し、処理することが可能であるため、被写体オブジェクト２１０の３Ｄコンピュータモデルの正確さは一層向上する。
【００４６】
本実施形態では、オブジェクト支持台２２０は、ガラスなどの透明材料から成る水平な板２２２を４本の円筒形の不透明な脚部２２４により支える構造を有する。従って、水平板２２２は透明であるので、ミラー１４０の反射として被写体オブジェクト２１０の底面が見える。
【００４７】
被写体オブジェクト２１０及びオブジェクト支持台２２０の背後には、ほぼ一様な色の背景スクリーン２２８が配置されている。このようにすれば、被写体オブジェクト２１０（又はオブジェクト支持台２２０）の一部が記録画像の中で面２００を背景にして現れることはなく、被写体オブジェクト２１０のみが背景スクリーンを背にして現れることになる。これにより、どのような入力画像においても、面２００上のマーク又は面２００の不均一な色の領域などが被写体オブジェクト２１０の輪郭線に触れることがなくなるため、ユーザは写真マット３４を配置する面２００を自由に選択できる。従って、以下に更に詳細に説明するように、背景スクリーン２２８の使用は、被写体オブジェクト２１０及びオブジェクト支持台２２０に関連する画像データを画像データセグメンタ６０によるセグメンテーション処理の間に他の画像データから分離する処理を助けるという効果を有する。
【００４８】
被写体オブジェクト２１０の様々に異なる部分を示すため、被写体オブジェクト２１０、オブジェクト支持台２２０及び写真マット３４の画像はデジタルカメラ２３０を使用して様々に異なる位置と向きで記録される。本実施形態では、カメラ２３０により記録される画像を定義するデータはワイヤ２３２を介して信号４４として処理装置２に入力される。
【００４９】
すなわち、本実施形態では、カメラ２３０と背景スクリーン２２８の位置は固定されたままであり、被写体オブジェクト２１０及びオブジェクト支持台２２０を乗せた写真マット３４が面２００上で移動（並進）及び（例えば、矢印２４０の方向に）回転され、カメラ２３０に対して様々に異なる位置と向きで被写体オブジェクト２１０の写真が記録されるのである。面２００上での写真マット３４の回転及び並進中、被写体オブジェクト２１０とオブジェクト支持台２２０はマット３４に対して動かない。
【００５０】
図４ａから図４ｅは、本実施形態において、カメラ２３０の場所と視角をどのように選択するか及びオブジェクト支持台２２０の高さをどのように設定するかを示している。
【００５１】
図４ａにおいて、カメラ２３０を位置（ｉ）、すなわち、被写体オブジェクト２１０を見下ろす仰角の大きい位置に配置した場合、図４ｂに示すように、カメラ２３０により記録される各画像中、被写体オブジェクト２１０の最上部の輪郭は背景スクリーン２２８を背にして現れるが、被写体オブジェクト２１０の下の部分の輪郭は、写真マット３４及び／又はオブジェクト支持台２２０の水平板２２２を背景にして現れる。この場合、水平板２２２及び写真マット３４の影が被写体オブジェクト２１０の一部として現れ、その結果、画像データセグメンタ６０により被写体オブジェクト２１０から分離できないこともありうるので望ましくない。同様に、写真マット３４のパターンの１つ以上の特徴が入力画像中の被写体オブジェクト２１０にまで及び（そのために、被写体オブジェクト２１０の一部となって現われ）、その結果、画像セグメンタ６０により被写体オブジェクト２１０から分離されないことも起こりうる。
【００５２】
そこで、より望ましい撮影場所と視角方向は図４ａに（ii）で指示した位置であり、この位置においては、カメラ２３０の光軸はオブジェクト支持台２２０の水平板２２２とほぼ一線に並んでいる。しかし、写真マット３４上の水平板２２２の高さが（図４ａに示す例の場合のように）余りにも低すぎると、図４cに示すように、カメラ２３０により記録される各入力画像において、写真マット３４上のパターンの特徴を互いに識別できないほどに写真マット３４がひずんで現れる。
【００５３】
そのため、図４ｄに示すように、カメラの光軸がオブジェクト支持台２２０の水平板２２２とほぼ一線に並ぶようにカメラ２３０の位置及び視角方向を選択すると共に、写真マット３４上の特徴のパターンが入力画像中でひずまないようにオブジェクト支持台２２０の高さを選択する。このようにすれば、図４ｄに示す構成を使用して記録された入力画像の例を示す図４ｅからわかるように、被写体オブジェクト２１０は背景スクリーン２２８に囲まれ（従って、画像データセグメンタ６０は被写体オブジェクト２１０に関連する画像データをより正確に分割できる）、また、写真マット３４上のパターンの特徴を互いに識別することができる（従って、カメラ計算器５０は入力画像中の各特徴の位置を検出し、それにより、入力画像が記録されたときの位置と向きを判定することが可能である）。尚、（図４ｅに示す例の場合のように）背景スクリーン２２８は入力画像の縁まで伸びている必要はなく、被写体オブジェクト２１０が背景スクリーンにより囲まれるように、被写体オブジェクト２１０の上下左右に広がっているだけで良い。
【００５４】
要するに、被写体オブジェクト２１０を写真マット３４の上方へ持ち上げる（本実施形態では、これはオブジェクト支持台２２０を使用することにより実現される）ことにより、写真マット３４の影及び写真マット３４上のパターンの特徴が被写体オブジェクト２１０の輪郭まで及ばないような入力画像を記録できる。更に、被写体オブジェクト２１０へ反射される色がはるかに少なくなるため、写真マット３４上のパターンの特徴を強調するように写真マット３４の色を自由に選択できる。また、仰角が低くても被写体オブジェクト２１０の画像を記録できるため、３Ｄコンピュータモデルで被写体オブジェクト２１０のあらゆる部分を正確にモデル化するために適切な画像を利用できる。
【００５５】
加えて、被写体オブジェクト２１０の背後に背景スクリーン２２８を配置することにより、面２００の一部が被写体オブジェクト２１０にかかって現れることがない入力画像を記録できるため、面２００の選択を自由に行うことができる。
【００５６】
図５は、カメラ２３０に対する様々に異なる位置及び向きにおける被写体オブジェクト２１０、オブジェクト支持台２２０及び写真マット３４の入力画像３００、３０２、３０４及び３０６の例を示している。
【００５７】
本実施形態では、被写体オブジェクト２１０、オブジェクト支持台２２０及び写真マット３４の画像の記録と入力に続いて、別の画像を記録し、処理装置２に入力する。この別の画像は、面２００と、背景スクリーン２２８と、写真マット３４がプリントされている紙と同じ色を有するオブジェクトの画像である「背景画像」である。そのような背景画像は、写真マット３４が記録されている紙と同じ色を有する何もプリントされていない紙のシートを面２００上の、背景スクリーン２２８の前方に配置するか、又は画像に写真マット３４のパターンが見えないように、写真マット３４を裏返して面２００上に配置することにより記録されれば良い。
【００５８】
図６は、本実施形態において入力データを処理するために処理装置２により実行される処理動作を示す。
【００５９】
図６のステップＳ６−２では、中央制御装置２０はディスプレイプロセッサ１１０にユーザが処理すべき入力データを入力することを要求するメッセージを表示装置４に表示させる。
【００６０】
ステップＳ６−４では、ステップＳ６−２で要求に応答してユーザにより入力されたデータを入力データ記憶装置４０に格納する。すなわち、本実施形態では、入力データは、カメラ２３０に対して様々に異なる位置及び向きで記録された被写体オブジェクト２１０、オブジェクト支持台２２０及び写真マット３４の画像を定義する画像データと、入力画像を記録するために写真マット３４が配置された面２００と、背景スクリーン２２８及び写真マット３４のパターンがプリントされている記録材料と同じ色を有するオブジェクトとを共に示す「背景画像」と、入力画像を記録したカメラ２３０の固有パラメータ、すなわち、縦横比、焦点距離、主点（光軸が撮影平面と交わる点）、一次半径方向歪み係数及びスキュー角（画素格子の軸が成す角度）を定義するデータとから構成されている。
【００６１】
ステップＳ６−６で、カメラ計算器５０はステップＳ６−４で格納された入力データを処理して、入力画像ごとに写真マット３４に対する（従って、被写体オブジェクト２１０及びオブジェクト支持台２２０に対する）カメラ２３０の位置と向きを判定する。この処理は、入力画像ごとに、写真マット３４のパターンを構成している画像中の特徴を検出し、それらの特徴を格納されている写真マットのパターンと比較して、マットに対するカメラ２３０の位置と向きを判定することから成る。ステップＳ６−６でカメラ計算器５０により実行される処理は、写真マット３４上で使用されている特徴のパターンによって決まる。適切な処理は、例えば、同時係属ＰＣＴ出願ＰＣＴ／ＧＢ００／００４４６９（ＷＯ−Ａ−０１／３９１２４）、ＪＰ−Ａ−９−１７０９１４、Niemの「Automatic Reconstruction of 3D Objects Using A Mobile Camera」（Image and Vision Computing 17（１９９９年）、１２５〜１３４ページ及びGortler他の「The Lumigraph」（Computer Graphics Proceedings, Annual Conference Series、１９９６年、ACM-0-89791-764-4/96/008））に説明されている。
【００６２】
ステップＳ６−８では、画像データセグメンタ６０は各入力画像を処理し、被写体オブジェクト２１０及びオブジェクト支持台２２０を表現する画像データを写真マット３４、写真マット３４が配置されている面２００及び背景スクリーン２２８を表現する画像データから分離する（ステップＳ６−８は、本実施形態では、以下に更に詳細に説明するように、後に被写体オブジェクト２１０及びオブジェクト支持台２２０の面の３Ｄコンピュータモデルを生成するときに使用するためのデータを生成する予備ステップである）。
【００６３】
図７は、ステップＳ６−８で画像データセグメンタ６０により実行される処理動作を示す。
【００６４】
図７を参照すると、ステップＳ７−２からＳ７−１０で、画像データセグメンタ６０は、写真マット３４、面２００及び背景スクリーン２２８を表現するが、被写体オブジェクト２１０及びオブジェクト支持台２２０を表現しない入力画像中の色を表す量子化値のハッシュテーブルを作成する。
【００６５】
すなわち、ステップＳ７−２で、画像データセグメンタ６０は図６のステップＳ６−４で格納された「背景画像」（すなわち、面２００と、背景スクリーン２２８と、写真マット３４がプリントされている材料と同じ色を有するオブジェクトとを示す、処理装置２に入力されるべき最終画像）における次の画素のRBGデータ値を読み取る。
【００６６】
ステップＳ７−４で、画像データセグメンタ６０は下記の等式に従って画素の量子化赤色（R）値、量子化緑色（G）値及び量子化青色（B）値を計算する。
【００６７】
【数１】
0004497772.tif 000002
式中、「q」は量子化値、
「p」はステップＳ７−２で読み取られたR、G又はBの値、
「t」は被写体オブジェクト２１０を示す入力画像からのRGB値が背景とラベル付けされるべき背景色にどれほど近くなければならないかを判定する閾値である。本実施形態では、「t」は４に設定されている。
【００６８】
ステップＳ７−６で、画像データセグメンタ６０はステップＳ７−４で計算された量子化R値、G値及びB値を従来と同様に組み合わせて、「三重値（Triple value）」を生成する。
【００６９】
ステップＳ７−８では、画像データセグメンタ６０はステップＳ７−４で計算された量子化R値、G値及びB値にハッシング関数を適用して、ハッシュテーブルのビン（bin）を定義し、且つステップＳ７−６で定義された「三重」値を定義されたビンに追加する。すなわち、本実施形態では、画像データセグメンタ６０は下記のハッシング関数を量子化R値、G値及びB値に適用し、ハッシュテーブルのビンを定義する。
【００７０】
【数２】
0004497772.tif 000003
【００７１】
すなわち、ハッシュテーブルのビンは、各色の３つの最下位ビットにより定義される。この関数は、各ビンが少数の「三重」値のみを有するように、データを試行し、ハッシュテーブルの利用可能なビンに分散させるように選択されている。本実施形態では、ステップＳ７−８で、「三重」値がビンに既に存在していない場合に限って「三重」値をそのビンに追加するので、各「三重」値はハッシュテーブルに一度しか追加されない。
【００７２】
ステップＳ７−１０では、画像データセグメンタ６０は、背景画像中に別の画素が存在するか否かを判定する。以上説明したように「背景」画像の各画素を処理し終わるまで、ステップＳ７−２からＳ７−１０を繰り返す。この処理の結果、「背景」画像中の色を表現する値を含むハッシュテーブルが生成される。
【００７３】
ステップＳ７−１２からＳ７−４８では、画像データセグメンタ６０は各入力画素を順に考慮し、ハッシュテーブルを使用して、写真マット３４、背景スクリーン２２８及び面２００に関連する入力画像中のデータを、被写体オブジェクト２１０及びオブジェクト支持台２２０に関連する入力画像中のデータから分離する。
【００７４】
本実施形態では、ハッシュテーブルを生成するためにステップＳ７−２からＳ７−１０で処理される「背景」画像は、写真マット３４上の特徴を示していない。従って、ステップＳ７−１２からＳ７−４６で実行される分割は被写体オブジェクト２１０及びオブジェクト支持台２２０に関連する画素データと、写真マット３４上の特徴に関連する画素データとを区別しない。その代わりに、本実施形態では、以下に更に詳細に説明するように、被写体オブジェクト２１０及びオブジェクト支持台２２０の面の３Ｄコンピュータモデルを生成するためにサーフェスモデラ７０により実行される処理は、写真マット３４上の特徴に関連する画素がサーフェスモデルに寄与することのないように実行される。
【００７５】
ステップＳ７−１２では、画像データセグメンタ６０は次の入力画像を考慮し、ステップＳ７−１４では、入力画像中の次の画素（ステップＳ７−１４が初めて実行される場合、これは最初の画素である）のR値、G値及びB値を読み取る。
【００７６】
ステップＳ７−１６では、画像データセグメンタ６０は先の等式（１）を使用して、画素の量子化R値、量子化G値及び量子化B値を計算する。
【００７７】
ステップＳ７−１８では、画像データセグメンタ６０はステップＳ７−１６で計算された量子化R値、G値及びB値を組み合わせて、「三重値」を生成する。
【００７８】
ステップＳ７−２０では、画像データセグメンタ６０は先の等式（２）に従ってハッシング関数をステップＳ７−１６で計算された量子化値に適用して、ステップＳ７−２からS７−１０で生成されたハッシュテーブルのビンを定義する。
【００７９】
ステップＳ７−２２では、画像データセグメンタ６０はステップＳ７−２０で定義されたハッシュテーブルのビンの「三重」値を読み取る。それらの「三重」値は、写真マット３４の材料、背景スクリーン２２８及び面２００の色を表現している。
【００８０】
ステップＳ７−２４では、画像データセグメンタ６０は、ステップＳ７−１８で生成された、現在考慮すべき入力画像中の画素の「三重」値がハッシュテーブルのビンの背景「三重」値のいずれかと同じであるか否かを判定する。
【００８１】
ステップＳ７−２４で、画素の「三重」値が背景「三重」値と同じであると判定されれば、ステップＳ７−２６で、その画素は背景画素であると判定し、画素の値を「黒色」に設定する。
【００８２】
これに対し、ステップＳ７−２４で、画素の「三重」値が背景のどの「三重」値とも同じでないと判定された場合には、ステップＳ７−２８で、その画素は被写体オブジェクト２１０又はオブジェクト支持台２２０の一部であると判定し、画像データセグメンタ６０は画素の値を「白色」に設定する。
【００８３】
ステップＳ７−３０では、画像データセグメンタ６０は、入力画像に別の画素が存在するか否かを判定する。入力画像中の各画素を以上説明したように処理し終わるまで、ステップＳ７−１４からS７−３０を繰り返す。
【００８４】
ステップＳ７−３２からＳ７−４４では、画像データセグメンタ６０は画像の画素を背景画素又はオブジェクト画素として分類する上での誤りを修正するための処理を実行する。
【００８５】
すなわち、ステップＳ７−３２で、画像データセグメンタ６０はメディアンフィルタとして使用すべき円形マスクを定義する。本実施形態では、円形マスクは４画素分の半径を有する。
【００８６】
ステップＳ７−３４では、画像データセグメンタ６０はステップＳ７−３２で定義したマスクの中心をステップＳ７−２６及びS７−２８で生成された２進画像の次の画素（ステップＳ７−３４が初めて実行される場合には、これは最初の画素である）の中心に配置するための処理を実行する。
【００８７】
ステップＳ７−３６では、画像データセグメンタ６０はマスク内部の黒色画素の数及び白色画素の数をカウントする。
【００８８】
ステップＳ７−３８では、画像データセグメンタ６０は、マスク内部の白色画素の数がマスク内部の黒色画素の数以上であるか否かを判定する。
【００８９】
ステップＳ７−３８で白色画素の数が黒色画素の数以上であると判定されれば、ステップＳ７−４０で、画像データセグメンタ６０はマスクの中心を位置決めする画素の値を白色に設定する。これに対し、ステップＳ７−３８で黒色画素の数が白色画素の数より多いと判定された場合には、ステップＳ７−４２で、画像データセグメンタ６０はマスクの中心を位置決めする画素の値を黒色に設定する。
【００９０】
ステップＳ７−４４では、画像データセグメンタ６０は２進画像中に別の画素が存在するか否かを判定し、以上説明したように各画素を処理し終わるまで、ステップＳ７−３４からS７−４４を繰り返す。
【００９１】
ステップＳ７−４８では、画像データセグメンタ６０は、処理すべき別の入力画像が存在するか否かを判定する。以上説明したように各入力画像を処理し終わるまで、ステップＳ７−１２からS７−４８を繰り返す。
【００９２】
再び図６に戻ると、ステップＳ６−１０では、サーフェスモデラ７０が被写体オブジェクト２１０の面及びオブジェクト支持台２２０の面の３Ｄコンピュータモデルを定義するデータを生成するための処理を実行する。
【００９３】
本実施形態では、ステップＳ６−１０の処理は従来通りに実行され、次の３つの段階を含む。
【００９４】
（１）ステップＳ６−６で生成されたカメラの位置及び向きと、ステップＳ６−８で生成された分割画像データとを処理して、被写体オブジェクト２１０の面と、オブジェクト支持台２２０の面とを包囲する複数のボクセル（voxel）から成る３Ｄ格子を定義するデータを含むボクセルカービング(voxel carving)を生成する。サーフェスモデラ７０はこの段階の処理を従来通りに、例えば、R. Szeliskiの「Rapid Octree Construction from Image Sequences」（CVGIP：Image Understanding第５８巻第１号、１９９３年７月、２３〜３２ページ）に記載されているように実行する。しかし、図８を参照して説明すると、本実施形態では、サーフェスモデラ７０により定義される、ボクセルカーブ処理を実行すべきスタートボリュームは、垂直の側面４０２、４０４、４０６、４０８と、水平の上面４１０と、水平の底面４１２とを有する立方形４００から形成されている。垂直の側面４０２、４０４、４０６、４０８は、（図８に外側の点線により概略的に表されているように）それらの面が写真マット３４上の特徴パターンの縁に触れるように位置決めされている。従って、垂直の側面は全体として被写体オブジェクト２１０を取り囲んでいることになる。上面４１０の位置は、カメラ２３０の焦点からステップＳ６−４で格納された入力画像のいずれか１つの上縁部を通る線４２０と、写真マット３４の中心を通る垂直線４２２とを交わらせることにより定義される。すなわち、カメラ２３０の焦点及び画像の上縁部はステップＳ６−６で実行された位置と向きの計算の結果として既にわかっており、上面４１０の高さを線４２０が写真マット３４の中心を通る垂直線４２２と交わる点に対応するように設定することにより、（被写体オブジェクト２１０の最上部が各入力画像で見えるとすれば）上面４１０は常に被写体オブジェクト２１０の上方に位置することになる。水平の底面４１２の位置は、写真マット３４の平面よりわずかに上方に位置するように設定される。底面４１２の位置をこのように設定することにより、（ステップＳ６−８で実行された画像分割処理では被写体オブジェクト２１０及びオブジェクト支持台２２０から分離されていなかった）写真マット３４上のパターンの特徴はボクセルカービング処理中は無視されることになり、被写体オブジェクト２１０及びオブジェクト支持台２２０の３Ｄサーフェスモデルが生成される。
【００９５】
（２）ボクセルカービングを定義するデータを処理して、被写体オブジェクト２１０の面及びオブジェクト支持台２２０の面を定義する複数の三角形から成る３Ｄサーフェスメッシュを定義するデータを生成する。本実施形態では、この段階の処理は、サーフェスモデラ７０により従来のマーチングキューブアルゴリズムに従って、例えば、W. E. Lorensen及びH. E. Clineの「Marching Cubes：A High Resolurion 3D Surface Construction Algorithm」（Computer Graphics, SIGGRAPH 87 Proceedings,２１，１６３〜１６９ページ、１９８７年７月）又はJ. Bloomenthalの「An Implicit Surface Polygonizer」（Graphics Gems IV、AP Professional、１９９４年、ISBN0123361559，３２４〜３５０ページ）に記載されているように実行される。
【００９６】
（３）デシメーションプロセス（decimation process）を実行することにより、第２段階で生成されたサーフェスメッシュの三角形の数を相当に減少させる。
【００９７】
本実施形態においては、サーフェスモデラ７０は第３段階で、第２段階で生成された三角形メッシュの各々の頂点（vertics）が被写体オブジェクト２１０の面又はオブジェクト支持台２２０の面の形状に寄与するか否かを判定するために三角形メッシュから頂点をランダム（無作為）に除去することにより、デシメーションプロセスを実行するための処理を実行する。形状に寄与しない頂点は三角形分割から放棄されるため、最終モデルにおける頂点の数（従って、三角形の数）は少なくなる。隣接する頂点を連続して除去することにより面の大部分が徐々に侵食されるという事態を回避するために、除去し試験すべき頂点の選択は無作為に行われる。本実施形態における、サーフェスモデラ７０により実行されるデシメーションアルゴリズムを、疑似コードで以下のように記述する。
0004497772.tif 000004
写真マット３４上の特徴の絶対位置はわかっているので（特徴は位置を定義する事前格納済みデータに従ってプリントされている）、ステップＳ６−１０で、被写体オブジェクト２１０の面及びオブジェクト支持台２２０の面の３Ｄコンピュータモデルは正確なスケールで生成される。
【００９８】
ステップＳ６−１２で、サーフェステクスチャラ８０はステップＳ６−４で格納された入力画像データを処理して、ステップＳ６−１０でサーフェスモデラ７０により生成されたサーフェスモデルの三角形ごとにテクスチャデータを生成する。
【００９９】
図９は、本実施形態においてステップＳ６−１２でサーフェステクスチャラ９０により実行される処理動作を示している。
【０１００】
図９を参照すると、ステップＳ９−２では、サーフェステクスチャラ９０は被写体オブジェクト２１０の底面、すなわち、オブジェクト支持台２２０の水平板２２２に乗っている面のテクスチャデータとして使用できる画像データを生成する。本実施形態では、この処理は、ステップＳ６−４で格納された被写体オブジェクト２１０の各入力画像を、被写体オブジェクト２１０の下面が見えるようなカメラ撮影位置及び向きを有し且つミラー１４０における被写体オブジェクト２１０の下面の反射に相当する入力画像からの画素データを含む仮想画像に変換することにより実行される。すなわち、先に述べた通り、マット発生器３０は座標系を定義するデータを格納し、カメラ計算器５０は定義された座標系において各入力画像が記録されたときの位置と向きを計算する。本実施形態では、写真マット３４の中心が座標系の原点であり、ｚ方向は写真マットの平面に対し垂直な上向きの方向である。ステップＳ９−２では、サーフェステクスチャラ８０は、カメラ計算器５０により計算された入力画像の位置と向きを変更して、被写体オブジェクト２１０の下面を示す位置及び向きに相当する、仮想画像の新たな位置と向きを定義することにより、各入力画像を処理する。すなわち、カメラ計算器５０により計算された入力画像の位置と向きを３×４の行列Ｍとして表現して、サーフェステクスチャラ８０は仮想画像の位置と向きを定義する３×４の行列Ｍ'を次のようにして生成する。
【０１０１】
【数３】
0004497772.tif 000005
【０１０２】
サーフェステクスチャラ８０は、仮想画像ごとに、対応する入力画像の中で写真マット３４の穴１３０に対応しない全ての画素をマスクすることにより、画素データを生成する（入力画像における穴１３０の位置は、ステップＳ６−６でカメラ計算器５０により実行された位置と向きの計算からわかっている）。このようにして、図１０に示す通り、仮想画像の画素データはミラー１４０における反射を示す画素データから構成されることになり、残る画素データの全ては（図１０に陰影により指示するように）隠蔽（mask out）される。
【０１０３】
入力画像によっては、ミラー１４０の反射の中にオブジェクト支持台２２０の脚部２２４が現われ、その結果、対応する仮想画像にも現れる場合もあることは理解されるであろう。しかし、本実施形態では、以下の説明から明らかになるように、被写体オブジェクト２１０の底面を構成する３Ｄコンピュータモデルの様々な三角形のテクスチャデータは必ずしも同じ入力画像から生成されたとは限らず、従って、一部の入力画像で脚部２２４が見えても、その影響はそれほど著しく目立たないので、これは問題ではない。あるいは、脚部２２４がミラー１４０からの反射で見えることがないように、脚部２２４を透明材料から形成しても良い。
【０１０４】
再び図９に戻ると、ステップＳ９−４からＳ９−１０では、サーフェステクスチャラ８０は、ステップＳ６−１０で生成されたサーフェスメッシュにおいて各三角形を選択し且つ選択された三角形について入力画像の１つからテクスチャデータを定義するための処理を従来通りに実行する。
【０１０５】
すなわち、ステップＳ９−４で、サーフェステクスチャラ８０はステップＳ６−１０で生成されたサーフェスメッシュにおける次の三角形（ステップＳ９−４が初めて実行される場合には、これは最初の三角形である）を考慮し、ステップＳ９−６では、三角形に最も近接して直面している入力画像「ｉ」を見出すための処理を実行する。
【０１０６】
すなわち、三角形の垂線(normal)を^ｎtとし、「ｉ」番目の画像の撮影方向を^ｖiとするとき、ステップＳ９−６で、サーフェステクスチャラ８０は値^ｎt・^ｖiが最大である入力画像を求める。これは、面三角形が最大投射面積を有する入力画像を識別する。
【０１０７】
ステップＳ９−８で、サーフェステクスチャラ８０はステップＳ９−６で識別された入力画像に三角形を投射し、投射された三角形の頂点を画像テクスチャマップを定義するテクスチャ座標として従来通りに格納する。
【０１０８】
ステップＳ９−１０で、サーフェステクスチャラ８０は、サーフェスメッシュに別の三角形が存在しているか否かを判定し、先に説明したように各三角形を処理し終わるまでステップＳ９−４からＳ９−１０を繰り返す。
【０１０９】
以上説明した処理を実行した結果、モデルにレンダリングすべき画像データを定義するテクスチャ座標をもって完成した、被写体オブジェクト２１０及びオブジェクト支持台２２０の面のVRML（又は類似のフォーマットの）モデルが得られる。
【０１１０】
再び図６に戻ると、ステップＳ６−１４で、オブジェクト／支持台セパレータ９０は、ステップＳ６−１０でサーフェスモデラ７０により生成された被写体オブジェクト２１０の面及びオブジェクト支持台２２０の面の３Ｄコンピュータモデルを定義するデータを処理して、モデルからオブジェクト支持台２２０を除去し、被写体オブジェクト２１０の３Ｄコンピュータモデルのみを残す。
【０１１１】
本実施形態では、オブジェクト／支持台セパレータ９０は、ユーザ入力装置６を介して入力されるユーザ命令に従って処理を実行し、３Ｄコンピュータモデルからオブジェクト支持台２２０を対話によって除去する。
【０１１２】
図１１は、ステップＳ６−１４でオブジェクト／支持台セパレータ９０により実行される処理動作を示している。
【０１１３】
図１１を参照すると、ステップＳ１１−２では、オブジェクト／支持台セパレータ９０はディスプレイプロセッサ１１０に、サーフェスモデラ７０により生成された被写体オブジェクト２１０及びオブジェクト支持台２２０の３Ｄコンピュータモデルをサーフェステクスチャラ８０により生成されたテクスチャデータによってレンダリングして、表示装置４に表示させる。更に、図１２ａに示すように、オブジェクト／支持台セパレータ９０はディスプレイプロセッサ１１０に、表示される３Ｄコンピュータモデルと交わる水平平面４５０を表示させる。この水平平面４５０は、ユーザがマウスなどのユーザ入力装置６を使用することにより垂直方向に（すなわち、写真マット３４に対し垂直な方向に）移動自在である。
【０１１４】
ステップＳ１１−４では、図１２ａ、図１２ｂ及び図１２ｃに示すように、オブジェクト／支持台セパレータ９０は平面４５０をユーザ入力命令に従って垂直方向に上下に動かし、ユーザにより定義される、３Ｄコンピュータモデルにおいて平面４５０が被写体オブジェクト２１０とオブジェクト支持台２２０とを分離する最終位置（図１２ｃ）まで移動させる。更に、オブジェクト／支持台セパレータ９０はディスプレイプロセッサ１１０に、ユーザ入力命令に従って１つ以上の異なる撮影位置及び方向からの被写体オブジェクト２１０、オブジェクト支持台２２０及び平面４５０の３Ｄコンピュータモデルを表示させる。これにより、ユーザは異なる視点から３Ｄコンピュータモデルを見て、平面４５０の最終位置が３Ｄコンピュータモデルにおいて正しく被写体オブジェクト２１０をオブジェクト支持台２２０から分離していることを確認するために、それらの視点から３Ｄコンピュータモデルを観察しつつ平面４５０を移動させることができる（平面４５０は、３Ｄコンピュータモデルを様々に異なる撮影位置及び方向から見たときに表示装置４では垂直方向にならない可能性もある写真マット３４の計算上の平面に対して垂直な方向に移動するように常に制約されている）。
【０１１５】
ステップＳ１１−６では、ユーザが平面４５０の移動を終了し、平面がその時点で被写体オブジェクト２１０とオブジェクト支持台２２０とを分離する位置にあることを指示するユーザ入力信号に応答して、オブジェクト／支持台セパレータ９０は平面の最終位置を定義する座標を格納する。
【０１１６】
ステップＳ１１−８で、オブジェクト／支持台セパレータ９０は、サーフェスモデラ７０により生成された３Ｄサーフェスモデルのうち、ステップＳ１１−６で格納された平面の最終位置の下方にある部分を削除するための（すなわち、平面４５０の、写真マット３４の計算上の平面に向いた側に位置するモデルの部分を削除するための）処理を実行する。
【０１１７】
図１３を参照して説明すると、ステップＳ１１−８の処理を実行するために、オブジェクト／支持台セパレータ９０はステップＳ６−１０でサーフェスモデラ７０により実行される処理を繰り返すが、今回は、水平の底面４１２がステップＳ１１−６で格納された平面４５０の最終位置に対応する位置まで移動されるように、ボクセルカーブ処理のスタートボリュームを定義する立方形４００を修正する。このように、ボクセルカーブ処理及び後続する処理（前述の通り）を実行するときに、被写体オブジェクト２１０の面のみの３Ｄコンピュータモデルが生成されることになり、モデルはオブジェクト支持台２２０のどの部分も含んでいない。
【０１１８】
再び図１１に戻り、ステップＳ１１−１０では、オブジェクト／支持台セパレータ９０はディスプレイプロセッサ１１０に、ステップＳ１１−８で生成された３Ｄサーフェスモデルの画像をステップＳ６−１２でサーフェステクスチャラ８０により生成された適切なテクスチャデータによってレンダリングして、表示装置４に表示させる。
【０１１９】
ステップＳ１１−１２では、オブジェクト／支持台セパレータ９０は、オブジェクト支持台２２０のモデルを除去するために３Ｄコンピュータモデルに対して更に変更を実行すべきであることを指示するユーザ入力信号を受信したか否かを判定する。ステップＳ１１−１２で、それ以上の変更が不要であることが判定されるまで、ステップＳ１１−４からＳ１１−１２を繰り返す。
【０１２０】
再び図６に戻ると、ステップＳ６−１６では、中央制御装置２０は出力データ記憶装置１２０からの、被写体オブジェクト２１０の３Ｄコンピュータモデルを定義するデータ及びそのテクスチャデータを、例えば、ディスク１２２などの記憶装置に格納されるデータ又は信号１２４（図１）として出力する。これに加えて、又はその代わりに、中央制御装置２０はディスプレイプロセッサ１１０に、被写体オブジェクト２１０の３Ｄコンピュータモデルを、例えば、ユーザ入力装置６を使用してユーザにより入力された視点に従ってテクスチャデータによってレンダリングして表示させても良い。あるいは、ステップＳ６−６で生成された入力画像ごとのカメラ２３０の位置及び向きを定義するデータと、ステップＳ６−８で生成された各入力画像の分割を定義するデータとを、例えば、ディスク１２２などの記憶装置に記録されるデータ又は信号１２４として出力しても良い。その後、このデータはステップＳ６−１０からS６−１４を実行するためにプログラムされた別の処理装置に入力されても良い。
【０１２１】
以上説明した第１の実施形態においては、オブジェクト／支持台セパレータ９０は、ステップＳ６−１４で被写体オブジェクト及びオブジェクト支持台の３Ｄコンピュータモデルを処理して、平面４５０の位置を定義するユーザ入力命令に従って３Ｄコンピュータモデルからオブジェクト支持台を除去し、被写体オブジェクトとオブジェクト支持台を分離する。しかし、以下に説明する別の実施形態から明白になるように、オブジェクト／支持台セパレータ９０により異なる方法で被写体オブジェクト単独の（すなわち、オブジェクト支持台を含まない）３Ｄコンピュータモデルを生成しても良い。
【０１２２】
［第２の実施形態］
次に、本発明の第２の実施形態を説明する。第２の実施形態の構成要素及びそれにより実行される処理動作は、以下に説明するように、オブジェクト支持台が異なり且つオブジェクト／支持台セパレータ９０により実行される処理動作が異なる点を除いて、第１の実施形態の場合と同じである。更に、第２の実施形態では、入力画像からサーフェステクスチャラ８０により被写体オブジェクト２１０の下面のテクスチャデータは生成されない（多くの場合、被写体オブジェクト２１０の下面はユーザにとってさほど大きな意味を持たないため、これは重要な問題ではない）。
【０１２３】
図１４を参照すると、第２の実施形態では、オブジェクト支持台４６０は不透明の底部４７０と透明な上部４８０とを有する円筒で構成されている。
【０１２４】
オブジェクト支持台４６０の直径の大きさは、被写体オブジェクト２１０がオブジェクト支持台４６０の上に配置されたときに支持台の上面全体を覆うように定められている。従って、被写体オブジェクト２１０が乗っている水平面が被写体オブジェクト２１０の底面の縁からはみ出すことはない。そのため、被写体オブジェクト２１０に隣接して、影を形成するような水平面は存在しないので、入力画像において被写体オブジェクト２１０に影がかかることはありえない。
【０１２５】
オブジェクト支持台４６０の上部４８０は透明であるので、ステップＳ６−４で格納される各入力画像においては、図１４に示すように、被写体オブジェクト２１０と、オブジェクト支持台４６０の不透明の底部４７０との間に背景スクリーン２２８の一部が見えることになる。このため、各入力画像では、被写体オブジェクト２１０はオブジェクト支持台４６０の底部４７０から分離されたように見える。
【０１２６】
従って、ステップＳ６−８で画像データセグメンタ６０により実行される処理において、被写体オブジェクト２１０とオブジェクト支持台４６０の底部４７０との間にある背景スクリーン２２８の部分に関連する画素は「背景」画素と指定されるが、被写体オブジェクト２１０に関連する画素と、オブジェクト支持台４６０の底部４７０に関連する画素は「オブジェクト」画素の別個の領域として指定される。
【０１２７】
そこで、ステップＳ６−１０でサーフェスモデラ７０により実行される処理では、被写体オブジェクト２１０の３Ｄコンピュータモデルが生成され、オブジェクト支持台４６０の底部４７０の別個の、先の３Ｄコンピュータモデルとはつながらない３Ｄコンピュータモデルが生成される。
【０１２８】
従って、ステップＳ６−１４でオブジェクト／支持台セパレータ９０により実行される処理では、オブジェクト支持台４６０の底部４７０の３Ｄコンピュータモデルを被写体オブジェクト２１０の３Ｄコンピュータモデルから識別し、それを削除するだけで良い。
【０１２９】
図１５は、第２の実施形態のステップＳ６−１４でオブジェクト／支持台セパレータ９０により実行される処理動作を示す。
【０１３０】
図１５を参照すると、ステップＳ１５−２では、オブジェクト／支持台セパレータ９０はディスプレイプロセッサ１１０に、サーフェスモデラ７０により生成された被写体オブジェクト２１０の３Ｄコンピュータモデル及びオブジェクト支持台４６０の底部４７０の３Ｄコンピュータモデルの画像をサーフェステクスチャラ８０により生成されたテクスチャデータによってレンダリングして表示させる。
【０１３１】
ステップＳ１５−４では、オブジェクト／支持台セパレータ９０はディスプレイプロセッサ１１０に、オブジェクト支持台４６０の底部４７０の３Ｄモデルを識別することをユーザに要求するメッセージを表示装置４に表示させる。
【０１３２】
ステップＳ１５−６では、マウスなどのユーザ入力装置６を介してユーザから入力された信号に応答して、オブジェクト／支持台セパレータ９０は入力信号で定義されている３Ｄコンピュータモデルを削除して、被写体オブジェクト２１０の３Ｄコンピュータモデルのみを残す。
【０１３３】
本実施形態の変形として、オブジェクト支持台４６０の上部４８０を不透明にし、背景スクリーン２２８と同じ色にしても良い。この場合、各入力画像において上部４８０を背景スクリーン２２８と区別することは不可能であるため、これは上部４８０を透明にするのと同じ効果を有する。
【０１３４】
図１５を参照して以上説明した処理に代わる処理として、オブジェクト／支持台セパレータ９０はオブジェクト支持台４６０の底部４７０の３Ｄコンピュータモデルを自動的に（すなわち、ユーザからの入力なしに）削除しても良い。すなわち、これは、ステップＳ６−６でカメラ計算器５０により計算された写真マット３４の位置に最も近接している３Ｄコンピュータモデルを削除することにより実現される。被写体オブジェクト２１０は常にオブジェクト支持台４６０の上に配置されており、従って、常にオブジェクト支持台４６０の底部４７０より写真マット３４から離れた位置にあるので、この処理により、削除のたびに正しい３Ｄコンピュータモデルが削除される結果となる。
【０１３５】
［第３の実施形態］
次に、本発明の第３の実施形態を説明する。第３の実施形態の構成要素及びそれにより実行される処理動作は、以下に説明するように、オブジェクト支持台が異なり且つオブジェクト／支持台セパレータ９０により実行される処理動作が異なる点を除いて第１の実施形態の場合と同じである。加えて、第２の実施形態と同様に、第３の実施形態でも被写体オブジェクト２１０の下面のテクスチャデータは生成されない。
【０１３６】
第３の実施形態では、撮影のために被写体オブジェクト２１０が乗せられるオブジェクト支持台は第２の実施形態の場合と同様に円筒であるが、第３の実施形態においては、第２の実施形態のように一部が不透明、一部が透明という構造ではなく、円筒全体が不透明である。
【０１３７】
従って、第１の実施形態の場合と同様に、ステップＳ６−１０でサーフェスモデラ７０により生成される３Ｄコンピュータモデルは、被写体オブジェクト２１０とオブジェクト支持台双方の３Ｄコンピュータモデルである。
【０１３８】
第３の実施形態のステップＳ６−１４では、オブジェクト／支持台セパレータ９０は、先にステップＳ６−６でカメラ計算器５０により計算された写真マット３４の位置から離れる方向（すなわち、オブジェクト支持台の底面から被写体オブジェクト２１０に向かう上向きの方向）に複数の異なる位置で３Ｄコンピュータモデルの横断面面積を試験するための処理を実行する。すなわち、オブジェクト／支持台セパレータ９０は、横断面面積の急激な変化（この急激な変化は、被写体オブジェクト２１０の底面がオブジェクト支持台の上面より狭い又は広い場合に、オブジェクト支持台と被写体オブジェクト２１０との境界を指示する）が起こる位置を検出するために、３Ｄコンピュータモデルの横断面面積を監視する。３Ｄコンピュータモデルの横断面面積が変化する位置を検出したならば、オブジェクト／支持台セパレータ９０は、第１の実施形態で説明したように、ボクセルカーブ処理を実行する初期ボリューム４００の底平面４１２を３Ｄコンピュータモデルの横断面面積の変化が起こったと検出された位置に設定することにより、３Ｄコンピュータモデルを再び生成するための処理を実行する。
【０１３９】
このようにして、ユーザ入力なしに被写体オブジェクト２１０単独の３Ｄコンピュータモデルが生成される。
【０１４０】
以上説明した処理に代わる処理として、被写体オブジェクト２１０の底面のどの色とも相当に異なるほぼ一様な色を有するオブジェクト支持台を使用しても良い。この場合、オブジェクト支持台の横断面面積の急激な変化を検出するための処理を実行するのではなく、オブジェクト／支持台セパレータ９０はサーフェステクスチャラ８０により生成されたテクスチャデータによってレンダリングされたときに、３Ｄコンピュータモデルの急激な色の変化の位置を検出するための処理を実行すれば良い。
【０１４１】
以上説明した初めの３つの実施形態においては、被写体オブジェクト２１０及びオブジェクト支持台の３Ｄコンピュータモデルを（第１及び第３の実施形態の場合のような単一の３Ｄコンピュータモデルとして、又は第２の実施形態の場合のような２つの別個の３Ｄコンピュータモデルとして）生成し、その後、オブジェクト支持台に関連する３Ｄコンピュータモデルを除去する。
【０１４２】
しかし、そのようにする代わりに、サーフェスモデラ７０はステップＳ６−１０で、以下に説明する第４の実施形態から明らかになるように、被写体オブジェクト単独の３Ｄコンピュータモデルを定義するデータを生成するための処理を実行しても良い。
【０１４３】
［第４の実施形態］
次に、本発明の第４の実施形態を説明する。第４の実施形態の構成要素及びそれにより実行される処理動作は、オブジェクト支持台の高さがわかっており、処理装置２に格納されていること（例えば、高さはユーザにより入力されても良い）、及びオブジェクト／支持台セパレータ９０（従って、オブジェクト／支持台セパレータにより実行される処理ステップＳ６−１４）が含まれておらず、サーフェスモデラ７０により実行される処理をそれに対応して変更したことを除いて、第１の実施形態の場合と同じである。以下に、それらの相違点について説明する。
【０１４４】
すなわち、オブジェクト支持台の高さがわかっており、処理装置２に格納されているので、ステップＳ６−１０で、サーフェスモデラ７０はボクセルカーブ処理を実行すべき初期ボリューム４００の底平面４１２を写真マット３４の位置から格納されているオブジェクト支持台の高さに等しい垂直方向距離だけ離れた位置に設定する。これにより、ステップＳ６−１０で後にサーフェスモデラ７０により実行される処理において、被写体オブジェクト２１０単独の３Ｄコンピュータモデルが生成されることになる。
【０１４５】
［変形例］
特許請求の範囲の範囲内で、以上説明した実施形態に対して数多くの変形を実施することができる。
【０１４６】
例えば、撮影のために被写体オブジェクト２１０が乗せられるオブジェクト支持台を変形することが可能である。
【０１４７】
第１の例として、先に図４ａから図４ｅを参照して説明したように、カメラ２３０の撮影位置及び方向は、各入力画像において被写体オブジェクト２１０が背景スクリーン２２８により取り囲まれる形で確実に現れるように保証するために重要であるので、カメラ２３０の最適の位置及び撮影方向を選択するときにユーザを補助するようにオブジェクト支持台を設計することができる。すなわち、図１６に示すように、ユーザが正しい撮影位置及び方向を実現するのを補助するために、マーカ５００を有するオブジェクト支持台４９０を使用しても良い。この場合、マーカ５００が写真マット３４と背景スクリーン２２８との境界に現れるように、ユーザはカメラ２３０の位置と方向を選択できる。マーカ５００は、この整列が起こったときに被写体オブジェクト２１０が常に背景スクリーン２２８により取り囲まれるように、オブジェクト支持台の上部から十分な距離をおいて位置決めされている。
【０１４８】
図１７を参照すると、被写体オブジェクト２１０が乗るオブジェクト支持台の上面から離間した位置に写真マット３４の特徴のパターンがプリント（又はその他の方法によりマーキング）されているオブジェクト支持台５１０を設けることにより、オブジェクト支持台と写真マット３４を組み合わせても良い。
【０１４９】
先に説明した実施形態のように、入力画像中で検出するために写真マット３４に特徴を設けるのに加えて、オブジェクト支持台にも同様に特徴を設けても良く、この場合、カメラ計算器５０は、各入力画像においてオブジェクト支持台の特徴を検出すると共に、入力画像相互間で検出した特徴を整合するための処理を実行する。その後、検出され、整合されたオブジェクト支持台の特徴の位置を写真マット３４の特徴の検出位置と共に使用して、入力画像の位置と向きを計算する。これにより、（先に説明したように、全ての特徴が写真マット３４の上にある実施形態とは異なり）位置と向きを計算するために使用される特徴の全てが１つの平面に位置することがなくなり、オブジェクト支持台の特徴を異なる高さに設けることが可能になるため、計算される位置及び向きの正確さが向上する（従って、被写体オブジェクトの３Ｄコンピュータモデルがより正確になる）と思われる。写真マット３４で検出された特徴と、オブジェクト支持台で検出された特徴を使用して、入力画像の位置及び向きを計算する方法の一例として、EP−A−０８９８２４５に記載されている方法に基づき、「ユーザ識別」整合として写真マット３４の特徴の整合を使用し且つ「計算上の」整合としてオブジェクト支持台の特徴の整合を使用して、処理を実行しても良い。
【０１５０】
更に、オブジェクト支持台の特徴を既知の相対位置に設けても良い。このようにすると、既知の相対位置を利用して、計算される各々の位置及び向きがとりうる解を従来のように制約することにより（すなわち、オブジェクト支持台上の特徴の相対位置を維持する撮影条件を与えるように計算される位置及び向きに要求することにより）、更に高い正確さをもって入力画像の位置と向きを計算できるであろう。
【０１５１】
また、オブジェクト支持台上の特徴を既知の相対位置に設けるのに加えて、オブジェクト支持台と写真マットを接合したときに、オブジェクト支持台上の特徴が写真マット上の特徴の位置に対して既知の位置をとるようにオブジェクト支持台と写真マットを相互に接続するように構成しても良い。すなわち、図１８を参照して説明すると、穴５３０を有する材料の厚板の上に特徴のパターンを設けた写真マット５２０を使用しても良い。各々がそれぞれ異なる色を有し、且つ既知の相対位置にそれぞれ配列された複数の特徴５６０を有するオブジェクト支持台５４０は、その底部を穴５３０に差し込むことにより写真マット５２０と接合される。オブジェクト支持台５４０を穴５３０に差し込んだとき、オブジェクト支持台５４０に設けられた突起部５５０が穴５３０の切り欠きと係合するので、写真マット５２０上の特徴と、オブジェクト支持台５４０上の特徴５６０の相対位置は固定される。
【０１５２】
以上説明した実施形態では、オブジェクト支持台と被写体オブジェクト２１０が配置されるキャリブレーションオブジェクトは二次元写真マット３４の形態をとっていた。しかし、その代わりに三次元キャリブレーションオブジェクトを使用しても差し支えない。例えば、図１９を参照すると、垂直の側面に特徴のパターンを有する立方体の形状を有するキャリブレーションオブジェクト５７０が使用されている。
【０１５３】
オブジェクト支持台の高さを変えることができるように、支持台を伸縮自在の構造にしても良い。
【０１５４】
オブジェクト支持台は、被写体オブジェクト２１０に差し込めるスパイクの形態をとっていても良い。
【０１５５】
上述の全ての実施形態において、オブジェクト支持台は、被写体オブジェクト２１０を乗せる平坦な上面を有する。しかし、被写体オブジェクトは複数の個別の支柱によって支えられても良い。例えば、第１の実施形態で、オブジェクト支持台の水平の上板２２２を取り外し、被写体オブジェクトを脚部２２４により支持しても差し支えない。被写体オブジェクトの下面に関してテクスチャデータを生成すべき実施形態では、この構成は、被写体オブジェクトが乗っている面（例えば、第１の実施形態では面２２２）を通る光の透過に起因して発生する歪みの影響を受けずに、ミラー１４０で下面の少なくとも一部を反射させることになるであろう。
【０１５６】
上述の全ての実施形態において、写真マット３４のパターンの特徴は、オブジェクト支持台が配置される空いた中央領域に配列されていた。しかし、オブジェクト支持台用のスペースを取らずに、特徴を写真マット３４の全面に設けても良く、その場合、オブジェクト支持台は特徴の一部にかかるように配置される。各入力画像で少なくとも６個の特徴が見えているならば、この配置が各入力画像の位置及び向きを計算するための処理動作に影響を及ぼすことはない。
【０１５７】
上述の実施形態においては、被写体オブジェクト２１０を乗せたオブジェクト支持台は、写真マット３４のパターンの特徴により取り囲まれるように写真マット３４上に位置決めされていた。しかし、被写体オブジェクト２１０を乗せたオブジェクト支持台が特徴のパターンの外に出るように写真マット３４上で位置決めされても良い（例えば、特徴の円から外に出た写真マット３４の角）。同様に、被写体オブジェクト２１０を乗せたオブジェクト支持台を写真マット上に配置する必要もない。例えば、カメラ２３０が固定されている場合、写真マット３４を大きなシート紙の上に配置し、被写体オブジェクト２１０を乗せたオブジェクト支持台をそのシート紙の上に、写真マット３４を外して配置しても良い。この場合、次の画像を記録するときに、カメラ２３０と、写真マット３４、オブジェクト支持台及び被写体オブジェクト２１０との相対的な位置及び向きの関係を変化させるために、紙を回転及び／又は移動させれば良い。このようにすると、被写体オブジェクト２１０が写真マット３４の特徴のパターンの上に直接に乗っていなくても、被写体オブジェクト２１０は依然としてオブジェクト支持台によりパターンの上方の位置に保持されており、記録された画像において被写体オブジェクト２１０とパターンの双方を見ることができる。従って、ここで使用する用語「上方」は、被写体オブジェクトが写真マットの垂直方向直上にあることを意味するものとして解釈されてはならない。
【０１５８】
以上説明した全ての実施形態において、被写体オブジェクト２１０単独の３Ｄコンピュータモデルを生成していた。しかし、アプリケーションによっては、オブジェクト支持台（又はその一部）を含めて被写体オブジェクト２１０の３Ｄコンピュータモデルを生成しても良い。そのような場合には、オブジェクト支持台の３Ｄコンピュータモデルを除去するための処理を実行する必要はない。
【０１５９】
上述の第１の実施形態では、ステップＳ６−１４でオブジェクト／支持台セパレータ９０により実行される処理において、被写体オブジェクト２１０をオブジェクト支持台２２０から分離させるために移動されるべくユーザに対し表示される平面４５０は、被写体オブジェクト２１０の３Ｄコンピュータモデルのいずれか一部の幅を超える幅を有する。同様に、ボクセルカーブ処理を再度実行する前に、オブジェクト／支持台セパレータ９０は、底部平面４１２の下方にある初期ボリューム４００の底部全体を除去するために、初期ボリューム４００の底部平面４１２を移動させる。図５に示すように、被写体オブジェクト２１０のどの部分もオブジェクト支持台２２０の上面より上にある場合には、この処理は申し分なく実行される。しかし、被写体オブジェクト２１０の一部がオブジェクト支持台２２０の上面から突き出しているために、第１の実施形態で説明した処理を使用すると、平面４５０を利用して被写体オブジェクト２１０をオブジェクト支持台２２０から分離することが不可能になると思われる状況も起こりうる。従って、この処理に代わる処理として、ステップＳ６−１４で、オブジェクト／支持台セパレータ９０はオブジェクト支持台２２０と同じ形状及び横断面面積を有する平面４５０を表示しても良く、その場合、ボクセルカーブ処理を実行すべき初期ボリューム４００を修正するとき、ユーザに対し表示された平面４５０の横断面面積及び形状に相当する横断面面積と形状を有し且つ下の底部平面４１２からステップＳ１１−６で格納された平面４５０の最終位置に対応する位置まで延在する穴をボリューム４００に形成しても良い。また、第３及び第４の実施形態においても同様に、被写体オブジェクト２１０がオブジェクト支持台の上部から突き出している状況を考慮するために、初期ボリューム４００を修正しても良い。
【０１６０】
被写体オブジェクトとオブジェクト支持台双方の３Ｄコンピュータモデルからオブジェクト支持台の３Ｄコンピュータモデルを除去するための処理を実行する別の方法として、（例えば、入力画像を記録するときに被写体オブジェクト２１０が存在しない状態で先に説明した処理を実行することにより）オブジェクト支持台の３Ｄコンピュータモデルを処理装置２で事前に生成し、事前に格納しておいても良い。その場合、この後、事前に格納されていたオブジェクト支持台のモデルを被写体オブジェクト及びオブジェクト支持台双方の３Ｄモデルの一部に整合させ、且つ検出された整合部分を除去するために、オブジェクト／支持台セパレータ９０により処理を実行しても良い。
【０１６１】
上述の実施形態においては、プリンタ８は１枚のシート紙に写真マット３４をプリントしていた。しかし、マット発生器３０は写真マットを複数枚のシート紙にプリントするようにプリンタ８を制御しても良い。それらの紙を組み合わせて写真マット３４を形成することができる。
【０１６２】
記録媒体に写真マットをプリントする、又は表示パネル１０に写真マットを表示するのではなく、写真マットの特徴を床などの面にマーキング（例えば、ペイント）しても良い。
【０１６３】
上述の第１の実施形態においては、被写体オブジェクト２１０の下面のテクスチャデータを生成するために、写真マットをプリントするシート紙に穴１３０が切り取られており、それをミラー１４０に接合していた。しかし、その代わりに、シート紙の上面の、穴１３０が切り取られていたであろう位置に対応する位置に、ミラー又はその他の適切な反射材料を設けても良い。同様に、表示パネル１０に写真マットを表示する場合に、表示パネルにミラー又は他の反射材料を配置しても良い。あるいは、ミラー又は他の反射面に写真マットの特徴のパターンをプリント、又はその他の方法によりマーキングしても良い。
【０１６４】
上述の第１の実施形態では、ステップＳ６−１４でオブジェクト／支持台セパレータ９０により実行される処理において、ボクセルカーブ処理を実行すべき初期ボリューム４００の底部平面４１２を先にユーザにより移動された平面４５０の位置に対応する位置まで移動させることにより、サーフェスモデラ７０により生成された３Ｄコンピュータモデルを修正していた。これに加えて、同じ技法を使用して、３Ｄコンピュータモデルの誤りを修正するために３Ｄコンピュータモデルを修正しても良い。すなわち、図２０aを参照して説明すると、処理装置２は、ユーザがユーザ入力装置６を使用して任意の位置及び向きに移動させることができる平面６００と共に、３Ｄコンピュータモデルの画像を表示しても良い。このようにすると、ユーザは、図２０aの部分６１０のように、望ましい部分から突出しているコンピュータモデルの望ましくない部分を分離する位置まで平面６００を移動させることができる。先に図１１を参照して説明した処理の場合と同様に、処理装置２はユーザにより移動された後の平面６００の最終位置を格納し、図２０bに示すように、ユーザにより定義された平面６００の位置に対応するボリューム４００内の位置に平面６２０を設定し、且つその平面６２０により除外される部分６３０を初期ボリューム４００から除去することにより、ボクセルカーブ処理を実行すべき処理ボリューム４００を修正する。その後、処理装置２は再びボクセルカーブ処理を実行し、その結果、ボクセルカーブ処理から除外されたボリューム６３０に位置している３Ｄコンピュータモデルの望ましくない部分６１０は除去される。
【０１６５】
以上説明した実施形態においては、ステップＳ６−４で、ユーザにより入力された、カメラ２３０の固有パラメータを定義するデータを格納していた。しかし、その代わりに、固有カメラパラメータの一部又は全てに関してデフォルト値を想定しても良く、あるいは、例えば、Hartleyの「Euclidean Reconstruction From Uncalibrated Views」（Applications of Invariance in Computer Vision, Mundy, Zisserman and Forsyth eds、２３７〜２５６ページ、Azores１９９３年）に記載されているように、従来の方式で固有パラメータ値を計算するための処理を実行しても良い。
【０１６６】
以上説明した実施形態においては、先に図７を参照して説明したように、被写体オブジェクト２１０及びオブジェクト支持台に関連する入力画像からの画像データを写真マット３４、面２００及び背景スクリーン２２８に関連する画像データから分離していた。しかし、別の従来の分割方法を使用しても良い。例えば、写真マット３４、面２００及び背景スクリーン２２８の色を表現する１つのRGB値を格納し、RGB背景値とRGB画素値とのRGB空間におけるユークリッド距離が指定の閾値より小さいか否かを判定するために、入力画像の各画素を処理するような分割方法を使用しても差し支えない。
【０１６７】
以上説明した実施形態においては、３Ｄコンピュータモデルを定義するデータを生成するためのステップＳ６−１０及びＳ６−１４の処理をボクセルカービング技法を使用して実行していた。しかし、例えば、共にKiriakos N. Kutulakos及びStephen M. Seitzが著した１９９８年１月のUniversity of Rochester Computer Sciences Technical Report Number 680に掲載された論文「What Do N Photographs Tell Us About 3D Shape？」及び１９９８年５月のUniversity of Rochester Computer Sciences Technical Report Number 692に掲載された論文「A Theory of Shape by Space Carving」に記載されているようなボクセルカラリング技法などの他の技法を使用しても差し支えない。
【０１６８】
以上説明した実施形態においては、プログラミング命令により定義される処理ルーチンを使用して、コンピュータにより処理を実行していた。しかし、処理の一部又は全てをハードウェアを使用して実行することも可能であろう。
【図面の簡単な説明】
【図１】本発明の一実施形態の構成要素を、プログラミング命令によりプログラムされたときに処理装置の構成要素が構成されるものと考えられる概念上の機能処理ユニットと共に概略的に示す図である。
【図２】写真マットとミラーとの接合を示す図である。
【図３】３Ｄコンピュータモデルを生成すべき被写体オブジェクトの画像の記録をオブジェクト支持台及び写真マットと共に示す図である。
【図４ａ】、
【図４ｂ】、
【図４ｃ】、
【図４ｄ】、
【図４ｅ】、カメラの撮影位置及び向きと、オブジェクト支持台の高さの選択がカメラにより記録される入力画像にどのような影響を及ぼすかを示す図である。
【図５】図１の処理装置に入力されるオブジェクト、オブジェクト支持台及び写真マットの画像を示す図である。
【図６】入力データを処理するために図１の処理装置により実行される処理動作を示す図である。
【図７ａ】、
【図７ｂ】、
【図７ｃ】図６のステップＳ６−８で実行される処理動作を示す図である。
【図８】被写体オブジェクト及びオブジェクト支持台の３Ｄサーフェスモデルを生成するためにボクセルカービング演算を実行すべき図６のステップＳ６−１０の初期ボリュームの定義を示す図である。
【図９】図６のステップＳ６−１２で実行される処理動作を示す図である。
【図１０】図９のステップＳ９−２における仮想画像の画素データの作成を示す図である。
【図１１】第１の実施形態において図６のステップＳ６−１４で実行される処理動作を示す図である。
【図１２ａ】、
【図１２ｂ】、
【図１２ｃ】図１１のステップＳ１１−２及びS１１−４における可動平面の表示及び移動を示す図である。
【図１３】図１１のステップＳ１１−８でボクセルカービングを実行すべき初期ボリュームの再定義を示す図である。
【図１４】透明な上部を有する第２の実施形態のオブジェクト支持台を示す図である。
【図１５】第２の実施形態において図６のステップＳ６−１４で実行される処理動作を示す図である。
【図１６】別の実施形態においてユーザがカメラの撮影位置及び向きを選択するのを補助するためのマーカを有するオブジェクト支持台を示す図である。
【図１７】写真マットではなく、オブジェクト支持台に識別可能な特徴が設けられている、別の実施形態のオブジェクト支持台を示す図である。
【図１８】写真マット及びオブジェクト支持台に識別可能な特徴が設けられている、更に別の実施形態の写真マット及びオブジェクト支持台を示す図である。
【図１９】写真マットの代わりに識別可能な特徴を有する三次元キャリブレーションオブジェクトを使用する更に別の実施形態を示す図である。
【図２０ａ】、
【図２０ｂ】全ての実施形態において位置及び向きが可変である平面を使用して三次元コンピュータモデルをどのようにして編集するかを示す図である。
【図１】
0004497772.tif 000006
【図２】
0004497772.tif 000007
【図３】
0004497772.tif 000008
【図４ａ】
0004497772.tif 000009
【図４ｂ】
0004497772.tif 000010
【図４ｃ】
0004497772.tif 000011
【図４ｄ】
0004497772.tif 000012
【図４ｅ】
0004497772.tif 000013
【図５】
0004497772.tif 000014
【図６】
0004497772.tif 000015
【図７ａ】
0004497772.tif 000016
【図７ｂ】
0004497772.tif 000017
【図７ｃ】
0004497772.tif 000018
【図８】
0004497772.tif 000019
【図９】
0004497772.tif 000020
【図１０】
0004497772.tif 000021
【図１１】
0004497772.tif 000022
【図１２ａ】
0004497772.tif 000023
【図１２ｂ】
0004497772.tif 000024
【図１２ｃ】
0004497772.tif 000025
【図１３】
0004497772.tif 000026
【図１４】
0004497772.tif 000027
【図１５】
0004497772.tif 000028
【図１６】
0004497772.tif 000029
【図１７】
0004497772.tif 000030
【図１８】
0004497772.tif 000031
【図１９】
0004497772.tif 000032
【図２０ａ】
0004497772.tif 000033
【図２０ｂ】
0004497772.tif 000034