Yet Another Annotation Platform

A free, local, open-source computer-vision annotation platform. Segment with SAM 3, auto-label with YOLO / RT-DETR, augment, version, and export as YOLO or COCO — then train on your own GPU. Nothing ever leaves your machine. The core idea behind YAAP: everything runs on your own machine.

MIT License YOLO RT-DETR SAM3 100% local Docker pulls
Upload SAM-assisted annotation Auto-label Generate version Export / Train
🔒

No accounts, no telemetry, no cloud

Storage is a SQLite DB plus plain folders under data/. Delete the folder and the data is gone — nothing is phoned home.

🖥️

Binds to 127.0.0.1

The web UI is not reachable from the network by default. Put a reverse proxy in front if you deliberately want LAN access.

✈️

Air-gapped capable

The only outbound traffic is downloading model weights the first time. Supply .pt files yourself and it never calls out.

Get it

Run YAAP in two minutes

Pull the pre-built image from Docker Hub, or clone the repo and build it yourself. Both give you the identical app at http://127.0.0.1:8811, with all state persisted on your own disk.

From GitHub

Clone the repo and build locally with Docker Compose — GPU by default, CPU fallback profile included.

# clone
git clone https://github.com/Computer-Vision-AI-Hub/YAAP
cd YAAP

# GPU (needs NVIDIA driver + nvidia-container-toolkit)
docker compose up --build

# CPU fallback
docker compose --profile cpu up --build yaap-cpu

From Docker Hub

Skip the build — pull the published image straight from Docker Hub and run it.

lukasiktar/yaap:gpu lukasiktar/yaap:cpu
# GPU image
docker pull lukasiktar/yaap:gpu
docker run -d --name yaap --gpus all \
  -p 127.0.0.1:8811:8811 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/seg_models:/app/seg_models \
  --shm-size=8gb \
  lukasiktar/yaap:gpu
# CPU image (no GPU on this machine)
docker pull lukasiktar/yaap:cpu
docker run -d --name yaap-cpu \
  -p 127.0.0.1:8811:8811 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/seg_models:/app/seg_models \
  lukasiktar/yaap:cpu

Prefer bare Python? pip install -r requirements.txt && python run.py — see the README for the CUDA-matched torch install step.

Features

Everything from first click to trained model

One interaction model, three task types — object detection, instance segmentation, and classification — each exported in the format its architecture actually trains on.

🎯

Tasks

Object detection (boxes), instance segmentation (polygons), classification.

✏️

Editor

Pan/zoom canvas, SAM assist, box + polygon tools, vertex editing, class hotkeys 1–9, autosave.

SAM assist

SAM 3 point/box prompts, mask→polygon simplification, task-aware conversion, per-mask class picker.

Auto-label

Batch inference with YOLOv8/11/26, RT-DETR, or your own trained weights. Predictions land flagged for review.

🎛️

Augmentation

albumentations pipeline — flips, rotate, blur, noise, CLAHE, cutout and more — with live preview.

📦

Versions

Frozen dataset snapshots: split ratios, preprocessing, augmentation multiplier, zip download.

📤

Export

YOLO (detect / seg / cls, data.yaml) or COCO JSON, Roboflow-style layout.

🧠

Training

Launch ultralytics training jobs from the UI with a live log. Best weights feed back into auto-label.

🖥️

GPU

PyTorch + CUDA, auto-detected. SAM, auto-label and training all use it when available.

SAM-assisted annotation is the heart of YAAP

Click or drag on the object — SAM 3 predicts a mask instantly. Refine it with more clicks, then pick a class from the chip row or hit Accept. YAAP converts the mask to whatever format your project trains on.

Detection project → enclosing box. Segmentation project → editable polygon. One interaction model, correctly-formatted labels either way.

PromptHow
PointClick on the object (shift-click adds a negative point to carve away background). Every extra click refines the mask.
BoxDrag a rough rectangle around the object.
RejectEsc discards the predicted mask with no trace left behind.
⚠️

SAM 3 weights are gated by Meta — they don't auto-download like the YOLO/RT-DETR weights do. Request access on the SAM 3 Hugging Face page, wait for approval, then authenticate with hf auth login before first use (or download the checkpoint yourself once approved and drop it into seg_models/).

Workflow

From upload to a trained model

A human-in-the-loop flywheel: label a little, auto-label the rest, review, retrain, repeat.

1

New project

Pick the task type — it decides the tools you see and the export format.

2

Classes

Define them before labeling; their order becomes the YOLO class index.

3

Upload

Drag & drop — originals stored untouched, thumbnails generated automatically.

4

Annotate

S SAM assist · B box · P polygon · 1-9 class · saves automatically.

5

Auto-label

Run a pretrained / uploaded / YAAP-trained model over unannotated images, then review.

6

Generate

Choose splits, preprocessing and augmentations, preview them, generate a version.

7

Versions

Download the zip, or point yolo train straight at the version folder.

8

Train

Pick version + architecture + epochs, watch the live log. best.pt feeds the next auto-label round.

Screenshots

See it in action

Gallery is on its way — drop images into docs/img/ and swap these placeholders for real captures.

🖼️
annotation editor
SAM-assisted labeling
auto-label review queue
📦
dataset versions & export

More to come as the platform gets used in real projects.

Built by ComputerVisionAIHub

YAAP is part of ComputerVisionAIHub's open-source computer-vision tooling. Check out the hub for more projects, or come back here once images and case studies are ready to add.

Visit ComputerVisionAIHub →