(57)【要約】【課題】仮想視点画像に係る視点の位置を指定する際に、実空間での被写体の位置を特定可能にする。【解決手段】画像処理装置は、複数のカメラの撮影対象領域を撮影した画像に基づいて、当該画像に写るオブジェクトの位置情報を取得する取得手段と、撮影対象領域を示すコンピュータグラフィックにおいて、取得手段により取得された位置情報に対応する位置に、オブジェクトを示す情報を表示させる表示制御手段と、表示制御手段によりオブジェクトを示す情報を表示させている状態で、仮想視点画像に係る視点の位置の指定を受け付ける受付手段と、を備える。【選択図】図５
2019057070.tif 000002
【特許請求の範囲】
【請求項１】
複数のカメラにより撮影された複数の画像を用いて生成される仮想視点画像に係る視点の位置の指定を受け付ける画像処理装置であって、
前記複数のカメラの撮影対象領域を撮影した画像に基づいて、当該画像に写るオブジェクトの位置情報を取得する取得手段と、
前記撮影対象領域を示すコンピュータグラフィックにおいて、前記取得手段により取得された位置情報に対応する位置に、前記オブジェクトを示す情報を表示させる表示制御手段と、
前記表示制御手段により前記オブジェクトを示す情報を表示させている状態で、仮想視点画像に係る視点の位置の指定を受け付ける受付手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記表示制御手段が表示させる情報は、コンピュータグラフィックであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記複数のカメラの撮影対象領域は、サッカーまたはラグビーが行われるフィールドであることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記受付手段は、前記撮影対象領域を示す画像と前記オブジェクトを示す情報とを表示する表示領域に対する操作に基づいて、仮想視点画像に係る視点の位置の指定を受け付けることを特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
前記取得手段は、前記撮影対象領域を上空から写した画像に基づいて、前記オブジェクトの位置情報を取得することを特徴とする請求項１から４のいずれか一項に記載の画像処理装置。
【請求項６】
前記撮影対象領域を撮影した画像を、前記撮影対象領域を上空から写した画像に変換する変換手段をさらに備えることを特徴とする請求項１から５のいずれか一項に記載の画像処理装置。
【請求項７】
フィールドを撮影した画像を、前記フィールドを上空から見た鳥瞰図画像に変換する変換手段と、
前記鳥瞰図画像から、被写体の２次元の位置情報を取得する第一の取得手段と、
前記２次元の位置情報を用いて、前記被写体を含む前記フィールドの領域をＣＧ（コンピュータグラフィック）モデルで再現したＣＧシーンを生成する生成手段と、
前記ＣＧシーンを用いて特定の被写体の３次元の位置情報を取得する第二の取得手段と、
前記特定の被写体の３次元の位置情報を用いて前記特定の被写体の位置情報を修正する修正手段と
を備えることを特徴とする画像処理装置。
【請求項８】
前記修正手段は、修正された前記特定の被写体の位置情報を用いて前記ＣＧシーンを修正することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記ＣＧシーンを画面に表示させる表示制御手段と、
指定された仮想カメラパスを設定する設定手段と
をさらに備えることを特徴とする請求項７または８に記載の画像処理装置。
【請求項１０】
前記設定された仮想カメラパスに従って前記ＣＧシーンを用いた仮想視点画像を生成する第一の画像生成手段をさらに備えることを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記フィールドを複数の視点で撮影した複数の画像を取得する第三の取得手段と、
前記設定された仮想カメラパスに従って前記複数の画像を用いた仮想視点画像を生成する第二の画像生成手段をさらに備えることを特徴とする請求項９または１０に記載の画像処理装置。
【請求項１２】
前記鳥瞰図画像は、前記フィールドを１台のカメラで撮影した画像から変換された画像であることを特徴とする請求項７から１１のいずれか一項に記載の画像処理装置。
【請求項１３】
前記第一の取得手段は、
前記鳥瞰図画像から被写体のシルエットを抽出し、
前記シルエットの所定方向における最小値の座標を、それぞれの被写体の２次元の位置情報として取得することを特徴とする請求項７から１２のいずれか一項に記載の画像処理装置。
【請求項１４】
前記第二の取得手段は、前記特定の被写体のシルエットの面積を用いて前記３次元の位置情報を取得する請求項１３に記載の画像処理装置。
【請求項１５】
前記第二の取得手段は、前記特定の被写体の形状を示すパラメータをさらに用いて前記３次元の位置情報を取得することを特徴とする請求項１４に記載の画像処理装置。
【請求項１６】
前記生成手段は、前記フィールドを撮影した画像と同じ構図のＣＧ画像を、前記ＣＧシーンを用いて生成し、生成したＣＧ画像からＣＧ鳥瞰図画像を生成し、
前記第二の取得手段は、前記鳥瞰図画像における前記特定の被写体のシルエットの面積と前記ＣＧ鳥瞰図画像における前記特定の被写体のＣＧモデルのシルエットの面積とが、所定の閾値未満となるＣＧモデルの位置を、前記特定の被写体の３次元の位置情報として取得することを特徴とする請求項１３から１５のいずれか一項に記載の画像処理装置。
【請求項１７】
前記特定の被写体は、円状または楕円状の被写体を含むことを特徴とする請求項７から１６のいずれか一項に記載の画像処理装置。
【請求項１８】
前記ＣＧモデルは、被写体のユニフォームの種類と同じ数またはそれ以上の種類の数が用いられることを特徴とする請求項７から１７のいずれか一項に記載の画像処理装置。
【請求項１９】
前記修正手段は、ユーザからの指示に応じて前記修正を行うことを特徴とする請求項７から１８のいずれか一項に記載の画像処理装置。
【請求項２０】
フィールドを撮影した画像を、前記フィールドを上空から見た鳥瞰図画像に変換するステップと、
前記鳥瞰図画像から、被写体の２次元の位置情報を取得するステップと、
前記２次元の位置情報を用いて、前記被写体を含む前記フィールドの領域をＣＧ（コンピュータグラフィック）モデルで再現したＣＧシーンを生成するステップと、
前記ＣＧシーンを用いて特定の被写体の３次元の位置情報を取得するステップと、
前記特定の被写体の３次元の位置情報を用いて前記特定の被写体の位置情報を修正するステップと
を備えることを特徴とする画像処理方法。
【請求項２１】
複数のカメラにより撮影された複数の画像を用いて生成される仮想視点画像に係る視点の位置の指定を受け付ける画像処理装置による画像処理方法であって、
前記複数のカメラの撮影対象領域を撮影した画像に基づいて、当該画像に写るオブジェクトの位置情報を取得する取得工程と、
前記撮影対象領域を示すコンピュータグラフィックにおいて、前記取得工程において取得された位置情報に対応する位置に、前記オブジェクトを示す情報を表示させる表示制御工程と、
前記表示制御工程において前記オブジェクトを示す情報を表示させている状態で、仮想視点画像に係る視点の位置の指定を受け付ける受付工程と、
を備えることを特徴とする画像処理方法。
【請求項２２】
コンピュータを、請求項１から１９のいずれか一項に記載の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想視点画像を生成する場合における、仮想カメラパスを設定するための画像処理の技術に関する。
【背景技術】
【０００２】
複数台の実カメラ画像を用いて、３次元空間内に仮想的に配置したカメラから撮影された画像を再現して、実カメラの設置位置から撮影した画像だけでなく任意の視点の画像を仮想視点画像として生成する技術がある。特許文献１では、複数のカメラにより撮影された画像から仮想視点画像を生成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１７２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
仮想視点画像に係る視点の位置を指定する場合、被写体の位置がわからなければ、ユーザは、どの位置を仮想視点画像に係る視点の位置とすれば、所望とする仮想視点画像が得られるかを判断することが難しかった。したがって、所望とする仮想視点画像に係る視点の指定を容易にするために、実空間での被写体の位置をユーザに特定可能にするための技術が望まれる。
【０００５】
本発明は、仮想視点画像に係る視点の位置を指定する際に、実空間での被写体の位置を特定可能にするための技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る画像処理装置は、複数のカメラにより撮影された複数の画像を用いて生成される仮想視点画像に係る視点の位置の指定を受け付ける画像処理装置であって、前記複数のカメラの撮影対象領域を撮影した画像に基づいて、当該画像に写るオブジェクトの位置情報を取得する取得手段と、前記撮影対象領域を示すコンピュータグラフィックにおいて、前記取得手段により取得された位置情報に対応する位置に、前記オブジェクトを示す情報を表示させる表示制御手段と、前記表示制御手段により前記オブジェクトを示す情報を表示させている状態で、仮想視点画像に係る視点の位置の指定を受け付ける受付手段と、を備えることを特徴とする。
【０００７】
本発明の他の態様に係る画像処理装置は、フィールドを撮影した画像を、前記フィールドを上空から見た鳥瞰図画像に変換する変換手段と、前記鳥瞰図画像から、被写体の２次元の位置情報を取得する第一の取得手段と、前記２次元の位置情報を用いて、前記被写体を含む前記フィールドの領域をＣＧ（コンピュータグラフィック）モデルで再現したＣＧシーンを生成する生成手段と、前記ＣＧシーンを用いて特定の被写体の３次元の位置情報を取得する第二の取得手段と、前記特定の被写体の３次元の位置情報を用いて前記特定の被写体の位置情報を修正する修正手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、仮想視点画像に係る視点の位置を指定する際に、実空間での被写体の位置を特定可能にすることができる。
【図面の簡単な説明】
【０００９】
【図１】画像処理装置、カメラ装置の構成を示すブロック図。
【図２】カメラ装置の配置を示す概要図。
【図３】仮想カメラパスを設定するＧＵＩを示す図。
【図４】画像処理装置の機能ブロックの一例を示す図。
【図５】仮想視点画像生成の処理を示すフローチャート。
【図６】被写体の２次元位置算出処理を示すフローチャート。
【図７】鳥瞰図およびシルエット抽出例を示した図。
【図８】ＣＧシーン生成処理を示すフローチャート。
【図９】ＣＧシーン生成例を示した図。
【図１０】特定の被写体の３次元位置算出処理を示すフローチャート。
【図１１】特定の被写体３次元位置取得例を示した図。
【図１２】楕円被写体の３次元位置取得処理を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【００１１】
以下に示す実施形態では、実カメラにより撮影された撮影画像に基づいて被写体の位置を特定し、特定した被写体の位置を、実空間を模したＣＧ（コンピュータグラフィック）上に示すことで、仮想視点画像に係る視点の位置の指定を容易にする形態を説明する。
【００１２】
また、実空間における被写体の位置情報を取得する方法としては、複数台のカメラを用いた三角測量によって、被写体の位置情報を取得する方法が一般的である。しかし、このような方法では、処理時間が長くなる問題がある。また、処理時間を短縮するには専用のハードウェアを用いる必要がある点などの問題がある。また、撮影対象である人物やボールなどの被写体の高さなどは刻々と変化していくものであり、従来の技術では３次元位置の精度は低いという課題がある。また、以下に示す実施形態では、被写体位置を高精度かつ短時間で取得することを可能とする。
【００１３】
また、以下に示す実施形態では、仮想視点画像を撮影する仮想的なカメラ（以下、仮想化カメラと呼ぶ）を見立て、仮想視点画像に係る視点の位置及び視線の方向を指定することを仮想カメラの位置姿勢を指定するとも呼ぶ。また、仮想カメラの位置、注視点、および画角などの各種のパラメータを時間軸に沿って設定することを、仮想カメラパスを設定するとも呼ぶ。
【００１４】
また、以下に示す実施形態において、特に断りがない限り、画像という文言は、静止画も動画も含むもとして説明を行う。即ち、以下に示す実施形態において、仮想視点画像は、静止画であっても動画であってもよい。
【００１５】
＜＜実施形態１＞＞
本実施形態では、特定のオブジェクトである被写体の位置情報（被写体位置情報ともいう）の取得に際して、サッカー競技を題材として説明を行う。即ち、仮想視点画像を生成するための撮影対象はサッカーが行われるフィールドであるものとして説明を行う。サッカーでは、選手などの人物被写体はフィールドに接地しているケースが大半である。そのため、本実施形態では、フィールド平面に則した２次元の位置情報を被写体位置情報として取得し、処理を高速化する。また、サッカーで、３次元的な動きをする被写体は限られている。具体的には、３次元的な動きをする被写体は、滞空時間が長いボールである。そこで、本実施形態では、被写体情報として３次元の位置情報を取得する対象を、ボールに絞り込む。これにより、処理時間の効率化を図るとともに、実空間における被写体位置情報の精度を高めることができる。
【００１６】
＜システム構成＞
図１は、本実施形態における、画像処理装置１００とカメラ装置１１０とを含むシステム構成を示すブロック図である。画像処理装置１００は、ＣＰＵ１０１、メインメモリ１０２、記憶部１０３、入力部１０４、表示部１０５、外部Ｉ／Ｆ部１０６、バス１０７を備える。ＣＰＵ（Central Processing Unit）１０１は、演算処理や各種プログラムの実行を行う。メインメモリ１０２は、処理に必要なプログラム、データ、作業領域などをＣＰＵ１０１に提供する。記憶部１０３は、画像処理プログラムやＧＵＩ（Graphical User Interface）表示に必要な各種データを蓄積する装置で、例えばハードディスクやシリコンディスク等の不揮発性メモリが用いられる。入力部１０４は、キーボードやマウス、電子ペン、タッチパネル等の装置であり、ユーザからの操作入力を受け付ける。表示部１０５はＧＵＩなどの画面の表示を行う。外部Ｉ／Ｆ（InterFace）部１０６はカメラ装置１１０と接続し、画像データや制御信号データの送受信をＬＡＮ１２０経由で行う。バス１０７は上述の各部を接続し、データ転送を行う。
【００１７】
カメラ装置１１０は、複数台のカメラから構成されるカメラ群１１１を備える。カメラ群１１１はＬＡＮ（Local Area Network）１２０経由で画像処理装置１００と接続されている。カメラ群１１１は、画像処理装置１００からの制御信号をもとに、撮影の開始および停止、カメラ設定（シャッタースピード、焦点距離、絞値など）の変更、ならびに撮影データの転送を行う。
【００１８】
なお、システム構成については、上記以外にも、様々な構成要素が存在し得るが、本実施形態の主眼ではないので、その説明は省略する。
【００１９】
図２は、カメラ群１１１の配置を示した図である。ここでは、スポーツなどを行う競技場にカメラ群１１１を設置したケースで説明する。競技を行うフィールド２０１上に被写体２０２が存在する。図２では、例示的に１つの被写体２０２のみを示している。カメラ群１１１は、フィールド２０１を取り囲むように配置されている。カメラ群１１１を構成する個々のカメラ２０３においては、フィールドの部分的な領域が収まるように焦点距離・画角（θ°）と撮影方向とが設定されている。また、トラッキングカメラ２０４を別途配置しており、フィールド全域が撮影できるよう焦点距離・画角（φ°）を設定している。ここで、θ＜φの関係となっている。本実施形態では、主にフィールド全域の領域を撮影するトラッキングカメラ２０４で撮影した画像を元に、被写体２０２の位置情報を取得する処理が行われる。すなわち、１台のカメラで撮影した画像を元に被写体２０２の位置情報を取得する処理が行われる。なお、トラッキングカメラ２０４を複数台にしてもよい。
【００２０】
＜ＧＵＩ画面＞
図３は、仮想視点画像生成時の仮想カメラパス設定を行うＧＵＩ画面を示した図である。前述したように、仮想視点画像を生成するには、仮想カメラパスを設定する必要がある。仮想カメラパスとは、仮想カメラの位置、注視点、および画角を時間軸に沿って設定した仮想カメラの経路である。仮想視点画像は、この仮想カメラで撮影されたような画像が再現された画像である。所望の仮想カメラパスを設定するためには、ユーザが、フィールド上における被写体の位置を確認できていることが必要となる。本実施形態では、画像処理装置１００が、被写体の位置情報を取得する処理を行う。画像処理装置１００は、１台のトラッキングカメラ２０４で撮影した画像に基づいて被写体の位置情報を取得する。そして、取得した位置情報を用いて、実空間をＣＧモデルで再現したＣＧシーンを生成する。ユーザは、ＣＧシーンを用いて再現されたＣＧ画像を見て、仮想カメラパスを指定する。そして、画像処理装置１００は、指定された仮想カメラパスを設定し、この仮想カメラパスに基づいてＣＧモデルで仮想視点画像を生成する。このような処理によれば、画像処理装置１００は、仮想カメラパスを設定するための被写体の位置情報を、１台のトラッキングカメラ２０４からの画像に基づいて取得することができるので、低コストで被写体の位置情報を取得できる。また、カメラ台数が少ない方が、データ量が少なくなるので、処理時間も短縮できる。なお、詳細は後述するが、画像処理装置１００は、被写体の位置情報のうち、特定の被写体（例えばボール）については、３次元の位置情報を取得し、他の被写体については実質的に２次元の位置情報を取得する。このような処理によれば、短時間で高精度の位置情報を取得することができる。
【００２１】
図３（ａ）のＧＵＩ画面３００は、ＣＧウィンドウ３１０、操作ボタン類３２０、カメラパス設定ダイアログ３３０を含む構成である。ＣＧウィンドウ３１０は、フィールドＣＧモデル３１１、選手ＣＧモデル３１２、ボールＣＧモデル３１３を含む各種の３次元形状ＣＧモデル（以下、ＣＧモデルという）を可視化するウィンドウである。各ＣＧモデルはポリゴン面で構成されており、レイトレーシング法やスキャンライン法など、既存のＣＧレンダリング手法を用いて可視化される。本実施形態では、所望の時間帯の、カメラ群１１１の撮影対象であるフィールド上を再現するＣＧシーンを、ＣＧウィンドウ３１０で表示する。ユーザは、ＣＧウィンドウ３１０で可視化された選手などの被写体を示す各ＣＧモデルの位置を確認しながら、仮想カメラを配置・移動させ、仮想視点画像の仮想カメラパスを指定することになる。本実施形態は、このＣＧウィンドウ３１０に可視化する被写体（ＣＧモデル）の位置情報を短時間で高精度に取得する処理についても説明する。特に、本実施形態では、選手ＣＧモデル３１２およびボールＣＧモデル３１３の被写体位置情報を短時間で高精度に取得する。詳細は後述する。
【００２２】
操作ボタン類３２０は、必要な入力データの読み込みや選手トラッキングの開始に利用される。選手トラッキングとは、各被写体である各選手の位置を経時的に追跡することである。具体的には、各選手の被写体位置情報を経時的に示すトラッキングデータが収集されることになる。操作ボタン類３２０には、ＣＧモデル読み込みボタン３２１、トラッキングデータ適用ボタン３２２、仮想視点画像生成ボタン３２３、および選手トラッキングボタン３２４が含まれる。
【００２３】
カメラパス設定ダイアログ３３０は、仮想カメラパスの設定を詳細に行う際に利用される。カメラパス設定ダイアログ３３０は、仮想カメラパス設定ボタン３３１およびボール高さ設定ボタン３３２を含むものである。
【００２４】
図３（ｂ）のＧＵＩ画面３５０は、図３（ａ）の操作ボタン類３２０の選手トラッキングボタン３２４が押下されることにより、ＣＧウィンドウ３１０が、トラッキングウィンドウ３６０に遷移した画面である。トラッキングウィンドウ３６０には、トラッキングカメラ２０４で撮影された画像が表示されたり、フィールドを上方から見た鳥瞰図画像が表示されたりする。詳細は後述する。ユーザは、トラッキングウィンドウ３６０に表示された鳥瞰図画像に基づいて、選手やボールの被写体位置情報をトラッキングする際に必要な設定を行う。なお、図３（ｂ）のＧＵＩ画面３５０では、トラッキングウィンドウ３６０への遷移に併せて、図３（ａ）のカメラパス設定ダイアログ３３０が、トラッキングダイアログ３７０に遷移する。図３の詳細については、後述する処理と関連して適宜説明をする。
【００２５】
＜機能ブロック図＞
図４は、本実施形態の画像処理装置１００の機能ブロック図の一例を示す図である。画像処理装置は、画像データ格納部４０１、画像時刻取得部４０２、画像データ抽出部４０３、画像変換部４０４、２次元位置情報取得部４０５、ＣＧモデル格納部４０６、ＣＧシーン生成部４０７を有する。また、３次元位置情報取得部４０８、修正部４０９、表示制御部４１０、仮想カメラパス設定部４１１、仮想視点画像生成部４１２を有する。
【００２６】
図１に示す記憶部１０３は、画像データ格納部４０１およびＣＧモデル格納部４０６として機能する。なお、不図示のネットワーク接続されている外部装置を仮想的に用いて画像データ格納部４０１およびＣＧモデル格納部４０６として機能させてもよい。図４に示す他の各部は、ＣＰＵ１０１が、メインメモリ１０２または記憶部１０３に格納されたソフトウェアプログラムに従った処理を行うことで、ＣＰＵ１０１が図４に示す各部として機能する。このように、本実施形態においては、ソフトウェアによる処理によって画像処理装置１００の構成を説明することとする。しかしながら、同様の処理を専用に行うハードウェアによって、あるいは、このようなハードウェアとソフトウェアとの組み合わせによって、処理が実現されるように構成されていてもよい。また、図４で示す各部は、画像処理装置１００に含まれる形態を示しているが、図４で示す各部の処理を複数の装置によって分散して処理を行うような形態を採用してもよい。
【００２７】
画像データ格納部４０１は、トラッキングカメラ２０４で撮影された画像データを格納する。画像時刻取得部４０２は、ユーザから指定された画像時刻（開始時刻と終了時刻を含む）を取得する。画像データ抽出部４０３は、画像時刻取得部４０２で取得された画像時刻に対応する画像データを、画像データ格納部４０１から抽出する。画像変換部４０４は、画像データ抽出部４０３で抽出された画像データが示す画像（トラッキングカメラ２０４で撮影された画像）を、鳥瞰図画像に変換する。
【００２８】
２次元位置情報取得部（第一の取得部）４０５は、画像変換部４０４で変換された鳥瞰図画像を用いて、各被写体の被写体位置情報を取得する。ここでは、高さ（フィールドの鉛直方向の座標）については、所定の値（例えば「０」）で固定し、実質的に２次元の位置情報を取得する。つまり、フィールド平面上に各被写体が位置していると想定し、各被写体の２次元の被写体位置情報を取得する。なお、ここでは理解を容易にするために、２次元の被写体位置情報と説明しているが、実質的には高さを示す座標が、上述したように、「０」で固定されている３次元の被写体位置情報を取得しているものである。２次元位置情報取得部４０５は、被写体位置情報を経時的に示したトラッキングデータを取得する。
【００２９】
ＣＧモデル格納部４０６は、各種のＣＧモデルを格納している。たとえば、フィールドＣＧモデル３１１、選手ＣＧモデル３１２、ボールＣＧモデル３１３を格納している。ＣＧシーン生成部４０７は、２次元位置情報取得部４０５で取得されたトラッキングデータ（経時的な被写体位置情報）に基づいて、ＣＧモデル格納部４０６で格納されるＣＧモデルを用いてＣＧシーンを生成する。
【００３０】
ＣＧシーンとは、ＣＧ画像を制作するための素材である。ＣＧ画像は、仮想空間内に被写体や背景の３次元形状モデルを配置し、その後、仮想カメラを設定し、仮想カメラから撮影した画像をレンダリングすることで再現される。ＣＧシーンを生成することは、上記の仮想空間内に被写体や背景の３次元形状モデルを配置することに相当する。ＣＧシーンには、時間の概念（アニメーション）が含まれる。
【００３１】
３次元位置情報取得部（第二の取得部）４０８は、ＣＧシーン生成部４０７で生成されたＣＧシーンを用いて、特定の被写体の３次元位置情報を取得する。特定の被写体としては、例えばフィールドの上空を移動することがあるボールが挙げられる。ボールが空中にある場合には、２次元位置情報取得部４０５で取得した位置情報が正しくない可能性が高い。そこで、３次元位置情報取得部４０８は、特定の被写体の位置情報（３次元位置）の座標の値を取得する。詳細については後述する。
【００３２】
修正部４０９は、ＣＧシーン生成部４０７で生成されたＣＧシーンを修正する。例えば、３次元位置情報取得部４０８において３次元位置情報を取得できるように、ＣＧシーンにおける特定の被写体の位置情報を変更する。詳細は後述する。また、修正部４０９は、３次元位置情報取得部４０８によって取得された被写体位置情報（３次元位置情報）の座標の値を用いて、その特定の被写体（ボール）のトラッキングデータを修正する。そして、修正後のトラッキングデータを用いてＣＧシーン生成部４０７で生成されているＣＧシーンを修正する。表示制御部４１０は、ＣＧシーン生成部４０７で生成されたＣＧシーンもしくは修正部４０９で修正されたＣＧシーン、または、このＣＧシーンを用いたＣＧ画像を表示部１０５に表示するように制御する。
【００３３】
仮想カメラパス設定部４１１は、ユーザから指定を受け付ける受付部として機能する。そして、ユーザから指定された仮想カメラパスを設定する。ユーザは、表示されているＣＧシーンから、各被写体の位置を確認し、所望の仮想カメラパスを指定することになる。仮想視点画像生成部４１２は、仮想カメラパス設定部４１１で設定された仮想カメラパスに従ったＣＧシーンを用いたＣＧの仮想視点画像を生成する。生成された仮想視点画像は、表示部１０５に表示され、ユーザが指定した仮想カメラパスが所望のものであるかをユーザが確認できる。
【００３４】
なお、ユーザが指定した仮想カメラパスが所望のものである場合、カメラ群１１１を構成するカメラ２０３によって撮影された画像を用いて、指定された仮想カメラパスに従った実際の画像の仮想視点画像が生成される。
【００３５】
＜フローチャート＞
図５は、上述した各部によってＣＧシーンを用いた仮想視点画像を生成するまでの処理過程を示したフローチャート図である。
【００３６】
ステップＳ５０１においてＣＰＵ１０１は、カメラ装置１１０に対して、撮影時の露光が適切となるようにカメラ設定を変更し、撮影開始の信号を送信する。カメラ装置１１０は、撮影信号の受信に応じて撮影を開始し、撮影した画像データをＬＡＮ１２０経由で画像処理装置１００に転送する。カメラ装置１１０は、トラッキングカメラ２０４の画像データも併せて転送する。送信された画像データは、画像データ格納部４０１に格納される。
【００３７】
ステップＳ５０２において画像時刻取得部４０２は、ユーザによって設定された画像時刻を取得する。画像時刻は、仮想視点画像生成の対象となる画像が撮影されている時刻である。画像時刻は、不図示のＵＩ画面などを通じてユーザから設定される。ステップＳ５０３において画像データ抽出部４０３は、画像時刻に対応する画像データを、画像データ格納部４０１から抽出する。ステップＳ５０３においてＣＰＵ１０１は、図３（ａ）のＧＵＩ画面３００を起動し、表示部１０５に表示する。起動直後はＣＧウィンドウ３１０には何も表示されていない。
【００３８】
ステップＳ５０５において２次元位置情報取得部４０５は、被写体の２次元位置情報を取得する。例えば、ステップＳ５０４で表示されているＧＵＩ画面３００の選手トラッキングボタン３２４がユーザによって押下される。選手トラッキングボタン３２４の押下に応じて、ＣＰＵ１０１は、表示部１０５に表示する画面を図３（ｂ）に示すＧＵＩ画面３５０に遷移させる。すなわち、ＣＰＵ１０１は、表示部１０５に、トラッキングウィンドウ３６０やトラッキングダイアログ３７０を含むＧＵＩ画面３５０を表示する。２次元位置情報取得部４０５は、画像データ抽出部４０３にて抽出された画像データ、すなわち、ステップＳ５０２で取得された画像時刻に含まれる全てのフレーム（画像データ）を取得する。そして、それらのフレーム（画像データ）において、フィールド面に沿った被写体２０２の被写体位置情報（２次元位置）を、トラッキングカメラ２０４の画像に基づいて取得する。本ステップにおいては、被写体位置情報として３次元の位置情報ではなく、２次元の位置情報を取得するので、高速に処理が実行可能である。本処理の詳細は後程詳述する。取得した被写体位置情報（２次元位置）は、記憶部１０３に保存される。
【００３９】
ステップＳ５０６においてＣＧシーン生成部４０７は、取得された被写体位置情報（２次元位置）と、ＣＧモデル格納部４０６に格納されている既存のＣＧモデルとを用いて、３次元のＣＧシーンを生成する。本処理の詳細も後程詳述する。
【００４０】
ステップＳ５０７において３次元位置情報取得部４０８は、被写体の中から特定の被写体（ボール）を抽出し、その特定の被写体の３次元位置を算出する。ボールは、競技中に地面ではなくフィールド上空に位置していることがある。したがって、３次元位置情報取得部４０８は、このような特定の被写体の３次元の被写体位置情報を取得する。これにより、ボールの位置取得精度が向上する。また、３次元位置を取得する処理対象をボールに絞り込むため、高速に処理が実行可能である。本処理の詳細も後程詳述する。
【００４１】
ステップＳ５０８において仮想カメラパス設定部４１１は、仮想カメラパス設定を行う。例えば、図３（ａ）のＣＧを表示する表示領域であるＣＧウィンドウ３１０に表示されているＣＧシーンにおいてユーザが、仮想カメラパスを指定する。例えば、ＣＧウィンドウ３１０に対するユーザのドラッグ操作またはタッチ操作を受け付け、これらの操作に対応する軌跡を仮想カメラパスとして指定する構成としてもよい。そして、仮想カメラパス設定ボタン３３１の押下に応じて、仮想カメラパス設定部４１１は、指定された仮想カメラパスを設定する。仮想カメラパス設定は３次元のＣＧシーン内で実施される。その手法は例えば、仮想カメラ位置を時間軸方向に何点かサンプリング設定し、その間をスプライン関数などで補間する方法を用いることができる。
【００４２】
ステップＳ５０９において仮想視点画像生成部４１２は、設定された仮想カメラパスに従った仮想視点画像を生成する。具体的には、ユーザによって図３（ａ）の仮想視点画像生成ボタン３２３が押下されると、仮想視点画像生成部４１２は、設定された仮想カメラパスに基づいて、仮想視点画像を生成する。仮想視点画像生成は、被写体の３次元形状に対して、仮想カメラから見た画像を公知のコンピュータグラフィックスの技術を用いて生成することができる。
【００４３】
以上説明した処理により、ユーザは、実際の画像の仮想視点画像を生成するための仮想カメラパスを指定する際に、ＣＧシーンの仮想視点画像を見て、所望の仮想視点画像が再現できるか否かを容易に判断することができる。
【００４４】
＜被写体位置情報（２次元位置）の取得処理＞
次に、ステップＳ５０４の被写体位置情報（２次元位置）の取得処理の詳細について、図６のフローチャートを用いて説明する。図６は、Ｓ５０４の処理過程を示したフローチャート図である。
【００４５】
ステップＳ６０１において画像変換部４０４は、画像データ抽出部４０３によって抽出された、トラッキングカメラ２０４の画像を取得する。例えば図３（ａ）の選手トラッキングボタン３２４が、ユーザによって押下されたタイミングで、画像の取得を実行する。取得された画像は、図３（ｂ）のトラッキングウィンドウ３６０に表示される。例えば、トラッキングウィンドウ３６０には、図７（ａ）のトラッキングカメラ画像７０１のように、トラッキングカメラ２０４で撮影され、指定された画像時刻のトラッキングカメラ画像７０１が表示される。
【００４６】
ステップＳ６０２では、画像変換部４０４は、フィールドのコーナー４点の位置情報を取得する。コーナー４点は、トラッキングカメラ画像を、フィールドの上から見た鳥瞰図画像に変換する際の、鳥瞰図画像の四隅の位置に対応することになる。コーナー４点の位置情報は、例えば、トラッキングウィンドウ３６０に表示されているトラッキングカメラ画像７０１を見たユーザが、フィールドのコーナー４点を指定することで取得される。コーナーは、図７（ａ）のコーナー７０５に示す位置であり、ユーザは、マウスやタッチ操作で指定すればよい。もちろん、ハフ変換などの直線抽出手法を用いて、コーナーの位置を検出してもよい。
【００４７】
ステップＳ６０３において画像変換部４０４は、トラッキングカメラ画像を射影変換し、フィールドを上から見た鳥瞰図画像を生成する。サッカーフィールドのサイズは規定されている。このため、コーナー４点の座標値を、そのまま物理的な位置座標（ワールド座標）に変換可能である。また、トラッキングカメラ２０４の焦点距離は既知である。焦点距離が既知の場合、フィールドを構成する四辺形の歪み角度から、トラッキングカメラ２０４の物理的な位置（ワールド座標）を算出できる。
【００４８】
以下では、トラッキングカメラ２０４の画像を「Ｉｍａｇｅ（Ｘ，Ｙ）」で表す。トラッキングカメラ画像に映っている被写体は、トラッキング画像上では２次元座標（スクリーン座標）上に位置しているが、物理的には、３次元座標（ワールド座標）上に位置していることになる。したがって、トラッキング画像Ｉｍａｇｅ（Ｘ,Ｙ）（２次元座標）は、式１に従った画像といえる。なお、Ｘ，Ｙはトラッキング画像の画素位置（２次元座標）を示す。  
Image(X,Y) = Screen( Proj * View * Pos(x,y,z) );    式１
ここで、
Ｐｏｓ（ｘ，ｙ，ｚ）  ：  被写体の三次元的な位置（３次元座標）
Ｖｉｅｗ  ：  視点変換行列（カメラの位置、方向を決定）
Ｐｒｏｊ  ：  ２次元射影行列（カメラの画角を決定）
Ｓｃｒｅｅｎ（）  ：  スクリーン座標変換関数
である。
【００４９】
また、鳥瞰図画像を「ＩｍａｇｅＶ（Ｘ,Ｙ）」で表す。鳥瞰図画像に映っている被写体も、鳥瞰図画像上ではトラッキング画像上では２次元座標（スクリーン座標）上に位置しているが、物理的には、３次元座標（ワールド座標）上に位置していることになる。したがって、鳥瞰図画像ＩｍａｇｅＶ（Ｘ,Ｙ）（２次元座標）は、式２に従った画像といえる。なお、Ｘ，Ｙは鳥瞰図画像の画素位置（２次元座標）を示す。  
ImageV(X,Y) = Screen( Proj * ViewV * Pos(x,y,z) );   式２
ここで、
Ｐｏｓ（ｘ，ｙ，ｚ）  ：  被写体の三次元的な位置
ＶｉｅｗＶ  ：  視点変換行列（カメラの位置、方向を決定）
Ｐｒｏｊ  ：  ２次元射影行列（カメラの画角を決定）
Ｓｃｒｅｅｎ（）  ：  スクリーン座標変換関数
である。
【００５０】
式１および式２を用いて、Ｐｏｓ（ｘ，ｙ，ｚ）を対応させると、Ｉｍａｇｅ（Ｘ，Ｙ）からＩｍａｇｅＶ（Ｘ，Ｙ）への射影変換を行うことができる。すなわち、トラッキングカメラ画像上のある位置の画素Ｉｍａｇｅ（Ｘ，Ｙ）（スクリーン座標）は、ワールド座標の第一の点Ｐｏｓ（ｘ，ｙ，ｚ）に、式１を用いて変換することができる。さらに、そのワールド座標系の第一の点Ｐｏｓ（ｘ，ｙ，ｚ）を、式２を用いて変換することで、トラッキング画像Ｉｍａｇｅ（Ｘ，Ｙ）を、鳥瞰図画像ＩｍａｇｅＶ（Ｘ，Ｙ）（スクリーン座標）に変換することができる。なお、本実施形態では、ワールド座標の位置Ｐｏｓ（ｘ，ｙ，ｚ）におけるｚ座標（高さを示す）は、フィールド面で固定される（０で固定される）。つまり、本実施形態では、被写体（例えば選手）の位置するｚ座標（高さ）を、所定の高さ（フィールド面）に固定した固定値として扱う。このように処理を行うことで、１台のトラッキングカメラの画像を用いて、鳥瞰図画像を生成することができる。
【００５１】
なお、前述したように、被写体のｚ座標を得るには、複数台のカメラを用いた三角測量等の方法があるが、データ量が増えることなどにより処理時間を要してしまう。本実施形態では、被写体は、フィールド面に固定されているものと扱い、１台のカメラの画像から鳥瞰図画像に変換している。鳥瞰図画像を生成することで、各被写体のフィールド面上における被写体位置情報（２次元位置）を取得することが可能となる。
【００５２】
画像変換部４０４は、上述した画像変換処理を行い、図７（ａ）のトラッキングカメラ画像７０１を、図７（ｂ）の鳥瞰図画像７０２に変換する。変換された鳥瞰図画像７０２は、図３（ｂ）のトラッキングウィンドウ３６０に表示される。
【００５３】
ステップＳ６０４において２次元位置情報取得部４０５は、ステップＳ６０３で生成された鳥瞰図画像７０２の全フレームにおいて画素単位で中間値を抽出し、抽出した中間値によって各画素が表現されている背景画像を生成する。この背景画像は、後述する被写体シルエット画像を生成するために用いられる。背景画像は、被写体が映っていない画像に相当する。
【００５４】
ステップＳ６０５において２次元位置情報取得部４０５は、被写体シルエット画像を生成する。具体的には、２次元位置情報取得部４０５は、ステップＳ６０３で生成された鳥瞰図画像７０２の全フレームにおいて、鳥瞰図画像７０２とステップＳ６０４で生成された背景画像との差分を画素単位で行う。そして、差分の画素値によって各画素が表現されている被写体シルエット画像を生成する。図７（ｃ）および図７（ｄ）は、フレーム（時刻）の異なるシルエット画像７０３および７０４を、それぞれ示している。シルエット画像７０３および７０４の白い領域が、被写体（選手やボール）のシルエットに相当する領域であり、被写体のみが抽出されていることがわかる。
【００５５】
ステップＳ６０６において２次元位置情報取得部４０５は、各フレームのシルエット画像の被写体領域をラベリングする。例えば、２次元位置情報取得部４０５は、孤立した被写体シルエット領域に対して、固有のラベル番号を付与する。図７（ｃ）および図７（ｄ）では、被写体シルエットに対して、ラベルＭ１からＭ４が付与されていることを示している。ステップＳ６０６では、２次元位置情報取得部４０５は、各フレーム単位で、画面の左上から右下にかけて順番に被写体領域にラベルを付与している。
【００５６】
ステップＳ６０７において２次元位置情報取得部４０５は、フレーム単位で設定した被写体とラベル番号とを、全フレームにおいて整合性を保つように調整する。先のステップＳ６０６では、他のフレームとの関係を考慮せず、単純にフレーム内での位置に応じてラベル番号を付与している。ステップＳ６０７では、他のフレームとの関係を考慮し、同じ被写体に対して全フレームを通じて同じラベル番号が付与されるように調整する処理である。例えば、フレームｔ０、ｔ１において、ある被写体Ｘに付与したラベル番号がずれていた場合、被写体Ｘに付与されるラベル番号が同一のラベル番号になるように各フレームで付与されているラベル番号を変更する。具体的には、フレームｔ０におけるラベルＭＸ１の被写体領域の位置が、フレームｔ１におけるラベルＭＸ２の被写体領域の位置に近い場合、フレームｔ１のラベルＭＸ２を、ラベルＭＸ１に書き換える処理が行われる。なお、ラベリングの調整は、シルエット画像のほかに、鳥瞰図画像を用いて行なってもよい。例えば、被写体の顔や背番号などを画像認識して用いてラベリングを調整してもよい。以上の処理により、ある特定の被写体Ｘの、鳥瞰図画像７０２の全フレームにおける位置を特定することができる。
【００５７】
ステップＳ６０８において２次元位置情報取得部４０５は、被写体に対して属性を追加する。属性とは、選手のチーム、キーパー、審判、ボールなどの付加情報を意味する。ユーザの指定に基づいて被写体に対して属性を追加する例を、図３（ｂ）を用いて説明する。図３（ｂ）のＧＵＩ画面３５０のトラッキングウィンドウ３６０には、ラベル番号が付与された被写体Ｍ１、Ｍ２、Ｍ３が表示されている。トラッキングウィンドウ３６０に表示されている画像は、被写体シルエットおよびラベル番号を鳥瞰図画像に重畳した画像である。ここで、例えば被写体Ｍ１をユーザがマウスでクリック、またはタッチすると、トラッキングダイアログ３７０に被写体Ｍ１の属性を指定するためのコンボボックス３７１が表示される。ユーザが、コンボボックス３７１の中から属性を選択する。本実施形態は、サッカーの場面を想定しており、属性としては、チームＡのフィールド選手、チームＢのフィールド選手，チームＡのゴールキーパー、チームＢのゴールキーパー、審判、およびボールのいずれかが付与されることになる。属性が選択されると、ＣＧシーン生成部４０７が、ＣＧモデル格納部４０６から属性に合わせたＣＧモデルを取得してプレビューする。ＣＧモデルについては、後述する。２次元位置情報取得部４０５は、選択された属性を被写体Ｍ１に付与する。この一連の処理を全被写体に実施する。なお、ここではユーザの指定に基づいて属性付与が行われる形態を例に挙げて説明したが、属性付与は機械学習を用いた画像認識を用いることで自動処理することも可能である。また、ボールが円形もしくは楕円形である特徴を用いることにより、ボールの属性を自動的に付与することもできる。
【００５８】
ステップＳ６０９において２次元位置情報取得部４０５は、ラベル番号毎に、被写体の２次元位置を算出する。具体的には、各被写体シルエットの所定方向（Ｙ座標）の最小値のＸＹ座標を被写体位置とする。所定方向の最小値のＸＹ座標は、各被写体の足元（Ｙ座標の最小値）のＸＹ座標に相当する。被写体シルエットの足元のＸＹ座標を被写体位置とすることで、被写体の姿勢に影響を受けにくい被写体位置情報を取得できる。なお、ＸＹ座標は図７（ｃ）および（ｄ）のシルエット画像７０３、７０４に示す軸に沿って定義する。このようにして、各被写体について全対象フレームを通じた被写体位置情報（２次元位置）が取得される。全対象フレームを通じた被写体位置情報のことを、経時的な位置情報を示すトラッキングデータともいう。その後、図３（ｂ）のＧＵＩ画面３５０においてユーザがトラッキングダイアログ３７０のトラッキング終了ボタン３７２を押下する。すると、２次元位置情報取得部４０５は、被写体の経時的な２次元位置の情報を記録したトラッキングデータを記憶部１０３に保存する。ＣＰＵ１０１はまた、図３（ａ）に示すＧＵＩ画面３００に表示画面を遷移させ、一連の処理を終了する。このとき、ＣＧウィンドウ３１０は空白のままである。なお、図６の処理においては、全被写体に対して一律に処理を実施しているが、属性を用いてトラッキングデータを生成する対象を限定してもよい。例えば、仮想視点画像において重要な、ボール属性の被写体の周辺に位置する被写体のみをトラッキング対象とすることで、より処理を効率的に実施することも可能である。
【００５９】
以上が、図５のステップＳ５０５の被写体の２次元位置を取得する処理の詳細である。次に、図５のステップＳ５０６のＣＧシーンの生成処理の詳細について、図８を用いて説明する。
【００６０】
＜ＣＧシーンの生成処理＞
図８は、図５のステップＳ５０６のＣＧシーンの生成処理の詳細を示したフローチャート図である。ステップＳ８０１においてＣＧシーン生成部４０７は、ユーザによって図３（ａ）のＣＧモデル読み込みボタン３２１が押下されたことを検知し、フィールドおよび被写体のＣＧモデルをそれぞれ読み込む。
【００６１】
図９は、ＣＧモデルの例を示す図である。フィールドモデル９０７は、ポリゴンから構成されており、カメラ群１１１の撮影対象領域であるフィールドのラインなどがテクスチャとして表現されている。被写体モデルは図９に示すように、チームＡモデル９０１、チームＢモデル９０２、キーパーモデル（チームＡ）９０３、キーパーモデル（チームＢ）９０４、審判モデル９０５、ボールモデル９０６が存在する。また、全モデルがポリゴンから構成されており、ユニフォームやボールの模様がテクスチャとして表現されている。これらのモデルは、仮想カメラ経路を設定する際に、ユーザが混乱しないよう、ユニフォームの種類と同数のモデルを準備しておく。もちろん、背番号毎に用意するなど、種類が多い程望ましい。例えば、サッカーの場合、チームＡモデル９０１、チームＢモデル９０２は、フィールドプレイヤーの１０人分をそれぞれのチームで用意すると良い。
【００６２】
ステップＳ８０２においてＣＧシーン生成部４０７は、ユーザによって図３（ａ）のトラッキングデータ適用ボタン３２２が押下されたことを検知し、被写体の２次元位置を記録したトラッキングデータを読み込む。
【００６３】
ステップＳ８０３においてＣＧシーン生成部４０７は、読み込んだトラッキングデータを参照して、属性に応じたモデルを複製する。例えば、ＣＧシーン生成部４０７は、チームＡの属性を持つ被写体数ｎＡをカウントする。そして、チームＡモデル９０１をｎＡ個分複製する。同様に、チームＢの属性を持つ被写体数ｎＢをカウントし、チームＢモデル９０２をｎＢ個分複製する。また、審判の属性を持つ被写体数ｎＳをカウントし、審判モデル９０５をｎＳ個分複製する。なお、ここでは、各チームおよび審判のＣＧモデルは同じモデルとして示しているが、被写体ごとにＣＧモデルが用意されている場合には、各被写体のモデルを、対応する分の数だけ複製すればよい。また、キーパーモデルについても同様に複製する。
【００６４】
ステップＳ８０４においてＣＧシーン生成部４０７は、フィールドモデル９０７を除く全ＣＧモデルに対して、ステップＳ８０２で読み込んだトラッキングデータに基づいて２次元位置情報を設定する。図９においては、各モデルが必要分複製され、フィールドモデル９０７上に配置されていることが確認できる。また、トラッキングデータは、フレーム単位で記録されている２次元位置情報であるので、フレームが進むごとに被写体が移動するＣＧシーンが構築できる。
【００６５】
ステップＳ８０５において表示制御部４１０は、図３（ａ）のＣＧウィンドウ３１０に、生成されたＣＧシーンを表示する。以上の処理により、ＣＧシーンの生成処理が終了する。即ち、表示制御部４１０は、カメラ群１１１の撮影対象領域を示す画像であるフィールドモデル９０７上において、取得された位置情報に対応する位置に、被写体である選手等のオブジェクトを示す情報であるＣＧモデルを重畳して表示させる。
【００６６】
なお、このとき、全被写体の高さ情報（Ｚ座標値）は０に設定されている。このため、フィールドに接地していないことがあるボールに対しては、被写体位置情報が正しくない可能性がある。このため、生成されたＣＧシーンにおいて、ボールの位置が正しくない可能性がある。そこで、引き続き図５のステップＳ５０７において特定の被写体（ボール）の被写体位置情報（３次元情報）の取得処理が行われる。
【００６７】
＜特定の被写体の被写体位置情報（３次元情報）の取得処理＞
図１０は、図５のステップＳ５０７のボールの３次元位置取得処理の詳細を示したフローチャート図である。この処理は、図８の処理において、誤って設定された可能性がある特定の被写体（ボール）の位置情報を修正する処理に相当する。なお、ボールが空中に存在しないような場面について仮想カメラパスを設定することもある。例えば、ドリブルの場面を再現したい場合などである。このように、ボールの３次元位置の取得が明らかに必要ない場合も想定される。そこで、本実施形態では、必要に応じてユーザが、図３（ａ）のカメラパス設定ダイアログ３３０のボール高さ設定ボタン３３２を押下することにより特定の被写体の３次元位置情報を取得する処理を開始する。なお、このようにユーザによる指示に拠らずに、図１０の処理が開始されてもよい。
【００６８】
ステップＳ１００１において３次元位置情報取得部４０８は、鳥瞰図画像における処理対象のフレームにおけるボールのシルエット領域を取得する。ステップＳ１００２において３次元位置情報取得部４０８は、ボールのシルエット領域の面積（画素数）Ｓ１を算出する。ステップＳ１００３において３次元位置情報取得部４０８は、３次元空間内でのトラッキングカメラ２０４の位置とボールのシルエットの中心座標とを結ぶ直線Ｌ（図１１（ａ）参照）を算出する。図１１は、３次元位置情報の取得処理の概要を説明する図である。図１１（ａ）に示すように、ボールの正しい位置は、この直線Ｌ上のいずれかに存在する。なお、トラッキングカメラ２０４の３次元空間における位置や撮影パラメータは既知であり、これらの既知の情報とシルエットの中心座標とを用いて直線Ｌは算出される。
【００６９】
ここで、トラッキングカメラ２０４とボールとの間の距離と、ボールのシルエット領域との面積は反比例関係にある。図１１（ａ）と図１１（ｂ）は、直線Ｌ上でのボール位置を異ならせた場合の例を示している。図１１（ａ）と図１１（ｂ）とにおけるトラッキングカメラ２０４とボールと間の距離を比較すると、図１１（ｂ）の方が長い。このため、図１１（ｂ）の方が、図１１（ａ）に比べて鳥瞰図画像におけるボールのシルエット領域は小さくなっていることがわかる。本実施形態では、このようなボールのシルエット領域の大きさを用いてボールの３次元位置情報が取得されることになる。
【００７０】
ステップＳ１００４において３次元位置情報取得部４０８は、ステップＳ５０６において生成したＣＧシーンにおいて、トラッキングカメラ２０４と同じ３次元位置に、ＣＧトラッキングカメラ１１０１を配置する。このとき、トラッキングカメラ２０４とＣＧトラッキングカメラ１１０１の撮影パラメータ（焦点距離など）は共通化しておく。
【００７１】
ステップＳ１００５において３次元位置情報取得部４０８は、ＣＧシーン中に直線Ｌを設定する。そして、直線Ｌ上にボールモデル９０６を配置する。つまり、トラッキングカメラ２０４で撮影した画像と同じ構図の画像を、ＣＧシーンを用いて再現する処理が行われる。そして、再現されたＣＧシーンにおけるボールのシルエットの面積が、実画像を変換した鳥瞰図画像のボールのシルエットと等しくなるような位置が、ボールの３次元位置であるものとして推定されることになる。本実施形態では、ボールモデル９０６の配置位置をずらしながら適切なボールの位置を求める処理を行う。ステップＳ１００５では、ボールモデル９０６はＣＧトラッキングカメラ１１０１に近い位置に配置される。
【００７２】
ステップＳ１００６において修正部４０９は、ＣＧトラッキングカメラ１１０１から見たＣＧ画像をレンダリングする。ステップＳ１００７において修正部４０９は、レンダリングされたＣＧ画像を射影変換し、ＣＧ鳥瞰図画像を生成する。ＣＧ鳥瞰図画像の生成は、前述した鳥瞰図画像の生成と同様の方法で行うことができる。
【００７３】
ステップＳ１００８において３次元位置情報取得部４０８は、ＣＧ鳥瞰図画像におけるボールモデルのシルエット面積（画素数）Ｓ２を算出する。ＣＧ鳥瞰図画像におけるシルエット画像の生成についても、前述した鳥瞰図画像からシルエット画像を生成する方法と同様の方法で行うことができる。ステップＳ１００９において３次元位置情報取得部４０８は、面積Ｓ１と面積Ｓ２との差分を算出し、差分値が、所定の閾値未満であるかを判定する。差分値が、所定の閾値未満であれば、シルエットが一致したと見なして処理対象のフレームに対する一連の処理を終了し、ステップＳ１０１１に進む。差分値が閾値以上であれば、ステップＳ１０１０に進む。ステップＳ１０１０において修正部４０９は、ボールモデル９０６の位置を更新し、ステップＳ１００６に進む。
【００７４】
ステップＳ１００５からＳ１０１０の概要を、図１０（ｃ）を用いて説明する。ＣＧシーン中の直線Ｌ上にボールモデルを配置し、ＣＧ鳥瞰図画像を生成することで、ＣＧシーンにおけるボールモデル９０６のシルエットと実空間におけるボールのシルエットが比較可能となる。そして、双方のサイズが一致した場合、その際のボールモデル９０６の３次元位置が、実空間におけるボールの３次元位置となる。ステップＳ１０１０においては、ボールモデル９０６の３次元座標値をＣＧトラッキングカメラとの距離が大きくなるよう、直線Ｌ上でボールモデル９０６の位置が調整される。
【００７５】
ステップＳ１０１１では、全フレームの処理が終了したかが判定される。全フレームの処理が終了していない場合、ステップＳ１０１２に進み、未処理のフレームを処理対象のフレームと設定し、ステップＳ１００１に戻り、処理を繰り返す。以上の処理により、ボールの正確な３次元位置が設定可能となる。
【００７６】
その後、前述したように、特定の被写体（ボール）の被写体位置情報を修正したＣＧシーンが生成される。また、生成されたＣＧシーンに基づいて仮想カメラパスの設定などが行われることになる。
【００７７】
以上説明したように、本実施形態においては、３次元の被写体位置情報を取得する対象を特定の被写体に絞り込むことで、１台のカメラ画像から、被写体位置情報を高精度かつ短時間に取得することが可能となる。また、ＣＧにより選手である被写体の位置をフィールドと対応付けて示すため、実空間での被写体の位置をユーザが特定可能にすることができる。したがって、ユーザは、所望とする仮想視点画像を得るための仮想カメラパスを容易に設定することができる。
【００７８】
＜＜実施形態２＞＞
本実施形態では、被写体位置の取得に際して、ボールが楕円状のラグビー競技を題材として説明を行う。なお、処理の大半は実施形態１と共通であるため、重複する部分については説明を省略する。
【００７９】
図１２は、図５のステップＳ５０６の３次元位置情報の取得処理の詳細を示したフローチャート図である。ステップＳ１２０２、Ｓ１２０８、Ｓ１２０９以外は図１０と同じ処理であるため、説明を省略する。ステップＳ１２０２において３次元位置情報取得部４０８は、ボールのシルエット領域の面積（画素数）Ｓ１と離心率ｒ１とを算出する。離心率は楕円の長軸ａと短軸ｂの比率を表すもので、ボールの回転方向が同じならば一定の値となる。ボールが楕円状の場合、同じ３次元位置にボールがあったとしても、ボールの回転方向に応じてシルエット領域の面積が異なる。そこで、本実施形態では、離心率を考慮した処理を行う。離心率は、以下の式３で算出できる。
【００８０】
【数１】
2019057070.tif 000003
【００８１】
ステップＳ１２０８において３次元位置情報取得部４０８は、ＣＧ鳥瞰図画像におけるボールモデルのシルエット面積（画素数）Ｓ２と離心率ｒ２とを算出する。ステップＳ１２０９において修正部４０９は、ボールモデルの位置を変えずに回転のみを行い、ｒ１とｒ２が等しくまで回転を繰り返す。これにより、ボールモデルと実空間のボールの回転方向が一致する。そして、回転方向を一致させた状態で、ステップＳ１２１０においてシルエット面積の比較が行われることになる。このように、本実施形態の処理によれば、ラグビーのように、楕円状のボールに対しても正確な３次元位置が設定可能となる。なお、この例では離心率を基に回転方向を決定する手法に関して説明しているが、楕円形状を表すパラメータであれば何でも構わない。
【００８２】
以上説明したように、回転方向を考慮することにより、楕円状のボールを用いる競技においても、１台のカメラ画像から、仮想視点画像生成に特化した被写体位置情報を高精度かつ短時間に取得することができる。
【００８３】
＜＜その他の実施形態＞＞
以上説明した実施形態では、サッカー競技とラグビー競技とを題材に説明したが、これらに限られるものではない。フィールド上において任意の球技を行う形態に本発明を適用することは可能である。また、球技だけでなく、スケート、相撲、コンサートなど様々な撮影対象にも本発明を適用することは可能である。また、３次元位置情報を取得する被写体は、円状（球状）または楕円状の被写体の形状を例に挙げて説明したが、これに限られない。例えば、バドミントンのシャトルのように、特定の形状の被写体を、３次元位置情報を取得する対象の被写体として用いることができる。
【００８４】
また、ＣＧウィンドウ３１０において、選手ＣＧモデル３１２に個人を識別するための背番号や顔画像をテクスチャとしてマッピングしてもよい。  本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８５】
トラッキングカメラ  ２０４
画像変換部  ４０４
２次元位置情報取得部  ４０５
３次元位置情報取得部  ４０８
【図１】
2019057070.tif 000004
【図２】
2019057070.tif 000005
【図３】
2019057070.tif 000006
【図４】
2019057070.tif 000007
【図５】
2019057070.tif 000008
【図６】
2019057070.tif 000009
【図７】
2019057070.tif 000010
【図８】
2019057070.tif 000011
【図９】
2019057070.tif 000012
【図１０】
2019057070.tif 000013
【図１１】
2019057070.tif 000014
【図１２】
2019057070.tif 000015