一、结构光三维重建概述
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 知识体系总览
下面这张图是我自己整理的「结构光三维重建知识体系」。你跟着这个框架学,不会走偏。
这张图我画了好几个版本才定稿。你注意看,整个体系是「原理→模块→子模块→输出→应用」的递进关系。我建议你按照这个框架来学习,先搞懂三角测量原理,再分别攻克硬件、算法、标定三大块。
本章小结:
结构光不是什么黑魔法,它就是「主动投射+三角测量」的工程实现。选方案时记住三点:
- 要精度选双目光栅,要体积选散斑
- 标定是最大的坑,预留足够时间
- 没有万能方案,只有最适合场景的方案
公众号:蓝海资料掘金营,微信deep3321