TSDF三维重建

本文详细介绍了三维重建中TSDF(Truncated Signed Distance Field)的计算方法,包括初始化大块体积、计算每个体素的SDF值、转换操作以及TSDF的融合过程。通过TSDF,可以将不同视角的图像信息整合,形成连续的三维表面。这一过程涉及到深度图、体素网格、相机坐标系转换和多帧融合等关键技术。
摘要由CSDN通过智能技术生成

流程分析:

  • 首先需要构建一大块空区域(不能太大,GPU放不下)
  • 一般把这个大区域叫做volume
  • 它有很多个小区域组成,每个角voxel(体素)
  • 需要计算每个voxel的TSDF值及其权重

初始化操作:

  • 一个三维的大区域(TSDF图)由LxWxH个三维小方块组成
  • 其中每一个小方块的大小也是自己定义的,例如0.05mx0.05mx0.05m
  • 5mx5mx5m的真实三维场景中有10^6个体素,计算量很大
  • 一般都用GPU来算,CPU也可以,但是会很慢

要对每个体素计算什么呢?(一个体素的SDF值,是它到最近的表面的距离)

  • x是其中的一个体素,绿色是离它最近平面
  • P点是平面上离X最近的一点
  • 它两之间的距离就是SDF(要计算的结果)
  • 其中T表示截断的意思(太近太远的设为 定值 )
  • 0表示最近,1和-1分别表示正面和反面最远

如何计算TSDF呢?

  • 面到相机的深度是ds,相机采集到的深度dv,则d(x)=ds-dv
  • d(x)>0说明该体素在真实的面的前面;反之则说明改体素在真实的面的后面

  • 转换操作(ds,其实就是我们的深度图中的数值)
  • 遍历每一个体素,计算其在世界坐标系中的位置
  • 根据初始化“大块”时设置的极点位置和体素大小决定
  • 再将其在世界坐标系的值转换成其在相机坐标系中的位置(位姿RT已知)(其到相机坐标原点的举例就是dv)
  • 再根据相机内参,转换到像素坐标(因为我们由深度图,得到像素坐标就能得到其深度值)

TSDF结果:

  • 红色表示一个表面
  • 正负1表示离得很远
  • 最终得到了多少体素的结果
  • 当前只表示其中一帧,还要融合

TSDF组合

  • 我们的输入由很多视角的图像组成,但是大块就那么一个
  • 所以咱们的大块时一直在更新的,但是并不是算完所有的一起更新
  • 相当于每一个体素的值是一种平均的感觉,各个视角的图都会对其产生影响
  • 但是第二帧是由其结果与第一帧组合得到,第三帧就是组合了第二帧(就像之前的动图,是一个增量式的过程,并不是最后一次组合)

整体概述

这个就是TSDF的更新和组合的过程

一步步计算各个体素TSDF值再把他们拼接起来

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值