以下、本発明の実施形態について、図面を参照して詳細に説明する。
広ダイナミックレンジ画像の生成では白とびや黒つぶれのような、どちらか一方の画像にしかテクスチャが存在しない領域については画素値の合成ではなく、テクスチャが存在している方の画像をそのまま置き替えて使用することになる。そして例えば画像中に占める白とびや黒つぶれの面積や動物体の状態といった撮影シーンの違いによって低露光画像を幾何変形するか、もしくは高露光画像を幾何変形して位置合わせを行う。従って、画像中に占める白とびや黒つぶれの面積や動物体の状態といった撮影シーンの違いによって生成される広ダイナミックレンジ画像の画質に差が生じる。広ダイナミックレンジ画像に使用される(置き替える)領域の面積が大きい方の画像に対して幾何変形処理を施してしまうと、生成された広ダイナミックレンジ画像において、置き替えられた領域の幾何変形による画質の劣化が顕著になる。そのため、置き替える面積の小さい方の画像を幾何変形して合成した場合と比較して画質が悪くなる。さらに、動画像に対する広ダイナミックレンジ画像生成においては、撮影中にシーンの状況がダイナミックに変化するため、それに応じてどちらの画像を基準画像として基準画像以外の画像に対して幾何変形を行うべきかについても変化する。そこで、本実施形態では、画像の性質によって位置ずれ補正の基準となる基準画像を切り換える。
(第1の実施形態)
図1は、本発明の第1の実施形態に係わる撮像装置の構成を示す図である。図1において、101は被写体像を結像させる光学系であり、102は光学系101により結像された被写体像を光電変換するCCDセンサやCMOSセンサ等の撮像素子である。103は撮像素子102から出力される電気信号から映像信号を形成するカメラ信号処理回路である。カメラ信号処理回路103は、不図示のA/D変換回路、オートゲイン制御回路(AGC)、オートホワイトバランス回路を含み、デジタル信号を形成する。撮像素子102及びカメラ信号処理回路103により、画像の取得を行う撮像系が構成される。
104は、カメラ信号処理回路103により形成された映像信号の1フレーム又は複数のフレーム画像を一時的に記憶保持するメモリである。105は撮影条件制御回路であり、基準画像決定回路107から得られる基準画像情報に基づいて撮影条件を変更する。106は画像解析回路であり、入力された画像に対して例えば白とびや黒つぶれの量等(画像の特徴量)を解析する。107は基準画像決定回路であり、画像解析回路106から得られる解析結果に応じて合成用画像の位置合わせの際に行う画像幾何変形の基準画像を決定する。108は動きベクトル検出回路であり、時間的に隔たりのある2枚の合成用画像における複数の座標位置に対しての移動量を検出する。109は画像変形量算出回路であり、動きベクトル検出回路108によって検出された動きベクトルに基づいて、合成用画像間のずれ量を画像変形量として算出する。110は画像変形回路であり、基準画像決定回路107によって決定された基準画像に基づいて、画像変形量算出回路109で算出された画像変形量を用いて画像間の位置合わせを行うための画像幾何変形処理を行う。111は画像合成回路であり、画像変形回路110において位置合わせが行われた複数枚の合成用画像を用いて画像合成を行うことで広ダイナミックレンジ画像を生成する。
以上のように構成された撮像装置の動作を図2に示すフローチャートを用いて説明する。図2において、ステップS201では、光学系101によって形成された被写体像を撮像素子102において、被写体輝度に応じたアナログ信号として出力し、カメラ信号処理回路103の処理を施すことで映像信号を生成させる。カメラ信号処理回路103は、不図示のA/D変換回路によってアナログ信号を、例えば12ビットのデジタル信号に変換する。さらに、不図示のAGC及びAWBによって信号レベル補正や白レベル補正が行われたデジタル映像信号は、メモリ104に記憶保持される。本実施形態の撮像装置では、所定のフレームレートで順次フレーム画像が生成され、メモリ104に記憶保持されたフレーム画像は画像解析回路106及び動きベクトル検出回路108に入力される。また、メモリ104において記憶保持されているフレーム画像も順次更新される。
ここで、画像合成による広ダイナミックレンジ処理では、露光量の異なる複数枚の画像が必要となる。したがって、動画撮像中に広ダイナミックレンジ処理を行うためには、少なくとも2種類以上の露光条件で連続して撮影を行う必要がある。例えば、2枚の画像を合成して広ダイナミックレンジ画像を生成する場合には、低露光画像と高露光画像の2種類の画像を交互に撮影することになる。
ステップS202では、画像解析回路106において入力画像の解析を行い、基準画像決定回路107において合成用画像の位置合わせを行う際の画像幾何変形の基準画像を決定する。広ダイナミックレンジ画像とは、低露光画像と高露光画像を合成して白とびや黒つぶれの無い画像を生成するものである。しかしながら、これらの画像は時間的に連続して撮影されたものであるため、手ぶれ等の影響により画像間に位置ずれが生じている。そのため、位置ずれが生じているままで画像の合成を行ったとしても合成後の画像に2重像が生じてしまうなどの現象が生じるため良好な広ダイナミックレンジ画像を生成することが出来ない。そこで、合成の前に画像に幾何変形処理を施すことで位置ずれを補正しなければならないが、低露光画像と高露光画像のどちらを基準画像としてもう一方の画像に幾何変形を施すかを選択する必要がある。
このとき、幾何変形を行うことにより画素間に隙間が生じた場合にはバイリニアやバイキュービック等の手法により画素値の補間を行うことになる。しかしながら、画素値の補間を行うことにより発生するジャギーやぼけの影響により画質が劣化する。ただし、両方の画像にテクスチャが存在している領域については、ある定められた割合で両方の画像の画素値を調合して出力することになるので画質の劣化は目立たず問題とはならない。それに対して、例えば白とびや黒つぶれの領域に対しては、テクスチャが存在している方の画像をそのまま用いて置き換えることになるため、幾何変形による画質の劣化が生成された広ダイナミックレンジ画像に現れてしまう。したがって、広ダイナミックレンジ画像の画質劣化を抑えるためには、置き換える領域の大きさや幾何変形の程度を事前に評価して、どちらの画像を幾何変形の基準画像とするべきかを決定する必要がある。
ここでは、幾何変形の基準画像の決定方法として、画像解析回路106において画像中のテクスチャ情報を解析する方法について説明する。図3に白とびと黒つぶれの生じている画像の模式図を示す。図3(a)は低露光画像であり、図3(b)は低露光画像と同じシーンを撮影した高露光画像である。
図3(a)は画像の下部に黒つぶれ領域301が、(b)には画像上部に白とび領域302がある。これらの画像を合成する場合には、(a)の黒つぶれ領域301については(b)の同じ領域を、(b)の白とび領域302については(a)の同じ領域を用いて置き換えを行い、それ以外の領域については両方の画像の画素値を調合する。
ここで、例えば高露光画像(b)を基準画像として低露光画像(a)を幾何変形した場合を考える。この場合、画面の半分以上を占める領域を幾何変形して置き換えることになるため、合成後の画像では画像の大部分を占める領域において幾何変形による画質の劣化が生じていることになる。それに対して、低露光画像(a)を基準画像として高露光画像(b)を幾何変形すると301の領域が幾何変形されて置き換えられることになる。したがって、301と302の領域では301の方が小さいため、合成後の画像において幾何変形による画質劣化が生じている領域が小さくなり、前述の場合と比較して画質の劣化を低減することが出来る。このように、合成用画像の白とびおよび黒つぶれの領域の大きさを比較して、合成後の画像に使用される面積の大きい方を基準画像としてもう一方の画像を幾何変形することで、より画質の劣化の少ない合成用画像を生成することが可能となる。
合成に用いる画像中に存在する白とびや黒つぶれの大きさを判定する方法の一例としては画素値のヒストグラムを用いる方法がある。図4に合成用画像の画素値ヒストグラムの一例を示す。図4は横軸が画素値、縦軸が頻度を表しており、ある画素値を持つ画素が画像中にいくつ存在しているのかを示している。図4において、範囲401は暗い画素、つまり黒つぶれとみなすことのできる画素値の範囲であり、範囲402が白とびとみなすことのできる明るい画素値の画素となる。したがって、例えば画像中の黒つぶれの大きさを判定するためには、黒つぶれとみなすことのできる画素値の範囲401をあらかじめ決めておく。そして、その範囲内にある画素数を数えることで画像中に存在する黒つぶれ画素の数として黒つぶれ領域の大きさを知ることが可能となる。同様に、白とび領域の大きさを判定するためには、白とびとみなすことができる画素値の範囲402を予め設定しておき、そこに存在している画素の数を数えることで画像中に存在する白とび領域の大きさを知ることが可能となる。
基準画像決定回路107では、以上のようにして得られた画像中に存在する白とびと黒つぶれの領域の大きさに基づいて基準画像を決定する。基準画像を決定するためには、合成時に置き換えを行う領域の大きさが小さくなるようにする。したがって、低露光画像の黒つぶれ領域の大きさと高露光画像の白とび領域の大きさを比較して、小さい方の画像を基準画像としてもう一方の画像に対して幾何変形を施せば良い。
以上のようにして、画像中の白とびと黒つぶれの領域の大きさを比較して、小さい方の画像に幾何変形処理を施してから合成を行うことで、より画質の劣化の少ない広ダイナミックレンジ画像を生成することが可能となる。
ここで、本実施形態では白とび、黒つぶれの大きさを判定するために画素値のヒストグラムを用いる方法について述べたが、特にこれに限定されたものではなく、例えば画像中の各領域に対する分散値を算出して判定を行うといった他の手法を用いても良い。
また、基準画像を選択する他の方法としては、画像中の動物体の大きさや動きぼけの量等から判定する方法がある。合成に用いる画像内に人物や車両などの動物体が存在している場合には、合成用画像の双方にテクスチャが存在していたとしても、画像間での動物体の位置や形状が異なっているため、画素値を調合して合成を行うと合成後の画像が2重像となってしまう。そのため、動物体が存在している領域については画素値の調合を行わずに、合成に用いる画像のいずれかの動物体領域をそのまま置き換えることになる。しかしながら、置き換えに用いる画像に対して幾何変形処理を施して合成を行うと動物体の領域については幾何変形処理による画質の劣化が生じてしまうことになる。これを防ぐためには、動物体の置き換えを行う方の画像を基準画像として、もう一方の画像に対して幾何変形を施す必要がある。
図5に、合成用画像中に動物体が存在している場合の概要図を示す。図5の低露光画像501における動物体が存在する領域502は、黒つぶれしているように見える場合であってもテクスチャ情報は常に存在しているため、ゲインアップなどの処理を施すことによりどのような状況でも置き換えに使用することが出来る。また、高露光画像503における動物体が存在する領域504は、白とびが生じていないのであればノイズが少なく広ダイナミックレンジ画像の画質を劣化させることはない。しかしながら、低露光画像上の動物体領域502にはノイズが多いため、合成後の画像において動物体領域のノイズによる画質の劣化が顕著になってしまう可能性がある。したがって、より良好な広ダイナミックレンジ画像を得るためには、合成用画像のどちらの画像の動物体領域を置き換えに使用するかを適切に選択する必要がある。
本実施形態では、動物体の領域を判定する方法として差分画像を用いる方法について説明する。差分画像を生成するためには、事前に合成に用いる低露光画像501と高露光画像503の画素レベルを合わせておく必要がある。そして、画像間の各画素値についての差分を計算することで、図5の504に示すように動きのある領域を画素値の差として抽出することが可能となり、動物体領域の情報を得ることが出来るようになる。ここで、上述のように2枚の画像から差分画像を生成した場合には、506に示すように抽出される動物体領域は双方の画像の動物体領域を足し合わせたものとなるため、正確な動物体領域を得ることはできない。しかしながら、本実施形態のような動画像中の隣接する2画像間の差分であれば動物体の動きはそれほど大きくはないものとして、動物体領域506をそれぞれの画像中の動物体領域502および504と同じ形状であるとみなしても問題は無い。
以上のようにして得られた動物体領域の情報を用いて基準画像を決定する方法としては、動物体領域の大きさを用いるものがある。動物体領域の大きさを知るには、図5の差分画像505でおいて抽出された動物体領域506に含まれている画素の数を数えれば良い。このとき、動物体の大きさが予め定められている閾値よりも大きい場合には合成後の画像の多くの領域が、どちらか一方の画像の動物体領域で置き換えられることになる。そのため、置き換える方の画像に対して幾何変形処理を施してしまうと、合成後の画像の多くの領域において画像変形による画質の劣化が現れることになる。以上のことから、画像中に大きな動物体が存在している場合には、動物体領域の置き換えを行う画像を基準画像とすることで生成される広ダイナミックレンジ画像の画質の劣化を抑えることができる。
また、抽出された動物体領域内の白とびおよび黒つぶれの状態を調べることで基準画像を決定することも可能である。例えば、高露光画像503の動物体領域内についての画素値ヒストグラムを作成し、前述の方法と同じようにして高露光画像中の動物体領域504に存在する白とび領域の大きさを判定する。この時、白とび領域の大きさが予め定められた閾値よりも小さい場合には、高露光画像上の動物体領域は白とびが無くノイズも少ないと判定できる。したがって、このような場合には高露光画像を基準画像として、低露光画像を幾何変形すれば良いことになる。これにより、合成時に置き換えを行う領域については幾何変形による画質の劣化が生じないため、より良好な広ダイナミックレンジ画像を取得することが可能となる。それに対して、高露光画像における動物体領域内の白とび領域の大きさが閾値以上の場合には、テクスチャが存在している低露光画像上の動物体領域502で置き換えを行うため低露光画像501が基準画像となる。
さらに、動物体領域の白とびの状態だけでなく、動きぼけの大きさから基準画像を選ぶ方法もある。高露光画像は低露光画像よりも露光時間が長いため、相対的に動物体に生じる動きぼけも大きくなる。そのため、高露光画像上での動物体領域に白とびが生じていなくても動きぼけが大きければ、置き換えた領域だけがぼけているという違和感のある広ダイナミックレンジ画像が生成されてしまう。そこで、動物体領域504についての分散値等を算出したり、後述の画像間の動きベクトルの大きさや画像変形量の値を判定することで高露出画像でどのような動きぼけが生じているのかを判定する。そして、例えば動きぼけの量が予め定められた閾値よりも大きい場合には、動きぼけが相対的に小さい低露光画像の動物体領域502を置き換えに用いるようにする。つまり、低露光画像501を基準画像として、高露光画像503をそれに合わせるように幾何変形させることで合成後の画像中における動物体の動きぼけを低減することが出来る。
以上のように、動物体領域の状態に応じて基準画像を切り替えることにより、良好な広ダイナミックレンジ画像を生成することが可能となる。
さらに、動きぼけについては動物体領域に限らず撮像装置の動きに伴って生じる画面全体の動きぼけについても同様のことが言える。図6に撮像装置に動きが生じている場合の合成用画像の概要図を示す。図6の601に示す低露光画像は露出時間が短いため動きぼけは小さい。それに対して、602に示す高露光画像は低露光画像601と比較して露光時間が長いため、画面全体に撮像装置の動きに沿った方向に動きぼけが生じてしまう。
このような画面全体の動きぼけについては、高露光画像と比較して動きぼけが小さい低露光画像を基準画像として高露光画像を幾何変形した方が合成後の画像の画質の劣化を抑えること出来る。また、撮像装置の動きに起因する画面全体の動きぼけの判定方法としては、後述する合成用画像間の画像変形量や動きベクトルの大きさから判定しても良いし、撮像装置に搭載されているジャイロセンサ等から得られる動き情報を利用しても良い。
また、画像幾何変形の基準画像を決定する他の方法としては、注目被写体の状態に応じて決定する方法がある。本実施形態では注目被写体の一つの例として人物の顔を撮影した場合について説明する。図7の702および705に示す人物の顔に代表される撮影者が特に注目して撮影した被写体については、画像中の他の領域よりも広ダイナミックレンジ画像上での画質の劣化を抑えなければならない。つまり、顔領域については幾何変形を施さないように基準画像を決定する必要がある。そのためには、まず合成用の高露光画像704と低露光画像701の双方について画像中に存在する人物の顔領域を検出する。顔領域の検出方法については、顔を優先したAFを行うために撮像装置に搭載されている顔認識機能から顔領域の情報を取得したり、テンプレートマッチングで抽出したり、ユーザーがライブビュー画像を見て直接指定するなど、どのような方法でも良い。そして、検出された顔領域703および706について前述の方法と同様にして、どちらの画像を基準画像とするべきかの判定を行えば良い。つまり、顔領域内の白とびや黒つぶれ領域の大きさ、動きぼけの大きさ、および顔領域の移動量等を用いて基準画像の判定を行う。これにより、撮影者の注目被写体を優先して画像幾何変形による画質の劣化を抑えた広ダイナミックレンジ画像を生成することが可能となる。また、ここで述べた人物の顔というのは注目被写体の一例であり、他にもペットや車両などの特定の物体や、画像の中央付近といった画像中の特定の領域等、撮影者がメインに据えたいと考えている被写体であれば全て同様に扱うことができる。
ここまで述べてきた基準画像の決定処理は動画像の撮影中に行われる。そのため、撮影中に基準画像が切り替わる場合には連続して入力される画像シーケンスに対して切り替え処理を行わなければならない。ここで、基準画像を切り替える方法について説明する。図8は入力される画像シーケンスに対する広ダイナミックレンジ画像合成の方法と基準画像切り替えの概要図である。動画撮影時の広ダイナミックレンジ画像生成では、時間軸に沿って低露光画像L801と高露光画像H802が交互に入力され、連続する低露光画像Lと高露光画像Hを1つの組として広ダイナミックレンジ画像C803を生成する。このとき、一方の画像を基準画像とすると、それに合わせ込むようにもう一方の画像を幾何変形して合成を行うことになるため、生成された広ダイナミックレンジ画像は基準画像と同じ時点のシーンとなる。つまり、図8では期間804ではLを基準画像としてHをLに合わせ込むように幾何変形しているので、生成される広ダイナミックレンジ画像は低露光画像Lの時点と同じシーンとなり、入力画像に対しては1フレームおきの動画像として出力される。それに対して期間805ではHが基準画像となっているために生成される広ダイナミックレンジ画像はHの時点のシーンとなり、同じように入力画像に対しては1フレームおきの動画像として出力される。
しかしながら、基準画像の決定処理により基準画像がLからHに切り替わる期間806においては、広ダイナミックレンジ画像がこの瞬間だけ入力画像に対して2フレーム分の間が空いてしまうことになる。その結果として動きに不連続が生じた不自然な画像が出力されてしまうことになる。また、図8とは逆に基準画像をHからLに切り替える場合については、切り替わりの瞬間には入力画像に対して隙間なく連続したフレームが出力されることになるため、同様に広ダイナミックレンジ画像に不連続な動きが生じる。
このような問題を解決するために、本実施形態では低露光画像Lと高露光画像Hの撮影順序の入れ替えを行う。図9にその概要図を示す。図9の901に示すように、基準画像を切り替えるのと同時に低露光画像Lと高露光画像Hの撮影順序を入れ替えることで、常に入力画像に対して1フレームおきの広ダイナミックレンジ画像を生成することが可能となる。図9は一例として基準画像を低露光画像Lから高露光画像Hに切り替える場合について示している。しかし、高露光画像Hから低露光画像Lに切り替える場合についても同様に撮影順序を入れ替えることで広ダイナミックレンジ画像を常に1フレームおきの動画像として出力することが可能である。以上の動作は、基準画像決定回路107からの基準画像情報を受け取った撮影条件制御回路105が、光学系101や撮像素子102を制御することによって実行される。
本実施形態では入力画像を解析して基準画像を決定する方法について述べたが、特にこれに制限されるものではなく、ユーザーが手動でどちらの画像を基準画像とするかを選択しても問題は無い。しかしながら、上述の方法により基準画像が数フレーム毎に頻繁に切り替わるような判定がなされると、生成される広ダイナミックレンジ画像の画質が頻繁に変化することになり、逆に不自然な画像となる可能性がある。そこで、基準画像が頻繁に切り替わることを防ぐために、前回の切り替わりから一定フレームだけ間隔が空くまでは切り替えを行わないようにしたり、置き換えるべき領域に対して重み付け処理を施して徐々に切り替えていくといった処理が必要となる。
以上のようにして、本ステップでは広ダイナミックレンジ画像生成時にどちらの画像を基準画像として位置合わせのための幾何変換処理を行うかを決定する。そして、決定された基準画像情報は画像変形回路110に伝送される。
図2のステップS203では、合成に用いる画像の位置合わせを行うために必要となる画像間の位置ずれ量を算出する。
合成用画像の撮像中に撮像装置に動きが生じていた場合、各合成用画像間には微小な位置ずれが生じている。その位置ずれのために、そのままの状態で画像合成を行うと合成結果である広ダイナミックレンジ画像において撮像シーンにぶれが生じたような画像となってしまう。そこで、画像合成を行う前に各合成用画像間の位置ずれ量を検出し、そのずれ量を打ち消すように画像に幾何変形処理を施して位置合わせを行う必要がある。
動きベクトル算出回路108において合成用画像間の動きベクトルを求める。動きベクトルの検出は一般に、2つの画像間における注目画素及びその近傍領域のテクスチャ情報の相関関係に基づいて算出される。注目画素の配置は画像全体を覆うように等間隔に配置しても良いし、テクスチャのエッジやコーナー等の特徴点を抽出して注目画素としても良い。しかしながら、合成用画像はお互いに異なる露光量で撮像されているため、そのままの状態では画像全体の明るさに差があり、同じ領域でも相関が低いと判定されてしまう。そこで、動きベクトルの検出を行う前に各合成用画像の画素値のレベルを合わせておく必要がある。画素値のレベル合わせの方法としては、画像撮像時の撮像パラメータを用いてゲイン調整を行う方法や全画素に対して正規化処理を施す方法等があるが特にこれらの方法に限られるものではない。また、動きベクトルの検出には、テンプレートマッチング法、勾配法等の一般的な検出方法を用いれば良いが、その方法に制限は無い。
画像変形量算出回路109では、動きベクトル検出回路108で算出された動きベクトル群を用いて合成用画像間の位置ずれ量を画像変形量として算出する。本実施形態では、画像変形量のモデルとして平面射影モデルを使用して位置合わせのための画像変形量を算出する場合について説明する。ここで、位置合わせを行う2枚の画像の中で第1の画像上に存在するある点a、
a=[x,y,1]T …(1)
が第2の画像において点a’、
a’=[x’,y’,1]T …(2)
へ移動したとすると、点aと点a’の対応関係は平面射影行列Hを用いることにより、
a’=Ha …(3)
と表すことが出来る。ここで、式(1)及び式(2)のTは行列の転置を表している。そして、式(3)の平面射影行列Hは画像間の並進、回転、変倍、せん断、あおりの変化量を示す行列式であり、以下の式により表すことが出来る。
…(4)
また、点aおよびa’、平面射影行列Hは斉次座標を用いて表している。このことは以下でも同様である。
平面射影行列Hの各要素は、動きベクトル検出回路108で算出された動きベクトル群、つまり合成用画像間における注目点の対応関係を用いて、最小二乗法のような統計的処理等を適用することにより算出することが出来る。このようにして求められた平面射影行列Hは画像間の位置ずれ量を表すものであるから、位置ずれを補正するためには、位置ずれを打ち消す画像変形量にHを変換する必要がある。つまり、平面射影行列Hの逆行列をKとすると、
a=Ka’ …(5)
となる。上式により、位置ずれが生じた後の特徴点a’を位置ずれが生じる前の特徴点aと同じ座標に戻すことが可能となる。本実施形態では、このKを位置合わせパラメータと呼ぶものとする。
ここで、本実施形態においては、位置ずれを表す画像変形量として平面射影行列を使用しているが、実際にはこれに限ったものではない。例えば、画像間に生じている位置ずれの種類に応じて、ヘルマート行列やアフィン変換行列等といった他の画像変形量を使用しても良い。
以上のようにして、本ステップでは広ダイナミックレンジ画像の生成に用いる画像間の位置合わせを行うための位置合わせパラメータを算出する。そして、算出された位置合わせパラメータは画像変形量回路109に伝送される。
ステップS204では、上述の位置合わせパラメータを用いて画像上の全画素に対して画像幾何変形処理を施すことにより位置ずれの補正を行う。位置ずれの補正には基準画像決定回路107において決定された基準画像情報を基にして画像の幾何変形を行う。例えば、基準画像が低露光画像であった場合には高露光画像に対して位置合わせパラメータを用いた幾何変換を行うことになる。この際、位置合わせパラメータが高露光画像に対する低露光画像の位置ずれ量を表している場合には、位置合わせパラメータをそのまま使うことはできない。このような場合には、予め位置合わせパラメータである平面射影行列の逆行列を算出することで、位置合わせパラメータを低露光画像を基準とした高露光画像の位置ずれ量に変換することで基準画像情報に合わせた画像幾何変形を行うことができる。以上のようにして位置ずれの補正された合成用画像は画像合成回路111へ伝送される。
ステップS205では、画像変形回路110で位置ずれが補正された合成用画像を用いて広ダイナミックレンジ画像生成のための画像合成を行う。
図10に画像合成による広ダイナミックレンジ画像生成の一例を示す。図10は、横軸が画像合成回路111に入力される合成用画像の画素値を光強度に換算した値を、縦軸は合成により生成される広ダイナミックレンジ画像の出力画素値を示しており、画像合成回路111に対する画素値の入出力特性を表すグラフとなっている。また、図10の1001は高露光画像の入出力特性を、1002は低露光画像の入出力特性を表している。ここで、光強度とは撮像素子に入射した光の強さを表しており、例えば露光時間を長くすれば弱い光でも長時間蓄積することが可能となり高い画素値として出力することが出来る。
図10の高露光画像の入出力特性1001において、画像上で白とびとみなすことの出来る光強度の閾値を1003の値とすると、それよりも大きな値については白とびでテクスチャが失われてしまった領域となる。それに対して露光時間の短い低露光画像では、強い光でも蓄積量が飽和する前に撮影が終了するため、高露光画像で白とびしてしまう領域についてもディテールを損なうことなく記録することが出来る。従って、閾値1003よりも大きな光強度の領域については低露光画像の値に置き換えることにより白とびを改善することが可能となる。
このとき、高露光画像と低露光画像では入出力特性の違いにより同じ光強度でも出力画素値が異なるため、そのままでは合成画像の入出力特性は不連続になってしまう。そこで、低露光画像の入出力特性1002が1004のように1001と連続した値となるように、入出力特性1002にゲインアップを施すことが必要となる。このときのゲインアップの値は、2枚の合成用画像の露光時間の比から求めることが出来る。例えば、低露光画像と高露光画像の露光時間の比が1:2であるとすると、高露光画像の低露光画像に対するの光強度の比は2倍となる。従って、低露光画像の入出力特性1002に対して2倍のゲインアップを行うことで、1001と合成可能な新たな入出力特性1004を得ることが出来る。
しかしながら、上述の方法では白とび判定の閾値1003を境に高露光画像と低露光画像を単純に切り替えているだけなのでゲインアップの誤差の影響などにより切り替わりが滑らかに行われず、擬似的な輪郭が発生する可能性がある。これを防ぐための一つの方法として、ある合成比率に応じて高露光画像と低露光画像の画素値の調合を行うものがある。図10において、低露光画像の入出力特性1002における閾値1003以下の部分をゲインアップした1005と、高露光画像の入出力特性1001について重み付け加算処理を施す。このとき、閾値1003に近いほど1005の重みを大きくし、1003から離れるにしたがって1001の重みを大きくすることで、1001と1004に多少のずれが生じていた場合でも擬似輪郭が生じない良好な広ダイナミックレンジ画像を生成することが可能となる。本実施形態においては白とび改善のための広ダイナミックレンジ画像生成の方法について説明したが、黒つぶれの改善された広ダイナミックレンジ画像についても同様の方法で生成することが可能である。さらに、動物体や注目被写体の領域についてはステップS202での基準画像の判定結果に基づいて同一領域内の画素の全てをどちらか一方の画像の画素を用いて置き換えを行えば良い。
ステップS206では、画像合成回路111により生成された広ダイナミックレンジ画像を不図示の表示装置又は記憶装置に出力する。ここで、生成された広ダイナミックレンジ画像は通常の画像よりもダイナミックレンジが拡大されているため、そのままでは表示装置への出力が出来ない場合がある。そのような場合には、広ダイナミックレンジ画像に対してトーンマッピング処理を施すことによって、例えば8bit等の一般的なダイナミックレンジに変換すれば良い。
以上説明したように、広ダイナミック画像の生成において合成用画像の位置合わせを行う際に、合成時に置き換えを行う領域の多い方の画像を基準画像として、それに合わせ込むようにもう一方の画像に対して幾何変形処理を施す。これにより、画像幾何変形による画質の劣化が抑えられた良好な広ダイナミックレンジ画像を生成することが可能となる。
(第2の実施形態)
図11に、本発明の第2の実施形態に係わる撮像装置の構成を示す。本実施形態では、広ダイナミックレンジ画像生成に加えて防振処理を考慮に入れた基準画像の決定を行う。図11において、図1に示した構成要素と共通するものについては、図1と同符号を付す。本実施形態の撮像装置は、図1に示した構成に加えて、ぶれ補正量算出回路1101を有する。また、本実施形態における処理のフローチャートを図12に示す。本実施形態では、図12において第1の実施形態と異なる処理を行う部分についてのみ説明する。
ステップS1201は図2におけるS201と同じであり、ステップS1202では入力された画像を画像解析回路106において解析することで広ダイナミックレンジ画像生成に加えて防振処理も考慮に入れた基準画像の決定を行う。
ここではまず防振の基準画像について説明する。図13に、広ダイナミックレンジ生成のために低露光画像Lと高露光画像Hを交互に撮影した場合の概要図を示す。図13の矢印1301は広ダイナミックレンジ画像生成において低露光画像を基準画像として、それに対して高露光画像を幾何変形して合わせ込むことを表している。このような合成処理により生成される広ダイナミックレンジ画像C1302は常に低露光画像と同じ時点の画像となる。つまり、結果として出力される広ダイナミックレンジ画像は、低露光画像と同じ動きをしていることになる。
また、防振処理とは手ぶれなどに起因する撮像装置の動きによって生じるフレーム画像間の位置ずれ量を検出し、そのずれを打ち消すように画像間の位置合わせを行うというものである。したがって図13の場合には、出力されてくる広ダイナミックレンジ画像が低露光画像と同じ動きをしているので、図13の矢印1303に示すように低露光画像間での位置ずれ量をぶれ量として算出する必要がある。このとき、例えば高露光画像間で位置ずれ量を算出してぶれ補正を行うと、実際に出力されている広ダイナミックレンジ画像間の動きとは時間的に1フレーム分だけずれた時点でのぶれ量を用いて防振処理を行うことになるため正しくぶれを補正することができない。つまり、防振処理における基準画像とは合成用画像の低露光画像間でのぶれ量を算出するのか、高露光画像間のぶれ量を算出するのかのどちらを選択するのかを意味することになる。
以上より、本実施形態における基準画像の決定には2種類の方法があるといえる。一つ目は広ダイナミックレンジ画像の画質を向上させるための基準画像を決定してから防振処理の基準画像をそれに合わせる方法であり、2つ目は防振処理の基準画像を決定してから広ダイナミックレンジ画像生成の基準画像をそれに合わせる方法である。これらの2つの方法は広ダイナミックレンジ画像の画質を優先するか、それとも防振の精度を優先するかによって決定される。
本実施形態では、入力画像を解析することによって上記のどちらの方法を用いるかを判定する。広ダイナミックレンジ画像生成と防振処理のどちらを優先して基準画像を決定するかを判定する方法の一つの例として画像間のぶれ量を用いる方法がある。画像間のぶれ量を知る方法としては動きベクトル検出回路108にて検出された動きベクトルの大きさや画像変形量算出回路109にて算出された画像変形量の値を用いる。もし、これらの値が予め定められた閾値以上の大きさであれば入力画像には大きなぶれが生じていると判定する。そして、大きなぶれが発生しているのであれば、広ダイナミックレンジ画像の画質が向上するように基準画像を決定したとしても、ぶれの動きによる画質の劣化の方が顕著になるため画質の向上を視認することは困難である。したがって、初めに防振処理を良好に行うことの出来る基準画像を選択し、広ダイナミックレンジ画像生成の基準画像をそれに合わせるようにした方が出力される画像の最終的な画質を向上させることが出来る。そして、ぶれが大きい場合には画像上に生じる露光時間に起因する動きぼけも大きくなるので、相対的に動きぼけの小さい低露光画像を基準画像とすることで高露光画像よりも正確なぶれ量を求めることができる。さらに防振処理を優先して基準画像が低露光画像に決定されたのであれば、広ダイナミックレンジ画像生成もそれに合わせて低露光画像を基準として画像の幾何変形を行うことになる。
それに対して、フレーム画像間のぶれ量が小さい場合にはどちらを優先して基準画像を決定しても良い。例えば、防振処理を優先する場合には、高露光画像は低露光画像と比較してノイズが少ないため、動きぼけが少ないシーンであれば低露光画像よりも高精度にぶれ量を算出することが出来る。しかしながら、白とび領域についてはテクスチャが失われているため動きベクトルを検出することが出来ない。そのため、高露光画像中に白とび領域が多い場合には正しく検出できる動きベクトルの数が少なくなるため正しくぶれ量を求められない可能性がある。そこで、例えば第1の実施形態の図4で述べたように、高露光画像の画素値ヒストグラムを用いて白とび量を判定し、その量が予め定められた閾値以上であれば高露光画像では正しくぶれ量を求められないと判定して低露光画像を基準画像として決定する。逆に広ダイナミックレンジ画像生成を優先させる場合には、第1の実施形態のステップS202において述べた方法を用いて基準画像を決定すれば良い。本実施形態では、動きベクトルや画像変形量の大きさを用いてぶれの大きさを判定したが、例えば動きベクトルの時間的変化からぶれの周波数を算出して判定を行っても良く、その方法に制限は無い。
基準画像を決定する他の方法としては、低露光画像と高露光画像の露光差を判定に用いる方法がある。広ダイナミックレンジ画像の合成に用いる画像の露光差を大きくすると、より広いダイナミックレンジの画像を合成することが出来る。しかしながら、露光差が大きくなると低露光画像の黒つぶれ領域、もしくは高露光画像の白とび領域が大きくなり、合成時に置き換えなければならない画素の数も多くなるため、適切に基準画像を選択しないと幾何変換による画質の劣化が目立つことになる。このような場合には、防振処理を優先させるよりも合成時に置き換える領域の大きい方を基準画像として広ダイナミックレンジ画像を生成した方が最終的に出力される画像の画質を向上させることが出来る。したがって、合成用画像の露光差が大きい場合には広ダイナミックレンジ画像生成を優先して基準画像を決定すれば良い。画像間の露光差は例えば画像の撮影時にカメラパラメータを取得することによって知ることができるが、どのような方法を用いても良い。
以上のようにして、本ステップでは広ダイナミックレンジ画像生成と防振処理のどちらを優先するかを判定し、基準画像決定回路107では、それに応じて幾何変形処理を行う際の基準画像を決定する。そして、決定された基準画像情報は画像変形回路110に伝送される。
ステップS1203では、広ダイナミックレンジ画像生成のために低露出画像と高露出画像の位置ずれ量を算出することに加えて、防振処理の基準画像間での位置ずれ量をぶれ量として算出する。例えば、防振処理の基準画像が低露光画像であれば、隣り合う低露光画像間でのぶれ量を画像変形量として算出する。そして算出されたぶれ量はぶれ補正量算出回路1101へ伝送される。
ステップS1204では、ぶれ補正量算出回路1101において、画像変形量算出回路109で算出されたぶれ量を用いて防振処理のためのぶれ補正量を算出する。画像間のぶれを補正するためには現在の画像を時間的に一つ前の画像にぶれの動きを打ち消すように合わせ込むということなので変形量算出回路から得られた画像変形量がそのままぶれ補正量となる。ただし、前の画像に完全に一致させるように画像変形を行うと、歩行時に生じるような大きなぶれやカメラワークのような意図的な撮像装置の動きに対応することが出来ない。このような場合には、画像変形量に対してIIRフィルタのような時系列フィルタを適用することで手ぶれを補正しつつもカメラワークのような大きな動きに対しては滑らかに追従するようなぶれ補正を行うことが可能となる。
ステップS1205では、画像変形回路110において広ダイナミックレンジ画像合成のための画像変形と防振処理のための画像変形を同時に行う。例えば、基準画像が低露光画像であるとする。このとき、ぶれ補正量としては低露光画像間の画像変形量のみであるため、まず先に広ダイナミックレンジ画像生成用に高露光画像を低露光画像に合わせるように画像変形を行う。これにより高露光画像は低露光画像と同じ形となるので双方の画像に対して低露光画像を基準としたぶれ補正用の画像変形を施すことが出来る。以上のようにして広ダイナミックレンジ画像生成および防振処理の両方の画像変形が施された画像は、画像合成回路111へと伝送される。S1206およびS1207はそれぞれ図2のステップS206およびS207と同じである。
以上説明したように、本実施形態では広ダイナミックレンジ画像生成と防振処理のどちらの精度を優先して基準画像を決定するべきかを判定する。これにより、ぶれが生じている画像に対して最終的に最も高画質な画像を取得出来るように広ダイナミックレンジ画像生成と防振処理を行うことが可能となる。