4. 结构光深度相机详解

结构光深度相机,说白了就是主动投射已知图案,然后通过观察图案的变形来推算深度。我最早接触这个技术是在2014年,当时用第一代Kinect做人体扫描,那个红外散斑的效果让我印象很深。嗯,今天咱们就把它的底裤扒干净。

4.1 单目结构光 vs 双目结构光

很多人搞不清单目和双目的区别。我简单说:单目结构光是一个投影仪加一个相机,双目结构光是一个投影仪加两个相机。就这么简单。

但背后的原理差异很大。

4.1.1 单目结构光原理

投影仪向场景投射已知编码图案(比如条纹、散斑)。相机拍摄被物体调制后的图案。通过比对原始图案和变形图案,就能算出每个像素的偏移量,进而得到深度。

核心公式就一个三角测量:

Z = (f * B) / (d + Δd)

其中Z是深度,f是焦距,B是基线(投影仪和相机之间的距离),d是原始偏移,Δd是变形偏移。

我的经验:单目结构光对投影仪和相机的同步要求很高。我曾经在户外强光下测试,投影仪功率不够,散斑直接被环境光淹没。后来我换了大功率红外激光投影仪,才勉强能用。

4.1.2 双目结构光原理

双目结构光多了一个相机。投影仪只负责投射纹理(通常是散斑),两个相机像双目立体视觉那样做匹配。投影仪的作用是给低纹理区域“画上”特征点,让双目匹配更鲁棒。

说白了,双目结构光 = 双目立体视觉 + 主动纹理投影。

这样做的好处是:

  • 深度精度比纯双目高(纹理丰富)
  • 抗环境光干扰比单目结构光强(两个相机可以独立曝光)
  • 对投影仪功率要求降低

但代价是:计算量翻倍,标定也更复杂(需要标定两个相机+投影仪)。

对比项 单目结构光 双目结构光
硬件组成 1投影 + 1相机 1投影 + 2相机
深度计算方式 图案变形三角测量 双目匹配 + 主动纹理
抗环境光能力 弱 中
计算复杂度 低 高
标定难度 中 高
典型产品 Kinect v1 Intel RealSense D400系列

4.2 散斑编码技术

散斑,就是随机分布的红外光斑。你想想看,如果投射的是均匀光,那物体表面没有特征点,双目匹配根本没法做。散斑的作用就是给物体表面“纹身”,让每个局部区域都有独一无二的图案。

散斑编码有几个关键指标:

  • 散斑密度:每平方毫米多少个光斑。密度越高,匹配精度越高,但计算量也越大。
  • 散斑随机性:光斑位置必须是伪随机的,不能有周期性。否则会出现匹配歧义。
  • 散斑对比度:光斑和背景的亮度差。对比度越高,越容易检测。
避坑指南:我曾经在玻璃表面测试散斑结构光,结果一塌糊涂。因为玻璃会透射和反射,散斑图案完全乱掉。后来我加了一层漫反射涂层才搞定。如果你要测透明或高反光物体,结构光不是好选择。

散斑的生成方式有两种:

  1. 衍射光学元件(DOE):用激光通过衍射光栅生成散斑。优点是功耗低、体积小。苹果Face ID用的就是这种。
  2. 数字投影:用DLP或LCD投影仪投射编码图案。优点是图案可编程,灵活度高。但体积大、功耗高。

4.3 典型产品分析

4.3.1 Intel RealSense D400系列

RealSense D435是我用得最多的深度相机。它采用双目结构光方案,左右两个红外相机加一个红外投影仪。投影仪投射的是不可见的红外散斑。

它的优势很明显:

  • 室内外通用:我曾在正午阳光下测试,深度数据依然可用(虽然精度下降)。
  • 帧率高:最高90fps,适合动态场景。
  • SDK完善:librealsense开源,文档齐全。

但缺点也不少:

  • 近距离盲区:小于0.2米时深度数据完全不可用。
  • 多机干扰:两台RealSense同时工作会互相干扰。我试过用分时同步,但帧率砍半。
  • 精度一般:在1米处精度约±1-2mm,不如激光雷达。

4.3.2 苹果Face ID

Face ID用的是单目结构光,但它的投影仪很特殊——点阵投影器。它通过DOE把激光分成约30000个红外光点,投射到人脸上。

为什么Face ID这么强?

  • 功耗极低:VCSEL激光器效率高,一次扫描只需几毫秒。
  • 体积小:整个模组只有指甲盖大小。
  • 安全性高:用3D人脸做活体检测,照片骗不过去。

但Face ID不是万能的:

  • 工作距离短:只有25-50厘米。远了散斑太稀疏,匹配失败。
  • 不能用于远距离:超过1米基本废了。
  • 封闭生态:你没法拿它做二次开发。
参数 Intel RealSense D435 苹果Face ID
技术方案 双目结构光 单目结构光(点阵)
工作距离 0.2m - 10m 0.25m - 0.5m
深度精度 ±1-2mm @1m ±0.5mm @0.3m
帧率 最高90fps 约30fps
抗环境光 中 弱
开发支持 开源SDK 封闭
典型应用 机器人、SLAM、3D扫描 手机人脸解锁

4.4 优缺点分析

结构光深度相机不是万能的。我总结一下它的优缺点,帮你做选型参考。

4.4.1 优点

  • 精度高:在近距离(<2m)精度优于双目立体视觉。
  • 纹理无关:不依赖物体表面纹理,白墙也能测。
  • 帧率高:可以做到30-90fps,适合动态场景。
  • 成本低:比激光雷达便宜一个数量级。

4.4.2 缺点

  • 环境光敏感:强光下散斑被淹没,深度数据失效。
  • 多机干扰:多台结构光相机同时工作会互相干扰。
  • 近距离盲区:太近时散斑无法聚焦,深度数据不可用。
  • 高反光/透明物体:玻璃、镜面、水面基本测不了。
  • 功耗较高:投影仪需要持续工作,不适合电池供电设备。
重要提醒:如果你要在户外使用结构光相机,一定要加装带通滤光片(只允许投影仪波长通过)。我见过太多人拿掉滤光片去户外测试,结果深度图全是噪点。

4.5 结构光深度相机知识体系

下面这张图把结构光深度相机的核心知识点串起来了。你可以把它当作选型时的检查清单。

结构光深度相机知识体系 结构光深度相机 技术方案 单目结构光 双目结构光 散斑编码 DOE生成 数字投影 典型产品 RealSense Face ID 优点 缺点 精度高 纹理无关 环境光敏感 多机干扰 应用场景 人脸识别 机器人导航 3D扫描 AR/VR 选型建议:近距离高精度选单目结构光(如Face ID),中距离通用场景选双目结构光(如RealSense)

结构光深度相机在机器人、人脸识别、3D扫描领域应用广泛。但选型时一定要考虑你的使用场景——室内还是室外?静态还是动态?近距离还是远距离?没有完美的传感器,只有合适的方案。