2020到2023年NeRF開源代碼庫與框架盤點,哪款更適合你?
作者:Vallee ?| 來源:3DCV
在公眾號「3DCV」后臺,回復(fù)「原論文」可獲取代碼鏈接。
添加微信:dddvisiona,備注:NeRF,拉你入群。文末附行業(yè)細分群。
自從在ECCV'20被提出以來,NeRF(神經(jīng)輻射場)在3D視覺領(lǐng)域激發(fā)了很多有趣的創(chuàng)新工作,同時也出現(xiàn)了很多優(yōu)秀的開源工作,本文對近期(2020-2023)的NeRF相關(guān)典型的開源代碼庫和框架做一個盤點,涵蓋靜態(tài)場景、動態(tài)場景、相機位姿優(yōu)化、可變形場景、無界場景、表面重建、顯式建模、集成開發(fā)框架、加速庫等,希望能對大家有一點點幫助。
簡介:NeRF是一個簡單的全連接網(wǎng)絡(luò)(權(quán)重約為5MB),使用渲染損失來重現(xiàn)單個場景的輸入視圖。網(wǎng)絡(luò)將空間位置和觀察方向(5D輸入)映射到顏色和不透明度(4D輸出),充當(dāng)“體”,因此可以用體渲染來可微地渲染新視圖。
發(fā)表年份:ECCV'20
代碼:
TensorFlow原版:https://github.com/bmild/nerf
JAX版:https://github.com/google-research/google-research/tree/master/jaxnerf, JAX版相比于TensorFlow版更高效
簡介:pixelNeRF通過引入一個或多個帶pose的稀疏圖像作為條件輸入,將圖像全卷積特征和位置、方向一起輸入NeRF,提升了稀疏視圖下的新視角渲染能力,并且有一定的未見過的類別的泛化能力。
發(fā)表年份:CVPR'21
代碼:https://github.com/sxyu/pixel-nerf (PyTorch)
簡介:Nerfies通過額外優(yōu)化一個連續(xù)的體變形場,將每個觀測點轉(zhuǎn)到標準空間下,并且引入粗到細優(yōu)化和彈性正則增強魯棒性,可以將隨意的自拍照片/視頻轉(zhuǎn)為可變形NeRF,做任意新視角渲染。
發(fā)表年份:ICCV'21
代碼:https://github.com/google/nerfies (JAX)
簡介:為了解決NeRF的射線的歧義問題,mip-NeRF通過投射錐,編碼圓錐截錐的位置和大小,并訓(xùn)練一個單一的神經(jīng)網(wǎng)絡(luò),在多個尺度上對場景進行建模。
發(fā)表年份:ICCV'21
代碼:https://github.com/google/mipnerf (JAX)
簡介:BARF可以從不精確的相機位姿(甚至未知相機位姿)的圖片中訓(xùn)練NeRF,并同時優(yōu)化相機位姿。優(yōu)化過程中,提出用一種粗到細的方案,逐漸激活位置編碼的更高頻部分,使得BARF能先從平滑的信號學(xué)習(xí)配準,然后逐漸學(xué)習(xí)高保真的場景表示。
發(fā)表年份:ICCV'21
代碼:https://github.com/chenhsuanlin/bundle-adjusting-NeRF (PyTorch)
簡介:給定帶pose的物體多視角圖片,NeuS通過引入神經(jīng)體渲染從神經(jīng)隱式SDF渲染圖片,從而學(xué)習(xí)神經(jīng)隱式SDF的表面重建。
發(fā)表年份:NeurIPS'21
代碼:https://github.com/Totoro97/NeuS (PyTorch)
1.7 mip-NeRF 360
簡介:mip-NeRF 360通過類似EKF的場景參數(shù)化解決無解場景問題,在線粗到細蒸餾提高訓(xùn)練效率,以及失真正則化技術(shù)解決采樣和混疊問題,使其能夠高保真合成無界場景。
發(fā)表年份:CVPR'22
代碼:https://github.com/google-research/multinerf (JAX)
簡介:TensoRF將輻射場的張量用向量矩陣分解,進而計算容積密度和依賴視角的顏色,提升了渲染質(zhì)量,降低內(nèi)存使用和模型大小。
發(fā)表年份:ECCV'22
代碼:https://github.com/apchenstu/TensoRF (PyTorch)
簡介:針對人體等可變形物體的神經(jīng)渲染,基于mip-NeRF, 無需身體模板,輸入多視角圖片和跟蹤的3D骨架,TAVA可以得到對應(yīng)的標準空間下的容積表示,進而可以用于渲染新的姿態(tài),新的視角,做動畫,得到稠密對應(yīng)關(guān)系等。
發(fā)表年份:ECCV'22
代碼:https://github.com/facebookresearch/tava (PyTorch)
簡介:在dycheck中,研究人員發(fā)現(xiàn)單目視頻動態(tài)視圖合成(DVS)中已有的一些方法實際訓(xùn)練時有多視角信息泄露,因此dycheck定義了一個有效多視角因子(EMF)來進行量化,并且引入了兩個指標:共可見掩碼圖像指標和對應(yīng)精度克服已有指標的問題,還發(fā)布了一個iPhone數(shù)據(jù)集。開源代碼里實現(xiàn)了T-NeRF, Nerfies, HyperNeRF的JAX實現(xiàn),并引入了一些訓(xùn)練的改進。
發(fā)表年份:NeurIPS'22
代碼:https://github.com/KAIR-BAIR/dycheck (JAX)
1.11 K-Planes
簡介:K-Planes是一種任意維度輻射場的白盒模型,將d維空間顯式地分解為d(d-1)/2個(d選2)平面,可以處理靜態(tài)、動態(tài)、外觀,并且重建質(zhì)量高,內(nèi)存占用低,速度快。
發(fā)表年份:CVPR'23
代碼:https://github.com/sarafridov/K-Planes (PyTorch)
簡介:NeuS2/NeuS2++結(jié)合了Instant-NGP,大幅提升NeuS的速度,同時通過增量訓(xùn)練和全局變換預(yù)測擴展了動態(tài)場景的支持。
發(fā)表年份:ICCV'23
代碼:https://github.com/19reborn/NeuS2 (CUDA/TCNN)
簡介:來自上海人工智能實驗室、浙大和商湯的OpenXRLab的開源代碼框架,支持場景類神經(jīng)渲染方法:NeRF, Mip-NeRF, KiloNeRF, Instant-NGP, BungeeNeRF; 人體類神經(jīng)渲染方法:NeuralBody, AniNeRF, GNR。OpenXRLab其他關(guān)于XR的開源代碼框架還包括XRSLAM, XRSfM, XRLocalization, XRMoCap, XRMoGen。
開源年份:2022
代碼:https://github.com/openxrlab/xrnerf (PyTorch)
2.2 NeRF-Factory
簡介:源于POSTECH, KAIST, 和Kakao Brain Corp的開源框架。實現(xiàn)了NeRF, NeRF++, DVGO, Plenoxels, Mip-NeRF, Mip-NeRF360, Ref-NeRF等方法,包含NeRF Blender, NeRF LLFF, Tanks and Temples, LF, NeRF-360, NeRF-360-v2, Shiny Blender等數(shù)據(jù)集。還提供了NeRF可視化工具。
開源年份: 2022
代碼:https://github.com/kakaobrain/NeRF-Factory (PyTorch)
簡介:NVIDIA出品,Kaolin-Wisp包含多種NeRF, NGLOD, Instant-NGP,VQAD的實現(xiàn)。提供了很多實用功能,例如數(shù)據(jù)集,圖像I/O, mesh處理,射線實用函數(shù),還提供了用于構(gòu)建神經(jīng)場的模塊例如可微分渲染器,可微分數(shù)據(jù)結(jié)構(gòu)(octrees, hash grids, triplanar features),也提供了用于調(diào)試的可視化工具,交互式渲染以及訓(xùn)練、日志、訓(xùn)練器類等。
發(fā)表年份:EG STAR'22
代碼:https://github.com/NVIDIAGameWorks/kaolin-wisp (PyTorch)
簡介:源自伯克利KAIR-BAIR實驗室,Nerfstudio支持多種數(shù)據(jù)輸入pipeline,有多種NeRF的模塊化實現(xiàn),提供了網(wǎng)頁實時可視化工具,支持多種導(dǎo)出模態(tài)。
發(fā)表年份:SIGGRAPH'23
代碼:https://github.com/nerfstudio-project/nerfstudio (PyTorch)
簡介:源自圖賓根大學(xué)和圖賓根MPI-IS的Autonomous Vision組,基于NerfStudio開發(fā), SDFStudio提供了一個通用的模塊化的神經(jīng)隱式表面重建框架,主要實現(xiàn)了UniSurf,VolSDF, NeuS三種隱式表面重建方法,支持MLPs, Tri-plane, and Multi-res. feature grids幾種場景表示。
開源年份:2022
代碼:https://github.com/autonomousvision/sdfstudio (PyTorch)
簡介:同樣源于伯克利大學(xué)KAIR-BAIR實驗室,基于PyTorch的NeRF加速工具箱,可用于訓(xùn)練和推理。主要關(guān)注于輻射場體渲染流程中的高效采樣, 通用且能在大多數(shù)NeRF中即插即用。NerfAcc只需要在已有的代碼庫中做很小的修改,就能獲得很大的速度提升。所有的實現(xiàn)都是基于純Python的,具有靈活的API。
發(fā)表年份:arXiv'23
代碼:https://github.com/KAIR-BAIR/nerfacc/ (PyTorch)
NeRF最初是谷歌的研究人員提出的,上述開源代碼中,谷歌的大部分工作基于JAX開發(fā),其他開源庫大部分基于PyTorch開發(fā)。基于Instant-NGP的工作是基于CUDA開發(fā)的,雖然速度快,但對于開發(fā)不太友好。根據(jù)最新的NerfAcc來看,可以看到基于PyTorch的NeRF開源庫的速度也有保證了。那么你認為哪個開源代碼庫或框架更適合你呢?