<p>A good recap can be found <a href="http://lamda.nju.edu.cn/weixs/project/CNNTricks/CNNTricks.html" rel="noreferrer">here</a>, section 1 on Data Augmentation: so namely <strong>flips</strong>, <strong>random crops</strong> and <strong>color jittering</strong> and also <strong>lighting noise</strong>:</p>

<blockquote>
  <p><a href="http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf" rel="noreferrer">Krizhevsky et al.</a> proposed fancy PCA when training the famous Alex-Net in 2012. Fancy PCA alters the intensities of the RGB channels in training images.</p>
</blockquote>

<p>Alternatively you can also have a look at the Kaggle Galaxy Zoo challenge: the winners wrote a <a href="http://benanne.github.io/2014/04/05/galaxy-zoo.html" rel="noreferrer">very detailed blog post</a>. It covers the same kind of techniques:</p>

<ul>
<li>rotation,</li>
<li>translation,</li>
<li>zoom,</li>
<li>flips,</li>
<li>color perturbation.</li>
</ul>

<p>As stated they also do it "in realtime, i.e. during training".</p>

<p>For example here is a practical <a href="http://torch.ch/" rel="noreferrer">Torch</a> <a href="https://github.com/facebook/fb.resnet.torch/blob/e8fb31378fd8dc188836cf1a7c62b609eb4fd50a/datasets/transforms.lua" rel="noreferrer">implementation</a> by Facebook (for <a href="http://arxiv.org/abs/1512.03385" rel="noreferrer">ResNet</a> training).</p>
Data augmentation techniques for small image datasets?
<p>Currently i am training small logo datasets similar to <a href="http://www.multimedia-computing.de/flickrlogos/" rel="noreferrer">Flickrlogos-32</a> 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 <a href="https://www.kaggle.com/c/datasciencebowl/forums/t/11360/data-augmentation" rel="noreferrer">forum</a> but couldn't get much help. There's code for some methods given <a href="https://github.com/benanne/kaggle-galaxies/blob/master/realtime_augmentation.py" rel="noreferrer">here</a> 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? </p>