https://github.com/okankop/vidaug
Effective Video Augmentation Techniques for Training Convolutional Neural Networks
https://github.com/okankop/vidaug
augmentation convolutional-neural-networks deep-learning deep-neural-networks video-augmentation
Last synced: 2 months ago
JSON representation
Effective Video Augmentation Techniques for Training Convolutional Neural Networks
- Host: GitHub
- URL: https://github.com/okankop/vidaug
- Owner: okankop
- License: mit
- Created: 2018-06-11T17:32:27.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-02-13T14:29:17.000Z (over 2 years ago)
- Last Synced: 2025-12-16T17:24:55.377Z (6 months ago)
- Topics: augmentation, convolutional-neural-networks, deep-learning, deep-neural-networks, video-augmentation
- Language: Python
- Size: 43.4 MB
- Stars: 411
- Watchers: 7
- Forks: 79
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Video Augmentation Techniques for Deep Learning
This python library helps you with augmenting videos for your deep learning architectures.
It converts input videos into a new, much larger set of slightly altered videos.

Original Video

## Requirements and installation
Required packages:
* numpy
* PIL
* scipy
* skimage
* OpenCV (i.e. `cv2`)
For installation, simply use `sudo pip install git+https://github.com/okankop/vidaug`.
Alternatively, the repository can be download via `git clone https://github.com/okankop/vidaug` and installed by using `python setup.py sdist && pip install dist/vidaug-0.1.tar.gz`.
## Examples
A classical video classification with CNN using augmentations on videos.
Train on batches of images and augment each batch via random crop, random crop and horizontal flip:
```python
from vidaug import augmentors as va
sometimes = lambda aug: va.Sometimes(0.5, aug) # Used to apply augmentor with 50% probability
seq = va.Sequential([
va.RandomCrop(size=(240, 180)), # randomly crop video with a size of (240 x 180)
va.RandomRotate(degrees=10), # randomly rotates the video with a degree randomly choosen from [-10, 10]
sometimes(va.HorizontalFlip()) # horizontally flip the video with 50% probability
])
for batch_idx in range(1000):
# 'video' should be either a list of images from type of numpy array or PIL images
video = load_batch(batch_idx)
video_aug = seq(video)
train_on_video(video)
```
The videos below show examples for most augmentation techniques:
Augmentation Type | Augmented Video
:----------------------------------:|:-------------------------:
Piecewise Affine Transform | 
Superpixel | 
Gausian Blur | 
Invert Color | 
Rondom Rotate | 
Random Resize | 
Translate | 
Center Crop | 
Horizontal Flip | 
Vertical Flip | 
Add | 
Multiply | 
Downsample | 
Upsample | 
Elastic Transformation | 
Salt | 
Pepper | 
Shear | 