日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NeRF开篇

發(fā)布時(shí)間:2023/12/14 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NeRF开篇 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

NeRF、NeRF SLAM、Active SLAM系列

本人最近粗略看了一些基于NeRF的工作,原本學(xué)習(xí)的是SLAM方向,發(fā)現(xiàn)有一些NeRF和SLAM結(jié)合的工作,并且由于NeRF的地圖效果實(shí)在給人較好的可視感受,故想要研究一番,并且上研后組內(nèi)的方向有想向Active SLAM方面做,故也有所涉及。
* 以下觀點(diǎn)都是我個(gè)人的見解,不正確指出望能批評(píng)指正,也是一個(gè)獲得反饋學(xué)習(xí)的過程

NeRF、SLAM簡述

首先在分析主流工作之前先簡述一下NeRF、SLAM的概念。

SLAM
?SLAM(Simultaneous Localization And Mapping,同時(shí)定位與地圖構(gòu)建),正如字面意思,能夠同時(shí)完成自身定位和地圖構(gòu)建,這里我們主語可以選用機(jī)器人,就是一個(gè)機(jī)器人如何在未知的環(huán)境中通過傳感器的輸入完成定位、建圖,并且兩者是相輔相成的,精確的定位能夠保證地圖的優(yōu)良性,而反之地圖的完美又能夠使得傳感器數(shù)據(jù)的匹配更加準(zhǔn)確從而獲得更加精確的定位。

?在我剛上本科的時(shí)候好像還是一個(gè)比較小眾的方向,但是最近幾年乘著自動(dòng)駕駛的快車已經(jīng)飛速開卷了,但實(shí)際上大家還是在卷精度,真正落地的應(yīng)用,可能還是掃地機(jī)器人、餐廳送餐等,總體來說在實(shí)現(xiàn)真正的自動(dòng)駕駛、取代外賣物流等工作還有很長一段路要走,倒是礦廠自動(dòng)駕駛挖掘機(jī)落地還比較快(主要是日常生活環(huán)境太復(fù)雜了,主要是人)。

NeRF
NeRF(Neural Radiance Field,神經(jīng)輻射場(chǎng))是一種以基于光場(chǎng)理論的環(huán)境隱式表達(dá)。

  • 為什么是隱式?
    因?yàn)镹eRF的輸出不是常規(guī)SLAM中的地圖,二維的Cartographer生成的是二維柵格地圖、ALOAM等激光SLAM生成的是點(diǎn)云地圖、ORB-SLAM2生成稀疏點(diǎn)云、Droid SLAM稠密點(diǎn)云(基于學(xué)習(xí)的端到端,吊打ORBSLAM3,這就是4張3090的魅力嗎,但是建的圖也驚艷到我了)[藍(lán)色直接跳轉(zhuǎn)Github]
    好的,撤回來說NeRF,NeRF的輸入是相機(jī)的世界坐標(biāo) x,y,zx,y,zx,y,z,朝向 θ\thetaθ?\phi?,共5D輸入,然后輸出是該個(gè)相機(jī)位姿下的圖像,怎么樣是不是很抽象?所以并沒有所謂的幾何空間點(diǎn)的表達(dá),一切都隱式地在神經(jīng)網(wǎng)絡(luò)里面了。
  • 輻射場(chǎng)是什么意思?
    輻射場(chǎng)這里指的是光輻射,之前所過NeRF是基于光場(chǎng)利用的,當(dāng)光線和空間中的粒子接觸的時(shí)候總會(huì)有一部分被吸收、一部分被反射、一部分是物體自己發(fā)出的輻射(這里我可能不對(duì)光和輻射進(jìn)行嚴(yán)格區(qū)別),其中概念也和計(jì)算機(jī)圖形學(xué)中輻射場(chǎng)立體渲染有關(guān),而NeRF則是一種簡化的表達(dá),將空間中的任意一個(gè)點(diǎn)都給定一個(gè)密度值density 記 σ\sigmaσ,它也有自己的顏色color 記 c=(r,g,b)c=(r,g,b)c=(r,g,b)。
  • 而之前所說的圖像是怎么獲得的呢?
    然后依照相機(jī)模型,我們可以直觀理解一下相機(jī)成像,是光線照射到相機(jī)成像CMOS/CCD(感光元器件),然后在生成像素。因此正是知道了相機(jī)的位置和朝向,從而通過針孔相機(jī)模型其實(shí)知道每個(gè)像素對(duì)應(yīng)于空間中的一條射線的位置,這樣就可以通過將射線上的點(diǎn)密度值density
    、顏色值color ,進(jìn)行積分(離散就是累加)得到像素的值,從而生成一張完整的圖像,而通過對(duì)密度值density進(jìn)行積分(求和)就可以得到深度圖了。
  • 不搞個(gè)視頻我怕你們不學(xué)了

    NeRF的基礎(chǔ)學(xué)習(xí)

    接下來是我在從零了解NeRF過程中收集的一些學(xué)習(xí)資料,希望能夠給大家?guī)硪恍椭?#xff0c;我也剛開始了解這個(gè)方向幾個(gè)星期,希望不要誤人子弟,哈哈哈

    原生NeRF

    NeRF的誕生就是ECCV 2020的一篇Paper吧。

    • 新世界的大門:http://arxiv.org/abs/2003.08934
    • Github:https://github.com/bmild/nerf
    • Pytorch版本:https://github.com/yenchenlin/nerf-pytorch

    教程資料

    • chi80講述NeRF原理,視頻分辨率很低但是講的還ok

    • 完整材料

    • 知乎上的講的還不錯(cuò)

    • NeRF參數(shù)講解

    • 體渲染

    代碼實(shí)踐

    Tutorial for NeRF

    地址:Medium(不登錄反而能看)

    個(gè)人記錄針對(duì)上面教程的記錄:
    ?marching cubes是一個(gè)生成3D mesh的算法,從NeRF網(wǎng)絡(luò)恢復(fù)3D模型所用的方法
    ?3D數(shù)據(jù)的表達(dá)形式:從3D voxels到點(diǎn)云到SDF
    ?傳統(tǒng)三維構(gòu)建的共同缺點(diǎn):
    ???相機(jī):耗時(shí)和需要大量數(shù)據(jù)
    ???雷達(dá):昂貴
    ???人工建模
    ???對(duì)于高反射物體、“網(wǎng)狀”物體,如灌木叢和鏈狀柵欄,或透明物體,都不適合大規(guī)模掃描。
    ???影響模型精度:stair-stepping effects and driff

    概念

    ?光場(chǎng),其用不同方向觀測(cè)角度下的光線掃描三維空間中的每個(gè)點(diǎn),分別有五個(gè)變量x=(x,y,z)x =(x,y,z)x=(x,y,z)、d=(θ,?)d=(\theta ,\phi)d=(θ,?)(分別是空間中點(diǎn)的三維坐標(biāo)和光線的角度)

    為什么只有兩個(gè)變量,因?yàn)樵诳臻g中一個(gè)點(diǎn)定下來之后,就是經(jīng)緯度的問題了,不像是描述位姿。

    ?NeRF基于光場(chǎng)(light/radiance fields)。NeRF則是構(gòu)建從光場(chǎng)的5D空間描述,到4D空間的映射(顏色,強(qiáng)度density),c=(R,G,B),σc=(R,G,B),\sigmac=(R,G,B)σ。density可以理解為光線在五維空間中被截?cái)嗟膌ikehood,比如遮擋。

    NeRF的標(biāo)準(zhǔn)范式:F:(x,d)→(c,σ)F:(x,d) \rightarrow (c,\sigma)F:(x,d)(c,σ)

    ?在生成式場(chǎng)景重建課題(generalized scene reconstruction)中,給定相機(jī)位姿和圖像,還有許多SFM系列算法: COLMAP, Agisoft Metashape, Reality Capture, or Meshroom

    NeRF的幾個(gè)過程

    數(shù)據(jù)處理

    ?通過給定位姿和圖像,構(gòu)建射線,通過對(duì)射線進(jìn)行采樣生成數(shù)據(jù)點(diǎn),采用Coarse-to-fine的方式,先均勻分段,然后對(duì)每個(gè)段進(jìn)行隨機(jī)采樣,這樣就用 r=o+tdr = o + tdr=o+td 來表示每一個(gè)采樣點(diǎn),就是 r=(x,y,z)r = (x,y,z)r=(x,y,z),其中方向 d=(θ,?)d=(\theta ,\phi)d=(θ,?) 就是每個(gè)相機(jī)坐標(biāo)的原點(diǎn)和 vc=[0,0,?1]v_c=[0,0,-1]vc?=[0,0,?1] 經(jīng)過 TwcT_{wc}Twc? 轉(zhuǎn)到世界坐標(biāo)下,注意這里不需要加上 vov_ovo? ,因?yàn)橹皇谴硪粋€(gè)朝向

    Axes3D.quiver(X,Y,Z,U,V,W,/,length=1,…)
    X,Y,Z是箭頭的起點(diǎn)坐標(biāo),U,V,V是箭頭的方向組成
    注意OpenGL和COLMAP數(shù)據(jù)之間的坐標(biāo)系問題
    https://blog.csdn.net/OrdinaryMatthew/article/details/126670351

    分層采樣:

    ?是對(duì)每個(gè)均分的bin區(qū)間通過均勻分布的形式進(jìn)行采樣,這里好像還可以通過逆深度進(jìn)行表示,主要是在射線中,near到far進(jìn)行分段

    模型構(gòu)建

    ?通過采樣獲得初始數(shù)據(jù)后,就利用NeRF來構(gòu)建5D到4D的映射,網(wǎng)絡(luò)架構(gòu)如下:
    注意這里的PositionEncoder不僅僅是60,還會(huì)包含原來的3各個(gè)維度,即L=10L=10L=10的時(shí)候(cos,sin),編碼后維度:3*20+3
    ○ PositionEncoding:


    NeRF的優(yōu)勢(shì)

    ?● 直接數(shù)據(jù)驅(qū)動(dòng)
    ?● 場(chǎng)景的連續(xù)表達(dá)
    ?● 隱式考慮物體特性:specularity高光,roughness粗糙度
    ?● 隱式表達(dá)光感

    A overview of NeRF

    不同類型的NeRF工作
    ?A litany of papers have since sought to expand the functionality of the original with features such as few-shot and one-shot learning[2, 3], support for dynamic scenes[4, 5], generalizing the light field into feature fields[6], learning from uncalibrated image collections from the web[7], combining with LiDAR data[8], large-scale scene representation[9], learning without a neural network[10], and many more. For some great overviews of NeRF research, see this great overview from 2020 and another overview from 2021 both by Frank Dellaert.

    ?SLAM學(xué)術(shù)界的泰斗,Frank Dallaert(https://dellaert.github.io/),gtsam的作者,也開始轉(zhuǎn)行研究NeRF,可見NeRF的價(jià)值和對(duì)視覺SLAM的意義。Frank大佬寫了一系列NeRF相關(guān)文章的綜述。
    ?● https://link.zhihu.com/?target=https%3A//dellaert.github.io/NeRF/
    ?● https://link.zhihu.com/?target=https%3A//dellaert.github.io/NeRF21/
    ?● https://link.zhihu.com/?target=https%3A//dellaert.github.io/NeRF22/

    *上面來源:基于神經(jīng)輻射場(chǎng)的(NeRF-based) SLAM 綜述

    第一次先分享這么多吧,后續(xù)還會(huì)單獨(dú)更新一個(gè)專欄,分別對(duì)NeRF的論文進(jìn)行歸納整理

    總結(jié)

    以上是生活随笔為你收集整理的NeRF开篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。