Effective Video Augmentation Techniques for Training Convolutional Neural Networks
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
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/vidaugand installed by using
python setup.py sdist && pip install dist/vidaug-0.1.tar.gz.
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 batchidx in range(1000): # 'video' should be either a list of images from type of numpy array or PIL images video = loadbatch(batchidx) videoaug = seq(video) trainonvideo(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 | ![]() |