I am using object detection in order to detect objects from drones. I have noticed that using data augmentation can create some images of object as if they were recorded from a different position of the drone (this is generally valid in all cases but in my case I think it really helps as there may be large variation in drone height etc).

So, I am producing more training data to use. In the proposed method I noticed that the typical method involves using a random subset of all possible data augmentation.

Is there a reason not to apply data augmentation techniques to all images (besides that if the dataset is already large it practically impossible to apply all possible techniques to every sample)?

So, I am asking if there is a drawback in this case. Is it just a choice based on efficiency (meaning if not an efficiency issue it could be applied)? I know required training time can become quite enlarged in this case but I am asking for something more difficult to compensate like if leads to overfitting etc.

If it helps I am using SSD for object detection.

P.S. to respond to some answer the term "all possible data augmentation" is an exaggeration and could not be met as requirement anyway. In my case I use rotation and I limit it to -30 up to 30 degrees with a step of 5 degrees. So, I was wondering if I should take all possible augmented images from this setting or not.

  • $\begingroup$ Do you find SSD to work better in practice than Faster R-CNN? $\endgroup$
    – DeltaIV
    Commented Apr 13, 2018 at 11:14
  • 1
    $\begingroup$ @DeltaIV If I get you right, I find SSD to work quite worse than Faster R-CNN but extremely faster. Authors of SSD state though that a heavier data augmentation was applied (which I haven't done yet). $\endgroup$
    – Eypros
    Commented Apr 13, 2018 at 11:24
  • $\begingroup$ I suspected as much. It would be interesting to know if the comparison changes once you use the extra data augmentation. Maybe you could let me know in chat. One last question: do you work with omnidirectional (spherical) images or classical planar images? $\endgroup$
    – DeltaIV
    Commented Apr 13, 2018 at 11:29
  • $\begingroup$ Again if I get you right I use plain images (planar?) taken from regular on-board cameras $\endgroup$
    – Eypros
    Commented Apr 13, 2018 at 11:35
  • $\begingroup$ this is a drone spherical image (actually this is a 360° image which is not really a spherical image, but close enough). Yours are probably regular planar images such as this one $\endgroup$
    – DeltaIV
    Commented Apr 13, 2018 at 11:44

1 Answer 1


Can you even enumerate all data augmentation options? The options are endless: rotate by 30 degrees, 45 degrees, 1 degree, 1.1, degrees, 1.12 degrees etc. increase saturation by 10%, 5%, 4%, 3%, 2.5%, 2.4% etc. and so on. That puts a practical limitation on how you could look at "all options".

You could do a specific subset (10°, 20°, 30°... and 5%, 10%, 15%...) and then implement all permutations, but to some extent natural variation in angles etc. does not necessarily come in specific increments. You might even worry that too regular a set of augmentations (applied in the same way to all images) may become a feature a neural network could memorize/exploit somehow. So why not draw random numbers for how to augment? If you do it often enough, you can span about the same range of possibilities as you would by enumerating the combinations of a fixed set of options in any case.

Also, if you draw the augmentation randomly, you can keep drawing "new" images endlessly (if necessary for training).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.