(57)【要約】【課題】光源推定を行う際に処理時間を要している。【解決手段】被写体の形状データと該被写体の反射特性とを取得する。そして、取得した被写体の形状データと、該被写体の反射特性とに基づいて、光源マップの解像度を増減することで光源推定に用いる参照光源を決定する。【選択図】図４
2014102756.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.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１では各参照光源の重要さを考慮していない為、高精度に光源を推定する場合に参照光源の数が膨大になってしまい、推定処理に時間が掛かるという問題がある。
【０００８】
また、非特許文献２の手法を用いた場合、少ない数の参照光源で高精度に光源を推定できるが、全方向について各参照光源が重要かどうかを調べる為、推定処理時間が掛かるという問題がある。
【課題を解決するための手段】
【０００９】
本発明に係る画像処理装置は、被写体の形状データと該被写体の反射特性とを取得する取得手段と、前記取得手段で取得した被写体の形状データと、該被写体の反射特性とに基づいて、光源推定に用いる参照光源を決定する決定手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明では、被写体の形状と反射特性とを基に、被写体の反射特性に応じた参照光源を決定する事で、高速かつ高精度に撮像シーン内の光源を推定することができる。
【図面の簡単な説明】
【００１１】
【図１】実施例１の多眼方式の撮像装置の一例を示すイメージ図である。
【図２】実施例１のシステム構成の一例を示す図である。
【図３】実施例１の撮像部１０１〜１０９のシステム構成の一例を示す図である。
【図４】実施例１の画像処理部の一例を示すブロック図である。
【図５】実施例１における、推定する光源のイメージ図である。
【図６】従来手法の光源推定処理のイメージ図である。
【図７】実施例１の光源推定処理のイメージ図である。
【図８】実施例１の動作の一例を示すフローチャートである。
【図９】実施例１の被写体の反射特性を説明するイメージ図である。
【図１０】実施例１の参照光源決定部４０９の動作の一例を示すフローチャートである。
【図１１】実施例１の光源推定部４１０の動作の一例を示すフローチャートである。
【図１２】実施例１の直線ＯＨと正反射ベクトルｒｉを説明するイメージ図である。
【図１３】実施例１の被写体のポリゴンデータと反射特性とのイメージ図である。
【図１４】実施例１の参照光源決定部４０９が初期化した解像度データのイメージ図である。
【図１５】実施例１の直線ＯＨとポリゴンｉとの交差判定方法と正反射ベクトルｒｉの導出方法を説明するイメージ図である。
【図１６】実施例１の参照光源決定部４０９が決定した解像度データのイメージ図である。
【図１７】実施例１の参照光源決定部４０９が決定する参照光源のイメージ図である。
【図１８】実施例２の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して各実施例について説明する。
【実施例１】
【００１３】
本実施例では被写体の形状を取得する撮像装置として、撮像部をＮ個（本実施形態ではＮ＝９）配置した多眼方式の撮像装置を用いる。
【００１４】
図１は複数の撮像部を構成する多眼方式の撮像装置の一例を示している。９個の撮像部１０１〜１０９は３行３列の正方格子上に配置されている。すべての撮像部は筺体１１１の同一平面上に配置され、その光軸はすべて平行であり、配置された平面に垂直である。シャッターボタン１１０は撮像を制御するボタンであり、ユーザーがシャッターボタン１１０を押すことで、撮像が開始される。
【００１５】
図２は、撮像装置のシステム構成例を示す図である。撮像部１０１〜１０９は、被写体の光情報をセンサーで受光し、Ａ／Ｄ変換を施し、データ転送経路であるバス２１４にデジタルデータを出力する。フラッシュ２０１は、被写体に光を照射する。ＲＯＭ２０２とＲＡＭ２０３は、撮像や画像処理に必要なプログラム、データ、作業領域などをＣＰＵ２０４に提供する。ＣＰＵ２０４はＲＡＭ２０３をワークメモリとして、ＲＯＭ２０２やＲＡＭ２０３に格納されたプログラムを実行し、バス２１４を介して各構成を制御する。これにより、後述する様々な処理が実行される。
【００１６】
撮像装置制御部２０５は、フォーカスを合わせる、シャッターを開く、絞りを調節するなどの、ＣＰＵ２０４から指示された撮像系の制御を行う。操作部２０６は、ボタンやモードダイヤルなどが該当し、これらを介して入力されたユーザ指示を受け取る。ＣＧ生成部２０７は、文字やグラフィックなどを生成する。
【００１７】
表示部２０８は、一般的には液晶ディスプレイが広く用いられており、ＣＧ生成部２０７や後述のデジタル信号処理部２０９、画像処理部２１３から受け取った撮像画像データや文字データの表示を行う。また、タッチスクリーン機能を有していても良く、その場合は、ユーザ指示を操作部２０６の入力として扱うことも可能である。
【００１８】
デジタル信号処理部２０９は、撮像部１０１〜１０９で撮像されたデジタルデータのデジタル値にホワイトバランス処理、ガンマ処理、ノイズ低減処理などを行い、デジタル画像データを生成する。圧縮・伸張部２１０は、デジタル信号処理部２０９で処理された上記デジタル値をＪｐｅｇやＭｐｅｇなどのファイルフォーマットに変換する処理を行う。外部メモリ制御部２１１は、ＰＣその他メディア２１２（例えば、ハードディスク、メモリーカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）につなぐためのインターフェースである。
【００１９】
画像処理部２１３は、撮像部１０１〜１０９から得られたデジタル画像データ或いは、デジタル信号処理部から出力されるデジタル画像データを利用して新たな画像データを生成し、その結果をバス２１４へ出力する。
【００２０】
図３を用いて、撮像部１０１〜１０９の詳細を説明する。撮像部１０１〜１０９は、装着フィルター３０１、レンズ３０２、絞り３０３、シャッター３０４、光学フィルター３０５、センサー３０６などから構成され、被写体の光量を検知する。Ａ／Ｄ変換部３０７は被写体の光量をデジタル値に変換し、バス２１４にデジタルデータを出力する。
【００２１】
また、装置の構成要素は上記以外にも存在するが、本実施例の主眼ではないので説明を省略する。
【００２２】
図４は、本実施例に係る画像処理装置の一例を示すブロック図である。画像処理装置は、撮像装置の画像処理部であってもよいし、あるいは撮像装置で撮像した画像データを用いる別個の装置であってもよい。画像データ取得部４０４は、入力端子４０１から多視点で撮像した画像データ（多視点画像データ）を取得する。
【００２３】
同様に、カメラパラメータ取得部４０５は、入力端子４０２から撮像部のカメラパラメータを取得する。カメラパラメータは、例えば各カメラの焦点距離や光軸ずれを表す内部パラメータと、各カメラ位置を表す外部パラメータ等から成る。また、カメラパラメータは、画像データ取得部４０４が取得する画像データを撮像した撮像部のパラメータを少なくとも含むものである。
【００２４】
取得した撮像データは形状データ取得部４０６、反射特性取得部４０８、参照光源決定部４０９、および光源推定部４１０へ出力される。取得したカメラパラメータは、形状データ取得部４０６、および光源推定部４１０へ出力される。形状データ取得部４０６は、多視点で撮像した画像データから被写体の形状データを取得する。形状データは、被写体の表面形状を表す多数の３次元座標の集合で構成される。カメラパラメータが既知という条件の下、多視点画像から被写体の三次元形状データを生成する技術分野はMulti View Stereoと呼ばれており、多くの手法が知られている。例えばhttp://vision.middlebury.edu/mview/には数多くのMulti View Stereoに関するアルゴリズムが紹介されている。例えば、多視点画像データから特徴点を検出する。特徴点は画像の平坦（画素値が一様でない）部分であって、各特徴点の画像上での距離が近づきすぎないよう適宜間引かれて検出される。次に多視点画像データ中の任意の２枚の画像データについて対応する特徴点を検出する。具体的にはエピホーラ幾何に基づいて対応する特徴点の候補を計算し、特徴点候補の周辺の画像領域の類似度が高い場合に、かかる一組の特徴点を対応点とすることで形状データを取得する。
【００２５】
取得した形状データは、ポリゴン生成部４０７へ出力される。ポリゴン生成部４０７は、形状データ取得部４０６で取得した形状データから被写体のポリゴンデータを生成する。三次元空間中の点群からポリゴンを生成する手段も公知であり、M.KazhdanらによるPoisson surface reconstructionが知られている。生成したポリゴンデータは、反射特性取得部４０８、参照光源決定部４０９、および光源推定部４１０へ出力される。
【００２６】
反射特性取得部４０８は、画像データと、入力端子４０３から予め取得しておいた反射特性データとから、被写体のポリゴンデータに対応する反射特性を取得する。取得した反射特性は、参照光源決定部４０９、および光源推定部４１０へ出力される。
【００２７】
参照光源決定部４０９は、被写体のポリゴンデータおよび反射特性、並びにカメラパラメータから、被写体の反射特性に応じた参照光源を決定する。具体的には、反射特性に応じた光源マップの解像度に対応するように参照光源を決定する。決定される参照光源は、撮像シーン内の光源を少ない数で高精度に推定できるものとなる。詳細については後述する。決定した参照光源は、光源推定部４１０へ出力される。
【００２８】
光源推定部４１０は、画像データ、カメラパラメータ、被写体のポリゴンデータ、被写体の反射特性、および参照光源決定部４０９で決定した参照光源から、撮像シーン内の光源を推定する。推定した光源は、ＣＧ画像データ生成部４１１へ出力される。ＣＧ画像データ生成部４１１は、光源推定部４１０で推定した撮像シーン内の光源から、画像データを合成・加工処理したＣＧ画像データを生成する。生成したＣＧ画像データは、出力端子４１２から出力される。
【００２９】
各処理の説明に先立って、まず本実施例の効果について説明する。ＣＧの分野では一般的に半球状の画像を用いて撮像シーン内の光源を表現することが多く、本実施例でも撮像シーン内の光源を半球面を３６×９に均等分割した光源マップ画像で表す（図５（ａ））。更に、３６×９の光源マップ下に高光沢、低光沢の立方体と平面板とを配置し、図５（ｂ）の白枠で示す光源の環境下で立方体を斜め上から撮像した画像（図５（ｃ））を用いて、本実施形態と従来手法の光源推定時間を比較する。図５（ｂ）は、３６×９の光源マップを極角θ、方位角φに関して、縦、横方向に展開した光源マップである。光源推定にはメモリ４ＧＢ、Ｉｎｔｅｌ  Ｘｅｏｎ３．１７ＧＨｚのＣＰＵを搭載したＰＣを用いた。３６×９の光源マップを推定しようとすると、参照光源数が３６×９＝３２４と膨大な数になる。そこで従来手法では半球面を粗く１２×３に均等分割した光源マップ（図６（ａ））の各領域について更に３×３に細かく分割して光源推定を行い、どの参照光源が重要かどうかを全方向について調べる（図６（ｂ））。重要と判定した領域については細かく分割した光源マップを用い、重要でない領域については粗く分割した光源マップを用いて光源を推定する（図６（ｃ））と計算時間が１３２１秒となる。
【００３０】
一方、本実施形態では画像データ内に写る被写体の形状と反射特性とを取得する（図７（ａ））。更に、被写体表面の面法線に対してカメラ向きの正反射方向の参照光源（図７（ｂ））を、被写体の反射特性に応じて増減する（図７（ｃ））為、計算時間が９９秒と短い。以上より、本実施形態を用いると従来手法に比べて高速な光源推定が可能となる。
【００３１】
＜画像処理部２１３の動作＞
図８は、本実施例の画像処理方法を示すフローチャートである。図８のフローチャートに示す手順を記述したコンピュータで実行可能なプログラムをＲＯＭ２０２からＲＡＭ２０３上に読み込んだ後に、ＣＰＵ２０４によって該プログラムを実行することによって当該処理が実施される。
【００３２】
以下、図８に示す各処理について説明する。画像データ取得部４０４は、撮像部１０１〜１０９で撮像した画像データを取得する（ステップＳ８０１）。なお、画像データ取得部４０４は、撮像部１０１〜１０９で撮像した画像データを、外部装置などの他の装置を介して取得してもよい。取得した撮像画像データはＲＯＭ２０２またはＲＡＭ２０３等の記憶領域に記憶する。
【００３３】
カメラパラメータ取得部４０５は、撮像部１０１〜１０９のカメラパラメータを取得する（ステップＳ８０２）。取得したカメラパラメータは所定の記憶領域に記憶する。上述したように、カメラパラメータは各カメラの焦点距離や光軸ずれを表す内部パラメータと、各カメラ位置を表す外部パラメータ等から成る。なお、ステップＳ８０１とＳ８０２は逆の順序であっても、並列に行われても良い。
【００３４】
形状データ取得部４０６は、ステップＳ８０１で取得した画像データとステップＳ８０２で取得したカメラパラメータとから、被写体の形状データを取得する（ステップＳ８０３）。形状データ取得部４０６は、上述したＰａｔｃｈ−ｂａｓｅｄ Ｍｕｌｔｉｖｉｅｗ Ｓｔｅｒｅｏや、Ｓｔｒｕｃｔｕｒｅ Ｆｒｏｍ Ｍｏｔｉｏｎ等の形状推定アルゴリズムを用いて形状データを取得し、所定の記憶領域に記憶する。
【００３５】
ポリゴン生成部４０７は、ステップＳ８０３で取得した形状データから、ドロネー分割による領域分割やポアソン関数を用いた表面構成手法等を用いてポリゴンデータを生成する（ステップＳ８０４）。生成したポリゴンデータは、所定の記憶領域に記憶する。
【００３６】
反射特性取得部４０８は、画像データに対して既存の物体認識技術を適用する事により、ステップＳ８０４で生成したポリゴンデータに対応する反射特性を、予め所定の記憶領域に記憶しておいた反射特性データの中から取得する（Ｓ８０５）。例えば、反射特性取得部４０８は、画像データの被写体がサッカーボールと認識されると、予め記憶しておいた反射特性データからサッカーボールに対応する反射特性データを取得する。反射特性取得部４０８は、被写体であるポリゴンに関して取得した反射特性を、各ポリゴンに対応付けて所定の記憶領域に記憶する。本実施例では、被写体の反射特性が以下の式（１）に示すＰｈｏｎｇモデルと呼ばれる公知の反射モデル（図９（ａ））に従うものとし、反射特性取得部４０８は、式（１）内のＩｄ，Ｉｓ，ｓを反射特性として取得する。
Ｉ＝Ｉｄ＋ＩｓＣＯＳＳω      式（１）
【００３７】
Ｉはω方向の反射光強度、Ｉｄは拡散反射光強度、Ｉｓは鏡面反射光のピーク強度、ｓはＰｈｏｎｇモデルにおける反射光強度の変角特性を表すパラメータ、ωは正反射光の受光角度ω０を０°としたときの受光角度である。尚、本実施例では被写体となる平面板、低光沢、高光沢の立方体の反射特性Ｉｄ，Ｉｓ，ｓが、図９（ｂ）に示す値をとるものとする。すなわち、反射特性取得部４０８で各被写体について反射特性データから取得した反射特性が、図９（ｂ）に示す値であるものとする。カラー画像を用いる場合は同様の処理をＲ, Ｇ, Ｂの３チャンネルそれぞれについて行う。本実施例では簡単の為、白黒画像の１チャンネルの場合で説明する。
【００３８】
参照光源決定部４０９は、ステップＳ８０３で取得したカメラパラメータ、ステップＳ８０４で生成した被写体のポリゴンデータ、およびステップＳ８０５で取得した反射特性から、反射特性に応じて数を増減させた参照光源を決定する（ステップＳ８０６）。参照光源決定処理の詳細は図１０を用いて後述する。決定した参照光源は、所定の記憶領域に記憶する。光源推定部４１０は、画像データ、カメラパラメータ、被写体のポリゴンデータ、反射特性、およびステップＳ８０６で決定した参照光源から、撮像シーン内の光源を推定する（ステップＳ８０７）。本実施例では、撮像部１０５で撮像した画像データから光源推定する。光源の推定方法の詳細は後述する。推定した光源は、所定の記憶領域に記憶する。
【００３９】
ＣＧ画像データ生成部４１１は、ステップＳ８０７で推定した光源と、所定の記憶領域に記憶しておいた形状・反射特性が既知の仮想物体データとから、画像内に仮想物体を合成したＣＧ画像データを生成し、処理を終了する（ステップＳ８０８）。
【００４０】
＜参照光源決定部４０９の動作＞
以下では、ステップＳ８０６の参照光源決定処理の詳細について説明する。
【００４１】
本実施例では、光源推定に用いる撮像部１０５のカメラパラメータと、被写体のポリゴンデータと、被写体の反射特性とを用いて参照光源を決定する。具体的には、図１２のように、撮像部１０５の画角領域を画像データの画像サイズ２５６×２５６ｐｉｘｅｌに分割する。次に、カメラパラメータとポリゴンデータとに基づいて、撮像部１０５の光学中心Ｏと、分割したピクセル領域内のピクセル（ｕ，ｖ）内の中心Ｈ（ｕ，ｖ）と、を通る直線ＯＨと交差するポリゴンｉ上の交点Ｐｉを導出する。更に、カメラパラメータとポリゴンデータとに基づいて、ポリゴンｉの面法線ベクトルｎｉから、直線ＯＨに対する正反射方向の向きを表すベクトルｒｉ（以下、正反射ベクトルと呼ぶ）を導出する。そして、正反射ベクトルに対応する参照光源の解像度（光源マップの解像度）を、ポリゴンｉの反射特性ｓｉに応じて増減することで、参照光源を決定する。すなわち、参照光源を決定する処理は、光源マップの解像度を決定する処理ということもできる。尚、本実施例では、図１３に示すように、被写体はＮ（本実施例ではＮ＝３４）個の三角形ポリゴン（図１３（ａ））から成り、各ポリゴンに対応した反射特性（図１３（ｂ））が反射特性取得部４０８で取得できているものとする。
【００４２】
図１０のフローチャートを用いて参照光源決定処理の詳細について説明する。参照光源決定部４０９は、解像度データを初期化する（ステップＳ１００１）。解像度データは、光源マップの解像度を決定するためのデータである。本実施例では、解像度データに応じて参照光源の数を決定する。本実施例では、図１４のように、解像度データとして方位角方向（φ）を横、極角方向（θ）を縦にしたφＭ×θＭ（本実施例ではφＭ＝３６０，θＭ＝９０）のマトリクス状のデータを用いる。解像度データの（φ，θ）成分の値ｓ（φ，θ）には反射特性のうちの反射パラメータｓの値を入れるものとし、初期値として例えばｓ（φ，θ）＝２０を入力する。初期値のデータは任意の値を入れることができる。初期化した解像度データは所定の記憶領域に記憶する。参照光源決定部４０９は、ステップＳ１００２では、ピクセル（ｕ，ｖ）の中心Ｈ（ｕ，ｖ）のｖに対してｖ＝１に初期化する。同様に、ステップＳ１００３では、Ｈ（ｕ，ｖ）のｕに対してｕ＝１に初期化する。参照光源決定部４０９は、カメラパラメータに基づいて、撮像部１０５の光学中心Ｏと、ピクセル（ｕ，ｖ）の中心Ｈ（ｕ，ｖ）を通る直線ＯＨと平行な大きさ１のベクトルｃ（以下、視線ベクトルと呼ぶ）とを導出する。更に、以下の式（２）〜（６）を用いて、直線ＯＨがステップＳ８０４で生成した各ポリゴンと交差するか判定する（Ｓ１００４）。具体的にはまず、直線ＯＨを表す方程式（２）と、ポリゴンｉが作る平面の方程式（３）とから、式（４）を導出する。
Pi = x + tc                      式（２）
(Pi-Pi0)・ni = 0                 式（３）
【００４３】
【数１】
2014102756.tif 000003
【００４４】
ｘは撮像部１０５の光学中心Ｏを表す３×１ベクトル、Ｐｉは直線ＯＨとポリゴンｉ上の交点を表す３×１ベクトル、ｔは直線ＯＨを表す係数である（図１５（ａ））。また、Ｐｉｊ（ｊ＝０〜２）はポリゴンｉ内の３つの頂点を表す３×１ベクトル、ｎｉはポリゴンｉの面法線を表す大きさ１の３×１ベクトルである。式（４）右辺の分母ｃ・ｎｉ≠０かつｔ＞０であれば直線ＯＨがポリゴンｉが作る平面と交差する。ｃ・ｎｉ＝０又はｔ≦０の場合は、直線ＯＨがポリゴンｉが作る平面と交差しない。次に、式（４）でｃ・ｎｉ≠０かつｔ＞０を満たすポリゴンに対して、以下の式（５），（６）から３つの外積ｅｊ×ｄｊ（ｊ＝０〜２）を算出する。
【００４５】
【数２】
2014102756.tif 000004
【００４６】
【数３】
2014102756.tif 000005
【００４７】
ｅｊ（ｊ＝０〜２）は交点Ｐｉとポリゴンｉの各頂点Ｐｉｊを結ぶ線分を表す３×１ベクトル、ｄｊはポリゴンｉの各頂点Ｐｉｊを結ぶ線分を表す３×１ベクトルである（図１５（ｂ））。算出した３つの外積ベクトルｅｊ×ｄｊ（ｊ＝０〜２）が全て同じ向きであれば、直線ＯＨがポリゴン領域内で交差する。１つでも１８０°反対向きのベクトルが有る場合は、直線ＯＨがポリゴン領域内で交差しない。従って式（４）でｃ・ｎｉ≠０かつｔ＞０であり、更に外積ｅｊ×ｄｊ（ｊ＝０〜２）の３つのベクトルが全て同じ向きであれば、直線ＯＨとポリゴンｉがポリゴン領域内で交差すると判定し、ステップＳ１００５へ移行する。一方、式（４）でｃ・ｎｉ＝０又はｔ≦０であるか、外積ｅｊ×ｄｊ（ｊ＝０〜２）の３つのベクトルの内１つでも１８０°反対向きのベクトルが有る場合は、直線ＯＨがポリゴンと交差しないと判定し、ステップＳ１００８へ移行する。尚、直線ＯＨとポリゴン領域内で交差する条件を満たすポリゴンが複数ある場合は、式（４）で算出した係数ｔの値が小さい方（即ち撮像部１０５の光学中心Ｏに近い方）のポリゴンと交差するものとして処理することができる。
【００４８】
参照光源決定部４０９は、以下の式（７）に従い、ポリゴンｉの面法線ベクトルｎｉに対する直線ＯＨの正反射方向を表す３×１ベクトルｒｉ（図１５（ｃ））を導出する（ステップＳ１００５）。導出した正反射ベクトルｒｉは所定の記憶領域に記憶する。
ri = c - 2(ni・c)c          式（７）
【００４９】
参照光源決定部４０９は、ステップＳ１００４と同様にして、点Ｐｉを通り正反射ベクトルｒｉと平行な直線Ｐｉｒｉが各ポリゴンと交差しないかどうかを判定する（ステップＳ１００６）。直線Ｐｉｒｉとポリゴンが交差しない場合は、光源からの一次反射光が撮像部１０５に写っていると見なしてステップＳ１００７へ移行し、直線Ｐｉｒｉとポリゴンが交差する場合は、多重反射が起きていると見なしてステップＳ１００８へ移行する。本実施例では、多重反射が起きているポリゴンを光源推定に用いないものとする。参照光源決定部４０９は、ステップＳ１００５で導出した正反射ベクトルｒｉからカメラパラメータに基づいて正反射方向の方位角φ、極角θを導出する。更に、図１４に示す解像度データ上の（φ，θ）成分の値ｓ（φ，θ）を、ステップＳ１００４で導出した直線ＯＨと交差するポリゴンｉの反射特性ｓｉの値で上書き記憶する（ステップＳ１００７）。
【００５０】
ステップＳ１００８では、Ｈ（ｕ，ｖ）のｕに対してｕ＝ｕ＋１に更新する。参照光源決定部４０９は、Ｈ（ｕ，ｖ）のｕに対してｕ＞ｕＭ（本実施例ではｕＭ＝２５６（ｐｉｘｅｌ））を満たすかどうかを判定する（ステップＳ１００９）。ｕ＞ｕＭを満たす場合は、ステップＳ１０１０へ移行し、ｕ＞ｕＭを満たさない場合は、ステップＳ１００４に戻る。ステップＳ１０１０では、Ｈ（ｕ，ｖ）のｖに対して、ｖ＝ｖ＋１に更新する。
【００５１】
参照光源決定部４０９は、Ｈ（ｕ，ｖ）のｖに対してｖ＞ｖＭ（本実施例ではｖＭ＝２５６（ｐｉｘｅｌ））を満たすかどうかを判定する（ステップＳ１０１１）。ｖ＞ｖＭを満たす場合は、ピクセル領域内の全ての点について処理を終了したと判定し、ステップＳ１０１２へ移行する。ｖ＞ｖＭを満たさない場合は、ステップＳ１００３に戻る。
【００５２】
ピクセル領域内の全ての点に対して以上の処理を行うことにより、解像度データの各成分ｓ（φ，θ）には被写体の反射特性ｓｉの値が上書き記憶されることになる（図１６）。参照光源決定部４０９は、図１６に示す解像度データの各成分ｓ（φ，θ）の値に応じて、φＭ×θＭのデータ領域を分割する。更に、分割した各領域内の１つの領域のみに光源を持つ無限遠光源マップを参照光源として決定する（ステップＳ１０１２）。本実施例では図１７のように、解像度データ内の成分ｓ（φ，θ）＝２０を満たす領域（図１７（ａ）横線部）を、Ｐｈｏｎｇモデルにおける鏡面反射光成分の半値全幅３０（度／個）間隔で分割する。同様に、解像度データ内の成分ｓ（φ，θ）＝８１，１８１を満たす領域（図１７（ａ）縦線部、斜線部）も、その成分に応じた間隔で分割する。具体的には、解像度データ内の成分ｓ（φ，θ）＝８１，１８１を満たす領域を、それぞれ１５，１０（度／個）間隔で分割する。図１７からわかるように、高光沢に対応する被写体の面法線の正反射方向に対応する光源マップの領域（斜線部）の解像度は高くなっている。また、低光沢に対応する被写体の面法線の正反射方向に対応する光源マップの領域（縦線部）の解像度は、高光沢のものよりも低くなっている。これらの正反射方向に対応しない光源マップの解像度（横線部）は、低光沢のものよりも低くなっている。すなわち、これらの正反射方向に対応しない光源マップの解像度（横線部）は、各被写体の面法線の正反射方向に対応する領域よりも低くなっている。
【００５３】
分割された各領域は、左上から右下の順に番号を割り当てる（図１７（ｂ））。参照光源決定部４０９は、図１７（ｂ）のように分割した各領域１，２，・・・，６０の内１つ領域のみに光源を持つ計６０個の光源１，２，・・・，６０を参照光源として決定し、処理を終了する（図１７（ｃ））。
【００５４】
＜光源推定部４１０の動作＞
以下では、ステップＳ８０７の光源推定処理の詳細について、図１１のフローチャートを用いて説明する。
【００５５】
光源推定部４１０は、ステップＳ８０１で取得した画像データから、画像の画素値ｑｉを取得する（Ｓ１１０１）。本実施例では、撮像部１０５で撮像した画像データから光源推定を行う。本実施例の画像データのサイズは、上述したように２５６×２５６ｐｉｘｅｌであり、画像の左上から右下の順に各ピクセルの番号ｋが１，２，・・・，Ｔ（本実施例ではＴ＝２５６２）と割り振られている。取得した画素値は、番号ｉに対して昇順に並べたＴ×１ベクトルとして所定の記憶領域に記憶する（式（８））。
【００５６】
【数４】
2014102756.tif 000006
【００５７】
光源推定部４１０は、カメラパラメータ、被写体のポリゴンデータ、被写体の反射特性、ステップＳ８０６で決定した参照光源から、各参照光源（計６０個）が被写体を照射している光源環境下のＣＧ画像データ（計６０枚）を生成する（ステップＳ１１０２）。本実施例では、撮像部１０５を光学中心としたＣＧ画像データを生成し、所定の記憶領域に記憶する。ＣＧ画像データのサイズは、撮像した画像データと同じ２５６×２５６ｐｉｘｅｌとする。更に、ステップＳ１１０２で生成したＣＧ画像データから、任意の参照光源Ｌのみの光源環境下で生成したＣＧ画像における、ピクセルｋの画素値Ｒｋ（Ｌ）を取得する（ステップＳ１１０３）。取得した画素値Ｒｋ（Ｌ）は、以下の式（９）のように並べたＴ×ＬＭ行列Ｒ（本実施例ではＬＭ＝６０）として所定の記憶領域に記憶する。
【００５８】
【数５】
2014102756.tif 000007
【００５９】
ここで、光源推定の基本的性質である明るさの線形性について説明する。明るさの線形性とは、複数の光源下で観察される物体の明るさが各光源下の物体の明るさの線形和で表されるという性質のことである。この性質を用いると、図１７（ｃ）の無限遠光源マップで表される任意の光源環境は、各参照光源Ｌの線形和で表すことができる。従って、ステップＳ１１０１で取得した画像データの画素値と、ステップＳ１１０３で生成したＣＧ画像データの画素値との間に以下の式（１０）が成り立つ。
【００６０】
【数６】
2014102756.tif 000008
【００６１】
α１, α２, α３, ・・・, αＬＭは、各参照光源Ｌの輝度の重み付けを表す係数である。光源推定部４１０は、式（１０）の左辺と右辺の差分で表される評価関数ｆ（α１, α２, α３, ・・・, αＬＭ）に対し、最急降下法や共役勾配法等を用いて評価関数が最小となる参照光源係数α１〜αＬＭを導出する（ステップＳ１１０５）。光源推定部４１０は、導出した参照光源係数αＬを撮像シーン内の光源を表す光源として所定の記憶領域に記憶し、処理を終了する。
【００６２】
多眼方式の撮像装置で撮像した画像データに対し、以上説明した参照光源決定処理を行うことで、光源推定処理の高精度・高速化が可能となる。すなわち、本実施例では、カメラ位置、被写体の形状、および被写体の反射特性を基に、被写体表面の面法線に対してカメラ向きの正反射方向に対応する参照光源の数（光源マップの解像度）を被写体の反射特性に応じて増減する。かかる処理により、高速かつ高精度に光源推定することができる。
【００６３】
本実施例では多眼方式の撮像装置を用いて多視点の画像データを取得する例を説明したが、被写体を囲むように配置した複数台の撮像装置や、撮像装置又は被写体を動かしながら動画撮像する撮像装置で多視点の画像データを取得しても良い。
【００６４】
また、反射特性を取得する際に既存の物体認識技術を用いて被写体に対応する反射特性を記憶領域から取得する方法を用いる例を説明したが、多視点画像データを用いて反射特性を推定しても良い。例えば、被写体の反射特性がＰｈｏｎｇモデルに従うと仮定し、多視点で撮像した画像データで取得したＲＧＢ画素値から被写体の反射特性を推定しても良い。また、Ｔｏｒｒａｎｃｅ−Ｓｐａｒｒｏｗモデルや、Ｗａｒｄモデル等の反射モデルを用いても良く、特定の反射モデルに限定するものではない。
【００６５】
また、無限遠光源からの１次反射光が画像データ内に写るポリゴンを用いて参照光源を決定したが、多重反射光が写るポリゴンを用いても良い。例えば、多重反射光が写るポリゴンについては、反射する複数のポリゴンの内、一番低光沢な反射特性に応じて参照光源を増減させれば良い。
【００６６】
また、推定する光源として半球面を３６×９に均等分割した無限遠光源マップを用いたが、撮像シーン内の光源環境を表現する光源であれば良く、分割数、分割方法や、無限遠光源であることを限定するものではない。例えば、光源として、半球面を等立体角で分割するｇｅｏｄｅｓｉｃ  ｄｏｍｅや、被写体が仮想的な立方体の中央に配置していると見なし、撮像シーン内の光源を立方体の各面で表現するキューブマップを用いても良い。また、様々な空間周波数の正弦波を基底関数に持つ球面調和関数や、有限長波形を基底関数に持つウェーブレット関数を用いても良い。
【００６７】
尚、本実施例では、撮像画像に形状・反射特性が既知の仮想物体を合成したＣＧ画像データを生成する例を説明したが、撮像シーン内の光源情報を用いた画像処理であれば良く、特に仮想物体の合成処理に限定するものではない。例えば、撮像画像の光源環境を変化させたＣＧ画像データを生成しても良い。
【００６８】
また、本実施例では、多視点画像データを取得して形状データを取得する例を説明した。しかしながら、被写体の形状データを多視点画像データを用いずに別途取得できる場合には、多視点画像データを用いなくても良い。また、本実施例では、形状データからポリゴンを生成する例を説明したが、ポリゴンデータを別途取得できる場合には、形状データからポリゴンを生成する処理を行わなくても良い。
【００６９】
また、本実施例では、被写体として高光沢の立方体と、低光沢の立方体と、平面板とを配置した例について説明した。しかしながら、必ずしも高光沢と低光沢の立方体を用意しなくてもよい。本実施例では、被写体の反射特性に応じて光源マップの解像度を決定するので、例えば高光沢、低光沢を問わず、１つの被写体を用いてもよい。
【実施例２】
【００７０】
実施例１ではカメラパラメータと被写体のポリゴンデータとから、被写体表面の面法線に対するカメラ向きの正反射方向を導出し、正反射方向の参照光源の数を被写体の反射特性に応じて増減する方法について説明した。
【００７１】
本実施例では、反射特性が異なる複数の被写体が同じ正反射方向を持つ場合において、高光沢な反射特性に対応する参照光源を選択し、決定する方法について説明する。
【００７２】
本実施例の光源推定処理の流れは、ステップＳ８０６以外は実施例１で図８を用いて説明した内容と同じである。以下、図１８を用いて本実施例における光源推定処理の詳細を説明する。
【００７３】
ステップＳ１８０１〜ステップＳ１８０６は実施例１のステップＳ１００１〜ステップＳ１００６と同じである為、説明を省略する。ステップＳ１８０７において、参照光源決定部４０９は、正反射方向ベクトルｒｉから正反射方向の方位角φ、極角θを導出する。更に、図１４に示す解像度データ上の（φ，θ）成分に既に記憶されている値ｓ（φ，θ）と、直線ＯＨと交差するポリゴンｉの反射特性ｓｉとを比べて大きい方の値を上書き記憶する。ステップＳ１８０８〜ステップＳ１８１２は実施例１のステップＳ１００８〜ステップＳ１０１２と同じである為、説明を省略する。
【００７４】
以上説明したように、反射特性が異なる複数の被写体が同じ正反射方向を持つ場合において、高光沢な反射特性に対応する参照光源を選択し、決定することで、高精度な光源推定が可能となる。
【００７５】
＜その他の実施例＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014102756.tif 000009
【図２】
2014102756.tif 000010
【図３】
2014102756.tif 000011
【図４】
2014102756.tif 000012
【図８】
2014102756.tif 000013
【図９】
2014102756.tif 000014
【図１０】
2014102756.tif 000015
【図１１】
2014102756.tif 000016
【図１２】
2014102756.tif 000017
【図１３】
2014102756.tif 000018
【図１４】
2014102756.tif 000019
【図１５】
2014102756.tif 000020
【図１６】
2014102756.tif 000021
【図１７】
2014102756.tif 000022
【図１８】
2014102756.tif 000023
【図５】
2014102756.tif 000024
【図６】
2014102756.tif 000025
【図７】
2014102756.tif 000026