(57)【特許請求の範囲】
【請求項１】
撮像装置により生成された動画像における複数のフレーム間での前記撮像装置の動きに伴う像振れを低減する像振れ低減処理を前記フレームごとに行う処理手段と、
前記撮像装置の動きの情報を取得する動き情報取得手段と、
前記動きの情報に基づいて、前記複数のフレームのうち対象フレームの、それよりも前に生成された前フレームに対する画像変化量を算出する画像変化量算出手段と、
前記前フレームが前記画像変化量の算出対象画像として特定条件を満たすか否かを判定する判定手段とを有し、
前記判定手段は、
前記前フレームが特定のテクスチャを有し、
前記対象フレームの前記前フレームに対する並進量が所定値よりも小さく、
前記前フレームと前記対象フレームとの間の動きベクトルの数の変化量が所定値よりも小さい場合に、前記前フレームが前記特定条件を満たすと判定し、
前記処理手段は、
前記判定手段により前記前フレームが前記特定条件を満たすと判定された場合は、前記対象フレームに対して、前記画像変化量算出手段により算出された前記画像変化量に基づいて算出した第１の画像補正量を用いて前記像振れ低減処理を行い、
前記判定手段により前記前フレームが前記特定条件を満たさないと判定された場合は、複数の前記対象フレームに対して、前記第１の画像補正量に向かって段階的に変化するように算出した第２の画像補正量を用いて前記像振れ低減処理を行うことを特徴とする画像処理装置。
【請求項２】
前記処理手段は、前記画像変化量算出手段により算出された前記画像変化量と前記判定手段において求められた前記並進量とが互いに対応するか否かを判定し、対応しないと判定した場合は、前記画像変化量算出手段により算出された前記画像変化量に代えて前記並進量に基づいて前記第１の画像補正量を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理手段は、前記動きの種類を判別し、判別した前記動きの種類に応じて前記第２の画像補正量を変更することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
撮像により動画像を生成する撮像系と、
請求項１から３のいずれか一項に記載の画像処理装置を有することを特徴とする撮像装置。
【請求項５】
撮像装置により生成された動画像における複数のフレーム間での前記撮像装置の動きに伴う像振れを低減する像振れ低減処理を前記フレームごとに行う処理ステップと、
前記撮像装置の動きの情報を取得する動き情報取得ステップと、
前記動きの情報に基づいて、前記複数のフレームのうち対象フレームの、それよりも前に生成された前フレームに対する画像変化量を算出する画像変化量算出ステップと、
前記前フレームが前記画像変化量の算出対象画像として特定条件を満たすか否かを判定する判定ステップとを有し、
前記判定ステップにおいて、
前記前フレームが特定のテクスチャを有し、
前記対象フレームの前記前フレームに対する並進量が所定値よりも小さく、
前記前フレームと前記対象フレームとの間の動きベクトルの数の変化量が所定値よりも小さい場合に、前記前フレームが前記特定条件を満たすと判定し、
前記処理ステップにおいて、
前記判定ステップにて前記前フレームが前記特定条件を満たすと判定された場合は、前記対象フレームに対して、前記画像変化量算出ステップにて算出された前記画像変化量に基づいて算出した第１の画像補正量を用いて前記像振れ低減処理を行い、
前記判定ステップにて前記前フレームが前記特定条件を満たさないと判定された場合は、複数の前記対象フレームに対して、前記第１の画像補正量に向かって段階的に変化するように算出した第２の画像補正量を用いて前記像振れ低減処理を行うことを特徴とする画像処理方法。
【請求項６】
コンピュータに、
撮像装置により生成された動画像における複数のフレーム間での前記撮像装置の動きに伴う像振れを低減する像振れ低減処理を前記フレームごとに行う処理ステップと、
前記撮像装置の動きの情報を取得する動き情報取得ステップと、
前記動きの情報に基づいて、前記複数のフレームのうち対象フレームの、それよりも前に生成された前フレームに対する画像変化量を算出する画像変化量算出ステップと、
前記前フレームが前記画像変化量の算出対象画像として特定条件を満たすか否かを判定する判定ステップとを含む処理を実行させ、
前記判定ステップは、前記コンピュータに、
前記前フレームが特定のテクスチャを有し、
前記対象フレームの前記前フレームに対する並進量が所定値よりも小さく、
前記前フレームと前記対象フレームとの間の動きベクトルの数の変化量が所定値よりも小さい場合に、前記前フレームが前記特定条件を満たすと判定させ、
前記処理ステップは、前記コンピュータに、
前記判定ステップにて前記前フレームが前記特定条件を満たすと判定された場合は、前記対象フレームに対して、前記画像変化量算出ステップにて算出された前記画像変化量に基づいて算出した第１の画像補正量を用いて前記像振れ低減処理を行わせ、
前記判定ステップにて前記前フレームが前記特定条件を満たさないと判定された場合は、複数の前記対象フレームに対して、前記第１の画像補正量に向かって段階的に変化するように算出した第２の画像補正量を用いて前記像振れ低減処理を行わせることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置により取得された動画像（映像）の像振れを低減する画像処理装置に関するものである。
【背景技術】
【０００２】
撮像装置には、いわゆる手振れのような小さな動きに起因する映像中の像振れを低減するための光学的又は電子的な像振れ低減処理を行うものが多い。また、例えば撮像装置を持ったユーザが歩きながら撮影を行うような場合に発生する手振れよりも大きな動きに起因する像振れを低減する必要もある。特許文献１には、映像中の現フレームと前フレーム間で算出した動きベクトルから現フレームの前フレームに対する画像変化量を算出し、これに基づいて現フレームに対して幾何変換等の画像処理を行うことで像振れを低減する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２５９０７６号公報
【特許文献２】特開２００９−１２４５９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１，２にて開示された像振れ低減処理において、画像変化量を算出する現フレームの画像によってはその画像変化量を正しく算出又は決定することができない場合がある。例えば、現フレームが望遠側での撮影により生成された画像であって、ピントが大きく外れた画像である場合や急なカメラワークによって像流れが生じた画像である場合である。そして、誤って算出した画像変形量を用いて像振れ低減処理を行うと、該処理後の画像が乱れ、不自然な映像が生成されてしまう。
【０００５】
本発明は、画像変化量を得るのに適さない画像がフレームとして含まれる場合においても、像振れが良好に低減された自然な映像が得られるようにした画像処理装置、撮像装置、画像処理方法および画像処理プログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の一側面としての画像処理装置は、撮像装置により生成された動画像における複数のフレーム間での撮像装置の動きに伴う像振れを低減する像振れ低減処理をフレームごとに行う処理手段と、撮像装置の動きの情報を取得する動き情報取得手段と、該動きの情報に基づいて、複数のフレームのうち対象フレームの、それよりも前に生成された前フレームに対する画像変化量を算出する画像変化量算出手段と、前フレームが画像変化量の算出対象画像として特定条件を満たすか否かを判定する判定手段とを有する。そして、判定手段は、前フレームが特定のテクスチャを有し、対象フレームの前フレームに対する並進量が所定値よりも小さく、前フレームと対象フレームとの間の動きベクトルの数の変化量が所定値よりも小さい場合に、前フレームが特定条件を満たすと判定し、処理手段は、判定手段により前フレームが特定条件を満たすと判定された場合は、対象フレームに対して、画像変化量算出手段により算出された画像変化量に基づいて算出した第１の画像補正量を用いて像振れ低減処理を行い、判定手段により前フレームが特定条件を満たさないと判定された場合は、複数の前記対象フレームに対して、第１の画像補正量に向かって段階的に変化するように算出した第２の画像補正量を用いて像振れ低減処理を行うことを特徴とする。
【０００７】
なお、撮像により動画像を生成する撮像系と、上記画像処理装置を有する撮像装置も、本発明の他の一側面を構成する。
【０００８】
また、本発明の他の一側面としての画像処理方法は、撮像装置により生成された動画像における複数のフレーム間での撮像装置の動きに伴う像振れを低減する像振れ低減処理をフレームごとに行う処理ステップと、撮像装置の動きの情報を取得する動き情報取得ステップと、該動きの情報に基づいて、複数のフレームのうち対象フレームの、それよりも前に生成された前フレームに対する画像変化量を算出する画像変化量算出ステップと、前フレームが画像変化量の算出対象画像として特定条件を満たすか否かを判定する判定ステップとを有する。そして、判定ステップにおいて、前フレームが特定のテクスチャを有し、対象フレームの前フレームに対する並進量が所定値よりも小さく、前フレームと対象フレームとの間の動きベクトルの数の変化量が所定値よりも小さい場合に、前フレームが特定条件を満たすと判定し、処理ステップにおいて、判定ステップにて前フレームが特定条件を満たすと判定された場合は、対象フレームに対して、画像変化量算出ステップにて算出された画像変化量に基づいて算出した第１の画像補正量を用いて像振れ低減処理を行い、判定ステップにて前フレームが特定条件を満たさないと判定された場合は、複数の対象フレームに対して、第１の画像補正量に向かって段階的に変化するように算出した第２の画像補正量を用いて像振れ低減処理を行うことを特徴とする。
【０００９】
また、本発明の他の一側面としての画像処理プログラムは、コンピュータに、撮像装置により生成された動画像における複数のフレーム間での撮像装置の動きに伴う像振れを低減する像振れ低減処理をフレームごとに行う処理ステップと、撮像装置の動きの情報を取得する動き情報取得ステップと、該動きの情報に基づいて、複数のフレームのうち対象フレームの、それよりも前に生成された前フレームに対する画像変化量を算出する画像変化量算出ステップと、前フレームが画像変化量の算出対象画像として特定条件を満たすか否かを判定する判定ステップとを含む処理を実行させる。そして、判定ステップは、コンピュータに、前フレームが特定のテクスチャを有し、対象フレームの前フレームに対する並進量が所定値よりも小さく、前フレームと対象フレームとの間の動きベクトルの数の変化量が所定値よりも小さい場合に、前フレームが特定条件を満たすと判定させ、処理ステップは、コンピュータに、判定ステップにて前フレームが特定条件を満たすと判定された場合は、対象フレームに対して、画像変化量算出ステップにて算出された画像変化量に基づいて算出した第１の画像補正量を用いて像振れ低減処理を行わせ、判定ステップにて前フレームが特定条件を満たさないと判定された場合は、複数の対象フレームに対して、第１の画像補正量に向かって段階的に変化するように算出した第２の画像補正量を用いて像振れ低減処理を行わせることを特徴とする。
【発明の効果】
【００１０】
本発明では、前フレームが特定条件を満たさない場合、つまりは対象フレームとの間で画像変化量を得るのに適さない画像である場合には、段階的に変化するように設定した画像補正量（第２の像振れ補正量）を用いて像振れ低減処理を行う。これにより、画像変化量を得るのに適さないフレームを含む映像に対しても、映像の自然さを損なわない良好な像振れ低減処理を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例１である撮像装置の構成を示すブロック図。
【図２】実施例１の撮像装置の動作を示すフローチャート。
【図３】実施例１の撮像装置における像振れ補正処理を示すフローチャート。
【図４】実施例１の撮像装置における動き検出処理を示すフローチャート。
【図５】実施例１の撮像装置における画像補正量推定処理を示すフローチャート。
【図６】輝度投影の概略を示す図。
【図７】輝度投影による並進検出を説明する図。
【図８】実施例１の撮像装置における画像補正量修正処理を説明する図。
【図９】本発明の実施例２である撮像装置の構成を示すブロック図。
【図１０】実施例２の撮像装置における動き検出処理を示すフローチャート。
【図１１】実施例２における上記動き検出処理を説明する図。
【図１２】画像からのエントロピー算出を説明する図。
【図１３】本発明の実施例３である画像処理装置の構成を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施例について図面を参照しながら説明する。
【実施例１】
【００１３】
図１には、本発明の実施例である画像処理装置を含むビデオカメラや動画撮影機能付きデジタルスチルカメラ等の撮像装置１の構成を示す。
【００１４】
図１において、１００は撮影レンズであり、撮像素子１０２上に被写体からの光を結像させる。１０１は絞りやシャッタ等を含む露光制御部材であり、撮影レンズ１００を通った光による撮像素子１０２の露光を制御する。撮像素子１０２は、被写体像を光電変換して電気信号を出力するＣＣＤセンサやＣＭＯＳセンサ等のイメージセンサである。
【００１５】
１０３は映像形成回路であり、撮像素子１０２からのアナログ出力信号をデジタル信号に変換し、さらに該デジタル信号に対してゲイン調整、オートホワイトバランス、画素補間処理、色変換処理等を行ってデジタル映像信号（動画像）を生成する。１０４は露光制御部材１０１の動作（絞り開口径および露光時間（フレームレート））を制御する露光制御部である。１０５は撮影レンズ１００のフォーカシングを制御するＡＦ制御部である。撮影レンズ１００、露光制御部材１０１、撮像素子１０２、映像形成回路１０３、露光制御部１０４およびＡＦ制御部１０５により、被写体を撮像して映像信号（以下、単に映像ともいう）を生成する撮像系が構成される。
【００１６】
１０６は撮像装置１全体の動作の制御を司るシステム制御回路である。１０７はシステム制御回路１０６において用いられる各種データやコンピュータプログラム等を格納したメモリである。１０８は各種調整値等の情報を格納した不揮発性メモリである。
【００１７】
１０９は画像処理装置としての像振れ補正回路であり、撮像装置１の動きに起因して映像における連続する複数のフレーム間に現れる像振れを補正（低減）する像振れ補正処理（像振れ低減処理）を、フレームごとに行う。
【００１８】
１１０は映像形成回路１０３で生成された映像の複数フレームを一時的に記憶する第１のフレームメモリである。１１１は像振れ補正回路１０９で像振れ補正処理を受けたフレームを一時的に記憶する第２のフレームメモリである。１１２は第１および第２のフレームメモリ１１０，１１１に対するフレームの入出力を制御するメモリ制御回路である。１１３は像振れ補正回路１０９から出力された映像を不図示の表示モニタに表示したり不図示の記録媒体（磁気テープ、光ディスク、半導体メモリ等）に記録したりする映像出力部である。
【００１９】
次に、像振れ補正回路１０９の構成について説明する。１０９１は撮像系により生成された映像のフレームごとに特徴点を抽出する特徴点抽出回路である。１０９２は像振れ補正処理の対象フレームである現フレームとこれよりも前のフレーム（以下、前フレームという）との間で、動き方向と動き量を示す動きベクトルを算出する動きベクトル算出回路である。動きベクトルを算出することによって、撮像装置１の動きを検出する（すなわち、動きの情報を取得する）ことができる。
【００２０】
１０９３は動きベクトル算出回路１０９２で算出された動きベクトルを用いて、撮像装置１の動きを推定する動き推定回路である。動き推定回路１０９３により推定された「動き」が、「動きの情報」に相当する。特徴点抽出回路１０９１、動きベクトル算出回路１０９２および動き推定回路１０９３により、動き情報取得手段が構成される。また、動き推定回路１０９３は、推定した動きに対応する画像変化量を算出する画像変化量算出手段としても機能する。
【００２１】
１０９４は映像判定回路（判定手段）である。映像判定回路１０９４は、映像形成回路１０３で生成された各フレーム（前フレーム）を解析し、前フレームが現フレームの画像変化量の算出対象画像として特定条件を満たすか否かの判定処理を行う。ここにいう特定条件とは、前フレームが現フレームの画像変化量を得るのに適した画像であることであり、言い換えれば現フレームの画像変化量を正しく算出又は決定することができる画像であることである。
【００２２】
特定条件を満たす場合は、例えば、前フレームが特定のテクスチャを有し、現フレームの前フレームに対する並進量が所定値より小さく、さらに前フレームと現フレームとの間の動きベクトルの数の変化量が所定値より小さい場合である。
【００２３】
１０９５は像振れ補正量算出回路である。像振れ補正量算出回路１０９５は、映像判定回路１０９４で前フレームが特定条件を満たすと判定された場合に、動き推定回路１０９３で算出された画像変化量から、前フレームと現フレームとの間の像振れを補正するための像振れ補正量（画像補正量）を算出する。
【００２４】
１０９６は揺れ補正量修正回路であり、振れ補正量算出回路１０９５にて算出された像振れ補正量を、映像判定回路１０９４での判定結果を参照して修正する。
【００２５】
１０９７は像振れ補正画像生成回路であり、像振れ補正量修正回路１０９６にて修正された像振れ補正量を用いて現フレームを補正することで、像振れを低減した映像を生成する。
【００２６】
１０９８は一時記憶用のメモリであり、１０９９は不揮発性メモリである。１１００は像振れ補正回路１０９内の各回路の動作を制御する像振れ補正制御回路であり、ＭＰＵ等のコンピュータにより構成されている。
【００２７】
像振れ補正量算出回路１０９５、像振れ補正量修正回路１０９６、像振れ補正画像生成回路１０９７および像振れ補正制御回路１１００により処理手段が構成される。
次に、映像判定回路１０９４の構成について説明する。１０９４１は、フレーム（画像）中に特定のテクスチャが存在するか否かを判定するテクスチャ解析回路である。
【００２８】
１０９４２は並進検出回路であり、現フレームの前フレームに対する並進量を検出し、該並進量が所定値よりも小さいか否かを検出する。１０９４３は有効動きベクトル数検出回路であり、動きベクトル算出回路１０９２で算出された信頼度の高い、すなわち有効な動きベクトルの数の時間的な変化量が所定値よりも小さいか否かを判定（検出）する。
【００２９】
次に、本実施例の撮像装置１の動作について、図２のフローチャートを用いて説明する。図２は、撮像装置１を用いて被写体を撮像して得られた映像中の像振れを低減して前述した映像出力部１１３にて表示および記録されるまでの処理を示す。この処理は、像振れ補正制御回路（以下、単に制御回路という）１１００によってコンピュータプログラムとしての画像処理プログラムに従って実行される。
【００３０】
ステップＳ２０１では、制御回路１１００は、撮像装置１に設けられた不図示の撮像開始スイッチが操作されたことを検出すると、撮像素子１０２からの出力信号のうち輝度成分に基づいて露光制御部１０４により制御される１フレームの露光量を設定する。また、映像のコントラスト情報に基づいてＡＦ制御部１０５にフォーカシング制御を行わせる。その後、制御回路１１００は、映像形成回路１０３に、撮像素子１０２からの出力信号（撮像信号）を読み込ませる。
【００３１】
ステップＳ２０２では、制御回路１１００は、画像形成回路１０３に、ステップＳ２０１において撮像素子１０２から読み込んだ撮像信号から映像を生成させ、第１のフレームメモリ１１０に格納する。
【００３２】
ステップＳ２０３では、制御回路１１００は、撮像装置１において、ユーザの選択操作によって、映像中の像振れを低減する像振れ補正モードが設定されているか否かを判定する。像振れ補正モードが設定されていない場合はステップＳ２０５に進み、制御回路１１００は、映像形成回路１０３からの映像であって像振れ補正処理を行わない映像を映像出力部１１３に出力する。一方、像振れ補正モードが設定されている場合は、ステップＳ２０４に進む。
【００３３】
ステップＳ２０４では、制御回路１１００は、像振れ補正回路１０９に、映像形成回路１０３からの映像に対して像振れ補正処理を行わせる。このステップＳ２０４での処理について、図３のフローチャートを用いて説明する。
【００３４】
ステップＳ３０１（動き情報取得ステップおよび画像変化量算出ステップ）では、制御回路１１００は、映像判定回路１０９４に判定処理を行わせる。また、特徴点抽出回路１０９１，動きベクトル算出回路１０９２および動き推定回路１０９３に撮像装置１の動きの推定処理を行わせる。このステップでの処理については、後に図４のフローチャートを用いて説明する。
【００３５】
次に、ステップＳ３０２では、制御回路１１００は、像振れ補正量算出回路１０９５に像振れ補正量を算出させる。また、このステップでは、後述する修正処理によって像振れ補正量を修正する。このステップでの処理については、後に図５のフローチャートを用いて説明する。
【００３６】
次に、ステップＳ３０３では、制御回路１１００は、像振れ補正画像生成回路１０９７に、ステップＳ３０２で算出された像振れ補正量を用いて、映像形成回路１０３からの映像に対する像振れ補正処理を行わせる。像振れ補正処理の詳しい内容については後述する。ステップＳ３０２〜Ｓ３０３が、処理ステップに相当する。
【００３７】
そして、像振れ補正処理を終了すると、制御回路１１００は、図２のステップＳ２０５に進み、ステップＳ２０４で像振れ補正処理がなされた映像を映像出力部１１３にて表示したり記録したりする。
【００３８】
図４のフローチャートを用いて、映像判定回路１０９４による判定処理と、特徴点抽出回路１０９１、動きベクトル算出回路１０９２および動き推定回路１０９３による撮像装置１の動きの推定処理とを含む動き検出処理について説明する。
【００３９】
まずステップＳ４０１では、制御回路１１００は、テクスチャ解析回路１０９４１に、現フレームの画像中のテクスチャ量を表す指標を算出させる。これは、後のステップＳ４０４で行われる特徴点抽出処理において有効な特徴点が抽出できない画像を事前に検出（判定）することを目的とする。本実施例においては、テクスチャ量を表す指標として、以下の文献１に記載されたエントロピーを用いる。
【００４０】
（文献１）高木幹雄、下田陽久  監修「新編  画像解析ハンドブック」１２６０〜１２６７頁、５．４「テクスチャ特徴の抽出」
ここでは、エントロピーについて簡単に説明する。時刻ｔの画像ＩｔのエントロピーＥｔは、式１を用いて求められる。
【００４１】
【数１】
0005610967.tif 000002
【００４２】
ただし、ｎ＝０〜２５５である。Ｐｔ（ｎ）は画像Ｉｔのヒストグラムで、全体の総和が１となるよう正規化されている。
【００４３】
このエントロピーは、ヒストグラムが一様分布している場合に最大値を示し、特定の値にピークを有するような分布の場合は最小値を示す。すなわち、あるエントロピーが一定範囲に入っていれば、画像中に適当な特徴点を持つ可能性が高い。
【００４４】
次に、ステップＳ４０２では、テクスチャ解析回路１０９４１は、ステップＳ４０１で算出したエントロピーＥｔが所定の範囲（上限値Ｅｈ、下限値Ｅｌの範囲）に入っているか否かを判定する。これにより、テクスチャ量の指標として適正か否か、つまりは特定のテクスチャが存在するか否かを判定する。
【００４５】
以上のステップによって後の特徴点抽出処理にて有効な特徴点が抽出できない画像を事前に検出することで、当該画像に対して不適切な像振れ補正処理がなされ、最終的に出力される振れ補正処理後の映像が不自然になる（乱れる）ことを防止することができる。
【００４６】
エントロピーを用いた特徴点の有無の判定例を、図１２を用いて説明する。図１２の（ａ），（ｂ），（ｃ）はそれぞれ、４×４画素の１６画素を有し、各画素値が０〜３までの４階調のうちいずれかである画像を表している。（ａ）はエッジがある画像を、（ｂ）は孤立的に１点のみが存在する画像を、（ｃ）は全体的に画素値がランダムである画像をそれぞれ表している。
【００４７】
図１２の（ａ）〜（ｃ）に示すそれぞれの画像のヒストグラム（画素値とその頻度）は、図１２の（ｄ）〜（ｆ）のようになる。画像中にほとんど何も存在しない画像（ｂ）のヒストグラムは（ｅ）のように局所的な分布を示し、ノイズのような画像（ｃ）のヒストグラムは（ｆ）のように一様な分布を示す。各ヒストグラムを、画素値の総和が１になるよう正規化して、式１に従ってエントロピーＥｔを算出すると、
（ａ）の画像のエントロピー…１．７５
（ｂ）の画像のエントロピー…０．３４
（ｃ）の画像のエントロピー…２
となる。ただし、各画像は４階調の画像であるので、式１のｎは０〜３としてエントロピーＥｔを算出した。
【００４８】
この算出結果から、適切な上限値と下限値を設けた範囲にエントロピーが入っていることを確認することで、画像中に特徴的な領域、つまりは有効な特徴点が存在するか否かを判定することが可能となる。
【００４９】
なお、ここではテクスチャ量の指標としてエントロピーを用いた場合について説明したが、テクスチャ量の指標として、上記文献１に記載された様々な指標を用いてもよい。また、画像Ｉｔがカラー（ＲＧＢ）画像である場合は、これを輝度画像に変換してエントロピーを算出してもよいし、Ｇ成分等の単色成分においてエントロピーを算出してもよい。
【００５０】
また、ヒストグラムは画像Ｉｔの全体の強度に依存するため、２次微分画像等、画像全体の強度に影響されないように処理した結果を用いてもよい。また、画像Ｉｔは画像全体の構造を示せばよいので、縮小した画像にしてもよい。
【００５１】
このようにすることで、画像の輝度成分に依存せず、かつ高速にエントロピーを算出することができる。
【００５２】
ステップＳ４０２において特定のテクスチャが存在しないと判定された場合は、制御回路１１００は、ステップＳ４０３に進み、動き推定実施フラグをＯＦＦに設定する。また、特定のテクスチャが存在すると判定された場合は、制御回路１１００は、ステップＳ４０４に進む。
【００５３】
ステップＳ４０４では、制御回路１１００は、特徴点抽出回路１０９１に、第１のフレームメモリ１１０に格納された前フレームの特徴点を抽出させる。特徴点は、画像中の線分や線同士の交点等の特徴的な部分であり、Ｈａｒｒｉｓオペレータ等の画像処理手法を用いて抽出することができる。
【００５４】
次に、ステップＳ４０５では、制御回路１１００は、並進検出回路１０９４２に、前フレームと現フレーム間での画像の並進量を検出（算出）させる。この処理は、後の動きベクトル検出処理で行われるテンプレートマッチングにおけるテンプレートの探索範囲よりも大きい動きがあるか否かを検出することを目的とする。
【００５５】
このような探索範囲よりも大きい動きは、望遠側での高速なパンニングや撮影を停止し忘れたまま撮影を続けたような場合に多く見られる。このような大きな動きがあるフレーム間で動きベクトル検出処理を行っても、正しい動きベクトルを算出することはできない。探索範囲を大きく設定することで大きな動きがある場合でも動きベクトルを正しく算出することは可能であるが、動きベクトル検出処理に要する時間が増加するため望ましくない。
【００５６】
そこで、本実施例においては、以下の文献２に記載された輝度投影相関を用いて画像間の並進量を算出する。
【００５７】
（文献２）長坂、宮武、「輝度投影相関を用いた実時間ビデオモザイク」電子情報通信学会論文誌Ｄ−ＩＩ、Ｖｏｌ．Ｊ８２−Ｄ−ＩＩ、Ｎｏ．１０、ｐｐ．１５７２−１５８０，１９９９
輝度投影相関を用いた並進量の検出について、図６および図７を用いて説明する。まず、図６に示すように、各画像に対して輝度投影を縦方向および横方向について行う。６０１，６０６はそれぞれ、時刻ｔ，ｔ＋１での画像を表している。時刻ｔでの画像において、６０２は第１の投影方向としての横方向（Ｘ）、６０３は第２の投影方向としての縦方向（Ｙ）を表している。輝度投影は、各投影方向に輝度を積算して輝度の１次元分布を作成することで行う。横方向の輝度投影ＰｒｏｊＸｔおよび縦方向の輝度投影ＰｒｏｊＹｔはそれぞれ、式２に従って行われる。
【００５８】
【数２】
0005610967.tif 000003
【００５９】
ただし、ｉ＝１〜ｗ，ｊ＝１〜ｈである。Ｉｔ（ｉ，ｊ）は時刻ｔでの画像Ｉｔ（幅ｗ、高さｈ）のうち位置（ｉ，ｊ）の輝度値である。図６には、時刻ｔでの画像のＰｒｏｊＸを６０４に、ＰｒｏｊＹを６０５に示す。
【００６０】
次に、輝度投影を用いた並進量の推定について、図７を用いて説明する。図７の（ａ）はＰｒｏｊＹを、（ｂ）はＰｒｏｊＸを示す。７０１，７０３は図６に示した時刻ｔでの画像６０１の輝度投影を、７０２，７０４は時刻ｔ＋１での画像６０６の輝度投影を示す。時刻ｔから時刻ｔ＋１において、撮像装置１が図６中の矢印６０６で示すように動いた場合、先に求めた時刻ｔおよび時刻ｔ＋１での画像の輝度投影を用いて、式３に従って並進量を算出する。
【００６１】
ｍｖ＿ｘ＝ｍａｘ（ｘｃｏｖ（ＰｒｏｊＹｔ，ＰｒｏｊＹｔ＋１））
ｍｖ＿ｙ＝ｍａｘ（ｘｃｏｖ（ＰｒｏｊＸｔ，ＰｒｏｊＸｔ＋１））    （式３）
ただし、ｍｖ＿ｘおよびｍｖ＿ｙはそれぞれ、横方向および縦方向の並進量（単位は画素）を表す。また、ｘｃｏｖ（Ａ，Ｂ）は、ＡとＢの分布の相互共分散（ＡとＢそれぞれについて平均値を除去した結果の相互相関）を示す。ｍａｘ（Ｃ）は、Ｃの中から最大値を有する位置を取得することを意味する。図７において、７０５はｍｖ＿ｘを示し、７０６はｍｖ＿ｙを示す。
【００６２】
以上のようにして時刻ｔおよび時刻ｔ＋１での画像の輝度投影をそれぞれ作成することで、これらの画像間の並進量を高速で算出することができる。
【００６３】
次に、ステップＳ４０６では、制御回路１１００は、並進検出回路１０９４２に、ステップＳ４０５で算出された並進量が所定値より小さいか否か、すなわち後のステップＳ４０７における動きベクトル算出時のテンプレートの探索範囲内か否かを判定する。並進量が探索範囲よりも大きいと判定された場合は、制御回路１１００は、動きベクトル算出を正しく行えないとしてステップＳ４０３に進み、動き推定実施フラグをＯＦＦに設定する。並進量が探索範囲内である場合は、ステップＳ４０７に進む。
【００６４】
ステップ４０７では、制御回路１１００は、動きベクトル算出回路１０９２に、ステップＳ４０４で抽出された特徴点での動きベクトルを算出させる。動きベクトル算出回路１０９２は、現フレームのうち前フレームの特徴点に対応する対応点を求める。対応点は、特徴点とその周辺の領域を含むテンプレートを用いたテンプレートマッチング等の手法によって求められる。そして、動きベクトル算出回路１０９２は、前フレームの特徴点の座標と現フレームの対応点の座標とから、前フレームと現フレーム間での動きベクトルを算出する。動きベクトル算出回路１０９２は、同様の処理を、各フレームにおける複数の特徴点に対して行う。
【００６５】
さらに、制御回路１１００は、算出された動きベクトルのうち信頼性が低い、すなわちテンプレートとの相関が所定値より小さい動きベクトルを無効な動きベクトルとして排除する。言い換えれば、制御回路１１００は、信頼性が高い、すなわちテンプレートとの相関が所定値以上である動きベクトルを有効な動きベクトルとして取り込む。
【００６６】
続いてステップＳ４０８では、制御回路１１００は、有効動きベクトル数検出回路１０９４３に、ステップＳ４０７で算出された現時刻での動きベクトルのうち有効な動きベクトルの数と前時刻にて得られた有効な動きベクトルの数との差である変化量を求める。そして、その変化量が所定値（閾値）よりも小さいか否かを判定する。この判定によって、画像中に大きく含まれていた移動物体がフレームアウトする等、動きベクトルを正しく算出できないような画像の変化を検出することが可能となる。変化量が所定値より小さい場合は、制御回路１１００は、ステップＳ４０３に進んで動き推定実施フラグをＯＦＦに設定する。変化量が所定値以上である場合は、制御回路１１００は、ステップＳ４０９に進む。
【００６７】
ステップＳ４０９では、制御回路１１００は、動き推定回路１０９３に、ステップＳ４０７で算出された有効な動きベクトルを用いて撮像装置１の動きを推定させる。本実施例では、撮像装置１の動きの推定処理に、フレーム間での（対象フレームの前フレームに対する）画像変化量を表す射影ホモグラフィを用いる。動き推定回路１０９３での射影ホモグラフィ（画像変化量）Ｈの算出は、特許文献１（特開２００８−２５９０７６号公報）に記載された方法を用いればよい。
【００６８】
次に、ステップＳ４１０では、制御回路１１００は、動き推定実施フラグをＯＮに設定する。そして、動き検出処理を終了し、ステップＳ３０２に進む。
【００６９】
図５のフローチャートを用いて、ステップＳ３０２で行われる像振れ補正量算出回路１０９５による像振れ補正量の算出処理について説明する。
【００７０】
ステップＳ５０１では、制御回路１１００は、像振れ補正量算出回路１０９５に、ステップＳ３０１（ステップＳ４０９）で算出された画像変化量としての射影ホモグラフィＨを用いて、像振れを低減するための防振パラメータである像振れ補正量を算出させる。
【００７１】
具体的には、像振れ補正量算出回路１０９５は、ステップＳ４１０で動き推定実施フラグがＯＮに設定された場合は、射影ホモグラフィＨを撮像装置１の動き（姿勢変化）に対応するように画像間の並進Ｔ、拡大縮小ｓ、回転Ｒ、あおりｖおよびせん断Ｋに分解する。分解方法については、特許文献１に開示された方法を用いればよい。
【００７２】
なお、Ｔ＝［Ｔｘ，Ｔｙ］Ｔ、Ｒ＝［ｃｏｓθ  −ｓｉｎθ；ｓｉｎθ  ｃｏｓθ］（２行２列）、ｖ＝［ｖｘ，ｖｙ］Ｔ、Ｋ＝［α  ｔａｎφ；  ０  １］（２行２列）である。
【００７３】
また、ステップＳ４０３にて動き推定実施フラグがＯＦＦに設定された場合は、画像変化量（並進Ｔ、拡大縮小ｓ、回転Ｒ、あおりｖおよびせん断Ｋ）は無しと設定する。
【００７４】
続いて、像振れ補正量算出回路１０９５は、複数の時刻で求めたＴ，ｓ，Ｒ，ｖを用いて平滑化処理を行う。なお、せん断については補正する必要がないため、平滑化は行わない。平滑化されたＴ，ｓ，Ｒ，ｖと平滑化前のこれらとの差分から、Ｔ，ｓ，Ｒ，ｖに関する像振れ補正量としてのΔＴ，Δｓ，ΔＲ，Δｖを算出する。せん断に関しては、Ｋをそのまま像振れ補正量とする。
【００７５】
次に、ステップＳ５０２において、制御回路１１００は、動き推定実施フラグがＯＮであるか否かを判定し、ＯＮである場合は、ステップＳ５０１で算出された像振れ補正量（第１の画像補正量）を採用して、像振れ補正量の算出処理を終了する。一方、動き推定実施フラグがＯＦＦの場合は、ステップＳ５０３に進む。
【００７６】
ステップＳ５０３では、制御回路１１００は、像振れ補正量修正回路１０９６に、像振れ補正量の修正処理を行わせる。ここでは、動き推定が行われなかったフレームから動き推定を行ったフレームに移る場合に、像振れ補正効果を段階的に変化（増加）させるように像振れ補正量を補間（修正）する。具体的には、補正量ΔＴ，Δｓ，ΔＲ，Δｖに段階的に変化（増加）する補正係数を乗じる。この処理によって補間設定された像振れ補正量が第２の画像補正量に相当する。この修正処理ついて、図８を用いて説明する。
【００７７】
図８の（ａ）は、動き推定実施フラグのＯＮ／ＯＦＦのフレームごとの変化をグラフとして示している。横軸がフレーム番号であり、縦軸が動き推定実施フラグのＯＮ／ＯＦＦである。図８の（ａ）は、番号ｎのフレームまでは動き推定を行っておらず、番号ｎ＋１のフレームから動き推定を行う場合を示している。
【００７８】
このような場合に、補正量ΔＴ，Δｓ，ΔＲ，Δｖに対して、図８（ｂ）に８０１で示すように時間的（段階的）に増加する補正係数を乗じることで、徐々に像振れ補正が行われるようする。具体的には、連続する複数の所定フレーム数ｍのフレームの動き推定実施フラグがＯＮであった後、さらに連続する複数の所定フレーム数ｍ′のフレーム（ここでは、これらの複数のフレームが対象フレームに相当する）に対する補正係数を段階的に増加させていく。補正係数を段階的に増加させることは、像振れ補正量を段階的に増加させることに相当する。これにより、ステップＳ３０１での動き検出処理における様々な判定によって断片的に動き推定が行われた場合でも、その時刻近傍の動き推定が行われていないフレームから映像を滑らかに変化させることが可能となる。
【００７９】
また、推定された動きの種類に応じて、乗じる補正係数の大きさ、つまりは像振れ補正量（第２の画像補正量）を変化させることも可能である。例えば、並進に関しては図８（ｂ）に示すように補正係数を変化させる一方、回転に関しては図８（ｃ）に８０４で示すように補正係数を変化させる。図８（ｃ）は、並進の開始時の補正係数８０１の増加に対して回転の開始時の補正係数８０４が緩やかに増加する場合を示している。これにより、並進補正の開始時における回転の違和感を低下させることができる。
【００８０】
次に、ステップＳ３０３で行われる像振れ補正画像の生成処理について説明する。像振れ補正画像生成回路１０９７は、ステップＳ３０２で算出された補正量ΔＴ，Δｓ，ΔＲ，Δｖ，Ｋを用いて、映像形成回路１０３からの映像に対して像振れ補正処理を行う。具体的には、ΔＴ，Δｓ，ΔＲ，Δｖ，Ｋから平面射影行列Ｈｆを復元し、これを現フレームに適用するよう式４に従って像振れが補正された画像（像振れ補正画像）を生成する。復元された平面射影行列Ｈｆを像振れ補正量ということもできる。
【００８１】
ａ′＝Ｈｆ×ａ        （式４）
ただし、ａ′は像振れ補正画像であり、ａは像振れ補正前の画像である。
【００８２】
以上説明したように、本実施例では、現フレームとの間で動きベクトルを正しく算出することができない、すなわち画像変化量を正しく算出又は決定できない前フレームを予め検出する。そして、段階的に変化するように設定した画像補正量を用いて像振れ補正処理を行う。これにより、画像変化量を得るのに適さないフレームを含む映像に対しても、映像の自然さを損なわない良好な像振れ補正処理を行うことができる。
【００８３】
なお、本実施例では、フレーム間で算出した動きベクトルから画像変化量を求め、これに基づいて像振れ補正処理を行う場合について説明した。しかし、特許文献２にて開示されているように、角速度センサや加速度センサ等の振れセンサの出力と動きベクトルとを併用して画像変化量を算出し、これに基づいて像振れ補正処理を行うようにしてもよい。
【００８４】
また、本実施例において、画像変化量を射影ホモグラフィＨとしたが、自由度の低いアフィン変換やヘルマート変換等を用いてもよい。
【実施例２】
【００８５】
次に、本発明の実施例２として、実施例１よりも像振れ補正処理の安定性を向上させることが可能な実施例について説明する。
【００８６】
図９には、本実施例の撮像装置２の構成を示す。図９において、実施例１にて図１に示した撮像装置１の構成と共通する構成要素には図１中の符号と同符号を付す。
【００８７】
９０１は像振れ補正回路であり、動き推定補正回路９０１１を有する。動き推定補正回路９０１１は、並進検出回路１０９４２による並進量の検出結果と動き推定回路１０９３による動きの推定結果（画像変化量）のうち並進成分とを比較し、推定された動きが被写体の動きによるものか撮像装置１の動きによるものかを判別する。そして、被写体の動きによるとの判別結果に応じて、動きの推定結果を補正する処理を行う。これ以外の撮像装置２の動作は、実施例１の撮像装置１の動作と同様である。
【００８８】
本実施例の撮像装置２にて行われる動き検出処理について、図１０を用いて説明する。この動き検出処理は、実施例１で図３に示したステップＳ３０１にて行われる処理である。図１０に示す処理のうち、ステップＳ４０１〜Ｓ４１０については実施例１（図４）にて説明したステップＳ４０１〜Ｓ４１０と同じである。本実施例では、ステップＳ４０９とステップＳ４１０の間に、ステップＳ１００１とステップＳ１００２が挿入されている。
【００８９】
ステップＳ４０９で動き推定回路１０９３に有効な動きベクトルを用いて撮像装置１の動きを推定させた制御回路１１００は、ステップＳ１００１において、動き推定補正回路９０１１に以下の処理を行わせる。動き推定補正回路９０１１は、ステップＳ４０５で並進検出回路１０９４２により検出された並進量とステップＳ４０９での動き推定処理で得られた並進成分とを比較する。そして、これらの間の差が所定値（閾値）以下か否か、言い換えればこれら互いに対応しているか否かを判定する。
【００９０】
具体的には、ステップＳ４０５で算出されたｍｖ＿ｘ，ｍｖ＿ｙと、ステップＳ４０９で算出された並進Ｔ＝［Ｔｘ，Ｔｙ］Ｔの各成分とを、式５のように比較する。
｜Ｔｘ−ｍｖ＿ｘ｜≦δｘ
｜Ｔｙ−ｍｖ＿ｙ｜≦δｙ    （式５）
ただし、δｘ，δｙは所定値（閾値）である。
【００９１】
式５の２つの条件を共に満足する場合は、ステップＳ４０５で並進検出回路１０９４２により検出された並進量とステップＳ４０９での動き推定処理で得られた並進成分とが互いに対応していると判定される。この場合は、制御回路１１００は、ステップＳ４０９での動き推定結果を採用して、ステップＳ４１０に進む。
【００９２】
一方、式５の２つの条件のうち少なくとも一方を満足しない場合は、並進検出回路１０９４２により検出された並進量と動き推定処理で得られた並進成分とが互いに対応していない、すなわちステップＳ４０９での動き推定結果が誤っているとみなす。この場合は、ステップＳ４０９での動き推定処理で得られた並進成分をステップＳ４０５で検出された並進量に置き換える。つまり、ステップＳ４０９での動き推定処理で得られた並進成分をステップＳ４０５で検出された並進量に補正する。これは、ステップＳ４０５で行われる並進量の検出処理の方が精度は劣るが１次元信号同士の処理であるため、処理としては安定していることによる。そして、制御回路１１００は、ステップＳ４１０にて動き推定実施フラグをＯＮとして、動き検出処理を終了する。
【００９３】
図１１を用いて、ステップＳ１００１とステップＳ１００２が有効に機能する例について説明する。図１１には、主被写体１１０１がフレームの中心に大きく写されている場合を示している。時刻ｔから時刻ｔ＋１に進む間に主被写体１１０１が回転運動をしており、かつ撮像装置２が並進運動をしているとする。
【００９４】
１１０２，１１０３はそれぞれ、主被写体１１０１の領域および背景領域の本来の動きベクトルを示す。しかし、時刻ｔと時刻ｔ＋１でのフレーム間で動きベクトルを検出すると、主被写体１１０１上にある各特徴点での動きベクトルは、撮像装置２の並進運動の動きベクトル１１０３との合成ベクトルとなる。
【００９５】
この例のように、主被写体がフレーム内の大きな領域を占める場合、主被写体上の特徴点の動きベクトルが多数算出される。そして、算出される多数の動きベクトルが主被写体の運動と撮像装置の運動との合成運動によって現れる動きベクトルとなるので、結果として誤った画像変化量が算出され、像振れ補正処理が適切に行われなくなる。
【００９６】
しかし、本実施例では、このような場合においても、ステップＳ４０５にて輝度投影を用いて検出される並進量が概ね撮像装置２の動きを表す。このため、ステップＳ４０５での並進量の検出結果とステップＳ４０９での動き推定結果の並進成分とを比較することで、画像変化量が正しく算出又は決定できないようなフレームを検出することが可能となる。
【００９７】
以上説明したように、本実施例では、フレーム中の大きな領域を占める主被写体が回転等の運動をしていることによって画像変化量を正しく算出又は決定できないフレームを検出して、動きの推定結果を補正する。これにより、運動している主被写体を撮影する場合でも、良好に像振れ補正処理がなされた映像を得ることができる。
【実施例３】
【００９８】
上記各実施例では、撮像装置に、像振れ補正処理を行う画像処理装置を内蔵した場合について説明したが、本発明はこれに限らない。
【００９９】
例えば図１３に示すように、撮像装置１４０１で撮像した画像をパーソナルコンピュータ１４０２に送信する。送信方法は、ケーブル方式、無線方式のいずれでもよく、インターネットやＬＡＮを介して送信してもよい。
【０１００】
そして、パーソナルコンピュータ１４０２において、実施例１，２にて説明した像振れ補正処理を行ってもよい。この場合、パーソナルコンピュータ１４０２が、図２〜５および図１０にて説明した処理を画像処理プログラムに従って実行する画像処理装置として機能する。
【０１０１】
また、この場合において、パーソナルコンピュータ１４０２は、撮像装置１４０１の動きの推定を取り込んだ映像を用いて行ってもよいし、撮像装置１４０１の振れセンサの出力が映像に記録されている場合に該出力を読みとって行ってもよい。
【０１０２】
さらに、上記各実施例で説明した像振れ補正処理を行う画像処理装置を、撮像により生成された映像を再生表示するモニタやプロジェクタ等の映像表示装置に搭載してもよい。
【０１０３】
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。
【産業上の利用可能性】
【０１０４】
良好に像振れが低減された映像を生成することが可能な画像処理装置および撮像装置を提供できる。
【符号の説明】
【０１０５】
１，２，１４０１  撮像装置
１０９  像振れ補正回路
１０９２  動きベクトル算出回路
１０９３  動き推定回路
１０９４  映像判定回路
１０９５  像振れ補正量算出回路
１０９６  像振れ補正量修正回路
１０９７  像振れ補正画像生成回路
１１００  像振れ補正制御回路
【図３】
0005610967.tif 000004
【図１１】
0005610967.tif 000005
【図１】
0005610967.tif 000006
【図２】
0005610967.tif 000007
【図４】
0005610967.tif 000008
【図５】
0005610967.tif 000009
【図６】
0005610967.tif 000010
【図７】
0005610967.tif 000011
【図８】
0005610967.tif 000012
【図９】
0005610967.tif 000013
【図１０】
0005610967.tif 000014
【図１２】
0005610967.tif 000015
【図１３】
0005610967.tif 000016