YOLO+OpenClaw+SAM 微调实战:工业缺陷自动标注方案
一种结合 YOLO 粗定位、SAM 微调精分割及 OpenClaw 调度的工业缺陷自动标注方案。针对通用模型在工业场景边界不准的问题,采用 LoRA 微调仅更新 2% 参数,并设计混合损失函数提升微小缺陷召回率。通过云端隔离部署解决算力与安全顾虑,实现批量标注自动化,显著降低人工修正时间与成本。

一种结合 YOLO 粗定位、SAM 微调精分割及 OpenClaw 调度的工业缺陷自动标注方案。针对通用模型在工业场景边界不准的问题,采用 LoRA 微调仅更新 2% 参数,并设计混合损失函数提升微小缺陷召回率。通过云端隔离部署解决算力与安全顾虑,实现批量标注自动化,显著降低人工修正时间与成本。

不能实时,不代表不能用。微调 SAM+ 云端部署,让工业标注从'人工描边'变'一键验收'。
上周有位做 PCB 质检的读者反馈:标注员正对着一块电路板缺陷图,用鼠标一点点勾勒划痕的边界,一张图花了 8 分钟。他说:'YOLO 能框,但框不准;SAM 能分割,但通用模型到我们产线就水土不服。有没有办法让标注员少点鼠标?'
当然有。今天结合工业缺陷检测场景,展示一套低代码落地路径:YOLO 粗定位 + 微调 SAM 精分割 + OpenClaw 自动调度,让标注员从'动手画'变成'动口验收'。
坎 1:推理延迟问题 自动化流程从接收指令到调用模型返回结果,秒级以上是常态。产线上的产品不可能等太久,但标注任务可以——把数千张图丢给 AI,让它后台慢慢跑,员工早上来验收结果。
坎 2:边缘端算力要求大,且存在安全风险 调用大模型需要较大显存,普通办公电脑扛不住。更关键的是,AI 智能体能读写文件、执行命令,放在个人电脑上相当于请了个'有权限的陌生人'。建议:云端隔离部署,算力交给云服务器,安全也交给云环境。
坎 3:通用 SAM'水土不服' SAM 擅长分割自然图像,但面对工业缺陷(划痕、凹坑、毛刺)时,边界常常跑偏。实验结论:微调 SAM 能让分割精度提升约 30%,且只需微调 2% 的参数。
全量微调 SAM 需要多张 V100 跑几天,普通用户根本搞不定。而LoRA 微调只更新约 2% 的参数,训练速度提升 3 倍,效果接近全量微调。简单说:用更少的资源,达到近似全量微调的效果。
from peft import LoraConfig, get_peft_model
from segment_anything import sam_model_registry
# 加载通用 SAM
sam = sam_model_registry["vit_h"](checkpoint="sam_vit_h.pth")
# 配置 LoRA(只调整注意力层)
lora_config = LoraConfig(
r=16, # 秩维度
lora_alpha=32,
target_modules=["qkv"], # 只改查询/键/值层
lora_dropout=0.1
)
# 应用 LoRA
model = get_peft_model(sam, lora_config)
# 可训练参数占比仅 2.5%,显存需求从 24GB 降到 8GB
工业缺陷有两个特点:一是样本少(划痕只占图像的极小部分),二是边界重要。设计了混合损失函数来应对:
def industrial_loss(pred, target):
""" Dice + Focal 组合
- Dice:让分割边界更贴合
- Focal:让模型更关注难分的缺陷区域
"""
pred_sigmoid = torch.sigmoid(pred)
# Dice Loss(边界贴合)
intersection = (pred_sigmoid * target).sum()
dice = 1 - (2 * intersection) / (pred_sigmoid.sum() + target.sum() + 1e-6)
# Focal Loss(关注难例)
ce = torch.nn.functional.binary_cross_entropy_with_logits(pred, target, reduction='none')
pt = torch.exp(-ce)
focal = 0.25 * (1-pt)**2 * ce
return 0.6 * dice + 0.4 * focal.mean()
实际效果:某 PCB 厂商用此方案后,<0.1mm 的微小划痕召回率从 58% 提升到 87%,标注员修正时间从每张图 5 分钟缩短到 40 秒。
import cv2, json, numpy as np
from ultralytics import YOLO
from segment_anything import SamPredictor
from peft import PeftModel
from pathlib import Path
class IndustrialAnnotator:
def __init__(self, yolo_path, sam_path, lora_path):
self.yolo = YOLO(yolo_path) # YOLO 检测
sam = sam_model_registry["vit_h"](checkpoint=sam_path)
peft_model = PeftModel.from_pretrained(sam, lora_path) # 加载微调权重
self.predictor = SamPredictor(peft_model)
def annotate(self, img_path, out_dir):
img = cv2.imread(img_path)
self.predictor.set_image(img)
# 1. YOLO 粗定位
results = self.yolo(img)[0]
annotations = []
for box in results.boxes:
x1, y1, x2, y2 = map(int, box.xyxy[0])
# 2. SAM 微调精分割
masks, _, _ = self.predictor.predict(box=np.array([x1, y1, x2, y2]))
mask = masks[0]
annotations.append({
"type": self.yolo.names[int(box.cls[0])],
"bbox": [x1, y1, x2, y2],
"mask": mask.tolist()
})
# 3. 输出 JSON 标注文件
(, ) f:
json.dump(annotations, f)
代码部署后,只需在 OpenClaw 里说一句话,就能建立自动化流程:
用户:每天凌晨 2 点,用 industrial-annotator 技能处理 /data/defect_raw/ 目录下的图片,
先用 YOLO 检测缺陷,再用微调后的 SAM 生成精细掩码,输出标注文件到 /data/defect_annotated/
OpenClaw:已创建定时任务,每天 2:00 执行批量标注
员工早上上班,直接打开文件夹验收,修正率从 80% 降到 20%。
既然本地跑不动、有风险,那就上云。云服务器是实测过省心的方案。
第一步:购买服务器 访问云服务器购买页 → 选择'应用模板' → 'AI 智能体' → 配置合适规格 → 下单
第二步:配置模型 进入服务器'应用管理'页面 → 在模型配置区选择大语言模型 → 粘贴 API Key → 点击'添加并应用'
第三步:上传微调权重 用 WinSCP 将训练好的 LoRA 权重上传到服务器
第四步:安装技能 在 OpenClaw 控制台 → Skills 配置页 → 输入'industrial-annotator' → 点击安装
第五步:接入 IM 进入'通道配置' → 选择企业微信/钉钉 → 填写 Bot 凭证 → 发布后即可在聊天软件里下达指令
案例:深圳某 PCB 制造企业,每天需标注 3000 张缺陷图,原有流程:
采用本方案后:
效果对比:
| 指标 | 微调前 | 微调后 |
|---|---|---|
| 缺陷召回率 | 68% | 92% |
| 分割边界 IoU | 0.73 | 0.89 |
| 人工修正时间/张 | 5 分钟 | 40 秒 |
当下的 YOLO+OpenClaw+SAM,确实做不到实时质检。但那又怎样?
先别盯着'实时'不放,把工业场景的批量标注方案用起来——用 LoRA 微调 SAM,用混合损失优化边界,用云端一键部署,立刻就能帮标注团队提效、帮企业降本。
通过云服务器,你甚至不用写一行复杂代码,就能拥有一个 7×24 小时在线的、经过微调的 AI 标注员。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online