Import & export¶
Export formats¶
| Format | Contains | Use it for |
|---|---|---|
| Labelme JSON | One JSON per image: boxes as rectangle, polygons, classes as flags |
LabelMe and tools that read its format |
| YOLO boxes | Ready-to-train Ultralytics dataset: images/, labels/, data.yaml |
YOLO detection training |
| COCO JSON | One coco.json with boxes, polygon segmentations, and areas |
Detection and instance segmentation |
| Classification CSV | One row per image, one 0/1 column per class | Image classification |
| Native JSONL | Every annotation with its ID and status | Lossless backup and round-trips |
Shapes that a format can't represent are counted and reported, not silently dropped: YOLO boxes skips polygons and classes, COCO skips classes, and the CSV skips shapes.
Output layout¶
Each export creates a new folder, so earlier exports are never overwritten:
Lannotex-export-1a2b3c4d/
├── manifest.json # format, counts, skipped images and reasons
├── classes.json # label list; YOLO class IDs follow this order
├── classification.csv
├── images.jsonl
├── annotations.jsonl
└── 00000001_street.json # per-image files (Labelme JSON)
Images are referenced, not copied: exported records point to the original files. YOLO is the exception, described below.
What gets skipped¶
An image is left out of the export, and listed in manifest.json, if:
- its source file is missing,
- an annotation fails validation, or
- it has an unsaved recovery draft. Save it first.
Run View → Analysis or lannotex analyze beforehand to find these images.
YOLO: ready to train¶
The YOLO export is a complete Ultralytics dataset:
Lannotex-export-1a2b3c4d/
├── data.yaml # path, train/val, class names
├── images/00000001_street.jpg
└── labels/00000001_street.txt # class cx cy w h, normalized
yolo detect train data=Lannotex-export-1a2b3c4d/data.yaml model=yolo11n.pt
- Images are hard-linked into
images/when the export is on the same drive, so they take no extra space. Otherwise they're copied. Your originals are never modified. - Images marked No target objects get an empty label file, so YOLO learns them as background.
- Images you haven't annotated yet are left out. If they were included, YOLO would treat them as "nothing here".
trainandvalpoint at the same images. Split them yourself for a real evaluation.- If you move the export folder, update
path:indata.yaml.
Importing annotations¶
Project → Import annotations… accepts:
- a Labelme JSON file, or a folder of them (top level only), and
- a native JSONL export.
Each referenced image is checked: it must exist, and its dimensions must match the annotation file. Labels you don't have yet are created. An image that already has annotations or a draft in the project is skipped, never overwritten. Errors are listed per file.
See Coming from LabelMe for which LabelMe shape types are supported.
Headless export¶
lannotex export ./my-dataset ./exports --format "COCO JSON"
See Command line.