(57)【特許請求の範囲】
【請求項１】
動画を構成する複数の画像の中から１つを指定する指定部と、
前記複数の画像のうちの前記指定部によって指定された画像以外の所定数の画像のそれぞれについて、前記指定された画像との関係を表す基礎行列を取得する基礎行列取得部と、
前記基礎行列取得部によって前記所定数の画像のそれぞれについて取得された前記基礎行列に基づいて、前記所定数の画像の中から、前記指定された画像にエピポーラ投影をするための画像を選別する選別部と、
前記複数の画像の中から前記指定部が指定する画像を変えて、前記指定部、前記基礎行列取得部及び前記選別部の処理を含んで繰り返す所定の処理により、仮想特徴点軌道を構築する仮想特徴点軌道構築部と、
前記仮想特徴点軌道構築部によって構築された前記仮想特徴点軌道を時間方向に平滑化する平滑化部と、
前記仮想特徴点軌道構築部によって構築された前記仮想特徴点軌道と、前記平滑化部によって平滑化された前記仮想特徴点軌道と、の間の関係に基づいて、前記複数の画像のそれぞれを補正する補正部と、
を備える、
ことを特徴とする画像処理装置。
【請求項２】
前記基礎行列取得部によって取得された前記基礎行列のうちの、前記選別部によって選別された画像について取得された前記基礎行列に基づいて、前記選別された画像内の互いに対応する特徴点を前記指定された画像に前記エピポーラ投影をすることにより、前記指定された画像内における仮想特徴点を生成する仮想特徴点生成部、
を更に備える、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記所定の処理は、前記指定部、前記基礎行列取得部、前記選別部及び前記仮想特徴点生成部の処理を繰り返すことである、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記基礎行列取得部によって前記所定数の画像のそれぞれについて取得された前記基礎行列の類似度を評価する評価部を更に備え、
前記選別部は、前記評価部による評価結果に基づいて、前記所定数の画像の中から前記指定された画像に前記エピポーラ投影をするための画像を選別する、
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記選別部は、前記評価部による前記評価結果により、前記所定数の画像の中に互いに類似している２以上の画像がある場合、前記２以上の画像のうちのいずれか１つ以外の画像を、前記指定された画像に前記エピポーラ投影をするための画像から除外する、
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記評価部は、異なる２つの前記基礎行列の間において、一方の基礎行列を正規化した行列に含まれる各要素と、他方の基礎行列を正規化した行列における対応する要素と、の差分をとった値がいずれも閾値以下である場合に、前記２つの基礎行列が類似していると評価する、
ことを特徴とする請求項４又は５に記載の画像処理装置。
【請求項７】
前記評価部は、異なる２つの前記基礎行列の間において、一方の基礎行列を正規化した行列に含まれる各要素と、他方の基礎行列を正規化した行列における対応する要素と、の差分の２乗和をとった値が閾値以下である場合に、前記２つの基礎行列が類似していると評価する、
ことを特徴とする請求項４又は５に記載の画像処理装置。
【請求項８】
請求項１乃至７の何れか１項に記載の前記画像処理装置と、
被写体を撮像することにより、前記動画を構成する画像を生成する撮像部と、
を備える、
ことを特徴とする撮像装置。
【請求項９】
動画を構成する複数の画像の中から１つを指定する指定処理と、
前記複数の画像のうちの前記指定処理によって指定された画像以外の所定数の画像のそれぞれについて、前記指定された画像との関係を表す基礎行列を取得する基礎行列取得処理と、
前記基礎行列取得処理によって前記所定数の画像のそれぞれについて取得された前記基礎行列に基づいて、前記所定数の画像の中から、前記指定された画像にエピポーラ投影をするための画像を選別する選別処理と、
前記複数の画像の中から前記指定処理が指定する画像を変えて、前記指定処理、前記基礎行列取得処理及び前記選別処理を含んで繰り返す所定の処理により、仮想特徴点軌道を構築する仮想特徴点軌道構築処理と、
前記仮想特徴点軌道構築処理によって構築された前記仮想特徴点軌道を時間方向に平滑化する平滑化処理と、
前記仮想特徴点軌道構築処理によって構築された前記仮想特徴点軌道と、前記平滑化処理によって平滑化された前記仮想特徴点軌道と、の間の関係に基づいて、前記複数の画像のそれぞれを補正する補正処理と、
を含む、
ことを特徴とする画像処理方法。
【請求項１０】
前記基礎行列取得処理によって取得された前記基礎行列のうちの、前記選別処理によって選別された画像について取得された前記基礎行列に基づいて、前記選別された画像内の互いに対応する特徴点を前記指定された画像に前記エピポーラ投影をすることにより、前記指定された画像内における仮想特徴点を生成する仮想特徴点生成処理、
を更に含む、
ことを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
前記所定の処理は、前記指定処理、前記基礎行列取得処理、前記選別処理及び前記仮想特徴点生成処理を繰り返すことである、
ことを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
コンピュータを、
動画を構成する複数の画像の中から１つを指定する指定部、
前記複数の画像のうちの前記指定部によって指定された画像以外の所定数の画像のそれぞれについて、前記指定された画像との関係を表す基礎行列を取得する基礎行列取得部、
前記基礎行列取得部によって前記所定数の画像のそれぞれについて取得された前記基礎行列に基づいて、前記所定数の画像の中から、前記指定された画像にエピポーラ投影をするための画像を選別する選別部、
前記複数の画像の中から前記指定部が指定する画像を変えて、前記指定部、前記基礎行列取得部及び前記選別部の処理を含んで繰り返す所定の処理により、仮想特徴点軌道を構築する仮想特徴点軌道構築部、
前記仮想特徴点軌道構築部によって構築された前記仮想特徴点軌道を時間方向に平滑化する平滑化部、
前記仮想特徴点軌道構築部によって構築された前記仮想特徴点軌道と、前記平滑化部によって平滑化された前記仮想特徴点軌道と、の間の関係に基づいて、前記複数の画像のそれぞれを補正する補正部、
として機能させる、
ことを特徴とするプログラム。
【請求項１３】
前記コンピュータを、
前記基礎行列取得部によって取得された前記基礎行列のうちの、前記選別部によって選別された画像について取得された前記基礎行列に基づいて、前記選別された画像内の互いに対応する特徴点を前記指定された画像に前記エピポーラ投影をすることにより、前記指定された画像内における仮想特徴点を生成する仮想特徴点生成部、
として更に機能させる、
ことを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記所定の処理は、前記指定部、前記基礎行列取得部、前記選別部及び前記仮想特徴点生成部の処理を繰り返すことである、
ことを特徴とする請求項１３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
動画に対する手ぶれを補正する方法として、特徴点追跡方式と呼ばれる技術が知られている。特徴点追跡方式においては、動画に含まれる各フレームの画像から特徴点を抽出し、抽出した特徴点の移動ベクトルから構成したオプティカルフローを時間的に平滑化することにより、動画に対して手ぶれを補正する。
【０００３】
しかし、特徴点追跡方式は三次元物体の視差の影響を考慮していないため、手ぶれ補正後の動画に不自然な歪みが生じることがあるという欠点があった。
【０００４】
特徴点追跡方式が有する上述の欠点を克服する方法として、エピポーラ幾何を応用した手ぶれ補正の方法（以下、エピポーラ転送方式と呼ぶ）が知られている。例えば、非特許文献１は、エピポーラ転送方式で手ぶれを補正することにより、視差の影響を抑制し、手ぶれ補正後の動画に生じる不自然な歪みを軽減する技術を開示している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Amit Goldstein and. Raanan Fattal, "Video Stabilization using Epipolar Geometry", ACM Transactions on Graphics (TOG), Volume 31, Issue 5, August 2012, Article No.126
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、エピポーラ転送方式の手ぶれ補正は、手ぶれ補正の対象となる各フレームの画像について、例えば過去１０フレームの画像との間でのオプティカルフローの計算、及び１フレーム当たり数千本から数万本に及ぶエピポーラ線の投影等、多くの座標計算を必要とする。このため、演算負荷が非常に大きかった。
【０００７】
本発明は、上記の課題に鑑みてなされたものであり、視差の影響を考慮した手ぶれ補正を簡易な演算により実行可能な画像処理装置、撮像装置、画像処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記目的を達成するため、本発明に係る画像撮像装置の一態様は、
動画を構成する複数の画像の中から１つを指定する指定部と、
前記複数の画像のうちの前記指定部によって指定された画像以外の所定数の画像のそれぞれについて、前記指定された画像との関係を表す基礎行列を取得する基礎行列取得部と、
前記基礎行列取得部によって前記所定数の画像のそれぞれについて取得された前記基礎行列に基づいて、前記所定数の画像の中から、前記指定された画像にエピポーラ投影をするための画像を選別する選別部と、
前記複数の画像の中から前記指定部が指定する画像を変えて、前記指定部、前記基礎行列取得部及び前記選別部の処理を含んで繰り返す所定の処理により、仮想特徴点軌道を構築する仮想特徴点軌道構築部と、
前記仮想特徴点軌道構築部によって構築された前記仮想特徴点軌道を時間方向に平滑化する平滑化部と、
前記仮想特徴点軌道構築部によって構築された前記仮想特徴点軌道と、前記平滑化部によって平滑化された前記仮想特徴点軌道と、の間の関係に基づいて、前記複数の画像のそれぞれを補正する補正部と、
を備える、
ことを特徴とする。
また、前記目的を達成するため、本発明に係る撮像装置の一態様は、
前記画像処理装置と、
被写体を撮像することにより、前記動画を構成する画像を生成する撮像部と、
を備える、
ことを特徴とする。
また、前記目的を達成するため、本発明に係る画像処理方法の一態様は、
動画を構成する複数の画像の中から１つを指定する指定処理と、
前記複数の画像のうちの前記指定処理によって指定された画像以外の所定数の画像のそれぞれについて、前記指定された画像との関係を表す基礎行列を取得する基礎行列取得処理と、
前記基礎行列取得処理によって前記所定数の画像のそれぞれについて取得された前記基礎行列に基づいて、前記所定数の画像の中から、前記指定された画像にエピポーラ投影をするための画像を選別する選別処理と、
前記複数の画像の中から前記指定処理が指定する画像を変えて、前記指定処理、前記基礎行列取得処理及び前記選別処理を含んで繰り返す所定の処理により、仮想特徴点軌道を構築する仮想特徴点軌道構築処理と、
前記仮想特徴点軌道構築処理によって構築された前記仮想特徴点軌道を時間方向に平滑化する平滑化処理と、
前記仮想特徴点軌道構築処理によって構築された前記仮想特徴点軌道と、前記平滑化処理によって平滑化された前記仮想特徴点軌道と、の間の関係に基づいて、前記複数の画像のそれぞれを補正する補正処理と、
を含む、
ことを特徴とする。
また、前記目的を達成するため、本発明に係るプログラムの一態様は、
コンピュータを、
動画を構成する複数の画像の中から１つを指定する指定部、
前記複数の画像のうちの前記指定部によって指定された画像以外の所定数の画像のそれぞれについて、前記指定された画像との関係を表す基礎行列を取得する基礎行列取得部、
前記基礎行列取得部によって前記所定数の画像のそれぞれについて取得された前記基礎行列に基づいて、前記所定数の画像の中から、前記指定された画像にエピポーラ投影をするための画像を選別する選別部、
前記複数の画像の中から前記指定部が指定する画像を変えて、前記指定部、前記基礎行列取得部及び前記選別部の処理を含んで繰り返す所定の処理により、仮想特徴点軌道を構築する仮想特徴点軌道構築部、
前記仮想特徴点軌道構築部によって構築された前記仮想特徴点軌道を時間方向に平滑化する平滑化部、
前記仮想特徴点軌道構築部によって構築された前記仮想特徴点軌道と、前記平滑化部によって平滑化された前記仮想特徴点軌道と、の間の関係に基づいて、前記複数の画像のそれぞれを補正する補正部、
として機能させる、
ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、視差の影響を考慮した手ぶれ補正を簡易な演算により実行できる画像処理装置、撮像装置、画像処理方法、及びプログラムを提供することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る撮像装置の構成を例示するブロック図である。
【図２】本発明の実施形態に係る撮像装置及び画像処理装置の機能構成を例示するブロック図である。
【図３】エピポーラ幾何の概念を説明するための図である。
【図４】エピポーラ転送の概念を説明するための図である。
【図５】エピポーラ転送を利用した仮想特徴点軌道の構築を説明するための図である。
【図６】エピポーラ転送方式の手ぶれ補正の概要を説明するための図である。
【図７】エピポーラ転送を利用した手ぶれ補正後の特徴点軌道の構築を説明するための図である。
【図８】本発明の実施形態に係る画像処理装置が実行する手ぶれ補正処理を説明するためのフローチャートである。
【図９】本発明の実施形態に係る画像処理装置が実行するオプティカルフロー取得処理を説明するためのフローチャートである。
【図１０】本発明の実施形態に係る画像処理装置が実行するオプティカルフロー取得処理を説明するための図である。
【図１１】本発明の実施形態に係る画像処理装置が実行する基礎行列取得処理を説明するためのフローチャートである。
【図１２】本発明の実施形態に係る画像処理装置が実行するフレーム選別処理を説明するためのフローチャートである。
【図１３】本発明の実施形態に係る画像処理装置が実行するフレーム選別処理を説明するための図である。
【図１４】本発明の実施形態に係る画像処理装置が実行する仮想特徴点生成処理を説明するためのフローチャートである。
【図１５】本発明の実施形態に係る画像処理装置が実行する仮想特徴点軌道準備処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態に係る画像処理装置、撮像装置、及び画像処理方法を、図面を参照しながら詳細に説明する。尚、図中同一又は同等の部分には同じ符号を付す。
【００１２】
撮像装置１は、図１に示すように、撮像部１０と、データ処理部２０と、ユーザインタフェース部３０と、を備える。
【００１３】
撮像部１０は、光学レンズ１１とイメージセンサ１２とを含む。撮像部１０は、後述する操作部３２が受け付けたユーザの操作に従って被写体を撮像することにより、手ぶれ補正の対象となる動画を生成する。生成された動画は、時間的に連続して撮像された（連続する複数のフレームにわたって撮像された）複数の画像を含んでいる。
【００１４】
光学レンズ１１は、被写体から射出された光を集光するレンズと、焦点、露出、ホワイトバランス等の撮像設定パラメータを調整するための周辺回路と、を備える。
【００１５】
イメージセンサ１２は、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）やＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）等を備える。イメージセンサ１２は、光学レンズ１１が光を集光することによって結像した被写体の光学像を取得して、取得した光学像の電圧情報をアナログ／デジタル変換器（図示せず）によりデジタル画像データに変換する。そして、得られたデジタル画像データを後述する外部記憶部２３に保存する。
【００１６】
データ処理部２０は、主記憶部２１と、出力部２２と、外部記憶部２３と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２４と、画像処理装置１００と、を含む。
【００１７】
主記憶部２１は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を備える。主記憶部２１は、ＣＰＵ２４のワークメモリとして機能し、画像データやプログラムを一時的に記憶する。
【００１８】
出力部２２は、主記憶部２１や外部記憶部２３に記憶された画像データを読み出し、この画像データに対応するＲＧＢ（Ｒ（Ｒｅｄ、赤）、Ｇ（Ｇｒｅｅｎ、緑）、Ｂ（Ｂｌｕｅ、青））信号を生成して、後述する表示部３１に出力する。また、出力部２２は、生成したＲＧＢ信号をＣＰＵ２４や画像処理装置１００へ供給する。
【００１９】
外部記憶部２３は、不揮発性メモリ（例えば、フラッシュメモリやハードディスク）を備え、撮像装置１全体の制御に必要な制御プログラムを含む種々のプログラム、種々の固定データ等を固定的に記憶する。外部記憶部２３は、記憶しているプログラムやデータをＣＰＵ２４や後述する画像処理装置１００へ供給し、撮像部１０が生成した動画を含む種々のデータを固定的に記憶する。
【００２０】
ＣＰＵ２４は、外部記憶部２３に記憶された制御プログラムを実行することにより撮像装置１全体を制御するとともに、外部記憶部２３に記憶された種々のプログラムを実行する。
【００２１】
画像処理装置１００は、動画に対してエピポーラ転送方式の手ぶれ補正を施す。画像処理装置１００は、図２に示すように、機能的に、指定部１０１、基礎行列取得部１０２、選別部１０３、仮想特徴点生成部１０４、仮想特徴点軌道構築部１０５、平滑化部１０６、補正部１０７、及び評価部１０８を備える。これら各部は、ＣＰＵ２４の機能によって実現される。
【００２２】
尚、画像処理装置１００は、通常の画像処理装置と同様に、トリミング機能や画像拡大・縮小機能等を有するが、以下では、本実施形態に特徴的な、エピポーラ転送方式の手ぶれ補正を動画に施す機能を中心に説明する。
【００２３】
指定部１０１は、手ぶれ補正対象の動画を構成する複数の画像の中から１つを指定する。基礎行列取得部１０２は、手ぶれ補正対象の動画を構成する複数の画像のうちの指定部１０１によって指定された画像以外の所定数（本実施形態では、１０フレーム分）の画像のそれぞれについて、指定部１０１によって指定された画像との関係を表す基礎行列Ｆを取得する。
【００２４】
具体的には、基礎行列取得部１０２は、オプティカルフロー取得部１０２ａを含み、オプティカルフロー取得部１０２ａによって取得されたオプティカルフローに基づいて、基礎行列Ｆを取得する。
【００２５】
オプティカルフロー取得部１０２ａは、オプティカルフロー取得処理を実行することにより、画像間の特徴点ｐｉの移動ベクトルによって形成される画像間のオプティカルフローと、特徴点ｐｉの複数のフレームに亘る移動の軌跡である特徴点軌道ｐと、を取得する。
【００２６】
具体的には、オプティカルフロー取得部１０２ａは、手ぶれ補正対象の動画に含まれる連続する複数のフレームの画像それぞれから互いに対応する特徴点ｐｉを抽出する（特徴点ｐｉの座標（例えば、同次座標）を取得する）。
【００２７】
以下、特徴点をｐｉｋと表記する。ｉは特徴点を識別するためのインデックスであり、ｋは特徴点が含まれている画像がどのフレームの画像かを示すインデックスである。なお、どのフレームの画像であるか特定する必要がない場合は、インデックスｋを省略してｐｉと表記する。
【００２８】
三次元空間内の（被写体上の）単一の点が、第Ｅフレームの画像では特徴点ｐｉＥに投影され、第Ｆフレームの画像では特徴点ｐｉＦに投影されている場合、２つの特徴点ｐｉＥ、ｐｉＦは「互いに対応している」と表現する。
【００２９】
異なる１対のフレームの画像がそれぞれ含む互いに対応する１対の特徴点ｐｉの一方を始点として、他方を終点として有するベクトルを、これらの画像間の特徴点ｐｉの移動ベクトルという。特徴点ｐｉの移動ベクトルは、一方の画像における特徴点ｐｉが他方の画像においてどこへ移動しているかを示す。異なるフレームの画像間のオプティカルフローは、少なくとも１つ以上の特徴点ｐｉの、これらの画像間における移動ベクトルによって形成され、特徴点ｐｉの移動ベクトルの画像内における分布を示す。
【００３０】
オプティカルフロー取得部１０２ａは、手ぶれ補正対象の動画に含まれる各フレーム中の互いに対応する特徴点ｐｉ、すなわち特徴点ｐｉの移動ベクトルの始点または終点、の座標を取得することにより、特徴点ｐｉの移動ベクトルと、これらの特徴点ｐｉの移動ベクトルが形成するオプティカルフローと、を取得する。
【００３１】
特徴点軌道ｐは、特徴点ｐｉの複数のフレームに亘る軌跡を示す。オプティカルフロー取得部１０２ａは、オプティカルフロー取得処理を実行することにより、手ぶれ補正対象の動画が含む各フレームの画像から互いに対応する特徴点ｐｉを抽出し、抽出した特徴点ｐｉを追跡することにより特徴点軌道ｐを取得する。
【００３２】
なお、オプティカルフロー取得部１０２ａは、任意の公知技術を用いて複数のフレームの画像から互いに対応する特徴点ｐｉを抽出する。例えば、ＫＬＴ法（ＫＬＴトラッキング）を用いることができる。ＫＬＴ法を用いて特徴点ｐｉを抽出する技術は、非特許文献１に開示されているとおり、当該技術分野において周知であるため詳細な説明は省略する。
【００３３】
オプティカルフロー取得部１０２ａが実行するオプティカルフロー取得処理については、後に図９のフローチャートを参照しながら詳細に説明する。
【００３４】
オプティカルフロー取得部１０２ａによって取得されたオプティカルフローに基づいて、基礎行列取得部１０２は、基礎行列Ｆを取得する。基礎行列Ｆは、手ぶれ補正前の２つの画像間の幾何的関係（エピポーラ関係）を表す３行３列の行列である。
【００３５】
図３を参照して、エピポーラ幾何の概念を説明する。異なる時刻に撮像された第Ｑフレームの画像と第Ｒフレームの画像は、それぞれ、互いに異なる点Ｃ１と点Ｃ２とに配置された撮像装置１によって撮像された画像と見なすことができる。すなわち、第Ｑフレームの画像と第Ｒフレームの画像は、それぞれ、点Ｃ１と点Ｃ２とを投影中心とする投影面を表す画像と見なすことができる。点Ｃ１と点Ｃ２との位置の相違は、手ぶれ等の影響により撮像装置１の位置が変動したことに由来する。三次元空間内の単一の点Ｐは、第Ｑフレームの画像中では点ｍ１に投射される一方、第Ｒフレームの画像中では点ｍ２に投影される。すなわち、点ｍ１と点ｍ２は互いに対応する点である。
【００３６】
三次元空間内の点Ｐと点Ｃ１とを結ぶ直線は、第Ｑフレームの画像上では点ｍ１に投影される一方、第Ｒフレームの画像上では、点Ｐ、点Ｃ１、及び点Ｃ２を通る平面（エピポーラ面）と第Ｒフレームの画像との交線である線Ｌ１として投影される。線Ｌ１は、第Ｑフレームの画像中の点ｍ１が第Ｒフレームの画像に投影するエピポーラ線である。同様に、線Ｌ２は、第Ｒフレームの画像中の点ｍ２が第Ｑフレームの画像に投影するエピポーラ線である。
【００３７】
第Ｑフレームの画像中の任意の点ｑが第Ｒフレームの画像に投影するエピポーラ線ＬＱ、Ｒは、次の式（１）により表される。ここで、ＦＱ，Ｒは、第Ｑフレームの画像と第Ｒフレームの画像との間のエピポーラ関係を表す基礎行列である。ＦＱ，Ｒは、第Ｑフレームの画像中の任意の点ｍ１と、点ｍ１に対応する第Ｒフレームの画像中の点ｍ２と、を用いて次の式（２）で表される。
【数１】
0006421587.tif 000002
【数２】
0006421587.tif 000003
【００３８】
式（２）から明らかなように、基礎行列Ｆは、ｆ１１からｆ３２までの８個の未知数を有するため、少なくとも８組の対応する点ｍ１、ｍ２に基づいて求めることができる。すなわち、８箇所の対応点が与えられれば基礎行列Ｆを算出することができる。
【００３９】
基礎行列取得部１０２は、指定部１０１によって指定された画像と指定部１０１によって指定された画像の直前１０フレーム分の画像とからそれぞれオプティカルフロー取得部１０２ａが抽出した８組の互いに対応する特徴点ｐｉの座標に基づき、標準的な８ポイントアルゴリズムと誤差を最小化するためのＲＡＮＳＡＣ（ＲＡＮｄｏｍ  ＳＡｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）法とを用いて基礎行列Ｆを取得する。８ポイントアルゴリズムとＲＡＮＳＡＣ法を用いて基礎行列Ｆを取得する方法は、非特許文献１に開示されているとおり、当該技術分野において周知であるため詳細な説明は省略する。
【００４０】
基礎行列取得部１０２が実行する基礎行列取得処理については、後に図１１のフローチャートを参照しながら詳細に説明する。
【００４１】
選別部１０３は、基礎行列取得部１０２によって取得された基礎行列に基づいて、指定部１０１によって指定された画像より前の所定数（本実施形態では、１０フレーム分）の画像の中から、指定された画像にエピポーラ投影するための画像を選別する。具体的には、選別部１０３は、画像の選別のために、評価部１０８による基礎行列の類似度の評価結果を参酌する。
【００４２】
基礎行列の類似度とは、異なる２つの基礎行列が類似しているか否かの度合いを示す指標である。例えば、第Ｑフレームの画像と第Ｒフレームの画像との間のエピポーラ関係を表す基礎行列ＦＱ，Ｒと、第Ｑフレームの画像と第Ｓフレームの画像との間のエピポーラ関係を表す基礎行列ＦＱ，Ｓと、が類似している場合、第Ｒフレームの画像と第Ｓフレームの画像とが類似していることを意味する。ここで、異なる２フレームの画像が互いに類似している場合、これら２つの画像中の仮想特徴点ｖｉの座標はほぼ同じである。そのため、これら２つの画像中の仮想特徴点ｖｉがそれぞれ投影する２本のエピポーラ線はほぼ平行であり、これらのエピポーラ線が与える交点（エピポーラ交点）は信頼性に欠ける。
【００４３】
そこで、選別部１０３は、類似している複数の基礎行列を発見した場合、そのうち何れか１つの基礎行列のみを、エピポーラ投影に用いる基礎行列として選別する。すなわち、選別部１０３は、評価部による評価の結果、所定数の画像の中に互いに類似している２以上の画像がある場合、該２以上の画像のうちのいずれか１つ以外の画像を、指定部１０１によって指定された画像にエピポーラ投影するための画像から除外する。これにより、類似度が高い複数の画像が含む仮想特徴点ｖｉからそれぞれエピポーラ線が投影され、信頼性に欠けるエピポーラ交点が生成されることを防止することができる。
【００４４】
選別部１０３が実行する選別処理については、後に図１２のフローチャートを参照しながら詳細に説明する。
【００４５】
評価部１０８は、指定部１０１によって指定された画像より前の所定数の画像のそれぞれについて基礎行列取得部１０２によって取得された基礎行列の類似度を評価する。具体的には、評価部１０８は、異なる２つの基礎行列の間において、一方の基礎行列に含まれる各要素と、他方の基礎行列に含まれる各要素と、を比較することにより、この２つの基礎行列の類似度を評価する。類似度は、２つの基礎行列に含まれる要素同士を比較した結果を様々に用いて、取得することができる。
【００４６】
例えば、評価部１０８は、異なる２つの基礎行列の間において、一方の基礎行列を正規化した行列に含まれる各要素と、他方の基礎行列を正規化した行列における対応する要素と、の差分をとった値がいずれも閾値以下である場合に、この２つの基礎行列が類似していると評価する。
【００４７】
すなわち、基礎行列は３行３列の行列であって９つの要素を有するため、評価部１０８は、比較対象の一方の基礎行列に含まれる９つの要素と他方の基礎行列に含まれる９つの要素との同じ位置にある要素同士での差分をとる。そして、得られた９つの差分値を、それぞれ予め定められた９つの閾値と比較する。これは、比較対象の一方の基礎行列と他方の基礎行列との差分をとった３行３列の差分行列を計算し、得られた差分行列を、予め定められた９つの閾値を要素として有する３行３列の閾行列と比較することと同じである。９つの差分値と比較する９つの閾値は、全て同じ値であってもよいし、互いに異なってもよい。比較の結果、９つの差分値全てが閾値以下である場合に、評価部１０８は、この２つの基礎行列が類似していると評価する。
【００４８】
或いは、評価部１０８は、異なる２つの基礎行列の間において、一方の基礎行列を正規化した行列に含まれる各要素と、他方の基礎行列を正規化した行列における対応する要素と、の差分の２乗和をとった値が閾値以下である場合に、この２つの基礎行列が類似していると評価してもよい。
【００４９】
この場合、評価部１０８は、比較対象の一方の基礎行列に含まれる９つの要素と他方の基礎行列に含まれる９つの要素との同じ位置にある要素同士での差分をとり、得られた９つの差分値のそれぞれを２乗して加算する。そして、得られた加算値を予め定められた１つの閾値と比較して、加算値が閾値以下である場合に、評価部１０８は、この２つの基礎行列が類似していると評価する。
【００５０】
このように、評価部１０８は、指定部１０１によって指定された画像より前の所定数の画像のそれぞれについて取得された所定数の基礎行列の中に、互いに類似している複数の基礎行列があるか否かを評価する。そして、選別部１０３は、評価部１０８による評価結果に基づいて、所定数の画像の中から指定された画像にエピポーラ投影するための画像を選別する。
【００５１】
仮想特徴点生成部１０４は、仮想特徴点生成処理を実行し、基礎行列取得部１０２によって取得された基礎行列のうち、選別部１０３によって選別された画像について取得された基礎行列に基づいて、選別部１０３によって選別された画像内の互いに対応する特徴点ｐｉ又は仮想特徴点ｖｉを指定部１０１により指定された画像にエピポーラ投影することにより、指定された画像内における仮想特徴点ｖｉを生成する。
【００５２】
具体的には、仮想特徴点生成部１０４は、画像間のエピポーラ関係を表す基礎行列Ｆに基づいて、対応点を生成するエピポーラ転送という方法により仮想特徴点ｖｉを生成する。
【００５３】
図４を参照して、エピポーラ転送の概念を説明する。第Ｘフレームの画像と第Ｙフレームの画像とにおける互いに対応する点ｍ３、ｍ４がそれぞれ第Ｚフレームの画像に投影するエピポーラ線Ｌ３、Ｌ４は、第Ｚフレームの画像中の、点ｍ３及び点ｍ４に対応する点ｍ５で交わる。エピポーラ線Ｌ３、Ｌ４及びその交点である点ｍ５は、画像間のエピポーラ関係を表す基礎行列ＦＸ、Ｚ、ＦＹ、Ｚに基づいて算出できる。すなわち、第Ｚフレーム中の対応点である点ｍ５を、画像間のエピポーラ関係を表す基礎行列Ｆに基づいて生成できる。
【００５４】
仮想特徴点生成部１０４は、このエピポーラ転送を用いて、指定された画像内における仮想特徴点ｖｉを生成する。
【００５５】
図４に示すように、少なくとも２本のエピポーラ線があればその交点を仮想特徴点ｖｉとして取得できるものの、実際にはノイズやトラッキングエラー、モデリングエラー等の影響により交点の信頼性は損なわれている。そこで、仮想特徴点生成部１０４は、最大１０本のエピポーラ線のうち組み合わせ可能な異なる２本のエピポーラ線の交点（最大で１０Ｃ２＝４５個の交点）を求め、求めた交点の座標の平均を求めることにより、より正確な仮想特徴点ｖｉを取得する。
【００５６】
具体的には、図５に示すように、仮想特徴点生成部１０４は、第ｔフレームの画像に、この画像の直前に撮像された連続する１０フレーム分の画像（第（ｔ−１０）フレームから第（ｔ−１）フレームまでの過去１０フレーム）に含まれる仮想特徴点ｖｉｔ−１〜ｖｉｔ−１０がそれぞれ投影する１０本のエピポーラ線を、基礎行列取得部１０２によって取得された基礎行列Ｆｔ、ｔ−１〜Ｆｔ、ｔ−１０に基づいて求める。そして、求めた１０本のエピポーラ線の交点の平均を、第ｔフレームの画像中の仮想特徴点ｖｉｔとして取得する。
【００５７】
仮想特徴点生成部１０４が実行する仮想特徴点生成処理については、後に図１４のフローチャートを参照しながら詳細に説明する。
【００５８】
仮想特徴点軌道構築部１０５は、手ぶれ補正対象の動画を構成する複数の画像の中から指定部１０１が指定する画像を変えて、指定部１０１、基礎行列取得部１０２、選別部１０３、及び仮想特徴点生成部１０４の処理を繰り返すことにより、仮想特徴点軌道ｖを構築する。
【００５９】
仮想特徴点軌道ｖは、仮想特徴点ｖｉの複数のフレームに亘る軌跡である。仮想特徴点軌道構築部１０５は、仮想特徴点生成部１０４に、手ぶれ補正対象の動画を構成する各フレームの画像において仮想特徴点ｖｉを生成させることにより仮想特徴点ｖｉを時間的に追跡し（複数のフレームに亘って追跡し）、仮想特徴点軌道ｖを構築する。
【００６０】
仮想特徴点軌道ｖは、図６に示すように、手ぶれ補正前の（手ぶれの影響を受けた）撮像装置１の動きを表している。
【００６１】
特徴点軌道ｐが画像からＫＬＴ法を用いて抽出された特徴点ｐｉによって構成されるのに対し、仮想特徴点軌道ｖはエピポーラ転送により生成された仮想特徴点ｖｉによって構成される。
【００６２】
三次元空間内の被写体の一部分が、あるフレームの画像において物体の影に隠れてしまったり、撮像装置１の視野から外れてしまったりした場合、この部分に含まれる点の、当該フレームの画像における投影点である特徴点ｐｉをＫＬＴ法により抽出することはできない。しかし、このフレームの画像内の仮想特徴点ｖｉは、過去のフレームの画像内の対応する仮想特徴点ｖｉをエピポーラ転送することにより生成できる。また、ＫＬＴ法ではトラッキングエラーとなり特徴点ｐｉが抽出できない場合でも、エピポーラ転送によれば仮想特徴点ｖｉを生成することができる。
【００６３】
このため、仮想特徴点軌道ｖは、特徴点軌道ｐよりも長く（多くのフレームにわたって）連続している。
【００６４】
仮想特徴点軌道構築部１０５が実行する仮想特徴点軌道ｖの構築処理については、後に図８のフローチャートを参照しながら詳細に説明する。
【００６５】
平滑化部１０６は、仮想特徴点軌道構築部１０５によって構築された仮想特徴点軌道ｖを時間方向に平滑化することにより、平滑化された仮想特徴点軌道〜ｖを取得する。
【００６６】
具体的には、平滑化部１０６は、下記の式（３）を用い、仮想特徴点軌道ｖを構成する仮想特徴点ｖｉそれぞれの座標とガウシアンカーネルとの畳み込みを作ることにより、平滑化された仮想特徴点軌道〜ｖを構成する手ぶれ補正後の仮想特徴点〜ｖｉｔの座標を取得する。ここで、ｇは下記の式（４）で表されるガウシアンカーネルである。
【数３】
0006421587.tif 000004
【数４】
0006421587.tif 000005
【００６７】
本実施形態では、σ＝５０のガウシアンカーネルを用いて仮想特徴点軌道ｖを平滑化する。
【００６８】
仮想特徴点軌道ｖが手ぶれ補正前の（手ぶれの影響を受けた）撮像装置１の動きを表していたのに対し、平滑化された仮想特徴点軌道〜ｖは、図６に示すように、手ぶれ補正後の（手ぶれの影響を除去した）撮像装置１の動きを表す。
【００６９】
具体的には図６に示すように、手ぶれ補正後の動画を構成する各フレームの画像は、平滑化された仮想特徴点軌道〜ｖによって定義される。すなわち、手ぶれ補正前の動画を構成する各フレームの画像と手ぶれ補正後の動画を構成する各フレームの画像との間の関係は、仮想特徴点軌道ｖと平滑化された仮想特徴点軌道〜ｖとの間の関係によって定義される。
【００７０】
補正部１０７は、仮想特徴点軌道構築部１０５によって構築された仮想特徴点軌道ｖと、平滑化部１０６によって平滑化された仮想特徴点軌道〜ｖと、の間の関係に基づいて、手ぶれ補正対象の動画を構成する複数の画像それぞれを補正する。
【００７１】
具体的には、補正部１０７は、手ぶれ補正前の動画が含む各フレームの画像に対し、手ぶれ補正前の画像が含む特徴点ｐｉを手ぶれ補正後の画像が含む手ぶれ補正後の特徴点〜ｐｉへ移すような射影変換を施すことにより、手ぶれ補正を実行する。
【００７２】
例えば、補正部１０７は、手ぶれ補正前の動画を構成する各フレームの画像に対し、各フレームの画像における任意の点（ｘ、ｙ）を次の式（５）を満たす点（ｘ’、ｙ’）へ移す射影変換を施すことにより、手ぶれ補正後の画像を取得する。ここで、式（５）中の射影変換パラメータａ〜ｈは、下記の式（６）を用いて求めることができる。
【数５】
0006421587.tif 000006
【数６】
0006421587.tif 000007
【００７３】
式（６）から明らかなように、射影変換パラメータａ〜ｈは、少なくとも４組の対応点（ｘ１，ｙ１）と（ｘ１’、ｙ１’）〜（ｘ４，ｙ４）と（ｘ４’とｙ４’）が与えられれば求めることができる。補正部１０７は、手ぶれ補正前の各フレームの画像に含まれる特徴点ｐｉと、これに対応する手ぶれ補正後のフレームの画像に含まれる手ぶれ補正後の特徴点〜ｐｉと、を式（６）に代入することにより、射影変換パラメータａ〜ｈを取得し、射影変換を行う。
【００７４】
手ぶれ補正後の画像が手ぶれ補正後の撮像装置１の動きを表す平滑化された仮想特徴点軌道〜ｖによって定義されるため、手ぶれ補正後の特徴点〜ｐｉは、仮想特徴点軌道ｖと平滑化された仮想特徴点軌道〜ｖとの間の関係に基づいて取得することができる。
【００７５】
具体的には、図６に示すように、手ぶれ補正前の画像と手ぶれ補正後の画像との間のエピポーラ関係を表す基礎行列〜Ｆが、仮想特徴点軌道ｖと平滑化された仮想特徴点軌道〜ｖとの間の関係に基づいて取得される。そして、図７に示すように、手ぶれ補正後の各フレームの画像に、前後５フレーム分の手ぶれ補正前の画像に含まれる特徴点ｐｉを、取得された基礎行列〜Ｆに基づいてエピポーラ転送することにより、手ぶれ補正後の特徴点〜ｐｉが生成される。
【００７６】
このように、補正部１０７は、仮想特徴点軌道ｖと平滑化された仮想特徴点軌道〜ｖとの間の関係に基づいて求めた射影変換パラメータを用いて射影変換を行うことにより、手ぶれ補正対象の動画を構成する各フレームの画像に手ぶれ補正を施す。上述したとおり、エピポーラ転送を用いて構築される仮想特徴点軌道ｖは長く（多くのフレームにわたって）連続しているため、大規模なフィルタを適用し（σ＝５０の大きなガウシアンカーネルを用いて時間方向に平滑化し）、手ぶれ補正後の画像を定義することができる。
【００７７】
図１に戻って、ユーザインタフェース部３０は、表示部３１と、操作部３２と、外部インタフェース３３と、を含む。
【００７８】
表示部３１は、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌｅｙ）やＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等を備え、出力部２２から供給されたＲＧＢ信号に基づいて、撮像部１０により生成され、外部記憶部２３により記憶されている手ぶれ補正対象の動画、画像処理装置１００が手ぶれ補正対象の動画に手ぶれ補正処理を施すことにより生成した動画等を含む種々の動画像を表示する。
【００７９】
操作部３２は、ユーザからの操作指示を受け付ける。操作部３２は、撮像装置１の電源スイッチ、シャッタボタン、撮像装置１の種々の機能を選択するためのボタン等、各種の操作ボタンを備える。操作部３２は、ユーザから操作指示を受け付けると、受け付けた指示情報を撮像部１０やデータ処理部２０のＣＰＵ２４等に供給する。
【００８０】
なお、表示部３１と操作部３２とは、互いに重畳して配置されたいわゆるタッチパネルによって構成されるものであってもよい。
【００８１】
外部インタフェース３３は、撮像装置１の外部の機器とデータをやり取りするためのインタフェースである。例えば、外部インタフェース３３は、画像処理装置１００が手ぶれ補正対象の動画に手ぶれ補正処理を施すことによって生成した動画を、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格のデータに変換して、ＵＳＢケーブルを介して外部の機器との間でデータを送受信する。
【００８２】
以下、撮像装置１及び画像処理装置１００が動画に手ぶれ補正を施す動作の詳細を、図８〜図１５を参照しながら説明する。
【００８３】
撮像装置１が備える撮像部１０は、予め、被写体を撮像することにより、手ぶれ補正対象の動画を生成している。当該動画は、時間的に連続して撮像された複数フレームの画像を含んでいる。生成された動画は、外部記憶部２３によって記憶される。
【００８４】
ユーザは、動画の手ぶれを補正することを所望する場合、操作部３２を操作することにより、手ぶれ補正対象の動画のデータを主記憶部２１に展開する。そして、撮像装置１が備える複数の動作モードの１つである「手ぶれ補正モード」を選択する。
【００８５】
操作部３２が、ユーザによる「手ぶれ補正モード」を選択する操作を受け付けると、ＣＰＵ２４は、特徴点抽出プログラムや画像処理プログラムを含む、図８のフローチャートに示す手ぶれ補正処理を実行するためのプログラムを外部記憶部２３から読み出し、主記憶部２１に展開する。
【００８６】
このような状態において、ユーザが、操作部３２を操作して手ぶれ補正の開始を指示すると、画像処理装置１００が、図８のフローチャートに示す手ぶれ補正処理を開始する。
【００８７】
手ぶれ補正処理を開始すると、まず、指定部１０１が、手ぶれ補正開始フレームを指定する（ステップＳ１）。手ぶれ補正開始フレームは、手ぶれ補正対象の動画に含まれる複数のフレームのうち最初の（撮像時刻が最も古い）フレームである。以下、指定部１０１により指定されたフレームを、第ｔフレームと表記する。
【００８８】
オプティカルフロー取得部１０２ａは、オプティカルフロー取得処理を実行する（ステップＳ２）。これにより、オプティカルフロー取得部１０２ａは、第ｔフレームより以前の１０フレーム（第（ｔ−１）フレーム〜第（ｔ−１０）フレーム）分の画像それぞれから互いに対応する特徴点ｐｉを抽出する。そして、画像間の特徴点ｐｉの移動ベクトルによって形成される画像間のオプティカルフローを取得すると共に、特徴点軌道ｐを取得する。
【００８９】
以下、ステップＳ２のオプティカルフロー取得処理の詳細を、図９のフローチャートを参照しながら説明する。
【００９０】
ステップＳ２のオプティカルフロー取得処理を開始すると、オプティカルフロー取得部１０２ａは、まず、図８のフローチャートのステップＳ１において指定部１０１により指定されたフレーム（第ｔフレーム）を第Ａフレームとして設定し（ステップＳ２０１）、第（ｔ−１０）フレーム（第ｔフレームの１０フレーム前のフレーム）を第Ｂフレームとして設定する（ステップＳ２０２）。
【００９１】
次に、オプティカルフロー取得部１０２ａは、第Ａフレームの画像と第Ｂフレームの画像との間のオプティカルフローが、以前に実行されたオプティカルフロー取得処理によって取得済みであるか否かを判別する（ステップＳ２０３）。
【００９２】
取得済みであると判別すると（ステップＳ２０３；ＹＥＳ）、処理はステップＳ２０８へ移る。これにより、既に取得したオプティカルフローを重複して取得することを防止できる。
【００９３】
オプティカルフローが未取得であると判別すると（ステップＳ２０３；ＮＯ）、オプティカルフロー取得部１０２ａは、第Ａフレームの画像から、ＫＬＴ法を用いて特徴点ｐｉを抽出する（ステップＳ２０４）。
【００９４】
そして、オプティカルフロー取得部１０２ａは、第Ｂフレームの画像から、ステップＳ２０４で第Ａフレームの画像から抽出した各特徴点ｐｉに対応する特徴点ｐｉを、ＫＬＴ法を用いて抽出する（ステップＳ２０５）。
【００９５】
ステップＳ２０４及びステップＳ２０５で互いに対応する特徴点ｐｉを抽出すると、オプティカルフロー取得部１０２ａは、抽出した特徴点ｐｉ間のベクトル（特徴点ｐｉの移動ベクトル）を取得することにより、これらの移動ベクトルによって形成される、第Ａフレームの画像と第Ｂフレームの画像との間のオプティカルフローを取得する（ステップＳ２０６）。また、オプティカルフロー取得部１０２ａは、ステップＳ２０４及びステップＳ２０５で抽出した特徴点ｐｉによって構成される特徴点軌道ｐを作成する（ステップＳ２０７）。
【００９６】
オプティカルフローと特徴点軌道ｐとを取得した後、オプティカルフロー取得部１０２ａは、値Ｂを１だけインクリメントする（ステップＳ２０８）。すなわち、オプティカルフロー取得部１０２ａは、ステップＳ２０３〜Ｓ２０７の処理対象となる第Ｂフレームを、次の（次に撮像時刻が新しい）フレームに移す。例えば、直前に実行したステップＳ２０３〜Ｓ２０７の処理において、第（ｔ−１０）フレームが第Ｂフレームとして設定されていた場合、ステップＳ２０８において、第（ｔ−１０）フレームの次のフレームである第（ｔ−９）フレームが、新たに第Ｂフレームとして設定される。
【００９７】
値Ｂをインクリメントした後、オプティカルフロー取得部１０２ａは、インクリメントされた後の値Ｂが値Ａに一致するか否か（第Ｂフレームと第Ａフレームとが同一であるか否か）を判別する（ステップＳ２０９）。
【００９８】
インクリメント後の値Ｂが値Ａに一致しない（第Ｂフレームと第Ａフレームとが同一ではない）と判別すると（ステップＳ２０９；ＮＯ）、処理はステップＳ２０３へ戻る。
【００９９】
すなわち、オプティカルフロー取得部１０２ａは、値Ｂを１ずつインクリメントしながら、インクリメント後の値Ｂが値Ａに一致する（第Ｂフレームと第Ａフレームとが同一である）と判別するまで（ステップＳ２０９においてＹＥＳと判別されるまで）ステップＳ２０３〜Ｓ２０８の処理を繰り返す。これにより、特徴点軌道ｐを取得すると共に、図１０に示すように、第Ａフレームの画像と、第ｔフレーム直前の１０フレームのうち第Ａフレームより以前のフレームの画像と、の間のオプティカルフローを取得する。
【０１００】
最終的に、インクリメント後の値Ｂが値Ａに一致する（第Ｂフレームと第Ａフレームとが同一である）と判別すると（ステップＳ２０９；ＹＥＳ）、オプティカルフロー取得部１０２ａは、値Ａを１だけディクリメントする（ステップＳ２１０）。すなわち、ステップＳ２０２〜Ｓ２０９の処理対象となる第Ａフレームを、直前の（次に撮像時刻が古い）フレームに移す。例えば、直前に実行したステップＳ２０２〜Ｓ２０９の処理において、第ｔフレームが第Ａフレームとして設定されていた場合、ステップＳ２１０において、第ｔフレームの直前のフレームである第（ｔ−１）フレームが、新たに第Ａフレームとして設定される。
【０１０１】
ステップＳ２１０で値Ａを１だけディクリメントした後、オプティカルフロー取得部１０２ａは、ディクリメント後の値Ａが値（ｔ−１０）に一致するか否かを判別する（ステップＳ２１１）。
【０１０２】
ディクリメント後の値Ａが値（ｔ−１０）に一致しないと判別すると（ステップＳ２１１；ＮＯ）、処理はステップＳ２０２へ戻る。
【０１０３】
すなわち、オプティカルフロー取得部１０２ａは、値Ａを１ずつディクリメントしながら、ディクリメント後の値Ａが値（ｔ−１０）に一致すると判別するまで（ステップＳ２１１においてＹＥＳと判別するまで）、ステップＳ２０２〜Ｓ２１０の処理を繰り返す。これにより、特徴点軌道ｐを取得すると共に、図１０に示すように、第ｔフレーム及び第ｔフレームの直前の１０フレームそれぞれについて、各フレームの画像と、各フレームより以前のフレームの画像と、の間のオプティカルフローを取得する。
【０１０４】
ディクリメント後の値Ａが値（ｔ−１０）に一致すると判別すると（ステップＳ２１１；ＹＥＳ）、オプティカルフロー取得部１０２ａは、オプティカルフロー取得処理を終了する。
【０１０５】
図８のフローチャートに戻って、ステップＳ２のオプティカルフロー取得処理終了後、基礎行列取得部１０２は、基礎行列取得処理を実行する（ステップＳ３）。
【０１０６】
以下、ステップＳ３の基礎行列取得処理の詳細を、図１１のフローチャートを参照しながら説明する。
【０１０７】
ステップＳ３の基礎行列取得処理を開始すると、基礎行列取得部１０２は、まず、第（ｔ−１０）フレーム（第ｔフレームより１０フレーム前のフレーム）を第Ｇフレームとして設定する（ステップＳ３０１）。
【０１０８】
次に、基礎行列取得部１０２は、オプティカルフロー取得処理により取得された、第ｔフレームの画像と第Ｇフレームの画像との間のオプティカルフローに基づいて、第Ｇフレームの画像と第ｔフレームの画像との間のエピポーラ関係を表す基礎行列ＦG,tを取得する（ステップＳ３０２）。
【０１０９】
具体的には、基礎行列取得部１０２は、第Ｇフレームの画像と第ｔフレームの画像との間のオプティカルフローを形成する特徴点ｐｉの移動ベクトルのうち、複数の特徴点ｐｉの移動ベクトルの始点と終点の座標（例えば、同次座標）を対応点として用い、８ポイントアルゴリズムとＲＡＮＳＡＣ法により上述の式（２）で表される基礎行列Ｆの各パラメータを求める。
【０１１０】
ステップＳ３０２において基礎行列ＦG,tを取得した後、基礎行列取得部１０２は、値Ｇを１だけインクリメントし（ステップＳ３０３）、インクリメント後の値Ｇが値ｔに一致するか否かを判別する（ステップＳ３０４）。一致しないと判別された場合（ステップＳ３０４；ＮＯ）、処理はステップＳ３０２へ戻る。
【０１１１】
すなわち、基礎行列取得部１０２は、値Ｇを１ずつインクリメントしながら、インクリメント後の値Ｇが値ｔに一致すると判別されるまで（ステップＳ３０４においてＹＥＳと判別されるまで）、ステップＳ３０２〜Ｓ３０３の処理を繰り返す。これにより、指定部１０１によって指定された第ｔフレームの画像と、指定されたフレームの画像の直前１０フレーム分の画像それぞれと、の間のエピポーラ関係を表す基礎行列Ｆt-10,t〜Ｆt-1,tを取得する。
【０１１２】
インクリメント後の値Ｇが値ｔに一致すると判別した場合（ステップＳ３０４；ＹＥＳ）、基礎行列取得部１０２は、基礎行列取得処理を終了する。
【０１１３】
図８のフローチャートに戻って、ステップＳ３の基礎行列取得処理が終了した後、選別部１０３は、フレーム選別処理を実行する（ステップＳ４）。
【０１１４】
以下、ステップＳ４のフレーム選別処理の詳細について、図１２のフローチャートを参照しながら説明する。
【０１１５】
ステップＳ４のフレーム選別処理を開始すると、選別部１０３は、指定部１０１が指定したフレーム（第ｔフレーム）の１０フレーム前のフレーム（第（ｔ−１０）フレーム）を第Ｃフレームとして設定する（ステップＳ４０１）。
【０１１６】
次に、評価部１０８が、基礎行列取得処理によって取得された基礎行列のうち、第Ｃフレームの画像と第ｔフレームの画像と間の関係を表す基礎行列ＦC,tと、第ｔフレームの画像との関係を表す他の基礎行列ＦC+1,t〜Ｆt-1,tとの類似性を評価する（ステップＳ４０２）。
【０１１７】
具体的には図１３に示すように、評価部１０８は、第Ｃフレームの画像と第ｔフレームの画像との間の関係を表す基礎行列ＦC,tと、第ｔフレームより以前の１０フレームのうち第Ｃフレームより後に撮像された（ｔ−Ｃ−１）個の各フレームの画像と第ｔフレームの画像との間の関係を表す基礎行列ＦC+1,t〜Ｆt-1,tと、が類似しているか否かを順次判別していく。そして、基礎行列ＦC+1,t〜Ｆt-1,tの中に、基礎行列ＦC,tと類似しているものがあるか否かを評価する。評価部１０８による基礎行列の類似度の評価は、具体的には上述したように、異なる２つの基礎行列の間において、一方の基礎行列に含まれる各要素と、他方の基礎行列に含まれる各要素と、を比較することによって得られる。
【０１１８】
類似性の評価の結果、選別部１０３は、基礎行列ＦC,tと類似している基礎行列があるか否かを判別する（ステップＳ４０３）。判別の結果、基礎行列ＦC,tと類似している基礎行列がある場合（ステップＳ４０３；ＹＥＳ）、選別部１０３は、第Ｃフレームを、第ｔフレームの画像へのエピポーラ転送をスキップするフレームとして、ＲＡＭ等のメモリに一時的に保存する（ステップＳ４０４）。
【０１１９】
一方、基礎行列ＦC,tと類似している基礎行列がない場合（ステップＳ４０３；ＮＯ）、選別部１０３は、第Ｃフレームはスキップするフレームではないと判別する。そのため、ステップＳ４０４の処理を実行せず、第Ｃフレームをスキップするフレームとしては保存しない。
【０１２０】
このように第Ｃフレームをスキップするか否かを決定すると、選別部１０３は、値Ｃを１だけインクリメントする（ステップＳ４０５）。そして、インクリメント後の値Ｃが値（ｔ−１）に一致するか否かを判別する（ステップＳ４０６）。一致しないと判別した場合（ステップＳ４０６；ＮＯ）、処理はステップＳ４０２へ戻る。
【０１２１】
すなわち、選別部１０３は、値Ｃを１ずつインクリメントしながら、インクリメント後の値Ｃが値（ｔ−１）に達するまで、ステップＳ４０２〜Ｓ４０５の処理を繰り返す。これにより、図１３に示すように、第ｔフレームの直前の１０フレーム分それぞれについて、第Ｃフレームより後に撮像された各フレームの画像と第ｔフレームの画像との間の関係を表す基礎行列ＦC+1,t〜Ｆt-1,tと、が類似しているか否かを順次判別していく。そして、基礎行列ＦC+1,t〜Ｆt-1,tの中に基礎行列ＦC,tと類似しているものがある場合に、第Ｃフレームを、第ｔフレームの画像へのエピポーラ転送をスキップするフレームとして保存していく。
【０１２２】
最終的に、値Ｃが値（ｔ−１）に一致すると（ステップＳ４０６；ＹＥＳ）、第Ｃフレームが第（ｔ−１）フレームにまで達したため、基礎行列ＦC,tとの類似度を評価する基礎行列がなくなる。そのため、選別部１０３は、フレーム選別処理を終了する。
【０１２３】
図８のフローチャートに戻って、ステップＳ４のフレーム選別処理が終了した後、仮想特徴点生成部１０４は、仮想特徴点生成処理を実行する（ステップＳ５）。これにより、基礎行列取得処理によって取得された基礎行列Ｆに基づいて、ステップＳ１で指定部１０１によって指定されたフレーム（第ｔフレーム）より前の１０フレーム分の画像内の互いに対応する仮想特徴点ｖｉを第ｔフレームの画像にエピポーラ転送することにより、第ｔフレームの画像内における仮想特徴点ｖｉを生成する。
【０１２４】
以下、ステップＳ５の仮想特徴点生成処理の詳細について、図１４のフローチャートを参照しながら説明する。
【０１２５】
仮想特徴点生成処理においては、第ｔフレームより前の１０フレーム分の画像が含む仮想特徴点ｖｉが第ｔフレームへ投影するエピポーラ線を求める必要がある。しかし、手ぶれ補正処理の初期段階においては、エピポーラ線の投影元となるべき過去のフレームの画像に含まれる仮想特徴点ｖｉが未だ生成されていないことがある。そこで、仮想特徴点生成処理を開始すると、仮想特徴点生成部１０４は、まず、仮想特徴点軌道準備処理を実行する（ステップＳ５０１）。
【０１２６】
以下、ステップＳ５０１の仮想特徴点軌道準備処理の詳細について、図１５のフローチャートを参照しながら説明する。
【０１２７】
仮想特徴点軌道準備処理を開始すると、仮想特徴点生成部１０４は、まず、第ｔフレームより以前のフレームにおいて構築された仮想特徴点軌道ｖのうち何れか１つを選択する（ステップＳ５０１ａ）。
【０１２８】
そして、仮想特徴点生成部１０４は、選択した仮想特徴点軌道ｖが第（ｔ−１）フレームまで伸びているか否かを判別する（ステップＳ５０１ｂ）。すなわち、仮想特徴点生成部１０４は、選択した仮想特徴点軌道ｖが第（ｔ−１）フレームより前のフレームから、第（ｔ−１）フレームまで連続しているか否かを判別する。
【０１２９】
仮想特徴点軌道ｖが第（ｔ−１）フレームまで伸びていると判別した場合（ステップＳ５０１ｂ；ＹＥＳ）、仮想特徴点生成部１０４は、選択した仮想特徴点軌道ｖを仮想特徴点生成のための初期軌道として用いることができるので、処理はステップＳ５０１ｄへ移る。
【０１３０】
一方、仮想特徴点軌道ｖが第（ｔ−１）フレームまで伸びていないと判別された場合（ステップＳ５０１ｂ；ＮＯ）、仮想特徴点生成部１０４は、第ｔフレームの直前に撮像された５フレーム分の画像から取得された特徴点軌道ｐを仮想特徴点軌道ｖにコピーする（ステップＳ５０１ｃ）。すなわち、仮想特徴点生成部１０４は、第（ｔ−１）〜第（ｔ−５）フレームの画像から抽出済みの特徴点ｐｉを、これらの画像中の仮想特徴点ｖｉと見なし、仮想特徴点生成のための初期軌道を取得する。
【０１３１】
本実施形態では、１００個の仮想特徴点軌道ｖにより、手ぶれ補正前の撮像装置１の動きを定義する（手ぶれ補正前の各フレームの画像を定義する）。そこで、ステップＳ５０１ｄにおいて、仮想特徴点生成部１０４は、１００個の仮想特徴点軌道ｖに対してステップＳ５０１ｂ〜Ｓ５０１ｃの処理を施したか否か判別する（ステップＳ５０１ｄ）。１００個の仮想特徴点軌道ｖに処理を施していないと判別すると（ステップＳ５０１ｄ；ＮＯ）、処理はステップＳ５０１ａへ戻り、仮想特徴点生成部１０４は、別の仮想特徴点軌道ｖを選択してステップＳ５０１ｂ〜Ｓ５０１ｃの処理を実行する。
【０１３２】
最終的に、１００個の仮想特徴点軌道ｖに処理を施したと判別すると（ステップＳ５０１ｄ；ＹＥＳ）、仮想特徴点生成部１０４は、仮想特徴点軌道準備処理を終了する。
【０１３３】
図１４のフローチャートに戻って、ステップＳ５０１の仮想特徴点軌道準備処理を終了した後、仮想特徴点生成部１０４は、仮想特徴点軌道準備処理を施された１００個の仮想特徴点軌道ｖのうち何れか１つを選択する（ステップＳ５０２）。
【０１３４】
次に、仮想特徴点生成部１０４は、第（ｔ−１０）フレーム（第ｔフレームより１０フレーム前のフレーム）を第Ｈフレームとして設定し（ステップＳ５０３）、第Ｈフレームが、ステップＳ４におけるフレーム選別処理において、非スキップ対象と評価されたか否かを判別する（ステップＳ５０４）。
【０１３５】
第Ｈフレームの画像と第ｔフレームの画像との間の関係を表す基礎行列が、第Ｈフレームから第ｔフレームまでの他のフレームの画像と第ｔフレームの画像との関係を表す基礎行列の何れかに類似している場合、第Ｈフレームは、フレーム選別処理により、スキップ対象と評価されている。この場合、仮想特徴点生成部１０４は、第Ｈフレームを非スキップ対象と評価されていないと判別し（ステップＳ５０４；ＮＯ）、処理はステップＳ５０６へ移る。
【０１３６】
第Ｈフレームの画像と第ｔフレームの画像との間の関係を表す基礎行列が、第Ｈフレームから第ｔフレームまでの他のフレームの画像と第ｔフレームの画像との関係を表す基礎行列の何れにも類似していなかった場合、第Ｈフレームは、フレーム選別処理により、非スキップ対象と評価されている。この場合、仮想特徴点生成部１０４は、非スキップ対象と評価されていると判別する（ステップＳ５０４；ＹＥＳ）。そして、仮想特徴点生成部１０４は、ステップＳ３における基礎行列取得処理によって取得された、第ｔフレームの画像と第Ｈフレームの画像との間のエピポーラ関係を表す基礎行列Ｆｔ、Ｈに基づいて、選択した仮想特徴点軌道ｖに含まれる第Ｈフレームの画像の仮想特徴点ｖｉから、第ｔフレームの画像へ、エピポーラ線を投影する（ステップＳ５０５）。
【０１３７】
エピポーラ線を取得した後、仮想特徴点生成部１０４は、値Ｈを１だけインクリメントし（ステップＳ５０６）、インクリメント後の値Ｈが値ｔに一致するか否かを判別する（ステップＳ５０７）。一致しないと判別すると（ステップＳ５０７；ＮＯ）、処理はステップＳ５０４へ戻る。
【０１３８】
すなわち、仮想特徴点生成部１０４は、値Ｈを１ずつインクリメントしながら、インクリメント後の値Ｈが値ｔに一致すると判別されるまで（ステップＳ５０７においてＹＥＳと判別されるまで）、ステップＳ５０４〜Ｓ５０６の処理を繰り返す。これにより、第ｔフレームより前の１０フレームのうち非スキップ対象と判別された各フレームの画像に含まれる仮想特徴点ｖｉから第ｔフレームの画像へ、順次エピポーラ線を投影する。
【０１３９】
最終的に、インクリメント後の値Ｈが値ｔに一致すると判別した場合（ステップＳ５０７；ＹＥＳ）、仮想特徴点生成部１０４は、第ｔフレームの画像に投影した複数のエピポーラ線から任意の１組を選択する（ステップＳ５０８）。そして、選択した１組のエピポーラ線が互いに成す角度が１．５°以上であるか否かを判別する（ステップＳ５０９）。
【０１４０】
１組のエピポーラ線が平行に近いほど、これらのエピポーラ線が与える交点の信頼性は低い。そこで、仮想特徴点生成部１０４は、一定以上に大きな角度を成すエピポーラ線の組が与える交点の座標のみを取得することにより、信頼性の低い交点を排除する。
【０１４１】
具体的には、成す角度が１．５°未満であると判別すると（ステップＳ５０９；ＮＯ）、処理はステップＳ５１１へ移る。一方、成す角度が１．５°以上であると判別すると（ステップＳ５０９；ＹＥＳ）、仮想特徴点生成部１０４は、これらのエピポーラ線の交点の座標を取得し（ステップＳ５１０）、処理はステップＳ５１１へ移る。
【０１４２】
ステップＳ５１１において、仮想特徴点生成部１０４は、第ｔフレームの画像に投影した複数のエピポーラ線から選択可能な全ての組み合わせを選択したか否かを判別する（ステップＳ５１１）。選択されていない組み合わせがあると判別すると（ステップＳ５１１；ＮＯ）、処理はステップＳ５０８へ戻り、仮想特徴点生成部１０４は、未だ選択されていない組み合わせを選択して、同様の処理を実行する。
【０１４３】
選択可能な全ての組み合わせが選択されたと判別すると（ステップＳ５１１；ＹＥＳ）、仮想特徴点生成部１０４は、取得された全ての交点座標の平均値を求め、この平均値と、取得された全ての交点座標の中央値と、の間の距離が５画素より小さいか否か判別する（ステップＳ５１２）。
【０１４４】
具体的には、平均値と中央値との間の距離が５画素より小さいと判別すると（ステップＳ５１２；ＹＥＳ）、仮想特徴点生成部１０４は、平均値を第ｔフレーム中の仮想特徴点ｖｉの座標として取得し（ステップＳ５１３）、処理はステップＳ５１４へ移る。
【０１４５】
平均値が中央値から５画素以上離れていると判別すると（ステップＳ５１２；ＮＯ）、処理はステップＳ５１４へ移る。すなわち、交点座標の平均値が中央値から５画素以上離れている場合、トラッキングエラーである可能性が高い。そこで、中央値から５画素以上離れている平均値の取得をスキップすることにより、信頼性に欠ける交点を排除する。
【０１４６】
ステップＳ５１４において、仮想特徴点生成部１０４は、ステップＳ５０１の仮想特徴点軌道準備処理により処理された１００個の仮想特徴点軌道ｖ全てが選択されたか否かを判別する（ステップＳ５１４）。未だ選択されていない仮想特徴点軌道ｖがあると判別すると（ステップＳ５１４；ＮＯ）、処理はステップＳ５０２へ戻り、仮想特徴点生成部１０４は、未選択の仮想特徴点軌道ｖのうち何れか１個を選択して、同様の仮想特徴点生成処理を実行する。
【０１４７】
最終的に、全ての仮想特徴点軌道ｖが選択済みであると判別すると（ステップＳ５１４；ＹＥＳ）、仮想特徴点生成部１０４は、仮想特徴点生成処理を終了する。
【０１４８】
図８のフローチャートに戻って、ステップＳ５の仮想特徴点生成処理が終了した後、仮想特徴点軌道構築部１０５は、仮想特徴点生成処理によって生成された仮想特徴点ｖｉを、仮想特徴点軌道ｖを構成する点に追加することにより、仮想特徴点軌道ｖを延長する（ステップＳ６）。
【０１４９】
そして、仮想特徴点軌道構築部１０５は、指定部１０１が指定したフレーム（第ｔフレーム）が手ぶれ補正終了フレームであるか否かを判別する（ステップＳ７）。手ぶれ補正終了フレームは、手ぶれ補正対象の動画が含む複数のフレームのうち最後の（撮像時刻が最も新しい）フレームである。
【０１５０】
第ｔフレームが手ぶれ補正終了フレームではないと判別すると（ステップＳ７；ＮＯ）、仮想特徴点軌道構築部１０５は、指定部１０１に、直前に実行されたステップＳ２〜Ｓ６の処理において第ｔフレームとして設定されていたフレームの次の（次に撮像時刻が新しい）フレームを、新たな第ｔフレームとして設定させ（ステップＳ１３）、処理はステップＳ２へ戻る。
【０１５１】
すなわち、仮想特徴点軌道構築部１０５は、手ぶれ補正対象の動画が含む複数フレームの画像の中から指定部１０１が指定する画像を変えて、ステップＳ２〜Ｓ６の処理を繰り返す。これにより、仮想特徴点軌道構築部１０５は、仮想特徴点軌道ｖを構築する。
【０１５２】
第ｔフレームが手ぶれ補正終了フレームであると判別されると（ステップＳ７；ＹＥＳ）、平滑化部１０６が、構築された仮想特徴点軌道ｖをσ＝５０のガウシアンカーネルにより時間方向に平滑化し、平滑化された仮想特徴点軌道〜ｖを取得する（ステップＳ８）。
【０１５３】
そして、補正部１０７は、仮想特徴点軌道ｖと平滑化された仮想特徴点軌道〜ｖとの間の関係に基づいて、手ぶれ補正前の各フレームの画像と手ぶれ補正後の各フレームの画像との間のエピポーラ関係を表す基礎行列〜Ｆを取得する（ステップＳ９）。
【０１５４】
具体的には、補正部１０７は、仮想特徴点軌道ｖを形成する仮想特徴点ｖｉと、平滑化された仮想特徴点軌道〜ｖを形成する手ぶれ補正後の仮想特徴点〜ｖｉと、を対応点として用い、８ポイントアルゴリズムとＲＡＮＳＡＣ法により基礎行列〜Ｆを求める。
【０１５５】
そして、補正部１０７は、ステップＳ９で取得した基礎行列〜Ｆに基づいてエピポーラ転送を行うことにより、手ぶれ補正後の特徴点軌道〜ｐを取得する（ステップＳ１０）。
【０１５６】
具体的には、補正部１０７は、手ぶれ補正後の各フレームの画像に、手ぶれ補正前の前後５フレームの画像に含まれる特徴点ｐｉが投影するエピポーラ線を、基礎行列〜Ｆに基づいて取得する。そして、図６に示すように、エピポーラ線の交点により定まる点を、手ぶれ補正後の各フレームの画像が含む手ぶれ補正後の特徴点〜ｐｉとして取得する。手ぶれ補正後の特徴点軌道〜ｐは、手ぶれ補正後の特徴点〜ｐｉによって構成される軌道として取得される。
【０１５７】
補正部１０７は、取得された手ぶれ補正後の特徴点軌道〜ｐをσ＝６のガウシアンカーネルを用いて時間方向に平滑化することにより、高周波ジッタを除去する（ステップＳ１１）。
【０１５８】
補正部１０７は、手ぶれ補正対象の動画が含む各フレームの画像に対し、特徴点軌道ｐと手ぶれ補正後の特徴点軌道〜ｐとの間の関係に基づいて射影変換を実行することにより手ぶれを補正する（ステップＳ１２）。以上により、図８のフローチャートに示した手ぶれ補正処理を終了する。
【０１５９】
具体的には、補正部１０７は、特徴点軌道ｐを構成する特徴点ｐｉの座標と、手ぶれ補正後の特徴点軌道〜ｐを構成する手ぶれ補正後の特徴点〜ｐｉの座標と、を対応点として式（６）に代入することにより射影変換パラメータを求める。そして、手ぶれ補正対象の動画を構成する複数の画像それぞれを射影変換し、射影変換された複数の画像によって構成される動画を、手ぶれを補正した動画として生成する。
【０１６０】
以上説明したように、本実施形態に係る撮像装置１及び画像処理装置１００は、エピポーラ幾何を利用することにより、視差の影響を考慮した手ぶれ補正を動画に対して施すことができる。
【０１６１】
さらに、本実施形態に係る撮像装置１及び画像処理装置１００は、手ぶれ補正対象の動画を構成する各画像間の関係を表す基礎行列の類似度を評価して、評価結果に基づいてエピポーラ投影の計算を実行する画像を選別している。これにより、精度の良くないエピポーラ転送を行うフレームを事前に選別して、エピポーラ転送の計算をスキップできるため、計算量を削減できる。そのため、手ぶれ補正処理の時間短縮につながる。
【０１６２】
以上に本発明の実施形態について説明したが、これらの実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、本発明の実施形態は種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【０１６３】
上記実施形態において、画像処理装置１００は、撮像装置１の内部に具備されていた。しかし、本発明に係る画像処理装置は、撮像装置から独立した装置であってもよい。例えば、コンピュータ等の情報処理装置が、本発明に係る画像処理装置として機能することができる。この場合、画像処理装置は、外部の撮像装置が撮像した動画を手ぶれ補正対象の動画として取得し、上述の手ぶれ補正を施せばよい。
【０１６４】
上記実施形態において、画像処理装置１００は、撮像部１０が被写体を撮像することにより生成し外部記憶部２３に記憶されていた動画を、外部記憶部２３から手ぶれ補正の対象として取得した。撮像装置１は、外部記憶部２３からではなく、外部の画像入力装置（例えば、デジタルカメラやメモリカード、ネットワーク）から手ぶれ補正対象の動画を予め取得し、記憶しておいてもよい。
【０１６５】
上記実施形態では、ＫＬＴ法を用いて各フレームの画像から互いに対応する特徴点ｐｉを抽出した。しかし、本発明では、ＫＬＴ法以外の方法を用いて特徴点ｐｉを抽出してもよい。例えば、Ｈａｒｒｉｓオペレータ、ＳＵＳＡＮオペレータ、Ｆｏｅｒｓｔｎｅｒオペレータ、Ｓｏｊａｋオペレータ、ＳＩＦＴ等を用いることができる。
【０１６６】
上記実施形態では、仮想特徴点軌道ｖをガウシアンカーネルで平滑化することにより、平滑化された仮想特徴点軌道〜ｖを取得した。しかし、本発明では、平滑化は、ガウシアンカーネル以外の関数（例えば、ラプラシアンフィルタ）を用いて行ってもよい。
【０１６７】
上記実施形態では、手ぶれ補正対象の画像全体に対して一括して射影変換を施すことにより手ぶれ補正を実行した。しかし、本発明では、画像が含む複数の画像領域それぞれに射影変換を施し、射影変換後の画像領域を再結合することにより手ぶれ補正を施すこともできる。
【０１６８】
上記実施形態では、本発明に係る画像処理装置、撮像装置及び画像処理方法を、撮像装置１及び画像処理装置１００を例に用いて説明した。本発明に係る画像処理装置、撮像装置、及び画像処理方法は、コンピュータ、携帯電話機、デジタルカメラ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）等の任意の電子機器によって実現することができる。
【０１６９】
具体的には、コンピュータ、携帯電話機、デジタルカメラ、ＰＤＡ等を本発明に係る撮像装置及び画像処理装置として動作させるためのプログラムを、これらの電子機器が読み取り可能な記録媒体（例えば、メモリカードやＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）等）に格納して配布し、インストールすることにより本発明に係る撮像装置及び画像処理装置を実現することができる。
【０１７０】
あるいは、上記プログラムを、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置（例えば、ディスク装置等）に格納しておき、コンピュータ、携帯電話機、デジタルカメラ、ＰＤＡ等がこのプログラムをダウンロードすることによって本発明に係る撮像装置及び画像処理装置を実現してもよい。
【０１７１】
また、本発明に係る撮像装置及び画像処理装置の機能を、オペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とアプリケーションプログラムとの協働又は分担により実現する場合には、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【０１７２】
また、アプリケーションプログラムを搬送波に重畳し、通信ネットワークを介して配信してもよい。例えば、通信ネットワーク上の掲示板（ＢＢＳ：Ｂｕｌｌｅｔｉｎ  Ｂｏａｒｄ  Ｓｙｓｔｅｍ）にアプリケーションプログラムを掲示し、ネットワークを介してアプリケーションプログラムを配信してもよい。そして、このアプリケーションプログラムをコンピュータにインストールして起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、本発明に係る撮像装置及び画像処理装置を実現してもよい。
【０１７３】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願当初の特許請求の範囲に記載された発明を付記する。
【０１７４】
（付記１）
動画を構成する複数の画像の中から１つを指定する指定部と、
前記複数の画像のうちの前記指定部によって指定された画像以外の所定数の画像のそれぞれについて、該指定された画像との関係を表す基礎行列を取得する基礎行列取得部と、
前記基礎行列取得部によって前記所定数の画像のそれぞれについて取得された基礎行列に基づいて、前記所定数の画像の中から、前記指定された画像にエピポーラ投影するための画像を選別する選別部と、
前記基礎行列取得部によって取得された基礎行列のうち、前記選別部によって選別された画像について取得された基礎行列に基づいて、該選別された画像内の互いに対応する特徴点又は仮想特徴点を前記指定された画像にエピポーラ投影することにより、前記指定された画像内における仮想特徴点を生成する仮想特徴点生成部と、
前記複数の画像の中から前記指定部が指定する画像を変えて、前記指定部、前記基礎行列取得部、前記選別部、及び前記仮想特徴点生成部の処理を繰り返すことにより、仮想特徴点軌道を構築する仮想特徴点軌道構築部と、
前記仮想特徴点軌道構築部によって構築された仮想特徴点軌道を時間方向に平滑化する平滑化部と、
前記仮想特徴点軌道構築部によって構築された仮想特徴点軌道と、前記平滑化部によって平滑化された仮想特徴点軌道と、の間の関係に基づいて、前記複数の画像のそれぞれを補正する補正部と、
を備えることを特徴とする画像処理装置。
【０１７５】
（付記２）
前記基礎行列取得部によって前記所定数の画像のそれぞれについて取得された基礎行列の類似度を評価する評価部をさらに備え、
前記選別部は、前記評価部による評価結果に基づいて、前記所定数の画像の中から前記指定された画像にエピポーラ投影するための画像を選別する、
ことを特徴とする付記１に記載の画像処理装置。
【０１７６】
（付記３）
前記選別部は、前記評価部による評価の結果、前記所定数の画像の中に互いに類似している２以上の画像がある場合、該２以上の画像のうちのいずれか１つ以外の画像を、前記指定された画像にエピポーラ投影するための画像から除外する、
ことを特徴とする付記２に記載の画像処理装置。
【０１７７】
（付記４）
前記評価部は、異なる２つの基礎行列の間において、一方の基礎行列を正規化した行列に含まれる各要素と、他方の基礎行列を正規化した行列における対応する要素と、の差分をとった値がいずれも閾値以下である場合に、該２つの基礎行列が類似していると評価する、
ことを特徴とする付記２又は３に記載の画像処理装置。
【０１７８】
（付記５）
前記評価部は、異なる２つの基礎行列の間において、一方の基礎行列を正規化した行列に含まれる各要素と、他方の基礎行列を正規化した行列における対応する要素と、の差分の２乗和をとった値が閾値以下である場合に、該２つの基礎行列が類似していると評価する、
ことを特徴とする付記２又は３に記載の画像処理装置。
【０１７９】
（付記６）
付記１乃至５の何れか１つに記載の画像処理装置と、
被写体を撮像することにより、前記動画を構成する画像を生成する撮像部と、
を備えることを特徴とする撮像装置。
【０１８０】
（付記７）
動画を構成する複数の画像の中から１つを指定する指定処理と、
前記複数の画像のうちの前記指定処理によって指定された画像以外の所定数の画像のそれぞれについて、該指定された画像との関係を表す基礎行列を取得する基礎行列取得処理と、
前記基礎行列取得処理によって前記所定数の画像のそれぞれについて取得された基礎行列に基づいて、前記所定数の画像の中から、前記指定された画像にエピポーラ投影するための画像を選別する選別処理と、
前記基礎行列取得処理によって取得された基礎行列のうち、前記選別処理によって選別された画像について取得された基礎行列に基づいて、該選別された画像内の互いに対応する特徴点又は仮想特徴点を前記指定された画像にエピポーラ投影することにより、前記指定された画像内における仮想特徴点を生成する仮想特徴点生成処理と、
前記複数の画像の中から前記指定処理が指定する画像を変えて、前記指定処理、前記基礎行列取得処理、前記選別処理、及び前記仮想特徴点生成処理を繰り返すことにより、仮想特徴点軌道を構築する仮想特徴点軌道構築処理と、
前記仮想特徴点軌道構築処理によって構築された仮想特徴点軌道を時間方向に平滑化する平滑化処理と、
前記仮想特徴点軌道構築処理によって構築された仮想特徴点軌道と、前記平滑化部によって平滑化された仮想特徴点軌道と、の間の関係に基づいて、前記複数の画像のそれぞれを補正する補正処理と、
を含むことを特徴とする画像処理方法。
【０１８１】
（付記８）
コンピュータを、
動画を構成する複数の画像の中から１つを指定する指定部、
前記複数の画像のうちの前記指定部によって指定された画像以外の所定数の画像のそれぞれについて、該指定された画像との関係を表す基礎行列を取得する基礎行列取得部、
前記基礎行列取得部によって前記所定数の画像のそれぞれについて取得された基礎行列に基づいて、前記所定数の画像の中から、前記指定された画像にエピポーラ投影するための画像を選別する選別部、
前記基礎行列取得部によって取得された基礎行列のうち、前記選別部によって選別された画像について取得された基礎行列に基づいて、該選別された画像内の互いに対応する特徴点又は仮想特徴点を前記指定された画像にエピポーラ投影することにより、前記指定された画像内における仮想特徴点を生成する仮想特徴点生成部、
前記複数の画像の中から前記指定部が指定する画像を変えて、前記指定部、前記基礎行列取得部、前記選別部、及び前記仮想特徴点生成部の処理を繰り返すことにより、仮想特徴点軌道を構築する仮想特徴点軌道構築部、
前記仮想特徴点軌道構築部によって構築された仮想特徴点軌道を時間方向に平滑化する平滑化部、
前記仮想特徴点軌道構築部によって構築された仮想特徴点軌道と、前記平滑化部によって平滑化された仮想特徴点軌道と、の間の関係に基づいて、前記複数の画像のそれぞれを補正する補正部、
として機能させることを特徴とするプログラム。
【符号の説明】
【０１８２】
１…撮像装置、１０…撮像部、１１…光学レンズ、１２…イメージセンサ、２０…データ処理部、２１…主記憶部、２２…出力部、２３…外部記憶部、２４…ＣＰＵ、３０…ユーザインタフェース部、３１…表示部、３２…操作部、３３…外部インタフェース、１００…画像処理装置、１０１…指定部、１０２…基礎行列取得部、１０２ａ…オプティカルフロー取得部、１０３…選別部、１０４…仮想特徴点生成部、１０５…仮想特徴点軌道構築部、１０６…平滑化部、１０７…補正部、１０８…評価部
【図１】
0006421587.tif 000008
【図２】
0006421587.tif 000009
【図３】
0006421587.tif 000010
【図４】
0006421587.tif 000011
【図５】
0006421587.tif 000012
【図６】
0006421587.tif 000013
【図７】
0006421587.tif 000014
【図８】
0006421587.tif 000015
【図９】
0006421587.tif 000016
【図１０】
0006421587.tif 000017
【図１１】
0006421587.tif 000018
【図１２】
0006421587.tif 000019
【図１３】
0006421587.tif 000020
【図１４】
0006421587.tif 000021
【図１５】
0006421587.tif 000022