IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ナントストゥディオス、リミテッド、ライアビリティー、カンパニーの特許一覧

<>
  • 特表-動的透視を介したカメラ追跡 図1
  • 特表-動的透視を介したカメラ追跡 図2
  • 特表-動的透視を介したカメラ追跡 図3
  • 特表-動的透視を介したカメラ追跡 図4
  • 特表-動的透視を介したカメラ追跡 図5A
  • 特表-動的透視を介したカメラ追跡 図5B
  • 特表-動的透視を介したカメラ追跡 図6
  • 特表-動的透視を介したカメラ追跡 図7
  • 特表-動的透視を介したカメラ追跡 図8
  • 特表-動的透視を介したカメラ追跡 図9
  • 特表-動的透視を介したカメラ追跡 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-06
(54)【発明の名称】動的透視を介したカメラ追跡
(51)【国際特許分類】
   G06T 7/80 20170101AFI20241029BHJP
【FI】
G06T7/80
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024523146
(86)(22)【出願日】2022-10-18
(85)【翻訳文提出日】2024-04-16
(86)【国際出願番号】 US2022047002
(87)【国際公開番号】W WO2023069422
(87)【国際公開日】2023-04-27
(31)【優先権主張番号】63/257,930
(32)【優先日】2021-10-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.SWIFT
3.PYTHON
4.JAVA
(71)【出願人】
【識別番号】524143674
【氏名又は名称】ナントストゥディオス、リミテッド、ライアビリティー、カンパニー
【氏名又は名称原語表記】NantStudios, LLC
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100124372
【弁理士】
【氏名又は名称】山ノ井 傑
(72)【発明者】
【氏名】マシーン、シディキ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096DA02
5L096EA39
5L096FA32
5L096FA66
5L096FA67
5L096FA69
5L096GA55
5L096HA11
5L096JA22
5L096KA04
(57)【要約】
コンピュータシステムは第1の期間に対応する物理的カメラの第1の位置を識別し得る。コンピュータシステムは第1の期間の第1のバーチャルシーンを描画し得る。本システムは第1の期間の第1の描画された画像を判断するために第1のシーンを表示面上へ投影し得る。コンピュータシステムは第1の期間中にカメラから表示面の第1のカメラ画像を受信し得る。本システムは第1の描画された画像と第1のカメラ画像とを比較することによりカメラの第1の補正位置を判断し得る。本システムは第2の期間に対応するカメラの第2の位置を予測し得る。コンピュータシステムは第2の期間の第2のバーチャルシーンを描画し得る。本システムは第2の期間の第2の描画された画像を判断するために第2のバーチャルシーンを表示面上へ投影し得る。
【特許請求の範囲】
【請求項1】
バーチャル製作環境内のカメラ追跡を実施する方法であって、前記方法は可動である物理的カメラと通信可能に結合されたコンピュータシステムにより、以下のこと:
第1の期間に対応する前記物理的カメラの第1の位置を識別すること;
前記第1の期間の第1のバーチャルシーンをアニメーションエンジンを使用することにより描画すること;
前記第1の期間の前記第1の描画された画像を判断するために前記第1のバーチャルシーンを表示面上へ投影することであって前記第1のバーチャルシーンの前記投影は前記物理的カメラの前記第1の位置に一致する、投影すること;
前記表示面上に表示するための前記第1の描画された画像をフレームバッファ内に格納すること;
前記表示面の第1のカメラ画像を受信することであって、前記第1のカメラ画像は前記第1の期間中に前記物理的カメラを使用することにより取得される、受信すること;
前記第1の描画された画像と前記第1のカメラ画像とを比較することにより前記物理的カメラの第1の補正位置を判断すること;
第2の描画された画像が表示面上に表示される第2の期間に対応する前記物理的カメラの第2の位置を前記第1の補正位置を使用することにより予測すること;
前記第2の期間の第2のバーチャルシーンをアニメーションエンジンを使用することにより描画すること;及び、
前記第2の期間の第2の描画された画像を判断するために前記第2のバーチャルシーンを前記表示面上へ投影することであって、前記第2のバーチャルシーンの前記投影は前記物理的カメラの前記第2の位置に一致する、投影すること
を行うことを含む方法。
【請求項2】
前記第1の描画された画像と前記第1のカメラ画像とを比較することは:
前記第1の描画された画像内の物体の第1のピクセル位置と前記第1のカメラ画像内の前記物体の第2のピクセル位置とを識別すること;
前記第1のピクセル位置と前記第2のピクセル位置との差を判断すること;及び
前記第1の補正位置を取得するために前記差を前記第1の位置へ適用することを含む、請求項1に記載の方法。
【請求項3】
前記第2の位置を予測することは取得される最終映像のための所定振り付けファイルからの情報を使用する、請求項1に記載の方法。
【請求項4】
前記物理的カメラの前記第1の位置は前記表示画面の前記物理的カメラからの初期画像を使用することにより識別される、請求項1に記載の方法。
【請求項5】
前記物理的カメラの前記第1の位置を識別することは:
画像を物理的位置へマッピングするモデルを格納すること;及び
前記初期画像を前記モデルへ入力することを含む、請求項4に記載の方法。
【請求項6】
前記物理的カメラの前記第2の位置を予測することは物理的カメラの位置の履歴からの情報を使用する、請求項1に記載の方法。
【請求項7】
前記物理的カメラの前記第2の位置を予測することは:
現在位置から将来位置を予測するトレーニング済みモデルを格納すること;及び
前記第1の位置を前記モデルへ入力することを含む、請求項1に記載の方法。
【請求項8】
前記第1の位置を前記モデルへ入力することは前記第1の位置における前記物理的カメラの一組の運動データを入力することを含む、請求項7に記載の方法。
【請求項9】
前記一組の運動データは速度、加速、ジャーク、スナップ、クラックル及びポップの少なくとも1つを含む、請求項8に記載の方法。
【請求項10】
実行されるとコンピュータシステムに以下のこと:
第1の期間に対応する物理的カメラの第1の位置を識別すること;
前記第1の期間の第1のバーチャルシーンをアニメーションエンジンを使用することにより描画すること;
前記第1の期間の前記第1の描画された画像を判断するために前記第1のバーチャルシーンを表示面上へ投影することであって前記第1のバーチャルシーンの前記投影は前記物理的カメラの前記第1の位置に一致する、投影すること;
前記表示面上に表示するための前記第1の描画された画像をフレームバッファ内に格納すること;
前記表示面の第1のカメラ画像を受信することであって、前記第1のカメラ画像は前記第1の期間中に前記物理的カメラを使用することにより取得された、受信すること;
前記第1の描画された画像と前記第1のカメラ画像とを比較することにより前記物理的カメラの第1の補正位置を判断すること;
第2の描画された画像が表示面上に表示される第2の期間に対応する前記物理的カメラの第2の位置を前記第1の補正位置を使用することにより予測すること;
前記第2の期間の第2のバーチャルシーンをアニメーションエンジンを使用することにより描画すること;及び
前記第2の期間の前記第2の描画された画像を判断するために前記第2のバーチャルシーンを前記表示面上へ投影することであって、前記第2のバーチャルシーンの前記投影は前記物理的カメラの前記第2の位置に一致する、投影すること
を行うように制御する複数の指令を格納する非一時的コンピュータ可読媒体を含むコンピュータ製品。
【請求項11】
前記第1の描画された画像と前記第1のカメラ画像とを比較することは:
前記第1の描画された画像内の物体の第1のピクセル位置と前記第1のカメラ画像内の前記物体の第2のピクセル位置とを識別すること;
前記第1のピクセル位置と前記第2のピクセル位置との差を判断すること;及び
前記第1の補正位置を取得するために前記差を前記第1の位置へ適用することを含む、請求項10に記載のコンピュータ製品。
【請求項12】
前記第2の位置を予測することは取得される最終映像の所定振り付けファイルからの情報を使用する、請求項10に記載のコンピュータ製品。
【請求項13】
前記物理的カメラの前記第1の位置は前記表示画面の前記物理的カメラからの初期画像を使用することにより識別される、請求項10に記載のコンピュータ製品。
【請求項14】
前記物理的カメラの前記第1の位置を識別することは:
画像を物理的位置へマッピングするモデルを格納すること;及び
前記初期画像を前記モデルへ入力することを含む、請求項13に記載のコンピュータ製品。
【請求項15】
前記物理的カメラの前記第2の位置を予測することは物理的カメラの位置の履歴からの情報を使用する、請求項10に記載のコンピュータ製品。
【請求項16】
物理的カメラ;
非一時的コンピュータ可読媒体;及び
前記非一時的コンピュータ可読媒体と通信可能に結合された1つ又は複数のプロセッサを含むシステムであって、前記1つ又は複数のプロセッサは以下のこと:
第1の期間に対応する前記物理的カメラの第1の位置を識別すること;
前記第1の期間の第1のバーチャルシーンをアニメーションエンジンを使用することにより描画すること;
前記第1の期間の前記第1の描画された画像を判断するために前記第1のバーチャルシーンを表示面上へ投影することであって前記第1のバーチャルシーンの前記投影は前記物理的カメラの前記第1の位置に一致する、投影すること;
前記表示面上に表示するための前記第1の描画された画像をフレームバッファ内に格納すること;
前記表示面の第1のカメラ画像を受信することであって、前記第1のカメラ画像は前記第1の期間中に前記物理的カメラを使用することにより取得される、受信すること;
前記第1の描画された画像と前記第1のカメラ画像とを比較することにより前記物理的カメラの第1の補正位置を判断すること;
第2の描画された画像が表示面上に表示される第2の期間に対応する前記物理的カメラの第2の位置を前記第1の補正位置を使用することにより予測すること;
前記第2の期間の第2のバーチャルシーンをアニメーションエンジンを使用することにより描画すること;及び
前記第2の期間の前記第2の描画された画像を判断するために前記第2のバーチャルシーンを前記表示面上へ投影することであって、前記第2のバーチャルシーンの前記投影は前記物理的カメラの前記第2の位置に一致する、投影すること
を行うように構成される、システム。
【請求項17】
前記物理的カメラの前記第2の位置を予測することは物理的カメラの位置の履歴からの情報を使用する、請求項16に記載のシステム。
【請求項18】
前記物理的カメラの前記第2の位置を予測することは:
現在位置から将来位置を予測するトレーニング済みモデルを格納すること;及び
前記第1の位置を前記モデルへ入力することを含む、請求項16に記載のシステム。
【請求項19】
前記第1の位置を前記モデルへ入力することは前記第1の位置における前記物理的カメラの一組の運動データを入力することを含む、請求項18に記載のシステム。
【請求項20】
前記一組の運動データは速度、加速、ジャーク、スナップ、クラックル及びポップの少なくとも1つを含む、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、すべての目的のために参照によりその全体を本明細書に援用する2021年10月20日申請の米国仮特許出願第63/257,930号明細書:題名“CAMERA TRACKING VIA DYNAMIC PERSPECTIVES”の利益を主張する。
【背景技術】
【0002】
一生産技術では、撮影される物理的シーンの背景幕としてディジタルスクリーンが使用され得る。大きなディジタルスクリーンは、任意の背景及び文字がライブアクション俳優により挿入されることを可能にする。スクリーン上に表示される特定画像は、時間と共にそして物理的生成カメラと同期して変化し得る。画像は、判断された位置に基づきスクリーン上に表示される(例えば物理的プロダクションカメラ上のマーカと、マーカを使用することにより物理的プロダクションカメラの位置を判断する別個のデバイスとにより)。このような追跡は混み合ったステージ上で問題となり得、そしてエラーを有し得る。
【発明の概要】
【課題を解決するための手段】
【0003】
いくつかの実施形態は、物理的カメラの場所を判断するために表示パネルの捕捉画像を使用し得る。表示パネルは、物理的カメラの予測場所に基づき描画される画像を表示し得る。表示パネル幾何学的形状及び描画された画像が知られていれば、物理的カメラの位置は、描画された画像と物理的カメラにより捕捉された画像との比較を介し判断され得る。物理的カメラが予測場所に在れば、捕捉された画像は描画された画像を反映するべきであり、そして2つの画像間の差は物理的カメラの実際の場所を計算するために使用され得る。
【0004】
いくつかの実施形態では、バーチャル生産環境内のカメラ追跡を実施するための技術は、第1の期間又は時点に対応する物理的カメラの第1の位置を識別することを含み得る。本技術は第1の期間の第1のバーチャルシーンを描画することを含み得る。本技術は、第1の期間の第1の描画された画像を判断するために第1のバーチャルシーンを表示面上へ投影することを含み得る。第1のバーチャルシーンの投影は物理的カメラの第1の位置に一致する。本技術は表示面の第1のカメラ画像を受信することを含み得る。第1の画像は第1の期間中に物理的カメラを使用することにより取得される。本技術は第1の描画された画像と第1のカメラ画像とを比較することにより物理的カメラの第1の補正位置を判断することを含み得る。本技術は、第2の期間に対応する物理的カメラの第2の位置を第1の補正位置を使用することにより予測することを含み得る。本技術は第2の期間の第2のバーチャルシーンを描画することを含み得る。本技術は、第2の期間の第2の描画された画像を判断するために第2のバーチャルシーンを表示面上へ投影することを含む。第2のバーチャルシーンの投影は仮想カメラの第2の位置に一致する。
【0005】
いくつかの実施形態では、第2の位置を予測することは取得される最終映像の所定振り付けファイルからの情報を使用する。
【0006】
いくつかの実施形態では、物理的カメラの第1の位置は表示画面の物理的カメラからの初期画像を使用することにより識別される。
【0007】
いくつかの実施形態では、物理的カメラの第1の位置を識別することは画像を物理的位置へマッピングするモデルを格納することと初期画像をモデルへ入力することとを含む。
【0008】
本開示のこれら及び他の実施形態は以下に詳細に説明される。例えば、他の実施形態は本明細書において説明される方法に関連するシステム、デバイス及びコンピュータ可読媒体に向けられる。
【0009】
本開示のいくつかの実施形態の性質及び利点のより良い理解は以下の詳細説明と添付図面とを参照して得られ得る。
【図面の簡単な説明】
【0010】
図1】少なくとも1つの実施形態によるバーチャル製作スタジオのオーバーヘッド透視図を示す。
図2】少なくとも1つの実施形態による表示面上へ描画されたバーチャルシーンのオーバーヘッド透視図を示す。
図3】少なくとも1つの実施形態による2次元面上への3次元物体の投影の簡略図300を示す。
図4】少なくとも1つの実施形態による登録誤差(registration error)を有するバーチャル製作スタジオのオーバーヘッド透視図を示す。
図5A】少なくとも1つの実施形態による見通線に沿った登録誤差を有するカメラのオーバーヘッド透視図を示す。
図5B】少なくとも1つの実施形態による見通線に直交する登録誤差を有するカメラのオーバーヘッド透視図を示す。
図6】少なくとも1つの実施形態による、予想カメラ位置と実際カメラ位置とが連設されるがカメラは様々な方位を有するバーチャル製作スタジオのオーバーヘッド透視図を示す。
図7】少なくとも1つの実施形態による登録誤差を有するバーチャル製作スタジオのオーバーヘッド透視図を示す。
図8】少なくとも1つの実施形態による以前のカメラ位置に基づき新しいカメラ位置を予測する方法のフローチャートを示す。
図9】少なくとも1つの実施形態によるカメラ追跡をバーチャル生産環境内で実施するための技術のフローチャートを示す。
図10】少なくとも1つの実施形態による本開示の一実施形態による例示的コンピュータシステムの線図を示す。
【発明を実施するための形態】
【0011】
バーチャル製作は、ライブアクションシーケンスがコンピュータ生成環境の前の物理的カメラにより撮影されることを可能にする視覚的効果技術である。バーチャル製作中の撮影は、高精細表示パネルのアレイから構成される表示面により(例えば180度、270度、4πラジアンなどで)囲まれた中央ステージを有する大きなスタジオ内で発生する。俳優及び物理的小道具は、バーチャルシーン(例えばコンピュータ生成背景幕)が境界表示面上に表示される間に中央ステージ内で撮影される。表示面のパネルは、中央ステージ内の俳優及び物体の現実的照明及び反射を可能にする。例えば、鏡内のバーチャルシーンの反射はバーチャル製作スタジオ内の撮影中に捕捉され得る一方で、伝統的撮影技術による同様な効果は後製作(post-production)において反射を加えることを必要とし得る。
【0012】
カメラの位置(角度及び距離)は移動し得るので、描画された画像はこのような動きに基づき更新される必要がある。いくつかの実施形態は、カメラの現在位置の適正画像を描画するようにカメラの位置を判断し得る。いくつかの実施形態は、カメラの動きを追跡する別個のシステムを必要することなく位置を判断し得る(例えばカメラへ取り付けられたマーカを使用することにより)。その代りに、いくつかの実施形態は、カメラにより測定された画像と予測位置からの予測画像とを比較し得る。比較から判断された誤差(例えば特定時刻における予測位置からの誤差)はカメラが在る場所に関する情報を提供する。
【0013】
このようにして、カメラは、画像間の最大差を生じる最も大きな視覚的歪み誤差が最も高い精度で測定されるので、より少ない機器により追跡され得、そして外部追跡システムよりより精確であり得る。このような誤差は、画像間の誤差に一致するやり方で推定位置が更新されるので視覚的オドメトリを使用する実施形態では存続しないだろう。
【0014】
I.バーチャル製作
バーチャル製作は、後製作においてコンピュータ生成画像を加える必要無しに撮影中にライブアクションシーンとコンピュータ生成画像とを合成する映画製作技術である。バーチャル製作中、コンピュータ生成3次元環境が生成され、コンピュータ生成3次元環境はバーチャルシーンを中央ステージと境界を接する表示画面上に描画しそして示すために使用される。バーチャルシーンは、表示画面上の2次元画像が意図された視点から見られた場合に3次元であるように見えるように、(恐らくカメラ視点又は俳優視点に対して)意図された視点に基づき描画される。
【0015】
スタジオ又はステージと境界を接する模擬環境を精確に伝えるために、バーチャルシーンは単一視点に関し描画され得る。バーチャルシーンが3次元環境を模擬するので単一視点が選択されるが、バーチャルシーンは2次元表示画面上で描写される。2次元スクリーン上の説得力のある3次元環境を描写するために、3次元空間内の物体は視点(例えば3次元(3D)投影、カメラの視点など)により判断されたそれらの相対的サイズ及び場所により描画される。バーチャルシーンは、表示される画像を判断するために、画面に対応する2次元面上へ投影され得る。表示される正確な画像はカメラの位置に依存し得る。バーチャルシーンは、ゲームエンジン(例えばUnreal Engine、UnRealなど)を使用することにより生成されたコンピュータ生成3次元環境であり得る。投影は、3Dバーチャルシーンを、表示面の位置に対応する2次元面へマッピング(例えば幾何学的投影)する操作である。一般的に、物体は視点からの距離が増加するにつれてより小さく見える。バーチャルシーンが、意図せぬ視点から見られれば、描画された物体は、物体のサイズ、プロポーション及び位置が、どのように物体が意図せぬ視点から見えるかに一致しないので、歪んだように見え得る。
【0016】
加えて、カメラ運動は、環境が設定視点から3次元的に見える間は、表示面上に描画された2次元画像の視差(例えば変化する視点から見た物体の変位)は無いので、画像歪を引き起こし得る。視差の欠如を補正するために、模擬視差が、物理的カメラの場所及び方位に基づきコンピュータ生成画像を更新することにより、深度を伝える。視差を正しく模擬するために、物理的カメラは表示面に対するその方位を判断するために追跡される。
【0017】
図解例では、物理的セットがバーチャル製作スタジオ内の中央ステージ内に構築される。コンピュータ生成画像は、発光ダイオード(LED)パネルのアレイを含む表示面へ接続されるスタジオ内の描画システムへ提供される。既存実装形態では、スタジオはまた、物理的カメラの初期場所を提供するカメラ追跡システム(例えばOptitrack)を含み得る。カメラ追跡システムにより判断された場所は表示面上に示される第1のバーチャルシーンを描画するために使用される。監督は、描画されたシーンを見た後、環境内の建物の照明及び位置に対し調節を行い得る。監督がシーンを承認すると、俳優がステージ内に配置されそしてこのシーンが撮影される。カメラ操作者が撮影中にカメラを移動するにつれ、カメラの場所は、捕捉された画像とカメラの推定位置に関して描画されたバーチャルシーンとを比較することにより視覚的オドメトリを介し追跡され得る(例えば環境のマップが前もって知られている場合に視覚的同時定位及びマッピング(vSLAM:visual simultaneous localization and mapping)又は技術を使用することにより)。同時定位及びマッピング(SLAM:simultaneous localization and mapping)はエリア内のエンティティの場所を追跡しながらエリアをマッピングし得る。いくつかの実装形態では、環境のマップは前もって判断され得、そして新しい測定結果が既存3Dマップと比較され得る。後で説明されるように、このような実施形態は、物理的環境内でトレーニングされた機械学習モデルを使用することとスクリーン(このようなコンテンツは動的であり得る)上に表示された同じコンテンツを使用することとを含み得る。
【0018】
視覚的オドメトリは連続カメラフレーム(successive camera frame)を介し特徴を追跡し得る。連続フレーム間の特徴の比較は、3次元環境内の特徴の場所を三角測量するために使用され得る。連続カメラフレームはまた、3次元環境内のカメラの姿勢を推定するために使用され得る。近似解法が、使用され得、そして粒子フィルタ、拡張カルマンフィルタ、共分散交差法及びGraphSLAMを含み得る。
【0019】
図1は少なくとも1つの実施形態によるバーチャル製作スタジオ100のオーバーヘッド透視図を示す。物理的カメラ102が湾曲表示面104の前に在る。いくつかの実装形態では、表示面104は中央ステージ106と境界を接し得、そして表示面104は表示パネル(例えば発光ダイオード(LED:light-emitting diode)パネル、有機発光ダイオード(OLED:organic light-emitting diode)パネル、液晶ディスプレイ(LCD:liquid crystal display)パネルなど)のアレイを含み得る。表示パネルの様々な幾何学的形状が企図され、そして、いくつかの実施形態では、表示面104は、中央ステージ106と境界を接する表面の小部分を占め得る。例えば、表示面104は壁上の模擬窓であり得る。他の実装形態では、表示面104は、中央ステージ106と境界を接する表面の最大ですべてを占め得る。例えば、表示面104は、中央ステージ106(例えばMegaPixel)と境界を接する壁上、天井上、及び床上にパネルを含み得る。いくつかの実施形態では、表示面104は天井又は床上にパネルを含み得る。物理的カメラ102は中央ステージ106及び表示面104の両方を撮影し得る。セット、俳優、及び実際的効果が中央ステージ106内に配置されそして撮影され得る。
【0020】
物理的カメラ102などの1つ又は複数の物理的カメラは、カメラの視野108により画定された表示面104の一部分を撮影し得る。描画システム110は、ゲームエンジン(例えばUnreal Engine、UnRealなど)を使用することによりバーチャルシーンを生成するコンピュータシステムであり得、そしてバーチャルシーンは表示面104上に示される。描画システム110は物理的接続112により表示面104へ接続されてもよいし無線で表示面104へ接続されてもよい。バーチャルシーンは静止画像又は景観に対向する動的可変3次元環境であり得、そして環境を描画することは、物理的カメラの現在位置から可視である当該環境の一部分を生成することを含み得る。
【0021】
後でより詳細に説明されるように、物理的カメラ102は描画システム110と通信可能に結合され得る。このようにして、描画システム110は、表示面104上に表示される画像を判断するために次に使用され得るその現在位置を判断するように物理的カメラ102からの画像を分析し得る。
【0022】
図2は少なくとも1つの実施形態によるバーチャル製作スタジオ200のオーバーヘッド透視図を示す。仮想点202はステージエリア206と境界を接する湾曲表示面204上に描画される。いくつかの実装形態では、表示面204は表示パネルのアレイ又はアンサンブルを含み得、このアレイはバーチャル製作スタジオ又はステージの天井又は床上に表示パネルを含み得る。仮想点202は、表示面204上に見掛け仮想点208を生成することによりバーチャルシーンの一部として描画され得る。見掛け仮想点208は、表示面204が推定カメラ位置210から見られると、見掛け仮想点208が、仮想点202を含むバーチャルシーンとして知覚され得るように、生成され得る。仮想点202を含むバーチャルシーンは、文字及び景色を含み得る仮想環境を形成し得る。いくつかの実装形態では、バーチャルシーンは表示面全体又は表示面の一部分上に描画され得る。投影のさらなる図解が次に提供される。
【0023】
図3は少なくとも1つの実施形態による2次元面(例えば画面)上への3次元物体の投影の簡略図300を示す。3次元物体302(立方体)は、バーチャルシーン内の仮想点(上に述べた仮想点202のような)から構成し得る。3次元物体は2次元物体306として2次元観測面304上へ投影され得る。2次元観測面304は、上に説明された表示面104のようなバーチャル製作スタジオ内の表示面であり得る。2次元観測面304に対する2次元物体306の方位に依存して、2次元観測面304から見られ得る3次元物体302の一部分は2次元物体306として表わされる。2次元物体306は見掛け仮想点の集合として表わされ得る。
【0024】
図2に戻って参照すると、推定カメラ位置210は本明細書において説明されるような様々なやり方で推定され得る。例えば、各時刻におけるカメラの位置は、特定場所に在るように又は特定運動(振り付け)を有するように規定され得る。このような予想位置は、予想位置からのオフセット(誤差又は差とも呼ばれる)を判断するために予測画像と実画像との差と併せて使用され得る。別の例では、機械学習モデル(例えばニューラルネットワークなど)は、特定時刻における所与の表示画像のために様々な位置で撮影された画像を使用することによりトレーニングされ得る。このようにして、機械学習モデルは特定時刻に撮影された画像を或る位置へマッピングし得る。カメラの軌道もまた、判断され得、これにより時間ステップとしての次の位置の予測を可能にする。
【0025】
II.バーチャル製作におけるカメラ追跡の問題
バーチャル製作スタジオの表示面上に示された画像は、推定カメラ位置(例えば意図された視点)から見られない限り歪められ得る。推定カメラ位置はバーチャル製作スタジオ内の予測物理的カメラ位置であり得る。登録誤差は推定カメラ位置と物理的カメラの実際位置との相違であり、そして登録誤差は、画像が物理的カメラの実際位置から見られる場合は歪んだ表示パネル画像を生じ得る。
【0026】
図4は、少なくとも1つの実施形態による実際の見通線と適正見通線との相違により引き起こされる登録誤差を有するバーチャル製作スタジオ400を示す。バーチャル製作スタジオ400は、上に述べた表示面104及び中央ステージエリア106と同様に中央ステージエリア404と境界を接する表示面402を含む。バーチャルシーンの一部を形成する仮想点406は見掛け仮想点408として描画される。仮想点406は、カメラの予測位置410において、意図された視点により描画される。
【0027】
見掛け仮想点408は、予測位置410と仮想点406との間の見通線412に沿った表示面402上に示される。しかし、物理的カメラ414は予測位置410に配置されていない。実際の見通線416は物理的カメラ414から見掛け仮想点408へ伸びる。適正見通線418は物理的カメラから仮想点406へ伸びる。見掛け仮想点408は物理的カメラ414の視点から仮想点406を精確に示すために適正仮想点420として描画されるべきだった。見掛け仮想点408と適正仮想点420との差が登録誤差である。
【0028】
現実環境を模擬するために、物理的カメラがバーチャル製作スタジオを進むにつれ、表示パネル上に表示されるコンピュータ生成環境内の物体は、物理的カメラに対する物体の仮想位置に基づき様々な速度で移動するべきである。例えば、物理的カメラがカメラの見通線に直交する軸に沿って横断すると、前景画像内の近い物体は遠い背景画像と比較してより速い速度(すなわち視差)で移動するべきである。加えて、物理的カメラがその見通線に沿って移動する場合、前景画像と背景画像との相対的サイズは、背景画像よりより速い速度で成長する前景画像と共に変化するべきである。
【0029】
推定カメラ位置及び実際カメラ位置の両方は6つの自由度を有する3次元位置であり得、そして、登録誤差が、物理的カメラの見通線に沿った又は見通線に対し直交する軸上の予想位置と実際位置との相違のために発生し得る。いくつかの実装形態では、表示面はカメラの視野より大きく、そして物理的カメラは表示画面を撮影する間に回転することができる。推定カメラ位置と実際カメラ位置とが投影中心を共有する場合、推定カメラ位置と実際カメラ位置との間の回転相違は、推定カメラ位置と実際カメラ位置とが連設されるので登録誤差を引き起こさない。
【0030】
登録誤差の大きさは、仮想点(例えばコンピュータ生成環境内の点)と見掛け仮想点(例えば仮想点を描写する表示パネルアレイ上の点)との距離に依存する。見掛け仮想点と連接される仮想点は、仮想点の見掛け位置と実際位置とが運動にかかわらず同一であるために視差が無いので登録誤差にかかわらず歪んで見えることはない。しかし、上に論述されたように、仮想点と見掛け仮想点との間の距離は、仮想点の見掛け位置が視点に依存して変動し得るので登録誤差を生じ得る。
【0031】
登録誤差の方位もまた、見通線に沿った登録誤差より大きな歪みを引き起こす見通線に直交する誤差を有する画像歪に寄与し得る。外部カメラ追跡技術は、このようなシステムがカメラ位置を判断するために天井取り付け型追跡カメラ又は標準マーカをしばしば含むので直交登録誤差を起こし易い。物理的カメラ上の外部マーカは、モーションキャプチャ技術を使用することによりカメラ位置を判断するために追跡カメラにより使用される。一般的に、外部カメラ追跡における誤差は、カメラ追跡システムにより使用されるピクチャが追跡カメラに対する物理的カメラの深度を容易に判断し得ないので追跡カメラと物理的カメラとの間の軸に沿って発生する。
【0032】
図5Aは、少なくとも1つの実施形態による物理的カメラの見通線に沿った物理的カメラの予想位置と実際位置との間の相違を有するバーチャル製作スタジオ500を示す。表示面502は中央ステージエリア504を囲み、そして図5Aに関連して説明される特徴は上述の関連特徴に似ている。見掛け仮想点506は、予想位置510と仮想点512とから伸びる見通線508に沿って描画された。物理的カメラ514は、予想位置510に配置されていなく、そしてその代りに見通線508に沿った見掛け仮想点506のより近くに配置されている。
【0033】
この場合、見通線508と適正見通線とは同じであり、そして見掛け仮想点506と適正仮想点516とは近接して配置されているが、適正仮想点516により表わされる物体は見掛け仮想点506により表わされる物体より大きい。登録誤差は、見掛け仮想点506により構築された物体の対応画素と適正仮想点516により構築された物体の対応画素との間の距離であり、そして登録誤差は小さい可能性がある。登録誤差は、画素で、仮想環境内の仮想距離で、現実世界スタジオセット内の現実世界距離で、又は利害関係者又は内在ゲームエンジンに好都合であり得るような他の単位で測定され得る。
【0034】
図5Bは少なくとも1つの実施形態による見通線に直交する軸に沿った物理的カメラの場所と予想位置との相違を有するバーチャル製作スタジオ501を示す。図5Bに関連して説明された特徴は上述の関連特徴に似ている。表示面503は中央ステージエリア505を囲み、そして見掛け仮想点507は、予想位置511から仮想点513へ伸びる見通線509に沿った表示面503上に表示される。物理的カメラ515は見通線509に直交する軸517に沿って配置される。物理的カメラ515の適正軸519は適正仮想点521を通り仮想点513へ伸び、そして登録誤差は適正仮想点521と見掛け仮想点507との差により引き起こされる。
【0035】
図6は少なくとも1つの実施形態によるバーチャル製作スタジオ600のオーバーヘッド透視図を示し、ここでは、物理的カメラは、床から、予想位置に対する物理的カメラまで伸びる軸を中心に回転され、回転誤差を引き起こす。表示面602は中央ステージエリア604を囲み、そして見掛け仮想点606は、仮想点608と予想位置610との間の軸612に沿った表示面602上に示される。物理的カメラ614は予想位置610と同じ位置に配置されるが、物理的カメラ614の方位は予想カメラ位置に対し回転される。いくつかの実装形態では、バーチャルシーンは物理的カメラ614の視野より大きい表示面の一部分上に描画される。これらの実装形態では、物理的カメラ614は、投影の中心が予想位置612及び物理的カメラ614に関し同じならば見掛け仮想点606及び適正仮想点が連設され得るので登録誤差無しに回転し得る。
【0036】
このような誤差は視覚的オドメトリを使用することにより対処され得る。具体的には、物理的カメラにより撮影された捕捉画像は、物理的カメラが予測位置に在れば予測画像と比較され得る。画像間の誤差は、予測位置に対する位置のオフセットを提供し、これにより実際位置又は補正位置の測度を提供する。この補正位置は次の時間ステップで位置を予測するために使用され得る。
【0037】
III.オドメトリを使用することによる位置の判断
視覚的オドメトリは連続画像からカメラの場所及び方位を判断するプロセスである。視覚的オドメトリは環境(例えばEgomotion)内のカメラの3方向運動を判断するために使用され得る。環境内の物理的カメラの位置は、2次元画像内の要素を3次元環境内の場所へマッピングすることにより判断され得る。
【0038】
A.視覚的オドメトリ
視覚的オドメトリは、カメラにより捕捉された画像内の変化を追跡することにより3次元環境内のカメラの位置を判断するために使用され得る。特徴(画像のコンテンツに関する情報)は連続カメラ画像内で検出され得、そして連続画像からの特徴はカメラの運動を判断するために比較され得る。
【0039】
特徴は、画像内の端、角又は質感などの当然存在する特性を含み得る。追跡は、追跡を支援するためにシーンへ加えられる容易に識別可能な特徴(基準(fiducial)と呼ばれる)により容易にされ得る。ランドマーク又はマーカとしても知られた基準は、明確な円形背景上の4-5画素幅点で一般的に構成される点基準を含む。代替的に、平坦な基準はしばしば白黒グリッドから成る。基準は、背景と高コントラストをなすために識別するのが容易であり得るので特徴検出のために有用である。特徴認識は、その全体を参照により本明細書に援用する米国特許出願公開第2021/0027084号明細書、同第2019/0318195号明細書又は同第2019/0272646号明細書に開示された技術などの物体認識技術を介し発生し得る。
【0040】
連続画像内の特徴の運動は、画像間で特徴を整合することによりオプティカルフロー(例えばカメラの運動により引き起こされる連続画像内の物体、表面及び端の見掛け運動のパターン)を生成するために使用され得る。オプティカルフロー(例えばLucas-Kanade方法を使用することにより生成されるオプティカルフロー)は、状態推定分布維持のためにカルマンフィルタを使用することによりカメラ運動を推定するために使用され得る。カメラ運動はまた、2つの隣接画像間の重投影(re-projection)誤差に基づき費用関数を最小限にする特徴の幾何学的特性を発見することにより(例えば数学的最小化又はランダムサンプリングにより)推定され得る。
【0041】
一例として、物体のサイズの変化(すなわち、より小さくなる又はより大きくなる)は、同じ形状に留まる一般的形状と共にスクリーンに向かう方向の又はスクリーンから離れる方向の運動を指示し得る。左側への(例えばスクリーンに垂直な方向から離れる)見掛け運動は、スクリーンの左側の物体の幅がより大きくなる一方で物体の幅がより小さくなることにより判断され得る。同様な変化は右側への運動に関して検出され得る。
【0042】
B.様々な位置への画像のマッピング
視覚的オドメトリは、カメラにより捕捉された画像と模擬画像とを(カメラが表示面に対する予測位置に在れば見られるべきものに基づき)比較することによりバーチャル製作カメラを追跡するために使用され得る。本システムは、バーチャルシーンをスクリーン上へ投影する(すなわち3Dモデル内で)ために予測位置を使用することにより模擬(予想)画像を判断し得る。表示画面上の描画画像を判断するために使用される同じ予測位置は、表示画面の予測画像を判断するために使用され得る。画像の比較の一部として、対応バーチャルシーンが、判断され得、そして予想位置からのオフセット又は或る位置へのマッピングを判断するために比較され得る。
【0043】
1.2D-3D追跡
伝統的特徴視覚的オドメトリ技術は、カメラの2次元画像から3次元空間内の場所を判断するために使用され得る。視点(例えば姿勢)は、下記式により仮想環境内の3次元点及び2次元観測面(例えばカメラ画像)上の点を使用することにより判断され得る:
【数1】
【0044】
投影点
【数2】
は観測面上の理想的な一組の2次元特徴点を表す。仮想点X(例えば仮想点202)は3次元空間(例えばバーチャルシーン)内の一組の3次元点を表す。変数poseは時刻tにおけるカメラの理想位置を表わす。2次元特徴点
【数3】
及び3次元仮想点Xが知られていれば、カメラの場所(例えば視点)poseは、理想2次元特徴点
【数4】
(例えばX及び
【数5】
を通過する行が交差する点)の3次元仮想点Xへの投影のためのposeの最小値を発見することにより判断され得る。
【0045】
観察された2次元特徴点
【数6】
は物理的カメラにより捕捉された画像から判断され得る。次に、仮想点Xからスクリーン上の対応物体(すなわち
【数7】
)への線が視点poseにおいて交差する。代替的に、費用関数が最小にされ得る。費用関数は理想投影点
【数8】
と観察点
【数9】
との差を含み得る。例えば、差の2乗の和が費用関数として使用され得る。いくつかの例として、実際姿勢は、費用関数を最適化するために力ずくの方法を使用することにより、最急降下手法の方法を使用することにより、又は他の勾配法を使用することにより判断され得る。
【0046】
式(1)はまた、3次元仮想点Xを2次元点
【数10】
として2次元表面(例えば画像バッファ内の)上へ投影するために使用され得る。3次元点Xが知られておりそして視点poseが知られていれば、理想2次元点
【数11】
は式(1)から判断され得る。
【0047】
バーチャル製作スタジオ内のカメラの場所を判断するために、バーチャルシーンからの3次元点(例えば仮想点X)が2次元見掛け仮想点
【数12】
として表示パネル上へ投影され得る。これは式(2)において説明されるプロセスを使用することにより行われ得る。「各パネル上の見掛け仮想点
【数13】
はバーチャルシーンに対する2次元位置を有するが、見掛け仮想点がパネル上へ描画されると、これらの点はバーチャル製作スタジオ内の3次元位置を有する」ということを覚えておくべきである。見掛け仮想点
【数14】
が、画像を捕捉することにより観察されると(
【数15】
として)、バーチャル製作スタジオ内のカメラの実際場所は、カメラにより画像を捕捉することによりそして上述のように費用関数を最小限にすることにより、バーチャル製作スタジオ内の3次元場所の見掛け仮想点から判断され得る。
【0048】
見掛け3次元点は下記式を使用することにより表示面(例えば表示面104)上へ投影され得る:
【数16】
【0049】
既知の仮想点X(例えば仮想点406)及び推定位置(rendered_pose)は、表示面(例えば表示面402)上の見掛け仮想点
【数17】
(例えば見掛け仮想点408)の場所を計算するために使用され得る。推定位置及び仮想点Xは両方とも画像を表示面へ提供するために使用されるが、2次元表示面上の見掛け仮想点
【数18】
の場所は未知である。表示面上の見掛け仮想点の場所は、推定位置(rendered_pose)と仮想点Xとの間の線がパネルアレイと交差する点を追跡することにより費用関数の最小値
【数19】
を発見することにより計算され得る。
【0050】
2.3D-2D追跡
バーチャル製作スタジオ内の3次元位置における見掛け仮想点
【数20】
が知られていれば、物理的カメラの場所は、観測面内の2次元点
【数21】
(例えばカメラにより捕捉された点)と以下の式とを使用することにより判断され得る:
【数22】
【0051】
【数23】
は表示パネルへ送信される一組の3次元見掛け仮想点を表し;
【数24】
は観測面内の観測された一組の2次元特徴点の場所を表し、ここで、観測面は物理的カメラにより捕捉された画像であり得;そしてactual_poseはバーチャル製作スタジオ内の物理的カメラの実際位置を表わす。一組の見掛け仮想点
【数25】
の3次元場所は表示パネルの幾何学的形状を使用することにより判断され得る。実際位置actual_poseは、カメラにより捕捉された観察された2次元特徴点
【数26】
への見掛け仮想点
【数27】
の投影を最小限にする実際位置を発見することにより判断され得る。
【0052】
観察される2次元点
【数28】
と3次元点
【数29】
との対応は、カメラが表示面に対し予測位置に在れば見られるべきものに基づき観察画像と模擬画像とを比較することにより判断され得る。模擬画像を計算する際、各画素の3D点は保持され得る。この3D情報は、仮想物体の幾何学的形状ではなくパネルの幾何学的形状(例えば、点408)に対応し得る。特徴
【数30】
は、多くの特徴整合方法(例えばSIFT)を使用することによりそしてこれにより3D点
【数31】
を関連付けることにより模擬画像内の対応特徴と整合され得る。
【0053】
観測された2次元点
【数32】
と3次元点
【数33】
との対応もまた、特定3次元点
【数34】
を追跡するために、観測された2次元特徴点
【数35】
の場所を画像から画像へと追跡することにより維持され得る。この対応はまた、物体検出アルゴリズム(例えばスケール不変特徴変換(SIFT:scale-invariant feature transform))を使用することにより2次元特徴と3次元点とを整合することにより判断され得る。画像を位置へマッピングすることに関するさらなる詳細はHartley,Richard.,Zisserman,Andrew,Multiple view geometry in computer vision.United Kingdom:Cambridge University Press,2003に見出され得る。
【0054】
上記追跡方法は特徴整合の文脈で説明されたが、上記追跡方法はまた、画像登録又は全体画像アラインメントを介し説明され得る。この場合、我々は、模擬画像と観察画像との平均差が最小限にされるように模擬画像を繰り返し描画しそしてカメラの姿勢を調節することによりカメラ姿勢を探索する。
【0055】
3.未知のシーン幾何学的形状
いくつかの実装形態では、カメラ追跡システムは仮想幾何学的形状(例えば点406)へも描画姿勢(例えば、描画姿勢410)へも容易に直接アクセスできないかもしれなく、従って追跡アルゴリズムは描画システムから完全に分離され得る。例えば、追跡アルゴリズムは描画されたコンテンツが保護される必要があれば描画システムから分離され得る。カメラ追跡システムは、カメラ追跡システム自体が、分離された製品でありそして通信プロトコルを確立することが可能でなければ描画システムにアクセスしなくてもよい。追跡アルゴリズムと描画システムとを分離することはまた、システム間の通信待ち時間を低減するために望ましいかもしれない。例えば、待ち時間は推定アルゴリズムがプロダクションカメラへ組み込まれれば低減され得る。
【0056】
描画システムへアクセスしない追跡システムは、バーチャル製作環境に合わせて調整された完全同時定位及びマッピング(SLAM)戦略を使用することにより観察画像からカメラ姿勢を推定し得る。ここで我々は、次の形式の非線形最適化を使用することによりカメラ姿勢actual_poseだけでなくまた仮想点X及びrendered_poseも最適化し得る:
【数36】
ここで:
【数37】
Smoothness_penaltyは時間の経過に伴うカメラ運動の平滑化の測度(加速、ジャーク、スナップなど)であり得る(章Vを参照)。
【0057】
式(5)を使用する最適化は、カメラ観測面(画像バッファ)内へ投影される中間見掛け仮想点を計算するために表示面のモデルを使用しているという点で式(3)及び式(4)に似ている。しかし、いくつかの状況では、我々は全システム状態について同時に解決し得る。システムを安定化することを助けるために、我々はsmoothness_penalityを使用することによりカメラ運動(推定運動及び実際運動の両方)を制約し得る。
【0058】
他のSLAM方法のように、カメラ状態は時間の経過と共に式(5)へ加えられ得、追跡される特徴から仮想点(X)のマップを漸増的に構築する。仮想構造(X)及びカメラ運動についての初期不確実性は、大きくなり得るが、時間の経過と共に改善し得る。我々は、個々のカメラ姿勢及び仮想点の不確実性推定を維持し得、姿勢及び仮想点を制約しそしてそれらの不確実性が閾値を下回るとさらなる最適化からそれらの不確実性を除去し得る。我々はまた、冗長な仮想構造の生成を防ぐと共にドリフトを低減するためにループ閉鎖(loop closure)戦略を使用し得る。
【0059】
IV.次のシーンの投影を判断するためのオドメトリの使用
視覚的オドメトリは、シーンが描画されそして表示面上に表示された後にカメラの現在位置を判断し得る。カメラの推定位置と実際位置との差により引き起こされる誤差を最小限にするために、カメラの将来位置をカメラの現在位置に基づき予測するための技術が提供される。予測位置は表示面上に表示されるシーンを描画するために使用され得る。
【0060】
A.予想位置と実際位置との誤差の判断
図7は、少なくとも1つの実施形態による、推定カメラ位置と実際カメラ位置との相違により引き起こされる登録誤差を有するバーチャル製作スタジオ700のオーバーヘッド透視図を示す。中央ステージ704と境界を接する表示面702はバーチャルシーンの3次元透視投影を示す。推定カメラ位置706から見ると、表示パネルアレイ702上の2次元画像は3次元コンピュータ生成環境の一部であるように見える。
【0061】
深度を伝えるために、環境は、バーチャルシーンから推定カメラ位置706へ進む光線を画像が模擬するように描画される。見掛け仮想点708は推定カメラ位置706から見ると仮想点710と判別不能である。仮想点710から光の経路を推定カメラ位置706へ精確に伝えるために、見掛け仮想点708により形成される画像は、2次元表示面702が深度を示すように見えるように物体を歪ます(例えば、短縮遠近法)。しかし、見掛け仮想点が実際カメラ位置712から見られると、画像歪は、模擬光線が実際カメラ位置712に収束しないので、明白である。
【0062】
式(2)及び(3)を含む章IIIにおいて説明された式は実際カメラ位置712を判断するために使用され得る。表示面708上の見掛け仮想点(例えば
【数38】
)の場所は、仮想点710(例えばX)及び推定カメラ位置706を式(2)中へ入れることにより判断され得る。見掛け仮想点708、及び実際カメラ位置712において捕捉されたカメラ画像からの2次元点(例えば
【数39】
)は、実際カメラ位置(例えばactual_pose)を判断するために式(3)中へ入れられ得る。
【0063】
B.次のシーンを投影すること
視覚的オドメトリを介し判断された実際カメラ位置は次の期間における次のシーンの推定位置を識別するために使用され得る。意図された視点として推定位置を有するシーンが生成され得、そしてこのシーンは次の期間にパネルアレイへ投影され得る。
【0064】
図8は、少なくとも1つの実施形態による実際カメラ位置から将来カメラ位置を予測する方法800を示す。将来カメラ姿勢の予測は登録誤差を低減するために最適化され得る。登録誤差は予測画像内の画素と実画像内の画素との差であり得る。予測関数のパラメータは、例えば収束判断基準が満たされるまで(1つの画素の誤差内になるまでなど)、又は画素の差が画素の閾値数より小さければ、トレーニングサンプルを使用することにより最適化され得る、又は現在セッション中にさらに更新され得る。画素の閾値数は表示面と物理的カメラとの距離に依存し得る。画素の閾値数は、物理的カメラと表示面との距離が増加すると増加し得る。いくつかの実装形態では、画素の差が閾値を越えればアラームがトリガされ得る。アラームは再同期などの較正工程を引き起こし得る。
【0065】
予測関数の生成物は、2進数としてコンピュータシステムにより格納される浮動小数点数であり得る。2進数は、無限に可能な浮動小数点整数が存在し得るが所与数のビットで格納され得る固定量の2進数が存在し得るので、浮動小数点数の近似であり得る。例えば、1/3の値は2進数で精確に格納され得ない。浮動小数点数を2進数として精確に格納され得ない場合、浮動小数点数は2進法近似へ丸められ得る。浮動小数点数と2進法近似との差は丸め誤差である。いくつかの実装形態では、登録誤差の大きさが丸め誤差の大きさより小さければ、誤差はアラームをトリガしない又は再同期などの較正工程を引き起こさない。
【0066】
ブロック810では、仮想点X及び推定カメラ位置rendered_poseは第1の期間の表示パネル面上の見掛け仮想点
【数40】
を計算するために使用される。見掛け仮想点
【数41】
は、仮想点X及び推定カメラ位置rendered_poseを式(2)へ入力することにより計算され得る。いくつかの実施形態では、第1の期間と第2の期間との間の時間の長さは物理的カメラのその後のフレーム間の時間の長さであり得る。
【0067】
ブロック820では、見掛け仮想点
【数42】
及び特徴点
【数43】
が第1の期間中の実際カメラ位置actual_poseを計算するために使用される。実際カメラ位置actual_poseは仮想点
【数44】
及び特徴点
【数45】
を使用することにより章III.Bにおいて開示される方法により判断され得る。
【0068】
ブロック830において、いくつかの実装形態では一組の対応仮想点及び特徴点は上記章III.B.2において説明される方法を介し確立され得る。次に、特徴追跡器は対応組の仮想点X及び特徴点
【数46】
を維持し得る。特徴追跡器はブロック820において説明されるように実際カメラ位置を判断するのを助けるために使用され得る。特徴追跡器は画像特徴追跡器(例えばオプティカルフロー)への2次元画像であり得る。特徴追跡器は時間の経過と共に2次元/3次元対応関係を維持し得る。この対応関係は初期組の対応関係として特徴追跡器へ提供され得る。特徴追跡器は、2次元/3次元対応関係が物体検出アルゴリズム(例えばスケール不変特徴変換(SIFT))により検出されると2次元/3次元対応関係を格納し得る。
【0069】
いくつかの実装形態では、特徴追跡器データは、シーンが描画されそして表示面へ送信された後であるが撮影が発生する前に発生し得る初期設定手順により取得され得る。初期化プロセスは、バーチャルシーンがパネルアレイ上に表示されている間にバーチャル製作スタジオ内の位置poseのいくつか又はすべてを循環するロボットアーム上に取り付けられるカメラを含む可能性がある。物理的カメラにより捕捉された特徴点
【数47】
の対応場所は、カメラが特徴点
【数48】
を既に取得しそし初期設定中に物理的カメラの位置を計算したので知られるだろう。初期化後、物理的カメラの場所は特徴追跡器内に維持される表内の特徴点
【数49】
を見つけ出すことにより取得され得る。
【0070】
いくつかの実装形態では、実際カメラ姿勢は観察画像をカメラ姿勢へ直接マッピングすることにより学習され得る。これは、カメラをロボットアームへ取り付けることによりそしてディスプレイ上の可能な位置及びコンテンツのいくつか又はすべてを循環することにより達成され得る。ロボットアーム上に取り付けられたカメラの位置は精確に知られているので、深層ニューラルネットワークなどのリグレッサ(regressor)が捕捉画像とカメラ姿勢との直接マッピングを学習し得る。
【0071】
ブロック840では、実際カメラ位置は次の描画時刻に将来カメラ位置を予測するために使用される。将来カメラ位置は、バーチャル製作カメラ又は外部センサにより提供されるセンサデータを使用することにより予測され得る。例えば、カメラが既知速度により直線で進んでいれば、将来カメラ位置は実際位置と描写時刻間の差とから計算され得る。いくつかの実装形態では、位置の高次偏差がセンサデータから次の期間にカメラ位置を予測するために使用され得る。
【0072】
ブロック850において、いくつかの実装形態ではブロック840において将来カメラ位置を予測することはカメラ姿勢の履歴に基づき予測することを含み得る。位置を予測することは、カメラ姿勢の履歴に基づき得、機械学習モデルにより達成され得、そして章V.C.において以下にさらに詳細に論述される。
【0073】
V.位置を予測すること
カメラの実際位置ではなくむしろ予測位置に基づきシーンを描画することはカメラ運動により引き起こされる登録誤差を低減し得る。シーンを描画することは瞬間的ではなく、従ってカメラが移動している場合、カメラの現在位置に基づき描画されたシーンはシーンがパネルアレイへ送信される時までに時代遅れになる。物理的カメラの位置を予測するための様々な技術が、物理的カメラの運動により引き起こされた登録誤差を低減するために使用され得る。
【0074】
A.運動データにより位置を予測すること
次の期間中の物理的カメラの推定位置は、前の期間中の物理的カメラの位置ではなくむしろ物理的カメラの運動から予測され得る。いくつかの実装形態では、物理的カメラの運動は加速度計などのセンサにより判断され得、カメラの運動はまた、外部追跡システム(例えばOptitrack)により、又は本明細書において説明される視覚的オドメトリ技術を介し、判断され得る。センサデータは、物理的カメラの場所を予測するために物理的カメラの運動及び視覚的オドメトリの履歴と組み合わされ得る。次の期間中の物理的カメラの将来位置は、物理的カメラの現在位置、速度及び加速から推定することにより判断され得る。位置は次の式により計算され得る:
【数50】
【0075】
【数51】
が最終位置ベクトルである場合、
【数52】
は初期位置ベクトルであり、そしてtは初期位置と最終位置との期間である。初速
【数53】
を表すベクトル及び加速
【数54】
のベクトルも含まれる。これらのベクトルは2次元ベクトル又は3次元ベクトルであり得る。
【0076】
加えて、ジャーク(3次微分)、スナップ(4次微分)、クラックル(5次微分)、及びポップ(6次微分)などの位置の他の高次微分もまた、物理的カメラの将来の場所に関する精密な予測を行うために使用され得る。位置の第1次微分~第6次微分から位置を判断するための式が次のように示される:
【数55】
【0077】
上に論述された初期位置、最終位置、初速及び初期加速度に加えて、上記式は運動の高次微分のベクトルを含む。初期ジャークが
【数56】
として示される一方で初期スナップは
【数57】
として示される。初期クラックはベクトル
【数58】
として示され、そして6次微分(ポップ)は定数
【数59】
として示される。任意の実用的数の微分が使用され得る。
【0078】
上に論述されたような運動の式は通常、3次元空間に関して6つの自由度を仮定する。空中に浮かぶカメラは初期出発点から多くの方向に移動し得る。しかし、カメラはリグへ取り付けられる可能性があり、そして物理的カメラの運動の予測はどのようにカメラリグが物理的カメラ運動を制限するかを考慮し得る。カメラの可能な動作を制限することにより、カメラの位置に関する予測は、可能性のある動作だけが位置を推定する際に考慮されるのでより迅速且つより精確に行われ得る。例えば、カメラの可能な位置は、カメラが到達するのが困難になる場所にカメラはない可能性があるのでカメラリグの最大高さにより制限され得る。
【0079】
いくつかの実装形態では、カメラリグは、カメラの運動を予測するのがより容易になるようにリグの動作を標準化することにより予測の精度を改善するのを助けるために自由度を制限するように設計され得る。カメラリグはまた、登録誤差を引き起こす運動パターンを無くすためにカメラの運動を制約し得る。例えば、カメラリグは方向の突然の変化を制約し得る。
【0080】
振り付けにより位置を予測すること
物理的カメラの位置はまた、演出振り付けを使用することにより判断され得る。台本に基づく撮影では、バーチャル製作スタジオ内の物理的カメラの位置が、撮影することに先立って知られ得る。振り付けは、カメラの動作をロボットリグを介し制御するためにそして運動予測を通知するために使用されるゲームエンジンにより恐らく生成された振り付けファイルとして格納され得る。いくつかの実装形態では、シーンは待ち時間を最小限にするために撮影に先立って予め描画され得、予め描画されたシーンは、撮影中にバーチャルシーンを描画する必要性無しに振り付けにより時に決められるパネルアレイへ送信される。
【0081】
いくつかの実装形態では、振り付けファイルは開始点、終了点及び従うべき所望経路を含む可能性がある。経路は所望経路に沿った1つ又は複数の位置を含み得る。いくつかの実装形態では、開始点、終了点、及び所望経路に沿った位置のタイムスタンプが存在し得る。これらの位置は、曲線(例えば時間微分)により、又は座標系(例えばx,y,zデカルト座標)内の位置により規定され得る。いくつかの実装形態では、所望経路は、経路に沿った所望カメラ方位(例えば回転)のための指令を含み得る。いくつかの実装形態では、振り付けファイルは拡張可能マークアップ言語(XML:extensible markup language)ファイルとして又はJavaScript Object Notation(JSON)ファイルとして2進で格納され得る。
【0082】
いくつかの実装形態では、予測カメラ位置は振り付けファイル内で決められた位置と比較され得る。予測カメラ位置と振り付けファイルにより指示された位置との差がカメラ操作者へ伝えられ得る。予測位置と振り付けファイル内で指示された位置との差は、カメラ操作者のメトリックを生成するために使用され得る。例えば、カメラ操作者のスコアは、予測位置と振り付けファイル内で決められた位置との間の距離が閾値を越える回数を指示し得る。
【0083】
物理的カメラは、ロボットアーム上に取り付けられ得、そして人間操作者により制御されるのではなくむしろカメラ制御システムにより制御され得る。振り付けファイルは人間カメラ操作者を使用することにより生成される可能性がある。人間操作者は、外部追跡システムにより又は視覚的オドメトリを介し追跡される物理的カメラを制御する可能性がある。人間操作者がカメラを移動すると、それらの位置が記録されそして振り付けファイルへ追加され得る。振り付けファイルが用意されると、振り付けファイルはコンピュータ制御リグへ提供され得、そしてカメラの経路がカメラ制御システムにより複製され得る。
【0084】
ロボット的に制御される動作は精確に繰り返され得るので、ロボット的に制御される物理的カメラは登録誤差を最小限にするために撮影に先立って最適化され得る。較正シーケンスが、振り付けファイルにより制御された物理的カメラ運動により撮影され得る。較正シーケンス中に撮影された映画フィルムは、いかなる登録誤差も判断するために、描画された画像と比較され得る。いくつかの状況では、シーンは較正シーケンス中に観測されたいかなる登録誤差も最小限にするために再描画され得る。
【0085】
描画システム及びカメラ制御システムはまた、登録誤差を最小限にするために通信し得る。較正シーケンス中に描画システムが、登録誤差はシーンを再描画することにより低減され得ないということを判断すれば、描画システムは、所定振り付けファイルが登録誤差を引き起こしているということをカメラ制御システムに通知し得る。描画システムはまた、登録誤差が発生している所定振り付けファイル内の期間を指示し得る。それに応答して、カメラ制御システムは、映画製作者が是正処置を取り得るように「指示された期間において所定振り付けファイルが登録誤差を引き起こしている」ということを映画製作者に通知し得る。いくつかの実装形態では、カメラ制御システムは登録誤差を低減するために是正処置を取り得る(例えば、カメラ制御システムは方向の突然の変化を滑らかな旋回に転換し得る)。
【0086】
B.機械学習モデルにより位置を予測すること
機械学習モデルは、カメラの現在状態情報に基づき次の期間にカメラの位置を判断するようにトレーニングされ得る。機械学習モデルをトレーニングすることは入力データ(例えば状態情報)を分類するようにアルゴリズムをトレーニングすることを含み得る。この場合、入力データを分類することは、起点がカメラの初期場所である2次元又は3次元座標系内のカメラの最終位置を提供することを意味し得る。トレーニング中、トレーニングデータ(例えば知られた分類を有するデータなど)がアルゴリズムへ入力され得る。アルゴリズムからの出力は監視され得、そしてデータが適切に分類されなければ、アルゴリズムの重み付けは出力の分類がトレーニングデータのラベルに整合するまで変えられ得る。アルゴリズムがトレーニングされると、未知の分類を有するデータを分類するためにモデルが使用され得る。
【0087】
一実装形態では、モデルは、開始位置、開始速度及び開始加速などの現在状態情報を含むトレーニングデータに関しトレーニングされ得る。トレーニングデータは特徴ベクトルと呼ばれるn次元ベクトル(入力データを記述する)として表わされ得る。モデルへの入力はまた、初期状態と最終状態との間の期間を入力として含み得、そしてトレーニングデータは開始位置に対する最終位置によりラベル付けされ得る。トレーニング後、モデルは入力として状態情報を受信することができるべきであり、そしてモデルは出力として開始位置に対する最終位置を提供するべきである。
【0088】
いくつかの実装形態では、入力データはまた、バーチャル製作カメラを制御するカメラ操作者のラベルを含む可能性がある。モデルは、カメラ操作者の特異性に基づき個々のカメラ操作者の予測推定位置を提供するようにトレーニングされる可能性がある。加えて、カメラ操作者のパフォーマンスが撮影中に評価され得る。例えば、カメラ操作者は、カメラを制御している間にどれだけ多くの登録誤差が発生したかのスコアを与られ得る。
【0089】
いくつかの実装形態では、所定振り付けファイルは、上述の技術に従って機械学習モデルを生成するためにアルゴリズムをトレーニングするための入力として使用され得る。トレーニング済みモデルは、登録誤差を生成する可能性がある所定振り付けファイル内の動作を識別するために使用される可能性がある。アルゴリズムをトレーニングするために使用されるトレーニングデータは、いくつかの推定位置に分割された振り付けを有する過去の所定振り付けファイルを含み得る。トレーニングデータはまた、登録誤差が観測されたかどうかを指示する推定位置のラベルを含み得る。ラベル無し振り付けファイルは、登録誤差を生じる可能性がある振り付けされた動きを識別するためにトレーニング済みモデルへ入力される。撮影することに先立って振り付けが調節され得るようにフラグが推定位置上に揚げられ得る。
【0090】
VI.シミュレーションをトレーニングするための視覚的オドメトリ
本明細書において説明される技術は映画製作アプリケーションに限定されない。視覚的オドメトリカメラ追跡技術は没入型トレーニングシミュレーションを含む様々なアプリケーションにおいて使用され得る。
【0091】
いくつかの実装形態では、本開示内の技術はシミュレーションをトレーニングするために使用され得る。例えば、飛行機フライトシミュレータでは、表示面は、飛行機の窓を模擬する表示パネルを含み得る。ヘルメット又は眼鏡上に取り付けられたカメラが、視覚的オドメトリを介し描画姿勢(被訓練者の視点)を判断するために使用され得る。表示パネル上に示されるバーチャルシーンは被訓練者の位置と共に変化するので、トレーニングは、静的スクリーンでは困難な没入型動作(例えば、車両内の盲点をチェックするために身を乗り出すこと)を可能にする。
【0092】
2人以上の被訓練者は、視覚的オドメトリのために使用される物理的カメラが偏極眼鏡(様々な偏極を有する個々の被訓練者の眼鏡)内に取り付けられれば対処される可能性がある。被訓練者が被訓練者の視点に基づき描画されたバーチャルシーンを偏極眼鏡を介し見得るように様々な極性を有するいくつかのバーチャルシーンが表示面上に同時に示される可能性がある。
【0093】
VII.フローチャート
図9は少なくとも1つの実施形態によるカメラ追跡をバーチャル製作環境内に実装するための例示的プロセス900のフローチャートである。本方法は、可動である物理的カメラと通信可能に結合されたコンピュータシステムにより行われ得る。
【0094】
ブロック910では、第1の期間に対応する物理的カメラの第1の位置が識別される。物理的カメラの第1の位置は、表示画面の物理的カメラからの初期画像を使用することにより識別され得る。いくつかの実装形態では、第1の位置は外部追跡システムを使用することにより判断され得る。他の実装形態では、物理的カメラの第1の位置は所定振り付けファイルから識別され得る。いくつかの実装形態では、表示画面は、第1の位置を判断するのを支援するために第1の期間に先立って一組の基準を提示し得る。この期間は物理的カメラにより撮影されるその後のフレーム間の長さであり得る。
【0095】
いくつかの実施形態では、第1の位置は、追跡システムによる又は視覚的オドメトリを介した特殊測定を介し識別される可能性がある。他の例では、第1の位置は(例えば機械学習モデルを使用することにより)予測することにより識別される可能性がある、又は第1の位置は第1の位置の場所が規定されるので識別される可能性がある。例えば、第1の位置は所定振り付けファイル内に規定される可能性がある。
【0096】
ブロック920では、第1の期間のバーチャルシーンがアニメーションエンジンを使用することにより描画される。バーチャルシーンは空っぽのシーンなどの静止画像又は歩行者により混み合った交差点などの動画像であり得る。第1の期間はカメラのフレーム率に関係し得、そして、いくつかの状況では、カメラのフレーム率は撮影中に捕捉されたアーチファクトを補正するために増減され得る。アニメーションエンジンはビデオゲームの開発のための設計されたゲームエンジン(Unreal Engine、Unity又は他のゲームエンジンなど)であり得る。
【0097】
ブロック930では、バーチャルシーンは、第1の期間の第1の描画された画像を判断するために表示面上へ投影される。投影されたバーチャルシーンは物理的カメラの第1の位置に一致し得る。表示面は、発光ダイオード(LED)パネル、有機発光ダイオード(OLED)パネル、液晶ディスプレイ(LCD)パネルなどを含む表示パネルのアレイであり得る。
【0098】
ブロック940では、第1の描画された画像は表示面上に表示するためにフレームバッファ内に格納される。フレームバッファは、物理的ストレージ媒体内の固定記憶場所又はソフトウェアで実装された仮想データバッファであり得る。描画された画像はバーチャル製作スタジオ内の表示面上に表示され得、そしていくつかの実装形態では、描画された画像は表示面の一部又は全体上に表示され得る。
【0099】
ブロック950では、表示面の第1のカメラ画像が受信される。第1のカメラ画像は第1の期間中に物理的カメラを使用することにより取得された。いくつかの実装形態では、物理的カメラは1つ又は複数のカメラを含み得る。例えば、物理的カメラはシーンを記録するためのフィルムカメラ及び第1のカメラ画像を捕捉するための位置カメラを含み得る。いくつかの実装形態では、位置カメラは360度カメラ又はカメラのアレイであり得る。物理的カメラが複数のカメラを含む実装形態では、描画されたシーンは、フィルムカメラの視野の外側で描画された基準及び位置カメラの視野内で描画された基準を含み得る。例えば、バーチャルシーンはフィルムカメラの意図した視野と境界を接する表示面の半分上に描画される可能性がある一方で基準は表示面の他の半分上に描画される可能性がある。
【0100】
ブロック960では、物理的カメラの第1の補正位置が、第1の描画された画像と第1のカメラ画像とを比較することにより判断される。第1の描画された画像及び第1のカメラ画像は、両画像内の特徴を識別することによりそして2つの画像が共通に有する任意の特徴を判断することにより比較され得る。特徴の相対運動は、どのようにカメラの方位及び位置が表示面に対して変化したかを判断するために使用され得る。
【0101】
ブロック970では、第2の期間に対応する物理的カメラの第2の位置は第1の補正位置を使用することにより予測される。第2の期間中、第2の描画された画像が表示面上に表示されることになる。様々な実施形態では、所定振り付けファイルは第2の位置を予測するために使用され得る。いくつかの実装形態では、第2の位置はトレーニングされた機械学習モデルを使用することにより予測され得、ここで、カメラ操作者、振り付け、カメラ位置の履歴及びセンサデータは機械学習モデルへの入力であり得る。
【0102】
ブロック980では、第2の期間の第2のバーチャルシーンが描画される。第2のバーチャルシーンはアニメーションエンジンを使用することにより描画され得る。第2の描画されたシーンの意図された視点が物理的カメラの第2の位置である第2のバーチャルシーンが描画され得る。いくつかの実装形態では、2つ以上の別個の物理的カメラが同じシーンを撮影するために使用され得る。例えば、カメラは、互いに直交する2台のカメラの見通線を有するシーンを撮影するために配置され得る。振り付けファイルは、2つ以上の物理的カメラのうちのどの物理的カメラが所定期間のために使用されるかを決定し得る。物理的カメラの場所は、カメラが使用されていない場合ですら追跡され得、そしてシーンは必要に応じ様々なカメラのために描画され得る。
【0103】
ブロック990では、第2のバーチャルシーンは、第2の期間の第2の描画された画像を判断するために表示面上へ投影される。第2のバーチャルシーンの投影は仮想カメラの第2の位置に一致する。
【0104】
プロセス900は、以下に説明される実装形態及び/又は本明細書のどこかで説明された1つ又は複数の他のプロセスに関連して説明された実装形態の任意の単一実装形態又は任意の組み合わせなどの追加実装形態を含み得る。
【0105】
いくつかの実装形態では、プロセス900は画像を物理的位置へマッピングするモデルを格納することによりそして初期画像をこのモデルへ入力することにより物理的カメラの第1の位置を識別することを含む。
【0106】
図9はプロセス900の例示的ブロックを示すが、いくつかの実装形態では、プロセス900は、図9に描写されたものの追化ブロック、それより少ないブロック、それとは異なるブロック、又はそれとは異なるやり方で配置されたブロックを含み得る。追加的に又は代替的に、プロセス900のブロックのうちの2つ以上は並列で行われ得る。
【0107】
VIII.コンピュータシステム
本明細書において述べられたコンピュータシステムのうちの任意のものは任意の好適な数のサブシステムを利用し得る。このようなサブシステムの例が図10のコンピュータシステム1010に示される。いくつかの実施形態では、コンピュータシステムは単一コンピュータ装置を含み、ここではサブシステムはコンピュータ装置の部品であり得る。他の実施形態では、コンピュータシステムは内部部品を有する複数のコンピュータ装置(各々はサブシステムである)を含み得る。コンピュータシステムはデスクトップコンピュータ及びラップトップコンピュータ、タブレット、携帯電話並びに他のモバイルデバイスを含み得る。
【0108】
図10に示すサブシステムはシステムバス1075を介し相互接続される。ディスプレイアダプタ1082へ結合されるプリンタ1074、キーボード1078、ストレージデバイス1079、モニタ1076(例えばLEDなどの表示画面)、及び他のデバイスなどの追加サブシステムが示される。周辺装置及び入出力(I/O)デバイス(I/Oコントローラ1071へ結合する)は、入出力(I/O)ポート1077など当該技術領域において知られている任意数の手段(例えばUSB、FireWire(登録商標))によりコンピュータシステムへ接続され得る。例えば、I/Oポート1077又は外部インターフェース1081(例えばEthernet、Wi-Fiなど)は、コンピュータシステム1010をインターネットなどの広域ネットワーク、マウス入力デバイス、又はスキャナへ接続するために使用され得る。システムバス1075を介する相互接続は、中央処理装置1073が、各サブシステムと通信することと、システムメモリ1072又はストレージデバイス1079(例えばハードドライブなどの固定ディスク又は光ディスク)からの複数の指令の実行だけでなくサブシステム間の情報の交換も制御することとを可能にする。システムメモリ1072及び/又はストレージデバイス1079はコンピュータ可読媒体を具現化し得る。別のサブシステムは、カメラ、マイクロホン、加速度計等々のデータ収集デバイス1085である。本明細書において述べられたデータの任意のものは1つの部品から別の部品へ出力され得、そしてユーザへ出力され得る。
【0109】
コンピュータシステムは、例えば外部インターフェース1081により、内部インターフェースにより、又は1つの部品から別の部品へ接続されそして除去され得るリムーバブルストレージデバイスを介し一緒に接続された複数の同じ部品又はサブシステムを含み得る。いくつかの実施形態では、コンピュータシステム、サブシステム又は装置はネットワーク上で通信し得る。このような事例では、1つのコンピュータはクライアントと見做され得、そして別のコンピュータはサーバと見做され得、各々は同じコンピュータシステムの一部であり得る。クライアント及びサーバは各々複数のシステム、サブシステム又は部品を含み得る。
【0110】
いくつか実施形態のいくつかの態様は、ハードウェア回路(例えば特定用途向集積回路又はフィールドプログラマブルゲートアレイ)を使用することにより及び/又はモジュラ的やり方又は一体化されたやり方で一般的プログラム可能プロセッサによりメモリ内に格納されたコンピュータソフトウェアを使用することにより制御論理の形式で実装され得、従って、プロセッサはソフトウェア指令を格納するメモリ(ハードウェア回路を構成するだけでなく構成指令を有するFPGA又はASICも構成する)を含み得る。本明細書で使用されるように、プロセッサは、シングルコアプロセッサ、同一集積化チップ上のマルチコアプロセッサ、又は単一回路基板上の又はネットワーク化されるだけでなく専用化されたハードウェア上の複数の処理ユニットを含み得る。本明細書において提供される開示及び教示に基づき、当業者は、ハードウェア及びハードウェアとソフトウェアとの組み合わせを使用することにより本開示のいくつかの実施形態を実装するために他のやり方及び/又は方法を知りそして認識することになる。
【0111】
本出願において述べられたソフトウェア部品又は機能の任意のものは、例えば従来技術又はオブジェクト指向技術を使用することにより、例えばJava、C、C++、C#、Objective-C、Swiftなどの任意の好適なコンピュータ言語、又はPerl又はPythonなどのスクリプト言語を使用することによりプロセッサにより実行されるソフトウェアコードとして実装され得る。ソフトウェアコードは、格納及び/又は送信のためにコンピュータ可読媒体上に一連の指令又は命令として格納され得る。好適な非一時的コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードドライブ若しくはフロッピーディスクなどの磁気媒体、又はコンパクトディスク(CD)若しくはDVD(ディジタルバーサタイルディスク)若しくはブルーレイディスクなどの光媒体、フラッシュメモリ等々を含み得る。コンピュータ可読媒体はこのようなデバイスの任意の組み合わせであり得る。加えて、操作の順番は再配置され得る。プロセスは、その動作が完了されると終了され得るが、図に含まれない追加工程を有する可能性がある。プロセスは方法、機能、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが機能に対応する場合、その終端は、呼出機能又はmain関数への機能の戻りに対応し得る。
【0112】
このようなプログラムはまた、インターネットを含む多種多様なプロトコルに準拠する有線、光、及び/又は無線ネットワークを介し送信に適合された搬送波信号を使用することにより符号化され送信され得る。従って、コンピュータ可読媒体はこのようなプログラムにより符号化されたデータ信号を使用することにより生成され得る。プログラムコードにより符号化されたコンピュータ可読媒体は互換デバイスと共にパッケージ化されてもよいし他のデバイスとは別個に提供されてもよい(例えばインターネットダウンロードを介し)。任意のこのようなコンピュータ可読媒体は、単一コンピュータ製品(例えばハードドライブ、CD又は全コンピュータシステム)上に又はその中に常在し得、そして、システム又はネットワーク内の様々なコンピュータ製品上に又はその中に存在し得る。コンピュータシステムは、本明細書において述べられた結果のうちの任意のものをユーザへ提供するためのモニタ、プリンタ又は他の好適なディスプレイを含み得る。
【0113】
本明細書において説明された方法のうちの任意のものは、いくつかの工程を行うように構成され得る1つ又は複数のプロセッサを含むコンピュータシステムと共に全面的に又は部分的に行われ得る。従って、いくつかの実施形態は、本明細書において説明される方法のうちの任意の方法の工程を(恐らくそれぞれの工程又はそれぞれの工程のグループを行う様々な部品により)行うように構成されたコンピュータシステムに向けられ得る。番号付けられた工程として提示されたが、本明細書における方法の工程は、同時に、又は様々な時に、又は異なる順序で行われ得る。加えて、これらの工程の一部は他の方法からの他の工程の一部と共に使用され得る。また、1工程のすべての部分又は一部分は任意選択的であり得る。加えて、本方法の任意の方法の工程の任意の工程はこれらの工程を行うためのシステムのモジュール、ユニット、回路又は他の手段により行われ得る。
【0114】
特定実施形態の特定詳細は、本開示の実施形態の精神及び範囲から逸脱すること無く任意の好適なやり方で組み合わせられ得る。しかし、本開示の他の実施形態は、各個々の態様に関係する特定実施形態に、又はこれらの個々の態様の特定組み合わせに向けられ得る。
【0115】
本開示のいくつかの例示的実施形態の上記説明は図解と説明のために提示された。本開示のいくつかの例示的実施形態の上記説明は網羅的であるように又は本開示を上述の精確な形式に制限するように意図されていなく、従って多くの修正形態及び変形形態が上記教示に照らして可能である。
【0116】
冠詞又は不定冠詞(a、an、又はthe)の列挙は別途特に指示されない限り「1つ又は複数」を意味するように意図されている。「又は(or)」、「若しくは(or)」の使用は別途指示されない限り「排他的論理和」ではなく「包括的論理和」を意味するように意図されている。「第1の」部品への参照は、第2の部品が提供されるということを必ずしも必要としない。さらに、「第1の」部品又は「第2の」部品への参照は、別途述べない限り、参照された部品を特定場所に制限しない。用語「に基づく」は「に少なくとも部分的に基づく」を意味するように意図されている。
【0117】
本明細書において述べられたすべての特許、特許出願、出版物及び説明はすべての目的のためにその全体を参照により援用される。いずれも従来技術であると認められない。本明細書において提供されるインスタントアプリケーションと参照アプリケーションとの間に競合が存在する場合、インスタントアプリケーションが優位であるべきである。
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
図9
図10
【国際調査報告】