explaingit

wkentaro/labelme

15,868PythonAudience · researcherComplexity · 2/5Setup · easy

TLDR

A graphical tool for drawing labels on images, draw shapes around objects to create training data for AI vision models, with AI-assisted annotation to speed up the process.

Mindmap

mindmap
  root((repo))
    Annotation types
      Bounding boxes
      Polygons
      Segmentation masks
    AI assistance
      SAM click-to-label
      YOLO text labels
    Output
      JSON files
      Standard ML formats
    Audience
      ML researchers
      Data scientists
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Label thousands of images with bounding boxes and polygon outlines to build a training dataset for an object detection model.

USE CASE 2

Use AI-assisted annotation to auto-suggest shapes from a single click, cutting manual labeling time significantly.

USE CASE 3

Annotate video frame-by-frame for instance segmentation tasks in a computer vision pipeline.

USE CASE 4

Export labeled data in standard ML formats to feed directly into a training script.

Tech stack

PythonQtSAMEfficientSAMYOLO

Getting it running

Difficulty · easy Time to first run · 30min

Installable via pip or as a standalone app from labelme.io, no GPU required for basic annotation.

In plain English

Labelme is a graphical tool for drawing annotations (labels) on images, a task required before training AI models to recognize objects, detect regions, or segment scenes. Think of it like a digital marker: you open an image, draw shapes around objects (polygons, rectangles, circles, lines, or single points), give each shape a label like "cat" or "car," and save that labeled data for later use in machine learning projects. The tool supports several annotation styles: bounding boxes (rectangles around objects), polygon outlines, semantic segmentation (coloring every pixel by category), and instance segmentation (separating individual objects of the same type). It can also annotate video frame by frame. A standout feature is AI-assisted annotation: instead of drawing every shape manually, you can use built-in AI models (SAM, EfficientSAM) that auto-suggest polygon or mask shapes from a single click, or use text-to-annotation models like YOLO-world to label objects by typing their name. Labelme is written in Python and uses Qt for its graphical interface. It can be installed via pip (Python's package manager), downloaded as a standalone app from labelme.io without needing Python at all, or obtained through Linux system packages. Annotations are saved as JSON files and can be exported in standard formats used by computer vision training pipelines. The interface is available in 20 languages. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
I have a folder of images and need to label objects with polygons for training a segmentation model. Walk me through setting up labelme and creating my first annotation session.
Prompt 2
Using labelme's AI-assisted annotation with SAM, help me write a script to batch-process a folder of images and auto-generate polygon labels for objects I specify.
Prompt 3
I want to use YOLO-world in labelme to annotate objects by typing their name. How do I enable text-to-annotation mode and export the results as COCO JSON?
Prompt 4
Help me convert labelme's JSON annotation files into Pascal VOC XML format for my training pipeline.
Prompt 5
Set up labelme for semantic segmentation of street scene images and configure it to export masks compatible with my PyTorch dataset loader.
Open on GitHub → Explain another repo

← wkentaro on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.