(57)【特許請求の範囲】
【請求項１】
複数の画像データを入力して、画像間の動きベクトルを演算する方法であって、
入力された複数の画像データについて、所定の解像度レベルＬ（Ｌ；自然数）までの多重解像度データを夫々演算して保存する多重解像度画像生成処理と、
基準画像の解像度レベルＬの入力動きベクトルを演算する入力動きベクトル算定処理と、
前記各処理によって求めた解像度Ｌの基準画像、比較画像、入力動きベクトルを用いて次の各ステップを実行する解像度別動きベクトル推定処理と、を含み、
（１）入力動きベクトルの各始点座標について、基準画像上の座標と、比較画像上の座標とを引数とするエネルギー関数を定義し、入力動きベクトルの所定範囲内で、前記エネルギー関数をもとに動きベクトルを仮算出するステップ、
（２）基準画像の各特徴点について、画像特徴量をもとに動きベクトルの信頼度を仮算出するステップ、
（３）基準画像の特徴点間の画像特徴量の差と前記仮算出した動きベクトルの差のうち少なくとも一つを用いて相関度を算出するステップ、
（４）前記仮算出した、動きベクトルと信頼度とを所定範囲にある動きベクトル、信頼度、相関度を用いて円滑化することによって、解像度Ｌの動きベクトルを本算出するステップ、
前記本算出した解像度Ｌの動きベクトルをさらに解像度の高い解像度Ｌ−１の入力動きベクトルとして用い、前記解像度別動きベクトル推定処理を順次解像度の高い画像データに対して繰り返すことによって、基準画像と比較画像間の動きベクトルを演算することを特徴とする動きベクトル演算方法。
【請求項２】
前記入力された画像のうち、基準画像の特徴点に関する指示情報を入力する処理を含み、
前記入力動きベクトル算定処理は、前記特徴点に関する入力動きベクトルを演算することを特徴とする請求項１記載の動きベクトル演算方法。
【請求項３】
前記入力された画像のうち、基準画像の複数の特徴点を分散的に抽出する画像特徴点群抽出処理を含み、
前記入力動きベクトル算定処理は、前記特徴点に関する入力動きベクトルを演算することを特徴とする請求項２に記載の動きベクトル演算方法。
【請求項４】
前記動きベクトルは、基準画像と比較画像の画像間の対応する特徴点、当該特徴点を結ぶ線、および、前記特徴点または前記線によって構成される領域の夫々の動きを表す動きベクトルメッシュデータであることを特徴とする請求項３に記載の動きベクトル演算方法。
【請求項５】
複数の画像データを入力して、画像間の動きベクトルを演算する方法であって、
基準画像の特徴点に関する指示情報を入力する処理と、入力された指示情報をもとに基準画像と比較画像の画像間の点、線、領域の対応関係を動きベクトルメッシュデータとして算出する処理と、
前記入力された指示情報の領域範囲外の領域について、基準画像の複数の特徴点を分散的に抽出し、抽出された特徴点をもとに基準画像と比較画像の画像間の点、線、領域の対応関係を動きベクトルメッシュデータとして算出する処理と、
前記画像特徴点に基づいて、前記動きベクトルメッシュデータの領域を一または二以上の三角形に分割し、これを所定の解像度レベルＬに補正して、入力動きベクトルメッシュデータを演算する処理と、
入力された複数の画像データについて、解像度レベルＬまでの多重解像度データを夫々演算して保存する処理と、
前記各処理によって求めた解像度Ｌの基準画像、比較画像、入力動きベクトルメッシュデータを用いて次の各ステップを実行する解像度別動きベクトル推定処理と、を含み、
（１）前記入力された指示情報の領域範囲外の領域について、入力動きベクトルメッシュデータの各始点座標について、基準画像上の座標と、比較画像上の座標とを引数とするエネルギー関数を定義し、入力動きベクトルメッシュデータの所定範囲内で、前記エネルギー関数をもとに動きベクトルメッシュデータを仮算出するステップ、
（２）基準画像の各特徴点について、画像特徴量をもとに動きベクトルの信頼度を仮算出するステップ、
（３）基準画像の特徴点間の画像特徴量の差と前記仮算出した動きベクトルの差のうち少なくとも一つを用いて相関度を算出するステップ、
（４）前記仮算出した、動きベクトルメッシュデータと信頼度とを所定範囲にある動きベクトルメッシュデータ、信頼度、相関度を用いて円滑化することによって、解像度Ｌの動きベクトルメッシュデータを本算出するステップ、
前記本算出した解像度Ｌの動きベクトルメッシュデータをさらに解像度の高い解像度Ｌ−１の入力動きベクトルメッシュデータとして用い、前記解像度別動きベクトル推定処理を順次解像度の高い画像データに対して繰り返すことによって、基準画像と比較画像間の動きベクトルメッシュデータを演算することを特徴とする動きベクトル演算方法。
【請求項６】
請求項１ないし５の何れか一に記載の動きベクトル演算方法を用いて手ぶれ補正を実行する手ぶれ補正装置であって、
複数の画像を入力して、基準画像と一または二以上の比較画像との動きベクトルを前記動きベクトル演算方法を用いて演算し、当該演算結果を出力する動きベクトル演算部と、
前記動きベクトル演算部によって求めた動きベクトルと比較画像を用いて、基準画像へ重ね合わせるための処理を実行して合成用画像を作成する合成用画像生成手段と、
前記合成用画像生成手段で作成した一または二以上の合成用画像を基準画像に重ね合わせて画像を合成する画像合成手段と、
前記画像合成手段によって合成した画像データを出力する画像データ出力手段と、
を備えたことを特徴とする手ぶれ補正装置。
【請求項７】
前記画像合成手段は、手ぶれの最大範囲を演算し、画像枠から当該最大範囲については、画像数による平均化処理を実行することを特徴とする請求項６記載の手ぶれ補正装置。
【請求項８】
請求項６に記載の手ぶれ補正装置を有する撮像装置であって、
被写体を連続して撮影して、複数の画像を生成し、前記手ぶれ装置へ入力する撮像部と、
前記手ぶれ装置の画像を保存する記憶部とを備えたことを特徴とする撮像装置。
【請求項９】
請求項７に記載の手ぶれ補正装置を有する撮像装置であって、
被写体を連続して撮影して、複数の画像を生成し、前記手ぶれ装置へ入力する撮像部と、
前記手ぶれ装置の画像を保存する記憶部とを備えたことを特徴とする撮像装置。
【請求項１０】
請求項１ないし５の何れか一に記載の動きベクトル演算方法を用いて動画を生成する動画生成装置であって、
複数の画像を入力し、前記動きベクトル演算方法を用いて、基準画像と一または二以上の比較画像との間の動きベクトルを算定する動きベクトル演算部と、
前記動きベクトル演算部で算定した動きベクトルを所定の値で分割することによって一または二以上の中間の動きベクトルを演算する動きベクトル編集手段と、
基準画像に対して、前記中間の動きベクトルを適用することによって中間画像を生成し、初期画像、中間画像、および、最終画像を時系列的に表示可能にする動画生成手段と、を備えたことを特徴とする動画生成装置。
【請求項１１】
複数の画像データを入力して、画像間の動きベクトルを演算するプログラムであって、
入力された複数の画像データについて、所定の解像度レベルＬ（Ｌ；自然数）までの多重解像度データを夫々演算して保存する処理と、
基準画像の解像度レベルＬの入力動きベクトルを演算する処理と、
前記各処理によって求めた解像度Ｌの基準画像、比較画像、入力動きベクトルを用いて次のステップを実行する解像度別動きベクトル推定処理と、を含み、
（１）入力動きベクトルの各始点座標について、基準画像上の座標と、比較画像上の座標とを引数とするエネルギー関数を定義し、入力動きベクトルの所定範囲内で、前記エネルギー関数をもとに動きベクトルを仮算出するステップ、
（２）基準画像の各特徴点について、画像特徴量をもとに動きベクトルの信頼度を仮算出するステップ、
（３）基準画像の特徴点間の画像特徴量の差と前記仮算出した動きベクトルの差のうち少なくとも一つを用いて相関度を算出するステップ、
（４）前記仮算出した、動きベクトルと信頼度とを所定範囲にある動きベクトル、信頼度、相関度を用いて円滑化することによって、解像度Ｌの動きベクトルを本算出するステップ、
前記本算出した解像度Ｌの動きベクトルをさらに解像度の高い解像度Ｌ−１の入力動きベクトルとして用い、前記解像度別動きベクトル推定処理を順次解像度の高い画像データに対して繰り返すことによって、基準画像と比較画像間の動きベクトルを演算することを特徴とするコンピュータ実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像間の動きベクトルを演算する技術に係り、特に、この技術を利用した手ぶれ補正装置、撮像装置、動画生成装置に関する。
【背景技術】
【０００２】
従来、動画フレーム間の動きベクトルを計算して、この動きベクトルと基準画像によって、動画データを作成することによって、膨大な動画データのデータ量の削減が行われている。【０００３】
一方、カメラ等の撮像装置で撮影した複数の静止画間の動きベクトルを計算して、手ぶれの補正をする技術が開示されている。（たとえば、特許文献１を参照）。【０００４】
より正確に動画を再現したり、撮影時の手ぶれを補正するためには、動きベクトルの信頼度を上げる必要がある。この動きベクトルの信頼度を上げるための技術として、特許文献４ないし６では、動きベクトル間の相関の高いものを信頼度が高いとして処理している。【０００５】
また、動きベクトルの正確性を維持しつつ、よりデータ量を削減するための技術として、画像の特徴点を把握し、その特徴点についての動きベクトルを計算したり、各特徴点を結んで多角形を構成して、比較すべき画像間の特徴点の移動によりその多角形がどのように変形したかを認識して他の点の移動位置を推定するというものがある。（たとえば、特許文献２，３を参照）。
【特許文献１】特開２００３−７８８０７号公報
【特許文献２】特開平１１−５０６５７６号公報
【特許文献３】特開平１０−３４１４４５号公報
【特許文献４】特開平９−７３５４０号公報
【特許文献５】特開平６−３１１５０２号公報
【特許文献６】特開平６−１５３１４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、動きベクトルを生成する機能を専用のハードウェアでなく、演算機能を有する計算機で実現しようとした場合、いかに計算機の負荷を軽減しつつ、精度の高い動きベクトルを算定するかということが問題となる。【０００７】
本発明は、上述のかかる事情に鑑み、データ量が少なく、計算機に負荷をかけないよう比較的単純な処理によって精度の高い動きベクトルの算定が可能であり、その技術を用いて写真撮影時の手ぶれを補正して、品質の高い写真を作成することのできる動きベクトル演算方法とこの方法を用いた手ぶれ補正装置、撮像装置、並びに動画生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、本発明に係わる動きベクトル演算方法は、複数の画像データを入力して、画像間の動きベクトルを演算する方法であって、入力された複数の画像データについて、予め定められた所定の解像度レベルＬ（Ｌ；自然数）までの多重解像度データを夫々演算して保存する処理と、基準画像の解像度レベルＬの入力動きベクトルを演算する処理と、前記各処理によって求めた解像度Ｌの基準画像、比較画像、入力動きベクトルを用いて次の各ステップを実行する解像度別動きベクトル推定処理と、を含み、
（１）入力動きベクトルの各始点座標について、基準画像上の座標と、比較画像上の座標とを引数とするエネルギー関数を定義し、入力動きベクトルの予め定められた所定範囲内で、前記エネルギー関数をもとに動きベクトルを仮算出するステップ、
（２）基準画像の各特徴点について、画像特徴量をもとに動きベクトルの信頼度を仮算出するステップ、
（３）基準画像の特徴点間の画像特徴量の差と前記仮算出した動きベクトルの差のうち少なくとも一つを用いて相関度を算出するステップ、
（４）前記仮算出した、動きベクトルと信頼度とを予め定められた所定範囲にある動きベクトル、信頼度、相関度を用いて円滑化することによって、解像度Ｌの動きベクトルを本算出するステップ、
前記本算出した解像度Ｌの動きベクトルをさらに解像度の高い解像度Ｌ−１の入力動きベクトルとして用い、前記解像度別動きベクトル推定処理を順次解像度の高い画像データに対して繰り返すことによって、基準画像と比較画像間の動きベクトルを演算することを特徴とする。【０００９】
本発明の主な特徴を要約すると、動きベクトルの算出において直ちに最終目的の動きベクトルを計算するのではなく、画像間の仮の動きベクトルを定めると同時に信頼度と相関度という２つのパラメータを求めるマッチング処理（上記のステップ（１）〜（３））と、領域すなわち周囲の動きベクトル情報によって、円滑化（スムージング）するというスムージング処理（上記のステップ（４））を実行し、さらに、これらの処理を解像度の違いによる異なる画像空間に対して、解像度の低い画像から解像度の高い画像に対して順次繰り返すことによって、精度の高いものにしていくというものである。【００１０】
ここで、信頼度は、その動きベクトルがどれくらい信頼できるか、あるいは所定の条件に合っているかの度合いを意味し、画像特徴量として、たとえば、画像の色空間によって検出されたエッジ（境界）の大きさあるいはコーナー角度など、画像に基づく値あるいは関数によって定められる。これらの情報は画像の特徴を表すものであるため、その特徴点（あるいは、線、領域）上の動きベクトルの信頼度が高くなるようにするのである。【００１１】
なお、画像特徴量としては、この他にマッチング処理段階でのエネルギーを用いた関数（例えば逆数等）、オクルージョンと推定される部分を０、それ以外を１とするような関数、あるいは、ユーザが指定した関数などがある。ここで、関数とは、演算式に限らずテーブルを参照して対応する数値を導出するようなものも含む趣旨である。【００１２】
信頼度は、上記のいずれかの画像特徴量あるいは任意の画像特徴量の組合せ（掛け合わせや足し合せなど）によって表すことができる。【００１３】
また、相関度とは、二つの点が同じ向きに動いていると推定される度合いであり、たとえば、周囲の動きベクトルとの差分によって定められる。ただし、相関度は、これに限らず、画像特徴量の差として、２点の基準画像上の色の差、ガボールフィルタ等を用いた画像の特徴の差に基づく関数、あるいは、ユーザが手動で指定した切れ目（輪郭）を用いた関数などによって表すことができ、さらに、仮の動きベクトルの値の差に基づく関数も含め、これらのいずれか一つ、または、複数の関数の掛け合わせ、もしくは、足し合わせによって表すこともできる。
信頼度算定の際に用いる画像特徴量と相関度算定の際に用いる画像特徴量は異なるものであってもよい。【００１４】
さらに、具体的に説明すると、入力画像の各要素は全ての座標 (x, y) についてＲＧＢの値を持つものであり、
各要素 : I(x, y) = (R(x, y), G(x, y), B(x, y))
で表される。【００１５】
解像度レベルＬの画像の各要素は全ての座標について複数の色情報を持つのものであり、たとえば、（La*b* 色空間、YUV 色空間、エッジ画像、コーナー強調画像）などの情報を有する。解像度レベル０が元の画像であり、解像度レベルＬが大きくなると、元画像よりぼけた画像になる。解像度レベルＬの各要素は、IL(x, y)で表される。【００１６】
また、動きベクトルの各要素は始点位置(x, y) と始点位置からの動きのベクトルv(x, y) からなる。始点位置情報を持つのは、全ての座標 (x, y) に対する動きベクトルを持っているわけではないためである。【００１７】
なお、動きベクトルには、格子状に並んだ始点座標に対する動きベクトルを持つ「グリッド型動きベクトル」と、特徴的な点のみの動きベクトルを持つ「点群型動きベクトル」がある。【００１８】
解像度Ｌに応じて動きベクトル情報を間引くことによって、解像度レベルＬの動きベクトルが求められる。たとえば、「グリッド型動きベクトル」の場合は、動き情報を２＾Ｌピクセルごとに各要素:((x, y), v(x, y))を持つ。ここで、「＾」はべき乗を表す。【００１９】
画像枚数がＭ枚（Ｍは２以上の整数）の動きベクトル推定処理としては、動きベクトルの各始点座標 (x, y) について、基準上の座標 (sx, sy) = (x, y) と比較画像Ｍ−１上の座標 (tx, ty) = ((x, y) + v'(x, y)) を引数とするエネルギー関数 E(sx, sy, tx, ty) を定義し、入力動きベクトル v(x, y) の周囲R 内で上記エネルギーEを最小にする動きベクトル v'(x, y) を検索する。エネルギー関数Ｅの例としては、始点と終点の色の差の２乗、あるいは、ブロック内の色の差の２乗の合計（ブロックマッチ）がある【００２０】
また、各動きベクトルv(x, y) の信頼度は、 r(x, y)で表され、たとえば、0 〜 1の間の値を持つようにする。【００２１】
動きベクトル v(x1, y1), v(x2, y2) 間の相関度は、a(x1, y1, x2, y2)で表され、 たとえば、0 〜 1の間の値を持つようにする。【００２２】
ここで、グリッド型動きベクトルの場合を例にとって、相関度と信頼度の概念について図１を用いて説明する。【００２３】
図１において、基準画像の各グリッド（格子）に対応して始点位置（ｘ、ｙ）と動きベクトルｖ（ｘ，ｙ）、および、信頼度r(x, y)のデータを持たせる。また、任意の二点のグリッド間（あるいは二点で決る線分）に対応付けて相関度a(x1, y1, x2, y2)のデータを持たせる。【００２４】
そして、基準画像で特徴量の多いグリッド（たとえば、エッジ、コーナー）の動きベクトルの信頼度は高くなるように設定する。また、基準画像で、色の差が大きく、かつ、仮の動きベクトル（仮算出した動きベクトル）の差が大きい２つの動きベクトルの相関度は低くなるように設定する。【００２５】
このように、信頼度、相関度を定めると図１の点線Ａで示す動きの不連続な場所に対しては、画像のコーナーあるいはエッジ部分の動きベクトルの信頼度は上がり、また、不連続な場所を跨る動きベクトル間の相関度は低くなる。図１において、丸印はグリッドを意味し、丸枠の太さは信頼度の高さを表している。図中、Ｂ，Ｅは、グリッドに関連付けられた信頼度であり、Ｅはエッジであるため信頼度高、Ｂはコーナーでもエッジでもないため信頼度低であることを示している。また、図中、Ｃ，Ｄは、グリッド間に関連付けられた相関度であり、Ｃは、動きベクトルの差が小さいため相関度高、Ｄは動きベクトルの差が大きいため相関度低であることを示している。【００２６】
本発明では、上記のように定めた信頼度と相関度をパラメータに持つ動きベクトルを仮算出するマッチング工程と、仮に定めた動きベクトルを所定範囲にある動きベクトルを加味して、加重平均化ないし最小二乗法によるアフィンパラメータの演算によって調整するスムージング工程により動きベクトルを本算出し、これを解像度の低い画像から順に高解像度の画像について実行するという、いわゆる繰り返し演算によって実行することができるので、計算機に負荷をかけず、精度の高い動きベクトルの算出が可能となる。【００２７】
また、本発明に係わる動きベクトル演算方法は、基準画像の特徴点に関する指示情報を入力する処理を含み、この入力された指示情報をもとに基準画像と比較画像の画像間の動きベクトルを演算することを特徴とする。【００２８】
本発明では、ユーザの指示による特徴点をもとに、まずその動きベクトルを算出し、この動きベクトルを不動のものとして、他の動きベクトルを演算するので、精度の高い動きベクトルを簡便に算出することができる。【００２９】
本発明に係わる動きベクトル演算方法は、さらに、基準画像の複数の特徴点を分散的に抽出し、抽出された特徴点をもとに基準画像と比較画像の画像間の動きベクトルを演算することを特徴とする。【００３０】
ここで、「分散的」とは、ある位置に画像特徴点が生成されると、その近傍には別の画像特徴点は生成されないようにするという趣旨である。【００３１】
本発明では、特徴点を効率的に求めて動きベクトルと計算するので、演算精度を維持しつつ計算機の負荷を軽減することができる。【００３２】
また、本発明に係わる動きベクトル演算方法では、さらに、動きベクトルは、基準画像と比較画像の画像間の対応する特徴点、当該特徴点を結ぶ線、および、前記特徴点または前記線によって構成される領域の夫々の動きを表す動きベクトルメッシュデータであることを特徴とする。好ましくは、画像特徴点に基づいて、この動きベクトルメッシュデータの領域を一または二以上の多角形、特に三角形に分割するとよい。【００３３】
本発明では、点同士の対応付けのみでなく、線分および領域の動きを動きベクトルメッシュデータで表して、画像間の動きを管理する。これによって、少ないデータ量で緻密かつ精度の高い動きの管理が可能となる。【００３４】
本発明に係わる手ぶれ補正装置は、上記の動きベクトル演算方法を用いて手ぶれ補正を実行する手ぶれ補正装置であって、複数の画像を入力して、基準画像と一または二以上の比較画像との動きベクトルを前記動きベクトル演算方法を用いて演算し、当該演算結果を出力する動きベクトル演算部と、前記動きベクトル演算部によって求めた動きベクトルと比較画像を用いて、基準画像へ重ね合わせるための処理を実行して合成用画像を作成する合成用画像生成手段と、前記合成用画像生成手段で作成した一または二以上の合成用画像を基準画像に重ね合わせて画像を合成する画像合成手段と、前記画像合成手段によって合成した画像データを出力する画像データ出力手段と、を備えたことを特徴とする。【００３５】
好ましくは、この手ぶれ補正装置は、前記画像合成手段は、手ぶれの最大範囲を演算し、画像枠から当該最大範囲については、画像数による平均化処理を実行するとよい。【００３６】
画像の枠部分は、手ぶれにより撮影範囲外になり合成データが不完全になるので、単純に重ね合わせると、その枠部分は暗くなる。このため、重ね合わせの画像数をもとに輝度調整することによって、画像枠の暗さの発生を回避することができる。【００３７】
また、本発明に係わる撮像装置は、上記の手ぶれ補正装置を有する撮像装置であって、被写体を連続して撮影して、複数の画像を生成し、前記手ぶれ装置へ入力する撮像部と、前記手ぶれ装置の画像を保存する記憶部とを備えたことを特徴とする。【００３８】
本発明に係わる動画生成装置は、上記の動きベクトル演算方法を用いて動画を生成する動画生成装置であって、複数の画像を入力し、前記動きベクトル演算方法を用いて、基準画像と一または二以上の比較画像との間の動きベクトルを算定する動きベクトル演算部と、前記動きベクトル演算部で算定した動きベクトルを予め定められた任意の値で分割することによって一または二以上の中間の動きベクトルを演算する動きベクトル編集手段と、基準画像に対して、前記中間の動きベクトルを適用することによって中間画像を生成し、初期画像、中間画像、および、最終画像を時系列的に表示可能にする動画生成手段と、を備えたことを特徴とする。【００３９】
さらに、本発明に係わるプログラムは、複数の画像データを入力して、画像間の動きベクトルを演算するプログラムであって、入力された複数の画像データについて、所定の解像度レベルＬ（Ｌ；自然数）までの多重解像度データを夫々演算して保存する処理と、基準画像の解像度レベルＬの入力動きベクトルを演算する処理と、前記各処理によって求めた解像度Ｌの基準画像、比較画像、入力動きベクトルを用いて次のステップを実行する解像度別動きベクトル推定処理と、を含み、（１）入力動きベクトルの各始点座標について、基準画像上の座標と、比較画像上の座標とを引数とするエネルギー関数を定義し、入力動きベクトルの所定範囲内で、前記エネルギー関数をもとに動きベクトルを仮算出するステップ、（２）基準画像の各特徴点について、画像特徴量をもとに信頼度を仮算出するステップ、（３）基準画像の特徴点間の画像特徴量の差と前記仮算出した動きベクトルの差のうち少なくとも一つを用いて相関度を算出するステップ、（４）前記仮算出した、動きベクトルと信頼度とを所定範囲にある動きベクトル、信頼度、相関度を用いて円滑化することによって、解像度Ｌの動きベクトルを本算出するステップ、前記本算出した解像度Ｌの動きベクトルをさらに解像度の高い解像度Ｌ−１の入力動きベクトルとして用い、前記解像度別動きベクトル推定処理を順次解像度の高い画像データに対して繰り返すことによって、基準画像と比較画像間の動きベクトルを演算することを特徴とする。
【発明の効果】
【００４０】
本発明によれば、信頼度と相関度をパラメータとする動きベクトルを仮算出するマッチング工程と、仮に定めた動きベクトルを所定範囲にある動きベクトルの状態によって調整するスムージング工程によって、動きベクトルを本算出し、これを解像度の低い画像から順に高解像度の画像について実行するという、いわゆる繰り返し演算によって実行することができるので、計算機に負荷をかけず、精度の高い動きベクトルの算出が可能となる。【００４１】
また、画像のエッジやコーナーに着目して、特徴点を把握し、その特徴点ついて、動きベクトルを計算することによって、信頼度の高い点、線、もしくは領域についてのみ動きベクトルを計算するので、データ量の削減を図ることができる。
【発明を実施するための最良の形態】
【００４２】
以下、本発明の実施形態を説明する。【００４３】
<第１の実施形態>（動きベクトル演算装置、動きベクトル演算方法）
図２は、本実施形態に係わる動きベクトル演算装置のブロック図である。この装置は、複数の画像を入力して、その画像間の動きベクトルを演算するものである。【００４４】
ここで、動きベクトル演算装置１は、画像データの読み出し、書き込みを行うＣＤ−ＲＯＭドライブなどの外部記憶装置１０、ユーザ（操作者）の指示情報を入力するためのキーボード、マウス等から構成される入力装置１１、画像データを表示させる表示装置１２、入力した画像データをもとに動きベクトルを算出する動きベクトル演算部１３、入力した画像データや動きベクトルデータを保存する記憶部１５を備えている。【００４５】
また、動きベクトル演算部１３は、入力装置１１、表示装置１２、外部記憶装置１０から画像データを入力して記憶部１５に保存する画像データ入力手段（機能）３１、入力された各画像データにフィルタ処理を施して複数の解像度レベルの画像データを作成する多重解像度画像生成手段（機能）３２、入力装置１１からの指示に基づいて動きベクトルのメッシュを指定するメッシュ指定手段（機能）３３、画像の一または二以上の特徴点を抽出する画像特徴点群抽出手段（機能）３４、画像の特徴点を結んだ図形を三角形に分割する三角形分割手段（機能）３５、三角形分割した特徴点をもとに動きベクトルを算出する動きベクトル推定手段（機能）３６、および、算出された動きベクトルデータを出力する動きベクトル出力手段（機能）３７を有している。なお、各手段３１から３７は、ＣＰＵの機能として処理実行されるものである。【００４６】
ここで、記憶部１５で保存される各データの説明をする。
画像データは、幅w, 高さh としたときw×h 個の格子を持ち、各格子に画素値（例えばRGB, YCbCr）の値を持つデータである。【００４７】
また、画像特徴点群データは、画像データの特徴点データの集合であり、各画像特徴点はその座標値(x,y)から構成される。【００４８】
動きベクトルメッシュデータは、画像の動きベクトルのデータである。複数の動きベクトル点、動きベクトル線、動きベクトル領域から構成されている。例えば図３（ａ）の画像に対して図３（ｂ）のように動きベクトルメッシュデータが設定できる。【００４９】
動きベクトル点は動きベクトルの起点となる画像上の座標(x,y)と、その動きベクトル(dx,dy)、決定済フラグfpから構成される。決定済フラグはその点の動きベクトルが決定済かそうでないかを表すフラグである。動きベクトル点のデータ例を図４（ａ）に示す。動きベクトル点識別情報（ＩＤ）ごとに、座標、動きベクトル、決定済フラグが関連付けられて保存されている。【００５０】
動きベクトル線は、図４（ｂ）に例示するように、その端点となる2つの動きベクトル点へのポインタ[p1, p2]、決定済フラグfeから構成される。決定済フラグはその線上の動きベクトルが決定済か未定かを表すフラグである。【００５１】
動きベクトル領域は、図４（ｃ）に例示するように、その境界となる動きベクトル線へのポインタ[e1, e2, ..., en]（境界線がn個の場合）、あるいはその領域の頂点となる動きベクトル点へのポインタ[p1, p2, ..., pn]（頂点数がn個の場合）、あるいはその両方から構成される。また、その領域内の動きベクトルが決定済か未定義かを表す決定済フラグfrも持つ。なおこの領域は三角形になるが、任意の多角形にしても実施可能である。【００５２】
次に上記の装置１を動作させることによって動きベクトルを生成する方法（動きベクトル演算方法）の説明を行う。【００５３】
（画像データ入力処理）
まず、外部記憶装置１０から入力された画像データは、画像データ入力手段３１によって、記憶部１５の入力画像データファイル５０に保存される。そして、この入力画像は、多重解像度生成手段３２によって、フィルタ処理されて低解像度の画像が作成され多重解像度画像データファイル５１に保存される。【００５４】
（多重解像度画像生成処理）
図５は、多重解像度画像生成手段３２の処理手順を示すフローチャートである。入力画像に対して、色空間変換、エッジ画像の生成処理等を行い（Ｓ１０１）、解像度レベル０の画像を作成し、さらに、各解像度レベル０の画像に対してぼかしフィルタや平均値フィルタなどを適用して解像度の低い画像データを作成し（Ｓ１０２）、これら作成した多重解像度画像データを多重解像度画像データファイル５１に保存する。【００５５】
図６は、多重解像度画像データの例である。ここで、縦方向Ａ行はＬａｂ色空間に変換された画像、Ｂ行は縦方向のみエッジ画像、Ｃ行は横方向のみエッジ画像、Ｄ行は方向依存性のないエッジ画像を表している。また、横方向は、ぼかしフィルタを適用した解像度レベルを表しており解像度レベル値が高くなるほど解像度が低くなっている。入力した画像ごとにこれらの多重解像度画像データを作成して記憶部１５の多重解像度画像データファイル５１に保存する。【００５６】
（メッシュ指定処理）
一方、ユーザは、メッシュ指定手段３３を起動し、入力装置１１と表示装置１２を用いて、入力画像データファイル５０から動きベクトル算出の基準となる基準画像と比較画像を抽出して、両画像の対応箇所を点、線、または、領域として指定する。なお、比較画像は、複数存在しても構わない。あるいは、点のみでグリッド設定してもかまわない。【００５７】
メッシュ指定手段３３は、この指定情報の入力によって、図４の形式による点、線、領域の動きベクトルメッシュデータを作成して、動きベクトルメッシュデータＡファイル５２に保存する。このとき、動きベクトルメッシュデータＡにおいて全ての動きベクトル点・線・領域の決定済フラグfp, fe, fr をセットする。【００５８】
なお、ユーザの操作方法としては、例えば、図７（ａ）の左側の画像（基準画像）から右側の画像（比較画像）への動きベクトルを手動で指定する場合、図７（ｂ）のように基準画像と比較画像に同じメッシュ構造を設定し、メッシュの点の位置を各画像の対応する位置へとずらすことで動きベクトルメッシュデータＡを指定する。図７（ｂ）における矢印は対応する動きベクトル点の例である。【００５９】
（画像特徴点群抽出処理）
次に画像特徴点群抽出手段３４が、入力装置１１を通して、あるいはメッシュ指定手段３３の動作完了によって起動され、多重解像度画像データと動きベクトルメッシュデータＡを入力し、画像特徴点群データを出力する。【００６０】
画像特徴点は画像のエッジやコーナーを中心に生成される。画像特徴点がある位置に生成されると、その近傍に別の画像特徴点は生成されないようにする。これは画像中のある位置の動きベクトルは、その近傍の動きベクトルとほぼ同じ値を持つことが予想されるからである。こうしてなるべく少ない点数で全体の動きベクトルが近似できるように画像特徴点を分布させる。【００６１】
ここで動きベクトルメッシュデータＡにおける動きベクトル点・線・領域上およびその近傍には画像特徴点は生成しない。それらはユーザが明示的に動きベクトルを指定しているため、自動計算する必要がないからである。【００６２】
例えば図３（ｂ）または図７（ｂ）の動きベクトルメッシュデータＡに対する画像特徴点群は図８の丸点のようになる。動きベクトルメッシュ上およびその周辺に特徴点を検出しても、その点は、特徴点として保存しないようにする。【００６３】
（三角形分割処理）
次に、三角形分割手段３５は、画像特徴点群データ５３および動きベクトルメッシュデータＡを入力とし、この特徴点による領域を三角形分割することで動きベクトルメッシュデータＢを出力して、動きベクトルメッシュデータＢファイル５４に保存する。【００６４】
三角形分割は動きベクトルメッシュデータＡが持つ動きベクトル点・線・領域の各データが保持された上で、画像特徴点群を追加することで行われる。このような三角形分割の一例としては、たとえば、制約付きドローネ三角形分割がある。【００６５】
三角形分割手段３５は、出力する動きベクトルメッシュデータＢについては、その動きベクトル点が元々動きベクトルメッシュデータＡにも存在する場合には決定済フラグfpをセットし、一方、画像特徴点群抽出手段３４によって自動的に追加された動きベクトルの場合は、fpをセットしない。同様に動きベクトル線・領域の決定済フラグfe, frに関しても、動きベクトルメッシュデータＡに含まれるものであればセットし、三角形分割手段３５によって自動的に生成されたものならばセットしない。例えば、図８の動きベクトルメッシュデータＡおよび画像特徴点群に対して三角形分割を行った結果の動きベクトルメッシュデータＢは図９のようになる。ここでメッシュの四角点・太線部分は動きベクトルメッシュデータＡに相当する部分であり、ユーザに指定されたものであるので決定済フラグはセットされ、その他の丸点・細線部分については決定済フラグはセットされない。【００６６】
（動きベクトル推定処理）
動きベクトル推定手段３６は、多重解像度画像データ５１および動きベクトルメッシュデータＢを入力とし、決定済フラグfpがセットされていない動きベクトル点についてその動きベクトルを自動計算することにより、全ての動きベクトル点・線・領域の決定済フラグがセットされた状態の動きベクトルメッシュデータＣを出力して動きベクトルメッシュデータＣファイル５５に保存する。【００６７】
動きベクトルの自動計算については様々な方式が考えられる。画像のピクセル単位やそれに準じた密なグリッド単位で動きベクトルを計算しその結果を動きベクトル点に割り当てる方式、純粋に動きベクトル点上のみでしか動きベクトルを計算しない方式、およびそれらのハイブリッド方式などである。いずれの場合にも、決定済フラグがセットされている動きベクトル点・線・領域上の動きベクトルは求める必要はなく、またそれ以外の点についても決定済動きベクトルとの整合性がとれるような動きベクトルの算出を行う。【００６８】
以上の方法によって、計算の高速化、およびユーザが意図した動きベクトルメッシュデータ生成の両立が可能になる。図９の動きベクトルメッシュデータＢの例では、四角点・太線部分の動きベクトルはすでにユーザによって与えられ、決定済フラグが設定されているので計算する必要はなく、丸点・細線部分のみが自動計算の対象となる。この自動計算では、四角点・太線部の動きベクトルとの整合性を考慮し、四角点・太線部の動きベクトルには変更を加えないで以下の処理方法によって計算を実行する。【００６９】
次に、動きベクトル推定手段３６の処理を図１０を用いて詳述する。
まず、動きベクトルメッシュデータＢファイル５４に保存されている動きベクトルを初期動きベクトルとし、これに対して解像度補正処理を行う（Ｓ２０１）。解像度補正処理は、解像度に応じて動きベクトルを間引くものであり、たとえば、解像度Ｌのグリッド型動きベクトルの場合は、動き情報を２＾Ｌピクセルごとに要素（（ｘ，ｙ）、ｖ（ｘ，ｙ））を有する。【００７０】
この間引き処理をより詳細に説明すると、解像度Ｌの格子に対して、その格子上に無い点の動きベクトルであって決定済みフラグがセットされている動きベクトル（メッシュデータも含む）は、予め定められた移動規則に従って近傍の格子上の動きベクトルとして関連付けられる。このとき、同じ格子に対して、複数の点から移動してくる動きベクトルが存在する場合は、それらの動きベクトルの平均値を当該格子の動きベクトルとして関連付けるようにする。【００７１】
なお、決定済みフラグがセットされていない動きベクトルは、たとえば二次元の場合は（０，０）として処理される。【００７２】
次に、動きベクトルの重ね合わせ処理を実行する（Ｓ２０２）。最初のループでは、ステップＳ２０１で作成された解像度Ｌ（初期解像度）の動きベクトルデータに対して、全て（０，０）の動きベクトルデータが重ね合わされるので、結果として、解像度Ｌ（初期解像度）の動きベクトルデータがそのままこのステップの出力となる。
初期解像度以外の解像度の動きベクトル重ね合わせ処理については後述する。【００７３】
このように補正して求めた解像度Ｌの動きベクトルに対して、マッチング処理を実行する（Ｓ２０３）。【００７４】
以下、図１１と図１２を用いてこのマッチング処理について説明する。
図１１は、画像が２枚の場合のマッチング処理手順の説明図である。
マッチング処理では、上記各処理によって求めた解像度Ｌの基準画像、比較画像、入力動きベクトルを用いて、まず、入力動きベクトルの各始点座標について、基準画像上の座標と、比較画像上の座標とを引数とするエネルギー関数を定義し、入力動きベクトルの予め定められた所定範囲内で、前記エネルギー関数をもとに動きベクトルを仮算出する（Ｓ３０１）。また、基準画像の各特徴点について、エッジ、コーナー等の情報を用いて信頼度を仮算出する（Ｓ３０２）。なお、信頼度は、エッジの大きさなど画像に基づく関数の他、上述のエネルギー関数を用いて行うようにしてもよい。信頼度をどのように設定するかは、実施時にどのような条件に重きをおくかということに依存してくる。たとえば、画面中央のものを重点にマッチングを行うというような応用の場合には、画面中央を１としたガウシアン関数を信頼度としてスムージング処理を行うようにしても良い。【００７５】
次に、基準画像の特徴点間の色差および仮算出した動きベクトルの差をもとに相関度を算出する（Ｓ３０３）。
相関度は、たとえば、ピクセルの色の差の二乗と動きベクトルの差の大きさの二乗とを掛け合わせて、それをガウシアン関数あるいは同様の関数で１〜０にする。【００７６】
一般に、隣り合うピクセルの色の差や、画像の情報のみで相関度を設定するという手法をマッチングに応用しようとすると、同じ動きをしていて特徴が異なる部分が切れてしまうという問題があるが、動きベクトルの情報を加えることで、このような問題を防ぐことができる。一方、動きベクトルだけで相関度を表すと、ミスマッチしてしまったときにも切れてしまうので、これを防止するためには、画像情報と動きベクトルの両方の情報を使用するのが良い。【００７７】
次に、仮算出した動きベクトルと信頼度、および、相関度の各データを出力する（Ｓ３０４）。【００７８】
なお、上記は、画像が２枚の場合について説明したが、図１２のように、基準画像と複数の比較画像の夫々について動きベクトル、信頼度、相関度のデータを演算するようにしても良い。この場合、夫々の比較画像について一の基準画像との動きを演算する場合と、各比較画像が次の比較画像との間では基準画像となる場合がある。【００７９】
また、エネルギー関数の実施例としていわゆるブロックマッチングを使用するようにしても良い。【００８０】
図１０に戻って、ステップＳ２０３のマッチング処理の後にスムージング処理を実行して、解像度Ｌの動きベクトルを本算出する（Ｓ２０４）。【００８１】
このスムージング処理の手順を図１３に示す。この図において、マッチング処理で仮算出した、動きベクトルと信頼度について、近傍の動きベクトル、信頼度、相関度を用いて加重平均処理で平均化（円滑化）することによって、解像度Ｌの動きベクトルを算出する。【００８２】
加重平均の場合のスムージングの式は以下の如くである。
【数１】
0003935500.tif 000002
【数２】
0003935500.tif 000003
ここで、iはスムージングを繰り返した回数である。【００８３】
上記のように、動きベクトルは、信頼度および相関度の積による加重平均とし、さらに、信頼度は、相関度による加重平均としている。
なお、上記の加重平均処理に替えて最小二乗法でアフィンパラメータを求めるようにしてもよい。【００８４】
この場合のスムージングの式は以下の如くである。
【数３】
0003935500.tif 000004
ここで、
【数４】
0003935500.tif 000005
【数５】
0003935500.tif 000006
【数６】
0003935500.tif 000007
【００８５】
なお、r(x1,y1) は 加重平均の場合と同じである。【００８６】
上記のスムージング処理を終了すると、次に最終解像度（通常は解像度レベル０）か否かを判断して（Ｓ２０５）、最終解像度でなければ、Ｌ＝Ｌ−１として（Ｓ２０６）、すなわち、解像度レベルが一つ上の解像度の画像データについてステップＳ２０１以降の処理を繰り返す。【００８７】
また、スムージング処理の結果得られた解像度Ｌの動きベクトルを用いて、線形補間処理によって、解像度Ｌ−１の動きベクトルデータを生成する（Ｓ２０７）。【００８８】
線形補間処理について、より詳細に説明すると、解像度Ｌの格子上の動きベクトルに対して、その間に格子を取り、この格子の動きベクトルは、周囲の解像度Ｌの格子上の動きベクトルの平均値とする。【００８９】
たとえば、解像度３の動きベクトルで、v(32,32) v(32,40) v(40,32) v(40,40) があるとき、解像度２の動きベクトルは、
v(32,32) = v(32,32)
v(32,36) = 1/2 v(32,32) + 1/2 v(32,40)
v(36,36) = 1/4 v(32,32) + 1/4 v(32,40) + 1/4 v(40,32) + 1/4 v(40,40)
と計算する。【００９０】
そして、ステップＳ２０２の重ね合わせ処理では、この補間した動きベクトルデータをステップＳ２０１で作成された入力動きベクトルデータと重ね合わせて、マッチング処理の入力動きベクトルとする。【００９１】
以上の一連の処理を最終解像度になるまで繰り返して（Ｓ２０５）、最終解像度になれば、その動きベクトルを動きベクトルメッシュデータＣファイル５５に保存する。【００９２】
（動きベクトル出力処理）
動きベクトル出力手段３７は、動きベクトルメッシュデータＣファイル５５に保存されている動きベクトルデータを外部装置１０あるいは他のプログラムモジュールへ出力する。【００９３】
本実施形態によれば、色情報のみを使って仮の動きベクトルを求め、これに、エッジ情報やコーナー情報に基づく信頼度と動きベクトルの差による相関度という異なる概念のパラメータを用いて計算するので、計算機に負荷をかけず精度の高い動きベクトルを算定することができる。特に、多重解像度のレベルやスムージング処理の繰り返し回数を設定することによって、計算機の能力や動きベクトルの要求精度に応じた演算を実行させることができるので汎用性が高く、手ぶれ補正や動画生成などいろいろな用途に使用することができる。【００９４】
（動きベクトル演算装置の他の実施例１）  
上述の動きベクトル演算装置１は、図１４に示す構成によって実施することもできる。すなわち、画像データ入力手段３１で入力した画像データを多重解像度画像生成手段３２で多重解像度の画像データを作成し、これを用いて動きベクトル推定手段３６によって、上記の処理によってグリッド型動きベクトルを算出する。【００９５】
この場合、動きベクトル推定手段３６は、多重解像度画像データ５１のみを使用するため、図４に示す決定済みフラグの制御を要しない。【００９６】
（動きベクトル演算装置の他の実施例２）
また、図２のメッシュ指定手段３３、画像特徴点群抽出手段３４、三角形分割手段３５は、計算機の負荷や用途に応じてその機能を活殺させることができる。【００９７】
たとえば、ユーザが予め画像の対応関係を入力する必要が無ければ、図１５に示すようにメッシュ指定手段３３を省くこともできる。この場合、画像特徴点群抽出手段３４は、多重解像度画像データとして、解像度レベル０のエッジ画像から特徴点を抽出して画像特徴店群データを作成し、これをもとに三角形分割手段３５によって動きベクトルメッシュデータＢを作成する。そして、動きベクトル推定手段３６は、この動きベクトルメッシュデータＢを用いて動きベクトルを算出する。【００９８】
なお、画像特徴点群抽出手段３４は、多重解像度画像データの中で解像度の低い画像データを用いて特徴点の抽出処理を実行するようにしても良い。入力画像（解像度レベル０）で特徴点が極めて多く抽出されるような場合は、解像度を低くして特徴点を抽出することによって、特徴量の大きな点のみを抽出することができる。このため、解像度の高い画像データの多数の特徴点の特徴量を比較して選別するのに比べ計算機の負荷を軽減させることができる。【００９９】
この動きベクトル演算装置１は、複数の画像を入力して、基準画像に対する動きベクトルを出力して、画像データを動きベクトルによって管理して、一連の動きを有する画像―タを圧縮させるという用途に使用することができるが、この装置１の動きベクトル演算部１３と、動きベクトルデータ記憶部１５の主要部を用いて以下の実施形態の装置を構成することができる。【０１００】
（動きベクトル演算装置の他の実施例３）
動きベクトル演算装置１の他の実施例として、メッシュ指定手段３３の機能を利用して、探索範囲を設定する手段を設けることも可能である。すなわち、メッシュ指定手段３３は、基準画像と比較画像の対応点を指定して、その間の動きベクトルを求めて決定済みフラグをセットするが、この決定済みフラグをセットせずに動きベクトルデータのみを算定して、格納しておく。そして、動きベクトル推定手段３６は、この格納された動きベクトルの所定範囲の領域を探索して、基準画像と比較画像との点、線、あるいは、領域についての動きベクトルを算定する。このようにすれば、大きく離れた範囲の対応関係も的確に抽出することができ、また、ユーザが探索範囲を設定する場合も、概略の対応点のみを指定すればよく、厳格な指定を要しないので操作性が向上する。【０１０１】
<第２の実施形態>（手ぶれ補正装置）
上述の動きベクトル演算方法を用いてカメラで撮影時の手ぶれを補正することができる。図１６は、本実施形態に係わる手ぶれ補正装置のブロック図である。【０１０２】
この図において、手ぶれ補正装置６は、動きベクトル演算部１３、動きベクトルデータ記憶部１５、複数の画像とその動きベクトルを用いて画像を重ね合わせて合成画像データを作成する画像合成手段（機能）６３、合成画像データを編集する画像編集手段（機能）６４、作成した画像データを出力する画像データ出力手段（機能）６５を備えている。【０１０３】
この構成において、動きベクトル演算部１３の画像データ入力手段３１を介してを高速連写で撮影した複数毎枚の写真画像を入力する。そして、基準画像として通常は、連写の最初の画像に対して、比較画像の動きベクトルメッシュデータＣを算出し、動きベクトルデータ記憶部１５に保存する。【０１０４】
次に、手ぶれ補正装置６の画像合成手段６３は、動きベクトルデータ記憶部１５に保存されている入力画像データと動きベクトルメッシュデータＣを入力する。そして、比較画像をその動きベクトルデータによって基準画像へ合わせ込むための変換処理を実行する。【０１０５】
なお、一般的に手ぶれの場合の動きベクトルは、各点とも同一の方向と大きさを有するので、メッシュ指定手段３３や三角形分割手段３５などの手段を削除して機能を簡略化させるようにしても良い。【０１０６】
本実施の形態によれば、二枚以上の画像について参照画像（基準画像）を指定し、その他の画像から参照画像へのメッシュ構造化された動きベクトル群を用いて、画像を変形して合成するので、カメラのＣＣＤノイズを除去して鮮明な画像を作成することができる。【０１０７】
なお、複数の画像を合成する際に加重平均処理を施すことによって被写体の中の動いているものを消去し背景部分を取り出すことも可能である。【０１０８】
また、画像合成の際に、ピクセルごとに重ね合わせた枚数を保存しておき、その枚数によって、加重平均化処理を行うので、画像のふちの部分まで違和感のない合成画像を作成することができる。【０１０９】
<第３の実施形態>（手ぶれ補正装置付きカメラ）
図１７は、この手ぶれ補正装置６をカメラ等の撮像装置に組み込んだときのブロック図である。手ぶれ補正装置をカメラに組み込む場合は、単純化された機能として、図１４に記載の動きベクトル演算でも実用度が高い。【０１１０】
本実施の形態によれば、手ぶれ補正機能をマイクロプロセッサあるいは演算機能を有するＩＣで実現して、撮像装置に組み込むことによって手ぶれ補正処理を施した高画質の画像データを得ることができる。【０１１１】
<第４の実施形態>（動画生成装置）
また、上記の動きベクトル演算方法を用いて、複数の静止画から動きの滑らかな動画を効率的に作成することもできる。【０１１２】
図１８は、本実施形態に係わる動画生成装置のブロック図である。この図において、動画生成装置８は、動きベクトル演算部１３、動きベクトルデータ記憶部１５、基準画像（初期画像）と比較画像（最終画像）の動きベクトルからその間の時間的変化を推定して中間の動きベクトルを演算する中間データ生成手段（機能）８３、この中間の動きベクトルと入力画像から動画データを作成する動画データ生成手段（機能）８４、作成された動画データを出力する動画データ出力手段（機能）８５を備えている。【０１１３】
ここで、中間データ生成手段８３は、画像中の特徴点あるいはメッシュデータとしての動きベクトルの変化の速度や加速度を計算して、所定の時間区分ごとの動きベクトルを求めて、中間データファイル８７に保存する。【０１１４】
そして、動画データ生成手段８４は、入力画像データと中間の動きベクトルを時系列に並べて動画データファイル８８に保存する。図１９は、動画データファイルのデータ構成例である。各入力画像とその間の動きベクトルが時系列的に抽出可能になっている。【０１１５】
本実施形態によれば、計算機に負荷をかけずに動画データ用の動きベクトルを作成することができる。また、静止画データをもとにその間を埋める滑らかな動画データを作成することができる。【０１１６】
なお、本発明は上述の各実施形態に限定されること無く、その要旨を逸脱しない範囲で種々変形して実施することが出来る。たとえば、外部記憶装置を介して画像データの入力や動きベクトルの出力を行う替わりに通信ネットワークを介してこれと繋がるコンピュータ装置等と画像データや動きベクトルの受け渡しを行うようにしても良い。【０１１７】
また、本発明による動きベクトル演算方法は、上記の各装置への適用の他、画像が順序良く並んでいて、画像内の物体が一定の法則に従って動いている場合には、Image-based VR（バーチャルリアリティ）のためのマッチング処理にも応用することができる。
【産業上の利用可能性】
【０１１８】
本発明による動きベクトル演算方法は、コンピュータ上で手ぶれ画像を処理する手ぶれ補正装置、手ぶれ補正機能を搭載したデジタルカメラやビデオカメラ等の撮像装置、動きベクトルデータによって少ないデータ量で精度良く動画像データを生成する動画生成装置などに適用することができる。
【図面の簡単な説明】
【０１１９】
【図１】本発明による動きベクトル、信頼度、および、相関度の説明図である。
【図２】本発明の第１の実施形態による動きベクトル演算装置のブロック図である。
【図３】動きベクトルメッシュデータの点、線、領域の説明図であり、図３（ａ）はサンプル画像、図３（ｂ）はその画像上の点、線、領域の対応関係の説明図である。
【図４】動きベクトルメッシュデータのデータ構成図であり、図４（ａ）は動きベクトル点、図４（ｂ）は動きベクトル線、図４（ｃ）は動きベクトル領域のデータ構成例を示す。
【図５】図２の多重解像度生成手段の処理手順を示すフローチャートである。
【図６】多重解像度画像データの例である。
【図７】動きベクトルメッシュデータＡの指定のしかたの説明図であり、図７（ａ）は基準画像と比較画像、図７（ｂ）は両画像間のデータ上の対応関係を示す。
【図８】画像特徴点群の説明図である。
【図９】図２の三角形分割手段の出力である動きベクトルメッシュデータＢの説明図である。
【図１０】図２の動きベクトル推定手段の処理手順を示すフローチャートである。
【図１１】図１０のマッチング処理手順を示すフローチャートである。（画像が２枚の場合）
【図１２】図１０のマッチング処理手順を示すフローチャートである。（画像が複数の場合）
【図１３】図１０のスムージング処理手順を示すフローチャートである。
【図１４】本発明の他の実施例１による動きベクトル演算装置のブロック図である。
【図１５】本発明の他の実施例２による動きベクトル演算装置のブロック図である。
【図１６】本発明の第２の実施形態による手ぶれ補正装置のブロック図である。
【図１７】本発明の第３の実施形態による撮像装置のブロック図である。
【図１８】本発明の第４の実施形態による動画生成装置のブロック図である。
【図１９】図１８の動画データファイルのデータ構成図である。
【符号の説明】
【０１２０】
１  動きベクトル演算装置
６  手ぶれ補正装置
７  撮像装置
８  動画生成装置
１０  外部記憶装置
１１  入力装置
１２  表示装置
１３  動きベクトル演算部
１５  動きベクトルデータ記憶部
３１  画像データ入力手段
３２  多重解像度画像生成手段
３３  メッシュ指定手段
３４  画像特徴点群抽出手段
３５  三角形分割手段
３６  動きベクトル推定手段
３７  動きベクトル出力手段
５０  入力画像データファイル
５１  多重解像度画像データファイル
５２  動きベクトルメッシュデータＡファイル
５３  画像特徴点群データファイル
５４  動きベクトルメッシュデータＢファイル
５５  動きベクトルメッシュデータＣファイル
６１  手ぶれ補正データ演算部
６２  手ぶれ補正データ記憶部
６３  画像合成手段
６４  画像編集手段
６５  画像データ出力手段
６７  合成画像データファイル
６８  出力画像データファイル
７１  撮像手段
７２  着脱可能メモリ
７３  外部インタフェース手段
８１  動画データ演算部
８３  中間データ生成手段
８４  動画データ生成手段
８５  動画データ出力手段
８７  中間データファイル
８８  動画データファイル
【図１】
0003935500.tif 000008
【図２】
0003935500.tif 000009
【図４】
0003935500.tif 000010
【図５】
0003935500.tif 000011
【図１０】
0003935500.tif 000012
【図１１】
0003935500.tif 000013
【図１２】
0003935500.tif 000014
【図１３】
0003935500.tif 000015
【図１４】
0003935500.tif 000016
【図１５】
0003935500.tif 000017
【図１６】
0003935500.tif 000018
【図１７】
0003935500.tif 000019
【図１８】
0003935500.tif 000020
【図１９】
0003935500.tif 000021
【図３】
0003935500.tif 000022
【図６】
0003935500.tif 000023
【図７】
0003935500.tif 000024
【図８】
0003935500.tif 000025
【図９】
0003935500.tif 000026