(57)【特許請求の範囲】
【請求項１】
互いに位置の異なる３つ以上の光源のそれぞれに設けられ各光源の明るさを検出する検出部により検出された、各光源の明るさに関する情報を取得する取得部と、
前記取得部により取得された各光源の明るさに関する情報に基づいて、前記被写体の面法線情報を算出するための光源条件を補正する補正部と、を有することを特徴とする処理装置。
【請求項２】
前記補正部は、仮想的に前記３つ以上の光源の明るさが等しくなるように、前記３つ以上の光源からの光を前記被写体に順次照射して撮像された３つ以上の画像の輝度情報のうち少なくとも１つの輝度情報を補正することを特徴とする請求項１に記載の処理装置。
【請求項３】
前記補正部は、前記３つ以上の光源の明るさが等しくなるように、少なくとも１つの光源の明るさを補正することを特徴とする請求項１に記載の処理装置。
【請求項４】
前記補正部は、前記光源に印加する電流値を制御することで少なくとも１つの光源の明るさを補正することを特徴とする請求項３に記載の処理装置。
【請求項５】
前記３つ以上の光源からの光を前記被写体に順次照射して撮像された３つ以上の画像の輝度情報に基づいて、前記面法線情報を算出する法線算出部を更に有することを特徴とする請求項１から４のいずれか１項に記載の処理装置。
【請求項６】
前記法線算出部は、前記３つ以上の画像の前記補正部により補正された輝度情報、または前記３つ以上の光源から前記補正部により補正された明るさの光を前記被写体に順次照射して撮像された３つ以上の画像の輝度情報に基づいて前記面法線情報を算出することを特徴とする請求項５に記載の処理装置。
【請求項７】
前記補正部は、前記３つ以上の光源のうち最も明るさが小さい光源の明るさを基準として、他の光源に関する条件を補正することを特徴とする請求項１から６のいずれか１項に記載の処理装置。
【請求項８】
前記検出部を有することを特徴とする請求項１から７のいずれか１項に記載の処理装置。
【請求項９】
前記検出部は、前記光源の輝度値を検出することで前記光源の明るさを検出することを特徴とする請求項８に記載の処理装置。
【請求項１０】
前記検出部は、前記光源の温度を検出することで前記光源の明るさを検出することを特徴とする請求項８に記載の処理装置。
【請求項１１】
前記３つ以上の光源を備える光源部を更に有することを特徴とする請求項１から１０のいずれか１項に記載の処理装置。
【請求項１２】
互いに位置の異なる３つ以上の光源からの光を被写体に順次照射して３つ以上の画像を撮像する撮像部と、
請求項１から７のいずれか１項に記載の処理装置と、を有することを特徴とする撮像装置。
【請求項１３】
互いに位置の異なる３つ以上の光源を備える光源部および前記検出部を更に有することを特徴とする請求項１２に記載の撮像装置。
【請求項１４】
互いに位置の異なる３つ以上の光源のそれぞれに設けられ各光源の明るさを検出する検出部により検出された、各光源の明るさに関する情報を取得するステップと、
取得された各光源の明るさに関する情報に基づいて、前記被写体の面法線情報を算出するための光源条件を補正するステップと、を有することを特徴とする処理方法。
【請求項１５】
コンピュータに請求項１４に記載の処理方法を実行させることを特徴とするプログラム。
【請求項１６】
請求項１５に記載のプログラムを記録したコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理装置、撮像装置、処理方法、プログラム、および記録媒体に関する。
【背景技術】
【０００２】
被写体に関するより多くの物理情報を取得しておくことで、撮像後の画像処理において、物理モデルに基づく画像生成を行うことができる。例えば、被写体の見えを変更した画像を生成することが可能となる。被写体の見えは、被写体の形状情報、被写体の反射率情報、光源情報などで決定される。光源から射出され被写体によって反射された反射光の物理的な振る舞いは局所的な面法線に依存するため、形状情報としては３次元形状ではなく面法線情報を用いることが特に有効である。
【０００３】
従来、被写体の面法線と光源方向に基づいた反射特性を仮定し、複数の光源位置での被写体の輝度情報と仮定した反射特性から面法線を決定する照度差ステレオ法が知られている。（例えば、非特許文献１参照）方法である。被写体の反射特性としてはランバートの余弦則に従うランバート反射モデルが用いられることが多い。
【０００４】
一般的に、物体の反射光は、鏡面反射光と拡散反射光の各成分を有する。鏡面反射光とは、物体表面での正反射であり、物体表面（界面）においてフレネルの式に従うフレネル反射を指す。拡散反射光とは、被写体の表面を透過した後に物体内部で散乱されて返ってくる光を指す。鏡面反射成分はランバートの余弦則では表せないため、撮像装置で観測される被写体からの反射光に鏡面反射成分が含まれていると、照度差ステレオ法を用いて面法線を正確に算出することができない。光源からの光が当たらない陰影部においても仮定した反射モデルからのずれが生じ、被写体の面法線情報を正確に取得することができない。例えば、特許文献１には、４つ以上の光源を使用して得られた複数の面法線候補から、真の面法線を求める方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１２２１５８号公報
【非特許文献】
【０００６】
【非特許文献１】松下康之、“照度差ステレオ”、情報処理学会研究報告、Ｖｏｌ．２０１１−ＣＶＩＭ−１７７、Ｎｏ．２９、ｐｐ．１−１２、２０１１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
デジタルカメラなどの撮像装置において照度差ステレオ法を用いて被写体の面法線を取得するためには、照射光源位置ごとの輝度情報の異なる複数の画像が必要となる。照度差ステレオ法では、被写体に照射する光量が等しいことを前提としているため、位置の異なる複数の光源間で照射光量に違いが生じた場合、算出された面法線は真の面法線から大きくずれてしまう。非特許文献１および特許文献１では、照射光量の違いによる影響への対応については記載されておらず、何らかの要因で照射光量にばらつきが生じた場合、面法線の算出精度が劣化してしまう。
【０００８】
このような課題に鑑みて、本発明は、照射光量のばらつきが生じた場合であっても面法線の算出精度を保つことが可能な処理装置、撮像装置、処理方法、プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一側面としての処理装置は、互いに位置の異なる３つ以上の光源のそれぞれに設けられ各光源の明るさを検出する検出部により検出された、各光源の明るさに関する情報を取得する取得部と、前記取得部により取得された各光源の明るさに関する情報に基づいて、前記被写体の面法線情報を算出するための光源条件を補正する補正部を有することを特徴とする。
【００１１】
また、本発明の他の側面としての撮像装置は、互いに位置の異なる３つ以上の光源からの光を被写体に順次照射して３つ以上の画像を撮像する撮像部と、上記処理装置と、を有することを特徴とする。
【００１２】
また、本発明の他の側面としての処理方法は、互いに位置の異なる３つ以上の光源のそれぞれに設けられ各光源の明るさを検出する検出部により検出された、各光源の明るさに関する情報を取得するステップと、取得された各光源の明るさに関する情報に基づいて、前記被写体の面法線情報を算出するための光源条件を補正するステップを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、照射光量のばらつきが生じた場合であっても面法線の算出精度を保つことが可能な処理装置、撮像装置、処理方法、プログラム、および記録媒体を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る撮像装置の外観図である（実施例１、２、３）。
【図２Ａ】実施例１の撮像装置のブロック図である。
【図２Ｂ】処理システムを示す図である（実施例１、２、３）。
【図３】光源部の説明図である（実施例１、２）。
【図４】実施例１の面法線情報算出処理を示すフローチャートである。
【図５】実施例２の撮像装置のブロック図である。
【図６】実施例２の面法線情報算出処理を示すフローチャートである。
【図７】実施例３の撮像装置のブロック図である。
【図８】光源部の説明図である（実施例３）。
【図９】Ｔｏｒｒａｎｃｅ−Ｓｐａｒｒｏｗモデルの説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照番号を付し、重複する説明は省略する。
【００１６】
照度差ステレオ法は、被写体の面法線と被写体から光源への方向（光源方向）に基づく被写体の反射特性を仮定し、複数の光源位置での被写体の輝度情報と仮定した反射特性から面法線情報を算出する方法である。所定の面法線と光源の位置が与えられたときに反射率が一意に定まらない場合、反射特性はランバートの余弦則に従うランバート反射モデルで近似すればよい。鏡面反射成分は、図９に示されるように、光源ベクトルｓと視線方向ベクトルｖの２等分線と、面法線ｎのなす角αに依存する。したがって、反射特性は、視線方向に基づく特性としてもよい。また、輝度情報は、光源が点灯している場合と消灯している場合のそれぞれの被写体を撮像し、これらの差分をとることで環境光等の光源以外の光源による影響を除いてもよい。
【００１７】
以下、ランバート反射モデルで反射特性を仮定した場合について説明する。反射光の輝度値をｉ、物体のランバート拡散反射率をρｄ、入射光の強さをＥ、物体から光源への方向を示す単位ベクトル(光源方向ベクトル)をｓ、物体の単位面法線ベクトルをｎとすると、輝度ｉはランバートの余弦則から以下の式（１）で示される。
【００１８】
【数１】
0006716295.tif 000002
【００１９】
異なるＭ個（Ｍ≧３）の光源ベクトルの各成分をｓ１、ｓ２、・・・、ｓＭ、光源ベクトルの成分ごとの輝度値をｉ１、ｉ２、・・・ｉＭとすると、式（１）は以下の式（２）で示される。
【００２０】
【数２】
0006716295.tif 000003
【００２１】
式（２）の左辺はＭ行１列の輝度ベクトル、右辺の［ｓ１Ｔ、・・・ｓＭＴ］はＭ行３列の光源方向を示す入射光行列Ｓ、ｎは３行１列の単位面法線ベクトルである。Ｍ＝３の場合は、入射光行列Ｓの逆行列Ｓ−１を用いて、Ｅρｄｎは以下の式（３）で示される。
【００２２】
【数３】
0006716295.tif 000004
【００２３】
式（３）の左辺のベクトルのノルムが入射光の強さＥとランバート拡散反射率ρｄの積であり、正規化したベクトルが物体の面法線ベクトルとして算出される。すなわち、入射光の強さＥとランバート拡散反射率ρｄは積の形でのみ条件式に現れるので、Ｅρｄを１つの変数とみなすと、式（３）は単位面法線ベクトルｎの２自由度と合わせて未知の３変数を決定する連立方程式とみなせる。したがって、少なくとも３つの光源を用いて輝度情報を取得することで、各変数を決定することができる。なお、入射光行列Ｓが正則行列でない場合は逆行列が存在しないため、入射光行列Ｓが正則行列となるように入射光行列Ｓの各成分ｓ１〜ｓ３を選択する必要がある。すなわち、成分ｓ３を成分ｓ１，ｓ２に対して線形独立に選択することが望ましい。
【００２４】
また、Ｍ＞３の場合は求める未知変数より多い条件式が得られるので、任意に選択した３つの条件式からＭ＝３の場合と同様の方法で単位面法線ベクトルｎを算出すればよい。４つ以上の条件式を用いる場合は、入射光行列Ｓが正則行列ではなくなるため、例えば、Ｍｏｏｒｅ−Ｐｅｎｒｏｓｅ疑似逆行列を使って近似解を算出してもよい。また、フィッティング手法や最適化手法によって単位面法線ベクトルｎを算出してもよい。
【００２５】
被写体の反射特性をランバート反射モデルとは異なるモデルで仮定した場合は、条件式が単位面法線ベクトルｎの各成分に対する線形方程式と異なる場合がある。その場合、未知変数以上の条件式が得られれば、フィッティング手法や最適化手法を用いることができる。
【００２６】
また、Ｍ＞３の場合には３以上Ｍ−１以下の複数の条件式が得られるため、単位面法線ベクトルｎの複数の解の候補を求めることができる。この場合、さらに別の条件を用いて複数の解の候補から解を選択すればよい。例えば、単位面法線ベクトルｎの連続性を条件として用いることができる。単位面法線ｎを撮像装置の１画素ごとに算出する場合、画素（ｘ、ｙ）での面法線をｎ（ｘ、ｙ）として、ｎ（ｘ−１、ｙ）が既知であれば以下の式（４）で示される評価関数が最小となる解を選択すればよい。
【００２７】
【数４】
0006716295.tif 000005
【００２８】
また、ｎ（ｘ＋１、ｙ）やｎ（ｘ、ｙ±１）も既知であれば、以下の式（５）が最小となる解を選択すればよい。
【００２９】
【数５】
0006716295.tif 000006
【００３０】
既知の面法線がなく、全画素位置で面法線の不定性があるとすれば、以下の式（６）で示される式（５）の全画素での総和が最小となるように解を選択してもよい。
【００３１】
【数６】
0006716295.tif 000007
【００３２】
なお、最近傍以外の画素での面法線を用いてもよいし、注目する画素位置からの距離に応じて重みづけした評価関数を用いてもよい。
【００３３】
また、別の条件として、任意の光源位置での輝度情報を用いてもよい。ランバート反射モデルに代表される拡散反射モデルでは、単位面法線ベクトルと光源方向ベクトルが近いほど反射光の輝度が大きくなる。よって、複数の光源方向での輝度値のうち最も輝度値が大きくなる光源方向ベクトルに近い解を選択することで、単位面法線ベクトルを決定することができる。
【００３４】
また、鏡面反射モデルでは、光源ベクトルをｓ、物体からカメラへの方向の単位ベクトル(カメラの視線ベクトル)をｖとすると、以下の式（７）が成り立つ。
【００３５】
【数７】
0006716295.tif 000008
【００３６】
式（７）に示されるように、光源方向ベクトルｓとカメラの視線ベクトルｖが既知であれば単位面法線ベクトルｎを算出することができる。表面に粗さがある場合、鏡面反射も出射角の広がりを持つが、平滑面として求めた解の付近に広がるため、複数の解の候補うち最も平滑面に対する解に近い候補を選択すればよい。また、複数の解の候補の平均によって真の解を決定してもよい。
【実施例１】
【００３７】
図１は本実施例の撮像装置１０００Ａの外観図であり、図２は本実施例の撮像装置１０００Ａのブロック図である。撮像装置１０００Ａは、被写体を撮像する撮像部１００および光源部２００を備える。撮像部１００は、撮像光学系１０１を備える。本実施例では、光源部２００は、撮像光学系１０１の光軸を中心とする同心円状に等間隔で配置される８個の光源から構成される。各光源部は、各光源部の明るさを検出する明るさ検出部（検出部）２０１を備える。なお、照度差ステレオ法を実施する際に必要な光源は少なくとも３個であるため、光源部２００は３個以上の光源を備えていればよい。また、本実施例では光源部２００は複数の光源を撮像光学系１０１の光軸を中心とした同心円状に等間隔で配置しているが、本発明はこれに限定されない。また、本実施例では、光源部２００は、撮像装置１０００Ａに内蔵されているが、着脱可能に取り付けられる構成としてもよい。レリーズボタン３００は、撮影やオートフォーカスを作動させるためのボタンである。
【００３８】
図３は、光源部２００の説明図である。光源部２００は、発光部２００ａと発光部２００ａが底部に配置された筐体２００ｂを備える。本実施例では、発光部２００ａとしてＬＥＤ（Ｌｉｇｈｔ  ＥｍｉｔｔｉｎｇＤｉｏｄｅ）を使用するが、キセノンランプ等を使用してもよい。明るさ検出部２０１は、検出面を発光部２００ａ側に向けて配置されているため、外光の影響を受けない。また、明るさ検出部２０１は、発光部２００ａの発光量が温度や経年劣化によって変動した場合、各光源部の少なくとも一部の輝度値を検出することで各光源部の発光量変動（基準となる発光量に対する比率や差分）を検出する。なお、本実施例では、明るさ検出部２０１はそれぞれ、各光源部の輝度値を検出するが、各光源部の発光量（照射光量）を推定するために必要な情報であれば照度や光度などの測光量を検出してもよい。つまり、本発明の明るさとは、一般的な測光量として知られる単位の物理量が含まれる。
【００３９】
撮像光学系１０１は、絞り１０１ａを備え、被写体から射出される光を撮像素子１０２上に結像させる。本実施例では、撮像光学系１０１は、撮像装置１０００Ａに内蔵されているが、一眼レフカメラのように撮像装置１０００Ａに着脱可能に取り付けられる構成であってもよい。撮像素子１０２は、ＣＣＤセンサやＣＭＯＳセンサ等の光電変換素子により構成され、被写体を撮像する。撮像素子１０２の光電変換によって生成されるアナログ電気信号は、Ａ／Ｄコンバータ１０３でデジタル信号に変換されて画像処理部１０４に入力される。
【００４０】
画像処理部１０４は、デジタル信号に対して一般的に行われる画像処理と併せて、被写体の面法線情報を取得する。面法線情報とは、面法線の１自由度の候補を少なくとも１つ以上決定する情報、面法線の複数の解候補から真の解を選択するための情報、および求めた面法線の妥当性に関する情報である。画像処理部１０４は、明るさ検出部２０１の検出結果に基づいて面法線情報を算出するための光源条件を補正する光源条件補正部（補正部）１０４ａ、および面法線情報を算出する法線算出部１０４ｂを備える。画像処理部１０４で処理された出力画像は、半導体メモリや光ディスク等の画像記録部１０９に保存される。また、出力画像を表示部１０５に表示してもよい。本実施例では、光源条件補正部１０４ａおよび法線算出部１０４ｂは、撮像装置１０００Ａに内蔵されているが、後述するように撮像装置１０００Ａとは別に構成されてもよい。
【００４１】
情報入力部１０８は、ユーザーによって選択された撮像条件（絞り値、露出時間、および焦点距離など）をシステムコントローラ１１０に供給する。照射光源制御部１０６は、システムコントローラ１１０から出力される指示に応じて光源部２００の発光状態を制御する。撮像制御部１０７は、システムコントローラ１１０から出力される情報に基づいて、ユーザーが選択した所望の撮影条件で画像を取得する。ＲＯＭ１１１は、システムコントローラ１１０によって実行される各種のプログラムやそれに必要となるデータを格納している。また、ＲＯＭ１１１は、明るさ検出部２０１の検出結果に対応する光源条件の補正値が記録されたテーブルを格納している。
【００４２】
本実施例の面法線情報算出処理について、図４のフローチャートを参照して説明する。図４は、本実施例の面法線情報算出処理を示すフローチャートである。本実施例の面法線情報算出処理は、システムコントローラ１１０および画像処理部１０４により、コンピュータを処理装置として機能させるための処理プログラムにしたがって実行される。なお、処理プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録してもよい。
【００４３】
ステップＳ１０１では、システムコントローラ１１０は、情報入力部１０８からユーザーによって設定される撮像条件（絞り値、露出時間、または焦点距離など）を設定する。
【００４４】
ステップＳ１０２では、システムコントローラ１１０は、レリーズボタン３００の全押し動作に連動し、ステップＳ１０１で設定された撮像条件にて複数光源位置での被写体の撮像を行う。具体的には、システムコントローラ１１０は、照射光源制御部１０６を介して光源部２００の互いに位置の異なる少なくとも３つ以上の光源からの光を被写体に順次照射させ、撮像制御部１０７を介して撮像部１００に被写体を撮像させる。Ａ／Ｄコンバータ１０３は、撮像素子１０２から出力されたアナログ信号をＡ／Ｄ変換することで撮影画像（輝度情報）を形成し、画像処理部１０４に出力する。また、明るさ検出部２０１は、各光源部の少なくとも一部の輝度値を検出し、温度や経年劣化によって各光源部の発光部２００ａの発光量が変動する場合、各光源部の発光量の変動量を検出する。なお、画像処理部１０４は、画像生成のために、通常の現像処理や各種の画像補正処理を実行してもよい。
【００４５】
ステップＳ１０３では、システムコントローラ１１０は、光源条件補正部１０４ａに、明るさ検出部２０１の検出結果に基づいて、複数光源位置での被写体の撮像によって得られた輝度情報を補正させる。照度差ステレオ法では、各光源の発光量は一定であることを前提条件（光源条件）としている。そのため、温度や経年劣化によって各光源部の発光部２００ａの発光量が変動し、位置の異なる複数の光源間で発光量に違いが生じた場合、算出された面法線は真の面法線から大きくずれてしまう。そこで、本ステップでは、光源条件補正部１０４ａは、明るさ検出部２０１の検出結果に基づいて、各光源位置での被写体の撮像によって得られた輝度情報を各光源部の発光量が仮想的に等しくなるように補正する。
【００４６】
以下、８個の光源のうち第１の光源の発光量のみが変動した場合を例として、本ステップの補正について説明する。なお、第２から第８の光源は、正常に発光し発光量が等しいため、補正する必要はない。また、簡単のため、明るさ検出部２０１が検出する輝度値は直接、各光源の発光量を示すものとする。
【００４７】
まず、明るさ検出部２０１は、他の光源の輝度値に比べて低い第１の光源の輝度値を検出する。例として、明るさ検出部２０１は、第１の光源の輝度値が正常発光時の輝度値に対して５０％の輝度値であることを検出したとする。次に、システムコントローラ１１０は、明るさ検出部２０１の検出結果を取得し、ＲＯＭ１１１に保存された光源条件の補正値が記録されたテーブルに基づく補正信号を光源条件補正部１０４ａに出力する。ここでは、第１の光源の発光量が他の光源の発光量に比べて半分の量であるため、システムコントローラ１１０は、第１の光源を照射して取得された輝度情報の輝度値を２倍に補正することを指示する補正信号を光源条件補正部１０４ａに出力する。最後に、光源条件補正部１０４ａは、第１の光源を照射して取得された輝度情報の輝度値が２倍になるように補正する。このような補正により、発光量が低下した第１の光源を照射して取得された輝度情報を、正常に発光している他の光源の発光量を照射して取得された輝度情報と仮想的に等しくすることができる。そのため、仮想的に全ての光源が同一の発光量である輝度情報を取得することができ、発光部２００ａの発光量が変動した場合においても面法線の算出精度の低下を防ぐことができる。
【００４８】
なお、上記例では、明るさ検出部２０１が検出する輝度値は直接、各光源の発光量を示すものとしているが、実際には明るさ検出部２０１は各光源の一部の輝度値のみを検出しているため各光源の全発光量とは異なる場合がある。そのため、事前に計測された各光源の発光量と明るさ検出部２０１の検出結果の相対関係を、ＲＯＭ１１１の光源条件の補正値が記録されたテーブルに反映させておくことが好ましい。また、システムコントローラ１１０は、全ての光源に対して同一のテーブルを用いてもよいし、光源ごとに異なるテーブルを用いてもよい。また、光源条件として他の光源に対する輝度値の比ではなく、差を用いてもよい。また、光源条件補正部１０４ａは、発光量の小さい光源を照射して取得された輝度情報の輝度値ではなく、他の発光量の大きい光源を照射して取得された輝度情報の輝度値を補正してもよい。また、複数の光源間で発光量に違いがある場合、光源条件補正部１０４ａは、基準となる光源を照射して取得された輝度情報の輝度値に合わせて他の光源を照射して取得された輝度情報の輝度値を補正してもよい。
【００４９】
ステップＳ１０４では、システムコントローラ１１０は、法線算出部１０４ｂに、ステップＳ１０３で補正された輝度情報に基づいて面法線情報を算出させる。法線算出部１０４ｂは、上述した照度差ステレオ法を用いて面法線情報を算出する。画像記録部１０９が面法線情報や画像情報を保存し、フローは完了する。
【００５０】
以上説明したように、本実施例では、各光源が明るさ検出部２０１を備え、明るさ検出部２０１の検出結果に基づいて各撮像条件で取得される輝度情報を補正することで、光源の発光量が変動した場合であっても面法線の算出精度を保つことが可能となる。
【００５１】
なお、本実施例では撮像装置１０００Ａ内で被写体の面法線情報を算出しているが、図２Ｂに示されるように、撮像装置１０００Ａとは異なる処理システム５００を用いて被写体の面法線情報を算出してもよい。図２Ｂに示される処理システム５００は、処理装置５０１、法線算出部５０２、撮像部５０３、光源部５０４、および明るさ検出部５０５を備える。処理装置５０１は、光源条件補正部５０１ａを備える。処理システム５００を用いて面法線情報を算出する場合、まず、光源部５０４が被写体に少なくとも３つ以上の光源位置から光を照射し、撮像部５０３が各光源位置において画像を撮像する。このとき、明るさ検出部５０５は、各光源の輝度値を検出する。なお、明るさ検出部５０５は、各光源の温度を検出してもよい。光源位置は、光源部５０４が１つの光源から構成される場合、撮影ごとに光源部５０４を移動させればよいし、光源部５０４が少なくとも３つ以上の光源を備える場合、撮影ごとに光を照射する光源を変更すればよい。次に、光源条件補正部５０１ａが明るさ検出部５０５の検出結果に基づいて輝度情報の輝度値を補正する。最後に、法線算出部５０２が光源条件補正部５０１ａにより補正された輝度情報に基づいて面法線情報を算出する。なお、処理システム５００は、少なくとも処理装置５０１と明るさ検出部５０５を備えていればよい。また、処理装置５０１は、法線算出部５０２を備えてもよい。また、撮像部５０３および光源部５０４はそれぞれ、個別の装置であってもよいし、光源部５０４が撮像部５０３に内蔵されていてもよい。
【実施例２】
【００５２】
図５は、本実施例の撮像装置１０００Ｂのブロック図である。撮像装置１０００Ｂの外観構成は、図１に示される実施例１の撮像装置１０００Ａの外観の構成と同様であるため詳細な説明は省略する。また、撮像装置１０００Ｂの内部の構成は、光源条件補正部１０４ａを備えていないことを除き、撮像装置１０００Ａの内部の構成と同様であるため詳細な説明は省略し、撮像装置１０００Ａと異なる部分についてのみ説明する。
【００５３】
照射光源制御部（補正部）１０６は、システムコントローラ１１０から出力される指示に応じて光源部２００の発光状態を制御する。また、照射光源制御部１０６は、明るさ検出部２０１の検出結果に基づいて、複数光源位置での被写体撮像時の光源の明るさを補正する。なお、実施例１と同様に、画像処理部１０４が光源条件補正部１０４ａを備え、光源条件補正部１０４ａが照射光源制御部１０６の代わりに明るさ検出部２０１の検出結果に基づいて、複数光源位置での被写体撮像時の光源の明るさを補正してもよい。
【００５４】
本実施例の面法線情報算出処理について、図６のフローチャートを参照して説明する。図６は、本実施例の面法線情報算出処理を示すフローチャートである。本実施例の面法線情報算出処理は、システムコントローラ１１０および画像処理部１０４により、コンピュータを処理装置として機能させるための処理プログラムにしたがって実行される。なお、処理プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録してもよい。
【００５５】
ステップＳ２０１では、システムコントローラ１１０は、情報入力部１０８からユーザーによって設定される撮像条件（絞り値、露出時間、または焦点距離など）を設定する。
【００５６】
ステップＳ２０２では、システムコントローラ１１０は、レリーズボタン３００の半押し動作に連動し、撮像装置１０００Ｂを撮影準備状態にするとともに、ステップＳ２０１で設定された撮影条件にて各光源をプリ発光させる。同時に、明るさ検出部２０１は、各光源部の少なくとも一部の輝度値を検出し、温度や経年劣化によって各光源部の発光部２００ａの発光量が変動する場合、各光源部の発光量の変動量を検出する。
【００５７】
ステップＳ２０３では、システムコントローラ１１０は、照射光源制御部１０６に、明るさ検出部２０１の検出結果に基づいて、照射光源制御値を制御することで各光源の発光量（光源条件）を補正させる。本実施例では、照射光源制御部１０６は、各光源の発光量を補正するために各光源部に印加する電流値を制御する。なお、照射光源制御部１０６は、各光源の発光量を補正可能であれば、他の照射光源制御値（例えば、光源の温度や光源に印加する電圧）を制御してもよい。照度差ステレオ法では、各光源の発光量は一定であることを前提条件（光源条件）としている。そのため、温度や経年劣化によって各光源部の発光部２００ａの発光量が変動し、位置の異なる複数の光源間で発光量に違いが生じた場合、算出された面法線は真の面法線から大きくずれてしまう。そこで、本ステップでは、照射光源制御部１０６は、明るさ検出部２０１の検出結果に基づいて、各光源位置での被写体の撮像時に各光源部の発光量が等しくなるように補正する。
【００５８】
以下、８個の光源のうち第１の光源の発光量のみが変動した場合を例として、第１の光源の発光量を他の光源の発光量と等しくする補正方法について説明する。なお、第２から第８の光源は、正常に発光し発光量が等しいため、補正する必要はない。また、簡単のため、明るさ検出部２０１が検出する輝度値は直接、各光源の発光量を示すものとする。
【００５９】
まず、明るさ検出部２０１は、他の光源の輝度値に比べて低い第１の光源の輝度値を検出する。例として、明るさ検出部２０１は、第１の光源の輝度値が正常発光時の輝度値に対して５０％の輝度値であることを検出したとする。次に、システムコントローラ１１０は、明るさ検出部２０１の検出結果を取得し、ＲＯＭ１１１に保存された光源条件の補正値が記録されたテーブルに基づく補正信号を照射光源制御部１０６に出力する。ここでは、第１の光源の発光量が他の光源の発光量に比べて半分の量であるため、システムコントローラ１１０は、第１の光源に印加する電流値を２倍に補正することを指示する補正信号を照射光源制御部１０６に出力する。最後に、照射光源制御部１０６は、第１の光源に印加する電流値が２倍になるように補正する。このような補正により、プリ発光時に発光量の低下が検出された第１の光源の発光量を正常に発光している他の光源の発光量と等しくすることができる。そのため、仮想的に全ての光源が同一の発光量である輝度情報を取得することができ、発光部２００ａの発光量が変動した場合においても面法線の算出精度の低下を防ぐことができる。
【００６０】
なお、上記例では、明るさ検出部２０１が検出する輝度値は直接、各光源の発光量を示すものとしているが、実際には明るさ検出部２０１は各光源の一部の輝度値のみを検出しているため各光源の全発光量とは異なる場合がある。そのため、事前に各光源の発光量と明るさ検出部２０１の検出結果の相対関係を計測し、ＲＯＭ１１１に保存された光源条件の補正値が記録されたテーブルに計測結果を反映させておくことが好ましい。また、システムコントローラ１１０は、全ての光源に対して同一のテーブルを用いてもよいし、光源ごとに異なるテーブルを用いてもよい。また、照射光源制御部１０６は、全光源の発光量を等しくするために発光量の小さい光源に印加する電流値を補正したが、他の発光量の大きい光源に印加する電流値を補正してもよい。特に、光源の経年劣化や構造欠陥により光源に印加する電流値を増加させることができない場合などは、他の発光量の大きい光源に印加する電流値を補正することが好ましい。
【００６１】
ステップＳ２０４では、システムコントローラ１１０は、レリーズボタン３００の全押し動作に連動し、第１撮像条件にて複数光源位置での被写体の撮像を行う。このとき、Ａ／Ｄコンバータ１０３は、撮像素子１０２から出力されたアナログ信号をＡ／Ｄ変換することで撮影画像（輝度情報）を形成し、画像処理部１０４に出力する。なお、画像処理部１０４は、画像生成のために、通常の現像処理や各種の画像補正処理を実行してもよい。
【００６２】
ステップＳ２０５では、システムコントローラ１１０は、法線算出部１０４ｂに、ステップＳ２０４で取得された輝度情報に基づいて面法線情報を算出させる。法線算出部１０４ｂは、上述した照度差ステレオ法を用いて面法線情報を算出する。画像記録部１０９が面法線情報や画像情報を保存し、フローは完了する。
【００６３】
以上説明したように、本実施例では、各光源が明るさ検出部２０１を備え、プリ発光時の明るさ検出部２０１の検出結果に基づいて各光源の発光量を補正するため、光源の発光量が変動した場合であっても面法線の算出精度を保つことが可能となる。
【００６４】
なお、本実施例では撮像装置１０００Ｂ内で被写体の面法線情報を算出しているが、図２Ｂに示される処理システム５００を用いて被写体の面法線情報を算出してもよい。この場合、処理装置５０１に備えられた光源条件補正部５０１ａに光源条件を補正させればよい。
【実施例３】
【００６５】
図７は、本実施例の撮像装置１０００Ｃのブロック図である。本実施例の撮像装置１０００Ｃの外観構成は、図１に示される実施例１の撮像装置１０００Ａの外観の構成と同様であるため詳細な説明は省略する。また、撮像装置１０００Ｃの内部の構成は明るさ検出部２０１が温度検出部３０１に変更されたことを除き、図２に示される撮像装置１０００Ａの内部の構成と同様であるため詳細な説明は省略し、撮像装置１０００Ａと異なる部分についてのみ説明する。
【００６６】
図８は、光源部２００の説明図である。光源部２００は、発光部２００ａと発光部２００ａが底部に配置された筐体２００ｂを備える。本実施例では、発光部２００ａとしてＬＥＤ（Ｌｉｇｈｔ  ＥｍｉｔｔｉｎｇＤｉｏｄｅ）を使用するが、従来のキセノンランプ等を使用してもよい。各光源部は、発光部２００ａの近傍に配置され、発光部２００ａの温度を検出する温度検出部（検出部）３０１を備える。発光部２００ａとして使用されるＬＥＤの発光量は温度と印加電流に影響することが知られており、温度検出部３０１を用いて発光部２００ａの温度を検出することは各光源の発光量を検出することに等しい。すなわち、温度検出部３０１は、明るさ検出部の一種であるとみなされる。
【００６７】
また、本実施例では、ＲＯＭ１１１は、システムコントローラ１１０によって実行される各種のプログラムやそれに必要となるデータを格納するとともに、温度検出部３０１の検出結果に応じた光源条件の補正値が記録されたテーブルを格納している。また、事前に計測された各光源の発光量と温度検出部３０１の検出結果の相対関係を、ＲＯＭ１１１の光源条件の補正値が記録されたテーブルに反映させておくことが好ましい。また、全ての光源に対して使用する１つのテーブルをＲＯＭ１１１に格納しておいてもよいし、光源ごとに異なるテーブルを格納しておいてもよい。
【００６８】
システムコントローラ１１０および画像処理部１０４は、実施例１または実施例２のフローを用いて面法線情報を算出することができる。実施例１のフローを用いる場合は、光源条件補正部１０４ａに光源条件を補正させ、実施例２のフローを用いる場合は、照射光源制御部１０６に光源条件を補正させる。
【００６９】
以上説明したように、本実施例では、各光源が温度検出部３０１を備え、温度検出部３０１の検出結果に基づいて各撮影条件で取得される輝度情報または各光源の発光量を補正する。そのため、光源の発光量が変動した場合であっても面法線の算出精度を保つことが可能となる。
【００７０】
なお、本実施例では撮像装置１０００Ｃ内で被写体の面法線情報を算出しているが、図２Ｂに示される処理システム５００を用いて被写体の面法線情報を算出してもよい。
【００７１】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。実施例１および実施例２では、光源条件を補正するために輝度情報や光源の発光量を補正しているが、本発明はこれに限定されない。例えば、色温度や発光波長などの色情報を補正してもよい。
【符号の説明】
【００７２】
１０４    画像処理部（画像処理装置）
１０４ａ  光源条件補正部（補正部）
【図１】
0006716295.tif 000009
【図２Ａ】
0006716295.tif 000010
【図２Ｂ】
0006716295.tif 000011
【図３】
0006716295.tif 000012
【図４】
0006716295.tif 000013
【図５】
0006716295.tif 000014
【図６】
0006716295.tif 000015
【図７】
0006716295.tif 000016
【図８】
0006716295.tif 000017
【図９】
0006716295.tif 000018