(57)【特許請求の範囲】
【請求項１】
被写体を撮像した際の撮像条件データを取得する撮像条件データ取得手段と、
前記被写体の形状を示す形状データを取得する形状データ取得手段と、
前記撮像条件データに基づいて、前記撮像された画像データが示す画像の光源を推定する際の初期値を決定する決定手段と、
前記撮像条件データに基づいて、前記光源の状態を示す光源データを導出する光源データ導出手段と
を備え、
前記光源データ導出手段は、前記形状データ取得手段で取得された形状データおよび前記初期値を用いてレンダリングを行い、当該レンダリングで得られた画像と前記撮像された画像との誤差に基づいて、前記撮像された画像に適した光源データを導出する
ことを特徴とする情報処理装置。
【請求項２】
前記光源データ導出手段は、前記レンダリングで得られた画像と前記撮像された画像との誤差が、閾値より小さくなる光源データを、前記画像に適した光源データとして導出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記撮像条件データに対応する前記光源データは、撮像条件データと関連付けられた複数の光源データを含む光源データテーブルを参照して決定されることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記光源データテーブルに含まれる各光源データは、被写体へ入射する光の入射方向毎の輝度を示す値によって特定されることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記光源データテーブルには、各光源データの精度の評価を含むことを特徴とする請求項３又は４に記載の情報処理装置。
【請求項６】
前記撮像された画像内の特定の領域を光源推定には用いない除外領域として決定する除外領域決定手段をさらに備え、
前記光源データ導出手段は、前記撮像された画像の全画素領域から前記除外領域を除いた画素領域を用いて、前記レンダリングで得られた画像との誤差を求め、当該求められた誤差に基づいて、前記撮像された画像に適した光源データを導出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記撮像された画像内の被写体の形状データを用いてレンダリングして得られた画像に基づいて、前記撮像された画像内の特定の領域を、光源推定には用いない除外領域として決定する除外領域決定手段をさらに備え、
前記光源データ導出手段は、前記撮像された画像の全画素領域から前記除外領域を除いた画素領域を用いて、前記レンダリングで得られた画像との誤差を求め、当該求められた誤差に基づいて、前記撮像された画像に適した光源データを導出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
請求項１乃至７のいずれか１項に記載されている情報処理装置を含むカメラ。
【請求項９】
被写体を撮像した際の撮像条件データを取得する撮像条件データ取得工程と、
前記被写体の形状を示す形状データを取得する形状データ取得工程と、
前記撮像条件データに基づいて、前記撮像された画像データが示す画像の光源を推定する際の初期値を決定する決定工程と、
前記撮像条件データに基づいて、前記光源の状態を示す光源データを導出する光源データ導出工程と
を含み、
前記光源データ導出工程では、前記形状データ取得工程で取得された形状データおよび前記初期値を用いてレンダリングを行い、当該レンダリングで得られた画像と前記撮像された画像との誤差に基づいて、前記撮像された画像に適した光源データを導出する
ことを特徴とする情報処理方法。
【請求項１０】
コンピュータを、請求項１乃至７のいずれか１項に記載されている情報処理装置として、機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件発明は光源推定に関する。
【背景技術】
【０００２】
撮像画像に対して撮像者の意図に沿った効果を与えるために、画像加工ソフトウェアなどによる加工処理を行う場合がある。例えば、撮像画像の光源の種類や方向を変えたり、仮想物体を合成するなどの加工処理である。このような加工処理において、不自然さが無い加工画像を作成するためには熟練者が多くの時間をかける必要があったが、被写体形状や質感、撮像シーン内の光源などの情報を基に加工処理を自動化することも可能になっている。そして、撮像画像からこれらの情報を推定する種々の技術も提案されている。
【０００３】
例えば、鏡面球が配された２次元マーカ等の特殊な装置を撮像シーン内に配置することで光源を推定する技術がある。この場合、カメラの位置と、光源が写り込んだ鏡面球の撮像画像に基づいて計算処理することにより光源を推定することができる。しかし、上記のような特殊な装置を準備し、撮像シーン内にそれを配置して撮像しなければならず、多くの手間を要するという問題があった。そこで、ビデオカメラを付けたヘッドマウントディスプレイをユーザが装着して動き回ることにより全周囲画像を取得し、光源を推定する手法が提案されている（特許文献１）。
【０００４】
また、被写体の形状及び質感が既知という条件下、光源パラメータを調整し様々な光源の下で被写体形状をレンダリングしたＣＧ画像データと実写画像データとを比較し、その差が最小となるような光源を実シーンの光源と推定する技術もある（非特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３３５３１号公報
【特許文献２】特開２００９−１６５１１５号公報
【非特許文献】
【０００６】
【非特許文献１】Takahiro Okabe, "Spherical harmonics vs. Haar wavelets: basis for recovering illumination from cast shadows "Proc. IEEE Conf. Computer Vision and Pattern Analysis (CVPR 04), pp. I-50-57, 2004.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に係る光源の推定方法では、全周囲画像を取得する為にユーザが全周囲方向に動き回る必要があり、手軽に行い得るものではなかった。
【０００８】
また、非特許文献１に係る光源の推定手法を用いた場合、光源パラメータが多いため最適化に時間がかかるという問題があった。また、最適化問題で一般的に知られているように、ＣＧ画像と実写画像との差を最小化する際、光源パラメータが局所解に陥り、処理が不安定になるという問題もあった。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、被写体を撮像した際の撮像条件データを取得する撮像条件データ取得手段と、前記被写体の形状を示す形状データを取得する形状データ取得手段と、前記撮像条件データに基づいて、前記撮像された画像データが示す画像の光源を推定する際の初期値を決定する決定手段と、前記撮像条件データに基づいて、前記光源の状態を示す光源データを導出する光源データ導出手段とを備え、前記光源データ導出手段は、前記形状データ取得手段で取得された形状データおよび前記初期値を用いてレンダリングを行い、当該レンダリングで得られた画像と前記撮像された画像との誤差に基づいて、前記撮像された画像に適した光源データを導出することを特徴とする。
【発明の効果】
【００１０】
撮像画像データから、手軽で効率的に、かつ安定して実シーンの光源を推定できる。
【図面の簡単な説明】
【００１１】
【図１】実施例１に係る、光源推定を行う情報処理装置としてのカメラについて、その構成の一例を示す図である。
【図２】実施例１に係る光源推定部の内部構成を示す機能ブロック図である。
【図３】光源と被写体の関係を表す図である。
【図４】光源データの一例を示す図である。
【図５】実施例１における光源推定処理の流れを示すフローチャートである。
【図６】ポリゴンデータの一例を示す図である。
【図７】（ａ）〜（ｄ）は、それぞれ異なる撮像条件データに対応する光源データの例を示す図である。
【図８】光源データテーブルの一例を示す図である。
【図９】実施例１における光源データ導出処理の流れを示すフローチャートである。
【図１０】（ａ）は撮像画像の一例、（ｂ）はその撮像環境下における光源のデータを示す図である。
【図１１】（ａ）はレンダリングされたＣＧ画像の一例、（ｂ）はそのレンダリング時に用いられた光源のデータを示す図である。
【図１２】実施例２に係る光源推定部の内部構成を示す機能ブロック図である。
【図１３】実施例２に係る、光源推定を行なう情報処理装置としての、撮像部を複数備えたカメラについて、その構成の一例を示す図である。
【図１４】（ａ）〜（ｃ）は、３つの異なる視点から撮像した場合の複数視点画像の一例を示す図である。
【図１５】実施例２における光源推定処理の流れを示すフローチャートである。
【図１６】実施例３に係る、光源推定を行う情報処理システムのシステム構成例を示す図である。
【図１７】実施例３における光源推定処理の流れを示すフローチャートである。
【図１８】実施例３に係る処理サーバにおける初期光源データ決定処理の流れを示すフローチャートである。
【図１９】実施例３に係る光源データテーブルの一例を示す図である。
【図２０】実施例４に係る光源推定部の内部構成を示す機能ブロック図である。
【図２１】実施例４における光源推定処理の流れを示すフローチャートである。
【図２２】実施例５に係る光源推定部の内部構成を示す機能ブロック図である。
【図２３】実施例５における光源推定処理の流れを示すフローチャートである。
【図２４】実施例５における光源データ保持部2205に保持されているデータの概念図である。
【図２５】実施例６に係る光源推定部の内部構成を示す機能ブロック図である。
【図２６】実施例６における光源推定処理の流れを示すフローチャートである。
【図２７】実施例６における視差画像導出の概念図である。
【図２８】実施例６における画素ズレ量からデプス値への変換の概念図である。
【図２９】実施例６におけるステップＳ２６０４の詳細フローチャートである。
【図３０】（ａ）は無限遠方と見做せる被写体のみを含む撮像画像を光源データに使用した場合のＣＧレンダリング結果の一例、（ｂ）は無限遠方とは見做せない被写体を含む撮像画像を光源データに使用した場合のＣＧレンダリング結果の一例を示す図である。
【図３１】実施例８に係る光源推定部の内部構成を示す機能ブロック図である。
【図３２】実施例８における光源推定処理の流れを示すフローチャートである。
【図３３】除外領域の一例を示す図である。
【図３４】光が床の上に配置された直方体と立方体を照射しているシーンをカメラで撮像する様子を示す図である。
【図３５】（ａ）は撮像画像の一例、（ｂ）は撮像画像の影領域のみを用いて導出された光源データの一例、（ｃ）は撮像画像の画素領域の影領域以外の全領域を用いて導出された光源データの一例を示す図である。
【図３６】（ａ）は除外領域がない場合に導出される光源データの一例、（ｂ）は除外領域がある場合に導出される光源データの一例を示す図である。
【図３７】実施例９に係る光源推定部の内部構成を示す機能ブロック図である。
【図３８】実施例９における光源推定処理の流れを示すフローチャートである。
【図３９】レンダリングによって生成されたＣＧ画像の一例を示す図である。
【図４０】除外領域の決定の過程を説明する図である。
【図４１】画素位置と、画素位置に対応する方向の関係を示す図である。
【図４２】実施例１０に係る、光源推定を行う情報処理システムのシステム構成例を示す図である。
【図４３】実施例１０における光源推定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。
【実施例１】
【００１３】
＜装置構成＞
図１は、本実施例に係る、光源推定を行う情報処理装置としてのカメラについて、その構成の一例を示す図である。
【００１４】
撮像部１０１は、ズームレンズ、フォーカスレンズ、ぶれ補正レンズ、絞り、シャッター、光学ローパスフィルタ、ｉＲカットフィルタ、カラーフィルタ、及び、ＣＭＯＳやＣＣＤなどのセンサなどから構成され、被写体の光量を検知する。
【００１５】
Ａ／Ｄ変換部１０２は、被写体の光量をデジタル値に変換する。
【００１６】
信号処理部１０３は、変換されたデジタル値にホワイトバランス処理、ガンマ処理、ノイズ低減処理などを行い、デジタル画像データを生成する。
【００１７】
Ｄ／Ａ変換部１０４は、生成されたデジタル画像データに対しアナログ変換を行う。
【００１８】
エンコーダ部１０５は、デジタル画像データをＪｐｅｇやＭｐｅｇなどのファイルフォーマットに変換する処理を行う。
【００１９】
メディアインターフェース１０６は、ＰＣ、その他メディア（例えば、ハードディスク、メモリーカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）につなぐためのインターフェースである。また、メディアインターフェース１０６は、インターネットなど通信網へ接続されており必要に応じてデータの送受信を行う。
【００２０】
ＣＰＵ１０７は、各部を統括的に制御するプロセッサである。
【００２１】
ＲＯＭ１０８は、ＣＰＵ１０７で実行される制御プラグラム等を格納している。
【００２２】
ＲＡＭ１０９は、ＣＰＵ１０７の主メモリ、ワークエリア等として機能する。
【００２３】
撮像系制御部１１０は、フォーカスを合わせる、シャッターを開く、絞りを調節するなどの、ＣＰＵ１０７から指示された撮像系の制御を行う。
【００２４】
操作部１１１は、ボタンやモードダイヤルなどが該当し、これらを介して入力されたユーザ指示を受け取る。
【００２５】
キャラクタジェネレーション１１２は、文字やグラフィックなどを生成する。
【００２６】
表示部１１３は、一般的には液晶ディスプレイが広く用いられており、キャラクタジェネレーション部１１２やＤ／Ａ変換部１０４から受け取った撮影画像や文字の表示を行う。また、タッチスクリーン機能を有していても良く、その場合は、ユーザ指示を操作部１１１の入力として扱うことも可能である。
【００２７】
光源推定部１１４は、デジタル画像データから光源推定処理を行う。光源推定部１１４の詳細については後述する。
【００２８】
ＧＰＳレシーバ１１５は、撮像位置データを取得して光源推定部１１４やエンコーダ部１０５に供給する。さらにＧＰＳレシーバ１１５は、カメラの方向を取得する電子コンパスとしての機能を具備する事が望ましい。
【００２９】
なお、カメラの構成要素は上記以外にも存在するが、本実施例の主眼ではないので、説明を省略する。
【００３０】
図２は、本実施例に係る光源推定部１１４の内部構成を示す機能ブロック図である。
【００３１】
光源推定部１１４は、画像データ取得部２０１、被写体形状データ取得部２０２、撮像条件データ取得部２０３、光源データ導出部２０５、初期光源データ決定部２０４、光源データ出力部２０６で構成される。
【００３２】
画像データ取得部２０１は、撮像部１０１で撮像され所定の画像処理が施されたデジタル画像データ（以下、単に「画像データ」と呼ぶ。）を信号処理部１０３から取得する。
【００３３】
被写体形状データ取得部２０２は、上記画像データに係る画像内の被写体の形状データをＲＯＭ１０８等から取得する。
【００３４】
撮像条件データ取得部２０３は、撮像時の各種条件に関するデータ（以下、「撮像条件データ」と呼ぶ。）を、操作部１１１、撮像系制御部１１０、信号処理部１０３、ＧＰＳレシーバ１１５などから取得する。撮像条件データには、撮像を行った際のカメラの状態や状況を示すパラメータが含まれる。具体的には、シャッタースピード、フラッシュ使用の有無、ＩＳＯ感度、絞り値、ホワイトバランス（ＷＢ）、撮像日時、ＧＰＳ情報、ポートレートや夜景などの撮像モード、コメント情報、ＵＲＬ情報、撮像に用いたカメラ本体やレンズの型番などである。また、カメラの画角、解像度、カメラの光学中心の位置、カメラの光軸を示すベクトル、カメラの上方向を示すベクトルの情報も含む事が好適である。この撮像条件データは、ユーザが直接入力して設定しても良いし、撮像時に画像データのヘッダやフッタに自動的に記録されるようにしても良い。
【００３５】
初期光源データ決定部２０４は、撮像条件データに対応する初期光源データを、様々なタイプの光源データ（光源データ記憶部としてのＲＯＭ１０８等に、撮像条件データに関連付けられて格納）を参照して決定する。
【００３６】
光源データ導出部２０５は、画像データ、被写体形状データ、撮像条件データ、初期光源データから、シーンの光源として最適な光源データを導出する。ここで、本実施例における光源データについて説明する。図３は、光源と被写体の関係を表す図である。本明細書において光源とは、被写体への入射光に関し、入射方向毎の輝度分布を表すものとする。入射方向は、緯度θ、経度φにより表される。図４は、光源データの一例を示す図である。図４の例では、行に緯度、列に経度を取り、被写体へ入射する光の入射方向毎の輝度を示す数値（０．０〜１．０）が入っている。緯度９０度部分の値が突出して大きいこのような光源データは、高い方向からの光源（つまり天頂からの光強度が高い光源）を表している。このような光源を有するシーンとしては晴天の昼の空などが挙げられる。
【００３７】
光源データ出力部２０６は、導出された光源データを外部に出力する。
【００３８】
なお、上記各部における処理は、ＣＰＵ１０７が各種ソフトウェア（コンピュータプログラム）を動作させることで実現される。
【００３９】
図５は、本実施例における光源推定処理の流れを示すフローチャートである。
【００４０】
ステップ５０１において、画像データ取得部２０１は、所定の画像処理が施された画像データを信号処理部１０３から取得する。取得した画像データは、光源データ導出部２０５に送られる。
【００４１】
ステップ５０２において、被写体形状データ取得部２０２は、被写体の形状データを取得する。取得した被写体形状データは、光源データ導出部２０４に送られる。なお、被写体形状データとしては、ポリゴンデータが好適であり、予め３Ｄスキャナ等で計測してＲＯＭ１０８等に格納しておいたものを取得する。或いは情報処理装置自体に３Ｄスキャナを備える構成とし、計測したポリゴンデータを直接取得するようにしてもよい。図６は、本ステップで取得されるポリゴンデータの一例を示しており、立方体のポリゴンデータが示されている。図６に示す通りポリゴンデータは、頂点データとメッシュデータを含んでいる。被写体を平面の集合と考えると、立方体は６つの平面の集合であり、８つの頂点を有する。頂点データは各頂点の３次元座標値を保持する。メッシュデータは平面を規定し、頂点をどのように接続して平面を構成するか記述している。例えば図６のメッシュデータにおける平面Ｓ0は、頂点ｖ0，ｖ1，ｖ2，ｖ3で指定される四角形の平面を表している。図６では平面を４頂点で構成したが、３頂点や５頂点で構成しても構わない。このような形状を記述するポリゴンデータが、被写体形状データとして取得される。
【００４２】
ステップ５０３において、撮像条件データ取得部２０３は、操作部１１１等から撮像条件データを取得する。取得した撮像条件データは、初期光源データ決定部２０４及び光源データ導出部２０５に送られる。
【００４３】
ステップ５０４において、初期光源データ決定部２０４は、取得された撮像条件データに対応する初期光源データを、ＲＯＭ１０８等に保存されている光源データテーブルを参照して決定する。
【００４４】
ここで、ＲＯＭ１０８等に保存されている光源データテーブルについて説明する。光源データ記憶部としてのＲＯＭ１０８等には、撮像条件データに関連付けられた複数の光源データを含む光源データテーブルが保持されている。そして、複数の光源データの中から、取得された撮像条件データに対応する１の光源データが初期光源データとして決定される。図７の（ａ）〜（ｄ）は、それぞれ異なる撮像条件データに対応する光源データの例を示している。図７の（ａ）は、ホワイトバランスが「曇り」設定のときに適した光源データの一例である。ホワイトバランスが「曇り」の場合、撮像シーンは曇りや日陰であり、撮像時の光源が全方向で一様である事が推察される。そのため、すべての方向で輝度が均一な値を持つような光源データが好適である。図７の（ｂ）は、ホワイトバランスが「太陽光」設定のときに適した光源データの一例である。ホワイトバランスが「太陽光」の場合、撮像シーンは晴天下であることが推察される。そのため、天頂方向からの光の輝度が高い光源データが好適である。なお、ホワイトバランスが「太陽光」の場合には、ＧＰＳ情報や撮像日時などの情報に基づいて正確な太陽の方角を予測し、その予測される方角で輝度が最大となるような光源データを保持しておくとより望ましい。図７の（ｃ）は、フラッシュ使用に適した光源データの一例である。フラッシュは水平方向から照射される確率が高い。そのため、緯度０°方向における輝度が最大となるような光源データが好適である。図７の（ｄ）は、撮像モードが「夜景」設定のときに適した光源データの一例である。この場合、撮像シーンが夜である事が推察される。そのため、街の明かりなど水平方向からの輝度が比較的高い光源データが好適である。
【００４５】
このような様々なタイプの光源データが、撮像条件データに関連付けられてＲＯＭ１０８等に保持される。図８は、複数の光源データを撮像条件データと関連付けて保持する光源データテーブルの一例である。初期光源データ決定部２０４は、このような光源データテーブルを参照して、そのときの撮像条件データに適した初期光源データを見つけ出すことになる。具体的には、図８に示した光源データテーブルの各行について以下の式（１）を用いて指標Ｅを計算し、指標Ｅが最小となるような初期光源データを特定する。
【００４６】
【数１】
0006045378.tif 000002
【００４７】
ここで、ｖi及びａiは撮像条件データの各パラメータであって、ｖiはステップ５０３で取得した撮像条件データ、ａiはＲＯＭ１０８等に保持されるテーブル内の撮像条件データである。ｉは撮像条件データのパラメータの数に対応し、例えば、ｖ1／ａ1がＧＰＳ情報の経度、ｖ2／ａ2がＧＰＳ情報の緯度、ｖ3／ａ3が撮像日時といった具合である。なお、ＷＢ設定などの数値化されていないパラメータに関しては、図８において括弧で示すように任意の数値（例えば、ＷＢ太陽光は数値“０”）を割り振る等し、比較可能な状態にする。ｗiは重み係数である。初期光源データを決定するための主たる判断要素として例えばＧＰＳ情報を用いたい場合は、ＧＰＳ情報に対する重み係数を他のパラメータよりも大きく設定する事が好適である。
【００４８】
以上のようにして、ステップ５０３で取得した撮像条件データに対応する光源データが初期光源データとして決定される。
【００４９】
ステップ５０５において、光源データ導出部２０５は、取得した画像データ、被写体形状データ、撮像条件データ（ステップ５０１〜５０３）及び決定された初期光源データ（ステップ５０４）に基づいて、シーンに最適な光源データを導出する。光源データ導出処理の詳細については後述する。
【００５０】
ステップ５０６において、光源データ出力部２０６は、導出された光源データを出力する。
【００５１】
（光源データ導出処理）
図９は、ステップ５０５における光源データ導出処理の流れを示すフローチャートである。この処理により、実際の撮像画像に近いＣＧ画像を得ることが可能な、最適化された光源データが得られる。
【００５２】
ステップ９０１において、光源データ導出部２０５は、求める光源データの初期値として、初期光源データ決定部２０４から送られた初期光源データを設定する。後述のとおり、本フローチャートはループ構造を有しており、第i回目のループにおける光源データはLi(θ,φ)で表される。ステップ９０１では初期値として、L0(θ,φ)、が設定される。
【００５３】
ステップ９０２において、光源データ導出部２０５は、ステップ９０１で設定された初期光源データと、前述のステップ５０２〜５０３で取得された被写体形状データ及び撮像条件データとに基づいてレンダリングを行い、ＣＧ画像データを生成する。ここでの撮像条件データは、具体的には、カメラの画角、位置などレンダリングに必要となるパラメータである。レンダリング手法は、ＣＧ画像と実写画像とを比較できるよう、パストレーシングやフォトンマッピング等、物理的に正確性を期した手法が好適である。本ステップの詳細は[非特許文献１]を参照されたい。なお、光源データLi(θ,φ)を用いてレンダリングされたＣＧ画像をＩiと表すこととする。ここで、図１０及び図１１を参照して、光源データとＣＧ画像との関係を説明する。図１０の（ａ）は撮像画像（実写画像）の一例であり、同（ｂ）はその撮像環境下における光源のデータ（すなわち、推定されるべき光源データ）を示している。図１０の（ｂ）から明らかなように、この場合は緯度４５°、経度０°の方向のみから光が照射されるため、図１０の（ａ）において示す撮影画像において被写体である直方体の右斜め下の位置に影が確認できる。一方、図１１の（ａ）はレンダリングされたＣＧ画像の一例であり、同（ｂ）はそのレンダリング時に用いられた光源のデータを示している。図１１の（ｂ）から明らかなように、誤った方向（緯度は正しいが、経度が０°ではなく９０°）から光が照射されることになるため、図１１の（ａ）において示すレンダリング結果（ＣＧ画像）において被写体である直方体の左斜め下の位置に影が確認できる。図１０及び図１１で示した例では、実際の撮像画像とレンダリングされたＣＧ画像との差が大きいことから、図１１の（ｂ）に示す光源データがシーンの光源データとして不適切であることが分かる。ここでは説明の便宜上、レンダリングに使用された光源データが極端に不適切な例を用いたが、本実施例に係る光源データ導出処理では、既に説明したとおり、理想に比較的近い光源データが初期光源データとして設定される。
【００５４】
ステップ９０３において、光源データ導出部２０５は、ステップ９０２で生成されたＣＧ画像と撮像画像との誤差Δiを求め、求められた誤差Δiが所定の閾値より小さいかどうかを判定する。誤差を求める方法としては、計算負荷の低いＲＭＳ誤差でも良いし、人間の視覚特性を利用した画像の差を算出するＶＤＰ(Visual Difference Predictor)やＳ−ＣＩＥＬＡＢ等を用いても良い。求められた誤差Δiが所定の閾値（例えば誤差にＳ−ＣＩＥＬＡＢを用いた場合は人間の検知限である１を閾値として設定）より小さければステップ９０５に進む。一方、求められた誤差Δiが所定の閾値より大きければステップ９０４に進む。
【００５５】
ステップ９０４において、光源データ導出部２０５は、ステップ９０３で求めた誤差Δiに基づいて、光源データの内容を更新する。具体的には、次の式（２）を用いて、次の光源データLi+1(θ,φ)を計算する。
【００５６】
【数２】
0006045378.tif 000003
【００５７】
0006045378.tif 000004
【００５８】
【数３】
0006045378.tif 000005
【００５９】
このようにして光源データの更新が行われ、次の更新データLi+1(θ,φ)が得られると、ステップ９０２に戻り、当該更新された光源データの下でレンダリングがなされる。そして、新たに得られたＣＧ画像と撮像画像との誤差Δiが閾値より小さいかどうかが判定され（ステップ９０３）、誤差Δiが閾値より小さいと判定されるまで同様の処理が繰り返される。
【００６０】
ステップ９０５において、光源データ導出部２０５は、導出された光源データ（誤差Δiが所定の閾値より小さいと判定された光源データ）を、光源データ出力部２０６に出力する。
【００６１】
このようにしてシーンに最適な光源データが導出される。
【００６２】
以上のとおり、本実施例に係る発明によれば、適切な光源データを導出する処理において、光源データの初期値（初期光源データ）が、ホワイトバランス設定などの光源の特性を示す撮像条件データに基づいて設定される。これにより、光源データの最適化計算の収束を早めることができ、さらに最適化において局所解に陥って誤った結果を出してしまうリスクを減らすことができる。
【００６３】
なお、本実施例では、光源推定を行う情報処理装置としてカメラを例示したが、これに限らない。例えば、デジタル画像データを受け取ったコンピュータのＣＰＵが、各種ソフトウェアを動作させることにより光源推定処理を実行しても良い。
【実施例２】
【００６４】
実施例１においては、予め３Ｄスキャナ等で計測してＲＯＭ１０８等に格納しておいた被写体形状データを取得して、光源データ導出処理に用いていた。次に、取得した画像データと撮像条件データに基づいて被写体形状の推定を行い、得られた形状データを用いて光源データを導出する態様を、実施例２として説明する。なお、実施例１と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【００６５】
図１２は、本実施例に係る光源推定部１１４の内部構成を示す機能ブロック図である。実施例１に係る光源推定部１１４（図２参照）との大きな違いは、被写体形状データ取得部２０２に代えて被写体形状推定部１２０１が設けられている点である。
【００６６】
また、本実施例の場合、画像データ取得部２０１で取得される画像データは、複数の異なる視点で撮像された画像からなるデータ（複数視点画像データ）であることが好適である。図１３は、本実施例に係る、光源推定を行なう情報処理装置としての、撮像部を複数備えたカメラについて、その構成の一例を示す図である。図１３では、撮像部１３０１及び１３０２の２つの撮像部が示されているが、撮像部の数及びその配置は任意に設定可能である。例えば９個の撮像部を正方格子上に均等に配置する場合などが考えられ、係る多眼方式のカメラであれば、１回の撮像で９視点の画像データを得ることができる。さらに、１回の撮像で１枚の画像を撮像する単眼方式の撮像部を有するカメラ（図１参照）を用い、視点をずらして複数回撮像することで、複数視点画像データを得るようにしても良い。図１４の（ａ）〜（ｃ）は、例えば単眼方式の撮像部を有するカメラを用いて、３つの異なる視点から撮像した場合の複数視点画像の一例を示す図である。
【００６７】
図１５は、本実施例における光源推定処理の流れを示すフローチャートである。
【００６８】
ステップ１５０１において、画像データ取得部２０１は、所定の画像処理が施された複数視点画像データを信号処理部１０３から取得する。取得した複数視点画像データは、被写体形状推定部１２０１及び光源データ導出部２０５に送られる。
【００６９】
ステップ１５０２において、撮像条件データ取得部２０３は、操作部１１１等から撮像条件データを取得する。取得した撮像条件データは、被写体形状推定部１２０１、初期光源データ決定部２０４及び光源データ導出部２０５に送られる。
【００７０】
ステップ１５０３において、被写体形状推定部１２０１は、複数視点画像データから被写体の形状を推定する。視点の異なる複数枚の画像から被写体の形状を推定する手法は公知であり、例えばＳｆＭ(Structure from Motion)などを用いて算出することができる。ここでは、推定の具体的な処理については説明を省くが、例えばＳｆＭを採用する場合、撮像条件データにカメラの位置情報等を含ませるようにして、それらを利用する事が好ましい。算出された被写体形状データは、その正確性ないしは信頼性を表す評価値と共に光源データ導出部２０５に送られる。ここで、評価値について説明する。形状推定では複数の画像間で対応する点（領域）が抽出される。そこで、この対応する点間での一致度が高いほど高評価となるような評価値が被写体形状データに与えられる。この際、一致度に関して設定された閾値（例えば、９０％）を形状推定の評価値とする事が好適である。
【００７１】
ステップ１５０４において、初期光源データ決定部２０４は、撮像条件データに対応する初期光源データを、ＲＯＭ１０８等に保存されている光源データテーブルを参照して決定する。ここでの処理は、実施例１に係る図５のフローチャートのステップ５０４と同じである。
【００７２】
ステップ１５０５において、光源データ導出部２０５は、取得された複数視点画像データ及び撮像条件データ、算出された被写体形状データ、決定された初期光源データに基づいて、シーンの光源データを導出する。本実施例に係る光源データ導出処理は、実施例１に係る図５のフローチャートのステップ５０５（図９のフローチャート参照）と概ね同様であるが、以下の点で相違している。
【００７３】
まず、ステップ１５０１で複数視点画像データが取得されるので、ステップ９０２におけるレンダリング処理及びステップ９０３におけるＣＧ画像と撮像画像との誤差判定処理も、視点の異なる画像毎に（つまり、９視点分の画像を含む場合は９回）実行される。
【００７４】
さらに、ステップ９０３における、ＣＧ画像と撮像画像との誤差を評価する際の閾値が以下のようにして設定される。そもそも、複数の画像から推定された被写体形状データの場合、３Ｄスキャナ等の測定器を用いて得られた被写体形状データ等に比較して、実際の被写体とのずれが大きくなるのが通常である。当然のことながら、ずれの大きい被写体形状データを用いてレンダリングしたＣＧ画像は、実際の撮像画像との誤差も大きくなる事が想定される。そのため、本ステップにおいて用いられる閾値は、実施例１の場合よりも大きな値に設定される。具体的には、被写体形状データと共に受け取った形状推定の評価値に応じて、ステップ９０３における閾値を設定する。例えば、被写体形状データ推定部１２０１において対応点を抽出する際に、対応点付近の画像の差が閾値Ｃ以下であれば対応点として採用するアルゴリズムであったとする。この場合、ステップ９０３における閾値も同じくＣに設定する、といった具合である。また、他の要因で誤差が発生するような場合は閾値を２Ｃに設定するなど、想定される誤差の大きさによりステップ９０３における閾値を適宜設定する事が望ましい。
【００７５】
ステップ１５０６において、光源データ出力部２０６は、導出された光源データを出力する。上述のとおり本実施例の場合には、誤差が閾値より小さいと判定された光源データが視点の異なる画像の数の分だけ導出されることになるので、設定された閾値等によっては、画像毎に異なる内容の光源データが導出される可能性がある。このような場合は、閾値を設定し直して全ての画像について同じ結果が出るまでステップ１５０５の処理を繰り返す、或いは、最も多くの画像で誤差が閾値より小さいと判定された光源データを最終的な光源データとする等により、１の光源データを決定すればよい。
【００７６】
以上のとおり、本実施例に係る発明によれば、複数視点画像データから被写体の形状を推定するので、事前に被写体の形状を３Ｄスキャナ等で測定するなどして被写体形状データを準備する手間を省くことができる。
【実施例３】
【００７７】
次に、光源データ導出処理で使用する初期光源データを、通信網に接続された外部のサーバ等を用いて決定する態様について、実施例３として説明する。なお、他の実施例と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【００７８】
図１６は、本実施例に係る、光源推定を行う情報処理システムのシステム構成例を示す図である。光源推定装置１６００はＰＣ等であり、実施例１における光源推定部１１４に概ね相当する。本実施例に係る光源推定装置１６００と実施例１に係る光源推定部１１４（図２参照）との大きな違いは、光源推定装置１６００には初期光源データ決定部が存在せず、代わりに撮像条件データ送信部１６０４と初期光源データ受信部１６０５とを備えている点である。そして、光源推定装置１６００は、初期光源データ決定手段としての処理サーバ１６１０及び光源データ記憶手段（光源データベース）としてのデータサーバ１６２０と、インターネット等の通信網を介して相互に接続されている。
【００７９】
図１７は、本実施例における光源推定処理の流れを示すフローチャートである。
【００８０】
ステップ１７０１において、光源推定装置１６００の画像データ取得部１６０１は、所定の画像処理が施された画像データを、不図示のカメラ等から取得する。取得した画像データは、光源データ導出部１６０６に送られる。
【００８１】
ステップ１７０２において、光源推定装置１６００の被写体形状データ取得部１６０２は、被写体形状データが格納されたＨＤＤ（不図示）等から、被写体形状データを取得する。
【００８２】
ステップ１７０３において、光源推定装置１６００の撮像条件データ取得部１６０３は、不図示のカメラ等から撮像条件データを取得する。取得した撮像条件データは、光源データ導出部１６０６及び撮像条件データ送信部１６０４に送られる。
【００８３】
ステップ１７０４において、撮像条件データ送信部１６０４は、取得した撮像条件データを初期光源データ決定手段としての処理サーバ１６１０に送信する
ステップ１７０５において、処理サーバ１６１０は、データサーバ１６２０に格納された様々な光源データの中から撮像条件データに対応する１の初期光源データを決定して、光源推定装置１６００に送信する。
【００８４】
図１８は、本実施例に係る処理サーバ１６１０における初期光源データ決定処理の流れを示すフローチャートである。
【００８５】
ステップ１８０１において、処理サーバ１６１０は、光源推定装置１６００から撮像条件データを受信する。
【００８６】
ステップ１８０２において、処理サーバ１６１０は、受信した撮像条件データに光源関連情報を付与する。ここで、光源関連情報とは、例えば、撮像条件データに含まれるＧＰＳ情報や日時等から得た撮像地点の天候情報を指す。天候情報は、晴れや曇りといった情報でも良いし、撮像時刻（或いはその前後）に気象衛星によって当該撮像地点を上空から撮像した画像情報でも良い。撮像画像を用いる方がより詳細な天候情報を取得できる利点がある。このような天候情報を通信網に接続された処理装置が提供する気象サービス等を利用して取得する。光源関連情報の他の例としては、ＧＰＳ情報から逆Geocoding等のサービスを用いて撮像地点の住所を取得することで得られる、撮像地点に存在する建造物名の情報等が考えられる。
【００８７】
ステップ１８０３において、処理サーバ１６１０は、光源関連情報の付与された撮像条件データに基づき、データサーバ１６２０にアクセスして当該撮像条件データに対応する光源データを検索し、初期光源データを決定する。初期光源データの決定方法は、実施例１のステップ５０４と同様である。
【００８８】
ステップ１８０４において、処理サーバ１６１０は、決定した初期光源データを光源推定装置１６００に送信する。
【００８９】
図１７のフローチャートの説明に戻る。
【００９０】
ステップ１７０６において、光源推定装置１６００の初期光源データ受信部１６０５は初期光源データを受信する。
【００９１】
ステップ１７０７において、光源データ導出部１６０６は、光源データを導出する。光源データの導出方法は、実施例１の図９のフローチャートで説明したとおりである。
【００９２】
ステップ１７０８において、光源データ出力部１６０７は、導出された光源データを出力する。ここでの出力は、例えば不図示のメモリーカード等の記憶媒体に光源データを保存することを含む。さらに、導出された最適化計算後の光源データ及びその撮像条件データが、データサーバ１６２０に送られる。この際、導出された光源データの評価値（実際の光源との整合度合いを示す値）も合わせて送信する事が好適である。評価値としては、例えば図９のフローチャートのステップ９０３で使用した閾値でも良いし、ユーザが別途設定した値（０〜１００％：値が大きいほど高評価）でも良い。光源データとその撮像条件データを受信したデータサーバ１６２０においては、受信した光源データとその撮像条件データを光源データテーブルに追加する処理（光源データテーブの更新処理）が行われる。図１９は、更新された光源データテーブルの一例を示しており、実施例１に係る光源データテーブル（図８参照）には存在しない項目、天候情報１９０１及び評価値１９０２が追加されている。なお、本実施例に係る光源データベースは、基本となる数種類の光源データを含む光源データテーブルをメーカー側で最初に用意し、後にユーザが光源データを作成する都度（或いはその際のユーザからの更新指示を待って）更新されるようにするのが好適である。
【００９３】
以上のとおり、本実施例に係る発明によれば、通信網上で共有される独立した光源データベースを用いるため、より多くの光源データを保持することができ、シーンに最適な光源データを高速に安定して導出することができる。さらに、新たに作成された光源データが随時光源データベースに追加されるので、より精度の高い光源データの導出が可能となる。
【実施例４】
【００９４】
次に、実際の被写体形状データを用いることなく、簡易に光源データを導出する態様について、実施例４として説明する。なお、他の実施例と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【００９５】
図２０は、本実施例に係る光源推定部１１４の内部構成を示す機能ブロック図である。
【００９６】
本実施例に係る光源推定部１１４は、画像データ取得部２０１、撮像条件データ取得部２０３、光源データ導出部２０５、初期光源データ決定部２０４、光源データ出力部２０６で構成され、実際の被写体形状データを取得する被写体形状データ取得部２０２が存在しない。
【００９７】
図２１は、本実施例における光源推定処理の流れを示すフローチャートである。
【００９８】
ステップ２１０１において、画像データ取得部２０１は、所定の画像処理が施された画像データを信号処理部１０３から取得する。取得した画像データは、光源データ導出部２０５に送られる。
【００９９】
ステップ２１０２において、撮像条件データ取得部２０３は、操作部１１１等から撮像条件データを取得する。取得した撮像条件データは、光源データ導出部２０５及び初期光源データ決定部２０４に送られる。
【０１００】
ステップ２１０３において、初期光源データ決定部２０４は、撮像条件データに対応する初期光源データを、ＲＯＭ１０８等に保存されている光源データテーブルを参照して決定する。
【０１０１】
ステップ２１０４において、光源データ導出部２０５は、取得した画像データ、撮像条件データ（ステップ２１０１、２１０２）及び決定された初期光源データ（ステップ２１０３）に基づいて、シーンの光源データを導出する。本実施例における光源データ導出処理では被写体の形状データが入力されないため、それに代わる簡易形状データを用いてレンダリングを行う。ここで、簡易形状としては、例えばカメラに正対する反射率５０％のマテリアル属性を有する平面などが好適である。この場合の平面とカメラの距離は撮像条件データに含まれる被写体距離に設定するのが望ましい。また、平面の大きさは、例えばポートレートモードの場合は2m×0.5mなど人の大きさに、ポートレートモード以外の場合は撮像条件データに含まれるカメラの画角から画像の全面をカバーする大きさに設定する事が好ましい。実際の被写体形状データに代わる簡易形状データは、予めＨＤＤ等に用意しておく。このような簡易形状データに基づくレンダリングによってＣＧ画像データが生成され、このＣＧ画像データを用いて最適な光源データが導出される。
【０１０２】
ステップ２１０５において、光源データ出力部２０６は、導出された光源データを出力する。
【０１０３】
なお、上述した簡易形状データを用いる手法を実施例３に適用し、通信網を介して光源データを導出することも可能である。その際には被写体形状データがない状態で導出された光源データであることを示す指標を光源データベース内の光源データに添付することが望ましい。
【０１０４】
以上のとおり、本実施例に係る発明によれば、被写体形状データを取得する代わりに簡易形状データを用いるので、最適な光源データをより高速に導出することができる。
【実施例５】
【０１０５】
実施例４では被写体形状データの代わりに簡易形状データを用いて光源データを導出した。次に、簡易形状データすら用いることなく、より簡易に光源データを導出する態様について、実施例５として説明する。なお、他の実施例と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【０１０６】
図２２は、本実施例にかかる光源推定部１１４の詳細を示す機能ブロック図である。本実施例に係る光源推定部１１４は、画像データ取得部２０１、撮像条件データ取得部２０３、特徴量導出部２２０１、光源データ導出部２０５及び光源データ出力部２０６で構成される。本実施例に特有の構成は、特徴量導出部２２０１である。
【０１０７】
特徴量導出部２２０１は、画像データ取得部２０１から受け取った画像データを解析し、画像の平均色温度、画素値のヒストグラム、光源データの平均Lab値、画素値のヒストグラムの分散値といったその画像の特徴を数値化した特徴量（以下、「画像特徴量」と呼ぶ。）を導出する。本実施例では、画像特徴量として、画像の平均色温度と画素値のヒストグラムを採用した場合について説明するものとする。
【０１０８】
図２３は、本実施例における光源推定処理の流れを示すフローチャートである。
【０１０９】
ステップ２３０１において、画像データ取得部２０１は、所定の画像処理が施された画像データを信号処理部１０３から取得する。取得した画像データは、特徴量導出部２２０１に送られる。
【０１１０】
ステップ２３０２において、撮像条件データ取得部２０３は、操作部１１１等から撮像条件データを取得する。取得した撮像条件データは、光源データ導出部２０５に送られる。
【０１１１】
ステップ２３０３において、特徴量導出部２２０１は、画像データ取得部２０１から受け取った画像データを解析し、画像特徴量（ここでは、画像の平均色温度と画素値のヒストグラム）を導出する。具体的には以下のとおりである。
【０１１２】
画像の平均色温度については、まず、画像の使用色空間プロファイルに基づいてＲＧＢ値を色度ＸＹＺに変換し、それを相関色温度に変換して画像の色温度を得る。そして、得られた色温度の平均を求めることで導出する。
【０１１３】
また、画素値のヒストグラムについては、画像中の各画素の輝度値の出現回数をカウントし、その出現頻度を求めることで導出する。
【０１１４】
ステップ２３０４において、光源データ導出部２０５は、ＲＯＭ１０８等に保存されている光源データテーブルを参照し、撮像条件データ及び画像特徴量に対応する光源データを取得する。図２４は、本実施例に係る光源データテーブルの一例を示す図である。本実施例における光源データテーブルの場合、複数の光源データが、撮像条件データ及び画像特徴量に相当する光源データの特徴量と関連づけられて保持される。ここでは、光源データの特徴量として、平均色温度と輝度値のヒストグラムの情報が関連付けられ保持されている。光源データの平均色温度は、まず、角度毎に保持された輝度値をＲＧＢ値に拡張する。そして、各方向に対応するＲＧＢ値を色温度へ変換し、変換された色温度の平均をとることで得られる。また、ヒストグラムは、光源データにおける各輝度（0〜1）の出現回数について0.1刻みにビンを設定してカウントし、そのカウント数をサンプルの数で除算することで得られる。例えば、図７の（ｄ）に示す光源データの場合は、各輝度のカウント数は(0,0,8,0,4,0,0,0,0),となり、これをサンプルの数12で除算することでヒストグラムとしての(0,0,0.66,0,0.33,0,0,0,0)が得られる。なお、画像特徴量として、平均色温度や画素値のヒストグラム以外の指標を用いる場合、光源データテーブルには、かかる画像特徴量に対応する値が求められ保持されることは言うまでもない。
【０１１５】
前記(0,0,0.66,0,0.33,0,0,0,0)で示されるような光源データのヒストグラムと対比可能な画像データのヒストグラムの作成方法について述べる。画像データの画素値が例えば0〜255の範囲で設定されているとする。まず画像データ中の各画素について、その画素値の範囲が0〜1となるよう変換を施す。かかる変換は各画素の画素値を255で除算する変換で実現できる。次いで0〜1の範囲で0.1刻みにビンを設定し、各画素の変換後の画素値の出現回数をカウントする。カウント結果のデータ例として、画像サイズが1000画素×1000画素の場合、(5000,10000, 650000,320000,10000,5000,0,0) など挙げられる。このカウント結果のデータをサンプル数1000×1000=1000000で除算すると(0.005,0.01,0.65,0.32,0.01,0.005,0,0)が得られる。このデータが光源データのヒストグラムと対比可能な画像データのヒストグラムである。
【０１１６】
本ステップでは、上述したような光源データテーブルを参照して、ステップ２３０２で取得した撮像条件データとステップ２３０３で導出した画像特徴量に対応する１の光源データが選択される。この選択は、実施例１に係る図５のフローチャートの初期光源データを決定するステップ（ステップ５０４）と同様の方法で行えばよい。すなわち、図２４に示すような光源データテーブルの各行について前述の式（１）を用いて指標Ｅを計算し、指標Ｅが最小となるような光源データを選択する。
【０１１７】
ステップ２３０５において、光源データ導出部２０５は、導出された光源データを、光源データ出力部２０６に出力する。この場合の出力方法としては、保存すべき画像データのヘッダ部に光源データを記録しても良いし、画像ファイルとは別に光源データファイルを生成して保存してもよい。
【０１１８】
以上のとおり、本実施例に係る発明によれば、撮像した環境の光源に近い光源データを簡易に導出することができる。
【実施例６】
【０１１９】
次に、撮像画像のデータを加工して光源データを導出する態様について、実施例６として説明する。なお、他の実施例と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【０１２０】
図２５は、本実施例にかかる光源推定部１１４の詳細を示す機能ブロック図である。本実施例に係る光源推定部１１４は、画像データ取得部２０１、撮像条件データ取得部２０３、デプス画像生成部２５０１、光源データ導出部２０５及び光源データ出力部２０６で構成される。本実施例に特有の構成は、デプス画像生成部２５０１である。
【０１２１】
デプス画像生成部２５０１は、カメラから被写体までの距離情報を画像で表現したデプス画像を生成する。デプス画像生成の詳細については後述する。
【０１２２】
なお、本実施例に係る画像取得部２０１で取得する画像データは、実施例２と同様、複数の異なる視点で撮像された画像からなる複数視点画像データであることが好適である。
【０１２３】
図２６は、本実施例における光源推定処理の流れを示すフローチャートである。
【０１２４】
ステップ２６０１において、画像データ取得部２０１は、所定の画像処理が施された複数視点画像データを信号処理部１０３から取得する。取得した複数視点画像データは、デプス画像生成部２５０１及び光源データ導出部２０５に送られる。
【０１２５】
ステップ２６０２において、撮像条件データ取得部２０３は、操作部１１１等から撮像条件データを取得する。取得した撮像条件データは、デプス画像生成部２５０１及び光源データ導出部２０５に送られる。
【０１２６】
ステップ２６０３において、デプス画像生成部２５０１は、画像データ取得部２０１から受け取った複数視点画像データと、視点の異なる複数の撮像画像それぞれに対応する撮像条件データとから、デプス画像を生成する。デプス画像の生成には公知の手法を用いればよく、例えば、特許文献２における変形例４に記載の方法などが挙げられる。ここでは、２つの画像から、デプス画像を生成する場合を例に説明することとする。
【０１２７】
デプス画像の生成に際しては、まず、視点の異なる２つの撮像画像を基に視差画像が生成される。図２７は、視点の異なる２つの撮像画像から視差画像を作る様子を説明する図である。画像Ａ及び画像Ｂには、被写体として、人物、タワー及びビルがそれぞれ存在している。まず、撮像画像Ａの各画素位置に対して所定のサイズ（例えば11x11画素）の領域を設定し、かかる領域と相関の高い領域を撮像画像Ｂから見つけ出す。ここで、撮像画像Ａの画素位置(xA,yA)を中心とする領域と相関の高い撮像画像Ｂ中の領域の中心の画素位置を(xB,yB)とする。被写体が有限の距離にある場合は、(xA,yA)と(xB,yB)とは一致せず、ズレが発生する。そして、この画素ズレは、被写体の距離が遠いほど小さくなることが知られている。そこで、画素ズレ量ｄｘを算出し、算出された画素ズレ量ｄｘを撮像画像Ａの各画素位置に割り当てることにより視差画像が得られる。この場合において、画素ズレ量ｄｘは以下の式で表わされる。
【０１２８】
【数４】
0006045378.tif 000006
【０１２９】
図２７に示された視差画像では、最も画素ズレ量ｄｘの値が大きい人物が白で表され、次に画素ズレ量ｄｘの値が大きいタワー及びビルが薄いグレーで表され、最も画素ズレ量ｄｘの値が小さい背景部分が濃いグレーで表されている。
【０１３０】
視差画像データが得られると、次に、撮影条件データに基づいて、視差画像データをデプス画像データへと変換する。画素ズレ量からカメラ特性値に応じて距離に変換する方法は公知であるため、簡単なジオメトリの場合について説明する。前述の図２７において、撮像画像Ａの中心に位置する被写体が、撮像画像Ｂでは水平方向に画素ズレ量dｘだけずれた位置にあるとする。ここで、撮影条件データから画像の水平画素数Mとカメラの画角θを取得し、さらにカメラの位置データから撮像画像Aの光学中心と撮像画像Bの光学中心との距離Dを導出する。そして、以下の式（５）に従って、画素ズレ量dｘを被写体までの距離（デプス値）Lに変換する。
【０１３１】
【数５】
0006045378.tif 000007
【０１３２】
図２８は、上記式（５）によって、被写体までの距離（デプス値）が導かれることを示す図である。
【０１３３】
このように、撮像画像Ａに対応するデプス画像が生成される。なお、上記説明において撮像画像Ａと撮像画像Ｂの立場を入れ替えて処理を行うことで、撮像画像Ｂに対応するデプス画像が得られることは言うまでもない。
【０１３４】
以上のようにして、複数視点画像データと撮影条件データとから、視点の異なる各撮像画像に対応するデプス画像が生成される。
【０１３５】
図２６のフローチャートの説明に戻る。
【０１３６】
ステップ２６０４において、光源データ導出部２０５は、複数視点画像データ、撮像条件データ及びデプス画像データから、光源データを導出する。
【０１３７】
図２９は、本実施例における光源データ導出処理の流れを示すフローチャートである。
【０１３８】
ステップ２９０１において、光源データ導出部２０５は、光源データを初期化する。具体的には、光源データの全ての緯度経度に対応する輝度値に対して、未設定を示す数値(例えば−１)などを設定する。
【０１３９】
ステップ２９０２において、光源データ導出部２０５は、複数視点画像データの中から処理対象となる撮像画像を設定する。
【０１４０】
ステップ２９０３において、光源データ導出部２０５は、処理対象に設定された撮像画像内の参照する画素位置nを設定する。仮に、処理開始直後の段階で例えば画像の左上端の画素位置が最初に設定されたとすれば、画素位置nは、次回以降の処理において左上端から右下端に向けて順次更新（n+1）され、新たな画素位置ｎが設定されることになる。
【０１４１】
ステップ２９０４において、光源データ導出部２０５は、デプス画像における画素位置nのデプス値L(n)を取得する。
【０１４２】
ステップ２９０５において、光源データ導出部２０５は、取得したデプス値L(n)と予め定められた閾値とを比較する。比較の結果、デプス値L(n)が閾値より大きければステップ２９０６に進む。一方、デプス値L(n)が閾値より小さければステップ２９０３に戻り、次の画素位置を設定する。
【０１４３】
ここで、デプス値に応じて処理を切り替える理由について説明する。ＣＧで一般的に用いられる光源データとして無限遠光源マップがある。無限遠光源マップは、光源が無限遠方にあるものとして方向（緯度、経度）のみから光源の輝度を指定するフォーマットである。このようなフォーマットに従う場合、無限遠方とは見做せないような画像領域を持つ撮像画像を光源データに使用すると、不自然な合成結果となってしまう可能性が高い。よって、無限遠方とは見做せないような画像領域を含む撮像画像を光源データに使用することは避けるべきである。そこで、デプス画像に基づいて、撮像画像から光源データに適さない画像領域を除外する。図３０の（ａ）は無限遠方と見做せる被写体のみを含む撮像画像を光源データに使用した場合のＣＧレンダリング結果の一例、同（ｂ）は無限遠方とは見做せない被写体を含む撮像画像を光源データに使用した場合のＣＧレンダリング結果の一例をそれぞれ示している。そして、図３０の（ａ）及び（ｂ）の各レンダリング結果の上には光源データを利用したＣＧジオメトリが示されており、ＣＧオブジェクトの立方体を囲む光源データが可視化されドームで表現されている。両者を比較すると、図３０の（ａ）では、タワーとビルの間から光りが差し込むためレンダリング結果において、ＣＧオブジェクトである立方体に影が付いている。実際の光源データが取得された環境に実在の立方体を設置した場合にも同様に影が付くため、図３０の（ａ）はリアルなＣＧレンダリング結果と言える。これに対し、図３０の（ｂ）では、本来はビルとタワーの間から差し込む光が人物により遮られているため、ＣＧオブジェクトである立方体に影が付いていない。つまり、図３０の（ｂ）は、リアルなレンダリング結果とは言えない。また、光源データは、撮影を行った場所における光線の入射輝度を表すものであるため、その場所の照明環境には関係のない人物のデータが光源データに反映されることはそもそも好ましくない。どの程度離れていれば無限遠方とするかは、ユーザの設定により可変であることが好ましい。例えば上述の閾値を10ｍとした場合には、デプス値L(n)が10ｍを越える部分の画像領域を用いて光源データが生成されることになる。
【０１４４】
図２９のフローチャートの説明に戻る。
ステップ２９０６において、光源データ導出部２０５は、画素位置nに対応する方向（緯度、経度）を撮影条件データから導出する。図４１は、画素位置nと、画素位置nに対応する方向の関係を示す図である。この場合において光軸方向は、カメラに内蔵した電子コンパス、ジャイロ、水平センサなどにより緯度・経度を取得して、撮影条件データとして予め保持されているものとする。そして、係る光軸方向を基準として画素位置nに対応する方向を求める。説明を簡単にするためにカメラは水平に設置されているものとする。この場合において、画像中心と高さが同じである画素位置nに対応する方向は、光軸方向を水平にθn回転させた方向であることが図４１から分かる。角度θnは、カメラの画角をθとして、（画素ズレ量÷画素数）×画角によって求められる。なお、画角や画素数などの情報は、撮影条件データから取得することは言うまでもない。
【０１４５】
ステップ２９０７において、光源データ導出部２０５は、ステップ２９０６で導出した画素位置nに対応する方向（緯度、経度）について、画素位置nにおける撮像画像の画素値を設定する。
【０１４６】
ステップ２９０８において、光源データ導出部２０５は、処理対象に設定された撮像画像のすべての画素位置について処理したかどうかを判定する。すべての画素位置について処理が完了していればステップ２９０９に進む。一方、未処理の画素位置がある場合にはステップ２９０３に戻り、次の画素位置を設定する。
【０１４７】
ステップ２９０９において、光源データ導出部２０５は、複数視点画像データに含まれるすべての撮像画像について処理が完了したかどうかを判定する。未処理の撮像画像があれば、ステップ２９０２に戻り、次の撮像画像を処理対象の画像に設定して、ステップ２９０２〜ステップ２９０８の処理を繰り返す。一方、すべての撮像画像について処理が完了していれば、本処理を終える。
【０１４８】
以上のようにして、複数視点画像データと撮像条件データから撮影環境に対応する光源データが生成される。
【０１４９】
なお、本実施例では簡単のため、異なる視点で撮像された画像が２枚の場合を例に説明したが、当然のことながら、より多くの複数視点画像を取得し、２以上の撮像画像を用いて上述の処理を行って光源データを生成することも可能である。
【０１５０】
図２６のフローチャートの説明に戻る。
【０１５１】
ステップ２６０５において、光源データ出力部２０６は、ステップ２６０４で生成された光源データを出力する。出力の方法としては保存すべき画像データのヘッダ部に光源データを記録しても良いし、画像ファイルとは別に光源データファイルを生成して保存してもよい。
【０１５２】
以上のとおり、本実施例に係る発明によれば、撮像画像のデータから光源データを導出することができる。
【実施例７】
【０１５３】
複数の撮像画像から求めた視差を基にデプス画像を得て光源データを導出する実施例６においては、撮像画像が１枚しかない場合はデプス画像を得ることができない。そこで、１枚の撮像画像からデプス画像を擬似的に生成する態様について、実施例７として説明する。なお、実施例６と共通する部分については説明を省略し、差異点であるデプス画像の生成を中心に説明することとする。
【０１５４】
本実施例における光源推定処理の流れは、実施例７に係る図２６のフローチャートと同様であるので、以下、図２６のフローに沿って説明する。
【０１５５】
ステップ２６０１において、画像データ取得部２０１は、所定の画像処理が施された１枚の撮像画像のデータを信号処理部１０３から取得する。取得した画像データは、デプス画像生成部２５０１及び光源データ導出部２０５に送られる。
【０１５６】
ステップ２６０２において、撮像条件データ取得部２０３は、操作部１１１等から撮像条件データを取得する。取得した撮像条件データは、デプス画像生成部２５０１及び光源データ導出部２０５に送られる。
【０１５７】
ステップ２６０３において、デプス画像生成部２５０１は、画像データ取得部２０１から受け取った１枚の撮像画像のデータと、当該撮像画像に対応する撮像条件データとから、デプス画像を生成する。
【０１５８】
実施例６で説明したとおり、無限遠方とは見做すことができない画像領域を含む撮像画像をそのまま光源データに使用することは適切ではない。そこで、１枚の撮像画像からデプス画像を生成する際にも、近い距離にある被写体を取り除く必要がある。本実施例では、特定の距離内に存在する被写体（ここでは、人物）が撮像画像内に写っている場合には、その被写体を除いた他の被写体の領域のみを無限遠方と見做すことでデプス画像を生成している。具体的には、以下のとおりである。
【０１５９】
まず、デプス画像生成部２５０１は、撮像画像に対し人物の顔領域を検出する処理を行う。顔領域の検出には、公知の顔検出技術を用いればよい。顔検出技術には、例えば、撮像画像上の複数の異なる位置で部分画像を切り出し、その部分画像が顔領域の画像であるか否かを判別して、撮像画像上の顔領域を検出するパターン・マッチングを利用する手法などがある。
【０１６０】
次に、検出した顔領域を含む所定の領域を基準として、その外側を無限遠方と見做し得る遠い距離（例えば、１ｋｍ）、その内側を近い距離（１ｍ）といった具合に距離情報を設定して、デプス画像を得る。この場合において所定の領域は、例えば、検出された顔領域の面積の２倍の面積を持つような円形の領域に設定すること等が考えられる。
【０１６１】
このように撮像画像内の顔領域を検出し、検出された顔領域を含む一定の領域を近い距離にある画像領域として扱うことで、1枚の撮像画像から近似的にデプス画像が生成される。なお、本実施例では近い距離にある被写体として人物を検出する場合について説明したが、例えば、犬等の動物や建物などをパターンマッチング等によって検出し、検出された動物や建物などの外側を無限遠方と見做すようにしてもよい。
【０１６２】
ステップ２６０４において、光源データ導出部２０５は、1枚の撮像画像のデータ、撮像条件データ、及び上述のようにして得られたデプス画像データから光源データを導出する。この場合の光源データ導出処理は、処理対象の撮像画像が1枚である点を除いて実施例６で説明したとおりであり、
【０１６３】
また、実施例６の更なる変形例として、擬似的にデプス画像を生成することなく、顔領域等の検出結果に基づいて、光源データに使用する領域を示す情報を撮像画像に付加するようにしてもよい。この場合、図２９のフローチャートのステップ２９０５では、画素位置nが当該設定された領域内にあるかどうかが判定されることになり、領域内にあると判定されればステップ２９０６に移行するようにして、光源データが導出される。
【実施例８】
【０１６４】
次に、撮像画像内の影領域を除外することで高精度に光源データを導出する様態を、実施例８として説明する。なお、他の実施例と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【０１６５】
図３１は、本実施例に係る光源推定部１１４の内部構成を示す機能ブロック図である。実施例１に係る光源推定部１１４（図２参照）との大きな違いは、除外領域決定部３１０１が追加されている点である。
【０１６６】
除外領域決定部３１０１は、画像内の影領域を抽出し、抽出された影領域のうち画像の端部に掛かっている領域を光源推定には用いない除外領域として決定する処理を行う。
【０１６７】
図３２は、本実施例における光源推定処理の流れを示すフローチャートである。
【０１６８】
ステップ３２０１において、画像データ取得部２０１は、所定の画像処理が施された画像データを信号処理部１０３から取得する。取得した画像データは、光源データ導出部２０５及び除外領域決定部３１０１に送られる。
【０１６９】
ステップ３２０２において、除外領域決定部３１０１は、受け取った画像データに対し影領域抽出処理を行う。撮像画像から影領域を抽出する手法は公知であり、例えば画像のＸＹＺ値を用いて抽出することができる。具体的には、撮像画像の使用色空間プロファイルに基づいて、ＲＧＢ値を色度ＸＹＺに変換した後、輝度値Y < Yth（例えば、Yth = 80）を満たす画素領域を影領域として抽出する。他にも、背景差分法や明度変化を利用する方法等もあるがここでは省略する。
【０１７０】
ステップ３２０３において、除外領域決定部３１０１は、ステップ３２０２で抽出された各影領域のうち、光源推定に用いない画素領域（以下、「除外領域」と呼ぶ。）を決定する。除外領域とするかどうかは、抽出した各影領域が撮像画像の端部に掛かっているかどうかを調べ、画像の端部に掛かっていれば画像に写っていない物体が生みだした影であるとみなして、除外領域と決定する。図３３は、除外領域の一例を示す図である。図３３では、２つの影領域３３０１及び３３０２が示されており、影領域３３０２は画像の左上端部に掛かっている。この場合、影領域３３０２が除外領域として決定されることになる。
【０１７１】
ここで、画像端部の影領域を除外することで高精度に光源データを導出できる理由について説明する。図３４は、緯度４５°、経度０°の方向から1（lux）の光が床の上に配置された直方体と立方体を照射しているシーンをカメラで撮像する様子を示す図である。いま、このような状態で撮像された画像から、光源データを導出する場合を考える。ここで、床、直方体及び立方体は、反射光の輝度が出射方向に対して一様なLambert反射とし、反射率は１とする。本実施例では簡単の為、白黒画像の１チャンネルの場合で説明するが、カラー画像を用いる場合は同様の処理をR, G, Bの３チャンネルそれぞれについて行えばよい。図３５の（ａ）は、撮像画像を示しており、画面中央に立方体とその影、画面左上部に直方体が生みだす影が写っている。まず、撮像画像の画素領域の内、直方体が生みだす影領域のみを用いて光源データを導出する場合を考える。この場合、床がLambert反射であり、影領域Ａ内の画素値が０であることから、導出される光源データは全ての緯度、経度方向に関して光強度が0（lux）の光源データとなる（図３５の（ｂ）参照）。次に、撮像画像の画素領域の内、影領域以外の全領域を用いて光源データを導出する場合を考える。このとき、実施例１で説明した光源推定処理（図９のフローチャート参照）では、緯度４５°、経度０°の方向から1（lux）の光を立方体に照射したＣＧ画像と撮像画像との誤差Δiが所定の閾値より小さくなるような光源データが導出される。すなわち、導出される光源データは、図３５の（ｃ）で示すような緯度４５°、経度０°の方向の光強度が1（lux）の光源データとなる。このように、影領域から得られる光源データと影領域以外の全領域から得られる光源データとは大きく異なることが分かる。図３６は、除外領域がない場合とある場合における、導出された光源データを示している。図３６の（ａ）は、除外領域がない場合（画像内の全画素領域を用いて光源推定する場合）に導出される光源データであり、緯度４５°、経度０°の方向の光強度が0.8（lux）の光源データとなっている。一方、図３６の（ｂ）は、除外領域がある場合（撮像画像内の影領域を除いた画素領域を用いて光源推定する場合）に導出される光源データであり、緯度４５°、経度０°の方向の光強度が1.0（lux）の光源データとなっている。両者を比較すると明らかなように、除外領域がある場合の方が、撮影シーンの光源データをより高精度に導出できている。
【０１７２】
なお、本実施例では撮影画像の端部を含む影領域を、撮影画像に写っていない物体が生みだした影であると見做して除外領域と決定したが、撮影画像に既存の物体認識技術を適用し、立体物と認識した被写体に接していない影領域を除外領域と決定しても良い。更に、光源推定に用いたくない領域を、ＵＩ上でユーザが指定できるようにしても良い。
【０１７３】
以降のステップ３２０４〜ステップ３２０６は、実施例１に係る図５のフローチャートのステップ５０２〜ステップ５０４と同じ処理なのでここでは説明を省略する。
【０１７４】
ステップ３２０７において、光源データ導出部２０４は、取得した画像データ、被写体形状データ、撮像条件データ及び決定された初期光源データに基づいて、シーンに最適な光源データを導出する。本実施例の光源データ導出処理も基本的には実施例１に係る図９のフローチャートと同じであるが、ステップ９０３における処理が異なる。すなわち、本実施例においてＣＧ画像と撮像画像との誤差Δiを求める際には、除外領域以外の画素領域（撮像画像の全画素領域から除外領域を除いた画素領域）を用いて、ＣＧ画像との誤差Δiを求めることになる。
【０１７５】
ステップ３２０８において、光源データ出力部２０６は、導出された光源データを出力する。
【０１７６】
以上のとおり、本実施例に係る発明によれば、撮像画像内の影領域を除外して光源推定に用いないことで、より高精度に光源データを導出できる。
【実施例９】
【０１７７】
実施例８では、撮像画像に写る影領域の内、画像の端部に掛かっている影領域を光源推定に用いない除外領域とした。しかし、斜めから光が当たる夕日の撮影シーンや、画像の端部に主要な被写体が写っている撮影シーン等では、撮像画像内に写る主要な被写体が生みだす影までもが画像の端部に掛かってしまい、適切に除外領域を決定することが困難となる。そこで、上記のような撮影シーンで撮像された画像からも除外領域を適切に決定できるよう、初期光源データを用いて除外領域を決定する態様について、実施例９として説明する。なお、他の実施例と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【０１７８】
図３７は、本実施例に係る光源推定部１１４の内部構成を示す機能ブロック図である。実施例８に係る光源推定部１１４（図３１参照）との大きな違いは、除外領域決定部３６０１の配置（他の各部との関係）である。すなわち、本実施例における除外領域決定部３６０１は、画像データ取得部２０１からの画像データだけでなく、被写体形状データ、撮像条件データ、初期光源データをも取得し、除外領域の決定に使用する。
【０１７９】
図３８は、本実施例における光源推定処理の流れを示すフローチャートである。
【０１８０】
ステップ３８０１において、画像データ取得部２０１は、所定の画像処理が施された画像データを信号処理部１０３から取得する。取得した画像データは、光源データ導出部２０５及び除外領域決定部３６０１に送られる。
【０１８１】
ステップ３８０２において、被写体形状データ取得部２０２は、被写体の形状データを取得する。取得した被写体形状データは、光源データ導出部２０４及び除外領域決定部３６０１に送られる。
【０１８２】
ステップ３８０３において、撮像条件データ取得部２０３は、操作部１１１等から撮像条件データを取得する。取得した撮像条件データは、初期光源データ決定部２０４、光源データ導出部２０５及び除外領域決定部３６０１に送られる。
【０１８３】
ステップ３８０４において、初期光源データ決定部２０４は、取得された撮像条件データに対応する初期光源データを、ＲＯＭ１０８等に保存されている光源データテーブルを参照して決定する。
【０１８４】
ステップ３８０５において、除外領域決定部３６０１は、取得した画像データ、初期光源データ、被写体形状データ及び撮像条件データに基づいてレンダリングを行い、ＣＧ画像を生成する。図３９は、レンダリングによって生成されたＣＧ画像の一例を示す図である。画面中央にある立方体の生みだす影が画像右下の端部に掛かっている。
【０１８５】
ステップ３８０６において、除外領域決定部３６０１は、ステップ３８０１で取得した撮像画像とステップ３８０５で生成されたＣＧ画像のそれぞれに対し、影領域抽出処理を行う。影領域の抽出については実施例８で説明したとおりである（図３２のフローチャートのステップ３２０２を参照。）。
【０１８６】
ステップ３８０７において、除外領域決定部３６０１は、撮像画像内の各影領域に対して、ＣＧ画像の影領域と重なる影領域の面積の割合Pを算出する。そして、算出された割合Ｐが所定の閾値Pth（例えば、Pth = 0.5）より小さいかどうか判定しP < Pthを満たす影領域を光源推定に用いない除外領域と決定する。図４０は、本実施例における除外領域の決定の過程を説明する図である。図４０において、撮像画像における影領域４００１についてはＣＧ画像における影領域４００３と重なる割合Ｐは0.85となる。一方、撮像画像における影領域４００２についてはＣＧ画像内に対応する影領域が存在しないので割合＝0となる。したがって、この場合、撮像画像における影領域４００１は画像右下の端部に掛かっているものの、算出された割合Ｐが閾値Pth（0.5）よりも大きいため除外領域とは決定されず、影領域４００２のみが除外領域として決定されることになる。
【０１８７】
ステップ３８０８において、光源データ導出部２０５は、取得した画像データ、被写体形状データ、撮像条件データ及び決定された初期光源データに基づいて、シーンに最適な光源データを導出する。本実施例の光源データ導出処理は、実施例８における図３２のフローチャートのステップ３２０７と同様である。すなわち、ＣＧ画像と撮像画像との誤差Δiを求める際に、除外領域以外の画素領域（撮像画像の全画素領域から除外領域を除いた画素領域）を用いて、ＣＧ画像との誤差Δiを求めることになる。
【０１８８】
ステップ３８０９において、光源データ出力部２０６は、導出された光源データを出力する。
【０１８９】
以上のとおり、本実施例に係る発明によれば、斜めから光が当たる夕日の撮影シーンや撮像画像の端部に被写体が写っている撮影シーン等で撮像された画像からでも、精度の高い光源データの導出が可能となる。
【実施例１０】
【０１９０】
実施例１では、光源推定の演算の初期値を決定する際に撮像条件データを用いる態様について説明した。次に、光源推定の演算において複数の解の候補が見つかった場合に、撮像条件データを用いて、一つの光源データを決定する態様について、実施例１０として説明する。なお、他の実施例と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【０１９１】
図４２は、本実施例に係る、光源推定を行う情報処理システムのシステム構成例を示す図である。光源推定装置４２００はＰＣ等であり、実施例１における光源推定部１１４に概ね相当する。本実施例に係る光源推定装置４２００には、最適光源データ決定部４２０１が存在する。この最適光源データ決定部４２０１は、光源データ導出部２０５が導出する複数の解の候補の中から、撮像条件データに基づいて一つの光源データを決定する。
【０１９２】
図４３は、本実施例における光源推定処理の流れを示すフローチャートである。
【０１９３】
ステップ４３０１において、光源推定装置４２００の画像データ取得部２０１は、所定の画像処理が施された画像データを、不図示のカメラ等から取得する。取得した画像データは、光源データ導出部２０５に送られる。  
【０１９４】
ステップ４３０２において、光源推定装置４２００の被写体形状データ取得部２０２は、被写体形状データが格納されたＨＤＤ（不図示）等から、被写体形状データを取得する。
【０１９５】
ステップ４３０３において、光源推定装置４２００の撮像条件データ取得部４０３は、不図示のカメラ等から撮像条件データを取得する。取得した撮像条件データは、光源データ導出部２０５に送られる。
【０１９６】
ステップ４３０４において、光源データ導出部２０５は、被写体形状データに基づいて光源データを導出する。この導出の際に用いられる推定アルゴリズムは、複数の候補解を導出する。例えば、数式（３）に記載されている光源データの更新をしていくことにより解を見つける場合、例えば、遺伝的アルゴリズムを用いる事が考えられる。この場合、複数の解が探索され、それぞれが光源データの候補解となる。
【０１９７】
ステップ４３０５において、ステップ４３０４で得られた複数の候補解の中から、一つの候補解を最適光源データとして決定する。この決定には、例えば、図７（ａ）〜（ｄ）に記載されている光源データを利用する。最適光源データ決定部４２０１は、ＷＢ（曇り）で撮像された画像データに対しては複数の候補解の中から、図７（ａ）に記載されている光源データと最も近い候補解を最適光源データとして決定する。最も近い候補解の決定に際しては、例えば、二乗誤差を評価値として決定する。
【０１９８】
ステップ４３０６において、ステップ４３０５で決定された最適光源データを出力する。
【０１９９】
以上の通り本実施例では、光源推定の演算において複数の解の候補が見つかった場合に、撮像条件データを用いて、一つの光源データを決定することが可能となる。
【０２００】
なお、本実施例では、複数の光源データの候補解の中から一つの候補解を最適光源データとして選択するとしたが、例えば、複数の候補解を適切な重みを付けて足し合わせても良い。即ち、撮像条件データを手掛かりに、重み係数を決定し、複数の候補解を足し合わせることにより、より好適な最適光源データを導出することが可能となる。
【０２０１】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
0006045378.tif 000008
【図２】
0006045378.tif 000009
【図３】
0006045378.tif 000010
【図４】
0006045378.tif 000011
【図５】
0006045378.tif 000012
【図６】
0006045378.tif 000013
【図７】
0006045378.tif 000014
【図８】
0006045378.tif 000015
【図９】
0006045378.tif 000016
【図１０】
0006045378.tif 000017
【図１１】
0006045378.tif 000018
【図１２】
0006045378.tif 000019
【図１３】
0006045378.tif 000020
【図１４】
0006045378.tif 000021
【図１５】
0006045378.tif 000022
【図１６】
0006045378.tif 000023
【図１７】
0006045378.tif 000024
【図１８】
0006045378.tif 000025
【図１９】
0006045378.tif 000026
【図２０】
0006045378.tif 000027
【図２１】
0006045378.tif 000028
【図２２】
0006045378.tif 000029
【図２３】
0006045378.tif 000030
【図２４】
0006045378.tif 000031
【図２５】
0006045378.tif 000032
【図２６】
0006045378.tif 000033
【図２８】
0006045378.tif 000034
【図２９】
0006045378.tif 000035
【図３０】
0006045378.tif 000036
【図３１】
0006045378.tif 000037
【図３２】
0006045378.tif 000038
【図３３】
0006045378.tif 000039
【図３４】
0006045378.tif 000040
【図３５】
0006045378.tif 000041
【図３６】
0006045378.tif 000042
【図３７】
0006045378.tif 000043
【図３８】
0006045378.tif 000044
【図３９】
0006045378.tif 000045
【図４０】
0006045378.tif 000046
【図４１】
0006045378.tif 000047
【図４２】
0006045378.tif 000048
【図４３】
0006045378.tif 000049
【図２７】
0006045378.tif 000050