A modern, user-friendly desktop application for creating bounding box annotations on images. Export your annotations in COCO, YOLO, and Pascal VOC formats with a single click.
-
🖼️ Intuitive Interface: Clean, modern GUI with professional styling
-
🎯 Multi-format Export: Export annotations to COCO JSON, YOLO TXT, and Pascal VOC XML formats
-
⌨️ Keyboard Shortcuts: Navigate and annotate efficiently with keyboard controls
-
📊 Real-time Statistics: Track progress with live annotation statistics
-
🎨 Visual Feedback: Color-coded bounding boxes with class labels
-
🔄 Easy Navigation: Quickly move between images with arrow keys or buttons
-
🗂️ Class Management: Smart class selection with auto-suggestions from previous annotations
Python 3.7+
Install the required packages:
pip install -r requirements.txt
Running the Application
python main.py
Load Images: Click "Load Images" and select a folder containing your images
Draw Annotations: Click and drag to create bounding boxes around objects
Classify Objects: Enter or select a class name for each annotation
Navigate: Use arrow keys or buttons to move between images
Export: Click "Export All" to save annotations in all supported formats
Left Arrow
: Previous imageRight Arrow
: Next imageDelete
: Remove last annotationCtrl+O
: Load new folderCtrl+S
: Export annotations
COCO
: JSON format with category definitions and bounding box coordinates
YOLO
: TXT files with normalized coordinates and class IDs
Pascal VOC
: XML files with object metadata and bounding boxes
image-annotator/
├── main.py # Main application GUI
├── writers.py # Export functions for different formats
├── utils.py # Utility functions
├── requirements.txt # Libraries needed to install
├── LICENSE/ # License
└── README.md # This file
After export, your annotations will be organized as:
your-image-folder/
└── annotations/
├── coco/
│ ├── images/
│ └── annotations.coco.json
├── yolo/
│ ├── images/
│ ├── classes.txt
│ └── [image_name].txt files
└── pascal/
├── images/
└── [image_name].xml files
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.