跳转至

CaesarNeRF: Calibrated Semantic Representation for Few-Shot Generalizable Neural Rendering

会议: ECCV2024
arXiv: 2311.15510
代码: 待确认
领域: 3d_vision
关键词: 少样本新视图合成, 可泛化NeRF, 语义表征校准, Transformer, 序列细化

一句话总结

提出 CaesarNeRF,在可泛化 NeRF(GNT)基础上引入场景级语义表征,通过相机位姿校准(特征旋转对齐到目标视角)和序列细化(跨 Transformer 层逐步更新全局特征),在 1-view 设置下 PSNR 比 GNT 提升 1.74dB(LLFF),且可即插即用地增强 IBRNet、MatchNeRF 等其他基线。

研究背景与动机

  1. 领域现状:可泛化 NeRF(如 GNT、IBRNet、MatchNeRF)通过跨场景训练实现 feed-forward 新视图合成,但在少样本(1-3 视图)下性能显著下降,因为参考视图不足以覆盖目标区域。
  2. 现有痛点:现有方法主要依赖逐像素特征匹配做视图插值——当参考视图极少时,匹配信息稀疏且不可靠。缺乏对场景"整体是什么样"的全局理解,无法补全未见区域。
  3. 核心矛盾:像素级特征提供精确的局部对应但在少视图下覆盖不足;场景级语义特征可以提供全局先验但不同视角的语义特征含义不一致(同一场景不同角度拍的全局特征差异大)。
  4. 本文要解决:如何在可泛化 NeRF 中有效引入场景级语义表征来增强少样本渲染?
  5. 切入角度:观察到不同参考视图的全局特征直接平均会因视角差异产生语义冲突。解决方案:用相机外参的旋转矩阵将各视角的语义特征"旋转"对齐到目标视角,消除视角差异再聚合。
  6. 核心 idea:校准的语义表征——用相机位姿旋转对齐多视角全局特征,再与像素级特征拼接,通过 Transformer 各层序列细化。

方法详解

整体框架

在 GNT 基线上增加:(1) CNN 编码器提取全局语义特征 \(S_n\)(Global Average Pooling)→ (2) 用相机旋转矩阵校准 \(\tilde{S}_n = \mathcal{P}(T_n \cdot \mathcal{P}^{-1}(S_n))\) → (3) 多视角校准特征平均得 \(\tilde{S}\) → (4) 与像素级特征拼接形成全局-局部嵌入 \(\tilde{E}\) → (5) 在 Transformer 各层通过交叉注意力序列细化 \(\tilde{S}\)

关键设计

  1. 相机位姿校准(Calibration):
  2. 做什么:将每个参考视图的全局语义特征旋转到目标视角坐标系下
  3. 核心思路:变换 \(T_n = T_{out}^{w2c} \cdot T_n^{c2w}\),取 3×3 旋转子矩阵对特征做旋转变换。语义特征先 reshape 为 3D,旋转后再 reshape 回
  4. 设计动机:不同视角看到的场景全局特征在语义上不一致(如正面 vs 侧面),旋转对齐消除视角差异后平均才有意义。消融显示仅加校准就提升 0.67 PSNR(MVImgNet 1-view)

  5. 序列细化(Sequential Refinement):

  6. 做什么:在 Transformer 每层通过交叉注意力从逐帧特征 \(\{S_n\}\) 中学习残差更新 \(\Delta^{(k)}\),逐层细化全局特征 \(\tilde{S}^{(k+1)} = \tilde{S}^{(k)} + \Delta^{(k)}\)
  7. 核心思路:不同 Transformer 层需要不同粒度的全局信息——浅层需要粗粒度结构,深层需要精细细节。固定不变的全局特征无法适应
  8. 设计动机:与 FPN 在不同层使用不同尺度特征的思路类似,但在特征维度而非空间维度做分层

  9. Central Loss:

  10. 做什么:约束校准后各视图特征 \(\tilde{S}_n\) 与均值 \(\tilde{S}\) 的 L1 距离
  11. 核心思路:\(\mathcal{L}_{central} = \frac{1}{N}\sum ||\tilde{S}_n - \tilde{S}||_1\),鼓励校准后的特征一致性
  12. 设计动机:确保旋转对齐后各视角特征确实趋于一致,防止校准退化

损失函数 / 训练策略

\(\mathcal{L} = \mathcal{L}_{MSE} + \lambda_1 \mathcal{L}_{central} + \lambda_2 \mathcal{L}_{perc}\)\(\lambda_1=1, \lambda_2=0.001\))。训练 500K 迭代,每次 4096 条光线来自单场景。8 层 Transformer,语义特征 96 维。

实验关键数据

主实验

LLFF 数据集(少视图渲染):

方法 1-view PSNR 2-view PSNR 3-view PSNR
IBRNet 16.85 21.25 23.00
GNT(baseeline) 16.57 20.88 23.21
MatchNeRF 21.08 22.30
CaesarNeRF 18.31 21.94 23.45

1-view 相比 GNT 提升 +1.74 PSNR,在视图最少时收益最大。

即插即用增强其他基线(LLFF 2-view):

基线 原始 PSNR +Caesar PSNR 提升
IBRNet 21.25 22.39 +1.14
MatchNeRF 20.59 21.55 +0.96

消融实验(LLFF "orchid" 场景)

配置 PSNR LPIPS
GNT baseline 20.93 0.185
+ 语义表征(96维) 21.46 0.150
+ 序列细化 21.53 0.146
+ 校准 21.51 0.147
+ 语义 + 序列细化 + 校准(完整) 21.67 0.139

关键发现

  • 视图越少收益越大:1-view 提升 1.74 PSNR >> 3-view 提升 0.24 PSNR,说明语义表征主要弥补少视图下的信息缺失
  • 校准在物体中心场景更关键:MVImgNet 上校准带来 0.67 PSNR 提升,因为环绕拍摄视角变化更大
  • 可泛化性强:同一套方法可插入 GNT、IBRNet、MatchNeRF 三个不同基线,均获得一致提升
  • 语义特征 96 维足够:从 32→96 持续提升,96→128 无明显收益

亮点与洞察

  • 用相机位姿旋转特征的想法简洁且有理:与 SE(3)-equivariant 方法的精神类似,但实现极其轻量——只需一个矩阵乘法。核心洞察是:语义特征的"方向"与拍摄角度耦合,旋转对齐就能消除这种耦合
  • 插件式设计:不改变基线架构核心,只在特征层增加一个全局语义通道,易于集成到任何基于特征匹配的可泛化 NeRF 中
  • Central Loss 的正则化效果:一个简单的 L1 一致性约束就能有效引导校准学习,避免退化

局限性 / 可改进方向

  • 仍依赖参考视图覆盖:与生成式方法不同,CaesarNeRF 无法渲染参考视图完全未覆盖的区域(如物体背面)
  • 旋转对齐假设:假设旋转矩阵足以对齐语义特征,对于包含大量遮挡或透视变换的场景可能不够
  • 消融不够充分:主要在单场景(orchid)上做消融,跨场景有效性分析不足
  • 可改进:(1) 结合扩散模型处理完全不可见区域;(2) 加入平移和尺度校准而不仅是旋转;(3) 在更大规模数据上预训练语义编码器

相关工作与启发

  • vs GNT: CaesarNeRF 在其基础上加入全局语义通道,核心 Transformer 架构不变。在 1-view 上提升 1.74 PSNR 证明全局理解对少视图至关重要
  • vs PixelNeRF: PixelNeRF 用像素对齐特征但缺乏全局上下文,1-view PSNR 仅 9.32 vs CaesarNeRF 的 18.31
  • vs GeoNeRF: GeoNeRF 用几何先验(深度估计)增强少视图渲染,CaesarNeRF 用语义先验,两者互补

评分

  • 新颖性: ⭐⭐⭐⭐ 位姿校准语义特征的想法简洁有效,序列细化也是好的设计
  • 实验充分度: ⭐⭐⭐⭐ 4个数据集+3个基线插件实验+消融,但消融主要在单场景
  • 写作质量: ⭐⭐⭐⭐ 方法描述清晰,公式推导完整
  • 价值: ⭐⭐⭐⭐ 少视图可泛化 NeRF 的实用改进,插件式设计方便社区采用