2、深度相机原理:结构光、ToF、双目立体视觉。深度图与RGB图的配准

好,咱们进入第二章。这一章我打算聊聊深度相机的几种主流方案。说白了,就是机器怎么“看”出物体的远近。

你可能用过Kinect、Intel RealSense,或者手机上的结构光人脸解锁。这些设备背后,无非是三种技术路线:结构光、ToF(飞行时间)、双目立体视觉。我这些年做动作捕捉,三种都折腾过,各有各的脾气。

2.1 结构光:投影编码,三角测距

结构光的思路很直接。我朝物体上投射一个已知图案,比如散斑、条纹。然后用一个摄像头拍下这个图案。因为物体表面凹凸不平,图案会变形。通过分析变形量,就能算出深度。

核心原理: 投影仪和摄像头构成一个三角形。已知投影图案的编码,摄像头看到某个点偏移了多少,就能用三角法算出距离。

关键公式(简化版):

深度 Z = (基线距离 B × 焦距 f) / (视差 d)

这里的视差 d,就是投影点与参考点之间的像素偏移。

我在项目中遇到过一个问题:结构光在室外强光下基本就废了。太阳光里的红外成分会淹没投影的散斑。所以,结构光更适合室内、暗光环境。

我的经验: 如果你做近距离(0.3-3米)的人脸或手势识别,结构光精度很高。但别指望它在阳光下干活。

2.2 ToF:直接测光速,简单粗暴

ToF(Time of Flight)就一个字:快。它发射一束调制过的光,然后测量光从发射到返回的时间。光速是已知的,时间差一除,距离就出来了。

两种主流方式:

  • 连续波调制(CW-ToF): 发射正弦波,通过相位差算距离。精度高,抗干扰强。
  • 脉冲调制(Pulse-ToF): 直接测脉冲飞行时间。简单,但需要高精度计时器。

嗯,这里要注意。ToF的精度受限于时间测量分辨率。1纳秒对应30厘米。所以想做到毫米级,需要皮秒级的计时能力。这也是为什么早期ToF芯片贵。

避坑指南: 我曾经在反光物体上吃过亏。ToF遇到镜面、黑胶带,数据会飞掉。因为反射光太强或太弱,接收器饱和了。后来我加了多频调制,才勉强压住噪声。

2.3 双目立体视觉:模仿人眼,纯被动

双目立体视觉,说白了就是模仿人的两只眼睛。两个摄像头相隔一定距离(基线),同时拍下同一场景。然后通过匹配左右图像中的对应点,算出视差,再转成深度。

核心流程:

  1. 标定: 先标定两个相机的内参和外参。
  2. 校正: 把左右图像拉平,让对应点在同一行上。
  3. 匹配: 用块匹配或SGM算法找对应点。
  4. 三角化: 根据视差算深度。

双目最大的优势是:不需要主动光源。所以室外、远距离(几十米)都能用。但缺点也很明显——计算量大,而且对纹理敏感。白墙、光滑地面,匹配算法直接崩溃。

我的经验: 做动作捕捉时,我更喜欢双目+结构光融合。双目提供远距离轮廓,结构光补充近距离细节。别死磕一种方案。

2.4 三种方案对比

特性 结构光 ToF 双目立体视觉
测距方式 三角法 飞行时间 三角法
精度 高(毫米级) 中(厘米级) 中(厘米级)
室外表现
计算量
典型距离 0.3-5米 0.5-10米 0.5-50米
代表产品 Kinect v1, RealSense Kinect v2, iPhone X ZED, 大疆

2.5 深度图与RGB图的配准

拿到深度图还不够。我们做动作捕捉,最终要的是“彩色图像上每个像素的3D坐标”。这就需要把深度图和RGB图对齐。

配准的本质: 把深度相机坐标系下的点,投影到彩色相机坐标系下。

公式很简单:

P_rgb = R * P_depth + T

其中 R 和 T 是深度相机到彩色相机的旋转和平移矩阵。这个矩阵需要通过联合标定得到。

我建议你这样做:

  • 先分别标定深度相机和彩色相机的内参。
  • 然后拍摄一组棋盘格,同时记录深度图和RGB图。
  • 用OpenCV的 stereoCalibrate 函数算出R和T。

避坑指南: 我曾经直接用厂家给的标定参数,结果配准后边缘有重影。后来发现,深度相机和彩色相机之间有微小的温度漂移。建议每次开机后预热5分钟再标定。

配准后的结果,就是一张“对齐的RGB-D图像”。每个像素同时有颜色和深度信息。这是后续姿态估计的基础。

2.6 知识体系总览

下面这张图,是我自己画的。它把三种深度相机原理和配准流程串在了一起。你一看就明白。

深度相机原理与配准知识体系 结构光 ToF 双目立体视觉 投影编码图案 三角法测距 室内高精度 发射调制光 测量飞行时间 速度快、抗干扰 双摄像头匹配 被动测距 室外远距离 深度图与RGB图配准 联合标定 → 旋转平移 → 像素对齐 RGB-D 图像(颜色+深度)

你看,三种方案各有千秋。结构光精度高但怕光,ToF速度快但怕反光,双目不怕光但怕没纹理。配准这一步,就是把它们的深度信息,和彩色图像对齐,为后续的姿态估计打好基础。

好了,这一章就到这里。记住:没有完美的深度相机,只有合适的方案。选型时多想想你的场景——室内还是室外?近距离还是远距离?动还是静?想清楚了,再动手。

专注资料整理