(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0024】
以下の詳細な説明は、現在想定される本発明の最良の実施形態のものである。そのような説明は、本発明を限定する意味ではなく、本発明の説明のためだけに提示された本発明の一例であると理解されることを意図したものであり、当業者は、以下の説明と添付の図面に関連付けて参照することにより、本発明の効果と構成を知ることができる。種々の図面において、同一の参照符合は、同一または類似の要素を示す。
【0025】
「定義」
すべての技術用語および科学用語は、当業者によって通常理解される意味と同じ意味を有するものとする。それにもかかわらず、次の用語は、開示の理解を助けるべく、以下に定義され、その定義は、その用語が明示的にそのように定義されているか否かに関わらず、用語のすべての品詞に適用される。
【0026】
「約」、「概ね」、「実質的に類似の」は、名目値から10%以内のばらつきを意味する。明示的記載がない場合でも、ばらつきが具体的に言及されているか否かに関わらず、記載された値には常にばらつきが含まれていることを理解されたい。
【0027】
「2D」は、2次元および/または2次元の、を意味する。典型的には、本開示において、2Dは、単一の2次元座標平面にある画像データを有する画像、および/または、深さなどの第3の次元のない画像データの再構成を意味する。また、「2D」は、画像に構成されたまたは画像を含むピクセルのアレイである画像ラスタをいい、それぞれのピクセルは平面中の格子位置、たとえばXY位置と、RGB色空間情報とを有している。
【0028】
「3D」は、3次元および/または3次元の、を意味する。典型的には、本開示において、3Dは、物理的非仮想ボリューム、および/または、深さなどの第3の次元を有する画像データの再構成をいう。また、「3D」は、3次元、たとえば、焦点面と焦点面から垂直に測定された距離を有する仮想空間をいう。
【0029】
動詞の形態での「捉える(キャプチャ)」は、(a)デジタル画像センサなどの1以上の画像センサを介して物体の画像データを取得すること、および、(b)その画像データを、任意の適切なメモリストレージに、任意の適切なフォーマットを有するファイルとして保存することを意味する。
【0030】
「演算装置」あるいは同義の「ハードウェア」は、本開示において、実質的に広義に解釈され、すべての用途、すべての装置、および/または、すべてのシステムおよび/または本開示におけるシステムに対する、少なくとも中央処理ユニット、データネットワークにインタフェースするための通信装置、一時的コンピュータ可読メモリ、および/または、非一時的なコンピュータ可読メモリ、および/または、記憶媒体を含む装置として定義される。中央処理ユニットは、本明細書に記載の任意の方法の1以上のステップの全部または一部を達成するために、演算動作、論理動作、および入出力動作を行うことによって、非一次的コンピュータ可読メモリおよび/または媒体に保存された1以上のコンピュータプログラムの命令を実行する。
【0031】
演算装置は、本開示における1以上の適切な機能のために、1以上のユーザ、他の演算装置によって直接的および/または間接的に、能動的および/または受動的に使用可能である。演算装置の具体例としては、コンピュータ、ラップトップ、タブレットコンピュータ、スマートフォン、および/または、他の任意の適切な装置が例示され、ネットワーク化された演算装置、サーバなども含まれる。演算装置は、好ましくは、1以上の人が入力するための装置、たとえば、コンピュータマウスおよび/またはキーボード、および、1以上のヒューマンインタラクション装置、たとえば、モニタを備える。演算装置には、1以上のユーザに仮想現実の経験を与えることに関連する任意の入力、出力、および/または計算装置も含まれる。
【0032】
1つの演算装置が図示および/または記載されている場合であっても、複数の演算装置を用いることができる。逆に、複数の演算装置が図示および/または記載されている場合であっても、単一の演算装置を用いることができる。
【0033】
「コンピュータプログラム」あるいは同義の「ソフトウェア」は、本開示における1以上の適切な機能を実行するため、および/または、1以上の方法を実行するために、非一時的コンピュータ可読メモリまたは非一時的コンピュータ可読媒体に保存された、任意の命令セットを意味する。明示的な記載がない場合でも、本開示において、演算装置は、本開示における1以上の適切な機能を実行するため、および/または1以上の方法を実行するために非一時的コンピュータ可読メモリまたは非一時的コンピュータ可読媒体に保存された任意の命令セットを有するソフトウェアを含む
【0034】
「マスク」または「マスクモデル」は、画像上に置かれたとき、画像のその部分を除去する1以上のデータ表現を意味する。
【0035】
「非一時的コンピュータ可読メモリ」または互換可能に「非一時的コンピュータ可読媒体」は、1以上のコンピュータプログラムを保存するための、ハードドライブ、ソリッドステートドライブ、コンパクトディスクドライブ、DVDドライブなどのいずれか1つまたは複数の組み合わせであり得る。
【0036】
「フォトリアルなレンダリング」は、テレビ放送のために供給される品質、たとえば少なくとも720ピクセルの解像度での再生を意味する。「フォトリアルなレンダリング」は、新規カメラビューから構成される1以上のシーケンスにおける1以上の画像フレームをいい、この場合、それぞれのビューは、新規ビュー画像の出力ピクセルラスタ値とグラウンドトゥルース画像との間の相違が10%未満となるように、色およびオクルージョンの情報を有する3Dデータ表現のピクセルの外挿としてレンダリングされる。ここで、グラウンドトゥルース画像は、画像センサから直接生成され、好ましくは、後述するように画像フレームである。
【0037】
より具体的には、新規ビューが「フォトリアルなレンダリング」であるか否かは、次のRMSベースのフォトリアリズム決定プロセスを用いて決定することもできる。
1.任意の適切なシーンであり得るシーンの画像を取り込む。
2.新規ビュー、すなわち取り込まれた画像におけるシーンと同じシーンの画像であって、ステップ1において画像を取り込んだカメラの内因性および外因性の属性を模倣した画像を、画像解析を含む1以上のアルゴリズムを用いて生成する。
3.取り込まれた画像と新規ビューとの間の差を、徹底的なRMS比較を用いて以下のように決定する。
a.取り込まれた画像の全領域および新規ビューの全領域のそれぞれを、少なくとも100等分されたセクションに分割する。取り込まれた画像の領域、新規ビューの領域、およびそれぞれのセクションは、ピクセル単位で測定され、サイズが少なくとも1ピクセルであるべきである。セクションは、取り込まれた画像および新規ビューの両方において同一でなければならず、同じピクセルオフセットに位置する両画像からのセクションは対応すると考えるべきである。
b.実際に取り込まれた画像における対応するセクションと新規ビューにおけるセクションとの間で、RGB色空間におけるピクセルごとのRMS比較を、以下の計算をすることによって行う。
RMS=(|Rm−Rg|)^2+|Gm−Gg|^2+|Bm−Bg|^2 )^0.5
式中R、G、Bは、RGB値を表し、Xmは作られた画像のピクセル値を示し、Xgは取り込まれた画像のピクセル値を表す。
c.RMS値を、純粋白色と純粋黒色の間の距離が1となるように線形に正規化する。
d.RMS値を、1つのセクション内の全ピクセルについて合計し、次にそのセクションの領域における合計を、純粋白色および純粋黒色セクションの間の結果が1となるように分割する。
e.全セクションの全比較から得られた最大値を選択する。
4.フォトリアルな品質は、徹底的なRMS比較の結果が0.1(10%)未満である場合に達成される。
【0038】
「ユーザ」は、本開示における1以上のシステムおよび/または方法の全体または一部に対する必要、要求、または意図を有しているであろう1名以上の個人、人間、および/またはグループを意味する。本開示の1以上の特徴のユーザは、必ずしも本開示の1以上の他の特徴のユーザとも同一のユーザまたは関連するユーザである必要はない。さらに、1つの特徴のユーザは、同一のまたは異なる特徴の他のユーザを知っていなくてもよい。1名のユーザが図示および/または記載されている場合に、複数のユーザが存在する可能性がある。複数のユーザが図示および/または記載されている場合に、1名のユーザのみしか存在しない可能性がある。種々の理由のために、1名のユーザまたは1つのユーザグループが、本明細書に記載した1以上のステップを実行することが好ましいが、本開示は、ユーザの同一性におけるそのような切り換えは明示的に記載されていなくても排除されない。したがって、1名のユーザまたはユーザ群が、あるステップまたはステップの一部を実施するものとして記載されている場合、他のユーザまたはユーザ群が、他のユーザまたはユーザ群によって実施されたステップの後のまたはその前のステップ、もしくはそのステップの後続する部分またはその前の部分を実施してもよい。
【0039】
ユーザは、「フォトリアルなレンダリング」を観る人間であってもよい。従来の映像では、ユーザ・視聴者が、1以上のカメラからの視野に一致する予め定められたビューからの映像を観察する。これに対して、フォトリアルなレンダリングを観察することは、ユーザ・視聴者が、1以上のカメラからの視野と必ずしも一致しない新規ビューを対話的に選択することを意味する。
【0040】
それが適切な場合には、他の用語または概念が、本開示の他の場所で定義される。本セクションからそのような定義が除かれていることを、その用語または概念が他の任意の意図した目的のために適切に定義されていなかったとは解してはならない。
【0041】
「マルチビュー再構成のためのシステム」
図1は、本発明の1以上の実施形態によるマルチビュー再構成のためのシステムの全体を示す概略図である。
図1bは、本発明の1以上の実施形態による
図1aのシステムのコントローラの概略図である。
図1cは、本発明の1以上の実施形態による
図1aのシステム上の少なくとも一部を操作する複数の方法の概要を示す。
【0042】
図2aは、本発明の1以上の実施形態によるイベント空間におけるイベントの平面図である。
図2bは、
図2aにおけるイベントおよびイベント空間の一部の立面図である。
図2cは、
図2aのイベント空間において選択されたカメラの重複する視野の平面図である。
図3は、本発明の1以上の実施形態による画像化トリガ、タイマ、および画像フレームを捉える複数のカメラの概略図である。
【0043】
本発明の1以上の実施形態によれば、システム100は、イベント空間15において生じるイベント10の1以上の部分を記録し、画像フレームからの画像データ6を較正し、イベント10の周囲16から前景17を分割し、イベント10の記録部分(複数可)を再構成し、再構成したものをレンダリングし、新規ビュー66を含む、オクルージョンおよび色の問題を効果的に解決するフォトリアルな出力を得る。
【0044】
具体的には、システム100は、
複数の同期した画像フレーム5を記録し、捉え、
画像フレーム5から画像データ6を抽出し、
画像データ6を、少なくとも1つの周囲モデルと少なくとも1つの前景モデルに再構成し、かつ
フォトリアルな品質を有する1以上のユーザ選択の新規ビューを含む再生64に前記モデルをレンダリングする。
【0045】
本発明の1以上の実施形態によれば、マルチビュー再構成システム100は、コントローラ105、1以上の画像化サーバ110、および、複数の通信リンク120によって、コントローラ105および/または少なくとも1つのサーバ110と相互接続される、複数のカメラ115を備える。
【0046】
コントローラ105は、システム100の制御を提供し、1以上のユーザのために任意の方法の機能制御を可能にする任意の適切な演算装置であり得る。好ましくは、システム100は、1以上のユーザによりシステム全体を効果的に制御するための単一のコントローラ105を備える。
【0047】
必要に応じて、また当分野で理解されるように、コントローラ105は、明示的に記載されていなくても必要な場合、物理的に具体化されたものであるか仮想的なものであるかに関わらず、1以上のヒューマンインタフェース装置を備えていてもよい。ヒューマンインタフェース装置は、1以上のモニタ、キーボード、映像ジョグデバイス、映像または画像再生制御装置、および/または他の任意の既知のまたは今後開発される装置であり得る。
【0048】
コントローラ105は、1以上の独立した制御サーバ(図示せず)を含むことができ、それぞれの制御サーバは、1以上の演算装置として構成される。ここで、第1の制御サーバは、1以上のモジュールの始動、および/または、1以上のカメラと後述する1以上のサーバ110すなわち画像化サーバとの間のデータの転送および/またはハンドリングのために用いられる。第1の制御サーバは、第1の制御サーバと一体化された1以上のサーバ110を含む、あるいは備えることが好ましいが、一体化は必ずしも必要とされない。第2の制御サーバ(図示せず)は、カメラマネージャ106として使用され、このカメラマネージャは、任意の適切なインタフェースを有し得るが、好ましくはユーザが容易かつ効率的にアクション、映像データ20、または他の情報を選択できるようにするためのグラフィカル・ユーザインタフェースを含む、あるいは備える。
【0049】
ユーザは1名であることが非常に好ましいが、複数のユーザが、コントローラ105および/またはカメラマネージャ106を用いてもよい。たとえば、「ナビゲータ」ユーザが、イベント前およびイベント後のプロシージャを実施し、システム100が技術的に機能的であり、かつ、あらゆる不安定さの問題を解決することを保証し、「パイロット」ユーザがカメラマネージャ106を操作する間に、たとえば、画像取り込み関連のステップ、フレーム選択、およびカメラ経路選択/生成のためのヒューマンインタラクションを提供することもできる。
【0050】
本発明の1以上の実施形態(第1のサーバ・メモリ実施形態)によれば、サーバ110は、システム100の1以上のデータを保存するための1以上のメモリを有する任意の適切な演算装置であり得る。好ましくは、サーバ110は、カメラ115から受け取った、捉えられた画像フレーム5の周期的バッファを保存するための第1のメモリ110aと、第1のメモリ110aから取り込まれた複数の画像フレーム5を保存するための第2のメモリ110bとを備える。
【0051】
本発明の1以上の実施形態(第2のサーバ・メモリ実施形態)によれば、それぞれのサーバ110は、いずれも好ましくはランダムアクセスメモリである少なくとも2つの第1のメモリ110aと、いずれも好ましくはソリッドステートドライブである1つ以上の第2のメモリ110bとを含む任意の適切な演算装置であり得る。第1のメモリ110aは、予め定められた量の画像データ、たとえば生画像ファイルフォーマットの1分の画像データを、周期的に、たとえば先入れ先出し方式で保存する。取り込み関連のコマンド、たとえば取り込み開始コマンド106(後述)が発生すると、サーバ110は、画像データを1以上の第2のメモリ110bに転送する。他の第1のメモリ110aは、本明細書に記載されているように、セグメント化、再構成、コンフィギュレーション、およびレンダリングのために用いることができる。
【0052】
本発明の1以上の実施形態によれば、サーバ110は、1つの第1のメモリ110aが生画像ファイルフォーマットの画像データを1以上の第2メモリ110bに連続的に書き込み、すなわちストリーミングするように構成することもできる。他の第1のメモリ110aは、本明細書に記載されているように、セグメント化、再構成、コンフィギュレーション、およびレンダリングのために用いることができる。
【0053】
本発明の1以上の実施形態によれば、それぞれのカメラ115は、そのカメラ専用の1つのサーバ110とともに動作可能である。すなわち、それぞれのカメラ115は、そのカメラ115専用のサーバ110と一対一の関係にある。有利な点として、1つのカメラと1つのサーバが一対一の関係にあることにより、帯域幅チョークポイントなどの1以上のネットワークの問題を回避するか、または処理チョークポイントを回避する、バランスの取れたネットワークアーキテクチャが可能となる。しかし、サーバ110は、たとえばRAID構成サーバのような複数のデータアクセス可能メモリを備える中央データサーバとして構成してもよい。
【0054】
カメラマネージャ106は、サーバ110、カメラ115、および通信リング120をモニタリングし、制御するべくコントローラ105上で実行される。カメラマネージャ106は、物理的演算装置としてコントローラ105内で具現化されるかまたはコントローラ105と結合されていてもよいが、コントローラ105において実行されるソフトウェアであることが好ましく、これにより1以上の機能の追加を容易にできる。
【0055】
カメラマネージャ106は、任意の適切なインタフェースを備えることができるが、好ましくは、ユーザが容易かつ効率的にアクション、映像データ、または他の情報を選択できるグラフィカル・ユーザインタフェースからなるか、あるいは備えることが好ましい。グラフィカル・ユーザインタフェース内に、カメラマネージャ106内であるがグラフィカル・ユーザインタフェースの外に、またはカメラマネージャとは別体として、カメラマネージャはさらに、カメラ115とは別体のカメラからのイベント10を観察しおよび/または追跡するための;1以上のカメラ115で捉えられた1以上の画像を選択的に観察するための;および/または、1以上のカメラ115、サーバ110、および/または通信リンク120の1以上の状態インジケータを選択的に観察するための、1以上の現実または仮想のモニタまたはスクリーンを備える。
【0056】
カメラマネージャ106は、イベント空間15の同期画像フレームのキャプチャを開始するための画像化トリガ107をも備えていてもよい。画像化トリガ107は、システム100内に物理的演算装置として具現化されていてもよく、あるいは任意の他の演算装置と結合されていてもよいが、コントローラ105内で実行されるソフトウェアであることが好ましく、これにより、1以上の機能の追加を容易にできる。画像化トリガ107の1以上の状態インジケータは、グラフィカル・ユーザインタフェース内に、またはカメラマネージャ106内であるがグラフィカル・ユーザインタフェースの外に組み込まれるか、またはそれらとは別体の1以上のディスプレイ105として組み込まれていてもよい。
【0057】
画像化トリガ107は、1以上の規則的な間隔で周期的タイミング信号を生成し、かつ1以上のカメラ115に対して命令セットに含めて周期的信号を発し、その命令セットを受信したすべてのカメラ115の間で同期して画像フレーム5を取り込むためのタイマ108を備えている。
【0058】
タイマ108は、任意の適切なタイマであり得るが、好ましくは、毎秒1以上の信号を生成することができるロジックコントローラタイマ、デジタルチップタイマ、またはクロック発振器であり、命令セットに含めて周期的信号を発することができる1以上の適切な送信器を備えていてもよい。タイマ108は、命令セットにおいて1以上のタイミング信号に伴う唯一のおよび/または連続的な識別子を生成することができる。したがって、たとえば、命令セットが、タイミング信号、画像キャプチャすなわち画像フレーム5を生成させるためのそれぞれのカメラ115への1以上の命令、および特定のタイミング信号に関連する唯一のおよび/または連続的な識別子を含み得る。しかし、命令セットは、信号発生の間で変化しないパルス信号のみからなるものでもよく、その場合、カメラ115は画像フレーム5を自動的に捉える。
【0059】
フレーム取り込みモジュール109が、カメラマネージャ106および画像化トリガ107に関連づけられており、フレーム取り込みモジュール109は、1以上の、好ましくはすべてのサーバ110上で実行されるソフトウェアであり、カメラ115によって捉えられた画像フレーム5をサーバ110の1以上のメモリ内に保存する。
【0060】
複数のカメラのそれぞれのカメラ115は、異なるタイプのカメラでもよいが、好ましくは、すべてのカメラ115は同じタイプのカメラで、任意の適切なデジタル画像装置を備える。カメラ115は、固定焦点のまたは調節可能な焦点を有するレンズと、1以上の画像データ6を取得するための任意の解像度を有する画像センサと、画像センサと相互作用し、任意の適切なフォーマットで任意のメモリストレージに保存される画像フレーム5の形式で画像データ6を、1秒間あたり複数回捉えることができる演算装置と、カメラ115とコントローラ105および/またはサーバ110との間の通信を確立し、維持するための任意の適切な通信インタフェースとを備える。
【0061】
好ましくは、画像フレーム5は、画像センサのデジタルデータ、すなわち「生(RAW)の」ピクセル情報またはデジタルネガを保存する生(RAW)画像ファイルフォーマットで保存される。限定しないが、画像フレーム5の解像度は変えられるものであり、3840×2160から5120×3072の範囲で変化できることが好ましい。なお、ここでの解像度は、幅ピクセル×高さピクセルである。
【0062】
本発明の1以上の実施形態によれば、カメラ115は4Kカメラでもよく、4Kカメラは、一般的に約4000ピクセルの水平解像度を有するカメラとして当分野で知られている。たとえば、4Kカメラとしてのカメラ115は、4K産業の標準により、19:10または1.9:1のアスペクト比で4096×2160の解像度を有する超高精細カメラであることが好ましく、8メガピクセルの画像センサを有している。あるいは、9メガピクセルの画像センサを用いて4096×2304の解像度を有することもできる。本発明の1以上の実施形態によれば、カメラ115として5Kカメラを用いることもできる。
【0063】
本発明の1以上の実施形態によれば、カメラ115は5Kカメラであり、5Kカメラらは、一般的に15メガピクセルの画像センサを用いて5120×3072の解像度を有するカメラとして当分野で知られている。代替的にまたは追加的に、カメラ115は、1秒間あたり30、40、または50フレームで5120×3072の解像度を生み出す16メガピクセルを有する画像センサを備える5Kカメラであることが好ましい。
【0064】
カメラ115には、既知のまたは今後発明される任意の適切な入力センサを有する任意の適切なカメラを用いることができる。カメラセンサのサイズおよび解像度は、年々増加しているので、カメラ115としては、最も進歩した市販のカメラを用いることが期待される。
【0065】
カメラ115は、好ましくはイベント空間15の外側で好ましくは固定位置に配置され、イベント空間15の1以上の部分(および、任意選択により、周囲16の1以上の部分)に固定的に向けられた視野117を有している。本発明の1以上の実施形態によれば、カメラ115は可動式、すなわち可変視野117を有するものでもよい。
【0066】
カメラ位置116において視野117を有する場合、カメラ115は、少なくとも1以上の画像フレーム5を捉え、この画像フレームはイベント空間15の、さらに任意選択で、周囲16の画像データを含む。イベント空間15の少なくとも一部、および任意選択で、背景の少なくとも一部が、少なくとも2つのカメラによって捉えられるが、それぞれのカメラ115は、イベント空間15の同じ部分および/または周囲16の同じ部分に対して、異なる別の視野117を有する。これは、好ましくは、
図2cにおいて選択されたカメラ115について示されているように、異なる別のカメラ位置116にそれぞれのカメラ115を配置することによって達成される。異なるカメラ115からの複数の同期画像フレーム5は、画像フレームセット7である。1つの画像フレームセット7は、時間的に次の来る別の画像フレームセット7に「隣接」することができる。
【0067】
本発明の1以上の好ましい実施形態によれば、複数のカメラ115のそれぞれのカメラ115は、1秒間あたり少なくとも30フレームを捉えられる5120×3072の解像度を有する16メガピクセルの画像センサを備える5Kカメラである。それぞれのカメラ115は、固定化された不動のカメラ位置116に配置され、イベント空間15の同じ部分および/または周囲16の同じ部分の視野117を有し、イベント空間15の、また任意選択により周囲16の少なくとも1以上の画像フレーム5を捉える。
【0068】
通信リンク120は、1以上のカメラ115を、コントローラ105および/または1以上のサーバ110と動作可能に接続された状態とする任意の適切な装置である。通信リンク120は、ビデオ画像を必要な帯域幅で転送可能な任意の適切な媒体、たとえば限定しないが、同軸ケーブル、無線通信装置、赤外線通信装置、および/またはそれらの組み合わせである。通信リンク120は、通信リンクの範囲を拡大する1以上の増幅装置120aと、1以上の通信リンク120を互いに接続する1以上のノード120b、特に1以上のタイミング信号を発するべく戦略的に配置された主ノードとを備える。
【0069】
本発明の1以上の好ましい実施形態によれば、それぞれのカメラ115は、ファイバエクステンダである増幅装置120aを介して対応するサーバ110に接続される。
【0070】
図示されていないが、電力は、必要および/または要望に応じて、1以上の電源からシステム100の任意の部分に容易に供給することができる。
【0071】
必要かつ望ましい幾何学的測定値、たとえば前記周囲の1以上の基準高さデータの取得などは、直接の測定および/または任意の他の適切な手段によって得ることができる。
【0072】
システム100の1以上の構成要素の間、特に1以上のカメラ115との通信は、あらゆる適切な通信プロトコルを用いて達成することができる。通信プロトコルとしては、AIA(Automated Imaging Association)によるカメラ Link(登録商標)標準を挙げることができ、より具体的には、2011年11月に公表されたカメラLink(登録商標)2.0標準であり得る。
【0073】
「イベント前(プリ・イベント)」
「初期セットアップ」
図4は、本発明の1以上の実施形態による初期セットアップ方法の概略図である。
【0074】
本発明の1以上の実施形態によれば、1以上のユーザがシステム100の初期セットアップ方法200を実施する。初期セットアップ方法は、1以上のステップ202〜208を含む。
【0075】
初期セットアップ方法は、イベント空間15で生じているイベント10を、新規ビューからのコンフィギュレーションおよびレンダリングのために捉える必要があるときに実施される。イベント10は、物理的空間で生じているあらゆる適切なイベントである。イベント10には、コンピュータ生成画像(CGI)、たとえばディスプレイ装置のスクリーン上に示されているCGIが含まれるが、イベント10自体はCGIではない。この点に関し、イベント10は、少なくとも1つの形を有しボリュームがある物体、すなわち3次元空間を占める物理的実体である点でCGIから区別される。
【0076】
しかしながら、新規ビューは、コンピュータ生成画像も含むことがきる。ただし、背景のイベント前におけるボリュームの再構成、および、イベントにおける前景自体そのままのボリュームの再構成はいずれも、CGIではなく、イベント10の物質的世界に基づいた画像のフォトリアルなレンダリングである。
【0077】
イベント空間15は、任意の適切な空間である。たとえば、イベント10は、スタジアムのグラウンドといったイベント空間15で行われる、複数のプレーヤを含むフットボール、野球、サッカーの試合などを挙げることができる。その他、イベント10の例として、室内ヨガスタジオのイベント空間15で生ずるヨガ指導、病院の手術室で行われる手術、さらには、街中の広場などのイベント空間15における一般歩行者の往来なども挙げることができる。
【0078】
初期セットアップ方法200は一度だけ実施される場合もある。たとえば、イベント空間15がヨガスタジオであり、通常のレッスンの間にヨガの指導者の姿勢を示すために用いられること想定されている場合である。しかし、初期セットアップ方法200は、複数回実施される場合もある。たとえば、スタジアムで複数種のスポーツイベント(イベント)が開催される場合であって、イベント空間15であるグラウンドが、スポーツの種類に応じて変わる場合である。
【0079】
初期セットアップ方法200は、好ましくは、ステップ202から開始され、システム100によって捉えられ再構成される1以上のイベントが生じるイベント空間15が、ユーザにより定義すなわち決定される。イベント空間15は、規則的な3次元の幾何学的形状であることが好ましいが、任意の使いやすい3次元形状であってもよい。
【0080】
ステップ202において、捉えられる周囲16の範囲を、ユーザが定義すなわち決定してもよい。周囲16は、好ましくは、イベント空間15を囲む1以上の周囲的な(マージンのような)3次元空間あるいは3次元領域であり、イベント10の再構成に含まれることが必要とされるか、あるいは望ましい。周囲16は、任意の使いやすい形状を採ることができ、これらには限定されないが、規則的なまたは不規則な2次元または3次元の幾何学的形状である。
【0081】
周囲16が1以上の静的な要素を含むかまたはそれからなるのに対して、前景17が1以上の動的すなわち運動する要素を含むかまたはそれからなる点で、周囲16は、前景17と異なる。限定はされないが、通常、周囲16は、イベント空間15における実質的に静的な要素であり、シート、フロア、テーブル、ベンチ、グラウンド、サッカー場でのマーキングのようなグラウンド・マーキング、建築物、静的または動的な広告、噴水、審判の椅子、屋根のジョイスト、屋根、照明、シャンデリア、チームのダグアウト、フラグ、ゴール、ゴールポストなどが挙げられる。
【0082】
たとえば、イベント10がバレーボールの試合などのスポーツイベントである場合、イベント空間15は、試合の競技場全体または一部、すなわち、ピッチと競技場に1つ以上の間隔を結ぶように延びるタッチラインの一部とを包囲する3次元空間として定義される。イベント空間15は、ピッチ自体の表面を含む必要はなく、ネット上でボレーが行われると予測される中央ではより高いところで、パスが対象となる他の領域ではより低いところで、形状が切りとられる。周囲16は、観客席エリア、コーチエリア、および/またはピッチといった部分を1つ以上含む。
【0083】
しかし、対象物が周囲16の一部であるが、あとで前景の一部になることもある。たとえば、シートは、通常、スポーツイベントの初めには周囲の一部である。しかしながら、スポーツイベントのある時点で、怒ったプレーヤまたはコーチがシートを掴んでスポーツイベントのフィールド内に投げ込む場合がある。こうしたイベントは、システム100においては関心事となるので、投げ込まれている状態にあるシートは、周囲16としてではなく、前景17の一部として扱われ、前景17の新規ビュー画像に含められる。
【0084】
ステップ204では、ユーザは、イベント空間15および/または周囲16を捉えるために必要とされる、または望ましいカメラ115の数を決定する。次に、ユーザは、それぞれのカメラ115について、少なくとも1つのカメラ位置116を決定する。カメラ位置の選択およびカメラの物理的な取り付けの後、ユーザは、イベント空間15および/または周囲16の1以上の部分を捉える視野117を有するように、カメラ115の向きを決定する。好ましくは、カメラは、イベント空間15において目立たない位置に配置される。たとえば、イベント空間15がスポーツイベントである場合、スタジアムのインフラ構造物、たとえば梁または柱の上にカメラ位置116が設定され、競技フィールドが視野117となる。
【0085】
前景要素を効果的に捉えるために、好ましくは、前景要素は、互いに隣接して連続的に配置された少なくとも3台のカメラによって捉えられる、すなわち前景17の特定の要素が、互いに隣接する連続的なカメラ位置116に配置された3台のカメラによって捉えられることが好ましい。対照的に、周囲16の特定の要素は、1台のカメラ115だけによって捉えられてもよいが(この場合、手動によってのみ、この領域にあるボリュームの再構成が可能となる)、2台以上のカメラ115が周囲16の特定の要素を画像化することが好ましい。
【0086】
ステップ204では、イベント空間に近接する構造物の物理的な限界などの1以上の制約が存在した場合には、イベント空間15および/または周囲16を再定義することが可能である。
【0087】
ステップ206では、任意選択的に、1以上のカメラ115に組み込まれた全地球測位システム(GPS)受信器からのデータを用いて、すべてのカメラ115についてカメラ位置データ116aが決定される。
【0088】
カメラ位置データ116aには、すべてのカメラ115に共通に選択される、絶対的基準点または局所的基準点である基準点に対する、それぞれのカメラ115(より好ましくは、カメラ115の画像センサの中心点)ごとの空間位置データが含まれる。たとえば、空間位置データは、すべてのカメラ115について選択された基準点に対する、X、Y、およびZ座標で表すことができる。
【0089】
カメラ位置データ116aには、それぞれのカメラ(より好ましくは、カメラ115の画像センサの中心点)ごとの撮像方向データがさらに含まれる。撮像方向データは、カメラ(または画像センサ)の空間位置データに関連付けられる。たとえば、空間位置データにおいては、撮像方向はユークリッド幾何学的なラインとして記述される。しかしながら、撮像方向データは、カメラ(または画像センサ)の空間位置に対する、オイラー角またはテイト・ブライアン角、すなわちヨー、ピッチ、およびロールとして記述することもできる。カメラ位置データ116aは、サーバ110の1以上のメモリ110cまたは他の任意の適切なストレージに保存され、かつ任意の適切なデータフォームで保存される。たとえば、カメラ位置データ116aは、センサ、ラスタ、および深度情報などのカメラ115に関するデータとともに、カメラ投影マトリックスすなわちカメラマトリックス233として保存される。
【0090】
好ましくは、1回以上の検討に基づいて、カメラ115が配置され、および/または、カメラ位置116が選択される。連続したカメラの間でイベント空間15すなわちカバー領域の中心点を向けて生成される三角形上に、30度以下の絶対座標系(すなわち3次元の)円弧が存在するように、カメラ115が配置、および/または、カメラ位置116が選択されるべきである。物理的に隣接するカメラ115間と、「再構成されるべき前景」とみなされた最近接点との間に生成される三角形上に、30度以下の絶対座標系(すなわち3次元の)円弧が存在するように、カメラ115が配置、および/または、カメラ位置116が選択されるべきである。前景17とみなされたそれぞれのイベント空間15すなわちカバー領域は、少なくとも3つの連続したカメラによって画像化されるべきである。
【0091】
たとえば、スポーツイベントの場合、フィールドの中心を向く2つのカメラ115の間の角度は、20度以下(オクルージョンをうまく処理するためには16度が好ましい)であり、これらのカメラに関してフィールドの最も近接する縁部を向く2つのカメラの間は30度以下である。
【0092】
本発明の1以上の実施形態によれば、カメラ位置データ116aは、後述するように、1以上の画像フレーム5から決定される
【0093】
ステップ208では、ユーザが、コントローラ105および/またはサーバ110の適切な物理的位置を決定し、コントローラおよびサーバをそこに配置する。次に、ユーザは、1以上の通信リンク120を介して、カメラ115をコントローラ105および/またはサーバ110に接続する。
【0094】
本発明の1以上の実施形態によれば、ステップ208は、新たに設けられた通信リンク120および/または既存の通信ネットワーク(インターネット、RS232、LAN、WANなど)を介して、1以上のカメラ115を、任意の適切な位置にすでに配置されたコントローラ105および/またはサーバ110に接続することによって実施することができる。
【0095】
本発明の1以上の実施形態によれば、ステップ204、206、および208は、ステップ202の前に実施してもよい。したがって、ステップ202は、1以上のカメラ115から受け取った撮像データに基づいて、捉えられるべきイベント空間15および/または周囲16を、コントローラ105により自動的に決定することもできる。たとえば、システム100は、セキュリティを目的に、広場などのバブリックスペースにおいて発生する活動を特定するために用いることができる。この場合、ステップ204、206、および208において、通常のインフラのアップグレードによって、カメラ115がすでに配置されていたり、その測量データを使用することにより、カメラ位置データ116aが、すでに決定されて保存されていたりする。そして、1以上のカメラ115を用いて、パブリックスペースにおける活動すなわちイベント10が発生する場所を決定することにより、イベント空間15が活動の発生に関連づけて定められる。なお、処理能力やネットワーク容量の節約、および/または他の任意の適切な理由から、一連のステップにおいて、すべてのカメラ115が用いられるわけではない。
【0096】
「イベント前カメラ較正および周囲モデリング」
図5は、本発明の1以上の実施形態による、較正および周囲モデリング(CEM)方法の概略図である。
【0097】
本発明の1以上の実施形態によれば、イベント10の発生する前、すなわち「イベント前」に、ユーザは、システム100の較正および周囲モデリング(CEM)モジュール221を利用して、CEM方法220を実行する。このCEM方法220は、1以上のステップ222〜239を含み、ステップ222〜239の内の1以上のステップは、本明細書に記載された番号順に行われることが好ましい。
【0098】
CEM方法220は、好ましくはCEMモジュール221上で実行され、イベント10に関連する周囲16のその後の再構成において使用される周囲モデル223を生成する。周囲モデル223は、背景3Dモデルまたは背景データ表現であると解釈することができる。CEM方法220は、イベント10の画像フレーム5を捉える前に実施されることが好ましい。CEMモジュール221は、システム100における、あるいは他の任意の演算装置に関連づけられた物理的演算装置でもよいが、コントローラ105において実行されるソフトウェアであることが好ましく、これにより、1以上の機能の追加を容易にできる。
【0099】
なお、好ましくは、前記周囲は、イベント前にモデル化され、主として活動を構成する前景は、イベントの間にモデル化される。
【0100】
CEM方法220は、それぞれのカメラ115について、カメラ位置データ116を、他のカメラ位置との関係から決定し、その情報を、後述するカメラデータベース52に保存し、バンドル調整後に「存続」できる特徴に基づいて、疎な周囲モデルを展開する。特に、この較正方法は、画像フレームを取り込み、さらに、特にデモザイクして色画像ファイルとすることにより、カメラ同士の間でマッチングされる特徴を得ている。代替的に、生画像(RAW画像)を用いて、デモザイク後に、カメラ同士の間でマッチングされる特徴を得ることもできる。
【0101】
ステップ222では、初期セットアップ方法200を実施した後に、ユーザはCEMモジュール221を開始して、カメラから同期画像フレーム5の少なくとも1つの画像フレームセット7を取り込んでデータベース50に入れ、周囲16を捉える。
【0102】
CEMモジュール221は、任意の適切な方法を用いて、カメラ115から同期画像フレーム5を取得してデータベース50に保存することができる。しかしながら、画像取得方法240の実行に実質的に類似した方法を使用することが好ましい。この場合、イベント10の発生なく、すなわちイベント前に使用して、周囲16、特にイベント10が生じることになるグラウンドの表面が容易に認識されるようにすることが好ましい。
【0103】
ステップ224では、取り込みフレーム40のそれぞれが、CEMモジュール221により、当分野で知られた1以上のデモザイク処理アルゴリズムに従って、デモザイクされ、処理されることにより、生画像ファイルフォーマットからフォーマッティングされた画像ファイルにされ、画像データベース50に保存される。たとえば、取り込みフレーム40のそれぞれは、生画像ファイルのデモザイクにより、tiff画像ファイルまたはjpg画像ファイルの処理済みフレーム40aに変換される。
【0104】
ステップ226では、CEMモジュール221は、特徴抽出方法226aを実行する。特徴抽出方法226aは、当分野で知られた1以上のアルゴリズムを用いて、それぞれの処理済みフレーム40aから1以上の特徴57を抽出し、特徴57を、その処理済みフレーム40aに関連づけられた特徴データベース58に保存する。
【0105】
特徴は、処理済みフレーム40a内において、1以上の隣接するピクセルより目立つピクセルまたはピクセルセットである。通常、ピクセルは、処理済み画像40aに関する画像情報である。この画像情報は、立体または非立体のエッジライン、形状、または外形である。特に、特徴57は、周囲16に関連する画像情報を示す。
【0106】
特徴データベース58は、特徴57についてのあらゆる有用な情報を含むことができるが、好ましくは、処理済みフレーム40a内の特徴の2D座標、処理済みフレーム40aの参照識別子(好ましくは処理済みフレーム40aに関連する画像フレーム5の同一のまたは異なる参照識別子である)、スケール、方向、テンプレート、スケール不変特徴変換(SIFT)アルゴリズムの使用に関連する1以上の特徴パラメータ、固有値、コンフィグレーションおよびレンダリングまたはバンドル調整における特徴の使用頻度、1以上の特徴57の使用を示す1以上のタイムスタンプ、および/または、同じ特徴57がみられる処理済みフレーム40aの参照識別子のリストを含む。
【0107】
ステップ228において、CEMモジュール221は、バンドル調整28aを実施する。それぞれの処理済みフレーム40aの投影画は、当分野で知られているようにバンドル調整において他の処理済みフレーム40aと同時に、CEMモジュール221によって再調整され、仮想3D空間59におけるすべての処理済みフレームの自己較正を実質的に達成する。バンドル調整は、好ましくは、すべての処理済みフレーム40a、たとえばカメラ115の間の不一致を分散することによって、風、振動、隣接移動などによる意図しない移動からカメラ115の位置を再調整する。また、バンドル調整は、カメラ位置および周囲モデルの「構造」すなわちマトリックスを決定するための基礎を、他のモジュールとの連携により、提供する。この周囲モデルのマトリックスは、疎なマトリックスであり、これを密なマトリックスにするためには、マニュアルで増強する必要がある。なお、疎と密は、当分野で一般的に知られている用語と同義で用いられる。
【0108】
具体的には、「イベント前較正」はバンドル調整を介して達成され、「ライブイベント安定化/レジスト(重ね調整)」は、たとえばレーベンバーグ・マーカート法を用いた安定化を介して行われる。
【0109】
好ましくは、バンドル調整のための特徴マッチングは、少なくとも2つの処理済みフレーム40aの1以上の特徴57を仮想3D空間59に投影し、1以上の特徴57の3D位置を、少なくとも2つの処理済みフレーム40の投影における同一の1以上の特徴57のマッチングに基づき、較正することによって行われる。より具体的には、複数の処理済みフレーム40aの特徴が、仮想3D空間59においてマッチングされる。
【0110】
ステップ230では、CEMモジュール221が、仮想3D空間59に対するバンドル調整228aの幾何学的結果から、それぞれの処理済みフレーム40aの投影における正規化された原点すなわち投影位置230aを得る。正規化された原点は実際の原点とは異なるが、これは前記調整が、それぞれのカメラの実際の誤差を決定するのではなく、当分野で知られた1以上のアルゴリズムに従って、それぞれの投影の原点に関する誤差を較正すなわち分散するためである。さらに、投影位置230aは、実質的に画像センサの原点と近いので、CEMモジュール221は、少なくともそれぞれのカメラ115のカメラ位置を決定して、カメラ115からの画像データ6を3D空間59における対応する投影位置230aと相互に関連づける。
【0111】
ここで、投影位置230aは、投影位置データ230bを含む。投影位置データ230bは、基準点に対する、それぞれのカメラ115(より好ましくは、カメラ115の画像センサの中心点)用の3D空間59における空間位置データを含む。基準点は、すべてのカメラに共通に選択された絶対的基準点または局所的基準点である。たとえば、空間位置データは、すべてのカメラ115に対して選択された基準点に対する、X、Y、およびZ座標で表される。
【0112】
投影位置データ230bは、それぞれのカメラ115(より好ましくは、カメラ115の画像センサの中心点)の撮像方向データをさらに含む。撮像方向データは、カメラ115(または画像センサ)の空間位置データに対するものであり、たとえば、空間位置データにおいて撮像方向を記述するユークリッド幾何学的ラインである。しかし、撮像方向データは、カメラ115(または画像センサ)の空間的位置の対するオイラー角またはテイト・ブライアン角、すなわち、ヨー角、ピッチ角、およびロール角として記述することもできる。
【0113】
ステップ232では、CEMモジュール221は、投影位置データ230bを用いて、1以上のカメラマトリックス233を生成し、それぞれのカメラ115について、処理済みフレーム40aの2D位置からの画像データ6を、3D空間59における3D位置へマッピングする。
【0114】
カメラマトリックス233は、安定化方法308において、意図しないカメラの動きを補償するための別のステップにおいても、用いることができる。すなわち、それぞれのカメラマトリックス233は、カメラ115の位置(すなわちカメラ位置データ116a)を定義し、その位置または位置データは、カメラ115が固定されている上部構造に影響を与える風や人の往来などの種々の要因により、カメラ115が動いたときに、安定化方法308において再定義される。
【0115】
ステップ234において、カメラマトリックス233が計算された後、CEMモジュール221は、物理的に隣接するカメラ115がカメラ位置リスト235においても隣接するように、カメラ115を投影位置データ230bに基づいて順序づけして、カメラ位置リスト235にする。
【0116】
ステップ236では、CEMモジュール221は、好ましくは特徴抽出方法226aに実質的に類似した特徴抽出方法を繰り返して、ステップ226で見出された特徴57に近接する、さらなる特徴57を抽出し、保存する。カメラ115の較正のために、いくつかの目立つ特徴57のみが必要とされるのであれば、システムをより迅速にオンラインで利用可能にするための負担および処理時間を節約できるため、有利である。
【0117】
しかしながら、本発明の1以上の実施形態によれば、具体的には、目立つ特徴57が抽出された後、初めに見出された特徴に近接するが、1以上の抽出アルゴリズムにおいて信頼度の低かったさらなる特徴57が抽出され、特徴データベース58に保存される。CEMモジュール221は、繰り返し処理直前あるいはいずれかの繰り返し処理において発見された特徴57に近接する特徴を抽出し、保存する、特徴抽出方法の実行を継続する。それぞれの繰り返し処理は、使用される1以上の抽出アルゴリズムに関して統計的に低い信頼度を有する。
【0118】
ステップ238では、CEMモジュール221は、当分野で知られているような近接度、疎らさ、類似性の原理を用いて、特徴データベース58における異常値を取り除き、特徴57が3D空間59に投影されて3Dデータ表現60を生成するときに、誤った特徴57が減らされるようにする。
【0119】
ここで、3Dデータ表現60は、任意の適切なフォーマット、たとえばデータベースまたはポイントリストである。本発明の1以上の実施形態によれば、3Dデータ表現60は3Dポイントクラウド、および/または。3Dポイントクラウドデータベースである。しかしながら、3Dデータ表現60は、規則的なまたは不規則な3D幾何学的図形の点(ポイント)または面(ファセット)による1種以上の表現でもよく、1以上のそのような3D幾何学的図形および/または1以上のそのような3D幾何学的図形のデータベースでもよい。
【0120】
本発明の1以上の実施形態によれば、好ましくは、四分位範囲法が使用される。この方法では、3Dデータポイントのx、y、またはz座標が上側および下側四分位範囲の外側にある場合、その3Dデータポイントは除去される。すなわち、リスト(Q1は第1四分位数で、Q3は第3四分位数)内の任意の座標αを有するデータポイントについては、もしそれが次の条件のうちの1つを満たす場合には、そのデータポイントが除去される。
α<Q1−(Q3−Q1)×1.5、または、
α>Q3−(Q3−Q1)×1.5
【0121】
ステップ239では、CEMモジュール221は、周囲16の1以上のモデル223を構築する。それぞれの周囲モデル223は、少なくとも3Dデータ表現60の部分に適合した1以上のポリゴンメッシュを含み、そのモデルを、たとえば、データベースまたは任意の適切なフォーマットからなるモデルストレージ225に保存する。ここで、周囲16の全体は、1つのポリゴンメッシュを含むわずか1つの周囲モデル223、あるいは、それぞれのモデルが1以上のポリゴンメッシュモデルを含む複数のモデル223からなる。しかしながら、周囲16の一部は、それぞれのモデルが1以上のポリゴンメッシュモデルを含む1以上のモデル223からなる。追加的または代替的に、メッシュを使用するのでなく、ポイントクラウドまたは3Dデータ表現を用いることもできる。
【0122】
代替的または追加的に、マスクモデル241が、CAD(コンピュータ支援設計または製図)を用いて構築される。周囲16がよく分かっている場合、たとえば、会議室またはダンススタジオである場合、周囲16は、建築データや設計データを利用することによって非常に正確かつ迅速に表現することができる。
【0123】
「部分空間分割」
図6は、本発明の1以上の実施形態による部分空間分割方法の概略図である。
【0124】
本発明の1以上の実施形態によれば、イベント10が起こる前、すなわち、「イベント前」において、ユーザはシステム100の部分空間分割(SD)モジュール261を利用して、部分空間分割(SD)方法260を実行する。この方法は、1以上のステップ262〜272を含み、それらのうちの1以上のステップは、本明細書に記載された番号順に行われることが好ましい。
【0125】
SD方法260は、その後のコンフィギュレーション、すなわちそのイベントの間に使用されるデータベースを作成するためのSDモジュール261上で実行されることが好ましく、これにより、イベント空間15内でそのライブイベントが起こっていない周囲の再構成を避けることにより、イベント10に関連する周囲16のレンダリングおよび/またはコンフィギュレーションをスピードアップすることができる。したがって、SD方法260は、好ましくは、イベント10の画像フレーム5を取り込む前にSDモジュール261によって行われ、その周囲のデータベースまたはデータ表現、たとえば、ランレングス符号化(RLE)データベース265を生成する。
【0126】
SDモジュール261は、システム100内の物理的演算装置、あるいは他の任意の演算装置でもよいが、コントローラ105内で実行されるソフトウェアであることが好ましく、これにより、1以上の機能の追加を容易にできる。本発明の1以上の実施形態によれば、キューブプロジェクションが凸であるため、SD方法260は、ランレングス符号化(RLE)データベースを記憶フォーマットとして使用することが有利である。
【0127】
SDモジュール261は、3Dモデルを再現するための画像の全画像セットおよび全ピクセルセットを使用する。代替的または追加的に、部分分割方法を実行するSDモジュール261により、イベント空間15をより小さい空間に、すなわちキューブなどのサブボリュームに分割してもよい。これにより、再構成のそれぞれのステップを実行する際に、3D再構成のために、関連するサブボリュームのみが必要とされ、その結果、たとえば、コンフィギュレーション方法400などのコンフィギュレーションおよびレンダリング方法の前に行われる処理による処理時間を大幅に短縮できる。
【0128】
ステップ262では、イベント前、すなわち、ユーザによりイベント空間のボリュームが決定され、かつ、ユーザによりSDモジュールを含むシステム用のボリュームを定義することを含む、初期セットアップにおいて、SDモジュール261は、関連するボリューム、典型的にはイベント空間15を、その関連するボリュームよりも物理的に小さい複数のサブボリュームに分割する。この時点では、その関連するボリュームは、周囲16のみを含む、あるいは、周囲16のみから構成されている。
【0129】
ステップ264において、カメラ115のために、SDモジュール261は、それぞれのカメラ115からサブボリュームのそれぞれを投影して、それぞれのカメラ115に対するサブボリュームマスクのセットを作成する。
【0130】
ステップ266において、SDモジュール261は、それぞれのカメラ115からのサブボリュームマスクを対応するカメラ115に関連づけられたサーバ110の第1メモリ110aに記憶する。
【0131】
ステップ268において、システム100によるイベントの記録中に、SDモジュール261は、画像フレームごとのサブボリュームのそれぞれに対するイベント10の画像マスクをカメラ115ごとに作成する。
【0132】
ステップ270において、SDモジュール261は、その画像マスクをそれぞれのサブボリュームマスクと比較し、その比較結果から、抽出された特徴57が他のサブボリュームと重なっているか他のサブボリュームと重なっていないかを判定する。そして、SDモジュール261は、それぞれの特徴を追加または保存して、ステップ268で記録された画像フレームから3Dデータ表現60を切りとるための、合成部分空間分割(SD)マスク263を作成する。
【0133】
ステップ272において、SDモジュール261は、すべてのカメラ115からの特徴57を有するサブボリュームのセットを、好ましくはすべてのデータを含むマトリックスを有するデータベースに記憶する。ここで、サブボリューム、すなわちキューブのカメラ上への投影は、常に単一の凸状小塊となる。2ライン・ランレングス符号化(RLE)データベース265を使えば、その記述は非常に容易である。同じカメラから見た、いくつかの隣接サブボリュームは、単一のレンダ上に集められるため、3D再構成をより効率的なものにできる。「ポジティブ表現」がどれだけ前景の存在を構成するかを解釈することによって、ノイズ、クラッタ、並びに外側および内側の背景を除去するために、フィルファクタを使用できる。たとえば、キューブの特定のラスタ化されたファセットにおけるポジティブ(白色)ピクセルの0.05%フィルファクタのファクタは前景を構成するが、それより少ないものはノイズと判定される。
【0134】
「記録」
「画像獲得」
図7は、本発明の1以上の実施形態による画像獲得方法の概略図である。
図8は、本発明の1以上の実施形態による画像獲得方法のタイミングの概略図である。
【0135】
本発明の1以上の実施形態によれば、一人または複数のユーザは、システム100を利用して、1以上のステップ242〜248を含む画像獲得方法240を実行する。
【0136】
画像獲得方法240は、カメラ115を使用して、イベント空間15内のイベント10および/または周囲16から得た1以上の同期画像フレーム5を獲得するために使用される。画像獲得方法240は、必ずしも初期セットアップ方法の後に行う必要はなく、イベント空間15および/または周囲16の画像フレームが要求される場合には、イベント前を含む適時に任意に実行することができる。
【0137】
ステップ242において、必要に応じて、ユーザは、1以上のハードウェアに電力を供給するとともに、1以上のソフトウェアを起動して、画像データシステム100を動作状態に置く。
【0138】
ステップ244において、ユーザは、システム100を撮像モードにする。このモードでは、システム100は、1以上のカメラ115からの画像フレーム5を連続的に取り込む。システム100を構成するカメラ115のすべてが、イベント空間15内のイベント10および/または周囲16を捉える必要はないので、この撮像モードにおいて、すべてのカメラ115が必ずしも使用されるわけではない。
【0139】
この撮像モードは、カメラマネージャ106が1以上の画像キャプチャコマンド106aをトリガ107に出力することにより開始され、トリガ107は、1以上の予め定義されたパラメータに従ってタイマ108を介して周期的なタイミング信号S、たとえば、毎秒30個の信号を発生する。画像キャプチャコマンド106aが、トリガ107に対して、タイマ108から通信リンク120を介して、使用中のカメラ115の内の1台以上、好ましくはすべてのカメラに送られる命令セットにおいて、タイミング信号を伝達するように指示してもよい。
【0140】
意図しない遅延および/または受信器遅延の可能性を減らすためには、少なくともタイマ108を、通信リンク120と直接つながっているメインノード120bに配置することによって、すべての必要なカメラ115が周期的タイミング信号Sを実質的に同時に受け取れるようにすることができる。
【0141】
命令セットに応答して、命令セットを受信するそれぞれのカメラ115は、画像フレーム5を取り込み、画像フレーム5を1以上のサーバ110に送信する。好ましくは、それぞれの画像フレーム5は、「生(RAW)」ピクセル情報またはデジタルネガティブ状態にある画像センサのデジタル画像データ6を保存するための生画像ファイルフフォーマットで保存される。
【0142】
画像フレーム5は、画像データ6に加え、画像、および/または、その画像を作り出したカメラまたはイメージセンサを識別するために必要な、および/または、好適な情報を含むことができる。たとえば、カメラは、カメラまたは画像センサ識別子、予め決められるか、または、GPS受信機によって決められた空間位置データ、シーケンス番号、および/または、タイムスタンプによって識別することが可能である。
【0143】
サーバ110においては、フレーム取り込みモジュール109が1以上のメモリ110aへの画像フレーム5の連続ストリームの記憶を開始する。メモリ110aは、任意の好適な記憶装置でよいが、好ましくは、メモリ110aはサイクリックバッファである。画像フレーム5の連続ストリームを記憶できるようにバッファを維持するために、フレーム取り込みモジュール109は、画像フレーム5を所定の方法で削除および/または上書きする。たとえば、最も古い画像フレーム5を削除および/または上書きしたのち、その次の画像フレーム5を削除および/または上書きする。さらに、フレーム取り込みモジュール109は、画像フレーム40を取り込むための取り込み開始指令106bの到達に継続的に注意を向けつつ待機する。
【0144】
ステップ246では、ユーザは、撮像基準時間T
0において、カメラマネージャ106のインタフェースから、イベント10の映像データを取り込む適切な瞬間が存在する時間を決定する。そして、ユーザは、システム100を取り込みモードにすることによってイベント10の画像5の取り込みを開始する。
【0145】
本発明の1以上の実施形態によれば、カメラマネージャ106は、撮像基準時間T
+1において取り込み開始指令106bを発する。フレーム取り込みモジュール109が取り込み開始指令106bを受信すると、撮像基準時間T
+2に動作を開始するフレーム取り込みモジュール109は、カメラ115から到来する画像フレーム5を、さらなる処理のために第2のメモリ110bに記憶する。理解の容易化のために、画像が第2のメモリ110bに記憶されている、あるいは書き込まれているとき、および/または、すでに記憶されているか、あるいは書き込まれているときに、画像フレーム5が取り込まれているものとする。取り込まれる、あるいはすでに取り込まれた画像フレーム5は、取り込みフレーム40とも呼ぶ。
【0146】
たとえば、ライブのスポーツイベントの際のように、ユーザが、イベント10の画像フレーム5を取り込む適切な瞬間が存在することを認識し、取り込み開始指令106bを出す時点には遅延があるため、サイクリックバッファ、すなわち第1メモリ110aに記憶された1以上の画像フレーム5は、バックワード取り込み動作において第2メモリ110bにも書き込まれる。第1メモリ110aから第2にメモリ110bに書き込む画像フレーム5の量は、フレーム数(たとえば、90フレーム)として予め決定されるか、または、毎秒30フレームのフレームキャプチャーレートにおいて90秒に対応する時間(すなわち、3秒)として予め決定される。このようにして、バックワード取り込み動作は、撮像基準時間T
0の前の時間、すなわち撮像基準時間T
−1から撮像基準時間T
+1まで画像フレーム5を取り込む。カメラマネージャ106からフレーム取り込みモジュール109に到達する取り込み開始指令106bにも遅延があるため、バックワード取り込み動作は、撮像基準時間T
0の前の時間、すなわち撮像基準時間T
−1から撮像基準時間T
+2まで画像フレーム5を取り込む。
【0147】
ステップ248においては、撮像基準時間T
+3において、ユーザは、イベント10の画像フレーム5をさらに取り込む必要はないと判断する。画像フレーム5の取り込みは、取り込み開始指令106bが解除されるまで続く、すなわち、ボタンを連続的に押すことによって取り込み開始指令106bが開始される場合には、所定の時間の後に取り込み開始指令106bがタイムアウトとなる、または、取り込み終了指令106cがユーザによって出されるまで取り込みが続く。
【0148】
取り込み終了指令106cに代替して、サイクリックバッファのサイズ、すなわち、画像フレーム5の取り込みが終了する時を、イベントの継続時間に対する利用可能なメモリ、すなわち第1メモリ110aの関数として予め決定しておくことが好ましい。イベントの継続時間は、レンダリングすべきフレームの数として測定される、および/または、標準的な秒当たりフレーム数(FPS)が既知の場合は単位時間で測定される。たとえば、好適なサイクリックバッファは、たとえば、30FPSで30秒からなる、900フレームであり、ユーザは、1フレームから900フレームまでの間で任意に取り込むフレームを選択できる。コントローラ105は、取り込み開始指令106bを実行するための数個の「取り込みボタン」を備えることができる。たとえば、バックワード取り込みとフォワ−ド取り込みの組み合わせとしてそれぞれ定義される、1秒、10秒、および30秒の取り込みボタンである。たとえば、取り込み開始指令106bを実行する1つのボタンは、この指令の実行前の5秒とこの指令の実行後の5秒の間の取り込みを行う。このような変更は、サイクリックバッファ全体のサイズ内で可能である。取り込み動作が行われると、サイクリックバッファは、画像データを第2のメモリ110bに転送し、別の取り込み開始指令106bによる別の実行の前に、新たな画像データを第1のメモリ110aに保存しなければならない。ここで、取り込み開始指令106bは、第1のメモリ110aの1以上の所定の部分を第2のメモリ110bに転送する指令として機能する。
【0149】
このように、取り込みモードが終了した撮像基準時間T
+4において、フレーム取り込みモジュール109により指示が受け取られるか、あるいは、そのような指示が取り込み開始指令106bに内在している場合に、フレーム取り込みモジュール109は、第1のメモリ110aへの画像フレーム5の記憶を再開する。この間も、フレーム取り込みモジュール109は新たな取り込み開始指令106bを連続的に聞くおよび/または待つ。取り込みモードの間中、タイマ108は、継続的にタイミング信号を発生し、1以上のカメラ115に指令セットを出す。
【0150】
本発明の1以上の実施形態によれば、サーバ110は、1つの第1のメモリ110aが、生画像ファイルフォーマットの画像データを1以上の第2のメモリ110bに連続的に書き込む、すなわちストリーミングするように構成されている。この場合、取り込み開始指令106bは、上記のように機能することもできるが、第1のメモリ110aの1以上の所定の部分を第2のメモリ110bに転送することが好ましい。
【0151】
本発明の1以上の実施形態によれば、それぞれのカメラ115は、そのカメラのためだけに備えられた1つのサーバ110と共に動作可能である。たとえば、それぞれのカメラ115は、そのカメラ115専用のサーバ110と1対1の関係にある。したがって、ステップ244では、フレーム取り込みモジュール109は、1つのカメラ115専用の第1のメモリ110aおよび第2のメモリ110bを有するそれぞれのサーバ110上で、またはサーバ110とともに動作可能であり、システム内分散記憶モデルでは、画像フレーム5は、それぞれのサーバ110において第2のメモリ110bに個別に記憶されることになる。これに対し、集合的記憶モデルでは、1以上のサーバ110は、2つ以上のカメラ115からの画像フレーム5をさらなる処理のために1以上の第2のメモリ110bに記憶する。
【0152】
いずれの記憶モデルを使用するかに関係なく、すべての第2のメモリ110bが合同して、実際のまたは仮想の画像データベース50を作成する。この画像データベース50は、撮像基準時間T
−1からT
+4までの期間にわたる、異なる視野117を有する少なくとも2つのカメラ115から得た、イベント空間15および/または周囲16の少なくとも同じ部分についての取り込みフレーム40の複数の画像フレームセット7からなる画像データ6を含む。
【0153】
いずれの記憶モデルを使用するかに関係なく、処理済みのフレーム40aなどのデータが保存済み画像データベース50である場合、そのデータは同じ記憶モデルを使用していることが好ましい。すなわち、処理済みのフレーム40aの画像データ6が特定の第2のメモリ110bにもともと保存されていた場合、処理済みのフレーム40aもその第2のメモリ110bに保存される。しかし、本発明の1以上の実施形態では、処理済みのフレーム40aを、異なる第2のメモリ110bに保存することも、あるいは、他の好適なデータ記憶装置に保存することも可能である。
【0154】
本発明の1以上の実施形態によれば、カメラ位置データ116aは、カメラ位置データベース52に記憶される。ここで、データベース50および52は互いに、カメラ115に関連する少なくとも1以上の参照データ(たとえば、唯一のカメラまたは画像センサ識別子)によって、相互参照される。
【0155】
本発明の1以上の実施形態によれば、カメラ115のカメラ位置データ116aは、そのカメラからの1以上の取り込みフレーム40に関連する画像データデータベース50に記憶される。
【0156】
本発明の1以上の実施形態によれば、CEMモジュール221は、マスクモデル241に色を付与するために、ステップ252〜254からなるカラーマッチング方法250を実行する。
【0157】
ステップ252において、CEMモジュール221は、周囲を含む周囲モデル223(たとえば、背景3Dモデル)上に、処理済みフレーム40aのそれぞれのピクセルを投影する。この投影は、それぞれのピクセルが投影位置230aに位置している処理済み画像40a内のピクセルから、仮想直線を延伸させて、この仮想直線が、対応するカメラ115のレンズの中心を通り、仮想3D空間59内の対応する3Dメッシュポイント245にある周囲モデル223(たとえば、背景3Dモデル)と交差するようにして、実行される。すなわち、投影は、仮想3D空間59内の3Dメッシュポイント245にあるマスクモデルのメッシュと交差する。
【0158】
本開示では、コンフィギュレーション、レンダリング、および投影(プロジェクション)に関連して、「ピクセル」の語が使用されているが、「ボクセル」も同じ意味で使用できる。ここで、「ボクセル」は、立体ピクセルである。システム100は、「背景」すなわち周囲16についてはイベント前に行われるのに対して、前景17、すなわち、前景物体に忠実な「ボクセル」表現をほぼリアルタイムで作成する。
【0159】
ステップ254において、CEMモジュール221は、それぞれの処理済みフレーム40aのRGB色空間を、lαβ色空間に変換する。そして、コンフィギュレーションエンジンは、ルマ(luma)および色の画像の平均および標準偏差を見つける。そして、コンフィギュレーションエンジンは、次のように、ソース画像ピクセル値からソース画像の平均値を減算する。
【0160】
次に、コンフィギュレーションエンジンは、標準偏差間のファクタに従って、ピクセル値のスケーリングを行う。
【0161】
コンフィギュレーションエンジンは、デスティネーション平均をピクセル値に加える。CEMモジュール221は、それぞれの処理済みフレーム40aのlαβ色空間を、RGB色空間に変換する。
【0162】
CEMモジュール221は、それぞれのカメラ115のために、カメラ115の露出を制御する手段として、色値とルマ値(すなわち輝度)とを関連づける。CEMモジュール221は、ピクセルを対応する3Dメッシュポイント245と関連づけるとともに、3Dメッシュポイント245の位置およびそのピクセルを捉えたカメラの識別子に関連する色値を、モデルデータベース243に記憶する。モデル上の特定の位置は、それぞれがピクセルを発生する2台以上のカメラで捉えられているため、それぞれのカメラに関連する3Dマスクポイント245は、それぞれ複数のピクセルからの複数の色値(好ましくはヒストグラムで配置されている)を含むことができる。
【0163】
ここで、3Dメッシュポイント245は、複数のマスクと関連づけられていてもよい。たとえば、3Dメッシュポイント245は、ピクセルがグラウンドの一部であるか、すなわちグラウンドマスクモデルであるか否かだけでなく、ピクセルが新規ビューのコンフィギュレーションおよびレンダリング領域内にあるか、すなわちコンフィギュレーションおよびレンダリングマスクモデルであるか否か、および/または、ピクセルがカラーマッチング計算領域内にあるか、すなわちカラーマッチングマスクモデルであるか否かに関連づけられてもよい。さらに、これらのマスクは、システムのコンフィギュレーションのサイクルの中で、連続的にアップデートされ、かつ改良される。
【0164】
「再構成」
「画像データキャプチャ」
図9は、本発明の1以上の実施形態によるイベントキャプチャ方法の概略図である。
【0165】
本発明の1以上の実施形態によれば、ユーザは、イベントキャプチャモジュール301を利用して、イベントキャプチャ方法300を実行する。イベントキャプチャ方法300は、1以上のステップ302〜306からなり、その1以上のステップは、本明細書に記載された番号順に行われることが好ましい。
【0166】
イベントキャプチャ方法300は、イベントキャプチャモジュール301を実行し、1以上の画像フレームセット7を取り込み、このフレームセットから1以上の特徴57を抽出し、統計的に信頼の高い特徴についての3Dデータ表現60上の位置を特定することが好ましい。イベントキャプチャモジュール301は、システム100内の物理的演算装置、あるいは任意の他の演算装置でもよいが、コントローラ105内で実行されるソフトウェアであることが好ましく、これにより、1以上の機能の追加を容易にできる。
【0167】
ステップ302において、イベント10の間に待望されたこと、たとえば、スポーツゲームにおいて重要な瞬間が生じた場合には、ユーザは、イベントキャプチャモジュール301を起動して、カメラ115からの同期画像フレーム5の1以上の画像フレームセット7を取り込んで、データベース50に記憶して、イベント10を保存(キャプチャ)する。
【0168】
イベントキャプチャモジュール301は、任意の適切な方法により、カメラ115から同期画像フレーム5を得て、データベース50に保存することができる。ただし、画像獲得方法240を実行する方法と実質的に類似した方法を用いることが好ましい。
【0169】
ステップ304において、それぞれの取り込みフレーム40は、当分野で知られた1以上のデモザイキング・アルゴリズムに従って、イベントキャプチャモジュール301によって、デモザイクされ、生画像ファイルフォーマットからフォーマットされた画像ファイルに処理されて、画像データベース50に保存される。たとえば、それぞれの取り込みフレーム40は、デモザイクされ、かつ、生(raw)画像ファイルから、tiff画像ファイルまたはjpg画像ファイルの処理済みフレーム40aに変換される。
【0170】
ステップ306において、イベントキャプチャモジュール301は、任意の好適な特徴抽出方法を実行するが、特徴抽出方法226aを実行して、イベント10を示す処理済みフレーム40aから1以上の特徴57を抽出し、かつ、これらを特徴データベース58に保存することが好ましい。
【0171】
「安定化」
本発明の1以上の実施形態によれば、ユーザは、システム100の安定化モジュール309を利用して、安定化方法308を実行する。この安定化方法308は、1以上のステップ310〜316からなり、それらのうちの1以上のステップは、本明細書に記載された番号順に行われることが好ましい。
【0172】
安定化方法308は、好ましくは、安定化モジュール309上で実行され、画像フレームセット7のためにそれぞれのカメラ115ごとの投影位置データ230bを含む投影位置230aを決定し、3Dデータ表現60内における、あるいは、カメラに垂直な無限平面上における、統計的に信頼性のある特徴の位置を特定する。安定化モジュール308は、システム100内の物理的演算装置、あるいは任意の他の演算装置でもよいが、コントローラ105内で実行されるソフトウェアであることが好ましく、これにより、1以上の機能の追加を容易にできる。
【0173】
本発明の1以上の実施形態によれば、安定化方法308は、疑似3D空間で行われるが、この疑似3D空間では、特定され、基準較正画像と比較される特徴は、必ずしも3Dデータ表現60(たとえば、立体点クラウド)と対応している必要はなく、カメラに垂直な無限平面上に位置しているものと仮定される。その平面は、好ましくは、わずかなカメラの揺れまたは振動によって生じる視差がないものとして理想化されている。
【0174】
ステップ310において、安定化モジュール309は、安定化方法308の実行を開始し、ステップ306で獲得された画像フレームセット7のすべての画像フレーム5から特徴57を抽出する。
【0175】
ステップ312において、イベントキャプチャモジュール301は、ステップ310で抽出された特徴57をCEM方法220で抽出された特徴57と比較し、意図しないカメラの動きを補償する。1以上のカメラマトリックス311を作成するために、投影位置データ230bがモジュール301によって生成される。カメラマトリックス311は、カメラ115ごとに、処理済みフレーム40aの2D位置からのマッピング画像データ62を、3D空間59における3D座標位置へ記述するためのものである。
【0176】
カメラマトリックス311は、意図しないカメラの動き補償するために他のステップで使用されてもよい。すなわち、それぞれのカメラマトリックス311は、カメラ115の位置を定義するが、カメラ115の位置は、種々の要因(たとえば、カメラ115が固定される上部構造物に影響を与える風や歩行者の往来)によって移動した位置にカメラ115がある場合に再定義される。
【0177】
ステップ314において、安定化モジュール309は、好ましくは特徴抽出方法226aに実質的に類似した特徴抽出方法を繰り返し、ステップ306または308で見つかった特徴57に近接するさらなる特徴57を抽出して保存する。特に、目立つ特徴57が抽出された後に、その最初に見つかった特徴に隣接しているが、1以上の抽出アルゴリズムにおいて信頼度がより低いさらなる特徴57が抽出され、特徴データベース58に保存される。イベントキャプチャモジュール301は、特徴抽出方法の実行を継続して、直前の繰り返しまたは任意の繰り返しにおいて見つかった特徴57に近接する特徴57を抽出して保存する。それぞれの繰り返しは、使用される1以上の抽出アルゴリズムにおいてより低い信頼度を有する。
【0178】
ステップ316において、安定化モジュール309は、特徴データベース58における異常値を除去するために、当分野で知られているように、近接度、疎らさ、類似性の原則を使用する。これにより、3Dデータ表現60を作るために特徴57が3D空間59に投影されるとき、誤った特徴57が削減される。
【0179】
本発明の1以上の実施形態によれば、好ましくは、四分位範囲法が使用される。この方法では、3Dデータポイントのx、y、またはz座標が、上側および下側四分位領域の外側にある場合、その3Dデータポイントは除去される。すなわち、リスト(Q1は第1四分位数で、Q3は第3四分位数)内の任意の座標αを有するデータポイントについては、もしそれが次の条件の内の1つを満たす場合はそのデータポイントが除去される。
α<Q1−(Q3−Q1)×1.5、または、
α>Q3−(Q3−Q1)×1.5
【0180】
ここで、当分野で知られているように、レーベンバーグ・マーカート最適化を用いて誤差を分散させることが好ましい。カメラマトリッククス311と233は、1以上の対応するカメラ115に対して実質的に同一であることが好ましい。
【0181】
「周囲からの前景の分割(セグメント化)」
図10aは、本発明の1以上の実施形態による周囲モデル化方法の概略図である。
図10bは、本発明の1以上の実施形態による色変化に基づく分割および再構成方法のサブルーチンの概略図である。
図10cは、本発明の1以上の実施形態による色変化に基づく分割および再構成方法の概略図である。
図10dは、本発明の1以上の実施形態によるグラウンド投影分割および再構成方法の概略図である。
図10eは、本発明の1以上の実施形態による周囲更新サブルーチンの概略図である。
【0182】
本発明の1以上の実施形態によれば、ユーザは、前景/周囲分割(FES)方法318を実行するために、システム100の分割および再構成(FES)モジュール319を利用する。前景/周囲分割(FES)方法318は、1以上のステップ322〜328からなり、それらのうちの1以上のステップは、本明細書に記載された番号順に行われることが好ましい。
【0183】
図11a〜
図11kは、周囲モデル223を得るための周囲からの前景の分割を示す。これらの図において、
図11aは、本発明の1以上の実施形態による、カメラと一致していないビューから取り込まれたイベントの概略図である。
図11bは、
図11aの取り込まれたイベントの周囲モデルの概略図である。
図11cは、第1のカメラ、すなわちカメラ1から見た
図11aの取り込まれたイベントの概略図である。
図11dは、第2のカメラ、すなわちカメラ2から見た
図11aの取り込まれたイベントの概略図である。
図11eは、第2のカメラによって画像化された
図11dの前景を、
図11bの周囲モデル上に投影し、第1のカメラによって見た場合の該前景の概略図である。
図11fは、第1のカメラによって画像化された
図11cの前景を、
図11bの周囲モデル上に投影し、第2のカメラによって見た場合の該前景の概略図である。
図11gは、第2のカメラによって画像化された前景を、
図11bの周囲モデル上に投影し、第1のカメラによって見た場合の該前景の概略図である。
図11hは、第1のカメラによって画像化された前景を、
図11bの周囲モデル上に投影し、第2のカメラによって見た場合の該前景の概略図である。
図11iは、
図11aの取り込まれたイベントの新規ビューからの概略図で、前景を第1のカメラと第2のカメラによって画像化し周囲モデルに重ねた場合の概略図である。
図11jは、両方のカメラから見た前景を示す新規ビューからの概略図である。
図11kは、周囲データが存在する場所を示す
図11jの概略図である。
図11lは、両方のカメラから見ることができない前景を除いた周囲モデルを示す
図11kの概略図である。
図11mは、両方のカメラから見ることができない前景を除き、かつ、追加のカメラからも見ることができない前景を除いた周囲モデルを示す
図11kの概略図である。
【0184】
具体的には、それぞれのカメラ115は、特定の視野117を有しているため、それぞれのカメラは異なる角度から前景要素17を捉え、このため、それぞれのカメラ115では、前景要素17が周囲16の異なる部分を遮る。それぞれのカメラのビューが新規ビューに投影され、重なっていない部分が互いに引かれると、周囲のより多くの部分が新規ビューで見られる。数台のカメラだけが使用される場合(
図11l)と異なり、すべてのカメラが上手く設置されて適用されていれば(
図11m)、周囲のほとんどを見ることができる。
【0185】
具体的には、FESモジュール319が、前景/周囲分割方法318を実行し、ライブ要素に関連する1以上のピクセルを、前景要素、すなわち、前景17としてのイベント10の一部に分離し、ピクセルが周囲16の一部、すなわち周囲要素であるか否かについては、背景状態マシン317として実行する。
【0186】
本発明の1以上の実施形態によれば、前景/周囲分割方法318は、色変化に基づく分離サブルーチン322、移動認識サブルーチン324、グラウンド投影サブルーチン326、および周囲更新サブルーチン328を含んでいることが好ましい。
【0187】
本発明の1以上の実施形態によれば、色変化に基づく分離サブルーチン322において、FESモジュール319が、背景状態マシン317を起動し、所定の時間にわたるピクセルの色の変化に基づいて、ピクセルが前景要素であるか周囲要素であるかを分析する。前景17内のピクセルはレンダリングされ、周囲16内のピクセルは、周囲モデル223とは別にはレンダリングされない。
【0188】
ここで、背景状態マシン317は、1以上の所定の時間だけ時間的に隣接する同期画像フレーム5の画像フレームセット7から、所定のレベルに従って同じピクセルの色に変化があったかを分析する。背景状態マシン317は、2つの目的のために使用される。第1は、マスクを生成する動作検出モジュールにおいて「ヒント」として使われ、また、周囲モデル223、すなわち背景モデルにおいて、ある領域/ピクセルがすべてのカメラから完全に見えなくなる場合に作用するシェーダプロセス、すなわち、陰影処理方法331aおよび/または331bにおいて、「レイヤー」として使われる。たとえば、プレーヤが集まっている状態は、いずれのダイレクトカメラからも見えない領域をグラウンド上に形成する。
【0189】
そのピクセルのRGBカラーが時間を通して所定のレベルで同じである場合、背景状態マシン317は、それが前景17ではなく周囲16にデフォルトで設定されている場合、そのピクセルは周囲要素であると判定する。RGBカラーが時間を通して所定のレベルだけ変化する場合、背景状態マシン317は、ピクセルは前景であると判定する。ここで、背景状態マシン317は、フレーム40の取り込みと積極的に協働する。得られた「クリーンな背景」は取り込みごとに保存され、本明細書に記載されているように使用される。
【0190】
そのピクセルのRGBカラーが時間を通して同じである場合、背景状態マシン317は、それが周囲ではなく前景にデフォルトで設定されている場合、そのピクセルは周囲要素であると判定する。RGBカラーが時間を通して所定のレベルだけ変化している場合、背景状態マシン317は、ピクセルは前景17であると判定する。
【0191】
ステップ322aにおいて、FESモジュール319は、時間的に隣接する同期取り込みフレーム40の複数の画像フレームセット7を画像データベース50から検索する。
【0192】
ステップ322bにおいて、FESモジュール319は、好ましくは、新規ビュー66にレンダリングされるすべてのピクセルのRGB色空間を用いて、平均色値を計算する。
【0193】
ステップ322cにおいて、FESモジュール319は、それぞれのピクセルのガウス分布モデルを計算する。好ましくは、FESモジュール319は、取り込みフレーム40aを分析する順番を決定するために、後述するカメラ再構成リスト409を使用する。すなわち、他の(第2の)カメラ115の前にリストされた(第1の)カメラ115からの処理済みフレーム40aは、第2のカメラの取り込みフレームよりも前に分析され、好ましくは、それぞれのフレームセット7は時系列順に分析されることが好ましい。カメラ再構成リスト409に代替して、物理的な位置の隣接性に基づく連続的なカメラリストを使用してもよい。
【0194】
それぞれの処理済みフレーム40aを分析したあとで、FESモジュール319は、ガウス統計をアップデートする。あるピクセルがガウス標準偏差内にあれば、そのピクセルは前景要素であるとFESモジュール319によって判定される。取り込みフレーム40のすべてが分析された後で、そのピクセルがガウス標準偏差内にない場合は、そのピクセルは周囲要素であるとFESモジュール319によって判定される。
【0195】
ステップ322dにおいて、FESモジュール319は、ステップ322cで周囲要素であると判定されたすべてのピクセルを含む周囲の第1のビューに基づくマスクモデル223aを作成する。ここで、それぞれのピクセルまたは特徴について、ピクセルまたは特徴が前景17であるか周囲16であるかが、スキャンラインメカニズム(すなわち、何にカメラのラスタのピクセルからの垂直な直線が衝突するか)に基づいて決定される。その特徴が前景物体である場合、それは、前景手続によって「シェーディング」、すなわち色付けされる。それが背景要素である場合、それは、背景シェーダプロセスによって「シェーディング」、すなわち色付けされる。
【0196】
本発明の1以上の実施形態によれば、動作認識サブルーチン324において、FESモジュール319は、背景状態マシン317を起動して、ピクセルがイベント空間内において時間とともに動いているかを分析する。移動するピクセルは、それがイベント10の一部であり周囲16の一部ではないことを示す。
【0197】
ステップ324aにおいて、FESモジュール319は、時間的に隣接する同期取り込みフレーム40の複数の画像フレームセット7を画像データベース50から検索するか、ステップ322aで受信した同期取り込みフレーム40の複数の画像フレームセット7を使用する。
【0198】
ステップ324bにおいて、FESモジュール319は、その後に制御値となる複数の値を計算する。具体的には、
a.ピクセルの輝度が閾値を超える場合、そのピクセルは前景要素と判定される。
差閾値(DiffThr)−動作ごとのチャンネルあたりの最小輝度差
b.ピクセルが少なくとも所定の割合だけ移動した場合、ピクセルは前景要素と判定される。
移動閾値−(MoveThr)最小移動割合値(フレーム>DiffThr/フレーム<DiffThr)
【0199】
ステップ324cにおいて、FESモジュール319は、それぞれのピクセルが、ステップ324bで計算された1以上の制御値を超えたかどうかを計算する。好ましくは、FESモジュール319は、カメラ再構成リスト409を使用して、取り込みフレーム40aを分析する順番を決定する。すなわち、他の(第2の)カメラ115の前にリストされた(第1の)カメラ115からの処理済みフレーム40aは、第2のカメラの取り込みフレームよりも前に分析され、それぞれのフレームセット7は、時系列順に分析されることが好ましい。
【0200】
それぞれの処理済みフレーム40aを分析した後、FESモジュール319は、ピクセルがステップ324bで計算された1以上の制御値を超える場合には、そのピクセルが前景要素であると判定する。取り込みフレーム40のすべてが分析された後で、ピクセルが制御値を超えない場合は、そのピクセルは周囲要素であると、FESモジュール319によって判定される。
【0201】
ステップ324dにおいて、FESモジュール319は、ステップ324cで周囲要素であると判定されたすべてのピクセルを含む周囲の第2のビューに基づく周囲モデル223bを作成する。
【0202】
本発明の1以上の実施形態によれば、グラウンド投影サブルーチン326において、FESモジュール319は、背景状態マシン317を起動して、ピクセルがグラウンドの一部であり、周囲要素であるかを分析する。グラウンドの一部であるピクセルは、周囲16の一部である。
【0203】
ステップ326aにおいて、FESモジュール319は、フィルタをセットして、最大1%のフィルタリングの設定を使用して、ピクセルから「ノイズ」を除去する。たとえば、ウィーナノイズフィルタを使用できる。
【0204】
ステップ326bにおいて、ステップ322b、322c、324b、および324cで分析中のまたは分析された取り込みフレーム40aに基づいて、FESモジュール319は、任意の1台のカメラ115からの取り込みフレーム40aのRGB色空間における平均輝度値が第1の所定の値よりも大きいかを判定し、その後、コンフィギュレーションエンジン401は、輝度値を第2の所定の値だけ増加させるのに適したファクタによって、周囲モデル223の輝度値をアップデートする。たとえば、第1の所定の値は周囲モデル223の輝度値の5〜40輝度に等しく、第2の所定の値は、取り込みフレーム40a間の輝度値のすべての差と周囲モデル223の輝度値の平均に等しい。
【0205】
本発明の1以上の実施形態によれば、周囲更新サブルーチン328において、FESモジュール319は、背景状態マシン317を起動して、好ましくは同時期に周囲モデル223をアップデートする。
【0206】
ステップ328aにおいて、FESモジュール319は、好ましくは、新規ビュー66にレンダリングするすべてのピクセルのRGB色空間を用いて平均色値を計算する。
【0207】
ステップ328bにおいて、ステップ322b、322c、324b、および324cで分析中のまたは分析された取り込みフレーム40aに基づいて、FESモジュール319は、任意の1台のカメラ115からの取り込みフレーム40aのRGB色空間における平均輝度値が第1の所定の値よりも大きいかを判定し、コンフィギュレーションエンジン401は、輝度値を第2の所定の値だけ増加させるのに適したファクタによって、周囲モデル223の輝度値をアップデートする。たとえば、第1の所定の値は、周囲モデル223の輝度値よりも50%大きい値に等しく、第2の所定の値は、取り込みフレーム40a間の輝度値のすべての差と周囲モデル223の輝度値の平均に等しい。
【0208】
ステップ328cにおいて、準最小残差値を得るために、バイナリ閾値を含む他の閾値が決定され、および/または、完全な前景を提供するために、前景17の一部である特徴57を除去することにより、背景がアップデートされる。
【0209】
ステップ328dにおいて、FESモジュール319は、既存の背景と新しい画像フレーム5の間の差である初期マスクを決定し、追加の特徴57が存在するかを判定する。増幅のために、その差は二乗にされる。
【0210】
ステップ328eにおいて、よりノイズの少ない特徴を際立たせるために、ノイズを伴う、たとえば3×3ピクセルといった、より大きいピクセル空間を有する特徴57は、FESモジュール319によって除去される。
【0211】
ステップ328fにおいて、FESモジュール319によって、背景の影が除去され、新しい画像フレーム5およびマスクされていない領域のLAB(lαβ)空間での背景においてマスクされていない領域に対する差が決定され、一方、輝度差が閾値よりも大きいがAB(YUVのおけるUVまたはクロマ)が低いピクセル、すなわち特徴をサーチする。そして、これらの領域における輝度がアップデートされる。
【0212】
ここで、FESモジュール319は、それぞれ処理済みフレーム40aのRGB色空間をlαβ色空間に変換する。そして、コンフィギュレーションエンジンは、輝度および色画像の平均および標準偏差を見つける。そして、コンフィギュレーションエンジンは、次のように、ソース画像ピクセル値からソース画像の平均を減算する。
【0213】
その後、コンフィギュレーションエンジンは、標準偏差間のファクタに従って、ピクセル値のスケーリングを行う。
【0214】
コンフィギュレーションエンジンは、デスティネーション平均をピクセル値に加える。
【0215】
FESモジュール319は、それぞれ処理済みレーム40aのlαβ色空間をRGB色空間に変換する。
【0216】
ステップ328において、FESモジュール319は、マスクの外側の新しい画像からのブレンドで、周囲モデル223をアップデートする。
【0217】
ステップ328hにおいて、コンフィギュレーションエンジン401は、アップデートされた周囲モデル223と前景マスク423を画像データベース50に保存する。
【0218】
ステップ328iにおいて、前景は、その後、以前のステップでの情報に基づいてリファインされる。
【0219】
「シェーディング」
図10fは、本発明の1以上の実施形態による周囲モデル化方法の概略図である。
【0220】
本発明の1以上の実施形態によれば、ユーザは、システム100の周囲シェーディングモジュール330aを利用して、周囲シェーディング方法331aを実行し、および/または、前景シェーディングモジュール330bを利用して、前景シェーディング方法331bを実行する。この方法は、1以上のステップ332〜340を含み、それらのうちの1以上のステップは、本明細書に記載された番号順に行われることが好ましい。
【0221】
シェーディング方法331aおよび/または331bは、それぞれシェーディングモジュール330aおよび/または330b上で実行されることが好ましく、これらのモジュールは、システム100内の物理的演算装置、あるいは任意の他の演算装置により実現されてもよいが、コントローラ105内で実行されるソフトウェアであることが好ましく、これにより、1以上の機能の追加を容易にできる。
【0222】
ステップ332おいて、モジュール330bは、シェーダ333を実施して、後述する深さマップ415を使用して、いつ3Dデータ表現再構成の3Dポイントが深さマップ415の背部に位置するか、たとえば、いつ3Dポイントが新規ビュー66からの他のポイントによって遮られていないかについて判定する。すなわち、深さマップの背部にあるピクセルはレンダリングされない。
【0223】
シェーダ333は、システム100内の物理的演算装置であってもよく、あるいは任意の他の演算装置であってもよいが、コントローラ105内で実行されるソフトウェアであることが好ましく、これにより、1以上の機能の追加を容易にできる。
【0224】
ステップ334において、コンフィギュレーションエンジン401は、カメラ再構成リスト409を使用して、周囲モデル223および前景モデル423にピクセルをレンダリングする順番を決定する。
【0225】
新規ビュー66においてレンダリングされたそれぞれのピクセルのために、シェーダ333は、そのピクセルを含む取り込みフレーム40aの色値に基づいて、色情報を決定する。そのピクセルが遮られていない場合、任意の適切な手段を使用して決定されるファクタを用いて、その色値を決定することができるが、好ましくは、仮想カメラ66aからそのピクセルに向かうベクトルと、そのピクセルを画像化したそれぞれのカメラ115からそのピクセル自体に向かうベクトルとの間の角度に応じて重みがつけられる。
【0226】
ここで、ピクセルの色値ファクタは、次の式によって決定することができる。
色値ファクタ=
(0.5*pow(角度ファクタ、プロジェクタ重みファクタ))+(0.5*pow(角度ファクタ、プロジェクタ重みファクタ1))
【0227】
代替的または追加的に、シェーダ333は用いられない。すなわち、物理的近接度に基づくカメラ115のリスティングを用いて、1つのカメラによって画像化された特徴57が、他のカメラ115から見たときに遮られるかどうかを判定する。その場合、遮りを有するカメラ115に関連するルックアップテーブルに(0)の値を置く。
【0228】
ステップ336において、モジュール330aは、それぞれの3Dメッシュポイント245の平均色値を計算し、その値をマスクモデルデータベース243に保存する。このように、平均色値は、マスクモデルの同じ3D位置上のすべてのカメラが見る色の平均値、すなわち、すべてのカメラが見る同じマスクモデルスポットの平均色である。代替または追加においては、メッシュを使う代わりに、3Dデータ表現のポイントクラウドが使用される。
【0229】
ステップ338において、モジュール330aは、それぞれの3Dメッシュポイント245の色値に適用される重みづけファクタとしての、マスクモデル241についての平均色値を得るために、すべての3Dメッシュポイント245の平均色値を計算する。
【0230】
ステップ340において、モジュール330aは、物理的に隣接するカメラ位置を有するカメラからのそれぞれのピクセルの色値に適用される重みづけファクタとしての、それぞれのカメラ115によりキャプチャされたすべてのピクセルに対する平均色値を計算する。これにより、隣接するカメラの色を互いにより接近させ、色の一貫性がもたらされ、仮想カメラが新規ビュー間で移動する際に一貫性のある新規ビューを作成することがアシストされる。
【0231】
代替的または追加的に、それぞれのモジュールは、連続的に配置されたカメラ間でより一貫性のある生データから「投影ラスタ/画像」を再生するために使用される、新規の色「ルックアップテーブル」を生成する。これにより、コンフィギュレーションエンジン401は、色マッチングについての情報を得ることなく、より一貫性のある色が付けられた画像セットを投影するための色を入力ラスタ画像として単純に得る。ここで、投影された入力は、最終的な放送用色出力を導くが、この最終的な放送用色出力では、再構成のために、クリーンで一貫したグラジエントを得ることよりも、色の鮮やかさの方がより重要である。これに対して、再構成それ自体は、通常、本発明の1以上の実施形態による最終放送用画像と比べると、再構成の目的のために使用されるより暗い画像をもたらす。
【0232】
「コンフィギュレーション」
図2dは、
図2aと
図2cのイベント空間における仮想カメラ、複数の新規ビュー、ビューパスの一部、実際のカメラの視野の平面図である。
図12aは、本発明の1以上の実施形態によるコンフィギュレーション方法の概略図である。
【0233】
本発明の1以上の実施形態によれば、ユーザは、システム100のコンフィギュレーションエンジン401を利用して、コンフィギュレーション方法400を実行する。この方法は、1以上のステップ402〜432からなり、それらのうちの1以上のステップは、本明細書に記載された番号順に行われることが好ましい。
【0234】
コンフィギュレーション方法400は、コンフィグレーションエンジン401を実行することにより、イベント空間15の一部またはすべてにおいて、少なくとも撮像基準時間T
Mにおいて生じるイベント10の3Dデータ表現再構成62を行い、ユーザが選択可能な1以上の新規ビュー66からの、撮像基準時間T
Mにおいて生じるイベント10の再生64を可能とすることが好ましい。
【0235】
コンフィギュレーションエンジン401は、システム100内の物理的演算装置、あるいは、任意の他の演算装置でもよいが、コントローラ105内で実行されるソフトウェアであることが好ましく、これにより、1以上の機能の追加を容易にできる。
【0236】
再生64は、新規ビュー66および/またはビューパス68に沿う視野117と一致する1以上のビューのレンダリングのシーケンスである。好ましくは、ビューパス68は、後述する、静的設定または動的設定におけるユーザが選択可能な3D経路である。
【0237】
新規ビュー66は、3Dデータ表現再構成62に画像データ6を付与したいずれのカメラ115の視野117と必ずしも一致していない、3Dデータ表現再構成62のレンダリングされたビューである。一致には、画像フレーム5の取り込み後の画像フレーム5の取り出しおよび/または画像フレーム5の中心のシフトによって変化した視野117は除外される。
【0238】
たとえば、複数のカメラ115は、それぞれが人の顔の少なくとも半分を斜めに示す画像データ6を含む画像フレームセット7を取り込むが、いずれの視野117も顔を捉える向きにないため、複数のカメラ115のいずれも顔の正面ビューを提供することはない。したがって、人の顔の正面ビューが、視野のいずれとも一致していないため、新規ビュー66となる。
【0239】
明確化のために、それぞれの新規ビュー66は、仮想カメラ66aがあるものとして、その仮想カメラ66aの中心から生成したものと考えることができる。
【0240】
それぞれのビューパス68は、1以上の新規ビュー66を含むが、視野117と一致する1以上のビユーも含むことができる。ビューパス68は、ユーザが選択できる。具体的には、経路選択モジュール403を使用して、コントローラ105上の1以上のヒューマンインタフェース装置から、ユーザがシーンセンタ68aを選択する。経路選択モジュール403は、システム100内の物理的演算装置であるか、あるいは任意の他の演算装置と関連づけられたものでもよいが、コントローラ105内で実行されるソフトウェアであることが好ましく、これにより、1以上の機能の追加を容易にできる。
【0241】
ビューパス68は、円弧パス、高さパス、インアウトパスなどの、予めプログラムされた映画的なパスを含むことができる。ここで、円弧パスは、カメラが左または右に動く仮想レールを再構築する。これが第1レベルの動きであり、3Dデータ表現再構成のためのビューポイントを最適化できることを常に保証する。エレベーションレール、すなわち高さパスは、第2レベルの自由度を有する仮想レールであり、これは、上下いずれかの方向への垂直動作を可能にする。カメラを円弧レールに沿って移動させながら、仮想レールを上昇させることにより、下から上に向かう斜めの動作が生み出される。ドリートレイル、すなわちインアウトパスは、仮想カメラが円弧レールから目標に向かって移動できるようにする仮想カメラのための第3のレールであり、目標に向かう前進および後退移動を可能にする第3レベルの自由度をもたらす。
【0242】
ステップ402において、ユーザは、複数の取り込みフレーム40または複数の処理済みフレーム40aから、再生64のためのシーン70aを選択する。この点に関し、ユーザは、それぞれのカメラ115のいくつかのモニタからのフィードを切り替えることにより、再生64を開始する最も有利なシーン70aを決定することができる。
【0243】
ここで、ユーザは、それぞれのカメラ115ごとの取り込みフレーム40を映像として再生し、必要に応じて停止することにより、再生64を開始する最も有利な瞬間を見つけることができる。明確化のために、この再生64を開始する最も有利な瞬間を撮像基準時間T
Mと呼ぶ。なお、T
Mは、撮像基準時間T
−1〜T
+4の間に置かれる。静的設定は、再生64が、固定された時間、すなわち撮像基準時間T
Mに限定されてなされる設定である。
【0244】
動的設定は、時間が固定されることなく再生64が行われる、すなわち、再生64が撮像基準時間T
M1〜T
M2の間に行われ、撮像時間範囲T
M1〜T
M2が撮像基準時間T
−1〜T
+4の間に置かれる。したがって、再生64を開始する最も有利な瞬間を撮像基準時間T
M1と呼び、再生64を停止する画像化の瞬間を撮像基準時間T
M2と呼ぶ。
【0245】
言い換えれば、動的設定は、撮像基準時間を通して進む一続きのものとして処理される、それぞれの撮像基準時間のための画像フレームセット7の範囲をユーザが決定する設定である。重要なことには、それぞれの画像フレームセット7は、それぞれの画像フレームのセットごとに独立した3Dデータ表現として処理されることである。しかしながら、静的設定と同じように、それぞれの画像フレームセット7の結果は、画像フレームセットの内の必須とされるセットの独立した3Dデータ表現からそれぞれの新規ビューが得られる「動的」再生を行うために、カメラパスインタフェースを介して使用されるか、あるいは、携帯機器など、すなわちクライエント上において、インタラクティブな視聴を可能とするためにサーバ/クラウドに送られることが可能である。
【0246】
また、ユーザは、撮像基準時間T
MまたはT
M1を有する画像フレームセット7の取り込みフレーム40aから選択を行うことにより、再生64を始める最も有利なシーン70aを有するカメラを選択することができる。
【0247】
ユーザが最も有利な瞬間とシーンを選択すると同時に、ユーザは、そのシーンをもたらしたカメラ115の視野117、および、そこから3Dデータ表現再構成を生成する撮像基準時間T
MまたはT
M1を有する画像フレームセット7と一致するシーンセンタ71aを選択したこととなる。
【0248】
ステップ404において、ユーザは経路選択モジュール403を利用して、第1のシーンセンタ71aから新規なシーンセンタ71bへ移動するビューパス68を選択する。なお、新規なシーンセンタ71bに伴う新しいシーンは新規ビュー66となるものである。ビューパス68は、1つのシーンセンタから新しいシーンセンタへの複数のシーンシフトを含むことができる。
【0249】
ステップ406において、コンフィギュレーションエンジン401は、第2のシーンセンタ71bの3Dデータ表現60における3D座標407を決定する。第2のシーンセンタ71bの3D座標407は、仮想カメラ66aの3D位置でもある。すなわち、シーン70bは、中心、たとえば仮想カメラ66aから得られるシーンセンタ71bを有する平面であり、仮想カメラの中心がシーンセンタ71bである。
【0250】
ステップ408において、コンフィギュレーションエンジン401は、カメラマトリッククス311を使用して、カメラ115のリスト、すなわち、カメラ再構成リスト409を作成する。このリストは、カメラ115についての識別子や他の好適な情報を、シーンセンタ71bに関連する投影位置230aに対する物理的近接性に基づく順番で列挙している。すなわち、シーンセンタ71bに最も近いカメラ115の識別子と情報が、リストの最初に記入される。2番目に記入されたカメラやその他のカメラは、コンフィギュレーションエンジン401によって、最初に記入されたカメラに対しての近接性、すなわち隣接度合の順序でリストされ、カメラ115の画像データ6を優先順位に基づいて処理できるようになっている。
【0251】
ステップ410において、ユーザ、たとえばテレビのプロデューサは、処理速度を上げるために、イベント空間15がレンダリングされる範囲を、境界ボリューム20として制限する。境界ボリューム20は、任意の好適な形状をとることができ、規則的または不規則的ないかなる幾何学的形状と一致している必要はない。本発明の1以上の実施形態によれば、境界ボリューム20は、イベント空間15の一部でも、あるいはイベント空間15の全体でもよい。
【0252】
境界ボリューム20は、第1のシーンセンタ71aに基づくことができる。たとえば、シーンセンタ71aは、ゴールが決められる際には、イベント空間の一端に位置させることができる。この場合、他端のコンフィギュレーションおよびレンダリングは必要とはされない。
【0253】
ステップ410は、コントローラ105を用いて実行することもでき、コントローラ105は、すでに選択されているシーン70aに基づいて、データポイントの密度、特徴などが所定の閾値を満たすイベント空間15の領域を決定する。さらに、コントローラ105は、統計的分析に基づいて、境界ボリューム20を決定する。
【0254】
ステップ412において、コンフィギュレーションエンジン401は、3Dポイント再構成62を使用して、シーンセンタ71bの新規ビューに関連するカメラ66aの特定の位置から投影したときに、再構成62および/またはマスクモデル223内の他の物体によるオクルージョンを描写する、1以上の幾何的なシャドウマップ413、すなわち、マッチングを生成する。
【0255】
第1のタイプのオクルージョンは、投影されるべき物体を通して仮想レンダリングカメラ66が投射される場合に起こり、第2のタイプのオクルージョンは、物体の一部が物体自体を遮る場合、たとえば、仮想レンダリングカメラ66aに対してプレーヤの手が前景にあり、プレーヤの胴体の一部を遮っている場合に起こる。
【0256】
ステップ414において、コンフィギュレーションエンジン401は、カメラリスト上の順番に、現実のカメラ115のそれぞれに対してオクルージョンを解決するための深さマップ415を作成する。深さマップ415は、シーン71bに関する仮想カメラ66aを含む平面の焦点中心、すなわち3Dシーンセンタ407とそれぞれの特徴との間の距離、すなわち正規化距離を含む。この距離は、仮想カメラ66aのカメラ位置とそれぞれのピクセルとの間の三角測量で決定される。
【0257】
深さマップ415は、データベースとして保存することができ、このデータベースは、好ましくは、3D座標を有する3Dデータ表現60内の1以上のピクセル、RGBカラー(赤、緑、および青の光を加えた付加的カラーモデルに基づく)、および、それぞれのピクセルからの正規化ベクトル情報に相当する。
【0258】
代替的または追加的に、深さマップ415は、「スプラット」に基づく構造であり、この構造では、それぞれの3次元ポイント(あるいは「ボクセル」)は、オクルージョンを考慮しながら種々のセンサから色情報を集める。
【0259】
たとえば、第2のカメラにおいて、白の手袋が赤のシャツで覆われている場合、その情報は、XYZ位置、法線方向ベクトル、およびカメラ115ごとの色を含んでいることが好ましい。対応するカメラ位置を有する色情報は、たとえば、第1のカメラ−白、第2のカメラ−白、第3のカメラ−白、第4のカメラ−なし(遮られている)である。
【0260】
ステップ416において、コンフィギュレーションエンジン401は、周囲モデル223と前景モデル423とを組み合わせて新規ビュー66とするとともに、オーバーレイ画像のエッジにおけるノイズを減少させるために、深さマップのエッジの周囲をソフトにするおよび/または、たとえば、ガウスぼかしを使用して新規ビュー66の中心でない領域をぼかす。
【0261】
ステップ418において、コンフィギュレーションエンジン401は、好ましくはフォトリアルな品質で、新規ビュー66をユーザに出力する。フォトリアルな品質にとって重要なことは、3Dデータ表現60の再構成の後に色値と輝度値が調整されることである。ここで、コンフィギュレーションエンジン401は、True3D空間で計算される、被写界深度、モーションブラーなどの物理的現象についてのピクセルごとの計算を実行する。
【0262】
ステップ420において、コンフィギュレーションエンジン401は、ビューパス68、および、シーンセンタの新規ビュー66に一致する新しいシーンセンタ、すなわち、第3のシーンセンタへの変化に応答して、コンフィギュレーション方法400を実行し、コンフィギュレーション方法400は、さらなる新規ビューをレンダリングするための新しいシーンセンタから始まる。
【0263】
代替的または追加的に、新規ビュー66は好ましくは「ラスタ化」されるが、この場合、必ずしもシーンセンタからのものである必要はなく、むしろ新規ビューカメラを介して見た2次元のラスタとしてラスタ化される。
【0264】
静的設定では、次の新規ビューの再構成で使用される取り込みフレーム40は、撮像基準時間T
Mにおいて取り込まれた画像フレームセット7からのものである。動的設定では、次の新規ビューの再構成で使用される取り込みフレーム40は、撮像基準時間T
M1とT
M2の間に取り込まれた画像フレームセット7からのものである。
【0265】
1以上の新規ビュー66およびビューパス68に沿った視野117と一致する1以上のビユーからなる、複数のレンダリングされたシーケンスにより、再生64が構成される。
【0266】
ステップ422において、結論として、コントローラ105は、好適なフォーマットで再生64をユーザ・視聴者に出力する。たとえば、ユーザ・視聴者がテレビネットワークである場合、再生64は、無損失画像のシーケンスのフォーマットで、好適な変換ハードウェアによるHD−SDIフィードへの変換を介して、放送装置に送られる。
【0267】
「対話型プレーヤ」
図12bは、本発明の1以上の実施形態による対話型プレーヤシステム500の概略図である。
【0268】
本発明の1以上の実施形態によれば、新規ビュー対話型プレーヤシステム500は、サーバ側501とビューワ側551とを含み、ビューワ側551は、演算装置により構成される視聴装置上で、ユーザ選択可能な視聴のための圧縮ファイルを、ビューワが受け取るためのものである。
【0269】
プレーヤシステム500は、サーバ側501内の物理的演算装置あるいは任意の他の演算装置として構成されていてもよいが、コントローラ105内で実行されるソフトウェアにより構成し、視聴装置上のビューワ側551も含めて、1以上の機能の追加が容易にできるようにしておくことが好ましい。
【0270】
本発明の1以上の実施形態によれば、ユーザは、複数のモジュールシステム500を用いて、ステップ504〜562を含む送信および受信方法を実行する。
【0271】
「サーバ側」
好ましくは、サーバ側501は、前述のシステム100と実質的に類似した構成を備えている。必要に応じて、初期設定方法200、CEM方法220、およびSD方法260は継続的に実行される。周囲モデル223を得るために、周囲モデル化方法220が継続的に実行される。好ましくは、クロップマスク263および(RLE)データベース265を得るために、SD方法260が実行される。3Dデータ表現60を得るために、イベントキャプチャ方法300が継続的に実行される。それぞれのカメラ115用に、深さマップ415が継続的に作成される。前景/周囲分割方法318aが、それぞれのカメラ115のために継続的に行われ、前景モデル423がそれぞれのカメラ115のために継続的に得られる。
【0272】
たとえば、システム100は、少なくとも3台のカメラ115から複数の同期画像フレーム5を取り込み、この画像フレームから画像データ6を抽出し、それぞれのカメラ115ごとに、画像データ6を再構成して、少なくとも1つの周囲モデル223と少なくとも1つの前景モデル423にする。本発明の1以上の実施形態によれば、送信方法502は、ビューワ側551へ送信するための複数データ502aを用意する。ここで、ステップ504〜530は、ラスタ化パイプラインからなる。
【0273】
ステップ504において、コンフィギュレーションエンジン401は、すべての前景モデル423を結合して、単一の前景モデル505、すなわち視覚アトラスを作成し、前景データの隣接性と完全性を維持する。隣接性が維持され、取り込まれた画像内の隣接する前景ピクセルは、新規画像においても同じ隣接位置をとって隣接するピクセルとなる。
【0274】
ステップ506において、コンフィギュレーションエンジン401は、マッピングデータ507、たとえばルックアップテーブルを作成し、単一の前景モデル505内のピクセルまたは画像データの位置を、3Dデータ表現60における、すなわちポイントごとの相関において、そのピクセルのオリジナルの3D座標と関連づける。ここで、それぞれのピクセルは、それらのオクルージョン値に従ってソーティングされ、八分木に挿入されるが、この点については後述する。
【0275】
ステップ508において、コンフィギュレーションエンジン401は、それぞれのカメラ115ごとに、それぞれのカメラ115についての前景/周囲分割方法318aを介して得られたすべての周囲要素を、正規化されたベクトル、すなわちその画像内のピクセルから周囲モデル223の交点へと引いた仮想線を用いて、周囲モデル223上に投影して、その色値をアップデートする。すなわち、コンフィギュレーションエンジン401は、特定のカメラ115について、その特定のカメラ115についての前景/周囲分割方法318aを介して得られたすべての周囲要素を、正規化されたベクトル、すなわちその画像内のピクセルから周囲モデル223の交点へと引いた仮想線を用いて、周囲モデル223上に投影して、その色値をアップデートする。
【0276】
代替的またはステップ508に追加的に、それぞれのカメラ115からの遮られていないすべてのピクセルからの、それぞれの3Dポイントまたはボクセルに、色情報が割り当てられ、すなわち投影されて、色情報がそのピクセルと関連づけられる。
【0277】
ステップ510において、コンフィギュレーションエンジン401は、マッピングデータ507、たとえばルックアップテーブルを作成し、周囲モデル223内のピクセルの位置を、3Dデータ表現60での、すなわち、ポイントごとの相関での、そのピクセルのオリジナルの3D座標と関連づける。
【0278】
ステップ512において、コンフィギュレーションエンジン401は、周囲モデル223についての中央値512aを計算し、前景または異なるカメラパラメータ差によって影響されることが少ない周囲値を作成する。この点に関し、シェーディング方法331aおよび/または331bを用いるシェーダ333は、どのピクセルが周囲16、すなわち背景としてレンダリングされ、どの特徴57が前景特徴57によって遮られるのかを判定するとともに、物理的な位置的順序にあるカメラ115の色からの異なる混ぜ合わせパラメータを持つ色を決定する。
【0279】
ステップ514において、コンフィギュレーションエンジン401は、セット全体を通して静的周囲を表すために、それぞれのカメラ115のビューから周囲モデル223の周囲画像515を、それぞれのカメラ115ごとに記憶する。すなわち、それぞれの周囲モデル223は、画像ファイル515として保存される。
【0280】
ステップ516において、コンフィギュレーションエンジン401は、それぞれの周囲画像515についての中央値512bを計算するとともに、中央値512aに対する差512cを計算する。コンフィギュレーションエンジン401は、輝度値として表された差を、それぞれのカメラ115のための輝度画像517に保存する。ここで、背景色情報は、色情報を一回だけ保存し、輝度についてはフレームごとの変化分だけを保存し、その結果、処理時間が大幅に増加する。
【0281】
ステップ518において、コンフィギュレーションエンジン401は、任意の既知の圧縮アルゴリズムを用いて、深さマップ415を圧縮する。好ましくは、無損失圧縮が使用される。しかし、損失を伴う圧縮も使用できる。
【0282】
ステップ520において、コンフィギュレーションエンジン401は、任意の既知の圧縮アルゴリズムを用いてマッピングデータ507aと507bを圧縮する。好ましくは、無損失圧縮が使用される。しかし、損失を伴う圧縮も使用できる。
【0283】
ステップ522において、コンフィギュレーションエンジン401は、画像シーケンス内の新しいフレームとして、前景モデル505を周囲画像515に挿入する。これは、背景ジオメトリ上の背景ラスタを投影することにより行われる。代替的または追加的に、画像シーケンスとして保存される代わりに、ラスタとして送信される。
【0284】
3Dデータ表現60(たとえば、ポイントクラウド)およびラスタデータは、必要に応じて、非圧縮の状態に戻されて、メモリ110aまたは110b(一方はグラフィックプロセッサのメモリであることが好ましい)に記憶されるか、あるいは、グラフィックプロセッサのメモリに直接記憶される。そして、背景穴埋め画像が作られる。
【0285】
「新規ビュー」ラスタピクセルごとの処理およびレンダリングは、以下の動作を必要とする。すなわち、
ソートされたカメラを通してルーピングする(カメラの最大数は制限できる);
視覚投影「アトラス」におけるポイント(ボクセル)を参照する;
指数マトリックスを用いて、投影ソーティングで計算された角度値に基づいて、投影重みを決定する;
浮動重み=(0.5*pow(角度ファクタ、プロジェクタ重みファクタ))+(0.5*pow(角度ファクタ、プロジェクタ重みファクタ1))を計算する;
深さと色を得るとともに、それに従ってピクセルに着色する;
重み付けされた色を合計して最終的な色を得る、また透明性も考える;
滑らかなエッジを得るために、ピクセルをサンプリングする(アンチエイリアシング);および、
ピクセルごとの合成および/またはポスト効果を実施する。
【0286】
合成および/またはポスト効果は、以下のものを含むことができる。すなわち、
1.被写界深度:仮想レンダリングカメラの焦点距離および追加の内因的レンズパラメータを用いて、被写界深度の外側に位置するピクセルに対してぼかし効果を作る。
2.カメラモーションブラー:仮想カメラのモーションベクトルおよび追加の外因的および内因的レンズパラメータを用いて、シャッタスピードをエミュレートするピクセルに対するぼかしおよびスミアリング効果、並びに、異なる速度で変化する取り込みシーン内の物体に対する露出長さ効果を作る。
3.屈折:レンダリングされたシーンへの光の投影、および、そのシーン内のそれぞれのボクセル要素の光応答度の計算を用いて、光の相互作用および効果を作る。計算は、ミラーリング効果のように単純化されたものでもよく、無限に共振する軌跡をたどる光線のように複雑であってもよい。
4.2次元仮想オーバーレイ:テキストのような2次元のラスタグラフィックを追加する能力。
5.3次元仮想オーバーレイ:3次元のラスタグラフィックを追加する能力。3次元のラスタグラフィックには、3次元の第1およびダウンラインなどのシーンと相互に影響し合うものと、放送チャンネルのロゴなどの相互に影響し合わないものの両方がある。
6.画像コンバイナ:異なるソースからの仮想データのいくつかのソースを重ねる。ソースは、映像であっても静止画像であってもよい。
7.3次元ダスト:シーン照明と相互に影響する小斑点および粒子の効果を作る。
8.色補正:単純な機能から複雑な機能を用いて、画像の色空間を変える。単純な機能には、ガンマ、ゲインなどが含まれ、複雑な機能には、シーン内または他の場所の任意の可能な機能に由来するルックアップテーブルが含まれる。
【0287】
ステップ524において、コンフィギュレーションエンジン401は、任意の既知の圧縮アルゴリズムを用いて、前景モデル505を圧縮する。好ましくは、無損失圧縮が使用される。しかし、損失を伴う圧縮も使用できる。
【0288】
本発明の1以上の実施形態によれば、前景モデル505を効率的に圧縮するために、圧縮アルゴリズムは、最も密度の高いデータに焦点を当てるために、八分木などの1以上の木データ構造であってもよい。
【0289】
たとえば、八分木圧縮が、3Dデータ表現60ごとに適用され、上述したように実行される。イベント空間10が静的方法で分割され、多くの同一のサブボリューム、すなわち子ノードが作られる。メッシュポイントが完全な八分木フォーマットに置かれる。すなわち、ポイントを含まない子ノードは、八分木において空の子ノードとして表される。八分木のそれぞれの子ノードには、0から始まる増加インデクスが提供される。同じ親ノードの8個のすべての子ノードは連続番号を持ち、連続する親ノードは、それらの子ノードのインデクスにおいて8の相違を持つ。最下位の親ノードのシーケンシャルインデクスの差が、子ノードのフル/空状態とともに記憶される。差分シーケンスは、無損失LZW圧縮される。
【0290】
本発明の1以上の実施形態によれば、コンフィギュレーションエンジン401は、次のサブステップにより、前景モデル505を圧縮する。
【0291】
1.3Dデータ表現60が構築された後、コンフィギュレーションエンジン401は、3Dデータ表現60からのそれぞれのピクセルを、すべてのカメラ115に投影することを試みるとともに、いずれのカメラがそれぞれのピクセルを画像化できたか印を付ける。コンフィギュレーションエンジン401は、そのカメラから、どのピクセルが画像化され、どのピクセルが画像化されなかったか印を付けるとともに、この情報3Dデータ表現60を保存する。
2.同じカメラ115のセットから見えるすべてのピクセルが、コンフィギュレーションエンジン401によって集められ、上述のように圧縮されるべき単一の八分木に置かれ、この八分木が1以上のメモリに記憶される。八分木の使用は、表示段階でのレンダリング速度を上げることができるため、有利である。
3.コンフィギュレーションエンジン401は、画像内に見えるすべてのピクセルを前景とみなす。すべてのカメラからのすべての前景データは、コンフィギュレーションエンジン401によって組み合わされて、単一の前景フレーム画像とされる。
4.前景データがそのままではフィッティングするのに大きすぎるとコンフィギュレーションエンジン401が判断した場合は、それはブロックに分割され、そのブロックが、コンフィギュレーションエンジン401によって、前景フレーム画像内の空ブロック位置に置かれる。
5.コンフィギュレーションエンジン401は、前景フレームを構築するのに加えて、前景フレーム画像を前景モデル505としてマッピングする。
【0292】
ステップ526において、コンフィギュレーションエンジン401は、画像シーケンス内の新しいフレームとして、輝度画像517を周囲画像515に挿入し、あるいは代替的または追加的に、画像シーケンスとして保存する代わりに、ラスタとして送信する。
【0293】
ステップ528において、コンフィギュレーションエンジン401は、任意の既知の圧縮アルゴリズムを用いて、輝度画像517を圧縮する。好ましくは、無損失圧縮が使用される。しかし、損失を伴う圧縮も使用できる。
【0294】
ステップ528において、コンフィギュレーションエンジン401は、任意の既知の圧縮アルゴリズムを用いて、周囲画像515を圧縮する。好ましくは、無損失圧縮が使用される。しかし、損失を伴う圧縮も使用できる。
【0295】
ステップ530において、コンフィギュレーションエンジン401は、任意の既知の圧縮アルゴリズムを用いて、周囲モデル223を圧縮する。好ましくは、無損失圧縮が使用される。しかし、損失を伴う圧縮も使用できる。
【0296】
ステップ532において、コンフィギュレーションエンジン401は、それぞれの圧縮データを圧縮された順番で送信する。
【0297】
本発明の1以上の実施形態によれば、送信データ502aを受信して再生64にレンダリングするために、受信方法550がビューワ側501の演算装置のクライエント側レンダリングエンジン503で実施される。
【0298】
「ビューワ側」
ステップ552において、レンダリングエンジン503は、圧縮された順番で受信と圧縮解除を行う。
【0299】
ステップ554において、レンダリングエンジン503は、視聴装置のメモリ上に周囲画像515を再現する。周囲画像515は、プレーヤのユーザインタフェースを介してユーザが選択した新規ビュー66、すなわち仮想カメラに従って生成される。ステップ552で抽出された周囲画像515は、混ぜ合わされ、ステップ552で抽出された周囲モデル223上に投影される。画像の混ぜ合わせは、背景画像を捉えたカメラからの仮想カメラの角距離に対して重みづけをすることで行われる。
【0300】
ステップ556において、レンダリングエンジン503は、視聴装置のメモリ上で周囲値を再現する。これらの値は、プレーヤのユーザインタフェースを介してユーザが選択した新規ビュー66、すなわち仮想カメラに従って再作成される。
【0301】
ステップ558において、レンダリングエンジン503は、ステップ552で抽出されたマッピングデータ507aおよび507bを用い、ステップ552で抽出されたマップ済み画像上にマッピングされた周囲画像515のピクセルを再配置する。そして、ステップ552で抽出されたオクルージョンデータが、新規ビュー66に対して無関係なピクセル(すなわち、ボクセル)の値を無視するために使用される。
【0302】
ステップ560において、レンダリングエンジン503は、ステップ554で再現された周囲画像515に輝度差を重ね、背景上に影、明るい部分、およびバウンス(輝度差)を再現する。得られた背景画像は、視聴装置の画面に表示される。
【0303】
ステップ562において、レンダリングエンジン503は、新規ビュー66に従って、周囲モデル223上に周囲画像515の再現データを投影して、前景特徴を形成し、ステップ560で作られた背景画像の上に適用し、レンダリングされた新規ビュー画像または画像のシーケンスとして、視聴装置の画面に表示する。
【0304】
さらに、レンダリングエンジン503は、以上のステップ552〜562を繰り返して、境界ボリューム20内において、新しい新規ビューのレンダリングされた画像または画像のシーケンスを視聴装置の画面上に生成する。すなわち、新規ビューは、境界ボリュームの外側にあるイベント10を表示することはできない。
【0305】
「使用例」
本発明1以上の実施形態によれば、システム100および新規ビュープレーヤシステム500は、イベント10が起きている間またはイベント10が記録された後に、イベント10を見るために1以上のユーザによって使用される。
【0306】
1以上のユーザ・視聴者2は、イベント10内の任意の場所、イベント10の周囲、あるいはその他の好適な場所に位置すことができる。それぞれのユーザは、システム500によって伝搬された送信データ502aを受信するためのクライエント側レンダリング装置503を備えた演算装置を有していることが好ましい。システム100とシステム500は、たとえば、スポーツ開催地における場合のように、互いに接近して配置されてもよい。あるいは、一人のユーザ・視聴者は、メインとなるスポーツ動作が起きている場所から離れていてもよい。送信データ502aを受信した後で、ユーザ−ビューは、再生64としてその行動を見ることもできる。ユーザ・視聴者が選んだビューパス68を用いることにより、新規ビュー66がユーザ・視聴者2に示される。
【0307】
また、システム100、500および/または視聴装置は、1以上のソーシャルメッセージングモジュール、すなわちフィーチャーを備えることができ、このようなモジュールは当該技術分野で知られており、直接的なテキストメッセージング、ウォールへの投稿、インターネットへのコンテンツのアップロード、および/または、ブロードフィールド放送のために使用できる。システム100および/または500のソーシャルメッセージングフィーチャーまたは任意の他の部分は、再生64を全体的にまたは部分的に組み込み、再生64の全体または再生64の特定の基準位置にハイパーリンクすることが好ましい。システムおよび/または視聴装置は、画像としての新規ビュー、レンダリングされたクリップ、および/またはカメラビューパス68を、さらなる使用および/または参考のために保存するための1以上のデータ操作モジュールを含み、ユーザが望む場合には、1以上の他のユーザ、または1以上のユーザアクセス可能データベース、たとえば、ソーシャルネットワークデータベースとシェアされる。
【0308】
システム500を使用して、それぞれのユーザがシーンと画像のユーザ独自のデータベースを作り、それらを任意の望ましい手段、たとえば、ソーシャルネットワークまたはソーシャルネットワークへのアクセスポートを介して、1以上の他のユーザに送ることができると、有利である。その後、受取側のユーザは、ユーザが選択可能な彼らの新規ビュー画像と映像を決定して、それらについて議論し合うことができる。
【0309】
再生64は、競技役員が得点の有効性を判定するためや、ファンが得点の有効性や、他の興味を起こさせたり物議を醸したりするスポーツ動作について議論するために用いられ、さらに、1以上の新規ビュー66を使って彼らの見解の証拠を提供するために使用されることができる。
【0310】
本発明の1以上の実施形態によれば、システム100および/またはサブシステムにおいて、異なるイベント10における複数の再生64を作り、比較として重ねてさらなる累積的再生64を作ってもよい。たとえば、野球の試合の間またはその後に、交替で打席に立つ多くの選手の再生64を比べて、種々のタイプの打撃スタイルを示すことができる。
【0311】
この点、比較方法において、ユーザは、関連し興味のあるそれぞれのイベントについて複数の再生64、すなわち取り込みフレームセットを作成する。フレームセットは、固定された瞬間か、画像のシーケンスであるかは問われない。それぞれのフレームセットは、基準点、たとえば、野球のホームプレート、たとえば、ホームプレートのコーナーに視点を設けることができる。これにより、試合中の種々の投球とこれらの投球が種々の打者に対して成功したかどうかを示すことができる。画像フレームのそれぞれのデータセットは、複数のユーザのために1以上のウエブサイトにアップロードして、ユーザが評価したり、互いに対話したり、そのデータセットの作成者と対話できるようにすることもできる。
【0312】
本発明を特定の実施形態に関連して記載したが、多くの代替、変更、および変形については、上記の記載を参照することにより、当業者にとっては明白なものであると理解される。