基于MVS的三维重建算法学习笔记(二)— 立体视觉的几何基础总结

  • 声明
  • 概述
  • 1. 常见三维数据类型
  • 2. 三维形状的几种表达形式
  • 3. 三维空间刚体运动
  • 4. 李群和李代数
  • 5. 相机标定
  • 6. 非线性优化
  • 7. 对极几何与三角测量
  • 参考文献和资料

声明

本人书写本系列博客目的是为了记录我学习三维重建领域相关知识的过程和心得,不涉及任何商业意图,欢迎互相交流,批评指正。

概述

本博客主要是介绍了一些在三维空间中应用的基础知识,主要参考的教程是《视觉SLAM十四讲》以及其配套的视频教程,一些公式和理论的详细推导来自bilibili的up主lessLe6发布的关于十四讲的讲解;本文也只是做一些记录和总结,会不定期更新,详细的内容可以去看作者的具体教程;

1. 常见三维数据类型

  • .stl文件:三维打印的通用格式,三角面静态模型;文件格式简单,只能描述三维物体的几何信息,不支持颜色材质等信息,是计算机图形学处理CG、数字几何处理如CAD、 数字几何工业应用, 如三维打印机支持的最常见文件格式。
  • .obj文件:OBJ文件是一种文本文件,可以直接用写字板打开进行查看和编辑修改。静态多边形模型,不包含动画、材质特性、贴图路径、动力学、粒子等信息。主要支持多边形(Polygons)模型。是最受欢迎的格式。
  • .ply文件:静态多边形模型,PLY 是一种电脑档案格式,全名为多边形档案(Polygon File Format)或 斯坦福三角形档案(Stanford Triangle Format)。 该格式主要用以储存立体扫描结果的三维数值,透过多边形片面的集合描述三维物体,与其他格式相较之下这是较为简单的方法。它可以储存的资讯包含颜色、透明度、表面法向量、材质座标与资料可信度,并能对多边形的正反两面设定不同的属性。
  • .obj与.ply文件具体内容示例:

2. 三维形状的几种表达形式

  • 深度图:每个像素都记录了从视点(viewpoint)到遮挡物表面(遮挡物就是阴影生成物体)的距离,深度图指存储单视图所有像素的深度值的二维图像;

  • 视差图:每个像素记录同一场景在两个相机下成像的像素的位置偏差dis,关系为depth=bfdisdepth=\frac{bf}{dis}depth=disbf​(其中b为基线长度,f为焦距),视差图指存储立体校正后单视图所有像素视差值的二维图像;

  • 三维点云(point cloud):某个坐标系下点的数据集,包含三维坐标xyz、颜色RGB、法线向量Nx,y,zN_{x,y,z}Nx,y,z​;

  • 体素(voxel):三维空间中的一个有大小的点,一个小方块,相当于是三维空间中的像素;

  • 三维网格(mesh):由物体的邻接点云构成的多边形组成,通常由三角形、四边形或者其他的简单凸多边形组成;

  • 纹理贴图模型(texture mesh):带有颜色信息的mesh,所有颜色信息存储在一张纹理图上,显示时根据每个网格的纹理坐标和对应的纹理图进行渲染得到高分辨率的彩色模型;

3. 三维空间刚体运动









4. 李群和李代数








5. 相机标定


6. 非线性优化




7. 对极几何与三角测量






参考文献和资料

[1]科普:三维文件格式

基于MVS的三维重建算法学习笔记(二)— 立体视觉的几何基础总结相关推荐

  1. 基于MVS的三维重建算法学习笔记(一)— MVS三维重建概述与OpenMVS开源框架配置

    基于MVS的三维重建算法学习笔记(一)- MVS三维重建概述与OpenMVS开源框架配置 声明 1. MVS(Multi-view stereo)概述 稀疏重建与稠密重建的区别 稀疏重建--SFM(S ...

  2. 基于MVS的三维重建算法学习笔记(五)— 立体匹配经典算法PatchMatch论文翻译及要点解读

    基于MVS的三维重建算法学习笔记(五)- 立体匹配经典算法PatchMatch论文翻译及要点解读 声明 问题提出 问题建模 通过PatchMatch获取平面参数--Inference via Patc ...

  3. 基于MVS的三维重建算法学习笔记(四)— 立体匹配经典算法Semi-Global Matching(SGM)论文翻译及要点解读

    基于MVS的三维重建算法学习笔记(四)- 立体匹配经典算法Semi-Global Matching(SGM)论文翻译及要点解读 声明 SGM概述 Cost Calculation(像素代价计算)--M ...

  4. 图像去雾算法(二)基于暗通道先验算法学习笔记

    在http://write.blog.csdn.net/postedit/78301999中介绍了图像去雾的相关研究方法,发现目前为止在图像去雾方面,何凯明博士基于暗通道先验的算法具有很好的效果,关于 ...

  5. 经典排序算法学习笔记二——快速排序

    快速排序 数据结构 不定 最差时间复杂度 O(n^2) 最优时间复杂度 O (n*log n) 平均时间复杂度 O (n*log n) 最差空间复杂度 根据实现的方式不同而不同 https://zh. ...

  6. python自动化办公脚本下载-基于python实现自动化办公学习笔记二

    word文件 (1)读word文件 import win32com import win32com.client def readWordFile(path): # 调用系统word功能,可以处理do ...

  7. 大顶堆删除最大值_算法学习笔记(47): 二叉堆

    堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...

  8. l2-004 这是二叉搜索树吗?_算法学习笔记(45): 二叉搜索树

    二叉搜索树(Binary Search Tree, BST)是一种常用的数据结构,在理想情况下,它可以以 的复杂度完成一系列修改和查询,包括: 插入一个数 删除一个数 查询某数的排名(排名定义为比该数 ...

  9. 莫队算法学习笔记(二)——带修莫队

    前言:什么是莫队 莫队算法,是一个十分优雅的暴力. 普通的莫队可以轻松解决一些离线问题,但是,当遇上了一些有修改操作的问题,普通莫队就无能为力了. 于是,改进后的莫队--带修莫队就这样产生了. L i ...

最新文章

  1. JAVA线程池之双端队列与工作密取workstealingpool java7新加的一种线程池
  2. arcgis 快速制图插件_51GIS学院|ArcGIS空间数据分析系列课程的27个视频
  3. python的应用领域-Python的应用领域
  4. 怎么添加本地音乐_展示 | 传一学员优秀项目之音乐播放器
  5. 死磕 java集合之TreeMap源码分析(三)- 内含红黑树分析全过程
  6. POJ2352-Stars【树状数组】
  7. java在线网页客服聊天_管理员消息java 网站用户在线和客服聊天
  8. java循环嵌套 0228 2101班
  9. Flask之Flask实例有哪些参数
  10. 如何理解JavaScript中Object.defineProperty【一】
  11. C++Builder2010创建线程
  12. 安装Jenkins教程(wind版)
  13. h264文件视频存储格式和音频存储格式
  14. 谷歌邮箱lmap服务器填什么_常用邮箱SMTP服务器设置
  15. ftp上传当天文件的方法_8uftp上传工具,8uftp上传工具的使用方法只需8步
  16. hilbert方程组matlab,数值分析(Hilbert矩阵)病态线性方程组的求解Matlab程序
  17. Windows下使用Git+rsync构建文件同步工具
  18. CUDA C 编程指导(二):CUDA编程模型详解
  19. Oracle EBS 名词解释
  20. 文件或目录windows/temp/explorer.exe损坏且无法读取 请运行chkdsk工具

热门文章

  1. 四、子弹类的创建,飞机子弹发射与无用子弹的销毁(雷霆战机)
  2. 什么IT项目可以兼职在学校做
  3. python人像精细分割_基于UNet网络实现的人像分割 | 附数据集
  4. 机械硬盘(HDD)与固态硬盘(SSD)
  5. RK3288 开发板 排插物理引脚对应图以及如何进入android6.0.1内核终端、uboot终端
  6. C. Petya and Inequiations
  7. 虾皮shopee跨境电商靠谱吗
  8. iPhone 14 电池耗电怎么样?iPhone 14和13比对那个续航好?
  9. linux pppd源码下载_PPPD源码分析
  10. 模电——三极管各个引脚之间的电压关系