Files
2025-12-25 17:41:18 +08:00

9.7 KiB
Raw Permalink Blame History

Zero-to-YOLO-Yard: 本地化、AI驱动的下一代计算机视觉标注工具


0949644658292c488a2d4a301543d86c


Zero-to-YOLO-Yard 是一个专为本地化部署而深度优化的开源工具,旨在为您提供从原始视频/图像到可训练数据集的全流程解决方案。它集成了最前沿的 AI 技术,将繁琐的标注工作转变为简单、高效、甚至充满探索乐趣的体验。无论您是机器人开发者、无人机爱好者还是计算机视觉研究者,此工具都能极大地加速您的数据处理流程,且所有数据都安全地保留在您自己的计算机上。

Python Version License Status


核心亮点:不止于标注

  • 🚀 新一代 AI 辅助标注引擎

    • SAM 2.1 点选成框: 集成Meta最新的SAM 2.1模型,只需在目标物体上轻轻一点,即可自动生成像素级精确的边界框。
    • 智能选择 (Smart Select): 独创的“智能选择”功能,由 DINOv2 强大的特征提取能力驱动。您只需框选一两个“正例”样本(甚至可以圈出“反例”来排除干扰),AI 就能在整张图中找出所有相似对象,实现一键批量标注。
    • 数据集驱动查找: 充分利用您已有的标注数据!选择一个类别,AI 会学习该类别在整个数据集中的特征,并自动在新图像中找出所有潜在目标。
    • 高级对象跟踪: 在视频首帧完成标注后,一键开启自动跟踪。提供两种模式:
      1. 交互模式: 实时跟踪并反馈,可随时暂停、修正,适合复杂多变的场景。
      2. 高精度批处理: 调用官方 SAM2VideoPredictor,一次性处理视频片段,在稳定场景下获得更高质量的跟踪结果。
    • 关键帧插值: 对于长时段的简单运动,只需标注起点和终点两帧,中间所有帧的边界框将自动线性插值生成。
  • 📊 深度数据集分析与可视化

    • 在导出前,对您的数据集进行一次全面“体检”。通过交互式图表洞察:
      • 类别分布: 检查是否存在数据不均衡问题。
      • 目标密度: 分析每张图的目标数量分布。
      • 尺寸与宽高比: 发现异常尺寸或比例的目标。
      • 空间位置热力图: 查看目标在图像中的常见位置。
    • 智能筛选与浏览: 内置“图像画廊”,可一键筛选出数据“异常点”,如面积最大/最小的目标、重叠度过高的重复标注等,帮助您快速定位并修正标注错误。
  • ⚙️ 强大的在线数据增强

    • 在创建数据集时,直接在网页上配置丰富的数据增强策略(旋转、裁剪、色彩变换、噪声、Cutout等)。
    • 所见即所得的增强预览器: 实时预览增强效果,直观调整参数,确保增强策略符合您的预期,无需反复试错。
  • 📦 完整的工作流闭环

    • 多源数据导入: 支持上传 .mp4 视频文件,或直接导入已有的图片文件夹。
    • 任务协同管理: 为不同成员分配不同的标注帧范围,轻松实现团队协作。
    • 一键导出YOLO格式: 所有标注数据可一键打包为与YOLOv8等主流训练框架兼容的 .zip 数据集。
  • 💻 纯本地化,安全私密

    • 无需联网,无需云服务,所有数据和模型运算均在您的本地计算机完成,确保数据绝对安全。

🚀 快速上手

1. 环境配置

请确保您的系统中已安装 Python 3.10pip

克隆项目

git clone https://github.com/BlueDarkUP/Zero2YoloYard.git
cd Zero-to-YOLO-Yard

安装依赖 我们强烈建议使用虚拟环境来隔离项目依赖。

# 创建并激活虚拟环境 (Linux/macOS)
python -m venv venv
source venv/bin/activate

# (Windows)
python -m venv venv
.\venv\Scripts\activate

# 安装所有必需的库
# 如果您有NVIDIA显卡,建议先根据您的CUDA版本安装对应的PyTorch
# PyTorch官网: https://pytorch.org/get-started/locally/
pip install -r requirements.txt

2. 启动应用

在项目根目录下运行以下命令启动 Web 服务器:

python app.py

服务器成功启动后,您将在终端看到类似输出:

INFO:waitress:Serving on http://127.0.0.1:5000

现在,打开您的浏览器并访问 http://127.0.0.1:5000 即可开始您的 AI 标注之旅!


📖 工作流指南

步骤 1: 上传与管理数据

  1. "Videos" 选项卡中,点击 "Upload Video" 上传视频,或点击视频列表中的 "Import" 按钮(图标为 )导入本地图片文件夹。
  2. 系统会自动处理数据,状态变为 READY 后即可开始下一步。

https://github.com/user-attachments/assets/11147a8c-e949-402a-ac81-0b914f7f47b5

步骤 2: 创建标注任务

  1. 点击视频旁的 "Manage Tasks" 按钮。
  2. 为任务分配一个负责人名称(如 Alice),并指定他/她需要标注的 起始帧结束帧

https://github.com/user-attachments/assets/b4a97574-9cce-4ee4-ba4a-dcbd8115c5a5

步骤 3: 高效标注

进入标注界面后,您可以组合使用以下多种方式,选择最高效的工具来完成工作:

  • 基础操作:
    • 在右侧 "Classes" 面板中创建或选择一个类别。
    • 手动绘制: 按住鼠标左键拖拽即可绘制矩形框。
    • 快捷键: S 保存, A/D 前后翻页, Delete 删除选中框, Ctrl+Z 撤销。

https://github.com/user-attachments/assets/00eaf98a-7e1c-47e9-957d-9e135a4024e1

步骤 4: 分析与洞察 (新功能!)

  1. 标注完成后,在主界面的 "Datasets" 选项卡创建一个数据集,并关联已标注的视频。

  2. 当数据集状态变为 READY 后,点击 "Analyze" 按钮。

  3. 在分析页面,您可以:

    • 查看各类统计图表,了解数据质量。
    • 使用 "Augmentation Previewer" 实时调试数据增强效果。
    • "Image Gallery" 中使用筛选器快速找到并跳转到有问题的标注进行修正。

    https://github.com/user-attachments/assets/287ec74e-3a69-4504-bfe7-12f313540400

步骤 5: 创建与导出数据集

  1. "Datasets" 选项卡,点击 "Create Dataset"
  2. 选择需要打包的视频,设置训练/验证/测试集比例。
  3. (可选) 展开并启用 "Data Augmentation Options",配置您需要的增强策略。
  4. 创建成功后,点击 "Download" 即可获取用于模型训练的 YOLO 格式 .zip 文件。

提示: 数据集一旦创建,其内容便已固定。如果您后续修改了视频标注,需要重新创建一个新的数据集版本以包含这些更新。


🛠️ 技术栈核心

  • 后端: Flask, Waitress
  • 数据库: SQLite
  • AI 模型:
  • 数据增强: Albumentations
  • 前端: Bootstrap, jQuery, Chart.js

📂 文件结构

  • local_storage/: 存储所有用户数据,包括视频、帧、数据集和模型。
  • checkpoints/: 存放SAM等AI模型的权重文件(需自行下载)。
  • ftc_ml.db: SQLite 数据库文件,管理所有元数据,如项目描述、标注信息、任务等。

🤝 贡献与致谢

本项目是对 FMLTC (FIRST Machine Learning Toolchain) 的一次重大功能扩展和本地化重构。

特别感谢 BlueDarkUP 在项目开发中的卓越贡献。

我们欢迎任何形式的贡献,无论是功能建议、代码提交还是问题反馈。请通过 Pull Request 或 Issues 与我们交流!