(57)【特許請求の範囲】
【請求項１】
第１の動画が撮影された際の撮影軌跡を前記第１の動画から推定する軌跡推定手段と、
前記推定された撮影軌跡の軌跡変動を補正する軌跡補正手段と、
前記補正された撮影軌跡に対応した第２の動画を、前記第１の動画から生成する生成手段と、
前記軌跡補正手段による補正の開始の前に、前記第１の動画の最初のフレームから、少なくとも一つの基準点を設定する設定手段と、を有し、
前記軌跡補正手段は、前記第１の動画の撮影軌跡から高周波成分を低減し、かつ前記第２の動画を構成するフレーム画像における前記基準点の位置が、前記フレーム画像の所定の範囲内に存在するように前記撮影軌跡を補正することを特徴とする画像処理装置。
【請求項２】
前記設定手段は、少なくとも消失点を、前記基準点として設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記設定手段は、前記基準点が所定の範囲外となる場合、前記基準点を前記第１の動画から再設定することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記設定手段は、
前記基準点と基準点候補とを設定し、
前記撮影軌跡の変動量が所定の閾値以上である場合には、前記基準点候補を前記基準点として再設定することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記軌跡補正手段は、前記撮影軌跡の長さを短くするように前記撮影軌跡の補正を行うことを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記軌跡補正手段は、前記第１の動画が撮影された際のカメラ位置姿勢の変動を補正するように前記撮影軌跡の補正を行うことを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記軌跡補正手段は、前記第１の動画が撮影された際の撮影軌跡と前記補正された撮影軌跡との差分を少なくするように前記補正された撮影軌跡をさらに補正することを特徴とする請求項５に記載の画像処理装置。
【請求項８】
前記生成手段は、前記第１の動画よりも短時間の前記第２の動画を生成することを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
第１の動画が撮影された際の撮影軌跡を前記第１の動画から推定する軌跡推定工程と、
前記軌跡推定工程による補正の開始前に、前記第１の動画の最初のフレームから、少なくとも一つの基準点を設定する設定工程と、
前記推定された撮影軌跡の軌跡変動を補正する軌跡補正工程と、
前記補正された撮影軌跡に対応した第２の動画を、前記第１の動画から生成する生成工程と、を含み、
前記軌跡補正工程では、前記第１の動画の撮影軌跡から高周波成分を低減し、かつ前記第２の動画を構成するフレーム画像における前記基準点の位置が、前記フレーム画像の所定の範囲内に存在するように前記撮影軌跡を補正することを特徴とする画像処理装置の画像処理方法。
【請求項１０】
コンピュータを、請求項１乃至８の何れか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影された画像を処理する画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
手振れなどによる撮影動画の変動を電子的に安定化させる技術として、従来から、撮影動画から撮影軌跡を推定して、その推定された撮影軌跡の軌跡変動が低減するように補正を行い、その補正後の撮影軌跡に対応した動画を生成する技術が提案されている。以下、補正後の撮影軌跡に対応して生成された動画を「安定化動画」と表記する。例えば、特許文献１には、撮影軌跡を折れ線に近似し、撮影情報に応じて、折れ線の傾きを調整する技術が開示されている。
【０００３】
また、通常、安定化動画の再生速度は撮影動画の再生速度と同じであるが、撮影動画の再生速度に対してＮ倍速（Ｎは整数）の安定化動画を生成することで、撮影された長時間の動画を短時間のダイジェスト動画として楽しむ、といったことも盛んに行われている。以下、撮影動画の再生速度に対してＮ倍速となされた安定化動画を「Ｎ倍速安定化動画」と表記する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−５１０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の特許文献１に開示された従来技術では、撮影動画には被写体等が映っていたのに、補正された撮影軌跡に対応した安定化動画では、例えば空や地面だけで、被写体等が何も映っていないフレームが発生してしまうことがある。このようなことは、撮影軌跡の変動を低減させることを優先して撮影軌跡を補正し、その補正後の撮影軌跡を基に、撮影動画のフレーム画像から画像領域を切り出して安定化動画のフレーム画像を形成しているために起こると考えられる。
【０００６】
本発明は、撮影軌跡の変動が低減された動画を生成する際に、被写体等が何も映っていないフレーム画像が生成されてしまう状態になり難くすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、第１の動画が撮影された際の撮影軌跡を第１の動画から推定する軌跡推定手段と、推定された撮影軌跡の軌跡変動を補正する軌跡補正手段と、補正された撮影軌跡に対応した第２の動画を、第１の動画から生成する生成手段と、軌跡補正手段による補正の開始の前に、第１の動画の最初のフレームから、少なくとも一つの基準点を設定する設定手段と、を有し、軌跡補正手段は、第１の動画の撮影軌跡から高周波成分を低減し、かつ第２の動画を構成するフレーム画像における前記基準点の位置が、フレーム画像の所定の範囲内に存在するように前記撮影軌跡を補正することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、撮影軌跡の変動が低減された動画を生成する際に、被写体等が何も映っていないフレーム画像が生成されてしまう状態になり難くすることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施形態の画像処理装置の概略構成を示す図である。
【図２】カメラ軌跡推定部の概略構成を示す図である。
【図３】第１の実施形態のカメラ軌跡補正部の概略構成を示す図である。
【図４】画像処理装置の全体の動作を示すフローチャートである。
【図５】カメラ軌跡推定部及びカメラ軌跡補正部の動作の説明図である。
【図６】カメラ軌跡補正の際の基準点と中心点の説明図である。
【図７】カメラ軌跡推定部の動作を示すフローチャートである。
【図８】変動量算出の説明図である。
【図９】第１の実施形態のカメラ軌跡補正部の動作を示すフローチャートである。
【図１０】撮影軌跡と撮影軌跡の変動補正の説明図である。
【図１１】第２の実施形態のカメラ軌跡補正部の概略構成を示す図である。
【図１２】第２の実施形態のカメラ軌跡補正部の動作を示すフローチャートである。
【図１３】カメラ軌跡補正の際の基準点と基準点候補の説明図である。
【図１４】第３の実施形態のカメラ軌跡補正部の概略構成を示す図である。
【図１５】第３の実施形態のカメラ軌跡補正部の動作を示すフローチャートである。
【図１６】カメラ軌跡補正の際の水平線と中心点の説明図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の一実施形態について説明する。
＜第１の実施形態＞
図１は第１の実施形態の画像処理装置１００の概略構成を示す図である。本実施形態の画像処理装置１００は、撮影動画から撮影軌跡を推定し、その推定された撮影軌跡に対し、手振れなどによる軌跡変動が低減するように補正を行い、その補正後の撮影軌跡に対応した安定化動画を生成する機能を有している。さらに、本実施形態の画像処理装置１００は、撮影軌跡の変動が低減された安定化動画を生成する際に、被写体等が何も映っていないフレーム画像が生成されてしまう状態になり難くする機能を有している。
【００１１】
図１に示した本実施形態の画像処理装置１００は、画像入力部１０１と、画像メモリ１０２と、カメラ軌跡推定部１０３と、カメラ軌跡補正部１０４と、出力画像生成部１０５とを有する。
画像入力部１０１には動画や静止画等のデータが入力される。画像入力部１０１は、動画等を撮像する撮像装置（カメラ）であってもよいし、外部の撮像装置により撮像された撮影動画等が供給される入力インターフェイスであってもよい。本実施形態では、画像入力部１０１により撮影動画が入力される場合を例に挙げて説明する。画像メモリ１０２は、画像入力部１０１より入力された撮影動画の１フレーム又は複数のフレームの画像データを、一時的に記憶保持する。
【００１２】
カメラ軌跡推定部１０３は、画像入力部１０１より入力された画像と、画像メモリ１０２に記憶保持された画像とを使用して、動画の撮影がなされた際の撮影軌跡であるカメラ軌跡を推定する。カメラ軌跡補正部１０４は、カメラ軌跡推定部１０３により推定されたカメラ軌跡の変動を低減させるように補正することにより、安定化したカメラ軌跡を生成する。カメラ軌跡推定部１０３、カメラ軌跡補正部１０４の構成及び動作の詳細は後述する。
【００１３】
出力画像生成部１０５は、画像メモリ１０２に記憶されている撮影動画から、カメラ軌跡補正部１０４での補正により安定化されたカメラ軌跡に応じた画像領域を読み出して動画を再構成するレンダリング処理により、安定化動画を生成する。カメラ軌跡の変動補正、及びその変動補正後のカメラ軌跡に応じた動画の再構成では、撮影動画の再生速度に対してＮ倍速となるＮ倍速安定化動画、つまり撮影動画より短時間のＮ倍速安定化動画を生成することも可能となされている。Ｎ倍速安定化動画は、一例として、変動補正後のカメラ軌跡に応じて動画を再構成する際に、撮影動画を構成する各フレーム画像から所定時間間隔毎にフレーム画像を間引くなどの公知の方法により生成される。出力画像生成部１０５の構成及び動作の詳細は後述する。
【００１４】
図２は、図１の画像処理装置１００のカメラ軌跡推定部１０３の概略構成を示す図である。カメラ軌跡推定部１０３は、画像マッチング部１０３１と、変動量算出部１０３２と、変動量累積部１０３３とを有する。
画像マッチング部１０３１は、撮影動画の現フレーム画像（フレーム番号ｎ）と次フレーム画像（フレーム番号ｎ＋１）とのマッチング処理を行う。ここで、画像マッチング部１０３１には、画像メモリ１０２から読み出されたフレーム画像と、画像入力部１０１から供給されたフレーム画像とが入力される。本実施形態では、画像メモリ１０２から読み出されるフレーム画像は、画像入力部１０１から入力されるフレーム画像の１フレーム前の画像であるとする。したがって、画像メモリ１０２から読み出されたフレーム画像がフレーム番号ｎの現フレーム画像である場合、画像入力部１０１から入力されるフレーム画像がフレーム番号ｎ＋１の次フレーム画像となる。マッチング処理の詳細は後述する。
【００１５】
変動量算出部１０３２は、画像マッチング部１０３１によるマッチング処理の結果に基づいて、現フレーム画像と次フレーム画像の画像間の変動量を算出する。変動量の算出処理の詳細は後述する。変動量累積部１０３３は、変動量算出部１０３２によって算出された画像間の変動量を累積することにより、カメラ軌跡を算出する。カメラ軌跡の算出処理の詳細は後述する。
【００１６】
図３は、図１の画像処理装置１００のカメラ軌跡補正部１０４の概略構成を示す図である。カメラ軌跡補正部１０４は、基準点設定部１０４１と、パスプランニング部１０４２とを有する。
基準点設定部１０４１は、撮影動画の最初のフレーム画像（フレーム番号０とする。）上で基準点を設定する。基準点の設定処理の詳細は後述する。パスプランニング部１０４２は、基準点設定部１０４１によって設定された基準点に基づいて、カメラ軌跡推定部１０３にて推定されたカメラ軌跡を補正する。カメラ軌跡の補正処理の詳細は後述する。
【００１７】
図４は、本実施形態の画像処理装置１００における処理の流れを示すフローチャートである。図４のフローチャートに示した処理は、ハードウェア構成により実現されてもよいし、本実施形態に係る画像処理プログラムをＣＰＵ等で実行することにより実現されてもよい。この画像処理プログラムは、ＲＯＭ等に予め用意されていてもよく、ＨＤＤ等の記録媒体から読み出されてもよく、インターネット等のネットワークを介してダウンロードされてＲＡＭ等にロードされてもよい。以下の説明では、フローチャートの各処理のステップＳ４０１〜ステップＳ４０４をＳ４０１〜Ｓ４０４と略記する。これらのことは、これ以降の各フローチャートにおいても同様とする。
【００１８】
図４のフローチャートの処理は、一例として、ユーザが画像処理装置１００に対して安定化動画（Ｎ倍速安定化動画も含む）の生成指示を行ったことでスタートする。図４のフローチャートの処理がスタートすると、先ずＳ４０１として、画像入力部１０１により撮影動画のデータが入力される。画像入力部１０１により入力された撮影動画のデータは、画像メモリ１０２に一時的に記憶される。Ｓ４０１の後、画像処理装置１００の処理は、カメラ軌跡推定部１０３により行われるＳ４０２の処理に進む。
【００１９】
Ｓ４０２では、カメラ軌跡推定部１０３は、Ｓ４０１で入力された画像と、画像メモリ１０２に記憶保持されている画像とを使用して、カメラ軌跡推定を行う。具体的には、カメラ軌跡推定部１０３は、時間軸上で隣接した現フレーム画像（フレーム番号ｎ）と次フレーム画像（フレーム番号ｎ＋１）のマッチング処理を行って画像間の動き量を求め、それら画像間の画像変動量を検出する。
【００２０】
図５（ａ）は、カメラ軌跡推定部１０３がフレーム毎に検出した画像変動量ａｘを、フレーム番号順に時系列に並べた図であり、縦軸が画像変動量、横軸がフレーム番号（実際にはフレーム画像の撮影時刻）を示している。図５（ａ）のフレーム毎の画像変動量ａｘは、それぞれ１本の矢印で表現されているが、この１本の矢印で三次元空間のｘ軸、ｙ軸、ｚ軸方向の３方向の成分を持っている。カメラ軌跡推定部１０３は、図５（ａ）に示した各フレームの画像変動量ａｘを時間方向に累積して、図５（ｂ）に示すような累積画像変動量を求める。この累積画像変動量は、各フレーム画像が撮像されたときのカメラ軌跡ｖに相当する。カメラ軌跡推定部１０３は、累積画像変動量（入力カメラ軌跡ｖ）の情報をカメラ軌跡補正部１０４に出力する。Ｓ４０２の後、画像処理装置１００の処理は、カメラ軌跡補正部１０４により行われるＳ４０３の処理に進む。
【００２１】
Ｓ４０３では、カメラ軌跡補正部１０４は、Ｓ４０２で推定されたカメラ軌跡の変動を補正する。具体的には、カメラ軌跡補正部１０４は、図５（ｂ）に示した入力カメラ軌跡ｖに対し、１フレーム毎の変化が滑らかになるように安定化フィルタ処理を施して、図５（ｃ）に示すような補正カメラ軌跡Ｖを生成する。カメラ軌跡補正部１０４により生成された補正カメラ軌跡Ｖの情報は、出力画像生成部１０５に送られる。Ｓ４０３の後、画像処理装置１００の処理は、出力画像生成部１０５により行われるＳ４０４の処理に進む。
【００２２】
Ｓ４０４では、出力画像生成部１０５は、ステップＳ４０３において補正されたカメラ軌跡を基に、安定化動画を生成する。具体的には、出力画像生成部１０５は、入力された動画のフレーム毎に、図５（ｃ）の補正カメラ軌跡Ｖに応じた画角領域の画像を、そのフレーム画像内から読み出し、その読み出された画像を安定化動画のフレーム画像とするようなレンダリング処理を行う。
【００２３】
図６（ａ）〜図６（ｄ）は、出力画像生成部１０５が安定化動画を生成する様子の説明に用いる図である。図６（ｄ）において、入力カメラ位置姿勢９０７は動画撮影がなされた際のカメラ軌跡から推定されるカメラ位置姿勢を表しており、補正カメラ位置姿勢９０６は補正されたカメラ軌跡から推定されるカメラ位置姿勢を表している。図６（ａ）の画像９２０は撮影動画の入力フレーム画像例であり、図６（ｃ）の画像９２２は図６（ａ）の入力フレーム画像９２０を補正カメラ位置姿勢９０６に合わせて変形させた変形フレーム画像例である。
【００２４】
出力画像生成部１０５は、先ず、図６（ａ）の入力フレーム画像９２０を、補正カメラ位置姿勢９０６に応じて変形させて、図６（ｃ）の変形フレーム画像９２２を作成する。具体的には、出力画像生成部１０５は、入力カメラ位置姿勢９０７と補正カメラ位置姿勢９０６の二つのカメラ位置姿勢間の回転変換行列と平行移動ベクトルを計算する。さらに、出力画像生成部１０５は、回転変換行列と平行移動ベクトルを基に、図６（ａ）の入力フレーム画像９２０に対して回転処理と並行移動処理を行うことで、図６（ｃ）の変形フレーム画像９２２を作成する。
【００２５】
次に、出力画像生成部１０５は、図６（ｃ）の変形フレーム画像９２２から、補正カメラ位置姿勢９０６に応じた画角領域を切り出すようにして出力画像９０４を抽出する。このように補正カメラ位置姿勢９０６に応じて変形フレーム画像９２２から切り出された出力画像９０４は、補正カメラ軌跡に対応した画像である。なお、図６（ａ）〜図６（ｄ）の未説明箇所については後述する。
【００２６】
画像処理装置１００は、撮影画像から安定化動画の生成が完了するか、又は、例えばユーザから終了の指示が入力されるまで、図４のフローチャートの処理を続ける。安定化動画の生成が完了した場合、又は、ユーザ等から終了指示が入力されると、画像処理装置１００は、図４のフローチャートの処理を終了する。
【００２７】
図７は、図２のカメラ軌跡推定部１０３が図４のＳ４０２で行うカメラ軌跡推定処理の詳細な処理の流れを示すフローチャートである。
図７のＳ５０１において、カメラ軌跡推定部１０３の画像マッチング部１０３１は、撮影動画の現フレーム画像（フレーム番号ｎ）と次フレーム画像（フレーム番号ｎ＋１）とのマッチング処理を行う。図８（ａ）は現フレーム画像６２１（フレーム番号ｎ）の一例を示す図であり、図８（ｂ）は次フレーム画像６２２（フレーム番号ｎ＋１）の一例を示す図である。また、図８（ｃ）はマッチング処理の結果を説明する図である。マッチング処理は、例えばＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ Ｆｅａｔｕｒｅ Ｔｒａｎｓｆｏｒｍ）法やＫＬＴ（Ｋａｎａｄｅ−Ｌｕｃａｓ−Ｔｏｍａｓｉ）法などを用いて行う。ＳＩＦＴ法では、現フレーム画像と次フレーム画像の特徴点をそれぞれ算出して、それら算出した特徴点を用いた対応探索が行われる。ＫＬＴ法では、現フレーム画像で特徴点を算出し、その算出した特徴点を、続くフレーム画像内で追跡する特徴点追跡が行われる。マッチング処理の方法は、ＳＩＦＴ法やＫＬＴ法などに限定されず、マッチング処理を行うことができるのであれば他の手法を用いてもよい。
【００２８】
図８（ａ）の図中丸印で示された位置６０１、６０２、６０３は現フレーム画像６２１の中にある特徴点の各位置を示し、図８（ｂ）の図中丸印で示された位置６０４、６０５、６０６は次フレーム画像６２２の中にある特徴点の各位置を示している。図８（ｃ）は、図８（ａ）の現フレーム画像６２１内の各位置６０１〜６０３の特徴点と、図８（ｂ）の次フレーム画像６２２の各位置６０４〜、６０６の特徴点のうち、それぞれ対応する特徴点間を線６０７、６０８、６０９で示している。例えば線６０７は、現フレーム画像６２１の位置６０１の特徴点と、次フレーム画像６２２の位置６０４の特徴点とが、対応した特徴点（以下、対応点と表記する。）となされていることを表している。画像マッチング部１０３１は、マッチング処理の結果として、図８（ｃ）の線６０７、６０８、６０９で示されるような、現フレーム画像６２１と次フレーム画像６２２のなかで、それぞれ特徴点が対応している点（対応点）を算出する。
【００２９】
なお、図８（ａ）〜図８（ｃ）では、現フレーム画像６２１と次フレーム画像６２２との間で対応点の組の数が３組のみとなされた例を挙げているが、対応点の組の数はこの例に限定されるものではない。ただし、詳細は後述するが、本実施形態の場合、後述するように算出する基礎行列Ｆのパラメータの数が８個となされているため、対応点の組の数は好ましくは８組以上ある方がよい。対応点の組数が８組以上あれば、基礎行列Ｆのパラメータを精度よく算出可能となる。
【００３０】
また例えば、対応点が多数ある場合には、それら対応点のうち、特徴量やマッチングの精度が高い特徴点の対応点のみを用いるようにすれば、後に行われるカメラ位置姿勢の算出精度を向上させることが可能となる。多数の対応点のなかから特徴量やマッチングの精度が高い対応点を選ぶ処理は、一例として、マッチング処理の際に求められる相関値や特徴量が、予め決めた所定の閾値よりも高い特徴点の対応点を選ぶような処理を用いることができる。Ｓ５０１の後、カメラ軌跡推定部１０３の処理は、変動量算出部１０３２にて行われるＳ５０２の処理に進む。
【００３１】
Ｓ５０２では、変動量算出部１０３２は、Ｓ５０１において求められたマッチング処理の結果を基に、現フレーム画像と次フレーム画像の画像間の変動量を算出する。図８（ｄ）は、いわゆるＳｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎを用いたカメラ位置姿勢推定の方法の説明に用いる図である。前述したマッチング処理の際の二つのフレーム画像の間で対応している特徴点（対応点）は、二つの視点から見た三次元的な同一点であると考えられる。二つの視点を、図８（ｄ）に示すようにカメラ中心Ｃ１、Ｃ２で表した場合、同一点は、三次元座標点Ｘで表される。そして、カメラ中心Ｃ１から見た三次元座標点Ｘは、カメラ中心Ｃ１に対応したフレーム６３１上に投影した場合には点ｘ１となる。同様に、カメラ中心Ｃ２から見た三次元座標点Ｘは、カメラ中心Ｃ２に対応したフレーム６３２上に投影した場合には点ｘ２となる。
【００３２】
ここで、カメラ中心Ｃ１に対応したカメラの内部パラメータ行列をＰ1、カメラ中心Ｃ２に対応したカメラの内部パラメータ行列をＰ2とすると、内部パラメータ行列Ｐ1は式（１）、内部パラメータ行列Ｐ2は下記の式（２）で表される。
【００３３】
【数１】
0006736362.tif 000002
【００３４】
なお、式（１）、式（２）において、原点を基準としたときの座標軸はカメラ中心Ｃ１に合わせており、Ｉは単位行列、Ｋは内部キャリブレーション行列、Ｒはカメラ中心Ｃ２の位置でのカメラの向きを表わす回転変換行列、Ｔは三次元の平行移動ベクトルである。本実施形態では、カメラ中心Ｃ１、Ｃ２のカメラは同じであるため、内部キャリブレーション行列Ｋは同じものである。
【００３５】
ここで、カメラ中心Ｃ１、Ｃ２におけるカメラの相対的な位置関係は回転変換行列Ｒと三次元の平行移動ベクトルＴにより表され、カメラの特性は内部キャリブレーション行列Ｋにより表される。また、回転変換行列Ｒと、三次元の並行移動ベクトルＴと、内部カリブレーション行列Ｋと、点ｘ１及びｘ２には、幾何学的な制約が生じる。このため、前述したカメラの内部パラメータ行列Ｐ1、Ｐ2を用いると、三次元座標点Ｘを画像上の点ｘ１、ｘ２に射影する条件を導き出すことができ、これは下記の式（３）の方程式を満たす必要がある。
【００３６】
【数２】
0006736362.tif 000003
【００３７】
なお、式（３）はエピポーラ制約の式であり、このエピポーラ制約中の行列Ｆは基礎行列と呼ばれる。この基礎行列Ｆは、２つのカメラ中心Ｃ１、Ｃ２間の回転及び平行移動量を表わす式であり、式（３）は点ｘ１を点ｘ２に変換する式である。また、式（４）は、基礎行列Ｆを、回転変換行列Ｒと三次元の平行移動ベクトルＴと内部キャリブレーション行列Ｋと交代行列Ｓtで表わした式である。式（４）の交代行列Ｓtは三次元の平行移動ベクトルＴで表わされる交代行列である。
【００３８】
したがって、Ｓ５０１で求めた２フレーム間の対応点群の情報を用いて、式（３）を解くと、基礎行列Ｆが求められる。基礎行列Ｆを求める方法は、例えば８組の対応点を用いた８点法、ＳＶＤ（特異値分解）を用いた最小二乗法などがあり、何れの方法を用いてもよい。そして、この基礎行列Ｆを求めたのちに、式（４）を用いてカメラの内部パラメータ行列を復元することで、２つのフレーム間での回転変換行列Ｒと平行移動ベクトルＴを求めることができる。前述の図５（ａ）は、算出した変動量のうち平行移動ベクトルＴの変動量を時系列（フレーム番号順）に並べたものである。Ｓ５０２の後、カメラ軌跡推定部１０３の処理は、変動量累積部１０３３にて行われるＳ５０３の処理に進む。
【００３９】
Ｓ５０３では、変動量累積部１０３３は、Ｓ５０２において算出された変動量を時間方向に累積してカメラ軌跡を推定する。前述したように図５（ａ）のフレーム毎の画像変動量ａｘを時間方向に累積することで、図５（ｂ）に示したような入力カメラ軌跡ｖが推定される。ここで、平行移動ベクトルＴの変動量を時間方向に累積するとカメラ軌跡の位置変化を推定することができ、回転変換行列Ｒの変動量を時間方向に累積することでカメラ軌跡におけるカメラ方向の変化を推定することができる。なお、カメラ方向とは、カメラの光軸方向を表している。Ｓ５０３の変動量累積処理が完了すると、カメラ軌跡推定部１０３は、図７のフローチャートの処理を終了する。
【００４０】
図９は、図３のカメラ軌跡補正部１０４が図４のＳ４０３で行うカメラ軌跡補正処理の詳細な処理の流れを示すフローチャートである。
図９のＳ８０１において、カメラ軌跡補正部１０４の基準点設定部１０４１は、撮影動画の最初のフレーム画像（フレーム番号０）内に基準点を設定する。基準点は、例えば、いわゆる消失点や、画像特徴点のような画像情報を基に設定されてもよいし、例えばディスプレイ画面の表示画像上でユーザが指定した任意の点に応じて設定されてもよい。なお、消失点とは、例えば遠近法や透視図法などにおいて、平行な直線群が奥行き方向に延びることで最終的に交わる無限遠の点である。すなわち、安定化動画の出力画像において被写体や消失点等が消えないように基準点を設定することができるのであれば、どのような手法で基準点が設定されてもよい。前述の図６（ａ）では、入力フレーム画像９２０内に基準点９０１が設定された例が示されている。本実施形態における基準点の設定は、ユーザにより設定される場合だけでなく、撮影動画の画像信号を基に算出等されて推定されて自動的に設定される場合も含む。Ｓ８０１の後、カメラ軌跡補正部１０４の処理は、パスプランニング部１０４２にて行われるＳ８０２の処理に進む。
【００４１】
Ｓ８０２では、パスプランニング部１０４２は、Ｓ８０１にて設定された基準点を基に、Ｓ４０２にて推定されたカメラ軌跡の変動を補正する。パスプランニング部１０４２により行われるパスプランニング処理は、下記式（５）〜式（１０）により表すことができる。
【００４２】
【数３】
0006736362.tif 000004
【００４３】
これら式（５）〜式（１０）において、ｐ（ｔ）は時刻tにおけるカメラ軌跡の補正後のカメラ位置、ｆ（ｔ）は時刻tにおけるカメラ軌跡の補正後のカメラ方向を表す。また、ｐinは動画撮影の際のカメラ位置（以下、入力カメラ位置とする。）のうち、時刻tにおける補正後のカメラ位置ｐ（ｔ）に一番近い位置にある入力カメラ位置、ｃは補正カメラ軌跡に対応した画像（以下、出力画像とする。）内の座標（０，０）で表されるカメラ中心点である。ｐｔ（ｔ）は時刻tにおける出力画像内の基準点（位置）であり、ｐｃ（ｔ）は時刻ｔにおける基準点ｐｔ（ｔ）がカメラ中心点ｃに重なる場合のカメラ位置である。
【００４４】
ここで、式（５）は、補正後のカメラ軌跡の長さを調整する式である。例えば、動画撮影がなされた際のカメラ軌跡が、図５（ｂ）と同様の図１０（ａ）で表される入力カメラ軌跡ｖである場合、式（５）により補正後のカメラ軌跡の長さを調整することで、図１０（ｂ）のように長さを調整した補正カメラ軌跡Ｖが生成される。式（５）のｐ（ｔ）'はカメラ軌跡の長さが調整される際のカメラ位置である。図１０（ｂ）は、動画撮影がなされた際の入力カメラ軌跡ｖを、式（５）により、長さが短くなるように調整した後の補正カメラ軌跡Ｖの例を示す図である。式（６）は、補正カメラ軌跡Ｖにおけるカメラ位置姿勢の１フレーム毎の変化が滑らかになるように調整する式である。図１０（ｃ）は、式（６）により、補正カメラ軌跡Ｖの１フレーム毎の変化を、式（６）により滑らかになるように調整した例を示す図である。式（６）のｐ（ｔ）"とｆ（ｔ）"は変化が滑らかになるように調整される際のカメラ位置とカメラ方向である。式（７）は、入力カメラ軌跡ｖにおける入力カメラ位置と、補正カメラ軌跡Ｖにおける補正カメラ位置との差分を調整する式である。図１０（ｄ）は、式（７）により、補正カメラ軌跡Ｖに対し、入力カメラ軌跡との差分が少なくなるように調整した例を示す図である。更に、式（８）は出力画像内の基準点と中心点の差分を調整する式であり、式（９）は式（８）を変換したカメラ位置を表す式であり、式（１０）は式（５）〜式（７）及び式（９）により表されるパスプランニングの式である。
【００４５】
以下、式（８）について、図６（ａ）〜図６（ｃ）を用いて説明する。
前述したようにＳ８０１において、基準点設定部１０４１により、図６（ａ）のように入力フレーム画像９２０に対して基準点９０１（基準点ｐｔ（ｔ））が設定されたとする。ここで、図６（ｂ）は、図６（ａ）の入力フレーム画像９２０を補正カメラ位置ｐ（ｔ）に対応して変形させた変形フレーム画像９２１の例を示している。また、図６（ｂ）の変形フレーム画像９２１において、出力画像９０３は、補正カメラ位置ｐ（ｔ）を基に切り出される画角領域の画像であるとする。図６（ｂ）では、この出力画像９０３の中心点９０２（中心点ｃ）と基準点９０１（基準点ｐｔ（ｔ））とに、位置の差がある状態を表している。
【００４６】
パスプランニング部１０４２は、式（８）により、図６（ｃ）のように、中心点９０２（中心点ｃ）と基準点９０１（基準点ｐｔ（ｔ））の差分を少なくした出力画像９０４を生成する。本実施形態では、それらの差分が０（ゼロ）のときの補正カメラ位置が前述のカメラ位置ｐｃ（ｔ）となされる。図６（ｃ）の出力画像９０３及び図６（ｄ）の出力画像９０４は、実際にはＳ４０４の処理により出力される画像である。そして、パスプランニング部１０４２は、式（８）を式（９）に変換してカメラ位置の式とする。
【００４７】
以下、式（９）について図６（ｄ）を用いて説明する。
図６（ｄ）において、基準点９０１は基準点ｐｔ（ｔ）、中心点９０２は中心点ｃ、出力画像９０３は補正カメラ位置ｐ（ｔ）を基に切り出される画角領域の画像、出力画像９０４は補正カメラ位置ｐｃ（ｔ）を基に切り出される画角領域の画像である。また、補正カメラ位置９０５は補正カメラ位置ｐ（ｔ）、補正カメラ位置９０６は補正カメラ位置ｐｃ（ｔ）、入力カメラ位置９０７は入力カメラ位置ｐinである。さらに、位置９０８は基準点９０１（基準点ｐｔ（ｔ））の空間上での位置、位置９０９は出力画像９０３の中心点９０２（中心点ｃ）の空間上での位置である。出力画像９０４は補正カメラ位置９０３（補正カメラ位置ｐｃ（ｔ））を基に切り出される画角領域の画像であり、基準点ｐ（ｔ）がカメラ中心点ｃに重なる場合の画像である。式（９）は補正カメラ位置９０５（補正カメラ位置ｐ（ｔ））を、補正カメラ位置９０６（補正カメラ位置ｐｃ（ｔ））に近づける項になる。
【００４８】
パスプランニング部１０４２は、前述した式（５）〜式（７），式（９）により表される式（１０）を最小とする補正カメラ位置ｐ（ｔ）と補正後のカメラ方向ｆ（ｔ）を、時系列（フレーム番号順）に累積する。これにより、図５（ｃ）に示すように補正カメラ軌跡Ｖが生成される。本実施形態では、基準点ｐｔ（ｔ）に近づける点として、前述した中心点ｃを挙げて説明したが、基準点ｐｔ（ｔ）に近づける点は中心点ｃでなくてもよく、任意に設定できる。また、式（１０）は式中のλによって各項の重みを変更する式となっている。例えばλ2の値を大きくし、λ3の値を小さくすると、図１０（ｃ）に示すように、補正カメラ軌跡Ｖが図１０（ａ）の入力カメラ軌跡ｖから離れたカメラ軌跡になっても、１フレーム毎の変化を滑らかすることが優先される。Ｓ８０２の後、パスプランニング部１０４２は、Ｓ８０３に処理を進める。
【００４９】
Ｓ８０３では、パスプランニング部１０４２は、処理フレームが最終フレームか否かを判定し、最終フレームであると判定した場合（Ｙｅｓ）は、図９のフローチャートの処理を終了する。一方、パスプランニング部１０４２は、Ｓ８０３において、最終フレームでないと判定した場合（Ｎｏ）は、Ｓ８０４に処理を進める。
【００５０】
Ｓ８０４では、パスプランニング部１０４２は、Ｓ８０１又はＳ８０５で基準点を設定してからＳ４０２において求めた累積変動量が予め決めた所定の閾値以上であるか否か判定する。パスプランニング部１０４２は、Ｓ８０４において、累積変動量が閾値以上でない（閾値未満である）と判定した場合（Ｎｏ）はＳ８０２に処理を戻し、次のフレームの処理を行う。一方、Ｓ８０４において、累積変動量が閾値以上であると判定された場合（Ｙｅｓ）、カメラ軌跡補正部１０４の処理は、図３の基準点設定部１０４１で行われるＳ８０５の処理に進む。
【００５１】
Ｓ８０５では、基準点設定部１０４１は、現フレームで基準点を設定し直す。Ｓ８０５の後、カメラ軌跡補正部１０４の処理は、パスプランニング部１０４２で行われるＳ８０２に処理を戻す。これにより、パスプランニング部１０４２では、Ｓ８０５で再設定された基準点を用いて前述したＳ８０２移行の処理が行われる。
【００５２】
以上説明したような処理を行うことにより、第１の実施形態の画像処理装置１００においては、基準点の周辺の画像領域が、フレーム画像内に収まるようになされた安定化動画が生成される。そして、本実施形態において、基準点は、消失点やユーザ指定の任意の点、画像特徴点等を基に設定される。このため、本実施形態によれば、撮影軌跡の変動が低減された安定化動画（Ｎ倍速安定化動画も含む）を生成する際に、例えば空や地面だけ映っていて被写体等が何も映っていないフレーム画像が生成されてしまう状態になり難い。
【００５３】
＜第２の実施形態＞
以下、第２の実施形態の画像処理装置１００について説明する。第２の実施形態の画像処理装置１００において、前述した第１の実施形態の画像処理装置１００と同一の構成及び処理については、それらの説明を省略する。
図１１は、第２の実施形態の画像処理装置１００におけるカメラ軌跡補正部１０４の概略構成を示す図である。図１１において、前述した図３と同じ構成については、それぞれ同一の参照符号を付して、それらの説明は省略する。第２の実施形態の場合、カメラ軌跡補正部１０４は、図３の基準点設定部１０４１の代わりに、基準・候補点設定部１０４３を有している。また、図１２は、第２の実施形態のカメラ軌跡補正部１０４において、図４のＳ４０３で行うカメラ軌跡補正処理の流れを示すフローチャートである。図１２において、前述した図９と同じ処理ステップについてはそれぞれ同一の参照符号を付して、それらの説明は省略する。第２の実施形態の場合、カメラ軌跡補正部１０４は、図９のＳ８０１の処理に代えてＳ１２０１の処理を行い、また、図９のＳ８０５の処理に代えてＳ１２０２の処理を行う。
【００５４】
図１１の基準・候補点設定部１０４３は、図１２のＳ１２０１において、撮影動画の最初のフレーム画像（フレーム番号０）上で基準点と基準点候補を設定する。基準点と基準点候補は、前述の第１の実施形態で説明した基準点と同様にして設定され、共に１点以上設定される。図１３（ａ）はフレーム番号０の入力フレーム画像１３２１の例を示す図である。基準・候補点設定部１０４３は、図１３（ａ）に示すように、フレーム番号０の入力フレーム画像１３２１上に、例えば基準点１３０１と基準点候補１３０２を設定する。Ｓ１２０１の後、カメラ軌跡補正部１０４の処理は、前述したＳ８０２以降の処理に進む。
【００５５】
また第２の実施形態のカメラ軌跡補正部１０４は、前述のＳ８０４において累積変動量が閾値以上であると判定された場合、基準・候補点設定部１０４３で行われるＳ１２０２に処理を進める。なお、図１３（ａ）の図中点線で囲う範囲１３０３は、累積変動量が閾値未満となる範囲（以下、累積変動量範囲１３０３と表記する。）を表している。Ｓ１２０２では、基準・候補点設定部１０４３は、現フレームについて基準点と基準点候補をそれぞれ設定し直した後、Ｓ８０２に処理を戻す。このとき基準・候補点設定部１０４３は、再度設定する基準点を、再設定前にＳ１２０１で設定された基準点候補の中から選択する。
【００５６】
図１３（ｂ）は、累積変動量が閾値以上でない（閾値未満であった）場合の入力フレーム画像１３２２の例を示しており、図１３（ａ）で設定した基準点１３０１が累積変動量範囲１３０３の範囲内にある例を表している。この場合、基準・候補点設定部１０４３は、基準点の再設定を行わない。一方、図１３（ｃ）は、累積変動量が閾値以上であった場合の入力フレーム画像１３２３の例を示しており、図１３（ａ）で設定した基準点１３０１が累積変動量範囲１３０３の範囲外となる例を表している。この場合、基準・候補点設定部１０４３は、例えば基準点候補１３０２を基準点１３１１として再設定し、さらに新たな基準点候補１３０４を再設定する。
【００５７】
以上説明したように、第２の実施形態の画像処理装置１００では、累積変動量が所定の閾値以上であった場合、基準点と基準点候補が再設定される。また、再設定される基準点は再設定前の基準点候補の中から選ばれるため、基準点の切り替えはスムーズに行われる。第２の実施形態によれば、カメラ軌跡の変動量が一定以上の大きな変動量であった場合でも、再設定した基準点の周辺の画像領域を、フレーム画像内に収まるようにした安定化動画の生成が可能となる。これにより、第２の実施形態によれば、第１の実施形態に比べ、より安定した安定化動画（Ｎ倍速安定化動画も含む）の生成が可能となり、またその際に、被写体等が何も映っていないフレーム画像が生成されてしまう状態になり難い。
【００５８】
＜第３の実施形態＞
以下、第３の実施形態の画像処理装置１００について説明する。第３の実施形態の画像処理装置１００において、前述した第１の実施形態の画像処理装置１００と同一の構成及び処理については、それらの説明を省略する。
図１４は、第３の実施形態の画像処理装置１００におけるカメラ軌跡補正部１０４の概略構成を示す図である。図１３において、前述した図３と同じ構成については、それぞれ同一の参照符号を付して、それらの説明は省略する。第３の実施形態の場合、カメラ軌跡補正部１０４は、図３の基準点設定部１０４１の代わりに、消失点推定部１０４４と水平線推定部１０４５を有し、また、前述したパスプランニング部１０４２に加えて、パスプランニング部１０４６を更に有している。なお、以下の説明では、パスプランニング部１０４２を第１のパスプランニング部１０４２、パスプランニング部１０４６を第２のパスプランニング部１０４６と表記する。また、図１５は、第３の実施形態のカメラ軌跡補正部１０４において、図４のＳ４０３で行うカメラ軌跡補正処理の流れを示すフローチャートである。図１５において、前述した図９と同じ処理ステップについてはそれぞれ同一の参照符号を付して、それらの説明は省略する。
【００５９】
図１５のフローチャートのＳ１５０１において、図１４の消失点推定部１０４４は、最初のフレーム画像（フレーム番号０）上から消失点を推定する。具体的には、消失点推定部１０４４は、例えば画像からハフ変換により直線を推定し、その直線の交点を消失点候補とし、その消失点候補の中から消失点を推定する。Ｓ１５０１の後、消失点推定部１０４４は、Ｓ１５０２に処理を進める。
【００６０】
Ｓ１５０２では、消失点推定部１０４４は、Ｓ１５０１で推定した消失点が２点以上あるか否かの判定を行う。Ｓ１５０２において、推定した消失点が２点以上無い（１点以下である）と判定された場合（Ｎｏ）、カメラ軌跡補正部１０４の処理は、第１のパスプランニング部１０４２にて行われる８０２の処理に進む。Ｓ８０２の処理は前述の第１の実施形態で説明したのと同様の処理である。Ｓ８０２の後、第１のパスプランニング部１０４２は、Ｓ８０３に処理を進める。Ｓ８０３の処理は前述の第１の実施形態で説明したのと同様の処理である。一方、Ｓ１５０２において、推定した消失点が２点以上あると判定された場合（Ｙｅｓ）、カメラ軌跡補正部１０４の処理は、水平線推定部１０４５にて行われるＳ１５０３の処理に進む。
【００６１】
Ｓ１５０３では、水平線推定部１０４５は、Ｓ１５０１で推定された２点以上の消失点を使用して、最初のフレーム画像（フレーム番号０）上から水平線を推定する。具体的には、水平線推定部１０４５は、推定された２点の消失点を含む線分を水平線とする。図１６（ａ）は、入力フレーム画像１６２０内に消失点１６０１と消失点１６０２が存在している例を示している。水平線推定部１０４５は、それら二つの消失点１６０１と消失点１６０２とを含む線分を水平線１６０３として推定する。Ｓ１５０３の後、カメラ軌跡補正部１０４の処理は、第２のパスプランニング部１０４６にて行われるＳ１５０４の処理に進む。
【００６２】
Ｓ１５０４では、第２のパスプランニング部１０４６は、前述の図４のＳ４０２によって推定されたカメラ軌跡の変動を、Ｓ１５０３にて推定された水平線を使用して補正する。第２のパスプランニング部１０４６にて行われるパスプランニング処理は、前述した式（５）〜式（７）と、下記式（１１）〜式（１３）により表される。
【００６３】
【数４】
0006736362.tif 000005
【００６４】
なお、式（１１）〜式（１３）において、ｈｌ（ｔ）は時刻ｔでの出力画像内における推定された水平線の式を表し、ｈ（ｃ）は中心点ｃを通る傾き０の直線の式、ａは水平線の傾きを表す。図１６（ｂ）と図１６（ｃ）は、式（７）を表す。図１６（ｂ）は水平線１６０３（水平線ｈｌ（ｔ））の傾きを０に補正した画像１６２１を示し、図１６（ｃ）は水平線１６０３を、中心点１６０４（中心点ｃ）を通る傾き０の直線ｈ（ｃ）に近づけた画像１６２２の例を示している。
【００６５】
そして、式（１１）を変換した式（１２）が、カメラ位置姿勢の式となされる。なお、式（１３）のＥhorizonは式（１２）の値が用いられる。ｆｃ（ｔ）は時刻ｔにおいて水平線ｈｌ（ｔ）が直線ｈ（ｃ）に重なるときのカメラ姿勢である。第２のパスプランニング部１０４６は、式（１３）を最小とする補正カメラ位置ｐ（ｔ）と補正後のカメラ方向ｆ（ｔ）を、時系列（フレーム番号順）に累積することで、前述の図５（ｃ）に示すような補正カメラ軌跡Ｖを生成する。第３の実施形態では、水平線ｈｌ（ｔ）を近づける直線として、出力画像の中心点ｃを通る直線を挙げて説明したが、水平線ｈｌ（ｔ）を近づける直線を通る点は中心点でなくてもよく、任意に設定可能である。Ｓ１５０４の後、第２のパスプランニング部１０４６の処理は、Ｓ８０３に進む。
【００６６】
第３の実施形態の場合、Ｓ８０３の処理は、Ｓ８０２からＳ８０３へ進んだ場合には第１のパスプランニング部１０４２により行われ、Ｓ１５０４からＳ８０３に進んだ場合には第２のパスプランニング部１０４６により行われる。Ｓ８０３において最終フレームでないと判定されて、Ｓ８０４の処理に進み、さらにＳ８０４において累積変動量が閾値以上であると判定された場合、カメラ軌跡補正部１０４の処理は、消失点推定部１０４４で行われるＳ１５０５の処理に進む。
【００６７】
Ｓ１５０５では、消失点推定部１０４４は、現フレーム画像上から消失点を再度推定した後、Ｓ１５０２に処理を戻す。このとき消失点推定部１０４４は、次のフレーム画像についてＳ１５０２の処理を行う。
【００６８】
以上説明したように、第３の実施形態では、第１の実施形態のように画像の基準点を出力画像の任意の点に近づけるだけでなく、水平線の傾きを補正することで、撮影軌跡におけるカメラの進行方向とカメラの向きを一致させるようにしている。したがって、第３の実施形態によれば、前述した第１の実施形態と比べ、より安定した動画生成が可能となる。
【００６９】
なお、第３の実施形態に対し、前述の第２の実施形態を組み合わせてもよい。例えば、第２の実施形態の基準点及び基準点候補の例と同様に、第３の実施形態においてＳ１５０１で消失点と消失点候補を推定し、さらにＳ１５０３で水平線及び水平線候補を推定する。そして、Ｓ８０４で累積変動量が閾値以上であると判定されてＳ１５０５に進んだ場合には、現フレーム画像について消失点と消失点候補を再推定する。また、再推定する消失点は、再推定前に推定された消失点候補の中から選択する。これにより、第３の実施形態において、再推定される消失点は再推定前の消失点候補の中から選ばれるため、消失点の切り替えがスムーズに行われる。したがって、第３の実施形態によれば、撮影動画に写っていた被写体等を消失させずに、安定した安定化動画（Ｎ倍速安定化動画も含む）の生成が可能となる。
【００７０】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７１】
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００７２】
１００  画像処理装置、１０１  画像入力部、１０２  画像メモリ、１０３  カメラ軌跡推定部、１０４  カメラ軌跡補正部、１０５  出力画像生成部、１０３１  画像マッチング部、１０３２  変動量算出部、１０３３  変動量累積部、１０４１，１０４３  基準点設定部、１０４２，１０４６  パスプランニング部、１０４４  消失点推定部、１０４５  水平線推定部
【図１】
0006736362.tif 000006
【図２】
0006736362.tif 000007
【図３】
0006736362.tif 000008
【図４】
0006736362.tif 000009
【図５】
0006736362.tif 000010
【図６】
0006736362.tif 000011
【図７】
0006736362.tif 000012
【図８】
0006736362.tif 000013
【図９】
0006736362.tif 000014
【図１０】
0006736362.tif 000015
【図１１】
0006736362.tif 000016
【図１２】
0006736362.tif 000017
【図１３】
0006736362.tif 000018
【図１４】
0006736362.tif 000019
【図１５】
0006736362.tif 000020
【図１６】
0006736362.tif 000021