Randomly drop channels. channel_drop_range, fill. Replaces selected channels with fill; improves robustness to missing channels. Image-only.
This transform randomly selects a number of channels to drop from the input image and replaces them with a specified fill value. This can improve model robustness to missing or corrupted channels.
The technique is conceptually similar to:
However, ChannelDropout operates on the channel dimension, effectively "dropping out" entire color channels or feature maps.
channel_drop_rangeRange from which to choose the number of channels to drop. The actual number will be randomly selected from the inclusive range [min, max]. Default: (1, 1).
fillPixel value used to fill the dropped channels. Default: 0.
pProbability of applying the transform. Must be in the range [0, 1]. Default: 0.5.
>>> import numpy as np
>>> import albumentations as A
>>> image = np.random.randint(0, 256, (100, 100, 3), dtype=np.uint8)
>>> transform = A.ChannelDropout(channel_drop_range=(1, 2), fill=128, p=1.0)
>>> result = transform(image=image)
>>> dropped_image = result['image']
>>> assert dropped_image.shape == image.shape
>>> assert np.any(dropped_image != image) # Some channels should be different