三次元画像生成方法
【課題】低コストで三次元モデルを作成する。
【解決手段】本発明の実施形態に係る三次元モデル作成システム1によれば、各クライアント10の備えるカメラのカメラ情報や視線情報が、クライアント10毎に、事前にサーバ20に保存される。そして、各クライアント10は、撮像したペア画像から三次元モデルを作成したい場合、当該ペア画像をサーバ20に送信し、サーバ20が受信したペア画像と事前に記憶されているカメラ情報とに基づいて三次元モデルを作成する。従って、膨大な演算処理が必要な三次元モデル作成の処理は、サーバ20が全クライアント10の処理を代行して実施するため、クライアント10内の端末装置は、比較的安価に構成することができる。
【解決手段】本発明の実施形態に係る三次元モデル作成システム1によれば、各クライアント10の備えるカメラのカメラ情報や視線情報が、クライアント10毎に、事前にサーバ20に保存される。そして、各クライアント10は、撮像したペア画像から三次元モデルを作成したい場合、当該ペア画像をサーバ20に送信し、サーバ20が受信したペア画像と事前に記憶されているカメラ情報とに基づいて三次元モデルを作成する。従って、膨大な演算処理が必要な三次元モデル作成の処理は、サーバ20が全クライアント10の処理を代行して実施するため、クライアント10内の端末装置は、比較的安価に構成することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、三次元モデル作成システムに関する。
【背景技術】
【0002】
被写体を複数のカメラで撮影した画像から、被写体の三次元モデルを作成し、立体的に
表示する機能を有する撮像装置が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平05−303629号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
複数のカメラで撮像した画像から三次元モデルを作成するためには、膨大な演算処理を実行する必要がかかるため、上記撮像装置では、比較的高性能なコンピュータが必要であり、比較的高いコストがかかった。
【0005】
本発明は、上記実情に鑑みてなされたものであり、低コストで三次元モデルを作成することを可能にした三次元モデル作成システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため本発明の第1の観点に係る三次元モデル作成システムは、
複数の撮像装置を備えた複数のクライアントシステムと、該クライアントシステムのそれぞれとネットワークを介して接続されたサーバと、を備える三次元モデル作成システムであって、
前記クライアントシステムは、
各前記撮像装置が異なる方向から撮像した被写体の画像データを劣化させた画像データの組から三次元モデルを作成することを要求する、当該劣化させた画像データ及び当該撮像した撮像装置の識別情報を少なくとも含む三次元モデル作成要求データを作成する三次元モデル作成要求データ作成手段と、
前記ネットワークを介して、三次元モデル作成要求データ作成手段が作成した三次元モデル作成要求データを前記サーバに送信する三次元モデル作成要求手段と、を備え、
前記サーバは、
前記クライアントシステム毎に、該クライアントシステムが備える各撮像装置の識別情報と各撮像装置の属性及び撮像パラメータを含む撮像装置情報とを対応付けて記憶するクライアントシステム記憶手段と、
前記三次元モデル作成要求データの受信に応答して、該三次元モデル作成要求データに含まれる識別情報を有する撮像装置の撮像装置情報を前記クライアントシステム記憶手段から取得する撮像装置情報取得手段と、
前記撮像装置情報取得手段が取得した撮像装置情報に基づいて、三次元モデル作成要求データが要求する被写体の画像データの組からポリゴンによって構成される三次元モデルを作成する、三次元モデル作成手段と、
前記三次元モデル作成手段が作成した三次元モデルを、前記三次元モデル作成要求データの送信元であるクライアントシステムに送信する三次元モデル送信手段と、を備え、
前記クライアントシステムは、
前記サーバから受信した三次元モデルに、前記撮像装置が撮像した劣化前の画像をテクスチャとして貼り付けるテクスチャ貼付手段と、
前記テクスチャ貼付手段によりテクスチャが貼り付けられた三次元モデルを表示する表示手段をさらに備える、
ことを特徴とする。
【0007】
前記クライアントシステムは、
各撮像装置が所定の時間間隔で連続的に撮像した画像データを、当該画像の撮影された順番を示すフレーム番号と該撮像装置の識別情報とともに前記サーバに送信する連続画像送信手段、をさらに備え、
前記サーバは、前記連続画像送信手段が送信した画像データとフレーム番号と撮像装置の識別情報とを対応付けて蓄積記憶する画像記憶手段、をさらに備え、
前記三次元モデル作成要求データ作成手段は、三次元モデルの作成を要求する画像データのフレーム番号を含む前記三次元モデル作成要求データを作成し、
前記三次元モデル作成手段は、前記三次元モデル作成要求データに含まれる撮像装置の識別情報とフレーム番号とで特定される画像データの組を前記画像記憶手段から取得し、取得した画像データの組から三次元モデルを作成してもよい。
【0008】
前記三次元モデル作成要求データ作成手段は、前記クライアントシステムの認証用の情報を少なくとも含む三次元モデル作成要求データを作成し、
前記サーバは、
前記クライアントシステムから受信した前記三次元モデル作成要求データに含まれる認証用の情報に基づいて、当該クライアントシステムを認証する認証手段をさらに備えてもよい。
【発明の効果】
【0009】
本発明によれば、各クライアントシステムが撮像した画像から三次元モデルを作成する処理をサーバが行う。従って、低コストで三次元モデルを作成をすることが可能となる。
【図面の簡単な説明】
【0010】
【図1】本発明の実施形態に係る三次元モデル作成システムの構成を示す図である。
【図2】クライアントシステムの構成を示す図である。
【図3】被写体と各カメラの位置関係を示す図である。
【図4】サーバの構成を示す図である。
【図5】クライアントDBの構成例を示す図である。
【図6】クライアント登録処理を説明するためのフローチャートである。
【図7】登録要求データ及び登録応答データの構成例を示す図である。
【図8】パラメータ取得処理を説明するためのフローチャートである。
【図9】パラメータ取得処理を説明するためのフローチャートである。
【図10】被写体と表示装置の位置関係を示す図である。
【図11】カメラのパラメータ算出用のパターン画像の例を示した図である。
【図12】三次元モデル作成処理を説明するためのフローチャートである。
【図13】3次元モデル作成要求データ及び3次元モデル作成応答データの構成例を示す図である。
【図14】モデリング処理を説明するためのフローチャートである。
【図15】三次元モデル合成処理を説明するためのフローチャートである。
【図16】3次元モデル合成要求データ及び3次元モデル合成応答データの構成例を示す図である。
【図17】合成処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は下記の実施形態及び図面によって限定されるものではない。また、本発明の要旨を変更しない範囲で下記の実施形態及び図面に変更を加えることが出来る。また、図中同一または相当部分には同一符号を付す。
【0012】
本発明の実施形態に係る三次元モデル作成システム1について説明する。三次元モデル作成システム1は、図1に示すように、複数のクライアントシステム10(以下、単にクライアント10とする)と、サーバ20とを備える。各クライアント10とサーバ20とは、インターネットを介して相互通信可能に接続されている。
【0013】
各クライアント10は、図2に示すように、複数のカメラ11A〜11Fと、端末装置12と、表示装置13と、入力装置14を備える。
【0014】
各カメラ11A〜11Fは、レンズ、絞り機構、シャッタ機構、CCD(Charge Coupled Device)等を備え、被写体を撮像し、撮像した画像データを端末装置12に送信する。なお、カメラ11A〜11Fは、それぞれ、クライアント10内でそれぞれを識別可能なカメラIDが設定されている。
【0015】
なお、カメラ11A〜11Fのそれぞれを区別しない場合は、単にカメラ11と呼称する。また、必要に応じて、カメラ11A〜11Fが撮像した画像をそれぞれ、画像A〜画像Fとして説明する。なお、カメラ11の数は6に限定するものではなく、2以上の任意の数でよい。
【0016】
ここで、カメラ11の配置について説明する。各カメラ11A〜11Fは、図3に示すように被写体を取り囲むように配置されている。従って、カメラ11A〜11Fは、それぞれ、被写体を異なる方向から撮像することができる。なお、カメラ11は床やステージ等に固定されており、容易に動かせないものとするのが望ましい。
【0017】
図2に戻り、端末装置12は、例えば、PC(Personal Computer)等のコンピュータである。端末装置12は、外部I/F部121と通信部122と記憶部123と制御部124とを備える。
【0018】
外部I/F部121は、USB(Universal Serial Bus)やIEEE1394等の規格に準拠したコネクタ、又は、拡張スロットに挿入されるカメラ接続用のボード(基板)等から構成され、各カメラ11と接続するためのインタフェースである。
【0019】
通信部122は、NIC(Network Interface Card)等を備え、制御部124の指示に基づいて、インターネットを介して、サーバ20と情報の送受信を行う。
【0020】
記憶部は123は、RAM(Read Only Memory)、ROM(Rondom Access Memory)、ハードディスク装置等から構成され、各種の情報、各カメラ11が撮影した画像データ、及び、制御部124が実行するためのプログラム等を記憶する。また、記憶部123は、制御部124が処理を実行するためのワークエリアとして機能する。また、記憶部123は、サーバ20から送信された三次元モデル(ポリゴン情報)を保存する。
【0021】
制御部124は、CPU(Central Processing Unit)等を備え、記憶部123に記憶されているプログラムを実行することにより、端末装置12の各部を制御する。また、制御部124は、各カメラ11が撮像した画像から三次元モデルを作成することをサーバ20に要求し、サーバ20から受信した三次元モデルを表示装置13に表示させる。また、制御部124は、複数の三次元モデルを合成することをサーバ20に要求し、サーバ20から受信した合成された三次元モデルを表示装置13に表示させる。なお、制御部124の行う処理の詳細については後述する。
【0022】
表示装置13は、PC用のモニター等であり、制御部124の指示に基づいて、各種の情報を表示する。例えば、表示装置13は、サーバ20から受信した三次元モデルを表示する。
【0023】
入力装置14は、キーボードやマウス等であり、ユーザによる操作に応じた入力信号を生成して制御部124に供給する。
【0024】
続いて、サーバ20について説明する。サーバ20は、端末装置12から受信した画像データから三次元モデルを作成したり、複数の三次元モデルを合成する機能を有する。サーバ20は、図4(A)に示すように、通信部21と、記憶部22と、制御部23とを備える。
【0025】
通信部21は、NIC(Network Interface Card)等を備え、インターネットを介して、端末装置12と情報の送受信を行う。
【0026】
記憶部22は、ハードディスク装置等から構成され、各種の情報、及び、制御部23が実行するためのプログラム等を記憶する。また、記憶部22は、制御部23が処理を実行するためのワークエリアとして機能する。また、記憶部22は、カメラ11の撮像パラメータ算出用にクライアント10の表示装置13に表示させるパターン画像を記憶する。また、記憶部22は、図4(B)に示すように、クライアントDB(データベース)221と、三次元モデルDB222とを備える。
【0027】
クライアントDB221は、後述する登録処理で登録されたクライアント10に関する各種の情報が格納されるデータベースである。クライアントDB221には、図5に示すように、登録されたクライアント10毎に、クライアント10を識別するクライアントIDと、認証用のパスワードと、当該クライアント10が備える各カメラ11のカメラ情報と、視線情報と、が記憶される。カメラ情報は、カメラIDと、基本属性、内部パラメータ、外部パラメータ等から構成される情報であり、クライアント10内のカメラ11毎に登録される。
【0028】
基本属性は、経年劣化等の影響を受けにくい不変的なカメラ11の属性(性能)を示す。
従って、同じ種類のカメラ11であれば、ほぼ同一の基本属性を有する。基本属性は、例えば、カメラ11の解像度、画角、フォーカス距離等である。
【0029】
内部パラメータは、経年劣化等の影響を受けて時間と共に変化するカメラ11の撮像パラメータである。従って、同じ種類のカメラ11であっても、それぞれで内部パラメータは異なる。内部パラメータは、例えば、焦点距離係数、画像の角度係数、レンズの歪み係数等である。
【0030】
外部パラメータは、被写体に対するカメラ11の位置関係を示す撮像パラメータである。外部パラメータは、例えば、被写体からみたカメラ11の位置座標(x,y,z)、カメラ11の上下方向の角度(チルト)、左右方向の角度(パン)、回転角度(ロール)などを示す情報から構成される。
【0031】
視線情報は、クライアント10内のカメラ11のうち、どのカメラ11同士が三次元モデルを作成するための視線となるかを定義する情報である。具体的には、視線情報は、視線を構成するカメラ11のカメラID同士を対応付けた情報となる。例えば、図3に示すようにカメラ11が配置されており、隣り合うカメラ11同士で1つの視線を構成するとした場合を考える。この場合、視線情報として、カメラ11Aとカメラ11Bとを対応付けた情報、カメラ11Bとカメラ11Cとを対応付けた情報、カメラ11Cとカメラ11Dとを対応付けた情報、カメラ11Dとカメラ11Eとを対応付けた情報、及び、カメラ11Eとカメラ11Fとを対応付けた情報が視線情報となる。
【0032】
図4(B)に戻り、三次元モデルDB222には、端末装置12からの依頼を受けて作成した三次元モデル(ポリゴン情報)が、当該三次元モデルを識別するポリゴンID、当該三次元モデル作成の元となったペア画像を撮影した各カメラ11のカメラID等と対応付けられて格納される。
【0033】
図4(A)に戻り、制御部23は、CPU(Central Processing Unit)等を備え、記憶部22に記憶されているプログラムを実行することにより、サーバ20の各部を制御する。また、制御部23は、クライアント10からの依頼を受けて、当該クライアント10のカメラ情報等を登録する処理(クライアント登録処理)、三次元モデルを作成する処理(三次元モデル作成処理)、及び、既に作成されている複数の三次元モデルを合成する処理(三次元モデル合成処理)などを実行する。制御部23の行うこれら処理の詳細については後述する。
【0034】
続いて、三次元モデル作成システム1の動作について説明する。
【0035】
(クライアント登録処理)
始めに、クライアント登録処理について説明する。
サーバ20は、クライアント10内の各カメラ11が撮像した画像から三次元モデルを作成するために、当該クライアント10および、当該クライアント10内の各カメラ11のカメラ情報等を事前に登録する処理(クライアント登録処理)を行う必要がある。このクライアント登録処理について、図6のフローチャートを参照して、詳細に説明する。
【0036】
クライアント10のユーザは、入力装置14を操作して、クライアント登録用の画面を表示装置13に表示させる。そして、ユーザは、入力装置14を操作して、当該クライアント登録用の画面から、端末装置12に接続されている各カメラ11の基本属性を入力する。なお、カメラ11の基本属性は、カメラ11のマニュアル等を参照することで取得すればよい。また、ユーザは、入力装置14を操作して、どのカメラ11同士が視線を構成しているのかを示す視線情報も入力する。そして、ユーザは、入力が完了した後、クライアント10登録用の画面に表示されている登録用のボタンをクリックする。このクリック操作に応答して、制御部124は、入力されたこれらの情報を含む登録要求データを作成する(ステップS101)。
【0037】
図7(A)に登録要求データの構成を示す。登録要求データは、当該データが登録要求データであることを示すコマンド識別子、各カメラ11のカメラIDと基本属性、及び、視線情報等を含むデータである。
【0038】
図6に戻り、続いて、制御部124は、作成した登録要求データを、インターネットを介して、サーバ20に送信する(ステップS102)。
【0039】
登録要求データを受信すると(ステップS103)、サーバ20の制御部23は、当該要求データに含まれる各カメラ11のカメラIDと基本属性、及び、視線情報をクライントDB221に新規エントリとして登録する(ステップS104)。なお、この登録される新規エントリには、新たに作成したクライアントIDと認証用のパスワードとを付与する。また、この時点では、新規登録されたエントリ内の各カメラ11の内部パラメータ、および、外部パラメータの値は空欄である。
【0040】
続いて、制御部23は、ステップS104で登録した視線情報が示す視線のなかから1つを選択する(ステップS105)。そして、制御部23は、選択した視線を構成する各カメラ11の撮像パラメータ(内部パラメータ、外部パラメータ)を取得する処理(パラメータ取得処理)を行う(ステップS106)
【0041】
パラメータ取得処理の詳細について、図8と図9のフローチャートを参照して説明する。
【0042】
まず、制御部23は、ステップS105で選択した視線を構成する各カメラ11が表示装置13の表示面全体を撮像可能となるような位置に当該表示装置13を移動させることを指示するメッセージ情報をクライアント10に送信する(ステップS201)。
【0043】
そして、クライアント10の端末装置12の制御部124は、サーバ20から受信したメッセージ情報が示すメッセージを表示装置13に表示させる(ステップS202)。クライアント10のユーザは、このメッセージに従い、被写体が設置されている位置に表示装置13を移動させ、且つ、表示面の向きを、ステップS105で選択した視線を構成する各カメラ11が撮像可能な位置に移動させる。
【0044】
例えば、図3に示す視線1を構成するカメラ11A、11Bの撮像パラメータを算出したい場合、クライアント10のユーザは、図10に示すような位置に表示装置13を移動させる。
【0045】
図8に戻り、表示装置13の移動が完了すると、ユーザは入力装置14を介してその旨を通知するための操作入力を行う。端末装置12の制御部124は、この操作入力に応答して、インターネットを介して、移動完了通知をサーバ20に送信する(ステップS203)。
【0046】
移動完了通知を受信すると、サーバ20の制御部23は、カメラ11の内部パラメータ算出用のパターン画像をインターネットを介してクライアント10の端末装置12に送信するとともに、該パターン画像を表示装置13に表示させることを指示する(ステップS204)。この指示に応じて、端末装置12の制御部124は、受信した内部パラメータ算出用のパターン画像を、表示装置13に表示させる(ステップS205)。内部パラメータ算出用のパターン画像は、例えば、図11に示すような、個々の点が格子状に等間隔に配置されている画像である。
【0047】
図8に戻り、端末装置12の制御部124は、内部パラメータ算出用のパターン画像の表示が完了すると、その旨を伝える表示完了通知をインターネットを介して、サーバ20に送信する(ステップS206)。
【0048】
表示完了通知を受信すると、サーバ20の制御部23は、ステップS105で選択した視線を構成する各カメラ11の撮像を端末装置12に指示する(ステップS207)。
【0049】
端末装置12の制御部124は、サーバ20のからの指示を受けて、内部パラメータ算出対象の各カメラ11に撮像を実行させ、撮像した画像のペア(ペア画像)を取得する(ステップS208)。そして、制御部124は、取得したペア画像をインターネットを介してサーバ20に送信する(ステップS209)。
【0050】
サーバ20の制御部23は、内部パラメータ算出用のパターン画像を撮像したペア画像を受信すると、当該パターン画像が適切な位置で撮像されたか否かを判別する(ステップS210)。例えば、予めパターン画像の四隅に印を付しておき、受信したペア画像内の所定位置に当該印が正しく位置しているか否かを判別することで、パターン画像が適切な位置で撮影されたか否かを判別すればよい。
【0051】
パターン画像が適切な位置で撮像されていないと判別した場合(ステップS210;No)、ステップS201に処理は移り、制御部23は、表示装置13の移動を再度指示し、以降の処理を繰り返す。
【0052】
パターン画像が適切な位置で撮像されていると判別した場合(ステップS210;Yes)、制御部23は、ペア画像内に表示されているパターン画像に基づいて、公知の手法により、当該ペア画像を撮像した各カメラ11の内部パラメータを求める(ステップS211)。例えば、ペア画像の各画像内で同じ点を示す特徴点の視差を算出し、その視差ら内部パラメータを求めればよい。
【0053】
ここで、カメラ11に対するパターン画像の位置合わせが不十分であったり、パターン画像の一部に汚れ等があり、特徴点の抽出精度が悪くなるなど、何らかの不備により、内部パラメータの精度が確保されていない可能性がある。従って、制御部23は、公知の手法により、ステップS211で求めた内部パラメータの精度を求める(ステップS212)。そして、制御部23は、求めた精度が所定の閾値以上であるか否かを判別する(ステップS213)。
なお、内部パラメータの精度は、例えば、文献"A Flexible New Technique for Camera Calibration, Zhengyou Zhang, December 2, 1998"に記載されている手法を用いて算出すればよい。より具体的には、同文献に記載の下記式の値(0に近い程精度が高い)を算出することで、パラメータの精度を算出すればよい。
【数1】
【0054】
閾値以上の精度でない場合(ステップS213;No)、ステップS201に処理は移り、制御部23は、表示装置13の移動を再度指示し、以降の処理を繰り返す。
【0055】
閾値以上の精度である場合(ステップS213;Yes)、制御部23は、カメラ11の外部パラメータ算出用のパターン画像をインターネットを介して、クライアント10の端末装置12に送信するとともに、該パターン画像を表示装置13に表示させることを指示する(図9:ステップS214)。この指示に応じて、端末装置12の制御部124は、受信した外部パラメータ算出用のパターン画像を、表示装置13に表示させる(ステップS215)。
【0056】
端末装置12の制御部124は、外部パラメータ算出用のパターン画像の表示が完了すると、その旨を伝える表示完了通知をインターネットを介して、サーバ20に送信する(ステップS216)。
【0057】
表示完了通知を受信すると、サーバ20の制御部23は、ステップS105で選択した視線を構成する各カメラ11の撮像を端末装置12に指示する(ステップS217)。
【0058】
端末装置12の制御部124は、サーバ20のからの指示を受けて、外部パラメータ算出対象の各カメラ11に撮像を実行させ、撮像したペア画像を取得する(ステップS218)。そして、制御部124は、取得したペア画像をインターネットを介してサーバ20に送信する(ステップS219)。
【0059】
サーバ20の制御部23は、外部パラメータ算出用パターン画像を撮像したペア画像を受信すると、当該ペア画像内に表示されているパターン画像に基づいて、内部パラメータと同様に、公知の手法により、当該ペア画像を撮像した各カメラ11の外部パラメータを求める(ステップS220)。
【0060】
続いて、制御部23は、公知の手法により、ステップS220で求めた外部パラメータの精度を求める(ステップS221)。そして、制御部23は、求めた精度が所定の閾値以上であるか否かを判別する(ステップS222)。
【0061】
閾値以上の精度でない場合(ステップS222;No)、ステップS214に処理は移り、制御部23は、外部パラメータ算出用のパターン画像の表示を再度指示し、以降の処理を繰り返す。なお、この際、前回の処理とは異なる外部パラメータ算出用のパターン画像を表示させるのが望ましい。
【0062】
閾値以上の精度である場合(ステップS222;Yes)、制御部は23、ステップS211で求めた内部パラメータとステップS220で求めた外部パラメータとをクライアントDB221に保存する(ステップS223)。以上でパラメータ取得処理は終了する。
【0063】
図6に戻り、パラメータ取得処理が終了すると、制御部23は、ステップS103で登録した視線情報が示す全ての視線を選択したか否かを判別する(ステップS107)。未選択の視線がある場合(ステップS107;No)、ステップS105に処理は移り、未選択の視線を選択して、その視線を構成する2つのカメラ11について撮像パラメータを取得する処理を繰り返す。
【0064】
全ての視線を選択した場合(ステップS107;Yes)、制御部23は、ステップS104で新規登録したエントリに含まれるクライアントID、及び、パスワードを含む、図7(B)に示すような登録応答データを、クライアント10登録要求の送信元である端末装置12に送信する(ステップS108)。
【0065】
図6に戻り、端末装置12の制御部23は、登録応答データを受信すると(ステップS109)、当該登録応答データに含まれるクライアントIDとパスワードとを記憶部22に記憶する(ステップS110)。以上でクライアント登録処理は終了する。
【0066】
このように、登録処理により、クライアント10毎に、クライアント10内の各カメラ11のカメラ情報や視線情報がサーバ20に登録(記憶)される。そして、登録が完了すると、クライアント10の端末装置12は、サーバ20からクライアントIDとパスワードを受信する。そして、以降の各処理(三次元モデル作成処理、三次元モデル合成処理)を行う際に、端末装置12は、クライアントIDとパスワードとをサーバ20に送信して、認証を受けることが可能となる。
【0067】
(三次元モデル作成処理)
始めに、クライアント登録処理について説明する。
サーバ20は、クライアント10から送信された画像ペアから三次元モデルを作成する三次元モデル作成処理を実行する。この三次元モデル作成処理の詳細について、カメラ11Aが撮像した画像Aとカメラ11Bが撮像した画像Bとからなるペア画像から三次元モデルを作成する場合を例に、図12のフローチャートを参照して説明する。
【0068】
まず、クライアント10のユーザは、入力装置14を操作して、三次元モデル作成用の画面を表示装置13に表示させる。そして、ユーザは、入力装置14を操作して、当該三次元モデル作成用の画面から、クライアントIDとパスワードの入力、及び、三次元モデルを作成したいカメラ11Aおよびカメラ11Bが撮像した画像の選択行い、当該三次元モデル作成用の画面に表示されている作成ボタン等をクリックする。このクリック操作に応答して、制御部124は、三次元モデル作成要求データを作成する(ステップS301)。なお、クライアントIDとパスワードとは、前述した登録処理でサーバ20から受信したものを入力すればよい。
【0069】
三次元モデル作成要求データの構成例を図13(A)に示す。三次元モデル作成要求データには、当該データが三次元モデル作成要求データであることを示すコマンド識別子と、クライアントIDと、パスワードと、要求IDと、3Dモデルを作成したいペア画像(画像Aと画像B)の各画像データと、該各画像を撮影した各カメラ11A、11BのカメラID等を含むデータである。なお、要求IDは、同一のクライアント10から連続して三次元モデル作成要求データを受信した場合に、各要求データを識別するためにクライアント10が生成したユニークなIDである。
【0070】
図12に戻り、続いて、制御部124は、作成した三次元モデル作成要求データを、インターネットを介して、サーバ20に送信する(ステップS302)。
【0071】
三次元モデル作成要求データを受信すると(ステップS303)、サーバ20の制御部23は、三次元モデル作成要求データの送信元であるクライアント10が前述の登録処理により事前に登録されているクライアント10であるか否かを判別する(ステップS304)。具体的には、制御部23は、三次元モデル作成要求データに含まれるクライアントIDとパスワードとの組が、クライアントDB221に記憶されているか否かを判別し、記憶されている場合に、登録されているクライアント10であると判別すればよい。
【0072】
登録されていないクライアント10であると判別した場合(ステップS304;No)、未認証のクライアント10からの要求であり、三次元モデル作成処理はエラー終了する。
【0073】
登録されているクライアント10であると判別した場合(ステップS304;No)、制御部23は、三次元モデル作成要求データに含まれている画像データから三次元モデルを生成するモデリング処理を実行する(ステップS305)。
【0074】
ここで、図14に示すフローチャートを参照して、モデリング処理について詳細に説明する。なお、モデリング処理は、一組のペア画像から三次元モデルを生成する処理である。つまり、モデリング処理は、一つの視線から見た三次元モデルを生成する処理と考えることができる。
【0075】
まず、制御部23は、特徴点の候補を抽出する(ステップS401)。例えば、制御部23は、画像Aに対してコーナー検出を行う。コーナー検出においては、ハリスなどのコーナー特徴量が、所定閾値以上かつ所定半径内で最大になる点がコーナー点として選択される。従って、被写体の先端など、他の点に対して特徴のある点が特徴点として抽出される。
【0076】
続いて、制御部23は、ステレオマッチングを実行し、画像Aの特徴点に対応する点(対応点)を画像Bから探す(ステップS402)。具体的には、制御部23は、テンプレートマッチングにより類似度が所定閾値以上かつ最大のもの(相違度が所定閾値以下かつ最小のもの)を対応点とする。テンプレートマッチングには、例えば、残差絶対値和(SAD)、残差平方和(SSD)、正規化相関(NCCやZNCC)、方向符号相関など、様々な既知の技法が利用可能である。
【0077】
続いて、制御部23は、三次元モデル作成要求データに含まれているカメラ11Aと11BのカメラIDをキーにクライアントDB221を検索して、ペア画像(画像Aと画像B)のそれぞれを撮像したカメラ11A、11Bのカメラ情報を取得する(ステップS403)。
【0078】
続いて、制御部23は、ステップS402で検出された対応点の視差情報と、ステップS403で取得したカメラ情報とに基づいて、特徴点の位置情報(三次元位置座標)を算出する(ステップS404)。生成された特徴点の位置情報は、例えば、記憶部22に記憶される。
【0079】
続いて、制御部23は、ステップS404において算出された特徴点の位置情報をもとにドロネー三角形分割を実行し、ポリゴン化を実行し、三次元モデル(ポリゴン情報)を生成する(ステップS405)。
【0080】
そして、制御部23は、ステップS405で生成した三次元モデル(ポリゴン情報)に対して新規のポリゴンIDを付し、該三次元モデルの作成の元となった画像A、画像Bを作成したカメラ11A,11BのカメラIDと対応付けて三次元モデルDB222に保存する(ステップS406)。以上でモデリング処理は終了する。
【0081】
図12に戻り、モデルリング処理が終了すると、制御部23は、三次元モデル作成要求データに対するレスポンスとして、三次元モデル作成応答データを作成する(ステップS306)。
【0082】
図13(B)に三次元モデル作成応答データの構成を示す。三次元モデル作成応答データは、当該データが三次元モデル作成応答データであることを示すコマンド識別子、応答ID、モデリング処理(ステップS305)で生成された三次元モデル、及び、そのポリゴンIDを含むデータである。なお、応答IDは、同一のクライアント10から連続して三次元モデル作成要求データを受信した場合に、クライアント10がどの要求データに対する応答データなのかを識別するために付与されたIDである。応答IDは、要求IDと同一のものでよい。
【0083】
図12に戻り、続いて、制御部23は、三次元モデル作成要求データの送信元であるクライアント10の端末装置12に、作成した三次元モデル作成応答データを送信する(ステップS307)。
【0084】
三次元モデル作成応答データを受信すると(ステップS308)、端末装置12の制御部124は、応答データに含まれる三次元モデルとポリゴンIDとを対応付けて記憶部123に保存する(ステップS309)。そして、制御部124は、保存した三次元モデルを表示装置13に表示させる(ステップS310)。以上で、三次元モデリング処理は終了する。
【0085】
(三次元モデル合成処理)
続いて、前述した三次元モデル作成処理によって作成された複数の三次元モデルを合成して、より精度の高い三次元モデルを作成する三次元モデル合成処理について、図15のフローチャートを参照して説明する。
【0086】
まず、クライアント10のユーザは、入力装置14を操作して、三次元モデル合成用の画面を表示装置13に表示させる。そして、ユーザは、入力装置14を操作して、当該三次元モデル作成用の画面から、クライアントIDとパスワードの入力、及び、合成したい複数の三次元モデル(ポリゴン情報)のポリゴンIDの入力を行い、当該三次元モデル合成用の画面に表示されている合成ボタン等をクリックする。このクリック操作に応答して、制御部124は、三次元モデル合成要求データを作成する(ステップS501)。なお、クライアントIDとパスワードとは、前述した登録処理でサーバ20から受信したものを入力すればよい。また、ポリゴンIDは、前述の三次元モデル作成処理、または、過去の三次元モデル合成処理でサーバ20から受信したものを入力すればよい。また、過去の三次元モデル作成処理や三次元モデル合成処理で取得した三次元モデルをそのポリゴンIDとともに作成の元となった視線毎に記憶部123に記憶しておき、各視線の三次元モデルを表示装置13に一覧表示させ、そのなかから合成したい三次元モデルを選択させることで、合成したい三次元モデルのIDを取得するようにしてもよい。
【0087】
三次元モデル合成要求データの構成例を図16(A)に示す。三次元モデル合成要求データには、当該データが三次元モデル作成要求データであることを示すコマンド識別子と、クライアントIDと、パスワードと、要求IDと、合成したい三次元モデルを特定する複数のポリゴンID等を含むデータである。なお、要求IDは、同一のクライアント10から連続して三次元モデル合成要求データを受信した場合に、各要求データを識別するためにクライアント10が生成したユニークなIDである。
【0088】
図15に戻り、続いて、制御部124は、作成した三次元モデル合成要求データを、インターネットを介して、サーバ20に送信する(ステップS502)。
【0089】
三次元モデル作成合成データを受信すると(ステップS503)、サーバ20の制御部23は、三次元モデル合成要求データの送信元であるクライアント10が前述の登録処理により事前に登録されているクライアント10であるか否かを判別する(ステップS504)。
【0090】
登録されていないクライアント10であると判別した場合(ステップS504;No)、未認証のクライアント10からの要求であり、三次元モデル作成処理はエラー終了する。
【0091】
登録されているクライアント10であると判別した場合(ステップS504;No)、制御部23は、合成処理を実行する(ステップS505)。合成処理の詳細について、図17のフローチャートを参照して説明する。
【0092】
まず、制御部23は、三次元モデル作成要求データに含まれる複数のポリゴンIDのうちから、2つを選択する(ステップS601)。ここでは、2つのポリゴンIDp1、p2を選択したものとして以下説明する。
【0093】
そして、制御部23は、選択した2つのポリゴンIDのそれぞれに対して、当該ポリゴンIDが示すポリゴン情報(三次元モデル)の作成の元となったペア画像を撮影した各カメラ11の外部パラメータを取得する(ステップS602)。具体的には、選択した各ポリゴンIDをキーに三次元モデルDB222を検索してカメラIDを取得する。そして、取得したカメラIDに対応するカメラ11の外部パラメータをクライアントDB221から取得すればよい。
【0094】
続いて、制御部23は、取得した外部パラメータに基づいて、ステップステップS601で選択した一方のポリゴンIDp1が示す三次元モデルの座標を、選択した他方のポリゴンIDp2が示す三次元モデルの座標に変換するための、座標変換パラメータを取得する(ステップS603)。
具体的には、この処理は、式(1)を満たす回転行列Rと移動ベクトルtとを求める処理である。なお、XはポリゴンIDp1が示す三次元モデルの座標を示し、X’は、ポリゴンIDp2が示す三次元モデルの座標を示す。
【数2】
【0095】
前述したように、外部パラメータは、被写体からみたカメラ11の位置を示す情報(座標、チルト、パン、ロール)である。従って、制御部23は、これらの外部パラメータに基づいて、当該外部パラメータを有するカメラペアの撮像画像から作成された被写体の三次元モデルの座標変換パラメータを公知の座標変換式等を用いて算出すればよい。
【0096】
続いて、制御部23は、取得した座標変換パラメータを用いて、ポリゴンIDp1で特定される三次元モデルと、ポリゴンIDp2で特定される三次元モデルとを重ねる(ステップS604)。
【0097】
続いて、制御部23は、ポリゴンIDp1で特定される三次元モデルの特徴点とポリゴンIDp2で特定される三次元モデルの特徴点との重なり具合から信頼性の低い特徴点を除去する(ステップS605)。例えば、ある三次元モデルの注目特徴点に対する他の三次元モデルの最近傍の特徴点の分布から、当該注目特徴点のマハラノビス距離が計算され、このマハラノビス距離が所定値以上の場合は当該注目特徴点の信頼性が低いと判別される。なお、注目特徴点からの距離が所定値以上の特徴点は、最近傍の特徴点に含めないようにしても良い。また、最近傍の特徴点の数が少ない場合、信頼性が低いものと見なされてもよい。なお、特徴点を実際に除去する処理は、全ての特徴点に対して、除去するか否かが判別された後に、実行されるものとする。
【0098】
続いて、制御部23は、同一と見なせる特徴点を統合する(ステップS606)。例えば、所定距離以内の特徴点は、全て同一の特徴点を表すグループに属するものとして扱われ、これらの特徴点の重心が新たな特徴点とされる。
【0099】
続いて、制御部23は、ポリゴンメッシュを再構成する(ステップS607)。つまり、ステップS606において求められた新たな特徴点に基づいて、三次元モデル(ポリゴン情報)が生成される。
【0100】
続いて、制御部23は、三次元モデル作成要求データに含まれる複数のポリゴンIDのうち、未選択のもの(即ち、合成していないもの)が有るか否かを判別する(ステップS608)。
【0101】
未選択のポリゴンIDが有る場合(ステップS608;Yes)、制御部23は、当該ポリゴンIDを1つ選択する(ステップS609)。そして、ステップS602に処理は移り、制御部23は、ステップS609で選択したポリゴンIDが示す三次元モデルとステップS607で再構成した三次元モデルとの間で、同様に、座標変換パラメータを取得して、両三次元モデルを重ね、ポリゴンを再構成する処理を繰り返す。
【0102】
未選択のポリゴンIDが無い場合(ステップS608;No)、三次元モデル作成要求データに含まれるポリゴンIDが示す三次元モデルは全て合成されたことになる。従って、制御部23は、ステップS607で再構成した三次元モデル(ポリゴン情報)に対して新規のポリゴンIDを付し、三次元モデルDB222に登録する(ステップS610)。以上で合成処理は終了する。
【0103】
図15に戻り、合成処理が終了すると、制御部23は、三次元モデル合成要求データに対するレスポンスとして、三次元モデル合成応答データを作成する(ステップS506)。
【0104】
図16(B)に三次元モデル合成応答データの構成を示す。三次元モデル合成応答データは、当該データが三次元モデル合成応答データであることを示すコマンド識別子、応答ID、合成処理(ステップS505)で生成(再構成)された三次元モデルと、当該三次元モデルのポリゴンIDと、を含むデータである。なお、応答IDは、同一のクライアント10から連続して三次元モデル合成要求データを受信した場合に、クライアント10がどの要求データに対する応答データなのかを識別するために付与されたIDである。応答IDは、要求IDと同一のものでよい。
【0105】
図15に戻り、続いて、制御部23は、三次元モデル合成要求データの送信元であるクライアント10の端末装置12に、作成した三次元モデル合成応答データを送信する(ステップS507)。
【0106】
三次元モデル合成応答データを受信すると(ステップS508)、端末装置12の制御部124は、三次元モデル合成応答データに含まれるポリゴン情報とポリゴンIDとを対応付けて記憶部123に保存する(ステップS509)。そして、制御部124は、保存した三次元モデルを表示装置13に表示させる(ステップS510)。以上で、三次元モデル合成処理は終了する。
【0107】
このように、三次元モデル合成処理により、複数の三次元モデルが合成されるので、形状情報の欠損を抑えつつ、高精度な三次元モデリングが可能になる。
【0108】
本発明の実施形態に係る三次元モデル作成システム1によれば、各クライアント10の備えるカメラ11のカメラ情報や視線情報が、クライアント10毎に、事前にサーバ20に保存される。そして、各クライアント10は、撮像したペア画像から三次元モデルを作成したい場合、当該ペア画像をサーバ20に送信し、サーバ20が受信したペア画像と事前に記憶されているカメラ情報とに基づいて三次元モデルを作成する。従って、膨大な演算処理が必要な三次元モデル作成の処理は、1台のサーバ20が全クライアント10の処理を代行して実施するため、クライアント10内の端末装置12は、比較的安価なCPU等で実現可能である。従って、システム全体として、比較的低コストで、撮像画像から三次元モデルを作成することが可能となる。
【0109】
なお、本発明は、上記各実施形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
【0110】
例えば、クライアント10内の端末装置12の制御部124は、所定のフレーム周期(例えば、1/30秒)で各カメラ11に被写体を撮像させ、撮像させた画像をサーバ20にストリーミング送信するようにした構成にも、本発明を適用することが可能である。この場合、サーバ20の制御部23は、連続的に受信した画像を、当該画像を撮像したカメラ11のカメラID及び連続受信した各画像を一意に識別するフレーム番号と対応付けて記憶部22に逐次保存する。そして、三次元モデル作成処理を実施する場合、クライアント10の端末装置12のユーザは、三次元モデルを作成したい画像をカメラIDとフレーム番号で指定する図13(C)に示すような三次元モデル作成要求データを作成して、サーバ20に三次元モデルの作成を実行させればよい。
このようにすることで、三次元モデル作成要求データにサイズの大きな画像データを含めなくて済むため、三次元モデル作成要求データのサーバ20への転送時間を少なくすることが可能となる。
【0111】
また、三次元モデル作成処理において、端末装置12が三次元モデル作成要求データに含めて送信する画像データを、カメラ11が撮像した画像を劣化させた(例えば、画素数を減じた)画像データとしてもよい。この場合、サーバ20は、劣化された画像データから三次元モデルを作成して、端末装置12に送信する。端末装置12は、受信した三次元モデルに、劣化させる前の画像データをテクスチャーとして貼り付け、貼り付けた三次元モデルを表示装置13に表示させる。
このようにすることで、端末装置12は、劣化させた画像をサーバ20に送信するため、転送時間を少なくすることができる。さらに、劣化画像から作成された三次元モデルに、劣化されていない画像をテクスチャーとして貼り付けて三次元モデルを表示するため、三次元モデル自体の劣化はある程度抑えることが可能となる。
【0112】
また、例えば、本発明に係るサーバ20の動作を規定する動作プログラムを既存のパーソナルコンピュータや情報端末機器等に適用することで、当該パーソナルコンピュータ等を本発明に係るサーバ20として機能させることも可能である。
【0113】
また、このようなプログラムの配布方法は任意であり、例えば、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。
【符号の説明】
【0114】
1…三次元モデル作成システム、10…クライアントシステム、20…サーバ、11…カメラ、12…端末装置、13…表示装置、14…入力装置
【技術分野】
【0001】
本発明は、三次元モデル作成システムに関する。
【背景技術】
【0002】
被写体を複数のカメラで撮影した画像から、被写体の三次元モデルを作成し、立体的に
表示する機能を有する撮像装置が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平05−303629号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
複数のカメラで撮像した画像から三次元モデルを作成するためには、膨大な演算処理を実行する必要がかかるため、上記撮像装置では、比較的高性能なコンピュータが必要であり、比較的高いコストがかかった。
【0005】
本発明は、上記実情に鑑みてなされたものであり、低コストで三次元モデルを作成することを可能にした三次元モデル作成システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため本発明の第1の観点に係る三次元モデル作成システムは、
複数の撮像装置を備えた複数のクライアントシステムと、該クライアントシステムのそれぞれとネットワークを介して接続されたサーバと、を備える三次元モデル作成システムであって、
前記クライアントシステムは、
各前記撮像装置が異なる方向から撮像した被写体の画像データを劣化させた画像データの組から三次元モデルを作成することを要求する、当該劣化させた画像データ及び当該撮像した撮像装置の識別情報を少なくとも含む三次元モデル作成要求データを作成する三次元モデル作成要求データ作成手段と、
前記ネットワークを介して、三次元モデル作成要求データ作成手段が作成した三次元モデル作成要求データを前記サーバに送信する三次元モデル作成要求手段と、を備え、
前記サーバは、
前記クライアントシステム毎に、該クライアントシステムが備える各撮像装置の識別情報と各撮像装置の属性及び撮像パラメータを含む撮像装置情報とを対応付けて記憶するクライアントシステム記憶手段と、
前記三次元モデル作成要求データの受信に応答して、該三次元モデル作成要求データに含まれる識別情報を有する撮像装置の撮像装置情報を前記クライアントシステム記憶手段から取得する撮像装置情報取得手段と、
前記撮像装置情報取得手段が取得した撮像装置情報に基づいて、三次元モデル作成要求データが要求する被写体の画像データの組からポリゴンによって構成される三次元モデルを作成する、三次元モデル作成手段と、
前記三次元モデル作成手段が作成した三次元モデルを、前記三次元モデル作成要求データの送信元であるクライアントシステムに送信する三次元モデル送信手段と、を備え、
前記クライアントシステムは、
前記サーバから受信した三次元モデルに、前記撮像装置が撮像した劣化前の画像をテクスチャとして貼り付けるテクスチャ貼付手段と、
前記テクスチャ貼付手段によりテクスチャが貼り付けられた三次元モデルを表示する表示手段をさらに備える、
ことを特徴とする。
【0007】
前記クライアントシステムは、
各撮像装置が所定の時間間隔で連続的に撮像した画像データを、当該画像の撮影された順番を示すフレーム番号と該撮像装置の識別情報とともに前記サーバに送信する連続画像送信手段、をさらに備え、
前記サーバは、前記連続画像送信手段が送信した画像データとフレーム番号と撮像装置の識別情報とを対応付けて蓄積記憶する画像記憶手段、をさらに備え、
前記三次元モデル作成要求データ作成手段は、三次元モデルの作成を要求する画像データのフレーム番号を含む前記三次元モデル作成要求データを作成し、
前記三次元モデル作成手段は、前記三次元モデル作成要求データに含まれる撮像装置の識別情報とフレーム番号とで特定される画像データの組を前記画像記憶手段から取得し、取得した画像データの組から三次元モデルを作成してもよい。
【0008】
前記三次元モデル作成要求データ作成手段は、前記クライアントシステムの認証用の情報を少なくとも含む三次元モデル作成要求データを作成し、
前記サーバは、
前記クライアントシステムから受信した前記三次元モデル作成要求データに含まれる認証用の情報に基づいて、当該クライアントシステムを認証する認証手段をさらに備えてもよい。
【発明の効果】
【0009】
本発明によれば、各クライアントシステムが撮像した画像から三次元モデルを作成する処理をサーバが行う。従って、低コストで三次元モデルを作成をすることが可能となる。
【図面の簡単な説明】
【0010】
【図1】本発明の実施形態に係る三次元モデル作成システムの構成を示す図である。
【図2】クライアントシステムの構成を示す図である。
【図3】被写体と各カメラの位置関係を示す図である。
【図4】サーバの構成を示す図である。
【図5】クライアントDBの構成例を示す図である。
【図6】クライアント登録処理を説明するためのフローチャートである。
【図7】登録要求データ及び登録応答データの構成例を示す図である。
【図8】パラメータ取得処理を説明するためのフローチャートである。
【図9】パラメータ取得処理を説明するためのフローチャートである。
【図10】被写体と表示装置の位置関係を示す図である。
【図11】カメラのパラメータ算出用のパターン画像の例を示した図である。
【図12】三次元モデル作成処理を説明するためのフローチャートである。
【図13】3次元モデル作成要求データ及び3次元モデル作成応答データの構成例を示す図である。
【図14】モデリング処理を説明するためのフローチャートである。
【図15】三次元モデル合成処理を説明するためのフローチャートである。
【図16】3次元モデル合成要求データ及び3次元モデル合成応答データの構成例を示す図である。
【図17】合成処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は下記の実施形態及び図面によって限定されるものではない。また、本発明の要旨を変更しない範囲で下記の実施形態及び図面に変更を加えることが出来る。また、図中同一または相当部分には同一符号を付す。
【0012】
本発明の実施形態に係る三次元モデル作成システム1について説明する。三次元モデル作成システム1は、図1に示すように、複数のクライアントシステム10(以下、単にクライアント10とする)と、サーバ20とを備える。各クライアント10とサーバ20とは、インターネットを介して相互通信可能に接続されている。
【0013】
各クライアント10は、図2に示すように、複数のカメラ11A〜11Fと、端末装置12と、表示装置13と、入力装置14を備える。
【0014】
各カメラ11A〜11Fは、レンズ、絞り機構、シャッタ機構、CCD(Charge Coupled Device)等を備え、被写体を撮像し、撮像した画像データを端末装置12に送信する。なお、カメラ11A〜11Fは、それぞれ、クライアント10内でそれぞれを識別可能なカメラIDが設定されている。
【0015】
なお、カメラ11A〜11Fのそれぞれを区別しない場合は、単にカメラ11と呼称する。また、必要に応じて、カメラ11A〜11Fが撮像した画像をそれぞれ、画像A〜画像Fとして説明する。なお、カメラ11の数は6に限定するものではなく、2以上の任意の数でよい。
【0016】
ここで、カメラ11の配置について説明する。各カメラ11A〜11Fは、図3に示すように被写体を取り囲むように配置されている。従って、カメラ11A〜11Fは、それぞれ、被写体を異なる方向から撮像することができる。なお、カメラ11は床やステージ等に固定されており、容易に動かせないものとするのが望ましい。
【0017】
図2に戻り、端末装置12は、例えば、PC(Personal Computer)等のコンピュータである。端末装置12は、外部I/F部121と通信部122と記憶部123と制御部124とを備える。
【0018】
外部I/F部121は、USB(Universal Serial Bus)やIEEE1394等の規格に準拠したコネクタ、又は、拡張スロットに挿入されるカメラ接続用のボード(基板)等から構成され、各カメラ11と接続するためのインタフェースである。
【0019】
通信部122は、NIC(Network Interface Card)等を備え、制御部124の指示に基づいて、インターネットを介して、サーバ20と情報の送受信を行う。
【0020】
記憶部は123は、RAM(Read Only Memory)、ROM(Rondom Access Memory)、ハードディスク装置等から構成され、各種の情報、各カメラ11が撮影した画像データ、及び、制御部124が実行するためのプログラム等を記憶する。また、記憶部123は、制御部124が処理を実行するためのワークエリアとして機能する。また、記憶部123は、サーバ20から送信された三次元モデル(ポリゴン情報)を保存する。
【0021】
制御部124は、CPU(Central Processing Unit)等を備え、記憶部123に記憶されているプログラムを実行することにより、端末装置12の各部を制御する。また、制御部124は、各カメラ11が撮像した画像から三次元モデルを作成することをサーバ20に要求し、サーバ20から受信した三次元モデルを表示装置13に表示させる。また、制御部124は、複数の三次元モデルを合成することをサーバ20に要求し、サーバ20から受信した合成された三次元モデルを表示装置13に表示させる。なお、制御部124の行う処理の詳細については後述する。
【0022】
表示装置13は、PC用のモニター等であり、制御部124の指示に基づいて、各種の情報を表示する。例えば、表示装置13は、サーバ20から受信した三次元モデルを表示する。
【0023】
入力装置14は、キーボードやマウス等であり、ユーザによる操作に応じた入力信号を生成して制御部124に供給する。
【0024】
続いて、サーバ20について説明する。サーバ20は、端末装置12から受信した画像データから三次元モデルを作成したり、複数の三次元モデルを合成する機能を有する。サーバ20は、図4(A)に示すように、通信部21と、記憶部22と、制御部23とを備える。
【0025】
通信部21は、NIC(Network Interface Card)等を備え、インターネットを介して、端末装置12と情報の送受信を行う。
【0026】
記憶部22は、ハードディスク装置等から構成され、各種の情報、及び、制御部23が実行するためのプログラム等を記憶する。また、記憶部22は、制御部23が処理を実行するためのワークエリアとして機能する。また、記憶部22は、カメラ11の撮像パラメータ算出用にクライアント10の表示装置13に表示させるパターン画像を記憶する。また、記憶部22は、図4(B)に示すように、クライアントDB(データベース)221と、三次元モデルDB222とを備える。
【0027】
クライアントDB221は、後述する登録処理で登録されたクライアント10に関する各種の情報が格納されるデータベースである。クライアントDB221には、図5に示すように、登録されたクライアント10毎に、クライアント10を識別するクライアントIDと、認証用のパスワードと、当該クライアント10が備える各カメラ11のカメラ情報と、視線情報と、が記憶される。カメラ情報は、カメラIDと、基本属性、内部パラメータ、外部パラメータ等から構成される情報であり、クライアント10内のカメラ11毎に登録される。
【0028】
基本属性は、経年劣化等の影響を受けにくい不変的なカメラ11の属性(性能)を示す。
従って、同じ種類のカメラ11であれば、ほぼ同一の基本属性を有する。基本属性は、例えば、カメラ11の解像度、画角、フォーカス距離等である。
【0029】
内部パラメータは、経年劣化等の影響を受けて時間と共に変化するカメラ11の撮像パラメータである。従って、同じ種類のカメラ11であっても、それぞれで内部パラメータは異なる。内部パラメータは、例えば、焦点距離係数、画像の角度係数、レンズの歪み係数等である。
【0030】
外部パラメータは、被写体に対するカメラ11の位置関係を示す撮像パラメータである。外部パラメータは、例えば、被写体からみたカメラ11の位置座標(x,y,z)、カメラ11の上下方向の角度(チルト)、左右方向の角度(パン)、回転角度(ロール)などを示す情報から構成される。
【0031】
視線情報は、クライアント10内のカメラ11のうち、どのカメラ11同士が三次元モデルを作成するための視線となるかを定義する情報である。具体的には、視線情報は、視線を構成するカメラ11のカメラID同士を対応付けた情報となる。例えば、図3に示すようにカメラ11が配置されており、隣り合うカメラ11同士で1つの視線を構成するとした場合を考える。この場合、視線情報として、カメラ11Aとカメラ11Bとを対応付けた情報、カメラ11Bとカメラ11Cとを対応付けた情報、カメラ11Cとカメラ11Dとを対応付けた情報、カメラ11Dとカメラ11Eとを対応付けた情報、及び、カメラ11Eとカメラ11Fとを対応付けた情報が視線情報となる。
【0032】
図4(B)に戻り、三次元モデルDB222には、端末装置12からの依頼を受けて作成した三次元モデル(ポリゴン情報)が、当該三次元モデルを識別するポリゴンID、当該三次元モデル作成の元となったペア画像を撮影した各カメラ11のカメラID等と対応付けられて格納される。
【0033】
図4(A)に戻り、制御部23は、CPU(Central Processing Unit)等を備え、記憶部22に記憶されているプログラムを実行することにより、サーバ20の各部を制御する。また、制御部23は、クライアント10からの依頼を受けて、当該クライアント10のカメラ情報等を登録する処理(クライアント登録処理)、三次元モデルを作成する処理(三次元モデル作成処理)、及び、既に作成されている複数の三次元モデルを合成する処理(三次元モデル合成処理)などを実行する。制御部23の行うこれら処理の詳細については後述する。
【0034】
続いて、三次元モデル作成システム1の動作について説明する。
【0035】
(クライアント登録処理)
始めに、クライアント登録処理について説明する。
サーバ20は、クライアント10内の各カメラ11が撮像した画像から三次元モデルを作成するために、当該クライアント10および、当該クライアント10内の各カメラ11のカメラ情報等を事前に登録する処理(クライアント登録処理)を行う必要がある。このクライアント登録処理について、図6のフローチャートを参照して、詳細に説明する。
【0036】
クライアント10のユーザは、入力装置14を操作して、クライアント登録用の画面を表示装置13に表示させる。そして、ユーザは、入力装置14を操作して、当該クライアント登録用の画面から、端末装置12に接続されている各カメラ11の基本属性を入力する。なお、カメラ11の基本属性は、カメラ11のマニュアル等を参照することで取得すればよい。また、ユーザは、入力装置14を操作して、どのカメラ11同士が視線を構成しているのかを示す視線情報も入力する。そして、ユーザは、入力が完了した後、クライアント10登録用の画面に表示されている登録用のボタンをクリックする。このクリック操作に応答して、制御部124は、入力されたこれらの情報を含む登録要求データを作成する(ステップS101)。
【0037】
図7(A)に登録要求データの構成を示す。登録要求データは、当該データが登録要求データであることを示すコマンド識別子、各カメラ11のカメラIDと基本属性、及び、視線情報等を含むデータである。
【0038】
図6に戻り、続いて、制御部124は、作成した登録要求データを、インターネットを介して、サーバ20に送信する(ステップS102)。
【0039】
登録要求データを受信すると(ステップS103)、サーバ20の制御部23は、当該要求データに含まれる各カメラ11のカメラIDと基本属性、及び、視線情報をクライントDB221に新規エントリとして登録する(ステップS104)。なお、この登録される新規エントリには、新たに作成したクライアントIDと認証用のパスワードとを付与する。また、この時点では、新規登録されたエントリ内の各カメラ11の内部パラメータ、および、外部パラメータの値は空欄である。
【0040】
続いて、制御部23は、ステップS104で登録した視線情報が示す視線のなかから1つを選択する(ステップS105)。そして、制御部23は、選択した視線を構成する各カメラ11の撮像パラメータ(内部パラメータ、外部パラメータ)を取得する処理(パラメータ取得処理)を行う(ステップS106)
【0041】
パラメータ取得処理の詳細について、図8と図9のフローチャートを参照して説明する。
【0042】
まず、制御部23は、ステップS105で選択した視線を構成する各カメラ11が表示装置13の表示面全体を撮像可能となるような位置に当該表示装置13を移動させることを指示するメッセージ情報をクライアント10に送信する(ステップS201)。
【0043】
そして、クライアント10の端末装置12の制御部124は、サーバ20から受信したメッセージ情報が示すメッセージを表示装置13に表示させる(ステップS202)。クライアント10のユーザは、このメッセージに従い、被写体が設置されている位置に表示装置13を移動させ、且つ、表示面の向きを、ステップS105で選択した視線を構成する各カメラ11が撮像可能な位置に移動させる。
【0044】
例えば、図3に示す視線1を構成するカメラ11A、11Bの撮像パラメータを算出したい場合、クライアント10のユーザは、図10に示すような位置に表示装置13を移動させる。
【0045】
図8に戻り、表示装置13の移動が完了すると、ユーザは入力装置14を介してその旨を通知するための操作入力を行う。端末装置12の制御部124は、この操作入力に応答して、インターネットを介して、移動完了通知をサーバ20に送信する(ステップS203)。
【0046】
移動完了通知を受信すると、サーバ20の制御部23は、カメラ11の内部パラメータ算出用のパターン画像をインターネットを介してクライアント10の端末装置12に送信するとともに、該パターン画像を表示装置13に表示させることを指示する(ステップS204)。この指示に応じて、端末装置12の制御部124は、受信した内部パラメータ算出用のパターン画像を、表示装置13に表示させる(ステップS205)。内部パラメータ算出用のパターン画像は、例えば、図11に示すような、個々の点が格子状に等間隔に配置されている画像である。
【0047】
図8に戻り、端末装置12の制御部124は、内部パラメータ算出用のパターン画像の表示が完了すると、その旨を伝える表示完了通知をインターネットを介して、サーバ20に送信する(ステップS206)。
【0048】
表示完了通知を受信すると、サーバ20の制御部23は、ステップS105で選択した視線を構成する各カメラ11の撮像を端末装置12に指示する(ステップS207)。
【0049】
端末装置12の制御部124は、サーバ20のからの指示を受けて、内部パラメータ算出対象の各カメラ11に撮像を実行させ、撮像した画像のペア(ペア画像)を取得する(ステップS208)。そして、制御部124は、取得したペア画像をインターネットを介してサーバ20に送信する(ステップS209)。
【0050】
サーバ20の制御部23は、内部パラメータ算出用のパターン画像を撮像したペア画像を受信すると、当該パターン画像が適切な位置で撮像されたか否かを判別する(ステップS210)。例えば、予めパターン画像の四隅に印を付しておき、受信したペア画像内の所定位置に当該印が正しく位置しているか否かを判別することで、パターン画像が適切な位置で撮影されたか否かを判別すればよい。
【0051】
パターン画像が適切な位置で撮像されていないと判別した場合(ステップS210;No)、ステップS201に処理は移り、制御部23は、表示装置13の移動を再度指示し、以降の処理を繰り返す。
【0052】
パターン画像が適切な位置で撮像されていると判別した場合(ステップS210;Yes)、制御部23は、ペア画像内に表示されているパターン画像に基づいて、公知の手法により、当該ペア画像を撮像した各カメラ11の内部パラメータを求める(ステップS211)。例えば、ペア画像の各画像内で同じ点を示す特徴点の視差を算出し、その視差ら内部パラメータを求めればよい。
【0053】
ここで、カメラ11に対するパターン画像の位置合わせが不十分であったり、パターン画像の一部に汚れ等があり、特徴点の抽出精度が悪くなるなど、何らかの不備により、内部パラメータの精度が確保されていない可能性がある。従って、制御部23は、公知の手法により、ステップS211で求めた内部パラメータの精度を求める(ステップS212)。そして、制御部23は、求めた精度が所定の閾値以上であるか否かを判別する(ステップS213)。
なお、内部パラメータの精度は、例えば、文献"A Flexible New Technique for Camera Calibration, Zhengyou Zhang, December 2, 1998"に記載されている手法を用いて算出すればよい。より具体的には、同文献に記載の下記式の値(0に近い程精度が高い)を算出することで、パラメータの精度を算出すればよい。
【数1】
【0054】
閾値以上の精度でない場合(ステップS213;No)、ステップS201に処理は移り、制御部23は、表示装置13の移動を再度指示し、以降の処理を繰り返す。
【0055】
閾値以上の精度である場合(ステップS213;Yes)、制御部23は、カメラ11の外部パラメータ算出用のパターン画像をインターネットを介して、クライアント10の端末装置12に送信するとともに、該パターン画像を表示装置13に表示させることを指示する(図9:ステップS214)。この指示に応じて、端末装置12の制御部124は、受信した外部パラメータ算出用のパターン画像を、表示装置13に表示させる(ステップS215)。
【0056】
端末装置12の制御部124は、外部パラメータ算出用のパターン画像の表示が完了すると、その旨を伝える表示完了通知をインターネットを介して、サーバ20に送信する(ステップS216)。
【0057】
表示完了通知を受信すると、サーバ20の制御部23は、ステップS105で選択した視線を構成する各カメラ11の撮像を端末装置12に指示する(ステップS217)。
【0058】
端末装置12の制御部124は、サーバ20のからの指示を受けて、外部パラメータ算出対象の各カメラ11に撮像を実行させ、撮像したペア画像を取得する(ステップS218)。そして、制御部124は、取得したペア画像をインターネットを介してサーバ20に送信する(ステップS219)。
【0059】
サーバ20の制御部23は、外部パラメータ算出用パターン画像を撮像したペア画像を受信すると、当該ペア画像内に表示されているパターン画像に基づいて、内部パラメータと同様に、公知の手法により、当該ペア画像を撮像した各カメラ11の外部パラメータを求める(ステップS220)。
【0060】
続いて、制御部23は、公知の手法により、ステップS220で求めた外部パラメータの精度を求める(ステップS221)。そして、制御部23は、求めた精度が所定の閾値以上であるか否かを判別する(ステップS222)。
【0061】
閾値以上の精度でない場合(ステップS222;No)、ステップS214に処理は移り、制御部23は、外部パラメータ算出用のパターン画像の表示を再度指示し、以降の処理を繰り返す。なお、この際、前回の処理とは異なる外部パラメータ算出用のパターン画像を表示させるのが望ましい。
【0062】
閾値以上の精度である場合(ステップS222;Yes)、制御部は23、ステップS211で求めた内部パラメータとステップS220で求めた外部パラメータとをクライアントDB221に保存する(ステップS223)。以上でパラメータ取得処理は終了する。
【0063】
図6に戻り、パラメータ取得処理が終了すると、制御部23は、ステップS103で登録した視線情報が示す全ての視線を選択したか否かを判別する(ステップS107)。未選択の視線がある場合(ステップS107;No)、ステップS105に処理は移り、未選択の視線を選択して、その視線を構成する2つのカメラ11について撮像パラメータを取得する処理を繰り返す。
【0064】
全ての視線を選択した場合(ステップS107;Yes)、制御部23は、ステップS104で新規登録したエントリに含まれるクライアントID、及び、パスワードを含む、図7(B)に示すような登録応答データを、クライアント10登録要求の送信元である端末装置12に送信する(ステップS108)。
【0065】
図6に戻り、端末装置12の制御部23は、登録応答データを受信すると(ステップS109)、当該登録応答データに含まれるクライアントIDとパスワードとを記憶部22に記憶する(ステップS110)。以上でクライアント登録処理は終了する。
【0066】
このように、登録処理により、クライアント10毎に、クライアント10内の各カメラ11のカメラ情報や視線情報がサーバ20に登録(記憶)される。そして、登録が完了すると、クライアント10の端末装置12は、サーバ20からクライアントIDとパスワードを受信する。そして、以降の各処理(三次元モデル作成処理、三次元モデル合成処理)を行う際に、端末装置12は、クライアントIDとパスワードとをサーバ20に送信して、認証を受けることが可能となる。
【0067】
(三次元モデル作成処理)
始めに、クライアント登録処理について説明する。
サーバ20は、クライアント10から送信された画像ペアから三次元モデルを作成する三次元モデル作成処理を実行する。この三次元モデル作成処理の詳細について、カメラ11Aが撮像した画像Aとカメラ11Bが撮像した画像Bとからなるペア画像から三次元モデルを作成する場合を例に、図12のフローチャートを参照して説明する。
【0068】
まず、クライアント10のユーザは、入力装置14を操作して、三次元モデル作成用の画面を表示装置13に表示させる。そして、ユーザは、入力装置14を操作して、当該三次元モデル作成用の画面から、クライアントIDとパスワードの入力、及び、三次元モデルを作成したいカメラ11Aおよびカメラ11Bが撮像した画像の選択行い、当該三次元モデル作成用の画面に表示されている作成ボタン等をクリックする。このクリック操作に応答して、制御部124は、三次元モデル作成要求データを作成する(ステップS301)。なお、クライアントIDとパスワードとは、前述した登録処理でサーバ20から受信したものを入力すればよい。
【0069】
三次元モデル作成要求データの構成例を図13(A)に示す。三次元モデル作成要求データには、当該データが三次元モデル作成要求データであることを示すコマンド識別子と、クライアントIDと、パスワードと、要求IDと、3Dモデルを作成したいペア画像(画像Aと画像B)の各画像データと、該各画像を撮影した各カメラ11A、11BのカメラID等を含むデータである。なお、要求IDは、同一のクライアント10から連続して三次元モデル作成要求データを受信した場合に、各要求データを識別するためにクライアント10が生成したユニークなIDである。
【0070】
図12に戻り、続いて、制御部124は、作成した三次元モデル作成要求データを、インターネットを介して、サーバ20に送信する(ステップS302)。
【0071】
三次元モデル作成要求データを受信すると(ステップS303)、サーバ20の制御部23は、三次元モデル作成要求データの送信元であるクライアント10が前述の登録処理により事前に登録されているクライアント10であるか否かを判別する(ステップS304)。具体的には、制御部23は、三次元モデル作成要求データに含まれるクライアントIDとパスワードとの組が、クライアントDB221に記憶されているか否かを判別し、記憶されている場合に、登録されているクライアント10であると判別すればよい。
【0072】
登録されていないクライアント10であると判別した場合(ステップS304;No)、未認証のクライアント10からの要求であり、三次元モデル作成処理はエラー終了する。
【0073】
登録されているクライアント10であると判別した場合(ステップS304;No)、制御部23は、三次元モデル作成要求データに含まれている画像データから三次元モデルを生成するモデリング処理を実行する(ステップS305)。
【0074】
ここで、図14に示すフローチャートを参照して、モデリング処理について詳細に説明する。なお、モデリング処理は、一組のペア画像から三次元モデルを生成する処理である。つまり、モデリング処理は、一つの視線から見た三次元モデルを生成する処理と考えることができる。
【0075】
まず、制御部23は、特徴点の候補を抽出する(ステップS401)。例えば、制御部23は、画像Aに対してコーナー検出を行う。コーナー検出においては、ハリスなどのコーナー特徴量が、所定閾値以上かつ所定半径内で最大になる点がコーナー点として選択される。従って、被写体の先端など、他の点に対して特徴のある点が特徴点として抽出される。
【0076】
続いて、制御部23は、ステレオマッチングを実行し、画像Aの特徴点に対応する点(対応点)を画像Bから探す(ステップS402)。具体的には、制御部23は、テンプレートマッチングにより類似度が所定閾値以上かつ最大のもの(相違度が所定閾値以下かつ最小のもの)を対応点とする。テンプレートマッチングには、例えば、残差絶対値和(SAD)、残差平方和(SSD)、正規化相関(NCCやZNCC)、方向符号相関など、様々な既知の技法が利用可能である。
【0077】
続いて、制御部23は、三次元モデル作成要求データに含まれているカメラ11Aと11BのカメラIDをキーにクライアントDB221を検索して、ペア画像(画像Aと画像B)のそれぞれを撮像したカメラ11A、11Bのカメラ情報を取得する(ステップS403)。
【0078】
続いて、制御部23は、ステップS402で検出された対応点の視差情報と、ステップS403で取得したカメラ情報とに基づいて、特徴点の位置情報(三次元位置座標)を算出する(ステップS404)。生成された特徴点の位置情報は、例えば、記憶部22に記憶される。
【0079】
続いて、制御部23は、ステップS404において算出された特徴点の位置情報をもとにドロネー三角形分割を実行し、ポリゴン化を実行し、三次元モデル(ポリゴン情報)を生成する(ステップS405)。
【0080】
そして、制御部23は、ステップS405で生成した三次元モデル(ポリゴン情報)に対して新規のポリゴンIDを付し、該三次元モデルの作成の元となった画像A、画像Bを作成したカメラ11A,11BのカメラIDと対応付けて三次元モデルDB222に保存する(ステップS406)。以上でモデリング処理は終了する。
【0081】
図12に戻り、モデルリング処理が終了すると、制御部23は、三次元モデル作成要求データに対するレスポンスとして、三次元モデル作成応答データを作成する(ステップS306)。
【0082】
図13(B)に三次元モデル作成応答データの構成を示す。三次元モデル作成応答データは、当該データが三次元モデル作成応答データであることを示すコマンド識別子、応答ID、モデリング処理(ステップS305)で生成された三次元モデル、及び、そのポリゴンIDを含むデータである。なお、応答IDは、同一のクライアント10から連続して三次元モデル作成要求データを受信した場合に、クライアント10がどの要求データに対する応答データなのかを識別するために付与されたIDである。応答IDは、要求IDと同一のものでよい。
【0083】
図12に戻り、続いて、制御部23は、三次元モデル作成要求データの送信元であるクライアント10の端末装置12に、作成した三次元モデル作成応答データを送信する(ステップS307)。
【0084】
三次元モデル作成応答データを受信すると(ステップS308)、端末装置12の制御部124は、応答データに含まれる三次元モデルとポリゴンIDとを対応付けて記憶部123に保存する(ステップS309)。そして、制御部124は、保存した三次元モデルを表示装置13に表示させる(ステップS310)。以上で、三次元モデリング処理は終了する。
【0085】
(三次元モデル合成処理)
続いて、前述した三次元モデル作成処理によって作成された複数の三次元モデルを合成して、より精度の高い三次元モデルを作成する三次元モデル合成処理について、図15のフローチャートを参照して説明する。
【0086】
まず、クライアント10のユーザは、入力装置14を操作して、三次元モデル合成用の画面を表示装置13に表示させる。そして、ユーザは、入力装置14を操作して、当該三次元モデル作成用の画面から、クライアントIDとパスワードの入力、及び、合成したい複数の三次元モデル(ポリゴン情報)のポリゴンIDの入力を行い、当該三次元モデル合成用の画面に表示されている合成ボタン等をクリックする。このクリック操作に応答して、制御部124は、三次元モデル合成要求データを作成する(ステップS501)。なお、クライアントIDとパスワードとは、前述した登録処理でサーバ20から受信したものを入力すればよい。また、ポリゴンIDは、前述の三次元モデル作成処理、または、過去の三次元モデル合成処理でサーバ20から受信したものを入力すればよい。また、過去の三次元モデル作成処理や三次元モデル合成処理で取得した三次元モデルをそのポリゴンIDとともに作成の元となった視線毎に記憶部123に記憶しておき、各視線の三次元モデルを表示装置13に一覧表示させ、そのなかから合成したい三次元モデルを選択させることで、合成したい三次元モデルのIDを取得するようにしてもよい。
【0087】
三次元モデル合成要求データの構成例を図16(A)に示す。三次元モデル合成要求データには、当該データが三次元モデル作成要求データであることを示すコマンド識別子と、クライアントIDと、パスワードと、要求IDと、合成したい三次元モデルを特定する複数のポリゴンID等を含むデータである。なお、要求IDは、同一のクライアント10から連続して三次元モデル合成要求データを受信した場合に、各要求データを識別するためにクライアント10が生成したユニークなIDである。
【0088】
図15に戻り、続いて、制御部124は、作成した三次元モデル合成要求データを、インターネットを介して、サーバ20に送信する(ステップS502)。
【0089】
三次元モデル作成合成データを受信すると(ステップS503)、サーバ20の制御部23は、三次元モデル合成要求データの送信元であるクライアント10が前述の登録処理により事前に登録されているクライアント10であるか否かを判別する(ステップS504)。
【0090】
登録されていないクライアント10であると判別した場合(ステップS504;No)、未認証のクライアント10からの要求であり、三次元モデル作成処理はエラー終了する。
【0091】
登録されているクライアント10であると判別した場合(ステップS504;No)、制御部23は、合成処理を実行する(ステップS505)。合成処理の詳細について、図17のフローチャートを参照して説明する。
【0092】
まず、制御部23は、三次元モデル作成要求データに含まれる複数のポリゴンIDのうちから、2つを選択する(ステップS601)。ここでは、2つのポリゴンIDp1、p2を選択したものとして以下説明する。
【0093】
そして、制御部23は、選択した2つのポリゴンIDのそれぞれに対して、当該ポリゴンIDが示すポリゴン情報(三次元モデル)の作成の元となったペア画像を撮影した各カメラ11の外部パラメータを取得する(ステップS602)。具体的には、選択した各ポリゴンIDをキーに三次元モデルDB222を検索してカメラIDを取得する。そして、取得したカメラIDに対応するカメラ11の外部パラメータをクライアントDB221から取得すればよい。
【0094】
続いて、制御部23は、取得した外部パラメータに基づいて、ステップステップS601で選択した一方のポリゴンIDp1が示す三次元モデルの座標を、選択した他方のポリゴンIDp2が示す三次元モデルの座標に変換するための、座標変換パラメータを取得する(ステップS603)。
具体的には、この処理は、式(1)を満たす回転行列Rと移動ベクトルtとを求める処理である。なお、XはポリゴンIDp1が示す三次元モデルの座標を示し、X’は、ポリゴンIDp2が示す三次元モデルの座標を示す。
【数2】
【0095】
前述したように、外部パラメータは、被写体からみたカメラ11の位置を示す情報(座標、チルト、パン、ロール)である。従って、制御部23は、これらの外部パラメータに基づいて、当該外部パラメータを有するカメラペアの撮像画像から作成された被写体の三次元モデルの座標変換パラメータを公知の座標変換式等を用いて算出すればよい。
【0096】
続いて、制御部23は、取得した座標変換パラメータを用いて、ポリゴンIDp1で特定される三次元モデルと、ポリゴンIDp2で特定される三次元モデルとを重ねる(ステップS604)。
【0097】
続いて、制御部23は、ポリゴンIDp1で特定される三次元モデルの特徴点とポリゴンIDp2で特定される三次元モデルの特徴点との重なり具合から信頼性の低い特徴点を除去する(ステップS605)。例えば、ある三次元モデルの注目特徴点に対する他の三次元モデルの最近傍の特徴点の分布から、当該注目特徴点のマハラノビス距離が計算され、このマハラノビス距離が所定値以上の場合は当該注目特徴点の信頼性が低いと判別される。なお、注目特徴点からの距離が所定値以上の特徴点は、最近傍の特徴点に含めないようにしても良い。また、最近傍の特徴点の数が少ない場合、信頼性が低いものと見なされてもよい。なお、特徴点を実際に除去する処理は、全ての特徴点に対して、除去するか否かが判別された後に、実行されるものとする。
【0098】
続いて、制御部23は、同一と見なせる特徴点を統合する(ステップS606)。例えば、所定距離以内の特徴点は、全て同一の特徴点を表すグループに属するものとして扱われ、これらの特徴点の重心が新たな特徴点とされる。
【0099】
続いて、制御部23は、ポリゴンメッシュを再構成する(ステップS607)。つまり、ステップS606において求められた新たな特徴点に基づいて、三次元モデル(ポリゴン情報)が生成される。
【0100】
続いて、制御部23は、三次元モデル作成要求データに含まれる複数のポリゴンIDのうち、未選択のもの(即ち、合成していないもの)が有るか否かを判別する(ステップS608)。
【0101】
未選択のポリゴンIDが有る場合(ステップS608;Yes)、制御部23は、当該ポリゴンIDを1つ選択する(ステップS609)。そして、ステップS602に処理は移り、制御部23は、ステップS609で選択したポリゴンIDが示す三次元モデルとステップS607で再構成した三次元モデルとの間で、同様に、座標変換パラメータを取得して、両三次元モデルを重ね、ポリゴンを再構成する処理を繰り返す。
【0102】
未選択のポリゴンIDが無い場合(ステップS608;No)、三次元モデル作成要求データに含まれるポリゴンIDが示す三次元モデルは全て合成されたことになる。従って、制御部23は、ステップS607で再構成した三次元モデル(ポリゴン情報)に対して新規のポリゴンIDを付し、三次元モデルDB222に登録する(ステップS610)。以上で合成処理は終了する。
【0103】
図15に戻り、合成処理が終了すると、制御部23は、三次元モデル合成要求データに対するレスポンスとして、三次元モデル合成応答データを作成する(ステップS506)。
【0104】
図16(B)に三次元モデル合成応答データの構成を示す。三次元モデル合成応答データは、当該データが三次元モデル合成応答データであることを示すコマンド識別子、応答ID、合成処理(ステップS505)で生成(再構成)された三次元モデルと、当該三次元モデルのポリゴンIDと、を含むデータである。なお、応答IDは、同一のクライアント10から連続して三次元モデル合成要求データを受信した場合に、クライアント10がどの要求データに対する応答データなのかを識別するために付与されたIDである。応答IDは、要求IDと同一のものでよい。
【0105】
図15に戻り、続いて、制御部23は、三次元モデル合成要求データの送信元であるクライアント10の端末装置12に、作成した三次元モデル合成応答データを送信する(ステップS507)。
【0106】
三次元モデル合成応答データを受信すると(ステップS508)、端末装置12の制御部124は、三次元モデル合成応答データに含まれるポリゴン情報とポリゴンIDとを対応付けて記憶部123に保存する(ステップS509)。そして、制御部124は、保存した三次元モデルを表示装置13に表示させる(ステップS510)。以上で、三次元モデル合成処理は終了する。
【0107】
このように、三次元モデル合成処理により、複数の三次元モデルが合成されるので、形状情報の欠損を抑えつつ、高精度な三次元モデリングが可能になる。
【0108】
本発明の実施形態に係る三次元モデル作成システム1によれば、各クライアント10の備えるカメラ11のカメラ情報や視線情報が、クライアント10毎に、事前にサーバ20に保存される。そして、各クライアント10は、撮像したペア画像から三次元モデルを作成したい場合、当該ペア画像をサーバ20に送信し、サーバ20が受信したペア画像と事前に記憶されているカメラ情報とに基づいて三次元モデルを作成する。従って、膨大な演算処理が必要な三次元モデル作成の処理は、1台のサーバ20が全クライアント10の処理を代行して実施するため、クライアント10内の端末装置12は、比較的安価なCPU等で実現可能である。従って、システム全体として、比較的低コストで、撮像画像から三次元モデルを作成することが可能となる。
【0109】
なお、本発明は、上記各実施形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
【0110】
例えば、クライアント10内の端末装置12の制御部124は、所定のフレーム周期(例えば、1/30秒)で各カメラ11に被写体を撮像させ、撮像させた画像をサーバ20にストリーミング送信するようにした構成にも、本発明を適用することが可能である。この場合、サーバ20の制御部23は、連続的に受信した画像を、当該画像を撮像したカメラ11のカメラID及び連続受信した各画像を一意に識別するフレーム番号と対応付けて記憶部22に逐次保存する。そして、三次元モデル作成処理を実施する場合、クライアント10の端末装置12のユーザは、三次元モデルを作成したい画像をカメラIDとフレーム番号で指定する図13(C)に示すような三次元モデル作成要求データを作成して、サーバ20に三次元モデルの作成を実行させればよい。
このようにすることで、三次元モデル作成要求データにサイズの大きな画像データを含めなくて済むため、三次元モデル作成要求データのサーバ20への転送時間を少なくすることが可能となる。
【0111】
また、三次元モデル作成処理において、端末装置12が三次元モデル作成要求データに含めて送信する画像データを、カメラ11が撮像した画像を劣化させた(例えば、画素数を減じた)画像データとしてもよい。この場合、サーバ20は、劣化された画像データから三次元モデルを作成して、端末装置12に送信する。端末装置12は、受信した三次元モデルに、劣化させる前の画像データをテクスチャーとして貼り付け、貼り付けた三次元モデルを表示装置13に表示させる。
このようにすることで、端末装置12は、劣化させた画像をサーバ20に送信するため、転送時間を少なくすることができる。さらに、劣化画像から作成された三次元モデルに、劣化されていない画像をテクスチャーとして貼り付けて三次元モデルを表示するため、三次元モデル自体の劣化はある程度抑えることが可能となる。
【0112】
また、例えば、本発明に係るサーバ20の動作を規定する動作プログラムを既存のパーソナルコンピュータや情報端末機器等に適用することで、当該パーソナルコンピュータ等を本発明に係るサーバ20として機能させることも可能である。
【0113】
また、このようなプログラムの配布方法は任意であり、例えば、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。
【符号の説明】
【0114】
1…三次元モデル作成システム、10…クライアントシステム、20…サーバ、11…カメラ、12…端末装置、13…表示装置、14…入力装置
【特許請求の範囲】
【請求項1】
複数の撮像装置を備えた複数のクライアントシステムと、該クライアントシステムのそれぞれとネットワークを介して接続されたサーバと、を備える三次元モデル作成システムであって、
前記クライアントシステムは、
各前記撮像装置が異なる方向から撮像した被写体の画像データを劣化させた画像データの組から三次元モデルを作成することを要求する、当該劣化させた画像データ及び当該撮像した撮像装置の識別情報を少なくとも含む三次元モデル作成要求データを作成する三次元モデル作成要求データ作成手段と、
前記ネットワークを介して、三次元モデル作成要求データ作成手段が作成した三次元モデル作成要求データを前記サーバに送信する三次元モデル作成要求手段と、を備え、
前記サーバは、
前記クライアントシステム毎に、該クライアントシステムが備える各撮像装置の識別情報と各撮像装置の属性及び撮像パラメータを含む撮像装置情報とを対応付けて記憶するクライアントシステム記憶手段と、
前記三次元モデル作成要求データの受信に応答して、該三次元モデル作成要求データに含まれる識別情報を有する撮像装置の撮像装置情報を前記クライアントシステム記憶手段から取得する撮像装置情報取得手段と、
前記撮像装置情報取得手段が取得した撮像装置情報に基づいて、三次元モデル作成要求データが要求する被写体の画像データの組からポリゴンによって構成される三次元モデルを作成する、三次元モデル作成手段と、
前記三次元モデル作成手段が作成した三次元モデルを、前記三次元モデル作成要求データの送信元であるクライアントシステムに送信する三次元モデル送信手段と、を備え、
前記クライアントシステムは、
前記サーバから受信した三次元モデルに、前記撮像装置が撮像した劣化前の画像をテクスチャとして貼り付けるテクスチャ貼付手段と、
前記テクスチャ貼付手段によりテクスチャが貼り付けられた三次元モデルを表示する表示手段をさらに備える、
ことを特徴とする三次元モデル作成システム。
【請求項2】
前記クライアントシステムは、
各撮像装置が所定の時間間隔で連続的に撮像した画像データを、当該画像の撮影された順番を示すフレーム番号と該撮像装置の識別情報とともに前記サーバに送信する連続画像送信手段、をさらに備え、
前記サーバは、前記連続画像送信手段が送信した画像データとフレーム番号と撮像装置の識別情報とを対応付けて蓄積記憶する画像記憶手段、をさらに備え、
前記三次元モデル作成要求データ作成手段は、三次元モデルの作成を要求する画像データのフレーム番号を含む前記三次元モデル作成要求データを作成し、
前記三次元モデル作成手段は、前記三次元モデル作成要求データに含まれる撮像装置の識別情報とフレーム番号とで特定される画像データの組を前記画像記憶手段から取得し、取得した画像データの組から三次元モデルを作成する、
ことを特徴とする請求項1に記載の三次元モデル作成システム。
【請求項3】
前記三次元モデル作成要求データ作成手段は、前記クライアントシステムの認証用の情報を少なくとも含む三次元モデル作成要求データを作成し、
前記サーバは、
前記クライアントシステムから受信した前記三次元モデル作成要求データに含まれる認証用の情報に基づいて、当該クライアントシステムを認証する認証手段をさらに備える、ことを特徴とする請求項1又は2に記載の三次元モデル作成システム。
【請求項1】
複数の撮像装置を備えた複数のクライアントシステムと、該クライアントシステムのそれぞれとネットワークを介して接続されたサーバと、を備える三次元モデル作成システムであって、
前記クライアントシステムは、
各前記撮像装置が異なる方向から撮像した被写体の画像データを劣化させた画像データの組から三次元モデルを作成することを要求する、当該劣化させた画像データ及び当該撮像した撮像装置の識別情報を少なくとも含む三次元モデル作成要求データを作成する三次元モデル作成要求データ作成手段と、
前記ネットワークを介して、三次元モデル作成要求データ作成手段が作成した三次元モデル作成要求データを前記サーバに送信する三次元モデル作成要求手段と、を備え、
前記サーバは、
前記クライアントシステム毎に、該クライアントシステムが備える各撮像装置の識別情報と各撮像装置の属性及び撮像パラメータを含む撮像装置情報とを対応付けて記憶するクライアントシステム記憶手段と、
前記三次元モデル作成要求データの受信に応答して、該三次元モデル作成要求データに含まれる識別情報を有する撮像装置の撮像装置情報を前記クライアントシステム記憶手段から取得する撮像装置情報取得手段と、
前記撮像装置情報取得手段が取得した撮像装置情報に基づいて、三次元モデル作成要求データが要求する被写体の画像データの組からポリゴンによって構成される三次元モデルを作成する、三次元モデル作成手段と、
前記三次元モデル作成手段が作成した三次元モデルを、前記三次元モデル作成要求データの送信元であるクライアントシステムに送信する三次元モデル送信手段と、を備え、
前記クライアントシステムは、
前記サーバから受信した三次元モデルに、前記撮像装置が撮像した劣化前の画像をテクスチャとして貼り付けるテクスチャ貼付手段と、
前記テクスチャ貼付手段によりテクスチャが貼り付けられた三次元モデルを表示する表示手段をさらに備える、
ことを特徴とする三次元モデル作成システム。
【請求項2】
前記クライアントシステムは、
各撮像装置が所定の時間間隔で連続的に撮像した画像データを、当該画像の撮影された順番を示すフレーム番号と該撮像装置の識別情報とともに前記サーバに送信する連続画像送信手段、をさらに備え、
前記サーバは、前記連続画像送信手段が送信した画像データとフレーム番号と撮像装置の識別情報とを対応付けて蓄積記憶する画像記憶手段、をさらに備え、
前記三次元モデル作成要求データ作成手段は、三次元モデルの作成を要求する画像データのフレーム番号を含む前記三次元モデル作成要求データを作成し、
前記三次元モデル作成手段は、前記三次元モデル作成要求データに含まれる撮像装置の識別情報とフレーム番号とで特定される画像データの組を前記画像記憶手段から取得し、取得した画像データの組から三次元モデルを作成する、
ことを特徴とする請求項1に記載の三次元モデル作成システム。
【請求項3】
前記三次元モデル作成要求データ作成手段は、前記クライアントシステムの認証用の情報を少なくとも含む三次元モデル作成要求データを作成し、
前記サーバは、
前記クライアントシステムから受信した前記三次元モデル作成要求データに含まれる認証用の情報に基づいて、当該クライアントシステムを認証する認証手段をさらに備える、ことを特徴とする請求項1又は2に記載の三次元モデル作成システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−257282(P2012−257282A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2012−165813(P2012−165813)
【出願日】平成24年7月26日(2012.7.26)
【分割の表示】特願2010−294257(P2010−294257)の分割
【原出願日】平成22年12月28日(2010.12.28)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願日】平成24年7月26日(2012.7.26)
【分割の表示】特願2010−294257(P2010−294257)の分割
【原出願日】平成22年12月28日(2010.12.28)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]