説明

画像処理装置及びその制御方法

【課題】撮像装置の動きに起因して生じる被写体のずれを効率的に補正できるようにする。
【解決手段】対象画像を複数の領域に分割し、当該複数の領域のうちの少なくとも1つの領域を局所領域として設定する。また画像処理装置は、複数の領域ごとに座標変換係数を算出し、局所領域の少なくとも1つの注目点について、局所領域及び当該局所領域の近傍領域についての座標変換係数を用いて対象画像のずれを補正した場合の補正量をそれぞれ算出する。そして、局所領域の座標変換係数から得られた補正量と、近傍領域の座標変換係数から得られた補正量との差分が予め定められた限界量に収まっているかを判断する。このとき、補正量の差分が予め定められた限界量に収まっていない場合、補正量の差分が予め定められた限界量に収まるように、局所領域を含む複数の領域ごとの座標変換係数を再度求め、得られた新たな座標変換係数で、対象画像を領域ごとに補正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像装置の動きに起因して生じる被写体像のずれを補正する技術に関する。
【背景技術】
【0002】
今日、デジタルカメラ等の撮像装置には、撮像時のユーザの手ぶれ等による撮像装置の動きによって被写体像がぶれてしまうことを防ぐため、様々な手ぶれ補正機能が備えられていることが多い。手ぶれ補正技術には、大きく分けて光学式手ぶれ補正と電子式手ぶれ補正があり、電子式手ぶれ補正では撮像された複数の画像について被写体像のずれを画像処理によって補正している。特許文献1には、撮像された2つの画像間において、特徴パターンのマッチングを行うことにより動きベクトルを算出し、動きベクトルの方向、スカラ量に従い、一方の画像を回転及び並進移動することにより、被写体像のずれを補正する技術が開示されている。
【0003】
また、光軸に対して下方向、即ちピッチング方向に撮像装置が傾斜した際に、被写体像において像高が高い位置で像が台形状に歪む、所謂「あおり現象」が生じることがある。このような「あおり現象」が生じた場合、被写体像のずれ量は画像内の位置によって異なるため、異なる成分を有する動きベクトルが画像内に複数検出されることになる。また、例えば撮像装置から被写体までの距離の違いによっても、撮像装置が動いた際に画像内の位置によって被写体像のずれ量が変化することがある。特許文献2には、撮像された画像を複数の領域に分割し、領域ごとに検出された動きベクトルに従って、画像を領域ごとに異なる補正量で補正することで、被写体像のずれを補正する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特登録4178481号公報
【特許文献2】特開2009−258868号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述の特許文献2のように画像を領域ごとに異なる補正量で補正する場合、次のようなことが考えられる。画像を分割する領域数が少ない場合、検出される動きベクトルがばらつく可能性がある。即ち領域ごとに補正を行った際に、隣接する領域間で被写体像が連続せずに被写体像に位置ずれが生じてしまい、ユーザに画質劣化の印象を与えてしまうといった問題が発生する場合があった。また、画像を分割する領域を細かくした場合、検出される動きベクトルのばらつきは抑えることができるが、それぞれの領域の補正量を算出するために必要な、領域ごとのアフィン係数を算出するための計算量が増大することがある。即ち、主に手ぶれ補正が用いられる動画像の撮像において、計算量が増大することにより動画像のフレーム数の低下等を引き起こす可能性があった。
【0006】
本発明は、このような従来技術の課題に鑑みてなされたものであり、撮像装置の動きに起因して生ずる被写体像のずれを効率的に補正できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
前述の目的を達成するために、本発明の画像処理装置は、以下の構成を備える。
基準画像と対象画像とを比較し、対象画像を撮像した撮像装置の動きに起因して生じる、基準画像に対する当該対象画像のずれを、当該対象画像の領域ごとに補正する補正手段を備える画像処理装置であって、対象画像を複数の領域に分割する分割手段と、複数の領域のうち、少なくとも1つの領域を局所領域として設定する設定手段と、複数の領域ごとに座標変換係数を算出する座標変換係数算出手段と、設定手段により設定された局所領域の少なくとも1つの注目点について、座標変換係数算出手段により算出された局所領域についての座標変換係数を用いて対象画像のずれを補正した場合の補正量と、複数の領域のうちの局所領域の近傍の領域である1つの近傍領域の座標変換係数を用いて対象画像のずれを補正した場合の補正量をそれぞれ算出する補正量算出手段と、補正量算出手段により算出された、局所領域についての座標変換係数から得られた補正量と、近傍領域についての座標変換係数から得られた補正量との差分が、予め定められた限界量に収まっているか否かを判断する判断手段と、を備え、座標変換係数算出手段は、判断手段により補正量の差分が予め定められた限界量に収まっていないと判断された場合、当該補正量の差分が予め定められた限界量に収まるように、新たに複数の領域ごとの座標変換係数を求め、補正手段は、新たに算出された座標変換係数を用いて求めた複数の領域ごとの補正量を用いて、対象画像のずれを複数の領域ごとに補正することを特徴とする。
【発明の効果】
【0008】
このような構成により本発明によれば、撮像装置の動きに起因して生ずる被写体像のずれを効率的に補正できるようにすることを可能とする。
【図面の簡単な説明】
【0009】
【図1】本発明の実施形態に係るデジタルカメラの機能構成を示したブロック図。
【図2】実施形態に係る画像処理部の機能構成を示したブロック図。
【図3】実施形態の画像の分割方法を説明するための図。
【図4】実施形態のアフィン係数の算出に係る各領域の重み付け係数を示した図。
【図5】実施形態における局所領域の注目点を示した図。
【図6】実施形態1における、補正量の差分を説明するための図。
【図7】アフィン変換部における合成処理を説明するための図。
【図8】変形例における、補正量の差分を説明するための図。
【図9】実施形態2における、領域の再分割を説明するための図。
【図10】ブロックマッチング手法を説明するため第1の図。
【図11】ブロックマッチング手法を説明するための第2の図。
【図12】ブロックマッチング手法を説明するための第3の図。
【図13】ブロックマッチング手法を説明するための第4の図。
【図14】ブロックマッチング手法を説明するための第5の図。
【図15】ブロックマッチング手法を説明するための第6の図。
【発明を実施するための形態】
【0010】
(実施形態1)
以下、本発明の好適な一実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、画像処理装置の一例としての、撮像された画像において撮像装置の動きに起因して生じている被写体像のずれを、画像を分割した複数の領域ごとに補正可能なデジタルカメラに、本発明を適用した例を説明する。しかし、本発明は、入力された基準画像及び補正の対象画像において、当該画像を撮像した撮像装置の動きに起因して生じる基準画像に対する対象画像のずれを、対象画像を分割した複数の領域ごとに補正することが可能な任意の機器に適用可能である。また、本明細書において、対象画像における「局所領域」とは、当該対象画像を分割した領域のうち、撮像において所謂「あおり現象」が発生した場合に、被写体像のずれが顕著に現れるであろう対象画像の四隅に位置する領域として予め定められているものとする。しかしながら、本発明において局所領域として設定する領域は、対象画像の四隅に限らず、任意の領域が設定可能であってよい。
【0011】
なお、本明細書において、「被写体像のずれ」とは、補正の対象となる画像と基準画像との間で生じている、被写体像の位置や回転のずれを表すものとして以下に説明する。また本明細書において「領域間における被写体像の位置ずれ」とは、補正の対象となる画像を複数の領域に分割し、領域ごとに位置や回転を補正した場合に得られる補正画像において、隣接する領域で被写体像が連続しない状態を表すものとする。
【0012】
図1は、本発明の実施形態に係るデジタルカメラの機能構成を示すブロック図である。
制御部101は、例えばCPUであり、デジタルカメラ100が備える各ブロックの動作プログラムをROM102より読み出し、RAM103に展開して実行することによりデジタルカメラ100が備える各ブロックの動作を制御する。ROM102は、書き換え可能な不揮発性メモリであり、デジタルカメラ100が備える各ブロックの動作プログラムに加え、例えば画像の分割数等、各ブロックの動作に必要なパラメータ等を記憶する。RAM103は、書き換え可能な揮発性メモリであり、デジタルカメラ100が備える各ブロックの動作において出力されたデータの一時的な記憶領域として用いられる。本実施形態ではRAM103には、撮像装置の動きに起因して生じている対象画像における被写体像のずれを検出するために必要となる基準画像や、補正前の対象画像等が一時的に記憶される。
【0013】
撮像部105は、例えばCCDやCMOSセンサ等の撮像素子であり、光学系104により撮像素子に結像された光学像を光電変換し、得られたアナログ画像信号をA/D変換部106に出力する。A/D変換部106は、入力されたアナログ画像信号にA/D変換処理を適用し、得られたデジタル画像データ(画像データ)をRAM103に出力して記憶させる。
【0014】
本実施形態のデジタルカメラにおいて、撮像して得られた画像データにおける、撮像時にデジタルカメラ100の動きにより生じた被写体像のずれを補正する補正処理は、画像処理部107で行う。図2は、画像処理部107の内部構成を示したブロック図である。画像処理部107には、撮像時にデジタルカメラ100の動きにより生じた被写体像のずれを検出するために、当該ずれを検出する補正の対象画像と、補正の基準となる基準画像とが入力される。なお、基準画像及び対象画像は、制御部101によりRAM103より読み出されて画像処理部107に入力されるものとする。
【0015】
画像分割部201は、入力された画像を予め定められた大きさの領域に分割する。本実施形態では、例えば入力された画像の画素数が4000×3000である場合、図3に示すような500×500の画素数の矩形領域に分割するものとする。なお、本実施形態において、画像分割部201に入力される画像は、当該画像の中心を原点とした座標系をとることにより補正量の算出を行うものとする。座標系は、画像の下方向がyの正方向、画像の右方向がxの正方向となるように構成され、当該画像は画像の中心を中心として、右下に位置する区画から時計回りに第1〜第4象限となる。
【0016】
動きベクトル検出部202は、画像分割部201で分割された領域ごとに、対象画像における被写体像の動きベクトルを検出する。具体的には、動きベクトル検出部202は基準画像と対象画像の近傍の領域における被写体像を比較する、例えば特許文献2と同様のブロックマッチング手法により、画像間の同一パターンの画像の移動から動きベクトルを検出する。
【0017】
図10乃至図15は、特許文献2で開示されているブロックマッチング手法の概要を説明するための図である。ここで説明するブロックマッチング手法においては、例えば、図10(a)に示すように、基準画像としてのターゲットフレーム1000について、それぞれ水平方向の複数画素および垂直方向の複数ライン分からなる所定の大きさの矩形領域のブロック(ターゲットブロック)1001を想定する。
【0018】
ブロックマッチングにおいては、ターゲットブロック1001と相関性の高いブロックを、図10(b)に示すような対象画像としての参照フレーム1010の中から検索する。この検索の結果、相関性が最も高いとして参照フレーム1010内に検出された参照ブロック1012が得られ、当該ブロックを動き補償ブロックと呼ぶ。なお、ターゲットブロック1001と動き補償ブロック1012(相関性が最も高い参照ブロック)との間の位置ずれ量が、動きベクトル検出部202において検出される動きベクトルである。
【0019】
ターゲットブロック1001と動き補償ブロック1012との間の位置ずれ(位置ずれ量と位置ずれ方向を含む)に対応する動きベクトル1013は、参照フレーム1010において、ターゲットフレーム1000の各ターゲットブロック1001の位置と同じ位置に、ターゲットブロック1001の射影イメージブロック1011を想定したとき、このターゲットブロックの射影イメージブロック1011の位置(例えば中心位置)と、動き補償ブロック1012の位置(例えば中心位置)との間の位置ずれに相当し、位置ずれ量と位置ずれの方向成分も有するものである。
【0020】
ブロックマッチング処理の概要を説明する。図11において、参照フレーム1010において、ターゲットフレーム1000のターゲットブロック1001の位置と同じ位置に、ターゲットブロック1001の射影イメージブロック1011を点線で示している。当該射影イメージブロック1011の中心の座標を、動き検出の原点1014とする。そして、動きベクトル1013が、動き検出の原点1014から所定の範囲内に存在すると仮定し、この動き検出の原点1014を中心した所定の範囲を、図11に一点鎖線で示すようなサーチ範囲1015として設定する。
【0021】
次に、ターゲットブロック1001と同じ大きさのブロック(参照ブロックという)1017を参照フレーム1010において設定する。そして、この参照ブロック1017の位置を、設定されたサーチ範囲1015内において、例えば水平方向および垂直方向に、1画素または複数画素単位で移動させるようにする。したがって、サーチ範囲1015においては、複数個の参照ブロック1017が設定されることになる。
【0022】
ここで、参照ブロック1017を、サーチ範囲1015内を移動させるとは、動き検出原点1014がターゲットブロックの中心位置であるので、この例では、参照ブロック1017の中心位置を、サーチ範囲1015内で移動させることを意味する。なお、参照ブロック1017を構成する画素は、サーチ範囲1015よりもはみ出すことがある。
【0023】
そして、サーチ範囲1015について設定される各参照ブロック1017に対して、当該各参照ブロック1017とターゲットブロック1001との位置ずれ量および位置ずれ方向を表すベクトル(参照ベクトルという)1016(図11参照)を設定し、それぞれの参照ベクトル1016が指し示す位置にある参照ブロック1017の画像内容と、ターゲットブロック1001の画像内容との相関性を評価する。
【0024】
参照ベクトル1016は、図12に示すように、参照ブロック1017の水平方向(X方向)の位置ずれ量Vxとし、垂直方向(Y方向)の位置ずれ量をVyとしたとき、ベクトル(Vx,Vy)と表すことができる。参照ブロック1017の位置座標(例えば中心位置座標)とターゲットブロック1001の位置座標(例えば中心位置座標)とが同じときには、参照ベクトル1016は、ベクトル(0,0)と表す。
【0025】
例えば、参照ブロック1017が、ターゲットブロック1001の位置から、X方向に1画素ずれた位置にある場合、参照ベクトル1016はベクトル(1,0)となる。また、図13に示すように、参照ブロック1017が、ターゲットブロック1001の位置から、X方向に3画素、Y方向に2画素ずれた位置にある場合には、参照ベクトル1016はベクトル(3,2)となる。
【0026】
つまり、参照ベクトル1016は、図13に示すように、対応する各参照ブロック1017とターゲットブロック1001との間での位置ずれ(位置ずれ量と位置ずれの方向を含むベクトルとなる)を意味する。なお、図13では、ターゲットブロック1001の射影イメージブロック1011および参照ブロック1017の位置を、それぞれのブロックの中心位置としている。
【0027】
参照ブロック1017は、当該参照ブロック1017の中心位置がサーチ範囲1015内にあるように移動させられる。参照ブロック1017は、水平方向および垂直方向の複数画素からなるので、ターゲットブロック1001とブロックマッチング処理される対象となる、参照ブロック1017の最大移動範囲は、図13に示すように、サーチ範囲1015よりも広いマッチング処理範囲1018となる。
【0028】
そして、ターゲットブロック1001の画像内容との相関が最も強いとして検出された参照ブロック1017の位置を、ターゲットフレーム1000のターゲットブロック1001についての、参照フレーム1010内の位置(動いた後の位置)として検出する。このように検出された参照ブロックを、前述した動き補償ブロック1012とする。そして、検出された動き補償ブロック1012の位置と、ターゲットブロック1001の位置との間の位置ずれ量を、方向成分を含む量としての動きベクトル1013として検出する。
【0029】
ここで、ターゲットブロック1001と、サーチ範囲1015において移動する参照ブロック1017との相関の強さを表す相関値は、基本的にはターゲットブロック1001と参照ブロック1017との対応する画素値を用いて算出される。その算出方法としては、自乗平均を用いる方法やその他種々の方法が提案されている。
【0030】
動きベクトルを算出する際に一般的に用いられる相関値としては、例えば、ターゲットブロック1001内の各画素の輝度値と、参照ブロック1015内の対応する各画素の輝度値との差分の絶対値の、ブロック内の全画素についての総和が用いられる(図14参照)。この差分の絶対値の総和は、差分絶対値和SAD(Sum of Absolute Difference)値と呼ばれる。
【0031】
相関値としてSAD値が用いられる場合、SAD値が小さいほど相関が強いものとされる。したがって、サーチ範囲1015において移動する参照ブロック1017のうち、SAD値が最小となる位置の参照ブロック1017が最も相関が強い最強相関参照ブロックとなる。この最強相関参照ブロックが、動き補償ブロック1012として検出され、その検出された動き補償ブロック1012のターゲットブロック1001の位置に対する位置ずれ量が動きベクトルとして検出される。
【0032】
前述したように、ブロックマッチングでは、サーチ範囲1015において設定される複数個の参照ブロック1017のそれぞれの、ターゲットブロック1001の位置に対する位置ずれ量は、方向成分を含む量としての参照ベクトル1016で表現される。各参照ブロック1017の参照ベクトル1016は、参照ブロック1017の参照フレーム1010上の位置に応じた値となる。
【0033】
ブロックマッチングでは、サーチ範囲1015において設定される複数個の参照ブロック1017のそれぞれとターゲットブロック1001との間におけるSAD値(以下、説明の簡単のため参照ブロック1017についてのSAD値という)を、先ず求める。
【0034】
次に、求めたSAD値を、図15に示すように、それぞれの参照ブロック1017の位置に応じた参照ベクトル1016のそれぞれに対応させて、メモリに記憶しておく。そして、そのメモリに記憶された全ての参照ブロックから、最小のSAD値を有する参照ブロックを検出することで、動きベクトル1013を検出するようにしている。なお、以下、説明の簡単のため、参照ブロック1017の位置に応じたベクトルを参照ブロック1017の参照ベクトル1016という。
【0035】
サーチ範囲1015において設定された複数個の参照ブロック1017の位置に応じた参照ベクトル1016のそれぞれに対応させて、それぞれの参照ブロック1017についての相関値(この例では、SAD値)を記憶したものを相関値テーブルと呼ぶ。この例では、相関値として差分絶対値和であるSAD値を用いるので、この相関値テーブルを、差分絶対値和テーブル(以下SADテーブルという)と呼ぶことにする。
【0036】
図15のSADテーブルTBLが、これを示しており、このSADテーブルTBLにおいて、それぞれの参照ブロック1017についての相関値(この例ではSAD値)を相関値テーブル要素という。図15においてSAD値1501は、参照ベクトルがベクトル(0,0)のときのSAD値である。そして、SAD値の最小値は、図において1502で示した、参照ベクトルがベクトル(3,2)のときの「7」であるので、求める動きベクトル1013は、当該(3,2)となる。
【0037】
なお、上述の説明において、ターゲットブロック1001および参照ブロック1017の位置とは、それらのブロックの任意の特定の位置、例えば中心位置を意味するものである。参照ベクトル1016は、参照フレーム1010におけるターゲットブロック1001の射影イメージブロック1011の位置と、参照ブロック1017の位置との間のずれ量(方向を含む)を示すものである。
【0038】
そして、各参照ブロック1017に対応する参照ベクトル1016は、参照フレーム1010上において、ターゲットブロック1001に対応する射影イメージブロック1011の位置からの、各参照ブロック1017の位置ずれとなっている。したがって、参照ブロック1017の位置が特定されると、その位置に対応して参照ベクトルの値も特定される。これにより、SADテーブルのメモリにおける参照ブロックの相関値テーブル要素のアドレスが特定されると、対応する参照ベクトルが特定されることになる。
【0039】
アフィン係数算出部203は、動きベクトル検出部202で検出された、対象画像が有する複数の領域それぞれの動きベクトルを用いて、各領域の補正に用いる座標変換係数であるアフィン係数を算出する(座標変換係数算出)。具体的には、アフィン係数算出部203は、局所領域として定められた対象画像の四隅の領域について、当該四隅の領域を含む2×2個の領域(図3のハッチング部)の動きベクトルを用いて、それぞれの局所領域のアフィン係数を算出する。例えば、対称画像の右下隅に位置する領域47のアフィン係数の算出には、領域38、39、46及び47の動きベクトルが用いられる。また、アフィン係数算出部203は、局所領域のアフィン係数の算出に用いられていない領域のアフィン係数を、当該領域の動きベクトルから算出する。即ち、本実施形態ではアフィン係数算出部203は、第1〜第4象限のそれぞれに存在する局所領域のアフィン係数Ap1〜Ap4と、当該局所領域のアフィン係数の算出に用いられなかった領域のアフィン係数Ap0とを算出する。なお、アフィン係数算出手法についても例えば以下に示すような特開2009−258868号公報で開示されている方法を使用することができる。
【0040】
1つのターゲットブロック(領域)についての理想的な動きベクトルの水平成分をv、垂直成分をwとすると、理想的な動きベクトルは、当該ターゲットブロックの中心座標(x,y)を用いたアフィン変換により

・・・・式1
と表すことができる。ここで、a,b,c,d,e,fは、アフィン係数を示している。
【0041】
即ち、上述した局所領域のような、複数のブロックを有する領域についてのアフィン係数は、領域内の各ブロックについて、ブロックマッチング手法により得られた動きベクトルと、当該ブロックについての理想的な動きベクトルとの間のエラー(誤差)の総和εを最小化することにより算出することができる。
【0042】
領域内のブロックnの中心座標を(x,y)とすると、当該ブロックについての理想的な動きベクトルVは、式1より

となる。このとき、当該ブロックnについての誤差εは、ブロックnについて得られた動きベクトル

を用いて、

と表すことができるため、誤差の総和εは、

となる。
【0043】
即ち、誤差の総和εを最小化するアフィン係数の推定は、例えば最小自乗法により解くことができる。即ち、

より、

・・・式2
ただし、
nはブロックの総和、

が得られる。
【0044】
式2により、アフィン係数a,b,cは、

と得られる。同様にアフィン係数d,e,fは

ただし

と得られる。
【0045】
アフィン係数補間部204は、アフィン係数算出部203でアフィン係数が算出されなかった領域について、アフィン係数算出部203で算出されたアフィン係数を用いた重み付け演算により当該算出されなかった領域のアフィン係数を算出する。具体的には、第1象限については、領域38、39及び46がアフィン係数の算出されなかった領域であり、当該領域に設定されている重み付け係数aを用いて、例えば以下の式を用いて当該領域のアフィン係数を算出する。

【0046】
算出されなかった領域それぞれの重み付け係数αは、例えば図4の各領域の右上に記載されている数値となる。図4の例では、局所領域でAp0の重み付けが0となるように重み付け係数が設定されており、アフィン係数が算出されなかった領域の重み付け係数はそれぞれ0.5となっている。このようにすることで、対象画像の全ての領域についてアフィン係数を演算することができる。なお、本実施形態では、上述したような方法で各領域のアフィン係数を算出するが、アフィン係数の演算はこれに限らない。
【0047】
補正量差分算出部205は、局所領域に含まれる1つ注目点について、局所領域のアフィン係数を用いて算出される補正量と、局所領域の1つの近傍領域のアフィン係数を用いて算出される補正量との差分を算出する(補正量算出)。具体的には、対象画像における注目点へのベクトルを、局所領域のアフィン係数でアフィン変換して得られる移動ベクトル(局所ベクトル)と、近傍領域のアフィン係数でアフィン変換して得られる移動ベクトル(近傍ベクトル)との差分のスカラ量を算出する。上述した式1を用いると、ある点Uからある点Vへのアフィン変換式を以下のように定義することができる。

【0048】
例えば、局所領域の注目点として、図5に示す局所領域のU3を選択した場合について以下に述べる。なお、近傍領域のアフィン係数は、本実施形態ではAp0であるものとして説明するが、近傍領域のアフィン係数はこれに限らず、例えば局所領域に隣接している領域のアフィン係数であってもよい。
【0049】
例えばAp0、Ap1が以下のような行列で表される場合、

U3を局所領域及び近傍領域のアフィン係数でアフィン変換して得られる局所ベクトルV31及び近傍ベクトルV30はそれぞれ、

となる。このとき差分を表す差分ベクトルΔV3errは、

であり、そのスカラ量|ΔV3err|は、

となる。
【0050】
アフィン係数修正部206は、補正量差分算出部205で算出された補正量の差分が、対象画像を領域ごとに被写体像のずれを補正した場合に、補正した領域間において、被写体像の位置ずれが目立たない量として予め定められた限界量に収まるか否かを判断する。即ち、アフィン係数修正部206は、近傍領域で行われる補正と局所領域で行われる補正における補正量の差が、領域間で被写体像の位置ずれを許容可能な範囲に収まるか否かを判断する。このとき、補正量の差分が予め定められた限界量の範囲である場合は、局所領域について当該局所領域のアフィン係数でアフィン変換を行って補正を行ったとしても、補正後の対象画像において領域間で被写体像の位置ずれは目立ちにくいことになる。即ち、本実施形態のように補正量が大きくなることが想定される局所領域においても、被写体像のずれを精度よく補正することが可能となる。
【0051】
一方、図6のように補正量の差分が予め定められた限界量ΔVthを超える場合は、局所領域について当該局所領域のアフィン係数でアフィン変換を行って補正を行うと、補正後の対象画像において領域間で被写体像の位置ずれが顕著に現れてしまう。このため、アフィン係数修正部206は、補正量の差分が予め定められた限界量に収まるように、局所領域のアフィン係数を変更する。本実施形態では、アフィン係数修正部206は補正量の差分が予め定められた限界量を超える場合、局所領域のアフィン係数を近傍領域のアフィン係数に変更する。このようにすることで、補正後の対象画像において被写体像のずれの補正精度は低くなるが、少なくとも領域間で被写体像の位置ずれが存在しない補正画像を得ることができる。なお、アフィン係数修正部206は局所領域のアフィン係数を変更した後、アフィン係数補間部204と同じく重み付け演算を行うことにより、対象画像の全ての領域について新たなアフィン係数を設定する。
【0052】
アフィン変換部207は、アフィン係数補間部204で算出された全ての領域のアフィン係数、またはアフィン係数修正部206で新たに算出された全ての領域のアフィン係数を用いて、全ての領域の補正量を算出し、対象画像の補正画像を出力する。具体的にはアフィン変換部207は、対象画像が有する複数の領域ごとに、当該領域のアフィン係数を用いてアフィン変換することにより画像の補正位置を算出し、領域ごとに被写体像のずれを補正する。
【0053】
なお、アフィン変換部207では、領域間の被写体像の位置ずれや、領域間の並進移動による欠落画素が生じないよう、図7のように対象画像において、隣接する領域の境界部分で合成を行う。このため、アフィン変換部207には、それぞれの領域について、図3に示した対象画像を分割した領域の画素数よりも大きい画素数の画像が入力され、領域ごとのアフィン係数により算出された補正量分移動させる。そして隣接する領域の画像と重なりが生じている領域について、例えばそれぞれの画像を、線形的に合成率を変化させて合成することにより、領域間における被写体像の位置ずれをより目立ちにくくすることが可能となる。
【0054】
このようにして補正された対象画像は、画像処理部107より出力され、記録媒体108に記録される。記録媒体108は、例えばデジタルカメラ100が備える内部メモリや、デジタルカメラ100に着脱可能に装着される、メモリカードやHDD等の記録装置である。なお、記録媒体108には、撮像した画像の被写体像のずれを補正しない場合は、A/D変換部106から出力された画像データに対し、所定の変換処理や符号化処理が適用されて記録されればよい。
【0055】
以上説明したように、本実施形態の画像処理装置は、入力された基準画像と対象画像のうち、対象画像を撮像した撮像装置の動きに起因して生じる、基準画像に対する対象画像のずれを補正することができる。具体的には画像処理装置は、対象画像を複数の領域に分割し、当該複数の領域のうちの少なくとも1つの領域を局所領域として設定する。また画像処理装置は、複数の領域ごとに座標変換係数を算出し、局所領域の少なくとも1つの注目点について、局所領域及び当該局所領域の近傍領域についての座標変換係数を用いて対象画像のずれを補正した場合の補正量をそれぞれ算出する。そして、局所領域の座標変換係数から得られた補正量と、近傍領域の座標変換係数から得られた補正量との差分が予め定められた限界量に収まっているかを判断する。このとき、補正量の差分が予め定められた限界量に収まっていない場合、補正量の差分が予め定められた限界量に収まるように、局所領域を含む複数の領域ごとの座標変換係数を再度求め、得られた新たな座標変換係数で、対象画像を領域ごとに補正する。
【0056】
このようにすることで、計算量の増加や、画像内において被写体像が不連続となるような画質劣化を引き起こすことなく、被写体像のずれを補正することができる。
【0057】
(変形例)
上述した実施形態1では、局所領域に含まれる1つの注目点について、局所領域のアフィン係数及び近傍領域のアフィン係数を用いて算出される補正量の差分により、各領域のアフィン係数を変更するか否かを判断する方法について説明した。本変形例では、局所領域に含まれる複数の注目点について算出された補正量の差分に基づいて、各領域のアフィン係数を変更するか否かを判断する形態について説明する。
【0058】
本変形例において補正量差分算出部205は、図5に示すU0、U1、U2及びU3の4つの注目点について、局所領域及び近傍領域のアフィン係数を用いた場合の補正量の差分を算出する。なお、本変形例においても、局所領域の1つの近傍領域としてAp0を用いるものとする。
【0059】
このとき、アフィン係数修正部206は、補正量差分算出部205で算出された4つの注目点それぞれの補正量の差分について、少なくとも1つの注目点の補正量の差分が、予め定められた限界量に収まらない場合に、アフィン係数を再度算出する。具体的にはアフィン係数修正部206は、少なくとも1つの注目点の補正量の差分が予め定められた限界量を超える場合、補正量の差分が予め定められた限界量に収まるように、局所領域のアフィン係数を変更する際に、以下のようにする。アフィン係数修正部206は、補正量の差分が予め定められた限界量を超える注目点について、局所領域及び近傍領域のアフィン係数を用いて算出した補正量の差分が、予め定められた限界量となるように、局所領域のアフィン係数を変更する。
【0060】
例えば、図8のように4つの注目点全てにおいて、補正量の差分ΔVnerrが予め定められた限界量ΔVthを超える場合を考える。なお、図の例では全ての注目点について算出される補正量の差分は同じ量であるため、全ての注目点について算出される補正量の差分がΔVthとなるように、局所領域のアフィン係数を変更すればよい。
【0061】
具体的には、図8の例では4つの注目点U0、U1、U2及びU3について、それぞれ局所領域のアフィン係数でアフィン変換されて得られた局所ベクトルと、近傍領域のアフィン係数でアフィン変換されて得られた近傍ベクトルとが示されている。例えば、U0について注目すると、局所ベクトルV01と近傍ベクトルV00

であり、このとき差分を表す差分ベクトルのスカラ量|ΔV0err|は

となる。ΔVthが例えば|ΔV0err|の半分にあたる71である場合、アフィン係数修正部206は補正量の差分がΔVthとなるように、局所ベクトルがV’01となるような、局所領域のアフィン係数を計算する。同様に、U1に対してはV’11、U2に対してはV’21、U3に対してはV’31、が局所ベクトルとなるような、局所領域のアフィン係数を計算する。具体的には、上述したアフィン係数算出手法を用いて、U0とV’01、U1とV’11、U2とV’21、U3とV’31、の4組の座標から、局所領域のアフィン係数を計算する。例えばこの場合の、局所領域のアフィン係数を計算すると、

となる。なお、アフィン係数修正部206は局所領域のアフィン係数の変更に伴い、対象画像の全ての領域のアフィン係数を新たに算出する。
【0062】
このようにすることで、本変形例では対象画像について、補正した領域間において、被写体像の位置ずれが目立たない範囲内(予め定められた限界量の範囲)で補正することができる。このため、領域間で被写体像の位置ずれを目立ちにくくし、かつ計算量を抑えた補正を行うことができる。
【0063】
(実施形態2)
上述した実施形態1及び変形例では、局所領域についてのみ補正量の差分を算出することで、対象画像の各領域のアフィン係数を調整する方法について説明した。本実施形態では、局所領域のアフィン係数の算出に用いた領域のそれぞれについて、当該領域及びその隣接する領域のアフィン係数を用いて補正量の差分を算出することにより、局所領域及びその近傍領域において被写体像のずれを補正する方法について説明する。
【0064】
図5に示すように、本実施形態において補正量差分算出部205は、局所領域47のアフィン係数の算出に用いた領域38、39、46及び47について、それぞれ1つの注目点U0、U1、U2、U3の補正量の差分を算出する。具体的には、それぞれの注目点について、補正量の差分に用いられるアフィン係数の対応関係は以下になる。

【0065】
なお、注目点については上述の4点に限らず、局所領域のアフィン係数の算出に用いた領域のそれぞれに含まれる点であればよい。
【0066】
アフィン係数修正部206は、上述したように4つの注目点について補正量差分算出部205で算出された補正量の差分が、予め定められた限界量に収まるか否かを判断する。即ち、アフィン係数修正部206は、局所領域のアフィン係数の算出に用いた、対象画像の四隅に位置する2×2の領域について、それぞれ隣接する領域との間に生じる補正量の差によって領域間で生じる被写体像の位置ずれが、許容範囲であるか否かを判断する。
【0067】
このとき、少なくとも1つの領域において補正量の差分が予め定められた限界量を超えている場合、画像分割部201は局所領域のアフィン係数の算出に用いた領域についてのみ、例えば図9に示すように領域をさらに画素数が小さい領域に分割する。そしてアフィン係数修正部206は新たに分割された領域について、アフィン係数をそれぞれ算出する。このように、補正量の差分が予め定められた限界量に収まらないと判断された場合に、局所領域及びその近傍の領域をさらに細かく分割してアフィン係数を算出することにより、それぞれの領域間での補正量の差分を小さくすることが可能となる。即ち、さらに細かく分割した領域においては、隣接する領域間で補正量の差が小さくなるため、領域間における被写体像の位置ずれも目立ちにくくすることができる。
【0068】
このようにすることで、最低限の計算量の増加で、画像内において被写体像が不連続となるような画質劣化を引き起こすことなく、被写体像のずれを精度よく補正することができる。
【0069】
なお、上述した実施形態1及び2、及び変形例において、基準画像及び対象画像の2つの画像において被写体像の動きベクトルを検出することにより、2つの画像間における被写体像のずれを補正する方法について説明したが、本発明の実施はこれに限らない。即ち、1つの基準画像に対し、複数の対象画像の動きベクトルを検出し、対象画像のそれぞれについて得られた補正画像及び基準画像を、当該画像の枚数の逆数でゲイン調整を行って全ての画像を合成する、所謂電子手ぶれ補正に本発明は適用されてもよい。
【0070】
以上説明したように、上述した実施形態1及び2、及び変形例において示した本発明の特徴は、
(1−1)局所領域の少なくとも1つの注目点か、
(1−2)局所領域及びその近傍領域それぞれの、少なくとも1つの注目点
について、
(2−1)局所領域と近傍領域のアフィン係数か、
(2−2)注目点が存在する領域と、当該領域に隣接する領域のアフィン係数
を用いてアフィン変換を行った場合に得られる補正量の差分が、対象画像を領域ごとに被写体像のずれを補正した場合に、補正した領域間において、被写体像の位置ずれが目立たない量として予め定められた限界量に収まるか否かを判断する。このとき、補正量の差分が予め定められた限界量を超える場合、補正量の差分が予め定められた限界量に収まるように、
(3−1)局所領域のアフィン係数を近傍領域のアフィン係数に変更するか、
(3−2)補正量の差分が予め定められた限界量となるように、局所領域のアフィン係数を変更するか、
(3−3)局所領域及びその近傍領域をさらに細かく分割して、アフィン係数を補間する
ことにより、画像内において被写体像が不連続となるような画質劣化を引き起こすことなく、被写体像のずれを補正することができる。
【0071】
なお、説明及び理解を容易にするため、実施形態1及び2、及び変形例では、上述した特徴の特定の組み合わせについて説明したが、(1)〜(3)の構成は任意の組み合わせで実装することが可能であることは容易に理解されよう。
【0072】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
基準画像と対象画像とを比較し、前記対象画像を撮像した撮像装置の動きに起因して生じる、前記基準画像に対する当該対象画像のずれを、当該対象画像の領域ごとに補正する補正手段を備える画像処理装置であって、
前記対象画像を複数の前記領域に分割する分割手段と、
前記複数の領域のうち、少なくとも1つの領域を局所領域として設定する設定手段と、
前記複数の領域ごとに座標変換係数を算出する座標変換係数算出手段と、
前記設定手段により設定された前記局所領域の少なくとも1つの注目点について、前記座標変換係数算出手段により算出された前記局所領域についての座標変換係数を用いて前記対象画像のずれを補正した場合の補正量と、前記複数の領域のうちの前記局所領域の近傍の領域である1つの近傍領域の座標変換係数を用いて前記対象画像のずれを補正した場合の補正量をそれぞれ算出する補正量算出手段と、
前記補正量算出手段により算出された、前記局所領域についての座標変換係数から得られた補正量と、前記近傍領域についての座標変換係数から得られた補正量との差分が、予め定められた限界量に収まっているか否かを判断する判断手段と、を備え、
前記座標変換係数算出手段は、前記判断手段により前記補正量の差分が前記予め定められた限界量に収まっていないと判断された場合、当該補正量の差分が前記予め定められた限界量に収まるように、新たに前記複数の領域ごとの座標変換係数を求め、
前記補正手段は、前記新たに算出された座標変換係数を用いて求めた前記複数の領域ごとの補正量を用いて、前記対象画像のずれを前記複数の領域ごとに補正することを特徴とする画像処理装置。
【請求項2】
前記補正量算出手段は、前記局所領域の複数の注目点について、前記局所領域についての座標変換係数を用いて前記対象画像のずれを補正した場合の補正量と、前記近傍領域についての座標変換係数を用いて前記対象画像のずれを補正した場合の補正量をそれぞれ算出するように構成され、
前記座標変換係数算出手段は、前記判断手段により、前記複数の注目点の少なくとも1つについて、前記補正量の差分が前記予め定められた限界量に収まっていないと判断された場合、全ての前記複数の注目点の前記補正量の差分が前記予め定められた限界量に収まるように、新たに前記複数の領域ごとの座標変換係数を求めることを特徴とする請求項1に記載の画像処理装置
【請求項3】
前記座標変換係数算出手段は、前記判断手段により前記補正量の差分が前記予め定められた限界量に収まっていないと判断された場合、当該補正量の差分が前記予め定められた限界量となるように、新たに座標変換係数を求めることを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記座標変換係数算出手段は、前記判断手段により前記補正量の差分が前記予め定められた限界量に収まっていないと判断された場合、前記局所領域についての座標変換係数を前記近傍領域についての座標変換係数に変更することを特徴とする請求項1または2に記載の画像処理装置。
【請求項5】
前記座標変換係数算出手段は、前記複数の領域ごとに動きベクトルを検出する検出手段を備え、
当該検出手段により検出された前記動きベクトルを用いて前記複数の領域ごとの座標変換係数を算出することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
【請求項6】
前記予め定められた限界量が、前記複数の領域ごとに当該領域ごとの座標変換係数を用いて前記対象画像のずれを補正した場合に、補正した領域間において、被写体像の位置ずれが目立たない量として定められた量であることを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
【請求項7】
前記近傍領域が、前記局所領域に隣接する領域であることを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項8】
基準画像と対象画像とを比較し、前記対象画像を撮像した撮像装置の動きに起因して生じる、前記基準画像に対する当該対象画像のずれを、当該対象画像の領域ごとに補正する補正手段を備える画像処理装置の制御方法であって、
分割手段が、前記対象画像を複数の前記領域に分割する分割工程と、
設定手段が、前記複数の領域のうち、少なくとも1つの領域を局所領域として設定する設定工程と、
座標変換係数算出手段が、前記複数の領域ごとに座標変換係数を算出する座標変換係数算出工程と、
補正量算出手段が、前記設定工程において設定された前記局所領域の少なくとも1つの注目点について、前記座標変換係数算出工程において算出された前記局所領域についての座標変換係数を用いて前記対象画像のずれを補正した場合の補正量と、前記複数の領域のうちの前記局所領域の近傍の領域である1つの近傍領域の座標変換係数を用いて前記対象画像のずれを補正した場合の補正量をそれぞれ算出する補正量算出工程と、
判断手段が、前記補正量算出工程において算出された、前記局所領域についての座標変換係数から得られた補正量と、前記近傍領域についての座標変換係数から得られた補正量との差分が、予め定められた限界量に収まっているか否かを判断する判断工程と、を備え、
前記座標変換係数算出工程において前記座標変換係数算出手段は、前記判断工程において前記補正量の差分が前記予め定められた限界量に収まっていないと判断された場合、当該補正量の差分が前記予め定められた限界量に収まるように、新たに前記複数の領域ごとの座標変換係数を求め、
前記補正手段は、前記新たに求めた座標変換係数を用いて算出された前記複数の領域ごとの補正量を用いて、前記対象画像のずれを前記複数の領域ごとに補正することを特徴とする画像処理装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−39600(P2012−39600A)
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願番号】特願2011−127658(P2011−127658)
【出願日】平成23年6月7日(2011.6.7)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】