基于项目管理的轻量级目标检测自动标注系统【基于 YOLOV8】

🐱 AILabeler 是一个轻量级目标检测标注系统,专为 YOLO 系列模型设计,支持图像上传、标注框管理、类别设置、自动标注(YOLOv8)、导出多格式训练数据等功能。

项目已经发布至https://github.com/as501226107/AILabeler,后续会持续更新,欢迎 关注➕star


🔧 安装运行

安装依赖

pip install flask ultralytics opencv-python pillow

运行服务

python app.py

默认访问:http://localhost:5001


📌 常用接口说明| 路径 | 说明 |

| --- | --- |

| / | 项目列表页 |

| /project/<项目名> | 项目详情(上传/预览图像) |

| /annotate/<项目>/<图像> | 标注页面(主界面) |

| /autolabel/<项目>/<图像> | 自动标注接口(YOLOv8) |

| /export/<项目> | 数据导出页面 |


🧠 自动标注说明自动标注使用 YOLOv8 模型进行推理。你可以根据需求替换模型文件:

model = YOLO("yolov8n.pt") # 替换为自己的 yolov8.pt

并在 `

🐱 YOLabeler 标注系统YOLabeler 是一个轻量级目标检测标注系统,专为 YOLO 系列模型设计,支持图像上传、标注框管理、类别设置、自动标注(YOLOv8)、导出多格式训练数据等功能。


🚀 功能特性📂 项目管理

  • 创建/查看项目
  • 每个项目拥有独立图像、类别、标注数据

🖼 图像上传与预览

  • 支持批量上传图片(JPG/PNG)

  • 图像状态展示:✅ 已标注 / ❌ 未标注

    🧾 标注功能

  • 使用鼠标框选目标区域

  • 每个框支持单独设置类别

  • 右侧列表可编辑/删除每个框

  • 自动保存为 JSON 标注数据

🔁 图像浏览

  • 支持上一张 / 下一张图片快捷切换

  • 切图时自动加载对应标注

🧠 自动标注

  • 集成 YOLOv8 模型(默认 yolov8n.pt)

  • 可识别图像中的所有物体

  • 支持基于项目类别过滤保留框

📤 数据导出

  • 支持三种格式:YOLO / COCO / VOC

  • 可生成 ZIP 包一键下载

    ⚙️ 类别管理

  • 项目级类别配置(支持增删改)

  • 自动标注时仅保留已配置类别


🧰 目录结构

YOLabeler/

├── app.py # 主 Flask 应用

├── templates/ # HTML 模板(Jinja2)

├── static/ # 可选:CSS/JS 静态资源

├── data/

│ ├── images/ # 图像数据按项目分类存储

│ ├── annotations/ # 标注数据存储

│ ├── config/ # 每个项目类别配置

│ └── projects.json # 所有项目注册信息


🔧 安装运行

安装依赖

pip install flask ultralytics opencv-python pillow

运行服务

python app.py

默认访问:http://localhost:5001


📌 常用接口说明| 路径 | 说明 |

| --- | --- |

| / | 项目列表页 |

| /project/<项目名> | 项目详情(上传/预览图像) |

| /annotate/<项目>/<图像> | 标注页面(主界面) |

| /autolabel/<项目>/<图像> | 自动标注接口(YOLOv8) |

| /export/<项目> | 数据导出页面 |


🧠 自动标注说明自动标注使用 YOLOv8 模型进行推理。你可以根据需求替换模型文件:

model = YOLO("yolov8n.pt") # 替换为自己的 yolov8.pt

并在 data/config/<项目>_classes.json` 中指定需要保留的类别,非该列表内的将被过滤。


📦 支持导出格式YOLO 格式:

  • 每张图片一个 每张图片一个 .txt

  • 内容:内容:<class> <x_center> <y_center> <width> <height>(归一化)

    COCO 格式:

  • 一个 一个 annotations.json

  • 包含 images、annotations、categories 三部分

    VOC 格式:

  • 每张图片一个 每张图片一个 .xml 文件,标准 Pascal VOC 格式


🧠 关键代码解释1. /annotate//` 路由用于渲染标注页面,加载图像与对应标注框,支持上下图切换:

python 复制代码
@app.route('/annotate/<project>/<filename>')def annotate(project, filename):    ... # 加载图像目录与标注    return render_template('annotate.html', ...)
  1. /autolabel//` 路由使用 YOLOv8 推理当前图像,返回建议框:
python 复制代码
@app.route('/autolabel/<project>/<filename>')def autolabel_image(project, filename):    ... # 推理图像,生成预测框并渲染页面
  1. saveBoxes() 前端函数采集标注框坐标、类别,发送到 /save/<project> 接口:
python 复制代码
function saveBoxes() {
  const result = boxes.map(b => ({ x: b.rect.x(), y: b.rect.y(), width: b.rect.width(), height: b.rect.height(), label: b.label }));
  fetch(`/save/${project}`, { method: 'POST', body: JSON.stringify({ filename, boxes: result }) })
}
  1. 图像加载 + Konva 渲染逻辑前端绘图模块加载图像并按标注框显示:
python 复制代码
const image = new Image();
image.onload = () => {
  stage = new Konva.Stage(...);
  preloadBoxes.forEach(b => addBox(...));
  setupDrawing();
};

✅ 使用建议

  • 尽量使用 Chrome 浏览器

  • 上传图像后建议立即标注保存(自动保存为 JSON)

  • 自动标注可加快效率,但需人工复查每张图

  • 切图前请先点击保存,防止未保存的修改丢失


📮 联系/建议欢迎提交 Issues 或 PR 改进系统 ❤️

相关推荐
AI码农小姐姐15 分钟前
一站式 AI 漫剧生产方案:知漫剧,降低多模态内容创作门槛
人工智能
鲲穹AI种草33 分钟前
小红书 AI 创作工具怎么选?鲲穹 RedNote 功能实测与横向对比
大数据·人工智能
这张生成的图像能检测吗39 分钟前
(论文速读)LogSAD:无需训练的结构异常与逻辑异常统一检测
人工智能·机器学习·计算机视觉·大模型·多模态·异常检测
Ai-_Man1 小时前
您您这可以把Grok的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭
javascript·人工智能·ai·小程序·电脑
Eric.461 小时前
Wan‑Animate+MiniMax-H3 本地部署 AI 漫剧流水线:8G 显存动作迁移与动态分镜工程实战
前端·人工智能·comfyui·ai漫剧
搭贝1 小时前
上厕所的时间搭好一套系统:AI自动生成实测
开发语言·人工智能·低代码·ai·php·搭贝
明月_清风2 小时前
SaaS 的三层挣钱逻辑,正在被 AI 从第一层击穿
人工智能·后端
福兮说2 小时前
秋招复习操作系统并发,我让 AI 生成了一张知识图谱,15 条关系里改了 5 条
人工智能·操作系统·知识图谱·秋招
老A的AI实验室2 小时前
Cyber Weekly #84
人工智能·ai·llm·agi·genai
lie..2 小时前
30天从零开始学AI应用开发(Day 18):文档切分与检索优化:RAG 效果好坏的分水岭
人工智能·ai·大模型