基于 YOLO + SAM 的自动图像标注实战

用检测模型做“找对象”,用分割模型做“画轮廓”,一套脚本把数据标注从体力活升级成自动化流水线。


一、背景与动机

在计算机视觉项目中,高质量标注数据往往比模型结构本身更昂贵。尤其是:

  • 目标类别多
  • 图像数量大
  • 需要实例级 / 分割级标注

手工标注不仅慢,而且极易成为项目瓶颈。

一个非常自然的想法是:

能不能让模型帮我们先标一版?

本文介绍一种在工程中非常实用的方案:

  • YOLO:负责目标检测(给出 bbox + 类别)
  • SAM(Segment Anything Model):基于 bbox 进一步做精细分割

最终目标:

输入一堆图片 → 自动生成可用于训练的标注文件(YOLO 格式)


二、整体流程设计

整体流程非常清晰:

Images
  ↓
YOLO 检测(bbox + class)
  ↓
SAM 分割(基于 bbox)
  ↓
生成 txt 标注文件

核心思想

  • YOLO 擅长 “找在哪”
  • SAM 擅长 “抠得准”
  • 用 YOLO 的 bbox 作为 prompt,可以显著提升 SAM 的稳定性和速度

三、代码结构总览

脚本主要由 4 个部分组成:

  1. 模型加载(YOLO + SAM)
  2. 单张图片处理逻辑
  3. 批量数据处理
  4. 命令行接口设计

下面逐一拆解。


四、模型加载:健壮第一

def load_models(yolo_model_path: str, sam_model_path: str):
    yolo_model = YOLO(yolo_model_path)
    sam_model = SAM(sam_model_path)
    return yolo_model, sam_model, yolo_model.names

设计要点

  • 显式异常捕获:模型路径错误时能快速定位问题
  • 同时返回 obj_names,用于生成 classes.txt

这是一个小细节,但在数据流水线中非常重要。


五、单张图片处理逻辑(核心)

1️⃣ 读取图像

img = cv2.imread(str(img_path))
  • 无法读取直接跳过
  • 防止坏图导致整个流程中断

2️⃣ YOLO 目标检测

results = yolo_model.predict(img, verbose=
需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标检测实战:原理与源码解析》,课程链接 https://edu.csdn.net/course/detail/29865【为什么要学习这门课】 Linux创始人Linus Torvalds有一句名言:Talk is cheap. Show me the code. 冗谈不够,放码过来!  代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。【课程内容与收获】 本课程将解析YOLOv4的实现原理和源码,具体内容包括:- YOLOv4目标检测原理- 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算- 代码阅读工具及方法- 深度学习计算的利器:BLAS和GEMM- GPU的CUDA编程方法及在darknet的应用- YOLOv4的程序流程- YOLOv4各层及关键技术的源码解析本课程将提供注释后的darknet的源码程序文件。【相关课程】 除本课程《YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括:《YOLOv4目标检测实战:训练自己的数据集》《YOLOv4-tiny目标检测实战:训练自己的数据集》《YOLOv4目标检测实战:人脸口罩佩戴检测》《YOLOv4目标检测实战:中国交通标志识别》建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。【YOLOv4网络模型架构图】 下图由白勇老师绘制  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值