第二章:硬件选型实战——相机、投影仪与镜头焦距计算

大家好,我是老张。做结构光这些年,我踩过最多的坑,就是硬件选型。很多人觉得算法是核心,硬件差不多就行。说实话,我以前也这么想,直到有一次项目交付,相机帧率不够,投影仪亮度不足,整个系统在产线上根本跑不起来……那叫一个惨。

今天咱们就聊聊硬件选型。我尽量把实战中那些「书上不写、但你必须知道」的东西讲透。

2.1 相机选型:分辨率、帧率与全局快门

相机是结构光系统的「眼睛」。选错了,后面算法再牛也白搭。

2.1.1 分辨率:不是越高越好

很多人一上来就问:「我要不要买5000万像素的?」我的回答是:看你的测量精度和视场。

分辨率决定了你能分辨的最小细节。但分辨率越高,数据量越大,处理速度越慢。我见过一个团队用1200万像素的相机做在线检测,结果帧率只有5fps,产线根本跟不上。

这里有个经验公式:

单像素精度 = 视场宽度 / 相机水平分辨率

例如:视场宽100mm,相机分辨率1920像素
单像素精度 ≈ 100 / 1920 ≈ 0.052mm

实际测量精度 ≈ 单像素精度 × 子像素插值系数(通常0.1~0.3)

我个人习惯:先确定需要的测量精度,再反推分辨率。比如你要测0.1mm的台阶,单像素精度至少0.05mm,那分辨率至少2000像素以上。

小技巧:别盲目追求高分辨率。200万~500万像素是结构光系统最常用的区间。再高,你的传输带宽和存储都会成为瓶颈。

2.1.2 帧率:决定你的测量速度

帧率就是相机每秒能拍多少张。对于静态测量,10fps都够用。但如果是动态场景——比如流水线上的工件——帧率就非常关键。

我记得有一次做手机中框检测,产线速度是每秒2个工件。我算了一下:每个工件需要拍3张条纹图,加上1张纹理图,总共4张。如果帧率30fps,那每秒最多处理7.5个工件,勉强够用。但实际还要考虑传输延迟、触发抖动……最后我选了60fps的相机,留了余量。

选帧率时,记住这个公式:

所需帧率 ≥ 被测物体移动速度 / 视场宽度 × 每件所需图像数 × 安全系数(1.5~2)

2.1.3 全局快门:结构光的「命根子」

这一点我必须强调:做结构光,一定要用全局快门相机

为什么?因为投影仪投射的条纹是高速变化的。如果用卷帘快门,每一行像素的曝光时间不同,拍出来的条纹会扭曲变形。你想想看,条纹都歪了,相位解出来能准吗?

避坑指南:我曾经有个学生,贪便宜买了卷帘快门的工业相机。结果拍出来的条纹图,边缘全是锯齿。折腾了两周,换了全局快门相机,问题立刻解决。这个坑,我替你们踩过了。

全局快门还有一个好处:适合闪光灯同步。你可以用极短的曝光时间(比如100μs)冻结运动,配合高亮投影,效果非常好。

2.2 投影仪选型:亮度、对比度与DLP技术

投影仪是结构光的「画笔」。画得清不清楚,直接影响重建质量。

2.2.1 亮度:不是越亮越好,但要够亮

亮度决定了你的系统能适应多强的环境光。在暗室中,几十流明都够用。但在产线上,环境光可能几百甚至上千勒克斯。

我做过一个汽车钣金检测项目,现场有强光照明。一开始用500流明的投影仪,条纹几乎被环境光淹没了。后来换了3000流明的DLP投影仪,才勉强能用。

选亮度时,我一般这样估算:

所需投影亮度 ≈ 环境光照度 × 被测物体反射率 × 安全系数(3~5)

例如:环境光500 lux,反射率0.3,安全系数4
所需亮度 ≈ 500 × 0.3 × 4 = 600 lux(约等于600流明/平方米)
核心观点:亮度不是越高越好。太高了,投影仪发热大、寿命短。够用就行,留20%~30%余量。

2.2.2 对比度:决定条纹的「黑白分明」

对比度越高,条纹的明暗差异越大,相位解算越稳定。DLP投影仪的对比度通常在1000:1到10000:1之间。

我个人建议:对比度至少2000:1。低于这个值,在测量高反光物体(如金属、陶瓷)时,条纹会被反射光淹没,导致解相失败。

我记得有一次测不锈钢工件,表面反光特别强。用1000:1的投影仪,条纹几乎看不见。后来换了5000:1的DLP,配合偏振片,才把条纹拍清楚。

2.2.3 DLP技术:为什么是结构光的最佳选择

DLP(数字光处理)技术,说白了就是用微镜阵列来反射光。它的优势在于:

  • 高速切换:微镜可以每秒切换几千次,适合高速条纹投影
  • 高灰度级:8位、10位甚至12位灰度,条纹更平滑
  • 高可靠性:没有LCD的液晶老化问题,寿命长

目前市面上主流的结构光投影仪,几乎都是DLP方案。如果你预算有限,也可以用LCD投影仪,但要注意:LCD的响应速度慢,灰度非线性严重,需要做额外的校准。

我的建议:预算允许的话,直接上DLP。省下的校准时间,够你多喝几杯咖啡了。

2.3 镜头焦距计算:让视场和景深匹配

镜头选型,说白了就是算焦距。焦距决定了视场角和景深。

2.3.1 焦距与视场的关系

公式很简单:

焦距 f = 传感器宽度 / (2 × tan(视场角/2))

或者更实用的:
f = 传感器宽度 × 工作距离 / 视场宽度

举个例子:

传感器宽度:6.4mm(1/2英寸传感器)
工作距离:500mm
期望视场宽度:200mm

f = 6.4 × 500 / 200 = 16mm

所以,选16mm焦距的镜头就对了。

2.3.2 景深:别让被测物体「跑出焦」

景深就是清晰成像的深度范围。结构光测量中,如果被测物体有高度差,景深不够的话,边缘就会模糊。

景深公式:

景深 ≈ 2 × 光圈F值 × 容许弥散圆直径 × (工作距离² / 焦距²)

嗯,这个公式有点复杂。我一般直接用经验:

  • 短焦距(< 8mm):景深大,适合大视场、大高度差
  • 中焦距(8~25mm):景深适中,最常用
  • 长焦距(> 25mm):景深小,适合小视场、高精度
避坑指南:我曾经在一个项目中,用了25mm的镜头,工作距离只有300mm。结果被测物体高度差10mm,边缘就虚了。后来换了16mm镜头,景深大了,但分辨率也降了。这就是取舍。

2.4 知识体系总览

下面这张图,是我自己总结的硬件选型逻辑。你可以把它当作一个检查清单:

结构光硬件选型知识体系 硬件选型 相机选型 投影仪选型 镜头焦距计算 分辨率:精度反推 帧率:产线速度匹配 全局快门:必须 亮度:环境光+余量 对比度:≥2000:1 DLP技术:首选 焦距:视场+工作距离 景深:高度差匹配 光圈:亮度与景深平衡 核心原则:精度、速度、环境光,三者平衡 先定需求,再选硬件,最后调参

2.5 实战总结

说了这么多,我最后给你一个「傻瓜式」的选型流程:

  1. 定精度:先确定你要测多准,反推相机分辨率
  2. 定速度:看产线或被测物体移动速度,算帧率
  3. 定环境:现场环境光多强?选够亮的投影仪
  4. 定视场:工作距离和视场大小,算镜头焦距
  5. 定景深:被测物体高度差多大?确认景深够用

嗯,这套流程我用了好几年,基本没出过大错。你照着做,至少能避开80%的坑。

剩下的20%,就得靠实战积累了。比如高反光物体怎么处理?多投影仪怎么同步?这些我们后面章节再聊。


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