(58)【調査した分野】(Int.Cl.,DB名)
前記所定の条件を満たす画像は、特徴点を撮像装置に当該撮像装置に対して取得された前記パラメータに基づいて投影した場合の当該撮像装置に対応する画像上における座標と、当該撮像装置に対して前記パラメータを取得する際に用いられた複数の画像のそれぞれにおける前記特徴点に対応する座標と、の差分が最も小さい画像である、ことを特徴とする請求項2に記載の画像処理システム。
前記補正手段は、前記特徴点が複数である場合、特徴点ごとに求めた差分の平均値もしくは合計値が最も小さい画像を、前記補正を行う際に用いる画像として決定することを特徴とする請求項3に記載の画像処理システム。
前記補正手段は、前記複数の特徴点ごとに求めた差分に対して、重み付けを行って得られた平均値もしくは合計値に基づき、前記補正を行う際に用いる画像を決定することを特徴とする請求項4に記載の画像処理システム。
前記重み付けは、前記差分が小さい特徴点ほどその信頼度を高くする重み付け、または、特徴点を検出した撮像装置の台数や画像の数が多い特徴点ほどその信頼度を高くする重み付けであることを特徴とする請求項5に記載の画像処理システム。
前記補正手段は、前記補正を行う際に用いる画像における特徴点と、前記撮像装置で撮像されることにより取得された画像における特徴点とに基づいて、前記撮像装置で撮像されることにより取得された画像を補正することを特徴とする請求項1乃至8のいずれか1項に記載の画像処理システム。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【0013】
図1は、本実施例に係る画像処理システムの構成を示すブロック図である。画像処理システム100は、カメラ110〜130及びサーバ140から成る。画像処理システム100は、3台のカメラ110〜130で撮影された多視点映像のデータを、画像処理装置としてのサーバ140に集め、サーバ140において仮想視点映像の生成を行うものである。
図1に示すシステム構成例では、3台のカメラがサーバ140に接続されるスター型構成としたが、カメラ同士がデイジーチェーンにより接続され、そこからサーバ140に接続される構成としてもよい。また、カメラの台数は何台でもよく、台数を限定するものではない。例えば、サッカーやラグビーの試合を撮影するような場面では、フィールドを囲むように配置された10〜20台のカメラによりフィールド上にいる選手やボールが撮影される。
【0014】
まず、各カメラの構成についてカメラ110を例に説明する。カメラ110は、撮像部111、リファレンス画像決定部112、画像位置補正部113によって構成される。カメラ120及び130も、カメラ110と等価な構成を有している。撮像部111は、レンズやイメージセンサ等を有し、被写体の撮影を行なう。そして、複数の静止画(フレーム画像)で構成される、例えば数十fps程度の動画像のデータを取得する。得られた画像データは、その用途に応じてリファレンス画像決定部112及び画像位置補正部113に送られる。
【0015】
リファレンス画像決定部112は、後述のキャリブレーション部142から受け取ったカメラパラメータを用いて、撮像部111で撮影された複数の候補画像の中から、画像位置補正部113でリファレンス画像として使用する画像を選択する。
【0016】
画像位置補正部113は、仮想視点映像の生成用に撮影された動画像に対して、リファレンス画像決定部112で決定されたリファレンス画像を用いて、撮影中のカメラの揺れに応じて画像位置を安定させる位置合わせを目的とした位置補正処理を行なう。位置補正処理が施された動画像データは、サーバ140の画像取り込み部141に送られる。画像位置補正部113で実施する補正処理は、上述の位置補正処理に限られない。例えば、カメラ毎の色のばらつきを抑えるための色補正処理をさらに行なってもよい。また、ブレに対する補正処理をさらに行ってもよい。具体的には、カメラに内蔵された不図示のセンサ(例えば加速度センサやジャイロセンサ)からの出力データに基づき画像のブレ量を推定したり、連続した複数のフレーム画像を比較してその移動量を推定して補正するような処理である。なお、画像位置補正部113は、リファレンス画像決定部112がリファレンス画像を選択するより前に受信した動画像データについては、位置補正処理を実行することなくそのまま画像取り込み部141に送信するものとする。
【0017】
次に、サーバ140について説明する。サーバ140は、画像取り込み部141、キャリブレーション部142、仮想視点映像生成部143によって構成される。画像取り込み部141は、各カメラ110〜130の画像位置補正部113から動画像データを受信し、その用途に応じて内部転送する。すなわち、受信した動画像データがキャリブレーション用であればキャリブレーション部142に転送し、仮想視点映像の生成用であれば仮想視点映像生成部143に転送する。
【0018】
キャリブレーション部142は、画像取り込み部141から受け取ったカメラ110〜130で撮影されたキャリブレーション用の動画像(以下、「キャリブレーション用画像」)を用いてキャリブレーション処理を行う。キャリブレーション処理は、多視点映像の撮影開始前に実行され、カメラ110〜130それぞれのカメラパラメータが求められる。カメラパラメータは、キャリブレーション用画像から検出した画像特徴点を用いて、カメラ間での画像特徴点のマッチングを行って世界座標(共通座標系の座標)と画像座標との対応付けを行うことで得ることができる。或いは、カメラ固有のパラメータである内部パラメータには予め用意した値を用い、画像データからはカメラの位置及び姿勢を表す外部パラメータのみを求めてもよい。さらには、予め用意した内部パラメータを初期値として用いて外部パラメータを求めた後に、内部パラメータを補正するようにしてもよい。また、キャリブレーション結果の評価として、画像特徴点の再投影誤差を求め、得られた誤差がある閾値以下になるまで誤検出や誤マッチングの削除を行って、カメラパラメータの最適化計算を行なうようにしてもよい。また、カメラパラメータの形式も特に限定されるものではない。カメラ110〜130それぞれについてのキャリブレーション結果(カメラパラメータ)は、仮想視点映像生成部143、及び各カメラ110〜130のリファレンス画像決定部112に送られる。
【0019】
仮想視点映像生成部143は、キャリブレーション部142から受け取った各カメラ110〜130のカメラパラメータと、画像取り込み部141から受け取った画像位置補正後の多視点映像とに基づいて、仮想視点映像の生成処理を行う。具体的には、多視点映像内の注目する被写体(例えば選手やボール)についての、三次元モデルの生成、レンダリングなどの処理が、別途指定された仮想カメラパスや仮想視点パスに従って行われる。生成された仮想視点映像のデータは、不図示のモニタやメモリに出力される。
【0020】
次に、本実施形態の画像処理システム100において、キャリブレーション用画像の撮影から仮想視点映像が出来上がるまでの大まかな流れを説明する。なお、本実施形態では、リファレンス画像の複数の候補画像における画像特徴点の再投影誤差に基づきリファレンス画像の選択を行う態様について説明する。しかし、キャリブレーションの結果として得られたカメラの位置及び姿勢に最も近い位置及び姿勢のカメラから撮影した画像をリファレンス画像として選択できる方法であればよく、以下のフローで示す内容に限定されるものではない。
図2は、本実施形態に係る、仮想視点映像生成までの一連の処理の流れを示すフローチャートである。この一連の処理は、サーバ140が備えるCPU(不図示)が、ROMやHDD等の記憶媒体(不図示)にされた所定のプログラムをRAM(不図示)に展開してこれを実行することで実現される。
【0021】
まず、ステップ201では、カメラ110〜130の設置が完了した状態で、各カメラが備える撮像部111によって、キャリブレーション用画像が撮影される。この撮影は、例えば市松模様のパターンが形成された板(マーカ)を持った人間が、各カメラの画角を考慮してすべての撮影対象範囲を網羅するように移動し、撮影対象の空間の様々な場所で撮影することが想定される。これは、より多くの画像特徴点が撮影対象の空間に散らばって検出できるようにするためである。そして、撮影シーンがラグビー等のスポーツの試合であって、被写体として人物やボールといった動きのある物体が想定される場合は、各カメラによる撮影を同期させることが望ましい。一方、被写体が静止物体のみの場合は、カメラ間で同期撮影することは要しない。各カメラ110〜130の撮像部111によって取得されたキャリブレーション用画像のデータは、画像位置補正部113を介して、サーバ140の画像取り込み部141に送られる。この段階では、リファレンス画像が選択されていないので、前述のとおり、キャリブレーション用画像のデータに対して画像位置補正部113で位置補正処理が施されることはない。画像取り込み部141が受信したキャリブレーション用画像のデータは、キャリブレーション部142に順次送られ、キャリブレーション部142内に蓄積される。
【0022】
ステップ202では、キャリブレーション用画像の撮影が完了したかどうかが判定される。キャリブレーション処理の実施に必要な量のキャリブレーション用画像が蓄積されていれば、撮影完了と判定されてステップ203に進む。一方、必要な量のキャリブレーション用画像が蓄積されていなければ、ステップ201に戻って撮影が続行される。
【0023】
ステップ203では、キャリブレーション部142において、蓄積されたキャリブレーション用画像のデータを用いてキャリブレーション処理が実行され、各カメラ110〜130のカメラパラメータが求められる。ここで、各カメラで撮像されたキャリブレーション用画像には上述したマーカが映っている。例えば、3×3マスの市松模様のマーカを使用した場合であれば、計16個の頂点を画像特徴点として検出することで、外部パラメータであるカメラの位置及び姿勢を推定することができる。このキャリブレーションにより、各カメラがどこに設置され、どの方向を撮影し、画角がどの程度あるのか、といった情報が得られる。求めたカメラパラメータは、仮想視点映像生成部143及び各カメラ110〜130のリファレンス画像決定部112に送られる。
【0024】
ステップ204では、各カメラ110〜130のリファレンス画像決定部112において、撮像部111から受け取ったキャリブレーション用画像を構成するフレーム画像の中から、位置補正処理でリファレンス画像として用いる1のフレーム画像が選択される。リファレンス画像決定処理の詳細については後述する。リファレンス画像に決定されたフレーム画像のデータは、画像位置補正部113に送られる。
【0025】
ステップ205では、各カメラ110〜130の撮像部111において、仮想視点映像の生成に用いる多視点映像を構成する各動画像が撮影される。この際、撮影シーンがラグビー等のスポーツの試合であれば、上述のとおり全カメラでの同期撮影となる。撮像部111で撮影された仮想視点画像のベースとなる動画像データは、画像位置補正部113へ送られる。
【0026】
ステップ206では、各カメラ110〜130の画像位置補正部113において、ステップ205で取得した動画像データに対し、ステップ204で選択したリファレンス画像を用いて位置補正処理が実行される。これにより、仮想視点映像の生成に供される動画像を構成する各フレーム画像における画像位置が、各カメラの揺れに応じて調整される。
図3は、位置補正処理を説明する図である。
図3(a)は位置補正前のフレーム画像、同(b)はリファレンス画像、同(c)は位置補正後のフレーム画像をそれぞれ示している。位置補正前のフレーム画像とリファレンス画像との比較によって、当該フレーム画像を撮像した時のカメラは設置時よりも少し上を向いてしまっていることが分かる。よって、
図3(c)に示すように、リファレンス画像とのずれが生じている分だけカメラを下向きにした状態の画像に補正される。こうして、画像位置が補正された動画像データは画像位置補正部113からサーバ140へ送られる。この際、位置補正がなされた動画像データと併せて、同期撮影されたそれぞれの動画像データを識別するための情報も送られる。サーバ140では、各カメラ110〜130から受け取った画像位置補正後の動画像データが集約され、多視点映像データとして仮想視点映像生成部143に渡される。
【0027】
ステップ207では、仮想視点映像生成部143において、多視点映像データ及び、キャリブレーション処理で得られたカメラパラメータを用いて、所望の仮想視点映像が生成される。すなわち、三次元空間内に仮想的に配置した実際には存在しないカメラ(仮想カメラ)から見た映像が、上述のようにして得られた多視点映像とカメラパラメータに従って生成される。
【0028】
ステップ208では、所定の撮影時間が経過するなどして多視点映像の撮影が完了したかどうかが判定される。多視点映像の撮影が完了していなければ、ステップ205に戻って撮影が続行される。一方、多視点映像の撮影が完了していれば、本処理を終える。
【0029】
以上が、本実施形態に係る、仮想視点映像が生成されるまでの一連の処理の流れである。なお、ステップ201〜ステップ204までは、カメラを設置してから多視点映像の撮影を開始するまでの準備段階の処理(前処理)である。そして、ステップ205〜ステップ208が、多視点映像を撮影し、それをベースに仮想視点映像を実際に生成する処理(本処理)である。
図2のフローは、前処理と本処理とを一体とし、すべてのステップを画像処理システム100において自動で実行する態様を想定している。しかし、本実施形態の手法は、このような態様に限定されない。例えば、キャリブレーション用画像の撮影完了(ステップ202)や多視点映像の撮影開始(ステップ205)の判断をユーザが行ない、次のステップへの移行を、不図示のユーザインタフェースを介したユーザ指示に係らしめてもよい。また、
図2の処理をすべてサーバ140が行うようにしても良い。この場合、ステップ201及び205において、サーバ140はカメラに対して撮影指示を送信する。また、
図2のフローは、多視点映像の撮影と並行してライブで仮想視点映像を生成するような用途を想定した内容となっている。しかし、例えば撮影した多視点映像のデータをHDD等に蓄積しておき、後から仮想視点映像の生成を行うようにしてもよい。
【0030】
次いで、前述のステップ204におけるリファレンス画像決定処理の詳細について説明する。本実施形態では、キャリブレーション用画像を構成する複数のフレーム画像をリファレンス画像の候補とし、その中からリファレンス画像とする1のフレーム画像を選択する場合を例に説明する。
【0031】
図4は、本実施形態に係る、リファレンス画像決定処理の詳細を示すフローチャートである。なお、
図4のフローの実行を開始する時点で、リファレンス画像決定部112には、キャリブレーション処理で得られた自カメラのカメラパラメータ、及びリファレンス画像の候補となる複数のフレーム画像が既にRAM(不図示)等に保持されているものとする。
【0032】
まず、ステップ401では、リファレンス画像の候補となる複数のフレーム画像から、後述の再投影誤差を求める際の基準となる画像特徴点が設定される。撮影シーンが例えばラグビーの試合であれば、ゴールポスト、広告板、ベンチなどが画像特徴点となり得る。この場合において、設定する画像特徴点の数は何点でもよいが、ここでは説明の便宜上、1つの画像特徴点が設定されたものとして説明を行う。また、設定方法も、ユーザが任意のフレーム画像を確認しながら手動で指定してもよいし、所定の条件に合致する画像特徴点を自動で設定するようにしてもよい。さらには、キャリブレーション処理の過程で検出した画像特徴点及び特徴点マッチング情報をキャリブレーション部142から取得し、より多くのフレーム画像で検出された画像特徴点を自動で設定するようにしてもよい。
【0033】
ステップ402では、ステップ401で設定した画像特徴点を画像上に再投影したときの画像座標(x,y)が、キャリブレーション処理で得られた自カメラのカメラパラメータを用いて求められる。この画像座標(x,y)は、カメラパラメータに基づいて、画像特徴点の世界座標(x_w,y_w,z_w)から画像上における座標(x,y)を求める公知の変換手法を適用して求めることができる。こうして、各カメラが比較的安定していると推認される状態(≒静止状態)の下での、画像特徴点についての画像座標が得られる。
図5(a)は、キャリブレーション結果のカメラパラメータを用いて得られた、再投影された画像特徴点の画像座標の一例を示す図である。
図5(a)において、画像上の×印は、再投影された画像特徴点のイメージ(キャリブレーション結果であり、実際の画像データではない。)を示している。この例では、再投影された画像特徴点の画像座標として、(x,y)=(1920,1080)が得られている。
【0034】
ステップ403では、リファレンス画像の候補である複数のフレーム画像の中から、注目するフレーム画像(以下、「注目フレーム画像」と呼ぶ。)が決定される。そして、ステップ404では、注目フレーム画像における画像特徴点の画像座標が取得される。具体的には、当該注目フレーム画像内における対応する画像特徴点を検出して、ステップ401で設定した画像特徴点とのマッチングによって、その画像座標が取得される。
図5(b)にその一例を示す。
図5(b)では、3枚のフレーム画像(画像No.1〜画像No.3)における画像特徴点の位置と、それぞれのフレーム画像を撮影した時のカメラの位置が示されている。この例では、カメラは撮影方向(z方向)に対して縦方向(y方向)にのみ振動しており、画像No.1は設置時よりも上に、画像No.3は設置時よりも下に変位している。そして、縦方向にカメラが振動していることから、画像特徴点のx座標については画像No.1〜No.3のいずれも同じ値“1920”であるが、y座標については画像No.1〜No.3でそれぞれ違う値“1090”、“1080”、“1070”となっている。
【0035】
ステップ405では、ステップ401で設定された画像特徴点についての、ステップ402で取得した画像座標と、ステップ404で取得した注目フレーム画像における画像座標との誤差が算出される。この誤差(以下、再投影誤差)は、両座標値の差分を求めることで得られるが、ピクセル単位で算出してもよいし、世界座標系に変換してメートル単位で算出してもよい。前述の
図5(a)及び(b)に示した例では、画像No.1とNo.3の再投影誤差がx座標は“0”、y座標で“10”となり、画像No.2の再投影誤差はx座標とy座標で共に“0”となる。
【0036】
ステップ406では、リファレンス画像の候補である複数のフレーム画像のすべてに対し、ステップ401で設定された画像特徴点についての再投影誤差の算出が完了しているか判定される。未処理のフレーム画像があれば、ステップ403に戻って処理が続行される。一方、すべてのフレーム画像に対してついて画像特徴点についての再投影誤差の算出が完了している場合はステップ407に進む。
【0037】
ステップ407では、各フレーム画像から求めた画像特徴点についての再投影誤差が比較され、再投影誤差の最も小さいフレーム画像が、リファレンス画像として選択される。前述の
図5(a)〜(c)に示した例では、画像No.1〜3のフレーム画像のうち、最も再投影誤差が小さい画像No.2のフレーム画像が、リファレンス画像として選択されることになる。
【0038】
以上が、本実施形態に係るリファレンス画像決定処理の内容である。こうして画像特徴点の再投影誤差の最も少ない画像をリファレンス画像として選択することで、キャリブレーション処理で得られたカメラの位置及び姿勢に最も近い条件で撮影されたフレーム画像を、位置補正処理におけるリファレンス画像とすることができる。
【0039】
なお、カメラが縦方向(y方向)にのみ振動している場合を例に説明を行ったが、横方向(x方向)にも振動している場合は、縦方向と横方向の差分の合計値が最小となるフレーム画像を選択すればよい。この際、縦方向の差分と横方向の差分とにそれぞれ異なる重み付けを行って評価を行ってもよい。また、ステップ401で複数の画像特徴点を設定した場合は、画像特徴点毎にステップ402〜ステップ406までの処理を行い、各画像特徴点について得られた再投影誤差の平均値もしくは合計値を用いて、誤差が最小のフレーム画像をリファレンス画像として選択すればよい。さらには、それぞれの画像特徴点について重要度や信頼度で重み付けして、再投影誤差の平均値もしくは合算値を求めてもよい。例えば、画像特徴点毎の再投影誤差に応じて、誤差の小さい画像特徴点の信頼度を高くしたり、画像特徴点を検出したカメラ台数や画像枚数が多いほど信頼度を高くするといった具合である。さらには、画像中央に近いほど重要度を高くするといったように、画像特徴点の座標位置に応じて重み付けを行ってもよい。
【0040】
<変形例>
本実施形態では、リファレンス画像を、キャリブレーション用画像の中から選択していた。これに代えて、例えばマーカを配置していない背景のみの撮影を別途行い、こうして得られたリファレンス用の動画像を構成するフレーム画像の中からリファレンス画像を選択するようにしてもよい。
【0041】
また、本実施例では、設定された画像特徴点について、画像上に再投影した二次元の画像座標(x,y)を求めていたが(ステップ402)。これに代えて、三次元のカメラ座標(x,y,z)を求めても構わない。この場合、カメラパラメータに基づいて、画像特徴点の世界座標(x_w,y_w,z_w)からカメラ座標(x,y,z)を求める公知の変換手法を適用すればよい。なお、画像座標に代えてカメラ座標を求める場合は、ステップ404で各フレーム画像における画像特徴点のカメラ座標が取得され、ステップ405ではその誤差が算出され、ステップ407で当該算出された誤差に基づきリファレンス画像が選択されることになる。
【0042】
また、本実施形態では、各カメラ110〜130がリファレンス画像決定部112を備え、自カメラについてのリファレンス画像の決定をそれぞれのカメラで行った。しかし、サーバ140において各カメラ110〜130についてのリファレンス画像をまとめて決定するように構成してもよい。同様に、本実施形態では各カメラ110〜130に備わった画像位置補正部113で行っている位置補正処理についても、サーバ140においてまとめて行うように構成してもよい。
【0043】
また、キャリブレーション結果のカメラ位置及び姿勢を基準としてリファレンス画像を決定する本実施形態の場合、キャリブレーション結果のカメラ位置及び姿勢はできるだけカメラの静止状態に近い方が好ましいといえる。そのため、キャリブレーション用画像の撮影時に大きな振動が検出された場合は、当該検出時のフレーム画像を除いてキャリブレーション処理を行うようにしてもよい。その場合、振動値の閾値を設け、検出された振動値が当該閾値より小さい場合のフレーム画像のみを使用してキャリブレーション処理を行えばよい。振動値を取得する手法としては、例えば、カメラに内蔵された加速度センサあるいはジャイロセンサなどのセンサからの出力データに基づき算出したり、複数のフレーム画像を比較してフレーム画像間のずれ量を算出するといった手法が挙げられる。そして、振動値の閾値については、予め設定してもよいし、ユーザが任意のフレーム画像を見ながら設定してもよい。また、全カメラで同じ閾値を用いてもよいし、各カメラの設置環境に応じ、カメラ毎に異なる閾値を設定してもよい。また、数パターンの閾値を予め用意しておき、撮影時の振動値もしくは振幅値によって閾値を切り替えるようにしてもよい。
【0044】
さらには、キャリブレーション結果を用いることなく、リファレンス画像の候補画像それぞれについて、評価対象とする画像特徴点の画像座標の平均値を算出し、平均値に最も近い画像をリファレンス画像として選択するようにしてもよい。特に、キャリブレーション用画像をリファレンス画像の候補として用いる場合は、キャリブレーション結果を用いる場合とほぼ同じ結果が得られる。キャリブレーション処理においても、それぞれの画像における画像特徴点の座標を用いてカメラパラメータを求めているためである。ただし、キャリブレーション処理では他カメラの画像も使用してカメラパラメータを求めるため、完全に同じ結果になるとは限らない。
【0045】
また、リファレンス画像の候補画像の撮影時に、センサ等を用いて振動量を計測し、最も振動量の少ない画像をリファレンス画像として選択するようにしてもよい。これにより、カメラが最も静止状態に近い状態で撮影された画像をリファレンス画像とすることができる。キャリブレーション用画像から得られる平均的なカメラの位置及び姿勢は、カメラの静止状態に近くなる場合が多いため、この手法の場合は、キャリブレーション結果のカメラパラメータに最も近い画像を選択する場合とほぼ同じ結果が得られる。ただし、キャリブレーション用画像内に、カメラの静止状態に対して片寄った振動状態での画像が多く含まれる場合、キャリブレーション結果としては片寄った振動状態でのカメラパラメータが求められることになるため、完全に同じ結果になるとは限らない。
【0046】
また、決定されたリファレンス画像から新たにカメラパラメータを求め、当該求めたカメラパラメータと、キャリブレーション結果のカメラパラメータとの差分を位置補正処理後に算出し、当該差分を考慮した仮想視点映像を生成するようにしてもよい。この場合、例えばサーバ140内にカメラパラメータ差分算出部を新たに設け、カメラパラメータ差分算出部は、キャリブレーション処理で得られた各カメラ110〜130のカメラパラメータをキャリブレーション部142から受け取って保持するようにする。また、リファレンス画像として決定された画像のデータをリファレンス画像決定部112から受け取ると、当該画像データから改めてカメラパラメータを求める。そして、各カメラ110〜130について、保持しておいたキャリブレーション結果のカメラパラメータと、リファレンス画像から求めたカメラパラメータとの差分を算出し、当該差分のデータを仮想視点映像生成部143に渡す。そして、仮想視点映像生成部143では、位置補正処理された多視点映像に対し、差分に応じて画像位置を再調整した上で、仮想視点映像の生成を行う。これにより、より高画質の仮想視点映像を得ることができる。
【0047】
以上のとおり本実施形態によれば、キャリブレーション結果として得られたカメラの位置及び姿勢に最も近い位置及び姿勢のカメラから撮影した画像が、位置補正処理におけるリファレンス画像として決定される。これにより、複数のカメラを用いて撮影した多視点映像に基づき仮想視点映像を生成する場面において、異なるタイミングで行われるカメラの位置及び姿勢の推定結果を一致させることができる。
【0048】
次に、仮想視点映像の生成に用いるカメラパラメータを随時更新する処理を追加した態様を、実施形態2として説明する。なお、実施形態1と共通する部分については説明を省略ないしは簡略化し、以下では差異点を中心に説明を行うものとする。
【0049】
図6は、本実施形態に係る画像処理システムの構成を示すブロック図である。本実施形態の画像処理システム100も、その基本的構成は実施形態1と同じであり、カメラ110〜130及びサーバ140から成る。
図1の画像処理システム100と同一の処理を行うものについては、同一の符号を付与して表している。実施形態1との違いは、サーバ140内にカメラパラメータ管理部601が追加されている点である。
【0050】
カメラパラメータ管理部601は、キャリブレーション結果として得られた各カメラ110〜130のカメラパラメータをキャリブレーション部142から受け取り、仮想視点映像の生成時に使用する各カメラ110〜130のカメラパラメータを管理する。そして、リファレンス画像として選択された画像をリファレンス画像決定部112から受信すると、当該画像からカメラパラメータを求め、当該画像を撮影したカメラに対応するカメラパラメータを、新たに得られた内容で更新する。なお、カメラパラメータの求め方は、キャリブレーション部142においてカメラパラメータを求める手法と同様であり、特に限定されない。
【0051】
図7は、本実施形態に係る、カメラパラメータの更新処理を含む、仮想視点映像生成までの一連の処理の流れを示すフローチャートである。この一連の処理は、サーバ140が備えるCPU(不図示)が、ROMやHDD等の記憶媒体(不図示)にされた所定のプログラムをRAM(不図示)に展開してこれを実行することで実現される。
【0052】
ステップ701〜ステップ704は、実施形態1の
図2のフローにおけるステップ201〜ステップ206にそれぞれ対応する。すなわち、まず、カメラ110〜130の設置が完了した状態でキャリブレーション用画像が撮影される(ステップ701)。そして、キャリブレーション用画像の撮影が完了した段階で(ステップ702でYes)、キャリブレーション処理が実行されて各カメラ110〜130のカメラパラメータが求められる(ステップ703)。そして、各カメラ110〜130におけるリファレンス画像決定部112において、キャリブレーション用画像を構成するフレーム画像の中からリファレンス画像として用いる1のフレーム画像が選択される(ステップ704)。リファレンス画像として選択されたフレーム画像のデータは、本実施形態の場合、画像位置補正部113とサーバ140に送られる。
【0053】
ステップ705では、サーバ140内のカメラパラメータ管理部601において、リファレンス画像として選択された、各カメラに対応するフレーム画像からカメラパラメータが求められる。そして、各カメラについてのカメラパラメータが、リファレンス画像から求めたカメラパラメータの内容で更新される。以降のステップ707〜ステップ710は、実施形態1の
図2のフローにおけるステップ201〜ステップ206にそれぞれ対応する。すなわち、仮想視点映像の生成に用いる多視点映像を構成する動画像が各カメラで撮影され(ステップ707)、撮影された動画像それぞれに対してリファレンス画像を用いた位置補正処理が実行される(ステップ708)。そして、画像位置が補正された多視点映像データ及び、ステップ706で更新されたカメラパラメータを用いて、所望の仮想視点映像が生成される(ステップ709、710)。
【0054】
以上が、本実施形態に係る、仮想視点映像が生成されるまでの一連の処理の流れである。このようにカメラパラメータを更新することで、仮想視点映像生成に用いる位置補正後の多視点映像と、仮想視点映像生成に使用するカメラパラメータが表すカメラの位置及び姿勢を完全に一致させることができる。
【0055】
なお、本実施形態の場合、他カメラの画像データも使用して求めたキャリブレーション結果のカメラパラメータを更新によって変更してしまうため、カメラ間での位置合わせにずれが生じることになり、画質劣化の要因となる場合がある。つまり、カメラ間での位置合わせのずれ量、あるいは仮想視点映像生成の手法やカメラの配置状況などによっては、カメラパラメータを更新しない方が画質劣化を抑えることができる場合がある。そこで、キャリブレーション結果のカメラパラメータとリファレンス画像から求めたカメラパラメータとの差分の大きさ、カメラ間での位置合わせのずれ量、仮想視点映像の生成手法に応じて、カメラパラメータを更新するか否かを決定してもよい。もしくは、それぞれのカメラパラメータを用いて仮想視点映像を生成した上で、出来上がった仮想視点映像の画質評価を行い、カメラパラメータを更新するか否かを判定するようにしてもよい。
【0056】
また、上記の実施形態では、多視点映像という表現を用いたが、複数視点であれば良い。例えば3つの異なる視点の映像は、本実施形態で説明する多視点映像の範疇である。
【0057】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。