Skip to main content

A modern, enhanced image annotation tool for machine learning

https://img.shields.io/pypi/v/labelImgPlusPlus.svg https://img.shields.io/pypi/dm/labelImgPlusPlus.svg https://github.com/abhiksark/labelImg-plus-plus/actions/workflows/ci.yaml/badge.svg https://img.shields.io/badge/python-3.8%2B-blue.svg https://img.shields.io/badge/license-MIT-green.svg https://sonarcloud.io/api/project_badges/measure?project=abhiksark_labelImg-plus-plus&metric=alert_status

labelImg++ is a graphical image annotation tool for bounding boxes, polygons, and keypoints, designed for machine learning and computer vision projects. It is forked from the original LabelImg with significant enhancements.

Version 3.0.0 (stable). Install with pip install labelimgplusplus.

labelImg++ demo - gallery, bounding boxes, dark theme, polygons, keypoints and save

Features

Core Annotation Features

  • Five annotation formats: PASCAL VOC, YOLO bbox, CreateML, COCO, and YOLO-seg

  • Bounding box and polygon annotation with interactive editing

  • Keypoint annotation with COCO 17-point human pose and 5-point face templates; COCO preserves keypoints on export

  • Auto-save mode for uninterrupted workflow

  • Predefined class labels with customizable list

  • Verification system to mark completed annotations

Workflow and Interface

Undo/Redo Support

Full undo/redo for annotation actions. Press Ctrl+Z to undo and Ctrl+Shift+Z to redo.

Gallery Mode with Annotation Preview

Visual thumbnail gallery showing all images with bounding box and polygon overlays directly on thumbnails across all five annotation formats.

  • Colored borders indicate status: Gray (no labels), Blue (has labels), Green (verified)

  • Bounding boxes use compact corner markers; polygons use outline previews

  • Quick size presets (S/M/L/XL) plus slider for fine control

  • Smart selection: click on nested boxes selects the inner box

  • Press Ctrl+G to toggle gallery mode

Modern UI with Feather Icons

Clean, modern interface with beautiful Feather icons and improved visual design.

Responsive DPI Scaling

Icons and UI elements scale properly on high-DPI displays (4K, Retina).

Expandable Toolbar

Click the chevron at the bottom of the toolbar to expand/collapse and show full button labels.

Consolidated File Menu

Open File, Open Dir, and Change Save Dir combined into a single dropdown for cleaner toolbar.

Brightness Adjustment

Adjust image brightness on-the-fly to better see annotations on dark or light images.

Dark Mode Theme

Choose between light and dark themes for comfortable annotation in any lighting condition.

  • Press Ctrl+Shift+T to toggle between themes

  • Theme preference automatically saved

  • All UI components (canvas, gallery, dialogs) respect the active theme

  • See Dark Mode Documentation for detailed information

SAM-Assisted Segmentation (optional)

Click once on an object to auto-generate a polygon, traced from a Segment-Anything mask. Install the optional extra and toggle SAM Segment:

pip install labelimgplusplus[sam]

Runs the lightweight MobileSAM model on ONNX Runtime as a CPU-friendly extra with no PyTorch dependency. The default model pair is downloaded and checksum-verified on first use. Point Tools → SAM Settings… at your own exported encoder/decoder pair to use a different SAM variant. Without the extra installed, the action stays disabled (with an install hint) and nothing else changes.

Installation

labelImg++ requires Python 3.8 or newer.

Build from Source

Ubuntu/Linux:

sudo apt-get install pyqt5-dev-tools
pip3 install -r requirements/requirements-linux-python3.txt
make qt5py3
python3 labelImgPlusPlus.py

macOS:

pip3 install pyqt5 lxml
make qt5py3
python3 labelImgPlusPlus.py

Windows:

pip install pyqt5 lxml
pyrcc5 -o libs/resources.py resources.qrc
python labelImgPlusPlus.py

Quick Start

  1. Open images: Click the file dropdown button or press Ctrl+U to load a directory

  2. Create annotations: Press W or click Create RectBox, then drag to draw

  3. Label objects: Select a class from the popup dialog

  4. Save: Press Ctrl+S to save annotations

  5. Navigate: Use D (next) and A (previous) to move between images

  6. Review: Press Ctrl+G for gallery mode to review all annotations

Supported Annotation Formats

Format

Extension

Annotation support

PASCAL VOC

.xml

Bounding boxes and the labelImg++ polygon extension

YOLO (bbox)

.txt

Normalized bounding boxes, with classes.txt for class names

CreateML

.json

Bounding boxes in Apple’s CreateML annotation format

COCO

.json

Bounding boxes, polygon segmentation, and keypoints

YOLO-seg

.txt

Normalized polygons; rectangles are written as four-point polygons

Polygon drawing and editing are available in the application. Saving polygons as YOLO bounding boxes or CreateML warns before converting each polygon to its enclosing box. Keypoints are preserved by COCO; the other formats do not encode them.

Keyboard Shortcuts

These are the defaults. They can be changed from Help → Keyboard Shortcuts.

File Operations

Ctrl + O

Open file

Ctrl + U

Open directory

Ctrl + R

Change save directory

Ctrl + S

Save current annotation

Ctrl + Y

Cycle annotation format

Ctrl + Shift + S

Save as

Navigation

D

Next image

A

Previous image

Ctrl + G

Toggle Gallery Mode

Annotation

W

Create bounding box

P

Create polygon

K

Enter keypoint mode

Ctrl + Z

Undo

Ctrl + Shift + Z

Redo

Ctrl + D

Duplicate selected box

Del

Delete selected box

Space

Mark image as verified

Arrow keys

Move selected box

View

Ctrl + +

Zoom in

Ctrl + -

Zoom out

Ctrl + F

Fit window

Ctrl + Shift + F

Fit width

Ctrl + Shift + T

Toggle dark mode theme

Configuration

Predefined Classes

Edit data/predefined_classes.txt to customize the label options:

dog
cat
person
car
bicycle

Reset Settings

If you encounter issues, reset the settings:

rm ~/.labelImgSettings.json

Or use Menu > File > Reset All

Release History

This source tree identifies itself as 3.0.0, the stable 3.0 release. See the release history for version-by-version changes and GitHub Releases for published artifacts.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

MIT License

Based on LabelImg by Tzutalin.

Author

Maintained by Abhik Sarkar

Acknowledgments

  • Original LabelImg by Tzutalin

  • Feather Icons for modern iconography

  • All contributors and users of labelImg++

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

labelimgplusplus-3.0.0.tar.gz (207.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

labelimgplusplus-3.0.0-py3-none-any.whl (218.4 kB view details)

Uploaded Python 3

File details

Details for the file labelimgplusplus-3.0.0.tar.gz.

File metadata

  • Download URL: labelimgplusplus-3.0.0.tar.gz
  • Upload date:
  • Size: 207.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for labelimgplusplus-3.0.0.tar.gz
Algorithm Hash digest
SHA256 4839f6fd6849dac2b98a3ea501294b8d49ef47549eb241033a3ea5a9b8963db4
MD5 e0c6ddacfae701df09ae2c4bef57eaf7
BLAKE2b-256 94c062f5c2c1e8293fe0b5eb23b9291f5190b4f5a06762d7053b86a4a965f991

See more details on using hashes here.

Provenance

The following attestation bundles were made for labelimgplusplus-3.0.0.tar.gz:

Publisher: ci.yaml on abhiksark/labelImg-plus-plus

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file labelimgplusplus-3.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for labelimgplusplus-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e76ac9a1c25a6216a27e60eef183edc60b6cd9234a5bc156443299c282cbe06b
MD5 9141ef260cd3b71f94fe6aa970a9e964
BLAKE2b-256 43559fb34d7283ec21b7633220264e96cabd1860226a70f44ae24d63ed9b253d

See more details on using hashes here.

Provenance

The following attestation bundles were made for labelimgplusplus-3.0.0-py3-none-any.whl:

Publisher: ci.yaml on abhiksark/labelImg-plus-plus

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.5.0

2 files

3.4.0

2 files

3.3.0

2 files

3.2.0

2 files

3.1.0

2 files

This release

3.0.0 This release

2 files

2.4.1

2 files

2.4.0

2 files

2.3.3

2 files

2.3.2

2 files

2.3.1

2 files

2.3.0

2 files

2.2.0

2 files

2.1.1

2 files

2.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page