instant-ngp总结
Nerf方法就是經(jīng)典的隱函數(shù)渲染方案。
Nerf的開山之作"Nerf: Representing scenes as neural radiance fields for view synthesis"發(fā)表于2020年的eccv上。
Nerf的主要目的:利用已有的大量2D數(shù)據(jù)作為監(jiān)督,用已有的2D數(shù)據(jù)去生成該物體或者場(chǎng)景,新視角下的重建結(jié)果。
Nerf 的主要過程就是利用5D向量值函數(shù)去擬合整個(gè)三維場(chǎng)景的表示。利用
去表示整個(gè)場(chǎng)景。
輸入空間中一個(gè)點(diǎn)的3D坐標(biāo)x,以及觀察視角d。生成對(duì)應(yīng)的顏色值C,以及不透明度σ,這也是與現(xiàn)實(shí)世界相對(duì)應(yīng)的。
在Nerf的渲染和訓(xùn)練過程,利用到了volume rendering的思想(如下圖所示)。
如上圖中的藍(lán)色點(diǎn)所示,它是從空間中某一像素所發(fā)出的一條射線上的點(diǎn),那么我們根據(jù)這個(gè)點(diǎn)對(duì)應(yīng)的3D坐標(biāo)位置與視角d,通過上面的Nerf5D向量值函數(shù),計(jì)算出該點(diǎn)對(duì)應(yīng)的顏色值與不透明度?;谶@個(gè)思想,我們將整條射線上所有點(diǎn)的顏色值與體積密度計(jì)算出來。再將整條射線上點(diǎn)的顏色進(jìn)行積分,那得到的積分值,就是對(duì)應(yīng)像素點(diǎn)的顏色值。這實(shí)際上也是volume rendering的思想。
在理論上,這個(gè)積分應(yīng)該是連續(xù)的,不過在實(shí)際的渲染或者工程當(dāng)中,想實(shí)現(xiàn)連續(xù)的積分不太現(xiàn)實(shí)。在這里我們的解決方案就是利用離散積分的方式,對(duì)射線上的點(diǎn)進(jìn)行均勻采樣,利用采樣點(diǎn)的離散的積分和,來模擬上面的過程。
那在實(shí)際的train或者渲染過程,也是上面剛才說到的,利用離散積分的方式,對(duì)空間中的點(diǎn)進(jìn)行采樣,然后渲染出對(duì)應(yīng)視角的顏色值,將其與GT做比較,利用誤差去優(yōu)化網(wǎng)絡(luò)。
那其實(shí)可以法線,在這個(gè)過程中會(huì)有一個(gè)如何對(duì)空間中點(diǎn)采樣的策略問題。因?yàn)槿绻蓸狱c(diǎn)過多,那計(jì)算效率就會(huì)降低,那如果采樣點(diǎn)過少,又無法很好地近似整個(gè)場(chǎng)景的三維表示。怎么設(shè)置采樣策略就比較重要了。
在這里我們有一個(gè)非常樸素的想法,對(duì)于我們的重建結(jié)果或者渲染結(jié)果而言,并不是空間中所有的點(diǎn)都重要,對(duì)于空間中那些空曠的點(diǎn),它對(duì)于最終的重建結(jié)構(gòu)影響不是很大。真正起作用的點(diǎn)是物體所在的區(qū)域,它們才對(duì)真正的重建結(jié)果起作用。那么我們?cè)诓蓸拥倪^程中,對(duì)于物體在的區(qū)域多采樣,對(duì)于空曠的區(qū)域少采樣,用這種分層采樣的方式去優(yōu)化采樣的策略。
NSVF
對(duì)于如何優(yōu)化Nerf的時(shí)間上的效率問題,如何做空間中點(diǎn)的采樣,2020年的另一篇工作NSVF也提出了一種解決思路。
在NSVF中,作者將整個(gè)三維空間用體素分割出來,在采樣的過程中只對(duì)空間中有意義的點(diǎn)進(jìn)行采樣,對(duì)于沒有意義的空的區(qū)域,那完全拋棄掉。然后再逐級(jí)的對(duì)體素進(jìn)行精細(xì)化操作,在這個(gè)過程每個(gè)體素塊的采樣率不變,但是隨著體素塊變小,會(huì)對(duì)場(chǎng)景中細(xì)節(jié)區(qū)域的學(xué)習(xí)會(huì)更多。
總結(jié):用體素表達(dá)三維空間,自剪枝的part,逐級(jí)精細(xì)化。
像剛才我們講到,為了優(yōu)化Nerf的訓(xùn)練速度、渲染速度等等。研究人員嘗試對(duì)如何采樣這部分進(jìn)行設(shè)計(jì)和優(yōu)化,Nerf最開始的采樣方案是分層采樣的策略,后來的NSVF提出的,基于體素的多分辨率采樣+自剪枝的策略,也多速度的問題做了一定程度的優(yōu)化,但是這個(gè)優(yōu)化是針對(duì)特殊task的,所以不具備通用性。
那么為了提出一種通用的加速方案,能夠?qū)Σ煌娜蝿?wù)進(jìn)行加速,這也是這篇論文的目的。
instant-NGP
這篇論文的主要核心點(diǎn)是,提出了一種多分辨率哈希編碼的通用方案,對(duì)不同的任務(wù)進(jìn)行加速處理。
對(duì)于傳統(tǒng)的深度學(xué)習(xí)模型,我們可以用m(x,Φ)去表示它,這里的Φ就是我們希望網(wǎng)絡(luò)學(xué)習(xí)到的權(quán)重。但是在instant-ngp中,作者還通過這個(gè)函數(shù)y=enc(x,𝜃)對(duì)輸入x再進(jìn)行編碼操作,獲得y,將這個(gè)y輸入到我們的網(wǎng)絡(luò)中去加速我們特定任務(wù)的速度和擬合質(zhì)量。我認(rèn)為對(duì)于x再編碼的操作,就是instant-ngp這么快的核心。在這里的話,我認(rèn)為這個(gè)過程有些像,復(fù)合函數(shù)的味道。
總結(jié):instant-ngp不但有可訓(xùn)練的網(wǎng)絡(luò)權(quán)重Φ,也有編碼參數(shù)𝜃。
同時(shí)在這個(gè)過程中,作者將這些參數(shù)分為L(zhǎng)層,每層包含了T個(gè)維度為F的特征向量。L對(duì)應(yīng)的是特定分辨率體素的編碼層,也做為一個(gè)超參數(shù),在這里被設(shè)置為16。也就是體素分辨率的變化分為16級(jí)。其中每一層的變化由Nl去調(diào)整。
在這里我的理解是,分級(jí)操作實(shí)際是,假設(shè)有一個(gè)三維坐標(biāo)點(diǎn),它是float型,那通過分級(jí)操作,對(duì)這個(gè)float型坐標(biāo)點(diǎn)進(jìn)行向上取整或向下取整,使其變?yōu)橐粋€(gè)整數(shù)型值。
后面的話,它通過一個(gè)空間哈希函數(shù),對(duì)特征向量進(jìn)行調(diào)整,分配到不同的哈希表中去。
在這里有一個(gè)問題,其實(shí)可以發(fā)現(xiàn),instant-ngp
總結(jié)
以上是生活随笔為你收集整理的instant-ngp总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【小月电子】ALTERA FPGA开发板
- 下一篇: sis最新地址获取方法_SIS系统在制药