做工业视觉这些年,被问得最多的需求,就是金属表面缺陷检测。不管是3C外壳、汽车零部件、五金冲压件,还是各种铝型材、不锈钢管件,表面划伤、压痕、凹凸、脏污、锈斑,似乎每个工厂都有一堆说不上致命但必须管控的外观问题。这类项目说难不难,说简单也不容易,真正的难点往往不在算法,而在成像。
同一道划痕,你换个打光方式,它可能在图像里亮得刺眼,也可能完全看不见。我这篇文章就围绕工业金属表面缺陷检测里最常用的四种光学成像方案——明场、暗场、漫反射、背光——把各自的原理、适用场景、硬件搭配和实测效果全部摊开讲,结合我实际调试项目时的经历,给正在做方案选型的朋友一个参考。
光讲理论没意思,后文会有我实际拍过的对比数据,包括用不同光源角度、不同相机参数拍出来的效果和调试时踩过的坑。如果你正准备搭一套金属外观检测的视觉系统,这篇文章基本可以当一份简化的选型手册来看。
1. 为什么金属表面缺陷检测这么讲究打光
很多人第一次接触金属表面检测项目,会觉得“不就用个相机拍一下嘛”。等真把相机架上产线才发现,金属表面简直是机器视觉里最难伺候的材质之一。
1.1 金属表面的光学特性决定了成像方案
金属和塑料、木材、纸张最大的区别在于,它的表面反射率极高,而且以镜面反射为主。普通的漫反射光打到金属表面,绝大部分光会被直接弹走,而且弹走的方向完全由表面微观形貌决定。这意味着我们看到的图像,本质上不是“金属长什么样”,而是“金属表面的法线方向是怎么分布的”。
再叠加一层因素:金属表面往往会经过各种处理,抛光、拉丝、喷砂、阳极氧化、镀锌、钝化……不同的表面处理工艺产生了完全不同的微观结构。抛光面接近完美镜面,拉丝面有方向性的微沟槽,喷砂面是随机漫反射结构。同一种光源,在这三种表面上成像效果完全不是一回事。
所以做金属检测项目,第一步不是着急选相机,而是先搞清楚你面对的是哪种表面状态,再倒推用哪种光学方案。我见过太多项目,算法工程师把网络模型调得再好,现场换了一批料,成像一变,模型立刻失效。问题根源往往就是前期打光没有把缺陷和背景的差异拉开。
1.2 明场、暗场、漫反射、背光的本质区别
搞清楚这四种方案之前,先记住一句话:光源和相机的相对位置,决定了你拍到的信息类型。
明场(Bright Field)是最常规的打光方式,光源和相机在同一侧,光线照射到物体表面后,镜面反射光的大部分能直接进入相机镜头。简单理解就是“直接拍反射”,所以视野里正常表面是亮的,缺陷如果破坏了反射方向,就会在亮背景上呈现暗色。
暗场(Dark Field)则反过来,光源以低角度(相对于物体表面)打过去,正常情况下反射光会偏离相机,画面里大部分区域是暗的。一旦表面有划痕、凹陷、凸起这类破坏表面平整度的缺陷,光线会散射进镜头,缺陷就变成了暗背景上的亮点。
漫反射(Diffuse)是在光源前面加一层漫射板,或者用半球形光源把光打散,让光线从各个角度均匀照射物体表面。这相当于给金属表面拍“证件照”,尽量消除镜面反射带来的高光、反光干扰,让图像颜色和灰度更均匀。
背光(Backlight)最简单粗暴,光源放在物体正后方,相机正对着拍,物体挡住光线形成黑色轮廓,背景是亮的。它不关心表面纹理,只输出一个高对比度的剪影,最适合量尺寸、检测孔位、边缘缺口这类轮廓类问题。
这四者的核心区别,用一个生活化的类比来说:明场就像晴天正午看地面,一切清清楚楚,但反光刺眼;暗场像夜里的手电筒斜着照路,小石子都会拖出长影子;漫反射像阴天,光线柔和均匀,没有影子干扰;背光则像皮影戏,只看得到轮廓,看不到细节。
2. 四种成像方案各自适合什么缺陷
到了选型环节,很多人喜欢问“我的产品该用哪种光”。说实话,这不是一个简单的一一对应关系,要结合缺陷类型、表面状态、检测项三个维度一起判断。我把常见的几种缺陷和适合的光源方式对应起来,方便大家快速定位。
2.1 明场:表面均匀性问题的首选
明场方案适合检测那些表现为“局部反光率变化”的缺陷,比如表面氧化、变色、水渍、油污、色差、涂层厚度不均。这类缺陷的共性是,它们不改变表面的宏观形状,但改变了表面的光学属性。
以铝型材阳极氧化后的色差检测为例,我们当时用了一条白色条形光源,以45度角照射,相机垂直于表面拍摄。正常氧化面在图像上是均匀的灰色,而色差区域因为氧化膜厚度不同,反射率发生轻微变化,在灰阶上会明显偏深或偏浅。这种差异用肉眼经常要凑近了才能分辨,但在计算机视觉系统里,只要灰度差拉到10个灰阶以上,配合阈值分割就能稳定检出。
不过明场方案对反光非常敏感。如果产品表面是镜面或高光面,明场很容易出现过曝区域,这时要么调低光源亮度,要么用偏振片把镜面反射光滤掉一部分。我后面会详细说偏振的用法,这里先记住一个原则:明场成像质量好不好,关键看正常表面能不能保持均匀的灰度分布,如果正常区域就花成一片,那缺陷信息再多也白搭。
2.2 暗场:拉痕、划伤这类方向性缺陷的利器
暗场是金属表面划伤检测的主力方案。几乎所有行业标准的表面划伤检测,都会推荐暗场作为首选。
原理很容易理解:金属表面有划伤时,划痕边缘相当于反射面发生突变,原本应该平行反射走的光会被划痕边缘散射,进入相机的方向。暗场直接把这个“散射”信息提出来,缺陷之外的部分全是黑的,信噪比极高。
我在做不锈钢拉丝面板检测时,对暗场印象极深。不锈钢拉丝表面本身有方向性的纹理,这些纹理在常规明场下会形成大量类噪声条纹,干扰检测。但暗场搭配与拉丝方向垂直的条形光源,正常拉丝纹理的反射光被挡在镜头之外,只有真正垂直于纹理方向的压伤才会散射进镜头,画面干净得几乎不需要预处理。
暗场有个注意事项是光源角度对灵敏度影响很大。光源越贴近水平面(入射角越大),对浅划痕的敏感度越高,但同时视野内均匀性会变差,容易出现暗角。实际调的时候需要反复试几个角度,一般在10度到30度之间找平衡点。表面粗糙的工件要适当调大角度,避免把表面正常的微观起伏也照成缺陷。
2.3 漫反射:高反光件成像的救星
漫反射方案尤其适合那些表面反光严重、形状复杂的金属零件。手机中框、笔记本电脑外壳、压铸件,这类零件表面往往带有曲面、斜面和倒角,常规打光下经常是这儿亮一块那儿黑一块,根本无法做灰度分析。
漫反射的原理是让光线在到达物体表面前先经过漫射介质(比如亚克力扩散板、白色柔光布),把原本方向性很强的光变成来自四面八方的均匀光。这样无论物体表面朝向哪个方向,都会有某个角度的光被反射进相机,整幅图像的亮度分布变得极其均匀。
我在这里多说一句:漫反射不是单纯把光源调暗,而是改变光的空间分布。如果你只是在光源前盖一张白纸,效果可能不如真正的穹顶光源(也叫圆顶光源),因为穹顶光源的内壁是白色漫反射涂层,LED从侧面发光后在内壁反复反射,能够形成接近半球空间内均匀照明。这种光对曲面零件尤其友好。
实测数据我记得很清楚。某铝合金压铸件表面有多处砂眼和冷隔缺陷,用45度明场打光时,由于压铸件表面氧化层不均匀,图像灰度值波动超过80,完全没法设阈值。换成穹顶光源后,正常区域灰度波动直接降到10以内,砂眼位置形成稳定的暗点,检出率从不到60%提到了98%以上。所以如果你面对的零件也是“明场一团糟”的情况,别急着换相机,先试试漫反射。
2.4 背光:轮廓尺寸检测的标配
背光方案不拍表面,只拍轮廓。
当你的检测项是外形尺寸、孔径大小、边缘缺口、毛刺,或者你只需要判断产品有无缺料、错位,背光永远是首选。因为背光方案不受表面纹理影响,哪怕工件表面严重生锈、油污附着、反光离谱,只要轮廓完整,剪影就是干净的。
我在做某个冲压五金件的视觉定位时,工件表面油污严重到连标定板都看不清,但背光方案完全不受影响。相机从正上方往下拍,光源在底下透上来,工件轮廓的对比度轻松超过200,边缘亚像素定位的重复精度做到了正负0.02毫米以内。
背光方案需要注意均匀性问题。LED背光源用久了可能出现亮度不均,或者是边缘发暗。对于大尺寸工件,建议选择高密度LED阵列的背光源,同时检查驱动方案是否恒流。后面我会专门讲LED背光的驱动和亮度一致性,这里先不展开。
2.5 四类方案的选型速查
为了便于归类,我把四类方案和常见检测场景做了个速查对照,大家可以根据自己的产品快速定位。注意这里只是初步建议,具体还是要用样品实测来验证。
| 成像方案 | 光源与相机位置 | 主要检测缺陷类型 | 适用表面 | 不适用场景 |
|---|---|---|---|---|
| 明场 | 同侧,光源斜射或环形光 | 色差、氧化、污渍、涂层不均 | 漫反射为主、粗糙面 | 高反光镜面 |
| 暗场 | 同侧,低角度掠射 | 划伤、压痕、凹坑、纹路异常 | 拉丝面、抛光面 | 表面粗糙度过大 |
| 漫反射 | 同侧,穹顶或漫射板 | 砂眼、气孔、不平整、局部纹理 | 高反光、曲面、异形件 | 需要方向性信息的场景 |
| 背光 | 异侧,光源在工件背后 | 外形尺寸、孔位、毛刺、缺料 | 任意表面 | 需要表面灰度信息的场景 |
3. 选型前的几个关键参数
很多新手拿到一套视觉系统,习惯直接去调算法,忽略光源和硬件的配合。实际上,成像方案定下来之后,光源选型、打光角度、相机参数环环相扣,任何一个环节没配合好,缺陷的对比度都出不来。我挑几个最影响效果的关键参数,结合实操经验展开讲。
3.1 光源色温和波长怎么选
光源颜色(波长)对金属检测的影响,往往被低估。不同波长的光对金属表面的穿透深度和散射特性不同,这会直接改变缺陷的对比度。
蓝色光(450nm-470nm)波长短,能量高,在金属表面的散射更强,对表面微细划痕的敏感度普遍高于红光和白光。我做微细划痕检测时,经常用蓝色光源替代白光来增强划痕的对比度,效果十分明显。而红色光(620nm-630nm)波长长,穿透性好,适合检测表面下方一定深度的亚表面缺陷,比如铝件表面下的气泡夹杂。
不过在产线上还要考虑成本问题。蓝色光源的LED管芯价格普遍略高,如果检测精度要求不高,白光其实够用。需要说明的是,这里的颜色选择是在图像传感器是黑白(单色)相机的前提下讨论的。如果用彩色相机,还需要考虑白平衡问题,我建议做金属检测时优先用黑白相机配单色光,成像信息更纯粹,灰度一致性也会更好控制。
3.2 工作距离和入射角度的平衡
打光角度是成像方案里最灵活、也最需要花时间调的参数。同一套光源,角度差个5度,图像可能就完全变了个样子。
先从成像公式说起。对于镜面反射主导的金属表面,光源、工件表面法线、相机三者构成反射关系。当光源位置确定时,只有满足法线方向正好在光源和相机的角平分线上的那个区域,入射光才会被反射进相机,其他区域则没有光进入镜头。这就是为什么你用点光源照射抛光金属表面,会看到一个很亮的点,而周围全是黑的。这个亮点的位置正好符合镜面反射定律。
所以调角度时,你要搞清楚你需要哪个区域的信息:
- 如果要让大平面均匀成像,光源面积要够大,或者在多个角度上排布多个光源;
- 如果只想突出局部缺陷,光源角度就要靠近临界反射条件,让缺陷处刚好产生反射变化。
之前调试一个曲面手机中框,光源距离工件从400mm慢慢缩短到200mm,图像亮度变化不是线性的,而是存在几个明显跳变点。原因是曲面不同区域的反射角不同,在某些距离下,光源正好覆盖了曲面的关键反射带。所以不要以为加大光源距离就能让光更均匀,实际可能是让高光区域缩小、暗部扩大,适得其反。
3.3 相机、镜头与光源的配合
光说光源也不行,相机的动态范围、曝光时间、镜头光圈都是成像链路的一环。对金属表面这种高反光材质,我一般推荐选用低增益、高动态范围的工业相机,配合手动光圈镜头,而不是自动光圈。
手动光圈优于自动光圈的原因是,自动光圈会根据画面平均亮度自动调节,在金属表面反光剧烈波动时,光圈会来回动作,导致图像亮度不稳定,算法阈值直接失效。手动光圈锁死之后,亮度波动只来自环境光干扰和光源本身漂移,可控得多。
曝光时间也要配合产线节拍来定。静态检测可以自由选择曝光时间,但如果是运动中的工件,曝光时间过长会出现运动模糊。我的经验是:优先调大光源亮度,让相机曝光时间尽量短,冻结运动。光源亮度和曝光时间是一对杠杆,光源越亮,曝光时间越短,环境光的影响越小,图像一致性越好。
偏振片是金属检测中一个容易被忽视但非常好用的工具。在镜头前加一个偏振片,再在光源前加一个与之匹配的偏振片,两道偏振片的方向相互垂直,可以把金属表面的镜面反射光基本滤除。剩下的光大部分来自表面的漫反射成分,图像会更加柔和、均匀。这个方法对付高光干扰屡试不爽,代价是会损失部分亮度,通常需要配合更高亮度的光源使用。
4. 实测对比:四类方案具体怎么打,效果如何
理论看了不少,最终还是要落到实际效果。我挑四个有代表性的检测案例,把现场的打光方式、相机参数和检测效果完整记录在这里,方便参考。
4.1 明场实测:螺母端面划伤检测
项目背景是一个六角螺母的端面,要求检测端面上是否有圆周方向的划伤。螺母是碳钢镀镍,表面反光度中等,端面有加工刀纹。
我选用了白色环形光源,以0度正向照射(光源与相机同轴),相机垂直端面拍摄。由于环形光源光线在中心区域形成近似同轴的效果,端面的加工刀纹不会产生大幅度的反射差,正常区域灰度均匀在150左右。而圆周划伤破坏了刀纹的连续性,反射方向突变,灰度值骤降到90左右,对比度约为60灰阶,阈值分割非常稳定。
这里有个细节——环形光源的高度很关键。光源抬高,光的入射角变大,划伤对比度会增强,但刀纹本身也开始出现明暗交替,提拔出非常多的伪缺陷。我反复试了几个高度,最后把光源定在工件上方120mm,能得到一张刀纹均匀、只有缺陷变化的图像。大家调的时候记住这个规律:光源高度越高,方向性越强,细节对比度越高,但噪声也越大。
4.2 暗场实测:不锈钢拉丝面划痕检测
这个项目是不锈钢机箱表面,拉丝工艺,要求检测肉眼可见的划痕。难点在于拉丝纹理本身也是一条条细线,普通打光下纹理与划痕极易混淆。
我用了两根条形光源,放在工件两侧,以15度左右的低角度掠射。关键是光源的排列方向要与拉丝纹理方向垂直。拉丝纹理在垂直方向的光照下,反射光方向基本一致,会被安全地“赶出”镜头视野;而划痕无规则方向,总有一部分散射光进入镜头,形成亮点。
实测中,正常拉丝区域在图像里几乎是均匀的暗灰色,灰度值在40左右,划痕区域亮度跃升到180以上,对比度超过140。即使是一条宽度仅0.05mm的浅划痕,也能被清晰地捕捉到。这里要提醒一点:暗场的灵敏度其实很高,有时候说“表面没有缺陷”,但暗场图像里会看到很多亮斑。这些亮斑往往来自手指印、微小的灰尘颗粒或者装配时的磕碰,需要先跟客户确认这些是否也属于缺陷,否则后期误判率会很难看。
4.3 漫反射实测:压铸铝件气孔检测
压铸铝件表面是复杂的曲面结构,带有顶杆痕迹、分型线,表面氧化层还有明显的深浅差异。用明场拍摄时,整个画面亮一块暗一块,图像的灰度极差不小于150,根本无法区分真实缺陷和表面氧化差异。
我换成了半球形漫反射光源(穹顶光),把工件完全罩在光源内部。穹顶光源从内壁反射出的均匀光,以近似半球形的角度范围覆盖整个工件,每个曲面区域都接收到来自各个角度的光线,反射到镜头里的光强基本一致。
最终图像里,压铸件表面的氧化差异被大幅压制,灰度均匀度提升到±8左右。气孔缺陷因为内部空气与金属基体的折射率差异,在图像上表现为清晰的暗点,直径最小可分辨到0.3mm。这个案例我最大的体会是:漫反射方案牺牲了一部分“立体感”,换来了极其稳定的明暗分布,对后续算法处理来说,这种稳定性比清晰度更重要。
4.4 背光实测:冲压件外形尺寸与毛刺
这个项目是检测一个五金冲压件的轮廓外形,同时测量两个定位孔的孔径。工件表面氧化发黑,带有冲压油,用同轴光或环形光拍出来的图像都因为油污反光而无法准确锁定边缘。
背光方案直接把问题绕过去了。工件放在背光板上方,相机垂直向下拍摄,图像里只有两个亮度等级:背景亮、工件暗,边缘对比度极高。实测图像中,孔的边缘灰度从30跳变到220只需要一个像素的过渡,配合亚像素边缘算法,孔径测量的重复精度达到±0.015mm。
毛刺的检测也用背光。冲压毛刺在工件边缘上会形成一个微小的凸起,在背光剪影里表现为边缘轮廓的不规则凸点。我当时用背光加一个3倍放大镜头,让毛刺在图像里至少占3个像素,识别率达到99%以上。需要注意的是,背光板的亮度和均匀度直接影响边缘提取精度,如果背光板亮度不匀,边缘会出现假的鼓包,所以背光的校准和光源驱动质量非常重要。
4.5 相机参数:曝光、增益、光圈三者的调优顺序
现场调试时,相机参数的调节顺序建议这样走:
先把光源亮度调到中间值,光圈锁定在F5.6-F8左右——这个范围是这个镜头解像力比较好的区间。然后看灰度直方图,调整曝光时间,让正常区域的灰度峰值落在150到200之间。注意不要一上来就加增益,增益会放大传感器噪声,尤其对高反光金属表面来说,微小的表面颗粒在增益放大下可能变成明显的伪缺陷。
如果曝光时间已经调到全幅画面的1/3(比如曝3毫秒),亮度还不够,这时才考虑提高光源亮度或者加大光圈。两者对画质的影响不同:加光圈会使景深变浅,对表面有一定高度差的产品来说可能导致边缘变虚;加光源亮度则是最优先方案。增益尽量控制在6dB以内,超过之后图像的颗粒感肉眼可见。
我还发现一个容易被忽略的细节,就是相机的Gamma值。工业相机默认Gamma=1,但很多相机的Gamma参数会影响暗部和中灰区域的灰度映射。对于金属表面,建议把Gamma锁定为1,关闭自动增益和自动曝光,用绝对手动模式。有时候相机在默认设置下自动做了图像增强,反而让缺陷对比度在灰阶上被压缩,手动模式才能保证缺陷的灰度值变化真实反映反射率变化。
5. 常见问题与排查技巧实录
这部分是真的踩坑踩出来的经验。很多看起来是算法问题的情况,根子其实在成像端。我整理几个典型问题,希望能帮你省去现场折腾的时间。
5.1 过曝与反光怎么压
金属表面检测最容易出现的问题就是过曝。高光区域一片纯白,灰度值到顶了,缺陷信息完全丢失。很多人的第一反应是把光源调暗,或者缩短曝光时间,但有时候调完发现,正常区域是暗下来了,缺陷也跟着变暗了,对比度并没有改善。
这种情况下,我建议优先考虑偏振方案。在光源前加偏振片(polarizer),镜头前加偏光片(analyzer),两个偏振方向相差90度,镜面反射光被大幅衰减,而漫反射光不受影响。用了偏振之后,图像里的“光圈”会消失,金属表面的纹理信息却保留下来。我当时做铝板表面的指纹检测,就是靠偏振片把金属镜面光压下去之后,指纹上的汗液成分才在图像里显现出来。
还有一个技巧是软件端的多曝光融合。同一个位置拍两张图,一张短曝光保留高亮区域细节,一张长曝光保留暗部细节,再用HDR算法合成。这个方法对静态检测很方便,但如果工件在产线上快速移动,双曝光的实现复杂度会提高,因此前期最好优先用光学手段把动态范围问题解决掉。
5.2 环境光干扰如何排除
工厂现场的光照环境通常很恶劣。头顶的日光灯、窗户透进来的自然光、旁边设备工作状态指示灯,都会影响成像稳定性。尤其是桌面上方有工位照明灯时,金属工件表面会出现明显的环境光反射亮斑,一会儿亮一会儿暗。
排障步骤通常是:
- 在相机软件里实时查看图像亮度波动曲线,确定干扰是持续的还是间歇性的。
- 如果是持续亮斑,考虑物理遮光:在检测工位周围加一圈黑色遮光帘,或者把检测工位移到相对封闭的空间。
- 如果是间歇性干扰(比如工人走动、设备指示灯闪烁),可以用光源频闪配合相机外触发来抑制。让光源只在相机曝光的瞬间点亮,曝光结束后光源关闭,这样环境对图像的影响可以降到最小。
实际操作中,我经常建议客户给视觉系统配一套光源频闪控制器,效果立竿见影。市面上的工业光源控制器基本都支持频闪模式,关键是相机要设置成外触发模式,与光源同步。一旦同步好了,哪怕隔壁机器在电焊,你的图像依然稳如老狗。
5.3 LED背光亮度一致性为什么重要
之前热搜里有关LED背光驱动的内容,我在项目里也碰到过具体问题。当时用了一块300mm×300mm的背光板,图像上边缘偏亮、中心偏暗,灰度差达到30以上,直接导致机构件边缘定位在不同位置时出现偏差。
排查下来发现是背光板的驱动方式问题。普通背光板内部的LED灯珠是几路并联的,如果每路电流不一致,或者灯珠老化程度不同,亮度就分配不均匀。这时候要么更换更高质量的背光源,要么在控制器上做逐路恒流调节。
这里帮大家区分两个概念:恒压驱动和恒流驱动。LED的亮度与电流直接相关,恒压驱动下LED的电流会随温度漂移,产生亮度波动;恒流驱动则让每路LED电流保持稳定,亮度一致性明显更好。选背光源时,尽量选配恒流控制器,并且明确标注各路电流误差不超过±2%。检测项目中,背光均匀度直接影响精度,不少项目返工就是因为没有注意这一点。
如果你的控制器本身是恒流的,但背光板亮度还是不匀,那大概率是LED灯珠个体差异或扩散板质量的问题。可以用相机分别拍背光板四角和中心的灰度值,做一个差值对照。如果中心比边缘暗,说明扩散板对中心区域的散射不足,需要更换扩散系数更高的匀光板。
5.4 从成像异常倒推硬件问题的方法
当图像出现异常时,很多人的第一反应是调算法或调参数。我个人的习惯是,先把算法排除在外,从成像链路倒推。
我列一个排查顺序,大家可以参考:
- 看图像噪声特征:如果整体噪点增加,优先怀疑曝光不足或增益过高,检查光源亮度是否衰减。
- 看图像闪烁:如果亮度周期性变化,优先怀疑光源控制器不是恒流模式,或者频闪同步信号丢失。
- 看画面局部过曝:优先检查是否有镜面反射光进入镜头,尝试调整光源角度或加偏振。
- 看边缘模糊:优先检查镜头光圈是否过大、工作距离是否合规、是否有震动。
- 看灰度漂移:如果同一工件在相同参数下,今天拍的灰度值和三天前不一样,优先考虑光源亮度和相机白平衡是否设置成了自动模式。
有一次客户反映检测系统误判突增,我远程看图像发现,整体灰度从原来的150降到了110左右,算法的固定阈值完全失配。排查半天,发现是光源用了一年多,LED灯珠光衰超过20%,亮度下降导致图像整体变暗。换上新的光源后,恢复如初。这件事给我们的教训是:视觉系统一定要建立光源亮度的定期校准制度,最好每周拍一次标准白板,记录灰度均值,发现偏移超过某个阈值就及时更换光源。
6. 一些个人体会
做金属外观检测这些年,我自己最大的体会是:算法决定的是检测能力的上限,而光学成像决定的是检测能力的下限。一个再先进的深度学习模型,如果成像端没有把缺陷从背景里“捞”出来,训练数据质量不好,模型上线后很快会被现场复杂的表面状态击穿。
所以在方案阶段,我强烈建议多花几天时间做光学实验,把客户提供的样品、缺陷样板甚至有意制造的不合格品,用不同光源从头到尾拍一遍,记录对比度数据。很多时候你会惊喜地发现,同样的缺陷换一种打光方式,对比度能提升10倍以上,到时候算法用最简单的阈值分割就能稳定跑。
另外就是不要迷信某一个方案“万能”。明场和暗场看似对立,其实在同一个项目中可以互补使用。比如先暗场检出划痕,再明场检出色差,两种信号一叠加,缺陷分类的准确率会大幅提升。
最后再分享一个小技巧:在调试现场,经常被客户问“这张图为什么这么暗/花花绿绿的”。这时候不要只盯着屏幕说,而是拿一张白纸放在工件表面的同一位置拍一张,对比图像。如果白纸拍出来是均匀的,说明光源和相机没有问题,差异来自工件表面本身;如果白纸拍出来都有亮暗,说明光源或镜头需要调。这个方法简单有效,既能帮自己排查故障,也能让客户直观理解“问题不在光,而在产品的表面状态”。
项目式的工作就是这样,每一个稳定运行的检测系统背后,都是在实验室里反复试出来的不同组件组合。希望这篇文章能帮大家在面对金属表面缺陷检测时少走一些弯路,把更多的时间放在真正有价值的地方上去。