看个视频

https://www.youtube.com/watch?v=8M_-lSYqACo
这是mobilefusion的视频,大家先了解一下,看到在三维重建的时候外面有个长方体包围盒了吗?

数据准备:

我们不同角度拍摄的RGB图、深度图和相应的pose.txt。

步骤:

1.建立长方体包围盒

要建立一个长方体包围盒。让所有的三维点都在这个长方体里面。
假设z方向垂直相机。
很明显,x,y方向上的极值就是图像的边界。
图像的边界点是就是四个角。
(0,0),(w,0),(0,h),(w,h)
z方向上深度范围是0~max_depth
组合而成的边界点就是(0,0,0),(0,0,max_depth),(w,0,0)等的2^3=8种情况,然后把这些点用相机的内参和外参换算到世界坐标系中,长方体的极点。

2.划分网格

在长方体内部划分网格
比如说我们现在求得的长方体的极点分别是(-1,-1,-1),(1,1,1)单位是米。
我们要在这个长方体内部划分网格,就是分割出一个个等体积的小的立方体,也就是所谓的体素。我们让体素的边长是0.02,也就是2厘米。
那么从-1到1,我们可以划分出100个体素,也就是说这个长方体上每个小立方体的8个顶点的坐标可以用(x,y,z)来表示,其中x,y,z都是0-100之间的,同时它们的世界坐标也可以通过(-1+0.02x,-1+0.02y,-1+0.02*z)来计算出来。
以下图片来自https://blog.csdn.net/qq_31785865/article/details/78524429

3.迭代更新tsdf网格

遍历每一组数据(RGB图、深度图、pose.txt)
每次把这个长方体内的所有格点的世界坐标通过逆变换到相机坐标,再投影到图片上。
再将图片上对应位置的深度与格点的在相机坐标系下的深度比较。
depth_diff = depth_val-cam_pts[2,:];
如果|depth_diff |<trunc_marin则认为有效。
用dist=depth_diff/trunc_marin去加权更新tsdf网格。
ps:tsdf网格是和2中划分的长方体一样的,每个顶点存放的是dist的加权和。

4.找等值面

用marching cubes算法在tsdf网格中寻找dist加权和为0的等值面。就是物体表面。

三维重建Fusion中的TSDF算法通俗描述相关推荐

  1. 在医学图像分析中使用ICP算法进行点云配准

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文转载自「计算机视觉工坊」,该公众号重点在于介绍深度学习.智能驾驶等领域,一个小众的公众号. 论文标 ...

  2. 全基因组关联分析中上位性检测算法的研究

    全基因组关联分析中上位性检测算法的研究 前言 这个项目主要是分享一些全基因组关联分析中上位性检测算法的研究经验,算是,怎么入门,写这么个东西,一是做总结,二是咱实验室估计以后还会有做这个方向的,备着吧 ...

  3. 三维重建7:Visual SLAM算法笔记

    VSLAM研究了几十年,新的东西不是很多,三维重建的VSLAM方法可以用一篇文章总结一下. 此文是一个好的视觉SLAM综述,对视觉SLAM总结比较全面,是SLAM那本书的很好的补充.介绍了基于滤波器的 ...

  4. 维特比算法的java实现_维特比算法通俗明白

    维特比算法说白了就是动态规划实现最短路径,只要知道"动态规划可以降低复杂度"这一点就能轻松理解维特比算法维特比算法是一个特殊但应用最广的动态规划算法,利用动态规划,可以解决任何一个 ...

  5. 关于机器学习中山峰聚类算法的说明

    前言 在之前关于聚类算法的文章中,笔者主要涉及的内容均是和参数求解相关的,如C均值(包括模糊C均值).混合高斯模型等,而对于一些无参数密度估计的算法尚未讨论,而且一般基于参数密度估计的算法均是建立在假 ...

  6. 资料分享:送你一本《数据结构与算法JavaScript描述》电子书!

    数据结构 是掌握计算机编程必须具备的技能.通常情况下,我想掌握一门编程语言所用的方法就是利用这门语言把数据结构中线性表.栈.队列.字符串.动态数字.整数集合.树.图.搜索.排序等涉及的算法全部写一遍. ...

  7. 人工智能算法通俗讲解系列(二):逻辑回归

    2019独角兽企业重金招聘Python工程师标准>>> 今天,我们介绍的机器学习算法叫逻辑回归.它英语名称是Logistic Regression,简称LR. 跟之前一样,介绍这个算 ...

  8. Spark中常用的算法

    Spark中常用的算法: 3.2.1 分类算法 分类算法属于监督式学习,使用类标签已知的样本建立一个分类函数或分类模型,应用分类模型,能把数据库中的类标签未知的数据进行归类.分类在数据挖掘中是一项重要 ...

  9. 现代计算机三大科学计算,基于三维重建过程中纹理映射问题的研究

    基于三维重建过程中纹理映射问题的研究 科学计算可视化.计算机动画和虚拟现实已经成为计算机图形学的三大热门话题,这三大话题的技术核心均为三维图形.学术界和产业界普遍认为,纹理映射是解决真实地显示现实世界 ...

最新文章

  1. python简单装饰器_python装饰器的简单示例
  2. java final的内存_Java并发编程之final域的内存语义
  3. 【POJ - 3159】Candies (差分约束,卡SPFA)
  4. Qt图形界面编程入门(Qt的历史、Qt安装资源链接、Qt Creator简介)
  5. 你今天volatile了吗?--慎重使用
  6. Modbus调试软件--ModbusPoll、ModbusSlave使用详解
  7. C++ 多线程下的单例模式
  8. 偏差-方差分解 Bias-Variance Decomposition(转载)
  9. 觉得清楚,跟说清楚写清楚,两回事
  10. python123.io在线编程,详解Python IO编程
  11. UT斯达康首家手机网上专卖店落户淘宝网
  12. ubuntu20.04安装谷歌输入法命令
  13. unity material之tiling和offset属性
  14. 基于Vue实现的多条件筛选功能(类似京东和淘宝功能)
  15. all any 或 此运算符后面必须跟_嵌套查询 带有in谓词,比较运算符,any或all谓词的子查询...
  16. 医疗空气净化器系统软件总体设计
  17. osg 基本几何图元
  18. 股票指标使用 - 捕捞季节
  19. tomcat启动项目时一直卡住无反应的解决方案
  20. Linux下的杀毒软件-NOD32

热门文章

  1. 个人常用工具网站和常用命令(置个顶方便查)
  2. java开发移动画册_云画册—移动画册创作平台
  3. 令人拍案叫绝的JPEG图像压缩原理
  4. php curlget方法_PHP cURL请求详解
  5. Android:HttpClient、tomcat支持php、搭建PHP后台
  6. 废品回收小程序,低成本创业之选
  7. python如何使用变量_python 如何引用变量
  8. 2019Linux系统教程189讲-08_基于LAMP架构部署商城系统
  9. 国内SLAM技术发展现状大解析
  10. GBase 8a数据库运行状态检查