Label Mender
A professional YOLO annotation tool for refining and correcting model-generated labels. Built with PyQt5 for a smooth, native desktop experience on Windows, Linux, and macOS. Currently under active development with VLM & SAM integration coming soon!
Label Mender
A professional YOLO annotation tool designed specifically for data labelers who work with YOLO models daily. Label Mender streamlines the workflow of refining model-generated labels with an intuitive PyQt5 interface and powerful editing capabilities.
Currently under active development - New features and improvements are being added regularly. VLM and SAM integration coming soon!
Note: This is a completely free and open source tool — no premium features, no restrictions. Built for a specific use case: quickly fixing and refining model-generated labels.
Why Label Mender?
When training YOLO models, you often face these challenges:
- Wrong class predictions - Your model detects objects but assigns incorrect class labels
- Low mAP accuracy - Bounding boxes are not precise enough and need manual adjustment
- Semi-automated labeling - You want to use an existing model to speed up annotation, then manually fix errors
Label Mender solves this by providing a streamlined workflow:
- Load your trained YOLO model (.pt file)
- Run inference on your images to get initial detections
- Quickly review and correct class labels with number keys (1-9)
- Adjust bounding box positions and sizes by dragging
- Add missing boxes or delete false positives
- Save corrected annotations in YOLO format
Key Features
| Feature | Description |
|---|---|
| Cross-Platform | Works seamlessly on Windows, Linux, and macOS |
| Model-Assisted Labeling | Use your YOLO model for initial detections, then correct errors |
| Quick Class Correction | Press number keys 1-9 to instantly change box class |
| Interactive Box Editing | Click to select, drag to move, resize via corner/edge handles |
| Draw Mode | Create new bounding boxes for missed detections |
| Confidence Filtering | Adjust threshold to show/hide low-confidence detections |
| Batch Navigation | Navigate through image folders with progress tracking |
| Undo/Redo | Full undo/redo support for all operations |
| YOLO Format | Native support for YOLO annotation format (.txt files) |
Workflow
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Load Model │ --> │ Open Images │ --> │ Auto-detect │
│ (.pt file) │ │ Folder │ │ Objects │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
v
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Save & Next │ <-- │ Adjust Boxes │ <-- │ Fix Classes │
│ Image │ │ (drag/resize) │ │ (press 1-9) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
Keyboard Shortcuts
| Key | Action |
|---|---|
| W | Toggle Draw Mode |
| A | Previous Image |
| D | Next Image |
| S | Save Annotations |
| Q | Skip Image |
| N | Next Unannotated Image |
| X | Delete Current Image |
| Del | Delete Selected Box |
| Esc | Deselect / Exit Draw Mode |
| 1-9 | Set class of selected box |
| Ctrl+Z | Undo |
| Ctrl+Y | Redo |
| Ctrl+S | Save |
Technologies Used
- Python - Core programming language
- PyQt5 - Cross-platform GUI framework for native desktop experience
- YOLO - Object detection model integration
- Computer Vision - Image processing and annotation
- OpenCV - Image manipulation and display
- Deep Learning - Model inference and detection
Project Architecture
The project follows a clean, modular architecture:
Label-Mender/
├── app.py # Application entry point
├── src/
│ ├── core/ # Core business logic
│ │ ├── annotation_manager.py
│ │ ├── model_manager.py
│ │ └── state_manager.py
│ ├── ui/ # User interface components
│ │ ├── main_window.py
│ │ └── image_canvas.py
│ ├── config/ # Configuration and styling
│ │ ├── constants.py
│ │ └── styles.py
│ └── utils/ # Utility functions
│ ├── file_operations.py
│ └── geometry.py
Installation
- Clone the repository:
git clone https://github.com/javadibrahimli/Label-Mender.git cd Label-Mender - Install dependencies:
pip install -r requirements.txt - Run the application:
python app.py
Roadmap
This tool is under active development with exciting features planned:
Upcoming Features:
- 🔮 VLM Integration - Vision Language Models for intelligent object recognition and labeling suggestions
- 🎯 SAM Integration - Segment Anything Model for precise, one-click segmentation masks
- 💻 Local Model Support - Run VLM and SAM models locally without requiring external APIs
- � Support for more YOLO modes - Segmentation, pose estimation
- 🚀 Batch processing - Run inference on entire folders
- 📝 File renaming utilities
- 🔄 Export to multiple formats - COCO, Pascal VOC
- 🔍 Zoom and pan controls
- 💾 Auto-save functionality
- 📈 Dataset statistics and visualization
- 🎨 Dark/Light theme toggle
Stay tuned for updates!
Use Cases
Label Mender is perfect for:
- Refining model predictions after training initial YOLO models
- Fixing class misclassifications in bulk annotation tasks
- Adjusting bounding boxes to improve mAP scores
- Semi-automated annotation workflows using pre-trained models
- Quality control for labeled datasets
- Educational purposes for learning YOLO annotation format
Contributing
Contributions are welcome! If you have ideas for new features or improvements:
- 🍴 Fork the repository and experiment
- 📥 Submit Pull Requests with your changes
- 💡 Open Issues to suggest features or report bugs
All contributions, big or small, are greatly appreciated!
License
This project is licensed under the CC0 1.0 Universal (Public Domain) - completely free to use, modify, and distribute without any restrictions.
Project Links
- GitHub Repository: Label-Mender
- Latest Release: v1.0.0
Created by Javad Ibrahimli to help labelers and ML engineers save time when refining YOLO annotations. If you find this tool useful, consider giving it a star! ⭐