第二章:结构光系统核心组件
结构光系统,说白了就是一套「光与相机」的精密配合。我做了这么多年3D视觉,见过太多系统出问题,最后发现都是某个组件没选对。今天咱们就把投影系统、相机系统、标定板和同步触发这四块,一个一个拆开讲清楚。
2.1 投影系统:DLP、LCoS、LCD
投影系统是结构光的「光源大脑」。它负责把编码好的条纹图案投射到物体表面。三种主流技术,各有各的脾气。
2.1.1 DLP(数字光处理)
DLP 是目前结构光领域的主流选择。它的核心是一块 DMD 芯片,上面密密麻麻排布着微镜阵列。每个微镜都能独立翻转,实现高速开关。
我个人习惯用 DLP,原因很简单:
- 速度极快:微秒级切换,轻松实现 1000fps 以上的投影速率。我在做高速动态物体扫描时,DLP 是唯一能跟上的方案。
- 对比度高:黑白分明,条纹边缘锐利。这对相位解包裹非常有利。
- 分辨率灵活:从 VGA 到 4K 都有成熟产品。
避坑指南:我曾经在项目中选了一款低端 DLP,结果发现它的微镜翻转角度一致性差,导致投影条纹出现「鬼影」。后来换了 TI 的 DLP4500 系列,问题才解决。选 DLP 时,一定要看微镜的翻转角度公差。
2.1.2 LCoS(硅基液晶)
LCoS 是另一种反射式投影技术。它的像素间距可以做得非常小,所以分辨率上限很高。
- 优点:填充因子高(>90%),画面细腻无网格感。适合需要高分辨率条纹的场景。
- 缺点:响应速度比 DLP 慢,通常在毫秒级。而且液晶有温度漂移问题,需要做补偿。
嗯,这里要注意:LCoS 的偏振特性会限制某些编码方案。如果你用相移法,LCoS 的偏振态变化可能会引入相位误差。
2.1.3 LCD(液晶显示)
LCD 是最便宜的方案,但也是性能最差的。它的液晶分子响应慢,刷新率通常只有 60Hz 左右。
我建议只在实验室验证阶段用 LCD。真正做产品时,LCD 的拖影和低对比度会让你抓狂。你想想看,一个条纹边缘模糊的投影,怎么保证亚像素级的匹配精度?
| 参数 | DLP | LCoS | LCD |
|---|---|---|---|
| 响应速度 | 微秒级 | 毫秒级 | 10ms+ |
| 对比度 | 高(>1000:1) | 中(500:1) | 低(200:1) |
| 分辨率上限 | 4K | 8K+ | 4K |
| 成本 | 高 | 中 | 低 |
| 适用场景 | 高速/高精度 | 高分辨率静态 | 实验室验证 |
2.2 相机系统:CMOS vs CCD
相机是结构光的「眼睛」。选错相机,投影再好也白搭。
2.2.1 CMOS(互补金属氧化物半导体)
CMOS 传感器是目前的主流。它的每个像素都集成放大器,读出速度快,功耗低。
- 全局快门:这是结构光的关键要求。CMOS 的全局快门可以同时曝光所有像素,避免运动模糊。我做过一个抓取流水线零件的项目,用的就是全局快门 CMOS,效果很好。
- 高帧率:轻松实现 100fps 以上,配合 DLP 的高速投影,可以实现实时 3D 重建。
- 噪声问题:CMOS 的固定模式噪声(FPN)比 CCD 高。但现代 CMOS 通过片上校正,已经可以接受。
我的经验:选 CMOS 时,一定要看它的「动态范围」。结构光场景中,物体表面反射率差异很大(比如黑色塑料和白色金属)。动态范围不够,高光区域会过曝,暗区会欠曝,条纹信息就丢了。我一般要求动态范围 > 60dB。
2.2.2 CCD(电荷耦合器件)
CCD 是传统方案,现在用得少了。它的优点是噪声极低,图像均匀性好。
- 缺点:读出速度慢,帧率低。而且 CCD 通常只有卷帘快门,不适合动态场景。
- 适用场景:静态物体的超高精度测量。比如文物扫描、精密零件检测。
说实话,除非你追求极致的信噪比,否则我建议优先选 CMOS。CCD 的卷帘快门在结构光中是个大坑——条纹移动时,卷帘快门会导致图像畸变。
2.3 标定板
标定板是结构光系统的「尺子」。没有它,你的 3D 数据就是一堆乱码。
2.3.1 标定板类型
- 棋盘格:最经典。角点检测简单,鲁棒性好。我习惯用 12x9 的棋盘格,每个格子 20mm。
- 圆点阵:圆心定位精度比角点高,适合高精度标定。但圆点阵对透视畸变敏感,需要小心。
- 编码标定板:每个特征点有唯一编码,可以自动识别。适合多视角系统。
2.3.2 标定板材质
材质会影响标定精度。我踩过坑:
- 陶瓷基板:热膨胀系数小,精度高。但贵。
- 玻璃基板:平整度好,但易碎。
- 亚克力板:便宜,但热变形严重。我曾经在夏天用亚克力板标定,结果温度一高,标定板弯了,标定结果全废。
重要提醒:标定板必须保持平整。我见过有人用手压着标定板拍照,结果标定出来的内参全是错的。标定板要固定在刚性支架上,最好用真空吸附或磁吸。
2.4 同步触发机制
同步触发是结构光系统的「心跳」。投影和相机必须严格同步,否则条纹和图像对不上。
2.4.1 硬件触发
这是最可靠的方式。用 FPGA 或单片机产生触发信号,同时发给投影仪和相机。
// 伪代码示例:FPGA 同步触发逻辑
always @(posedge clk) begin
if (frame_start) begin
projector_trigger <= 1; // 触发投影切换条纹
#10; // 等待投影稳定
camera_trigger <= 1; // 触发相机曝光
#5;
camera_trigger <= 0;
#5;
projector_trigger <= 0;
end
end
我建议用硬件触发,延迟可以控制在纳秒级。软件触发(比如通过 USB 发送指令)的延迟不稳定,容易丢帧。
2.4.2 软件触发
如果硬件条件有限,也可以用软件触发。但要注意:
- 操作系统调度会导致延迟抖动(通常 1-10ms)
- 需要做时间戳对齐
- 不适合高速场景(>30fps)
2.4.3 同步策略
常见的同步策略有两种:
- 投影先触发,相机后触发:等投影条纹稳定后再曝光。适合 DLP 这种快速切换的投影。
- 相机先触发,投影后触发:适合 LCD 这种慢速投影,可以避免拖影。
我个人习惯用第一种。DLP 的微秒级切换,几乎不需要等待。但如果你用 LCD,记得在投影切换后加 10ms 的延迟,等液晶稳定。
2.5 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你可以把它当作选型时的 checklist。
这张图里,四个组件是并列关系,缺一不可。投影和相机决定了你能拍出什么样的条纹图像,标定板决定了你能把图像转换成多精确的 3D 坐标,同步触发则保证了这一切在时间上对齐。
我的建议:刚开始做结构光系统时,先别追求高性能。用 DLP + CMOS 全局快门 + 棋盘格标定板 + 硬件触发,这套组合最稳。等跑通流程了,再根据需求升级组件。
好了,核心组件就讲到这里。下一章咱们聊聊编码策略——怎么设计条纹图案,才能让系统又快又准。