3D视觉基础

news2024/10/6 2:16:22

3D 视觉领域是计算机视觉的一个重要分支,旨在模拟和分析三维空间中的物体、场景和运动。它结合了图像处理、计算几何学、机器学习和深度学习等技术,以从二维图像或传感器数据中重建三维信息。本文主要介绍 3D 视觉中的一些基础概念。

目录

  • 一. 三维坐标系统
  • 二. 深度信息
  • 三. 摄像机标定
  • 四. 传感器
  • 五. 点云处理
  • 六. 特征提取与匹配
  • 七. 三维重建
  • 八. 物体检测和跟踪
  • 九. 三维场景可视化
  • 十. 3D 视觉应用

一. 三维坐标系统

在 3D 视觉中,三维坐标系统是一种用于表示和定位三维空间中的点和物体的数学工具。它通常是基于笛卡尔坐标系的,也被称为三维直角坐标系,其中一个点的位置由 (x, y, z) 坐标表示,分别表示在水平、垂直和深度方向上的位置。
在这里插入图片描述

需要注意的是,三维坐标系有左手系和右手系之分 1。在数学和物理学中,通常使用右手系;而在计算机图形学、虚拟现实等领域,通常使用左手系。
在这里插入图片描述

二. 深度信息

现实中使用单目相机进行目标检测的时候,只能获取所检测物体距离相机的横纵向距离信息,而物体到水平面的投影与相机到水平面的投影之间的距离无法测量。原因是相机在获取图像的时候会将物体的三维信息降维至二维图像信息,此时物体大部分的深度信息将无法逆向复原! 2 这可以用 ⌈ \lceil 基本透视投影 ⌋ \rfloor 解释:透视投影是多对一的关系,投影线上的任何一点对应同一个像点。
在这里插入图片描述

其实,图像在拍摄的过程中丢失的一维信息就是 物体在空间里的相互距离,即使我们可以看到大概的方位,但还是没有办法准确的估计距离,这里的 “物体在空间里的相互距离” 也就是 深度(Depth)信息 所指的含义。为了方便计算,深度信息在机器视觉里都是指 空间里面的各个点相对于摄像头的距离,知道了这个信息之后就可以很方便的计算各点之间的相互距离了。

既然一个摄像机会丢失物体在空间里的相互距离,那么两个摄像机呢?显然,如果用两个摄像机,就可以消除这种多对一的关系,从而确定三维坐标的值,即深度信息。这就是双目为什么可以感知深度信息的原因,因为我们的左右眼从略微不同的角度观察景物,而这种视差与物体所处的位置有关 3。这种使用两个及以上机位获取物体深度信息的方法称为立体视觉。
在这里插入图片描述
除了立体视觉,深度信息还可以通过 ToF 相机 4、结构光 5、单目视觉与深度传感器结合等方法获得 6

总的来说,深度信息是指图像或场景中各个点的距离或空间位置信息,通常以三维坐标来表示。深度信息是人类产生立体视觉的前提,在计算机视觉领域至关重要,计算机通过深度信息得以理解和感知环境的三维结构。此外,深度信息在室内导航、人机交互、医学影像、3D建模与游戏开发等领域都有着广泛的应用。

三. 摄像机标定

摄像机标定 (Camera Calibration) 是 3D 视觉领域的一个重要步骤,用于确定摄像机的内部参数和外部参数,以便将三维世界中的点映射到二维图像中。摄像机需要标定的参数 7 包括:

  • 内部参数标定 (Intrinsic Calibration):

    • 焦距 (Focal Length):确定摄像机的焦距,这是镜头的一个关键参数,用于确定图像中的尺度。
    • 主点 (Principal Point):确定图像的主点,通常是图像中心点,用于确定图像的坐标原点。
    • 畸变参数 (Distortion Parameters):校正径向畸变和切向畸变,以确保图像中的点的位置准确。
  • 外部参数标定 (Extrinsic Calibration):

    • 位置 (Position):确定摄像机在三维世界坐标系中的位置。
    • 姿态 (Orientation):确定摄像机的姿态或方向,通常使用旋转矩阵或欧拉角表示。

在这里插入图片描述

摄像机的标定过程通常包括以下步骤:

  1. 三维点云 (3D Point Cloud):收集一组已知的三维世界中的点,通常使用标定板或其他已知形状的对象。

  2. 图像点匹配 (Image Point Correspondence):从摄像机拍摄的图像中检测和跟踪标定板或对象上的特征点,并将这些特征点与其在三维空间中的对应点进行匹配。

  3. 标定算法 (Calibration Algorithm):应用标定算法,通常使用的方法包括张正友标定法或 Tsai–Lenz 模型等。

  4. 参数估计 (Parameter Estimation):通过标定算法估计摄像机的内部和外部参数,以及畸变参数。

  5. 验证与优化:验证标定结果的准确性,并进行必要的校正和优化,以提高标定的精度。

四. 传感器

3D 视觉中使用的传感器是用来捕捉三维空间中物体的位置、形状和深度信息的设备。这些传感器可以在各种应用中使用,包括机器人技术、虚拟现实、增强现实、医疗影像、自动驾驶汽车和工业自动化等领域。以下是一些常见的 3D 视觉传感器:

  • 激光雷达 (LIDAR):激光雷达是一种使用激光束来测量物体距离的传感器,通过发送激光脉冲并测量脉冲返回的时间来计算物体的距离。
  • 结构光传感器:结构光传感器使用投射器将结构光照射到物体上,然后通过摄像机捕捉物体表面反射的结构光图案。通过分析这些图案的形状和变化,传感器可以计算出物体的三维几何信息。这种传感器常用于 3D 扫描和人脸识别等应用。
  • 飞行时间摄像头 (Time-of-Flight Camera):这类摄像头使用光脉冲测量从摄像头到物体表面的时间,然后根据光的速度计算物体的距离。Time-of-Flight 摄像头能够实时捕捉物体的深度信息,适用于虚拟现实、姿势追踪和手势识别等应用。
  • 立体相机:立体相机由两个或多个摄像头组成,模拟人类双眼视觉。通过比较这些摄像头捕获的图像,可以计算出物体的深度信息。立体相机常用于机器人导航、虚拟现实和增强现实。
  • 深度传感器:深度传感器是一类可以测量物体与传感器之间距离的设备,如 Microsoft Kinect。它们通常结合了红外摄像机、红外光源和深度传感技术,用于 3D 游戏、手势控制、人体姿势追踪等应用。

五. 点云处理

点云处理 (Point Cloud Processing) 是计算机视觉领域的一个重要主题,它涉及到从 3D 场景中获取、处理和分析点的坐标信息。点云是三维空间中一组离散点的集合,通常以 (x, y, z) 三维坐标值来表示。点云通常是由激光扫描仪、摄像机或其他传感器采集的数据,这些点表示了物体表面上的离散位置。

在这里插入图片描述

点云处理的一般步骤如下:

  1. 点云获取:点云数据可以通过激光扫描仪、摄像机、深度传感器等设备来获取。这些设备通过发送光线或信号并测量其反射来捕获点的三维坐标。

  2. 点云预处理:在进行更复杂的分析之前,通常需要对点云数据进行预处理。这包括去噪、滤波、点云配准(将多个点云数据集合并成一个),以及移除无关的点。

  3. 特征提取:点云处理通常涉及从点云中提取有用的特征,如平面、边缘、角点等。这些特征有助于识别和分析物体。

  4. 点云分割:点云中的分割是将点云分成不同的物体或区域的过程。这可以用于目标检测、物体识别和场景分析。

  5. 三维重建:点云处理可用于创建物体的三维模型,这在虚拟现实、增强现实和计算机辅助设计中非常有用。

点云处理的方法包括传统的计算机视觉技术,如特征提取和分割,以及一些深度学习方法,如卷积神经网络 (CNN) 和循环神经网络 (RNN) 。这些技术的不断发展已经使点云处理变得更加强大和灵活,为许多领域提供了新的机会和解决方案 8

六. 特征提取与匹配

特征提取与匹配是 3D 视觉中的重要任务,用于识别和跟踪图像或点云中的关键特征,这些特征可以用于对象识别、姿态估计、物体跟踪、三维重建等应用。

  • 特征提取:从原始数据(图像、点云等)中提取有用信息的过程。在2D图像中,特征可以包括角点、边缘、斑点、纹理等。在 3D 点云中,特征可以包括关键点、平面、边缘、曲线等。常用的特征提取算法包括 Harris 角点检测、SIFT(尺度不变特征变换)、SURF(加速稳健特征)、ORB(Oriented FAST and Rotated BRIEF)等。

  • 特征描述:一旦提取了特征,通常需要对其进行描述,以便进行匹配。特征描述算法会生成一个向量或特征描述符,用于表示该特征的外观和结构信息。常见的特征描述算法包括 SIFT 描述符、SURF 描述符、ORB 描述符、HOG(方向梯度直方图)描述符等。

  • 特征匹配:将一个场景中的特征与另一个场景中的特征进行对应的过程,以建立它们之间的关联。匹配通常涉及计算描述符之间的相似性度量,例如欧氏距离、汉明距离、角度差异等。特征匹配可以用于目标识别、图像拼接、姿态估计、SLAM 等任务。

特征提取和匹配在 3D 视觉中有广泛的应用,包括点云配准(点云的对齐和融合)、SLAM 系统中的关键帧选择和匹配、物体识别和姿态估计等。在 AR 和 VR 中,特征提取和匹配也用于实时跟踪和渲染虚拟对象。

七. 三维重建

三维重建 (3D Reconstruction) 是指通过从二维图像或其他感知数据中提取信息,创建或还原三维场景或物体的过程。常见的三维重建表达方式 9 有点云、体素、网格、深度图:
在这里插入图片描述

  • 点云 (point cloud):点云是三维空间中一组离散点的集合,通常以 (x, y, z) 三维坐标值来表示。这些点可以代表物体表面、场景或环境的形状和结构,通常由 3D 传感器(如激光雷达、深度相机、立体视觉系统等)采集而来,也可以通过结构光扫描、摄影测量等方法生成。
    在这里插入图片描述

  • 体素 (voxel):体素是三维空间中的离散单位,用于表示物体的体积、场景或任何三维数据,相当于三维图像中的像素。体素是三维图像或体积数据中的三维像素,具有三维坐标 (x, y, z),因此它们代表了一个立体的体积元素。
    在这里插入图片描述

  • 网格 (mesh):网格是一个离散化的二维或三维数据结构,通常用于表示空间中的对象、场景或物体的形状、结构和属性。网格通常由一系列的单元格或元素组成,这些单元格排列成规则的格点或网格点,形成一个离散化的表示。
    在这里插入图片描述
    网格中使用最广泛的是三角网格,三角网格是全部由三角形组成的多边形网格,任意多边形网格都能转换成三角网格。
    在这里插入图片描述

  • 深度图 (depth):深度图是一种用于表示三维场景中不同点的深度或距离信息的图像。深度图通常是二维图像,但每个像素的灰度值或颜色编码表示了对应三维点到视点或相机的距离。
    在这里插入图片描述

三维重建通常包括以下步骤 10

  1. 数据采集:三维重建的第一步是获取用于建立三维模型的数据,这些数据可以来自各种传感器,如摄像头、激光雷达、深度传感器等。这些传感器采集的数据可以是图像、点云、深度图等。
  2. 特征提取:从采集的数据中提取特征点或特征描述符,以帮助计算机理解场景的结构。这些特征可以包括边缘、角点、表面纹理等。
  3. 配准:将不同视角或传感器采集的数据进行配准,以建立它们之间的关联。这可以通过特征匹配、相机标定、点云配准等方法来实现。
  4. 三维重建:根据配准后的数据,使用各种算法和技术来生成三维模型。有多种方法可用于三维重建,包括结构光扫描、立体视觉、多视图几何、三角法、体素化等。
  5. 补洞与纹理映射:生成的三维模型可能会有缺陷或未完全闭合的部分。在这一阶段,通常需要对模型进行处理,以填补这些缺陷,并将纹理映射到模型表面,以使其更具真实感。
  6. 后处理与可视化:进行三维模型的后处理,以改进其质量,去噪声,删除不需要的细节等。然后,将模型可视化,通常以三维渲染的形式,以便进一步分析或展示。

三维重建在许多应用中都有重要作用,如建筑信息建模、文物保护、虚拟现实游戏开发、医学影像学、机器人导航和地质勘探等。更多三维重建方法见 三维重建方法汇总。

八. 物体检测和跟踪

物体检测和跟踪 (Object Detection and Tracking) 涉及使用传感器数据(如摄像头、激光雷达等)来检测、识别和跟踪三维空间中的物体。物体检测是指识别和定位图像或点云中的物体,检测需要考虑物体的三维位置和方向,常用的方法包括卷积神经网络(CNN)和多视图几何方法。物体跟踪是指在不同时间步骤中连续追踪物体的位置和姿态,通常需要使用目标运动模型和数据关联算法。

在许多应用中,物体检测和跟踪的实时性和鲁棒性至关重要,系统必须在复杂环境中快速而准确地检测和跟踪物体。

九. 三维场景可视化

三维场景可视化旨在以可视化的方式呈现三维世界,以便用户能够与之进行交互。下面将简单介绍一些常用技术:

  • 渲染 (Rendering):渲染是将三维场景转化为二维图像的过程,以便用户能够观看和理解。渲染可以分为实时渲染和离线渲染。

    • 实时渲染:通常用于视频游戏和虚拟现实应用,要求在短时间内生成高质量的图像,以满足用户的交互需求。
    • 离线渲染:通常用于电影制作和静态图像生成,它可以在更长的时间内生成高质量的图像,因为不需要实时性。
  • 模型呈现 (Model Representation):三维模型通常由多边形(如三角形或四边形)组成,这些模型用来表示物体的外观和形状。模型呈现包括模型构建、纹理映射、材质和光照等方面,以使模型在渲染时看起来逼真。三维模型可以由计算机辅助设计软件创建,或者通过 3D 扫描从实际对象中获取。

  • 虚拟现实 (Virtual Reality, VR):虚拟现实技术通过头戴式显示器和控制器等设备,将用户带入虚拟的三维世界。用户可以在虚拟现实中沉浸式地与环境互动,感受到三维场景中的物体和效果。VR 技术用于游戏、模拟训练、医疗治疗和教育等领域。

  • 增强现实 (Augmented Reality, AR):增强现实将虚拟元素叠加在真实世界中,通过智能手机、AR眼镜或其他设备进行观看。用户可以看到真实世界的环境,同时在屏幕上看到虚拟对象或信息,这可以增强用户对环境的理解和互动。AR 技术应用广泛,包括用于导航、游戏、零售体验和培训。

三维场景可视化还需提供用户与环境互动的能力,这包括用户能够移动、旋转、缩放和与虚拟对象互动,以模拟现实世界的行为。随着技术的不断发展,三维场景可视化将继续为用户提供更加沉浸式和互动性的体验,同时推动着虚拟世界和现实世界的融合。

十. 3D 视觉应用

3D 视觉利用三维视觉技术来处理和分析图像或视频中的三维信息,以实现各种应用。

  • 虚拟现实:通过特殊设备如头戴式显示器,以三维图像和声音模拟用户的感官体验。3D 视觉技术用于创建沉浸式虚拟环境,让用户感觉好像置身于虚拟世界中。

  • 增强现实:AR 应用通过将虚拟元素叠加在现实世界中,提供有关实际环境的增强信息。3D 视觉技术用于将虚拟对象与实际环境进行精确匹配。

  • 医疗影像处理:医疗领域使用 3D 视觉技术来分析医学影像,如 CT 扫描、MRI 和 X 射线,以进行诊断和手术规划。

  • 文化遗产保护:3D 扫描和重建技术有助于保护文化遗产和艺术品。这些技术可以创建数字档案,以备份、研究和展示文化遗产物品。

  • 虚拟试衣间:这是零售业中的一种越来越流行的应用,允许顾客使用 3D 模型来试穿虚拟服装,以便更好地选择尺寸和风格。

  • 教育和培训:3D 视觉应用可用于教育和培训领域,以创造沉浸式学习体验,例如虚拟实验室、培训模拟和三维解剖学。

  • 游戏开发:3D 视觉是视频游戏和电影特效制作的关键组成部分,用于创建逼真的三维场景和角色。

总之,3D 视觉在各种应用中具有广泛的用途,它不仅提供了深入理解和模拟三维空间的工具,还推动了许多现代科学、工程和娱乐领域的发展。


  1. 常用三维坐标系 ↩︎

  2. 关于计算机视觉中的深度信息概念 ↩︎

  3. 视差与深度信息 ↩︎

  4. TOF(Time-of-Flight) Camera介绍 ↩︎

  5. 结构光3D成像原理及应用 ↩︎

  6. 一文了解三种3D视觉技术 ↩︎

  7. 3D视觉基础整理 (一) ↩︎

  8. 一文入门 3D 视觉算法基础 ↩︎

  9. 三维重建(单目、双目、多目、点云、SFM、SLAM) ↩︎

  10. 三维重建(知识点详细解读、主要流程) ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1106301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Datawhale学习笔记AI +新能源:电动汽车充电站充电量预测

赛题介绍 建立站点充电量预测模型,根据充电站的相关信息和历史电量数据,准确预测未来某段时间内充电站的充电量需求。 在赛题数据中,我们提供了电动汽车充电站的场站编号、位置信息、历史电量等基本信息。我们鼓励参赛选手在已有数据的基础上…

【C++初阶】引用内联函数auto关键字范围for循环nullptr

个人主页还有更多系列专栏:小白不是程序媛 我的小仓库:Gitee C系列专栏:C头疼记 目录 前言 引用 概念 引用的特点 常引用 引用的使用场景 做参数 做返回值 引用和指针的区别 引用和指针的不同点: 内联函数 内联函数…

【LeetCode刷题(数据结构与算法)】:二叉搜索树的范围和

一、什么是二叉搜索树 二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树 二叉搜索树:一棵二叉树,可以为空;如果不为空,满足以下性质 非空左子树的所有键值小于其根结…

Typora使用教程

相关介绍 Typora是一款所写即所得的Markdown编辑器,支持跨平台Window,Linux和Mac都可以。 相关链接 Typora安装包历史版本地址:官网历史版本地址 问题及知识点汇总 关于图片的问题-设置图像自动复制到自己指定文件夹下 问题描述 在写笔记的过程中&am…

Write-Ahead Log(PostgreSQL 14 Internals翻译版)

日志 如果发生停电、操作系统错误或数据库服务器崩溃等故障,RAM中的所有内容都将丢失;只有写入磁盘的数据才会被保留。要在故障后启动服务器,必须恢复数据一致性。如果磁盘本身已损坏,则必须通过备份恢复来解决相同的问题。 理论…

C++ 类和对象(上)------超详细解析,小白必看系列

目录 一、前言 二、面向过程和面向对象初步认识 三、类的引入 三、类的定义 四、类的访问限定符及封装 💦访问限定符 (重点!!!!) 💦封装 五、类的作用域 六、类的实例化 …

算法--排序算法效率比较

《算法设计与分析》课程实验报告 ( 实验一) 实验名称:排序算法效率比较 实验地点: 所使用的开发工具及环境: PC机,DEV 一、实验目的: 比较至少 4 种排序(从小到大排&#xff09…

从十月稻田,看大米为何能卖出200亿市值?

国无农不稳,民无粮不安。新时代的农村农民,需要现代化的农业作依托,而在农业现代化的过程中,品牌化、数字化成为至关重要的一环。 金秋十月,从南到北,从东到西,中国农村的每一块土地都洋溢着丰…

【运筹优化】运筹学导论:线性规划导论

文章目录 一、原形范例(Wyndor Glass 公司)1.1 线性规划模型构建1.2 图解法1.3 结论 二、线性规划模型2.1 线性规划模型的标准形式2.2 其他形式2.3 模型解的术语 三、有关线性规划的假设3.1 比例性3.2 可加性3.3 可分割性3.4 确定性 四、补充例子4.1 放射…

ant的basedir内置属性

basedir是ant的内置属性,代表项目基础路径的绝对路径。它的默认值等于build文件的父目录。当然,可以通过project 的basedir 属性、或者单独的basedir 属性来覆盖。 例如,在工程的根目录下有个build.xml文件: build.xml文件的内…

java springboot 实现 对象或对象数组 转为 前端可解析的JSON字符串格式

这是我的接口代码 逻辑就是 通过 IBookService对象中的 list 函数获取数据列表 然后定义 state(响应状态) message(提示信息) 最后将这三个信息 做成对象返回给前端 接口访问结果 但是这种对象数组对存储空间消耗肯定是比字符串大很多的 所以 我们来尝试 将json数组转成字符…

JOSEF约瑟 漏电继电器 JHOK-ZBG1 φ25mm AC220V 0.1A/0.1S 分体式

系列型号 JHOK-ZBG1 φ25mm漏电(剩余)继电器 JHOK-ZBG2 φ25mm漏电(剩余)继电器 JHOK-ZBG1 φ45mm漏电(剩余)继电器 JHOK-ZBG2 φ45mm 漏电(剩余)继电器 JHOK-ZBG1 φ100mm漏电&a…

广西建筑模板厂家批发——能强优品木业

随着建筑业的蓬勃发展,建筑模板作为不可或缺的基础材料,在工程施工中扮演着重要的角色。在广西,能强优品木业有限公司作为一家备受瞩目的建筑模板厂家批发商,以其卓越的产品品质和优质的服务在行业中脱颖而出。 实力厂家扎根广西 …

电影《前任4:英年早婚》观后感

刚刚国庆节后,没有什么上新电影,只能看国庆节时的电影了,于是选择了这部《前任4:英年早婚》,原本是非常抗拒看这样的电影了,毕竟自己作为单身狗,还是不喜欢吃狗粮的,不过从另一方面讲…

JOSEF约瑟 轨道继电器 CSN-11 DC220V 二转换 35mm导轨安装 大功率启动大于5W

CSN-11轨道继电器 一、用途 该继电器用于电力系统接口设备可与保护装置,安全自动装置等设备接口实现开入隔离,开出重动功能,用于开关量的隔离及转换。CSN-11继电器特点是启动功率大抗力强。采用标准35mm导轨安装。 二、技术参数 1.额定电…

C++算法:给表达式添加运算符

题目 给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target ,在 num 的数字之间添加 二元 运算符(不是一元)、- 或 * ,返回 所有 能够得到 target 的表达式。 注意,返回表达式中的操作数 不应该 包含前导零。…

行情分析——加密货币市场大盘走势(10.18)

大饼昨日小幅度的下跌回调了,很快又上涨。目前看下来震荡向下刚刚开始,可以关注后续情况。大饼依然保持看空不做空,目前除了独立行情的币,就大饼非常强势。目前从MACD日线来看,还是保持多头趋势,预计明后两…

6-2 进制转换 分数 10

Status SPush(SqStack& s, ElemType x) {if (s.top s.stacksize) //栈满return ERROR;s.data[s.top] x;s.top;//1条或2条语句均可return OK; } Status SPop(SqStack& s, int& e) {if (s.top 0) //栈空return ERROR;s.top--; //S.top下移e s.data[s.top]; //把…

WhatsApp 私域营销指南

当涉及到WhatsApp私域营销时,企业正逐渐意识到这个强大工具的潜力,为建立与用户之间更紧密的关系、提供个性化的服务和推广,以及增加用户忠诚度, WhatsApp已成为一个不可或缺的营销渠道。在如今竞争激烈的市场中,私域营…