1. 缺陷检测概述

大家好,我是你们这节课的讲师。咱们直接进入正题——工业缺陷检测。说白了,就是让机器代替人眼,在生产线上找出产品表面的瑕疵。你可能觉得这很简单,不就是“找茬”吗?但真正做起来,里面的门道可不少。

1.1 什么是工业缺陷检测?

工业缺陷检测,是指在工业生产过程中,利用视觉传感器(比如工业相机)采集产品图像,然后通过算法自动识别出产品表面的划痕、脏污、裂纹、气泡、缺料、变形等异常区域。它的核心目标就两个:“检得出” 和 “检得准”。

核心指标:

  • 过杀率(False Positive Rate):把好产品误判为坏产品的比例。过杀率高了,成本就上去了。
  • 漏检率(False Negative Rate):把坏产品当成好产品放过去。漏检率高了,客户投诉就来了。

我刚开始做这个方向时,总觉得算法能搞定一切。结果在一个PCB项目中,因为光照不均匀,算法把正常的焊点纹路全当成了缺陷,过杀率直接飙到30%。嗯,从那以后,我每次做项目都会先花大量时间在打光方案上。

1.2 典型应用场景

缺陷检测的应用场景非常广。我挑几个典型的,你感受一下。

行业 检测对象 常见缺陷类型 检测难点
PCB(印刷电路板) 裸板、焊点、线路 短路、断路、少锡、锡珠、划伤 反光强、元件密集、缺陷尺寸小
钢材 钢板、钢带、钢管 裂纹、夹杂、孔洞、划痕、压痕 表面纹理复杂、运动速度快、光照变化大
纺织品 布料、无纺布、纤维 断经、缺纬、油污、破洞、色差 纹理周期性重复、缺陷形态多变、柔软易变形
光伏 硅片、电池片、组件 隐裂、碎片、脏污、断栅、色差 材料脆、缺陷隐蔽、对光照敏感
3C电子 手机外壳、屏幕、连接器 划伤、压伤、毛刺、脏污、组装不良 外观要求极高、缺陷种类多、节拍快

你看,不同行业的缺陷长得完全不一样。PCB上的短路是致命的,但纺织品上的一根断经可能只是外观瑕疵。所以,没有一套算法能通吃所有场景。这是我踩过最大的坑之一。

1.3 传统方法 vs. 深度学习方法

聊完场景,咱们来对比一下技术路线。我大概在2017年之前,主要用传统方法。后来深度学习火了,我才慢慢转型。这两种方法各有千秋,我帮你梳理一下。

传统方法:手工特征 + 分类器

传统方法的思路很直接:先设计一些特征(比如边缘、纹理、颜色直方图),然后用这些特征训练一个分类器(比如SVM、随机森林)。

  • 优点:可解释性强,计算量小,对硬件要求低。
  • 缺点:特征设计依赖专家经验,泛化能力弱,换一个产品就得重新调参。

我记得有一次做钢材表面检测,为了设计一个能区分“划痕”和“压痕”的特征,我熬了整整一周。最后发现,换个光照角度,特征就失效了。那种感觉,真的很崩溃。

深度学习方法:端到端学习

深度学习,尤其是卷积神经网络(CNN),让事情变得简单了。你只需要把图像扔进去,网络自己就能学习到最有效的特征。

  • 优点:特征自动学习,泛化能力强,精度高。
  • 缺点:需要大量标注数据,计算量大,可解释性差,容易过拟合。

我的建议:

如果你的缺陷特征非常明显(比如大块脏污),且产品种类单一,传统方法可能更快、更稳。但如果缺陷形态多变、背景复杂,或者你希望快速迭代,深度学习是更好的选择。我个人习惯是,先用传统方法快速验证可行性,再决定是否上深度学习。

1.4 核心知识体系

为了让你对整个章节有个宏观认识,我画了一张图。这张图也是我们这门课的核心骨架。

缺陷检测核心知识体系 缺陷检测核心知识体系 缺陷检测概述 数据集构建 检测算法 模型部署与优化 数据采集与标注 数据增强与平衡 分类/检测/分割 小样本/异常检测 模型压缩与量化 边缘端部署 课程核心逻辑 数据是基础 → 算法是核心 → 部署是落地 三者缺一不可,任何一个环节出问题,项目都可能失败

你看,整个知识体系分成三大块:数据集构建、检测算法、模型部署与优化。这三块是环环相扣的。没有好的数据,再牛的算法也白搭;算法再好,部署不到产线上也是空中楼阁。

避坑指南:

我曾经在一个项目中,花了80%的时间调算法,结果发现是数据标注质量太差,导致模型怎么都学不好。后来重新标注数据,模型精度直接提升了15个百分点。所以,请一定重视数据。数据质量决定了模型精度的上限,算法只是逼近这个上限的手段。

1.5 本章小结

这一章,我们聊了工业缺陷检测的定义、典型应用场景,以及传统方法和深度学习方法的对比。你想想看,是不是对缺陷检测有了一个整体的认识?

我个人觉得,做缺陷检测,最重要的不是算法有多炫酷,而是对问题的理解有多深。理解产品、理解缺陷、理解产线环境,这些往往比调参更重要。接下来的章节,我们会深入每一个环节,从数据到算法再到部署,一步步带你走完整个流程。