问题标签 [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.
deep-learning - 损失之间的权衡?
我一直在做一个超分辨率的任务。我有一个关于确定损失函数的问题,所以在手头的任务中,我想用 SSIM 作为损失函数来训练我的模型。我确实得到了很好的结果。最近我遇到了感知损失函数,我们在其中比较了预训练模型如何看待地面实况(GT)图像和超分辨率(SR)图像(模型生成的图像)。我的问题是,我正在考虑同时使用 ((1-SSIM(SR,GT))+Perceptual loss(SR,GT)) 损失进行反向传播,那么我应该在这两种损失之间使用权衡参数吗?如果是这样,我该如何设置这些权衡参数?或者我应该以相同的权重添加这些损失。
PS:感知损失是通过从预训练模型中找到 GT 和 SR 图像的特征图之间的 SSIM 来计算的
python - TensorFlow 2.x 中的 SSIM 函数
我正在尝试使用 tf.image.ssim() 作为我的损失函数来训练我的模型,并且我探索了人们是如何实现它的。他们来了:
我有几个问题:
- 在这两个线程中,
tf.image.ssim
当输入在 -1 和 1 之间归一化时,建议的动态范围为 2。但我进行了一次小的健全性检查,看看它是否有效。这是代码:
据我了解,所有 3 个打印语句都应该给出相同的 SSIM 值,但它们没有。当范围为 0 到 1 和 0 到 255 时,SSIM 结果相同,但范围为 - 1 到 1 时,结果不同。为了仔细检查,我也在 MATLAB 中计算了 SSIM,这几乎与前两种情况一致。那么,有没有其他方法可以计算 SSIM/使用 SSIM 作为 TF2 中的损失函数?我用compare_ssim
skimage 做了同样的实验,但那个似乎有同样的结果。我错过了什么吗?
- 此外,当我
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.fit
tensorflow2.x 进行训练,而我正在使用tf.GradientTape()
它来计算梯度和更新权重。GradientTape 函数是否有可能负责返回 NaN 值?如果是这样,为什么以及可能的解决方案是什么?
tensorflow - 张量流中的 MS-SSIM
我想使用 tf.image.ssim_multiscale 来计算度量 MS-SSIM 并编写了这个简单的代码。但它有错误:
python-3.x - 在 Python 中比 MSE 更好地比较图像的快速技术
我一直在使用结构相似性指数(通过 tensorflow)来比较图像,但是它需要的时间太长。我想知道是否有一种不需要太多时间的替代技术。如果有人能指出比 Python 中的 tensorflow 更有效的 SSIM 实现,那也没关系。
我使用 SSIM 的意图是,给定参考图像 (A) 和一组图像 (B),我需要了解 B 中的哪个图像与参考图像 A 最相似。
r - MS-SSIM 的 R 包?
我想用 R 做一些简单的图像比较(我不使用 python 的原因是工作流在 R 中)。我试图在 R 的包中搜索 ms-ssim 实现,但确实找到了除spatialcompare::msssim
. 然而,正如我昨天在帖子中提到的,我发现这个函数的结果可能与我的输入不正确(可能与matrix
转换有关raster
?)。对于适当的 ms-ssim 代码还有更多建议吗?我实际上基于自我实现了一个,SpatialPack::SSIM
因为一次又一次地对图像进行下采样似乎很容易,但不确定我是否正确编写它。我会把它作为答案。
windows - ffmpeg:如何将 SSIM 和 PSNR 保存到文件中?
我是一个ffmpeg新手。我希望我的脚本(在 Windows 上)将平均 PSNR 和平均 SSIM 值输出到文件中。(但不是每一帧的值)我可以将它们输出到标准输出,但不能输出到文件。
我使用这条线:
我知道我必须在这里改变一些东西: "-f null -" ,但我不能让它工作。
video - ffmpeg ssim 对高质量和低质量压缩都给了我不好的结果
我想使用 ssim 来评估压缩质量。但是,当我计算 ssim 值时,我得到非常相似(并且很低)的结果,即无损压缩非常好,而无损压缩非常差。
我做错了什么?
对于压缩我做:
参考 -crf 0:
对于 ssim:
我明白了
c++ - OpenCV SSIM算法实现
通过下一个公式计算的 SSIM 指标(来自 Wikipedia)。
我想用 OpenCV 计算这个指标。我在官方网站上找到了示例(https://docs.opencv.org/master/d5/dc4/tutorial_video_input_psnr_ssim.html)
但在此示例中,平均值计算为 GaussianBlur。谁能解释一下,为什么?
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)
然后我将输出作为数组而不是数字
python - 使用 opencv (ssim) 进行 Python 质量检查
我现在是一家质检公司的实习生。我的工作是编写一个程序来检测有缺陷的产品(例如,缺少螺丝)。他们为每一个产品拍照。我的想法是我选择一个可以作为基准的图像,然后将其他图像与 SSIM 分数进行比较,并可能用矩形显示有缺陷的部分。这是一个可行的想法吗?(这是一次奇怪的实习,因为似乎我是唯一可以在那里编码的人......)这就是我在这里问的原因。