Generate thousands of new 2D images from a small batch of objects and backgrounds.
Project description
Flip
Synthetic Data generation with Flip! Generate thousands of new 2D images from a small batch of objects and backgrounds.
Installation
Install Flip using pip:
pip install flip-data
Dependencies
Flip requires:
- Python (>= 3.7)
- Opencv (>= 4.3.0)
- Numpy (>= 1.19.1)
Quick Start (Example)
To try Flip library you can run examples/data_generator.py
.
You will need to add background images and objects to compose your new training dataset, then
place them in the following directories:
BACKGROUNDS_PATTERN = "examples/data/backgrounds/*"
OBJECTS_PATTERN = "examples/data/objects/**/*"
The main workflow in Flip is to create transformers and then execute them as follows:
## Import Flip transformers
import flip.transformers as tr
OUT_DIR = "examples/result"
...
## Create Child transformers
transform_objects = [
tr.data_augmentation.Rotate(mode='random'),
tr.data_augmentation.Flip(mode='y'),
tr.data_augmentation.RandomResize(
mode='symmetric_w',
relation='parent',
w_percentage_min=0.2,
w_percentage_max=0.5
)
]
## Create main transformer
transform = tr.Compose([
tr.ApplyToObjects(transform_objects),
tr.domain_randomization.ObjectsRandomPosition(
x_min=0, y_min=0.4, x_max=0.7, y_max=0.7, mode='percentage'
),
tr.data_augmentation.Flip('x'),
tr.domain_randomization.Draw(),
tr.labeler.CreateBoundingBoxes(),
tr.io.CreateJson(out_dir=OUT_DIR, name='img_generate.jpg'),
tr.io.CreateJson(out_dir=OUT_DIR, name='json_generated.jpg')
])
## Execute transformations
el = tr.Element(image=..., objects=...)
[el] = transform(el)
Transformers
The main transformers are:
- Transformer
- Compose
- ApplyToObjects
- ApplyToBackground
- ApplyToCreatedImage
By the way, all Transformers will be executed over objects of class Element and will return a new transformed Element.
Data Augmentation
- Flip: Flip the Element in x or y axis.
- RandomResize: Change the size of an Element randomly.
- Rotate: Rotate Element randomly.
- Color: Change color space or the element color.
- Brightness: Changes the brightness in the image.
- Contrast: Changes the contrast in the image.
- Saturation: Changes the saturation in the image.
- Noise: Add noise to the element image.
- CutOut: Remove a section of the element in the desired area.
- RandomCrop: Cut the image randomly.
Random Domain
- Draw: Draw objects over background Element to merge them into a new image.
- ObjectsRandomPosition: Set Random positions to objects over background Element.
Labeler
- CreateBoundingBoxes: Draw bounding boxes around the objects contained by a background Element.
- CreateMasks: Creates the segmentation mask for the objects contained in a background element.
IO
- SaveImage: Save a .jpg File with the new generated image.
- SaveMask: Save a .jpg File with the new generated mask.
- Json: Save generated Labels as a Json.
- Csv: Save generated Labels as a CSV.
Want to Contribute or have any doubts or feedback?
If you want extra info, email me at flip@linkedai.co
Report Issues
Please help us by reporting any issues you may have while using Flip.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file flip-data-0.2.1.tar.gz
.
File metadata
- Download URL: flip-data-0.2.1.tar.gz
- Upload date:
- Size: 29.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
f5f65b5849f985a79a9a9db504793dfb55f78946ec9df731955ec02da7ff2e29
|
|
MD5 |
213524a1871c7c0ac37f2ba990baceef
|
|
BLAKE2b-256 |
cdfb107d9ce75c539631cb741b5e5d19aaeef0adc20bdf4ef55f0242b73bb716
|
File details
Details for the file flip_data-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: flip_data-0.2.1-py3-none-any.whl
- Upload date:
- Size: 36.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
de9863e7b9f5b10e8675776adaecfa09ddcbb492587c4c15c58a8a872a47e8a1
|
|
MD5 |
4318339251588c843ff2c92f9cc6ecb5
|
|
BLAKE2b-256 |
f578a737b7f013e1a3d4f31a21cefaabc50a5d1509f7b31e22e21479e5b5c3b7
|