三维空间的描述形式

参考资料:1;

显式

Voxel体素

Point cloud点云

Triangle mesh三角网格

隐式

场的定义:“空间中点”到“点的属性”(可以是向量,如磁感应矢量B,也可以是是标量)的映射。

隐式表示可以看成是:一种映射,可以用函数or神经网络去拟合映射关系。

SDF(Signed Distance Funciton)符号距离函数

SDF表示一个点到一个曲面的最小距离,同时用正负来区分点在曲面内外。

映射关系:空间中点(x,y,z)->距离值s

Occupancy Field 占用场

占用场表示一个点被曲面占用的概率(占用就是在曲面内部)

映射关系:空间中点(x,y,z)->[0,1]是否占用,以0.5为分界

占用场给空间中每个点都赋一个是否被曲面占用的概率,相当于表示了一个点在曲面内部的概率

Neural Radiance Field 神经辐射场

映射关系:(x,y,z,d)->(R,G,B,sigma)

d其实是球坐标(cita,fai),描述空间射线,所以映射的自变量是5维向量

空间中的点+点发出的一条射线,d表示从这个点发出的一条射线的方向->R,G,B表示从这个射线的方向去看这个点的颜色值,sigma表示这个点的密度值/透明度值

辐射场的定义:

将“空间中的点+点发出的一条射线”映射到“属性”

如隐式亮度场:

映射到“点的密度值+射线的方向对应的颜色值”,刻画了光在三维空间的分布,而不明确定义场景的几何形状

从任何角度去观察,都可以得到该视角的观察结果(观察结果其实就是一幅RGB图像)

为了达到这个效果,需要保证:

每个点,在每个角度,都能呈现出一种特定的颜色

->

从这个点,发出的每一个角度的射线,都能呈现出一种特定的颜色(可以想象一个长满五颜六色的刺的海胆)

->

空间中每一个点的每一个角度,都需要一个对应的颜色值,也就是(x,y,z,d)->(R,G,B)

->

不同的点的颜色透明度会不同,比如烟雾或者彩色的玻璃,虽然它们有颜色,但是我们也可以透过它们看到之后的物体,于是我们还需要给点增加一个新的属性,透明度sigma,有的地方也叫密度(但我认为透明度才是正确的说法!密度和透明度有必然联系吗?)也就是(x,y,z,d)->(R,G,B,sigma)

用神经网络去拟合辐射场的映射关系

任何点的亮度都不显式储存,而是通过查询MLP实时计算,以高计算负荷为代价(显式储存,人如其名,占用大量内存,分辨率低,因为内存比神经网络所能储存的数据量小,但快速)

一种类似数组的储存(?)

3D reconstruction

释义:3D重建,将捕获的2D视图集合转换为可被计算机处理和理解的3D模型。

体绘制

参考资料:1;

NeRF

释义:Neural Radiance Field,神经辐射场,将摄像机位置直接映射到颜色&密度

3D Gaussian Splatting(3D GS)

参考资料:1;2;3

隐式辐射场

参考资料:1

YOLO

参考资料:1;2

OpenCV

人流密度检测

参考资料:1;2

3D Gaussian Splatting for Real-Time Radiance Field Rendering

3D Gaussian Splatting实时辐射场渲染