TW202247106A - 提供三維模型的電腦實施方法與系統及其相關之儲存媒體 - Google Patents
提供三維模型的電腦實施方法與系統及其相關之儲存媒體 Download PDFInfo
- Publication number
- TW202247106A TW202247106A TW111105580A TW111105580A TW202247106A TW 202247106 A TW202247106 A TW 202247106A TW 111105580 A TW111105580 A TW 111105580A TW 111105580 A TW111105580 A TW 111105580A TW 202247106 A TW202247106 A TW 202247106A
- Authority
- TW
- Taiwan
- Prior art keywords
- images
- texture
- image
- model
- volume density
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000006870 function Effects 0.000 claims description 86
- 238000002156 mixing Methods 0.000 claims description 46
- 238000012545 processing Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 32
- 238000009877 rendering Methods 0.000 claims description 27
- 239000000203 mixture Substances 0.000 claims description 14
- 230000001537 neural effect Effects 0.000 claims description 11
- 230000005855 radiation Effects 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 8
- 238000003062 neural network model Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 5
- 235000015220 hamburgers Nutrition 0.000 description 5
- 230000004438 eyesight Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 235000012020 french fries Nutrition 0.000 description 3
- 239000004579 marble Substances 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010191 image analysis Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000002834 transmittance Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000004313 glare Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000007634 remodeling Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
本發明關於一種系統和方法,其旨在產生第一影像集合的三維(3D)模型。第一影像集合(例如輸入影像集合)對應於接受3D建模的物體的不同的視角。體積密度函數由第一影像集合產生。第二影像集合(例如紋理影像集合)由體積密度函數和預定義的顏色函數產生。混合第一影像集合與第二影像集合以產生第三影像集合(例如具有臨時紋理的影像集合)。3D表面模型由第三影像集合產生,以產生3D模型。另外,3D表面模型的紋理圖由第一影像集合產生。電腦系統配置為彩現處理3D表面模型和紋理圖以用於顯示。
Description
本發明關於一種電腦實施方法,特別是提供三維模型的電腦實施方法。
電腦繪圖在顯示器上以一個或多個影像的形式呈現給使用者。這些影像可由表示特定景象的三維(3D)模型產生。3D模型可以根據形狀、大小、紋理和其他視覺參數在數學上定義一個或多個物體。此外,3D模型可以定義不同物體相對於3D模型中其他物體的空間位置。3D模型可以格式化為各種資料結構或檔案,並載入記憶體中。一旦產生,計算裝置可以彩現處理3D模型的一個或多個影像以用於顯示。影像的特徵可以是相對於3D模型的特定視角、縮放和/或位置。可以使用多種技術以產生與格式化3D模型。
為了實現這些與其他優點並且根據本發明的目的,如本文所體現和廣泛描述的,提供一種提供三維(3D)模型的電腦實施方法,該方法包括:由一第一影像集合產生一體積密度函數,該第一影像集合對應一物體的不同的視角;由該體積密度函數和一預定義的顏色函數產生一第二影像集合;混合該第一影像集合與該第二影像集合,以產生一第三影像集合;由該第三影像集合產生一3D表面模型;以及由該第一影像集合產生用於該3D表面模型的一紋理圖,其中,該3D表面模型和該紋理圖配置以被彩現處理以用於顯示。
根據本發明一實施例,該體積密度函數產生與一輸入攝影機位姿相對應的體積密度值的一集合。
根據本發明一實施例,該體積密度函數是包括一神經輻射場模型(NeRF)的一神經網路模型。
根據本發明一實施例,所述混合包括:分配一混合權重,該混合權重指示一像素是否為該第一影像集合的一無紋理區域的一部分;以及根據該混合權重,混合該第一影像集合與該第二影像集合。
根據本發明一實施例,該無紋理區域包括在一閾值像素值變異數內的像素。
根據本發明一實施例,所述之方法,進一步包括:辨識該第一影像集合的複數個攝影機位姿;以及由該攝影機位姿產生該體積密度函數。
根據本發明一實施例,所述產生該第三影像集合的該3D表面模型包括:辨識該第三影像集合的複數個攝影機位姿;使用該第三影像集合的該複數個攝影機位姿,辨識該第三影像集合中的複數個3D點;以及根據該等3D點重建該物體的一表面。
根據本發明一實施例,所述彩現處理該3D表面模型和該紋理圖以用於顯示包括同時將該物體的視像的一集合彩現處理為一多視像影像。
在本發明之另一態樣中,提供一種三維(3D)模型產生系統,包括:一處理器;以及一記憶體,儲存複數個指令,該複數個指令執行時會使該處理器執行以下處理:由一第一影像集合產生一體積密度函數,該第一影像集合對應於一物體的不同的視角;由該體積密度函數產生一第二影像集合,其中,應用一偽隨機紋理來產生該第二影像集合;混合該第一影像集合與該第二影像集合,以產生一第三影像集合;由該第三影像集合產生一3D表面模型;以及由該第一影像集合產生用於該3D表面模型的一紋理圖,其中,一電腦系統配置以彩現處理該3D表面模型和該紋理圖以用於顯示。
根據本發明一實施例,該體積密度模型包括一函數,該函數配置為判定與一輸入攝影機位姿相對應的體積密度值的一集合。
根據本發明一實施例,該體積密度模型包括一神經輻射場模型。
根據本發明一實施例,該記憶體儲存該複數個指令,該複數個指令執行時會進一步使該處理器執行以下處理:藉由對該第一影像集合應用一角落檢測操作來辨識該第一影像集合的一無紋理區域,以判定一區域是否為一無紋理區域,以及藉由響應所述無紋理區域的辨識,混合該第一影像集合與該第二影像集合以產生一第三影像集合。
根據本發明一實施例,該無紋理區域包括在一閾值像素值變異數內的像素。
根據本發明一實施例,該記憶體儲存該複數個指令,該複數個指令執行時會進一步使該處理器執行以下處理:辨識該第一影像集合的複數個攝影機位姿;以及根據該攝影機位姿由該第一影像集合產生該體積密度模型。
根據本發明一實施例,該記憶體儲存該複數個指令,該複數個指令執行時會進一步使該處理器執行以下處理:辨識該第三影像集合的複數個攝影機位姿;使用該第三影像集合的該複數個攝影機位姿,辨識該第三影像集合中的複數個3D點;以及根據該等3D點重建該物體的表面以產生該3D表面模型。
根據本發明一實施例,藉由同時將該物體的視像的一集合彩現處理為一多視像影像,該3D表面模型和該紋理圖配置以被彩現處理以用於顯示。
在本發明之另一態樣中,提供一種非暫時性電腦可讀取儲存媒體,儲存可執行的指令,當該等可執行的指令由一電腦系統的一處理器執行時,會執行產生一第一影像集合的一三維(3D)模型的操作,該等操作包括:由該第一影像集合產生一神經輻射場 (NeRF) 模型,該第一影像集合對應一物體的不同的視角;由該神經輻射場模型和一預定義的顏色函數產生一第二影像集合;混合該第一影像集合與該第二影像集合,以產生一第三影像集合;由該第三影像集合產生一3D表面模型;以及由該第一影像集合產生用於該3D表面模型的一紋理圖,其中,該電腦系統配置以彩現處理該3D表面模型和該紋理圖以用於顯示。
根據本發明一實施例,該等操作進一步包括:分配混合權重,對應該第一影像集合的無紋理表面的區域;以及根據該等混合權重,混合該第一影像集合與該第二影像集合,以產生一第三影像集合。
根據本發明一實施例,該等無紋理表面的該等區域包括在一閾值像素值變異數內的像素。
根據本發明一實施例,藉由同時將該物體的視像的一集合彩現處理為一多視像影像,該3D表面模型和該紋理圖配置以被彩現處理以用於顯示。
根據本發明所述原理的示例和實施例,本發明提供了一種增進從輸入影像集合產生的三維(3D)模型的技術。具體來說,實施例旨在提供一種更可靠的方法來創造具有無紋理區域的物體的3D模型(例如,具有高顏色均勻性、具有光澤度的表面)。當輸入影像具有此無紋理區域時,可能會難以在不同的視角下追蹤這些區域的點並使其產生關聯。這會導致關鍵點資料的品質降低,從而產生不完整或扭曲的3D重建結果。為了解決這個問題,實施例旨在將臨時紋理(temporary texture)應用於這些無紋理區域以計算3D模型的表面。由於臨時紋理創造跨不同視像追蹤共同點的能力,建模曲面得以增進。此外,對增進的表面模型創造紋理圖(texture map)時,將使用原始影像。在產生紋理圖時,原始紋理的重新使用會排除臨時紋理。
在一些實施例中,在應用臨時紋理之前,可以使用預先訓練的神經網路(neural network)將物體的幾何形狀編碼為體積密度函數(volumetric density function)。這允許在產生完整的表面模型和運作整個重建管道之前,將臨時紋理應用到物體表面。在一些實施例中,產生神經輻射場(neural radiance field,NeRF)模型,以產生定義3D模型的體積密度特性的體積密度模型。預定義的顏色函數(predefined color function)應用偽隨機紋理(pseudo-random texture)來產生具有與輸入影像集合相同體積密度的紋理影像。臨時紋理的應用是藉由以只對無紋理區域應用紋理的方式將輸入影像集合與紋理影像混合。
圖1是與本發明所述原理一致,圖解將實體物體轉換為3D模型的處理的示意圖。圖1描述影像獲取處理103。影像獲取處理103可以在攝影室或任何其他實體環境中進行。其目的是使用一個或多個攝影機109對物體106進行視覺獲取。一個或多個攝影機109可以從不同的視角獲取物體106的影像。在某些情況下,不同視像可以至少部分地重疊,從而獲取物體106的不同面。因此,影像獲取處理103將占據實體空間的物體106轉換為影像集合112。影像集合112可以稱為輸入影像集合,因為其用作輸入,以使用3D建模處理115產生3D模型。影像集合112可以包含複數個影像,其在不同的視角上視覺表示物體106。影像集合112可以格式化並以各種影像格式儲存在記憶體中,例如位元圖(bitmap)格式或光柵(raster)格式。
3D建模處理115是以電腦實施的處理,將影像集合112轉換為3D模型114。3D建模處理115可以實施為可由處理器執行的軟體程式、常式或模組。3D建模處理115可以存取記憶體以檢索影像集合112並產生相應的3D模型114。3D建模處理115更將3D模型114以檔案或其他資料格式儲存在記憶體中。
3D建模處理115可以識別影像集合112中至少一個影像子集合共同的關鍵點。在本發明中,「關鍵點(key point)」定義為出現在影像集合之中的兩個或多個影像中的物體106的點。例如,物體106的特定角落可以在影像集合112中的幾個影像獲取。由於此特定角落以不同的視角獲取,特定角落可以在影像集合112中具有不同位置。3D建模處理115可以將特定角落辨識為許多關鍵點其中之一,以將物體106重建為3D模型114。
3D模型114可以儲存為表示物體106的一個或多個電腦檔案或資料格式。3D模型114可以包含3D表面模型121和紋理圖124。3D表面模型121可以是表示物體106的表面幾何形狀的檔案(或檔案的一部分)。因此,表面幾何形狀對物體106的各種特徵的輪廓、形狀和空間關係編碼。3D表面模型121可以包括建模物體106的表面的網格。網格可以由具有三維座標的各種三角形(或其他多邊形)形成。這些多邊形可以密鋪為接近物體106表面的非重疊幾何形狀。在其它實施例中,3D表面模型121可以使用較小的3D形狀的組合來建立,諸如球體、立方體、圓柱體等。
紋理圖124包含紋理資訊,其映射到由3D表面模組指定的表面幾何形狀所定義的各個點上。紋理圖可以表示應用於3D模型114的3D表面模型121的顏色、陰影和圖形圖案。因此,紋理圖124定義建模物體106的視覺外觀。3D表面模型121的每個表面是可以由一個或多個點定義的區域。紋理圖124可以是2D影像,其座標映射到3D表面。除了3D表面模型121和紋理圖124之外,3D模型114可以進一步包含其他資訊(圖未顯示)。例如,3D模型114可以包含諸如景象資訊的資訊。景象資訊可以包含有關光源、陰影、眩光等資訊。
3D模型114可以為各種目的而產生。其至少可以彩現處理(render)以用於顯示(for display),以使觀看者可以看到3D建模物體106的圖像表示。應用程式可以因各種目的而建立或者以其他方式載入3D模型114。應用程式可以藉由應用表示3D模型的虛擬立體圖的虛擬攝影機,計算出3D模型114的一個或多個視像。虛擬攝影機的位置、變焦、聚焦或方向可由使用者輸入改變。使用者輸入可以包含藉由點擊或拖曳指標、按方向鍵、將使用者的物理位置轉換成3D模型114中的虛擬位置等,以在3D模型114 中導航。
一旦判斷了3D模型的觀看者,應用程式可以將3D模型114轉換為一個或多個影像,其揭示進入3D模型114的窗口。如上文所述,窗口可由具有座標、視角、變焦、焦距、方位等的集合的虛擬攝影機定義。在一些實施例中,彩現處理的影像可以包括一個或多個多視像影像。多視像影像具有複數個視像,其中每個視像都對應於不同的視像方向。視像可以同時彩現處理(或感知為同時彩現處理),以便由多視像顯示器顯示。在此態樣,多視像影像可以是3D影像或為光場格式配置的影像。影像也可以是在2D顯示器上呈現的2D影像。
圖2A與圖2B是根據與本發明所述原理一致的一實施例,圖解對具有無紋理區域的物體建模的失敗案例的示意圖。區域可以包含像素或相鄰的像素的集團。圖2A描繪了由幾個物體組成的景象127。物體是指占用3D空間或可以建模為3D物體的事物。景象是指一個或多個物體。在此示例中,景象127包括各種物體,諸如漢堡、薯條和白色盤子。可以使用例如上文討論的關於圖1的處理從景象127產生3D模型。在此態樣,可以產生表面幾何和紋理圖以建模漢堡,如同其位於被薯條包圍的白色盤子上。
將此景象127建模為3D模型可能會在重建白色盤子的方面上具有挑戰性。白色盤子主要由無紋理區域組成。「無紋理(textureless)」區域或「無紋理」表面是影像中具有高色彩均勻性或一致反光度的一部分,因此幾乎沒有顏色變化。在不同的視角中無紋理區域看起來可能是相同的。漢堡和薯條具有足夠的紋理,以允許3D建模處理辨識不同角度中的關鍵點。例如,漢堡或薯條的顏色或角落可以在不同視像中追蹤。但是,因為白色盤子沒有紋理,其在不同的視角中看起來幾乎相同。可能很難從白板產生足夠的關鍵點資料。景象127的3D模型可能導致白色盤子扭曲或變形。因此,在對景象(例如像是圖2A的景象127)進行建模時,無紋理區域可能導致失敗。
圖2B提供更一般的示例,顯示在對物體進行精確建模時,無紋理區域如何導致失敗。物體在第一視像130a和第二視像130b中獲取。兩個視像(第一視像130a、第二視像130b)顯示物體的不同、部分重疊的視角。物體的第一區域133是有紋理的,而物體的第二區域135是無紋理的。例如,第一區域133可以包含顏色變化、圖案、顏色漸層、陰影或其它像素值變化的幅度。第二區域135 可以包含大致上均勻的顏色變化、缺乏圖案、缺乏陰影,或者以其他方式的同質性的像素變化。對於第一區域133,識別一對匹配關鍵點136可能會相對簡單。例如,第一區域133的紋理允許3D建模處理追蹤物體上的點,如同其表示在不同的、重疊的第一視像130a、第二視像130b中。圖2B顯示第一區域在不同視像的不同位置相對於同一物體的匹配關鍵點136。對於第二區域135,紋理的缺乏使其難以檢測第一視像130a和第二視像130b之間的關鍵點。圖2B顯示未匹配關鍵點139。因此,可能難以準確計算物體的第二區域135的表面幾何形狀。
圖3A與圖3B是根據與本發明所述原理一致的一實施例,圖解產生3D模型的示例的示意圖。圖3A顯示如何處理物體的輸入影像以產生具有臨時紋理的影像。臨時紋理存在於3D空間中,以增進在物體的不同視像中產生關鍵點資料的能力。圖3B顯示如何從具有臨時紋理的影像中產生3D模型。具體來說,3D模型是由3D表面模型和紋理圖組成的。具有臨時紋理的影像提供更準確的3D表面模型,而原始輸入影像用來產生紋理圖,藉此將臨時紋理從3D模型的最終彩現處理中排除。
圖3A和圖3B中討論的處理和資料可由儲存在記憶體中並由處理器執行的指令集執行。例如,圖3A和圖3B中描述的功能可由軟體應用程式或其他電腦可執行代碼實施,圖3A和圖3B中描述的資料可儲存到或載入到電腦記憶體中。
圖3A從接收輸入影像202開始,其影像形成與物體的不同的視角相對應的影像集合。輸入影像202可以是類似圖1中所述的影像集合112。例如,輸入影像202可以描述物體的不同視像,並且可以如圖1中所述從影像獲取處理103產生輸入影像202。在一些情況下,輸入影像202可以稱為第一影像的集合或第一影像集合。
執行影像註冊的影像註冊模組205接收輸入影像202。影像註冊是對每個影像判定座標的處理。例如,影像註冊判定輸入影像202中影像的相對位置,以推斷出視像方向和方位。此資料記錄為攝影機位姿208。可以為輸入影像202中的每個影像確定攝影機位姿208。攝影機位姿可以是元件矩陣,其中,元件表示影像的X、Y和Z座標以及影像的角度方向。換句話說,每個攝影機位姿208包括指示與影像相對應的視像(例如攝影機)的位置和方位的資訊。因此,輸入影像202中的每個影像具有由影像註冊模組205產生的對應攝影機位姿208。本發明中,「攝影機位姿(camera pose)」定義為指示物體視點的位置(position)和方位(orientation)的資訊。
接下來,如圖3A所示的是體積密度模型產生器211,其產生體積密度模型。體積密度模型可以是體積密度函數214,其將輸入座標和方向的集合轉換為體積密度值(例如,不透明度、透光率、透明度等)和顏色。例如,體積密度函數214可以符合或類似於下面的方程式(1):
F(x,y,z,θ,ϕ) = (σ,color) (1)
其中F是體積密度函數214,其接收變量 x、y、z、θ和ϕ的輸入,並輸出變量σ和顏色。變量x是沿x軸的座標,變量y是沿y軸的座標,並且變量z是沿z軸的座標。因此,變量x、變量y、變量z是特定輸入光線的位置的空間座標。變量θ是x軸和y軸之間的光線角度,變量j是z軸和xy平面之間的視像角度。因此,變量θ和變量j界定3D空間中光線的方向。這些輸入變量共同數學地界定3D空間中光線的方向。輸出的σ是特定點的不透明度(例如,體積密度)。這可能是3D空間中特定像素對特定輸入光線的透光率。當σ處於最大值(例如1)時存在實體像素 ,而當σ處於最小值(例如0)時沒有像素存在。在最大值和最小值之間是具有某種程度透明度的像素。顏色變量表示相對於輸入射線的像素顏色(在有的情況下)。顏色變量可以是RBG(紅、綠、藍)格式,如此其具有紅、綠、藍像素值。
體積密度函數214可以稱為輻射場函數,因為其對給定的輸入射線輸出像素的特徵值。因此,藉由提供與視窗相對應的輸入射線集合,可以從體積密度函數214建立影像。視窗可以是3D空間中的扁平矩形,以使其面對著物體。視窗可以定義為以窗口為界的光線集合。光線可以具有相同的方向(例如,變量θ和變量j),同時沿x軸、y軸和z軸的範圍。這被稱為「光線行進法(ray-marching)」,其中,光線集合輸入到體積密度函數214中,以建立構成對應視像的像素。因此,體積密度模型包括函數,其配置為產生至少一個與輸入攝影機位姿相對應的體積密度值的集合。
體積密度函數214可以藉由訓練神經網路模型而產生。在一些實施例中,神經網路模型包括神經輻射場(neural radiance field,NeRF)模型。本發明中,NeRF模型定義為藉由使用神經網路以估計景象的幾何形狀而產生的體積模型,神經網路使用影像集合以訓練,以使用相對較小的影像集合來預測連續視像中物體的不透明度和顏色。最終,NeRF模型包括體積密度函數214,其使用神經網路而產生,該神經網路使用訓練資料和輸入影像202。
具體來說,體積密度模型產生器211(例如NeRF模型產生器)接收輸入影像202以及對應的攝影機位姿208以產生體積密度函數214(例如,上文討論的函數F)。例如,體積密度模型產生器211從輸入影像202產生體積密度函數214,而不需已知的攝影機位姿208,使得體積密度函數214可以預測位於攝影機位姿208之間或之外的視角的像素值(和整個影像)。體積密度函數214可以基於輸入攝影機位姿或輸入光線輸出至少一個不透明度值或一些其它體積密度值。
實施例旨在產生紋理影像220的彩現處理器217。具體地,彩現處理器217從體積密度函數214和預定義的顏色函數223產生紋理影像220(例如,第二影像集合)。使用預定義的顏色函數223,彩現處理器217應用偽隨機紋理(pseudo-random texture),同時保留3D建模物體的體積密度。換句話說,如果體積密度函數214從輸入光線或輸入攝影機位姿輸出特定顏色(例如,函數F的顏色變量),則彩現處理器217將顏色值替換為由預定義的顏色函數223產生的顏色。此可以稱為偽隨機顏色或偽隨機紋理,因為其看起來任意應用於物體的3D模型,同時仍然符合某些確定性顏色函數。顏色函數是預定的,因為顏色函數可以與輸入影像202的顏色無關,如此在處理輸入影像202之前就已判定了顏色函數。預定義的顏色函數可以包含正弦函數,並且可以週期性地以偽隨機的方式引入雜訊以建立偽隨機紋理。
偽隨機顏色提供由預定義的顏色函數223定義的偽隨機紋理。偽隨機紋理可以是大理石紋理、交叉陰影紋理、鋸齒形紋理或任何其他紋理,其在小區域內具有相當高的顏色變化或像素值變化。例如,將大理石紋理應用於圖2B的景象,將導致具有在盤子上的漢堡以及薯條的形狀和表面輪廓的景象127同時具有一種顏色或紋理,就好像整個景象都是用大理石雕刻出來的一樣。此外,這種偽隨機紋理應用於3D空間,因此景象的視角的改變會導致偽隨機紋理在視角中被追蹤。
彩現處理器217可以從相同攝影機位姿208產生紋理影像220。彩現處理器217也可以使用體積密度函數214的能力從額外的攝影機位姿產生紋理影像220,以預測、外推或內插新視像上的體積密度值。彩現處理器217可以執行光線行進法,以提供輸入(例如位置座標、方向等)到體積密度函數214以產生對應輸入的體積密度值(例如不透明度)。彩現處理器217也可以使用預定義的顏色函數223為每個輸入產生偽隨機顏色值。紋理影像220可以儲存在記憶體中。紋理影像220類似於輸入影像202,但相對的,在保持由輸入影像202獲取的物體的體積密度的同時,應用偽隨機紋理。
接下來,圖3A顯示將第一影像集合(例如輸入影像202)與第二影像集合(例如紋理影像220)混合以產生第三影像集合(例如具有臨時紋理的影像224)的操作。例如,混合可以是有選擇性的,使得無紋理的輸入影像202的區域與紋理影像220的對應區域混合。其結果為具有臨時紋理的影像224,其中臨時紋理僅應用於輸入影像202中無紋理的區域。具有臨時紋理的影像224中的其餘區域看起來像輸入影像202。
具體地,無紋理區域檢測器226可以接收輸入影像202以產生無紋理區域資料229。無紋理區域檢測器226可以執行各種影像分析操作以檢測無紋理區域。這些影像分析操作可以在輸入影像的逐一像素位元圖上執行。在一些實施例中,無紋理區域檢測器226配置成藉由對輸入影像202應用角落檢測操作來識別輸入影像202的無紋理區域。不相鄰一個或多個角落或靠近任何邊緣的像素或區域被認定為無紋理的。換句話說,對於特定的像素或區域,存在於角落或邊緣的程度對應於該像素或區域是否是無紋理的。具有低程度的角落或邊緣的像素或區域認定是無紋理的,而具有高程度的角落或邊緣的像素或區域是有紋理的。
在其他實施例中,無紋理區域檢測器226可以分析輸入影像202上的任何區域,其包括在閾值像素值變異數(threthold pixel value variance)內的像素。例如,如果像素值變異數低於閾值,則認定為無紋理區域。在此態樣,無紋理表面的區域包括在閾值像素值變異數內的像素。像素值變異數是指像素值(例如,RGB範圍內的顏色)在相鄰像素之間的變化程度。低像素值變異數表示整個特定區域的顏色均勻。高顏色均勻性是無紋理區域的跡象。無紋理區域資料229表示每個輸入影像202的無紋理區域的位置。例如,無紋理區域資料229可以表示輸入影像202中的每個像素是否在無紋理區域內。閾值像素值變異數確立像素值差異量,其認定表面是無紋理或有紋理的。
在一些實施例中,無紋理區域檢測器226判定輸入影像202的特定像素或區域是無紋理的程度。無紋理區域資料229可以是每個輸入影像202的位元圖,其中,位元圖像素值表示輸入影像202中的對應像素屬於無紋理區域的程度。此處將相對圖4更詳細地討論。
無紋理區域檢測器226可以執行包含分配與輸入影像202的無紋理表面區域對應的混合權重的處理。無紋理區域資料229可以包含混合權重,其可以逐一像素地分配。混合權重是輸入影像202中像素紋理的程度或數量的函數。因此,混合權重的分配取決於像素位置是否在輸入影像202的無紋理區域內。例如,如果輸入影像202中的像素位於高紋理區域內,則對像素分配高混合權重。如果輸入影像202中的像素位於無紋理區域內,則對像素分配低混合權重。因此,像素的混合權重對應於與像素相關聯的紋理量。如上文所述,與像素相關聯的紋理量可以基於相鄰像素的像素值均勻性進行量化。
影像混合器232配置為將第一影像集合(例如輸入影像202)與第二影像集合(例如紋理影像220)混合以產生第三影像集合(例如具有臨時紋理的影像224)的操作。影像混合器232可以執行逐像素混合操作,其中,第一影像中的像素和第二影像中的像素(具有對應的位置)具有各個像素值,其像素值混合或者以其他方式相加在一起。此外,混合器可以為每個像素應用混合權重。例如,混合器可以根據以下方程式(2)混合像素:
混合像素值 = A*B + (1 – A)*C (2)
其中A是介於零與一之間的混合權重,B是第一影像中像素的像素值,以及C是第二影像中像素的像素值。例如,混合權重A大於0.5,則得到的混合像素值相對於第二影像中的對應像素,更偏向於第一影像中的像素。混合權重為一將得到第一影像中的相同像素,而不考慮第二影像中的對應像素。混合權重為零將得到第二影像中的相同像素,而不考慮第一影像中的對應像素。
輸入影像202中的無紋理區域將得到對紋理影像220加權的混合權重,而輸入影像202中的紋理區域將得到對輸入影像202加權的混合權重。因此,具有臨時紋理的影像224可以選擇地混合,以人工地將紋理引入到最初沒有紋理的輸入影像202。
圖3B顯示如何從輸入影像202和對應的具有臨時紋理的影像224產生3D模型。具有臨時紋理的影像提供給影像註冊模組205,以識別具有臨時紋理的影像224的攝影機位姿241。由於引入臨時紋理,與輸入影像202相比具有臨時紋理的影像224更適合精確判定關鍵點。紋理可以視為「臨時(temporary)」紋理,因為其最終會從3D模型的紋理圖中排除。但是,臨時紋理可以用於增進關鍵點檢測和匹配,以便在無紋理區域上獲得足夠數量的關鍵點。因此,具有臨時紋理的影像224允許更精確的表面幾何建模。
接下來,三角測量模組244產生3D點資料247。三角測量模組244 使用從影像註冊模組205和攝影機位姿241接收的關鍵點來識別複數個3D點。例如,藉由使用三角測量,根據不同攝影機位姿下匹配的關鍵點的位置判定3D點。每個關鍵點對應於由攝影機位姿241的方向所界定用於關鍵點的光線。對於所有匹配的關鍵點,這些光線的收斂點將產生3D點的位置。3D點資料247包含由具有臨時紋理的影像224表示的物體的3D空間中的各種點。使用臨時紋理填充原本無紋理的區域,可以增進3D點資料247。3D點資料247可以包含x-y-z座標系中的座標,這些座標對應於在具有臨時紋理的影像224中表示的物體的表面。
表面重建模組250可以將3D點資料轉換為3D表面模型253,其將具有臨時紋理的影像224中表示的物體的表面幾何形狀編碼。換句話說,表面重建模組250根據3D點資料的3D點資料247重建物體的表面。這可以類似圖1中的3D表面模型121。3D表面模型253可以包含連接3D點資料247 中的各個3D點以對物體表面進行建模的網格。3D表面模型253可以儲存為獨立檔案或構成3D模型的檔案的一部分。在這方面,表面重建模組250從第三影像集合(例如具有臨時紋理的影像224)產生3D表面模型253。
接下來,紋理映射模組256為3D表面模型253產生紋理圖259。紋理圖259可以類似於圖1的紋理圖124。紋理圖259用於從第一影像集合(例如輸入影像202)產生的3D表面模型。因此,當產生用於產生3D表面模型253的曲面幾何體的紋理圖259時,臨時紋理排除在考慮範圍之外。
最終地,從由輸入影像202表示的物體產生3D模型。3D模型具有3D表面模型,其藉由使用將臨時紋理應用於輸入影像202的至少無紋理區域來增進。3D模型也包含從輸入影像202產生的紋理圖259,其不包含臨時紋理。
3D模型可以由3D彩現處理模組262彩現處理以用於顯示。3D彩現處理模組262可以從3D模型產生單視像或多視像影像。在多視像彩現處理的背景中,3D彩現處理模組262可以同時將物體的視像集合彩現處理為多視像影像。3D彩現處理模組262可以使用圖形驅動器來彩現處理3D模型的一個或多個視像。
圖4是根據與本發明所述原理一致的一實施例,圖解應用臨時紋理的示例的示意圖。具體而言,圖4顯示上文討論的關於圖3A和圖3B的輸入影像202其中之一。輸入影像202描繪具有紋理區域270和無紋理區域273的物體的一個視像。紋理區域270顯示為具有斜線,斜線表示高顏色變化(例如紋理)的存在,其增加在物體的不同視像中檢測關鍵點的能力。無紋理區域273顯示為無圖案,無圖案表示可忽略顏色變化(例如無紋理)的存在,其在物體的不同視像中檢測關鍵點的能力。
紋理影像220根據上文相對於圖3A所討論的處理而從輸入影像202產生。物體的體積密度被保留,以在產生紋理影像220時,不會改變整體表面和形狀。然而,應用預定義的顏色函數產生偽隨機紋理276,其整體地應用於物體。因此,在紋理影像220中的物體採用顯示為垂直虛線的新偽隨機紋理276,然而具有與輸入影像202相同的形狀279(例如表面或輪廓)。
圖4也顯示選擇性地混合輸入影像202和紋理影像220以產生具有臨時紋理的影像224。具體來說,無紋理區域資料229(在實施例中顯示為位元圖遮罩(bitmap mask))藉由分析輸入影像202來判定無紋理區域而產生。在圖4的示例中,無紋理區域資料229是位元圖遮罩,其具有與輸入影像202和紋理影像220相同的像素尺寸。此位元圖遮罩具有像素,其分別對應於輸入影像202和紋理影像220中的像素對。例如,輸入影像202的最左上角像素和紋理影像220的最左上角像素對應於位元圖遮罩的最左上角像素。每個像素值表示相應的混合權重。例如,高像素值(例如較白或較亮的像素)表示有利於輸入影像202的混合權重,然而低像素值(例如較黑或較暗的像素)表示有利於紋理影像220的混合權重。位元圖遮罩具有較黑的像素的第一區域282。第一區域282映射到輸入影像202的無紋理區域273。可以有其它較小區域285,其也映射到輸入影像的無紋理區域。位元圖遮罩可以藉由分析目標像素周圍的顏色變化來判定。目標像素周圍的顏色變化程度判定目標像素是有紋理區域還是無紋理區域的一部分,和/或判定形成無紋理區域的目標像素的程度。為目標像素分配像素值,如位元圖遮罩中所示。像素值以圖像表示為特定陰影(例如白色、黑色、灰色等)。像素值對應於混合權重。在一些實施例中,為了判定像素值,可以對每個像素執行角落檢測操作,其中角落的存在程度對應於像素值。
位元圖遮罩可以用於執行輸入影像202和紋理影像220的加權混合。因此,在較黑區域內的像素(例如,第一區域282或者較小區域285)將具有更接近紋理影像220的相對應像素的像素值。在較白區域內的像素(例如,第一區域282以外或者較小區域285)將具有更接近輸入影像202的相對應像素的像素值。
具有臨時紋理的影像224具有輸入影像202的原始紋理區域,同時具有紋理影像220在無紋理區域273的位置的偽隨機紋理276。無紋理區域273的位置由位元圖遮罩分配為第一區域282。因此,具有臨時紋理的影像224具有臨時紋理288,其藉由選擇性地將輸入影像202與紋理影像220混合來應用。
圖5A與圖5B是根據與本發明所述原理一致的一實施例,圖解藉由使用臨時紋理增進3D模型的示例的示意圖。圖5A描繪具有臨時紋理的影像,其顯示為第一視像224a和第二視像224b。在各個不同視像(第一視像224a和第二視像224b)中表示的物體,具有原始紋理區域290。原始紋理區域290保持來自原始輸入影像(例如圖3A和圖3B的輸入影像202)用於產生第一視像224a和第二視像224b。此外,原始輸入影像具有無紋理區域,其修改為包含臨時紋理292。如圖3A中所討論的,臨時紋理292可以選擇性將輸入影像與紋理影像混合來應用。圖5A顯示臨時紋理的使用如何增進檢測更多關鍵點並將其匹配為匹配關鍵點294的能力,匹配關鍵點294在不同視像(第一視像224a和第二視像224b)中追蹤。關鍵點資料品質的提升提供增進的3D表面模型(例如圖3B的3D表面模型253)。
圖5B描繪由增進的3D表面模型(例如,圖3B的3D表面模型253)產生的第一彩現處理視像297a和第二彩現處理視像297b,以及直接從包含原始紋理或無紋理區域的輸入影像產生紋理圖(例如,圖3B的紋理圖259)。產生紋理圖以保留原始紋理區域290,同時排除臨時紋理292,從而產生原始無紋理表面298。因此,3D模型是從具有無紋理區域的輸入影像中適當重建的。第一彩現處理視像297a、第二彩現處理視像297b可以從此3D模型彩現處理,其保留輸入影像的原始顏色和紋理。
圖6是根據與本發明所述原理一致的一實施例,圖解產生三維(3D)模型的系統和方法的流程圖。圖6的流程圖提供由執行指令集的計算裝置實施的不同類型功能的一個示例。作為替代例,圖6的流程圖可視為描繪根據一個或多個實施例在計算裝置中實施的方法的元素的示例。
在項目304中,計算裝置從第一影像集合產生體積密度函數(例如,圖3A的體積密度函數214)。第一影像集合可以是從記憶體接收的輸入影像(例如圖3A和圖3B的輸入影像202)。可以根據影像獲取處理(例如,圖1的影像獲取處理103)產生第一影像集合。第一影像集合可以對應於物體的不同的視角。例如,輸入影像集合中的每一個影像表示物體的不同視像。體積密度函數可以判定與輸入攝影機位姿相對應的體積密度值的集合。在此態樣,體積密度函數是在第一影像集合中表示的物體的重建。輸出可以是基於輸入攝影機位姿(例如,具有特定位置和方向視窗)的體積密度值集合(例如,透明度)。
電腦系統可以使用神經網路模型來產生體積密度函數。電腦系統可以包含下文關於圖7討論的計算裝置,或者包含下文關於圖7討論的計算裝置的至少一些組件。例如,神經網路模型可以包括神經輻射場(neural radiance field,NeRF)模型。可以藉由辨識第一影像集合的複數個攝影機位姿並且從攝影機位姿產生體積密度函數來產生神經網路模型。例如,影像註冊模組(例如圖3A的影像註冊模組205)可以用於辨識第一影像集合中每個影像的攝影機位姿。第一影像集合可以具有至少一個無紋理區域。這可能會導致攝影機位姿的精度相對較低。
在項目307中,計算裝置從體積密度函數和預定義的顏色函數(例如,圖3A的預定義的顏色函數223)產生第二影像集合(例如,圖3A的第二影像集合220)。彩現處理器可以用於將各個攝影機位姿輸入到體積密度函數中以產生第二影像集合。此外,預定義的顏色函數可以在產生第二影像集合時應用偽隨機紋理。預定義的顏色函數可以產生顏色圖案,其對輸出進行紋理化處理。因此,如果體積密度函數輸出特定顏色,則預定義的顏色函數可以使用預定義顏色覆蓋輸出顏色,以將紋理引入第二影像集合,同時保留物體的表面幾何形狀。
接下來,計算裝置將第一影像集合與第二影像集合混合以產生第三影像集合(例如,具有臨時紋理的影像224)。第三影像集合可以保留第一影像集合的原始紋理區域,同時用產生的臨時紋理替換第一影像集合的無紋理區域。第一影像集合和第二影像集合的混合是關於實施例的項目310和項目313而描述的。
在項目310中,計算裝置辨識第一影像集合的無紋理區域。這可以藉由對第一影像集合應用角落檢測操作來判定區域是否為無紋理區域來完成。例如,無紋理區域可以藉由逐一像素或逐一區域地對第一影像集合應用角落檢測操作來辨識。計算裝置可以使用影像辨識或神經網路來執行角落檢測,以辨識由角落界定的區域。角落是兩條邊的交會處。如果無紋理區域包括閾值像素值變異數內的像素,則該區域可認定為無紋理區域。在此態樣,與角落或邊緣關聯的像素或區域可以具有高像素值變異數,然而很少或沒有角落/邊緣的像素或區域可以具有低像素值變異數。
在一些實施例中,可以為第一影像集合中的每個像素設置混合權重,其中,混合權重指示像素是否位於無紋理區域中或者為無紋理區域的一部分。混合權重可以對應於特定像素位置的紋理程度。因此,計算裝置可以分配混合權重,其指示像素是否至少為第一影像集合的無紋理區域的一部分。混合權重可以格式化為位元圖遮罩,以便逐一像素地(例如針對每個像素)設置混合權重。
項目313中,藉由響應無紋理區域的辨識,計算裝置將第一影像集合與第二影像集合混合以產生第三影像集合。例如,除了無紋理區域外,第三影像集合與所有區域中的第一影像集合相似。混合操作可以使用混合權重來分配無紋理區域的位置,如圖4的示例所示。因此,第三影像集合採用對第一影像集合(在相對於第一影像集合具有紋理的區域中)加權的混合像素值,或者採用對第二影像集合(在相對於第一影像集合無紋理的區域中)加權的混合像素值。
在項目316中,計算裝置從第三影像集合產生3D表面模型(例如,圖3B的3D表面模型253)。第三影像集合產生為無紋理區域,因為其為第一影像集合和第二影像集合的混合。3D表面模型可以藉由辨識第三影像集合的複數個攝影機位姿來產生。而影像註冊處理可以判定攝影機位姿。由於第三影像集合缺乏無紋理的區域,其可以產生更準確的攝影機位姿。接下來,3D表面模型的產生可以涉及使用複數個攝影機位姿辨識第三影像集合內的複數個3D點。這可以藉由在沿物體表面的點(如特定視像中所示)和相應攝影機位姿的座標之間執行三角測量來完成。接下來,根據3D點重建物體的表面。這可以涉及產生接近物體表面的網格。3D曲面模型的格式可以設置為包含曲面幾何形狀,而不包含任何紋理資訊。
在項目319中,計算裝置從第一影像集合產生紋理圖(例如圖3B的紋理圖259)以用於3D表面模型。藉由直接使用第一影像集合,可以將原始無紋理區域映射到3D表面模型上。
項目322中,計算裝置彩現處理3D表面模型和紋理圖以用於顯示。例如,3D表面模型和紋理圖共同形成由第一影像集合表示的物體的3D模型。計算裝置可以將此3D模型彩現處理為物體的單一視像或多視像影像,其包括物體的以不同的視角同時彩現處理的視像。因此,多視像影像至少可以提供從3D模型產生的物體的立體視像。
上文所討論的圖6的流程圖可以顯示產生3D模型的系統或方法,其具有體現為指令集的功能。如果以軟體實現,每個方框可以代表一模組、代碼的一區段、一部分,其中包括實現(多個)特定邏輯功能的指令。指令可以由原始碼的形式實現,包括以程式語言編寫的人類可讀語句、從源代碼編譯的目標碼、或者機器碼,其包括可以被合適的執行系統(如處理器或計算裝置)辨識的數字指令。機器碼可以從原始碼中轉換出,等等。如果以硬體實現,每個區塊可以表示一個電路或者多個互相連接的電路以實現分配的(多個)邏輯功能。
儘管圖6的流程圖顯示了具體的執行順序,但應理解的是,執行順序可以與所描述的不同。例如,兩個或多個區塊的執行順序可以相對於所示順序打亂。另外,所示的兩個或多個區塊可以為同時執行,也可以為部分同時執行。此外,在一些實施例中,可以跳過或者省略其中一個或多個方框,或者其中一個或多個方框可以同時執行。
圖7是根據與本發明所述原理一致的一實施例,繪示說明產生和彩現處理3D模型以顯示的計算裝置的示例的示意方塊圖。計算裝置1000可以包含組件系統,其為計算裝置1000的使用者執行各種電腦操作。計算裝置1000是電腦系統的示例。例如,計算裝置1000 可以表示3D模型產生系統的組件。計算裝置1000可以是膝上型電腦、平板電腦、智慧型手機、觸控螢幕系統、智慧型顯示系統、其他客戶端裝置、伺服器、或其他計算裝置。計算裝置1000可以包含各種組件,例如處理器1003、記憶體1006、輸入/輸出(I/O)組件1009、顯示器1012以及其他可能的組件。這些組件可以耦接到用作局部介面的匯流排1015,以允許計算裝置1000的組件互相通訊。儘管計算裝置1000的組件顯示為包含在計算裝置1000中,應理解為,至少部分組件可以藉由外部連接耦接到計算裝置1000。例如,組件可以經由外部埠、插座、插頭或連接器從外部插入計算裝置1000或者以其他方式連接計算裝置1000。
處理器1003可以包含中央處理單元(CPU)、圖形處理單元(GPU)、執行電腦處理操作的任何其他積體電路,或其組合。(多個)處理器1003可以包含一個或多個處理核心。(多個)處理器1003包括執行指令的電路。指令包含,例如,電腦編碼、程式、邏輯或其他機器可讀指令,其藉由(多個)處理器1003接收並執行,以執行指令中包含的電腦功能。(多個)處理器1003可以執行指令以操作資料。例如,(多個)處理器1003可以接收輸入資料(例如影像)、根據指令集處理輸入資料、並產生輸出資料(例如,處理後的影像)。作為另一個示例,(多個)處理器1003可以接收指令並產生新指令以用於後續執行。處理器1003可以包括實施圖形管線的硬體,以彩現處理由應用程式產生的影像或從3D模型取得的影像。例如,(多個)處理器1003可以包括一個或多個GPU核心、向量處理器、純量處理器或硬體加速器。
記憶體1006可以包含一個或多個記憶體組件。記憶體1006在本發明中界定為包含揮發性和非揮發性記憶體其中之一或之二。揮發性記憶體組件是指那些在斷電後不會保留資訊的記憶體組件。例如,揮發性記憶體可以包含隨機存取記憶體(RAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、磁性隨機存取記憶體(MRAM)或其他隨機存取記憶體結構。系統記憶體(例如,主記憶體、快取記憶體等)可以使用揮發性記憶體以實現。系統記憶體是指快速記憶體,其可以臨時儲存用於快速讀取和寫入存取的資料或指令以輔助(多個)處理器1003的指令。圖像可以儲存或載入到記憶體中以供後續存取。
非揮發性記憶體組件是在斷電後保留資訊的記憶體組件。非揮發性記憶體包含唯讀記憶體(ROM)、硬碟驅動器,固態硬碟、USB隨身碟、經由記憶卡讀取器訪問的記憶卡、經由關聯的軟碟驅動器存取的軟碟、經由光碟驅動器存取的光碟、經由適當的磁帶驅動器存取的磁帶。ROM可以包括,例如,可程式化唯讀記憶體(PROM)、可抹除可程式化唯讀記憶體(EPROM)、可電氣抹除可程式化唯讀記憶體(EEPROM)或其他類似記憶體裝置。可以使用非揮發性記憶體以實現儲存記憶體,以提供資料和指令的長期保留。
記憶體1006可以指用於儲存指令以及資料的揮發性和非揮發性記憶體的組合。例如,資料和指令可以儲存在非揮發性記憶體中,並且加載到揮發性記憶體中以由(多個)處理器1003進行處理。例如,指令的執行可以包含:編譯程式,其譯為格式可以從非揮發性記憶體加載到揮發性記憶體中的機器碼,然後由處理器1003運行;原始碼,其轉換為適當格式,例如能夠加載到揮發性記憶體中以供處理器1003執行的目標碼;或者原始碼,其由另一可執行程式解譯以在揮發性記憶體中產生指令並由處理器1003執行碼。指令可以儲存或加載到記憶體1006的任何部分或組件,例如,記憶體1006包含RAM、ROM、系統記憶體、儲存器或其任何組合。
雖然記憶體1006顯示為與計算裝置1000的其他組件分離,應當理解為,記憶體1006可以至少部分地嵌入或者以其他方式整合到一個或多個組件中。例如,(多個)處理器1003可以包含內建記憶體暫存器,其暫存或快取以執行處理操作。
例如,(多個)I/O組件1009包含觸控螢幕、揚聲器、麥克風、按鈕、開關、轉盤、攝影機、感測器、加速計或其他組件以接收使用者輸入或產生導向使用者的輸出。(多個)I/O組件1009可以接收使用者輸入並轉換為資料,以儲存在記憶體1006中或由處理器1003處理。(多個)I/O組件1009可以接收由記憶體1006或(多個)處理器1003輸出的資料,並將其轉換為使用者可以感知的形式(例如,聲音、觸覺響應、視覺資訊等)。
I/O組件1009的特定類型是顯示器1012。顯示器1012可以包含多視像顯示器、與二維顯示器結合的多視像顯示器、或者任何其他呈現影像的顯示器。可以在顯示器內疊放作為I/O組件1009的電容式觸控螢幕層,以讓使用者在感知視覺輸出同時提供輸入。(多個)處理器1003可以產生資料,其以影像的形式呈現在顯示器1012上。處理器1003可以執行指令以在顯示器上對使用者呈現影像。
匯流排1015有利於(多個)處理器1003、記憶體1006、(多個)I/O組件1009、顯示器1012和計算裝置1000的任何其他組件之間的指令和資料通訊。匯流排1015可以包含位址轉換器、位址解碼器、結構、導電跡線、導線、端口、插頭、插座和其他連接器,以讓資料和指令通訊。
記憶體1006內的指令可以由各種實現至少一部分的軟體堆疊的方式實現。例如,這些指令可以體現為操作系統1031、(多個)應用程式1034、裝置驅動器(例如顯示驅動器1037)、韌體(例如顯示韌體1040)或其他軟體組件。操作系統1031是支援計算裝置1000的基本功能的軟體平台,諸如排程任務、控制I/O組件1009、提供硬體資源的存取、管理電源以及支持應用程式1034。
(多個)應用程式1034可以經由操作系統1031在操作系統1031上執行,並且存取計算裝置1000的硬體資源。在此態樣,(多個)應用程式1034的執行至少一部分由操作系統1031控制。(多個)應用程式1034可以是向使用者提供高級功能、服務和其他功能的使用者級軟體程式。在一些實施例中,應用程式1034可以是專用的「app」,使用者可以在計算裝置1000下載或者以其他方式存取。使用者可以經由操作系統1031提供的使用者介面以啟動(多個)應用程式1034。(多個)應用程式1034可以由開發人員開發並定義為各種原始碼格式。可以使用各種程式語言或手稿語言以開發應用程式1034,例如C、C ++、C#、Objective C,Java®、Swift、JavaScript®、Perl、PHP、VisualBasic®、Python®、Ruby、Go或其他手稿語言。(多個)應用程式1034可以由編譯器編譯成目標碼,或者可以由解譯器解譯以由(多個)處理器1003執行。
諸如顯示驅動器1037的裝置驅動器包含指令,其讓操作系統1031與各種I/O組件1009通訊。每個I/O組件1009可以具有自身的裝置驅動器。可以安裝裝置驅動器,以使其儲存在儲存器中並加載到系統記憶體中。例如,安裝後,顯示驅動器1037將從操作系統1031接收的高階顯示指令轉換成由顯示器1012實施的較低階指令以顯示影像。
韌體,例如顯示韌體1040,可以包含允許I/O組件1009或顯示器1012執行低階操作的機器碼或組合語言碼。韌體可以將特定組件的電訊號轉換成更高階的指令或資料。例如,顯示韌體1040可以藉由調整電壓或電流訊號以控制顯示器1012如何啟動低位準電壓的各個像素。韌體可以儲存在非揮發性記憶體中,並且可以直接從非揮發性記憶體執行。例如,顯示韌體1040可以體現在耦接到顯示器1012的ROM晶片中,從而使ROM晶片與計算裝置1000的其他儲存器和系統記憶體分開。顯示器1012可以包含用於執行顯示韌體1040的處理電路。
操作系統1031、(多個)應用程式1034、驅動器(例如顯示驅動器1037)、韌體(例如顯示韌體1040)以及其他可能的指令集,可以各自包括(多個)處理器1003可執行的指令、或者計算裝置1000的其他處理電路,以執行上述功能和操作。儘管本發明所述的指令可以實現為由上述(多個)處理器1003執行的軟體或代碼,但作為替代,指令也可以實現為在專用硬體或軟體和專用硬體的組合中。例如,上文所述的指令執行的功能和操作可以實施為電路或狀態機,其採用多種技術中的任一種或其組合。這些技術可以包含但不限於:分立邏輯電路,其具有用於在應用一個或多個資料訊號時實施各種邏輯功能的邏輯閘;具有適當邏輯閘的特殊應用積體電路(ASIC);現場可程式邏輯閘陣列(FPGA);或者其他組件等。
在一些實施例中,實施上文所討論的功能和操作的指令可以實現在非暫時性電腦可讀取儲存媒體中。例如,實施例旨在儲存可執行指令的非暫時性電腦可讀取儲存媒體,當可執行指令由電腦系統(例如計算裝置1000)的處理器(例如處理器1003)執行時,會使處理器執行上文所述的各種功能,包含從輸入影像集合產生3D模型的處理。非暫時性電腦可讀取儲存媒體可以是或可以不是計算裝置1000的一部分。例如,指令可以包含可以從電腦可讀取媒體獲取並由處理電路(例如(多個)處理器1003)執行的敘述、代碼或宣告。在本發明的定義中,「非暫時性電腦可讀取儲存媒體」界定為可以包含:儲存或保持本發明所述指令以供指令執行系統(例如計算裝置1000)使用或與其結合的任何媒體,並且進一步排除例如包含載波的暫時性媒體。
非暫時性電腦可讀取儲存媒體可以包括多種實體媒體其中任一種,例如磁性、光學或半導體媒體。合適的非暫時性電腦可讀取儲存媒體的更具體的示例可以包含但不限於:磁帶、軟磁碟、硬磁碟、記憶卡、固態硬碟、USB隨身碟或光碟。並且,非暫時性電腦可讀取儲存媒體可以是隨機存取記憶體(RAM),例如,其包含靜態隨機存取記憶體(SRAM)和動態隨機存取記憶體(DRAM)或磁性隨機存取記憶體(MRAM)。另外,非暫時性電腦可讀取儲存媒體可以是唯讀記憶體(ROM)、可程式化唯讀記憶體(PROM)、可抹除可程式化唯讀記憶體(EPROM)、可電氣抹除可程式化唯讀記憶體(EEPROM)或其他種類的記憶體裝置。
計算裝置1000可以執行上述的任何操作或實現上述的功能。例如,上文討論的流程圖和處理流程可以由執行指令並處理資料的計算裝置1000以執行。儘管計算裝置1000顯示為單一裝置,但是實施例不限於此。在一些實施例中,計算裝置1000可以由分佈式的方式卸載指令的處理,以使複數個計算裝置1000一起操作以執行指令,指令可以由電腦組件的分佈式排列以儲存或載入。例如,至少一些指令或資料可以在與計算裝置1000結合操作的雲端式系統中儲存、加載或執行。
因此,本發明已描述了從輸入影像集合產生3D模型的示例和實施例。這可以藉由將顏色函數產生的偽隨機紋理應用於物體的體積密度模型來完成。這產生了物體的紋理化版本(不會產生無紋理區域),以便保留物體的原始體積密度。3D表面模型是由紋理化版本(或紋理版本的混合版本)產生的,而紋理圖是由輸入影像集合產生的。因此,3D模型具有與輸入影像集合所代表的物體相同的紋理,而其表面幾何形狀則由紋理化版本產生。應該理解的是,上述示例僅是說明本發明所述的原理的多個具體示例的其中一些示例。很明顯的,所屬技術領域中具有通常知識者可以輕易設計出多種其他配置,但這些配置不會超出本發明申請專利範圍所界定的範疇。
本申請案主張於2021年2月28日提交的第PCT/2021/020165號國際專利申請的優先權,本發明引用其全文並將其併入本發明。
103:影像獲取處理
106:物體
109:攝影機
112:影像集合
114:3D模型
115:3D建模處理
121:3D表面模型
124:紋理圖
127:景象
130a:第一視像
130b:第二視像
133:第一區域
135:第二區域
136:匹配關鍵點
139:未匹配關鍵點
202:輸入影像
205:影像註冊模組
208:攝影機位姿
211:體積密度模型產生器
214:體積密度函數
217:彩現處理器
220:紋理影像
223:預定義的顏色函數
224:具有臨時紋理的影像
224a:第一視像
224b:第二視像
226:無紋理區域檢測器
229:無紋理區域資料
232:影像混合器
241:攝影機位姿
244:三角測量模組
247:3D點資料
250:表面重建模組
253:3D表面模型
256:紋理映射模組
259:紋理圖
262:3D彩現處理模組
270:紋理區域
273:無紋理區域
276:偽隨機紋理
279:形狀
282:第一區域
285:較小區域
288:臨時紋理
290:原始紋理區域
292:臨時紋理
294:匹配關鍵點
297a:第一彩現處理視像
297b:第二彩現處理視像
298:原始無紋理表面
304:項目
307:項目
310:項目
313:項目
316:項目
319:項目
322:項目
1000:計算裝置
1003:處理器
1006:記憶體
1009:輸入/輸出組件、I/O組件
1012:顯示器
1015:匯流排
1031:操作系統
1034:應用程式
1037:顯示驅動器
1040:顯示韌體
根據在本發明所述的原理的示例和實施例的各種特徵可以參考以下結合附圖的詳細描述而更容易地理解,其中相同的元件符號表示相同的結構元件,並且其中:
圖1是根據與本發明所述原理一致的一實施例,圖解將實體物體轉換為三維(3D)模型的處理的示意圖。
圖2A與圖2B是根據與本發明所述原理一致的一實施例,圖解對具有無紋理區域的物體建模的失敗案例的示意圖。
圖3A與圖3B是根據與本發明所述原理一致的一實施例,圖解產生3D模型的示例的示意圖。
圖4是根據與本發明所述原理一致的一實施例,圖解應用臨時紋理的示例的示意圖。
圖5A與圖5B是根據與本發明所述原理一致的一實施例,圖解藉由使用臨時紋理增進3D模型的示例的示意圖。
圖6是根據與本發明所述原理一致的一實施例,圖解產生3D模型的系統和方法的流程圖。
圖7是根據與本發明所述原理一致的一實施例,繪示說明產生和彩現處理3D模型以用於顯示的計算裝置的示例的示意方塊圖。
特定示例和實施例具有上述參考附圖所示的特徵之外的其他特徵,或者具有代替上述參考附圖中所示的特徵的其他特徵。下文將參照上述參考附圖,詳細描述這些特徵和其他特徵。
202:輸入影像
205:影像註冊模組
208:攝影機位姿
211:體積密度模型產生器
214:體積密度函數
217:彩現處理器
220:紋理影像
223:預定義的顏色函數
224:具有臨時紋理的影像
226:無紋理區域檢測器
229:無紋理區域資料
232:影像混合器
Claims (20)
- 一種提供三維(3D)模型的電腦實施方法,該方法包括: 由一第一影像集合產生一體積密度函數,該第一影像集合對應一物體的不同的視角; 由該體積密度函數和一預定義的顏色函數產生一第二影像集合; 混合該第一影像集合與該第二影像集合,以產生一第三影像集合; 由該第三影像集合產生一3D表面模型;以及 由該第一影像集合產生用於該3D表面模型的一紋理圖, 其中,該3D表面模型和該紋理圖配置以被彩現處理以用於顯示。
- 如請求項1之方法,其中,該體積密度函數產生與一輸入攝影機位姿相對應的體積密度值的一集合。
- 如請求項2之方法,其中,該體積密度函數是包括一神經輻射場模型(NeRF)的一神經網路模型。
- 如請求項1之方法,其中,所述混合包括: 分配一混合權重,該混合權重指示一像素是否為該第一影像集合的一無紋理區域的一部分;以及 根據該混合權重,混合該第一影像集合與該第二影像集合。
- 如請求項4之方法,其中,該無紋理區域包括在一閾值像素值變異數內的像素。
- 如請求項1之方法,進一步包括: 辨識該第一影像集合的複數個攝影機位姿;以及 由該攝影機位姿產生該體積密度函數。
- 如請求項1之方法,其中,所述產生該第三影像集合的該3D表面模型包括: 辨識該第三影像集合的複數個攝影機位姿; 使用該第三影像集合的該複數個攝影機位姿,辨識該第三影像集合中的複數個3D點;以及 根據該等3D點重建該物體的一表面。
- 如請求項1之方法,其中,所述彩現處理該3D表面模型和該紋理圖以用於顯示包括同時將該物體的視像的一集合彩現處理為一多視像影像。
- 一種三維(3D)模型產生系統,包括: 一處理器;以及 一記憶體,儲存複數個指令,該複數個指令執行時會使該處理器執行以下處理: 由一第一影像集合產生一體積密度函數,該第一影像集合對應於一物體的不同的視角; 由該體積密度函數產生一第二影像集合,其中,應用一偽隨機紋理來產生該第二影像集合; 混合該第一影像集合與該第二影像集合,以產生一第三影像集合; 由該第三影像集合產生一3D表面模型;以及 由該第一影像集合產生用於該3D表面模型的一紋理圖, 其中,一電腦系統配置以彩現處理該3D表面模型和該紋理圖以用於顯示。
- 如請求項9之系統,其中,該體積密度模型包括一函數,該函數配置為判定與一輸入攝影機位姿相對應的體積密度值的一集合。
- 如請求項9之系統,其中,該體積密度模型包括一神經輻射場模型。
- 如請求項9之系統,其中,該記憶體儲存該複數個指令,該複數個指令執行時會進一步使該處理器執行以下處理: 藉由對該第一影像集合應用一角落檢測操作來辨識該第一影像集合的一無紋理區域,以判定一區域是否為一無紋理區域;以及 藉由響應所述無紋理區域的辨識,混合該第一影像集合與該第二影像集合以產生一第三影像集合。
- 如請求項12之系統,其中,該無紋理區域包括在一閾值像素值變異數內的像素。
- 如請求項9之系統,其中,該記憶體儲存該複數個指令,該複數個指令執行時會進一步使該處理器執行以下處理: 辨識該第一影像集合的複數個攝影機位姿;以及 根據該攝影機位姿由該第一影像集合產生該體積密度模型。
- 如請求項9之系統,其中,該記憶體儲存該複數個指令,該複數個指令執行時會進一步使該處理器執行以下處理: 辨識該第三影像集合的複數個攝影機位姿; 使用該第三影像集合的該複數個攝影機位姿,辨識該第三影像集合中的複數個3D點;以及 根據該等3D點重建該物體的表面以產生該3D表面模型。
- 如請求項9之系統,其中,藉由同時將該物體的視像的一集合彩現處理為一多視像影像,該3D表面模型和該紋理圖配置以被彩現處理以用於顯示。
- 一種非暫時性電腦可讀取儲存媒體,儲存可執行的指令,當該等可執行的指令由一電腦系統的一處理器執行時,會執行產生一第一影像集合的一三維(3D)模型的操作,該等操作包括: 由該第一影像集合產生一神經輻射場 (NeRF) 模型,該第一影像集合對應一物體的不同的視角; 由該神經輻射場模型和一預定義的顏色函數產生一第二影像集合; 混合該第一影像集合與該第二影像集合,以產生一第三影像集合; 由該第三影像集合產生一3D表面模型;以及 由該第一影像集合產生用於該3D表面模型的一紋理圖, 其中,該電腦系統配置以彩現處理該3D表面模型和該紋理圖以用於顯示。
- 如請求項17之非暫時性電腦可讀取儲存媒體,其中,該等操作進一步包括: 分配混合權重,該等混合權重對應該第一影像集合的無紋理表面的區域;以及 根據該等混合權重,混合該第一影像集合與該第二影像集合,以產生一第三影像集合。
- 如請求項18之非暫時性電腦可讀取儲存媒體,其中,該等無紋理表面的該等區域包括在一閾值像素值變異數內的像素。
- 如請求項17之非暫時性電腦可讀取儲存媒體,其中,藉由同時將該物體的視像的一集合彩現處理為一多視像影像,該3D表面模型和該紋理圖配置以被彩現處理以用於顯示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
WOPCT/US21/20165 | 2021-02-28 | ||
PCT/US2021/020165 WO2022182369A1 (en) | 2021-02-28 | 2021-02-28 | Method and system providing temporary texture application to enhance 3d modeling |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202247106A true TW202247106A (zh) | 2022-12-01 |
TWI810818B TWI810818B (zh) | 2023-08-01 |
Family
ID=83049305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111105580A TWI810818B (zh) | 2021-02-28 | 2022-02-16 | 提供三維模型的電腦實施方法與系統及其相關之儲存媒體 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20230394740A1 (zh) |
EP (1) | EP4298606A1 (zh) |
JP (1) | JP2024508457A (zh) |
KR (1) | KR20230135660A (zh) |
CN (1) | CN116917946A (zh) |
CA (1) | CA3210872A1 (zh) |
TW (1) | TWI810818B (zh) |
WO (1) | WO2022182369A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230154101A1 (en) * | 2021-11-16 | 2023-05-18 | Disney Enterprises, Inc. | Techniques for multi-view neural object modeling |
KR20240054780A (ko) * | 2022-10-19 | 2024-04-26 | 네이버랩스 주식회사 | 객체 포즈 보정 방법 및 시스템 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8698799B2 (en) * | 2009-01-20 | 2014-04-15 | Adobe Systems Incorporated | Method and apparatus for rendering graphics using soft occlusion |
TW201118791A (en) * | 2009-11-27 | 2011-06-01 | Inst Information Industry | System and method for obtaining camera parameters from a plurality of images, and computer program products thereof |
KR101828710B1 (ko) * | 2016-10-14 | 2018-03-23 | 중앙대학교 산학협력단 | 객체 가려짐 검출 장치 및 그 방법 |
US10572979B2 (en) * | 2017-04-06 | 2020-02-25 | Pixar | Denoising Monte Carlo renderings using machine learning with importance sampling |
WO2019050038A1 (ja) * | 2017-09-11 | 2019-03-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 画像生成方法および画像生成装置 |
US10489961B2 (en) * | 2018-02-12 | 2019-11-26 | Wayfair Llc | Systems and methods for generating textured three-dimensional models |
-
2021
- 2021-02-28 EP EP21928309.0A patent/EP4298606A1/en active Pending
- 2021-02-28 CN CN202180094702.9A patent/CN116917946A/zh active Pending
- 2021-02-28 WO PCT/US2021/020165 patent/WO2022182369A1/en active Application Filing
- 2021-02-28 KR KR1020237029161A patent/KR20230135660A/ko unknown
- 2021-02-28 JP JP2023551970A patent/JP2024508457A/ja active Pending
- 2021-02-28 CA CA3210872A patent/CA3210872A1/en active Pending
-
2022
- 2022-02-16 TW TW111105580A patent/TWI810818B/zh active
-
2023
- 2023-08-21 US US18/236,338 patent/US20230394740A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2024508457A (ja) | 2024-02-27 |
WO2022182369A1 (en) | 2022-09-01 |
CA3210872A1 (en) | 2022-09-01 |
EP4298606A1 (en) | 2024-01-03 |
US20230394740A1 (en) | 2023-12-07 |
TWI810818B (zh) | 2023-08-01 |
KR20230135660A (ko) | 2023-09-25 |
CN116917946A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hedman et al. | Casual 3D photography | |
CN105374065B (zh) | 用于在渲染图像中使用的可重新照明纹理 | |
US8274530B2 (en) | Systems and methods for filling occluded information for 2-D to 3-D conversion | |
TWI810818B (zh) | 提供三維模型的電腦實施方法與系統及其相關之儲存媒體 | |
US20080228449A1 (en) | Systems and methods for 2-d to 3-d conversion using depth access segments to define an object | |
US20080226194A1 (en) | Systems and methods for treating occlusions in 2-d to 3-d image conversion | |
CN110140151B (zh) | 用于生成光强度图像的装置和方法 | |
CN110998669A (zh) | 图像处理装置和方法 | |
US6515658B1 (en) | 3D shape generation apparatus | |
CN110945868B (zh) | 用于生成场景的平铺三维图像表示的装置和方法 | |
JP2016537901A (ja) | ライトフィールド処理方法 | |
US8854392B2 (en) | Circular scratch shader | |
Boom et al. | Interactive light source position estimation for augmented reality with an RGB‐D camera | |
CN115439616A (zh) | 基于多对象图像α叠加的异构对象表征方法 | |
CN113424231A (zh) | 用于生成光强度图像的装置和方法 | |
Liu et al. | Fog effect for photography using stereo vision | |
KR20230149093A (ko) | 영상 처리 방법, 영상 처리를 위한 트레이닝 방법, 및 영상 처리 장치 | |
EP4040397A1 (en) | Method and computer program product for producing a 3d representation of an object | |
KR20220133766A (ko) | 멀티뷰 어안 렌즈들을 이용한 실시간 전방위 스테레오 매칭 방법 및 그 시스템 | |
JP5865092B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
KR20230013099A (ko) | 실시간 깊이 맵을 사용한 지오메트리 인식 증강 현실 효과 | |
EP4258221A2 (en) | Image processing apparatus, image processing method, and program | |
Chen et al. | A quality controllable multi-view object reconstruction method for 3D imaging systems | |
GB2573593A (en) | Augmented reality rendering method and apparatus | |
Mihut et al. | Lighting and Shadow Techniques for Realistic 3D Synthetic Object Compositing in Images |