(57)【要約】【課題】仮想視点画像の生成に要する時間を短縮することである。【解決手段】画像処理システムは、複数のカメラが被写体を複数の方向から撮影した画像から仮想視点画像を生成する画像処理システムであって、生成される仮想視点画像に係る第１の仮想視点に基づいて、第１の予測仮想視点を予測する第１の予測手段と、前記第１の予測仮想視点の仮想視点画像の生成に必要な画像を、前記複数のカメラにより撮影された画像を記憶するストレージから読み出す制御手段とを有する。【選択図】図１８
2019079468.tif 000002
【特許請求の範囲】
【請求項１】
複数のカメラが被写体を複数の方向から撮影した画像から仮想視点画像を生成する画像処理システムであって、
生成される仮想視点画像に係る第１の仮想視点に基づいて、第１の予測仮想視点を予測する第１の予測手段と、
前記第１の予測仮想視点の仮想視点画像の生成に必要な画像を、前記複数のカメラにより撮影された画像を記憶するストレージから読み出す制御手段と
を有することを特徴とする画像処理システム。
【請求項２】
前記制御手段は、前記第１の予測仮想視点の仮想視点画像の生成に必要な画像を、前記ストレージから読み出してキャッシュに書き込むことを特徴とする請求項１に記載の画像処理システム。
【請求項３】
第２の仮想視点から所定時間後の第２の予測仮想視点を予測する第２の予測手段をさらに有し、
前記制御手段は、前記第１の予測仮想視点の仮想視点画像の生成に必要な画像を前記ストレージから読み出して前記キャッシュ内の前記第１の予測手段のための第１のキャッシュ領域に書き込み、前記第２の予測仮想視点の仮想視点画像の生成に必要な画像を前記ストレージから読み出して前記キャッシュ内の前記第２の予測手段のための第２のキャッシュ領域に書き込むことを特徴とする請求項２に記載の画像処理システム。
【請求項４】
前記第１の予測手段の優先度は、前記第２の予測手段の優先度より高く、
前記制御手段は、前記第１の予測仮想視点の仮想視点画像の生成に必要な画像と前記第２の予測仮想視点の仮想視点画像の生成に必要な画像との間で重複する画像を前記ストレージから読み出して前記キャッシュ内の前記第１のキャッシュ領域に書き込み、前記重複する画像を前記キャッシュ内の前記第２のキャッシュ領域に書き込まないことを特徴とする請求項３に記載の画像処理システム。
【請求項５】
前記制御手段は、前記第１の予測仮想視点の仮想視点画像の生成に必要な画像のデータ量を基に前記キャッシュ内に前記第１のキャッシュ領域を確保し、前記第２の予測仮想視点の仮想視点画像の生成に必要な画像のデータ量から前記重複する画像のデータ量を削除したデータ量を基に前記キャッシュ内に前記第２のキャッシュ領域を確保することを特徴とする請求項４に記載の画像処理システム。
【請求項６】
前記制御手段は、前記第１の予測仮想視点の仮想視点画像の生成に必要な画像のうちの前記キャッシュに記憶されていない画像を前記ストレージから読み出して前記キャッシュに書き込むことを特徴とする請求項２〜５のいずれか１項に記載の画像処理システム。
【請求項７】
前記制御手段は、前記キャッシュに書き込まれた画像を上書き禁止に設定し、前記キャッシュに対して一定時間アクセスされていない画像を上書き許可に設定することを特徴とする請求項２〜６のいずれか１項に記載の画像処理システム。
【請求項８】
前記第１の予測手段は、前記第１の仮想視点の移動方向、速度、加速度、前記第１の仮想視点の方向の変化量のうちの１つ以上を用いて、前記第１の予測仮想視点を予測することを特徴とする請求項１〜７のいずれか１項に記載の画像処理システム。
【請求項９】
複数のカメラが被写体を複数の方向から撮影した画像から仮想視点画像を生成する画像処理システムの制御方法であって、
生成される仮想視点画像に係る第１の仮想視点に基づいて、第１の予測仮想視点を予測する第１の予測ステップと、
前記第１の予測仮想視点の仮想視点画像の生成に必要な画像を、前記複数のカメラにより撮影された画像を記憶するストレージから読み出す読み出しステップと
を有することを特徴とする画像処理システムの制御方法。
【請求項１０】
コンピュータを、請求項１〜８のいずれか１項に記載された画像処理システムの各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理システム、画像処理システムの制御方法及びプログラムに関する。
【背景技術】
【０００２】
複数のカメラを異なる位置に設置して多視点で同期撮影し、当該撮影により得られた複数の画像を用いて、カメラの設置位置から撮影した画像だけでなく、視点を任意に変更可能な仮想視点画像を生成する技術がある。仮想視点画像は、例えば、サーバなどの画像処理部が複数のカメラにより撮影された画像をデータベースから取得し、三次元モデルを生成し、レンダリングなどの処理を施すことで生成される。
【０００３】
特許文献１には、同一の範囲を取り囲むように複数の撮像装置を配置して、その同一の範囲を撮影した画像を用いて、任意の指定に対応する仮想視点画像を生成、表示する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２１５８２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
仮想視点画像の生成に必要となるカメラの撮影画像は、仮想視点に応じて異なる。仮想視点の位置や視線方向を連続して遷移させてその遷移に従った仮想視点画像を連続して生成する場合、必要となるカメラの撮影画像は刻一刻と変化し得る。このような場合にデータベースから仮想視点画像の生成に必要な画像データを逐次読み出すとすると、仮想視点画像の生成に時間がかかったり、遅延が発生したりすることが生じ得る。
【０００６】
本発明の目的は、仮想視点画像の生成に要する時間を短縮することである。
【課題を解決するための手段】
【０００７】
本発明の画像処理システムは、複数のカメラが被写体を複数の方向から撮影した画像から仮想視点画像を生成する画像処理システムであって、生成される仮想視点画像に係る第１の仮想視点に基づいて、第１の予測仮想視点を予測する第１の予測手段と、前記第１の予測仮想視点の仮想視点画像の生成に必要な画像を、前記複数のカメラにより撮影された画像を記憶するストレージから読み出す制御手段とを有する。
【発明の効果】
【０００８】
本発明によれば、仮想視点画像の生成に要する時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】画像処理システムの構成を説明するための図である。
【図２】カメラアダプタの機能構成を説明するためのブロック図である。
【図３】フロントエンドサーバの機能構成を説明するためのブロック図である。
【図４】データベースの機能構成を説明するためのブロック図である。
【図５】バックエンドサーバの機能構成を説明するためのブロック図である。
【図６】仮想カメラ操作ＵＩの機能構成を説明するためのブロック図である。
【図７】仮想カメラについて説明するための図である。
【図８】ワークフローを説明するためのフローチャートである。
【図９】撮影時確認ワークフローを説明するためのフローチャートである。
【図１０】設置時キャリブレーションを説明するためのシーケンス図である。
【図１１】画像処理システムの動作を説明するためのフローチャートである。
【図１２】設置時キャリブレーションを説明するためのフローチャートである。
【図１３】注視点グループについて説明するための図である。
【図１４】ファイル書き込み処理について説明するためのフローチャートである。
【図１５】ファイル読み出し処理について説明するためのフローチャートである。
【図１６】仮想カメラ画像生成処理について説明するためのシーケンス図である。
【図１７】レンダリング処理について説明するためのフローチャートである。
【図１８】データ先読み処理を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る画像処理システム１００の構成例を示す図である。画像処理システム１００は、競技場（スタジアム）やコンサートホールなどの施設に複数のカメラ及びマイクを設置し、撮影及び集音を行う。画像処理システム１００は、センサシステム１１０ａ〜１１０ｚ、画像コンピューティングサーバ２００、コントローラ３００、スイッチングハブ１８０、及びエンドユーザ端末１９０を有する。コントローラ３００は、制御ステーション３１０と仮想カメラ操作ＵＩ３３０を有する。制御ステーション３１０は、それぞれのブロックに対して、ネットワーク３１０ａ〜３１０ｃ、１８０ａ、１８０ｂ、及び１７０ａ〜１７０ｙを通じて動作状態の管理及びパラメータ設定制御等を行う。以下、センサシステム１１０ａからセンサシステム１１０ｚまでを区別せずセンサシステム１１０と記載する。各センサシステム１１０内の装置についても同様に、特別な説明がない場合は区別せず、マイク１１１、カメラ１１２、雲台１１３、外部センサ１１４、及びカメラアダプタ１２０と記載する。なお、画像は、動画と静止画の概念を含む。画像処理システム１００は、静止画及び動画の何れについても処理可能である。センサシステム１１０ａ〜１１０ｚは、それぞれカメラ１１２ａ〜１１２ｚを有し、被写体を複数の方向から撮影する。複数のセンサシステム１１０同士はデイジーチェーンにより接続されるので、接続ケーブル数の削減や配線作業の省力化ができる。また、複数のセンサシステム１１０をいくつかのグループに分割して、分割したグループ単位でセンサシステム１１０間をデイジーチェーン接続してもよい。
【００１１】
センサシステム１１０ａは、マイク１１１ａ、カメラ１１２ａ、雲台１１３ａ、外部センサ１１４ａ、及びカメラアダプタ１２０ａを有する。センサシステム１１０ｂ〜１１０ｚも、センサシステム１１０ａと同様の構成である。マイク１１１ａは、音声を集音する。カメラ１１２ａは、画像を撮影する。カメラアダプタ１２０ａは、その画像を画像処理し、デイジーチェーン１７０ａを通して、画像及び音声をセンサシステム１１０ｂのカメラアダプタ１２０ｂに伝送する。同様に、センサシステム１１０ｂは、集音された音声と撮影された画像を、センサシステム１１０ａの画像及び音声と合わせてセンサシステム１１０ｃに伝送する。センサシステム１１０ａ〜１１０ｚが取得した画像及び音声は、センサシステム１１０ｚからネットワーク１８０ｂを用いてスイッチングハブ１８０に伝送され、その後、画像コンピューティングサーバ２００に伝送される。
【００１２】
画像コンピューティングサーバ２００は、フロントエンドサーバ２３０、データベース２５０、バックエンドサーバ２７０及びタイムサーバ２９０を有し、センサシステム１１０ｚから取得したデータの処理を行う。タイムサーバ２９０は、時刻及び同期信号を配信する機能を有し、スイッチングハブ１８０を介してセンサシステム１１０ａ〜１１０ｚに時刻及び同期信号を配信する。カメラアダプタ１２０ａ〜１２０ｚは、カメラ１１２ａ〜１１２ｚを時刻と同期信号を基にＧｅｎｌｏｃｋさせ画像フレーム同期を行う。画像処理システム１００は、同じタイミングで撮影された複数の撮影画像に基づいて仮想視点画像を生成できるため、撮影タイミングのずれによる仮想視点画像の品質低下を抑制できる。
【００１３】
フロントエンドサーバ２３０は、センサシステム１１０ｚから取得した画像及び音声から、セグメント化された伝送パケットを再構成してデータ形式を変換し、カメラの識別子やデータ種別、フレーム番号に応じて再構成データをデータベース２５０に書き込む。バックエンドサーバ２７０は、仮想カメラ操作ＵＩ３３０から視点の指定を受け付け、視点に基づいて、データベース２５０から対応する画像及び音声データを読み出し、レンダリング処理を行って仮想視点画像を生成する。画像処理システム１００は、複数のカメラ１１２が被写体を複数の方向から撮影した画像から仮想視点画像を生成する。
【００１４】
また、バックエンドサーバ２７０は、仮想カメラ操作ＵＩ３３０から受け付けた視点の履歴を用いて、所定時間後の視点について予測を行い、所定時間後の視点に対応する画像および音声データを予測し、これらのデータをデータベース２５０に出力する。バックエンドサーバ２７０は、レンダリング処理した画像及び音声をエンドユーザ端末１９０に送信する。エンドユーザ端末１９０は、ユーザに対して、視点の指定に応じた画像及び音声を再生することが出来る。具体的には、バックエンドサーバ２７０は、複数のカメラ１１２による撮影画像から抽出された所定領域の画像データと、ユーザ操作により指定された視点に基づいて、仮想視点コンテンツを生成し、生成した仮想視点コンテンツをエンドユーザ端末１９０に提供する。仮想視点コンテンツは、仮想的な視点から被写体を撮影した場合に得られる画像としての仮想視点画像を含むコンテンツである。
【００１５】
図２は、カメラアダプタ１２０の機能ブロックの構成例を示す図である。カメラアダプタ１２０は、ネットワークアダプタ６１１０、伝送部６１２０、画像処理部６１３０及び外部機器制御部６１４０を有する。ネットワークアダプタ６１１０は、データ送受信部６１１１及び時刻制御部６１１２を有する。データ送受信部６１１１は、デイジーチェーン１７０、ネットワーク２９１及びネットワーク３１０ａを介して他のカメラアダプタ１２０、フロントエンドサーバ２３０、タイムサーバ２９０及び制御ステーション３１０とデータ通信を行う。例えばデータ送受信部６１１１は、カメラ１１２による撮影画像から前景背景分離部６１３１により分離された前景画像と背景画像とを、別のカメラアダプタ１２０に対して出力する。出力先のカメラアダプタ１２０は、画像処理システム１００内のカメラアダプタ１２０のうち、データルーティング処理部６１２２の処理に応じて予め定められた順序における次のカメラアダプタ１２０である。各カメラアダプタ１２０が前景画像と背景画像とを出力することで、複数の視点から撮影された前景画像と背景画像に基づいて仮想視点画像が生成される。時刻制御部６１１２は、タイムサーバ２９０との間で送受信したデータのタイムスタンプを保存する機能と、タイムサーバ２９０と時刻同期を行う。
【００１６】
伝送部６１２０は、ネットワークアダプタ６１１０を介してスイッチングハブ１８０等に対するデータの伝送を制御する機能を有し、以下の機能部を有する。データ圧縮・伸張部６１２１は、データ送受信部６１１１を介して送受信されるデータに対して所定の圧縮方式、圧縮率、及びフレームレートを適用した圧縮を行う機能と、圧縮されたデータを伸張する機能を有する。データルーティング処理部６１２２は、後述するデータルーティング情報保持部６１２５が保持するデータを利用し、データ送受信部６１１１が受信したデータ及び画像処理部６１３０で処理されたデータのルーティング先を決定する。さらに、データルーティング処理部６１２２は、決定したルーティング先へデータを送信する機能を有する。時刻同期制御部６１２３は、タイムサーバ２９０と時刻同期に係わる処理を行う機能を有する。画像・音声伝送処理部６１２４は、画像データ又は音声データを、データ送受信部６１１１を介して他のカメラアダプタ１２０又はフロントエンドサーバ２３０へ転送するためのメッセージを作成する機能を有する。また、画像・音声伝送処理部６１２４は、他のカメラアダプタ１２０からデータ送受信部６１１１を介して受信したメッセージに含まれるデータ種別に応じて、パケットサイズにフラグメントされたデータ情報を画像データ又は音声データに復元する。データルーティング情報保持部６１２５は、データ送受信部６１１１で送受信されるデータの送信先を決定するためのアドレス情報を保持する機能を有する。
【００１７】
画像処理部６１３０は、カメラ制御部６１４１の制御によりカメラ１１２が撮影した画像データ及び他のカメラアダプタ１２０から受取った画像データに対して処理を行う機能を有し、以下の機能部を有する。前景背景分離部６１３１は、カメラ１１２が撮影した画像データを前景画像と背景画像に分離する機能を有する。前景画像は、例えば人物等の重要なオブジェクトの画像であり、背景画像はそれ以外の画像である。三次元モデル情報生成部６１３２は、前景背景分離部６１３１で分離された前景画像及び他のカメラアダプタ１２０から受取った前景画像を利用し、例えばステレオカメラの原理を用いて三次元モデルに係わる画像情報を生成する機能を有する。キャリブレーション制御部６１３３は、キャリブレーションに必要な画像データを、カメラ制御部６１４１を介してカメラ１１２から取得し、キャリブレーションに係わる演算処理を行うフロントエンドサーバ２３０に送信する機能を有する。
【００１８】
外部機器制御部６１４０は、以下の機能部を有する。カメラ制御部６１４１は、カメラ１１２と接続し、カメラ１１２の制御、撮影画像取得、同期信号提供、及び時刻設定などを行う機能を有する。マイク制御部６１４２は、マイク１１１を制御する機能を有する。雲台制御部６１４３を制御する機能を有する。センサ制御部６１４４は、外部センサ１１４を制御する機能を有する。
【００１９】
図３は、フロントエンドサーバ２３０の機能ブロックの構成例を示す図である。制御部２１１０は、フロントエンドサーバ２３０の各機能ブロック及びフロントエンドサーバ２３０のシステム全体の制御を行う。また、制御部２１１０は、制御ステーション３１０から制御指示及びスタジアムＣＡＤデータ（スタジアム形状データ）を受信し、スタジアムＣＡＤデータをＣＡＤデータ記憶部２１３５と撮影データファイル生成部２１８０に送信する。データ入力制御部２１２０は、ネットワークを通してカメラアダプタ１２０から前景画像、背景画像、被写体の三次元モデル、及び音声データを取得する。前景画像は仮想視点画像の生成のための撮影画像の前景領域に基づく画像データであり、背景画像は当該撮影画像の背景領域に基づく画像データである。また、データ入力制御部２１２０は、取得した前景画像及び背景画像をデータ同期部２１３０に送信し、カメラキャリブレーション撮影画像データをキャリブレーション部２１４０に送信する。
【００２０】
データ同期部２１３０は、カメラアダプタ１２０から取得したデータを一次的に記憶し、前景画像、背景画像、音声データ及び三次元モデルデータが揃うまでバッファする。なお、前景画像、背景画像、音声データ及び三次元モデルデータをまとめて、以降では撮影データと称する。データがそろったら、データ同期部２１３０は、前景画像及び背景画像を画像処理部２１５０に、三次元モデルデータを三次元モデル結合部２１６０に、音声データを撮影データファイル生成部２１８０にそれぞれ送信する。ＣＡＤデータ記憶部２１３５は、制御部２１１０から受け取ったスタジアム形状を示す三次元データを保存し、画像結合部２１７０に対してスタジアム形状データを送信する。キャリブレーション部２１４０は、カメラのキャリブレーション動作を行い、キャリブレーションによって得られたカメラパラメータを非撮影データファイル生成部２１８５及び三次元モデル結合部２１６０に送信する。
【００２１】
画像処理部２１５０は、前景画像や背景画像に対して、カメラ間の色や輝度値の合わせこみ等の画像処理を行い、前景画像を撮影データファイル生成部２１８０に送信し、背景画像を画像結合部２１７０に送信する。三次元モデル結合部２１６０は、カメラアダプタ１２０から取得した同一時刻の三次元モデルデータをキャリブレーション部２１４０が生成したカメラパラメータを用いて結合し、スタジアム全体における前景画像の三次元モデルデータを生成する。三次元モデルは、撮影データファイル生成部２１８０に送信される。画像結合部２１７０は、画像処理部２１５０から背景画像を取得し、ＣＡＤデータ記憶部２１３５からスタジアムの三次元形状データ（スタジアム形状データ）を取得し、三次元形状データの座標に対する背景画像の位置を特定し、背景画像を結合する。
【００２２】
撮影データファイル生成部２１８０は、データ同期部２１３０から音声データを、画像処理部２１５０から前景画像を、三次元モデル結合部２１６０から三次元モデルデータを、画像結合部２１７０から三次元形状に結合された背景画像を取得する。そして、撮影データファイル生成部２１８０は、取得したこれらのデータをそれぞれの時間情報に基づいて対応付けてデータベース（ＤＢ）アクセス制御部２１９０に出力する。非撮影データファイル生成部２１８５は、キャリブレーション部２１４０からカメラパラメータ、制御部２１１０からスタジアムの三次元形状データを取得し、ファイル形式に応じて成形した後にＤＢアクセス制御部２１９０に送信する。ＤＢアクセス制御部２１９０は、撮影データファイル生成部２１８０及び非撮影データファイル生成部２１８５から受信したファイルをデータベース２５０に対して送信する。
【００２３】
図４は、データベース２５０の機能ブロックの構成例を示す図である。制御部２４１０は、データベース２５０の各機能ブロック及びデータベース２５０のシステム全体の制御を行う。データ入力部２４２０は、フロントエンドサーバ２３０から撮影データや非撮影データのファイルを受信し、受信したファイルを書込み用キャッシュ２４４０に送信する。データ出力部２４３０は、バックエンドサーバ２７０から要求されたデータが書込み用キャッシュ２４４０及び読み出し用キャッシュ２４７０のいずれに保存されているか判断し、保存された先からデータを読み出してバックエンドサーバ２７０に送信する。書込み用キャッシュ２４４０は、データ入力部２４２０から取得した撮影データや非撮影データを一定量格納し、それを超える古いデータを一次ストレージ２４５０へ書き込む。二次ストレージ２４６０には、撮影が完了した後、データのバックアップとして一次ストレージ２４５０に格納されたデータが書き出される。
【００２４】
読み出し用キャッシュ２４７０には、一次ストレージ２４５０の所定の撮影データや非撮影データが格納される。読み出し用キャッシュ２４７０は、データ出力部２４３０及び読み出し用キャッシュ制御部２４８０の要求に従ってデータの読み出しを行う。読み出し用キャッシュ制御部２４８０は、バックエンドサーバ２７０によって予測された所定時間後の視点に対応するデータを受け取り、読み出し用キャッシュ２４７０に既に格納されているかを確認する。そして、読み出し用キャッシュ制御部２４８０は、読み出し用キャッシュ２４７０に格納されていないデータのみ読み出し用キャッシュ２４７０に読み出し要求を出す。読み出し用キャッシュ制御部２４８０は、バックエンドサーバ２７０によって予測された所定時間後の視点に対応するデータについては、読み出し用キャッシュ２４７０に対して新規データによる上書きがされないように制御する。
【００２５】
図５は、バックエンドサーバ２７０の構成例を示す図である。データ受信部３００１は、データベース２５０から、スタジアムの形状を示す三次元データ（スタジアム形状データ）、前景画像、背景画像、前景画像の三次元モデル（以降、前景三次元モデルと称する）、及び音声を受信する。また、データ受信部３００１は、コントローラ３００から仮想カメラパラメータを受信する。仮想カメラパラメータは、仮想視点の位置や姿勢などを表すデータであり、例えば、外部パラメータの行列と内部パラメータの行列が用いられる。背景メッシュモデル管理部３０１３は、データベース２５０から受信した背景メッシュモデルを記憶する。背景テクスチャ貼り付け部３００２は、背景メッシュモデル管理部３０１３から背景メッシュモデル（スタジアム形状データ）取得する。そして、背景テクスチャ貼り付け部３００２は、背景メッシュモデルで示される三次元空間形状に対して背景画像をテクスチャとして貼り付けることでテクスチャ付き背景メッシュモデルを生成する。前景テクスチャ決定部３００３は、前景画像及び前景三次元モデル群より前景三次元モデルのテクスチャ情報を決定する。前景テクスチャ境界色合わせ部３００４は、各前景三次元モデルのテクスチャ情報と各三次元モデル群からテクスチャの境界の色合わせを行い、前景オブジェクト毎に色付き前景三次元モデル群を生成する。仮想視点前景画像生成部３００５は、仮想カメラパラメータに基づいて、前景画像群を仮想視点からの見た目となるように透視変換する。レンダリング部３００６は、レンダリングモード管理部３０１４で決定された、仮想視点画像の生成に用いられる生成方式に基づいて、背景画像と前景画像をレンダリングして全景の仮想視点画像を生成する。仮想視点音声生成部３００７は、仮想カメラパラメータに基づいて、仮想視点において聞こえる音声（音声群）を生成する。合成部３００８は、レンダリング部３００６で生成された画像群と仮想視点音声生成部３００７で生成された音声を合成して仮想視点コンテンツを生成する。画像出力部３００９は、コントローラ３００とエンドユーザ端末１９０へ仮想視点コンテンツを出力する。
【００２６】
前景オブジェクト決定部３０１０は、仮想カメラパラメータと前景三次元モデルに含まれる前景オブジェクトの空間上の位置を示す前景オブジェクトの位置情報から、表示される前景オブジェクト群を決定して、前景オブジェクトリストを出力する。要求リスト生成部３０１１は、指定時間の前景オブジェクトリストに対応する前景画像群と前景三次元モデル群、及び背景画像と音声データをデータベース２５０に要求するための、要求リストを生成する。要求データ出力部３０１２は、入力された要求リストを基にデータベース２５０に対してデータ要求のコマンドを出力する。
【００２７】
予想仮想視点算出部３０１５は、コントローラ３００が出力する仮想カメラパラメータを一定時間量保持し、保持した仮想カメラパラメータから所定時間後の仮想視点を予測し、予測仮想カメラパラメータを算出する。仮想カメラパラメータは、仮想カメラの位置や姿勢を表すデータである。予想仮想視点算出部３０１５は、仮想カメラの位置の変化量から予測仮想視点の位置を算出し、仮想カメラの姿勢の変化量から予測仮想視点の視線の向きを算出する。また、予想仮想視点算出部３０１５は、仮想カメラのズーム倍率の変化量から、予測仮想視点におけるズーム倍率を算出する。予想仮想視点算出部３０１５は、算出した予測仮想カメラパラメータを予測仮想視点前景オブジェクト決定部３０１６に出力する。仮想カメラの位置の変化量は、前のフレームの仮想カメラからの位置の変化と仮想カメラの移動方向、すなわち、速度と移動方向によって算出される。さらに、仮想カメラの位置の変化量は、前のフレームの仮想カメラの加速度によって所定時間後の仮想カメラの速度を予測し、その予測された速度と移動方向に基づいて変化量を算出することができる。また、仮想カメラが直線運動でない場合、予想仮想視点算出部３０１５は、仮想視点の方向の変化量に基づいて所定時間後の仮想視点の方向を算出し、予測された速度によって、位置の変化量を算出できる。
【００２８】
予測仮想視点前景オブジェクト決定部３０１６は、予測仮想カメラパラメータと、前景オブジェクトの空間上の位置を示す前景オブジェクトの位置情報から、予測仮想視点における前景オブジェクト群を決定し、予測仮想視点前景オブジェクトリストを出力する。ここで、予測仮想視点における前景オブジェクト群は、前景オブジェクト決定部３０１０と同様に、レンダリングモード管理部３０１４で決定されるレンダリングモードと連動して決定される。予測仮想視点要求リスト生成部３０１７は、予測仮想視点前景オブジェクトリストに対応する前景画像群と前景三次元モデル群、及び背景画像と音声データをデータベース２５０に要求するための、予測仮想視点要求リストを生成する。要求データ出力部３０１８は、入力された予測仮想視点要求リストを基にデータベース２５０に対してデータ要求のコマンドを出力する。
【００２９】
図６は、仮想カメラ操作ＵＩ３３０の機能構成例を示す図である。仮想カメラ８００１について図７（ａ）を用いて説明する。仮想カメラ８００１は、設置されたどのカメラ１１２とも異なる視点において撮影を行うことができる仮想的なカメラである。即ち、画像処理システム１００において生成される仮想視点画像が、仮想カメラ８００１による撮影画像である。図７（ａ）において、円周上に配置された複数のセンサシステム１１０のそれぞれがカメラ１１２を有している。例えば、仮想視点画像を生成することにより、あたかもサッカーゴールの近くの仮想カメラ８００１で撮影されたかのような画像を生成することができる。仮想カメラ８００１の撮影画像である仮想視点画像は、設置された複数のカメラ１１２の画像を画像処理することで生成される。オペレータ（ユーザ）は仮想カメラ８００１の位置等を操作することで、自由な視点からの撮影画像を得ることができる。
【００３０】
仮想カメラ操作ＵＩ３３０は、仮想カメラ管理部８１３０及び操作ＵＩ部８１２０を有する。仮想カメラ操作部８１０１は、オペレータの仮想カメラ８００１に対する操作、すなわち仮想視点画像の生成に係る視点を指定するためのユーザによる指示を受け付けて処理する。オペレータの操作内容は、例えば、位置の変更（移動）、姿勢の変更（回転）、及びズーム倍率の変更などである。オペレータは、仮想カメラ８００１を操作するために、例えば、ジョイスティック、ジョグダイヤル、タッチパネル、キーボード、及びマウスなどの入力装置を使う。また、オペレータは、軌跡を指定して仮想カメラ８００１を操作することができる。例えばオペレータは、ゴールポストを中心とする円周上を仮想カメラ８００１が回るという軌跡を、タッチパッドに円を書いて指定する。仮想カメラ８００１は、指定された軌跡に沿ってゴールポストの回りを移動する。このとき、仮想カメラ８００１が常にゴールポストの方を向くように自動で姿勢を変更してもよい。仮想カメラ操作部８１０１は、ライブ画像及びリプレイ画像の生成に利用することができる。リプレイ画像を生成する際は、カメラの位置及び姿勢の他に時間を指定する操作が行われる。リプレイ画像では、例えば、時間を止めて仮想カメラ８００１を移動させることも可能である。
【００３１】
仮想カメラパラメータ導出部８１０２は、仮想カメラ８００１の位置や姿勢などを表す仮想カメラパラメータを導出する。仮想カメラ制約管理部８１０３は、仮想カメラ操作部８１０１により受け付けられる指示に基づく視点の指定が制限される制限領域を特定するための情報を取得し管理する。この情報は例えば、仮想カメラ８００１の位置や姿勢、ズーム値などに関する制約である。仮想カメラ８００１は、カメラ１１２と異なり、自由に視点を移動して撮影を行うことができるが、常にあらゆる視点からの画像を生成できるとは限らない。例えば、どのカメラ１１２にも映っていない対象物が映る向きに仮想カメラ８００１を向けても、その撮影画像を取得することはできない。また、仮想カメラ８００１のズーム倍率を上げると、解像度の制約により画質が劣化する。そこで、一定基準の画質を保つ範囲のズーム倍率などを仮想カメラ制約としてよい。
【００３２】
衝突判定部８１０４は、仮想カメラパラメータ導出部８１０２で導出された仮想カメラパラメータが仮想カメラ制約を満たしているかを判定する。衝突判定部８１０４は、制約を満たしていない場合は、例えばオペレータによる操作入力をキャンセルし、制約を満たす位置から仮想カメラ８００１が動かないよう制御したり、制約を満たす位置に仮想カメラ８００１を戻したりする。フィードバック出力部８１０５は、衝突判定部８１０４の判定結果をオペレータにフィードバックする。例えば、オペレータの操作により、仮想カメラ制約が満たされなくなる場合に、そのことをオペレータに通知する。
【００３３】
仮想カメラパス管理部８１０６は、オペレータの操作に応じた仮想カメラ８００１のパス（図７（ｂ）の仮想カメラパス８００２）を管理する。仮想カメラパス８００２は、仮想カメラ８００１の１フレーム毎の位置や姿勢を表す情報の列である。図７（ｂ）を参照して説明する。例えば、仮想カメラ８００１の位置や姿勢を表す情報として仮想カメラパラメータが用いられる。例えば、６０フレーム／秒のフレームレートの設定における１秒分の情報は、６０個の仮想カメラパラメータの列となる。仮想カメラパス管理部８１０６は、衝突判定部８１０４で判定済みの仮想カメラパラメータを、バックエンドサーバ２７０に送信する。バックエンドサーバ２７０は、受信した仮想カメラパラメータを用いて、仮想視点画像及び仮想視点音声を生成する。また、仮想カメラパス管理部８１０６は、仮想カメラパラメータを仮想カメラパス８００２に付加して保持する機能も有する。例えば、仮想カメラ操作ＵＩ３３０を用いて、１時間分の仮想視点画像及び仮想視点音声を生成した場合、１時間分の仮想カメラパラメータが仮想カメラパス８００２として保存される。仮想カメラパスを保存しておくことによって、データベース２５０の二次ストレージ２４６０に蓄積された画像情報と仮想カメラパスを後から参照することで、仮想視点画像及び仮想視点音声を再度生成することが可能になる。つまり、高度な仮想カメラ操作を行うオペレータが生成した仮想カメラパスと二次ストレージ２４６０に蓄積された画像情報を他のユーザが再利用できる。なお、複数の仮想カメラパスに対応する複数のシーンを選択可能となるように仮想カメラ管理部８１３０に蓄積することもできる。複数の仮想カメラパスを仮想カメラ管理部８１３０に蓄積する際には、各仮想カメラパスに対応するシーンのスクリプトや試合の経過時間、シーンの前後指定時間、及びプレーヤ情報等のメタ情報もあわせて入力及び蓄積することができる。仮想カメラ操作ＵＩ３３０は、これらの仮想カメラパスを仮想カメラパラメータとして、バックエンドサーバ２７０に通知する。
【００３４】
エンドユーザ端末１９０は、バックエンドサーバ２７０に仮想カメラパスを選択するための選択情報を要求することで、シーン名やプレーヤ、及び試合経過時間などから、仮想カメラパスを選択できる。バックエンドサーバ２７０は、エンドユーザ端末１９０に選択可能な仮想カメラパスの候補を通知し、エンドユーザはエンドユーザ端末１９０を操作して、複数の候補の中から希望の仮想カメラパスを選択する。そして、エンドユーザ端末１９０は、選択された仮想カメラパスに応じた画像生成をバックエンドサーバ２７０に要求することで、画像配信サービスをインタラクティブに享受することができる。
【００３５】
オーサリング部８１０７は、オペレータがリプレイ画像を生成する際の編集機能を提供する。オーサリング部８１０７は、ユーザ操作に応じて、リプレイ画像用の仮想カメラパス８００２の初期値として、仮想カメラパス管理部８１０６が保持する仮想カメラパス８００２の一部を取り出す。前述したように、仮想カメラパス管理部８１０６には、仮想カメラパス８００２と対応付けてシーン名、プレーヤ、経過時間、及びシーンの前後指定時間などのメタ情報が保持されている。例えば、シーン名がゴールシーン、シーンの前後指定時間が前後合わせて１０秒分である仮想カメラパス８００２が取り出される。また、オーサリング部８１０７は、編集したカメラパスに再生速度を設定する。例えば、ボールがゴールに飛んで行く間の仮想カメラパス８００２にスロー再生を設定する。なお、異なる視点からの画像に変更する場合、つまり仮想カメラパス８００２を変更する場合は、ユーザは仮想カメラ操作部８１０１を用いて再度、仮想カメラ８００１を操作する。
【００３６】
仮想カメラ画像・音声出力部８１０８は、バックエンドサーバ２７０から受け取った仮想カメラ画像・音声を出力する。オペレータは、出力された画像及び音声を確認しながら仮想カメラ８００１を操作する。なお、フィードバック出力部８１０５によるフィードバックの内容によっては、仮想カメラ画像・音声出力部８１０８は、制限領域に応じた表示制御に基づく画像を表示部に表示させる。例えば、仮想カメラ画像・音声出力部８１０８は、オペレータが指定した視点の位置が制限領域に含まれる場合に、指定された位置の近辺であり且つ制限領域外である位置を視点とした仮想視点画像を表示させてもよい。これにより、オペレータが制限領域外に視点を指定し直す手間が削減される。
【００３７】
図８（ａ）は、競技場やコンサートホールなどの施設に複数のカメラ１１２やマイク１１１を設置し撮影を行う場合のワークフローを示す図である。以下で説明するワークフローの処理は、特に明示の記述がない場合、コントローラ３００の制御により実現される。ステップＳ１１００では、コントローラ３００の制御ステーション３１０は、ユーザから事前情報に基づく設定を受け付ける。次に、ステップＳ１１０１では、画像処理システム１００の各装置は、ユーザからの操作に基づいてコントローラ３００から発行されたコマンドに従って、システムの動作確認のための処理を実行する。次に、ステップＳ１１０２では、仮想カメラ操作ＵＩ３３０は、競技等のための撮影開始前に画像や音声を出力する。れにより、ユーザは、競技等の前に、マイク１１１により集音された音声やカメラ１１２により撮像された画像を確認できる。次に、ステップＳ１１０３では、コントローラ３００の制御ステーション３１０は、各マイク１１１に集音を実施させ、各カメラ１１２に撮影を実施させる。ステップＳ１１０３の詳細は、図８（ｂ）及び図９を用いて後述する。コントローラ３００は、ステップＳ１１０１で行った設定を変更する場合、又は撮影を終了する場合はステップＳ１１０４に進む。
【００３８】
ステップＳ１１０４では、コントローラ３００は、ステップＳ１１０１で行われた設定を変更して撮影を継続する場合はステップＳ１１０５に進み、撮影を終了する場合はステップＳ１１０６に進む。ステップＳ１１０５では、コントローラ３００は、ユーザ入力に基づいてステップＳ１１０１で行われた設定を変更し、ステップＳ１１０３に戻る。ステップＳ１１０６では、コントローラ３００は、仮想カメラ操作ＵＩ３３０のユーザ操作に基づいて、複数のカメラ１１２により撮影された画像及び複数のマイク１１１により集音された音声の編集を実施する。
【００３９】
図８（ｂ）は、図８（ａ）のステップＳ１１０３で行われる画像及び音声を生成する動作を説明する図である。画像及び音声は、独立且つ並行して生成される。先ず、画像に関する動作を説明する。ステップＳ１６００では、仮想カメラ操作ＵＩ３３０は、バックエンドサーバ２７０に対して仮想視点画像の生成のための指示を発行する。すると、バックエンドサーバ２７０は、仮想カメラ操作ＵＩ３３０からの指示に従って仮想視点画像を生成する。次に、ステップＳ１６０１では、制御ステーション３１０は、ユーザ操作に応じて、画像生成を終了すると判定した場合はステップＳ１６０４に進み、画像生成を継続すると判定した場合はステップＳ１６００に戻る。
【００４０】
次に、音声に関する動作を説明する。ステップＳ１６０２では、仮想カメラ操作ＵＩ３３０は、バックエンドサーバ２７０に対して仮想視点音声の生成のための指示を発行する。すると、バックエンドサーバ２７０は、仮想カメラ操作ＵＩ３３０からの指示に従って仮想視点音声を生成する。ステップＳ１６０３では、制御ステーション３１０は、音声生成を終了すると判定した場合はステップＳ１６０４に進み、音声生成を継続すると判定した場合はステップＳ１６０２に戻る。ステップＳ１６０４では、制御ステーション３１０は、画像及び音声生成を終了すると判定した場合は図８（ｂ）の処理を終了し、画像又は音声生成を継続すると判定した場合はステップＳ１６００及び／又はＳ１６０２に戻る。
【００４１】
図９は、図８（ａ）のステップＳ１１０３で行われるシステムの制御及び確認動作を説明する図である。画像と音声の制御及び確認動作は、独立且つ同時に実施される。先ず、画像に関する動作を説明する。ステップＳ１５００では、仮想カメラ操作ＵＩ３３０は、バックエンドサーバ２７０が生成した仮想視点画像を表示する。次に、ステップＳ１５０１では、仮想カメラ操作ＵＩ３３０は、ステップＳ１５００で表示された画像のユーザによる確認結果に関する入力を受け付ける。次に、ステップＳ１５０２では、制御ステーション３１０は、ユーザ入力に応じて、撮影を終了すると判定した場合はステップＳ１５０８に進み、撮影を継続すると判定した場合はステップＳ１５００に戻る。
【００４２】
次に、音声に関する動作を説明する。ステップＳ１５０３では、仮想カメラ操作ＵＩ３３０は、マイク１１１の選択に関するユーザ操作を受け付ける。次に、ステップＳ１５０４では、仮想カメラ操作ＵＩ３３０は、ステップＳ１５０３で選択されたマイク１１１の音声を再生する。次に、ステップＳ１５０５では、仮想カメラ操作ＵＩ３３０は、ステップＳ１５０４で再生された音声のノイズ有無を確認する。次に、ステップＳ１５０６では、仮想カメラ操作ＵＩ３３０は、ステップＳ１５０５でノイズが確認された場合には、マイクゲインの調整を実施する。次に、ステップＳ１５０７では、制御ステーション３１０は、ユーザ入力に応じて、集音を終了すると判定した場合はステップＳ１５０８に進み、集音を継続すると判定した場合はステップＳ１５０３に戻る。
【００４３】
ステップＳ１５０８では、制御ステーション３１０は、ユーザ操作に基づいて、システムを終了すると判定した場合はステップＳ１５０９に進み、システムを継続すると判定した場合はステップＳ１５００及び／又はＳ１５０３に戻る。ステップＳ１５０９では、制御ステーション３１０は、画像処理システム１００で取得されたログを収集する。
【００４４】
図１０は、設置時キャリブレーションを説明するためのシーケンス図である。カメラ１１２の設置が完了すると、ユーザは、制御ステーション３１０に対して、設置時キャリブレーションの実行を指示する。すると、ステップＳ４１００では、制御ステーション３１０は、フロントエンドサーバ２３０及びカメラアダプタ１２０に対して、キャリブレーション開始を指示する。次に、ステップＳ４１０２ａでは、フロントエンドサーバ２３０は、キャリブレーション開始指示を受けると、それ以降に受信した画像データをキャリブレーション用データと判定し、キャリブレーション部２１４０が処理できるように制御モードを変更する。ステップＳ４１０２ｂでは、カメラアダプタ１２０は、キャリブレーション開始指示を受けると、前景背景分離等の画像処理を行わず、非圧縮のフレーム画像を扱う制御モードに移行する。ステップＳ４１０１では、カメラアダプタ１２０は、カメラ１１２に対してカメラモード変更を指示する。ステップＳ４１０２ｃでは、これを受けたカメラ１１２は、例えば、フレームレートを１ｆｐｓに設定する。ステップＳ４１０３では、制御ステーション３１０は、カメラアダプタ１２０に対して、カメラのズーム値とフォーカス値の取得を指示する。ステップＳ４１０４では、カメラアダプタ１２０は、制御ステーション３１０に、カメラ１１２のズーム値とフォーカス値を送信する。ステップＳ４１０５では、制御ステーション３１０は、フロントエンドサーバ２３０に、ステップＳ４１０４で受信した全カメラ分のズーム値とフォーカス値を送信する。
【００４５】
次に、ステップＳ４１０６では、制御ステーション３１０は、フロントエンドサーバ２３０に、設置時キャリブレーション用撮影の撮影パターンを通知する。ステップＳ４１０７では、制御ステーション３１０は、カメラアダプタ１２０に対して同期静止画撮影を指示する。ステップＳ４１０８では、カメラアダプタ１２０は、全カメラで同期した静止画撮影をカメラ１１２に指示する。ステップＳ４１０９では、カメラ１１２は、撮影画像をカメラアダプタ１２０に送信する。ステップＳ４１１０では、制御ステーション３１０は、カメラアダプタ１２０に対して、ステップＳ４１０７で撮影指示した画像をフロントエンドサーバ２３０に伝送するように指示する。ステップＳ４１１１では、カメラアダプタ１２０は、伝送先として指定されたフロントエンドサーバ２３０にステップＳ４１０９で受信したキャリブレーション用画像を伝送する。キャリブレーション用画像は、前景背景分離等の画像処理が行われず、撮影された画像が圧縮せずにそのまま伝送される。撮影パターンが複数ある場合には、ステップＳ４１０６〜Ｓ４１１１の処理をパターン数分繰り返す。
【００４６】
次に、ステップＳ４１１２では、制御ステーション３１０は、フロントエンドサーバ２３０に対して、カメラパラメータ推定処理を指示する。ステップＳ４１１３では、フロントエンドサーバ２３０は、カメラパラメータ推定処理指示を受けると、Ｓ４１０５で受信した全カメラ分のズーム値とフォーカス値、及びＳ４１１１で受信した全カメラ分の撮影画像を用いて、カメラパラメータ推定処理を行う。ステップＳ４１１４では、フロントエンドサーバ２３０は、ステップＳ４１１３のカメラパラメータ推定処理の結果として導出された全カメラ分のカメラパラメータをデータベース２５０に送信して保存する。ステップＳ４１１５では、フロントエンドサーバ２３０は、制御ステーション３１０に対しても同様に全カメラ分のカメラパラメータを送信する。ステップＳ４１１６では、制御ステーション３１０は、カメラアダプタ１２０に対して、各カメラ１１２に対応するカメラパラメータを送信する。ステップＳ４１１７では、カメラアダプタ１２０は、受信した自カメラ１１２のカメラパラメータを保存する。
【００４７】
次に、ステップＳ４１１８では、制御ステーション３１０は、キャリブレーション結果を確認する。ステップＳ４１１９では、制御ステーション３１０は、フロントエンドサーバ２３０に対して、キャリブレーション終了を指示する。ステップＳ４１２０ａでは、フロントエンドサーバ２３０は、ステップＳ４１０１で実行したキャリブレーション開始処理とは逆に、それ以降に受信した画像データをキャリブレーション用データでないと判定するよう制御モードを変更する。ステップＳ４１２０では、カメラアダプタ１２０は、カメラ１１２に、カメラモードの変更を指示する。ステップＳ４１２１ｃでは、カメラ１１２は、制御モードを変更する。ステップＳ４１２１ｂでは、カメラアダプタ１２０は、制御モードを変更する。
【００４８】
以上の処理により、設置時キャリブレーション処理として、全カメラ分のカメラパラメータを導出し、導出されたカメラパラメータをカメラアダプタ１２０及びデータベース２５０に保存することができる。
【００４９】
図１１（ａ）は、フロントエンドサーバ２３０の動作を説明するためのフローチャートである。設置前に、ステップＳ２２１０では、フロントエンドサーバ２３０の制御部２１１０は、制御ステーション３１０からＣＡＤデータの入力モードに切り替える指示を受信し、ＣＡＤデータ入力モードに切り替えを行う。ステップＳ２２２０では、データ入力制御部２１２０は、制御ステーション３１０からスタジアムＣＡＤデータ（スタジアム形状データ）を受信する。ステップＳ２２３０では、データ入力制御部２１２０は、受信したデータを非撮影データファイル生成部２１８５とＣＡＤデータ記憶部２１３５に送信する。ＣＡＤデータ記憶部２１３５は、データ入力制御部２１２０から受信したスタジアム形状データを保存する。設置時に、ステップＳ２２４０では、制御部２１１０は、制御ステーション３１０からキャリブレーションモードに切り替える指示を受信し、キャリブレーションモードに切り替えを行う。ステップＳ２２５０では、データ入力制御部２１２０は、カメラアダプタ１２０からキャリブレーション撮影画像を受信し、キャリブレーション部２１４０にキャリブレーション撮影画像を送信する。ステップＳ２２６０では、キャリブレーション部２１４０は、キャリブレーションを行い、カメラパラメータを導出する。ステップＳ２２７０では、キャリブレーション部２１４０は、導出されたカメラパラメータを保存し、非撮影データファイル生成部２１８５及びＤＢアクセス制御部２１９０を介してデータベース２５０にカメラパラメータを送信する。
【００５０】
図１１（ｂ）は、設置前のデータベース２５０の動作を説明するためのフローチャートである。ステップＳ２５１０では、データ入力部２４２０は、フロントエンドサーバ２３０からスタジアムＣＡＤデータ（スタジアム形状データ）を受信し、書込み用キャッシュ２４４０上にデータを保存する。ステップＳ２５２０では、書込み用キャッシュ２４４０は、保存されたスタジアムＣＡＤデータを一次ストレージ２４５０に移動して格納する。ステップＳ２５５０では、制御部２４１０は、制御ステーション３１０からの指示、又は書込み用キャッシュ２４４０の容量に応じて、キャッシュするフレーム数Ｎを設定する。
【００５１】
図１１（ｃ）は、設置時のデータベース２５０の動作を説明するためのフローチャートである。ステップＳ２６１０では、データ入力部２４２０は、フロントエンドサーバ２３０からカメラパラメータを受信し、書込み用キャッシュ２４４０上にデータを保存する。ステップＳ２６２０では、書込み用キャッシュ２４４０は、保存されたカメラパラメータを一次ストレージ２４５０に移動して格納する。
【００５２】
図１２は、フロントエンドサーバ２３０のキャリブレーション部２１４０におけるカメラパラメータ推定処理を説明するためのフローチャートである。キャリブレーション部２１４０は、内部パラメータマップ、スタジアムデータ、全カメラ分のズーム値とフォーカス値、及び全カメラ分のキャリブレーション用撮影画像を既に保持している。ステップＳ４２０１では、キャリブレーション部２１４０は、カメラ１１２を特定する。ステップＳ４２０２では、キャリブレーション部２１４０は、対応するズーム値とフォーカス値を特定し、特定したズーム値とフォーカス値より、内部パラメータマップを用いて内部パラメータ初期値を導出する。ステップＳ４２０３では、キャリブレーション部２１４０は、ステップＳ４２０２における内部パラメータ初期値の導出が全カメラ分完了するまで、ステップＳ４２０１とＳ４２０２の処理を繰り返す。
【００５３】
次に、ステップＳ４２０４では、キャリブレーション部２１４０は、再度カメラ１１２を特定し、対応するキャリブレーション用撮影画像を特定する。ステップＳ４２０５では、キャリブレーション部２１４０は、画像内の特徴点（画像特徴点）を検出する。画像特徴点は、例えば、キャリブレーション用に用意したマーカや、予めスタジアムの地面に描かれているピッチラインや、予め置かれている物（例えば、サッカーゴールや選手控えベンチなど）のエッジ部分などである。ステップＳ４２０６では、キャリブレーション部２１４０は、ステップＳ４２０５における画像特徴点検出が全カメラ分完了するまで、ステップＳ４２０５とＳ４２０５の処理を繰り返す。
【００５４】
次に、ステップＳ４２０７では、キャリブレーション部２１４０は、ステップＳ４２０５で検出した各カメラ１１２におけるキャリブレーション用撮影画像の画像特徴点のマッチングを行う。ステップＳ４２０８では、キャリブレーション部２１４０は、カメラ１１２間でマッチングされた使用特徴点数が閾値以下である場合はステップＳ４２１３に進み、閾値以下でない場合はステップＳ４２０９に進む。ステップＳ４２０９では、キャリブレーション部２１４０は、各カメラ１１２の外部パラメータ推定処理を行う。ステップＳ４２１０では、キャリブレーション部２１４０は、ステップＳ４２０９の外部パラメータ推定処理の結果、再投影誤差が閾値以下である場合はステップＳ４２１４に進み、閾値以下でない場合はステップＳ４２１１に進む。ステップＳ４２１１では、キャリブレーション部２１４０は、誤差が大きいと判断し、ステップＳ４２０５における画像特徴点の誤検出、及びステップＳ４２０７における画像特徴点の誤マッチングの削除処理を行い、ステップＳ４２１２に進む。ステップＳ４２１２では、キャリブレーション部２１４０は、ステップＳ４２０２で導出した内部パラメータ初期値に対して、内部パラメータの補正を行い、ステップＳ４２０８に戻る。
【００５５】
ステップＳ４２１３では、キャリブレーション部２１４０は、キャリブレーション失敗と判断し、キャリブレーション用撮影からやり直す。ステップＳ４２１４では、キャリブレーション部２１４０は、スタジアムデータを用いて、ステップＳ４２０９で推定された外部パラメータ座標について、カメラ座標系から世界座標系へ剛体変換を行う。以上の処理により、カメラパラメータ推定処理として、全カメラ分のカメラパラメータが導出され、導出されたカメラパラメータをカメラアダプタ１２０及びデータベース２５０に保存することができる。
【００５６】
図１３は、注視点グループを説明するための図である。各カメラ１１２は、光軸が特定の注視点６３０２Ａ又は６３０２Ｂを向くように設置される。同じ注視点グループ６３０１Ａ又は６３０１Ｂに分類されるカメラ１１２は、同じ注視点６３０２Ａ又は６３０２Ｂを向くように設置される。例えば、２つの注視点６３０２Ａと注視点６３０２Ｂが設定され、９台のカメラ１１２ａ〜１１２ｉが設置される。４台のカメラ１１２ａ、１１２ｃ、１１２ｅ及び１１２ｇは、同じ注視点６３０２Ａを向いており、注視点グループ６３０１Ａに属する。また、残りの５台のカメラ１１２ｂ、１１２ｄ、１１２ｆ、１１２ｈ及び１１２ｉは、同じ注視点６３０２Ｂを向いており、注視点グループ６３０１Ｂに属する。ここでは、同じ注視点グループ６３０１Ａ又は６３０１Ｂに属するカメラ１１２の中で最も近い（接続ホップ数が小さい）カメラ１１２の組を論理的に隣接していると表現する。例えば、カメラ１１２ａとカメラ１１２ｂは、物理的には隣接しているが、異なる注視点グループ６３０１Ａ及び６３０１Ｂに属するため論理的には隣接していない。カメラ１１２ａと論理的に隣接しているのは、カメラ１１２ｃである。一方、カメラ１１２ｈとカメラ１１２ｉは、物理的に隣接しているだけでなく、論理的にも隣接している。
【００５７】
図１４（ａ）は、図８（ｂ）のステップＳ１６００及び図９のステップＳ１５００におけるフロントエンドサーバ２３０の動作を説明するためのフローチャートである。ステップＳ２３００では、制御部２１１０は、制御ステーション３１０から撮影モードに切り替える指示を受信し、撮影モードに切り替える。ステップＳ２３１０では、データ入力制御部２１２０は、撮影が開始されると、カメラアダプタ１２０からの撮影データの受信を開始する。ステップＳ２３２０では、データ同期部２１３０は、ファイル作成に必要な撮影データが全て揃うまで、撮影データをバッファリングする。ステップＳ２３３０では、画像処理部２１５０は、ＲＡＷ画像データの現像処理やレンズ歪み補正、前景画像及び背景画像の各カメラで撮影された画像間の色や輝度値を合わせるなどの各種変換処理を行う。
【００５８】
ステップＳ２３３５では、フロントエンドサーバ２３０は、バッファリングされたデータが背景画像を含む場合はステップＳ２３４０に進み、背景画像を含まない場合はステップＳ２３５０に進む。ステップＳ２３４０では、画像結合部２１７０は、ＣＡＤデータ記憶部２１３５が保存されたスタジアム形状データの座標に合わせて、背景画像の結合処理を行い、結合した背景画像を撮影データファイル生成部２１８０に送信し、ステップＳ２３５０に進む。ステップＳ２３５０では、三次元モデル結合部２１６０は、カメラパラメータを使って、三次元モデルの結合処理を行い、前景画像の三次元モデルを生成する。ステップＳ２３６０では、撮影データファイル生成部２１８０は、撮影データをファイル形式に応じて成形してからパッキングし、撮影データファイルを作成する。ステップＳ２３７０では、ＤＢアクセス制御部２１９０は、撮影データファイル生成部２１８０が作成した撮影データファイルを、データベース２５０に送信する。
【００５９】
図１４（ｂ）は、図８（ｂ）のステップＳ１６００及び図９のステップＳ１５００におけるデータベース２５０の書き込み動作を説明するためのフローチャートである。ステップＳ２８１０では、データベース２５０のデータ入力部２４２０は、フロントエンドサーバ２３０から撮影データを入力する。データ入力部２４２０は、入力された撮影データにメタ情報として紐づいている時刻情報又はタイムコード情報を抽出し、入力された撮影データが時刻ｔ１の撮影データであることを検出する。ステップＳ２８２０では、データ入力部２４２０は、入力された時刻ｔ１の撮影データを書込み用キャッシュ２４４０に送信する。書込み用キャッシュ２４４０は、時刻ｔ１の撮影データをキャッシュする。ステップＳ２８２５では、データ入力部２４２０は、時刻ｔ１のＮフレーム前の撮影データ、すなわち時刻ｔ１−Ｎの撮影データがキャッシュされている場合はステップＳ２８３０に進み、キャッシュされていない場合は処理を終了する。ステップＳ２８３０では、書込み用キャッシュ２４４０は、時刻ｔ１の撮影データをキャッシュすると、キャッシュ済みの時刻ｔ１−Ｎの撮影データを一次ストレージ２４５０上に転送する。一次ストレージ２４５０は、書込み用キャッシュ２４４０から転送された時刻ｔ１−Ｎの撮影データを記録する。これにより、高速アクセス可能なキャッシュの容量制限に応じて、所定時間よりも前のフレームが一次ストレージ２４５０に逐次保管されていく。
【００６０】
図１５は、図８（ｂ）のステップＳ１６００及び図９のステップＳ１５００におけるデータベース２５０の読み出し動作を説明するためのフローチャートである。ステップＳ２９１０では、データ出力部２４３０は、バックエンドサーバ２７０から、タイムコードが時刻ｔに対応するデータ取得の要求を受け付ける。ステップＳ２９２０では、データ出力部２４３０は、時刻ｔのデータについて、書込み用キャッシュ２４４０、読み出し用キャッシュ２４７０、一次ストレージ２４５０のどこに保持されているかを判断し、データ読み出し元を決定する。ここで、時刻ｔ１がデータ入力部２４２０に撮影データが入力された時刻とする。データ出力部２４３０は、時刻ｔが時刻ｔ１−Ｎより前の時刻であれば、読み出し用キャッシュ２４７０又は一次ストレージ２４５０にデータが保持されていると判断し、ステップＳ２９３０に進む。また、データ出力部２４３０は、時刻ｔが時刻ｔ１−Ｎとｔ１の間の時刻であれば、ステップＳ２９４０に進み、時刻ｔが時刻ｔ１より後の時刻であれば、ステップＳ２９５０に進む。
【００６１】
ステップＳ２９３０では、データ出力部２４３０は、時刻ｔのデータが読み出し用キャッシュ２４７０上に保持されている場合はステップＳ２９３２に進み、読み出し用キャッシュ２４７０上に保持されていない場合はステップＳ２９３１に進む。ステップＳ２９３１では、データ出力部２４３０は、時刻ｔのデータを一次ストレージ２４５０から読み出し、時刻ｔのデータを読み出し用キャッシュ２４７０へ格納し、ステップＳ２９３２に進む。ステップＳ２９３２では、データ出力部２４３０は、読み出し用キャッシュ２４７０から時刻ｔのデータを読み出し、時刻ｔのデータをバックエンドサーバ２７０に送信する。
【００６２】
ステップＳ２９４０では、データ出力部２４３０は、時刻ｔのデータを書込み用キャッシュ２４４０から読み出し、時刻ｔのデータをバックエンドサーバ２７０に送信する。ステップＳ２９５０では、データ出力部２４３０は、データ出力部２４３０は、バックエンドサーバ２７０に対してエラー通知を行う。
【００６３】
図１６は、オペレータ（ユーザ）による操作が行われてから仮想視点画像が表示されるまでの仮想カメラ操作ＵＩ３３０、バックエンドサーバ２７０及びデータベース２５０の処理を示すシーケンス図である。ステップＳ３３００では、仮想カメラ操作ＵＩ３３０は、仮想カメラを操作するためのユーザの操作を受け付ける。ステップＳ３３０１では、仮想カメラ操作ＵＩ３３０は、入力された仮想カメラの位置や姿勢等を表す仮想カメラパラメータを算出する。ステップＳ３３０２では、仮想カメラ操作ＵＩ３３０は、算出した仮想カメラパラメータをバックエンドサーバ２７０に送信する。
【００６４】
ステップＳ３３０３では、バックエンドサーバ２７０は、仮想カメラパラメータを受信すると、データベース２５０に対して前景三次元モデル群を要求する。ステップＳ３３０４では、データベース２５０は、要求に応じて、前景オブジェクトの位置情報を含む前景三次元モデル群をバックエンドサーバ２７０に送信する。ステップＳ３３０５では、バックエンドサーバ２７０は、仮想カメラパラメータと前景三次元モデルに含まれる前景オブジェクトの位置情報に基づいて、仮想カメラの視野に入る前景オブジェクト群を幾何学的に導出する。ステップＳ３３０６では、バックエンドサーバ２７０は、導出した前景オブジェクト群の前景画像、前景三次元モデル、背景画像及び音声データ群をデータベース２５０に要求する。ステップＳ３３０７では、データベース２５０は、要求に応じて、データをバックエンドサーバ２７０に送信する。ステップＳ３３０８では、バックエンドサーバ２７０は、受信した前景画像、前景三次元モデル及び背景画像から仮想視点の前景画像及び背景画像を生成し、それらを合成して仮想視点の全景画像を生成する。また、バックエンドサーバ２７０は、音声データ群に基づいて、仮想カメラの位置に応じた音声データの合成を行い、仮想視点の全景画像と統合して仮想視点の画像及び音声を生成する。ステップＳ３３０９では、バックエンドサーバ２７０は、生成した仮想視点の画像及び音声を仮想カメラ操作ＵＩ３３０に送信する。仮想カメラ操作ＵＩ３３０は、受信した画像を表示することで、仮想カメラの撮影画像の表示を実現する。
【００６５】
図１７（ａ）は、仮想カメラ操作ＵＩ３３０を用いて生成された複数の仮想カメラ画像の中から所望の仮想カメラ画像をユーザが選択して鑑賞するための処理手順を説明するフローチャートである。ステップＳ８４０１では、エンドユーザ端末１９０は、仮想カメラパス８００２のリストを画像コンピューティングサーバ２００から取得し、仮想カメラパス８００２のリストを表示する。ステップＳ８４０２では、エンドユーザ端末１９０は、ユーザによりリストの中から選択された仮想カメラパス８００２に関する指定情報を取得する。ステップＳ８４０３では、エンドユーザ端末１９０は、ユーザにより選択された仮想カメラパス８００２をバックエンドサーバ２７０に送信する。バックエンドサーバ２７０は、受信した仮想カメラパス８００２から仮想視点画像及び仮想視点音声を生成し、エンドユーザ端末１９０へ送信する。ステップＳ８４０４では、エンドユーザ端末１９０は、バックエンドサーバ２７０から受信した仮想視点画像及び仮想視点音声を出力する。
【００６６】
図１７（ｂ）は、バックエンドサーバ２７０が１フレームの仮想視点画像を生成する処理を示すフローチャートである。ステップＳ３１００では、データ受信部３００１は、コントローラ３００から、仮想視点の位置や姿勢などを表す仮想カメラパラメータを受信する。ステップＳ３１０１では、前景オブジェクト決定部３０１０は、受信した仮想カメラパラメータと前景オブジェクトの位置を基に、仮想視点画像の生成で必要となる前景オブジェクトを決定する。ステップＳ３１０２では、要求リスト生成部３０１１は、決定した前景オブジェクトの前景画像、前景三次元モデル群、背景画像及び音声データ群の要求リストを生成し、要求データ出力部３０１２を介してデータベース２５０に要求を行う。ステップＳ３１０３では、データ受信部３００１は、要求した情報をデータベース２５０から受信する。
【００６７】
ステップＳ３１０４では、データ受信部３００１は、データベース２５０から受信した情報にエラーを示す情報が含まれている場合は、仮想視点画像の生成が不可であると判断し、データを出力せず処理を終了する。また、データ受信部３００１は、データベース２５０から受信した情報にエラーを示す情報が含まれていない場合は、仮想視点における背景画像の生成、前景画像の生成、及び視点に応じた音声の生成を行うため、ステップＳ３１０５〜Ｓ３１０７に進む。ステップＳ３１０５では、背景テクスチャ貼り付け部３００２は、背景メッシュモデル管理部３０１３で保持されている背景メッシュモデルとデータベース２５０から取得した背景画像から、テクスチャ付き背景メッシュモデルを生成する。ステップＳ３１０６では、バックエンドサーバ２７０は、レンダリングモードに応じて前景画像を生成する。ステップＳ３１０７では、バックエンドサーバ２７０は、仮想視点での音の聞こえ方を模擬するように音声データ群を合成して音声を生成する。
【００６８】
ステップＳ３１０８では、レンダリング部３００６は、ステップＳ３１０５で生成したテクスチャ付き背景メッシュモデルを仮想視点から見た視野にトリミングし、そこに前景画像を合成することで、仮想視点の全景画像を生成する。ステップＳ３１０９では、合成部３００８は、ステップＳ３１０７で生成された仮想音声とレンダリングされた仮想視点の全景画像を合成し、１フレームの仮想視点コンテンツを生成する。ステップＳ３１１０では、画像出力部３００９は、生成された１フレームの仮想視点コンテンツを外部のコントローラ３００及びエンドユーザ端末１９０へ出力する。
【００６９】
図１８（ａ）は、今後画像を生成する際に必要となるデータの先読み処理を示すフローチャートである。この処理は、ライブ及びリプレイの画像生成処理が実行されている際に、バックグラウンドで実行される。データベース２５０の一次ストレージ２４５０は、複数のカメラ１１２により撮影された画像を記憶する。ステップＳ３４０１では、バックエンドサーバ２７０の予測仮想視点算出部３０１５は、コントローラ３００から入力される仮想カメラパラメータを所定時間蓄積し、所定時間後における仮想カメラの位置や姿勢を予測する。そして、予測仮想視点算出部３０１５は、予測した仮想カメラの位置や姿勢を表す仮想カメラパラメータを算出する。すなわち、予測仮想視点算出部３０１５は、現在仮想視点から所定時間後の予測仮想視点を予測し、予測仮想視点を表す仮想カメラパラメータを算出する。この際、予測仮想視点算出部３０１５は、現在仮想視点の移動方向、速度、加速度、現在仮想視点の方向の変化量のうちの１つ以上を用いて、予測仮想視点を予測する。
【００７０】
ステップＳ３４０２では、予測仮想視点前景オブジェクト決定部３０１６は、予測仮想カメラパラメータと前景オブジェクトの位置を基に、所定時間後の予測仮想視点の仮想視点画像の生成に必要となる前景オブジェクト（画像）を決定する。ステップＳ３４０３では、予測仮想視点要求リスト生成部３０１７は、決定した前景オブジェクトの前景画像、前景三次元モデル群、背景画像及び音声データ群の予測仮想視点要求リストを生成する。予測仮想視点要求データ出力部３０１８は、データベース２５０に上記の予測仮想視点要求リストを送信する。
【００７１】
ステップＳ３４０４では、データベース２５０の読み出し用キャッシュ制御部２４８０は、受信した予測仮想視点要求リスト内のデータと、読み出し用キャッシュ２４７０上のデータを比較し、読み出し用キャッシュ２４７０上に存在しないデータを特定する。ステップＳ３４０５では、読み出し用キャッシュ制御部２４８０は、特定したデータのうちの読み出し用キャッシュ２４７０上に存在しないデータを一次ストレージ２４５０から読み出し、読み出し用キャッシュ２４７０に書き込む。すなわち、読み出し用キャッシュ制御部２４８０は、所定時間後の予測仮想視点の仮想視点画像の生成に必要な画像のうちの読み出し用キャッシュ２４７０に記憶されていない画像を一次ストレージ２４５０から読み出して読み出し用キャッシュ２４７０に書き込む。
【００７２】
ステップＳ３４０６では、読み出し用キャッシュ制御部２４８０は、読み出し用キャッシュ２４７０上のデータのアクセス権の変更を行う。具体的には、読み出し用キャッシュ制御部２４８０は、読み出し用キャッシュ２４７０にステップＳ３４０５で書き込まれたデータを上書き禁止に設定し、読み出し用キャッシュ２４７０に対して一定時間アクセスされていないデータを上書き許可に設定する。以上の処理により、仮想視点の移動に応じて画像生成に必要なデータを効率的に読み出すことができ、仮想視点コンテンツ画像の生成全体にかかる速度を向上できる。
【００７３】
（第２の実施形態）
第１の実施形態では、一つのデータベース２５０に対して、一つのバックエンドサーバ２７０が接続された画像処理システム１００の制御方法について説明した。第２の実施形態では、一つのデータベース２５０に対して複数のバックエンドサーバ２７０及び２７１（図４）が接続された画像処理システム１００を説明する。データベース２５０は、複数のバックエンドサーバ２７０及び２７１から同時に異なる仮想視点の画像生成に必要なデータを要求された際の読み出し用キャッシュ２４７０を制御する。ここで、一つのデータベース２５０に対して複数のバックエンドサーバ２７０が接続されている画像処理システム１００においては、撮影しているシーンによって、複数のバックエンドサーバ２７０が同一のデータを同時に要求することを考える。このような際に、データの先読み処理をバックエンドサーバ２７０毎に独立して行うと、読み出し用キャッシュ２４７０上に同じデータがキャッシュされることになり、キャッシュ容量を効率的に使用できない。そこで、第２の実施形態では、複数のバックエンドサーバ２７０から要求されるデータが重複しているような場合であっても、読み出し用キャッシュ２４７０を効率的に使用する読み出し用キャッシュ制御方法について説明する。
【００７４】
第２の実施形態におけるデータベース２５０の構成は、図４と同じである。ただし、データベース２５０には、バックエンドサーバ２７０以外にもう一台のバックエンドサーバ２７１が接続されている。バックエンドサーバ２７０とバックエンドサーバ２７１は、データベース２５０への接続時に予め優先度が設定される。例えば、バックエンドサーバ２７０の優先度は、バックエンドサーバ２７１の優先度より高い。
【００７５】
図１８（ｂ）は、データベース２５０がバックエンドサーバ２７０及び２７１から予測仮想視点要求リストを受信した際の処理を示すフローチャートである。ステップＳ３５０１では、バックエンドサーバ２７０及び２７１は、図１８（ａ）のステップＳ３４０１〜Ｓ３４０３と同じ処理を行い、予測仮想視点要求リストをそれぞれ作成し、データベース２５０に送信する。バックエンドサーバ２７０の予測仮想視点算出部３０１５は、第１の現在仮想視点から所定時間後の第１の予測仮想視点を予測し、第１の予測仮想視点を表す仮想カメラパラメータを算出する。バックエンドサーバ２７１の予測仮想視点算出部３０１５は、第２の現在仮想視点から所定時間後の第２の予測仮想視点を予測し、第２の予測仮想視点を表す仮想カメラパラメータを算出する。
【００７６】
ステップＳ３５０２では、読み出し用キャッシュ制御部２４８０は、各バックエンドサーバ２７０及び２７１より受信した予測仮想視点要求リスト内のデータを比較し、優先度の低いバックエンドサーバ２７１より受信した予測仮想視点要求リストを再編する。具体的には、読み出し用キャッシュ制御部２４８０は、バックエンドサーバ２７１より受信した予測仮想視点要求リスト内のデータのうち、バックエンドサーバ２７０より受信した予測仮想視点要求リスト内のデータと重複しているものを削除する。
【００７７】
ステップＳ３５０３では、読み出し用キャッシュ制御部２４８０は、バックエンドサーバ２７０より受信した予測仮想視点要求リストと、Ｓ３５０２で再編した予測仮想視点要求リストに対して、読み出し用キャッシュ２４７０上に存在しないデータを特定する。このデータ特定は、バックエンドサーバ２７０及び２７１毎に行われる。ステップＳ３５０４では、読み出し用キャッシュ制御部２４８０は、バックエンドサーバ２７０及び２７１毎に、読み出し用キャッシュ２４７０上に存在しないデータのデータ量（以下、差分データ量）を算出する。ここで、バックエンドサーバ２７０の第１の予測仮想視点の仮想視点画像の生成に必要な画像とバックエンドサーバ２７１の第２の予測仮想視点の仮想視点画像の生成に必要な画像との間で重複する画像を重複画像と呼ぶ。読み出し用キャッシュ制御部２４８０は、バックエンドサーバ２７０の第１の予測仮想視点の仮想視点画像の生成に必要な画像のデータ量のうちの読み出し用キャッシュ２４７０に記憶されていない画像のデータ量を第１のデータ量Ｖａとして算出する。また、読み出し用キャッシュ制御部２４８０は、バックエンドサーバ２７１の第２の予測仮想視点の仮想視点画像の生成に必要な画像のデータ量から上記の重複画像のデータ量を削除したデータ量を第２のデータ量Ｖｂとして算出する。
【００７８】
ステップＳ３５０５では、読み出し用キャッシュ制御部２４８０は、算出した各差分データ量に基づいて読み出し用キャッシュ２４７０内において、各バックエンドサーバ２７０及び２７１がアクセス可能な領域のサイズを算出する。以下、バックエンドサーバ２７０を例に、各バックエンドサーバがアクセス可能なキャッシュ内の領域サイズの算出方法について具体的に説明する。読み出し用キャッシュ２４７０の容量をＣｔ、バックエンドサーバ２７０の第１のデータ量をＶａ、バックエンドサーバ２７１の第２のデータ量をＶｂとすると、バックエンドサーバ２７０がアクセス可能な第１のキャッシュ領域のサイズＣａは以下の式で求められる。また、バックエンドサーバ２７１がアクセス可能な第２のキャッシュ領域のサイズＣｂは以下の式で求められる。
Ｃａ＝Ｃｔ×Ｖａ／（Ｖａ＋Ｖｂ）
Ｃｂ＝Ｃｔ×Ｖｂ／（Ｖａ＋Ｖｂ）
【００７９】
ステップＳ３５０６では、読み出し用キャッシュ制御部２４８０は、読み出し用キャッシュ２４７０にステップＳ３５０５で算出したサイズ分の領域を確保する。このとき、確保する領域が今まで確保していた領域より大きくなる場合には、読み出し用キャッシュ制御部２４８０は、上書き許可設定されているデータの領域を確保するものとする。読み出し用キャッシュ制御部２４８０は、ステップＳ３５０４の第１のデータ量Ｖａを基に読み出し用キャッシュ２４７０内に第１のキャッシュ領域を確保する。また、読み出し用キャッシュ制御部２４８０は、ステップＳ３５０４の第２のデータ量Ｖｂを基に読み出し用キャッシュ２４７０内に第２のキャッシュ領域を確保する。
【００８０】
次に、ステップＳ３５０７では、読み出し用キャッシュ制御部２４８０は、図１８（ａ）のステップＳ３４０５及びＳ３４０６と同様の処理を行う。ここで、バックエンドサーバ２７０の第１の予測仮想視点の仮想視点画像の生成に必要な画像のうちの読み出し用キャッシュ２４７０に記憶されていない画像を第１の画像データとする。また、バックエンドサーバ２７１の第２の予測仮想視点の仮想視点画像の生成に必要な画像のうちの読み出し用キャッシュ２４７０に記憶されていない画像を第２の画像データとする。読み出し用キャッシュ制御部２４８０は、上記の第１の画像データを一次ストレージ２４５０から読み出して読み出し用キャッシュ２４７０内の第１のキャッシュ領域に書き込む。また、読み出し用キャッシュ制御部２４８０は、上記の第２の画像データを一次ストレージ２４５０から読み出して読み出し用キャッシュ２４７０内の第２のキャッシュ領域に書き込む。この際、読み出し用キャッシュ制御部２４８０は、上記の重複画像を一次ストレージ２４５０から読み出して読み出し用キャッシュ２４７０内の第１のキャッシュ領域に書き込む。また、読み出し用キャッシュ制御部２４８０は、上記の重複画像を読み出し用キャッシュ２４７０内の第２のキャッシュ領域に書き込まない。
【００８１】
読み出し用キャッシュ制御部２４８０は、読み出し用キャッシュ２４７０に書き込まれたデータを上書き禁止に設定し、読み出し用キャッシュ２４７０に対して一定時間アクセスされていないデータを上書き許可に設定する。
【００８２】
以上のように、画像処理システム１００では、一つのデータベース２５０に対して複数のバックエンドサーバ２７０及び２７１が接続されている。画像処理システム１００は、仮想視点の移動に応じて画像生成に必要なデータを先読みすることができ、仮想視点コンテンツ画像の生成全体にかかる速度を向上できる。また、画像処理システム１００は、複数のバックエンドサーバ２７０及び２７１から要求されるデータが重複しているような場合でも、読み出し用キャッシュ２４７０を効率的に使用できる。
【００８３】
第１及び第２の実施形態によれば、画像処理システム１００は、複数のカメラ１１２が撮影した画像を集約するデータベース２５０を有する。画像処理システム１００は、所定時間後の仮想視点の動きを予測し、その予測に基づいて仮想視点画像の生成に必要なデータを一次ストレージ２４５０から読み出し用キャッシュ２４７０に先読みすることで、データ読み出し速度の向上を図ることができる。また、画像処理システム１００は、仮想視点画像の生成に必要となるデータを仮想視点毎に一次ストレージ２４５０から読み出し用キャッシュ２４７０に先読みしておくため、仮想視点画像の生成に要する時間を短縮できる。
【００８４】
なお、上述の実施形態において、第１の予測仮想視点を、生成した仮想視点画像に写るオブジェクトに基づいて予測してもよい。例えば、画像処理システム１００は、生成済の仮想視点画像に写るオブジェクト（例えば、選手）の位置や動きから所定時間後の当該オブジェクトの位置や向きを予測する。そして、画像処理システム１００は、予測したオブジェクトの位置や向きに基づいて、当該オブジェクトを写すことができる位置を第１の予測仮想視点としてもよい。
【００８５】
また、上述の実施形態において、画像処理システム１００は、予測した仮想視点画像の生成に必要なデータをキャッシュ２４７０に記憶する構成を示したが、これに限らない。例えば、画像処理システム１００は、予測した仮想視点画像の生成に必要なデータを、当該データを必要とする装置に転送したり、他の記憶装置に記憶したりしてもよい。
【００８６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８７】
以上、上述した実施形態によれば、カメラ１１２の台数などの画像処理システム１００を構成する装置の規模、及び撮影画像の出力解像度や出力フレームレートなどに依らず、仮想視点画像を簡便に生成することが出来る。以上、本発明の実施形態について詳述したが、本発明は上述の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形及び変更が可能である。
【符号の説明】
【００８８】
１１２  カメラ、２４５０  一次ストレージ、２４７０  読み出し用キャッシュ、２４８０  読み出し用キャッシュ制御部、３０１５  予測仮想視点算出部
【図１】
2019079468.tif 000003
【図２】
2019079468.tif 000004
【図３】
2019079468.tif 000005
【図４】
2019079468.tif 000006
【図５】
2019079468.tif 000007
【図６】
2019079468.tif 000008
【図７】
2019079468.tif 000009
【図８】
2019079468.tif 000010
【図９】
2019079468.tif 000011
【図１０】
2019079468.tif 000012
【図１１】
2019079468.tif 000013
【図１２】
2019079468.tif 000014
【図１３】
2019079468.tif 000015
【図１４】
2019079468.tif 000016
【図１５】
2019079468.tif 000017
【図１６】
2019079468.tif 000018
【図１７】
2019079468.tif 000019
【図１８】
2019079468.tif 000020