以下、本発明の実施形態について説明するが、本発明の実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下の実施形態では、画像調整装置の一例として、2つの魚眼レンズを光学系に含む撮像体を備えるとともに、2つの魚眼レンズで撮像された撮像画像に基づいて画像調整条件を決定する機能を備えた、全天球撮像システム10を用いて説明する。つまり、全天球撮像システム10は、3つ以上のレンズを光学系に含む撮像体を備えるとともに、3つ以上のレンズで撮像された撮像画像に基づいて画像調整条件を決定する機能を備えていても良い。このように3つ以上のレンズの場合は、それぞれのレンズで撮影される領域が重複領域を持つように画角が設定されればよい。なお、説明する実施形態では、魚眼レンズは、広角レンズや、超広角レンズと呼ばれるものを含む。
以下、図1および図2を参照しながら、本実施形態による全天球撮像システムの全体構成について説明する。図1は、本実施形態による全天球撮像システム(以下、単に、撮像システムと参照する。)10を示す断面図である。図1に示す撮像システム10は、撮像体12と、上記撮像体12および図示しないコントローラやバッテリなどの部品を保持する筐体14と、上記筐体14に設けられたシャッター・ボタン18とを備える。
図1に示す撮像体12は、2つの結像光学系20A,20Bと、CCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサなどの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度を超える全画角を有するため、全天球画像を構成する際には、各撮像光学系で撮像した撮影画像において、撮影範囲が重複する画像部分が、同一像を表す基準データとして画像つなぎ合わせの参考とされる。生成された全天球画像は、例えば、本撮像システムに備えられているまたは、撮像体12に接続されているディスプレイ装置、印刷装置、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,108Bおよび歪曲補正・画像合成ブロック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各々によって、所定の露出条件パラメータのもと画像が撮像される。固体撮像素子22A,22Bに対する露出条件パラメータは、露出条件計算部210により決定され、各固体撮像素子22A、22Bに設定される。
続いて、固体撮像素子22A,22B各々から出力された画像に対し、図2に示したISP108により、処理1で示されるオプティカル・ブラック補正処理、欠陥画素補正処理、リニア補正処理、シェーディング処理および領域分割処理が行われ、メモリに保存される。
上記オプティカル・ブラック補正処理は、固体撮像素子22におけるオプティカル・ブラック領域の出力信号を黒の基準レベルとして、有効画素領域の出力信号をクランプ補正する処理である。CMOSなどの固体撮像素子は、半導体基板上に多数の感光素子を形成することにより製造されるところ、その製造に際して半導体基板に不純物が混入する等の理由により、局所的に画素値の取り込みが不能な欠陥画素が発生する場合がある。欠陥画素補正処理は、上述のような欠陥画素に隣接した複数の画素からの合成信号に基づいてその欠陥画素の画素値を補正する処理である。
リニア補正処理は、RGB毎にリニア補正を施す処理である。また、センサ面上では、光学系や撮像系の特性、例えば光学系の周辺減光などにより、輝度ムラが生じる。シェーディング補正処理は、光学系や撮像系の特性による輝度ムラに対して一様な明るさの画像になるように、所定の補正係数を有効画素領域の出力信号に乗じることで、有効画素領域の陰影の歪みを補正する処理である。このシェーディング補正処理では、色ごとに異なる係数を印加することによって領域毎の感度補正を行うことができる。
好ましい実施形態では、リニア補正処理、シェーディング補正処理またはその他の独立した処理において、複数のセンサ間で、個体差を調整するためにRGB毎に感度補正を行ってもよい。このようなセンサ間の個体差の調整は、基準カメラを用いた所定光源(例えばD65光源)下でのグレーチャートの撮影に基づいて行うことができる。基準カメラを用いて、所定光源(例えばD65光源)下でグレーを撮影した際のRGBのゲインを(PR0,PG0,PB0)とし、添え字i(i∈{1,2})で固体撮像素子22A,22Bを識別すると、撮像素子iの調整ゲイン(TRi,TGi,TBi)は、下記式を用いて計算される。例えば、固体撮像素子22Aは添え字1、22Bは添え字2とする。
撮影された画素値に上記調整ゲインを印加することにより、撮像素子間の感度差を調整した上で、複数の撮像画像を一つの画像として取り扱うことができるようになる。領域分割処理は、撮像画像を構成する画像領域を複数領域に分割し、分割領域毎に積算値(または積算平均値)を算出する処理を行う。
再び図3を参照すると、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つの固体撮像素子22A,22B各々で、撮影された画像に対して上述した処理が完了すると、これらの処理が施された各撮像画像に対し、歪曲補正および合成処理が行われ、適宜タグ付けされて、全天球画像が内蔵メモリまたは外部ストレージにファイル保存される。上記歪曲補正および合成処理の過程では、3軸加速度センサ120からの情報を得て傾き天地補正が行われてもよい。また、保存される画像ファイルには、適宜圧縮処理が施されてもよい。その他、クロップ処理が行われて、画像の中心領域を切り抜くことでサムネイル画像が生成されてもよい。
図1に示すような全天球撮像システム10を用いて全方位の撮影を行う場合、2つの撮像光学系により2つの撮像画像が生成される。このとき、撮影シーンに太陽などの高輝度体が含まれていると、図4(A)および(B)に例示するように、一方の撮像光学系の撮像画像にフレアが生じ、画像上で評価される照明条件に違い生じる。また、フレアは、高輝度体を中心に面全体に広がる可能性がある。このような場合、合成画像では、図4(C)に示すように、継ぎ目部分に色味(図面では灰色の階調によって色味の違いを表している。)の違いが生じてしまい、全天球画像の画像品質が損なわれてしまう。また、複数の撮影画像のつなぎ目となる境界部分には、ホワイトバランス調整に適切な物体(グレーの物体)が存在しない場合も想定される。
また、全画角180度を超える魚眼レンズを用いた撮像光学系では、撮影範囲が重複する領域が存在するものの、大部分は重複する領域とならない。このため、上述のような撮影シーンでは、重複する領域のみを用いて全体のホワイトバランス調整を行う場合、適正ホワイトバランスを得ることが困難である。また個々の撮像光学系毎に適正ホワイトバランスを得ても、合成した画像間のつなぎ目で色味の不連続が生じる可能性がある。
そこで、本実施形態による撮像システム10では、上述したような不充分なホワイトバランス調整を回避するべく、ホワイトバランス計算部220は、撮像範囲が重複する各分割領域のRGBの積算値に基づき、画像の明るさを調整する明るさ調整値を計算する。そして、得られた明るさ調整値に基づいて、分割領域毎のホワイトバランス調整値を決定する構成を採用する。ホワイトバランス計算部220は、より詳細には、明るさ調整部222と、重複領域調整値算出部224と、分割領域調整値決定部226とを含み構成される。ホワイトバランス計算部220は、ISP108およびCPU130などにより実現することができる。
図5は、撮像画像の領域分割方式を例示する図である。本実施形態において、結像光学系20に入射した光は、等距離射影方式などの所定の投影モデルに従って、固体撮像素子22の受光領域に結像される。撮像画像は、受光領域が面積エリアを成す2次元の固体撮像素子で撮像されたものであり、平面座標系で表現された画像データとなる。また本実施形態では、画像対角線よりもイメージサークル径が小さな、いわゆる円周魚眼レンズの構成を採用するものとする。したがって、得られる撮像画像は、図4(A)および(B)に示すような各撮影範囲が投影されたイメージサークル全体を含む平面画像となる。
本実施形態では、各固体撮像素子で撮影された撮像画像の全領域を、図5(A)に示すような極座標系(動径rおよび偏角θを用いた円座標系)での小領域に分割し、それぞれ分割領域とする。または、図5(B)に示すような直交座標系(x座標およびy座標を用いた平面座標系)での小領域に分割し、それぞれ分割領域とする。イメージサークルの外は、露光されない外部領域であるので、好適には、積算および平均の対象から除外される。また、外部領域は、特定の実施形態では、オプティカル・ブラック領域として用いることができる。その場合、外部領域に対応する分割領域の積算値に基づいて、後述するホワイトバランス補正値の計算に用いる撮像素子毎のオプティカル・ブラック(以下、OBと省略する。)値(o1,o2)を計算することができる。このオプティカル・ブラック値は、RGBまとめて固体撮像素子毎の値として取り扱ってもよいが、各色間で差異がある可能性があるため、他の実施形態では、各色間の差異を吸収するべく、RGB毎の値として取り扱ってもよい。また、図5(A)および(B)において、グレーで示す中領域は、180度を超える全画角に対応して撮像画像間で撮影範囲が重複する領域を表す。
上記ISP108による領域分割処理では、図5(A)または(B)に例示するような態様で、各々撮像画像を複数の小領域に分割して、それぞれの小領域毎に、RGB各色毎の積算値(または積算平均値)が計算される。積算値は、分割された小領域内の各色毎の画素値を積算した値であり、積算平均値は、各色毎の画素値の積算値を各小領域の面積(小領域を構成する画素数(外部領域を除く。))で規格化した値である。領域分割処理により、RAW画像データから、分割領域毎にRGB各色毎の領域評価値(積算値または積算平均値)が計算されると、領域分割積算データとして出力される。
明るさ調整部222は、ISP108A,108Bによる領域分割処理によって求められた領域分割積算データの入力を受ける。そして、明るさ調整部222は、各撮像光学系により撮影された撮像画像間で撮影範囲が重複する分割領域(以下、重複する分割領域各々を重複領域と参照する場合がある。)各々のRGB各色毎の積算値に基づき、明るさ調整値を算出する。ここで、明るさ調整値を算出するために用いられる分割領域毎の積算値は、上記重複領域に対応するものであり、かつ、積算値が、所定の基準を満たすものが選ばれる。
明るさ調整部222は、詳細を後述するが、まず、RGB各色毎の積算値に基づき、重複する分割領域各々の輝度値を算出する。そして、重複領域全体における複数の撮像画像間での最も明るい輝度値の差異に基づき、上記明るさ調整値として撮像素子毎にゲイン値を算出する。さらに、明るさ調整部222は、重複領域全体における複数の撮像画像間での最も暗い輝度値の差異に基づき、明るさ調整値として撮像素子毎のオフセット補正値を算出する。
重複領域調整値算出部224は、算出された明るさ調整値(ゲイン値およびオフセット補正値)に基づき、上記重複領域各々のRGB各色毎の積算値に調整をかけて、上記重複領域各々に対し、ホワイトバランス調整値の候補を算出する。なお、重複領域毎のホワイトバランス調整値の算出方法については、詳細を後述する。
分割領域調整値決定部226は、上記重複領域各々に対し算出されたホワイトバランス調整値の候補を用いて、重複しない分割領域を含めて、分割領域毎のバランス調整値を、それぞれ周辺の分割領域で加重平均することによって、分割領域毎の平滑化されたバランス調整値を決定する。周辺の分割領域での加重平均に際し、分割領域調整値決定部226は、重複領域および重複しない分割領域(以下、非重複領域と参照する。)間のホワイトバランス調整値の差異に基づいて、該分割領域間に関する加重平均の重み付けを変更することができる。重複領域は、比較的狭い領域であることから、得られるホワイトバランス調整値の精度には限界がある。差異が大きな領域間の重み付けを小さくすることにより、極端に異なる重複領域の調整値の影響を抑えることができる。
以下、図6および図7を参照しながら、本実施形態による撮像システム10が実行する、ホワイトバランス調整処理について説明する。図6は、本実施形態の撮像システムが実行する、ホワイトバランス計算のメインフローを示すフローチャートである。図7は、本実施形態の撮像システムが実行する、メインフロー内のエリアホワイトバランス計算処理を示すフローチャートである。
図6に示す処理は、ステップS100から開始される。ステップS101では、撮像システム10は、領域分割画素積算処理を実行し、2つの固体撮像素子22A,22Bについて各分割領域毎およびRGB各色毎の積算平均値を計算する。ステップS102では、図7に示すエリアホワイトバランス計算処理が呼び出される。エリアホワイトバランス計算処理においては、ステップS101で算出された領域分割積算データと、撮影条件として与えられるオプティカル・ブラック補正処理における撮像素子毎のOB値(o1,o2)とを用いて、分割領域毎のホワイトバランス補正値の計算が行われる。
図7に示す処理は、図6に示したステップS102で呼び出されたことに応答して、ステップS200から開始される。ステップS201では、撮像システム10は、明るさ調整部222により、領域分割積算データとして与えられた各撮像素子毎、RGB各色毎および各分割領域毎の積算値を、下記式(1)および(2)を用いて加重平均して、各撮像素子毎および各分割領域毎の輝度値mi(x,y)を得る。ここで、添え字i(i∈{1,2})は、固体撮像素子22A,22Bを識別する。また、wbR0,wbG0,wbB0は、事前定義したRGB各色毎の規定ホワイトバランス・ゲインである。そして、固体撮像素子iの分割領域(x、y)のRGB各色の積算値を、avRi(x,y),avGi(x,y),avBi(x,y)で表す。
上記式(1)および(2)によれば、各固体撮像素子に関し、重複領域であり、かつ、積算値が所定の範囲内(所定下限値thLより大きく、かつ、所定上限値thU未満)であるという条件を満たす分割領域(x,y)に対して加重平均が計算される。
規定ホワイトバランス・ゲインwbR0,wbG0,wbB0は、例えば、予め撮像光学系の特性に応じて準備することができる。この場合、所定の光源(例えばD65光源)下でのグレーチャートの撮影に基づいて規定ホワイトバランス・ゲインwbR0,wbG0,wbB0を決定することができる。グレーチャートを撮像して得られる画素値をsk(k∈{R,G,B})とすると、ホワイトバランス・ゲインwbk(k∈{R,G,B})は、下記式により計算することができる。そして、得られたホワイトバランス・ゲインwbk(k∈{R,G,B})を規定ホワイトバランス・ゲインwbR0,wbG0,wbB0として用いることができる。
他の実施形態では、規定ホワイトバランス・ゲインwbR0,wbG0,wbB0は、既知のオート・ホワイトバランス処理により決定してもよい。既知のオート・ホワイトバランス処理としては、グレイワールド・アルゴリズム、Retinex理論に基づくアルゴリズム(Max−RGB)、および光源推定に基づくアルゴリズムを挙げることができる。
グレイワールド・アルゴリズムは、画像の所定領域(画像全体)の色の平均が無彩色であるという仮定に基づくアルゴリズムであり、所定領域において、R,G,Bの各色の信号の平均レベルが等しくなるようなホワイトバランスのゲインを決定する方法である。グレイワールド・アルゴリズムでは、ホワイトバランス・ゲインwbk(k∈{R,G,B})は、下記式により、画素値sk(x,y)(k∈{R,G,B})の画像全体(M*N[pix])での平均値avek(k∈{R,G,B})に基づき計算することができる。ここで、魚眼レンズでの撮像の場合、画像全体とは、光のあたるイメージサークル内の領域全体を意味する。
上記グレイワールド・アルゴリズムは、主として青色のゲインwbBに関する最小値wbBLimを用いて、日常的な大部分のシーンで適切なホワイトバランス・ゲインを得ることができるアルゴリズムである。全天球撮像システム10では、画像全体(4πステアラジアン)が一定の色に染まるシーンが殆どないと想定されることから、下記の青色の制限を追加するだけで、大部分のシーンでグレイワールドが成り立つと考えられる。
Retinex理論に基づくアルゴリズムは、人間に知覚される白色は、最大の錐体信号で決定されるとの理論に基づくものである。固体撮像素子を用いて飽和しないように撮影し、R、GおよびBのいずれかが最大となる位置の画素値(sR,sG、sB)を用いて下記式によりホワイトバランス・ゲインを計算することができる。
光源推定に基づくアルゴリズムは、既知の光源情報を元に、被写体の中で無彩色と推定される領域を抽出し、そこから光源情報を取得するアルゴリズムである。例えば、Cr−Cb平面上での画素値の分布を観測し、最も重心が近い既知の光源を採用することができる。
また、一般的な照明の分光は、黒体放射軌跡の付近に分布することから、色空間上での黒体放射軌跡を囲む領域(光源枠)を設け、その領域内に入るデータから光源を推定することができる。図8は、黒体放射軌跡を示すxy色度図である。図8には、□でsRGB(Standard RGB)の領域が参考に示されているが、カメラの分光特性が▲で示す三角形の領域で示されている。黒体放射軌跡は、中心が太線で示されており、上限値および下限値が、一点鎖線および波線で示されている。
光源推定の結果からホワイトバランス・ゲインが決定されるが、推定された光源毎のホワイトバランス・ゲインの固定値を決定してもよいし、光源枠内のデータの分布から中間値を補間してもよい。簡便には、一点鎖線および波線の内側の領域(光源枠内)で画素値を平均することができる。
上述したいずれかの既知のアルゴリズムのオート・ホワイトバランス処理で求めたwbk(k∈{R,G,B})を、規定ホワイトバランス・ゲインwbR0,wbG0,wbB0として採用することができる。なお、上記式(1)および(2)では、固体撮像素子22Aおよび固体撮像素子22Bで共通の規定ホワイトバランス・ゲインを用いるものとして示されているが、各固体撮像素子毎に規定ホワイトバランス・ゲインを決定してもよい。
ステップS202では、撮像システム10は、明るさ調整部222により、撮像条件として与えられたOB値(o1,o2)と、各固体撮像素子(i∈{1,2})毎および各重複領域毎の輝度値m1(x,y)およびm2(x,y)から、各固体撮像素子毎のOB補正値(o1’,o2’)を算出する。OB補正値(o1’,o2’)は、自動露出制御において複数の撮像光学系間で明るさを調整しきれない場合に好適に用いられる。OB補正値(o1’,o2’)は、下記式(3)により算出される。下記式中、関数minは、与えられた集合のうちの最小値を求める関数である。下記式中、関数maxは、与えられた集合のうちの最大値を求める関数である。
上記式(3)は、重複する分割領域における撮像画像間での最も暗い輝度値の差異に基づき、重複領域全体における最低輝度値が低い方の固体撮像素子のOB値を、最低輝度値が高い方にあわせて増加させるようにはたらく。例えば、固体撮像素子22Aの最低輝度値の方が固体撮像素子22Bのものよりも大きい場合(min(m1(x,y))>min(m2(x,y)))は、固体撮像素子22BのOB補正値o2’が、その差分だけ増加される。このとき、固体撮像素子22AのOB補正値o1’は変化しない。
ステップS203では、撮像システム10は、明るさ調整部222により、各固体撮像素子毎および各重複領域毎の輝度値m1(x,y)およびm2(x,y)から、各固体撮像素子毎のゲイン値(g1,g2)をさらに算出する。ゲイン値(g1,g2)は、下記式(4)により算出される。
上記式(4)は、重複する分割領域における撮像画像間での最も明るい輝度値の差異に基づき、重複領域全体における最高輝度値(min(mi(x,y))で控除した値である。)が低い方の固体撮像素子のゲイン値を、最高輝度値が高い方よりも大きくするようにはたらく。例えば、固体撮像素子22Aの最高輝度値の方が固体撮像素子22Bのものよりも大きい場合(max(mt1(x,y))>max(mt2(x,y)))は、固体撮像素子22Bのゲイン値g2は、その比だけ大きくなる。このとき、固体撮像素子22Aのゲイン値g1は1となる。
ステップS204では、撮像システム10は、重複領域調整値算出部224により、上記明るさ調整値に基づき、各固体撮像素子毎および各重複領域毎の輝度値mi(x,y)を調整する。調整された輝度値mi’(x,y)は、下記式(5)により算出される。
ステップS205では、撮像システム10は、重複領域調整値算出部224により、上記調整された輝度値mi’(x,y)から、重複領域毎のホワイトバランス調整値の候補を計算する。各固体撮像素子毎および各重複領域毎のホワイトバランス調整値の候補(wbri(x,y),wbgi(x,y),wbbi(x,y))は、下記式(6)により算出される。
ステップS206では、撮像システム10は、分割領域調整値決定部226により、上記算出された各重複領域毎のホワイトバランス調整値の候補(wbri(x,y),wbgi(x,y),wbbi(x,y))を用いて、重複しない分割領域を含めて、各分割領域毎に、周辺領域での加重平均をし、各領域毎のホワイトバランス調整値(wbRi(x,y),wbGi(x,y),wbBi(x,y))を決定する。各分割領域毎のホワイトバランス調整値は、赤色ゲインwbRi(x,y)を代表して説明すると、下記式(7)により算出される。
上記式中、uおよびvは、それぞれ、分割領域(x,y)を中心とした周辺の分割領域を識別する。加重平均するuおよびvの範囲は、適宜定めることができる。また、重複領域以外の分割領域毎のホワイトバランス調整値(wbri(x,y),wbgi(x,y),wbbi(x,y);i∈{1,2})は、簡便には、上述した既知のオート・ホワイトバランス処理で求められた規定ホワイトバランスを用いることができる。
なお、重複領域以外の分割領域毎のホワイトバランス調整値(wbri(x,y),wbgi(x,y),wbbi(x,y);i∈{1,2})の決定方法は、特に限定されるものではない。例示的な実施形態では、重複領域以外の広い領域で、例えば上述したグレイワールド・アルゴリズムで固体撮像素子毎に1つの補正点のホワイトバランス調整値のセットを決定し、上述した分割領域(x,y)のメッシュに適合する形に補間して分割領域(x,y)毎のホワイトバランス調整値を算出することができる。また、上記グレイワールド・アルゴリズムに代えて、上述したRetinex理論に基づくアルゴリズムや、光源推定に基づくアルゴリズムを適用して算出してもよい。また、固体撮像素子毎に複数の補正点を設定してもよいし、上述した固体撮像素子間で感度調整が行われる好ましい実施形態では、複数の固体撮像素子の領域をまとめて1つの画像として取り扱って、1つまたは複数の目標点を設定してもよい。
上記式(7)では、ガウス関数により、周辺の分割領域での加重平均に際し、重複領域および非重複領域間のホワイトバランス調整値の差が大きい場合に、重み値rが小さくなるよう構成されている。重複領域は、比較的狭い領域であることから、得られるホワイトバランス調整値の精度には限界がある。このように、非重複領域のゲインと極端に異なる重複領域のゲインは、精度が比較的低い蓋然性があることから、加重平均の重みを小さくすることにより、好適に異常な値が調整値に与える影響を抑えることができる。
分割領域毎のホワイトバランス調整値が決定されると、ステップS207で、図6に示す処理に制御を戻し、ステップS103に処理を進める。図6に示すステップS103では、決定された各分割領域毎のホワイトバランス調整値をISP108のレジスタに設定更新することによって、各分割領域毎にホワイトバランス補正を適用し、ステップS104で、本処理を終了させる。
以上説明した実施形態によれば、複数の撮像画像を合成した際に、つなぎ目で生じ得る色味の不連続性を軽減することが可能な画像調整装置、画像調整方法およびプログラムを提供することができる。
全天球撮像システム10を用いて全方位の撮影を行う場合、一方の撮影シーンに高輝度体が含まれていると、図4(A)および(B)に例示するように、一方の撮像光学系の撮像画像にフレアが生じ、像上で評価される照明条件に違い生じる可能性があった。これに対して、上述した実施形態によれば、撮像範囲が重複する各重複領域のRGBの積算値に基づき、画像の明るさを調整する明るさ調整値を計算し、そして、得られた明るさ調整値に基づいて、分割領域毎のホワイトバランス調整値が決定される。これにより、複数の撮像光学系による複数の撮像画像を合成した際につなぎ目で見られる色味の不連続性が軽減され、品質の高い合成画像を提供することができる。
さらに、各固体撮像素子毎の調整ゲインを計算する好適な実施形態では、基準カメラを基準として調整ゲイン(TRi,TGi,TBi)が画素値に印加される。このため、撮像素子間の感度差が調整され、複数の撮像画像間のつなぎ目で見られる色味の不連続性をより好適に軽減することができる。
なお、上述した実施形態では、180度より大きな画角を有する結像光学系を介して2つの固体撮像素子で撮像された2つの撮像画像を重ね合わせて合成するものとしたが、他の実施形態では、複数の結像光学系を介して3つ以上の固体撮像素子により撮像された3以上の撮像画像の重ね合わせ合成に適用してもよい。また、上述した実施形態では、魚眼レンズを用いた撮像システムを一例に説明してきたが、複数のレンズと複数の固体撮像素子を用いた全天球撮像システムに適用してもよい。
また、上述した実施形態では、画像調整装置の一例として、全天球の静止画を撮影する撮像システム10を用いて説明したが、画像調整装置は、特に限定されるものではない。他の実施形態では、全天球を動画撮影する全天球動画撮像システム(撮像装置)、全天球を撮影する機能を備えたスマートフォン、タブレットなどの携帯情報端末、撮像システムにおいて撮像体を制御するデジタル・スチルカメラ・プロセッサ(制御装置)などとして構成することもできる。
また、上記機能部は、アセンブラ、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などにより記述されたデータとして記録媒体により配布することができる。
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。