(57)【要約】      （修正有）【課題】高周波成分を十分に含まない光源下においても、適切な質感データを推定する。【解決手段】光源情報が高周波成分を含む場合、フラッシュを用いて撮像した画像データから被写体の質感データを推定すると判定する。そして、判定に応じて被写体の被写体の反射率分布を指す質感データを推定する。質感データは、画像データ取得手段で取得した画像データと、形状データ取得手段で取得した形状データと、光源データ取得手段で取得した光源データとを用いて推定する。【選択図】図２
2014039126.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュを用いて撮像した画像データから被写体の質感データを推定するかを光源情報に基づいて判定する判定手段と、
前記判定手段による判定に応じて前記被写体の質感データを推定する質感データ推定手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記判定手段は、前記光源情報が高周波成分を含む場合、前記フラッシュを用いて撮像した画像データから前記被写体の質感データを推定すると判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記光源情報として、光源の位置、方向、輝度の少なくとも１つを含む光源データを取得する光源情報取得手段をさらに備えることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記光源情報取得手段は、前記被写体の周囲を撮像して得られる前記光源データを取得することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記光源情報として、前記被写体を撮像した際の撮像モードを示すデータを取得する光源情報取得手段をさらに備えることを特徴とする請求項１または２に記載の画像処理装置。
【請求項６】
前記光源情報として、フラッシュを用いずに前記被写体を撮像したプレ撮像画像データを取得する光源情報取得手段をさらに備えることを特徴とする請求項１または２に記載の画像処理装置。
【請求項７】
前記被写体を撮像した画像データを取得する画像データ取得手段と、
前記被写体の形状データを取得する形状データ取得手段と、
光源の位置、方向、輝度の少なくとも１つを含む光源データを取得する光源データ取得手段と、をさらに備え、
前記質感データ推定手段は、前記画像データ取得手段で取得した画像データと、前記形状データ取得手段で取得した形状データと、前記光源データ取得手段で取得した光源データとを用いて前記質感データを推定することを特徴とすることを特徴とする請求項１から６のいずれかに記載の画像処理装置。
【請求項８】
前記判定手段による判定に応じて前記被写体の光源データを推定する光源データ推定手段をさらに備えることを特徴とする請求項１または２に記載の画像処理装置。
【請求項９】
フラッシュを用いて前記被写体を撮像した第１の画像データと、フラッシュを用いずに前記被写体を撮像した第２の画像データとを取得する画像データ取得手段と、
前記第１の画像データと前記第２の画像データとの周波数次数の差に応じて前記質感データ推定手段と前記光源データ推定手段とに推定処理を行わせる制御手段と
をさらに備えることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記制御手段は、前記周波数次数の差が閾値より多い場合、前記質感データ推定手段に前記第１の画像データと前記第２の画像データとの差分である差分画像データを用いて前記質感データを推定させ、前記光源データ推定手段に前記推定した質感データと、前記第２の画像データとを用いて前記光源データを推定させる、ことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記制御手段は、前記周波数次数の差が前記閾値以下の場合、前記質感データ推定手段に前記第２の画像データを用いて前記質感データを推定させ、前記光源データ推定手段に前記第２の画像データを用いて前記光源データを推定させる、ことを特徴とする請求項９に記載の画像処理装置。
【請求項１２】
前記質感データ推定手段は、高周波成分を多く含む場合、高周波に対応する初期値を与えた最適化計算処理を行い、高周波成分を多く含まない場合、低周波に対応する初期値を与えた最適化計算処理を行うことを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
フラッシュを用いて撮像した画像データから被写体の質感データを推定するかを光源情報に基づいて判定する判定ステップと、
前記判定ステップによる判定に応じて前記被写体の質感データを推定する質感データ推定ステップと
を備えることを特徴とする画像処理方法。
【請求項１４】
コンピュータを、請求項１から１２のいずれかに記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、質感データを推定する画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【０００２】
撮像画像に対して撮像者の意図に沿った効果を与えるために、画像加工ソフトウェアなどによる加工処理を行う場合がある。例えば、光源の方向や輝度を変えたり、ＣＧ被写体をシーン中に合成するといった加工処理である。ここで、被写体の形状や質感、光源の情報が未知の場合、上記のような加工処理によって自然な加工画像を作成するためには、熟練者が時間をかけて加工を行う必要がある。しかし、形状、質感、光源の情報が既知の場合には、ＣＧレンダリング技術によって加工を自動化することが可能である（特許文献１）。
【０００３】
上記加工処理の自動化に必要な形状、質感、光源の情報を推定する技術が数多く提案されている。例えば、特許文献２では、多視点から撮像した画像と整合性がとれるように被写体表面にパッチを生成していくことで、被写体形状を推定する技術が開示されている。また、非特許文献１では、多視点画像の画素値とレンダリング方程式から算出される反射輝度との整合性がとれるように最適化計算を行うことで、形状、質感、光源を同時に推定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４０７８９２６号明細書
【特許文献２】米国特許出願公開第２００９／００５２７９６号明細書
【非特許文献】
【０００５】
【非特許文献１】"Incorporating the Torrance and Sparrow Model of Reflectance in Uncalibrated Photometric Stereo", A. Georghiades, ICCV, pp.816-823 (2003)
【非特許文献２】"signalprocessing framework for inverse rendering", Ravi Ramamoorthi, et al, Proc. ACM SIGGRAPH 2001, pp.117-128(2001)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、高周波成分を十分に含まない光源下（例えば、くもり空や物陰のように、局所的に輝度が高い光源がない環境）では、被写体の質感を推定できないことが知られている（非特許文献２）。もし、間違った質感を元に上記の自動加工処理を行うと、被写体の実際の質感を反映していない不自然な加工画像が生成されてしまう。
【０００７】
そこで本発明では、高周波成分を十分に含まない光源下においても、適切な質感データを推定することを目的とする。
【課題を解決するための手段】
【０００８】
本発明にかかる画像処理装置は、フラッシュを用いて撮像した画像データから被写体の質感データを推定するかを光源情報に基づいて判定する判定手段と、前記判定手段による判定に応じて前記被写体の質感データを推定する質感データ推定手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明は、高周波成分を十分に含まない光源下でも適切な質感データを得ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１における画像処理装置の各処理部の一例を示すブロック図である。
【図２】実施例１における画像処理装置の動作の一例を示すフローチャートである。
【図３】実施例１における極角と方位角で表現できる「方向」の一例を示す図である。
【図４】実施例１における撮像部の一例を模式的に示す図である。
【図５】実施例１におけるシーン要素データ取得部の各処理部の一例を示すブロック図である。
【図６】実施例１における入射極角と入射輝度との関係の一例を示す図である。
【図７】実施例１における周波数次数と入射輝度周波数係数との関係の一例を示す図である。
【図８】実施例１におけるフラッシュ要否判定部の各処理部の一例を示すブロック図である。
【図９】実施例１におけるフラッシュ要否判定部１１２の動作の一例を示すフローチャートである。
【図１０】実施例１における周波数次数と周波数次数の閾値との関係の一例を示す図である。
【図１１】実施例１における撮像モードと光源周波数との関係の一例を示す図である。
【図１２】実施例２における画像処理装置の動作の一例を示すフローチャートである。
【図１３】実施例２におけるシーン要素データ取得部の各処理部の一例を示すブロック図である。
【図１４】実施例２における質感・光源データ取得部の動作の一例を示すフローチャートである。
【図１５】実施例２における差分画像を用いた質感・光源データ推定処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して各実施例について説明する。
【実施例１】
【００１２】
＜装置構成＞
図１は、実施例１における画像処理装置の一例を示すブロック図である。撮像部１０１、１０２は、ズームレンズ、フォーカスレンズ、ぶれ補正レンズ、絞り、シャッター、光学ローパスフィルタ、ｉＲカットフィルタ、カラーフィルタ、ＣＭＯＳやＣＣＤなどのセンサ、及びフラッシュなどから構成され、被写体の光量を検知する。ここで、図１では撮像部が２つの例を示しているが、撮像部が２つの場合に限定されず、１つ以上の任意の数の撮像部を持つ画像処理装置に適用可能である。Ａ／Ｄ変換部１０３は、被写体の光量をデジタル値に変換する。信号処理部１０４は、上記デジタル値にホワイトバランス処理、ガンマ処理、ノイズ低減処理などを行い、デジタル画像データを生成する。Ｄ／Ａ変換部１０５は、上記デジタル画像データに対しアナログ変換を行う。シーン要素データ取得部１０６は、形状、光源、および質感などのシーン要素データの取得、並びに推定を行う。エンコーダ部１０７は、上記デジタル画像をＪｐｅｇやＭｐｅｇなどのファイルフォーマットに変換する処理を行う。メディアインターフェース１０８は、ＰＣその他メディア（例えば、ハードディスク、メモリーカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）につなぐためのインターフェースである。また、メディアインターフェース１０８はインターネットなど通信網へ接続されており必要に応じてデータの送受信を行う。ＣＰＵ１０９は、各構成の処理全てに関わり、ＲＯＭ１１０やＲＡＭ１１１に格納された命令を順に読み込み、解釈し、その結果に従って処理を実行する。また、ＲＯＭ１１０とＲＡＭ１１１は、その処理に必要なプログラム、データ、作業領域などをＣＰＵ１０９に提供する。フラッシュ要否判定部１１２は、シーン要素データ取得部１０６において上記質感データを推定するために、撮像時にフラッシュを焚く必要があるかどうかを判定する。撮像系制御部１１３は、フォーカスを合わせる、シャッターを開く、絞りを調節する、フラッシュを焚くなどの、ＣＰＵ１０９から指示された撮像系の制御を行う。操作部１１４は、ボタンやモードダイヤルなどが該当し、これらを介して入力されたユーザ指示を受け取る。キャラクタージェネレーション１１５は、文字やグラフィックなどを生成する。表示部１１６は、一般的には液晶ディスプレイが広く用いられており、Ｄ／Ａ変換部１０５やキャラクタージェネレーション１１５から受け取った撮像画像や文字の表示を行う。また、タッチスクリーン機能を有していても良く、その場合は、ユーザ指示を操作部１１４の入力として扱うことも可能である。なお、装置の構成要素は上記以外にも存在するが、本実施例の主眼ではないので、説明を省略する。
【００１３】
＜実施例１のフローチャート＞
図２は、図１に示す画像処理装置の実施例１における動作を示すフローチャートである。図２に示すフローチャートは、例えばＣＰＵ１０９がＲＯＭ１１０やＲＡＭ１１１に格納された命令を読み込み、解釈することによって実行される。以降では、図２を参照して画像処理装置の実施例１における動作を説明する。
【００１４】
ステップＳ２０１は光源情報取得処理であり、シーン要素データ取得部１０６が撮像シーンの光源情報を取得する。光源情報は、後述するようにフラッシュを焚く必要があるか否かを判定するために用いられる情報である。光源情報には光源データが含まれる。光源データの一例としては、光源の位置、方向、輝度などの照明情報に関するデータが挙げられる。以下では、図３に示すような極角と方位角で表現できる「方向」と、各方向から被写体に入射する「入射輝度」の組み合わせにより光源データが表されるものとして説明を行う。なお、光源データの表し方には様々な方法があり、図３で示す例に限られないことはもちろんである。実施例１においては、光源データの取得のために任意の方法を用いてよい。光源データの取得方法は本実施例の主眼ではないため、詳細な説明は省略するが、鏡面球を撮像した画像データ、もしくは魚眼レンズを用いてシーンの周囲を撮像した画像データから光源データを取得する方法が知られている。
【００１５】
ステップＳ２０２で、フラッシュ要否判定部１１２が、ステップＳ２０１で取得した光源情報に基づいて、撮像時にフラッシュを焚く必要があるかどうかを判定する。フラッシュ要否判定部１１２の動作の詳細は後述する。
【００１６】
ステップＳ２０３で、撮像部１０１、１０２がフラッシュ要否判定部１１２の判定結果に応じて、フラッシュ有り撮像、もしくはフラッシュ無し撮像を行う。ここで、推定する質感データの精度を高めるために撮像部１０１、１０２は多視点から被写体を撮像することが望ましい。このような撮像部として、図４（ａ）のような多眼カメラや、図４（ｂ）のような複数台カメラ、あるいは図４（ｃ）のような撮像位置を変えながら撮像ができるビデオカメラなどがある。図４（ｃ）の場合は、ビデオカメラで撮像した動画の複数フレームを抽出した画像が多視点画像データとなる。なお、１つの視点からの撮像画像でも、大まかな質感は取得できるため、本実施例は多視点撮像のできる撮像部に限定されない。
【００１７】
ステップＳ２０４で、シーン要素データ取得部１０６が被写体の形状データを取得する。形状データは、外部データの入力を用いても良いし、例えば例えば多視点から撮像した画像と整合性がとれるように被写体表面にパッチを生成していくことで、形状データを算出して取得してもよい。
【００１８】
ステップＳ２０５は質感データ推定処理であり、シーン要素データ取得部１０６が被写体の質感データを推定する。ここで、質感データとは、被写体の反射率分布を指す。反射率分布を表すモデルとして例えば、以下の式で表されるＢＲＤＦ(Bidirectional Reflectance Distribution Function)がある。
【００１９】
【数１】
2014039126.tif 000003
【００２０】
ここで、θiは入射極角、φiは入射方位角、θrは反射極角、φrは反射方位角、Lは入射輝度、Rは反射輝度であり、それぞれの角度は形状データに含まれる「法線方向」とのなす角度である。なお、以下では、ＢＲＤＦモデルにより質感データが表されるものとして説明を行うが、本実施例はこれに限定されない。ＢＳＳＲＤＦ(Bidirectional Scattering Surface Reflectance Distribution Function)など、任意の反射モデルに適用することが可能である。
【００２１】
＜シーン要素データ取得部１０６の詳細＞
図５は、シーン要素データ取得部１０６の各処理部を示すブロック図である。図４のステップＳ２０５の質感データの推定処理について図５を参照して説明する。実施例１では、撮像画像データ取得部５０１で取得した撮像画像データ、形状データ取得部５０２で取得した形状データ、光源データ取得部５０３を通じて取得した光源データを用いて、質感データ取得部５０４が被写体の質感データを推定する。以下では、質感データの推定処理の詳細について説明する。
【００２２】
まず、形状、質感、光源と撮像画像の画素値の関係について説明する。反射角（θr、φr）の反射光を受光する画素の画素値Iは、以下の式から算出される。
【００２３】
【数２】
2014039126.tif 000004
【００２４】
【数３】
2014039126.tif 000005
【００２５】
ここで、αは輝度から画素値への変換係数である。この変換係数αは測定などによって取得可能である。具体的には、輝度計で計測済みの光源を撮像し、その撮像画像の画素値と輝度計により測定した輝度の関係からαを算出すればよい。
【００２６】
次に、質感推定の方法について説明する。本実施例では、光源データはメディアインターフェース１０８を通じて光源データ取得部５０３が取得しているので、式2、3の中で、入射輝度L（光源データ）は、全ての入射極角θiと入射方位角φiについて既知である。また、画素値Iは撮像部１０１、１０２の画素数の分だけ既知である。これら入射輝度Lと画素値Iとの整合性がとれるようなＢＲＤＦを最適化計算により算出するというのが質感データの基本的な推定方法である。しかし、入射極角θi、入射方位角φi、反射極角θr、反射方位角φrの全組み合わせでＢＲＤＦを算出することは現実的に困難である。そこで、非特許文献1記載の技術のように、ＢＲＤＦがパラメトリックモデルで表現できると仮定し、そのモデルのパラメータを求めるという方法で質感を推定するのが一般的である。なお、本実施例は質感推定の方法には依存しないため、上記以外の任意の質感推定方法を用いてよい。また、最適化計算の初期値は任意であるが、実際の質感データに近い初期値を設定するのが望ましい。
【００２７】
＜光源周波数＞
本実施例の主眼は、光源が高周波成分を十分に含んでいない場合に、「質感推定が困難であり、フラッシュを焚く必要がある」と判定する点である。以下では、光源の周波数について説明する。
【００２８】
図６は、太陽光（図６（ａ））とくもり空（図６（ｂ））について、入射極角θiと入射輝度Lとの関係を示す図である（説明の簡略化のため、入射方位角φiは固定としている）。また、図７は、太陽光（図７（ａ））とくもり空（図７（ｂ））について、周波数次数fと入射輝度周波数係数L'との関係を示す図である。ここで、周波数次数fは周波数の高低を表し、入射輝度周波数係数L'は入射輝度Lを周波数変換した結果を表す。入射輝度Lを周波数変換する方法は任意だが、例えば、非特許文献２記載の球面調和展開、およびウェーブレット展開を用いればよい。以下では、これら図６と図７とを参照して、光源の周波数について説明する。
【００２９】
図６（ａ）を見ると、局所的に入射輝度Lが高くなっている。これは、太陽のある方向だけ極端に入射輝度Lが高くなっていることを表している。このように局所的に入射輝度Lが高くなる方向がある場合、光源は高周波成分を多く含む。逆に、図６（ｂ）はくもり空であり、局所的に入射輝度Lが高くなる方向がない。このような場合、光源は高周波成分を十分に含まない。この差が図７に現れており、図７（ａ）の方が図７（ｂ）よりも高周波成分を多く含んでいることが分かる。
【００３０】
＜光源周波数と質感推定成否、およびフラッシュ要否の関係＞
以下、光源周波数と質感推定の成否、およびフラッシュ要否の関係について説明する。まず、光源が高周波成分を十分に含んでいないと質感推定が困難である理由を、金属のような高光沢な質感とプラスチックのような低光沢な質感を例にして説明する。高光沢被写体と低光沢被写体とを撮像した画像を比較すると、光源の写り込み方が大きく異なる。具体的には、高光沢被写体を撮像した画像では光源がくっきりと写り込み、低光沢被写体を撮像した画像では光源がぼんやりと写り込む。この光源の写り込み方の違いから被写体が高光沢か低光沢かを判断することができる。しかし、光源が高周波成分を十分に含んでいない場合、つまり光源自体がぼんやりしている場合は、高光沢被写体と低光沢被写体のどちらを撮像しても写り込みがぼんやりとしてしまう。このように撮像画像の光源の写り込み方に差が現れなくなるため、質感データの推定が困難となる。以上が、光源が高周波成分を十分に含まない場合に質感データの推定が困難となる理由である。
【００３１】
以下では、式２を周波数変換することで、上記の理由を理論的に説明する。式２を周波数変換すると、以下の式に変形することができる（式変形の詳細は非特許文献2に記載）。
【００３２】
【数４】
2014039126.tif 000006
【００３３】
ここで、B'はBRDFを周波数変換した結果（以後、BRDF周波数係数と呼ぶ）、βはどの周波数変換を行ったかにより異なる変換係数である。
【００３４】
続けて、光源が高周波成分を十分に含んでいないと質感推定が困難となる理由を、式４を参照して理論的に説明する。光源が高周波成分を十分に含んでいない場合、入射輝度周波数係数L'は大きなfについてゼロとなる。すると、BRDF周波数係数B'が大きなfについて非ゼロの値を持っていても、画素値Iにその影響が反映されないことが式４から分かる。質感推定は画素値Iを参照して行うため、上記のようにBRDF周波数係数B'の影響が画素値Iに反映されない場合、質感推定が困難となる。以上が、光源が高周波成分を十分に含んでいないと質感推定が困難となる理由である。
【００３５】
なお、BRDF周波数係数B'が大きな周波数次数fで非ゼロの値を持たない場合、すなわち、被写体が低光沢である場合では、入射輝度周波数係数L'の値に関わらず、質感推定が可能である。すなわち、質感推定の目的となるBRDF周波数係数B'が大きな周波数次数fで非ゼロの値を持たない場合、入射輝度周波数係数L'が大きな周波数次数fについてゼロであっても、BRDF周波数B'の全ての情報が画素値Iに反映される。よって、質感推定が可能となる。つまり、入射輝度周波数係数L'がどのくらい大きな周波数次数fまで非ゼロの値を持っている必要があるかは、BRDF周波数係数B'に依存する。
【００３６】
＜フラッシュ要否判定部１１２のフローチャート＞
図８はフラッシュ要否判定部１１２の各処理部を示すブロック図である。また、図９はフラッシュ要否判定部１１２の動作を示すフローチャートである。以降では、図９を参照して、本実施例の主眼であるフラッシュ要否判定部１１２の動作の流れを説明する。
【００３７】
ステップＳ９０１で、光源周波数変換部８０１が光源データを周波数変換する。周波数変換の方法は上記の通りである。
【００３８】
ステップＳ９０２で、フラッシュ要否決定部８０２が、光源が高周波成分を十分に含むかを判定する。判定方法は後述する。もし、十分に含んでいれば、ステップＳ９０３で「フラッシュは不要」であると決定し、十分に含んでいなければ、ステップＳ９０４で「フラッシュは必要」であると決定する。
【００３９】
＜フラッシュ要否判定処理の詳細＞
図１０は、周波数次数fと周波数次数の閾値tとの関係を示す図である。以降では、図１０を参照して、光源が高周波成分を十分に含むかどうか判定する方法を説明する。まず、周波数次数fに固定閾値を設ける方法について説明する。図１０（ａ）と図１０（ｂ）は異なる光源を周波数変換した場合の入射輝度周波数係数L'を表している。具体的には、図１０（ａ）では太陽光のような高周波を十分に含む光源、図１０（ｂ）ではくもり空のような高周波を十分に含まない光源をそれぞれ周波数変換している。光源が高周波成分を十分に含むかどうか判定するためには、図１０（ａ）と図１０（ｂ）に示すような周波数次数fの閾値tをあらかじめ決めておき、閾値tよりも小さい周波数次数fで入射輝度周波数係数L'が小さい値になるか確認すればよい。つまり、閾値tよりも小さい周波数次数fで入射輝度周波数係数L'が小さい値になれば高周波成分を十分に含まないと判定し、そうでなければ高周波成分を十分に含むと判定すればよい。なお、入射輝度周波数係数L'がどの程度小さい値になった時に高周波成分を十分に含まないと判定するかは、あらかじめ閾値を設定しておき、入射輝度周波数係数L'がその閾値よりも小さいかどうかで判定すればよい。
【００４０】
次に、周波数次数fに2つの閾値t1、t2を設けた図１０（ｃ）を参照して、周波数次数fに可変閾値を設ける方法について説明する。閾値t1、t2のうち、どちらの閾値を用いてフラッシュの要否を判定するのが適切かは、上記したようにBRDF周波数係数B'に依存する。そのため、BRDF周波数係数B'に応じて、どちらの閾値を用いるかを決定することができれば、適切な閾値でフラッシュ要否を判定できる。しかし、質感データが未知であることから、BRDF周波数係数B'も未知であり、BRDF周波数係数B'を直接閾値の決定のために用いることはできない。そこで、BRDF周波数係数B'を大まかに予測し、その予測を用いて、閾値を決定することを考える。例えば、物体認識技術を用いて、被写体の種類を認識し、その種類の被写体が持ちうる最も高周波なBRDF周波数係数B'を用いて閾値を決定すればよい。また、被写体の種類を撮像者に設定させ、その被写体の種類に適した閾値を設定してもよい。
【００４１】
以上が入射輝度周波数係数L'からフラッシュ要否を判定する方法の説明である。なお、本実施例は入射輝度周波数係数L'から直接フラッシュ要否を判定することに限定されない。以下では、入射輝度周波数係数L'以外からフラッシュ要否を判定する方法について説明する。
【００４２】
まず、撮像モードから光源周波数を予測し、その予測結果を用いてフラッシュ要否を判定する方法について説明する。ここで、撮像モードとは、「くもりモード」、「晴れモード」など、カメラの撮像設定を自動で決めるために用いるシーン情報を指す。本実施例では、撮像モードもフラッシュ要否を判定するために用いられるものであるので、光源情報と称することができる。本方法では、図１１に示すような撮像モードと光源周波数の関係をテーブルとして保持しておき、このテーブルを参照して、光源周波数からフラッシュ要否を判定する。なお、上記テーブルは各撮像モードに適合するような撮像環境において実際に光源周波数を算出することで作成することができる。また、撮像モードとフラッシュ要否の関係を直接テーブルとして保持しておいてもよい。
【００４３】
次に、フラッシュ要否を判定する他の方法として、本撮像の前にプレ撮像を行い、プレ撮像画像データが高周波成分を十分に含んでいるか否かに応じてフラッシュ要否を判定する方法を説明する。プレ撮像画像データもフラッシュ要否を判定するために用いられるものであるので、光源情報と称することができる。具体的には、プレ撮像画像に対して周波数変換を施し、その周波数係数I'（以後、撮像画像周波数係数と呼ぶ）が高周波成分を十分に含んでいる場合には「フラッシュは不要」であると判定し、十分に含んでいない場合には「フラッシュは必要」であると判定する。このような判定を行う理由は、式４から画素値Iが高周波成分を含まない場合には、入射輝度周波数係数L'かBRDF周波数係数B'のどちらかが大きなfについてゼロに近い値となっていると判断できるからである。つまり、入射輝度周波数係数L'が大きなfについてゼロに近い値になっている可能性があるため、「フラッシュは必要」であると判定する。なお、プレ撮像画像のダイナミックレンジが狭い場合に、プレ撮像画像が高周波成分を十分に含んでいないと判定してもよい。
【００４４】
なお、実施例１において撮像モードやプレ撮像画像データは、フラッシュ要否の判定に用いられる光源情報である。質感推定に用いる光源データについては、先に説明したように外部から取得した光源データを用いることができる。
【００４５】
以上説明したように、実施例１によれば、光源情報から撮像時にフラッシュが必要かどうかを判定し、必要に応じてフラッシュ撮像を行うことで、光源が高周波成分を十分に含まない場合でも質感データを得ることができる。
【実施例２】
【００４６】
実施例１では、外部から取得した光源データを用いて、質感データを推定する手法を説明した。実施例２では、本画像処理装置の撮像部を用いて光源データを取得し、質感データのみならず光源データをも推定する手法について説明する。
【００４７】
＜実施例２のフローチャート＞
図１２は図１に示す画像処理装置の実施例２における動作を示すフローチャートである。以降では、図１２を参照して画像処理装置の実施例２における動作を説明する。
【００４８】
ステップＳ１２０１で、フラッシュ要否判定部１１２が撮像時にフラッシュを焚く必要があるかどうかを判定する。フラッシュを焚く必要があるかどうかは、実施例１で説明したように、撮像モードから予測した光源周波数やプレ撮像画像の撮像画像周波数係数I'などの光源情報から判定すればよい。なお、実施例１で説明した光源情報の一例である、光源の位置、方向、輝度などの照明情報に関する光源データは実施例２では未知であるので、この光源データは、光源情報としてフラッシュ要否の判定には用いられない。
【００４９】
ステップＳ１２０２で、撮像部１０１、１０２がフラッシュ要否判定部１１２の判定結果に応じて撮像を行う。具体的には、フラッシュ要否判定部１１２が「フラッシュは不要」と判定した場合はフラッシュ無しで撮像を行い、「フラッシュは必要」と判定した場合はフラッシュ無しとフラッシュ有りでそれぞれ撮像を行う。すなわち、フラッシュを用いて被写体を撮像した第１の画像データと、フラッシュを用いずに被写体を撮像した第２の画像データとを取得する。なお、ステップＳ１２０１でプレ撮像を行った場合は、そのプレ撮像画像をフラッシュ無し撮像画像として利用してもよい。
【００５０】
ステップＳ１２０３で、シーン要素データ取得部１０６が被写体の形状データを取得する。形状データの取得方法は実施例１と同様であるため、説明を省略する。
【００５１】
ステップＳ１２０４で、シーン要素データ取得部１０６が被写体の質感データと光源データとを推定する。基本的には、式２のBRDFと入射輝度Lとを実施例１と同様の最適化計算により求めればよい。しかし、一般的に、式２を満たすBRDFと入射輝度Lの組み合わせは多数存在する。そのため、最適化計算の初期値が実際の質感データや光源データから離れていると、局所解に陥り、推定に失敗してしまう。そこで、最適化計算の初期値を実際の質感データや光源データに近いものにすることが重要となる。
【００５２】
＜実施例２におけるシーン要素データ取得部１０６のフローチャート＞
実施例２では、実施例１のように外部から光源データを取得するのではなく、フラッシュ有り撮像画像とフラッシュ無し撮像画像の比較結果から適切な推定方法と最適化計算の初期値を求めることで、光源データと質感データを両方推定する。図１３は、実施例２のシーン要素データ取得部の各処理部の一例を示す図である。実施例１と異なり、入力データは撮像画像データと形状データであり、これらのデータに基づいて質感データと光源データとが出力される。
【００５３】
図１４は実施例２における質感・光源データ取得部１３０３の動作を示すフローチャートである。以降では、図１４を参照して実施例２における質感・光源データ取得部１３０３の動作を説明する。
【００５４】
ステップＳ１４０１で、ステップＳ１２０２において、フラッシュ有りで撮像を行ったどうか判定する。
【００５５】
フラッシュ有りで撮像を行ったと判定した場合、ステップＳ１４０２で、フラッシュ有り撮像画像データとフラッシュ無し撮像画像データとを周波数変換する。
【００５６】
続けて、ステップＳ１４０３で、フラッシュ有り撮像画像データとフラッシュ無し撮像画像データの周波数を比較する。具体的には、フラッシュ無し撮像画像データの周波数係数I'1とフラッシュ有り撮像画像データの周波数係数I'2がそれぞれゼロに近い値となる最小の周波数次数f1_minとf2_minとを比較する。なお、どの程度ゼロに近い値となった時の周波数次数を比較するかについては、あらかじめ閾値を設け、その閾値よりも周波数係数I'が小さくなった時の周波数次数を比較すればよい。
【００５７】
f1_minとf2_minの差があらかじめ設定された閾値より大きい場合は、ステップＳ１４０４で、フラッシュ有り撮像画像とフラッシュ無し撮像画像の差分画像を用いて推定を行う。差分画像を用いた推定処理の詳細については後述する。
【００５８】
f1_minとf2_minの差が閾値以下の場合、もしくは、ステップＳ１４０１においてフラッシュ有りで撮像を行っていないと判定した場合は、ステップＳ１４０５で、最適化計算の初期値を算出する。具体的には、フラッシュ無し撮像画像が高周波成分を十分に含んでいる場合には、BRDFが高周波成分を十分に含む質感データを初期値とする。逆に、フラッシュ無し撮像画像が高周波成分を十分に含んでいない場合には、BRDFが高周波成分を十分に含まない質感データを初期値とする。このような初期値とする理由は、式2から、画素値Iが高周波成分を含む場合はBRDFも高周波成分を含み、画素値Iが高周波成分を含まない場合はBRDFも高周波成分を含まないと分かるからである。なお、上記初期値として具体的にどのような質感データを設定するかは任意である。例えば、金属などの高周波なBRDFとプラスチックなどの低周波なBRDFを実際に計測しておき、撮像画像の周波数に応じて、それらBRDFを質感データの初期値として設定すればよい。このように、高周波成分を多く含む場合、高周波に対応する初期値を与えた最適化計算処理を行い、高周波成分を多く含まない場合、低周波に対応する初期値を与えた最適化計算処理を行う。
【００５９】
続けて、ステップＳ１４０６で、フラッシュ無し撮像画像のみを用いて質感推定および光源推定処理を行う。質感推定処理は実施例1と同様である。また、画素値、形状データ、質感データが既知となっているので、式２を満たす入射輝度Ｌを最適化計算により求めることで光源データを推定できる。
【００６０】
なお、ここで、f1_minとf2_minの差が閾値以下の場合にフラッシュ無し撮像画像データのみを用いて質感を推定する理由を説明する。f1_minとf2_minが同じ場合、フラッシュ無し撮像画像データとフラッシュ有り撮像画像データとで、実施例1において説明した質感推定成否に違いが無いということになる。ということは、シーン中の光源はフラッシュが無くとも高周波成分を十分に含んでいたということになり、フラッシュ無し撮像画像のみから推定が可能だと分かる。以上が、f1_minとf2_minの差が小さい場合に、フラッシュ無し撮像画像のみを用いて推定を行う理由である。なお上記は、f1_minとf2_minの差が小さい場合に、フラッシュ有り撮像画像を用いて質感推定を行うことを排除する趣旨ではない。すなわち、f1_minとf2_minの差が小さい場合に、後述するように差分画像データを用いて質感推定を行っても良い。
【００６１】
＜差分画像を用いた質感・光源データ推定処理の詳細＞
図１５は、質感・光源データ取得部１３０３による差分画像データを用いた質感・光源データ推定処理の流れを示すフローチャートである。以降では、図１５を参照して差分画像データを用いた質感・光源データ推定処理について説明する。
【００６２】
ステップＳ１５０１で、差分画像データを生成する。差分画像データは、フラッシュ有り撮像画像データとフラッシュ無し撮像画像データの画素値の差を取ることで生成すればよい。ここで、差分画像データはフラッシュのみを光源としてシーンを撮像した画像データと同じとなるはずである。なぜなら、フラッシュ有り撮像画像データは元々シーン中にあった光源とフラッシュの両方を光源とした撮像画像データであり、フラッシュ無し撮像画像データは元々シーン中にあった光源のみを光源とした撮像画像データだからである。なお、フラッシュ有り撮像画像データとフラッシュ無し撮像画像データとの間でカメラ位置にずれがある場合は、差分画像データを生成する前に画像位置合わせ技術により、画像間の位置を合わせればよい。しかし、光源環境の異なる画像間で位置合わせを行うことは一般的に困難である。従って、三脚などに固定して撮像を行うか、フラッシュ有り撮像画像データとフラッシュ無し撮像画像データとをほぼ同時に撮像するなど、位置ずれが起こらないよう工夫することが望ましい。
【００６３】
ステップＳ１５０２で、差分画像データから質感データを推定する。ここで、フラッシュの情報が既知であれば、差分画像データの画素値、形状データ、フラッシュ（光源）情報から実施例１と同様に質感データを推定することができる。
【００６４】
ステップＳ１５０３で、フラッシュ無し撮像画像データから、フラッシュ無し撮影の際の光源データを推定する。ここで、ステップＳ１５０２において質感データを推定したことから、画素値、形状データ、質感データが既知となっている。そのため、式２を満たす入射輝度Ｌを最適化計算により求めることができる。
【００６５】
上記したように、質感データを推定する場合には画素値、形状データ、光源データが既知であり、光源データを推定する場合には画素値、形状データ、質感データが既知となっていることから、最適化計算の初期値により局所解に陥る心配は比較的少ない。そのため、初期値として任意の値を用いることができるが、実際の光源データや質感データに近い初期値を設定する方がより望ましい。
【００６６】
以上説明したように、実施例２によれば、未知の光源が高周波成分を十分に含まない場合に、フラッシュ有りとフラッシュ無しでそれぞれ撮像を行い、それらの撮像画像データから推定を行うことで、質感データと光源データとを両方推定することを可能とする。
【００６７】
＜その他の実施例＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014039126.tif 000007
【図２】
2014039126.tif 000008
【図３】
2014039126.tif 000009
【図４】
2014039126.tif 000010
【図５】
2014039126.tif 000011
【図６】
2014039126.tif 000012
【図７】
2014039126.tif 000013
【図８】
2014039126.tif 000014
【図９】
2014039126.tif 000015
【図１０】
2014039126.tif 000016
【図１１】
2014039126.tif 000017
【図１２】
2014039126.tif 000018
【図１３】
2014039126.tif 000019
【図１４】
2014039126.tif 000020
【図１５】
2014039126.tif 000021