Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Data augmentation techniques for small image datasets?

Currently i am training small logo datasets similar to Flickrlogos-32 with deep CNNs. For training larger networks i need more dataset, thus using augmentation. The best i'm doing right now is using affine transformations(featurewise normalization, featurewise center, rotation, width height shift, horizontal vertical flip). But for bigger networks i need more augmentation. I tried searching on kaggle's national data science bowl's forum but couldn't get much help. There's code for some methods given here but i'm not sure what could be useful. What are some other(or better) image data augmentation techniques that could be applied to this type of(or in any general image) dataset other than affine transformations?

like image 242
whitewalker Avatar asked Mar 22 '16 02:03

whitewalker


People also ask

Does data augmentation increase dataset size?

Using Data Augmentation, we can increase the size of our training data many times over. It can also reduce overfitting and improve the generalization of our models.

What is data augmentation in image processing?

Image augmentation is a technique that is used to artificially expand the data-set. This is helpful when we are given a data-set with very few data samples. In case of Deep Learning, this situation is bad as the model tends to over-fit when we train it on limited number of data samples.

Does image augmentation increase dataset size?

yes you can increase the size by creating and saving augmented images for each class then merging those images with the original trainset.


2 Answers

A good recap can be found here, section 1 on Data Augmentation: so namely flips, random crops and color jittering and also lighting noise:

Krizhevsky et al. proposed fancy PCA when training the famous Alex-Net in 2012. Fancy PCA alters the intensities of the RGB channels in training images.

Alternatively you can also have a look at the Kaggle Galaxy Zoo challenge: the winners wrote a very detailed blog post. It covers the same kind of techniques:

  • rotation,
  • translation,
  • zoom,
  • flips,
  • color perturbation.

As stated they also do it "in realtime, i.e. during training".

For example here is a practical Torch implementation by Facebook (for ResNet training).

like image 123
deltheil Avatar answered Oct 10 '22 20:10

deltheil


I've collected a couple of augmentation techniques in my masters thesis, page 80. It includes:

  • Zoom,
  • Crop
  • Flip (horizontal / vertical)
  • Rotation
  • Scaling
  • shearing
  • channel shifts (rgb, hsv)
  • contrast
  • noise,
  • vignetting
like image 43
Martin Thoma Avatar answered Oct 10 '22 21:10

Martin Thoma