(57)【要約】【課題】仮想被写体を背景画像に合成する際、両者の色味が異なり違和感が生じる場合がある。また、従来はレンダリング結果から手動でレンダリングパラメータ等を調整する必要があり手間が掛かる。【解決手段】背景画像に仮想被写体を合成して合成画像を生成する画像処理装置において、前記仮想被写体の周囲の光源の情報を示す環境マップを用いて、前記仮想被写体が置かれる位置に配置された無彩色オブジェクトをレンダリングすることで補正係数を導出する補正係数導出手段と、導出された前記補正係数に基づいて前記背景画像を補正する背景画像補正手段と、前記環境マップを用いて、補正された背景画像と前記仮想被写体とを合成する合成手段と、を備えることを特徴とする。【選択図】図５
2013127774.tif 000002
【特許請求の範囲】
【請求項１】
背景画像に仮想被写体を合成して合成画像を生成する画像処理装置において、
前記仮想被写体の周囲の光源の情報を示す環境マップを用いて、前記仮想被写体が置かれる位置に配置された無彩色オブジェクトをレンダリングすることで補正係数を導出する補正係数導出手段と、
導出された前記補正係数に基づいて前記背景画像を補正する背景画像補正手段と、
前記環境マップを用いて、補正された背景画像と前記仮想被写体とを合成する合成手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
背景画像に仮想被写体を合成して合成画像を生成する画像処理装置において、
前記仮想被写体の周囲の光源の情報を示す環境マップを用いて、前記仮想被写体が置かれる位置に配置された無彩色オブジェクトをレンダリングすることで第一補正係数を導出する第一補正係数導出手段と、
前記背景画像から第二補正係数を導出する第二補正係数導出手段と、
導出された前記第一補正係数及び前記第二補正係数に基づいて、前記環境マップを補正する環境マップ補正手段と、
補正された環境マップを用いて、前記背景画像と前記仮想被写体とを合成する合成手段と、
を備えることを特徴とする画像処理装置。
【請求項３】
前記補正係数導出手段で導出される補正係数は、前記無彩色オブジェクトのレンダリング結果から得られる無彩色の色成分の比であることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記第一補正係数導出手段で導出される第一補正係数は、前記無彩色オブジェクトのレンダリング結果から得られる色成分の比であり、
前記第二補正係数導出手段で導出される第二補正係数は、前記背景画像のホワイトバランスから得られる色成分の比である
ことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記無彩色オブジェクトは、白球であることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
背景画像に仮想被写体を合成して合成画像を生成する画像処理装置において、
任意の反射特性が設定された前記仮想被写体に対してレンダリングをすることで補正係数を導出する補正係数導出手段と、
導出された前記補正係数に基づいて前記仮想被写体の色信号値を補正し、前記環境マップを用いて、前記背景画像と色信号値が補正された仮想被写体とを合成する合成手段と
を備えることを特徴とする画像処理装置。
【請求項７】
前記任意の反射特性は、完全拡散反射特性であって、かつグレースケールであることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
背景画像に仮想被写体を合成して合成画像を生成する画像処理装置において、
仮想被写体を観察する視点を設定する設定手段と、
設定された前記視点に基づいて、前記仮想被写体の周囲の光源の情報を示す環境マップにおいて前記仮想被写体に影響を与える光源の領域を特定し、当該特定された領域に基づいて、補正係数を導出する補正係数導出手段と、
導出された前記補正係数に基づいて、前記背景画像を補正する背景画像補正手段と、
前記環境マップを用いて、補正された背景画像と前記仮想被写体とを合成する合成手段と、
を備えることを特徴とする画像処理装置。
【請求項９】
背景画像に仮想被写体を合成して合成画像を生成する画像処理装置において、
仮想被写体を観察する視点を設定する設定手段と、
設定された前記視点に基づいて、前記仮想被写体の周囲の光源の情報を示す環境マップにおいて、前記仮想被写体に影響を与える光源の領域を特定し、当該特定された領域に基づいて補正係数を導出する補正係数導出手段と、
導出された前記補正係数に基づいて、前記環境マップを補正する環境マップ補正手段と、
補正された環境マップを用いて、前記背景画像と前記仮想被写体とを合成する合成手段と、
を備えることを特徴とする画像処理装置。
【請求項１０】
前記補正係数導出手段は、前記仮想被写体が置かれる位置から前記視点へ向かうベクトルに基づいて、前記仮想被写体に影響を与える光源の領域を特定することを特徴とする請求項８又は９に記載の画像処理装置。
【請求項１１】
前記補正係数導出手段は、前記視点から前記仮想被写体が置かれる位置に向かって光線を発射して、当該光線と前記仮想被写体との交点における法線ベクトルを取得し、取得した法線ベクトルに基づいて、前記仮想被写体に影響を与える光源の領域を特定することを特徴とする請求項８又は９に記載の画像処理装置。
【請求項１２】
前記補正係数導出手段は、環境マップ部分値テーブルを用いて、前記特定された領域に対応する画素値の平均値を取得することにより、補正係数を導出することを特徴とする請求項８又は９に記載の画像処理装置。
【請求項１３】
前記環境マップ部分値テーブルは、前記環境マップの領域毎の画素値の平均値と原点から各領域に向かうベクトルとが対応付けられて保持されているテーブルであることを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記補正係数導出手段は、特定された領域が複数の場合、各領域の画素値の平均値を加重平均することにより、補正係数を導出することを特徴とする請求項８又は９に記載の画像処理装置。
【請求項１５】
背景画像に仮想被写体を合成して合成画像を生成する画像処理方法において、
前記仮想被写体の周囲の光源の情報を示す環境マップを用いて、前記仮想被写体が置かれる位置に配置された無彩色オブジェクトをレンダリングすることで補正係数を導出する補正係数導出ステップと、
導出された前記補正係数に基づいて前記背景画像を補正する背景画像補正ステップと、
前記環境マップを用いて、補正された背景画像と前記仮想被写体とを合成する合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項１６】
背景画像に仮想被写体を合成して合成画像を生成する画像処理方法において、
前記仮想被写体の周囲の光源の情報を示す環境マップを用いて、前記仮想被写体が置かれる位置に配置された無彩色オブジェクトをレンダリングすることで第一補正係数を導出する第一補正係数導出ステップと、
前記背景画像から第二補正係数を導出する第二補正係数導出ステップと、
導出された前記第一補正係数及び前記第二補正係数に基づいて、前記環境マップを補正する環境マップ補正ステップと、
補正された環境マップを用いて、前記背景画像と前記仮想被写体とを合成する合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項１７】
背景画像に仮想被写体を合成して合成画像を生成する画像処理方法において、
仮想被写体を観察する視点を設定する設定ステップと、
前記設定された視点に基づいて、前記仮想被写体の周囲の光源の情報を示す環境マップにおいて、前記仮想被写体に影響を与える光源に対応する領域を特定し、当該特定された領域に基づいて、補正係数を導出する補正係数導出ステップと、
導出された前記補正係数に基づいて、前記背景画像を補正する背景画像補正ステップと、
前記環境マップを用いて、補正された背景画像と前記仮想被写体とを合成する合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項１８】
背景画像に仮想被写体を合成して合成画像を生成する画像処理方法において、
仮想被写体を観察する視点を設定する設定ステップと、
前記設定された視点に基づいて、前記仮想被写体の周囲の光源の情報を示す環境マップにおいて、前記仮想被写体に影響を与える光源に対応する領域を特定し、当該特定された領域に基づいて、補正係数を導出する補正係数導出ステップと、
導出された前記補正係数に基づいて、前記環境マップを補正する環境マップ補正ステップと、
補正された環境マップを用いて、背景画像と前記仮想被写体とを合成する合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項１９】
コンピュータを請求項１乃至１４のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実写の背景画像と三次元ＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）オブジェクトとして作成した仮想被写体との合成画像を生成する画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
映像制作の場において、ＣＧを用いることで実写画像に実在しない仮想被写体を合成することが容易になってきている。その際、自然な合成画像を生成するためにはライティングが重要となる。ライティングが適切に設定されていない場合、仮想被写体の色味やハイライト、陰影などが不自然な再現になってしまう。
【０００３】
ＣＧによるライティング手法の一つに、光源にイメージ（画像）を使用してＧＩ（グローバルイルミネーション＝環境光）を表現するイメージベースドライティングが知られている。イメージベースドライティングでは、仮想被写体を配置する場所の全方位の画像を撮影し、撮影した画像から得られた全周囲画像（環境マップ）を用いて仮想被写体をライティングする。この手法の場合、仮想被写体と合成される背景画像と、仮想被写体をライティングする環境マップとを別々に用意する必要があるため、視点の変更に応じて何れかを変更する必要が生じる。視点に応じて背景画像を変更する手法としては、複数の背景画像をあらかじめ用意しておき、視点の移動に応じて背景画像を選択する手法（特許文献１）が提案されている。また、環境マップを変更する手法としては、カメラで撮影した画像中のオブジェクトを、辞書データを参照しながら抽出し、その結果に基づいて環境マップを更新する手法（特許文献２）が提案されている。
【０００４】
また、仮想被写体を自然に再現する手法として、所望の色に塗装した仮想球面を予定位置に設置し、そのレンダリング結果から得られる色彩分布やハイライト分布を、仮想被写体上にマッピングする手法（特許文献３）が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２４１８６８号公報
【特許文献２】特開２００８−３０４２６８号公報
【特許文献３】特開２００５−１４９０２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１及び特許文献２の方法では、背景画像及び環境マップの変更に伴うライティングの相違が考慮されていないため、自然な合成画像を得られないことがある。また、特許文献３の方法では、仮想被写体のライティングの変化は考慮されているものの背景画像については考慮がされていないため、やはり不自然な合成画像となってしまう場合がある。
【０００７】
また、背景画像と環境マップを撮影するカメラの相違や撮影位置の相違によってもライティングに差異が生じるところ、従来はレンダリング結果から手動でレンダリングパラメータを調整するなどして合成画像を補正していたため、手間が掛かっていた。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理装置は、背景画像に仮想被写体を合成して合成画像を生成する画像処理装置において、前記仮想被写体の周囲の光源の情報を示す環境マップを用いて、前記仮想被写体が置かれる位置に配置された無彩色オブジェクトをレンダリングすることで補正係数を導出する補正係数導出手段と、導出された前記補正係数に基づいて前記背景画像を補正する背景画像補正手段と、前記環境マップを用いて、補正された背景画像と前記仮想被写体とを合成する合成手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、背景画像と仮想被写体との間で色味や明るさが一致した自然な合成画像を自動で生成することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１に係る画像処理装置のハードウェア構成の一例を示す図である。
【図２】イメージベースドライティングにおいて使用される画像等を説明する図である。
【図３】（ａ）は実写の撮影環境、（ｂ）は仮想の撮影環境を示す図である。
【図４】実施例１に係る画像処理装置の機能構成図である。
【図５】実施例１に係る画像処理装置において実行される画像処理の全体の流れを示すフローチャートである。
【図６】実施例１に係る補正係数導出処理の詳細を示すフローチャートである。
【図７】無彩色オブジェクトが配置された様子を示す図である。
【図８】仮想カメラから光線が発射される様子を示す図である。
【図９】光線追跡処理の詳細を示すフローチャートである。
【図１０】発射された光線と無彩色オブジェクトとの関係を示す図である。
【図１１】白球のレンダリング結果を示す図である。
【図１２】背景画像補正処理の詳細を示すフローチャートである。
【図１３】仮想被写体合成処理の詳細を示すフローチャートである。
【図１４】発射された光線が仮想被写体と交差する場合及び交差しない場合をそれぞれ視覚的に示した図である。
【図１５】実施例２に係る画像処理装置の機能構成図である。
【図１６】実施例２に係る画像処理装置において実行される画像処理の全体の流れを示すフローチャートである。
【図１７】環境マップ補正処理の詳細を示すフローチャートである。
【図１８】露出が不適切な状態を説明する図である。
【図１９】実施例３に係る画像処理装置の機能構成図である。
【図２０】実施例３に係る画像処理装置において実行される画像処理の全体の流れを示すフローチャートである。
【図２１】実施例３に係る補正係数導出処理の詳細を示すフローチャートである。
【図２２】実施例３における仮想標準反射特性の仮想被写体のレンダリング結果を示す図である。
【図２３】実施例３に係る仮想被写体合成処理の詳細を示すフローチャートである。
【図２４】実施例３における補正後の仮想被写体および合成後のレンダリング結果を示す図である。
【図２５】実施例４に係る画像処理装置の機能構成図である。
【図２６】実施例４に係る画像処理装置において実行される画像処理の全体の流れを示すフローチャートである。
【図２７】環境マップ部分値テーブルの一例を表す図である。
【図２８】環境マップ部分値テーブルにおける各ベクトルの画素値平均に対応する領域を示している。
【図２９】実施例４に係る補正係数導出処理の詳細を示すフローチャートである。
【図３０】実施例４における仮想被写体に影響を与える光としての画素値平均を取得する様子を説明する図である。
【図３１】実施例５に係る補正係数導出処理の詳細を示すフローチャートである。
【図３２】法線ベクトルを取得する様子を示す図である。
【図３３】法線ベクトルに最も近いベクトルを選択する様子を説明する図である。
【発明を実施するための形態】
【００１１】
［実施例１］
図１は、本実施例に係る画像処理装置のハードウェア構成の一例を示す図である。
【００１２】
画像処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、汎用インターフェース（Ｉ／Ｆ）１０４、メインバス１０５を備える。汎用Ｉ／Ｆ１０４は、カメラなどの撮像装置１０６、マウス、キーボードなどの入力装置１０７、メモリーカードなどの外部メモリ１０８、液晶パネルなどのモニタ１０９をメインバス１０５に接続する。
【００１３】
画像処理装置１００における処理の概略は以下のとおりである。
【００１４】
まず、ＣＰＵ１０１は、ＨＤＤ１０３に格納されている画像処理アプリケーションを起動してＲＡＭ１０２に展開するとともに、モニタ１０９にユーザインターフェース（ＵＩ）を表示する。続いて、ＨＤＤ１０３や外部メモリ１０８に格納されている各種データ、撮像装置１０６で撮影された画像のデータ、入力装置１０７からの指示などがＲＡＭ１０２に転送される。さらに、画像処理アプリケーション内の処理に従って、ＲＡＭ１０２に転送されたデータ等について、ＣＰＵ１０１からの指令に基づき各種演算がなされる。演算結果は、モニタ１０９に表示されたり、ＨＤＤ１０３や外部メモリ１０８に格納される。
【００１５】
図２は、本発明の前提となるイメージベースドライティングにおいて使用される画像等を説明する図である。図２の（ａ）は、実写の背景画像を示している。図２の（ｂ）は、背景画像に仮想被写体２００を合成して得られた合成画像を示している。図２の（ｃ）及び（ｄ）は、環境マップの基となる撮影方向の異なる周囲画像をそれぞれ示している。図２の（ｅ）は、図２の（ｃ）及び（ｄ）の周囲画像を幾何変換し合成することによって得られた全周囲画像（環境マップ）を示している。
【００１６】
図３は、図２で示した各画像の撮影環境を模式的に示す図であり、図３の（ａ）は実写撮影環境を示し、図３の（ｂ）は仮想撮影環境を示している。３０１は背景画像３０７を撮影するカメラ、３０２は周囲画像を撮影するカメラ、３０３は背景画像３０７と仮想被写体２００とを合成する際に参照する仮想カメラである。ここで、周囲画像を撮影するカメラ３０２は、１８０°以上の画角を備える超広角カメラであって、仮想被写体２００と同じ位置に設置されている。このカメラ３０２によって、破線３０４で示されるカメラ３０１方向の周囲画像（図２の（ｃ）に対応）、及びそれとは１８０°反対方向の実線３０５で示される周囲画像（図２の（ｄ）に対応）とを撮影する。このようにして撮影された２つの周囲画像３０４及び３０５を合成することで、仮想被写体２００の周囲３６０°の全周囲画像である環境マップ３０６が生成される。
【００１７】
なお、環境マップを取得する方法はこれに限られるものではなく、例えば、全方位カメラを用いて一度に撮影する方法や、多眼カメラなど複数視点撮影可能なカメラで撮影した多視点画像をつなぎ合わせて生成する方法でも構わない。また、仮想被写体２００と同じ位置にクロムボールを設置し、カメラ３０１で撮影することで環境マップを得てもよい。
【００１８】
また、仮想被写体２００をレンダリングするための光源画像として環境マップを利用する場合、ハイダイナミックレンジ画像として生成されることが一般的である。
【００１９】
本実施例では、仮想カメラ３０３は背景画像３０７を撮影するカメラ３０１と同じ撮影条件に設定されるものとして以下説明する。勿論、仮想カメラ３０３の設定は任意に変更できるため、必ずしもカメラ３０１と仮想カメラ３０３の設定が同一である必要はない。例えば、合成画像の背景として背景画像３０７の一部だけを利用する場合などは、カメラ３０１と仮想カメラ３０３の設定は異なる。
【００２０】
さらに、本実施例において扱う画像は一般的なＲＧＢ画像であって、画像処理に関しても色信号値が３バンドとして説明する。但し、必ずしもこれに限定されるわけではなく、マルチバンド画像であっても良い。また、画像処理だけをマルチバンド処理することも可能である。
【００２１】
図４は、本実施例に係る画像処理装置の機能構成図である。この図４に示される構成は、画像処理アプリケーションソフトウェアとして実現される。すなわち、ＣＰＵ１０１がＨＤＤ１０３に格納された各種ソフトウェア（コンピュータプログラム）を動作させることで実現される。
【００２２】
画像処理装置１００は、背景画像、環境マップ、仮想カメラ情報、仮想被写体情報のデータを入力データとして受け取り、補正係数導出処理及び背景画像の補正処理を経て、背景画像に仮想被写体を合成した合成画像データを出力データとして出力する。ここで、仮想カメラ情報とは、仮想空間中に置く仮想カメラの情報であって、背景画像の撮影条件と同等の情報であり、撮影位置を示す三次元座標、カメラの画角、カメラの向きを示す方向ベクトルなどの情報を指す。さらに、撮影時のレンズ特性、露出、シャッタースピードなどの情報を含んでも構わない。また、仮想被写体情報とは、背景画像に合成する仮想被写体の詳細に関する情報であり、仮想被写体の位置を示す三次元座標、仮想被写体の色や形状を示すマテリアルデータ、仮想被写体の反射／透過特性などの情報を指す。背景画像、環境マップ、仮想カメラ情報、仮想被写体情報といった各種のデータは、入力装置１０７からのユーザ指示に基づき、撮像装置１０６、ＨＤＤ１０３、外部メモリ１０８等から入力される。
【００２３】
補正係数導出部４０１は、入力された仮想カメラ情報、仮想被写体情報、環境マップを用いて補正係数を導出する。導出した補正係数はＲＡＭ１０２に記憶される。
【００２４】
背景画像補正部４０２は、入力された背景画像のデータと導出された補正係数を用いて補正背景画像を生成する。生成した補正背景画像のデータはＲＡＭ１０２に記憶される。
【００２５】
仮想被写体合成部４０３は、入力された環境マップ、仮想カメラ情報、仮想被写体情報及び生成された補正背景画像を用いて合成画像を生成する。生成した合成画像のデータはＲＡＭ１０２に記憶され、その後、ユーザ指示に応じて、ＨＤＤ１０３、外部メモリ１０８、モニタ１０９などに出力される。
【００２６】
図５は、本実施例に係る画像処理装置１００において実行される画像処理の全体の流れを示すフローチャートである。実際には、以下に示す手順を記述したコンピュータ実行可能なプログラムをＨＤＤ１０３等からＲＡＭ１０２上に読み込んだ後に、ＣＰＵ１０１によって該プログラムを実行することによって当該処理が実行される。
【００２７】
ステップ５０１において、画像処理装置１００は、上記入力データ、すなわち、背景画像、環境マップ、仮想カメラ情報、仮想被写体情報を取得する。取得した入力データのうち仮想カメラ情報、仮想被写体情報及び環境マップは、補正係数導出部４０１と仮想被写体合成部４０３に送られる。背景画像は、背景画像補正部４０２に送られる。
【００２８】
ステップ５０２において、補正係数導出部４０１は、環境マップ、仮想カメラ情報、仮想被写体情報に基づいて、背景画像補正処理で用いる補正係数を導出する。補正係数導出処理の詳細については後述する。
【００２９】
ステップ５０３において、背景画像補正部４０２は、背景画像及びステップ５０２で導出された補正係数を用いて背景画像を補正し、補正背景画像を生成する。背景画像補正処理の詳細についても後述する。
【００３０】
ステップ５０４において、仮想被写体合成部４０３は、生成された補正背景画像、及び取得した環境マップ、仮想カメラ情報、仮想被写体情報に基づいて、仮想被写体と背景画像とを合成する処理（仮想被写体合成処理）を行い、合成画像を生成する。仮想被写体合成処理の詳細についても後述する。
【００３１】
ステップ５０５において、画像処理装置１００は、ステップ５０４で生成された合成画像のデータを出力する。
【００３２】
以上が、本実施例に係る画像処理装置１００における画像処理の概要である。
【００３３】
（補正係数導出処理）
図６は、図５のステップ５０２における補正係数導出処理の詳細を示すフローチャートである。
【００３４】
ステップ６０１において、補正係数導出部４０１は、ステップ５０１で取得した仮想カメラ情報から視点を決定し、仮想カメラの撮影位置を設定する。上述のとおり仮想カメラ情報には、背景画像の撮影位置を示す三次元座標及びカメラの向きを示す方向ベクトルの情報が含まれている。そこで、これら情報によって特定される位置が視点として決定され、該決定された視点の位置が仮想カメラの撮影位置として設定される。
【００３５】
ステップ６０２において、補正係数導出部４０１は、取得した仮想被写体情報から仮想被写体の設定位置を特定して、当該特定された位置に無彩色オブジェクトを配置する。図７は、無彩色オブジェクトが配置された様子を示す図である。図７において７００は、無彩色の三次元ＣＧオブジェクトとして仮想被写体と同じ位置に配置された仮想の白球である。ここでは無彩色オブジェクトとして白球を用いているが、必ずしも白球である必要はない。さらには、環境マップによって仮想被写体を照射する光のホワイトバランスを取得できればよいので無彩色が好適であるが、色信号値が既知の有彩色であってもよい。また、形状に関しても、球にすることでより広範囲の光を考慮した情報を取得可能であるが、必ずしも球に限定されるものではない。さらに、大きさに関しても、仮想被写体と同程度であることが好ましいが特に制限されるものではない。
【００３６】
ステップ６０３において、補正係数導出部４０１は、仮想カメラから見た白球のレンダリングを行う処理対象の画素を選択する。なお、レンダリングの対象となる画像に関して特に制限はないが、画素数が多い方がより精度よく光情報を取得可能である。また、画素の選択方法に関しても特に制限はなく、例えば画像の左上から右下へ向かって順次選択すればよい。
【００３７】
ステップ６０４において、補正係数導出部４０１は、ステップ６０１で決定した視点（仮想カメラの設定位置）から、選択された画素の方向に光線を発射する。図８は、選択された画素の方向に仮想カメラ３０３から光線が発射される様子を示す図である。図８において、８００は選択された画素を示している。このように、設定された仮想カメラの位置から選択された画素８００に向かって光線を発射することで光線の向きが決定する。
【００３８】
ステップ６０５において、補正係数導出部４０１は、選択された画素の色信号値、すなわち、発射された光線と無彩色オブジェクトとの交点の色信号値を、以下に述べる光線追跡処理によって取得する。この光線追跡処理は、補正係数導出部４０１内の光線追跡処理部（不図示）によって実行される。
【００３９】
図９は、光線追跡処理の詳細を示すフローチャートである。
【００４０】
ステップ９０１において、光線追跡処理部は、仮想カメラ３０３から発射された光線が無彩色オブジェクト（白球）と交差するかどうかを判定する。交差すると判定された場合はステップ９０２に進む。一方、交差しないと判定された場合は光線追跡処理を抜ける。
【００４１】
ステップ９０２において、光線追跡処理部は、発射された光線と無彩色オブジェクトとの交点における法線ベクトルを求める。図１０は発射された光線と無彩色オブジェクトとの関係を示す図である。図１０において、１００１は仮想カメラ３０３の位置（光線を発射する視点）、１００２は発射された光線が交差する無彩色オブジェクトの表面、１００３は無彩色オブジェクトを照明する光源である。そして、Ｐは光線と無彩色オブジェクトとの交点、Ｖは交点Ｐから視点１００１への方向ベクトル、Ｌは交点Ｐから光源１００３への方向ベクトルを示している。そして、Ｎが、求められる法線ベクトルであり、交点Ｐにおける無彩色オブジェクトの表面１００２に垂直なベクトルである。
【００４２】
ステップ９０３において、光線追跡処理部は、求められた法線ベクトルＮに基づいて、交点Ｐから光源１００３に向かって光線を発射する。一般に、交点Ｐから発射する光線数が多いほど精度よく画素の色信号値を取得することが可能である。また、発射する光線の方向は、法線ベクトルＮと方向ベクトルＬとのなす角φが９０°より小さい範囲で決定される。従って、法線ベクトルＮと方向ベクトルＬは次の式を満たす。
【００４３】
【数１】
2013127774.tif 000003
【００４４】
なお、本実施例における図１０の光源１００３は、図７の３０６で示されるような環境マップであり、無彩色オブジェクトの周囲３６０°に渡って設定されているため、式（１）の条件を満たす範囲で所望の方向に光線を発射して構わない。例えば、式（１）を満たす範囲を等分して発射しても良いし、ランダムに発射しても良い。以下、本実施例ではランダムにｎ本の光線を発射するものとして説明する。
【００４５】
ステップ９０４において、光線追跡処理部は、発射された光線と光源（環境マップ）との交点の色信号値を取得する。
【００４６】
ステップ９０５において、光線追跡処理部は、未処理の光線があるかどうかを判定する。ｎ本全ての光線の処理が完了していればステップ９０６に進む。一方、未処理の光線があればステップ９０３に戻り、次の光線を発射する。
【００４７】
ステップ９０６において、光線追跡処理部は、ｎ本の光線によって取得された色信号値の総和を算出する。ｎ本の光線によって取得された色信号値（ｒi，ｇi，ｂi）の成分毎の総和（ＥR，ＥG，ＥB）はそれぞれ式（２）〜（４）のようになる。
【００４８】
【数２】
2013127774.tif 000004
【００４９】
【数３】
2013127774.tif 000005
【００５０】
【数４】
2013127774.tif 000006
【００５１】
ステップ９０７において、光線追跡処理部は、算出された色信号値の成分毎の総和（ＥR，ＥG，ＥB）を正規化する。これは、各画素で計算した光線数の相違や、出力範囲（例えば８ビットの場合はＲＧＢ各成分で２５６階調）の制約により生じる不具合を防止するためである。本実施例では次の式（５）〜（７）により正規化後の色信号値（Ｅ’R，Ｅ’G，Ｅ’B）を得る。
【００５２】
【数５】
2013127774.tif 000007
【００５３】
【数６】
2013127774.tif 000008
【００５４】
【数７】
2013127774.tif 000009
【００５５】
なお、色信号値の正規化は所望の方法で構わない。また、正規化をしなくとも不具合が生じない場合は、本ステップを省略しても構わない。
【００５６】
ステップ９０８において、光線追跡処理部は、正規化された色信号値と無彩色オブジェクトの特性とに基づいて画素値を取得する。ここで、正規化によって得られた色信号値は、図１０における無彩色オブジェクト上の交点Ｐを照射する光エネルギーであって、無彩色オブジェクトの反射特性であると考えられる。従って、ステップ９０７の正規化で得られた色信号値と無彩色オブジェクトの色信号値とを乗算することにより視点１００１の方向に反射する光エネルギー、即ち画素値が得られる。そこで、図１０の交点Ｐにおける色信号値が（ｒR，ｒG，ｒB）、各色信号の最大値が２５５（８ビット）であるとすると、次の式（８）〜（１０）により画素の色信号値〔Ｒ，Ｇ，Ｂ〕が得られることになる。
【００５７】
【数８】
2013127774.tif 000010
【００５８】
【数９】
2013127774.tif 000011
【００５９】
【数１０】
2013127774.tif 000012
【００６０】
上記の式（８）〜（１０）において、“ｘ，ｙ”は、画素の座標を示す。尚、有彩色オブジェクトの場合、交点Ｐにおける色信号値（ｒR，ｒG，ｒB）の比が１：１：１になるように色信号値を補正してから式（８）〜（１０）を適用する。
【００６１】
また、画素値の取得に用いる無彩色オブジェクトの特性は色信号値に限られるものではなく、例えば変角分光反射率などであってもよい。変角分光反射率は、オブジェクトへの光の入射角と反射角に応じて決定されるものであり、入射角や反射角に依存しない場合は分光反射率になる。ある断面におけるオブジェクト上の点Ｐへの光の入射角をφ、反射角をθとすると（図１０を参照）、変角分光反射率はｒR（φ、θ）、ｒG（φ、θ）、ｒB（φ、θ）で表される。従って、求める色信号値〔Ｒ，Ｇ，Ｂ〕は次の式（１１）〜（１３）によって得られる。
【００６２】
【数１１】
2013127774.tif 000013
【００６３】
【数１２】
2013127774.tif 000014
【００６４】
【数１３】
2013127774.tif 000015
【００６５】
尚、ここではある断面における変角分光反射率の例を説明したが、面を限定せず４次元の変角をパラメータとして変角分光反射率を与えても良い。
【００６６】
図６のフローチャートの説明に戻る。
【００６７】
ステップ６０６において、補正係数導出部４０１は、全画素の光線追跡処理が完了したかどうかを判定する。完了していなければステップ６０３に戻り、次の処理対象の画素を選択する。一方、完了していればステップ６０７に進む。
【００６８】
ステップ６０７において、光線追跡処理によって取得された画素値（無彩色オブジェクトの色信号値）から補正係数を導出する。図１１は、ステップ６０３〜ステップ６０５の各処理を経て生成された白球のレンダリング結果（レンダリング画像）を示す図である。レンダリング画像１１００において、白球以外の領域は画素値が取得されないため、白球の領域のみを容易に抽出可能である。補正係数は白球の色信号値のホワイトバランスを補正可能な値であればよい。例えば、レンダリング画像１１００における白球の各画素の色信号値を（ｒx,y，ｇx,y，ｂx,y）とし、Ｇを基準とした場合の各色成分の補正係数（ｔR，ｔG，ｔB）は、次の式（１４）〜（１６）のようになる。
【００６９】
【数１４】
2013127774.tif 000016
【００７０】
【数１５】
2013127774.tif 000017
【００７１】
【数１６】
2013127774.tif 000018
【００７２】
このようにして、背景画像の補正係数が導出される。
【００７３】
（背景画像補正処理）
図１２は、図５のステップ５０３における背景画像補正処理の詳細を示すフローチャートである。
【００７４】
ステップ１２０１において、背景画像補正部４０２は、ステップ５０１で取得した背景画像のホワイトバランスを取得する。ホワイトバランスの取得方法は任意の方法でよい。例えば、背景画像のタグに記載されている情報から取得する方法、背景画像内の白となる点をＵＩで指定する方法、背景画像中の最も明るい色を白とするなどの公知の推定手法がある。
【００７５】
ステップ１２０２において、背景画像補正部４０２は、背景画像の中から補正処理の対象となる画素を選択する。補正処理の対象となる画素の選択方法に関しては特に制限はなく、例えば画像の左上から右下へ向かって順次選択すればよい。
【００７６】
ステップ１２０３において、背景画像補正部４０２は、選択された画素の色信号値を、補正係数導出処理で得られた補正係数を用いて補正する。ここで、選択された画素の色信号値を（Ｒb，Ｇb，Ｂb）、導出された補正係数を（ｔR，ｔG，ｔB）、ホワイトバランスから得られる色信号値の割合を（ｕR，ｕG，ｕB）とする。すると、補正後の色信号値（Ｒ’b，Ｇ’b，Ｂ’b）は、次の式（１７）〜（１９）で表される。
【００７７】
【数１７】
2013127774.tif 000019
【００７８】
【数１８】
2013127774.tif 000020
【００７９】
【数１９】
2013127774.tif 000021
【００８０】
ここで、例えば、選択された画素の色信号値を（１２８，  １２８，  １２８）、導出された補正係数が（１．０６７，  １．０，  １．０６９）、ホワイトバランスから得られる色信号値の割合を（１．０５３，  １．０，  ０．９６）とする。この場合に本ステップで得られる補正後の色信号値は、式（１７）〜（１９）から、（１３０，  １２８，  １４３）となる。
【００８１】
ステップ１２０４において、背景画像補正部４０２は、背景画像の全画素について補正処理が完了したかどうかを判定する。完了していれば、本処理を終了する。一方、未処理の画素があれば、ステップ１２０２に戻り、次の画素を選択する。
【００８２】
以上の処理により、環境マップが仮想被写体を照射する光のホワイトバランスに基づいて背景画像が補正される。
【００８３】
（仮想被写体合成処理）
図１３は、図５のステップ５０４における仮想被写体合成処理の詳細を示すフローチャートである。
【００８４】
ステップ１３０１において、仮想被写体合成部４０３は、ステップ５０１で取得した環境マップ、仮想カメラ情報、仮想被写体情報及びステップ５０３で生成された補正背景画像を取得する。
【００８５】
ステップ１３０２において、仮想被写体合成部４０３は、補正背景画像の中から、色信号値を取得する処理の対象となる画素を選択する。画素の選択方法は特に制限はなく、例えば補正背景画像の左上から右下へ向かって順次選択すればよい。
【００８６】
ステップ１３０３において、仮想被写体合成部４０３は、ステップ１３０１で取得した仮想カメラ情報において特定される視点位置から、選択された画素に向けて光線を発射する。
【００８７】
ステップ１３０４において、仮想被写体合成部４０３は、発射された光線が仮想被写体と交差するか否かを判定する。交差すると判定された場合はステップ１３０５に進み、交差しないと判定された場合はステップ１３０６に進む。図１４は、発射された光線が仮想被写体と交差する場合及び交差しない場合をそれぞれ視覚的に示した図である。図１４において、２００は仮想被写体情報に基づいて設定される仮想被写体、３０３は仮想カメラ情報に基づいて設定される仮想カメラである。１４０３は、仮想カメラ情報に含まれる画角の情報に基づいて設定された補正背景画像であり、３０６は環境マップである。そして、１４０１及び１４０２は発射された光線を示しており、光線１４０１は仮想被写体２００と交差し、光線１４０２は仮想被写体２００とは交差せずに補正背景画像１４０３と交差している。この場合、光線１４０１については環境マップ３０６を光源としてレンダリングされる。なお、補正背景画像１４０３は仮想カメラ３０３の画角に合わせて設定されるため、発射される光線は、必ず仮想被写体２００或いは補正背景画像１４０３と交差することになる。
【００８８】
ステップ１３０５において、仮想被写体合成部４０３は、選択された画素の色信号値、この場合には、仮想被写体と光線との交点における色信号値を取得する。なお、本ステップにおける光線追跡処理では、前述の補正係数導出処理内の光線追跡処理において“無彩色オブジェクト”であった部分が“仮想被写体”に置き換わるのみで、その内容は同じであるので、詳細については省略する。
【００８９】
ステップ１３０６において、仮想被写体合成部４０３は、ステップ１３０１で取得した補正背景画像とステップ１３０３で発射した光線との交点における色信号値を取得する。
【００９０】
ステップ１３０７において、仮想被写体合成部４０３は、補正背景画像の全画素について処理が完了したかどうかを判定する。完了していれば本処理を終了する。一方、未処理の画素があれば、ステップ１３０２に戻り、次の画素を選択する。
【００９１】
このようにして、補正された背景画像と仮想被写体とが合成されて、合成画像が生成される。
【００９２】
以上のとおり本実施例によれば、実写した背景画像と仮想被写体との合成画像を生成する処理において、環境マップが仮想被写体を照射する光のホワイトバランスに基づいて背景画像を補正することで、自然な合成画像を自動で生成することが可能となる。これにより、試行錯誤によるパラメータの調整などが不要となる。
【００９３】
［実施例２］
実施例１では、環境マップが仮想被写体を照射する光のホワイトバランスに基づいて背景画像を補正する態様について説明した。次に、背景画像ではなく、環境マップの方を背景画像のホワイトバランスに基づいて補正する態様について実施例２として説明する。なお、実施例１と共通する部分については説明を簡略化ないしは省略し、差異点を中心に説明することとする。
【００９４】
図１５は、本実施例に係る画像処理装置の機能構成図である。この図１５に示される構成は、画像処理アプリケーションソフトウェアとして実現される。
【００９５】
第一補正係数導出部１５０１は、入力された仮想カメラ情報、仮想被写体情報、環境マップを用いて第一補正係数を導出する。導出した第一補正係数はＲＡＭ１０２に記憶される。
【００９６】
第二補正係数導出部１５０２は、入力された背景画像のデータから第二補正係数を導出する。導出した第二補正係数はＲＡＭ１０２に記憶される。
【００９７】
環境マップ補正部１５０３は、入力された環境マップのデータと導出された第一補正係数、第二補正係数を用いて環境マップを補正し、補正環境マップを生成する。生成した補正環境マップのデータはＲＡＭ１０２に記憶される。
【００９８】
仮想被写体合成部１５０４は、入力された背景画像、仮想カメラ情報、被写体情報及び生成された補正環境マップを用いて合成画像を生成する。生成した合成画像のデータはＲＡＭ１０２に記憶される。
【００９９】
図１６は、本実施例に係る画像処理装置１００において実行される画像処理の全体の流れを示すフローチャートである。
【０１００】
ステップ１６０１において、画像処理装置１００は、背景画像、環境マップ、仮想カメラ情報、仮想被写体情報を取得する。取得した入力データのうち仮想カメラ情報、仮想被写体情報は、第一補正係数導出部１５０１と仮想被写体合成部１５０４に送られる。背景画像は、第二補正係数導出部１５０２と仮想被写体合成部１５０４に送られる。環境マップは、第一補正係数導出部１５０１と環境マップ補正部１５０３に送られる。
【０１０１】
ステップ１６０２において、第一補正係数導出部１５０１は、環境マップ、仮想カメラ情報、仮想被写体情報に基づいて、環境マップ補正処理で用いる第一補正係数を導出する。なお、第一補正係数は、実施例１の補正係数導出処理で導出される補正係数と同一であり、その導出処理の内容も実施例１に係る図６のフローチャートと同様のため、ここでの説明は省略する。
【０１０２】
ステップ１６０３において、第二補正係数導出部１５０２は、背景画像に基づいて第二補正係数を導出する。なお、第二補正係数は、背景画像のホワイトバランスに基づく係数である。よって、まず、背景画像のホワイトバランスを取得する。ホワイトバランスの取得方法は、実施例１に係る図１２のフローチャートのステップ１２０１と同様である。取得したホワイトバランスに基づく白の色信号値を（ｗR，ｗG，ｗB）とし、Ｇを基準とした場合の第二補正係数（ｕR，ｕG，ｕB）は、次の式（２０）〜（２２）のようになる。
【０１０３】
【数２０】
2013127774.tif 000022
【０１０４】
【数２１】
2013127774.tif 000023
【０１０５】
【数２２】
2013127774.tif 000024
【０１０６】
なお、第二補正係数は、背景画像のホワイトバランスに基づくＲ，Ｇ，Ｂの各色信号値の割合が得られれば良く、本実施例で説明した導出方法に限られるものではない。
【０１０７】
ステップ１６０４において、環境マップ補正部１５０３は、ステップ１６０２で導出された第一補正係数及びステップ１６０３で導出された第二補正係数に基づいて、環境マップを補正する。環境マップ補正処理の詳細は後述する。
【０１０８】
ステップ１６０５において、仮想被写体合成部１５０４は、ステップ１６０４で生成された補正環境マップ、ステップ１６０１で取得した背景画像、仮想カメラ情報、仮想被写体情報に基づいて、仮想被写体合成処理を行い、合成画像を生成する。なお、仮想被写体合成処理の内容については、実施例１に係る図１３のフローチャートと同様のため、ここでの説明は省略する。
【０１０９】
ステップ１６０６において、画像処理装置１００は、ステップ１６０５で生成された合成画像のデータを出力する。
【０１１０】
以上が、本実施例に係る画像処理装置１００における画像処理の概要である。
【０１１１】
（環境マップ補正処理）
図１７は、図１６のステップ１６０４における環境マップ補正処理の詳細を示すフローチャートである。
【０１１２】
ステップ１７０１において、環境マップ補正部１５０３は、図１６のステップ１６０２で導出された第一補正係数を取得する。
【０１１３】
ステップ１７０２において、環境マップ補正部１５０３は、図１６のステップ１６０３で導出された第二補正係数を取得する。
【０１１４】
ステップ１７０３において、環境マップ補正部１５０３は、環境マップの中から補正処理をする画素を選択する。補正処理の対象となる画素の選択方法に関しては特に制限はなく、例えば画像の左上から右下へ向かって順次選択すればよい。
【０１１５】
ステップ１７０４において、環境マップ補正部１５０３は、選択された画素の色信号値を、上記第一の補正係数及び第二の補正係数を用いて補正する。この場合において、選択された画素の色信号値を（ＲC，ＧC，ＢC）、第一補正係数を（ｔR，ｔG，ｔB）、第二補正係数を（ｕR，ｕG，ｕB）とすると、補正後の色信号値（Ｒ’C，Ｇ’C，Ｂ’C）は、次の式（２３）〜（２５）で表される。
【０１１６】
【数２３】
2013127774.tif 000025
【０１１７】
【数２４】
2013127774.tif 000026
【０１１８】
【数２５】
2013127774.tif 000027
【０１１９】
ステップ１７０５において、環境マップ補正部１５０３は、環境マップの全画素について補正処理が完了したかどうかを判定する。完了していれば本処理を終了する。一方、未処理の画素があれば、ステップ１７０３に戻り、次の画素を選択する。
【０１２０】
以上の処理により、背景画像のホワイトバランスに基づいて環境マップが補正され、補正環境マップが生成される。
【０１２１】
以上のとおり本実施例によっても、実写した背景画像と仮想被写体との合成画像を生成する処理において、背景画像のホワイトバランスに基づいて環境マップを補正することで、自然な合成画像を自動で生成することが可能になる。
【０１２２】
［実施例３］
実施例１及び２では、仮想被写体を照射する光と背景画像との色味の違いを補正する態様について説明した。次に、色味の違いではなく明るさの違いを補正する態様について実施例３として説明する。
【０１２３】
背景に用いる実写画像の撮影では、一般的に所定の反射率を持つグレーの板（標準反射板）を被写体として置くことにより適正露出で撮影する。よって、ＣＧでも同じ様に標準反射板を用いて露出を決定する必要があるが、標準反射板と仮想被写体とでは形状が異なり陰影のつき方が変わってしまう。つまり、標準反射板で設定した露出が仮想被写体で適正になるとは限らない。そこで、本実施例では、仮想被写体の形状に標準反射板の反射特性を適用することにより、仮想被写体の明るさが背景画像の明るさと同じになる様にする。
【０１２４】
本実施例の詳細を説明する前に、まずその効果について説明する。例えば、前述の図１４に示される仮想被写体２００が黒い物体であったと仮定する。この場合において、仮想ライトが強過ぎたり、仮想カメラ３０３の露出に関係するパラメータが適切でないと、あたかも白い物体であるかのような画像が生成される（図１８の（ａ）参照）。そして、そのような画像を、適正露出の背景画像と合成すると、実写背景と仮想被写体２００とで明るさが異なる不自然な合成画像となってしまう（図１８の（ｂ）参照）。そこで、本実施例では、仮想被写体を適正露出に補正する。
【０１２５】
なお、実施例１及び２と共通する部分については説明を簡略化ないしは省略し、差異点を中心に説明することとする。
【０１２６】
図１９は、本実施例に係る画像処理装置の機能構成図である。この図１９に示される構成は、画像処理アプリケーションソフトウェアとして実現される。
【０１２７】
補正係数導出部１９０１は、入力された仮想カメラ情報、仮想被写体情報、環境マップを用いて補正係数αを導出する。導出した補正係数αはＲＡＭ１０２に記憶される。
【０１２８】
仮想被写体合成部１９０２は、入力された背景画像、仮想カメラ情報、仮想被写体情報、環境マップ、及び導出された補正係数αを用いて合成画像を生成する。生成した合成画像のデータはＲＡＭ１０２に記憶され、その後、ユーザ指示に応じて、ＨＤＤ１０３、外部メモリ１０８、モニタ１０９などに出力される。
【０１２９】
図２０は、本実施例に係る画像処理装置１００において実行される画像処理の全体の流れを示すフローチャートである。
【０１３０】
ステップ２００１において、画像処理装置１００は、上記入力データ、すなわち、背景画像、環境マップ、仮想カメラ情報、仮想被写体情報を取得する。取得した入力データのうち背景画像は仮想被写体合成部１９０２のみに送られ、仮想カメラ情報、仮想被写体情報及び環境マップは、補正係数導出部１９０１及び仮想被写体合成部１９０２に送られる。
【０１３１】
ステップ２００２において、補正係数導出部１９０１は、環境マップ、仮想カメラ情報、仮想被写体情報に基づいて、後述の色信号値補正処理で用いる補正係数αを導出する。ここで、補正係数αは、仮想被写体を仮想標準反射素材と仮定した場合の色信号値に基づく係数である。
【０１３２】
図２１は、本ステップにおける補正係数導出処理の流れを示すフローチャートである。
【０１３３】
ステップ２１０１において、補正係数導出部１９０１は、ステップ２００１で取得した仮想カメラ情報から視点を決定し、仮想カメラの撮影位置を設定する。
【０１３４】
ステップ２１０２において、補正係数導出部１９０１は、ステップ２００１で取得した仮想被写体情報に含まれる反射／透過特性を、仮想標準反射特性に設定（置換）し、当該仮想標準反射率に設定された仮想被写体を所定の位置に配置する。ここで、仮想標準反射特性（仮想標準反射率）は、ある面に入射する光が散乱することにより観察者から見た当該面の明るさが観察者の視点の角度にかかわらず同じになる完全拡散反射特性とする。仮想標準反射率には、カメラの適正露出を定義するためのもので、予め定めた任意の値が設定される。この点、一般的な実写画像の撮像に用いられるカメラでの適正露出は、グレースケールで反射率１８％の被写体の画素値がＤ／２（Ｄ：記録される最大画素値）となるように設計されている。そこで、本実施例では、仮想カメラの露出条件を上記設計に合わせるべく、仮想被写体情報に含まれる反射／透過特性を１８％に置き換えるものとする。具体的には、後述の光線追跡処理で使用される式（８）〜式（１０）における係数（rR、rG、rB）を、rR＝rG＝rB＝０．１８×２５５と設定する。この場合において、２５５を乗算しているのは、（rR、rG、rB）はそれぞれ０〜２５５の範囲で、光線と仮想被写体との交点における色信号値を表すためである。
【０１３５】
ステップ２１０３〜ステップ２１０５は、実施例１に係る図６のフローチャートのステップ６０３〜ステップ６０５と同様である。すなわち、補正係数導出部１９０１は、レンダリング処理対象の画素を選択し（Ｓ２１０３）、選択された画素の方向に光線を発射し（Ｓ２１０４）、発射された光線と仮想被写体との交点の色信号値を光線追跡処理により取得する（Ｓ２１０５）。
【０１３６】
ステップ２１０６において、補正係数導出部１９０１は、全画素の光線追跡処理が完了したかどうかを判定する。完了していなければステップ２１０３に戻り、次の処理対象の画素を選択する。一方、完了していればステップ２１０７に進む。
【０１３７】
ステップ２１０７において、補正係数導出部１９０１は、仮想被写体の色信号値から補正係数αを導出する。図２２は、仮想被写体の反射特性を仮想標準反射率１８％とした場合の画像を示している。補正係数αは、図２２で示す仮想被写体の色信号値を、Ｄ／２に補正する係数である。ステップ２１０５で取得された色信号値を〔Ｒ’，Ｇ’，Ｂ’〕とすると、仮想被写体の色信号値Ｇ’の平均値Ａ’が式（２６）から求められ、得られた平均値Ａ’と式（２７）から、補正係数αを求めることができる。なお、ここでは仮想被写体を構成する全画素から補正係数を導出しているが、仮想被写体のうち注目されやすい個所（仮想被写体が人物の場合における顔領域など）の画素のみから導出してもよい。
【０１３８】
【数２６】
2013127774.tif 000028
【０１３９】
【数２７】
2013127774.tif 000029
【０１４０】
このようにして、補正係数ｃが求められる。
【０１４１】
図２０のフローチャートの説明に戻る。
【０１４２】
ステップ２００３において、仮想被写体合成部１９０２は、取得した背景画像、環境マップ、仮想被写体情報、及び導出された補正係数αに基づいて、背景画像に仮想被写体を合成した画像を生成する。
【０１４３】
図２３は、本ステップにおける仮想被写体合成処理の流れを示すフローチャートである。本実施例に係る仮想被写体合成処理では、仮想被写体の色信号値を取得した後、上述の補正係数導出処理で得られた補正係数αに基づいて仮想被写体の色信号値を補正し、背景画像に合成する点で、実施例１に係る仮想被写体合成処理と異なっている。
【０１４４】
ステップ２３０１において、仮想被写体合成部１９０２は、環境マップ、仮想カメラ情報、仮想被写体情報及び背景画像を取得する。
【０１４５】
ステップ２３０２において、仮想被写体合成部１９０２は、背景画像の中から、色信号値を取得する処理の対象となる画素を選択する。
【０１４６】
ステップ２３０３において、仮想被写体合成部１９０２は、ステップ２３０１で取得した仮想カメラ情報において特定される視点位置から、選択された画素に向けて光線を発射する。
【０１４７】
ステップ２３０４において、仮想被写体合成部１９０２は、発射された光線が仮想被写体と交差するか否かを判定する。交差すると判定された場合はステップ２３０５に進み、交差しないと判定された場合はステップ２３０７に進む。
【０１４８】
ステップ２３０５において、仮想被写体合成部１９０２は、選択された画素の色信号値、この場合には、仮想被写体と光線との交点における色信号値を取得する。
【０１４９】
ステップ２３０６において、仮想被写体合成部１９０２は、前述のステップ２００２で導出された補正係数αに従って、ステップ２３０５で取得された仮想被写体の色信号値を補正する。具体的には、ステップ２３０５で取得された仮想被写体の色信号値〔Ｒ，Ｇ，Ｂ〕の補正後の色信号値〔Ｒｃ，Ｇｃ，Ｂｃ〕を、補正係数αとの積算、すなわち、下記の式（２８）〜式（３０）によってそれぞれ求める。
Ｒｃ＝α×Ｒ                              ・・・式（２８）
Ｇｃ＝α×Ｇ                              ・・・式（２９）
Ｂｃ＝α×Ｂ                              ・・・式（３０）
【０１５０】
これにより、例えば前述の図１８の（ａ）に示した仮想被写体画像が、図２４の（ａ）に示すような適正露出の仮想被写体画像に補正される。
【０１５１】
ステップ２３０７において、仮想被写体合成部１９０３は、ステップ２３０１で取得した背景画像とステップ２３０３で発射した光線との交点における色信号値を取得する。
【０１５２】
以上のような処理によって、背景画像と適正露出に補正された仮想被写体とが合成された合成画像が得られる。図２４の（ｂ）は、図２４の（ａ）に示す補正後の仮想被写体画像を、適正露出の背景画像と合成して得られた合成画像を示している。図１８の（ｂ）と比較すると、仮想被写体と背景画像の明るさが一致し、より自然な合成画像となっているのが分かる。
【０１５３】
図２０のフローチャートの説明に戻る。
【０１５４】
ステップ２００４において、仮想被写体合成部１９０２は、上述の仮想被写体合成処理で生成された合成画像のデータを出力する。
【０１５５】
以上のとおり本実施例によれば、実写した背景画像と仮想被写体との合成画像を生成する処理において、適正露出となるような仮想被写体画像を生成することで、自然な合成画像を自動で生成することが可能になる。
【０１５６】
［実施例４］
実施例１〜３では、仮想被写体を照射する光と背景画像との間のホワイトバランスや明るさの違いを補正する際の補正係数を、無彩色オブジェクト等をレンダリングして得られた色信号値を元に導出していた。すなわち、本来のレンダリングとは別に、仮のレンダリングを行う必要があった。次に、そのような仮のレンダリングを行うことなく補正係数を導出する態様について、実施例４として説明する。なお、実施例１〜３と共通する部分については説明を簡略化ないしは省略し、差異点を中心に説明することとする。
【０１５７】
図２５は、本実施例に係る画像処理装置の機能構成図である。この図２５に示される構成は、画像処理アプリケーションソフトウェアとして実現される。図２５は、実施例１に係る画像処理装置の機能構成図（図４参照）とほぼ同様であるが、環境マップが補正係数導出部２５０１には入力されず、仮想被写体合成部４０３のみに入力されている。そして、環境マップに代えて環境マップ部分値テーブルが、補正係数導出部２５０１に入力されている。環境マップ部分値テーブルについては、後述する。
【０１５８】
本実施例における補正係数導出部２５０１は、入力された仮想カメラ情報、仮想被写体情報及び環境マップ部分値テーブルを用いて補正係数を導出する。導出された補正係数は、ＲＡＭ１０２に記憶される。背景画像補正部４０２や仮想被写体合成部４０３については実施例１と異なるところがないため説明を省略する。
【０１５９】
図２６は、本実施例に係る画像処理装置１００において実行される画像処理の全体の流れを示すフローチャートである。
【０１６０】
ステップ２６０１において、画像処理装置１００は、背景画像、環境マップ、環境マップ部分値テーブル、仮想カメラ情報及び仮想被写体情報を取得する。取得したデータのうち環境マップ部分値テーブル、仮想カメラ情報及び仮想被写体情報は補正係数導出部２５０１に送られ、背景画像、環境マップ、仮想カメラ情報及び仮想被写体情報は仮想被写体合成部４０３に送られる。また、背景画像は背景画像補正部４０２に送られる。
【０１６１】
ステップ２６０２において、補正係数導出部２５０１は、入力された仮想カメラ情報、仮想被写体情報、環境マップ部分値テーブルを用いて、補正係数を導出する。ここで、環境マップ部分値テーブルは、環境マップ内の特定の領域毎の画素値平均をリストとして保持するもので、原点から各領域の中心に向けたベクトルと各領域での画素値平均とが対応付けられて保持されている。図２７は、環境マップ部分値テーブルの一例であり、ｘ、ｙ、ｚ軸の正負方向の全６個のベクトルについて、各ベクトルがその中心に向いたそれぞれの領域（ここでは、半球）における画素値平均（ＤＲ,ＤＧ,ＤＢ）が保持されている。この画素値平均（ＤＲ,ＤＧ,ＤＢ）が、環境マップの各領域から原点に照射する光線を相対的に表している。図２８の（ａ）〜（ｆ）は、図２７の環境マップ部分値テーブルにおける各ベクトル（ｘ、ｙ、ｚ軸の正負方向）の画素値平均（ＤＲ,ＤＧ,ＤＢ）に対応する特定の領域（半球）を示している。本実施例では、環境マップを特定の領域に分ける際の形状を、仮想空間のｘ、ｙ、ｚの各軸の正負方向の全６ベクトルを中心とした半球としたが、ベクトルの数や領域の形状（広狭）はこれに限るものではない。例えば、ベクトルの数を増やすことでより高精度の結果を得られるが逆に処理負担は増すことになるので、これらのバランスを考慮して適宜設定されることになる。導出した補正係数はＲＡＭ１０２に記憶される。
【０１６２】
図２９は、本ステップにおける補正係数導出処理の詳細を示すフローチャートである。
【０１６３】
ステップ２９０１において、補正係数導出部２５０１は、前述のステップ２６０１で取得した仮想カメラ情報に基づいて視点を決定し、仮想カメラの撮影位置を設定する。本ステップは、実施例１に係る図６のフローチャートのステップ６０１と同様である。
【０１６４】
ステップ２９０２において、補正係数導出部２５０１は、まず、仮想被写体情報から仮想被写体の位置を設定する。そして、ステップ２９０１で設定した仮想カメラの撮影位置（視点）と、上記設定した仮想被写体の位置とに基づき、前述の環境マップ部分値テーブルを参照して、仮想被写体に影響を与える光としての画素値平均（ＤＲ,ＤＧ,ＤＢ）を取得する。例えば、仮想被写体から仮想カメラへ向かうベクトルをＶとし、当該ベクトルＶに最も近いベクトルを環境マップ部分値テーブル内のベクトルから選択することで、最適な画素値平均を得る。図３０は、仮想被写体に影響を与える光としての画素値平均を取得する様子を説明する図である。図３０において、仮想被写体７００から仮想カメラ３０３に向かう矢印３００１がベクトルＶを示している。このベクトルＶ３００１に最も近い矢印３００２で示すベクトル（Ｘ軸に沿ったベクトル）が環境マップ部分値テーブルから選択され、当該ベクトルに対応付けられた画素値平均が得られる。なお、破線３００３は、ベクトル３００２に対応する領域（半球）を示す。ここでは、仮想被写体７００から仮想カメ３０３に向かうベクトルＶに最も近い位置のベクトルを１つだけ選択する場合を説明したが、近い位置のベクトルを複数選択し、当該選択した複数のベクトルに対応する画素値平均の加重平均を取ることで、最適な画素値平均としてもよい。このようにして、本実施例では、仮のレンダリングを行うことなく、環境マップの中で仮想被写体に影響を与える領域を特定することにより、仮想被写体にどのような光が照射されているのかが特定される。
【０１６５】
ステップ２９０３において、補正係数導出部２５０１は、取得された画素値平均（ＤＲ,ＤＧ,ＤＢ）から、補正係数を導出する。補正係数は、ステップ２９０２で取得した画素値平均（ＤＲ,ＤＧ,ＤＢ）のホワイトバランスを補正可能な値であればよい。具体的には、実施例１で示した式（１４）及び式（１６）における色信号値（ｒx,y，ｇx,y，ｂx,y）に代えて、取得された最適な画素値平均（ＤＲ,ＤＧ,ＤＢ）を用いることで、補正係数（ｔR，ｔG，ｔB）を導出する。
【０１６６】
図２６のフローチャートの説明に戻る。
【０１６７】
以降のステップ２６０３（背景画像補正処理）、ステップ２６０４（仮想被写体合成処理）及びステップ２６０５（合成画像出力処理）は、実施例１に係る図５のフローチャートのステップ５０３〜ステップ５０５と同様であるため、説明を省略する。
【０１６８】
以上のとおり本実施例によれば、無彩色オブジェクト等を用いた仮のレンダリングをすることなく補正係数を導出することができ、処理を高速に行うことが可能となる。
【０１６９】
［実施例５］
実施例４では、仮想被写体の位置と仮想カメラの位置を基に、仮想被写体に影響を与える光としての画素値平均を環境マップ部分値テーブルから取得していた。すなわち、実施例４においては被写体とカメラの位置関係のみに基づいて最適な画素値平均を取得しているところ、これは被写体の法線ベクトルが仮想カメラに向かっていることを前提とするものであった。そのため、仮想被写体の法線ベクトルの向きが仮想カメラの位置から大きく外れていると、仮想被写体に実際に照射する光と環境マップ部分値テーブルから取得される結果とが大きくかい離することになる。そこで、仮想被写体の位置関係に加えてその形状も考慮する態様について、実施例５として説明する。なお、実施例１〜４と共通する部分については説明を簡略化ないしは省略し、差異点を中心に説明することとする。
【０１７０】
図３１は、本実施例に係る補正係数導出処理の流れを示すフローチャートである。なお、本実施例における画像処理装置の構成は実施例４で示した図２５と同様であるため、図２５を基に説明する。
【０１７１】
ステップ３１０１において、補正係数導出部２５０１は、仮想カメラ情報から視点を決定し、仮想カメラの撮影位置を設定する。
【０１７２】
ステップ３１０２において、補正係数導出部２５０１は、仮想被写体情報から仮想被写体の設定位置を特定して、当該特定された位置に無彩色オブジェクトとしての仮想被写体を配置する。
【０１７３】
ステップ３１０３において、補正係数導出部２５０１は、仮想カメラから見た上記仮想被写体について処理対象の画素を選択する。
【０１７４】
ステップ３１０４において、補正係数導出部２５０１は、ステップ３１０１で決定した視点（仮想カメラの設定位置）から、選択された画素の方向に光線を発射する。
【０１７５】
ステップ３１０５において、補正係数導出部２５０１は、発射された光線と仮想被写体との交点における法線ベクトルを取得する。図３２は、法線ベクトルを取得する様子を示す図である。図３２において、矢印３２０１は、ステップ３１０４で仮想被写体７００に向けて発射された光線を表し、この光線３２０１と仮想被写体７００との交点から環境マップ３０６に向かう垂直な矢印３２０２が、求める法線ベクトルを表している。
【０１７６】
ステップ３１０６において、補正係数導出部２５０１は、全画素の処理が完了したかどうかを判定する。すなわち、仮想カメラの視点から見た仮想被写体の各画素に対応する仮想被写体上の法線ベクトルがすべて取得されたかどうかが判定される。未処理の画素があればステップ３１０３に戻り、次の処理対象の画素を選択する。一方、完了していればステップ３１０７に進む。
【０１７７】
ステップ３１０７において、補正係数導出部２５０１は、取得した全ての法線ベクトルから補正係数を導出する。具体的には、まず、全ての法線ベクトルについて、環境マップ部分値テーブルを参照して、最適な画素値平均（ＤＲ,ＤＧ,ＤＢ）を導出する。例えば、全ての法線ベクトルについて、最も近いベクトルを環境マップ部分値テーブル内のベクトルから選択し、当該選択されたベクトルに対応する画素値平均（ＤＲ,ＤＧ,ＤＢ）を得る。或いは、全ての法線ベクトルの平均ベクトルを求め、得られた平均ベクトルに最も近いベクトルを環境マップ部分値テーブル内のベクトルから選択し、当該選択されたベクトルに対応する画素値平均（ＤＲ,ＤＧ,ＤＢ）を得るようにしてもよい。図３３は、法線ベクトルに最も近いベクトルを選択する様子を説明する図である。法線ベクトル３２０２に最も近い矢印３３０１で示すベクトル（Ｙ軸に沿ったベクトル）が環境マップ部分値テーブルから選択され、当該ベクトルに対応付けられた画素値平均が取得される。なお、破線３３０２は、ベクトル３３０１に対応する領域（半球）を示す。そして、実施例４と同様、導出された最適な画素値平均（ＤＲ,ＤＧ,ＤＢ）から、式（１４）及び式（１６）における色信号値（ｒx,y，ｇx,y，ｂx,y）に代えて、導出された最適な画素値平均（ＤＲ,ＤＧ,ＤＢ）を用いることで、補正係数（ｔR，ｔG，ｔB）を導出する。
【０１７８】
このように本実施例では、法線ベクトルと環境マップ部分値テーブルとから仮想被写体に影響を与える光としての画素値平均を得るので、実施例１のように複数の光線を発射する必要がない。そのため、仮のレンダリングを行う実施例１の場合と比べ処理負担を軽くすることができ、より高速に処理することが可能となる。
【０１７９】
［実施例６］
実施例４及び５は、共に実施例１をベースとしていた。つまり、導出された補正係数を用いて背景画像が補正されることになる。しかし、実施例４及び５に開示された内容は、背景画像を補正する場合に限られるものではなく、実施例２のように環境マップを補正する場合にも適用可能である。その場合は、図１５〜図１７を用いて説明した実施例２における処理をベースに各種処理が実行される。例えば、実施例４の場合、第一補正係数導出部１５０１に環境マップ部分値テーブルを入力し、図２６のフローチャートのステップ２６０２に係る補正係数導出処理で補正係数を導出し、当該導出した補正係数に従って環境マップを補正する、といった具合である。
【０１８０】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
2013127774.tif 000030
【図２】
2013127774.tif 000031
【図３】
2013127774.tif 000032
【図４】
2013127774.tif 000033
【図５】
2013127774.tif 000034
【図６】
2013127774.tif 000035
【図７】
2013127774.tif 000036
【図８】
2013127774.tif 000037
【図９】
2013127774.tif 000038
【図１０】
2013127774.tif 000039
【図１１】
2013127774.tif 000040
【図１２】
2013127774.tif 000041
【図１３】
2013127774.tif 000042
【図１４】
2013127774.tif 000043
【図１５】
2013127774.tif 000044
【図１６】
2013127774.tif 000045
【図１７】
2013127774.tif 000046
【図１８】
2013127774.tif 000047
【図１９】
2013127774.tif 000048
【図２０】
2013127774.tif 000049
【図２１】
2013127774.tif 000050
【図２２】
2013127774.tif 000051
【図２３】
2013127774.tif 000052
【図２４】
2013127774.tif 000053
【図２５】
2013127774.tif 000054
【図２６】
2013127774.tif 000055
【図２７】
2013127774.tif 000056
【図２８】
2013127774.tif 000057
【図２９】
2013127774.tif 000058
【図３０】
2013127774.tif 000059
【図３１】
2013127774.tif 000060
【図３２】
2013127774.tif 000061
【図３３】
2013127774.tif 000062