TOF相机基本知识
TOF是Time of flight的简写,直译为飞行时间的意思。所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后利用传感器接收从物体返回的光,通过探测光脉冲的飞行时间来得到目标物的距离。TOF的深度精度不随距离改变而变化,基本能稳定在cm级。
1 TOF相机的特点:
- 相对二维图像,可通过距离信息获取物体之间更加丰富的位置关系,即区分前景与后景
- 深度信息依旧可以完成对目标图像的分割、标记、识别、跟踪等传统应用
- 经过进一步深化处理,可以完成三维建模等应用
- 能够快速完成对目标的识别与追踪
- 主要配件成本相对低廉,包括CCD和普通 LED 等,对今后的普及化生产及使用有利
- 借助 CMOS 的特性,可获取大量数据及信息,对复杂物体的姿态判断极为有效
- 无需扫描设备辅助工作
TOF相机缺点:
- 对于普通数码相机,其造价仍然偏高,影响该产品目前的普及使用率
- 相机本身仍然受到硬件发展的限制,更新换代速度较快
- 测量距离较常规测量仪器短,一般不超过 10 米
- 测量结果受被测物性质的影响
- 大多数机器的测量结果受外界环境干扰较为明显,尤其是受外界光源干扰
分辨率相对较低,如PMD Camcube 2.0 型号相机,为目前分辨率最高的 3D 相机,其分辨率仅为 204×204像素
2 深度相机比较
目前的深度相机有TOF、结构光、激光扫描等几种。主要用于机器人、互动游戏等应用。其中较多的是指TOF相机。目前主流的有TOF相机厂商有PMD、MESA、Optrima、微软等几家,其中MESA在科研领域使用较大,相机紧凑性好,而PMD是唯一一款能够在户内、户外均能使用的TOF相机,并且能够具有多种探测距离,可用于科研、工业等各种场合。而Optrima、微软(还不是真正的TOF技术)的相机主要面向家庭、娱乐应用,价位较低。
1)MESA Imaging AG成立于2006年7月,致力于生产销售世界领先的3D 飞行时间(TOF)深度测绘相机。该相机采用的图像芯片技术,能够实时采集三维数据列(通常称之为深度图像),并集成于一个紧凑的固件内。MESA 在此领域荣获过SwissRanger技术创新奖,众多的成功经验可以为客户带来定制相机解决方案。MESA的产品能够进行单相机3D成像。它采用飞行时间法(Time of flight),通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光、探测光脉冲的飞行(往返)时间来得到目标物距离。相比于其它立体成像方式,这种方式具有实时性好、无死区等特点。MESA的芯片由专门的厂家生产,并引进了CCD/CMOS生产工序,保证了光电功能模块的独立性以及优化配置。由此保证了MESA使用的芯片的底层噪声和随后的距离测量能力大大优于基于标准CMOS工艺制造的芯片。其型号是SR4000
SR4000 3D测距相机能以视频帧速率实时输出3维距离值和振幅值。基于时间飞行原理(time-of-flight TOF),相机包括一个内置的激光光源,发射光经场景中的物体反射后返回相机,每个图像传感器中的像素点都分别精确测量该时间间隔,并独立算出距离值。设计用于户内环境,SR4000可轻易经USB2.0或者以太网(Ethernet)接口连接到电脑或者网络中,快速生成实时深度图。代表着MESA公司第4代时间飞行原理相机,它可输出稳定的距离值,外形美观、坚固,体积小(65 X 65 X 68mm)(USB版)。 SR4000随机包括驱动和软件接口程序,用户可以通过接口程序创建更多的应用。
2)Camcube3.0是全球第一款可应用于室外环境的高精度深度相机,这为汽车辅助驾驶、移动机器人等应用带来了便利。在汽车等交通工具中,停车、开车运行等都一直通过驾驶员的直接观测和经验来完成,由于人的经验误差或精神状态影响,在实际过程中,难免会出现各种状况。而通过TOF相机3D探测,可以很方便的对外界环境进行探测,并对驾驶员起到提醒和辅助驾驶的作用。
PMDTec公司是一家德国公司,其原身是德国锡根大学一个研究传感器系统(ZESS)的中心实验室,2002年从德国锡根大学分离出来组建了公司,后被另一家公司收购组建了现在的PMDTec公司。该公司研究3D TOF Imaging(时间飞行技术)超过了10年。2011年,Omek Interactive和PMDTechnologies宣布达成了战略合作伙伴关系,以提供姿态识别和身体跟踪解决方案,这为今后的商业应用打下了坚实的基础。该公司的产品已经开发到了第三代 - CamCube3.0。3D摄像头的分辨率为200*200,可以以每秒40帧的速度获取场景的深度信息和灰度图像。CamCube3.0具有非常高的灵敏度,它可以在较短的快门时间内获得更高精度和更远的探测距离。由于其独家的SBI技术,TOF是少有的既可以用于室内,又可以用于室外的TOF相机,并可以探测快速运动目标。不过缺点就是价格不菲,不含税的话,要12000美元。所以只适合搞科研,对于民用还有很长的路要走。
PMDTec 公司网址:http://www.pmdtec.com/
PMDTec Wiki:http://en.wikipedia.org/wiki/PMDTechnologies
3)Natal并不是基于ToF的原理,PrimeSense为微软提供了其三维测量技术,并应用于Project Natal。在PrimeSense公司的主页上提到其使用的是一种光编码(light coding)技术。不同于传统的ToF或者结构光测量技术,light coding使用的是连续的照明(而非脉冲),也不需要特制的感光芯片,而只需要普通的CMOS感光芯片,这让方案的成本大大降低。Light coding,顾名思义就是用光源照明给需要测量的空间编上码,说到底还是结构光技术。但与传统的结构光方法不同的是,他的光源打出去的并不是一副周期性变化的二维的图像编码,而是一个具有三维纵深的“体编码”。这种光源叫做激光散斑(laser speckle),是当激光照射到粗糙物体或穿透毛玻璃后形成的随机衍射斑点。这些散斑具有高度的随机性,而且会随着距离的不同变换图案。也 Kinect就是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了。当然,在这之前要把整个空间的散斑图案都记录下来,所以要先做一次光源的标定。在PrimeSense的专利上,标定的方法是这样的:每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。假设Natal规定的用户活动空间是距离电视机1米到4米的范围,每隔10cm取一个参考平面,那么标定下来我们就已经保存了30幅散斑图像。需要进行测量的时候,拍摄一副待测场景的散斑图像,将这幅图像和我们保存下来的30幅参考图像依次做互相关运算,这样我们会得到30幅相关度图像,而空间中有物体存在的位置,在相关度图像上就会显示出峰值。把这些峰值一层层叠在一起,再经过一些插值,就会得到整个场景的三维形状了。
4)今天最常见的影像捕捉设备是数码相机。数码相机输出一个像素矩阵,每个像素代表一个色值。这是一种二维(2D)视觉技术。3D 视觉是指除了捕捉目标的空间位置(x 轴和 y 轴)和颜色之外,还能捕捉目标的深度(又称 Z 轴、范围、距离)及其周围环境。一个 3D 视觉系统同时输出每个场景的地形视图和色彩视图。PrimeSense是一家无厂半导体公司。他们的技术赋予电视、机顶盒、客厅电脑等消费电子产品自然互动能力。他最得意的两个字就是:深度。他们的 PrimeSensor 产品包含 Reference Design 和 NITE 中间件。PrimeSensor Reference Design 是一款成本低廉、即插即用、靠 USB 供电的设备,可以放在电视机或显示器的顶部或旁边,也可以嵌入其中。ReferenceDesign 能够实时生成客厅场景的深度、色彩和音频数据。它能在各种室内照明条件下工作(包括一片漆黑和非常明亮的房间)。它不需要用户佩戴或手持任何东西,无需校准,也不需要主机处理器做任何运算。PrimeSensor 的设计中包含一个先进的视觉数据处理中间件,它针对面向大众市场的 CE 产品——NITE进行了优化。NITE 为开发丰富的自然互动应用程序提供了算法框架。NITE SDK(软件开发工具包)提供了一个文档详细的 API 和框架,既能完成 GUI(图形用户界面)的设计开发,又能完成游戏开发。
TOF相机相关资源链接:
[1]http://labs.manctl.com/rgbdemo/index.php/Main/Download RGBD标定
[2]http://www.ee.oulu.fi/~dherrera/kinect/
[3]http://nicolas.burrus.name/index.php/Research/KinectCalibration
[4]http://www.rgbdtoolkit.com/
本文参考链接:http://blog.csdn.net/glb562000520/article/details/17264151
TOF相机基本知识的更多相关文章
- ToF相机学习笔记之基本知识
ToF相机属于一种非接触式光学传感器,通过计算发射激光的飞行时间获取对应像素的深度信息.就非接触式距离测量方法而言,其分类可用下表表示如下: 1.1 ToF传感器基础 一个逐点式的ToF传感器采用了雷 ...
- 干货 | LIDAR、ToF相机、双目相机如何科学选择?
点击"计算机视觉life"关注,置顶更快接收消息! 本文阅读时间约5分钟 本文翻译自卡内基梅隆大学 Chris asteroid 三维视觉技术的选择 传感器参数及定义 LIDAR ...
- 【计算机视觉】深度相机(一)--TOF总结
http://www.voidcn.com/blog/lg1259156776/article/p-6302915.html 1.1 TOF初探 TOF是Time of flight的简写,直译为飞行 ...
- 【翻译】CEDCE2010 制作魅力绘制而要知道的光学小知识
关于Silicon Studio 个人觉得他们的后处理技术在国际上还是有相对水准的,而且不少日系游戏也采用了他们的全平台YEBIS 3的中间件. YEBIS 3的特性可以看下这个 http:// ...
- TOF 初探
TOF 简介 TOF是Time of flight的简写,直译为飞行时间的意思.所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得 ...
- 【计算机视觉】time of flight (TOF)
目录(?)[-] 11 TOF初探 12 TOF研究机构 13 TOF之应用领域 14 TOF相机特点 2 深度相机比较 1 MESA系列介绍 2 PMD Tec系列 3 NATAL 4 primeS ...
- TOF摄像机可以替代Flash激光雷达吗?
TOF摄像机可以替代Flash激光雷达吗? 一.基于ToF技术的Flash激光雷达 基本成像原理上ToF Camera与LiDAR相同,都采用飞行时间测距技术(包括利用APD或SPAD的直接测距法,和 ...
- 3D视觉 之 线激光3D相机
1 3D 视觉 常见的三维视觉技术,包含双目.ToF.激光三角.结构光等,如下图: 1)毫米级 双目.ToF.结构光(散斑)的精度为 mm 级,多见于消费领域,如:导航避障,VR/AR,刷脸 ...
- ROS会议 ROSCon 2017
----ROSCon2012-2017----来源链接:https://roscon.ros.org 近三年ROSCon(2015-2017)都会将会议视频录像和文档公开~以下为机 ...
随机推荐
- Hbuider sass配置 webstorm scss配置
--no-cache %FileName% ../css/%FileBaseName%.css sass编译后保存到css目录下 webstorm scss配置 C:\Ruby22-x64\bin ...
- vue 强制刷新组件
<component v-if="hackReset"></component> 2 3 4 this.hackReset = false this.$ne ...
- java环境搭建心得
右击此电脑,点击属性, 在打开的电脑系统对话框里发电机i直接点击左侧导航里的[高级系统设置]在打开的电脑系统属性对话框里直接点击下面的[环境变量] 打开环境变量对话框后,直接点击系统变量下面的新建, ...
- swift-导航栏添加自定义返回按钮
//1.添加返回按钮 func addBackBtn(){ let leftBtn:UIBarButtonItem=UIBarButtonItem(title: "返回", sty ...
- javascript实现:在N个字符串中找出最长的公子串
'use strict' module.exports = function 找出最长公子串 (...strings) { let setsOfSubstrings = [] strings.redu ...
- [Ynoi2015]纵使日薄西山
题目大意: 给定一个序列,每次单点修改,然后进行询问. 定义一次操作为,选择一个位置$x$,将这个位置的数和左边.右边两个位置的数(不存在则忽略)各减去1,然后和0取max. 对序列中最大的位置进行一 ...
- 34.初识搜索引擎及timeout机制
主要知识点 1.对搜索执行结果的说明 2.timeout机制讲解 一.对执行 GET /_search 的结果的说明 执行结果如下(只保留部分) { "took": 29, &qu ...
- PHP多进程初探 --- 利用多进程开发点儿东西吧
[原文地址:https://blog.ti-node.com/blog...] 干巴巴地叨逼叨了这么久,时候表演真正的技术了! 做个高端点儿的玩意吧,加入我们要做一个任务系统,这个系统可以在后台帮我们 ...
- 与公司2位经理的交流,Web开发知识库建设
1.代码库3种类型 WebCommon:网站开发技术选型和最佳实践 FansCommons :各种可以复用的代码 CentronCore,CentronWeb 3种类型:通用,web,环境(通用+We ...
- C# 通过反射为一个对象赋值
/// <summary> /// 反射赋值 /// </summary> public class ObjectReflection { publ ...