(57)【要約】【課題】従来の手法では、高精度に光源を推定しようとした場合、光源パラメータの数が膨大になってしまったり、推定処理に多くの時間が掛かったりしてしまう。【解決手段】画像処理装置であって、複数の異なる視点からの撮像により得られた撮像画像と、所定の数の領域に分割された撮像シーン内の環境を表す環境マップとを用いて、当該撮像シーンにおいて被写体に影や光源の写り込みを生み出す光源の方向を推定する光源方向推定手段と、前記光源方向推定手段で推定された前記方向に基づいて、前記撮像シーン内の光源を表す光源パラメータを設定する光源パラメータ設定手段と、前記光源パラメータ設定手段で設定された光源パラメータに基づいて、前記撮像シーン内の光源を推定する光源推定手段とを有することを特徴とする。【選択図】図９
2014164497.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なる視点からの撮像により得られた撮像画像と、所定の数の領域に分割された撮像シーン内の環境を表す環境マップとを用いて、当該撮像シーンにおいて被写体に影や光源の写り込みを生み出す光源の方向を推定する光源方向推定手段と、
前記光源方向推定手段で推定された前記方向に基づいて、前記撮像シーン内の光源を表す光源パラメータを設定する光源パラメータ設定手段と、
前記光源パラメータ設定手段で設定された光源パラメータに基づいて、前記撮像シーン内の光源を推定する光源推定手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記光源方向推定手段は、前記所定の数の領域の中から抜き出された一部の領域に対応する各光源下におけるＣＧ画像を生成し、生成された各ＣＧ画像と前記撮像画像とを比較することにより、前記方向を推定することを特徴とすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記光源方向推定手段は、前記各ＣＧ画像について前記撮像画像との差分の平均値を求め、求められた各平均値と所定の閾値とを比較することにより、前記方向を推定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記光源パラメータ設定手段は、前記光源方向推定手段で推定された前記方向に基づき、前記所定の数の領域よりも小さな領域に対応する光源パラメータを設定することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記光源パラメータ設定手段は、前記所定の数に分割された各領域のうち、前記光源方向推定手段で推定された前記方向との差分が所定の閾値より小さい領域についてさらに小さな単位に分割することにより、前記所定の数の領域よりも小さな領域に対応する光源パラメータを設定することを特徴とする請求項１又は３記載の画像処理装置。
【請求項６】
前記環境マップとして、半球面を均等分割した無限遠環境マップを用いることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記環境マップとして、半球面を等立体角で分割したジオデシックドームを用いることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項８】
前記環境マップとして、前記撮像シーン内の光源を立方体の各面で表現するキューブマップを用いることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項９】
前記環境マップとして、球面調和関数を用いることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項１０】
前記環境マップとして、ウェーブレット関数を用いることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項１１】
前記光源推定手段は、前記光源パラメータ設定手段で設定された各光源パラメータ下におけるＣＧ画像を生成し、生成した各ＣＧ画像の画素値の線形和が撮像画像の画素値と一致するような、各ＣＧ画像の重み付け係数を導出することを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記撮像画像は、多眼方式の撮像装置を用いて撮像されることを特徴とする請求項１乃至１１のいずれか１項に記載の画像処理装置。
【請求項１３】
複数の異なる視点からの撮像により得られた撮像画像と、所定の数の領域に分割された撮像シーン内の環境を表す環境マップとを用いて、当該撮像シーンにおいて被写体に影や光源の写り込みを生み出す光源の方向を推定する光源方向推定ステップと、
前記光源方向推定ステップで推定された前記方向に基づいて、前記撮像シーン内の光源を表す光源パラメータを設定する光源パラメータ設定ステップと、
前記光源パラメータ設定ステップで設定された光源パラメータに基づいて、前記撮像シーン内の光源を推定する光源推定ステップと
を含むことを特徴とする画像処理方法。
【請求項１４】
コンピュータを請求項１乃至１２のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の異なる視点から撮像された画像の画像処理に関する。
【背景技術】
【０００２】
撮像画像に対して撮像者の意図に沿った効果を与えるために、画像加工ソフトウェアなどを用いて加工処理を行う場合がある。例えば、撮像画像の光源の種類や方向を変えたり、仮想物体を合成するなどの加工処理である。このような加工処理によって不自然さが無い画像を作成するためには熟練者が時間をかけて加工処理を行う必要があったが、近年、一定条件下で自動化する技術も提案されている。例えば、撮像画像内の被写体形状や質感、撮像シーン内の光源が分かっている場合に、撮像画像からこれらの情報を推定する種々の技術が提案されている。
【０００３】
このうち、光源推定に関しては、鏡面球等の特殊な装置を撮像シーン内に配置することで光源を推定する手法がある。この手法では、カメラの位置と、光源が写り込んだ鏡面球の撮像画像に基づいて計算処理することにより光源が推定される。この手法における問題点、すなわち、光源を推定する為に撮像シーン内に鏡面球を配置・撮像しなければならないという点を踏まえ、以下のような新たな手法も提案されている。
【０００４】
まず、被写体の形状と反射特性が既知という条件下で被写体をレンダリングしたＣＧ画像と撮像画像との差を最小化するように、ＣＧ画像上の光源パラメータの値を調整することで、撮像シーン内の光源を推定する技術が提案されている（非特許文献１）。
【０００５】
また、光源を推定する際に各光源パラメータの重要さに応じて、パラメータの数を増加又は間引くことにより、少ない光源パラメータの数で高精度に光源を推定する技術が提案されている（非特許文献２）。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】I. Sato, Y. Sato, and K. Ikeuchi. “Illumination from Shadows”, IEEE Trans. PAMI, 290-300, 2003.
【非特許文献２】T. Okabe, I. Sato, and Y. Sato. “Spherical Harmonics vs. HaarWavelets: Basis for Recovering Illumination from Cast Shadows”, CVPR, 50-57, 2004.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１の手法では、高精度に光源を推定しようとした場合、光源パラメータの数が膨大になってしまい、推定処理に多くの時間が掛かってしまう。また、非特許文献２の手法によれば、少ない光源パラメータの数で高精度に光源を推定することができるが、全方向について各光源パラメータが重要かどうかを調べることが必要となり、やはり推定処理に多くの時間が掛かってしまう。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理装置は、複数の異なる視点からの撮像により得られた撮像画像と、所定の数の領域に分割された撮像シーン内の環境を表す環境マップとを用いて、当該撮像シーンにおいて被写体に影や光源の写り込みを生み出す光源の方向を推定する光源方向推定手段と、前記光源方向推定手段で推定された前記方向に基づいて、前記撮像シーン内の光源を表す光源パラメータを設定する光源パラメータ設定手段と、前記光源パラメータ設定手段で設定された光源パラメータに基づいて、前記撮像シーン内の光源を推定する光源推定手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、鏡面球等の特殊な装置を用いることなく、かつ、推定処理に多くの時間を要することなく、高精度に光源を推定することができる。
【図面の簡単な説明】
【００１０】
【図１】多眼方式の撮像装置のイメージ図である。
【図２】実施例１に係る多眼カメラの内部構成を示すブロック図である。
【図３】撮像部の内部構成を示す図である。
【図４】画像処理部の内部構成を示すブロック図である。
【図５】（ａ）は環境マップを示す図、（ｂ）は環境マップを展開した図、（ｃ）は環境マップ下に配置された直方体と平面板を撮像して得られた画像である。
【図６】半球面を粗く均等分割した環境マップを示す図である。
【図７】従来手法の光源推定処理を説明する図である。
【図８】実施例１に係る光源推定処理を説明する図である。
【図９】画像処理部における処理の流れを示すフローチャートである。
【図１０】主光源の方向を推定する処理の詳細を示すフローチャートである。
【図１１】主光源の方向を推定する処理を説明する図である。
【図１２】主光源の方向を推定する処理を説明する図である。
【図１３】光源推定処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１１】
［実施例１］
図１は、本実施例において、被写体の形状を取得するための多眼方式の撮像装置（多眼カメラ）であって、複数の個眼カメラで構成されるカメラアレイの外観を示す図である。図１におけるカメラアレイでは、９個の個眼カメラ１０１〜１０９が、３行３列の正方格子上に配置されている。すべての個眼カメラは、筺体１１１の同一平面上に配置され、その光軸はすべて平行であり、配置された平面に垂直である。シャッターボタン１１０は、撮像を制御するボタンであり、ユーザがシャッターボタン１１０を押すことで、撮像がなされる。
【００１２】
なお、カメラアレイの構成は図１で示したものに限られるわけではなく、異なる個数の個眼カメラを異なるレイアウト（放射状、円形状など）で配置してもよい。
【００１３】
図２は、図１で示した多眼カメラの内部構成を示すブロック図である。
【００１４】
撮像部１０１〜１０９は、被写体の光情報をセンサーで受光しＡ／Ｄ変換を施しデータ転送経路であるバス２１４にデジタルデータを出力する。
【００１５】
フラッシュ２０１は、被写体に光を照射する。
【００１６】
ＲＯＭ２０２とＲＡＭ２０３は、撮像や画像処理に必要なプログラム、データ、作業領域などをＣＰＵ２０４に提供する。
【００１７】
ＣＰＵ２０４は、ＲＡＭ２０３をワークメモリとして、ＲＯＭ２０２やＲＡＭ２０３に格納されたプログラムを実行し、バス２１４を介して各部を制御する。これにより、後述する様々な処理が実行される。
【００１８】
撮像部制御部２０５は、フォーカスを合わせる、シャッターを開く、絞りを調節するなどの、ＣＰＵ２０４から指示された撮像系の制御を行う。
【００１９】
操作部２０６は、ボタンやモードダイヤルなどが該当し、これらを介して入力されたユーザ指示を受け取る。
【００２０】
ＣＧ生成部２０７は、文字やグラフィックなどを生成する。
【００２１】
表示部２０８は、一般的には液晶ディスプレイが広く用いられており、ＣＧ生成部２０７や後述のデジタル信号処理部２０９、画像処理部２１３から受け取った撮像画像や文字の表示を行う。また、タッチスクリーン機能を有していても良く、その場合は、ユーザ指示を操作部２０６の入力として扱うことも可能である。
【００２２】
デジタル信号処理部２０９は、デジタル値にホワイトバランス処理、ガンマ処理、ノイズ低減処理などを行い、デジタル画像を生成する。
【００２３】
圧縮・伸張部２１０は、上記デジタル値をＪＰＥＧやＭＰＥＧなどのファイルフォーマットに変換する処理を行う。
【００２４】
外部メモリ制御部２１１は、ＰＣその他メディア２１２（例えば、ハードディスク、メモリーカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）につなぐためのインターフェースである。
【００２５】
画像処理部２１３は、撮像部１０１〜１０９から得られたデジタル画像或いは、デジタル信号処理部から出力されるデジタル画像を利用して新たな画像を生成する。
【００２６】
なお、多眼カメラの構成要素は上記以外にも存在するが、本実施例の主眼ではないので、説明を省略する。
【００２７】
図３は、撮像部１０１〜１０９の内部構成を示す図である。
【００２８】
撮像部１０１〜１０９は、装着フィルター３０１、レンズ３０２、絞り３０３、シャッター３０４、光学フィルター３０５、センサー３０６などから構成され、被写体の光量を検知する。Ａ／Ｄ変換部３０７は、被写体の光量をデジタル値に変換し、バス２１４にデジタルデータを出力する。
【００２９】
図４は、画像処理部２１３の内部構成を示したブロック図である。
【００３０】
撮像画像データ取得部４０４は、複数の視点から撮像した画像データ（以下、「複数視点画像データ」と呼ぶ。）を、入力端子４０１を介して取得する。同様に、カメラパラメータ取得部４０５は、撮像カメラのカメラパラメータを、入力端子４０２を介して取得する。取得された複数視点画像データ及びカメラパラメータは形状データ導出部４０６、光源方向推定部４０９、光源推定部４１１へ送られる。
【００３１】
形状データ導出部４０６は、複数視点画像データから被写体の形状データを導出する。形状データは、被写体の表面形状を表す多数の３次元座標の集合で構成される。導出した形状データは、ポリゴン生成部４０７へ送られる。
【００３２】
ポリゴン生成部４０７は、形状データ導出部４０６で導出した形状データから被写体のポリゴンデータを生成する。生成したポリゴンデータは、反射特性取得部４０８、光源方向推定部４０９、光源推定部４１１へ送られる。
【００３３】
反射特性取得部４０８は、複数視点画像データと、予め用意された反射特性データの中から、被写体のポリゴンデータに対応する反射特性を、入力端子４０３を介して取得する。取得した反射特性は、光源方向推定部４０９及び光源推定部４１１へ送られる。
【００３４】
光源方向推定部４０９は、複数視点画像データ、被写体のポリゴンデータ、反射特性を用いて、全光源パラメータの中で、撮像シーンにおいて被写体に影や光源の写り込みを生み出す重要な光源（以下、「主光源」と呼ぶ。）のパラメータとその方向を推定する。推定した主光源のパラメータの方向は、光源パラメータ設定部４１０へ送られる。
【００３５】
光源パラメータ設定部４１０は、推定された主光源の方向に基づいて、撮像シーン内の光源をより少ない数の光源パラメータで高精度に推定し得るような光源パラメータを設定する。設定した光源パラメータは、光源推定部４１１へ送られる。
【００３６】
光源推定部４１１は、複数視点画像データ、被写体のポリゴンデータ、反射特性、光源パラメータ設定部４１０で設定した光源パラメータから、撮像シーン内の光源を推定する。推定した光源は、ＣＧ画像データ生成部４１２へ送られる。
【００３７】
ＣＧ画像データ生成部４１２は、光源推定部４１１で推定した撮像シーン内の光源を用いて、複数視点画像データを合成・加工処理したＣＧ画像データを生成する。生成したＣＧ画像データは、出力端子４１３から出力される。
【００３８】
画像処理部２１３における処理の詳細について説明する前に、本実施例に係る光源推定と従来手法との差異について説明する。
【００３９】
ＣＧの分野では一般的に半球状の画像（無限遠環境マップ（以下、単に「環境マップ」と呼ぶ。））を用いて撮像シーン内の環境を表現することが多い。本実施例でも撮像シーン内の環境を、半球面を３６×９の領域に均等分割した環境マップで表すこととする。図５の（ａ）は、この環境マップを示す図である。また、図５の（ｂ）は、この環境マップを極角θ、方位角φに関して、縦、横方向に展開した図であり、白の矩形領域５０３は光源を示している。そして、図５の（ｃ）は、この３６×９に均等分割された環境マップ下に配置された直方体５０１と平面板５０２を、光源５０３の下で斜め上から撮像して得られた画像を示している。以下に、図５の（ｃ）に示す撮像画像を用い、本実施例に係る手法によって光源推定を行った場合に要する時間と従来手法によって光源推定を行った場合に要する時間とを比較した結果を示す。なお、光源推定にはメモリ４ＧＢ、Ｉｎｔｅｌ  Ｘｅｏｎ３．１７ＧＨｚのＣＰＵを搭載したＰＣを用いた。
【００４０】
半球面を３６×９に分割した環境マップをそのまま用いて光源推定を行うとすると、光源パラメータの数が３６×９＝３２４と膨大な数になる。そこで、従来手法では、半球面を粗く１２×３に均等分割した環境マップ（図６を参照）における各領域を、更に３×３に細かく分割して光源推定を行い、どの光源パラメータが重要かどうかを全方向について調べる（図７の（ａ）を参照）。そして、重要と判定した領域については細かく分割した光源パラメータ、重要でない領域については粗く分割した光源パラメータをそれぞれ用いて光源を推定したところ（図７の（ｂ）を参照）、計算に要した時間は１３３１秒であった。
【００４１】
一方、本実施例に係る手法では、まず、半球面を粗く１２×３に分割した光源パラメータの内の一部の領域（図８の（ａ）における斜線で示された領域：ここでは１つ置き）の光源パラメータで被写体をレンダリングしたＣＧ画像を生成する。図８の（ｂ）は、抜き出された一部の領域の光源パラメータの下で生成されたＣＧ画像を示している。そして、生成したＣＧ画像と図５の（ｃ）で示した実写の撮像画像とを比較して、被写体に影や光源の写り込みを作るような重要な光源パラメータ（主光源）を決定し、その後、決定された主光源の方向に基づいて少ない数の光源パラメータを導出して光源を推定する。撮像シーン内で重要な光源パラメータをまず粗く調べた後に光源を推定する為、従来の手法と比べて計算に要する時間は短くて済み、より高速な光源推定が可能となる。
【００４２】
続いて、画像処理部２１３における処理の流れについて説明する。
【００４３】
図９は、画像処理部２１３における処理の流れを示すフローチャートである。なお、この一連の処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムをＲＯＭ２０２からＲＡＭ２０３上に読み込んだ後に、ＣＰＵ２０４によって該プログラムを実行することによって実施される。
【００４４】
ステップ９０１において、撮像画像データ取得部４０４は、撮像画像データ（複数視点画像データ）を取得する。
【００４５】
ステップ９０２において、カメラパラメータ取得部４０５は、撮像に用いた多眼カメラに対応するカメラパラメータを取得する。ここで、カメラパラメータは、カメラアレイを構成する各個眼カメラの焦点距離や光軸ずれを表す内部パラメータと、各個眼カメラの３次元座標を表す外部パラメータ等から成る。
【００４６】
ステップ９０３において、形状データ導出部４０６は、ステップ９０１で取得した複数視点画像データとステップ９０２で取得したカメラパラメータから、被写体の形状データを導出する。具体的には、Structure From MotionやPatch-based Multiview Stereo等の形状推定アルゴリズムを用いて、被写体の形状データを導出する。導出された形状データは、ＲＡＭ２０３等の所定の記憶領域に記憶される。
【００４７】
ステップ９０４において、ポリゴン生成部４０７は、ステップ９０３で導出した被写体形状データから、ドロネー分割による領域分割やポアソン関数を用いた表面構成手法等を用いてポリゴンデータを生成する。生成されたポリゴンデータは、ＲＡＭ２０３等の所定の記憶領域に記憶される。
【００４８】
ステップ９０５において、反射特性取得部４０８は、ステップ９０４で生成したポリゴンデータに対応する反射特性を、予め用意された反射特性データの中から取得する。具体的には、ステップ９０１で取得した複数視点画像のうちの任意の画像（例えば、個眼カメラ１０５で撮像された画像）に対して、既存の物体認識技術を適用することにより、ポリゴンデータ内の各ポリゴンに対応した反射特性を取得する。なお、反射特性データは、ＲＯＭ２０２等の記憶領域に予め保存しておき、適宜参照可能なようにしておけばよい。取得された反射特性は、ポリゴンデータに対応付けて、ＲＡＭ２０３等の所定の記憶領域に記憶される。ここでは、被写体となる直方体及び平面板の反射特性は、反射光の輝度が出射方向に対して一様なLambert反射とし、反射率はそれぞれ０．０１、１とする。尚、撮像画像がカラー画像である場合は、同様の処理をＲ, Ｇ, Ｂの３チャンネルそれぞれについて行う。本実施例では簡単の為、撮像画像が白黒画像の１チャンネルのみであるものとして説明する。
【００４９】
ステップ９０６において、光源方向推定部４０９は、ステップ９０４で生成したポリゴンデータと、ステップ９０５で取得した反射特性から、撮像画像内に写っている被写体の影や光源の写り込みを生成する光源（主光源）の方向Φｍ（φ，θ）を推定する。主光源の方向Φｍ（φ，θ）は、前述の図５の（ａ）に示す方位角φ、極角θから成る２×１ベクトルで表される。
【００５０】
図１０は、主光源の方向を推定する処理の詳細を示すフローチャートである。
【００５１】
本実施例では、半球面を１２×３に均等分割した計３６個の領域（光源パラメータ）から成る環境マップ（前述の図６を参照）を用いて主光源を推定する場合について説明する。各領域に対応する光源パラメータには、光源１,光源２,光源３,・・・,光源３６といった具合に対応した番号が割り振られている。
【００５２】
ステップ１００１において、光源方向推定部４０９は、予め所定の記憶領域に記憶しておいた、全３６個の領域の中から抜き出された一部の領域（光源パラメータ）のうちの１の光源パラメータを取得する。この場合において、左上に位置する光源パラメータから順に取得され、各光源パラメータの番号と対応付けてＲＡＭ２０３等の所定の記憶領域に記憶される。ここでは、最終的に、図１１の（ａ）に示されるように、光源１、光源３、光源５といった奇数番号に対応する各光源パラメータ（計１８個）が取得されることになる。当然のことながら、一部の光源パラメータの抜き出し方は上記に限定されるものではなく、偶数番号に対応する光源パラメータを１つ置きに抜き出してもよいし、さらには２つ置き或いは３つ置きに抜き出してもよい。一部の光源パラメータをどのように抜き出すかは、計算に使用するＣＰＵの処理能力、半球面の分割数などに応じて適宜設定すればよい。
【００５３】
ステップ１００２において、光源方向推定部４０９は、被写体のポリゴンデータ、反射特性、ステップ１００１で取得した光源パラメータを用いて、被写体のＣＧ画像を生成する。図１１の（ｂ）は、生成されたＣＧ画像の一例を示している。
【００５４】
ステップ１００３において、光源方向推定部４０９は、ステップ９０１で取得した撮像画像と、ステップ１００２で生成したＣＧ画像との差分（絶対値）を求め、その平均値を平均差分σとして導出する。具体的には、撮像画像とＣＧ画像との間で対応する画素同士の値（例えば、０〜２５５のいずれかの値）を順次比較して、その差分の絶対値を累積していき、得られた累積値を全画素数で割ることにより、差分の平均値を求める。なお、このときに使用する撮像画像は、例えばカメラアレイの中央に配置された個眼カメラ１０５で取得した撮像画像など、複数の撮像画像のうちの任意の撮像画像でよい。得られた平均差分σは、各光源パラメータの番号と対応付けてＲＡＭ２０３等の所定の記憶領域に記憶される（図１１の（ｃ）を参照）。
【００５５】
ステップ１００４において、すべての抜き出した光源パラメータについて、平均差分σを導出したかどうかを判定する。未処理の光源パラメータがあれば、ステップ１００１に戻り、ステップ１００１〜１００３の各処理を繰り返す。
【００５６】
ステップ１００５において、光源方向推定部４０９は、ステップ１００４で導出した各光源パラメータに対する平均差分σのうち、σ＜σｔｈ（例えば、σｔｈ＝０．５）の関係を満たす光源パラメータを、主光源と見做し、主光源の方向を決定する。図１１の（ｃ）の例では、光源２０の光源パラメータについて得られた平均差分σが０．４６であり、σｔｈ＝０．５より小さい。よって、光源２０の光源パラメータが主光源として特定され、その方向Φｍ（方位角φ，極角θ）：（２２５，４５）が主光源の方向として推定される（図１１の（ｄ））。なお、この方向Φｍ（φ，θ）：（２２５，４５）は、図５の（ａ）における光源５０３の方向を概ね指していることが分かる。このようにして推定された主光源の方向Φｍ（φ，θ）は、その光源パラメータの番号と対応付けてＲＡＭ２０３等の所定の記憶領域に記憶される。
【００５７】
以上が、主光源の方向推定処理の内容である。
【００５８】
図９のフローチャートの説明に戻る。
【００５９】
ステップ９０７において、光源パラメータ設定部４１０は、ステップ９０６で推定された主光源の方向Φｍ（φ，θ）に基づいて、撮像シーン内の光源をより少ない数の光源パラメータで高精度に推定し得るような光源パラメータを設定する。具体的には、以下の式（１）を用いて、より小さな領域の光源パラメータを含むような新たな光源パラメータを設定する。
【００６０】
【数１】
2014164497.tif 000003
【００６１】
本実施例では、ΔΦ＝３５（度）とする（図１２の（ａ）を参照）。まず、前述の図６のように、半球面を１２×３（即ち３０（度／個））に均等分割する。次に、各領域のうち、上記式（１）を満たす部分（図１２の（ｂ）の斜線部分）を、さらに小さな単位（ここでは１０（度／個））に細かく分割する。つまり、推定された主光源の方向Φｍとの差分が所定の閾値ΔΦより小さい部分についてのみ、さらに小さな単位に分割する。分割後は、分割前の領域内の左上から右下の順に新たに番号を割り当てる。例えば、光源７は２つに再分割されて新たに光源７１，光源７２といった番号が割り振られ、光源８は４つに再分割されて新たに光源８１，光源８２，光源８３，光源８４といった番号が割り振られる（図１２の（ｃ）を参照）。このように上記式（１）を満たす領域について再分割した領域を含む光源パラメータ（光源１，光源２，・・・光源７１，光源７２，・・・，光源３５，光源３６の計７２個）を、新たな光源パラメータとして設定する（図１２の（ｄ）を参照）。なお、再分割の際の単位は、求める精度などに応じた任意の値となることはいうまでもない。設定した光源パラメータは、所定の記憶領域に記憶される。
【００６２】
ステップ９０８において、光源推定部４１１は、撮像画像データ、カメラパラメータ、被写体のポリゴンデータ、反射特性、ステップ９０７で設定した光源パラメータから、撮像シーン内の光源を推定する。
【００６３】
図１３は、光源推定処理の詳細を示すフローチャートである。
【００６４】
ステップ１３０１において、光源推定部４１１は、ステップ９０１で取得した複数視点画像データから、任意の撮像画像の画素値ｑｉを取得する。ここでは、個眼カメラ１０５で取得された撮像画像の画素値を取得するものとする。また、撮像画像データのサイズは２５６×２５６ｐｉｘｅｌであり、画像の左上から右下の順に各ピクセルの番号ｉが１，２，・・・，Ｔ（本実施例ではＴ＝２５６２）のように割り振られている。取得した画素値は、番号ｉに対して昇順に並べたＴ×１ベクトルとして（式（２）を参照）、ＲＡＭ２０３等の所定の記憶領域に記憶される。
【００６５】
【数２】
2014164497.tif 000004
【００６６】
ステップ１３０２において、光源推定部４１１は、カメラパラメータ、被写体のポリゴンデータ、反射特性、ステップ９０７で設定した光源パラメータから、各光源パラメータが被写体を照射している環境下のＣＧ画像を生成する。ここでは、個眼カメラ１０５を光学中心としたＣＧ画像が生成されるものとする。本実施例の場合、設定された光源パラメータの数が７２個であるので、計７２枚のＣＧ画像が生成されることになる。なお、生成するＣＧ画像のデータサイズは、撮像画像と同じ２５６×２５６ｐｉｘｅｌとする。
【００６７】
ステップ１３０３において、光源推定部４１１は、ステップ１３０２で生成したＣＧ画像のうち、光源Ｌ（Ｌ：１〜７２）のみの環境下で生成したＣＧ画像における、ピクセルｉの画素値Ｒｉ（Ｌ）を取得する。取得した画素値Ｒｉ（Ｌ）は、以下の式（３）のように並べたＴ×ＬＭ行列Ｒ（ここではＬＭ＝７２）として、ＲＡＭ２０３等の所定の記憶領域に記憶される。
【００６８】
【数３】
2014164497.tif 000005
【００６９】
ここで、光源推定の基本的性質である明るさの線形性について説明する。
【００７０】
明るさの線形性とは、複数の光源下で観察される物体の明るさが各光源下の物体の明るさの線形和で表されるという性質である。この性質を用いると、図１２の（ｂ）のような無限遠環境マップで表される任意の光源環境は、各光源Ｌの線形和で表すことができる。従って、ステップ１３０１で取得した撮像画像の画素値と、ステップ１３０３で生成したＣＧ画像の画素値との間に以下の式（４）の関係が成り立つ。
【００７１】
【数４】
2014164497.tif 000006
【００７２】
ここで、α１, α２, α３, ・・・, αＬＭは、各光源Ｌの輝度の重み付けを表す係数（以下、単に「重み付け係数」と呼ぶ。）である。
【００７３】
ステップ１３０４において、光源推定部４１１は、上記式（４）の左辺と右辺の差分で表される評価関数ｆ（α１, α２, α３, ・・・, αＬＭ）に対し、最急降下法や共役勾配法等を用いて評価関数ｆが最小となる重み付け係数α１〜αＬＭを導出する。導出された重み付け係数αＬは、撮像シーン内の光源パラメータとして、ＲＡＭ２０３等の所定の記憶領域に記憶される。
【００７４】
以上が、光源推定処理の内容である。
【００７５】
図９のフローチャートの説明に戻る。
【００７６】
ステップ９０９において、ＣＧ画像生成部４１２は、ステップ９０８で推定した光源パラメータ（重み付け係数を含む）と、所定の記憶領域に記憶しておいた形状・反射特性が既知の仮想物体データから、撮像画像内に仮想物体を合成したＣＧ画像を生成する。
【００７７】
以上が、画像処理部２１３における処理の内容である。
【００７８】
以上述べたとおり、本実施例によれば、被写体の形状、反射特性を基に、比較的少ない数の光源パラメータで被写体をレンダリングしたＣＧ画像と撮影画像との比較により、光源が推定される。これにより、高速かつ高精度に撮影シーン内の光源を推定することができる。
【００７９】
本実施例では、多眼方式の撮像装置を用いて複数視点の画像を取得する場合について説明した。しかし、被写体を囲むように配置した複数台の撮像装置で構成される撮像システムを用いたり、撮像装置又は被写体を動かしながら動画撮像することで複数視点の画像を取得するようにしても良い。
【００８０】
また、反射特性を取得する際に既存の物体認識技術を用いて被写体に対応する反射特性を記憶領域から取得する方法について説明したが、複数視点画像を用いて反射特性を推定しても良い。例えば、被写体がＬａｍｂｅｒｔ反射であると仮定し、複数視点の撮像画像で取得したＲＧＢ画素値の平均から被写体の反射特性を求めても良い。光沢性を持つ被写体に対してはＰｈｏｎｇモデルや、Ｔｏｒｒａｎｃｅ−Ｓｐａｒｒｏｗモデル等の光沢性を持つ反射モデルを用いて反射特性を推定しても良い。
【００８１】
さらに、本実施例では、主光源の方向を決定する際にＣＧ画像と撮像画像との比較を行った。しかしながら、半球面を粗く分割した環境マップを用いて１回光源推定を行い、重み付け係数が最大となる光源パラメータの方向を主光源の方向として決定するようにしても良い。また、被写体の形状と被写体に写り込んだ正反射光から主光源の方向を決定しても良い。
【００８２】
そして、本実施例では、主光源の方向を１つだけ決定したが、主光源かどうかを判定するパラメータ値が予め設定しておいた条件を満たすのであれば、複数の光源の方向を主光源の方向として決定しても良い。
【００８３】
また、推定する光源パラメータとして半球面を３６×９に均等分割した無限遠環境マップを用いたが、撮像シーン内の光源環境を表現する光源パラメータであれば良く、分割数、分割方法や、無限遠光源であることを限定するものではない。例えば、光源パラメータとして、半球面を等立体角で分割するジオデシックドーム（geodesic dome）や、被写体が仮想的な立方体の中央に配置していると見做し、撮像シーン内の光源を立方体の各面で表現するキューブマップを用いても良い。また、様々な空間周波数の正弦波を基底関数に持つ球面調和関数や、有限長波形を基底関数に持つウェーブレット関数を用いても良い。
【００８４】
さらに、本実施例では、ＣＧ画像として、撮像画像に形状・反射特性が既知の仮想物体を合成したが、撮像シーン内の光源パラメータを用いた画像処理であれば良く、特に仮想物体の合成処理に限定するものではない。例えば、撮像画像の光源環境を変化させたＣＧ画像を生成しても良い。
【００８５】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
2014164497.tif 000007
【図２】
2014164497.tif 000008
【図３】
2014164497.tif 000009
【図４】
2014164497.tif 000010
【図６】
2014164497.tif 000011
【図７】
2014164497.tif 000012
【図９】
2014164497.tif 000013
【図１０】
2014164497.tif 000014
【図１２】
2014164497.tif 000015
【図１３】
2014164497.tif 000016
【図５】
2014164497.tif 000017
【図８】
2014164497.tif 000018
【図１１】
2014164497.tif 000019