深度学习之三维重建

原创
2022/06/30 08:42
阅读数 588

基于MVS的三维重建基础

三维信息表示方法

一般分为深度图/视差图、点云、网格。它们都是表达3D信息的一种方式,会根据实际应用场景不同来选取不同的方式来表示。比如说做一些背景序化、人脸特效就可以只使用深度图就可以了;而如果我们要重建一个大型场景,如博物馆什么的,需要将其显示出来供大家浏览,可以使用网格来表示;而做定位的时候,我们只需要用点云就可以了。但是如果我们要制作点云或者网格,都必须要使用深度图,这一步是必须要经历的。有了深度图才可能得到点云或者是三维的网格。

  • 深度图/视差图
  1. 深度图:场景中每个点到相机的距离;
  2. 视差图:同一个场景在两个相机下成像的像素的位置偏差dis
  3. 两者关系:depth=bf/dis
  4. 是三维信息的常用表示方式

在上图中,Ol和Or是两个相机,我们一般称为双目相机,它们之间的距离称为基线(Baseline)。空间的一个点P,它到基线的距离Z称为深度。上图中的两条红线分别是两个相机不同的成像。p点和p'分别是点P在Ol和Or相机成像中的点。视差d等于同名点对在左视图的列坐标减去在右视图上的列坐标,是像素单位

上图就是双目摄像机拍摄的照片,电动车后视镜的视差就为80-35=45.

立体视觉里,视差概念在基线校正后的像对里使用。也就是说两个相机是校正好的,平行的,都是朝前去拍摄物体的,此时才能使用视差图。一般来说我们使用的都是深度图,视差图更容易拍摄,然后转换成深度图。视差的单位是像素,深度的单位是毫米(mm),转换公式为depth=bf/dis,这里b为双目相机的基线距离,这个是已知的,f表示归一化的焦距,也就是内参中的fx,这个也是已知的,dis就是视差值。

  • 三维点云
  1. 三维点云是某个坐标系下的点的数据集
  2. 包含了丰富的信息,包括三维坐标XYZ,颜色RGB等信息

三维点云其实就是数据,它可以不展示给人类直观的观看。

  • 三维网格
  1. 由物体的邻接点云构成的多边形组成。
  2. 通常由三角形、四边形或者其他的简单凸多边形组成。

从上图可以看出,三维网格是点云的一种展现形式,它一般是不带颜色信息的。

  • 纹理贴图模型
  1. 带有颜色信息的三维网格模型
  2. 所有颜色信息存储在一张纹理图上,显示时根据每个网格的纹理坐标和对应的纹理图进行渲染得到的高分辨率的彩色模型。

图像坐标系、相机坐标系、世界坐标系

 

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部