tfmri.losses.ssim_loss

ssim_loss(y_true, y_pred, max_val=None, filter_size=11, filter_sigma=1.5, k1=0.01, k2=0.03, batch_dims=None, image_dims=None, rank=None)

Computes the structural similarity (SSIM) loss. (deprecated arguments)

Deprecated: SOME ARGUMENTS ARE DEPRECATED: (rank). They will be removed after 2022-09-01. Instructions for updating: Use argument image_dims instead.

The SSIM loss is equal to \(1.0 - \textrm{SSIM}\).

Parameters
  • y_true – A Tensor. Ground truth images. For 2D images, must have rank >= 3 with shape batch_shape + [height, width, channels]. For 3D images, must have rank >= 4 with shape batch_shape + [depth, height, width, channels]. height, width and depth must be greater than or equal to filter_size. Must have floating point type, with values in the range [0, max_val].

  • y_pred – A Tensor. Predicted images. For 2D images, must have rank >= 3 with shape batch_shape + [height, width, channels]. For 3D images, must have rank >= 4 with shape batch_shape + [depth, height, width, channels]. height, width and depth must be greater than or equal to filter_size. Must have floating point type, with values in the range [0, max_val].

  • max_val – The dynamic range of the images (i.e., the difference between the maximum and the minimum allowed values). Defaults to 1 for floating point input images and MAX for integer input images, where MAX is the largest positive representable number for the data type.

  • filter_size – The size of the Gaussian filter. Defaults to 11.

  • filter_sigma – The standard deviation of the Gaussian filter. Defaults to 1.5.

  • k1 – Factor used to calculate the regularization constant for the luminance term, as C1 = (k1 * max_val) ** 2. Defaults to 0.01.

  • k2 – Factor used to calculate the regularization constant for the contrast term, as C2 = (k2 * max_val) ** 2. Defaults to 0.03.

  • batch_dims

    An int. The number of batch dimensions in input images. If None, it is inferred from inputs and image_dims as (rank of inputs) - image_dims - 1. If image_dims is also None, then batch_dims defaults to 1. batch_dims can always be inferred if image_dims was specified, so you only need to provide one of the two.

  • image_dims

    An int. The number of spatial dimensions in input images. If None, it is inferred from inputs and batch_dims as (rank of inputs) - batch_dims - 1. Defaults to None. image_dims can always be inferred if batch_dims was specified, so you only need to provide one of the two.

  • rank

    An int. The number of spatial dimensions. Must be 2 or 3. Defaults to tf.rank(y_true) - 2. In other words, if rank is not explicitly set, y_true and y_pred should have shape [batch, height, width, channels] if processing 2D images or [batch, depth, height, width, channels] if processing 3D images.

Returns

A Tensor of type float32 and shape batch_shape containing an SSIM value for each image in the batch.

References

1

Zhao, H., Gallo, O., Frosio, I., & Kautz, J. (2016). Loss functions for image restoration with neural networks. IEEE Transactions on computational imaging, 3(1), 47-57.