Let's be honest - most image labeling software out there is massive, confusing, and often requires you to create an account just to get started. They're packed with features you'll never use, have steep learning curves, and can be a real pain to set up.
ImageLabeller is different. It's lightweight, straightforward, and gets out of your way so you can focus on what matters: labeling your images. No accounts, no subscriptions, no bloat. Just download it and start working.
Oh, and it's completely free and open source.
ImageLabeller is built for single-user workflows and handles the most common tasks you need for ML image datasets:
- Define your object classes (car, person, dog, etc.)
- Easy-to-use interface for adding, editing, and removing classes
- Each class gets a unique color for visual distinction
- Export/import your class definitions
- Quickly view MP4 video files
- Set in and out points for extraction
- Define a class name to prefix your frame images
- Click a button to extract frames
- Quickly sort images into class-specific folders
- Navigate through images with keyboard shortcuts (number keys + arrow keys)
- Perfect for initial dataset organization
- See how many images you've sorted at a glance
- Draw bounding boxes around objects in your images
- Change object classes on the fly with a dropdown
- Delete annotations with a single click
- Full keyboard support for faster workflows
- Zoom and pan to get precise annotations
- YOLO format output (ready for training!)
- Load your ONNX models to help with labeling
- Auto-detect objects with confidence scores
- One-click to apply model predictions above 50% confidence
- Test your models on new images before deploying
- Windows, macOS, or Linux (cross-platform!)
- .NET 8.0 Runtime or SDK
-
Clone the repository:
git clone https://github.com/yourusername/ImageLabeller.git cd ImageLabeller -
Build the project:
cd Source/ImageLabeller dotnet build -
Run it:
dotnet run
Or just grab a pre-built release from the Releases page!
Start by defining the object classes you want to label (e.g., "car", "person", "bike"). Each class gets assigned a color automatically.
If you have a bunch of unsorted images, use the Sort view to quickly categorize them into folders. Just browse to your source folder, and press number keys to move images into class-specific folders.
Switch to the Label view to draw bounding boxes around objects:
- Click and drag to draw a box
- Press number keys (0-9) to select different classes
- Left/Right arrows to navigate between images
- Delete key to remove selected annotations
- Ctrl + Mouse wheel to zoom in/out
All annotations are saved in YOLO format (.txt files next to your images).
Got an ONNX model? Load it in the Model view to:
- See what your model detects in test images
- Verify confidence scores before deploying
- Use the Apply Model button in Label view for AI-assisted labeling
Built with modern, cross-platform technologies:
- .NET 8.0 - The foundation
- Avalonia UI - Beautiful, cross-platform UI framework
- Microsoft.ML.OnnxRuntime - Run your ML models
- SixLabors.ImageSharp - Image processing
| Key | Action |
|---|---|
0-9 |
Select class by number |
β / β |
Previous/Next image |
Delete |
Delete selected annotation |
Ctrl + Wheel |
Zoom in/out |
All bounding box annotations are saved in YOLO format:
<class_id> <center_x> <center_y> <width> <height>
Where coordinates are normalized (0-1) relative to image dimensions. Perfect for training with YOLOv5, YOLOv8, and similar frameworks!
Found a bug? Have a feature idea? Contributions are welcome!
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.




