(57)【要約】【課題】  質感を向上させた合成画像を生成する照明シミュレーション方法及び画像合成方法を提供する。【解決手段】    実空間情報設定支援部１０は、実空間の形状，照明条件を入力し、照明条件を実空間の形状に投影し、実空間の表面属性を近似計算し、実空間のモデルを示す情報とすし、さらに、仮想物体の形状，表明属性等を入力し仮想物体モデルとする。照明シミュレーション部３０は、照明シミュレーションを行って、実空間の照度の差分と、仮想物体の照度等を出力する。表示制御部４０は、背景画像の照度を補正し、仮想物体画像生成部４３が生成した仮想物体の画像を合成して表示部５０に表示させる。【選択図】      図１
2007272847.tif 000002
【特許請求の範囲】
【請求項１】
実空間の形状を入力し、
実空間の照明条件を入力し、
仮想物体の形状及び前記実空間に対する位置を入力し、
実空間と仮想物体の大域照明シミュレーションを実行する
ことを特徴とする照明シミュレーション方法。
【請求項２】
前記入力した実空間と仮想物体の形状を平面状に展開し、展開した実空間と仮想物体の表面上の参照点の位置，照明条件を２次元配列状にマッピングした入力データを生成し、
前記大域照明シミュレーションにおいて、前記入力データに応じた照明シミュレーションを実行する
ことを特徴とする請求項１記載の照明シミュレーション方法。
【請求項３】
前記大域照明シミュレーションにおいて、シミュレーション結果を、
前記仮想物体の表面の照度を示すデータと、
前記実空間の表面の照度変化を示すデータとして出力する
ことを特徴とする請求項１又は２記載の照明シミュレーション方法。
【請求項４】
前記実空間上の受光点に他の点から入射する光のエネルギーを求め、
当該受光点の前記照明条件と比較して当該受光点の拡散反射率を求め、
該拡散反射率を用いて前記大域照明シュミレーションを実行する
ことを特徴とする請求項１から３のいずれかに記載の照明シミュレーション方法。
【請求項５】
実空間の形状を入力し、
実空間の照明条件を入力し、
仮想物体の形状及び前記実空間に対する位置を入力し、
実空間と仮想物体の大域照明シミュレーションを実行し，前記仮想物体の表面の照度を示すデータと，前記実空間の表面の照度変化を示すデータを出力し、
背景画像と当該背景画像の撮影条件を入力し、
該撮影条件に応じて前記実空間の表面の照度変化を示すデータから差分画像を生成し、
前記差分画像に従って前記背景画像の照度を調整し、
前記撮影条件に応じて前記仮想物体の表面の照度を示すデータから仮想物体の画像を生成し、
前記照度を調整した背景画像と前記仮想物体の画像を合成することを特徴とする画像合成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、質感を向上させた合成画像を生成する照明シミュレーション方法及び画像合成方法に関する。
【背景技術】
【０００２】
従来より、実写画像の背景にＣＧで生成した仮想物体の画像を合成する技術が知られている（例えば特許文献１参照。）。
【０００３】
また、例えば図５１に示すような実写のパノラマ画像（あるいはＨＤＲＩ画像）等を環境球にマッピングし、大域照明（Global Illumination）の光源として照明シミュレーションを行う技術が知られている（例えば非特許文献１参照。）。
【特許文献１】特許平９−５０５４０号公報（第４頁−第５頁、図１）
【非特許文献１】Paul Debevec、‘Rendering Synthetic Objects into Real Scenes: Bridging Traditional and Image-based Graphics with Global Illumination and High Dynamic Range Photography’、SIGGRAPH98 conference proceedings、１９９８年７月
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のように環境球にマッピングした光源では、図５２に示すように、環境球の中心以外に存在する仮想物体に対しては正確な照明条件にはならない。
【０００５】
また、現実には、仮想物体の存在により、実空間上の照度が変化する場合があるが、上述のような環境球にマッピングした光源を用いた場合には、実空間に与える照度の変化を正確に求めることができなかった。
【０００６】
このため、このように生成した仮想物体のＣＧ画像を単に背景画像に合成しただけでは、現実の物体を配置した場合に比較して違和感がある場合があり、質感等の面で改善の余地があった。
【０００７】
本発明は、上述のような課題に鑑みてなされたものであり、正確な照明シミュレーションをことができる照明シミュレーション方法を提供することを目的とする。また、本発明は、質感を向上させた合成画像を生成することができる画像合成方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の問題を解決するために、本発明の請求項１に係る照明シミュレーション方法は、実空間の形状を入力し、実空間の照明条件を入力し、仮想物体の形状及び実空間に対する位置を入力し、実空間と仮想物体の大域照明シミュレーションを実行することを特徴とする。
【０００９】
また、本発明に請求項３に係る照明シミュレーション方法は、請求項１又は２の照明シミュレーション方法の大域照明シミュレーションにおいて、シミュレーション結果を、仮想物体の表面の照度を示すデータと、実空間の表面の照度変化を示すデータとして出力することを特徴とする。
【００１０】
また、本発明の請求項５に係る画像合成方法は、実空間の形状を入力し、実空間の照明条件を入力し、仮想物体の形状及び実空間に対する位置を入力し、実空間と仮想物体の大域照明シミュレーションを実行し，仮想物体の表面の照度を示すデータと，実空間の表面の照度変化を示すデータを出力し、背景画像と当該背景画像の撮影条件を入力し、撮影条件に応じて実空間の表面の照度変化を示すデータから差分画像を生成し、差分画像に従って背景画像の照度を調整し、撮影条件に応じて仮想物体の表面の照度を示すデータから仮想物体の画像を生成し、照度を調整した背景画像と仮想物体の画像を合成することを特徴とする。
【発明の効果】
【００１１】
本発明の請求項１に係る照明シミュレーション方法では、実空間と仮想物体の大域照明シミュレーションを実行することにより、実空間の照明条件に応じた正確な照明シミュレーションを実行することができる。
【００１２】
また、本発明の請求項３に係る照明シミュレーション方法では、シミュレーション結果を、仮想物体の表面の照度を示すデータと、実空間の表面の照度変化を示すデータとして出力することにより、例えば視点の座標が変わった場合においても、シミュレーション結果を再利用することができる。これにより、処理の高速化を実現することができる。
【００１３】
また、本発明の請求項５に係る画像合成方法では、大域照明シミュレーションの結果を仮想物体の表面の照度を示すデータと，実空間の表面の照度変化を示すデータとして出力し、背景画像の撮影条件に応じて実空間の表面の照度変化を示すデータから差分画像を生成し、差分画像に従って背景画像の照度を調整し、撮影条件に応じて仮想物体の表面の照度を示すデータから仮想物体の画像を生成し、照度を調整した背景画像と仮想物体の画像を合成することにより、合成画像を生成することができる。これにより、質感を向上させた合成画像を生成することができる。
【発明を実施するための最良の形態】
【００１４】
本発明は、例えば仮想物体の画像と実空間の画像を合成する画像処理システムに適用することができる。
【実施例１】
【００１５】
（全体構成）
本発明の第１の実施例に係る画像処理システムは、例えばＣＰＵ（Central Processing Unit），メモリ，ＨＤＤ等の外部記憶装置，画像データ等を入力する入力部，表示装置等を備えている。この構成に加えて、画像データ等の処理を行うＧＰＵ（Graphic Processing Unit）を設けてもいい。また、ＣＰＵあるいはＧＰＵにＳＩＭＤ（Single Instruction Multiple Data）命令を実行するＳＩＭＤ命令処理部を設けてもよい。
【００１６】
（全体ブロック）
この画像処理システムは、処理プログラムの実行により、例えば図１に示すように、実空間の情報の設定を支援する実空間情報設定支援部１０と、仮想物体の情報を入力する仮想物体情報入力部２０と、実空間の情報及び仮想物体の情報に応じて照明シミュレーションを行う照明シミュレーション部３０と、表示部５０に表示する画像を生成する表示制御部４０として機能する。
【００１７】
実空間情報設定支援部１０は、実空間の形状の設定を支援する形状設定部１１と、実空間の照度値の設定を支援する照度値設定部１２と、拡散反射率計算部１３とを備えている。
【００１８】
また、照明シミュレーション部３０は、実空間，仮想物体についてのデータを格納するデータ格納部３１と、ボクセルＢを用いて照明シミュレーションにおいて隠蔽関係を検出する隠蔽関係検出部３３１と、照度を計算して照度蓄積部３３３に蓄積する照度計算部３３２と、照明シミュレーション部３０全体の動作を制御する計算制御部３４等を備えている。
【００１９】
また、表示制御部４０は、実空間の背景画像の視点等の情報を入力する視点座標入力部４１と、照明シミュレーションの結果に応じて実空間（背景）画像の補正を行う実空間画像補正部４２と、上述の視点等の情報に応じた仮想物体の画像を生成する仮想物体画像生成部４３と、実空間画像補正部４２により補正した背景画像中に仮想物体画像生成部４３により生成した仮想物体の画像を合成する合成部４４とを備えている。
【００２０】
（動作概要）
このように構成された画像処理システムでは、例えば図２に処理の概要を示すように、実空間情報設定支援部１０は、実空間の形状（Ｓ１），照明条件（Ｓ２）を入力し、照明条件を実空間の形状に投影し（Ｓ３）、実空間の表面属性を近似計算し（Ｓ３）、実空間のモデルを示す情報とする（Ｓ４）。さらに、仮想物体の形状，表明属性等を入力し仮想物体モデルとする（Ｓ６）。実空間と仮想空間のモデルが設定されると、照明シミュレーション部３０は、照明シミュレーションを行う（Ｓ７）。このように求めたシミュレーション結果は、実空間については仮想物体の存在による照度の差分が実空間の形状に対応付けられたデータであり、仮想物体については照度が仮想物体の形状に対応付けられたデータである。
【００２１】
仮想物体画像生成部４３は、上述のように生成されたシミュレーション結果を、背景画像の撮影用の機器の特性等に応じて補正する（Ｓ８，Ｓ９）。撮影された実空間の背景画像が入力されると（Ｓ１０）、実空間画像補正部４２は、シミュレーション結果を用いて背景画像の照度を補正する（Ｓ１１）。仮想物体画像生成部４３は、背景画像の撮影条件（カメラの位置，角度，画角，露出，ホワイトバランス，トーンカーブ等）に応じた仮想物体の画像を生成し、合成部４４がこれを補正された背景画像に合成する（Ｓ１２）。
【００２２】
上述のシミュレーション結果は、Ｓ１０で撮影された背景画像の撮影条件（画角等）の変化に応じて再利用され、背景画像に反映される。
【００２３】
（マップ）
この画像処理システムでは、照度シミュレーションのデータを、例えば図３に示すように、各々所定のＵＶ変換により、実空間（サーベイ１）及び仮想物体（ＣＧオブジェクト）の表面形状を平面状に展開した２次元配列データ（マップ）として扱っている。
【００２４】
このマップは、例えば各々展開された点についての３次元座標等が格納される計算頂点マップ（Ｐマップ）と、法線についての情報が格納される法線（ノーマル）マップ（Ｎマップ）と、拡散反射率が格納される拡散反射率（ディフーズ）マップ（Ｄマップ）と、実空間上の照度変化と仮想物体の照度が格納されるイルミナンス（総受光照度値）マップ（Ｉｌｌマップ）と、照明シミュレーションにおいて受光照度値が蓄積されるレシーブ（カレントレシーブ）マップ（Ｒマップ）と、放射照度値が格納されるアンショットマップ（Ｕマップ）とから構成されている。
【００２５】
Ｐマップの各要素の値は、実空間上のｘ座標，ｙ座標，ｚ座標を示すＰｘ，Ｐｙ，Ｐｚと、当該頂点がグリッド内に占める面積を示すＰａの４つの値を持つ。また、Ｎマップの各要素の値は、法線のｘ方向，ｙ方向，ｚ方向の成分を示すＮｘ，Ｎｙ，Ｎｚの３つの値を持つ。また、Ｄマップの各要素の値は、赤色光（Ｒ），緑色光（Ｇ），青色光（Ｂ）に対する拡散反射率を示すＤｒ，Ｄｇ，Ｄｂの３つの値を持つ。また、Ｉｌｌマップの各要素の値は、赤色光（Ｒ），緑色光（Ｇ），青色光（Ｂ）の照度を示すＩｒ，Ｉｇ，Ｉｂの３つの値を持つ。また、Ｒマップの各要素の値は、赤色光（Ｒ），緑色光（Ｇ），青色光（Ｂ）に対応する受光照度値のＲｒ，Ｒｇ，Ｒｂの３つの値を持つ。また、Ｕマップの各要素の値は、赤色光（Ｒ），緑色光（Ｇ），青色光（Ｂ）に対応する放射照度値のＵｒ，Ｕｇ，Ｕｂの３つの値を持つ。
【００２６】
各々のマップは、同一の要素数（例えば１０２４×１０２４〜４０９６×４０９６）の２次元配列で構成されており、実空間あるいは仮想物体上の同一の点に対応する各マップのデータは、２次元配列上の同一の位置に格納されている。また、各々のマップの要素の値は、例えば同一のインデックスＩｘ（ｉ，ｊ）［ｉ，ｊ：０，１，…，ｎ］あるいはＩｘ（ｕ，ｖ）［ｕ，ｖ：０〜１］で参照して読み出すことができるようになっている。
【００２７】
（照明シミュレーション部３０概要）
また、照明シミュレーション部３０の隠蔽関係検出部３３１は、例えば図４に示すように、Ｐマップ，ＮマップとボクセルＢ（後述）とに応じて受光点Ｐｒと放射点Ｐｓの間の隠蔽関係を判定し、照度計算部３３２は、放射点Ｐｓから受光点Ｐｒに放射される光のエネルギーを、実空間については照度の差分、仮想物体については照度としてＲマップに蓄積し、最終的に得られた値をＩｌｌマップに格納する。
【００２８】
（動作詳細）
実空間が例えば図５及び図６に示すような形状であり、仮想物体が例えば図７に示すような形状であったとすると、各々所定のＵＶ変換により、これらの表面上の点は、例えば図８に示すような平面形状に展開することができる。
【００２９】
例えば図５中の座標（０，０，２．４）の点は、図８に示すマップ中では左上（０，０）の位置に展開される。Ｐマップ上のこの位置の要素の値は、例えば図９に示すように、Ｐｘが０，Ｐｙが０，Ｐｚが２．４となる。
【００３０】
実空間の形状は、例えば実空間の形状を実際に測定したり、例えば“http://www.crescentvideo.co.jp/boujou/”あるいは“http://www.realviz.com/products/im/index.php”等で紹介されているカメラトラッキング・マッチムーブソフトウェア等）を用いて実空間を撮影した動画像等から生成したり、あるいは静止画のパノラマ画像と撮影条件等から生成したり、例えば“http://www.realviz.com/products/mpro/index.php”等で紹介されている３次元形状作成ソフトウェアを用いて複数の静止画像から生成することができる。あるいは、屋外であれば、ＧＰＳ等を用いて位置を測定して実空間の形状を測定してもよい。
【００３１】
（ＰマップとＮマップ）
形状設定部１１は、実空間の形状が入力されると（上述の図２中のＳ１）、これを平面状に展開してＰマップ上のデータを作成する。この展開は、例えばＭａｙａ（商標）等のＣＧオブジェクトのモデリング機能とＵＶ変換機能を備えたソフトウェアに、上述のように入力された実空間の形状を入力し、当該形状の表面をＵＶ変換して平面状に展開して出力させる。形状設定部１１は、このようにして平面状に展開された実空間の形状を、適当な要素数（例えば１０２４×１０２４〜４０９６×４０９６）のマトリクスにマッピングする。この際、形状設定部１１は、実空間の稜線がマップのグリッドの中央に対応するように実空間の形状を展開するようにしている。このため、稜線上の点のＰａの値は０．５（例えば“１０"ｂ［２進数］）となり、角の点のＰａの値は０．２５（例えば“０１"ｂ）となる。また、実空間上の面上の点の位置のＰａは１（例えば“１１"ｂ）、実空間上の点に対応しない位置のＰａの値は０（例えば“００"ｂ［２進数］）である。このように、Ｐａの値として取り得る値は４つの値であるため、Ｐａの値は２ビットで足りる。このため、左上（０，０）の点のＰａの値は、例えば０．２５に対応する値（“０１"ｂ）となる。
【００３２】
また、形状設定部１１は、マトリクス上の各要素に対応する実空間上の点の座標（ｘ，ｙ，ｚ）をＰマップの値（Ｐｘ，Ｐｙ，Ｐｚ）とする。
【００３３】
また、同様に、Ｎマップ上の左上（０，０）の位置の要素の値は、例えば図１０に示すように、Ｎｘが１，Ｎｙが０，Ｎｚが０となる。
【００３４】
（実空間の照度入力→Ｉｌｌマップに投影，Ｕマップの設定）
実空間の照明条件は、例えば照度計等の測定器により実測してもよいが、例えば図１１に示すような多重露光写真等から生成したＨＤＲＩ（パノラマ）画像を用いても良い。
【００３５】
照度値設定部１２は、実空間上の照度が入力されると（上述の図２中のＳ２）、例えば図１２に示すように、ＩｌｌマップとＵマップ上の実空間に相当する要素の値を設定する（図２中のＳ３）。
【００３６】
まず、照度値設定部１２は、図１３及び図１４に示すように、ＨＤＲＩ画像の画素の輝度の値をＩｌｌマップ上の領域毎に投影する。ここで、実空間（サーベイ１）が均等拡散反射面であるとして扱うと、 ρＥ ＝ πＩ となり、 放射照度値 ＝ π×輝度 すなわち、
Ｕｒ  ＝  πＩｒ
Ｕｇ  ＝  πＩｇ
Ｕｂ  ＝  πＩｂ
となるので、照明条件（輝度値）をＩｌｌマップに投影する際に、輝度値にπを乗算して、Ｕマップに格納する。
【００３７】
（実空間の拡散反射率）
上述のように、Ｕマップの値が設定されると、拡散反射率計算部１３は、実空間が均等拡散反射面であるものとして扱い、Ｄマップ上の各点（実空間のみ）の反射率Ｄを求める（図２中のＳ４）。
【００３８】
具体的には、例えば図１５及び図１６に示すように、拡散反射率計算部１３は、ある点（Ｐｒ）に他の全ての点から入射する光の和（受光照度値Ｒ）を求め（図１６中のＳ２２〜Ｓ２６）、Ｓ２１〜Ｓ２７の処理（１回分のパス）を繰り返して全てのＰｒについて受光照度値Ｒを求める。この後、拡散反射率計算部１３は、上述のように設定した放射照度値（Ｕ＝π×Ｉ）との比を求め、この点（Ｐ）の拡散反射率としてＤマップに格納する（Ｓ２８）。ある点に入射する入射光の和と、その点の輝度（実測値）との比が拡散反射率Ｄであるため、このようにして各点におけるＤを求めている。
【００３９】
ここで、実空間の形状によっては、隠蔽されて、拡散反射光が、特定の点（Ｐ）に届かない点がある。このため、拡散反射率計算部１３は、例えば図１７に示すようなボクセルＡを用いて隠蔽関係を判定する（図１８）。
【００４０】
（ボクセルＡの生成）
形状設定部１１は、上述のようにＰマップ，Ｎマップを生成すると、上述の図１７に示すように、実空間を所定のサイズのグリッドで分割した３次元配列（ボクセルＡ）を生成し、各グリッド内に実空間上の物体（面）が存在するか否かを示す情報（例えば１ビットのフラグ、０：なし、１：あり）を格納する。なお、隠蔽関係を判定する方法はこれに限らず、実空間の形状を別途保持しておき、これに応じて判定してもよい。
【００４１】
（仮想物体の設定）
仮想物体情報入力部２０は、例えば仮想物体の３次元形状，表面の色，反射率等の条件を入力し、所定のＵＶ変換により、仮想物体の表面形状を上述のマップ内に平面形状として展開する。具体的には、例えばＭａｙａ（商標）等のソフトウェアによってＣＧオブジェクトの形状を作成し、当該形状の表面をＵＶ変換して平面状に展開して出力させる。形状設定部１１は、このようにして平面状に展開された仮想物体の形状と実空間に対する仮想物体の位置に応じて、仮想物体の形状に応じてＰマップとＮマップ内の仮想物体の領域のデータを設定し、仮想物体の表面の色，反射率に応じてＤマップ内の仮想物体の領域のデータ設定する。
【００４２】
（照明シミュレーション：仮想物体）
上述のように、実空間と仮想物体についての情報の設定が終了すると、照明シミュレーション部３０は、例えば図１９に示すように、Ｉｌｌマップを環境光とし、仮想物体の照度を求める。
【００４３】
計算制御部３４は、例えば図２０に示すように、Ｒマップ上のある要素（Ｐｒ：受光点）を選択し（Ｓ３１）、他の全ての要素（Ｐｓ：放射点）から放射されるエネルギーを蓄積する（Ｓ３２〜Ｓ３６）。
【００４４】
Ｓ３１における要素Ｐｒ（インデックスｒＩ）の選択は、例えば図２８に示すように、仮想物体のデータが格納されている領域の左上から右下（左から右、１ライン終わったら次のライン）に順次行う。
【００４５】
Ｓ３２における要素Ｐｓ（インデックスｓＩ）の選択は、Ｐｒの選択と同様に、例えば、上の仮想物体のデータが格納されている領域の左上から右下（左から右、１ライン終わったら次のライン）に順次行う。
【００４６】
要素が決まると、隠蔽関係検出部３３１は、隠蔽関係を判断し（Ｓ３３，Ｓ３４）、隠蔽されていなければ、照度計算部３３２は、ＰｓからＰｒに放射される光のエネルギーを求め、Ｒマップ（Ｒ［ｒＩ］）に蓄積する（Ｓ３５）。全てのＰｓからの光のエネルギーを蓄積し終わると、点Ｐｒにおける照度値がＲマップ（Ｒ［ｒＩ］）に蓄積された状態となる。
【００４７】
例えば図２１に示すように、受光点，放射点をそれぞれＰｒ，Ｐｓ、マップのインデックスをそれぞれｒＩ，ｓＩ、この２点間の距離をｄ、ＰｓからＰｒに向かう正規化されたベクトルをＶｓとする。受光点（Ｐｒ）を固定して他の点（Ｐｓ）から放射（シュート）することとすると、受光点Ｐｒに入射するカレントレシーブＲは以下の式（１）によって計算することができる。
Ｒ（ｒＩ） ＝ ∫ ｒ ｄω                              …式（１）
【００４８】
ここで、ωは立体角であり［０，２π］の値をとる。また、式（１）の左辺「Ｒ（ｒＩ）」は、Ｐマップ上のインデックスｒＩに対応する要素（各色［Ｒ，Ｇ，Ｂ］毎の成分Ｒｒ（ｒＩ），Ｒｇ（ｒＩ），Ｒｒ（ｒＩ）を有する）を意味しており、式（１）は以下のように変形できる。
Ｒ（ｒＩ） ＝ ∫ （ｒ＿ｃｇ＿ ＋ ｒ＿１） ｄω          …式（２）
【００４９】
ここで、ｒ＿ｃｇは仮想物体上のＰｓから受けるエネルギー，ｒ＿１は実空間上のＰｓから受けるエネルギーを示しており、式（２）は以下のように変形できる。
Ｒ（ｒＩ） ＝ ∫ ｒ＿ｃｇ＿ ｄω’ ＋ ∫ ｒ＿１ ｄω”  …式（３）
（ω＝ω’＋ω”）
Ｒ（ｒＩ） ＝ ∫ ｒ＿ｃｇ＿１ ｄω１                    …式（４）
（ω１＝ω’＋ω”）
【００５０】
上述のｒ＿ｃｇ＿１は、具体的には、以下のように計算する。
ｒ＿ｃｇ＿１＝ｆ１×ｕ１×ｖ                                        …式（５）
上述のｒ＿ｃｇもｒ＿１も算出方法は同じであるため、ｒ＿ｃｇ＿１としてまとめている。
【００５１】
また、ｆ１はＰｒを中心とする単位球上に投影されたＰｓの立体角（球面上の割合）を示すフォームファクタであり、具体的には、次式で求めている。なお、このフォームファクタ（ｆ１）の値は無次元で、次式に示すように、πで割ることにより、［０〜１］に正規化されている。
ｆ１＝Ｐａ（ｓＩ）×（Ｎ（ｓＩ）×Ｖｓ）×（Ｎ（ｒＩ）（−Ｖｓ））／（ｄ×ｄ）／π
【００５２】
ｕ１は上述のＵマップ中のインデックスｓＩに対応する要素の値であり、各色［Ｒ，Ｇ，Ｂ］毎の成分Ｒｒ（ｒＩ），Ｒｇ（ｒＩ），Ｒｒ（ｒＩ）を有する。
ｕ１＝Ｕ（ｓＩ）
【００５３】
また、ｖは、上述の隠蔽関係検出部３３１による遮蔽判定の結果であり、隠蔽されていない場合には、ｖ＝１となり、隠蔽されている場合にはｖ＝０となる。
【００５４】
Ｐｒに放射するＰｓを各マップから順次選択し、マップ内の全ての要素に対して、上述のｕ１の値を累積することにより、全ての方向からＰｒに入射するエネルギー（カレントレシーブＲ（ｒＩ））を求めたことになる。
【００５５】
（隠蔽関係の判断）
また、上述のＳ３３における隠蔽関係の判断は、例えば図２２に示すように、ＰｓとＰｒの間に仮想物体等が存在するか否かによって行う。具体的には、例えば図２３に示すようなボクセルＢを用意しておき、これによって隠蔽関係の判断を行う。
【００５６】
仮想物体情報入力部２０は、上述のように仮想物体の形状等が入力された際に、上述のように生成されたボクセルＡに仮想物体が存在するか否かを示す情報（例えば１ビットのフラグ、０：なし、１：あり）を格納し、上述の図２３に示すように、ボクセルＢとする。なお、隠蔽関係を判定する方法はこれに限らず、実空間と仮想物体の形状を別途保持しておき、これらに応じて判定してもよい。
【００５７】
隠蔽関係検出部３３１は、このボクセルＢを用いて受光点Ｐｒと放射点Ｐｓの隠蔽関係を判定し、隠蔽されている場合にはｖ＝０とし、隠蔽されていない場合にはｖ＝１とする。この判定結果は、例えば図２４に示すように、Ｖマップとして保存しておくようにしてもよい。受光点Ｐｒに対する各放射点Ｐｓの隠蔽関係を、Ｐｒを中心とする球面上にマッピングすると、Ｐｒからの方向θ（例えばＸ−Ｙ平面上の角度），φ（例えばＺ方向の角度［仰角］）を用いた球面調和関数で近似することができるようになる。この球面調和関数のパラメータを適宜選択し、当該Ｐｒに対するＶマップの値（Ｓ１，Ｓ２，Ｓ３，Ｓ４，…）として格納しておく。また、多くのパラメータが必要な場合には、Ｖマップを複数（例えばＶ１マップ，Ｖ２マップ，…）設けるようにしてもい。このように求めたＶマップは、次回のパスにおいて隠蔽関係を判断する際に、各パラメータ（Ｓ１，Ｓ２，Ｓ３，Ｓ４）から隠蔽関係を示すフラグを球面上に展開して、再利用することができる。このように球面調和関数を用い、球面の分割ステップを適当に設定すれば、計算量の増加を抑えつつ、ある程度の精度で隠蔽関係を判断することができる。これにより、２回目以降のパスの実行時には、上述の式（５）中のｖの代わりに、展開したＶマップの値を用いてＰｓから受けるエネルギーを計算することができる。このようにすれば、各々のＰｓについてボクセルを用いた比較を行う場合に比較して、ＳＩＭＤ処理による実行に適した処理になる。
【００５８】
全てのＰｒについて、Ｓ３１〜Ｓ３７までの処理が終了すると、１回分のパスについて、Ｒマップ内の仮想物体の照度が求められる。
【００５９】
（照明シミュレーション：実空間）
また、照明シミュレーション部３０は、例えば図２５に示すように、仮想物体により遮られた環境光を求め、実空間上の照度の差分を求める。
【００６０】
計算制御部３４は、例えば図２６に示すように、Ｒマップ上のある要素（Ｐｒ）を選択し（Ｓ４１）、他の全ての要素（Ｐｓ）から放射されるエネルギーのうち、仮想物体によって遮られた部分を蓄積する（Ｓ４２〜Ｓ４６）。
【００６１】
Ｓ４１における要素Ｐｒ（インデックスｒＩ）の選択は、例えば実空間のデータが格納されている領域の左上から右下（左から右、１ライン終わったら次のライン）に順次行う。また、Ｓ４２における要素Ｐｓ（インデックスｓＩ）の選択は、Ｐｒの選択と同様に、例えば、上の仮想物体のデータが格納されている領域の左上から右下（左から右、１ライン終わったら次のライン）に順次行う。
【００６２】
要素が決まると、隠蔽関係検出部３３１は、隠蔽関係を判断し（Ｓ４３，Ｓ４４）、隠蔽されていれば、照度計算部３３２は、上述と同様に、ＰｓからＰｒに放射される光のエネルギーを求め、負の値としてＲマップ（Ｒ［ｒＩ］）の値に蓄積する（Ｓ４５）。全てのＰｓからの遮られた光のエネルギーを蓄積し終わると、１回分のパスについて、Ｐｒにおける照度の差分がＲマップ（Ｒ［ｒＩ］）に蓄積された状態となる。
【００６３】
上述の図２０の処理と図２６の処理は、当該パスにおける受光照度値Ｒが所定の閾値以下になるまで、Ｒマップの値（受光照度値）にＤマップの値（拡散反射率）を乗じた値を新たなＵマップの値（放射照度値）として、Ｓ３１〜Ｓ３７，Ｓ４１〜Ｓ４７の処理（１回分のパス）を繰り返す。この後、計算制御部３４は、最終的にＲマップに蓄積されたシミュレーション結果をＩｌｌマップに格納する。これにより、Ｉｌｌマップには、例えば図２７に示すように、実空間の領域には照度の差分が格納され、仮想物体の領域には照度が格納された状態となる。これを実際の座標に対応させて示すと、図２８のようになる。このように求められたシミュレーション結果は、背景画像の撮影条件等に対応させて再利用することができるようになる。
【００６４】
（ＳＩＭＤ対応）
ところで、上述の図２０の処理と図２６の処理における演算は、例えば図２９及び図３０に示すように、各マップの要素を１次元配列状に並べた順序で行われる。従って、上述の各マップのように、シミュレーションに用いるデータを、２次元状の配列にしておき、逐次配列の要素を抽出して、演算に用いることができる。このため、ＣＰＵ若しくはＧＰＵがＳＩＭＤ命令処理部が設けられていれば、高速に演算させすることができる。これにより、処理時間の短縮を実現することができ、背景画像が動画の場合でも対応させることが容易になる。
【００６５】
（表示処理）
背景画像（図３１）が入力され、視点座標入力部４１からカメラの座標，画角等の撮影条件が入力されると、表示制御部４０の実空間画像補正部４２は、撮影条件に対応させて、Ｉｌｌマップから照度の差分を示す画像を生成し（図３２）、背景画像にブレンドして照度の差分を反映させた背景画像を生成する（図３３）。
【００６６】
撮影条件は、例えば図３４に示すように、実空間に対するカメラの位置，向き（視線方向ベクトル），画角，ホワイトバランス、露出値等を有する。このような、撮影条件は、別途視点座標入力部４１に供給してもよいが、背景画像が静止画である場合には、画像データ中の所定領域のデータとして格納しておき、視点座標入力部４１が画像データから抽出するようにしてもよい。また、背景画像が動画である場合には、撮影画像のデータとは別途、視点座標入力部４１に供給するようにしてもよい。
【００６７】
また、仮想物体画像生成部４３は、カメラの座標，画角等の撮影条件に対応させて、Ｉｌｌマップから仮想物体の照度を示す画像を生成する（図３５）。さらに、合成部４４は、照度の差分を反映させた背景画像中に、仮想物体の画像を合成する（図３６）。
【００６８】
（効果）
従来のように、背景画像中に単に仮想物体のＣＧ画像を合成する場合には、例えば図３７に示すように、仮想物体の存在による背景画像の照度変化は、反映されない。これに対し、この画像処理システムでは、上述の図３６に示すように、仮想物体による背景画像の照度の変化（具体的には、球と立方体の影）が反映された画像を生成することができる。
【００６９】
仮想物体に相当する現実の物体が存在する場合には、当該物体の存在により周囲の物体の照度も変化する。このため、単に天空球にマッピングした周辺の照明条件を用いて仮想物体の照度シミュレーションを行ったり、単に仮想物体の影を求めるだけでは、実空間に与える照度変化と仮想物体の正確な照度を求めることはできない。これに対し、この画像処理システムでは、実空間の形状にマッピングした照明条件により仮想物体の照度を求めると共に、仮想物体の存在によって実空間上に与える照度の変化を求めることができる。これにより、この画像処理システムでは、正確な照度シミュレーションを行うことができ、合成画像の質感の向上に寄与することができる。
【００７０】
（シミュレーション結果の再利用）
ところで、上述のシミュレーション結果は、背景画像の撮影条件（画角等）の変化に応じて再利用され、背景画像に反映される。例えば上述の図３１に示す背景画像が入力されている状態から、カメラの座標，画角等の撮影条件が変化し、例えば図３８に示すような背景画像に変化すると、実空間画像補正部４２は、変化後の撮影条件に対応させてＩｌｌマップから照度の差分を示す画像を生成し（図３９）、背景画像にブレンドして照度の差分を反映させた背景画像を生成する（図４０）。この後、仮想物体画像生成部４３は、Ｉｌｌマップから仮想物体の照度を示す画像を生成し（図４１）。さらに、合成部４４は、照度の差分を反映させた背景画像中に、仮想物体の画像を合成する（図４２）。
【００７１】
（動画対応）
このように、この画像処理システムでは、照明シミュレーション結果を再利用できるため、背景画像の変化に追従させて、合成画像を作成することができる。このため、例えばリアルタイムに背景画像と撮影条件を供給し得る撮像機器を用いることにより、背景画像として動画像を用いることができる。
【００７２】
（変形例：サーベイ２対応）
以上の説明では、実空間の照明条件に、外部の環境照明（例えば窓から見える風景等）が含まれていない場合を例に説明したが、外部の環境照明を含む照明条件として取り扱うようにしてもよい。例えば上述の図６に示す天井に図４３に示すような天窓が含まれるような場合には、例えば図４４に示すように、上述のボクセルＡとボクセルＢに天窓部分の開口部を設定しておく。また、上述の図１１に示す実空間の照明条件を示すＨＤＲＩ画像のうち、当該天窓部分に相当する部分については、例えば図４５に示すように、実空間形状の外部の天空球上にマッピングする（サーベイ２）。
【００７３】
さらに、照明シミュレーションにおいて、照度計算部３３２は、例えば図４６に示すように、天窓部分から入射する天空球上の光源からの光のエネルギーを上述のＰｒに入射する光のエネルギーに含めてＲマップ（Ｒ［ｒＩ］）に蓄積する。
【００７４】
この場合、上述のＳ３５，Ｓ４５におけるカレントレシーブＲ（上述の式（１）に相当）は、以下に示すように計算する。
Ｒ（ｒＩ）
＝ ∫ （ｒ＿ｃｇ＿ ＋ ｒ＿１ ＋ ｒ＿２） ｄω                       …式（６）
【００７５】
ここで、ｒ＿２は天空球上にマッピングした光源から受けるエネルギーを示しており、別途計算して求める。
【００７６】
Ｒ（ｒＩ）
＝ ∫ ｒ＿ｃｇ＿ ｄω’ ＋ ∫ ｒ＿１ ｄω” ＋ ∫ ｒ＿２ ｄω２     …式（７）
（ω＝ω’＋ω”＋ω２）
＝ ∫ ｒ＿ｃｇ＿１ ｄω１ ＋ ∫ ｒ＿２ ｄω２          …式（８）
（ω１＝ω’＋ω”）
【００７７】
上述のｒ＿２は、具体的には、以下のように計算する。
ｒ＿２ ＝ ｆ２×ｕ２×ｖ
ｆ２ ＝ （２×π／Ｗ）×｛２×ｓｉｎ（（２×ｉ＋１）×π／（２×Ｈ））×ｃｏｓ（π／（２×Ｈ））｝×（π／Ｈ）×ｃｏｓθ／２／π
ｕ２ ＝ π×ＨＤＲＩ（θ，φ）
ここで、ｕ２は、上述のＨＤＲＩ画像中のθ，φに相当する位置の輝度値にπを乗じて求めた値である。また、Ｗ，ＨはＨＤＲＩ画像の縦横の画素数，ｉは緯度方向のサンプル数，θ、φはサンプルベクトルの極座標値を示している。
【００７８】
また、この天空球上の光源から点Ｐｒに入射する光のエネルギーは、上述のθ、φを適宜変化させながら、Ｒマップ上の要素Ｒ（ｒＩ）にｒ＿２の値を累積することによって求める。
【００７９】
これにより、上述の図１６に示す拡散反射率を求める処理は、例えば図４７に示すようになる。
【００８０】
また、照明シミュレーションでは、例えば図４８に示すように、ボクセル２を用いて、サーベイ２からの光が受光点Ｐｒに入射するか否かを判定する。なお、上述の図２０に示す仮想物体の照度を求める処理は、例えば図４９（Ａ）に示すようになり、上述の図２６に示す実空間の照度変化を求める処理は、例えば図４９（Ｂ）に示すようになる。
【００８１】
このような処理を行うことにより、外部の環境照明を考慮した照明シミュレーションを行うことができるため、合成画像の質感をさらに向上させることができる。
【００８２】
（サーベイ２を考慮した拡散反射率の計算）
また、このように天空球上の光源をも考慮して求めたＲマップの要素の値から、上述と同様に、拡散反射率を求め、Ｄマップに格納するようにすれば、外部の照明条件を反映させた実空間のＤマップを生成することができ、照明シミュレーションの精度を向上させることができる。
【００８３】
（変形例２：Ｖマップとフォームファクターを乗じたＦマップ）
例えば図５０に示すように、上述の図２４に示すＶマップの代わりに、上述の判定結果（フラグｖ）にフォームファクタｆ１を乗じた値を求め、球面調和関数により近似したパラメータ（Ｆ１，Ｆ２，Ｆ３，Ｆ４，…）をＦマップとして保持しておいてもよい。これにより、２回目以降のパスにおいては、球面状に展開したフォームファクタを再利用すれば、フォームファクタの計算を行う必要がないため、処理の高速化に寄与することができる。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施例１に係る画像処理システムの構成例を示すブロック図である。
【図２】前記画像処理システムの処理の概要を示すフローチャートである。
【図３】前記画像処理システムにおける照明シミュレーションに用いる各マップの例を示す図である。
【図４】前記画像処理システムを構成する照明シミュレーション部の例を示す概念図である。
【図５】実空間の形状の例を示す図である。
【図６】実空間の形状の例を示す図である。
【図７】仮想物体の形状及び実空間に対する位置の例を示す図である。
【図８】前記各マップの例を図である。
【図９】Ｐマップの要素の値の例を示す図である。
【図１０】Ｎマップの要素の値の例を示す図である。
【図１１】実空間の照明条件の例を図である。
【図１２】前記照明条件のマッピングの例を概念的に示す図である。
【図１３】前記照明条件のマッピングの例を概念的に示す図である。
【図１４】Ｉｌｌマップの一部の例を示す図である。
【図１５】拡散反射率の計算の例を示す概念図である。
【図１６】拡散反射率の計算の例を示すを示すフローチャートである。
【図１７】隠蔽関係の判断に用いるボクセルＡの例を示す概念図である。
【図１８】隠蔽関係の判断の例を示す概念図である。
【図１９】照明シミュレーションの例を示す概念図である。
【図２０】照明シミュレーションにおける処理の例を示すフローチャート図である。
【図２１】照明シミュレーションにおけるカレントレシーブＲの計算例を示す図である。
【図２２】照明シミュレーションにおける隠蔽関係の判断例を示す図である。
【図２３】前記隠蔽関係の判断に用いるボクセルＢの例を示す概念図である。
【図２４】隠蔽関係を示すＶマップの例を示す図である。
【図２５】照明シミュレーションの例を示す概念図である。
【図２６】照明シミュレーションにおける処理の例を示すフローチャートである。
【図２７】照明シミュレーション終了後のＩｌｌマップの状態の例を示す図である。
【図２８】Ｉｌｌマップの状態の例を概念的に示す図である。
【図２９】照明シミュレーションにおける計算順序の例を示す図である。
【図３０】照明シミュレーションにおける各マップのデータの処理順序の例を示す図である。
【図３１】背景画像の例を示す図である。
【図３２】背景画像の照度変化の例を示す図である。
【図３３】照度変化を反映させた背景画像の例を示す図である。
【図３４】撮影条件を示す情報の例を示す図である。
【図３５】仮想物体の画像の例を示す図である。
【図３６】合成画像の例を示す図である。
【図３７】従来の合成方法を用いて生成した合成画像を示す図である。
【図３８】背景画像の例を示す図である。
【図３９】背景画像の照度変化の例を示す図である。
【図４０】照度変化を反映させた背景画像の例を示す図である。
【図４１】仮想物体の画像の例を示す図である。
【図４２】合成画像の例を示す図である。
【図４３】サーベイ２の例を示す図である。
【図４４】前記サーベイ２を考慮したボクセルＢの例を示す概念図である。
【図４５】前記サーベイ２のマッピングの例を示す概念図である。
【図４６】前記サーベイ２からの放射光の計算例を示す概念図である。
【図４７】前記サーベイ２を考慮した拡散反射率の計算の例を示すフローチャートである。
【図４８】前記サーベイ２を考慮した照明シミュレーションの例を示す概念図である。
【図４９】前記サーベイ２を考慮した照明シミュレーションにおける処理の例を示すフローチャートである。
【図５０】フォームファクタを格納するＦマップの例を示す図である。
【図５１】従来の照明シミュレーションに用いる環境光の例を示す図である
【図５２】従来の照明シミュレーションを示す概念図である。
【符号の説明】
【００８５】
１０  実空間情報設定支援部、１１  形状設定部、１２  照度値設定部、１３  拡散反射率計算部、２０  仮想物体情報入力部、３０  照明シミュレーション部、３１  データ格納部、３４  計算制御部、４０  表示制御部、４１  視点座標入力部、４２  実空間画像補正部、４３  仮想物体画像生成部、４４  合成部、５０  表示部
【図１】
2007272847.tif 000003
【図２】
2007272847.tif 000004
【図３】
2007272847.tif 000005
【図５】
2007272847.tif 000006
【図６】
2007272847.tif 000007
【図７】
2007272847.tif 000008
【図８】
2007272847.tif 000009
【図９】
2007272847.tif 000010
【図１０】
2007272847.tif 000011
【図１２】
2007272847.tif 000012
【図１６】
2007272847.tif 000013
【図１８】
2007272847.tif 000014
【図１９】
2007272847.tif 000015
【図２０】
2007272847.tif 000016
【図２１】
2007272847.tif 000017
【図２２】
2007272847.tif 000018
【図２４】
2007272847.tif 000019
【図２５】
2007272847.tif 000020
【図２６】
2007272847.tif 000021
【図２９】
2007272847.tif 000022
【図３０】
2007272847.tif 000023
【図３４】
2007272847.tif 000024
【図４５】
2007272847.tif 000025
【図４６】
2007272847.tif 000026
【図４７】
2007272847.tif 000027
【図４８】
2007272847.tif 000028
【図４９】
2007272847.tif 000029
【図５０】
2007272847.tif 000030
【図５２】
2007272847.tif 000031
【図４】
2007272847.tif 000032
【図１１】
2007272847.tif 000033
【図１３】
2007272847.tif 000034
【図１４】
2007272847.tif 000035
【図１５】
2007272847.tif 000036
【図１７】
2007272847.tif 000037
【図２３】
2007272847.tif 000038
【図２７】
2007272847.tif 000039
【図２８】
2007272847.tif 000040
【図３１】
2007272847.tif 000041
【図３２】
2007272847.tif 000042
【図３３】
2007272847.tif 000043
【図３５】
2007272847.tif 000044
【図３６】
2007272847.tif 000045
【図３７】
2007272847.tif 000046
【図３８】
2007272847.tif 000047
【図３９】
2007272847.tif 000048
【図４０】
2007272847.tif 000049
【図４１】
2007272847.tif 000050
【図４２】
2007272847.tif 000051
【図４３】
2007272847.tif 000052
【図４４】
2007272847.tif 000053
【図５１】
2007272847.tif 000054