JP2017022597A - 画像処理装置、その制御方法、および制御プログラム - Google Patents

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

Info

Publication number
JP2017022597A
JP2017022597A JP2015139645A JP2015139645A JP2017022597A JP 2017022597 A JP2017022597 A JP 2017022597A JP 2015139645 A JP2015139645 A JP 2015139645A JP 2015139645 A JP2015139645 A JP 2015139645A JP 2017022597 A JP2017022597 A JP 2017022597A
Authority
JP
Japan
Prior art keywords
motion vector
vector
image
vector detection
resolution
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.)
Granted
Application number
JP2015139645A
Other languages
English (en)
Other versions
JP6532328B2 (ja
Inventor
松岡 正明
Masaaki Matsuoka
正明 松岡
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 JP2015139645A priority Critical patent/JP6532328B2/ja
Publication of JP2017022597A publication Critical patent/JP2017022597A/ja
Application granted granted Critical
Publication of JP6532328B2 publication Critical patent/JP6532328B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Adjustment Of Camera Lenses (AREA)
  • Studio Devices (AREA)

Abstract

【課題】常に被写体像の位置ずれを精度よく補正する。
【解決手段】階層ベクトルサーチ部201はターゲット画像についてその解像度を変化させて得られた複数のベクトル検出対象画像において解像度が低いベクトル検出対象画像から順に前記動きベクトルを検出する。ベクトル選択部202は動きベクトルの信頼度が所定の信頼度以下となったベクトル検出対象画像よりも解像度が低いベクトル検出対象画像で検出された動きベクトルを合成して合成動きベクトルを生成し、アフィン変換部204は合成動きベクトルに応じて元画像における被写体の位置ずれを補正する。
【選択図】図2

Description

本発明は、画像処理装置、その制御方法、および制御プログラムに関し、特に、撮像装置の動きに起因して生じる被写体像のずれを補正する画像処理装置に関する。
一般に、デジタルカメラなどの撮像装置では、撮像の際にユーザの手ぶれなどによる撮像装置の動きによって被写体像がぶれてしまうことを防ぐため、手ぶれ補正機構が備えられている。そして、手ぶれ補正機構では、例えば、光学式手ぶれ補正又は電子式手ぶれ補正が用いられている。
電子式手ぶれ補正においては、撮像の結果得られた複数の画像について被写体像のずれを画像処理によって補正する。例えば、被写体像のずれを補正する際、元の画像を縮小した縮小画像においてベクトルサーチした結果を用いて、元の画像においてベクトルサーチする範囲を限定するようにしたものがある(特許文献1参照)。これによって、特許文献1では、サーチ範囲を拡大することなく実質的に広い範囲をサーチしつつ、サブピクセル単位の動きベクトルを検出するようにしている。
特開2009−81596号公報
ところが、特許文献1に記載の補正手法では、縮小画像のターゲットブロックにおいてパターンマッチングに適した模様が存在していたとしても、元の画像のターゲットブロックにおいてはこのような模様がないことがある。この場合、元の画像において動きベクトルが正しく求めることは困難である。なお、画像を複数の矩形領域(ブロック)に分割した際、これら複数のブロックの各々をターゲットブロックという。
例えば、低コントラストの被写体の場合には、縮小画像のターゲットブロックにおいて被写体の輪郭を特徴的な模様として検出することができるとしても、元画像のターゲットブロックにおいてはこのような特徴的な模様が検出できないことがある。
また、繰り返しパターンの被写体の場合にも、縮小画像のターゲットブロックで被写体輪郭を特徴的な模様として検出できるとしても、元画像のターゲットブロックでは同様の模様が複数存在して正しく動きベクトルを特定できないことがある。そして、正しく特定できなかった動きベクトルを除いてしまうと、位置ずれ補正処理に利用可能な動きベクトルの数が少なくなって、精度よく位置ずれ補正を行うことができない。
そこで、本発明の目的は、常に被写体像の位置ずれを精度よく補正することのできる画像処理装置、その制御方法、および制御プログラムを提供することにある。
上記の目的を達成するため、本発明による画像処理装置は、ターゲット画像に設定された複数のターゲットブロックの各々において被写体の動きベクトルを検出して、当該動きベクトルに応じて元画像における前記被写体の位置ずれを補正する画像処理装置であって、前記ターゲット画像についてその解像度を変化させて得られた複数のベクトル検出対象画像において前記解像度が低いベクトル検出対象画像から順に前記動きベクトルを検出するベクトル検出手段と、前記動きベクトルの信頼度が所定の信頼度以下となったベクトル検出対象画像よりも解像度が低いベクトル検出対象画像で検出された動きベクトルを合成して合成動きベクトルを生成する生成手段と、前記合成動きベクトルに応じて前記元画像における前記被写体の位置ずれを補正する補正手段と、を有することを特徴とする。
本発明による制御方法は、ターゲット画像に設定された複数のターゲットブロックの各々において被写体の動きベクトルを検出して、当該動きベクトルに応じて元画像における前記被写体の位置ずれを補正する画像処理装置の制御方法であって、前記ターゲット画像についてその解像度を変化させて得られた複数のベクトル検出対象画像において前記解像度が低いベクトル検出対象画像から順に前記動きベクトルを検出するベクトル検出ステップと、前記動きベクトルの信頼度が所定の信頼度以下となったベクトル検出対象画像よりも解像度が低いベクトル検出対象画像で検出された動きベクトルを合成して合成動きベクトルを生成する生成ステップと、前記合成動きベクトルに応じて前記元画像における前記被写体の位置ずれを補正する補正ステップと、を有することを特徴とする。
本発明による制御プログラムは、ターゲット画像に設定された複数のターゲットブロックの各々において被写体の動きベクトルを検出して、当該動きベクトルに応じて元画像における前記被写体の位置ずれを補正する画像処理装置で用いられる制御プログラムであって、前記画像処理装置が備えるコンピュータに、前記ターゲット画像についてその解像度を変化させて得られた複数のベクトル検出対象画像において前記解像度が低いベクトル検出対象画像から順に前記動きベクトルを検出するベクトル検出ステップと、前記動きベクトルの信頼度が所定の信頼度以下となったベクトル検出対象画像よりも解像度が低いベクトル検出対象画像で検出された動きベクトルを合成して合成動きベクトルを生成する生成ステップと、前記合成動きベクトルに応じて前記元画像における前記被写体の位置ずれを補正する補正ステップと、を実行させることを特徴とする。
本発明によれば、動きベクトルの信頼度が所定の信頼度以下となった動きベクトルが検出されたベクトル検出対象画像よりも解像度が低いベクトル検出対象画像で検出された動きベクトルを合成して合成動きベクトルを生成する。これによって、常に被写体像の位置ずれを精度よく補正することができる。
本発明の第1の実施形態による画像処理装置の1つである撮像装置についてその構成を示すブロック図である。 図1に示す画像処理部の構成についてその一例を示すブロック図である。 図2に示す階層ベクトルサーチ部で設定されるターゲットブロックの一例を示す図である。 従来の階層ブロックマッチング処理の概要を説明するための図である。 図2に示す階層ベクトルサーチ部で行われる階層ベクトルサーチを説明するためのフローチャートである。 図2に示す階層ベクトルサーチ部で用いられるSADテーブルについて説明するための図である。 図2に示すベクトル選択部の動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るカメラにおけるベクトル選択処理を説明するためのフローチャートである。
以下に、本発明の実施の形態による画像処理装置の一例について図面を参照して説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態による画像処理装置の1つである撮像装置についてその構成を示すブロック図である。
図示の撮像装置は、例えば、デジタルカメラ(以下単にカメラと呼ぶ)100であり、CPUなどの制御部101を有している。制御部101はROM102から動作プログラムを読み出してRAM103に展開して実行する。これによって、制御部101はカメラ100の動作を制御する。
ROM102は、例えば、書き換え可能な不揮発性メモリである。ROM102には、カメラ100の動作プログラムに加えて、カメラ100の動作に必要なパラメータなどが記憶されている。RAM103は、書き換え可能な揮発性メモリであり、画僧データなどのデータの一時的な記憶領域として用いられる。ここでは、RAM103には、例えば、カメラ100の動きに起因して生じる参照画像における被写体像のずれを検出するために必要となるターゲット画像が記憶される。さらには、RAM103には補正前の参照画像などが一時的に記憶される。
撮像部105には、CCD又はCMOSセンサなどの撮像素子が備えられている。撮像部105は、光学系104を介して撮像素子に結像した光学像を光電変換してアナログ画像信号を出力する。そして、このアナログ画像信号はA/D変換部106によってA/D変換処理されて、デジタル画像データ(画像データ)としてRAM103に記憶される。
図示の例では、画像処理部107は、画像データにおいて撮像の際にカメラ100の動き(ぶれ)によって生じた被写体像の位置ずれを補正する補正処理を行う。
図2は、図1に示す画像処理部107の構成についてその一例を示すブロック図である。
図示のように、画像処理部107は、階層ベクトルサーチ部201、ベクトル選択部202、アフィン係数算出部203およびアフィン変換部204を有している。そして、画像処理部107には参照画像およびターゲット画像が入力され、後述するように、参照画像における被写体像の位置ずれを補正して補正画像を出力する。
なお、ここでは、参照画像は、撮像の際にカメラ100の動きによって生じた被写体像の位置ずれを補正する対象の元画像であり、ターゲット画像は被写体の位置ずれを検出する際に用いられ補正の基準となる画像である。そして、参照画像およびターゲット画像は、制御部101によってRAM103から読み出されて画像処理部107に入力される。
以下の説明では、前述の特許文献1に記載の階層化ブロックマッチング処理による動きベクトル検出を階層ベクトルサーチと呼ぶことにする。階層ベクトルサーチ部201は、ターゲットブロック毎に階層化ブロックマッチング処理を行ってターゲット画像における被写体像の動きベクトルを検出する。
図3は、図2に示す階層ベクトルサーチ部201で設定されるターゲットブロックの一例を示す図である。
階層ベクトルサーチ部201は、ターゲット画像301において予め定められた位置に複数の矩形領域(ターゲットブロック)302を配置する(ここでは、36個のターゲットブロック302が配置されている)。そして、階層ベクトルサーチ部201は、後述するようにして、ターゲットブロック302の各々において階層化ブロックマッチング処理を行う。
ここで、階層ベクトルサーチ部201で行われる階層ベクトルサーチの理解を容易にするため、従来の階層ブロックマッチング処理の概要について説明する。
図4は、従来の階層ブロックマッチング処理の概要を説明するための図である。なお、図4においては、ターゲット画像を基底面参照フレームと呼び、ターゲット画像を縮小処理した画像を縮小面参照フレームと呼ぶ。
図4に示すように、基底面参照フレーム1134において、動き検出原点1105とサーチ範囲1106が決定されたとする。縮小面参照フレーム1135は、基底面参照フレーム1134を水平方向に1/n倍、そして、垂直方向に1/n倍に縮小処理した画像である(nは1を超える数)。つまり、縮小面参照フレーム1135は、解像度を変化させた画像である。
例えば、n=1であると、水平1/n倍の縮小処理は、4画素毎に3画素を間引いて1画素を出力することによって行われる。この際、間引きによるエイリアシングを防ぐため、予め水平方向について所定のローパスフィルタ処理が行われる。垂直1/n倍の縮小処理についても同様にして行われる。
縮小面ターゲットブロック(図示せず)を縮小面参照フレーム1135に規定された縮小面サーチ範囲1137においてずらしつつブロックマッチングが行われる。そして、ブロックマッチングの相関が最高となる動き原点1105からのずれ量および方向を縮小面参照ベクトル1138として検出する。なお、縮小面サーチ範囲1137は、サーチ範囲1106を1/n×1/nに縮小したサーチ範囲である。
さらに、縮小面参照ベクトル1138を水平n倍、そして、垂直n倍に拡大した動きベクトル(基底面参照ベクトル1141)が指し示す位置を中心として、基底面サーチ範囲1140を設定する。基底面ターゲットブロックを基底面参照フレーム1142の基底面サーチ範囲1140でずらしながらブロックマッチングを行う。そして、ブロックマッチングの相関が最高となる基底面参照ベクトル1141からのずれ量および方向を基底面局所ベクトルとして検出する。
さらに、基底面参照ベクトル1141と基底面局所ベクトルとをベクトル合成する。そして、動き検出原点1105を中心とする基底面ターゲットブロックと最も相関が高い基底面参照ブロック1142との位置ずれ量および方向を、当該基底面ターゲットブロックの基底面動きベクトルとして検出する。
例えば、n=4、縮小面参照ベクトル=(1,2)、そして、基底面局所ベクトル=(2,3)とする。この場合、基底面動きベクトル=縮小面参照ベクトル×n+基底面局所ベクトル=(1,2)×4+(2,3)=(6,11)で示すように、ベクトル合成されて基底面動きベクトルが得られることになる。
図4においては、1つの縮小面参照フレーム1135のみが示されている。一方、図2に示す階層ベクトルサーチ部201においては、複数の縮小面参照フレーム、つまり、縮小率が異なる複数の縮小画像について階層ベクトルサーチが行われる。例えば、階層ベクトルサーチ部201は、ターゲット画像を水平1/16倍および垂直1/16倍とした縮小画像(第1の縮小画像)を用いて階層ベクトルサーチを行う。さらに、階層ベクトルサーチ部201はターゲット画像を水平1/4倍および垂直1/4倍とした縮小画像(第2の縮小画像)を用いて階層ベクトルサーチを行う。
なお、第1の縮小画像を、”×16階層”と呼び、第2の縮小画像を”×4階層”、そして、ターゲット画像、つまり、基底面を”×1階層”と呼ぶ。これら”×16階層””×4階層”、および”×1階層”の画像はベクトル検出対象画像である。
ベクトル選択部202は、階層ベクトルサーチ部201の出力を受けて、被写体の移動に起因しカメラ100の移動(ぶれ)と無関係の動きベクトルを検出し、カメラ100の移動に起因する動きベクトルのみを選択する。
ベクトル選択部202に選択された動きベクトルはアフィン係数算出部203に与えられる。アフィン係数算出部203はターゲット画像に設定された複数のターゲットブロックの各々における動きベクトルを用いて座標変換係数であるアフィン係数を算出する(座標変換係数算出)。
アフィン変換部204は、アフィン係数算出部203で求められたアフィン係数を用いて参照画像における被写体像の位置ずれを補正する。なお、アフィン係数算出および位置ずれ補正に用いられる手法として、例えば、特開2009−258868公報に記載の手法が用いられる。
図5は、図2に示す階層ベクトルサーチ部201で行われる階層ベクトルサーチを説明するためのフローチャートである。
階層ベクトルサーチを開始すると、階層ベクトルサーチ部201は、図3に示すターゲットブロック302の全てにおいて動きベクトルの検出処理が終了したか否かを判定する(ステップS401)。ターゲットブロック302の全てにおいて動きベクトルの検出処理が終了していると(ステップS401において、YES)、階層ベクトルサーチ部201は階層ベクトルサーチを終了する。なお、階層ベクトルサーチを開始した時点では、ターゲットブロック302のいずれについても動きベクトルの検出処理が行われていないので、階層ベクトルサーチ部201は、後述するステップS402の処理に進む。
ターゲットブロック302の全てにおいて動きベクトルの検出処理が終了してないと(ステップS401において、NO)、階層ベクトルサーチ部201は、まず、広いサーチ範囲でサーチを行うため、解像度の低い”×16階層”において動きベクトルを検出する。この際、階層ベクトルサーチ部201は、後述するSADテーブル補間を用いて、”×16階層”におけるサブピクセル精度の動きベクトルを検出する(ステップS402)。なお、SADテーブル補間によるサブピクセル精度の動きベクトル検出する際に用いられる手法として、例えば、前述の特許文献1に記載の手法が用いられる。
図6は、図2に示す階層ベクトルサーチ部201で用いられるSADテーブルについて説明するための図である。
図6において、Sminは最も相関が強いSAD値であり、Sx1およびSx2はSminの水平方向に隣接するSAD値である。また、Sy1およびSy2はSminの垂直方向に隣接するSAD値である。Sminに対応する参照ブロックのずれ量におけるサブピクセル成分(Xsub,Ysub)を2次曲線近似補間で計算すると、以下の式(1)および式(2)で表される。
Xsub=1/2×(Sx2−Sx1)/(Sx2−2Smin+Sx1)(1)
Ysub=1/2×(Sy2−Sy1)/(Sy2−2Smin+Sy1)(2)
ここでは、サブピクセル成分(Xsub,Ysub)を少数部4ビット(2進数)で出力することによって、1/16画素単位でSADテーブルを補間する。
例えば、”×1階層”で見た場合、ターゲットブロックと最も相関が強い参照ブロックのずれ量が(100,200)であるとする。さらに、ずれ量のサブピクセル成分が”×1階層”SADテーブルと式(1)および式(2)とから(1/16,3/16)であるとする。この場合、基底面動きベクトルは(100+1/16,200+3/16)となって、基底面(ターゲット画像)において1/16画素単位の精度で動きベクトルを求めることができる。
さらに、”×4階層”で見た場合、ターゲットブロックと最も相関が強い参照ブロックのずれ量が(25,50)であるとする。さらに、ずれ量のサブピクセル成分が”×4階層”SADテーブルと式(1)および式(2)とから(1/16,3/16)であるとする。この場合、基底面動きベクトルは(25+1/16,50+3/16)×4=(100+1/4,200+3/4)となって、基底面において1/4画素単位の精度で動きベクトルが求めることができる。
また、”×16階層”で見た場合、ターゲットブロックと最も相関が強い参照ブロックのずれ量が(7,13)であるとする。さらに、ずれ量のサブピクセル成分が”×16階層”SADテーブルと式(1)および式(2)とから(1/16,3/16)であるとする。この場合、基底面動きベクトルは(7+1/16,13+3/16)×16=(112+1,208+3)=(113,211)となって、基底面において1画素単位の精度で動きベクトルが求めることができる。
続いて、階層ベクトルサーチ部201は、ステップS402の処理で得られた動きベクトルの信頼度が所定の信頼度よりも高いか否かを判定する(ステップS403)。なお、信頼度判定に当たって、信頼度を求める場合の手法については、例えば、特開2009−258868号公報に記載の手法が用いられる。
“×16階層”における動きベクトルの信頼度が所定の信頼度以下であると、階層ベクトルサーチ部201は、利用可能な動きベクトルが存在しないとして、動きベクトルを出力しない(ステップS405)。そして、階層ベクトルサーチ部201はステップS401の処理に戻る。
一方、”×16階層”における動きベクトルの信頼度が所定の信頼度よりも高いと(ステップS403において、YES)、階層ベクトルサーチ部201は、”×4階層”においてベクトルサーチする範囲を特定することができるとして、一つ解像度の高い”×4階層”において動きベクトルの検出を行う(ステップS404)。そして、階層ベクトルサーチ部201は、ステップS404の処理で得られた動きベクトルの信頼度が所定の信頼度よりも高いか否かを判定する(ステップS406)。
“×4階層”における動きベクトルの信頼度が所定の信頼度以下であると(ステップS406において、NO)、階層ベクトルサーチ部201は、”×4階層”の動きベクトルは利用できないが、”×16階層”の動きベクトルを利用することができるとする。そして、階層ベクトルサーチ部201は、”×16階層”の動きベクトルを出力する(ステップS408)。
この際、”×16階層”の動きベクトルは、1/16に縮小された大きさで検出されているので、階層ベクトルサーチ部201は基底面と同一の解像度となるように動きベクトルを16倍に拡大して出力する。その後、階層ベクトルサーチ部201はステップS401の処理に戻る。
一方、”×4階層”における動きベクトルの信頼度が所定の信頼度よりも高いと(ステップS406において、YES)、階層ベクトルサーチ部201は、”×1階層”においてベクトルサーチする範囲を特定することができるとして、一つ解像度の高い”×1階層”において動きベクトルの検出を行う(ステップS407)。そして、階層ベクトルサーチ部201は、ステップS407の処理で得られた動きベクトルの信頼度が所定の信頼度よりも高いか否かを判定する(ステップS409)。
“×1階層”における動きベクトルの信頼度が所定の信頼度以下であると(ステップS409において、NO)、階層ベクトルサーチ部201は、”×1階層”の動きベクトルは利用できないが、”×4階層”および”×16階層”の動きベクトルを利用することができるとする。そして、階層ベクトルサーチ部201は、”×4階層”および”×16階層”の動きベクトルを合成して合成動きベクトルとして出力する(ステップS411)。
この際、階層ベクトルサーチ部201は”×16階層”の動きベクトルを16倍に拡大し、”×4階層”の動きベクトルを4倍に拡大して、基底面と同一の解像度として合成を行う。その後、階層ベクトルサーチ部201はステップS401の処理に戻る。
一方、”×1階層”における動きベクトルの信頼度が所定の信頼度よりも高いと(ステップS409において、YES)、階層ベクトルサーチ部201は、”×1階層”、”×4階層”、および”×16階層”の動きベクトルを利用することができるとする。そして、階層ベクトルサーチ部201は”×1階層”、”×4階層”、および”×16階層”の動きベクトルを合成して出力する(ステップS410)。
この際、階層ベクトルサーチ部201は”×16階層”の動きベクトルを16倍に拡大し、”×4階層”の動きベクトルを4倍に拡大して、基底面と同一の解像度として合成を行う。その後、階層ベクトルサーチ部201はステップS401の処理に戻る。
このようにして、階層ベクトルサーチ部201は、階層ベクトルサーチにおける階層毎にサブピクセル精度の動きベクトルを検出する。これによって、ある階層の動きベクトルが利用できない場合であっても、より解像度が低い階層で検出した動きベクトルを利用することができる。この結果、動きベクトルを検出して出力可能なターゲットブロック数を増加させることができる。
図7は、図2に示すベクトル選択部202の動作を説明するためのフローチャートである。
動きベクトル選択処理を開始すると、ベクトル選択部202は、後述するようにして、解像度毎に動きベクトルが検出されたターゲットブロックの数を求める。まず、ベクトル選択部202は、全階層(”×16階層”、”×4階層”、および”×1階層”)の動きベクトルが合成されたターゲットブロック数(以下第1のブロック数と呼ぶ)を求める。つまり、ベクトル選択部202は、全階層において動きベクトルが検出されたターゲットブロック数を求める。そして、ベクトル選択部201は、全てのターゲットブロックの数に対する第1のブロック数の割合(第1のブロック割合)が予め設定された第1の割合閾値R1を超えているか否かを判定する(ステップS501)。
第1のブロック割合が第1の割合閾値R1を超えていると(ステップS501において、YES)、ベクトル選択部202は誤差閾値をE1(第1の誤差閾値)とする(ステップS502)。一方、第1のブロック割合が第1の割合閾値R1以下(第1の割合閾値以下)であると(ステップS501において、NO)、ベクトル選択部202は、”×16階層”および”×4階層”の動きベクトルが合成されたターゲットブロック数(以下第2のブロック数と呼ぶ)を求める。そして、ベクトル選択部202は、全てのターゲットブロックの数に対する第1のブロック数および第2のブロック数の割合(第2のブロック割合)が予め設定された第2の割合閾値R2を超えているか否かを判定する(ステップS503)。
第2のブロック割合が第2の割合閾値R2を超えていると(ステップS503において、YES)、ベクトル選択部202は誤差閾値をE2(第2の誤差閾値)とする(ステップS504)。一方、第2のブロック割合が第2の割合閾値R2以下であると(ステップS503において、NO)、ベクトル選択部202は誤差閾値をE3(第3の誤差閾値)とする(ステップS505)。
前述の第1の誤差閾値E1、第2の誤差閾値E2、および第3の誤差閾値E3は、後述の合格対応点選択処理において合格判定を行う際に用いられる。なお、誤差閾値を小さくすると、選択される動きベクトルの誤差は小さくなるが、選択される動きベクトルの数は少なくなる。
ステップS502、S504、又はS505の処理の後、ベクトル選択部202は、誤差閾値を用いて合格対応点選択処理によってカメラ100の移動(ぶれ)に起因する動きベクトルのみを選択する(ステップS506)。そして、ベクトル選択部203は動きベクトル選択処理を終了する。なお、合格対応点選択処理の手法については、例えば、特開2006−229868号公報に記載の手法が用いられる。
ここで、R1=R2=0.8、E1=1.5画素、E2=2.5画素、E3=4.5画素とする。いま、ケース1として次の場合を考える。
第1のブロック数=30、第2のブロック数=4個、そして、”×16階層”の動きベクトルが検出されたターゲットブロック数(第3のブロック数と呼ぶ)=2とする。この場合、第1のブロック割合は約0.83となって、第1の割合閾値R1(ここでは、0.8)を超える。よって、ベクトル選択部202は誤差閾値をE1=1.5画素とする。
さらに、ケース2として次の場合を考える。
第1のブロック数=15、第2のブロック数=15、そして、第3のブロック数=6とする。この場合、第1のブロック割合は約0.42となって、第1の寄合閾値R1以下となる。一方、第2のブロック割合は約0.83となって、第2の割合R2(ここでは、0.8)を超える。よって、ベクトル選択部202は誤差閾値をE2=2.5画素とする。
また、ケース3として次の場合を考える。
第1のブロック数=7、第2のブロック数=8、そして、第3のブロック数=21とする。この場合、第1のブロック割合は約0.19となって、第1の割合閾値R1以下となる。さらに、第2のブロック割合は約0.42となって、同様に、第1の割合閾値R1以下となる。よって、ベクトル選択部202は誤差閾値をE3=4.5画素とする。
前述のケース1の場合には、高解像度の画像(ターゲット画像)から得られた”×1階層”の動きベクトルが大多数であり、誤差閾値を小さい値にしても合格対応点の数は十分確保できる。
一方、ケース2の場合には、高解像度の画像から得られた”×1階層”の動きベクトルが大多数ではなく、誤差閾値が小さいと合格対応点の数が十分確保できなくなる。このため、誤差閾値を大き目とすることによって合格対応点の数を十分確保できるようにする。
さらに、ケース3の場合には、低解像度の画像(縮小画像)から得られた”×16階層”の動きベクトルが増加するので、誤差閾値をさらに大きくして合格対応点の数を確保できるようにする。
このように、本発明の第1の実施形態では、ターゲットブロックの各々において、いずれの階層で検出された動きベクトルであるかを判定する。そして、その割合に応じて誤差閾値を変更することによって安定して合格対応点の動きベクトル数を確保することができる。
[第2の実施形態]
続いて、本発明の第2の実施形態に係るカメラの一例について説明する。なお、第2の実施形態に係るカメラの構成は、図1および図2に示すカメラと同様であり、階層ベクトルサーチは図3〜図6で説明したようにして行われる。
図8は、本発明の第2の実施形態に係るカメラにおけるベクトル選択処理を説明するためのフローチャートである。なお、図8において、図7に示すステップと同一のステップについては同一の参照符号を付して説明を省略する。
第2のブロック割合が第2の割合閾値R2以下であると(ステップS503において、NO)、ベクトル選択部202は、”×16階層”における動きベクトル(予め設定された解像度以下の解像度のベクトル検出対象画像で検出された動きベクトル)を除く(ステップS605)。そして、ベクトル選択部202はステップS504の処理に進む。なお、ステップS502又はS504の処理の後、ステップS506の処理が行われる。
第2の実施形態において、前述のケース1の場合には、第1の実施形態と同様に、ベクトル選択部202は誤差閾値をE1=1.5画素とする。ケース2の場合にも、第1の実施形態と同様に、ベクトル選択部202は誤差閾値をE2=2.5画素とする。
一方、ケース3の場合には、第1のブロック割合は約0.19であり、第2のブロック割合は約0.42であるので、ベクトル選択部202は、ステップS605の処理に進んで、”×16階層”の動きベクトルを除いて、ステップS504において、誤差閾値をE2=2.5画素とする。
第2の実施形態においては、第1の実施形態と同様に、ケース1の場合には、誤差閾値を小さい値にしても合格対応点の数は十分確保できる。また、ケース2の場合には、合格対応点数を十分確保するための、誤差閾値を大き目にする。
ところで、ケース1およびケース2のように、”×16階層”の動きベクトルが少数であれば、合格対応点をカウントする際にカメラの移動はあまり影響を及ぼさない。一方、ケース3のように、”×16階層”の動きベクトルが多数となると、合格対応点をカウントする際にカメラの移動は悪影響を及ぼすことがある。
このため、ケース3のような場合は、ベクトル選択部202は、”×16階層”ベクトルを除いて合格対応点判定に悪影響が及ばないようにする。
このように、本発明の第2の実施形態では、第1の実施形態と同様に、ターゲットブロックの各々において、いずれの階層で検出された動きベクトルであるかを判定する。そして、その割合に応じて誤差閾値を変更することによって安定して合格対応点の動きベクトル数を確保することができる。
さらに、第2の実施形態では、低解像度の画像で検出された動きベクトルが多い場合には、このような動きベクトルを除いて、合格対応点判定に悪影響を及ぼさないようにすることができる。
上述の説明から明らかなように、図2に示す例においては、階層ベクトルサーチ部201が動きベクトル検出手段として機能し、ベクトル選択部202が生成手段として機能する。また、アフィン係数算出部203およびアフィン変換部204は補正手段として機能する。
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
また、上記の実施の形態の機能を制御方法として、この制御方法を画像処理装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを画像処理装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 制御部
104 光学系
105 撮像部
106 A/D変換部
107 画像処理部
108 記録媒体
201 階層ベクトルサーチ部
202 ベクトル選択部
203 アフィン係数算出部
204 アフィン変換部

Claims (10)

  1. ターゲット画像に設定された複数のターゲットブロックの各々において被写体の動きベクトルを検出して、当該動きベクトルに応じて元画像における前記被写体の位置ずれを補正する画像処理装置であって、
    前記ターゲット画像についてその解像度を変化させて得られた複数のベクトル検出対象画像において前記解像度が低いベクトル検出対象画像から順に前記動きベクトルを検出するベクトル検出手段と、
    前記動きベクトルの信頼度が所定の信頼度以下となったベクトル検出対象画像よりも解像度が低いベクトル検出対象画像で検出された動きベクトルを合成して合成動きベクトルを生成する生成手段と、
    前記合成動きベクトルに応じて前記元画像における前記被写体の位置ずれを補正する補正手段と、
    を有することを特徴とする画像処理装置。
  2. 前記ベクトル検出手段は、検出された動きベクトルの信頼度が前記所定の信頼度以下となった場合、当該所定の信頼度以下の動きベクトルが検出されたベクトル検出対象画像よりも解像度が高いベクトル検出対象画像において前記所定の信頼度以下の動きベクトルが検出されたベクトル検出対象画像のターゲットブロックに対応するターゲットブロックで動きベクトルの検出を行わないことを特徴とする請求項1に記載の画像処理装置。
  3. 前記生成手段は、前記ベクトル検出対象画像の各々において前記動きベクトルが検出されたターゲットブロックの数を求めて、前記ターゲットブロックの数に対する前記動きベクトルが検出されたターゲットブロックの数との割合に応じて、前記動きベクトルを合成する際に前記動きベクトルを用いるか否かを判定するための誤差閾値を変更することを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記誤差閾値は、撮像によって前記元画像を得た際の撮像装置のぶれに起因する動きベクトルの影響を除くための閾値であることを特徴とする請求項3に記載の画像処理装置。
  5. 前記生成手段は、前記ベクトル検出対象画像において前記ターゲットブロックの数に対する前記動きベクトルが検出されたターゲットブロックの数の割合を示す第1のブロック割合が所定の第1の割合閾値よりも大きいと、前記誤差閾値として予め定められた第1の誤差閾値を設定することを特徴とする請求項3又は4のいずれか1項に記載の画像処理装置。
  6. 前記生成手段は、前記第1のブロック割合が前記第1の割合閾値以下である場合、前記解像度が予め設定された解像度よりも高いベクトル検出対象画像において前記ターゲットブロックの数に対する前記動きベクトルが検出されたターゲットブロックの数との割合を示す第2のブロック割合が所定の第2の割合閾値よりも大きいと前記第1の誤差閾値よりも大きい第2の誤差閾値を設定することを特徴とする請求項5に記載の画像処理装置。
  7. 前記生成手段は、前記第2のブロック割合が前記第2の割合閾値以下である場合、前記第2の誤差閾値よりも大きい第3の誤差閾値を設定することを特徴とする請求項6に記載の画像処理装置。
  8. 前記生成手段は、前記第2のブロック割合が前記第2の割合閾値以下である場合、前記予め設定された解像度以下の解像度のベクトル検出対象画像で検出された動きベクトルを用いないと決定し、前記第2の誤差閾値を設定することを特徴とする請求項6に記載の画像処理装置。
  9. ターゲット画像に設定された複数のターゲットブロックの各々において被写体の動きベクトルを検出して、当該動きベクトルに応じて元画像における前記被写体の位置ずれを補正する画像処理装置の制御方法であって、
    前記ターゲット画像についてその解像度を変化させて得られた複数のベクトル検出対象画像において前記解像度が低いベクトル検出対象画像から順に前記動きベクトルを検出するベクトル検出ステップと、
    前記動きベクトルの信頼度が所定の信頼度以下となったベクトル検出対象画像よりも解像度が低いベクトル検出対象画像で検出された動きベクトルを合成して合成動きベクトルを生成する生成ステップと、
    前記合成動きベクトルに応じて前記元画像における前記被写体の位置ずれを補正する補正ステップと、
    を有することを特徴とする制御方法。
  10. ターゲット画像に設定された複数のターゲットブロックの各々において被写体の動きベクトルを検出して、当該動きベクトルに応じて元画像における前記被写体の位置ずれを補正する画像処理装置で用いられる制御プログラムであって、
    前記画像処理装置が備えるコンピュータに、
    前記ターゲット画像についてその解像度を変化させて得られた複数のベクトル検出対象画像において前記解像度が低いベクトル検出対象画像から順に前記動きベクトルを検出するベクトル検出ステップと、
    前記動きベクトルの信頼度が所定の信頼度以下となったベクトル検出対象画像よりも解像度が低いベクトル検出対象画像で検出された動きベクトルを合成して合成動きベクトルを生成する生成ステップと、
    前記合成動きベクトルに応じて前記元画像における前記被写体の位置ずれを補正する補正ステップと、
    を実行させることを特徴とする制御プログラム。
JP2015139645A 2015-07-13 2015-07-13 画像処理装置、その制御方法、および制御プログラム Active JP6532328B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015139645A JP6532328B2 (ja) 2015-07-13 2015-07-13 画像処理装置、その制御方法、および制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015139645A JP6532328B2 (ja) 2015-07-13 2015-07-13 画像処理装置、その制御方法、および制御プログラム

Publications (2)

Publication Number Publication Date
JP2017022597A true JP2017022597A (ja) 2017-01-26
JP6532328B2 JP6532328B2 (ja) 2019-06-19

Family

ID=57888417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015139645A Active JP6532328B2 (ja) 2015-07-13 2015-07-13 画像処理装置、その制御方法、および制御プログラム

Country Status (1)

Country Link
JP (1) JP6532328B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019036820A (ja) * 2017-08-14 2019-03-07 キヤノン株式会社 撮像装置およびその制御方法
JP2019067169A (ja) * 2017-10-02 2019-04-25 富士通株式会社 移動ベクトル算出方法、装置、プログラム、及びノイズ除去処理を含む移動ベクトル算出方法
JP2022011663A (ja) * 2020-06-30 2022-01-17 エスゼット ディージェイアイ テクノロジー カンパニー リミテッド 装置、撮像装置、移動体、プログラム及び方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008541508A (ja) * 2005-04-28 2008-11-20 テキサス インスツルメンツ インコーポレイテッド 動き安定化
JP2009278578A (ja) * 2008-05-19 2009-11-26 Sony Corp 画像処理装置および画像処理方法
JP2015111764A (ja) * 2013-12-06 2015-06-18 キヤノン株式会社 画像処理装置、撮像装置および制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008541508A (ja) * 2005-04-28 2008-11-20 テキサス インスツルメンツ インコーポレイテッド 動き安定化
JP2009278578A (ja) * 2008-05-19 2009-11-26 Sony Corp 画像処理装置および画像処理方法
JP2015111764A (ja) * 2013-12-06 2015-06-18 キヤノン株式会社 画像処理装置、撮像装置および制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019036820A (ja) * 2017-08-14 2019-03-07 キヤノン株式会社 撮像装置およびその制御方法
JP7030446B2 (ja) 2017-08-14 2022-03-07 キヤノン株式会社 像振れ補正装置およびその制御方法
JP2019067169A (ja) * 2017-10-02 2019-04-25 富士通株式会社 移動ベクトル算出方法、装置、プログラム、及びノイズ除去処理を含む移動ベクトル算出方法
JP7027776B2 (ja) 2017-10-02 2022-03-02 富士通株式会社 移動ベクトル算出方法、装置、プログラム、及びノイズ除去処理を含む移動ベクトル算出方法
JP2022011663A (ja) * 2020-06-30 2022-01-17 エスゼット ディージェイアイ テクノロジー カンパニー リミテッド 装置、撮像装置、移動体、プログラム及び方法

Also Published As

Publication number Publication date
JP6532328B2 (ja) 2019-06-19

Similar Documents

Publication Publication Date Title
JP5531194B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP5847228B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP4218022B2 (ja) 合成画像を生成する方法
JP6553826B1 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2010288110A (ja) 画像処理装置および画像処理方法
US11146746B2 (en) Image processing device, image capturing device, image processing method, and storage medium
US11445109B2 (en) Image processing device, image capturing device, image processing method, and storage medium
JP2008147951A (ja) 補間フレーム作成方法および補間フレーム作成装置
JP2007088828A (ja) 手ぶれ補正装置
US20120133786A1 (en) Image processing method and image processing device
WO2014132754A1 (ja) 画像処理装置および画像処理方法
JP2009055410A (ja) 画像処理装置および画像処理方法
JP6532328B2 (ja) 画像処理装置、その制御方法、および制御プログラム
JP2012049603A (ja) 画像処理装置および画像処理プログラム
JP2016181023A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP6282133B2 (ja) 撮像装置、その制御方法、および制御プログラム
JP2010015241A (ja) 超解像撮像装置及び画像処理方法
JP5424068B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体
JP2012003503A (ja) 画像処理装置およびその制御方法、並びにプログラム
JP6604783B2 (ja) 画像処理装置、撮像装置および画像処理プログラム
JP2012175289A (ja) 画像処理装置、及びその制御方法
JP6091082B2 (ja) 画像処理装置、画像処理方法、及び、プログラム
JP2017188839A (ja) 画像処理装置およびその制御方法、撮像装置、プログラム
JP2011170488A (ja) 画像処理装置、画像処理方法、画像処理プログラム、及び、電子機器
KR101854354B1 (ko) 다중센서 기반 영상보정 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190521

R151 Written notification of patent or utility model registration

Ref document number: 6532328

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151