0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NeRF入門基礎(chǔ)知識詳解

新機器視覺 ? 來源:小樣本視覺與智能前沿 ? 2024-02-21 14:21 ? 次閱讀

NeRF 在2020年ECCV上名聲大噪,作為best paper展示作者在網(wǎng)上收羅了NeRF的相關(guān)評說,匯總?cè)缦?,?nèi)容可能雜亂,可作為對NeRF初步認識的資料。

Vanilla NeRF

什么是NeRF?

NeRF所要做的 task 是 Novel View Synthesis,一般翻譯為新視角合成任務(wù)

在已知視角下對場景進行一系列的捕獲 (包括拍攝到的圖像,以及每張圖像對應(yīng)的內(nèi)外參),合成新視角下的圖像

NeRF 不需要中間三維重建的過程,僅根據(jù)位姿內(nèi)參和圖像,直接合成新視角下的圖像。

NeRF 引入了輻射場的概念,這在圖形學(xué)中是非常重要的概念。

渲染方程式的定義:

78274acc-d06f-11ee-a297-92fbcf53809c.png

方程表示了空間點$ xin R^3 $在方向 $d in R^3$ 上的輻射$L_o$.

等式右邊第一項 表示 x 為光源點時,自身在d方向釋放的輻射。

等式右邊第二項 表示該點折射在方向d 上的輻射,其中 $Omega$ 為入射方向 $omega_i$的半球集合。

$fr(cdot)$為散射函數(shù),$Li$為從 $omega_i$方向接收到的輻射

輻射和顏色的關(guān)系

光就是電磁輻射, 或振蕩的電磁場

光又有波長和頻率,二者乘積為光速

光的顏色是由頻率決定的

大多數(shù)光是不可見的,人眼可見的光譜稱為可見光譜,對應(yīng)的頻率就是我們認為的顏色

7838c626-d06f-11ee-a297-92fbcf53809c.png

*NeRF表示3D場為可學(xué)習(xí)的,連續(xù)的輻射場 $F_{ heta}$ *

785aed46-d06f-11ee-a297-92fbcf53809c.png

78687114-d06f-11ee-a297-92fbcf53809c.png

788f68fa-d06f-11ee-a297-92fbcf53809c.png

Positional Encoding

deep networks 更傾向于學(xué)習(xí)低頻的函數(shù),實際場景的神經(jīng)輻射場基本上都是高頻的

作者提出了 Positional Encoding (注意這里的 Positional Encoding 和 Transformer 中的 Positional Encoding 很像,但是解決問題是不一樣的

78ae858c-d06f-11ee-a297-92fbcf53809c.png

78c41d66-d06f-11ee-a297-92fbcf53809c.png

78dcd55e-d06f-11ee-a297-92fbcf53809c.png

Hierarchical volume sampling

使用體渲染積分遇到的問題:

雖然可以離散的近似計算積分,采樣點過多開銷過大,采樣點過少近似誤差有太大。

解決辦法:最好盡可能的避免在空缺部分以及被遮擋了的部分進行過多的采樣,因為這些部分對最好的顏色貢獻是很少的

NeRF 提出分層采樣訓(xùn)練的方式,如下圖所示:

78faf48a-d06f-11ee-a297-92fbcf53809c.png

使用兩個網(wǎng)絡(luò)同時進行訓(xùn)練 (后稱 coarse 和 fine 網(wǎng)絡(luò))

coarse 網(wǎng)絡(luò)輸入的點是通過對光線均勻采樣得到的

根據(jù) coarse 網(wǎng)絡(luò)預(yù)測的體密度值,對光線的分布進行估計,然后根據(jù)估計出的分布進行第二次重要性采樣

然后再把所有的采樣點 [公式] 一起輸入到 fine 網(wǎng)絡(luò)進行預(yù)測。

NeRF 存在的問題

實時性不好

泛化性不強

不能處理動態(tài)場景

拍攝方式有限制

參考鏈接2:https://zhuanlan.zhihu.com/p/466217848

NeRF原理

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

NeRF主要功能:使用靜態(tài)場景下的多個視角的照片(大約幾十至上百張),合成出任意新視角的圖片。NeRF的算法思路:

Step1 :

使用MLP學(xué)習(xí)該場景的隱式3D模型表達

790d87ee-d06f-11ee-a297-92fbcf53809c.png

MLP模型示意圖。輸入一個3d點x和觀測方向d的高頻編碼向量,網(wǎng)絡(luò)預(yù)測該點的密度sigma和顏色c

79259e60-d06f-11ee-a297-92fbcf53809c.png

Step 2:使用體渲染方程將3D場景渲染成圖片

圖形上的點 P(u,v,1) , 他的像素值 rgb 可以通過對該點P發(fā)出的射線上的所有的點 的 c 和體密度 進行積分得到。

794d90d2-d06f-11ee-a297-92fbcf53809c.png

796e151e-d06f-11ee-a297-92fbcf53809c.png

7978ec5a-d06f-11ee-a297-92fbcf53809c.png

-

79802088-d06f-11ee-a297-92fbcf53809c.png

Step 3:訓(xùn)練

從該點發(fā)出的射線在世界坐標系中的表示為79907668-d06f-11ee-a297-92fbcf53809c.png

起始點 [公式] 的世界坐標也同樣可以由相機的內(nèi)外參求得

然后在該射線上采樣n個采樣點。

使用MLP預(yù)測這n個點的體密度,和c ,然后使用體渲染方程的離散公式算出該像素點的預(yù)測值 rgb。

然后計算預(yù)測的顏色值和真實顏色值的L2距離作為loss進行監(jiān)督訓(xùn)練。

799a631c-d06f-11ee-a297-92fbcf53809c.png

訓(xùn)練集是幾十張或者幾百張該場景不同相機位姿拍攝的圖片

首先使用SFM算法求出所有圖片的相機相對世界坐標系的位姿 (R,t)

每張圖片的每個像素點都是一個訓(xùn)練樣本(u,v) → rgb

以像素點(u,v)為例:

Step 4:觀測方向d的作用

一個點的密度密度只能是該點位置x的函數(shù)。

但該點的顏色還取決于觀測方向(我們觀看空間中一個物體的某個點,從光源照射方向觀看和從陰影方向觀看,它的亮度是不一樣的。)

Step 5:Positional encoding

直接讓MLP學(xué)習(xí)映射很難,將x,d 編碼為高維向量后學(xué)習(xí)會更加容易。

因此使用如下高頻函數(shù)進行編碼。

79adc11e-d06f-11ee-a297-92fbcf53809c.png

step 6:多層級采樣策略

均勻采樣方式采樣射線上64個點

這64點的密度值估計出密度分布函數(shù)。

再使用逆采樣算法集中對高密度的區(qū)域采樣128點。

使用該策略可以提高采樣的效率,不需要對射線上所有區(qū)域都進行密集的采樣

NeRF加速

FastNeRF: High-Fidelity Neural Rendering at 200FPS

相關(guān)資料:https://microsoft.github.io/FastNeRF/https://ieeexplore-ieee-org-s.nudtproxy.yitlink.com/document/9710021

Instant Neural Graphics Primitives with a Multiresolution Hash Encoding

相關(guān)資料:https://nvlabs.github.io/instant-ngp/https://nvlabs.github.io/instant-ngp/assets/mueller2022instant.pdf

NeRF動態(tài)場景(人體)的拓展

HumanNeRF: Free-viewpoint Rendering of Moving People from Monocular Video

相關(guān)資料:https://www.semanticscholar.org/paper/HumanNeRF%3A-Free-viewpoint-Rendering-of-Moving-from-Weng-Curless/bd706601b75533a66a782f6229419f85b1cc5135

參考鏈接3:https://www.analyticsvidhya.com/blog/2021/04/introduction-to-neural-radiance-field-or-nerf/

神經(jīng)輻射場(Neural Radiance Field, NeRF)是一種生成復(fù)雜場景新視圖的方法。NeRF獲取一組場景的輸入圖像,并通過在場景之間插入來渲染完整的場景。

NeRF 的輸出是一個體積,其顏色和密度取決于視圖的方向和在該點發(fā)射的光亮度。

對于每條光線,我們都得到一個輸出體積,所有這些體積構(gòu)成了復(fù)雜的場景。

靜態(tài)場景被表示為如上定義的連續(xù)5D函數(shù)。

79c3a736-d06f-11ee-a297-92fbcf53809c.png

該方法使用一個全連接的神經(jīng)網(wǎng)絡(luò)-多層感知器(MLP)來表示該函數(shù),從單個5D坐標(x, y, z, θ, φ)向后移動,輸出一個體積密度(RGB顏色受視圖影響)。

要渲染這個NeRF,有3個步驟:

相機光線通過場景來采樣3D點

利用step1中的點及其對應(yīng)的2D觀察方向(θ, φ)作為輸入到MLP,得到顏色(c = (r, g, b))和密度σ的輸出集,

使用體繪制技術(shù)將這些顏色和密度累積到一個2D圖像中[注:體繪制是指從采樣的3D點創(chuàng)建一個2D投影]

79ce9fba-d06f-11ee-a297-92fbcf53809c.png

79e0a3e0-d06f-11ee-a297-92fbcf53809c.png

79f6bce8-d06f-11ee-a297-92fbcf53809c.png

7a10a45a-d06f-11ee-a297-92fbcf53809c.png

7a23f884-d06f-11ee-a297-92fbcf53809c.png

7a3c00dc-d06f-11ee-a297-92fbcf53809c.png

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電磁輻射
    +關(guān)注

    關(guān)注

    5

    文章

    352

    瀏覽量

    43524
  • 光譜
    +關(guān)注

    關(guān)注

    4

    文章

    775

    瀏覽量

    35037
  • 電磁場
    +關(guān)注

    關(guān)注

    0

    文章

    785

    瀏覽量

    47198

原文標題:NeRF入門知識匯總

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    模擬電路入門基礎(chǔ)知識

    模擬電路入門基礎(chǔ)知識
    發(fā)表于 06-06 13:57

    PLC入門必看基礎(chǔ)知識

    PLC基礎(chǔ)知識(PLC入門必看)與C語言有什么關(guān)系_plc可以用c語言編程嗎_plc的C語言編程詳解
    發(fā)表于 09-09 08:39

    電子元器件基礎(chǔ)知識詳解

    電子元器件基礎(chǔ)知識詳解
    發(fā)表于 10-08 20:13 ?371次下載

    HIFI耳機基礎(chǔ)知識入門

    HIFI耳機基礎(chǔ)知識入門 一、耳機是如何分類的? 1、按換能原理(Transducer)分
    發(fā)表于 02-02 11:48 ?3032次閱讀

    ADC入門_基礎(chǔ)知識

    ADC入門_基礎(chǔ)知識對初學(xué)者有很好的幫助。希望大家會喜歡。
    發(fā)表于 03-11 17:41 ?45次下載

    電感資料--電感基礎(chǔ)知識入門

    電子專業(yè)單片機相關(guān)知識學(xué)習(xí)教材資料——電感資料--電感基礎(chǔ)知識入門
    發(fā)表于 10-10 14:17 ?0次下載

    FreeRTOS基礎(chǔ)知識詳解pdf下載

    FreeRTOS基礎(chǔ)知識詳解
    發(fā)表于 03-29 14:36 ?45次下載

    初學(xué)者AVR軟件入門基礎(chǔ)知識(1)

    初學(xué)者AVR軟件入門基礎(chǔ)知識(1)
    的頭像 發(fā)表于 07-04 09:50 ?4758次閱讀

    初學(xué)者AVR軟件入門基礎(chǔ)知識(3)

    初學(xué)者AVR軟件入門基礎(chǔ)知識(3)
    的頭像 發(fā)表于 07-04 09:51 ?2532次閱讀

    什么是DCS系統(tǒng)?DCS系統(tǒng)基礎(chǔ)知識入門

    什么是DCS系統(tǒng)?DCS系統(tǒng)基礎(chǔ)知識入門
    的頭像 發(fā)表于 12-02 11:14 ?4.6w次閱讀
    什么是DCS系統(tǒng)?DCS系統(tǒng)<b class='flag-5'>基礎(chǔ)知識</b><b class='flag-5'>入門</b>

    FPGA的入門基礎(chǔ)知識詳細說明

    本文檔的主要內(nèi)容詳細介紹的是FPGA的入門基礎(chǔ)知識詳細說明。
    的頭像 發(fā)表于 12-20 10:13 ?9404次閱讀
    FPGA的<b class='flag-5'>入門</b><b class='flag-5'>基礎(chǔ)知識</b>詳細說明

    機器視覺基礎(chǔ)知識詳解模板

    機器視覺基礎(chǔ)知識詳解模板下載。
    發(fā)表于 05-28 14:48 ?13次下載

    Arduino入門必備基礎(chǔ)知識(基礎(chǔ)認證考前總結(jié))

    Arduino入門必備基礎(chǔ)知識(基礎(chǔ)認證考前總結(jié))
    發(fā)表于 11-15 20:51 ?16次下載
    Arduino<b class='flag-5'>入門</b>必備<b class='flag-5'>基礎(chǔ)知識</b>(基礎(chǔ)認證考前總結(jié))

    詳解射頻微波基礎(chǔ)知識

    詳解射頻微波基礎(chǔ)知識
    的頭像 發(fā)表于 01-29 10:28 ?2273次閱讀

    無功補償原理基礎(chǔ)知識詳解

    無功補償原理基礎(chǔ)知識詳解
    的頭像 發(fā)表于 08-11 09:48 ?800次閱讀
    無功補償原理<b class='flag-5'>基礎(chǔ)知識</b><b class='flag-5'>詳解</b>