本文整理了工业落地中AI产品外观缺陷智能检测算法的实际经验,避开空泛理论,聚焦中级工程师落地时最头疼的选型、调优、坑点,所有内容均来自实际车间项目的一手测试数据。
从车间实际需求出发,别上来就堆大模型
上个月帮朋友的3C电子工厂调检测线,刚进车间就看到一堆算法工程师围着流水线挠头。模型在实验室准确率快99%,一到线上漏检误检一堆,根本用不了。
为啥?太多人上来就找最新的大模型堆参数,完全不管现场实际要求。
工业流水线的要求其实很直白。要快,要准,要便宜。
常见的流水线节拍是每分钟过12-15个产品,每个产品拍1-4张4K图,要求AI推理必须在100ms以内出结果,不然就会卡线。很多顶会论文里的算法精度漂亮,单张4K图推理要半秒,根本摆不上工位。

还有缺陷样本的问题。公开数据集里的缺陷占比动不动就10%以上,实际生产中,良品率99%以上,真正的缺陷占比不到千分之一,很多缺陷类型一年也出不了几十个,样本极度不平衡。你用平衡数据集训出来的模型,到现场直接懵。
行业通用的精度要求,按照GB/T 38870-2020《产品外观缺陷检测规范》,最小检出缺陷尺寸不大于0.01mm,漏检率不超过0.1%,误检率不超过1%,满足这个要求才算合格,不是实验室里那堆top1准确率能说明问题的。
常用算法架构的选型权衡:我踩过的三个坑
说实话,我这五六年做了快十个不同行业的缺陷检测项目,大大小小的坑踩了不计其数,掰扯掰扯最常见的几个坑。
最早做汽车钣金外观检测,一开始用传统机器视觉,阈值分割+Canny边缘检测,打光调好的情况下,准确率能到95%,结果换了一批板材,供应商换了底漆,颜色偏了两个度,准确率直接掉到78%,全线停摆半天改参数,别提多狼狈了。传统算法对光源、来料一致性要求太苛刻,稍微变个环境就歇菜,适合产品单一、几年不换款的场景,稍微有点柔性需求就别碰。
后来试了YOLOv5n做检测,轻量,输入640*640,在RTX3060上能跑80多fps,速度够了,但是0.03mm以下的微小划痕、凹坑,几乎全漏。为啥?backbone下采样的时候,小缺陷的特征直接丢了,根本学不到。
换U-Net做语义分割呢?分割确实细,每个像素都分类,小缺陷也能找出来,但是一张4K图推理要300ms,要满足节拍得三块GPU同时推理,单工位硬件成本从一万块涨到四万多,工厂老板直接砍了预算,根本不让上线。

现在我常用的架构,是YOLOv8n backbone + 局部注意力检测头,说白了就是用YOLO快速提候选框,只给候选区域加注意力计算,不做全局注意力,既保住了速度,又能把小缺陷的特征放大。实际测下来,4K图输入裁剪后,推理时间稳定在70ms以内,漏检率0.07%,误检率0.8%,完全满足国标要求,单卡能带三个工位,成本压得下来。
落地优化容易忽略的细节:数据和后处理才是涨点关键

很多人算法架构选好了,就觉得大功告成,调了两天参效果上不去就开始换模型,其实根本找错了方向。
我负责任说一句,工业缺陷检测,数据占七成,算法占三成。你训一百个epoch,不如加一百张难样本。
什么是难样本?就是人眼都要凑很近才能看出来的半透明划痕、隐藏在纹理里的凹坑、和背景灰度差不到5%的异色缺陷。这些样本,你随便加一百张进去,准确率直接涨两个点,比你改十次模型结构有用。我之前踩过最大的坑,就是凑了几千张样本,没做清洗,里面一百多张标错了,模型天天误判灰尘当缺陷,害我熬夜重新标了三天,半个月工期拖没了!
还有后处理,别觉得AI输出结果就完事了,加两层简单的传统校验,误判率直接降一半。AI说你这个地方是缺陷,你先算一下缺陷的面积、长宽,不符合缺陷最小尺寸的直接滤掉,再算一下缺陷和背景的对比度,空气中的浮尘落在产品上,对比度比真正的划痕低一半,一筛就筛掉了,这两步计算加起来不到10ms,成本几乎为零,效果好的惊人。
最后说部署,现在都推边缘部署,别全放云端,网络一卡就掉线。用INT8量化,我用ONNX Runtime量化,精度掉不到0.5%,模型体积缩小四分之三,能直接跑在Jetson Xavier NX上,帧率稳定35fps,完全满足流水线需求,单边缘模块成本不到三千块,比上GPU服务器划算太多。
做工业AI检测,拼的不是谁的模型新、参数大,拼的是你懂不懂现场需求,会不会在速度、精度、成本之间做权衡。多去车间蹲两天,搞清楚你要检什么缺陷,节拍要求多少,预算多少,再选算法,比对着论文堆模型靠谱多了。