mindspore.nn.MSSSIM
- class mindspore.nn.MSSSIM(max_val=1.0, power_factors=(0.0448, 0.2856, 0.3001, 0.2363, 0.1333), filter_size=11, filter_sigma=1.5, k1=0.01, k2=0.03)[source]
- Returns MS-SSIM index between two images. - Its implementation is based on Wang, Zhou, Eero P. Simoncelli, and Alan C. Bovik. Multiscale structural similarity for image quality assessment. Signals, Systems and Computers, 2004. \[\begin{split}l(x,y)&=\frac{2\mu_x\mu_y+C_1}{\mu_x^2+\mu_y^2+C_1}, C_1=(K_1L)^2.\\ c(x,y)&=\frac{2\sigma_x\sigma_y+C_2}{\sigma_x^2+\sigma_y^2+C_2}, C_2=(K_2L)^2.\\ s(x,y)&=\frac{\sigma_{xy}+C_3}{\sigma_x\sigma_y+C_3}, C_3=C_2/2.\\ MSSSIM(x,y)&=l^\alpha_M*{\prod_{1\leq j\leq M} (c^\beta_j*s^\gamma_j)}.\end{split}\]- Parameters
- max_val (Union[int, float]) – The dynamic range of the pixel values (255 for 8-bit grayscale images). Default: 1.0. 
- power_factors (Union[tuple, list]) – Iterable of weights for each scale. Default: (0.0448, 0.2856, 0.3001, 0.2363, 0.1333). Default values obtained by Wang et al. 
- filter_size (int) – The size of the Gaussian filter. Default: 11. 
- filter_sigma (float) – The standard deviation of Gaussian kernel. Default: 1.5. 
- k1 (float) – The constant used to generate c1 in the luminance comparison function. Default: 0.01. 
- k2 (float) – The constant used to generate c2 in the contrast comparison function. Default: 0.03. 
 
 - Inputs:
- img1 (Tensor) - The first image batch with format ‘NCHW’. It must be the same shape and dtype as img2. 
- img2 (Tensor) - The second image batch with format ‘NCHW’. It must be the same shape and dtype as img1. 
 
- Outputs:
- Tensor, the value is in range [0, 1]. It is a 1-D tensor with shape N, where N is the batch num of img1. 
 - Raises
- TypeError – If max_val is neither int nor float. 
- TypeError – If power_factors is neither tuple nor list. 
- TypeError – If k1, k2 or filter_sigma is not a float. 
- TypeError – If filter_size is not an int. 
- ValueError – If max_val or filter_sigma is less than or equal to 0. 
- ValueError – If filter_size is less than 0. 
- ValueError – If length of shape of img1 or img2 is not equal to 4. 
 
 - Supported Platforms:
- Ascend- GPU
 - Examples - >>> import numpy as np >>> import mindspore.nn as nn >>> from mindspore import Tensor >>> net = nn.MSSSIM(power_factors=(0.033, 0.033, 0.033)) >>> img1 = Tensor(np.ones((1, 3, 128, 128)).astype(np.float32)) >>> img2 = Tensor(np.ones((1, 3, 128, 128)).astype(np.float32)) >>> output = net(img1, img2) >>> print(output) [1.]