1. 课程导论与行业背景:工业缺陷检测的痛点、传统方法的局限性、深度学习带来的变革
大家好,我是这门课的主讲。在AI视觉落地领域摸爬滚打了七八年,我踩过的坑,可能比你们见过的模型还多。今天咱们开篇,不聊虚的,直接切入工业缺陷检测这个“硬骨头”。
为什么说它是硬骨头?你想想看,一条产线每分钟跑几百个零件,每个零件上可能只有针尖大小的划痕、零点几毫米的脏污。人眼盯久了会花,传统机器视觉遇到复杂纹理就懵。这活儿,说白了,就是让算法在“沙子堆里找特定形状的沙子”。
1.1 工业缺陷检测的“三座大山”
我在2018年给一家3C电子厂做项目时,深刻体会到了什么叫“甲方一句话,工程师跑断腿”。他们的需求很直接:漏检率低于0.1%,过杀率低于2%。听起来简单?做起来全是坑。
我把这些痛点归纳为“三座大山”:
- 数据之山:好产品堆成山,坏产品万里挑一。正负样本比例经常是1000:1甚至更高。模型根本没见过“坏”的长什么样。
- 缺陷之山:缺陷种类多、形态变。划痕有深有浅,脏污有大有小,气泡有圆有扁。同一个“划痕”类,可能长得完全不一样。
- 部署之山:产线要求实时检测,一秒钟处理几十张图。你实验室里跑得飞快的ResNet-152,上了嵌入式设备直接卡成PPT。
核心矛盾:工业场景要求“高精度+高速度+低资源”,但现实是“少样本+多形态+严苛部署环境”。这堂课,就是来解决这个矛盾的。
1.2 传统方法的局限性——我为什么放弃了“老路子”
早些年,工业检测基本是传统图像处理的天下。我记得2016年刚入行时,师傅教我用Halcon写规则:设定一个灰度阈值,把缺陷区域“抠”出来。
这种方法在特定场景下很管用。比如检测手机玻璃盖板的边缘崩边,背景单一,缺陷对比度高,一个简单的边缘检测算法就能搞定。但一旦遇到复杂情况,就彻底歇菜了。
我给大家列个对比表,看看传统方法的“天花板”在哪:
| 对比维度 | 传统方法(规则/特征工程) | 我的评价 |
|---|---|---|
| 光照鲁棒性 | 极差,换个光源就得重新调参 | 产线工人最怕换灯泡 |
| 缺陷泛化能力 | 只能检测“写死”的缺陷类型 | 新缺陷出现,算法直接“失明” |
| 复杂纹理背景 | 几乎无效,误报率飙升 | 比如检测布匹上的断纱,纹理一乱就崩 |
| 开发周期 | 每个项目都要重新设计特征 | 我做过一个项目,调参调了两个月 |
| 维护成本 | 高,产线微调就得改代码 | 甲方一个电话,你就得飞过去 |
说白了,传统方法就像“手写规则”。你告诉计算机:灰度值低于100的就是缺陷。但现实世界哪有这么简单?光照一变,灰度值全变了。我曾经在一个金属表面划痕检测项目上,用传统方法折腾了三个月,最后精度卡在85%上不去。甲方一句“这还不如人眼”,让我彻底转向了深度学习。
避坑指南:不要一上来就否定传统方法。如果你的场景是“高对比度、背景单一、缺陷类型固定”,传统方法依然是最快、最稳的选择。深度学习不是万能的,它只是解决了传统方法解决不了的那部分问题。
1.3 深度学习带来的变革——从“写规则”到“学特征”
深度学习的出现,本质上改变了我们解决问题的思路。以前我们是“告诉计算机什么是缺陷”,现在是“让计算机自己学会什么是缺陷”。
我把它总结为三个核心变革:
- 特征自动提取:CNN(卷积神经网络)能从原始像素中自动学习到从边缘、纹理到语义的多层级特征。你不需要再手动设计SIFT、HOG这些特征了。
- 强大的泛化能力:一个训练好的模型,能应对光照变化、角度偏移、甚至部分遮挡。这在传统方法里是不可想象的。
- 端到端的学习:输入图像,直接输出缺陷位置和类别。整个流程可以联合优化,精度远超传统pipeline。
但这里有个关键点:深度学习虽然强,但它“贪吃”。它需要海量的、高质量的标注数据。这就回到了我们刚才说的“数据之山”。
下面这张图,是我自己总结的“工业缺陷检测知识体系”,也是咱们这门课的核心脉络:
你看,整个知识体系是闭环的。数据增强喂饱模型,模型训练产出高精度网络,量化部署让网络在边缘设备上跑起来。任何一个环节掉链子,项目都推不动。
1.4 这门课能给你什么?
我不喜欢讲空话。这门课的目标很明确:
- 实战导向:每一章都对应一个真实项目中的痛点。不是纸上谈兵,是“我踩过坑,我告诉你哪里是坑”。
- 全链路覆盖:从数据采集、样本增强、模型训练,到量化、剪枝、部署,一条龙讲透。
- 代码可复现:所有核心代码都会提供,你拿过去改改就能用。
学习建议:我建议你准备一个笔记本,把每章遇到的“坑”记下来。工业项目里,一个参数设置不对,可能就导致整个模型废掉。这些细节,才是真正的经验。