三维重建(单目、双目、多目、点云、SFM、SLAM)

这篇具有很好参考价值的文章主要介绍了三维重建(单目、双目、多目、点云、SFM、SLAM)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

三维重建定义
在计算机视觉中, 三维重建是指根据单视图或者多视图的图像重建三维信息的过程. 由于单视频的信息不完全,因此三维重建需要利用经验知识. 而多视图的三维重建(类似人的双目定位)相对比较容易, 其方法是先对摄像机进行标定, 即计算出摄像机的图象坐标系与世界坐标系的关系.然后利用多个二维图象中的信息重建出三维信息。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

常见的三维重建表达方式
常规的3D shape representation有以下四种:深度图(depth)点云(point cloud)体素(voxel)网格(mesh)
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
RGB-D深度图的D通道每个像素值代表的是物体到相机xy平面的距离,单位为 mm,由深度摄像头获取。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

Point Cloud点云是某个坐标系下的点的数据集。点包含了丰富的信息,包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等等。在我看来点云可以将现实世界原子化,通过高精度的点云数据可以还原现实世界。万物皆点云,由三维激光雷达获取。

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

体素是三维空间中的一个有大小的点,一个小方块,相当于是三维空间种的像素。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

三角网格就是全部由三角形组成的多边形网格。多边形和三角网格在图形学和建模中广泛使用,用来模拟复杂物体的表面,如建筑、车辆、人体,当然还有茶壶等。任意多边形网格都能转换成三角网格。

三维重建的分类

根据采集设备是否主动发射测量信号,分为两类:基于主动视觉理论和基于被动视觉的三维重建方法。
主动视觉三维重建方法:使用RGBD深度图点云进行三维重建,主要包括结构光法TOF飞行时间法激光扫描法。每个点到深度相机所在的垂直平面的距离值。这个距离值被称为深度值(depth)深度图像可以看做是一副灰度图像,其中图像中每个点的灰度值代表了这个点的深度值,即该点在现实中的位置到相机所在垂直平面的真实距离。通过深度图像获得场景的数据,对点云数据进行基于平面的分割,提取平面特征实现三维场景的重现。
被动视觉三维重建方法:被动视觉只使用RGB二维图像,根据图像的纹理分布等信息恢复深度信息,进而实现三维重建,主要包括单目双/多目。其中,双目视觉和多目视觉理论上可精确恢复深度信息,但实际中,受拍摄条件的影响,精度无法得到保证。单目视觉只使用单一摄像机作为采集设备,具有低成本、易部署等优点,但其存在固有的问题:单张图像可能对应无数真实物理世界场景(病态),故使用单目视觉方法从图像中估计深度进而实现三维重建的难度较大。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

基于深度学习的三维重建算法研究主要有三种:
1.在传统三维重建算法中引入深度学习方法进行改进;
2.深度学习重建算法和传统三维重建算法进行融合,优势互补;
3.模仿动物视觉,直接利用深度学习算法进行三维重建,包括基于体素、基于点云和基于网格。

有前景的方向:基于SFM的运动恢复结构基于Deep learning的深度估计和结构重建基于RGB-D深度摄像头的三维重建基于点云的三维重建

SFM(Structure From Motion),主要基于多视觉几何原理,用于从运动中实现3D重建,也就是从无时间序列的2D图像中推算出三维场景结构,是计算机视觉学科的重要分支,广泛应用于AR/VR、自动驾驶等领域。SFM是一个估计相机参数及三维点位置的问题,根据SfM过程中图像添加顺序的拓扑结构,SfM方法可以分为增量式、全局式、混合式、层次式、基于语义的SFM和基于深度学习的SFM。

模型测评网站
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

1 相机几何与标定

1.1 相机模型中的坐标系

相机模型存在4个坐标系:世界坐标系、摄像机坐标系、图像物理坐标系和图像像素坐标系。

光心:图像的中心。
光轴:穿过图像的光心,与图像平面垂直的轴。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

  • 世界坐标系(Xw,Yw,Zw):是客观三维世界的绝对坐标系,也称客观坐标系,就是物体在真实世界中的坐标,世界坐标系是随着物体的大小和位置变化的,单位是长度单位
  • 相机坐标系(Xc,Yc,Zc):以相机的光心坐标原点,以平行于图像的x和y方向为x轴和y轴,z轴和光轴平行,x, y,z互相垂直,单位是长度单位。
  • 图像物理坐标系(X,Y):以主光轴Zc和图像平面交点坐标原点,x’和y’方向如图所示,单位是长度单位。
  • 图像像素坐标系(Xc,Yc):以图像的上/下/左/右顶点坐标原点,u和v方向平行于x’和y’方向,单位是像素。(图像物理坐标系和像素坐标系仅通过平移可重合)

1.2 四种坐标系之间的转换

世界坐标系 -> 摄像机坐标系

从上面的坐标系介绍中我们可知世界坐标系和摄像机坐标系都是三维坐标系,而物体在三维空间中的位置变化只有两种,即平移和旋转,这个时候就用到我们的欧式变换了,即使原始坐标的齐次坐标乘以我们的欧式变换矩阵,就能得到最终的结果(使用欧式变换本质上就是为了实现矩阵相乘,齐次就是方便我们进行乘法)
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
但是很多时候平移和旋转都不止进行了一次,在多次连续的平移和旋转的情况下,加入假如我们将向量a进行了两次欧式变换,旋转和平移分别为R1,t1和R2,t2。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
摄像机坐标系 -> 图像物理坐标系

从摄像机坐标变换到图像物理坐标,我们利用了相似三角形的原理,根据相似三角形的性质列出对应的矩阵计算式,即可求出我们需要的结果,但是摄像机坐标是3维的,而现在要求的图像物理坐标是2维的,所以我们还是需要用到齐次坐标。sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

图像物理坐标系 -> 图像像素坐标系

图像物理坐标系与图像像素坐标系之间的转换其实就是单位转换和中心原点的转换,一个是中心点和长度单位,另一个是左上角和像素单位
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

1.3 相机内参

相机成像原理

这些坐标系转换过程(世界->相机->物理->像素)就是相机的成像原理,相机坐标系中间商
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
相机内参K相机坐标系<->像素坐标系齐次转换矩阵,由相机本身决定。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
相机外参RT:旋转平移矩阵,世界坐标系<->相机坐标系,外参由视角决定。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

1.4 相机标定

获取相机内参和外参的方法就是相机标定,找到很多对儿点的世界坐标系和像素坐标系的对应关系,求解内外参。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

2 传统三维重建

2.1 RGBD三维重建

深度相机(RGB-D Camera): 可以直接获取被测对象的三维信息 (深度图)的相机。

深度相机具有一个RGB相机和一个深度传感器,相比于单独使用深度传感器有如下优势:首先可以显示场景的RGB图像让人们有更直观的认知;其次可以将点云配准和二维图像特征点匹配相结合提高配准精度;最后可以将彩色值用于纹理贴图使重建模型具有颜色属性,增加重建的真实度和还原度。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

深度相机主要分为结构光ToF:目前比较主流的就是TOF相机,以Kimect为例Kinect v1是采用结构光方案,Kinect v2采用TOF方案。

经典RGBD三维重建算法
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

2.1.1 KinectFusion

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

2.1.2 BundleFusion

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

2.1 MVS三维重建

多角度重建(Multi-View Stereo, MVS): 从一系列不同角度的RGB图像中重建3D模型,即基于纯RGB的建模(刚体重建)。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
经典开源框架
位姿计算: COLMAP, MVE, OpenMVG, Slam等;
MVS: COLMAP, MVE, PMVS, SMVS, OpenMVS等;
综合性能效果等,目前比较好的重建方案: COLMAP + OpenMVS

经典必读论文
综述: Multi-View Stereo: A Tutorial
MVS开源框架测评:Tanks and Temples: Benchmarking Large-Scale Scene Reconstruction

2.2.1 COLMAP

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

2.2.2 OpenMVS

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

3 点云三维重建

3.1 3D点云任务

5大任务:

  • 点云检测(定位+分类):点云物体定位+分类,同二维。
    sfm三维重建,深度学习,计算机视觉,数码相机,人工智能- 点云分割(部位解析,语义分割):部位解析是对同一类物体的不同部位进行点分类,语义分割是对不同物体进行点分类。
    sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
  • 点云补全:由于近密远疏,将边缘稀疏的点云密集化。sfm三维重建,深度学习,计算机视觉,数码相机,人工智能- 点云生成:将原始的视频/图像转换为点云。sfm三维重建,深度学习,计算机视觉,数码相机,人工智能- 点云配准:完成不同视角的数据对齐,用于三维重建。sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

3.2 点云数据

3D点云由激光雷达扫描得到,每个样本包含n个点的(x,y,z)坐标(Nx,Ny,Nz)法向量数据,是一个nx6的txt,每行表示一个点。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
特性:无序性、近密远疏、非结构化
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

3.3 特征提取

3.3.1 PointNet

点云无序性->置换不变性(MLP升维+max)
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
网络架构

分类网络(全局特征->全局分类):输入n x 3(x,y,z)的点云信息,进行T-Net转化,对n个点分别进行MLP升维(3-> 64-> 128-> 1024),然后对n个点进行maxpooling(nx1024 -> 1x1024),得到全局特征,实现置换不变性,最后进入MLP(FC)进行k分类(1xk:此样本对应k个类的概率)

分割网络(各点特征->单点分类):输入n x 3(x,y,z)的点云信息,进行T-Net转化,对n个点分别进行MLP升维(3-> 64-> 128-> 1024),然后对n个点进行maxpooling(nx1024 -> 1x1024),得到全局特征,实现置换不变性,接着将nx64的各点特征全局特征concat拼接,最后经过几个MLP(FC)进行单点m分类(nxm:此样本中n个点对应m个类的概率)sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
缺点:缺乏局部特征融合!!

3.3.2 PointNet++

改进:使用最远点采样划分不同区域(中心点)内数量相等的点云分组Group,使用局部聚合(图卷积)进行局部特征融合,对每个区域使用PointNet 求出对应的区域特征向量,将不同半径的区域特征融合,最后进入FC层分类

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
Pytorch卷积Channel First!,把6当作channel提前,放在batch之后。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

3.4 PointNet分割和分类

4 单目三维重建

传统三维重建:需要深度估计和点云融合的中间步骤,而深度三维重建使用End2End模型一条龙完成。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
单目视觉是仅使用一台相机进行三维重建的方法。

4.1 NeuralRecon

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

4.2 单帧重建Mesh

单帧重建Mesh主要用于人脸重建

基于3DMM重建:Nonlinear 3D Face Morphable Model,On Learning 30 Face Morphable Model from In-the-wild Images,2DASL …
端到端重建:VRNet, PRNet …
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

4.2.1 3DMM

3D可变形模型(3DMM):利用统一人脸重建公式进行变形。
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

4.2.2 端到端重建

如轻量化的PRNet
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
单帧重建Mesh也可以用于物体/人体重建:如IF-Nets
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

4.2.3 多目三维重建MVS

MVS(Multi-View Stereo)

  • 经典开源框架
    MVSNet-必读经典
    sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
    P-MVSNet- 从pixel-wise拓展到patch-wise cost volume
    Unsupervised MVSNet- 无监督网络
    Fast-MVSNet - 速度快
    JDACS-MS-无监督MVS网络效果较好
    sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
    PatchMatchNet -有监督MVS网络效果较好
    sfm三维重建,深度学习,计算机视觉,数码相机,人工智能

5 基于NeRF的SLAM

神经辐射场(NeRF):用于场景表达,本质是两个全连接的MLP,用于 拟合空间位置 和 视角方向该点提密度 和 RGB值映射
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能
sfm三维重建,深度学习,计算机视觉,数码相机,人工智能文章来源地址https://www.toymoban.com/news/detail-778478.html

到了这里,关于三维重建(单目、双目、多目、点云、SFM、SLAM)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动驾驶 2D 单目\双目\多目视觉方法 一(Pseudo-LiDAR,Mono3D,FCOS3D,PSMNet)

    自动驾驶中必不可少的3D场景感知。因为深度信息、目标三维尺寸等在2D感知中是无法获得的,而这些信息才是自动驾驶系统对周围环境作出正确判断的关键。想得到3D信息,最直接的方法就是采用激光雷达(LiDAR)。但是,LiDAR也有其缺点,比如成本较高,车规级产品量产困难

    2024年02月02日
    浏览(37)
  • OpenCV C++双目三维重建:双目摄像头实现双目测距

    目录 OpenCV C++双目三维重建:双目摄像头实现双目测距 1.目录结构 2.依赖库  (1) Ubuntu 18.04配置开发环境  (2) Windows配置开发环境 3.双目相机标定  (1)双目相机标定-Python版  (2)双目相机标定-Matlab版 4.相机参数配置 5. 双目测距 6. 运行Demo 7.双目测距的误差说明 8. 双目三维重建项

    2024年02月02日
    浏览(62)
  • 双目视觉实战---三维重建基础与极几何

    目录 一,简介 二. 双视图与三角化 1. 三角化模型 2. 多视图几何的关键问题 3、极几何 三、本质矩阵 四、基础矩阵 3. 基础矩阵的作用及小结 五、基础矩阵估计 三维重建是指通过一系列的图像或传感器数据,推导出物体或场景的三维模型的过程。而极几何(Epipolar Geometry)

    2024年02月07日
    浏览(39)
  • 计算机视觉之三维重建(5)---双目立体视觉

     如下图即是一个平行视图。特点:(1) 两个平面平行。 (2) 基线平行于图像平面,极点 e e e 和 e ′ e\\\' e ′ 位于无穷远处。  1. 对于基础矩阵我们有另一个表达式: F = e ′ × K ′ R K − 1 F=e\\\'×K\\\'RK^{−1} F = e ′ × K ′ R K − 1 ,推导过程如下所示。  2. 在平行视图情况下,极点

    2024年04月12日
    浏览(47)
  • 经典文献阅读之--Gaussian Splatting SLAM(单目3D高斯溅射重建)

    3D GS在NeRF领域已经掀起了一股浪潮,然后又很快席卷到了SLAM领域,最近已经看到很多3D GS和SLAM结合的开源工作了。将为大家分享帝国理工学院戴森机器人实验最新开源的方案《Gaussian Splatting SLAM》,这也是第一个将3D GS应用到增量3D重建的工作,速度为3 FPS。要想实时从摄像头

    2024年03月10日
    浏览(51)
  • 经典文献阅读之--Orbeez-SLAM(单目稠密点云建图)

    对于现在的VSLAM而言,现在越来越多的工作开始聚焦于如何将深度学习结合到VSLAM当中,而最近的这个工作就给出了一个比较合适的方法。《Orbeez-SLAM: A Real-time Monocular Visual SLAM with ORB Features and NeRF-realized Mapping》这篇文章,可以轻松适应新的场景,而不需要预先训练,并实时为

    2024年02月13日
    浏览(39)
  • 【CloudCompare教程】008:基于点云的三维模型重建(泊松重建)

    本文讲述基于点云的三维模型重建方法,PoissonRecon是“Poisson Surface Reconstruction”的缩写,它是由约翰霍普金斯大学的Misha Kazhdan47提出的三角形网格生成算法的简单接口。 加载兔子点云,如下图所示: 在三维模型构建之前,应先计算法向量,否则会有以下提示:点云必须具有

    2024年02月07日
    浏览(48)
  • SfM——八点法计算F矩阵(基础矩阵)与三角测量

    1 八点法计算F矩阵(基础矩阵) 基础矩阵 用于描述两个视图之间的几何关系 基础矩阵:基础矩阵 F F F 是描述两个视图之间相机投影关系的矩阵。对于两个对应的图像坐标点 ( x , y , 1 ) (x, y, 1) ( x , y , 1 ) 和 ( u , v , 1 ) (u, v, 1) ( u , v , 1 ) ​ 在两个视图上,基础矩阵满足以下方

    2024年04月16日
    浏览(39)
  • SFM(Structure from Motion)和NeRF(Neural Radiance Fields)

    SFM(Structure from Motion)和NeRF(Neural Radiance Fields)都是计算机视觉领域中的重要算法,用于不同的任务和应用。 SFM(Structure from Motion): SFM是一种从图像序列中重建三维场景的技术。它通过分析相机在不同视角下捕获的图像来推断场景的三维结构和摄像机的运动。SFM算法可以

    2024年02月13日
    浏览(36)
  • photoscan(metashape)跑GPS辅助的无人机影像SfM(空三)教程

      刚打开的photoscan界面如下图所示:   然后,点击工作区左上角的添加堆块选项:   可以看到新增了一个名为“Chunk 1”的堆块,然后,右击“Chunk 1”,依次选择add、添加照片:   即可弹出照片选择窗口,到指定目录下全选图像,然后点击打开即可:   之后,在

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包