(57)【要約】【課題】仮想視点映像の再生システムにおいて長期的に安定したシステムを稼動させること。【解決手段】映像再生システムは、複数の撮像手段によって撮像された画像データから得られる仮想視点映像を再生する。撮像手段の障害の発生を検知すると、その障害の発生した撮像手段を、当該撮像手段を除く他の撮像手段によって撮像された画像データから得られる仮想視点映像の再生の開始後に再起動する。【選択図】図１２
2015212876.tif 000002
【特許請求の範囲】
【請求項１】
複数の撮像手段によって撮像された画像データから生成された仮想視点映像を再生する映像再生システムであって、
前記撮像手段における障害の発生を検知する検知手段と、
前記複数の撮像手段のうち、前記検知手段により障害の発生が検知された撮像手段を再起動する制御手段とを有し、
前記制御手段は、前記障害の発生が検知された撮像手段を、前記障害の発生が検知された撮像手段を除く他の撮像手段によって撮像された画像データから生成された仮想視点映像の再生の開始後に再起動することを特徴とする映像再生システム。
【請求項２】
前記撮像手段は、カメラと該カメラで撮像された画像データを伝送する装置とを含むことを特徴とする請求項１に記載の映像再生システム。
【請求項３】
前記検知手段は、前記カメラ及び前記装置からの応答に基づいて前記障害の発生を検知することを特徴とする請求項２に記載の映像再生システム。
【請求項４】
前記検知手段は、前記カメラからの応答がない場合、前記装置から応答がない場合、またはキャプチャエラーが所定の割合で発生しているとの応答があった場合に、前記障害が発生していると検知することを特徴とする請求項３に記載の映像再生システム。
【請求項５】
前記検知手段は、検知した内容に基づいて障害の種別を決定することを特徴とする請求項２から４のいずれか一項に記載の映像再生システム。
【請求項６】
前記制御手段は、前記障害の発生しているカメラまたは装置の少なくとも一方の電源を前記障害の種別に応じて再起動することを特徴とする請求項５に記載の映像再生システム。
【請求項７】
前記撮像手段の再起動に必要な条件を判定する判定手段をさらに有し、
前記制御手段は、前記障害の発生した撮像手段を、該撮像手段を除く他の撮像手段によって得られた画像データから得られる仮想視点映像の再生の開始後であり、かつ前記判定手段で条件を満たすと判定された場合に再起動することを特徴とする請求項１から６のいずれか一項に記載の映像再生システム。
【請求項８】
前記仮想視点映像の各フレームの生成に用いられる画像データに対応する撮像手段を示す上映コントロール情報と前記検知手段による検知結果とに基づいて前記仮想視点映像の生成に用いられる画像データに対応する撮像手段を選択する選択手段と
前記選択手段で選択された撮像手段により撮像された画像データを用いて生成された前記仮想視点映像を再生する再生手段と
をさらに有することを特徴とする請求項１から７のいずれか一項に記載の映像再生システム。
【請求項９】
前記選択手段により有効な撮像手段が選択されない場合、前記再生手段は、バックアップ上映を行い、
前記制御手段は、前記バックアップ上映の開始後に前記障害の発生した撮像手段を再起動することを特徴とする請求項８に記載の映像再生システム。
【請求項１０】
前記撮像手段は、レンズと撮像センサとを有するカメラであり、
前記システムは、多眼カメラを備える撮像装置であることを特徴とする請求項１から９のいずれか一項に記載の映像再生システム。
【請求項１１】
映像再生のシナリオに規定されたタイミングでそれぞれの撮像を行なう複数の撮像手段と、
前記撮像手段における障害の発生を検知する検知手段と、
前記検知手段により障害の発生が検知された撮像手段を、前記シナリオに規定された前記撮像のタイミングを外して再起動する制御手段と、
を有することを特徴とする映像再生システム。
【請求項１２】
複数の撮像手段によって撮像された画像データから生成された仮想視点映像を再生する映像再生システムであって、
前記撮像手段における障害の発生を検知する検知手段と、
前記複数の撮像手段によって撮像された画像データのうち、前記障害の発生が検知された撮像手段を除く撮像手段により撮像された画像データの中から、前記仮想視点映像を生成するために用いる画像データを設定する設定手段と、
前記検知手段により障害の発生が検知された撮像手段を、前記設定手段による前記仮想視点映像を生成するために用いる画像データの設定後に再起動する制御手段とを有することを特徴とする映像再生システム。
【請求項１３】
複数の撮像手段によって撮像された画像データから生成された仮想視点映像を再生する映像再生システムにおける電源管理装置であって、
障害の発生した撮像手段を示す情報と、前記仮想視点映像の上映開始時刻を示す情報とを取得する取得手段と、
前記障害の発生した撮像手段の電源を、前記仮想視点映像の上映開始時刻の後に再起動する制御手段と
を有することを特徴とする電源管理装置。
【請求項１４】
複数の撮像手段によって撮像された画像データから生成された仮想視点映像を再生する映像再生システムにおける制御方法であって、
前記撮像手段における障害の発生を検知する検知ステップと、
前記複数の撮像手段のうち、前記検知手段により障害の発生が検知された撮像手段を再起動する制御ステップとを含み、
前記制御ステップは、前記障害の発生が検知された撮像手段を、前記障害の発生が検知された撮像手段を除く他の撮像手段によって撮像された画像データから生成された仮想視点映像の再生の開始後に再起動するステップであることを特徴とする制御方法。
【請求項１５】
映像再生のシナリオに規定されたタイミングでそれぞれの撮像を行なう複数の撮像手段を有する映像再生システムにおける制御方法であって、
前記撮像手段の障害の発生を検知する検知ステップと、
前記検知ステップで障害の発生が検知された撮像手段を、前記シナリオに規定されたタイミングを外して再起動するステップと、
を有することを特徴とする制御方法。
【請求項１６】
複数の撮像手段によって撮像された画像データから生成された仮想視点映像を再生する映像再生システムにおける電源管理装置であって、
障害の発生した撮像手段を示す情報と、前記仮想視点映像の上映開始時刻を示す情報とを取得する取得ステップと、
前記障害の発生した撮像手段の電源を、前記仮想視点映像の上映開始時刻の経過後に再起動するステップと
を有することを特徴とする電源管理方法。
【請求項１７】
コンピュータを請求項１から１２のいずれか一項に記載の映像再生システムにおける各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のカメラの映像を利用して仮想視点映像を生成して再生する映像再生システムに関するものである。より詳細には、映像再生システムにおいて障害が発生した場合の再起動に関するものである。
【背景技術】
【０００２】
複数台のカメラで同一シーンを撮像し、移動する仮想視点から見た映像(仮想視点映像)を表現する映像再生システムが提案されている。このような映像再生システムでは多数のカメラや制御ＰＣが必要となる。このような多数の機器を用いるシステムを長期間安定して稼動させる方法として、特許文献１に記載されているように障害が発生した機器の処理を他の機器で代替する方法がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−０８７８３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
仮想視点映像を生成して再生するシステムにおいては、個々のカメラがシナリオに応じてそれぞれ意味のある映像を撮像するので、別のカメラでの代替が困難な場合がある。このようなシステムにおいて、単純に障害が発生したデバイスを再起動したり、障害が発生したデバイスを取り除く処理は、生成される仮想視点映像の劣化につながったり、映像自体の再生の停止にもつながる恐れがある。
【課題を解決するための手段】
【０００５】
本発明に係る映像再生システムは、複数の撮像手段によって撮像された画像データから生成された仮想視点映像を再生する映像再生システムであって、
前記撮像手段の障害の発生を検知する検知手段と、前記障害の発生した撮像手段を、該撮像手段を除く他の撮像手段によって撮像された画像データから得られる仮想視点映像の再生の開始後に再起動する制御手段とを有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、障害の発生した機器を検知し、上映シナリオの状況に応じて当該機器を再起動することで長期間安定して仮想視点映像を再生することが可能になる。
【図面の簡単な説明】
【０００７】
【図１】実施例１による映像再生システムの説明図である。
【図２】実施例１におけるシナリオデータ、および上映コントロール情報の例である。
【図３】実施例１のシステム構成を表す図である。
【図４】実施例１におけるキャプチャＰＣでの処理を示す図である。
【図５】実施例１におけるキャプチャＰＣの処理の流れを示すフローチャートである。
【図６】実施例１における画像処理ＰＣでの処理を示す図である。
【図７】実施例１における画像処理ＰＣでの処理の流れを示すフローチャートである。
【図８】実施例１における画像表示ＰＣでの処理を示す図である。
【図９】実施例１における通常上映処理の流れを示すフローチャートである。
【図１０】実施例１におけるカメラやＰＣの有効判定処理の流れを示すフローチャートである。
【図１１】実施例１における電源コントローラでの処理を示す図である。
【図１２】実施例１における電源コントローラでの処理の流れを示すフローチャートである。
【図１３】実施例１における仮想視点映像生成処理の流れを示すフローチャートである。
【図１４】実施例１における仮想視点映像生成処理で用いるパラメータを説明する図である。
【図１５】実施例１におけるカバー率を説明する図である。
【図１６】実施例１におけるカメラ選択処理の流れを示すフローチャートである。
【図１７】実施例２における電源コントローラでの処理の流れを示すフローチャートである。
【図１８】その他の実施例におけるシステム構成を表す図である。
【発明を実施するための形態】
【０００８】
以下、添付の図面を参照して、本発明を好適な実施例に基づいて詳細に説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【実施例１】
【０００９】
図１は、本実施例における、固定された複数の撮像用カメラを用いて仮想視点映像を生成し、これをリアルタイム上映する映像再生システムを示す図である。図１（ａ）に示したように、本実施例における固定カメラは仮想視点の移動ルートに沿ってカメラの撮像領域が重複するように配置する。図１（ａ）において、カメラ１０１は床１０２上に図示しない金属製の枠によって宙吊りの状態で固定されている。仮想視点１０５は、床１０２をｘ−ｙ平面上に含み、高さ方向をｚ軸とする座標系上にマッピングされる。また、図１（ｂ）は図１（ａ）を２次元平面に投影したものであり、複数の人がいる場合を想定したものである。図１（ｂ）においては、被写体となる人１０４を表している。
【００１０】
図２は、本実施例におけるシナリオデータの一例を示す図である。シナリオデータとは仮想視点映像を生成し、再生する際に、どの仮想視点の画像データをどの時間軸のフレームにおいて用いるかを規定するデータのことである。本実施例では、例えば５分程度の短時間のシナリオを一つのシナリオとして用いる。図２（ａ）は、一つのシナリオを表すシナリオデータの例を示している。シナリオデータには、上映時間中の各フレームについて、仮想視点の位置を表現するための仮想視点座標、仮想視点の方向を表現するための仮想視点方向、仮想視点の姿勢を表現するための仮想視点上方向ベクトルを記述する。仮想視点座標と仮想視点方向は、この座標系における仮想視点の位置と向きである。仮想視点上方向ベクトルとは、仮想視点の向きに対して視界がどの程度傾いているかを指定するためのパラメータで、仮想視点方向と仮想視点上方向ベクトルは直交する。これに画角を加えることで、仮想視点からの視界を表現することが出来る。本実施例では、さらにレンズ効果パラメータ（歪曲強度α、周辺光量落ち強度β。詳細は後述）を加えることで、あたかも実際にカメラを移動しながら撮像したかのような自然な映像を生成する。
【００１１】
また、シナリオデータは、仮想視点映像生成処理で用いる画像処理パラメータである、基準面の高さを保持する。基準面の高さは、使用カメラの切り替え時の滑らかさに影響する。例えば本実施例において、ほぼ無人の状態の場合、基準面を床に取るのが望ましいが、図１（ｂ）のように、撮像領域に多数の人が居る場合には、平均身長程度の高さに基準面を取った方が滑らかな映像になる。シナリオデータに基準面の高さを保持することで、被写体の状態に応じて基準面の高さを補正することが可能になる。基準面の高さの補正は、各カメラによる撮像画像データから自動生成しても良いし、マニュアル指定しても良い。
【００１２】
図３は、本実施例を実現するためのシステムの構成を示す図である。本システムは、複数のカメラ１０１と管理サーバＰＣ３０１と複数のキャプチャＰＣ３０２と複数の画像処理ＰＣ３０３と画像表示ＰＣ３０４とＨＵＢ３０５と電源コントローラ３０６とを含む。
【００１３】
管理サーバＰＣ３０１は、システム全体を管理するＰＣであり、システムを操作するため、コンソール画面とキーボード、マウスなどの操作デバイスが接続されている。
【００１４】
キャプチャＰＣ３０２は、カメラ１０１と同数分用意されている。キャプチャＰＣ３０２は各カメラ１０１とＨＤ−ＳＤＩ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｓｅｒｉａｌ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）ケーブルで接続される。カメラ１０１で撮像した映像はキャプチャＰＣ３０２を介して画像処理ＰＣ３０３へ送信される。ここで、カメラ１０１の出力解像度がフルＨＤ解像度（１９２０×１０８０画素、秒３０コマ）の場合、非常にデータ量が大きくなる。そのため、全てのカメラ１０１の映像を一斉に送信すると、通信経路の帯域を使い切ってしまうという問題が発生する。そこで、予め定められたシナリオを現在使用可能なカメラや画像処理ＰＣを用いて再現するための上映コントロール情報を生成し、これに従って映像を伝送する。
【００１５】
図２（ｂ）及び図２（c）は上映コントロール情報の一例を示す図である。上映コントロール情報にはカメラ制御情報とＰＣ制御情報とが含まれる。図２（ｂ）はカメラ制御情報の例を示しており、カメラＩＤと各フレームとが対応付けられている。図２（ｃ）はＰＣ制御情報の例を示しており、画像処理ＰＣＩＤと各フレームとが対応付けられている。上映コントロール情報には、上映開始時刻から終了時刻までの各フレームについて、どのカメラの映像をどの画像処理ＰＣで処理するかを記載する。例えば本実施例では、上映コントロール情報のうち、カメラ制御情報（図２（ｂ））の値は、０は対応するカメラの映像データの送信が不要、１は対応するカメラの映像データの送信、２は対応するカメラのヘッダ情報のみの送信を意味する。また、ＰＣ制御情報（図２（ｃ））の値は、１が対応する画像処理ＰＣを使用することを、０は使用しないことを意味する。尚、図２中に示したように、上映コントロール情報に含まれる時刻は、上映開始時刻を０：００：００．００ｆとした相対時刻で記述する。
【００１６】
画像処理ＰＣ３０３は、キャプチャＰＣ３０２から送信された映像を受信・加工して画像表示ＰＣ３０４へ送信する。
【００１７】
画像表示ＰＣ３０４は、画像処理ＰＣ３０３から送信された映像を受信してバッファリングし、管理サーバＰＣ３０１から指定されたタイミングで上映する。尚、各キャプチャＰＣと各画像処理ＰＣと管理サーバＰＣと画像表示ＰＣとはネットワークＨＵＢ３０５によってＬＡＮ接続されており、データの送受信はＴＣＰ／ＩＰを用いて行う。
【００１８】
電源コントローラ３０６は、管理サーバＰＣ３０１、カメラ１０１、キャプチャＰＣ３０２の電源に個別接続されている。電源コントローラ３０６は、キャプチャエラーを検出した場合など、何らかの障害が発生したカメラ１０１やキャプチャＰＣ３０２を選択的に再起動することが可能である。
【００１９】
各ＰＣの機能の詳細は後述する。また、カメラ１０１は全て、同期を取る必要があるので、同期信号（ジェネロック、ＧｅｎＬｏｃｋ）が供給されている。
【００２０】
＜キャプチャＰＣ＞
キャプチャＰＣ３０２は、カメラ１０１からの映像をキャプチャし、画像処理ＰＣ３０３へ送信する。
【００２１】
図４は、キャプチャＰＣ３０２の構成の例を示す図である。図４を用いてキャプチャＰＣの動作を説明する。キャプチャＰＣ３０２は、管理サーバＰＣ３０１から受け取った上映コントロール情報４０８に記載のカメラ制御情報に従ってカメラを制御するカメラ制御部４１１を備える。なお、画像処理ＰＣ３０３で適用する仮想視点映像生成処理には、撮像時のレンズ特性データが必要となる。しかしながら、レンズ特性データはカメラの撮像時設定（例えば、ｆ値、画角、撮像距離）によって変化することが知られているので、キャプチャＰＣ３０２は、レンズ補正データを取得するレンズ補正データ取得処理部４０２を備える。本実施例では、レンズ補正値データベース４０３を備えることで、撮像時設定に応じたレンズ補正データを得る。取得したレンズ補正データは、映像データにヘッダ情報として付加して送信する。レンズ補正データには、歪曲、周辺光量、倍率色収差などの様々な補正データが考えられるが、簡単のため本実施例では歪曲と周辺光量の補正データを格納する。また、仮想視点映像を生成するためには、カメラ１０１の位置、方向、姿勢や画角などのカメラ位置・姿勢情報４０４が必要となる。そこで、画像データにカメラ位置・姿勢情報もヘッダ情報として付加する。このほか、ヘッダ情報には、レンズ補正データやカメラ位置・姿勢情報のほか、キャプチャ時刻、画像サイズ、画像データタイプなどが含まれる。
【００２２】
映像データをキャプチャＰＣ３０２から画像処理ＰＣ３０３へ送る送信処理は前述のようにＴＣＰ／ＩＰで行う。データを送信する度に画像処理ＰＣ３０３と再接続するのは効率が良くないので、送信処理部４０５を画像処理ＰＣ３０３の台数分用意して対応する。本実施例では、送信処理部として送信スレッドを用いる。すなわち、送信スレッドを画像処理ＰＣの台数分用意して対応する。また、送信経路の帯域の問題で受信したデータを遅延無く送ることができない場合があるので、予め指定された秒数分だけバッファリングする送信バッファ４０１を有する。
【００２３】
尚、キャプチャＰＣには、送信処理部４０５の他に、カメラから映像を受け取りヘッダやレンズ補正データを付加して送信用データを作成する送信データ生成部４０６、および送信処理部４０５の管理を行う管理部４０７がある。
【００２４】
図５は、キャプチャＰＣ３０２での処理を示すフローチャート図である。ステップＳ５０１において送信データ生成部４０６はまず管理部４０７に対してどの送信処理部４０５を使用するかを確認する。
【００２５】
ステップＳ５０２において管理部４０７は、後述する管理サーバＰＣ３０１から受け取った上映コントロール情報４０８に含まれるＰＣ制御情報に従って送信先の画像処理ＰＣ３０３を選択する。そして、選択された画像処理ＰＣ３０３に対応する送信処理部４０５を送信データ生成部４０６に通知する。
【００２６】
ステップＳ５０３において送信データ生成部４０６は、まず管理部４０７から指示された送信処理部４０５の送信バッファ４０１内の送信データ領域を取得する。
【００２７】
次に、ステップＳ５０４において送信データ生成部４０６は、取得した送信データ領域に、キャプチャした映像を含む送信データを生成する。
【００２８】
そして、ステップＳ５０５において送信データ生成部４０６は生成した送信データを送信バッファ４０１に出力し、管理部４０７にデータ出力完了を通知する。
【００２９】
ステップＳ５０６において管理部４０７はデータ出力完了通知を受け取ったデータを送信キュー４０９に追加して、送信処理を実行する。送信処理においては、管理部４０７は自身が備える送信キューに格納されているデータが有効かどうかを判定する。この判定は、対象データのキャプチャ時間Ｔ０と、上映開始時間Ｔ１との差が予め定められた時間ＴＬを超えたかどうかで判定する。有効で無い場合には送信処理をスキップする。有効な場合には管理部４０７は送信処理部４０５に送信指示を出し送信処理を実行する。
【００３０】
送信データに含まれる画像データは、設定ファイルによって圧縮するかどうかを指定できる。ここで、ヘッダ情報に含まれる画像データタイプは、圧縮する場合には１、しない場合には０を指定する。また、ヘッダだけを送信する場合には２を指定する。映像データの圧縮はフレーム単位で行う必要がある。圧縮はＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）形式を用いてもよいし、ＤＸＴＣ（ＤｉｒｅｃｔＸ  Ｔｅｘｔｕｒｅ  Ｃｏｍｐｒｅｓｓｉｏｎ）形式を用いてもよい。ＤＸＴＣはＧＰＵの利用により非常に高速に画像データを圧縮できる。
【００３１】
なお、送信データ生成部４０６はカメラからの映像をキャプチャする際、キャプチャエラーが発生した割合をカウントし、後述する管理サーバＰＣからの有効判定応答時にキャプチャエラー情報４１０として状態を返せるようにする。キャプチャエラーは、カメラとキャプチャＰＣとの距離が長く（例えば、１００ｍ超）、映像が秒３０コマ正しく取得できない、などの内容で発生する可能性がある。あるいは、キャプチャエラーはカメラ側またはキャプチャＰＣ側の不具合で生じる可能性がある。本実施例では、キャプチャエラーによって取得できなかったフレーム数が、例えばキャプチャ対象フレーム数の１０％を超えた時点で、「キャプチャエラーが多い」と判定する。
【００３２】
＜画像処理ＰＣ＞
画像処理ＰＣ３０３は、キャプチャＰＣ３０２から受信した映像を加工し、画像表示ＰＣ３０４へ送信する。
【００３３】
図６は、画像処理ＰＣ３０３の構成の例を示す図である。図６を用いて画像処理ＰＣ３０３の動作を説明する。キャプチャＰＣ３０２と同様に、全てのキャプチャＰＣ３０２と接続した状態を維持するため、キャプチャＰＣ３０２の台数分の受信処理部６０１を起動する。受信処理部６０１は、キャプチャＰＣ３０２の送信処理部と対応してスレッドとして起動させることができる。
【００３４】
図７は、画像処理ＰＣ３０３の処理を示すフローチャートである。まず、ステップＳ７０１において受信処理部６０１は、受信したデータは画像データタイプに応じた処理が必要なデータであるか否かを判定する。処理が必要なデータである場合、ステップＳ７０２に進み、受信処理部６０１は、受信したデータに対して画像データタイプに応じた画像処理を適用し、ステップＳ７０３で受信バッファ６０２に格納する。本実施例では、画像データタイプに応じた処理として、画像データタイプが１の場合、圧縮データの解凍処理を適用して非圧縮データ（画像データタイプ＝０）に変換する。
【００３５】
ステップＳ７０４において受信処理部６０１は、受信したデータを受信バッファ６０２に格納した後、管理部６０３にデータ受信完了を通知する。
【００３６】
次にステップＳ７０５において管理部６０３は、上映コントロール情報６０４に従って仮想視点映像生成用のフレーム画像データを選択する。そして、ステップＳ７０６において管理部６０３は、仮想視点映像生成処理部６０５に映像生成指示を出す。ただし、映像生成指示後、仮想視点映像生成処理部６０５からデータ出力完了通知を受け取っていない場合には、出力完了通知を受信するまで映像生成指示をブロックする。これは、同時に複数の仮想視点映像生成処理を実行すると、既に実行中の映像生成処理のスループットが低下してしまい、リアルタイム再生が出来なくなる可能性が高くなるからである。そのため、管理部６０３は処理キュー６０９にデータ出力完了通知の確認と取得を行い、通知を取得してから処理を継続する。
【００３７】
ステップＳ７０７において、映像生成指示を受けた仮想視点映像生成処理部６０５は、管理部６０３によって選択された映像と上映時刻を用いて、シナリオデータ６０６に沿った仮想視点映像データを生成する。処理の詳細については後述する。
【００３８】
ステップＳ７０８において仮想視点映像生成処理部６０５は、生成した仮想視点映像データを送信バッファ６０７に出力する。そして、ステップＳ７０９において仮想視点映像生成処理部６０５は、管理部６０３と送信処理部６０８にデータ出力完了を通知する。
【００３９】
ステップＳ７１０において送信処理部６０８は、データ出力完了通知を受け、生成した仮想視点映像データを画像表示ＰＣ３０４へ送信する。送信する仮想視点映像データには、キャプチャ時刻、および画像解像度をヘッダとして付加する。
【００４０】
＜画像表示ＰＣ＞
画像表示ＰＣ３０４は、次の機能を持つ。
（ａ）画像処理ＰＣから受信したデータの再生（通常上映）
（ｂ）バックアップ映像の上映（バックアップ上映）
画像表示ＰＣ３０４は、通常、画像処理ＰＣ３０３から受信したデータを再生する。但し、複数のカメラやＰＣの故障によって、正常に上映できない場合が考えられる。このような場合には、後述する管理サーバＰＣ３０１上での判定処理によりバックアップ上映への切り替えを行う。以下では、画像表示ＰＣ３０４の通常上映時及び、バックアップ上映時の処理の詳細について説明する。
【００４１】
図８は、画像表示ＰＣ３０４の構成の例を示す図である。図８を用いて画像表示ＰＣ３０４の動作を説明する。画像表示ＰＣ３０４は、画像処理ＰＣ３０３と同様に、画像処理ＰＣ３０３の台数分の受信処理部８０１を持ち、受信したデータを受信バッファ８０２にバッファリングする。本ＰＣには大容量のメモリを搭載し、上映対象となる全ての映像をバッファリングできるようにする。これは、バックアップ映像を生成するために必要である。受信処理部８０１はスレッドとして構成できる。
【００４２】
図９は、画像表示ＰＣ３０４における通常上映処理を示すフローチャートである。ステップＳ９０１において受信処理部８０１は、画像処理ＰＣ３０３において生成された映像データを受信し、受信バッファ８０２に格納する。ステップＳ９０２において受信処理部８０１は、映像１フレーム分の受信が完了する度に、管理部８０３にデータ受信完了通知を送信する。
【００４３】
ステップＳ９０３において管理部８０３は、データ受信完了通知を受信したら受信映像管理領域８０４内の受信映像管理情報を更新する。ここで受信映像管理情報は、受信した映像データのキャプチャ時刻、受信処理部８０１の識別ＩＤを含むものである。ステップＳ９０４において管理部８０３は、上映開始時刻まで待機し、上映開始時刻から上映終了時刻までの間、ステップＳ９０５以降の上映管理処理を行う。
【００４４】
ステップＳ９０５において管理部８０３は、再生対象となる映像データを受信バッファ８０２内から選択する。映像データの選択は、受信映像管理領域内の各映像データのキャプチャ時刻や受信処理部８０１の識別ＩＤを利用して行う。ここで、上映コントロール情報８０６は上映開始時刻を基準とした相対時刻で記述されているため、キャプチャ開始時刻を用いて再生対象となるキャプチャ時刻を計算し、この時刻に対応したフレーム画像データを得る。ステップＳ９０６において管理部８０３は、このようにして選択した映像データを画像表示部８０５に通知する。
【００４５】
ステップＳ９０７において画像表示部８０５は、指定された映像データを表示する。以後、全てのフレームについて再生処理を適用し、ステップＳ９０８において全てのフレーム画像を表示したと判定した場合、ステップＳ９０９において管理部は終了処理を実行する。なお、処理の遅延などで対応する映像データが存在しない場合には表示を更新せず、直前に表示した映像をそのまま表示した状態にする。このような処理により、フレームの欠落により上映時間が極端に短くなったり上映した映像が不自然になったりすることを回避できる。
【００４６】
本実施例におけるステップＳ９０９の終了処理は、全てのフレームデータをファイルに格納する処理である。このファイルは、バックアップ映像として使用する。複数回上映する場合には、上映した全ての映像を保存しても良いし、フレームの欠落が無い場合だけ保存しても良い。
【００４７】
次に、バックアップ上映時の処理について説明する。本実施例では、バックアップ上映する映像として、通常上映の結果保存されたファイルのうち最新のものを用いる。予め指定したファイルを上映しても良いことは言うまでも無い。バックアップ上映時の処理も基本的に図９に示す処理と同様であり、異なる部分のみ説明する。バックアップ上映では、ステップ９０１の受信処理を行う代わりにバックアップデータ読込み処理部８０８を介してバックアップ映像データ８０９をメモリ上に読み込む。その後は通常上映と同様に上映処理を実行するため詳細な説明は省略する。尚、バックアップ上映の場合には、上映データのファイル出力、即ちステップＳ９０９の終了処理に相当する処理は行わない。
【００４８】
＜管理サーバＰＣ＞
管理サーバＰＣは、システム全体を管理する。具体的には、次のような機能を持つ。
（ａ）システムを構成するＰＣやカメラの有効判定
（ｂ）各ＰＣにおける映像バッファリング時間の変更
（ｃ）上記のａ、ｂに基づいた上映コントロール情報の生成
（ｄ）シナリオデータ、上映コントロール情報の配布
（ｅ）キャプチャＰＣ、画像処理ＰＣの設定ファイルの配布
ここで、有効判定処理について図１０のフローチャート図を参照して説明する。ステップＳ１００１において管理サーバＰＣは、まず、画像表示ＰＣ３０４に対して問い合わせを行う。ステップＳ１００２において管理サーバＰＣは、予め定めた時間ＴＡ以内に画像表示ＰＣから応答が返ってくるかどうかを確認する。ここで、画像表示ＰＣ３０４は正常に動作している場合、問い合わせに対して０を返す。画像表示ＰＣ３０４が応答を返せない場合、上映ができなくなるので、ステップＳ１００３において管理サーバＰＣはアラート表示をして機材の交換を促して処理を終了する。ステップＳ１００３のアラート表示は、例えば画像表示ＰＣに障害が発生したので上映が実行できない旨を表示することができる。
【００４９】
ステップＳ１００２において画像表示ＰＣ３０４から応答があった場合、すなわち、画像表示ＰＣ３０４に問題が無い場合には、ステップＳ１００４に進む。ステップＳ１００４において管理サーバＰＣは、引き続き各画像処理ＰＣ３０３に対しても同様に問い合わせを行い、正常に動作しているか否かを確認する。画像処理ＰＣ３０３は正常に動作している場合、問い合わせに対して０を返す。ステップＳ１００５において管理サーバＰＣは、１台でも応答が無い画像処理ＰＣ３０３があった場合には、ステップＳ１０１１に進みアラート表示をする。そして、ステップＳ１０１２において管理サーバＰＣは画像表示ＰＣ３０４に対してバックアップ上映を指示して処理を終了する。ここでのアラート表示の例としては、どの画像処理ＰＣから応答がないかを通知したり、バックアップ上映に切替える旨を通知することが挙げられる。
【００５０】
ステップＳ１００５において画像処理ＰＣから応答があった場合、すなわち画像処理ＰＣ３０３にも問題が無い場合、ステップＳ１００６に進み、キャプチャＰＣ３０２に対して問い合わせを行う。キャプチャＰＣ３０２は、例えばカメラが認識できない場合は１、カメラは認識できるがキャプチャエラーが多く発生した場合は２、それ以外は０を返す。本実施例では、説明の簡便化のため、上記のケースを例に挙げているが、もちろん、これ以外にも細かい障害要因の種別を特定するための値を返してもよい。キャプチャＰＣ３０２への問い合わせ結果は図４で示したキャプチャエラー情報４１０によって検知することができる。すなわち、キャプチャエラー情報は検知結果を示す情報である。
【００５１】
ステップＳ１００７において管理サーバＰＣは、問い合わせの結果得られたカメラ及びキャプチャＰＣの状態から、有効カメラリストを生成する。有効カメラリストとは、カメラ及びキャプチャＰＣの状態が正常である組を含むリストのことである。有効カメラリストには、カメラ及びキャプチャＰＣの各組毎に上記のキャプチャエラー情報が関連付けられている。従って、上記のキャプチャエラー情報が０である組が、状態が正常である組を表している。また、上記のキャプチャエラー情報が０以外の値の場合には、その組のカメラ及びキャプチャＰＣの少なくとも一方に障害が発生していることを表している。
【００５２】
ステップＳ１００８において管理サーバＰＣは、全てのキャプチャＰＣが正常であるかを判定する。キャプチャＰＣ３０２からの応答が不能である場合、あるいは返された値が０以外の個体が存在する場合、ステップＳ１００９に進みカメラ選択処理を実行する。カメラ選択処理は、使用不能なカメラを除いた構成で、シナリオに沿った上映をするための上映コントロール情報を生成する処理である。カメラ選択処理の詳細については後述する。
【００５３】
ステップＳ１０１０において管理サーバＰＣは、カメラ選択処理でエラーが発生したか否かを判定する。つまり、使用不能なカメラを除いた構成ではシナリオに沿った上映ができないか否かを判定する。エラーが発生した場合には、ステップＳ１０１１、Ｓ１０１２に進み、アラート表示を行った上で、画像表示ＰＣ３０４に対してバックアップ上映を指示して処理を終了する。ここでのアラート表示の例としては、障害が発生しているキャプチャＰＣを通知し、バックアップ上映に切替える旨を通知することが挙げられる。
【００５４】
なお、本実施例では、上映システムを構成する全てのＰＣで実行するアプリの設定ファイルは、各ＰＣ上に公開された共有フォルダに配置する。したがって、管理サーバから各ＰＣの共有フォルダにアクセスすることで、設定を変更することができる。例えば、各ＰＣにおける映像バッファリング時間や、画像表示ＰＣでのバックアップ上映指示などは、このような共有フォルダの設定ファイルを変更することによって行うことができる。
【００５５】
＜電源コントローラ＞
図１１は、電源コントローラ３０６の構成例を示す図である。図１１を用いて電源コントローラ３０６の動作を説明する。電源コントローラ３０６は管理サーバＰＣ３０１から有効カメラリスト１１０２と上映コントロール情報１１０３とを取得し、その情報に応じてカメラ１０１及びキャプチャＰＣ３０２の電源を制御する。
【００５６】
図１２は、電源コントローラ３０６において、障害が発生した機器を再起動する処理を示すフローチャートである。ステップＳ１２０１においてまず、管理部１１０１は、管理サーバＰＣ３０１から有効カメラリスト１１０２を取得する。先に説明したように有効カメラリストとは、カメラ及びキャプチャＰＣの状態を示すリストのことである。つまり、有効カメラリストは障害が発生しているカメラ及びキャプチャＰＣの組を表すリストとも言える。
【００５７】
ステップＳ１２０２において管理部１１０１は、上映コントロール情報１１０３を取得し、処理キューに上映開始時間を格納する保持する。ステップＳ１２０３において管理部１１０１は処理キューに格納されている上映開時刻を参照して上映開始時間まで待機する。上映開始時間まで待機する理由は、上映開始までの間に有効カメラリスト及び上映コントロール情報が更新される可能性があるからである。本実施例ではシステムの安定性を高めるために、データ更新等の影響が少ない上映開始時刻経過後（このとき有効カメラリスト及び上映コントロール情報は確定している）に再起動を行なう。つまり、本実施例では、障害が発生したデバイスを無条件で再起動するのではなく、上映シナリオの状況に応じて再起動をする。すなわち、上映開始後にはその上映シナリオにおいて使用しておらず、かつ障害が発生しているデバイスが確定する。そこで、上映シナリオに影響がないことが確定した時点で障害の発生しているデバイスを個別に自動的に再起動する。なお、上映時間中に再起動を行うのは、次回の上映コントロール情報生成までに再起動を終了させておき、次回の上映コントロール情報生成時において有効カメラリストに有効な組として含めるためである。なお、再起動は必ずしも上映開始後に行う必要はなく、上映する仮想視点映像の生成に用いられる有効カメラリストおよび上映コントロール情報が確定していれば、どのようなタイミングで再起動を行うようにしてもよい。すなわち、仮想視点映像を生成するために用いる画像データの設定後に再起動するようにしてもよい。
【００５８】
上映が開始されると、ステップＳ１２０４において管理部１１０１は、有効カメラリスト１１０２を参照して障害が発生しているデバイスの再起動を電源処理部１１０３に指示する。先に説明したように、有効カメラリストには、カメラとキャプチャＰＣの組に対応付けてステータスを示す値が含まれている。ステータスはカメラとキャプチャＰＣの状態を示している。例えば、ステータスが１の場合は、キャプチャＰＣがカメラを認識できない状態を示している。そこで、電源処理部１１０３は該当するキャプチャＰＣ電源管理部１１０５に再起動を指示する。ステータスが２の場合は、キャプチャエラーが多いことを示している。そこで、電源処理部１１０３は該当するカメラ監視部１１０４に再起動を指示する。ステータスが０の場合はキャプチャＰＣとカメラが正常に動作しているため再起動は行わない。このように、ステータスに応じてキャプチャＰＣとカメラの電源を個別に管理可能である。尚、システムのとり得るステータスはこれに限られるものではなく、他のステータスも取り得る。また、ステータスによってはキャプチャＰＣとカメラを同時に再起動させることも可能である。
【００５９】
ステップＳ１２０５において電源処理部１１０３は、ステップＳ１２０４で指示した全ての機器の再起動が完了したことを確認し、管理部１１０１に再起動完了を通知する。
【００６０】
なお、上記の例では、電源コントローラ３０６が有効カメラリストと上映コントロール情報を取得して再起動指示を行なう例を説明した。しかしながら、例えば管理サーバＰＣ３０１が有効カメラリストと上映コントロール情報を取得して再起動を行なう対象とタイミングを決定して電源コントローラ３０６に通知してもよい。そして、電源コントローラ３０６はこの通知された内容に従って再起動指示を行なってもよい。
【００６１】
＜仮想視点映像生成処理＞
次に、本実施形態のステップＳ７０７における仮想視点映像生成処理を説明する。仮想視点映像生成処理では、ある高さ一定の面を基準面として、この基準面にある物体が、カメラ切り替え時にスムーズに接続されるように映像を生成する。この仮想視点映像生成処理では、以下に挙げる映像補正、変換、映像効果付加を一貫して行う。
【００６２】
（１）カメラ映像の歪曲、および、倍率色収差補正
（２）周辺光量落ち補正
（３）仮想視点映像とカメラ映像の間のパース変換
（４）仮想視点映像に対する周辺光量落ち効果の付加
（５）歪曲効果の付加
この仮想視点映像生成処理は、上記操作を一貫して行うため効率が良く、リアルタイム性に適した処理である。尚、仮想視点映像生成処理の処理時間が画像表示ＰＣ３０４でフレームを再生する間隔（例えば、秒３０コマ表示の場合、１／３０秒）よりも長い場合、リアルタイム再生できなくなってしまう。そこで本実施例では、画像処理ＰＣ３０３を複数台用意してインターリーブすることで対応する。例えば画像処理ＰＣ３０３を１０台用意した場合、仮想視点映像生成処理は１／３秒未満で処理すれば良い。
【００６３】
図１３は画像処理ＰＣ３０３の仮想視点映像生成処理部６０５において行われる仮想視点映像生成処理を示すフローチャートである。以下、仮想視点映像生成処理の詳細について数式を用いて説明する。
【００６４】
まず、仮想カメラの物理的な位置を
【００６５】
【数１】
2015212876.tif 000003
【００６６】
仮想カメラの方向を
【００６７】
【数２】
2015212876.tif 000004
【００６８】
仮想カメラの画面上方向を指すベクトルを
【００６９】
【数３】
2015212876.tif 000005
【００７０】
仮想カメラの画面右方向を指すベクトルを
【００７１】
【数４】
2015212876.tif 000006
【００７２】
とする。図１４は仮想視点映像生成処理で用いられる各パラメータを説明するための図である。図１４も併せて参照されたい。
【００７３】
【数５】
2015212876.tif 000007
【００７４】
は方向を表すだけのベクトルであるため、長さは１とする。これらのベクトルを表す座標系には、前述の、床面をx-y平面として、高さ方向をz軸とする座標系を用いる。仮想カメラの水平半画角、および、垂直半画角をそれぞれθh,out、θv,outとする。
【００７５】
仮想視点映像生成処理は、仮想視点映像の画素毎に処理を進めていく。ここで、
画素値を決定しようとしている画素の座標を
【００７６】
【数６】
2015212876.tif 000008
【００７７】
とする。まず、仮想視点映像に歪曲効果を持たせるため、ステップＳ１３０１において歪曲効果の逆変換（歪曲補正）を行い、
【００７８】
仮想視点映像の歪曲補正後の画素座標
【００７９】
【数７】
2015212876.tif 000009
【００８０】
を計算する。逆変換の具体的な数式は、どのような歪曲効果を持たせるかに依存するが、例えば、以下の式（１）を用いればよい。
【００８１】
【数８】
2015212876.tif 000010
【００８２】
ここで、
【００８３】
【数９】
2015212876.tif 000011
【００８４】
は、任意視点映像の中心の画素位置である。
【００８５】
【数１０】
2015212876.tif 000012
【００８６】
は歪曲効果の強さをコントロールするパラメータである。
【００８７】
ステップＳ１３０２は、
【００８８】
画素
【００８９】
【数１１】
2015212876.tif 000013
に写り、かつ前述の基準面上にある点の、３次元空間上の位置
【００９０】
【数１２】
2015212876.tif 000014
を求めるステップである。以下、基準面の高さをＺbaseとする。
【００９１】
位置
【００９２】
【数１３】
2015212876.tif 000015
【００９３】
は、以下の式（２）〜（５）で求められる。
【００９４】
【数１４】
2015212876.tif 000016
【００９５】
【数１５】
2015212876.tif 000017
【００９６】
【数１６】
2015212876.tif 000018
【００９７】
【数１７】
2015212876.tif 000019
【００９８】
ここで、Ｘｐ，ｚおよびＸｐｉｘｅｌ，zは、それぞれ
【００９９】
【数１８】
2015212876.tif 000020
【０１００】
および
【０１０１】
【数１９】
2015212876.tif 000021
【０１０２】
のz成分である。
【０１０３】
ステップＳ１３０３は、c番目のカメラ（以下、カメラｃとする）において、
【０１０４】
位置
【０１０５】
【数２０】
2015212876.tif 000022
【０１０６】
が写っている
【０１０７】
理想画素位置
【０１０８】
【数２１】
2015212876.tif 000023
【０１０９】
を求めるステップである。ここで言う理想画素位置とは、カメラｃの映像に歪曲や倍率色収差などの収差が無い場合の画素位置である。
【０１１０】
理想画素位置
【０１１１】
【数２２】
2015212876.tif 000024
は以下の式（６）〜（９）により求められる。
【０１１２】
【数２４】
2015212876.tif 000025
【０１１３】
【数２５】
2015212876.tif 000026
【０１１４】
【数２６】
2015212876.tif 000027
【０１１５】
【数２７】
2015212876.tif 000028
【０１１６】
ここで、式（６）のＸｐ，ｃ，ｘ、Ｘｐ，ｃ，ｙ、Ｘｐ，ｃ，ｚは、それぞれ
【０１１７】
【数２８】
2015212876.tif 000029
【０１１８】
のｘ、ｙ、ｚ成分であり、θｈ，ｃ、θｖ，ｃはカメラｃの水平半画角と垂直半画角である。式（８）の
【０１１９】
【数２９】
2015212876.tif 000030
【０１２０】
はカメラｃの位置である。また、式（９）の
【０１２１】
【数３０】
2015212876.tif 000031
【０１２２】
は、それぞれカメラｃの映像の右方向、上方向、および、カメラｃの向きを表す方向ベクトルである。これらのベクトルの長さは１とする。これら一連の操作は、ビュー変換、射影変換、スクリーン変換と一般に呼ばれる、３つの変換操作をまとめた操作である。
【０１２３】
ステップＳ１３０４では、カメラｃの歪曲および倍率色収差を考慮して、
【０１２４】
理想画素位置
【０１２５】
【数３１】
2015212876.tif 000032
【０１２６】
を、各色毎に、
【０１２７】
実際の画素位置
【０１２８】
【数３２】
2015212876.tif 000033
【０１２９】
に変換する。ここで、ｉは、色のインデックスを表す。この操作は、形式上、以下の式（１０）で表すことができる。
【０１３０】
【数３３】
2015212876.tif 000034
【０１３１】
この変換の具体的な形は、使用するカメラｃの光学系に依存するもので、一般には、この変換は簡単な関数では表現できない。このため、実測値に基づいて、テーブル参照によってこの変換を行う。
【０１３２】
ステップＳ１３０５では、カメラｃの、
【０１３３】
画素位置
【０１３４】
【数３４】
2015212876.tif 000035
【０１３５】
での画素値Ｉｐ，ｃ，ｉを求める。
【０１３６】
画素位置
【０１３７】
【数３５】
2015212876.tif 000036
【０１３８】
は小数であるため、バイキュービック補間などを用いて、周辺画素から補間した画素値を取得する。
【０１３９】
ステップＳ１３０６では、カメラｃの周辺光量落ちを補正しつつ、仮想視点映像に周辺光量落ちの効果を付加するためのファクターＤｐ，ｃ，ｉを計算する。このファクターは、以下の式（１１）のように、仮想始点映像の光量落ち効果の量Ｃｐと、
【０１４０】
画素位置
【０１４１】
【数３６】
2015212876.tif 000037
【０１４２】
におけるカメラｃの周辺光量落ちの補正量Ｃｐ，ｃ，ｉとの比として定義する。
【０１４３】
【数３７】
2015212876.tif 000038
【０１４４】
カメラｃの周辺光量落ちの補正量Ｃｐ，ｃ，ｉは、歪曲補正と同様、一般には簡単な関数では表現できない。このため、実測値に基づいて補正テーブルを作成して、テーブル参照によって補正を行う。これを形式的に以下の式（１２）で表す。
【０１４５】
【数３８】
2015212876.tif 000039
【０１４６】
上式のように、周辺光量落ちの画素値依存性をも考慮した補正を行う。
【０１４７】
仮想視点映像に付加する周辺光量落ちの効果は、例えば、以下の式（１３）を用いる。ここでβは、周辺光量落ちの強度をコントロールするパラメータである。
【０１４８】
【数３９】
2015212876.tif 000040
ステップＳ１３０７にて、仮想視点映像の画素値Ｉｏｕｔ，ｉを式（１４）にて計算する。
【０１４９】
【数４０】
2015212876.tif 000041
【０１５０】
ステップＳ１３０７までの処理により、
【０１５１】
仮想視点映像の画素位置
【０１５２】
【数４１】
2015212876.tif 000042
【０１５３】
における、色ｉでの画素値Ｉｏｕｔ，ｉが決定される。ステップＳ１３０８にて、仮想視点映像の全ての画素が処理されるまで、ステップＳ１３０１〜ステップＳ１３０７を繰り返す。これにより、仮想視点映像が生成される。
【０１５４】
ここで、仮想視点映像生成処理において、撮像画像の外の座標を参照する場合がある。このような領域については、所定画像を表示して対応する。例えば本実施例では、予め用意した床テクスチャ画像を仮想視点に応じてパース変換して使用する。撮像画像の外を参照した場合の画素値を、パース変換後の床テクスチャ画像の画素値とすることで違和感の無い出力画像を得ることが可能になる。
【０１５５】
＜カメラ選択処理＞
ステップＳ１００９における管理サーバＰＣでのカメラ選択処理は、正常に動作しているカメラ１０１に関するカバー率に基づいて実行する。図１５は、カバー率を示す図である。カバー率とは、仮想視点映像生成処理によって得る出力画像に対し、カメラによる撮像画像が含まれる割合である。したがって、カバー率の算出は、対象フレームの基準面の高さに基づいて行う。図１５（ａ）は出力画像全ての画素が、撮像画像の画素により得られており、カバー率は１００％となる。一方図１５（ｂ）は出力画像の一部の領域が撮像範囲の外を参照しており、カバー率は１００％未満となる。仮想視点映像の生成処理においては、カバー率が１００％であるカメラを用いることが好ましい。カバー率が１００％でない場合、そのカメラでは撮像できていない領域が含まれるので、仮想視点映像の画質劣化につながるからである。そこで、本実施例では、カバー率が１００％のカメラを選択する。
【０１５６】
図１６は、管理サーバＰＣにおけるカメラ選択処理を示すフローチャートである。ステップＳ１６０１において管理サーバＰＣは、カメラ１０１とキャプチャＰＣ３０２との組み合わせが正常に動作しているか否かを確認する。本実施例では有効カメラリストを取得する。有効カメラリストは、ステップＳ１００６で生成したリストを利用する。
【０１５７】
次に、ステップＳ１６０２において管理サーバＰＣは、上映コントロール情報を参照して上映開始時刻から上映終了時刻までの各フレームについて、有効カメラリストに登録されている各カメラのカバー率を算出する。すなわち、上映コントロール情報と有効カメラリストとを用いて各カメラのカバー率を算出する。
【０１５８】
次に、ステップＳ１６０３において管理サーバＰＣは、ステップＳ１６０２で算出したカバー率が１００％のカメラについて、選択処理を実行する。選択処理については後述する。ステップＳ１６０４において選択されたカメラが存在するかを判定する。選択処理によってカメラが選択されなかった場合、ステップＳ１６０５に進み選択処理モード設定を読み込んで判定を行う。選択処理モード設定とは、カバー率１００％でないカメラを選択対象とするかどうかの設定で、選択対象とする場合には閾値Ｔｘ（％）を指定する。
【０１５９】
ステップＳ１６０５においてカバー率１００％でないカメラを選択対象とすると判定した場合、ステップＳ１６０６にすすみ、カバー率がＴｘ％以上のカメラを対象として選択処理を実行する。ステップＳ１６０５における判定がカバー率１００％でないカメラを対象としない場合、及びステップＳ１６０６の選択処理でもカメラが選択されなかった場合（Ｓ１６０７のＮｏ）は、ステップＳ１６１１でエラーを通知して処理を終了する。ステップＳ１６１１のエラーは、カメラが選択できなかったことを示す通知である。
【０１６０】
ステップＳ１６０８では、全てのフレームを選択したかを判定し、全てのフレームを選択した場合はステップＳ１６０９に進み、そうでない場合はステップＳ１６０２に進む。
【０１６１】
上映コントロール情報によって全てのフレームに対してカメラが選択できた場合、ステップＳ１６０９において管理サーバＰＣは、カメラの再選択処理を実行する。例えば、１フレーム分の映像データの送信処理が１／３０秒以内に終わらない場合、特定のキャプチャＰＣからの送信処理が長時間連続するとリアルタイム上映できなくなってしまう。また、選択カメラが頻繁に切り替わるとフレーム間の画質も合わせて変化してしまい、上映する映像のちらつきとなって現れてしまう。したがって、できるだけカメラの切り替え頻度を少なくしながらも、その上で特定カメラにリクエストが長時間継続しないようにする必要がある。再選択処理の詳細については後述する。
【０１６２】
ステップＳ１６１０において管理サーバＰＣは再選択処理が正常終了したかを判定する。再選択処理でエラーが発生した場合には、ステップＳ１６１１に進み、エラーを通知して処理を終了する。尚、カメラ選択処理でエラーを通知した場合には通常上映では適切な画質が得られないと判断し、ステップＳ１０１１で説明したように自動的にバックアップ上映に切り替わる。
【０１６３】
＜選択処理＞
次に、ステップＳ１６０３とＳ１６０６の選択処理について説明する。選択処理では、まず、対象となるフレームｆにおける注視点Ｐｆの物理座標と、仮想カメラから注視点ＰｆまでのベクトルＶｆとを算出する。また、内積最大値Ｉｍａｘを０に初期化しておく。次に、ステップＳ１６０３の選択処理においては、有効カメラリストに登録されているカメラのうち、カバー率が１００％のカメラについて以下で述べる処理を実行する。一方、ステップＳ１６０６の選択処理においてはカバー率がＴｘ％以上のカメラについて以下で述べる処理を実行する。
【０１６４】
まず、カメラｃから注視点Ｐｆまでの単位方向ベクトルＶｃを計算する。このベクトルＶｃとベクトルＶｆの内積をとり、内積が最大となるカメラｃを選択する。このような処理を行うことで、仮想カメラからの視点に最も近い位置のカメラを選択することが出来る。
【０１６５】
＜再選択処理＞
次に、ステップＳ１６０９の再選択処理を説明する。本実施例による上映システムでは、仮想視点の移動ルートに沿ってカメラを配置している。したがって、カメラを順次切り替えて使用しながら仮想視点映像を生成することになる。
【０１６６】
まず、ある時点で選択されているカメラをｃ＿ｓｅｌとする。次に、その一つ前に選択されたカメラｃ＿ｐｒｅｖを取得する。一つ前に選択されたカメラとは、直前フレームで選択されたカメラのことではなく、現在選択されているカメラよりも直前に選択されていたカメラのことを指す。同様に、二つ前に選択されたカメラｃ＿ｐｒｅｖ２を取得する。
【０１６７】
続いて、直前フレームと同じカメラが選択された状態かどうかをチェックする。直前フレームと同じカメラが選択されているかどうかで処理が異なる。
（ａ）直前フレームと同じカメラが選択されている場合
この場合は、連続選択回数を考慮したカメラ選択処理を実行する。本実施例では、連続選択回数の上限をＮとする。まず、連続選択回数がＮ回未満であれば、このカメラを選択したままとする。Ｎ回以上連続選択されている場合には、特定カメラにリクエストが長時間継続しないようにシナリオ上次に選択されることになるカメラｃ＿ｎｅｘｔで代用可能かどうかを確認する。ここで、代用可能かどうかは、カバー率に基づいて判断する。代用可能な場合、現在処理中のフレーム以降でカメラｃ＿ｓｅｌが連続選択されているフレームについて、選択カメラをｃ＿ｎｅｘｔに変更する。代用可能でない場合、エラーを通知して処理を終了する。
（ｂ）直前フレームと異なるカメラが選択されている場合
この場合は、カメラ切り替え頻度を考慮したカメラ選択処理を実行する。まず、選択されているカメラｃ＿ｓｅｌが、２つ前に選択されたカメラｃ＿ｐｒｅｖ２と同じかどうかを判定する。同じ場合、選択カメラがｃ＿ｓｅｌとｃ＿ｐｒｅｖとで交互に切り替わっている可能性があるので、これを回避する処理を実行する。
【０１６８】
まず、直前フレームの段階でカメラｃ＿ｐｒｅｖを連続Ｍ回以上使用しているかを確認する。連続Ｍ回以上使用していない場合、カメラ切り替え頻度が高くなっている可能性があるので、ｃ＿ｓｅｌの代わりにｃ＿ｐｒｅｖが使用可能かどうかを確認する。ｃ＿ｐｒｅｖで代用可能な場合、選択カメラをｃ＿ｐｒｅｖに変更する。
【０１６９】
そうでない場合、直前のフレームに対し、ｃ＿ｐｒｅｖ２での代用を試みる。ｃ＿ｐｒｅｖ２で代用可能な場合、直前フレーム以前でｃ＿ｐｒｅｖを連続選択しているフレーム全ての選択カメラをｃ＿ｐｒｅｖ２に変更する。代用できない場合、エラーを通知して処理を終了する。
【０１７０】
これらの処理を全てのカメラの処理が終了するまで繰り返す。尚、再選択処理においてエラーを通知した場合、自動的にバックアップ上映に切り替える。
【０１７１】
本実施例で述べたカメラの再選択処理では、（ｂ）の処理を適用した結果、連続選択回数がＮ回以上になる可能性がある。したがって、この処理の後で連続選択回数を確認し、（ａ）と同様の処理によってこの状態を回避しても良いことは言うまでもない。
【０１７２】
説明した本実施例により、カメラやキャプチャＰＣの一部に障害が発生した場合、それらの機器を用いていないシナリオを上映中に当該機器を再起動して次回上映時に利用することが可能になる。その結果、長期間に渡って安定して仮想視点映像を生成することが可能なシステムを構築することが可能になる。
【実施例２】
【０１７３】
実施例１では、シナリオ上映中に障害が発生した機器を再起動する例を説明した。ここで、機器の障害が映像の上映に与える影響が少ない場合などは特定の再起動条件を満たす場合にのみ再起動を指示することにしても良い。図１７は再起動条件に応じて電源コントローラ３０６における処理を切り替える例を示すフローチャート図である。ステップＳ１７０１、Ｓ１７０２
Ｓ１７０３、Ｓ１７０５、Ｓ１７０６は、図１２のステップＳ１２０１〜Ｓ１２０５と同様である。本実施例では、ステップＳ１７０４において所望の条件で機器の再起動を指示するか否かを判定する。再起動条件は例えば、有効カメラ台数が９０％以下の場合や、キャプチャエラーが１０％以上の場合など任意に設定可能である。また、障害の度合いによっては再起動のみでは障害が解消されないことも考えられる。そこで、ステップＳ１７０４では障害要因の解消を確認したか否かを再起動条件として設定してもよい。尚、ステップＳ１７０５の判定処理以外は図１２で説明したフローチャートと同様の処理のため説明は省略する。
【０１７４】
＜その他の実施例＞
実施例１及び実施例２では、規模の大きな映像再生システムの例を説明したが、多眼カメラのようなデバイスにも適用可能である。図１８は多眼カメラの構成を示す模式図である。図１８において、レンズ１８０１を通って撮像センサ１８０２で受光した光はＡ／Ｄ変換部１８０８を介してデジタル信号に変換される。変換されたデータはバス１８０７を通ってメモリ１８０４に記録される。記録されたデータはプロセッサ１８０３で処理されプレビューモニタ１８０５に表示される。このような、多眼カメラの構成において、センサ電源コントローラ１８０６を備えることで、カメラ全体を初期化する必要がなくなる。
【０１７５】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１７６】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【図１】
2015212876.tif 000043
【図２】
2015212876.tif 000044
【図３】
2015212876.tif 000045
【図４】
2015212876.tif 000046
【図５】
2015212876.tif 000047
【図６】
2015212876.tif 000048
【図７】
2015212876.tif 000049
【図８】
2015212876.tif 000050
【図９】
2015212876.tif 000051
【図１０】
2015212876.tif 000052
【図１１】
2015212876.tif 000053
【図１２】
2015212876.tif 000054
【図１３】
2015212876.tif 000055
【図１４】
2015212876.tif 000056
【図１５】
2015212876.tif 000057
【図１６】
2015212876.tif 000058
【図１７】
2015212876.tif 000059
【図１８】
2015212876.tif 000060