4、结构光深度相机详解:单目/双目结构光原理、散斑编码技术、典型产品(Intel RealSense、苹果Face ID)、优缺点分析。
结构光深度相机,说白了就是主动投射已知图案,然后通过观察图案的变形来推算深度。我最早接触这个技术是在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 散斑编码技术
散斑,就是随机分布的红外光斑。你想想看,如果投射的是均匀光,那物体表面没有特征点,双目匹配根本没法做。散斑的作用就是给物体表面“纹身”,让每个局部区域都有独一无二的图案。
散斑编码有几个关键指标:
- 散斑密度:每平方毫米多少个光斑。密度越高,匹配精度越高,但计算量也越大。
- 散斑随机性:光斑位置必须是伪随机的,不能有周期性。否则会出现匹配歧义。
- 散斑对比度:光斑和背景的亮度差。对比度越高,越容易检测。
散斑的生成方式有两种:
- 衍射光学元件(DOE):用激光通过衍射光栅生成散斑。优点是功耗低、体积小。苹果Face ID用的就是这种。
- 数字投影:用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 结构光深度相机知识体系
下面这张图把结构光深度相机的核心知识点串起来了。你可以把它当作选型时的检查清单。
结构光深度相机在机器人、人脸识别、3D扫描领域应用广泛。但选型时一定要考虑你的使用场景——室内还是室外?静态还是动态?近距离还是远距离?没有完美的传感器,只有合适的方案。