"複数の撮像部と、前記複数の撮像部のうちの2つ以上が同時撮像を行うように撮像タイミングを制御する撮像タイミング制御部と、前記複数の同時撮像された画像から撮像装置全体の動きを推定する動き推定部と、前記複数の撮像部によって同時撮像された画像と前記動き推定部で推定された動きとから仮想視点画像を合成する仮想視点画像合成部とを有することを特徴とする撮像装置。前記複数の撮像部で同時撮像された画像から被写体の距離を示す距離情報を推定する距離推定部と、前記距離推定部で推定した複数の距離情報を対応付ける距離情報マッチング部と、をさらに有し、前記動き推定部は、前記対応付けられた距離情報から前記動きを推定することを特徴とする請求項1に記載の撮像装置。前記動き推定部は、複数の剛体被写体に対する前記撮像装置全体の動きを推定し、前記仮想視点画像合成部は、複数の各剛体被写体に対する複数の仮想視点画像を合成し、前記複数の仮想視点画像を1つの仮想視点画像に統合する仮想視点画像統合部をさらに有することを特徴とする、請求項2に記載の撮像装置。前記距離推定部が推定した距離情報から、非剛体被写体に対するボケ画像を仮想視点画像として合成するボケ画像合成部をさらにを有し、前記仮想視点画像統合部は、前記仮想視点画像合成部とボケ画像合成部とによって合成された複数の仮想視点画像を1つの仮想視点画像に統合することを特徴とする請求項3に記載の撮像装置。複数の撮像部を有する撮像装置の制御方法であって、前記複数の撮像部のうちの2つ以上が同時撮像を行うように撮像タイミングを制御する撮像タイミング制御ステップと、前記複数の同時撮像された画像から撮像装置全体の動きを推定する動き推定ステップと、前記複数の撮像部によって同時撮像された画像と前記動き推定部で推定された動きとから仮想視点画像を合成する仮想視点画像合成ステップとを有することを特徴とする撮像装置の制御方法。請求項5に記載の制御方法をコンピュータに実行させるためのプログラム。非特許文献1及び非特許文献2のような技術に基づいて、複数のカメラから仮想視点画像を生成する動画撮影系において、非特許文献3のようなタイミングずらしの撮像を行うことでフレームレート性能を向上させることが考えられる。非特許文献1及び非特許文献2のような技術はカメラの位置姿勢が既知であることを前提としている。そのため、カメラの位置姿勢が変化する手持ちカメラなどで非特許文献3のようにタイミングをずらして撮像を行う場合、カメラ間の位置姿勢の関係を推定する必要がある。カメラ間の位置姿勢の関係は射影幾何学における基礎行列を計算することで推定が可能であるが、画像間の対応点探索の誤りや動被写体の存在により推定精度が低下するという問題があった。本発明に係る撮像装置は、複数の撮像部と、前記複数の撮像部のうちの2つ以上が同時撮像を行うように撮像タイミングを制御する撮像タイミング制御部と、前記複数の同時撮像された画像から撮像装置全体の動きを推定する動き推定部と、前記複数の撮像部によって同時撮像された画像と前記動き推定部で推定された動きとから仮想視点画像を合成する仮想視点画像合成部とを有することを特徴とする。本発明は、複数の撮像部で撮像した画像を用いて、仮想視点映像を合成する動画撮影系において、各撮像部の位置姿勢の推定精度を保ちながら、フレームレート性能を向上させる効果を奏する。<<実施形態1>><撮像装置の全体構成>図1は、本発明における実施形態1に係る複数のカメラからなる撮像装置の模式図の一例である。撮像装置は、カメラボディ101を有する。図1aが撮像装置の前面の図であり図1bが撮像装置の背面の図である。カメラ105~120は、撮像装置の前面に格子状に配置されている。撮像装置は、撮影ボタン102、ディスプレイ103、操作ボタン104をさらに有する。操作ボタン104とディスプレイ103とを用いて設定を行い、撮影ボタン102を押下することで、カメラ105~120による撮像が行われる。取得した画像を用いて画像合成を行った結果はディスプレイ103に表示される。以降このような複数のカメラからなる撮像装置を多眼カメラと呼ぶ。図2は、図1の多眼カメラの各処理部を表している。バス217を介して、各処理部は相互に情報や信号の受け渡しを行う。CPU220は、各構成の処理全てに関わり、ROM218やRAM219に格納された命令を順に読み込み、解釈し、その結果に従って処理を実行する。また、ROM218とRAM219は、その処理に必要なプログラム、データ、作業領域などをCPU220に提供する。操作部223は、ボタンやダイヤルなどが該当し、図1の操作ボタン104及び撮影ボタン102に相当する。撮像装置は、これらを介してユーザーの指示を受け取る。操作部223、ROM218、RAM219、CPU220、後述の表示制御部221、表示部222、CG生成部226が連携することで、ユーザーインターフェースが実現される。撮像時の焦点距離、絞り、露光時間などのパラメータ設定や、撮像した画像の表示設定、ユーザーによる撮影の開始指示などは、ユーザーインターフェースを介して行われる。撮像部201~216は、図1のカメラ105~120に相当し、撮像タイミング制御部229から発せられた撮像指示に基づいて撮像を行う。図3を用いて撮像部201~216の詳細を説明する。撮像部201~216のカメラ部分は、ズームレンズ301、フォーカスレンズ302、絞り303、シャッター304、光学ローパスフィルタ305、IRカットフィルタ306、カラーフィルタ307、CMOSやCCDなどの撮像素子308などから構成される。撮像素子308は被写体の像の光量を電気信号に変換する。A/D変換部309は、電気信号をデジタルデータに変換する。バッファ310はデジタルデータを一時的に保管する。制御部311は、ユーザーの設定した焦点距離、絞り値に従って、ズームレンズ301、フォーカスレンズ302、絞り303を制御する。また、撮像指示に従いシャッター304と撮像素子308を制御して撮像を行う。取得した画像データは一旦撮像部201~216内で保持され、順次読み出される。表示部222は一般的には液晶ディスプレイが広く用いられており、図1のディスプレイ103に相当する。表示部222は、表示制御部221により制御され、CG生成部226や後述の画像合成部230から受け取った文字や画像の表示を行う。外部メモリ制御部224は、PCその他メディア225例えば、ハードディスク、メモリーカード、CFカード、SDカード、USBメモリにつなぐためのインターフェースである。外部メモリ制御部224は、CPU220から出力指示を受け取ることで、RAM219に格納されているデータなどを撮像装置の外部に出力する。CG生成部226は、ユーザーインターフェースを実現するための文字やグラフィックなどを生成する。デジタル信号処理部227はデジタル画像データに対して、ノイズ低減処理、ホワイトバランス処理、色変換処理、ガンマ処理を施す。デジタル信号処理部227の構成を図4に示す。デジタル信号処理部227は、ノイズ低減処理部401、ホワイトバランス処理部402、色変換部403、及びガンマ処理部404を含む。デジタル信号処理部227は、撮像部201~216によって撮像された直後のデジタル画像データに対しては、画素値を輝度にリニアし、撮像素子依存のノイズを低減することで、物理的に忠実になるようデータの変換を施す。また、画像合成後の画像に対しては、好ましい画質になるよう画の調整を行う。圧縮伸張部228は、画像合成部230により生成した画像をJpegやMpegなどのファイルフォーマットに変換する処理を行う。撮像タイミング制御部229は撮像部201~216が撮像を行うタイミングを決定し、撮像の指示を出す。撮影中は、例えば撮像部201~216のうちのいずれか2眼による同時撮像を、繰り返し行う。同時撮像の撮像間のインターバルは、撮像部に対して設定されたフレームレートに従って決められる。撮像タイミング算出の方法は後で詳述する。画像合成部230は、撮像部201~216で撮像した画像から、仮想視点画像を合成する。合成した画像は表示部222に表示されるとともに、圧縮伸張部228で圧縮され、PCその他メディア225に順次記録される。画像合成の方法は後で詳述する。装置の構成要素は上記以外にも存在し得るが、本件発明の主眼ではないので、説明を省略する。本実施形態の撮像装置は、撮像タイミング制御部229、画像合成部230に特徴がある。なお、本実施形態では撮像部を16個としたが、本実施形態は撮像部の個数を限定するものではなく、3つ以上ならばいくつあっても構わない。すなわち、多視点での撮像が可能なように、同時撮像に用いる撮像部のセットが2セット以上用意できる構成であればいずれの個数の撮像部を用いてもよい。<撮影時の処理の流れ>図5は、多眼カメラによる撮影時の処理の流れを表した図である。以下で示す各処理は、例えばROM218又はRAM219に格納された命令をCPU220が読み込み、解釈することによって、CPU220によって実行される。以下で説明する他のフローチャートに記載の処理も同様である。図5では、まず、ステップS501にてユーザーにより焦点距離、絞り、露光時間などの撮像パラメータが設定される。撮像パラメータはROM218、RAM219、CPU220、表示制御部221、表示部222、操作部223、CG生成部226が連携することで実現されるユーザーインターフェースを介して入力される。入力されたパラメータはバス217を介して、撮像部201~216に伝達され、設定される。ステップS502ではユーザーによる撮影開始の指示を受けとる。撮影開始の指示は操作部223を介してユーザーから受けとり、バス217を介して撮像タイミング制御部229に伝達される。ステップS503~S510は撮影が行われている間、繰り返されるループである。ステップS503では撮像を行うカメラと撮像のタイミングの決定が行われる。本実施形態においては1回の撮像につき2つのカメラによる同時撮像が行われる。同時撮像の撮像間のインターバルはカメラのフレームレートに基づいて定められる。カメラ台数/2回の撮像で、全てのカメラによる撮像が実行されるよう、撮像を行うカメラは選択される。撮像部201~216それぞれの撮像タイミングは撮像タイミング制御部229によって決定され、バス217を介して撮像指示が撮像部201~216に伝達される。撮像タイミング算出の方法は後で詳述する。S504では2つのカメラによる同時撮像が実行される。ここではS503で撮像指示を受け取った撮像部が撮像を行う。S505ではS504で撮像された2つの画像に対してデジタル信号処理を行う。デジタル信号処理部227は、撮像を行った撮像部から順次画像を読み出してデジタル信号処理し、画像合成部230に渡す。ステップS506では各カメラで撮像した最新の画像から仮想視点画像の合成を行う。画像合成は画像合成部230がデジタル信号処理部227から画像を受け取り、画像合成を行った後に、RAM219に合成した画像を格納することで行われる。画像合成方法については、後で詳述する。ステップS507ではステップS506で合成した画像の表示を行う。画像の表示は、表示制御部221がRAM219より合成画像を読み出し、表示部222に表示させることで行われる。ステップS508ではステップS506で合成した画像の圧縮を行う。画像の圧縮は圧縮伸張部がRAM219より合成画像を読み出し、圧縮することで行われる。圧縮した画像はステップS509で記録される。画像の記録は、外部メモリ制御部224が圧縮画像を受け取り、PCその他メディア225に記録することで行われる。ステップS510は終了の判定であり、ステップS503~S509の処理中に、ユーザーより撮影終了の指示があった場合、撮影を終了する。終了の指示がなければ、ステップS503に戻って処理を繰り返す。ユーザーによる撮影終了の指示は、操作部223を介してユーザーから受け取る。<撮像タイミング算出の方法>撮像タイミング制御部で撮像タイミングを算出する方法を説明する。各カメラのフレームレートをfフレーム/秒としたとき、各カメラが1枚の画像を読み出すには、T=1/f秒の時間が必要となる。本実施形態では多眼カメラのうちの2眼で常に同時に撮像を行い、T秒のうちに全カメラを網羅するように2眼の組み合わせを変えながら、タイミングをずらして2眼同時撮像を行う。多眼カメラを構成するカメラがN個であった場合、同時撮像間のインターバルは2T/Nとなる。実施形態1に対応する撮像タイミングの1例を図6に示す。左側の1列目は撮像部を示す番号である。図の上部の文字は時刻を示している。左から右にかけて時間は進行する。露光中の時刻を黒い四角で表している。実施形態1では撮像部が16個あるので、同時撮像間のインターバルはT/8となる。露光時間はT以下ならいくらでも良く、適当な露出になるよう設定する。なお、本実施形態は同時撮像の組み合わせを限定するものではなく、どのような組み合わせでも構わない。また、同時撮像の組み合わせを固定とせず、撮影中に変化させても構わない。また、2眼同時撮像ではなく、3眼以上の同時撮像を行う構成としても構わない。<画像合成部の構成>図7を用いて画像合成部230の構成について説明する。図7は画像合成部230の構成の一例を表すブロック図である。バッファ701は画像を格納するバッファであり、同時撮像によって取得された2つの画像を、バス217を介して受け取り、保持する。距離推定部702は、バッファ701に格納されている2つの画像間で対応点探索を行い、その結果から距離情報を算出する。対応点探索とは、2つの画像間の特徴点の対応を探し出す処理のことである。距離情報とは、特徴点に対応する被写体と撮像したカメラとの距離を示す情報のことである。距離情報を算出することにより、撮像したカメラの位置姿勢の関係を推定することが可能となる。距離推定部702によって探索された対応点の組に対応する空間上の点の座標が、距離情報を表す処理結果としてバッファ703に送られる。また、距離推定部702は探索された対応点の組を識別するための特徴量も算出する。この特徴量も距離情報と関連付けられてバッファ703に送られる。距離推定にはカメラの内部パラメータ画角、光学中心など、外部パラメータ位置、姿勢が必要であるが、本実施形態ではそれらパラメータは設計値やキャリブレーション結果から既知となっているものとする。距離推定と特徴量の算出の方法は後で詳述する。バッファ703は、距離推定部702で算出された距離情報と特徴量とを保持する。バッファ703は、連続する同時撮像2回分の情報を保持する。すなわち、2つのカメラによって撮像された1組の画像に対する情報を、2組分保持する。距離情報マッチング部704は、バッファ703より連続する2回の同時撮像についての距離情報と特徴量とを読み込み、特徴量に基づいて2回の同時撮像間で距離情報の対応付けを行う。距離情報の対応付けにより、被写体の動きや、手振れなどにより生じるカメラの動きすなわち、撮像装置全体の動きなどを推定することが可能となる。距離情報の対応付けの結果は動き推定部705に送られる。距離情報対応付けの方法は後で詳述する。動き推定部705は、距離情報マッチング部704の対応付けの結果と、バッファ703に格納された距離情報とから、連続する2回の同時撮像間のカメラの動きを推定する。このカメラの動きは、例えば、手ぶれによって生じる動きである。推定したカメラの動きはバッファ706に送られる。動き推定の方法は後で詳述する。バッファ706は、動き推定部705で推定されたカメラの動きを表す情報を保持する。以下、このカメラの動きを表す情報について、単にカメラの動きと称することとする。カメラの動きは、カメラ台数/2回の同時撮像の間にわたって保持される。すなわち、タイミングをずらしての2眼同時撮像が、一巡して同じカメラによる撮像が行われるまで保持される。仮想視点画像合成部707はバッファ701に格納された画像と、バッファ706に格納されたカメラの動きとから、仮想視点画像を合成する。例えば、カメラの動きから、撮像時のカメラの位置を逆算することが可能となる。このように、カメラの動きを考慮することによって、多眼の同時撮像と同等の情報を得ることができる。例えば、本実施形態においては、16個のカメラによって同時撮像された際に得られる情報と同等の情報を得ることができる。合成された仮想視点画像はバス217に出力される。なお、本実施形態では同時撮像を2眼としたが、3眼以上で同時撮像を行う構成としても構わない。また、連続する2つの同時撮像から動き推定をするとしたが、3つ以上の同時撮像や連続しない同時撮像から動き推定を行っても構わない。なお、仮に2眼ではなく1眼で撮像する場合には、視差、カメラの動き、被写体の動きが混在して存在してしまう。そこで、少なくとも2眼以上で同時撮像することにより、距離情報を適切に求めることができ、カメラの動きを得ることができる。<画像合成処理の流れ>図8を用いて画像合成処理の流れについて説明する。図8は画像合成処理の流れを表すフローチャートである。ステップS801では同時撮像された2つの画像を取得する。画像はバッファ701が受け取り、保持する。ステップS802ではステップS801で取得した2つの画像を用いて距離推定を行う。距離推定はバッファ701に格納されている2つの画像に基づいて行われる。距離情報とともに距離情報が定義される点の特徴量も算出される。距離推定と特徴量算出の方法は後で詳述する。ステップS803では、ステップS802で算出した距離情報と特徴量とが、バッファ703に保持される。ここでは、バッファ703が距離推定部702で算出された距離情報と特徴量とを受け取り、これらを関連付けて保持する。ステップS804では、ステップS801からステップS803の処理が、画像合成処理開始以降初めて行ったものであるか判定する。ステップS805は2回分の距離推定結果を必要とするため、ステップS801からステップS803の処理が行われたのが初めてならば、処理はステップS801に戻る。そうでなければ処理はステップS805に進む。ステップS805では、ステップS803で保持した連続する2回の同時撮像間で算出された距離情報の対応付けを行う。距離情報の対応付けは、距離情報と関連付けられて保持されている特徴量に基づいて行われる。対応付けの処理は、距離情報マッチング部704がバッファ703より距離情報と特徴量とを読み込んで行う。対応付けの結果は動き推定部705に送られる。対応付けの方法は後で詳述する。ステップS806では連続する2回の同時撮像間でのカメラの動き推定を行う。動き推定は、動き推定部705がバッファ703に格納されている距離情報と、距離情報マッチングが求めた距離情報の対応付け結果と、に基づいて行われる。ステップS807では、ステップS806で推定したカメラの動きを保持する。ここでは、バッファ706が動き推定部705の算出結果を読み込んで保持する。カメラの動きは、カメラ台数/2回の同時撮像の間にわたって保持される。ステップS808では、画像合成処理開始以降、全カメラすなわち、撮像部201~216の全てに対して1回以上処理が行われているか、判定する。ステップS809は全カメラの画像を必要とするため、処理が行われていないカメラが残っていた場合、ステップS801に戻って処理を繰り返す。全カメラに対して1回以上処理が行われていれば、ステップS809に進む。ステップS809ではステップS801で取得してあった画像と、ステップS807で保持したカメラの動きとから、仮想視点画像を合成する。画像合成は、仮想視点画像合成部707がバッファ706に格納されたカメラの動きと、バッファ701に格納されたが画像とに基づいて行う。ステップS810では合成された画像を出力する。ここでは仮想視点画像合成部707が合成した画像をバス217に出力する。ステップS811では終了判定を行う。ユーザーにより終了が指示されていれば終了し、指示されていなければステップS801に戻り処理を繰り返す。なお、上記の例では、ステップS808においては、全カメラに対して1回以上の処理が行われたか否かを判定している例を挙げているが、本実施形態はこの処理に限られるものではない。例えば、16個の撮像部のうち、所定の組数の撮像部で処理が行われたか否かによってS808の判定が行われても良い。<距離情報と特徴量の算出方法>距離推定部702で対応点を探索する方法について説明する。図9は距離情報及び特徴量算出処理のフローチャートである。処理に用いる2つの入力画像のうち片方を基準画像とし、もう片方を対象画像と呼ぶものとする。ここでは、基準画像の特徴点を抽出し、抽出した特徴点に対応する対象画像上の点を求め、その結果から、その特徴点に対応する距離情報と特徴量とを求める方法について説明する。ステップS901では、2つの入力画像を読み込み、基準画像と対象画像とを設定する。ステップS902では、基準画像の特徴点を抽出する。特徴点抽出の方法としては、例えば非特許文献4記載のHarrisCornerDetectionなどの公知の手法を用いることができる。ステップS903ではステップS902で求めた特徴点について対象画像上での対応する点を求める。対応点を求める方法として、例えばブロックマッチング法などの公知の手法を用いることができる。ブロックマッチング法では、マッチングの評価値としてブロック内の基準画像の画素値とブロック内の対象画像の画素値との差分絶対値和もしくは差分二乗和を用いる。ある特徴点を中心としたブロックを基準画像上で考え、基準画像と対象画像上の相対位置を順次ずらしながら評価値を求めていく。求めた評価値の中から最小の評価値を持つときの、処理対象画像上でのブロックの中心位置が、着目する特徴点の対応点である。また、相対位置と評価値との関係を、1次関数の絶対値もしくは2次関数でフィッティングし、得られた関数上で最小となる相対位置から対応点を求めることで高精度化することも可能である。また、本実施形態ではカメラの姿勢が既知であるものとしているので、探索する範囲をエピポーラ線上に限定することで、ロバスト性の向上と計算コストの低減を図ることができる。なお、ステップS903で求めた対応点は、誤っている場合がある。ステップS904ではステップS903で求めた対応点が正しいか、判定を行う。判定の方法としては、例えばステップS903で求めた最小評価値が閾値以下であるかを調べ、閾値以下なら正しく、閾値以上なら誤りであると判定するなどの方法がある。次に、ステップS905で全ての特徴点について処理が完了したかの判定を行う。完了していなければS903に戻り、未処理特徴点の処理を行い、完了していればステップS906に進む。ステップS906では距離情報と特徴量の算出を行う。まず、距離情報の算出について述べる。基準画像、対象画像を撮像したカメラの内部パラメータをA,A’と、特徴点の画像座標をu,v,u’,v’と、それぞれ置き、基準画像を撮像したカメラから対象画像を撮像したカメラへのカメラ座標の座標変換行列Mを式1のように置く。ここで、Rは回転を表す3×3の行列、Tは並進を表す3×1の行列である。u,vとu’,v’の関係は、式2のようになる。ここでzは特徴点に対応する空間上の点までの距離であり、ステップS903で1/zをパラメータとして変化させて対応点探索を行えば、直接1/zを求めることができる。特徴点に対応する空間上の点の3次元座標をx,y,zとすると、式3が成り立つ。本実施形態ではx/z,y/z,1/zを距離情報として算出する。次に特徴量の算出について述べる。本実施形態では特徴量としてu,vを中心としたブロックの画素値の分布を、ベクトル状の特徴量として用いる。ステップS907では算出した距離情報と特徴量を出力する。なお、本実施形態は対応点探索の方法と特徴量の算出方法を限定するものではなく、非特許文献5に開示されているSIFTアルゴリズムなどを用いても構わない。また、本実施形態は距離情報を、特徴点に対応する空間上の点の座標x,y,zを用いてx/z,y/z,1/zのように表現する形態に限定するものではなく、等価な情報を持つ形態ならばどのような値として距離情報を持っても構わない。<距離情報対応付けの方法>距離情報マッチング部704で、連続する2回の同時撮像間の距離情報を対応付ける方法について説明する。特徴点を介して、距離情報には特徴量が紐付いている。本実施形態では特徴量の一致度を用いて距離情報の対応付けを行う。ここでは、連続する2回の同時撮像のうち、先に撮像された方を第一同時撮像、後に撮像された方を第二同時撮像と呼ぶものとする。ここでは第一同時撮像を基準として考える。第一同時撮像の各特徴点に対して、最も特徴量の一致度が高くなる第二同時撮像の特徴点を探索する。特徴量として、特徴点近傍のブロックの画素値分布を用いるならば、一致度Jは式4のようにとれば良い。このとき、p1,p2は第一同時撮像、第二同時撮像それぞれの、一致度を算出しようとしている特徴点の特徴量を表すベクトルである。第一同時撮像の各特徴点に対して、最も特徴量の一致度が高い第二同時撮像の特徴点を求めたら、それらを特徴点対応の候補とする。全特徴点対応の候補に対して一致度で閾値処理を行い、一定以上一致度の高い特徴点対応の候補を最終的な対応付けの組み合わせとする。なお、本実施形態は距離情報の対応付け方を限定するものではなく、他の対応付け方法を用いても構わない。<動き推定の方法>動き推定部705で、連続する2回の同時撮像の間に生じた、被写体に対するカメラの動きを推定する方法について説明する。ここでは、連続する2回の同時撮像のうち、先に行った同時撮像を第一同時撮像、後に行った同時撮像を第二同時撮像と呼ぶものとする。第一同時撮像のn番目の特徴点の距離情報をx1n/z1n,y1n/z1n,1/z1nとし、対応する第二同時撮像の特徴点の距離情報をx2n/z2n,y2n/z2n,1/z2nとする。ここでは、被写体が剛体運動するものとして、第一同時撮像の基準画像に対応するカメラから第二同時撮像の基準画像に対応するカメラへの座標変換行列Mを式1のようにおく。求めるべき動きのパラメータをRest,Testとするならば、距離情報と動きのパラメータの関係は、式5、式6のようになる。ここで、Nはカメラの数を表す。λは不定性を表す係数である。Rest,Testは式5、式6にLevenberg-Marquardt法などの非線形最適化を適用することで求めることができる。なお、通常は対応付けの誤りなどもおこるので、精度向上のためには、式5、式6から動きのパラメータを求めるだけでなく、最小メディアン法やRANSACなどのロバスト推定を組み合わせると良い。なお、本実施形態は最適化方法を限定するものではなく、最急降下法や線形解法などその他の最適化方法を用いて動きを推定しても構わない。<仮想視点画像の合成方法>仮想視点画像合成部707における、仮想視点画像の合成方法について説明する。ここでは、あらかじめ設計値やキャリブレーションに基づいて既知となっている、多眼カメラの座標からn番目のカメラの座標への変換行列をM0nと表す。Mは式1で表されるような、3次元の斉次座標に対する変換行列である。また、別の時刻に撮像の行われたn番目のカメラからm番目のカメラへの座標変換行列をM’nmと表す。図6のような組み合わせと順序で撮像を行った場合に、既知のM0nと動き推定で求めたM’nmとから得られる、座標変換行列と各撮像部のカメラの関係を図10に示す。図10から明らかなように各カメラ間の変換行列をたどって合成することで、任意のカメラから任意のカメラへの座標変換行列を算出することができる。例えば、同時撮像8の時の多眼カメラの座標から、n番目のカメラの座標への座標変換行列を算出したければ、M’8nM08を計算すればよい。ここで、M’8nは変換行列の合成によって算出した、8番目のカメラである撮像部208のカメラから、n番目のカメラへの座標変換行列である。このようにして、既知のカメラ間の位置姿勢の関係と、動き推定によって求めたカメラ間の位置姿勢の関係とから、任意の同時撮像の時刻に合わせて、キャリブレーション済みの多眼カメラを再構築することができる。以上の方法で求めた位置姿勢の情報と、各カメラで撮像した画像とを用いて、非特許文献2に開示されている方法などで仮想視点画像を生成することが可能である。以上説明したように、実施形態1によれば、複数のカメラで撮像した画像を用いて各カメラの動きを考慮して仮想視点画像を生成する。これにより、仮想視点映像を合成する動画撮影系において、各カメラの位置姿勢の推定精度を保ちながら、フレームレート性能を向上させる効果を奏する。<<実施形態2>>実施形態1では、カメラに対する被写体の動きが単一であるものとして、カメラ間の同時撮像間の動き推定を行う例について説明した。すなわち、実施形態1においては、例えば、被写体が静止しており、カメラ自身に動きが生じている例を説明した。実施形態2では、被写体が異なる動きをする複数の剛体である場合について説明する。すなわち、実施形態2では少なくとも1つの被写体が動いているような場合について説明する。<画像合成部の構成>実施形態2は実施形態1に対して画像合成部230の構成が異なる。以下、実施形態1と共通する部分の説明は省略し、相違する部分を中心に説明を行う。実施形態2の画像合成部230の構成を図11に示す。実施形態2の画像合成部は実施形態1の画像合成部に対して、動き推定部1101、仮想視点画像合成部1105、バッファ1103の動作が変更され、画像分割部1102、バッファ1104、仮想視点画像統合部1106が追加されている。動き推定部1101はロバスト推定により、複数の剛体被写体に対するカメラの動きを推定するとともに、距離情報を、それが属する剛体に従って分類する。例えば、ロバスト推定により、最も支配的な動きすなわち、手ぶれによる背景の動きが抽出される。この背景に属する動きも剛体被写体の動きとして抽出することができる。被写体自身に動きが生じている場合には、この背景に属する特徴点を除いて同一の動きをする各特徴点群を、それぞれ剛体被写体と扱うことができる。距離情報が、各剛体に従って分類されることにより、後述するように剛体の領域を特定して、その動きを追跡することが可能となる。動き推定部1101は、距離情報の分類と、距離情報が定義されている画像上の座標とを抽出し、画像分割部1102に渡す。推定された複数の動きはバッファ1103に渡される。ロバスト推定を用いた複数の剛体被写体に対するカメラの動き推定の方法は後で詳述する。動き推定部は、前々回の同時撮像と前回の同時撮像から求めた複数の剛体被写体と、前回の同時撮像と今回の同時撮像から求めた複数の剛体被写体との対応付けも行う。対応付けの方法は、前回の同時撮像に対して定義された距離情報を、属する距離情報としてより多く共有する剛体被写体に対応付けるなどの方法がある。画像分割部1102は分類された距離情報に対応する画像上の座標から、バッファ701に格納された画像を、各剛体被写体に属する領域に分割し、バッファ1104に渡す。画像分割の方法については後で詳述する。バッファ1103は動き推定部1101で推定された、複数の剛体被写体に対して推定されたそれぞれの動きを、撮像が全カメラに対して一巡するまで保持する。バッファ1104は画像分割部1102で算出された、複数の剛体被写体のいずれかに属するよう分割された複数の画像を、撮像が全カメラに対して一巡するまで保持する。仮想視点画像合成部1105は各剛体被写体に対応する動きと分割画像とを、バッファ1103及びバッファ1104からそれぞれ読み出し、各剛体被写体に対応する仮想視点画像を合成する。合成した仮想視点画像統合部1106に渡される。仮想視点画像統合部1106は、各剛体被写体に対応した複数の仮想視点画像を仮想視点画像合成部1105から受け取り、足し合わせて1つの画像へと統合する。統合は複数枚の画像の平均化などにより行う。統合された画像はバス217に出力される。<画像合成処理の流れ>実施形態2は画像合成部230における画像合成処理が実施形態1と異なる。画像合成処理のフローチャートを図12に示す。実施形態1に対して実施形態2は、ステップS806がステップS1201に、ステップS807がステップS1202に、ステップS809がステップS1206に変更されている。また、実施形態2では、ステップS1203、ステップS1204、ステップS1205、ステップS1207が追加されている点が異なる。ステップS1201では、複数の剛体被写体に対してカメラの動き推定を行う。動き推定処理は、動き推定部1101が行う。複数の剛体被写体に対する動き推定の方法は後で詳述する。ステップS1202では、ステップS1201で複数の剛体被写体に対して推定したカメラの動きを保持する。推定したカメラの動きの保持は、バッファ1103が動き推定部1101より推定結果を受け取り、格納することで行われる。ステップS1203では、属する剛体被写体に従って距離情報を分類する。距離情報の分類は、動き推定部1101が動き推定と合わせて行う。距離情報の分類方法は、複数の剛体被写体に対する動き推定の方法と合わせて後で詳述する。ステップS1204では、分類された距離情報に従って、画像を複数に分割する。画像の分割は画像分割部1102が行う。ステップS1205では、ステップS1203で分類された距離情報に従って分割された画像を保持する。分割された画像の保持は、バッファ1104が画像分割部1102より画像を受け取り、格納することで行われる。ステップS1206では、分割された画像と複数の剛体被写体に対して推定されたカメラの動きとから、各剛体被写体の仮想視点画像を合成する。仮想視点画像の合成は仮想視点画像合成部1105が行う。ステップS1207ではステップS1206で合成された複数の画像を1つの画像に統合する。統合は複数枚の画像の平均化などにより行う。画像の統合は仮想視点画像統合部1106が行う。<複数の剛体被写体を想定した動き推定の方法>動き推定部1101で行う、複数の剛体被写体を想定した動き推定と、距離情報の分類との方法について説明する。図13は処理の方法を説明するフローチャートである。ステップS1301ではロバスト推定により動きを推定する、動き推定の方法は実施形態1と同様である。複数の剛体被写体がある場合、多くの距離情報が算出されている剛体被写体に対する動きがロバスト推定により推定される。ステップS1302では、図11の距離情報マッチング部704、図12のステップS805で対応付けられた複数の距離情報の組に対し、ステップS1301で推定した動きを適用し、誤差を算出する。動きの適用は式5に従って行い、誤差Eは式7に従って算出する。ステップS1303では、誤差Eが閾値以下となるような距離情報の組を抽出する。ステップS1304では、ステップS1303で抽出された距離情報の組の数が、閾値以上か判定する。閾値以下なら、これ以上剛体の抽出ができないものとして、処理を終了する。閾値以上ならステップS1305に進む。ステップS1305では、ステップS1301で推定した動きを出力する。ステップS1306では、ステップS1303で抽出した距離情報の組を出力する。ステップS1307では、ステップS1303で抽出した距離情報の組を、ステップS1301のロバスト推定の候補から除外する。除外した後にステップS1301に戻り処理を繰り返す。以上の処理により、複数の剛体被写体を想定した動き推定と、距離情報の分類を行うことができる。<分類された距離情報から画像を分割する方法>画像分割部1102で、分類された距離情報から画像を分割する方法について説明する。動き推定部1101で行われた、距離情報の分類処理によって、各剛体被写体に属する距離情報の、画像上に定義された点の座標を得ることができる。ある剛体被写体に属する領域を算出する方法としては、例えばドロネー三角形分割を用いる方法などがある。この方法では、距離情報と対応する点とに基づいて、三角形分割で画像上の領域を分割し、対象の剛体被写体に属する点に囲まれた三角形領域を、ある剛体被写体に属する領域としてみなす。ある領域に属する分割画像を生成する際、画像上のある剛体被写体に属する領域は、分割前の画像の当該領域をそのまま用い、それ以外の部分は画素値を0にすることで、分割画像を生成する。以上説明したように、実施形態2によれば、仮想視点映像を合成する動画撮影系において、複数の剛体被写体が異なる動きをするシーンに対しても、画像の劣化を抑制しながら、フレームレート性能を向上させる効果を奏する。<<実施形態3>>実施形態2では、シーンが剛体被写体のみから構成されるものとして、動きの推定と仮想視点画像の合成を行った。実施形態3では、シーンが剛体以外の被写体を含む場合について説明する。すなわち、被写体自身が時間とともに変化するような被写体を含む場合について説明する。剛体以外の被写体に対して、他の時間軸で同時撮像された画像を合成して仮想視点画像を生成する場合には、被写体自身が変化してしまうので、その被写体部分については多視差の情報を作ることが困難である。そこで、本実施形態では、剛体以外の被写体についてはボケ画像を生成する例を説明する。実施形態3は実施形態2に対して画像合成部230が異なる。以下、実施形態2と共通する部分の説明は省略し、異なる部分を中心に説明する。実施形態3の画像合成部230の構成を図14に示す。実施形態3の画像合成部は実施形態2の画像合成部に対して、画像分割部1401の動作が変更され、ボケ画像合成部1402が追加されている。実施形態2の画像分割部は、属する剛体被写体に従って画像を分割した。実施形態3の画像分割部は、剛体被写体に属さない領域も非剛体被写体領域として画像を抽出し出力する。例えば、図13のステップS1303で誤差が閾値以下の距離情報の組ではない組を、非剛体被写体領域として抽出することができる。出力された画像はバッファ1104に渡され格納される。ボケ画像合成部1402は非剛体被写体領域に対する仮想視点画像として、距離によるボケをかけた画像を生成する。すなわち、前記距離推定部702が推定した距離情報から非剛体被写体に対するボケ画像を仮想視点画像として生成する。ボケをかけた画像の生成方法については公知であるので、ここでの説明は省略する。距離情報はバッファ703に格納されているものを読み出して用いる。バッファ703は画像上のとびとびの位置にしか定義されていないので、ボケをかけるにあたっては、線形補間などを適用して、画像上の全域に距離が定義されるようにする。非剛体被写体領域の画像は仮想視点画像生成の基準となる時刻に対応するものを用いる。ボケの大きさは仮想視点画像合成部1105にて合焦距離として用いている距離に近くなれば小さくなり、遠くなれば大きくなるよう設定する。実施形態3の画像合成処理の流れを図15のフローチャートに示す。実施形態2に対してステップS1501で行う処理が変更され、ステップS1502が追加されている。ステップS1501では実施形態2と同様の画像分割処理を行うが、非剛体被写体に属する領域に対しても分割画像を生成する点が異なる。ステップS1501では画像分割部1401が処理を行う。ステップS1502は、非剛体被写体領域に属する分割画像に対して、距離に基づいたボケをかける。ボケをかける処理はボケ画像合成部1402が行う。以上説明したように、実施形態3によれば、仮想視点映像を合成する動画撮影系において、非剛体の動被写体が存在するシーンに対しても、画像の劣化を抑制しながら、フレームレート性能を向上させる効果を奏する。<その他の実施形態>なお、以上の各実施形態においては、撮像部がカメラに相当する例を挙げて、複数の撮像部として複数のカメラを用いる例を説明した。具体的には、図3に示す機構を複数のカメラ分有する例を説明した。そして、これらの複数のカメラから得られた画像を用いて仮想視点画像を生成する例を説明した。しかしながら、例えば、撮像部が図3に示す単一の撮像素子308に相当する場合であってもよい。すなわち、1つの撮像素子を複数の領域に分割し、その分割した領域に対応するレンズを設ける構成を採用してもよい。また、1つの撮像素子の表面に微小なレンズを配置したり、所定の空間周波数のパターンを配置したりする構成を採用してもよい。あるいは、レンズ側の絞り303を調整して部分的にレンズの開口部分を変更するような構成を採用してもよい。また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェアプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータまたはCPUやMPU等がプログラムを読み出して実行する処理である。"