3. 缺陷数据集介绍:公开数据集的特点、规模与适用场景
做缺陷检测,数据是绕不开的坎。我入行那会儿,最头疼的就是找不到合适的公开数据集,只能自己吭哧吭哧拍图、标图。现在好多了,几个经典数据集已经成了行业标杆。这一节,我把它们掰开揉碎了讲清楚。
3.1 MVTec AD:工业异常检测的“标准考卷”
MVTec AD 是目前用得最广的工业异常检测数据集,没有之一。它由德国 MVTec 公司发布,专门为无监督异常检测设计。
核心特点:只提供正常样本用于训练,测试集包含正常和缺陷样本。说白了,就是让模型学会“什么是好的”,然后去发现“不好的”。
| 属性 | 具体数值 |
|---|---|
| 物体类别 | 15 类(10 类物体 + 5 类纹理) |
| 训练集图像 | 3,629 张(全部为正常样本) |
| 测试集图像 | 1,725 张(含正常与缺陷) |
| 缺陷类型 | 划痕、凹坑、污染、变形、破损等 70+ 种 |
| 图像分辨率 | 700×700 ~ 1024×1024 |
适用场景:
- 无监督异常检测算法评估(如 PatchCore、PaDiM、CFLOW-AD)
- 纹理表面缺陷检测(如皮革、木材、瓷砖)
- 物体表面缺陷检测(如螺丝、坚果、药丸)
我的经验:MVTec AD 的缺陷种类多,但每类缺陷的样本量其实不大。我曾经用它做迁移学习预训练,效果不错。但要注意——它不包含真实产线上的光照变化和噪声,所以模型在真实场景中往往需要微调。
3.2 NEU-DET:钢铁表面的“专业题库”
NEU-DET 来自东北大学,专注于热轧钢带表面缺陷。如果你做的是金属表面检测,这个数据集绕不开。
| 属性 | 具体数值 |
|---|---|
| 缺陷类别 | 6 类 |
| 每类样本数 | 300 张 |
| 总图像数 | 1,800 张 |
| 图像分辨率 | 200×200 |
| 标注方式 | 类别标签 + 缺陷区域边界框 |
六类缺陷分别是:
- 裂纹(Crazing)
- 夹杂物(Inclusion)
- 斑块(Patches)
- 麻点(Pitted Surface)
- 氧化皮(Rolled-in Scale)
- 划痕(Scratches)
避坑指南:我曾经直接用 NEU-DET 训练 YOLOv5,发现模型对“裂纹”和“划痕”经常混淆。后来仔细一看,这两类在 200×200 的低分辨率下确实很像。建议做数据增强时,专门增加一些裁剪和旋转,帮模型区分这些易混类。
适用场景:
- 钢铁、金属表面缺陷检测
- 小目标缺陷检测算法验证
- 有监督缺陷分类与定位
3.3 KolektorSDD:电子元件的“实战案例”
KolektorSDD 来自斯洛文尼亚的 Kolektor 集团,是一个真实产线采集的数据集。它聚焦于电子换向器表面缺陷。
| 属性 | 具体数值 |
|---|---|
| 总图像数 | 399 张 |
| 缺陷图像数 | 52 张 |
| 正常图像数 | 347 张 |
| 图像分辨率 | 500×1240(高分辨率) |
| 缺陷类型 | 表面裂纹、破损 |
为什么它特别?这是真正的工业产线数据,光照、角度、背景都不完美。我拿它做测试时,发现很多在 MVTec AD 上跑得很好的模型,到这里直接掉点 10% 以上。原因很简单——真实数据比实验室数据“脏”得多。
适用场景:
- 真实产线环境下的缺陷检测
- 小样本缺陷检测(只有 52 张缺陷图)
- 高分辨率图像下的缺陷定位
3.4 三大数据集对比:选哪个?
我经常被问到:“这三个数据集,我该用哪个?” 嗯,这取决于你的目标。
| 对比维度 | MVTec AD | NEU-DET | KolektorSDD |
|---|---|---|---|
| 数据规模 | 大(5,354 张) | 中(1,800 张) | 小(399 张) |
| 缺陷多样性 | 高(70+ 种) | 中(6 类) | 低(2 类) |
| 真实度 | 中(实验室环境) | 中(实验室环境) | 高(真实产线) |
| 标注粒度 | 像素级分割 | 边界框 | 图像级标签 |
| 推荐用途 | 算法对比、基准 | 金属检测、分类任务 | 真实场景验证 |
我的建议:做学术研究,先用 MVTec AD 刷基准;做工业落地,一定要在 KolektorSDD 或自己采集的数据上验证。NEU-DET 适合做金属领域的专项优化。别指望一个数据集解决所有问题——我踩过这个坑。
3.5 数据集选择决策流程
下面这张图是我自己总结的选型思路,帮你快速定位该用哪个数据集。
3.6 我的个人建议
最后说几句掏心窝的话。公开数据集是很好的起点,但别迷信它们。我见过太多人在 MVTec AD 上刷到 99% 的 AUC,一到产线就崩。为什么?因为公开数据集的缺陷是“摆拍”的,真实缺陷千奇百怪。
重要提醒:如果你要做工业项目,我建议把公开数据集当作“练手工具”,最终一定要建立自己的数据集。哪怕只有几百张图,也比用公开数据集硬套强。我曾经在一个 PCB 检测项目上,用 MVTec AD 预训练 + 自己 200 张产线数据微调,效果比只用公开数据好了 30%。
嗯,数据集就讲到这里。记住一句话:没有最好的数据集,只有最适合你问题的数据集。