上周在产线调一套外观检测设备,隔壁工位的人凑过来看了眼屏幕问我:这套打的是明场还是暗场?我指着画面上那条亮得发白的细线说暗场,又指了指旁边照字符的那台说明场。他愣了几秒,说机器视觉明场照明与暗场照明怎么区分,不就是把灯调亮调暗吗。
这话我听过不止一次。这个问题表面看是个名词问题,实际是成像物理问题,答错了会直接导致光源选型错误、方案返工、产线验收卡壳。我见过有人买了一圈环形光源,怎么打都出不来"缺陷发亮、背景发黑"的效果,最后归因于"灯的质量不行",其实是他把环形光贴得太远,光线打到工件上的入射角根本不够掠射。也见过有人把暗场当成"把亮度调低",结果图像整体变灰,缺陷和背景一起沉下去,对比度反而更差。
这篇东西想干的事很明确:把这两种照明从光路层面拆开,给出一套能当场判断、能落地复现的判据和实操方法,顺便把几个容易踩的坑说透。刚入行做视觉的、做设备集成的、负责产线调试的,都能从里面拿到能直接用的东西。
1. 明场与暗场的分野,本质上是一次光路判断
很多人记概念的时候习惯记"明场亮、暗场暗",这个记忆法在九成场景下能蒙对,但它记的是结果不是原因。只要工件表面状态一变,比如从哑光塑料换成抛光金属,这条记忆法立刻失效。真正稳定的判据只有一条:镜面反射光有没有进入镜头。
1.1 反射光有没有进镜头,决定了画面极性
光打到工件表面会发生两件事。一件是镜面反射,光按照入射角等于反射角的规律规规矩矩地弹走;另一件是散射,光被表面的微观起伏打散到各个方向。任何一次照明,这两件事同时发生,区别只在于比例。
明场照明干的事,是让光源以较小的入射角照射工件,让镜面反射光顺着镜头方向回去。工件上平整、干净的区域会把大量光送回相机,于是背景是亮的;有图案、有污渍、有凹陷的地方把光散射掉或者吸收掉,回到镜头的光变少,于是特征在画面里呈暗色。这就是明场最典型的画面特征:背景亮、特征暗,对比极性是"反相"的。
暗场照明反过来干。光源压得很低,几乎是贴着工件表面掠射过去,镜面反射光弹向镜头之外的某个方向,相机什么也收不到,所以平整区域是黑的;而划痕、毛刺、凸起、灰尘这些微观结构会把光散射到各个方向,其中一部分正好落进镜头,于是在黑背景上出现一个个亮点或亮线。画面特征变成:背景暗、特征亮,对比极性是"正相"。
我用一个生活里的类比:晚上拿手电筒平着照一面墙,墙面本身你看不太清,但墙上任何一个凸起的钉头、一道裂缝,都会在光里显得特别扎眼。这就是暗场。你要是把手电筒举在肩膀位置正对着墙照,墙面整体被照亮,钉头反而只是墙上的一个小黑点。这就是明场。同一个手电筒,换个角度,成像逻辑完全变了。
所以判断一套照明属于哪一类,正确顺序是:先看光源相对工件表面的入射角,再看镜面反射光朝哪儿走,最后看图像里缺陷相对于背景是亮还是暗。三步走完,结论基本不会有偏差。
1.2 显微镜口径和工业视觉口径,别混着用
这里有个容易被忽略的坑:明场、暗场这两个词在不同领域里的定义严格程度不一样。
在显微成像里,这两个词有非常明确的硬件定义。明场指的是照明光穿过样品后直接进入物镜成像,样品吸收或折射光的部分变暗。暗场指的是一种专门的暗场聚光结构,它把照明光形成一个空心光锥,光锥中心是暗的,直射光在数值孔径之外,根本进不了物镜,物镜只接收样品边缘和细微结构散射出来的光。这是硬件层面定死的东西,换一种聚光镜就不是暗场了。
工业机器视觉借用这两个词的时候,口径宽得多,基本上是按照"镜面反射光是否入镜"这个结果来命名的,而不是按照某个特定硬件来命名的。同一颗低角度环形光,工作距离拉远了可能是明场,压近了就是暗场。所以在视觉场景里讨论明暗场,最好带上"在什么工作距离下""打什么工件"这两个前提,否则讨论没有意义。
还有个更常见的混淆:把背光(透射照明)也往明暗场里塞。背光是光源在工件背面,相机在正面,靠遮挡成像,这是第三条独立的路线。背光出来的剪影图,背景是纯白、工件是纯黑,看着像明场的极性,但光路完全不同。做方案评审的时候把这三类分开说,能省掉很多来回扯皮。
1.3 三个快速判据,十秒内能定性
现场没那么多时间做光路分析,我一般用三个快判据,十秒内能定性:
第一个判据看背景。拿一个已知完好的工件放上去,看画面里工件表面主体区域的灰度值。如果主体区域偏亮、接近饱和或者明显高于中间灰,倾向明场;如果主体区域很暗、明显低于中间灰,倾向暗场。这个方法用肉眼看屏幕就能判断,不需要打开软件看直方图。
第二个判据看缺陷极性。找一个已知缺陷(划一道、放一粒灰),看它在画面里比背景亮还是比背景暗。亮于背景,暗场;暗于背景,明场。这个判据比第一个更可靠,因为它直接对应了物理机制。
第三个判据看光源位置。光源平面距离工件表面远、灯珠分布直径小,光线入射角大,倾向明场;光源几乎贴着工件、灯珠分布直径远大于工作距离,光线掠射,倾向暗场。
三个判据互相印证,两个以上一致就能下结论。如果三个判据打架,那说明这套照明是个混合状态,既有镜面反射成分又有散射成分,这种半明半暗的情况在中等角度环光上特别常见,后文会专门讲怎么处理。
注意:判断的时候一定要把环境光关掉或者遮住。车间顶灯一开,暗场画面的背景会被环境光抬起来,你看着像明场,实际上光源本身是暗场配置,只是被污染了。
2. 明场照明:把表面"照清楚"的那一类
明场是整个视觉照明体系里用得最多的一类,粗略估计能占到实际项目的六成以上。原因是大部分检测需求本质上是"看清楚表面有什么",而不是"找表面哪里有凸起"。字符、条码、印刷图案、颜色差异、平面污渍、装配到位与否,这些需求用明场解决起来最直接。
2.1 明场的光路特征与成像表现
明场的核心特征是镜面反射光沿镜头方向返回。要做到这一点,光源相对工件表面的入射角要足够大,一般光线与表面夹角在 45 度以上,越接近垂直越典型。典型配置包括同轴光、穹顶光、大角度环形光、以及各种以正面照射为主的面光源。
同轴光是最纯粹的明场。光经过半透半反镜后,与镜头光轴完全重合地打下去,镜面反射再沿原路返回。这种配置对平整的镜面工件极其有效,因为它把镜面反射光百分之百回收进镜头,工件表面任何一处微小的起伏、划痕、脏污都会破坏镜面条件,表现为暗色特征。做金属外壳、玻璃盖板、晶圆表面检测的时候,同轴光是首选。
穹顶光走的是另一个路子。它用一个大半球形的漫射罩把光打散,从各个方向均匀地照射工件,相当于把光源变成了一片"光的天花板"。好处是几乎没有阴影、没有高光斑,坏处是对比度低,微小缺陷容易被漫射光淹没。穹顶光适合曲面工件、有高低落差的装配体、以及表面反光强烈到完全无法控制的场景。
大角度环形光是最常见的通用明场配置。工作距离适中、环形直径不太大,光线以 30 到 50 度的角度打下去,既能照亮表面,又能保留一定的方向性让纹理显现出来。
明场成像的典型表现是:画面整体明亮、灰度分布集中在中高段、背景与特征之间靠亮度差或者颜色差区分、边缘过渡相对柔和。直方图上看,主体像素堆在右侧。
2.2 明场擅长什么、在哪儿会翻车
明场擅长的活很明确。第一类是平面图案类检测,字符识别、条码读取、印刷缺陷、标签核对,这类需求靠的是颜色或反射率的差异,明场能把这些差异拉满。第二类是颜色和材质分选,不同颜色的零件在明场下灰度差异明显,分起来很轻松。第三类是平面污渍和异物,只要污渍改变了表面的反射率,明场就能看出来。第四类是装配完整性检查,螺丝有没有、卡扣到不到位,明场能给一个清晰的轮廓。
翻车的地方也很明确。第一个坑是镜面工件上的高光斑。抛光金属、玻璃、镀膜表面在明场下会产生一块过曝的白斑,这块区域里的信息全部丢失。解决办法要么改用穹顶光或者漫射板,要么在镜头和光源前各加一片偏振片做交叉偏振,把镜面反射压下去。交叉偏振这招在金属件检测里几乎是标配,起偏片放光源侧、检偏片放镜头侧,两者偏振方向垂直,镜面反射被大幅削弱,而散射光只损失一半左右,对比度一下就出来了。
第二个坑是浅色背景上的浅色缺陷。明场靠亮度差成像,当缺陷和背景的反射率接近时,对比度趋近于零,怎么调阈值都是噪声。这种场景硬扛没有意义,要么换照明方式,要么在光谱上做文章,比如用特定波长的光让缺陷和背景的吸收率拉开差距。
第三个坑是表面起伏被"照平"了。明场是正面照,工件表面的高低起伏在画面里只表现为亮度渐变,很难看出具体的形状和边界。划痕、压印、细微裂纹这些靠形貌区分的东西,明场经常看不出来,这也是为什么很多人做划痕检测时明场怎么调都不理想。
2.3 明场方案里几个绕不开的参数
做明场方案,有三个参数必须搞清楚。
工作距离决定照明的覆盖范围和均匀性。点光源的照度大致与距离平方成反比,距离拉大一倍,照度掉到四分之一。所以工作距离一改,曝光时间基本要跟着重调。环形光的工作距离还额外影响光斑大小,距离越远光斑越大、边缘越软。
光源尺寸和工件尺寸的匹配关系直接影响均匀性。光源的发光面如果比工件视场小很多,边缘会明显偏暗,形成中间亮四角暗的画风。经验上光源的发光面直径至少要做到视场对角线的 1.2 到 1.5 倍,边缘照度才能勉强够用。做不到的话就加漫射板,用损失亮度换均匀性。
角度决定表面纹理的显现程度。同样的环形光,45 度打下去,粗糙表面的纹理会因为阴影而变得明显;90 度垂直打下去,纹理基本被抹平。需要强调纹理的场合,稍微压低角度;需要强调颜色和图案的场合,垂直打更干净。
提示:调明场的时候别一上来就拉满亮度。先在中等亮度下把曝光时间调到直方图主体落在 100 到 180 灰度区间,再看缺陷能不能分出来。亮度拉满会让高光区域提前饱和,后期没有任何挽回余地。
3. 暗场照明:让缺陷自己"发光"的那一类
暗场在很多人心里是个"高级货",其实它的原理朴素得很,就是把灯放平了打。真正难的地方不在于原理,而在于工程实现的稳定性,以及怎么判断你打出来的到底算不算暗场。
3.1 掠射入射与散射收集
暗场的物理前提是:让镜面反射光彻底离开镜头。做法是把光源压到极低的角度,光线几乎贴着工件表面掠过。光线与工件表面的夹角通常要小到 10 到 25 度,才算比较典型的暗场配置。
在这个角度下,工件平整表面产生的镜面反射光会以同样小的角度弹出去,方向偏离镜头光轴几十度,相机完全收不到。而表面上任何破坏平整度的东西,边缘、凸起、凹陷、颗粒,都会成为散射中心,把光散射到四面八方,其中总有一部分散射光沿着镜头方向进入成像系统。
散射光的强度比镜面反射光弱得多,通常要弱两到三个数量级。这就是暗场照明和明场照明在工程上最大的分野:暗场的信号是"微光",你要在很弱的信号里提取信息,所以对光源亮度、相机灵敏度、镜头通光量、环境遮光的要求全都更高。
暗场的画面表现非常有辨识度:背景接近纯黑,缺陷呈现为孤立的亮点、亮线、亮环,像是缺陷自己在发光。这种"发光感"是暗场最迷人的地方,也是它比明场更容易做自动化的原因,因为在黑背景上做阈值分割,算法简单到几乎不需要调。
判断一个工件表面平整度的微小差异,暗场的灵敏度比明场高一到两个数量级。同一道 5 微米深的划痕,明场下可能完全看不见,暗场下就是一条清晰的亮线。
3.2 暗场最适合捡的那些缺陷类型
暗场真正发挥威力的场景,基本都是形貌类缺陷。
划痕和擦伤是第一大类。玻璃盖板、金属外壳、塑胶件表面的细微划痕,明场下几乎不可见,暗场下亮得像霓虹灯。判断划痕方向也能从亮点形状看出来,垂直于光线方向的划痕散射最强,平行于光线方向的划痕散射最弱,这个特性可以用来做方向性判别。
毛刺、飞边、凸起是第二大类。注塑件的分型面毛刺、机加工件的翻边、冲压件的毛刺,这些凸出表面的东西在暗场下极其明显,因为它们的边缘会强烈散射。
边缘和轮廓是第三大类。暗场照明打到工件边缘时,边缘位置的散射光会形成一条亮轮廓线,可以拿来测外形、找边界、判断有没有缺料。这个用法在检测小零件有无、方向是否正确的时候特别省事。
表面异物和颗粒是第四大类。灰尘、碎屑、纤维、油点,这些东西的散射特性和基材差异极大,暗场下就是一个个亮点。洁净度检测、来料外观检查基本都用这个思路。
反过来,暗场不擅长的东西也很清楚。颜色差异它看不出来,因为散射强度和颜色关系不大;平面印刷图案它看不出来,因为图案不改变表面形貌;字符识别基本别指望它,除非字符是凸起的。做方案的时候把这个边界想清楚,能避免很多无谓的试错。
3.3 暗场方案的两道坎:亮度和稳定性
暗场工程化的第一道坎是亮度不够。
前面说过散射光比镜面反射弱两三个数量级,直观的后果就是:同样的曝光时间,明场图像已经过曝了,暗场图像还是一片黑。实际调试中,从明场切到暗场,曝光时间经常要往上拉三到十倍,光源功率也要往上提。如果光源功率不够,你只能靠延长曝光来凑,曝光一长,产线的节拍就顶不住了。
所以做暗场项目,光源选型的时候功率余量要留足。我一般建议按实际需要的 1.5 到 2 倍来选,因为工件表面状态会有批次波动,光源用久了还会有光衰,没有余量的话半年后图像质量就开始掉。
第二道坎是稳定性。
暗场对表面状态极其敏感,这是它的优点也是它的软肋。同一批工件,如果表面粗糙度有波动,暗场的背景灰度就会跟着漂移。今天调好的阈值,换一批料可能就失效了。这种情况在注塑件、压铸件上特别常见,因为模具磨损会导致表面纹理变化。
应对办法有三条。一条是把判据从"绝对灰度"改成"局部对比度",用缺陷区域相对其邻域的亮度差来判定,能吃掉大部分背景漂移。另一条是加自动曝光或者自动增益,让每张图的背景基准保持一致。第三条是在光源上加漫射结构,把点光源变成面光源,牺牲一点散射灵敏度换取稳定性,这个取舍值不值得要看具体缺陷的尺寸。
注意:暗场对镜头的光圈很敏感。为了提升亮度很多人习惯把光圈开到最大,但光圈全开时镜头的杂散光会明显增加,黑背景会被抬灰,暗场的对比度反而下降。我的经验是收小一到两档,用光源功率和曝光去补亮度,画面干净得多。
4. 落地实操:一次对照实验把两者分清楚
光看原理容易飘,还是得上手。下面这套流程我在好几个现场用过,两个小时内能把一套照明方案的明暗场属性彻底摸清楚,顺便把参数边界也测出来。
4.1 实验准备与打光几何的算法
准备工作很简单:一块已知完好的标准件、一个已知缺陷件、一张白纸、一把卡尺、一个能遮光的罩子。
关键在几何参数的计算。以最常见的环形光源为例,光源平面到工件表面的距离记为 H,环形灯珠分布的内径记为 D。灯珠到工件中心区域的光线与光轴夹角 θ,满足 tanθ = (D/2) / H。光线与工件表面的夹角 α = 90° - θ。
明暗场的分界,说到底就是 α 的大小。α 大,光线接近垂直入射,镜面反射沿光轴回去,是明场;α 小,光线掠射,镜面反射偏出光轴,是暗场。工程上一般认为 α 小于 30 度才算典型暗场,对应的条件是 θ 大于 60 度,也就是 tanθ 大于 1.732,推下来 D 要大于 3.46 倍的 H。
这个结论非常实用,它直接告诉你:想让环形光打出暗场效果,环形直径至少要达到工作距离的 3.5 倍。
举几个具体数字感受一下。
工作距离 H 取 40 毫米,环形内径 D 取 60 毫米,tanθ = 30/40 = 0.75,θ 约 36.9 度,α 约 53.1 度。这是标准的明场,光线斜着打下去,镜面反射乖乖回到镜头。
工作距离 H 压到 25 毫米,环形内径换成 120 毫米,tanθ = 60/25 = 2.4,θ 约 67.4 度,α 约 22.6 度。这就是暗场了,环形直径是工作距离的 4.8 倍,符合前面的判据。
工作距离 H 取 15 毫米,环形内径 90 毫米,tanθ = 45/15 = 3,θ 约 71.6 度,α 约 18.4 度。更典型的暗场,直径是工作距离的 6 倍。
反过来看,市面上常见的小内径环形光,内径三四十毫米,很多人把它架在五六十毫米的工作距离上,tanθ 只有 0.3 左右,α 高达 70 多度,光几乎是垂直打下去的。这种配置无论怎么调亮度,都做不出暗场效果,因为几何上就不成立。这是我认为最常见的一个认知误区,后文还会展开说。
条形光做暗场,不需要算环形直径,直接看光条与工件表面的夹角,压到 10 到 25 度之间就是暗场,抬到 45 度以上就是明场。这个角度拿量角器或者用卡尺量两个高度差就能估出来,比算环形光简单。
4.2 采集、记录、判读的完整步骤
第一步,遮光。把环境光全部挡掉,罩子扣上,确认相机在全黑状态下拍出来的图像灰度值在个位数。这一步不做,后面所有数据都不可信。
第二步,装标准件。把完好的工件放到视场中心,调好焦距,光源先按你预期的方式架好。
第三步,粗调亮度。先把光源功率设到 50%,调曝光时间让图像的中位灰度落在 100 到 150 之间。这一步的目的是让两种照明在同一个亮度基准上比较,否则明场天然比暗场亮,比出来的结果没意义。
第四步,采图记录。保存标准件图像,用软件读出工件主体区域的平均灰度、最大灰度、最小灰度,还有直方图的分布形状。
第五步,换缺陷件。把缺陷件放到同样的位置,采图,读出缺陷区域的平均灰度和它邻域背景的平均灰度,两个数相减得到对比度。
第六步,切换照明方式,重复三到五步。
判读的标准很直接。如果标准件图像的主体灰度明显高于中间灰(比如 150 以上),缺陷件图像里缺陷灰度低于其邻域背景,那就是明场。如果标准件主体灰度很低(比如 40 以下)、缺陷灰度高于邻域背景,那就是暗场。两张表摆在一起,谁是谁一目了然。
第七步,测边界。这一步很多人会跳过,但它决定了方案的鲁棒性。把工作距离从当前值往两边各调 20%,看图像属性有没有发生翻转。如果往近调一点画面就从明场变成了暗场,说明你现在的配置正好卡在临界点上,产线上的任何机械公差都可能让方案失效,必须重新调整几何布局,把工作点推到明确的一侧。
4.3 常见光源归类的对照表
现场最常被问到的是"我这个光源算明场还是暗场"。下表是我按实际使用习惯整理的归类,注意前提是"常规工作距离下",因为同一个光源换个架法属性会变。
| 光源类型 | 典型入射角(与表面) | 常规归类 | 备注 |
|---|---|---|---|
| 同轴光源 | 90 度 | 明场 | 最纯粹的明场,靠半透半反镜实现 |
| 穹顶光源 | 各方向都有 | 明场 | 漫射明场,无阴影,对比度低 |
| 大角度环形光 | 40 到 60 度 | 明场 | 通用型,靠工作距离调节 |
| 中角度环形光 | 25 到 40 度 | 混合 | 属性临界,需实测确认 |
| 低角度环形光 | 10 到 25 度 | 暗场 | 内径需大于工作距离 3.5 倍 |
| 低角度条形光 | 10 到 25 度 | 暗场 | 常用于平面划痕检测 |
| 圆顶低角度光 | 15 到 30 度 | 暗场 | 四方向可独立调,灵活度高 |
| 背光(透射) | 不适用 | 独立一类 | 靠遮挡成像,不归入明暗场 |
这张表有个隐含前提:工件表面是相对平整的。如果工件本身是曲面或者有大幅起伏,入射角的实际分布会很宽,同一个光源在工件不同位置的属性可能不同,这种情况只能分区域实测,不能一概而论。
5. 排查实录:那些被误判成"灯坏了"的情况
暗场方案里出的问题,九成不是硬件坏了,是几何或者环境出了问题。下面几个是我在产线上反复遇到的。
5.1 环形光做不出暗场效果的真实原因
这是出现频率最高的一个。表现是:买了一个号称"低角度"的环形光,架上去之后背景依然是亮的,缺陷没有发光感。
原因通常有三个,按概率从高到低排:
第一个是工作距离太大。按前面算的,环形内径要大于工作距离的 3.5 倍才能形成典型暗场。一个内径 70 毫米的环形光,工作距离超过 20 毫米就开始往明场方向滑了。很多人按明场的习惯把光源架在 50 毫米以上,这时候入射角已经很陡,物理上不可能是暗场。解决办法是把光源往下压,压到内径的四分之一以内。
第二个是工件表面本身太粗糙。暗场依赖镜面反射不入镜这个前提,如果工件表面是磨砂的、拉丝的、喷砂的,光打上去本来就全是散射,无论怎么打背景都亮。这种情况不是照明的问题,是工件不适合暗场,得换思路。
第三个是镜头收光角度太大。镜头光圈开得越大,能接收的光线角度范围越宽,本来该偏出光轴的镜面反射光被镜头收进来了,背景自然就亮了。这时候收小光圈,暗场效果立刻出来。这个现象在低倍率、大光圈的配置上特别明显。
5.2 环境光、混光与高光斑的处理
环境光是暗场的头号杀手。暗场的信号本来就弱,车间顶灯随便漏一点进来,黑背景就抬成灰背景,对比度掉一半。处理方法很土但很有效:给相机和工件之间加一圈遮光筒,或者用黑色亚光板把四周挡起来。别用亮面的黑布,有些黑布反光比白纸还厉害。
混光指的是同一次曝光里既有明场成分又有暗场成分。常见于中等角度的环形光,一部分光以陡角度打到工件中心形成镜面反射,另一部分光以低角度打到外围形成散射。结果是画面中心区偏亮、外围偏黑,缺陷在不同位置的亮暗表现不一致。解决办法是统一几何关系,要么把光源压到全暗场,要么抬到全明场,别卡在中间。
高光斑在明场里是麻烦,在暗场里反而少见,但也不是没有。工件上如果有镜面倒角、圆弧过渡面,这些面在暗场角度下可能正好把光反射进镜头,形成局部过曝。处理办法是调整光源的方位角,把光斑转到视场之外,或者用偏振片压一下。
5.3 现场速查表
| 现象 | 最可能的原因 | 快速验证方法 | 处理方向 |
|---|---|---|---|
| 暗场背景发亮 | 工作距离过大 | 把光源下压一半,看背景是否变黑 | 缩小 H 或换大内径光源 |
| 缺陷不够亮 | 光源功率不足 | 拉长曝光看是否改善 | 提升功率或延长曝光 |
| 黑背景发灰 | 环境光漏入 | 用手遮挡四周看灰度变化 | 加遮光罩 |
| 画面中心亮四周暗 | 光源尺寸小于视场 | 换大尺寸光源对比 | 加大发光面或加漫射板 |
| 明场出现白斑 | 镜面反射过曝 | 转动光源方位角看白斑是否移动 | 改穹顶光或加交叉偏振 |
| 同一批料灰度漂移 | 表面粗糙度波动 | 换不同批次对比直方图 | 改局部对比度判据 |
| 暗场效果时有时无 | 工作点卡在临界角 | 上下调工作距离看是否翻转 | 重新布局几何参数 |
这张表我一般直接打印出来贴在调试台旁边,遇到问题先对一遍,能省掉大量试错时间。
6. 选型与后续扩展的一点经验
说几个选型阶段就能避开后面麻烦的判断。
如果缺陷是形貌类的,划痕、毛刺、凸起、颗粒,优先考虑暗场,别在明场上死磕。明场看形貌天生吃亏,你调一天也调不出暗场那种灵敏度。
如果缺陷是颜色、图案、材质类的,优先明场,暗场对这类差异基本无感。
如果两者都有,那就上多光源分时曝光,明场暗场各拍一张,两张图分别做算法再融合。这套方案成本增加不多,但覆盖面翻倍,在复杂外观检测里性价比很高。分时曝光的节拍损失要提前算,两次曝光加一次切换,一般多花十几毫秒,高速产线上要评估。
还有一条我踩过坑的经验:暗场方案在样机阶段效果惊艳,量产阶段翻车的概率明显高于明场。原因是暗场对表面状态的敏感度太高,实验室里的样品和量产件之间往往存在表面处理的细微差异。所以做暗场方案,一定要拿量产件做验证,别拿打样件验收。
后续还可以往几个方向扩展。一个是偏振暗场,在低角度照明的基础上加交叉偏振,进一步压制残余的镜面反射,把信噪比再往上推一档。另一个是颜色暗场,用单色光做暗场照明,利用材料对不同波长的散射差异做材质区分。还有一个是多角度暗场,用四个方向的低角度光分时点亮,通过比较四个方向的散射强度来判断缺陷的朝向和深度,这个思路在划痕分级上挺有用。
最后分享一个我自己的习惯:每做完一套照明方案,我都会在调试记录里写清楚三个数,工作距离、光线与表面的夹角、以及标准件的背景灰度。这三个数写下来,半年后别人接手或者自己要复现,能省掉一大堆重新摸索的时间。照明这件事,参数记不住就等于没做过。