(57)【特許請求の範囲】
【請求項１】
仮想カメラを制御するコンピューター実施方法であって、
シーン内の少なくとも１つの物体のモーションデータを検出することと、
前記シーン内の前記少なくとも１つの物体のそれぞれの前記モーションデータに基づいて、所定のイベントタイプを有するイベントの位置を求めることと、
前記仮想カメラが前記イベントをキャプチャーするように、前記イベントの発生前に、前記求められた位置に従って前記仮想カメラを制御することと、
を含む、コンピューター実施方法。
【請求項２】
前記モーションデータは、第１の物体及び第２の物体について検出される、請求項１に記載の方法。
【請求項３】
前記所定のタイプを有する前記イベントの前記位置は、前記第１の物体及び前記第２の物体の前記モーションデータから求められる組み合わされたモーションデータに基づいて求められる、請求項２に記載の方法。
【請求項４】
前記求められた位置に従って制御される前記仮想カメラは、視野内で、前記求められた位置において前記シーン内の前記少なくとも１つの物体をキャプチャーする、請求項１に記載の方法。
【請求項５】
前記少なくとも１つの物体の形状エンベロープを求めることを更に含み、該形状エンベロープは、前記求められた位置を含む、請求項１に記載の方法。
【請求項６】
前記形状エンベロープは、前記少なくとも１つの物体によって占有されるエリアのサイズ及び形状に基づいて求められる、請求項５に記載の方法。
【請求項７】
前記仮想カメラは、前記求められた形状エンベロープ及び前記検出されたモーションデータに基づいて制御される、請求項５に記載の方法。
【請求項８】
前記求められた形状エンベロープに基づいて、前記仮想カメラの以前に求められた視野点から前記仮想カメラの視野点への遷移を求めることを更に含む、請求項５に記載の方法。
【請求項９】
前記求められた位置と、前記第１の物体及び前記第２の物体のうちの少なくとも一方との間の距離に基づいて、前記仮想カメラの視野点を求めることを更に含む、請求項２に記載の方法。
【請求項１０】
前記仮想カメラは、前記第１の物体及び前記第２の物体の前記モーションデータの組み合わせに基づいて制御される、請求項２に記載の方法。
【請求項１１】
前記仮想カメラの視野点は、前記仮想カメラの以前に求められた視野点に基づいて求められる、請求項１に記載の方法。
【請求項１２】
前記シーン内の前記少なくとも１つの物体のモーションデータに基づいて、前記仮想カメラの以前に求められた視野点から前記仮想カメラの視野点への遷移を求めることを更に含む、請求項１に記載の方法。
【請求項１３】
前記仮想カメラは、オクルージョンに基づいて制御される、請求項１に記載の方法。
【請求項１４】
前記仮想カメラは、インペインティングを必要とする最大のエリアの幅に基づいて構成される、請求項１に記載の方法。
【請求項１５】
前記第１の物体及び前記第２の物体の組み合わされた軌道に沿って物体を追跡する前記仮想カメラの時間的モーションを求めることを更に含む、請求項２に記載の方法。
【請求項１６】
前記仮想カメラの位置及び向きのうちの少なくとも一方を変更することを更に含む、請求項１に記載の方法。
【請求項１７】
前記仮想カメラが該仮想カメラの視野内で前記少なくとも１つの物体をキャプチャーすることができる領域を求めることを更に含む、請求項１に記載の方法。
【請求項１８】
前記領域は、２つの円弧セグメントによって画定される、請求項１７に記載の方法。
【請求項１９】
前記領域は、楕円セグメントによって画定される、請求項１７に記載の方法。
【請求項２０】
仮想カメラを制御する装置であって、
シーン内の少なくとも１つの物体のモーションデータを検出する手段と、
前記シーン内の前記少なくとも１つの物体のそれぞれの前記モーションデータに基づいて、所定のイベントタイプを有するイベントの位置を求める手段と、
前記仮想カメラが前記イベントをキャプチャーするように、前記イベントの発生前に、前記求められた位置に従って前記仮想カメラを制御する手段と、
を備える、装置。
【請求項２１】
仮想カメラを制御するシステムであって、
データ及びコンピュータープログラムを記憶するメモリと、
前記コンピュータープログラムを実行する、前記メモリに結合されたプロセッサであって、該コンピュータープログラムは、
シーン内の少なくとも１つの物体のモーションデータを検出する命令と、
前記シーン内の前記少なくとも１つの物体のそれぞれの前記モーションデータに基づいて、所定のイベントタイプを有するイベントの位置を求める命令と、
前記仮想カメラが前記イベントをキャプチャーするように、前記イベントの発生前に、前記求められた位置に従って前記仮想カメラを制御する命令と、
を含む、プロセッサと、
を備える、システム。
【請求項２２】
仮想カメラを制御するプログラムが記憶された非一時的コンピューター可読媒体であっ
て、前記プログラムは、
シーン内の少なくとも１つの物体のモーションデータを検出するコードと、
前記シーン内の前記少なくとも１つの物体のそれぞれの前記モーションデータに基づいて、所定のイベントタイプを有するイベントの位置を求めるコードと、
前記仮想カメラが前記イベントをキャプチャーするように、前記イベントの発生前に、前記求められた位置に従って前記仮想カメラを制御するコードと、
を含む、非一時的コンピューター可読媒体。
【請求項２３】
仮想カメラを構成するコンピューター実施方法であって、
シーン内の第１の物体及び第２の物体を検出することであって、前記各物体は、位置及び少なくとも１つのモーション属性を有することと、
前記第１の物体及び前記第２の物体の前記位置及び前記モーション属性に基づいて相互作用タイミングを求めることと、
前記仮想カメラの構成された視野点に関して、前記求められた相互作用タイミングにおける前記第１の物体及び前記第２の物体の位置に基づいて前記仮想カメラを構成することと、
を含む、コンピューター実施方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視点合成の分野に関し、特に、仮想カメラの位置の選択に関する。また、本発明は、仮想カメラを構成する方法、システム及び装置、並びに、仮想カメラを構成するコンピュータープログラムが記録されたコンピューター可読媒体を含むコンピュータープログラム製品に関する。
【背景技術】
【０００２】
画像ベースレンダリングによると、カメラ画像を収集したものから仮想視野点の画像の合成が可能になる。カメラの視野点（point of view）は、「ビューポイント」とも呼ばれる場合がある。例えば、被写体が、環状に並んだカメラによって取り囲まれているとき、カメラ構成及びシーンの十分な知識がある場合に、（実際のカメラの）キャプチャーされたビューの間にある位置に対応する被写体の新たな（仮想カメラの）ビューを、キャプチャーされたビューから合成することができることが知られている。
【０００３】
近年、任意の視点を合成する機能が、視聴者がキャプチャーシステムの制約内で自身の好みにカメラ視点を能動的に調整することができる「自由視点」ビデオを目的として推進されている。或いは、ビデオ制作者が、自由視点技術を用いて、受動的な放送視聴者に「最適」な視点を構築する場合もある。後者の場合、かなりの柔軟性が制作者に与えられ、そのため、特にスポーツ等のライブイベントの最適な視点のタイムリーな生成は、利用可能な可能性の範囲が広いという理由のみから、困難となり得る。
【０００４】
視点決定システムの幾つかの例では、競技場内の被写体は、場合によっては、被写体の位置についてのリアルタイム情報を提供するウェアラブル追跡デバイスを用いて特定及び追跡される。提供された情報は、被写体の他の属性（例えば、体肢の相対位置、身体の重心等のような複合知識を含む）と組み合わせて用いられ、被写体にテザーされ、被写体をフレーミングする仮想カメラが作成される。そのような視点決定システムは、追跡カメラを作成することができるが、被写体、又は２つ以上の被写体を含む他のイベントの間に相互作用が存在する場合に、視点決定システムは、放送品質のフッテージ（footage）を生成することができない。
【０００５】
適切な合成視点を自動的に生成することが可能な方法及びシステムが必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、既存の構成の１つ以上の不利点を実質的に克服又は少なくとも改善することである。
【課題を解決するための手段】
【０００７】
相互作用に関与する被写体の放送に適したフレーミングをもたらす合成制約（compositional constraints）と組み合わせた相互作用の予測に基づいて仮想カメラの位置を求めることによって、上記問題に対処しようと試みる構成が開示される。予測を用いることによって、相互作用の平滑なカバレッジ（coverage）を実現することができるようにカメラの位置を早期に求めることが可能になる。相互作用が生じない場合には、仮想カメラからのレンダリングは終了又は廃棄することができるので、そのことは重要ではない。新規な合成ルール（composition rules）を用いることによって、一般の受動的な視聴者による視聴に魅力的で快適なフレーミングされたコンテンツの生成が可能になる。
【０００８】
開示された構成は、一組の相互作用する行為主体を伴う短い持続時間のイベントのビデオカバレッジの生成に用いることによく適している。イベントは、スポーツイベントにおいて一般的なタックル及び同様の相互作用等の所定のタイプのイベントを含むことができる。そのような相互作用は、チームスポーツ及びマルチプレーヤースポーツを含む広範なクラスのイベントにおいて発生する。
【０００９】
本開示の１つの態様によれば、仮想カメラを制御するコンピューター実施方法であって、
シーン内の少なくとも１つの物体のモーションデータを検出することと、
シーン内の少なくとも１つの物体のそれぞれのモーションデータに基づいて、所定のイベントタイプを有するイベントの位置を求めることと、
仮想カメラがイベントをキャプチャーするように、イベントの発生前に、求められた位置に従って仮想カメラを制御することと、
を含む、コンピューター実施方法が提供される。
【００１０】
本開示の別の態様によれば、仮想カメラを制御する装置であって、
シーン内の少なくとも１つの物体のモーションデータを検出する手段と、
シーン内の少なくとも１つの物体のそれぞれのモーションデータに基づいて、所定のイベントタイプを有するイベントの位置を求める手段と、
仮想カメラがイベントをキャプチャーするように、イベントの発生前に、求められた位置に従って仮想カメラを制御する手段と、
を備える、装置が提供される。
【００１１】
本開示の更に別の態様によれば、仮想カメラを制御するシステムであって、
データ及びコンピュータープログラムを記憶するメモリと、
コンピュータープログラムを実行する、メモリに結合されたプロセッサであって、コンピュータープログラムは、
シーン内の少なくとも１つの物体のモーションデータを検出する命令と、
シーン内の少なくとも１つの物体のそれぞれのモーションデータに基づいて、所定のイベントタイプを有するイベントの位置を求める命令と、
仮想カメラがイベントをキャプチャーするように、イベントの発生前に、求められた位置に従って仮想カメラを制御する命令と、
を含む、プロセッサと、
を備える、システムが提供される。
【００１２】
本開示の更に別の態様によれば、仮想カメラを制御するプログラムが記憶された非一時的コンピューター可読媒体であって、当該プログラムは、
シーン内の少なくとも１つの物体のモーションデータを検出するコードと、
シーン内の少なくとも１つの物体のそれぞれのモーションデータに基づいて、所定のイベントタイプを有するイベントの位置を求めるコードと、
仮想カメラがイベントをキャプチャーするように、イベントの発生前に、求められた位置に従って仮想カメラを制御するコードと、
を含む、非一時的コンピューター可読媒体が提供される。
【００１３】
本開示の更に別の態様によれば、仮想カメラを構成するコンピューター実施方法であって、当該方法は、
シーン内の第１の物体及び第２の物体を検出することであって、各当該物体は、位置及び少なくとも１つのモーション属性を有することと、
第１の物体及び第２の物体の位置及びモーション属性に基づいてシーン内の相互作用点を求めることと、
仮想カメラの構成された視野点に関して、求められた相互作用点における第１の物体及び第２の物体の位置に基づいて仮想カメラを構成することと、
を含む、コンピューター実施方法が提供される。
【００１４】
他の態様も開示される。
【００１５】
次に、本発明の１つ以上の実施形態を以下の図面を参照して説明する。
【図面の簡単な説明】
【００１６】
【図１】データ処理アーキテクチャの概略ブロック図である。
【図２】スポーツイベントの一例示のキャプチャーされたフレームを示す図である。
【図３】仮想カメラの位置を求める方法を示す概略フロー図である。
【図４】図３の方法において用いられるような粗いカメラ位置を求める方法を示す概略フロー図である。
【図５】カメラ座標を生成する方法を示す概略フロー図である。
【図６】図６に示す速度で移動する２人の敵対するプレーヤーの上面図である。
【図７Ａ】ボールに接近している２人の敵対するプレーヤーを含むシーンの第１のフレーミングを示す図である。
【図７Ｂ】ボールに接近している２人の敵対するプレーヤーを含むシーンの第２のフレーミングを示す図である。
【図８Ａ】記載の構成を実施することができる汎用コンピューターシステムの概略ブロック図である。
【図８Ｂ】記載の構成を実施することができる汎用コンピューターシステムの概略ブロック図である。
【発明を実施するための形態】
【００１７】
添付図面のうちの任意の１つ以上において、同じ参照符号を有するステップ及び／又は特徴を参照する場合、それらのステップ及び／又は特徴は、別段の意図が明らかにされていない限り、本明細書において同じ機能（複数の場合もある）又は動作（複数の場合もある）を有する。
【００１８】
本明細書に記載の構成は、例えば、図１に示すようなスポーツ競技場又は同様のパフォーマンス競技場の状況における使用に適合されている。図１に見られるように、競技場１１０は、ほぼ長方形、長円形又は円形の競技フィールドが中央にあり、１つ以上の環状に並んだカメラ１２０Ａ〜１２０Ｘが競技場１１０を取り囲むことが可能になっている。図１に見られるように、競技場１１０は、単一の環状に並んだカメラ１２０Ａ〜１２０Ｘを備える。カメラ１２０Ａ〜１２０Ｘのそれぞれは、競技場１１０に対してそれぞれの所定の位置に物理的に配置されている。競技場１１０は、図１の例では、第１のチーム（例えば２２０）及び第２のチーム（例えば２３０）からのプレーヤーと、ボール２４０とを収容する。図１の例では、プレーヤー２２０は第１の物体によって表すことができ、プレーヤー２３０は第２の物体によって表すことができ、ボール２４０は第３の物体によって表すことができる。
【００１９】
図１に示す環状に並んだカメラのカメラ１２０Ａ〜１２０Ｘは、競技場１１０によって画定された競技フィールドにおける全ての点が、多数の視野点（又は視点）から同時にキャプチャーされるように、同じ時点にフレームをキャプチャーするよう同期されている。
【００２０】
幾つかの変形形態では、図１に示すような環状に並んだカメラ全てが用いられるわけではなく、逆に、環状に並んだカメラの一部のサブセット（複数の場合もある）が用いられる場合がある。図１の環状に並んだカメラの一部のサブセットが用いられる構成は、幾つかの特定の視野点（又は視点）が事前に不要であると予め分かっているときに有利であり得る。
【００２１】
カメラ１２０Ａ等のカメラによってキャプチャーされたビデオフレームは、ビデオ処理を実行するように構成された処理ユニット８０５（図８Ａ及び図８Ｂ参照）にネットワーク接続１３０を介して利用可能になる前に、カメラ１２０Ａの近くで処理され、一時的に記憶される。図８Ａに見られるように、処理ユニット８０５は、コンピューターモジュール８０１内に構成される。ただし、代替の構成では、分離したビデオ処理ユニットを用いて、記載の構成を実施することができる。
【００２２】
処理ユニット８０５は、競技場１１０内における仮想カメラの位置を指定する制御入力をコントローラー１８０から受信する。処理ユニット８０５は、競技場１１０を取り囲むカメラ１２０Ａ〜１２０Ｘからの、処理ユニット８０５に利用可能なビデオストリームに基づいて、指定されたカメラ視野点（又は視点）１９０の画像を合成するように構成することができる。仮想カメラ位置の入力は、人間の仮想カメラオペレーターが生成することができ、ジョイスティック、マウス８０３（図８Ａ参照）、又は複数の入力構成要素を備える専用コントローラーを含む同様のコントローラー等のユーザーインターフェースデバイスからの入力に基づくことができる。代替的に、カメラ位置は、ゲームプレーの解析に基づいて完全自動で生成することができる。カメラの位置決めの幾つかの態様が人間のオペレーターによって指示され、それ以外が自動化アルゴリズムによって指示されるハイブリッド制御構成も可能である。例えば、粗い位置決めは、人間のオペレーターが実行することができ、安定化及び経路平滑化を含む微細な位置決めは、自動化アルゴリズムが実行することができる。
【００２３】
処理ユニット８０５は、任意の適した画像ベースレンダリング方法を用いてフレーム合成を実現するように構成することができる。画像ベースレンダリング方法は、既知の幾何学的配置の一組のカメラからのピクセルデータをサンプリングすることと、サンプリングされたピクセルデータを合成されたフレームに組み合わせることとに基づくことができる。要求されたフレームのサンプルベースレンダリングに加えて、処理ユニット８０５は、サンプリングの不足をカバーし、高品質の視覚的外観のフレームを作成するのに必要とされる領域の合成、３Ｄモデリング、インペインティング又は補間を行うように更に構成することができる。カメラ位置制御信号を生成するデバイスが、処理ユニット８０５の実用的限界を認識することができるように、処理ユニット８０５は、フレーム品質又は要求された視点のカメラカバレッジの完全性の形でフィードバックを提供するように構成することもできる。処理ユニット８０５によって生成されたビデオストリーム１９０は、その後、ビデオストリーム１９０を合わせて編集して放送ビデオを形成することができる制作デスク（図示せず）に提供することができる。代替的に、ビデオストリーム１９０は、未編集のまま放送することもできるし、後の編纂に備えて記憶することもできる。
【００２４】
図８Ａ及び図８Ｂは、様々な記載の構成を実施することができる汎用コンピューターシステム８００を示している。
【００２５】
図８Ａに見られるように、コンピューターシステム８００は、コンピューターモジュール８０１と、キーボード８０２、マウスポインターデバイス８０３、スキャナー８２６、カメラ１２０Ａ〜１２０Ｘ、及びマイクロフォン８８０等の入力デバイスと、プリンター８１５、ディスプレイデバイス８１４及びラウドスピーカー８１７を含む出力デバイスとを備える。外部変復調器（モデム）送受信機デバイス８１６は、コンピューターモジュール８０１が接続８２１を介して通信ネットワーク８２０に対して通信するのに用いることができる。通信ネットワーク８２０は、インターネット、セルラー電気通信ネットワーク、又はプライベートＷＡＮ等のワイドエリアネットワーク（ＷＡＮ）とすることができる。接続８２１が電話回線である場合、モデム８１６は従来の「ダイヤルアップ」モデムとすることができる。代替的に、接続８２１が高容量（例えば、ケーブル）接続である場合、モデム８１６はブロードバンドモデムとすることができる。通信ネットワーク８２０への無線接続には、無線モデムも用いることができる。
【００２６】
コンピューターモジュール８０１は、通常、少なくとも処理ユニット８０５及びメモリユニット８０６を備える。例えば、メモリユニット８０６は、半導体ランダムアクセスメモリ（ＲＡＭ）及び半導体リードオンリーメモリ（ＲＯＭ）を有することができる。コンピューターモジュール８０１は、ビデオディスプレイ８１４、ラウドスピーカー８１７及びマイクロフォン８８０に結合するオーディオビデオインターフェース８０７と、キーボード８０２、マウス８０３、スキャナー８２６、カメラ８２７及び任意選択でジョイスティック又は他のヒューマンインターフェースデバイス（図示せず）に結合するＩ／Ｏインターフェース８１３と、外部モデム８１６及びプリンター８１５のインターフェース８０８とを含む複数の入力／出力（Ｉ／Ｏ）インターフェースも備える。幾つかの実施態様では、モデム８１６は、コンピューターモジュール８０１内、例えば、インターフェース８０８内に組み込むことができる。コンピューターモジュール８０１は、コンピューターシステム８００を、ローカルエリアネットワーク（ＬＡＮ）として知られているようなローカルエリア通信ネットワーク８２２に接続８２３を介して結合することを可能にするローカルネットワークインターフェース８１１も有する。図８Ａに示すように、ローカル通信ネットワーク８２２は、いわゆる「ファイアウォール」デバイス又は同様の機能のデバイスを通常は備える接続８２４を介してワイドネットワーク８２０にも結合することができる。ローカルネットワークインターフェース８１１は、イーサネット（登録商標）回路カード、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線装置又はＩＥＥＥ８０２．１１無線装置を含むことができるが、非常に多くの他のタイプのインターフェースをインターフェース８１１として実施することができる。
【００２７】
Ｉ／Ｏインターフェース８０８及び８１３は、シリアル接続及びパラレル接続のいずれか又は双方を提供することができる。シリアル接続は、通常、ユニバーサルシリアルバス（ＵＳＢ）標準規格に従って実施され、対応するＵＳＢコネクター（図示せず）を有する。記憶デバイス８０９が設けられ、通常、ハードディスクドライブ（ＨＤＤ）８１０を備える。フロッピーディスクドライブ及び磁気テープドライブ（図示せず）等の他の記憶デバイスも用いることができる。不揮発性データ源として機能する光ディスクドライブ８１２が通常設けられる。例えば、ポータブルメモリデバイス、そのような光ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、ＵＳＢ−ＲＡＭ、ポータブル外部ハードドライブ、及びフロッピーディスクをシステム８００への適切なデータ源として用いることができる。
【００２８】
コンピューターモジュール８０１の構成要素８０５〜８１３及び１７０は、通常、相互接続バス８０４を介して、当業者に知られているコンピューターシステム８００の従来の動作モードをもたらすように通信する。例えば、プロセッサ８０５は、接続８１８を用いてシステムバス８０４に結合される。同様に、メモリ８０６及び光ディスクドライブ８１２は、接続８１９によってシステムバス８０４に結合される。記載の構成を実施することができるコンピューターの例は、ＩＢＭ−ＰＣ及び互換機、Ｓｕｎ  Ｓｐａｒｃｓｔａｔｉｏｎ、Ａｐｐｌｅ  Ｍａｃ（商標）又は同様のコンピューターシステムを含む。
【００２９】
本明細書に記載の方法は、コンピューターシステム８００を用いて実施することができ、説明される図３〜図５のプロセスは、コンピューターシステム８００内で実行可能な１つ以上のソフトウェアアプリケーションプログラム８３３として実施することができる。特に、記載の方法のステップは、コンピューターシステム８００内で実行されるソフトウェア８３３における命令８３１（図８Ｂ参照）によって実行される。ソフトウェア命令８３１は、１つ以上の特定のタスクをそれぞれ実行する１つ以上のコードモジュールとして形成することができる。このソフトウェアは、２つの個別の部分に分割することもでき、第１の部分及び対応するコードモジュールは、記載の方法を実行し、第２の部分及び対応するコードモジュールは、第１の部分とユーザーとの間のユーザーインターフェースを管理する。
【００３０】
ソフトウェアは、例えば、以下で説明される記憶デバイスを含むコンピューター可読媒体に記憶することができる。ソフトウェア８３３は、通常、ＨＤＤ８１０又はメモリ８０６に記憶される。ソフトウェアは、コンピューター可読媒体からコンピューターシステム８００にロードされ、その後、コンピューターシステム８００によって実行される。したがって、例えば、ソフトウェア８３３は、光ディスクドライブ８１２によって読み出される光学的可読ディスク記憶媒体（例えば、ＣＤ−ＲＯＭ）８２５に記憶することができる。そのようなソフトウェア又はコンピュータープログラムが記録されているコンピューター可読媒体は、コンピュータープログラム製品である。コンピューターシステム８００においてコンピュータープログラム製品を用いることによって、好ましくは、記載の方法を実施する有利な装置がもたらされる。
【００３１】
幾つかの場合には、アプリケーションプログラム８３３は、１つ以上のＣＤ−ＲＯＭ８２５上でコード化され、対応するドライブ８１２を介して読み出されることでユーザーに供給することもできるし、代替的に、ユーザーがネットワーク８２０又は８２２から読み出すこともできる。またさらに、ソフトウェアは、他のコンピューター可読媒体からコンピューターシステム８００内にロードすることができる。コンピューター可読記憶媒体は、記録された命令及び／又はデータを実行及び／又は処理のためにコンピューターシステム８００に提供する任意の非一時的有形記憶媒体を指す。そのような記憶媒体の例は、フロッピーディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ハードディスクドライブ、ＲＯＭ若しくは集積回路、ＵＳＢメモリ、光磁気ディスク、又はＰＣＭＣＩＡカード等のコンピューター可読カードを含み、そのようなデバイスがコンピューターモジュール８０１の内部にあるのか又は外部にあるのかを問わない。ソフトウェア、アプリケーションプログラム、命令及び／又はデータをコンピューターモジュール８０１に提供することに同様に関与することができる一時的コンピューター可読伝送媒体又は非有形コンピューター可読伝送媒体の例には、無線伝送チャネル又は赤外線伝送チャネル、並びに別のコンピューター又はネットワーク化デバイスへのネットワーク接続、及び電子メール送信及びウェブサイト等に記録された情報を含むインターネット又はイントラネットが含まれる。
【００３２】
上述したアプリケーションプログラム８３３の第２の部分及び対応するコードモジュールは、ディスプレイ８１４上にレンダリング又は別の方法で表される１つ以上のグラフィカルユーザーインターフェース（ＧＵＩ）を実施するように実行することができる。通常はキーボード８０２及びマウス８０３の操作を通じて、コンピューターシステム８００及びアプリケーションのユーザーは、機能的に適合可能な方法でインターフェースを操作して、ＧＵＩ（複数の場合もある）に関連したアプリケーションに制御コマンド及び／又は入力を提供することができる。ラウドスピーカー８１７を介して出力される音声プロンプト及びマイクロフォン８８０を介して入力されるユーザー音声コマンドを利用するオーディオインターフェース等の他の形態の機能的に適合可能なユーザーインターフェースも実施することができる。
【００３３】
図８Ｂは、プロセッサ８０５及び「メモリ」８３４の詳細な概略ブロック図である。メモリ８３４は、図８Ａにおけるコンピューターモジュール８０１がアクセスすることができる全てのメモリモジュール（ＨＤＤ８０９及び半導体メモリ８０６を含む）を論理的に集約したものを表している。
【００３４】
コンピューターモジュール８０１に最初に電源が投入されると、パワーオンセルフテスト（ＰＯＳＴ）プログラム８５０が実行される。ＰＯＳＴプログラム８５０は、通常、図８Ａの半導体メモリ８０６のＲＯＭ８４９に記憶されている。ソフトウェアを記憶するＲＯＭ８４９等のハードウェアデバイスは、ファームウェアと呼ばれることがある。ＰＯＳＴプログラム８５０は、適切に機能することを確保するためにコンピューターモジュール８０１内のハードウェアを検査し、通常、プロセッサ８０５、メモリ８３４（８０９、８０６）、及び通常は同様にＲＯＭ８４９に記憶された基本入出力システムソフトウェア（ＢＩＯＳ）モジュール８５１が正常に動作するか否かを調べる。ＰＯＳＴプログラム８５０の実行に成功すると、ＢＩＯＳ８５１は、図８Ａのハードディスクドライブ８１０を起動する。ハードディスクドライブ８１０の起動によって、ハードディスクドライブ８１０に常駐するブートストラップローダープログラム８５２が、プロセッサ８０５を介して実行される。これによって、オペレーティングシステム８５３がＲＡＭメモリ８０６内にロードされ、ロードされると、オペレーティングシステム８５３が動作を開始する。オペレーティングシステム８５３は、プロセッサ管理、メモリ管理、デバイス管理、記憶装置管理、ソフトウェアアプリケーションインターフェース、及び汎用ユーザーインターフェースを含む様々な高レベル機能を実現するようにプロセッサ８０５によって実行可能なシステムレベルアプリケーションである。
【００３５】
オペレーティングシステム８５３は、コンピューターモジュール８０１において動作する各プロセス又は各アプリケーションが、別のプロセスに配分されたメモリと衝突することなく実行されるのに十分なメモリを有することを確保するために、メモリ８３４（８０９、８０６）を管理する。さらに、各プロセスが有効に動作することができるように、図８Ａのシステム８００において利用可能な種々のタイプのメモリは、適切に用いられなければならない。したがって、集約されたメモリ８３４は、（別段の言及がない限り）メモリの特定のセグメントがどのように配分されるのかを示すことを意図したものではなく、コンピューターシステム８００によってアクセス可能なメモリの全体図及びそのようなものがどのように用いられるのかを提供することを意図したものである。
【００３６】
図８Ｂに示すように、プロセッサ８０５は、制御ユニット８３９、算術論理ユニット（ＡＬＵ）８４０、及びキャッシュメモリと呼ばれることがあるローカルメモリ又は内部メモリ８４８を含む複数の機能モジュールを備える。キャッシュメモリ８４８は、通常、レジスタセクションに複数の記憶レジスタ８４４〜８４６を備える。１つ以上の内部バス８４１は、これらの機能モジュールを機能的に相互接続する。プロセッサ８０５は、通常、接続８１８を用いて、システムバス８０４を介して外部のデバイスと通信する１つ以上のインターフェース８４２も有する。メモリ８３４は、接続８１９を用いてバス８０４に結合される。
【００３７】
アプリケーションプログラム８３３は、条件付き分岐命令及びループ命令を含むことができる命令シーケンス８３１を含む。プログラム８３３は、当該プログラム８３３の実行に用いられるデータ８３２も含むことができる。命令８３１及びデータ８３２は、メモリロケーション８２８、８２９、８３０及び８３５、８３６、８３７にそれぞれ記憶される。命令８３１及びメモリロケーション８２８〜８３０の相対サイズに応じて、特定の命令は、メモリロケーション８３０に示す命令によって示されるように単一のメモリロケーションに記憶することができる。代替的に、命令は、複数の部分にセグメンテーションすることができ、これらの部分のそれぞれは、メモリロケーション８２８及び８２９に示す命令セグメントによって示されるように、個別のメモリロケーションに記憶される。
【００３８】
一般に、プロセッサ８０５には、当該プロセッサにおいて実行される一組の命令が与えられる。プロセッサ８０５は、後続の入力を待機し、プロセッサ８０５は、別の一組の命令を実行することによってこの入力に対処する。各入力は、入力デバイス８０２、８０３のうちの１つ以上によって生成されたデータ、ネットワーク８２０、８０２のうちの一方にわたる外部ソースから受信されたデータ、記憶デバイス８０６、８０９のうちの一方から取り出されたデータ、又は対応するリーダー８１２内に挿入された記憶媒体８２５から取り出されたデータを含む複数のソースのうちの１つ以上から提供することができる。これらは全て図８Ａに示されている。幾つかの場合には、これらの一組の命令の実行によって、データが出力される場合がある。実行は、メモリ８３４へのデータ又は変数の記憶を伴う場合もある。
【００３９】
開示された構成は、メモリ８３４内の対応するメモリロケーション８５５、８５６、８５７に記憶された入力変数８５４を用いる。開示された構成は、メモリ８３４内の対応するメモリロケーション８６２、８６３、８６４に記憶される出力変数８６１を生成する。中間変数８５８は、メモリロケーション８５９、８６０、８６６及び８６７に記憶することができる。
【００４０】
図８Ｂのプロセッサ８０５を参照すると、レジスタ８４４、８４５、８４６、算術論理ユニット（ＡＬＵ）８４０、及び制御ユニット８３９は、プログラム８３３を構成する命令セット内の命令ごとに「フェッチ、デコード、及び実行」のサイクルを実行するのに必要とされるマイクロオペレーションのシーケンスを実行するようにともに動作する。フェッチ、デコード、及び実行の各サイクルは、
メモリロケーション８２８、８２９、８３０から命令８３１をフェッチするか又は読み出すフェッチ動作と、
どの命令がフェッチされたのかを制御ユニット８３９が判断するデコード動作と、
制御ユニット８３９及び／又はＡＬＵ８４０が命令を実行する実行動作と、
を含む。
【００４１】
その後、次の命令の更なるフェッチ、デコード、及び実行のサイクルを実行することができる。同様に、制御ユニット８３９が値をメモリロケーション８３２に記憶するか又は書き込む記憶サイクルを実行することができる。
【００４２】
図３〜図５のプロセスにおける各ステップ又は各サブプロセスは、プログラム８３３の１つ以上のセグメントに関連付けられ、ともに動作するプロセッサ８０５内のレジスタセクション８４４、８４５、８４７、ＡＬＵ８４０、及び制御ユニット８３９によって実行され、プログラム８３３の上記セグメントの命令セット内の命令ごとにフェッチ、デコード、及び実行のサイクルが実行される。
【００４３】
記載の方法は、代替的に、記載の構成の機能又はサブ機能を実行する１つ以上の集積回路等の専用ハードウェアで実施することができる。例えば、記載の方法は、ビデオ処理ユニットを形成する専用ハードウェアを用いて実施することができる。そのような専用ハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ、又は１つ以上のマイクロプロセッサと、関連メモリとを備えることができる。
【００４４】
上記に記載の図１の構成によって提供される極端な柔軟性は、スポーツカバレッジにおいてこれまで予想されていなかった副次的な一組の問題を提起する。例えば、図１の構成においてアクションの画像をキャプチャーするのに用いられる仮想カメラは、物理的な位置に制約されず、その位置及びズームを自由に変更することができる。したがって、カメラが競技フィールドにおいてアクションの画像をキャプチャーするための「最良」の位置を特定することは未解決な問題となる。従来のスポーツカバレッジでは、アクションの利用可能な最良のビューを提供する物理的に制約されたカメラ（例えば、カメラ１２０Ａ）を選択する必要があったのに対して、図１の構成は、仮想カメラの最良の位置を求めることによって、仮想カメラをその位置に配置する能力を有する。
【００４５】
一例として、図２は、サッカー（フットボール）の試合のキャプチャーされたフレーム２００を示している。フレーム２００に示されたアクションは、ボール２４０を保持している第１のチーム２２０からのプレーヤーと、タックルを試みる敵対するチーム２３０からのプレーヤーとの間のものである。処理ユニット８０５は、フレーム２００に示されたアクションを、視点２１０、２１１、２１２、２１３、２１４及び２１５等の多数の可能性のある視野点からキャプチャーすることを可能にするように構成することができる。
【００４６】
キャプチャーされた画像の用途を含めて、カメラの位置に影響を与える多くの要因がある。例えば、監視では、計算システムを用いることができる。監視の状況では、そのような計算システムの目的は、シーン内に人物の高品質の顔のショットを取得するようにカメラを位置決めすることとすることができる。一方、スポーツカバレッジは、監視と純粋には同様に機能しない。この理由によって、単純なプレーヤー又はボールの追跡等の単純過ぎるカメラの位置決め手法は、魅力のあるコンテンツを生成することができない。スポーツカバレッジは、視聴者に興奮を与えることが重要であり、これには、或る特定の合成方法を用いることが必要である。
【００４７】
仮想カメラの位置を求める方法３００が、図３を参照して以下で詳細に説明される。方法３００は、仮想カメラを構成するのに用いることができる。仮想カメラを構成するために変更することができる仮想カメラのパラメーターは、仮想カメラの位置、角度、焦点距離、向き、及び仮想カメラに関連したズームレベルを含むことができる。
【００４８】
方法３００は、通常、フットボール等のスポーツイベントのビデオカバレッジの生成において用いられる。一方、方法３００は、移動及び相互作用する被写体を伴うイベントの良好に合成されたビデオカバレッジをキャプチャーするように、仮想カメラの視野点（「カメラ視点」）を、リアルタイムに制御することを含めて、アルゴリズム的に制御することができる多くの場合に適用することができる。
【００４９】
方法３００は、図１の構成を用いて実施することができる。方法３００は、ハードディスクドライブ１１０に常駐し、プロセッサ１０５によるその実行において制御されるソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして実施することができる。
【００５０】
方法３００は、図１の競技場１１０及び図２の例示のフレーム２００に関する例として説明される。方法３００は、現在のプレーを表すシーン内の対象領域が、プロセッサ８０５の実行下で求められる特定ステップ３１０において開始する。対象領域は、シーン内のボール２４０、最も近いプレーヤー２２０及び２３０の位置と、投影された相互作用点とによって画定される。プレーヤー２２０及び２３０の位置は、例えば、プレーヤー２２０を表す第１の物体と、プレーヤー２３０を表す第２の物体とをシーン内で検出することによって求めることができる。各物体は、例えば、以下で説明するような速度及び軌道を含む少なくとも１つのモーション属性を有する。ボール２４０は、同様に第３の物体によって表すことができる。投影された相互作用点は、競技場の正射影の上面図におけるプレーヤー２２０及び２３０並びにボール２４０の速度及び軌道を含む物体のモーション属性に基づいて求めることができる。投影された相互作用点は、例えば、相互作用タイミング、すなわち、対象物体が遭遇すると予想される時点、すなわち、所定のタイプを有するイベントが発生する場合を、プレーヤー２２０及び２３０の速度及び軌道と、場合によってはボール２４０の速度及び軌道に基づいて求めることによって求めることができる。
【００５１】
次に、決定ステップ３２０において、グループ速度（group velocity）、並びに被写体及び予想された相互作用点の位置を用いて、仮想カメラの好ましい位置の粗い範囲が求められる。代替的に、相互作用タイミングを用いて、仮想カメラの好ましい位置の粗い範囲を求めることができ、それによって、仮想カメラを制御することができる。仮想カメラの各位置は、仮想カメラの構成された視野点に対応する。ｘ、ｙ、ｚの位置決めデータに加えて、仮想カメラの位置は、例えば、角度θ及びφを用いて、仮想カメラが向いている方向も規定することができる。ステップ３２０におけるプロセスを用いると、グループ速度（すなわち、ボール２４０、並びにプレーヤー２２０及び２３０を含む被写体の平均速度）が、仮想カメラに方向付けられるとともに、左から右又は右から左の仮想カメラの視野にわたって方向付けられる仮想カメラ位置を求めることができる。ステップ３２０では、仮想カメラがプレーの全体的な方向感を維持するように位置決めされるよう、プレーの方向の追加の知識も用いることができる。ステップ３２０において実行される粗いカメラ位置を求める方法４００は、図４を参照して以下で詳細に説明される。
【００５２】
ステップ３２０において仮想カメラ位置の粗い範囲を求めた後、仮想カメラの実際の位置が、決定ステップ３３０において、合成フレーミング方法に基づいて求められる。特に、合成されたフレーム内の被写体（例えば、ボール２４０、プレーヤー２２０及びプレーヤー２３０）によって占有されるエリアの形状及びサイズが、予想される相互作用点の位置と組み合わせて解析される。以下に説明されるように、被写体及び予想される相互作用点は、形状エンベロープを求めるのに用いることができる。形状エンベロープは、被写体によって占有されるエリア（例えば、ボール２４０を表す物体、プレーヤー２２０を表す別の物体及びプレーヤー２３０を表す別の物体に対応するエリア）を含む。
【００５３】
仮想カメラの微細な位置決めは、プレーヤー２２０及び２３０の隔たりを最小にすると同時に、それらの重複も最小にし、フレーム２００の許容できる充填を確保するとともに、アクションが後続のフレームにおいて展開する余地を残し、プレーの方向に関する任意の規約を順守する。ステップ３２０におけるようなカメラ位置の決定は、良好なフレーミングが連続して実現されることを確保するために、キャプチャーされたフレームに対して定期的に行われる。ステップ３３０において用いられるズームレベルは、所定の限界までは、プレーヤー２２０及び２３０と将来の相互作用点との間の距離に比例することになる。この所定の限界は、被写体（例えば、プレーヤー２２０、２３０及びボール２４０）の細部の或る特定のレベルが維持されることを確保するように構成される。この限界に達すると、投影された将来の相互作用点が視野のほぼ中心となる点まで、求められたグループ速度と同じ方向に沿って追従する仮想カメラの平滑な経路（すなわち、平滑な遷移）を提供するモーション計画が求められる。
【００５４】
投影された将来の相互作用点は再計算され、フレームごとに変化し得るので、仮想カメラの位置及び軌道は、連続して再計算される。仮想カメラの任意のモーションも放送品質のものであることを確保するために、ステップ３３０において求められる更新された仮想カメラ位置は、平滑化ステップ３４０において処理を受ける。ステップ３３０において、フレームレンダリングに用いるためにプロセッサ２０５に送信される（コンテンツに関する）仮想カメラ位置の変化率が、平滑化（安定化）及び制限される。
【００５５】
方法３００は、画像平面上へのグループ速度、投影された相互作用点及び投影されたアクション形状を用いて、仮想カメラ視野点（又は視点）を求める。ズーム制限及びモーション経路の計算を統合して、プレーヤー（例えば、２２０及び２３０）と将来の相互作用点との間の距離が大きい場合に対処することを含む幾つかの他の態様が以下で説明される。また、以下で説明されるように、計算を要するフレームレンダリングプロセスの品質を妨げるか又は大幅に低下させるように仮想カメラの視野に入る場合がある追加のプレーヤーに対処するステップを実行することができる。
【００５６】
次に、図３の方法３００のステップのそれぞれが詳細に説明される。ステップ３１０において、仮想カメラの視野内に構成される被写体のグループが特定される。被写体選択は、図１及び図２を参照して例として説明される。ボール２４０及びプレーヤー（例えば、２２０及び２３０）のシンボル表現が存在するような競技場１１０の２Ｄ正射上面図を含むゲームプレーのマップビューが、ステップ３１０において生成される。このマップビューは、画像である必要はないが、このマップビューを、プレーヤー２２０、２３０及びボール２４０の図解表現を有する画像としてレンダリングすることができる十分な情報を含む。具体的には、競技場１１０のマップビューは、競技場１１０のサイズ及び形状と、プレーヤー（２２０、２３０）、審判員１９５及びボール２４０の全ての位置とについての情報を含む。マップビューは、ビデオフレームレートで連続して更新され、方法３００によって実行されるステップへの入力である。マップビュー自体は、複数の異なる技術を用いて構築及び維持することができる。１つの構成では、無線追跡及び競技場の仕様が組み合わされ、投影上面図の観点から試合競技場１１０のモデルが構築される。特に、カメラが競技フィールドの真上に配置されている場合に、マップ構築にビデオデータも用いることができる。一方、無線追跡の使用は、ビデオ解析単独の場合と比較して、プレーヤーの特定及び曖昧なものの追跡を減らすという利点を有する。
【００５７】
対象領域に対応するとともに被写体のグループを含むアクション領域が、ステップ３１０において特定される。任意の数のアクション領域を同時に特定して処理することができるが、その数を制限する多くの実際的な理由が存在する。第１に、合成視点ビデオデータの生成は、データ及び計算リソースの双方を過度に要求する。第２に、処理された画像は、イベントの放送ビデオストリームである単一のビデオストリームを生成するのに最終的に用いられる場合がある。この単一のビデオストリームは、１人以上の人間のオペレーターによって指示される場合があるので、少数の高品質入力が、大きく変動する品質の多数のアセットに好ましい。幾つかの場合には、放送ビデオは、ゲームの構造及びスケジュール並びにゲームイベントのタイプのより詳細な知識を有する完全自動化方法に従って生成することができる。いずれの場合にも、記載の構成を用いて、ショットレベル入力を最終の制作プロセスに提供することができる。
【００５８】
試合競技場１１０内の対象領域に対応するアクション領域は、ステップ３１０において、ボール２４０の位置に基づいて特定することができる。ボール位置は、ボール２４０内に収容された無線追跡デバイスを用いることによって求めることができる。そのような追跡デバイスは市販されており、プレーヤー（例えば、２２０及び２３０）が装着しているＧＰＳベースの追跡デバイスと組み合わせて動作することができる。そのような追跡デバイス装置は、幾つかの利点を有する。第１に、ボール２４０内に構成された追跡デバイスは、追跡デバイスがボール２４０の自然のバランス及び飛行特性を妨げないように極めて軽量にすることができる。第２に、ボール２４０内の追跡デバイスは、ボール２４０に近接したプレーヤーのグループを明確に特定し、したがって、被写体セット（例えば、プレーヤー２２０、２３０）の特定を助ける。ステップ３１０において試合競技場１１０内のアクション領域を特定するのに他の方法も用いることができる。例えば、ステップ３１０において、ビデオ画像のみに基づくプレーヤー及びボールの認識、セグメンテーション並びに追跡を用いることができる。十分に高く広いプレーの視野を用いてビデオ画像に対して実行されると、ボール２４０の周囲の探索半径を用いて、現下の対象プレーヤーを特定することができる。ボール２４０の周囲の探索領域の半径は、必要なプレーヤーをキャプチャーする最小半径として決定することができる。具体的には、半径は、少なくとも２つの敵対するチームのそれぞれからの少なくとも１人のプレーヤーを含むように決定することができる。
【００５９】
プレーヤーの位置データは、メモリ８０６内に構成された循環履歴バッファーに保持することができ、プレー解析における使用に利用可能である。競技フィールドに対するプレーヤー及びボールの位置データを保持することによって、プレーヤー追跡が可能になり、これによって、プレーヤーごとの軌道及び速度の計算を容易に行うことが可能になる。保持されたプレーヤー及びボールの位置データは、仮想カメラの相対的な時間的モーションを求めるのに用いることができる。時間的モーションは、軌道に沿った被写体（例えば、プレーヤー、ボール）を表す各物体を追跡するのに用いることができる。
【００６０】
ステップ３１０において上記で説明したように、対象領域に対応するアクションのエリアが特定されると、方法３００は、次に、決定ステップ３２０において、可能性のあるカメラ位置の粗い範囲を求める。ステップ３２０において、グループ速度と、被写体の位置及び予想される相互作用点とを用いて、好ましいカメラ位置の粗い範囲が求められる。カメラ位置が、ステップ３２０において、グループ速度（すなわち、被写体の平均速度）がカメラ１２０Ａに方向付けられるとともに、左から右又は右から左のカメラ１２０Ａの視野にわたって方向付けられるようにして求められる。次に、ステップ３２０において実行される粗いカメラ位置を求める方法４００が、図４を参照して説明される。
【００６１】
方法４００は、図１の構成を用いて実施することができる。方法４００は、ハードディスクドライブ３１０に常駐し、プロセッサ３０５によるその実行において制御されるソフトウェアアプリケーションプログラム３３３の１つ以上のソフトウェアコードモジュールとして実施することができる。
【００６２】
繰り返しになるが、方法４００も、図１の競技場１１０及び図２の例示のフレーム２００に関する例として説明される。
【００６３】
方法４００は、プレーヤー２２０及び２３０並びにボール２４０を含む被写体グループのマップビュー内の２次元（２Ｄ）スピード及び２Ｄ方向を含む速度を求める。これらの速度は、先行する時間ウィンドウの被写体プレーヤーの平滑なモーション経路から求められる。
【００６４】
方法４００は、特定ステップ４１０において開始し、このステップにおいて、ボール２４０の位置および速度が、プロセッサ８０５の実行下で最初に求められる。特定ステップ４２０において、ボール２４０の位置および速度を用いて、プレーヤーの被写体グループが特定される。プレーヤーの被写体グループは、応じることができる全てのプレーヤーから最初にボール２４０に到達すると予測される敵対するチームのそれぞれからの少なくとも１人のプレーヤー（例えば、プレーヤー２２０及び２３０）を含む最小グループとして定義される。他の方法を用いて、ボール２４０を中心とする単純な半径を含む被写体グループを求めることができる。ただし、ボール２４０との相互作用を実現する可能性が最も高い被写体グループが、合成のために有利である。なぜならば、その被写体グループによって、視覚的連続性を有するゲーム内の相互作用をキャプチャーすることができるより長い期間の仮想カメラ位置を確立することが可能になるからである。ボール２４０との相互作用の可能性は、プレーヤーの速度及びボールの速度の組み合わせに基づいて求められる。地上のボール２４０の高さは、無線ロケーティングデバイスが用いられるときに利用可能であり、地上のボール２４０の高さは、ボール２４０と近い将来に相互作用する可能性が最も高いプレーヤーを決定するのに用いることもできることに留意されたい。
【００６５】
被写体グループが確立されると、処理は、次に、決定ステップ４３０において仮想カメラ位置を求めることに移る。ステップ４３０において、グループ速度が、プロセッサ８０５の実行下で求められる。グループ速度（スピードプラス方向）は、ボール２４０を含む組み合わされた被写体グループの平均速度である。
【００６６】
次に、決定ステップ４４０において、シーン内の最も可能性が高い相互作用点が、プロセッサ８０５の実行下で求められる。ステップ４４０において求められた相互作用点は、プレーヤー（複数の場合もある）２２０／２３０及びボール２４０が収束すると予測される第１の点として定義される。ボール２４０は、収束が実現される或る特定の高さ範囲内にある必要があることに留意されたい。相互作用点は、シーン内のプレーヤー及びボールを表す物体の軌道（速度ベクトルの方向）に基づいて求めることができる。物体のそれぞれの軌道を用いて、物体の相互作用点又は物体の相互作用タイミングを求める際に用いられる物体の組み合わされた軌道を求めることができる。
【００６７】
１つの実施態様では、ステップ４３０において求められたグループ速度及びステップ４４０において求められた相互作用点は、ステップ４２０において実行された被写体セット決定の副産物である。
【００６８】
重要な合成点が確立されると、次に、決定ステップ４５０において、粗い仮想カメラ位置の決定が行われる。１つの構成では、ステップ４５０は、２つのパスで実施される。第１のパスにおいて、好ましい領域が、プロセッサ８０５の実行下で決定される。この好ましい領域は、被写体プレーヤー（例えば、２２０及び２３０）の全てがカメラ２４０の視野内に存在するとともに、ボール２４０及び将来の相互作用点のうちの少なくとも一方が所定の空間関係を有するように、当該好ましい領域内のいずれかの箇所に配置されたカメラを向けることができるように決定される。記載の構成では、好ましい領域は、ボール２４０又は将来の相互作用点の位置が、被写体プレーヤーとカメラとの間に入るように決定される。更なる詳細は、後に、図６を参照して説明される。
【００６９】
次に、好ましい領域内の粗いカメラ位置が、２つの方法のうちの一方で求められる。先行フレームが仮想カメラについて計算されていない場合、仮想カメラの位置は、好ましい領域の中心に存在するように選択される。先行フレームが仮想カメラについて計算されている場合、その先行フレームの期間中の仮想カメラの位置に最も近い好ましい領域内の点が用いられる。求められた粗いカメラ位置は、プロセッサ８０５の実行下でメモリ８０６に記憶することができる。初期の粗い仮想カメラ位置が求められると、方法４００は終了する。
【００７０】
図３の方法３００を再び参照すると、図４の方法４００に従ってステップ３２０において求められ、上記で略述された粗い仮想カメラ位置は、その後、リファインステップ３３０においてリファインされ、フレームの改善された仮想カメラ位置が生成される。リファインは、ステップ３３０において、最小化プロセスを用いて実行される。この最小化プロセスは、次に、図５を参照して詳細に説明される。
【００７１】
方法５００は、図１の構成を用いて実施することができる。方法５００は、ハードディスクドライブ３１０に常駐し、プロセッサ３０５によるその実行において制御されるソフトウェアアプリケーションプログラム３３３の１つ以上のソフトウェアコードモジュールとして実施することができる。
【００７２】
繰り返しになるが、方法５００も、図１の競技場１１０及び図２の例示のフレーム２００に関する例として説明される。
【００７３】
方法５００は、初期化ステップ５１０から開始する。このステップにおいて、方法４００に従って求められた仮想カメラ位置が、例えば、メモリ８０６からアクセスされる。ステップ５１０において、方法４００に従って求められた仮想カメラ位置を用いて、最小化処理の間に用いられる処理構造が初期化される。ステップ５１０において用いられる最小化処理は、接近しているが重複が最小の被写体プレーヤー（例えば、プレーヤー２２０、２３０）を含むレンダリングされるフレームのエリアを最大にしようとする。被写体プレーヤーは、視聴者が、フレーム全体を広く見渡す必要なく、合成されたフレーム（例えば２００）の詳細を理解することを容易にするために、合成されたフレームにおいて互いに接近して現れるべきである。視聴者の注視は、好ましくは、仮想カメラが、視野の一方の側からフレームの中心に向かう、より広いアクションシーケンスにわたってフレーミングを行い、プレーが投影された将来の相互作用点に達するのと同時にフレームの中心に達することによってもたらされる。ステップ５１０において用いられる合成方法は、図７を参照して以下でより詳細に説明される。
【００７４】
合成した観点からのフレーミングの品質（本明細書においてフレーミング品質と呼ばれる）は、各項がフレーミング品質の特定の側面に関係する数値スコアを提供する項の加重和であるコスト関数の形で表される。このように、フレーミング品質の複数の属性を考慮に入れたリファインされた仮想カメラ位置を生成することが可能である。各属性は、以下で略述される独立した方法を用いて求められる。これは、ステップ５２０、５３０、５４０及び５５０を含むループによって実現される。
【００７５】
決定ステップ５２０において、指定された仮想カメラ位置の視野内の全体的な被写体位置の低詳細レンダリングが、プロセッサ８０５の実行下で生成される。
【００７６】
低詳細レンダリングは、レンダリングされる最終フレームと比較すると、空間分解能及びトーン精度（tonal accuracy）を欠くが、フレーミング品質の解析を行うことができる十分な細部を含む。特に、フレーム内の被写体プレーヤー、ボール及び相互作用点の相対位置及びサイズを回復することができる。該当被写体及び将来イベントのサイズ及び相対位置の粗いマップは、形状エンベロープ又はフレーミングエンベロープと呼ばれ、後続の処理において用いられて、フレーミング品質が求められる。
【００７７】
本開示において、該当被写体は、被写体プレーヤー及びボールであり、将来イベントは、求められた相互作用点である。将来イベントは、タックル、相互作用位置及び相互作用タイミング等の将来イベントタイプによって特徴付けることができる。将来イベントは、粗いマップにおける将来の相互作用エリアの相対位置及びサイズに関連付けられる。すなわち、形状エンベロープは、相対位置及びサイズにそれぞれ関連付けられた被写体プレーヤー及びボール並びに将来の相互作用エリアを含む。将来の相互作用エリアは、相互作用点における被写体プレーヤーを含むエリアである。将来の相互作用エリアは、更なる被写体プレーヤーが相互作用点に向かって進んでくることがプロセス４００によって検出された場合、この更なる被写体プレーヤーを含むように拡大することができる。将来の相互作用エリアは、相互作用点におけるこの更なる被写体プレーヤーを含むように十分に拡大される。したがって、形状エンベロープは、プロセス４００においてプレーのマップビューから求められる相互作用点の周囲に位置する被写体プレーヤー又は相互作用点に向かって進んでくる被写体プレーヤーに応じて動的に変化する。
【００７８】
形状エンベロープを用いてフレーミング品質の側面を計算することに関する更なる詳細は、後に、図６を参照して論述される。求められた仮想カメラ位置は、仮想カメラの視野内でステップ４４０において求められた被写体プレーヤー、ボール及び相互作用点の形状エンベロープ内の相対位置を規定する。形状エンベロープは、求められた低詳細レンダリングから生成される。これらのメトリックは、ステップ５３０において組み合わされ、全体スコアが作成される。求められたスコアは、プロセッサ８０５の実行下でメモリ８０６に記憶することができる。
【００７９】
比較ステップ５４０において、ステップ５３０において求められたスコアが、プロセッサ８０５の実行下で、以前に求められたスコアと比較され、アルゴリズムが好ましい仮想カメラ位置に収束したか否かが判断される。ステップ５４０において、収束が達成されたと判断された場合、ステップ３２０において求められた粗い仮想カメラ位置は、変更ステップ５６０に通される。変更ステップ５６０において、粗い仮想カメラ位置は、以前の仮想カメラ位置を考慮して変更され、フレーム間の仮想カメラの全体経路が平滑な経路となることを確保する平滑化された仮想カメラ位置が生成される。以前の仮想カメラ位置は、仮想カメラに関連した時間的なカメラモーションを表す。一方、ステップ５４０において、収束がまだ達成されていないと判断された場合、仮想カメラ位置は変更され（５５０）、方法５００はステップ５２０に戻り、このステップにおいて、新たな仮想カメラ位置からのフレームの粗いレンダリングが求められる。多くの最適化技法が、制御変数の変化に起因する品質メトリックの変化に基づいて入力変数をリファインする方法を規定する。図５の構成では、ニュートン法に基づく反復的最適化が方法５００に用いられる。ただし、線形計画法、動的計画法又は勾配降下法を含む様々な他の方法を等しく適用することができる。
【００８０】
数学的には、ステップ５２０、５３０、５４０及び５５０は、以下のように、式（１）を解く。
【数１】
0006794545.tif 000002
ここで、ｘ、ｙ及びｚは、競技場１１０の空間における仮想カメラの位置を規定する仮想カメラの座標であり、θ及びφは、カメラが向いている方向を規定し、Ωは、方法４００のステップ４４５において特定される領域である。この構成は、カメラが常に水平に方位付けられ、したがって、最適化計算において必要とされる追加の「ロール」角がないことを前提としている。ｘ、ｙ、ｚ、θ及びφが領域Ωにあるという制約内で品質関数を最大にするｘ、ｙ、ｚ、θ及びφの値が、式（１）に従って求められる。上記で説明したように、ｘ、ｙ、ｚ、θ及びφの値は、フレームを生成するのに用いられる最終的なカメラ視野点を生成する５６０における平滑化ステップへの入力として用いられる。
【００８１】
仮想カメラの微細な位置決めの効率的な決定は、記載の構成が、被写体プレーヤー２２０、２３０及びボール２４０等の主要なシーン要素の位置を、仮想カメラの視野点（又は視点）を表すフレーム（例えば、２００）内に高速にレンダリングすることができることに依存する。仮想カメラの微細な位置決めの決定は、上記式（１）の関数ｆｒａｍｅ（ｘ，ｙ，ｚ，θ，φ）によって得られる。レンダリングは、完全な画像の詳細を必要としないが、シーン内の被写体（例えば、２２０、２３０）の位置及び粗い形状を示す少なくともバイナリー形状エンベロープを生成することになる。１つの構成では、適切なビット深度のラベル画像を用いることができる。ステップ５２０において、形状エンベロープを生成することができ、後続のステップにおいて用いて、上記式（１）のｑｕａｌｉｔｙ（ｆ）の部分に従って、フレーミングの品質を求めることができる。
【００８２】
１つの構成では、フレーム２００内に被写体を分散させるように幾つかの方法をバランスさせることができる。第１の方法は、被写体が接近しているが最小のオクルージョンを有すると当該第１の方法が判断する被写体プレーヤーエリアに関するものとすることができる。品質は、被写体プレーヤーを含む最大の連続した水平スパンの長さとして求めることができる。第２の方法は、将来の相互作用エリア及びボール２４０の投影に関するものとすることができる。第２の方法について、品質は、現在の仮想カメラ位置に関連した仮想カメラの視野に含まれる形状エンベロープのエリアの全水平スパンの大きさに比例して増加する。水平スパンの概念及びその計算方法は、後に、図６を参照して説明される。被写体プレーヤーのサイズは、方法４００における範囲選択の結果として、許容できる範囲内になるように既に制約されていることに留意されたい。一方、被写体プレーヤーが既定の垂直境界内に適合したときにピークに達する品質尺度を求める付加的な方法を追加することができる。合成されたビデオフレーム上への被写体エリアの投影の測定された特性の間の線形関係が上記で説明されているが、他の関係も用いることができる。例えば、通常ならば線形の尺度に非線形性を適用して、既定の好ましい値について品質のピークを生み出すことを可能にすることができる。そのような非線形性は、実験及びハードコーディングを通じて求めることもできるし、適した数のトレーニング例に基づく学習アルゴリズムを用いて学習することもできる。実際、代替の構成では、粗くレンダリングされたフレームを処理して特徴値を抽出する適切なデータ整理ステップを与えられた機械学習技法を十分な数の適したトレーニング例と組み合わせて用いて、全フレーミング品質メトリックを求めることができる。
【００８３】
最後に、上記に記載の構成は、仮想カメラ位置のリファインが、最終フレームの可能性のあるレンダリング品質を考慮に入れることができるほど十分柔軟である。例えば、記載の方法を合成の目的に関して規定するのではなく、レンダリング品質は、フレーム合成に用いられる適切な高密度ピクセルデータの可用性、オクルージョンの存在、インペインティング若しくは補間を必要とする最大エリアの幅、３Ｄモデリングの信頼度、又は、画像ベースレンダリングプロセスが現実的なデータを生成する能力に影響を与える他の任意の態様を含むフレーム合成の技術態様に関係することができる。
【００８４】
次に、方法４００及び５００が、上記構成における方法の動作の具体例を提供する図６、図７Ａ及び図７Ｂを参照して更に詳細に説明される。
【００８５】
図６は、６１２及び６２２によってそれぞれ示される速度で移動する、図２の２２０及び２３０等の２人の敵対するプレーヤーの粗い表現６１０、６２０を示す上面図である。これらのプレーヤーは、粗い表現６３０によって表されたボール２４０に近接しているので、プレーヤー表現６１０及び６２０は、方法３００のステップ３１０及び展開されたサブプロセス４００によって特定されるアクションエリアの被写体グループを形成する。ボール２４０は、６３２によって示される速度を有する。速度を前方に投影することによって、一組の交点６４１、６４２及び６４３が生成される。点６４１、６４２及び６４３の重心を取ることによって、種々の方向における中心点の位置の分散に比例する半径を有する楕円エリア６４０を画定することができる。エリア６４０は、方法４００のステップ４４０において特定される将来の相互作用の可能性が最も高いエリアである。次に、ステップ４４５において、仮想カメラ６６０がその視野６６５内の双方の被写体をキャプチャーすることができる領域６５０が求められる。このステップにおいて用いられる方法は、グループ速度（すなわち、被写体の平均速度）が、仮想カメラに向けて方向付けられるとともに、左から右又は右から左の仮想カメラの視野にわたって方向付けられる仮想カメラ位置を求める。加えて、エリア６５０は、被写体の全てが可視であるとともに視野内の最小被写体サイズを維持するように仮想カメラの既定の距離範囲内にある視野点を含むようにのみ制約される。図６の例では、領域６５０が、被写体プレーヤー２２０、２３０及びボール２４０の平均位置を中心とする、最小被写体間隔法（distance method）及び最大被写体間隔法に対応する半径の２つの円弧セグメントの間の領域として求められる。このステップについて他の定式化も可能であり、プレーの状態、フィールドの位置等に基づいて選択することができる。例えば、領域６５０を画定する円弧セグメントは、被写体プレーヤー６１０、６２０と将来の相互作用点６４０との間のプレーのラインに沿った任意の箇所に配置される仮想カメラのより広い範囲を与える、楕円の長軸がプレーの方向（グループ速度によって決まる）と一致する楕円セグメントに置き換えることができる。中心選択は、将来の相互作用エリア６４０の位置も考慮に入れることができる。
【００８６】
１つの構成では、将来の相互作用エリアは、第１のパスにおける領域６５０の決定において含めることができ、その後、被写体プレーヤー６１０、６２０までの必要な距離範囲に達することができない場合には除外することができる。これは、例えば、被写体プレーヤー及び将来の相互作用エリアが互いに十分離れているときに起こる。
【００８７】
フレーミング品質の評価の目的で被写体エリアの水平範囲を求めるために、プロセス５００のステップ５３０において実行される記載の方法は、ステップ５２０において求められた形状エンベロープの列を下方に投影し、その結果得られる信号を平滑化することによる次元削減を行う。これによって、被写体のそれぞれに対応する平滑なバンプ（bump）を有する信号が生成される。この信号も、図６に例示され、バンプ６２４は、被写体プレーヤー６２０に対応する累算された行データに対応する。同様に、バンプ６１４は被写体プレーヤー６１０に対応し、バンプ６３４はボール６３０に対応し、６４４は予想される将来の相互作用エリアにおける被写体プレーヤー６１０及び６２０に対応する。上述したように、エリア６４４の範囲は、相互作用点付近にいるか又は相互作用点に向かって進んでくる、プロセス４００においてプレーのマップビューから検出された被写体プレーヤーに応じて動的に変化する。
【００８８】
品質評価の目的で、上記信号は、独立に生成することもできるし、任意に組み合わせることもできる。例えば、被写体プレーヤーに対応する水平スパンは、各プレーヤーに対応する信号を加え、したがって、６２４及び６１４を含む信号を生成し、閾値を適用し、さらに、最大の連続した非ゼロのセグメントを測定することによって取得することができる。これによって、６２４の前縁から６１４の後縁までの信号の距離に比例する尺度が生成される。同様の方法は、ボール及び相互作用エリアの存在の程度を評価するときに用いることができる。
【００８９】
フレーミング品質は、図７の例を参照して更に詳述される。図７Ａは、２人の敵対するプレーヤー２２０及び２３０を含む図６の事例のシーンの第１のフレーミングを示している。これらのプレーヤーは、７１１及び７１３としてそれぞれ表され、図６の６２０及び６１０にそれぞれ対応し、図６の６３０に対応する７１２として表されたボール２４０に接近している。図７Ａに示すように位置決めされた仮想カメラ７２０について、プレーヤーの画像は、７２１によって表された画像平面上に投影され、形状エンベロープ７３０が作成される。図７Ａの形状エンベロープ７３０において、プレーヤー２２０は７３１に現れ、プレーヤー２３０は７３３に現れ、両者は、フレーム７３０内において空間的に接近しているが、重複していない。ボール２４０は７３２に現れ、したがって、アクションの全体的なモーションは左から右である。図７Ａは、アクションの望ましいフレーミングを表している。
【００９０】
対照的に、図７Ｂは、図７Ａに示す同じアクションの、等しく有効であるが、あまり望ましくないフレーミングを示している。図７Ｂの例では、仮想カメラ７４０は、７１２によって表されるボール２４０が、７１１及び７１３によってそれぞれ表されるプレーヤー２２０及び２３０と、仮想カメラ７４０との間にあるように、図７Ｂに示すように配置される。このフレーミングでは、アクションは、仮想カメラ７４０に向けられている。プレーヤーは、プレーヤー２２０が７５１に現れ、プレーヤー２３０が７５３に現れ、ボール２４０が７５２に現れて、形状エンベロープ７５０が形成されるように、７４１によって表される画像平面上に投影される。図７Ｂに示す合成では、プレーヤー２２０及び２３０は、フレーム７５０の両サイドに現れ、これによって、視聴者は、アクションの流れに従うために連続して左右を注視する必要がある。図７Ｂは、図７Ａのフレーミングよりも低いフレーミング品質スコアを実現するアクションの不十分なフレーミングを表している。
【００９１】
記載の構成を用いて上記で説明され、実施された方法は、図７Ａの形状エンベロープ７３０によって示される合成特性を有するアクションのフレーミングを実現する。具体的には、視聴者が必要とする視覚スキャンの程度が低減されるように、アクションの流れはフレームを横断し、重要な被写体はフレーム内に互いに接近して現れる。
【００９２】
本明細書に記載の構成は、説明されたようなスポーツイベントの放送品質のビデオカバレッジの生成への直接的な用途を有する。しかしながら、記載の構成は、同期されたカメラによって取り囲むことができる凸空間において当該記載の構成を実施することに起因して、計算ビデオカバレッジが可能である任意のイベントへのより広い用途を有する。各場合において、対象エリアを求め、構成されたフレームの品質を評価するために、異なるヒューリスティックスが必要とされ得る。しかしながら、被写体をグループ化し、合成されたカメラ位置の視野にわたるアクションの整然としたモーションを確保する広い一般概念は存続している。
【００９３】
記載の構成は、コンピューター産業及びデータ処理産業に適用可能であり、特に、画像処理のコンピューター産業及びデータ処理産業に適用可能である。
【００９４】
上記内容は、本発明の幾つかの実施形態しか説明しておらず、本発明の範囲及び趣旨から逸脱することなく、それらの実施形態に対して変更及び／又は変形を行うことができる。実施形態は例示であって、限定ではない。
【図１】
0006794545.tif 000003
【図２】
0006794545.tif 000004
【図３】
0006794545.tif 000005
【図４】
0006794545.tif 000006
【図５】
0006794545.tif 000007
【図６】
0006794545.tif 000008
【図７Ａ】
0006794545.tif 000009
【図７Ｂ】
0006794545.tif 000010
【図８Ａ】
0006794545.tif 000011
【図８Ｂ】
0006794545.tif 000012