当前位置:网站首页>深度学习之三维重建
深度学习之三维重建
2022-07-03 15:37:00 【算法之名】
基于MVS的三维重建基础
三维信息表示方法
一般分为深度图/视差图、点云、网格。它们都是表达3D信息的一种方式,会根据实际应用场景不同来选取不同的方式来表示。比如说做一些背景序化、人脸特效就可以只使用深度图就可以了;而如果我们要重建一个大型场景,如博物馆什么的,需要将其显示出来供大家浏览,可以使用网格来表示;而做定位的时候,我们只需要用点云就可以了。但是如果我们要制作点云或者网格,都必须要使用深度图,这一步是必须要经历的。有了深度图才可能得到点云或者是三维的网格。
- 深度图/视差图
- 深度图:场景中每个点到相机的距离;
- 视差图:同一个场景在两个相机下成像的像素的位置偏差dis
- 两者关系:depth=bf/dis
- 是三维信息的常用表示方式
在上图中,Ol和Or是两个相机,我们一般称为双目相机,它们之间的距离称为基线(Baseline)。空间的一个点P,它到基线的距离Z称为深度。上图中的两条红线分别是两个相机不同的成像。p点和p'分别是点P在Ol和Or相机成像中的点。视差d等于同名点对在左视图的列坐标减去在右视图上的列坐标,是像素单位
上图就是双目摄像机拍摄的照片,电动车后视镜的视差就为80-35=45.
立体视觉里,视差概念在基线校正后的像对里使用。也就是说两个相机是校正好的,平行的,都是朝前去拍摄物体的,此时才能使用视差图。一般来说我们使用的都是深度图,视差图更容易拍摄,然后转换成深度图。视差的单位是像素,深度的单位是毫米(mm),转换公式为depth=bf/dis,这里b为双目相机的基线距离,这个是已知的,f表示归一化的焦距,也就是内参中的fx,这个也是已知的,dis就是视差值。
- 三维点云
- 三维点云是某个坐标系下的点的数据集
- 包含了丰富的信息,包括三维坐标XYZ,颜色RGB等信息
三维点云其实就是数据,它可以不展示给人类直观的观看。
- 三维网格
- 由物体的邻接点云构成的多边形组成。
- 通常由三角形、四边形或者其他的简单凸多边形组成。
从上图可以看出,三维网格是点云的一种展现形式,它一般是不带颜色信息的。
- 纹理贴图模型
- 带有颜色信息的三维网格模型
- 所有颜色信息存储在一张纹理图上,显示时根据每个网格的纹理坐标和对应的纹理图进行渲染得到的高分辨率的彩色模型。
图像坐标系、相机坐标系、世界坐标系
边栏推荐
- Using multipleoutputs to output multiple files in MapReduce
- Subclass hides the function with the same name of the parent class
- Srs4.0+obs studio+vlc3 (environment construction and basic use demonstration)
- 子类隐藏父类的同名函数
- GCC cannot find the library file after specifying the link library path
- Popular understanding of decision tree ID3
- UnityShader——MaterialCapture材质捕捉效果 (翡翠斧头)
- Concurrency-02-visibility, atomicity, orderliness, volatile, CAS, atomic class, unsafe
- 阿特拉斯atlas扭矩枪 USB通讯教程基于MTCOM
- Puppet automatic operation and maintenance troubleshooting cases
猜你喜欢
Unity功能——Unity离线文档下载及使用
Jvm-08-garbage collector
Download and install common programs using AUR
Matplotlib drawing label cannot display Chinese problems
Unityshader - materialcapture material capture effect (Emerald axe)
VS2017通过IP调试驱动(双机调试)
Jvm-06-execution engine
Kubernetes advanced training camp pod Foundation
Dataframe returns the whole row according to the value
整形和浮点型是如何在内存中的存储
随机推荐
Visual host system design and development (Halcon WinForm)
Baidu AI Cloud helps Shizuishan upgrade the smart health care model of "Internet + elderly care services"
利用MySQL中的乐观锁和悲观锁实现分布式锁
互斥对象与临界区的区别
UnityShader——MaterialCapture材质捕捉效果 (翡翠斧头)
VC下Unicode和ANSI互转,CStringW和std::string互转
Using multipleoutputs to output multiple files in MapReduce
Go语言自学系列 | golang switch语句
Jvm-06-execution engine
分布式事务(Seata) 四大模式详解
Srs4.0+obs studio+vlc3 (environment construction and basic use demonstration)
《微服务设计》读书笔记(下)
软件逆向破解入门系列(1)—xdbg32/64的常见配置及功能窗口
Can‘t connect to MySQL server on ‘localhost‘
Jvm-05-object, direct memory, string constant pool
Popular understanding of gradient descent
Download and install common programs using AUR
Intelij idea efficient skills (III)
Chapter 04_ Logical architecture
Introduction, use and principle of synchronized