Labelme: A Python Tool for Annotating Images Without the Headache
If you've ever tried to build a computer vision dataset, you know the pain: you've got hundreds of images, and you need to draw polygons around every dog, every car, every whatever-it-is you're trying to teach a model to recognize. Doing that by hand in a general-purpose image editor is slow and error-prone. Labelme is a graphical annotation tool written in Python that's built specifically for this job—and it's been quietly powering vision datasets for years.
What It Does
Labelme is a desktop annotation tool inspired by the original LabelMe project from MIT. It's written in Python and uses Qt for its graphical interface, so you get a real native-feeling app rather than a browser tab. You load up images (or video), draw shapes over the things you care about, and label them. The output is structured annotation data you can feed into a training pipeline.
The tool supports the primitives you'd expect: polygons, rectangles, circles, lines, and points. On top of that, it handles image-level flag annotation (useful for classification and dataset cleaning), video annotation, and GUI customization—things like predefined labels, auto-saving, and label validation. It also ships with multi-language support, covering English, Chinese, Japanese, Korean, German, French, and more, with 20 languages available in total.
Why It's Cool
-
It exports to formats you actually use. Rather than locking you into some proprietary format, Labelme exports VOC-format datasets for both semantic and instance segmentation, plus COCO-format datasets for instance segmentation. If you've worked with these formats before, you know how much time that saves.
-
The AI assistance is a genuine time-saver. The README lists AI-assisted point-to-polygon and mask annotation using SAM and EfficientSAM models, plus text-to-annotation via YOLO-world and SAM3. In practice, that means you can click a point or type a label and let the model do the tedious boundary-drawing for you. For anyone who's spent an afternoon tracing object outlines pixel by pixel, this is the kind of feature that changes your workflow.
-
It's built for real annotation work, not demos. The GUI customization options (predefined labels, auto-saving, label validation) suggest the maintainers understand that annotation is a long, repetitive task where small conveniences add up. Auto-save alone will save you from at least one minor tragedy.
-
Video annotation is included. A lot of annotation tools treat video as an afterthought. Labelme doesn't.
-
There's a standalone option. If you want to annotate without touching Python or Qt, there's a standalone app available at labelme.io. That's a thoughtful escape hatch for teams where not everyone wants to set up a Python environment.
How to Try It
Since Labelme is a Python package, installation is straightforward. You'll want to grab it from PyPI:
pip install labelme
Then launch it:
labelme
From there, you can open an image, start drawing shapes, and assign labels. The repository includes a tutorial under examples/tutorial that walks through the basics, along with dedicated example directories for semantic segmentation, instance segmentation, bbox detection, classification, and video annotation. Those examples are worth skimming—they show the full path from annotation to exported dataset.
If you'd rather skip the Python setup entirely, head to labelme.io for the standalone app. And if you run into questions, there's a Discord community linked from the repo.
You can find the source, examples, and installation details at github.com/wkentaro/labelme.
Final Thoughts
Labelme isn't trying to be everything to everyone—it's a focused annotation tool that does its job well and exports to formats the vision community already relies on. The addition of SAM and YOLO-based assistance brings it in line with where the field is heading, without abandoning the manual controls that still matter for precise work. If you're building a segmentation or detection dataset and you're tired of cobbling together scripts and image editors, this is a sensible place to start. It's mature, actively maintained, and the standalone option means you don't have to be a Python developer to use it.
Follow @githubprojects for more developer tools and open source projects.