yuturuishi/ytlabel

YOLO标注工具,AI自动标注,大模型提示词自动标注,自动采集视频,自动收集数据集

ytlabel – Open‑source image/video annotation tool with AI‑assisted labeling

What it is

  • A lightweight web‑based application for manually labeling images (rectangles, polygons, etc.) and videos, then exporting the results in YOLO‑compatible formats.
  • It can also call a user‑provided large‑model API (e.g., LMStudio, vLLM, Ollama, Alibaba Cloud) to generate AI‑auto‑labels.
  • The tool focuses on data‑annotation and dataset export; model training is handled by a separate project (ytstudio).

Key capabilities

  • Manual labeling – rectangle, polygon, multi‑class tags; import from LabelMe datasets.
  • AI auto‑labeling – plug‑in for any locally hosted LLM/VLM API you configure; no external data is sent.
  • Dataset export – YOLO format with configurable train/val/test split.
  • File manager – browse, upload, download, and delete images and annotation files.
  • Offline‑first – all static assets are bundled; the server can run on an isolated intranet.
  • Keyboard shortcuts – Ctrl+S to save, Ctrl+Shift+D to clear a label.

How to get started

# clone the repo, then create a virtual environment
python -m venv venv
source venv/bin/activate   # or venv\Scripts\activate on Windows

# install dependencies (mirrored from Tsinghua PyPI source)
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# run the Flask server
python app.py --host 0.0.0.0 --port 9924

Open a modern browser at http://127.0.0.1:9924 and you’ll see the labeling UI.

Project layout (high‑level)

  • app.py – entry point, starts the Flask + SocketIO server.
  • AiUtils.py – helper class that forwards images to the configured large‑model API and parses the returned annotations.
  • templates/ – HTML pages (index.html, ai_config.html, file_manager.html).
  • static/ – CSS, JavaScript, icons, and a bundled Socket.IO client library for offline use.
  • uploads/ – runtime storage for uploaded media, generated annotation files, and user‑specific config.

Technology stack

  • Backend: Python 3.9+, Flask, Flask‑SocketIO.
  • Frontend: HTML / CSS / JavaScript, Socket.IO for real‑time updates.
  • Image handling: OpenCV and Pillow (PIL).
  • Packaging: PyInstaller spec (ytlabel.spec) for optional standalone binaries.

License

  • The code written for ytlabel is released under the MIT license.
  • Third‑party libraries keep their original licenses.
  • The AI auto‑label feature merely forwards requests to a user‑controlled model API; ytlabel itself does not ship any model weights.

Who might use it

  • Researchers or engineers building custom computer‑vision datasets who need a simple, self‑hosted labeling UI.
  • Teams that want to keep data on‑premise and still benefit from large‑model assistance without sending images to cloud services.
  • Anyone looking for a Flask‑based, cross‑platform labeling tool that can be packaged for offline deployment.

Related

  • Project
  • Project
  • Project
  • Project
  • Project