LABELOX

AI-assisted annotation platform for computer vision datasets

Status
Research
Version
0.1.0
Platform
Desktop app
License
Not specified
01 · Problem

Small annotation teams need labeling, model-assisted pre-annotation, review and export in one local tool, with priority given to the images the model is least sure about.

02 · Architecture

How it is put together.

LABELOX is a PyQt6 desktop annotation app for computer vision datasets, aimed at small teams of 2 to 5 annotators working on autonomous vehicle, robotics and surveillance data. It offers box, polygon, SAM-assisted mask, polyline, keypoint, 3D cuboid and classification tools, plus YOLOv8 auto-annotation, CLIP similarity search, an active-learning queue and a review/QA workflow. Business logic lives in a UI-free core package backed by SQLite; a web version is planned but not implemented.

Shared corecore/AI enginescore/Databasecore/database.pyDesktop appdesktop/UI widgetsdesktop/widgets/Web app (planned)web/Shared corecore/AI enginescore/Databasecore/database.pyDesktop appdesktop/UI widgetsdesktop/widgets/Web app (planned)web/
FIG. 01Modules and data flows, from the repository layout and documentation.
  1. 1

    Shared core

    UI-free business logic: annotation CRUD, exporter, importer, validator, review engine, stats

    core/
  2. 2

    AI engines

    YOLOv8 auto-annotator, SAM engine, CLIP similarity engine, scene classifier, active learner, IoU tracker

    core/
  3. 3

    Database

    SQLAlchemy ORM over SQLite (data/labelox.db or $DATABASE_URL)

    core/database.py
  4. 4

    Desktop app

    AppState, main window, theme and background QThread workers

    desktop/
  5. 5

    UI widgets

    Annotation canvas, image browser, timeline, review, analytics, similarity, export dialogs

    desktop/widgets/
  6. 6

    Web app (planned)

    FastAPI backend and React frontend; architecture defined, implementation pending

    web/
03 · Capabilities

Specification.

Annotation tools
Bounding box, polygon, smart polygon, SAM mask, polyline, keypoint, 3D cuboid, classification
Auto-annotation
YOLOv8 batch inference, five model sizes, custom .pt models
Interactive segmentation
SAM click-to-mask with positive and negative clicks
Similarity search
CLIP embeddings with a FAISS index; label transfer from similar images
Active learning
Smart queue ranked by detection uncertainty and CLIP novelty
Review and validation
Approve / Reject / Needs Work; six automated quality checks
Export formats
YOLO, COCO JSON, CVAT XML, Pascal VOC, CSV
Import formats
YOLO, COCO JSON, CVAT XML, Pascal VOC, ROVIX video session
Runs on
PyQt6 desktop app launched with python3 desktop/main.py; web app is planned only
Stack
  • Python 3.11+
  • PyQt6
  • PyTorch
  • Ultralytics YOLOv8
  • Segment Anything
  • transformers (CLIP)
  • FAISS
  • SQLAlchemy
  • SQLite
  • Pydantic v2
  • OpenCV
  • Loguru