Guide

Build YOLO datasets on your own machine

Short answer

AnnotateIt is best suited to individual computer vision engineers and researchers building YOLO datasets on their own machine, who want the full round trip — YOLO in, AI-assisted labelling, YOLO out — with no account and no upload. It does not train the model; export and train in your own stack.

AnnotateIt speaks YOLO natively: import an existing YOLO dataset to fix or extend it, label new images with local AI assistance, and export back to YOLO — without a server or an account anywhere in the loop.

Annotate with ChatGPT or Claude

Describe it. Refine it. Review it on the canvas.

Ask for boxes, segmentation polygons or image classes in plain language. Work with one image or video frame in chat, or give Auto-annotate one instruction for a batch of images. Review the results directly in AnnotateIt.

  1. 01

    Ask in context

    Open Annotate with ChatGPT or Claude above Next. The current image or frame is attached by default; you can turn it off.

  2. 02

    Refine together

    Create, rename, recolor or delete project labels with confirmation. Ask follow-up questions to refine pending boxes or polygons.

  3. 03

    Accept or reject

    Review the usual AI suggestions on the canvas. Use the existing Accept / Reject controls; the chat reports when nothing was annotated.

Optional online feature: an attached chat message sends one image or one frame and context to your selected provider, OpenAI or Anthropic. Starting an assistant batch sends eligible images and project labels from your chosen scope. No whole-video or keypoint generation. Local AI tools remain separate.

The AnnotateIt annotator with the bounding-box tool active on a detection project.

A manual image-box tool such as labelImg fits when

  • You want the absolute minimum: boxes in, txt files out
  • One person, occasional labeling, no AI assistance needed

AnnotateIt fits when

  • AI proposals speed you up: ready-made COCO detectors, text-prompt detection, the detection assistant, or your own YOLOv8
  • You also need segmentation, keypoints or classification in the same tool
  • You want real import/export round-trips, not just writing label files
  • Your source material includes video that needs to become frames
labelImg (archived project)AnnotateIt
FormatsPascal VOC, YOLO and CreateML; see the archived labelImg README

labelImg on GitHub

YOLO, COCO, Pascal VOC and Datumaro import and export; MOT, MOTS, KITTI, Supervisely Video and plain ZIP on export
AI assistanceManual image-box annotation in the reviewed labelImg project

labelImg on GitHub

Curated COCO-80 detectors (D-FINE, RT-DETR, RT-DETRv2, DEIM, RF-DETR, EdgeCrafter ECDet), Grounding DINO text prompts, the detection assistant, batch pre-labelling with a review queue, and custom YOLOv8 / RT-DETR / DETR import (experimental)
VideoImage-file workflow; extract frames externally

labelImg on GitHub

Keyframe tracks with interpolation, or frames as images — locally
RunsLocally

labelImg on GitHub

Locally — browser or native builds

Last reviewed: September 19, 2026

Official-source review: September 19, 2026. The other column describes the archived labelImg image-box tool, not all YOLO annotation software. Other local tools can include AI, training and video workflows.

Sources:Ultralytics YOLO docslabelImg on GitHub

Which situation is yours

The three YOLO jobs people come here for

Labelling from scratch is only one of them. Editing a dataset you already have, and keeping confidential images off a vendor’s disk, are the other two — and they have different answers.

A private YOLO annotation tool: building datasets without uploading an image

The specific scenario: you are training a YOLO model, your images are confidential — customer footage, medical images, internal manufacturing data — and local and self-hosted alternatives also exist, including X-AnyLabeling, RectLabel, CVAT and Label Studio. AnnotateIt reads and writes YOLO natively and runs entirely on your machine, so the dataset never becomes someone else’s upload.

Local model pre-labelling stays on-device. For anything among the 80 COCO classes, a ready-to-use auto-annotation detector — D-FINE, RT-DETR, RT-DETRv2, DEIM, RF-DETR or EdgeCrafter ECDet — downloads from the Models page and runs on your CPU; you map its classes to your labels, test it on one of your own images and save. Text-prompt detection with Grounding DINO gives you a first pass on a new class, and your own trained YOLOv8, RT-DETR or DETR can be imported as ONNX through an experimental five-step wizard — select the file, inspect what was detected, map its classes to your labels, run a mandatory test on one of your own images, then save. Nothing is saved until a test run succeeds, so a mis-mapped model cannot quietly poison a dataset.

  • Images are under NDA, regulated, or simply not yours to upload
  • Model files download once (native builds bundle the defaults); inference runs on your CPU or GPU
  • Custom model import is capped at 512 MB and rejects output shapes it does not recognise — it is not "any ONNX", and it is experimental
  • For YOLO training, export into your own stack; the experimental connected runner currently targets TAO RT-DETR

Editing a YOLO dataset you already have

Import is a first-class path, not an afterthought. Zip the dataset — images, .txt label files and a class list from obj.names or a data.yaml — and the importer reads it: rows with four or more values become boxes, longer even-length rows become segmentation polygons, and label files are matched to images by path rather than bare filename, so split folders with same-named files do not collide.

From there it is an ordinary project: fix the boxes that are wrong, add the class someone forgot, run quality checks over the result, and export back to YOLO. Turn on dataset splits first if you want the Ultralytics train/val/test folder layout and a data.yaml that trains without further editing.

  • Recognises obj.names and data.yaml class lists; boxes and segmentation polygons both round-trip
  • Quality checks flag empty images, tiny or out-of-bounds boxes and label imbalance before you retrain
  • Dataset versions let you freeze the state you imported, so you can diff or restore it later
  • Export back to YOLO, or to COCO, Pascal VOC or Datumaro if the next pipeline expects something else

A local YOLO labeler that is more than a box tool

An image-box tool such as archived labelImg can be sufficient for occasional work and supports more than one export format. The reason to want more is usually that the project stopped being only boxes: the same footage now needs segmentation masks, or keypoints, or a per-image class — and each of those in a separate tool means a separate export path and a separate set of mistakes.

Everything here shares one import and export pipeline, so a detection project, a segmentation project and a classification project all come out in formats your training stack already reads. Video is part of that too: annotate it in place with keyframe tracks, or split it into frames on your device — no upload, and no ffmpeg incantation to remember.

Migration guide

From an existing YOLO dataset

  1. Zip your existing YOLO dataset — images, label files and class list.
  2. Create a detection project in AnnotateIt and import the archive.
  3. Fix, extend, then export back to YOLO — or to COCO if the next pipeline needs it.

Common questions

Which YOLO layouts does the importer recognise?

It looks for a class list — obj.names, or names in a .yaml/.yml — plus .txt label files, and it matches label files to images by path rather than bare filename, so split folders with same-named files do not collide. Rows with four or more values are read as boxes; longer even-length rows are read as segmentation polygons.

Can I use my own trained model to pre-label?

Yes, through an experimental five-step wizard inside a project: select the ONNX file, inspect what was detected, map its classes to your labels, run a mandatory test on one of your own images, then save. Nothing is saved until a test run succeeds, so a mis-mapped model cannot quietly poison a dataset. It accepts YOLOv8 detection, segmentation and pose, RT-DETR, DETR and plain image classifiers up to 512 MB.

Do I have to bring my own model, or are there ready-made detectors?

Both. If your classes are among the 80 COCO classes, download a curated auto-annotation detector from the Models page — D-FINE, RT-DETR, RT-DETRv2, DEIM, RF-DETR or EdgeCrafter ECDet — set it up in the project (map its labels to yours, test it on one image, save) and it pre-labels on your CPU. For classes outside COCO, import your own trained YOLOv8, RT-DETR or DETR through the experimental wizard instead. The curated detectors are pre-configured and check themselves against a published specification on your device before they are allowed to label; your own file is gated by the mandatory test run. Nothing is uploaded either way.

Do the AI models see my images over the network?

Local AI tools download model files and run inference on your CPU or GPU. Optional annotation with ChatGPT or Claude is different: sending a message with the image attached sends its preview, project labels and annotation context to the selected provider (OpenAI or Anthropic).

Do I get an Ultralytics-ready folder layout?

Yes, when you use dataset splits. Define train/validation/test in the project and the YOLO export writes the matching folder structure with a data.yaml alongside it. Without splits you get a flat YOLO export.

Does AnnotateIt train the model?

AnnotateIt does not train YOLO inside the app. Export YOLO for your training stack. The separate experimental desktop ML runner workflow currently targets TAO RT-DETR, while the loopback REST API serves local scripting.

See it on a real project first

AnnotateIt ships ready-made, fully annotated sample projects. Open one and click around — the annotator, the AI tools, the export flow — before importing anything of your own.

Open a sample project

Try it without an account

Create a local project without an AnnotateIt account. Projects stay on your device; optional external AI and ML connections have their own data transfers and account requirements.

Video tutorial

AnnotateIt tutorial