TOF和结构光

一、ToF

ToF(Time of Flight)飞行时间
字面理解就是通过光的飞行时间来计算距离
ToF的基本原理是通过红外发射器发射调制过的光脉冲,遇到物体反射后,用接收器接收反射回来的光脉冲,并根据光脉冲的往返时间计算与物体之间的距离。这种调制方式对发射器和接收器的要求较高,光速那么快,对于时间的测量有极高的精度要求。


在实际应用中,通常调制成脉冲波(一般是正弦波),当遇到障碍物发生漫反射,再通过特制的CMOS传感器接收反射的正弦波,这时波形已经产生了相位偏移,通过相位偏移可以计算物体到深度相机的距离。

由于测量光的飞行时间需要非常高的频率和精度,早期的ToF设备在体积上一直存在问题,成本也高,所以多只用于工业领域。ToF的小型化极大依赖于近年来集成电路与传感器技术上的突破,使得在CMOS芯片上对光脉冲相位的测量逐渐变得可行。有芯片上的解决方案,才有小型化和低成本的产品出现。

据说目前最小的ToF模块IRSZ238XC,整个模块(包括传感器,镜头IR发射器及电路)尺寸为12mm×8mm。外形更小巧,拥有比以前芯片更高的分辨率,达38,000像素。

二、结构光

结构光 (Structured Light)
结构光是通过红外激光器,将具有一定结构特征的光线投射到被拍摄物体上,再由专门的红外摄像头进行采集反射的结构光图案,根据三角测量原理进行深度信息的计算。

iPhoneX上的Truedepth相机,用的是以色列PrimeSense公司的Light Coding技术。这种结构光方案,通过投射人眼不可见的伪随机散斑红外光点到物体上,每个伪随机散斑光点和它周围一定范围内的点集在空间分布中的每个位置都是唯一的,并将预先进行了存储。

这些散斑投影在被观察物体上的大小和形状根据物体和相机的距离和方向而不同,由此计算深度信息。

这种方案和ToF相比,计算量少功耗低,在近距离范围内精度更高,所以在人脸识别,手势识别方面极具优势。

当然,结构光的缺点也比较明显。

由于投射的经过编码的图像或散斑光点,在室外容易被强自然光淹没,所以结构光方案在室外并不好用。当物体距离相机较远时,物体上投射到的图像或光点越大,精度也越差;它也容易受光滑平面的反光影响,比如投射到镜子上。

P.S. 想象一下手电筒,几万个点投射在你手上,和投射在10米远处的物体上,每个点覆盖的面积是不是放大了很多倍?精度就会自然降低很多。

三、测量距离、分辨率、开发周期的对比

测量距离方面,ToF也具备一定优势。由于ToF接收传感器所接收的每个像素点对应一个物体表面的实际位置,只要有反射光回来,就可以通过解相位的方法获取到深度。其测量精度不会随着测量距离的增大而降低,其测量误差在整个测量范围内基本上是固定的。而且由于太阳光并未经过调制,可以简单认为它对相位是没有影响的,所以ToF对于室外强光环境也有一定的鲁棒性。

分辨率方面,采用ToF技术的深度相机分辨率目前还偏低,一般也就320*240的水准,功耗上也略微不尽人意。

开发周期和解决方案方面,ToF因基于它的解决方案出现较晚,开发群体较为薄弱。而结构光技术,一方面PrimeSense(Kinect 1)当年的如日中天留下了无数成型的解决方案,有Intel支持的RealSense又有着非常强大的SDK,这些都使得基于结构光的开发周期可以比较短。

综合来看,对于AR眼镜,无论是设备小型化需要还是实现SLAM需要的实时三维建图,ToF都有很大的优势。目前的一些“旗舰”产品HoloLens、Magic LeapOne的深度摄像头用的也都是ToF技术。

当然,ToF目前对于近距离的手势识别精度还有待提高。随着技术的发展,究竟哪种技术会成为主流还未可知,但终将会出现被大家广泛使用于AR眼镜的三维测量方案,到时AR眼镜的普及率已经有很大提升了吧。


结构光投射点阵,ToF投射的是一整个面

TOF和结构光的更多相关文章

  1. TOF与结构光技术分析

    TOF与结构光技术分析 一.概述 结构光(Structuredlight),通常采用特定波长的不可见的激光作为光源,它发射出来的光带有编码信息,投射在物体上,通过一定算法来计算返回的编码图案的畸变来得 ...

  2. 3D-camera结构光原理

    3D-camera结构光原理 目前主流的深度探测技术是结构光,TOF,和双目.具体的百度就有很详细的信息. 而结构光也有双目结构光和散斑结构光等,没错,Iphone X 的3D深度相机就用 散斑结构光 ...

  3. 3D结构光

    3D结构光 3D结构光的整个系统包含结构光投影设备.摄像机.图像采集和处理系统.其过程就是投影设备发射光线到被测物体上,摄像机拍摄在被测物体上形成的三维光图形,拍摄图像经采集处理系统处理后获得被测物体 ...

  4. 教你如何认识人脸识别开发套件中的双目摄像、3D结构光摄像头、单目摄像头的区别及详细讲解

    深圳市宁远电子提供的人脸识别模组可支持双目摄像头和3D结构光摄像头,在客户咨询中经常有被问到双目的为什么会比单目的成本高,区别在哪里,他们的适用于哪些场景呢?在此,深圳市宁远电子技术工程师就为大家详细 ...

  5. 结构光和ToF

  6. 双目结构光三维扫描仪获得的三维点云模型(GIF)

  7. 【计算机视觉】深度相机(一)--TOF总结

    http://www.voidcn.com/blog/lg1259156776/article/p-6302915.html 1.1 TOF初探 TOF是Time of flight的简写,直译为飞行 ...

  8. TOF 初探

    TOF 简介 TOF是Time of flight的简写,直译为飞行时间的意思.所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得 ...

  9. TOF相机基本知识

    TOF是Time of flight的简写,直译为飞行时间的意思.所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后利用传感器接收从物体返回的光,通过探测光脉冲的飞行时间来得到目标物的距离.TO ...

  10. 【计算机视觉】time of flight (TOF)

    目录(?)[-] 11 TOF初探 12 TOF研究机构 13 TOF之应用领域 14 TOF相机特点 2 深度相机比较 1 MESA系列介绍 2 PMD Tec系列 3 NATAL 4 primeS ...

随机推荐

  1. SpringCloud之旅

    现在大部分公司的项目架构都选择了微服务,我们公司也不例外,那么什么是微服务呢?今天就来开启SpringCloud之旅! SpringCloud是基于SpringBoot的一整套的微服务架构.他提供了微 ...

  2. 接口测试之object []如何类型传参

    接口测试时参数类型为object[],时如单选,多选提.传参值如下

  3. 实验十 团队作业7:团队项目用户验收&Beta冲刺

    项目 内容 课程班级博客链接 2018级卓越班 这个作业要求链接 实验十 团队名称 零基础619 团队成员分工描述 任务1:亚楠,桂婷任务2:团队合作任务3:团队合作任务4:荣娟,鑫 团队的课程学习目 ...

  4. (转载)Python 浅析线程(threading模块)和进程(process)

    线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 进程与线程 什么 ...

  5. WinHex恢复分区

    情景再现:可能在某一天,打开电脑时发现只剩C盘,剩下的盘找不到了,那么要如何恢复呢? 创建虚拟硬盘方便我们做实验 右键计算机 -> 管理 -> 磁盘管理右键 -> 创建VHD虚拟硬盘 ...

  6. GO语言学习笔记-包结构篇 Study for Go ! Chapter eight - Package Structure

    持续更新 Go 语言学习进度中 ...... GO语言学习笔记-类型篇 Study for Go! Chapter one - Type - slowlydance2me - 博客园 (cnblogs ...

  7. sql server连接的基本使用(包含自身验证和连接Navicat)

    自身验证的步骤 1.先默认使用Windows身份验证连接上SQL Server数据库 2.右键连接名称,选择属性 来到这个界面: 3.选中左侧的安全性 4.将服务器身份验证修改为SQL Server和 ...

  8. 使用 SpeechT5 进行语音合成、识别和更多功能

    我们很高兴地宣布,SpeechT5 现在可用于 Transformers (一个开源库,提供最前沿的机器学习模型实现的开源库). SpeechT5 最初见于微软亚洲研究院的这篇论文 SpeechT5: ...

  9. CSP-S划分 解题报告

    n <= 10 爆搜即可 n <= 50 什么乱搞 n <= 400 有一个 \(n^3\) 的 dp 设 dp[i][j] 表示最后一段为 j+1~i 时的最小值 直接三层循环转移 ...

  10. 自己动手从零写桌面操作系统GrapeOS系列教程——20.汇编语言读硬盘实战

    学习操作系统原理最好的方法是自己写一个简单的操作系统. 本讲我们设计一个简单的读硬盘实验.通过一定的方法使硬盘第二个扇区的前3个字节依次为1.2.3,最后3个字节依次为3.2.1,中间的506个字节全 ...