A comprehensive WPF application for annotating images, editing YAML configurations, previewing YOLO object detection, and OCR dataset management - the complete toolkit for managing YOLO format datasets and OCR training data. Designed for YOLO v11 Datasets with extensive OCR capabilities.
- Interactive Annotation Editor: Create, edit, and delete bounding box annotations with an intuitive interface
- Dataset Management: Load and save YOLO format datasets with automatic handling of data files
- Edit State Tracking: Visual indicators and state management for tracking which images have been edited
- Advanced Search: Filter images by filename or class
- Statistics & Visualization: Analyze your dataset with built-in statistics charts and metrics
- Integrated YOLO Detection: Generate annotations automatically using loaded ONNX models with support for both CUDA and CPU inference
- Keyboard Navigation: Navigate through images and manage annotations with hotkeys
- YAML Configuration Management: Intuitive interface for managing dataset YAML files and class definitions
- Path Settings: Configure base paths and train/validation/test directories
- Class Management: Add, remove, and edit class definitions with search and sorting capabilities
- File Operations: Create, open, save, and save-as functionality for YAML configurations
- Live Object Detection: Real-time YOLO object detection preview using ONNX models
- Multiple Input Sources: Support for webcam and screen capture
- Model Flexibility: Load custom ONNX models with automatic fallback from CUDA to CPU
- Detection Control: Toggle detection on/off and control capture settings
- Multiple OCR Models: Support for English V3/V4, Chinese V5, and custom trained models
- Image Processing: Load images and run OCR detection with confidence scoring
- Model Management: Easy switching between different OCR model versions
- Results Display: View OCR results with processing time and confidence metrics
- Text Annotation Interface: Dedicated tool for creating and managing text labels for images
- Automatic OCR Detection: Generate text annotations using integrated PaddleOCR
- Dataset Organization: Automatic file conversion (PNG to JPG) and sequential renaming
- Progress Tracking: Visual indicators for labeled vs unlabeled images with progress counters
- Navigation Controls: Easy navigation through image datasets with Previous/Next functionality
- TRDG to PaddleOCR Conversion: Convert Text Recognition Data Generator datasets to PaddleOCR training format with configurable train/validation splits
- Dataset Merging: Merge multiple datasets with flexible scaling options (fixed height, variable height, or no scaling) and quality control
- Character Set Generation: Generate character dictionaries from existing datasets with frequency analysis
- Dataset Analysis: Comprehensive analysis tools including character frequency, label length statistics, and dictionary comparison with AI-powered recommendations
- Auto-Discovery: Automatically find and process datasets in directory structures
- Batch Processing: Handle large datasets efficiently with progress tracking and logging
Download the latest release from our GitHub Releases page. The application uses Velopack for easy installation and automatic updates.
- Windows 10/11
- .NET 8.0 Runtime
- Launch the application
- Click "Browse..." to select your YOLO dataset YAML file
- The application will load all images and annotations from the dataset
- Select an image from the thumbnail list
- Toggle "Edit Mode" to enable annotation editing
- Click and drag on the image to create a new bounding box
- Select a class from the right panel dropdown
- Use the delete key or "Delete Selected" button to remove annotations
- Click "Save Changes" to save your work
- Green indicators show which images have been edited
- Use "Toggle Edit State" to manually mark an image as edited/unedited
- Use "Mark All Edited Until Here" to batch mark multiple images
- View overall edit progress in the Statistics tab
- Navigate to the YAML Editor tab
- Use the toolbar to create, open, save, or save as YAML files
- Configure dataset paths in the Path Settings section
- Manage class definitions using the dedicated buttons and data grid
- Search/filter classes and sort by ID or name
- Navigate to the YOLO Preview tab
- Select an ONNX model file using the Browse button
- Choose source type: Webcam or Screen capture
- Select input device and start/stop capture
- Toggle YOLO detection on/off and view real-time results
- Navigate to the OCR Annotation tab
- Open a folder containing images
- Use "Detect with OCR" for automatic text recognition
- Navigate through images and edit text annotations
- Progress is automatically saved
- Navigate to the OCR Dataset Tools tab
- Convert TRDG to PaddleOCR: Convert datasets with configurable train/val splits
- Merge Datasets: Combine multiple datasets with flexible scaling options
- Generate Character Set: Create character dictionaries from existing datasets
- Analyze Dataset: Get comprehensive statistics and recommendations for dataset improvement
- Clone the repository
git clone https://github.com/flowhl/YoloAnnotationEditor.git - Open the solution in Visual Studio 2022 or later
- Restore NuGet packages
- Build the solution
- .NET 8.0
- WPF (Windows Presentation Foundation)
- LiveChartsCore - for statistics visualization
- YamlDotNet - for parsing YAML config files
- OpenCVSharp4 - for image manipulation
- Denxorz.ZoomControl - for zoom functionality
- SkiaSharp - for high-performance 2D graphics
- YoloDotNet - for YOLO object detection with ONNX models
- Sdcb.PaddleOCR - for OCR functionality
- Velopack - for automatic updates
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Denxorz.ZoomControl - Microsoft Public License (MS-PL)
- Other dependencies may have their own licenses - see respective projects for details
- YOLO - for the annotation format
- OpenCV - for image processing capabilities
- PaddleOCR - for OCR functionality
YOLO Annotation Editor was created to simplify the process of creating and maintaining high-quality datasets for computer vision applications, now expanded with comprehensive OCR dataset management capabilities. For questions or support, please open an issue on our GitHub repository.


