VolSDF

Volume Rendering of Neural Implicit Surfaces(VolSDF):神经隐式曲面的体渲染


摘要:一个神经隐式表面体积渲染框架,将体积密度建模为几何形状的函数来实现表面重建。定义的体积密度函数作为拉普拉斯的累积分布函数(CDF)应用到一个有符号的距离函数(SDF)表示。优点:1、它向在神经体绘制过程中学习的几何结构提供有用的归纳偏置。2、它有助于不透明度近似误差的界限,导致对观察光线的准确采样。3、它允许在体积绘制中有效的无监督地解除形状和外观的纠缠。

1、介绍

将密度表示为到场景表面的有符号距离的函数,首先,它保证了生成密度的明确定义的表面的存在。其次,这种密度公式允许限制沿着光线的不透明度的近似误差。NeRF,将神经隐式函数与体积渲染相结合,能够达到极佳的渲染效果。然而在场景几何体形状的表示上有所欠缺。

2、方法

利用一种新的参数化的体密度,定义为变换的SDF,可以促进体渲染过程,并且文章推导出一个边界的不透明度近似的错误,设计了一个采样过程近似的体渲染积分(公式)。

2.1密度转换为SDF

Ω ⊂ R 3 \Omega\subset\mathbb{R}^3 ΩR3表示三维空间中物体占据的空间。使用 M = ∂ Ω \mathcal{M}=\partial\Omega M=Ω表示该物体的边界曲面。用1表示表示Ω指示函数,用d表示到其边界M的符号距离函数(SDF)在物体内部则用负数表示距离,在物体外部用正数表示距离。
在这里插入图片描述
使用可学习的符号距离函数d的变换来建模密度这一性质。α、β > 0是可学习参数,并且Ψβ是具有零均值和β尺度参数的拉普拉斯分布的累积分布函数(CDF)
在这里插入图片描述
拉普拉斯分布
在这里插入图片描述
直观地,密度σ对具有恒定密度α的均匀对象进行建模,该恒定密度α在对象的边界附近平滑地减小,其中平滑量由β控制。
将体积密度函数转换为SDF有两个好处。首先,它为表面几何提供了有用的归纳偏差,并为重建表面提供了一种原则性方法。这与以前的工作形成鲜明对比,即重建被选为学习密度的任意级别集。其次,有助于约束渲染体积的不透明度误差,这是体积渲染管线中的关键组成部分。这与以前的方法再次相反,在以前的方法中,很难为一般的MLP密度设计这样的边界。

2.2 σ的体渲染

首先回顾体渲染中的积分,每条射线有一组S个采样点, 在体渲染中,考虑从相机位置c∈R3 沿方向v∈R3 发出的射线x:x(t)= c + tv,t ≥ 0。体积渲染是所有关于近似于沿着这一射线到达相机的集成光辐射。其中有两个重要的参数:透明度T和光场L
透明度T定义如下公式,表示一个光粒子成功穿过段[c, x(t)]而不反弹的概率
在这里插入图片描述
不透明度O是互补概率O(t) = 1 −T(t),O是单调递增函数,O(0)=0,假设每条射线最终被遮挡即O(∞)=1,所以可以将O看作是拉普拉斯累积分布函数(CDF),即
在这里插入图片描述
从而得到概率密度函数(Probability Density Function, PDF)
在这里插入图片描述
L(x,n,v)是辐射场,即在方向v上从点x发出的光线,辐射场同样受到法线的影响 n ( t ) = ∇ x d Ω ( x ( t ) ) \boldsymbol{n}(t)=\nabla_{\boldsymbol{x}}d_\Omega(\boldsymbol{x}(t)) n(t)=xdΩ(x(t))
。使用法线是根据BRDF计算颜色中的法线。
解纠缠,接下来就是一系列的采样 S = { s i } i = 1 m , 0 = s 1 < s 2 < ⋯ < s m = M ; {\cal S}=\{s_{i}\}_{i=1}^{m},0=s_{1}<s_{2}<\cdots<s_{m}=M; S={si}i=1m,0=s1<s2<<sm=M; 累加估计这个积分(离散值),ti表示间距乘以PDF,Li表示采样的辐射场。
在这里插入图片描述
VolSDF的采样方案: 使用单个密度σ,并且通过基于不透明度近似的误差界的采样算法来计算采样S。

2.3 不透明度近似误差的界限

使用矩形规则开发不透明度近似误差的界限,对于一组样本 T = { t i } i = 1 n , 0 = t 1 < t 2 < ⋯ < t n = M \mathcal{T}=\{t_i\}_{i=1}^n,0=t_1<t_2<\cdots<t_n=M T={ti}i=1n,0=t1<t2<<tn=M,令 δ i = t t + 1 − t i \delta_{i}=t_{t+1}-t_{i} δi=tt+1ti σ i = σ ( x ( t i ) ) \sigma_i=\sigma(\boldsymbol{x}(t_i)) σi=σ(x(ti)),给定某个t ∈(0,M],假设t ∈ [tk,tk+1],并应用矩形规则(即,左黎曼和)以得到近似:
在这里插入图片描述
并且E(t)表示该近似中的误差。不透明度函数(等式5)的对应近似为,可以得到计算不透明度的近似公式 O ^ ( t ) = 1 − exp ⁡ ( − R ^ ( t ) ) \widehat{O}(t)=1-\exp(-\widehat{R}(t)) O (t)=1exp(R (t))
目标是导出[0,M]上近似为 O ^ ≈ O . \widehat{O}\approx O. O O.的一致界,关键是沿着射线x(t)的区间内密度o的导数的下界
Theorem 1.
密度σ在[ti,ti+1]段内的导数满足
在这里插入图片描述
在这里插入图片描述
该定理的好处是它允许仅基于区间端点处的无符号距离|di|,|di+1|和密度参数α,β来约束每个区间[ti,ti−1]中的密度导数。此界限可用于导出矩形规则的不透明度近似值的误差界限
在这里插入图片描述

Theorem 2
对于t ∈ [0,M],近似不透明度O的误差可以有界如下:
在这里插入图片描述
可以通过注意 E ^ ( t ) \widehat{E}(t) E (t),以及exp( E ^ ( t ) \widehat{E}(t) E (t))在t中单调递增,而exp(− R ^ ( t ) \widehat{R}(t) R (t))在t中单调递减,来约束t∈[tk,tk+1]的不透明度误差限制t ∈ [tk,tk+1]的不透明度误差,通过
在这里插入图片描述
取所有区间上的最大值提供了作为T和β的函数的界BT,β
在这里插入图片描述

Lemma 1

固定β > 0。对于任何 ϵ \epsilon ϵ> 0,足够密集的采样T将使得BT,β < ϵ \epsilon ϵ

其次,对于固定数量的样本,我们可以设置β,使得误差界低于 ϵ \epsilon ϵ

Lemma 2
固定n > 0。对于任何 ϵ \epsilon ϵ> 0,一个足够大的β满足
在这里插入图片描述
将保证BT,β ϵ \epsilon ϵ

这部分主要对不透明做了一个约束,让他的误差足够小。

2.4 采样算法

需要一些算法采样确定一组采样点使得近似结果与实际结果足够接近,即保证BT,β ϵ \epsilon ϵ
对于lemma1,选择足够大的采样点是可以保证误差足够小,但是采样点会很大,主要是用lemma2的方法,选择一个β+ >β,使得BT,β+ ϵ \epsilon ϵ,在保证该前提的情况下不断增加采样数,同时减小β+,这样的策略不保证收敛,然而实践表明有85%的概率可以收敛,即使不收敛也会保证小于误差
在这里插入图片描述
使用逆变换采样(11行)返回一组新的m = 64个样本(O)

2.5 损失计算

系统的输入是一系列图片以及对应的相机参数,模型对每一个具体的像素点p进行处理学习。每一个像素点p对应一个三元组 ( I p , c p , v p ) (I_{p},\boldsymbol{c}_{p},\boldsymbol{v}_{p}) (Ip,cp,vp), I p I_{p} Ip代表RGB颜色, c p \boldsymbol{c}_{p} cp为相机位置, v p \boldsymbol{v}_{p} vp为射线方向,损失函数由两部分组成
在这里插入图片描述
在这里插入图片描述

总结

VolSDF将体积密度表示为可学习的表面几何形状的符号距离函数的变换版本,提供了有用的归纳偏置,允许几何结构的解纠缠(密度)和辐射场,并且相对于先前的神经体绘制技术改进了几何近似。此外,它允许限制不透明度近似误差,从而导致体绘制积分的高保真度采样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/19565.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

( 位运算 ) 190. 颠倒二进制位 ——【Leetcode每日一题】

❓190. 颠倒二进制位 难度&#xff1a;简单 颠倒给定的 32 位无符号整数的二进制位。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff08;如 Java&#xff09;中&#xff0c;没有无符号整数类型。在这种情况下&#xff0c;输入和输出都将被指定为有符号整数类型&a…

看大老如何用Postman+Jmeter实现接口实例

一、接口基础 为什么要单独测试接口&#xff1f; 1. 程序是分开开发的&#xff0c;前端还没有开发&#xff0c;后端已经开发完了&#xff0c;可以提前进入测试 2. 接口直接返回的数据------越底层发现bug&#xff0c;修复成本是越低的 3. 接口测试能模拟功能测试不能测到的异常…

Baklib知识库搭建平台产品操作手册

产品概述 Baklib是一款专业的知识库搭建平台&#xff0c;它帮助客户搭建内部知识库和对外帮助中心。在今天的信息时代&#xff0c;知识已经成为组织的核心竞争力&#xff0c;而Baklib正是为了帮助组织构建完整的知识体系&#xff0c;提高组织的核心竞争力而生。 Baklib具有以…

程序进制换算

进制数介绍 一、进制介绍 二进制 &#xff1a;0或1&#xff0c;满2进1&#xff0c;以0B或者0b开头&#xff0c;如 0b1101 八进制&#xff1a;0-7&#xff0c;满8进1&#xff0c;&#xff0c;以0开头&#xff0c;如0234 十进制&#xff1a;0-9&#xff0c;满10进1&#xff0c;…

阿里云服务器建站教程(5分钟网站上线)

使用阿里云服务器快速搭建网站教程&#xff0c;先为云服务器安装宝塔面板&#xff0c;然后在宝塔面板上新建站点&#xff0c;阿里云服务器网以搭建WordPress网站博客为例&#xff0c;来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程&#xff1a; …

CLion安装(详细步骤+截图)

目录 一、CLion-2021.1.3.exe 下载 二、运行环境mingw-w64压缩包下载 三、 安装插件 ---- ide-eval-resetter-2.1.13压缩包下载 一、CLion-2021.1.3.exe 下载 Other Versions - CLion (jetbrains.com) 1、下载 2、更改路径 &#xff08;不要放在含有中文的路径下&a…

Qt+WebRTC学习笔记(七)ubuntu22.04下搭建coturn(STUN/TURN)

前言 因工作原因&#xff0c;很长时间没更新相关文档了&#xff0c;笔者之前测试时&#xff0c;一直使用示例自带的公网中转服务器。考虑到后期项目需要&#xff0c;笔者在线搭建一个coturn服务器测试&#xff0c;供有需要的小伙伴使用 一、安装coturn 若需要最新版本的cotu…

如何通过appuploader把ipa文件上传到App Store教程步骤

​ iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store&#xff01;​ 下面进行步骤介绍&#xff01;​ 利用Appuploader这个软件&#xff0c;可以在Windows、Linux或Mac系统中申请ios和上传IPA到App Store Connect。​ 非常的方便&#xff0c;没有Mac也可以…

tiechui_lesson08_内存的分配和链表

主要是将链表结构的使用&#xff0c;在内核开发中使用起来比较方便的一种数据结构【LIST_ENTRY】。 一、内存的分配 主要是学习一些基本操作。现在推荐使用的动态分配函数【ExAllocatePoolWithTag】 PVOID tempbuffer ExAllocatePoolWithTag(NonPagedPool, 0x1000, xxaa); …

APP外包项目的线上维护方案

APP的使用已经非常普及&#xff0c;不论是2C还是2B的APP都已经渗透到了我们生活的方方面面&#xff0c;对于APP的开发公司来说APP项目的线上维护是一个非常重要的问题。如果APP项目比较重要而且用户规模比较大&#xff0c;那更需要专业的技术团队来维护。今天和大家分享这方面的…

计算机网络-SNMP协议与pysnmp

1.概念 2.典型架构 3.snmp的信息交互 4.MIB 4.1常见MIB节点 5.SNMP管理模型 MIB位于被管理进程 6.SNMP的三个版本 6.1 SNMPv1 6.2 SNMPv2C 6.3 SNMPv3 6.3.1 SNMP3的基本操作 6.3.2 SNMP交互GET 6.3.3 SNMP交互-GETBULK 6.3.4 SNMP交互-SET 6.3.5 SNMP交互-trap 6.3.6 SNMP交…

【技术干货】PCB焊盘设计之问题详解

SMT的组装质量与PCB焊盘设计有直接的关系&#xff0c;焊盘的大小比例十分重要。如果PCB焊盘设计正确&#xff0c;贴装时少量的歪斜可以再次回流焊纠正(称为自定位或自校正效应)&#xff0c;相反&#xff0c;如果PCB焊盘设计不正确&#xff0c;即使贴装位置十分准确&#xff0c;…

【 图像水印 2019 CVPR】 StegaStamp 论文翻译

【 图像水印 2019 CVPR】 StegaStamp 论文翻译 论文题目&#xff1a;StegaStamp: Invisible Hyperlinks in Physical Photographs 中文题目&#xff1a;物理照片中不可见的超链接 论文链接&#xff1a;https://arxiv.org/abs/1904.05343 论文代码&#xff1a;https://github.co…

Linux内核架构和工作原理

**前言&#xff1a;**作用是将应用层序的请求传递给硬件&#xff0c;并充当底层驱动程序&#xff0c;对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。Linux进程1.采用层次结构&#xff0c;每个进程都依赖于一个父进程。内…

django基础知识详解

1. 安装与介绍 课程特点&#xff1a; 学习难度大&#xff0c;大部分内容需要理解并记忆文件较多易混淆学习阶段注重框架使用&#xff0c;工作阶段注重实现业务逻辑综合应用强&#xff0c;小练习少 1.1 Django框架的介绍 2005年发布,采用Python语言编写的开源web框架早期的时…

分享105个NET源码ASP源码,总有一款适合您

分享105个NET源码&#xff0c;总有一款适合您 源码下载链接&#xff1a;https://pan.baidu.com/s/1zFMIHX6juXdR2CaHMEr5mQ?pwdf5hz 提取码&#xff1a;f5hz 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后…

每天一个提高效率的Matlab编程小技巧(1)-dbstop if error

相信在matlab调试程序的时候都遇到过这种情况&#xff1a;运行程序时命令行报错&#xff0c;而且出错的位置在我们自己定义的函数里&#xff0c;比如下面这个例子&#xff1a; 主函数main.m: a[1 2 3]; b[4 5]; csum_squares(a,b); 子函数sum_squares.m function csum_squa…

实验一 Python基础编程

实验一 Python基础编程 只为给原因学习编程的同学提供一个思路&#xff0c;让编程更简单&#xff01;&#xff01;&#xff01; 本博主擅长整理粉丝的私信&#xff01;只要你有需求就可以告诉博主&#xff01;博主可以帮你解决并发表&#xff01; 一、实验学时 2学时 二、实…

infuluxdb时序数据库介绍

时序数据库&#xff08;influxdb&#xff09; InfluxDB是一个开源的、高性能的时序型数据库&#xff0c;在时序型数据库DB-Engines Ranking上排名第一。 下载地址:https://dl.influxdata.com/influxdb/releases/influxdb2-2.3.0-windows-amd64.zip 启动&#xff1a; CMD到解压…

IDEA编译JDK1.8源码及运行测试

———————————————— 版权声明&#xff1a;本文为CSDN博主「神韵499」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/qq_41055045/article/details/112002440 ————…