DTOF(direct Time-of-Flight,直接飞行时间)

news2024/9/29 4:06:13

一、基本概念

1.1 定义

        dToF,即直接飞行时间direct Time-of-Flight),是一种通过测量光脉冲发射出去并反射回来的时间差来直接计算距离的技术。

        TOF应用场景非常多,电子消费品领域有人脸识别,照相机辅助对焦,临近传感器,体感互动,手势识别,AR等,扫地机器人避障,无人机避障,3D场景扫描等等;工业和安防领域可以用于自动机器人,人数统计,智能停车场,智能交通,智能仓储,提及测量等;智能驾驶领域的激光雷达LIDAR也属于TOF的范畴。

1.1.1 TOF简介

        TOF,即飞行时间(Time-of-Flight),是一种通过计算光在介质中传播一定距离所需时间来测量距离的方法。主要应用于光学TOF场景,其原理相对直接。如图所示,一个光源发射一束光,并记录发射时间。这束光反射在目标上并被接收器捕获,记录接收时间。这两个时间点之间的差异,记为t,可计算出距离d=光速c * t /2。

1.1.2 TOF系统架构

为了实现上述的距离测量,一个典型的TOF系统由以下几部分组成:

  • 发射端(Tx):包括激光光源(主要是VCSEL)、激光驱动电路ASIC,以及用于光束控制的光学组件(如准直镜头或衍射光学元件)和滤光片。

  • 接收端(Rx):包括接收端的镜头和滤光片;根据不同的TOF系统可能是CIS、SPAD或SiPM等传感器;以及用于处理接收器芯片大量数据的图像信号处理器(ISP)。

  • 电源管理:需要稳定的电流控制VCSEL、高电压供给SPAD等,因此需要强大的电源管理。

  • 软件层:包括固件、SDK、操作系统和应用层。

        尽管TOF的原理看似简单——发射光脉冲并检测其返回以计算距离——其复杂性在于区分返回的光和环境光。这一挑战通过发射足够亮的光以实现高信噪比,并选择适当的波长以最小化环境光干扰来解决。另一种方法涉及对发射的光进行编码,使其在返回时可以识别,类似于手电筒的SOS信号。

        Leica和PMD出品的TOF参考设计“Holkin”,大小类似于一个手机照相机镜头模组,可以看到发射端的类似矩形的孔和接收端的镜头;发射端是采用了VCSEL+diffuser的形式,接收端是一颗镜头。

1.1.3 波长选择

      TOF系统常见的分类方式是从获取距离的具体方法进行分类,主要分成dTOF(直接TOF)和|iTOF(非直接TOF)。这两种方法在硬件和算法上有很大区别。

        虽然TOF的原理听上去很简单,发出一个光脉冲,然后检测什么时候返回了一个光脉冲,通过计算这个中间经过的时间,就可以知道距离。但是传感器本身是一直在进行接收能量的,如何知道传感器在某个时间点t接收到的光就是发出去的光呢

  1. 发射足够亮的光(相对于噪声)以达到足够的信噪比,传感器接收到高于环境光的能量就可以知道这是发射出去的光。如果是电子消费品,用于生活环境中,自然环境光强范围十分大,波长范围也很广,同时一个电子消费品很难发射非常强的光强,一方面要考虑激光安全,要根据IEC60825的要求限制激光的能量,另一方面也要考虑耗电的问题。所以选择合适的波长发射光十分重要。
  2. 找一个应用场景中不存在的波长或者能量最低的波长,这样就可以在这个波长发射相对弱一些的光脉冲,然后传感器前面放置窄带滤波片,这样,传感器只能收到这个波长的光。
  3. 对发射的光进行编码,让其有可以识别的特征,比如发射光亮暗亮暗亮暗,接收端接收到这个形式的光的时候,就知道这是发射出去的光了,这就像黑夜中的SOS手电筒闪烁。

        太阳光的光谱如下图所示,黄色为大气层上方的太阳光谱,红色为经过大气吸收后的太阳光谱,在近红外区,可以看到有氧气和水蒸气的吸收峰(在某些特定波长下,水蒸气能够强烈吸收太阳辐射。这种吸收作用减少了到达地面的太阳辐射量,因此环境光强会变小)。这些吸收峰的波长位置理论上都可以作为TOF系统应用的波长。大部分TOF应用都会选择850nm和940nm

1)这两个波长的发光源器件可以使用VCSEL实现,再长的波长可能需要EEL实现;

2)接收端传感器对850nm是最敏感的,可以提供最佳的信噪比,940nm的感光度会比850nm低,如果波长更长,传感器的制造更难,电子消费品中很少选择。

3)人眼对近红外(NIR)波长范围的光不敏感,但人眼可以感知850 nm的光,看不到940 nm的光

4)虽然可见光谱区域中的太阳光最强,但NIR区域中的能量仍然很大。阳光(更一般地说是环境光)会增加景深噪声,缩短ToF摄像头的有效距离。幸运的是,由于大气吸收,阳光辐照度在920 nm至960 nm区域中急剧下降,与850 nm区域相比要小一半以上。在室外应用中,工作在940 nm的ToF系统可以更好地抑制环境光,实现更好的景深测量性能。

1.1.4 dTOF和iTOF

         直接TOF直接测量光子的飞行时间。其关键组件,单光子雪崩二极管(SPAD),灵敏度足以检测单个光子。简单来说该种传感器具有探测单个光子的灵敏度,只要有一个光子击中SPAD,SPAD就会最终输出一个脉冲。SPAD输出这个脉冲后,可以很快复位,准备接收下一个光子。

        可是即使在850nm和940nm,环境光也是存在的,这意味,只要SPAD开始计数,就可能不停的有光子会撞击SPAD并令其激活并输出脉冲,那如何分辨接收到的光子是发射端发出,被目标物反射回来的这个光子呢。首先要使用合适的窄带滤波+衰减,让大部分场景的环境光不能透过滤光片,以降低噪声,但是在850nm的衰减滤波是固定的,不可能满足在所有光照场景下,刚刚好环境光强度不会激发SPAD,然后发射光能量刚好有光子进入;而且依赖于滤光片和衰减,测量误差可能非常大。

        dTOF使用的方法叫时间相关单光子计数法(TCSPC,Time correlated single photon counting),名字听起来很复杂,实际上就是“数光子出现的时间”。具体见下图,假设我们使用发射端VCSEL快速发射100个激光脉冲,记录SPAD每次收到脉冲的时间Δt,我们就有了100个Δt,见左图;把这些不同Δt出现的次数画成直方图,其中某个时间段的Δt出现频率最高,就是最可能的物体位置造成的Δt,而其他的Δt出现的地方可能是SPAD自己的噪声,环境光噪声,光线多径反射后返回传感器的噪声等。在实际应用中,VCSEL可以达到非常高的调制脉冲速度,VCSEL的每个脉冲宽度可以在ps到ns级别;SPAD也可以实现非常快的相应速度。举一个例子,实际模组中,可以实现用200ns发射100个1ns的脉冲,占空比50%;每1ms进行一次这样的发射,得到一个距离结果;每10ms求10次结果的平均反馈给操作系统使用;如此该TOF可以实现100次每秒的测距。                

        间接TOF根据发射和接收波形之间的相位差来计算飞行时间,通常使用连续波或脉冲调制信号。因为是测量光强,所以iTOF的硬件可以使用普通的图像传感器架构,传感器输出的是接收到的光强和时间的函数,通过对比该函数和发射端的信号的函数,可以计算出飞行时间。需要注意的是,普通图像传感器的特点就是在一个固定时间收集光子,然后转化成电信号输出。

二、DTOF基本原理和核心组件

2.1 核心组件

激光驱动器

Laser Driver是发射端电路的主要部分,负责驱动Laser,控制电路发出数字脉冲信号,一般使用该信号控制MOSFET进行开关,控制激光发射。

激光器VCSEL 

VCSEL 垂直腔面发射激光器_vcsel芯片的上升下降沿-CSDN博客

在dTOF中,激光器负责发射激光。采用激光的主要原因是激光光谱窄,能量强度高,调制速度快,而且易于集成。电子消费品的dTOF应用中,主要使用的是VCSEL。

数字电路产生的脉冲方波输入给激光驱动,变成实际的光脉冲后,在时域上可以看到由完美方波,变成了不那么完美的方波(图示里是画的比较夸张,实际上,VCSEL的脉冲调制性能已经非常好了)。由于激光驱动的响应速度,这里在时域上产生了一个不确定性的参数,即为δ-laser(图中的δ-t)

发射端光学 

发射端一般为一个简单的光学镜头,把激光能量发射到需要的视场角内,有一些应用也会使用准直镜+DOE等元器件,把VCSEL发出的光线先准直,然后分成很多束光线指向不同的视场角方向。

接收端光学 

接收端光学零部件需要的主要是收集期望测量的视场角内的光线,这种镜头F数越小越好,相对照度越高越好,同时镜片上可以进行一定的镀膜增强透光性,同时接收端会使用尽量窄带的滤光片,去滤除其他波长的杂光干扰。

接收传感器SPAD 

dTOF应用中主要使用的接收传感器为single-photon avalanche diode (SPAD)单光子雪崩二极管或Silicon photomultipliers(SiPM)硅光子光电倍增管,他们的主要区别是每一个SiPM像素里包含多个SPAD像素。不同于传统CMOS传感器,对于光的接收时积分形式的,既接收某一时间段内的光强,转换为电流;SPAD如其名字所描述的,可以对单一光子进行相应,只需要一个光子就能触发一次强的雪崩,产生电流信号。可以说,SPAD输出的就是有光1和没光0两种状态(见下图)。SPAD传感器芯片每次被光子激活后,电子淬灭电路降低二极管中的电压使其在短时间内低于阈值电压,因此雪崩停止,经过一段恢复时间,探测器可以探测其它的光子,这个恢复时间决定了传感器的识别速度。

SPAD的像素相对于传统CMOS图像传感器来说还无法做的很小,比如一款传统图像传感器,三星的GN1,50MP,1/1.31"大小,像素大小1.2um。而SPAD的像素大小很大,这是由于其需要各种电路对SPAD进行复位造成的。比如根据机构的分析,iPhone中使用的Lidar是Sony的SPAD传感器,只有30K的像素数,每个像素10um大小。所以SPAD的传感器限制了dTOF的空间分辨率。

信号被SPAD接收后,会再产生一个一个时间不确定性因素δ-tSPAD,这个是SPAD的响应速度决定的。

TDC电路 

Time-to-digital converter(TDC),时间数字转换器,是将模拟信号转换成以时间表示的数字信号的电路,TDC输出了每一个脉冲与所设起始点相比被记录下来的时间。这些脉冲被记录下来后,转换成直方图,然后通过比较哪个时间的直方数量最大,确认目标物的位置。TDC电路的精度也会对时域信号产生影响,引入了一个不确定性δ-tTDC。通过TDC电路后的电路,都是数字电路。

2.2 系统参数

探测距离

精度

        假设一个脉冲的宽度为Δt,一个激光器把它发射出去后,接收端收到了反射回来的光子,但是接收端无法知道这个光子是来自于脉冲刚刚开始的第一个光子,还是脉冲结束时的最后一个光子,所以即使没有任何噪声或者不确定性的情况下,dTOF的距离探测精度,本质上是受限于脉冲宽度的,距离探测精度ΔR = c*Δt/2。假设每个脉冲宽度为1ns,那么ΔR = 0.15m。VCSEL作为一种半导体激光器,响应速度很快,可以达到ps级,假设脉冲宽度达到0.1ns,那么,ΔR 就可以达到0.015m,既15mm的探测距离精度。通过这个公式,我们可以看到,dTOF的探测距离精度,并不随距离的增加有所下降,这是dTOF一个很大的优势,也是dTOF类型的系统会使用在长距离场景探测的主要原因(车用激光雷达)。

误差

        探测距离d = cΔT/2,根据前面一部分的分析我们看到,在发射端到接收端的各种零部件上,在脉冲的时域上产生了很多的不确定参数,其中由数字电路产生的ΔT,经过激光驱动产生的激光脉冲产生了时间不确定参数 δlaser;被SPAD探测到后,SPAD的响应产生了 δSPAD;TDC电路的响应,产生了 δTDC。由此,总计的探测时间不确定RMS如下公式所示,其中δother是系统中的其他统计上独立的不确定参数,可能包括其他电路部分的响应,pixel之间互相的影响等,但是整体上这部分是相对比较小的。那么,测量误差为c*δtotal

最大无歧义探测距离

        假设我们发射了两个脉冲,第一个脉冲发射的早,但是飞行的远,第二个脉冲发射的晚,但是飞行的近,这样,第二个脉冲回来的早,第一个脉冲回来的晚,识别的时候,我们就会弄混两个脉冲。那如何能尽量分辨两个脉冲呢?最简单的方法就是把两个脉冲的发射间距拉长。其中,不造成混叠的最大无歧义探测距离为c*脉冲间隔/2,也等于c/2f,f为激光的调制频率。假设我们的激光调制在1Mhz,那么最大无歧义探测距离就是150m。所以,探测5m范围的dTOF可以使用更高的调制频率,就是因为探测距离足够小,并不会有脉冲间隔产生的距离歧义问题。

功耗 

        由于dTOF发射的是脉冲,所以功耗上,相对iTOF需要发射连续波以及持续接收,功耗较低。

抗干扰能力

        dTOF抗多路径干扰的能力很强,通过统计直方图和合适的算法,很容易分辨哪些光子是多路反射回来的,哪些是目标物反射回来的。这是dTOF对比iTOF的一大优势

视场角

        点云覆盖区域相对坐标原点的最大张角,分为水平方向和垂直方向;

        取决于光学系统和扫描方式的设计,视场角越大,能够测量的场景范围越广

帧率

         对同一个目标点探测的频率。     

        dToF可以在单帧测量时间内发射和接收多次光信号,帧率越高,深度测量的速度越快

空间图像分辨率

        受限于SPAD传感器的像素大小,dToF的空间分辨率可能不如传统的CMOS图像传感器

环境光适应性

分区模式

        将视场(Field of View, FoV)划分为多个区域,并在这些区域内独立地控制激光的发射和接收,从而实现更高的帧率和数据输出。

三、电路

VCSEL Driver 

        VCSEL Driver用于驱动VCSEL工作,最简单的一种架构如下图所示,由于系统的控制部分是数字信号,VCSEL本身是模拟元器件,而且需要一个高电流,系统需要做的是快速的控制VCSEL的开关以发出高频脉冲光波。其中VCSEL的正极连接高电压,用于VCSEL本身的供电,该电压有时可以和数字电路部分的控制电压分离开来。VCSEL的负极端连接一个MOSFET(金属氧化物半导体场效应管),起到一个开关的作用。VCSEL本身可以被大致描述为一个有着特定大小电阻电容和电感的理想二极管。MOSFET的gate侧可以接收脉冲信号,来对MOSFET进行开关。对于高速应用,gate侧使用一个Gate Driver来提升信号速度,比如使用一对儿MOSFET来对VCSEL的MOSFET进行快速的充放电保证其开关高速性能。

C6-4.png

SPAD Detection Array 

        SPAD detection array执行的是检测任务,主要由SPAD像素点,淬灭和重置电路和读出电路组成。下图展示了一个8x8的SPAD阵列的单像素结构,其中SPAD像素点用于感收到光子时发生雪崩效应产生电信号;淬灭和充值电路进行电压控制,已完成先停止SPAD像素点的雪崩过程,再让其回到工作状态;而读出电路用于识别SPAD读出的信号,并最终输出时间差信号。

        一种是读出电路整体在SPAD像素阵列边上(左图),一种是Sony的3D堆叠技术,整体读出电路在SPAD像素阵列下方(右图)。

C6-7.png

Micro Controller 

        Micro controller用于控制片上各子系统

NVM,ROM,RAM 

        NVM用于来储存firmware,序列号,系统的校准信息等需要一直保存的信息,ROM用于储存系统初始化信息等,RAM用于系统运行的计算存储。

外围电路和端口 

        ST的文档中展示了配合该模组的外围电路,模组通过I2C端口(SCL,SDA,INT)和Host MCU进行通信进行输入控制信号和输出信号的传输。

参考资料

了解TOF传感器概念:TOF、iTOF 和 dTOF是什么? (lumimetric.com)

dTOF基本原理和核心组件 (lumimetric.com)

03.00 TOF 系统 目录 - 超光 Faster than light (faster-than-light.net)

ToF系统设计—第2部分:飞行时间景深测量摄像头的光学设计 | Analog Devices

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

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

相关文章

程序员数学 | 数学归纳法

目录 一、数学归纳法是什么二、使用编程来模拟数学归纳法的证明 人类做重复性的劳动没有效率,而计算机却能更快更准确的完成重复性劳动。所以以重复为特点的迭代法在编程中有着⼴泛的应⽤。实际项目中是否可以用不断更新变量值或者缩小搜索的区间范围的方法&#xf…

AniJS:无需编程的动画解决方案

前言 在网页设计中,动画效果能够显著提升用户体验,但传统的动画实现往往需要复杂的 JavaScript 代码。 AniJS 库的出现,为设计师和开发者带来了一种全新的动画实现方式,它通过简单的 HTML 属性就能创建出令人惊叹的动画效果。 介…

HTML5+JavaScript绘制闪烁的网格错觉

HTML5JavaScript绘制闪烁的网格错觉 闪烁的网格错觉(scintillating grid illusion)是一种视觉错觉,通过简单的黑白方格网格和少量的精心设计,能够使人眼前出现动态变化的效果。 闪烁的栅格错觉,是一种经典的视觉错觉…

柯桥小语种学习英语口语培训|被点名时,中文喊“到”,那英文喊什么?

"今日体育课,张老师准时点名。阳光下,同学们精神抖擞,一一应答到。课堂氛围活跃,准备充分,期待精彩训练。"被点名时,中文喊“到”,那英文喊什么? “到”用英语怎么说&…

在WPF中实现多语言切换的四种方式

在WPF中有多种方式可以实现多语言,这里提供几种常用的方式。 一、使用XML实现多语言切换 使用XML实现多语言的思路就是使用XML作为绑定的数据源。主要用到XmlDataProvider类. 使用XmlDataProvider.Source属性指定XML文件的路径或通过XmlDataProvider.Document指定…

5G NR 协议规范表(对应3GPP 协议编号)

文章目录 5G NR 协议规范表(对应3GPP 协议编号)5G 架构相关协议5G 新空口相关协议无线接入网相关协议终端相关协议 5G NR 协议规范表(对应3GPP 协议编号) 5G 架构相关协议 5G 新空口相关协议 无线接入网相关协议 终端相关协议

怎么将其他内容与表单组合成二维码?扫码查看内容填写数据的制作技巧

怎么将视频、图片、文字等内容和表单组合生成二维码?现在用二维码来制作表单收集用户数据是一种很常见的方式,将问题做成表单生成二维码,其他人只需要扫码就能够根据问题来填写自己的反馈信息,更加的简单方便。 那么需要让扫码者…

通用型pdf合并工具,分享7款简单易学的pdf处理软件,日常电脑必备!

日常学习和工作中,我们难免会遇到需要编辑pdf文件的情况。熟悉pdf格式文档的小伙伴都知道,pdf不易于编辑,需要借助专业的pdf编辑软件才能实现。现在pdf编辑、pdf转word、pdf合并、pdf拆分等功能都可以轻松实现。尽管如此,也有不少…

服装品牌小程序展示承载服务

服装大小品牌众多,还包括多区域的门店商家合作批发、咨询等,品牌或经销商想要获得更多生意,线上渠道往往是必备的,品牌宣传、获客转化及持续的信息干货输出等。 线上渠道多样化,尤其是微信、百度、抖音、快手等平台聚…

获取 Jupyter Notebook IPython kernel 在电脑中的目录位置

获取 Jupyter Notebook IPython kernel 在电脑中的目录位置 正文 正文 在 VS code 的 terminal 中或者 Windows 的命令行中使用如下代码即可。 ipython locate运行后得到如下结果: 如图所示,我们获取到了 ipython 的位置。 如果大家觉得有用&#xf…

Arthas redefine(加载外部的.class文件,redefine到JVM里 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.3 redefine(加载外部的.class文件,redefine到JVM里 )举例1:加载新的代码,jad/mc 命令使用举例2:上传 .class 文件到服务器的技巧 二、命令列表 2.…

童装购买系统小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,商家管理,商品分类管理,尺码信息管理,款式信息管理,商品信息管理,在线咨询管理,系统管理 微信端账号功能包…

基于php摄影门户网站

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

多输入多输出预测 | NGO-BP北方苍鹰算法优化BP神经网络多输入多输出预测(Matlab)

多输入多输出预测 | NGO-BP北方苍鹰算法优化BP神经网络多输入多输出预测(Matlab) 目录 多输入多输出预测 | NGO-BP北方苍鹰算法优化BP神经网络多输入多输出预测(Matlab)预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介…

Android Glide(一):源码分析,内存缓存和磁盘缓存的分析,实现流程以及生命周期

目录 一、Android Glide是什么,如何使用? Android Glide是一个由Google维护的快速高效的Android图像加载库,它旨在简化在Android应用程序中加载和显示图像的过程,包括内存缓存、磁盘缓存和网络加载,以确保图像加载的快…

算力共享系统中数据平面和控制平面

目录 算力共享系统中数据平面和控制平面 数据平面 控制平面 算力共享系统举例 控制流程和业务流程,在算力共享系统中举例说明 控制流程 业务流程 算力共享系统中数据平面和控制平面 在算力共享系统中,数据平面和控制平面是两个关键组成部分,它们各自承担着不同的角色…

网络层——IP

IP地址 结构: 由32位二进制数组成,通常用点分的形式被分为四个部分,每个部分1byte,最大值为255。 从功能的角度看,ip地址由两部分组成,网络号和主机号。网络号标识了ip所在的网段,主机号标识了…

AI大模型:揭秘AI产品经理与传统产品经理的差别与转型攻略

引言: 随着ChatGPT等革命性产品的流行,人工智能(AI)在中国的发展势头愈发强劲。众多企业纷纷投身AI领域,希望在激烈的市场竞争中占据有利位置。在这一背景下,AI产品经理成为了一个备受瞩目的职业角色。那么…

智慧环保大数据平台建设方案

1. 智慧环保现状与挑战 随着环境问题日益严重,环境事件频发,如贵州都匀矿渣污染、云南南盘江水污染等,以及癌症高发率的出现,智慧环保建设显得尤为重要。智慧环保旨在通过技术手段提升环境管理和决策的智能化水平。 2. 宏观环境…

ubuntu系统下,c++图形库Matplot++配置

linux下安装c图形库Matplot,使得c可以可视化编程;安装Matplot之前,需要先安装一个gnuplot,因为Matplot是依赖于此库 gnuplot下载链接: http://www.gnuplot.info/ 一、gnuplot下载与安装 step1.进入链接点击Release链…