ELEKTRONN/elektronn3

Add non-geometric augmentation methods

Closed this issue · 1 comments

mdraw commented

Here are many examples of image augmentations. The geometric ones (rotation, scaling, affine etc.) are already implemented in elektronn3 and many of the others are not suitable for biomedical data sets, but some of them like "ContrastNormalization (per channel)", "Add/Multipy (per channel)" and "SaltAndPepper" could be really helpful for us.
We can't use https://github.com/aleju/imgaug directly because it depends on OpenCV and is not (fully) 3D compatible, but implementing those methods in numpy for 3D/2D ourselves shouldn't be too hard.

  • Noise, blur and random erasing ("blobs") are already implemented in ELEKTRONN2 and will be ported over to elektronn3.
  • "ElasticTransformation" is already being tracked in #3.
  • Not sure about the broken greyscale augmentation
    def grey_augment(d, channels, rng):
    .
    It could be fixed by changing how normalization is applied to input data, but maybe it's better to re-implement it in a cleaner way.
mdraw commented

All of the mentioned non-geometric augmentations that still make sense are now supported in elektronn3.data.transforms, so this issue can be closed.