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