📝 摘要

同样是一张深度图,结构光、双目视觉和 iToF 得到距离的方式并不相同。结构光认投影图案,双目视觉找左右图像中的同一点,iToF 则测量调制光往返后的相位变化。这篇面向正在认识或选择深度相机的读者,以实验台上的白色标定板、黑色橡胶垫和金属支架为例,说明三类技术的数据特征、常见失效区域和选型方法。本文先不展开 SDK、ROS2 接入和点云处理。

🎯 三类深度相机到底差在哪里

把三台相机对准同一张实验台:近处是白色标定板,中间是黑色橡胶垫,远处是带反光面的金属支架。三者都能输出深度图,但计算链完全不同:

  • 结构光: 主动投出已知图案,看图案落到物体表面后发生了怎样的位移或变形,再通过三角测量恢复深度。
  • 双目视觉: 左右两台相机同时看场景,寻找同一个点在两幅图中的位置差,再通过三角测量恢复深度。
  • iToF: 主动发出经过调制的近红外光,比较发射光与反射光的相位差,换算光走过的往返距离。
00-depth-technology-overview-orbbec.jpg

图注:结构光与 iToF 的工作方式和应用取舍,读图时重点看两者获取距离的依据;图片来源:Orbbec 官方技术文章,2026。

三类技术都能输出深度图,但空洞、噪声和错误距离往往来自不同原因。 选型不能只看“最大距离”和“分辨率”,还要看纹理、环境光、材质、运动及多相机部署。

🔦 结构光如何从投影图案恢复距离

结构光系统通常由投影器和相机组成。投影器发出条纹、网格或散斑,相机记录图案在物体表面的成像位置。系统已知投影器与相机的相对位置及参考图案,因此可以根据图案位移完成三角测量。

结构光是一个大类。工业扫描仪可能连续投射多组条纹,以多帧换取细节;实时深度相机则常使用单帧编码图案或红外散斑。前者更怕运动,后者仍依赖投影图案被清楚看见。

01-structured-light-principle-clemson.jpg

图注:投影器把条纹投到物体表面,相机观察条纹形变,再通过三角测量恢复表面深度。图中展示的是双相机结构光扫描仪的一种布局,不代表所有结构光相机都使用两台接收相机;图片来源:Clemson University。

哑光白板没有自然纹理,但结构光会主动铺上图案,近距离通常能得到较完整的深度。强日光、过远距离或吸收红外光的黑色材料会降低图案对比度,深度图可能出现空洞;金属强反射则可能造成局部过曝或错误匹配。

结构光还会出现遮挡空洞:投影器照到某处,不代表相机也能看到。物体边缘或凹槽只要有一侧视线被挡住,就可能没有真实测量值。

散斑: 大量不规则亮点组成的投影纹理,用于帮助系统识别不同位置。 遮挡空洞: 投影器和相机不能同时看到同一区域时产生的无效深度。

结构光更适合光照可控、距离相对固定、重视近距离细节的任务。若设备要经过日光、观察更远障碍或多机同时照射同一区域,必须针对性实测。

👀 双目视觉如何用左右视差计算深度

双目视觉更接近人的两只眼睛。左右相机同时拍摄,同一个特征点在两幅图中的横向位置差叫视差。完成标定和校正后,深度可近似写成:

$Z=frac{fB}{d}$

其中,$Z$ 是距离,$f$ 是焦距,$B$ 是基线长度,$d$ 是视差。远处物体视差更小,因此很小的像素误差也可能被放大成明显的距离误差。

02-stereo-disparity-realsense.png

图注:左右相机观察同一场景时,近处目标的横向位移更大;视差图通过三角测量转换为深度图。图片来源:RealSense 官方技术文档。

视差: 同一个场景点在左右图像中的横向像素位置差。 基线: 左右相机光心之间的距离;它会影响近距离盲区、远距离精度和机身体积。

双目系统首先要解决“左右图里的哪两个像素属于同一点”。白板没有纹理时,大块区域看起来几乎相同,算法很难可靠匹配;黑色区域曝光不足也会失败。纹理和照明充分时,被动双目不必主动发光,因此在室外有自己的优势。

不少机器人深度相机使用主动双目:在两台红外相机之外增加投影器,为白墙和地面补上随机纹理。其深度仍来自左右图像匹配,投影器只是帮助寻找对应点。

主动双目与结构光的分界是:

  • 结构光把投影图案作为测量编码,投影器—相机标定直接参与计算。
  • 主动双目仍比较左右图像;关闭投影器后,支持被动模式的系统在有纹理和足够光照时仍可能工作。

双目适合移动机器人和室内外环境感知,但“被动双目能在室外工作”不等于“任何双目都不怕太阳”。曝光、滤光、目标纹理和是否支持被动模式都会改变结果。

⏱️ iToF 如何通过相位差测量往返时间

iToF 是 indirect Time of Flight,即间接飞行时间。它向整个视场发出高频调制的近红外光,由传感器像素测量反射信号相对发射信号滞后了多少相位。

对单个调制频率,距离关系可以简化为:

$Z=frac{cDeltaphi}{4pi f_m}$

其中,$c$ 是光速,$Deltaphi$ 是相位差,$f_m$ 是调制频率。实际产品常用多个调制频率和校正算法扩大范围、降低相位模糊。

图注:iToF 通过比较调制发射光与反射光的相位差计算距离;图片来源:Sony Semiconductor Solutions 官方技术页面。

调制: 按固定频率改变发射光强,让接收端可以比较波形的时间关系。 相位模糊: 相位转过一整圈后会重复;只用一个频率时,不同真实距离可能得到相同相位。

iToF 不需要左右图像匹配,也不依赖可见纹理,因此白板不会造成双目式匹配问题。它能得到整幅视场的距离,适合人体跟踪、空间感知和近中距离避障。

但它仍受材质影响。黑色橡胶吸收近红外光后,像素可能噪声增大或无效;镜面、墙角和凹槽会造成多径干扰;前景边缘同时混入前、背景反射时,还可能出现“飞点”。

社区记录中,Azure Kinect SDK 问题回复把皮肤材料上的系统性偏差解释为一种多径干扰;OrbbecSDK v2 也记录过低反射表面出现无效像素。这说明“iToF 不依赖纹理”不等于“不受反射率影响”,但具体数值仍要按型号实测。

多径干扰(MPI): 光经过墙角、镜面或其他物体多次反射后返回,使测得路径长于真实直线距离。 飞点: 深度边缘附近出现的不稳定离群点,位置可能落在前景与背景之间。

🔀 主动双目、结构光和 iToF 不是按镜头数量简单分类

只数外壳上的镜头和投影器,很难判断技术路线。应查看规格页中的 Depth Technology,再核对文档对深度计算链的说明。

因此,“带红外点阵就是结构光”或“ToF 只有一个镜头”都不可靠。产品还会加入 RGB、IMU、温度补偿和滤波,最终效果不能只从技术名词推断。

📊 同一场景下的工程取舍

下表描述的是常见倾向,不是对所有型号的性能承诺。光学设计、基线、波长、发射功率、传感器分辨率、算法和工作模式都可能让具体产品偏离这些趋势。

RealSense 旧型号的社区问题曾记录多台带投影器设备同时工作后深度下降;其主动双目文档也说明,随机纹理并不像编码结构光那样严格依赖图案。合理结论是:干扰因技术和产品而异,多机部署必须按型号、角度与同步方式验证。

🧭 按机器人任务选择默认起点

概念验证阶段可以先按任务分流,再用实测决定是否更换:

对第一次做通用机器人视觉的开发者,主动双目通常是覆盖面较宽的默认起点:室内可用投影补纹理,条件合适时也能依靠左右图像工作。它未必胜过结构光的固定近距细节,也未必胜过 iToF 的整幅动态深度,但迁移到移动机器人时路线较连贯。

固定室内精细扫描可优先结构光;重视整幅深度与连续跟踪可优先 iToF。无论哪条路线,“最大量程”都不能替代有效像素和误差测试。

🧪 用六组检查代替只看参数表

样机到手后先用厂商 Viewer 或 SDK 示例保存原始深度、红外强度或置信度数据。固定分辨率、帧率、曝光和滤波,再做六组检查:

  1. 距离检查: 把哑光平板放在计划使用的最近、中间和最远距离,每个位置记录至少 100 帧。
  1. 视场检查: 比较画面中心、四角和边缘区域,确认误差与空洞是否明显增加。
  1. 材质检查: 依次放入白色哑光板、黑色橡胶、金属支架和项目中的真实物料。
  1. 光照检查: 分别在普通室内光、关灯、门口强光和实际工作照明下重复采集。
  1. 运动检查: 让相机或目标按真实速度移动,查看拖影、错配、飞点和帧间抖动。
  1. 多机检查: 若项目需要多台相机,让它们同时工作,观察深度完整度是否随开机数量和角度变化。

每组记录平均距离偏差、帧间标准差、有效像素比例和边缘异常点数量,把“看起来还行”变成可比较结果。

准确度: 测量平均值离真实值有多近。 精度: 在条件不变时重复测量有多稳定;稳定但整体偏离真实值,仍然不准确。 有效像素比例: 深度图中得到可信非零距离的像素占比,也常被称为填充率。 📷 截图建议|同一测试板的原始结果 放置位置:完成六组检查之后 类型:团队实测截图,不使用生成图 必须包含:三台候选相机的原始深度图、相同距离区间的色标、中心与边缘 ROI、曝光与滤波状态、真实距离 成功标志:读者能直接比较偏差、帧间波动、有效像素比例和边缘异常,不能只看到经过美化的点云

⚠️ 五个常见判断误区

🧱 深度分辨率高,不等于距离更准

1280 × 800 只说明像素数量,不说明距离值有多准。准确度、帧间噪声、有效像素比例和工作距离要分别查看。

☀️ 主动红外,不等于完全不怕黑或不怕太阳

主动系统能在没有可见光时工作,但黑色材料会吸收近红外,强日光也会压低有效信号。“暗室可用”和“户外可用”是两项测试。

🕳️ 滤波补出的区域,不等于相机真的测到了

滤波和孔洞填充能让画面更平滑,也可能抹掉细小结构或复制邻近距离。避障任务要保留原始数据,确认薄障碍没有被删掉。

📐 深度图,不会自动变成机器人坐标

深度图给出相机坐标下的距离。生成点云还需相机内参;给机器人使用还需外参或 TF 转换坐标。

🏷️ 技术类别,不能代替具体型号评测

同属一种技术的相机,基线、波长、快门和深度模式仍可能不同。技术路线只负责缩小范围,最终要看规格与样机。

❓ 新手经常问的几个问题

🥇 哪一种技术最准确

没有脱离距离、材质和光照的统一答案。固定近距细节可先看结构光,纹理丰富或室外场景可先看双目,整幅动态深度可先看 iToF。

🌞 哪一种最适合室外

被动双目更有机会利用自然纹理;结构光投影易被日光冲淡;iToF 虽可用调制和滤光抗干扰,仍受日光量程与反射率限制。最终以室外实测为准。

📡 iToF 和 LiDAR 是一回事吗

两者都利用光传播来测距,但产品架构不一定相同。常见 iToF 深度相机用面阵像素一次覆盖整个视场,并通过相位解调得到深度;很多 LiDAR 使用扫描光束或脉冲式 dToF 获取空间点。选型时仍要看扫描方式、视场、角分辨率、量程和数据格式。

🧩 主动双目可以直接叫结构光吗

不建议。两者都有可能投射红外纹理,但主动双目的核心计算仍是左右相机匹配,结构光则把已知投影图案与投影器—相机几何关系直接用于测量。把两者混称,会误判多机干扰、标定和室外工作方式。

🔗 接下来可以继续做什么

  • D01 RGB-D 数据采集与显示: 先确认彩色图、深度图和相机参数能够稳定输出。
  • D02 深度相机点云可视化: 用相机内参把深度像素转换为空间点,检查尺度与方向。
  • 深度图是什么? 继续理解深度单位、无效值、对齐和噪声。
  • 点云是什么? 了解深度图如何转换为三维点,以及点云为什么会出现空洞和飞点。

📚 官方资料与社区记录

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注