2、ToF成像模型:深度测量原理、相位法与脉冲法、调制频率与测量距离的关系

好,咱们进入正题。ToF相机到底是怎么算出距离的?

说白了,它就是靠「光飞了多长时间」来算距离。光速是已知的,时间测准了,距离自然就出来了。但这里面的门道,远比你想的要多。

2.1 深度测量原理:光速与时间的游戏

ToF的核心公式很简单:

距离 = (光速 × 飞行时间) / 2

为什么要除以2?因为光从发射到接收,走了一个来回。你想想看,它先打到物体,再反射回来,路程是两倍的距离。

我在项目中遇到过一个问题:很多人以为只要时间测准了,距离就准了。其实不然。光速在空气中会有微小变化,温度、湿度都会影响。不过对于消费级应用,我们通常忽略这些,直接用299,792,458 m/s。

关键点:ToF测量的不是「绝对时间」,而是「相位差」或「脉冲计数」。这是后面所有算法的根基。

2.2 相位法与脉冲法:两种主流方案

目前市面上主流的ToF方案就两种:相位法和脉冲法。我两种都调过,各有各的脾气。

2.2.1 相位法(CW-ToF)

相位法,也叫连续波调制。它发射的是正弦波或方波信号,然后测量发射波和反射波之间的相位差。

公式长这样:

距离 = (c × Δφ) / (4π × f_mod)

其中Δφ是相位差,f_mod是调制频率。

嗯,这里要注意:相位差只能在0到2π之间测量。一旦超过2π,就会出现「相位缠绕」——你分不清这个物体是近还是远。这就是所谓的「非模糊距离」问题。

我的经验:相位法精度高,但测距范围有限。我曾经在一个项目中用100MHz的调制频率,最大不模糊距离只有1.5米。后来我换成了20MHz,范围扩大到7.5米,但精度下降了。这就是个取舍问题。

2.2.2 脉冲法(Pulse-ToF)

脉冲法就直白多了。它发射一个短脉冲,然后直接测量脉冲从发射到接收的时间差。

公式更简单:

距离 = (c × t_flight) / 2

脉冲法的好处是:没有相位缠绕问题,理论上可以测很远。但它的精度受限于时间测量分辨率。你想想看,要测1厘米的精度,时间分辨率得达到67皮秒——这可不是闹着玩的。

避坑指南:我曾经在一个户外项目中用脉冲法,结果阳光干扰导致大量误触发。后来我加了带通滤波器和时间门控,才把信噪比提上来。如果你做户外应用,一定要考虑环境光的影响。

2.3 调制频率与测量距离的关系

这是整个ToF成像模型中最核心的部分。调制频率决定了你能测多远、测多准。

咱们先看一个表格:

调制频率 最大不模糊距离(相位法) 典型精度 适用场景
10 MHz 15 m ±5 cm 大范围、低精度
50 MHz 3 m ±1 cm 中等范围、中等精度
100 MHz 1.5 m ±3 mm 近距离、高精度
200 MHz 0.75 m ±1 mm 超近距离、超高精度

看到规律了吗?频率越高,精度越高,但测距范围越短。频率越低,范围越大,但精度越差。

为什么会这样?因为相位法的精度取决于相位测量的分辨率。频率越高,同样的相位误差对应的距离误差越小。但高频信号衰减快,信噪比下降,所以范围受限。

核心公式:最大不模糊距离 d_max = c / (2 × f_mod)

这个公式你一定要记住。它决定了你的系统能测多远。

2.4 多频调制:打破距离与精度的矛盾

既然单频有局限,那能不能用多个频率?当然可以。这就是多频调制技术。

我个人的习惯是:用两个频率,一个低频(比如20MHz)测粗距离,一个高频(比如100MHz)测精细距离。然后通过算法融合,既保证范围,又保证精度。

算法思路大致如下:

1. 用低频f1测量,得到粗距离d1(可能有模糊)
2. 用高频f2测量,得到精细相位差φ2
3. 利用d1消除φ2的模糊,得到精确距离

嗯,这里要注意:两个频率的比值不能是整数倍,否则会引入新的模糊。我一般选f1:f2 = 1:3或1:5。

我的经验:多频调制虽然好,但会降低帧率。因为每个频率都需要单独采集一帧数据。如果你做实时应用,比如手势识别,帧率不能低于30fps,那就要权衡一下频率数量和帧率的关系。

2.5 知识体系总览

为了让你更直观地理解整个ToF成像模型,我画了一张图:

ToF成像模型知识体系 ToF成像模型 深度测量原理:d = (c × t) / 2 相位法(CW-ToF) 测量相位差 → 计算距离 存在相位缠绕问题 脉冲法(Pulse-ToF) 直接测量飞行时间 无缠绕,但精度受限于时间分辨率 调制频率与测量距离的关系 高频高精度短距离 | 低频低精度长距离 | 多频调制可兼顾

这张图把整个ToF成像模型的脉络理清了。从深度测量原理出发,分支出相位法和脉冲法两条技术路线,最后汇聚到调制频率这个核心参数上。你把这个图吃透了,后面讲标定和畸变校正就轻松多了。

最后提醒一句:不管用哪种方法,标定都是绕不开的坎。相位法有相位偏移误差,脉冲法有时间偏移误差。这些误差不校正,你测出来的距离就是错的。下一节我们会详细讲怎么标定。


公众号:蓝海资料掘金营,微信deep3321