JP3575469B2 - 合成動画像生成装置および合成動画像生成方法 - Google Patents
合成動画像生成装置および合成動画像生成方法 Download PDFInfo
- Publication number
- JP3575469B2 JP3575469B2 JP2002064643A JP2002064643A JP3575469B2 JP 3575469 B2 JP3575469 B2 JP 3575469B2 JP 2002064643 A JP2002064643 A JP 2002064643A JP 2002064643 A JP2002064643 A JP 2002064643A JP 3575469 B2 JP3575469 B2 JP 3575469B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- dimensional
- image data
- point
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Studio Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、3次元形状モデルの作成技術に関し、特に実写画像に写る物体の3次元形状モデルを作成する3次元モデル作成装置及び方法に関する。
【0002】
【従来の技術】
コンピュータ等を用い、3次元物体の3次元形状モデルを作成する方法としては、ユーザがGUI等を用い物体の形状や座標を対話的に入力し作成する方法が一般的である。形状や座標の入力方法としては、3面図を用いたり、プリミティブと呼ばれる基本的な図形群のなかから作成する物体に最もあてはまる図形を選び適当な変形を加えてモデルを作成する方法、直接長さや座標を数値で入力する方法等がある。
【0003】
例えば、特開平5ー342310号公報「線要素データの3次元変換装置及び方法」では、3次元物体を入力する際に紙面上にスケッチしているかのように操作できる装置を提示している。
【0004】
一方、物体のモデルを作成する際の条件として、(1)物体の形状が既知あるいは計測可能な場合、(2)物体の形状は未知あるいは未定で、具体的な形状や寸法を決定しながらモデルを作成する場合、(3)物体の形状は未知であるがその実写画像がある場合、などが考えられる。
【0005】
本発明の対象とする条件は、(3)の物体の形状は未知だがその実写画像がある場合である。この場合、実写画像を参照しながら(2)の形状未知の物体のモデル作成方法を用い、その際できあがるモデルが結果的に実写画像の物体になるべく近くなるように作成する方法が一般的である。しかし、この方法はあくまで実写画像を物体のモデルを作成するための参照として用いるだけなので、実写画像の物体形状に関する2次元的な情報は直接モデル作成には反映されない。
【0006】
特開平5−233781号公報「動画像利用の立体モデル作成システム」では、実写画像を参照して立体モデルを作成するとき、実写画像内の対象物と、作成する立体モデルの生成画像を同一画面上で重ねて表示する方法を提供している。利用者は少ない心理的負担で、実写の対象物と立体モデルの生成画像の差違を容易に確認できる。しかし、この場合も、作成したモデルを確認する、という意味で実写画像を用いているだけで、モデル作成時にその情報を利用することには言及していない。また、実写画像と作成モデルを重ねあわせるために必要な、実写画像のカメラパラメータがわかっている必要がある。
【0007】
実写画像の2次元情報から、3次元モデルを直接作成することは一般には不可能である。2次元の映像情報からは、そこに表示される任意の点の奥行き情報がわからないため、それが3次元的にどの位置にあるのかを一意に特定することができないからである。しかし実際にはさまざまな前提条件を仮定すれば求めることができ、その手法は立体認識と呼ばれている。
【0008】
立体認識は大きく2つの手法に分類できる。一つは異なる視点から見た複数の映像を用いる方法で、もう一つは1枚の画像だけからその画像に含まれる2次元座標以外の情報を利用し3次元構造を復元する方法である。
【0009】
複数の画像を用いる方法で代表的なのはステレオ画像による立体認識である。異なる場所に設置した2台以上のカメラによって同一物体を撮影し、それぞれのカメラの相対位置関係の情報と、画像上に写るある点のそれぞれの画像上での2次元座標値からその3次元座標値を求める。
【0010】
1枚の画像による立体の認識方法には、(1)3次元座標値が既知の点を参照する方法、(2)画像に写る物体と、あらかじめ用意した基本形状のモデルとの比較を行なう方法、(3)画像のテクスチャ情報を用いる方法、などがある。
【0011】
3次元座標値が既知の点が3点以上あればカメラ視点の3次元座標と視線の方向を求めることができる。この問題は一般に PnP (Perspective n−Point Problem)問題と呼ばれている(出口光一郎:“画像と空間”、昭晃堂、1991)。しかし、この方法はあくまでカメラのパータを求めるだけで、画像に含まれるその他の点の3次元座標を求めることはできない。
【0012】
画像に写る物体と、あらかじめ用意した基本形状のモデルとの比較を行なう方法は、さまざまな基本形状の3次元モデルを用意しておき、それを透視変換で見た画像と、実際の画像との比較を行ない、3次元モデルを推定、近似する方法である。
【0013】
本方法を3次元モデル作成に適用したシステムには、特開平4−289976号公報「三次元形状モデル生成方法およびシステム」がある。これは、対象となる三次元物体の二次元図形情報を入力し、その物体と基本形状が近似する三次元基本形状モデルを入力し、お互いの制御点の対応づけを行なうことで基本形状モデルを変形して三次元モデルを作成する方法を提供している。
【0014】
画像のテクスチャ情報を用いる方法の代表的なものとして Shape From Texure法がある。物体の表面のテクスチャの密度の濃淡から、その平面の向きを算出する。算出の精度が、物体の表面のテクスチャの種類に依存するなどの短所がある。
【0015】
【発明が解決しようとする課題】
実写画像に写る物体の3次元モデルを作成するにあたり、実写画像を直接用いず3次元モデルを作成し、作成したモデルを確認するために、作成したモデルと実写画像を重ねて表示する方法では、実写画像に含まれる物体の形状情報をモデル作成時に有効に活用していない。
【0016】
このため、3次元モデル作成時に実写画像の物体にあてはまるモデルを作成するためにモデリングと確認を試行錯誤しながらくり返し行なう必要がある。
【0017】
3次元基本形状モデルを入力し、2次元画像上で実写画像の物体とそのモデルが一致するように変形する方法では、その画像を写したカメラの位置、方向等のパラメータが既知である必要があり、また基本形状モデルと実写画像上の物体との制御点の対応づけを行なう必要がある。
【0018】
複数の画像を用いる方法(ステレオスコープ)では、同じ物体を違う方向から写した画像を複数枚用意する必要がある。
【0019】
本発明の目的は、ある物体の3次元モデルを作成する際に、その物体の実写画像を有効に利用し、なるべく簡単な方法で作成する3次元モデル作成装置及び方法を提供することにある。
【0020】
本発明の他の目的は、実写画像から求まる該実写画像を撮像したカメラパラメータを用いて該実写画像の三次元モデルデータを求める3次元モデル作成装置及び方法を提供することにある。
【0021】
本発明の他の目的は、実写画像から求まる該実写画像を撮像したカメラパラメータと該カメラパラメータを用いて実写画像をモデリングし、モデリングした実写画像のデータを用いて、実写画像に他のイメージを合成する3次元モデル合成装置及び方法を提供することにある。
【0022】
【課題を解決するための手段】
上記課題を解決するため、本発明では、3次元物体の写る実写画像があったときに、その実写画像データから、ユーザが対話的に、特徴点の画像上での位置などの実写画像に関する特徴情報を入力する手段と、その特徴情報に関する知識情報を入力する手段と、それらの情報から前記実写画像を写したときのカメラパラメータ算出手段と、前記実写画像から、そこに写る3次元物体の特徴点位置等の特徴情報をユーザが対話的に入力する手段と、その特徴点に関する3次元的な拘束条件等の知識情報を入力する手段と、入力したそれらのデータと前記カメラパラメータから、その点の3次元座標を算出し、最終的に前記3次元物体の3次元モデルを作成する手段を備える。
【0023】
【発明の実施の形態】
図1は、本発明に基づく実施の形態の装置構成である。数値やコマンドを入力するキーボード(110)、2次元座標値の入力やGUI(グラフィカルユーザインタフェース)を操作するためのマウス(103)、実写画像や3次元モデル、GUIなどを表示するディスプレイ(101)、実写画像データやモデルデータ、プログラムなどを保存するためのハードディスク等の補助記憶装置(102)、作業時に画像データやモデルデータ、計算結果やプログラムなどを記憶する主記憶(111)、プログラムに基づいた計算や制御を行なう CPU(105) 、実写画像の表示や3次元モデルの表示を制御するグラフィックボード(104)などを主体として構成される。
【0024】
主記憶には、本装置の動作を記述するプログラム(106)、作成したモデルの3次元構造データや、実写画像のカメラパラメータデータを記録する3次元データテーブル(107)、対象となる実写画像をディジタル化した画像データ(108)、操作時に計算結果やパラメータ等を記録する計算データ(109)などが記憶される。
【0025】
グラフィックボードは3次元処理機能を持つものとする。すなわち、表示するモデルの3次元構造、ディスプレイに表示する際の投影条件(透視投影、平行投影など)、カメラ位置、方向、焦点距離などのカメラパラメータなどを指定すれば、その条件で見えるモデルの形状を自動的に表示してくれる。本実施の形態では、この機能をグラフィックボードというハードウェアが行なうとしたが、本機能をソフトウェアが行なう、あるいはソフトウェアとハードウェア両者が行なうといった形態も考えられる。なお、この機能は3次元グラフィックスに対応したコンピュータでは一般的なものである。
【0026】
本実施の形態による装置の利用目的は、実写画像からそこに写る物体の3次元構造を求めること、ならびにその画像を写したときのカメラパラメータを求めることである。本実施の形態によって求められた3次元構造を用いるアプリケーションとして、具体的には、ある家の内部をカメラで撮影した実写画像があった場合、この画像に、CG で作った架空のキャラクタが自由に歩きまわれる、といったものがある。あるいは、その画像の任意の位置に CG で作った仮想の机を置いて合成表示する、といったアプリケーションを想定することもできる。
【0027】
このようなアプリケーションにおいて、実写画像に3次元 CG モデルを違和感なく合成するためには、(1)実写画像内の物体と CG モデルとの前後関係、(2)お互いのパースの一致、(3)影の映りこみなどの問題から、合成する実写画像(3次元CGモデルの背景を成すもの)の3次元構造がわかっている必要がある。なお、以下の説明において、実写画像の3次元構造とは、その実写を写したときのカメラ位置、方向などのカメラパラメータ、およびその画像に写る物体の3次元構造情報のことをあらわすものとする。
【0028】
まず、実写画像内の物体とCGモデルとの前後関係について、図2、図3、図4を用いて詳しく説明する。
【0029】
図2は合成に用いた場合に背景となる実写画像(201)である。実写画像には3次元物体A(202)3次元物体B(203)が映っている。
【0030】
図3は合成する CG モデル(301)である。 CG モデルは3次元的に作成されている。すなわち、平面画像ではなく、立体モデルとして作成されているものとする。
【0031】
図4は合成した画像(201)である。図に示した位置に CG モデル(301)がくるように合成すると、図のように CG モデルの一部が実写画像の物体(203)に隠れていなければ不自然である。このような効果を出すには、1例として次のような処理が必要である。
【0032】
(1)合成する実写画像に写る物体(202)(203)の3次元モデルを作成し、そのモデルと前述の CG モデルを3次元的に合成した画像を作成する。ここで3次元的に合成するとは、ある方向から見たときに前の物体によって、後ろの物体が隠れる陰面処理を行なうということである。この処理は3次元グラフィックボードが自動的に行なってくれるのが一般的である。
【0033】
(2)次にこの実写画像に写る物体の3次元モデルを画像上から消去する。
【0034】
(3)その画像を実写画像に重ねて表示する。
【0035】
以上の手順により、図に示すような実写の物体に部分的に隠れた CG モデルを合成することができる。
【0036】
次にパースの一致について、投影条件として透視投影を仮定し説明する。透視投影では手前のものは大きく、遠くのものは小さく映り、また平行線は無限遠上で一点に交わる。
【0037】
ある実写画像に、手前にある物体(503)と、遠くにある物体(504)が映っているとする(図5)。この実写画像に CG モデル(501)を合成しようとすると、合成する3次元的な位置に応じて、CG モデルの大きさを変化させなければならない(501)(502)。カメラ位置からの距離と、どれだけ小さくなるかの関係を、実写画像と合成する CG モデルとの間で一致させないと、例えばモデルが遠くに移動したとき極端に小さくなったり、モデルが地に足をついているように見えなくなってしまう。こういった不自然な合成にしないためには、実写画像と、合成するCG画像それぞれのカメラ位置、視線方向、焦点距離などを一致させる必要がある。このため、実写画像のカメラパラメータは必要不可欠な情報となる。
【0038】
次に図6を用いて、影の映りこみについて説明する。リアルな合成画像を作成するには合成するモデル(601)の影(603)を、もう一方の合成する実写画像(602)に描画しなければならない。影が地面に写るだけなら複雑にはならないが、実写画像の物体に映りこむことも考えられる。その場合は、写る先の物体(602)の3次元形状がわからないと、その影の形(603)を求めることができない。
【0039】
以上述べてきたように多くの理由から、実写画像とCGモデルとのリアルな合成画像の作成のためには実写画像の3次元構造は必要不可欠である。
【0040】
以下、本実施の形態におけるディスプレイに表示される画面の例、プログラムの流れ等について説明する。
【0041】
図7は本実施の形態で用いる実写画像(701)の例である。画像にはある物体(702)が映っている。本実施の形態では、カメラあるいはビデオなどで撮影した画像を、スキャナあるいはAD変換器などを用いてディジタル化したデータを用いる。画像データの解像度は、誤差の問題等からなるべく高解像度のものが望ましい。本データは本実施の形態の構成における補助記憶装置に記録されているものとする。
【0042】
以下、図43のフローに従い、カメラパラメータの求め方を具体的な例に従って説明する。
【0043】
図8は本装置のディスプレイ上に表示される初期画面の1例である。画面(801)には画像の表示やコマンドの入力を行うウインド(802)が表示されている。ユーザは“ファイルを開く”コマンド(803)を選択し、画像データのファイル名を指定する。装置のプログラムはこの操作が行われると、補助記憶装置から該データを読みだし、主記憶に記憶させるとともに(4302)、画面上に表示する(4303)。主記憶上には、この画像データのための3次元データテーブル格納領域が確保される。
【0044】
まずユーザは、この実写画像のカメラパラメータ(視点パラメータ)を求める操作を行なう。本実施の形態では、カメラパラメータを求める方法として、画像上の消失点とその直交方向を用いる方法を1例としてとりあげる。消失点とは、3次元空間上で平行な線が無限遠において、投影面上で1点に収束する点である。
【0045】
図9は、図8でとりあげた物体(901)の、ある方向(903)の消失点(902)を示したものである。この方法を用いるためには、画像に消失点とその直交方向が映っていなければならないという条件が必要となるが、建物や直線の道路などが映っている風景画像はほとんどの場合この条件を満たすし、部屋の内部の画像も、机等の家具は直方体に近いものが多いなど、一般にこの条件を満たしている画像は少なくない。ユーザは画像からある消失点を選ぶ。このときの条件は、その消失点に収束する線分と、それに直交しかつ、お互いに直交する2方向が画像上から読み取れることである。図10に示すように、例えば直方体(1001)が1つ映っていれば、候補となるのは次の組み合わせである。
【0046】
ユーザはこのなかから1つの組み合わせを選び、まずその消失点を指定する。指定の方法は、本実施の形態では空間上の複数の平行線の交点として指定する方法を用いる。
【0047】
直線の指定の方法は、マウスによって、画像上の線分の両端の位置を指定するなどの方法が考えられるが、1度の操作で正確に指定することは難しい。そこで本例では、とりあえず直線の両端を指定しその直線を補助線として画面上に重ねて表示させた後、両端などの制御点をマウスでドラッギングすることで移動修正できるようなユーザインタフェースを用いる。ユーザはコマンドを選べば、1方の端点は固定のままもう1方の端点を移動する、両者を同じ方向に移動させ、結果として線分を平行移動する、などの操作を行なうことができる。またマウスだけでなく、キーボード等を用いて線分や制御点をキーボードを押した距離だけ移動させることもできる。さらに、移動の単位はサブピクセル単位の移動も可能とし、アンチエイリアスの技術を用いて、直線のサブピクセル単位の位置の表示を行なう。
【0048】
図11はこの操作を示した例である。ユーザはまず、線分(1104)を画面上で描く。線分の両はじには、制御点(1106)(1101)が表示されている。この制御点(1106)をマウスポインタ(1108)によってドラッギングすると、新たな位置(1107)に移動する。移動を終了するとその制御点が端の点になるような線分(1105)に修正される(4304)。以上のようにして、複数の直線(1105)(1102)(1103)を指定した後、適当なコマンド例えば“消失点算出”などのコマンドを入力すると、プログラムは複数の線分の交点としてその点の画像上の2次元位置を算出する。この場合、本来、それら複数の線分はある1点で交わらなければならないが、実際は誤差などの影響で必ずしも1点で交わらないことがある。図において点線円で囲った部分(1110)を拡大したものが図12である。このように複数の直線が1点で交わらないときには、それぞれの線分からの距離の自乗和が最少となるなど何らかの条件のもと、近似的に交点(1120)を求める(4305)。具体的な算出方法は、「金谷、画像理解、森北出版、1990、p15」などに詳しい。画面上では、求められた消失点位置に、確認のための点が表示される。
【0049】
次にユーザは、この消失点に向かう方向と直交する二つの方向を指定する。
【0050】
指定方法は本例でこれまで述べてきたような直線の指定方法を用いる。この2つの線の交点が、3次元を算出するときの原点になる。またこの2線の方向が X軸方向、Y 軸方向、またこの交点と前述の消失点とを結ぶ方向が Z 方向となる。画面上では、2直線が指定された時点で、わかりやすいように Z 方向が線分として表示される。図13はその画面の例である。消失点としてドット(1208)が表示され、X方向として、線分(1202)、Y方向として、線分(1201)、Z方向として、線分(1203)が表示される。原点は(1220)の位置になる。
【0051】
図14に、座標系の関係を示す。図において、補助線(1301)は視線方向を、(1302)は投影面をそれぞれ示している。本装置の画面上で、実写画像を用い平面的に座標を指定する場合に用いる座標系は、この投影面の中心を原点(1304)にした2次元の座標系である投影座標系(1303)(1305)である。これに対し、この座標系とは全く無関係に、定義される3次元座標系(1306)(1308)(1309)がある。この座標系をワールド座標系とする。実写画像(投影画像)上での線分(図13)(1202)が、3次元空間(ワールド座標系)上での線分(1306)を、線分(1201)が線分(1309)を、線分(1203)が線分(1308)を、また実写画像上での点(1220)が3次元空間上での点(1310)をそれぞれあらわすことになる。今後、画像上で2次元的に座標を指定するときは投影座標系、3次元モデルの形状やカメラパラメータなどを記述するときはワールド座標系を用いる。投影座標系とワールド座標系の関係は、その投影画像を撮影したときのカメラパラメータすなわち、ワールド座標系におけるカメラ位置、カメラ方向、焦点距離が決定されれば、後述のように記述される。
【0052】
いま、画像平面上の消失点位置 Pv (xv, yv) 、その直交方向 vx , vy が入力されると、プログラムは、この値を用いて、この画像のカメラ位置 (a, b, c)、方向 R、焦点距離 f を求める(4306)。なお、このときの座標系は、前述の X 軸、Y 軸、Z 軸を用いたワールド座標系である。方向 R は、3 × 3 の単位直交行列である。以下、算出方法を簡単に説明する。
【0053】
一般に、(数1)で示される画像面に投影されるある点の投影面座標での位置
【0054】
【数1】
【0055】
と実際のその点のワールド座標系での3次元位置
【0056】
【数2】
【0057】
との関係は、
【0058】
【数3】
【0059】
であらわされる。なお、
【0060】
【数4】
【0061】
である。
【0062】
画像面に投影される Z 方向の消失点位置を
【0063】
【数5】
【0064】
画像面の原点位置を
【0065】
【数6】
【0066】
画像面のX軸方向、Y軸方向のある点をそれぞれ
【0067】
【数7】
【0068】
【数8】
【0069】
とおくと、行列Rの正規直交性の条件等を用い、
とおいたとき、
【0070】
【数12】
【0071】
のfについての4次方程式が成り立ち、これによりfが求まる。さらに、
【0072】
【数13】
【0073】
【数14】
【0074】
【数15】
【0075】
ここで k, l, m は未知定数から、それぞれが単位直交系をなすように未知定数を求めることで、回転行列Rが算出される。
【0076】
さらに、カメラパラメータの中のカメラ位置(視点位置)については、
【0077】
【数16】
【0078】
より、スケールファクタz0が残る形で求まる。
【0079】
以上述べた計算をプログラムは行ない、これにより画像のカメラパラメータが求まる。以上の結果は、主記憶にある前述の画像3次元データテーブルに記録される。またこれ以降、プログラムは、3次元モデルをこの画面上に表示する際には、このカメラパラメータをモデルの3次元座標値とともに前述のグラフィックボードに渡し、常に表示する3次元モデルがそのカメラパラメータで見た映像として表示されるようにする。
【0080】
画像の3次元カメラパラメータが求まると、プログラムは、前述の作業で表示していた、画像上の線分、すなわち2次元的に指定した原点と消失点を結ぶ線分(1203)およびユーザが入力した2つの直交方向を示す線分(1201)(1202)を消去し、新たに、3次元座標で (−∞, 0, 0) と (∞, 0, 0) を結ぶ直線(図14、1410)、(0, −∞, 0) と (0, ∞, 0) を結ぶ直線(1411)、(0, 0,− ∞) と (0, 0, ∞)を結ぶ直線(1414)を補助線として表示する(4307)。これらの直線は、前者の3つの線分と画像平面上で全く一致する。
【0081】
これらの3本の補助線の他にユーザがわかりやすいように、それが X, Y, Z軸を示しその交点が原点をあらわすこと示すx, y, z ,O の文字を表示する(図15)(1415)(1416)(1417)(1412)。尚、ワールド座標系での座標軸を前記実写画像に重ねて表示し、これらの直線がユーザの選択した2直線及び原点と消失点を結んだ直線に一致するか否かをユーザは容易に確認できる(4308)。
【0082】
一致しない場合は、ユーザの選択した実写画像における線分が不適であるかあるいは線分の指定に誤差が含まれているため不適であるかであるため、ステップ4304に戻って処理をやり直す。次に一致した場合は、先に主記憶に記憶した画像3次元データテーブルに格納したデータをカメラパラメータとして格納する(4309)。
【0083】
以上で、本実施の形態の装置における画像のカメラパラメータ算出の一連の作業、動作は完了する。
【0084】
次に、実写画像の中に存在する物体の3次元構造を求める作業および動作について説明する。
【0085】
3次元構造を求める際には、後述する拘束条件を設定するモード、および設定しないモードを設ける。
【0086】
まず、3次元空間上の点の位置を求める方法について述べる。
【0087】
図16に示すように、画面には3次元座標値を表示するためのテキストエリア(1421)(1422)(1423)が表示される。このエリアを仮に3次元座標表示ボックス(1420)と呼ぶことにする。ここには、現在対象となる点(線)の3次元座標値がリアルタイムに表示される。
【0088】
本実施の形態で仮定している投影方法である透視投影は、図17のような原理に基づいている。すなわち、カメラ位置(1710)から物体(1712)を見た映像は、両者を結ぶ直線(1714)が、投影面(1711)に交わる点の像(1713)となる。このため、投影画面上の一点を指定すると、それは3次元空間上では、ある線上の任意の点あるいはその線そのものをあらわすことになる。
【0089】
図18はこのことを示す1例である。視点(1710)から空間上の線分(1811)を見たとき、ちょうどそれが視線上(1813)にあると、投影画像(1711)には点(1810)として写る。逆に言うと、投影画像上で点(1810)として写る3次元上の物体(点または線分)は、直線(1811)上のどこにあるかはわからない。投影画像上の点は、3次元空間上の直線に相当する。
【0090】
カメラ位置、方向、ならびに焦点距離がわかればこの線は投影平面上の一点に対して一意に求められる。第1のモード(後述する拘束条件の全くないモード)において、ユーザが表示されている実写画像上の任意の点をマウスによって指定すると、前述の3次元座表表示ボックスには、その点に投影される直線の3次元式が表示される。直線をあらわす方法は各種考えられるが、本例では、その直線がカメラ位置を通る直線であることから、カメラ位置と方向ベクトルの和、という形式で表示することにする。すなわち、投影座標系での、画像上のある点を
【0091】
【数17】
【0092】
カメラ位置を
【0093】
【数18】
【0094】
視点方向を3×3の直交ベクトル表示してRとおき焦点距離をfとおくと、その直線上の点は
【0095】
【数19】
【0096】
で求められる。よって、3次元座標表示ボックスには、例えばカメラ位置が (8. 24, 9.99, 63.12)だとすると、
X = [ 8.24 + k(0.26) ]
Y = [ 9.99 + k(−0.08)]
Z = [ 63.12 + k(0.96)]
のように表示される。なお、k は任意のパラメータであることを示しており、 (0.26, −0.08, 0.96) はカメラ位置からの方向を示す単位ベクトルを示している。マウスを移動すれば当然この方向ベクトルの値は変化する。ユーザはこの値を見て、数値的に画像上の物体の位置を確認することができる。
【0097】
次に拘束条件を設定するモードについて説明する。
【0098】
図19において、図示している点(1910)の3次元位置を求めることを考える。本来この点は、前述したようにある直線上の任意の点となり、一意に決めることができないが、この場合この点はY軸上の点であることが、画像の特徴から知識として仮定することができる。実際の画像においては、物体の垂直方向の各辺は、地面に対して垂直である、などという知識が、この仮定の根拠となる。ユーザは、これから入力する点がある線上に存在している、という拘束条件を与えて指示するモードを選択する。このモードを、線拘束入力モードと呼ぶことにする。具体的には、この例の場合 m をパラメータとおいたとき
【0099】
【数20】
【0100】
と拘束線を表現することができる。前述のように画像平面上のある点
【0101】
【数21】
【0102】
の位置に写る3次元空間上の点は式(19)のようにあらわす直線上にあるので、この線と拘束線との交点を求めるために両者から
【0103】
【数22】
【0104】
の等式を立て、未知数 m, k を求めれば対象となる点の3次元位置を求めることができる。なお、空間上の直線と直線は必ずしも交点を持つとは限らないが、この場合は両者とも投影平面上で同一の直線上にあるため、必ず交点が存在する。
【0105】
以上の操作を一般的に述べる。
【0106】
まず、処理をスタートする(4401)。次に、実写画像のディジタルデータをメインメモリに読み込むと同時に、前述した方法に従い算出した実写画像を撮影した時のカメラパラメータを読み込む(4402)。
【0107】
次に、読み込んだカメラパラメータを用いてワールド座標系を求め、ワールド座標系における座標軸を前記実写画像に重ねて表示する(4403)。
【0108】
ユーザはまず、3次元位置を求めるべき点を、実写画像上から選ぶ(4404)。同時にその点を求める際に有効な拘束線を選ぶ(4405)。拘束線の指定の仕方は例えば次のような方法がある。
【0109】
一つはすでに3次元のおきている(求まっている)直線を指定する方法である。後に述べるように、本装置では、すでに3次元形状の求まっている点や線、あるいは面などを画面上に表示することができる。ユーザはこれらを表示させ、その中から拘束線となる線分を選択する。選択の方法はマウスによる線分のクリックなどが考えられる。この線分が拘束線となる。図19の例では、 (0, −∞, 0)と (0, ∞, 0) を結ぶ直線である。
【0110】
もう一つは、すでに3次元のおきている点を指定し、その点からある方向を指定する方法である。まず、ユーザは前述の直線の指定のときと同じ様に、すでに3次元形状の求まっている点をすべて表示させ、その中から適当な点をクリックする。この点がカレントの点(カレントポイント)となる。ユーザはこのカレントポイントから方向を指定する。方向の指定の方法は、方向をベクトルとして直接数値で入力させることもできるが、X軸、Y軸、Z軸方向に拘束条件を設ける方法もできる。直接数値で入力させる方法では、ユーザは数値入力エリアに3次元座標値を入力する。数値入力エリアは、例えば3次元座標表示ボックス(図16(1420))が兼ねる。この点と、前述のカレントポイントを結ぶ直線が、拘束線となる。軸方向に拘束条件を設ける方法は、次のような原理に基づく。X,Y, Zの3つの成分のうち2つの成分を固定させ残りの1つの成分を自由にすると、これは自由な成分の方向に平行な直線を示すことになる。例えば、ある点の座標を
【0111】
【数23】
【0112】
とし、X = 50.2、Z = 33.4に固定し、Y 成分を自由な値とするとこれは
【0113】
【数24】
【0114】
とパラメータ表現される。すなわち、
【0115】
【数25】
【0116】
の点をとおりY軸方向に平行な直線を示すことになる。
【0117】
ユーザが、カレントポイントを指定すると3次元座標表示ボックスにはそのカレントポイントの座標が表示される。X軸、Y軸、Z軸の3つのなかで、拘束する成分2つをボタンで選ぶ。たとえば、X軸方向、Z軸方向の拘束ボタンを選ぶと、カレントポイントの座標値が表示されている3次元座標表示ボックスのXの欄とZの欄に網がかかる。これは、座標をあらわすX, Y, Z の3つの成分のうち、X, Zの値はこの値に固定されることを示している。図20は、このときの実際の画面を示している。すでに3次元上の座標の求まっている、実写画像上のある点(2020)があるとする。ユーザはこの点を指定し、カレントポイントとすると、まず3次元座標表示ボックスの各エリア(2025)(2026)(2027)にはこの点の3次元座標値が表示される(4404)。次に拘束条件を入力する(4405)。例えばXZ軸成分拘束、Y軸成分自由の線分を指定したいとすると、ユーザはボックス内のボタン(2023)と(2024)をクリックし、そのボタンを選択状態にする。エリア(2025)(2027)にはカレント点の座標値がそのまま表示される。またエリア(2026)には、値が任意のために何も表示されない。すなわちこれは、式(24)
【0118】
【数24】
【0119】
で示される直線を意味している。プログラムは、実写画像上(1413)にこの直線を表示する。以上が実際に拘束線を定義する操作の例である。
【0120】
以上のような操作のいづれかによって、拘束線が決められると、プログラムはこの線分をわかりやすいように独自の色で表示する。
【0121】
次に、ユーザはこの拘束線上にある、目的の点を指定する(4406)。このとき、ユーザがマウスでポイントできる点はこの線上だけに限られる。例えば、図21においてユーザが図の点(2120)をクリックしたときに、プログラムはこの点に最も近い拘束線上(2028)の点(2110)を指定点として認識する。プログラムは、指定点にその点が指定されたことを示す制御点(ドット)(2110)を表示する。一度の操作で目的の点が指定できるとは限らないので、一度ある点を指定して制御点を表示させた後、その制御点をマウスのドラッグによって移動させることもできる。なおこのとき移動させる位置も拘束線上にあるべきなので、マウスの位置に最も近い拘束線上の点に移動していくようにする。
【0122】
点として指定する本方法の他に、ユーザはある別の線と、拘束線との交点として、目的の点を指定することもできる。この方法を選べば、画面には図22のようにもう1つの線(2220)が表示される。ユーザはこの線を、前述の消失点の指定のしかたの項で述べたように、両端の制御点(2021)のドラッギングなどの操作により移動させ、目的とする点(2230)が、この線と拘束線(2028)の交点の位置にくるようにする。この状態で、確定を指示するコマンドを入力すると、この点が指定点としてプログラムに認識される。
【0123】
この図の例に示した直方体の頂点などは、点として指定するより、辺と辺との交点として指定した方が、操作し易く正確に入力することができることが多い。なお、線の交点として指定点を入力する方法と、点として入力する方法は、ユーザの操作により自由に切り変えることができる。
【0124】
以上のようにして、拘束線の上の目的の点が、ユーザによって指定され、確定を指示するコマンドが入力されると(4407)、プログラムはこの点の画面上での2次元位置と、拘束線の式から式(22)により、その3次元位置を求める(4408)。以上の処理により算出した3次元座標により3次元形状作成に必要な座標が揃ったか否か判断し(4409)し、揃っていない場合はステップ(4405)に戻って処理をやり直す。揃った場合は求めた結果は点を識別する ID番号、その点の画像上での2次元位置とともに3次元データテーブルに記録される(4410)。3次元上の点の位置を指定、算出する方法は以上の通りである。
【0125】
ここで、3次元データテーブルについて説明する。図23に示すように、このテーブルは大きく分けて、カメラパラメータに関するデータと、3次元モデルに関するデータが記録される。
【0126】
カメラパラメータは、前述のように、カメラ位置(2329)、視線方向(2330)、焦点距離(2334)があるが、本テーブルにはこのデータのほかに、この値を求めるために用いた情報も記録しておく。この情報を記録しておくことにより、後の修正処理などを行うことが可能になる。また、この情報は、実写画像上で指定した投影座標系でのデータとなるので、2次元データとなる。本実施の形態では、消失点とその直交方向を用いてカメラパラメータを求める方法を取り入れたので、このデータは、消失点位置(2301)と直交方向(2324)となる。消失点位置は、複数の直線の交点として指定したので、その直線(2321)(2322)(2323)を記録する。2つの直交方向は、その直線の両端の座標を結ぶ形で表現される(2326)(2327)。
【0127】
3次元モデルデータとは、後述する3CGモデルを合成する場合に背景となるデータであって、実写画像上に写る物体をモデル化したときのデータである。モデルは点や線、面や立体などの集合として表現されるため、これらの種別を示すデータと、それぞれの形状や位置を特定するための座標値等のデータとその集合として記録される。例えば点であれば、その3次元座標値、線分であれば、両端の3次元座標値や、すでにこのテーブルに記述されている点のID番号などがこのデータになる。
【0128】
3次元データテーブルについての説明は以上である。
【0129】
次に、本実施の形態における、3次元上の直線の算出の手順、方法について述べる。
【0130】
第1の、直線の作成方法は、すでに作成された3次元上の点2つの結合として求める方法である。ユーザは、コマンドの操作により、すでに3次元座標の求められている点を実写画像上に重ねて表示する命令を発行する。プログラムはこの命令を受けると、3次元データテーブルを参照し、記録されている3次元点のデータとカメラパラメータデータを、グラフィックボードに渡す。グラフィックボードはこの点を、実写画像に重ねて表示する。
【0131】
ユーザは表示されている前述の点群のなかから適当な2つの点を選び、線作成のコマンドを発行する。プログラムはこの2つの点を結び、作成する直線とする。
【0132】
第2の、直線の作成方法は、すでに作成された3次元上の点を基準点として、その点から拘束条件を与えて、ある方向に伸ばしていく方法である。ユーザは、コマンドの操作により、すでに3次元座標の求められているすべての点を実写画像に重ねて表示する命令を発行する。プログラムがその点を表示すると、ユーザは適当な1つの点を基準点として選ぶ。そして、どの成分を拘束し、どの成分に自由度をもたせるのかを、画面上のボタンの入力等により指示する。例えば、基準点として
(50.0, 60.0, 30.0)
を選び、拘束条件として、X軸方向拘束、Y軸方向自由、Z軸方向拘束、を選ぶと、候補となる線として、
(50.0, k, 30.0)
とパラメータ表現される直線が表示される。ユーザはこの線を適当な始点、終点で切りとり、線分(直線)が完成する。このときの操作は、前述の点の指定のときの拘束線の指定の方法と同様である。
【0133】
第3の直線の作成方法は、実写画像上でのマウス操作により作成する方法である。ユーザは、画面上のボタン操作などにより、拘束条件を指定する。拘束条件の指定としては、例えば、作成する直線がある平面上にある、という指定がある。建物の写る実写画像を考える。建物の地面に接する辺(壁と地面の境界)は地面上(垂直方向を Y 軸とおいたとき、Y = 0)に存在する。そこでユーザは
Y = 0
を拘束条件として指定する。その後、ユーザは実写画像上(投影平面上)で、求める直線の2次元座標位置を指定する。指定の方法は、前に述べた消失点やその直交方向の直線を指定するときの方法と同様である。投影平面上の直線が決められ、それが存在する平面が決められると、3次元空間上の直線は一意に求まる。これについて具体的に説明する。図24に示すとおり、カメラ位置(2410)を原点にとり、視点から投影面(2411)の法線方向に向かう方向(2412)を Z 方向、投影画像上の x 方向(2413)、y 方向(2414)をそれぞれ、X 方向、Y 方向とする座標系を、視点座標系とおく。なお、視点と投影面までの距離は焦点距離(2415)fである。ワールド座標系と視点座標系は、平行移動と回転移動によって簡単に変換することができる。
【0134】
いま、図25に示すとおり、投影画像上(2411)の直線を ab(2515) とし、カメラ位置を O (2410)とおく。投影画像上の a b の座標をそれぞれ、
【0135】
【数26】
【0136】
とする。視点座標系で3次元表現すると、焦点距離を f とおいて、
【0137】
【数27】
【0138】
となる。投影画像上で、直線 ab に投影されるということは、この線(面)は、3次元空間上で a, b, O の3点を結ぶ平面上(2511)にある。よって、求める直線はこの平面と、ワールド座標系における平面(2510)とが交わる部分(2516)になる。3次元空間上で平面と平面とが交わる部分は直線となるので、その交線が求める直線となる。
【0139】
第4の、直線の作成方法は、すでに作成された直線の平行移動として作成する方法である。ユーザは、すでに3次元形状の求められているすべての直線を表示するコマンドを発行し、実写画像上にその直線群を表示させる。適当な直線をマウス等の操作により選択し、メニューボタン等より、コピーコマンドを発行する。適当な位置を指定し、ペーストコマンドを発行するとその位置に新たな直線が生成される。位置の指定方法は、例えば、すでに3次元位置の求まっている点のなかから1つを選び、直線の始点とする方法、ユーザがマウスで指定した位置を直線の始点とする方法、などが考えられる。
【0140】
以上が直線の作成方法である。直線が作成されるとプログラムは、3次元データテーブルに記録するとともに、作成した直線を画像上に表示する。直線の両端は、制御点として、その点のドラッギングにより、長さ等の修正が行なえるようにする。
【0141】
次に、面の作成方法について説明する。
【0142】
第1の、面の作成方法は、すでに作成された3次元上の点や線の集合として作成する方法である。ユーザは、すでに作成された点や線を実写画像上に重ねて表示させるコマンドを発行する。そして、この中から3つ以上の点あるいは線と点の組み合わせを選択する。3次元空間上の3点が指定されれば、その3点をとおる平面は一意に決定されるので、それが作成する平面となる。あるいは1点と1直線が指定されれば、この点と線をとおる平面は一意に決定される。しかし、それ以上の条件が指定された場合は、それぞれが同一の平面に存在しない場合がありうる。本実施の形態では、作成する面として平面を考えているので、プログラムがこのことを計算により検知した場合は、同一平面に存在しないことを示すエラー表示を行なう。ユーザは対象点や線のなかで、必要ないものを選択からはずし、再び作成のコマンドを発行する。なお、平面のほかに曲面をサポートする装置の場合は、適当な曲面モデルが、選択した対象点群をとおるように変形する方法が考えられる。
【0143】
以上によって平面が作成されるが、その形状定義については後に述べる。
【0144】
第2の、面の作成方法は、すでに作成された3次元上の点や線を基準点基準線としてそこからある拘束条件を与えて作成する方法である。マウス等の操作により、基準点、基準線を選択する。ユーザはある拘束条件を与え、この条件のもと選択した基準点、基準線をとおる平面を作成する。例えば基準点が
【0145】
【数28】
【0146】
のとき、 X 成分自由、Y成分自由、Z 成分固定の拘束条件を定義したとき
【0147】
【数29】
【0148】
とパラメータ表現される平面が、作成する平面となる。拘束条件の指定の方法としてはほかに、法線ベクトルの指定などが考えられる。
【0149】
第3の、面の作成方法は、直接平面を数値により指定する方法である。例えば平面の式を
【0150】
【数30】
【0151】
で表現するとき、(a, b, c, d) の値をキーボードなどで入力する。
【0152】
第4の、面の生成方法は、すでに作成されている平面を、平行移動等により移動させる方法である。ユーザはすでに作成されている平面群を、コマンドの操作によって表示させる。マウス等の操作により、適当な平面を選択し、コピーのコマンドを入力する。次に、適当な3次元位置を、キーボードによる数値入力、すでに生成されている3次元の点の選択などによって基準点として指定する。ペーストのコマンドを入力すると、プログラムは、前の操作によって選択された平面を、基準点をとおるように平行移動させた平面を、新たな平面として作成する。具体的には、選択された平面の法線ベクトルを求め、その法線ベクトルを持ち、基準位置をとおる平面を作成する平面とする。例えば基準点位置を
【0153】
【数31】
【0154】
法線ベクトルを
【0155】
【数32】
【0156】
とすると求める平面は、
1/nx ・(X − x1) + 1/ny ・(Y − y1) + 1/nz ・(Z − z1) = 0
(26)
となる。
【0157】
以上述べたように、面の生成方法にはいくつかの方法が提供される。しかし今まで述べてきた方法では、面が生成されてもその形状までは定義されず、その平面は各方向に無限に広がる平面である。そこで、面の生成後にその形状を定義するプロセスについて説明する。
【0158】
前に述べたプロセスで、面が生成されると、次にユーザは画面上の実写画像上で、その面の輪郭となる線を指定する。例えばマウスの操作により、実写画像上で求める輪郭上にある点を複数指定する。特定のコマンドを入力すると、その点は直線あるいは適当な曲線(例えばスプライン曲線など)によって結ばれ閉領域が投影平面上で定義される。図26において、(2613)が投影画像上(2411)のこの閉領域である。3次元空間上でこの閉領域とカメラ位置(2410)によって囲まれる立体(2617)によって切り取られる前述の平面(2610)が、最終的に作成する平面(2615)になる。
【0159】
この平面のデータ構造は各種考えられるが、本実施の形態では、次の形式をもつものとする。
【0160】
すなわち、その平面がとおるある点の3次元座標、平面の方向を示す法線ベクトル、平面を切り取る際に用いた閉領域を示す制御点列、その制御点を結ぶ方法としての補間方法の種別などである。
【0161】
これらのデータが、3次元データテーブルに面の識別IDとともに記録される。
【0162】
なお、面が作成されそのデータが記録されると、ユーザからの要求によって、プログラムはこの面をワイヤーフレームとして実写画像上に重ねて表示することができる。面は、適当にメッシュ分割したワイヤーの集合として3次元空間上に描画される。グラフィックボードはこのワイヤーフレームを、実写画像とおなじカメラパラメータで見える映像として、実写画像に重ねて表示する。また、この平面の輪郭を指定するときに用いた制御点もあわせて表示し、ユーザのマウスドラッギングなどの操作により、形状の修正が行なえるようにする。
【0163】
以上が、面の生成方法である。
【0164】
次に、立体の生成方法について説明する。
【0165】
立体の生成方法は、次に述べる方法の他に、基本形状(プリミティブ)のあてはめによる方法が考えられるが、これについては後に説明する。また、立体の生成については、本装置で詳細に作成するよりは、本装置で作成した3次元上の点や線などを基本にして、他の3次元モデリングのための専用 CAD プログラムを用い作成する方が適当な場合が多いので、ここでは1例を上げるにとどめる。
【0166】
立体の生成方法の1つの例は、すでに3次元の求まっている点、線、面等の組み合わせで生成する方法である。ユーザはコマンドの入力により、すでに3次元の求まっている点、線、面を画面上に表示させる。ユーザは、マウスのクリックなどの操作により、このなかから、適当なものを選択する。例えば、6面体を生成するとき、それを構成する8つの頂点を指定する。ユーザが、8つの頂点からの6面体の生成というコマンドを入力すると、プログラムはこの3次元上の8つの点から6面体を生成する。別の例では、例えば円錘を生成するとき、その底面となる円と、頂点となる3次元上の点を選択する。底面と頂点からの錘体の生成というコマンドを入力すると、プログラムはその円と頂点から円錐を生成する。プログラムは、点や線、平面から各種の条件で立体を生成する方法を用意する。
【0167】
立体の生成方法の例は以上のとおりである。
【0168】
次に、基本形状(プリミティブ)を用いた、3次元形状の作成方法について述べる。
【0169】
図28に示すような物体(2801)のある面(2802)の3次元構造を生成する場合を考える。図の物体がユーザの知識により立方体だとわかっているとすると、頂点すべて(2803)(2804)(2805)(2806)の3次元座標を求めるよりも、次の方法で形状を生成した方が適当な場合が多い。
【0170】
面(2802)の3次元形状を生成する。先の条件から、面(2802)は直方体になる。よって4つの頂点それぞれの位置を求めなくても、そのなかの3つの位置(2803)(2804)(2805)が求まれば、もう1つの点の位置(2806)は一意に決定される。よって、ユーザは図27に示すような次の手順で、この面を作成する。
【0171】
まず、以前に述べた方法で3点の3次元位置を求める(2701)。ユーザはこの3つの点を選択し、長方形の基準形状選択のコマンドを発行する。プログラムは3点の位置から、3次元空間で長方形を形成するように残りの1点を求める。そのためにまず、すでに3次元座標の求まっている3点から、その3点の存在する平面を求める(2702)。次に、この平面上に存在し、2点から長方形の長辺、短辺の距離にある点を求め、これが4点めの3次元座標となる(2703)。この4点を結ぶ図形が、求める長方形となる(2704)。画面上の各頂点は制御点と表示し移動が可能の点として明示する。ユーザはこの点を、マウスのドラッギングなどの操作によって、移動することができる。
【0172】
いま、現在一般に普及している2次元平面上で図形を作成するドローイングプログラムを考える。このプログラムでは、ユーザは基本形状を選んだ後、その図形の制御点を移動することで、その基本形状の基本的な性質を拘束条件として、大きさや形状を変えることができる。たとえば、基本形状として長方形を選んだ場合、図29に示すように、その頂点を移動させると、長方形の形状のまま大きさが変化する。長方形(2902)の各頂点は制御点としてドット(2903)が表示されている。ユーザはこの一つを選びマウスポインタ(2901)でドラッギングするとこの長方形の大きさが図(2905)のように変化する。ドラッギングをやめると、この図形が修正した長方形(2904)となる。
【0173】
これが一般的なドローイングプログラムの制御点移動による基本形状図形の変形方法であるが、本装置では、この機能を3次元的に実現させる。図30は、図28の図形の一部を部分的に示した図である。ユーザが画像上に投影されている図形(3003)の制御点(3002)を選択しドラッギングにより移動させる(3001)と、2次元ドローイングプログラムのときと同様に、(1)選択した点と対角の位置にある頂点の位置は動かさない、(2)長辺、短辺の方向は変化させない、(3)長方形としての条件は維持させる、の条件に、(4)長方形の存在する平面は変化させない、の条件を加え、3次元空間上での長方形の大きさを変化させる。図に示すように、この平面上で長方形の形状が維持されるように大きさを変化させる。画像上には、この長方形が投影面に写る映像を表示する。このようにして、ユーザは投影面に写る画像をみながら、長方形の大きさを変える(3004)ことができる。
【0174】
以上、長方形を例にして、基本形状を用いた3次元形状の作成方法およびその修正方法を説明した。基本形状としては、長方形の他に、楕円や多角形、スプライン曲面など多くのものがある。また平面図形だけでなく、立体についても同様の図形を用意する。これらについても、長方形と同様に投影画像上での操作で、大きさや形状を指定できるものとする。
【0175】
このように基本形状を用いて、3次元形状を作成する方法には、次のような長所がある。
【0176】
まず第1に、ユーザが対話によって3次元形状を求める数が少なくなることである。前の長方形の例では、ユーザは本来4点の位置を指定して求めるべきところが、3点の位置だけを求めればよく、残りの1点はプログラムが自動的に求めてくれる。よって、3次元形状を作成する容易度が増す。
【0177】
第2に、形状を矛盾なく、より正確に作成できることが上げられる。例えば前の例のように3次元空間上の長方形の作成を例に取った場合、4つのすべての頂点を個別に、前に述べた点の作成方法で求めると、それが誤差の影響で、必ずしも同じ平面上にできるとは限らなくなる。また、すべての角が直角になる保証はない。しかし、本方法によればこういった形状の基本的な性質はいつでも満たされるため、正確な形状に近くなる。
【0178】
第3に、移動や修正が容易に行なえることがあげられる。修正については、前に述べたような方法で、また移動については、その基本形状を生成する線や面などの要素をグループとして扱うことができるので、それぞれを個別に移動させるより容易に行なうことができるメリットがある。
【0179】
以上、基本形状を用いて3次元形状を生成する方法およびその長所について述べた。なお、本方法によって、形状がつくられた場合は、3次元データテーブルには、その形状を形作る座標値の他に、その形状を作る際に用いた基本形状の種別も記録されるものとする。これは後に修正を行なうときなどに必要とされる。
【0180】
次に、既存の3次元 CAD システムとの接続について説明する。
【0181】
本装置の目的の1つは、前に述べたように実写画像からそこに写る物体の3次元モデルを作成することであるが、作成するモデルの形状や性質によっては、本装置で作ることが機能等の理由で必ずしも適当でないことがありうる。すなわち、形状の複雑な物体や、曲面の集合であらわされる物体などは、本装置でモデルを作成するより、すでに一般的に用いられている3次元CAD装置(モデリングプログラム)を用いた方が、複雑な図形を作成する機能が充実しているために、容易にかつ正確にモデルを作成できると考えられる。よって、このようなモデルを作成する場合は、本装置で作成するモデルの概略(基本的な寸法や位置など)を作成し、詳細はその CAD装置で作成するように、両者を使い分けて一つのモデルを作成していく、という利用形態が適当である。
【0182】
例をあげて説明する。
【0183】
図33は、作成するモデルである。実写画像にはこの実物の映像が映っているものとする。このモデルはかなり複雑な形状をしているため、これをすべて本装置で作成することは、前述の理由で必ずしも適当でない。よって本装置ではまず、図32に示すように、この物体の代表的な形状を作成する。代表的な形状とは、図のように物体の最外郭の形状や、窓等の物体の部分を構成する形状の特徴となる(位置や間隔などがわかる)形状である。図の例では、物体(3202)の代表形状を、線分(3202)(特徴線)や点(3203)(特徴点)の集合として表現している。このほかに、面や立体の集合とすることもできるが、なるべく簡単な要素で構成させた方が、この後のCADでの操作や修正がしやすい。このデータを既存のCAD装置(CADプログラム)に渡す。CADプログラムでは、このデータをもとに、物体の詳細なモデルを作成する。図33に示すように、前述の線(3202)や点(3203)が対応する、物体の辺や頂点にくるように詳細データを作成していく。物体の代表形状は本発明による装置で実写画像を用いて作成してあるので、CADプログラムによって作成されるモデル(3201)の3次元形状や3次元位置はほとんど正確なものになる。作成した詳細な3次元モデルデータは再び、本発明の装置に渡され、実写画像に重ねて表示する。これによりユーザは、正確に詳細モデルが作られたかどうかを確認することができる。
【0184】
図31に、本機能を実現するためのシステム構成の1例を示す。本例では、前述の既存の3次元CAD装置は、プログラムによって一般的なコンピュータ上で動くものを想定する。よって、ハードウェア的には図1で説明した本発明の装置の構成上で同時に動くことができ、主記憶(図1)(111)上にCADプログラムが追加されるだけである。
【0185】
ユーザは、実写画像データ(3110)から、本発明の装置の3次元抽出プログラム(3101)によって実写画像内のある物体の代表形状(特徴点、特徴線)を作成する。代表形状のデータは、本装置のデータ構造で作成され(3102)主記憶上に出力される。変換プログラム(3108)はこのデータ読み込みを、CADプログラム用のデータ(3107)に変換し主記憶上に出力する。なお、この変換プログラム(3108)は本装置の主記憶上におく。ユーザは、主記憶上にあるCADプログラム(3106)を起動する。CADプログラムはCADデータ(3107)を読み込む。ユーザはこのデータと3次元抽出プログラムで表示している物体の実写画像を参照して物体の3次元詳細モデルを作成する。CADプログラムは作成された3次元詳細モデルデータを3次元CADデータ(3109)として主記憶に出力する。変換プログラム(3103)は、このデータを本装置のデータ形式に変換し、主記憶上に出力する(3105)。3次元抽出プログラムはこのデータを読み込み、実写画像に重ねて表示する。ユーザはこれを見て、作成した物体のモデルが実写画像と比べて正確かどうかを確認することができる。
【0186】
以上のような構成により、本装置上に、3次元抽出プログラムと、既存のCADプログラムを同時に動かし連携させることで、ユーザは3次元モデルを容易に、正確に作成することができる。
【0187】
次に、いままで述べてきたような、実写画像を用いた対話的な3次元形状の作成過程における補助的な機能について説明する。
【0188】
(1)補助線表示機能
本作成方法では、さまざまな拘束条件を与えて投影画像から3次元位置を算出する。その条件に応じて補助線を表示すると、ユーザにわかりやすい操作を提供することができる。
【0189】
例えば図34に示すような実写画像の3次元モデルを作成することを考える。ここに表示されている物体(1413)(建て物)のようなものの場合はその性質上、直交に交わる形状が多い。このためある部分で3次元空間上で直交する方向を決めれば、その他の部分でもこの方向に辺や面が存在するところが多い。例えば図の(3410)の部分で物体の側面から直交成分を生成すれば、それと3次元空間上で全く同じ方向に別の部位(3404)(窓の部分)も位置する。よって、窓の部位のモデルを作成するときに、この直交する成分(3401)(3402)(3403)を補助線として表示してやれば、形状の作成が容易である。図に示すように窓わくの方向は、補助線(3402)と(3401)上にある。
【0190】
図35には、同一の画面上に異なる直交成分を持つ物体が存在している例を示す。例えば違う方向を向いたビルが建っている画像などが考えられる。このような場合は、それぞれの物体を作成するときにそれぞれの直交成分で補助線を表示させてやる。すなわち物体(3517)を作成するときには直交する3辺の形状を作成した時点で、補助線(3513)(3510)(3511)を表示させ、残りの辺を作成する。次に物体(3518)を作成するときには直交する3辺の形状を作成した時点で、補助線(3516)(3514)(3515)を表示し、残りの辺を作成する。
【0191】
(2)グリッド表示機能
実写画像にある規則に従った補助線(グリッド)を重ねて表示する。例えば地面に接している物体の3次元形状(位置)を作成するときには、
Y = 0
の平面上に、ある間隔毎にグリッドを表示させてやれば(図36)(3610)、物体の位置関係の視覚的な確認ができるため、作業が容易になる。このときは、カメラパラメータと共に、次の直線を3次元グラフィックボードに渡して描画させればよい。
【0192】
( X, 0, ∞) − (X, 0, −∞)
X = ・・・ −50, −40, −30, −20, −10, 0, 10, 20, 30, 40, 50, ・・・
(∞, 0, Z) − (−∞, 0, Z)
Z = ・・・ −50, −40, −30, −20, −10, 0, 10, 20, 30, 40, 50, ・・・
(3)作成履歴記録手段
本装置では、ある点や線などを作成する際に、複数の作成方法が提供されている。よってその選択によっては、同じ点や線でも3次元データ的に微妙に異なる形状が作成される可能性もある。そこで、図23で説明した3次元データテーブルに、それぞれの3次元形状を作成したときに、どのような条件で、どのような基準点や補助線を用いて作成したのか、などの補助的な情報も付加させる。これにより、後に作成データの修正や確認を行うときに、この情報を表示させることで、再び拘束条件を入力させる必要が無い、修正すべきプロセスが見つけやすい、などの理由からその作業が容易にかつ正確に行うことができる。
【0193】
また、この機能を付加することで、ある図形の基準点、拘束条件にかかわる図形を修正したとき、それに応じてそれを基準に作成した図形の形状を自動的に変化させることができる。
【0194】
(4)画像処理表示機能
実写画像をそのまま表示するより、なんらかの画像処理を行ってその結果を表示させた方が、ユーザが作業をする上で解りやすい場合がある。例えば、画像の微分処理を行えばエッジが強調されるので、実写画像に写る物体の輪郭線などを抽出しやすくなる。ユーザの要求に応じて、このような画像を切り替えて表示する機能を設ける。
【0195】
(5)3次元モデル回転移動表示機能
作成した物体の3次元モデルは、実写画像に重ねて表示されるため、投影画像上でのみかけの形状の確認はできるが、それが3次元的にどのように作られているか、の確認はできない。そこで、ユーザの指示によって、作成した3次元モデルを実写画像上で回転、移動表示し、3次元的に確認する機能を設ける。
【0196】
図38を用いて説明する。
【0197】
画面には、実写画像の物体(3810)が表示されている。ユーザはこの物体の3次元モデルを作成したものとする。よって画面上には、このモデルが例えばある色のワイヤーフレームとして物体(3810)に重なって表示されている。ユーザは画面上のボタン操作(スクロールバー操作)等によってこの3次元モデルを画像上で回転、移動表示させる。この例ではスクロールバー(3811)をスクロールさせると、画像上のモデルがX,Y,Z軸を中心に移動させた量だけの角度、回転するものとする。図(3813)は、操作後の3次元モデルである。このように表示させることで、作成したモデルが3次元的にどのような奥行きを持っているのかを画像上でリアルタイムに表示、確認することができる。
【0198】
図37にそのときのプログラムの動作をフローチャートで示す。
【0199】
まず初期値として、回転行列 R に単位行列、移動ベクトルrに0を設定する(3730)。ユーザによるスクロールバー等の操作のイベントを監視し(3731)、イベントがあるとその値に従って、回転行列Rと移動ベクトルrの値を更新する(3732)。回転行列Rと移動ベクトルrの値にCGモデルの座標を変換し(3733)、グラフィックスボードにカメラパラメータとその値を渡し画面上にモデルを表示(3734)する。以上の動作を繰り返すことで、ユーザの指示する回転、移動後のモデルをリアルタイムに表示することができる。
【0200】
(6)参照物体表示機能
本装置で求めたカメラパラメータで、あらかじめ作成してあるCGモデルを実写画像上に重ねて表示する機能を持つ。図39に示すように、この機能を用いると、ユーザは画面に写る3次元空間上の任意の位置に、あらかじめ作成してある参照物体(3911)モデルを表示することができる。ユーザは、マウス等の操作によりこの物体を任意の位置に移動させることができる。この機能により、ユーザは求めたカメラパラメータでその参照物体がどう見えるかを確認することで、カメラパラメータの整合性を視覚的にチェックすることができる。すなわち例えばこの物体を3次元的に遠くに移動させたときに、画像上で実写画像の遠くの位置にあるように見えるかどうかの確認をかさすることができる。さらに、実写画像に写る物体のモデルを作成したときには、前に述べたようにそのモデルによるマスク画像を作成することで、実写内の物体に参照物体が隠れた映像や、実写内に参照物体の影が写る映像などを作成することができる。図は、実写内の物体(3910)に参照物体(3911)の一部が隠れている例である。この機能を持たせることで、作成した実写画像内の3次元物体が正確に作成されているかどうか、前後関係は正確かどうかなどの確認を行うことができる。
【0201】
以上、本発明の実施の形態を、例を用いて説明した。
【0202】
本発明の全体の概略を図40を用いて説明する。
【0203】
本発明の目的は、カメラ(4030)等で映写した実写画像(4031)から、ユーザによる対話的な操作によって、その実写画像を写したときのカメラパラメータ(4034)と、その画像に含まれる物体の3次元CGモデルデータ(4039)を算出、作成するものである。
【0204】
まずユーザは実写画像データ(4031)を用意する。プログラムは装置上の画面に表示する。
【0205】
ユーザは対話処理によってこの画像からまず、その実写画像の、カメラパラメータを求めるために必要な2次元座標値を入力する(4032)。上述の実施の形態では、消失点と直交方向である。同時に、カメラパラメータを求めるための条件(例では消失点と直交方向からカメラパラメータを求めるということ)を知識情報(4035)として指示する。
【0206】
プログラムは、それらの情報から3次元抽出アルゴリズム(4033)によって計算を行ない、カメラパラメータ(4034)を求める。
【0207】
カメラパラメータが求まると、画像上に写る物体の2次元座標値と、そのカメラパラメータと、画像に写る物体の種種の知識情報(4037)(地面に対して垂直である、直方体である等)と、作成する3次元モデルを構成する基本図形の性質(点、線、面、立体の種別と、直線、曲線の区別等、図形に関する情報)(4038)から、プログラムは、3次元抽出アルゴリズム(4036)によって3次元CGモデルデータ(4039)を作成する。3次元CGモデルデータは本装置だけで直接作成する他に、汎用のCAD装置などのCGモデル作成ソフト(4040)を用いて詳細なモデルを作ることもできる。
【0208】
このようにして、実写画像から、そのカメラパラメータと、そこに写る物体の3次元CGモデルデータを作成することができる。
【0209】
次に本発明をアプリケーションの目的に合わせた実施の形態を説明する。
【0210】
アプリケーションの1つの実施の形態は、ある実写画像に3次元CGモデルを合成して表示するものである。具体的にはある家の内部をうちした画像に、CGで作成した家具を任意の位置に配置し表示するようなプレゼンテーションシステムである。家の内部の実写画像に、CGによる家具を違和感無く合成するためには、実写画像のカメラパラメータと、実写に写る物体の3次元形状が分かる必要がある。カメラパラメータはCGの家具を遠い位置に配置したときに小さく表示されると行ったパースを合わせるために必要であり、また実写内の物体の3次元形状はその物体の後ろにCGモデルをおいたときに隠れて見えなくなるようにするために必要である。あるいは陰をリアルに付加するためにも用いられる。以上のようなシステムでは、予め実写画像の3次元構造を抽出したりCGモデルを作成するといった前処理を行うモデリング(オーサリング)の部分と、任意の位置にCGを合成表示したり、パースや印面処理などの効果を出して表示するといった実行時の処理を行うプレイやノブ分に大きく分けられる。前述の本発明による装置は、モデリングの部分に相当する。
【0211】
図41は本システムの構成である。点線で囲んだ部分が前述の装置に相当し、図40を簡略化してある。図41における3次元構造データ(4105)は、図40における出力データ即ちカメラパラメータ(4304)とCGモデルデータ(4309)を示している。プレイヤ部ではこの3次元構造データを用い、合成するCGモデルの合成時の画像を生成し、合成イメージを表示する。
【0212】
実写画像とCGモデルの合成手順を図45に従い、説明する。
【0213】
まず、3次元CGモデルのデータをメインメモリに読み込む(4502)。一方、実際に3次元CGモデルが合成されるべき実写画像をメインメモリに読み込む(4503)。この読み込んだ実写画像を下に前述のモデリングを行い実写画像のカメラパラメータを算出し、このカメラパラメータを用いて3次元モデルデータから算出される実写画像の3次元モデルデータをメインメモリに読み込む(4504)。
【0214】
次に、3次元CGモデルの実写画像における合成位置を入力し(4505)、モデリングされた実写画像の3次元モデルデータ及びカメラパラメータを用いて実写画像と3次元モデルデータを合成させたイメージを作成し(4506)、これを重ねて表示させる(4507)。
【0215】
次に、表示されたイメージを下により自然な合成となるよう3次元CGモデルの合成位置が適切か否かを判断し(4508)、適切でない場合は3次元CGモデルを適切な位置に移動させ(4508)、ステップ(4505)に処理を戻す。一方、適切な場合は処理を終了させる(4509)。
【0216】
図41においては、予め既存のCADプログラム等で作成した3次元構造データ(4105)を用いてその条件下で見えるCGモデルの映像を作成する。顔図合成部(4108)では合成する実写データ(4102)に必要に応じて陰影を付加するなどの処理を加えた後、CGモデルの映像を重ね合わせて画像表示部(4109)にて表示する。CGモデル顔図生成部および画像合成部における画像の具体的な生成方法については、特開平8−153213号公報にてZバッファ等を用いた陰面処理方法や陰影付加方法などを提示している。更に実写画像が時間と共に変化する動画像についても、各フレーム毎に実写画像のカメラパラメータや画像内の物体の3次元位置等を求め、3次元構造データ(4105)とし、各フレーム毎に画像合成処理を行えば、同様に合成画像を作成することができる。
【0217】
次のアプリケーションの実施の形態は、ある実写画像に、別の実写画像に写る物体を合成して表示するものである。具体的には、例えばテレビや映画などにおいて、ある実写風景画像にスタジオで撮影した人物を合成する等の合成処理が考えられる。この場合も、違和感のない合成画像を作成するためには、合成する実写風景画像とスタジオで撮影する画像のカメラパラメータを一致させるなど画像の3次元構造を利用する必要がある。
【0218】
図42にこのような合成を実現するためのシステムの構成例を示す。カメラパラメータ(4101)を用いて撮影した画像データ(4102)から特徴情報抽出部(4103)において特徴を抽出し、3次元構造算出部(4104)において画像データのカメラパラメータや写る物体の3次元モデル等の3じげんこうぞうでーたお(4103)を求めるまでは、前述の装置と同様である。合成する物体を撮影するためのカメラ(4208)には、カメラの焦点距離や位置、方向などを任意に制御できる機能を持ったカメラ制御部(4201)を備え、3次元構造データ(4105)に記述されているカメラ(4101)のカメラパラメータと同じ条件で、合成する物体(4205)を撮影する。この時に、合成する画像(4102)に写っている物体のモデル物体(4208)を3次元構造データ(4105)に基づき作成し撮影場所に設置すれば、撮影時の参照とすることができる。これを具体的に説明する。
【0219】
ある机の写っている背景画像が与えられると、これとは別に人物を撮影しその背景画像に合成することで、最終的に机の上で人物が演技している映像を作成することを仮定する。この場合、机の3次元構造を本発明の装置を用いて求め、それに基づいてその形状を持った机のモデル(模型)を作成し、人物の撮影現場に設置する。このとき、机のモデルとカメラとの相対位置関係は、本発明の装置を用いて作成した3次元構造データを用いることで、実際の机を撮影したときと等しくなるように置く。人物はこの机のモデルの上で演技することで、何もないところで演技するのに比べて、本物のつくえの時に近い演技がやりやすい。よって結果的に違和感の無い合成画像を作ることができる。更に本モデルを用いることで、合成後の人物の全体あるいは一部が物体(机)によって隠される位置にきたときに、撮影時にもそのモデルによって隠されるため、合成時に人物の写っている部分だけを合成すれば、机の後に隠れる部分は写らないような、陰面消去の効果を出すことができる。
【0220】
撮影した画像データ(4203)から、合成に用いる部分を実写切り出し部(4202)において切り出す。切り出し方法としては操作者が画像処理プログラムを用いて対話的に行うほか、撮影条件に応じて画像処理の技術を用いて自動的に切り出すことができる。撮影時にブルーバック等の条件で撮影すれば、クロマキー等の技術を用いて自動的に目的の物体を切り出すことができる。尚、この方法を用いる場合は前述のモデル物体(4214)をバックと同じ色にする。これによってモデル物体は合成後の画像には写らない。
【0221】
画像合成部(4108)では背景となる画像と、切り出した実写画像を合成し、画像出力部(4109)で表示する。画像合成部(4108)では、前述のように、合成する物体の撮影画像が背景画像にある物体のモデル(模型)を用いて撮影したもので有れば単に背景画像に切り出した画像にその切り出し画像を
重ね合わせてやればよい。しかしそれ以外の場合は、切り出す物体についての3次元モデルを作成し、背景画像の3次元構造とそのモデルから陰面部分を算出し処理を行う。切り出す物体の3次元モデルは撮影時に実際に計測するほか、本発明の装置を用いて、画像から求めることもできる。
【0222】
尚、以上のシステムでは、(1)動画像の背景に動画像を合成する、(2)動画像の背景に静止画像を合成する、(3)静止画像の背景に静止画像を合成する、等の組み合わせが考えられるが、3次元構造データにフレーム毎のデータを持たせ、カメラの動きを時間に従って変化させてやれば、何れの場合にも対応できる。
【0223】
尚、本システムでは背景となる画像を実写画像としたが、これをCG 画像とすることも考えられる。この場合はCGモデルの3次元構造は既知であることが一般的であるので、このデータを本システムにおける3次元構造データ(4105)に置き換えれば良い。
【0224】
更に、図42のシステムにおいて、画像出力部(4109)をカメラ(4208)のモニタ画面とすれば、撮影時に合成後の映像を見ることができるので、算出した3次元構造の確認、撮影物の位置合わせや演技付け、照明の色合わせなどをリアルタイムに確認し調整することができる。
【0225】
また、図41、図42のシステムでは、合成後の画像を直接補助記憶装置に記憶させることもできる。
【0226】
【発明の効果】
本発明によれば、実写画像を用いてそこに写る物体の3次元モデルを作成するため、視覚的にわかりやすくモデルを作成することができる。さらにその実写画像を写したときのカメラパラメータを記録しておく必要がない。また作成されたモデルを、実写画像とCGの合成の目的に用いる場合は、矛盾のないデータを作成することができる。
【図面の簡単な説明】
【図1】本発明のハードウェア構成である。
【図2】実写画像の例である。
【図3】合成するCGモデルの例である。
【図4】実写画像にCGモデルを合成した画像の例である。
【図5】合成画像の遠近を示した例である。
【図6】合成画像に影を付加した例である。
【図7】実写画像の例である。
【図8】実施の形態の画面の1例である。
【図9】消失点を示す例である。
【図10】消失点と直交方向の組み合わせを示した図である。
【図11】直線の交点を求める図である。
【図12】直線の交点を求めるための拡大図である。
【図13】実写画像における消失点と直交方向の例である。
【図14】投影座標系とワールド座標系を示した図である。
【図15】画像上のワールド座標系を示した図である。
【図16】3次元データボックスの例である。
【図17】透視投影を説明する図である。
【図18】透視投影を説明する図である。
【図19】操作画面の1例である。
【図20】操作画面の1例である。
【図21】点の指定方法である。
【図22】操作画面の1例である。
【図23】3次元データテーブルの1例である。
【図24】透視投影を説明する図である。
【図25】線の作成を説明する図である。
【図26】面の作成を説明する図である。
【図27】基本図形の作成の手順を説明するフローチャートである。
【図28】基本図形を説明する図である。
【図29】2次元ドローイングソフトにおいて、基本図形を修正する方法を説明する図である。
【図30】3次元において基本図形を修正する方法を説明する図である。
【図31】他の3次元CADソフトとの接続を示す図である。
【図32】CADソフトに渡すデータの例である。
【図33】CADソフトで作成するモデルの例である。
【図34】補助線の例を示した図である。
【図35】補助線の例を示した図である。
【図36】グリッドの例を示した図である。
【図37】CGモデルを回転、移動させて表示する手順を説明するフローチャートである。
【図38】CGモデルを回転、移動表示させた画面の例である。
【図39】参照物体をあわせて表示させた画面の例である。
【図40】本発明の全体の概略を示した図である。
【図41】本発明のある実施の形態の概略を示した図である。
【図42】本発明のある実施の形態の概略を示した図である。
【図43】実写画像からカメラパラメータを求めるフローチャートである。
【図44】実写画像から3次元構造データ求めるフローチャートである。
【図45】実写画像にCGモデルを合成する場合のフローチャートである。
【符号の説明】
101…ディスプレイ、102…補助記憶装置、103…マウス、104…グラフィックボード、105…CPU、110…キーボード、20…実写画像、203…3次元物体、301…CGモデル、505…消失点
Claims (10)
- 3次元物体を2次元平面上に撮影した第1の画像データと、3次元物体を2次元平面上に撮影した第2の画像データから、それぞれを合成した合成画像を生成する合成画像生成装置において、
前記第1の画像データを撮影する第1の撮影手段と、
前記第1の画像データ内に撮影される3次元物体の消失点に基づいて、前記第1の画像データを撮影する撮影手段の位置と方向および焦点距離とからなるカメラパラメータを算出する算出手段と、
前記算出手段により算出されたカメラパラメータに基づいて、前記第1の画像データ内に撮影される3次元物体の3次元構造データを作成する作成手段と、
前記第2の画像データを撮影する第2の撮影手段と、
前記算出手段で算出されたカメラパラメータと前記作成手段で作成された3次元構造データに基づいて、前記第2の撮影手段のカメラパラメータを制御するカメラ制御手段と、
前記カメラ制御手段により制御された前記第2の撮影手段により撮影された前記第2の画像データと、前記第1の画像データとを合成する画像合成手段を有することを特徴とする合成画像生成装置。 - 請求項1に記載の合成画像生成装置において、
更に、前記カメラ制御手段により制御された第2の撮影手段により撮影された前記第2の画像データから合成に必要な部分を切り出す切出手段とを有し、
前記画像合成手段は、前記切出手段によって切り出された画像データと、前記第1の画像データを合成することを特徴とする合成画像生成装置。 - 請求項1記載の合成画像生成装置において、
前記カメラパラメータは、前記第1の画像データを撮影する撮影手段の位置に関する3つのパラメータと方向に関する3つのパラメータおよび焦点距離に関する一つのパラメータであることを特徴とする合成画像生成装置。 - 請求項1乃至3に記載の合成画像生成装置において、
前記合成画像生成手段で合成された合成画像を表示する表示手段を更に有することを特徴とする合成画像生成装置。 - 請求項1乃至4のいずれかに記載の合成画像生成装置において、
前記算出手段は、前記消失点の直交方向に基づいて、前記カメラパラメータを算出することを特徴とする合成画像生成装置。 - 請求項1乃至5のいずれかに記載の合成画像生成装置において、
前記第1の画像データを表示する表示手段と、
使用者の指定に応じて、前記表示手段で表示された第1の画像データ上の位置を入力する入力手段とを更に有し、
前記算出手段は、前記入力手段で入力された位置を前記消失点として認識することを特徴とする合成画像生成装置。 - 請求項1記載の合成画像生成装置において、
更に、前記第1の画像データから3次元位置を求める指定点、および前記指定点と前記実写動画像の特徴との関係を規定する拘束条件を指示する情報を入力する手段を有し、
前記算出手段は、前記第1の画像データを撮影した視点位置と前記指定点とを結ぶ3次元空間上での線分上にありかつ前記拘束条件を満たす点の3次元位置を算出し、
前記作成手段は、前記点の位置に基づいて前記第1の画像データに写る3次元物体の3次元モデルを作成し、
前記合成手段は、前記作成した3次元モデルを前記第一の画像データに重ねることにより合成画像を生成することを特徴とする合成画像生成装置。 - 3次元物体を2次元平面上に撮影した第1の画像データと、3次元物体を2次元平面上に撮影した第2の画像データから、それぞれを合成した合成画像を生成する合成画像生成方法において、
前記第1の画像データを撮影する第1の撮影ステップと、
前記第1の画像データ内に撮影される3次元物体の消失点に基づいて、前記第1の画像データを撮影する撮影手段の位置と方向および焦点距離からなるカメラパラメータを算出する算出ステップと、
前記カメラパラメータに基づいて、前記第1の画像データ内に撮影される3次元物体の3次元構造データを作成する作成ステップと、
前記第2の画像データを撮影する第2の撮影ステップと、
前記算出ステップで算出されたカメラパラメータと前記作成ステップで作成された3次元構造データに基づいて、前記第2の撮影ステップのカメラパラメータを制御するカメラ制御ステップと、
前記カメラ制御ステップにより制御された前記第2の撮影手段により撮影された前記第2の画像データと、前記第1の画像データとを合成する画像合成ステップとを有することを特徴とする合成画像生成方法。 - 請求項8に記載の合成画像生成装置において、
更に、前記カメラ制御手段により制御された第2の撮影手段により撮影された前記第2の画像データから合成に必要な部分を切り出す切出ステップとを有し、
前記画像合成手段は、前記切出ステップによって切り出された画像データと、前記第1の画像データを合成することを特徴とする合成画像生成方法。 - 請求項8または9いずれか記載の合成画像生成方法において、
前記カメラパラメータは、前記第1の画像データを撮影する撮影手段の位置に関する3つのパラメータと方向に関する3つのパラメータおよび焦点距離に関する一つのパラメータであることを特徴とする合成画像生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002064643A JP3575469B2 (ja) | 2002-03-11 | 2002-03-11 | 合成動画像生成装置および合成動画像生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002064643A JP3575469B2 (ja) | 2002-03-11 | 2002-03-11 | 合成動画像生成装置および合成動画像生成方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35111299A Division JP3309841B2 (ja) | 1999-12-10 | 1999-12-10 | 合成動画像生成装置および合成動画像生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002312810A JP2002312810A (ja) | 2002-10-25 |
JP3575469B2 true JP3575469B2 (ja) | 2004-10-13 |
Family
ID=19193051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002064643A Expired - Fee Related JP3575469B2 (ja) | 2002-03-11 | 2002-03-11 | 合成動画像生成装置および合成動画像生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3575469B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005250748A (ja) * | 2004-03-03 | 2005-09-15 | Nippon Hoso Kyokai <Nhk> | 映像合成装置、映像合成プログラムおよび映像合成システム |
JP4739002B2 (ja) * | 2005-06-30 | 2011-08-03 | キヤノン株式会社 | 画像処理方法、画像処理装置 |
JP2007080029A (ja) * | 2005-09-15 | 2007-03-29 | Kgt Inc | 複数の3次元コンピュータグラフィックスを合成して1つに統合する方法 |
JP2009015583A (ja) * | 2007-07-04 | 2009-01-22 | Nagasaki Univ | 画像処理装置及び画像処理方法 |
-
2002
- 2002-03-11 JP JP2002064643A patent/JP3575469B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002312810A (ja) | 2002-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3104638B2 (ja) | 3次元画像作成装置 | |
US6046745A (en) | Three-dimensional model making device and its method | |
US6025847A (en) | Three dimensional modeling system with visual feedback | |
JP3148045B2 (ja) | 三次元物体cg作成装置 | |
JP4025442B2 (ja) | 三次元モデル変換装置及び方法 | |
US9208607B2 (en) | Apparatus and method of producing 3D model | |
US9014507B2 (en) | Automatic tracking matte system | |
JP5299173B2 (ja) | 画像処理装置および画像処理方法、並びにプログラム | |
JPH07262410A (ja) | 画像合成方法及び装置 | |
JP2000307949A (ja) | 画像の補間方法、画像処理方法、画像表示方法、画像処理装置、画像表示装置、及びコンピュータプログラム記憶媒体 | |
KR101875047B1 (ko) | 사진측량을 이용한 3d 모델링 시스템 및 방법 | |
JP3245336B2 (ja) | モデリング方法およびモデリングシステム | |
JP2013008257A (ja) | 画像合成プログラム | |
US11217002B2 (en) | Method for efficiently computing and specifying level sets for use in computer simulations, computer graphics and other purposes | |
JP3309841B2 (ja) | 合成動画像生成装置および合成動画像生成方法 | |
KR101859318B1 (ko) | 360˚ 가상카메라를 활용한 영상콘텐츠 제작 방법 | |
JP3575469B2 (ja) | 合成動画像生成装置および合成動画像生成方法 | |
JP2001243497A (ja) | 3次元画像処理方法,3次元モデリング方法および3次元画像処理プログラムを記録した記録媒体 | |
JP2017084215A (ja) | 情報処理システム、その制御方法、及びプログラム | |
JP3642923B2 (ja) | 映像生成処理装置及びその装置で用いられる構造化データを作成する構造化データ作成装置 | |
US6633291B1 (en) | Method and apparatus for displaying an image | |
JP4269951B2 (ja) | 3次元コンピュータ・グラフィックス・モデリング・システム | |
JPH11175765A (ja) | 3次元モデル作成方法、3次元モデル作成装置及び記憶媒体 | |
JP3361437B2 (ja) | 3次元cgアニメーション作成装置及び作成方法 | |
JP4017351B2 (ja) | 3次元モデル生成装置および3次元モデル生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040302 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040428 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040428 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040615 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040628 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070716 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080716 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080716 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090716 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090716 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100716 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100716 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110716 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |