(57)【特許請求の範囲】
【請求項１】
表面反射率が略一定である部分を含む３次元形状を有する物体を、実質的な単一光源下において撮影することにより得られる画像に基づいて、前記光源の方向と前記物体の３次元形状とを推定する推定方法であって、
前記画像上における前記物体の画像を表す物体画像データと該物体の一般的な３次元形状を表す３次元形状データとの位置合わせを行った後の前記３次元形状データにより表される近似物体上における前記物体の前記表面反射率が略一定である部分に対応する部分に、複数の測定点を設定し、
任意の複数方向に設定した仮想光源から前記複数の測定点へ向かう方向ベクトルと、該複数の測定点における法線ベクトルとのなす余弦を算出し、
該余弦と、前記複数の測定点に対応する前記物体画像データのデータ値との関係を前記複数の仮想光源の方向毎にプロットし、
前記プロットが略直線となる仮想光源の方向を仮の光源方向と推定し、
前記仮の光源方向を求めたプロットが前記直線上に位置するように、該プロットにおける前記余弦を修正し、
前記測定点における前記方向ベクトルと前記法線ベクトルとのなす余弦が、前記修正された余弦に近づくように該測定点の位置を修正して修正測定点を取得し、
該修正測定点を新たな前記測定点とする前記余弦の算出、前記プロット、前記仮の光源方向の推定、前記余弦の修正および前記修正測定点の取得を所定回数繰り返し、
該繰り返し処理の結果得られる前記仮の光源方向を前記光源の方向と推定し、
該繰り返し処理の結果得られる修正測定点の位置により定められる形状を、前記物体の３次元形状と推定することを特徴とする推定方法。
【請求項２】
前記複数の測定点における前記物体画像データのデータ値に基づいて、前記複数の測定点に鏡面反射する鏡面反射測定点が存在するか否かを判断し、
前記鏡面反射測定点が存在する場合には、該鏡面反射測定点に基づいて、前記光源の方向である蓋然性が高い前記仮想光源の方向を選択し、
該選択された方向における仮想光源により、前記余弦の算出を行うことを特徴とする請求項１記載の推定方法。
【請求項３】
前記仮の光源の方向の推定を、最小二乗法を用いた評価関数に基づいて、前記プロットが略直線となるか否かを判断することにより行うことを特徴とする請求項１または２記載の推定方法。
【請求項４】
前記所定回数は、前記評価関数が所定値以下となるまでの回数であることを特徴とする請求項３記載の推定方法。
【請求項５】
前記光源の方向の推定に用いられたプロットにより設定される直線の傾きに基づいて、前記光源の強度を推定することを特徴とする請求項１から４のいずれか１項記載の推定方法。
【請求項６】
前記物体が人物の顔であることを特徴とする請求項１から５のいずれか１項記載の推定方法。
【請求項７】
前記３次元形状データが前記物体の３次元形状を表すポリゴンデータであることを特徴とする請求項１から６のいずれか１項記載の推定方法。
【請求項８】
表面反射率が略一定である部分を含む３次元形状を有する物体を、実質的な単一光源下において撮影することにより得られる画像に基づいて、前記光源の方向と前記物体の３次元形状とを推定する推定装置であって、
前記画像上における前記物体の画像を表す物体画像データと該物体の一般的な３次元形状を表す３次元形状データとの位置合わせを行った後の前記３次元形状データにより表される近似物体上における前記物体の前記表面反射率が略一定である部分に対応する部分に、複数の測定点を設定する測定点設定手段と、
任意の複数方向に設定した仮想光源から前記複数の測定点へ向かう方向ベクトルと、該複数の測定点における法線ベクトルとのなす余弦を算出する余弦算出手段と、
該余弦と、前記複数の測定点に対応する前記物体画像データのデータ値との関係を前記複数の仮想光源の方向毎にプロットするプロット手段と、
前記プロットが略直線となる仮想光源の方向を仮の光源方向と推定する仮の光源方向推定手段と、
前記仮の光源方向を求めたプロットが前記直線上に位置するように、該プロットにおける前記余弦を修正する余弦修正手段と、
前記測定点における前記方向ベクトルと前記法線ベクトルとのなす余弦が、前記修正された余弦に近づくように該測定点の位置を修正して修正測定点を取得する測定点修正手段と、
該修正測定点を新たな前記測定点とする前記余弦の算出、前記プロット、前記仮の光源方向の推定、前記余弦の修正および前記修正測定点の取得を所定回数繰り返すよう、前記測定点設定手段、前記余弦算出手段、前記プロット手段、前記仮の光源方向推定手段、前記余弦修正手段および前記測定点修正手段を制御する制御手段と、
該繰り返し処理の結果得られる前記仮の光源方向を前記光源の方向と推定し、該繰り返し処理の結果得られる修正測定点の位置により定められる形状を、前記物体の３次元形状と推定する推定手段とを備えたことを特徴とする推定装置。
【請求項９】
前記複数の測定点における前記物体画像データのデータ値に基づいて、前記複数の測定点に鏡面反射する鏡面反射測定点が存在するか否かを判断し、該鏡面反射測定点が存在する場合には、該鏡面反射測定点に基づいて、前記光源の方向である蓋然性が高い前記仮想光源の方向を選択する選択手段を備え、
前記余弦算出手段は、該選択された方向における仮想光源により、前記余弦を算出する手段であることを特徴とする請求項８記載の推定装置。
【請求項１０】
前記仮の光源方向推定手段は、前記仮の光源の方向の推定を、最小二乗法を用いた評価関数に基づいて、前記プロットが略直線となるか否かを判断することにより行う判断手段を備えたことを特徴とする請求項８または９記載の推定装置。
【請求項１１】
前記所定回数は、前記評価関数が所定値以下となるまでの回数であることを特徴とする請求項１０記載の推定装置。
【請求項１２】
前記推定手段は、前記光源の方向の推定に用いられたプロットにより設定される直線の傾きに基づいて、前記光源の強度をも推定する手段であることを特徴とする請求項８から１１のいずれか１項記載の推定装置。
【請求項１３】
前記物体が人物の顔であることを特徴とする請求項８から１２のいずれか１項記載の推定装置。
【請求項１４】
前記３次元形状データが前記物体の３次元形状を表すポリゴンデータであることを特徴とする請求項８から１３のいずれか１項記載の推定装置。
【請求項１５】
表面反射率が略一定である部分を含む３次元形状を有する物体を、実質的な単一光源下において撮影することにより得られる画像に基づいて、前記光源の方向と前記物体の３次元形状とを推定する推定方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体であって、
前記プログラムは、前記画像上における前記物体の画像を表す物体画像データと該物体の一般的な３次元形状を表す３次元形状データとの位置合わせを行った後の前記３次元形状データにより表される近似物体上における前記物体の前記表面反射率が略一定である部分に対応する部分に、複数の測定点を設定する手順と、
任意の複数方向に設定した仮想光源から前記複数の測定点へ向かう方向ベクトルと、該複数の測定点における法線ベクトルとのなす余弦を算出する手順と、
該余弦と、前記複数の測定点に対応する前記物体画像データのデータ値との関係を前記複数の仮想光源の方向毎にプロットする手順と、
前記プロットが略直線となる仮想光源の方向を仮の光源方向と推定する手順と、
前記仮の光源方向を求めたプロットが前記直線上に位置するように、該プロットにおける前記余弦を修正する手順と、
前記測定点における前記方向ベクトルと前記法線ベクトルとのなす余弦が、前記修正された余弦に近づくように該測定点の位置を修正して修正測定点を取得する手順と、
該修正測定点を新たな前記測定点とする前記余弦の算出、前記プロット、前記仮の光源方向の推定、前記余弦の修正および前記修正測定点の取得を所定回数繰り返す手順と、
該繰り返し処理の結果得られる前記仮の光源方向を前記光源の方向と推定し、該繰り返し処理の結果得られる修正測定点の位置により定められる形状を、前記物体の３次元形状と推定する手順とを有することを特徴とするコンピュータ読取り可能な記録媒体。
【請求項１６】
前記複数の測定点における前記物体画像データのデータ値に基づいて、前記複数の測定点に鏡面反射する鏡面反射測定点が存在するか否かを判断する手順と、
前記鏡面反射測定点が存在する場合には、該鏡面反射測定点に基づいて、前記光源の方向である蓋然性が高い前記仮想光源の方向を選択する手順とをさらに有し、
前記余弦を算出する手順は、該選択された方向における仮想光源により、前記余弦の算出を行う手順であることを特徴とする請求項１５記載のコンピュータ読取り可能な記録媒体。
【請求項１７】
前記仮の光源の方向を推定する手順は、最小二乗法を用いた評価関数に基づいて、前記プロットが略直線となるか否かを判断する手順を有することを特徴とする請求項１５または１６記載のコンピュータ読取り可能な記録媒体。
【請求項１８】
前記所定回数は、前記評価関数が所定値以下となるまでの回数であることを特徴とする請求項１７記載のコンピュータ読取り可能な記録媒体。
【請求項１９】
前記光源の方向の推定に用いられたプロットにより設定される直線の傾きに基づいて、前記光源の強度を推定する手順をさらに有することを特徴とする請求項１５から１８のいずれか１項記載のコンピュータ読取り可能な記録媒体。
【請求項２０】
前記物体が人物の顔であることを特徴とする請求項１５から１９のいずれか１項記載のコンピュータ読取り可能な記録媒体。
【請求項２１】
前記３次元形状データが前記物体の３次元形状を表すポリゴンデータであることを特徴とする請求項１５から２０のいずれか１項記載のコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、単一の光源を用いて物体を撮影を行うことにより得られた画像から、撮影時の光源の方向と物体の３次元形状とを推定する推定方法および装置並びに推定方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体に関するものである。
【０００２】
【従来の技術】
実画像とコンピュータグラフィックス（ＣＧ）のような仮想画像とを違和感なく合成するための技術は複合現実感技術と称され、通信、交通、娯楽等種々の分野において重要な役割を果たすものとして期待されている。このように実画像と仮想画像とを違和感なく合成するためには、幾何学的、光学的および時間的な整合性を持ってこれらを合成する必要がある。特に光学的整合性については、実画像における光源の方向および強度と仮想画像における光源の方向および強度とを一致させないと、合成画像が非常に違和感のあるものとなるため、極めて重要である。このため、画像中における光源の強度分布を推定するための方法が提案されている（佐藤ら、実物体のソフトシャドウに基づく実照明環境の推定、コンピュータビジョンとイメージメディア、110-3，1998.3.19、PP17-24）。
【０００３】
この方法は、実物体のソフトシャドウに基づいて、環境照明の強度分布を推定する方法であり、画像中にある３次元形状が既知の物体の影を用いて、環境照明の強度分布の推定を行っている。具体的には、仮想的な光源の明るさと、物体上のある測定点におけるデータ値との関係を行列式にて表し、この行列式におけるマトリクスの逆行列を求めることにより、光源の強度分布を推定するものである。そして、このような方法により画像中の光源の強度分布を推定すれば、仮想画像における光源の強度分布を実画像における光源の強度分布と一致させることができるため、実画像と仮想画像とを違和感なく合成することができる。
【０００４】
また、イメージペースト的な手法により、任意の光源方向から照明された物体画像を生成する方法も提案されている（池内克史、仮想現実感モデルの自動生成：光学的側面、信学技法、PRMU98-122(1998-11)、PP75-82）。この方法は、光源を複数方向に変更して物体を撮影した複数のサンプル画像の線形和として、任意の光源方向から照明された画像を作成する方法である。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記佐藤らの方法は、測定点の位置を逆行列を算出可能な、数学的に１次独立となる位置に設定する必要があり、このような測定点の位置をマニュアル操作により求める必要があることから、操作が非常に煩わしい。また、物体の３次元形状が既知である必要もある。さらに、上記池内の方法は、対象となる物体に対して予め８０もの光源方向から撮影された画像を作成する必要があるため、演算に非常に長時間を要することから現実的な手法ではない。
【０００６】
本発明は上記事情に鑑みなされたものであり、光源の方向および物体の３次元形状を簡易に推定することができる推定方法および装置並びに推定方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体を提供することを目的とするものである。
【０００７】
【課題を解決するための手段】
本発明による光源方向と物体の３次元形状との推定方法は、表面反射率が略一定である部分を含む３次元形状を有する物体を、実質的な単一光源下において撮影することにより得られる画像に基づいて、前記光源の方向と前記物体の３次元形状とを推定する推定方法であって、
前記画像上における前記物体の画像を表す物体画像データのデータ値、および該物体画像データと該物体の一般的な３次元形状を表す３次元形状データとの位置合わせを行った後の前記３次元形状データにより表される近似物体と、任意の複数方向に設定した仮想光源との位置関係に基づいて、前記光源の方向と前記物体の３次元形状とを推定することを特徴とするものである。
【０００８】
ここで、「実質的な単一光源において撮影する」とは、晴天における太陽光の下で撮影を行った場合のように、他の光源の存在を無視することができ、単一の光源のみを用いたに略等しい状況で撮影を行うことをいう。
【０００９】
また、例えば物体を人物の顔とした場合に、顔の形状は人によって異なるが、どのような顔の形状であっても概略一致するような形状が存在する。したがって、ここでは、このような物体の形状と概略一致する３次元形状を表す３次元形状データを、「一般的な３次元形状を表す３次元形状データ」とする。
【００１０】
なお、人物の顔の肌色は、表面反射率が略一定であると見なせるものである。
【００１１】
また、物体画像データと３次元形状データとの位置合わせは、画像中における物体の向きと物体の３次元形状の向き、中心位置、２次元方向すなわち物体画像データが存在する方向におけるサイズ等が一致するように、３次元形状データと物体画像データとをマッチングさせることをいう。このようなマッチングにより、３次元形状データは物体画像データと２次元方向においてのみ位置が合わせられており、本発明においては、このように位置が合わせられた３次元形状データにより表される物体の形状を近似物体とするものである。
【００１２】
なお、本発明による推定方法においては、前記近似物体上における前記物体の前記表面反射率が略一定である部分に対応する部分に複数の測定点を設定し、
前記任意の複数方向に設定した仮想光源から前記複数の測定点へ向かう方向ベクトルと、該複数の測定点における法線ベクトルとのなす余弦を算出し、
該余弦と、前記複数の測定点に対応する前記物体画像データのデータ値との関係を前記複数の仮想光源の方向毎にプロットし、
前記プロットが略直線となる仮想光源の方向を仮の光源方向と推定し、
前記仮の光源方向を求めたプロットが前記直線上に位置するように、該プロットにおける前記余弦を修正し、
前記測定点における前記方向ベクトルと前記法線ベクトルとのなす余弦が、前記修正された余弦に近づくように該測定点の位置を修正して修正測定点を取得し、
該修正測定点を新たな前記測定点とする前記余弦の算出、前記プロット、前記仮の光源方向の推定、前記余弦の修正および前記修正測定点の取得を所定回数繰り返し、
該繰り返し処理の結果得られる前記仮の光源方向を前記光源の方向と推定し、該繰り返し処理の結果得られる修正測定点の位置により定められる形状を、前記物体の３次元形状と推定することが好ましい。
【００１３】
ここで、「方向ベクトル」は、仮想光源の座標位置および測定点の座標位置から算出することができ、「法線ベクトル」は位置合わせ後の３次元形状データ上における測定点の座標位置のデータ値に基づいて求めることができる。また、余弦は、方向ベクトルと法線ベクトルとの内積から求めることができる。
【００１４】
また、「プロットが直線上に位置するようにプロットにおける余弦を修正する」とは、プロットした測定点における余弦の値を変更して、プロットが直線上に位置するようにプロットを移動させることをいう。
【００１５】
また、「修正された余弦に近づくように測定点の位置を修正する」とは、修正前の測定点における方向ベクトルと法線ベクトルとのなす余弦を、修正された余弦と完全に一致させるのではなく、修正された余弦の値を越えることなく、これに近い値となるように測定点の位置を修正することにより、修正後の測定点における方向ベクトルと法線ベクトルのなす余弦が、上記修正された余弦に近い値となるようにすることをいう。なお、ここで、「測定点の位置を修正する」とは、３次元形状データは物体画像データにおける２次元方向について位置合わせされているため、この２次元方向については位置を修正せず、物体画像データに対する奥行き方向について位置を修正することをいう。具体的には、物体画像データが存在する平面をｘｙ平面とすると、ｚ方向についてのみ測定点の位置を修正することをいう。
【００１６】
なお、本発明においては、３次元形状が推定されるのは、物体の表面反射率が略一定である部分のみであるが、３次元形状を有する物体の全体の表面反射率が略一定である場合には、物体の全体の３次元形状を推定することができる。
【００１７】
また、本発明による推定方法においては、前記複数の測定点における前記物体画像データのデータ値に基づいて、前記複数の測定点に鏡面反射する鏡面反射測定点が存在するか否かを判断し、
前記鏡面反射測定点が存在する場合には、該鏡面反射測定点に基づいて、前記光源の方向である蓋然性が高い前記仮想光源の方向を選択し、
該選択された方向における仮想光源により、前記余弦の算出を行うことが好ましい。
【００１８】
さらに、本発明による推定方法においては、前記光源の方向の推定を、最小二乗法を用いた評価関数に基づいて、前記プロットが略直線となるか否かを判断することにより行うことが好ましい。
【００１９】
この場合、前記所定回数としては、前記評価関数が所定値以下となるまでの回数とすることが好ましい。
【００２０】
また、本発明による推定方法においては、前記光源の方向の推定に用いられたプロットにより設定される直線の傾きに基づいて、前記光源の強度を推定することが好ましい。
【００２１】
さらに、本発明による推定方法においては、前記物体が人物の顔であることが好ましい。
【００２２】
さらに、前記３次元形状データが前記物体の３次元形状を表すポリゴンデータであることが好ましい。
【００２３】
本発明による推定装置は、表面反射率が略一定である部分を含む３次元形状を有する物体を、実質的な単一光源下において撮影することにより得られる画像に基づいて、前記光源の方向と前記物体の３次元形状とを推定する推定装置であって、
前記画像上における前記物体の画像を表す物体画像データのデータ値、および該物体画像データと該物体の一般的な３次元形状を表す３次元形状データとの位置合わせを行った後の前記３次元形状データにより表される近似物体と、任意の複数方向に設定した仮想光源との位置関係に基づいて、前記光源の方向と前記物体の３次元形状とを推定する手段を備えたことを特徴とするものである。
【００２４】
なお、本発明による推定装置においては、前記光源の方向と前記物体の３次元形状とを推定する手段は、前記近似物体上における前記物体の前記表面反射率が略一定である部分に対応する部分に複数の測定点を設定する測定点設定手段と、前記任意の複数方向に設定した仮想光源から前記複数の測定点へ向かう方向ベクトルと、該複数の測定点における法線ベクトルとのなす余弦を算出する余弦算出手段と、
該余弦と、前記複数の測定点に対応する前記物体画像データのデータ値との関係を前記複数の仮想光源の方向毎にプロットするプロット手段と、
前記プロットが略直線となる仮想光源の方向を仮の光源方向と推定する仮の光源方向推定手段と、
前記仮の光源方向を求めたプロットが前記直線上に位置するように、該プロットにおける前記余弦を修正する余弦修正手段と、
前記測定点における前記方向ベクトルと前記法線ベクトルとのなす余弦が、前記修正された余弦に近づくように該測定点の位置を修正して修正測定点を取得する測定点修正手段と、
該修正測定点を新たな前記測定点とする前記余弦の算出、前記プロット、前記仮の光源方向の推定、前記余弦の修正および前記修正測定点の取得を所定回数繰り返すよう、前記測定点設定手段、前記余弦算出手段、前記プロット手段、前記仮の光源方向推定手段、前記余弦修正手段および前記測定点修正手段を制御する制御手段と、
該繰り返し処理の結果得られる前記仮の光源方向を前記光源の方向と推定し、該繰り返し処理の結果得られる修正測定点の位置により定められる形状を、前記物体の３次元形状と推定する推定手段とを備えることが好ましい。
【００２５】
また、本発明による推定装置においては、前記複数の測定点における前記物体画像データのデータ値に基づいて、前記複数の測定点に鏡面反射する鏡面反射測定点が存在するか否かを判断し、該鏡面反射測定点が存在する場合には、該鏡面反射測定点に基づいて、前記光源の方向である蓋然性が高い前記仮想光源の方向を選択する選択手段を備え、
前記余弦算出手段は、該選択された方向における仮想光源により、前記余弦を算出する手段であることが好ましい。
【００２６】
さらに、本発明による推定装置においては、前記仮の光源方向推定手段は、前記光源の方向の推定を、最小二乗法を用いた評価関数に基づいて、前記プロットが略直線となるか否かを判断することにより行う判断手段を備えることが好ましい。
【００２７】
また、本発明による推定装置においては、前記推定手段は、前記光源の方向の推定に用いられたプロットにより設定される直線の傾きに基づいて、前記光源の強度を推定する手段であることが好ましい。
【００２８】
また、本発明による推定装置においては、前記物体が人物の顔であることが好ましい。
【００２９】
さらに、前記３次元形状データが前記物体の３次元形状を表すポリゴンデータであることが好ましい。
【００３０】
なお、本発明による推定方法を、コンピュータに実行させるためのプログラムとして、コンピュータ読取り可能な記録媒体に記録して提供してもよい。
【００３１】
【発明の効果】
本発明によれば、物体画像データのデータ値、および近似物体と任意の複数方向に設定した仮想光源との位置関係のみが分かれば、光源の方向と物体の３次元形状とを推定することができる。このため、上記佐藤らの方法のように、逆行列を算出可能な測定点を求める必要がなく、また行列演算を行う必要がないため、比較的簡易な演算により撮影時の光源の方向を推定することができ、さらには物体の３次元形状が未知であってもこの３次元形状を推定することができる。さらに、上記池内の方法のように、多数方向からの画像を撮影しておく必要もないため、簡易に光源の方向および物体の３次元形状を推定することができる。そしてこれにより、実画像とＣＧのような仮想画像とを合成する場合に、実画像において推定した光源の方向に基づいて、仮想画像が適切な光源から照明がなされているように修正した後に合成をすることができ、違和感のない合成画像を得ることができる。また、ＭＰＥＧ−４のように、オブジェクト毎に画像を転送して動画を見る段階において合成する符号化方式において、オブジェクトに実画像と仮想画像が含まれている場合に、実画像の照明方向に応じて仮想画像の照明方向を修正して合成することができ、これにより違和感のない合成動画像を得ることができる。さらに、実画像に含まれる物体を適切な３次元画像として表すことができるため、実画像から違和感のない３次元画像を生成することができる。さらにまた、太陽光下において撮影を行うことにより得られた画像の場合、画像中の太陽光の方向を推定することにより、画像に対する逆光補正や濃度補正を容易に行うことができる。
【００３２】
とくに、仮想光源の位置が物体撮影時の光源位置と一致する場合には、光源から表面反射率が略一定である物体上のある測定点へ向かう方向ベクトルとその測定点における法線ベクトルとがなす余弦、およびその測定点における反射光の強度値すなわち物体画像データのデータ値の関係が直線上に位置するという特徴に基づいて、撮影時の光源の方向を推定することが好ましい。すなわち、物体画像データと３次元形状データとの位置合わせを行った後に、３次元形状データにより規定される近似物体上における物体の表面反射率が略一定である部分に対応する部分に複数の測定点を設定し、この測定点から仮想光源へ向かう方向ベクトルと、測定点における法線ベクトルとの余弦を求める。そして、この余弦と、測定点における物体画像データのデータ値との関係を複数の仮想光源毎にプロットし、これらの関係が直線上に位置する仮想光源の方向を撮影時における仮の光源の方向とする。そして、この仮の光源方向のプロットが直線上に位置するように、各プロットにおける余弦の値を修正し、仮の光源方向のプロットを求めた測定点における方向ベクトルと法線ベクトルとのなす余弦が、修正された余弦と略一致するように測定点の位置を修正して修正測定点を得る。
【００３３】
この後、修正測定点を新たな測定点とする余弦の算出、プロット、仮の光源方向の推定、余弦の修正および修正測定点の取得を所定回数繰り返し、この結果得られる仮の光源方向を撮影時の光源方向と推定し、修正測定点の位置により定められる形状を物体の３次元形状と推定することが好ましい。
【００３４】
なお、仮の光源方向を推定する前に、複数の測定点に鏡面反射測定点が存在するか否かを判断し、鏡面反射測定点が存在する場合には、この鏡面反射測定点に基づいて撮影時の光源方向である蓋然性が高い仮想光源の方向を選択することにより、光源方向の推定に使用する仮想光源の数を少なくすることができるため、演算時間を短縮することができる。すなわち、鏡面反射する測定点が存在するということは、実際の光源から測定点に照射された光が正反射して物体を撮影した撮影手段の方向に進んでいるということができる。したがって、鏡面反射測定点における法線ベクトルは、光源から鏡面反射測定点へ向かうベクトルと、鏡面反射測定点から撮影手段へ向かうベクトルとがなす角度を２等分するものとなる。よって、鏡面反射測定点が存在する場合には、その測定点における法線ベクトルと、鏡面反射測定点から撮影手段へ向かうベクトルとに基づいて、演算に使用する仮想光源の方向を絞り込むことができるものである。
【００３５】
また、光源の強度をも推定することにより、上述したように実画像と仮想画像とを合成する場合に、実画像において推定した光源の強度にも基づいて仮想画像が適切な強度により照明がなされているように修正した後に合成をすることができ、これにより一層違和感のない合成画像を得ることができる。
【００３６】
さらに、３次元形状データをポリゴンデータとすることにより、測定点が存在する平面を求めれば、この平面を規定する式から測定点における法線ベクトルを直ちに算出することができるため、光源の方向をより簡易に推定することができる。
【００３７】
【発明の実施の形態】
以下図面を参照して本発明の実施形態について説明する。
【００３８】
図１は本発明の実施形態による光源方向および物体の３次元形状を推定するための推定装置の構成を示す概略ブロック図である。図１に示すように、本実施形態による推定装置は、人物の顔を含む画像を表す２次元画像データＳ０と、人物の顔の３次元形状を表す３次元形状データＳ１との位置合わせを行って合成データＳ２を得る位置合わせ手段１と、３次元形状データＳ１を記憶するメモリ２と、合成データＳ２に基づいて人物を含む画像における光源の方向および顔の３次元形状を推定する推定手段３とを備える。なお、本実施形態においては光源は単一であり、人物の顔の肌色部分の表面反射率は略一定であるものとする。
【００３９】
位置合わせ手段１は、図２（ａ）に示す人物の顔画像を表す２次元画像データＳ０と、図２（ｂ）に示す人物の顔の３次元形状を近似的に表す３次元形状データＳ１との位置合わせを行うものである。３次元形状データＳ１は、２次元画像データＳ０により表される顔画像に応じてその向き、サイズおよび中心位置を変更可能なものであり、複数の面により３次元形状を規定するポリゴンデータとなっている。この位置合わせは２次元画像データＳ０および３次元形状データＳ１をモニタ（不図示）に表示し、表示された画像を観察しながらマニュアル操作により、３次元形状データＳ１により表される３次元形状の向き、大きさおよび中心位置を、２次元画像データＳ０により表される顔画像と一致させることにより行う。このような位置合わせを行うことにより、図２（ｃ）に示すような合成画像を表す合成データＳ２を得ることができる。ここで、合成データＳ２には２次元画像データＳ０と位置合わせ後の３次元形状データＳ１′とが含まれることとなる。なお、図２においては、図面上左右方向をｘ方向、上下方向をｙ方向、紙面に対して垂直な方向をｚ方向とする。また、位置合わせ後の３次元形状データＳ１′により、人物の顔の３次元形状が近似的に表されることとなる。
【００４０】
ここで、人物画像を撮影したカメラの焦点位置ｆ、カメラから人物の顔までの距離ｚ０が既知であるとすると、位置合わせ後の３次元形状データＳ１′により表される３次元形状上におけるある位置の座標（ｘｗ，ｙｗ，ｚｗ）と、人物画像上でのこの位置に対応する位置における座標（ｘｖ，ｙｖ）とは、下記の透視変換の式（１）、（２）により記述することができる。
【００４１】
ｘｖ＝α・ｆ・ｘｗ／（ｆ＋ｚｗ＋ｚ０）      （１）
ｙｖ＝α・ｆ・ｙｗ／（ｆ＋ｚｗ＋ｚ０）      （２）
但し、α：スケール
ｘ，ｙ方向：人物画像の平面上の方向
ｚ方向：人物画像における奥行き方向
ここで、３次元形状データＳ１は奥行き方向（ｚ方向）にも値を有するため、式（１）、（２）の関係を用いることにより、位置合わせ後の３次元形状データＳ１′上における位置と、２次元画像データＳ０上における位置とをより正確に対応付けることができる。
【００４２】
なお、カメラの焦点位置ｆ等が未知である場合には、上記式（１）、（２）により位置合わせ後の３次元形状データＳ１′と２次元画像データＳ０との対応付けを行うことができないが、人物の奥行き寸法はカメラから被写体である人物までの距離と比較して非常に小さいため、このような場合にはｚ方向については無視しても差し支えないものである。したがって、この場合は、位置合わせ後の３次元形状データＳ１′における任意の位置の座標が（ｘ１，ｙ１，ｚ１）であったとすると、この位置に対応する２次元画像データＳ０上の位置における座標は（ｘ１，ｙ１）とすればよい。
【００４３】
図３は推定手段３の構成を示す概略ブロック図である。図３に示すように推定手段３は、位置合わせ後の３次元形状データＳ１′により表される３次元形状上に複数の測定点を設定する測定点設定手段１１と、任意の複数方向に設定した仮想光源から複数の測定点へ向かう方向ベクトルと、複数の測定点における法線ベクトルとのなす余弦を算出する余弦算出手段１２と、算出された余弦と、複数の測定点に対応する２次元画像データＳ０のデータ値との関係を複数の仮想光源の方向毎にプロットするプロット手段１３と、プロットが略直線となる仮想光源の方向を仮の光源方向と推定する仮の光源方向推定手段１４と、仮の光源方向を求めたプロットが直線上に位置するように、上記プロットにおける余弦を修正する余弦修正手段１５と、測定点における方向ベクトルと法線ベクトルとのなす余弦が、修正された余弦に近づくように測定点の位置を修正して修正測定点を取得する測定点修正手段１６と、修正測定点を新たな測定点としての余弦の算出、プロット、仮の光源方向の推定、余弦の修正および修正測定点の取得を所定回数繰り返すよう、測定点設定手段１１、余弦算出手段１２、プロット手段１３、仮の光源方向推定手段１４、余弦修正手段１５および測定点修正手段１６を制御する制御手段１７とを備え、繰り返し処理の結果得られる仮の光源方向を光源の方向と推定し、繰り返し処理の結果得られる修正測定点の位置により定められる形状を、顔の３次元形状と推定するものである。
【００４４】
推定手段３においては以下のようにして光源方向および顔の３次元形状が推定される。まず、光源方向の推定について説明する。図４および図５は光源方向の推定を説明するための図である。なお、図４においては、簡便のために位置合わせ後の３次元形状データＳ１′により表される３次元形状のｙ軸に垂直な平面における断面図を用いて２次元的に説明する。まず、測定点設定手段１１において３次元形状データＳ１′により表される３次元形状上に複数の測定点を設定する。なお、図４，５においては簡便のため測定点を２点Ｐ１，Ｐ２としているが、実際にはより複数の測定点が設定されるものである。また、この測定点は、３次元形状データＳ１′により表される３次元形状上における人物の顔の肌色部分に対応する部分に設定される。そして、図４に示すように、ｙ軸周りに−９０度〜＋９０度まで、４５度間隔に５つの仮想的な光源（仮想光源とする）Ｌ１〜Ｌ５が存在するものとして、余弦算出手段１２において、図５に示すように上記複数の測定点Ｐ１，Ｐ２について、各光源Ｌ１〜Ｌ５毎に光源から測定点Ｐ１，Ｐ２に向かう方向ベクトルＬｉＰ１，ＬｉＰ２（ｉ＝１〜５）と、測定点Ｐ１，Ｐ２における法線ベクトルｎ１，ｎ２との余弦ｃｏｓθ１，ｃｏｓθ２を算出する。ここで、仮想光源Ｌ１〜Ｌ５および測定点Ｐ１，Ｐ２の座標位置は予め分かっているため、方向ベクトルＬｉＰ１，ＬｉＰ２は仮想光源Ｌ１〜Ｌ５および測定点Ｐ１，Ｐ２の座標値から算出することができる。また、３次元形状データＳ１′はポリゴンデータであることから、測定点Ｐ１，Ｐ２が存在する面は容易に求めることができ、またこの面を規定する式ａｘ＋ｂｘ＋ｃｘ＋ｄ＝０から法線ベクトルｎ１，ｎ２は（ａ，ｂ，ｃ）として求めることができる。したがって、方向ベクトルＬｉＰ１，ＬｉＰ２と法線ベクトルｎ１，ｎ２との内積から余弦ｃｏｓθ１、ｃｏｓθ２を算出することができる。
【００４５】
ここで、本実施形態においては測定点は拡散反射する位置に設定されていることから、測定点における反射光の強度値、照明すなわち光源から発せられる光の強度、表面反射率、遮断および上記余弦との間には下記の式（３），（４）に示す関係が存在する。
【００４６】
Ｉ（Ｐ１）＝ｋ１・ｓ１・ｃｏｓθ１・Ｌｃ＋Ｉｅ      （３）
Ｉ（Ｐ２）＝ｋ２・ｓ２・ｃｏｓθ２・Ｌｃ＋Ｉｅ      （４）
但し、Ｉ（Ｐ１），Ｉ（Ｐ２）：測定点Ｐ１，Ｐ２での反射光の強度値
ｋ１，ｋ２：表面反射率
ｓ２，ｓ２：遮断の値（０または１）
Ｌｃ：照明の強度
Ｉｅ：環境光の強度
遮断とは例えば人物の顔において、光源の方向に応じて生じる、鼻の影となってしまって光が届かない部分のことをいう。このように光が届かない部分においては遮断ｓの値は０となり、それ以外の部分においては光が届いて反射されるために遮断ｓの値は１となる。したがって、ｓ＝０となる測定点は反射光の強度値が０となることから、本実施形態においては光源方向推定の演算には用いないものとする。この場合、演算に用いる測定点が不足する場合があるため、ｓ＝０となる測定点が存在する場合にはｓ＝１となる新たな測定点を設定することが好ましい。
【００４７】
反射光の強度値Ｉ（Ｐ１），Ｉ（Ｐ２）は測定点Ｐ１，Ｐ２における２次元画像データＳ０のデータ値となる。本実施形態においては位置合わせ手段１にて、２次元画像データＳ０と３次元形状データＳ１との位置合わせがなされているため、例えば上記式（１）、（２）により位置合わせ後の３次元形状データＳ１′における測定点Ｐ１，Ｐ２の座標値から２次元画像データＳ０上における測定点Ｐ１，Ｐ２に対応する座標値を求める。そして、２次元画像データＳ０における測定点Ｐ１，Ｐ２に対応する座標位置でのデータ値を、測定点Ｐ１，Ｐ２における反射光の強度値Ｉ（Ｐ１），Ｉ（Ｐ２）として求める。
【００４８】
なお、余弦ｃｏｓθ１、ｃｏｓθ２が負となると反射光の強度値が負となってしまうことから、本実施形態においてはｃｏｓθ１，ｃｏｓθ２＞０となるような測定点のみを用いるものとする。この場合、演算に用いる測定点が不足する場合があるため、ｃｏｓθ１，ｃｏｓθ２≦０となる測定点が存在する場合にはｃｏｓθ１，ｃｏｓθ２＞０となる新たな測定点を設定することが好ましい。
【００４９】
本実施形態では、人物の顔において拡散反射する点における表面反射率は略一定であることから、上記式（３），（４）においてはｋ１＝ｋ２となる。また、遮断ｓ１，ｓ２の値はともに１である。そして、上記式（３）、（４）より、仮想光源の位置が正しい、すなわち撮影時の光源位置と一致する場合には、下記の式（５）に示すように、顔の表面における反射光の強度値の比と余弦の比とが一致するという特徴がある。
【００５０】
Lc・k・s=(I(P1)-Ie)/cosθ１＝(I(P2)-Ie)/cosθ２    （５）
但し、ｋ：ｋ１，ｋ２
ｓ：ｓ１，ｓ２
Ｌｃ・ｋ・ｓ＝一定
したがって、プロット手段１３においては、各仮想光源Ｌ１〜Ｌ５毎に、複数の測定点Ｐ１，Ｐ２における反射光の強度値と余弦ｃｏｓθ１、ｃｏｓθ２との関係を図６に示すようにプロットする。なお、図６においては反射光の強度値をその最大値が１．０となるように正規化している。
【００５１】
図６に示すように仮想光源Ｌ１〜Ｌ５においてその位置が撮影時の光源の位置と一致する場合には、上記式（５）に示す関係から、反射光の強度値と余弦とのプロットは略直線上に位置することとなる。したがって、プロットが略直線上に位置する仮想光源の位置を撮影時の光源の位置と見なすことができる。図６においては−４５度の方向からの光源すなわち仮想光源Ｌ２を光源として用いた場合の反射光の強度値と余弦との関係が略直線上に位置することから、仮の光源方向推定手段１４において、仮想光源Ｌ２の位置が撮影時の仮の光源の位置として求められる。したがって、撮影時においては人物の顔から見て図４における−４５度の方向から光が照射されていると見なすことができる。なお、この直線と縦軸すなわち強度軸との交点の値が、環境光Ｉｅの強度となる。また、この直線の傾きは上記式（５）におけるＬｃ・ｋ・ｓであり、図６から傾きの大きさが分かる。したがって、傾きをａとすると、Ｌｃ＝ａ／ｋ・ｓとなって照明の強度Ｌｃを求めることができる。
【００５２】
ここで、プロットが直線上に位置するか否かの判断は、例えば最小二乗法を用いた評価関数により行う。すなわち、直線の式をｙ＝ａｘ＋ｂとすると、
【数１】
0004213327.tif 000002
但し、Ｎ：プロット数
ｘｎ：余弦の値
ｙｎ：反射光の強度値
として、ａ，ｂの値を求めることができる。そしてこのようにして求められたａ，ｂの値から、下記の式（７）に示す評価関数ｃｆを算出する。
【００５３】
【数２】
0004213327.tif 000003
そしてこの評価関数ｃｆの値が最も小さい値となった仮想光源の方向を撮影時における仮の光源方向とすればよい。
【００５４】
次に、顔の３次元形状の推定について説明する。図７は仮の光源方向を決定するために用いたプロットおよびこのプロットから求められた直線Ｃを示す図である。図７に示すように、位置合わせ後の３次元形状データＳ１′は、顔の近似的な３次元形状を表すものであることから、実際の顔の形状は３次元形状データＳ１′により表される形状とはずれているため、プロットは完全に直線Ｃ上に位置するものではなく、直線Ｃから隔たって存在するものである。ここで、本実施形態においては、３次元形状データＳ１′はｘ，ｙ方向については位置合わせがなされていることから、ｚ軸方向の値が実際の値からずれているためにこの隔たりが生じるものであると考えることができる。したがって、本実施形態は、各プロットの直線Ｃからの隔たりを修正することにより３次元形状データＳ１′のｚ軸方向のずれを修正して顔の３次元形状を推定するものである。
【００５５】
まず、上述したように求めた仮の光源方向を求めたプロットの直線Ｃからのずれは、そのプロットに対応する測定点における法線ベクトルの傾きのずれから生じるものであると考えることができる。例えば、図７における測定点Ｐ３に対応するプロットの場合、プロットが直線Ｃから左側にずれているため、測定点Ｐ３における法線ベクトルの傾きがずれて余弦の値が実際の余弦の値よりも小さくなっていると考えることができる。ここで、実際の余弦の値とは、仮の光源から実際の顔の３次元形状上に設定される測定点へ向かう方向ベクトルと、この測定点における法線ベクトルとがなす余弦のことである。そこで、余弦修正手段１５において、測定点Ｐ３における余弦の値が大きくなるように修正して法線ベクトルの傾きを修正することにより、測定点Ｐ３における３次元形状データＳ１′のｚ値を修正してプロットを直線Ｃに近づく方向に移動させる。すなわち、測定点Ｐ３に対応する２次元画像データＳ０のデータ値をｇ（Ｐ３）とすると、ｇ（Ｐ３）＝ａｘ＋ｂより、
ｘ＝ｃｏｓθｃ＝（ｇ（Ｐ３）−ｂ）／ａ        （８）
但し、ｃｏｓθｃ：測定点Ｐ３が直線Ｃ上に位置する場合の余弦の値
そこで、測定点Ｐ３におけるθの値、すなわち方向ベクトルと法線ベクトルとがなす角度をθｃの値に近づけるように修正する。なお、余弦の値をＹとした場合、θの値は、
θ＝ｃｏｓ−１Ｙ                                （９）
により求めることができる。なお、図７における測定点Ｐ４に対応するプロットのように、プロットが直線Ｃから右側にずれている場合は、測定点Ｐ４における余弦の値が小さくなるように測定点Ｐ４における法線ベクトルの傾きを修正することにより、３次元形状データのｚ値を修正してプロットを直線Ｃに近づく方向に移動させる。
【００５６】
図８は、θの値の修正を説明するための図である。図８において、θoldは修正前の測定点Ｐ３における方向ベクトルＰＬと法線ベクトルｎoldとがなす角度、θnewは修正後の測定点Ｐ３における方向ベクトルＰＬと法線ベクトルｎnewとがなす角度、θｃは測定点Ｐ３が直線Ｃ上に位置する場合の方向ベクトルＰＬと法線ベクトルとがなす角度である。まず、ベクトルｎnewを下記の式（１０）により算出する。
【００５７】
ｎnew＝ｎold＋α（θold−θｃ）・（ＰＬ−ｎold）      （１０）
但し、α：係数（０＜α＜１）
ここで、αの値は１より小さい値を有するため、法線ベクトルｎnewはαの値に応じて法線ベクトルｎoldの終点から光源Ｌへ向かうベクトル（ＰＬ−ｎold）上を移動することとなる。ここで、αの値を１としないのは、直線Ｃはあくまでも仮の光源方向を表すため、実際の光源方向とは厳密には異なるものであり、このように実際の光源方向とは異なる仮の光源方向に基づいて測定点を一気に修正すると、顔の３次元形状を正確に求めることができなくなるからである。
【００５８】
このようにして法線ベクトルｎnewが算出されると、この法線ベクトルｎnewに基づいて、測定点修正手段１６において、測定点Ｐ３における３次元形状データＳ１′のｚ値が修正される。具体的には測定点Ｐ３が図９に示すような点Ａ，Ｂ，Ｃを頂点とするポリゴンに存在する場合に、点Ａ，Ｂ，Ｃの頂点のｚの値を修正して、３次元形状データＳ１′のｚ値を修正する。ここで、法線ベクトルｎnewを（ａ′，ｂ′，ｃ′）、測定点Ｐ３の座標を（ｘ１，ｙ１，ｚ１）とすると、測定点Ｐ３を通り法線ベクトルがｎnewである平面の方程式が定まる。
【００５９】
ａ′ｘ＋ｂ′ｙ＋ｃ′ｚ＋ｄ′＝０                    （１１）
ｄ′＝−（ａ′ｘ１＋ｂ′ｙ１＋ｃ′ｚ１）            （１２）
点Ａ，Ｂ，Ｃにおいてはｘ、ｙの値は変更されておらず、ｚの値のみが変更されるため、変更されたｚの値をｚnewとすると、
ｚnew＝−（ａ′ｘ＋ｂ′ｙ＋ｄ）／ｃ′               （１３）
により求めることができる。これにより、修正後の点Ａ，Ｂ，Ｃの座標は、（ｘ，ｙ，ｚnew）と表すことができる。
【００６０】
以上の処理を仮の光源方向を決定したプロットに対応する全ての測定点について行い、新たな測定点の座標値を得、これを修正３次元データＳｃとする。なお、修正３次元データＳｃ上における測定点を修正測定点とする。
【００６１】
そして、修正測定点を新たな測定点とし、新たな仮想光源を設定して、新たな仮想光源から修正測定点へ向かう方向ベクトルおよび修正測定点の法線ベクトルｎnewがなす余弦ｃｏｓθnewと、修正測定点における反射光の強度値との関係をプロットし、さらに上記式（７）および（８）により新たな直線を求めて新たな仮想光源の方向を決定するとともに、評価関数ｃｆを算出する。この際、新たな仮想光源は、仮の光源の近傍に設定すればよい。そして、評価関数ｃｆの値が予め定められた所定値よりも大きいか否かが判断され、所定値を越える場合には、上述したように測定点のｚ値を修正して新たな修正測定点を求め、この新たな修正測定点についての仮の光源方向および評価関数ｃｆの値の算出を、評価関数ｃｆの値が上記所定値よりも小さい値となるまで繰り返す。そして、評価関数ｃｆが所定値以下となったときの仮想光源の方向を光源の方向と推定し、この際の修正測定点により定められる３次元形状を顔の３次元形状と推定するものである。なお、ここで、推定される顔の３次元形状は顔の肌色部分の３次元形状となる。以上の処理は、制御手段１７により、測定点設定手段１１、余弦算出手段１２、プロット手段１３、仮の光源方向推定手段１４、余弦修正手段１５、および測定点修正手段１６を制御することにより行われる。
【００６２】
次いで、本実施形態の動作について説明する。図１０は、本実施形態の動作を示すフローチャートである。まず、位置合わせ手段１において２次元画像データＳ０と３次元形状データＳ１との位置合わせが行われる（ステップＳ１）。そして位置合わせされた合成データＳ２が推定手段３に入力される。推定手段３においては、位置合わせ後の３次元形状データＳ１′により表される３次元形状上に複数の測定点を設定するとともに（ステップＳ２）、仮想光源Ｌ１〜Ｌ５から任意の仮想光源を選択する（ステップＳ３）。本実施形態においては、仮想光源Ｌ１から順に選択するものとする。そして、各測定点において、法線ベクトルと測定点および仮想光源間の方向ベクトルとのなす余弦が算出され（ステップＳ４）、各測定点における反射光の強度値と上述した余弦との関係が図６に示すようにプロットされる（ステップＳ５）。そして、反射光の強度値と余弦との関係において、評価関数ｃｆが予め定められた値以下となったか否かを判断することにより、プロットが直線上に位置するか否かが判断され（ステップＳ６）、ステップＳ６が否定された場合にはステップＳ３に戻り、異なる仮想光源を選択してステップＳ４からステップＳ６の処理を繰り返す。ステップＳ６が肯定された場合には、この仮想光源の方向を撮影時における仮の光源方向として決定する（ステップＳ７）。
【００６３】
このように仮の光源方向が決定されると、この仮の光源方向の直線を決定した際の評価関数ｃｆが所定値以下であるか否かが判断される（ステップＳ８）。ステップＳ８が否定されると、上述したように測定点の位置が修正され（ステップＳ９）、さらに仮の光源方向の近傍に新たな仮想光源を設定して（ステップＳ１０）、ステップＳ３に戻り、以下ステップＳ３からステップＳ８までの処理を繰り返す。そして、ステップＳ８が肯定されると、仮の光源方向を撮影時の光源の方向として決定するとともに、修正された測定点の座標位置から顔の３次元形状を決定し（ステップＳ１１）、処理を終了する。
【００６４】
このように、本実施形態においては、仮想光源の位置が正しい、すなわち撮影時の光源位置と一致する場合には、式（５）に示すように、顔の表面における反射光の強度値の比と上記余弦の比とが一致するという特徴に基づいて、撮影時の光源の方向を推定するようにしたため、測定点の設定については遮断ｓの値が０でないという条件のみを満たせばよく、また比較的簡易な演算により光源の方向を推定することができる。また、物体の３次元形状が未知であっても、推定された光源の方向に基づいて、上記池内の方法と比較して簡易に物体の３次元形状をも推定することができる。そしてこれにより、実画像とＣＧのような仮想画像とを合成する場合に、実画像において推定した光源の方向に基づいて、仮想画像が適切な光源から照明がなされているように修正した後に合成をすることができ、違和感のない合成画像を得ることができる。また、ＭＰＥＧ−４のように、オブジェクト毎に画像を転送して動画を見る段階において合成する符号化方式において、オブジェクトに実画像と仮想画像が含まれている場合に、実画像の照明方向に応じて仮想画像の照明方向を修正して合成することができ、これにより違和感のない合成動画像を得ることができる。さらに、実画像に含まれる物体を適切な３次元画像として表すことができるため、実画像から違和感のない３次元画像を生成することができる。さらにまた、太陽光下において撮影を行うことにより得られた画像の場合、画像中の太陽光の方向を推定することにより、画像に対する逆光補正や濃度補正を容易に行うことができる。
【００６５】
なお、上記実施形態においては、説明のために２次元状に仮想光源Ｌ１〜Ｌ５を配置しているが、実際には３次元形状データＳ１に対して３次元状に複数の仮想光源を配置し、各測定点毎に反射光の強度と上記余弦との関係をプロットして撮影時の光源方向および物体の３次元形状を推定するものである。
【００６６】
また、上記実施形態においては、式（６）および（７）に示すように、最小二乗法による評価関数ｃｆを用いて仮の光源方向を推定しているが、これに限定されるものではなく、図６に示すプロットをモニタに表示し、オペレータがこれを観察してプロットが直線上に位置する仮想光源の方向を仮の光源の方向として求めるようにしてもよい。
【００６７】
さらに、２次元画像データＳ０を取得する際において使用するカメラは、入力する光と出力する画像データとの関係が非線形となるものである。このため、予め使用するカメラによりグレーチャートを撮影して、カメラに対する入力と出力との関係を求めておき、この関係が直線となるようにカメラの入出力特性を補正しておくことが好ましい。
【００６８】
なお、実環境における物体表面の輝度は、上述した拡散反射光および環境光に加えて鏡面反射光も含まれ、これらの光の組み合わせによりモデル化することができるものである。すなわち、物体表面の輝度は下記の式（１４）により表すことができる。なお、ここでは相互反射は拡散反射、鏡面反射および環境光と比べて小さく、無視できるものとする。
【００６９】
Ｉ＝Ｉｄ＋Ｉｓ＋Ｉｅ                      （１４）
但し、Ｉ：物体表面の輝度
Ｉｄ：拡散反射光
Ｉｓ：鏡面反射光
Ｉｅ：環境光
ここで、上記実施形態と同様に光源が１つである場合を想定し、３次元形状データＳ１′を用いて、顔画像から鏡面反射位置を検出する場合について説明する。
【００７０】
上記式（１４）より、顔表面上の任意の２点における強度値すなわちデータ値の差ΔＩは、拡散反射光Ｉｄおよび鏡面反射光Ｉｓに依存する。まず、拡散反射光Ｉｄのみが存在すると仮定して考えると、表面反射率が一定の箇所において上記図５に示すような２つの測定点Ｐ１，Ｐ２における強度差ΔＩは下記の式（１５）に示すように、定式化することができる。
【００７１】
ΔI=k・s1・cosθ1・Lc-k・s2・cosθ2・Lc=k(s1・cos1-s2・cos2)Lc（１５）
光源の位置および強度は変化しないと仮定できるため、強度差ΔＩは２点における余弦の差すなわち法線ベクトルの方向差および遮断のいずれかにより生じるものとなる。ここで、基準となる測定点（例えばＰ１とする）が拡散反射する位置に存在するものとすると、強度差ΔＩが遮断により生じる場合は、他方の測定点Ｐ２は影となっているため、２点の位置がわずかに違っていても強度値は大きく低下するように変化する。一方、強度差ΔＩが余弦の差により生じる場合は、他方の測定点Ｐ２も拡散反射する位置にあると強度差ΔＩは略余弦の値に比例するものとなるが、他方の測定点Ｐ２が鏡面反射する位置にあると２点の位置がわずかに違っていても強度値は大きく増加するように変化する。このように、位置合わせ後の３次元形状データＳ１′上の拡散反射する位置に１つの測定点Ｐ１を設定し、この測定点Ｐ１のデータ値とこれに近接する任意の測定点Ｐ２（拡散反射する位置に限定されない）におけるデータ値との差を求め、２点の位置の差がわずかであるにもかかわらず、データ値が急激に大きくなる点を鏡面反射する位置として求めることができる。
【００７２】
一方、鏡面反射の式は下記の式（１６）に示すように定式化することができる。
【００７３】
Ｉｓ＝ｋ・ｓ・ｃｏｓｎα・Ｌｃ          （１６）
すなわち、図１１に示すような位置に光源があるとすると、物体を撮影した撮影手段が矢印Ｒの位置、すなわち光源Ｌから出射した光の点Ｐにおける正反射方向にある場合に、点Ｐは鏡面反射することとなり、カメラの位置がＲから角度αずれた位置Ｖに移動するほど鏡面反射光の強度は小さくなる。
【００７４】
したがって、図１２に示すように、測定点設定手段１１において設定された複数の測定点に鏡面反射する測定点が存在するか否かを判断し、存在する場合に鏡面反射する測定点を選択する選択手段２０を設け、仮の光源の方向を推測する前（図１０に示すフローチャートのステップＳ３の前）に、複数の測定点に鏡面反射する測定点が存在するか否かを判断し、鏡面反射する測定点が存在する場合には、図１１に示すように、その位置（Ｐとする）における法線ベクトルが、方向ベクトルＰＬと、方向ベクトルＰＲとがなす角度を２等分するものとなることから、光源が存在する方向をある程度推測することができる。したがって、上記実施形態のようにあらゆる方向に仮想光源を設定しなくとも、光源が存在しそうな方向にのみ仮想光源を設定すれば、仮の光源方向を推定することができるため、演算量を低減して処理を高速に行うことができる。
【００７５】
なお、上記実施形態においては、人物の顔の形状を推定しているが、これに限定されるものではなく、種々の物体の３次元形状を推定することができるものである。
【図面の簡単な説明】
【図１】本発明の実施形態による推定装置の構成を示す概略ブロック図
【図２】２次元画像データと３次元形状データとの位置合わせを説明するための図
【図３】推定手段の構成を示す概略ブロック図
【図４】仮想光源の方向を説明するための図
【図５】測定点における余弦の算出を説明するための図
【図６】余弦と反射光の強度値との関係を示すグラフ
【図７】仮の光源方向を決定するために用いるプロットを示す図
【図８】θの修正を説明するための図
【図９】ｚ値の修正を説明するための図
【図１０】本実施形態の動作を示すフローチャート
【図１１】鏡面反射を説明するための図
【図１２】選択手段を設けた実施形態の構成を示す概略ブロック図
【符号の説明】
１    位置合わせ手段
２    メモリ
３    推定手段
１１  測定点設定手段
１２  余弦算出手段
１３  プロット手段
１４  仮の光源方向推定手段
１５  余弦修正手段
１６  測定点修正手段
１７  制御手段
２０  選択手段
【図１】
0004213327.tif 000004
【図２】
0004213327.tif 000005
【図３】
0004213327.tif 000006
【図４】
0004213327.tif 000007
【図５】
0004213327.tif 000008
【図６】
0004213327.tif 000009
【図７】
0004213327.tif 000010
【図８】
0004213327.tif 000011
【図９】
0004213327.tif 000012
【図１０】
0004213327.tif 000013
【図１１】
0004213327.tif 000014
【図１２】
0004213327.tif 000015