(57)【要約】【課題】入力画像間での手振れを防止すること。【解決手段】制御装置１０４は、テンプレート画像を用いたテンプレートマッチング処理により、スルー画の入力画像における背景位置を特定して、背景位置の入力画像間での移動方向及び移動量を特定するベクトルを算出し、前入力画像における切り出し範囲を入力画像間での背景位置の移動方向に、背景位置の移動量だけ移動させた位置に現入力画像における切り出し範囲を設定し、切り出し範囲内の画像を抽出してモニタ１０６に表示する。【選択図】図１
2011155492.tif 000002
【特許請求の範囲】
【請求項１】
テンプレート画像を用いたテンプレートマッチング処理により、時系列で入力される入力画像内における動きのある被写体を避けた背景位置を特定し、前記背景位置の入力画像間での移動方向及び移動量を特定する特定手段と、
前記特定手段によって特定された前記背景位置の入力画像間での移動方向及び移動量に基づいて、時系列で入力される入力画像間での手振れを低減する手振れ補正手段とを備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記特定手段は、前入力画像における背景位置と現入力画像における背景位置とに基づいて、入力画像間での背景位置の移動方向及び移動量を特定するための動ベクトルを算出することを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
前記特定手段は、複数のテンプレート画像を用いて、前記入力画像内における複数の背景位置を特定し、各背景位置を対象として入力画像間での背景位置の移動方向及び移動量を特定するためのベクトルを算出し、各背景位置を対象として算出した複数のベクトルの平均を前記動ベクトルとすることを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記特定手段は、算出した複数のベクトルの平均と標準偏差とに基づいて、前記複数のベクトルの中から異常値を検出し、前記異常値を示すベクトルを除いて、前記動ベクトルを算出することを特徴とする画像処理装置。
【請求項５】
請求項１〜４のいずれか一項に記載の画像処理装置において、
前記手振れ補正手段は、入力画像内から前記特定手段によって特定された入力画像間での前記背景位置の移動方向及び移動量に応じた所定の切り出し範囲内の画像を切り出して出力することによって手振れを低減することを特徴とする画像処理装置。
【請求項６】
請求項５に記載の画像処理装置において、
前記手振れ補正手段は、前記入力画像の中心と前記切り出し範囲の中心が一致する位置を前記切り出し範囲の初期位置とし、最初に処理を行う入力画像は、前記初期位置から前記切り出し範囲を移動させることを特徴とする画像処理装置。
【請求項７】
請求項６に記載の画像処理装置において、
前記手振れ補正手段は、前記切り出し範囲が画像の端点に達した場合には、切り出し範囲を移動させる基準位置を前記初期位置に戻すことを特徴とする画像処理装置。
【請求項８】
請求項１〜７のいずれか一項に記載の画像処理装置において、
前記テンプレート画像は、入力画像内から抽出された部分画像であって、
前記特定手段は、最初に処理を行う入力画像では、入力画像内の前記部分画像の取得位置を含む所定範囲を探索対象領域として設定し、それ以外の入力画像では、前入力画像における背景位置を含む所定範囲を探索対象領域として設定し、前記探索対象領域を対象として前記テンプレート画像を用いたテンプレートマッチング処理を行なうことを特徴とする画像処理装置。
【請求項９】
請求項８に記載の画像処理装置において、
入力画像を複数の分割領域に分割し、各分割領域を対象としてエッジ加算量を評価値として算出し、算出した前記評価値に基づいて入力画像内から所定数の前記分割領域を選択し、選択した前記分割領域内の画像を前記テンプレート画像として抽出するテンプレート画像抽出手段をさらに備えることを特徴とする画像処理装置。
【請求項１０】
請求項９に記載の画像処理装置において、
前記テンプレート画像抽出手段は、前記探索対象領域が画像の端点に達した場合には、その探索対象領域に対応するテンプレート画像に代えて、新たなテンプレート画像を入力画像内から取り直すことを特徴とする画像処理装置。
【請求項１１】
請求項１０に記載の画像処理装置において、
前記テンプレート画像抽出手段は、入力画像内から新たなテンプレート画像を取り直す場合には、前記エッジ加算量に基づいて入力画像内から抽出した所定数の前記分割領域のうち、画像の端点に達した前記探索対象領域以外の各探索対象領域から距離が最も離れている分割領域内の画像を前記新たなテンプレート画像として取り直すことを特徴とする画像処理装置。
【請求項１２】
請求項９〜１１のいずれか一項に記載の画像処理装置において、
前記テンプレート画像抽出手段は、入力画像の中心とその近傍を除外した前記分割領域から前記テンプレート画像を抽出することを特徴とする画像処理装置。
【請求項１３】
請求項９〜１１のいずれか一項に記載の画像処理装置において、
時系列で入力される入力画像間で被写体を追尾する被写体追尾手段をさらに備え、
前記テンプレート画像抽出手段は、入力画像内における追尾中の被写体位置とその近傍を除外した前記分割領域から前記テンプレート画像を抽出することを特徴とする画像処理装置。
【請求項１４】
請求項１〜１３のいずれか一項に記載の画像処理装置において、
前記手振れ補正手段によって切り出された前記出力画像を表示装置に表示する表示制御手段をさらに備えることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
次のような手振れ補正装置が知られている。この手振れ補正装置は、テンプレートマッチングの手法を用いて手振れを検出するものであり、テンプレートの輝度の最大値と最小値の差をとり、この差の値が小さい場合は信頼性がないとしてこのテンプレートを演算対象から除外する方式をとっている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１１１１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の手振れ補正装置では、輝度の最大値と最小値の差が大きいテンプレートを用いて手振れを検出すると、全体にグラデーションがかかった画像のような、手振れの検出には向かないテンプレートを用いてしまう可能性があり、手振れの検出精度が低下する可能性があった。
【課題を解決するための手段】
【０００５】
本発明による画像処理装置は、テンプレート画像を用いたテンプレートマッチング処理により、時系列で入力される入力画像内における動きのある被写体を避けた背景位置を特定し、背景位置の入力画像間での移動方向及び移動量を特定する特定手段と、特定手段によって特定された背景位置の入力画像間での移動方向及び移動量に基づいて、時系列で入力される入力画像間での手振れを低減する手振れ補正手段とを備えることを特徴とする。
本発明では、特定手段は、前入力画像における背景位置と現入力画像における背景位置とに基づいて、入力画像間での背景位置の移動方向及び移動量を特定するための動ベクトルを算出するようにしてもよい。
特定手段は、特定手段は、複数のテンプレート画像を用いて、入力画像内における複数の背景位置を特定し、各背景位置を対象として入力画像間での背景位置の移動方向及び移動量を特定するためのベクトルを算出し、各背景位置を対象として算出した複数のベクトルの平均を動ベクトルとするようにしてもよい。
特定手段は、算出した複数のベクトルの平均と標準偏差とに基づいて、複数のベクトルの中から異常値を検出し、異常値を示すベクトルを除いて、動ベクトルを算出するようにしてもよい。
手振れ補正手段は、入力画像内から特定手段によって特定された入力画像間での背景位置の移動方向及び移動量に応じた所定の切り出し範囲内の画像を切り出して出力することによって手振れを低減するようにしてもよい。
手振れ補正手段は、入力画像の中心と切り出し範囲の中心が一致する位置を切り出し範囲の初期位置とし、最初に処理を行う入力画像は、初期位置から切り出し範囲を移動させるようにしてもよい。
手振れ補正手段は、切り出し範囲が画像の端点に達した場合には、切り出し範囲を移動させる基準位置を初期位置に戻すようにしてもよい。
テンプレート画像は、入力画像内から抽出された部分画像であって、特定手段は、最初に処理を行う入力画像では、入力画像内の前記部分画像の取得位置を含む所定範囲を探索対象領域として設定し、それ以外の入力画像では、前入力画像における背景位置を含む所定範囲を探索対象領域として設定し、探索対象領域を対象としてテンプレート画像を用いたテンプレートマッチング処理を行なうようにしてもよい。
入力画像を複数の分割領域に分割し、各分割領域を対象としてエッジ加算量を評価値として算出し、算出した評価値に基づいて入力画像内から所定数の分割領域を選択し、選択した分割領域内の画像をテンプレート画像として抽出するテンプレート画像抽出手段をさらに備えるようにしてもよい。
テンプレート画像抽出手段は、探索対象領域が画像の端点に達した場合には、その探索対象領域に対応するテンプレート画像に代えて、新たなテンプレート画像を入力画像内から取り直すようにしてもよい。
テンプレート画像抽出手段は、入力画像内から新たなテンプレート画像を取り直す場合には、エッジ加算量に基づいて入力画像内から抽出した所定数の分割領域のうち、画像の端点に達した探索対象領域以外の各探索対象領域から距離が最も離れている分割領域内の画像を新たなテンプレート画像として取り直すようにしてもよい。
テンプレート画像抽出手段は、入力画像の中心とその近傍を除外した分割領域からテンプレート画像を抽出するようにしてもよい。
時系列で入力される入力画像間で被写体を追尾する被写体追尾手段をさらに備え、テンプレート画像抽出手段は、入力画像内における追尾中の被写体位置とその近傍を除外した分割領域から前記テンプレート画像を抽出するようにしてもよい。
手振れ補正手段によって切り出された出力画像を表示装置に表示する表示制御手段をさらに備えるようにしてもよい。
【発明の効果】
【０００６】
本発明によれば、高精度に手振れを検出して補正することができる。
【図面の簡単な説明】
【０００７】
【図１】カメラ１００の一実施の形態の構成を示すブロック図である。
【図２】テンプレート画像Ａ、画像Ｉ、およびターゲット画像Ｂの具体例を示す図である。
【図３】画像を複数のブロックに分割する場合の具体例を示す図である。
【図４】画像内からの複数のテンプレート画像の抽出例を示す図である。
【図５】画像内に複数の探索対象領域を設定した場合の具体例を示す図である。
【図６】各ブロックごとのベクトル算出例を示す図である。
【図７】動ベクトルの算出例を示す第１の図である。
【図８】動ベクトルの算出例を示す第２の図である。
【図９】入力画像に対する出力画像の具体例を示す第１の図である。
【図１０】入力画像に対する出力画像の具体例を示す第２の図である。
【図１１】手振れ補正処理の流れを示すフローチャート図である。
【図１２】探索対象領域が画像の端点に到達した場合の具体例を示す図である。
【図１３】テンプレート画像の取り直し例を示す図である。
【図１４】切り出し範囲が画像の端点に到達した場合の具体例を示す図である。
【図１５】テンプレート抽出時に画像にかけるマスクの具体例を示す第１の図である。
【図１６】テンプレート抽出時に画像にかけるマスクの具体例を示す第２の図である。
【発明を実施するための形態】
【０００８】
図１は、本実施の形態におけるカメラの一実施の形態の構成を示すブロック図である。カメラ１００は、操作部材１０１と、レンズ１０２と、撮像素子１０３と、制御装置１０４と、メモリカードスロット１０５と、モニタ１０６とを備えている。操作部材１０１は、使用者によって操作される種々の入力部材、例えば電源ボタン、レリーズボタン、ズームボタン、十字キー、決定ボタン、再生ボタン、削除ボタンなどを含んでいる。
【０００９】
レンズ１０２は、複数の光学レンズから構成されるが、図１では代表して１枚のレンズで表している。レンズ１０２を構成するレンズには、ズーム倍率を変更するためのズームレンズや、焦点調節を行うための焦点調節用レンズ（ＡＦレンズ）等が含まれる。撮像素子１０３は、例えばＣＣＤやＣＭＯＳなどのイメージセンサーであり、レンズ１０２により結像した被写体像を撮像する。そして、撮像によって得られた画像信号を制御装置１０４へ出力する。
【００１０】
制御装置１０４は、撮像素子１０３から入力された画像信号に基づいて所定の画像形式、例えばＪＰＥＧ形式の画像データ（以下、「本画像データ」と呼ぶ）を生成する。また、制御装置１０４は、生成した画像データに基づいて、表示用画像データ、例えばサムネイル画像データを生成する。制御装置１０４は、生成した本画像データとサムネイル画像データとを含み、さらにヘッダ情報を付加した画像ファイルを生成してメモリカードスロット１０５へ出力する。
【００１１】
メモリカードスロット１０５は、記憶媒体としてのメモリカードを挿入するためのスロットであり、制御装置１０４から出力された画像ファイルをメモリカードに書き込んで記録する。また、メモリカードスロット１０５は、制御装置１０４からの指示に基づいて、メモリカード内に記憶されている画像ファイルを読み込む。
【００１２】
モニタ１０６は、カメラ１００の背面に搭載された液晶モニタ（背面モニタ）であり、当該モニタ１０６には、メモリカードに記憶されている画像やカメラ１００を設定するための設定メニューなどが表示される。また、制御装置１０４は、使用者によってカメラ１００のモードが撮影モードに設定されると、撮像素子１０３から時系列で取得した画像の表示用画像データをモニタ１０６に出力する。これによってモニタ１０６にはスルー画が表示される。
【００１３】
制御装置１０４は、ＣＰＵ、メモリ、およびその他の周辺回路により構成され、カメラ１００を制御する。なお、制御装置１０４を構成するメモリには、ＳＤＲＡＭやフラッシュメモリが含まれる。ＳＤＲＡＭは、揮発性のメモリであって、ＣＰＵがプログラム実行時にプログラムを展開するためのワークメモリとして使用されたり、データを一時的に記録するためのバッファメモリとして使用される。また、フラッシュメモリは、不揮発性のメモリであって、制御装置１０４が実行するプログラムのデータや、プログラム実行時に読み込まれる種々のパラメータなどが記録されている。
【００１４】
本実施の形態では、制御装置１０４は、撮像素子１０３から入力されるスルー画の各フレーム（入力画像）に対して、あらかじめ用意したテンプレート画像を用いたテンプレートマッチング処理を行うことによって、入力画像内からテンプレート画像と類似するマッチング領域を特定する。そして、制御装置１０４は、特定したマッチング領域の入力画像間での位置変化に基づいて手振れを検出し、スルー画の入力画像間で手振れを防止するための処理を行う。
【００１５】
まず、一般的なテンプレートマッチング処理について説明する。制御装置１０４は、テンプレートマッチング処理の基準となるテンプレート画像と、撮像素子１０３から時系列で入力される各入力画像とのマッチング演算を行う。例えば、制御装置１０４は、図２に示すように、テンプレート画像Ａを用いて画像Ｉ内におけるマッチング領域を特定する。なお、本実施の形態では、複数のテンプレート画像を用いてテンプレートマッチングを行うこととし、テンプレートマッチング処理に用いる複数のテンプレート画像の取得方法については後述する。
【００１６】
制御装置１０４は、撮像素子１０３からのスルー画の入力が開始されると、各入力画像を対象として、この画像Ｉ内の所定の位置にテンプレート画像と同じ大きさのターゲット枠を設定し、設定したターゲット枠内のターゲット画像Ｂをテンプレートマッチングの対象とする。すなわち、制御装置１０４は、ターゲット枠を画像Ｉ内で移動させながら、各ターゲット枠位置におけるターゲット画像Ｂと、テンプレート画像Ａとのマッチング演算を行なう。マッチング演算の結果、テンプレート画像Ａとターゲット画像Ｂとの類似度が最も高い領域を画像Ｉ内におけるマッチング領域として特定する。
【００１７】
上述したように、画像Ｉの全体を探索対象領域とすることによって画像Ｉの全体を対象としてテンプレートマッチングを行ってもよいが、画像内からテンプレート画像Ａを抽出した位置を含む所定範囲を探索対象領域としてテンプレートマッチングを行うようにしてもよい。これによって、テンプレートマッチングを行う範囲を画像Ｉ内の類似度が高い可能性が高い範囲に限定することができ、処理を高速化することができる。
【００１８】
なお、テンプレートマッチングの手法としては、一般的に、公知の残差逐次検定法などが用いられる。この残差逐次検定法では、次式（１）に示す差分和により類似度を算出し、算出した類似度に基づいてテンプレートマッチングを行う。
【数１】
2011155492.tif 000003
【００１９】
式（１）により類似度を算出した場合は、算出されるｒが小さいほどテンプレート画像Ａとターゲット画像Ｂとの類似度が高くなり、算出されるｒが大きいほどテンプレート画像Ａとターゲット画像Ｂとの類似度は低くなる。ここで、式（１）において、ｍは探索対象領域内における横方向の位置を示し、ｎは縦方向の位置を示している。
【００２０】
ここで本実施の形態におけるテンプレート画像の取得方法について説明する。まず、制御装置１０４は、図３に示すように、画像Ｉ１の全体を複数の分割領域（ブロック）に分割する。そして、制御装置１０４は、各ブロック内の各画素を対象として、次式（２）に示す３×３の行列で表されるＸ方向のＳｏｂｅｌフィルタ、及び次式（３）に示す３×３の行列で表されるＹ方向のＳｏｂｅｌフィルタを係数として用いて、コンボリューション（畳み込み）を行なう。そして、制御装置１０４は、次式（２）及び（３）による算出結果に基づいて、次式（４）によりエッジ加算値を算出する。
【００２１】
【数２】
2011155492.tif 000004
【数３】
2011155492.tif 000005
【数４】
2011155492.tif 000006
【００２２】
制御装置１０４は、画像Ｉ１全体の中から、式（３）によって算出されたエッジ加算値が大きい順に複数のブロックを抽出し、抽出したブロック内の画像をテンプレートマッチング処理で用いる複数のテンプレート画像として取得する。本実施の形態では、この方法により５個のテンプレート画像が取得されるものとし、例えば、図４に示すブロック１〜５が抽出され、これらのブロック内の画像がテンプレート画像として取得される。なお、テンプレートマッチング処理によって特定したマッチング領域の入力画像間での位置変化に基づいて手振れを検出するためには、マッチングの対象が動きのある被写体であると、マッチング領域の位置変化が被写体の動きによるものか、手振れによるものかの判定が困難であるため望ましくない。よって、本実施の形態では、マッチングの対象を動きの少ない背景とするために、テンプレート画像として背景の画像を取得することとする。
【００２３】
このために、制御装置１０４は、画像Ｉ１に対して、動きが大きい被写体が含まれる可能性が高いブロックに「０」を、それ以外のブロックに「１」をかけるマスクをかけた後、上述したエッジ加算値を算出する。例えば、一般的に人物は動きが大きい可能性があり、起立している人物は画像中央下部から上部にかけて存在している可能性が高いため、画像Ｉ１に図１５に示すような画像の中心とその近傍を除くようなマスクをかけてからエッジ加算値を算出する。
【００２４】
あるいは、カメラ１００が画像内の移動中の被写体を追尾中である場合には、その追尾中の移動被写体が存在している高いブロックに「０」を、それ以外のブロックに「１」をかけるマスクをかけた後、上述したエッジ加算値を算出するようにしてもよい。例えば、画像の中央部分に移動中の追尾対象被写体が存在している場合には、画像Ｉ１に図１６に示すような被写体位置とその近傍を除くようなマスクをかけてからエッジ加算値を算出するようにしてもよい。これによって、動きのある被写体を避けた背景の画像がテンプレート画像として取得されることとなり、テンプレートマッチング処理によって動きが少なく手振れを高精度に検出できる背景位置を特定することが可能となる。
【００２５】
制御装置１０４は、このように取得した５つのテンプレート画像を用いて、以降に入力される入力画像を対象としたテンプレートマッチング処理を行なう。例えば、制御装置１０４は、図５に示すように、画像Ｉ２において、それぞれのテンプレート画像の取得元であるブロック位置の周囲に探索対象領域５ａ〜５ｅを設定し、それぞれの探索対象領域内で、各探索対象領域に対応するテンプレート画像を用いたテンプレートマッチング処理を行う。
【００２６】
例えば、図４に示したブロック１の周囲に設定した探索対象領域５ａに対しては、ブロック１から取得したテンプレート画像１を用いてテンプレートマッチング処理を行い、ブロック２の周囲に設定した探索対象領域５ｂに対しては、ブロック２から取得したテンプレート画像２を用いてテンプレートマッチング処理を行う。また、ブロック３の周囲に設定した探索対象領域５ｃに対しては、ブロック３から取得したテンプレート画像３を用いてテンプレートマッチング処理を行い、ブロック４の周囲に設定した探索対象領域５ｄに対しては、ブロック４から取得したテンプレート画像４を用いてテンプレートマッチング処理を行い、ブロック５の周囲に設定した探索対象領域５ｅに対しては、ブロック５から取得したテンプレート画像５を用いてテンプレートマッチング処理を行う。
【００２７】
なお、次入力画像以降は、前入力画像におけるテンプレートマッチング処理によって特定したマッチング位置の周囲に探索対象領域を設定してテンプレートマッチングを継続する。これによって、常に最新のマッチング位置の周囲に探索対象領域を設定することができ、テンプレートマッチングの精度を向上することができる。
【００２８】
制御装置１０４は、この画像Ｉ２に対するテンプレートマッチング処理の結果に基づいて、画像Ｉ１にから抽出したブロック内のマッチング位置、すなわち背景位置が入力画像間でどこに移動したかを特定し、図６に示すように、各ブロックの入力画像間での移動量を示すベクトル６ａ〜６ｅを算出する。そして、図７に示すように、これらのベクトル６ａ〜６ｅの平均を算出することにより、前入力画像における背景位置と現入力画像における背景位置とに基づいて、入力画像間での背景位置の移動方向及び移動量を特定するための動ベクトル７ａを算出する。この動ベクトル７ａは、画像Ｉ１と画像Ｉ２の入力画像のズレ量を示している。
【００２９】
なお、制御装置１０４は、各ブロックの入力画像間での移動量を示すベクトル６ａ〜６ｅのうち、いずれかのベクトルの向きが他のベクトルの向きや大きさとは大きく異なる場合には、そのベクトルの算出結果は手振れ検出用として用いるには信頼性が低い、すなわち異常値を示すと判断して、動ベクトル７ａの算出には用いないようにする。例えば、図８に示すように、ベクトル６ａ〜６ｅのうち、ベクトル６ｂの向きが他のベクトルの向きと異なる場合には、制御装置１０４は、ベクトル６ｂを除いた４つのベクトルの平均を動ベクトル７ａとして算出する。ここで、いずれかのベクトルの向きや大きさが他のベクトルの向きとは大きく異なるか否かを判断するためには、例えば、ベクトル６ａ〜６ｅの平均±標準偏差を閾値とし、この閾値の範囲から外れるベクトルを他のベクトルとは向きや大きさが大きく異なると判定すればよい。
【００３０】
制御装置１０４は、上記の方法により算出した動ベクトル７ａに基づいて手振れの発生した方向と手振れ量を検出し、手振れを防止するための手振れ補正を行い、手振れ補正後の画像をモニタ１０６に表示する。本実施の形態では、図９に示すように、撮像素子１０３からの入力画像９ａ内の所定範囲９ｂ内の画像を表示用画像（出力画像）として切り出してモニタ１０６に表示することとし、入力画像９ａ内における切り出し範囲９ｂを動ベクトル７ａに基づいて変化させることによって、手振れの補正を行う。
【００３１】
なお、切り出し範囲９ｂの大きさは、手振れ補正量に基づいて算出することとし、例えば入力画像９ａの０．８倍〜０．９倍程度となる。また、図９に示すように、入力画像の中心と切り出し範囲９ｂの中心とが一致する位置を切り出し範囲９ｂの初期位置とし、制御装置１０４は、処理の開始時には切り出し範囲９ｂを該初期位置に設定する。すなわち、最初に処理を行う入力画像では、切り出し範囲９ｂを該初期位置に設定する。
【００３２】
本実施の形態における手振れ補正の方法について図１０を用いて説明する。例えば、手振れが発生していない場合の入力画像９ａに対する切り出し範囲として基準範囲９ｂが設定されている場合に、手振れによって動ベクトル７ａが算出されたものとする。この場合には、制御装置１０４は、基準範囲９ｂを、動ベクトル７ａによって表される手振れ量を相殺する方向に移動させて切り出し範囲１０ａを得る。すなわち、基準範囲９ｂを入力画像間での背景位置の移動方向に、背景位置の移動量だけ移動させた位置に現入力画像における切り出し範囲１０ａを設定する。そして、制御装置１０４は、切り出し範囲１０ａ内の画像を表示用画像として抽出してモニタ１０６に表示する。
【００３３】
そして、制御装置１０４は、次入力画像以降は、手振れが発生していない場合の入力画像９ａに対する基準範囲を範囲１０ａに設定し、その基準範囲１０ａを、動ベクトル７ａによって表される手振れ量を相殺する方向に移動させることによって切り出し範囲を得る。これによって、スルー画の各入力画像について手振れ補正を行うことができる。
【００３４】
図１１は、本実施の形態における手振れ補正処理の流れを示すフローチャートである。図１１に示す処理は、撮像素子１０３からのスルー画の入力が開始されると起動するプログラムとして、制御装置１０４によって実行される。なお、図１１に示す処理では、テンプレートマッチング処理に用いる複数のテンプレート画像は、上述した方法によりあらかじめ取得されてＳＤＲＡＭに記録されているものとする。
【００３５】
ステップＳ１０において、制御装置１０４は、図５に示したように、画像Ｉ２において、それぞれのテンプレート画像の取得元であるブロック位置の周囲に探索対象領域５ａ〜５ｅを設定し、それぞれの探索対象領域内で、各探索対象領域に対応するテンプレート画像を用いたテンプレートマッチング処理を行う。その後、ステップＳ２０へ進む。
【００３６】
ステップＳ２０では、制御装置１０４は、上述したように、各ブロックの入力画像間での移動量を示すベクトル６ａ〜６ｅを算出し、これらのベクトル６ａ〜６ｅの平均を算出することにより動ベクトル７ａを算出する。その後、ステップＳ３０へ進み、制御装置１０４は、上述したように、算出した動ベクトル７ａに基づいて、撮像素子１０３からの入力画像９ａ内から切り出す切り出し範囲９ｂを決定して、ステップＳ４０へ進む。
【００３７】
ステップＳ４０では、ステップＳ３０で決定した切り出し範囲９ｂ内の画像を切り出してモニタ１０６に表示することにより、モニタ１０６に手振れ補正後の入力画像を表示する。その後、ステップＳ５０へ進み、制御装置１０４は、スルー画の入力が終了したか否かを判断する。ステップＳ５０で否定判断した場合には、ステップＳ１０へ戻り、次入力画像を対象として上述したステップＳ１０からステップＳ４０の処理を繰り返す。一方、ステップＳ５０で否定判断した場合には、処理を終了する。
【００３８】
以上説明した本実施の形態によれば、以下のような作用効果を得ることができる。
（１）制御装置１０４は、テンプレート画像を用いたテンプレートマッチング処理により、スルー画の入力画像における背景位置を特定して、背景位置の入力画像間での移動方向及び移動量を特定するベクトルを算出し、前入力画像における切り出し範囲を入力画像間での背景位置の移動方向に、背景位置の移動量だけ移動させた位置に現入力画像における切り出し範囲を設定し、切り出し範囲内の画像を抽出してモニタ１０６に表示するようにした。これによって、スルー画の入力画像間で手振れ補正を行うことができる。さらに、動きが少ない背景を対象としてテンプレートマッチング処理を行なうため、手振れを高精度に検出することができる。
【００３９】
（２）制御装置１０４は、前入力画像における背景位置と現入力画像における背景位置とに基づいて、入力画像間での背景位置の移動方向及び移動量を特定するための動ベクトルを算出するようにした。これによって、前入力画像と現入力画像における入力画像のズレ量を算出できる。
【００４０】
（３）制御装置１０４は、複数のテンプレート画像を用いて、入力画像内における複数の背景位置を特定し、各背景を対象としてベクトルを算出し、算出した複数のベクトルの平均を動ベクトルとして算出するようにした。これによって、動ベクトルの精度を上げることができる。
【００４１】
（４）制御装置１０４は、算出した複数のベクトルの平均と標準偏差とに基づいて、複数のベクトルの中から異常値を検出し、異常値を示すベクトルを除いて動ベクトルを算出するようにした。これによって、動ベクトルの精度をさらに上げることができる。
【００４２】
（５）制御装置１０４は、入力画像の中心と切り出し範囲の中心が一致する位置を切り出し範囲の初期位置とし、最初に処理を行う入力画像は、初期位置から切り出し範囲を移動させるようにした。これによって、初期位置を基準として入力画像間での手振れを補正することができる。
【００４３】
（６）制御装置１０４は、最初に処理を行う入力画像では、入力画像内のテンプレート画像の取得位置を含む所定範囲を探索対象領域として設定し、それ以外の入力画像では、前入力画像におけるマッチング位置を含む所定範囲を探索対象領域として設定するようにした。これによって、入力画像間でマッチング位置が移動した場合でも手振れ補正を継続することができる。
【００４４】
（７）制御装置１０４は、入力画像を複数のブロックに分割し、各ブロックを対象としてエッジ加算量を算出し、算出したエッジ加算値に基づいて入力画像内から複数、例えば６つのブロックを選択し、選択したブロック内の画像をテンプレート画像として抽出するようにした。これによって、入力画像内から絵柄のあるメリハリのある部分をテンプレート画像として抽出することができ、テンプレートマッチング処理の精度を向上することができる。
【００４５】
―変形例―
なお、上述した実施の形態のカメラは、以下のように変形することもできる。
（１）上述した実施の形態では、図５に示したように、画像Ｉ２において、それぞれのテンプレート画像の取得元であるブロック位置の周囲に探索対象領域５ａ〜５ｅを設定し、それぞれの探索対象領域内で、各探索対象領域に対応するテンプレート画像を用いたテンプレートマッチング処理を行うようにした。そして、次入力画像以降は、前入力画像におけるテンプレートマッチング処理によって特定したマッチング位置の周囲に探索対象領域を設定してテンプレートマッチングを継続するようにした。しかしながら、この処理を複数入力画像継続した場合には、例えば図１２に示す探索対象領域１２ｂのように、いずれかの探索対象領域が画像の端点に達してしまう可能性がある。
【００４６】
この場合には、制御装置１０４は、探索対象領域１２ｂを用いて追尾している背景は画像の外に出てしまっている可能性が高いことから、この探索対象領域１２ｂを対象としたテンプレートマッチング処理に用いるテンプレート画像を、画像内の他の位置から取り直すようにする。例えば、制御装置１０４は、現入力画像を対象として、上述した式（４）により改めてブロックごとのエッジ加算値を算出し、エッジ加算値が大きい順に複数のブロックを抽出する。そして、抽出した複数のブロックの中から、画像の端点に達してしまった探索対象領域以外の各探索対象領域と最も離れた位置にあるブロック内の画像を新たなテンプレート画像として取り直す。例えば、図１３に示す例では、探索対象領域１２ｂを対象としたテンプレートマッチング処理に用いるテンプレート画像に代えて、ブロック１３ａ内の画像が新たなテンプレート画像として取得される。
【００４７】
その後は、取り直しを行なっていない４つのテンプレート画像と取り直したテンプレート画像との５つのテンプレート画像を用いて、上述したテンプレートマッチング処理を行なうようにすればよい。これによって、追尾対象の背景が画像外へ移動してしまった場合でも、新たにテンプレート画像を取り直すことにより、複数のテンプレート画像を用いたテンプレートマッチング処理を継続することができ、スルー画の各入力画像に対する手振れ補正を継続することが可能となる。
【００４８】
（２）上述した実施の形態では、図１０に示したように、制御装置１０４は、基準範囲９ｂを、動ベクトル７ａによって表される手振れ量を相殺する方向に移動させて切り出し範囲１０ａを得る例について説明した。そして、次入力画像以降は、手振れが発生していない場合の入力画像９ａに対する基準範囲を範囲１０ａに設定し、その基準範囲１０ａを、動ベクトル７ａによって表される手振れ量を相殺する方向に移動させることによって切り出し範囲を得るようにした。しかしながら、この処理を複数の入力画像間に対して継続した場合には、例えば図１４に示すように、切り出し範囲１４ａが画像の端点に達してしまい、次入力画像においてこれを基準範囲１４ａとして設定した場合には、それ以上基準範囲１４ａを移動させて切り出し範囲を得られなくなる可能性がある。
【００４９】
このように切り出し範囲１４ａが画像の端点に達した場合には、制御装置１０４は、次の入力画像における基準範囲を画像の中心方向に移動させるようにし、その後の複数入力画像、例えば２つの入力画像の間に基準範囲を図９に示した初期位置または初期位置の近傍に戻すようにしてもよい。これによって、切り出し範囲が画像の端点に達した場合でも次入力画像以降も手振れ補正を継続することが可能となる。
【００５０】
（３）上述した実施の形態では、制御装置１０４は、複数のテンプレート画像を用いて複数のブロックを対象としたテンプレートマッチング処理を行い、それぞれのブロックについて算出したベクトルの平均を動ベクトル７ａとして算出する例について説明した。しかしながら、制御装置１０４は、少なくとも１つのテンプレート画像を用いて、少なくとも１つのブロックを対象としたテンプレートマッチング処理を行なえばよく、例えば１つのテンプレートを用いて１つのブロックを対象としたテンプレートマッチング処理を行なった場合には、そのブロックについて算出したベクトルを動ベクトルとすればよい。
【００５１】
（４）上述した実施の形態では、制御装置１０４は、スルー画の各入力画像を対象として手振れ補正を行う例について説明した。しかしながら、カメラ１００が動画撮影機能を備えている場合には、制御装置１０４は、スルー画ではなく、動画を構成する各入力画像を対象として手振れ補正を行うようにしてもよい。
【００５２】
（５）上述した実施の形態では、本発明をカメラ１００に適用する場合について説明した。しかしながら、撮影機能を備えた他の機器、例えばカメラ付き携帯電話機やビデオカメラ等にも本発明は適用可能である。
【００５３】
なお、本発明の特徴的な機能を損なわない限り、本発明は、上述した実施の形態における構成に何ら限定されない。また、上述の実施の形態と複数の変形例を組み合わせた構成としてもよい。
【符号の説明】
【００５４】
１００  カメラ、１０１  操作部材、１０２  レンズ、１０３  撮像素子、１０４  制御装置、１０５  メモリカードスロット、１０６  モニタ
【図１】
2011155492.tif 000007
【図２】
2011155492.tif 000008
【図３】
2011155492.tif 000009
【図４】
2011155492.tif 000010
【図５】
2011155492.tif 000011
【図６】
2011155492.tif 000012
【図７】
2011155492.tif 000013
【図８】
2011155492.tif 000014
【図９】
2011155492.tif 000015
【図１０】
2011155492.tif 000016
【図１１】
2011155492.tif 000017
【図１２】
2011155492.tif 000018
【図１３】
2011155492.tif 000019
【図１４】
2011155492.tif 000020
【図１５】
2011155492.tif 000021
【図１６】
2011155492.tif 000022