Функция image.total_variation
Функция image.total_variation вычисляет полную вариацию изображения -
сумму абсолютных разностей между соседними пикселями по горизонтали и вертикали.
Полная вариация часто используется как функция потерь при обучении нейронных сетей
для подавления шума и сглаживания изображений. Первым параметром функция принимает
тензор изображения с формой [batch, height, width, channels] или
[height, width, channels]. Вторым параметром можно передать имя операции.
Синтаксис
tf.image.total_variation(images, name=None)
Пример
Давайте вычислим полную вариацию для одноканального изображения
размером 3 на 3:
import tensorflow as tf
t = tf.constant([[[[1.0], [2.0], [3.0]],
[[4.0], [5.0], [6.0]],
[[7.0], [8.0], [9.0]]]])
res = tf.image.total_variation(t)
print(res)
Результат выполнения кода:
tf.Tensor([12.], shape=(1,), dtype=float32)
Пример
Давайте вычислим полную вариацию для трехканального изображения:
import tensorflow as tf
t = tf.constant([[[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]],
[[7.0, 8.0, 9.0], [10.0, 11.0, 12.0]]]])
res = tf.image.total_variation(t)
print(res)
Результат выполнения кода:
tf.Tensor([18.], shape=(1,), dtype=float32)
Пример
Давайте вычислим полную вариацию для батча из двух изображений:
Результат выполнения кода:
tf.Tensor([2. 2.], shape=(2,), dtype=float32)
Смотрите также
-
функцию
psnr,
которая вычисляет пиковое отношение сигнал/шум -
функцию
ssim,
которая вычисляет индекс структурного сходства -
функцию
per_image_standardization,
которая стандартизирует изображения -
функцию
adjust_gamma,
которая выполняет гамма-коррекцию изображения