Skip to main content

AI Labelling tool for computer vision

Project description

Ultimate AI Labeller

Desktop image annotation tool for object detection datasets (Tkinter + Ultralytics), with a separate web project.

Features

  • Bounding-box annotation with drag, move, and resize handles
  • Multi-select boxes (Shift/Ctrl + Click) for batch class reassignment and delete
  • Select all boxes in current image (Ctrl+A)
  • Nested/overlapping box picking prefers inner (smaller) box for easier adjustment
  • Undo/redo history (Ctrl+Z, Ctrl+Y)
  • Image navigation (F next/save, D previous)
  • Auto red-region proposal (A)
  • YOLO detection from UI (Run Detection)
  • Startup source selection:
    • Open Images Folder
    • Open YOLO Dataset
    • Open RF-DETR Dataset
  • Detection model management:
    • Official model mode (yolo26m.pt path by default)
    • Import custom models (.pt, .onnx) via Browse Model
    • Select model from dropdown library
  • Train from existing labels:
    • Choose training range by index
    • Save training artifacts to selected output folder
    • Non-blocking background training (continue labeling while training)
    • Built-in training monitor (command/log/progress/ETA)
  • Class management:
    • Add / rename / delete class in class table
    • Deleting a class reindexes following class IDs automatically
  • Auto-detect and propagate options
  • Scrollable right settings panel
  • Remove/restore bad frames from split
  • Image dropdown jump
  • Session resume (last project/split/image/model settings)
  • English/Chinese UI switch and light/dark theme
  • Export all annotations by format:
    • YOLO (.txt) export to images/train + labels/train structure
    • JSON full dataset export (per-image annotation json)

Repositories

  • Desktop app (this repo): https://github.com/JamesChang666/ultimate_ai_labeller
  • Web app (separate repo): https://github.com/JamesChang666/labeller_web

Dataset Structure

your_project/
  images/
    train/
    val/
    test/
  labels/
    train/
    val/
    test/
  • Image extensions: .png, .jpg, .jpeg
  • Label format: YOLO txt (class cx cy w h, normalized)
  • Full guide (ZH): docs/dataset-structure-guide.md

Removed frames are moved to:

your_project/
  removed/
    train|val|test/
      images/
      labels/

Install

From PyPI:

pip install ultimate_ai_labeller

From local wheel:

pip install dist/ultimate_ai_labeller-0.1.10-py3-none-any.whl

From source:

pip install .

For development:

pip install -e .

Run

ai-labeller

Or:

python src/ai_labeller/main.py

Web Version

This desktop repository includes local development files under web_labeller/, but the maintained web repository is:

  • https://github.com/JamesChang666/labeller_web

Run locally:

cd web_labeller
pip install -r requirements.txt
uvicorn app:app --host 127.0.0.1 --port 8000 --reload

Shortcuts

  • F: save and next image
  • D: previous image
  • A: auto red detection
  • Ctrl+Z: undo
  • Ctrl+Y: redo
  • Ctrl+A: select all boxes in current image
  • Delete: delete selected box

Notes

  • Default detection model mode is Official YOLO26m.pt (Bundled).
  • If the official model file is unavailable locally, import a custom .pt/.onnx model from the UI.
  • To use your own Tk app icon, put app_icon.png in src/ai_labeller/assets/.
  • Session file: ~/.ai_labeller_session.json.
  • Project progress YAML: <project_root>/.ai_labeller_progress.yaml (resume split/image and class names after reopen).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ultimate_ai_labeller-0.1.10.tar.gz (46.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ultimate_ai_labeller-0.1.10-py3-none-any.whl (46.1 MB view details)

Uploaded Python 3

File details

Details for the file ultimate_ai_labeller-0.1.10.tar.gz.

File metadata

File hashes

Hashes for ultimate_ai_labeller-0.1.10.tar.gz
Algorithm Hash digest
SHA256 39e1cab5de1793383af7500da0cb79336932da6fe7ad6554eee546b9eb2acc81
MD5 3ea225e76b266f2dfa5f5210356a8f20
BLAKE2b-256 a4b2803565ea338084213d0e99e2df380d2a1ff74da962fe3bb75e987f611d53

See more details on using hashes here.

File details

Details for the file ultimate_ai_labeller-0.1.10-py3-none-any.whl.

File metadata

File hashes

Hashes for ultimate_ai_labeller-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 6f8234d2f3e6fe8837626e6d4414eb33a2834e00fa210b294a2a0f295441ab8c
MD5 b35d69b73a582539d969894d70f19b3b
BLAKE2b-256 6be7e7fd52f481e1cfd80ec980d49aa38e2a6193c0128b3265e685856a122956

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page