首頁 科技週邊 人工智慧 神經體繪製:NeRF及其以外法

神經體繪製:NeRF及其以外法

Apr 12, 2023 pm 07:13 PM
ai 神經網路

参考论文总结“NEURAL VOLUME RENDERING: NERF AND BEYOND“,2021年1月,乔治亚理工和麻省理工的合著。

神經體繪製:NeRF及其以外法

神经渲染定义为:

“一种深度图像或视频生成方法,可显式或隐式控制场景属性,如照明、摄像机参数、姿势、几何、外观和语义结构”。

它是一种新数据驱动解决方案,解决了计算机图形学中长期存在的虚拟世界真实感渲染问题。

神经体渲染,是指通过跟踪光线进入场景并沿光线长度进行某种积分生成图像或视频的方法。通常,像多层感知器一样的神经网络将从光线的3D坐标到密度和颜色等的函数进行编码,并集成生成图像。

神经体渲染的直接先驱工作是用神经网络定义隐式曲面表示的方法。许多3D感知图像生成方法使用体素、网格、点云或其他表示,通常基于卷积架构。但在2019年CVPR上,至少有三篇论文介绍了用神经网络作为标量函数近似来定义占有率(occupancy)和/或符号距离函数(SDF)。

  • Occupancy networks引入基于坐标的隐式占有学习。由5个ResNet块组成的网络,输入采用特征向量和3D点,预测二值占用。
  • IM-NET用6层MLP解码器,在给定特征向量和3D坐标的情况下预测二值占有。可用于自动编码、形状生成(GAN-样式)和单视图重建。
  • DeepSDF直接从一个3D坐标和一个潜代码中提取符号距离函数。它使用了一个8层MPL,其中到第4层有跳连接。
  • PIFu表明,将3D点重新投影到像素对齐的特征表示中,可以学习特别详细的隐式模型。这个在PixelNeRF中会重演,效果非常好。

其他采用隐函数的方法有:

  • Structured Implicit Functions(2019)表明,可以组合这些隐式表示,例如,简单地求和。
  • CvxNet(2020)通过采用逐点Max(3D)组合符号距离函数。
  • BSP网络(2020)在许多方面类似于CvxNet,但在其核心使用二值空间划分,产生了一种局部输出多边形网格的方法,而不是通过昂贵的网格划分方法。
  • Deep Local Shapes(2020)将深度SDF潜代码存储在体素网格中,表示更大的扩展场景。
  • Scene Representation Networks(2019)或SRN,在架构上与DeepSDF非常相似,但添加可微分光线行进算法找到学习的隐式曲面最近交点,并添加MLP回归颜色,能够从多个姿态的图像中学习。
  • Differentiable Volumetric Rendering(2019)表明,隐式场景表示可以与可微分渲染器相结合,从图像中可以进行训练,类似于SRN。用“体渲染器”一词,但真正的主要贡献是一个巧妙的技巧,使隐式曲面的深度计算可微分:不在体上积分。
  • Implicit Differentiable Renderer(2020)提供了类似的技术,但具有更复杂的表面光场表示,表明它可以在训练期间优化摄像头姿态。
  • Neural Articulated Shape Approximation(2020)或NASA,组成隐式函数来表示关节目标,如人体。

并非完全无中生有,尽管仍然是基于(warped)体素的表示,神经体(Neural Volumes)论文引入了用于视图合成的体渲染,回归了密度和颜色的3D体。潜代码被解码成3D体,然后通过体渲染获得新图像。

其提出在3D空间中的每个位置使用不透明度和颜色组成的体表示,其中通过积分投影实现渲染。在优化过程中,这种半透明的几何表示沿积分射线分散梯度信息,有效地扩大了收敛范围,从而能够发现良好的解决方案。

引起大家讨论的论文是神经辐射场NeRF论文(2020年)。本质上,用深度SDF架构,但回归的不是有符号距离函数(SDF),而是密度和颜色。然后,用(容易微分的)数值积分方法来近似真实的体渲染步骤。

NeRF模型将体场景表示存储为MLP的权重,并在许多有已知姿态的图像上进行训练。通过沿每条查看光线以规则间隔集成密度和颜色来渲染新视图。

NeRF非常详细渲染的原因之一是,使用周期性激活函数(periodic activation functions),即傅立叶特征,对光线上的3D点和相关视图方向进行编码。这一创新后来被推广到周期性激活函数的多层网络,即SIREN(SInusoidal- REpresentation Networks)。这两篇文章都发表在NeurIPS 2020上。

可以說,NeRF論文的影響在於其殘酷的簡單性:只需一個MLP在5D座標下輸出密度和顏色。有一些華麗點綴(bells and whistles),特別是位置編碼和分層抽樣方案,但驚訝於如此簡單的架構可以產生如此令人印象深刻的結果。儘管如此,原始NeRF留下了許多改進的機會:

  • 訓練和渲染速度都很慢。
  • 只能表示靜態場景。
  • 固定照明。
  • 經過訓練的NeRF表示不會推廣到其他場景/目標。

一些專案/論文旨在改善原始NeRF論文的相當緩慢的訓練和渲染時間。

  • JaxNeRF(2020)用JAX支援(https://github.com/google/jax#)多設備訓練,從幾天變成幾小時,大幅加快速度。
  • AutoInt(2020)直接學習體積分,大大加快了渲染速度。
  • Learned Initialization(2020)使用元學習來尋找良好的權重初始化,並加快訓練速度。
  • DeRF(2020)將場景分解為“軟 Voronoi圖”,利用加速器記憶體架構。
  • NERF(2020)建議以單獨的NERF對背景建模,處理無限場景。
  • Neural Sparse Voxel Fields(2020)將場景組織為稀疏體素八叉樹,將渲染速度提高10倍。

至少有四項工作專注於動態場景:

  • Nerfies(2020)及其底層D-NeRF對可變形視訊建模,使用第二個MLP對影片的每一幀應用變形。
  • D-NeRF(2020)與Nerfies論文非常相似,甚至使用相同的縮寫詞,但似乎限制了平移的變形。
  • Neural Scene Flow Fields(2020)採用已知攝影機姿態的單眼視訊作為輸入,深度預測作為先驗,並輸出場景流進行正則化,用於損失函數。
  • Spatial-Temporal Neural Irradiance Field(2020)僅使用時間作為額外輸入。要成功訓練這種方法來渲染任意視點影片(來自RGB-D資料!),需要仔細選擇損失函數。
  • NeRFlow(2020)使用變形MLP對場景流建模,並跨時域進行積分,獲得最終變形。
  • NR NeRF(2020)也以變形MLP對非剛性情境建模。除了攝影機參數之外,它不依賴預先計算的場景信息,但與Nerfies相比,產生的輸出稍微不那麼清晰。
  • STaR(2021)將多視圖RGB視訊作為輸入,並將場景分解為靜態和動態體。但是,目前它只支援一個運動目標。

還有兩篇論文關注人物的頭像/肖像。

  • PortraitNeRF(2020)建立靜態NeRF風格的頭像(Avatar),但僅用一個RGB拍攝影像。為了實現這一點,需要燈光舞台訓練資料。
  • DNRF(G2020)專注於4D Avatar,將變形臉部模型納入管線,施加強烈的歸納偏差。

NeRF風格方法得到增強的另一個面向是如何處理照明,通常是透過可用於重照明場景的潛代碼。

  • NeRV(2020)以第二個「可見性」MLP支援任意環境照明和「一次反射」間接照明。
  • NeRD(2020)是另一項工作,其中使用局部反射模型,此外,對於給定場景,去除低解析度球面諧波照明。
  • Neural Reflectance Fields(2020)透過添加局部反射模型改善NeRF,除密度外。它產生了令人印象深刻的重型照明結果,儘管來自單點光源。
  • NeRF-W(2020)是NeRF的首批後續工作之一,優化潛外觀程式碼,以便能夠從控制較少的多視圖集合中學習神經場景表示。

潛代碼也可用於編碼形狀先驗:

  • pixelNeRF(2020)更接近基於圖像的渲染,其中在測試時用N個圖像。它基於PIFu,創建像素對齊的特徵,然後在評估NeRF-樣式渲染器時進行插值。
  • GRF(2020)在設定上非常接近pixelNeRF,但在規範空間而不是視圖空間中運作。
  • GRAF(2020),即“輻射場的生成模型”,是NeRF的條件變型,添加了外觀和形狀潛代碼,同時透過GAN風格訓練獲得視點不變性。
  • pi GAN(2020),與GRAF類似,但用了一種SIREN式樣的NeRF實現,其中每一層都由不同的MLP輸出進行調製,該MLP採用潛代碼。

可以說,所有這些都不會擴展到由許多目標組成的大型場景,因此一個令人興奮的新領域是如何將目標組成體渲染場景。

  • Object-Centric Neural Scene Rendering(2020)在以目標為核心的座標系中學習“目標散射函數”,允許使用蒙特卡羅渲染合成場景並真實地照亮場景。
  • GIRAFFE(2020)透過以目標為中心的NeRF模型輸出特徵向量而不是顏色來支援合成,然後透過平均合成,並以低解析度渲染為2D特徵圖,然後在2D中進行上採樣。
  • Neural Scene Graphs(2020)支援場景圖中的多個以目標為中心的NeRF模型。

最後,至少有一篇論文在(已知)目標姿態估計的背景下使用了NeRF渲染。

  • iNeRF(2020)在姿態估計框架中使用了NeRF MLP,甚至能夠透過微調姿態改善標準資料集上的視圖合成。然而,它還不能處理照明。

神經體渲染和NeRF風格的論文,最終是否會成功還遠遠不清楚。雖然現實世界中確實存在煙霧、煙霧、透明等,但最終大部分光線都從表面散射到眼睛。由於基於體的方法,NeRF風格的網路可能很容易訓練,但已經看到一種趨勢,即論文試圖在收斂後發現或猜測曲面。事實上,原NeRF論文中的分層抽樣方案正是如此。因此,當從NeRF中學習時,可以很容易地看到移回SDF風格的隱式表示或甚至體素,至少在推理時是如此。

以上是神經體繪製:NeRF及其以外法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Navicat查看MongoDB數據庫密碼的方法 Navicat查看MongoDB數據庫密碼的方法 Apr 08, 2025 pm 09:39 PM

直接通過 Navicat 查看 MongoDB 密碼是不可能的,因為它以哈希值形式存儲。取回丟失密碼的方法:1. 重置密碼;2. 檢查配置文件(可能包含哈希值);3. 檢查代碼(可能硬編碼密碼)。

Navicat 連接數據庫錯誤代碼及解決辦法 Navicat 連接數據庫錯誤代碼及解決辦法 Apr 08, 2025 pm 11:06 PM

Navicat 連接數據庫時常見的錯誤及解決方案:用戶名或密碼錯誤(Error 1045)防火牆阻止連接(Error 2003)連接超時(Error 10060)無法使用套接字連接(Error 1042)SSL 連接錯誤(Error 10055)連接嘗試過多導致主機被阻止(Error 1129)數據庫不存在(Error 1049)沒有權限連接到數據庫(Error 1000)

sql插入語句怎麼寫最新教程 sql插入語句怎麼寫最新教程 Apr 09, 2025 pm 01:48 PM

SQL INSERT 語句用於向數據庫表中添加新行,其語法為:INSERT INTO table_name (column1, column2, ..., columnN) VALUES (value1, value2, ..., valueN);。該語句支持插入多個值,並允許向列中插入 NULL 值,但需確保插入的值與列的數據類型兼容,避免違反唯一性約束。

Navicat 連接超時:如何解決 Navicat 連接超時:如何解決 Apr 08, 2025 pm 11:03 PM

Navicat連接超時原因:網絡不穩定、數據庫繁忙、防火牆阻攔、服務器配置問題、Navicat設置不當。解決步驟:檢查網絡連接、數據庫狀況、防火牆設置,調整服務器配置,檢查Navicat設置,重啟軟件和服務器,聯繫管理員尋求幫助。

SQL 如何添加新列 SQL 如何添加新列 Apr 09, 2025 pm 02:09 PM

SQL 中通過使用 ALTER TABLE 語句為現有表添加新列。具體步驟包括:確定表名稱和列信息、編寫 ALTER TABLE 語句、執行語句。例如,為 Customers 表添加 email 列(VARCHAR(50)):ALTER TABLE Customers ADD email VARCHAR(50);

Navicat for MongoDB如何查看數據庫密碼? Navicat for MongoDB如何查看數據庫密碼? Apr 08, 2025 pm 09:21 PM

Navicat for MongoDB 無法查看數據庫密碼,原因是密碼被加密存儲,僅持有連接信息。找回密碼需要通過MongoDB本身,具體操作取決於部署方式。安全第一,養成良好密碼習慣,切勿嘗試從第三方工具獲取密碼,避免安全風險。

除了 Navicat,還有什麼工具可以連接達夢數據庫 除了 Navicat,還有什麼工具可以連接達夢數據庫 Apr 08, 2025 pm 10:06 PM

除了 Navicat,連接達夢數據庫的替代方案包括:達夢官方客戶端工具,提供基本功能。 SQL Developer,支持高級功能。 Toad for Data Engineers,集成多種功能。 DbVisualizer,免費開源且支持數據建模。 DataGrip,提供智能代碼支持。 HeidiSQL,簡單易用但需要插件。

SQL 添加列的語法是什麼 SQL 添加列的語法是什麼 Apr 09, 2025 pm 02:51 PM

SQL 中添加列的語法為 ALTER TABLE table_name ADD column_name data_type [NOT NULL] [DEFAULT default_value]; 其中,table_name 是表名,column_name 是新列名,data_type 是數據類型,NOT NULL 指定是否允許空值,DEFAULT default_value 指定默認值。

See all articles