tuliq
Runs in your browser

Image Annotator

Load one or more images, draw bounding boxes around objects, assign class labels, and export in whichever format your pipeline needs. Your work autosaves locally as you go, and nothing you upload here ever leaves your browser.

No images yet.

Click-drag to draw
Upload images to start annotating

No boxes on this image yet.

Point and polyline boxes aren't valid detection boxes for this format and will be skipped.

About this tool

The Image Annotator is a browser-based labeling tool for building object-detection and segmentation datasets — draw rectangles, circles, ellipses, polygons, polylines, or points directly on your images, assign a class to each, and export in whatever format your training pipeline expects. It's built around the actual workflow of labeling a real dataset: upload a batch of images at once, switch between them with the arrow keys, assign classes with number-key hotkeys instead of reaching for a dropdown every time, and click-drag to resize or move any shape you've already drawn. For crowded scenes or small objects, zoom in (up to 400% of the image's own resolution) and drag the image around without losing your place — your boxes keep the same thin outline and label size at any magnification, so they never cover the detail you zoomed in to see. Work autosaves to your browser continuously, so a refresh, a crash, or an accidentally closed tab doesn't cost you an hour of labeling — reopen the tool and your images, boxes, and classes are exactly where you left them. Export whenever you're ready: YOLO, COCO, and Pascal VOC each flatten every shape to its bounding box (circles and polygons included), while VIA CSV preserves the exact shape you drew. Nothing you upload or draw is ever sent to a server.

Supported formats

  • YOLO — One .txt file per image plus a classes.txt — normalized 0–1 coordinates, bounding boxes only.
  • COCO — A single combined .json covering every image — bounding boxes only.
  • Pascal VOC — One .xml file per image — bounding boxes only.
  • VIA CSV — A single combined .csv — the only export that preserves every shape (circle, ellipse, polygon, polyline, point) exactly as drawn, not just its bounding box.

What you can do

  • Draw rectangles, circles, ellipses, polygons, polylines, and points
  • Zoom up to 400% and drag the image around to place shapes precisely on small or crowded objects
  • Annotate multiple images in one session, arrow keys to jump between them
  • Assign classes fast with number-key hotkeys (1-9)
  • Export as YOLO, COCO, Pascal VOC, or VIA CSV
  • Work autosaves locally as you go — a refresh won't lose your progress
  • Nothing you upload ever leaves your browser

How to use

Step 1

Upload images & add classes

Add your images, then define the classes you'll be labeling.

Step 2

Draw your shapes

Pick a shape from the toolbar, then click-drag (or click to place/add points). Zoom in with Ctrl + scroll for small details.

Step 3

Export your annotations

Pick a format and download — your work has already been autosaving.

Example

Draw a rectangle around a car, label it "car", repeat for every object in the image, then pick YOLO from the export dropdown. You'll get one .txt file per image — each line is a class index followed by the box's center x/y and width/height, all normalized 0–1 — plus a classes.txt listing your class names in index order:

example.txt

0 0.512 0.487 0.220 0.340

That line means class index 0 (the first class in classes.txt), a box centered at 51.2%/48.7% of the image, spanning 22% of its width and 34% of its height.

How your data is handled

This tool is labeled 🟢 Browser: your images, boxes, and classes are stored locally in your browser's IndexedDB for autosave. Nothing is ever uploaded to a server — clearing your browser data, or clicking "Start fresh," removes it completely.

Frequently asked questions

Will I lose my work if I close the tab or refresh?+

No — your images, boxes, and classes autosave locally to your browser roughly every second. Reopening the tool restores your last session automatically.

Can I export circles, ellipses, or polygons as YOLO or COCO?+

Those formats only understand rectangles, so a circle, ellipse, or polygon exports as its bounding box instead. Point and polyline shapes have no meaningful bounding box, so they're skipped for those formats (you'll see how many were skipped) — VIA CSV is the only export that keeps every shape exactly as drawn.

Can I remove a class after I've used it?+

Not while any box still uses it — delete or reassign those boxes first. This prevents an export from silently breaking because a box references a class that no longer exists.

How do the number-key hotkeys work?+

Keys 1–9 switch your active class to the class in that position in your class list, so you can label quickly without reaching for the mouse to switch classes between boxes.

How do I zoom in on a small or crowded part of an image?+

Hold Ctrl (or ⌘ on a Mac) and scroll over the image — it zooms toward your cursor, and a trackpad pinch works the same way. You can also use the − / + buttons above the image or the - and + keys, and press 0 (or click Fit) to see the whole image again. To move around while zoomed, switch on the hand tool (the arrows button next to the zoom controls, or press H) and drag the image like a map — switch it off to go back to drawing. Holding Space or dragging with the middle mouse button does the same temporarily, and the scrollbars still work. Zoom goes up to 400% of the image's own resolution, and resets to fit whenever you switch to another image.

Does zooming change my exported coordinates?+

No — zoom only changes how the image is displayed. Every box is stored in the image's own pixel coordinates regardless of zoom level, so an export is identical whether you drew the box zoomed in or zoomed out.

Where is my data stored, and is it uploaded anywhere?+

Everything — images, boxes, classes — is stored locally in your browser's IndexedDB. Nothing is ever uploaded to a server.

Related tools