ImageAug
Image augmentation for PyTorch
- Apply random cropped rotations without going out of image bounds
- Convert RGB to YUV color space
- Adjust brightness and contrast, and more
Quick Start
The transformations are designed to be chained together using torchvision.transforms.Compose. Additionally, there is a functional module. Functional transforms give more fine-grained control if you have to build a more complex transformation pipeline.
Install
pip3 install -r requirements.txt
python3 setup.py install
Requirements:
- Pillow
- torchvision
- numpy
Example
from torchvision.transforms import ToTensor, ToPILImage, Compose
from PIL import Image
from imageaug.transforms import Colorspace, RandomAdjustment, RandomRotatedCrop
image_filename = 'test.png'
img = Image.open(image_filename, 'r').convert("RGB")
crop_size = (64, 64)
angle_std = 90 # in degrees
# Note: apply color adjustments before a random rotated crop so that so that the
# fillcolor for out of bounds is not randomly adjusted (this only applies
# if you have images smaller than the crop size)
transform = Compose([
# convert PIL Image to Tensor
ToTensor(),
# convert RGB to YUV colorspace
Colorspace("rgb", "yuv"),
# randomly adjust the brightness and contrast of channel 0 (Y: luminance)
RandomAdjustment(0, 0.1, 0.1, rgb=False),
# randomly adjust the contrast of channel 1 and 2 (UV: color channels)
RandomAdjustment((1,2), 0, 0.38, rgb=False),
# convert YUV to RGB colorspace
Colorspace("yuv", "rgb"),
# convert Tensor back to PIL Image
ToPILImage(),
# random rotated crop
RandomRotatedCrop(crop_size, 0.0, angle_std, downscale=0.5)
])
out = transform(img)
out.save("out.png")
Current Features
- Rotate and crop images within the bounds of the original image for any given degree of angle perturbation (for training samples with rotational noise)
- Convert images to and from RGB/YUV/YCH colorspace with alpha channel support
- Adjust contrast and brightness of channels
- Noise occulsion
To-do
This project is still a work in progress.
- Uniform distribution for RandomRotatedCrop
- Color lookup table for faster conversions between colorspaces
- Add image, text, shape, and pixelation occulsions
Project Page
Release files for ImageAug 0.1.0.post0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ImageAug-0.1.0.post0.tar.gz | 6.5 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ImageAug-0.1.0.post0-py3.7.egg | Legacy Egg format | - | - | Details |
| ImageAug-0.1.0.post0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.5 kB
Release files / ImageAug-0.1.0.post0.tar.gz
| Download URL | ImageAug-0.1.0.post0.tar.gz |
|---|---|
| Size | 6.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f2e67cfa2b9602c70e2b9152d02875111df59ad7ac1082560eca17c327a31f59
|
|
BLAKE2b-256 checksum How to use checksums |
2b06a7205b1a49976cf92073344d230add959b92b19de326d1f4ebb3b7dcba5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
|
Release files / ImageAug-0.1.0.post0-py3.7.egg
| Download URL | ImageAug-0.1.0.post0-py3.7.egg |
|---|---|
| Size | 15.7 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
516c231941b02d618d5a34c5d29a11cab1d37e6d596de773e066d1431b2e7a43
|
|
BLAKE2b-256 checksum How to use checksums |
4aa4888ec8bdfba978f4841ee51d06e9fe72e76830c11a7536a33a68852a1a83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
|
Release files / ImageAug-0.1.0.post0-py3-none-any.whl
| Download URL | ImageAug-0.1.0.post0-py3-none-any.whl |
|---|---|
| Size | 8.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e2f57e50208bd5a4add2245ba7fe10b1730fdd25506a0548c309bc98990ee50
|
|
BLAKE2b-256 checksum How to use checksums |
b03294b150eaacdf0320e30b7ac65bed574dcfa3a65d72c6487f1e7f7e7b1a8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
|