Skip to main content

An image segmentation GUI for generating ML ready mask tensors and annotations.

Project description

LazyLabel Logo LazyLabel Cursive

AI-Assisted Image Segmentation Made Simple

LazyLabel combines Meta's Segment Anything Model (SAM) with intuitive editing tools for fast, precise image labeling. Perfect for machine learning datasets and computer vision research.

LazyLabel Screenshot


🚀 Quick Start

Installation

pip install lazylabel-gui
lazylabel-gui

Optional: SAM-2 Support

For advanced SAM-2 models, install manually:

pip install git+https://github.com/facebookresearch/sam2.git

Note: SAM-2 is optional - LazyLabel works with SAM 1.0 models by default

Usage

  1. Open Folder → Select your image directory
  2. Click on image → AI generates instant masks
  3. Fine-tune → Edit polygons, merge segments
  4. Export → Clean .npz files ready for ML training

✨ Key Features

  • 🧠 One-click AI segmentation with Meta's SAM and SAM2 models
  • 🎨 Manual polygon drawing with full vertex control
  • ⚡ Smart editing tools - merge segments, adjust class names, and class order
  • 📊 ML-ready exports - One-hot encoded .npz format and .json for YOLO format
  • 🔧 Image enhancement - brightness, contrast, gamma adjustment
  • 🔍 Image viewer - zoom, pan, brightness, contrast, and gamma adjustment
  • ✂️ Edge cropping - define custom crop areas to focus on specific regions
  • 🔄 Undo/Redo - full history of all actions
  • 💾 Auto-saving - Automatic saving of your labels when navigating between images
  • 🎛️ Advanced filtering - FFT thresholding and color channel thresholding
  • ⌨️ Customizable hotkeys for all functions

⌨️ Essential Hotkeys

Action Key Description
AI Mode 1 Point-click segmentation
Draw Mode 2 Manual polygon drawing
Edit Mode E Select and modify shapes
Save Segment Space Confirm current mask
Merge M Combine selected segments
Pan Q + drag Navigate large images
Positive Point Left Click Add to segment
Negative Point Right Click Remove from segment

💡 All hotkeys customizable - Click "Hotkeys" button to personalize


📦 Output Format

Perfect for ML training - clean, structured data:

import numpy as np

# Load your labeled data
data = np.load('your_image.npz')
mask = data['mask']  # Shape: (height, width, num_classes)

# Each channel is a binary mask for one class
class_0_mask = mask[:, :, 0]  # Background
class_1_mask = mask[:, :, 1]  # Object type 1
class_2_mask = mask[:, :, 2]  # Object type 2

Ideal for:

  • Semantic segmentation datasets
  • Instance segmentation training
  • Computer vision research
  • Automated annotation pipelines

🛠️ Development

Requirements: Python 3.10+ 2.5GB disk space for SAM model (auto-downloaded)

Installation from Source

git clone https://github.com/dnzckn/LazyLabel.git
cd LazyLabel
pip install -e .
lazylabel-gui

Testing & Quality

# Run full test suite
python -m pytest --cov=lazylabel --cov-report=html

# Code formatting & linting
ruff check . && ruff format .

Architecture

  • Modular design with clean component separation
  • Signal-based communication between UI elements
  • Extensible model system for new SAM variants
  • Comprehensive test suite (150+ tests, 60%+ coverage)

🤝 Contributing

LazyLabel welcomes contributions! Check out:


🙏 Acknowledgments


☕ Support

If LazyLabel saves you time on annotation tasks, consider supporting the project!


Made with ❤️ for the computer vision community

Project details


Download files

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

Source Distribution

lazylabel_gui-1.2.0.tar.gz (78.6 kB view details)

Uploaded Source

Built Distribution

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

lazylabel_gui-1.2.0-py3-none-any.whl (89.3 kB view details)

Uploaded Python 3

File details

Details for the file lazylabel_gui-1.2.0.tar.gz.

File metadata

  • Download URL: lazylabel_gui-1.2.0.tar.gz
  • Upload date:
  • Size: 78.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for lazylabel_gui-1.2.0.tar.gz
Algorithm Hash digest
SHA256 9d411b72fa94b4f83c6f5d38ea407bb0dffdf5f422a9ad4a942a9da97065b9ad
MD5 70fe3f3d59bc1f3f979993abe97f8e85
BLAKE2b-256 787ccea68d0a3da3a754815c1ba65db2cca8642592e58cf1f9f2ee6fc0e97b3f

See more details on using hashes here.

File details

Details for the file lazylabel_gui-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: lazylabel_gui-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 89.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for lazylabel_gui-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2d301f9f0788b10f9ee68d614b89424c6d52ab6418a127760bb48fc4157cae30
MD5 7390499f7c40422aec3a9da0494d18f2
BLAKE2b-256 2fa4f0a1556d60d9d129bb398e47fb4c50896f08857bf36e5b4922ada2cad087

See more details on using hashes here.

Supported by

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