M6-094M6: Multimodal & Generative ModelsVideo, 3D & Audio Generative ModelsMedium
Mastery:
Video, 3D & Audio Generative Models: 解释 NeRF 与 3D Gaussian Splatting 的差异。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: NeRF 用 MLP 表示隐式辐射场(体积渲染,慢);3DGS 用显式高斯基元(光栅化,快且可实时)。
📌 Key Takeaways
- •NeRF:隐式(MLP 查询密度与颜色)+ 体积渲染(慢)
- •3DGS:显式(大量 3D 高斯基元)+ 光栅化(快)
- •3DGS 可实时渲染、训练更快;NeRF 更紧凑但渲染慢
📐 Mathematical Derivations
数学机理:<strong>NeRF(Neural Radiance Fields,Mildenhall 等 2020)</strong>——(1) <strong>隐式表示</strong>——用一个 <strong>MLP</strong> F_θ(x,d)→(c,σ) 表示场景:输入 3D 位置 x 与视角方向 d,输出<strong>颜色 c</strong> 与<strong>体密度 σ</strong>。(2) <strong>体积渲染</strong>——对每条光线<strong>沿路径采样</strong>多个点,用体渲染公式积分得到像素颜色:C=∫T(t)σ(t)c(t)dt(离散化为求和)。(3) <strong>训练</strong>——用多视角图像做监督(最小化渲染图与真实图的差异);通过<strong>可微渲染</strong>反向传播到 MLP。(4) <strong>为什么慢</strong>——(a) <strong>每条光线需采样数十到数百个点</strong>,每点都要<strong>一次 MLP 前向</strong>(计算量大);(b) 渲染一张图需数十万到数百万次 MLP 前向;(c) 故 NeRF 渲染需<strong>数秒到数十秒</strong>(不可实时)。(5) <strong>改进</strong>——(a) <strong>位置编码</strong>(把 x 映射到高频基函数,使 MLP 能表示细节);(b) <strong>Instant-NGP</strong>(用<strong>哈希网格</strong>替代 MLP,大幅加速训练与渲染);(c) <strong>分层采样</strong>(在'有物体的区域'多采样)。<strong>3D Gaussian Splatting(3DGS,Kerbl 等 2023)</strong>——(1) <strong>显式表示</strong>——用<strong>大量 3D 高斯基元</strong>(数万到数百万个)表示场景:每个基元有<strong>位置 μ</strong>、<strong>协方差 Σ</strong>(形状/朝向)、<strong>颜色 c</strong>(含球谐系数以支持视角相关颜色)、<strong>不透明度 α</strong>。(2) <strong>渲染</strong>——把这些高斯基元<strong>投影到屏幕空间</strong>(2D 高斯)并<strong>光栅化</strong>(按深度排序 + alpha 混合);<strong>无需逐光线采样 + MLP 前向</strong>。(3) <strong>为什么快</strong>——(a) <strong>光栅化</strong>比'体积渲染 + MLP'快得多(GPU 光栅化硬件友好);(b) 可实现<strong>实时渲染</strong>(>30 FPS);(c) <strong>训练更快</strong>(分钟级 vs NeRF 的数小时)。(4) <strong>优点</strong>——实时、训练快、可编辑(直接改基元);(5) <strong>缺点</strong>——(a) <strong>存储大</strong>(数百万基元需大量显存);(b) <strong>显式表示</strong>(不是'连续场',故在稀疏视角下泛化差);(c) 对'反射/透明'等复杂材质仍困难。<strong>对比总结</strong>——(a) <strong>表示</strong>:隐式(MLP)vs 显式(基元);(b) <strong>渲染</strong>:体积渲染(慢)vs 光栅化(快);(c) <strong>速度</strong>:NeRF 秒级 vs 3DGS 实时;(d) <strong>存储</strong>:NeRF 小(一个 MLP)vs 3DGS 大(数百万基元);(e) <strong>训练</strong>:NeRF 小时级 vs 3DGS 分钟级;(f) <strong>编辑性</strong>:3DGS 更易编辑(改基元);(g) <strong>泛化</strong>:NeRF 类(隐式)在稀疏视角下更好。<strong>与生成模型的结合</strong>——(a) <strong>3D 生成</strong>(如 DreamFusion 用 2D 扩散 + NeRF/3DGS 优化);(b) <strong>3DGS 的生成</strong>(如用扩散生成 3DGS 参数);(c) <strong>前馈式重建</strong>(如 LRM、VGGT 直接从图像预测 3D)。<strong>评估</strong>——(a) 渲染质量(PSNR/SSIM/LPIPS);(b) 渲染速度(FPS);(c) 存储大小;(d) 训练时间。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'显式 vs 隐式'是核心区分</strong>——它决定了渲染速度、存储与泛化;面试中能给出这一对比是深度理解的标志。② <strong>'3DGS 可实时'是它的杀手级优势</strong>——使 3D 内容可用于交互式应用(VR/游戏);这是 NeRF 难以达到的。③ <strong>'存储代价'是 3DGS 的代价</strong>——数百万基元需大量显存/磁盘;故有压缩方法(如量化、剪枝)。④ <strong>'稀疏视角下 NeRF 类更好'</strong>——隐式表示有'先验平滑性'(因为 MLP 连续),故在少视角时泛化更好;3DGS 是显式的(需足够视角)。⑤ <strong>'与生成模型的结合是当前热点'</strong>——2D 扩散提供'语义先验',3D 表示提供'几何一致性';故 (a) 用扩散监督 NeRF/3DGS 优化(SDS)、(b) 用前馈模型直接预测 3D。⑥ <strong>面试要点</strong>——被问'NeRF vs 3DGS',应给出'<strong>隐式 MLP + 体积渲染(慢)vs 显式高斯 + 光栅化(实时)</strong>'与'<strong>存储/泛化/编辑性的对比</strong>';能指出'3DGS 实时但存储大、NeRF 泛化好但慢'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕以为 NeRF 可实时渲染(需数十万次 MLP 前向)
- ✕忽略 3DGS 的存储代价
🎯 Interviewer Follow-ups
- ?NeRF 为什么慢?
- ?3DGS 的'高斯基元'是什么?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.