资讯详情

IToF技术原理与核心系统实现分析----ToF技术系列(二)

作者||技述无忌 原文地址:https://mp.weixin.qq.com/s/_6eAlWn3cOvXiMp5NX_6wg ?如果觉得文章内容不错,别忘了三连支持下哦??~

文章目录

  • 1.IToF原理介绍
    • 1.1 IToF系统简介
    • 1.2 基于方波(Pulse)的技术原理
    • 1.3 基于连续调制波(CW)的技术原理
      • 1.3.1 解相位和深度计算
      • 1.3.2 双频深度计算
  • 2. IToF算法处理过程
    • 2.1 ToF算法介绍
      • 2.1.1 算法流程概述
      • 2.1.2 展开计算双频相位
    • 2.2 ToF标定算法
      • 2.2.1 ToF校准内容和流程
      • 2.2.2 wiggling标定
      • 2.2.3 FPPN标定
      • 2.2.4 温漂标定
      • 2.2.5 镜头标定
    • 2.3 ToF系统常用滤波器
      • 2.3.1 时域滤波器【静态扫描场景】
      • 2.3.2 空域滤波器
      • 2.3.3 置信度滤波
      • 2.3.4 飞点滤波
  • 3.IToF设备误差分析
    • 3.1 误差分析概述
    • 3.2 相关噪声
    • 3.3 物理模型简化误差
    • 3.4 其它噪声

1.IToF原理介绍

1.1 IToF系统简介

目前,ToF基于脉冲波的传感器工作原理主要有两种(pulse)二是基于连续调制波的技术原理(CW)为了更好地理解这两种方法;ToF这里先对技术原理ToF系统简介: 在这里插入图片描述

图1 ToF系统框架图

ToF系统的主要核心部件包括:ToF sensor , Diffuser, lens,laser,Depth engine,interface board;diffuser主要功能是使激光发射的光线在视野范围内更加均匀,Depth engine主要实现ToF sensor相位图转换为深度图。对于ToF sensor采集电路的基本原理图如下: 图3 sensor 曝光时序图

ToF sensor 获取相位分为四个步骤 sensor reset, intergration, readout, Dead time; sensor Reset:从上图可以看出,RST开关主要是在测量前给电容CA、CB充电; Integration:Dmix0与Dmix由解调模块控制的开关,何时开关,与调制和解调的频率有关。当光子被感光元件接收时, 并且当DMIX0关闭时,充电电容CA它将与感光元件释放的电子中和,电容CA放电,直到中和,最终的电容电平代表相应时间内接收的电子数量。 Read out: Address Decode打开开关,读取电容器上的电平。 Dead time:死区时间。

1.2 基于方波(Pulse)的技术原理

激光模块由矩形波控制,发送光呈脉冲方波,接收sensor计算接收波形与发射波之间的相位差。 图4 ToF 脉冲反射接收顺序

发射脉冲可以设定频率f,并打开两个反向窗口,DMIX0与DMIX用于接收光子的数量, 一个窗口的频率和相位与发射脉冲一致,另一个与发射脉冲一致DMIX1反向,相位差为180。当两个窗口打开时,即高电平时,有物体反射的脉冲波。此时,两个不同的窗口在各自的时间内收集电荷。红色上色已在图中表示。假设DMIX0收集的电荷为Q0,DMIX收集的电荷为Q1。Q0与Q这部分加起来射脉冲时间内收集的电荷。td为了计算相位差存在的时间td,通过计算Q1了计算反射脉冲的时间Q我们可以读取这部分时间DMIX0与DMIX1窗口上的电平,即Q0加Q1与Q1的比值,然后乘上发射电平高电平的时间。因此,可以通过公式计算深度d; 

d = 1 2 C T p Q 1 / ( Q 0 Q 1 ) d=\frac{1}{2}CTpQ1/(Q0 Q1) d=21CTpQ1/(Q0+Q1) d d d代表深度, T p Tp Tp为发射模块的高电平时间; C C C为光速;

1.3 基于连续调制波(CW)的技术原理

1.3.1 解相位与深度计算

连续调制波在脉冲波的基础上而来, 连续调制波通常是连续的正弦波调制,与脉冲不同的是, 连续调制波开启了4个窗口分别是C1-C4 ,如下图所示: 图5 CW ToF窗口时序

上图的C1-C4指的是窗口开启与关闭的时序,对于光源与接收端通常是正弦波;

图6 发射波与接收波之间的关系 在解相位之前,此处先介绍一个函数定义, a ( t ) a(t) a(t)与 b ( t ) b(t) b(t)互相关函数: φ s g ( τ ) = a ( t ) ⊗ b ( t ) \varphi_{sg}(\tau)=a(t)\otimes b(t) φsg​(τ)=a(t)⊗b(t)

= lim ⁡ T → ∞ 1 T   ∫ − T 2 T 2 a ( t ) × b ( t + τ ) d t =\lim_{T\rightarrow \infty}{}\frac{1}{T}\ \int_{\frac{-T}{2}}^{\frac{T}{2}} a(t)\times b(t+\tau)dt =limT→∞​T1​ ∫2−T​2T​​a(t)×b(t+τ)dt

对于ToF,接收信号通过采样信号可以采用类似的关系解调出来, 其中接收信号与发射信号做一定相位延迟后信号重叠;而采样信号的频率f与发射信号的频率相同, 因此,发射信号、接收信号、采样信号三者之间的频率是一致的。

其中1为环境光导致接收波型引入的一个偏置, r ( t ) r(t) r(t)为接收信号; d ( t ) d(t) d(t)可以理解为发送信号,也可以理解为采集信号【方波】的近似描述,在这里理解为采样信号。从互相关函数的定义形式分析,其实际为两个周期函数相乘后进行积分,若采集信号为方波,那么互相关函数的结果则是接收信号在采样开关下的积分,而此积分则可理解为ToF在某一Tap的曝光时间内接收到的光子总量。由函数可知,其仅与延迟相位与采样时间点相关。若取: ω τ 0 = 0 ∘ , ω τ 90 = 9 0 ∘ \omega \tau_{0}=0^{\circ} , \omega \tau_{90}=90^{\circ} ωτ0​=0∘,ωτ90​=90∘ ,

ω τ 180 = 18 0 ∘ , ω τ 270 = 27 0 ∘ \omega\tau_{180}=180^{\circ} , \omega \tau_{270}=270^{\circ} ωτ180​=180∘,ωτ270​=270∘

则有: c ( τ 0 ) = a 2 c o s ( φ ) , c ( τ 90 ) = a 2 s i n ( φ ) c(\tau_{0})=\frac{a}{2}cos(\varphi), c(\tau_{90})=\frac{a}{2}si n(\varphi) c(τ0​)=2a​cos(φ),c(τ90​)=2a​sin(φ) c ( τ 180 ) = a 2 c o s ( φ ) , c ( τ 270 ) = a 2 s i n ( φ ) c(\tau_{180})=\frac{a}{2}cos(\varphi), c(\tau_{270})=\frac{a}{2}si n(\varphi) c(τ180​)=2a​cos(φ),c(τ270​)=2a​sin(φ)

根据上述结果可得相位: φ = t a n − 1 ( c ( τ 270 ) − c ( τ 90 ) c ( τ 0 ) − c ( τ 180 ) ) \varphi=tan^{-1}(\frac{c(\tau_{270})-c(\tau_{90})}{c(\tau_{0})-c(\tau_{180})}) φ=tan−1(c(τ0​)−c(τ180​)c(τ270​)−c(τ90​)​) 图7 相位解调计算原理示意图 其中A的值可以理解为幅度的同时,也可以作为置信度的一个标识,可用于Depth或者相位滤波算法的一个平衡参数。ToF的测量距离与发射频率相关。 偏置B代表系统及环境成像时的直流偏差量。可以理解为系统误差的一类表现。

1.3.2 双频深度计算

低频调制对应于远距离的测量,但是精度较差;而对于高频调制对应于近距离测量,精度较好。因此,高低频复用既可以用于探测远距离,也可以得到较好精度。对于双频调制对帧率要求较高,同时也会在一定程度上引入运动模糊

图8 双频深度计算示意图

对于双频调制,其探测距离的频率取决于两种频率的最大公约数决定。以fA=100MHz,fB=60MHz为例,fE=20MHz,MA=5,MB=3;

2. IToF算法处理流程

2.1 ToF算法介绍

2.1.1 算法流程概述

ToF深度算法计算的总体流程如下:

图9 ToF算法总体流程

首先, sensor输出相位图;通常情况下,相位图包含0,90,180,270的数据。然后进行wiggling进行相位较正,然后较正FPPN误差,温补较正;最后做相位展开后做镜头相关的较正以及滤波,最后根据相机的内参计算最终深度;

ToF算法流程近一步细化如下: 获取相位–>wiggling补偿–>FPPN补偿–>温度补偿–>相位展开–>滤波【置信度滤波+中值滤波】–>深度转换–>滤波【中值滤波】–>镜头去畸变—>点云数据;

2.1.2 双频相位展开计算

在ToF系统中,提取的相位都被包裹一个周期的相位中, 并不是真实的相位,因此需要将真实的相位展开获得真实数据。反正切函数获得的相位在【-pi,pi】或者【0,2pi】,解相位出来的相位这里可以称做是绝对相位。滤波需要放在相位展开之后。

图10 一维相位展开示意图

了解以上解相位的基本思路后,回到ToF的双频CW模式的具体场景,由于ToF在同一像素的深度是相同的, 因此对于双频在同一像素点解出的相位对应的距离是同一个值,那么它们存在以下等式:

d A d_{A} dA​, d B d_{B} dB​是高频与低频直接解算出的相位对应的距离值, d A T d_{AT} dAT​, d B T d_{BT} dBT​是高频与低频一个周期2pi对应的距离值, sigma为两者充许的误差。其中n,m为整数;上式中, d A d_{A} dA​, d B d_{B} dB​可以根据I、Q图计算得出。 d A T d_{AT} dAT​, d B T d_{BT} dBT​可以通过调制频率计算得出,根据双频的最大公约数频率,可以得到ToF的测量最大距离,n、m取值通过遍历或者查表计算可以计算。从而完成绝对相位的计算。sigma的大小可以用于滤除一些异常点。

2.2 ToF标定算法

注:以下标定中的参数可以是距离也可以是相位,取决于具体实现;

2.2.1 ToF标定内容与流程

ToF的标定内容可以分为两类,一类是所有模组采用统一参数与标定文件,比如温补,所有模组都可以采用同一参数;第二类是每个模组都需要独立标定,如:FPPN、wiggling、lens; 标定数据应用流程如下: 图11 ToF数据补偿流程图

数据的采集步骤说明: 步骤一,采集ToF相机固定频率100MHZ下的相关数据,包括Rawphase、积分时间、真实距离值数据;

a. 配置ToF sensor的积分时间为固定值e0;

b. 固定TOF相机的积分时间,所测量目标物为白色平面,等间隔10cm选取测试距离直至到达100MHz下最大测量距离1500mm。依照上述方法,记录每个测试距离下像素中心点的测量距离值数据100次。

c.改变TOF相机的积分时间,重复步骤(b),其中积分时间等间隔50us选取直至到达TOF相机的最大积分时间800us;

d.大量实验表明,FPPN与积分时间及距离无明显关系。故选取合适实际距离为40cm,合适的积分时间为500us,记录50幅深度图像.

e.计算全局偏差。由于照明驱动电路和电光转换引起的电延迟,每个调制频率下都具有固定偏移量。通过全局偏差,使测量数据归一化,让数据更加易于处理。对步骤(b)、步骤(c)所获得的测量距离值进行平均处理。选取合适积分时间的合适测试距离,将测量距离值平均值减去真实距离值,得到全局偏差值,计算公式为: P g l o b a l − o f f s e t = M r a w d i s t a n c e − C r e a l d i s t a n c e Pglobal-offset =M rawdistance -C realdistance Pglobal−offset=Mrawdistance−Crealdistance 其中, P g l o b a l − o f f s e t P global-offset Pglobal−offset 为全局偏差值, M r a w d i s t a n c e M rawdistance Mrawdistance 为测量距离值平均值, C r e a l d i s t a n c e C realdistance Crealdistance 为真实距离值。这里选取积分时间为500us,测试距离为400mm。在此,全局偏差值相当于系统误差。 f.将采集得到的深度图像每个像素测量距离值进行全局偏差补偿,计算公式为:

D p r e p r o c e s s e d ( r , c ) = D r a w d i s t a n c e ( r , c ) − P g l o b a l − o f f s e t D preprocessed (r,c)=D rawdistance (r,c)-P global-offset Dpreprocessed(r,c)=Drawdistance(r,c)−Pglobal−offset 其中 D p r e p r o c e s s e d ( r , c ) D preprocessed (r,c) Dpreprocessed(r,c)

标签: cd289系列电容器td系列传感器310激光传感器nx传感器neb3

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台