Skip to main content

The universal annotation converter

If you’ve ever written a one-off Python script to wrangle COCO annotations into YOLO format (or vice versa), Panlabel is here to save you the trouble. It’s a fast, single-binary CLI that converts between common object detection annotation formats — with built-in validation, clear lossiness warnings, and no Python dependencies to manage. Panlabel is also available as a Rust library if you want to integrate format conversion into your own tools.
Panlabel is in active development (v0.2.x). The CLI and library APIs may change between versions, so pin to a specific version if you’re using it in production.

Get started quickly

Installation

Install Panlabel on macOS, Linux, or Windows

Quickstart

Get started with Panlabel in minutes

CLI Commands

Explore all available commands and options

Format Reference

Learn about supported annotation formats

Key features

Format Conversion

Convert between COCO, YOLO, Pascal VOC, CVAT, Label Studio, TensorFlow Object Detection, and Panlabel’s own IR format

Auto-detection

Automatically detect input format from file extension, content, or directory layout

Dataset Validation

Check datasets for common problems — duplicate IDs, missing references, invalid bounding boxes

Rich Statistics

Generate detailed dataset statistics in text, JSON, or HTML format

Dataset Comparison

Compare two datasets semantically with summary or detailed output

Smart Sampling

Create subset datasets with random or stratified sampling, plus category filtering

Lossiness Warnings

Get clear warnings about what data (if any) gets lost during conversion

Zero Dependencies

Single binary with no Python dependencies to manage

What can Panlabel do?

CommandWhat it does
convertConvert between annotation formats, with clear warnings about what (if anything) gets lost
validateCheck your dataset for common problems — duplicate IDs, missing references, invalid bounding boxes
statsShow rich dataset statistics in text, JSON, or HTML
diffCompare two datasets semantically (summary or detailed output)
sampleCreate subset datasets (random or stratified), with optional category filtering
list-formatsShow which formats are supported and their read/write/lossiness capabilities

Supported formats

| Format | Extension / Layout | Description | Lossiness | |--------|--------------------|-------------|-----------|| | ir-json | .json | Panlabel’s own intermediate representation | Lossless | | coco | .json | COCO object detection format | Conditional | | cvat | .xml / annotations.xml export | CVAT for images XML annotation export | Lossy | | label-studio | .json | Label Studio task export JSON (rectanglelabels) | Lossy | | tfod | .csv | TensorFlow Object Detection | Lossy | | yolo | images/ + labels/ directory | Ultralytics YOLO .txt labels | Lossy | | voc | Annotations/ + JPEGImages/ directory | Pascal VOC XML | Lossy |
Run panlabel list-formats for the full details on format capabilities.

Next steps

Install Panlabel

Choose your preferred installation method

Quick Start Guide

Convert your first dataset in minutes