используйте tf.image.ssim для расчета, что ssim отличается от бумаги (Matlab), почему? - PullRequest
0 голосов
/ 01 августа 2020

Я использую следующий код для вычисления ssim набора данных set5, но результаты отличаются от бумажных. При использовании метода «Бикуби c» и установке масштаба на 4, бумаги обычно имеют PSNR = 28,42 / SSIM = 0,810.

import tensorflow as tf
ssims = 0
psnrs = 0

for i in range(5):
    path1 = 'Set5\\Set5\\image_SRF_4\\img_00'+str(i+1)+'_SRF_4_bicubic.png'#bicubic
    path2 = 'Set5\\Set5\\image_SRF_4\\img_00'+str(i+1)+'_SRF_4_HR.png'
    img1 = tf.io.read_file(path1)
    img1 = tf.io.decode_image(img1,3,expand_animations=False)

    img2 = tf.io.read_file(path2)
    img2 = tf.io.decode_image(img2,3,expand_animations=False)

    ssims = ssims + tf.image.ssim(img1, img2, max_val=255)
    psnrs = psnrs + tf.image.psnr(img1, img2, max_val=255)
    
ssims/5,psnrs/5
(<tf.Tensor: shape=(), dtype=float32, numpy=0.7731458>,
 <tf.Tensor: shape=(), dtype=float32, numpy=26.69437>)

Почему между моими результатами и бумагами большой разрыв ? Я ошибся в расчетах?

...