Skip to content

JaniceWei99/Data-annotation

Repository files navigation

工业缺陷检测 — 数据标注与模型训练平台

CVAT + Label Studio 双平台架构,配备 3 个 AI 模型,覆盖「手工标注 → 模型训练 → 自动标注 → 人工审核」完整闭环。


核心能力

能力 说明
手工标注 CVAT / Label Studio 中对图片画框标注,支持矩形框、多边形、关键点、分割
多人协作 Job 自动拆分 + 角色分配 + 共识标注 + 进度追踪
AI 自动标注 YOLOv8 / YOLOv7 / SAM 一键预标注,效率提升 5-10 倍
模型训练 DeepPCB → YOLOv8n 一键训练,mAP@0.5 = 98.5%
跨平台部署 Linux / macOS / Windows 一键部署 23 个 Docker 容器
多格式导出 COCO JSON、YOLO TXT、Pascal VOC XML、CVAT XML

技术栈

组件 版本 用途
CVAT v2.61.0 主标注平台(18 容器)
Label Studio v1.23.0 辅助标注平台(1 容器)
Nuclio v1.13.0 AI 模型 Serverless 部署(4 容器)
YOLOv8 (Ultralytics) latest 目标检测训练与推理
YOLOv7 ONNX COCO 80 类通用检测
SAM ViT-H (Meta) ONNX 交互式点击分割
Docker + Compose latest 容器编排

架构概览

浏览器
  │
  ├──→ CVAT            :8080   ← 主标注平台 (18 容器)
  │      └──→ Nuclio    :8070   ← AI 模型服务 (4 容器)
  │             ├─ YOLOv7       :32768  通用检测
  │             ├─ SAM ViT-H    :32769  交互式分割
  │             └─ PCB-YOLOv8   :32770  PCB 缺陷检测 (自训练)
  │
  └──→ Label Studio     :8085   ← 辅助标注平台 (1 容器)
         └──→ ML Backend :9090  ← YOLOv8 推理服务 (按需)

快速开始

一键部署

# Linux / macOS / WSL2
bash deploy/deploy.sh --all

# Windows PowerShell
.\deploy\deploy.ps1 -All

部署完成后访问:

服务 地址 账号
CVAT http://localhost:8080 admin / admin123
Label Studio http://localhost:8085 admin@local.host / admin123
Nuclio Dashboard http://localhost:8070 无需登录

开始标注

  1. 打开 CVAT → 选择已有项目(磁瓦 / PCB / 路面 / 太阳能板) → 创建任务 → 上传图片
  2. 进入标注界面 → 画框 + 选标签 → Ctrl+S 保存
  3. 导出为 COCO / YOLO 格式

AI 自动标注

标注界面 → Actions → Automatic annotation → 选择模型 → Annotate → 审核修正

训练自定义模型

uv run scripts/train_pcb_model.py

迁移到其他机器

# 打包
bash deploy/pack.sh          # → data_annotation_platform.tar.gz (~630 MB)

# 在目标机器解压部署
tar xzf data_annotation_platform.tar.gz
bash deploy/deploy.sh --all

数据集

datasets/curated/ 下预置 4 类工业缺陷数据(共 200 张):

数据集 图片数 缺陷类别
磁瓦缺陷检测 (Magnetic-Tile) 60 blowhole, break, crack, fray, uneven, free
PCB 板缺陷检测 (DeepPCB) 60 open_circuit, short_circuit, mouse_bite, spur, copper_defect, pin_hole
路面裂缝检测 (CrackForest) 40 crack, longitudinal, transverse, alligator
太阳能板缺陷检测 (ELPV) 40 crack, inactive_region, dark_spot, finger_defect

已训练模型

PCB 缺陷检测 YOLOv8n(models/pcb_defect/):

指标
mAP@0.5 98.5%
mAP@0.5:0.95 66.3%
Precision 96.6%
Recall 95.6%
推理速度 ~38ms/张 (CPU)

项目结构

Data Annotation/
├── README.md                          ← 本文件
├── Documentation/                     ← 技术文档 (9 篇 MD + HTML)
│   ├── 项目总览.md                    ← 完整项目介绍
│   ├── CVAT用户操作手册.md            ← 标注操作指南
│   ├── CVAT部署与使用指南.md          ← CVAT 运维
│   ├── 数据标注平台部署文档.md        ← 双平台部署
│   ├── 本机部署架构说明.md            ← 23 容器架构
│   ├── 自动标注技术方案.md            ← 4 种自动标注方案
│   ├── 从数据到模型:训练与验证全流程详解.md
│   ├── 系统集成方案.md                ← 自动化闭环
│   └── 迁移部署指南.md                ← 跨机器迁移
├── LabelStudio/                       ← Label Studio 专区
│   ├── README.md
│   └── 01_PCB缺陷检测/
│       ├── PCB缺陷检测完整指南.md
│       ├── ml-backend/                ← ML Backend 推理服务
│       └── scripts/                   ← LS 自动标注脚本
├── Market analysis/                   ← 市场调研报告
├── datasets/                          ← 数据集
│   ├── curated/                       ← 原始图片 (4 类 / 200 张)
│   └── exported/                      ← 已导出的标注数据 (COCO)
├── models/                            ← 训练产物
│   └── pcb_defect/                    ← YOLOv8n 权重 + 指标 + 可视化
├── scripts/                           ← Python 脚本
│   ├── train_pcb_model.py             ← 模型训练
│   ├── auto_annotate_pcb.py           ← CVAT 自动标注
│   └── record_*.py                    ← 演示视频录制
├── deploy/                            ← 部署工具
│   ├── deploy.sh                      ← Linux/macOS 一键部署
│   ├── deploy.ps1                     ← Windows 一键部署
│   └── pack.sh                        ← 迁移打包
├── Demos_mp4/                         ← 演示视频 (12 个 MP4 + 脚本)
└── runs/                              ← YOLOv8 验证输出

文档导航

目标 推荐阅读顺序
新用户入门 项目总览CVAT 操作手册
运维部署 架构说明部署文档迁移指南
模型训练 训练全流程自动标注方案
系统集成 集成方案
Label Studio LS READMEPCB 完整指南
市场调研 调研报告

演示视频

Demos_mp4/ 目录下包含 12 个演示视频,覆盖 CVAT 和 Label Studio 两个平台的全部场景:

CVAT 演示:

  • 场景一 — 手工标注全流程
  • 场景二 — 多人协作标注
  • 场景三 — AI 自动标注
  • 自动标注演示(含配音)

Label Studio 演示:

  • 场景一 — 手工标注全流程
  • 场景二 — YOLOv8 自动标注
  • 场景三A — 多人共识标注(同图多人)
  • 场景三B — 多人分工标注(不同图分配)

环境要求

项目 最低要求
Docker 20.10+
Docker Compose v2+
内存 8 GB+
磁盘 30 GB+
Python (可选,用于训练) 3.10+(通过 uv 管理)

CVAT v2.61.0 / Label Studio v1.23.0 / Nuclio v1.13.0 / YOLOv8n

About

A dual-platform architecture (CVAT + Label Studio) with 3 built-in AI models, covering the full loop: manual annotation → model training → auto-annotation → human review.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors