(57)【要約】【課題】動きベクトルのクラスタリング処理を採用しつつ、防振対象クラスタを見失うことなく良好な画像防振処理を継続する。【解決手段】画像処理装置は、複数の画像のそれぞれにおいて特徴点を抽出し、各画像に対して複数の特徴点での動きベクトルを算出する手段１１０，１１１と、複数の特徴点で算出された複数の動きベクトルに対してクラスタリング処理を行う手段１１２と、複数のクラスタの中から、撮像装置の動きを示す動きベクトルを含む特定クラスタを判定する手段１１３と、複数の画像のうち第１の画像に対する特定クラスタに関する情報を用いた推定方法を使用して、第１の画像よりも後に生成された第２の画像に対する特定クラスタを検出する手段１１３と、第２の画像に対する特定クラスタに含まれる動きベクトルに基づいて、第２の画像に対する画像防振処理を行う手段１１４，１１５とを有する。【選択図】図１
2010118862.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置により順次生成される複数の画像のそれぞれにおいて特徴点を抽出する抽出手段と、
前記各画像に対して、複数の前記特徴点での動きベクトルを算出する算出手段と、
前記複数の特徴点で算出された複数の動きベクトルに対してクラスタリング処理を行うクラスタリング手段と、
前記クラスタリング処理により得られた複数のクラスタの中から、前記撮像装置の動きを示す動きベクトルを含む特定クラスタを判定する判定手段と、
前記複数の画像のうち第１の画像に対する前記特定クラスタに関する情報を用いた推定方法を使用して、前記第１の画像よりも後に生成された第２の画像に対する前記特定クラスタを検出する推定検出手段と、
前記第２の画像に対する前記特定クラスタに含まれる動きベクトルに基づいて、該第２の画像に対する画像防振処理を行う処理手段とを有することを特徴とする画像処理装置。
【請求項２】
前記クラスタリング処理により得られた前記複数のクラスタは、前記撮像装置による撮影範囲に含まれる静止物体に対する動きベクトルを含むクラスタと移動物体に対する動きベクトルを含むクラスタと含み、
前記判定手段は、前記静止物体に対する前記動きベクトルを含むクラスタを前記特定クラスタとして判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記推定方法は、前記特定クラスタの位置、形状、大きさ及び前記特定クラスタに含まれる前記動きベクトルの数のうち少なくとも１つの情報を用いた推定方法であることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記判定手段は、前記特定クラスタよりも多い数の動きベクトルを含む又は該特定クラスタに比べて画像中で大きい面積を占める領域の前記動きベクトルを含む他のクラスタが所定画像数又は所定時間を超えて存在したときは、前記特定クラスタを前記他のクラスタに変更することを特徴とする請求項１から３のいずれか１つに記載の画像処理装置。
【請求項５】
前記推定検出手段は、前記第２の画像に対して前記特定クラスタに相当するクラスタを検出できなかった場合は、前記第２の画像より後に生成される画像に対して、前記推定方法又は他の推定方法を用いた前記特定クラスタの検出を続行することを特徴とする請求項１から４のいずれか１つに記載の画像処理装置。
【請求項６】
被写体を撮像して複数の画像を順次生成する撮像手段と、
請求項１から５のいずれか１つに記載の画像処理装置とを有することを特徴とする撮像装置。
【請求項７】
撮像装置により順次生成される複数の画像のそれぞれにおいて特徴点を抽出するステップと、
前記各画像に対して、複数の前記特徴点での動きベクトルを算出するステップと、
前記複数の特徴点で算出された複数の動きベクトルに対してクラスタリング処理を行うステップと、
前記クラスタリング処理により得られた複数のクラスタの中から、前記撮像装置の動きを示す動きベクトルを含む特定クラスタを判定するステップと、
前記複数の画像のうち第１の画像に対する前記特定クラスタに関する情報を用いた推定方法を使用して、前記第１の画像よりも後に生成された第２の画像に対する前記特定クラスタを検出するステップと、
前記第２の画像に対する前記特定クラスタに含まれる動きベクトルに基づいて、該第２の画像に対する画像防振処理を行うステップとを有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置の振れや動きに起因する画像振れを低減する画像処理技術に関する。
【背景技術】
【０００２】
撮像装置の振れ及び動き（以下、これらをまとめて「動き」という）に伴う画像振れを低減する防振方法には、画像処理技術を利用した、いわゆる電子防振がある。電子防振には、撮像装置により順次生成されるフレーム画像に対する動きベクトルを算出し、該動きベクトルに基づいて、フレーム画像ごとに、該フレーム画像のうち実際に出力する切り出し領域をシフト又は変形させる画像防振処理を行うものがある。
【０００３】
ただし、このような動きベクトルを用いた電子防振では、撮像範囲内に歩行者や車両等の移動物体が存在すると、撮像装置の動きによる動きベクトルだけでなく、移動物体による動きベクトルも算出されてしまう。そして、移動物体による動きベクトルに基づいて画像防振処理を行うと、撮像装置の動きに伴う画像振れを良好に低減することができない。
【０００４】
このため、特許文献１にて開示された電子防振方法では、フレーム画像中に複数の検出領域を設け、各検出領域について動きベクトルを算出する。次に、算出された動きベクトルの方向の差と大きさの差がいずれも小さいもの同士を１つのグループ（クラスタ）にまとめる、すなわち動きベクトルのクラスタリング処理を行う。これにより、撮像装置の動きによる動きベクトルのクラスタと、移動物体による動きベクトルのクラスタとを分離する。そして、撮像装置の動きによる動きベクトルのクラスタに含まれる動きベクトルに基づいて、画像防振処理を行う。
【特許文献１】特開平４−１８０３７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された電子防振方法では、移動物体が撮影範囲内に進入する以前に存在しているクラスタを撮像装置の動きによる動きベクトルのクラスタ（以下、防振対象の動きベクトルを含むクラスタという意味で、防振対象クラスタという）として選択する。この電子防振方法によれば、撮像装置の動き量が手振れ等の小さい量である場合には、順次生成されるフレーム画像における防振対象クラスタの位置の変動が少ないため、防振対象クラスタを見失うことなく良好な画像防振処理を継続することが可能である。
【０００６】
しかしながら、撮像装置の動き量が大きい場合やパンニング、チルティング等のカメラモーションによる意図的な大きな動きが撮像装置に加えられた場合には、順次生成されるフレーム画像における防振対象クラスタの位置が大きく変動する。このため、防振対象クラスタを見失って、良好な画像防振処理を継続することが困難になる可能性が高い。
【０００７】
本発明は、電子防振において画像中の移動物体の影響を除去可能な動きベクトルのクラスタリング処理を採用しつつ、防振対象クラスタを見失うことなく良好な画像防振処理を継続することができるようにした画像処理装置、撮像装置及び画像処理方法を提供する。
【課題を解決するための手段】
【０００８】
本発明の一側面としての画像処理装置は、撮像装置により順次生成される複数の画像のそれぞれにおいて特徴点を抽出する抽出手段と、各画像に対して、複数の特徴点での動きベクトルを算出する算出手段と、複数の特徴点で算出された複数の動きベクトルに対してクラスタリング処理を行うクラスタリング手段と、クラスタリング処理により得られた複数のクラスタの中から、撮像装置の動きを示す動きベクトルを含む特定クラスタを判定する判定手段と、複数の画像のうち第１の画像に対する特定クラスタに関する情報を用いた推定方法を使用して、第１の画像よりも後に生成された第２の画像に対する特定クラスタを検出する推定検出手段と、第２の画像に対する特定クラスタに含まれる動きベクトルに基づいて、該第２の画像に対する画像防振処理を行う処理手段とを有することを特徴とする。
【０００９】
なお、上記画像処理装置と、被写体を撮像して複数の画像を順次生成する撮像手段とを有する撮像装置も、本発明の他の一側面を構成する。
【００１０】
また、本発明のさらに他の一側面としての画像処理方法は、撮像装置により順次生成される複数の画像のそれぞれにおいて特徴点を抽出するステップと、各画像に対して、複数の特徴点での動きベクトルを算出するステップと、複数の特徴点で算出された複数の動きベクトルに対してクラスタリング処理を行うステップと、クラスタリング処理により得られた複数のクラスタの中から、撮像装置の動きを示す動きベクトルを含む特定クラスタを判定するステップと、複数の画像のうち第１の画像に対する特定クラスタに関する情報を用いた推定方法を使用して、第１の画像よりも後に生成された第２の画像に対する特定クラスタを検出するステップと、第２の画像に対する特定クラスタに含まれる動きベクトルに基づいて、該第２の画像に対する画像防振処理を行うステップとを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、既に得られた防振対象クラスタである特定クラスタに関する情報を用いて、その後の防振対象クラスタを推定しながら検出するので、防振対象クラスタの位置変動が大きくても防振対象クラスタを見失う可能性を低くすることができる。このため、撮像装置の動き量が大きい場合でも、良好な画像防振処理を継続することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の好ましい実施例について図面を参照しながら説明する。
【実施例１】
【００１３】
図１には、本発明の実施例１である画像処理装置を含むビデオカメラ、デジタルスチルカメラ等の撮像装置の構成を示す。
【００１４】
図１において、１０１は被写体像を形成する光学系、１０２は光学系１０１により形成された被写体像を光電変換するＣＣＤセンサやＣＭＯＳセンサ等の撮像素子である。
【００１５】
１０３は撮像素子１０２から出力される電気信号から映像信号を生成する画像形成回路である。映像信号は、所定の周期で順次生成される複数のフレーム画像に相当する。
【００１６】
画像形成回路１０３は、Ａ／Ｄ変換回路１０４、オートゲイン制御回路（ＡＧＣ）１０５、オートホワイトバランス回路（ＡＷＢ）１０６を含み、デジタル映像信号を生成する。Ａ／Ｄ変換回路１０４は、アナログ信号をデジタル信号に変換する。ＡＧＣ１０５は、デジタル信号のレベル補正を行う。また、ＡＷＢ１０６は、映像の白レベル補正を行う。
【００１７】
光学系１０１、撮像素子１０２及び画像形成回路１０３によって、撮像系（撮像手段）が構成される。
【００１８】
１０７は、画像形成回路１０３により生成された映像信号の１フレーム画像もしくは２以上のフレーム画像を一時的に記憶保持するフレームメモリである。１０８はフレームメモリ１０７へのフレーム画像の入出力を制御するメモリ制御回路である。
【００１９】
１０９は動きベクトル算出回路である。動きベクトル算出回路１０９は、撮像系により順次生成される各フレーム画像に対して（言い換えれば、当該フレーム画像とそれよりも前に生成されたフレーム画像との間で）、後述する特徴点ごとに動きベクトルを算出する。
【００２０】
動きベクトル算出回路１０９は、特徴点抽出回路（抽出手段）１１０と動きベクトル検出回路（算出手段）１１１とから構成される。特徴点抽出回路１１０は、各フレーム画像における特徴的な点である特徴点を複数検出（抽出）する。動きベクトル検出回路１１１は、各フレーム画像（各画像）に対して、特徴点抽出回路１１０により抽出された特徴点での動きベクトルを検出（算出）する。動きベクトルは、特徴点の移動方向に対応した方向と、該特徴点の移動量に対応する大きさとを持つ。
【００２１】
１１２は動きベクトル算出回路１０９でフレーム画像ごとに複数の特徴点に対して得られた複数の動きベクトルのクラスタリング処理を行うクラスタリング回路（クラスタリング手段）である。ここにいう「クラスタリング処理」は、複数の動きベクトルのうち、同じような方向と大きさ（例えば、差が所定値以下の方向や大きさ）を持つ１又は２以上の動きベクトルを１つのグループとするように、グループ分けを行うことに相当する。１つのグループを以下の説明では、クラスタと称する。
【００２２】
１１３は判定手段としてのクラスタ判定回路であり、クラスタリング回路１１２で得られた複数のクラスタの中から、後述する振れ補正対象（防振対象）となる動きを示す動きベクトルを含む特定クラスタを判定する。特定クラスタは、撮像装置の動きを示す動きベクトルを含むクラスタであり、本実施例では、後述するように、撮影範囲内の背景領域に対する（背景領域上の特徴点で算出される）動きベクトルである。
【００２３】
また、クラスタ判定回路１１３は、ある第１のフレーム画像（第１の画像）に対する特定クラスタに関する情報を用いた推定方法を使用して、該第１のフレーム画像よりも後に生成された第２のフレーム画像（第２の画像）に対する特定クラスタを検出する。すなわち、クラスタ判定回路１１３は、推定検出手段としても機能する。推定方法については後述する。なお、以下の説明において、特定クラスタを、振れ補正対象クラスタ（防振対象クラスタ）という。
【００２４】
１１４は補正量算出回路であり、クラスタ判定回路１１３にて上記推定方法を用いて第２のフレーム画像に対して検出された振れ補正対象クラスタに含まれる動きベクトルに基づいて、第２のフレーム画像に対する振れ補正量としての画像幾何変形量を算出する。
【００２５】
１１５は補正量算出回路１１４により算出された振れ補正量により、振れ補正（防振）のための画像幾何変換処理（振れ補正処理又は画像防振処理）を行う振れ補正回路である。補正量算出回路１１４及び振れ補正回路１１５により、処理手段が構成される。
【００２６】
なお、動きベクトル算出回路１０９、クラスタリング回路１１２、クラスタ判定回路１１３、補正量算出回路１１４及び振れ補正回路１１５により、画像処理装置が構成される。すなわち、本実施例の撮像装置は、上述した撮像系と、画像処理装置とを有する。
【００２７】
１１６は映像出力回路であり、振れ補正が行われた映像（フレーム画像）を不図示のディスプレイに表示したり、半導体メモリ、光ディスク、磁気テープ等の記録媒体に記録したりするための出力部を構成する。
【００２８】
１００はメインコントローラであり、撮像素子１０２、画像形成回路１０３、動きベクトル算出回路１０９、クラスタリング回路１１２、クラスタ判定回路１１３、補正量算出回路１１４、振れ補正回路１１５及び映像出力回路１１６の動作を制御する。メインコントローラ１００は、ＣＰＵ等により構成される。
【００２９】
以上のように構成された撮像装置の動作（画像処理方法）について、図２に示すフローチャートを用いて説明する。なお、ここで説明する動作は、メインコントローラ１００の不図示のメモリに格納されたコンピュータプログラムに従って実行される。このことは、以下の実施例でも同様である。
【００３０】
図２において、ステップＳ２０１では、光学系１０１によって形成された被写体像が撮像素子１０２によって光電変換される。撮像素子１０２は、被写体輝度に応じたアナログ信号を出力し、該アナログ信号は画像形成回路１０３に入力される。画像形成回路１０３では、Ａ／Ｄ変換回路１０４によってアナログ信号を、例えば１２ビットのデジタル信号に変換する。さらに、ＡＧＣ１０５およびＡＷＢ１０６によって信号レベル補正や白レベル補正が行われたデジタル映像信号は、フレームメモリ１０７に記録保持される。
【００３１】
本実施例の撮像装置では、所定の周期（フレームレート）で複数のフレーム画像が順次生成され、フレームメモリ１０７に記録保持されたフレーム画像は順次、動きベクトル算出回路１０９に入力される。また、フレームメモリ１０７によって記憶されるフレーム画像も順次更新される。以上の動作は、メモリ制御回路１０８によって制御される。なお、本実施例では、動画像（映像）を構成するフレーム画像について説明するが、フレーム画像を構成するフィールド画像を本発明にいう「画像」としてもよい。
【００３２】
ステップＳ２０２では、特徴点抽出回路１１０は、各フレーム画像中に存在する特徴点の抽出を行う。動きベクトルの検出は一般に、連続するフレーム画像間における注目画素及び近傍領域のテクスチャ情報の相関関係に基づいて算出される。そのため、注目画素及びその近傍領域にテクスチャが無く、輝度値の変化がほとんど無い場合には、フレーム画像間での対応関係を見出すことができない。そこで、予め被写体の角や線分の端点等を画像中の特徴点として抽出しておき、それらを動きベクトル検出の注目画素とすることで、正確な動きベクトルを検出（算出）することができる。特徴点の抽出方法には、画像のエッジの交点を特徴点とする方法や色情報を用いる方法等があり、これらいずれの方法を用いてもよい。
【００３３】
ステップＳ２０３では、動きベクトル検出回路１１１は、各フレーム画像とそのフレーム画像よりも前に生成されたフレーム画像とを用いて、各フレーム画像に対する動きベクトルを検出（算出）する。動きベクトルの検出には、テンプレートマッチング法、勾配法等の一般的な検出方法のいずれを用いてもよい。
【００３４】
ステップＳ２０４では、クラスタリング回路１１２は、動きベクトル算出回路１０９より複数の特徴点で得られた複数の動きベクトルに対してクラスタリング処理を行う。以下に、本実施例におけるクラスタリング処理について説明する。ここでは、動きベクトルの大きさに着目してクラスタリング処理を行う。
【００３５】
図３には、動きベクトルの算出例を示す。ここでは、フレーム画像３０１上（つまりは撮像装置による撮像範囲内）に、静止物体としての背景の領域３０２と左方向に移動する移動物体３０３とが存在している状況において、右上方向への撮像装置の動きが生じたものとする。ここにいう撮像装置の動きには、手振れ等による撮像装置の小さな動きだけでなく、より大きな動きや、パンニング、チルティング等のカメラモーションによる意図的な動きも含む。
【００３６】
この状況において、動きベクトル算出回路１０９は、フレーム画像３０１内に存在する複数の特徴点を抽出し、それら特徴点における動きベクトルを算出する。背景領域３０２上の複数の特徴点の動きベクトルを３０４で示す。また、移動物体３０３上の複数の特徴点の動きベクトルを３０５で示す。
【００３７】
背景領域３０２上の動きベクトル３０４は、撮像装置の動きを反映しているのに対して、移動物体の動きベクトル３０５は、背景領域３０２上の動きベクトル３０４とは全く異なる方向と大きさを有する。
【００３８】
次に、図３に示した動きベクトル３０４，３０５をその大きさに応じてグラフ（クラスタマップ）上にプロットしたものを図４に示す。図４において、横軸は動きベクトルのｘ方向（水平方向）の大きさ、縦軸がｙ方向（垂直方向）の大きさを表す。ｘ方向及びｙ方向において、符号が正の場合には、動きベクトルが上方向及び右方向を向いていることを示す。また、符号が負の場合には、動きベクトルが下方向及び左方向を向いていることを示す。
【００３９】
動きベクトルの大きさに着目してプロットすることによって、同じような方向及び大きさを有する２以上の動きベクトル同士が同じような位置にプロットされることになり、その結果として、動きベクトルの集合、つまりはクラスタを形成する。
【００４０】
図４において、クラスタ４０１は、背景領域上の動きベクトル３０４により形成されたクラスタ（以下、背景クラスタともいう）であり、クラスタ４０２は、移動物体上の動きベクトル３０５により形成されたクラスタ（以下、移動物体クラスタともいう）である。
【００４１】
このように、動きベクトルに対してクラスタリング処理を行うことにより、背景領域上の動きベクトル、つまりは撮像装置の動きに対応した静止物体に対する動きベクトルと、移動物体に対応した動きベクトルとを分離することが可能となる。
【００４２】
以上のようなクラスタリング処理は、順次生成される各フレーム画像に対して算出される複数の動きベクトルに対して順次行われる。
【００４３】
なお、以下の説明において、フレーム画像を単にフレームとも称する。
【００４４】
また、本実施例では、クラスタリング処理を動きベクトルの大きさに着目して行う場合について説明するが、動きベクトルの空間的な微分値を用いてクラスタリング処理を行う等、の他のクラスタリング手法を用いてもよい。
【００４５】
ステップＳ２０５では、クラスタ判定回路１１３は、初期のフレーム画像（以下、初期フレームともいう）に対して得られた背景及び移動物体クラスタ４０１，４０２のうち、背景クラスタ４０１を振れ補正対象クラスタとして判定する。この判定方法については後述する。
【００４６】
また、クラスタ判定回路１１３は、初期フレーム以降のフレームで得られる複数のクラスタの中で振れ補正対象クラスタを後述する推定方法を用いて検出する。
【００４７】
以下、本実施例における振れ補正対象クラスタの推定方法について説明する。ここでは、クラスタリング処理の結果（図４）から得られる背景クラスタ４０１のクラスタマップ上での位置情報を、フレームごと（クラスタリング処理ごと）に累積する。これにより、背景クラスタ４０１の移動軌跡情報を得ることができる。背景クラスタ４０１の位置情報及び移動軌跡情報は、いずれも「クラスタに関する情報」である。
【００４８】
具体的には、背景クラスタ４０１の重心位置を該背景クラスタ４０１の位置とし、その位置をフレームごとに累積することによって描かれる軌跡を、背景クラスタ４０１の移動軌跡とする。背景クラスタ４０１の移動軌跡は、撮像装置の動きの軌跡（動きの方向及び大きさの変化）に対応する。
【００４９】
図５には、クラスタの位置情報の累積によって得られる移動軌跡の例を示す。図５において、撮像装置が手振れのような小さな動きを有する場合、背景クラスタ５０１の移動軌跡５０２は、該背景クラスタ５０１がおおむね同一位置に留まっていることを示すような移動軌跡となる。このため、初期フレームの段階で振れ補正対象クラスタとして背景クラスタ５０１を選択するのであれば、それ以降のフレームについてもほぼ同じ位置に存在するクラスタをそのまま振れ補正対象クラスタとして検出すればよい。
【００５０】
ただし、撮像装置が大きな動きを有する場合には、背景クラスタ５０３は、その移動軌跡５０４に示すように大きく移動する。このため、初期フレームにおいて背景クラスタ５０３を選択しただけでは、それ以降のフレームにおいて背景クラスタ５０３に対応するクラスタを正確に検出することがきわめて困難である。
【００５１】
そこで本実施例では、クラスタ判定回路１１３は、前述したように、ある第１のフレームに対する振れ補正対象クラスタの位置情報を用いた推定方法を使用して、第１のフレームより後に生成された第２のフレームに対する振れ補正対象クラスタを検出する。言い換えれば、過去の振れ補正対象クラスタの位置情報を用いて、現在の振れ補正対象クラスタの位置を推定し、推定された位置又はその周辺（近傍）に存在するクラスタを、振れ補正対象クラスタとして検出する。これにより、高精度かつ高速で（効率良く）振れ補正対象クラスタを検出することができる。
【００５２】
ここでは、線形的な推定方法を用いて振れ補正対象クラスタを検出する。図６には、振れ補正対象クラスタの移動軌跡の例を示す。図６において、現在から１フレーム前のクラスタ６０１の座標位置をＣ（ｔ−１）＝（ｘ（ｔ−１），ｙ（ｔ−１））とする。また、現在から２フレーム前のクラスタ６０２の座標位置をＣ（ｔ−２）＝（ｘ（ｔ−２），ｙ（ｔ−２））とする。このとき、クラスタの位置が線形的に変化するものとすると、現在のフレームにおけるクラスタ６０３の予測位置Ｃ（ｔ）＝（ｘ（ｔ），ｙ（ｔ））は以下に示す式により表される。
【００５３】
【数１】
2010118862.tif 000003
【００５４】
現在のフレーム（以下、現フレームともいう）におけるクラスタ６０３は、予測位置Ｃ（ｔ）又はその近傍に存在する可能性が高い。このため、予測位置Ｃ（ｔ）の周辺領域のみを探索することで、現フレームにおける振れ補正対象クラスタ６０３を検出することが可能である。
【００５５】
なお、このような線形的な推定方法ではなく、カルマンフィルタを用いる等、他の推定方法を用いてもよい。さらに、現在より前のフレーム（以下、前フレームともいう）でのクラスタの位置を中心として、予め定められた距離内において現フレームでの振れ補正対象クラスタを探索するといった推定方法を用いても、振れ補正対象クラスタを効率良く検出できる。
【００５６】
また、振れ補正対象クラスタの推定方法としては、振れ補正対象クラスタの位置情報以外のクラスタに関する情報を用いることも可能である。
【００５７】
例えば、撮像装置の動きが大きくても、連続する２フレーム画像間においては背景領域上の特徴点の数や分布にはほとんど変化がない場合がある。このため、クラスタリング処理の結果においても、連続する２フレーム画像間においては、背景クラスタが含む動きベクトルの数やその分布（つまりは背景クラスタの形状）がほぼ同じであるとみなすことができる場合がある。そこで、前フレームにおける振れ補正対象クラスタと同程度の数の動きベクトル及び同様な形状のうち少なくとも一方を有するクラスタを、現フレームでの振れ補正対象クラスタとして推定することも可能である。
【００５８】
クラスタに含まれる動きベクトルの数によって推定する際には、その推定方法（推定基準）として、例えば以下のようなものを採用できる。まず、前フレームでのクラスタと現フレームでのクラスタがそれぞれ含む動きベクトルの数の差を算出する。次に、該数の差が前フレームでのクラスタが含む動きベクトルの数の一定の割合（例えば、１割）以内に収まっていれば、現フレームでのクラスタが前フレームのクラスタに対応するクラスタであると推定できる。
【００５９】
また、クラスタの形状によって推定する際には、その推定方法として、例えば以下のようなものを採用できる。まず、前フレームでのクラスタと現フレームでのクラスタがそれぞれ有する大きさを、該クラスタの縦方向及び横方向の広がりとして検出し、該広がりの差を算出する。次に、該広がりの差が前フレームでのクラスタの広がりの一定の割合（例えば、１割）以内に収まっていれば、現フレームでのクラスタが前フレームのクラスタに対応するクラスタであると推定できる。
【００６０】
以上のように、過去フレーム（前フレーム）における振れ補正対象クラスタに関する情報を用いた推定方法を使用することで、撮像装置の動きが大きくても、現在フレーム（現フレーム）での振れ補正対象クラスタを高精度かつ高効率に検出することができる。また、このような方法を用いることにより、振れ補正対象クラスタと移動物体クラスタとが一旦重なり、その後再び離れるというような状況が発生しても、どちらが振れ補正対象クラスタであるかを正確に識別することも可能である。
【００６１】
なお、上述したクラスタの位置情報、クラスタに含まれる動きベクトルの数の情報及びクラスタの形状情報のようなクラスタに関する情報は、それぞれを単独で用いてもよいが、複数の情報を併用して現フレームでの振れ補正対象クラスタを推定してもよい。これにより、さらに高精度かつ高効率に振れ補正対象クラスタを検出することができる。
【００６２】
次に、初期フレームにおける背景クラスタ（振れ補正対象クラスタ）の判定方法について説明する。図３に示したようにフレーム画像３０１上に移動物体３０３が存在する場合には、図４に示すように複数のクラスタ４０１，４０２が得られる。このため、初期フレームにおいてクラスタ４０１，４０２のうちどれが背景クラスタであるかを判定する必要がある。撮像装置の動きを反映しているのは背景領域の動きであり、一般的には、フレーム画像において背景領域が占める割合は、移動物体が占める割合よりも大きい場合が多い。
【００６３】
このため、背景領域上で算出される動きベクトルの数は、他の領域で算出される動きベクトルの数よりも多くなる。したがって、背景領域上の動きベクトルを含むクラスタは、他の領域上の動きベクトルを含むクラスタよりも多い数の動きベクトルを含む。そこで、本実施例では、複数のクラスタのうち最も多くの数の動きベクトルを含むクラスタを、背景クラスタ、すなわち振れ補正対象クラスタと判定する。
【００６４】
最も多くの数の動きベクトルを含むクラスタを検出する方法の例として、粗密探索法について説明する。この方法では、まず画像を上下左右に４分割し、分割された４つの領域の中で最も多くの動きベクトル（プロット点）が存在している領域を選択する。次に、選択された領域をさらに４つの小領域に分割し、最も多い数のプロット点が存在している小領域を選択する。このように、領域分割と最も多い数のプロット点が存在している領域の選択とを繰り返すことにより、動きベクトルのプロット点が最も密に集まっている領域、つまりは最も多くの数の動きベクトルを含むクラスタの位置を絞り込むことが可能となる。
【００６５】
さらに、最も多くの数の動きベクトルを含むクラスタがどの程度の広がりを持っているかを検出するためには、絞り込んだ位置にあるプロット点の近傍の領域を探索し、その領域内に他のプロット点が存在するか否かを調べる。他のプロット点が見つかった場合には、その点も同一のクラスタに属すると判定する。同様にして、新しく見つかった上記他のプロット点の近傍領域でもさらに別のプロット点が存在するか否かを調べる。このように、プロット点の探索を繰り返し、クラスタ内のどのプロット点の近傍領域からも他のプロット点が見つからなくなった時点でのそれらプロット点の存在範囲が、そのクラスタの広がりとなる。
【００６６】
なお、最も多くの数の動きベクトルを含むクラスタ及びそのクラスタの広がりを検出する方法としては、粗密探索法以外の方法を用いてもよい。例えば、ｋ平均法によってクラスタを分離する方法を用いることもできる。
【００６７】
以上の推定方法により、現フレームにおいて振れ補正対象クラスタを良好に検出することできる。そして、検出された振れ補正対象クラスタに含まれる動きベクトルに基づいて、現フレームに対する良好な振れ補正処理を行うことが可能となる。
【００６８】
図２において、ステップＳ２０６では、補正量算出回路１１４及び振れ補正回路１１５は、ステップＳ２０５で検出された振れ補正対象クラスタに含まれる動きベクトルを用いて振れ補正処理を行う。本実施例では、振れ補正処理に用いるモデルとして、平面射影モデルを使用し、振れ補正量としての画像幾何変換量を算出する。
【００６９】
補正量算出回路１１４は、ステップＳ２０５で初期フレーム以降のフレーム画像（以下、後続フレーム画像という）に対して検出された振れ補正対象クラスタに含まれる動きベクトルに基づいて、後続フレーム画像間の画像幾何変形量を算出する。
【００７０】
ここで、フレーム画像上のある点ａ、
【００７１】
【数２】
2010118862.tif 000004
【００７２】
が、次のフレーム画像において点ａ′、
【００７３】
【数３】
2010118862.tif 000005
【００７４】
に移動したとすると、点ａと点ａ′の対応関係は、平面射影行列Ｈを用いることにより、
【００７５】
【数４】
2010118862.tif 000006
【００７６】
と表すことができる。
【００７７】
平面射影行列Ｈは、フレーム画像間の並進、回転、変倍、せん断及びあおりの変化量を示す行列式であり、以下の式により表すことができる。
【００７８】
【数５】
2010118862.tif 000007
【００７９】
また、点ａと点ａ′及び平面射影行列Ｈは、斉次座標を用いて表している。このことは以下の説明でも同様である。
【００８０】
平面射影行列Ｈの各要素は、ステップＳ２０５で推定された振れ補正対象クラスタに含まれる複数の動きベクトル、つまりはフレーム画像間における特徴点間の対応関係を用いて、最小二乗法等の統計的処理を適用することにより算出することができる。このとき、移動物体の動きを表すクラスタを予め除去した上で平面射影行列Ｈの各要素を算出することにより、移動物体の存在に影響されない良好なフレーム画像全体の画像幾何変形量を得ることを可能としている。
【００８１】
このようにして求められた平面射影行列Ｈは画像振れの量を表すので、画像振れを補正するためには、該画像振れを打ち消すための画像幾何変形量を表すように行列を変換する必要がある。つまり、平面射影行列Ｈの逆行列をＫとするとき、
【００８２】
【数６】
2010118862.tif 000008
【００８３】
となる逆行列Ｋを求めればよい。
【００８４】
これにより、画像振れが生じた後の特徴点ａ′を画像振れが生じる前の特徴点ａと同じ座標に戻すことが可能となる。本実施例では、この逆行列Ｋを振れ補正量と称する。
【００８５】
そして、振れ補正回路１１５は、振れ補正量Ｋを用いてフレーム画像上の全画素に対して画像幾何変換処理を行うことで、振れ補正を行う。
【００８６】
なお、本実施例では、画像振れの量を平面射影行列Ｈを使用して表しているが、画像振れの種類に応じて、ヘルマート行列やアフィン変換行列等といった他の行列を使用してもよい。
【００８７】
最後にステップＳ２０７では、振れ補正回路１１５は、振れ補正処理後のフレーム画像である振れ補正画像を映像出力回路１１６に出力する。
【００８８】
以上説明したように、本実施例では、フレーム画像から算出された動きベクトルに対してクラスタリング処理を行い、過去フレームに対する振れ補正対象クラスタに関する情報を用いた推定方法を使用して、現在フレームに対する振れ補正対象クラスタを検出する。そして、該検出された振れ補正対象クラスタに含まれる動きベクトルを用いて現在フレームの画像振れを補正する。これにより、撮像装置の動きが手振れ等よる動きより大きい場合でも、振れ補正対象クラスタを見失うことがなく、良好な振れ補正処理を継続することができる。
【実施例２】
【００８９】
図７には、本発明の実施例２である画像処置装置を含む撮像装置の構成を示す。図７において、図１に示した構成要素と共通する構成要素には、図１と同符号を付す。
【００９０】
本実施例では、クラスタリング処理を行うことにより得られた複数のクラスタにおいて、振れ補正対象クラスタを適宜切り替える。本実施例の撮像装置は、図１に示した構成要素に加えて、振れ補正対象クラスタを切り替えるクラスタ切替回路７０１を有する。クラスタ切替回路７０１は、クラスタ判定回路１１３とともに判定手段を構成する。
【００９１】
本実施例の撮像装置の動作（画像処理方法）について、図８に示すフローチャートを用いて説明する。ステップＳ８０１，Ｓ８０２，Ｓ８０３，Ｓ８０４及びＳ８０５はそれぞれ、図２に示したステップＳ２０１，Ｓ２０２，Ｓ２０３，Ｓ２０４及びＳ２０５と同様である。
【００９２】
ステップＳ８０５では、図２のステップＳ２０５と同様に、クラスタ判定回路１１３は、初期フレームにおけるクラスタリング処理により得られた複数のクラスタの中から、最も多くの数の動きベクトルを含むクラスタを振れ補正対象クラスタと判定する。ここでは、最も多くの数の動きベクトルはフレーム画像上の大部分の領域を占めている、つまりは支配的な物体（ここでは、背景）の動きを表していると考えられることを前提として、最も多くの数の動きベクトルを含むクラスタを振れ補正対象クラスタと判定する。
【００９３】
そして、過去のフレームにおける振れ補正対象クラスタに関する情報を用いて現フレームにおける振れ補正対象クラスタを推定することにより、撮像装置の動きが大きい場合でも、同一物体上の動きベクトルを含むクラスタを継続的に追跡することができる。
【００９４】
しかし、同一物体上の動きベクトルを含むクラスタを継続的に追跡することにより、かえって良好な振れ補正結果が得られない状況が存在する。
【００９５】
このような状況の例を図９に示す。図９には、フレーム画像（撮像範囲）内にその大部分の領域を占める大きさを有する背景以外の物体（以下、第１の物体という）が進入する状況を示す。また、図１０には、図９に示す状況での動きベクトルに対するクラスタリング結果を示す。
【００９６】
図９の上段の図に示すように、フレーム画像の右側から左側に向かって第１の物体９０１が進入し始めると、図１０に１００２で示す位置にクラスタが得られる。第１の物体９０１が進入を開始した直後においては、フレーム画像において第１の物体９０１が占める領域は小さく、第１の物体９０１に対応するクラスタ１００２が含む動きベクトルの数も少ない。このため、振れ補正対象クラスタとしては、背景クラスタ１００１が判定される。
【００９７】
また、図９の中段の図に示すように、第１の物体９０１がフレーム画像における大部分の領域を占める位置まで進入すると、第１の物体９０１に対応するクラスタ１００２が含む動きベクトルの数が、背景クラスタ１００１に含まれる動きベクトルの数よりも多くなる。
【００９８】
さらに、図９の下段の図に示すように、第１の物体９０１がフレーム画像の外に退出する場合には、第１の物体９０１に対応するクラスタ１００２もそれに併せて消滅する。
【００９９】
このように背景以外の第１の物体がフレーム画像中を通り過ぎるような状況では、実施例１にて説明したように背景クラスタを振れ補正対象クラスタとして推定し続けても、第１の物体の影響を受けることの少ない良好な振れ補正処理を行うことができる。
【０１００】
しかし、第１の物体９０１が図９の中段の図の位置に長く留まった場合は、背景クラスタを振れ補正対象クラスタとしたままでは、フレーム画像中の支配的な物体である第１の物体９０１に対する画像振れが補正されないことになる。この結果、不自然な振れ補正画像が得られる。
【０１０１】
そこで、本実施例では、フレーム画像の大部分の領域を占める背景以外の第１の物体に対応するクラスタ（他のクラスタ）が、所定フレーム数（所定画像数）又は所定時間を超えてフレーム画像中に留まった場合は、振れ補正対象クラスタを切り替える。すなわち、振れ補正対象クラスタを、背景クラスタから該第１の物体に対応するクラスタに切り替える。これにより、より自然な振れ補正画像を生成する。
【０１０２】
振れ補正対象クラスタを切り替えるか否かの判定方法としては、それぞれのクラスタに含まれる動きベクトルの数をフレームごとに比較する方法がある。フレームごとに行われるクラスタリング結果について、振れ補正対象クラスタが含む動きベクトルの数と、その他のクラスタが含む動きベクトルの数とを比較する。
【０１０３】
このとき、振れ補正対象クラスタを含む動きベクトルの数よりも多い数（つまりは最大の数）の動きベクトルを含む他のクラスタが新たに出現したとする。そして、その新たに出現したクラスタ（以下、新クラスタという）が、所定フレーム数又は所定時間を超えてフレーム画像中に存在し続けた場合には、振れ補正対象クラスタをそれまでのクラスタから新クラスタに切り替える。
【０１０４】
また、振れ補正対象クラスタを切り替えるか否かの他の判定方法として、フレーム画像中において各物体が占めている面積を比較する方法がある。具体的には、ステップＳ８０４において、フレーム画像中の複数の特徴点に対して算出された複数の動きベクトルからクラスタを形成する際に、各動きベクトルがどの位置の特徴点に対して算出されたものかを示す情報を付加しておく。これにより、各クラスタがフレーム画像中のどの領域の動きベクトルを含むかを知ることが可能となる。そして、各クラスタが含まれる領域の面積を比較すれば良い。本実施例においては、特徴点の位置情報から各クラスタが含まれる領域の面積を算出する方法として、領域分割法を用いる。
【０１０５】
まず、各特徴点を基準として、画像の色や明るさ、輪郭等の情報を利用して同一の領域とみなせる範囲を決定する。次に、同じクラスタに含まれる複数の動きベクトルに対応する複数の特徴点は互いに同じ領域内に存在するものとして、それら複数の特徴点がそれぞれ含まれる上記範囲を結合する。これにより、フレーム画像中における同じクラスタに含まれる動きベクトルが算出された領域を知ることが可能となり、その領域の面積を、該領域の画素数を算出する等の方法によって求める。このようにして面積が求められた複数の領域間で面積を比較することによって、どの領域がフレーム画像中においてどの程度の面積割合を占めているのかを知ることが可能となる。
【０１０６】
そして、フレーム画像中で最大の面積を占めている領域が、フレーム画像中で支配的な物体が存在する領域であると判定する。さらに、その支配物体に対する動きベクトルを含むクラスタ（以下、支配クラスタという）が所定フレーム数を超えても存在し続けている場合には、振れ補正対象クラスタを該支配クラスタに切り替える。言い換えれば、既に判定されている振れ補正対象クラスタに比べてフレーム画像中で大きい面積を占める領域の動きベクトルを含むクラスタが所定フレーム数を超えて存在したときは、該クラスタに振れ補正対象クラスタを切り替える。
【０１０７】
なお、振れ補正対象クラスタの切り替え判定方法は、上述した２つの方法に限られず、他の方法を用いてもよい。また、複数の切り替え方法を併用することも可能である。
【０１０８】
また、振れ補正対象クラスタの切り替え判定に必要となる所定フレーム数又は所定時間は、予め設定された固定値としてもよいし、ユーザがマニュアルで設定可能な可変値としてもよい。可変値とする場合は、フレーム画像中に進入してくる物体の移動速度について経験的に得られる値を設定すればよい。例えば、歩行者であれば２０から３０フレーム程度、自動車であれば５フレーム程度でフレーム画像上を通過するとすれば、それを超えるフレーム数が過ぎても当該物体に対応するクラスタが存在し続けたときに、振れ補正対象クラスタの切り替えを行えばよい。
【０１０９】
さらに、所定フレーム数又は所定時間を上述した方法以外の方法で設定してもよい。例えば、切り替え対象となるクラスタに含まれる動きベクトルが算出された領域（物体）の移動速度を算出し、該物体がフレーム画像内を通過するフレーム数（以下、推定通過フレーム数という）又は時間（以下、推定通過時間という）を推定する。
【０１１０】
動きベクトルを用いた速度の算出方法としては、クラスタの発生時の動きベクトルの値を速度とする方法や、クラスタの発生時から所定フレーム数における動きベクトルの平均値を速度とするという方法等、どのような方法を用いてもよい。
【０１１１】
推定通過フレーム数又は推定通過時間を超えても該クラスタがフレーム画像中に存在する場合には、該クラスタに含まれる動きベクトルが算出された領域（物体）がフレーム画像中に留まっていると判定し、該クラスタに振れ補正対象クラスタを切り替えてもよい。
【０１１２】
以上のように、フレーム画像中の支配的な物体の領域に対応するクラスタを判定し、振れ補正対象クラスタをそのクラスタに切り替えることにより、フレーム画像中に大きな面積を占める物体が進入して長時間留まった場合まで考慮した振れ補正処理を行える。これにより、より自然な振れ補正画像を生成することができる。
【０１１３】
また、振れ補正対象クラスタを切り替えるにあたって、上述した切り替え判定の条件を満たした時点ですぐに切り替えを行うと、切り替えた前後のフレーム画像間における振れ補正画像に不連続が生じることになる。
【０１１４】
このため、振れ補正量に重み付け平均化処理を施して、振れ補正対象クラスタを徐々に切り替える方法について説明する。
【０１１５】
振れ補正対象クラスタの切り替え先となるクラスタが発生した時点から所定の複数フレーム数又は所定時間において、切り替える前のクラスタに対する振れ補正量Ｋ１と切り替えた後のクラスタに対する振れ補正量Ｋ２という２つの振れ補正量を算出する。そして、以下に示す式を用いて切り替え前の振れ補正量Ｋ１から切り替え後の振れ補正量Ｋ２へと所定の複数フレーム（複数のステップ）にて徐々に切り替わっていくような振れ補正量Ｋ３を算出する。
【０１１６】
【数７】
2010118862.tif 000009
【０１１７】
ここで、α（ｔ）は重み付け係数である。また、ｔをフレーム番号とし、切り替え開始フレームにおける初期値を１として、ｔが上記所定の複数フレームに達した時点で０となるように減少させる。これにより、振れ補正量をＫ１からＫ２へと徐々に移行させることができる。
【０１１８】
重み付け係数α（ｔ）が０となり、振れ補正量Ｋ３がＫ２へと完全に切り替わった時点でＫ１の算出は終了となり、それ以降のフレームにおいてはＫ２をそのまま振れ補正量として使用すればよい。
【０１１９】
また、移行に必要な所定の複数フレーム数を設定する方法として、切り替え前のクラスタと切り替え先のクラスタの位置の差分から設定してもよい。切り替え前のクラスタの位置をｖ＝（ｘｖ，ｙｖ）とし、切り替え先のクラスタの位置をｗ＝（ｘｗ，ｙｗ）とした場合に、それぞれのｘ座標に注目し、ステップを例えば０．１とした場合には、以下の式によって所定の複数フレーム数が算出される。
【０１２０】
【数８】
2010118862.tif 000010
【０１２１】
なお、各クラスタのｙ座標に注目して所定の複数フレーム数を算出してもよい。また、ステップ数は、上記式により算出されるフレーム数が１未満にならない限りはどのような値を設定してもよいが、１に近いほど振れ補正画像の不連続さが目立つ。また、重み付け係数α（ｔ）の変化については、上記式により算出されるフレーム数において１から０まで変化するのであれば、線形的でも非線形的でも、どのように変化させてもよい。
【０１２２】
ここで、振れ補正対象となる動きを表す領域が数フレーム程度の速さで急速にフレーム画像中から退出した場合、つまり振れ補正対象クラスタが急速に消滅した場合を考える。このような場合に上記の方法により算出したフレーム数で切り替えを行うと、切り替えが完了するまでの間は、既にフレーム画像中に存在していない領域に対して振れ補正処理を行うこととなり、振れ補正画像が不自然なものとなる。
【０１２３】
そこで、振れ補正対象クラスタが数フレーム程度の速さで消滅した場合には、切り替えに要するフレーム数を、例えば５フレーム程度に削減して切り替えを行う。これにより、振れ補正対象クラスタを切り替えた際の画像の不連続を生じさせることなく、自然な振れ補正画像を生成することが可能となる。
【０１２４】
図８において、ステップＳ８０７及びＳ８０８はそれぞれ、図２に示したステップＳ２０６及びＳ２０７と同様である。
【０１２５】
以上説明したように、本実施例においては、フレーム画像中において支配的な物体（又は領域）に対応するクラスタを判定し、振れ補正対象クラスタの切り替えを行う。これにより、常にフレーム画像中で主被写体を含む領域に対する振れ補正処理を行うことが可能となり、より良好な振れ補正画像を生成することができる。
【実施例３】
【０１２６】
図１１には、本発明の実施例３である画像処理装置を含む撮像装置の構成を示す。本実施例では、クラスタ判定回路１１３にて推定された振れ補正対象クラスタの位置に該当するクラスタが存在しない場合において、振れ補正対象クラスタの推定に失敗したのか動きベクトルの算出に失敗したのかを判定し、その後に振れ補正処理を行う。
【０１２７】
図１１において、図１に示した構成要素と共通する構成要素には、図１と同符号を付す。本実施例の撮像装置は、図１に示した構成要素に加えて、クラスタ判定回路１１３にて推定された振れ補正対象クラスタの位置に該当するクラスタが存在しない（検出できない）場合のエラー処理を行うエラー判定回路１１０１を有する。エラー判定回路１１０１は、クラスタ判定回路１１３とともに、推定手段として機能する。
【０１２８】
以下、本実施例の撮像装置の動作（画像処理方法）について、図１２に示すフローチャートを用いて説明する。
【０１２９】
ステップＳ１２０１，Ｓ１２０２，Ｓ１２０３，Ｓ１２０４及びＳ１２０５はそれぞれ、図２に示したステップＳ２０１，Ｓ２０２，Ｓ２０３，Ｓ２０４及びＳ２０５と同様である。
【０１３０】
ステップＳ１２０６では、エラー判定回路１１０１は、クラスタ判定回路１１３にて推定された振れ補正対象クラスタの位置に該当するクラスタが存在しない場合でも、以降のフレームにおいて再び推定処理が有効に行われるようにエラー処理を行う。
【０１３１】
実施例１においては、現フレームにおける振れ補正対象クラスタの位置を過去のクラスタに関する情報を用いて推定することで、処理の高精度化及び高効率化を図っている。しかし、あるフレームにおいて、推定した位置に該当するクラスタが存在してない場合もあり得る。このような場合、フレーム画像の全体から振れ補正対象クラスタを判定し直さなければ、それ以降の全てのフレームについて振れ補正対象クラスタを見つけることができなくなる。したがって、このような場合は、推定した位置にクラスタが存在しない原因を把握して適切なエラー処理を行うことによって、それ以降のフレームにおいて再び振れ補正対象クラスタを適切に見つけられるようにする必要がある。
【０１３２】
そこで、ステップＳ１２０６では、ステップＳ１２０５で推定されたクラスタの位置に該当するクラスタが存在しない場合には、エラー判定回路１１０１は、さらにもう１フレーム後のフレーム画像における振れ補正対象クラスタの位置を推定する。
【０１３３】
例えば、図１３において、現フレームから１フレーム前でのクラスタ１３０１と２フレーム前でのクラスタ１３０２の位置から、現フレームでのクラスタ１３０５の位置が推定されたとする。このとき、現フレームにおける動きベクトルの算出処理にエラーが発生し、１３０３で示す位置に該エラー算出された動きベクトルを含むクラスタが移動した場合、推定されたクラスタ１３０５の周囲を探索してもクラスタ１３０３を見つけることはできない。
【０１３４】
しかし、クラスタ１３０３の位置がフラッシュによる白飛びやノイズ等によるシステムエラーといった瞬間的な動きベクトル算出エラーによるものであれば、次のフレームにおいては、推定されたクラスタ１３０５の近傍位置にクラスタ１３０４が形成される。このため、該クラスタ１３０４を見つけることができ、クラスタ１３０４を振れ補正対象クラスタとすればよい。
【０１３５】
そこで、本実施例では、過去のフレームにおける振れ補正対象クラスタに関する情報に加えて、現フレームでの振れ補正対象クラスタ１３０５の推定位置情報を用いることで、現フレームよりさらに１フレーム後でのクラスタ１３０６の位置を推定する。
【０１３６】
そして、推定されたクラスタ１３０６の位置の近傍にクラスタ１３０４が存在している場合には、クラスタ１３０３は瞬間的なエラーにより発生したものであると判定して、現フレームにおける推定クラスタ１３０５の位置情報を振れ補正処理に使用する。これにより、突発的なエラーにより一時的に振れ補正対象クラスタを見失った場合でも、良好な振れ補正処理を続けることができる。
【０１３７】
一方、図１４に示すように、過去のクラスタ１４０１，１４０２を用いて現フレームにおけるクラスタ１４０５の位置を推定し、さらにもう１フレーム後のクラスタ１４０６の位置を推定しても、その近傍に該当するクラスタが存在しないという場合がある。これは、実際のクラスタが、推定処理により描いたクラスタの移動軌跡とは全く異なる軌跡で移動して１４０３や１４０４で示す位置に移動しているような、クラスタの位置の推定処理に誤りがある場合である。
【０１３８】
推定処理に誤りがあると判定された場合の対応としては、過去のクラスタに関する情報を破棄して新たに推定処理をやり直す方法や、クラスタが見つからなくなる直前のフレームにおけるクラスタの推定位置の周辺を探索してクラスタを見つけ直す等の方法がある。このように、推定処理の誤りによって実際のクラスタの移動軌跡とは全く異なる移動軌跡を推定した場合でも、実施例１で説明した推定方法とは異なる推定方法を採用することで、良好な振れ補正処理を続けることができる。
【０１３９】
上述した例は、エラー判定回路１１０１の動作例として、フラッシュやシステムエラー等による瞬間的なエラーが発生した場合について説明したものであり、１フレーム後までクラスタの推定をすることでエラーの補正処理を行う。しかし、その他のエラーとして、振れ補正対象の領域が影に覆われたり、動きベクトルの検出可能範囲を超える動きが撮像装置に生じたりした場合等には、エラーの発生期間が数フレームから十数フレームとなる。このような場合を含む種々のエラーに対応するためには、クラスタを推定するフレーム数を、例えば十数フレームと予め設定しておき、それまでの間に振れ補正対象クラスタを再び見つけられるかどうかを判定する。再び振れ補正対象クラスタを見つけられたのであれば、見つけられていなかったフレームの間は何らかのエラーが発生していたものとして、見つけられた振れ補正対象クラスタに含まれる動きベクトルを振れ補正量の算出に使用すればよい。
【０１４０】
これに対して、十数フレームの最後まで振れ補正対象クラスタが見つけられなかった場合には、推定処理に誤りが生じたと判定して、振れ補正対象クラスタが見つけられなくなった直前のフレームから推定処理をやり直す等の対応を採る。これにより、どのようなエラーが発生した場合においても、良好な振れ補正処理を行うことが可能となる。
【０１４１】
図１２において、ステップＳ１２０７及びＳ１２０８はそれぞれ、図２に示したステップＳ２０６及びＳ２０７と同様である。
【０１４２】
このように、本実施例では、現フレームに対して推定された振れ補正対象クラスタに相当するクラスタが実際に検出できなかった場合は、現フレームより後のフレームに対して、同じ推定方法又は他の推定方法を用いて、補正対象クラスタの検出を続行する。これにより、各種のエラーによって現フレームにおける推定位置に振れ補正対象クラスタを見つけられなかった場合でも、その後のフレームにおいて振れ補正対象クラスタを見つけることが可能となり、より良好な振れ補正処理を行うことができる。
【実施例４】
【０１４３】
上記各実施例では、撮像装置に画像処理装置を内蔵した場合について説明したが、本発明はこれに限らない。
【０１４４】
例えば図１５に示すように、撮像装置１４０１で順次生成した画像をパーソナルコンピュータ１４０２に送信する。送信方法は、ケーブル方式、無線方式のいずれでもよく、インターネットやＬＡＮを介して送信してもよい。
【０１４５】
そして、パーソナルコンピュータ１４０２において、図２，８及び１２のフローチャートに示した処理を行ってもよい。
【０１４６】
この場合、パーソナルコンピュータが本発明にいう画像処理装置として機能する。
【０１４７】
また、この場合において、振れ量（動きベクトル）の検出は、パーソナルコンピュータによって行ってもよいし、撮像装置に搭載された動きベクトルの検出回路からの出力をパーソナルコンピュータに取り込むようにしてもよい。
【０１４８】
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。
【図面の簡単な説明】
【０１４９】
【図１】本発明の実施例１である撮像装置の構成を示す図である。
【図２】実施例１における振れ補正処理のフローチャートである。
【図３】画像中に移動物体が存在する場合の動きベクトル算出処理を示す図である。
【図４】移動物体が存在する場合のクラスタリング処理を示す図である。
【図５】クラスタの移動軌跡を示す図である。
【図６】クラスタ位置の推定処理を示す図である。
【図７】本発明の実施例２である撮像装置の構成を示す図である。
【図８】実施例２における振れ補正処理のフローチャートである。
【図９】画像上を移動物体が通過する際の動きベクトル算出処理を示す図である。
【図１０】画像上を移動物体が通過する際のクラスタリング処理を示す図である。
【図１１】本発明の実施例３である撮像装置の構成を示す図である。
【図１２】実施例３における振れ補正処理のフローチャートである。
【図１３】動きベクトルの検出に失敗した場合のクラスタの移動軌跡を示す図である。
【図１４】クラスタ位置の推定処理に誤りがある場合の移動軌跡を示す図である。
【図１５】本発明の実施例４である画像処理装置を示す図である。
【符号の説明】
【０１５０】
１００  メインコントローラ
１０１  光学系
１０２  撮像素子
１０３  画像形成回路
１０４  Ａ／Ｄ変換回路
１０５  オートゲインコントロール回路
１０６  オートホワイトバランス回路
１０７  フレームメモリ
１０８  メモリ制御回路
１０９  動きベクトル算出回路
１１０  特徴点抽出回路
１１１  動きベクトル検出回路
１１２  クラスタリング回路
１１３  クラスタ判定回路
１１４  補正量算出回路
１１５  振れ補正回路
１１６  映像出力回路
３０１  フレーム画像
３０２  背景領域
３０３  移動物体
７０１  クラスタ切替回路
１１０１  エラー判定回路
【図１】
2010118862.tif 000011
【図２】
2010118862.tif 000012
【図３】
2010118862.tif 000013
【図４】
2010118862.tif 000014
【図５】
2010118862.tif 000015
【図６】
2010118862.tif 000016
【図７】
2010118862.tif 000017
【図８】
2010118862.tif 000018
【図９】
2010118862.tif 000019
【図１０】
2010118862.tif 000020
【図１１】
2010118862.tif 000021
【図１２】
2010118862.tif 000022
【図１３】
2010118862.tif 000023
【図１４】
2010118862.tif 000024
【図１５】
2010118862.tif 000025