1. 缺陷检测概述:什么是工业缺陷检测
大家好,我是老张。做机器视觉这行十几年了,今天咱们聊聊工业缺陷检测。
说白了,工业缺陷检测就是给产品做「体检」。生产线上的零件、PCB板、钢材、纺织品,它们有没有划痕、有没有脏污、尺寸对不对,都得靠检测来把关。我刚开始入行时,觉得这活儿挺简单——不就是看看东西好不好吗?后来才发现,这里面的门道深着呢。
1.1 什么是工业缺陷检测
工业缺陷检测,就是用机器代替人眼,自动判断产品有没有问题。你想想看,一条生产线每分钟产出几百个零件,靠人一个个看,眼睛不瞎才怪。
我记得2015年给一家电子厂做项目,他们质检员一天要看上万块PCB板。结果呢?漏检率高达5%,客户投诉不断。后来上了自动检测系统,漏检率直接降到0.1%以下。
工业缺陷检测的核心就三件事:
- 发现缺陷——找到产品上的异常区域
- 分类缺陷——判断这是什么类型的缺陷
- 判定等级——决定这个产品是合格、返修还是报废
关键点:缺陷检测不是「有缺陷就报废」,很多行业允许一定程度的微小缺陷。比如钢材表面的轻微划痕,只要不影响使用,是可以接受的。这个「度」怎么把握,才是真正的技术活。
1.2 传统视觉与深度学习对比
说到检测方法,就不得不提传统视觉和深度学习这两条路。我两种都做过,踩过的坑也不少。
传统视觉,说白了就是「写规则」。比如检测PCB焊点,我设定一个灰度阈值,焊点亮度低于这个值就算缺陷。这种方法简单直接,但有个致命问题——规则写死了,换个产品就得重新调参数。
我曾经给一家汽车零部件厂做项目,用传统视觉检测表面划痕。调了整整两周参数,终于能跑了。结果第二天换了一批材料,光照条件变了,所有参数都得重来。那叫一个崩溃。
深度学习就不一样了。它不需要你写规则,而是给模型看大量样本,让它自己学什么是好的、什么是有问题的。就像教小孩认猫——你不需要告诉他猫有胡须、有尾巴,给他看几百张猫的照片,他自然就认识了。
| 对比项 | 传统视觉 | 深度学习 |
|---|---|---|
| 开发周期 | 短(1-2周) | 长(需要数据准备) |
| 适应性 | 差(换产品需重调) | 好(可迁移学习) |
| 缺陷种类 | 只能检测已知缺陷 | 可发现未知缺陷 |
| 数据需求 | 少(几十张即可) | 多(需要上千张) |
| 部署难度 | 低(普通工控机) | 高(需要GPU) |
我的建议:别盲目追深度学习。如果你的产品缺陷很固定、环境很稳定,传统视觉完全够用,成本还低。但如果你面对的是复杂纹理、多变缺陷,那就得上深度学习。我现在的做法是「传统+深度」混合——简单缺陷用传统,复杂缺陷用深度。
1.3 典型应用场景
说了这么多理论,咱们看看实际场景。我挑三个最常见的行业讲讲。
PCB缺陷检测
PCB板上的缺陷种类太多了——短路、断路、焊点不良、铜箔划伤、孔偏位...我做过一个PCB检测项目,客户要求检测20多种缺陷,每分钟检测30块板。
嗯,这里要注意:PCB检测最大的难点是反光。板子上的铜箔亮得跟镜子似的,打光角度稍微不对,缺陷就被反光盖住了。我后来用了同轴光源+偏振片,才把这个问题解决。
钢材表面检测
钢材检测,说白了就是在「灰茫茫一片」里找异常。钢板表面有氧化皮、有轧制纹路,缺陷可能是裂纹、麻点、压痕、划伤...
我记得有个项目,客户说「只要检测出大于1mm的裂纹就行」。听起来简单吧?但实际生产线上,钢板以每秒2米的速度移动,相机曝光时间只有几毫秒。而且钢板表面温度高达800度,普通相机根本扛不住。
最后我们用了线阵相机+水冷防护罩,配合高速图像处理算法,才勉强达到要求。所以说,工业检测不只是算法问题,硬件选型同样重要。
纺织品缺陷检测
纺织品检测,我个人觉得是最头疼的。布料的纹理千变万化,今天织的布和明天织的布,纹理可能完全不同。而且缺陷种类也多——断经、断纬、油污、色差、破洞...
传统视觉做纺织品检测,基本是「死路一条」。因为布料的纹理太随机了,你根本写不出通用的规则。深度学习在这里就大显身手了——给它看几百张正常布料的图片,它就能学会「什么是正常的」,一旦出现异常,立刻报警。
避坑指南:我曾经在纺织品项目上犯过一个错误——只收集了白色布料的样本。结果模型在白色布料上跑得很好,一换到蓝色布料,准确率直接掉到60%。后来我才意识到,深度学习模型对颜色、纹理非常敏感,训练数据必须覆盖所有可能的变化。
知识体系总览
下面这张图,是我对缺陷检测知识体系的总结。你看完应该能有个整体印象。
这张图把缺陷检测的核心内容串起来了。你从定义出发,理解它要解决什么问题;然后对比两种方法,知道什么时候该用哪个;最后落到具体场景,看看实际怎么干。
我个人觉得,做缺陷检测最重要的不是算法有多牛,而是对场景的理解有多深。你连产品长什么样、缺陷长什么样都没搞清楚,再牛的算法也是白搭。
一句话总结:工业缺陷检测,就是用技术手段给产品做「体检」。传统视觉适合简单稳定的场景,深度学习适合复杂多变的场景。选哪个,看你的产品、环境和预算。