(57)【要約】【課題】  線状の被写体に対しても正しいずれ補正パラメータを推定することを可能にした画像処理装置及び画像処理方法を提供すること。【解決手段】  ターゲット画像に対して複数の画素からなる所定の大きさのターゲットブロックを設定し、前記ターゲット画像とは異なる参照画像に対して設定された前記ターゲットブロックに対応する複数の参照ブロックとの相関値を求めることで相関値マップを生成する相関値マップ生成手段と、  前記相関値マップから前記ターゲットブロックとの相関が最大となる前記参照ブロックと、前記ターゲットブロックとのずれを前記ターゲットブロックの動きベクトルとして検出するずれ検出手段と、  前記相関値マップから、前記相関値の極小値の分布が線状であるかを評価することで、前記動きベクトルの信頼度を評価する信頼度評価手段と、を有することを特徴とする構成とした。【選択図】  図１
2014056379.tif 000002
【特許請求の範囲】
【請求項１】
ターゲット画像に対して複数の画素からなる所定の大きさのターゲットブロックを設定し、前記ターゲット画像とは異なる参照画像に対して設定された前記ターゲットブロックに対応する複数の参照ブロックとの相関値を求めることで相関値マップを生成する相関値マップ生成手段と、
前記相関値マップから前記ターゲットブロックとの相関が最大となる前記参照ブロックと、前記ターゲットブロックとのずれを前記ターゲットブロックの動きベクトルとして検出するずれ検出手段と、
前記相関値マップから、前記相関値の極小値の分布が線状であるかを評価することで、前記動きベクトルの信頼度を評価する信頼度評価手段と、
を有することを特徴とする画像処理装置。
【請求項２】
ターゲット画像に対して複数の画素からなる所定の大きさのターゲットブロックを設定し、前記ターゲット画像とは異なる参照画像に対して設定された前記ターゲットブロックに対応する複数の参照ブロックとの相関値を求めることで相関値マップを生成する相関値マップ生成手段と、
前記相関値マップから前記ターゲットブロックとの相関が最大となる前記参照ブロックと、前記ターゲットブロックとのずれを前記ターゲットブロックの動きベクトルとして検出するずれ検出手段と、
前記相関値マップの行ごと及び列ごとの少なくとも一方で相関が最大となる相関値を検出し、当該検出した相関値を正規化した評価値に基づいて前記動きベクトルの信頼度を評価する信頼度評価手段と、
を有することを特徴とする画像処理装置。
【請求項３】
前記信頼度評価手段は、前記評価値が所定の範囲内に存在する割合を算出し、前記割合が所定の範囲にある場合に、信頼度が無いと判定することを特徴とする、請求項２に記載の画像処理装置。
【請求項４】
前記信頼度評価手段は、前記評価値を積算した値が所定の値未満にある場合に、前記所定の範囲より大きい値である場合に比べて信頼度が低いと判定することを特徴とする、請求項１乃至または２に記載の画像処理装置。
【請求項５】
前記信頼度評価手段は、行ごとに算出した前記評価値で第１の信頼度を評価し、列ごとに算出した前記評価値で第２の信頼度を評価し、前記第１の信頼度と前記第２の信頼度を基に前記動きベクトルの信頼度を評価することを特徴とする、請求項１乃至４のいずれか１つに記載の画像処理装置。
【請求項６】
前記動きベクトル検出手段は、前記ターゲット画像における各ターゲットブロックについてそれぞれ検出された複数の動きベクトルのうち、前記信頼度評価手段で信頼度が低いと評価された動きベクトルは出力しないことを特徴とする、請求項１乃至５のいずれか１つに記載の画像処理装置。
【請求項７】
撮像手段と、
前記撮像手段から出力される画像データの画像間の被写体像のずれを前記動きベクトルに基づいて補正する請求項１乃至６のいずれか１つに記載の画像処理装置と、
を有することを特徴とする撮像装置。
【請求項８】
ターゲット画像に対して複数の画素からなる所定の大きさのターゲットブロックを設定し、前記ターゲット画像とは異なる参照画像に対して設定された前記ターゲットブロックに対応する複数の参照ブロックとの相関値を求めることで相関値マップを生成する相関値マップ生成ステップと、
前記相関値マップから前記ターゲットブロックとの相関が最大となる前記参照ブロックと、前記ターゲットブロックとのずれを前記ターゲットブロックの動きベクトルとして検出するずれ検出ステップと、
前記相関値マップから、前記相関値の極小値の分布が線状であるかを評価することで、前記動きベクトルの信頼度を評価する信頼度評価ステップと、
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像中に生じる被写体像のずれを補正する技術に関する。
【背景技術】
【０００２】
今日、デジタルカメラ等の撮像装置には、撮像時のユーザの手ぶれ等による撮像装置の動きによって被写体像がぶれてしまうことを防ぐため、様々な手ぶれ補正機能が備えられていることが多い。手ぶれ補正技術には、大きく分けて光学式手ぶれ補正と電子式手ぶれ補正があり、電子式手ぶれ補正では撮像された複数の画像について被写体像のずれを画像処理によって補正している。特許文献１には、撮像された２つの画像間において特徴パターンのマッチングを行うことにより複数の動きベクトルを算出し、それらの動きベクトルからずれ補正パラメータを推定して被写体像のずれを補正する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２５８８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の特許文献に開示された従来技術では、線状の被写体に対して誤った動きベクトルを算出して、誤った動きベクトルを用いて誤ったずれ補正パラメータを推定してしまう。
【０００５】
そこで、本発明の目的は、線状の被写体に対しても正しいずれ補正パラメータを推定することを可能にした画像処理装置及び画像処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、同一シーンを複数回にわけて撮影した画像に対して、複数の画素からなる所定の大きさのブロックを設定し、前記ブロックごとの動きベクトルを検出する動きベクトル検出手段を有し、前記動きベクトル検出手段は、撮影されたターゲット画像に対して設定された前記ブロックに対応するターゲットブロックと、撮影された前記ターゲット画像とは異なる参照画像に対して設定された前記ブロックに対応する参照ブロックであって、前記ターゲットブロックに対して設定されたサーチ範囲において複数個設定される前記参照ブロックとの相関値を求めることで相関値マップを生成する相関値マップ生成手段と、前記相関値マップで相関が最大となる前記参照ブロックとターゲットブロックとのずれを前記ターゲットブロックの動きベクトルとして検出するずれ検出手段と、前記相関値マップの行ごともしくは列ごとに相関が最大となる相関値を検出し、前記複数の相関値から対応する複数の評価値を算出する評価値算出手段と、前記評価値を基に前記動きベクトルの信頼度を評価する信頼度評価手段を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、線状の被写体像による動きベクトルを正しく評価することができる画像処理装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るデジタルカメラの機能構成を示したブロック図。
【図２】実施形態に係る画像処理部の機能構成を示したブロック図。
【図３】実施形態に係る線判定部の動作を説明するためのフローチャート。
【図４】実施形態に係るＳＡＤテーブルを説明するための図。
【図５】実施形態に係る線判定評価値を説明するための図。
【図６】ターゲット画像と参照画像を説明するための図。
【図７】ＳＡＤテーブルを説明するための図。
【図８】ＳＡＤテーブルを３次元的に説明するための図。
【図９】ブロックマッチング処理を説明するための図。
【図１０】ブロックマッチング処理を説明するための図。
【図１１】ブロックマッチング処理の参照ベクトルを説明するための図。
【図１２】ブロックマッチング処理の参照ベクトルを説明するための図。
【図１３】ブロックマッチング処理のＳＡＤ値を説明するための図。
【図１４】ブロックマッチング処理のＳＡＤテーブルを説明するための図。
【発明を実施するための形態】
【０００９】
（実施例１）
以下、本発明の好適な一実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、画像処理装置の一例としての、撮像された画像において撮像装置の動きに起因して生じている被写体像のずれを補正可能なデジタルカメラに、本発明を適用した例を説明する。
【００１０】
図１は、本発明の実施形態に係るデジタルカメラの機能構成を示すブロック図である。制御部１０１は、例えばＣＰＵであり、デジタルカメラ１００が備える各ブロックの動作プログラムをＲＯＭ１０２より読み出し、ＲＡＭ１０３に展開して実行することによりデジタルカメラ１００が備える各ブロックの動作を制御する。ＲＯＭ１０２は、書き換え可能な不揮発性メモリであり、デジタルカメラ１００が備える各ブロックの動作プログラムに加え、各ブロックの動作に必要なパラメータ等を記憶する。ＲＡＭ１０３は、書き換え可能な揮発性メモリであり、デジタルカメラ１００が備える各ブロックの動作において出力されたデータの一時的な記憶領域として用いられる。本実施形態ではＲＡＭ１０３には、撮像装置の動きに起因して生じている参照画像における被写体像のずれを検出するために必要となるターゲット画像や、補正前の参照画像等が一時的に記憶される。
【００１１】
撮像部１０５は、例えばＣＣＤやＣＭＯＳセンサ等の撮像素子であり、光学系１０４により撮像素子に結像された光学像を光電変換し、得られたアナログ画像信号をＡ／Ｄ変換部１０６に出力する。Ａ／Ｄ変換部１０６は、入力されたアナログ画像信号にＡ／Ｄ変換処理を適用し、得られたデジタル画像データ（画像データ）をＲＡＭ１０３に出力して記憶させる。
【００１２】
画像処理部１０７は、ＲＡＭ１０３あるいはＲＯＭ１０２、記録媒体１０８から読みだされる画像データに対して、各種の画像処理を行う。たとえば、Ａ／Ｄ変換部１０６から出力された状態の画像データにはシェーディング補正、ホワイトバランス補正などの補正処理や現像処理、ガンマ補正処理、色変換処理などが行われる。また、本実施では、撮像時にデジタルカメラ１００の動きなどにより生じた被写体像のずれを補正する補正処理も画像処理部１０７で行われる。図２は、画像処理部１０７の特に被写体像のずれを補正する補正処理に関連するブロックを詳細に示したブロック図である。画像処理部１０７には、撮像時にデジタルカメラ１００の動きなどにより生じた被写体像のずれを検出するために、当該ずれを検出する補正の対象となる参照画像と、補正の基準となるターゲット画像とが入力される。なお、ターゲット画像及び参照画像は、制御部１０１によりＲＡＭ１０３より読み出されて画像処理部１０７に入力されるものとする。また、信号処理部２００は前述したような各種の画像処理を行う。これらの画像処理は被写体像のずれを補正する補正処理後に行われてもよい。すなわち、アフィン変換部２０７の後段にあってもよいものとする。
【００１３】
動きベクトル検出部２０２は、ターゲットブロックごとに、参照画像における被写体像の動きベクトルを検出する。具体的には、動きベクトル検出部２０２はターゲット画像と参照画像の近傍の領域における被写体像を比較する、例えば特許文献２と同様のブロックマッチング手法により、画像間の同一パターンの画像の移動から動きベクトルを検出する。
【００１４】
図６は線状の被写体に対して動きベクトルを算出した場合の処理を説明するための図である。９０１は動きベクトル算出の基準となるターゲットフレーム（ターゲット画像）、９０２は動きベクトルを算出する対象となる参照フレーム（参照画像）である。さらに、９０３はブロックマッチングの基準となるターゲットブロックであり、参照フレーム中に設定されるサーチ範囲９０４に対してブロックマッチング処理することで差分絶対値和テーブル（ＳＡＤテーブル）を生成する。図７は生成されたＳＡＤテーブルであり、横軸がＸ方向のずれ量、縦軸がＹ方向のずれ量でマスの値が各参照ブロックに対応するＳＡＤ値である。図８は図７を３次元的に表現したＳＡＤテーブルである。
【００１５】
ターゲットブロック９０３は線状の模様であるため、参照フレーム上のサーチ範囲中で同様の模様が線状の被写体に沿って数多く検出される。このため、サーチ範囲中で対応するブロックを特定することができないため、正しく動きベクトルを検出することができない。
【００１６】
つまりＳＡＤテーブルにおいては、図８に示すようにＳＡＤ値が低い部分（相関が高い部分）が溝状に現れる。このため、溝のどの位置が正しい対応ブロックの位置か特定できないため、正しく動きベクトルを検出することができない。
【００１７】
しかしながら、画像中のノイズ等の影響で、ＳＡＤテーブル上に最小極小値が１つだけ発生する場合があり、その場合は正しく動きベクトルが検出できないにもかかわらず、その動きベクトルを正しい動きベクトルとして検出してしまう。図７において、９０５は誤って検出された動きベクトル、９０６はターゲットブロックの位置、９０７はＳＡＤ値の最小極小値の位置である。図７の場合、溝上のＳＡＤ値はいずれも同様の相関の強さを示しているが、９０７の位置は周りに比べてわずかに相関が強いため、最小極小値となって、正しい動きベクトルとして検出される。ただし周りのＳＡＤ値に比べて相関が強いのは画像中のノイズ等の影響によるものなので、実際に相関が最も強いＳＡＤ値を示すものではない。
【００１８】
そこで本実施形態では、線状の被写体であるか否かを判定し、得られた動きベクトルの信頼度の１つとして考慮する。
【００１９】
図９〜図１４は、本実施形態におけるブロックマッチング手法を説明するための図である。例えば、図９（ａ）に示すように、ターゲットフレーム１１００に、それぞれ水平方向の複数画素および垂直方向の複数ライン分からなる所定の大きさの矩形領域のブロック（ターゲットブロック）１１０２を想定する。
【００２０】
ブロックマッチングにおいては、ターゲットブロック１１０２と相関性の高いブロックを、参照フレーム１１０１の中から検索する。この検索の結果、相関性が最も高いとして参照フレーム１１０１内に検出された参照ブロック１１０３（図９（Ｂ）参照）を、動き補償ブロックと呼ぶ。また、ターゲットブロック１１０２と動き補償ブロック１１０３（相関性が最も高い参照ブロック）との間の位置ずれ量を、動きベクトル（図９（Ｂ）の符号１１０４参照）と称する。
【００２１】
ターゲットブロック１１０２と動き補償ブロック１１０３との間の位置ずれ（位置ずれ量と位置ずれ方向を含む）に対応する動きベクトル１１０４について考える。参照フレーム１１０１において、ターゲットフレーム１１００の各ターゲットブロック１１０２の位置と同じ位置に、ターゲットブロック１１０２の射影イメージブロック１１０９を想定する。このとき、このターゲットブロックの射影イメージブロック１１０９の位置（例えば中心位置）と、動き補償ブロック１１０３の位置（例えば中心位置）との間の位置ずれに相当し、位置ずれ量と位置ずれの方向成分も有するものである。
【００２２】
ブロックマッチング処理の概要を説明する。図１０において点線で示すように、参照フレーム１１０１において、ターゲットフレーム１１００のターゲットブロック１１０２の位置と同じ位置にターゲットブロック１１０２の射影イメージブロック１１０９を想定する。このターゲットブロック１１０２の射影イメージブロック１１０９の中心の座標を、動き検出の原点１１０５とする。そして、動きベクトル１１０４が、動き検出の原点１１０５から或る範囲内に存在すると仮定し、この動き検出の原点１１０５を中心した所定の範囲をサーチ範囲１１０６（図１０の一点鎖線参照）と設定する。
【００２３】
次に、ターゲットブロック１１０２と同じ大きさのブロック（参照ブロックという）１１０８を参照画面において設定する。そして、この参照ブロック１１０８の位置を、設定されたサーチ範囲１１０６内において、例えば水平方向および垂直方向に、１画素または複数画素単位で移動させるようにする。したがって、サーチ範囲１１０６においては、複数個の参照ブロック１１０８が設定されることになる。
【００２４】
ここで、参照ブロック１１０８を、サーチ範囲１１０６内を移動させるというのは、この例では、動き検出原点１１０５がターゲットブロックの中心位置であるので、参照ブロック１１０８の中心位置を、サーチ範囲１１０６内を移動させることを意味する。また参照ブロック１１０８を構成する画素は、サーチ範囲１１０６よりもはみ出すことがある。
【００２５】
そして、サーチ範囲において、設定される各参照ブロック１１０８に対して、当該各参照ブロック１１０８とターゲットブロック１１０２との位置ずれ量および位置ずれ方向を表すベクトル（参照ベクトルという）１１０７（図１０参照）を設定する。それぞれの参照ベクトル１１０７が指し示す位置にある参照ブロック１１０８の画像内容と、ターゲットブロック１１０２の画像内容との相関性を評価する。
【００２６】
参照ベクトル１１０７は、図１１に示すように、参照ブロック１１０８の水平方向（Ｘ方向）の位置ずれ量Ｖｘとし、垂直方向（Ｙ方向）の位置ずれ量をＶｙとしたとき、ベクトル（Ｖｘ，Ｖｙ）と表すことができる。参照ブロック１１０８の位置座標（例えば中心位置座標）とターゲットブロック１１０２の位置座標（例えば中心位置座標）とが同じときには、参照ベクトル１１０７は、ベクトル（０，０）と表す。
【００２７】
例えば、参照ブロック１１０８が、ターゲットブロック１１０２の位置から、Ｘ方向に１画素ずれた位置にある場合、参照ベクトル１１０７はベクトル（１，０）となる。また、図１２に示すように、参照ブロック１１０８が、ターゲットブロック１１０２の位置から、Ｘ方向に３画素、Ｙ方向に２画素ずれた位置にある場合には、参照ベクトル１１０７はベクトル（３，２）となる。
【００２８】
つまり、参照ベクトル１１０７は、図１２の例に示すように、対応する各参照ブロック１１０８とターゲットブロック１１０２との間での位置ずれ（位置ずれ量と位置ずれの方向を含むベクトルとなる）を意味する。なお、図１２では、ターゲットブロック１１０２および参照ブロック１１０８の位置を、それぞれのブロックの中心位置としている。
【００２９】
参照ブロック１１０８は、サーチ範囲１１０６において移動するものとなるが、その場合に、参照ブロック１１０８の中心位置がサーチ範囲１１０６内を移動する。参照ブロック１１０８は、水平方向および垂直方向の複数画素からなる。したがって、ターゲットブロック１１０２とブロックマッチング処理される対象となる参照ブロック１１０８が移動する最大範囲は、図１２に示すように、サーチ範囲１１０６よりも広いマッチング処理範囲１１１０となる。
【００３０】
そして、ターゲットブロック１１０２の画像内容との相関が最も強いとして検出された参照ブロック１１０８の位置を、ターゲットフレーム１１００のターゲットブロック１１０２の、参照フレーム１１０１における位置（動いた後の位置）として検出する。検出した参照ブロックを、前述した動き補償ブロック１１０３とする。そして、その検出した動き補償ブロック１１０３の位置と、ターゲットブロック１１０２の位置との間の位置ずれ量を、方向成分を含む量としての動きベクトル１１０４として検出するようにする（図９（Ｂ）参照）。
【００３１】
ここで、ターゲットブロック１１０２と、サーチ範囲１１０６において移動する参照ブロック１１０８との相関の強さを表す相関値は、基本的にはターゲットブロック１１０２と参照ブロック１１０８との対応する画素値を用いて算出される。その算出方法としては、自乗平均を用いる方法やその他種々の方法が提案されている。
【００３２】
動きベクトルを算出する際に用いられる相関値としては、例えばターゲットブロック１１０２内の各画素の輝度値と参照ブロック１１０６内の対応する各画素の輝度値との差分の絶対値の、ブロック内の全画素についての総和が用いられる（図１３参照）。この差分の絶対値の総和を差分絶対値和と呼ぶ。以下、この差分絶対値和をＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）と記載することとする。
【００３３】
相関値としてＳＡＤ値が用いられる場合には、ＳＡＤ値が小さいほど相関が強いものとされる。したがって、サーチ範囲１１０６において移動する参照ブロック１１０８のうち、ＳＡＤ値が最小となる位置の参照ブロック１１０８が最も相関が強い最強相関参照ブロックとなる。この最強相関参照ブロックが、動き補償ブロック１１０３として検出され、その検出された動き補償ブロック１１０３のターゲットブロック１１０２の位置に対する位置ずれ量が動きベクトルとして検出される。
【００３４】
前述したように、ブロックマッチングでは、サーチ範囲１１０６において設定される複数個の参照ブロック１１０８のそれぞれの、ターゲットブロック１１０２の位置に対する位置ずれ量は、方向成分を含む量としての参照ベクトル１１０７で表現される。各参照ブロック１１０８の参照ベクトル１１０７は、参照ブロック１１０８の参照フレーム１１０２上の位置に応じた値となる。前述したように、ブロックマッチングでは、相関値であるＳＡＤ値が最小値となる参照ブロック１１０８の参照ベクトルを、動きベクトル１１０４として検出する。
【００３５】
そこで、ブロックマッチングでは、サーチ範囲１１０６において設定される複数個の参照ブロック１１０８のそれぞれとターゲットブロック１１０２との間におけるＳＡＤ値（以下、説明の簡単のため参照ブロック１１０８についてのＳＡＤ値という）を、先ず求める。
【００３６】
次に、求めたＳＡＤ値を、図１４に示すように、それぞれの参照ブロック１１０８の位置に応じた参照ベクトル１１０７のそれぞれに対応させて、メモリに記憶しておく。そして、そのメモリに記憶された全ての参照ブロック１１０８についてのＳＡＤ値の中から、最小のＳＡＤ値の参照ブロック１１０８を検出することで、動きベクトル１１０４を検出するようにしている。なお、以下、説明の簡単のため、参照ブロック１１０６の位置に応じた参照ベクトル１１０７を参照ブロック１１０８の参照ベクトル１１０７という。
【００３７】
サーチ範囲１１０６において設定された複数個の参照ブロック１１０８の位置に応じた参照ベクトル１１０７のそれぞれに対応させて、それぞれの参照ブロック１１０８についての相関値（この例では、ＳＡＤ値）を記憶したものを相関値テーブルとして生成する（相関値マップ生成）。この例では、相関値として差分絶対値和であるＳＡＤ値を用いるので、この相関値テーブルを、差分絶対値和テーブル（以下ＳＡＤテーブルという）と呼ぶことにする。
【００３８】
図１４のＳＡＤテーブルＴＢＬが、これを示しており、このＳＡＤテーブルＴＢＬにおいて、それぞれの参照ブロック１１０８についての相関値（この例ではＳＡＤ値）を相関値テーブル要素という。図１４の例では、符号１１１１で指し示すＳＡＤ値は、参照ベクトルがベクトル（０，０）のときのＳＡＤ値である。そして、図１４の例では、ＳＡＤ値の最小値は、参照ベクトルがベクトル（３，２）のときの「７」であるので、求める動きベクトル１１０４は、当該（３，２）となる。
【００３９】
なお、上述の説明において、ターゲットブロック１１０２および参照ブロック１１０８の位置とは、それらのブロックの任意の特定の位置、例えば中心位置を意味するものである。参照ベクトル１１０７は、参照フレーム１１０２におけるターゲットブロック１１０２の射影イメージブロック１１０９の位置と、参照ブロック１１０８の位置との間のずれ量（方向を含む）を示すものである。
【００４０】
そして、各参照ブロック１１０８に対応する参照ベクトル１１０７は、参照フレーム１１０１上において、ターゲットブロック１１０２に対応する射影イメージブロック１１０９の位置からの、各参照ブロック１１０８の位置ずれとなっている。したがって、参照ブロック１１０８の位置が特定されると、その位置に対応して参照ベクトルの値も特定される。これにより、ＳＡＤテーブル１１１０のメモリにおける参照ブロックの相関値テーブル要素のアドレスが特定されると、対応する参照ベクトルは特定されることになる。
【００４１】
線判定部２０１は、動きベクトルが線状の被写体で検出されたものかどうかを判定し、線状の被写体で検出されたと判定された場合はその動きベクトルを排除し、そうでない場合はその動きベクトルをそのまま出力する。図６のターゲット画像では６×６＝３６個のターゲットブロックがあり、それぞれに対応する３６個の動きベクトルが動きベクトル検出部２０２によって検出される。左半分に位置する１８個のターゲットブロックについては線状の被写体が存在するため、線と判定されて対応する動きベクトルが排除される。右半分に位置する１８個のターゲットブロックに対応する動きベクトルについては、そのまま出力される。なお、本実施形態では右半分の被写体を省略して説明しているが、右半分からは線状の被写体以外の被写体が検出できているものとしている。
【００４２】
アフィン係数算出部２０３は、ターゲット画像が有する複数のターゲットブロックそれぞれの動きベクトルを用いて、各領域の補正に用いる座標変換係数であるアフィン係数を算出する（座標変換係数算出）。なお、アフィン係数算出手法についても例えば特許文献１に示される方法を使用することができる。
【００４３】
次に、アフィン係数算出手法の概要を説明する。
【００４４】
アフィン変換の一般式を、式（１）として示す。
【００４５】
【数１】
2014056379.tif 000003
【００４６】
この式（１）において、ｖは、ターゲットブロックの動きベクトルの水平成分、ｗはターゲットブロックの動きベクトルの垂直成分を示し、ａ，ｂ，ｃ，ｄ，ｅ，ｆは、アフィン係数を示している。そして、ｘ，ｙは、ターゲットブロックの中心座標の水平成分、垂直成分を示している。
【００４７】
求められるアフィン係数と各ターゲットブロックの中心の座標から、求められるアフィン係数に応じた動きベクトル（このベクトルを理想的な動きベクトルと呼ぶ）が得られる。この理想的なベクトルと、観測（ブロックマッチングにより検出）された動きベクトルとの間のエラーの総和εは、式（２）のように表される。
【００４８】
アフィン係数を導出するという命題は、上記のエラーの総和εを最小化するアフィン係数ａ〜ｆの推定であり、これは、例えば、最小自乗法によって解くことが可能である。式（３）、式（４）、式（５）には、アフィン係数ａ〜ｆの導出過程と、その結果を示す。
【００４９】
【数２】
2014056379.tif 000004
【００５０】
【数３】
2014056379.tif 000005
【００５１】
【数４】
2014056379.tif 000006
【００５２】
【数５】
2014056379.tif 000007
【００５３】
アフィン変換部２０７は、算出されたアフィン係数を用いて参照画像の位置ずれを補正する。
【００５４】
線判定部２０１（信頼度評価手段）の動作を、図３を用いて説明する。まず列方向と行方向に１次元線判定を行う（Ｓ１０１、Ｓ１０２）。列方向もしくは行方向で線と判定された場合はその動きベクトルを排除し、そうでない場合は動きベクトルをそのまま出力する（Ｓ１０３、Ｓ１０４）。
【００５５】
列方向の１次元線判定について、図４および図５を用いて説明する。図４は図７のＳＡＤテーブルと同じもので、列の中のＳＡＤ最小値を黒く塗りつぶしている。例えばＸ方向ずれ量が−１０の列のＳＡＤ最小値は、Ｙ方向ずれ量が０の行の１５であり、Ｘ方向ずれ量が３の列のＳＡＤ最小値は、Ｙ方向ずれ量が３の行の２である。さらに列のＳＡＤ最小値を列のＳＡＤ平均値で正規化し、その値を評価値とする。例えばＸ方向ずれ量が−１０の列のＳＡＤ平均値は８８なので、評価値は１５／８８＝０．１７であり、Ｘ方向ずれ量が３の列のＳＡＤ平均値は８９なので、評価値は２／８９＝０．０２である。図５はＸ方向ずれ量に対する評価値をプロットしたグラフである。
【００５６】
本実施の形態では、正規化はＳＡＤ値の列平均値で除算することで実現されているが、本発明はこれに限定されるものではなく、例えばＳＡＤ値の列積算値、列最大値、列最大値と列最小値の差分値等で除算してもよい。もしくは各Ｘ方向ずれ量に対応するＳＡＤ列最小値の平均値、積算値、最大値、最大値と最小値の差分値等で除算してもよい。
【００５７】
列方向の１次元線判定では、評価値が第１閾値より大きく第２閾値未満である評価値の割合が第３閾値より多ければＳＡＤテーブルが溝状であるとして線と判定する。すなわち、評価値の分布（相関値の極小値の分布）が線状であるかを評価する。本実施例では第１閾値を０、第２閾値を０．３、第３閾値を０．８とする。このＳＡＤテーブルに対する第１閾値以上第２閾値未満である評価値の数は２１で、その割合は２１／２１＝１となり第３閾値の０．８以上となるため、この場合は線状として判定する。ここで、評価値が上記の範囲内にある数をカウントするだけで評価値の分布（相関値の極小値の分布）が線状であることを推定できる理由は、相関値マップが通常の被写体を撮影する場合には、図８のようにおおよそなだらかに分布していると考えてよいからである。したがって、相関値の最小値から得られる評価値が所定範囲内で収まって所定数以上ある場合、それらは概ね連なって分布していると考えられるからである。線状であることをより正確に特定する場合には、評価値に対応する相関値の分布の形状を検出して線状であることを特定すればよい。
【００５８】
列方向の１次元線判定でＸ方向ずれ量に対する評価値を評価（第１の信頼度）していたのに対して、行方向の１次元線判定ではＹ方向ずれ量に対する評価値を評価（第２の信頼度）するが、動作は列方向と同様である。また、上記のような行ごと及び列ごとの評価値の算出や線状の被写体であるかの判定は、少なくとも一方が行われればよい。
【００５９】
このようにして補正された対象画像は、画像処理部１０７より出力され、記録媒体１０８に記録される。記録媒体１０８は、例えばデジタルカメラ１００が備える内部メモリや、デジタルカメラ１００に着脱可能に装着される、メモリカードやＨＤＤ等の記録装置である。なお、記録媒体１０８には、撮像した画像の被写体像のずれを補正しない場合は、Ａ／Ｄ変換部１０６から出力された画像データに対し、所定の変換処理や符号化処理が適用されて記録されればよい。
【００６０】
以上説明したように、本実施形態の画像処理装置は、入力されたターゲット画像と参照画像のうち、参照画像を撮像した撮像装置の動きに起因して生じる、ターゲット画像に対する参照画像のずれを補正することができる。具体的には画像処理装置は、ブロックマッチングで検出された動きベクトルが線状の被写体のものかどうかを線判定部で判定し、線状の被写体のものである場合はその動きベクトルを位置ずれ補正に用いない。線判定部は対象動きベクトルのＳＡＤテーブルが溝状であるか否かを判定し、溝状である場合に線状の被写体のものであると判定する。
【００６１】
このようにすることで、線状の被写体像を含む２画像であっても、正しく被写体像のずれを補正することができる。
【００６２】
（実施例２）
以下、本発明の第２の実施例による、画像処理装置について説明する。
【００６３】
本実施の形態に係るデジタルカメラの構成は、線判定部２０１以外は実施例１と同様である。また線判定部２０１の処理フローは、図３で示される実施例１の処理フローと同様である。
【００６４】
本実施の形態における列方向の１次元線判定について、図４および図５を用いて説明する。実施例１同様、図４のＳＡＤテーブルから図５の評価値を算出する。
【００６５】
本実施の形態における列方向の１次元線判定では、評価値の積算値が第４閾値未満であればＳＡＤテーブルが溝状であるとして線と判定する。第４閾値を２とする。このＳＡＤテーブルに対して各Ｘ方向ずれ量に対する評価値２１個を積算した値は１．５７で第４閾値の２未満となるため、この場合は線として判定する。
【００６６】
本実施の形態では、評価値の積算値を第４閾値と比較するが、本発明はこれに限定されるものではなく、例えば評価値の平均値を第５閾値と比較するようにしてもよい。
【００６７】
列方向の１次元線判定でＸ方向ずれ量に対する評価値を評価していたのに対して、行方向の１次元線判定ではＹ方向ずれ量に対する評価値を評価するが、動作は列方向と同様である。
【００６８】
以上説明したように、本実施形態の画像処理装置は、入力されたターゲット画像と参照画像のうち、参照画像を撮像した撮像装置の動きに起因して生じる、ターゲット画像に対する参照画像のずれを補正することができる。具体的には画像処理装置は、ブロックマッチングで検出された動きベクトルが線状の被写体のものかどうかを線判定部で判定し、線状の被写体のものである場合はその動きベクトルを位置ずれ補正に用いない。線判定部は対象動きベクトルのＳＡＤテーブルが溝状であるか否かを判定し、溝状である場合に線状の被写体のものであると判定する。さらに溝状であるか否かの判定は、線判定評価値の積算値を第１閾値と比較することで実現する。
【００６９】
このようにすることで、線状の被写体像であっても、正しく被写体像のずれを補正することができる。さらに線判定評価値の閾値比較が１回で済むため、評価値判定の計算コストを少なくすることができる。
【００７０】
（実施例３）
以下、本発明の第３の実施例による、画像処理装置について説明する。
【００７１】
本実施の形態に係るデジタルカメラの構成は、線判定部２０１以外は実施例１と同様である。また線判定部２０１の処理フローは、図３で示される実施例１の処理フローと同様である。
【００７２】
本実施の形態における列方向の１次元線判定について、図４を用いて説明する。
【００７３】
本実施の形態における評価値は、列の中のＳＡＤ最小値とする。
【００７４】
本実施の形態における列方向の１次元線判定では、評価値が第１閾値より大きく第２閾値未満である評価値の割合が第３閾値より多ければＳＡＤテーブルが溝状であるとして線と判定する。例えば、第１閾値を０、第２閾値を２０、第３閾値を０．８とする。このＳＡＤテーブルに対する第１閾値以上第２閾値未満である評価値の数は２１で、その割合は２１／２１＝１となり第３閾値の０．８以上となるため、この場合は線として判定する。
【００７５】
列方向の１次元線判定でＸ方向ずれ量に対する評価値を評価していたのに対して、行方向の１次元線判定ではＹ方向ずれ量に対する評価値を評価するが、動作は列方向と同様である。
【００７６】
以上説明したように、本実施形態の画像処理装置は、入力されたターゲット画像と参照画像のうち、参照画像を撮像した撮像装置の動きに起因して生じる、ターゲット画像に対する参照画像のずれを補正することができる。具体的には画像処理装置は、ブロックマッチングで検出された動きベクトルが線状の被写体のものかどうかを線判定部で判定し、線状の被写体のものである場合はその動きベクトルを位置ずれ補正に用いない。線判定部は対象動きベクトルのＳＡＤテーブルが溝状であるか否かを判定し、溝状である場合に線状の被写体のものであると判定する。さらに線判定の評価値は、ＳＡＤテーブルの溝のＳＡＤ値そのものとする。
【００７７】
このようにすることで、線状の被写体像であっても、正しく被写体像のずれを補正することができる。さらに線判定評価値生成を簡略化できるため、評価値生成の計算コストを少なくすることができる。
【００７８】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００７９】
１００  デジタルカメラ
１０１  制御部
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  光学系
１０５  撮像部
１０６  Ａ／Ｄ変換部
１０７  画像処理部
１０８  記録媒体
【図１】
2014056379.tif 000008
【図２】
2014056379.tif 000009
【図３】
2014056379.tif 000010
【図４】
2014056379.tif 000011
【図５】
2014056379.tif 000012
【図６】
2014056379.tif 000013
【図７】
2014056379.tif 000014
【図８】
2014056379.tif 000015
【図９】
2014056379.tif 000016
【図１０】
2014056379.tif 000017
【図１１】
2014056379.tif 000018
【図１２】
2014056379.tif 000019
【図１３】
2014056379.tif 000020
【図１４】
2014056379.tif 000021