• 5、nerf++(pytorch)


    简介

    《NeRF++: Analyzing and Improving Nerual Radiance Fileds》,该论文主要包括两部分:一部分是分析了原始NeRF具备的形状-光线模糊性问题,另一部分是提出了一个解决室外360度开放场景的渲染方案。
    在这里插入图片描述
    在这里插入图片描述

    SHAPE-RADIANCE AMBIGUITY(形状-辐射模糊度)

    在这里插入图片描述
    NeRF通过隐式表达的方式完成新视角合成任务,也就是说NeRF依赖与视图外观进行建模,这就导致了3D形状和辐射度之间的固有模糊性。

    对于在一个场景数据下训练好的Nerf表示,其空间的几何表示可能是错误的,但仍然可以在训练样本上渲染出正确的结果,简单来说,由于损失函数只是要求预测颜色与原图接近就行,所以即使训练体积密度σ 是错误的,也能在训练集得到较为的结果

    在论文中,作者先使用一个球形的模型去训练NeRF中的σ ,然后再使用上左中的GT training view去训练NeRF中的c ,在相同视角下进行预测时发现即使在错误的σ分布下仍然能输出较好的图像质量,但是一旦更换视角(GT test view)就会输出如上左图的结果。造成该现象的原因正是View-Dependent的网络设计

    作者认为有两点因素让Nerf避免受这样的歧义性干扰,一点是如果σ和正确的几何形状偏差较大,那么c的建模必然是关于方向d的高频信号。对于正确的几何建模,c的建模会是平滑的。受限于MLP的有限回归能力,σ与正确几何偏差较大的表示对应的c是难以训练出来的。另一点因素是方向d参数在靠后的层数才被输入,这更加限制了利用该信息拟合高频信号的能力,再加上考虑对于d的正余弦编码到高维空间的空间维度2L的L参数,方向d的L值为4,相比于x的10小,也限制了其表达能力。因此最终训练得到的隐式场反映的会是正确的几何

    在这里插入图片描述
    作者将采样点的位置x和方向d都从网络的第一层输入的话并且位置编码的L参数都为10,网络整体效果就会下降(vanilla MLP)

    INVERTED SPHERE PARAMETRIZATION(倒球面参数化)

    在这里插入图片描述
    Nerf在建模室外场景时,对于远景,如果不对其进行建模,则会造成背景误差,如果对其建模,由于尺度问题会造成前景的分辨率下降

    在原始NeRF中,对于Front-View的开放场景,使用的一种名为NDT坐标系的方式(可以简单理解为逆深度),但是对于360度的开放场景NDT坐标系是搞不定的,于是作者提出了360度开放场景的一种解决方案:将360度开放场景的渲染分为两部分通过两个NeRF进行渲染
    在这里插入图片描述

    首先将场景空间划分为两个体积,一个内部单位球体和一个由覆盖内部体积补集的反向球体表示的外部体积。内部体积包含前景和所有摄像机,而外部体积包含环境的剩余部分

    在这里插入图片描述

    渲染光线的颜色,需要单独进行光线投射,然后进行最终合成。内部NeRF不需要重新参数化,因为场景的这一部分被很好地限制住了。对于外部NeRF,我们应用了一个反向球体参数化

    在这里插入图片描述
    在这里插入图片描述
    首先,通过令∣ o + ta d ∣=1就可以求得点 a 的坐标,同理点 b = o + tb d 可以通过d T ( o + t b d ) = 0求得,经过几何求解 w = arcsin|b| - arcsin(|b| / r),然后再对a反向进行渲染即可得到p的方向x’,y’,z’。

    公式详解
    a点坐标:我们知道射线 o + t d 得到的是世界坐标系下的3d坐标,球心为世界坐标系中心点(计为H),那么对射线上一点取模为1,即Ha为1,也就是球体半径
    b点坐标:作点到线段的垂线,可以假设垂线相交与b,满足Hb * Ob = |Hb| * |Ob| * cosΘ = 0,b点坐标为 o + tb d,射线单位方向d(dT)的转置与Hb( o + tb d)相乘为0,求出b点坐标
    w:几何求解∠w = ∠baH - ∠bpH,也就是 w = arcsin(|b| / 1) - arcsin(|b| / r),arcsin(|b| / 1)= ∠baH,arcsin(|b| / r)= ∠bpH

    原本的渲染公式修改为
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    nodejs+vue+elementui医院挂号预约管理系统4n9w0
    Windwos安装配置Jdk8时报计算机中丢失api-ms-win-crt-runtime-|1-1.0.dll
    web api 在线更新设备代码
    Unity vscode 官方debug
    【C++】类
    MegLab 新能力“老番动漫超画质”上线,支持渣画质一键焕新
    LabVIEW压电驱动迟滞补偿控制
    常用电源符号含义分享
    高并发下的分布式缓存 | Read-Through缓存模式
    Nginx 实战-03-nginx 负载均衡
  • 原文地址:https://blog.csdn.net/weixin_50973728/article/details/126133816