一、深度相机概述

1.1 什么是深度相机

深度相机,说白了就是能「看」出物体距离的相机。

普通相机拍出来的是二维图像——只有颜色和亮度信息。你看到一张照片,知道这是红色的苹果、那是蓝色的杯子,但你不知道苹果离你多远,杯子又在哪里。深度相机不一样,它每个像素点都记录了一个距离值,单位通常是毫米。

我刚开始接触这个领域时,总觉得深度相机就是「高级点的摄像头」。后来在项目里吃过亏才明白——深度相机输出的不是图像,而是三维点云数据。每个点都包含 (x, y, z) 三个坐标信息,这才是它真正的价值所在。

核心概念:深度相机 = 传统相机 + 距离测量能力。输出的是深度图(Depth Map),每个像素值代表该点到相机的距离。

1.2 深度相机的工作原理

目前主流的深度相机技术有三种:ToF、结构光、双目立体视觉。我一个个说。

1.2.1 ToF(飞行时间法)

ToF的原理特别简单——发射光脉冲,测量光往返的时间。光速是已知的,时间测出来了,距离自然就出来了。

公式也很直接:

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

为什么要除以2?因为光走了个来回,从相机到物体,再从物体回到相机。

我在项目中用过ToF相机做AGV避障。说实话,ToF最大的优点是速度快,能到30fps甚至更高。但有个坑——多路径干扰。光线在物体之间来回反射,会导致测量值偏大。我曾经在玻璃幕墙的环境里调试,深度图上一片混乱,后来加了遮光罩才勉强能用。

我的经验:ToF适合室内中短距离(0.3m-10m),室外强光下性能会下降。选型时注意看调制频率,频率越高精度越好,但功耗也越大。

1.2.2 结构光

结构光的思路是——投射已知图案,通过图案变形推算深度

你想想看,如果我在墙上投一个网格,墙是平的,网格就是规规矩矩的。如果墙上有凸起,网格就会扭曲。通过分析扭曲程度,就能算出每个点的深度。

结构光的典型代表是微软的Kinect v1和苹果的Face ID。我拆过Kinect v1,里面有个红外投影仪,投射的是伪随机散斑图案。接收端用红外摄像头拍摄,然后和存储的参考图案做匹配。

注意:结构光在室外基本不能用。太阳光里的红外成分会淹没投影图案。我试过在正午阳光下用结构光相机,深度图全是噪点,根本没法看。

1.2.3 双目立体视觉

双目立体视觉模仿的是人眼——两个摄像头从不同角度拍摄,通过视差计算深度

原理是这样的:左眼和右眼看到的同一个物体,位置会有偏移。这个偏移量叫视差。物体越近,视差越大;物体越远,视差越小。

计算公式:

深度 = (焦距 × 基线距离) / 视差

其中基线距离就是两个摄像头中心之间的距离。

双目视觉有个好处——不需要主动光源,室内室外都能用。但缺点也很明显:计算量大。每帧图像都要做立体匹配,对算力要求高。我做过一个嵌入式项目,用ARM Cortex-A72跑双目算法,640×480的分辨率只能跑到10fps,后来换了GPU才到30fps。

技术类型 测距范围 精度 帧率 室外可用性 典型功耗
ToF 0.3m - 10m ±1cm @ 3m 30-60fps 一般(强光下降) 1-3W
结构光 0.1m - 5m ±0.5mm @ 1m 15-30fps 差(室外不可用) 2-5W
双目立体视觉 0.5m - 20m+ ±2cm @ 3m 10-30fps(依赖算力) 0.5-2W(不含计算)

1.3 深度相机的主要应用领域

深度相机的应用场景,我归纳为四大类:

1.3.1 机器人导航与避障

这是我最熟悉的领域。AGV、扫地机器人、无人机,都需要知道周围环境的三维信息。深度相机可以实时构建障碍物地图,让机器人知道哪里能走、哪里不能走。

我记得有个项目,客户要求AGV在仓库里自主导航。我们用双目相机做SLAM,配合IMU做姿态估计。一开始精度不够,AGV老是撞货架。后来发现是相机标定出了问题——两个摄像头的相对位置有0.1mm的偏差,导致深度计算全偏了。重新标定后,问题解决。

1.3.2 人脸识别与生物识别

苹果的Face ID就是结构光深度相机的典型应用。普通摄像头做人脸识别,容易被照片、视频欺骗。深度相机能检测人脸的三维轮廓,活体检测能力大幅提升。

我参与过一个人脸支付项目,用的就是ToF相机。当时遇到的问题是——戴眼镜的人识别率低。因为眼镜片会反射红外光,导致深度图出现空洞。后来我们做了眼镜检测和深度补全算法,才把通过率提上去。

1.3.3 工业检测与测量

在工厂里,深度相机可以用来检测产品尺寸、表面平整度、装配间隙等。精度要求高的场景,一般用结构光或激光三角法。

我见过一个案例:用双目相机检测手机屏幕的平整度。屏幕放在流水线上,相机从上方拍摄,通过深度图判断屏幕有没有翘曲。检测精度要求0.1mm,双目相机勉强能做到,但需要非常严格的标定和稳定的光照环境。

1.3.4 AR/VR与手势识别

AR/VR设备需要知道用户的手在空间中的位置,才能实现交互。深度相机可以实时捕捉手部骨骼点,识别手势动作。

我试过用ToF相机做手势控制无人机。说实话,效果一般——手速快了就丢帧,而且手部边缘的深度数据不稳定。后来改用双目+深度学习,效果好了不少,但延迟还是有点高。

总结一下:深度相机的选型没有「最好」,只有「最合适」。室内短距离高精度选结构光,中远距离实时性要求高选ToF,室外或大范围场景选双目。具体选哪个,得看你的应用场景和预算。

深度相机技术体系 深度相机 ToF 飞行时间法 结构光 双目立体视觉 发射光脉冲 测量往返时间 计算距离 投射已知图案 分析图案变形 推算深度 双视角拍摄 计算视差 三角测量 主要应用领域 机器人导航 避障/SLAM 生物识别 人脸/活体检测 工业检测 尺寸/平整度 AR/VR交互 手势/空间定位

专注资料整理