Skip to content

YoloLint is a tool for automatic validation of dataset structure, annotation files, and image sizes in YOLO projects. It helps you catch typical errors in directory structure, YAML files, annotation files, and now also ensures all your images have the correct size before you start model training.

License

Notifications You must be signed in to change notification settings

Gabrli/YoloLint

Repository files navigation

YOLO Dataset Debugger - (YoloLint)

Python License Status YOLO Linting Tests


🚀 About

YoloLint is a tool for automatic validation of dataset structure, annotation files, and image sizes in YOLO projects. It helps you catch typical errors in directory structure, YAML files, annotation files, and now also ensures all your images have the correct size before you start model training.


📦 Directory Structure

.
├── yololint/
│   ├── clis/
│   │   ├── structure_validator_cli.py
│   │   ├── annotation_checker_cli.py
│   │   └── sizes_checker_cli.py
│   ├── structure_validator.py
│   ├── annotation_checker.py
│   ├── sizes_checker.py
│   ├── utils/
│   │   ├── compare_validate.py
│   │   └── add_file_to_list.py
│   └── constants/
│       └── folders.py
├── tests/
│   ├── test_structure_validator.py
│   ├── test_annotation_checker.py
│   └── utils/
│       └── prepare_lib_proccess.py
├── requirements.txt
├── setup.py
├── README.md

🖥️ Available Console Scripts

After installing the package, you can use the following commands in your terminal:

Structure validation

yololint-structure-v <path_to_your_dataset>

Annotation validation

yololint-annotation-v <path_to_labels_folder> <number_of_classes>

Image size validation and rescaling

yololint-sizes-v <path_to_your_dataset> <width> <height>

📚 Documentation – How to Use

Validate Dataset Structure

from yololint.structure_validator import StructureValidator

dataset_path = "/path/to/your/dataset"
checker = StructureValidator(dataset_path)
result = checker.dataset_validation()
print(result)
  • Function: StructureValidator.dataset_validation()
  • Description: Checks if the folder structure and data.yaml are correct, and if the number of classes and class names match.

Validate YOLO Annotation Files

from yololint.annotation_checker import AnnotationChecker

labels_path = "/path/to/your/dataset/labels"
classes_count = 3  # number of classes in your dataset
checker = AnnotationChecker(labels_path, classes_count)
result = checker.annotation_checker()
print(result)
  • Function: AnnotationChecker.annotation_checker()
  • Description: Checks if all .txt files have the correct format (5 values per line, valid class_id) and are not empty.

Validate and Rescale Image Sizes

from yololint.sizes_checker import SizesChecker

sizeX = 640  # expected width
sizeY = 480  # expected height
dataset_path = "/path/to/your/dataset"

checker = SizesChecker(sizeX, sizeY)
checker.check_sizes(dataset_path)
  • Function: SizesChecker.check_sizes(path_to_dataset)
  • Description: Checks if all images in the dataset have the specified size. If an image has a different size, you will be prompted in the terminal to rescale it automatically.

📝 Example data.yaml

names: ['class1', 'class2', 'class3']
nc: 3

👨‍💻 Author

  • Gabriel Wiśniewski

📄 License

Project is licensed under the Apache License.

About

YoloLint is a tool for automatic validation of dataset structure, annotation files, and image sizes in YOLO projects. It helps you catch typical errors in directory structure, YAML files, annotation files, and now also ensures all your images have the correct size before you start model training.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages