问题标签 [ssim]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
107 浏览

deep-learning - 损失之间的权衡?

我一直在做一个超分辨率的任务。我有一个关于确定损失函数的问题,所以在手头的任务中,我想用 SSIM 作为损失函数来训练我的模型。我确实得到了很好的结果。最近我遇到了感知损失函数,我们在其中比较了预训练模型如何看待地面实况(GT)图像和超分辨率(SR)图像(模型生成的图像)​​。我的问题是,我正在考虑同时使用 ((1-SSIM(SR,GT))+Perceptual loss(SR,GT)) 损失进行反向传播,那么我应该在这两种损失之间使用权衡参数吗?如果是这样,我该如何设置这些权衡参数?或者我应该以相同的权重添加这些损失。

PS:感知损失是通过从预训练模型中找到 GT 和 SR 图像的特征图之间的 SSIM 来计算的

0 投票
0 回答
212 浏览

python - TensorFlow 2.x 中的 SSIM 函数

我正在尝试使用 tf.image.ssim() 作为我的损失函数来训练我的模型,并且我探索了人们是如何实现它的。他们来了:

  1. 在 RGB 图像的张量流中使用 SSIM 损失函数
  2. 在 Keras 中使用 SSIM 损失函数

我有几个问题:

  1. 在这两个线程中,tf.image.ssim当输入在 -1 和 1 之间归一化时,建议的动态范围为 2。但我进行了一次小的健全性检查,看看它是否有效。这是代码:

据我了解,所有 3 个打印语句都应该给出相同的 SSIM 值,但它们没有。当范围为 0 到 1 和 0 到 255 时,SSIM 结果相同,但范围为 - 1 到 1 时,结果不同。为了仔细检查,我也在 MATLAB 中计算了 SSIM,这几乎与前两种情况一致。那么,有没有其他方法可以计算 SSIM/使用 SSIM 作为 TF2 中的损失函数?我用compare_ssimskimage 做了同样的实验,但那个似乎有同样的结果。我错过了什么吗?

  1. 此外,当我tf.reduce_mean(tf.keras.losses.mean_squared_error(target, gen_output))用作损失函数时,一切都很好。但是当我tf.reduce_mean(tf.image.ssim(x, y, dynamic_range)用作损失函数时,我得到的是 NaN 值。上面提到的两个线程都使用 tensorflow 1.x 或model.fittensorflow2.x 进行训练,而我正在使用tf.GradientTape()它来计算梯度和更新权重。GradientTape 函数是否有可能负责返回 NaN 值?如果是这样,为什么以及可能的解决方案是什么?
0 投票
1 回答
219 浏览

tensorflow - 张量流中的 MS-SSIM

我想使用 tf.image.ssim_multiscale 来计算度量 MS-SSIM 并编写了这个简单的代码。但它有错误:

0 投票
1 回答
847 浏览

python-3.x - 在 Python 中比 MSE 更好地比较图像的快速技术

我一直在使用结构相似性指数(通过 tensorflow)来比较图像,但是它需要的时间太长。我想知道是否有一种不需要太多时间的替代技术。如果有人能指出比 Python 中的 tensorflow 更有效的 SSIM 实现,那也没关系。

我使用 SSIM 的意图是,给定参考图像 (A) 和一图像 (B),我需要了解 B 中的哪个图像与参考图像 A 最相似。

0 投票
1 回答
31 浏览

r - MS-SSIM 的 R 包?

我想用 R 做一些简单的图像比较(我不使用 python 的原因是工作流在 R 中)。我试图在 R 的包中搜索 ms-ssim 实现,但确实找到了除spatialcompare::msssim. 然而,正如我昨天在帖子中提到的,我发现这个函数的结果可能与我的输入不正确(可能与matrix转换有关raster?)。对于适当的 ms-ssim 代码还有更多建议吗?我实际上基于自我实现了一个,SpatialPack::SSIM因为一次又一次地对图像进行下采样似乎很容易,但不确定我是否正确编写它。我会把它作为答案。

0 投票
1 回答
404 浏览

windows - ffmpeg:如何将 SSIM 和 PSNR 保存到文件中?

我是一个ffmpeg新手。我希望我的脚本(在 Windows 上)将平均 PSNR 和平均 SSIM 值输出到文件中。(但不是每一帧的值)我可以将它们输出到标准输出,但不能输出到文件。

我使用这条线:

我知道我必须在这里改变一些东西: "-f null -" ,但我不能让它工作。

0 投票
0 回答
42 浏览

video - ffmpeg ssim 对高质量和低质量压缩都给了我不好的结果

我想使用 ssim 来评估压缩质量。但是,当我计算 ssim 值时,我得到非常相似(并且很低)的结果,即无损压缩非常好,而无损压缩非常差。

我做错了什么?

对于压缩我做:

参考 -crf 0:

对于 ssim:

我明白了

0 投票
0 回答
69 浏览

c++ - OpenCV SSIM算法实现

通过下一个公式计算的 SSIM 指标(来自 Wikipedia)。

在此处输入图像描述

我想用 OpenCV 计算这个指标。我在官方网站上找到了示例(https://docs.opencv.org/master/d5/dc4/tutorial_video_input_psnr_ssim.html

但在此示例中,平均值计算为 GaussianBlur。谁能解释一下,为什么?

在此处输入图像描述

0 投票
1 回答
1101 浏览

python - ValueError:win_size 超出图像范围。如果输入是多通道(彩色)图像,设置 multichannel=True

我正在尝试计算两个图像的 SSIM 值,但出现错误。

  • img_np.shape = (1, 256, 256)
  • out.detach()[0].cpu().numpy().shape = (1, 256, 256)
  • out是模型生成的输出图像

当我尝试查找 SSIM 值ssim_ = compare_ssim(img_np, out.detach().cpu().numpy()[0])时出现错误ValueError: win_size exceeds image extent. If the input is a multichannel (color) image, set multichannel=True.

我努力了

  • ssim_ = compare_ssim(img_np, out.detach().cpu().numpy()[0], full=True)但同样的错误
  • ssim_ = compare_ssim(img_np, out.detach().cpu().numpy()[0], full=True, win_size=1,use_sample_covariance=False)然后我将输出作为数组而不是数字
0 投票
1 回答
150 浏览

python - 使用 opencv (ssim) 进行 Python 质量检查

我现在是一家质检公司的实习生。我的工作是编写一个程序来检测有缺陷的产品(例如,缺少螺丝)。他们为每一个产品拍照。我的想法是我选择一个可以作为基准的图像,然后将其他图像与 SSIM 分数进行比较,并可能用矩形显示有缺陷的部分。这是一个可行的想法吗?(这是一次奇怪的实习,因为似乎我是唯一可以在那里编码的人......)这就是我在这里问的原因。