JP2012175289A - 画像処理装置、及びその制御方法 - Google Patents
画像処理装置、及びその制御方法 Download PDFInfo
- Publication number
- JP2012175289A JP2012175289A JP2011033860A JP2011033860A JP2012175289A JP 2012175289 A JP2012175289 A JP 2012175289A JP 2011033860 A JP2011033860 A JP 2011033860A JP 2011033860 A JP2011033860 A JP 2011033860A JP 2012175289 A JP2012175289 A JP 2012175289A
- Authority
- JP
- Japan
- Prior art keywords
- image
- motion vector
- correlation value
- reference block
- images
- 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
Links
Images
Landscapes
- Studio Devices (AREA)
- Image Analysis (AREA)
Abstract
【課題】回路規模の増大を抑制しつつ、画像間の位置合わせに必要な情報の取得の効率や精度を向上させる技術を提供する。
【解決手段】基準画像分割手段により得られた基準ブロック画像の各々について自己相関パラメータを算出する、前記自己相関パラメータ算出手段と、前記基準ブロック画像の所定領域と当該基準ブロック画像に対応する合成対象ブロック画像の所定領域との複数のペアの各々について、相関値算出回路を用いて2つの前記所定領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の動きを示す動きベクトルを算出する動きベクトル算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記動きベクトルを算出する、前記動きベクトル算出手段と、を備える。
【選択図】図2
【解決手段】基準画像分割手段により得られた基準ブロック画像の各々について自己相関パラメータを算出する、前記自己相関パラメータ算出手段と、前記基準ブロック画像の所定領域と当該基準ブロック画像に対応する合成対象ブロック画像の所定領域との複数のペアの各々について、相関値算出回路を用いて2つの前記所定領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の動きを示す動きベクトルを算出する動きベクトル算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記動きベクトルを算出する、前記動きベクトル算出手段と、を備える。
【選択図】図2
Description
本発明は、画像処理装置、及びその制御方法に関する。
従来、デジタルカメラやビデオカメラ等の技術分野において、ブレを補正する技術やブレ情報を検出して所定の記録媒体に記録する技術が多く提案されている。中でも、画像処理によるブレ補正は電子ブレ補正と呼ばれる。電子ブレ補正は、画像間のブレ情報を用いて位置合わせを行うことで実現される。画像間のブレ情報は、パターンマッチング処理等により検出可能である。この際、テクスチャのある領域のみでパターンマッチング処理を行うことで、計算量を削減することができる。更に、コーナー状のテクスチャを含む領域のみでパターンマッチング処理を行うことで、ブレ情報の検出精度向上が見込まれる。
テクスチャの有無を判定する方法として、差分型フィルタによるエッジ抽出処理を利用する方法が提案されている(例えば、特許文献1)。また、複数の差分型フィルタを併用することで、コーナー上のテクスチャを判定する方法が提案されている(例えば、特許文献2)。
特許文献1及び特許文献2に記載の方法では、エッジ抽出結果を基にテクスチャの有無を判定している。このため、位置合わせ処理部とは別に、エッジを抽出するための処理部が必要となり、回路規模が大きくなるという問題があった。また、特許文献2に記載の方法では、繰り返しパターンを判定するために複数回エッジ抽出処理を行う必要がある。このため、計算時間が膨大になるという問題があった。
本発明はこのような状況に鑑みてなされたものであり、回路規模の増大を抑制しつつ、画像間の位置合わせに必要な情報の取得の効率や精度を向上させる技術を提供することを目的とする。
上記課題を解決するために、第1の本発明は、2つの画像間の相関を示す相関値を算出する相関値算出回路を備え、撮像装置により連続的に撮像された基準画像及び合成対象画像を処理する画像処理装置であって、前記基準画像を複数の基準ブロック画像に分割する基準画像分割手段と、前記合成対象画像を複数の合成対象ブロック画像に分割する合成対象画像分割手段と、前記基準ブロック画像内の2つの領域の複数のペアの各々について、前記相関値算出回路を用いて前記2つの領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像の自己相関の程度を示す自己相関パラメータを算出する自己相関パラメータ算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記自己相関パラメータを算出する、前記自己相関パラメータ算出手段と、前記基準ブロック画像の所定領域と当該基準ブロック画像に対応する前記合成対象ブロック画像の所定領域との複数のペアの各々について、前記相関値算出回路を用いて2つの前記所定領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の動きを示す動きベクトルを算出する動きベクトル算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記動きベクトルを算出する、前記動きベクトル算出手段と、を備えることを特徴とする画像処理装置を提供する。
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
以上の構成により、本発明によれば、回路規模の増大を抑制しつつ、画像間の位置合わせに必要な情報の取得の効率や精度を向上させることが可能となる。
以下、添付図面を参照して、本発明の実施形態を説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
以下の各実施形態では、本発明の画像処理装置の一例として、撮像装置(デジタルカメラ)を使用する。しかしながら、本発明の画像処理装置はデジタルカメラに限定されず、例えばパーソナルコンピュータ(PC)でも構わない。
[第1の実施形態]
●デジタルカメラ100の全体構成
図1は、第1の実施形態に係るデジタルカメラ100の全体構成を示すブロック図である。図1において、撮像部101は、撮像レンズ群と、C−MOSやCCD等の半導体撮像素子とを含む。撮像部101から出力される映像信号は、A/D変換部102によりデジタル画像に変換され、画像処理部103に入力される。画像処理部103は、入力された画像データに対してブレ補正処理を適用し、ブレ補正画像を生成する。生成されたブレ補正画像は、画像表示部104で表示されたり、画像記録部105で記録媒体に記録されたりする。
●デジタルカメラ100の全体構成
図1は、第1の実施形態に係るデジタルカメラ100の全体構成を示すブロック図である。図1において、撮像部101は、撮像レンズ群と、C−MOSやCCD等の半導体撮像素子とを含む。撮像部101から出力される映像信号は、A/D変換部102によりデジタル画像に変換され、画像処理部103に入力される。画像処理部103は、入力された画像データに対してブレ補正処理を適用し、ブレ補正画像を生成する。生成されたブレ補正画像は、画像表示部104で表示されたり、画像記録部105で記録媒体に記録されたりする。
次に、画像処理部103の構成について説明する。入力端子106は、画像処理部103の入力端子であり、A/D変換部102によりデジタル変換された画像を入力する。入力された画像は、メモリ部107に格納される。移動量算出部108は、メモリ部107から複数枚の画像を読み出し、複数枚の画像中の1枚の画像に対する、その他の画像の相対移動量(動き)を算出する。
電子ブレ補正を行う場合、撮像部101により連続的に撮像された複数枚の画像が入力端子106に入力される。移動量算出部108は、複数枚の画像中の1枚を基準画像とし、その他の画像を合成対象画像とし、基準画像に対する合成対象画像の相対移動量(動き)を算出する。
画像合成部109は、移動量算出部108から得られる相対移動量を用いて、メモリ部107から読み出した複数枚の画像を位置合わせして合成することにより、ブレ補正画像を生成する。画像合成部109は、生成されたブレ補正画像を出力端子110より出力する。移動量算出部108及び画像合成部109については後で更に詳述する。
●移動量算出部108の構成
移動量算出部108は、複数枚の画像の位置合わせに必要な情報(後述する変換パラメータ)を算出するために、基準画像のテクスチャ判定、及び、基準画像と合成対象画像との間の動きベクトル算出を行う。以下、移動量算出部108の詳細を説明する。
移動量算出部108は、複数枚の画像の位置合わせに必要な情報(後述する変換パラメータ)を算出するために、基準画像のテクスチャ判定、及び、基準画像と合成対象画像との間の動きベクトル算出を行う。以下、移動量算出部108の詳細を説明する。
図2は、移動量算出部108の詳細な構成を示すブロック図である。移動量算出部108において、テクスチャ判定部204及び動きベクトル算出部206は、それぞれテクスチャ判定処理及び動きベクトル算出処理を行うために、相関値算出回路209を共用する。移動量算出部108において、相関値算出回路209による相関値の算出(詳細は後述)は主としてハードウェアにより実行されるが、その他の処理は、ハードウェア、ソフトウェア、又はこれらの組み合わせのいずれによって実行されてもよい。また、本実施形態は、相関値算出回路209が部分的にソフトウェアによって構成されることを排除するものではない。
図2において、入力端子201は、移動量算出部108の入力端子であり、メモリ部107から読み出した複数枚の画像を入力する。基準画像選択部202は、入力端子201より入力した複数枚の画像の中から、移動量算出の基準となる画像(基準画像)を選択する。ここで、基準画像以外の画像を合成対象画像と呼ぶ。基準画像選択部202は、例えば、複数枚の画像のうち最初に撮影された画像を基準画像として選択する。
基準画像分割部203は、基準画像選択部202で選択された基準画像を複数のブロック(基準ブロック画像)に分割する。例えば、基準画像分割部203は、図3に示すように、基準画像を等間隔に分割することで複数の基準ブロック画像を生成する。この処理より、各々が幅Bx[画素]、高さBy[画素]のM*N個の基準ブロック画像が得られる。
テクスチャ判定部204は、基準画像分割部203から得られる各基準ブロック画像のテクスチャを判定し、各基準ブロック画像に対してテクスチャ量に応じた重み付けを行う。この際、テクスチャ判定部204は、テクスチャが多い基準ブロック画像ほど大きな重みをつける。テクスチャ判定部204は、テクスチャ判定処理のために、相関値算出回路209を利用する。テクスチャ判定部204については、後で更に詳述する。
合成対象画像分割部205は、基準画像選択部202で基準画像として選択されなかった画像(合成対象画像)を複数のブロック(合成対象ブロック画像)に分割する。例えば、合成対象画像分割部205は、図3に示すように、合成対象画像を基準画像と等しいサイズで等間隔に分割して合成対象ブロック画像を生成する。この処理より、幅Bx[画素]、高さBy[画素]のM*N個の合成対象ブロック画像が得られる。
動きベクトル算出部206は、基準画像分割部203から得られる基準ブロック画像と合成対象画像分割部205から得られる合成対象ブロック画像との間の相関値を算出する。そして、動きベクトル算出部206は、算出した相関値に基づき、基準ブロック画像と合成対象ブロック画像との間の動きを示す動きベクトルを算出する。この際、動きベクトル算出部206は、テクスチャ判定部204から得られる各基準ブロック画像の重みを基に、動きベクトルを算出する基準ブロック画像を選択する。動きベクトル算出部206は、動きベクトル算出処理のために、相関値算出回路209を利用する。動きベクトル算出部206については、後で更に詳述する。
変換パラメータ算出部207は、動きベクトル算出部206から得られる各基準ブロック画像の動きベクトルに基づき、基準画像と合成対象画像との間の動きを表す変換パラメータを算出する。変換パラメータは、基準画像と合成対象画像との位置合わせに利用可能である。変換パラメータ算出部207については、後で更に詳述する。
出力端子208は、変換パラメータ算出部207から得られる変換パラメータを出力する。
相関値算出回路209は、入力された2つの画像間の相関を示す相関値を算出する。例えば、相関値算出回路209は、相関値として、2つの画像の各画素の差分絶対値和(SAD)を算出する。幅X[画素]、高さY[画素]の2つの画像A,Bを想定すると、相関値(SAD)は、
により算出される。式(1)において、A(x,y),B(x,y)は、画像A,Bの座標(x,y)の画素の輝度値を示す。
により算出される。式(1)において、A(x,y),B(x,y)は、画像A,Bの座標(x,y)の画素の輝度値を示す。
なお、式(1)により算出されるSADは2画像間のSADであるため、その値が小さいほど2画像間の相関が高いことを示す。逆に、SADが大きい場合は2画像間の相関が低いことを示す。
●●テクスチャ判定部204の詳細
次に、図5を参照して、テクスチャ判定部204の詳細な構成について説明する。図5において、入力端子501は、テクスチャ判定部204の入力端子であり、基準画像分割部203から得られる基準ブロック画像を入力する。
次に、図5を参照して、テクスチャ判定部204の詳細な構成について説明する。図5において、入力端子501は、テクスチャ判定部204の入力端子であり、基準画像分割部203から得られる基準ブロック画像を入力する。
領域設定部502は、入力された基準ブロック画像から相関値を求める際に利用する2つの画像領域を設定する。例えば、領域設定部502は、図6に示すように、基準ブロック画像の全体領域、及び、基準ブロック画像の周囲1画素を除いた部分領域の、2つの領域を設定する。大きい方の領域(即ち、全体領域)の画像を大画像(第1画像)と呼び、小さい方の領域(即ち、部分領域)の画像を小画像(第2画像)と呼ぶ。領域設定部502は、大画像及び小画像を相関値取得制御部503に入力する。
相関値取得制御部503は、領域設定部502から入力された2つの画像(大画像及び小画像)に基づき、大画像の9つの部分領域(第1画像内の第2画像のサイズの領域)の画像それぞれと小画像との相関を示す9つの相関値を取得する。各部分領域の画像のサイズは、小画像のサイズに等しい。相関値取得制御部503は、部分領域の画像と小画像とのペアを相関値算出回路209に入力することにより、このペアの相関値を取得する。図7に示すように大画像の左上の座標を(0,0)とすると、9つの部分領域は、部分領域の左上の座標が(0,0)から(2,2)の範囲の部分領域として得られる。大画像Lの各部分領域の画像と小画像Sとの間のSADをSAD(p,q)(0≦p≦2,0≦q≦2)と表すと、SAD(p,q)は、
により算出される。相関値取得制御部503は、算出された9つのSADを重み算出部504に入力する。
により算出される。相関値取得制御部503は、算出された9つのSADを重み算出部504に入力する。
ところで、前述の通り相関値算出回路209による相関値の算出はハードウェアにより実行されるが、これに加えて、相関値取得制御部503の処理もハードウェアにより実行されても構わない。換言すると、相関値算出回路209が、ハードウェアにより実装される相関値取得制御部503を含んでもよい。この場合、領域設定部502は、大画像及び小画像を相関値算出回路209に入力することにより9つのSADを取得して重み算出部504に入力してもよい。
重み算出部504は、相関値取得制御部503から得られた9つのSADを基に、基準ブロック画像に対して重み付けを行う。この際、重み算出部504は、基準ブロック画像内のテクスチャが多いほど大きな重みを与える。例えば、重み算出部504は重みwを、
により算出する。ここで、kは定数である。
により算出する。ここで、kは定数である。
式(3)から理解できるように、重みwは、SAD(1,1)を除く8つのSADの最小値である。SAD(1,1)は必ず0になるため、重み算出には使用しない。残る8つのSADは、大画像の中で部分領域を中心からそれぞれ上下左右斜め方向に1画素だけずらした際の、小画像との相関を表す。テクスチャの多い基準ブロック画像は自己相関の程度が小さいため、このようにして得られるSADは比較的大きい。このように重みwを8つのSADの最小値と定義することで、コーナーを含むテクスチャを持つ基準ブロック画像に対して大きな重みを付与することができる。また、このように定義された重みwは、基準ブロック画像の自己相関の程度を示すパラメータ(自己相関パラメータ)と見なすことができ、重み算出部504では自己相関パラメータ算出が行われる。重み算出部504は、算出した重みwを出力端子505から出力する。
図4は、テクスチャ判定部204によるテクスチャ判定処理(重み算出処理)の流れを示すフローチャートである。S400で、領域設定部502は、基準画像分割部203から複数の基準ブロック画像を取得する。S401で、領域設定部502は、複数の基準ブロック画像から最初の基準ブロック画像を選択する。S402で、領域設定部502は、選択した基準ブロック画像から相関値算出に用いる2つの領域を設定し、各領域の画像(大画像及び小画像)を相関値取得制御部503に出力する。S403で、相関値取得制御部503は、相関値算出回路209を用いて、大画像及び小画像に関する9つのSADを算出する(式(2)参照。但し、SAD(1,1)の算出は省略可能)。S404で、重み算出部504は、式(3)に従って重みを算出する。S405で、テクスチャ判定部204は、全ての基準ブロック画像が選択されたか否かを判定する。まだ選択されていない基準ブロック画像が残っている場合、S406で、領域設定部502は次の基準ブロック画像を選択し、この基準ブロック画像についてS402乃至S404の処理が繰り返される。全ての基準ブロック画像が選択されると、S407で、重み算出部504は各基準ブロック画像の重みを出力する。以上の処理により、基準画像の各基準ブロック画像それぞれについて、重みが得られる。
●●動きベクトル算出部206の詳細
次に、図9を参照して、動きベクトル算出部206による動きベクトル算出処理の詳細について説明する。本実施形態では、動きベクトル算出部206は、重みが閾値未満の基準ブロック画像については重みベクトルの算出を省略する。基準ブロック画像の重みが閾値未満であるということは、換言すると、その基準ブロック画像の自己相関の程度が閾値より大きいということである。
次に、図9を参照して、動きベクトル算出部206による動きベクトル算出処理の詳細について説明する。本実施形態では、動きベクトル算出部206は、重みが閾値未満の基準ブロック画像については重みベクトルの算出を省略する。基準ブロック画像の重みが閾値未満であるということは、換言すると、その基準ブロック画像の自己相関の程度が閾値より大きいということである。
S900で、動きベクトル算出部206は、基準画像分割部203から複数の基準ブロック画像を、合成対象画像分割部205から複数の合成対象ブロック画像を、テクスチャ判定部204から各基準ブロック画像の重みを、それぞれ取得する。S901で、動きベクトル算出部206は、最初のブロック(基準ブロック画像及び対応する合成対象ブロック画像)を選択する。S902で、動きベクトル算出部206は、選択した基準ブロック画像の重みが閾値以上であるか否か(即ち、テクスチャを多く含むか否か)を判定する。重みが閾値未満の場合、テクスチャが少ないと考えられるので、この基準ブロック画像に対する動きベクトルの算出は省略される。即ち、処理はS903に進み、動きベクトル算出部206は次のブロックを選択し、S902の判定を繰り返す。
一方、重みが閾値以上の場合は、テクスチャが多いと考えられるので、動きベクトル算出部206はS904で、動きベクトルを算出する。具体的には、動きベクトル算出部206は、基準ブロック画像の所定領域と対応する合成対象ブロック画像の所定領域との複数のペアの各々について、各ペアの画像を相関値算出回路209に入力することにより、SADを算出する。そして、動きベクトル算出部206は、算出されたSADに基づいて動きベクトルを算出する。例えば、動きベクトル算出部206は、最小のSADを持つペア(即ち、相関が最大のペア)の2つの所定領域間のベクトルを、基準ブロック画像とこれに対応する合成対象ブロック画像との間の動きを示す動きベクトルとして決定する。即ち、i番目のブロックについて、SADが最小のペアの基準ブロック画像の所定領域の中心座標を(x’i,y’i)とし、合成対象ブロック画像の所定領域の中心座標を(xi,yi)とすると、動きベクトルviは、
となる(図13参照)。
となる(図13参照)。
基準ブロック画像のサイズが幅Bx[画素]、高さBy[画素]であるとすると、所定領域のサイズは、例えば、幅Bx/2[画素]、高さBy/2[画素]とすることができる。いくつのペアについて相関値を算出するかについては特に限定されないが、ペアの数が多いほど動きベクトルの精度も向上する。また、図5を参照して説明した通り、相関値算出回路209は、入力された大画像及び小画像に基づいて9つのSADを算出するように構成されていてもよい。この場合については、図10を参照して後述する。
S905で、動きベクトル算出部206は、全てのブロックが選択されたか否かを判定する。まだ選択されていないブロックが残っている場合、S903で、動きベクトル算出部206は次のブロックを選択し、このブロックについてS902乃至S904の処理が繰り返される。全てのブロックが選択されると、S906で、動きベクトル算出部206は各基準ブロック画像の動きベクトルを出力する。以上の処理により、閾値以上の重みを持つ基準ブロック画像についてのみ、対応する合成対象ブロック画像との間の動きベクトルが得られる。
次に、図10を参照して、図9のS904における処理の他の例について説明する。図9を参照した説明とは異なり、図10の例では、相関値算出回路209は、入力された大画像及び小画像に基づいて9つのSADを算出するように構成されているものとする。
S1001で、動きベクトル算出部206は、初期探索範囲を設定する。具体的には、動きベクトル算出部206は、相関値算出回路209に入力する小画像を基準ブロック画像から、大画像を合成対象ブロックからそれぞれ設定する(図11参照)。ここで、小画像は、基準ブロック画像内の幅S[画素]、高さT[画素]の領域(第2領域)の画像とする。また、大画像は、合成対象ブロック画像内の幅S+2[画素]、高さT+2[画素]の領域(第1領域)の画像とする。S1002で、動きベクトル算出部206は、大画像及び小画像を相関値算出回路209に入力することにより、9つのSADを算出する。ここで算出した相関値は、動きベクトルを算出するまで保存しておく。S1003で、動きベクトル算出部206は、現在の探索範囲が最後の探索範囲であるか否かを判定する。最後の探索範囲でなければ、S1004で、動きベクトル算出部206は探索範囲を更新し、更新後(移動後)の探索範囲について、S1002乃至S1003の処理を繰り返す。探索範囲の更新は、大画像として入力する領域の位置を、縦・横に3画素刻みでずらしてゆくことにより行われる(図12参照)。計算を簡略化するため、小画像の位置は固定される。S1003において最後の探索範囲であると判定された場合、S1004で、動きベクトル算出部206は、全探索範囲のSADを基に動きベクトルの算出を行う(図13参照)。
●●変換パラメータ算出部207の詳細
変換パラメータ算出部207は、動きベクトル算出部206から得られる動きベクトルを入力とし、基準画像と合成対象画像との間の動きを表す変換パラメータを算出する。ここでは、アフィンパラメータを算出する場合について説明する。
変換パラメータ算出部207は、動きベクトル算出部206から得られる動きベクトルを入力とし、基準画像と合成対象画像との間の動きを表す変換パラメータを算出する。ここでは、アフィンパラメータを算出する場合について説明する。
アフィン変換では、合成対象画像と基準画像との間の動きを下記の式で表す。
ここで、(x,y)は合成対象画像の画素位置、(x’,y’)は基準画像の画素位置、(a,b,c,d,e,f)はアフィンパラメータを表す。このアフィンパラメータの値によって、平行移動、回転、拡大縮小、せん断などの変形を表すことができる。例えば、(a,b,c,d,e,f)=(1,0,c,0,1,f)とした場合は、x軸方向にc画素、y軸方向にf画素平行移動する動きを表す。また、(a,b,c,d,e,f)=(cosθ,−sinθ,0,sinθ,cosθ,0)とした場合は、θだけ回転する動きを表す。
ここで、(x,y)は合成対象画像の画素位置、(x’,y’)は基準画像の画素位置、(a,b,c,d,e,f)はアフィンパラメータを表す。このアフィンパラメータの値によって、平行移動、回転、拡大縮小、せん断などの変形を表すことができる。例えば、(a,b,c,d,e,f)=(1,0,c,0,1,f)とした場合は、x軸方向にc画素、y軸方向にf画素平行移動する動きを表す。また、(a,b,c,d,e,f)=(cosθ,−sinθ,0,sinθ,cosθ,0)とした場合は、θだけ回転する動きを表す。
続いて、動きベクトルvi=(x’i−xi,y’i−yi)からアフィンパラメータを求める方法について説明する。ここでは最小二乗法を利用してアフィンパラメータを求める。求めるアフィンパラメータを(a,b,c,d,e,f)とし、下記の式のように誤差Ex,Eyを定義する。
上記の誤差Exが最小となるアフィンパラメータ(a,b,c)、誤差Eyが最小となるアフィンパラメータ(d,e,f)をそれぞれ求める。具体的には下記の式によりアフィンパラメータを得られる。
以上の方法により、動きベクトルvi=(x’i−xi,y’i−yi)からアフィンパラメータ(a,b,c,d,e,f)を求めることができる。
上記の誤差Exが最小となるアフィンパラメータ(a,b,c)、誤差Eyが最小となるアフィンパラメータ(d,e,f)をそれぞれ求める。具体的には下記の式によりアフィンパラメータを得られる。
以上の方法により、動きベクトルvi=(x’i−xi,y’i−yi)からアフィンパラメータ(a,b,c,d,e,f)を求めることができる。
●●画像合成部109
図14は、画像合成部109の詳細な構成を示すブロック図である。入力端子1401及び入力端子1402は画像合成部109の入力端子である。入力端子1401には、メモリ部107から基準画像及び合成対象画像が入力される。入力端子1402には、移動量算出部108から出力される変換パラメータが入力される。画像変換部1403は、変換パラメータに基づき、各合成対象画像(合成対象画像は2枚以上でもよい)にアフィン変換処理を行い、変換画像を出力する。次に、加算合成部1404は、各変換画像に重み付けを行い基準画像と加算合成することで、合成画像(ブレ補正画像)を出力する。最後に、加算合成部1404は、生成された合成画像を出力端子1405を介して出力する。
図14は、画像合成部109の詳細な構成を示すブロック図である。入力端子1401及び入力端子1402は画像合成部109の入力端子である。入力端子1401には、メモリ部107から基準画像及び合成対象画像が入力される。入力端子1402には、移動量算出部108から出力される変換パラメータが入力される。画像変換部1403は、変換パラメータに基づき、各合成対象画像(合成対象画像は2枚以上でもよい)にアフィン変換処理を行い、変換画像を出力する。次に、加算合成部1404は、各変換画像に重み付けを行い基準画像と加算合成することで、合成画像(ブレ補正画像)を出力する。最後に、加算合成部1404は、生成された合成画像を出力端子1405を介して出力する。
ところで、本実施形態では、重みwをSADの定数倍として定義していたが(式(3)参照)、重みの与え方はこれに限るものではない。例えば、
のような指数関数を用いても良い。また、コーナーの有無を考慮しないのであれば、SADの最大値や中間値等を基に重みを決定してもよい。
のような指数関数を用いても良い。また、コーナーの有無を考慮しないのであれば、SADの最大値や中間値等を基に重みを決定してもよい。
また、本実施形態では輝度値の差分絶対値を基にSADを算出していたが、色差信号の差分値絶対値を基にSADを算出してもよい。また、それらの加重和をSADとしてもよい。
更に、本実施形態では重みの決定に際して9つのSADを算出したが(図7参照)、相関値算出回路209に入力する画像のサイズを小さくすることにより、より多くのSADを算出してもよい。
以上説明したように、本実施形態によれば、デジタルカメラ100は、画像間のブレ情報(例えば、アフィンパラメータ)を算出する際に、基準ブロック画像のテクスチャの量に応じた動きベクトル算出処理を行う。また、デジタルカメラ100は、テクスチャ判定処理及び動きベクトル算出処理のために、相関値算出回路209を共用する。
これにより、回路規模の増大を抑制しつつ、画像間の位置合わせに必要な情報の取得の効率や精度を向上させることが可能となる。
(変形例)
第1の実施形態では、デジタルカメラ100は、重みに基づいて動きベクトルを算出し、動きベクトルに基づいて変換パラメータを算出した。本変形例では、変換パラメータを算出せずに、重み及び動きベクトルを個別に記録する構成について説明する。この場合、記録された重み及び動きベクトルを利用して他の装置が所望の処理を行うことができる。例えば、他の装置は、重みが閾値以上の基準ブロック画像の動きベクトルのみを用いて変換パラメータを算出することができる。この場合、重みが閾値未満の基準ブロック画像に対する動きベクトルの算出処理は省略されないが、得られる変換パラメータは、上述の第1の実施形態と同じになる。或いは、他の装置は、後述する第2の実施形態のように変換パラメータを算出することもできる。
第1の実施形態では、デジタルカメラ100は、重みに基づいて動きベクトルを算出し、動きベクトルに基づいて変換パラメータを算出した。本変形例では、変換パラメータを算出せずに、重み及び動きベクトルを個別に記録する構成について説明する。この場合、記録された重み及び動きベクトルを利用して他の装置が所望の処理を行うことができる。例えば、他の装置は、重みが閾値以上の基準ブロック画像の動きベクトルのみを用いて変換パラメータを算出することができる。この場合、重みが閾値未満の基準ブロック画像に対する動きベクトルの算出処理は省略されないが、得られる変換パラメータは、上述の第1の実施形態と同じになる。或いは、他の装置は、後述する第2の実施形態のように変換パラメータを算出することもできる。
図8(a)は、第1の実施形態の変形例に係るデジタルカメラ800の構成を示すブロック図であり、図8(b)は、デジタルカメラ800の移動量算出部802の詳細な構成を示すブロック図である。図8(a)及び図8(b)において、図1及び図2と同一又は同様の要素には同一の符号を付し、その説明を省略する。
デジタルカメラ100と比較すると、デジタルカメラ800は、移動量算出部108の代わりに移動量算出部802を備える。また、デジタルカメラ800は、画像合成部109を備えない。
移動量算出部802は、メモリ部107から複数枚の画像を読み出し、その中の1枚(基準画像)に対する重みと、基準画像に対するその他の画像(合成対象画像)の動きベクトルとを算出する(詳細は図8(b)を参照して後述する)。第1の実施形態と異なり、動きベクトルは、全ての基準ブロック画像について算出される。動きベクトル及び重みは、出力端子110より出力され、記録部803で記録媒体に記録される。
次に図8(b)を参照すると、テクスチャ判定部204は、算出した重みを動きベクトル算出部804へ出力せずに、出力端子805を介して記録部803へ出力する。また、動きベクトル算出部804は、算出した動きベクトルを出力端子806を介して記録部803へ出力する。このようにして、重み及び動きベクトルを個別に記録することができる。
[第2の実施形態]
第1の実施形態では、テクスチャの多さを表す重みは、動きベクトルを算出するブロックを選択するために使用された。第2の実施形態では、変換パラメータを算出する際に、各ブロックの動きベクトルに重み付けするために重みを使用する。
第1の実施形態では、テクスチャの多さを表す重みは、動きベクトルを算出するブロックを選択するために使用された。第2の実施形態では、変換パラメータを算出する際に、各ブロックの動きベクトルに重み付けするために重みを使用する。
図18は、第2の実施形態に係る移動量算出部1801の構成を示すブロック図である。図18において、図2と同一又は同様の要素には同一の符号を付し、その説明を省略する。第1の実施形態に係る移動量算出部108と比較すると、移動量算出部1801は、動きベクトル算出部206及び変換パラメータ算出部207の代わりに、動きベクトル算出部1802及び変換パラメータ算出部1803を備える。また、移動量算出部1801においては、テクスチャ判定部204から出力される重みは、動きベクトル算出部1802ではなく変換パラメータ算出部1803に入力される。
動きベクトル算出部1802は、動きベクトル算出部206と異なり、全ての基準ブロック画像について動きベクトルを算出する。換言すれば、動きベクトル算出部1802は、図9のフローチャートからS902を除いた処理を実行する。
変換パラメータ算出部1803は、動きベクトル算出部1802から得られる動きベクトル、及びテクスチャ判定部204から得られる重みに基づき、基準画像と合成対象画像との間の動きを表す変換パラメータを算出する。
変換パラメータ算出部207と比較して異なるのは、誤差関数に各ブロックの重みが含まれている点である。具体的には、第1の実施形態で使用したEx,Ey(式(6)参照)の代わりに下記の誤差関数E’x,E’yを用いる。
変換パラメータ算出部207は、上記の誤差E’xが最小となるアフィンパラメータ(a,b,c)、及び誤差E’yが最小となるアフィンパラメータ(d,e,f)をそれぞれ求める。
変換パラメータ算出部207は、上記の誤差E’xが最小となるアフィンパラメータ(a,b,c)、及び誤差E’yが最小となるアフィンパラメータ(d,e,f)をそれぞれ求める。
以上、説明したように、本実施形態によれば、デジタルカメラ800は、算出した重みを変換パラメータ算出処理に用いる。これにより、重み付けした全ブロックの動きベクトルを利用して変換パラメータを算出するため、より頑健な変換パラメータ算出処理が可能となる。
[第3の実施形態]
第3の実施形態では、動きベクトルの算出に際して画像を縮小することでより高速に動きベクトルを算出する構成について説明する。図15は、第3の実施形態に係る移動量算出部1501の構成を示すブロック図である。図15において、図2と同一又は同様の要素には同一の符号を付し、その説明を省略する。
第3の実施形態では、動きベクトルの算出に際して画像を縮小することでより高速に動きベクトルを算出する構成について説明する。図15は、第3の実施形態に係る移動量算出部1501の構成を示すブロック図である。図15において、図2と同一又は同様の要素には同一の符号を付し、その説明を省略する。
移動量算出部108とすると、移動量算出部1501は、画像縮小部1502及び1503を更に備える。また、移動量算出部1501は、テクスチャ判定部204及び動きベクトル算出部206の代わりに、テクスチャ判定部1503及び動きベクトル算出部1505を備える。
画像縮小部1502は、基準画像分割部203で得られた各基準ブロック画像を複数の倍率で縮小し、縮小倍率の異なる複数の縮小ブロック画像を生成する。ここでは、縮小倍率を1/2,1/4,1/8,1/16,1/32とする。続いて、縮小処理について説明する。まず、画像縮小部1502は、入力される基準ブロック画像に対して、ナイキスト周波数の1/2以上の周波数をカットするローパスフィルタでフィルタリングを行った後、1画素毎に間引いて1/2縮小ブロック画像を生成する。続いて、画像縮小部1502は、1/2縮小ブロック画像に対して同様の処理を行い、1/4縮小ブロック画像を生成する。以下、同様に1/32縮小ブロック画像まで生成する。以上の処理を入力される全基準ブロック画像に対して行う。最後に、入力された全基準ブロック画像、及び生成した全縮小ブロック画像を出力する。
画像縮小部1504も、画像縮小部1502と同様の処理を行い、合成対象画像分割部205より得られる合成対象ブロック画像を複数の縮小倍率で縮小し、縮小ブロック画像を生成する。
テクスチャ判定部1503は、画像縮小部1502から得られる縮小ブロック画像を基に、各ブロックに対してテクスチャ量に応じた重み付けを行う。この際、テクスチャが多いほど大きな重みをつける。テクスチャ判定部204の場合と異なり、テクスチャ判定部1503は、最も小さい1/32縮小ブロック画像内の2つの領域の複数のペアの各々について、相関値算出回路209を用いてSADを算出する。それ以外の処理は、テクスチャ判定部204と同様である。
動きベクトル算出部1505は、画像縮小部1502から得られる基準画像の縮小ブロック画像と画像縮小部1504から得られる合成対象画像の縮小ブロック画像との間のSADを算出することで、ブロックに対応する動きベクトルを算出する。この際、テクスチャ判定部1503から得られる各ブロックの重みを基に動きベクトルを算出するブロックを選択する。動きベクトル算出部206と比較して異なるのは、縮小ブロック画像を利用して動きベクトルを算出する点である。
図16は、第3の実施形態に係る動きベクトル算出処理の概念図である。まず、最も小さな1/32縮小ブロック画像を用いて、相関値算出回路209によりSADを算出する。ここで算出したSADが最小となる方向が、1/32縮小ブロック画像における移動方向となる。この移動方向は、次に行う1/16縮小ブロック画像を用いたSAD算出処理の探索範囲を決定するために使用される。1/16縮小ブロック画像を用いた処理では、小画像を基準画像の1/16縮小ブロック画像の周囲2画素を除いた領域の画像とする。また、大画像を、合成対象画像の1/16縮小ブロック画像の中央より1/32縮小ブロック画像で得られた移動方向にずらした、小画像よりも縦横2画素だけ大きな領域の画像とする。これらの領域の画像を入力とし、相関値算出回路209により1/16縮小ブロック画像におけるSADを算出する。1/32の場合と同様、最小となるSADから1/16縮小ブロック画像における移動ベクトルを算出する。以下、同様の処理を等倍ブロックまで繰り返すことで、ブロックの移動ベクトルを算出する。
上記の処理フローを図17に示す。S1701で、動きベクトル算出部1505は、初期縮小ブロックとその探索範囲を設定する。S1702で、動きベクトル算出部1505は、設定した探索範囲でSADを算出する。S1703で、現在の処理対象ブロックが等倍のブロックであるか否かを判定する。等倍でない場合、S1704で、動きベクトル算出部1505は、処理ブロックを2倍だけ大きなブロックに変更し、算出したSADから得られる移動方向を基に探索範囲を更新し、処理をS1702に進める。一方、S1703において等倍であると判定された場合、S1705で、動きベクトル算出部1505は、算出したSADを基にブロックの動きベクトルを算出する。
以上説明したように、本実施形態によれば、動きベクトル算出部1505は、動きベクトル算出時に縮小画像を利用することで、探索範囲を絞り込む。これにより、小さな計算量で動きベクトルを算出可能である。
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (6)
- 2つの画像間の相関を示す相関値を算出する相関値算出回路を備え、撮像装置により連続的に撮像された基準画像及び合成対象画像を処理する画像処理装置であって、
前記基準画像を複数の基準ブロック画像に分割する基準画像分割手段と、
前記合成対象画像を複数の合成対象ブロック画像に分割する合成対象画像分割手段と、
前記基準ブロック画像内の2つの領域の複数のペアの各々について、前記相関値算出回路を用いて前記2つの領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像の自己相関の程度を示す自己相関パラメータを算出する自己相関パラメータ算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記自己相関パラメータを算出する、前記自己相関パラメータ算出手段と、
前記基準ブロック画像の所定領域と当該基準ブロック画像に対応する前記合成対象ブロック画像の所定領域との複数のペアの各々について、前記相関値算出回路を用いて2つの前記所定領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の動きを示す動きベクトルを算出する動きベクトル算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記動きベクトルを算出する、前記動きベクトル算出手段と、
を備えることを特徴とする画像処理装置。 - 前記動きベクトル算出手段は、前記自己相関パラメータが示す自己相関の程度が閾値より大きい前記基準ブロック画像については、前記動きベクトルの算出を省略する
ことを特徴とする請求項1に記載の画像処理装置。 - 前記自己相関パラメータ及び前記動きベクトルに基づいて、前記基準画像と前記合成対象画像との間の動きを補正するように前記合成対象画像を変換するための変換パラメータを算出する変換パラメータ算出手段を更に備え、
前記変換パラメータ算出手段は、前記基準ブロック画像の前記自己相関パラメータが示す自己相関が小さいほど、対応する前記合成対象ブロック画像に大きい重みを付けて、前記変換パラメータを用いた前記合成対象画像の変換に伴う前記合成対象ブロック画像の各々の動きと前記動きベクトルの各々が示す動きとの差を小さくするように前記変換パラメータを算出する
ことを特徴とする請求項1に記載の画像処理装置。 - 前記相関値算出回路は、
第1画像と前記第1画像より小さい第2画像とを受け付け、
前記第1画像内の前記第2画像のサイズの領域の画像と前記第2画像との相関を示す相関値を、前記第1画像内の異なる複数の位置の前記第2画像のサイズの領域について算出することにより得られる、複数の相関値を出力する
ように構成され、
前記自己相関パラメータ算出手段は、
前記基準ブロック画像及び前記基準ブロック画像の部分領域の画像をそれぞれ前記第1画像及び前記第2画像として前記相関値算出回路に入力することにより、前記相関値算出回路から複数の相関値を取得し、
当該複数の相関値に基づいて前記基準ブロック画像の前記自己相関パラメータを算出する
ように構成され、
前記動きベクトル算出手段は、
前記基準ブロック画像に対応する前記合成対象ブロック画像の第1領域の画像及び前記基準ブロック画像の第2領域の画像をそれぞれ前記第1画像及び前記第2画像として前記相関値算出回路に入力することにより、前記相関値算出回路から複数の相関値を取得し、
前記合成対象ブロック画像内の異なる複数の位置の前記第2領域のサイズの領域について当該領域の画像と前記第2領域の画像との間の相関値が取得されるように前記第1領域を繰り返し移動させて移動後の前記第1領域の画像及び前記第2領域の画像をそれぞれ前記第1画像及び前記第2画像として前記相関値算出回路に入力し、
前記合成対象ブロック画像内の前記異なる複数の位置について取得された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の前記動きベクトルを算出する
ように構成される
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。 - 2つの画像間の相関を示す相関値を算出する相関値算出回路を備え、撮像装置により連続的に撮像された基準画像及び合成対象画像を処理する画像処理装置の制御方法であって、
前記画像処理装置の基準画像分割手段が、前記基準画像を複数の基準ブロック画像に分割する基準画像分割工程と、
前記画像処理装置の合成対象画像分割手段が、前記合成対象画像を複数の合成対象ブロック画像に分割する合成対象画像分割工程と、
前記画像処理装置の自己相関パラメータ算出手段が、前記基準ブロック画像内の2つの領域の複数のペアの各々について、前記相関値算出回路を用いて前記2つの領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像の自己相関の程度を示す自己相関パラメータを算出する自己相関パラメータ算出工程であって、前記基準画像分割工程により得られた前記基準ブロック画像の各々について前記自己相関パラメータを算出する、前記自己相関パラメータ算出工程と、
前記画像処理装置の動きベクトル算出手段が、前記基準ブロック画像の所定領域と当該基準ブロック画像に対応する前記合成対象ブロック画像の所定領域との複数のペアの各々について、前記相関値算出回路を用いて2つの前記所定領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の動きを示す動きベクトルを算出する動きベクトル算出工程であって、前記基準画像分割工程により得られた前記基準ブロック画像の各々について前記動きベクトルを算出する、前記動きベクトル算出工程と、
を備えることを特徴とする制御方法。 - コンピュータに請求項5に記載の制御方法の各工程を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011033860A JP2012175289A (ja) | 2011-02-18 | 2011-02-18 | 画像処理装置、及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011033860A JP2012175289A (ja) | 2011-02-18 | 2011-02-18 | 画像処理装置、及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012175289A true JP2012175289A (ja) | 2012-09-10 |
Family
ID=46977779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011033860A Withdrawn JP2012175289A (ja) | 2011-02-18 | 2011-02-18 | 画像処理装置、及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012175289A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015133532A (ja) * | 2014-01-09 | 2015-07-23 | キヤノン株式会社 | 撮像装置及び画像処理方法 |
WO2021230157A1 (ja) * | 2020-05-15 | 2021-11-18 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
-
2011
- 2011-02-18 JP JP2011033860A patent/JP2012175289A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015133532A (ja) * | 2014-01-09 | 2015-07-23 | キヤノン株式会社 | 撮像装置及び画像処理方法 |
WO2021230157A1 (ja) * | 2020-05-15 | 2021-11-18 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI387935B (zh) | 影像生成方法、及其程式與記錄有程式的記錄媒體 | |
JP6308748B2 (ja) | 画像処理装置、撮像装置及び画像処理方法 | |
EP2138976A2 (en) | Synthesis of a panoramic high-resolution image from multiple images | |
US20090128643A1 (en) | Image Pickup Apparatus, Method for Capturing Image, and Method for Designing Image Pickup Apparatus | |
JPWO2014069632A1 (ja) | 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体 | |
JP2013009274A (ja) | 画像処理装置および画像処理方法、プログラム | |
CN102761682A (zh) | 图像处理设备及其控制方法 | |
JP2018107526A (ja) | 画像処理装置、撮像装置、画像処理方法およびコンピュータのプログラム | |
TWI459325B (zh) | 數位影像處理裝置及其處理方法 | |
JP2012114520A (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
JP5212046B2 (ja) | デジタルカメラおよび画像処理装置並びに画像処理プログラム | |
JP2007226656A (ja) | 画像の高解像度化方法及び装置 | |
WO2015198368A1 (ja) | 画像処理装置及び画像処理方法 | |
WO2011074121A1 (ja) | 動きベクトル検出装置及び方法 | |
JP5566199B2 (ja) | 画像処理装置およびその制御方法、並びにプログラム | |
JP6838918B2 (ja) | 画像データ処理装置及び方法 | |
JP2019101997A (ja) | 複数の撮像画像を合成することによりノイズを低減する画像処理装置及び画像処理方法 | |
JP2012175289A (ja) | 画像処理装置、及びその制御方法 | |
WO2018066027A1 (ja) | 画像処理装置、撮像システム、画像処理方法および画像処理プログラム | |
JP6532328B2 (ja) | 画像処理装置、その制御方法、および制御プログラム | |
JP2013021636A (ja) | 画像処理装置および方法、学習装置および方法、プログラム、並びに記録媒体 | |
WO2014077024A1 (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
JP6408884B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP6105960B2 (ja) | 画像処理装置、画像処理方法、および撮像装置 | |
JP2013126123A (ja) | 画像処理装置、撮像装置及び画像処理方法 |
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: 20140513 |