引言
工业质检是计算机视觉技术最重要的落地场景之一。传统的缺陷检测方案通常需要为每种产品训练专门的模型,数据标注成本高、模型迭代周期长。Meta 发布的 SAM 2(Segment Anything Model 2)为这一领域带来了新的可能性——通过强大的零样本分割能力和灵活的 Prompt 机制,我们可以用更少的标注数据实现高精度的缺陷分割。
在参与视觉模型开发的实习项目中,我有幸深度参与了基于 SAM 2 的工业质检系统建设。本文将分享在电子元器件表面缺陷检测项目中落地 SAM 2 的完整经验,包括 Prompt Engineering 策略、模型微调方法和边缘设备部署优化。
SAM 2 的核心优势不在于它能替代所有专用模型,而在于它提供了一个强大的通用基座,大幅降低了新场景的适配成本。
SAM 2 架构解析
SAM 2 在原始 SAM 的基础上引入了时序建模能力,使其能够处理视频序列中的目标分割。其核心架构由三个模块组成:
- Image Encoder — 基于 Hiera(Hierarchical Vision Transformer)的图像编码器,提取多尺度视觉特征。相比 SAM 的 ViT-H,Hiera 在保持精度的同时推理速度提升 6 倍
- Prompt Encoder — 支持点(point)、框(box)、文本(text)和掩码(mask)四种 Prompt 类型,将用户意图编码为条件向量
- Mask Decoder — 轻量级的 Transformer 解码器,融合图像特征和 Prompt 条件,输出高质量的分割掩码
对于工业质检场景,我们主要使用静态图像模式,重点利用 SAM 2 的 Prompt Encoder 和 Mask Decoder 的零样本泛化能力。
Prompt Engineering 策略
在工业质检场景中,Prompt 的设计直接决定了分割质量。经过大量实验,我们总结了以下 Prompt Engineering 策略:
- 点 Prompt 策略 — 对于已知缺陷位置的区域,在缺陷中心点放置 1 个正点(foreground),在缺陷边缘均匀放置 3-5 个负点(background),可以有效控制分割边界
- 框 Prompt 策略 — 使用检测模型(如 YOLOv8)先给出粗略的缺陷框,再用 SAM 2 进行精细分割。框 Prompt 的 IoU 阈值设为 0.5 时效果最佳
- 级联 Prompt — 先用点 Prompt 获取初始分割,再将初始 mask 作为 Prompt 输入,通过迭代优化提升分割精度
- 文本 Prompt — 结合 CLIP 的文本编码器,使用 "surface scratch"、"discoloration" 等缺陷描述文本作为 Prompt,实现零样本缺陷分类
关键发现:在工业场景中,框 Prompt + 中心点 Prompt 的组合策略效果最好,mIoU 达到 0.92,比单独使用点 Prompt 高 8 个百分点。
缺陷检测工作流
我们设计了一套两阶段的缺陷检测工作流,结合了传统检测模型的速度优势和 SAM 2 的分割精度优势:
- 阶段一:快速筛查 — 使用轻量级 YOLOv8-nano 模型进行初步检测,快速定位疑似缺陷区域,过滤 90% 的正常区域
- 阶段二:精细分割 — 将 YOLO 检测框作为 Prompt 输入 SAM 2,生成精确的缺陷轮廓掩码
- 缺陷量化 — 基于分割掩码计算缺陷面积、周长、形状因子等量化指标,自动判定缺陷等级
- 结果报告 — 生成包含缺陷位置、类型、严重程度的结构化报告,集成到 MES 系统
这种两阶段方案在保证检测精度的同时,将单张图像的处理时间控制在 85ms 以内(YOLO 15ms + SAM 2 70ms),满足产线节拍要求。
Python 推理代码
以下是完整的缺陷检测推理代码,包括模型加载、Prompt 构造和后处理:
领域微调策略
虽然 SAM 2 的零样本能力已经相当出色,但在特定工业场景中进行轻量级微调可以进一步提升性能。我们的微调策略:
- 冻结 Image Encoder — 只微调 Prompt Encoder 和 Mask Decoder,减少训练参数量(从 200M 降低到 15M)
- 数据集构建 — 仅需 500-1000 张标注样本,相比从头训练专用模型所需的 10000+ 样本,标注成本降低 90%
- 损失函数 — 使用 Focal Loss + Dice Loss 的组合,解决缺陷像素占比极低的类别不平衡问题
- 数据增强 — 针对工业场景设计增强策略:随机旋转、亮度抖动、高斯噪声,模拟产线光照变化
微调后的模型在我们的电子元器件缺陷数据集上,mIoU 从零样本的 0.78 提升到 0.91,缺陷召回率从 82% 提升到 95%。训练仅需 2 个 epoch,耗时约 30 分钟(单卡 A100)。
边缘设备部署优化
产线环境通常没有高性能服务器,需要将模型部署到边缘设备(如 NVIDIA Jetson Orin)。以下是我们的优化方案:
- 模型蒸馏 — 将 SAM 2-Large 的知识蒸馏到 SAM 2-Small,模型大小从 900MB 压缩到 150MB
- TensorRT 量化 — 使用 INT8 量化,推理速度提升 2.5 倍,精度损失小于 1%
- 图像 Encoder 预计算 — 对于固定工位的相机,Image Encoder 只需执行一次,后续帧只运行轻量级的 Mask Decoder
- 流水线并行 — 将 YOLO 检测和 SAM 2 分割放在不同的 CUDA Stream 上并行执行
优化后,在 Jetson Orin NX 上实现了 45ms 的端到端推理延迟(YOLO 8ms + SAM 2 Decoder 37ms),满足产线 20 FPS 的节拍要求。GPU 利用率稳定在 65%,功耗约 25W。
边缘部署的核心原则:能预计算的不实时算,能蒸馏的不用大模型,能量化的不用浮点。每一个环节省下的几毫秒,在产线规模上都是巨大的价值。
实际产线效果
系统在某电子元器件工厂的 SMT 产线上线后,取得了显著的效果:
- 缺陷检出率 — 从人工检测的 85% 提升到 AI 系统的 97.5%
- 误检率 — 控制在 1.2% 以内,远低于人工检测的 5%
- 检测速度 — 单工位日均检测 50 万+ 片元器件,是人工检测效率的 20 倍
- 投入回报 — 部署成本在 3 个月内收回,年节省人工成本超过 200 万元
更重要的是,AI 系统的检测标准一致性远优于人工——它不会疲劳、不会走神、不会因为情绪波动而影响判断。这为工厂的质量管控提供了可靠的数字化基础。
总结与展望
SAM 2 为工业质检带来了范式转变:从 "为每种缺陷训练专用模型" 变为 "用通用基座模型 + 少量 Prompt 适配新场景"。这种方式大幅降低了 AI 质检的落地门槛,使得中小工厂也能快速部署 AI 检测系统。
未来我们计划探索以下方向:
- 多模态融合 — 结合 2D 图像和 3D 点云数据,提升对立体缺陷(如凹坑、凸起)的检测能力
- 在线学习 — 利用产线上的真实数据持续优化模型,实现模型的自动进化
- 多工位协同 — 将多个检测工位的结果进行关联分析,实现系统级的质量追溯
AI 质检不是一个技术项目,而是一个持续运营的系统。技术只是起点,真正创造价值的是技术与产线流程的深度融合。