石家庄做网站优化公司网页游戏传奇世界开服表
【唐宇迪】三维重建-TSDF通俗解读 人工智能入门教程
水泡动画模拟(Marching Cubes) - 算法小丑 - 博客园 (cnblogs.com)
TSDF
流程分析
- 首先需要构建一大块空区域
 - 采用体素网格来存储该区域
 - 需要计算每个体素的TSDF值及其权重
 
原理简述
SDF值:它到最近的表面的距离

- X是其中一个体素,绿色是离它最近的平面
 - P点是平面上离X最近的一点
 - PX的模即为SDF
 - 其中T表示为截断的意思,例如大于1记为1,小于-1记为-1。
 
计算流程:如何计算TSDF呢?
-  
面到相机的深度是ds,相机采集到的深度是dv,则d(x) = ds - dv;
 -  
d(x) > 0说明该体素在真实的面的前面;反之则说明在真实的面的后面。

 
坐标转换
- 遍历每一个体素,计算其在世界坐标系中的位置
 - 根据初始“大块”时设置的极点位置和体素大小决定
 - 再将其在世界坐标中的值转换成其在相机坐标系中的位置(其到相机坐标原点的距离就是dv)
 - 再根据相机内参,转换到像素坐标(因为我们由深度图,得到像素坐标就能得到其深度值)
 
TSDF组合
每个体素的值是增量更新的,每一帧图像都会更新体素的TSDF值。
例如第二帧是由其结果与第一帧组合得到,第三帧是组合了第二帧。
 tsdf(t)=g(tsdf(t−1),tsdf(t)),t≥1tsdf(t) = g(tsdf(t - 1),tsdf(t)),t ≥ 1 tsdf(t)=g(tsdf(t−1),tsdf(t)),t≥1
Marching Cubes等值面算法

