Alvin_Smith 2024-03-31 13:44 采纳率: 0%
浏览 63

如何计算 SIDD Benchmark的PSNR以及SSIM

请问各位,我有下载了SIDD Benchmark Noisy的数据集,然后经过我的去噪模型去噪声了,接下来我要怎么去看说我去噪的PSNR以及SSIM结果? 有哪里有提供SIDD Benchmark GT 可以让我计算,还是是经由其他方法得到分数? 谢谢。

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-03-31 13:44
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    解答: 要查看你去噪的PSNR和SSIM结果,你需要一个参考(GT)图像来计算。SIDD Benchmark数据集中提供了500张参考图像,你可以从中选择一张,将其与你去噪后的结果进行比较。你可以使用以下公式计算PSNR和SSIM: PSNR = 10 * log10((max_val^2) / MSE) SSIM = (2 * mu1 * mu2 + C1) * (2 * sigma12 + C2) / ((mu1^2 + mu2^2 + C1) * (sigma1^2 + sigma2^2 + C2)) 其中max_val是像素值的最大值,MSE是均方误差,mu1和mu2是图像的均值,sigma1和sigma2是图像的标准差,sigma12是两幅图像的协方差,C1和C2是常数,用于避免分母为0的情况。 以下是一个计算PSNR和SSIM的Python代码示例,假设你有一张名为“result.png”的去噪图像和一张名为“GT.png”的参考图像:
    import cv2
    import numpy as np
    # load images
    result_img = cv2.imread("result.png")
    gt_img = cv2.imread("GT.png")
    # calculate PSNR
    max_val = 255  # assume pixel values are 0-255
    mse = np.mean((result_img - gt_img) ** 2)
    psnr = 10 * np.log10((max_val ** 2) / mse)
    print("PSNR: {:.4f}".format(psnr))
    # calculate SSIM
    C1 = (0.01 * max_val) ** 2
    C2 = (0.03 * max_val) ** 2
    mu1 = cv2.GaussianBlur(result_img, (11, 11), 1.5, borderType=cv2.BORDER_CONSTANT)
    mu2 = cv2.GaussianBlur(gt_img, (11, 11), 1.5, borderType=cv2.BORDER_CONSTANT)
    mu1_sq = mu1 ** 2
    mu2_sq = mu2 ** 2
    mu1_mu2 = mu1 * mu2
    sigma1_sq = cv2.GaussianBlur(result_img ** 2, (11, 11), 1.5, borderType=cv2.BORDER_CONSTANT) - mu1_sq
    sigma2_sq = cv2.GaussianBlur(gt_img ** 2, (11, 11), 1.5, borderType=cv2.BORDER_CONSTANT) - mu2_sq
    sigma12 = cv2.GaussianBlur(result_img * gt_img, (11, 11), 1.5, borderType=cv2.BORDER_CONSTANT) - mu1_mu2
    numerator = (2 * mu1_mu2 + C1) * (2 * sigma12 + C2)
    denominator = (mu1_sq + mu2_sq + C1) * (sigma1_sq + sigma2_sq + C2)
    ssim_map = numerator / denominator
    ssim = np.mean(ssim_map)
    print("SSIM: {:.4f}".format(ssim))
    

    此代码将计算result.png和GT.png的PSNR和SSIM。通过该例子,可以得到一个看起来有条理的代码实现方式。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月31日