你们知道可以用来计算图像之间差异的算法吗?
以此网页为例http://tineye.com/您可以给它一个链接或上传图像,它会找到类似的图像.我怀疑它是否将所讨论的图像与所有图像进行比较(或者可能是这样).
通过计算我的意思是Levenshtein_distance或Hamming距离对于字符串.
我不需要为项目或任何事情找到正确的答案,我只是找到了网站并且非常好奇.我知道digg为他们的网站支付类似的服务费用.
最简单的措施将是基于RMS错误的方法,例如:
均方根偏差
峰值信噪比
这些可能与你的距离测量概念有关,但是如果你已经有两个非常接近的图像,它们的结果真的只有意义,就像你正在研究特定压缩方案保存原始图像的程度.此外,两种比较的相同结果可能意味着很多不同的东西,具体取决于具体的工件类型(请看下面我引用的一些RMS/PSNR示例照片可能会产生误导的文章).
除此之外,还有一整个研究领域致力于图像相似性.我不是专家,但这里有一些指示:
许多工作已经用于使用降维(PCA,SVD,特征值分析等)来挑选图像的主要成分并在不同图像之间进行比较.
其他方法(特别是医学成像)使用分割技术来挑选图像的重要部分,然后根据发现的内容比较图像
还有一些人试图设计相似性度量来解决RMS误差和PSNR的一些缺陷.有一篇关于空间域结构相似性(SSIM)测量的非常酷的论文,它试图模仿人们对图像错误的感知,而不是直接的,错误的数学概念.在本文中,使用小波分析对WSSIM进行了改进的平移/旋转不变版本.
看起来TinEye使用具有许多属性值的特征向量来进行比较.如果你在他们的网站上搜索,你最终会进入IdeéLabs页面,他们的常见问题解答中有一些(但不是太多)有关算法的细节:
问:视觉搜索如何运作?
答:Idée的视觉搜索技术使用复杂的算法来分析数百种图像属性,如颜色,形状,纹理,亮度,复杂性,对象和区域.这些属性形成一个紧凑的数字签名,描述每个图像的外观,以及这些签名由我们的软件计算并索引.在执行视觉搜索时,我们的搜索引擎会快速比较这些签名,以返回视觉上类似的结果.
这绝不是详尽无遗的(这只是我在自己的研究过程中遇到的一些技术),但如果你谷歌搜索技术论文或者查看最近的图像处理会议,你必然会发现这个东西的更多方法.这不是一个解决的问题,但希望这些指针能让你了解所涉及的内容.
一种技术是使用颜色直方图.您可以使用机器学习算法根据您使用的重复发现查找类似的图像.例如,常用的k-means算法.我已经看到其他解决方案试图在使用边缘检测后分析图像中的垂直和水平线.还使用纹理分析.
最近的一篇论文聚集了来自picasa网络的图像.您还可以尝试我正在处理的群集算法.