Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 近重复图像检测_Image_Image Processing_Sorting_Cbir - Fatal编程技术网

Image 近重复图像检测

Image 近重复图像检测,image,image-processing,sorting,cbir,Image,Image Processing,Sorting,Cbir,这是一种根据图像之间的相似性对给定图像集进行排序的快速方法 目前,我有一个系统,可以在两幅图像之间进行直方图分析,但这是一个非常昂贵的操作,而且似乎过于繁琐 最理想的情况是,我正在寻找一种算法,该算法会给每个图像一个分数(例如整数分数,如RGB平均值),我可以根据该分数进行排序。相同的分数或相邻的分数可能重复 0299393 0599483 0499994 <- possible dupe 0499999 <- possible dupe 1002039 4995994 600499

这是一种根据图像之间的相似性对给定图像集进行排序的快速方法

目前,我有一个系统,可以在两幅图像之间进行直方图分析,但这是一个非常昂贵的操作,而且似乎过于繁琐

最理想的情况是,我正在寻找一种算法,该算法会给每个图像一个分数(例如整数分数,如RGB平均值),我可以根据该分数进行排序。相同的分数或相邻的分数可能重复

0299393
0599483
0499994 <- possible dupe
0499999 <- possible dupe
1002039
4995994
6004994 
0299393
0599483

0499994关于图像搜索和相似性度量已经有很多研究。这不是一个容易的问题。通常,单个
int
不足以确定图像是否非常相似。你会有很高的假阳性率

然而,由于已经做了大量的研究,你可以看看其中的一些。例如,(PDF)提供了一种紧凑的图像指纹算法,该算法适用于快速查找重复图像,且无需存储大量数据。如果你想要一些健壮的东西,这似乎是正确的方法


如果您正在寻找更简单但更特别的方法,则有一些不错的想法。

我假设其他复制图像搜索软件对图像执行FFT,并将不同频率的值存储为向量:

Image1 = (u1, u2, u3, ..., un)
Image2 = (v1, v2, v3, ..., vn)
然后,通过计算两幅图像的权重向量之间的距离,可以比较两幅图像是否相等:

distance = Sqrt(
     (u1-v1)^2 +
     (u2-v2)^2 +
     (u2-v3)^2 +
     ...
     (un-vn)^2);

你必须决定什么是“相似的”。对比?色调

一张图片是否与同一张图片上下颠倒的“相似”

我打赌,你可以通过将图像分成4x4块,并获得每个网格单元的平均颜色,找到很多“密切联系”。每幅图片你会得到16分。要判断相似性,只需对图像之间的差异进行平方和即可

我不认为一个散列是有意义的,除非它反对一个单一的概念,如色调、亮度或对比度

以下是你的想法:

0299393
0599483
0499994 <- possible dupe
0499999 <- possible dupe
1002039
4995994
6004994
0299393
0599483

0499994有一个C库(“libphash”-)可以计算图像的“感知散列”,并允许您通过比较散列来检测类似的图像(因此您不必直接将每个图像与其他图像进行比较)但不幸的是,当我尝试它时,它似乎不是很准确。

一种解决方案是对执行气泡排序所需的每对图片进行比较。其次,您可以对每个图像执行一次排序,并对每个图像进行轴平均,以检索单个整数,并将其用作排序依据的索引。你可以考虑在一个调整大小(25%,10%)版本的原始版本上做任何比较,这取决于你选择忽略的差异有多小,以及你需要多少加速。让我知道这些解决方案是否有趣,我们可以讨论,或者我可以提供示例代码

一张图片有很多特征,所以除非你把自己的范围缩小到一个,比如平均亮度,否则你就是在处理一个n维的问题空间

如果我让你给世界上的城市分配一个整数,这样我就可以知道哪些城市离我们很近,结果不会很好。例如,您可以选择时区作为单个整数,并在某些城市中获得良好的结果。然而,一个靠近北极的城市和另一个靠近南极的城市也可能位于同一时区,即使它们位于地球的两端。如果我让你使用两个整数,你可以得到很好的纬度和经度的结果。图像相似性的问题也是如此

尽管如此,还是有一些算法试图将相似的图像聚集在一起,这正是您所需要的。这就是使用Picasa进行人脸检测时发生的情况。即使在识别任何面之前,它也会将相似的面聚集在一起,这样就可以很容易地遍历一组相似的面,并为其中大多数面命名


还有一种称为主成分分析的技术,它可以将n维数据降到更小的维度。因此,具有n个特征的图片可以简化为一个特征。但是,这仍然不是比较图像的最佳方法。

在web服务时代,您可以尝试一下。

我为此实现了一个非常可靠的算法,称为。我的(古老的,未维护的)代码是

快速多分辨率图像查询所做的是根据YIQ颜色空间将图像分割为3块(比RGB更适合匹配差异)。然后使用小波算法对图像进行基本压缩,直到每个颜色空间中只有最突出的特征可用。这些点存储在数据结构中。查询图像经过相同的过程,查询图像中的突出特征与存储数据库中的特征相匹配。匹配越多,图像越有可能相似

该算法通常用于“按草图查询”功能。我的软件只允许通过URL输入查询图像,所以没有用户界面。然而,我发现它非常适合将缩略图与该图像的大版本进行匹配


比我的软件更令人印象深刻的是,它可以让你使用Flickr图像作为源来尝试FMIQ算法。很酷!通过草图或使用源图像进行尝试,您可以看到它的工作情况。

我建议您不要只使用RGB直方图


如果对图像进行2d Haar小波(比听起来容易得多,只是需要很多平均值和一些平方根来加权系数),并将小波中的k个最大加权系数保留为稀疏向量,对其进行归一化,然后保存以减小其大小,则可以获得更好的图像摘要。你至少应该事先使用感知权重重新缩放RG和B,或者我建议切换到YIQ(或YCoCg),以避免量化