LY

longjingcha/yolov8skill

Data science & ML
69 stars Quality 40 Trend 40

Skill Design · 我正在把 YOLO 从视频采集、自动化标注、训练、预测、实时展示作为一种 skill 技能包,下次可以通过 AI 自动化,一键生成。

Overview

· 将摄像头采集、自动预标注、训练、推理、实时展示与难例回流,封装成一套可被 Agent 直接调用的 YOLO 目标检测技能包。 yolov8skill 是一套面向 Agent 的 YOLO 目标检测技能包,把传统 YOLO 项目中的“摄像头采集 → 自动预标注 → 风险评分 → 人工复核 → 训练 → 实时检测 → 结果展示 → 难例回流”全流程,封装成一个可复用、可扩展、可迭代的 Skill。一次配置,处处复用。 - :直接从摄像头捕获画面,作为训练或推理的输入源 - :结合模型与规则,快速生成候选标注结果 - :把样本自动划分为 auto_accept、needs_review、reject - :把误检、漏检、低置信样本统一收集,形成持续迭代闭环 - :基于 Ultralytics YOLOv8,支持通用目标检测 - :集成 FastSAM 快速分割能力,对画面进行像素级分析 - :支持加载自己训练好的 best.pt 模型权重 - :内置 yolo_dataset 目录,规范数据集存放结构 - :通过 pipeline.py 串起采集、标注、训练、检测与报表 1. :capture_from_camera.py 采集视频或图片 2. :qwen_label.py 或其他自动标注方式生成候选结果 3. :risk_scoring.py 做规则校验、风险评分和分流 4. :prepare_data.py 将可用样本转换为 YOLO 数据格式 5. :train.py 训练 YOLO 模型 6. :live_detect.py 做实时检测和日志统计 7. :report.py 汇总指标、曲线和结果 8. :hard_case_collect.py 收集难例,持续优化后续训练 9. :pipeline.py 将上述流程串联成一键执行入口 - Python 3.8 或更高版本 - 摄像头设备(用于实时采集) - 支持的操作系统:Windows / macOS / Linux - 依赖:ultralytics、opencv-python 将你自己训练好的 best.pt 复制到项目根目录,覆盖原文件,或修改 capture_from_camera.py 中的模型路径: 在支持 SKILL.

README

yolov8skill 是一套面向 Agent 的 YOLO 目标检测技能包,把传统 YOLO 项目中的“摄像头采集 → 自动预标注 → 风险评分 → 人工复核 → 训练 → 实时检测 → 结果展示 → 难例回流”全流程,封装成一个可复用、可扩展、可迭代的 Skill。一次配置,处处复用。


目录


核心能力

  • 实时摄像头采集:直接从摄像头捕获画面,作为训练或推理的输入源
  • 自动预标注:结合模型与规则,快速生成候选标注结果
  • 风险评分与分流:把样本自动划分为 auto_acceptneeds_reviewreject
  • 难例回流:把误检、漏检、低置信样本统一收集,形成持续迭代闭环
  • YOLOv8 目标检测:基于 Ultralytics YOLOv8,支持通用目标检测
  • FastSAM 分割:集成 FastSAM 快速分割能力,对画面进行像素级分析
  • 自定义模型推理:支持加载自己训练好的 best.pt 模型权重
  • 数据集管理:内置 yolo_dataset 目录,规范数据集存放结构
  • 一键流程编排:通过 pipeline.py 串起采集、标注、训练、检测与报表

优化后的工作流

这次优化的重点,不只是“能跑”,而是把整个项目整理成更清晰的工业化闭环:

  1. 采集层capture_from_camera.py 采集视频或图片
  2. 候选生成层qwen_label.py 或其他自动标注方式生成候选结果
  3. 质量判定层risk_scoring.py 做规则校验、风险评分和分流
  4. 训练准备层prepare_data.py 将可用样本转换为 YOLO 数据格式
  5. 训练层train.py 训练 YOLO 模型
  6. 检测层live_detect.py 做实时检测和日志统计
  7. 报表层report.py 汇总指标、曲线和结果
  8. 回流层hard_case_collect.py 收集难例,持续优化后续训练
  9. 编排层pipeline.py 将上述流程串联成一键执行入口

核心思想是:模型负责候选,规则负责兜底,人工负责复核,回流负责进化。

项目结构

yolov8skill/
├── skills/
│   └── yolo-camera-skill/      # Skill 定义目录(含 SKILL.md)
├── yolo_dataset/               # 数据集目录(images/ labels/ data.yaml)
├── capture_from_camera.py      # 摄像头采集 + 检测脚本
├── auto_label_train.py         # 自动标注到训练的快捷链路
├── qwen_label.py               # 自动预标注与候选生成
├── risk_scoring.py             # 风险评分与分流
├── hard_case_collect.py        # 难例归档与回流素材整理
├── prepare_data.py             # 数据转 YOLO 格式
├── train.py                    # 训练脚本
├── live_detect.py              # 实时检测与统计日志
├── report.py                   # 报表汇总与曲线图
├── pipeline.py                 # 一键串起全流程
├── yolov8s.pt                  # YOLOv8s 预训练权重
├── FastSAM-s.pt                # FastSAM 分割权重
├── best.pt                     # 自定义训练的最佳模型
└── README.md

环境要求

  • Python 3.8 或更高版本
  • 摄像头设备(用于实时采集)
  • 支持的操作系统:Windows / macOS / Linux
  • 依赖:ultralyticsopencv-python

安装

克隆仓库

git clone https://github.com/yourusername/yolov8skill.git
# 或者
git clone [email protected]:longjingcha/yolov8skill.git

cd yolov8skill

创建虚拟环境(推荐)

python -m venv venv

Windows:

venv\Scripts\activate

Linux / macOS:

source venv/bin/activate

安装依赖

pip install ultralytics opencv-python

下载预训练权重(如未自动下载)

首次运行时会自动下载 yolov8s.pt,也可以手动下载后放到项目根目录。

快速开始

摄像头实时检测

运行以下脚本,即可打开摄像头并进行实时目标检测:

python capture_from_camera.py

画面中会实时绘制检测框、类别标签和置信度,按 q 键退出。

使用自定义模型

将你自己训练好的 best.pt 复制到项目根目录,覆盖原文件,或修改 capture_from_camera.py 中的模型路径:

model = YOLO("path/to/your/best.pt")

分割模式(FastSAM)

如需使用分割,在脚本中加载 FastSAM-s.pt

from ultralytics import FastSAM

model = FastSAM("FastSAM-s.pt")
results = model(source=0, show=True, conf=0.4, device="cpu")

Skill 使用方式

在支持 SKILL.md 格式的 Agent 工具中,Agent 会自动读取 skills/yolo-camera-skill/ 目录下的 Skill 定义,理解项目结构并执行对应的目标检测任务。

你只需要对 Agent 说:

  • “用摄像头检测一下我面前有什么东西”

    • Agent 会自动运行 capture_from_camera.py,调起摄像头开始检测。
  • “帮我把 yolo_dataset 里的数据训练一轮 YOLOv8”

    • Agent 会根据 Skill 中定义的训练流程启动训练。
  • “用 FastSAM 分割当前画面”

    • Agent 会调用分割模型并返回结果。

典型工作流

摄像头采集画面
    │
    ▼
自动预标注 / 风险评分
    │
    ▼
YOLOv8 / FastSAM 推理
    │
    ▼
结果可视化 + 实时展示
    │
    ▼
难例收集 + 重新训练

自定义模型

文件 说明
yolov8s.pt YOLOv8 small 版本,平衡速度与精度
FastSAM-s.pt Fast Segment Anything Model,快速实例分割
best.pt 用户在特定数据集上微调后的最佳模型

你可以将任何 YOLOv8 格式的权重(如 yolov8n.ptyolov8m.pt)放入根目录并修改脚本加载。

数据集格式

yolo_dataset/ 目录需遵循 YOLO 数据集规范:

yolo_dataset/
├── images/
│   ├── train/
│   └── val/
├── labels/
│   ├── train/
│   └── val/
└── data.yaml

data.yaml 示例:

path: ./yolo_dataset
train: images/train
val: images/val
nc: 80
names: ['person', 'bicycle', ...]

计划路线

  • 自动化标注 Skill(半监督 + 主动学习)
  • 一键训练 Skill(传入数据集路径即可启动训练)
  • 模型评估与指标展示(mAP、Precision、Recall)
  • Web 实时推流展示检测结果
  • 多摄像头支持
  • 难例回流与持续训练闭环

常见问题

Q: 摄像头无法打开?
A: 检查摄像头是否被其他程序占用,或修改 capture_from_camera.py 中的 cv2.VideoCapture(0) 参数(如改为 1)。

Q: 检测速度很慢怎么办?
A: 尝试使用更小的模型如 yolov8n.pt,或降低输入分辨率(在脚本中设置 imgsz=320)。

Q: 如何停止运行?
A: 在终端中按 Ctrl+C,或在摄像头窗口中按 q 键。

Q: 训练脚本在哪里?
A: 当前版本已补充训练相关脚本,推荐优先使用 pipeline.py 串联流程;也可以单独执行 train.py

许可证

MIT License

关于作者

🌐 官网 www.lscript.cn
📺 B站 查老师并不渣
📕 小红书 查老师并不渣
💬 公众号 微信搜「查哥聊AI」
View this README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add longjingcha/yolov8skill