Compression 评估与压缩有关的图像质量?

Compression 评估与压缩有关的图像质量?,compression,computer-vision,jpeg,Compression,Computer Vision,Jpeg,我有图像,我正在使用计算机视觉任务。该任务对图像质量非常敏感。我想删除所有低于某个阈值的图像,但我不确定是否有任何方法/启发式自动检测通过JPEG压缩的图像。有人有想法吗?一个简单的启发可以是查看宽度*高度*颜色深度

我有图像,我正在使用计算机视觉任务。该任务对图像质量非常敏感。我想删除所有低于某个阈值的图像,但我不确定是否有任何方法/启发式自动检测通过JPEG压缩的图像。有人有想法吗?

一个简单的启发可以是查看
宽度*高度*颜色深度。当然,您必须为
sigma
确定一个好的值<编码>西格玛将取决于你所看到的图像的预期熵。

图像质量评估是一个迅速发展的研究领域。由于您没有提到能够访问原始(未压缩)图像,因此您对无参考图像质量评估感兴趣。这实际上是一个相当困难的问题,但这里有一些要点可以帮助您开始:

  • 由于您提到了JPEG,有两个主要的降级功能在JPEG压缩图像中表现出来:阻塞模糊
  • 没有参考图像质量评估指标通常针对这两个特征
  • 块相当容易识别,因为它只出现在宏块边界上。宏块的大小是固定的——8x8或16x16,这取决于图像的编码方式
  • 模糊有点困难。这是因为图像中的较高频率已衰减(删除)。您可以将图像分成块,对每个块进行DCT(离散余弦变换),并查看DCT结果的高频分量。如果大多数块缺少高频分量,则可能看到的是模糊图像
  • 模糊检测的另一种方法是测量图像边缘的平均宽度。对图像执行Sobel边缘检测,然后测量边缘两侧的局部最小值/最大值之间的距离。谷歌搜索Marziliano的“无参考感知模糊度量”——这是一种著名的方法。Debing的“无参考块模糊检测”是一篇较新的论文
不管你使用什么标准,想想你将如何处理假阳性/假阴性。与简单的阈值不同,我会使用度量结果对图像进行排序,然后剪掉列表的末尾,看起来它只包含模糊的图像

如果图像集包含相当相似的内容(例如,仅面),则任务将简单得多。这是因为图像质量评估指标 不幸的是,通常会受到图像内容的影响

谷歌学者是你在这里真正的朋友。我希望我能给你一个具体的解决方案,但我还没有——如果我有,我会是一个非常成功的硕士生

更新:

只是想到了另一个想法:对于每个图像,使用JPEG重新压缩图像,并检查重新压缩前后文件大小的变化。如果重新压缩后的文件大小明显小于之前,则图像可能没有被严重压缩,因为它有一些重要的细节被重新压缩删除。否则(非常小的差异或重新压缩后的文件大小更大),图像可能被严重压缩

在重新压缩期间使用质量设置将允许您确定严重压缩的确切含义

如果您在Linux上,使用bash和imageMagick的convert实用程序实现这一点应该不会太难

您可以尝试此方法的其他变体:

  • 代替JPEG压缩,尝试另一种形式的降级,例如高斯模糊
  • 与其只是比较文件大小,不如尝试一个完整的参考指标,比如——有一个OpenCV实现。其他实现(如Matlab、C#)也存在,所以请四处看看

让我知道你是怎么回事。

我在一本古书上拍了许多照片(布局如此相似,每张图像有两页),但有些照片太模糊,以至于无法阅读。我搜索了一个现成的批处理脚本,以找到最模糊的一个,但我没有找到任何有用的,所以我使用了另一个脚本的一部分上了网(基于ImageMagick,但不再工作;我无法检索作者的学分!),有助于评估单个图像的模糊程度,调整了它,并在整个文件夹中实现了自动化。我上传到这里:


希望它对其他人有用。它在Linux系统上工作,并使用ImageMagick(以及一些通常安装在命令行上的工具,如gawk、sort、grep等)。

这只查看相对于图像尺寸的文件大小。但有些内容比其他内容更易于压缩;因此,一幅图像在高压缩率下可能看起来很好,而另一幅则不好。有趣的方法,但我的图像会有很宽的熵范围,所以我需要一种广义的方法。你最终解决了你的问题吗?看看我最新的答案。我在周末实现了它(结合各向异性扩散和SSIM方法),它似乎给出了有希望的结果。我用各向异性扩散代替高斯模糊。Misha-我在看SSIM实现,想知道这两个输入图像是什么?一个可能是我想要估计压缩率的那个,另一个是什么?或者如何通过比较两幅图像来估计质量?