以下、実施形態について説明するが、以下に説明する実施形態に限定されるものではない。なお、以下の実施形態では、撮像制御装置の一例として、2つの魚眼レンズを光学系に含む撮像体を備えるとともに、2つの魚眼レンズで撮像された撮像画像に基づいて撮像条件を決定する機能を備えた、全天球撮像システム10を用いて説明する。つまり、全天球撮像システム10は、3つ以上の魚眼レンズを光学系に含む撮像体を備えるとともに、3つ以上の魚眼レンズで撮像された撮像画像に基づいて撮像条件を決定する機能を備えていてもよい。なお、説明する実施形態では、魚眼レンズは、広角レンズや、超広角レンズと呼ばれるものを含むものとする。
以下、図1および図2を参照しながら、本実施形態による全天球撮像システムの全体構成について説明する。図1は、本実施形態による全天球撮像システム(以下、単に、撮像システムと参照する。)10を示す断面図である。図1に示す撮像システム10は、撮像体12と、上記撮像体12および図示しないコントローラやバッテリなどの部品を保持する筐体14と、上記筐体14に設けられたシャッター・ボタン18とを備える。
図1に示す撮像体12は、2つの結像光学系20A,20Bと、CMOS(Complementary Metal Oxide Semiconductor)センサやCCD(Charge Coupled Device)センサなどの2つの固体撮像素子22A,22Bとを含む。本実施形態において、結像光学系20と固体撮像素子22とを1個ずつ組み合わせたものを撮像光学系と参照する。結像光学系20は、それぞれ、例えば6群7枚で魚眼レンズとして構成することができる。上記魚眼レンズは、図1に示す実施形態では、180度(=360度/n;n=2)より大きい全画角を有し、好適には、185度以上の画角を有し、より好適には、190度以上の画角を有する。
2つの結像光学系20A,20Bの光学素子(レンズ、プリズム、フィルタおよび開口絞り)は、その光軸が、対応する固体撮像素子22の受光領域の中心部に直交して位置するように固体撮像素子22A,22Bに対して位置関係が定められる。光学素子は、同時に、受光領域が、対応する魚眼レンズの結像面となるように位置決めされる。固体撮像素子22は、それぞれ、受光領域が面積エリアを成す2次元の撮像素子であり、組み合わせられる結像光学系20により集光された光を画像信号に変換する。
図1に示す実施形態では、結像光学系20A,20Bは、同一仕様のものであり、それぞれの光軸が合致するように、互いに逆向きに組み合わせられる。固体撮像素子22A,22Bは、受光した光分布を画像信号に変換して、図示しないコントローラ上の画像処理手段に出力する。画像処理手段では、固体撮像素子22A,22Bからそれぞれ入力される撮像画像をつなぎ合わせて合成し、立体角4πラジアンの画像(以下「全天球画像」と参照する。)を生成する。全天球画像は、撮影地点から見渡すことのできる全ての方向を撮影したものとなる。ここで、図1に示す実施形態では、全天球画像を生成しているが、水平面のみ360度を撮影した、いわゆるパノラマ画像であってもよい。
上述したように、魚眼レンズが180度を超える全画角を有するため、全天球画像を構成する際には、各撮像光学系で撮像した撮影画像において、重複する画像部分が、同一像を表す基準データとして画像つなぎ合わせの参考とされる。生成された全天球画像は、例えば、撮像システム10が備え、または外部接続される、ディスプレイ装置、印刷装置、SD(登録商標)カードやコンパクトフラッシュ(登録商標)などの外部記憶媒体などに出力される。
図2は、本実施形態による撮像システム10のハードウェア構成を示す。撮像システム10は、デジタル・スチルカメラ・プロセッサ(以下、単にプロセッサと参照する。)100と、鏡胴ユニット102と、プロセッサ100に接続される種々のコンポーネントとを含み構成される。鏡胴ユニット102は、上述した2組のレンズ光学系20A,20Bと、固体撮像素子22A,22Bとを含む。固体撮像素子22は、プロセッサ100内の後述するCPU130からの制御指令により制御される。
プロセッサ100は、ISP(Image Signal Processor)108と、DMAC(Direct Memory Access Controller)110と、メモリアクセスの調停のためのアービタ(ARBMEMC)112と、メモリアクセスを制御するMEMC(Memory Controller)114と、歪曲補正・画像合成ブロック118とを含む。ISP108A,108Bは、それぞれ、固体撮像素子22A,22Bの信号処理を経て入力された画像に対し、自動露出(AE:Automatic Exposure)制御、ホワイトバランス設定やガンマ設定を行う。
MEMC114には、SDRAM116が接続される。SDRAM116には、ISP108A,180Bおよび歪曲補正・画像合成ブロック118において処理を施す際に、データが一時的に保存される。歪曲補正・画像合成ブロック118は、2つの撮像光学系から得られた2つの撮影画像に対し、3軸加速度センサ120からの情報を利用し、歪曲補正とともに天地補正を施し、画像合成する。
プロセッサ100は、さらに、DMAC122と、画像処理ブロック124と、CPU130と、画像データ転送部126と、SDRAMC128と、メモリカード制御ブロック140と、USBブロック146と、ペリフェラル・ブロック150と、音声ユニット152と、シリアルブロック158と、LCDドライバ162と、ブリッジ168とを含む。
CPU130は、当該撮像システム10の各部の動作を制御する。画像処理ブロック124は、画像データに対し各種画像処理を施す。リサイズブロック132は、画像データのサイズを補間処理により拡大または縮小するためのブロックである。JPEGブロック134は、JPEG圧縮および伸張を行うコーデック・ブロックである。H.264ブロック136は、H.264などの動画圧縮および伸張を行うコーデック・ブロックである。画像データ転送部126は、画像処理ブロック124で画像処理された画像を転送する。SDRAMC128は、プロセッサ100に接続されるSDRAM138を制御する。SDRAM138には、プロセッサ100内で画像データに各種処理を施す際に、画像データが一時的に保存される。
メモリカード制御ブロック140は、メモリカードスロット142に挿入されたメモリカードおよびフラッシュROM144に対する読み書きを制御する。メモリカードスロット142は、撮像システム10にメモリカードを着脱可能に装着するためのスロットである。USBブロック146は、USBコネクタ148を介して接続される、パーソナル・コンピュータなどの外部機器とのUSB通信を制御する。ペリフェラル・ブロック150には、電源スイッチ166が接続される。
音声ユニット152は、ユーザが音声信号を入力するマイク156と、記録された音声信号を出力するスピーカ154とに接続され、音声入出力を制御する。シリアルブロック158は、パーソナル・コンピュータなどの外部機器とのシリアル通信を制御し、無線NIC(Network Interface Card)160が接続される。LCD(Liquid Crystal Display)ドライバ162は、LCDモニタ164を駆動するドライブ回路であり、LCDモニタ164に各種状態を表示するための信号に変換する。
フラッシュROM144には、CPU130が解読可能なコードで記述された制御プログラムや各種パラメータが格納される。電源スイッチ166の操作によって電源がオン状態になると、上記制御プログラムがメインメモリにロードされる。CPU130は、メインメモリに読み込まれたプログラムに従って、装置各部の動作を制御するとともに、制御に必要なデータをSDRAM138と、図示しないローカルSRAMとに一時的に保存する。
図3は、本実施形態による撮像システム10における画像処理全体の流れを説明する図である。また、図3には、本実施形態において撮像条件を制御するための主要な機能ブロックが示されている。まず、固体撮像素子22A,22Bを含む各センサ200A,200B各々によって、所定の露出条件パラメータの下、画像が撮像される。続いて、センサ200A,200B各々から出力された画像に対し、図2に示したISP108により、処理1で示されるオプティカル・ブラック補正処理、欠陥画素補正処理、リニア補正処理、シェーディング処理および領域分割処理が行われ、メモリに保存される。
上記オプティカル・ブラック補正処理は、固体撮像素子22におけるオプティカル・ブラック領域の出力信号を黒の基準レベルとして、有効画素領域の出力信号をクランプ補正する処理である。CMOSなどの固体撮像素子は、半導体基板上に多数の感光素子を形成することにより製造されるところ、その製造に際して半導体基板に不純物が混入する等の理由により、局所的に画素値の取り込みが不能な欠陥画素が発生する場合がある。欠陥画素補正処理は、上述のような欠陥画素に隣接した複数の画素からの合成信号に基づいてその欠陥画素の画素値を補正する処理である。
リニア補正処理は、RGB毎にリニア補正を施す処理である。シェーディング補正処理は、所定の補正係数を有効画素領域の出力信号に乗じることで、有効画素領域の陰影の歪みを補正する処理である。領域分割処理は、撮像画像を構成する画像領域を複数領域に分割し、分割領域毎に積算値(または積算平均値。後述する。)を算出する処理を行う。分割領域毎の積算値は、説明する実施形態では、輝度の形式で算出されており、典型的には、経験則から導き出された係数を用いてR(赤)値、G(緑)値およびB(青)値の加重平均により行われる。
ISP108によって処理1が完了すると、続いて、ISP108により、さらに、処理2で示されるホワイトバランス処理、ガンマ補正処理、ベイヤー補間処理、YUV変換処理、エッジ強調処理および色補正処理が行われ、メモリに保存される。固体撮像素子22上のカラーフィルタの色によって透過する光量が変化するところ、ホワイトバランス処理は、R、GおよびBの各色の感度差を補正し、撮影画像の中の白色を白く見せるためゲインを設定する処理である。上記領域分割平均処理により計算された分割領域毎のRGBの積算値(または積算平均値)データに基づき、ホワイトバランス計算部220により、ホワイトバランス処理のパラメータが計算される。ガンマ補正処理は、出力装置の特性を考慮して、出力が線形性を保つように入力信号に行う処理である。
また、CMOSでは、固体撮像素子22の1画素にR、GおよびBのいずれか1色のカラーフィルタが貼付されているところ、ベイヤー補間処理は、不足する2色を周辺の画素から補間する補間処理である。YUV変換処理は、RGBデータ形式のRAWデータから輝度信号Yと色差信号UVのYUVデータ形式に変換する処理である。エッジ強調処理は、画像の輝度信号からエッジ部分を抽出し、エッジに対してゲインを掛け、エッジ抽出と並行して画像のノイズを除去する処理を行う。色補正処理は、彩度設定、色相設定、部分的な色相変更設定、色抑圧設定を行う。
2つのセンサ200A,200B各々について上述した処理が完了すると、上記処理が施された各撮像画像に対し、歪曲補正および合成処理が行われ、適宜タグ付けされて、全天球画像が内蔵メモリまたは外部ストレージにファイル保存される。上記歪曲補正および合成処理の過程では、3軸加速度センサ120からの情報を得て傾き天地補正が行われてもよい。また、保存される画像ファイルには、適宜圧縮処理が施されてもよい。その他、クロップ処理が行われて、画像の中心領域を切り抜くことでサムネイル画像が生成されてもよい。
上述した画像処理全体の流れにおいて、センサ200A,200Bに対する露出条件パラメータは、センサ200の出力を利用した露出制御により決定される。撮像システム10では、備え付けられ、あるいは外部接続される液晶モニタやEVF(Electronic View Finder)に撮像画像を表示するために、常時、センサ200からの画像信号が読み出されている。自動露出制御では、読み出された画像信号に基づき測光し、レベルが適正かどうかを判断し、その結果に応じて、絞り値(F値)、露光時間(シャッタ・スピード)、アンプゲイン(ISO感度)などの露出条件パラメータを修正する。そして、このフローがフレーム毎に繰り返されることによって、適正露出が得られる。
一方、図1に示すような全天球撮像システム10を用いて全方位の撮影を行う場合、2つの撮像光学系により2つの撮像画像が生成される。このとき、全天球撮像システム10は、通常の単眼カメラなどに比較して、撮影範囲が広く、光源が直接写り込む場合が多くなる。撮影シーンに太陽などの高輝度体が写り込むと、多重反射等に起因して、図4(A)および(B)に例示するように、一方の撮像光学系の撮像画像にフレアが生じ、フレアが高輝度体を中心に面全体に広がる可能性がある。このような場合、両眼の露出制御が難しくなるとともに、合成画像において、図4(C)に示すように、一方のオフセットの上昇に起因し、片方だけの画像の全体的なコントラストが低下し、継ぎ目部分に明るさの違いが生じてしまい、全天球画像の画像品質が損なわれてしまう。また、複数の撮影画像のつなぎ目となる重複領域に、露出補正に適切な物体が存在しない場合(極端に黒い被写体や白い被写体が存在する場合など)も想定される。
したがって、上述した全天球撮像システム10といった複数の撮像光学系を用いるシステムでは、個々のセンサで適正露出を得るように制御すると共に、センサ間で明るさの不連続が無くなるように露出条件を調整する必要がある。この露出制御の複雑性に起因して、複眼システム全体として適切な露出条件パラメータを得るために、単眼システムに比較して、より多くのフレーム数を必要とし、より長い時間がかかる傾向にある。
そこで、本実施形態による撮像システム10では、上記適正露出を得るまでの時間の短縮を図るべく、多段階の露出制御を採用する。すなわち、本撮像システム10では、センサ毎に独立した露出制御を行う前段露出条件制御部202A,202Bと、複数のセンサ全体で調整された露出制御を行う後段露出条件制御部210とによって、個々のセンサの露出条件パラメータが決定される。好適な実施形態では、前段露出条件制御部202A,202Bにより個々のセンサの露出条件の計算が収束した時点から、後段露出条件制御部210による複数センサ間の調整を開始することができる。
前段露出条件制御部202A,202Bは、センサ200A,200B毎にセンサ内に設けられ、各センサ毎に独立して露出条件パラメータを計算し、自身のレジスタに設定する。前段露出条件制御部202A,202Bが採用する露出制御方式は、特に限定されるものではなく、例えば撮像画像を用いる露出補正方式とすることができる。前段露出条件制御部202の露出制御は、少なくとも、撮像光学系毎に独立して露出条件パラメータが計算されるという点で、複数の撮像光学系間で調整されて行われる露出制御と比較し簡略化されている。前段露出条件制御部202A,202Bは、それぞれ、本実施形態において、撮像光学系毎に独立して撮像条件を計算する独立撮像条件計算手段を構成する。
後段露出条件制御部210は、前段露出条件制御部202A,202Bによる計算結果の下、センサ200A,200B各々によって撮像された複数の撮像画像に基づき、センサ間で調整された、個々のセンサの露出条件パラメータを計算する。計算された調整後の露出条件パラメータは、各センサの露出条件レジスタ設定部204A,204Bにより、各センサのレジスタに設定される。後段露出条件制御部210は、本実施形態における調整撮像条件計算手段を構成する。なお、後段露出条件制御部210は、ISP108およびCPU130などにより実現することができる。
後段露出条件制御部210は、より詳細には、前段安定判定部212と、両センサ200A,200Bの重複部分の画像の明るさが合うように調整された、露出条件パラメータを計算する複眼条件計算部214とを含み構成される。後段露出条件制御部210には、前段露出条件制御部202A,202B各々から、センサ毎に独立して計算された露出条件パラメータが入力される。前段安定判定部212は、前段露出条件制御部202A,202B各々により計算された露出条件の変化が所定の収束条件の範囲内に収まったか否かを判定し、その範囲内に収まったことを待って、複眼条件計算部214を呼び出す。上記収束条件は、露出条件パラメータの変化(従前の露出補正値と新しく取得した露出補正値との差分)が小さくなり、安定化されたことを検知するための基準であり、例えばベンダ側で実験等に基づいて予め定められる。
複眼条件計算部214は、上記前段安定判定部212により、安定化されたと判定された場合に、上記前段露出条件制御部202A,202Bが計算した露出条件パラメータを初期条件として、調整にかかる計算を開始する。後段露出条件制御部210による制御が有効である期間中、前段露出条件制御部202A,202Bの計算は無効化される。一方、特定の実施形態において、複眼条件計算部214による計算の結果、不適当な露出条件の計算結果を示す事前定義された条件が成立した場合には、再び前段露出条件制御部202A,202Bによる計算に戻される。不適当な露出条件としては、少なくともいずれか一方が黒飽和または白飽和してしまった場合などを挙げることができる。
また、ISP108による処理1では、領域分割処理により、各センサにより撮像された各撮像画像を構成する分割領域毎に積算値が計算され、領域分割積算データとして後段露出条件制御部210に入力される。図5は、撮像画像の領域分割方式を例示する図である。本実施形態において、結像光学系20に入射した光は、等距離射影方式などの所定の投影モデルに従って、固体撮像素子22の受光領域に結像される。撮像画像は、受光領域が面積エリアを成す2次元の固体撮像素子で撮像されたものであり、平面座標系で表現された画像データとなる。
また説明する実施形態では、画像対角線よりもイメージサークル径が小さな、いわゆる円周魚眼レンズの構成を採用するものとする。よって、得られる撮像画像各々は、図4(A)および(B)に示すような各撮影範囲が投影されたイメージサークル全体を含む平面画像となる。
本実施形態では、撮像画像の全領域を、図5(A)に示すような極座標系(動径rおよび偏角θを用いた円座標系)での小領域、または図5(B)に示すような直交座標系(x座標およびy座標を用いた平面座標系)での小領域に分割し、それぞれ分割領域とする。イメージサークルの外は、露光されない遮光領域であるので、特に限定されるものではないが、積算および平均の対象から除外してもよい。
上記ISP108による領域分割処理では、図5(A)または(B)に例示するような態様で、撮像画像各々を複数の小領域に分割して、それぞれの小領域毎に、画素の輝度値の積算値または積算平均値が計算される。積算値は、分割された小領域内の全画素の輝度値を積算した値であり、一方、積算平均値は、輝度積算値を各小領域の面積(小領域を構成する画素数(遮光領域を除いてもよい。))で規格化した値である。
さらに、図5においてハッチングで示すように、各撮像画像は、イメージサークルの中心に位置する撮像光学系間で重複していない単独領域(以下、中心領域ともいう。)と、撮像光学系間で重複する重複領域とに大きく区分される。重複領域は、イメージサークルの周辺に位置しており、以下、周辺領域ともいう。複眼条件計算部214は、調整にかかる計算において、入力された分割領域毎の積算値に基づき、センサ毎の単独領域と、センサ間の重複領域とを区別し評価して、この評価に応じて、複数のセンサ各々に対する調整後の露出条件パラメータを決定する。小領域が、重複領域に該当するか、単独領域に該当するかは、校正された画像中心座標値からの距離により判別することができる。
単独領域および重複領域毎に画素の平均値が計算され、この単独領域および重複領域毎の画素平均値が、撮像画像の領域毎に撮影像状態を評価する領域別評価値として、露出条件の計算に供される。なお、図5に示した態様は例示であり、領域分割の方式や分割数は特に限定されるものではない。
以下、図6〜図10を参照しながら、本実施形態による撮像システムが実行する、露出制御について詳細を説明する。図6は、本実施形態による撮像システムが実行する、露出制御のメインフローを示すフローチャートである。
図6に示す制御は、例えば、撮像システム10が、電源が投入されたり、モード切替が指示されたりして撮影モードに移行したことに応答して、ステップS100から開始される。ステップS101では、撮像システム10は、各センサ200A,200Bからの検波完了の信号を受けたか否かに応じて制御を分岐させる。ここで、検波完了の信号は、センサが画像の読み取りを完了させ、適宜前段露出条件制御部202による露出条件の計算が完了したこと示す信号である。ステップS101では、検波完了の信号を受けるまでの間(NOの間)、本ステップS101をループさせる。ステップS101で検波完了の信号を受けた場合(YES)は、ステップS102へ制御が進められる。
ステップS102では、撮像システム10は、前段制御が有効であるか否かに応じて制御を分岐させる。ステップS102で、前段制御が有効である場合(YES)は、ステップS103へ制御が進められる。ステップS103では、撮像システム10は、後段露出条件制御部210により、前段露出条件制御部202A,202Bに対し、前段での露出条件の計算結果を照会し、前段で計算された露出条件パラメータを取得する。
ステップS104では、撮像システム10は、前段安定判定部212により、前段露出条件制御部202A,202Bが計算した露出条件が安定化したか否かを判定する。ステップS104で、従前の露出条件と、新しく計算された露出条件とが、基準に照らして大きく異なるため、安定化していないと判定された場合(NO)は、ステップS101へ処理をループさせる。ここでは、後段の制御に進めず、次のフレームへと制御が進められる。一方、ステップS104で、所定の収束条件が満たされ安定化したと判定された場合(YES)は、ステップS105へと後段の制御に進められる。
ステップS105では、撮像システム10は、前段露出条件制御部202A,202Bによる個別の前段制御を無効化し、ステップS106へ制御を進める。これにより、前段露出条件制御部202A,202Bが計算した露出条件パラメータは、設定に反映されないようになり、後述する後段制御で算出されるパラメータが優先されることになる。ステップS102を再び参照すると、ステップS102で、前段制御が無効であると判定された場合(NO)は、以前のフレームでの処理により、所定の収束条件が満たされ安定化されているので、ステップS106へ直接制御が進められる。
ステップS106では、図7を参照して後述する複眼適正露出計算処理を呼び出す。複眼適正露出計算処理により複数のセンサの調整後の露出条件パラメータが決定されると、後段露出条件制御部210から各露出条件レジスタ設定部204A,204Bへ、露出条件パラメータの更新の依頼が行われる。そして、ステップS101へ制御がループされ、次のフレームへと制御が進められる。決定された露出条件パラメータは、例えば固体撮像素子22の垂直同期信号に合わせてセンサのレジスタに反映される。
図7は、本実施形態の撮像システムが実行する、複眼適正露出計算処理を示すフローチャートである。なお、以下説明する実施形態においては、便宜上、露出時間tおよびゲインgのみが、制御される露出条件パラメータであるとし、残りの絞り値aは、固定されるものとして説明する。そして、具体的な露出条件パラメータは、ゲイン1相当(gX=1)での露出時間換算値expX(expX=gX*tX;ここで下付添え字のXは、カメラを識別し、AまたはBである。)として計算される露出補正値に対応して、プログラム線図に基づき求められるものとする。しかしながら、他の実施形態では、露出時間t、ゲインgおよび絞り値aすべてを露出条件パラメータとして計算してもよいし、露出時間t、ゲインgおよび絞り値aから選択される1または複数の任意のパラメータの組み合わせを露出条件パラメータとして計算してもよい。
図7に示す処理は、図6に示したステップS106で呼び出されて、ステップS200から開始される。ステップS201では、撮像システム10は、その前準備として、各撮像画像について算出されるオプティカル・ブラック(OB)値を、分割領域毎の積算値から減算する。各撮像画像のOB値は、図4(A),(B)に示したイメージサークル外の遮光領域における分割領域毎の積算値(当該フレームまたは前フレームの値)を採用することができる。
ステップS202では、撮像システム10は、複眼条件計算部214により、分割領域毎の積算値を用いて、各分割領域を重複領域および単独領域に区分して積算値の平均値を算出する。領域の区分は、画像中心を校正して求め、その画像中心の座標値からの例えば小領域の中央までの距離rが、所定閾値r1を超えたか否かにより判別することができる。説明する実施形態では、撮像画像Aの中心に位置する単独領域(r<r1)の平均値をsCA、撮像画像Bの単独領域の平均値をsCB、撮像画像Aの周辺に位置する重複領域(r1≦r<r2:ここでr2は、イメージサークルの外縁に対応する。)の平均値をsEA、撮像画像Bの重複領域の平均値をsEBとして定義する。
ステップS203では、撮像システム10は、複眼条件計算部214により、撮像環境(シーン)の明るさ検知するため、平均値から照度値に換算する。各センサの中心領域の照度値bCX(X=A,B)は、各センサの単独領域の積算値の平均値sCXを用いて、露光時間t、アンプゲインg、および撮像システム10の特性に応じた係数kLxを用いて、下記式(1)により計算することができる。係数kLxは、典型的には、実験等に基づきベンダ側で設定されるものである。なお、下記式(1)は、絞り値aが固定される場合を示し、固定された絞り値は、係数kLxに加味されている。
中心領域の照度値bCXは、現在設定されている露出条件パラメータを用いて、実際に撮像された画像の画素値から算出された、各受光領域の明るさを評価する評価値である。なお、周辺領域の照度値bEX(x=A,B)についても、上記式(1)と同様な式により、重複領域の積算値の平均値sEXを用いて計算することができる。
ステップS204では、撮像システム10は、複眼条件計算部214により、各センサの照度値bCXから暗時処理を必要とするか否かを判定する。暗時処理の要否の判定は、事前定義された照度値に対する閾値(darkTh)を用いて行うことができる。ステップS204で、両センサ共に照度値bCXが所定閾値(darkTh)未満となり、暗時処理が必要であると判定された場合(YES)は、ステップS214へ制御を進める。一方、ステップS204で、いずれかのセンサの照度値bCXが所定閾値(darkTh)以上となり、暗時処理が不要であると判定された場合(NO)は、ステップS205へ制御を進める。
ステップS205では、撮像システム10は、複眼条件計算部214により、センサ毎の露出目標レベルtLA,tLBを決定する。露出目標レベルtLXは、好適には、換算された照度値bCXから判別できるシーンの明るさに応じて決定することができる。図8は、照度値を露出目標レベルに対応付ける関数を示す図である。図8に示す関数は、各センサのダイナミックレンジ特性を踏まえて決定され、近似関数の係数またはテーブルとして保持される。図8に示す関数によれば、明るいシーンでは明るめに目標レベルが設定され、暗いシーンでは暗めに目標レベルが設定される。
ステップS206では、撮像システム10は、複眼条件計算部214により、中心領域の平均値を上記決定された露出目標レベルに収束させるための中心領域に適用するゲイン(以下、中心ゲインと参照する。)を算出する。中心ゲインは、センサX(X=A,B)の中心ゲインをupdownCXとし、所定の範囲(例えば、−4EV<updownCX<+4EV)内で、下記式(2)を用いて計算することができる。所定の範囲外となった場合は、中心ゲインupdownCXは、下限値(例えば−4EV)または上限値(例えば+4EV)に制限される。
ステップS207では、撮像システム10は、得られた中心ゲインupdownCAupdownCBに応じて、中心ゲインupdownCXが飽和を示唆する値となっているか否かを判定する。中心ゲインupdownCXが極端に大きい場合は、画素平均値sCXが小さく黒飽和している可能性を示しており、反対に極端に小さい場合は、平均値sCXが大きく白飽和している可能性を示す。このため、中心ゲインupdownCXが極端な場合は、露出が適正露出から大きくずれていると考えられる。そこで、ステップS207で、いずれかセンサの中心ゲインが極端に小さいまたは大きいと判定された場合(YES)は、ステップS213へ制御を分岐させる。つまり、中心領域の平均値sCXに対する上限閾値(thHi)および下限閾値(thLo)を用いて、論理条件{sCA>thHi OR sCA<thLo OR sCB>thHi OR sCB<thLo}が満たされた場合は、ステップS213へ制御を分岐される。
ステップS213では、撮像システム10は、前段露出条件制御部202A,202Bによる個別の前段制御を有効化し、ステップS212で、本処理を終了させ、図6に示したステップS106後の制御に戻す。
一方、ステップS207で、中心ゲインが適切であると判定された場合(NO)は、ステップS208へ制御が分岐される。ステップS208では、撮像システム10は、複眼条件計算部214により、両センサの重複領域の平均値sEに収束させるような重複領域に適用する周辺ゲインを算出する。周辺ゲインは、センサX(X=A,B)の周辺ゲインをupdownEXとして、所定の範囲(例えば、−4EV<updownEX<+4EV)内で、下記式(3)を用いて計算することができる。所定の範囲外となった場合は、周辺ゲインupdownEXは、下限値(例えば−4EV)または上限値(例えば+4EV)に制限される。
ステップS209では、撮像システム10は、複眼条件計算部214により、複数のセンサ間での重複領域における積算値(属性値)の最大差分(maxSurroundDiff)を計算する。特定の実施形態において、全天球撮像システム10で撮像される撮像画像は、図9に示すようにセンサAおよびセンサB間で反転して一枚の画像として結合されている。上記最大差分を求める処理では、まず、両センサ間で、互い対応し合う分割領域毎に積算値の差分を計算する。図9に示すようにセンサ間で反転している場合は、結合された画像における画像中心座標をそれぞれ(cxA,cyA)および(cxB,cyB)として、HBをセンサBの画像幅であるとして、センサAの位置(xA,yA)に対するセンサBの相対位置(xB,yB)は、下記式で求めることができる。得られた互いに対応し合う分割領域間の差分のうちの最大の値が、上記最大差分(maxSurroundDiff)となる。
ステップS210では、撮像システム10は、複眼条件計算部214により、重み付けをして平均処理をして、重複領域の最大差分(maxSurroundDiff)と、2つのセンサについて算出換算された照度値bCA,bCBとに基づいて、設定すべき露出条件パラメータを決定する。露出条件パラメータは、適切な露出補正値の変化量の上限および下限の範囲内において決定される。
露出補正値は、下記のように計算される。まず、ステップS209で計算された最大差分(maxSurroundDiff)と、事前設定された許容される平均値に対する許容差(diffNGLevel)とを用いて、下記式(4)により、中心領域と周辺領域の評価の比率(rC,rE)を計算する。中心領域と周辺領域の評価の比率(rC,rE)は、中心領域および周辺領域のどちらに評価の重みを置くかを決定付ける値である。ここで、Rは、定数(R=10)である。
また、許容差(diffNGLevel)は、撮像システム10の特性に依存し、典型的には実験などから求められる。種々の撮影条件下で、平均値のセンサ間の差分を変化させて、片側にフレアなどによるボケが生じるか否かを判定し、これらを集計する。そして、明るさの違いが目立つ度合いを、ボケが生じる程度で表し、ボケの程度が所定の閾値を超える差分を許容差(diffNGLevel)として採用する。
上記式(4)は、許容差(maxSurroundDiff=diffNGLevel)を境界として、重複部分のセンサ間の明るさの差異が大きい場合に、周辺領域に対する評価の比率rEが大きくなるように、中心領域の比率rCが小さくなるようにはたらく。一方、重複部分のセンサ間の明るさの差が許容差より小さければ、上記式(4)は、それだけ中心領域rCに対する評価の比率が大きくなるように、周辺領域の比率rEが小さくなるようにはたらく。
続いて、Bを定数(B=10)として、ステップS203で計算された各センサの中心領域の照度値bCX(x=A,B)を用いて、下記式(5)により、各センサに対する評価の重み(rA,rB)を計算する。各センサの評価の重み(rA,rB)は、いずれのセンサに評価の重みを置くかを決定付ける値である。
上記式(5)は、画像間の中心領域の明るさを比較し、中心領域において換算された照度値bCXが低い方く暗い方のセンサが重く評価されるようにはたらく。つまり、上記式(5)によれば、暗い方のセンサの評価の重みが大きくなる。
続いて、露出補正値が急激に変化しないように上限および下限のリミッタ(minGain,maxGain)と、緩衝パラメータdumpingを用いて、下記式(6)および(7)により、センサ毎に調整ゲイン(kA,kB)を計算する。緩衝パラメータは、0<dumping≦1.0の範囲内の定数である。
上記式(6)は、中心ゲインupdownCXおよび周辺ゲインupdownEXが1に収束する、つまり中心領域および周辺領域の画素平均値がそれぞれ露出目標レベルおよびセンサ間の平均値sEに収束する方向に、ゲインkX’を決定する。また、CLIP(x,max,min)関数は、min≦x≦maxについてxを与え、x<minについてminを与え、x>maxについてmaxを与える関数である。したがって、上記式(7)は、上限および下限の範囲で、上記式(6)で計算された値kX’が緩衝された調整ゲイン(gain(kX’),dumping)を与える。
最後に、各センサの最終的な露出補正値(expA,expB)は、下記式(8)で計算される。ここで、Tは、反復回数を表し、更新される露出補正値(expX T+1)が、現在設定されている露出補正値(expX T)と、調整ゲインkA,kBとから求められる。
更新後の露出補正値(expX T+1:ゲイン1相当での露出時間換算値)が求められると、撮像システム10の特性に応じて事前準備されたプログラム線図と呼ばれるテーブルを用いて、露出条件パラメータ(t,g)の組み合わせが決定される。絞り値aも制御対象となる実施形態では、露出条件パラメータ(t,g,a)の組み合わせが決定される。したがって、上記式(6)、(7)および(8)は、中心領域および周辺領域に対する評価の重み付けの比率と、センサ間での評価の重み付けとに応じて、調整後の露出条件パラメータを与えるようにはたらく。
ステップS211では、撮像システム10は、複眼条件計算部214により、決定された各センサの露出条件パラメータの設定を更新し、ステップS212で、本処理を終了させ、図6に示したステップS106以降の制御に戻す。図6および図7に示した処理を繰り返すことにより、露出条件パラメータが、センサ間の重複領域で明るさが合うような適正露出に収束される。
再びステップS204を参照すると、ステップS204で、両センサ共に照度値bCXが所定閾値(darkTh)未満となり、暗時処理が必要であると判定された場合(YES)は、ステップS214へ制御が進められる。これは、両センサ共に暗時の場合は、フレア等が発生しにくく、2つの撮像画像間で露出の差が生じにくいためである。ステップS214では、撮像システム10は、複眼条件計算部214により、センサ間で共通の露出目標レベルtLAVEを決定する。共通の露出目標レベルtLAVEは、好適には、換算された照度値bCA,bCBの平均値bCAVE(bCAVE=(bCA+bCB)/2)から判別できるシーンの明るさに応じて決定することができる。
ステップS215では、明るい方の露出条件を、暗い方の露出条件に合わせるように各センサの露出条件パラメータを決定する。例えば、センサBの方が暗いとき(bCA>bCB)は、下記式(9)により、暗い方のセンサBに合わせて、両センサに同一の露出条件が設定される。
そして、ステップS211へ制御が進められ、撮像システム10は、決定された各センサの露出条件パラメータの設定を更新し、ステップS212で、本処理を終了させ、図6に示したステップS106以降の制御に戻す。
なお、上述した実施形態では、ステップS213では、前段制御を有効化し、前段制御に戻す態様としている。しなしながら、ステップS213の処理は、例外処理であり、種々の態様が考えられる。他の実施形態では、前段制御に戻さず、計算された中心ゲインupdownCA,updownCBを用いて、下記式によりカメラ毎の露出補正値を直接求めてもよい。
図10は、本実施形態の撮像システムにおいて実行される露出制御を示すシーケンス図である。図10には、センサ毎に独立した前段露出条件制御に対応するステップと、複数のセンサを対象とした後段露出条件制御に対応するステップとが区分けされている。単眼露出補正時は、センサ200A,200B内の前段露出条件制御部202A,202Bによってセンサ毎に単独で露出補正が行われる。
ステップS301〜ステップS305までの処理が、1フレームの処理に対応し、同様に、ステップS306〜ステップS310までの処理が、次の1フレームの処理に対応する。ステップS301では、センサ200A,200Bは、それぞれ、ISP108に読出開始通知を行い、ステップS301では、センサ200A,200Bは、それぞれ、ISP108に読出完了通知を行う。センサ200A,200Bは、それぞれ、前段の露出条件パラメータの計算が完了すると、ステップS303で、後段露出条件制御部210を実現するタスクに対し、検波完了通知を行う。後段露出条件制御部210のタスクは、ISP108の割り込み信号により稼動する。
ステップS304では、後段露出条件制御部210は、センサ200A,200Bに対し、露出条件の照会を行い、ステップS305で、各センサの露出条件パラメータを取得する。後段露出条件制御部210は、各センサの露出条件を取得して、後段の複眼露出補正を実施するかどうかを判定する。前段露出条件制御部202A,202Bにより計算された露出条件パラメータは、次のフレームに対して適用される。
引き続き、ステップS306〜ステップS310およびステップS311〜ステップS315で各フレームについて同様の処理が行われ、ここでは、前段の露出制御が安定化したものとして説明を続ける。ステップS316では、次のフレームの読み出し通知が、センサ200A,200BからISP108に対して行われるが、ステップS318の完了通知が行われるまでの間に、後段露出条件制御部210は、後段の露出条件パラメータの計算を行う。ステップS317では、後段露出条件制御部210は、計算を完了させて、システムの制御タスクに対して計算結果とともに計算完了を通知して、露出条件パラメータの更新を依頼する。
ステップS318で、センサ200A,200BからISP108および制御タスクに読出完了通知が行われると、ステップS319では、制御タスクは、センサの垂直同期信号に合わせて、センサの読み出しが行われていないタイミングで、各センサのレジスタの露出条件パラメータを更新する。つまり、後段露出条件制御では、2つ先のフレームに新しい露出条件が適用される。
上記前段制御では、センサ毎に独立して高速に適正露出が得られる。一方、後段制御により、複数のセンサを対象とした、各センサの状態を考慮したより高精度の露出制御が行われる。これにより、複数の撮像光学系を用いた撮像システムにおいて、撮像光学系間で調整された精度の高い露出条件を高速に適用することができる。また、好適には、センサ毎の露出制御が収束した後に後段制御が行われるので、CPUなどのリソースの使用時間が短縮され、ひいては消費電力も削減される。また、最終的に適用される露出条件は、撮像光学系間で調整がなされているので、複数の撮像光学系による複数の撮像画像を合成した際につなぎ目で見られる明るさの不連続性が軽減され、品質の高い合成画像を提供することができる。
以上説明したように、本実施形態によれば、複数の撮像光学系を用いた撮像システムにおいて、複数の撮像光学系に対する撮像条件を得るまでに要する時間を短縮することが可能な撮像制御装置、撮像システム、撮像制御方法およびプログラムを提供することができる。
なお、上述した実施形態では、撮像制御装置の一例として、全天球の静止画を撮影する撮像システム10を用いて説明したが、撮像制御装置は、特に限定されるものではない。他の実施形態では、全天球を動画撮影する全天球動画撮像システム(または撮像装置)、全天球を撮影する機能を備えたスマートフォン、タブレットなどの携帯情報端末、撮像システムにおいて撮像体を制御するデジタル・スチルカメラ・プロセッサ(制御装置)などとして構成することもできる。また、上述した実施形態では、前段制御および後段制御の合計2段階の露出制御としたが、3以上に拡張することを妨げるものではない。
また、上記機能部は、アセンブラ、C、C++、C#、Java(登録商標)などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ROM、EEPROM、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、ブルーレイディスク、SDカード、MOなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。また、上記機能部の一部または全部は、例えばフィールド・プログラマブル・ゲート・アレイ(FPGA)などのプログラマブル・デバイス(PD)上に実装することができ、あるいはASIC(特定用途向集積)として実装することができ、上記機能部をPD上に実現するためにPDにダウンロードする回路構成データ(ビットストリームデータ)、回路構成データを生成するためのHDL(Hardware Description Language)、VHDL(VHSIC(Very High Speed Integrated Circuits) Hardware Description Language))、Verilog−HDLなどにより記述されたデータとして記録媒体により配布することができる。
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。