第二章:结构光系统硬件组成

做结构光这么多年,我经常被问到:「老师,投影仪和相机到底怎么选?」

说实话,这个问题没有标准答案。但有一点我可以肯定——硬件选错了,算法再牛也白搭。今天我就把投影仪、相机、同步触发和标定板这四块硬骨头,掰开了讲给你听。

2.1 投影仪:DLP vs LCoS

投影仪是结构光系统的「光源」。它负责把编码好的图案投射到物体表面。目前主流方案就两种:DLP 和 LCoS。

2.1.1 DLP(数字光处理)

DLP 的核心是 DMD 芯片——一个布满微镜的半导体器件。每个微镜代表一个像素,每秒可以翻转数千次。

我个人习惯用 DLP,原因很简单:速度快。DLP 的刷新率可以做到 1000Hz 以上,非常适合高速三维扫描。

DLP 关键参数:

  • 分辨率:常见 1024×768、1920×1080
  • 刷新率:最高可达 20kHz(二进制模式)
  • 对比度:1000:1 ~ 3000:1
  • 波长:LED 或激光光源,常用 450nm 蓝光

我在项目中遇到过一个问题:DLP 投影仪在高温环境下,DMD 微镜容易卡死。后来我们加了主动散热,才把故障率降下来。

2.1.2 LCoS(硅基液晶)

LCoS 是另一种技术路线。它用液晶层代替微镜,通过电压控制液晶分子的偏转来调制光强。

LCoS 的优势是分辨率高、像素间距小。你想想看,同样尺寸的芯片,LCoS 可以做到 4K 甚至 8K 分辨率。但它的刷新率不如 DLP,一般只有 60~240Hz。

对比项 DLP LCoS
刷新率 高(1000Hz+) 低(60~240Hz)
分辨率 中等(1080p 常见) 高(4K 起步)
对比度 中等 高(5000:1+)
成本 中等 较高
适用场景 高速扫描、动态测量 高精度、静态测量

我的建议:如果你做的是工业在线检测,选 DLP。如果是文物数字化、医疗建模这类对精度要求极高的场景,LCoS 更合适。

2.2 相机:工业相机 vs CMOS

相机负责采集被物体调制后的条纹图案。说白了,它就是系统的「眼睛」。

2.2.1 工业相机

工业相机用的是 CCD 或全局快门 CMOS 传感器。它的特点是:

  • 全局快门:所有像素同时曝光,不会产生运动模糊
  • 高帧率:常见 60~500fps
  • 触发接口:支持硬件触发,精准同步
  • 数据传输:GigE、USB3.0、Camera Link

我记得有一次做产线项目,用的就是工业相机。当时被测物体在传送带上以 2m/s 的速度移动,普通相机根本拍不清楚。换了全局快门工业相机后,条纹图像清晰得像静止一样。

2.2.2 消费级 CMOS

消费级 CMOS 就是手机、单反里用的那种传感器。它采用卷帘快门,像素逐行曝光。

为什么我不推荐用消费级 CMOS 做结构光?原因很简单:卷帘快门会导致条纹变形。你想想看,如果投影仪在闪,相机在逐行扫描,那拍出来的条纹就是歪的。

避坑指南:我曾经用索尼 A7 系列相机做过实验,结果发现条纹相位误差高达 0.3 个周期。这个误差在三维重建中会直接导致毫米级的测量偏差。所以,老老实实用工业相机吧。

2.3 同步触发机制

同步触发是结构光系统的「节拍器」。投影仪和相机必须严格同步,否则拍出来的图案是乱的。

常见的同步方式有三种:

  1. 硬件触发(推荐):投影仪输出一个触发信号,相机收到信号后开始曝光。延迟可以控制在微秒级。
  2. 软件触发:通过上位机发送指令,同时控制投影和相机。延迟较大,适合低速场景。
  3. 自由运行:投影仪和相机各自按自己的节奏工作,后期通过时间戳对齐。不推荐用于高精度测量。

我个人习惯用硬件触发。具体做法是:把投影仪的 VSYNC 信号接到相机的触发输入引脚。这样每投影一帧,相机就拍一帧,完美同步。

同步时序示例:

投影仪 VSYNC  ──┬──┬──┬──┬──┬──┬──
                  │  │  │  │  │  │
相机触发信号 ──┘  └──┘  └──┘  └──┘
                  │  │  │  │  │  │
相机曝光时间 ─────┘  └────┘  └────┘

这里要注意:曝光时间不能超过投影周期。否则下一帧图案已经投出来了,上一帧还没拍完,就会串扰。

2.4 标定板选择

标定板是系统校准的「尺子」。没有它,你测出来的三维坐标就是错的。

常见的标定板类型:

类型 特点 适用场景
棋盘格 角点检测简单,鲁棒性好 通用标定
圆点阵列 圆心定位精度高 高精度标定
编码标定板 自带 ID,可自动识别 多视角标定
陶瓷标定板 热膨胀系数低,尺寸稳定 高温环境

我建议初学者先用棋盘格。为什么?因为 OpenCV 的 findChessboardCorners 函数非常成熟,上手快。等你有经验了,再换圆点阵列提升精度。

标定板使用技巧:

  • 标定板要平整,不能有弯曲
  • 拍摄时,标定板要占画面 1/3 以上
  • 至少拍 15~20 张不同角度的图像
  • 避免反光,可以用哑光材质

我曾经遇到过一个坑:用亚克力材质的标定板,结果在 LED 灯光下反光严重,角点检测总是失败。后来换了陶瓷标定板,问题才解决。

2.5 系统硬件架构图

下面这张图是我自己画的系统架构。它展示了投影仪、相机、同步触发和标定板之间的关系。

结构光系统硬件架构图 计算机(上位机) 投影仪(DLP/LCoS) 工业相机(CMOS) 被测物体 标定板 (棋盘格/圆点) 控制指令 图像数据 同步触发信号(硬件触发) 投影图案 反射图像 标定关系 图例: 数据/控制线 同步触发线 光学路径 标定关系

从这张图你可以看到:计算机控制投影仪和相机,同步触发信号确保两者步调一致。投影仪把编码图案打到物体上,相机拍下变形后的图案。标定板则用于建立像素坐标和世界坐标之间的映射关系。

2.6 硬件选型总结

说了这么多,我帮你总结一下:

  • 投影仪:高速选 DLP,高精度选 LCoS
  • 相机:必须用全局快门工业相机
  • 同步触发:硬件触发是首选,别偷懒
  • 标定板:新手用棋盘格,老手用圆点阵列

硬件选型没有绝对的对错,关键看你的应用场景。我见过有人用 200 块的投影仪加 5000 块的相机,也做过 10 万一套的进口系统。适合自己的,才是最好的。