図1は、画像処理システムを備える撮像装置の外観を示した図である。ここでは、撮像装置を、全天球撮像カメラとしているが、これに限られるものではない。撮像装置としては、複数の撮像素子で重複する画像領域(重複領域)を撮影し、撮影した複数の画像を、その重複領域で繋ぎ合わせることができる撮像機器であってもよい。なお、撮影した複数の画像を、その重複領域で繋ぎ合わせる処理は、画像処理ICやソフトウェアを用いて実行することができる。
全天球撮像カメラ10は、撮像位置から全方位を撮像することができるように、180°を超える画角をもつ2つの魚眼レンズ11、12と、それぞれに対応する2つの撮像素子13、14とを備えている。ここでは、魚眼レンズ11、12および撮像素子13、14をそれぞれ2つずつ備える構成を例示しているが、これに限られるものではなく、3つ以上備える構成であってもよい。なお、画角とは、魚眼レンズ11、12を用いて撮像できる範囲を角度で表したものである。
魚眼レンズ11、12は、撮像した画像の中心からの距離と光の入射角度が比例する等距離射影方式を採用することができる。撮像素子13、14としては、入射された光を電気信号に変換するCCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等を用いることができる。2つの撮像素子13、14は、撮像した画像に、重複する画像領域としての重複領域が含まれるように、全方位を撮像する。
撮像は、撮影者が撮像SW15を押下し、それをトリガーとして撮像素子13、14が同時に露光することにより行われる。撮像素子13、14は、受光した光を電気信号に変換することにより画像を取得する。取得した画像は、魚眼レンズ11、12を使用して得られた画像であるため、魚眼画像と呼ばれる。2つの撮像素子13、14によって取得された2つの魚眼画像は、その後の画像処理において、画像変換が行われ、重複領域で結合されて、全天球画像が生成される。
全天球撮像カメラ10は、生成した全天球画像のデータを格納し、要求を受けて、図示しないPC等の表示装置を備える機器へ出力し、その表示装置に表示させることができる。また、全天球撮像カメラ10は、生成した全天球画像を、図示しないプリンタやMFP(Multi-Function Peripheral)等に出力し、印刷出力することもできる。また、MFPやPCへ出力し、FAX送信やメール送信することも可能である。
図2は、全天球撮像カメラ10のハードウェア構成を示した図である。図2では、魚眼レンズ11、12を省略している。全天球撮像カメラ10は、2つの撮像素子13、14および撮像SW15のほか、コントローラ20、SDRAM21、外部記憶装置22を備えている。SDRAM21は、コントローラ20とともに使用され、所定の画像処理を実現するためのプログラムを格納する。外部記憶装置22は、画像処理されたデータ、すなわち上記の全天球画像のデータを格納する。
コントローラ20は、CPU23、ROM24、SRAM25、画像処理ブロック26、SDRAM I/F27、外部記憶I/F28を含み、各々がバス29に接続されている。CPU23は、全天球撮像カメラ10全体の制御を行う。ROM24は、全天球撮像カメラ10を起動させるプログラムや後述する変換テーブル等を記憶する。SRAM25は、CPU23に対して作業領域を提供し、画像処理ブロック26は、CPU23、SRAM25およびSDRAM21等とともに上記の所定の画像処理を実行する。画像処理ブロック26としては、特定用途向けの集積回路であるASIC(Application Specific Integrated Circuit)を用いることができる。
全天球撮像カメラ10は、2つの撮像素子13、14により2つの魚眼画像を取得する。このとき、撮像素子13、14は、A/D変換器を備えており、変換した電気信号を、このA/D変換器によりデジタルデータへ変換する。撮像素子13、14は、コントローラ20が備える画像処理ブロック26へこのデジタルデータを、魚眼画像のデータとして出力する。画像処理ブロック26は、CPU23等とともに、所定の画像処理として上記の画像変換、画像を繋ぎ合わせて全天球画像を生成する処理を行い、生成した全天球画像のデータを、外部記憶I/F28を介して外部記憶装置22に格納する。
全天球撮像カメラ10は、そのほか、通信I/Fを備え、有線または無線により図示しないPCやMFP等と通信を行い、全天球画像データをそれらの機器へ送信し、表示や印刷出力等させることができる。無線により通信を行う場合、Wi−Fi等の無線LAN、Bluetooth(登録商標)、赤外線通信等を用いることができる。
図3を参照して、魚眼レンズ11について詳細に説明する。魚眼レンズ12は、魚眼レンズ11と同様のものであるため、ここでは魚眼レンズ11についてのみ説明する。180°を超える画角をもつ魚眼レンズ11を有する撮像素子13で撮像された魚眼画像は、撮像位置を中心として、略半球分の被写体の画像となる。
ここで、図3(a)に示すように、魚眼レンズ11への光の入射角度をφ、画像の中心と像点との距離を像高h、射影関数をfとすると、これらの関係は、式1のように表すことができる。
射影関数fは、魚眼レンズ11の性質により異なり、例えば、等距離射影方式の魚眼レンズを採用した場合、図3(b)に示すように、入射角度φが矢線に示すように大きくなる程、像高hが大きくなるという比例関係で表される。なお、図3(b)中、円の外側の黒く塗り潰された領域は、光が入射されない領域である。
図4を参照して、撮像素子13、14により撮像された2つの魚眼画像の重複領域について説明する。図4中、撮像素子13を「撮像素子1」とし、撮像素子14を「撮像素子2」とする。魚眼レンズ11、12は、180°を超える画角をもっているため、撮像素子13、14で撮像された魚眼画像には、重複領域が含まれる。図4(a)は、撮像素子13、14で撮像された魚眼画像で、黒く塗り潰された領域は、光が入射されない領域、白い領域が入射角度90°までの領域、斜線で示される領域が入射角度90°を超える領域を示している。
図4(a)の斜線で示される領域は、2つの魚眼画像の重複する画像領域を示すことから、重複領域として定義することができる。しかしながら、魚眼レンズ11、12は、像高hが大きくなり、像点が画像の中心から離れるほど歪みや収差が発生しやすくなる。また、魚眼レンズ11、12の周囲の外枠等が写り込む場合もある。歪みや収差が発生した領域や外枠等の画像は、画像を繋ぎ合わせるために使用することはできない。
そこで、図4(b)に示すように、重複領域30としては、その内側の所定幅を有する縦縞で示されるリング状の領域に限定することができる。ちなみに、図4(b)中、2つの魚眼画像は、撮像素子13、14を同時に露光し、撮像しているため、重複領域30は、基本的に同じ被写体の画像となる。
次に、図5を参照して、全天球画像について説明する。魚眼画像は、図5(a)に示す略半分の球面を円形で表したフォーマットとされ、地球儀でいう経度が水平角度に相当し、緯度が垂直角度に相当している。水平角度は、0〜360°の範囲とされ、垂直角度は、0〜180°の範囲とされている。
全天球画像は、図5(b)に示す矩形で表したフォーマットとされ、水平方向が水平角度、垂直方向が垂直角度とされる2つの半天球画像を結合することにより生成される画像である。実際には、重複領域がある分、半天球画像より大きい画像であるが、ここでは半天球画像と呼ぶものとする。
2つの半天球画像は、魚眼画像の水平角度と垂直角度に対応する画素が有する画素値と同じ画素値を、図5(b)に示す矩形で表したフォーマットの同じ水平角度と垂直角度に対応する画素が有する画像として生成される。この半天球画像は、魚眼画像を射影変換することにより生成することができ、生成した2つの半天球画像を結合することで、水平方向および垂直方向に360°の全方位を表す全天球画像を生成することができる。
魚眼画像を射影変換する際に使用する変換テーブルを、図6に例示する。変換テーブルは、図6(a)に示すように、変更前画像である魚眼画像の水平角度と垂直角度の値である座標値と、変更後画像である半天球画像の座標値とを対応付けたテーブルである。変更前画像の座標値は、(x,y)で表され、変更後画像の座標値は、(θ,φ)で表される。図6(b)に示すように、いずれの画像も左上隅の座標(0,0)を基準とし、変更前画像における画素と、変更後画像における対応する画素とを決定し、それらの画素の座標値の組み合わせを、変換テーブルにデータとして保持する。対応関係は、変換前画像と変換後画像との射影関係から求めることができる。
変換テーブルは、2つの魚眼レンズ11、12および撮像素子13、14の各々に対してレンズ設計データ等を基に事前に作成することができ、図2に示したROM24に格納しておき、必要に応じて読み出して使用することができる。この変換テーブルを用いることで、魚眼画像を射影変換して、魚眼画像の歪みを補正することができる。この補正をした画像を結合することで、全天球画像を生成することができる。
図7を参照して、全天球画像を生成する処理の流れについて説明する。2つの撮像素子13、14により2つの魚眼画像を撮像し、2つの魚眼画像が入力されることにより、ステップ700からこの処理を開始する。ステップ710では、ROM24に格納された図6(a)に示したような変換テーブルを用いて各魚眼画像を射影変換して歪み補正を行う。この歪み補正により、図5(a)に示す半天球画像が2つ得られる。
ステップ720では、得られた2つの半天球画像の重複領域で繋ぎ合わせるために、繋ぎ位置の検出を行う。繋ぎ位置の検出の詳細については後述する。ステップ730では、検出結果に基づき、ステップ710で使用した変換テーブルを補正する。補正を行う目的や具体的な処理の内容については後述する。ステップ740では、補正した変換テーブルに対して回転変換を行い、画像生成用の変換テーブルを作成する。なお、回転変換を行う目的は、画像生成用の変換テーブルにおいて、画像の上下方向と、全天球撮像カメラ10の天頂方向とを一致させるためである。
ステップ750では、2つの魚眼画像に対して、画像生成用の変換テーブルを用いて射影変換を行い、画像の歪みを補正する。ステップ760では、歪みが補正された2つの画像を結合するためのブレンド処理を実行する。2つの画像は、その重複領域において結合されるが、一方の画像の重複領域にしかデータが存在しない場合、そのデータをそのまま使用して結合を行う。ブレンド処理が終了した後、ステップ770へ進み、この処理を終了する。
図8を参照して、図7のステップ710の歪み補正について詳細に説明する。2つの撮像素子13、14で撮像された2つの魚眼画像を、それぞれの変換テーブルを用いて射影変換し、歪み補正を行うと、図8(a)に示すようなそれぞれが矩形の半天球画像に変換される。撮像素子13で撮像され、変換された画像31は、図8(a)の上側の画像となり、撮像素子14で撮像され、変換された画像32は、図8(a)の下側の画像となる。上側の画像と下側の画像とが重複する中央部分の画像領域が重複領域30となり、その重複領域30を簡単に検出することができる。
このように変換された画像は、その画像の上下方向が、図8(b)に示す魚眼レンズ11、12を有する撮像素子13、14を備える全天球撮像カメラ10の矢線Aに示す天頂方向に対して略90°回転したものとなっている。
図9を参照して、繋ぎ位置を検出する処理について説明する。繋ぎ位置の検出には、一般によく知られているテンプレートマッチングを使用することができる。テンプレートマッチングでは、図8に示すようにして重複領域を検出した後、図9(a)に示すように、2つの半天球画像のうちの一方から、重複領域30内の所定サイズの画像を、テンプレート画像34として取り出す。テンプレート画像34は、所定の間隔stepで等間隔に、水平方向のサイズw、垂直方向のサイズhで、複数個取り出す。図9(a)中、テンプレート画像34は、番号1〜6で示される矩形の画像である。テンプレート画像34は、その画像の左上隅の座標を、テンプレート画像34の取り出し座標(sx1,sy1)等とする。取り出したテンプレート画像34は、例えば、図9(b)に示す画像である。
繋ぎ位置は、図9(c)に示すように、テンプレート画像34の左上隅の座標(kx,ky)を探索位置とし、その探索位置を2つの半天球画像のうちの他方の重複領域内をずらしながら、その評価値が最も高い位置を探索して検出する。探索範囲は、重複領域内とすることができる。テンプレートマッチングにより検出した座標(kx,ky)と、テンプレート画像34の取り出し座標の座標値(sx1,sy1)の差分を、繋ぎ位置の検出結果として出力する。この検出結果は、複数個のテンプレート画像を所定の間隔stepで取り出しているため、離散データとなる。このため、データ間は、線形補間を行う等して、その間のデータを取得することができる。
重複領域は、同じ被写体の画像となるが、その被写体に対して撮像素子13、14が向く方向が異なるため、視差が生じる。視差が生じると、被写体が二重像に見えてしまうことから、いずれか一方の画像に合わせる必要がある。この繋ぎ位置の検出は、こうした視差を補正するために行われる。なお、視差は、被写体の位置によって異なるため、撮像するたびに重複領域内で領域毎に最適な繋ぎ位置を検出する必要がある。
図7にステップ730で行う変換テーブルの補正は、テンプレートマッチングにより検出された座標を用いて行われる。具体的には、一方の魚眼画像に対して使用する変換テーブルの座標値(x,y)に繋ぎ位置の検出結果である差分を加算し、その座標値を補正する。この補正は、一方の魚眼画像を、繋ぎ合わせる他方の画像に繋ぎ合わせるための補正であるため、他方の魚眼画像に対して使用する変換テーブルの補正は行わない。
これまでは、2つの撮像素子13、14を用いて撮像した魚眼画像を画像変換し、それを繋ぎ合わせて全天球画像を生成する処理について説明してきた。以下、魚眼画像にフレアが発生しているかどうかを判断し、発生している場合には適切に補正をして、フレアの発生によって生じた輝度の差や色差を低減させる処理について説明する。ここでは、輝度の差や色差を生じる例として、フレアを取り挙げるが、それらの差が生じて結合した画像が不自然になるような例であれば、フレアに限定されるものではない。
図10は、この処理を実現するための画像処理システムの機能ブロック図である。画像処理システムは、複数の撮像素子13、14等から入力された複数の画像に対して画像処理を行う画像処理システムである。画像処理システムは、
演算部40と、判断部41と、画像決定部42と、画像補正部43とを含んで構成される。これらの機能部は、例えば、図2に示すCPU23がSDRAM21に記憶されたプログラムを実行することにより、あるいは画像処理ブロック26により実現される。
演算部40は、各重複領域内の1以上の画素の画素値を用いて各画像を評価するための評価値を算出する。評価値は、例えば、各重複領域内の複数の画素の画素値の平均値や分散値とすることができる。画素値は、カラー画像でRGB色空間を採用する場合、RGBの各色の信号量を含むことができる。YCbCr色空間を採用する場合は、輝度値、青系統の色の色相および彩度の値、赤系統の色の色相および彩度の値を含むことができる。
判断部41は、演算部40により算出された評価値に基づき、複数の画像の中に補正対象画像があるか否かを判断する。例えば、判断部41は、閾値をもち、閾値と比較することにより補正対象画像の有無を判断することができる。具体的には、判断部41は、上記の平均値や分散値が閾値を超える画像を補正対象画像と判断し、その画像がある場合に補正対象画像があると判断することができる。
画像決定部42は、判断部41により補正対象画像があると判断された場合に、演算部40により算出された評価値に基づき、複数の画像の中から補正を行う際の基準となる補正基準画像を決定する。補正基準画像は、複数の画像の補正対象画像を除いた画像の中から選択することができ、例えば、補正対象画像と結合する画像であって、補正対象画像ではない画像を、補正基準画像として決定することができる。上記の全天球撮像カメラ10の場合は、一方が補正対象画像であれば、他方の画像を補正基準画像として決定することができる。
画像補正部43は、画像決定部42により決定された補正基準画像に基づき、補正対象画像を補正する。画像補正部43は、補正基準画像の輝度や色に近づけるように、補正対象画像の輝度や色を補正する。この補正により、結合する複数の画像の輝度の差や色差を低減することができる。
図11を参照して、画像処理システムが実行する処理について説明する。画像処理システムは、2つの撮像素子13、14が撮像した2つの魚眼画像の入力を受け付けることにより、ステップ1100から処理を開始する。ステップ1110では、演算部40が、2つの魚眼画像の各重複領域内の1以上の画素の画素値を用いて各画像を評価するための評価値を算出する。
ステップ1120では、判断部41が、演算部40が算出した評価値に基づき、2つの魚眼画像の中にフレアが発生した画像(フレア画像)があるか否かを判断する。ステップ1120で、フレア画像がある場合はステップ1130へ進み、ない場合はステップ1150へ進み、この処理を終了する。
ステップ1130では、画像決定部42が、フレアが発生していない画像を、補正基準画像と決定し、画像補正部43が、ステップ1110で算出した評価値を用い、フレア画像を補正するための補正値をマップした補正マップを作成する。ステップ1140では、画像補正部43が、作成した補正マップを用いてフレア画像を補正する。補正が終了した後、ステップ1150へ進み、この処理を終了する。
図11に示すステップ1110の評価値の算出について、図12を参照して説明する。評価値は、重複領域内の1以上の画素の画素値を用いて算出することから、図12(a)の縦縞で示される重複領域30内の1以上の画素の画素値を取得する必要がある。その1つの方法を以下に説明する。なお、この方法は一例であるため、評価値を算出することができれば、いかなる方法でも使用することができる。
最初に、図12(a)に示すように、入力された2つの魚眼画像の各々を、予め決定された数のそれぞれが同じサイズの矩形からなる複数の評価領域に分割する。例えば、各魚眼画像のサイズが1952(pix)×1932(pix)である場合、48×48に分割することができる。この分割数は一例であるため、試験等により最適な分割数を決定し、その分割数を採用することができる。画像処理システムは、このような分割を行うための機能部として、複数の評価領域に分割する領域分割部を備えることができる。
次に、図12(b)に示すように、縦縞で示される重複領域30内に、領域全部が含まれる評価領域を、重複領域30に対応する評価領域として検出する。図12(b)では、検出した評価領域35が灰色で示されている。画像処理システムは、この検出を行うための機能部として、領域検出部を備えることができる。
検出された評価領域35は、複数の画素により構成される。各画素は、画素値を有している。評価値は、各評価領域35につき、画素値を合計してその数で除して平均値を求め、各評価領域につき求めた平均値を合計してその数で除して平均値を求めることにより算出することができる。また、評価値は、各評価領域につき求めた平均値を用い、その分散値を求めることにより算出することができる。したがって、評価値としては、上記の平均値あるいは分散値を用いることができる。画像処理システムは、評価領域の平均値を算出するための平均値算出部を、機能部として備えることができる。
図1に示す構造の全天球撮像カメラ10で撮像する場合、360°撮像するため、撮像SW15を押下する撮影者の指が大きく写り込んでしまうときがある。この場合、重複領域30において一方は指の画像があり、他方は指の画像がないことになる。この指の画像の有無によって算出される平均値や分散値は大きく変わってくるので、その部分の画像は、評価値の算出において採用しないほうが望ましい。
そこで、指の写り込みが予想される重複領域30の下側1/4の領域は、不要領域として設定し、その他の重複領域30内に含まれる評価領域のみを、重複領域30に対応する評価領域35として検出することができる。ここでは、重複領域の下側1/4の領域を、不要領域として設定したが、これに限られるものではなく、1/5以下や1/3以上の領域を不要領域としてもよいし、その他の領域を不要領域に追加してもよい。
このように不要領域を設定し、指等の障害物を評価対象から除くことで、フレア画像と補正基準画像との相関性の高い評価領域のみを使用して平均値や分散値を求めることができる。
図11に示すステップ1120のフレア画像の有無の判断について、図13を参照して説明する。この処理は、評価値を算出したことを受けて、ステップ1300から開始する。ステップ1310では、評価値として算出された、重複領域に対応する評価領域のすべての平均値を平均して、その平均値を算出する。この処理は、繋ぎ合わせる画像毎に行う。したがって、2つの画像を繋ぎ合わせる場合は、2つの画像の各々につき平均値を算出する。
ステップ1320では、繋ぎ合わせる画像の間で算出した平均値を比較する。ここでは、平均値の差分の絶対値を算出し、平均値が最小の画像を抽出する。そして、これらの情報を比較結果として出力する。例えば、画像1と画像2とを繋ぎ合わせる場合、その平均値をAVE_1とAVE_2とすると、比較結果は、|AVE_1-AVE_2|と、AVE_1>AVE_2のとき画像2、AVE_1<AVE_2のとき画像1となる。
ステップ1330では、比較結果の差分の絶対値が、予め設定された閾値Tより大きいか否かを判断する。大きい場合は、輝度値等の差が大きいことから、ステップ1340へ進み、フレアが発生し、その画像はフレア画像であると判断する。これに対し、小さい場合は、その差が小さいことから、ステップ1350へ進み、フレアが発生しておらず、フレア画像ではないと判断する。この判断が終了したところで、ステップ1360へ進み、この処理を終了する。
なお、ステップ1320で比較し、抽出した平均値が最小の画像を、フレアが発生していない画像であって、補正基準画像として定めることができる。基本的に、同時露光により撮像した場合、重複領域は同じ被写体の画像が同じ明るさで撮像されるはずである。しかしながら、一方の画像でフレアが発生している場合、重複領域の上記平均値が高くなるため、上記のように閾値を設け、その閾値より大きいとき、フレア画像と判断することができる。また、平均値が最小の画像では、フレアが発生していない可能性が高いことから、補正基準画像として使用することができる。
図11に示すステップ1130の補正マップの作成について、図14を参照して説明する。フレア画像があると判断されたことを受けて、ステップ1400からこの処理を開始する。ステップ1410では、補正を除外する領域を指定する補正除外マップを作成する。補正除外マップは、補正対象画像を構成する複数の画素の各画素値に基づき判定された補正対象画像内の補正を行わない補正除外領域に含まれる評価領域に対応する位置のブロックに、補正除外する値を格納したものである。なお、それ以外のブロックには補正除外しない値が格納される。画像処理システムは、この補正除外マップを作成するために、補正除外領域を判定するための領域判定部を、機能部として備えることができる。
フレアが発生していない平均値が最小の画像に基づき、フレアが発生している画像を補正する場合、そのフレアが発生している画像全体を補正することになる。画像全体に対して補正を行うと、全体的に輝度が低下し、色が変化することになる。すると、画像を結合した場合に目で見て不自然な画像になることがある。例えば、光源の実際の輝度や色は、フレアが発生している画像における輝度や色であるにもかかわらず、補正によってその輝度が低下し、その色も暗い色になる。そこで、光源のように補正しないほうが良い被写体の画像に対しては、補正しないようにするため、補正除外マップを作成する。
ステップ1420では、重複領域に対応する評価領域の平均値や分散値といった評価値から、重複領域の補正量を算出する。補正量は、どの程度輝度値を低下させたら良いか、どの程度色を変化させたら良いかを数値で表したものである。ステップ1430では、ステップ1420で算出した補正量を基に、補正対象画像、すなわちフレアが発生している画像全体の補正量を、補間処理により算出し、算出した補正量を用いて補正マップを作成する。補正マップは、算出した各補正量を、補正対象画像の各評価領域に対応する位置のブロックに格納したものである。
ステップ1440では、ステップ1430で作成した補正マップに対し、ステップ1410で作成した補正除外マップを適用し、補正マップを修正する。そして、ステップ1450では、補正マップ内の補正値に、極端に高い値や低い値が存在する場合、それらの値を平準化する平準化処理、すなわちローパスフィルタ(LPF)処理を行う。LPFとしては、ガウシアンフィルタを用いることができる。
LPF処理は、1回に限らず、複数回行ってもよい。ただし、回数が多いと、補正除外した画像に対する補正値が大きく変化し、補正除外した意味がなくなってしまうことから、その回数は少ないほうが好ましい。図14に示す実施形態では、ステップ1460に示すように2回としている。画像処理システムは、この平準化処理を実施するための機能部として、平準化処理部をさらに備えることができる。
ステップ1460ではLPF処理を2回実施したかを判断する。2回実施していない場合は、ステップ1440へ戻り、2回実施した場合は、ステップ1470へ進む。ステップ1470では、補正マップのリサイズ処理を行う。リサイズ処理は、補正マップが有する評価領域の数を、補正対象画像の画素数へ変更する処理である。このため、画像処理システムは、サイズ変更処理部を機能部として備えることができる。
ステップ1440までに生成される補正マップは、図12に示すように、魚眼画像を水平方向および垂直方向に分割した分割数のサイズとされている。すなわち、48×48に分割されていれば、48×48のサイズである。実際の魚眼画像は、上記の例では1952(pix)×1932(pix)のサイズであるため、リサイズ処理では、48×48から1952×1932へサイズを変更する処理を行う。このリサイズ処理が終了したところで、ステップ1480へ進み、この処理を終了する。
リサイズの方法としては、これまでに知られたいかなる方法でも使用することができる。例えば、バイリニア、ニアレストネイバー、バイキュービック等の方法を使用してサイズを変更することができる。
図14に示すステップ1410の補正除外マップの作成方法を、図15を参照して説明する。図15では、図15(a)に示すように、光源50が写り込んだ画像において、この光源50の画像を、補正を除外する被写体の画像とする。まず、図15(b)に示すように、画像を複数の評価領域に分割し、各評価領域の平均値や分散値を算出し、評価領域ごとに補正除外領域か否かを判断する。なお、この判断を、上記の領域判定部で行うことができる。
補正除外領域の条件は、「高輝度かつ無彩色」または「高輝度かつ輝度の最大値が閾値以上」とすることができる。「高輝度かつ無彩色」を条件1とすると、高輝度は、輝度値が0〜255の場合、例えば200以上とすることができ、無彩色は、色差値が−127〜127の場合、例えば−1〜1とすることができる。「高輝度かつ輝度の最大値が閾値以上」を条件2とすると、高輝度は、輝度値が0〜255の場合、例えば230以上とすることができ、閾値としては、輝度値が0〜255の場合、例えば250とすることができる。これらの数値は一例を示したものであり、本発明はこれらの数値に限定されるものではない。
補正除外領域の条件は、上記条件1と条件2の両方で判断することが望ましい。1つの評価領域全体が均一な輝度や色を有している場合、条件1のみで判断することができる。しかしながら、1つの評価領域内に光源50等の高輝度の被写体と、木の枝等の低輝度の被写体が存在する場合、条件1に適合しなくなるため、光源50の画像が補正され、光源50が暗く不自然な画像になってしまうからである。この条件2を含めることで、このような光源50と木の枝等を含む画像も、補正除外領域として適切に抽出することができる。
図15(b)ではこれらの条件に適合する領域として、8つの領域51が抽出されている。補正除外マップは、補正対象画像を複数の評価領域に分割した際のフォーマットと同様のフォーマットをもつ。補正除外マップは、図15(c)に示すように、条件に適合する評価領域に対応する位置のブロックに補正除外する値である「1」が格納される。条件に適合しない評価領域に対応する位置のブロックには補正除外しない値である「0」が格納される。
図14に示すステップ1420の補正量の算出方法を、図16を参照して説明する。図16(a)は、フレア画像と、基準画像とを示した図で、図16(b)は、図16(a)中、破線で示された重複領域30に含まれる評価領域35を拡大して示した図である。繋ぎ位置に対応する評価領域35は、同じ符号で示された領域となる。すなわち、図16(b)のフレア画像から抽出された左図の符号aで示された評価領域と、基準画像から抽出された右図の符号aで示された評価領域とが繋ぎ合わせる領域となる。これは、全天球撮像カメラ10が表裏を同時に撮像するため、重複領域内の同じ画像は180°回転した位置となるからである。
繋ぎ合わせる際、符号aで示された2つの評価領域の値は、一方はフレアが発生しているため、高い値を示し、他方はフレアが発生していないため、それより低い値を示す。このため、同じ値にするべく、補正をしなければならない。その補正に用いる補正量cは、下記式2または式3により算出することができる。式2中、Ebは、補正基準画像としての基準画像の評価値を示し、Etは、補正対象画像、すなわちフレア画像の評価値である。
補正量cは、上記式2および式3のいずれの式を用いて算出してもよい。算出した補正量cは、フレア画像の対応する評価領域の値として格納される。したがって、図16(b)に示す符号aについての補正量cを算出した場合、その補正量cが符号aの値として格納される。
図14に示すステップ1430の補正量の補間処理について、図17を参照して説明する。重複領域の補正量cは、上記式2または式3を用いて算出される。重複領域の内側については、重複領域内の複数の評価領域35につき算出された補正量を用い、図17(a)の矢線に示すように画像の中心へ向けて補正量を補間し、内側の各評価領域の補正量を決定する。詳細な方法については後述する。
重複領域の外側については、後のステップ1450でLPF処理を実施することから、LPF処理を実施しても重複領域の補正量に大きな変化が出ない補正量を設定する必要がある。そこで、例えば、図17(b)に示すように、評価領域xで示される領域は、それぞれ1つ上の評価領域の補正量と同じ補正量とし、評価領域yで示される領域は、それぞれ1つ左の評価領域の補正量と同じ補正量とする。なお、どの評価領域の補正量を使用するかは、予め設定により決定することができる。
図14に示すステップ1440の補正マップの修正について、図18を参照して説明する。図18(a)は、図14に示す処理により作成した補正マップの一部を示した図で、図18(b)は、図15(c)に示す補正除外マップの一部を示した図である。図18(a)に示す補正マップは、上記式2の評価値の比率を補正量とし、それを各評価領域の補正量として格納したものである。
図18(a)に示す補正マップの修正は、図18(b)に示す補正除外マップを参照し、対応する評価領域における補正除外マップの補正量が「0」の場合、その評価領域については修正を行わない。これに対し、補正除外マップの補正量が「1」の場合、その補正量に対して補正が施されないような値に変更する。図18(b)を参照すると、座標(x3,y2)、(x3,y3)、(x4,y2)の評価領域に補正量1の値が格納されているため、補正マップの同じ位置にあるブロックの値を「1.00」に置換し、補正マップを修正する。これにより、その補正除外領域については、補正の効果を弱めるように補正マップを修正することができる。
フレア画像の補正は、図14に示す処理でリサイズ処理が実施された後の補正マップを用いて実施される。補正マップは、リサイズ処理によりフレア画像と同じ画素数の画像サイズとなっている。補正マップに、式2により算出された評価値の比率を用いて決定された各画素の補正量が格納されている場合、フレア画像内の各画素の画素値に、対応する各画素の補正量を乗算して、フレア画像内の各画素の画素値を補正する。補正マップに、式3により算出された評価値の差分を用いて決定された各画素の補正量が格納されている場合、フレア画像内の各画素の画素値から、対応する各画素の補正量を加算して、フレア画像内の各画素の画素値を補正する。
なお、モノクロ画像である場合、フレア画像に対する補正マップは1つとなるが、カラー画像の場合、フレア画像は3つのプレーンから構成されるため、補正マップは3つとなる。すなわち、カラー画像がRGB画像であれば、フレア画像は、赤、青、緑の3つの色のプレーンから構成され、各プレーンを補正するための3つの補正マップが作成され、フレア画像を補正するために使用される。
このようにフレア画像を補正することができるので、結合した場合の輝度の差や色差を低減することができる。また、光源等を補正除外し、光源等に対して補正を実施しないようにすることができるので、光源が暗くならず、色の飽和部の色ずれを防止することができる。さらに、補正マップにLPFを施し、平準化処理を実施することで、補正量の急激な変化をなくし、補正を除外した光源とその周辺との画素値の変化を緩和し、不自然な補正がかからないようにすることができる。
図13に示したステップ1310の重複領域の平均値を算出する処理の別の例を、図19を参照して説明する。図13では、重複領域内の評価領域すべてを用いて平均値を算出したが、図19に示す例では、予め条件を設定し、評価領域を分別して平均値を算出する。具体的には、処理に入る前に、予め評価領域の平均値に対して閾値(上限Tup、下限Tdw)を設け、その値を上限値および下限値として設定しておく。
ステップ1900からこの処理を開始し、ステップ1910では、評価領域の1つを任意に選択し、その評価領域が重複領域内にあるか否かを判断する。評価領域は、例えば、画像の左上隅にある評価領域から順に選択することができる。これは一例であるので、これ以外の方法で選択することも可能である。
評価領域が重複領域内にない場合、ステップ1920へ進み、その評価領域の平均値は積算除外となる。すなわち、その平均値は積算しない。これに対し、重複領域内にある場合、ステップ1930へ進み、その評価領域の平均値が上限Tupより大きいかどうかを判断する。大きい場合は、ステップ1920へ進み、その評価領域の平均値は積算除外となる。同じか、または小さい場合は、ステップ1940へ進み、その評価領域の平均値が下限Tdwより小さいかどうかを判断する。小さい場合は、ステップ1920へ進み、その評価領域の平均値は積算除外となる。同じか、または大きい場合は、ステップ1950へ進み、その評価領域の平均値を積算する。
ステップ1920で積算除外となった場合、ステップ1950で積算した場合、ステップ1960へ進み、全評価領域について終了したかどうかを判断する。まだ終了していない場合は、ステップ1910へ戻り、次の評価領域に対して同様の処理を行う。終了した場合は、ステップ1970へ進み、重複領域内にある評価領域の平均値を積算した値を、その評価領域の数で除して重複領域の平均値を算出し、ステップ1980でこの処理を終了する。
上限Tup、下限Tdwは、フレア画像の有無を判断する際の影響を考慮し、積算を除外したい評価領域を適切に除外できるように決定することができる。
図13に示したステップ1310の重複領域の平均値を算出する処理のさらに別の例を、図20を参照して説明する。図19では、閾値として上限Tup、下限Tdwを設けたが、図20に示す例では、一致度(マッチング度)と呼ばれる指標の閾値を設定し、マッチング度に基づき、積算する評価領域か、積算除外する評価領域かを判断する。なお、マッチング度は、補正基準画像の重複領域に含まれる各評価領域の画像と、補正対象画像であるフレア画像の重複領域に含まれる各評価領域の画像との一致する度合いを表す指標である。画像処理システムは、マッチング度を算出するための一致度算出部を、機能部として備えることができる。
ステップ2000からこの処理を開始し、ステップ2010では、評価領域が重複領域内にあるか否かを判断する。重複領域内にない場合、ステップ2020へ進み、その評価領域の平均値は積算除外となる。重複領域内にある場合、ステップ2030へ進み、その評価領域のマッチング度を算出する。マッチング度およびその算出方法については後述する。ステップ2040では、算出したマッチング度が、予め設定した一致度閾値であるマッチング度の閾値Tmより小さいかどうかを判断する。
大きい場合は、ステップ2020へ進み、その評価領域の平均値は積算除外となる。同じか、または小さい場合は、ステップ2050へ進み、その評価領域の平均値を積算する。ステップ2020で積算除外となった場合、ステップ2050で積算した場合、ステップ2060へ進み、全評価領域について終了したかどうかを判断する。まだ終了していない場合は、ステップ2010へ戻り、次の評価領域に対して同様の処理を行う。終了した場合は、ステップ2070へ進み、重複領域内にある評価領域の平均値を積算した値を、その評価領域の数で除して重複領域の平均値を算出し、ステップ2080でこの処理を終了する。
図21を参照して、図20で使用されるマッチング度およびマッチング度の算出方法について説明する。繋ぎ位置と評価領域との関係は、図16に示した通りであるが、評価領域は、画像を水平方向および垂直方向に均等に分割しているため、繋ぎ位置と評価領域は完全に一致していない。
例えば、図21に示すように、評価領域35を灰色で示した領域とし、その領域の中心の座標をO1、O2とする。そして、テンプレートマッチング等により検出した繋ぎ位置をP1、P2とし、その繋ぎ位置を中心とした評価領域と同じサイズの破線で示す領域を繋ぎ領域36と定義する。
繋ぎ領域36に含まれる被写体の画像は、フレア画像と基準画像で等しくなる。評価領域35の中心O1と繋ぎ領域36の中心P1、評価領域35の中心O2と繋ぎ領域36の中心P2がそれぞれ一致する場合、評価領域35と繋ぎ領域36は一致するため、評価領域35の被写体の画像は一致する。
しかしながら、中心の座標のいずれかが一致しない場合、評価領域35の被写体の画像は一致しない。空や平坦な壁等の変化が少ない被写体の画像であれば、被写体の画像が完全に一致していなくても、評価値への影響は少ない。反対に、その変化が大きい被写体の画像の場合は、少しのずれで明るさや色味が異なり、評価値への影響が大きい。そこで、マッチング度という指標を用い、評価領域35の被写体の画像が一致しているかどうかを判定している。
マッチング度は、評価領域35毎に算出する分散値を用い、下記式4または式5により算出することができる。式4中、mはマッチング度、σ1はフレア画像の分散値、σ2は基準画像の分散値である。また、式5中、v1はフレア画像の輝度値、v2は基準画像の輝度値である。
上記式4におけるマッチング度mは、フレア画像と基準画像の間の分散値の差分の絶対値により定義している。このため、通常はマッチング度が大きいほど被写体の画像が一致するが、この場合は、マッチング度が小さいほど被写体の画像が一致していることを示す。なお、被写体の画像の変化が大きい場合、分散値が大きくなり、被写体の画像の変化が小さい場合、分散値が小さくなる傾向がある。このことから、変化が大きい被写体の画像は少しのずれでもマッチング度への影響が大きく、反対に、変化が小さい被写体の画像は大きいずれでもマッチング度への影響は小さい。
なお、マッチング度を算出するために使用する画素値は、すべての画素の画素値を用いてもよいが、すべての画素値を用いると計算コストがかかることから、画像の明るさに影響がある画素値のみを用いることが好ましい。このような画素値としては、RGB画像であればGの値、YCbCr画像であればYの値を挙げることができる。
上記式5では、分散値を用いず、輝度値のみで算出することを示している。式5におけるマッチング度mは、輝度値の差分の絶対値で定義するため、式4と同様、マッチング度が小さいほど被写体の画像が一致していることを示す。
図17に示す補正量の補間方法の1つの例を、図22を参照して説明する。図22(a)に灰色で示す重複領域30内にある複数の評価領域35の平均値を平均し、重複領域の平均値を算出する。その算出した平均値を、重複領域30内側の中心の斜線で示す部分の補正量とする。
図22(b)に示すように、中心C、中心Cから重複領域に向けて水平方向および垂直方向に延ばした交点の重複領域O、その間の算出対象の領域Tとし、それらの補正量をrc、ro、rtとする。また、中心Cと領域Tとの間の距離をd1、領域Tと重複領域Oとの間の距離をd2とする。すると、領域Tの補正量rtは、距離を重みとした加重平均により算出される下記式6で表すことができる。
上記式6を用いて、図22(b)の中心Cから重複領域に向けて垂直方向および水平方向に延びる各領域の補正量を算出する。図22(c)の補正量が算出された灰色で示される算出領域と重複領域との間の白色で示される領域の補正量は、それらの間の距離に応じた加重平均により算出することができる。算出する領域をT、領域Tから垂直方向上側に延ばしたときの算出領域との交点をHとする。また、垂直方向下側に延ばしたときの重複領域との交点をO1、領域Tから水平方向右側に延ばしたときの算出領域との交点をV、水平方向左側に延ばしたときの重複領域との交点をO2とする。領域Tと領域Vとの距離をdh1、領域Tと領域O2との距離をdh2、領域Tと領域Hとの距離をdv1、領域Tと領域O1との距離をdv2とする。また、領域T、H、V、O1、O2のそれぞれの補正量をrt、rh、rv、ro1、ro2とする。すると、領域Tの補正量rtは、下記式7により算出することができる。
上記式6および式7を用いて、重複領域内側の評価領域すべての補正量を算出することができる。
図22に示した補正量の補間方法では、特定の方向によらず、均等に補間している。繋ぎ合わせる画像で重複領域に同じ被写体の画像がある場合は問題が生じないが、障害物があって被写体の画像が異なる場合に、このような均等な補間では問題が生じる。例えば、被写体として一方の画像にのみ上記の指が写っている場合である。このような場合、均等に補間処理を行うことができないため、この例のように、特定の方向から順に補間処理を実施する。この方法を、図23を参照して説明する。
図23(a)に示すように、例えば、重複領域内の3つの評価領域O1、O2、O3を用い、重複領域の垂直方向の最上部の1段下の領域から順に下方向へ向けて補正量を算出する。最初に、図23(a)に示す重複領域内の最上部の評価領域に接する重複領域内側の領域T1を、補正量を算出する対象の領域とする。その補正量は、領域T1の1段上の重複領域内側に接する評価領域O1、領域T1の左右の重複領域内側に接する評価領域O2、O3の補正量r1、r2、r3と、領域T1と領域O2の距離d1、領域T1と領域O3の距離d2を用いて算出する。この補正量rt1は、下記式8を用いて算出することができる。
上記式8を用いて、図23(b)に示す領域T1の左右の水平方向にある重複領域内側のすべての領域について補正量を算出する。次に、その1段下の重複領域内側の領域T2の補正量rt2を算出する。この補正量rt2は、領域T2の1段上の領域Pの補正量rp、その水平方向の重複領域内側に接する評価領域O4、O5の補正量r4、r5と、領域T2と領域O4の距離d3、領域T2と領域O5の距離d4を用いて算出する。この補正量rt2は、下記式9により算出することができる。これを垂直方向の下方向へ向けて繰り返し算出することで、重複領域内側の全ての領域の補正量を算出することができる。
重複領域内の評価領域に極端に大きい、または小さい補正量を有するものがある場合、補間によってその補正量が全体に広がり、結果として不自然な画像になることがある。
図14に示すステップ1410の補正除外マップの作成において、補正除外領域となったブロックの平均座標値を算出すると、その平均座標値をその補正除外領域の中心として求めることができる。求めた中心を含む所定の領域(中心領域)に対して補正を行わないように補正量を設定し、その中心領域に向けて、補間処理を実施すれば、極端に大きい、または小さい補正量が波及するのを最小限に留めることができる。
図24に示すように、補正除外領域の中心領域が斜線で示される領域であった場合、その領域を補間基準領域とし、周囲の重複領域からその補間基準領域へ向けて重複領域内側の評価領域の補正量を補間により算出する。補正量は、上記式6、式7に示した加重平均を用いて算出することができる。なお、式8、式9を用いて算出してもよい。
図24では、重複領域内側の評価領域の補正量を、補間基準領域に向けて四方から補間により算出しているが、特定の方向に特化して補間により算出してもよい。特定の方向に特化して算出すべき場合としては、重複領域に障害物がある場合や均等な補間では問題が生じる場合等である。図25に示す斜線の領域は、補間基準領域60が垂直方向に延び、その補間基準領域60には補正が施されないような値が格納されている。このため、重複領域の内側領域は、補間基準領域60により2つに分けられており、分けられた領域毎に上記式6、式7に示した加重平均により補正量を算出することができる。なお、式8、式9を用いて算出してもよい。
マッチング度が高い重複領域は、同じ被写体の画像が含まれるため、繋ぎ合わせる際の信頼性が高い。反対に、マッチング度が低い重複領域は、異なる被写体の画像が含まれるため、繋ぎ合わせる際の信頼性が低い。このため、マッチング度が低い重複領域では、補正量を算出したとしても誤った値が算出される可能性が高い。
図26を参照して、マッチング度を用いて重複領域の補正量を補正する処理について説明する。この補正は、図14に示すステップ1420の重複領域の補正量を算出後に行うことができる。処理を開始する前に、マッチング度に対して閾値Tmを設け、その値を設定しておく。
ステップ2600からこの処理を開始し、ステップ2610では、評価領域が重複領域内にあるか否かを判断する。重複領域内にない場合、その評価領域に対しては補正量の補正は行わず、ステップ2650へ進む。重複領域内にある場合、ステップ2620へ進み、その評価領域のマッチング度を参照する。なお、マッチング度が算出されていない場合は、上記の方法によりマッチング度を算出する。
ステップ2630では、参照したマッチング度が、予め設定したマッチング度の閾値Tmより大きいかどうかを判断する。小さい場合は、その評価領域に対しては補正量の補正は行わず、ステップ2650へ進む。これに対し、大きい場合は、ステップ2640へ進み、その評価領域の補正量を補正する。補正は、その評価領域の補正量を、補正が施されないような値に補正する。具体的には、補正量が上記の評価値の比率で表される値である場合、補正量は「1.0」に補正し、上記の評価値の差分で表される値である場合、補正量は「0」に補正する。
ステップ2650では、全評価領域に対して処理が終了したかを判断する。まだ終了していない場合は、ステップ2610へ戻り、次の評価領域に対して同様の処理を行う。終了した場合は、ステップ2660へ進み、この処理を終了する。
図14に示すステップ1420の重複領域の補正量の算出において、意図しない補正量が算出される場合がある。例えば、繋ぎ合わせる重複領域で同じ被写体の画像がない場合や、明るさが極端に異なる場合である。このような場合でも、極端に大きい、または小さい補正量とならないように所定の範囲内の補正量とすべく、補正量に対して制限処理を行うことができる。
図27を参照して、その制限処理について説明する。この制限処理は、図14に示すステップ1420の重複領域の補正量の算出後、またはステップ1430の補間処理による補正量の算出後に実行することができる。制限処理を開始する前に、フレア画像の画素値と制限処理の閾値との関係を示す閾値テーブルを作成しておく。
閾値テーブルは、例えば、図28(a)、(b)に示すようなグラフ、あるいはそれらを数値として保持する表とすることができる。図28(a)は、補正量が評価値の比率の場合のテーブルを示し、図28(b)は、補正量が評価値の差分の場合のテーブルを示している。閾値テーブルでは、フレア画像の画素値としての信号量に対応した上限Tupと下限Tdwの閾値が定められている。
図28(a)における上限Tup、下限Tdwは、フレア画像の信号量s、補正を許容する信号量aとすると、下記式10、11で表すことができる。
図28(b)における上限Tup、下限Tdwは、フレア画像の信号量s、補正を許容する信号量aとすると、下記式12、13で表すことができる。
ステップ2700からこの処理を開始し、ステップ2710では、評価領域が重複領域内にあるか否かを判断する。重複領域内にない場合、その評価領域に対しては補正量の補正は行わず、ステップ2750へ進む。重複領域内にある場合、ステップ2720へ進み、図28に示した閾値テーブルを参照し、補正量の閾値であるTup、Tdwを取得する。Tup、Tdwは、上記式10、11または上記式12、13を用いて算出することができる。
ステップ2730では、その評価領域の補正量が閾値テーブルの上限Tupより大きいか、または下限Tdwより小さいかどうかを判断する。上限Tupより大きいか、または下限Tdwより小さい場合、その評価領域の補正量に対しては制限処理を実行せず、ステップ2750へ進む。これに対し、上限Tupと同じか、小さく、下限Tdwと同じか、大きい場合は、ステップ2740へ進み、その評価領域の補正量に対して制限処理を実行する。
制限処理は、その評価領域の補正量を、補正が施されないような値に補正する。具体的には、補正量が上記の評価値の比率で表される値である場合、補正量は「1.0」に補正し、上記の評価値の差分で表される値である場合、補正量は「0」に補正する。
ステップ2750では、全評価領域に対して処理が終了したかを判断する。まだ終了していない場合は、ステップ2710へ戻り、次の評価領域に対して同様の処理を行う。終了した場合は、ステップ2760へ進み、この処理を終了する。
以上のことから、本発明は、画像にフレアが発生していても、適切に補正を行うことができる。その際、フレア発生確率が最も低い画像を補正基準画像とし、その他の画像を補正することができる。また、通常におけるマッチング度が低い平均値(上記式4および式5で算出されるマッチング度の場合は高い平均値)を積算しないので、フレア画像と補正基準画像の相関性が高い平均値のみを使用して重複領域の平均値を算出できる。光源等の極端に明るい被写体や極端に暗い被写体が入った場合でも、それらの平均値は除外して重複領域の平均値を算出するので、重複領域の平均値算出への影響を少なくすることができる。
制限処理を実施することで、極端に補正量が大きくなる場合にその補正量で補正されないようにすることができ、平準化処理を実施することで、部分的に極端な補正がかからないようにすることができる。また、補正マップに対してリサイズ処理を実施することで、画素単位の演算で補正が可能となり、補正マップの複雑な変換が必要なくなる。加重平均を用いて評価領域全体に対して補正量を算出することで、補正により画像内に輝度の差や色差といった信号段差が発生せず、自然な補正が可能となる。上記の比率や差分により補正量を算出するので、補正したときに信号段差が発生することがない。
これまで本発明を、画像処理システム、画像処理方法として上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではない。本発明は、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、本発明は、画像処理方法をコンピュータに実行させるためのプログラムやそのプログラムが記録された記録媒体、そのプログラムを、ネットワークを介して提供するサーバ装置等も提供することができるものである。