YOLOv5/YOLOv8 Data Augmentation with Albumentations
This GitHub repository offers a solution for augmenting datasets for YOLOv8 and YOLOv5 using the Albumentations library. Albumentations is a Python package designed for image augmentation, providing a simple and flexible approach to perform various image transformations. For more detail you can refer my medium article.
Input
Output
Directories description
- input-ds contain the input of YOLOv8 and YOLOv5 which are following directories.
- Images directory contains the images
- labels directory contains the .txt files. Each .txt file contains the normalized bounding boxes in a following format.
- out-aug-ds contain the augmented output contains following directories.
- Images directory contains the augmented images.
- labels directory contains the augmented labels.
- bb_image This directory contains images with bounding boxes for visualizing the results of augmented data. This is for validation; bounding boxes should be correctly drawn on the objects of interest.
- utils.py: Contains all user-defined helper function.
- main.py: Contains Yolo dataset augmentor pipeline
- CONSTANT.yaml contain following contants need to update on according to your case.
- inp_img_pth for input images path
- inp_lab_pth for input labels path
- out_img_pth for output image path
- out_lab_pth for output labels path
- transformed_file_name: use to name augmented output to differentiate from other input dataset.
- CLASSES: list of input class name according to class number.
Usage
- step to apply augmentation on your own dataset.
- Create Virtual Environment.
- Install requirements using
pip install -r requirements.txt - Provide the input and output path in CONSTANT.yaml file.
- Update the name of transformed_file_name in CONSTANT.yaml otherwise code will overwrite last augmentations.
- Provide the list of name of classes in CONSTANT.yaml in a same sequence as used to assign class numbers in the YOLO dataset labeling.
- For example, if you provided a class list as
['obj1', 'obj2', 'obj3'], the class number used for 'obj1' in the label file should be 0, similarly for 'obj2', the class number should be 1, and so on.
- For example, if you provided a class list as
- Run the pipeline using
python3 run.py
Metadata
Release files for yolo-data-augmentor 0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| yolo-data-augmentor-0.1.tar.gz | 2.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yolo_data_augmentor-0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.9 kB
Release files / yolo-data-augmentor-0.1.tar.gz
| Download URL | yolo-data-augmentor-0.1.tar.gz |
|---|---|
| Size | 2.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6894917fb665385f52a2b8fd3e1fafd918d4dafd00872691de865e4582a557aa
|
|
BLAKE2b-256 checksum How to use checksums |
909f68aa040867e17d1e5e04da90aa2d6d9588b1a5d10cac38a43f86f1a69c89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.10.13
|
Release files / yolo_data_augmentor-0.1-py3-none-any.whl
| Download URL | yolo_data_augmentor-0.1-py3-none-any.whl |
|---|---|
| Size | 2.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
65bb4f8ebb7c9b2710dae13e991aacf86122e465f328a8d08020f3498def2e9d
|
|
BLAKE2b-256 checksum How to use checksums |
d51702b77b61db22eef20bebe138f578306d0cc84a5ad0099685d7d7c765bb91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.10.13
|