Класс RandomBrightness
Класс RandomBrightness применяется к изображениям
и случайным образом изменяет их яркость. Это один из слоев
аугментации данных, который помогает модели быть устойчивее
к разной освещенности. Первым параметром передается
диапазон изменения яркости factor - кортеж из двух чисел
или одно число, задающее максимальное отклонение.
Вторым параметром можно передать значение value_range -
диапазон значений входных пикселей, по умолчанию (0, 255).
Слой активен только во время обучения, если не указать
seed, результаты будут разными при каждом вызове.
Синтаксис
tf.keras.layers.RandomBrightness(factor, value_range=(0, 255), seed=None, **kwargs)
Пример
Давайте создадим слой RandomBrightness и применим его
к тензору изображения. Зафиксируем зерно для
воспроизводимости результата:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.RandomBrightness(factor=0.2, seed=0)
t = tf.constant([[[[100, 150, 200], [50, 100, 150]]]], dtype=tf.float32)
res = layer(t, training=True)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[ 84. 134. 184.]
[ 34. 84. 134.]]]], shape=(1, 1, 2, 3), dtype=float32)
Пример
Давайте применим слой к изображению с диапазоном
значений (0, 1) и посмотрим результат:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.RandomBrightness(
factor=0.1,
value_range=(0, 1),
seed=0
)
t = tf.constant([[[[0.5, 0.5, 0.5], [0.8, 0.8, 0.8]]]], dtype=tf.float32)
res = layer(t, training=True)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[0.5642857 0.5642857 0.5642857]
[0.8642857 0.8642857 0.8642857]]]], shape=(1, 1, 2, 3), dtype=float32)
Смотрите также
-
функцию
adjust_brightness,
которая детерминированно изменяет яркость изображения -
функцию
random_brightness,
которая случайно изменяет яркость тензора изображения -
класс
RandomContrast,
который случайно изменяет контрастность изображений -
класс
RandomSaturation,
который случайно изменяет насыщенность изображений