Annotation
Image (CV) annotation lives at /projects/{id}/annotate (annotate.html). Non-image modalities use the same URL with annotate_samples.html (text, tabular, audio, video, LLM).
Computer vision (visual)
Prerequisites
At least one class on the project.
At least one image (upload or import).
Project types
Type |
Label tools |
|---|---|
|
Bounding boxes |
|
Polygons (SAM can produce polygons from point prompts) |
|
Whole-image class assignment |
There is no pixel-mask brush yet — segmentation is polygon-based. Keypoints, OBB, OCR, and point cloud are not shipped.
Tools
Tool |
Geometry |
Typical use |
|---|---|---|
Bounding box |
|
Object detection |
Polygon |
Point list normalized |
Instance outlines / SAM refine |
Classification |
Whole-image class id |
Image classification |
Coordinates are normalized to the image (0–1), so labels stay valid if you resize later during version generation.
Workflow tips
Select a class, then draw (or assign class for classification projects).
Edit or delete existing annotations as needed.
Use keyboard / UI navigation to move between images.
Delete the current image from the annotator when cleaning the set.
Re-run Label Assist carefully — YOLO assist clears previous
source=yoloannotations on each image it processes before writing new ones. Manual annotations are kept.Optional: SAM point prompts → polygons (see SAM (interactive segmentation)); YOLO Label Assist (see Label Assist (YOLO)).
Annotation sources
Source |
Meaning |
|---|---|
|
Drawn in the UI |
|
Created by Label Assist |
|
Created by SAM point prompts |
|
Loaded from YOLO labels on import |
CV annotation API
GET /api/images/{image_id}/annotations
POST /api/images/{image_id}/annotations
PUT /api/annotations/{annotation_id}
DELETE /api/annotations/{annotation_id}
Example create body:
{
"class_id": 1,
"annotation_type": "bbox",
"geometry": {"x": 0.1, "y": 0.2, "width": 0.3, "height": 0.4},
"confidence": null,
"source": "manual"
}
annotation_type: bbox, polygon, classification (mask exists in the schema but is unused in the UI).
Upload images
UI: /projects/{id}/upload — multi-file upload.
API:
POST /api/projects/{project_id}/images
Content-Type: multipart/form-data
files: <one or more images>
Supported extensions: .jpg, .jpeg, .png, .bmp, .webp, .tif, .tiff.
Files are stored under {project_location}/images/ with UUID filenames.
Delete images
Single:
DELETE /api/images/{image_id}Bulk: select mode on the project grid →
POST /api/images/bulk-delete
Non-image modalities
For text, tabular, audio, video, and LLM projects:
Create the matching project type.
Import CSV/JSONL (see Text and tabular modalities and Audio, video, and LLM datasets).
Open Annotate — the sample UI labels spans, values, transcripts, or LLM fields.
Use sample APIs under
/api/projects/{id}/samplesand/api/samples/{id}.
In-process training is deepest for CV (+ sklearn for text/tabular). Audio/video/LLM emphasize curate → package for external trainers.