Sat-NeRF VS NeRF

前文我们分析了两者的源码,接下来我们做一个简短的分析对比一下Sat-NeRF 和标准 NeRF 模型的代码

一、输出通道的不同

论据:

  • 标准 NeRF:

    self.number_of_outputs = 4  # rgb (3) + sigma (1)
    
  • Sat-NeRF:

    self.number_of_outputs = 9  # rgb (3) + sigma (1) + sun visibility (1) + rgb from sky color (3) + beta (1)
    

分析:

标准 NeRF 模型输出 4 个通道,分别是 RGB 颜色(3 个通道)和体积密度 σ(1 个通道)。而 Sat-NeRF 增加了额外的输出,包括太阳能可见性(1 个通道)、天空颜色 RGB(3 个通道)和不确定性 β(1 个通道),总共 9 个输出通道。

结论:

Sat-NeRF 的输出更加丰富,除了基本的颜色和密度信息外,还包含了与光照相关的参数。这使得 Sat-NeRF 能够在渲染过程中更好地模拟真实世界中的光照和阴影效果,尤其适用于需要考虑太阳方向和天空颜色的应用场景。


二、输入参数的扩展

论据:

  • 标准 NeRF 的 inference 函数:

    def inference(model, args, rays_xyz, z_vals, rays_d=None):
        ...
        rays_d_ = None if rays_d is None else torch.repeat_interleave(rays_d, repeats=N_samples, dim=0)
        ...
        for i in range(0, batch_size, chunk):
            input_dir = None if rays_d_ is None else rays_d_[i:i + chunk]
            out_chunks += [model(xyz_[i:i+chunk], input_dir=input_dir)]
        ...
    
  • Sat-NeRF 的 inference 函数:

    def inference(model, args, rays_xyz, z_vals, rays_d=None, sun_d=None, rays_t=None):
        ...
        rays_d_ = None if rays_d is None else torch.repeat_interleave(rays_d, repeats=N_samples, dim=0)
        sun_d_ = None if sun_d is None else torch.repeat_interleave(sun_d, repeats=N_samples, dim=0)
        rays_t_ = None if rays_t is None else torch.repeat_interleave(rays_t, repeats=N_samples, dim=0)
        ...
        for i in range(0, batch_size, chunk):
            out_chunks += [model(
                xyz_[i:i+chunk],
                input_dir=None if rays_d_ is None else rays_d_[i:i +
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ajaxm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值