1. 工业视觉概述:缺陷检测的定义、行业痛点、传统算法 vs 深度学习方案对比

大家好,我是这门课的主讲。在工业视觉这行摸爬滚打了十来年,踩过的坑比走过的路还多。今天咱们开篇先聊点实在的——到底什么是工业缺陷检测?为什么这行这么难?以及,为什么我最终选择了深度学习这条路。

1.1 缺陷检测到底在检测什么?

说白了,工业缺陷检测就是用机器代替人眼,在生产线上找出产品表面的瑕疵。你想想看,一个手机屏幕上有道划痕,一个轴承上有砂眼,一个电路板焊点虚焊了——这些都得在出厂前揪出来。

我个人的理解是,缺陷检测本质上是一个图像二分类 + 定位的问题。但实际做起来,远比想象中复杂。

核心定义:缺陷检测 = 利用光学成像与图像处理技术,自动识别产品表面或内部的异常区域,并判定其是否超出质量标准。

1.2 行业痛点:为什么这活儿这么难?

我在2016年接过一个项目,给某电子厂做手机中框划痕检测。当时觉得挺简单,结果一上手就傻眼了。我总结了几个最要命的痛点:

  • 缺陷样本稀缺:良品堆成山,次品找半天。你想想,一个良率99%的产线,要凑1000张缺陷图得拍多少产品?我那个项目,光收集数据就花了两个月。
  • 缺陷形态多变:同样是划痕,有深有浅、有长有短、有直有弯。传统算法写规则,写到崩溃也写不全。
  • 背景干扰严重:产品表面纹理、光照变化、油污、指纹……这些都不是缺陷,但算法经常把它们当成缺陷。这就是所谓的"过杀"。
  • 实时性要求高:产线节拍通常几百毫秒一个产品。你算法再准,跑不动也是白搭。
  • 标注成本极高:请一个质检员标注一张图要几秒钟,但标注一个像素级的缺陷区域,可能要几分钟。一个项目下来,标注费比算法开发费还贵。

我曾经踩过的坑:有个项目,我花了三周写了一套传统视觉算法,在实验室跑得飞起。结果一上产线,光照稍微变了一点,误报率直接飙到30%。从那以后我明白了一个道理——算法必须在产线环境下验证,别信实验室数据。

1.3 传统算法 vs 深度学习:一场降维打击

咱们直接上干货。我做了个对比表,你看完就明白为什么现在大家都在转深度学习。

对比维度 传统视觉算法 深度学习方案
特征提取 人工设计特征(边缘、纹理、形状) 自动学习特征,无需人工设计
泛化能力 差,换一个产品就得重新调参 强,同一模型可适配多种缺陷
抗干扰能力 弱,光照变化、背景干扰影响大 强,通过数据增强可大幅提升鲁棒性
开发周期 短(1-2周),但调试周期长 长(1-3月),但调试周期短
硬件需求 低,普通工控机即可 高,需要GPU加速
小样本能力 强,几张图就能调 弱,需要大量数据(但可用迁移学习缓解)
可解释性 强,每个步骤都可追溯 弱,黑盒模型,难以解释

你看这个表,传统算法在开发周期和硬件成本上有优势,但深度学习在泛化能力和抗干扰上完全是碾压。我个人习惯是:简单场景用传统算法,复杂场景直接上深度学习。

1.4 为什么我最终选择了深度学习?

2018年我接手了一个PCB板缺陷检测项目。板子上的线路密密麻麻,缺陷种类有十几种,包括短路、断路、毛刺、缺口、针孔……传统算法写到最后,规则堆了2000多行,还是搞不定。后来我用了一个简单的CNN分类网络,两周就达到了95%的准确率。

那一刻我意识到,深度学习不是锦上添花,而是雪中送炭。它解决了我最头疼的几个问题:

  • 特征不用手写了:网络自己学,我只管喂数据。
  • 泛化能力大幅提升:换一个型号的PCB,只需要微调一下,不用重写算法。
  • 抗干扰能力变强:光照变化、产品位置偏移,网络都能自适应。

我的建议:如果你是刚入行,别急着学传统算法。直接上手深度学习,从分类网络开始,然后做目标检测,最后做分割。传统算法可以作为补充,但主攻方向一定是深度学习。

1.5 本章知识体系总览

下面这张图,是我对工业视觉缺陷检测知识体系的梳理。你看完就能明白,咱们这门课要讲什么,以及各个知识点之间的关系。

工业视觉缺陷检测知识体系 第1章:工业视觉概述 数据采集与标注 模型训练与优化 部署与推理加速 光源与相机选型 数据增强策略 分类/检测/分割 损失函数与调参 模型量化与剪枝 TensorRT/ONNX 本课程共30章,覆盖从数据采集到模型部署的全流程 每章都包含实战案例与避坑指南

从这张图你能看到,咱们这门课是沿着数据 → 模型 → 部署这条主线展开的。第1章先打好基础,后面每一章都会深入一个具体的技术点。我保证,每一章都有我在项目中踩过的坑和总结的经验。