一、结构光三维重建概述

1.1 什么是结构光?

结构光,说白了就是「主动投射已知图案,再从相机拍回来的图像中解算深度」。你想想看,人眼靠双目视差感知距离,但遇到光滑白墙就抓瞎了——因为没有纹理特征可以匹配。结构光就是干这个的:我主动往物体上打光,把「特征」硬塞给场景。

我习惯把结构光系统比作「光学尺子」。投影仪投出编码好的光条纹,相当于在空间里刻上了刻度。相机拍下被物体调制后的变形图案,通过分析条纹的弯曲、断裂、位移,就能算出每个像素对应的三维坐标。

核心公式(三角测量原理):

Z = (B * f) / (d + Δd)

其中 B 是基线距离,f 是相机焦距,d 是标定得到的初始偏移,Δd 是条纹位移量。嗯,公式看着简单,但实际工程里光标定这一步就能折腾掉你一周时间。

1.2 发展历程:从实验室到消费电子

结构光技术其实不新。我记得最早接触这个方向是在2010年左右,那时候用的还是「相移法+格雷码」的组合,投影仪得是DLP的,帧率低得可怜,拍一个物体要好几秒。

  • 1980s-1990s: 学术探索期。主要用单条纹扫描,精度高但速度慢。那时候一篇论文能发顶刊,因为硬件限制太大。
  • 2000s: DLP投影仪普及,相移法开始实用化。我2012年做过一个项目,用德州仪器的LightCrafter投影仪,勉强能做到实时重建——但分辨率只有640×480。
  • 2013年: 苹果收购PrimeSense,结构光开始进入消费电子。Kinect v1用的就是散斑结构光,虽然精度一般,但让全世界看到了「低成本3D感知」的可能性。
  • 2017年至今: iPhone X的Face ID把结构光推向巅峰。VCSEL激光器+DOE衍射光学元件,把整个系统缩小到指甲盖大小。嗯,这里有个坑——消费级结构光为了小型化,牺牲了很大一部分精度。

个人经验: 如果你现在要选方案,工业检测建议用「相移法+多频外差」,消费电子用「散斑结构光」。我曾经在两个方案之间反复横跳,最后发现没有银弹,只有最适合场景的。

1.3 应用领域:结构光到底能干啥?

结构光的应用范围比大多数人想象的要广。我把它分成三大类:

工业检测

这是结构光最「正统」的应用场景。PCB焊点检测、汽车钣金件形变测量、手机中框平面度检测……说白了就是「用光代替卡尺」。我做过一个锂电池极片涂布检测项目,要求精度0.02mm,最后用的就是双目光栅结构光。

人脸识别与生物特征

Face ID带火了这个方向。但你要知道,结构光做人脸识别有个天然优势:它不怕光照变化。普通RGB相机在逆光下基本废掉,但结构光主动发光,黑夜也能用。我2018年帮客户调过一款门禁设备,室内外切换时识别率从92%掉到67%,最后发现是环境红外干扰——加了个带通滤波器就解决了。

AR/VR与三维建模

这个方向最近很火。结构光可以快速获取物体表面点云,用于虚拟试衣、文物数字化、游戏资产制作。但说实话,消费级结构光的精度做精细建模还是不够——我试过用iPhone的LiDAR(虽然它是ToF)扫描人脸,毛孔细节完全丢失。

应用领域 典型精度要求 推荐方案 我的踩坑记录
工业检测 0.01-0.1mm 双目光栅 标定板不平导致全局误差
人脸识别 1-3mm 散斑结构光 环境红外干扰
AR/VR 0.5-2mm 单目+散斑 运动模糊严重
文物数字化 0.05-0.2mm 相移法+多频 高反表面难处理

1.4 主流方案对比:单目、双目、散斑

很多新手问我:「到底选单目还是双目?」我的回答是:先搞清楚你的约束条件。

单目结构光

一个相机+一个投影仪。优点是结构简单、成本低。缺点是必须标定投影仪的内参,而且对投影仪的畸变很敏感。我2015年做过一个单目方案,投影仪用的是普通商用投影仪,畸变大到离谱——后来换了工业投影仪才搞定。

双目结构光

两个相机+一个投影仪。说白了就是「双目立体视觉+主动纹理投影」。优点是鲁棒性好,两个相机互为冗余。缺点是标定复杂——你需要标定两个相机之间的外参,还要标定投影仪和每个相机的关系。我曾经因为标定板温度变化导致热膨胀,标定结果漂移了0.3mm。

散斑结构光

一个红外相机+一个VCSEL激光器+DOE。这是消费电子的主流方案。优点是体积小、功耗低。缺点是精度有限(通常1-3mm),而且散斑图案是固定的,遇到高反光表面容易失效。

避坑指南: 我曾经在散斑方案上栽过跟头——以为散斑是「万能方案」,结果遇到黑色塑料件直接翻车。黑色吸光,散斑对比度不够,匹配算法直接崩溃。后来加了偏振片才勉强能用。

1.5 知识体系总览

下面这张图是我自己整理的「结构光三维重建知识体系」。你跟着这个框架学,不会走偏。

结构光三维重建知识体系 核心原理:三角测量 硬件系统设计 编码与解码算法 标定与校准 硬件子系统 • 投影仪选型(DLP/LCoS) • 相机选型(CMOS/CCD) • 光学设计(镜头/滤光片) 算法子系统 • 相移法(3步/4步/多频) • 格雷码+相移混合 • 散斑匹配(NCC/SAD) 标定子系统 • 相机内参标定(张正友法) • 投影仪标定(相位法) • 系统外参标定 输出:三维点云 / 深度图 工业检测 | 人脸识别 | AR/VR | 文物数字化 | 机器人导航

这张图我画了好几个版本才定稿。你注意看,整个体系是「原理→模块→子模块→输出→应用」的递进关系。我建议你按照这个框架来学习,先搞懂三角测量原理,再分别攻克硬件、算法、标定三大块。

本章小结:

结构光不是什么黑魔法,它就是「主动投射+三角测量」的工程实现。选方案时记住三点:

  • 要精度选双目光栅,要体积选散斑
  • 标定是最大的坑,预留足够时间
  • 没有万能方案,只有最适合场景的方案

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