本書系統(tǒng)地闡述了計算機視覺中NeRF(神經(jīng)輻射場)技術與 3DGS(三維高斯噴濺)技術的背景、原理與細節(jié)。為了深入解讀這兩種技術如何在速度優(yōu)化、質量優(yōu)化、動態(tài)場景生成、弱條件生成等方面實現(xiàn)技術創(chuàng)新,本書對它們的核心技術問題與解決方案進行了分類講解。另外,針對NeRF與3DGS在實際應用過程中可能遇到的挑戰(zhàn)進行了深入的分析與討論。本書旨在幫助讀者全方位地理解與認識這兩種正在快速發(fā)展的技術,并為其進一步的學習、研究以及三維視覺應用的實踐提供堅實的基礎。
中國科學技術大學特聘研究員,北京北斗星在線教育科技有限公司創(chuàng)始人,NeRF/3DGS & Beyond社區(qū)發(fā)起者。曾擔任滬江集團技術副總裁兼CCtalk聯(lián)合創(chuàng)始人和CTO、盛大創(chuàng)新院多媒體院技術負責人、Thomson Corporate Research高級研究員等職務,在計算視覺、圖形學、多媒體音視頻技術等領域,擁有多年研究與研發(fā)經(jīng)驗,所負責業(yè)務均達到年10億元以上營收規(guī)模。成功申請十余項國內、國外專利,在國際知名學術會議和期刊上發(fā)表數(shù)篇論文。
第一部分 NeRF入門
1 NeRF簡介 2
1.1 何謂NeRF 2
1.1.1 光柵化渲染與可微渲染 3
1.1.2 人工建模與自動建模 4
1.1.3 離散表示法與連續(xù)表示法 5
1.2 三維表達方式演化史與對比 7
1.2.1 點云 7
1.2.2 三維網(wǎng)格 8
1.2.3 體素網(wǎng)格 9
1.2.4 占據(jù)網(wǎng)絡 10
1.2.5 NeRF 11
1.3 NeRF的行業(yè)現(xiàn)狀和推動者 12
1.3.1 國外主要實驗室 12
1.3.2 國內主要實驗室 14
1.4 如何閱讀本書 15
1.4.1 本書的結構 15
1.4.2 本書面向的讀者 16
1.4.3 代碼要求 16
1.4.4 寫作風格 17
2 NeRF基礎知識 18
2.1 三維空間基礎 18
2.1.1 坐標系、點與向量 18
2.1.2 剛體運動的歐氏變換 22
2.1.3 變換矩陣與齊次坐標 24
2.1.4 四元數(shù) 25
2.1.5 小結 26
2.2 三維視覺與圖形學基礎 27
2.2.1 相機模型 27
2.2.2 輻射測量基礎 31
2.2.3 光源 33
2.2.4 簡單材質建模與著色 34
2.2.5 復雜材質建模與著色 38
2.2.6 光線追蹤 40
2.3 深度學習基礎 42
2.3.1 神經(jīng)網(wǎng)絡基礎 44
2.3.2 基于神經(jīng)網(wǎng)絡學習的核心 45
2.3.3 小結 50
2.4 質量評價方法基礎 50
2.4.1 二維平面空間質量評價 50
2.4.2 三維立體空間質量評價 52
2.5 總結 53
3 NeRF的技術細節(jié) 54
3.1 NeRF解決的問題 54
3.1.1 輻射場 55
3.1.2 神經(jīng)輻射場 55
3.2 小試牛刀:NeRF原理介紹與代碼實現(xiàn) 57
3.2.1 數(shù)據(jù)準備 57
3.2.2 環(huán)境準備 58
3.2.3 數(shù)據(jù)加載 60
3.2.4 生成射線 64
3.2.5 位置編碼 66
3.2.6 MLP的結構 68
3.2.7 分層采樣 72
3.2.8 體渲染技術 76
3.2.9 射線渲染 78
3.2.10 訓練過程 81
3.2.11 模型渲染過程 85
3.2.12 小結 86
3.3 NeRF的開源項目:nerfstudio 87
3.3.1 nerfstudio的安裝 88
3.3.2 nerfstudio的架構 90
3.3.3 nerfstudio的運行方法 92
3.3.4 nerfstudio的調試方法 96
3.3.5 整合自定義的算法模型 99
3.3.6 小結 103
3.4 NeRF常用的數(shù)據(jù)集 104
3.4.1公開的數(shù)據(jù)集 104
3.4.2構造自定義的數(shù)據(jù)集 113
3.5總結 113
第二部分 NeRF進階探索
4優(yōu)化NeRF的生成與渲染速度 115
4.1基于多MLP的加速方法 116
4.1.1 kiloNeRF的架構 116
4.1.2采樣優(yōu)化方法加速訓練和推理 117
4.1.3蒸餾方法提升重建質量 118
4.2取代神經(jīng)網(wǎng)絡的方法 119
4.2.1 PlenOctrees 119
4.2.2 Plenoxels 124
4.3體素網(wǎng)格與MLP混合表達的方法 126
4.3.1 DVGO場景表達方法 126
4.3.2 DVGO快速優(yōu)化方法 128
4.4基于多分辨率網(wǎng)格的速度提升方法 130
4.4.1多分辨率網(wǎng)格表達方法 130
4.4.2哈希存儲 131
4.4.3 Instant-NGP的實現(xiàn) 132
4.5基于張量分解的速度提升方法 133
4.5.1張量分解方法 133
4.5.2基于張量分解方法的神經(jīng)場TensoRF 135
4.5.3 TensoRF的實現(xiàn) 136
4.6基于烘焙方法的超實時渲染方法 136
4.6.1開山之作:SNeRG 137
4.6.2進一步優(yōu)化的MERF 141
4.6.3支持超高速渲染的MobileNeRF 143
4.7 NeRF結合點云的速度提升方法 148
4.7.1 Point-NeRF場景表達方法 149
4.7.2 Point-NeRF神經(jīng)點云的重建方法 149
4.7.3非Point-NeRF生成點云的優(yōu)化方法 150
4.8基于硬件的NeRF加速的方法 151
4.8.1當前NeRF訓練算法的性能分析 152
4.8.2 Instant-3D算法的設計 153
4.8.3 Instant-3D硬件加速器的設計 154
4.8.4性能結果 155
4.9總結 155
5提升NeRF的生成與渲染質量 157
5.1反走樣類提升方法 157
5.1.1反走樣的開山之作Mip-NeRF 158
5.1.2應對無界場景鋸齒效應的Mip-NeRF360 167
5.1.3快速反走樣算法Zip-NeRF 171
5.1.4基于三平面的反走樣算法Tri-MipRF 174
5.2提升幾何重建質量的方法 177
5.2.1神經(jīng)隱式曲面生成算法 178
5.2.2 NeuS2:NeuS的加速與動態(tài)支持升級 184
5.2.3重建質量再次升級的Neuralangelo 187
5.3飄浮物去除方法 189
5.3.1 NeRFBuster:消除場景中的鬼影 190
5.3.2 Bayes’Rays:不確定性即飄浮物 192
5.4總結 195
6動態(tài)場景NeRF的探索和進展 196
6.1基于變形場的方法 197
6.1.1早期基于變形場的動態(tài)方法D-NeRF 197
6.1.2動態(tài)自拍場景的方法Nerfies 199
6.1.3基于超空間的動態(tài)場景重建方法HyperNeRF 202
6.2基于動靜分離建模的方法 204
6.2.1動態(tài)場景解耦方法D2NeRF 204
6.2.2更通用的動靜分離方法NeRFPlayer 208
6.3基于三平面的方法 210
6.3.1四維空間建模方法Hex-Plane 210
6.3.2更通用的多維平面建模方法K-Planes 213
6.4基于流式動態(tài)建模的方法 216
6.4.1 OD-NeRF的框架 217
6.4.2基于投影顏色引導的動態(tài)NeRF 218
6.4.3占據(jù)網(wǎng)絡的轉移與更新 218
6.5總結 219
7弱條件NeRF生成 220
7.1稀疏視角的NeRF重建方法 220
7.1.1基于策略優(yōu)化與正則化的生成方法 221
7.1.2基于圖像特征提取的生成方法 224
7.1.3基于幾何監(jiān)督的生成方法 235
7.2無相機位姿的NeRF重建方法 242
7.2.1靜態(tài)無相機位姿重建方法 242
7.2.2動態(tài)場景弱相機位姿重建方法RoDynRF 245
7.3弱圖像采集條件NeRF重建方法 250
7.3.1采集圖像偏暗的重建方法 250
7.3.2采集圖像模糊的重建方法 255
7.4總結 257
第三部分 NeRF實踐
8 NeRF的其他關鍵技術 259
8.1將NeRF導出為三維網(wǎng)格的方法 259
8.1.1傳統(tǒng)導出三維網(wǎng)格模型的方法 260
8.1.2基于NeRF的三維網(wǎng)格導出方法NeRF2Mesh 261
8.2 NeRF的逆渲染與重照明技術 264
8.2.1經(jīng)典的基于NeRF的逆渲染方法Nerfactor 265
8.2.2 TensoIR等后續(xù)逆渲染方法 268
8.3 基于文本的NeRF交互式搜索、編輯與風格化 269
8.3.1 使用文本風格化的NeRF-Art 269
8.3.2 基于反饋式學習的InstructNeRF2NeRF 272
8.3.3 使用文本語義搜索三維場景的LERF 273
8.4 NeRF 物體分割、去除、修復、操控和合成方法 274
8.4.1 基于少量交互的編輯方法SPIn-NeRF 274
8.4.2 將二維分割提升至三維的方法Panoptic–Lifting 276
8.5 基于NeRF 的動畫方法 279
8.5.1 基于籠體控制的動畫方法CageNeRF 280
8.5.2 基于物理規(guī)則的 NeRF 動畫方法 282
8.6 NeRF 壓縮與傳輸方法 284
8.6.1 ReRF 的設計框架和思路 284
8.6.2 運動估計與殘差估計 286
8.6.3 壓縮算法的設計與常用表達技巧 286
8.7 NeRF 其他方向的一些技術 288
8.7.1 NeRF 用于開放曲面建模的技術 288
8.7.2 使用特殊場景線索引導NeRF 重建的技術 290
8.7.3 其他相關工作 291
8.8 總結 291
9 NeRF 的落地與應用場景探索 292
9.1 NeRF 在基于拍攝的三維生成中的落地 293
9.2 NeRF 在文本生成三維模型中的應用 294
9.2.1 文本生成三維模型的一些關鍵技術 294
9.2.2 文本生成三維模型的部分產品 298
9.3 NeRF 在數(shù)字人中的應用 302
9.3.1 NeRF 生成數(shù)字人的主要技術 303
9.3.2 NeRF 生成數(shù)字人的應用說明 307
9.4 NeRF 在大規(guī)模場景中的應用 307
9.4.1 大規(guī)模場景 NeRF 的建模技術 308
9.4.2 大規(guī)模場景 NeRF 建模技術的商業(yè)產品 314
9.5 NeRF 在自動駕駛場景中的應用 315
9.5.1 自動駕駛閉環(huán)仿真方案UniSim 316
9.5.2 開源的高度模塊化的自動駕駛仿真框架MARS 320
9.5.3 自動動靜分離的自動駕駛方案EmerNeRF 323
9.5.4 NeRF在自動駕駛中的現(xiàn)狀和未來 324
9.6 NeRF在SLAM中的應用 324
9.6.1 NICE-SLAM的總體架構 325
9.6.2 NICE-SLAM的場景表示方法 326
9.6.3 NICE-SLAM的場景渲染方法 327
9.6.4 NICE-SLAM的地圖構建與軌跡跟蹤方法 327
9.6.5 另一種SLAM思路NerfBridge 328
9.7 NeRF在電商場景中的應用 329
9.7.1物品展示類的應用 329
9.7.2基于NeRF的虛擬試衣應用 330
9.8 NeRF在游戲中的應用 331
9.9 NeRF在其他領域的應用 332
9.9.1 NeRF在衛(wèi)星圖像中的應用 332
9.9.2 NeRF在醫(yī)療中的應用 334
9.9.3 NeRF在動物與植物建模中的應用 336
9.9.4 NeRF在工業(yè)監(jiān)控中的應用 337
9.9.5 NeRF與地理信息系統(tǒng)的結合應用 338
9.10總結 338
10 NeRF面臨的問題和突破點 340
10.1硬件資源消耗的問題 341
10.2隱式表達的格式標準化 341
10.3與現(xiàn)有圖形管線整合的問題 342
10.4上下游工具鏈的問題 343
10.5 NeRF導出幾何的質量問題 343
10.6總結 344
第四部分 3DGS技術
11三維高斯噴濺,開啟新紀元 346
11.1 3DGS原理與方法 347
11.1.1 3DGS的建模原理 347
11.1.2 3DGS流程的數(shù)學表達 347
11.1.3 3DGS的算法流程 349
11.2 3DGS在重建效果和效率上的提升 351
11.2.1 3DGS混疊效應優(yōu)化 351
11.2.2視角適應的渲染方法 354
11.3 3DGS在動態(tài)場景中的方法 355
11.3.1動態(tài)3DGS 356
11.3.2可支持運動編輯的動態(tài)稀疏控制高斯噴濺方法 357
11.4 3DGS在弱條件下的重建方法 358
11.4.1聯(lián)合學習位姿的CF-3DGS 358
11.4.2實時的稀疏視角3DGS合成FSGS 359
11.5 3DGS在應用層的進展 360
11.5.1 3DGS在大規(guī)模場景和自動駕駛中的進展 360
11.5.2 3DGS在數(shù)字人重建方向上的進展 361
11.5.3 3DGS在文本生成三維模型上的進展 362
11.5.4 3DGS后期編輯 364
11.5.5 3DGS在游戲中的應用 365
11.6 總結 365
后記 367