(57)【特許請求の範囲】
【請求項１】
仮想被写体を実写の背景画像に合成する画像処理装置であって、
前記仮想被写体、前記背景画像、及び２つ以上の視点からなる環境マップのデータを取得する手段と、
前記環境マップのデータから距離マップのデータを生成する距離マップ生成手段と、
前記環境マップ及び前記距離マップのデータから、前記背景画像を撮像した周辺の照明環境の三次元形状のデータを生成する三次元形状データ生成手段と、
前記照明環境の三次元形状のデータを光源として、前記仮想被写体を前記背景画像に合成した、任意の視点からの合成画像を生成する仮想被写体合成手段と
を備えたことを特徴とする画像処理装置。
【請求項２】
前記環境マップ及び前記距離マップから、不要な被写体を除去する不要被写体除去手段をさらに備え、
三次元形状データ生成手段は、不要な被写体が除去された環境マップ及び距離マップのデータを用いて、前記照明環境の三次元形状のデータを生成する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記照明環境の三次元形状のデータは、前記環境マップの各画素に対応する被写体の三次元座標を算出し、算出された三次元座標を頂点とした、前記環境マップ上で隣接画素となる頂点同士を結んだポリゴンデータであることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記背景画像と前記環境マップの撮像条件は同じであることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
仮想被写体を実写の背景画像に合成する画像処理方法であって、
前記仮想被写体、前記背景画像、及び２つ以上の視点からなる環境マップのデータを取得するステップと、
前記環境マップのデータから距離マップのデータを生成するステップと、
前記環境マップ及び前記距離マップのデータから、前記背景画像を撮像した周辺の照明環境の三次元形状のデータを生成するステップと、
前記照明環境の三次元形状のデータを光源として、前記仮想被写体を前記背景画像に合成した、任意の視点からの合成画像を生成するステップと
を含むことを特徴とする画像処理方法。
【請求項６】
コンピュータを、請求項１乃至４のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実写の背景画像と三次元ＣＧオブジェクトとの合成画像データを生成する画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
ＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）を用いて実在しない仮想被写体を背景画像に合成することは、映像制作においてよく行われている。その際、合成後の映像を自然なものとするためには、仮想被写体へのライティングと背景画像のライティングとが一致している必要がある。ライティングを一致させる手法としては、ライティング環境を３Ｄモデル化する方法がある。その場合、光の経路を計算するレイトレーシングやラジオシティを用いてライティングすることがよく行われている。
【０００３】
また、背景画像を撮像した現場の全周囲画像（環境マップ）を撮像し、得られた環境マップを光源画像として用いライティング効果を施す、イメージベースドライティングという手法も用いられている（非特許文献１、非特許文献２）。
【０００４】
また、遠方の光源をイメージベースドライティングで行い、近傍の光源については３Ｄモデルを利用し、ライティング効果を施すことも行われている（非特許文献３）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２７５７８９号公報
【非特許文献】
【０００６】
【非特許文献１】Peter-Pike Sloan and Ben Luna and John Snyder”Local, Deformable Precomputed Radiance Transfer” SIGGRAPH ACM ACM SIGGRAPH 2005 Papers
【非特許文献２】Zhong Ren and Rui Wang and John Snyder and Kun Zhou and Xinguo Liu and Bo Sun and Peter-Pike Sloan and Hujun Bao and Qunsheng Peng and Baining Guo”Real-time Soft Shadows in Dynamic Scenes using Spherical Harmonic Exponentiation”, SIGGRAPH ACM SIGGRAPH 2006 Papers
【非特許文献３】古矢志帆、伊藤貴之”近傍光源を含むシーンのイメージベースドライティグ”情報処理学会全国大会講演論文集
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記従来のイメージベースドライティングを用いた手法では、仮想被写体の位置を変更した場合に、変更後の位置に応じた環境マップをあらかじめ用意しておく必要がある。これは仮想被写体の位置が変化すると、仮想被写体と光源の位置関係も変化するためである。予め仮想被写体の変更後の位置が分かっていれば、その変更後の位置に応じた有限個の環境マップを用意しておけばよい。しかし、仮想被写体の置かれる位置は無数に考えられるため、その考え得る位置のすべてに対応した環境マップを予め用意しておくことは不可能である。
【０００８】
また、上記従来のレイトレーシングやラジオシティを用いた手法では、背景画像を撮像した現場の照明環境を手作業で３Ｄモデル化しなければならず手間がかかってしまう。
【課題を解決するための手段】
【０００９】
本発明に係る画像処理装置は、仮想被写体を実写の背景画像に合成する画像処理装置であって、前記仮想被写体、前記背景画像、及び２つ以上の視点からなる環境マップのデータを取得する手段と、前記環境マップのデータから距離マップのデータを生成する距離マップ生成手段と、前記環境マップ及び前記距離マップのデータから、前記背景画像を撮像した周辺の照明環境の三次元形状のデータを生成する三次元形状データ生成手段と、前記照明環境の三次元形状のデータを光源として、前記仮想被写体を前記背景画像に合成した、任意の視点からの合成画像を生成する仮想被写体合成手段とを備えたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、背景画像と仮想被写体との合成画像データを生成する際に、仮想被写体の位置に応じた適切なライティングを容易に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】実施例１に係る画像処理装置のシステム構成例を示す図である。
【図２】実施例１に係る画像処理装置の機能構成図である。
【図３】実施例１に係る画像処理装置において実行される画像処理の全体の流れを示すフローチャートである。
【図４】実施例１に係る、背景画像及び環境マップを撮像する撮像装置の外観図である。
【図５】（ａ）は背景画像の一例を示す図、（ｂ）は環境マップの一例を示す図、（ｃ）は（ｂ）の環境マップの撮像状況を示す図である。
【図６】距離の算出方法を説明する図である。
【図７】距離マップ生成処理の流れを示すフローチャートである。
【図８】距離マップの一例を示す図である。
【図９】近接被写体を除去する場合の不要被写体除去処理の流れを示すフローチャートである。
【図１０】距離マップ上の除去領域に設定されたブロック内の画素値が参照領域に設定されたブロックの内の画素値に置き換わる様子を示す図である。
【図１１】不要被写体除去処理によって人物の顔が除去された環境マップ及び距離マップの一例を示す図である。
【図１２】周辺環境の三次元形状データ生成処理の流れを示すフローチャートである。
【図１３】（ａ）は、環境マップと３次元座標ＥＶDataとの関係を示す図であり、（ｂ）は図５の（ｃ）で示した部屋の中心で撮像された環境マップの場合における３次元座標ＥＶDataを示す図である。
【図１４】ポリゴンデータの一例を示す図である。
【図１５】ポリゴンデータのファイル形式の一例を示す図である。
【図１６】修正環境マップがポリゴンデータに転写されるように指定される様子を説明する図である。
【図１７】仮想被写体合成処理の流れを示すフローチャートである。
【図１８】仮想被写体の色信号値を算出する処理の流れを示すフローチャートである。
【図１９】発射された光線と仮想被写体との関係を示す模式図である。
【図２０】（ａ）は本実施例におけるライティングに用いられる周辺環境三次元形状と仮想被写体との関係を表した図であり、（ｂ）は、仮想被写体を背景画像に合成した合成画像の一例を示す図である。
【図２１】実施例２に係る、より多くの環境マップ撮像部を備えた撮像装置を示す図である。（ａ）は、筐体の上部と下部にそれぞれ環境マップ撮像部が２つずつ配置された撮像装置を示す図である。（ｂ）は、画角９０°の環境マップ撮像部を計１２個備えた撮像装置を示す図である。（ｃ）は、環境マップ撮像部を筐体の角に配置した撮像装置を示す図である。
【図２２】従来技術を説明する図であり、（ａ）は従来技術における仮想被写体と環境マップとの関係を表す図、（ｂ）は仮想被写体を背景画像に合成して得られた結果を示す図である。
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１３】
（実施例１）
＜従来技術＞
図２２の（ａ）は、従来技術における仮想被写体と環境マップとの関係を表す図である。ライト１０１のある環境下で撮像装置１００を用いて周辺環境の画像を撮像して環境マップ１０２を作成し、仮想被写体１０３〜１０５のライティングに用いている様子を示している。どの仮想被写体にも同じ環境マップが用いられるため、仮想被写体をどの位置においてもライト１０１の方向が等しくなる。この状況で、仮想カメラの位置を視点として仮想被写体１０３〜１０５を背景画像に合成して得られた結果が図２２の（ｂ）である。仮想被写体１０３〜１０５のいずれについても同じ陰影（ライト１０１で照らされる領域１１０及びその影の部分１１１が全ての仮想被写体で共通）となっているのが分かる。光源が無限遠でない限り、現実においてこのような陰影とはならないので、不自然な合成画像となってしまっている。
【００１４】
本実施例に係る方法によれば、仮想被写体の配置に応じた自然なライティングが実現される。以下、詳しく説明する。
【００１５】
＜システム構成例＞
図１は、本実施例に係る画像処理装置のシステム構成例を示す図である。  
画像処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ１０４、入力Ｉ／Ｆ１０５、出力Ｉ／Ｆ１０６、システムバス１０７を備える。画像処理装置１００における処理の概略は以下のとおりである。
【００１６】
ＣＰＵ１０１は、ＲＡＭ１０２をワークメモリとして、ＲＯＭ１０３及びＨＤＤ１０４に格納されたプログラムを実行し、システムバス１０７を介して後述の各部を制御する。これにより、後述する様々な処理が実行される。
【００１７】
ＣＰＵ１０１は、出力インタフェイス（Ｉ／Ｆ）１０６を介して撮像装置１１０を制御し、撮像することが可能である。さらに、ＣＰＵ１０１は、入力インタフェイス（Ｉ／Ｆ）１０５を介して、撮像装置１１０で撮像された画像データを読み込むことが可能である。
【００１８】
ＣＰＵ１０１は、ＨＤＤ１０４からのデータの読み出しや、ＨＤＤ１０４へのデータの書き込みが可能である。さらにＣＰＵ１０１は、ＨＤＤ１０４に格納されたデータをＲＡＭ１０２に展開し、同様に、ＲＡＭ１０２に展開されたデータをＨＤＤ１０４に保存することが可能である。そして、ＣＰＵ１０１は、ＲＡＭ１０２に展開したデータをプログラムとみなし、実行することができる。
【００１９】
入力Ｉ／Ｆ１０５は、キーボードやマウスなどの入力デバイス１０８を接続する、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェイスである。ＣＰＵ１０１は、入力Ｉ／Ｆ１０５を介して入力デバイス１０８からデータを読み込むことが可能である。
【００２０】
出力Ｉ／Ｆ１０６は、ディスプレイ等の出力デバイス１０９を接続する。例えばＤＶＩやＨＤＭＩ等の映像出力インタフェイスである。ＣＰＵ１０１は、出力Ｉ／Ｆ１０６を介して出力デバイス１０９にデータを送り、表示を実行させることができる。
【００２１】
図２は、本実施例に係る画像処理装置の機能構成図である。この図２に示される構成は、画像処理アプリケーションソフトウェアとして実現される。すなわち、ＣＰＵ１０１がＨＤＤ１０４等に格納された各種ソフトウェア（コンピュータプログラム）を動作させることで実現される。
【００２２】
画像処理装置１００は、背景画像、環境マップ、撮像装置情報、仮想カメラ情報、仮想被写体情報などの各種のデータを受け取り、距離マップの生成、不要被写体の除去、周辺環境の三次元形状データ生成を行う。そして、背景画像に仮想被写体を合成した合成画像データを出力データとして出力する。ここで、撮像装置情報とは、撮像装置１１０に関する情報であって、後述の環境マップ撮像部のレンズデータや環境マップ撮像部間の距離に関する情報などを含む。仮想カメラ情報とは、仮想空間中に置く仮想カメラの情報であり、その位置を示す三次元座標（位置情報）の他、仮想カメラの向き、画角などの情報が含まれる。仮想被写体情報とは、背景画像に合成する仮想被写体の詳細を示すデータであり、少なくとも仮想被写体の形状データ及びその置かれる位置を特定する位置データを含む。勿論、仮想被写体を好適に再現するための色データや反射特性に関する情報なども含まれ得る。
【００２３】
背景画像、環境マップ、撮像装置情報、仮想カメラ情報、仮想被写体情報などの各種のデータは、入力デバイス１０８からのユーザ指示に基づき、撮像装置１１０、ＨＤＤ１０４、外部メモリ等から入力される。
【００２４】
距離マップ生成部２０１は、入力された環境マップデータ及び撮像装置情報に基づき、ステレオマッチングにより全方位の距離を推定し、距離マップデータを生成する処理を行う。
【００２５】
不要被写体除去部２０２は、入力された環境マップデータおよび距離マップデータに対し、不要な被写体を除去する処理を行う。なお、この不要被写体除去処理によって生成される修正された環境マップを「修正環境マップ」、修正された距離マップを「修正距離マップ」と呼ぶこととする。
【００２６】
三次元形状データ生成部２０３は、入力された修正環境マップデータおよび修正距離マップデータに基づいて、周辺環境の三次元形状データを生成する。三次元形状データとしては、ＮＵＲＢＳ形式のデータ、例えばポリゴンデータが挙げられる。本実施例では、以下、ポリゴンデータの場合を例に説明する。
【００２７】
仮想被写体合成部２０４は、背景画像データ、周辺環境の三次元形状データ、仮想カメラ情報、仮想被写体情報に基づいて、仮想被写体を背景画像データに合成する。生成された合成画像データは、出力デバイス１０９へ出力、或いはＨＤＤ１０４に保存される。
【００２８】
図３は、本実施例に係る画像処理装置１００において実行される画像処理の全体の流れを示すフローチャートである。実際には、以下に示す手順を記述したコンピュータ実行可能なプログラムをＲＯＭ１０３等からＲＡＭ１０２上に読み込んだ後に、ＣＰＵ１０１によって該プログラムを実行することによって当該処理が実行される。
【００２９】
ステップ３０１において、画像処理装置１００は、撮影撮像装置１１０の背景画像撮像部についての設定内容（撮像条件）を取得し、その内容を環境マップ撮像部の撮影撮像条件として設定する。その理由は、画像を合成した時の違和感を生じにくくするためである。例えば、背景画像に比べて環境マップが暗い場合、仮想被写体へのライティングが暗くなり、仮想被写体と背景の明度のバランスが合わなくなる。これを避けるために背景画像と環境マップとが同じ露出で撮像されるように撮像条件を設定する。図４は、背景画像及び環境マップを撮像する、本実施例に係る撮像装置１１０の外観図である。撮像装置１１０は、カラー画像を撮像する３個の撮像部４０１、４０２、４０３及び撮像ボタン４０４を備えている。３個の撮像部のうち４０１は背景撮像部であり、４０２及び４０３は環境マップ撮像部である。環境マップ撮像部４０２／４０３の上下軸、左右軸、光軸は全て同じ方向であり筐体上部に上向きに配置されている。環境マップ撮像部が２つ存在する理由は、撮像された環境マップにおける撮像装置からの距離を算出するためであり、環境マップ撮像部４０２／４０３は画角１８０°以上の超広角レンズを備えている。本ステップでは、背景画像撮像部４０１について設定されたＩＳＯ感度、露光時間、絞り値などの撮像条件を取得し、同内容の撮像条件を環境マップ撮像部４０２及び４０３について設定する。なお、本ステップを省略し、撮像後に、異なる露出で撮像された両画像の明度などを手動で調整するようにしてもよい。
【００３０】
ステップ３０２において、画像処理装置１００は、撮像装置１１０に対し撮像を指示し、撮像された背景画像および環境マップのデータを取得する。図５の（ａ）は本ステップで取得する背景画像の一例、図５の（ｂ）は本ステップで取得する環境マップの一例をそれぞれ示している。図５の（ｃ）は（ｂ）の環境マップの撮像状況を示す図であり、実空間５０３において部屋の中央位置５０４から撮像を行ったことを示している。
【００３１】
図５の（ｂ）において、５０１が環境マップ撮像部４０２で撮像された環境マップ、５０２が環境マップ撮像部４０３で撮像された環境マップである。取得した背景画像データは仮想被写体合成部２０４に送られ、環境マップデータは距離マップ生成部２０１及び不要被写体除去部２０２に送られる。
【００３２】
ステップ３０３において、距離マップ生成部２０１は、取得した環境マップデータを用いて、距離マップデータを生成する。距離マップ生成処理の詳細については後述する。
【００３３】
ステップ３０４において、不要被写体除去部２０２は、環境マップデータ及び距離マップデータに対して不要被写体除去処理を行い、修正環境マップデータおよび修正距離マップデータを生成する。不要被写体除去処理の詳細については後述する。
【００３４】
ステップ３０５において、三次元形状データ生成部２０３は、周辺環境の三次元形状データ（本実施例ではポリゴンデータ）を生成する。周辺環境の三次元形状データ生成処理の詳細については後述する。
【００３５】
ステップ３０６において、画像処理装置１００は、仮想カメラ情報及び仮想被写体情報を取得する。取得した仮想カメラ情報及び仮想被写体情報は、仮想被写体合成部２０４に送られる。
【００３６】
ステップ３０７において、仮想被写体合成部２０４は、背景画像データと仮想被写体とを合成する仮想被写体合成処理を行って合成画像データを生成する。仮想被写体合成処理の詳細については後述する。
【００３７】
ステップ３０８において、画像処理装置１００は、生成された合成画像データを出力デバイス１０９もしくはＨＤＤ１０４に出力する。
【００３８】
＜距離マップ生成処理＞
距離マップ生成部２０１は、撮像装置１１０（より厳密には、環境マップ撮像部４０２／４０３の光学中心）から周辺環境（撮像対象）までの距離を算出して、距離マップデータを生成する。
【００３９】
ここでの距離の算出には、例えば特許文献１に開示された手法が適用可能である。図６は、特許文献１に係る三次元構造抽出方法を適用した場合の距離の算出方法を説明する図である。図６中の２つの球体画像６０１及び６０２は、それぞれ環境マップ５０１及び５０２に対応する。なお、球体画像６０１及び６０２の下半分については、例えば、球体の上半分に相当する環境マップ５０１及び５０２に基づき対称となるような中心からの一定の距離を仮定することで得ることができる。球体画像６０１を表示する第１の座標系２１をｘ1軸、ｙ1軸、ｚ1軸で示し、球体画像６０２を表示する第２の座標系３１をｘ2軸、ｙ2軸、ｚ2軸で示す。原点Ｏ1は環境マップ５０１を撮像した環境マップ撮像部４０２の光学中心、原点Ｏ2は環境マップ５０２を撮像した環境マップ撮像部４０３の光学中心に対応する。撮像対象上の物点Ｐiは、２つの球体画像の表面に物点像ｐ1i、ｐ2iとしてそれぞれ現れている。ここで、物点Ｐiの第１の座標系２１における位置ベクトルをｍ1iとし、物点Ｐiの第２の座標系３１における位置ベクトルをｍ2iとする。また、第２の座標系３１から第１の座標系２１へ変換するための回転行列をＲとし、第１の座標系２１から第２の座標系３１へ変換するための並進ベクトルをｔとする。すると、撮像対象の各物点Ｐiまでの原点Ｏ1からの距離Ｄpiは以下の式（１）によって求めることができる。
【００４０】
【数１】
0005865092.tif 000002
【００４１】
このようにして、撮像対象までの距離を算出する。
【００４２】
なお、以下の図７のフローチャートの説明では環境マップ５０１を基準とした場合について説明するが、環境マップ５０２を基準としてもよい。その場合、後述する不要被写体除去処理において、環境マップ５０２から不要被写体が除去される。また、後述する周辺環境の三次元形状データ生成処理においても、環境マップ５０２から不要被写体を除去した画像が用いられることになる。
【００４３】
図７は、距離マップ生成処理の流れを示すフローチャートである。
【００４４】
ステップ７０１において、距離マップ生成部２０１は、環境マップ５０１と環境マップ５０２において互いに対応する特徴点（図６中のｐ1i、ｐ2i）を抽出する。
【００４５】
ステップ７０２において、距離マップ生成部２０１は、抽出された特徴点に対応する環境マップ５０１／５０２の位置ベクトルｍ1n、ｍ2nから並進ベクトルt及び回転行列Ｒを算出する。なお、ｎは特徴点の数である。
【００４６】
ステップ７０３において、距離マップ生成部２０１は、並進ベクトルｔ及び回転行列Ｒを用いて、環境マップ５０１／５０２において互いに対応する他の特徴点をエピポーラ線に基づいて抽出する。
【００４７】
ステップ７０４において、距離マップ生成部２０１は、抽出された特徴点に対応する位置ベクトルｍ1n、ｍ2nを式１に代入して、特徴点に対応する物点Ｐinの三次元位置を算出する。すなわち、物点Ｐinの座標系２１における原点Ｏ1からの距離Ｄｐｉを算出する。これにより、特徴点についての距離が算出される。
ステップ７０５において、距離マップ生成部２０１は、特徴点として抽出されなかった画素について原点Ｏ1からの距離を算出する。具体的には、環境マップ５０１における各画素のうち特徴点として抽出されなかった画素について、当該画素の周囲にある特徴点から補間処理によって値を取得し、得られた値を当該画素の距離値とする。補間処理には線形補間やバイキュービック補間など既知の手法を用いればよい。
【００４８】
ステップ７０６において、距離マップ生成部２０１は、環境マップ５０１の各画素の距離値をマップ化した距離マップデータを生成する。
【００４９】
図８は、距離マップ生成部２０１で生成される距離マップの一例を示す図である。環境マップ５０１の各画素について、環境マップ撮像部４０２からの距離が近いほど高い画素値となって白に近い色となり、距離が遠いほど低い画素値となって黒に近い色となっている。
【００５０】
以上のようにして、環境マップの各画素における撮像装置１１０の光学中心からの距離を表した距離マップデータが生成される。生成された距離マップデータは、不要被写体除去部２０２に送られる。
【００５１】
＜不要被写体除去処理＞
撮像者が撮像を行う際には、図４に示されるような撮像装置１１０を用いて背景画像及び環境マップを撮像する。環境マップは画角１８０°以上の超広角画像であり、意図しない被写体が入り込む可能性が高い。例えば、撮像者自身の顔やカメラを持つ手が環境マップに写り込んだり、偶然通りがかった人物が写ったりする場合がある。そのような環境マップをそのまま仮想被写体へのライティングに使用すると、例えば、仮想被写体が写り込みを伴う材質の場合、合成画像に意図しない被写体が描画されてしまうことになる。仮想被写体へのライティングに意図しない被写体が影響を及ぼすのを防ぐために、本実施例では、不要な被写体を環境マップデータから除去する処理を行う。また、併せて距離マップデータからも不要な被写体の除去を行う。本実施例では、不要被写体除去処理として、２種類の手法を紹介する。
【００５２】
まず、カメラを持つ手などの近接被写体を除去する手法について説明する。図９は、近接被写体を除去する場合の不要被写体除去処理の流れを示すフローチャートである。
【００５３】
ステップ９０１において、不要被写体除去部２０２は、入力された環境マップデータ及び距離マップ生成部２０１から受け取った距離マップデータを、ブロックに分割する。分割される各ブロックのサイズは、例えば、８×８（画素）である。
【００５４】
ステップ９０２において、不要被写体除去部２０２は、距離マップの分割された所定のブロック（注目ブロック）内に予め定められた閾値Ｄｍ以上の画素値を持つ画素が存在するかどうかを判定する。閾値Ｄｍ以上の画素値を持つ画素が存在すればステップ９０３に進む。一方、閾値Ｄｍ以上の画素値を持つ画素が存在しなければステップ９０４に進む。
【００５５】
ステップ９０３において、不要被写体除去部２０２は、注目ブロックを除去対象の領域（除去領域）に設定する。
【００５６】
ステップ９０４において、不要被写体除去部２０２は、すべてのブロックについて処理が終了したかどうかを判定する。未処理のブロックがあればステップ９０２に戻る。すべてのブロックについて処理が終了していれば、ステップ９０５に進む。
【００５７】
ステップ９０５において、不要被写体除去部２０２は、除去領域に設定されたブロックに隣接するブロックを、不要被写体が除去された後の代替の画素値を設定するための参照領域に設定する。
【００５８】
ステップ９０６において、不要被写体除去部２０２は、除去領域に設定されたすべてのブロックについて参照領域の設定処理が終了したかどうかを判定する。参照領域の設定がなされていない除去領域（ブロック）があれば、ステップ９０５に戻る。一方、すべての除去領域について参照領域の設定が終了していればステップ９０７に進む。
【００５９】
ステップ９０７において、不要被写体除去部２０２は、距離マップの各ブロックについて、除去領域に設定されたブロック内の画素値を参照領域に設定されたブロックの内の画素値に置き換える。図１０は、距離マップ上の除去領域に設定されたブロック内の画素値が参照領域に設定されたブロックの内の画素値に置き換わる様子を示す図である。置き換え後の距離マップにおいては、不要被写体の存在したブロックの画素値が不要被写体の存在しないブロックの画素値によって置き換わることで、不要被写体が消失していることが分かる。
【００６０】
ステップ９０８において、不要被写体除去部２０２は、環境マップにおける対応する各ブロックについて、距離マップの場合と同様に画素値の置き換え処理を行う。
【００６１】
ステップ９０９において、不要被写体除去部２０２は、距離マップ及び環境マップのすべての除去領域について、画素値の置き換え処理が完了したかどうかを判定する。置き換えが済んでいない除去領域があればステップ９０７に戻る。一方、置き換え処理がすべて完了していれば本処理を終了する。
【００６２】
次に、撮像者等の人物を顔認識によって除去する手法について簡単に説明する。
【００６３】
顔認識によって人物を除去する場合、まず、環境マップの中から顔領域が抽出される。具体的には、顔テンプレートとのパターンマッチングにより、入力された環境マップデータから人物の顔に相当する領域を検出する。これ以外にも、画像内の肌色成分を抽出して肌色範囲と判断された測光点のクラスタを顔として抽出する方法や、測光データを色相と彩度に変換してその二次元ヒストグラムを作成・解析して顔領域を判断する方法がある。さらに、人の顔の形状に相当する顔候補領域を抽出してその領域内の特徴量から顔領域を決定する方法や、画像から人の顔の輪郭を抽出して顔領域を決定する方法等、様々な手法が適用可能である。
【００６４】
そして、抽出された顔領域が距離マップ及び環境マップにおいて除去領域に設定され、後は上記図９のフローの場合と同様、その周辺領域の画素値との置き換えがなされる。
図１１は、不要被写体除去処理によって人物の顔が除去された環境マップ及び距離マップの一例を示す図である。図１１の（ａ）は不要被写体除去前の人の顔が写り込んだ状態の環境マップ、図１１の（ｃ）はその環境マップに対応する距離マップを示している。そして、図１１の（ｂ）は不要被写体除去処理によって人の顔が除去された環境マップ、図１１の（ｄ）はその環境マップに対応する距離マップを示している。
【００６５】
以上の処理により、環境マップ及び距離マップから不要被写体を除去された修正環境マップ及び修正距離マップが生成される。
【００６６】
＜周辺環境三次元形状データ生成処理＞
図１２は、図３のステップ３０５における周辺環境の三次元形状データ生成処理の流れを示すフローチャートである。
【００６７】
ステップ１２０１において、三次元形状データ生成部２０３は、環境マップデータ及び距離マップデータから、環境マップの各画素に対応する被写体の３次元座標ＥＶDataを算出する。図１３の（ａ）は、環境マップと３次元座標ＥＶDataとの関係を示す図である。図１３の（ａ）において原点Ｏ1は、図６と同様、環境マップを撮像した環境マップ撮像部の光学中心である。図１３の（ｂ）は、図５の（ｃ）で示した部屋の中心で撮像された環境マップの場合における３次元座標ＥＶDataを示している。３次元座標ＥＶDataは、図１３の（ｂ）において黒丸で示される点群の三次元座標群、例えば各点のＸＹＺ座標を順に記載した形式で扱われる。
【００６８】
ステップ１２０２において、三次元形状データ生成部２０３は、算出されたＥＶDataを頂点データとして、周辺環境の三次元形状データ（具体的にはポリゴンデータ）を生成する。頂点は、図１３の（ａ）に示されるように環境マップ上で隣接画素となる頂点同士を結ぶ。例えば、１３の（ｂ）に示すＥＶDataの場合であれば、図１４に示すようなポリゴンデータが得られる。ここで、頂点のカラー情報は環境マップの画素値とする。
【００６９】
このようにして生成されるポリゴンデータは、例えばＯＢＪ形式と呼ばれる図１５に示すようなファイル形式で扱われる。ＯＢＪ形式は多くのＣＧソフトがサポートしており、ＣＧソフトの中間ファイルフォーマットとして広く使用されるものである。ファイルの記載内容には、形状の色を指定するマテリアルファイルへのパス、頂点データの数、三角形（ポリゴン）の数、ＥＶDataである各頂点の座標値、各三角形（ポリゴン）の法線ベクトルが含まれる。ここでマテリアルファイルは、ポリゴンデータの色を指定するファイルである。この指定される色が合成処理部においてライトの色として扱われる。マテリアルファイルでは、ポリゴンデータに張り付けるイメージデータのパスとＵＶデータが記載される。図１６はそれらの関係を示す図である。ポリゴンデータには修正環境マップが転写されるように指定され、ＵＶデータはポリゴン単位にテクスチャ画像の任意の位置を指定する。
【００７０】
以上の処理により、撮像装置の周辺環境のポリゴンデータを生成することが出来る。
【００７１】
＜仮想被写体合成処理＞
図１７は、図３のステップ３０７における仮想被写体合成処理の流れを示すフローチャートである。この仮想被写体合成処理において、環境マップデータの代わりに周辺環境の三次元形状データ（ポリゴンデータ）をライティングに用いる。
【００７２】
ステップ１７０１において、仮想被写体合成部２０４は、三次元形状データ生成部２０３で生成したポリゴンデータ及び背景画像撮像部４０１で撮像された背景画像データを取得する。
【００７３】
ステップ１７０２において、仮想被写体合成部２０４は、仮想カメラ情報及び仮想被写体情報を取得する。
【００７４】
ステップ１７０３において、仮想被写体合成部２０４は、処理対象となる画素を選択する。
【００７５】
ステップ１７０４において、仮想被写体合成部２０４は、取得した仮想カメラ情報に含まれる仮想カメラの位置及び向きによって特定される点を視点とし、当該視点から選択された処理対象の画素へ向けて光線を発射する。
【００７６】
ステップ１７０５において、仮想被写体合成部２０４は、発射した光線が仮想被写体と交差するか否かを判定する。交差する場合はステップ１４０６に進む。一方、交差しない場合はステップ１４０７に進む。
【００７７】
ステップ１７０６において、仮想被写体合成部２０４は、ステップ１４０１で取得したポリゴンデータに基づいて、仮想被写体の色信号値を算出する。図１８は、仮想被写体の色信号値を算出する処理（オブジェクトレンダリング処理）の流れを示すフローチャートである。
【００７８】
ステップ１８０１において、仮想被写体合成部２０４は、光線と仮想被写体との交点における法線ベクトルを求める。図１９は発射された光線と仮想被写体との関係を示す模式図である。図１９において１９０１は光線を発射する視点（仮想カメラ）であり、１９０２は光線が交差する仮想被写体、１９０３は仮想被写体を照明する光源を示している。求める法線ベクトルＮは、光線と仮想被写体との交点Ｐにおける仮想被写体の面に垂直なベクトルである。
【００７９】
ステップ１８０２において、仮想被写体合成部２０４は、求めた法線ベクトルＮに基づいて、交点Ｐから光源１６０３に向かって光線を発射する。一般に、交点Ｐから発射する光線数が多いほど精度よく画素の色信号値を算出することが可能である。また、発射する光線の方向は法線ベクトルＮと発射する光線のベクトルＬとのなす角φが９０°より小さい範囲で決定される。尚、光線は、所定の角度範囲内を所望の光線数で等分して飛ばしても良いし、ランダムに飛ばしても良い。
【００８０】
ステップ１８０３において、仮想被写体合成部２０４は、発射した光線とポリゴンデータによって特定される周辺環境三次元形状との交点の色信号値を求める。すなわち、光源としての周辺環境三次元形状に衝突する光線に対応した色信号値が取得される。
【００８１】
ステップ１８０４において、仮想被写体合成部２０４は、すべての光線について周辺環境三次元形状との交点の色信号値が取得が終了したかどうかを判定する。終了していればステップ１８０５に進む。一方、終了していなければステップ１８０２に戻り、次の光線を発射する。
【００８２】
ステップ１８０５において、仮想被写体合成部２０４は、取得された色信号値の総和を算出する。各光線について取得された色信号値をｒi、ｇi、ｂi、光線数をｎとすると、算出される色信号値の総和（Ｒray、Ｇray、Ｂray）は、次の式（２）で表される。
【００８３】
【数２】
0005865092.tif 000003
【００８４】
ステップ１８０６において、仮想被写体合成部２０４は、算出された色信号値の総和を正規化する。本来、光線の強度は各光線の和で求められるが画素毎や光線の衝突点毎に発射する光線の数が異なったりすると光線毎の相対的な強度の関係が保てなくなる。また、光線数が多くなると出力画像の出力範囲（例えば８ビットの画像であればＲＧＢ各成分で２５６階調）では光線の強度を再現できなくなる。そのため、得られた色信号値の総和の正規化を行う。正規化方法は所望の方法で構わない。例えば、次の式（３）によって正規化した色信号値（Ｒp、Ｇp、Ｂp）を求めることができる。
【００８５】
【数３】
0005865092.tif 000004
【００８６】
ステップ１８０７において、仮想被写体合成部２０４は、正規化された色信号値と仮想被写体の反射特性から画素値を算出する。色信号の各成分に対応する仮想被写体の反射特性をそれぞれＲref、Ｇref、Ｂrefとすると、求める画素値（Ｒpixel、Ｇpixel、Ｂpixel）は、次の式（４）によって表される。
【００８７】
【数４】
0005865092.tif 000005
【００８８】
このようにして、仮想被写体の色信号値が算出される。
【００８９】
図１７のフローチャートの説明に戻る。
【００９０】
ステップ１７０７において、仮想被写体合成部２０４は、ステップ１７０１で取得した背景画像データとステップ１４０４で発射した光線との交点を求め、当該交点における色信号値を取得する。
【００９１】
ステップ１７０８において、仮想被写体合成部２０４は、全画素について色信号値の算出が終了したか否かを判定する。終了していれば本処理を終了する。終了していなければステップ１７０３に戻り、次の処理対象の画素を選択する。
【００９２】
以上のように、周辺環境の三次元形状データを光源に用いた仮想被写体の合成処理が行われる。
【００９３】
図２０の（ａ）は本実施例におけるライティングに用いられる周辺環境三次元形状と仮想被写体との関係を表した図である。撮像装置１００において環境マップ２００１及び２００２を取得すると、距離マップ生成処理及び周辺環境三次元形状データ生成処理を経て、破線２００３で示すポリゴンデータが生成される。ライト２００４の三次元座標が分かっているため、各仮想被写体２００５〜２００７に対してライト２００４で照らされる領域が適切に変化することになる。図２０の（ｂ）は、本実施例に係る方法によって仮想被写体を背景画像に合成した合成画像の一例を示している。従来例である図２２の（ｂ）と比較してみると、図２０の（ｂ）では仮想被写体２００５〜２００７の各位置に応じて適切な陰影２０１０ができ、より自然な合成画像となっているのが分かる。
【００９４】
なお、静止画像に静止被写体を合成する場合で説明したが、静止画像に動く被写体を合成する場合においても同様の効果を得ることができる。例えば、一秒間に３０フレームの環境マップデータを取得し、各フレームに対して上述した処理を行うようにすればよい。その際に起こる問題として、ポリゴンデータの形状が誤差を含み時間方向に変形を繰り返すことにより、仮想被写体へのライティングがチラつく場合がある。よって、３次元座標ＥＶDataには時間方向に特徴点を追跡し平滑化処理を行うことが効果的である。これにより、仮想被写体の位置の変遷に応じて陰影が変化する自然な合成画像を得ることができる。
【００９５】
以上説明したとおり、本実施例によれば、実写の背景画像データに仮想被写体を合成する際に、仮想被写体の位置に応じた適切なライティングによる自然な合成画像データを容易に生成すること可能となる。
【００９６】
＜実施例２＞
実施例１では、１つの背景撮像部と２つの環境マップ撮像部を備えた撮像装置を用いていた。次に、より多くの環境マップ撮像部を備えた撮像装置を用いる態様について、実施例２として説明する。
【００９７】
実施例１において紹介した想像装置１１０では、筐体の上部に２つの環境マップ撮像部４０２及び４０３が配置されていた。この場合、上半分の環境しか撮像することができない。この撮像装置１１０によって撮像された環境マップのみをそのまま用いるとすれば、仮想被写体へのライティングは上方からに限られることになる。
【００９８】
図２１の（ａ）〜（ｃ）で示すようなより多くの環境マップ撮像部を備えた撮像装置を用いることで、実施例１で説明したような一定の距離を仮定して下半分の環境を補うような作業も不要となる。
【００９９】
図２１の（ａ）は、背景画像撮像部２１０１の他、筐体の上部と下部にそれぞれ環境マップ撮像部２１０２が２つずつ配置された撮像装置２１００を示している。筐体の下部に設けられた環境マップ撮像部２１０２で撮像された環境マップ画像データを用いて距離マップデータやポリゴンデータを生成することにより、仮想被写体に対する下方向からの正確なライティング環境を構築することが可能となる。
【０１００】
図２１の（ｂ）は、背景画像撮像部２１１１の他、画角９０°の環境マップ撮像部２１１２を計１２個備えた撮像装置２１１０を示している。撮像装置２１１０の場合、筐体の上下、左右、前後の計６方向に２個１組の環境マップ撮像部２１１２が配置されている。１組の撮像部の上下軸、左右軸、光軸は全て同じ方向である。
【０１０１】
図２１の（ｃ）は、背景画像撮像部２１２１の他、環境マップ撮像部２１２２を筐体の角に配置した撮像装置２１２０を示している。この場合は、各環境マップ撮像部２１２２から得られた画像データのうち、撮像領域が互いに重なる画像同士を用いて周囲の距離を算出することで、同様にポリゴンデータを生成することができる。
【０１０２】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
0005865092.tif 000006
【図２】
0005865092.tif 000007
【図３】
0005865092.tif 000008
【図４】
0005865092.tif 000009
【図５】
0005865092.tif 000010
【図６】
0005865092.tif 000011
【図７】
0005865092.tif 000012
【図９】
0005865092.tif 000013
【図１０】
0005865092.tif 000014
【図１２】
0005865092.tif 000015
【図１３】
0005865092.tif 000016
【図１４】
0005865092.tif 000017
【図１５】
0005865092.tif 000018
【図１６】
0005865092.tif 000019
【図１７】
0005865092.tif 000020
【図１８】
0005865092.tif 000021
【図１９】
0005865092.tif 000022
【図２０】
0005865092.tif 000023
【図２１】
0005865092.tif 000024
【図２２】
0005865092.tif 000025
【図８】
0005865092.tif 000026
【図１１】
0005865092.tif 000027