Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/george-mountain/verifyannotations
Verify Data Annotations in Yolo and PASCAL VOC Format
https://github.com/george-mountain/verifyannotations
ai computer-vision computer-vision-opencv computer-vision-tools dataannotations datavalidation datavalidator deeplearning machine-learning pascal-voc yolo
Last synced: about 7 hours ago
JSON representation
Verify Data Annotations in Yolo and PASCAL VOC Format
- Host: GitHub
- URL: https://github.com/george-mountain/verifyannotations
- Owner: george-mountain
- License: mit
- Created: 2024-02-23T02:07:52.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-03-11T04:46:23.000Z (8 months ago)
- Last Synced: 2024-09-18T05:49:38.599Z (2 months ago)
- Topics: ai, computer-vision, computer-vision-opencv, computer-vision-tools, dataannotations, datavalidation, datavalidator, deeplearning, machine-learning, pascal-voc, yolo
- Language: Python
- Homepage:
- Size: 7.81 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# VerifyDataAnnotations
## Overview
Verifyannotations is a Python package specifically designed to validate and annotate image data with bounding boxes using annotations provided in both YOLO and PASCAL VOC format text files. It serves as a tool for verifying the correctness of annotations and ensuring the integrity of datasets intended for use in computer vision tasks, especially those utilizing object detection frameworks.
## Features
- Validates the structure of image and label directories.
- Checks if label files contain valid annotations in YOLO or PASCAL VOC format.
- Ensures that image files have the correct format.
- Annotates images with bounding boxes based on YOLO or PASCAL VOC label annotations.
- Saves annotated images to an output directory.## Installation
You can install VerifyDataAnnotations via pip:
```bash
pip install verifyannotations
```## Verifying Data Annotations in YOLO Format
## Input Parameters
- `label_folder`: Path to the directory containing label files with annotations in YOLO format.
- `raw_image_folder`: Path to the directory containing the raw image files.
- `output_image_folder`: Path to the directory where annotated images will be saved.
- `image_name_list_path`: Path to the text file listing the names of all images in the dataset.
- `class_path`: Path to the text file containing the list of classes or labels used in the dataset.## Example
Suppose you have the following directory structure:
```
dataset/
│
├── labels/
│ ├── image1.txt
│ ├── image2.txt
│ └── ...
│
├── images/
│ ├── image1.bmp
│ ├── image2.bmp
│ └── ...
│
├── saved_annotations/
│
├── name_list.txt
└── classes.txt
```The `labels` directory contains text files with annotation data in YOLO format. The `images` directory contains corresponding image files. `saved_annotations` will store the annotated images.
Using VerifyDataAnnotations:
```python
from verifyannotations import VerifyDataAnnotationslabel_folder = "dataset/labels"
raw_image_folder = "dataset/images"
output_image_folder = "dataset/saved_annotations"
image_name_list_path = "dataset/name_list.txt"
class_path = "dataset/classes.txt"verifier = VerifyDataAnnotations(
label_folder,
raw_image_folder,
output_image_folder,
image_name_list_path,
class_path,
)verifier.verify_annotations()
```This will validate the annotations, annotate the images with bounding boxes, and save the annotated images to the `saved_annotations` directory.
## Verifying Data Annotations in PASCAL VOC format
### CASE 1
Suppose you have a dataset folder with the following structure:```
dataset/
│
├── image1.jpg
├── image1.xml
├── image2.png
├── image2.xml
└── ...
```The `dataset` directory contains both the images and their corresponding annotations in PASCAL VOC format.
## Input Parameters
- `dataset_folder`: Path to the directory containing both the images and their corresponding annotations in PASCAL VOC format.
- `output_image_folder`: Path to the directory where annotated images will be saved.Using VerifyDataAnnotationsPascalVOC:
```python
from verifyannotations import VerifyDataAnnotationsPascalVOCdataset_folder = "dataset"
output_image_folder = "dataset/saved_annotations"verifier = VerifyDataAnnotationsPascalVOC(
dataset_folder,
output_image_folder,
)verifier.verify_annotations()
```This will validate the annotations, annotate the images with bounding boxes, and save the annotated images to the `saved_annotations` directory with the same extension as the original images.
### CASE 2
In case your PASCAL VOC dataset has the structure shown below,
```
├── annotations/
│ ├── image1.xml
│ ├── image2.xml
│ └── ...
│
├── images/
│ ├── image1.jpg
│ ├── image2.jpg
│ └── ...
```
You have separate directories for images `images` and `annotations`, then you can verify the PASCAL VOC annotations like this:## Input Parameters
- `image_folder`: Path to the directory containing the images.
- `annotation_folder` Path to the directory containing annotations in PASCAL VOC format.
- `output_image_folder`: Path to the directory where annotated images will be saved.Using VerifyDataAnnotationsPascalVOC:
```python
from verifyannotations import VerifyDataAnnotationsPascalVOCSeparatedFoldersimage_folder = "imagefolder"
annotation_folder = "annotationfolder"
output_folder = "dataset/saved_annotations"
verifier = VerifyDataAnnotationsPascalVOCSeparatedFolders(image_folder, annotation_folder, output_folder)
verifier.verify_annotations()```