Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/odancona/bboxconverter
This library allows reading and converting bounding box annotations in many popular formats
https://github.com/odancona/bboxconverter
bounding-boxes computer-vision image-recognition numpy object-detection pandas python pytorch tensorflow train-test-split
Last synced: about 2 months ago
JSON representation
This library allows reading and converting bounding box annotations in many popular formats
- Host: GitHub
- URL: https://github.com/odancona/bboxconverter
- Owner: ODAncona
- License: gpl-3.0
- Created: 2023-02-01T13:36:02.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-06-09T21:44:56.000Z (over 1 year ago)
- Last Synced: 2024-10-22T19:48:15.258Z (2 months ago)
- Topics: bounding-boxes, computer-vision, image-recognition, numpy, object-detection, pandas, python, pytorch, tensorflow, train-test-split
- Language: Python
- Homepage: https://bboxconverter.readthedocs.io/en/latest/
- Size: 38.8 MB
- Stars: 22
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# bboxconverter
bboxconverter is a Python library that enables seamless conversion of bounding box formats between various types and file formats. It provides an easy-to-use syntax for reading and exporting bounding box files.
## Introduction
### What is a bounding box?
Bounding boxes are a crucial component of object detection algorithms, which are used to identify and classify objects within an image or video. A bounding box is a rectangle that surrounds an object of interest in the image, and is typically represented by a set of coordinates that define the box's position and size.
### Various types and format
When you work with bounding box you have severals things to consider.
The bounding box could be stored in **different types** like:
- Top-Left Bottom-Right (TLBR), (x_min, y_min, x_max, y_max)
- Top-Left Width Height (TLWH), (x_min, y_min, width, height)
- Center Width Height (CWH), (x_center, y_center, width, height)Which are popular among **different formats** like :
- [COCO](<(http://cocodataset.org/)>) (Common Objects in Context)
- [Pascal VOC](<(http://host.robots.ox.ac.uk/pascal/VOC/)>) (Visual Object Classes)
- [YOLO](https://albumentations.ai/docs/getting_started/bounding_boxes_augmentation/#yolo) (You Only Look Once)Furthermore, the bounding box could be stored in **different file formats** like:
- csv
- xml
- json
- manifest
- parquet
- pickle## Installation
```bash
pip install bboxconverter
```or
```bash
git clone https://github.com/ODAncona/bboxconverter.git
cd bboxconverter
poetry install
```See the [installation](https://bboxconverter.readthedocs.io/en/latest/guides/installation.html) guide for more informations.
## Usage
The goal of this library is to seamlessly convert bounding box format using easy syntax.
It should be a breeze like...
```python
import bboxconverter as bc# Input file path
input_path = './examples/example.csv'# Output file path
output_path = './examples/output/example.json'# Mapping between the input file and the bboxconverter format
bbox_map = dict(
class_name='class',
file_path='name',
x_min='top_left_x',
y_min='top_left_y',
width='w',
height='h',
image_width='img_size_x',
image_height='img_size_y',
)# Read the input file
parser = bc.read_csv(input_path, mapping=bbox_map)# Export the file to the desired format
parser.export(output_path=output_path, format='coco')
parser.export(output_path=output_path, format='voc')
parser.export(output_path=output_path, format='yolo')
```## Documentation
You can find the documention online at [bboxconvert.readthedoc.io](https://bboxconverter.readthedocs.io/en/latest/index.html)
## Changelog
See the [CHANGELOG](https://github.com/ODAncona/bboxconverter/blob/main/CHANGELOG.md) file for details.
## Contributing
Contributions are welcome! Please read the [contributing guidelines](https://github.com/ODAncona/bboxconverter/blob/main/CONTRIBUTING.md) first.
## License
This project is licensed under the GPLV3 License - see the [LICENSE](https://github.com/ODAncona/bboxconverter/blob/main/LICENSE) file for details.
## Acknowledgments
- [Pascal VOC](http://host.robots.ox.ac.uk/pascal/VOC/)
- [COCO](http://cocodataset.org/#home)
- [YOLO](https://pjreddie.com/darknet/yolo/)
- [Albumentation](https://albumentations.ai/)
- [Pyodi](https://github.com/Gradiant/pyodi)