(57)【要約】【課題】  撮影場所及び撮影時刻の少なくとも何れかが異なる複数の撮影対象の比較が容易な仮想視点画像を提供する。【解決手段】  画像生成部１２０は、複数の方向からの第１の撮影に基づくデータと、第１の撮影とは撮影場所及び撮影時刻の少なくとも何れかが異なる複数の方向からの第２の撮影に基づくデータとを、記憶部１１８から取得する。また、画像生成部１２０は、仮想視点の位置及び方向を示す視点情報を指示部１１９から取得する。そして画像生成部１２０は、第１の撮影において撮影されたオブジェクトを表す画像と第２の撮影において撮影されたオブジェクトを表す画像とを含む仮想視点画像を、記憶部１１８から取得したデータに基づいて生成する。ここで生成される仮想視点画像は、指示部１１９から取得した視点情報に応じた仮想視点画像となる。【選択図】  図６
2020086983.tif 000002
【特許請求の範囲】
【請求項１】
複数の方向からの第１の撮影に基づくデータを取得する第１データ取得手段と、
前記第１の撮影とは撮影場所及び撮影時刻の少なくとも何れかが異なる複数の方向からの第２の撮影に基づくデータを取得する第２データ取得手段と、
仮想視点の位置及び方向を示す視点情報を取得する視点取得手段と、
前記視点取得手段により取得される視点情報に応じた仮想視点画像であって、前記第１の撮影において撮影されたオブジェクトを表す画像と前記第２の撮影において撮影されたオブジェクトを表す画像とを含む仮想視点画像を、前記第１データ取得手段により取得されるデータと前記第２データ取得手段により取得されるデータとに基づいて生成する生成手段と、を有することを特徴とする画像処理装置。
【請求項２】
前記第１データ取得手段により取得されるデータは、前記第１の撮影において撮影されたオブジェクトの３次元形状データと、前記第１の撮影における撮影画像から抽出されたオブジェクトの画像との、少なくとも何れかを含み、
前記第２データ取得手段により取得されるデータは、前記第２の撮影において撮影されたオブジェクトの３次元形状データと、前記第２の撮影における撮影画像から抽出されたオブジェクトの画像との、少なくとも何れかを含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１データ取得手段はさらに、前記第１の撮影の撮影時刻に関する情報と第１イベントの発生時刻に関する情報とを取得し、
前記第２データ取得手段はさらに、前記第２の撮影の撮影時刻に関する情報と第２イベントの発生時刻に関する情報とを取得し、
前記生成手段は、前記第１データ取得手段により取得された情報と前記第２データ取得手段により取得された情報とに基づいて前記仮想視点画像を生成することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記生成手段は、前記第１データ取得手段により取得されたデータであって前記第１イベントの発生時刻から特定時間後の撮影時刻に対応するデータと、前記第２データ取得手段により取得されたデータであって前記第２イベントの発生時刻から前記特定時間後の撮影時刻に対応するデータとを用いて、前記仮想視点画像を生成することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記生成手段は、前記第１データ取得手段により取得されたデータであって前記第１イベントの発生時刻を基準とする特定の長さの期間における撮影に基づくデータと、前記第２データ取得手段により取得されたデータであって前記第２イベントの発生時刻を基準とする前記特定の長さの期間における撮影に基づくデータとを用いて、複数のフレームの前記仮想視点画像を生成することを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記第１イベントの発生時刻と前記第２イベントの発生時刻は、複数の競技それぞれの開始時刻であることを特徴とする請求項３乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記第１データ取得手段はさらに、前記第１の撮影の撮影場所における第１オブジェクトの位置に関する情報を取得し、
前記第２データ取得手段はさらに、前記第２の撮影の撮影場所における第２オブジェクトの位置に関する情報を取得し、
前記生成手段は、前記第１データ取得手段により取得された情報と前記第２データ取得手段により取得された情報とに基づいて前記仮想視点画像を生成することを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記第１データ取得手段はさらに、前記第１の撮影の撮影場所における基準方向および基準位置の少なくとも何れかに関する情報を取得し、
前記第２データ取得手段はさらに、前記第２の撮影の撮影場所における基準方向および基準位置の少なくとも何れかに関する情報を取得することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記生成手段は、前記第１の撮影の撮影場所における基準位置と前記第１オブジェクトの位置との関係に応じて前記仮想視点画像における前記第１オブジェクトを表す画像の位置を決定し、且つ、前記第２の撮影の撮影場所における基準位置と前記第２オブジェクトの位置との関係に応じて前記仮想視点画像における前記第２オブジェクトを表す画像の位置を決定することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記生成手段は、前記視点取得手段により取得された視点情報に応じて生成された前記第１オブジェクトを表す画像と、前記第２の撮影の撮影場所における基準位置及び基準方向に基づいて前記視点情報を変換することで得られる変換済み視点情報に応じて生成された前記第２オブジェクトを表す画像とを用いて、前記仮想視点画像を生成することを特徴とする請求項８に記載の画像処理装置。
【請求項１１】
前記生成手段は、前記第１の撮影において撮影された第１オブジェクトの３次元モデルと前記第２の撮影において撮影された第２オブジェクトの３次元モデルとを同一の仮想空間に配置してレンダリングを行うことで、前記仮想視点画像を生成することを特徴とする請求項１乃至１０の何れか１項に記載の画像処理装置。
【請求項１２】
前記生成手段は、前記第１の撮影における前記第１オブジェクトの位置に対応する前記仮想空間内の位置に前記第１オブジェクトの３次元モデルを配置し、前記第２の撮影における前記第２オブジェクトの位置に対応する前記仮想空間内の位置から所定量離れた位置に前記第２オブジェクトの３次元モデルを配置することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記生成手段は、前記第１オブジェクトの３次元モデルと前記第２オブジェクトの３次元モデルとを前記仮想空間において重ならないように配置することを特徴とする請求項１１又は１２に記載の画像処理装置。
【請求項１４】
前記生成手段により生成される仮想視点画像は、前記第１の撮影において撮影されたオブジェクトを表す画像と、前記第２の撮影において撮影されたオブジェクトを表す画像と、前記第１の撮影および前記第２の撮影の少なくとも何れかにおいて撮影された背景を表す画像とを含むことを特徴とする請求項１乃至１３の何れか１項に記載の画像処理装置。
【請求項１５】
前記生成手段により生成される仮想視点画像は、前記第１の撮影と前記第２の撮影とのそれぞれにおける同一人物の画像を含むことを特徴とする請求項１乃至１４の何れか１項に記載の画像処理装置。
【請求項１６】
前記視点取得手段により取得される視点情報は、ユーザによる操作に応じて決定された仮想視点の位置及び方向を示すことを特徴とする請求項１乃至１５の何れか１項に記載の画像処理装置。
【請求項１７】
前記第１データ取得手段により取得されるデータと前記第２データ取得手段により取得されるデータとは、それぞれ異なるカメラ群による撮影に基づくデータであることを特徴とする請求項１乃至１６の何れか１項に記載の画像処理装置。
【請求項１８】
前記第１データ取得手段により取得されるデータと前記第２データ取得手段により取得されるデータとは、同一のカメラ群による撮影に基づくデータであることを特徴とする請求項１乃至１６の何れか１項に記載の画像処理装置。
【請求項１９】
複数の方向からの第１の撮影に基づくデータを取得する第１データ取得工程と
前記第１の撮影とは撮影場所及び撮影時刻の少なくとも何れかが異なる複数の方向からの第２の撮影に基づくデータを取得する第２データ取得工程と、
仮想視点の位置及び方向を示す視点情報を取得する視点取得工程と、
前記視点取得工程により取得される視点情報に応じた仮想視点画像であって、前記第１の撮影において撮影されたオブジェクトを表す画像と前記第２の撮影において撮影されたオブジェクトを表す画像とを含む仮想視点画像を、前記第１データ取得工程において取得されるデータと前記第２データ取得工程において取得されるデータとに基づいて生成する生成工程と、を有することを特徴とする画像処理方法。
【請求項２０】
前記第１データ取得工程において取得されるデータは、前記第１の撮影において撮影されたオブジェクトの３次元形状データと、前記第１の撮影における撮影画像から抽出されたオブジェクトの画像との、少なくとも何れかを含み、
前記第２データ取得工程において取得されるデータは、前記第２の撮影において撮影されたオブジェクトの３次元形状データと、前記第２の撮影における撮影画像から抽出されたオブジェクトの画像との、少なくとも何れかを含むことを特徴とする請求項１９に記載の画像処理方法。
【請求項２１】
前記生成工程は、前記第１の撮影において撮影された第１オブジェクトの３次元モデルと前記第２の撮影において撮影された第２オブジェクトの３次元モデルとを同一の仮想空間に配置してレンダリングを行うことで、前記仮想視点画像を生成することを特徴とする請求項１９又は２０に記載の画像処理方法。
【請求項２２】
コンピュータを、請求項１乃至１８の何れか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の撮影装置により取得される複数の画像に基づいて生成される仮想視点画像に関するものである。
【背景技術】
【０００２】
複数の撮影装置（カメラ）を異なる位置に設置して多視点で同期撮影し、当該撮影により得られた複数の画像を用いて、視点を任意に変更可能な仮想視点画像を生成する技術がある。例えば、サッカーやバスケットボールなどのスポーツ競技を撮影した複数の画像に基づいて、ユーザにより設定された視点に応じた仮想視点画像を生成することにより、ユーザは様々な角度から競技を観戦することができる。このような仮想視点画像によれば、通常の撮影画像を表示する場合と比較して、視聴者に多様な視聴体験を提供することができる。
【０００３】
特許文献１には、複数の推奨視点の情報をメタデータとして仮想視点画像に付加しておくことで、推奨される視点を容易に切り替えながら仮想視点画像を再生できるようにすることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１８７７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の仮想視点画像からは、撮影場所及び撮影時刻の少なくとも何れかが異なる複数の撮影対象を比較することは容易でなかった。例えば、陸上競技の１００ｍ走を撮影して仮想視点画像を生成する場合に、ユーザが特定の選手の予選と決勝の走りを比較したい場合が考えられる。この場合に、予選と決勝それぞれの仮想視点画像が別々に表示され、それぞれについて仮想視点を設定することになると、表示画像からの比較がしづらい上に仮想視点の操作が複雑になり、ユーザにとって不便である。
【０００６】
本発明は上記の課題に鑑みてなされたものであり、撮影場所及び撮影時刻の少なくとも何れかが異なる複数の撮影対象の比較が容易な仮想視点画像を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明に係る画像処理装置は、例えば以下の構成を有する。すなわち、複数の方向からの第１の撮影に基づくデータを取得する第１データ取得手段と、前記第１の撮影とは撮影場所及び撮影時刻の少なくとも何れかが異なる複数の方向からの第２の撮影に基づくデータを取得する第２データ取得手段と、仮想視点の位置及び方向を示す視点情報を取得する視点取得手段と、前記視点取得手段により取得される視点情報に応じた仮想視点画像であって、前記第１の撮影において撮影されたオブジェクトを表す画像と前記第２の撮影において撮影されたオブジェクトを表す画像とを含む仮想視点画像を、前記第１データ取得手段により取得されるデータと前記第２データ取得手段により取得されるデータとに基づいて生成する生成手段と、を有する。
【発明の効果】
【０００８】
本発明によれば、撮影場所及び撮影時刻の少なくとも何れかが異なる複数の撮影対象の比較が容易な仮想視点画像を提供できる。
【図面の簡単な説明】
【０００９】
【図１】画像処理システムの構成例を示す図である。
【図２】カメラシステムの配置例を示す図である。
【図３】画像生成部のハードウェア構成例を示す図である。
【図４】画像処理システムの動作の一例を示すシーケンス図である。
【図５】画像処理システムにおいて生成される画像の例を示す図である。
【図６】画像生成部の動作の一例を示すフローチャートである。
【図７】撮影対象のオブジェクトの動きについて説明するための図である。
【図８】仮想視点とオブジェクトとの位置関係の一例を示す図である。
【図９】生成される仮想視点画像の一例を示す図である。
【図１０】画像処理システムの構成例を示す図である。
【図１１】複数の異なる撮影場所の例を示す図である。
【図１２】画像処理システムにおいて処理されるデータ形式の例を示す図である。
【発明を実施するための形態】
【００１０】
［画像処理システムの構成］
図１は、画像処理システム１０の構成例を示す図である。画像処理システム１０は、複数のカメラによる撮影に基づく複数の画像と、指定された仮想視点とに基づいて、指定された仮想視点からの見えを表す仮想視点画像を生成するシステムである。本実施形態における仮想視点画像は、自由視点画像とも呼ばれるものであるが、ユーザが自由に（任意に）指定した視点に対応する画像に限定されず、例えば複数の候補からユーザが選択した視点に対応する画像なども仮想視点画像に含まれる。また、本実施形態では仮想視点の指定がユーザ操作により行われる場合を中心に説明するが、仮想視点の指定が画像解析の結果等に基づいて画像処理システム１０により自動で行われてもよい。また、本実施形態では仮想視点画像が動画である場合を中心に説明するが、画像処理システム１０により処理される仮想視点画像は静止画であってもよい。
【００１１】
本実施形態において画像処理システム１０により生成される仮想視点画像は、仮想視点から現実の空間を見た様子を忠実に表すものに限らない。画像処理システム１０は、撮影時刻と撮影場所との少なくとも何れかが異なる複数の撮影状況において撮影された複数のオブジェクトを含む仮想視点画像を生成する。以下ではそのような画像処理システム１０について説明する。
【００１２】
画像処理システム１０は、カメラシステム１１０ａからカメラシステム１１０ｊまでの１０セットのカメラシステムを有する。そして、各カメラシステムが内部配線で接続されたカメラとカメラアダプタとを１台ずつ有する。ただし、画像処理システム１０に含まれるカメラシステムの数は図１に示す例に限定されない。以下では、各カメラシステムを区別しない場合は単にカメラシステム１１０と表記する。同様に、各カメラ及び各カメラアダプタを区別しない場合はカメラ１１１及びカメラアダプタ１１２のように表記し、区別する場合はカメラ１１１ａ及びカメラアダプタ１１２ａのように表記する。カメラシステム１１０におけるカメラアダプタ１１２は、カメラ１１１により取得された撮影画像に対して画像処理や圧縮処理を行い、処理済みの画像データを通信路１１４へ出力する。通信路１１４は、ネットワークケーブル等を介して、各カメラシステム１１０から出力されたデータを通信制御部１１５へ伝送する。
【００１３】
複数のカメラ１１１は、所定の撮影領域を取り囲むようにそれぞれ異なる位置に設置され、同期して撮影領域を複数の方向から撮影する。撮影領域は、例えば陸上競技やサッカーが行われる競技場、もしくはコンサートや演劇が行われる舞台などである。図２（ａ）は、陸上競技場に複数のカメラ１１１を設置した例を示す図である。トラック２０１の周囲に設置された複数のカメラ１１１は、何れも注視点２０２に向けられており、撮影領域２０３を含む範囲を撮影する。なお、複数のカメラ１１１は撮影領域の全周にわたって設置されていなくてもよく、設置場所の制限等によっては撮影領域の一部の方向にのみ設置されていてもよい。また、画像処理システム１０には、望遠カメラと広角カメラなど機能が異なるカメラ１１１が含まれていてもよい。また、複数のカメラ１１１は何れも地上から同じ高さに設置されるものとするが、これに限らず、それぞれ異なる高さに設置されてもよい。
【００１４】
また、画像処理システム１０に含まれる複数のカメラ１１１すべてが単一の注視点に向けられていなくてもよく、例えばある注視点に向けられるカメラ１１１のグループと別の注視点に向けられるカメラ１１１のグループが含まれていてもよい。例えば、図２（ｂ）に示す注視点２０２、注視点１２０２、注視点２２０２、及び注視点３２０２のそれぞれに、１０台ずつのカメラ１１１が向けられていてもよい。このようにすることで、撮影領域２０３、撮影領域１２０３、撮影領域２２０３、及び撮影領域３２０３によりカバーされる１００ｍ走のレーン全体を対象とした仮想視点画像を生成することが可能となる。なお、カメラ１１１の方向は固定されていなくてもよく、例えば、複数のカメラ１１１が向けられる注視点２０２の位置が選手の走りに合わせて変更されてもよい。また、広い画角を有する複数のカメラ１１１を１００ｍレーンの中心付近の注視点に向けることで、何れのカメラ１１１も１００ｍレーン全体を撮影できるようにしてもよい。
【００１５】
画像処理システム１０は、カメラシステム１１０と通信路１１４に加えて、通信制御部１１５、データ処理部１１６、記憶部１１８、指示部１１９、画像生成部１２０、及び表示部１２１を有する。本実施形態ではこれらの構成要素がそれぞれ別の装置として構成されるものとするが、これに限定されない。例えば、単一の装置が指示部１１９と表示部１２１とを有していてもよいし、さらに画像生成部１２０を有していてもよい。また、図１では一例として、単一の表示部１２１が画像生成部１２０に接続さえるものとしているが、これに限らず、複数の表示部１２１が画像生成装置に接続されていてもよい。同様に、複数の画像生成部１２０が記憶部１１８に接続されていてもよい。
【００１６】
通信制御部１１５は、画像処理システム１０に含まれる装置間の通信の制御を行う。また、通信制御部１１５は時刻同期信号を生成して各カメラシステム１１０へ送信することで、複数のカメラシステム１１０の時刻同期を行うタイムサーバ機能も有する。また、通信制御部１１５は、各カメラシステム１１０に対して、撮影条件の設定指示や、撮影の開始及び終了の指示を行ってもよい。
【００１７】
データ処理部１１６は、カメラシステム１１０から出力されたデータを処理し、処理結果を記憶部１１８に記憶する。例えばデータ処理部１１６は、カメラシステム１１０から出力された画像データを、そのカメラシステム１１０に含まれるカメラ１１１の撮影条件を示す撮影情報と関連付けて、記憶部１１８に記憶する。撮影情報には、例えばカメラ１１１の設置位置や撮影方向、ズーム値などを示す情報が含まれる。カメラ１１１の設置位置や撮影方向は、図２（ａ）に示す座標系２０５における座標値を用いて表される。ただしこれに限らず、例えば緯度や経度で表されるカメラ１１１の位置と競技場の中心２００の位置の情報が、カメラシステム１１０から出力されるデータと共に記憶されてもよい。カメラ１１１の撮影情報は、各カメラシステム１１０からデータ処理部１１６へ入力されるものとするが、これに限らず、その他の装置から入力されてもよいし、ユーザがデータ処理部１１６を操作することにより手動で入力されてもよい。
【００１８】
記憶部１１８は、複数のカメラ１１１による複数方向からの同期撮影に基づく複数の画像（複数視点画像）など、データ処理部１１６から出力されるデータを、ハードディスクドライブやＳＳＤ、ＳＤカードなどの記録媒体に記憶する。本実施形態において記憶部１１８に記憶される撮影に基づくデータには、カメラ１１１による撮影画像に対してカメラアダプタ１１２が前景背景分離を行うことで得られた前景画像が含まれる。カメラアダプタ１１２による前景背景分離は、撮影画像に含まれる人物などの所定のオブジェクト（前景オブジェクト）に対応する領域を抽出した前景画像や、撮影画像から前景画像を除いた背景画像を取得する処理である。
【００１９】
なお、記憶部１１８に記憶される撮影に基づくデータには、前景画像に限らず背景画像が含まれてもよいし、撮影画像に含まれる前景オブジェクトの３次元形状を表すデータや、競技場などの背景オブジェクトの３次元形状を表すデータが含まれてもよい。以降では、前景オブジェクトの３次元形状データに応じた３次元モデルを前景モデルと表記し、背景オブジェクトの３次元形状データに応じた３次元モデルを背景モデルと表記する。また、カメラ１１１により撮影された撮影画像そのものが記憶部１１８に記憶されてもよい。
【００２０】
指示部１１９は、ジョイスティックやボタン、タッチパネルなどの操作部を有し、ユーザから仮想視点画像の生成に関する操作を受け付け、ユーザ操作に応じた指示情報を画像生成部１２０へ出力する。ユーザによる仮想視点画像の生成に関する操作は、例えば仮想視点画像の生成開始を指示する操作や、仮想視点の位置及び方向を指定する操作や、仮想視点画像に表示させるべきオブジェクトを選択する操作などである。表示させるべきオブジェクトの選択の詳細については後述する。なお、ユーザは視聴したい仮想視点画像の全期間に対して仮想視点を厳密に指定しなくてもよい。例えば、仮想視点の位置と方向の少なくとも何れかが自動で決定されてもよいし、自動で設定された複数の仮想視点の中から採用すべき仮想視点をユーザが選択してもよい。
【００２１】
指示部１１９から画像生成部１２０へ出力される指示情報には、設定された仮想視点の位置及び方向を示す視点情報が含まれる。視点情報には、仮想視点画像の生成対象期間の各時点における仮想視点の位置及び方向の情報が含まれる。さらに視点情報には、仮想視点に対応する仮想カメラの画角や焦点距離、焦点位置などの情報が含まれていてもよい。また、指示部１１９から出力される指示情報には、視点情報に加えて、仮想視点画像に表示させるべきオブジェクトの識別情報が含まれる。表示されるべきオブジェクトの識別情報は、例えば、オブジェクトに対応する選手の名前やＩＤ、及びレースの時刻などにより表される。
【００２２】
画像生成部１２０は、記憶部１１８から取得した撮影に基づくデータと、指示部１１９から取得した視点情報とに基づいて、その視点情報が示す仮想視点に応じた仮想視点画像を生成する。そして画像生成部１２０は、生成した仮想視点画像を表示部１２１へ出力する。なお、仮想視点画像の出力先は表示部１２１に限らず、その他の記憶装置などへ出力されてもよい。
【００２３】
仮想視点画像の生成方法としては、例えば以下の方法がある。まず画像生成部１２０は、記憶部１１８から取得した複数の前景画像に基づいて、複数のカメラ１１１により撮影された前景オブジェクトの３次元モデル（前景モデル）を生成する。そして画像生成部１２０は、生成した前景モデルに対し、指示部１１９から取得した視点情報に基づいて前景画像をマッピングし、レンダリングを行うことにより、仮想視点から見た前景オブジェクトの画像を生成する。また画像生成部１２０は、記憶部１１８から取得した背景モデルに対して視点情報に基づいて背景画像をマッピングし、レンダリングを行う。そして画像生成部１２０は、前景についてのレンダリング結果と背景についてのレンダリング結果を合成することで、仮想視点画像を生成する。ただし、仮想視点画像の生成方法はこれに限定されず、３次元モデルを用いずに撮影に基づく画像の射影変換により仮想視点画像を生成する方法など、種々の方法を用いることができる。
【００２４】
表示部１２１は、例えば液晶ディスプレイ等で構成され、画像生成部１２０により生成された仮想視点画像を表示する。また表示部１２１は、ユーザが指示部１１９を操作するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）などを表示してもよい。
【００２５】
［画像生成部の構成］
次に、画像生成部１２０のハードウェア構成について、図３を用いて説明する。なお、通信制御部１１５やデータ処理部１１６など、画像処理システム１０に含まれる他の装置も、画像生成部１２０と同様のハードウェア構成であってよい。画像生成部１２０は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、補助記憶装置１０４、通信Ｉ／Ｆ１０５、及びバス１０６を有する。
【００２６】
ＣＰＵ１０１は、ＲＯＭ１０２やＲＡＭ１０３に格納されているコンピュータプログラムやデータを用いて画像生成部１２０の全体を制御する。なお、画像生成部１２０がＣＰＵ１０１とは異なる１又は複数の専用のハードウェアを有し、ＣＰＵ１０１による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ＡＳＩＣ（特定用途向け集積回路）、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、およびＤＳＰ（デジタルシグナルプロセッサ）などがある。ＲＯＭ１０２は、変更を必要としないプログラムやパラメータを格納する。ＲＡＭ１０３は、補助記憶装置１０４から供給されるプログラムやデータ、及び通信Ｉ／Ｆ１０５を介して外部から供給されるデータなどを一時記憶する。補助記憶装置１０４は、例えばハードディスクドライブ等で構成され、画像データや視点情報などの種々のデータを記憶する。
【００２７】
通信Ｉ／Ｆ１０５は、指示部１１９や表示部１２１などの外部の装置との通信に用いられる。例えば、表示部１２１が外部の装置と有線で接続される場合には、通信用のケーブルが通信Ｉ／Ｆ１０５に接続される。また、画像生成部１２０が外部の装置と無線通信する機能を有する場合、通信Ｉ／Ｆ１０５はアンテナを備える。バス１０６は、画像生成部１２０の各部をつないで情報を伝達する。
【００２８】
［画像処理システムの動作シーケンス］
画像処理システム１０の動作シーケンスの一例について、図４を用いて説明する。ここでは、陸上競技の１００ｍ走を撮影対象として仮想視点画像が生成される場合を例に挙げて説明する。図４に示すシーケンスは、複数のカメラシステム１１０が陸上競技場に設置され、画像処理システム１０に含まれる各装置の初期設定が完了したタイミングで開始される。ただし、図４に示すシーケンスの開始タイミングはこれに限定されない。
【００２９】
Ｓ５０１において、複数のカメラシステム１１０に含まれる複数のカメラ１１１は、レース前で陸上トラックに選手がいない状態（図５（ａ）に示す状態）において、１００ｍレーンを複数の方向から撮影することで、基準画像を取得する。Ｓ５０２において、複数のカメラシステムに含まれる複数のカメラ１１１は、レース中で選手が走っている状態の１００ｍレーンを複数の方向から撮影する。ここで、複数のカメラ１１１は、例えば１００ｍ走の予選の画像（図５（ｂ）に示す画像）と１００ｍ走の決勝の画像（図５（ｄ）に示す画像）など、異なるタイミングで行われる複数の競技の撮影画像を取得する。カメラ１１１による撮影で取得された画像は、カメラアダプタ１１２により保持される。なお、各撮影において使用されるカメラ１１１の数は異なっていてもよい。例えば、決勝のレースは１０台のカメラ１１１のすべてを用いて撮影され、予選のレースは５台のカメラ１１１を用いて撮影されてもよい。
【００３０】
Ｓ５０３において、各カメラシステム１１０に含まれるカメラアダプタ１１２は、カメラ１１１により取得された複数の撮影画像それぞれに対して前景背景分離を行う。具体的には、カメラアダプタ１１２は、Ｓ５０２において取得された撮影画像とＳ５０１において取得された基準画像との差分に基づいて、Ｓ５０２において取得された撮影画像に含まれる選手の領域の画像である前景画像を抽出する。例えば、図５（ｂ）に示す予選の撮影画像からは、図５（ｃ）に示す選手Ａ、選手Ｅ、及び選手Ｄの前景画像が抽出され、図５（ｄ）に示す決勝の画像からは、図５（ｅ）に示す選手Ａ、選手Ｂ、及び選手Ｃの前景画像が抽出される。
【００３１】
Ｓ５０４において、カメラシステム１１０はＳ５０３で取得された前景画像を出力し、出力された前景画像は通信路１１４や記憶部１１８を介して画像生成部１２０へ伝送される。なお、Ｓ５０４においてカメラシステム１１０から画像生成部１２０へ伝送されるデータには、Ｓ５０１において取得された１００ｍレーンの画像や、Ｓ５０２における前景背景分離において抽出された選手以外の領域の画像である背景画像が含まれてもよい。さらに、カメラ１１１による撮影に関する撮影情報も併せて伝送されてもよい。また、本実施形態ではこれらのデータが記憶部１１８に記憶されてから画像生成部１２０により取得されるものとするが、これらのデータが記憶部１１８を介さずに直接画像生成部１２０へ入力されてもよい。
【００３２】
なお、図４では複数のレースの撮影に基づくデータがＳ５０４においてまとめて伝送される場合の例を示している。すなわち、Ｓ５０４において画像生成部１２０は、ある撮影状況における複数の方向からの撮影に基づくデータと、撮影時刻が異なる別の撮影状況における複数の方向からの撮影に基づくデータとを、まとめてデータ取得する。ただしこれに限らず、各レースが終了するごとにそのレースに関するデータが伝送されてもよいし、レース中に生成されたデータが逐次伝送されてもよい。また、Ｓ５０４の処理は下記のＳ５０５の処理の後に行われてもよいし、Ｓ５０５の処理と並行して行われてもよい。
【００３３】
Ｓ５０５において、指示部１１９は、ユーザによる操作に応じた指示情報とともに、仮想視点画像の生成指示を画像生成部１２０へ入力する。指示情報には、仮想視点の位置及び方向を示す視点情報と、仮想視点画像に表示させるべきオブジェクトを識別するための識別情報が含まれる。例えばユーザは、指示部１１９を用いて、予選のレースにおける選手Ａと決勝のレースにおける同じ選手Ａなど、比較したい複数の撮影対象のオブジェクトを選択する。なお、選択されるオブジェクトは同じ選手でなくてもよく、例えば予選の選手Ａと決勝の選手Ｂとが選択されてもよい。また、１００ｍ走では基本的に各レーンを１人の選手が走るため、ユーザは選手を選択する代わりにレース（予選か決勝か）及びレーンを選択してもよい。この場合、画像生成部１２０へ入力される識別情報は、レースの番号又は時刻とレーンの番号により表されてもよい。
【００３４】
Ｓ５０６において、画像生成部１２０は、指示部１１９から入力された識別情報により識別されるオブジェクトの３次元モデルを、Ｓ５０４において取得した前景画像などのデータに基づいて生成する。例えば、画像生成部１２０は、予選のスタートから１秒後の撮影時刻に対応する選手Ａのモデルと、決勝のスタートから１秒後の撮影時刻に対応する選手Ａのモデルとを生成する。モデルの生成には、例えばＶｉｓｕａｌ  Ｈｕｌｌ手法（視体積交差法）を用いることができ、この手法で生成されたモデルは３次元空間上の点（ボクセル）の集合により構成される。モデルを構成する各点の３次元位置は、例えば１００ｍレーンの長手方向をｘ軸、短手方向をｙ軸、高さ方向をｚ軸とした図２（ａ）の座標系２０５における座標値で表される。なお、オブジェクトの３次元モデルは点の集合により表されるものに限らず、例えばポリゴンメッシュにより表されてもよい。
【００３５】
Ｓ５０７において、画像生成部１２０は、Ｓ５０６において生成された複数の前景モデルを同一の仮想空間に配置し、Ｓ５０５において取得した視点情報に基づいてレンダリングすることで、仮想視点から見た前景オブジェクトの画像を生成する。そして画像生成部１２０は、Ｓ５０１において取得された画像と視点情報に基づいて生成された１００ｍレーンなどの背景オブジェクトの画像に、前景オブジェクトの画像を合成する。これにより、複数の異なる撮影時刻に撮影された複数のオブジェクトを表す画像と背景を表す画像とを含む仮想視点画像であって、視点情報が示す仮想視点に応じた仮想視点画像が生成される。例えば、ユーザにより選択されたオブジェクトが予選の選手Ａと決勝の選手Ａである場合に、図５（ｆ）に示すような仮想視点画像が生成される。生成された仮想視点画像は表示部１２１へ出力される。
【００３６】
なお、背景オブジェクトの画像はＳ５０１において取得された画像を用いて生成されるものに限らず、予選における撮影画像から抽出された背景画像を用いて生成されてもよいし、決勝における撮影画像から抽出された背景画像を用いて生成されてもよい。また、それらの撮影に基づく画像を用いずにコンピュータグラフィクスによって生成されてもよい。さらに、画像生成部１２０は、背景の画像を合成せずに、複数の前景オブジェクトの画像を合成して仮想視点画像を生成してもよい。仮想視点画像に背景を表す画像を含めるか否か、及びどの撮影状況において撮影された背景を表す画像を含めるかは、指示部１１９を介したユーザ入力に基づいて決定されてもよい。
【００３７】
なお、図５（ｆ）の例では予選の選手Ａと決勝の選手Ａがそれぞれ撮影された際の位置（１レーンと５レーン）に表示されているが、仮想視点画像に表示されるオブジェクトの位置と撮影時におけるそのオブジェクトの位置とが異なっていてもよい。例えば図５（ｇ）に示すように、予選の選手Ａの位置を５レーンから２レーンに変更した仮想視点画像を生成することで、予選の選手Ａと決勝の選手Ａとが近くに表示されるため、仮想視点画像を見るユーザは選手Ａの予選と決勝の走りを比較しやすくなる。
【００３８】
オブジェクトの表示位置の変更は、仮想空間にオブジェクトの前景モデルを配置する際に、前景モデルに応じた３次元形状データが有する座標情報を変更することで実現できる。例えば、モデルを構成する各点の座標が図２（ａ）に示す座標系２０５によって表され、１つのレーンの幅がＹ１であるものとする。この場合に、予選の選手Ａのモデルを構成する各点のｙ座標の値に３Ｙ１を加算する。これにより、予選の撮影時における選手Ａの位置に対応する仮想空間内の位置から３レーン分の所定量離れた位置に、予選の選手Ａのモデルが配置され、仮想視点画像における予選の選手Ａの位置を５レーンから２レーンに変更できる。一方、決勝の選手Ａのモデルは、決勝の撮影時における選手Ａの位置に対応する仮想空間内の位置に配置されるため、仮想視点画像における決勝の選手Ａの位置は１レーンのままである。
【００３９】
また、このようなオブジェクトの表示位置の変更は、例えば予選で３レーンを走った選手と決勝で３レーンを走った選手など、同じ位置で異なる時刻に撮影された複数のオブジェクトを比較したい場合にも有効である。すなわち、一方のオブジェクトの座標情報を変更して、複数のオブジェクトを仮想空間において重ならないように配置することで、仮想視点画像において複数のオブジェクトが重なって見づらくなることを抑制でき、それらのオブジェクトの比較がしやすくなる。
【００４０】
また、上記の例では２つのオブジェクト（予選の選手Ａと決勝の選手Ａ）を含む仮想視点画像が生成されるものとしたが、仮想視点画像に含まれるオブジェクトの数は２つに限らず、３つ以上のオブジェクトを含む仮想視点画像が生成されてもよい。例えば、予選の選手Ａと、予選の選手Ｅと、決勝の選手Ａと、決勝の選手Ｂとが含まれる仮想視点画像が生成されてもよい。また例えば、予選の選手Ａと、準決勝の選手Ａと、決勝の選手Ａとが含まれる仮想視点画像が生成されてもよい。
【００４１】
以上の図５を用いた説明では、画像生成部１２０は、仮想視点から見た前景オブジェクトの画像と背景オブジェクトの画像とをそれぞれ生成した後に、それらの画像を合成して最終的な仮想視点画像を生成するものとした。ただしこれに限らず、画像生成部１２０は、前景モデルと背景モデルを同一の仮想空間に配置し、まとめてレンダリングを行って仮想視点画像を生成してもよい。また、ユーザにより選択された複数のオブジェクトの前景モデルを個別にレンダリングして得られた複数の画像を背景の画像と合成することで、仮想視点画像を生成してもよい。この際には、仮想視点から遠いオブジェクトの画像が背景の画像に重畳された後に、仮想視点から近いオブジェクトの画像が重畳される。
【００４２】
また、図５を用いた上記の説明では、撮影画像から抽出された前景画像及び背景画像を画像生成部１２０がカメラシステム１１０から取得し、画像生成部１２０においてオブジェクトのモデルが生成されるものしたが、これに限定されない。例えば、カメラシステム１１０又はデータ処理部１１６において前景画像、背景画像、前景モデル及び背景モデルが生成され、これらが記憶部１１８に記憶されてもよい。そして、画像生成部１２０はこれらのデータを記憶部１１８から取得してもよい。また例えば、記憶部１１８には撮影画像が記憶され、画像生成部１２０が記憶部１１８から取得した撮影画像に基づいて前景画像、背景画像、前景モデル及び背景モデルを生成してもよい。また、前景モデルと背景モデルとが異なる装置により生成されてもよい。カメラシステム１１０によりモデルの生成まで行っておく場合、画像生成部１２０は指示部１１９から視点情報が入力された際に素早く仮想視点画像を生成することができる。一方、画像生成部１２０によりモデルを生成する場合、表示させるべきオブジェクト以外のモデルを生成する処理を削減することができる。
【００４３】
また、上記の説明では予選の選手Ａのモデルと決勝の選手Ａのモデルをそれぞれ生成し、それらのモデルをレンダリングすることで仮想視点画像を生成するものとした。ただしこれに限らず、例えば３次元モデルを用いず撮影画像の射影変換などにより生成された予選の選手Ａの画像に、３次元モデル又は射影変換を用いて生成された決勝の選手Ａの画像を合成することで、仮想視点画像を生成してもよい。このような方法によれば仮想視点画像の生成に係る処理量を削減できる場合がある。一方、各オブジェクトの３次元モデルを用いる方法によれば、仮想視点の自由度を向上させることができたり、仮想視点画像における複数のオブジェクトの見え方が不自然に異なることを抑制できたりする。
【００４４】
［画像生成部の処理フロー］
図５を用いて説明したシーケンスに対応する画像生成部１２０の処理フローについて、図６を用いて説明する。図６に示す処理は、画像生成部１２０が記憶部１１８や指示部１１９などの他の装置と接続されて、初期設定が完了したタイミングで開始される。ただし、図６に示す処理の開始タイミングはこれに限定されない。図６に示す処理は、画像生成部１２０のＣＰＵ１０１がＲＯＭ１０２に格納されたプログラムをＲＡＭ１０３に展開して実行することで実現される。なお、図６に示す処理の少なくとも一部を、ＣＰＵ１０１とは異なる１又は複数の専用のハードウェアにより実現してもよい。
【００４５】
Ｓ７００において、カメラ１１１による撮影に基づく前景画像が記憶部１１８から取得される。Ｓ７０１において、ユーザ操作に基づく指示情報が指示部１１９から取得される。Ｓ７０２において、Ｓ７００において取得された前景画像のうち、指示情報により識別されるオブジェクトの１つである予選レースの選手Ａに関する前景画像を用いて、前景モデルが生成される。Ｓ７０３において、予選の選手Ａの前景モデルが仮想空間に配置される。ここで、仮想空間における前景モデルの位置は、前景モデルに応じた３次元形状データが有する座標情報が表す位置、すなわちカメラ１１１による撮影時点における予選の選手Ａの位置に対応する位置となる。ただし、３次元形状データの座標情報を変更することで、図５（ｇ）を用いて上述したようなオブジェクトの位置の変更が行われてもよい。Ｓ７０４において、指示情報に含まれる視点情報が示す仮想視点に応じて仮想空間内の予選の選手Ａの前景モデルがレンダリングされる。
【００４６】
Ｓ７０５において、Ｓ７００において取得された前景画像のうち、指示情報により識別されるオブジェクトの１つである決勝レースの選手Ａに関する前景画像を用いて、前景モデルが生成される。Ｓ７０６において、決勝の選手Ａの前景モデルが仮想空間に配置される。仮想空間における前景モデルの位置は、カメラ１１１による撮影時点における決勝の選手Ａの位置に対応する位置となる。ただし、３次元形状データの座標情報を変更することで、図５（ｇ）を用いて上述したようなオブジェクトの位置の変更が行われてもよい。Ｓ７０７において、指示情報に含まれる視点情報が示す仮想視点に応じて仮想空間内の決勝の選手Ａの前景モデルがレンダリングされる。Ｓ７０８において、視点情報が示す仮想視点に応じて１００ｍレーンなどの背景モデルがレンダリングされる。
【００４７】
Ｓ７０９において、予選の選手Ａと決勝の選手Ａのどちらが仮想空間において仮想視点から近いかが判定される。予選の選手Ａの方が仮想視点に近い場合、Ｓ７１０において、背景のレンダリング結果に決勝の選手Ａのレンダリング結果が重畳され、さらにその手前に予選の選手Ａのレンダリング結果が重畳される。一方、決勝の選手Ａの方が仮想視点に近い場合、Ｓ７１１において、背景のレンダリング結果に予選の選手Ａのレンダリング結果が重畳され、さらにその手前に決勝の選手Ａのレンダリング結果が重畳される。Ｓ７１２において、Ｓ７１０又はＳ７１１におけるレンダリング結果の合成により生成された仮想視点画像が、表示部１２１へ出力される。
【００４８】
［異なる時刻に撮影される複数オブジェクトの調整］
上述したように、画像処理システム１０によれば、それぞれ異なる時刻に撮影された複数の撮影対象のオブジェクトが表示される仮想視点画像を生成できる。ここで、どの時刻のオブジェクトを仮想視点画像に表示させるかは指示部１１９を介したユーザ操作により指定されてもよい。しかしながら、例えば予選レースのスタートから１秒後の選手Ａと決勝レースのスタートから１秒後の選手Ａとを比較したい場合に、それぞれの時刻をユーザが判断して指定するのは手間が大きく不便である。さらに、仮想視点画像による動画を生成する場合に、動画のフレームごとに表示されるオブジェクトに対応する時刻を指定することとすると、ユーザの手間が非常に大きくなる。そこで画像処理システム１０は、撮影時刻に関する情報とレースのスタート時刻など所定のイベントの発生時刻に関する情報とを記憶部１１８に記憶する。そして、画像生成部１２０が記憶部１１８から取得したそれらのデータに基づいて仮想視点画像を生成することで、ユーザにとっての利便性を向上する。
【００４９】
具体的には、データ処理部１１６は、カメラ１１１による撮影に基づく前景画像などのデータと共に、その撮影時刻に関する情報を、記憶部１１８に記憶する。撮影時刻に関する情報は、例えばカメラ１１１により撮影される動画のフレーム番号であるが、これに限らず、標準時を示す情報などであってもよい。またデータ処理部１１６は、記憶部に１１８に記憶される各データが何れの競技の撮影に基づくデータであるかを識別可能にする識別情報を、記憶部１１８に記憶する。この識別情報は、競技の名称、競技の開催日時、及び競技の開催場所により表される。ただし競技の識別情報の内容はこれに限らず、例えば各競技に割り当てられた識別番号などであってもよい。
【００５０】
さらにデータ処理部１１６は、各競技における所定のイベントの発生時刻に関する情報を記憶部１１８に記憶する。イベントの発生時刻に関する情報は、例えば標準時とその時刻に対応するカメラ１１１の動画のフレーム番号により表されるが、開始時刻に関する情報の内容はこれに限定されない。所定のイベントの発生時刻は、例えば陸上競技のトラック種目におけるスタートのタイミングなどの、競技の開始時刻である。ただしこれに限らず、所定のイベントの発生時刻は、跳躍種目における踏み切りのタイミングや、投てき種目における投てきのタイミングなどであってもよい。競技の識別情報およびイベントの発生時刻に関する情報は、ユーザによるデータ処理部１１６の操作によって入力される。ただし、これらの情報の少なくとも何れかが他の装置から入力されてもよいし、データ処理部１１６がカメラ１１１による撮影に基づく画像を解析することでこれらの情報を取得してもよい。
【００５１】
上記のような各種の情報が記憶部１１８に記憶されることで、画像生成部１２０は、記憶部１１８から取得するデータがどの競技に関するデータであって所定のイベントから何秒後（又は何秒前）における撮影に基づくデータであるかを判断することができる。そして、仮想視点画像に表示させるべきオブジェクトとして、複数の競技における複数の撮影対象が指定された場合、画像生成部１２０は、それらの競技における所定のイベントの発生時刻を基準として選択された複数の画像を用いて仮想視点画像を生成できる。
【００５２】
例えば、指示部１１９を介して、１００ｍ走の予選レースの選手Ａと決勝レースの選手Ａとが表示させるべきオブジェクトとして選択された場合を考える。この場合に画像生成部１２０は、予選レースのスタート時刻における選手Ａの前景画像と、決勝レースのスタート時刻における選手Ａの前景画像とを記憶部１１８から取得し、それらの画像を用いて動画の１フレーム目の仮想視点画像を生成する。そして画像生成部１２０は、予選レースのスタート時刻から１フレーム後における選手Ａの前景画像と、決勝レースのスタート時刻から１フレーム後における選手Ａの前景画像を用いて、動画の２フレーム目の仮想視点画像を生成する。
【００５３】
画像生成部１２０はこの処理を繰り返し、予選レースのスタート時刻を基準とする所定期間における選手Ａの前景画像と、決勝レースのスタート時刻を基準とする同じ長さの所定期間における選手Ａの前景画像とを用いて、複数フレームの仮想視点画像を生成する。これにより、予選の選手Ａと決勝の選手Ａが走る１００ｍ走の動画を生成することができる。上記の所定期間は、例えばスタートから選手Ａがゴールするまでの期間を含むが、スタート前の期間やゴール後の期間を含んでいてもよい。
【００５４】
なお、予選と決勝とでカメラ１１１による撮影のフレームレートが異なる場合には、フレームレートの差に応じた調整が行われる。例えば、決勝のフレームレートが予選のフレームレートの２倍である場合には、予選のスタート時刻からｎフレーム目の前景画像と、決勝のスタート時刻からｎ／２フレーム目の前景画像とを用いて仮想視点画像が生成される。また、画像生成部１２０は、予選の撮影に基づく前景画像と決勝の撮影に基づく前景画像とをそれぞれのフレーム番号に基づいて対応付ける代わりに、それぞれの撮影時刻に基づいて対応付けてもよい。
【００５５】
図７（ａ）は、予選レースの複数の時点における選手Ａの位置を表している。予選レースのスタート時刻において選手Ａは位置４０１に存在し、スタートから１秒後の選手Ａは位置４０２に存在する。同様に、スタート時刻から２秒後、３秒後、及び４秒後において、選手Ａはそれぞれ位置４０３、位置４０４、及び位置４０５に存在する。図７（ｂ）における位置４０６、位置４０７、位置４０８、位置４０９、及び位置４１０は、それぞれ決勝レースのスタート時刻、スタート時刻から１秒後、２秒後、３秒後、及び４秒後における選手Ａの位置を表している。
【００５６】
このような予選と決勝のレースそれぞれにおける複数の時点の選手Ａの撮影に基づく画像を用いて仮想視点画像を生成することで、図７（ｃ）に模式的に示すように、あたかも予選の選手Ａと決勝の選手Ａとが同時に走っているかのような動画が生成できる。また、図７（ｄ）に示すように、予選の選手Ａの表示位置を座標系２０５のＹ軸方向（１００ｍレーンが並ぶ方向）に移動させることで、予選の選手Ａと決勝の選手Ａとが隣のレーンに並んで走っているかのような動画が生成できる。図８は、ゴール直前における予選の選手Ａの位置６０２と、決勝の選手Ａの位置６０３と、仮想視点６０１とを示しており、図９は、このタイミングに応じたフレームでの仮想視点画像の例を示している。
【００５７】
以上のような方法で仮想視点画像を生成することにより、ユーザは選手Ａの予選の走りと決勝の走りとを１つの静止画又は動画で容易に比較できる。また、仮想視点の位置及び方向はユーザにより指定可能であるため、ユーザは所望の位置及び方向からこれらの走りを比較できる。なお、画像処理システム１０は、ユーザによる仮想視点の方向の指定を受けつけ、仮想視点に応じた視界に選手Ａが含まれるように仮想視点の位置を自動で決定してもよい。また、仮想視点画像により比較される複数のオブジェクトは違う選手であってもよく、その場合でも上記の処理内容は変わらない。
【００５８】
［異なる場所で撮影される複数オブジェクトの調整］
以上の説明では、同一の撮影場所で異なる撮影時刻に撮影された複数の撮影対象を含む仮想視点画像を生成する場合について説明した。以下では、異なる撮影場所で撮影された複数の撮影対象を含む仮想視点画像を生成する場合について説明する。
【００５９】
図１０は、画像処理システム２０の構成例を示す図である。上述した画像処理システム１０の構成に加えて、画像処理システム２０はカメラシステム１１１０ａからカメラシステム１１１０ｊまでの１０セットのカメラシステム１１１０、通信路１１１４、通信制御部１１１５、及びデータ処理部１１１６を有する。カメラシステム１１１０、通信制御部１１１５、及びデータ処理部１１１６は、それぞれカメラシステム１１０、通信制御部１１５、及びデータ処理部１１６と同様の機能を有する。ただし、これらの装置の構成が一致していなくてもよく、例えばカメラシステム１１１０が有するカメラとカメラシステム１１０が有するカメラ１１１とは、画角やフレームレートなどの撮影パラメータが異なっていてもよい。また、画像処理システム２０に含まれるカメラシステム１１１０の数は図１０に示す例に限定されず、カメラシステム１１０の数とカメラシステム１１１０の数が異なっていてもよい。
【００６０】
カメラシステム１１１０とカメラシステム１１０とは、異なる撮影場所（例えば異なる競技場）に設置される。そして記憶部１１８には、カメラシステム１１１０により取得された撮影に基づくデータと、カメラシステム１１０により取得された撮影に基づくデータとが記憶される。これらのデータは、例えば撮影対象の競技の名称や開催場所を示す識別情報と共に記憶部１１８に記憶され、画像生成部１２０により識別可能である。画像生成部１２０は、記憶部１１８に記憶されたこれらのデータを用いて、複数の異なる撮影場所において撮影された複数のオブジェクトを表す画像を含む仮想視点画像であって、視点情報が示す仮想視点に応じた仮想視点画像を生成する。
【００６１】
例えば、カメラシステム１１０が設置された第１競技場において開催された第１レースに、図５（ｂ）に示すように選手Ａ、選手Ｄ、及び選手Ｅが出場しているものとする。そして、カメラシステム１１１０が設置された第２競技場において別の日に開催された第２レースに、図５（ｄ）に示すように選手Ａ、選手Ｂ、及び選手Ｃが出場しているものとする。そして、指示部１１９を介したユーザ操作により、第１レースの選手Ａと第２レースの選手Ａとが仮想視点画像に表示させるべきオブジェクトとして選択された場合、画像生成部１２０は図５（ｆ）又は図５（ｇ）に示すような仮想視点画像を生成する。
【００６２】
なお、仮想視点画像における１００ｍレーンなどの背景オブジェクトの画像は、第１競技場において撮影された画像に基づいて生成されてもよいし、第２競技場において撮影された画像に基づいて生成されてもよい。若しくは、背景オブジェクトの画像は、第１競技場の画像と第２競技場の画像とを合成することで生成されてもよいし、撮影に基づく画像を用いずにコンピュータグラフィクスにより生成されてもよい。さらに、背景オブジェクトを含まない仮想視点画像が生成されてもよい。また、仮想視点画像に表示される複数のオブジェクトは同一人物でなくてもよく、例えば第１レースの選手Ａと第２レースの選手Ｂとが含まれる仮想視点画像が生成されてもよい。また、別の日時に撮影された選手に限らず、異なる場所で同じ時刻に撮影された複数の選手を含む仮想視点画像が生成されてもよい。
【００６３】
画像処理システム２０の動作シーケンスと画像処理システム１０の動作シーケンスとの違いを、図４を用いて説明する。画像処理システム１０においては、Ｓ５０２において複数のカメラシステム１１０が有する同一のカメラ群が複数のレースを撮影し、Ｓ５０４においてその複数のレースの撮影に基づくデータがカメラシステム１１０から画像生成部１２０へ伝送される。一方、画像処理システム２０においては、カメラシステム１１０とカメラシステム１１１０とがそれぞれＳ５０１からＳ５０４までの処理を行う。すなわち、複数のカメラシステム１１０が有するカメラ群と複数のカメラシステム１１１０が有するカメラ群とにより、撮影場所が異なる複数の撮影状況において複数のレースが撮影される。そして、画像生成部１２０は、一方の撮影状況における複数の方向からの撮影に基づくデータをカメラシステム１１０から取得し、他方の撮影状況における複数の方向からの撮影に基づくデータをカメラシステム１１１０から取得する。なお画像処理システム２０においては、Ｓ５０２において各カメラシステムにより撮影されるレースは１つであってもよい。画像処理システム２０のその他の動作については、画像処理システム１０と同様である。
【００６４】
ここで、カメラシステム１１０が設置される第１競技場とカメラシステム１１１０が設置される第２競技場とは形状が異なる場合があり、カメラシステム１１０とカメラシステム１１１０とが同じように設置されるとは限らない。そのため、カメラシステム１１０の撮影に基づいて生成された第１レースの選手Ａの３次元形状データが有する座標情報と、カメラシステム１１１０の撮影に基づいて生成された第２レースの選手Ａの３次元形状データが有する座標情報とは一律には扱えない。例えば、第１競技場の第１レーンのゴールにオブジェクトが位置する場合におけるそのオブジェクトの座標情報は、第２競技場の第１レーンのゴールにオブジェクトが位置する場合におけるそのオブジェクトの座標情報と一致するとはかぎらない。
【００６５】
仮にこれらの座標情報を一律に扱って仮想視点画像を生成した場合、例えば仮想視点画像において選手が１００ｍレーンから外れた場所に表示されたり、１００ｍレーンとは異なる方向に走っているように表示されたりする。また、第１レースの選手Ａと第２レースの選手Ａとが不自然に異なる大きさで表示されることもあり得る。これを解決するために、画像生成部１２０は、指示部１１９を介したユーザ操作に基づいて入力された調整情報を用いて、オブジェクトの位置や向き、サイズの調整を行ってもよい。しかしながら、この方法ではユーザの手間が大きくなる。
【００６６】
そこで画像処理システム２０は、撮影対象のオブジェクトの位置情報と撮影場所における基準位置および基準方向に関する情報とを記憶部１１８に記憶しておく。そして画像生成部１２０が、記憶部１１８から取得したそれらのデータに基づいて仮想視点画像を生成することで、不自然な仮想視点画像が生成されることを抑制する。
【００６７】
具体的には、データ処理部１１６は、カメラシステム１１０による撮影に基づく前景画像などのデータと共に、その前景オブジェクトの位置を示す情報を、記憶部１１８に記憶する。またデータ処理部１１６は、第１競技場における所定の基準位置（例えば図１１（ａ）における競技場の中心２００ａ、スタート位置２０４ａ、及びゴール位置１２０４ａ）を示す情報を、記憶部１１８に記憶する。さらにデータ処理部１１６は、１００ｍレーンに平行な方向などの基準方向を示す情報を、記憶部１１８に記憶する。オブジェクトの位置を示す情報と、基準位置を示す情報と、基準方向を示す情報とは、何れも同じ座標系における座標値によって表される。なお、基準位置及び基準方向は上記のものに限定されない。また、２つの基準位置を示す情報が、それらの基準位置を結ぶ基準方向を示す情報として扱われてもよい。また、１００ｍレーンのレーン幅を示す情報なども同様に記憶部１１８に記憶されてもよい。
【００６８】
同様に、データ処理部１１１６は、カメラシステム１１１０による撮影に基づく前景画像などのデータと共に、その前景オブジェクトの位置を示す情報を、記憶部１１８に記憶する。またデータ処理部１１１６は、第２競技場における所定の基準位置（例えば図１１（ｂ）における競技場の中心２００ｘ、スタート位置２０４ｘ、及びゴール位置１２０４ｘ）を示す情報を、記憶部１１８に記憶する。さらにデータ処理部１１１６は、１００ｍレーンに平行な方向などの基準方向を示す情報を、記憶部１１８に記憶する。基準位置を示す情報及び基準方向を示す情報は、ユーザによるデータ処理部１１６の操作によって入力される。ただし、これらの情報の少なくとも何れかが他の装置から入力されてもよいし、データ処理部１１６がカメラ１１１による撮影に基づく画像を解析することでこれらの情報を取得してもよい。前景オブジェクトの位置を表す情報は、複数のカメラシステム１１１０による撮影画像に基づいて取得されるが、これに限らず、例えば選手などの前景オブジェクトに位置センサを装着することで取得してもよい。
【００６９】
上記のような各種の情報が記憶部１１８に記憶されることで、画像生成部１２０は、記憶部１１８から取得したデータに基づいて生成される前景モデルを仮想空間に適切に配置することができる。具体的には、画像生成部１２０は、各前景モデルに対応するオブジェクトの撮影時の位置及び向きとして、スタート位置やゴール位置などの基準位置に対する相対位置及び基準方向に対する相対的な向きを判断することができる。そして画像生成部１２０は、その相対位置及び相対的な向きに基づいて前景オブジェクトの３次元形状データの座標情報を補正する。すなわち、画像生成部１２０は、第１競技場における基準位置と選手Ａの位置との関係に応じて仮想視点画像における第１レースの選手Ａの位置を決定する。また、第２競技場における基準位置と選手Ａの位置との関係に応じて仮想視点画像における第２レースの選手Ａの位置を決定する。このようにすることで、異なる撮影場所で撮影された複数のオブジェクトのモデルを同一の仮想空間に配置する場合でも、オブジェクトの位置や向きや大きさが乱れることを抑制できる。
【００７０】
例えば、画像生成部１２０は、第１競技場の第１レースにおいてスタートから２秒後にスタートラインから１０ｍ先を走っていた選手Ａのモデルを、仮想空間における基準位置から基準方向に向けて１０ｍ先に対応する位置に配置する。また画像生成部１２０は、第２競技場の第２レースにおいてスタートから２秒後にスタートラインから１２ｍ先を走っていた選手Ａのモデルを、仮想空間における基準位置から基準方向に向けて１２ｍ先に対応する位置に配置する。そして仮想空間に配置されたこれらのモデルをレンダリングすることで、第１レースの選手Ａと第２レースの選手Ａとが同じ方向に並走するような仮想視点画像を生成できる。なお、各モデルを仮想空間のどのレーンに対応する位置に配置するかも、基準位置に基づいて補正された座標情報に応じて決定される。ただしこれに限らず、例えば複数のモデルが隣り合うレーンに配置されるように座標情報がさらに変更されてもよい。
【００７１】
以上のような方法で仮想視点画像を生成することにより、異なる撮影場所で撮影された複数のオブジェクトを含む仮想視点画像を生成する場合でも、ユーザが手動でそれらのオブジェクトの位置調整などを行わなくてもよくなる。その結果、ユーザは第１競技場の第１レースでの選手Ａの走りと第２競技場の第２レースでの選手Ａの走りとを１つの静止画又は動画で容易に比較できる。また、オブジェクトのモデルを構成する各点の座標情報が基準位置からの相対位置により補正されているため、仮想視点画像に含まれる第１レースの選手Ａと第２レースの選手Ａの大きさが不自然に異なることも抑制できる。なお、仮想視点画像により比較される複数のオブジェクトは違う選手であってもよく、その場合でも上記の処理内容は変わらない。
【００７２】
なお、上記ではオブジェクトの３次元形状データが有する座標情報を補正することで複数のオブジェクトの位置調整を行う場合について説明したが、位置調整の方法はこれに限らず、例えば視点情報を変換することでも位置調整を実現できる。具体的には、画像生成部１２０は、指示部１１９から取得した仮想視点の位置及び姿勢を示す視点情報を、記憶部１１８に記憶された撮影場所の基準位置及び基準方向を示す情報に基づいて変換する。
【００７３】
例えば、指示部１１９から画像生成部１２０に入力される視点情報が、図１１（ａ）に示す第１競技場に対応する座標系における位置１２０１ａから位置２２０１ａまで移動する仮想視点を示すものだったとする。この場合に、画像生成部１２０は、視点情報に含まれる仮想視点の位置を示す座標情報を、基準位置であるスタート位置２０４ａからの相対位置を示す情報に変換する。そして画像生成部１２０は、その相対位置を示す情報と、図１１（ｂ）に示す第２競技場におけるスタート位置２０４ｘとに基づいて、第２競技場に対応する座標系における位置１２０１ｘから位置２２０１ｘまで移動する仮想視点を示す視点情報を生成する。仮想視点の向きに関しても同様に、画像生成部１２０は、第１競技場における基準方向と第２競技場における基準方向とに基づいて変換を行う。
【００７４】
そして画像生成部１２０は、第１競技場での撮影に基づくデータから生成された前景モデルを、変換前の視点情報（位置１２０１ａから位置２２０１ａへの仮想視点を示す視点情報）に応じてレンダリングする。また、画像生成部１２０は、第２競技場での撮影に基づくデータから生成された前景モデルを、変換済みの視点情報（位置１２０１ｘから１２０ｘへの仮想視点を示す視点情報）に応じてレンダリングする。そして画像生成部１２０は、それらのレンダリング結果を合成することで、第１競技場で撮影された前景オブジェクトを表す画像と第２競技場で撮影された前景オブジェクトとを表す画像含む仮想視点画像を生成する。
【００７５】
このように、撮影場所における基準位置を示す情報と基準方向を示す情報とに基づいて視点情報を変換することで、オブジェクトの座標情報を補正する上述した方法と同様に、仮想視点画像における複数のオブジェクトの位置調整が実現できる。そして視点情報を変換するこの方法によれば、オブジェクトのモデルを構成する多数の点の座標情報を補正する処理が不要になるため、画像生成部１２０の処理負荷を低減することができる。なお、上記の例では第１競技場に対応する視点情報を第２競技場に対応する視点情報に変換するものとしたが、これに限らず、仮想空間に対応する視点情報を第１競技場に対応する第１の視点情報と第２競技場に対応する第２の視点情報に変換してもよい。
【００７６】
［データフォーマットの例］
以下では、画像処理システム１０及び画像処理システム２０において扱われるデータ、特に記憶部１１８に記憶されるデータのフォーマットの例について説明する。以下の説明において、記憶部１１８に記憶されるデータには、複数のカメラ１１１による撮影に基づくデータとしての前景画像及び前景モデルと、背景画像及び背景モデルと、それらに関する付加情報とが含まれるものとする。すなわち、カメラ１１１により取得された撮影画像に基づいて、カメラアダプタ１１２により前景画像及び背景画像が生成される。そして、複数のカメラアダプタ１１２により生成された複数の前景画像及び背景画像に基づいて、データ処理部１１６により前景モデル及び背景モデルが生成される。そしてデータ処理部１１６が、複数のカメラアダプタ１１２から取得した複数の前景画像及び背景画像と生成された前景モデル及び背景モデルとを、種々の付加情報と共に記憶部１１８に記憶するものとする。
【００７７】
記憶部１１８に記憶される付加情報には、上述した撮影時刻に関する情報や、所定のイベントの発生時刻に関する情報、撮影場所における基準位置及び基準方向に関する情報などのうち少なくとも何れかが含まれる。例えば、競技に固有な情報として、トラックやレーンの位置、スタートやゴールの位置、レーンの幅、競技開始時刻、レースのスタート及びゴールの時刻などを示す情報が記憶される。これらの情報は、データ処理部１１６を操作するユーザにより入力されてもよいし、ＧＰＳや電波時計やその他の自動計測機器から入力されてもよい。なお、記憶部１１８に記憶される付加情報はこれらに限定されず、例えば、撮影場所の名称、撮影場所の位置、撮影対象である大会や公演等の名称、及び撮影対象の競技種目などの情報がであってもよい。
【００７８】
以下では、前景画像や３次元形状データなどの撮影に基づくデータと上記の付加情報とが、特定のフォーマットで同じファイルにまとめて記憶部１１８に記憶されるものとする。具体的には、ＩＳＯ／ＩＥＣ  １４４９６−１２（ＭＰＥＧ−４  Ｐａｒｔ１２）  ＩＳＯ  ｂａｓｅ  ｍｅｄｉａ  ｆｉｌｅ  ｆｏｒｍａｔ（以下、ＩＳＯ  ＢＭＦＦと表記）規格を例にとって説明する。図１２に、本実施形態におけるＩＳＯ  ＢＭＦＦに従ったデータファイルの構成の例を示す。
【００７９】
図１２（ａ）において、ファイル１０００は、以下の４つのボックスで構成される。即ち、ｆｔｙｐ（Ｆｉｌｅ  Ｔｙｐｅ  Ｃｏｍｐａｔｉｂｉｌｉｔｙ  Ｂｏｘ）１００１、ｍｏｏｖ（Ｍｏｖｉｅ  Ｂｏｘ）１００２、ｍｅｔａ（ｍｅｔａｄａｔａ）１００３、及びｍｄａｔ（Ｍｅｄｉａ  Ｄａｔａ  Ｂｏｘ）１００４である。ｆｔｙｐ１００１にはファイルフォーマットの情報、例えばファイルがＩＳＯ  ＢＭＦＦファイルであることや、ボックスのバージョン、画像ファイルを作成したメーカ名称等が記載される。ｍｏｏｖ１００２には、メディアデータを管理するための時間軸、アドレスなどの情報が含まれる。ｍｄａｔ１００４には、背景画像、各時刻での各カメラの前景画像、及び３次元形状データが格納される。付加情報を含むメタ情報が格納されるｍｅｔａ１００３の構成は、例えば、下記のように表される。
aligned(8) class Metabox (handler_type)extends FullBox(‘meta‘, version = 0, 0) {
HandlerBox(handler_type) theHandler;
PrimaryItemBox primary_resource; // optional
DataInformationBox file_locations; // optional
ItemLocationBox item_locations; // optional
ItemProtectionBox protections; // optional
ItemInfoBox item_infos; // optional
IPMPControlBox IPMP_control; // optional
ItemReferenceBox item_refs; // optional
ItemDataBox item_data; // optional
Synthesizing_scene_location_information; // optional
Synthesizing_scene_time_information;     // optional
Synthesizing_scene_virtual_camera_information;  // optional
Synthesizing_scene_object_information;   // optional
}
ここで、Ｓｙｎｔｈｅｓｉｚｉｎｇ＿ｓｃｅｎｅ＿ｌｏｃａｔｉｏｎ＿ｉｎｆｏｒｍａｔｉｏｎは、複数のオブジェクトの画像を合成するために用いられる位置情報を表す。Ｓｙｎｔｈｅｓｉｚｉｎｇ＿ｓｃｅｎｅ＿ｔｉｍｅ＿ｉｎｆｏｒｍａｔｉｏｎは、合成に用いられる時刻情報を表す。合成に用いられる位置情報を表すＳｙｎｔｈｅｓｉｚｉｎｇ＿ｓｃｅｎｅ＿ｌｏｃａｔｉｏｎ＿ｉｎｆｏｒｍａｔｉｏｎボックスは、下記のように表される。
Box Type:    ‘ssli‘
Container:   Meta box (‘meta‘)
Mandatory:   No
Quantity:    Zero or one
そしてそのシンタックスは、下記のように表される。
【００８０】
aligned(8) class ItemLocationBox extends FullBox(‘ssli‘,version,0) {
unsigned int(32) offset_size;
unsigned int(32) length_size;
unsigned int(32) base_offset_size;
if (version == 1)
unsigned int(32) index_size;
else 
unsigned int(32) reserved;
unsigned int(64) capture_date_time_code;
unsigned int(16) num_char_place_name;
for (i=0; i<num_char_place_name;i++)
unsigned char(8) place_name[i];
signed int (32)location_latitude;
signed int (32)location_longitude;
unsigned int(16) num_char_convention_name;
for (i=0; i<num_char_convention_name;i++)
unsigned char(8) convention_name[i];
unsigned int(32) category_code;
if ((category_code > 0x00010000 )&& (category_code < 0x0001FFFF )){
for (i=0; i<3;i++)
signed int(32)location_start_0th lane[i]; 
for (i=0; i<3;i++)
signed int(32)location_end_0th lane[i]; 
unsigned int(8)num_lane;
unsigned int(8)lane_width;
}
else if (category_code == 0x00020000 ){
for (i=0; i<3;i++)
signed int(32)location_start_point[i]; 
for (i=0; i<3;i++)
signed int(32)location_jump_point[i];
}else if {
・・・
}
}
上記のシンタックスにおいて、ｏｆｆｓｅｔ＿ｓｉｚｅ、ｌｅｎｇｔｈ＿ｓｉｚｅ、ｂａｓｅ＿ｏｆｆｓｅｔ＿ｓｉｚｅ、ｉｎｄｅｘ＿ｓｉｚｅ、及びｒｅｓｅｒｖｅｄは、ボックスの大きさ等に関係する。ｃａｐｔｕｒｅ＿ｄａｔｅ＿ｔｉｍｅ＿ｃｏｄｅは、撮影開始時刻等の撮影に関する日時を、例えばＷ３Ｃ−ＤＴＦのフォーマット（西暦年、月、日、時、分、秒、ミリ秒など）及びＵＴＣ（協定世界時）との時差（時、分）で表す。これらは予備のビットを加えた上でビット列として統合される。
【００８１】
ｎｕｍ＿ｃｈａｒ＿ｐｌａｃｅ＿ｎａｍｅは、撮影場所を表す文字列の長さを示す。ｐｌａｃｅ＿ｎａｍｅは撮影場所を名称で表すものであり、例えば、“東京サッカースタジアム”といった文字列である。ただし本情報は文字列に限定されない。また、本情報に言語を示すコードが付加されてもよい。また、撮影場所であるスタジアムに固有な符号が設けられてもよい。例えば、ＪＰＴＫＹＳＴといった文字列のうち、先頭の２文字は国名を表し（ＪＰは日本）、続く３文字は都市名を表し（ＴＫＹは東京）、続く２文字は競技場を表す（ＳＴは東京スタジアム）。
【００８２】
ｌｏｃａｔｉｏｎ＿ｌａｔｉｔｕｄｅは競技場の原点の緯度を表す。例えば３２ビットのうち先頭のビットが北緯又は南緯を表し、残りの３１ビットが９０度を等分割した角度を表す。ｌｏｃａｔｉｏｎ＿ｌｏｎｇｉｔｕｄｅは競技場の原点の経度を表す。例えば３２ビットのうち先頭のビットが東経又は西経を表し、残りの３１ビットが１８０度を等分割した角度を表す。
【００８３】
ｎｕｍ＿ｃｈａｒ＿ｃｏｎｖｅｎｔｉｏｎ＿ｎａｍｅは、撮影の概要、すなわち大会や公演の名称等を表す文字列の長さを示す。ｃｏｎｖｅｎｔｉｏｎ＿ｎａｍｅは撮影イベントの名称を表すものであり、例えば、“第ｘｘｘ回オリンピック”といった文字列である。ただし本情報は文字列に限定されない。また、本情報に言語を示すコードが付加されてもよい。
【００８４】
ｃａｔｅｇｏｒｙ＿ｃｏｄｅは競技の種目を表す。例えば上位２バイトが０ｘ０００１であればトラック競技を表し、残りの２バイトが距離を表す。また、上位２バイトが０ｘ０００２であれば跳躍競技（例えば走り幅跳び、三段跳び、棒高跳び、走り高跳びなど）を表し、０ｘ００００であれば走り幅跳びを表す。ただし、これに限定されず、競技種目が文字列で表現されてもよい。
【００８５】
以下の情報は、競技固有の情報を表す。ｃａｔｅｇｏｒｙ＿ｃｏｄｅの上位２バイトがトラック競技を表す場合、ｌｏｃａｔｉｏｎ＿ｓｔａｒｔ＿０ｔｈ  ｌａｎｅは最も小さな番号のレーンのスタート位置を上記の競技場の原点からの相対位置の座標（ｘ、ｙ、ｚ）で表す。ｌｏｃａｔｉｏｎ＿ｅｎｄ＿０ｔｈ  ｌａｎｅは最も小さな番号のレーンのゴール位置を上記の競技場の原点からの相対位置の座標（ｘ、ｙ、ｚ）で表す。ｎｕｍ＿ｌａｎｅはレーン数を表す。ｌａｎｅ＿ｗｉｄｔｈはレーンの幅をセンチメートル単位で表す。
【００８６】
ｃａｔｅｇｏｒｙ＿ｃｏｄｅの上位２バイトが走り幅跳びを表す場合、ｌｏｃａｔｉｏｎ＿ｓｔａｒｔ＿ｐｏｉｎｔは選手が助走を開始する位置を上記の競技場の原点からの相対位置の座標（ｘ、ｙ、ｚ）で表す。ｌｏｃａｔｉｏｎ＿ｊｕｍｐ＿ｐｏｉｎｔは踏切の位置を上記の競技場の原点からの相対位置の座標（ｘ、ｙ、ｚ）で表す。
【００８７】
なお、競技種目及び競技固有の情報はこれらに限定されない。例えば、砲丸投げ、ハンマー投げ、及びやり投げなどの場合は、投てきを行うサークルの位置や投てき方向、落下地点などの情報が、サークルの中心からの方角等で表されてもよい。また、撮影対象はスポーツにも限定されず、例えば撮影対象がコンサートであれば、そのステージのセンター位置等が表されてもよい。
【００８８】
合成に用いられる時刻情報を表すＳｙｎｔｈｅｓｉｚｉｎｇ＿ｓｃｅｎｅ＿ｔｉｍｅ＿ｉｎｆｏｒｍａｔｉｏｎボックスは、下記のように表される。
Box Type:    ‘ssti‘
Container:   Meta box (‘meta‘)
Mandatory:   No
Quantity:    Zero or one
そしてそのシンタックスは、下記のように表される。
【００８９】
aligned(8) class ItemLocationBox extends FullBox(‘ssti‘,version,0) {
unsigned int(32) offset_size;
unsigned int(32) length_size;
unsigned int(32) base_offset_size;
if (version == 1)
unsigned int(32) index_size;
else 
unsigned int(32) reserved;
unsigned int(32) num_event;
if ((category_code > 0x00010000 )&& (category_code < 0x0001FFFF )){
for (i=0; i<num_event; i++){
unsigned int(32)event_start_time[i];
unsigned int(32)event_goal_time[i];
}
}else if (category_code == 0x00020000 ){
for (i=0; i<num_event; i++){
unsigned int(32)event_start_time[i];
unsigned int(32)event_jump_time[i];
}
}
}
ｎｕｍ＿ｅｖｅｎｔは競技のシーケンス内で起こったイベントの数を表し、例えば１００ｍ走等におけるレース数を表す。競技の種目は上記のｃａｔｅｇｏｒｙ＿ｃｏｄｅで識別される。例えば、トラック競技であれば、第１レースから第（ｎｕｍ＿ｅｖｅｎｔ）レースまでそれぞれのスタート時刻がｅｖｅｎｔ＿ｓｔａｒｔ＿ｔｉｍｅで表され、先頭の選手がゴールした時刻がｅｖｅｎｔ＿ｇｏａｌ＿ｔｉｍｅで表される。これらの符号で表される時刻は前述のｃａｐｔｕｒｅ＿ｄａｔｅ＿ｔｉｍｅ＿ｃｏｄｅで表される時刻からの相対時間で表されてもよいし、それぞれがＷ３Ｃ−ＤＴＦのフォーマットで表されてもよい。また、ゴールした時刻についてはスタート時刻からの相対時間で表されていてもよい。例えば、競走であれば、スタートピストルの音や、スタートピストルの引き金に連動してスタート時刻が検出されてもよい。また、走り幅跳びであれば、第１跳躍から第（ｎｕｍ＿ｅｖｅｎｔ）跳躍までそれぞれのスタート時刻がｅｖｅｎｔ＿ｓｔａｒｔ＿ｔｉｍｅで表され、それぞれの跳躍の時刻がｅｖｅｎｔ＿ｊｕｍｐ＿ｔｉｍｅで表される。このようにして、合成に用いられる情報はメタ情報として画像データのファイルに含めることができる。
【００９０】
次に、Ｓｙｎｔｈｅｓｉｚｉｎｇ＿ｓｃｅｎｅ＿ｖｉｒｔｕａｌ＿ｃａｍｅｒａ＿ｉｎｆｏｒｍａｔｉｏｎは仮想視点画像の生成に係る仮想カメラの情報を表す。Ｓｙｎｔｈｅｓｉｚｉｎｇ＿ｓｃｅｎｅ＿ｏｂｊｅｃｔ＿ｉｎｆｏｒｍａｔｉｏｎは合成に用いられる被写体情報を表す。合成に用いられる仮想カメラ情報を表すＳｙｎｔｈｅｓｉｚｉｎｇ＿ｓｃｅｎｅ＿ｖｉｒｔｕａｌ＿ｃａｍｅｒａ＿ｉｎｆｏｒｍａｔｉｏｎボックスはフレーム単位で存在し、その内容は下記のように表される。
Box Type:    ‘svci‘
Container:   Meta box (‘meta‘)
Mandatory:   No
Quantity:    Zero or one
そしてそのシンタックスは、下記のように表される。
【００９１】
aligned(8) class ItemLocationBox extends FullBox(‘svci‘,version,0) {
unsigned int(32) offset_size;
unsigned int(32) length_size;
unsigned int(32) base_offset_size;
if (version == 1)
unsigned int(32) index_size;
else 
unsigned int(32) reserved;
for (i=0; i<3;i++)
unsigned int(32)virtual_camera_location[i];
for (i=0, i<4; i++)
int(32) rotation _quaternion[i];
float(32) horizontal_angle;
}
ｖｉｒｔｕａｌ＿ｃａｍｅｒａ＿ｌｏｃａｔｉｏｎは仮想カメラの位置を上記の競技場の原点からの相対位置の座標（ｘ、ｙ、ｚ）で表す。ｒｏｔｅｔｉｏｎ＿ｑｕａｔｅｒｎｉｏｎはカメラの姿勢をクォータニオンで表現したものであり、実数部、虚数部の各値が４バイトの符号付き整数で記述される。ｈｏｒｉｚｏｎｔａｌ＿ａｎｇｌｅは画角パラメータであり、水平からの角度を４バイトの符号付き浮動小数点数で表す。
【００９２】
合成に用いられる被写体情報を表すＳｙｎｔｈｅｓｉｚｉｎｇ＿ｓｃｅｎｅ＿ｏｂｊｅｃｔ＿ｉｎｆｏｒｍａｔｉｏｎボックスは、下記のように表される。
Box Type:    ‘ssoi‘
Container:   Meta box (‘meta‘)
Mandatory:   No
Quantity:    Zero or one
そしてそのシンタックスは、下記のように表される。
【００９３】
aligned(8) class ItemLocationBox extends FullBox(‘ssoi‘,version,0) {
unsigned int(32) offset_size;
unsigned int(32) length_size;
unsigned int(32) base_offset_size;
if (version == 1) 
unsigned int(32) index_size;
else 
unsigned int(32) reserved;
unsigned int(32) num_event;
for (i=0; i<num_event; i++){
unsigned int(32)num_object[i];
for (j=0; j<num_object; j++){
unsigned int(8)num_char_object_name[i][j];
for (k<num_char_object_name;k++)
unsigned char(8) object_name[i][j][k];
unsigned int(8) ID_number;
for (k=0; k<3; k++)
unsigned int(32)object_location[i][j][k];
}
}
}
ｎｕｍ＿ｅｖｅｎｔは競技のシーケンス内で起こったイベントの数を表し、例えば１００ｍ走等におけるレース数を表す。ｎｕｍ＿ｏｂｊｅｃｔは第ｉ番目のイベントに出場している選手（被写体）の数を表す。ｎｕｍ＿ｃｈａｒ＿ｏｂｊｅｃｔ＿ｎａｍｅは第ｉ番目のイベントに出場している第ｊ番目の選手の名前の長さを表す。ｏｂｊｅｃｔ＿ｎａｍｅは文字列であり、その選手の名前を表す。ＩＤ＿ｎｕｍｂｅｒは選手を識別する番号であり、参加者番号やゼッケン番号等を表す。ｏｂｊｅｃｔ＿ｌｏｃａｔｉｏｎは、その選手のスタート時刻での位置を上記の競技場の原点からの相対位置の座標（ｘ、ｙ、ｚ）で表す。
【００９４】
以上、図１２（ａ）に示すファイルフォーマットの例について説明したが、記憶部１１８に記憶されるデータのフォーマットはこれに限定されるものではない。例えば、図１２（ｂ）に示すように、ｍｅｔａ１００３の代わりに専用のボックスを設けることもできる。図１２（ｂ）の例では、専用のボックスとして、ｆｖｓｉ（Ｆｒｅｅ  Ｖｉｅｗｐｏｉｎｔｖｉｄｅｏ＿Ｓｙｎｔｈｅｓｉｚｉｎｇ＿Ｉｎｆｏ）１００５という新たなボックスタイプを用いている。このボックスは、動画（シーケンス）単位で付与されてもよいし、複数フレームからなる画像クリップ単位で付与されてもよいし、フレーム単位で付与されてもよい。また例えば、図１２（ｃ）に示すように、ｍｏｏｖ１００２の中にｍｅｔａ１００６が含まれてもよいし、さらにはｍｏｏｖ１００２の中のボックスにメタ情報が含まれてもよい。また例えば、図１２（ｄ）に示すように、ｆｖｖｉ（Ｆｒｅｅ  Ｖｉｅｗｐｏｉｎｔ＿Ｖｉｄｅｏ＿Ｉｎｆｏ）１００４とｆｖｖｉ１００７など複数のボックスに分けてメタ情報が格納されてもよい。
【００９５】
次に、上記のデータを用いた仮想視点画像の生成について説明する。上記のメタ情報を用いて、仮想視点画像生成に用いるデータを検索することができる。例えば、ユーザは指示部１１９を用いて、仮想視点画像生成に用いる画像データの要件を入力する。例えば、競技場の名称や、競技の日時や、競技の種目が入力される。画像生成部１２０は、記憶部１１８に記憶された画像データのファイルからメタ情報を読み出し、入力された情報に適合する画像データのファイルを抽出する。複数の画像データが適合した場合、画像生成部１２０は、例えば指示部１１９にそれらの候補を通知したり、表示部１２１に表示させたりすることで、最終的に用いられる画像データをユーザに選択させる。そして、仮想カメラの位置、姿勢、方向、画角等の情報が指示部１１９を介して入力されると、画像生成部１２０は抽出されたデータを用いて仮想視点画像を生成し、表示部１２１に仮想視点画像を出力して表示させる。
【００９６】
ここで、競技場Ａにおける選手Ｃと競技場Ｘにおける選手Ｚの画像を合成した仮想視点画像を生成する場合を例に挙げて、より詳細に説明する。ここでは選手Ｃと選手Ｚが同じ種目の競技（例えば１００ｍ走）に出場した場合を例に説明をするが、異なる種目の競技に出場した複数の選手の画像を合成してもよい。
【００９７】
最初に、画像生成部１２０は、指示部１１９から入力された時間及び競技場に対応する画像データファイルを選択する。この選択は、前述のｃａｐｔｕｒｅ＿ｄａｔｅ＿ｔｉｍｅ＿ｃｏｄｅや、ｐｌａｃｅ＿ｎａｍｅ等を参照することで行われる。競技場Ａで行われた選手Ｃの参加した競技の画像データファイルを画像データファイルＤとし、競技場Ｘで行われた選手Ｚの参加した競技の画像データファイルを画像データファイルＥとする。なお、上記の選択はｃｏｎｖｅｎｔｉｏｎ＿ｎａｍｅ等の情報を参照して行われてもよい。
【００９８】
次に、画像生成部１２０は、前景オブジェクトの画像と合成する対象の競技場を選択する。例えば、画像生成部１２０は、選手Ｃを含む競技場Ａの画像に選手Ｚの画像を合成してもよいし、競技場Ａ及び競技場Ｘのいずれとも異なる競技場の画像に選手Ｃ及び選手Ｚの画像を合成してもよい。後者の場合は、画像生成部１２０は、上記の画像データファイルに加えて、合成対象の競技場のデータを含む画像データファイルを取得する。また、実在しない競技場の画像を合成してもよい。ここでは、競技場Ａに選手Ｃと選手Ｚを合成した画像を生成することとする。
【００９９】
画像生成部１２０は、画像データファイルＤを取得し、競技場Ａのスタート位置をｏｃａｔｉｏｎ＿ｓｔａｒｔ＿０ｔｈ  ｌａｎｅに基づいて特定し、ゴール位置をｏｃａｔｉｏｎ＿ｅｎｄ＿０ｔｈ  ｌａｎｅに基づいて特定する。さらに画像生成部１２０は、画像データファイルＥを取得し、競技場Ｘのスタート位置をｏｃａｔｉｏｎ＿ｓｔａｒｔ＿０ｔｈ  ｌａｎｅに基づいて特定し、ゴール位置をｏｃａｔｉｏｎ＿ｅｎｄ＿０ｔｈ  ｌａｎｅに基づいて特定する。これにより、画像生成部１２０は、画像データファイルＤに対応する選手Ｃの競技場Ａの原点からの相対位置を特定できる。同様に、画像生成部１２０は、画像データファイルＥに対応する選手Ｚの競技場Ｘの原点からの相対位置を特定できる。
【０１００】
特定されたこれらの相対位置を用いることで、画像生成部１２０は、選手Ｃと選手Ｚとを１００ｍレーン上に配置できる。また、選手Ｃ又は選手Ｚの位置をｌａｎｅ＿ｗｉｄｔｈにより表されるレーン幅の倍数分だけずらすことによって、選手Ｚの位置を選手Ｃの隣のレーンとするなど、選手Ｃと選手Ｚを任意のレーンに並べることができる。また、画像生成部１２０は競技場Ａと競技場Ｘにおけるスタート位置とゴール位置から走行方向を特定することができるので、選手Ｚと選手Ｃが同じ向きに走るように合成することができる。また、スタート後の各フレームについて同様に処理を行うことで、画像生成部１２０は、２人の選手が並走するような動画を生成することができる。
【０１０１】
ここでは２人の選手の画像を合成する場合について述べたが、これに限定されない。３人以上の選手の画像を合成する場合においても、スタート位置やレーンの幅に基づいてそれぞれの選手の位置が決まる。また画像生成部１２０は、それぞれの競技におけるスタート時刻などの時刻同期を行うため、それぞれの画像データからｕｎｓｉｇｎｅｄ  ｉｎｔ（３２）ｅｖｅｎｔ＿ｓｔａｒｔ＿ｔｉｍｅ［ｉ］データを抽出してもよい。画像生成部１２０は、このデータに対応するタイムコードに基づいて２人の選手の画像を合成することで、容易に時刻同期を行うことができる。
【０１０２】
以上説明したように、本実施形態における画像生成部１２０は、第１撮影状況における複数の方向からの撮影に基づくデータを記憶部１１８から取得する。また、画像生成部１２０は、第１撮影状況とは撮影場所及び撮影時刻の少なくとも何れかが異なる第２撮影状況における複数の方向からの撮影に基づくデータを記憶部１１８から取得する。また、画像生成部１２０は、仮想視点の位置及び方向を示す視点情報を指示部１１９から取得する。そして画像生成部１２０は、第１撮影状況において撮影されたオブジェクトを表す画像と第２撮影状況において撮影されたオブジェクトを表す画像とを含む仮想視点画像を、記憶部１１８から取得したデータに基づいて生成する。ここで生成される仮想視点画像は、指示部１１９から取得した視点情報に応じた仮想視点画像となる。
【０１０３】
これにより、仮想視点画像を見るユーザは、撮影場所及び撮影時刻の少なくとも何れかが異なる複数の撮影対象を容易に比較することができるようになる。特に、ユーザによる操作に応じて決定された仮想視点の位置及び方向に応じた仮想視点画像が生成されることで、ユーザは様々な視点から複数の撮影対象を比較できる。また、ユーザが１つの仮想視点を指定すると、同じ仮想視点から見た複数の撮影対象が表示されるため、それぞれ異なる視点からみた複数の撮影対象が表示される場合よりも、ユーザにとって比較がしやすく、且つ仮想視点の指定が簡単になる。
【０１０４】
また、画像処理システム１０は、記憶部１１８に記憶されるデータに上述した各種の付加情報を含めることで、異なる撮影状況において撮影された複数のオブジェクトを含む仮想視点画像を容易に生成することができる。特に、上述したデータフォーマットのような予め定められた形式でデータが記憶されることで、画像生成部１２０は複数の異なるカメラシステムにより取得されたデータを一律に扱うことができ、仮想視点画像を生成するための処理を効率化することができる。
【０１０５】
なお、本実施形態では撮影対象が陸上競技である場合を中心に説明したが、これに限らない。例えば、水泳競技、体操競技、サッカー、及びフィギュアスケートなどを撮影対象とした場合であっても、同様の方法により、複数の撮影状況において撮影された複数のオブジェクトを含む仮想視点画像を生成することができる。また、スポーツ競技に限らず、コンサートや演劇などを撮影対象としてもよい。
【０１０６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ等）によっても実現可能である。また、そのプログラムをコンピュータにより読み取り可能な記録媒体に記録して提供してもよい。
【符号の説明】
【０１０７】
１０  画像処理システム
１１０  カメラシステム
１１８  記憶部
１１９  指示部
１２０  画像生成部
【図１】
2020086983.tif 000003
【図２】
2020086983.tif 000004
【図３】
2020086983.tif 000005
【図４】
2020086983.tif 000006
【図５】
2020086983.tif 000007
【図６】
2020086983.tif 000008
【図７】
2020086983.tif 000009
【図８】
2020086983.tif 000010
【図９】
2020086983.tif 000011
【図１０】
2020086983.tif 000012
【図１１】
2020086983.tif 000013
【図１２】
2020086983.tif 000014