(57)【特許請求の範囲】
【請求項１】
被写体オブジェクトの３次元コンピュータモデルを生成する生成装置であって、
識別可能な複数の特徴を有する校正パターンを出力する出力装置の詳細を定義するデータと、該出力された校正パターンとともに撮影される前記被写体オブジェクトの特性を定義するデータとを、ネットワークを介して接続されたコンピュータ処理装置より受信する第１の受信手段と、
前記第１の受信手段により受信された前記データに基づいて生成された、前記校正パターンを前記出力装置にて出力するための指令を、前記コンピュータ処理装置へと送信することにより、前記コンピュータ処理装置側において出力可能とする送信手段と、
前記被写体オブジェクト及び前記出力された校正パターンを複数の異なる位置及び方向より撮影した複数の画像に対応する複数の画像データを前記コンピュータ処理装置より前記ネットワークを介して受信する第２の受信手段と、
前記校正パターンを定義するデータに基づいて、前記コンピュータ処理装置より受信した前記複数の画像データのうち少なくとも一部が撮影されたときの位置及び方向を計算する計算手段と、
前記計算手段により計算された位置及び方向の情報に基づいて前記複数画像データを合成することにより、前記被写体オブジェクトの３次元コンピュータモデルを生成する生成手段と
を備えることを特徴とする３次元コンピュータモデルの生成装置。
【請求項２】
前記計算手段は、前記撮影された画像中の前記校正パターン上のマークの変化から、前記画像に対応する前記被写体オブジェクトの撮影位置及び方向を計算することを特徴とする請求項１に記載の３次元コンピュータモデルの生成装置。
【請求項３】
前記コンピュータ処理装置側には、前記出力装置として、前記校正パターンを印刷する印刷装置が備えられていることを特徴とする請求項１に記載の３次元コンピュータモデルの生成装置。
【請求項４】
前記コンピュータ処理装置側には、前記出力装置として、前記校正パターンを表示する表示装置が備えられていることを特徴とする請求項１に記載の３次元コンピュータモデルの生成装置。
【請求項５】
前記校正パターンを印刷するための前記印刷装置を前記コンピュータ処理装置が制御できるようにするため、前記指令は、複数の別個の記録媒体にそれぞれ印刷されるべき複数の部分として定義されていることを特徴とする請求項３に記載の３次元コンピュータモデルの生成装置。
【請求項６】
被写体オブジェクトの３次元コンピュータモデルを生成する生成方法であって、
識別可能な複数の特徴を有する校正パターンを出力する出力装置の詳細を定義するデータと、該出力された校正パターンとともに撮影される前記被写体オブジェクトの特性を定義するデータとを、ネットワークを介して接続されたコンピュータ処理装置より受信し、
前記受信された前記データに基づいて生成された、前記校正パターンを前記出力装置にて出力するための指令を、前記コンピュータ処理装置へと送信することにより、前記コンピュータ処理装置側において出力可能とし、
前記被写体オブジェクト及び前記出力された校正パターンを複数の異なる位置及び方向より撮影した複数の画像に対応する複数の画像データを前記コンピュータ処理装置より前記ネットワークを介して受信し、
前記校正パターンを定義するデータに基づいて、前記コンピュータ処理装置より受信した前記複数の画像データのうち少なくとも一部が撮影されたときの位置及び方向を計算し、
前記計算された位置及び方向の情報に基づいて前記複数画像データを合成することにより、前記被写体オブジェクトの３次元コンピュータモデルを生成することを特徴とする３次元コンピュータモデルの生成方法。
【請求項７】
前記撮影された画像中の前記校正パターン上のマークの変化から、前記画像に対応する前記被写体オブジェクトの撮影位置及び方向を計算することを特徴とする請求項６に記載の３次元コンピュータモデルの生成方法。
【請求項８】
前記コンピュータ処理装置側には、前記出力装置として、前記校正パターンを印刷する印刷装置が備えられ、前記コンピュータ処理装置は、該印刷装置を介して前記校正パターンを印刷する印刷工程を実行可能であることを特徴とする請求項６に記載の３次元コンピュータモデルの生成方法。
【請求項９】
前記コンピュータ処理装置側には、前記出力装置として、前記校正パターンを表示する表示装置が備えられ、前記コンピュータ処理装置は、該表示装置を介して前記校正パターンを表示する表示工程を実行可能であることを特徴とする請求項６に記載の３次元コンピュータモデルの生成方法。
【請求項１０】
前記コンピュータ処理装置はインターネットを介して接続され、データが送信されることを特徴とする請求項６乃至９に記載の３次元コンピュータモデルの生成方法。
【請求項１１】
前記校正パターンを印刷するための前記印刷装置を前記コンピュータ処理装置が制御できるようにするため、前記指令は、複数の別個の記録媒体にそれぞれ印刷されるべき複数の部分として定義されていることを特徴とする請求項８に記載の３次元コンピュータモデルの生成方法。
【請求項１２】
被写体オブジェクトの３次元コンピュータモデルを生成する生成装置とネットワークを介して接続されたコンピュータ処理装置における被写体オブジェクトの３次元コンピュータモデルの生成方法であって、
識別可能な複数の特徴を有する校正パターンを出力する出力装置の詳細を定義するデータと、該出力された校正パターンとともに撮影される前記被写体オブジェクトの特性を定義するデータとを、前記生成装置に送信し、
前記データに基づいて生成された、前記校正パターンを前記出力装置にて出力するための指令を、前記生成装置より受信して出力可能とし、
前記被写体オブジェクト及び前記出力された校正パターンを用いて、複数の異なる位置及び方向より撮影した複数の画像に対応する複数の画像データを前記生成装置へと送信し、
前記コンピュータ処理装置側に格納されている前記校正パターンを定義するデータに基づいて、前記送信した複数の画像データのうち少なくとも一部が撮影されたときの位置及び方向を計算させ、
前記計算された位置及び方向の情報に基づいて前記複数画像データを合成することにより生成された、前記被写体オブジェクトの３次元コンピュータモデルを受信することを特徴とする３次元コンピュータモデルの生成方法。
【請求項１３】
前記撮影された画像中の前記校正パターン上のマークの変化から、前記画像に対応する前記被写体オブジェクトの撮影位置及び方向を計算させることを特徴とする請求項１２に記載の３次元コンピュータモデルの生成方法。
【請求項１４】
前記コンピュータ処理装置側には、前記出力装置として、前記校正パターンを印刷する印刷装置が備えられ、前記コンピュータ処理装置は、前記ネットワークを介して受信した前記校正パターンを、該印刷装置によって印刷する工程を実行可能であることを特徴とする請求項１２に記載の３次元コンピュータモデルの生成方法。
【請求項１５】
前記コンピュータ処理装置側には、前記出力装置として、前記校正パターンを表示する表示装置が備えられ、前記コンピュータ処理装置は、該表示装置を介して前記校正パターンを表示する表示工程を実行可能であることを特徴とする請求項１２に記載の３次元コンピュータモデルの生成方法。
【請求項１６】
前記コンピュータ処理装置はインターネットを介して接続され、データが送信されることを特徴とする請求項１２乃至１５に記載の３次元コンピュータモデルの生成方法。
【請求項１７】
前記校正パターンを印刷するための印刷装置を制御可能とするため、前記指令は、複数の別個の記録媒体にそれぞれ印刷されるべき複数の部分として定義されていることを特徴とする請求項１２に記載の３次元コンピュータモデルの生成方法。
【請求項１８】
請求項６乃至１１の少なくとも１項に記載の方法をコンピュータによって実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
本発明は、オブジェクトの画像の記録と、画像が記録された位置及び向きを判定し且つオブジェクトの３次元（３Ｄ）コンピュータモデルを定義するデータを生成するための画像データの処理とに関する。
【０００２】
オブジェクトの３Ｄコンピュータモデルは多くの用途で有用である。特に、現在ではインターネットサイトの装飾などの用途に、オブジェクトの３Ｄコンピュータモデルを使用することが一般大衆からますます求められるようになってきている。
【０００３】
しかし、オブジェクトの３Ｄコンピュータモデルを生成するための従来の製品は高価であるばかりでなく、相当に大きな処理資源（すなわち、少なくとも処理能力または処理時間）を必要とする。従って、ユーザが３Ｄコンピュータモデリングパッケージを利用できる範囲は限定されてしまう。
【０００４】
本発明はこの点を考慮してなされたものである。
【０００５】
本発明によれば、オブジェクトを校正パターンと同時に撮影し、画像処理することで画像が記録された位置及び向きを判定し、さらに画像と位置と向きとを処理することで、オブジェクトの３Ｄコンピュータモデルを生成するという技法を用いる、オブジェクトの３次元コンピュータモデル生成のためのシステム又は方法が提供される。校正パターンを定義するデータは第１のコンピュータ処理装置に格納されており、顧客コンピュータ処理装置へ送信されることで、顧客コンピュータ処理装置が校正パターンを印刷又は表示することができる。次に、校正パターンと共に被写体オブジェクトの画像を記録して、それを第１の装置に戻し、第１の装置は校正パターンを定義する格納データを使用して処理を実行し、画像が記録された位置及び向きを判定する。その後、計算された位置及び向きを使用して、被写体オブジェクトの３次元コンピュータモデルを生成する。
【０００６】
校正パターンを定義するデータを第１の装置に格納し、校正パターンデータを顧客装置へ送信し、撮影位置及び向きの計算を第１の装置で実行することにより、ユーザは高価な処理製品を購入したり、装置に高い処理負荷をかけて稼働させる必要がなくなる。その代わりに計算にコストがかかる処理をメーカー側の装置で実行でき、ユーザはメーカーが提供する処理サービスを使用するたびに少額の料金を支払えば良い。これは、校正パターンデータをユーザへ送信し、返信された画像中に現れる校正パターンを定義するデータを格納することによって可能になる。
【０００７】
また、本発明は上記のシステムを構成する個々の装置を提供する。
【０００８】
本発明は、上記のシステムで使用するためのプログラムを実行可能な装置を構成するためのコンピュータプログラム製品を更に提供する。
【０００９】
次に、添付の図面を参照して、一例として本発明の実施形態を説明する。
【００１０】
図１を参照すると、本発明の第１の実施形態は、インターネットなどの通信ネットワーク８を介して信号７を送信することによりデータを交換するように接続された複数のコンピュータ処理装置２、４、６を具備する。
【００１１】
この実施形態では、各処理装置２、４は顧客により使用される装置であり、従来のパーソナルコンピュータモニタなどの表示装置１４と、デジタルカメラ１６が接続されている。更に、処理装置２にはプリンタ１８が接続されており、処理装置４にはＷＡＣＯＭ製のＰＬ４００などの、画素単位で表示制御可能なフラット表示パネル１９が接続されている。
【００１２】
各々の処理装置２、４は、入力されるプログラミング命令に従って動作するようにプログラムされた従来のパーソナルコンピュータであり、プログラミング命令は、少なくとも、例えば、ディスク１０などのデータ記憶媒体に格納されるデータとして入力され、または、信号１２として入力され、信号１２は、少なくとも、例えばインターネット８などの通信ネットワークを介する送信又は無線送信により遠隔データベースから処理装置２、４に入力され、またはキーボード（図示せず）などのユーザ入力装置を介してユーザにより入力される。各処理装置２、４に対するプログラミング命令はコンパイル済みコンピュータ実行可能フォーマット、又はコンパイル済みフォーマットに変換されるべきフォーマット（ソースコードなど）のいずれかにより提供される。
【００１３】
処理装置６は３Ｄモデリングサービスプロバイダにより提供される。この実施形態では、処理装置６は、従来の通りに１つ以上のプロセッサ、メモリ、グラフィックスカードなどを含む従来のプログラマブルコンピュータである。
【００１４】
処理装置６は、入力されるプログラムミング命令に従って動作するようにプログラムされ、プログラミング命令は、少なくとも、例えば、ディスク２０などのデータ記憶媒体に格納されているデータとして入力され、または、信号２２として入力され、信号２２は、少なくとも、例えばインターネット８などの通信ネットワークを介する送信又は無線送信により遠隔データベースから処理装置６に入力され、またはキーボード（図示せず）などのユーザ入力装置を介してユーザにより入力される。処理装置６に対するプログラミング命令はコンパイル済みコンピュータ実行可能フォーマット、又はコンパイル済みフォーマットに変換されるべきフォーマット（ソースコードなど）のいずれかにより提供される。
【００１５】
以下に更に詳細に説明するように、プログラミング命令が処理装置６を動作させることで、ユーザからの支払いを処理し、有効な支払いに応じて、接続している顧客コンピュータ処理装置４、６に指令を送信するとともに、顧客装置では当該指令に基づき校正パターンを印刷するようプリンタ１８を制御し、それにより、本実施形態では、特殊な特徴パターンを有する写真マット２４から構成される校正オブジェクトを形成するか、或いは指令に基づき校正パターンを表示するよう表示パネル１９を制御し、校正パターンの特徴を表示する表示パネルが写真マットと同様に機能するようになる。プログラミング命令は、更に、処理装置６を動作させることで、顧客コンピュータ処理装置２、４から受信された、被写体オブジェクト及び写真マットの画像を定義するデータを処理し、画像中の写真マットパターン（校正パターン）の特徴の位置の検出に基づいて、画像が記録されたときの位置及び向きを計算するとともに、当該算出された位置及び向きを用いて、被写体オブジェクトの３次元コンピュータモデルを定義し、支払い済みのユーザに送信する。プログラミング命令によりプログラムされる場合、処理装置６は処理動作を実行するためのいくつかの機能ユニットとして構成されていると考えることができる。そのような機能ユニットの例と、その相互接続関係を図１に示す。しかし、図１に示すユニット及びその相互接続関係は概念上のものであって、理解を助けるために例示を目的として示されているにすぎず、処理装置６のプロセッサ、メモリなどが構成されるユニット及び接続を必ずしも表現していない。
【００１６】
図１に示す機能ユニットにおいて、中央制御装置３０はその他の機能ユニットの制御及び処理を実行し、メモリ３２は中央制御装置３０及びその他の機能ユニットによって使用されるために設けられている。
【００１７】
入出力インタフェース３４は、接続されている顧客コンピュータ処理装置２、４へ信号７を出力し且つ顧客コンピュータ処理装置２、４から信号７を受信するために配置されている。
【００１８】
支払い制御装置３６は、顧客コンピュータ処理装置２、４からの支払いを獲得し且つ検査するための処理動作を実行するように構成されている。
【００１９】
マットデータ発生器３８は、用紙などの記録媒体上に校正パターンを印刷して写真マット２４を形成するために、顧客の処理装置２にプリンタ１８を制御させることができるように顧客の処理装置２へ信号７として送信される制御信号、又は校正パターンを表示して写真マットを形成するために、顧客の処理装置４に表示パネル１９を制御させることができるように顧客の処理装置４へ信号７として送信される制御信号を発生する。以下に更に詳細に説明するが、写真マットは複数の特徴を有するパターン（校正パターン）により構成されており、３次元コンピュータモデルを生成すべき被写体オブジェクトは印刷された写真マット３４の上に配置されるか、又は写真マットを表示している表示パネル１９上に配置される。写真マット上の被写体オブジェクトの画像は、その後、カメラ１６により記録されて、信号７として処理装置６に戻され、処理される。マットデータ発生器３８は、校正パターンを定義するデータをメモリ３２に格納しているが、当該校正パターンは、印刷または表示されることで写真マットを構成するとともに、受信画像が記録されたときの位置及び向きの算出において処理装置６によって用いられる。
【００２０】
カメラ位置・向き計算器４０は被写体オブジェクト及び印刷又は表示された写真マットの複数の画像を定義する受信データを処理して、各々の画像が記録されたときのカメラ１６の位置及び向きを計算する。
【００２１】
３Ｄモデルデータ発生器４２は画像を定義する受信データと、画像が記録されたときの位置及び向きを定義するデータとを処理して、画像中のオブジェクトの３Ｄコンピュータモデルを定義するデータを生成する。
【００２２】
図２Ａ、Ｂは、第１の実施形態において処理装置６及び顧客コンピュータ処理装置２、４の一方により実行される処理動作を示す。処理装置６と、顧客コンピュータ処理装置との通信は通信ネットワーク８を介して信号７の送信により実行される。
【００２３】
図２Ａ、Ｂを参照すると、ステップＳ２−２で、顧客処理装置２、４は３Ｄモデリングサービスを求めて処理装置６へ要求を送信する。
【００２４】
ステップＳ２−４で、処理装置６の支払い制御装置３６はその要求をロギングし、ステップＳ２−６で支払いの詳細、例えば、クレジットカードの番号又は顧客が処理装置６のオペレータと取り引きしている銀行口座のＩＤなどを要求する信号を顧客処理装置へ送信する。
【００２５】
ステップＳ２−８で、顧客処理装置は支払要求を受信し、ステップＳ２−１０で要求された支払いの詳細を送信する。
【００２６】
ステップＳ２−１２で、処理装置６の支払い制御装置３６は顧客処理装置により送信された支払いの詳細を受信し、例えば、認証機関でクレジットカードによる支払いを確認するため又は顧客の銀行口座の残高がプラスになっているか否かを検査するために詳細を検査する。
【００２７】
ステップＳ２−１２で、十分な支払いがなされたことを判定し、次のステップＳ２−１４では、マットデータ発生器３８が写真マットを印刷又は表示すべきプリンタ１８又は表示パネル１９の種類を定義するデータと、写真マット上に配置されるべきオブジェクトのいずれかの方向の最大幅を定義するデータとを顧客処理装置から要求する。
【００２８】
ステップＳ２−１６で、顧客処理装置はプリンタ／表示装置の詳細及びオブジェクトの大きさに関する要求を受信し、ステップＳ２−１８で要求された詳細を処理装置６へ送信する。
【００２９】
ステップＳ２−２０で、マットデータ発生器３８は写真マットの校正パターンをメモリ３２に事前に格納されている複数のパターンの中から無作為に選択し、どのパターンが選択されたかを定義するデータをメモリ３２に格納する。
【００３０】
特に、この実施形態では、例えば、Image and Vision Computing１７（１９９９年）の１２５〜１３４ページのNiemによる「Automatic Recostruction of 3D Objects Using a Mobile Camera」に記載されているような、寸法が分かっている半径方向線分により結合された複数の同心円と、各象限にある位置マーカとから構成される校正パターン、例えば、Computer Graphics Proceedings, Annual Conference Series 1996 ACM−0−89791−764−4／96／008のGorter他による「The Lumigraph」に記載されているような、半径の異なる複数の同心円から構成されるパターン、例えば、JP−A−9−170914に記載されているような、各ドットが固有の点であるようにそれぞれ異なる色調／輝度の組み合わせを有する複数の着色ドットから構成されるパターン、及び、例えば、英国特許出願9927678.4及び0012812.4からの優先権を主張し且つ代理人書類番号CFP1662WO 2714299を有し、当該出願と同時に出願された譲受人のＰＣＴ出願（その内容は全て参考として当該出願に取り入れられている）に記載されているような、特徴の空間クラスタから構成されるパターンがメモリ３２に格納されている。
【００３１】
この実施形態では、写真マット上の特徴は、被写体オブジェクトが配置されるべき空いた中央領域の周囲に配列されている。マットデータ発生器３８は空いた中央領域の直径を顧客処理装置から受信されるデータで定義されているオブジェクトの最大幅より大きくなるように選択する。これにより、マット上にオブジェクトをのせたときに、写真マット上の校正パターンの特徴は、見えるように位置決めされることになる。
【００３２】
ステップＳ２−２２で、マットデータ発生器３８は、ステップＳ２−２０で選択された校正パターンを有する写真マットをプリンタ１８に印刷させるために顧客処理装置により使用されるべき、又はステップＳ２−２０で選択された校正パターンを含む写真マットを表示パネル１９に表示させるために処理装置４により使用されるべき指令ファイルを生成する。特に、この実施形態では、マットデータ発生器３８は顧客装置から受信し詳細データにおいて定義されているプリンタ又は表示装置の種類に応じて指令ファイルを生成するので、指令ファイル中の命令は顧客処理装置に接続するプリンタ又は表示パネルを顧客装置が制御するのに適している。
【００３３】
ステップＳ２−２４で、ステップＳ２−２２で生成された指令ファイルを処理装置６から顧客処理装置へ送信する。
【００３４】
ステップＳ２−２６で、顧客処理装置は処理装置６から送信されてきた受信指令ファイルを格納し、ステップＳ２−２８で、顧客処理装置はその指令ファイルを使用して、写真マット２４を形成するためにプリンタ１８を使用して校正パターンを印刷するか、又は表示パネル１９上に写真マットを形成するために校正パターンを表示する。
【００３５】
写真マットを印刷又は表示した後、３Ｄコンピュータモデルを生成すべき被写体オブジェクト（１つ以上）を写真マットの空いた中央部分上に、オブジェクトがマット上の校正パターンの特徴により包囲されるように配置する。
【００３６】
次に、被写体オブジェクトの複数の異なる部分を示すために、カメラ１６を使用してオブジェクト及び写真マットの画像を複数の異なる位置と向きで記録する。特に、この実施形態では、カメラ１６を固定位置（例えば、三脚）に固定したままで、被写体オブジェクトをのせた写真マットを移動（並進運動）させ且つ回転させて、カメラ１６に対して複数の異なる位置と向きで被写体オブジェクトの写真を記録する。写真マットを回転させ、並進運動させている間、被写体オブジェクトはマットに対して動かない。
【００３７】
ステップＳ２−３０で、顧客処理装置は写真マット上にのせた被写体オブジェクトを示す記録画像を定義するデータを受信し、ステップＳ２−３２でその画像データを処理装置６へ送信する。
【００３８】
図２Ａ、Ｂでは、以上説明したステップＳ２−２６からＳ２−３２は間断なく実行するとして示されている。しかし、ステップＳ２−２６で指令ファイルを受信し、格納した後、顧客処理装置のユーザがステップＳ２−２８を実行し、被写体オブジェクト及び校正パターンの画像を記録し、その画像データを顧客処理装置に入力する間に、顧客処理装置と処理装置６の接続が遮断される場合もある。校正パターンを印刷又は表示するステップ、被写体オブジェクト及び校正パターンの画像を記録するステップ、及び画像データを顧客処理装置に入力するステップは、ステップＳ２−２６で指令ファイルを受信し、格納した直後に実行される必要はない。例えば、これらのステップが１日以上経過した後に実行されることもある。同様に、ステップＳ２−２８で校正パターンを印刷又は表示してから１日以上経過した後に、被写体オブジェクト及び校正パターンが撮影される場合もある。従って、顧客処理装置から処理装置６へ画像データを送信するためにステップＳ２−３２が実行されるときに、顧客処理装置からネットワーク８を介して処理装置６に至る接続を再度確立させる必要が生じるであろう。
【００３９】
ステップＳ２−３４で、処理装置６は顧客処理装置から受信した画像データをメモリ３２に格納し、ステップＳ２−３６でその画像データを処理して、画像ごとのカメラ１６の位置及び向きを計算する。
【００４０】
特に、ステップＳ２−３６では、カメラ位置・向き計算器４０が、まず、画像を記録したカメラ１６の固有パラメータの値（すなわち、縦横比、焦点距離、主点、１次半径方向歪み係数及びスキュー角）を従来の方法、例えば、Applications of Invariance in Computer Vision（Mundy Zisserman及びForsyth Edsの２３７〜２５６ページ、Azores，１９９３年）に掲載されたHartleyの「Euclidean Recostruction from Uncalibrated Views」に記載されているような方法により計算するための処理を実行する。次に、カメラ位置・向き計算器４０は、画像ごとに、画像中の写真マット上の校正パターンの特徴を検出し、特徴にラベル付けし（すなわち、画像中で検出される各々の特徴と、先にステップＳ２−２０でメモリ３２に格納されたデータで定義されている校正パターンの特徴との１対１の対応を識別し）、その１対１の対応を使用して、画像が記録された位置及び向きを計算するための処理を実行する。特に、この実施形態では、特徴を検出して、ラベル付けし、カメラ位置及び向きを計算するための処理は、Image and Vision Computing１７（１９９９年）の１２５〜１３４ページに掲載されたNiemの「Automatic Reconstruction of 3D Objects Using a Mobile Camera」、Computer Graphics Proceedings，Annual Conference Series，1996ACM−0−89791−764−4/96/008に掲載されたGortler他の「The Lumigraph」、JP-A-9-170914又は英国特許出願9927678.4及び0012812.4からの優先権を主張し、代理人書類番号CFP1662WO2714299を有し、当該出願と同時に出願された譲受人のＰＣＴ出願に記載されているように、ステップＳ２−２０で選択されたマットパターンに応じて実行される。
【００４１】
ステップＳ２−３８で、処理装置６の３Ｄモデルデータ発生器４２は先にステップＳ２−３４で格納された画像データと、ステップＳ２−３６で計算された各画像の位置及び向きとを使用して処理を実行し、被写体オブジェクトの３Ｄ面のコンピュータモデルを定義するデータを生成すると共に、その面モデルのテクスチャデータを生成する。この処理は、Image and Vision Computing１７（１９９９年）の１２５〜１３４ページに掲載されたNiemの「Automatic Reconstruction of 3D Objects Using a Mobile Camera」、Computer Graphics Proceedings，Annual Conference Series、1996ACM−0−89791−764−4/96/008に掲載されたGortler他の「The Lumigraph」、JP-A-9-170914又は英国特許出願9927678.4及び0012812.4からの優先権を主張し、代理人書類番号CFP1662WO2714299を有し、当該出願と同時に出願された譲受人のＰＣＴ出願に記載されている技法の１つを使用して実行される。
【００４２】
ステップＳ２−４０で、３Ｄモデルデータ発生器４２は、ステップＳ２−３８で生成された３Ｄコンピュータモデルを定義するデータを含む信号７を顧客処理装置へ送信する。
【００４３】
ステップＳ２−４２で、処理装置６により送信された３Ｄデータファイルを顧客処理装置に格納し、ステップＳ２−４４で、３Ｄコンピュータモデルの１つ以上の画像をユーザが選択した視線方向からレンダリングし且つ表示装置１４によりユーザに対して表示する。
【００４４】
ステップＳ２−４６で、顧客処理装置は、３Ｄモデルが許容しうる水準に達しているか否かを定義するユーザからの入力信号を読み取る。
【００４５】
ステップＳ２−４６で３Ｄコンピュータモデルが許容できると判定された場合、ステップＳ２−４８で、先にＳ２−４２で格納されていた３Ｄデータファイルは従来のようにインターネット８により他の装置を介してアクセスできる状態になる。
【００４６】
これに対し、ステップＳ２−４６で３Ｄコンピュータモデルが許容できないと判定された場合には、ステップＳ２−３０からＳ２−４６を繰り返す。すなわち、写真マット上の被写体オブジェクトの他の画像を記録して、処理装置６へ送信し、処理装置６はそれらの他の画像を使用して３Ｄコンピュータモデルを修正、改善するための処理を実行し、改善されたモデルを顧客処理装置へ送信する。満足な３Ｄコンピュータモデルが生成されるまで、ステップＳ２−３０からＳ２−４６を繰り返す。
【００４７】
図３は、第２の実施形態の構成要素を示す。
【００４８】
第２の実施形態では、第１の実施形態と同じ構成要素に同じ図中符号が付されており、それらの構成要素については先に既に説明してあるため、ここでは説明を省略する。
【００４９】
第１の実施形態の構成要素と第２の実施形態の構成要素との相違点は、第１に各顧客コンピュータ処理装置２、４に画像データ記憶装置５０が設けられていることと、第２に、第１の実施形態では処理装置６に設けられていた３Ｄモデルデータ発生器４２が各顧客コンピュータ処理装置２、４に設けられていることである。その他の構成要素は全て同じである。
【００５０】
図４Ａ、Ｂは、第２の実施形態における処理動作を示す。
【００５１】
図４Ａ、Ｂを参照すると、ステップＳ４−２からＳ４−３０は第１の実施形態のステップＳ２−２からＳ２−３０と同じであるので、ここでは説明を省略する。
【００５２】
第１の実施形態では、被写体オブジェクト及び写真マットの画像を定義するデータを顧客処理装置２、４から処理装置６へ送信し、そこでデータを処理して、各画像の位置と向きを計算し、被写体オブジェクトの３Ｄコンピュータモデルを定義するデータを生成する。次に、３Ｄコンピュータモデルを定義する３Ｄデータファイルを処理装置６から顧客処理装置に戻す。
【００５３】
しかし、第２の実施形態では、各画像が記録された位置及び向きを計算するための処理は同様に処理装置６で実行されるが、被写体オブジェクトの３Ｄコンピュータモデルを定義するデータを生成するための処理は顧客処理装置２、４で実行される。
【００５４】
特に、図４Ｂにおいて、ステップＳ４−３２で被写体オブジェクト及び写真マットの画像を顧客コンピュータ処理装置の画像データ記憶装置５０に格納する。
【００５５】
ステップＳ４−３４で、ステップＳ４−３２で格納された画像データをコピーして、顧客コンピュータ処理装置から処理装置６へ送信する。
【００５６】
ステップＳ４−３６で、処理装置６は受信した画像データをメモリ３２に格納し、ステップＳ４−３８で、カメラ位置・向き計算器４０が画像ごとのカメラ１６の位置及び向きを計算するための処理を実行する。ステップＳ４−３８は第１の実施形態のステップＳ２−３６と同じであるので、ここでは重ねて説明をしない。
【００５７】
ステップＳ４−４０で、処理装置６はステップＳ４−３８で計算された画像の位置及び向きを定義するデータファイルを顧客処理装置へ送信する。
【００５８】
ステップＳ４−４２で、顧客コンピュータ処理装置は位置及び向きを定義するデータファイルを格納し、ステップＳ４−４４では先にステップＳ４−３２で格納された画像データと、Ｓ４−４２で格納された位置及び向きとを使用して、被写体オブジェクトの３Ｄコンピュータモデルを定義するデータを生成する処理を実行する。ステップＳ４−４４はステップＳ２−３８と同じように実行されるので、ここでは説明を省略する。
【００５９】
ステップＳ４−４６からＳ４−５０は第１の実施形態のステップＳ２−４４からＳ２−４８と同じであるので、ここでは重ねて説明をしない。
【００６０】
本発明の範囲内で上記の実施形態に対して数多くの変形を実施することが可能である。
【００６１】
例えば、被写体オブジェクトを写真マットの上にのせる必要はない。特に、被写体オブジェクトをマットの横に配置し、各々の画像でオブジェクトと校正パターンの少なくとも一部が見えるように画像を記録しても良い。従って、写真マットは水平面にある必要がない。例えば、被写体オブジェクトの背後の垂直面にマットを掛けておいても良い。
【００６２】
上述の実施形態においては、処理装置６から顧客コンピュータ処理装置へ送信されるプリンタ命令はプリンタ１８にオブジェクトの大きさに従って写真マット２４を印刷するように命令する。オブジェクトが大きいために、写真マット２４を１枚のシート紙に印刷できない場合には、マットデータ発生器３８は複数枚のシート紙に写真マット２４の校正パターンの別々の部分を印刷するようにプリンタ１８を制御するためのデータを生成しても良く、その後、それらのシート紙を並べて写真マット２４を形成する。
【００６３】
あるいは、マットデータ発生器３８は、校正パターンの異なる部分を別々のシートに印刷するようにプリンタ１８を制御するためのデータを生成しても良いし、校正パターンの特徴が処理装置６に格納されている既知の所定の位置に来るように別々のシートを組み合わせて１つの写真マット２４を形成する代わりに、相互に関連する校正パターンの部分の位置を予め決めず、校正パターンの異なる部分が印刷された別々のシートを、被写体オブジェクトの周囲に、ユーザが選択した位置と向きで配置するようにしてもよい。
【００６４】
その後、被写体オブジェクトと、別々のシートに印刷された校正パターンの異なる部分の画像とを、撮影カメラ１６を被写体オブジェクト及びシートに対して移動させることにより、少なくとも異なる位置または向きで記録することになる。
【００６５】
各々の入力画像において、（マットデータ発生器が印刷すべき特徴を定義するデータを送信するために）校正パターンの各部分の特徴はわかるが、被写体オブジェクトの周囲にある校正パターンのそれぞれ異なる部分の相対的な位置関係はわからない。従って、カメラ位置・向き計算器４０は、メモリ３２に格納されている校正パターンの所定の特徴を検出するために各画像を検索することにより、各画像における校正パターンの特徴を検出するための処理を実行し、次に、検出された特徴を使用して、画像の互いに対する位置及び向きを計算する。
【００６６】
特に、カメラ位置・向き計算器４０は上述の実施形態で説明したように入力画像の所定の校正パターンの特徴を検出するので、カメラ位置・向き計算器４０は各入力画像の特徴と格納されている校正パターンの特徴との間に１対１の対応関係を確立する。従って、それらの１対１の対応関係は異なる入力画像における、互いに対応する特徴、すなわち、異なる入力画像の間で互いに整合する特徴を定義する。これは、それぞれ異なる入力画像にあらわれた、格納された同じ校正パターンに対応する特徴が、互いに対応（整合）するためである。
【００６７】
従って、カメラ位置・向き計算器４０は、入力画像ごとに、入力画像における互いに整合する特徴を使用してカメラ１６の相対的な位置及び向きを計算するための処理を実行する。
【００６８】
整合する特徴と入力画像とが検出された後に相対的な撮影位置と向きとを計算する技法は数多く知られている。例えば、欧州特許第０８９８２４５号及び欧州特許第０９０１１０５号に適切な処理が説明されている。
【００６９】
従って、要するにこの変形例においては、写真マットは各々が校正パターンの一部を含む複数の部分から構成されている。被写体オブジェクト及び写真マットの画像を処理するとき、校正パターンの特徴はわかっており、処理装置６に事前に格納されているので、各入力画像に対してカメラ位置・向き計算器４０を用いて確実にそれを検出できる。その後、入力された画像はカメラ位置・向き計算器４０により処理され、検出された特徴を用いて相互の撮影位置及び向きを算出し、入力画像における整合する特徴を定義し、整合する特徴を用いて、従来の方法により相対的な位置及び向きを算出する。
【００７０】
更に、上述の実施形態では、被写体オブジェクトに校正パターンを装着し、校正パターンをのせたまま被写体オブジェクトに対してカメラを移動させて、少なくとも複数の異なる位置または向きで画像を記録しても良い。例えば、被写体オブジェクトの異なる面に１つ以上の校正パターンを装着しても良い。
【００７１】
上述の実施形態において、処理装置６は、写真マットを形成するために顧客処理装置に校正パターンを印刷又は表示させることを可能にする命令を、顧客処理装置から受信される被写体オブジェクトの大きさ以外の特性を定義するデータに応じて生成しても良い。例えば、処理装置６は、写真マット上の校正パターンの特徴が被写体オブジェクトと同じ色ではなく、そのために、被写体オブジェクトの特徴と容易に識別できるように、被写体オブジェクトの色に応じて命令を生成しても良い。
【００７２】
表示パネル１９は、写真マットの校正パターンを表示するどのような形態の表示装置から構成されていても良いであろう。例えば、表示パネル１９は、オブジェクトを写真マット上に配置すべき場合に、表示が水平になるように回転させることができる表示装置１４の表示であっても良いし、あるいは表示がほぼ垂直の平面にあるようにオブジェクトの背後に配置できても良いであろう。
【００７３】
上述の実施形態においては、被写体オブジェクトと共に撮影される校正オブジェクトは２次元写真マットの形態を有する。しかし、写真マットの代わりに、３次元校正オブジェクトを使用しても良い。例えば、マットデータ発生器３８は別々のシートに校正パターンの特徴を印刷するようにプリンタ１８を制御するための命令を生成し、その後、それらのシートを折りたたむか、又は立方体のような３次元オブジェクトに貼り付けても良い。その場合、校正パターンを貼り付けた立方体を３次元校正オブジェクトとして使用できる。
【００７４】
上述の実施形態では、ステップＳ２−２０及びステップＳ４−２０において、マットデータ発生器３８はメモリ３２に格納されているパターンの中から無作為に１つの校正パターンを選択する。しかし、校正パターンは別の方法によって選択されても良い。例えば、顧客のアイデンティティを判定し、選択された顧客に事前に校正パターンを割り当てても良い。更に、マットデータ発生器３８は顧客処理装置から受信される詳細データにおいて定義されているプリンタ／表示装置の特性に応じて校正パターンを選択しても良い。例えば、マットデータ発生器３８は、プリンタがカラープリンタであるか否か及びプリンタの解像度に応じて校正パターンを選択しても良い。このようにして、プリンタに適する特徴を有する校正パターンを選択することができる。
【００７５】
更に、顧客がサービスを要求したときに、その顧客のアイデンティティを判定し、プリンタ／表示装置の詳細を読み取ることにより、顧客がプリンタ／表示装置の詳細を送信する必要をなくすために、処理装置６は各顧客のプリンタ／表示装置の詳細を格納しても良い。
【００７６】
以上説明した実施形態においては、ステップＳ２−２２及びＳ４−２２で、マットデータ発生器３８は、プリンタ１８又は表示パネル１９を制御するために顧客処理装置により使用されるべき指令ファイルを生成する。しかし、プリンタ又は表示装置指令ファイルを生成送信する代わりに、マットデータ発生器はステップＳ２−２０及びＳ４−２０で選択された校正パターンを定義するデータを送信しても良い。顧客処理装置が校正パターンを印刷又は表示するようにプリンタ１８又は表示装置１９を制御するための独自の命令を生成することになるであろう。
【００７７】
上述の実施形態では、写真マット及び被写体オブジェクトの画像を記録するために使用されたカメラ１６の固有パラメータを計算するための処理はカメラ位置・向き計算器４０により実行される。しかし、その代わりに、顧客コンピュータ処理装置から処理装置６へ固有パラメータを送信しても良く、あるいは固有カメラパラメータの一部又は全てに対してデフォルト値を想定しても良い。
【００７８】
上述の実施形態では、各カメラ１６は顧客処理装置に接続するデジタルカメラである。しかし、各カメラ１６は顧客処理装置から分離していても良く、メモリ装置を介して又は一時的な接続などにより顧客処理装置へデータを転送しても良い。更に、写真マット及び被写体オブジェクトの画像を従来のフィルムカメラを使用して記録し、顧客コンピュータ処理装置に接続するスキャナを使用して写真を走査し、処理装置６へ送信すべきデジタル画像データを生成しても良い。
【００７９】
上述の実施形態では、３Ｄモデルデータ発生器４２により生成された３Ｄコンピュータモデルは顧客コンピュータ処理装置２、４ではなく、処理装置６によりインターネット８でアクセス可能な状態にされても良い。
【００８０】
上述の実施形態では、ステップＳ２−４６（図２Ｂ）又はステップＳ４−４８（図４Ｂ）で３Ｄモデルが許容できる水準に達していないことを判定した場合には、更に別の画像を記録処理することにより画像を改善する。しかし、それに加えて又はその代わりに、モデルを表示し、そのモデルを構成している点又は面を移動、追加又は削除することにより、ユーザとの対話を通してモデルを修正しても良い。
【００８１】
上述の実施形態では、処理装置６により写真マット印刷又は表示命令が送信される顧客コンピュータ処理装置２、４は、画像データが入力され（ステップＳ２−３０又はステップＳ４−３０）且つ画像データを処理装置６へ送信する（ステップＳ２−３２又はステップＳ４−３４）顧客処理装置でもある。しかし、写真マットを印刷又は表示するときと、入力画像データを受信し、画像データを処理装置６へ送信するときとで、異なる顧客コンピュータ処理装置を使用しても良い。例えば、処理装置６は処理装置２へ印刷命令を送信し、処理装置２はその命令を使用して、写真マット２４を印刷するようにプリンタ１８を制御しても良い。その後、カメラ１６を使用して写真マット２４と被写体オブジェクトを撮影し、その画像データを別の顧客処理装置４に入力し、顧客処理装置４がその画像データを処理装置６へ送信することも考えられる。
【００８２】
先の第１の実施形態においては、処理装置６は３Ｄモデルデータ発生器４２により生成された３Ｄコンピュータモデルを定義するデータファイルを、処理のためにコンピュータ処理装置６へ画像データを送信した顧客コンピュータ処理装置に戻す。しかし、その代わりに、３Ｄコンピュータモデルを定義するデータを別の顧客コンピュータ処理装置へ送信しても良い。例えば、処理装置６は顧客処理装置２へ印刷命令を送信し、顧客処理装置２はその命令を使用して写真マット２４を印刷するようにプリンタ１８を制御しても良い。また、その後、顧客コンピュータ処理装置２が処理のために画像データを処理装置６に戻しても良い。しかし、得られる３Ｄコンピュータモデルを定義するデータを処理装置２に戻す代わりに、処理装置６は３Ｄコンピュータモデルを定義するデータを別の処理装置４へ送信しても良い。
【００８３】
先に説明した第２の実施形態においては、ステップＳ４−３２で、顧客コンピュータ処理装置は、その後の使用のために画像データを格納しておき、画像の位置及び向きを定義するデータが処理装置６から受信されたときに、３Ｄコンピュータモデルを生成するために使用する。しかし、その代わりに、顧客処理装置が画像データを格納する必要をなくすために、処理装置６が画像データを各画像の位置及び向きを定義するデータと共に顧客処理装置に戻すようにしても良い。
【００８４】
先に説明した第２の実施形態では、各画像の位置及び向きを定義するデータは、画像データの処理のために処理装置６へ送信した顧客コンピュータ処理装置に戻される。しかし、位置及び向きの結果を定義するデータは画像データと共に別の顧客コンピュータ処理装置へ送信されても良い。例えば、処理装置６は処理装置２へ印刷命令を送信し、処理装置２はその命令を使用して、写真マット２４を印刷するようにプリンタ１８を制御し、その後、画像データを処理装置６に戻しても良い。そこで、処理装置６は各画像の位置と向きを計算し、計算した位置及び向きを受信した画像データと共に顧客コンピュータ処理装置４へ送信しても良い。顧客コンピュータ処理装置４は受信したデータを使用して、被写体オブジェクトの３Ｄコンピュータモデルを生成しても良い。
【００８５】
上述の実施形態では、２つの顧客処理装置２、４が処理装置６に接続すると説明していた。しかし、処理装置６に接続する顧客処理装置の数が１つ又は３つ以上であっても良いことは言うまでもない。
【００８６】
上述の実施形態では、処理装置６の機能処理ユニットは１つの装置の一部であると説明していた。しかし、機能コンポーネントは一体に動作して処理装置６を構成するいくつかの別個の装置に設けられていても良い。
【００８７】
上述の実施形態では、コンピュータ処理装置２、４、６を接続する通信ネットワーク８は１つのネットワークである。しかし、ネットワークは接続された複数のネットワークから構成されていても良い。コンピュータ処理装置２、４、６の１つ以上を無線接続（例えば、無線信号）を介してネットワークに接続しても良い。言うまでもなく、コンピュータ処理装置２、４、６の間の１箇所以上の接続は電話接続であっても良い。
【００８８】
上述の実施形態では、ステップＳ２−３８及びＳ４−４４で被写体オブジェクトの３Ｄコンピュータモデルを定義するデータを生成するための処理を実行し、ステップＳ２−４４及びＳ４−４６で３Ｄコンピュータモデルの画像を表示し、ステップＳ２−４８及びＳ４−５０で３Ｄコンピュータモデルを定義するデータをアクセスできる状態とする。しかし、これに加えて又はその代わりに、ステップＳ２−３６及びＳ４−３８で計算された撮影位置及び向きを使用して、被写体オブジェクトの物理モデルを作製するように製造機器を制御しても良い。例えば、被写体オブジェクトをモデル化するために材料を適切な寸法に切断するように切断装置を制御するためのデータを生成しても良い。
【００８９】
先に説明した実施形態においては、処理は、プログラミング命令により定義される処理ルーチンを使用してコンピュータにより実行される。しかし、処理の一部又は全てをハードウェアを使用して実行することも可能であろう。
【図面の簡単な説明】
【図１】  プログラミング命令によりプログラムされたときにコンピュータ構成要素が取り入れられると考えられる概念上の機能処理ユニットと共に、本発明の第１の実施形態の構成要素を概略的に示す図である。
【図２Ａ】  オブジェクトの３Ｄコンピュータモデルを定義するデータを生成するために図１のシステムの装置により実行される処理動作を示す図である。
【図２Ｂ】  オブジェクトの３Ｄコンピュータモデルを定義するデータを生成するために図１のシステムの装置により実行される処理動作を示す図である。
【図３】  プログラミング命令によりプログラムされたときにコンピュータ構成要素が取り入れられると考えられる概念上の機能処理ユニットと共に、本発明の第２の実施形態の構成要素を示す図である。
【図４Ａ】  オブジェクトの３Ｄコンピュータモデルを定義するデータを生成するために図３のシステムの装置により実行される処理動作を示す図である。
【図４Ｂ】  オブジェクトの３Ｄコンピュータモデルを定義するデータを生成するために図３のシステムの装置により実行される処理動作を示す図である。
【図１】
0003840109.tif 000002
【図２Ａ】
0003840109.tif 000003
【図２Ｂ】
0003840109.tif 000004
【図３】
0003840109.tif 000005
【図４Ａ】
0003840109.tif 000006
【図４Ｂ】
0003840109.tif 000007