以下、本発明の実施の形態における合成画像生成装置について、図面を用いて説明する。本発明の実施の形態の合成画像生成装置が備えられた撮像システムを図1に示す。本実施の形態では、撮像システムが車両に搭載される。撮像システムは、図1に示されるようにカメラ0〜4と合成画像生成装置100と表示装置110とを備えている。カメラ0〜4は撮像部に相当する。合成画像生成装置100は、車両の周囲に設置されたカメラ0〜4が撮像する撮像画像を取得し視点変換を行い、これらの撮像画像をフレーム毎に合成した合成画像を生成して、合成画像をリアルタイムで表示装置110に表示する。
カメラの撮像範囲は、例えば図2に示されるように広く、隣接するカメラ同士で重複するように設定されている。図2の例では、車両220の左側にカメラ200とカメラ201とが設置されている。そして、カメラ200の撮像範囲210と、カメラ201の撮像範囲211とが、それぞれで互いに重複した撮像範囲212(網目のハッチング部分)を有するように、カメラ200、201の撮像範囲210、211が広く設定されている。
本実施の形態では、5台のカメラ0〜4の具体的な配置としては、カメラ0は車の前方に、カメラ1は右側面に、カメラ2は右後方に、カメラ3は左後方に、カメラ4は左側面に、設置されている。カメラ0〜4は、撮像範囲の一部が互いに重なるように設置されている。これにより、カメラ0〜4によって、車両の全周囲を余白部分が生ずることなく、撮像できる。
合成画像生成装置100は、画像メモリ101と、画像読み出し制御部102と、画素積算部103と、画素平均値算出部104と、異常判定部105と、ゲイン算出部106と、時定数処理部107と、画像補正部108と、画像合成部109とを備えている。合成画像生成装置100は、上述したように、カメラ0〜カメラ4により撮像された複数の撮像画像を視点変換した後、これらの撮像画像を合成した合成画像を生成し、この合成画像を表示装置110に表示する。
図3は、合成画像生成装置100により生成される合成画像の例を示している。図示のように、合成画像300では、カメラ0の撮像画像310、カメラ1の撮像画像311、カメラ2の撮像画像312、カメラ3の撮像画像313およびカメラ4の撮像画像314が複数の重複領域301〜305で重ね合わされている。図3の撮像画像310〜314は、車両上方の仮想視点から下方を見下ろすように視点変換をした後の画像である。また、合成画像300の中央部には、自車両を表すグラフィック画像320が重畳されている。
互いに隣接するカメラ0の撮像画像310およびカメラ1の撮像画像311は重複領域301で互いに重なり合っており、撮像画像310の重複領域301内の画像部分を重複領域画像310B、撮像画像311の重複領域301内の画像部分を重複領域画像311Aとする。同様に、カメラ1およびカメラ2の撮像画像311、312の重複領域302内の画像部分を重複領域画像311B、312Aとし、カメラ2およびカメラ3の撮像画像312、313の重複領域303内の画像部分を重複領域画像312B、313Aとし、カメラ3およびカメラ4の撮像画像313、314の重複領域304内の画像部分を重複領域画像313B、314Aとし、カメラ4およびカメラ0の撮像画像314、310の重複領域305内の画像部分を重複領域画像314B、310Aとする。図示のように、重複領域画像310A〜314A、310B〜314Bが撮像画像310〜314の両端部に位置している。
次に、上記のような合成画像を得るための合成画像生成装置100の各部の構成について説明する。
画像メモリ101は、カメラ0〜4により撮像された各撮像画像を格納する。なお、画像メモリ101に格納されている各撮像画像は、視点変換前の画像である。画像読み出し制御部102は、画像メモリ101からの画像信号の読み出しを画素毎に制御する。
ここで、図3に示す重複領域301はカメラ0の撮像画像310とカメラ1の撮像画像311が重複した画像重複領域であるため、重複領域301におけるカメラ0の撮像画像310とカメラ1の撮像画像311を表示するためには各撮像画像を構成する各画素の合成処理がなされる。重複領域301の各画素の合成処理は、通常、撮像画像310の重複領域301に当たる画素及び撮像画像311の重複領域301に当たる画素の両方を画像メモリ101から出力して行われる。画像メモリ101から重複領域301に当たる画素の両方を出力して以降の処理では、重複領域301にあたる画素を他の画像部分から判別する必要がある。例えば、カメラ0の撮像画像310は、カメラ1の撮像画像311との重複領域301と、カメラ4の撮像画像314との重複領域305の2つの重複領域を有し、カメラ1の撮像画像311は、カメラ0の撮像画像310との重複領域301と、カメラ2の撮像画像312との重複領域302の2つの重複領域を有しているので、これらの画像の中から重複領域301を抽出するには、重複領域301を他の画像から判別する必要がある。
そこで、画像読み出し制御部102は、画像メモリ101から出力される画素値に対して、合成画像における位置情報(視点変換後の座標)と、どのカメラにより撮像された画素であるかを示すカメラ番号と、その画素がどのカメラの撮像画像との重複領域であるか、若しくはどのカメラの撮像画像とも重複しない画素であるかを判別するための情報とを、フラグデータとして付加する。このようにフラグデータを各画素の画素値の情報に付加することで、各画素の視点変換後の座標、各画素がどのカメラの撮像画像に含まれ、どの重複領域画像に含まれるか等の情報を得ることができる。このような画像読み出し制御部102の制御下で、各フレームの各画素のデータが、画像メモリ101から出力されて、フラグデータと共に画像補正部108および画像積算部103に入力される。
画像積算部103には、上記のようにして、画像メモリ101から出力される画素と、その画素のフラグデータが入力される。このとき、画像積算部103の入力画素が重複領域画像の画素である場合、その入力画素と重複領域内で重なり合う画素(画像合成部109で合成される相手側の重複画像の画素)とその画素のフラグデータも同時に入力される。例えば画像積算部103への入力画素が重複領域301内の重複領域画像311Aの画素の場合には、当該重複領域画像311Aの入力画素と重なり合う重複領域画像310Bの画素とそのフラグデータも同時に入力される。
画像積算部103は、入力されたフラグデータを参照し、入力画素が重複領域画像中の画素であれば、当該入力画素と、画像合成部109により合成される相手側の画素(対応画素)の双方のR、GおよびBの各色信号の画素値が、予め設定された総和対象画素値の範囲内にあるか否かを判断する。この総和対象画素値の範囲は、画素が正常であるか否かを判断するために設定されており、以下正常範囲と呼ぶ。画像積算部103は、R、GおよびBの全ての色信号の画素値が正常範囲内である画素のみを用いて、各重複領域画像の画素値の総和を算出する。また、画像積算部103は、各重複領域画像の画素値の総和を算出する際に、重複領域画像の画素値の総和の算出に用いる画素数および用いない画素数も計測する。
上記構成により、重複領域画像内の各画素は以下のように処理される。すなわち、R、GおよびBの全ての色信号の画素値が正常範囲内である画素である場合、画像積算部103はその画素は正常であるとみなし、当該入力画素の画素値を重複領域画像の画素値の総和に加算して、総和に用いる画素数として計測する。一方、R、GまたはBの色信号の画素値のいずれかが正常範囲外である画素である場合、画像積算部103はその画素を異常であるとみなし、当該入力画素の画素値を各重複領域画像の画素値の総和に加算せず、総和に用いない画素数として計測する。
画素積算部103における、重複領域画像の画素値の総和の算出、総和の算出に用いた画素数の計測、および、総和の算出に用いなかった画素数の計測は、各カメラの撮像画像における各々の重複領域に対して行われる。また、1つの撮像画像が他の2つの撮像画像と重複している場合には、2つの重複領域の各々に対して算出する。
ここで、本実施の形態では、重複領域において重複している撮像画像の画素数は同数であり、合成される画素の一方が画素値の総和の算出に用いられない場合には、他方も総和の算出に用いられない。そのため、総和の算出に用いた画素数及び総和の算出に用いなかった画素数としては、重複している撮像画像の双方で同一の値が得られる。よって、総和の算出に用いた画素数及び総和の算出に用いなかった画素数は、1箇所の重複領域について各々1つの値として扱うことも可能である。
上記の画像積算部103の処理を、重複領域302内の重複領域画像311B、312Aの場合を例として詳細に説明する。ここでは、重複領域302内の重複領域画像311Bの入力画素1−1と重複領域画像312Aの入力画素2−1とが入力されたとする。入力画素1−1および入力画素2−1は重複領域302内にて、互いに重なり合う位置関係にある。入力画素1−1のR、GおよびBの各信号の画素値と、入力画素2−1のR、GおよびBの各信号の画素値の全てが、下限値PIX−MIN以上かつ上限値PIX−MAX以下であれば(正常範囲内であれば)、当該入力画素1−1、2−1の双方は正常とみなされる。入力画素1−1のR、GおよびBの各色信号の画素値は重複領域画像311Bの色信号毎の画素値の総和SUM−1R、SUM−1G、SUM−1Bに加算され、入力画素2−1のR、GおよびBの各色信号の画素値は重複領域画像312Aの色信号毎の画素値の総和SUM−2R、SUM−2G、SUM−2Bに加算される。そして、各重複領域画像311B、312Aの画素値の総和の算出に用いる画素数SUM−COUNTに1を加算する。
上記の例では、正常画素が処理された。次に、異常画素が処理される例を説明する。ここでは、重複領域302内の重複領域画像311Bの入力画素1−2と重複領域画像312Aの入力画素2−2とが、入力されたとする。入力画素1−2および入力画素2−2は重複領域302内にて、互いに重なり合う位置関係にある。入力画素1−2のR、GおよびBの各信号の画素値と、入力画素2−2のR、GおよびBの各信号の画素値のいずれか1つでも、下限値PIX−MIN未満または上限値PIX−MAX超過であれば(正常範囲外であれば)、当該入力画素1−2、2−2の双方は異常な画素であるとみなされる。重複画像311Bの色信号毎の画素値の総和SUM−1R、SUM−1G、SUM−1Bへの入力画素1−2の画素値の加算と、重複画像312Aの色信号毎の画素値の総和SUM−2R、SUM−2G、SUM−2Bへの入力画素2−2の画素値の加算は行わず、重複領域画像311B、312Aの画素値の総和の算出に用いない画素数NG−COUNTに1を加算する。
このように、画素積算部103は、重複領域(例えば302)内の重複領域画像311B、312Aのいずれかに正常範囲外の画素値を持つ異常画素が存在した場合、重複領域画像311B、312Aの双方にて異常画素の画素値を用いないで、画素値の総和を算出する。
図4は、画像積算部103による判定結果の例を示すもので、撮像画像311、312が重なり合う重複領域302における重複領域画像311B、312Aの正常画素および異常画素の分布を示している。図4(a)は重複領域画像311Bの正常画素および異常画素の分布を示す図、図4(b)は重複領域画像312Aの正常画素および異常画素の分布を示す図、図4(c)は重複領域画像311B、312Aの画素値の総和に用いる画素と用いない画素の分布を示す図である。
図4(a)に示されるように、重複領域画像311Bでは、右端部に異常な画素が分布し、それ以外の部分に正常な画素が分布している。図4(b)に示されるように、重複領域画像312Aでは、左端部に異常な画素が分布し、それ以外の部分に正常な画素が分布している。
そして、上述の通り、画素積算部103は、重複領域302内の重複領域画像311B、312Aのいずれかに異常画素が存在した場合、当該異常画素は両重複領域画像311B、312Aの画素値の総和の算出に用いない。従って、図4(c)に示されるように、重複領域画像311B、312Aの双方において正常な画素が画素値の総和の算出に用いる画素となり、それ以外の画素が画素値の総和の算出に用いない画素となる。図4(a)〜(c)では、重複領域302内の重複領域画像311B、312Aにおける画素の分布について説明したが、他の重複領域301、303〜305も同様に各画素の分布を表すことができる。
画素平均値算出部104は、各重複領域画像の画素値の平均値である画素平均値を算出する。画素平均値算出部104には、画素積算部103から各重複領域画像の色信号毎の画素値の総和と、重複領域画像の画素値の総和に用いる画素数とが入力される。画素平均値算出部104は、画素値の総和を総和の算出に用いる画素数で除算することにより、画素平均値を算出する。画素平均値は、色信号毎に算出される。
具体例として、例えばカメラ1の撮像画像311中の重複領域画像311Bの画素平均値を算出する場合について説明する。この場合、画素平均値算出部104は、重複領域画像311BのR信号の画素値の総和SUM−1Rを、重複領域画像311Bの画素値の総和の算出に用いる画素数SUM−COUNTで除算することにより、重複画像311BのR信号の画素平均値を算出する。同様に、重複領域画像311BのG信号の画素値の総和SUM−1GをSUM−COUNTで除算することにより、重複領域画像311BのG信号の画素平均値を算出し、重複領域画像311BのB信号の画素値の総和SUM−1BをSUM−COUNTで除算することにより、重複領域画像311BのB信号の画素平均値を算出する。
なお、画素平均値算出部104について、カメラ1の撮像画像311中の重複領域画像311Bの画素平均値を算出する場合について説明したが、全ての重複領域301〜305内の各重複領域画像310A〜314A、310B〜314Bに対して同様の計算を行う。
異常判定部105は、各重複領域画像が合成するのに適しているか否かを判断し、適していない場合には合成に不適な異常画像であると判定する構成である。異常判定部105には、画像積算部103から重複領域画像の画素数の総和の算出に用いた正常画素数と、総和に用いなかった異常画素数が入力される。異常判定部105は、これらの画素数に基づき、重複領域画像の画素数に対する異常画素数の割合が所定の異常判定閾値以下である場合、重複領域画像が正常画像であると判定する。そして、上記割合が異常判定閾値より大きい場合、異常判定部105は重複領域画像が異常画像であると判定する。
具体例として、重複領域画像311Bが異常画像であるか否かを判断する場合について説明する。異常判定部105は、まず、重複領域画像311Bの画素値の総和の算出に用いる画素数SUM−COUNTと、用いない画素数NG−COUNTとを加算することで、重複領域画像311Bの全画素数ALL−COUNTを算出する。更に、異常判定部105は、NG−COUNTをALL−COUNTで除算することにより、重複領域画像311Bの画素数に対する異常画素数の割合NG−RATIOを算出する。そして、異常判定部105は、NG−RATIOが予め設定した異常判定閾値NG−TH以下であれば、重複領域画像311Bは正常画像であると判定し、NG−THよりも大きければ、異常画像であると判定する。
ここで、図4(a)〜(c)を用いて説明したように、本実施の形態では、重複領域画像311B、312Aの双方において正常な画素が、各重複領域画像311B、312Aの画素値の総和の算出に用いられる。従って、画素値の総和の算出に用いる画素数と用いない画素数は重複領域画像311Bおよび312Aの間で同一であり、異常判定結果も同一である。そこで、異常判定部105は重複領域画像311Bまたは312Aのいずれか一方のみに対して異常画像か否かを判定してもよい。
ここでは、異常判定部105に関して、重複領域画像311Bが異常画像であるか否かを判断する場合について説明したが、全ての重複領域301〜305内の各重複領域画像310A〜314A、310B〜314Bに対しても同様の計算を行う。
ゲイン算出部106は、重複領域(例えば302)における複数の重複領域画像(例えば311B、312A)の画素値に基づいて、複数の重複領域画像の画素値を揃える補正ゲインを算出する。ゲイン算出部106には、画素平均値算出部104から各重複領域画像のR、GおよびBの各信号の画素平均値が入力され、異常判定部106からは異常判定結果が入力される。例えば重複領域302に着目すると、ゲイン算出部106は、互いに重なり合う重複領域画像311B、312Aの画素平均値が一致するように、各撮像画像311、312に対する補正ゲインを算出する。補正ゲイン算出は色信号別に行われる。他の重複領域に対しても、同様に各色信号別のゲインを算出する。
ただし、ゲイン算出部106は、重複領域画像が異常画像である場合には以下のような処理を行う。ゲイン算出部106には、各重複領域画像が正常画像または異常画像のいずれであるかの判定結果が異常判定部105から入力されている。ゲイン算出部106は、異常な重複領域画像の画素平均値を用いずに、正常な重複領域画像の画素平均値のみを用いて、補正ゲインを算出する。そのため、異常と判定された重複領域においては明るさや色合いを揃えることができないが、異常な重複領域画像の画素平均値は算出される各撮像画像の補正ゲインに影響を与えないため、正常な重複領域においては明るさや色合いをより好適に揃えるための補正ゲインを算出することが可能である。
例えば、ゲイン算出部106は次のように各撮像画像310〜314のゲインを算出する。
(A)ゲイン算出部106は、まず基準となる撮像画像を決める。基準の撮像画像は、例えば撮像画像310〜314のうち、最も平均的な画素値である撮像画像を選択する。ここでは、撮像画像311が基準であるとして説明する。
(B)次に、ゲイン算出部106は、基準の撮像画像311に隣接する撮像画像312のゲインを算出する。このとき、ゲイン算出部106は撮像画像311、312の重複領域302についての異常判定結果を参照する。前述したように、重複領域302に対応する重複領域画像311B、312Aでは、異常判定結果が同じである。そこで、ここでは基準側の重複領域画像311Bの判定結果を用いることとする。以下の通り、重複領域画像311Bが異常画像か否かでゲイン算出処理が場合分けされる。
(B−1)重複領域画像311Bが正常画像の場合
ゲイン算出部106は、重複領域画像311Bおよび312Aの画素平均値が揃うように、撮像画像312の補正ゲインを算出する。したがって、補正ゲインは、重複領域画像311Bの画素平均値を重複領域画像312Aの画素平均値で除した値である。
(B−2)重複領域画像311Bが異常画像の場合
ゲイン算出部106は、重複領域画像311Bおよび312Aの画素平均値を用いずに、撮像画像312のゲインを1として算出する。
(C)次に、ゲイン算出部106は、撮像画像312に隣接する撮像画像313のゲインを算出する。このとき、上記(B)に記載した処理と同様に、重複領域画像312B(または313A)が異常画像か否かで場合分けされる。ここでの重複領域画像312Bの画素平均値には、上記の前段の補正ゲインを乗算して補正された画素平均値を用いる。
(D)以降、ゲイン算出部106は、順次、撮像画像314、310のゲインを算出して、これにより、全部の撮像画像の補正ゲインを算出して、ゲイン算出を完了する。
以上により、合成に不適な重複領域画像の影響を低減できる。異常と判定された重複領域においては、明るさおよび色合いを揃えることができないが、異常な重複領域画像の画素平均値は各撮像画像の補正ゲインに影響しないので、正常と判定された重複領域においては、明るさおよび色合いをより好適に揃えるための補正ゲインを算出することができる。
次に、時定数処理部107について説明する。本実施の形態において、ゲイン算出部106によるゲインの算出、後述の画像補正部108による補正画像の生成、画像合成部109による合成画像の生成および表示装置110への表示等の合成画像生成装置100の各部による処理は、カメラ映像のフレーム毎に行われる。カメラ0〜4が正常な画像を撮像し続けている限り、ゲイン算出部106により算出される各撮像画像310〜314の補正ゲインは急激に変化することはない。これらの補正ゲインを用いた撮像画像310〜314の補正を画像入力に対して遅延無く行うことにより、表示装置110に表示される合成画像全体の明るさおよび色合いは急激に変化することはなく、好適な合成画像が得られる。
しかしながら、異常判定部105により異常画像と判定される重複領域画像が発生したり、また異常画像と判定される重複領域画像の数が変化したりすると、ゲイン算出に用いる画素平均値も変化する。このため、算出される各撮像画像310〜314の補正ゲインが急激に変化し、フレームの変化時に合成画像全体の明るさおよび色合いが急激に変化する場合がある。そこで、以下に詳述するように、本実施の形態では、時定数処理部107を用いて、撮像画像310〜314のゲインの変化を制御している。
時定数処理部107は、ゲイン算出部106により算出された補正ゲインの変化を制御する。時定数処理部107には、ゲイン算出部106により算出された各撮像画像310〜314のR、GおよびBの補正ゲインが入力される。時定数処理部107は、これら補正ゲインの値を目標値として設定し、前フレームの補正ゲイン(前フレームで時定数処理部107により時定数処理が施された補正ゲイン)の値から目標値に近づくように時間的な変化を与える。時定数処理部107はゲインを変化させる速さを多段階に設定できる。
時定数処理部107は、異常判定部105の判定結果とその変化に応じて、以下に示す3つの状態のいずれに対応するかを判別し、判別結果に応じて補正ゲインの変化する速さを異ならせる制御を行う。
(a)第1の状態:異常判定部105により異常画像と判定された重複領域画像が1つも存在しないフレームが継続している状態。
(b)第2の状態:異常判定部105により異常画像と判定された重複領域画像が少なくとも1つ存在するフレームを処理する状態。
(c)第3の状態:異常判定部105により異常画像と判定された重複領域画像が少なくとも1つ存在するフレームから、1つも存在しないフレームに変化した直後の状態。
上記第1の状態の場合、時定数処理部107は、ゲイン目標値を画像補正部108にそのまま出力するか、或いはゲインの変化する速さを急峻にする。これにより、各撮像画像に対して好適な補正を行うことができる。
第2の状態のゲイン変化は下記のように設定される。異常判定部105による判定の結果、異常な重複領域画像が存在しないフレームから少なくとも1つ存在するフレームに変化したとする。或いは異常な重複領域画像の数や位置がフレームによって変化したとする。これらの場合、ゲイン算出部106により算出される補正ゲインも急激に変化する。そして、これらは第2の状態に相当する。このため、時定数処理部107は、第2の状態では、ゲインの変化する速さを緩やかに設定する。これにより、合成画像の明るさおよび色合いが急激に変化するのを防ぐことができる。
次に第3の状態について説明する。第3の状態は、異常判定部105により異常画像と判定された重複領域画像が少なくとも1つ存在するフレームから1つも存在しないフレームに変化した直後の状態である。この状態で、時定数処理部107が即座に上記第1の状態の処理を行い、目標値の補正ゲインを出力し、或いは、補正ゲインを急峻に変化させるように時定数処理された補正ゲインを出力したとする。このような急変化を行うと、合成画像全体の明るさおよび色合いが急激に変化してしまう。このため、本実施の形態では、第1の状態から第2の状態に移行する間に第3の状態を設けている。そして、時定数処理部107は第3の状態において補正ゲインの変化する速さを、第1および第2の状態での速さの中間程度の速さに設定する。これにより、異常画像と判定された重複領域画像が少なくとも1つ存在するフレームから1つも存在しないフレームに変化した直後の補正ゲインの急激な変化を抑制することができる。
第3の状態から第1の状態への移行は次のように行われる。すなわち、第3の状態にて時定数処理部107により算出された各撮像画像のR、G、B各々の補正ゲインの値が、補正ゲインの目標値(ゲイン算出部106で算出された補正ゲイン)に近づいたら、第1の状態に移行する。
具体的には、時定数処理部107は第3の状態において、ゲイン算出部106により算出された撮像画像のR信号のゲインと、時定数処理部107により時定数処理された撮像画像のR信号のゲインとの差分を算出する。そして、この差分が予め設定された閾値RTN−TH以下となった場合、時定数処理部107は撮像画像のR信号のゲインが目標値に収束したと判定する。時定数処理部107は、第3の状態である限り、以降のフレームにおいてもこのR信号の補正ゲインは収束していると判断する。時定数処理部107はGおよびBの色信号の補正ゲインについても、R信号と同様にして、補正ゲインが収束していることを判断する。
カメラ0〜4のすべての撮像画像310〜314のR、GおよびBの補正ゲインが収束したとする。このとき、時定数処理部107は、そのフレームにおける各撮像画像310〜314のR、G、Bの補正ゲインとして、ゲイン算出部106により算出された補正ゲイン(時定数処理の計算を行う前の補正ゲイン)、または、第3の状態における時定数処理を行った補正ゲインのいずれかを出力するように構成されている。そして、時定数処理部107は、異常画像と判定された重複領域画像が1つも存在しないフレームが続いている状態であると判断し、次のフレームからは第1の状態に移行し、第1の状態の時定数処理計算が行われる。
次に、時定数処理107による処理の詳細を図5〜図7を参照して説明する。時定数処理部107には、ゲイン算出部106により算出された撮像画像310〜314のR、GおよびBの各色信号の補正ゲインが入力される(S501)。時定数処理部107は、異常判定部105により異常画像と判断された重複領域画像があるか否かを判定する(S502)。少なくとも1箇所の重複領域画像が異常であれば、S502がYESとなる。
S502での判定の結果、異常画像が1つもなく、すべての重複領域画像が正常画像の場合(S502、NO)、現在の状態が第2の状態ではないので、時定数処理部107は第2状態フラグを0に設定する(図6、S601)。S601の後、時定数処理部107は第3状態フラグが1か否かを判定する(S602)。
S602での判定の結果、第3状態フラグが0の場合(S602、NO)、時定数処理部107は第1の状態の時定数処理方法を選択する(S603)。このように、第2状態フラグおよび第3状態フラグの双方が0の場合に、第1の状態の処理が行われる。そして、時定数処理部107は、各撮像画像のR、GおよびBの補正ゲインに対して第1の状態の時定数処理計算を行い(S604)、時定数処理を行った各撮像画像のR、GおよびBの補正ゲインを画像補正部108へ出力し(S506)、時定数処理を終了する。
S502での判定の結果、異常画像が1つ以上の場合(S502、YES)、時定数処理部107は第2状態フラグおよび第3状態フラグを1とし、後述する各撮像画像のR、GおよびBの収束フラグを0に設定する(S503)。ここで、各撮像画像のR、GおよびBの収束フラグを0に設定するのは、第3の状態から第2の状態に移行した際に第3の状態において処理途中であったフラグデータを初期値に戻す必要があるためである。そして、時定数処理部107は、第2の状態の時定数処理方法を選択し(S504)、各撮像画像のR、GおよびBのゲインに対して第2の状態の時定数処理計算を行い(S505)、時定数処理を行った各撮像画像のR、GおよびBの補正ゲインを画像補正部108へ出力し(S506)、時定数処理を終了する。
S602での判定の結果、第3状態フラグが1の場合(S602、YES)、時定数処理部107は第3の状態の時定数処理方法を選択する(S605)。こうして、第2状態フラグが0、第3状態フラグが1の場合には、第3の状態の処理が行われる。時定数処理部107は、各撮像画像のR、GおよびBの補正ゲインに対して第3の状態の時定数処理計算および収束判定を行う(S606)。
S606における処理について、図7に基づいて詳細に説明する。図7は、カメラ0の撮像画像310のRの補正ゲインに対する処理を例として示している。
まず、時定数処理部107は、撮像画像310のRの補正ゲインに対して、第3の状態の時定数処理計算を行う(S701)。そして、時定数処理部107は、撮像画像310のRの補正ゲインの収束フラグが0か否かを判断する(S702)。
撮像画像310のRの補正ゲインの収束フラグが0の場合(S702、YES)、この補正ゲインは未収束の状態にある。そこで、時定数処理部107は、S701で時定数処理計算された撮像画像310のRの補正ゲインと、ゲイン算出部106により算出された撮像画像310のRの補正ゲイン(時定数処理計算される前の補正ゲイン)との差を算出して、この差の絶対値が予め設定された閾値RTN−TH以下であるか否かを判断する(S703)。
上記ゲイン差の絶対値が閾値RTN−THよりも大きいと判断された場合(S703、NO)、撮像画像310のRの補正ゲインに対する処理を終了する。
上記ゲイン差の絶対値が閾値RTN−TH以下と判断された場合(S703、YES)、撮像画像310のRの補正ゲインは目標値に収束したとみなし、撮像画像310のRの補正ゲインの収束フラグを1に設定して(S704)、撮像画像310のRの補正ゲインに対する処理を終了する。
また、S702において、撮像画像310のRの補正ゲインの収束フラグが1の場合(S702、NO)、補正ゲインが既に目標値に収束済みであると判断し、撮像画像310のRの補正ゲインに対する処理を終了する。
以降のフレームでは、第3の状態から第1の状態へ移行する際のS609に進むまで、または、第3の状態から第2の状態に移行する際のS503に進むまで、撮像画像310のRの補正ゲインの収束フラグは1を維持する。収束フラグ1に維持される間は、各フレームのルーチン(撮像画像310のRのゲインに対する処理)はS702にて終了する。
以上のように、S606における撮像画像310のRの補正ゲインに対する処理が行われる。S606では、すべての全ての撮像画像310〜314におけるR、GおよびBの各々の補正ゲインに対して、図7に示す処理と同様の処理を行う。
S606の処理の後、時定数処理部107は、S606で設定された各撮像画像のR、GおよびBの補正ゲインのすべての収束フラグが1になっているか否かを判定する(S607)。すべての補正ゲインの収束フラグが1になっていない場合(S607、NO)、時定数処理を行った各撮像画像のR、GおよびBの補正ゲインを画像補正部108へ出力し(S506)、時定数処理を終了する。すなわち、第3の状態の時定数処理が行われた結果が出力される。
S607ですべてのゲインの収束フラグが1になっている場合(S607、YES)、各撮像画像のR、GおよびBの補正ゲインのすべてが目標値に収束したとみなされる。そこで、時定数処理部107は、各撮像画像のR、GおよびBの補正ゲインについて、ゲイン算出部106により算出された補正ゲイン(時定数処理計算を行う前の補正ゲイン)の値をそのまま時定数処理計算後の補正ゲインとして設定する(S608)。なお、S608の処理は必ずしも必要とする処理ではなく、S608の処理を行わずに次のS609の処理を行ってもよい。
そして、時定数処理部107は、第3状態フラグを0に設定する(S609)。この処理は第3の状態が終了したことを意味し、これにより、次のフレームではS602からS603へ進んで、第1の状態の処理を行うことが可能となる。また、S609では第3の状態が終了したため、時定数処理部107は、S606で1に設定された各撮像画像のR、GおよびBの補正ゲインの収束フラグを0に設定する。そして、時定数処理部107は、時定数処理を行った各撮像画像のR、GおよびBの補正ゲインを画像補正部108へ出力し(S506)、時定数処理を終了する。
以上に、図5〜図7の処理について、詳細に説明した。上記のうち、S506では、時定数処理計算後の各撮像画像のR、GおよびBの補正ゲインがそのフレームにおける補正ゲインとして、画像補正部108へ出力される。S506の処理が終了することにより、そのフレームの時定数処理が終了するが、第2状態フラグ、第3状態フラグおよび各撮像画像のR、GおよびBの補正ゲインの収束フラグはその値を保持し、次のフレームにおける時定数処理に用いられる。
以上に、時定数処理について説明した。本実施の形態によれば、上述のように、第1、第2および第3の状態に応じて、異なる時定数の速さを使い分けることで、好適な時定数処理を行うことができる。
図1に戻り、画像補正部108は、ゲイン算出部106により算出され、更に時定数処理部107により制御された各ゲインに従って、撮像画像310〜314を補正する。画像補正部108には、画像メモリ101から出力される画素およびその画素のフラグデータが入力され、また、時定数処理部107から出力される時定数処理後の撮像画像310〜314のR、GおよびBの補正ゲインが入力される。画像補正部108は、入力画素のフラグデータを参照して、入力画素がどのカメラの撮像画像の画素であるかを判別し、当該入力画素の撮像画像に対応した補正ゲインを入力画素値に乗じて補正画素値を算出し、これにより明るさや色合いを補正する。
画像合成部109は、画像補正部108により補正された撮像画像310〜314を合成して、表示装置110に合成画像を表示する。画像合成部109には、画像データとともに、フラグデータが入力される。画像合成部109は、入力画素のフラグデータを参照して、重複領域における重複領域画像の画素に対して合成を行う。画像合成部109は、合成画像での画像の位置情報を用いて、図3で示すような車両の上方から下方を見下ろす視点変換が施された画像を構成し、表示装置110に出力する。
次に、本発明の実施の形態における合成画像生成装置100の動作について、図8を参照して説明する。まず、カメラ0〜4により撮像された各撮像画像が、画像メモリ101に格納される(S801)。各撮像画像は、画像読み出し制御部102により、合成画像における位置情報(視点変換後の座標)と、カメラ番号のフラグデータおよび重複領域の判別のためのフラグデータを付加されて、順次、画素積算部103に入力される(S802)。画素積算部103は、各重複領域画像310A〜314A、310B〜314Bの画素値の総和をR、GおよびBの色信号毎に算出し、また、画素値の総和の算出に用いた画素数および用いなかった画素数を計測する(S803)。
次に、画素平均値算出部104が、各重複領域画像の画素値の総和と総和の算出に用いた画素数から、各重複領域画像のR、GおよびBそれぞれの画素平均値を算出する(S804)。また、異常判定部105が、画素値の総和の算出に用いた画素数と用いなかった画素数から各重複領域の異常判定を行う(S805)。ここでは、重複領域画像の画素数に対する総和の算出に用いなかった画素数の割合が、所定の閾値以上か否かにより、重複領域画像が異常画像または正常画像かを判断する。そして、ゲイン算出部106が、各重複領域画像のR、G、Bそれぞれの画素平均値と、上記異常判定結果と用いて、各撮像画像のR、G、Bそれぞれの補正ゲインを算出する(S806)。ここでは、対応する両重複領域画像の画素平均値を揃える補正ゲインをR、GおよびBの色信号毎に算出する。また、補正ゲインの算出は、重複領域301〜305のうち、異常画像と判定された重複領域画像の画素平均値を用いることなく行われる。
時定数処理部107は、S805の異常判定結果から、現在の状態が上述の第1、第2および第3の状態のいずれに対応するかを判別して、この判別結果に応じて、S804にて算出された各撮像画像310〜314のR、GおよびBの各色信号の補正ゲインが変化する速さを制御して、これにより最適な時定数処理計算を行う(S807)。画像補正部108は、S802で付加された入力画素のフラグデータと時定数処理された補正ゲインとを用いて、各撮像画像310〜314の画素に対し補正ゲインを乗じて各画像補正を行う(S808)。ここでは、R、G、Bの補正ゲインがR、G、Bの画素値にそれぞれ乗算される。そして、画像合成部109が、入力画素のフラグデータを参照して、重複領域の画素合成を行うとともに、合成画像の構成を行い(S809)、こうして生成された合成画像が表示装置110に表示される(S810)。これらの処理を、カメラ0〜4により撮像された毎フレームの撮像画像310〜314に対して行うことで、車両周囲の状況をリアルタイムに表示装置110に表示することができる。
このような本発明の実施の形態の合成画像撮像装置によれば、重複領域画像の画素数に対する、所定の正常範囲外の画素値を持つ異常画素の割合に応じて、異常画像であるか否かを判断するので、異常な重複領域画像を識別できる。そして、異常画像と判定された重複領域画像を用いないで補正ゲインを算出し、算出された補正ゲインに基づいて補正した複数の撮像画像を合成し、継ぎ目の目立たない合成画像を生成できる。これにより、異常に暗いまたは明るい重複領域画像が入力された際の合成画像への影響を低減できる。このようにして、合成するのに不適な撮像画像が入力された場合であっても、当該合成に不適な撮像画像による合成画像へ影響を低減し、視認しやすい合成画像を得ることができる。
また、本発明の実施の形態の合成画像撮像装置によれば、正常範囲内の画素値のみを用いて重複領域画像の画素値の総和を算出する。したがって、異常な画素を除外し、正常な画素のみを用いて、重複領域画像の画素値の総和を算出できる。また、この重複領域画像の画素値の総和を、総和の算出に用いた画素の画素数で除算することにより、画素平均値を算出するので、異常な画素を除外して正常な画素のみを用いて画素平均値も算出できる。また、重複領域画像の画素数に対する、総和の算出に用いない画素数の割合が所定の異常判定閾値以上である場合、重複領域画像が異常画像であると判定するので、異常な画素の割合が多い重複領域画像を異常画像として適切に識別できる。
また、本発明の実施の形態の合成画像撮像装置によれば、複数の重複領域画像の対応画素が双方とも正常である場合のみ、それらの対応画素を画素値の総和と画素平均値の算出に用いるので、合成画像の明るさや色合いを良好に補正できる。
また、本発明の実施の形態の合成画像撮像装置によれば、赤、緑、青の色信号の全てにおいて、正常な画素値を持つ画素を用いて画素平均値を求めるので、異常な画素による影響を取り除いて、合成画像の明るさや色合いを良好に補正できる。
また、本発明の実施の形態の合成画像撮像装置によれば、ゲイン算出部により算出された補正ゲインの時間的変化を制御するので、フレーム毎のゲインの変化する速さを適切に設定でき、合成画像の不自然な変化を抑えることができる。
また、本発明の実施の形態の合成画像撮像装置によれば、第1、第2および第3の状態といった3種類の状態にて、フレーム間のゲインの変化する速さを最適に設定できるようにすることで、合成画像の明るさや色合いの不自然な変化を抑制することができる。
また、本発明の実施の形態の合成画像撮像装置によれば、第2の状態ではゲインを緩やかに変化させることによって異常と判定された重複領域画像が存在しないフレームから存在するフレームになった際や、異常と判定された重複領域画像の数がフレーム毎に変動した際におけるゲインの急激な変化による合成画像のちらつきを抑えることができる。また、第3の状態ではゲインを第1と第2の状態の間の速さで変化させることによって、第1の状態でゲインを急激に変化させる場合、異常画像と判定された重複領域画像が存在するフレームから存在しないフレームとなった際におけるゲインを変化させる速さが急激に変わることによる合成画像の明るさや色合いの急激な変化を抑制することができる。
また、本発明の実施の形態の合成画像生成方法によれば、重複領域画像の画素数に対する、所定の正常範囲外の画素値を持つ異常画素数の割合に基づいて、重複領域画像が異常画像であるか否かを判定し、異常画像と判定された重複領域画像を用いないで、補正ゲインを算出する。従って、この合成画像生成方法によっても、上述した本発明の利点が得られる。
以上、本発明の実施の形態を例示により説明したが、本発明の範囲はこれらに限定されるものではなく、請求項に記載された範囲内において目的に応じて変更・変形することが可能である。
上記実施の形態では、車両周囲に5台のカメラを設置した場合を説明したが、これに限定されず、車両周囲に5台よりも多数または少数のカメラを設置してもよい。また、上記実施の形態では、車両の全周囲を複数のカメラで撮像する場合を説明したが、車両周囲の一部を複数のカメラで撮像してもよい。
また、上記実施の形態では、時定数処理部107を設け、画像補正部108は時定数処理部107により時定数処理された補正ゲインに基づいて、各撮像画像310〜314を補正したが、時定数処理部107を設けなくてもよい。この場合、画像補正部108は、ゲイン算出部106により算出された補正ゲインを直接用いて、各撮像画像310〜314を補正する。