一、结构光技术概述

结构光技术,说白了就是给物体「打光」来测三维。我刚开始接触这个方向时,觉得它挺神奇的——一束光打过去,物体的形状就出来了。其实原理并不复杂,今天咱们就把它彻底讲透。

1.1 结构光三维成像原理

结构光的基本思路是这样的:

  • 投影:用投影仪打出特定图案的光(比如条纹、网格)
  • 拍摄:用相机拍下被物体表面调制后的图案
  • 解码:分析图案的变形量,算出每个点的深度

你想想看,如果打一束平行光到平面上,拍到的条纹是笔直的。但如果打到人脸或工件上,条纹就会跟着表面起伏而弯曲。这个弯曲量,就是深度的线索。

核心公式(三角测量法):

Z = (f × B) / (d + f × tanθ)

其中 Z 是深度,B 是基线距离,f 是焦距,d 是视差,θ 是投影角度。

说白了,这就是一个「已知两边一角,求第三边」的几何问题。

我在项目中遇到过不少新人,一上来就死磕公式。我建议你先理解几何关系,公式自然就记住了。

💡 个人经验: 实际工程中,标定比公式推导更重要。相机和投影仪的内外参标定不准,再好的算法也白搭。我曾经因为标定板不平整,浪费了整整两周时间。

1.2 结构光分类

结构光按投影图案的维度,可以分为三类。我按实际工程中遇到的频率来排个序:

类型 投影图案 单帧点数 典型应用 我遇到的坑
点结构光 单个光点 1 激光测距、避障 环境光干扰严重
线结构光 一条光条 数百 焊缝跟踪、轮廓测量 高反光表面容易过曝
面结构光 条纹/编码图案 百万级 人脸识别、工业检测 运动模糊是老大难

点结构光

就是打一个点出去,测这个点的距离。简单粗暴,但效率低。扫地机器人上用的就是这种,一次只能测一个点,所以得来回扫。

线结构光

打一条线出去,一次能测几百个点。工业上做焊缝跟踪时很常用。我记得有一次在产线上调试,工件表面反光太强,光条都看不清了。后来换了蓝色激光+窄带滤光片才搞定。

面结构光

这是目前的主流。一次投影就能获取整个面的深度信息。iPhone 的 Face ID 用的就是面结构光,只不过它用的是点阵投影器,算是面结构光的一种变体。

⚠️ 避坑指南: 面结构光虽然快,但对运动敏感。我曾经在做人脸活体检测时,用户稍微动一下,条纹就糊了。后来我加了同步触发和短曝光,才把这个问题压下去。

1.3 结构光技术发展历史

结构光不是新东西,它的发展脉络我简单梳理一下:

  • 1970s-1980s:实验室阶段。用激光点或线做简单测距,精度低、速度慢。
  • 1990s:编码结构光出现。开始用格雷码、相移法来提高精度。
  • 2000s:数字投影仪普及。DLP 投影让面结构光变得实用。
  • 2010s:消费级爆发。Kinect v1、Intel RealSense 让结构光走进千家万户。
  • 2020s:高精度+小型化。手机人脸识别、AR/VR 深度传感成为主流。

我个人觉得,2010 年 Kinect 的发布是个分水岭。在那之前,结构光主要用在工业和高精度测量领域,一套设备动辄几十万。Kinect 把价格打到了几百块,虽然精度一般,但让更多人开始研究这个方向。

1.4 主流应用场景

人脸识别

这个大家最熟悉。iPhone 的 Face ID 就是典型的面结构光方案。它投影 30000 多个红外点阵到脸上,然后通过计算点的变形来重建人脸三维模型。

我做过一个对比测试:在完全黑暗的环境下,结构光方案依然能正常工作,而普通 RGB 摄像头就抓瞎了。这就是主动光的优势——不依赖环境光。

工业检测

工业上对精度的要求比消费级高得多。我参与过一个手机中框平整度检测项目,要求精度达到 0.01mm。我们用了高分辨率面结构光+多频相移法,配合精密运动平台,才勉强达标。

这里有个经验:工业检测中,环境光隔离振动抑制往往比算法本身更重要。我曾经在产线上调试,发现数据总是有周期性波动,排查了三天才发现是旁边的空调压缩机引起的微振动。

AR/VR

AR/VR 设备需要实时感知周围环境,结构光在这里扮演了「眼睛」的角色。比如 HoloLens 就用了结构光来做手部追踪和空间映射。

AR/VR 对功耗和体积要求极高。我见过一些方案为了省电,把投影帧率降到 15fps,结果手部追踪延迟明显,用户体验很差。嗯,这里要注意,帧率和延迟的平衡是个需要仔细权衡的问题。

📊 应用场景对比:

  • 人脸识别:精度中等(0.1-1mm),速度要求高(<50ms),成本敏感
  • 工业检测:精度极高(0.01-0.1mm),速度中等,成本不敏感
  • AR/VR:精度中等(1-5mm),速度要求极高(<10ms),功耗敏感

1.5 本章知识体系

下面这张图是我自己整理的,把本章的核心逻辑串起来了。你可以把它当作一个「思维导图」来用:

结构光技术 成像原理:三角测量法 投影 → 拍摄 → 解码 → 深度计算 分类(按维度) 点结构光(1点) 线结构光(数百点) 面结构光(百万点) 发展历史 1970s:实验室 → 1990s:编码 2000s:DLP普及 → 2010s:消费级 2020s:小型化+高精度 主流应用场景 人脸识别(Face ID) 工业检测(高精度) AR/VR(空间感知) 核心:三角测量 + 编码解码 + 标定

这张图把原理、分类、历史、应用四个维度串在了一起。你面试时如果能这样把知识体系讲清楚,面试官会觉得你是有全局观的。

📌 面试小贴士: 面试官问「结构光是什么」时,不要只背定义。你可以说:「结构光本质上是一个三角测量问题,我把它分为点、线、面三类,其中面结构光在消费级应用最广,比如 Face ID。我在工业检测项目中用过面结构光,精度能做到 0.01mm 级别。」这样既有广度又有深度。


公众号:蓝海资料掘金营,微信deep3321