(57)【要約】【課題】動きベクトルの信頼性が低い場合においてもずれ補正パラメータの精度を向上させる。【解決手段】信頼性判定部２０１は第１の画像における第１のターゲットブロックと当該第１のターゲットブロックに対応する第２の画像における参照ブロックとを比較して、特徴パターンが存在する参照ブロックを判定する。そして、信頼性判定部は動きベクトル検出部２０２とともに、特徴パターンが存在する参照ブロックを第２のターゲットブロックとし、第１の画像において第２のターゲットブロックに対応する参照ブロックを設定して、第２のターゲットブロックと第１の画像における参照ブロックとの相関値を求めて動きベクトルを検出する。【選択図】図２
2015056043.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像と第２の画像との間の動きベクトルを求める画像処理装置であって、
前記第１の画像における第１のターゲットブロックと前記第１のターゲットブロックに対応する前記第２の画像における参照ブロックを比較し、特徴パターンが存在する参照ブロックを判定する判定手段と、
前記判定手段によって前記特徴パターンが存在すると判定された前記参照ブロックを第２のターゲットブロックとし、前記第１の画像において前記第２のターゲットブロックに対応する参照ブロックを設定して、前記第２のターゲットブロックと前記第１の画像における参照ブロックとの相関値を求めて動きベクトルを検出する動きベクトル検出手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記判定手段は、前記第１のターゲットブロックと前記第２の画像における参照ブロックとの相関値を表す第１の相関値マップを生成して、当該第１の相関値マップに応じて前記特徴パターンを備える前記参照ブロックが存在する否かを判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判定手段は、前記第１の相関値マップが線形状であり、かつ当該線が途切れていると、前記特徴パターンを備える前記参照ブロックが存在すると判定して、前記線の途切れ部分に位置する前記参照ブロックを前記第２のターゲットブロックとして設定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記判定手段は、前記第１の相関値マップが複数の極小値を有し、かつ当該極小値の分布密度が予め定められた閾値よりも低い領域が存在すると、前記特徴パターンを備える前記参照ブロックが存在すると判定して、前記極小値の分布密度が予め定められた閾値よりも低い領域に位置する前記参照ブロックを前記第２のターゲットブロックとして設定することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
複数の前記第１のターゲットブロックが存在する際、前記動きベクトル検出手段は、前記第１のターゲットブロックの各々について、前記第１のターゲットブロックに対応する第１の動きベクトル又は前記第２のターゲットブロックに対応する第２の動きベクトルを検出して、前記第１の動きベクトル又は前記第２の動きベクトルを検出する際、前記第１の動きベクトルおよび前記第２の動きベクトルの起点を同一の画像に位置づけることを特徴とする請求項１〜請求項４のいずれか１項に記載の画像処理装置。
【請求項６】
第１の画像と第２の画像との間の動きベクトルを求める画像処理装置の制御方法であって、
前記第１の画像における第１のターゲットブロックと前記第１のターゲットブロックに対応する前記第２の画像における参照ブロックを比較し、特徴パターンが存在する参照ブロックを判定する判定ステップと、
前記判定ステップで前記特徴パターンが存在すると判定された前記参照ブロックを第２のターゲットブロックとし、前記第１の画像において前記第２のターゲットブロックに対応する参照ブロックを設定して、前記第２のターゲットブロックと前記第１の画像における参照ブロックとの相関値を求めて動きベクトルを検出する動きベクトル検出ステップと、
を有することを特徴とする制御方法。
【請求項７】
第１の画像と第２の画像との間の動きベクトルを求める画像処理装置で用いられる制御プログラムであって、
前記画像処理装置が備えるコンピュータに、
前記第１の画像における第１のターゲットブロックと前記第１のターゲットブロックに対応する前記第２の画像における参照ブロックを比較し、特徴パターンが存在する参照ブロックを判定する判定ステップと、
前記判定ステップで前記特徴パターンが存在すると判定された前記参照ブロックを第２のターゲットブロックとし、前記第１の画像において前記第２のターゲットブロックに対応する参照ブロックを設定して、前記第２のターゲットブロックと前記第１の画像における参照ブロックとの相関値を求めて動きベクトルを検出する動きベクトル検出ステップと、
を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、その制御方法、および制御プログラムに関し、特に、画像処理装置の１つである撮像装置の動きに起因して生じる被写体像のずれを補正する手法に関する。
【背景技術】
【０００２】
一般に、画像処理装置の１つとしてデジタルカメラなどの撮像装置が知られている。撮像装置においては、撮像の際にユーザの手ぶれなどに起因する撮像装置の動きによって被写体像がぶれてしまうことがある。このような被写体像のぶれを防止するため、撮像装置には手ぶれ補正機能が備えられている。
【０００３】
手ぶれ補正機能には、大きく分けて光学式手ぶれ補正機能と電子式手ぶれ補正機能とがある。そして、電子式手ぶれ補正機能では撮像の結果得られた複数の画像における被写体像のずれを画像処理によって補正している。
【０００４】
例えば、撮像の結果得られた２つの画像において特徴パターンのマッチング処理を行って複数の動きベクトルを検出して、これら動きベクトルに応じてずれ補正パラメータを推定し被写体像のずれを補正するようにした撮像装置がある（特許文献１参照）。さらに、ここでは、動きベクトルについて信頼性指標値を算出して、信頼性が低い動きベクトルを除外してずれ補正パラメータを推定することによって、信頼性の高いずれ補正パラメータを推定することが行われている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２５８８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、特許文献１に記載の手法では、信頼性が高い動きベクトルを検出することができる状況であっても、次のように信頼性が低いと判定されてしまい、結果的に動きベクトルの検出ができないことがある。
【０００７】
図１４は、従来の撮像装置における動きベクトル検出処理の一例を説明するための図である。
【０００８】
図１４において、ここでは、繰り返しパターン被写体に対する動きベクトルの検出が示されており、動きベクトル検出の基準となるターゲットフレーム（ターゲット画像又は目標画像ともいう）９１３および動きベクトルを検出する対象となる参照フレーム（参照画像）９１４が示されている。領域９１５および９１６の各々にはフレーム毎の繰り返しパターンが存在する。
【０００９】
ブロックマッチングの基準となるターゲットブロック（目標ブロック）９１７を用いて、参照フレームに設定されるサーチ範囲９１８についてブロックマッチング処理を行って差分絶対値和テーブル（ＳＡＤテーブル）を生成する。これによって、例えば、ＳＡＤテーブル９１９が生成される。ＳＡＤテーブル９１９において、白い部分はＳＡＤ値（つまり、相関値）が高いことを示し、黒い部分はＳＡＤ値が低いことを示している。
【００１０】
ターゲットブロック９１７は丸型の模様を含んでおり、サーチ範囲９１８上でその模様が繰り返されているので、ＳＡＤテーブル９１９はサーチ範囲９１８上の丸型模様が存在する箇所において低いＳＡＤ値（ＳＡＤ極小値）を示す。これによって、上記の特許文献１に記載の手法では、信頼性指標値が小さくなって、信頼性が低いと判定されることになる。
【００１１】
しかしながら、図示の例では、サーチ範囲９１８上に丸型模様ではない数字の模様が存在する。このため、近傍に動きベクトル検出に有効な模様があるにも拘わらず、動きベクトルが破棄される結果、動きベクトル検出が行われないことになってしまう。
【００１２】
図１５は、従来の撮像装置における動きベクトル検出処理の他の例を説明するための図である。
【００１３】
図１５において、ここでは、線状の被写体に対する動きベクトルの検出が示されており、動きベクトル検出の基準となるターゲットフレーム（ターゲット画像）９０１および動きベクトルを検出する対象である参照フレーム（参照画像）９０２が示されている。ブロックマッチングの基準となるターゲットブロック９０３を用いて、参照フレームに設定されるサーチ範囲９０４についてブロックマッチング処理を行って差分絶対値和テーブル（ＳＡＤテーブル）を生成する。
【００１４】
図１６は、図１５に示す手法で生成されたＳＡＤテーブルを示す図である。また、図１７は図１６に示すＳＡＤテーブルを３次元的に表現したＳＡＤテーブルを示す図である。
【００１５】
ターゲットブロック９０３は線状の模様であるので、参照フレーム９０２上のサーチ範囲９０４において同様の模様が線状の被写体に沿って数多く検出されることになる。このため、サーチ範囲９０４において対応するブロックを特定することができず、結果的に、正しく動きベクトルを検出することができない。
【００１６】
つまり、ＳＡＤテーブルにおいては、図１７に示すように、ＳＡＤ値が低い部分（相関が高い部分）が溝状に現れる。このため、これら溝のいずれの位置が正しい対応ブロックの位置か特定できず、正しく動きベクトルを検出することができないことになる。
【００１７】
上述のような状況においても、ＳＡＤテーブルに溝状の相関値分布があるか否かを判定することによって、動きベクトルの信頼性を判定することができる。そして、動きベクトルの信頼性が判定できれば、信頼性が低い動きベクトルを除外してずれ補正パラメータを推定して、信頼性の高いずれ補正パラメータを得ることができる。
【００１８】
図１８は、従来の撮像装置における動きベクトル検出処理のさらに他の例を説明するための図である。
【００１９】
図１８において、ここでは、ターゲットブロック９０３の右隣のターゲットブロック９１０に係る動きベクトルの検出が示されており、ここでも、同様の理由によって検出される動きベクトルの信頼性が低くなる。そして、サーチ範囲９１１上に線分の途切れが存在し、近傍に動きベクトル検出に有効な模様があるにも拘わらず、動きベクトルが破棄される結果、動きベクトル検出が行われないことになってしまう。
【００２０】
そこで、本発明の目的は、動きベクトルの信頼性が低い場合においてもずれ補正パラメータの精度を向上させることができる画像処理装置、その制御方法、および制御プログラムを提供することである。
【課題を解決するための手段】
【００２１】
上記の目的を達成するため、本発明による画像処理装置は、第１の画像と第２の画像との間の動きベクトルを求める画像処理装置であって、前記第１の画像における第１のターゲットブロックと前記第１のターゲットブロックに対応する前記第２の画像における参照ブロックを比較し、特徴パターンが存在する参照ブロックを判定する判定手段と、前記判定手段によって前記特徴パターンが存在すると判定された前記参照ブロックを第２のターゲットブロックとし、前記第１の画像において前記第２のターゲットブロックに対応する参照ブロックを設定して、前記第２のターゲットブロックと前記第１の画像における参照ブロックとの相関値を求めて動きベクトルを検出する動きベクトル検出手段と、を有することを特徴とする。
【００２２】
本発明による制御方法は、第１の画像と第２の画像との間の動きベクトルを求める画像処理装置の制御方法であって、前記第１の画像における第１のターゲットブロックと前記第１のターゲットブロックに対応する前記第２の画像における参照ブロックを比較し、特徴パターンが存在する参照ブロックを判定する判定ステップと、前記判定ステップで前記特徴パターンが存在すると判定された前記参照ブロックを第２のターゲットブロックとし、前記第１の画像において前記第２のターゲットブロックに対応する参照ブロックを設定して、前記第２のターゲットブロックと前記第１の画像における参照ブロックとの相関値を求めて動きベクトルを検出する動きベクトル検出ステップと、を有することを特徴とする。
【００２３】
本発明による制御プログラムは、第１の画像と第２の画像との間の動きベクトルを求める画像処理装置で用いられる制御プログラムであって、前記画像処理装置が備えるコンピュータに、前記第１の画像における第１のターゲットブロックと前記第１のターゲットブロックに対応する前記第２の画像における参照ブロックを比較し、特徴パターンが存在する参照ブロックを判定する判定ステップと、前記判定ステップで前記特徴パターンが存在すると判定された前記参照ブロックを第２のターゲットブロックとし、前記第１の画像において前記第２のターゲットブロックに対応する参照ブロックを設定して、前記第２のターゲットブロックと前記第１の画像における参照ブロックとの相関値を求めて動きベクトルを検出する動きベクトル検出ステップと、を実行させることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、特徴パターンが存在すると判定された参照ブロックを第２のターゲットブロックとし、第１の画像において第２のターゲットブロックに対応する参照ブロックを設定して、第２のターゲットブロックと第１の画像における参照ブロックとの相関値を求めて動きベクトルを検出するようにしたので、動きベクトルの信頼性が低い場合には、信頼性の高い動きベクトルが再検出されることが可能となって、ずれ補正パラメータの精度を向上させることできる。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１の実施形態による画像処理装置を備える撮像装置の一例を示すブロック図である。
【図２】図１に示す画像処理部１０７の構成についてその一例を示すブロック図である。
【図３】図２に示す信頼性判定部の動作を説明するためのフローチャートである。
【図４】図２に示す信頼性判定部で生成されるＳＡＤテーブルの一例を示す図である。
【図５】図１に示すカメラにおいてＸ方向のずれ量に対する評価値をプロットした図である。
【図６】図５において第１の閾値以上で第２の閾値未満である評価値の頻度をＸ方向のずれ量毎にプロットした図である。
【図７】図１８に示すＳＡＤテーブルによるＸ方向のずれ量に対する評価値をプロットした図である。
【図８】図７において第１の閾値以上で第２の閾値未満である評価値の頻度をＸ方向のずれ量毎にプロットした図である。
【図９】図１８に示すターゲットブロックに対する動きベクトルの再検出処理を説明するための図である。
【図１０】本発明の第２の実施形態による画像処理装置を備えるカメラにおいて信頼性判定部の動作を説明するためのフローチャートである。
【図１１】本発明の第２の実施形態による画像処理装置を備えるカメラにおいてＳＡＤテーブルによるＸ方向のずれ量に対する評価値をプロットした図である。
【図１２】図１１において第１の極小値から評価閾値までの範囲に存在する極小値の頻度をＸ方向のずれ量毎にプロットした図である。
【図１３】本発明の第２の実施形態による画像処理装置を備えるカメラにおける動きベクトルの再検出処理を説明するための図である。
【図１４】従来の撮像装置における動きベクトル検出処理の一例を説明するための図である。
【図１５】従来の撮像装置における動きベクトル検出処理の他の例を説明するための図である。
【図１６】図１５に示す手法で生成されたＳＡＤテーブルを示す図である。
【図１７】図１６に示すＳＡＤテーブルを３次元的に表現したＳＡＤテーブルを示す図である。
【図１８】従来の撮像装置における動きベクトル検出処理のさらに他の例を説明するための図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施の形態による画像処理装置の一例について図面を参照して説明する。
【００２７】
なお、ここでは、本発明の実施の形態による画像処理装置をデジタルカメラなどの撮像装置に備えて、撮像装置による撮像の結果得られた画像において被写体像のずれを補正する場合について説明する。
【００２８】
［第１の実施形態］
図１は、本発明の第１の実施形態による画像処理装置を備える撮像装置の一例を示すブロック図である。
【００２９】
図示の撮像装置は、例えば、デジタルカメラ（以下単にカメラと呼ぶ）であり、制御部１０１を有している。制御部１０１は、例えば、ＣＰＵであり、Ｒ０Ｍ１０２から動作プログラムを読み出して、当該動作プログラムをＲＡＭ１０３に展開して実行することによってカメラ１００全体の制御を行う。
【００３０】
ＲＯＭ１０２は、書き換え可能な不揮発性メモリであって、前述の動作プログラムに加えて、カメラの動作に必要なパラメータなどが記憶されている。ＲＡＭ１０３は、書き換え可能な揮発性メモリであって、カメラ１００の動作において出力された各種データの一時的な記憶領域として用いられる。ここでは、ＲＡＭ１０３には、カメラ１００の動きに起因して生じる画像（参照画像という）における被写体像のずれを検出するために必要となるターゲット画像および補正前の参照画像などが一時的に記憶される。
【００３１】
撮像部１０５は、例えば、ＣＣＤ又はＣＭＯＳセンサなどの撮像素子を備えている。撮像部１０５は、光電変換によって光学系１０４を介して撮像素子に結像した光学像に応じたアナログ画像信号をＡ／Ｄ変換部１０６に出力する。Ａ／Ｄ変換部１０６は、アナログ画像信号に対してＡ／Ｄ変換処理を行ってデジタル画像信号（画像データ）を得て、当該画像データをＲＡＭ１０３に記憶する。
【００３２】
図示のカメラ１００では、画像処理部１０７が撮像の結果得られた画像データについて各種の画像処理を行う。例えば、画像処理部１０７はカメラ１００の動きに起因して生じた被写体像のずれを補正する補正処理を行う。
【００３３】
図２は、図１に示す画像処理部１０７の構成についてその一例を示すブロック図である。
【００３４】
図示の画像処理部１０７には、被写体像のずれを検出する対象である参照画像（第２の画像）が入力されるとともに、補正際の基準となるターゲット画像（第１の画像）が入力される。なお、ターゲット画像および参照画像は、制御部１０１によってＲＡＭ１０３から読み出されて画像処理部１０７に与えられるものとする。
【００３５】
画像処理部１０７は動きベクトル検出部２０２を有しており、動きベクトル検出部２０２は、ターゲット画像におけるターゲットブロック（ここでは、第１のターゲットブロック）毎に、参照画像における参照ブロック（ここでは、第１の参照ブロック）毎に被写体像の動きベクトルを検出する。例えば、動きベクトル検出部２０２はターゲット画像と参照画像との近傍の領域において被写体像を比較する。ここでは、動きベクトル検出部２０２は所謂ブロックマッチング手法を用いて、ターゲット画像と参照画像との間における同一のパターンの移動に応じて動きベクトルを検出する。
【００３６】
信頼性判定部２０１は、動きベクトル検出部２０２で検出された各ブロックの動きベクトルが線状又は線形状の被写体（線形状の部分）において検出されたか否かを判定する。動きベクトルが線状の被写体において検出されたものでないと、信頼性判定部２０１は当該動きベクトルをそのまま出力する。一方、動きベクトルが線状の被写体で検出されたものであると、信頼性判定部２０１はその周辺において動きベクトル検出に有効な模様があれば動きベクトルの再検出を行い、有効な縞模様がなければ当該動きベクトルを排除する。
【００３７】
前述の図１５を参照すると、ここでは、ターゲット画像９０１は、６×６＝３６個のターゲットブロック９０１ａが存在する。動きベクトル検出部２０２はターゲットブロック９０１ａの各々に対応する３６個の動きベクトルを検出する。
【００３８】
図１５において右半分に位置する１８個のターゲットブロック９０１ａについては線状の被写体が存在しないので、信頼性判定部２０１は動きベクトル検出部２０２によって検出された動きベクトルをそのまま出力することになる。一方、左半分に位置する１８個のターゲットブロック９０１ａについては線状の被写体が存在するので、信頼性判定部２０１は動きベクトルの再検出を行うか又は当該動きベクトルを排除される。
【００３９】
図１５に示す例では、左から３列目の６個のターゲットブロック９０１ａについては対応するサーチ範囲９０４に線分の途切れが存在するので、信頼性判定部２０１は動きベクトルの再検出を行うが、それ以外の１２個のターゲットブロック９０１ａについては動きベクトルを排除する。
【００４０】
アフィン係数算出部２０３は、ターゲット画像が有する複数のターゲットブロックの各々の動きベクトルを用いて、各領域（ブロック）の補正に用いる座標変換係数であるアフィン係数を算出する（座標変換係数算出）。なお、アフィン係数算出手法については、例えば、前出の特許文献１に記載の手法が用いられる。そして、アフィン変換部２０７はアフィン係数を用いて参照画像の位置ずれを補正して、補正後の参照画像を出力する。
【００４１】
図３は、図２に示す信頼性判定部２０１の動作（信頼性判定）を説明するためのフローチャートである。動きベクトル検出部２０２からのブロック毎の動きベクトルに基づいて信頼性判定部２０１によって以下の処理が行われる。
【００４２】
信頼性判定を開始すると、信頼性判定部２０１は、まず列方向について、後述する１次元線判定を行い（ステップＳ１０１）、続いて、行方向について、後述する１次元線判定を行う（ステップＳ１０２）。そして、信頼性判定部２０１は列方向および行方向ともに線（線分）でないか否かを判定する（ステップＳ１０３）。
【００４３】
列方向および行方向ともに線でないと判定すると（ステップＳ１０３において、ＹＥＳ）、信頼性判定部２０１は動きベクトルを更新せずに（ステップＳ１０４）、信頼性判定を修了する。一方、列方向および行方向の少なくとも一方が線であると判定すると（ステップＳ１０３において、ＮＯ）、信頼性判定部２０１は列方向が途切れ線で、かつ行方向が線ではないか否かを判定する（ステップＳ１０５）。
【００４４】
列方向が途切れ線で、かつ行方向が線ではないと判定すると（ステップＳ１０５において、ＹＥＳ）、信頼性判定部２０１は列方向のターゲットブロックを再設定して動きベクトルを再検出する（ステップＳ１０６）。そして、信頼性判定部２０１は信頼性判定を終了する。列方向が途切れ線でないことおよび行方向が線であることの少なくとも一方が満たされると判定すると（ステップＳ１０５において、ＮＯ）、信頼性判定部２０１は列方向が線ではなく、かつ行方向が途切れ線であるか否かを判定する（ステップＳ１０７）。
【００４５】
列方向が線ではなく、かつ行方向が途切れ線であると判定すると（ステップＳ１０７において、ＹＥＳ）、信頼性判定部２０１は行方向のターゲットブロックを再設定して動きベクトルを再検出する（ステップＳ１０８）。そして、信頼性判定部２０１は信頼性判定を終了する。一方、列方向が線であることおよび行方向が途切れ線でないことの少なくとも一方が満たされると判定すると（ステップＳ１０７において、ＹＥＳ）、信頼性判定部２０１は動きベクトルを排除する（ステップＳ１０９）。そして、信頼性判定部２０１は信頼性判定を終了する。
【００４６】
ここで、図３で説明したステップＳ１０１における列方向の１次元線判定について説明する。
【００４７】
図４は、図２に示す信頼性判定部２０１で生成されるＳＡＤテーブルの一例を示す図である。
【００４８】
図４に示すＳＡＤテーブル（つまり、第１の相関値マップ）は図１６に示すＳＡＤテーブルと同等のテーブルであり、列におけるＳＡＤ（つまり、相関値）最小値が黒塗りで示されている。例えば、Ｘ方向のずれ量が”−１０”である列のＳＡＤ最小値は、Ｙ方向のずれ量が”０”の行の”１”５である。また、Ｘ方向のずれ量が”３”である列のＳＡＤ最小値は、Ｙ方向のずれ量が”３”の行の”２”である。
【００４９】
さらに、ここでは、列のＳＡＤ最小値を列のＳＡＤ平均値で正規化して、その値を評価値とする。例えば、Ｘ方向のずれ量が”−１０”である列のＳＡＤ平均値は”８８”であるので、その評価値は１５／８８＝０．１７となる。また、Ｘ方向のずれ量が”３”の列のＳＡＤ平均値は”８９”であるので、その評価値は２／８９＝０．０２となる。
【００５０】
図５は、図１に示すカメラにおいてＸ方向のずれ量に対する評価値をプロットした図である。
【００５１】
前述のようにして、各列についてＳＡＤ最小値を正規化すると、図５に示すように列毎の評価値が得られる。なお、ここでは、正規化、つまり、評価値を得る際、列毎にＳＡＤ最小値をＳＡＤ平均値で除算して評価値を得るようにしたが、他の手法によって評価値を得るようにしてもよい。例えば、列毎のＳＡＤ値の積算値、最大値、又は最大値と最小値の差分値などでＳＡＤ最小値を除算して評価値を求めるようにしてもよい。さらには、Ｘ方向の各ずれ量に対応する列毎のＳＡＤ最小値の平均値、積算値、最大値、又は最大値と最小値の差分値などでＳＡＤ最小値を除算して評価値を求めるようにしてもよい。
【００５２】
図２に示す信頼性判定部２０１は、列方向の１次元線判定において第１の閾値以上で第２の閾値未満である評価値の割合が第３の閾値以上であると、ＳＡＤテーブルが溝状であるとして線と判定する。いま、第１の閾値を”０”、第２の閾値を”０．３”、そして、第３閾値を”０．５”とする。図５に示す例において、第１の閾値以上でかつ第２閾値未満である評価値の数は”２１”であり、その割合は２１／２１＝１となる。そして、当該割合は第３の閾値以上であるので、信頼性判定部２０１は線として判定することになる。線と判定した場合には、信頼性判定部２０１は当該線が途切れ線であるか又は完全線であるか否かを判定する。
【００５３】
図６は、図５において第１の閾値以上で第２の閾値未満である評価値の頻度をＸ方向のずれ量毎にプロットした図である。
【００５４】
図６においては、溝がＸ方向のずれ量の全域に渡り分布しているので（つまり、分布密度が高い）、信頼性判定部２０１は上記の線が完全線であって途切れ線ではないと判定する。
【００５５】
図１８に示すＳＡＤテーブル９１２についいても、図１６に示すＳＡＤテーブルと同様にして列方向の１次元線判定が行われる。
【００５６】
図７は、図１８に示すＳＡＤテーブル９１２によるＸ方向のずれ量に対する評価値をプロットした図である。
【００５７】
図７に示す例において、第１の閾値以上でかつ第２閾値未満である評価値の数は”１４”であり、その割合は１４／２１＝１となる。そして、当該割合は第３の閾値（ここでは、０．５）以上であるので、信頼性判定部２０１は線として判定することになる。線と判定した場合には、信頼性判定部２０１は当該線が途切れ線であるか又は完全線であるか否かを判定する。
【００５８】
図８は、図７において第１の閾値以上で第２の閾値未満である評価値の頻度をＸ方向のずれ量毎にプロットした図である。
【００５９】
図８においては、溝の分布はＸ方向のずれ量＝３で途切れているので、信頼性判定部２０１は上記の線が途切れ線であると判定する。また、対応するＹ方向のずれ量は、図７から”３”となる。よって、信頼性判定部２０１は当該線の途切れ位置（Ｘ，Ｙ）＝（３，３）を列ターゲットブロックのずらし量とする。
【００６０】
なお、列方向の１次元線判定ではＸ方向ずれ量に対して評価値を求めるが、行方向の１次元線判定においてＹ方向ずれ量に対する評価値を求めることになる。行方向における処理は列方向と同様である。
【００６１】
ところで、図１５に示すターゲットブロック９０３については、信頼性判定部２０１は列が完全線、そして、行は線ではないと判定するので、前述の図３に示すフローチャートで説明したように、ステップＳ１０９において動きベクトルは除外されることになる。
【００６２】
一方、図１８に示すターゲットブロック９１０については、信頼性判定部２０１は列が途切れ線、そして、行は線ではないと判定するので、前述の図３に示すフローチャートで説明したように、ステップＳ１０６において動きベクトルが再検出されることになる。
【００６３】
図９は、図１８に示すターゲットブロック９１０に対する動きベクトルの再検出処理を説明するための図である。
【００６４】
動きベクトルの再検出を行う際には、参照画像９０２（ここでは、第２の画像）上に新たに列ターゲットブロック３０１（ここでは、第２のターゲットブロック）が再設定され、さらに、ターゲット画像９０１（ここでは、第１の画像）上に列サーチ範囲３０２が再設定される。この際、列ターゲットブロック３０１はターゲット画像９０１上に列ターゲットブロックずらし量（３，３）だけずらされて再設定される。列サーチ範囲３０２は、参照画像９０１上に同一のずらし量だけずらされて再設定される。
【００６５】
ここで、参照ブロック３０３は列ターゲットブロック３０１に対して最小ＳＡＤ値となるブロックであり、ＳＡＤテーブル３０４は参照ブロック３０３に対応するＳＡＤテーブルである。そして、ここでは、図示のように動きベクトル３０５が再検出されることになる。
【００６６】
なお、他のターゲットブロックについては動きベクトルの起点がターゲット画像９０１上にある。このため、再検出動きベクトル３０５の起点もターゲット画像９０１上になるように、動きベクトル（第１の動きベクトル又は第２の動きベクトル）の起点はターゲット画像９０１上の参照ブロック３０３の中心とされる。
【００６７】
上述のようにして、補正された参照画像は画像処理部１０７から出力されて、補正後の参照画像として記録媒体１０８に記録される。記録媒体１０８は、例えば、カメラ１００に備えられた内部メモリ又はカメラ１００に着脱可能に装着されるメモリカード又はＨＤＤなどの記録装置である。
【００６８】
なお、撮像の結果得られた画像において被写体像のずれを補正しない場合には、画像処理部１０７はＡ／Ｄ変換部１０６から出力された画像データに対して、所定の変換処理および符号化処理を行って、記録媒体１０８に記録する。
【００６９】
このように、本発明の第１の実施形態では、ターゲット画像および参照画像のうち参照画像を撮像した際のカメラ１００の動きに起因して生じるターゲット画像に対する参照画像のずれを補正することができる。
【００７０】
ここでは、画像処理部１０７はブロックマッチングで検出された動きベクトルが線状の被写体であるか否かを判定して、線状の被写体のでないと検出された動きベクトルをそのまま用いる。一方、線状の被写体であると、画像処理部１０７は動きベクトルの再検出を行う。そして、画像処理部１０７は信頼性の高い動きベクトルが得られない場合には動きベクトルを排除する。
【００７１】
この結果、線状の被写体において動きベクトルが検出された際に動きベクトルの信頼性が低い場合においても信頼性の高い動きベクトルが再検出される可能性が高くなって、ずれ補正パラメータの精度を向上させることができる。
【００７２】
［第２の実施形態］
続いて、本発明の第２の実施形態による画像処理装置を備えるカメラの一例について説明する。
【００７３】
なお、第２の実施形態に係るカメラの構成は図１に示すカメラと同様である。また、画像処理部の構成は図２に示す画像処理部の構成と同様であるが、信頼性判定部２１０の機能が異なる。
【００７４】
図１０は、本発明の第２の実施形態による画像処理装置を備えるカメラにおいて信頼性判定部の動作を説明するためのフローチャートである。
【００７５】
信頼性判定を開始すると、信頼性判定部２０１は、まず列方向について、後述する１次元繰り返し判定を行い（ステップＳ２０１）、続いて、行方向について、後述する１次元繰り返し判定を行う（ステップＳ２０２）。そして、信頼性判定部２０１は列方向および行方向ともに繰り返しパターン（つまり、特徴点を備える特徴パターン）でないか否かを判定する（ステップＳ２０３）。
【００７６】
列方向および行方向ともに繰り返しパターンでないと判定すると（ステップＳ２０３において、ＹＥＳ）、信頼性判定部２０１は動きベクトルを更新せずに（ステップＳ２０４）、信頼性判定を修了する。一方、列方向および行方向の少なくとも一方が繰り返しパターンであると判定すると（ステップＳ２０３において、ＮＯ）、信頼性判定部２０１は列方向が繰り返しパターンで途切れがあるか否かを判定する（ステップＳ２０５）。
【００７７】
列方向が繰り返しパターンでかつ途切れがあると判定すると（ステップＳ２０５において、ＹＥＳ）、信頼性判定部２０１は列方向のターゲットブロックを再設定して動きベクトルを再検出する（ステップＳ２０６）。そして、信頼性判定部２０１は行方向が繰り返しパターンで途切れがあるか否かを判定する（ステップＳ２０７）。
【００７８】
なお、列方向が繰り返しパターンでないことおよび途切れがないことの少なくとも１つが満たされると判定すると（ステップＳ２０５において、ＮＯ）、信頼性判定部２０１はステップＳ２０７の処理に進む。
【００７９】
行方向が繰り返しパターンでかつ途切れがあると判定すると（ステップＳ２０７において、ＹＥＳ）、信頼性判定部２０１は列方向のターゲットブロックを再設定して動きベクトルを再検出する（ステップＳ２０８）。そして、信頼性判定部２０１は動きベクトルが検出されたか否かを判定する（ステップＳ２０９）。
【００８０】
なお、行方向が繰り返しパターンでないことおよび途切れがないことの少なくとも１つが満たされると判定すると（ステップＳ２０７において、ＮＯ）、信頼性判定部２０１はステップＳ２０９の処理に進む。
【００８１】
動きベクトルが検出されないと（ステップＳ２０９において、ＮＯ）、信頼性判定部２０１は動きベクトルを排除して（ステップＳ２１０）、信頼性判定を終了する。一方、動きベクトルが検出されると（ステップＳ２０９において、ＹＥＳ）、信頼性判定部２０１は信頼性判定を終了する。
【００８２】
ここで、図１０で説明したステップＳ２０１における列方向の１次元繰り返し判定について説明する。
【００８３】
図１１は、本発明の第２の実施形態による画像処理装置を備えるカメラにおいてＳＡＤテーブルによるＸ方向のずれ量に対する評価値をプロットした図である。
【００８４】
ここでは、列方向の１次元線判定と同様にして、ＳＡＤテーブルの各列についてＳＡＤ最小値が検出される。なお、評価値は列毎のＳＡＤ最小値とする。図１１は、図１４に示すＳＡＤテーブル９１９に対するＸ方向ずれ量に対する評価値がプロットされている。
【００８５】
列方向の１次元繰り返し判定においては、評価値の第１の極小値（最も小さい極小値）から評価値閾値までの範囲に他の極小値が存在すると、信頼性判定部２０１は繰り返しパターンである判定する。図１１に示す例では、第１の極小値から評価値閾値までの範囲に他の極小値が存在するので、信頼性判定部２０１は繰り返しパターンであると判定する。そして、繰り返しパターンと判定すると、信頼性判定部２０１は、前述のように、途切れ繰り返しパターンであるか又は完全繰り返しパターンであるかを判定する。
【００８６】
図１２は、図１１において第１の極小値から評価閾値までの範囲に存在する極小値の頻度をＸ方向のずれ量毎にプロットした図である。
【００８７】
図１１に示すように、極小値は評価値周期毎に出現するので、Ｘ方向のずれ量も評価値周期毎に出現する。図１２に示すように、繰り返しパターンの分布がＸ方向ずれ量＝３で途切れているので、信頼性判定部２０１は当該繰り返しパターンを途切れ繰り返しパターンと判定する。そして、信頼性判定部２０１は当該途切れ位置（Ｘ，Ｙ）＝（３，０）を列ターゲットブロックのずらし量とする。
【００８８】
なお、列方向の１次元繰り返し判定ではＸ方向ずれ量に対して評価値を求めるが、行方向の１次元繰り返し判定においてＹ方向ずれ量に対する評価値を求めることになる。そして、行方向における処理は列方向と同様である。
【００８９】
上述のようにして列方向および行方向の１次元繰り返しパターン判定を行うと、例えば、図１４に示すターゲットブロック９１７について、列方向は途切れ繰り返しパターンであって、行方向は完全繰り返しパターンと判定される。この結果、図１０に示すフローチャートで説明したように、信頼性判定部２０１はステップＳ２０６において動きベクトルを再検出することになる。
【００９０】
図１３は、本発明の第２の実施形態による画像処理装置を備えるカメラにおける動きベクトルの再検出処理を説明するための図である。
【００９１】
図１３においては、図１４に示すターゲットブロック９１７に対する動きベクトルの再検出処理が示されており、動きベクトルの再検出を行う際には、参照画像９１４上に新たに列ターゲットブロック４０１が再設定され、さらに、ターゲット画像９１３上に列サーチ範囲４０２が再設定される。この際、列ターゲットブロック４０１はターゲット画像９１３上に列ターゲットブロックずらし量（３，０）だけずらされて再設定される。列サーチ範囲４０２は、参照画像９１３上に同一のずらし量だけずらされて再設定される。
【００９２】
ここで、参照ブロック４０３は列ターゲットブロック４０１に対して最小ＳＡＤ値となるブロックであり、ＳＡＤテーブル４０４は参照ブロック４０３に対応するＳＡＤテーブルである。そして、ここでは、図示のように動きベクトル４０５が再検出されることになる。
【００９３】
なお、他のターゲットブロックについては動きベクトルの起点がターゲット画像９１３上にある。このため、再検出動きベクトル４０５の起点もターゲット画像９１３上になるように、動きベクトルの起点はターゲット画像９１３上の参照ブロック４０３の中心とされる。
【００９４】
上述のようにして、補正された参照画像は画像処理部１０７から出力されて、補正後の参照画像として記録媒体１０８に記録される。なお、第１の実施形態と同様に、撮像の結果得られた画像において被写体像のずれを補正しない場合には、画像処理部１０７はＡ／Ｄ変換部１０６から出力された画像データに対して、所定の変換処理および符号化処理を行って、記録媒体１０８に記録する。
【００９５】
このように、本発明の第２の実施形態においても、ターゲット画像および参照画像のうち参照画像を撮像した際のカメラ１００の動きに起因して生じるターゲット画像に対する参照画像のずれを補正することができる。
【００９６】
ここでは、画像処理部１０７はブロックマッチングで検出された動きベクトルが繰り返しパターンであるか否かを判定して、繰り返しパターンでないと検出された動きベクトルをそのまま用いる。一方、繰り返しパターンであると、画像処理部１０７は動きベクトルの再検出を行う。そして、画像処理部１０７は信頼性の高い動きベクトルが得られない場合には動きベクトルを排除する。
【００９７】
この結果、繰り返しパターンにおいて動きベクトルが検出された際に動きベクトルの信頼性が低い場合においても信頼性の高い動きベクトルが再検出される可能性が高くなって、ずれ補正パラメータの精度を向上させることができる。
【００９８】
上述の説明から明らかなように、図２に示す例においては、動きベクトル検出部２０２および信頼性判定部２０１が判定手段および動きベクトル検出手段として機能する。なお、図１に示す例においては、少なくとも制御部１０１および画像処理部１０７が画像処理装置を構成する。
【００９９】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０１００】
例えば、上記の実施の形態の機能を制御方法として、この制御方法を画像処理装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを画像処理装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０１０１】
上記の制御方法および制御プログラムの各々は、少なくとも判定ステップおよび動きベクトル検出ステップを有している。
【０１０２】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵなど）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１０３】
１０１  制御部
１０４  光学系
１０５  撮像部
１０６  Ａ／Ｄ変換部
１０７  画像処理部
１０８  記録媒体
２０１  信頼性判定部
２０２  動きベクトル検出部
２０３  アフィン係数算出部
２０７  アフィン変換部
【図１】
2015056043.tif 000003
【図２】
2015056043.tif 000004
【図３】
2015056043.tif 000005
【図４】
2015056043.tif 000006
【図５】
2015056043.tif 000007
【図６】
2015056043.tif 000008
【図７】
2015056043.tif 000009
【図８】
2015056043.tif 000010
【図９】
2015056043.tif 000011
【図１０】
2015056043.tif 000012
【図１１】
2015056043.tif 000013
【図１２】
2015056043.tif 000014
【図１３】
2015056043.tif 000015
【図１４】
2015056043.tif 000016
【図１５】
2015056043.tif 000017
【図１６】
2015056043.tif 000018
【図１７】
2015056043.tif 000019
【図１８】
2015056043.tif 000020