(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-25
(45)【発行日】2024-01-09
(54)【発明の名称】任意ビューの生成
(51)【国際特許分類】
G06T 5/00 20240101AFI20231226BHJP
G06T 15/20 20110101ALI20231226BHJP
【FI】
G06T5/00 700
G06T15/20 500
(21)【出願番号】P 2022525978
(86)(22)【出願日】2020-11-06
(86)【国際出願番号】 US2020059500
(87)【国際公開番号】W WO2021092454
(87)【国際公開日】2021-05-14
【審査請求日】2022-06-29
(32)【優先日】2019-11-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-11-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518338080
【氏名又は名称】アウトワード・インコーポレーテッド
【氏名又は名称原語表記】OUTWARD INCORPORATED
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】チュイ・クラレンス
(72)【発明者】
【氏名】パーマー・マヌ
(72)【発明者】
【氏名】アディシシャ・アモー・スバクリシュナ
(72)【発明者】
【氏名】グプタ・ハーシュル
(72)【発明者】
【氏名】ウプルリ・アヴィナッシュ・ヴェンカタ
【審査官】岡本 俊威
(56)【参考文献】
【文献】国際公開第2018/197984(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/00
G06T 15/20
(57)【特許請求の範囲】
【請求項1】
方法であって、
ニューラルネットワークを用いて、1セットの画像に関連付けられている特徴空間を識別し、
前記ニューラルネットワークを用いて、入力画像の1または複数の特徴を検出し、
前記入力画像の前記検出された特徴の少なくとも一部を、前記識別された特徴空間内の対応する最も近い一致の特徴で置き換えることによって、出力画像を生成すること、
を備え、
前記ニューラルネットワークは、前記画像のセットおよび前記入力画像を含む規定の環境に制約された画像データセット上で少なくとも部分的にトレーニングされる、方法。
【請求項2】
請求項1に記載の方法であって、前記1セットの画像および前記入力画像は、特徴空間冗長性を共有する、方法。
【請求項3】
請求項1に記載の方法であって、前記特徴空間は、前記1セットの画像に関して制約され、明確に定義されている、方法。
【請求項4】
請求項1に記載の方法であって、前記特徴空間は、テクスチャにおける特徴を含む、方法。
【請求項5】
請求項1に記載の方法であって、前記1セットの画像は、前記ニューラルネットワークのための事前分布を含む、方法。
【請求項6】
請求項1に記載の方法であって、前記1セットの画像および前記出力画像は、画像またはフレームのシーケンスを含む、方法。
【請求項7】
請求項1に記載の方法であって、前記1セットの画像は、所定のテクスチャのパッチを含む、方法。
【請求項8】
請求項1に記載の方法であって、前記入力画像は、物理環境内でキャプチャされた写真を含み、前記1セットの画像は、前記物理環境のシミュレートまたはモデル化されたバージョンに制約されたトレーニングデータセットを含む、方法。
【請求項9】
請求項1に記載の方法であって、前記1セットの画像は、以前にレンダリングまたは生成された既存の画像を含む、方法。
【請求項10】
請求項1に記載の方法であって、前記1セットの画像は、前記入力画像に比べて高い品質の画像を含む、方法。
【請求項11】
請求項10に記載の方法であって、前記出力画像の品質が、前記1セットの画像の品質と一致する、方法。
【請求項12】
請求項10に記載の方法であって、品質は、解像度、サイズ、および、ビット深度、の内の1または複数を含む、方法。
【請求項13】
請求項1に記載の方法であって、前記入力画像の前記検出された特徴の少なくとも一部を、前記識別された特徴空間内の対応する最も近い一致の特徴で置き換えることは、最近傍探索を実行することを含む、方法。
【請求項14】
請求項1に記載の方法であって、前記出力画像は、前記入力画像の復元されたバージョンを含む、方法。
【請求項15】
請求項1に記載の方法であって、前記出力画像は、前記入力画像のアップスケールされたバージョンを含む、方法。
【請求項16】
請求項1に記載の方法であって、前記出力画像は、前記入力画像のクリーニングされたバージョンを含む、方法。
【請求項17】
請求項1に記載の方法であって、前記出力画像は、前記入力画像のノイズ除去されたバージョンを含む、方法。
【請求項18】
請求項1に記載の方法であって、さらに、背景を除去すること、深度推定値を予測すること、深度推定値を微調整すること、パースペクティブ変換推定値を予測すること、および、パースペクティブ変換推定値を微調整すること、の内の1または複数のために
、ニューラルネットワークを利用することを備える、方法。
【請求項19】
システムであって、
プロセッサであって、
ニューラルネットワークを用いて、1セットの画像に関連付けられている特徴空間を識別し、
前記ニューラルネットワークを用いて、入力画像の1または複数の特徴を検出し、
前記入力画像の前記検出された特徴の少なくとも一部を、前記識別された特徴空間内の対応する最も近い一致の特徴で置き換えることによって、出力画像を生成するよう構成されている、プロセッサと、
前記ニューラルネットワークは、前記画像のセットおよび前記入力画像を含む規定の環境に制約された画像データセット上で少なくとも部分的にトレーニングされ、
前記プロセッサに接続され、前記プロセッサに命令を提供するよう構成されているメモリと、
を備える、システム。
【請求項20】
コンピュータプログラム製品であって、持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
ニューラルネットワークを用いて、1セットの画像に関連付けられている特徴空間を識別するためのコンピュータ命令と、
前記ニューラルネットワークを用いて、入力画像の1または複数の特徴を検出するためのコンピュータ命令と、
前記入力画像の前記検出された特徴の少なくとも一部を、前記識別された特徴空間内の対応する最も近い一致の特徴で置き換えることによって、出力画像を生成するためのコンピュータ命令と、を備え、
前記ニューラルネットワークは、前記画像のセットおよび前記入力画像を含む規定の環境に制約された画像データセット上で少なくとも部分的にトレーニングされる、コンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
他の出願への相互参照
本願は、「ARBITRARY VIEW GENERATION」と題する2019年7月26日出願の米国特許出願第16/523,888号の一部継続出願であり、当該一部継続出願は、「ARBITRARY VIEW GENERATION」と題する2018年11月6日出願の米国特許出願第16/181,607号の一部継続出願であり、当該一部継続出願は、「ARBITRARY VIEW GENERATION」と題する2017年9月29日出願の米国特許出願第15/721,426号(現在の米国特許第10,163,250号)の継続出願であり、当該継続出願は、「FAST RENDERING OF ASSEMBLED SCENES」と題する2017年8月4日出願の米国仮特許出願第62/541,607号に基づく優先権を主張し、「ARBITRARY VIEW GENERATION」と題する2016年3月25日出願の米国特許出願第15/081,553号(現在の米国特許第9,996,914号)の一部継続出願であり、これらはすべて、すべての目的のために参照によって本明細書に組み込まれる。
【0002】
本願は、「FAST RENDERING OF IMAGE SEQUENCES FOR PRODUCT VISUALIZATION」と題する2019年11月8日出願の米国仮特許出願第62/933,258号、および、「SYSTEM AND METHOD FOR ACQUIRING IMAGES FOR SPACE PLANNING APPLICATIONS」と題する2019年11月8日出願の米国仮特許出願第62/933,261号に基づく優先権を主張し、これら双方は、すべての目的のために参照によって本明細書に組み込まれる。
【0003】
既存のレンダリング技術は、品質および速度という相反する目標の間のトレードオフに直面している。高品質なレンダリングは、かなりの処理リソースおよび時間を必要とする。しかしながら、遅いレンダリング技術は、インタラクティブなリアルタイムアプリケーションなど、多くのアプリケーションで許容できない。一般的には、低品質だが高速なレンダリング技術が、かかるアプリケーションでは好まれる。例えば、比較的高速なレンダリングのために品質を犠牲にして、ラスタ化が、リアルタイムグラフィックスアプリケーションによって一般に利用される。したがって、品質も速度も大きく損なうことのない改良技術が求められている。
【図面の簡単な説明】
【0004】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【0005】
【
図1】シーンの任意ビューを生成するためのシステムの一実施形態を示すハイレベルブロック図。
【0006】
【0007】
【
図3】任意パースペクティブを生成するための処理の一実施形態を示すフローチャート。
【0008】
【
図4】アセットの任意ビューが生成されうる元となるアセットの参照画像またはビューを生成するための処理の一実施形態を示すフローチャート。
【0009】
【
図5】アセットの任意ビューが生成されうる元となるアセットの参照画像またはビューを生成するための処理の一実施形態を示すフローチャート。
【0010】
【
図6】シーンの要求されたビューを提供するための処理の一実施形態を示すフローチャート。
【0011】
【
図7】画像データセットに関連付けられている属性を学習するための機械学習ベース画像処理フレームワークの一実施形態を示すハイレベルブロック図。
【0012】
【
図8】アセットの他の任意ビューを生成するために利用できるアセットに関連付けられている画像をデータベースに入力するための処理の一実施形態を示すフローチャート。
【0013】
【
図9】画像またはフレームを生成するための処理の一実施形態を示すフローチャート。
【0014】
【
図10】オブジェクトまたはアセットの任意または新規のビューまたはパースペクティブを生成するための処理の一実施形態を示すハイレベルフローチャート。
【発明を実施するための形態】
【0015】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実装されうる。本明細書では、これらの実施例または本発明が取りうる任意の他の形態が、技術と呼ばれうる。一般に、開示されている処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、或る時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【0016】
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【0017】
シーンの任意ビューを生成するための技術が開示されている。本明細書に記載の実例は、非常に低い処理オーバヘッドまたは計算オーバヘッドを伴いつつ、高精細度出力も提供し、レンダリング速度と品質との間の困難なトレードオフを効果的に排除する。開示されている技術は、インタラクティブなリアルタイムグラフィックスアプリケーションに関して、高品質出力を非常に高速に生成するために特に有効である。かかるアプリケーションは、提示されたインタラクティブなビューまたはシーンのユーザ操作に応答してそれに従って、好ましい高品質出力を実質的に即時に提示することに依存する。
【0018】
図1は、シーンの任意ビューを生成するためのシステム100の一実施形態を示すハイレベルブロック図である。図に示すように、任意ビュー生成器102が、任意ビューの要求を入力104として受信し、既存のデータベースアセット106に基づいて、要求されたビューを生成し、入力された要求に応答して、生成されたビューを出力108として提供する。様々な実施形態において、任意ビュー生成器102は、中央処理装置(CPU)またはグラフィックス処置装置(GPU)などのプロセッサを備えてよい。
図1に示すシステム100の構成は、説明のために提示されている。一般に、システム100は、記載した機能を提供する任意の他の適切な数および/または構成の相互接続された構成要素を備えてもよい。例えば、別の実施形態において、任意ビュー生成器102は、異なる構成の内部構成要素110~116を備えてもよく、任意ビュー生成器102は、複数の並列物理および/または仮想プロセッサを備えてもよく、データベース106は、複数のネットワークデータベースまたはアセットのクラウドを備えてもよい、などである。
【0019】
任意ビュー要求104は、シーンの任意パースペクティブの要求を含む。いくつかの実施形態において、シーンの他のパースペクティブすなわち視点を含むシーンの要求パースペクティブは、アセットデータベース106内にまだ存在してはいない。様々な実施形態において、任意ビュー要求104は、プロセスまたはユーザから受信されてよい。例えば、入力104は、提示されたシーンまたはその一部のユーザ操作(提示されたシーンのカメラ視点のユーザ操作など)に応答して、ユーザインターフェスから受信されうる。別の例において、任意ビュー要求104は、シーンのフライスルーなど、仮想環境内での運動または移動の経路の指定に応答して受信されてもよい。いくつかの実施形態において、要求できるシーンの可能な任意ビューは、少なくとも部分的に制約されている。例えば、ユーザは、提示されたインタラクティブシーンのカメラ視点を任意のランダムな位置に操作することができない場合があり、シーンの特定の位置またはパースペクティブに制約される。
【0020】
データベース106は、格納された各アセットの複数のビューを格納している。所与の文脈において、アセットとは、仕様が複数のビューとしてデータベース106に格納されている個々のシーンのことである。様々な実施形態において、シーンは、単一のオブジェクト、複数のオブジェクト、または、リッチな仮想環境を含みうる。具体的には、データベース106は、各アセットの異なるパースペクティブすなわち視点に対応する複数の画像を格納する。データベース106に格納されている画像は、高品質の写真または写実的レンダリングを含む。データベース106に入力されるかかる高精細度すなわち高解像度の画像は、オフライン処理中にキャプチャまたはレンダリングされ、もしくは、外部ソースから取得されてよい。いくつかの実施形態において、対応するカメラ特性が、データベース106に格納された各画像と共に格納される。すなわち、相対的な位置または場所、向き、回転、奥行情報、焦点距離、絞り、ズームレベルなどのカメラ属性が、各画像と共に格納される。さらに、シャッター速度および露出などのカメラの光学情報が、データベース106に格納された各画像と共に格納されてもよい。
【0021】
様々な実施形態において、アセットの任意の数の異なるパースペクティブがデータベース106に格納されてよい。
図2は、データベースアセットの一例を示す。与えられた例では、椅子オブジェクトの周りの異なる角度に対応する73のビューがキャプチャまたはレンダリングされ、データベース106に格納される。ビューは、例えば、椅子の周りでカメラを回転させるかまたはカメラの前で椅子を回転させることによってキャプチャされてよい。相対的なオブジェクトおよびカメラの位置および向きの情報が、生成された各画像と共に格納される。
図2は、1つのオブジェクトを含むシーンのビューを具体的に示している。データベース106は、複数のオブジェクトまたはリッチな仮想環境を含むシーンの仕様も格納してよい。かかるケースにおいては、シーンまたは三次元空間の中の異なる位置または場所に対応する複数のビューがキャプチャまたはレンダリングされ、対応するカメラ情報と共にデータベース106に格納される。一般に、データベース106に格納された画像は、二次元または三次元を含んでよく、アニメーションまたはビデオシーケンスのスチールまたはフレームを含んでよい。
【0022】
データベース106にまだ存在しないシーンの任意ビューの要求104に応答して、任意ビュー生成器102は、データベース106に格納されたシーンの複数の他の既存ビューから、要求された任意ビューを生成する。
図1の構成例では、任意ビュー生成器102のアセット管理エンジン110が、データベース106を管理する。例えば、アセット管理エンジン110は、データベース106におけるデータの格納およびリトリーブを容易にしうる。シーン104の任意ビューの要求に応答して、アセット管理エンジン110は、データベース106からシーンの複数の他の既存ビューを特定して取得する。いくつかの実施形態において、アセット管理エンジン110は、データベース106からシーンのすべての既存ビューをリトリーブする。あるいは、アセット管理エンジン110は、既存ビューの一部(例えば、要求された任意ビューに最も近いビュー)を選択してリトリーブしてもよい。かかるケースにおいて、アセット管理エンジン110は、要求された任意ビューを生成するためのピクセルの収集元になりうる一部の既存ビューをインテリジェントに選択するよう構成される。様々な実施形態において、複数の既存ビューが、アセット管理エンジン110によって一緒にリトリーブされてもよいし、任意ビュー生成器102のその他の構成要素によって必要になり次第リトリーブされてもよい。
【0023】
アセット管理エンジン110によってリトリーブされた各既存ビューのパースペクティブは、任意ビュー生成器102のパースペクティブ変換エンジン112によって、要求された任意ビューのパースペクティブに変換される。上述のように、正確なカメラ情報が既知であり、データベース106に格納された各画像と共に格納されている。したがって、既存ビューから要求任意ビューへのパースペクティブ変更は、単純な幾何マッピングまたは幾何変換を含む。様々な実施形態において、パースペクティブ変換エンジン112は、既存ビューのパースペクティブを任意ビューのパースペクティブに変換するために、任意の1または複数の適切な数学的手法を用いてよい。要求されたビューがどの既存ビューとも同一ではない任意ビューを含む場合、任意ビューのパースペクティブへの既存ビューの変換は、少なくともいくつかのマッピングされていないピクセルまたは失われたピクセル、すなわち、既存ビューに存在しない任意ビューに導入された角度または位置にあるピクセルを含むことになる。
【0024】
単一のパースペクティブ変換された既存ビューからのピクセル情報では、別のビューのすべてのピクセルを埋めることができない。しかしながら、多くの場合、すべてではないが、要求された任意ビューのほとんどのピクセルが、複数のパースペクティブ変換された既存ビューから収集されうる。任意ビュー生成器102のマージエンジン114が、複数のパースペクティブ変換された既存ビューからのピクセルを組み合わせて、要求された任意ビューを生成する。理想的には、任意ビューを構成するすべてのピクセルが既存ビューから収集される。これは、例えば、考慮対象となるアセットについて十分に多様なセットの既存ビューまたはパースペクティブが利用可能である場合、および/または、要求されたパースペクティブが既存のパースペクティブとはそれほど異なっていない場合に、可能でありうる。
【0025】
複数のパースペクティブ変換された既存ビューからのピクセルを組み合わせまたはマージして、要求された任意ビューを生成するために、任意の適切な技術が用いられてよい。一実施形態において、要求された任意ビューに最も近い第1既存ビューが、データベース106から選択されてリトリーブされ、要求された任意ビューのパースペクティブに変換される。次いで、ピクセルが、このパースペクティブ変換された第1既存ビューから収集され、要求された任意ビュー内の対応するピクセルを埋めるために用いられる。第1既存ビューから取得できなかった要求任意ビューのピクセルを埋めるために、これらの残りのピクセルの少なくとも一部を含む第2既存ビューが、データベース106から選択されてリトリーブされ、要求任意ビューのパースペクティブへ変換される。次いで、第1既存ビューから取得できなかったピクセルは、このパースペクティブ変換された第2既存ビューから収集され、要求任意ビュー内の対応するピクセルを埋めるために用いられる。この処理は、要求任意ビューのすべてのピクセルが埋められるまで、および/または、すべての既存ビューが使い果たされるかまたは所定の閾値数の既存ビューが利用されるまで、任意の数のさらなる既存ビューについて繰り返されてよい。
【0026】
いくつかの実施形態において、要求任意ビューは、どの既存ビューからも取得できなかったいくつかのピクセルを含みうる。かかる場合、補間エンジン116が、要求任意ビューのすべての残りのピクセルを埋めるよう構成されている。様々な実施形態において、要求任意ビュー内のこれらの埋められていないピクセルを生成するために、任意の1または複数の適切な補間技術が補間エンジン116によって用いられてよい。利用可能な補間技術の例は、例えば、線形補間、最近隣補間などを含む。ピクセルの補間は、平均法または平滑化を導入する。全体の画像品質は、ある程度の補間によって大きい影響を受けることはないが、過剰な補間は、許容できない不鮮明さを導入しうる。したがって、補間は、控えめに用いることが望ましい場合がある。上述のように、要求任意ビューのすべてのピクセルを既存ビューから取得できる場合には、補間は完全に回避される。しかしながら、要求任意ビューが、どのビューからも取得できないいくつかのピクセルを含む場合には、補間が導入される。一般に、必要な補間の量は、利用可能な既存ビューの数、既存ビューのパースペクティブの多様性、および/または、任意ビューのパースペクティブが既存ビューのパースペクティブに関してどれだけ異なるか、に依存する。
【0027】
図2に示した例に関して、椅子オブジェクトの周りの73のビューが、椅子の既存ビューとして格納される。格納されたビューとのいずれとも異なるすなわち特有の椅子オブジェクトの周りの任意ビューが、もしあったとしても好ましくは最小限の補間で、複数のこれらの既存ビューを用いて生成されうる。しかしながら、既存ビューのかかる包括的なセットを生成して格納することが、効率的でなかったり望ましくなかったりする場合がある。いくつかの場合、その代わりに、十分に多様なセットのパースペクティブを網羅する大幅に少ない数の既存ビューが生成および格納されてもよい。例えば、椅子オブジェクトの73のビューが、椅子オブジェクトの周りの少数のビューの小さいセットに縮小されてもよい。
【0028】
上述のように、いくつかの実施形態において、要求できる可能な任意ビューが、少なくとも部分的に制約される場合がある。例えば、ユーザは、インタラクティブなシーンに関連付けられている仮想カメラを特定の位置に動かすことを制限されうる。
図2で与えられた例に関しては、要求できる可能な任意ビューは、椅子オブジェクトの周りの任意の位置に制限され、例えば、椅子オブジェクトの底部のために存在するピクセルデータが不十分であるので、椅子オブジェクトの下の任意の位置を含みえない。許容される任意ビューについてのかかる制約は、要求任意ビューを任意ビュー生成器102によって既存データから生成できることを保証する。
【0029】
任意ビュー生成器102は、入力された任意ビュー要求104に応答して、要求任意ビュー108を生成して出力する。生成された任意ビュー108の解像度または品質は、既存ビューからのピクセルが任意ビューを生成するために用いられているので、それを生成するために用いられた既存ビューの品質と同じであるかまたは同等である。したがって、ほとんどの場合に高精細度の既存ビューを用いると、高精細度の出力が得られる。いくつかの実施形態において、生成された任意ビュー108は、関連シーンの他の既存ビューと共にデータベース106に格納され、後に、任意ビューに対する将来の要求に応答して、そのシーンの他の任意ビューを生成するために用いられてよい。入力104がデータベース106内の既存ビューの要求を含む場合、要求ビューは、上述のように、他のビューから生成される必要がなく、その代わり、要求ビューは、簡単なデータベースルックアップを用いてリトリーブされ、出力108として直接提示される。
【0030】
任意ビュー生成器102は、さらに、記載した技術を用いて任意アンサンブルビューを生成するよう構成されてもよい。すなわち、入力104は、複数のオブジェクトを組み合わせて単一のカスタムビューにするための要求を含んでよい。かかる場合、上述の技術は、複数のオブジェクトの各々に対して実行され、複数のオブジェクトを含む単一の統合されたビューすなわちアンサンブルビューを生成するように組み合わせられる。具体的には、複数のオブジェクトの各々の既存ビューが、アセット管理エンジン110によってデータベース106から選択されてリトリーブされ、それらの既存ビューは、パースペクティブ変換エンジン112によって、要求されたビューのパースペクティブに変換され、パースペクティブ変換された既存ビューからのピクセルが、マージエンジン114によって、要求されたアンサンブルビューの対応するピクセルを埋めるために用いられ、アンサンブルビュー内の任意の残りの埋められていないピクセルが、補間エンジン116によって補間される。いくつかの実施形態において、要求されたアンサンブルビューは、アンサンブルを構成する1または複数のオブジェクトのためにすでに存在するパースペクティブを含みうる。かかる場合、要求されたパースペクティブに対応するオブジェクトアセットの既存ビューは、オブジェクトの他の既存ビューから、要求されたパースペクティブを最初に生成する代わりに、アンサンブルビュー内のオブジェクトに対応するピクセルを直接埋めるために用いられる。
【0031】
複数のオブジェクトを含む任意アンサンブルビューの一例として、
図2の椅子オブジェクトおよび別個に撮影またはレンダリングされたテーブルオブジェクトを考える。椅子オブジェクトおよびテーブルオブジェクトは、両方のオブジェクトの単一のアンサンブルビューを生成するために、開示されている技術を用いて組み合わせられてよい。したがって、開示された技術を用いて、複数のオブジェクトの各々の別個にキャプチャまたはレンダリングされた画像またはビューが、複数のオブジェクトを含み所望のパースペクティブを有するシーンを生成するために、矛盾なく組み合わせられうる。上述のように、各既存ビューの奥行情報は既知である。各既存ビューのパースペクティブ変換は、奥行変換を含んでおり、複数のオブジェクトが、アンサンブルビュー内で互いに対して適切に配置されることを可能にする。
【0032】
任意アンサンブルビューの生成は、複数の単一オブジェクトを組み合わせてカスタムビューにすることに限定されない。むしろ、複数のオブジェクトまたは複数のリッチな仮想環境を有する複数のシーンが、同様に組み合わせられてカスタムアンサンブルビューにされてもよい。例えば、複数の別個に独立して生成された仮想環境(おそらくは異なるコンテンツ生成源に由来し、おそらくは異なる既存の個々のパースペクティブを有する)が、所望のパースペクティブを有するアンサンブルビューになるように組み合わせられてよい。したがって、一般に、任意ビュー生成器102は、おそらくは異なる既存ビューを含む複数の独立したアセットを、所望のおそらくは任意パースペクティブを有するアンサンブルビューに矛盾なく組み合わせまたは調和させるよう構成されてよい。すべての組み合わせられたアセットが同じパースペクティブに正規化されるので、完璧に調和した結果としてのアンサンブルビューが生成される。アンサンブルビューの可能な任意パースペクティブは、アンサンブルビューを生成するために利用可能な個々のアセットの既存ビューに基づいて制約されうる。
【0033】
図3は、任意パースペクティブを生成するための処理の一実施形態を示すフローチャートである。処理300は、例えば、
図1の任意ビュー生成器102によって用いられてよい。様々な実施形態において、処理300は、所定のアセットの任意ビューまたは任意アンサンブルビューを生成するために用いられてよい。
【0034】
処理300は、任意パースペクティブの要求が受信される工程302において始まる。いくつかの実施形態において、工程302において受信された要求は、シーンのどの既存の利用可能なパースペクティブとも異なる所定のシーンの任意パースペクティブの要求を含みうる。かかる場合、例えば、任意パースペクティブ要求は、そのシーンの提示されたビューのパースペクティブの変更を要求されたことに応じて受信されてよい。パースペクティブのかかる変更は、カメラのパン、焦点距離の変更、ズームレベルの変更など、シーンに関連付けられている仮想カメラの変更または操作によって促されてよい。あるいは、いくつかの実施形態において、工程302において受信された要求は、任意アンサンブルビューの要求を含んでもよい。一例として、かかる任意アンサンブルビュー要求は、複数の独立したオブジェクトの選択を可能にして、選択されたオブジェクトの統合されたパースペクティブ修正済みのアンサンブルビューを提供するアプリケーションに関して受信されうる。
【0035】
工程304では、要求された任意パースペクティブの少なくとも一部を生成する元となる複数の既存画像が、1または複数の関連アセットデータベースからリトリーブされる。複数のリトリーブされた画像は、工程302において受信された要求が所定のアセットの任意パースペクティブの要求を含む場合には、所定のアセットに関連してよく、また、工程302において受信された要求が任意アンサンブルビューの要求を含む場合には、複数のアセットに関連してよい。
【0036】
工程306では、異なるパースペクティブを有する工程304でリトリーブされた複数の既存画像の各々が、工程302において要求された任意パースペクティブに変換される。工程304においてリトリーブされた既存画像の各々は、関連付けられているパースペクティブ情報を含む。各画像のパースペクティブは、相対位置、向き、回転、角度、奥行、焦点距離、絞り、ズームレベル、照明情報など、その画像の生成に関連付けられているカメラ特性によって規定される。完全なカメラ情報が各画像について既知であるので、工程306のパースペクティブ変換は、単純な数学演算を含む。いくつかの実施形態において、工程306は、任意選択的に、すべての画像が同じ所望の照明条件に一貫して正規化されるような光学変換をさらに含む。
【0037】
工程308では、工程302において要求された任意パースペクティブを有する画像の少なくとも一部が、パースペクティブ変換済みの既存画像から収集されたピクセルで埋められる。すなわち、複数のパースペクティブ補正済みの既存画像からのピクセルが、要求された任意パースペクティブを有する画像を生成するために用いられる。
【0038】
工程310では、要求された任意パースペクティブを有する生成された画像が完成したか否かが判定される。要求された任意パースペクティブを有する生成された画像が完成していないと工程310において判定された場合、生成された画像の任意の残りの埋められていないピクセルを取得するためのさらなる既存画像が利用可能であるか否かが工程312において判定される。さらなる既存画像が利用可能であると工程312で判定された場合、1または複数のさらなる既存画像が工程314においてリトリーブされ、処理300は工程306に進む。
【0039】
要求された任意パースペクティブを有する生成された画像が完成していないと工程310においてで判定され、かつ、もはや既存画像が利用できないと工程312において判定された場合、生成された画像のすべての残りの埋められていないピクセルが工程316において補間される。任意の1または複数の適切な補間技術が、工程316において用いられてよい。
【0040】
要求された任意パースペクティブを有する生成された画像が完成したと工程310において判定された場合、または、工程316においてすべての残りの埋められていないピクセルを補間した後、要求された任意パースペクティブを有する生成済みの画像が工程318において出力される。その後、処理300は終了する。
【0041】
上述のように、開示されている技術は、他の既存のパースペクティブに基づいて任意パースペクティブを生成するために用いられてよい。カメラ情報が各既存パースペクティブと共に保存されているので、異なる既存のパースペクティブを共通の所望のパースペクティブに正規化することが可能である。所望のパースペクティブを有する結果としての画像は、パースペクティブ変換された既存画像からピクセルを取得することで構築できる。開示されている技術を用いた任意パースペクティブの生成に関連付けられている処理は、高速でほぼ即時であるだけでなく、高品質の出力も生み出すため、開示されている技術は、インタラクティブなリアルタイムグラフィックスアプリケーションに対して特に強力な技術となっている。
【0042】
上述の技術は、所望のパースペクティブとは異なるパースペクティブを有する既存参照ビューまたは画像を用いてシーンの所望の任意ビューまたはパースペクティブを生成するための比類なく効率的なパラダイムを含む。より具体的には、開示されている技術は、所望の任意パースペクティブの全部ではないとしてもほとんどのピクセルが収集される1または複数の既存参照画像から、所望の任意パースペクティブを有する高精細度の画像を迅速に生成することを容易にする。上述のように、既存参照画像は、高品質の写真または写実的レンダリングを含み、オフライン処理中にキャプチャまたはレンダリングされ、もしくは、外部ソースから取得されてよい。さらに、(仮想)カメラ特性が、各参照画像と共にメタデータとして格納され、画像のパースペクティブ変換を容易にするために後で用いられてよい。
図1のアセットデータベース106に格納されている画像またはビューなどの参照画像と、それらに関連付けられているメタデータに関するさらなる詳細とを生成するための様々な技術について、次に説明する。
【0043】
図4は、アセットの任意ビューまたは任意パースペクティブが生成されうる元となるアセットの参照画像またはビューを生成するための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理400は、
図1のデータベース106に格納されるアセットの参照画像またはビューを生成するために用いられる。処理400は、オフライン処理を含んでよい。
【0044】
処理400は、アセットが撮像および/またはスキャンされる工程402において始まる。アセットの複数のビューまたはパースペクティブが、例えば、アセットの周りで撮像装置またはスキャン装置を回転させ、もしくは、かかる装置の前でアセットを回転させることによって、工程402においてキャプチャされる。いくつかの場合において、カメラなどの撮像装置が、工程402においてアセットの高品質な写真をキャプチャするために用いられてよい。いくつかの場合において、3Dスキャナなどのスキャン装置が、工程402においてアセットに関連付けられている点群データを収集するために用いられてもよい。工程402では、さらに、画像データおよび/またはスキャンデータと共に適用可能なメタデータ(カメラ属性、相対的な場所または位置、深度情報、照明情報、面法線ベクトル、など)を収集する工程を含む。これらのメタデータパラメータの一部は推定されてよい。例えば、法線データが、深度データから推定されてよい。いくつかの実施形態において、アセットの対象領域または対象表面の全部ではないとしてもほとんどを網羅するアセットの少なくとも所定のセットのパースペクティブが、工程402においてキャプチャされる。さらに、異なる特性または属性を有する異なる撮像装置またはスキャン装置が、所与のアセットの異なるパースペクティブに対して、および/または、データベース106に格納された異なるアセットに対して、工程402において用いられてよい。
【0045】
工程404では、アセットの三次元ポリゴンメッシュモデルが、工程402においてキャプチャされた画像データおよび/またはスキャンデータから生成される。すなわち、完全に調整された三次元メッシュモデルが、工程402においてキャプチャされた写真および/または点群データならびに関連メタデータに基づいて生成される。いくつかの実施形態において、完全なメッシュモデルが工程404において構築されうることを保証するのに足りるだけのアセットデータが、工程402においてキャプチャされる。工程402において十分にキャプチャされなかった生成済みメッシュモデルの部分は補間されてよい。いくつかの場合に、工程404では、完全には自動化されず、生成された三次元メッシュモデルが秩序正しいことを保証するために、少なくとも何らかの人的介入を伴う。
【0046】
工程406では、アセットの複数の参照画像またはビューが、工程404において生成された三次元メッシュモデルからレンダリングされる。任意の適切なレンダリング技術が、利用可能なリソースに応じて工程406において用いられてよい。例えば、レンダリング品質を犠牲にすることになるが、計算リソースおよび/またはレンダリング時間に関して制約が存在する時に、より簡単なレンダリング技術(スキャンラインレンダリングまたはラスタ化など)が用いられてよい。いくつかの場合に、より多くのリソースを消費するが高品質の写実的な画像を生成するより複雑なレンダリング技術(レイトレーシングなど)が用いられてもよい。工程406においてレンダリングされた各参照画像は、三次元メッシュモデルから決定される関連メタデータを備え、(仮想)カメラ属性、相対的な場所または位置、深度情報、照明情報、面法線ベクトル、などのパラメータを含んでよい。
【0047】
いくつかの実施形態において、ステップ402でキャプチャされた任意のソース画像は、データベース106に格納されたアセットの参照画像またはビューの非常に小さい一部を含む。むしろ、データベース106に格納されたアセットの画像またはビューのほとんどは、工程404で生成されたアセットの三次元メッシュモデルを用いてレンダリングされる。いくつかの実施形態において、アセットの参照画像またはビューは、アセットの1または複数の正投影ビューを含む。複数の異なるアセットのかかる正投影ビューは、複数の別個にキャプチャまたはレンダリングされた個々のアセットからまたはそれらを組み合わせることによって構築された合成アセットの正投影ビューを生成するために、組み合わせられてよく(例えば、積木のように、一緒にスタックされ、または、隣り合わせに配置される、など)、その後、合成アセットの正投影ビューは、個々のアセットの各々の正投影ビューを所望の任意パースペクティブに変換することによって集合的に任意の任意カメラビューに変換されうる。
【0048】
図4の処理400の三次元メッシュモデルベースのレンダリングは、計算集約的で時間がかかる。したがって、ほとんどの場合、処理400は、オフライン処理を含む。さらに、アセットの三次元メッシュモデルが存在しうるが、かかるモデルから直接的に高品質な任意パースペクティブをレンダリングすることは、ほとんどのリアルタイムまたはオンデマンドのアプリケーションを含む多くのアプリケーションで効率的に達成することができない。むしろ、アセットの任意の所望の任意パースペクティブをレンダリングできる基礎となる三次元メッシュモデルの存在にもかかわらず、速度制約を満たすために、より効率的な技術を用いる必要がある。例えば、
図1~
図3の記載に関して上述した任意ビュー生成技術は、アセットの既存参照ビューまたは画像に基づいて所望の任意ビューまたはパースペクティブを非常に高速で生成しつつも参照ビューの品質に匹敵する品質を維持するために用いられてよい。しかしながら、いくつかの実施形態において、三次元メッシュモデルを構築する工程およびモデルから参照ビューをレンダリングする工程に関連付けられている非効率性は、これらの工程をオフラインで実行する選択肢を有するにもかかわらず、望ましくないまたは許容できない場合がある。いくつかのかかる場合に、次でさらに記載するように、メッシュモデルを構築する工程および参照ビューを生成するために複雑なレンダリング技術を利用する工程が省略されてもよい。
【0049】
図5は、アセットの任意ビューまたは任意パースペクティブが生成されうる元となるアセットの参照画像またはビューを生成するための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理500は、
図1のデータベース106に格納されるアセットの参照画像またはビューを生成するために用いられる。処理500は、オフライン処理を含んでよい。
【0050】
処理500は、アセットが撮像および/またはスキャンされる工程502において始まる。アセットの複数のビューまたはパースペクティブが、例えば、アセットの周りで撮像装置またはスキャン装置を回転させ、もしくは、かかる装置の前でアセットを回転させることによって、工程502においてキャプチャされる。工程502においてキャプチャされたビューは、少なくとも一部は、アセットの正投影ビューを含んでよい。いくつかの実施形態において、工程502においてキャプチャされた画像/スキャンは、工程502においてキャプチャされた少なくとも1つの他の画像/スキャンと重複する視野を有し、両者の間の相対的な(カメラ/スキャナ)姿勢は既知であり、格納されている。いくつかの場合において、DSLR(デジタル一眼レフ)カメラなどの撮像装置が、工程502においてアセットの高品質な写真をキャプチャするために用いられてよい。例えば、長焦点レンズを備えたカメラが、正投影ビューをシミュレートするために用いられてよい。いくつかの場合において、3Dスキャナなどのスキャン装置が、工程502においてアセットに関連付けられている点群データを収集するために用いられてもよい。工程502では、さらに、カメラ属性、相対的な場所または位置、照明情報、面法線ベクトル、重複する視野を有する画像/スキャン間の相対的な姿勢など、適用可能なメタデータを画像および/またはスキャンデータと共に格納する工程を含む。これらのメタデータパラメータの一部は推定されてよい。例えば、法線データが、深度データから推定されてよい。いくつかの実施形態において、アセットの対象領域または対象表面の全部ではないとしてもほとんどを十分に網羅するアセットの少なくとも所定のセットのパースペクティブが、工程502でキャプチャされる。さらに、異なる特性または属性を有する異なる撮像装置またはスキャン装置が、所与のアセットの異なるパースペクティブに対して、および/または、データベース106に格納された異なるアセットに対して、工程502において用いられてよい。
【0051】
工程504では、アセットの複数の参照画像またはビューが、工程502においてキャプチャされたデータに基づいて生成される。参照ビューは、単に、工程502においてキャプチャされた画像/スキャンおよび関連メタデータだけから、工程504において生成される。すなわち、工程502においてキャプチャされた適切なメタデータおよび重複するパースペクティブを用いて、アセットの任意の任意ビューまたはパースペクティブが生成されてよい。いくつかの実施形態において、データベース106に格納されるアセットの参照ビューの包括的なセットが、工程502においてキャプチャされた画像/スキャンおよびそれらの関連メタデータから生成される。工程502においてキャプチャされたデータは、メッシュモデルのフラグメントを形成するのに十分でありうるが、統合的な完全に調整されたメッシュモデルが生成される必要はない。したがって、アセットの完全な三次元メッシュモデルは生成されず、メッシュモデルから参照画像をレンダリングするためにレイトレーシングなどの複雑なレンダリング技術が用いられることもない。処理500は、最も多くの処理リソースおよび時間を消費する処理400の工程を排除することによって効率を改善する。
【0052】
工程504において生成された参照画像は、
図1~
図3の記載に関して上述した技術を用いて、任意ビューまたはパースペクティブのより高速な生成を容易にしうる。しかしながら、いくつかの実施形態において、参照画像のリポジトリが、工程504において生成される必要はない。むしろ、工程502においてキャプチャされたビューおよびそれらの関連メタデータは、
図1~
図3の記載に関して上述された技術を用いて、アセットの任意の所望の任意ビューを生成するのに十分である。すなわち、単に、アセットの領域や表面の全部ではないとしてもほとんどをキャプチャし、関連メタデータと共に登録された、重複した視野を持つ少数の高品質の画像/スキャンから、任意の所望の任意ビューまたはパースペクティブが生成されうる。工程502でキャプチャされたソース画像のみから所望の任意ビューを生成する工程に関連付けられている処理は、多くのオンデマンドのリアルタイムアプリケーションにとって十分に高速である。しかしながら、速度のさらなる効率性が望まれる場合、参照ビューのリポジトリが、処理500の工程504などで生成されてもよい。
【0053】
上述のように、データベース106内のアセットの各画像またはビューは、対応するメタデータと共に格納されてよい。メタデータは、モデルからビューをレンダリングする時、アセットを撮像またはスキャンする時(この場合、深度および/または面法線のデータが推定されてよい)、または、それら両方を組み合わせた時に、三次元メッシュモデルから生成されてよい。
【0054】
アセットの所定のビューまたは画像が、画像を含む各ピクセルのピクセル強度値(例えば、RGB値)と、各ピクセルに関連付けられている様々なメタデータパラメータとを含む。いくつかの実施形態において、ピクセルの赤、緑、および、青(RGB)のチャネルまたは値の内の1または複数が、ピクセルメタデータを符号化するために用いられてよい。ピクセルメタデータは、例えば、そのピクセルに投影される三次元空間内の点の相対的な場所または位置(例えば、x、y、および、z座標値)に関する情報を含んでよい。さらに、ピクセルメタデータは、その位置における面法線ベクトルに関する情報(例えば、x、y、および、z軸となす角度)を含んでもよい。また、ピクセルメタデータは、テクスチャマッピング座標(例えば、uおよびv座標値)を含んでもよい。かかる場合、点における実際のピクセル値は、テクスチャ画像における対応する座標のRGB値を読み取ることによって決定される。
【0055】
面法線ベクトルは、生成された任意ビューまたはシーンの照明の修正または変更を容易にする。より具体的には、シーンの照明変更は、ピクセルの面法線ベクトルが、新たに追加、削除、または、その他の方法で変更された光源の方向にどれだけうまく一致するか(例えば、光源方向とピクセルの法線ベクトルとのドット積によって、少なくとも部分的に定量化されうる)に基づいて、ピクセル値をスケーリングすることを含む。テクスチャマッピング座標を用いてピクセル値を規定すると、生成された任意ビューまたはシーンもしくはその一部のテクスチャの修正または変更が容易になる。より具体的には、テクスチャは、参照されたテクスチャ画像を、同じ寸法を有する別のテクスチャ画像と単に交換または置換することによって変更されることができる。
【0056】
上述のように、アセットの参照画像またはビューは、アセットの基礎となるメッシュモデルを用いてまたはモデルなしで生成されてよい。最も効率的な実施形態において、単に、アセットの周りの様々な(重複した)ビューをキャプチャする小さいセットのソース画像/スキャン、および、それらに関連付けられている関連メタデータのみが、
図1~
図3の記載に関して上述した技術を用いて、アセットの任意の所望の任意ビュー、および/または、所望の任意ビューが生成されうる元となる1セットの参照ビューを生成するために必要とされる。かかる実施形態において、モデリングおよびレンダリングに基づいたパストレーシングという最もリソース集約的な工程が排除される。開示されている任意ビュー生成技術を用いて生成された画像またはビューは、静的シーンまたは動的シーンを含んでよく、静止画、または、アニメーションまたはビデオシーケンスのフレームを含んでよい。モーションキャプチャの場合、1または複数のアセットの画像またはビューのセットが、各タイムスライスに対して生成されてよい。開示されている技術は、ゲームアプリケーション、仮想/代替現実アプリケーション、CGI(コンピュータ生成画像)アプリケーションなど、高品質な任意ビューの高速な生成を要求するアプリケーションで特に有用である。
【0057】
三次元モデルからのレンダリングに基づいた既存の三次元コンテンツフレームワークは、典型的には、特定の用途向けに開発および最適化され、異なるプラットフォームおよびアプリケーションに対する拡張性を欠く。結果として、実質的な努力およびリソースが、異なる利用例に対して同じ三次元コンテンツを生成する際に投入され反復される必要がある。さらに、三次元コンテンツの要件は、経時的に対象物を移動させることに直面する。したがって、三次元コンテンツは、要件の変化に伴って手動で再生成される必要がある。そのため、異なるプラットフォーム、デバイス、アプリケーション、利用例、および、一般に様々な品質条件にわたって、三次元コンテンツフォーマットを標準化することが困難である結果として、三次元コンテンツの普及が阻まれてきた。したがって、本明細書に開示されているように任意の所望の品質レベルを実現するために利用できる三次元コンテンツを表現するためのより拡張可能なフォーマットが必要とされている。
【0058】
開示されている技術は、三次元コンテンツを二次元コンテンツとして表現するための基本的に新規なフレームワークを備えつつも、従来の三次元フレームワークの属性、ならびに、様々なその他の特徴および利点の全てを提供する。上述のように、三次元コンテンツおよび対応する情報は、関連付けられているアセットの基礎となる三次元モデルを必要とすることなしに任意の所望の任意ビューが生成されうる元となる複数の画像に符号化される。すなわち、上述の技術は、三次元ソースコンテンツの二次元コンテンツ(すなわち、画像)への変換を効果的に含む。より具体的には、三次元モデルを含む従来の三次元プラットフォームと効果的に置き換わる、アセットに関連付けられている1セットの画像を含む二次元プラットフォームをもたらす。上述のように、二次元プラットフォームを構成する画像は、三次元モデルから、および/または、ソース画像またはスキャンの小さいセットから生成されてよい。関連メタデータは、アセットの各ビューに関して格納され、いくつかの場合、ピクセル値として符号化される。所与の二次元アーキテクチャの画像ベースビューおよびメタデータは、二次元コンテンツを三次元ソースとして用いることを容易にする。したがって、開示されている技術は、基礎となる三次元ポリゴンメッシュモデルを用いたレンダリングに依存する従来の三次元アーキテクチャと完全に置き換わる。三次元ソースコンテンツ(物理的なアセットまたはアセットの三次元メッシュモデルなど)は、アセットの複数の異なるビューまたはパースペクティブを生成する機能など、従来的には三次元フレームワークを用いてのみ利用可能であった特徴を表現し提供するために代わりに用いられる、1セットのビューおよびメタデータを含む二次元フォーマットにエンコードまたは変換される。従来の三次元フレームワークの特徴すべてを提供することに加えて、開示されている二次元表現は、従来の画像処理技術に適していることなど、様々なさらなる固有の特徴を提供する。
【0059】
三次元コンテンツを表現するための開示されている二次元フレームワークにおいて、アセットに関する情報が、画像データとして符号化される。画像は、ピクセル値を含む高さ、幅、および、第3寸法を有するアレイを備える。アセットに関連付けられている画像は、アセットの様々な参照ビューまたはパースペクティブ、および/または、ピクセル値(例えば、RGBチャネル値)として符号化された対応するメタデータを備えてよい。かかるメタデータは、例えば、カメラ特性、テクスチャ、uv座標値、xyz座標値、面法線ベクトル、照明情報(グローバルイルミネーション値、または、所定の照明モデルに関連付けられている値、など)、などを含んでよい。様々な実施形態において、アセットの参照ビューまたはパースペクティブを含む画像は、(高品質の)写真または(写実的な)レンダリングであってよい。
【0060】
例えば、任意のカメラ特性(カメラ位置およびレンズタイプなど)、任意のアセットアンサンブルまたは組み合わせ、任意の照明、任意のテクスチャバリエーション、などを有するアセットの所望の任意ビューまたはパースペクティブをレンダリングする機能など、様々な特徴が、開示されている二次元フレームワークによってサポートされる。完全なカメラ情報が、アセットの参照ビューについて既知であり、参照ビューと共に格納されるので、任意のカメラ特性を含むアセットの他の新規ビューが、アセットの複数のパースペクティブ変換された参照ビューから生成されてよい。より具体的には、単一のオブジェクトまたはシーンの所定の任意ビューまたはパースペクティブが、オブジェクトまたはシーンに関連付けられている複数の既存参照画像から生成されてよく、一方、所定の任意アンサンブルビューが、オブジェクトまたはシーンに関連付けられている参照画像のセットからの複数のオブジェクトまたはシーンを正規化して統合ビューに矛盾なく組み合わせることによって生成されてよい。アセットの参照ビューは、1または複数の照明モデル(グローバルイルミネーションモデルなど)によってモデル化された照明を有してよい。参照ビューについて既知の面法線ベクトルは、任意の所望の照明モデルに従って画像またはシーンの照明を変更する機能など、任意照明制御を容易にする。アセットの参照ビューは、テクスチャマッピング(uv)座標で指定されたテクスチャを有し、これは、参照されたテクスチャ画像を変更するだけで任意の所望のテクスチャを置き換えることを可能にすることによって、任意テクスチャ制御を容易にする。
【0061】
上述のように、開示されている二次元フレームワークは、画像データセットに基づいており、そのため、画像処理技術に適している。したがって、三次元コンテンツを表現するための開示されている画像ベースの二次元フレームワークは、本質的に、計算および帯域幅スペクトルの上下両方でシームレスに拡張可能かつリソース適応型である。画像を拡大縮小するための既存の技術(画像圧縮技術など)が、開示されているフレームワークの画像ベースの三次元コンテンツをスケーリングするために有利に用いられてよい。開示されている二次元フレームワークを含む画像は、異なるチャネル、プラットフォーム、デバイス、アプリケーション、および/または、利用例の要件に適切に従うように、品質または解像度の観点で、容易にスケーリングされうる。画像品質または解像度の要件は、異なるプラットフォーム(モバイル対デスクトップなど)、所与のプラットフォームのデバイスの異なるモデル、異なるアプリケーション(オンラインビューワ対マシン上でローカルに動作するネイティブアプリケーションなど)、時間の経過、異なるネットワーク帯域幅、などに対して大幅に変化しうる。したがって、異なる利用例の要件を包括的に満たし、経時的な要件の変化に影響されないアーキテクチャ(開示されている二次元フレームワークのなど)の必要性が存在する。
【0062】
一般に、開示されている二次元フレームワークは、リソース適応型のレンダリングをサポートする。さらに、時間に変化する品質/解像度の適合が、計算リソースおよび/またはネットワーク帯域幅の現在またはリアルタイムの利用可能性に基づいて提供されてよい。スケーリング(すなわち、画像品質レベルを円滑かつシームレスに上下させる機能は、ほとんどの場合、完全に自動化される。例えば、開示されている二次元フレームワークは、手動介入を必要とすることなしに、参照ビューまたはパースペクティブ、ならびに、メタデータ(例えば、テクスチャ、面法線ベクトル、xyz座標、uv座標、照明値、など)を符号化する画像など、1または複数の特徴にわたって、アセット(すなわち、アセットを含む1または複数の画像)を自動的にダウンサンプリングする機能を提供する。いくつかのかかる場合に、アセットのスケーリングは、アセットのすべての特徴にわたって一様でなくてもよく、アセットに関連付けられている画像を含む情報またはその画像内に符号化された情報のタイプに応じて変化してよい。例えば、アセットの参照ビューまたはパースペクティブの実際の画像ピクセル値は、不可逆的に圧縮されてよいが、特定のメタデータ(深度(すなわち、xyz値)および法線値など)を符号化した画像は、同じ方法で圧縮されなくてよく、または、いくつかの場合においては、かかる情報の損失がレンダリング時に容認されえないために、全く圧縮されなくてもよい。
【0063】
いくつかの実施形態において、最も高い利用可能な品質または解像度を有するマスタアセット(すなわち、マスタアセットを含む1セットの画像)が生成され、例えば、
図1のデータベース106に、格納される。いくつかのかかる場合に、アセットの1または複数のより低い品質/解像度のバージョンがマスタアセットから自動的に生成され、要求されたパースペクティブを生成するサーバ、要求側のクライアント、および/または、1以上の関連通信ネットワークの(現在の)能力に基づいて、要求されたパースペクティブまたはビューを生成するために適切なバージョンを選択できるように、格納される。あるいは、いくつかの場合に、アセットの単一のバージョン(すなわち、マスタアセット)が格納され、開示されているフレームワークは、要求されたパースペクティブを生成するサーバ、要求側のクライアント、および/または、1以上の関連通信ネットワークの(現在の)能力に基づいて、マスタアセットの品質または解像度までの品質または解像度のストリーミング配信またはプログレッシブ配信をサポートする。
【0064】
図6は、シーンの要求されたビューを提供するための処理の一実施形態を示すフローチャートである。処理600は、例えば、
図1の任意ビュー生成器102によって用いられてよい。いくつかの実施形態において、
図3の処理300は、処理600の一部である。様々な実施形態において、処理600は、1または複数のアセット(すなわち、所定のアセットまたはアセットの任意アンサンブル)を含むシーンの任意ビューを生成するために用いられてよい。
【0065】
処理600は、シーンの任意の他の既存の利用可能なビューとは異なっているまだ存在しないシーンの所望の任意ビューの要求が受信される工程602において始まる。一般に、任意ビューは、要求される前に仕様が予め知られていないシーンまたはアセットの任意の所望のビューを含んでよい。工程602の任意ビュー要求は、クライアントから受信され、所定のカメラ特性(例えば、レンズタイプおよび姿勢/パースペクティブ)、照明、テクスチャ、アセットアンサンブルなどの仕様を含んでよい。
【0066】
工程604では、工程602において要求されたシーンの任意ビューが、利用可能なリソースに基づいて生成またはレンダリングされる。例えば、工程604において生成された要求任意ビューは、任意ビューを要求するクライアント、要求された任意ビューを生成するサーバの計算または処理能力、および/または、クライアントとサーバとの間の1以上の関連通信ネットワークの帯域幅利用可能性に基づいて、適切にスケーリングされうる。より具体的には、工程604では、次に説明する1または複数の関連付けられた軸に沿ってスケーリングまたは調整することによって、反応性に対して画像品質をトレードオフすることにより、リソース適応レンダリングを容易にする。
【0067】
開示されている技術を用いて工程604において生成またはレンダリングされる要求ビューを含む画像の品質は、少なくとも部分的には、要求ビューを生成するために用いられる既存のパースペクティブ変換された参照画像の数に基づいてよい。多くの場合、より多くの参照画像を用いると、より高い品質につながり、より少ない参照画像を用いると、より低い品質につながる。したがって、要求ビューを生成するために用いられる異なるパースペクティブを有する参照画像の数は、様々なプラットフォーム、デバイス、アプリケーション、または、利用例に対して適合または最適化されてよく、さらに、リアルタイムのリソースの利用可能性および制約に基づいて適合されてよい。いくつかの例として、静止画像を含む要求ビューまたは高速インターネット接続を有するデスクトップ上のネイティブアプリケーションのための要求ビューを生成するために、比較的多い数の参照画像(例えば、60画像)が用いられてよく、一方、ビデオまたは拡張現実シーケンスのフレームを含む要求ビューもしくはモバイルデバイス用のウェブアプリケーションのための要求ビューを生成するために、比較的少ない数の参照画像(例えば、12画像)が用いられてよい。
【0068】
開示されている技術を用いて工程604において生成またはレンダリングされる要求ビューを含む画像の品質は、少なくとも部分的には、要求ビューを生成するために用いられる1または複数のアセットを含む画像(すなわち、1または複数のアセットの参照パースペクティブおよび関連メタデータを含む画像)の解像度(すなわち、ピクセル密度)に基づいてよい。アセットを含む画像のより高解像度のバージョンは、より高い品質につながり、一方、アセットを含む画像のより低解像度のバージョンは、より低い品質につながる。したがって、要求ビューを生成するために用いられる異なるパースペクティブおよび関連メタデータを含む画像の解像度またはピクセル密度は、様々なプラットフォーム、デバイス、アプリケーション、または、利用例に対して適合または最適化されてよく、さらに、リアルタイムのリソースの利用可能性および制約に基づいて適合されてよい。いくつかの例として、高速インターネット接続を有するデスクトップ上のネイティブアプリケーションのための要求ビューを生成するために、1または複数のアセットに関連付けられている画像の比較的高い解像度(例えば、2K×2K)のバージョンが用いられてよく、一方、モバイルデバイス用のウェブベースアプリケーションのための要求ビューを生成するために、1または複数のアセットに関連付けられている画像の比較的低い解像度(例えば、512×512)のバージョンが用いられてよい。
【0069】
開示されている技術を用いて工程604において生成またはレンダリングされる要求ビューを含む画像の品質は、少なくとも部分的には、要求ビューを生成するために用いられる1または複数のアセットを含む画像(すなわち、1または複数のアセットの参照パースペクティブおよび関連メタデータを含む画像)のビット深度(すなわちピクセルあたりのビット)に基づいてよい。アセットを含む画像のより高ビット深度のバージョンは、より高い品質につながり、一方、アセットを含む画像のより低ビット深度のバージョンは、より低い品質につながる。したがって、要求ビューを生成するために用いられる異なるパースペクティブおよび関連メタデータを含む画像のピクセルの精度は、様々なプラットフォーム、デバイス、アプリケーション、または、利用例に対して適合または最適化されてよく、さらに、リアルタイムのリソースの利用可能性および制約に基づいて適合されてよい。いくつかの例として、より高品質の要求ビューを生成するために、1または複数のアセットに関連付けられている画像のより高精度のバージョン(例えば、テクスチャ値については64bpp、xyz座標および法線ベクトルについてはフロート)が用いられてよく、一方、より低品質の要求ビューを生成するために、1または複数のアセットに関連付けられている画像のより低精度のバージョン(例えば、テクスチャ値については24bpp、xyz座標および法線ベクトルについては48bpp)が用いられてよい。
【0070】
開示されているリソース適応レンダリングのための技術は、シーンの要求任意ビューを生成またはレンダリングするために用いられる画像の3つの軸(数、解像度、および、ビット深度)の内の任意の1または複数に沿った離散的および/または連続的なスケーリングをサポートする。要求ビューの画像品質は、要求ビューを生成またはレンダリングするために用いられる参照ビューおよびメタデータを含む画像の異なる組みあわせまたはバージョンを適切にスケーリングおよび/または選択することによって、変更されてよい。要求ビューの出力画像品質は、1または複数の(リアルタイムの)考慮事項および/または制約に基づいて、工程604で選択されてよい。例えば、要求ビューに対して選択される画像品質は、要求側クライアントのプラットフォームまたはデバイスタイプ(例えば、モバイル対デスクトップおよび/またはそれらのモデル)、所定のビューポートサイズおよび/またはフィルファクタ(例えば、512×512ウィンドウ対4Kウィンドウ)を有するウェブページなどでの利用例、アプリケーションタイプ(例えば、静止画像対ビデオ、ゲーム、または、仮想/拡張現実シーケンスのフレーム)、ネットワーク接続タイプ(例えば、モバイル対ブロードバンド)などに基づいてよい。したがって、品質は、所定の利用例と、所定の利用例に関するクライアントの能力とに基づいて選択されてよい。
【0071】
いくつかの実施形態において、開示されている技術は、さらに、低い品質から、クライアントデバイスで利用可能または実現可能な最高品質以下の高い品質までの、ストリーミングまたはプログレッシブ配信をサポートする。多くの場合、要求ビューを生成するために用いられる参照画像のスケーリングまたは数の選択は、関連アプリケーションの待ち時間要件に少なくとも部分的に依存する。例えば、静止画像を生成するためには、比較的多数の参照画像が用いられてよいが、ビューが高速で変化するアプリケーションのためのフレームを生成するためには、比較的少数の参照画像が用いられてよい。様々な実施形態において、スケーリングは、スケーリングに利用可能な上述の軸の内の1または複数にわたって、および/または、様々な画像によって符号化されている情報のタイプに応じて、同じであっても異なっていてもよい。例えば、要求ビューを生成するために用いられる画像の解像度およびビット深度は、正比例して一様に、または、独立的に、スケーリングされてよい。一例として、解像度は、ダウンサンプリングされてよいが、ビット深度は、色調品質(照明、色、コントラスト)の維持が重要なアプリケーションにおいて高いダイナミックレンジおよび色深度を保持するために全くスケールダウンされなくてよい。さらに、要求ビューを生成するために用いられる画像の解像度およびビット深度は、参照ビューの実際のピクセル値など、一部のタイプのデータについては損失が許容されうるが、深度(xyz座標)および面法線ベクトルなど、メタデータを含む他のタイプのデータについては許容されえないので、画像内に符号化された情報のタイプに応じて、異なってスケーリングされてよい。
【0072】
工程606では、工程604において生成またはレンダリングされた要求ビューが、工程602の受信要求を満たすために、例えば、要求側クライアントに、提供される。その後、処理600は終了する。
【0073】
上述のように、アセットまたはアセットアンサンブルを含むシーンの所望の任意ビューを生成またはレンダリングするための上述の二次元フレームワークは、異なるパースペクティブを有する参照ビューと、各参照ビューまたはパースペクティブに関連付けられているメタデータとを含む画像に基づいている。いくつかの例として、各参照ビューまたはパースペクティブに関連付けられているメタデータは、参照ビューまたはパースペクティブの各ピクセルを三次元空間におけるその位置(xyz座標値)およびその位置における面法線ベクトルに関連付けてよい。三次元モデルを用いた物理ベースレンダリング技術で生成された画像について、関連メタデータが、対応する三次元モデルからキャプチャまたは生成され、画像と関連付けられてよい。1または複数のタイプのメタデータが未知である画像(例えば、写真/スキャンまたはその他のレンダリング)については、かかるメタデータ値が、機械学習ベースの技術を用いて決定されてよい。例えば、次でさらに記載するように、ニューラルネットワークが、画像空間からメタデータ空間へのマッピングを決定するために用いられてよい。
【0074】
図7は、画像データセットに関連付けられている属性を学習するための機械学習ベース画像処理フレームワーク700の一実施形態を示すハイレベルブロック図である。アセットの利用可能な三次元(ポリゴンメッシュ)モデルおよび所定のモデル化された環境702が、例えば、物理ベースレンダリング技術を用いて、幅広い画像データセット704をレンダリングするために用いられる。いくつかの実施形態において、モデル化された環境は、物理的なアセットが撮像または撮影される実際の物理環境と厳密に一致し、または、実際の物理環境を実質的にシミュレートする。レンダリングされた画像データセット704は、写実的レンダリングを含んでよく、アセットの複数のビューまたはパースペクティブと、テクスチャとを含んでよい。さらに、レンダリングされた画像データセット704は、適切にラベル付けまたはタグ付けされ、もしくは、レンダリング中に決定および/またはキャプチャされた関連メタデータと他の方法で関連付けられる。
【0075】
幅広いタグ付けされたデータセット704は、人工知能ベースの学習に完全に適している。例えば、1または複数の適切な機械学習技術(ディープニューラルネットワークおよび畳み込みニューラルネットワークなど)の任意の組み合わせを用いて、データセット704に対するトレーニング706を行った結果として、関連メタデータ値など、データセット704に関連付けられている1セットの1または複数の特性または属性708が学習される。かかる学習された属性は、データセット704に関連付けられたラベル、タグ、または、メタデータから導出または推定されてよい。画像処理フレームワーク700は、様々なアセットおよびアセットの組みあわせに関連付けられている複数の異なるトレーニングデータセットに対してトレーニングされてよい。しかしながら、いくつかの実施形態において、トレーニングデータセットの少なくとも一部が、所定のモデル化された環境に制約される。様々な属性または属性タイプを学習するために多数のデータセットで学習した後、画像処理フレームワーク700は、その後、トレーニングデータと同じまたは同様のモデル環境に関してレンダリングされたアセットの他のレンダリング、ならびに、トレーニングデータのモデル環境によってモデル化された環境と一致または類似する実際の物理環境でキャプチャされた写真など、かかる属性が未知である他の画像において同様の属性またはその組み合わせを検出または導出するために用いられてよい。一例として、物理的なxyz位置座標に画像ピクセルでタグ付けされ、面法線ベクトルに画像ピクセルでタグ付けされたデータセットでトレーニングされた機械学習ベースのフレームワークが、かかるメタデータ値が知られていない画像の位置(つまり、深度すなわちカメラからのxyz距離)および面法線ベクトルを予測するために用いられてよい。
【0076】
開示されているフレームワークは、シミュレートまたはモデル化できる既知の制御または制約された物理環境が、個々のアセットまたはそれらの組み合わせを撮像または撮影するために用いられる場合に、特に有用である。一応用例において、例えば、オブジェクトまたはアイテムを撮像または撮影するための上述の装置(例えば、カメラリグ)が、小売業者の製品倉庫で用いられうる。かかる応用例において、オブジェクトが撮像または撮影される実際の物理環境に関する正確な情報が、例えば、いくつかの場合には、撮像装置内からの撮像オブジェクトの視点またはパースペクティブからわかる。実際の物理環境に関する既知の情報は、例えば、撮像装置の構造および形状と、利用されるカメラの数、タイプ、および、姿勢と、光源および周囲照明の位置および強度、などを含みうる。実際の物理環境に関するかかる既知の情報は、モデル化された環境が、実際の物理環境と同一であり、もしくは、実際の物理環境を少なくとも実質的に再現またはシミュレートするように、機械学習ベースの画像処理フレームワークのトレーニングデータセットのレンダリングのモデル化された環境を規定するために用いられる。いくつかの実施形態において、例えば、モデル化された環境は、撮像装置の三次元モデルと、実際の物理環境と同じカメラ構成および照明とを含む。メタデータ値が知られていない画像(実際の物理環境でキャプチャされた写真など)のかかるメタデータ値を検出または予測するために、開示されている機械学習ベースのフレームワークを利用できるように、メタデータ値が、既知のメタデータ値でタグ付けされたトレーニングデータセットから学習される。環境の特定の属性(例えば、形状、カメラ、照明)を既知の値に制約することで、円滑に、学習を行い、その他の属性(例えば、深度/位置、面法線ベクトル)を予測できるようになる。
【0077】
上述のように、機械学習ベースの画像処理フレームワークは、メタデータ値が既知であり、利用可能な三次元モデルおよび所定のモデル化された環境から生成されたレンダからメタデータを学習するために用いられてよく、機械学習ベースの画像処理フレームワークは、その後、かかるメタデータ値が未知の画像においてメタデータ値を特定するために用いられてよい。与えられた例のいくつかにおいて、所定の物理環境および対応するモデル化された環境に関して記載したが、開示されている技術は、一般に、異なるタイプのアセット、モデル環境、および/または、それらの組み合わせについて、異なるタイプの画像メタデータを学習および予測するために利用および適応されてもよい。例えば、記載されている機械学習ベースのフレームワークは、トレーニングデータセットが十分に包括的かつ多様なアセットおよび環境に及ぶと仮定すると、任意の環境においてレンダリングまたはキャプチャされた任意のアセットの画像についての未知のメタデータ値を決定するようトレーニングされてよい。
【0078】
図8は、アセットまたはシーンの他の任意ビューを生成するために利用できるアセットまたはシーンに関連付けられている画像をデータベースに入力するための処理の一実施形態を示すフローチャートである。例えば、
図8の処理800は、
図1のアセットデータベース106に入力するために用いられてよい。処理800は、機械学習ベースのフレームワーク(
図7のフレームワーク700など)を利用する。いくつかの実施形態において、処理800の画像は、所定の物理的環境および対応するモデル化された環境に制約される。しかしながら、より一般的には、処理800は、任意の物理的環境またはモデル化された環境に関して用いられてよい。
【0079】
処理800は、トレーニングデータセットに関連付けられているメタデータが機械学習ベースの技術を用いて学習される工程802において始まる。いくつかの実施形態において、トレーニングに用いられる画像データセットは、例えば、形状、カメラ、照明などの所定の仕様によって規定されたシミュレートまたはモデル化された環境におけるアセットまたはシーンの既知の三次元モデルからレンダリングされたアセットまたはシーンの画像の広範なコレクションを含む。学習されるメタデータは、異なるタイプの画像メタデータ値を含んでよい。工程802のトレーニングデータセットは、所定のモデル環境内の異なるアセットを網羅してよく、または、より一般的には、異なる環境内の異なるアセットを包括的に網羅してよい。
【0080】
工程804では、1または複数の画像メタデータ値が未知または不完全である画像が受信される。受信された画像は、レンダリングまたは写真またはスキャンを含んでよい。いくつかの実施形態において、受信された画像は、工程802のトレーニング画像データセットの少なくとも一部に用いられたレンダリング環境と同じまたは同様のモデル化された環境または物理環境に関して生成またはキャプチャされたものである。
【0081】
工程806では、受信された画像の未知または不完全なメタデータ値は、処理800の機械学習ベースのフレームワークを用いて決定または予測される。工程808では、受信された画像および関連メタデータは、例えば、
図1のアセットデータベース106内に格納される。その後、処理800は終了する。
【0082】
関連メタデータを決定して、画像(すなわち、工程804において受信され、工程808において格納される画像)と関連付けることにより、処理800は、その画像を、関連アセットまたはシーンの他の任意ビューを生成するために後で利用できる関連アセットまたはシーンの参照画像またはビューに変換することを効果的に容易にする。様々な実施形態において、参照画像として画像を格納する時に、画像は、対応するメタデータで適切にタグ付けされ、および/または、関連メタデータ値を符号化する1または複数の画像と関連付けられてよい。処理800は、一般に、機械学習ベースの技術を用いて、画像が、例えば、任意のカメラ特性、テクスチャ、照明などを有する関連アセットまたはシーンの他のビューが生成されうる元となる基準画像になるために必要な未知の画像メタデータ値を決定することによって、任意の画像を基準画像に変換するために用いられてよい。さらに、処理800は、精度が重要であるタイプのメタデータ(深度値および面法線ベクトル値など)を決定または予測するために特に有用である。
【0083】
上述のように、開示されている技術のほとんどは、既存参照画像またはビューならびに対応するメタデータの広範なデータセットを利用可能にして、それらを利用することに基づいている。したがって、多くの場合に、1または複数のオブジェクトまたはアセットの周りの異なるカメラパースペクティブを有する画像またはビューのシーケンスが、レンダリングまたは生成され、データベースまたはリポジトリに格納される。例えば、オブジェクトまたはアセットの周りの360°に及びまたは網羅する角度を含む360度回転がレンダリングまたは生成されてよい。かかるデータセットはオフラインで構築されてよいが、厳密な物理ベースレンダリング技術は、リソース消費の観点でコストの掛かる動作であり、かなりの処理能力および時間を必要とする。より効率的にオブジェクトまたはアセットの画像またはビューを生成またはレンダリングするためのいくつかの技術について、すでに説明した。より効率的にオブジェクトまたはアセットの画像またはビューをレンダリングまたは生成するためのさらなる技術について、次で詳細に説明する。
【0084】
実質的な冗長性が、特定のタイプのデータまたはデータセットに関して存在する。例えば、オブジェクトまたはアセットの周りの一回転を含むセットの画像またはビューの中、特に、小さいカメラアングルまたは回転だけ異なる近くの画像またはビューの間に、多くの冗長性が存在する。同様に、アニメーションまたはビデオシーケンスのフレームの中、特に、隣接または近くのフレームの間に、冗長性が存在する。別の例として、同じテクスチャを含む画像またはビューの中に、多くの冗長性が存在する。したがって、より一般的には、特定の特徴空間において、多くの画像が、同じまたは非常に類似した特徴を示し、有意な特徴空間相関を共有する。例えば、上述の例において、実質的に同様のテクスチャ特徴が、多くの画像またはビューによって共有されてよい。大量の既存のオブジェクトまたはアセットのデータセットの利用可能性を前提とすると、新しい画像またはビュー(例えば、異なるパースペクティブ、もしくは、異なるオブジェクトまたはアセットのタイプまたは形状のもの)をレンダリングまたは生成する際に、かかる既存の画像に関する冗長性を利用できる。さらに、ゆっくりと変化する画像またはフレームのシーケンスにおける固有の冗長性が、同様に利用されてよい。機械学習は、比較的明確に定義され制約されている特徴空間を含む大きいデータセットにおいて特徴を学習および検出するのに特に適切である。したがって、いくつかの実施形態において、機械学習フレームワーク(ニューラルネットワークなど)が、他の(既存の)画像またはビューに関する特徴の冗長性を利用することに基づいて、新しい画像またはビューをより効率的にレンダリングまたは生成するために用いられる。一般に、任意の適切なニューラルネットワーク構成が、開示されている技術に関して利用されてよい。
【0085】
図9は、画像またはフレームを生成するための処理の一実施形態を示すハイレベルフローチャートである。いくつかの実施形態において、処理900は、入力画像をアップスケーリングするための超解像処理を含む。以下にさらに説明するように、処理900は、特に写実的な高品質または高精細度(HD)画像を生成する場合に、厳密な物理ベースレンダリングおよびその他の既存の技術と比較して実質的に少ないリソース消費をもたらすように、出力画像をより効率的に生成するために用いられてよい。
【0086】
処理900は、特徴空間が識別または規定される工程902において始まる。工程902において識別された特徴空間は、1または複数の特徴(所定のテクスチャの特徴など)を含んでよい。いくつかの実施形態において、特徴空間は、ニューラルネットワークベースの機械学習フレームワークを用いて、工程902において識別される。いくつかのかかる場合に、例えば、ニューラルネットワークが、所定の画像のセットに関して知られ明確に定義されている制約された特徴空間を含むその画像のセットに固有の1または複数の特徴を決定または検出するために用いられる。すなわち、画像のセットは、特徴空間を規定するための事前分布として振る舞う。画像のセットは、例えば、厳密にレンダリングまたは生成された画像(例えば、高またはフル解像度または精細度の画像)、ならびに/もしくは、以前にレンダリングまたは生成された既存の画像またはその一部(例えば、既存の画像のパッチ)を含んでよい。
【0087】
工程904では、入力画像の特徴が検出される。より具体的には、入力画像は、入力画像の特徴空間データ値を決定するために、ニューラルネットワークによって処理される。工程904の入力画像は、工程902の画像セットと比較して計算の複雑性またはコストの低い技術を用いてレンダリングまたは生成された低品質または低解像度または小さいサイズの画像を含む。すなわち、工程904の入力画像は、工程902の画像セットを構成する画像と比較して、ノイズが多く(例えば、収束に十分なサンプルを用いないことに起因する)、および/または、品質の劣る(例えば、より低い解像度および/またはサイズの)画像を含む。
【0088】
工程906では、工程904において入力画像から検出された特徴を、工程902において識別された特徴空間内の対応する(例えば、最も近くまたは最も類似した一致の)特徴で置き換えることによって、出力画像が生成される。より具体的には、工程902において識別された特徴空間に関して、工程904において入力画像から検出された特徴について、最近傍探索が実行され、工程904において入力画像から検出された特徴が、工程902において識別された特徴空間からの対応する最も近い一致の特徴で置き換えられる。上述した特徴の検出、最近傍探索、および、特徴の置き換えは、特徴空間内で行われる。したがって、いくつかの実施形態において、工程906では、結果としての出力画像を生成するために、特徴空間から画像空間に戻すように復号または変換する工程を含む。特徴空間の操作は、画像空間における一貫した対応するピクセルレベル変換につながる。
【0089】
一般に、処理900は、他の既存画像から利用可能な冗長性および情報を利用することによって、画像復元またはアップスケーリングまたは修正のための効率的なフレームワークを提供する。例えば、処理900は、入力画像をクリーンにするために(すなわち、ノイズの多い入力画像を比較的ノイズのない出力画像に変換するために)用いられてよい。同様に、処理900は、入力画像の品質を改善するために(すなわち、例えば、解像度、サイズ、ビット深度などの点で、比較的低品質の入力画像を高品質の出力画像に変換するために)用いられてよい。より具体的には、処理900は、画像セットの特徴を、画像セットと特徴空間における冗長性を共有する劣ったまたは劣化した入力画像に付与することを容易にする。処理900は、本質的に、最近傍探索など何らかの他の比較的単純な距離計算と併用される低計算コストのルックアップ動作を含むので、特に厳密な物理ベースレンダリング技術と比較して、画像レンダリング空間において実質的な効率性を提供する。したがって、処理900は、より高速および高効率で画像またはフレームを生成するための画像レンダリングまたは生成パイプラインにおいて特に有用である。例えば、計算の複雑性の低い物理ベースレンダリングまたは他の技術が、低品質または低解像度または小さいサイズの画像をレンダリングまたは生成するために用いられてよく、その後、処理900が、その画像を高品質またはフル解像度または大きいサイズのバージョンに変換するために用いられてよい。さらに、処理900は、同様に、所定の物理環境のシミュレートまたはモデル化されたバージョンに制約されたトレーニングデータセットに基づいて、所定の物理環境でキャプチャされた写真を含む入力画像を復元またはアップスケールまたはその他の方法で修正するために用いられてよい。すなわち、処理900は、
図7および
図8に関して詳細に上述した機械学習ベースのアーキテクチャに関して用いられてよい。
【0090】
処理900は、多くの具体的な利用例に関して利用され、利用例に適合されてよい。いくつかの実施形態において、処理900は、ビデオまたはアニメーションシーケンスのオブジェクトまたはアセットまたはフレームの周りの(360°)回転を含む参照ビューなど、一連の画像を生成するために用いられる。かかる場合に、実質的な冗長性が、シーケンスの近隣の画像またはフレームの間に存在し、冗長性は、処理900によって利用されうる。一例において、シーケンスのいくつかの画像は、独立フレーム(Iフレーム)として分類され、高またはフル精細度または解像度またはサイズでレンダリングされる。Iフレームに分類されないシーケンスのすべての画像は、アップスケーリングのために他のフレーム(すなわち、Iフレーム)に依存するため、低品質または解像度もしくは小さいサイズでレンダリングされ、従属フレーム(Dフレーム)として分類される。処理900に関して、Iフレームは、工程902の画像のセットに対応し、各Dフレームは、工程904の入力画像に対応する。この例において、シーケンスのために選択されるIフレームの数は、速度と品質との間の所望のトレードオフに依存してよく、より良い画質を得るためには、より多くのIフレームが選択される。いくつかの場合に、所定の間隔を規定する一定のルールが、Iフレームを指定するために用いられてよく(例えば、シーケンス内の1つ置きまたは3つ置きの画像がIフレームになる)、または、特定の閾値が、シーケンス内のIフレームを識別して選択するために設定されてよい。あるいは、適応的な技術が、Dフレームと既存のIフレームとの間の相関が弱くなるに伴って、新しいIフレームを選択するために用いられてもよい。いくつかの実施形態において、処理900は、所定のテクスチャを含む画像を生成するために用いられる。処理900に関して、画像の低品質または低解像度または小さいサイズのバージョンは、工程904の入力画像を含み、所定のテクスチャの画像またはパッチのセットは、工程902の画像のセットを含む。より具体的には、この場合、所定のテクスチャは、同じテクスチャを含む既存の画像から、既知であり、明確に定義されている。この実施形態において、テクスチャパッチは、所定のテクスチャを有する1または複数の既存のレンダまたはアセットから生成され、生成されたパッチは、適切な方法で(例えば、より多様な特徴コンテンツを有するパッチを見つけて選択するために特徴空間内でクラスタリングを行うことで)サブサンプリングされ、次いで、格納されたパッチのセットが事前分布(すなわち、工程902の画像のセット)として利用されうるように格納される。2つの上述の例のいずれかに由来する工程906の出力画像は、工程904の入力画像の高品質または高解像度または大きいサイズまたはノイズ除去されたバージョンを含む。いくつかの具体例が記載されているが、処理900は、一般に、十分な冗長性が存在する任意の適用可能なアプリケーションに適合されてよい。
【0091】
いくつかの実施形態において、1または複数の機械学習ベースの技術が、オブジェクトまたはアセットの任意または新規のビューまたはパースペクティブの生成に用いられてよい。いくつかのかかる場合に、関連付けられている機械学習ベースのフレームワークは、既知かつ明確に定義された特徴空間に制約される。例えば、かかる機械学習ベースのフレームワークによって処理された画像は、所定の環境および/または1以上の既知のテクスチャに制約されてよい。
図7および
図8に関して詳述したように、例えば、トレーニングデータセットは、物理的アセットの入力画像(すなわち、写真)がキャプチャされる実際の物理環境をシミュレートする所定のモデル環境に制約されてよい。かかる場合に、入力画像自体は、任意の画像メタデータ値または少なくとも非常に正確な画像メタデータ値と関連付けられていなくてよい。しかしながら、1または複数のニューラルネットワークが、正確なメタデータ値を含む合成トレーニングデータセットからシミュレーションでメタデータ値を学習するために利用され、その後、関連メタデータ値を予測または決定するため、および/または、開示されている任意ビュー生成フレームワークに記載されているように他のビューまたは画像を生成するために後で利用できる対応する参照画像またはビューを生成するために、実際のカメラでキャプチャされた入力画像(すなわち、写真)に適用されてよい。
【0092】
図10は、オブジェクトまたはアセットの任意または新規のビューまたはパースペクティブを生成するための処理の一実施形態を示すハイレベルフローチャートである。以下でさらに詳述するように、処理1000は、既知の物理環境でキャプチャされたオブジェクトまたはアセットの画像または写真を、そのオブジェクトまたはアセットの任意ビューまたはパースペクティブに変換するために用いられてよい。処理1000の工程の多くは、機械学習ベースのフレームワーク(例えば、物理環境をシミュレートする所定のモデル環境に制約されているトレーニングデータセットから学習する1または複数の関連ニューラルネットワーク)によって容易にされる。特徴空間は、さらに、広範なトレーニングデータセットが存在する既知のテクスチャに制約されてよい。
【0093】
処理1000は、オブジェクトまたはアセットの入力画像が受信される工程1002において始まる。いくつかの実施形態において、入力画像は、オブジェクトまたはアセットを撮影するための所定の撮像装置(例えば、カメラリグ)など、既知の物理環境でキャプチャされたオブジェクトまたはアセットの写真を含む。いくつかの実施形態において、入力画像は、複数の画像(例えば、異なるカメラまたはカメラアングルからの画像)を含む。例えば、入力画像は、所定の撮像装置またはカメラリグを備える左右のカメラで撮影された左右の画像を含むステレオペアを含んでよい。
【0094】
工程1004では、入力画像の被写体(すなわち、オブジェクトまたはアセット)のみが残るように、工程1002において受信された入力画像の背景が除去される。一般に、背景除去のための任意の1または複数の適切な画像処理技術が、工程1004において用いられてよい。いくつかの実施形態において、背景除去は、画像分割によって容易にされる。いくつかのかかる場合に、ニューラルネットワークが、画像分割を容易にするために用いられてよい。例えば、トレーニング中に、畳み込みニューラルネットワークまたはその他の適切なニューラルネットワークが、例えば、より低い解像度(128×128または256×256で、画像の特徴(エッジ、コーナー、形状、サイズなど)を学習し、それらの学習された特徴は、アップスケールされた分割マスクを作成するために組み合わせられてよい。
【0095】
工程1006では、入力画像におけるオブジェクトまたはアセットの深度値が決定される。深度値は、ピクセルごとに工程1006において決定される。工程1006は、深度推定値を決定する工程、および/または、決定された深度推定値を微調整する工程を含んでよい。例えば、深度推定値は、入力画像を構成する左右のステレオペアから決定され、および/または、ニューラルネットワークを用いて予測されてよい。決定された深度推定値は、例えば、ニューラルネットワークおよび/またはその他の技術を用いて、後にクリーニングまたは微調整されてよい。
【0096】
工程1008では、入力画像のパースペクティブとは異なるオブジェクトまたはアセットの所定の任意パースペクティブを含む出力画像が、工程1006において決定された深度値に基づいてパースペクティブ変換を実行することによって生成される。一般に、所定の任意パースペクティブは、オブジェクトまたはアセットの任意の所望または要求されたカメラビューを含んでよい。例えば、所定の任意パースペクティブは、オブジェクトまたはアセットの(例えば、トップダウンまたは鳥瞰の)正投影ビューを含んでよい。工程1008では、パースペクティブ変換推定値を決定する工程、および/または、決定されたパースペクティブ変換推定値を微調整する工程を含んでよい。例えば、パースペクティブ変換推定値は、数学的変換から直接的に決定されてもよく、および/または、ニューラルネットワーク(敵対的生成ネットワーク(GAN)など)を用いて間接的に予測されてよい。決定されたパースペクティブ変換推定値は、その後、例えば、ニューラルネットワーク(
図9に関して説明したような復元ネットワーク、または、GANなど)を用いて、クリーニングまたは微調整されてよい。いくつかの場合に、決定されたパースペクティブ変換推定値は、ノイズ除去、修復などの伝統的な技術を用いて、代替的または追加的に微調整されてよい。
【0097】
その後、処理1000は終了する。処理1000に関して記載したように、ニューラルネットワークベース技術の複数のステージおよび/または層が、オブジェクトまたはアセットの任意ビューまたはパースペクティブを生成するために用いられてよい。
【0098】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示されている実施形態は、例示であり、限定するものではない。
[適用例1]方法であって、
ニューラルネットワークを用いて、1セットの画像に関連付けられている特徴空間を識別し、
前記ニューラルネットワークを用いて、入力画像の1または複数の特徴を検出し、
前記入力画像の前記検出された特徴の少なくとも一部を、前記識別された特徴空間内の対応する最も近い一致の特徴で置き換えることによって、出力画像を生成すること、
を備える、方法。
[適用例2]適用例1に記載の方法であって、前記1セットの画像および前記入力画像は、特徴空間冗長性を共有する、方法。
[適用例3]適用例1に記載の方法であって、前記特徴空間は、前記1セットの画像に関して制約され、明確に定義されている、方法。
[適用例4]適用例1に記載の方法であって、前記特徴空間は、テクスチャにおける特徴を含む、方法。
[適用例5]適用例1に記載の方法であって、前記1セットの画像は、前記ニューラルネットワークのための事前分布を含む、方法。
[適用例6]適用例1に記載の方法であって、前記1セットの画像および前記出力画像は、画像またはフレームのシーケンスを含む、方法。
[適用例7]適用例1に記載の方法であって、前記1セットの画像は、所定のテクスチャのパッチを含む、方法。
[適用例8]適用例1に記載の方法であって、前記入力画像は、物理環境内でキャプチャされた写真を含み、前記1セットの画像は、前記物理環境のシミュレートまたはモデル化されたバージョンに制約されたトレーニングデータセットを含む、方法。
[適用例9]適用例1に記載の方法であって、前記1セットの画像は、以前にレンダリングまたは生成された既存の画像を含む、方法。
[適用例10]適用例1に記載の方法であって、前記1セットの画像は、前記入力画像に比べて高い品質の画像を含む、方法。
[適用例11]適用例10に記載の方法であって、前記出力画像の品質が、前記1セットの画像の品質と一致する、方法。
[適用例12]適用例10に記載の方法であって、品質は、解像度、サイズ、および、ビット深度、の内の1または複数を含む、方法。
[適用例13]適用例1に記載の方法であって、前記入力画像の前記検出された特徴の少なくとも一部を、前記識別された特徴空間内の対応する最も近い一致の特徴で置き換えることは、最近傍探索を実行することを含む、方法。
[適用例14]適用例1に記載の方法であって、前記出力画像は、前記入力画像の復元されたバージョンを含む、方法。
[適用例15]適用例1に記載の方法であって、前記出力画像は、前記入力画像のアップスケールされたバージョンを含む、方法。
[適用例16]適用例1に記載の方法であって、前記出力画像は、前記入力画像のクリーニングされたバージョンを含む、方法。
[適用例17]適用例1に記載の方法であって、前記出力画像は、前記入力画像のノイズ除去されたバージョンを含む、方法。
[適用例18]適用例1に記載の方法であって、さらに、背景を除去すること、深度推定値を予測すること、深度推定値を微調整すること、パースペクティブ変換推定値を予測すること、および、パースペクティブ変換推定値を微調整すること、の内の1または複数のために、前記ニューラルネットワークを利用することを備える、方法。
[適用例19]システムであって、
プロセッサであって、
ニューラルネットワークを用いて、1セットの画像に関連付けられている特徴空間を識別し、
前記ニューラルネットワークを用いて、入力画像の1または複数の特徴を検出し、
前記入力画像の前記検出された特徴の少なくとも一部を、前記識別された特徴空間内の対応する最も近い一致の特徴で置き換えることによって、出力画像を生成するよう構成されている、プロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を提供するよう構成されているメモリと、
を備える、システム。
[適用例20]コンピュータプログラム製品であって、持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
ニューラルネットワークを用いて、1セットの画像に関連付けられている特徴空間を識別するためのコンピュータ命令と、
前記ニューラルネットワークを用いて、入力画像の1または複数の特徴を検出するためのコンピュータ命令と、
前記入力画像の前記検出された特徴の少なくとも一部を、前記識別された特徴空間内の対応する最も近い一致の特徴で置き換えることによって、出力画像を生成するためのコンピュータ命令と、
を備える、コンピュータプログラム製品。