基于MVS的三维重建算法学习笔记(二)— 立体视觉的几何基础总结
声明
本人书写本系列博客目的是为了记录我学习三维重建领域相关知识的过程和心得,不涉及任何商业意图,欢迎互相交流,批评指正。
概述
本博客主要是介绍了一些在三维空间中应用的基础知识,主要参考的教程是《视觉SLAM十四讲》以及其配套的视频教程,一些公式和理论的详细推导来自bilibili的up主lessLe6发布的关于十四讲的讲解;本文也只是做一些记录和总结,会不定期更新,详细的内容可以去看作者的具体教程;
1. 常见三维数据类型
- .stl文件:三维打印的通用格式,三角面静态模型;文件格式简单,只能描述三维物体的几何信息,不支持颜色材质等信息,是计算机图形学处理CG、数字几何处理如CAD、 数字几何工业应用, 如三维打印机支持的最常见文件格式。
- .obj文件:OBJ文件是一种文本文件,可以直接用写字板打开进行查看和编辑修改。静态多边形模型,不包含动画、材质特性、贴图路径、动力学、粒子等信息。主要支持多边形(Polygons)模型。是最受欢迎的格式。
- .ply文件:静态多边形模型,PLY 是一种电脑档案格式,全名为多边形档案(Polygon File Format)或 斯坦福三角形档案(Stanford Triangle Format)。 该格式主要用以储存立体扫描结果的三维数值,透过多边形片面的集合描述三维物体,与其他格式相较之下这是较为简单的方法。它可以储存的资讯包含颜色、透明度、表面法向量、材质座标与资料可信度,并能对多边形的正反两面设定不同的属性。
- .obj与.ply文件具体内容示例:
2. 三维形状的几种表达形式
-
深度图:每个像素都记录了从视点(viewpoint)到遮挡物表面(遮挡物就是阴影生成物体)的距离,深度图指存储单视图所有像素的深度值的二维图像;
-
视差图:每个像素记录同一场景在两个相机下成像的像素的位置偏差dis,关系为 d e p t h = b f d i s depth=\frac{bf}{dis} depth=disbf(其中b为基线长度,f为焦距),视差图指存储立体校正后单视图所有像素视差值的二维图像;
-
三维点云(point cloud):某个坐标系下点的数据集,包含三维坐标xyz、颜色RGB、法线向量 N x , y , z N_{x,y,z} Nx,y,z;
-
体素(voxel):三维空间中的一个有大小的点,一个小方块,相当于是三维空间中的像素;
-
三维网格(mesh):由物体的邻接点云构成的多边形组成,通常由三角形、四边形或者其他的简单凸多边形组成;
-
纹理贴图模型(texture mesh):带有颜色信息的mesh,所有颜色信息存储在一张纹理图上,显示时根据每个网格的纹理坐标和对应的纹理图进行渲染得到高分辨率的彩色模型;
3. 三维空间刚体运动
4. 李群和李代数
5. 相机标定
6. 非线性优化
7. 对极几何与三角测量
参考文献和资料
[1]科普:三维文件格式