JP2011109619A - 画像処理方法および画像処理装置、プログラム - Google Patents

画像処理方法および画像処理装置、プログラム Download PDF

Info

Publication number
JP2011109619A
JP2011109619A JP2009265532A JP2009265532A JP2011109619A JP 2011109619 A JP2011109619 A JP 2011109619A JP 2009265532 A JP2009265532 A JP 2009265532A JP 2009265532 A JP2009265532 A JP 2009265532A JP 2011109619 A JP2011109619 A JP 2011109619A
Authority
JP
Japan
Prior art keywords
image
images
correction
exposure
blur
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2009265532A
Other languages
English (en)
Inventor
Shohei Tsutsumi
正平 堤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009265532A priority Critical patent/JP2011109619A/ja
Publication of JP2011109619A publication Critical patent/JP2011109619A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Exposure Control For Cameras (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Studio Devices (AREA)

Abstract

【課題】複数の露光条件を用いたデコンボリューション演算によって得られる複数のぶれ補正画像に対して画像合成を実施することにより、ぶれ補正後に発生するリンギングを抑制する。
【解決手段】露光制御部102の制御の下、複数の露光パターンに従って露光期間中に複数の撮像画像を取得し、前記撮影画像におけるぶれ量を検出するぶれ検出手段と、前記ぶれ検出手段によって得られたぶれ量と前記露光パターンに基づいて関数を作成する手段と、前記関数を撮像画像に適用することで複数の補正画像する画像補正手段と、前記複数の補正画像を合成する画像合成手段を有することを特徴とする画像処理装置。
【選択図】図1

Description

本発明は、例えば撮影装置で取得された画像等のぶれを補正する技術に関する。
手ぶれ補正機能付きディジタルカメラ等に使用される手ぶれ補正方式として、画像処理によって電子的に補正を行う方式が提案されている。そのひとつとして、一回の撮影機会に、手ぶれが生じない程度の露光時間で撮影した複数画面の画像を取り込み、この複数画面の画像を電子的に位置合わせして重ね合わせ、手ぶれの影響のない画像を生成する方法が提案されている(例えば特許文献1参照)。特許文献1で提案される電子的手ぶれ補正方法ではジャイロセンサや補正のための光学素子等を必要としないため、ディジタルカメラを小型化でき、製造コストを抑えることができるという利点がある。
このほか、1枚の画像取得時における露光時のシャッタの開閉をランダムに実施し、そのシャッタ開閉の情報(露光パターン)を用いたデコンボリューション演算によって、手ぶれ或いは被写体ぶれを補正する技術が提案されている(例えば特許文献2参照)。この技術はCoded Exposureと呼ばれる。具体的には、特許文献2の技術では、ジャイロセンサなどを用いてぶれの分布を計測し、さらに露光時間とぶれの分布から、画像上の点像のぼけ関数であるPoint Spread Function(以下PSF)を推定する。このPSFの周波数特性を算出し、該周波数特性の逆特性となるフィルタ(逆フィルタ)、或いはウィナーフィルタを用いて撮影した画像をフィルタリングすることで好適なぶれ補正が可能である。
ここで、Coded Exposureで使用されるシャッタ開閉の情報を用いデコンボリューション演算によってぶれ補正する手法について説明する。画素位置(x,y)における単位時間当たりの入射光の強度をi(x,y)、ディジタルカメラのぶれ速度をv、露光時間をTとすると、ディジタルカメラには、時刻tにi(x,y)をvTだけ移動させた情報が入射される。よって、撮像される画像データi_blur(x,y)は以下の式で表現できる。
式(1)において、h(t)は露光条件を表す関数であり、1または0の値を取る関数である。値が1ならばシャッタが開いている状態を示し、0ならばシャッタが閉じている状態を示す。なおこの例では説明を簡単にするため縦方向(y方向)へのぶれが撮影時に発生したものとして説明している。ここで、実空間でのコンボリューション演算は、空間周波数上で積の形式で記述できる。したがって、撮像データの取得過程を表現する式(1)に対して、その両辺をフーリエ変換すると以下の式を得る。
式(2)において、I_blur(u,v)、I(u,v)、H(u)はそれぞれi_blur(x,y)、i(x,y)、h(t)のフーリエ変換である。次に、求めたい入射光の強度i(x,y)のフーリエ変換I(u,v)について式(2)を数式変換すると以下の式を得る。
式(3)が関数作成部で生成される関数である。式(3)において、露光時間Tは既知パラメータであり、撮像装置のぶれ速度vは撮像装置に具備されるジャイロセンサから獲得できるとする。I_blur(u,v)、H(u)は、撮像される画像データi_blur(x,y)、露光条件h(t)のフーリエ変換によって得ることが可能であるため、これらの関数も既知となる。したがって、式(3)の演算を実施することで、取得したい画像データi(x,y)のフーリエ変換I(u,v)を導くことができる。最後に、導出されたI(u,v)に対して逆フーリエ変換を施すことで、ぶれを含まない入力データi(x,y)を演算によって求めることが可能となる。以上が、デコンボリューション演算によってぶれ補正する手法である。
式(3)に従い、原理的にはぶれを含む画像からぶれを取り除くことが可能であるが、撮像装置の露光条件によっては、h(t)のフーリエ変換値H(u)がゼロの値を保持することがある。その場合、式(3)の右辺で、いわゆる「ゼロ割」が発生し、式(3)の解であるI(u,v)を正しく求めることができず、撮像画像におけるぶれ補正が不十分となる。以下、「ゼロ割」が原因で、ぶれ補正が不十分となる場合の一例について説明する。
図27(A)には、通常の露光条件を例示した。h(t)=1はシャッタが開いている状態を表し、h(t)=0はシャッタが閉じている状態を表すものとする。図27(A)で示される露光条件を数式で表現すると以下の通りである。
h(t)=1 (0≦t≦T)
h(t)=0 (上記以外の場合)。
図27(B)には、図27(A)で示される露光条件h(t)をフーリエ変換し、その強度を周波数毎にプロットした。これが、前述のデコンボリューションで用いる画像上の点像ぼけ関数PSFである。図27(B)より、PSFの強度が周期的に0となる周波数が出現していることが確認できる。これは、その周波数に該当する情報が画像取得時に失われてしまっていることを示している。このような事態が生じるとデコンボリューション後の画像において、不要な波形模様(リンギング)が補正画像に現れてしまい、画像劣化を誘発することが知られている。
このような画像劣化を防ぐために、1枚の撮影時間内でシャッタの開閉をランダムに行い、露光条件h(t)のPSFの周波数特性が非ゼロの値で構成されるように設定する。図28(A)には、シャッタ開閉をランダムに実施した場合の露光条件を示した。図28(B)には、図28(A)で示される露光条件h(t)をフーリエ変換し、その強度を周波数毎にプロットした。図28(A)から全周波数で非ゼロの値によってPSFが形成されていることが分かる。この場合、該PSFは全ての周波数帯域において画像情報を得ることができるため、式(3)を用いて好適な画像修復が可能となる。
特開2006−074693号公報 米国特許公開2007/0258706号公報
しかしながら、特許文献1で提案される手法では、各取得画像には手ぶれを含まないことが前提となっており、手ぶれが発生した画像に対しては、各画像間での位置合わせが良好に実現できないという課題があった。夜景シーン等の撮影には、撮影画像にノイズが印加されやすいこともあり、ノイズ低減のためには、一定時間以上の露光時間が必要となる。しかしながら、露光時間が長くなると取得画像に手ぶれが含まれることになり、各画像間での位置合わせが不十分となる。その結果、特許文献1記載の発明は、位置合わせ後の画像を加算合成しても、手ぶれを十分に除去できない欠点を有する。
特許文献2では、図28(B)で例示される露光条件のPSFの周波数応答値が微小な場合には、当該周波数におけるぼけ補正量がその他の周波数に比べて大きくなり、好適なぶれ補正ができないという課題があった。具体的には、式(3)におけるH(u)が微小値を持つ周波数において、ノイズを含むI_blur(u,v)の画像情報が増幅され、リンギングを完全に除去できない。
以下、特許文献2に開示さえるぶれ補正処理を実施した際に発生するリンギングについて説明する。図29(A)には、露光条件から得られるPSFをプロットした。図29(A)において、周波数応答値の推移を分かりやすくするため縦軸は対数表記としている。なお、露光条件h(t)は、h(t)=[1,0,1,0,1,0,0,1]と設定し、その場合のPSFを算出している。図29(A)において、P0、P1付近の周波数帯において、周波数応答値が微小値となっていることが確認できる。図29(C)は、図29(D)の被写体を撮影した縦方向のぶれ画像(図29(B))に対して、図29(A)で表されるPSFを用いてデコンボリューションして得られたぶれ補正画像である。ぶれ画像(図29(B))とぶれ補正画像(図29(C))を比較すると、画像中心付近は好適なぶれ補正が達成できているが、画像の上下端部において周期的な波形としてリンギングが発生していることが確認できる。このリンギングの強度、周期は図29(A)に示されるPSFの応答値が微小となる周波数(P0、P1)と関連がある。したがって、ぶれ補正後に発生するリンギングを抑制するためには、全周波数に渡ってPSFの応答値を相対的に高めることが求められる。しかし、PSFの応答値を一様に高めるためには、露光条件h(t)に遍く周波数成分を包含する必要があり、限られた撮影時間内に好適な露光条件を定めることができない。
本発明は以上のような状況に鑑みてなされたものであり、複数の露光条件を用いたデコンボリューション演算によって複数のぶれ補正画像を得、それぞれのぶれ補正画像を合成することにより、ぶれ補正後に発生するリンギングを抑制することを目的とする。更に、複数のぶれ補正画像の相対移動量を位置合わせによって求めた後に、画像合成を行うことにより、より複雑なぶれ画像についても補正する。
上記目的を達成するため、本発明の画像処理装置は、複数の露光パターンに従って被写体を撮影し、前記露光パターンに応じた複数の撮影画像を得る撮影手段と、
前記撮影画像におけるぶれ量を検出するぶれ検出手段と、
前記ぶれ検出手段によって検出されたぶれ量と前記露光パターンとに基づいて補正関数を作成する手段と、
前記補正関数を前記複数の撮影画像のそれぞれに適用して複数の補正画像を得る画像補正手段と、
前記複数の補正画像を合成する画像合成手段とを有する。
他の側面によれば、本発明の画像処理装置は、一定の露光時間および間隔で撮影した複数の撮影画像から、複数の露光パターンに従って複数の画像を選択する画像選択手段と、
前記複数の撮影画像におけるぶれ量を検出するぶれ検出手段と、
前記画像選択手段によって選択された複数の画像を加算合成して複数の合成画像を得る画像加算手段と、
前記ぶれ検出手段によって検出されたぶれ量と前記露光パターンとに基づいて補正関数を作成する手段と、
前記補正関数を前記画像加算手段によって加算合成された前記複数の合成画像に適用して複数の補正画像を得る画像補正手段と、
前記複数の補正画像を合成する画像合成手段とを有する。
本発明によれば、複数の露光条件を用いたデコンボリューション演算によって得られる複数ぶれ補正画像に対して画像合成を実施することにより、ぶれ補正後に発生するリンギングを抑制することが可能である。更に、本発明によると、複数のぶれ補正画像の相対移動量を位置合わせによって求めた後に、画像合成を行うことにより、より複雑なぶれ画像についても補正することが可能である。
第1実施形態の撮像装置の構成を示すブロック図である。 第1実施形態の画像処理部の動作を示すフローチャートである。 第1実施形態のぶれ補正全体の動作を説明するための図である。 補正関数の作成方法を説明するためのフローチャートである。 ゼロ設定された配列の一例および露光条件の一次元フーリエ変換の一例の図である。 画像補正の処理方法の動作および画像合成の処理方法の動作を示すフローチャートである。 第1実施形態のぶれ補正画像と合成画像の一例である。 第1実施形態の露光条件規定の構成を示すブロック図である。 露光条件規定部の動作を説明するためのフローチャートである。 異なる3種類の露光条件の点像ぼけ関数PSFの一例の図である。 重み付け画像合成の処理方法の動作を示すフローチャートである。 第2実施形態のぶれ補正画像と重み付け合成画像の一例の図である。 重み付け係数の設定方法の動作を示すフローチャートである。 第3実施形態の撮像装置の構成を示すブロック図である。 第3実施形態のぶれ補正全体の動作を説明するための図である。 ぶれ補正画像の相対移動量を求めた後に画像合成する処理の流れおよび適正領域抽出方法を説明するためのフローチャートである。 画素単位の共通領域抽出方法およびブロック単位の共通領域抽出方法を説明するためのフローチャートである。 位置ずれ検出方法を説明するためのフローチャートおよび動きベクトルから位置ずれ補正量を求める方法を説明するための図である。 有効ブロック判定方法を説明するためのフローチャートである。 有効動きベクトル判定方法を説明するためのフローチャートである。 第4実施形態の撮像装置の構成を示すブロック図である。 第4実施形態の画像処理部の動作を示すフローチャートである。 第4実施形態のぶれ補正全体の動作を説明するための図である。 第5実施形態の露光条件規定の構成を示すブロック図である。 図24に示される評価値算出部の処理方法の動作を示すフローチャートである。 異なる3種類の露光条件の点像ぼけ関数PSFと閾値以下となる周波数帯域の一例である。 通常露光の一例および通常露光の点像ぼけ関数PSFの図である。 ランダム露光の一例およびランダム露光の点像ぼけ関数PSFの図である。 ランダム露光の点像ぼけ関数PSFの一例、縦方向のぶれ画像の一例、ぶれ補正画像、テスト画像の一例の図である。
[第一実施形態]
<撮像装置の構成図>
図1は、本発明の第1の実施形態であるディジタルカメラ等の撮像装置の構成を示したブロック図である。撮像部101は、撮像レンズ群とC−MOSやCCDなどの半導体撮像素子からなる。露光制御部102は、シャッタ駆動、絞り駆動を制御する。ぶれ検出部103は、撮像装置の姿勢変化を検出する。撮像部101から出力される映像信号は、A/D変換部104によりデジタル画像データに変換され、画像処理部105に入力される。画像処理部105では、入力された信号に対して輝度信号や色信号を形成するなどの処理を行ってカラー画像データを形成する。一回の撮影機会において撮影される画像を原画像、その画像データを原画像データと呼ぶ。生成された画像データは、画像表示部115でカメラ本体が備える液晶モニタに表示させると同時に、画像記録部114でカメラ内部の記録媒体に記録される。なお、ブロック101−104までの光学系およびぶれ検出部を独立したユニットとして構成した場合、画像処理部105も画像処理装置として独立した構成とすることもできる。画像処理部105はマイクロプロセッサや汎用コンピュータに本発明に係る画像処理手順を実現するプログラムをインストールすることで実現可能である。
以下、ぶれ補正の処理について説明する。本実施形態で採用するぶれ補正は、予め用意された複数の露光条件(露光パターン)を用いて演算によって撮影画像のぶれを補正し、複数のぶれ補正画像に対して画像合成を実施することで実現される。図2は、ぶれ補正全体の流れをフローチャートを用いて説明するものである。図2の手順は、ステップS201は露光条件規定部106により、ステップS202−S205は露光制御部102により、それ以下のステップは画像処理部105により実行される。ステップS201は撮影に先立って実行されていれば良く、撮影時の処理はステップS202以下である。
まず、露光条件規定部106にて撮影時に使用する複数の露光条件を予め規定しておく(ステップS201)。露光条件の規定処理の詳細については後述する。規定された複数の露光条件は露光条件データベース(DB)108に格納されており、撮影時に露光条件選択部109が露光条件を選択する(ステップS202)。次に、選択された露光条件に従って、露光制御部102で露出を変化させ(ステップS203)、画像を撮影する(ステップS204)。このときAD変換部104を通ってデジタル化された画像データは画像処理部105へ転送され、メモリ部107へ格納される(ステップS205)。110は補正関数作成部であり、露光条件選択部109で選択される露光条件に基づいて、ぶれ補正の際に使用する補正関数を作成する(ステップS206)。補正関数の作成処理の詳細については後述する。次に、ぶれ検出部103で検出される撮影中における撮像装置の姿勢変化(ぶれ情報)を取得する(ステップS207)。取得されたぶれ情報と前記補正関数は画像補正部111に供給され、ぶれ画像を補正する(ステップS208)。ぶれ補正が完了した画像データは、一旦メモリ部112に蓄えられる(ステップS209)。次に、露光条件データベースに格納される全ての露光条件に対して撮影が完了したか否かを判定する(ステップS210)。全ての露光条件下での撮影が完了していない場合には露光条件を更新し(ステップS211)、ステップS202からステップS210までの処理を繰り返し行う。全ての露光条件下での撮影が完了した場合にはステップS212に進む。最後に、メモリ部112に格納されるぶれ補正が完了した複数枚の画像に対して画像合成部113により加算合成処理を実施し(ステップS212)、一連のぶれ補正処理が完了する。ぶれ補正処理済みの画像は画像記録部114に記録され、必要に応じて読み出されて他の機器に転送され、あるいは画像表示部115に表示される。
図3には、本実施形態で採用するぶれ補正処理の概念図を示した。複数の撮像画像に対してぶれ補正処理を実施した後、画像合成により詳細なぶれ補正を行う。図3では、一例として4種類の異なる露光条件を用いてぶれ補正処理を実施した場合を示している。以下、ぶれ補正の詳細について順次説明する。
<補正関数の作成>
補正関数の作成方法を図4のフローチャートを用いて説明する。補正関数は、本実施形態では、点像ぼけ関数の逆フィルタである。図4は図2のステップS206に相当する。まず、露光条件選択部109で選択された露光条件h(t)が入力される(ステップS401)。なお、tは時刻を表す。露光条件h(t)は、1または0の値を取る関数である。1ならばシャッタが開いている状態を示し、0ならばシャッタが閉じている状態を示す。一例として、露光時間TがT=15で構成される以下の露光条件の場合について説明を続ける。
h(t)=[1,0,0,0,1,0,0,1,1,0,1,0,1,1,1]
次に、露光条件h(t)が入力されると、予め規定される撮像画像サイズN画素×M画素を参照してゼロ設定された配列を生成する(ステップS402)。具体的には、h(t)を用いて以下の通りに画素位置(x,y)における配列h’(x,y)を作成する。
h'(0,y)=h(y) (0≦y≦T)
h'(x,y)=0 (上記以外の場合)
なお、画素位置(x,y)は0≦x<N、0≦y<Mの範囲で変化する。本実施形態では、撮像画像のサイズをN=256、M=256と設定する。図5(A)には、上式で記述される配列h'(x,y)を模式的に示した。左上端点の原点から縦方向にh(t)を格納し、その他の配列には一様に0を格納している。なお、本実施形態では、縦方向(y方向)へのぶれが含まれる画像に対する補正処理について説明する。次に、ゼロ設定された露光条件h'(x,y)に対して二次元のフーリエ変換処理を行う(ステップS403)。
H(u,v)=FFT2(h'(x,y)) … (4)
FFT2()は二次元フーリエ変換を行う関数である。u、vは周波数を示し、−1≦u≦1、−1≦v≦1に正規化されているものとする。図5(B)には、h'(x,y)のうち、露光条件h(t)が格納されている箇所であるh'(0,y)の一次元フーリエ変換H'(u)をプロットした。図5(B)において、横軸は周波数uを表しており、正の周波数である0≦u≦1の範囲をプロットした。縦軸は各周波数の応答値を対数表記で表し、各応答値は直流成分(u=0)の値で正規化している。図5(B)から、露光時間をT=15に設定してもなお、応答値の低い周波数が数箇所出現していることが確認できる。最後に、二次元フーリエ変換によって得られた露光条件H(u,v)と露光時間Tとを補正関数として出力し(ステップS404)、補正関数の作成処理を完了する。
<画像補正>
画像補正の処理方法を図6(A)のフローチャートを用いて説明する。図6(A)は図2のステップS208に相当する。まず、メモリ部107に蓄積された撮像画像i_blur(x,y)が画像補正部111に入力される(ステップS701)。前述の通り本実施形態で扱う撮像画像のサイズはN×M画素とする。次に、ぶれ検出部103で得られた撮像装置のぶれ情報(撮像装置のぶれ速度v)が画像補正部111に入力される(ステップS702)。ぶれ情報には一般的にぶれ方向も含まれるが、本例ではぶれ方向を上下方向として説明しているため、ぶれ方向については省いている。続いて、補正関数作成部110で作成された露光条件の二次元フーリエ変換H(u,v)と露光時間Tとが画像補正部111に入力される(ステップS703)。次に、画像補正部111で撮影画像i_blur(x,y)に対して二次元のフーリエ変換処理を行い、フーリエ変換画像I_blur(u,v)を得る(ステップS704)。
I_blur(u,v)=FFT2(i_blur(x,y)) (5)。
次に、フーリエ変換画像I_blur(u,v)、撮像装置のぶれ速度v、露光条件の二次元フーリエ変換H(u,v)と露光時間Tを用いてデコンボリューション処理を行う(ステップS705)。具体的には次式(6)によってデコンボリューションを行う。
なお、I(u,v)はぶれを含まない画像i(x,y)の二次元フーリエ変換であり、次式によって定義される。
I(u,v)=FFT2(i(x,y)) … (7)
次に、得られたI(u,v)に対して二次元の逆フーリエ変換処理を行い、画像i(x,y)を得る(ステップS706)。
i(x,y)=IFFT2(I(u,v)) … (8)
ここで、IFFT2()は二次元の逆フーリエ変換を行う関数である。最後に、逆フーリエ変換の完了した画像i(x,y)を補正画像として出力し(ステップS707)、画像補正処理を完了する。
なお、本実施形態では、式(6)で記述されるように周波数空間上での除算によるデコンボリューションを実施していたが、その他のデコンボリューション処理でも構わない。Lucy-Richardsonのアルゴリズム、Wienerフィルタを用いたアルゴリズム、正則化フィルタを用いたアルゴリズムなどを用いても構わない。
<画像合成>
画像合成の処理方法を図6(B)のフローチャートを用いて説明する。図6(B)は図2のステップS212に相当する。まず、メモリ部112に格納されたn個の補正画像i_n(x,y)が画像合成部に入力される(ステップS801)。ただし、n=1,2,3とする。本実施形態では、一例として、異なる3種類の露光条件にて撮像された各ぶれ画像に対し、前述のぶれ補正処理が完了した画像を入力データとして扱う。異なる3種類の露光条件はそれぞれ以下の通りとする。
h_1(t)=[1,0,0,0,1,0,0,1,1,0,1,0,1,1,1]
h_2(t)=[1,0,1,0,1,1,1,1,0,0,0,1,0,0,1]
h_3(t)=[0,0,0,1,0,0,1,1,0,1,0,1,1,1,1]
なお、露光条件の設定の方法については後述する。
次に、図6(A)の手順でそれぞれ補正した複数のぶれ補正後の画像の加算合成処理を、次式に沿って行う(ステップS802)。
i_o(x,y)=(i_1(x,y)+i_2(x,y)+i_3(x,y))/3 … (9)
なお、i_n(x,y)は、露光条件h_n(t)に従って補正処理された画像、i_o(x,y)は加算合成後の画像である。式(9)では、3枚の補正画像の平均画像を算出することで加算合成処理を実施する。最後に、合成画像i_o(x,y)を出力し(ステップS803)、画像合成処理を完了する。
図7には、図29(B)のぶれ画像に対して、露光条件h_n(t)を用いて補正処理したぶれ補正画像i_n(x,y)と加算合成された画像i_o(x,y)を示している。図7からも確認できるが、各補正画像i_n(x,y)の画像中心付近では好適なぶれ補正が行われているが、画像の上下端部においてリンギングが生じている。一方、合成画像i_o(x,y)は各補正画像のリンギング周波数成分が異なるため、画像合成によりリンギング成分が打ち消し合い、画像劣化の緩和に成功していることが確認できる。
本実施形態では異なる3種類の露光条件を使用した場合について言及したが、使用する露光条件は3種類に限定されるものではない。2種類の露光条件を用いた場合でも、4種類以上の露光条件を用いた場合でも本実施形態1が実行可能である。
本実施形態では、縦ぶれを含む撮像画像に対するデコンボリューション処理について説明したが、デコンボリューション可能なぶれは縦ぶれに限定されない。縦ぶれ以外にも、横ぶれ、斜めぶれを含む画像データについてもデコンボリューションにてぶれ補正可能であることは言うまでもない。
<露光条件(露光パターン)の規定>
図8は、図1における露光条件規定部106に適用可能な構成を示したブロック図である。初期値設定部1801は露光条件を規定する際に必要となる初期値を設定する。露光条件生成部1802は露光条件を生成する。露光条件記録部1803は露光条件を記録する。露光条件取得部1804は露光条件を露光条件記録部1803より取得する。画像入力端子1805には、露光条件を規定する際に用いる画像が入力される。画像記録部1806は画像を記録する。評価値算出部1807は画像補正部111で補正された画像と画像記録部1806に格納される画像とを比較し評価値を算出する。露光条件出力部1808は評価値を考慮して露光条件を露光条件データベース(DB)へ出力する。補正関数作成部110、画像補正部111、露光条件108は図1と同様であるため説明を省略する。なお、画像記録部1806についても、画像記録部114と兼ねさせることもできる。露光条件規定部106の動作について、図9に示されるフローチャートに沿って以下説明する。図9は図2のステップS201に相当する。
まず、初期値設定部1801にて露光条件を規定する際に必要となる露光時間T、シャッタ開口時間S(ただし、S<T)、ぶれ速度vを設定する(ステップS1901)。ここでは、T=15ms、S=8ms、v=1画像/msとする。次に、初期値として設定された露光時間T、シャッタ開口時間Sに基づいて、露光条件生成部1802にて露光条件を生成する(ステップS1902)。具体的には、前述の露光条件h(t)を1または0の値で構成される要素数がTとなる配列を全て作成する。なお、1ならばシャッタが開いている状態を示し、0ならばシャッタが閉じている状態を示す。このとき、h(t)に含まれる1の要素数はSとなるように露光条件を設定する。本実施形態1では、T=15ms、S=8msと設定し、h(t)の総要素数は15個となり、その配列には8個の1が含まれる。これらの条件を満足するh(t)の組合せ数は15=6435通りとなる。生成された露光条件の一例を以下に列挙する。なお本例では、シャッタの空き、閉じはいずれも1msを単位としている。
h0_1(t)=[1,0,0,1,0,0,1,1,0,0,1,0,1,1,1]
h0_2(t)=[1,0,1,0,1,1,0,1,1,0,1,0,0,0,1]
h0_3(t)=[0,1,0,1,0,1,1,1,0,1,0,0,1,0,1]。
次に、露光条件生成部1802で生成された全露光条件を露光条件記録部1803に蓄積する(ステップS1903)。次に、露光条件を規定する際に用いるテスト画像i_test(x,y)が画像入力端子1805より入力され、画像記録部1806に格納される(ステップS1904)。図29(D)に示される画像をテスト画像として用いる。次に、露光条件取得部1804が露光条件記録部1803から露光条件を取得する(ステップS1905)。続いて、関数作成部110がぶれ補正に使用する関数を作成する(ステップS1906)。関数作成処理については前述した図4の方法に従うため説明を省略する。次に、画像補正部111は、初期値設定部1801から供給されるぶれ速度vと、画像記録部1806から得られるテスト画像と、補正関数作成部110で作成された補正関数を用いて画像補正を行う(ステップS1907)。画像補正の詳細については前述の処理方法を用いるため説明を省略する。画像補正が完了した画像i_deblur(x,y)とテスト画像i_test(x,y)とを比較し、評価値算出部1807が画像補正の度合いを示す評価値PSNRを算出する(ステップS1908)。PSNR(Peak Singal−to−Noise Ratio)は一般に、画像劣化の度合いを客観的に評価する手法として用いられる。評価される2枚の画像間で画像劣化が全くない場合(同じ画像を比較した場合)、評価値は∞となり、劣化度合いが著しくなると評価値は0に近づく。
上式において、M、Nは、それぞれテスト画像(ぶれ補正画像)の縦画素数、横画素数である。MAXはPSNRの算出時に扱う画像の最大値である。本実施形態ではテスト画像、及びぶれ補正画像の最大値を255と設定しているので、MAX=255となる。
次に、評価値PSNRが予め規定される閾値Thを超えるか否かを判断し(ステップS1909)、閾値Thを超える場合にはステップS1910の処理を省き、ステップS1911の処理へ移行する。評価値PSNRが閾値Th以下の場合には、露光条件出力部1808が露光条件を露光条件DBへ出力する(ステップS1910)。閾値Thは、たとえば補正された画像のサンプルを用意しておき、試験者がそのサンプルを参照して画質が水準以上と判定したものについて評価値を算出し、その評価値に基づいて決めることができる。一例としては、その平均値や最大値、最小値等を閾値として選択できる。露光条件記録部1803に格納された全ての露光条件に対して評価値の算出が完了したか否かを判断する(ステップS1911)。評価値の算出が完了していない露光条件がある場合には未評価の露光条件に更新し(ステップS1912)、ステップS1905からステップS1911までの処理を繰り返し行う。全ての露光条件に対して評価値の算出が完了した場合には、露光条件の規定処理が完了する。以上説明した処理方法によって得られた露光条件の一部を以下に列挙した。
h_1(t)=[1,0,0,0,1,0,0,1,1,0,1,0,1,1,1]
h_2(t)=[1,0,1,0,1,1,1,1,0,0,0,1,0,0,1]
h_3(t)=[0,0,0,1,0,0,1,1,0,1,0,1,1,1,1]。
本実施形態では、評価値としてPSNRを採用したが、その他の画像評価を採用しても構わない。最少二乗誤差、差分平均値、最大差分値等を評価値として使用しても差し支えない。また、本実施形態では、図29(D)の画像をテスト用の被写体(テスト画像)として使用したが、任意の画像をテスト画像として採用しても構わない。図29(D)に示されるような人物画像以外にも、風景画像、チャート等を使用しても差し支えない。
図10には、上記3種類の露光条件を、図4のステップS402の要領でゼロ設定して一次元フーリエ変換した後、その周波数応答をプロットした。図5(B)同様、図10の横軸は周波数uを表しており、正の周波数である0≦u≦1の範囲をプロットした。縦軸は各周波数の応答値を対数表記で表し、各応答値は直流成分(u=0)の値で正規化している。図10から、これら3種類の露光条件は異なる周波数特性を保持していることが確認できる。一部の周波数を除いて全体に渡って高い周波数応答値を示している。相対的に低い応答値を示す周波数は露光条件によって異なっていることが同図から理解できる。このように、複数の露光条件を用いてぶれ補正処理を行うことで、1種類の露光条件では補正が不十分であった場合についても、好適なぶれ補正を実現することが可能となる。
このように、露光条件は、相異なる露光条件で撮影した画像を補正してその品質を評価し、その評価結果に基づいて決定されている。良好な評価結果を与える露光条件、すなわち所定評価値以上の評価結果を与える露光パターンは、図10のように、相対的に低い応答値が重複しないような周波数特性を持つ露光条件である。また、露光パターンに周期性があると周波数特性に多くの極小値が現れるので、それを避けるためにランダムパターンとすることが望ましい。
上記説明では、露光時間T=15ms、シャッタ開口時間S=8msの場合を一例として説明した。ただし露光時間、シャッタ開口時間はこの限りではない。また、露光時間T、シャッタ開口時間Sによる全ての組合せについて露光条件を定めた後、評価値を算出したが、全ての組合せに対して評価値を算出する必要はない。予め規定された露光条件に対してランダムに評価値を算出しても構わない。
なお、本実施形態における撮像装置は静止画を撮影するデジタルスチルカメラとしたが、動画を撮影するデジタルビデオカメラに対しても本実施形態の機能を提供できる。このほか、画像を記録せず、実時間での表示を行う装置(たとえば双眼鏡など)についても同様に、ぶれ補正処理を適用することができる。
以上説明したように、第1の実施形態によれば、相異なる複数の露光条件を用いたデコンボリューション演算によって複数のぶれ補正画像を得、それらを画像合成することにより、ぶれ補正後に発生するリンギングを抑制することが可能である。
[第2実施形態]
第1の実施形態では複数のぶれ補正画像に対して均等な加算演算によって画像合成を実施していた。第2の実施形態では、ぶれ補正画像に対して重み付けされた加算合成を行う形態とする。以下、第1の実施形態と異なる重み付け画像合成処理と該重み付け画像合成処理で使用される重み係数の作成方法についてのみ説明する。その他の処理については第1の実施形態と同様であるため説明を省略する。
<重み付け画像合成>
図11のフローチャートを用いて重み付け画像合成の処理方法を説明する。まず、補正画像i_n(x,y)が画像合成部に入力される(ステップS2101)。ただし、n=1,2,3とする。ステップS2101は図6(B)で示されるステップS801と同一処理である。次に、重み付け画像合成に先立って予め規定された重み係数w(n)を設定する(ステップS2102)。本実施形態では、一例としてw(1)=1/3、w(2)=1/6、w(3)=1/2とする。なお、重み付け係数の設定の詳細について後述する。次に、重み係数w(n)を用いて、次式による重み付け合成処理を実施する(ステップS2103)。
i_wo(x,y)=w(1)×i_1(x,y)+w(2)×i_2(x,y)+w(3)×i_3(x,y) … (12)。
なお、i_n(x,y)は、露光条件h_n(t)に従って補正処理された画像、i_wo(x,y)は重み付け合成後の画像である。最後に、合成画像i_wo(x,y)を出力し(ステップS2104)、重み付け画像合成処理を完了する。
図12には、図29(B)のぶれ画像に対して、露光条件h_n(t)を用いて補正処理したぶれ補正画像i_n(x,y)と重み係数w(n)によって重み付け画像合成された画像i_wo(x,y)を示している。重み付け合成画像i_wo(x,y)は、図7に示される均等な加算合成画像i_o(x,y)と比較して、更にリンギングを抑えた画像となっている。
<重み付け係数の設定>
図13のフローチャートを用いて重み付け係数の設定方法を説明する。図13は図11のステップS2102に相当する。まず、図9で説明した露光条件の設定方法により規定された露光条件が入力される(ステップS2301)。ここでは、異なる3種類の露光条件h_1(t)、h_2(t)、h_3(t)が入力される場合について説明する。なお、tは時刻を表す。次に、入力された露光条件から補正関数を作成する(ステップS2302)。補正関数の生成については図4で既述した処理方法を採用する。生成された各露光条件に対応する補正関数をH_1(u,v)、H_2(u,v)、H_3(u,v)とする。次に、重み係数を決定する際に用いるテスト画像i_test(x,y)が入力される(ステップS2303)。本発明の第1の実施形態と同様に、図29(D)に示される画像をテスト画像として用いる。テスト画像が入力されると、ステップS2302で生成した補正関数を用いて画像補正を実施する(ステップS2304)。画像補正の処理方法は図6(A)の通りであり、詳細については既に説明をしたので省略する。補正後の画像をそれぞれ、i_1(x,y)、i_2(x,y)、i_3(x,y)とする。次に、重み係数w(1,i)、w(2,j)、w(3)の初期値を設定する(ステップS2305)。重み係数w(1,i)、w(2,j)の初期値は1/6とする。3種類の重み係数の和は1であるとすると、重み係数w(3)は、重み係数w(1,i)、w(2,j)から一意に決定される。
w(1,i)=1/6 (i=1の場合)
w(2,j)=1/6 (j=1の場合)
w(3)=1−w(1,i)−w(2,j)
なお、i,jは変数を表す。重み係数値は1/6刻みで増加し、最大で5/6まで増加する。したがって、重み係数として選択可能な値は、1/6、2/6、3/6、4/6、5/6のいずれかとなる。続いて、設定された重み係数を次式に代入し重み付け加算による画像合成を行う(ステップS2306)。
i_wo(x,y,i,j)=w(1,i)×i_1(x,y)+w(2,j)×i_2(x,y)+w(3)×i_3(x,y) … (13)。
次に、合成画像に対する評価値eval(i,j)を算出する(ステップS2307)。ここで用いる評価値は、式(10)〜(11)で定義されるPSNRとする。次に、重み係数w(1,i)の全てに対して評価値の算出が完了したか否かを判定し(ステップS2308)、完了した場合にはステップS2310へ進む。完了していない場合には、重み係数w(1,i)を更新し(ステップS2309)、ステップS2305からステップS2308までの処理を繰り返し行う。ステップS2310では、重み係数w(2,j)の全てに対して評価値の算出が完了したか否かを判定し、完了した場合にはステップS2312へ進む。完了していない場合には、重み係数w(2,j)の更新と重み係数w(1,i)の初期化を実施し(ステップS2311)、ステップS2305からステップS2310までの処理を繰り返し行う。最後に、算出さえた評価値eval(i,j)の中から、最良な重み付け係数の組合せを求め、重み付け係数の設定が完了する。
なお、本実施形態では重み付け係数の設定を1/6、2/6、3/6、4/6、5/6の5段階としたが、その他の組合せでも差し支えない。また、本実施形態では異なる3種類の露光条件を用いた場合について重み付け係数を算出したが、露光条件の個数に準じて設定すべき重み付け係数の個数が変化することは言うまでもない。本実施形態では、図29(D)をテスト画像として使用したが、任意の画像をテスト画像として採用しても構わない。図29(D)に示されるような人物画像以外にも、風景画像、チャート等を使用しても差し支えない。また、本実施形態では、評価値としてPSNRを採用したが、その他の画像評価を採用しても構わない。最少二乗誤差、差分平均値、最大差分値等を評価値として使用しても差し支えない。
以上説明したように、第2の実施形態によれば、複数の露光条件を用いたデコンボリューション演算によって得られる複数ぶれ補正画像に対して、重み付け加算による画像合成を実施する。これにより、ぶれ補正後に発生するリンギングの度合いを制御することが可能である。合成対象となる各補正画像に乗ぜられる重み係数は、図13の手順で合成後の画像の評価が最も高く載る値が設定されていることから、第1実施形態の比べてさらに良好な画像を得ることができる。
[第3実施形態]
第1及び第2の実施形態では複数の補正画像に対して画像合成を行っていた。第2の実施形態では、画像補正が完了した複数枚の各画像の相対移動量を求めた後に画像合成を実施する。以下、第1、第2の実施形態と異なる補正画像間の相対移動量の算出方法についてのみ説明する。
<画像処理装置の構成図>
図14は、本発明の第3の実施形態である画像処理装置に適用可能な構成を示したブロック図である。本発明の第1の実施形態である画像処理装置(図1)に対して、位置補正部2401、領域抽出部2402、移動量算出部2403が追加された構成である。これらの構成要素によって、合成前の補正画像の位置合せを行って、その後に合成を行う。
図15には、本実施形態で採用するぶれ補正処理の概念図を示した。複数の撮像画像に対してぶれ補正処理を実施した後、補正画像間の相対移動量の算出を行う。最後に、求めた相対移動量に従って補正画像を移動させ、画像合成により詳細なぶれ補正を行う。図15では、一例として4種類の異なる露光条件を用いてぶれ補正処理を実施した場合を示している。
図16(A)は、各画像の相対移動量を求めた後に画像合成する処理の流れをフローチャート用いて説明するものである。ステップS2501で、図5(B)の手順で画像補正が完了した複数の画像を入力し、ステップS2502で各画像に対し、適正な領域の検出を行う。ステップS2503では、各画像間で共通する適正領域を検出する。ステップS2504では、共通領域間での位置ずれ検出を行う。検出方法の詳細は後ほど説明する。ずれ量が算出されると、ステップS2505にて、ずれ量分の補正処理を元の画像データに対して行う。例えば、2枚の画像がある場合、2枚目の画像を位置補正して、1枚目の画像位置に合わせてもよいし、その逆でも構わない。相対的な位置合わせができたところで、ステップS2506の画像合成処理を行う。画像合成処理は前述の通り加算演算によって行われる。以下、画像合成によるぶれ補正の詳細について順次説明する。
<適正領域の抽出>
図16(B)は、適正領域の抽出方法を説明するためのフローチャートである。これは、各補正画像に対して行われる処理である。図16(B)の手順は、画像データを構成する画素に順次着目して実行される。
露出がアンダー名状態で撮影された画像は,暗い部分で黒つぶれと呼ばれる階調が再現できない部分が生じる場合がある。この領域では、画像の特徴が失われているので、この領域を位置ずれ検出の対象とすると、誤判定を引き起こす可能性がある。ステップS2601では、この領域を除外するため、あらかじめ定めた閾値Tlと入力画像の着目画素の値との比較を行う。着目画素値がTlより小さければ、黒つぶれしている領域の画素とみなし、ステップS2602にて、位置ずれ検出に用いる対象から除外する。露出がオーバーな状態で撮影された画像は、明るい部分で白とびと呼ばれる階調が再現できない部分が生じる場合がある。この領域では、画像の特徴が失われているので、この領域を位置ずれ検出の対象とすると、誤判定を引き起こす可能性がある。ステップS2603では、この領域を除外するため、あらかじめ定めた閾値Thと着目画素の値との比較を行う。着目画素値がThより大きければ、白とびしている領域の画素とみなし、ステップS2602にて、位置ずれ検出に用いる対象から除外する。このようにして、閾値TlからThの範囲内にある画素のみを、ステップS2604にて適正画素とし、位置ずれ検出に用いる対象とする。ステップS2605では終了判定を行い、すべての画素の処理が終わったところで、一画面分の画像の処理を終える。判定結果は、たとえば画素毎に適正/不適正のフラグを対応付けたビットマップとして保持するなど、画像ごとに画素に関連づけて保存される。
図17(A)は、画素単位の共通領域抽出方法を説明するためのフローチャートである。これは、適正領域を求めた画像間で行う処理である。ここでは、入力画像1と入力画像2の2つの画像間での共通領域抽出処理について説明する。図17(A)の手順は、図16(B)の判定結果、たとえば判定結果を保存したビットマップを対象として行われる。その際、入力1と入力2のそれぞれの画像データに対応づけて図16(B)で保存された判定結果のビットマップに順次着目し、着目画素に対応する判定結果(たとえば適正/不適正を示すフラグ)を参照して処理は勧められる。着目画素の位置を着目位置と呼ぶことにする。まず、ステップS2701で、入力1の着目位置の画素が適正画素であるかどうかを判定する。適正画素でなければ、ステップS2702にて、位置ずれ検出に用いる対象から除外する。ステップS2702でも同様に、着目位置にある入力2の画素が適正画素であるかどうかを判定する。適正画素でなければ、ステップS2702にて、位置ずれ検出に用いる対象から除外する。したがって、着目位置にある入力1の画素と入力2の画素の両方が適正な画素である場合に限りステップS2704にて共通画素とし、位置ずれ検出に用いる対象とする。ステップS2705では終了判定を行い、すべての画素の処理が終わったところで、一組分の画像の処理を終える。判定結果は、入力画像の画素配置と関連づけて、たとえば画素毎に共通画素/除外画素を示すビットマップとして保存される。3枚の画像を用いてレンジ拡大を図る場合は、1枚目と2枚目の画像間で上記の処理を行った後、2枚目と3枚目の画像間で同様の処理を行うことになる。なお図16(B)の処理を合成される複数の画像すべてについて並列に行えば、図17(A)の処理も並列に行うことができる。こうすることで、図16(B)の出力を画像全体について保存する必要がなく、着目画素の判定結果を、図17(A)の入力として供するために保存するだけで済むので、必要なメモリ容量を小さくできる。
図17(B)は、ブロック単位の共通領域抽出方法を説明するためのフローチャートである。これは位置ずれ検出をブロック単位の処理で行う場合に、検出精度を向上させるためのもので、図17(A)で求めた共通領域よりも更に領域を狭める処理となる。図17(B)の処理対象は、図17(A)において保存した判定結果のビットマップである。なお以下ではこのビットマップについても画像と同様に画面と呼ぶ。
まずステップS2801で画面全体を一定の画素サイズのブロックに分割する。以下はブロック単位の処理となり、順次各ブロックに着目して処理が進められる。ステップS2802では、着目ブロック内に除外画素があるかどうかを判定する。着目ブロックが除外画素を含んでいる場合は、ステップS2803にて、着目ブロックを除外ブロックとする。着目ブロック内に除外画素がない場合は、ステップS2804にて、着目ブロックのサーチ範囲内に除外画素があるかどうかを判定する。サーチ範囲内に除外画素がある場合も先ほどと同様にこのブロックを除外ブロックとする。ブロック内とそのサーチ範囲内に除外画素が無い場合は、ステップS2805にて共通ブロックと判定する。ステップS2806では終了判定を行い、全ブロックに対し上記の処理が終わったところで一連の処理を終える。判定結果は、ブロック毎に関連づけて共通ブロック/除外ブロックの別が保存される。また画素毎に関連づけて保存しても良い。なおサーチ範囲とは、ブロックの動きベクトルを探索する範囲であり、ぶれの速度や合成対象の画像の撮影間隔によって動的に決定できる。もちろんぶれの速度が測定できたとしてもぶれ量を正確に決定できないので、推定されるぶれ量を中心に全方向に一定量ずらした範囲をサーチ範囲とすることが望ましい。また、ぶれの速度や合成対象の画像の撮影間隔の最大値を予め想定しおいてもよい。
<移動量の算出>
図18(A)は、位置ずれ検出方法を説明するためのフローチャートである。ここでは、ブロック毎に動きベクトルを求め、そこから画面全体の動き量をアフィンパラメータとして求める方法について説明する。ブロック毎の動きベクトルを求める際にその前処理としてステップS2901の有効ブロック判定を行う。これは正しい動きベクトルが求まらない可能性のあるブロックを除外する処理である。なお対象となるブロックは、図17(B)で共通ブロックと判定されたブロックである。詳細は後述する。ステップS2902では、着目有効ブロックについて、ブロックの動きベクトルを算出する。ここでは一般的なブロックマッチング方法について説明する。ブロックマッチング法では、マッチングの評価値としてブロック内の画素間の差分二乗和もしくは差分絶対値和を用いる。ベクトルを求める対象ブロックを参照画像のサーチ範囲内で順次動かしなら評価値を求めていく。サーチ範囲内で求めた全ての評価値の中から最小の評価値もつ位置が対称ブロックと最も相関の高い位置であり、その移動量が動きベクトルとなる。サーチ範囲を1画素ずつ求めていく方法はフルサーチと呼ばれている。これに対し、サーチ範囲を間引きながら最小の評価値を求め、次にその近傍に対して細かくサーチする方法は、ステップサーチと呼ばれている。ステップサーチは高速に動きベクトルを求める方法としてよく知られている。次にステップS2904にて、有効動きベクトル判定を行う。これは、求めた動きベクトルのうち、算出結果が正しくないと判断されるものを除外する処理である。詳細は後述する。ステップS2904で、終了判定を行い、すべてのブロックの処理が終わると、ステップS2905にて、有効な動きベクトルから、アフィンパラメータの検出を行う。
図18(B)を用いて、アフィンパラメータ検出の詳細を説明する。対象ブロックの中心座標が、(x,y)であり、動きベクトルの算出結果から参照画像におけるブロックの中心座標が(x’,y’)に移動したとすると、これらの関係は、式(14)のように表すことができる。
ここで、3×3の行列がアフィン変換行列である。行列の各要素がアフィンパラメータであり、a=1,b=0,d=0,e=1のとき、この変換は平行移動となり、cが水平方向の移動量、fが垂直方向の移動量となる。また、回転角θでの回転移動は、a=cosθ,b=−sinθ,d=sinθ,e=cosθで表すことができる。式(14)は一般化した行列の形式で式(15)のように表現することができる。
x’=A・x … (15)
ここでxとx’は1×3の行列、Aは3×3の行列である。有効な動きベクトルがn個であった場合、対象画像の座標値は、式(16)のようにn×3の行列で表現できる。
X=(x1 x2 … xn) … (16)
同様に、移動後の座標値も式(17)のようにn×3の行列で表現できる。
x’=(x1’ x2’ … xn’) … (17)
よって、n個の動きベクトルに対しては、式(18)のような表現となる。
X’=A・X … (18)
すなわち、式(18)におけるアフィン行列Aを求めれば、それが画面全体の位置ずれ量になる。式(18)を変形すると、アフィン行列は式(19)のように求まる。
A=X'・XT・(X・XT-1 … (19)
図18(A)のステップS2905ではこのアフィン行列(あるいはその要素)が求められる。この方式では、動き量が、アフィン変換のパラメータで表現できるため、カメラを保持しているときに起こるシフトぶれ以外にも、面内方向でのロールぶれや前後方向のズームぶれなどにも対応することが可能である。
ここで、有効ブロック判定方法を図19のフローチャートを用いて説明する。ブロックマッチングによりブロック間の相関を求めようとする場合、ブロック内の画像が何らかの特徴量を持っている必要がある。平坦でほとんど直流成分しか含んでいないブロックでは正しい動きベクトルを求めることはできない。逆に水平方向や垂直方向にエッジを含んでいると、マッチングがとりやすくなると考えられる。図19は、このような平坦部のブロックを除外する一手法である。ここでは1つの共通ブロックに対する処理で説明する。
まずステップS3001で、ブロック内にある水平方向の1つのラインに対し、ラインを構成する画素の最大値と最小値の差分値を算出する。たとえば、ブロックのサイズが50×50の画素で構成されているとすると、ブロック内における水平方向の50個の画素から最大値と最小値を求め、その差分値を算出する。これを水平ライン数分、すなわち50回繰り返す。そして、ステップS3003で50の差分値の中から最大の差分値を求める。ステップS3004で、あらかじめ設定したTxと最大差分値の比較を行う。最大差分値が閾値Txよりも小さければ、水平方向には特徴量を持たないブロックであるとみなし、ステップS3005にて、着目ブロックは無効ブロックとする。水平方向に特徴量を持つとみなせる場合は、垂直方向で同様の検証を行う。まず、ステップS3006で、ブロック内にある垂直方向の1つのラインに対し、最大値と最小値の差分値を算出する。つまりブロック内における垂直方向の50個の画素から最大値と最小値を求め、その差分値を算出する。これを垂直ライン数分、すなわち50回繰り返す。そして、ステップS3008で50の差分値の中から最大の差分値を求める。ステップS3009で、あらかじめ設定したTyと最大差分値の比較を行う。最大差分値が閾値Tyよりも小さければ、垂直方向には特徴量を持たないブロックであるとみなし、ステップS3005にて、着目ブロックは無効ブロックとする。水平・垂直両方向に特徴を持つブロックならば、正確なブロックマッチングが行われることが期待できるので、ステップS3010にて、着目ブロックは有効ブロックと判定する。判定結果はブロック毎に保存される。
次に、有効動きベクトル判定方法を図20のフローチャートを用いて説明する。まずは、ステップS3101にて動きベクトルを入力し、ステップS3102にて、その発生頻度を算出する。ステップS3103にて、全ての動きベクトルの発生頻度が求まるまでこの処理を繰り返し、終了するとステップS3104にて、最大発生頻度の動きベクトルを求める。次に、ステップS3105にて再度動きベクトルを入力し、ステップS3106で、この動きベクトルが最大発生頻度の動きベクトル、もしくはその近傍の動きベクトルであるかどうかの判定を行う。画面全体のぶれが、シフト(平行移動)のみである場合、各ブロックの動きベクトルは最大発生頻度の動きベクトルにほぼ一致するはずであり、ロール(回転)ぶれを伴う場合は、最大発生頻度の動きベクトルの近傍に多くの動きベクトルが発生すると考えられる。したがって、これらの値に含まれる動きベクトルは、ステップS3107にて、有効動きベクトルと判定し、これらの値から外れている動きベクトルは、ステップS3108にて無効動きベクトルと判定する。ステップS3109では、すべての動きベクトルに対して処理が終わったかどうかの判定を行い、終了までステップS3105からの処理を繰り返す。
こうして有効と判定されたn個の動きベクトルの始点を数式(16)のX、n個の動きベクトルの終点を数式(17)のX’として数式(19)に適用し、アフィン変換行列がもとめられる。求めたアフィン変換を、図16(A)のステップS2505において移動前の画像に適用することで、2つの画像間におけるぶれによるずれを補正し、位置を合わせることができる。位置あわせされた画像を図16(A)のステップS2506で合成することで、より良好な合成が象を獲ることができる。
なお、本実施形態における撮像部はデジタルカメラ、デジタルビデオでのいずれの場合でも、実施形態の機能が実現される。これは第1,第2実施形態と同様である。
以上説明したように、第3の実施形態によれば、複数のぶれ補正画像の相対移動量を位置合わせによって求めた後に、画像合成を行うことにより、より複雑なぶれ画像についても補正することが可能である。
[第4実施形態]
本実施形態では、露光条件に従って規定される開口パターンをシャッタの開閉ではなく、連続撮影して得た画像の選択(撮影画像として採用するか採用しないか)処理によって実現する。また、この振り分けパターンを露光条件(開口パターン)とする。
図23に示すように、時分割露光を利用して撮像された連続画像群に対して、複数の露光条件に従ってぶれ補正に用いる画像を選択する。それぞれ独立に画像選択処理を実施することで、異なる画像組合せを選択する。その後、選択された画像群を加算し、ぶれ補正用の画像として用いる。複数のぶれ補正した画像を合成することで、リンギングを抑制した1枚の補正画像を得る。このような画像補正方法により、複数の露光条件を加味しながら、撮影時間を短縮することが可能である。更には全ての撮像フレームを用いたぶれ補正を実現可能であり、撮影画像の有効活用という観点からも効率が良い。なお時分割露光とは、たとえば一定の露光時間の撮影を、一定の間隔で繰り返すことで実現される。これを連続撮影とも呼ぶ。
図21は、本実施形態の撮像装置に適用可能な画像処理部の構成を示したブロック図である。第1実施形態の撮像装置(図1)に対して、画像選択部3401、画像加算部2402が追加された構成である。これら構成によって、第1実施形態においては撮影によって得られている、選択された露光条件に基づく画像を、撮影した画像から合成する。
図22は、ぶれ補正全体の流れをフローチャート用いて説明するものである。まず、露光条件規定部106にて撮影時に使用する複数の露光条件を予め規定しておく(ステップS3501)。露光条件の規定処理の詳細については既述であるため、ここでの説明を割愛する。次に、露光制御部102で時分割露出を変化させ、連続撮影する(ステップS3502)。このときAD変換部104を通ってデジタル化された画像データは画像処理部105へ転送され、メモリ部107へ格納される(ステップS3503)。次に、露光条件選択部109が露光条件データベース(DB)から画像補正に用いる露光条件を選択する(ステップS3504)。画像選択部3401は、選択された露光条件に沿って、撮像された連続画像からぶれ補正に使用する画像データを選択する(ステップS3505)。次に、画像加算部3402は選択された複数枚の画像を単純加算し、画像補正に使用する1枚の画像を生成する(ステップS3506)。単純加算された画像は画像補正部111へ供給される。110は補正関数作成部であり、露光条件選択部109で選択される露光条件に基づいて、ぶれ補正の際に使用する補正関数を作成する(ステップS3507)。補正関数の作成処理の詳細については既述であるため、説明を省略する。次に、ぶれ検出部103で検出される撮影中における撮像装置の姿勢変化(ぶれ情報)を取得する(ステップS3508)。取得されたぶれ情報と前記補正関数は画像補正部111に供給され、ぶれ画像を補正する(ステップS3509)。ぶれ補正が完了した画像データは、一旦メモリ部112に蓄えられる(ステップS3510)。露光条件データベースに格納される全ての露光条件に対して画像補正が完了したか否かを判定する(ステップS3511)。全ての露光条件下での画像補正が完了していない場合には露光条件を更新し(ステップS3512)、ステップS3504からステップS3511までの処理を繰り返し行う。全ての露光条件下での画像補正が完了した場合にはステップS3513に進む。最後に、メモリ部111に格納されるぶれ補正が完了した複数枚の画像に対して加算合成処理を実施し(ステップS3513)、一連のぶれ補正処理が完了する。
なお、本実施形態では異なる3種類の露光条件を使用した場合について言及したが、使用する露光条件は3種類に限定されるものではない。2種類の露光条件を用いた場合でも、4種類以上の露光条件を用いた場合でも本実施形態が実行可能である。なお、本実施形態における撮像部はデジタルカメラ、デジタルビデオでのいずれの場合でも、実施形態の機能が実現される。
以上説明したように、第4の実施形態によれば、時分割駆動で取得した連続撮影画像から、複数の露光条件を加味した画像補正方法を実現するこができ、如いては撮影時間を短縮することが可能である。
[第5実施形態]
第1の実施形態では、予め用意したテスト画像を用い、候補となる露光条件を用いて得られる補正画像の画像回復度合いを数値的に評価することで好適な露光条件を規定していた。本実施形態では、露光条件の周波数特性に着目して好適な露光条件を規定する形態とする。以下、第1の実施形態と異なる露光条件の規定方法についてのみ説明する。その他の処理については第1の実施形態と同様であるため説明を省略する。
図24は、図1における露光条件規定部106に適用可能な構成を示したブロック図である。図8で説明した露光条件規定部に対して、評価値算出部を変更し、画像補正部111、画像入力端子1805、画像記録部1806を削除した構成である。以下、第5の実施形態における評価値算出部3701の動作について、図25に示されるフローチャートに沿って以下説明する。
まず、補正関数作成部110にて生成された補正関数が評価値算出部3701に入力される(ステップS3801)。本実施形態では、第1実施形態と同様に、露光時間T=15ms、シャッタ開口時間S=8ms、ぶれ速度v=1画像/msから導出される全6435通りの補正関数が入力される。次に、入力された全ての補正関数において周波数応答が閾値Th以下となる周波数帯域を算出する(ステップS3802)。図26には、3種類の露光条件を一次元フーリエ変換した後、その周波数応答をプロットした。横軸は周波数uを表しており、正の周波数である0≦u≦1の範囲をプロットした。縦軸は各周波数の応答値を対数表記で表し、各応答値は直流成分(u=0)の値で正規化している。ステップS3802では閾値Th=0.01と定め、Th以下となる周波数帯域を求める。図26において、露光パターン1では周波数帯域L1と周波数帯域L3で閾値Thを下回る。露光パターン2では周波数帯域L2で閾値Thを下回る。露光パターン3では閾値Thを下回る周波数帯域は存在しない。次に、入力された補正関数の中から画像補正時に使用する露光条件の個数分の組合せを設定する(ステップS3803)。本実施形態では、異なる3種類の露光条件を使用した場合の全組合せについて評価値の算出を行う。選択された3個の補正関数に対して、閾値を下回る周波数帯域が重複する周波数帯を取得する(ステップS3804)。図26に表示される3種類の補正関数から得られる周波数帯域L1、L2、L3には、重複する周波数帯域が含まれない。次に、入力された補正関数で可能な全ての組合せについて評価値の算出が終了したか否かを判定する(ステップS3805)。終了していない場合には、補正関数の組合せを更新し、ステップS3803からステップS3805の処理を繰り返し行う。全ての補正関数の組合せに対して評価値の算出が完了すると、全評価値の中から、重複する周波数帯域が最も少ない、望ましくは皆無となる補正関数の組合せを選択する(ステップS3806)。最適な補正関数の組合せが完了すると、それらに対応する露光条件を出力し、露光条件の規定処理が完了する。
以上の処理によって規定される露光条件の周波数特性(補正関数)は、補正画像に生じやすいリンギングを抑える効果がある。複数の露光条件を用いてぶれ補正処理を行うことで、1種類の露光条件では補正が不十分となる周波数帯をその他の露光条件が補うことが可能となり、好適なぶれ補正を実現することができる。
本実施形態では3種類の補正関数の組合せによる露光条件の規定処理について言及したが、使用する補正関数は3種類に限定されるものではない。2種類の補正関数を用いた場合でも、4種類以上の補正関数を用いた場合でも本実施形態5が実行可能である。
以上説明したように、第5の実施形態によれば、複数の露光条件の周波数特性を考慮することにより、1種類の露光条件では画像補正が不十分となる周波数帯をその他の露光条件が補うことが可能となる。また、露光条件の選定に際してテスト画像を使用しないため、任意の画像に対して好適な画像補正を実現できる露光条件の組合せを提供することが可能である。
[その他の実施形態]
本発明は、各実施形態について、その機能を実現するプログラムをコンピュータ(またはCPU)により実行させることによっても実現できる。プログラムは、記憶媒体によりコンピュータに提供できる。

Claims (15)

  1. 複数の露光パターンに従って被写体を撮影し、前記露光パターンに応じた複数の撮影画像を得る撮影手段と、
    前記撮影画像におけるぶれ量を検出するぶれ検出手段と、
    前記ぶれ検出手段によって検出されたぶれ量と前記露光パターンとに基づいて補正関数を作成する手段と、
    前記補正関数を前記複数の撮影画像のそれぞれに適用して複数の補正画像を得る画像補正手段と、
    前記複数の補正画像を合成する画像合成手段と
    を有することを特徴とする画像処理装置。
  2. 前記画像補正手段によって得られた各補正画像間の相対移動量を求める手段と、
    前記相対移動量を参照して前記複数の補正画像を位置あわせする位置合わせ手段とを更に有し、
    前記画像合成手段は、位置あわせされた前記複数の補正画像を合成することを特徴とする請求項1に記載の画像処理装置。
  3. 一定の露光時間および間隔で撮影した複数の撮影画像から、複数の露光パターンに従って複数の画像を選択する画像選択手段と、
    前記複数の撮影画像におけるぶれ量を検出するぶれ検出手段と、
    前記画像選択手段によって選択された複数の画像を加算合成して複数の合成画像を得る画像加算手段と、
    前記ぶれ検出手段によって検出されたぶれ量と前記露光パターンとに基づいて補正関数を作成する手段と、
    前記補正関数を前記画像加算手段によって加算合成された前記複数の合成画像に適用して複数の補正画像を得る画像補正手段と、
    前記複数の補正画像を合成する画像合成手段と
    を有することを特徴とする画像処理装置。
  4. 前記複数の露光パターンは周期性を持たないランダムパターンであることを特徴とする請求項1乃至3のいずれか一項に記載の画像処理装置。
  5. 前記複数の露光パターンは、相異なる複数の露光パターンを用いて取得した複数の画像から、前記画像補正手段によって得られた補正画像の品質を評価し、評価結果が所定評価値以上の場合における露光パターンであることを特徴とする請求項1乃至4のいずれか一項記載の画像処理装置。
  6. 前記複数の露光パターンは、各露光パターンの周波数特性の応答値が相対的に低い周波数帯に重複が発生しないように定められることを特徴とする請求項1乃至4のいずれか一項に記載の画像処理装置。
  7. 前記補正関数は点像ぼけ関数の逆フィルタであることを特徴とする請求項1乃至6のいずれか一項に記載の画像処理装置。
  8. 前記画像補正手段は、デコンボリューションにより補正を行うことを特徴とする請求項1乃至7のいずれか一項に記載の画像処理装置。
  9. 前記画像合成手段は、重み付け加算合成を行うことを特徴とする請求項1乃至8のいずれか一項に記載の画像処理装置。
  10. 複数の露光パターンに従って被写体を撮影し、前記露光パターンに応じた複数の撮影画像を得る撮影工程と、
    ぶれ検出手段によって検出された前記撮影画像のぶれ量と前記露光パターンとに基づいて補正関数を作成する工程と、
    前記補正関数を前記複数の撮影画像のそれぞれに適用して複数の補正画像を得る画像補正工程と、
    前記複数の補正画像を合成する画像合成工程と
    を有することを特徴とする画像処理方法。
  11. 前記画像補正工程によって得られた各補正画像間の相対移動量を求める工程と、
    前記相対移動量を参照して前記複数の補正画像を位置あわせする位置合わせ工程とを更に有し、
    前記画像合成工程では、位置あわせされた前記複数の補正画像を合成することを特徴とする請求項10に記載の画像処理方法。
  12. 一定の露光時間および間隔で撮影した複数の撮影画像から、複数の露光パターンに従って複数の画像を選択する画像選択工程と、
    前記画像選択工程によって選択された複数の画像を加算合成して複数の合成画像を得る画像加算工程と、
    ぶれ検出手段によって検出された前記撮影画像のぶれ量と前記露光パターンとに基づいて補正関数を作成する工程と、
    前記補正関数を前記画像加算工程によって加算合成された前記複数の合成画像に適用して複数の補正画像を得る画像補正工程と、
    前記複数の補正画像を合成する画像合成工程と
    を有することを特徴とする画像処理方法。
  13. 複数の露光パターンに従って被写体を撮影し、前記露光パターンに応じた複数の撮影画像を得る撮影手段と、
    前記撮影画像におけるぶれ量を検出するぶれ検出手段と、
    前記ぶれ検出手段によって検出されたぶれ量と前記露光パターンとに基づいて補正関数を作成する手段と、
    前記補正関数を前記複数の撮影画像のそれぞれに適用して複数の補正画像を得る画像補正手段と、
    前記複数の補正画像を合成する画像合成手段と
    してコンピュータを機能させるためのプログラム。
  14. 前記画像補正手段によって得られた各補正画像間の相対移動量を求める手段と、
    前記相対移動量を参照して前記複数の補正画像を位置あわせする位置合わせ手段としてコンピュータを更に機能させるためのプログラムであって、
    前記画像合成手段は、位置あわせされた前記複数の補正画像を合成することを特徴とする請求項13に記載のプログラム。
  15. 一定の露光時間および間隔で撮影した複数の撮影画像から、複数の露光パターンに従って複数の画像を選択する画像選択手段と、
    前記複数の撮影画像におけるぶれ量を検出するぶれ検出手段と、
    前記画像選択手段によって選択された複数の画像を加算合成して複数の合成画像を得る画像加算手段と、
    前記ぶれ検出手段によって検出されたぶれ量と前記露光パターンとに基づいて補正関数を作成する手段と、
    前記補正関数を前記画像加算手段によって加算合成された前記複数の合成画像に適用して複数の補正画像を得る画像補正手段と、
    前記複数の補正画像を合成する画像合成手段と
    してコンピュータを機能させるためのプログラム。
JP2009265532A 2009-11-20 2009-11-20 画像処理方法および画像処理装置、プログラム Withdrawn JP2011109619A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009265532A JP2011109619A (ja) 2009-11-20 2009-11-20 画像処理方法および画像処理装置、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009265532A JP2011109619A (ja) 2009-11-20 2009-11-20 画像処理方法および画像処理装置、プログラム

Publications (1)

Publication Number Publication Date
JP2011109619A true JP2011109619A (ja) 2011-06-02

Family

ID=44232578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009265532A Withdrawn JP2011109619A (ja) 2009-11-20 2009-11-20 画像処理方法および画像処理装置、プログラム

Country Status (1)

Country Link
JP (1) JP2011109619A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012017662A1 (ja) * 2010-08-05 2012-02-09 パナソニック株式会社 画像復元装置および画像復元方法
JP2016083342A (ja) * 2014-10-27 2016-05-19 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited 生理学的パラメータの推定
JP2016163064A (ja) * 2015-02-26 2016-09-05 国立大学法人 鹿児島大学 撮像装置、電子透かしの抽出方法、電子透かし及び開閉パターンの最適化方法
JPWO2016163248A1 (ja) * 2015-04-09 2018-02-01 ソニー株式会社 撮像装置および方法、電子機器、並びに車載用電子機器
CN117635506A (zh) * 2024-01-24 2024-03-01 成都航天凯特机电科技有限公司 一种基于AI赋能Mean Shift算法的图像增强方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012017662A1 (ja) * 2010-08-05 2012-02-09 パナソニック株式会社 画像復元装置および画像復元方法
JP2012039326A (ja) * 2010-08-05 2012-02-23 Panasonic Corp 画像復元装置および画像復元方法
US8600187B2 (en) 2010-08-05 2013-12-03 Panasonic Corporation Image restoration apparatus and image restoration method
JP2016083342A (ja) * 2014-10-27 2016-05-19 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited 生理学的パラメータの推定
JP2016163064A (ja) * 2015-02-26 2016-09-05 国立大学法人 鹿児島大学 撮像装置、電子透かしの抽出方法、電子透かし及び開閉パターンの最適化方法
JPWO2016163248A1 (ja) * 2015-04-09 2018-02-01 ソニー株式会社 撮像装置および方法、電子機器、並びに車載用電子機器
CN117635506A (zh) * 2024-01-24 2024-03-01 成都航天凯特机电科技有限公司 一种基于AI赋能Mean Shift算法的图像增强方法及装置
CN117635506B (zh) * 2024-01-24 2024-04-05 成都航天凯特机电科技有限公司 一种基于AI赋能Mean Shift算法的图像增强方法及装置

Similar Documents

Publication Publication Date Title
KR101612165B1 (ko) 초고해상도 이미지 생성 방법 및 이를 구현하기 위한 비선형 디지털 필터
CN101873428B (zh) 图像处理装置及图像处理方法
US7425984B2 (en) Compound camera and methods for implementing auto-focus, depth-of-field and high-resolution functions
JP4234420B2 (ja) データ解像度を増す方法および装置
KR100911890B1 (ko) 이미지 모델의 컬러 성분의 복원을 위한 방법, 시스템,프로그램 모듈, 및 컴퓨터 프로그램 생성물
Molina et al. Bayesian multichannel image restoration using compound Gauss-Markov random fields
JP2010239290A (ja) 撮像装置
EP2528320A1 (en) Image processing device, imaging device, program, and image processing method
JP2014007730A (ja) 情報処理方法および装置、プログラム。
JP2020144489A (ja) 画像処理方法、画像処理装置、プログラム、学習済みモデルの製造方法、および、画像処理システム
EP2731334A1 (en) Image pickup apparatus and image generating method
KR101813292B1 (ko) 이미지 개선 방법
JP2011109619A (ja) 画像処理方法および画像処理装置、プログラム
WO2011137140A1 (en) Range measurement using a coded aperture
CN102224524B (zh) 图像处理装置以及图像处理方法
US20130039600A1 (en) Image data processing techniques for highly undersampled images
CN110490196A (zh) 主体检测方法和装置、电子设备、计算机可读存储介质
Lv et al. An integrated enhancement solution for 24-hour colorful imaging
Chang et al. Beyond camera motion blur removing: How to handle outliers in deblurring
Lin et al. Motion blur removal and its application to vehicle speed detection
JP5843599B2 (ja) 画像処理装置および撮像装置並びにその方法
JP2017208642A (ja) 圧縮センシングを用いた撮像装置、撮像方法および撮像プログラム
CN113793282A (zh) 一种空间相机传函测试图像莫尔条纹模糊去除方法
Breier et al. Color filter arrays revisited—evaluation of Bayer pattern interpolation for industrial applications
Guissin et al. IRISIM: infrared imaging simulator

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130205