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

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

▶ レイア、インコーポレイテッドの特許一覧

特表2024-5084573Dモデリングを強化するために一時的なテクスチャアプリケーションを提供する方法及びシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-27
(54)【発明の名称】3Dモデリングを強化するために一時的なテクスチャアプリケーションを提供する方法及びシステム
(51)【国際特許分類】
   G06T 15/20 20110101AFI20240219BHJP
   G06T 19/00 20110101ALI20240219BHJP
   G06T 7/70 20170101ALI20240219BHJP
【FI】
G06T15/20 500
G06T19/00 A
G06T7/70 Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023551970
(86)(22)【出願日】2021-02-28
(85)【翻訳文提出日】2023-10-24
(86)【国際出願番号】 US2021020165
(87)【国際公開番号】W WO2022182369
(87)【国際公開日】2022-09-01
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SWIFT
(71)【出願人】
【識別番号】514274546
【氏名又は名称】レイア、インコーポレイテッド
【氏名又は名称原語表記】LEIA INC.
(74)【代理人】
【識別番号】100092783
【弁理士】
【氏名又は名称】小林 浩
(74)【代理人】
【識別番号】100120134
【弁理士】
【氏名又は名称】大森 規雄
(74)【代理人】
【識別番号】100093676
【弁理士】
【氏名又は名称】小林 純子
(74)【代理人】
【識別番号】100126354
【弁理士】
【氏名又は名称】藤田 尚
(72)【発明者】
【氏名】キム,チェホン
(72)【発明者】
【氏名】ダルクィスト,ニコラス
【テーマコード(参考)】
5B050
5B080
5L096
【Fターム(参考)】
5B050AA03
5B050BA09
5B050BA13
5B050CA07
5B050CA08
5B050DA07
5B050EA04
5B050EA26
5B050FA02
5B050FA05
5B050FA16
5B080AA13
5B080AA19
5B080BA02
5B080FA02
5B080GA11
5B080GA22
5L096FA67
5L096FA69
(57)【要約】
システム及び方法は、第1の画像セットの三次元(3D)モデルを生成することに関する。第1の画像セット(例えば、入力画像セット)は、3Dモデリングを受けるオブジェクトの様々な視野角に対応する。体積密度関数は、第1の画像セットから生成される。第2の画像セット(例えば、テクスチャあり画像セット)は、体積密度関数及び所定の色関数から生成される。第1の画像セットを第2の画像セットとブレンドして、第3の画像セットを生成する(例えば、一時的なテクスチャを有する画像セット)。3Dモデルを生成するために、第3の画像セットから3D表面モデルが生成される。加えて、3D表面モデルのテクスチャマップが、第1の画像セットから生成される。コンピューティングシステムは、表示のために3D表面モデル及びテクスチャマップをレンダリングするように構成される。
【特許請求の範囲】
【請求項1】
三次元(3D)モデルを提供するコンピュータ実装方法であって、
第1の画像セットから体積密度関数を生成するステップであって、前記第1の画像セットがオブジェクトの様々な視野角に対応する、ステップと、
前記体積密度関数及び所定の色関数から第2の画像セットを生成するステップと、
第3の画像セットを生成するために、前記第1の画像セットを前記第2の画像セットとブレンドするステップと、
前記第3の画像セットから3D表面モデルを生成するステップと、
前記第1の画像セットから前記3D表面モデルのテクスチャマップを生成するステップと
を含み、前記3D表面モデル及び前記テクスチャマップは、表示のためにレンダリングされるように構成される、方法。
【請求項2】
前記体積密度関数は、入力カメラポーズに対応する体積密度値のセットを生成する、請求項1に記載の方法。
【請求項3】
前記体積密度関数は、ニューラル放射輝度場モデルを含むニューラルネットワークモデルである、請求項2に記載の方法。
【請求項4】
ブレンドするステップは、
画素が前記第1の画像セットのテクスチャなし領域の一部であるかどうかを指し示すブレンド重みを割り当てるステップと、
前記ブレンド重みに従って前記第1の画像セットを前記第2の画像とブレンドするステップと
を含む、請求項1に記載の方法。
【請求項5】
前記テクスチャなし領域は、閾値画素値分散内の画素を含む、請求項4に記載の方法。
【請求項6】
前記第1の画像セットの複数のカメラポーズを識別するステップと、
前記カメラポーズから前記体積密度関数を生成するステップと
をさらに含む、請求項1に記載の方法。
【請求項7】
前記第3の画像セットの前記3D表面モデルを生成するステップは、
前記第3の画像セットの複数のカメラポーズを識別するステップと、
前記第3の画像セットの前記複数のカメラポーズを使用して前記第3の画像セット内の複数の3D点を識別するステップと、
前記3D点に従って前記オブジェクトの表面を再構成するステップと
を含む、請求項1に記載の方法。
【請求項8】
表示のために前記3D表面モデル及び前記テクスチャマップをレンダリングするステップは、前記オブジェクトのビューのセットをマルチビュー画像として同時にレンダリングするステップを含む、請求項1に記載の方法。
【請求項9】
三次元(3D)モデル生成システムであって、
プロセッサと、
実行されると、前記プロセッサに、
オブジェクトの様々な視野角に対応する第1の画像セットから体積密度モデルを生成することと、
体積密度モデルから第2の画像セットを生成することであって、擬似ランダムテクスチャが適用されて前記第2の画像セットが生成される、生成することと、
第3の画像セットを生成するために、前記第1の画像セットを前記第2の画像セットとブレンドすることと、
前記第3の画像セットから3D表面モデルを生成することと、
前記第1の画像セットから前記3D表面モデルのテクスチャマップを生成することと
を行わせる複数の命令を記憶するメモリと
を備え、コンピューティングシステムが、表示のために前記3D表面モデル及び前記テクスチャマップをレンダリングするように構成される、システム。
【請求項10】
前記体積密度モデルは、入力カメラポーズに対応する体積密度値のセットを決定するように構成された関数を含む、請求項9に記載のシステム。
【請求項11】
前記体積密度モデルは、ニューラル放射輝度場モデルを含む、請求項9に記載のシステム。
【請求項12】
前記メモリは、実行されると、前記プロセッサに、
領域がテクスチャなし領域であるかどうかを決定するために前記第1の画像セットに対してコーナー検出動作を適用することによって、前記第1の画像セットのテクスチャなし領域を識別することと、
前記テクスチャなし領域の識別に応答することによって、第3の画像セットを生成するために前記第1の画像セットを前記第2の画像セットとブレンドすることと
をさらに行わせる前記複数の命令を記憶する、請求項9に記載のシステム。
【請求項13】
前記テクスチャなし領域は、閾値画素値分散内の画素を含む、請求項12に記載のシステム。
【請求項14】
前記メモリは、実行されると、
前記第1の画像セットの複数のカメラポーズを識別することと、
前記カメラポーズに従って前記第1の画像セットから前記体積密度モデルを生成することと
をさらに行わせる前記複数の命令を記憶する、請求項9に記載のシステム。
【請求項15】
前記メモリは、実行されると、前記プロセッサに、
前記第3の画像セットの複数のカメラポーズを識別することと、
前記第3の画像セットの前記複数のカメラポーズを使用して前記第3の画像セット内の複数の3D点を識別することと、
前記3D表面モデルを生成するために前記3D点に従って前記オブジェクトの表面を再構成することと
をさらに行わせる前記複数の命令を記憶する、請求項9に記載のシステム。
【請求項16】
前記3D表面モデル及び前記テクスチャマップは、前記オブジェクトのビューのセットをマルチビュー画像として同時にレンダリングすることによって表示のためにレンダリングされるように構成される、請求項9に記載のシステム。
【請求項17】
コンピューティングシステムのプロセッサによって実行されると第1の画像セットの三次元(3D)モデルを生成するための動作を実施する、実行可能命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記動作は、
オブジェクトの様々な視野角に対応する前記第1の画像セットからニューラル放射照度場(NeRF)モデルを生成することと、
前記NeRFモデル及び所定の色関数から第2の画像セットを生成することと、
第3の画像セットを生成するために、前記第1の画像セットを前記第2の画像セットとブレンドすることと、
前記第3の画像セットから3D表面モデルを生成することと、
前記第1の画像セットから前記3D表面モデルのテクスチャマップを生成することと
を含み、前記コンピューティングシステムは、表示のために前記3D表面モデル及び前記テクスチャマップをレンダリングするように構成される、非一時的コンピュータ可読記憶媒体。
【請求項18】
前記動作は、
前記第1の画像セットのテクスチャなし表面の領域に対応するブレンド重みを割り当てることと、
第3の画像セットを生成するために、前記ブレンド重みに従って前記第1の画像セットを前記第2の画像セットとブレンドすることと
をさらに含む、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
テクスチャなし表面の前記領域は、閾値画素値分散内の画素を含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記3D表面モデル及び前記テクスチャマップは、前記オブジェクトのビューのセットをマルチビュー画像として同時にレンダリングすることによって表示のためにレンダリングされるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
N/A
【0002】
連邦政府による資金提供を受けた研究開発の記載
N/A
【背景技術】
【0003】
コンピュータグラフィックは、ディスプレイ上で1つ又はそれ以上の画像としてユーザにレンダリングされる。これらの画像は、特定のシーンを表す三次元(3D)モデルから生成することができる。3Dモデルは、形状、サイズ、テクスチャ、及び他の視覚パラメータに関して1つ又はそれ以上のオブジェクトを数学的に定義することができる。加えて、3Dモデルは、様々なオブジェクトが3Dモデル内の他のオブジェクトに対してどのように空間的に配置されるかを定義することができる。3Dモデルは、種々のデータ構造又はファイルとしてフォーマットして、メモリにロードすることができる。生成されると、コンピューティングデバイスは、表示のために3Dモデルの1つ又はそれ以上の画像をレンダリングすることができる。画像は、3Dモデルに対する特定の視野角、ズーム、及び/又は位置によって特徴付けることができる。3Dモデルを生成及びフォーマットするために使用される多様な技術が存在し得る。
【発明の概要】
【0004】
本明細書に記載された原理による例及び実施形態の種々の特徴は、添付の図面と共に以下の発明を実施するための形態を参照してより容易に理解され得、同様の参照番号は同様の構造要素を指定する。
【図面の簡単な説明】
【0005】
図1】本明細書に記載の原理と一致する実施形態による、物理的オブジェクトを三次元(3D)モデルに変換するプロセスを示す。
【0006】
図2A-B】本明細書に記載の原理と一致する実施形態による、テクスチャなし領域を有するオブジェクトをモデリングするための失敗事例を示す。
【0007】
図3A】本明細書に記載の原理と一致する実施形態による3Dモデルを生成する例を示す。
図3B】本明細書に記載の原理と一致する実施形態による3Dモデルを生成する例を示す。
【0008】
図4】本明細書に記載の原理と一致する実施形態による一時的なテクスチャを適用する例を示す。
【0009】
図5A-B】本明細書に記載の原理と一致する実施形態による、一時的なテクスチャの使用によって3Dモデルを改善する例を示す。
【0010】
図6】本明細書に記載の原理と一致する実施形態による、3Dモデルを生成するシステム及び方法のフローチャートを示す。
【0011】
図7】本明細書に記載の原理と一致する実施形態による、表示のために3Dモデルを生成及びレンダリングするコンピューティングデバイスの例示的な図を描写する概略ブロック図である。
【発明を実施するための形態】
【0012】
特定の例及び実施形態は、上記で参照された図に示された特徴に加えて、及びその代わりの一方である他の特徴を有する。これら及び他の特徴は、上記で参照された図を参照して以下に詳述される。
【0013】
本明細書に記載の原理による例及び実施形態は、入力画像セットから生成された三次元(3D)モデルを改善するための技術を提供する。特に、実施形態は、テクスチャがない領域(例えば、色の均一性が高く、光沢性を有する表面)を有するオブジェクトの3Dモデルを作成するためのより信頼性の高い方法を提供することに関する。入力画像がそのようなテクスチャなし領域を有する場合、様々な視野角にわたってそれらの領域の点を追跡し、相関付けることは困難である場合がある。これは、より低い品質のキーポイントデータをもたらし、それによって不完全な又は歪んだ3D再構成結果が作成される。この問題に対処するために、実施形態は、3Dモデルの表面を計算するために、これらのテクスチャなし領域に一時的なテクスチャを適用することに関する。一時的なテクスチャは、様々なビューにわたって共通の点を追跡する能力を生み出すので、モデリングされた表面は改善される。加えて、改善された表面モデルからテクスチャマップを作成する際には、元の画像が使用される。元の画像の再利用は、テクスチャマップを生成する際に一時的なテクスチャを除外する。
【0014】
いくつかの実施形態では、一時的なテクスチャを適用する前に、予め訓練されたニューラルネットワークを使用して、体積密度関数でオブジェクトのジオメトリを符号化することができる。これにより、完全な表面モデルを展開する前、及び再構成パイプライン全体を実行する前に、一時的なテクスチャをオブジェクト表面に適用することができる。いくつかの実施形態では、ニューラル放射輝度場(NeRF)モデルを生成して、3Dモデルの体積密度特性を定義する体積密度モデルを作成する。所定の色関数が、擬似ランダムテクスチャに適用されて、入力画像セットと同じ体積密度を有するテクスチャあり画像を作成する。テクスチャなし領域にのみテクスチャを適用するように入力画像セットをテクスチャあり画像とブレンドすることによって、一時的なテクスチャが適用される。
【0015】
図1は、本明細書に記載の原理と一致する、物理的オブジェクトを3Dモデルに変換するプロセスを示す。図1は、画像取込プロセス103を描写する。画像取込プロセス103は、スタジオ又は任意の他の物理的環境で行うことができる。目標は、1つ又はそれ以上のカメラ109を使用してオブジェクト106(複数可)を視覚的に取り込むことである。1つ又はそれ以上のカメラ109は、様々な視野角からオブジェクト106の画像を取り込むことができる。場合によっては、異なるビューは、少なくとも部分的に重なり合い、それによってオブジェクト106の異なるファセットを取り込むことができる。したがって、画像取込プロセス103は、物理的空間を占めるオブジェクト106を画像セット112に変換する。画像セット112は、3Dモデリングプロセス115を使用して3Dモデルを生成するための入力として使用されるので、入力画像セットと呼ばれる場合がある。画像セット112は、種々の視野角でオブジェクト106を視覚的に表す複数の画像を含むことができる。画像セット112は、フォーマットされ、種々の画像形式、例えばビットマップ形式又はラスタ形式などでメモリに記憶することができる。
【0016】
3Dモデリングプロセス115は、画像セット112を3Dモデル114に変換するコンピュータ実装プロセスである。3Dモデリングプロセス115は、プロセッサによって実行可能なソフトウェアプログラム、ルーチン、又はモジュールとして実装されてもよい。3Dモデリングプロセス115は、メモリにアクセスして画像セット112を検索し、対応する3Dモデル114を生成することができる。3Dモデリングプロセス115は、3Dモデル114をファイル又は他のデータフォーマットとしてメモリにさらに記憶する。
【0017】
3Dモデリングプロセス115は、画像セット112内の画像の少なくともサブセットに共通のキーポイントを識別することができる。本明細書では、「キーポイント」は、画像セット内の2つ又はそれ以上の画像に現れるオブジェクト106の点として定義される。例えば、オブジェクト106の特定のコーナーが、画像セット112内のいくつかの画像で取り込まれてもよい。この特定のコーナーは、様々な視野角で取り込まれるため、画像セット112内において種々の位置を有することができる。3Dモデリングプロセス115は、オブジェクト106を3Dモデル114として再構成するために、特定のコーナーを多くのキーポイントのうちの1つとして識別することができる。
【0018】
3Dモデル114は、オブジェクト106を表す1つ又はそれ以上のコンピュータファイル又はデータフォーマットとして記憶することができる。3Dモデル114は、3D表面モデル121及びテクスチャマップ124を含むことができる。3D表面モデル121は、オブジェクト106の表面ジオメトリを表すファイル(又はファイルの一部)であってもよい。結果として、表面ジオメトリは、オブジェクト106の種々の特徴の輪郭、形状、及び空間的関係を符号化する。3D表面モデル121は、オブジェクト106の表面をモデリングするメッシュを含んでもよい。メッシュは、三次元の座標を有する種々の三角形(又は他の多角形)によって形成することができる。これらの多角形は、オブジェクト106の表面に近接する重なり合わない幾何学的形状としてテッセレーションすることができる。他の実施形態では、3D表面モデル121は、より小さい3D形状、例えば球、立方体、円柱などの組み合わせを使用して構築されてもよい。
【0019】
テクスチャマップ124は、3D表面モジュールによって指定された表面ジオメトリによって定義された種々の点にマッピングされたテクスチャ情報を収容する。テクスチャマップは、3Dモデル114の3D表面モデル121に適用される色、シェーディング、及びグラフィックパターンを表すことができる。結果として、テクスチャマップ124は、オブジェクト106の視覚的外観を定義する。3D表面モデル121の各表面は、1つ又はそれ以上の点によって定義され得る領域である。テクスチャマップ124は、3D表面上にマッピングされた座標を有する2D画像であってもよい。3D表面モデル121及びテクスチャマップ124に加えて、3Dモデル114は、他の情報(図示せず)を含んでもよい。例えば、3Dモデル114は、情報、例えばシーン情報を含んでもよい。シーン情報は、光源、影、グレアなどに関する情報を含むことができる。
【0020】
3Dモデル114は、多様な目的のために生成することができる。少なくとも、3Dモデル114は、観察者が3Dモデリングされたオブジェクト106のグラフィカル表現を見ることができるように、表示のためにレンダリングされてもよい。アプリケーションは、多様な目的のために3Dモデル114を構築又は他の方法でロードすることができる。アプリケーションは、3Dモデルの仮想視点を表す仮想カメラを適用することによって、3Dモデル114の1つ又はそれ以上のビューを計算することができる。仮想カメラの位置、ズーム、フォーカス、又は向きは、ユーザ入力によって変更することができる。ユーザ入力は、クリック又はカーソルをドラッグすること、方向ボタンを押すこと、ユーザの物理的位置を3Dモデル114内の仮想位置に変換することなどによって、3Dモデル114を介してナビゲートすることを含むことができる。
【0021】
3Dモデルの観察者が決定されると、アプリケーションは、3Dモデル114を、ウィンドウを3Dモデル114に明らかにする1つ又はそれ以上の画像に変換することができる。上述したように、ウィンドウは、座標、視野角、ズーム、焦点距離、向きなどのセットを有する仮想カメラによって定義することができる。いくつかの実施形態では、レンダリングされた画像は1つ又はそれ以上のマルチビュー画像を含むことができる。マルチビュー画像は複数のビューを有し、各ビューは様々なビュー方向に対応する。ビューは、マルチビューディスプレイによる表示のために同時にレンダリングする(又は同時にレンダリングされるように知覚される)ことができる。この点において、マルチビュー画像は、3D画像又はライトフィールドフォーマット用に構成された画像であってもよい。画像はまた、2Dディスプレイ上にレンダリングされた2D画像であってもよい。
【0022】
図2A及び図2Bは、本明細書に記載の原理と一致する実施形態による、テクスチャなし領域を有するオブジェクトをモデリングするための失敗事例を示す。領域は、画素又は隣接画素のクラスタを含むことができる。図2Aは、いくつかのオブジェクトで構成されたシーン127を描写する。オブジェクトは、3D空間を占有するか、又は3Dオブジェクトとしてモデリングすることができるものを指す。シーンは、1つ又はそれ以上のオブジェクトを指す。この例では、シーン127は、種々のオブジェクト、例えばハンバーガ、フライドポテト、及び白色の皿を含む。3Dモデルは、例えば、図1に関して上述した動作を使用してシーン127から生成することができる。この点で、表面ジオメトリ及びテクスチャマップを生成して、フライドポテトに囲まれて白色の皿の上に置かれているものとして、ハンバーグをモデリングすることができる。
【0023】
このシーン127を3Dモデルとしてモデリングすることは、白色の皿の再構成に関して課題をもたらす可能性がある。白色の皿は、ほとんどがテクスチャなし領域で構成されている。「テクスチャなし」領域又は「テクスチャなし」表面は、色の変化がほとんど又は全くないような、高い色均一性又は一貫した光沢を有する画像の一部である。テクスチャなし領域は、様々な視野角にわたって同じように見える場合がある。ハンバーガ及びフライドポテトは、3Dモデリングプロセスが様々な角度にわたってキーポイントを識別することを可能にするのに十分なテクスチャを有する。例えば、ハンバーグ又はフライドポテトの色又はコーナーは、様々なビューにわたって追跡することができる。しかしながら、白色の皿は、テクスチャがないため、様々な視野角にわたって事実上同じように見える。白色の皿から十分なキーポイントデータを生成することが困難な場合がある。シーン127の3Dモデルでは、結果として、白色の皿が歪んだり変形したりする可能性がある。したがって、テクスチャなし領域は、例えば図2Aのシーン127のようなシーンをモデリングするときに失敗事例をもたらす可能性がある。
【0024】
図2Bは、オブジェクトを正確にモデリングする際に、テクスチャなし領域がどのように失敗を引き起こし得るかのより一般的な例を提供する。オブジェクトは、第1のビュー130a及び第2のビュー130bに取り込まれる。2つのビュー130a、130bは、オブジェクトの部分的に重なり合う異なる視野角を描写する。オブジェクトの第1の領域133はテクスチャがあり、オブジェクトの第2の領域135はテクスチャがない。例えば、第1の領域133は、色変動、パターン、カラーグラデーション、影、又は他の程度の画素値変動を含んでもよい。第2の領域135は、一般的に均一な色変動、パターンの欠如、影の欠如、又は他の均一な画素変動を含んでもよい。第1の領域133の場合、一致したキーポイント136のペアを識別することは比較的容易であり得る。例えば、第1の領域133のテクスチャは、重なり合う異なるビュー130a、130bで提示されるように、3Dモデリングプロセスがオブジェクト上の点を追跡することを可能にする。図2Bは、同じオブジェクトに対して異なるビューの異なる位置にある第1の領域の一致したキーポイント136を示す。第2の領域135について、テクスチャの欠如は、第1のビュー130aと第2のビュー130bとの間のキーポイントを検出することを困難にする。図2Bは、一致していないキーポイント139を示す。結果として、オブジェクトの第2の領域135の表面ジオメトリを正確に算出することが困難になる可能性がある。
【0025】
図3A及び図3Bは、本明細書に記載の原理と一致する実施形態による3Dモデルを生成する例を示す。図3Aは、一時的なテクスチャを有する画像を生成するためにオブジェクトの入力画像がどのように処理されるかを示す。一時的なテクスチャは、オブジェクトの様々なビューにわたるキーポイントデータを生成する能力を改善するために3D空間に存在する。図3Bは、一時的なテクスチャを有する画像から3Dモデルがどのように生成されるかを示す。具体的には、3Dモデルは、3D表面モデル及びテクスチャマップから構成される。一時的なテクスチャを有する画像は、より正確な3D表面モデルを提供するが、元の入力画像は、テクスチャマップを生成するために使用され、それにより、3Dモデルの最終レンダリングから一時的なテクスチャを除外する。
【0026】
図3A及び図3Bで説明した動作及びデータは、メモリに記憶され、プロセッサによって実行される命令のセットによって実施されてもよい。例えば、図3A及び図3Bに記載された機能は、ソフトウェアアプリケーション又は他のコンピュータ実行可能コードによって実装されてもよく、図3A及び図3Bに記載されたデータは、コンピュータメモリに記憶又はロードされてもよい。
【0027】
図3Aは、オブジェクトの様々な視野角に対応する画像のセットを形成する入力画像202を受信することから始まる。入力画像202は、図1に記載されたものと同様の画像セット112とすることができる。例えば、入力画像202は、オブジェクトの様々なビューを描写することができ、図1に記載されているような画像取込プロセス103から生成することができる。場合によっては、入力画像202は、第1の画像のセット又は第1の画像セットと呼ばれる場合がある。
【0028】
入力画像202は、画像位置合わせを実施する画像位置合わせモジュール205によって受信される。画像位置合わせは、画像ごとに座標を決定する処理である。例えば、画像位置合わせは、ビューの方向及び向きを推測するために入力画像202内の画像の相対位置を決定する。このデータは、カメラポーズ208として記録される。カメラポーズ208は、入力画像202の中の画像ごとに識別することができる。カメラポーズは、要素の行列であってもよく、要素は、画像の角度方向と共に画像のX、Y、及びZ座標を指し示す。言い換えれば、各カメラポーズ208は、画像に対応するビュー(例えば、カメラ)の位置及び向きを指し示す情報を含む。したがって、入力画像202内の各画像は、画像位置合わせモジュール205によって生成された対応するカメラポーズ208を有する。ここで、「カメラポーズ」は、オブジェクトの視点の位置及び向きを指し示す情報として定義される。
【0029】
次に、図3Aに示すのは、体積密度モデルを生成する体積密度モデル生成器211である。体積密度モデルは、入力座標及び向きのセットを体積密度値(例えば、不透明度、透過率、透明度など)及び色に変換する体積密度関数214とすることができる。例えば、体積密度関数214は、以下の式(1)に適合又は類似してもよい:
F(x,y,z,θ,φ)=(σ,color)(1)
ここで、Fは、入力である変数x、y、z、θ、及びφを受信し、変数σ及びcolorを出力する体積密度関数214である。変数xはx軸に沿った座標であり、変数yはy軸に沿った座標であり、変数zはz軸に沿った座標である。したがって、変数x、y、zは、特定の入力光線の位置の空間座標である。変数θは、x軸とy軸との間の光線の角度であり、変数φは、z軸とxy平面との間のビューの角度である。したがって、変数θ及びφは、3D空間における光線の方向を定義する。合わせて、これらの入力変数は、3D空間における光線の向きを数学的に定義する。出力σは、特定の点における不透明度(例えば、体積密度)である。これは、特定の入力光線に対する3D空間内の特定の画素の透過率であり得る。σが最大値(例えば、1)のときはベタ画素(solid pixel)が存在し、最小値(例えば、0)のときは画素が存在しない。最大値と最小値との間では、ある程度の透明度を有する画素が存在する。color変数は、入力光線に対する(1つの画素が存在する限りにおいて)画素の色を表す。color変数は、赤、緑、及び青の画素値を有するように、RBG(赤、緑青)フォーマットであってもよい。
【0030】
体積密度関数214は、所与の入力光線に対する画素の特性を出力するため、放射輝度場関数と呼ばれる場合がある。結果として、画像は、ビューウィンドウに対応する入力光線のセットを提供することによって体積密度関数214から構築することができる。ビューウィンドウは、オブジェクトに面するような3D空間内の平坦な長方形であってもよい。ビューウィンドウは、ウィンドウによって境界付けられる光線のセットとして定義されてもよい。光線は、x軸、y軸、及びz軸に沿って連続している間、同じ方向(例えば、変数θ及びφ)を有することができる。これは「レイマーチング」と呼ばれ、光線のセットが体積密度関数214に入力されて、対応するビューを構成する画素を構築する。したがって、体積密度モデルは、入力カメラポーズに対応する体積密度値の少なくとも1つのセットを生成するように構成された関数を含む。
【0031】
体積密度関数214は、ニューラルネットワークモデルを訓練することによって生成することができる。いくつかの実施形態では、ニューラルネットワークモデルは、ニューラル放射輝度場(NeRF)モデルを含む。本明細書では、「NeRFモデル」は、画像の比較的小さなセットを使用してビューの連続体にわたるオブジェクトの不透明度及び色を予測するように画像のセットで訓練されたニューラルネットワークを使用してシーンジオメトリを推定することによって生成される体積モデルとして定義される。最終的に、NeRFモデルは、訓練データ及び入力画像202を使用したニューラルネットワークを使用して生成される体積密度関数214を含む。
【0032】
具体的には、体積密度モデル生成器211(例えば、NeRFモデル生成器)は、入力画像202を対応するカメラポーズ208と共に受信し、体積密度関数214(例えば、上述の関数F)を生成する。例えば、体積密度モデル生成器211は、体積密度関数214がカメラポーズ208の間又はそれを超える視野角についての画素値(及び画像全体)を予測することができるように、公知のカメラポーズ208のない入力画像202から体積密度関数214を生成する。体積密度関数214は、入力カメラポーズ又は入力光線に基づいて、少なくとも不透明度値(複数可)又は他の何らかの体積密度値(複数可)を出力することができる。
【0033】
実施形態は、テクスチャあり画像220を生成するレンダラ217に関する。具体的には、レンダラ217は、体積密度関数214及び所定の色関数223からテクスチャあり画像220(例えば、第2の画像セット)を生成する。所定の色関数223を使用して、レンダラ217は、3Dモデリングされたオブジェクトの体積密度を維持しながら、擬似ランダムテクスチャを適用する。言い換えれば、体積密度関数214が入力光線又は入力カメラポーズから特定の色(例えば、関数Fのcolor変数)を出力する場合、レンダラ217は色値を所定の色関数223によって生成された色に置き換える。これは、何らかの決定論的色関数に依然として適合しながら、オブジェクトの3Dモデルに任意に適用されるように見えるため、擬似ランダム色又は擬似ランダムテクスチャと呼ばれる場合がある。色関数は、入力画像202を処理する前に決定されるように、入力画像202の色とは無関係であり得るので、予め決定されていると見なされる。所定の色関数は、正弦関数を含むことができ、擬似ランダム方式で周期的にノイズを導入して擬似ランダムテクスチャを作成することができる。
【0034】
擬似ランダム色は、所定の色関数223によって定義される擬似ランダムテクスチャを提供する。擬似ランダムテクスチャは、大理石テクスチャ、クロスハッチテクスチャ、ジグザグテクスチャ、又は小さな領域内で実質的に高い色変動又は画素値変動を有する任意の他のテクスチャであってもよい。例えば、図2Bのシーンに大理石テクスチャを適用すると、シーン127は、全体のシーンが大理石から彫り出されているかのような色又はテクスチャを有しながら、フライドポテトと共に、皿の上のハンバーガの形状及び表面輪郭を有することになる。さらに、この擬似ランダムテクスチャは、シーンの視野角を変更すると、擬似ランダムテクスチャが視野角にわたって追跡されるように、3D空間に適用される。
【0035】
レンダラ217は、同じカメラポーズ208からテクスチャあり画像220を生成することができる。レンダラ217はまた、新たなビューにおける体積密度値を予測、外挿、又は補間する体積密度関数214の能力を使用して、追加のカメラポーズからテクスチャあり画像220を生成することができる。レンダラ217は、レイマーチングを実施して、体積密度関数214に入力(例えば、位置座標、方向など)を提供して、対応する入力の体積密度値(例えば、不透明度)を生成することができる。レンダラ217はまた、各入力に対して所定の色関数223を使用して擬似ランダム色値を生成することができる。テクスチャあり画像220は、メモリに記憶することができる。テクスチャあり画像220は、入力画像202と同様であるが、代わりに、入力画像202によって取り込まれたオブジェクトの体積密度を維持しながら擬似ランダムテクスチャを適用する。
【0036】
次に、図3Aは、第1の画像セット(例えば、入力画像202)を第2の画像セット(例えば、テクスチャあり画像220)とブレンドして第3の画像セット(例えば、一時的なテクスチャを有する画像224)を生成する動作を示す。例えば、ブレンドは、テクスチャがない入力画像202の領域がテクスチャあり画像220の対応する領域とブレンドされるように選択的であってもよい。その結果、一時的なテクスチャを有する画像224が得られ、一時的なテクスチャは、テクスチャがない入力画像202の領域にのみ適用される。一時的なテクスチャを有する画像224内の残りの領域は、入力画像202のように見える。
【0037】
具体的には、テクスチャなし領域検出器226が、入力画像202を受信して、テクスチャなし領域データ229を生成することができる。テクスチャなし領域検出器226は、テクスチャなし領域を検出するために種々の画像解析動作を実施することができる。これらの画像解析動作は、入力画像の画素ごとのビットマップに対して実施されてもよい。いくつかの実施形態では、テクスチャなし領域検出器226は、入力画像202にコーナー検出動作を適用することによって、入力画像202のテクスチャなし領域を識別するように構成される。1つ若しくはそれ以上のコーナーに隣接していない、又はいずれのエッジの近くにもない画素又は領域は、テクスチャなしと見なされる。言い換えれば、特定の画素又は領域についてコーナー又はエッジが存在する程度は、その画素又は領域がテクスチャなしであるかどうかに対応する。コーナー又はエッジの程度が低い画素又は領域はテクスチャなしと見なされ、コーナー又はエッジの程度が高い画素又は領域にはテクスチャがある。
【0038】
他の実施形態では、テクスチャなし領域検出器226は、閾値画素値分散内の画素を含む入力画像202上の任意の領域を解析することができる。例えば、画素値分散が閾値を下回る場合、領域はテクスチャなし領域と見なされる。この点において、テクスチャなし表面の領域は、閾値画素値分散内の画素を含む。画素値分散とは、隣接する画素間で画素値(例えば、RGBスケール内の色)がばらつく程度である。低い画素値分散は、特定の領域にわたって均一な色を指し示す。高い色均一性は、テクスチャなし領域の指示である。テクスチャなし領域データ229は、入力画像202ごとに、テクスチャなし領域の位置を指し示す。例えば、テクスチャなし領域データ229は、入力画像202内の各画素がテクスチャなし領域内にあるかどうかを指し示すことができる。閾値画素値分散は、テクスチャなし又はテクスチャありと見なされる表面の画素値分散の量を確立する。
【0039】
いくつかの実施形態では、テクスチャなし領域検出器226は、入力画像202の特定の画素又は領域がテクスチャなしである程度を決定する。テクスチャなし領域データ229は、入力画像202ごとのビットマップであってもよく、ビットマップ画素値は、入力画像202内の対応する画素がテクスチャなし領域の一部である程度を指し示す。これは、図4に関してより詳細に説明される。
【0040】
テクスチャなし領域検出器226は、入力画像202のテクスチャなし表面の領域に対応するブレンド重みを割り当てることを含む動作を実施することができる。テクスチャなし領域データ229は、画素ごとに割り当てられ得るブレンド重みを含むことができる。ブレンド重みは、入力画像202内の画素のテクスチャの程度又は量の関数である。したがって、ブレンド重みは、画素位置が入力画像202のテクスチャなし領域内にあるかどうかに応じて割り当てられる。例えば、入力画像202内の画素が高テクスチャ領域内にある場合、その画素には高ブレンド重みが割り当てられる。入力画像202内の画素がテクスチャなし領域内にある場合、その画素には低ブレンド重みが割り当てられる。したがって、画素のブレンド重みは、その画素に関連付けられたテクスチャの量に対応する。上述したように、画素に関連付けられたテクスチャの量は、隣接する画素の画素値の均一性に基づいて定量化することができる。
【0041】
画像ブレンダ232は、第1の画像セット(例えば、入力画像202)を第2の画像セット(例えば、テクスチャあり画像220)とブレンドして第3の画像セット(例えば、一時的なテクスチャを有する画像224)を生成するように構成される。画像ブレンダ232は、第1の画像内の画素と(対応する位置を有する)第2の画像内の画素とが、互いに混合又は他の方法で加算されるそれぞれの画素値を有する画素ごとのブレンド動作を実施してもよい。さらに、ブレンダは、画素ごとにブレンド重みを適用することができる。例えば、ブレンダは、以下の式(2)に従って画素をブレンドすることができる。
ブレンドされた画素値=A*B+(1-A)*C(2)
ここで、Aは0と1との間のブレンド重みであり、Bは第1の画像内の画素の画素値であり、Cは第2の画像内の対応する画素の画素値である。例として、ブレンド重みAが0.5より大きいと、結果として得られるブレンドされた画素値は、第2の画像内の対応する画素よりも第1の画像内の画素寄りに重み付けされる。1のブレンド重みは、第2の画像内の対応する画素を無視した、第1の画像と同じ画素をもたらす。0のブレンド重みは、第1の画像内の対応する画素を無視した、第2の画像と同じ画素をもたらす。
【0042】
入力画像202内のテクスチャなし領域は、テクスチャあり画像220寄りに重み付けされるブレンド重みをもたらし、入力画像202のテクスチャあり領域は、入力画像202寄りに重み付けされるブレンド重みをもたらす。したがって、一時的なテクスチャを有する画像224を選択的にブレンドして、最初はテクスチャがない入力画像202にテクスチャを人工的に導入することができる。
【0043】
図3Bは、入力画像202及び一時的なテクスチャを有する対応する画像224から3Dモデルがどのように生成されるかを示す。一時的なテクスチャを有する画像は、一時的なテクスチャを有する画像224のカメラポーズ241を識別するために画像位置合わせモジュール205に提供される。一時的なテクスチャを有する画像224は、一時的なテクスチャの導入により、入力画像202と比較して、キーポイントを正確に決定するのにより適している。テクスチャは、最終的に3Dモデルのテクスチャマップから除外されるため、「一時的」と見なすことができる。しかしながら、一時的なテクスチャを使用して、テクスチャなし領域上の十分な数のキーポイントを取得するためのキーポイント検出及びマッチングを改善することができる。したがって、一時的なテクスチャを有する画像224は、より正確な表面ジオメトリのモデリングを可能にする。
【0044】
次に、三角測量モジュール244が、3D点データ247を生成する。三角測量モジュール244は、画像位置合わせモジュール205から受信したキーポイント及びカメラポーズ241を使用して複数の3D点を識別する。例えば、三角測量の使用により、3D点は、様々なカメラポーズにおける一致したキーポイントの位置に基づいて決定される。各キーポイントは、キーポイントに関するカメラポーズ241の方向によって定義される光線に対応する。一致したすべてのキーポイントに対するこれらの光線の収束点は、3D点の位置をもたらす。3D点データ247は、一時的なテクスチャを有する画像224によって表されるオブジェクトの3D空間内の種々の点を含む。他の方法ではテクスチャがない領域を埋める一時的なテクスチャの使用は、改善された3D点データ247を可能にする。3D点データ247は、一時的なテクスチャを有する画像224に表されたオブジェクトの表面に対応するx-y-z座標系の座標を含むことができる。
【0045】
表面再構成モジュール250は、3D点データを、一時的なテクスチャを有する画像224に表されるオブジェクトの表面ジオメトリを符号化する3D表面モデル253に変換することができる。言い換えると、表面再構成モジュール250は、3D点データ247の3D点に従ってオブジェクトの表面を再構成する。これは、図1の3D表面モデル121と同様であり得る。3D表面モデル253は、オブジェクトの表面をモデリングするために、3D点データ247内の種々の3D点を接続するメッシュを含むことができる。3D表面モデル253は、3Dモデルを構成する別個のファイル又はファイルの一部として記憶することができる。この点において、表面再構成モジュール250は、第3の画像セット(例えば、一時的なテクスチャを有する画像224)から3D表面モデル253を生成する。
【0046】
次に、テクスチャマッピングモジュール256が、3D表面モデル253のためのテクスチャマップ259を生成する。テクスチャマップ259は、図1のテクスチャマップ124と同様であってもよい。3D表面モデルのテクスチャマップ259は、第1の画像セット(例えば、入力画像202)から生成される。結果として、一時的なテクスチャは、3D表面モデル253の表面ジオメトリを生成するために使用されるものの、テクスチャマップ259を生成するときに考慮から除外される。
【0047】
最終的に、入力画像202によって表されるオブジェクトから3Dモデルが生成される。3Dモデルは、入力画像202の少なくともテクスチャなし領域への一時的なテクスチャの適用を使用することによって改善された3D表面モデルを有する。3Dモデルはまた、入力画像202から生成されたテクスチャマップ259を含み、これは一時的なテクスチャを含まない。
【0048】
3Dモデルは、表示のために3Dレンダリングモジュール262によってレンダリングすることができる。3Dレンダリングモジュール262は、3Dモデルから単一のビュー又はマルチビュー画像を生成することができる。マルチビューレンダリングのコンテキストでは、3Dレンダリングモジュール262は、同時に、オブジェクトのビューのセットをマルチビュー画像としてレンダリングすることができる。3Dレンダリングモジュール262は、3Dモデルをレンダリングするためにグラフィックスドライバを使用することができる。
【0049】
図4は、本明細書に記載の原理と一致する実施形態による一時的なテクスチャを適用する例を示す。具体的には、図4は、図3A及び図3Bに関して上述した入力画像202のうちの1つを示す。入力画像202は、テクスチャあり領域270及びテクスチャなし領域273を有するオブジェクトの1つのビューを描写する。テクスチャあり領域270は、高い色変動(例えば、テクスチャ)の存在を指し示す対角線を有するものとして示されており、これは、オブジェクトの様々なビューにわたってキーポイントを検出する能力を向上させる。テクスチャなし領域273は、無視できる色変動の存在を指し示すパターンを有さないもの(例えば、テクスチャなし)として示されており、これは、オブジェクトの様々なビューにわたってキーポイントを検出する能力を低下させる。
【0050】
テクスチャあり画像220は、図3Aに関して上述した動作に従って入力画像202から生成される。オブジェクトの体積密度は、テクスチャあり画像220を生成するときに全体の表面及び形状が変化しないように維持される。しかしながら、オブジェクトにグローバルに適用される擬似ランダムテクスチャ276を生成するために、所定の色関数が適用される。したがって、テクスチャあり画像220内のオブジェクトは、入力画像202の同じ形状279(例えば、表面又は輪郭)を有しながら、垂直破線として示される新しい擬似ランダムテクスチャ276を採用する。
【0051】
図4はまた、入力画像202とテクスチャあり画像220とを選択的にブレンドして、一時的なテクスチャを有する画像224を生成することを示す。具体的には、テクスチャなし領域データ229(一実施形態ではビットマップマスクとして示されている)は、入力画像202を解析してテクスチャなし領域を決定することによって生成される。図4の例では、テクスチャなし領域データ229は、入力画像202及びテクスチャあり画像220と同じ画素単位寸法を有するビットマップマスクである。このビットマップマスクは、入力画像202及びテクスチャあり画像220のそれぞれの画素のペアに対応する画素を有する。例えば、入力画像202の最左上の画素及びテクスチャあり画像220の最左上の画素が、ビットマップマスクの最左上の画素に対応する。各画素値は、それぞれのブレンド重みを指し示す。例えば、高画素値(例えば、より白い画素又はより明るい画素)は、入力画像202に有利なブレンド重みを指し示し、低画素値(例えば、より黒い画素又はより暗い画素)は、テクスチャあり画像220に有利なブレンド重みを指し示す。ビットマップマスクは、より黒い画素の第1の領域282を有する。この第1の領域282は、入力画像202のテクスチャなし領域273にマッピングされる。入力画像のテクスチャなし領域にもマッピングする他のより小さい領域285があってもよい。ビットマップマスクは、ターゲット画素を取り囲む色変動を解析することによって決定することができる。ターゲット画素の周りの色変動の程度は、ターゲット画素がテクスチャあり領域若しくはテクスチャなし領域の一部であるかどうか、及び/又はターゲット画素がテクスチャなし領域を形成する範囲を決定する。ターゲット画素には、ビットマップマスクに示されるように画素値が割り当てられる。画素値は、特定の陰影(例えば、白、黒、グレーなど)として図式的に表される。画素値は、ブレンド重みに対応する。いくつかの実施形態では、画素値を決定するために、コーナー検出動作が各画素に対して実施されてもよく、コーナーの存在の程度は画素値に対応する。
【0052】
ビットマップマスクを使用して、入力画像202とテクスチャあり画像220との重み付けブレンドを実施することができる。結果として、より黒い領域(例えば、第1の領域282又はより小さい領域285)内の画素は、テクスチャあり画像220の対応する画素により近い画素値をとる。より白い領域(第1の領域282又はより小さい領域285以外の領域)内の画素は、入力画像202の対応する画素に近い画素値をとる。
【0053】
一時的なテクスチャを有する画像224は、入力画像202の元のテクスチャあり領域を有し、テクスチャなし領域273の位置にテクスチャあり画像220の擬似ランダムテクスチャ276を有する。テクスチャなし領域273の位置は、ビットマップマスクによって第1の領域282として指定される。したがって、一時的なテクスチャを有する画像224は、入力画像202をテクスチャあり画像220と選択的にブレンドすることによって適用される一時的なテクスチャ288を有する。
【0054】
図5A及び図5Bは、本明細書に記載の原理と一致する実施形態による、一時的なテクスチャの使用によって3Dモデルを改善する例を示す。図5Aは、第1のビュー224a及び第2のビュー224bとして示される一時的なテクスチャを有する画像を描写する。種々の異なるビュー224a、224bに表されるオブジェクトは、元のテクスチャあり領域290を有する。元のテクスチャあり領域290は、第1のビュー224a及び第2のビュー224bを生成するために使用される元の入力画像(例えば、図3A及び図3Bの入力画像202)から維持される。加えて、元の入力画像は、一時的なテクスチャ292を含むように修正されたテクスチャなし領域を有していた。図3Aで説明したように、入力画像をテクスチャあり画像と選択的にブレンドすることによって、一時的なテクスチャ292を適用することができる。図5Aは、より多くのキーポイントを検出し、それらを異なるビュー224a、224bにわたって追跡される一致したキーポイント294として一致させる能力を改善するために、どのように一時的なテクスチャを使用するかを示す。キーポイントデータ品質の向上は、改善された3D表面モデル(例えば、図3Bの3D表面モデル253)を提供する。
【0055】
図5Bは、改善された3D表面モデル(例えば、図3Bの3D表面モデル253)と、元のテクスチャあり領域又はテクスチャなし領域を含む入力画像から直接生成されたテクスチャマップ(例えば、図3Bのテクスチャマップ259)との両方から生成された、第1のレンダリングされたビュー297a及び第2のレンダリングされたビュー297bを描写する。テクスチャマップは、元のテクスチャなし表面298をもたらす一時的なテクスチャ292を除外しながら、元のテクスチャあり領域290を維持するように生成される。結果として、3Dモデルは、テクスチャなし領域を有する入力画像から適切に再構成される。レンダリングされたビュー297a、297bは、この3Dモデルからレンダリングすることができ、入力画像の元の色及びテクスチャが維持される。
【0056】
図6は、本明細書に記載の原理と一致する実施形態による、三次元(3D)モデルを生成するシステム及び方法のフローチャートを示す。図6のフローチャートは、命令セットを実行するコンピューティングデバイスによって実装される様々なタイプの機能の一例を提供する。代替として、図6のフローチャートは、1つ又はそれ以上の実施形態による、コンピューティングデバイスにおいて実装される方法の要素の一例を描写するものと見なされ得る。
【0057】
項目304において、コンピューティングデバイスは、第1の画像セットから体積密度関数(例えば、図3Aの体積密度関数214)を生成する。第1の画像セットは、メモリから受信される入力画像(例えば、図3A及び図3Bの入力画像202)のセットであってもよい。第1の画像セットは、画像取込プロセス(例えば、図1の画像取込プロセス103)に従って生成することができる。第1の画像セットは、オブジェクトの様々な視野角に対応することができる。例えば、入力画像セット内の各画像は、オブジェクトの異なるビューを表す。体積密度関数は、入力カメラポーズに対応する体積密度値のセットを決定することができる。この点において、体積密度関数は、第1の画像セットで表現されたオブジェクトの再構成である。出力は、入力カメラポーズ(例えば、特定の位置及び方向を有するビューイングウィンドウ)に基づく体積密度値(例えば、不透明度)のセットであってもよい。
【0058】
コンピューティングシステムは、ニューラルネットワークモデルを使用して、体積密度関数を生成することができる。コンピューティングシステムは、図7に関して以下に説明するコンピューティングデバイスを含むか、又は図7に関して以下に説明するコンピューティングデバイスのコンポーネントの少なくともいくつかを含むことができる。例えば、ニューラルネットワークモデルは、ニューラル放射輝度場(NeRF)モデルを含むことができる。ニューラルネットワークモデルは、第1の画像セットの複数のカメラポーズを識別し、カメラポーズから体積密度関数を生成することによって生成することができる。例えば、画像位置合わせモジュール(例えば、図3Aの画像位置合わせモジュール205)を使用して、第1の画像セット内の各画像のカメラポーズを識別することができる。第1の画像セットは、少なくとも1つのテクスチャなし領域を有する可能性がある。これにより、カメラポーズの精度が比較的低くなる可能性がある。
【0059】
項目307において、コンピューティングデバイスは、体積密度関数及び所定の色関数(例えば、図3Aの所定の色関数223)から第2の画像セット(例えば、図3Aのテクスチャあり画像220)を生成する。レンダラを使用して、種々のカメラポーズを体積密度関数に入力して、第2の画像セットを生成することができる。加えて、所定の色関数は、第2の画像セットを生成するときに擬似ランダムテクスチャを適用することができる。所定の色関数は、出力をテクスチャ化する色パターンを生成することができる。したがって、体積密度関数が特定の色を出力する場合、所定の色関数は、オブジェクトの表面ジオメトリを維持しながら第2の画像セットにテクスチャを導入するために所定の色を使用して出力色をオーバーライドすることができる。
【0060】
次に、コンピューティングデバイスは、第1の画像セットを第2の画像セットとブレンドして第3の画像セット(例えば、一時的なテクスチャを有する画像224)を生成する。第3の画像セットは、第1の画像セットのテクスチャなし領域を生成された一時的なテクスチャで置き換えながら、第1の画像セットの元のテクスチャあり領域を維持することができる。第1の画像セット及び第2の画像セットのブレンドは、実施形態による項目310及び313に関して説明される。
【0061】
項目310において、コンピューティングデバイスは、第1の画像セットのテクスチャなし領域を識別する。これは、領域がテクスチャなし領域であるかどうかを決定するために第1の画像セットにコーナー検出動作を適用することによって行うことができる。例えば、画素単位又は領域単位で、第1の画像セットに対してコーナー検出動作を適用することによって、テクスチャなし領域を識別することができる。コンピューティングデバイスは、画像認識又はニューラルネットワークを使用してコーナー検出を実施し、コーナーによって画定された領域を識別することができる。コーナーは、2つのエッジの交点である。テクスチャなし領域が閾値画素値分散内の画素を含む場合、領域はテクスチャなし領域と見なすことができる。この点において、コーナー又はエッジに関連付けられた画素又は領域は、高い画素値分散を有することができ、一方、低い画素値分散を有するコーナー/エッジ内の画素は全く又はほとんど存在しない。
【0062】
いくつかの実施形態では、ブレンド重みは、第1の画像セット内の各画素に対して設定されてもよく、ブレンド重みは、画素がテクスチャなし領域にあるか、又はその一部であるかを指し示す。ブレンド重みは、特定の画素位置におけるテクスチャの程度に対応することができる。したがって、コンピューティングデバイスは、画素が第1の画像セットのテクスチャなし領域の少なくとも一部であるかどうかを指し示すブレンド重みを割り当てることができる。ブレンド重みは、ブレンド重みが画素ごとに(例えば、各画素について)設定されるようにビットマップマスクとしてフォーマットされてもよい。
【0063】
項目313において、コンピューティングデバイスは、テクスチャなし領域の識別に応答することによって、第1の画像セットを第2の画像セットとブレンドして、第3の画像セットを生成する。例えば、第3の画像セットは、テクスチャなし領域を除くすべての領域において第1の画像セットと同様である。ブレンド動作は、図4の例に示すように、ブレンド重みを使用して、テクスチャなし領域の位置を指定することができる。したがって、第3の画像セットは、(第1の画像セットに対するテクスチャがある領域において)第1の画像セット寄りに重み付けされたブレンドされた画素値を採用するか、又は(第1の画像セットに対するテクスチャがない領域において)第2の画像セット寄りに重み付けされたブレンドされた画素値を採用する。
【0064】
項目316において、コンピューティングデバイスは、第3の画像セットから3D表面モデル(例えば、図3Bの3D表面モデル253)を生成する。第3の画像セットは、第1の画像セットと第2の画像セットとのブレンドであるため、テクスチャなし領域を有さないように生成される。3D表面モデルは、第3の画像セットの複数のカメラポーズを識別することによって生成することができる。また、画像位置合わせプロセスは、カメラポーズを決定することができる。第3の画像セットはテクスチャなし領域を欠いているため、より正確なカメラポーズを得ることができる。次に、3D表面モデル生成は、複数のカメラポーズを使用して第3の画像セット内の複数の3D点を識別することを伴うことができる。これは、(特定のビューに表されるように)オブジェクト表面に沿った点と対応するカメラポーズの座標との間で三角測量を実施することによって行うことができる。次に、オブジェクトの表面が3D点に従って再構成される。これは、オブジェクトの表面を近似するメッシュを生成することを伴ってもよい。3D表面モデルは、テクスチャ情報なしで表面ジオメトリを含むようにフォーマットすることができる。
【0065】
項目319において、コンピューティングデバイスは、第1の画像セットから3D表面モデルのテクスチャマップ(例えば、図3Bのテクスチャマップ259)を生成する。第1の画像セットを直接使用することにより、元のテクスチャなし領域を3D表面モデルにマッピングすることができる。
【0066】
項目322において、コンピューティングデバイスは、表示のために3D表面モデル及びテクスチャマップをレンダリングする。例えば、3D表面モデル及びテクスチャマップは共に、第1の画像セットによって表されるオブジェクトの3Dモデルを形成する。コンピューティングデバイスは、この3Dモデルを、オブジェクトの単一のビューとして、又は種々の視野角でオブジェクトの同時にレンダリングされたビューを含むマルチビュー画像としてレンダリングすることができる。したがって、マルチビュー画像は、3Dモデルから生成されたオブジェクトの少なくとも立体視を提供することができる。
【0067】
上述した図6のフローチャートは、命令セットとして具現化された機能を有する3Dモデルを生成するシステム又は方法を示すことができる。ソフトウェアで具現化される場合、各ボックスは、指定された論理機能(複数可)を実装するための命令を含むモジュール、セグメント、又はコードの一部を表すことができる。命令は、プログラミング言語で書かれた人間可読ステートメントを含むソースコード、ソースコードからコンパイルされたオブジェクトコード、又は適切な実行システム、例えばプロセッサ、コンピューティングデバイスによって認識可能な数値命令を含むマシンコードの形態で具現化することができる。マシンコードは、ソースコードなどから変換されてもよい。ハードウェアで具現化される場合、各ブロックは、指定された論理機能(複数可)を実装するための回路又は複数の相互接続された回路を表してもよい。
【0068】
図6のフローチャートは特定の実行順序を示すが、実行順序は描写されたものと異なってもよいことが理解される。例えば、2つ又はそれ以上のボックスの実行順序は、示された順序に対してスクランブルされてもよい。また、示される2つ又はそれ以上のボックスは、同時に、又は部分的に同時に実行されてもよい。さらに、いくつかの実施形態では、ボックスの1つ又はそれ以上は、スキップ若しくは省略されてもよく、又は同時に実施されてもよい。
【0069】
図7は、本明細書に記載の原理と一致する実施形態による、表示のために3Dモデルを生成及びレンダリングするコンピューティングデバイスの例示的な図を描写する概略ブロック図である。コンピューティングデバイス1000は、コンピューティングデバイス1000のユーザのための種々のコンピューティングオペレーションを行うコンポーネントのシステムを含むことができる。コンピューティングデバイス1000は、コンピューティングシステムの一例である。例えば、コンピューティングデバイス1000は、3Dモデル生成システムのコンポーネントを表すことができる。コンピューティングデバイス1000は、ラップトップ、タブレット、スマートフォン、タッチスクリーンシステム、インテリジェントディスプレイシステム、他のクライアントデバイス、サーバ、又は他のコンピューティングデバイスであってもよい。コンピューティングデバイス1000は、種々のコンポーネント、例えば、プロセッサ(複数可)1003、メモリ1006、入力/出力(I/O)コンポーネント(複数可)1009、ディスプレイ1012、及び潜在的な他のコンポーネントを含むことができる。これらのコンポーネントは、コンピューティングデバイス1000のコンポーネントが互いに通信することを可能にするローカルインターフェースとして機能するバス1015に結合することができる。コンピューティングデバイス1000のコンポーネントは、コンピューティングデバイス1000内に収容されるものとして示されているが、コンポーネントの少なくともいくつかは、外部接続を介してコンピューティングデバイス1000に結合し得ることを理解されたい。例えば、コンポーネントは、外部ポート、ソケット、プラグ、若しくはコネクタを介してコンピューティングデバイス1000に外部的に差し込まれるか、又は他の方法で接続することができる。
【0070】
プロセッサ1003は、中央処理装置(CPU)、画像処理装置(GPU)、コンピューティング処理動作を実施する任意の他の集積回路、又はそれらの任意の組み合わせを含むことができる。プロセッサ(複数可)1003は、1つ又はそれ以上の処理コアを含むことができる。プロセッサ(複数可)1003は、命令を実行する回路を備える。命令は、例えば、コンピュータコード、プログラム、ロジック、又は他のマシン可読命令を含み、これらは、プロセッサ(複数可)1003により受信されて実行され、命令に具現化されたコンピューティング機能を遂行する。プロセッサ(複数可)1003は、データ上で動作するための命令を実行し得る。例えば、プロセッサ(複数可)1003は、入力データ(例えば、画像)を受信し、命令セットに従って入力データを処理し、出力データ(例えば、処理された画像)を生成してもよい。別の例として、プロセッサ(複数可)1003は、命令を受信し、後続の実行のために新しい命令を生成することができる。プロセッサ1003は、アプリケーションによって生成された画像又は3Dモデルから導出された画像をレンダリングするためのグラフィックスパイプラインを実装するハードウェアを備えることができる。例えば、プロセッサ(複数可)1003は、1つ又はそれ以上のGPUコア、ベクトルプロセッサ、スケーラプロセス、又はハードウェアアクセラレータを備えてもよい。
【0071】
メモリ1006は、1つ又はそれ以上のメモリコンポーネントを含むことができる。メモリ1006は、本明細書では、揮発性メモリ及び不揮発性メモリのいずれか又は両方を含むものとして定義される。揮発性メモリコンポーネントは、電力喪失時に情報を保持しないメモリコンポーネントである。揮発性メモリは、例えば、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、磁気ランダムアクセスメモリ(MRAM)、又は他の揮発性メモリ構造を含む場合がある。システムメモリ(例えば、メインメモリ、キャッシュなど)は、揮発性メモリを使用して実装することができる。システムメモリは、プロセッサ(複数可)1003を支援するために、迅速な読み出し及び書き込みアクセスのためのデータ又は命令を一時的に記憶し得る高速メモリを指す。画像は、その後のアクセスのためにメモリに記憶又はロードすることができる。
【0072】
不揮発性メモリコンポーネントは、電力喪失時に情報を保持するメモリコンポーネントである。不揮発性メモリは、読取り専用メモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連するフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープを含む。ROMは、例えば、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、又は他の同様のメモリデバイスを含む場合がある。記憶メモリは、データ及び命令の長期保持を提供するために不揮発性メモリを使用して実装される場合がある。
【0073】
メモリ1006は、命令及びデータを記憶するために使用される揮発性メモリと不揮発性メモリとの組み合わせを指すことができる。例えば、データ及び命令は、不揮発性メモリに記憶され、プロセッサ(複数可)1003による処理のために揮発性メモリにロードされ得る。命令の実行は、例えば、不揮発性メモリから揮発性メモリにロードされ、次いでプロセッサ1003によって実行され得るフォーマットのマシンコードに変換されるコンパイルされたプログラム、プロセッサ1003による実行のために好適なフォーマット、例えば揮発性メモリにロードされ得るオブジェクトコードに変換されるソースコード、又は揮発性メモリ中に命令を生成するために別の実行可能プログラムによって解釈され、プロセッサ1003によって実行されるソースコードなどを含んでもよい。命令は、例えば、RAM、ROM、システムメモリ、ストレージ、又はそれらの任意の組み合わせを含むメモリ1006の任意の部分又はコンポーネントに記憶又はロードされてもよい。
【0074】
メモリ1006は、コンピューティングデバイス1000の他のコンポーネントとは別個のものとして示されているが、メモリ1006は、少なくとも部分的に、1つ又はそれ以上のコンポーネントに埋め込まれる、又は他の方法で統合され得ることを理解されたい。例えば、プロセッサ(複数可)1003は、処理動作を実施するためのオンボードメモリレジスタ又はキャッシュを含むことができる。
【0075】
I/Oコンポーネント(複数可)1009は、例えば、タッチスクリーン、スピーカー、マイクロフォン、ボタン、スイッチ、ダイヤル、カメラ、センサ、加速度計、又はユーザ入力を受信するか、若しくはユーザへの出力を生成する他のコンポーネントを含む。I/Oコンポーネント(複数可)1009は、ユーザ入力を受信し、それをメモリ1006に記憶するための、又はプロセッサ(複数可)1003によって処理するためのデータに変換することができる。I/Oコンポーネント(複数可)1009は、メモリ1006又はプロセッサ(複数可)1003によって出力されたデータを受信し、それらをユーザによって知覚されるフォーマット(例えば、音、触覚応答、視覚情報など)に変換することができる。
【0076】
特定のタイプのI/Oコンポーネント1009は、ディスプレイ1012である。ディスプレイ1012は、マルチビューディスプレイ、2Dディスプレイと組み合わされたマルチビューディスプレイ、又は画像を提示する任意の他のディスプレイを含むことができる。I/Oコンポーネント1009として機能する静電容量式タッチスクリーン層をディスプレイ内に積層して、ユーザが視覚出力を知覚すると同時に、入力を提供することを可能にすることができる。プロセッサ(複数可)1003は、ディスプレイ1012上に提示するための画像としてフォーマットされるデータを生成し得る。プロセッサ(複数可)1003は、ユーザのためのディスプレイ上に画像をレンダリングするための命令を実行することができる。
【0077】
バス1015は、プロセッサ(複数可)1003、メモリ1006、I/Oコンポーネント(複数可)1009、ディスプレイ1012、及びコンピューティングデバイス1000の任意の他のコンポーネントの間の命令及びデータの通信を容易にする。バス1015は、データ及び命令の通信を可能にするために、アドレス変換器、アドレスデコーダ、ファブリック、導電性トレース、導電性ワイヤ、ポート、プラグ、ソケット、及び他のコネクタを含むことができる。
【0078】
メモリ1006内の命令は、ソフトウェアスタックの少なくとも一部を実装するように、種々の形態で具現化することができる。例えば、命令は、オペレーティングシステム1031、アプリケーション(複数可)1034、デバイスドライバ(例えば、ディスプレイドライバ1037)、ファームウェア(例えば、ディスプレイファームウェア1040)、又は他のソフトウェアコンポーネントとして具現化することができる。オペレーティングシステム1031は、コンピューティングデバイス1000の基本機能、例えば、タスクのスケジューリング、I/Oコンポーネント1009の制御、ハードウェアリソースへのアクセスの提供、電力の管理、及びアプリケーション1034のサポートをサポートするソフトウェアプラットフォームである。
【0079】
アプリケーション(複数可)1034は、オペレーティングシステム1031上で実行され、オペレーティングシステム1031を介してコンピューティングデバイス1000のハードウェアリソースにアクセスすることができる。この点に関して、アプリケーション(複数可)1034の実行は、少なくとも部分的に、オペレーティングシステム1031によって制御される。アプリケーション(複数可)1034は、高レベルの機能、サービス、及び他の機能をユーザに提供するユーザレベルソフトウェアプログラムであってもよい。いくつかの実施形態では、アプリケーション1034は、コンピューティングデバイス1000上でユーザがダウンロード可能又は他の方法でアクセス可能な専用の「アプリ」であってもよい。ユーザは、オペレーティングシステム1031によって提供されるユーザインターフェースを介してアプリケーション(複数可)1034を起動することができる。アプリケーション(複数可)1034は、開発者によって開発され、種々のソースコードフォーマットで定義されてもよい。アプリケーション1034は、複数のプログラミング言語又はスクリプト言語、例えば、C、C++、C#、Objective C、Java(登録商標)、Swift、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Go、又は他のプログラミング言語を使用して開発することができる。アプリケーション(複数可)1034は、コンパイラによってオブジェクトコードにコンパイルされても、又はプロセッサ(複数可)1003による実行のためにインタープリタによって解釈されてもよい。
【0080】
デバイスドライバ、例えば、ディスプレイドライバ1037は、オペレーティングシステム1031が種々のI/Oコンポーネント1009と通信することを可能にする命令を含む。各I/Oコンポーネント1009は、それ自体のデバイスドライバを有することができる。デバイスドライバは、それらがストレージに記憶され、システムメモリにロードされるようにインストールすることができる。例えば、インストール時に、ディスプレイドライバ1037は、オペレーティングシステム1031から受信された高レベル表示命令を、画像を表示するためにディスプレイ1012によって実装される低レベル命令に変換する。
【0081】
ファームウェア、例えば、ディスプレイファームウェア1040は、I/Oコンポーネント1009又はディスプレイ1012が低レベル動作を実施することを可能にするマシンコード又はアセンブリコードを含んでもよい。ファームウェアは、特定のコンポーネントの電気信号をより高いレベルの命令又はデータに変換することができる。例えば、ディスプレイファームウェア1040は、電圧又は電流信号を調整することによって、ディスプレイ1012が個々の画素を低レベルでどのようにアクティブ化するかを制御してもよい。ファームウェアは、不揮発性メモリに記憶することができ、不揮発性メモリから直接実行することができる。例えば、ディスプレイファームウェア1040は、ROMチップがコンピューティングデバイス1000の他のストレージ及びシステムメモリから分離されるように、ディスプレイ1012に結合されたROMチップに具現化することができる。ディスプレイ1012は、ディスプレイファームウェア1040を実行するための処理回路を含むことができる。
【0082】
オペレーティングシステム1031、アプリケーション(複数可)1034、ドライバ(例えば、ディスプレイドライバ1037)、ファームウェア(例えば、ディスプレイファームウェア1040)、及び潜在的な他の命令セットはそれぞれ、上述した機能及び動作を行うためにコンピューティングデバイス1000のプロセッサ(複数可)1003又は他の処理回路によって実行可能な命令を含むことができる。本明細書に記載の命令は、上述のようにプロセッサ(複数可)1003によって実行されるソフトウェア又はコードで具現化されてもよいが、代替として、命令はまた、専用ハードウェア又はソフトウェアと専用ハードウェアとの組み合わせで具現化されてもよい。例えば、上述の命令によって行われる機能及び動作は、複数の技術のうちのいずれか1つ又はそれらの組み合わせを採用する回路又は状態機械として実装されてもよい。これらの技術は、限定はしないが、1つ又はそれ以上のデータ信号の印加時に種々の論理機能を実施するための論理ゲートを有する個別論理回路、適切な論理ゲートを有する特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他のコンポーネントなどを含む場合がある。
【0083】
いくつかの実施形態では、上述の機能及び動作を行う命令は、非一時的コンピュータ可読記憶媒体において具現化されてもよい。例えば、実施形態は、コンピューティングシステム(例えば、コンピューティングデバイス1000)のプロセッサ(例えば、プロセッサ1003)によって実行されると、入力画像セットから3Dモデルを生成する動作を含む、上述した種々の機能をプロセッサに実施させる実行可能命令を記憶する非一時的コンピュータ可読記憶媒体に関する。非一時的コンピュータ可読記憶媒体は、コンピューティングデバイス1000の一部であっても、一部でなくてもよい。命令は、例えば、コンピュータ可読媒体からフェッチされ、処理回路(例えば、プロセッサ(複数可)1003)によって実行され得るステートメント、コード、又は宣言を含むことができる。本明細書で定義した場合、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、例えばコンピューティングデバイス1000によって、又はそれに関連して使用するための本明細書に記載の命令を収容し、記憶し、又は維持することができ、さらに、例えば搬送波を含む一時的媒体を除外する任意の媒体として定義される。
【0084】
非一時的コンピュータ可読媒体は、多くの物理媒体、例えば、磁気、光学、又は半導体媒体のうちのいずれか1つを備えることができる。適切な非一時的コンピュータ可読媒体のより具体的な例は、磁気テープ、磁気フロッピーディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、又は光ディスクを含む場合があるが、それらに限定されない。また、非一時的コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)及びダイナミックランダムアクセスメモリ(DRAM)、又は磁気ランダムアクセスメモリ(MRAM)を含むランダムアクセスメモリ(RAM)であってもよい。加えて、非一時的コンピュータ可読媒体は、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、又は他のタイプのメモリデバイスであってもよい。
【0085】
コンピューティングデバイス1000は、上述した動作のいずれかを実施するか、又は上述した機能を実装することができる。例えば、上述したフローチャート及びプロセスフローは、命令を実行し、データを処理するコンピューティングデバイス1000によって実施することができる。コンピューティングデバイス1000は単一のデバイスとして示されているが、実施形態はそのように限定されない。いくつかの実施形態では、コンピューティングデバイス1000は、複数のコンピューティングデバイス1000が共に動作して、コンピューティングコンポーネントの分散配置に記憶又はロードされ得る命令を実行するように、分散方式で命令の処理をオフロードすることができる。例えば、少なくともいくつかの命令又はデータは、コンピューティングデバイス1000と連携して動作するクラウドベースのシステムに記憶、ロード、又は実行することができる。
【0086】
したがって、入力画像セットから3Dモデルを生成する例及び実施形態を説明した。これは、色関数によって生成された擬似ランダムテクスチャをオブジェクトの体積密度モデルに適用することによって行うことができる。これにより、オブジェクトが元の体積密度を維持するように、オブジェクトのテクスチャ化されたバージョンが生成される(結果として、テクスチャなし領域がなくなる)。3D表面モデルは、テクスチャ化されたバージョン(又はテクスチャありバージョンのブレンドバージョン)から生成され、テクスチャマップは入力画像セットから生成される。したがって、3Dモデルは、その表面ジオメトリがテクスチャ化されたバージョンから生成されるものの、入力画像セットによって表されるオブジェクトと同じテクスチャを有する。上述された例は、本明細書に記載された原理を表す多くの具体例のうちの一部の単なる例示であることを理解されたい。明らかに、当業者は、以下の特許請求の範囲によって定義される範囲から逸脱することなく、多数の他の構成を容易に考案することができる。
【符号の説明】
【0087】
103 画像取込システム
106 オブジェクト
109 カメラ
112 画像セット
114 3Dモデル
115 3Dモデリングプロセス
121 3D表面モデル
124 テクスチャマップ
127 シーン
130a 第1のビュー
130b 第2のビュー
133 第1の領域
135 第2の領域
136 キーポイント
139 キーポイント
202 入力画像
205 画像位置合わせモジュール
208 カメラポーズ
211 体積密度モデル生成器
214 体積密度関数
217 レンダラ
220 テクスチャあり画像
223 所定の色関数
224 一時的なテクスチャを有する画像
224a 第1のビュー
224b 第2のビュー
226 テクスチャなし領域検出器
229 テクスチャなし領域データ
232 画像ブレンダ
241 カメラポーズ
244 三角測量モジュール
247 3D点データ
250 表面再構成モジュール
253 3D表面モデル
256 テクスチャマッピングモジュール
259 テクスチャマップ
262 3Dレンダリングモジュール
270 テクスチャ領域
273 テクスチャなし領域
276 擬似ランダムテクスチャ
279 同じ形状
282 第1の領域
285 より小さい領域
288 一時的なテクスチャ
290 テクスチャあり領域
292 一時的なテクスチャ
294 キーポイント
297a 第1のレンダリングされたビュー
297b 第2のレンダリングされたビュー
298 テクスチャなし表面
304 項目
307 項目
310 項目
313 項目
316 項目
319 項目
322 項目
1000 コンピューティングデバイス
1003 プロセッサ
1006 メモリ
1009 I/Oコンポーネント
1012 ディスプレイ
1015 バス
1031 オペレーティングシステム
1034 アプリケーション
1037 ディスプレイドライバ
1040 ディスプレイファームウェア
図1
図2A-B】
図3A
図3B
図4
図5A-B】
図6
図7
【国際調査報告】