Loading repository data…
Loading repository data…
jaicdev / repository
AnnoTool is a lightweight, Python-based annotation tool for efficiently creating, managing, and editing bounding boxes on images. It offers intuitive UI, solid error handling, and seamless integration into computer vision workflows.
AnnoTool is a powerful, cross-platform annotation tool built with PyQt5. It supports comprehensive image and video annotation tasks, including drawing bounding boxes, masks, ellipses, cuboids, polygons, keypoints, and more. The tool also integrates deep learning models (e.g., YOLOv8) for auto-annotation, allowing users to quickly generate annotations on their images. Additional features include undo/redo functionality, layer management, multiple export formats (COCO, Pascal VOC, YOLO), and a statistics dashboard for analyzing annotation metrics.
Image & Video Annotation:
Draw bounding boxes, masks, ellipses, cuboids, polygons, and keypoints on images.
Auto-Annotation:
Utilize YOLO-based models to auto-generate annotations for faster workflows.
Undo/Redo Functionality:
Easily revert and reapply changes during the annotation process.
Layer Management:
Create, switch, and manage multiple layers to organize annotations.
Export Formats:
Export annotations in popular formats including COCO, Pascal VOC, and YOLO.
Hotkey Support:
Use customizable hotkeys for common actions like undo, save, and image navigation.
Annotation Validation:
Validate annotation data and calculate annotation metrics for quality control.
Customizable:
Extend functionality with custom drawing modes and fine-tuning of deep learning models.
You can install the required Python packages using pip:
pip install pyqt5 opencv-python numpy torch ultralytics
Clone the Repository:
git clone https://github.com/yourusername/annotool.git
cd annotool
Install Dependencies:
Make sure you have installed all dependencies as listed in the Prerequisites section.
Download YOLO Models:
The tool uses YOLOv8 models for auto-annotation. Ensure you have the following models in your project directory or update the paths in the ModelManager class:
yolov8s.ptyolov8s-seg.ptRun the Application:
Execute the main script to start the application:
python main.py
Load Images:
.jpg, .jpeg, .png, .bmp, .tiff.Navigation:
Annotation Tools:
Auto-Annotate:
Undo/Redo:
Save Annotations:
Export Formats:
Statistics Dashboard:
annotool/
├── annotation_tool.py # Main application entry point
├── canvas_operations.py # Canvas widget and drawing functionality
├── drawing_functions.py # Drawing modes (bbox, mask, etc.)
├── file_management.py # File handling and image navigation
├── hotkeys.py # Hotkey management for quick actions
├── model_management.py # YOLO model integration and auto-annotation
├── class_management.py # Class definitions and color mappings
├── validation_tools.py # Annotation validation and metrics calculations
├── export_formats.py # Functions to export annotations in various formats
├── README.md # This README file
└── requirements.txt # List of required Python packages (optional)
Contributions are welcome! Please follow these steps:
This project is licensed under the MIT License. See the LICENSE file for details.
Happy Annotating!