# Computer Vision Formats

Source: https://www.potatoannotator.com/docs/vision-spatial/cv-formats

**Potato reads 15 computer-vision formats and writes 29, with 11 round-tripping.** If you are deciding whether to migrate a dataset, the question is usually not whether the labels can come in but whether they can go back out.

## Importing

```bash
potato import --format coco path/to/annotations.json
potato import path/to/dataset/          # auto-detects by signature file
```

`potato import` takes directories and zips, and detects the format from its signature files rather than requiring you to name it.

Import formats: COCO (polygon, RLE, crowd regions, panoptic, keypoints), YOLO, Pascal VOC, CVAT XML, Darwin (V7), LabelMe, KITTI, MOT, DAVIS, Cityscapes, Labelbox, Open Images, VIA, WebDataset, HuggingFace.

COCO imports **as-is**, including polygon and RLE segmentation and `iscrowd` crowd regions, with no preprocessing step. Existing annotations and model output can be corrected rather than recreated.

## The migration question

An import-only path lets a team leave a platform once but never hand work back. That asymmetry is worth checking before you commit to a tool.

**Darwin is bidirectional in Potato**, so a V7 dataset can come in, be worked on, and go back. That is the strongest single thing to say about this surface.

## The matrix is generated and tested

The [format matrix](https://github.com/davidjurgens/potato/blob/main/docs/data-export/format_matrix.md) is generated from the registries and pinned by a test that asserts every named format is actually registered, that no registered format is missing from the table, and that one-way paths are labelled one-way **in both directions**.

A matrix that can drift from the code is worse than no matrix: it tells people a migration will work when it will not, and understating what works steers them away from a migration that would have succeeded.

## What each format can carry

Formats differ in which geometry survives them, and the losses are not always obvious:

- **Pascal VOC and KITTI** carry boxes only. A polygon exported to either becomes its bounding box.
- **YOLO** carries boxes and polygons, not masks.
- **DAVIS** carries per-instance masks and nothing else.
- **Cityscapes** carries polygons, not boxes.
- **KITTI 3D** carries a single yaw, so pitch and roll are discarded — and the export reports how much orientation it dropped. See [point clouds](/docs/vision-spatial/point-clouds).

Round-tripping through a lossy format is lossy in the obvious way, and Potato states which direction loses what rather than leaving you to discover it.

## Related

- [Media ingest](/docs/vision-spatial/media-ingest) — reading the pixels, as opposed to the labels
- [Export formats reference](/docs/features/export-formats)
- [Format matrix](https://github.com/davidjurgens/potato/blob/main/docs/data-export/format_matrix.md)
- [Import CLI](https://github.com/davidjurgens/potato/blob/main/docs/tools/import_cli.md)
