在计算机中, 图像由一个个像素点组成。图像数据存储在每一个像素点中,每一个像素点包含了被测物体的信息。除了常见的RGB信息或者灰度信息以外,还可以包含深度信息和坐标等其它信息。在某个坐标系下的点的数据集又被称为点云。点云里的每一个点包含了丰富的信息,包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等等。通过高精度的点云数据可以还原现实世界。

大多数点云数据是由3D扫描设备产生的,例如激光雷达(2D/3D)、RGB双目、3D结构光相机、tof相机(time-of-flight camera)等。这些设备用自动化的方式测量在物体表面的大量的点的信息,然后用某种数据文件输出点云数据。这些点云数据就是扫描设备所采集到的。

激光雷达是一种集激光扫描与定位定姿系统于一身的测量装备,激光雷达系统包括激光器和一个接收系统。激光器产生并发射一束光脉冲,打在物体上并反射回来,最终被接收器所接收。接收器准确地测量光脉冲从发射到被反射回的传播时间。鉴于光速是已知的,传播时间即可被转换为对距离的测量。结合激光器的高度,激光扫描角度,就可以准确地计算出每一个地面光斑的三维坐标X,Y,Z,如图所示。

RGB双目指的是目前大家都在热点研究的,仅依靠双相机的视差获取深度信息的方式。RGB双目相机因为非常依赖纯图像特征匹配,所以在光照较暗或者过度曝光的情况下效果都非常差,另外如果被测场景本身缺乏纹理,也很难进行特征提取和匹配。

根据几何原理:

可以得出坐标信息。

虽然由视差计算深度的公式很简洁,但视差d本身的计算却比较困难。我们需要确切地知道左眼图像某个像素出现在右眼图像的哪一个位置(即对应关系),这件事亦属于“人类觉得容易而计算机觉得困难”的事务。当我们想计算每个像素的深度时,其计算量与精度都将成为问题,而且只有在图像纹理变化丰富的地方才能计算视差。由于计算量的原因,双目深度估计仍需要使用GPU或FPGA来计算。

结构光利用相位信息进行三维重建,主要包括解相位和展开相位,利用展开的相位计算深度信息。解相位,也称为相位提取,主要包括相移法,傅里叶变换解相,卷积法解相。这些方法所提取的是相对相位,即相位主值,都是折叠相位,是被折叠在[-pi,pi]之间的,需要相位展开才能得到真实的相位。从大的分类上说,主要有时间相位展开和空间相位展开。

利用结构光技术的重建过程中,又分为两类,一类是有参考平面,一类是没有参考平面。

有参考平面的系统中,只要求出参考平面和被测物体的相对相位差,利用PMP(相位测量轮廓法)方法即可求得深度信息。如下图:

如果利用Gray编码加相移算法与多频外差原理展开得到的是像素点位置的绝对相位值,则利用下面的方法进行求解深度信息。

一个 ccd 只可以确定一条空间直线,需要确定投影仪的灰度线平面,共同匹配出的点的三维坐标。采集的图像解相后,可根据 CCD的绝对相位值可以求得投影仪对应的绝对相位值为:

TOF是Time of flight的简写,直译为飞行时间的意思。所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得到目标物距离。这种技术跟3D激光传感器原理基本类似,只不过3D激光传感器是逐点扫描,而TOF相机则是同时得到整幅图像的深度信息。TOF相机与普通机器视觉成像过程也有类似之处,都是由光源、光学部件、传感器、控制电路以及处理电路等几部单元组成。与同属于非嵌入式三维探测、适用领域非常类似的双目测量系统相比,TOF相机具有根本不同的3D成像机理。双目立体测量通过左右立体像对匹配后,再经过三角测量法来进行立体探测,而TOF相机是通过入、反射光探测来获取的目标距离获取。

以上为对几种点云信息获取方式的介绍。

3D相机获取点云信息的几种方法相关推荐

  1. php的header_php获取网页header信息的4种方法

    php获取网页header信息的方法多种多样,就php语言来说,我知道的方法有4种, 下面逐一献上. 方法一:使用get_headers()函数 推荐指数: ★★★★★ get_header方法最简单 ...

  2. 在金蝶云星空中获取单据体信息的两种方法

    近日在学习星空产品的时候发现了两种获取单据体数据包方法,然后调试了一下,发现两种方法获取的信息都是一样的,特此记录一下. 第一种: Entity entity = this.View.BillBusi ...

  3. linux获取bios版本号,在Windows中获取BIOS版本信息的4种方法 | MOS86

    BIOS,或技术上称为基本输入和输出系统,是计算机中最重要的软件之一.它位于主板上,并管理硬件设备(如处理器,硬盘,图形卡等)之间的所有连接.主板制造商不时会发布BIOS或UEFI(统一可扩展固件接口 ...

  4. 用Python获取Linux资源信息的三种方法

    方法一:psutil模块 #!usr/bin/env python # -*- coding: utf-8 -*-import socket import psutil class NodeResou ...

  5. Java反射机制01_反射的概念以及获取字节码信息 的四种方式

    Java反射机制01-反射的概念以及获取字节码信息 的四种方式 一.反射的概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象, 都能够调用它的任意 ...

  6. 小程序获取用户信息的两种方法

    小程序获取用户信息的两种方法 第一种使用 getUserProfile 代码示例 第二种使用 头像昵称填写 相信大家之前也经常使用open-data获取用户的头像和昵称吧,但微信的这个改编意味着我们要 ...

  7. php mysql 表字段_php mysql获取表字段名称和字段信息的三种方法

    php mysql获取表字段名称和字段信息的三种方法 先给出本实例中使用的表的信息: 使用desc获取表字段信息 php代码如下: mysql_connect("localhost" ...

  8. php类3个属性是哪3种,PHP获取类私有属性的3种方法

    今天在推上看到一条获取php类私有属性的推文,感觉很有意思: 顺着推文联想,还有其他方式吗?经过自己的测试及网上答案,总结出三种方法: 1. 反射 反射可以获取类的详细信息,要获取私有属性的值,只需将 ...

  9. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

最新文章

  1. win10不能上网问题的解决办法
  2. 深入研究display:inline-block在浏览器中的应用
  3. php 文件夹里有多少,计算目录php中有多少个文件
  4. 程序员面试题精选100题(14)-圆圈中最后剩下的数字[算法]
  5. Android --- 怎么设置 EditText 控件中光标默认位置,当 EditText 里有文字的时候,光标跑到了最前面
  6. 答案计算机应用技术试卷,计算机应用与技术试卷A及答案
  7. php全部公开课,PHP公开课|这篇PHP的each()函数教学数,只为了帮你的PHP会学的更好...
  8. linux history文件路径,Linux、Unix常用命令(文件和目录相关)
  9. 派生类构造的时候一定要调用_夏天使用电蚊香的时候一定要注意这几点
  10. CTS(15)---Android 兼容性
  11. SSM实现的在线挂号预约管理系统源码
  12. 两部门:解除蒙古国部分地区口蹄疫疫情禁令
  13. windows 窗口帧率监控小工具
  14. markdown语言练习
  15. 算法学习笔记——数据结构:树状数组BIT
  16. 用马青公式计算圆周率,Python语言
  17. 黑窗口方式,使用命令行导入导出Oracle
  18. 设计模式 —— Builder 模式
  19. 网易企业邮箱删除的的邮件服务器,网易企业邮箱进行全选删除移动操作步骤说明...
  20. linux 配置java环境

热门文章

  1. [1205] [40001]: Lock wait timeout exceeded; try restarting transaction
  2. “21 天好习惯”第一期-10
  3. Android 图片圆角,自定义圆角的弧度,或者直接设置为圆形图片
  4. 【C++】弧度转角度
  5. 收藏个不错的图片处理网站
  6. 关于在Fragment下onActivityResult回调无结果的问题
  7. AP8105 DC/DC 升压 外围简单 电子词典驱动
  8. C语言for循环语句用法
  9. 一起挑战pythontip的题目(34)
  10. 数字IC设计中ECO的那些事,其实并不是事