公司动态
AI工业视觉质检:缺陷检测从0到1落地指南
工业视觉质检是 AI 落地最实的场景之一产线上一台相机加一个推理盒子替掉人眼盯屏幕的质检工位账很好算。但真做过项目的人都知道从实验室跑通 demo到产线 7×24 小时稳定运行中间隔着一条深沟。本文按实际项目节奏把缺陷检测从 0 到 1 的关键决策点梳理一遍包括数据、模型、部署三个层面的坑。先想清楚工业质检难在哪和互联网 CV 任务比工业缺陷检测有四个反直觉的特点。缺陷样本极度稀缺。良率 99.9% 的产线攒一个月可能只有几十张缺陷图还经常凑不齐缺陷类型——这正是异常检测anomaly detection路线在工业界比监督检测更吃香的原因。类别严重不平衡且边界模糊。划痕多深算缺陷、色差多少算超差标准往往写在老师傅脑子里标注一致性比想象中差。项目早期一定要拉着工艺、质检、客户三方把判定标准量化成可执行的规则否则模型永远在追一个移动的靶子。误检和漏检的代价不对称。漏检放走不良品会流向客户误检过高则拉低产线直通率、增加复判人力。指标设计必须反映这个不对称性——通常漏检率的容忍度比误检率低一个数量级。成像条件决定上限。打光方案同轴光、条形光、穹顶光、相机选型、镜头畸变控制这些光学工程对最终效果的影响常常大于模型结构。见过太多项目模型换了三轮最后发现是光源频闪的问题。数据策略少样本下的生存之道冷启动阶段的数据工作建议按这个顺序推进先采后标定标再扩首批采 500-2000 张良品图 尽量多的缺陷图用一小批双人标注的数据评估标注一致性Cohens Kappa达标后再放量缺陷类型分级把缺陷按发生频率和检出难度分级高频易检的先上线低频难检的列入持续收集清单主动制造缺陷和工艺配合人为复现典型缺陷划、压、污染、缺料是冷启动阶段性价比最高的数据扩增手段图像增强要物理合理亮度、对比度、旋转、裁剪随便用但弹性形变、颜色抖动要小心——很多缺陷本身就是形态和颜色信息乱增强会把正例特征洗掉。一个经验数字单一工位、单一缺陷族监督方案通常需要每类缺陷 200-500 张有效样本才能收敛到可用水平异常检测方案用几百张良品图就能起步。模型选型三条技术路线监督检测/分割YOLOv8-seg、Mask R-CNN、RT-DETR缺陷类型明确、样本够、需要输出缺陷类别和精确位置时选它。优点是输出结构化、可解释缺点是对新缺陷类型零泛化。小目标缺陷建议上 FPN 高分辨率输入或者直接切 patch 检测再拼图。无监督异常检测PatchCore、PaDiM、FastFlow、EfficientAD只用良品训练学习正常长什么样推理时输出像素级异常热力图。PatchCore 在 MVTec AD 基准上长期霸榜思路是用预训练 backbone 抽 patch 特征建正常特征库推理时做最近邻检索打分。它几乎是为工业场景量身定做的冷启动快、对未见缺陷有一定检出能力、热力图还能辅助定位。半监督/混合方案产线稳定后积累的缺陷图越来越多常见做法是用异常检测做第一道筛低漏检监督分类做第二道判低误检两阶段串联平衡指标。另外大模型时代的视觉基础模型也在渗透这个场景SAM 用来辅助标注能省 70% 的标注工时CLIP 系的零样本异常检测WinCLIP、AnomalyCLIP在缺陷描述可文本化的场景值得一试但产线级稳定性目前还不如专用模型。动手试试用 anomalib 训练 PatchCoreIntel 开源的 anomalib 把主流异常检测算法封装成了统一 API十几行代码就能训练评估from anomalib.data import MVTecAD from anomalib.models import Patchcore from anomalib.engine import Engine # 1. 数据: 良品图放 train/good, 测试集含缺陷图与掩码 datamodule MVTecAD( root./datasets/mvtec, categorybottle, image_size256, train_batch_size8, ) # 2. 模型: WideResNet-50 backbone 核心集采样的最近邻库 model Patchcore( backbonewide_resnet50_2, layers[layer2, layer3], coreset_sampling_ratio0.1, # 核心集比例, 控显存和速度 num_neighbors9, ) # 3. 训练(实际是特征库构建) 测试 engine Engine(image_metrics[AUROC, F1Score], pixel_metrics[AUROC]) engine.fit(modelmodel, datamoduledatamodule) engine.test(modelmodel, datamoduledatamodule)换成自己的数据把 datamodule 换成Folder格式即可。MVTec AD 上 PatchCore 的图像级 AUROC 通常能到 98%但别被基准分数迷惑——产线光照漂移、来料批次差异对特征分布的冲击比基准数据集大得多。部署落地让模型在产线上活下来模型上线前后的工程清单按重要性排序推理加速边缘端首选 TensorRTNVIDIA或 OpenVI