传统机器视觉依赖人工设计特征,面对划痕、脏污、变形等复杂缺陷时规则越写越多、误判率却居高不下。本文结合我们在多个质检项目的落地经验,梳理深度学习缺陷检测的完整流程——从数据集构建、模型选型、训练优化到边缘部署,给出一套可直接复用的工程方法。
表面缺陷检测是机器视觉工业应用里最难啃的一类问题,难点集中在三处:缺陷形态不定(划痕方向、长短、深浅随机)、正负样本极不均衡(良品占 99% 以上)、传统算法泛化差(换一批物料、换一个批次光照,规则就失效)。
传统流程是"打光 + 找特征 + 写规则":工程师针对每种缺陷设计边缘提取、灰度阈值、Blob 分析的组合。缺陷种类一多,规则之间互相打架——为了检出 A 缺陷放宽阈值,B 缺陷的误判就上来了。最终陷入"永远在补规则"的循环。
深度学习的价值在于让模型自己学特征。只要数据覆盖到位,同一套网络可以同时识别划痕、压伤、异物、气泡等多种缺陷,且对光照波动、物料批次差异的鲁棒性明显更好。我们的项目实测中,深度学习方案相比传统算法,误判率普遍能从 5-8% 降到 2% 以下。
工业场景里"数据比模型贵"。我们在项目初期就明确一条原则:先规划数据,再谈网络结构。数据集构建要点:
按检测需求分三类,选型思路完全不同:
| 任务类型 | 输出 | 推荐模型 | 典型场景 |
|---|---|---|---|
| 分类(有无缺陷) | OK / NG | ResNet18 / EfficientNet-B0 | 整件快检、粗筛工位 |
| 目标检测(定位缺陷) | 框 + 类别 | YOLOv8-S / RT-DETR | 缺陷位置追溯、分区域统计 |
| 语义分割(缺陷形状) | 像素级掩膜 | U-Net / DeepLabV3+ | 缺陷面积定量、尺寸测量 |
与互联网图像数据相比,工业缺陷数据有鲜明的特点,训练策略要针对性调整:
实验室 mAP 0.95 的模型,到产线可能直接不可用。部署环节的重点:
一个典型部署指标:500 万像素图像,YOLOv8-S + TensorRT FP16,工控机(RTX 系列显卡)单张推理 25-40ms,配合四工位并行,满足 60 件/分钟的全检节拍。
PyTorch → ONNX → TensorRT,FP16 量化后推理速度普遍提升 2-4 倍,精度损失小于 0.5%,是边缘部署的标准链路
推理服务封装成 TCP/HTTP 接口或动态库,与 PLC 触发、相机取图、剔除机构联动,单件检测节拍控制在产线要求以内
模型输出叠加置信度阈值双区间:中间灰度区转人工复判,避免"模型一言堂";同时保留规则算法做安全兜底
所有 NG 图自动存档 + 定期回流训练,模型版本化管理,新模型先影子运行(只记录不执行)一周再切换
深度学习缺陷检测不是"调一个模型",而是一条数据 → 训练 → 部署 → 回流的完整工程链路。我们的经验排序是:数据质量 > 标注一致性 > 部署工程化 > 模型结构选型。把前两件事做扎实,模型往往水到渠成。
如果您正在评估产线的视觉检测改造,欢迎联系我们做技术交流——从打光方案、相机选型到模型落地,我们可以提供端到端的实施支持。