(57)【要約】【課題】  画像の位置ずれ検出時に、信頼度の低い動きベクトルを検出に使用しないことで、前記信頼度の低い領域の検出精度が悪くなるという問題があった。【解決手段】  第１の画像と第２の画像間の位置ずれを検出する画像処理装置において、前記第１の画像と第２の画像間の動きベクトルを第１の動きベクトル群として記憶する第１のメモリと、信頼度が所定の閾値より高いと判定された動きベクトルのみを抽出し第２の動きベクトル群として記憶する第２のメモリと、前記第２の動きベクトル群から仮の位置ずれパラメータを算出し、前記仮の位置ずれパラメータを用いて、前記第１の動きベクトル群から前記位置ずれを表す動きベクトルを合格動きベクトル群として選出する合格動きベクトル選出手段と、前記合格動きベクトル群から、前記位置ずれを表す位置ずれパラメータを推定する、パラメータ推定手段を備えることを特徴とする構成とした。【選択図】  図１
2014056378.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像と第２の画像との間の位置ずれを検出する画像処理装置において、
前記第１の画像と前記第２の画像との間の動きベクトルを領域毎に複数検出する検出手段と、
前記複数の動きベクトルに関する情報を第１の動きベクトル群として記憶する第１のメモリと、
前記第１のメモリから読み出される動きベクトルに関する情報の夫々について、位置ずれ検出に対する信頼度を算出する信頼度算出手段と、
前記信頼度が所定の閾値より高いと判定された動きベクトルに関する情報を抽出する抽出手段と、
前記抽出された動きベクトルに関する情報を第２の動きベクトル群として記憶する第２のメモリと、
前記第２のメモリから読み出される前記第２の動きベクトル群から仮の位置ずれパラメータを算出し、前記第１の動きベクトル群から、前記仮の位置ずれパラメータの示す位置ずれに近い位置ずれを示す動きベクトルを、合格動きベクトル群として選出する合格動きベクトル選出手段と、
前記合格動きベクトル群から、前記位置ずれを表す位置ずれパラメータを推定する、パラメータ推定手段と、を備えることを特徴とする画像処理装置。
【請求項２】
前記検出手段は、前記第１の画像の各領域について前記第２の画像との相関値を算出し、前記相関値が最も小さくなる位置を前記各領域における動きベクトルの終点とし、前記各領域の前記第１の画像における位置を動きベクトルの始点とすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記信頼度算出手段は、前記動きベクトルの前記相関値の中で、前記相関値の極小値を求め、前記極小値の中で最も値が小さいものを第１極小値、次に値が小さいものを第２極小値とし、前記第２極小値と第１極小値の差分値を基にして信頼度を決定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記信頼度が低いと判定された領域については、前記複数の極小値が表す動きベクトル群を第１の動きベクトル群に追加することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記信頼度算出手段は、前記各領域について所定の周波数を持つ成分を抽出し、前記周波数成分の分布に基づいて信頼度を決定することを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記合格動きベクトル選出手段は、前記算出した仮の位置ずれパラメータの夫々が示す動きと、前記第１のメモリから読み出される第１の動きベクトル群に含まれる動きベクトルの動きの誤差が所定の閾値よりも小さくなる動きベクトルの数を記憶し、前記記憶した動きベクトルの数が最も多くなる動きベクトルを、前記合格動きベクトル群として選出することを特徴とする請求項１乃至５のいずれか１つに記載の画像処理装置。
【請求項７】
前記位置ずれパラメータとは、射影変換係数であることを特徴とする請求項１乃至６のいずれか１つに記載の画像処理装置。
【請求項８】
前記位置ずれパラメータを用いて前記第１の画像と前記第２の画像との間の位置合わせ処理を行う位置合わせ手段を備えることを特徴とする請求項１乃至７のいずれか１つに記載の画像処理装置。
【請求項９】
第１の画像と第２の画像との間の位置ずれを検出する画像処理方法において、
前記第１の画像と前記第２の画像との間の動きベクトルを複数検出する検出ステップと、
前記複数の動きベクトルを第１の動きベクトル群として第１のメモリに記憶する第１の記憶ステップと、
前記第１のメモリから読み出される動きベクトルの夫々について、位置ずれ検出に対する信頼度を算出する信頼度算出ステップと、
前記信頼度が所定の閾値より高いと判定された動きベクトルを抽出する抽出ステップと、
前記抽出された動きベクトル群を第２の動きベクトル群として第２のメモリに記憶する第２の記憶ステップと、
前記第２のメモリから読み出される前記第２の動きベクトル群から仮の位置ずれパラメータを算出し、前記第１の動きベクトル群から、前記仮の位置ずれパラメータの示す位置ずれに近い位置ずれを示す動きベクトルを、合格動きベクトル群として選出する合格動きベクトル選出ステップと、
前記合格動きベクトル群から、前記位置ずれを表す位置ずれパラメータを推定する、パラメータ推定ステップと、を備えることを特徴とする画像処理方法。
【請求項１０】
請求項９に記載の画像処理方法の手順が記述されたコンピュータで実行可能なプログラム。
【請求項１１】
コンピュータに、請求項９に記載の画像処理方法の各工程を実行させるためのプログラムが記憶されたコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、複数枚の画像を撮影して、前記画像間の位置ずれを検出する画像処理装置に関連する。
【背景技術】
【０００２】
従来より、複数枚の画像を撮像し合成することで、撮影領域を拡大する技術が提案されている。上記技術においては、手振れに起因する、複数の画像間の位置ずれを検出する技術が必須となる。前記位置ずれを検出する技術については、従来より様々な手法が提案されており、例えば、特許文献１、および特許文献２が挙げられる。
【０００３】
特許文献１では、検出対象となる２画像から、テンプレートマッチングの手法を用いて複数の対応点を検出したのち、前記対応点の信頼度を求め、前記信頼度の高い対応点の中から、手振れを表す対応点のみを抽出し、最終的な位置ずれを表すパラメータを算出する。
【０００４】
また、特許文献２では、特許文献１と同様に信頼度の高い対応点から位置ずれを表すパラメータを算出するが、前記パラメータとして、画像のアオリ成分に対応した拡張アフィン変換係数を使用する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２２９８６８号公報
【特許文献２】特開２０１０−１８３３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、前述の特許文献１及び２では、信頼度が低いと判定された対応点でも、正しく手振れを検出している対応点が存在する可能性がある。そのような対応点を位置ずれ検出の対象から除外することで、推定される位置ずれパラメータの精度が低下することが懸念される。
【０００７】
上記の課題に鑑み、本発明は、画像間の位置ずれ検出において、特に前記信頼度が低いと判定された対応点も使用して、より精確に位置ずれパラメータを推定することを目的とする。
【課題を解決するための手段】
【０００８】
前記目的を達成するために、本発明の画像処理装置は以下の構成を備える。第１の画像と第２の画像との間の位置ずれを検出する画像処理装置において、前記第１の画像と前記第２の画像との間の対応点を複数検出する検出手段と、前記複数の対応点を第１の対応点群として記憶する第１のメモリと、前記第１のメモリから読み出される対応点の夫々について、位置ずれ検出に対する信頼度を算出する信頼度算出手段と、前記信頼度が所定の閾値より高いと判定された対応点を抽出する抽出手段と、前記抽出された対応点群を第２の対応点群として記憶する第２のメモリと、前記第２のメモリから読み出される前記第２の対応点群から仮の位置ずれパラメータを算出し、前記第１の対応点群から、前記仮の位置ずれパラメータの示す位置ずれに近い位置ずれを示す対応点を、合格対応点群として選出する合格対応点選出手段と、前記合格対応点群から、前記位置ずれを表す位置ずれパラメータを推定する、パラメータ推定手段と、を備えることを特徴とする。
【０００９】
また、本発明の画像処理方法は、第１の画像と第２の画像との間の位置ずれを検出する画像処理方法において、前記第１の画像と前記第２の画像との間の対応点を複数検出する検出ステップと、前記複数の対応点を第１の対応点群として第１のメモリに記憶する第１の記憶ステップと、前記第１のメモリから読み出される対応点の夫々について、位置ずれ検出に対する信頼度を算出する信頼度算出ステップと、前記信頼度が所定の閾値より高いと判定された対応点を抽出する抽出ステップと、前記抽出された対応点群を第２の対応点群として第２のメモリに記憶する第２の記憶ステップと、前記第２のメモリから読み出される前記第２の対応点群から仮の位置ずれパラメータを算出し、前記第１の対応点群から、前記仮の位置ずれパラメータの示す位置ずれに近い位置ずれを示す対応点を、合格対応点群として選出する合格対応点選出ステップと、前記合格対応点群から、前記位置ずれを表す位置ずれパラメータを推定する、パラメータ推定ステップと、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画像間の位置ずれ検出において、特に前記信頼度が低いと判定された対応点も使用して、より精確に位置ずれパラメータを推定することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態の撮像装置における構成を表すブロック図
【図２】対応点検出部１０６のフローチャート
【図３】対応点検出部１０６における検出ブロックの配置を示す図
【図４】相関値マップの作成方法を示す図
【図５】相関値マップから対応点を求める方法を示す図
【図６】第１の実施形態における信頼度算出部１０８のフローチャート
【図７】繰り返しパターンが存在する場合、および存在しない場合における典型的な相関値マップを示す図
【図８】合格対応点選出部１１０のフローチャート
【図９】合格対応点計数（Ｓ８０５）のフローチャート
【図１０】Ｅｒｒ［ｉ］［ｊ］の算出方法を示す図
【図１１】第２の実施形態における信頼度算出部１０８のフローチャート
【図１２】第１の実施形態の撮像装置における構成を表すブロック図
【図１３】対応点追加部１２０９のフローチャート
【発明を実施するための形態】
【００１２】
（第１の実施形態）
以下、図面を参照して、本発明の第１の実施形態について詳細に説明する。なお、本実施形態では、手振れの影響の少ない露光時間で撮像された４枚の画像を加算平均しながら合成することで、電子的に手振れを抑制する機能を想定して以降の説明を行う。
【００１３】
図１は、本発明の第１の実施形態における画像処理装置に適用可能な構成を示したブロック図である。以下、図１を参照し、各ブロックに対する詳細な説明を行う。
【００１４】
露出条件制御部１０１では、撮像の際の露出条件を決定する。ここで、露出条件とは、シャッター速度、絞り値、および感度の少なくとも１つである。本実施形態では、４回の撮像処理において露出条件は変化しない。従って、露出条件制御部１０１からは、全撮像画像を同一の露出条件で撮像するという露出条件が出力される。しかし、露出条件としてはこれに限られない。
【００１５】
撮像部１０２では、露出条件に従い、所定の回数分の撮像動作を行う。本実施形態では、撮像部１０２は、絞り、メカシャッターもしくは電子シャッター、およびベイヤー配列（Ｒ、Ｇ、Ｂの画素で構成される）の撮像素子から構成されている。撮像部１０２は、撮像動作のたびに、絞り、およびシャッターを、露出条件制御部１０１から出力された所定の条件となるように駆動させ、撮像素子に入射する光量を制御する。Ａ／Ｄ変換部１０３では、撮像部１０２で撮像された画像信号を所定の情報量へ量子化し、信号処理部１０４へ出力する。
【００１６】
信号処理部１０４では、Ａ／Ｄ変換部１０３において所定の情報量へ量子化された画像データに対し、所定の信号処理を行う。ここで、所定の信号処理とは、例えばノイズリダクション処理や、歪曲収差補正処理、ホワイトバランス処理、現像処理などが挙げられる。現像処理では、ＲＧＢの画像信号がＹ（輝度）、ＵＶ（色差）信号に変換される。本実施形態では、後段の位置ずれ検出部１０５、画像合成部１１３の前段の信号処理部１０４で現像処理を施しているが、これに限らず、画像合成部１１３の前後で施されてもよい。信号処理部１０４は、所定の信号処理が施された画像信号を、位置ずれ検出部１０５へ出力する。
【００１７】
本実施形態では、４枚の入力画像を手持ちで撮影することを想定しているため、位置ずれ検出部１０５に入力される画像は、手振れに起因する位置ずれが生じている。位置ずれが生じた状態で画像合成を行うと、画像が多重に見えるなどの弊害が生じるため、位置ずれを補正してから合成処理を行う必要がある。従って、位置ずれ検出部１０５では、入力画像間の位置ずれを表す位置ずれパラメータを算出する。本実施形態では、位置ずれパラメータとして、射影変換係数を使用する。
【００１８】
次に、位置ずれ検出部１０５について、詳細な説明を行う。図１に示すように、位置ずれ検出部１０５は、対応点検出部１０６、第１メモリ部１０７、信頼度算出部１０８、第２メモリ部１０９、合格対応点選出部１１０、位置ずれパラメータ推定部１１１によって構成される。
【００１９】
＜対応点検出部１０６＞
対応点検出部１０６では、入力される複数の画像の中で、所定の２枚の画像に対し、対応点を検出する。本実施形態では、４枚の入力画像に対して、撮影順に画像１、画像２、画像３、画像４と名前を付けた場合、画像１の画角に合わせて、他の画像の位置合わせを行う。従って、画像１と画像２、画像１と画像３、および画像１と画像４の対応点（動きベクトル）を検出する必要がある。以下、画像１と画像２の対応点検出に関する説明を行い、画像１をベース画像（第１の画像）、画像２をターゲット画像（第２の画像）と呼ぶ。なお、画像１と画像３、および画像１と画像４の対応点検出に関しても同様の処理を行い、それぞれ、画像３、画像４が、ターゲット画像となる。
【００２０】
次に、対応点検出部１０６の動作について、図を用いて説明を行う。図２は、対応点検出部１０６の処理フローチャートである。まず、ステップＳ２０１において、ターゲット画像、およびベース画像を、それぞれ所定の検出用ブロックｂｌｋ＿Ｔ［ｉ］［ｊ］、ｂｌｋ＿Ｂ［ｉ］［ｊ］に分割する。検出用ブロックは図３に示すように、水平にＭ個、垂直にＮ個配置する。また、ｂｌｋ＿Ｔをテンプレートとして、対応するｂｌｋ＿Ｂ内を探索するため、ｂｌｋ＿Ｂは、ｂｌｋ＿Ｔよりも、上下左右それぞれ、所定の探索範囲分だけ大きなサイズとする。図３では、左右上下の探索領域をそれぞれ、Ｓｌ，Ｓｒ，Ｓｔ，Ｓｂとしている。
【００２１】
次にステップＳ２０２において、ｉ＝０，ｊ＝０をセットし、ステップＳ２０３において、ｂｌｋ＿Ｔ［ｉ］［ｊ］とｂｌｋ＿Ｂ［ｉ］［ｊ］から、領域毎に相関値を求め相関値マップを作成する。本実施形態では、相関値は差分絶対値和（以下、ＳＡＤ値と呼ぶ）を使用する。相関値マップの作成方法については、図４に詳細を示す。図４に示すように、ｂｌｋ＿Ｂ［ｉ］［ｊ］内において、ｂｌｋ＿Ｔ［ｉ］［ｊ］を左上からラスタ順に右下まで移動させ、夫々の位置でＳＡＤ値を算出し、２次元の相関値マップを作成する。結果として、水平要素数（Ｓｌ＋Ｓｒ＋１）、垂直要素数（Ｓｔ＋Ｓｂ＋１）の相関値マップ［ｉ］［ｊ］が作成される。
【００２２】
次にステップＳ２０４において、相関値マップ［ｉ］［ｊ］から、対応点を複数検出する。対応点の検出については、図５に詳細を示す。図５に示すように、相関値マップ［ｉ］［ｊ］の中で、ＳＡＤ値が最小となる位置を検出する。ＳＡＤ値は、パターンの一致度合いが高いほど小さい値をとる。このため、ＳＡＤ値が最小となる位置に、ｂｌｋ＿Ｔ［ｉ］［ｊ］のテクスチャが移動したと考えられるので、ｂｌｋ＿Ｔ［ｉ］［ｊ］の初期位置を始点とし、ＳＡＤ値が最小となる位置を終点とするベクトルを動きベクトルｍｖ［ｉ］［ｊ］として検出する。ｂｌｋ＿Ｔ［ｉ］［ｊ］に対する対応点［ｉ］［ｊ］は、ｂｌｋ＿Ｔ［ｉ］［ｊ］の中心座標を始点とし、動きベクトルｍｖ［ｉ］［ｊ］だけ移動させた点を終点としてそれら始点と終点をセットで動きベクトルに関する情報として定義する。動きベクトルに関する情報の形態としてはこれに限らず、例えば動きベクトルの方向と大きさがわかる情報が直接算出され記憶されるなどしてもよい。
【００２３】
以上が、対応点検出の方法であり、上記と同様の処理を、全ブロックに対して行う（ステップＳ２０５、Ｓ２０６）。
【００２４】
以上が、対応点検出部１０６の処理内容であり、対応点検出部１０６の出力として、対応点と相関値マップが、所定の検出用ブロック数分生成される。
【００２５】
第１メモリ部１０７は、対応点と相関値マップを格納する（第１の記憶ステップ）。ここで、所定のブロック数分生成された対応点の集合を、第１の対応点群（第１の動きベクトル群）と呼ぶこととする。
【００２６】
＜信頼度算出部１０８＞
信頼度算出部１０８では、第１メモリ部１０７（第１のメモリ）に格納されている第１の対応点群の夫々に対し、位置ずれ検出に対する信頼度を算出する。本実施形態では、信頼度として、テンプレート領域（ｂｌｋ＿Ｔ［ｉ］［ｊ］）が繰り返しパターンであるかどうかの度合いを算出する。繰り返しパターンの場合は、同形状のテクスチャが周辺に複数存在するため、対応点が正確に位置ずれを表しているかどうかに対する信頼度が低いと考えられる。
【００２７】
図６は、信頼度算出部１０８の処理フローチャートである。まず、ステップＳ６０１において、ｉ＝０，ｊ＝０をセットし、ステップＳ６０２において、相関値マップ［ｉ］［ｊ］から、第１極小値ＬＭ１、第２極小値ＬＭ２を算出する。図７に、繰り返しパターンが存在する場合の典型的な相関値マップと、繰り返しパターンが存在しない場合の典型的な相関値マップを、便宜上１次元で図示する。図７（ａ）に示すように、繰り返しパターンである場合は、テクスチャ領域とパターンが略一致する位置が複数存在すると考えられるため、ＳＡＤ値の分布において、類似する下に凸なピークが複数存在する。従って、ＬＭ１，ＬＭ２の差分は小さくなる傾向にある。一方、繰り返しパターンでない場合は、下に凸の特徴的なピークは１つであると考えられ、ＬＭ２が存在しないか、存在してもＬＭ１とＬＭ２の差分は大きくなる。図７（ｂ）は、後者の場合を示している。
【００２８】
上記の内容を踏まえ、ステップＳ６０３〜Ｓ６０５において、（１）ＬＭ２−ＬＭ１の値が、所定の閾値Ｔｈ１よりも大きい、（２）ＬＭ２が存在しない、のいずれか一方を満たす場合は、繰り返しパターンではないとみなす。このとき対応点［ｉ］［ｊ］（動きベクトル）は、信頼度が高いと判定し、信頼度＝１をセットする。また、上記（１）（２）のいずれも満たさない場合は、繰り返しパターンであるとみなし、対応点［ｉ］［ｊ］は、信頼度が低いと判定し、信頼度＝０をセットする。同様の処理を、全ブロックに対して行う（ステップＳ６０６、Ｓ６０７）。
【００２９】
以上が、信頼度算出部１０８の処理内容であり、信頼度算出部１０８の出力として、各対応点［ｉ］［ｊ］に対する信頼度が算出される。
【００３０】
また、信頼度算出部１０８の信頼度の算出方法としてはこれに限らない。例えば、各テンプレート領域（ｂｌｋ＿Ｔ［ｉ］［ｊ］）から所定の周波数成分（高周波成分）を抽出し、その強度分布から繰り返しパターンの存在を調べることも可能である。また、分布を見ることで動きベクトルを正確に取りにくい低コントラストな領域であるか否かも判定することができる。繰り返しパターンである場合には信頼度が低くなるように信頼度が設定される。
【００３１】
第２メモリ部１０９（第２のメモリ）は、信頼度が１となる対応点、すなわち、信頼度が高いと判定された対応点を格納する（第２の記憶ステップ）。ここで、第１の対応点群の中で、信頼度算出部１０８において信頼度が高いと判定された対応点を、第２の対応点群（第２の動きベクトル群）と呼ぶこととする。
【００３２】
＜合格対応点選出部１１０＞
合格対応点選出部１１０では、検出された対応点群の中から、手振れを表す対応点のみを抽出する。ここで、第１の対応点群には、信頼度に依らず、全ての対応点が含まれている。一方、第２の対応点群には、信頼度の高い対応点が含まれている。本発明では、特に信頼度の低い対応点群から手振れを表す対応点を抽出することをポイントとしているので、合格対応点選出部１１０の処理内容は、大局的には次にようになる。まず、手振れを表す信頼度が高い第２の対応点群から、手振れによる位置ずれを大まかに推測し、次に、推測した位置ずれに合致する対応点を、第１の対応点群から選択する。以降に、図を用いて、合格対応点選出部１１０の処理内容を詳細に説明する。
【００３３】
図８は、合格対応点選出部１１０（合格動きベクトル選出手段）の処理フローチャートである。まず、ステップＳ８０１において、所定のルールに基づき、第２の対応点群に含まれる対応点に優先順位をつける。本実施形態では、所定のルールとは、画像の中心座標から対応点の始点までの距離が近い順に優先順位をつける、とするが、ルールに関して特に限定はしないものとする。
【００３４】
次に、ステップＳ８０２においてループ回数Ｌｏｏｐに０をセットし、ステップＳ８０３において、第２の対応点群から、優先順位に従って、所定の個数の対応点を選択する。理由は後述するが、所定の個数は、本実施形態では４個としている。すなわち、Ｌｏｏｐ＝０においては、画像の中心座標から始点までの距離が近い順に４個の対応点を選択する。
【００３５】
次に、ステップＳ８０４において、選択した対応点から、仮の位置ずれパラメータを推定する。ここで、本実施形態における位置ずれパラメータとは射影変換係数であり、射影変換係数は以下の式で表される。
【００３６】
【数１】
2014056378.tif 000003
【００３７】
【数２】
2014056378.tif 000004
【００３８】
上記（１）、（２）式において、（ｘ，ｙ）はターゲット画像中の点、（ｘ’，ｙ’）はベース画像内において、位置ずれにより（ｘ，ｙ）が移動する点である。（１）、（２）から分かるように、未知数は８個なので、必要な対応点の数は最低４個である。本実施形態において、所定の個数が４個なのは、上記の理由による。さらに、位置ずれパラメータの推定方法としては、最小二乗法を用いる。
【００３９】
次に、ステップＳ８０５において、第１の対応点群から合格対応点を判定し、計数を行う。ここで、合格対応点とは、仮の位置ずれパラメータが表す動きと、同様の動きを検出している対応点のことである。このような対応点は、信頼度が低い対応点の中にも存在する可能性があるため、合格対応点は、第１の対応点群から求める。
【００４０】
図９および図１０に、合格対応点計数の詳細を示す。図９は、合格対応点計数の処理フローチャートである。まず、ステップＳ９０１で、ｉ＝０，ｊ＝０，Ｃｏｕｎｔ＿ＳＰ＝０をセットする。次に、ステップＳ９０２において、仮の位置ずれパラメータで、ｂｌｋ＿Ｔ［ｉ］［ｊ］の中央座標、すなわち対応点［ｉ］［ｊ］の始点を座標変換する。座標変換は、上記の（１）、（２）式を用いる。
【００４１】
次に、ステップＳ９０３において、図１０に示すように、検出された対応点［ｉ］［ｊ］の終点座標と、座標変換後の座標の誤差Ｅｒｒ［ｉ］［ｊ］を算出する。図１０から分かるように、Ｅｒｒ［ｉ］［ｊ］の値が小さければ小さいほど、仮の位置ずれパラメータが表す動きと、検出された対応点［ｉ］［ｊ］の表す動きの一致度合いが高いと考えられる。従って、ステップＳ９０４において、Ｅｒｒ［ｉ］［ｊ］を所定の閾値ＴＨ２と比較し、Ｅｒｒ［ｉ］［ｊ］がＴＨ２よりも小さければ、対応点［ｉ］［ｊ］を合格対応点とみなし、Ｃｏｕｎｔ＿ＳＰの値をインクリメントする。逆に、Ｅｒｒ［ｉ］［ｊ］が条件を満たさない場合は、対応点［ｉ］［ｊ］は合格対応点とみなさない（ステップＳ９０５，Ｓ９０６）。
【００４２】
上記の処理を、全対応点に対して行い（ステップＳ９０７，Ｓ９０８），最終的なＣｏｕｎｔ＿ＳＰの値が、合格対応点数となる。
【００４３】
上記の合格対応点計数処理を、選択する対応点の組み合わせを変更しながら、所定のループ回数だけ実行する（ステップＳ８０６、８０７）。その後、ステップＳ８０８において、計数された合格対応点数が最も多い合格対応点の組み合わせを、合格対応点群（合格動きベクトル群）として出力する。
【００４４】
以上が、合格対応点選出部１１０の処理内容であり、合格対応点選出部１１０の出力として、手振れによる位置ずれを表す合格対応点群が得られる。また、合格対応点群は第１の対応点群から抽出しているため、信頼度の低い対応点でも、手振れによる位置ずれを表す対応点を抽出することが可能である。
【００４５】
位置ずれパラメータ推定部１１１は、合格対応点群から、位置ずれパラメータを推定する。ここでも、位置ずれパラメータは射影変換係数であり、推定の手法は最小二乗法を用いる。
【００４６】
以上が、位置ずれ検出部１０５の処理内容であり、ターゲット画像を画像２、画像３、画像４として位置ずれ検出処理を行うことにより、位置ずれ検出部１０５からは、画像１に対する画像２、画像３、画像４の位置ずれパラメータが出力される。
【００４７】
画像位置合わせ部１１２では、画像２、画像３、画像４に対して算出された位置ずれパラメータを用いて、画像２，画像３，画像４をそれぞれ幾何変形し、画像１に位置を合わせる処理を行う。
【００４８】
画像合成部１１３では、画像１と、画像位置合わせ部１１２において画像１に位置を合わせた画像２、画像３、画像４を合成する。本実施形態は、画像の重ね合わせによりノイズを低減させる処理なので、画像合成部１１３においては、４画像を加算平均する。ここで、画像１、画像２、画像３、画像４は、全て適正露出で撮影された画像である。
【００４９】
最後に、画像合成部１１３で生成された合成画像が、画像表示部１１４および画像記録部１１５に送られる。
【００５０】
以上説明したように、第１の実施形態に示す処理によれば、仮の変換パラメータは信頼度の高い第２の対応点群から算出するが、合格対応点は信頼度の低い対応点を含む第１の対応点群から選択する。従って、信頼度の低い対応点のうち、手振れによる位置ずれを正しく検出している対応点のみを合格対応点に入れることが可能になり、信頼度の高い対応点のみを用いて位置ずれを推定する従来の技術と比較して、位置ずれ推定精度の向上が期待できる。
【００５１】
（第２の実施形態）
以下、図面を参照して、本発明の第２の実施形態について詳細に説明する。
【００５２】
第１の実施形態では、対応点が位置ずれを正しく検出しているかの信頼度として、繰り返しパターン判定を行った。本実施形態では、信頼度として、テンプレート領域（テンプレート画像）に含まれるテクスチャの量を判定する。テンプレート領域のテクスチャ量が少ない場合、周辺領域とのＳＡＤ値の差がつかず、位置ずれを表す位置で局所的なピークを持たなくなることが考えられるため、位置ずれ検出の精度が低下すると考えられる。従って、テクスチャ量が少ないほど、信頼度は低くなると考えられる。
【００５３】
図１１は、第２の実施形態における信頼度算出部１０８の処理フローチャートである。まず、ステップＳ１１０１において、ｉ＝０，ｊ＝０をセットし、ステップＳ１１０２において、ｂｌｋ＿Ｔ［ｉ］［ｊ］、すなわちテンプレート領域に、所定の帯域のみを通過させるバンドパスフィルタを通す。本実施形態では、エッジ成分を抽出するために、バンドパスフィルタは、比較的高周波の成分を通過させる設定にする。
【００５４】
次に、ステップＳ１１０３において、バンドパスフィルタの出力を、テンプレート領域内で絶対値積分する。本実施形態では、バンドパスフィルタ出力はエッジ信号としているため、テンプレート領域内のテクスチャ量が多いほど、絶対値積分の値は大きな値をとると考えられる。
【００５５】
次に、ステップＳ１１０４，Ｓ１１０５、Ｓ１１０６において、積分値が所定の閾値ＴＨ３よりも大きい場合は、対応点［ｉ］［ｊ］の信頼度が高いと判定し、逆に積分値が所定の閾値ＴＨ３よりも小さい場合は、対応点［ｉ］［ｊ］の信頼度が低いと判定する。同様の処理を、全ブロックに対して行う（ステップＳ１１０７、Ｓ１１０８）。
【００５６】
以上が、第２の実施形態における信頼度算出部１０８の処理内容であり、その他の処理は、第１の実施形態と同様である。また、第２の実施形態では信頼度をテクスチャの量から判定したが、繰り返しパターンおよびテクスチャの量の両方をから信頼度を判定してもよい。さらに、ＳＡＤ値の最小値を比較するなど、その他の要素を用いて信頼度を判定してもよいとする。
【００５７】
（第３の実施形態）
以下、図面を参照して、本発明の第３の実施形態について詳細に説明する。
【００５８】
第１及び第２の実施形態では、各対応点について位置ずれ検出に対する信頼度を算出し、信頼度が低い対応点は、第１の対応点群のみに入れて、合格対応点判定を行った。しかし、特に繰り返しパターン等の場合では、ＳＡＤ値の最小値が正しく位置ずれを表していない可能性が大きいが、そのような場合においても、正しく位置ずれを表す場所で、ＳＡＤ値は最小値に近い値を持つ極小値をとると考えられる。従って、合格対応点判定で、正しく位置ずれを表す対応点のみが抽出されることを期待して、信頼度が低い対応点に関しては、ＳＡＤ値が最小となる点のみでなく、最小値以外の極小値が示す対応点に関しても、第１の対応点群に入れることが有効であると考えられる。すなわち、第１の実施形態および２では、１つの検出用ブロックに対し対応点は１つだけ検出されるが、実施例３においては、１つの検出用ブロックから複数の対応点が検出される可能性がある。
【００５９】
図１２は、本実施形態の画像処理装置に適用可能な構成を示したブロック図である。
【００６０】
図１と比較すると、新たに対応点追加部１２０９が加わっており、他の構成に差異はない。従って、ここでは対応点追加部１２０９の処理内容について詳細に説明を行う。
【００６１】
＜対応点追加部１２０９＞
図１３は、対応点追加部１２０９の処理フローチャートである。まず、ステップＳ１３０１で、ｉ＝０，ｊ＝０をセットし、次に、ステップＳ１３０２において、対応点［ｉ］［ｊ］の信頼度を確認する。信頼度が１、つまり信頼度が高い場合は、ＳＡＤ値の最小値で検出された対応点が位置ずれを表す可能性が高いため、対応点の追加は行わない。一方、信頼度が０、つまり信頼度が低い場合は、ＳＡＤ値の最小値で検出された対応点が位置ずれを表す可能性が比較的低いため、対応点追加処理を行う。
【００６２】
次に、ステップＳ１３０３、Ｓ１３０４において、相関値マップ［ｉ］［ｊ］から、極小値を全て検出する。検出した極小値の中で、第１極小値ＬＭ１に近い値をとる極小値が示す対応点は、手振れによる位置ずれを表している可能性がある。従って、各極小値に対してＬＭ１との差分をとり、差分値がＴＨ４以下となる極小値が示す対応点を、全て第１の対応点群に追加する。以降、対応点追加部１２０９で追加された対応点を、追加対応点と呼ぶ。
【００６３】
上記処理を全ブロックに対して行い（ステップＳ１３０５，Ｓ１３０６）、対応点追加部１２０９の結果として、第１のメモリに格納される第１の対応点群に、追加対応点が複数追加される可能性がある。
【００６４】
以上説明したように、実施例３によれば、信頼度の低い検出用ブロックにおいて、第１極小値に近い値をとる極小値が示す追加対応点を、第１の対応点群に追加する。これにより、合格対応点選出の際に、追加対応点を含む対応点群の中から、手振れを表す対応点を選出することになる。従って、各検出用ブロックに対して、最も相関が強いとされる対応点のみを第１の対応点群に含めていた第１の実施形態および２と比較して、推定精度が上がることが期待できる。
【００６５】
（他の実施形態）
本発明の目的は以下のようにしても達成できる。すなわち、前述した各実施形態の機能を実現するための手順が記述されたソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給する。そしてそのシステムまたは装置のコンピュータ（またはＣＰＵ、ＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行するのである。
【００６６】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。
【００６７】
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどが挙げられる。また、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等も用いることができる。
【００６８】
また、コンピュータが読み出したプログラムコードを実行可能とすることにより、前述した各実施形態の機能が実現される。さらに、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した各実施形態の機能が実現される場合も含まれる。
【００６９】
更に、以下の場合も含まれる。まず記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う。
【符号の説明】
【００７０】
１０１  露出条件制御部
１０２  撮像部
１０３  Ａ／Ｄ変換部
１０４  信号処理部
１０５  位置ずれ検出部
１０６  対応点検出部
１０７  第１メモリ部
１０８  信頼度算出部
１０９  第２メモリ部
１１０  合格対応点選出部
１１１  位置ずれパラメータ推定部
１１２  画像位置合わせ部
１１３  画像合成部
１１４  画像表示部
１１５  画像記録部
【図１】
2014056378.tif 000005
【図２】
2014056378.tif 000006
【図３】
2014056378.tif 000007
【図４】
2014056378.tif 000008
【図５】
2014056378.tif 000009
【図６】
2014056378.tif 000010
【図７】
2014056378.tif 000011
【図８】
2014056378.tif 000012
【図９】
2014056378.tif 000013
【図１０】
2014056378.tif 000014
【図１１】
2014056378.tif 000015
【図１２】
2014056378.tif 000016
【図１３】
2014056378.tif 000017