
做机器视觉这行最常听到的一句话就是项目最后还是死在光源上。我入行前几年不信邪觉得算法调一调总能补救直到连续做了三个项目都在现场打光环节翻车才彻底明白一个道理——图像不干净后面的算法全是给脏数据打工。这篇是《机器视觉技术十讲》的第二讲我就把光学系统设计这块掰开揉碎了讲重点是讲清楚为什么“光”能决定一个项目的生死以及我们在现场到底该怎么选光源、怎么打角度、怎么配镜头才能让图像稳定得像实验室里一样。1. 先理解“光”在机器视觉里的底层地位它是信号源不是氛围灯1.1 图像质量差导致的连环灾难先看一个我亲历的项目某3C零部件外观检测精密金属小件要求在流水线上检测表面划痕和凹坑。实验室阶段我用环形光打样图像里缺陷对比度很漂亮算法跑起来误判率不到1%。结果到了客户产线同一套光源装上白天靠窗一侧工位直射阳光图像里反光区域一片白缺陷全被高光吞掉误判率直接飙到30%以上。这就是典型的“死于光上”不是相机不够好不是算法不够强而是进入相机传感器的光根本不对。图像上该有信号的地方被环境光淹没该干净的地方被杂散光污染后续所有处理都变成在垃圾上做分析。算法工程师这时候最痛苦——调阈值、调形态学参数、甚至堆深度学习模型效果都极其有限因为图像本身的信噪比已经坏了。1.2 为什么光会成为项目的第一放大器机器视觉整个链路的逻辑是光源照亮物体镜头收集光传感器把光转成电信号算法从图像里提取特征。这四环里前三环都直接受“光”的控制只有最后一环是在依赖前几环的输出。光源选对了缺陷对比度可以做到110以上算法随便用一个阈值分割就能稳定提取光源选错了缺陷和背景的灰度差只有三五个灰度级再高明的算法也要过拟合、要崩。可以说光源是整个系统里性价比最高的环节——花几千块换一套正确的光往往能省下几万块的算法调参成本和几周的项目周期。我还见过很多团队把“光学设计”当成选一个灯忽略了角度、波长、偏振、环境光隔离这些维度。实际项目里这些要素是联动的任何一个环节不匹配都会导致成倍的增长难度。1.3 成像链路拆解从光源到像素的完整旅程为了把问题讲透我做了一个很粗的链路拆解第一步光源发出光波长可能是红光、蓝光、红外等。第二步光照射到物体表面发生反射、折射、散射、吸收。物体表面的材质、颜色、粗糙度直接决定光的去向。第三步反射光进入镜头经过透镜折射被缩小投影到相机靶面上。第四步传感器的每个像元把光子转成电子最终量化为0到255的灰度值。这四步里“第二步”最复杂也最不可控。金属拉丝面的镜面反射、塑料件的漫反射、透明件的透射和折射、黑色橡胶件的强吸收每种材质的光行为完全不同。光学设计的本质就是在理解这些光行为的基础上用光源位置、角度、波段、偏振等方式主动控制光的走向让相机只接收到“我们想要的信号”而把“不想要的杂牌光”挡在外面。理解了这条链路你再看那些打光教程思路就完全不一样了——不是“拿个灯照一下”而是“设计一条从光源到传感器的光路让目标特征在灰度上产生最大化的差异”。2. 六种主流工业光源的适用场景与选型逻辑工业光源看着花样多原理上绕不开环形光、条形光、背光、同轴光、穹顶光、点光这几种。我按实战经验帮大家理一遍每种光对应什么场景、优点在哪、坑在哪。2.1 环形光小物体表面缺陷检测的默认首选环形光是最常见的打光方式灯珠排在一个环上从四周向中心倾斜照射光线在物体表面形成漫反射整体光照均匀。它最适合小尺寸工件、表面纹理不复杂的缺陷检测比如PCB焊点、微小五金件的外观检测。环光的优势是安装方便、光照均匀缺点是对表面平整但有高度差的物体容易产生阴影。选环形光时我一直强调单位面积功率密度同样尺寸的环灯珠越多、功率越足频闪时亮度越高。如果你检测节拍在每秒5个以上必须考虑光源控制器能不能支持频闪模式否则连续点亮大功率LED散热和衰减都受不了。2.2 背光源与平行背光测量类项目的不二之选背光源是把光从物体后方打过来相机在前方拍摄物体的轮廓剪影。原理是利用光路遮挡让被测物在图像里变成黑色剪影背景是均匀亮场。这种打光方式先天性不受物体表面纹理颜色干扰最适合外形尺寸测量、边缘定位、毛刺检测。我做连接器pin针测量、手机中框外形尺寸检测几乎清一色用平行背光。注意普通背光板不是平行光光线有发散角度对高精度测量会有边缘不锐利的问题。真正的平行背光要用准直透镜把光整理成近乎平行的光束边缘投影才锐利。不过背光也有局限它只看轮廓看不见表面的划痕、污点所以表面检测和轮廓测量两者不能兼顾。很多项目标书里又把外观缺陷检测和尺寸测量放一起光源就得做组合方案别迷信一个背光通吃。2.3 条形光与穹顶光大平面和反光曲面的博弈条形光适合大面积的平整表面常用于金属板材、玻璃基板、液晶屏的检测。安装角度灵活可以通过倾斜来增强表面纹理的对比度。缺点是大面积布光不均匀需要两条以上条形光对打并且角度调整很敏感差两度效果都不一样。穹顶光又叫球积分光源是一个半球形的罩子内壁涂高反射涂层光通过多次反射后从各个方向均匀地散射到物体表面。它最适合高反光曲面比如镜面金属、电镀件、球面透镜因为多方向入射光能有效消除点光源造成的单向眩光。我踩过的一个坑是穹顶光均匀性虽好但会损失对比度。高反光表面上的细微划痕在穹顶光下可能变得很淡。这种场景后来我改了思路先让穹顶光把整体打均匀再叠加一路低角度条形光做暗场专门把划痕“点亮”效果出乎意料地好。2.4 同轴光和点光源高反光表面与深度检测的破局思路同轴光的原理是让光经过半反半透镜后沿着镜头光轴的同一方向照射物体反射回来的光再次经过分光镜进入相机。由于入射光和反射光共用光路它几乎不会产生斜射阴影特别适合镜面表面的划痕、芯片表面的字符检测。点光源则是光束集中、指向性极强常用于配合远心镜头做小视野特写检测或者做激光三角测量的辅助光。点光还有一个特点是能配合光纤做极小空间内的照明比如探孔内部。这里提醒一句同轴光的对比度通常不如低角度光镜面检测时如果表面本身有轻微曲率容易出现局部高光。用同轴光之前务必先用样品测试反射特征别上来就装。3. 频闪曝光、明暗场与波长选择现场抗干扰的三大手段光源选型只是第一步真正的硬功夫在打光角度、光路模式、光谱选择和控制器时序上。3.1 低角度照明与高角度照明划痕检测为什么常用暗场同样是条形光角度变了看到的图像可能完全不一样。高角度光入射角大于45度打在平面上镜面反射光很容易直接进相机表面平滑区域发亮缺陷区域光路被破坏反而变暗。这叫明场照明适合观测平坦表面的整体形貌。低角度光入射角小于15度几乎是贴着表面扫过镜面反射光大部分射向另一侧进不了相机因此平滑背景是暗的而划痕、凹坑等缺陷会把一部分光散射到相机方向在暗背景下形成亮斑。这种暗场照明是划痕检测的神器。我做金属划痕检检测时有个判断光滑金属表面的细微划痕优先试暗场低角度粗糙塑料表面的凹凸缺陷优先试明场高角度。很多人一上来就用环形光结果划痕和背景灰度拉不开其实就是没有利用好角度带来的散射方向差异。3.2 明场与暗场的组合轮廓、纹理一张图全要怎么办单一光路解决不了所有特征时就需要做组合光路用分时频闪的方式切换。举个例子一个金属垫片要检测表面污渍和外形毛刺污渍在高角度均匀光下明显毛刺在低角度背光下明显。那就可以用频闪控制器让高角度灯和背光在相邻两个触发信号里交替点亮相机分别采两帧图交给算法分别处理。频闪的核心是光源控制器要能精确跟踪相机的外触发信号。选择控制器时看三个参数触发延迟、最小脉冲宽度和通道切换速度。实测下来延迟控制在微秒级、脉宽能做到50微秒以下才能保证高速飞拍的图像亮度稳定。3.3 波长、滤光片和偏振片把环境光“赶出去”的组合拳很多产线不是暗房头顶有四米高的日光灯、窗外有日光、旁边设备有状态指示灯。这些环境光就是杀死项目的元凶。对付它们有三种办法通常要组合使用第一用窄带滤光片配合单色光源。比如你选了红光光源就在镜头前加一个中心波长620nm附近的带通滤光片只让红光进相机其他波段的光大幅衰减。环境里最常见的日光灯光谱在可见光区连续分布被滤光片一挡干扰立刻降低很多。第二用偏振片消除镜面反光。在光源前加偏振片再在镜头前加偏振方向正交的检偏片原理是镜面反射光会保持偏振状态而漫反射光会被“去偏振”。这样金属表面的眩光能被大幅压制表层以下的纹理反而显示出来。这个技术在玻璃下的二维码读取、拉丝金属表面的缺陷检测里特别实用。第三用极短的曝光时间“冻结”干扰。配合高亮频闪光源可以把相机曝光压到100微秒以下让50Hz或60Hz的日光灯频闪造成的亮度波动变成伪影级影响。只要光源亮度和曝光匹配得当环境光在这么短的时间内没有时间“累积”进传感器干扰自然就小了。这三个手段要一起用效果最好。单靠加滤光片环境光虽然弱了光源的亮度也一起弱了需要相机增益补偿噪声跟着上来。加了频闪之后亮度由光源的有效功率决定滤光片才能真正发挥选通作用。4. 镜头与相机匹配光进来了还得成像成得准光源搞定了图像亮度正常了下一步就是镜头与相机的匹配。很多人忽略了一个事实镜头是光路的最后一环它的分辨率、畸变和景深直接影响算法能在图像上“抠”出多少真实细节。4.1 焦距、工作距离与视场一个常用计算公式选镜头的第一件事是确定视场FOV也就是相机要覆盖多大的物理范围。知道了视场和工作距离WD镜头焦距用这个公式估算f (传感器靶面尺寸 × WD) / FOV举个例子一个1/1.8英寸相机的靶面宽度约为6.4mm需要检测的视野是100mm镜头距离物体200mm那么估算焦距为f 6.4 × 200 / 100 12.8mm那我就会选标准16mm或12mm定焦镜头然后微调工作距离来适配。反过来如果已经固定工作距离和镜头焦距也可以反推视野是否满足需求。这里有个很容易忽略的点选镜头焦距前必须确认相机的靶面尺寸和镜头的成像圈匹配。靶面大的相机用了靶面小的镜头画面四角全暗暗角这在视觉项目里是灾难。常见的C接口镜头一般覆盖到2/3英寸如相机是1英寸的就得专门选更大成像圈的镜头。4.2 像素精度与景深0.01毫米精度场景怎么权衡相机分辨率和镜头放大倍率共同决定了像素精度。比如视野是50mm相机物理分辨率为500万像素2448×2048横向像素精度就是50/2448≈0.02mm/像素。想做0.01mm的缺陷检测光这一个分辨率指标就已经不能满足需要缩小视野或换更高分辨率相机。但像素精度够高不等于测量稳定。这里的瓶颈往往在景深。景深越大物体允许的上下波动范围越宽但景深和光圈互相制约——光圈缩小景深增大但进光亮也减少和短曝光时间打架。我的做法是测量类项目优先锁小光圈F8~F11换取景深然后用高亮光源补亮度同时用全局快门相机避免物体运动时卷帘快门带来的图像畸变。如果工件本身有高度差异比如螺丝头检测低景深下头部和杆部不可能同时清晰要么用远心镜头要么用多套相机分别对焦不要指望一颗普通镜头通吃。4.3 远心镜头和畸变校正测量项目必须较真的事普通镜头的成像存在透视效应近大远小以及边缘畸变桶形或枕形。当项目要求把物体定位精度控制在微米级时这两种误差都是不能忍的。远心镜头的特点是主光线平行于光轴入射物体在景深范围内移动成像大小几乎不变因此能消除透视误差。它特别适合带台阶的零件尺寸测量。代价是贵而且体积大工作距离和视野选择受限。如果预算不够或者空间受限用普通镜头配合标定板做畸变校正也能满足大部分亚像素测量需求。我常用棋盘格标定板采集10到15张不同位姿图像在Halcon里做标定得到相机内参和畸变系数之后测量结果可以校正到很高的稳定性。要提醒的是标定板必须使用陶瓷或玻璃工艺的普通打印在量产现场很容易变形反而引入新的误差。5. 现场环境光与安装工程实验室成功产线翻车的关键战场前面聊的都是光学器件本身但真实项目里死得最多的其实是“环境适应性”。实验室桌面暗房、稳定光源什么都好一上产线阳光、振动、油污、磨损各种变量全来了。5.1 环境光的“时间变量”为什么上午调好的参数下午就变产线顶灯有频闪、相邻设备有激光、窗户有自然光这些都不是恒定干扰。太阳光色温随云层移动而变顶灯亮度随电压波动而变图像背景灰度一直漂移算法阈值却还是上午那套误判自然就来了。应对思路是让视觉系统对环境光的“窗口”尽可能缩小。光源用频闪模式后曝光时间控制在很短环境光对有效积分时间的贡献比例大幅下降镜头前加对应波段的滤光片把非工作光拒之门外再在相机端开启自动白平衡或自动增益校正的强约束保证灰度基准稳定。这套组合做完你会发现系统对光环境的变化变得不那么敏感了。5.2 固定方式与遮光罩光学设计里最容易被预算砍掉的部分很多项目预算里光源控制器、偏振片、遮光罩都是最后才考虑的东西可恰恰是这些“小件”决定系统稳定性。我的经验是光源和镜头支架必须用刚性结构固定因为丝杆微滑、支架松动会导致光路角度发生零点几度的变化图像特征就会明显移位。相机装好后先用锁定螺母把焦环调焦环锁死再在镜头螺纹处点少量螺纹胶这是极低成本的防漂移措施。遮光罩也是必备。用一个轻质的铝型材外罩把打光区域、镜头前组和物体表面围起来既隔离环境光又防灰尘。我曾在一个粉尘较大的车间做视觉检测不加遮光罩一个月后光源亮度肉眼可见衰减30%效果就是误判率逐步爬升最后排查才发现是镜头和光源积灰。5.3 案例复盘一个3C外观检测项目从误判30%降到3%的调整经过这个案例值得完整讲一遍。项目背景客户检测笔记本外壳阳极氧化面的轻微划痕检测节拍2秒一件位置靠近车间侧窗下午阳光直射。最初的方案是环形光加普通镜头测试误判率约3%到了现场下午时段误判率飙到30%大量良品因反光被误判为划痕。我做了一次系统性排查先用黑布彻底遮住侧窗阳光误判率立刻降到6%。这说明环境太阳光是主扰动。在镜头前加偏振片、在光源前加偏振片正交检偏。实测误判率降到2.5%说明镜面反射的杂光被有效抑制。把环形光改成低角度条形光暗场照明划痕信号增强良品噪声下降。最终误判率稳定在1.8%到2%之间。最后加装了轻质遮光罩锁定焦环并切换相机曝光到200微秒配合光源频闪。连续测试一周误判率稳定在1.5%左右。这个案例的教训是不是你开始选的光源错了而是没有把环境变量当系统设计的一部分来考虑。现场光学调试先隔离环境再逐步叠加消除手段这个顺序不能颠倒否则你永远在打一个移动的靶子。6. 光学设计自检清单动手打光前先回答四个问题项目做了这么多年我总结了四个问题每次打光前强迫自己答完才动手。答案会直接影响方案设计不走过场。6.1 特征、材质、速度与空间四个必须提前锁定的变量第一个问题*要检测的特征是什么*是轮廓、表面缺陷、字符、颜色还是三维结构不同特征对应的光学策略完全不同。轮廓是背光的事划痕是暗场的事字符要均匀场颜色要选好白光色温且不能加窄带滤光片。第二个问题*材质的光学性格是什么*拉丝金属高反射橡胶件强吸收透明件有折射和反射镜面件有镜像效果。材质决定光路反过来也决定你该用漫射还是定向光普通光源还是偏振方案。第三个问题*节拍和运动状态是什么*每秒检测多少个、是静止拍照还是飞拍、曝光窗口是多少毫秒这直接决定光源控制器要不要支持频闪、快门要什么样的传感器、光源功率要多大才能匹配极短曝光。第四个问题*安装空间和物理环境是什么*工作距离有没有下限光源和物体之间会不会有机构干涉现场是否振动是否有液体飞溅或粉尘很多光源方案从光学角度完美但装不进现场最后只能妥协所以要提前把空间约束同步进光学选型。6.2 用样件说话光学方案的验收标准只有一个最后提醒一点整个光学设计最忌讳“纸上谈兵”。不要只看供应商给的测试图一定要用客户的实际样件、在现场的真实背景下测试。验收就三个指标图像中目标特征的对比度是否稳定达到15以上在目标波动范围内高度变化、材质批次差异图像灰度变化是否在可控区间以及连续运行一整天后误判率是否仍然在合同允许范围内。这三个指标同时满足才说明光学系统设计真正过关。我自己的经验是把这三个指标写进项目设计评审表每做一个项目都按这个去验收。表面上看多花了很多测试时间实际上反而省掉了后面算法调试、现场救火的几十倍时间。光学这关过不了后面全卡住光学这关过了算法的路就宽得多了。