图片相似度检索

比如以下两组数字
34 23 56 567 878
33 21 53 560 871

有什么办法来比较这两组数字最接近?
最简单的方法就是纵向数字分别比较, 34 比 33 ,23 比 21 ..
但这种方法就是速度太慢(我这边数字的长度会在1w个以上.)

采用每组元素相加 34 + 23 + 56 + 567 + 878 来比较显然也不精确.
另种想到的是采用
sqrt(34^2 + 23^2 + 56^2 + 567^2 + 878^2)
和 sqrt(33^2 + 21^2 + 53^2 + 560^2 + 871^2)
进分别比较 感觉也不是比较好的方法。

目前本人在做图像相似度方面,由于图片数据在几亿级别,打算建立图版特征库的方法,找出两张类似的图片。目前想到的是采样分块颜色索引值的方法进行比较。在此请教了。

介个课题应该是比较有难度挑战的。毕竟人工智能的水平没有这么发达。
现在的搜索引擎上面,“图片搜索”实际上是“图片解说文字搜索”,离真正的图像相似检索,还差得远呢。

你的这一串数字应该是两个图像的不同特征数字吧,比如颜色,轮廓,名称等等,你滴数字长度很长,复杂的算法也不现实。
可以分段求相关系数,具体可以参考概率统计里边相关系数的概念,下面是matlab指令的corrcoef的效果
A =

1 2 3 4 5 6 7 8 9 10

>> B

B =

1.0000 2.0000 2.9000 4.0000 5.0000 6.2000 7.0000 8.0000 9.0000 10.0000

>> C=corrcoef(A,B)

C =

1.0000 0.9997
0.9997 1.0000

求相关系数,具体实现的时候可以有简化或快速算法,这都可以仔细斟酌的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-01-08
把你的2个方法结合起来,可能是一个解决方案。

设要比较的2个数字串分别为A和B.

1,分段。
保持顺序关系,把长度为N的数字串A,B都分别为M段,每段含 (N/M)个数字。

2,段内求和
在数字串A,B中,把每段中的数字相加求和。分别记和为AS1,AS2,...,ASM.和BS1,BS2,...,BSM.

3,对应段的之间比较
将对应的 ASK 和 BSK 之间进行比较。K = 1,2,...,M.

4,综合评价
根据每个对应段之间的比较,设定一种判据,给出关于2个数字串之间相似性度量的一个结果。
第2个回答  2009-01-08
貌似在做 图像搜索引擎,目前正在发展阶段,难道你是Google或百度的?
要做好的话,请请教数学专家吧
相似回答