AI外观缺陷检测:从实验室到产线,我踩过的那些坑

说实话,第一次在产线上部署AI外观检测系统的时候,我差点没被现场的老师傅骂死。不是因为算法不准,而是因为我把问题想简单了。当时我满脑子是卷积神经网络那点事儿,觉得只要数据够多、算力够强,什么缺陷都能给揪出来。结果呢?第一条产线跑了三天,误检率高到离谱,把好好的一堆良品全给红了脸。那几天我连觉都睡不踏实。

后来我才明白,外观检测这个活儿,十之七八的功夫在成像,算法反倒是最后的那一哆嗦。你想象一下,一个铸件表面的细微划痕,如果打光角度不对,在相机里根本就是隐形人。我踩过的第一个坑,就是用了普通的条形光源,结果把表面纹理的阴影当成了缺陷,好家伙,模型学得倒是快,直接把阴影当成了标准故障,那叫一个惨不忍睹。

工业视觉检测环形光源打光效果示意图
工业视觉检测环形光源打光效果示意图

一、成像质量决定算法上限

一、成像质量决定算法上限
一、成像质量决定算法上限

干这行久了,你会发现一个铁律:算法再强,也救不了烂图。很多工程师上来就堆模型,却忽略了最根本的物理问题——怎么让缺陷在图像里现形。以金属表面为例,常见的缺陷类型有划痕、凹坑、脏污,每种缺陷的光学特性都不一样。划痕是方向性的,凹坑是漫反射,脏污则各有各的脾气。所以你得先搞清楚,你的光源是环形光、同轴光还是穹顶光,波长是多少,打光角度是什么。这玩意没有标准答案,全靠试。我记得有一次为了检测一个拉丝面板上的细微划痕,我们试了七种光源组合,最后发现低角度环形光配合偏振片才能把划痕从拉丝纹理中分离出来。那感觉,就像在一堆沙子里找芝麻,眼睛都快瞎了。

再说相机分辨率。别以为像素越高越好,传感器本身也有噪声。你算算:如果检测视野是100mm×100mm,要看到0.1mm的缺陷,至少需要1000像素对应100毫米,也就是1个像素对应0.1mm,理论上这才能勉强分辨。但实际上,因为光源和噪声,你得留出三倍余量。所以选相机时,别只盯着千万像素,还得看像元尺寸量子效率。我一般会用公式(视野尺寸/最小缺陷尺寸)×3 来估算需要的像素数。比如视野100mm,最小缺陷0.1mm,那就是100/0.1×3=3000像素,所以选择2000万像素的相机才能比较稳妥。

二、传统视觉?深度学习?别被忽悠了

很多人一听AI就觉得搞一搞深度学习就万事大吉,其实不然。传统视觉算法在特定场景下依然吊打深度学习,尤其是面对规则性强的缺陷,比如尺寸测量、位置偏差,传统方法又稳定又快。而深度学习的强项在于那些靠人眼都很难描述的缺陷,比如纹理上的细微变化、不规则形状的瑕疵。所以合理的做法是先尝试传统方案,不满足再上深度学习。我自己经历过一个项目:检测手机中框的划痕,传统方法用滤波加阈值,误检率在8%左右,怎么调都下不来。后来换了个小型分类网络,误检率降到了1%以下,但代价是需要大量标注数据,而且推理速度也慢。所以并没有绝对的优劣,只有场景的匹配。

别迷信什么端到端。实际工程里,我常常把传统视觉和深度学习结合起来。比如先用传统算法快速定位缺陷区域,再用深度学习对局部区域做分类。这样既能保证速度,又能提升准确率。我记得有个大佬说:深度学习不是银弹,而是工具箱里的新工具。这话真没毛病。

深度学习与传统视觉检测流程对比图
深度学习与传统视觉检测流程对比图

三、数据标注这件“脏活累活”

三、数据标注这件“脏活累活”
三、数据标注这件“脏活累活”

说真的,数据标注是整个项目里最枯燥、最耗时的部分,但也是最不能省的部分。很多人以为买几万张图扔给模型训练就行了,结果发现标注质量参差不齐,模型学了一堆错误特征。我见过最离谱的一次,一个实习生把划痕和污点混着标,模型直接就疯了。所以你得定好标注规范:什么算缺陷、什么算正常纹理、缺陷边界画到哪一格。这些都要有明确的细则。另外,类别不平衡也很常见。良品可能占99%,缺陷占1%,如果你不处理,模型会学会“无脑判良品”,反正准确率也是99%。这时候得用焦点损失或者过采样等手段。

还有就是数据增强。别光那点翻转、旋转,对于外观检测,你得模拟不同的光照条件,因为现场环境光不可能完全稳定。我们有时候会故意把亮度调高调低,甚至加入一些噪声。这样模型才能真正在产线上站住脚。

四、部署时的那些“玄学”问题

四、部署时的那些“玄学”问题
四、部署时的那些“玄学”问题

好不容易模型训练好了,部署到工控机上,又会有新的幺蛾子。最典型的,环境光的干扰。我有个项目在白天光线好的时候一切正常,到了傍晚阳光斜照进来,误检率瞬间暴涨。后来我们只好加了个遮光罩,并在算法里做了环境光补偿。另外,现场往往有震动,相机固定不稳,图像会模糊。这时候你得考虑机械结构的防震设计。

再说算力。你不可能在产线上放个A100,成本太高。一般用英伟达的Jetson或者边缘计算盒子。这时候就得做模型压缩,比如量化、剪枝,把模型从几百MB压到几十MB。但压缩后精度可能下降,你得反复测试。还有帧率,检测速度必须跟得上产线节拍。如果治具转一圈才让拍照,那检测时间就得卡死。我们通常用异步流水线来隐藏推理时间,让采集和检测并行。

最后,还有个致命的坑——误检和漏检的平衡。客户往往更厌恶漏检,因为缺陷漏到下游就是事故。但误检太多,会拉低良率,交不了货。所以调试时你得设计一个“优先级”,在算法层面调整阈值。这不仅是技术,更是艺术。我一般会跟客户确认:是希望宁可杀错一千,还是可以放过一部分?这个决定了你最后调参的方向。

说了这么多,其实核心就一句话:AI外观缺陷检测,本质是一个系统性工程,从光学到算法到部署,每一环都能让你翻车。但正因如此,干这行才有意思,对吧?

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:AI外观缺陷检测:从实验室到产线,我踩过的那些坑
文章链接:https://www.yqhljx.com/list_9/994.html