(57)【特許請求の範囲】
【請求項１】
対象画像について、該対象画像を撮像した撮像装置の動きに起因して生じる、基準画像とのずれを補正する補正量を出力する画像処理装置であって、
前記対象画像を複数の領域に分割する分割手段と、
前記基準画像に基づいて、前記複数の領域の各々について、該領域におけるずれを補正するための変換係数を決定する決定手段と、
前記複数の領域のうちの１つの領域について、該領域内の注目点を該領域について前記決定手段により決定された変換係数で補正する場合の第１の補正量と、前記注目点を該領域の近傍領域について決定された変換係数で補正する場合の第２の補正量との差分が、予め定められた限界量に収まるように設定した変換係数で該領域におけるずれを補正する補正量を出力する出力手段と、を有する
ことを特徴とする画像処理装置。
【請求項２】
前記出力手段は、前記第１の補正量と前記第２の補正量との差分が前記予め定められた限界量に収まらない場合に、該差分が前記予め定められた限界量に収まるような新たな変換係数を前記１つの領域に設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記出力手段は、
前記１つの領域内の複数の前記注目点について、前記第１の補正量と前記第２の補正量とをそれぞれ算出し、
前記複数の注目点の少なくとも１つについて前記第１の補正量と前記第２の補正量との差分が前記予め定められた限界量に収まらない場合に、前記複数の注目点の全てについて前記第１の補正量と前記第２の補正量との差分が前記予め定められた限界量に収まるように変換係数を前記１つの領域に設定することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記出力手段は、前記第１の補正量と前記第２の補正量との差分が前記予め定められた限界量に収まらない場合に、当該差分が前記予め定められた限界量となるように変換係数を前記１つの領域に設定することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記出力手段は、前記第１の補正量と前記第２の補正量との差分が前記予め定められた限界量に収まらない場合に、前記近傍領域について決定された変換係数に前記１つの領域の変換係数を変更することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項６】
前記決定手段は、前記複数の領域の各々について前記基準画像の対応する領域との動きベクトルを検出する検出手段を備え、
前記決定手段は、前記検出手段により検出された前記動きベクトルに基づいて前記複数の領域の各々についての変換係数を算出することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記予め定められた限界量が、前記１つの領域と前記近傍領域の各々について前記基準画像とのずれを補正した場合に、補正後の領域間において、被写体像の位置ずれが目立たないとして定められた量であることを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記近傍領域が、前記１つの領域に隣接する領域であることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記出力手段により出力された補正量を用いて、前記複数の領域の各々におけるずれを補正する補正手段をさらに有することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
対象画像について、該対象画像を撮像した撮像装置の動きに起因して生じる、基準画像とのずれを補正する補正量を出力する画像処理装置の制御方法であって、
分割手段が、前記対象画像を複数の領域に分割する分割工程と、
決定手段が、前記基準画像に基づいて、前記複数の領域の各々について、該領域におけるずれを補正するための変換係数を決定する決定工程と、
出力手段が、前記複数の領域のうちの１つの領域について、該領域内の注目点を該領域について前記決定工程において決定された変換係数で補正する場合の第１の補正量と、前記注目点を該領域の近傍領域について決定された変換係数で補正する場合の第２の補正量との差分が、予め定められた限界量に収まるように設定した変換係数で該領域におけるずれを補正する補正量を出力する出力工程と、を有する
ことを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置の動きに起因して生じる被写体像のずれを補正する技術に関する。
【背景技術】
【０００２】
今日、デジタルカメラ等の撮像装置には、撮像時のユーザの手ぶれ等による撮像装置の動きによって被写体像がぶれてしまうことを防ぐため、様々な手ぶれ補正機能が備えられていることが多い。手ぶれ補正技術には、大きく分けて光学式手ぶれ補正と電子式手ぶれ補正があり、電子式手ぶれ補正では撮像された複数の画像について被写体像のずれを画像処理によって補正している。特許文献１には、撮像された２つの画像間において、特徴パターンのマッチングを行うことにより動きベクトルを算出し、動きベクトルの方向、スカラ量に従い、一方の画像を回転及び並進移動することにより、被写体像のずれを補正する技術が開示されている。
【０００３】
また、光軸に対して下方向、即ちピッチング方向に撮像装置が傾斜した際に、被写体像において像高が高い位置で像が台形状に歪む、所謂「あおり現象」が生じることがある。このような「あおり現象」が生じた場合、被写体像のずれ量は画像内の位置によって異なるため、異なる成分を有する動きベクトルが画像内に複数検出されることになる。また、例えば撮像装置から被写体までの距離の違いによっても、撮像装置が動いた際に画像内の位置によって被写体像のずれ量が変化することがある。特許文献２には、撮像された画像を複数の領域に分割し、領域ごとに検出された動きベクトルに従って、画像を領域ごとに異なる補正量で補正することで、被写体像のずれを補正する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特登録４１７８４８１号公報
【特許文献２】特開２００９−２５８８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の特許文献２のように画像を領域ごとに異なる補正量で補正する場合、次のようなことが考えられる。画像を分割する領域数が少ない場合、検出される動きベクトルがばらつく可能性がある。即ち領域ごとに補正を行った際に、隣接する領域間で被写体像が連続せずに被写体像に位置ずれが生じてしまい、ユーザに画質劣化の印象を与えてしまうといった問題が発生する場合があった。また、画像を分割する領域を細かくした場合、検出される動きベクトルのばらつきは抑えることができるが、それぞれの領域の補正量を算出するために必要な、領域ごとのアフィン係数を算出するための計算量が増大することがある。即ち、主に手ぶれ補正が用いられる動画像の撮像において、計算量が増大することにより動画像のフレーム数の低下等を引き起こす可能性があった。
【０００６】
本発明は、このような従来技術の課題に鑑みてなされたものであり、撮像装置の動きに起因して生ずる被写体像のずれを効率的に補正できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
前述の目的を達成するために、本発明の画像処理装置は、以下の構成を備える。
対象画像について、該対象画像を撮像した撮像装置の動きに起因して生じる、基準画像とのずれを補正する補正量を出力する画像処理装置であって、対象画像を複数の領域に分割する分割手段と、基準画像に基づいて、複数の領域の各々について、該領域におけるずれを補正するための変換係数を決定する決定手段と、複数の領域のうちの１つの領域について、該領域内の注目点を該領域について決定手段により決定された変換係数で補正する場合の第１の補正量と、注目点を該領域の近傍領域について決定された変換係数で補正する場合の第２の補正量との差分が、予め定められた限界量に収まるように設定した変換係数で該領域におけるずれを補正する補正量を出力する出力手段と、を有することを特徴とする。
【発明の効果】
【０００８】
このような構成により本発明によれば、撮像装置の動きに起因して生ずる被写体像のずれを効率的に補正できるようにすることを可能とする。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係るデジタルカメラの機能構成を示したブロック図。
【図２】実施形態に係る画像処理部の機能構成を示したブロック図。
【図３】実施形態の画像の分割方法を説明するための図。
【図４】実施形態のアフィン係数の算出に係る各領域の重み付け係数を示した図。
【図５】実施形態における局所領域の注目点を示した図。
【図６】実施形態１における、補正量の差分を説明するための図。
【図７】アフィン変換部における合成処理を説明するための図。
【図８】変形例における、補正量の差分を説明するための図。
【図９】実施形態２における、領域の再分割を説明するための図。
【図１０】ブロックマッチング手法を説明するため第１の図。
【図１１】ブロックマッチング手法を説明するための第２の図。
【図１２】ブロックマッチング手法を説明するための第３の図。
【図１３】ブロックマッチング手法を説明するための第４の図。
【図１４】ブロックマッチング手法を説明するための第５の図。
【図１５】ブロックマッチング手法を説明するための第６の図。
【発明を実施するための形態】
【００１０】
（実施形態１）
以下、本発明の好適な一実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、画像処理装置の一例としての、撮像された画像において撮像装置の動きに起因して生じている被写体像のずれを、画像を分割した複数の領域ごとに補正可能なデジタルカメラに、本発明を適用した例を説明する。しかし、本発明は、入力された基準画像及び補正の対象画像において、当該画像を撮像した撮像装置の動きに起因して生じる基準画像に対する対象画像のずれを、対象画像を分割した複数の領域ごとに補正することが可能な任意の機器に適用可能である。また、本明細書において、対象画像における「局所領域」とは、当該対象画像を分割した領域のうち、撮像において所謂「あおり現象」が発生した場合に、被写体像のずれが顕著に現れるであろう対象画像の四隅に位置する領域として予め定められているものとする。しかしながら、本発明において局所領域として設定する領域は、対象画像の四隅に限らず、任意の領域が設定可能であってよい。
【００１１】
なお、本明細書において、「被写体像のずれ」とは、補正の対象となる画像と基準画像との間で生じている、被写体像の位置や回転のずれを表すものとして以下に説明する。また本明細書において「領域間における被写体像の位置ずれ」とは、補正の対象となる画像を複数の領域に分割し、領域ごとに位置や回転を補正した場合に得られる補正画像において、隣接する領域で被写体像が連続しない状態を表すものとする。
【００１２】
図１は、本発明の実施形態に係るデジタルカメラの機能構成を示すブロック図である。
制御部１０１は、例えばＣＰＵであり、デジタルカメラ１００が備える各ブロックの動作プログラムをＲＯＭ１０２より読み出し、ＲＡＭ１０３に展開して実行することによりデジタルカメラ１００が備える各ブロックの動作を制御する。ＲＯＭ１０２は、書き換え可能な不揮発性メモリであり、デジタルカメラ１００が備える各ブロックの動作プログラムに加え、例えば画像の分割数等、各ブロックの動作に必要なパラメータ等を記憶する。ＲＡＭ１０３は、書き換え可能な揮発性メモリであり、デジタルカメラ１００が備える各ブロックの動作において出力されたデータの一時的な記憶領域として用いられる。本実施形態ではＲＡＭ１０３には、撮像装置の動きに起因して生じている対象画像における被写体像のずれを検出するために必要となる基準画像や、補正前の対象画像等が一時的に記憶される。
【００１３】
撮像部１０５は、例えばＣＣＤやＣＭＯＳセンサ等の撮像素子であり、光学系１０４により撮像素子に結像された光学像を光電変換し、得られたアナログ画像信号をＡ／Ｄ変換部１０６に出力する。Ａ／Ｄ変換部１０６は、入力されたアナログ画像信号にＡ／Ｄ変換処理を適用し、得られたデジタル画像データ（画像データ）をＲＡＭ１０３に出力して記憶させる。
【００１４】
本実施形態のデジタルカメラにおいて、撮像して得られた画像データにおける、撮像時にデジタルカメラ１００の動きにより生じた被写体像のずれを補正する補正処理は、画像処理部１０７で行う。図２は、画像処理部１０７の内部構成を示したブロック図である。画像処理部１０７には、撮像時にデジタルカメラ１００の動きにより生じた被写体像のずれを検出するために、当該ずれを検出する補正の対象画像と、補正の基準となる基準画像とが入力される。なお、基準画像及び対象画像は、制御部１０１によりＲＡＭ１０３より読み出されて画像処理部１０７に入力されるものとする。
【００１５】
画像分割部２０１は、入力された画像を予め定められた大きさの領域に分割する。本実施形態では、例えば入力された画像の画素数が4000×3000である場合、図３に示すような500×500の画素数の矩形領域に分割するものとする。なお、本実施形態において、画像分割部２０１に入力される画像は、当該画像の中心を原点とした座標系をとることにより補正量の算出を行うものとする。座標系は、画像の下方向がｙの正方向、画像の右方向がｘの正方向となるように構成され、当該画像は画像の中心を中心として、右下に位置する区画から時計回りに第１〜第４象限となる。
【００１６】
動きベクトル検出部２０２は、画像分割部２０１で分割された領域ごとに、対象画像における被写体像の動きベクトルを検出する。具体的には、動きベクトル検出部２０２は基準画像と対象画像の近傍の領域における被写体像を比較する、例えば特許文献２と同様のブロックマッチング手法により、画像間の同一パターンの画像の移動から動きベクトルを検出する。
【００１７】
図１０乃至図１５は、特許文献２で開示されているブロックマッチング手法の概要を説明するための図である。ここで説明するブロックマッチング手法においては、例えば、図１０（ａ）に示すように、基準画像としてのターゲットフレーム１０００について、それぞれ水平方向の複数画素および垂直方向の複数ライン分からなる所定の大きさの矩形領域のブロック（ターゲットブロック）１００１を想定する。
【００１８】
ブロックマッチングにおいては、ターゲットブロック１００１と相関性の高いブロックを、図１０（ｂ）に示すような対象画像としての参照フレーム１０１０の中から検索する。この検索の結果、相関性が最も高いとして参照フレーム１０１０内に検出された参照ブロック１０１２が得られ、当該ブロックを動き補償ブロックと呼ぶ。なお、ターゲットブロック１００１と動き補償ブロック１０１２（相関性が最も高い参照ブロック）との間の位置ずれ量が、動きベクトル検出部２０２において検出される動きベクトルである。
【００１９】
ターゲットブロック１００１と動き補償ブロック１０１２との間の位置ずれ（位置ずれ量と位置ずれ方向を含む）に対応する動きベクトル１０１３は、参照フレーム１０１０において、ターゲットフレーム１０００の各ターゲットブロック１００１の位置と同じ位置に、ターゲットブロック１００１の射影イメージブロック１０１１を想定したとき、このターゲットブロックの射影イメージブロック１０１１の位置（例えば中心位置）と、動き補償ブロック１０１２の位置（例えば中心位置）との間の位置ずれに相当し、位置ずれ量と位置ずれの方向成分も有するものである。
【００２０】
ブロックマッチング処理の概要を説明する。図１１において、参照フレーム１０１０において、ターゲットフレーム１０００のターゲットブロック１００１の位置と同じ位置に、ターゲットブロック１００１の射影イメージブロック１０１１を点線で示している。当該射影イメージブロック１０１１の中心の座標を、動き検出の原点１０１４とする。そして、動きベクトル１０１３が、動き検出の原点１０１４から所定の範囲内に存在すると仮定し、この動き検出の原点１０１４を中心した所定の範囲を、図１１に一点鎖線で示すようなサーチ範囲１０１５として設定する。
【００２１】
次に、ターゲットブロック１００１と同じ大きさのブロック（参照ブロックという）１０１７を参照フレーム１０１０において設定する。そして、この参照ブロック１０１７の位置を、設定されたサーチ範囲１０１５内において、例えば水平方向および垂直方向に、１画素または複数画素単位で移動させるようにする。したがって、サーチ範囲１０１５においては、複数個の参照ブロック１０１７が設定されることになる。
【００２２】
ここで、参照ブロック１０１７を、サーチ範囲１０１５内を移動させるとは、動き検出原点１０１４がターゲットブロックの中心位置であるので、この例では、参照ブロック１０１７の中心位置を、サーチ範囲１０１５内で移動させることを意味する。なお、参照ブロック１０１７を構成する画素は、サーチ範囲１０１５よりもはみ出すことがある。
【００２３】
そして、サーチ範囲１０１５について設定される各参照ブロック１０１７に対して、当該各参照ブロック１０１７とターゲットブロック１００１との位置ずれ量および位置ずれ方向を表すベクトル（参照ベクトルという）１０１６（図１１参照）を設定し、それぞれの参照ベクトル１０１６が指し示す位置にある参照ブロック１０１７の画像内容と、ターゲットブロック１００１の画像内容との相関性を評価する。
【００２４】
参照ベクトル１０１６は、図１２に示すように、参照ブロック１０１７の水平方向（Ｘ方向）の位置ずれ量Ｖｘとし、垂直方向（Ｙ方向）の位置ずれ量をＶｙとしたとき、ベクトル（Ｖｘ，Ｖｙ）と表すことができる。参照ブロック１０１７の位置座標（例えば中心位置座標）とターゲットブロック１００１の位置座標（例えば中心位置座標）とが同じときには、参照ベクトル１０１６は、ベクトル（０，０）と表す。
【００２５】
例えば、参照ブロック１０１７が、ターゲットブロック１００１の位置から、Ｘ方向に１画素ずれた位置にある場合、参照ベクトル１０１６はベクトル（１，０）となる。また、図１３に示すように、参照ブロック１０１７が、ターゲットブロック１００１の位置から、Ｘ方向に３画素、Y方向に２画素ずれた位置にある場合には、参照ベクトル１０１６はベクトル（３，２）となる。
【００２６】
つまり、参照ベクトル１０１６は、図１３に示すように、対応する各参照ブロック１０１７とターゲットブロック１００１との間での位置ずれ（位置ずれ量と位置ずれの方向を含むベクトルとなる）を意味する。なお、図１３では、ターゲットブロック１００１の射影イメージブロック１０１１および参照ブロック１０１７の位置を、それぞれのブロックの中心位置としている。
【００２７】
参照ブロック１０１７は、当該参照ブロック１０１７の中心位置がサーチ範囲１０１５内にあるように移動させられる。参照ブロック１０１７は、水平方向および垂直方向の複数画素からなるので、ターゲットブロック１００１とブロックマッチング処理される対象となる、参照ブロック１０１７の最大移動範囲は、図１３に示すように、サーチ範囲１０１５よりも広いマッチング処理範囲１０１８となる。
【００２８】
そして、ターゲットブロック１００１の画像内容との相関が最も強いとして検出された参照ブロック１０１７の位置を、ターゲットフレーム１０００のターゲットブロック１００１についての、参照フレーム１０１０内の位置（動いた後の位置）として検出する。このように検出された参照ブロックを、前述した動き補償ブロック１０１２とする。そして、検出された動き補償ブロック１０１２の位置と、ターゲットブロック１００１の位置との間の位置ずれ量を、方向成分を含む量としての動きベクトル１０１３として検出する。
【００２９】
ここで、ターゲットブロック１００１と、サーチ範囲１０１５において移動する参照ブロック１０１７との相関の強さを表す相関値は、基本的にはターゲットブロック１００１と参照ブロック１０１７との対応する画素値を用いて算出される。その算出方法としては、自乗平均を用いる方法やその他種々の方法が提案されている。
【００３０】
動きベクトルを算出する際に一般的に用いられる相関値としては、例えば、ターゲットブロック１００１内の各画素の輝度値と、参照ブロック１０１５内の対応する各画素の輝度値との差分の絶対値の、ブロック内の全画素についての総和が用いられる（図１４参照）。この差分の絶対値の総和は、差分絶対値和ＳＡＤ（Sum of Absolute Difference）値と呼ばれる。
【００３１】
相関値としてＳＡＤ値が用いられる場合、ＳＡＤ値が小さいほど相関が強いものとされる。したがって、サーチ範囲１０１５において移動する参照ブロック１０１７のうち、ＳＡＤ値が最小となる位置の参照ブロック１０１７が最も相関が強い最強相関参照ブロックとなる。この最強相関参照ブロックが、動き補償ブロック１０１２として検出され、その検出された動き補償ブロック１０１２のターゲットブロック１００１の位置に対する位置ずれ量が動きベクトルとして検出される。
【００３２】
前述したように、ブロックマッチングでは、サーチ範囲１０１５において設定される複数個の参照ブロック１０１７のそれぞれの、ターゲットブロック１００１の位置に対する位置ずれ量は、方向成分を含む量としての参照ベクトル１０１６で表現される。各参照ブロック１０１７の参照ベクトル１０１６は、参照ブロック１０１７の参照フレーム１０１０上の位置に応じた値となる。
【００３３】
ブロックマッチングでは、サーチ範囲１０１５において設定される複数個の参照ブロック１０１７のそれぞれとターゲットブロック１００１との間におけるＳＡＤ値（以下、説明の簡単のため参照ブロック１０１７についてのＳＡＤ値という）を、先ず求める。
【００３４】
次に、求めたＳＡＤ値を、図１５に示すように、それぞれの参照ブロック１０１７の位置に応じた参照ベクトル１０１６のそれぞれに対応させて、メモリに記憶しておく。そして、そのメモリに記憶された全ての参照ブロックから、最小のＳＡＤ値を有する参照ブロックを検出することで、動きベクトル１０１３を検出するようにしている。なお、以下、説明の簡単のため、参照ブロック１０１７の位置に応じたベクトルを参照ブロック１０１７の参照ベクトル１０１６という。
【００３５】
サーチ範囲１０１５において設定された複数個の参照ブロック１０１７の位置に応じた参照ベクトル１０１６のそれぞれに対応させて、それぞれの参照ブロック１０１７についての相関値（この例では、ＳＡＤ値）を記憶したものを相関値テーブルと呼ぶ。この例では、相関値として差分絶対値和であるＳＡＤ値を用いるので、この相関値テーブルを、差分絶対値和テーブル（以下ＳＡＤテーブルという）と呼ぶことにする。
【００３６】
図１５のＳＡＤテーブルＴＢＬが、これを示しており、このＳＡＤテーブルＴＢＬにおいて、それぞれの参照ブロック１０１７についての相関値（この例ではＳＡＤ値）を相関値テーブル要素という。図１５においてＳＡＤ値１５０１は、参照ベクトルがベクトル（０，０）のときのＳＡＤ値である。そして、ＳＡＤ値の最小値は、図において１５０２で示した、参照ベクトルがベクトル（３，２）のときの「７」であるので、求める動きベクトル１０１３は、当該（３，２）となる。
【００３７】
なお、上述の説明において、ターゲットブロック１００１および参照ブロック１０１７の位置とは、それらのブロックの任意の特定の位置、例えば中心位置を意味するものである。参照ベクトル１０１６は、参照フレーム１０１０におけるターゲットブロック１００１の射影イメージブロック１０１１の位置と、参照ブロック１０１７の位置との間のずれ量（方向を含む）を示すものである。
【００３８】
そして、各参照ブロック１０１７に対応する参照ベクトル１０１６は、参照フレーム１０１０上において、ターゲットブロック１００１に対応する射影イメージブロック１０１１の位置からの、各参照ブロック１０１７の位置ずれとなっている。したがって、参照ブロック１０１７の位置が特定されると、その位置に対応して参照ベクトルの値も特定される。これにより、ＳＡＤテーブルのメモリにおける参照ブロックの相関値テーブル要素のアドレスが特定されると、対応する参照ベクトルが特定されることになる。
【００３９】
アフィン係数算出部２０３は、動きベクトル検出部２０２で検出された、対象画像が有する複数の領域それぞれの動きベクトルを用いて、各領域の補正に用いる座標変換係数であるアフィン係数を算出する（座標変換係数算出）。具体的には、アフィン係数算出部２０３は、局所領域として定められた対象画像の四隅の領域について、当該四隅の領域を含む２×２個の領域（図３のハッチング部）の動きベクトルを用いて、それぞれの局所領域のアフィン係数を算出する。例えば、対称画像の右下隅に位置する領域４７のアフィン係数の算出には、領域３８、３９、４６及び４７の動きベクトルが用いられる。また、アフィン係数算出部２０３は、局所領域のアフィン係数の算出に用いられていない領域のアフィン係数を、当該領域の動きベクトルから算出する。即ち、本実施形態ではアフィン係数算出部２０３は、第１〜第４象限のそれぞれに存在する局所領域のアフィン係数Ａｐ１〜Ａｐ４と、当該局所領域のアフィン係数の算出に用いられなかった領域のアフィン係数Ａｐ０とを算出する。なお、アフィン係数算出手法についても例えば以下に示すような特開２００９−２５８８６８号公報で開示されている方法を使用することができる。
【００４０】
１つのターゲットブロック（領域）についての理想的な動きベクトルの水平成分をｖ、垂直成分をｗとすると、理想的な動きベクトルは、当該ターゲットブロックの中心座標（ｘ，ｙ）を用いたアフィン変換により
0005731911.tif 000002
・・・・式１
と表すことができる。ここで、ａ，ｂ，ｃ，ｄ，ｅ，ｆは、アフィン係数を示している。
【００４１】
即ち、上述した局所領域のような、複数のブロックを有する領域についてのアフィン係数は、領域内の各ブロックについて、ブロックマッチング手法により得られた動きベクトルと、当該ブロックについての理想的な動きベクトルとの間のエラー（誤差）の総和εを最小化することにより算出することができる。
【００４２】
領域内のブロックｎの中心座標を（ｘｎ，ｙｎ）とすると、当該ブロックについての理想的な動きベクトルＶｎは、式１より
0005731911.tif 000003
となる。このとき、当該ブロックｎについての誤差εｎは、ブロックｎについて得られた動きベクトル
0005731911.tif 000004
を用いて、
0005731911.tif 000005
と表すことができるため、誤差の総和εは、
0005731911.tif 000006
となる。
【００４３】
即ち、誤差の総和εを最小化するアフィン係数の推定は、例えば最小自乗法により解くことができる。即ち、
0005731911.tif 000007
より、
0005731911.tif 000008
・・・式２
ただし、
ｎはブロックの総和、
0005731911.tif 000009
が得られる。
【００４４】
式２により、アフィン係数ａ，ｂ，ｃは、
0005731911.tif 000010
と得られる。同様にアフィン係数ｄ，ｅ，ｆは
0005731911.tif 000011
ただし
0005731911.tif 000012
と得られる。
【００４５】
アフィン係数補間部２０４は、アフィン係数算出部２０３でアフィン係数が算出されなかった領域について、アフィン係数算出部２０３で算出されたアフィン係数を用いた重み付け演算により当該算出されなかった領域のアフィン係数を算出する。具体的には、第１象限については、領域３８、３９及び４６がアフィン係数の算出されなかった領域であり、当該領域に設定されている重み付け係数ａｎを用いて、例えば以下の式を用いて当該領域のアフィン係数を算出する。
0005731911.tif 000013
【００４６】
算出されなかった領域それぞれの重み付け係数αｎは、例えば図４の各領域の右上に記載されている数値となる。図４の例では、局所領域でＡｐ０の重み付けが０となるように重み付け係数が設定されており、アフィン係数が算出されなかった領域の重み付け係数はそれぞれ０．５となっている。このようにすることで、対象画像の全ての領域についてアフィン係数を演算することができる。なお、本実施形態では、上述したような方法で各領域のアフィン係数を算出するが、アフィン係数の演算はこれに限らない。
【００４７】
補正量差分算出部２０５は、局所領域に含まれる１つ注目点について、局所領域のアフィン係数を用いて算出される補正量と、局所領域の１つの近傍領域のアフィン係数を用いて算出される補正量との差分を算出する（補正量算出）。具体的には、対象画像における注目点へのベクトルを、局所領域のアフィン係数でアフィン変換して得られる移動ベクトル（局所ベクトル）と、近傍領域のアフィン係数でアフィン変換して得られる移動ベクトル（近傍ベクトル）との差分のスカラ量を算出する。上述した式１を用いると、ある点Ｕからある点Ｖへのアフィン変換式を以下のように定義することができる。
0005731911.tif 000014
【００４８】
例えば、局所領域の注目点として、図５に示す局所領域のＵ３を選択した場合について以下に述べる。なお、近傍領域のアフィン係数は、本実施形態ではＡｐ０であるものとして説明するが、近傍領域のアフィン係数はこれに限らず、例えば局所領域に隣接している領域のアフィン係数であってもよい。
【００４９】
例えばＡｐ０、Ａｐ１が以下のような行列で表される場合、
0005731911.tif 000015
Ｕ３を局所領域及び近傍領域のアフィン係数でアフィン変換して得られる局所ベクトルＶ３１及び近傍ベクトルＶ３０はそれぞれ、
0005731911.tif 000016
となる。このとき差分を表す差分ベクトルΔＶ３ｅｒｒは、
0005731911.tif 000017
であり、そのスカラ量｜ΔＶ３ｅｒｒ｜は、
0005731911.tif 000018
となる。
【００５０】
アフィン係数修正部２０６は、補正量差分算出部２０５で算出された補正量の差分が、対象画像を領域ごとに被写体像のずれを補正した場合に、補正した領域間において、被写体像の位置ずれが目立たない量として予め定められた限界量に収まるか否かを判断する。即ち、アフィン係数修正部２０６は、近傍領域で行われる補正と局所領域で行われる補正における補正量の差が、領域間で被写体像の位置ずれを許容可能な範囲に収まるか否かを判断する。このとき、補正量の差分が予め定められた限界量の範囲である場合は、局所領域について当該局所領域のアフィン係数でアフィン変換を行って補正を行ったとしても、補正後の対象画像において領域間で被写体像の位置ずれは目立ちにくいことになる。即ち、本実施形態のように補正量が大きくなることが想定される局所領域においても、被写体像のずれを精度よく補正することが可能となる。
【００５１】
一方、図６のように補正量の差分が予め定められた限界量ΔＶｔｈを超える場合は、局所領域について当該局所領域のアフィン係数でアフィン変換を行って補正を行うと、補正後の対象画像において領域間で被写体像の位置ずれが顕著に現れてしまう。このため、アフィン係数修正部２０６は、補正量の差分が予め定められた限界量に収まるように、局所領域のアフィン係数を変更する。本実施形態では、アフィン係数修正部２０６は補正量の差分が予め定められた限界量を超える場合、局所領域のアフィン係数を近傍領域のアフィン係数に変更する。このようにすることで、補正後の対象画像において被写体像のずれの補正精度は低くなるが、少なくとも領域間で被写体像の位置ずれが存在しない補正画像を得ることができる。なお、アフィン係数修正部２０６は局所領域のアフィン係数を変更した後、アフィン係数補間部２０４と同じく重み付け演算を行うことにより、対象画像の全ての領域について新たなアフィン係数を設定する。
【００５２】
アフィン変換部２０７は、アフィン係数補間部２０４で算出された全ての領域のアフィン係数、またはアフィン係数修正部２０６で新たに算出された全ての領域のアフィン係数を用いて、全ての領域の補正量を算出し、対象画像の補正画像を出力する。具体的にはアフィン変換部２０７は、対象画像が有する複数の領域ごとに、当該領域のアフィン係数を用いてアフィン変換することにより画像の補正位置を算出し、領域ごとに被写体像のずれを補正する。
【００５３】
なお、アフィン変換部２０７では、領域間の被写体像の位置ずれや、領域間の並進移動による欠落画素が生じないよう、図７のように対象画像において、隣接する領域の境界部分で合成を行う。このため、アフィン変換部２０７には、それぞれの領域について、図３に示した対象画像を分割した領域の画素数よりも大きい画素数の画像が入力され、領域ごとのアフィン係数により算出された補正量分移動させる。そして隣接する領域の画像と重なりが生じている領域について、例えばそれぞれの画像を、線形的に合成率を変化させて合成することにより、領域間における被写体像の位置ずれをより目立ちにくくすることが可能となる。
【００５４】
このようにして補正された対象画像は、画像処理部１０７より出力され、記録媒体１０８に記録される。記録媒体１０８は、例えばデジタルカメラ１００が備える内部メモリや、デジタルカメラ１００に着脱可能に装着される、メモリカードやＨＤＤ等の記録装置である。なお、記録媒体１０８には、撮像した画像の被写体像のずれを補正しない場合は、Ａ／Ｄ変換部１０６から出力された画像データに対し、所定の変換処理や符号化処理が適用されて記録されればよい。
【００５５】
以上説明したように、本実施形態の画像処理装置は、入力された基準画像と対象画像のうち、対象画像を撮像した撮像装置の動きに起因して生じる、基準画像に対する対象画像のずれを補正することができる。具体的には画像処理装置は、対象画像を複数の領域に分割し、当該複数の領域のうちの少なくとも１つの領域を局所領域として設定する。また画像処理装置は、複数の領域ごとに座標変換係数を算出し、局所領域の少なくとも１つの注目点について、局所領域及び当該局所領域の近傍領域についての座標変換係数を用いて対象画像のずれを補正した場合の補正量をそれぞれ算出する。そして、局所領域の座標変換係数から得られた補正量と、近傍領域の座標変換係数から得られた補正量との差分が予め定められた限界量に収まっているかを判断する。このとき、補正量の差分が予め定められた限界量に収まっていない場合、補正量の差分が予め定められた限界量に収まるように、局所領域を含む複数の領域ごとの座標変換係数を再度求め、得られた新たな座標変換係数で、対象画像を領域ごとに補正する。
【００５６】
このようにすることで、計算量の増加や、画像内において被写体像が不連続となるような画質劣化を引き起こすことなく、被写体像のずれを補正することができる。
【００５７】
（変形例）
上述した実施形態１では、局所領域に含まれる１つの注目点について、局所領域のアフィン係数及び近傍領域のアフィン係数を用いて算出される補正量の差分により、各領域のアフィン係数を変更するか否かを判断する方法について説明した。本変形例では、局所領域に含まれる複数の注目点について算出された補正量の差分に基づいて、各領域のアフィン係数を変更するか否かを判断する形態について説明する。
【００５８】
本変形例において補正量差分算出部２０５は、図５に示すＵ０、Ｕ１、Ｕ２及びＵ３の４つの注目点について、局所領域及び近傍領域のアフィン係数を用いた場合の補正量の差分を算出する。なお、本変形例においても、局所領域の１つの近傍領域としてＡｐ０を用いるものとする。
【００５９】
このとき、アフィン係数修正部２０６は、補正量差分算出部２０５で算出された４つの注目点それぞれの補正量の差分について、少なくとも１つの注目点の補正量の差分が、予め定められた限界量に収まらない場合に、アフィン係数を再度算出する。具体的にはアフィン係数修正部２０６は、少なくとも１つの注目点の補正量の差分が予め定められた限界量を超える場合、補正量の差分が予め定められた限界量に収まるように、局所領域のアフィン係数を変更する際に、以下のようにする。アフィン係数修正部２０６は、補正量の差分が予め定められた限界量を超える注目点について、局所領域及び近傍領域のアフィン係数を用いて算出した補正量の差分が、予め定められた限界量となるように、局所領域のアフィン係数を変更する。
【００６０】
例えば、図８のように４つの注目点全てにおいて、補正量の差分ΔＶｎｅｒｒが予め定められた限界量ΔＶｔｈを超える場合を考える。なお、図の例では全ての注目点について算出される補正量の差分は同じ量であるため、全ての注目点について算出される補正量の差分がΔＶｔｈとなるように、局所領域のアフィン係数を変更すればよい。
【００６１】
具体的には、図８の例では４つの注目点Ｕ０、Ｕ１、Ｕ２及びＵ３について、それぞれ局所領域のアフィン係数でアフィン変換されて得られた局所ベクトルと、近傍領域のアフィン係数でアフィン変換されて得られた近傍ベクトルとが示されている。例えば、Ｕ０について注目すると、局所ベクトルＶ０１と近傍ベクトルＶ００は
0005731911.tif 000019
であり、このとき差分を表す差分ベクトルのスカラ量｜ΔＶ０ｅｒｒ｜は
0005731911.tif 000020
となる。ΔＶｔｈが例えば｜ΔＶ０ｅｒｒ｜の半分にあたる７１である場合、アフィン係数修正部２０６は補正量の差分がΔＶｔｈとなるように、局所ベクトルがＶ’０１となるような、局所領域のアフィン係数を計算する。同様に、Ｕ１に対してはＶ’１１、Ｕ２に対してはＶ’２１、Ｕ３に対してはＶ’３１、が局所ベクトルとなるような、局所領域のアフィン係数を計算する。具体的には、上述したアフィン係数算出手法を用いて、Ｕ０とＶ’０１、Ｕ１とＶ’１１、Ｕ２とＶ’２１、Ｕ３とＶ’３１、の４組の座標から、局所領域のアフィン係数を計算する。例えばこの場合の、局所領域のアフィン係数を計算すると、
0005731911.tif 000021
となる。なお、アフィン係数修正部２０６は局所領域のアフィン係数の変更に伴い、対象画像の全ての領域のアフィン係数を新たに算出する。
【００６２】
このようにすることで、本変形例では対象画像について、補正した領域間において、被写体像の位置ずれが目立たない範囲内（予め定められた限界量の範囲）で補正することができる。このため、領域間で被写体像の位置ずれを目立ちにくくし、かつ計算量を抑えた補正を行うことができる。
【００６３】
（実施形態２）
上述した実施形態１及び変形例では、局所領域についてのみ補正量の差分を算出することで、対象画像の各領域のアフィン係数を調整する方法について説明した。本実施形態では、局所領域のアフィン係数の算出に用いた領域のそれぞれについて、当該領域及びその隣接する領域のアフィン係数を用いて補正量の差分を算出することにより、局所領域及びその近傍領域において被写体像のずれを補正する方法について説明する。
【００６４】
図５に示すように、本実施形態において補正量差分算出部２０５は、局所領域４７のアフィン係数の算出に用いた領域３８、３９、４６及び４７について、それぞれ１つの注目点Ｕ０、Ｕ１、Ｕ２、Ｕ３の補正量の差分を算出する。具体的には、それぞれの注目点について、補正量の差分に用いられるアフィン係数の対応関係は以下になる。
0005731911.tif 000022
【００６５】
なお、注目点については上述の４点に限らず、局所領域のアフィン係数の算出に用いた領域のそれぞれに含まれる点であればよい。
【００６６】
アフィン係数修正部２０６は、上述したように４つの注目点について補正量差分算出部２０５で算出された補正量の差分が、予め定められた限界量に収まるか否かを判断する。即ち、アフィン係数修正部２０６は、局所領域のアフィン係数の算出に用いた、対象画像の四隅に位置する２×２の領域について、それぞれ隣接する領域との間に生じる補正量の差によって領域間で生じる被写体像の位置ずれが、許容範囲であるか否かを判断する。
【００６７】
このとき、少なくとも１つの領域において補正量の差分が予め定められた限界量を超えている場合、画像分割部２０１は局所領域のアフィン係数の算出に用いた領域についてのみ、例えば図９に示すように領域をさらに画素数が小さい領域に分割する。そしてアフィン係数修正部２０６は新たに分割された領域について、アフィン係数をそれぞれ算出する。このように、補正量の差分が予め定められた限界量に収まらないと判断された場合に、局所領域及びその近傍の領域をさらに細かく分割してアフィン係数を算出することにより、それぞれの領域間での補正量の差分を小さくすることが可能となる。即ち、さらに細かく分割した領域においては、隣接する領域間で補正量の差が小さくなるため、領域間における被写体像の位置ずれも目立ちにくくすることができる。
【００６８】
このようにすることで、最低限の計算量の増加で、画像内において被写体像が不連続となるような画質劣化を引き起こすことなく、被写体像のずれを精度よく補正することができる。
【００６９】
なお、上述した実施形態１及び２、及び変形例において、基準画像及び対象画像の２つの画像において被写体像の動きベクトルを検出することにより、２つの画像間における被写体像のずれを補正する方法について説明したが、本発明の実施はこれに限らない。即ち、１つの基準画像に対し、複数の対象画像の動きベクトルを検出し、対象画像のそれぞれについて得られた補正画像及び基準画像を、当該画像の枚数の逆数でゲイン調整を行って全ての画像を合成する、所謂電子手ぶれ補正に本発明は適用されてもよい。
【００７０】
以上説明したように、上述した実施形態１及び２、及び変形例において示した本発明の特徴は、
（１−１）局所領域の少なくとも１つの注目点か、
（１−２）局所領域及びその近傍領域それぞれの、少なくとも１つの注目点
について、
（２−１）局所領域と近傍領域のアフィン係数か、
（２−２）注目点が存在する領域と、当該領域に隣接する領域のアフィン係数
を用いてアフィン変換を行った場合に得られる補正量の差分が、対象画像を領域ごとに被写体像のずれを補正した場合に、補正した領域間において、被写体像の位置ずれが目立たない量として予め定められた限界量に収まるか否かを判断する。このとき、補正量の差分が予め定められた限界量を超える場合、補正量の差分が予め定められた限界量に収まるように、
（３−１）局所領域のアフィン係数を近傍領域のアフィン係数に変更するか、
（３−２）補正量の差分が予め定められた限界量となるように、局所領域のアフィン係数を変更するか、
（３−３）局所領域及びその近傍領域をさらに細かく分割して、アフィン係数を補間する
ことにより、画像内において被写体像が不連続となるような画質劣化を引き起こすことなく、被写体像のずれを補正することができる。
【００７１】
なお、説明及び理解を容易にするため、実施形態１及び２、及び変形例では、上述した特徴の特定の組み合わせについて説明したが、（１）〜（３）の構成は任意の組み合わせで実装することが可能であることは容易に理解されよう。
【００７２】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005731911.tif 000023
【図２】
0005731911.tif 000024
【図３】
0005731911.tif 000025
【図４】
0005731911.tif 000026
【図５】
0005731911.tif 000027
【図６】
0005731911.tif 000028
【図７】
0005731911.tif 000029
【図８】
0005731911.tif 000030
【図９】
0005731911.tif 000031
【図１０】
0005731911.tif 000032
【図１１】
0005731911.tif 000033
【図１２】
0005731911.tif 000034
【図１３】
0005731911.tif 000035
【図１４】
0005731911.tif 000036
【図１５】
0005731911.tif 000037