Fearby.com

Coding for fun since 1996, Learn by doing and sharing.

AI Image Training - Yolo8 Annotator

Published on 05th September 2025 by Simon Fearby

Post Thumbnail

Yolo8 Annotator

DRAFT v003

While learning how to train AI image detection on my own PC for free, I soon realised that all of the of the cloud AI image tools are too expensive and or do not match my workflow. I just want an app that allows me to collect and tag images for AI training without excessive usage hoops and costs.

I decided to write my own Windows tool (EXE) to collect, store, annotate (Rect regions) and assign labels (classes) on images ready for training. I have called the tool Yolo8Annotator.exe.

In the tools current form it allows you to:


I am using my Cats to train in a dataset to keep things fun.

Ember

Yolo8Annotator

Toby

Yolo8Annotator

Stella

Yolo8Annotator

Planned Features

Features that ARE coming:


Skipped Features

Features that are NOT coming:


Annotation Types

Why does yolo8 have so many annotation types? Here is my breakdown of the types.

Annotation Type Best Use Example
Bounding Box (Rect) Detecting the presence and rough location of an object. Fast, simple, YOLO-friendly. Cat bowl (detect bowl area)
Polygon (Series of Points) Outlining irregular shapes, segmentation tasks, precise boundaries. Cat body outline
Keypoints Marking landmarks or joints to infer posture, orientation, or pose. Cat’s posture (sitting, lying, crouching)
Lines Capturing elongated structures, edges, or continuity between points. Cat whiskers, spine line, tail path
Cuboid (3D Bounding Box) Representing orientation, rotation, depth, and approximate volume in 3D space. Cat’s 3D rotation/volume in space

Preview: Create Image Dataset

Yolo8Annotator.exe will allow you to create a Dataset to store images for AI training.

Yolo8Annotator

If the image is not a square aspect ratio you can select a region to crop and save.

YOLOv8 defaults to 640×640 because it’s a square power-of-2 size that balances GPU efficiency, convolution stride compatibility, and enough pixel detail to detect objects at multiple scales without blowing up VRAM or training time.

When importing an image, you can select a square region in the image (zooming in or out) and then crop and import it into the image dataset.

Yolo8Annotator

To save you time, after you crop and import the image, the YOLO-8 Annotator will analyse your data set and defined split ratios and choose the appropriate folder to save the image to based on ratios.

Yolo8Annotator

When you import a new image, it will automatically detect the next number increment for the image in the dataset, no matter whether it was in the train test or val folder. It won't try and obfuscate the file name as a random GUID like other cloud annotation software. It keeps things nice and simple. Future versions may allow you to prefix the image name at the front, but at the moment it is just "image_".

Some cloud software programs will stretch the image on import making it useless to train from.

Yolo8Annotator

After the image has been imported and saved to the appropriate image folder, Yolo8Annotator will also create the matching label text file in its matching folder structure. If this wasn't created, training accuracy would go downhill and the dataset would not be valid.

The core feature of Yolo8Annotator is to allow you to select a Rect region around an object that you want to be trained.

Yolo8Annotator

Annotating is quite intuitive. Left click to add a point. Right click to undo a point. Or CTRL-C to undo or CTRL-Y to redo. R to reset.

When you move the mouse near the blue Rect point, you can press up, down, left, or right to move that Rect point. You can press shift, up, down, left, and right to move that point a lot faster.

Also while clicking a point, you can have it automatically snap to the nearest contrast region. Or if it's not picking up the right contrast region, you can press CTRL and overwrite it, and it will save your current mouse X and Y position.

You can also assign the class to the object that you're annotating.

Yolo8Annotator

When saving the annotation, the label file will have all of the Rect points and the nominated class.

The original image will be the highest quality possible. Every pixel will be accurate, it won't be lossless, where JPEG it would be lossless.


Image Dataset Shuffle/Split

The application also has a nice shuffle-split function, so you can shuffle the images between the train, test, and validation folders to ensure the dataset is not biased towards certain image classes.

Yolo8Annotator

The application also has utilities like a dataset validator that finds common yolo dataset issues.

Yolo8Annotator

The application has a built in web server that allows a mobile phone browser to upload images. At present this is being testied on an iPhone 14 Pro Max. This is limited to lossless RAW/DNG images and now lossless JPEG files.

Yolo8Annotator

Upload of Images from a phone direct to the app.

Yolo8Annotator

During the Image Import Process tif the image is over 640x640 pixels the app will promopt the user to select a region to crop then down scale to a 640x640 square image.

Yolo8Annotator

The app will automatically comvert any uploaded RAW/DNG files to lossless PNG's

When importing an image (Manually Triggered) the app will determine the best folder (

Train, Test or Val to store the image (Based on the defined dataset Split Ratio)) and also choose the next filename to use (image_####.png). This will be the next highest number if no number sare missing in the middle.

Yolo8Annotator

If multiple iamges are dragged into a "Train, Test or Val" folder they are processes.

  1. PNG fles that are 640x640 are imported to the user dropped on folder (Not the best folder for split ratioas the user knows best?).

  2. Lossless JPG files are ignored.

  3. Yolo8Annotator
  4. PNG Files below 640x640 are ignored.
  5. Yolo8Annotator
  6. Drag and Drop Summary at the end.
  7. Yolo8Annotator

Licence

To ensure that I keep on track and not allow buggy builds to remian unfixed I added in a expiry/licence featrue

Alpha Builds

More to come before I release this to Alpha for testing and feedback.

v0.7.1