(57)【要約】 【課題】  動画データの画角が狭まるのを抑えつつ、ぶれが補正された動画データを得る。【解決手段】画像処理装置が、複数の時点で撮像された一続きの画像群である複数の画像を取得する画像取得手段と、前記複数の画像に含まれる、少なくとも１枚の画像のぶれを示すパラメータを取得するパラメータ取得手段と、前記取得されたパラメータに基づいて、画像の変形処理と画像の補間処理のうちの一方を選択する選択手段と、前記少なくとも１枚の画像について、前記選択された処理を行う補正手段とを備える。【選択図】  図６
2015079329.tif 000002
【特許請求の範囲】
【請求項１】
複数の時点で撮像された一続きの画像群である複数の画像を取得する画像取得手段と、
前記複数の画像に含まれる、少なくとも１枚の画像のぶれを示すパラメータを取得するパラメータ取得手段と、
前記取得されたパラメータに基づいて、画像の変形処理と画像の補間処理のうちの一方を選択する選択手段と、
前記少なくとも１枚の画像について、前記選択された処理を行う補正手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記パラメータ取得手段は、前記複数の画像のそれぞれについて前記パラメータを取得し、
前記選択手段は、前記複数の画像のそれぞれについて、前記変形処理と前記補間処理のうちの一方を選択することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記選択手段は、前記パラメータが所定の閾値より大きい場合は補間処理を、前記パラメータが所定の閾値よりも小さい場合は変形処理を選択することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記変形処理は、前記パラメータを用いて処理対象の画像を変形することで、前記ぶれが補正された画像を得る処理であることを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記補間処理は、処理対象の画像のぶれが補正された画像を、前記複数の画像に含まれる他の画像に基づいて生成する処理であることを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記補正手段は、前記選択された処理を前記選択された処理に対応する画像に行った後に、前記変形処理と前記補間処理のうちの選択されていない処理を前記選択された処理に対応する画像に行い、それぞれの処理の結果を合成することを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記複数の画像が撮像された時間を表わす時間軸上において、前記変形処理を行う区間と前記補間処理を行う区間とを判定する判定手段を更に備え、
前記補間処理は、前記補間処理を行う区間の外にある画像に基づいて、前記補間処理を行う区間に対応する画像を生成する処理であることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記補正手段は、前記補間処理を行う区間における理想的なカメラ位置に基づいて、前記補間処理を行う区間に対応する画像を生成することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記補間処理は、前記補間処理を行う区間の外にある画像を変形処理することで、前記補間処理を行う区間に対応する画像を生成する処理であることを特徴とする請求項６又は８に記載の画像処理装置。
【請求項１０】
前記複数の画像に含まれる動被写体を検出する検出手段を更に備え、
前記補正手段は、前記複数の画像において、前記動被写体が含まれる画像については、前記補間処理を行わないことを特徴とする請求項１乃至９のいずれか一項に記載の画像処理装置。
【請求項１１】
前記複数の画像に含まれる動被写体を検出する検出手段を更に備え、
前記補正手段は、前記補間処理が選択された画像に動被写体が含まれている場合、前記動被写体を含む画像領域と、前記動被写体を含まない画像領域のそれぞれに、異なる補間処理を行うことを特徴とする請求項１乃至９のいずれか一項に記載の画像処理装置。
【請求項１２】
前記複数の画像において、時間的に隣接する画像間の動き情報を各画像について取得する動き取得手段を更に備え、
前記パラメータ取得手段は、前記動き情報に基づいて前記パラメータを取得することを特徴とする請求項１乃至１１のいずれか一項に記載の画像処理装置。
【請求項１３】
前記各画像について取得された動き情報に基づいて、前記複数の画像を撮影した時のカメラ軌跡を取得する軌跡取得手段と、
前記取得されたカメラ軌跡に基づいて、前記複数の画像を撮影した時の理想カメラ軌跡を導出する導出手段と、を更に備え、
前記パラメータ取得手段は、前記軌跡取得手段によって取得されたカメラ軌跡と、前記導出手段によって導出された理想カメラ軌跡との差分に基づいて前記パラメータを取得することを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記パラメータは前記変形処理における画像のシフトの大きさを示すベクトルであることを特徴とする請求項１乃至１３のいずれか一項に記載の画像処理装置。
【請求項１５】
複数の時点で撮像された一続きの画像群である複数の画像を取得するステップと、
前記複数の画像のぶれを示すパラメータを、前記複数の画像のそれぞれについて取得するステップと、
前記複数の画像のそれぞれについて、前記パラメータに基づいてぶれ補正処理と画像の補間処理のうちの一方を選択するステップと、
前記複数の画像のそれぞれについて、前記選択された処理を行うステップとを有することを特徴とする画像処理方法。
【請求項１６】
コンピュータを請求項１乃至１４のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項１７】
複数の時点で撮像された一続きの画像群である複数の画像に含まれる、少なくとも１枚の画像のぶれを補正する画像処理装置であって、
前記少なくとも１枚の画像のぶれを示すパラメータを取得するパラメータ取得手段と、
前記パラメータに基づいて、前記少なくとも１枚の画像についてぶれ補正処理を行う補正手段とを備え、
前記補正手段は、前記パラメータが所定の閾値よりも大きい場合は画像の補間処理を行い、前記パラメータが前記所定の閾値よりも小さい場合は画像の変形処理を行うことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像のぶれ補正処理を行う技術に関する。
【背景技術】
【０００２】
近年、ビデオカメラに加え、デジタルカメラ、画像撮影機能を有する携帯電話などの撮像装置による動画撮影が一般的となってきた。その際、大きな課題となっているのが撮影した動画に生じる手ぶれへの対策である。
【０００３】
手ぶれによる動画像の揺れは、撮影者の意図的なカメラモーションによる動きよりも一般的に周波数の高い動きであることが知られている。そこで、特許文献１では、手ぶれの影響を除去した動画を生成する方法として次のような手法が提案されている。まず、動画データから求めた動画撮影中のカメラの動き（カメラ軌跡）にローパスフィルタをかけることで、手ぶれの影響を除去した理想的なカメラ軌跡を求める。そして、その理想的なカメラ軌跡に基づいて動画データ中の各フレームを変形することで、手ぶれが補正された動画データを得る。ここで、変形処理とは、補正対象の画像をぶれの大きさや方向に応じてシフトさせる処理などが含まれる。
【０００４】
また、特許文献１には、実際のカメラ軌跡と、ローパスフィルタをかけたカメラ軌跡との差分が大きい場合には、過補正をしないように補正量に上限を持たせることも記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２８５６５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
手ぶれによるカメラの動きが大きい場合、つまり、実際のカメラ軌跡と理想的なカメラ軌跡の差が大きい場合は、動画データの各フレームに強いぶれ補正をかける必要がある。
【０００７】
しかし、多くの場合、ぶれ補正された画像のうち、表示画角をはみ出した画像領域はカットして表示されるので、強いぶれ補正によって画像を大きく変形すると、表示される画像の画角が極端に狭くなってしまうという問題が発生する。
【０００８】
この場合、特許文献１に記載の技術のように、補正の強度を制限することで動画データの画角が狭まるのを抑えることができるが、それでは手ぶれが適切に補正された画像を得ることができない。
【０００９】
そこで、本発明は、画像データの画角が狭まるのを抑えつつ、適切にぶれ補正を行うことを目的としている。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の画像処理装置は、複数の時点で撮像された一続きの画像群である複数の画像を取得する画像取得手段と、前記複数の画像に含まれる、少なくとも１枚の画像のぶれを示すパラメータを取得するパラメータ取得手段と、前記取得されたパラメータに基づいて、画像の変形処理と画像の補間処理のうちの一方を選択する選択手段と、前記少なくとも１枚の画像について、前記選択された処理を行う補正手段とを備える。
【発明の効果】
【００１１】
本発明によれば、画像データの画角が狭まるのを抑えつつ、画像データのぶれ補正を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】実施例１における画像処理装置のハードウェア構成を示すブロック図。
【図２】実施例１における画像処理装置の処理ブロックを示すブロック図。
【図３】実施例１における画像処理装置の処理の流れを示すフローチャート。
【図４】フレームとカメラ軌跡の関係を示す図。
【図５】カメラ軌跡と理想カメラ軌跡の関係を示す図。
【図６】実施例１における動画補正処理の流れを示すフローチャート。
【図７】実施例１における補間処理と変形処理の選択を示す図。
【図８】実施例１における画像の変形処理を説明する図。
【図９】実施例２における動画補正処理の流れを示すフローチャート。
【図１０】実施例３における画像処理装置の処理の流れを示すフローチャート。
【図１１】実施例３における動画補正処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１３】
＜実施例１＞
本実施例では、ぶれ補正のための変形処理での補正量が大きい場合に、対象画像の他の画像を用いた補間処理によって、対象画像に対応する、ぶれ補正後の画像を生成する方法について説明する。
【００１４】
図１は、本実施例における画像処理装置１００のハードウェア構成を示す図である。画像処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、汎用インターフェース（Ｉ／Ｆ）１０４、モニタ１０８を備え、各構成部はメインバス１０９によって相互に接続されている。
【００１５】
ＣＰＵ１０１は、画像処理装置１００内の各部を統括的に制御するプロセッサである。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能するメモリである。また、ＨＤＤ１０３は、ＣＰＵ１０１によって実行されるプログラム群を格納しているメモリである。なお、ＨＤＤ１０３は、フラッシュメモリなどの他の記憶媒体に置き換えてもよい。
【００１６】
汎用インターフェース（Ｉ／Ｆ）１０４はＵＳＢコネクタを備えるインターフェースであり、撮像装置１０５や入力装置１０６、外部メモリ１０７が汎用Ｉ／Ｆ１０４を介してメインバス１０９に接続されている。
【００１７】
撮像装置１０５は動画撮影機能を備えたカメラであり、撮影した動画データを画像処理装置１００に対して出力する。
【００１８】
入力装置１０６は、マウス、キーボードなどの入力装置であり、ユーザは入力装置１０６を介して画像処理装置１００に対して指示を入力することができる。
【００１９】
外部メモリ１０７は、ＨＤＤやメモリカードなどの記録媒体であり、画像処理装置１００から出力されたデータを保存することができる。
【００２０】
モニタ１０８は画像処理装置１００に備えつけられた液晶ディスプレイであり、動画データやユーザインタフェースなどを表示することができる。
【００２１】
メインバス１０９は、画像処理装置１００内の各構成部を相互に接続するシステムバスである。
【００２２】
以下、本実施例の処理について、図２に示すブロック図と、図３に示すフローチャートを参照して説明する。なお、ＨＤＤ１０３には、図３のフローチャートに示すプログラムが格納されており、ＣＰＵ１０１がそのプログラムを実行することで、図２に示す各構成部の役割を果たす。もちろん、図２に示す各構成部の一部または全部の役割を果たす専用の処理回路などを設けてもよい。
【００２３】
まず、ステップＳ３０１では、入力端子２０１から入力された動画データを、対応点探索部２０２が読み込む。
【００２４】
次に、ステップＳ３０２では、対応点探索部２０２が、ステップＳ３０１で読み込んだ動画データの各フレームについて、特徴点を検出する。特徴点の検出には様々な手法があるが、本実施例ではＨａｒｒｉｓのコーナー検出法を用いる。Ｈａｒｒｉｓのコーナー検出法では、画素を移動した際の画素値の変化量に基づいて、コーナーや孤立点を特徴点として検出する。なお、特徴点の検出法としては、例えばＨｅｓｓｅ法やＳＩＦＴ法など、他の方法を用いてもよい。
【００２５】
次に、ステップＳ３０３では、対応点探索部２０２が、ステップＳ３０１で読み込んだ動画データ中の、隣接するフレーム間の対応関係を調べ、各フレームの動きベクトルを検出する。動画中のフレームＦｎにおいて、ある特徴点Ａｎの座標を（ｘｎ，ｙｎ）とし、その次のフレームＦｎ＋１において、Ａｎに対応する点Ａｎ＋１の座標を（ｘｎ＋１，ｙｎ＋１）とすると、特徴点Ａｎに対応する動きベクトルａｎは、以下の式で表わされる。
ａｎ＝（ｘｎ＋１−ｘｎ，ｙｎ＋１−ｙｎ）
【００２６】
対応点探索部２０２は、上記の式に基づいて各フレームについて全特徴点の動きベクトルを求め、動被写体検出部２０３およびカメラ軌跡導出部２０４に出力する。なお、ここで対応点探索の方法としてはｋ近傍探索法を用いるが、ＦＬＡＮＮ法など別の方法を用いて対応点探索を行ってもよい。
【００２７】
次に、ステップＳ３０４では、動被写体検出部２０３が、ステップＳ３０３で検出した動きベクトルを解析することで、各フレームに動被写体の像が含まれるかどうかを判定し、その結果をルックアップテーブルとしてＲＡＭ１０２に記録する。以下、その方法を説明する。
【００２８】
まず、動被写体検出部２０３は、各フレームを複数の画像領域に分割し、各画像領域内に存在する特徴点の動きベクトルを平均することで、画像領域ごとの動きベクトルを導出する。次に、動被写体検出部２０３は、画像領域ごとの動きベクトルの水平成分および垂直成分に基づいて動きベクトルのヒストグラム（度数分布）を作成する。フレーム内に動被写体の像が含まれる場合には、カメラの動きに起因するピークの他に、動被写体の動きに起因するピークがヒストグラム中に現れるので、作成したヒストグラムに複数のピークが含まれるか否かに基づいて、動被写体の有無を判定する。なお、本実施例においては、ヒストグラム中で、最大のピークの他に最大のピークの１０分の１以上の度数を持つピークが存在する場合に、動被写体が存在すると判定する。もちろん、判断の閾値はこれに限られず、別の判断基準を用いてもよい。また、赤外線センサなどで動被写体を検知するようにしてもよい。
【００２９】
次に、ステップＳ３０５では、カメラ軌跡導出部２０４が、ステップＳ３０３で検出した動きベクトルに基づいてカメラ軌跡を導出し、理想軌跡導出部２０５に出力する。カメラ軌跡は、動画の最初のフレームを原点とし、各フレームの動きベクトルに基づいて各フレーム撮影時のカメラの位置を求めることで、導出される。
【００３０】
本実施例において、各フレームに対応する代表動きベクトルは、ステップＳ３０３で検出した全ての特徴点の動きベクトルの平均によって求められる。その他の方法として、ステップＳ３０４と同様に動きベクトルのヒストグラムを作成し、その中で最大のピークに属する動きベクトルの平均を代表動きベクトルとしてもよい。
【００３１】
図４にカメラ軌跡の一例を示す。図中の白丸は各フレームに対応するカメラ位置を、実線がカメラ軌跡を示している。なお、同図の横軸は時間（フレーム）を示しており、縦軸は簡略化のために垂直方向のみのカメラ位置を示している。以後、カメラ軌跡を示す際は横軸を時間、縦軸を垂直方向のカメラ位置とする。
【００３２】
次に、ステップＳ３０６では、理想軌跡導出部２０５が、ステップＳ３０５で導出したカメラ軌跡から、手ぶれの影響を低減した理想的なカメラ軌跡を導出する。ステップＳ３０５で導出したカメラ軌跡は手ぶれによる影響で周波数の高い成分を多く含んでいるので、理想軌跡導出部２０５は、ステップＳ３０５で導出したカメラ軌跡にローパスフィルタをかけることで手ぶれによる動画データのぶれを除去する。図５に理想カメラ軌跡の一例を示す。図中の破線が、手ぶれの影響を除いた理想的なカメラ軌跡を示している。
【００３３】
次に、ステップＳ３０７では、動画データ補正部２０６が、ステップＳ３０５で導出したカメラ軌跡と、ステップＳ３０６で導出した理想カメラ軌跡との差分値に基づいて、動画データの各フレームを補正する。ここで行われる処理の詳細については後述する。
【００３４】
ステップＳ３０８では、動画データ補正部２０６が、出力端子２０７を介して、ステップＳ３０７で補正した動画データをメインバス１０９に出力する。
【００３５】
以上が画像処理装置１００で行われる処理である。次に、ステップＳ３０７で行われる、動画データ補正処理の詳細について説明する。
【００３６】
＜動画データ補正処理＞
図６は、動画データ補正部２０６における処理（ステップＳ３０７）の流れを示すフローチャートである。以下、図６を参照して説明する。
【００３７】
ステップＳ６０１では、動画データ補正部２０６が、ステップＳ３０１で読み込んだ動画データから補正対象のフレームを選択する。
【００３８】
次に、ステップＳ６０２では、動画データ補正部２０６が、選択したフレームを補正するための補正動きベクトルを導出する。補正動きベクトルは、ステップＳ３０５で導出されたカメラ軌跡と、ステップＳ３０６で導出された理想カメラ軌跡との差分によって決定される。つまり、実際に撮影を行ったカメラ位置から理想的なカメラ位置までカメラを移動させるようなベクトルが、補正動きベクトルとして導出される。
【００３９】
次に、ステップＳ６０３では、動画データ補正部２０６が、ステップＳ６０２で導出した補正ベクトルの大きさと予め設定した所定の閾値ｔｈとを比較する。補正動きベクトルの大きさが閾値ｔｈ以下であればステップＳ６０６へ進み、そうでなければステップＳ６０４へ進む。本実施例では、補正動きベクトルを用いて選択フレームを変形する際に、各画素の平均移動幅が選択フレームの画角の３０％となる補正動きベクトルの大きさが、閾値ｔｈの大きさとして設定されている。もちろん、閾値ｔｈの大きさはこれに限られず、あらかじめ設定された複数の閾値ｔｈの中からユーザが選択できるようにしたり、補正動きベクトルのノルムなどを用いて自動的に決定してもよい。
【００４０】
ステップＳ６０４では、動画データ補正部２０６が、ステップＳ３０４で作成したルックアップテーブルを参照して、選択フレームに動被写体が含まれるかどうかを判定する。動被写体が含まれていると判定された場合はステップＳ６０６へ進んでフレームの変形によるぶれ補正処理を行い、そうでなければステップＳ６０５へ進んで画像の補間処理を行う。
【００４１】
図７は、ステップＳ６０５で行う補間処理とステップＳ６０６で行う変形処理との切り替えを示す図である。同図中の点線で囲んだ楕円部分は、補正動きベクトルの大きさが閾値ｔｈを超えている区間を示しており、この区間内では補間処理によるぶれ補正が行われる。また、その他の区間では画像の変形処理によるぶれ補正が行われる。ただし、補間処理を行う区間内であっても、区間内のフレームに動被写体が含まれる場合、補間処理は行わず変形処理が行われる。
【００４２】
ステップＳ６０５では、動画データ補正部２０６が、選択フレームに対応する画像を、補間処理区間外のフレームを参照して補間することにより生成する。以下、その補間の方法について説明する。
【００４３】
ｔ＝１〜３におけるフレームＦ１〜Ｆ３が処理対象の画像（補間の対象）であるとした時、動画データ補正部２０６は、補間の対象区間外のフレームＦ０（ｔ＝０）またはＦ４（ｔ＝４）に変形処理を施すことで、Ｆ１〜Ｆ３に対応する画像を新たに生成する。ここで、この変形処理は、ステップＳ３０６で求められた理想カメラ軌跡に基づいて行われる。例えば、動画データ補正部２０６は、ｔ＝０における実際のカメラ位置と、ｔ＝１における理想カメラ位置との差分に基づいて、補間処理用の補正動きベクトルを新たに求める。そして、求められた補間処理用の補正動きベクトルに基づいてＦ０に変形処理を施し、新たなフレームＦ１を生成する。
【００４４】
なお、ここで行われる補間処理は上記の方法に限られない。例えば、補間処理区間外の２枚以上の画像に基づいて、画素値を線型補間してもよい。具体的には、Ｆ０における特徴点Ａの座標が（０、０）であり、Ｆ４における特徴点Ａの座標が（４，４）であった場合は、Ｆ１〜Ｆ３において特徴点Ａの座標が（１，１）、（２，２）、（３，３）になるように画素値の補間を行えばよい。
【００４５】
ステップＳ６０６では、動画データ補正部２０６が、ステップＳ６０２で導出した補正動きベクトルに基づいて、処理対象の画像（選択フレーム）を変形する。図７において、各フレームの点から理想カメラ軌跡の曲線へと延びる矢印が、それぞれ補正動きベクトルを示している。
【００４６】
選択フレームの変形処理としては、まず、動画データ補正部２０６が、補正動きベクトルに基づいて選択フレームをシフトさせる。その概要を図８に示す。画角８０１はシフト前の選択フレームの位置であり、モニタに表示される画角を示している。また、画像８０２はシフト後の選択フレームの位置を示している。シフト後の選択フレームにおいて、モニタに表示される画角８０１からはみ出した領域はカットされる。そして、フレームをシフトしたことによって画角８０１に生じた空隙領域は黒画素（Ｒ＝Ｇ＝Ｂ＝０）によって埋められ、画角８０１に収まる画像が、ぶれ補正後のフレームとして出力される。
【００４７】
ステップＳ６０７では、動画データ補正部２０６が、動画データ中の全てのフレームに対してステップＳ６０１〜Ｓ６０６の処理が完了したかどうかを判定する。完了していれば、ぶれ補正後のフレームとして出力された全てのフレームを統合してぶれ補正後の動画データを生成し、動画補正処理を終了する。全てのフレームに対してぶれ補正処理が終了していないと判定されて場合は、ステップＳ６０１に戻って新たなフレームの選択を行う。
【００４８】
以上が、ステップＳ３０７の処理の詳細である。以上の処理により、現実のカメラ軌跡と理想カメラ軌跡の差が大きい場合でも、画角を極端に狭めることなくぶれが補正された動画を得ることができる。
【００４９】
なお、本実施例においてぶれ補正の対象としたのは動画データであるが、ぶれ補正の対象は動画データに限られず、複数の時点で撮像された一続きの画像群であれば、連写撮影された複数の静止画データなどであってもよい。
【００５０】
また、ぶれ補正の対象とされるのは複数の画像データ中の一部であってもよく、例えば連写撮影された複数の静止画データの中で、ぶれが著しく大きい一枚だけを抜き出して処理を行うようにしてもよい。
【００５１】
また、変形処理により画像をシフトした場合、元の画角に収まる部分だけを残して、空隙領域を黒画素で埋めたものを補正後のフレームとして出力するとしたが、他の方法でぶれ補正後のフレームとして切り出す部分を決定してもよい。例えば、全てのフレームを考慮して、全てのフレームで空隙領域がフレーム内に含まれないように画像を切り出してもよい。また、その際に画角が最大となるように表示画角の中心位置を変更するようにしてもよい。
【００５２】
なお、本実施例において、汎用Ｉ／Ｆ１０４が、複数の時点で撮像された一続きの画像群である複数の画像を取得する画像取得手段として機能した。
【００５３】
また、図３のフローチャートに示すプログラムを実行したＣＰＵ１０１が、前記複数の画像に含まれる、少なくとも１枚の画像のぶれを示すパラメータを取得するパラメータ取得手段として機能した。
【００５４】
また、ＣＰＵ１０１は、前記取得されたパラメータに基づいて、画像の変形処理と画像の補間処理のうちの一方を選択する選択手段としても機能した。
【００５５】
また、ＣＰＵ１０１は、前記少なくとも１枚の画像について、前記選択された処理を行う補正手段としても機能した。
【００５６】
また、ＣＰＵ１０１は、前記複数の画像が撮像された時間を表わす時間軸上において、前記変形処理を行う区間と前記補間処理を行う区間とを判定する判定手段としても機能した。
【００５７】
また、ＣＰＵ１０１は、前記複数の画像に含まれる動被写体を検出する検出手段としても機能した。
【００５８】
また、ＣＰＵ１０１は、前記複数の画像において、時間的に隣接する画像間の動き情報を各画像について取得する動き取得手段としても機能した。
【００５９】
また、ＣＰＵ１０１は、前記各画像について取得された動き情報に基づいて、前記複数の画像を撮影した時のカメラ軌跡を取得する軌跡取得手段としても機能した。
【００６０】
また、ＣＰＵ１０１は、前記取得されたカメラ軌跡に基づいて、前記複数の画像を撮影した時の理想カメラ軌跡を導出する導出手段としても機能した。
【００６１】
＜実施例２＞
実施例１では、補正動きベクトルが閾値よりも大きい場合、画像の変形処理を行わずに補間処理によってぶれが補正された画像を生成する場合について説明した。
【００６２】
本実施例では、補正動きベクトルが閾値よりも大きい場合、まず選択フレームの変形処理を行い、表示画面の画角中の空隙領域に対応する領域の画像を、他の画像を用いた補間処理により生成する。
【００６３】
以下、本実施例における処理を、図９に示すフローチャートを参照して説明する。本実施例では、補正動きベクトルが閾値ｔｈよりも大きいと判定された場合の処理が異なる。ステップＳ６０３で、補正動きベクトルが閾値ｔｈよりも大きいと判定された場合ステップＳ９０１に進む。
【００６４】
ステップＳ９０１では、動画データ補正部２０６が、ステップＳ６０６と同様に、補正動きベクトルを用いた変形処理を選択フレームに対して行う。
【００６５】
次に、ステップＳ９０２では、動画データ補正部２０６が、ステップＳ６０５と同様に、選択フレームに対して補間処理を行う。
【００６６】
次に、ステップＳ９０３では、動画データ補正部２０６が、ステップＳ９０２で出力された画像に、ステップＳ９０１で出力された画像を上書き合成して、ぶれ補正後のフレームとして出力する。この時、動画データ補正部２０６は、２枚の合成画像の境目が自然になるように、２枚の画像の間で対応点を探索し、その対応点が重なるように上書き合成を行う。
【００６７】
以上の処理によれば、動被写体が含まれており、手ぶれが大きいフレームに対しても、画角を狭めずにぶれ補正を行うことができる。
【００６８】
＜実施例３＞
実施例１では、フレーム中に動被写体が存在する場合には、補間処理を行わずに変形処理のみを行う例について述べた。本実施例では、フレーム中に動被写体が存在する場合には、動被写体が存在する領域を抽出し、動被写体領域と静止被写体領域のそれぞれについて補間処理を行って、画像合成を行う例について述べる。
【００６９】
以下、本実施例の画像処理装置１００において行われる処理について、図１０に示すフローチャートを参照して説明する。図３と同様の符号が付されているステップについては、実施例１と同様のステップなので、説明を省略する。
【００７０】
ステップＳ１００１では、動被写体検出部２０３が、フレーム中の動被写体の有無だけではなく、フレーム中で動被写体に対応する画像領域を示す情報を、ＲＡＭ１０２に記録する。フレーム中で動被写体に対応する画像領域としては、動きベクトルのヒストグラムにおいて、動被写体のピークとして検出された動きベクトルに対応する画像領域が、動被写体に対応する画像領域として抽出される。
【００７１】
ステップＳ１００２では、カメラ軌跡導出部２０４が、カメラ軌跡だけではなく、ステップＳ１００１で検出された動被写体領域に対応する動きベクトルに基づいて、動被写体の動きを示す動被写体軌跡も導出する。ここで、動被写体軌跡は、動被写体領域に対応する動きベクトルで求めた軌跡から、同様に求められたカメラ軌跡を引き、動被写体が検出された最初のフレームが原点に来るように軌跡を補正することで、動被写体の動きだけが抽出された軌跡が求められる。
【００７２】
以下、実施例１と同様に理想軌跡導出部２０５が理想カメラ軌跡の導出を行い、ステップＳ１００４に進む。
【００７３】
ステップＳ１００４の詳細について図１１に示すフローチャートを参照して説明する。
【００７４】
ステップＳ１００４の処理は基本的には実施例１のステップＳ３０７と同様であるが、本実施例では、実施例１のステップＳ６０４で、選択フレーム内に動被写体が存在すると判定された場合の処理が異なる。ステップＳ６０４で選択フレーム内に動被写体が存在すると判定された場合、ステップＳ１１０１に進む。
【００７５】
ステップＳ１１０１では、動画データ補正部２０６が、ＲＡＭ１０２に記録された、動被写体に対応する画像領域を示す情報を読み出す。
【００７６】
次にステップＳ１１０２では、動画データ補正部２０６が、Ｓ１１０１で抽出された動被写体に対応する画像領域を選択フレームから抜き出し、ステップＳ１００２で求められた動被写体軌跡に基づいて、補間処理を行う。また、動画データ補正部２０６は、補正動きベクトルの大きさが閾値以下であるフレームのうち、動被写体が含まれていない直近のフレームに基づいて、選択フレームに対応する補間画像を生成する。なお、補間処理の方法は実施例１と同様である。
【００７７】
そして、ステップＳ１１０３において、動画データ補正部２０６は、ステップＳ１１０２で生成された、動被写体領域に対応する画像を、同じくステップＳ１１０２で生成された、動被写体を含まない画像に上書き合成する。これにより生成された画像を、ぶれ補正後の画像として出力する。
【００７８】
以上の処理によれば、動被写体が含まれており、手ぶれが大きいフレームに対しても、画角を狭めずにぶれ補正を行うことができる。
【００７９】
＜その他の実施形態＞
上記の実施例では、撮影時のカメラ軌跡を、画像から求めた動きベクトルに基づいて導出したが、ジャイロセンサーなどの外部装置を用いて導出してもよい。
【００８０】
また、上記の実施例では、フレーム内の全ての動きベクトルの平均を代表動きベクトルとしたが、画像内の静止被写体に対応する動きベクトルだけの平均を代表動きベクトルとしてもよい。例えば、そのように代表動きベクトルを決定すれば、実施例２の形態において動被写体が含まれている場合のぶれ補正の精度がより向上する。
【００８１】
また、補正動きベクトルを求める際に、カメラ軌跡と理想カメラ軌跡の差分だけに基づいて決定しなくてもよい。例えば、ＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  Ｆｒｏｍ  Ｍｏｔｉｏｎ）の技術を複数のフレームに適用して被写体空間の三次元情報を求め、被写体の距離に応じて被写体ごとに補正動きベクトルを求めてもよい。この技術を用いればより精度の高いぶれ補正処理が可能になる。
【００８２】
また、ぶれ補正に用いられるパラメータは補正動きベクトルに限られず、例えば、動きベクトルの値から大まかなぶれ情報を「縦ぶれ・大」のように決定し、それぞれのぶれ情報に対応する補正量をルックアップテーブルから読み出すようにしてもよい。
【００８３】
また、理想カメラ軌跡は実際のカメラ軌跡にローパスフィルタをかけたものに限られず、軌跡を平滑化するフィルタをかけたりしてもよい。また、あらかじめ計画しておいたカメラ軌跡を登録しておき、それを理想カメラ軌跡として用いてもよい。
【００８４】
また、上記の実施例では、動画データの先頭フレームを基準にしてカメラ軌跡を導出したが、本発明はこれに限定されない。例えば、シーンチェンジを検出し、各シーンの先頭フレームを基準にして複数のカメラ軌跡を導出してもよい。
【００８５】
さらに、本実施形態では、動きベクトルを、時間的に隣接する画像間の動き情報に基づいて導出したが、本発明はそれに限定されず、前後複数の画像間の動き情報に基づいて動きベクトルを導出してもよい。
【００８６】
なお、本発明は例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。また、複数の機器から構成されるシステムに適用してもよいし、一つの機器からなる装置に適用してもよい。
【００８７】
また、本発明はソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００８８】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては例えば、ハードディスク、光ディスク、光磁気ディスクが挙げられる。また、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などであってもよい。
【００８９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記憶媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【符号の説明】
【００９０】
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＨＤＤ
１０５  撮像装置
２０６  動画データ補正部
【図１】
2015079329.tif 000003
【図２】
2015079329.tif 000004
【図３】
2015079329.tif 000005
【図４】
2015079329.tif 000006
【図５】
2015079329.tif 000007
【図６】
2015079329.tif 000008
【図７】
2015079329.tif 000009
【図８】
2015079329.tif 000010
【図９】
2015079329.tif 000011
【図１０】
2015079329.tif 000012
【図１１】
2015079329.tif 000013