3D的表示方式除了点云外还有很多种,每种方法都有各自的特点和优势。
- 点云(point cloud)
- 将场景表示为离散点的集合,每个点具有位置(x,y,z)属性,还可能有法线、颜色等可选属性
- 优点是简单
- 缺点是缺乏结构,都是一些离散的点,缺乏拓扑结构,如果想要获取物体表面的几何会比较困难
- 网格(Mesh)
- 在点云的基础上添加了点和点之间的边,能够表示物体的几何结构
- 隐式神经场(Implicit Neural Field)
-
将场景想象成一堆粒子,每个粒子有自己的颜色和密度。其中密度属性可以理解为光线照射到这个粒子上的穿透程度(透明度),不透明的点的密度大,透明的点密度小
-
储存这些粒子的颜色和密度不是像点云那样显式保存,而是使用一个神经网络来隐式保存。
- 具体来说:输入空间中的点的坐标 给神经网络,网络输出这个位置的颜色和密度
-
拓展阅读【可选】:傅里叶变换在隐式神经场中的应用
- 如果两个相距很近的点(输入很相似)输入网络,网络通常会输出相似的结果,这一般被称为网络的鲁棒性很好(即网络会将这些轻微的改变当作噪声,而不会影响输出结果)。但是在场景中可能会出现一些突变(高频细节,即相距很近的两个点差别却很大),神经网络对这种轻微的位置变化不敏感会导致表达的场景很模糊
- 利用傅里叶变换的思想,将坐标 分解为多个频率,使得轻微的位置变化在频域空间内变化巨大
-
神经辐射场(Neural Radiance Field,NeRF):引入了图形学中的体积渲染技术,NeRF是一个里程碑的技术,应用很广泛
-
- 符号距离场(Signed Distance Field,SDF)
- 隐式神经场在表示3D场景中的细节表现很好,但是有时候我们需要表示一个物体的表面几何,方便下游应用使用(例如表示出了物体的表面几何,可以将这个物体与其它物体进行碰撞、光线反射等互动)
- 符号距离场记录了空间中每个点到物体表面的距离(称为SDF值):物体内部距离为负,物体表面距离为0,物体外部距离为正
- 只需要找到SDF值=0的地方,就可以得到物体的表面
- 符号距离函数(Signed Distance Function,缩写也是SDF,注意和符号距离场进行区分):使用神经网络来隐式地表示场景,输入三维空间中的位置,输出这个点的SDF值
- 3D高斯泼溅(3D Gaussian Splatting,3DGS)
- 针对NeRF这一技术时间消耗大的问题,3DGS将场景表示为多个椭球的集合
- 类似于使用多个圆去拟合一个曲线,3DGS则使用多个三维的椭球去拟合3D形状
- 是目前最新的3D表示方法,速度快(但是不代表在任何条件下都是最好,还是要看使用的目的)
参考资料
[1] 3D Generative Models: A Survey 中 3.2 3D Representations章节
[2] 3D Representation Methods: A Survey https://arxiv.org/pdf/2410.06475
转载时请包括本文地址:https://dw-dengwei.cn/posts/3D-Rep