2、核心深度技术原理(上):双目立体视觉原理、结构光原理(散斑与编码光)、ToF(飞行时间)原理

各位同学,欢迎来到深度相机选型的核心章节。

说实话,市面上那么多深度相机,原理无非就那三大类:双目、结构光、ToF。你搞懂了它们,选型就成功了一半。今天咱们就把这三兄弟的底裤扒干净。

核心观点:没有完美的深度技术,只有最适合场景的方案。双目像人的眼睛,结构光像投影仪+相机,ToF像声呐。理解它们的物理本质,比背参数更重要。

三大深度技术原理 双目立体视觉 三角测量 立体匹配 结构光 散斑结构光 编码结构光 飞行时间(ToF) iToF dToF 核心差异:是否需要主动光源?基线长度?计算量? 室外/大场景 室内/近距离 中距离/动态

2.1 双目立体视觉:最像人眼的技术

双目立体视觉,说白了就是模仿人的双眼。你想想看,为什么你能判断远处那杯咖啡离你有多远?因为你的左眼和右眼看到的画面有细微差别,大脑通过这个差别算出了距离。

相机也是一样。两个摄像头,左右放置,同时拍一张照片。然后算法去找左图里的某个像素点,在右图里对应哪个位置。这个位置的偏移量,我们叫「视差」。视差越大,物体越近;视差越小,物体越远。

我的经验:做双目系统,最头疼的不是算法,而是标定。我曾在项目里花了两周时间调相机的外参,结果发现是镜头畸变参数没给对。记住:标定板一定要用陶瓷的,纸质的受潮会变形,标出来全是错的。

数学上,深度 Z 和视差 d 的关系很简单:

Z = (f * B) / d

其中:
Z  = 深度值(单位:mm)
f  = 焦距(单位:pixel)
B  = 基线长度(两个相机光心的距离,单位:mm)
d  = 视差(单位:pixel)

这个公式告诉我们两件事:

  • 基线越长,测距越远。 但基线太长,近处物体就出画了。这是个 trade-off。
  • 视差精度决定深度精度。 亚像素匹配能做到 0.1 pixel 的精度,但需要好的纹理。

立体匹配的三大流派

立体匹配是双目系统的灵魂。我把它分成三类:

流派 代表算法 速度 精度 适用场景
局部匹配 BM、SAD、NCC 快(实时) 中等 纹理丰富的场景
全局匹配 GC、Graph Cut 慢(离线) 弱纹理、重复纹理
半全局匹配 SGM、SGBM 较快 较高 工业、自动驾驶

避坑指南:我曾经在室内白墙场景用双目,结果深度图全是黑洞。为什么?因为白墙没有纹理,左右相机看到的完全一样,匹配算法直接罢工。后来我加了个投影仪打纹理,才解决问题。记住:双目天生怕弱纹理。

2.2 结构光原理:主动投射的「作弊器」

结构光,说白了就是「我主动给你打上标记,然后我来认」。双目是被动地等自然光,结构光则是主动投射已知图案,然后相机拍下被物体表面调制后的图案,通过图案的变形来算深度。

这里有两个主流分支:

散斑结构光

投射器打出密密麻麻的随机光斑(像星空一样)。每个光斑的局部图案都是独一无二的。相机拍下后,算法通过识别这些光斑的偏移量来计算深度。

代表产品:微软 Kinect v1、苹果 Face ID。

我的感受:散斑结构光在室内效果极好,但一到室外,太阳光里的红外成分会把散斑淹没。我试过在正午阳光下用 Kinect v1,深度图直接废了。所以它天生是室内选手。

编码结构光

投射的不是随机散斑,而是有规律的编码图案。比如格雷码、相移条纹。通过多帧图案的时序变化,逐像素解码出深度。

优势:精度极高,可以达到亚毫米级。

劣势:需要投射多帧图案,所以只能拍静态物体。动起来就糊了。

关键区别:散斑结构光用「空间唯一性」来编码(一帧搞定),编码结构光用「时间序列」来编码(多帧搞定)。前者适合动态,后者适合高精度静态。

2.3 ToF(飞行时间):直接测光速

ToF 的原理最暴力——直接测量光从发射到返回的时间。光速是已知的(3×10⁸ m/s),时间乘以光速再除以2,就是距离。

但光速太快了,1米的距离,光只需要 3.3 纳秒。普通电子设备根本测不了这么短的时间。所以 ToF 分成了两派:

iToF(间接飞行时间)

不直接测时间,而是测相位差。发射连续调制的红外光,接收到的光会有相位延迟,通过相位差反推距离。

  • 优点:芯片工艺成熟,成本低,分辨率可以做到 VGA 甚至更高。
  • 缺点:存在「距离模糊」问题——相位差每 2π 循环一次,超过量程就会混淆。

dToF(直接飞行时间)

直接测单个光脉冲的往返时间。用 SPAD(单光子雪崩二极管)来捕捉单个光子。

  • 优点:没有距离模糊,测距远(几十米甚至上百米),抗环境光强。
  • 缺点:分辨率低(目前主流是 QVGA),成本高。

我的建议:如果你做手机或者消费级产品,iToF 更合适,因为分辨率高、成本可控。如果你做车载激光雷达或者工业测距,dToF 是唯一选择。我去年帮客户选型,他们要做扫地机避障,我推荐了 iToF,效果很好,因为扫地机只需要 5 米内的深度信息。

2.4 三大技术对比总结

维度 双目立体视觉 结构光 ToF
主动光源 不需要 需要(红外激光) 需要(红外激光/LED)
室外表现 优秀(依赖自然光) 差(太阳光干扰) 良好(dToF 更优)
弱纹理表现 优秀 优秀
精度 中等(随距离下降) 高(近距离) 中等(随距离下降)
帧率 30-60fps 30fps(散斑)/ 1-10fps(编码) 30-120fps
功耗 低(纯计算) 中等 高(激光发射)
典型距离 0.5m - 50m 0.1m - 5m 0.1m - 30m
代表产品 ZED、Intel T265 Kinect v1、Face ID Kinect v2、iPhone X 后置

最后提醒一句:别只看参数表。我见过太多人拿着参数表对比,最后选了个「理论上最好」的相机,结果现场一测,根本不能用。为什么?因为参数表里的精度是在实验室理想条件下测的。你实际场景里的光照、纹理、反射率,都会让性能打折扣。所以,一定要拿样机去你的实际场景里测,测完再决定。


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