相似图片搜索的原理

这里的关键技术叫做'感知哈希算法'(Perceptual hash algorithm),它的作用是对每张图片生成一个'指纹'(fingerprint)字符串,然后比较不同图片的指纹。结果越接近,就说明图片越相似。

下面是一个最简单的实现:

第一步,缩小尺寸。

将图片缩小到8x8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。

第二步,简化色彩。

将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。

第三步,计算平均值。

计算所有64个像素的灰度平均值。

第四步,比较像素的灰度。

将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。

第五步,计算哈希值。

将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。

得到指纹以后,就可以对比不同的图片,看看64位中有多少位是不一样的。在理论上,这等同于计算'汉明距离'(Hamming distance)。如果不相同的数据位不超过5,就说明两张图片很相似;如果大于10,就说明这是两张不同的图片。

具体的代码实现,可以参见Wote用python语言写的imgHash.py。代码很短,只有53行。使用的时候,第一个参数是基准图片,第二个参数是用来比较的其他图片所在的目录,返回结果是两张图片之间不相同的数据位数量(汉明距离)。

这种算法的优点是简单快速,不受图片大小缩放的影响,缺点是图片的内容不能变更。如果在图片上加几个文字,它就认不出来了。所以,它的最佳用途是根据缩略图,找出原图。

实际应用中,往往采用更强大的pHash算法和SIFT算法,它们能够识别图片的变形。只要变形程度不超过25%,它们就能匹配原图。这些算法虽然更复杂,但是原理与上面的简便算法是一样的,就是先将图片转化成Hash字符串,然后再进行比较。

(0)

相关推荐

  • 人工“智能”图像识别 参考论文

    人们很容易知道,图1中四张图片其实来自同一张爱因斯坦的肖像画,第二张图片在尺寸上有变化(为后续行文方便,稱其为苗条爱因斯坦),第三张图片加了个小点缀(称为灵感爱因斯坦),第四张布满了白色噪点(称为混沌 ...

  • 图片搜索,再也不用问照片里的美女是谁了

    图片搜索,再也不用问照片里的美女是谁了

  • Tineye 反向图片搜索网

    Tineye是加拿大多伦多的一个非常棒的反向图片搜索网站,他们有很好的图像识别软件和解决方案,当你在网上搜索到一张要用的图片素材,很想下载来用,可是图片上却有广告水印,或者图片质量不好,这时你一定会想 ...

  • 搜狗图片搜索

    丢分阅读理解方时万能公式答题中学语文 相关搜索手写语文作文图片语文手抄报语文春节手抄报语文思维导图一年级上册语文 相关搜索四年级语文手抄报三年级语文手抄报五年级语文手抄报六年级语文手抄报一年级语文手抄 ...

  • 我怎么查字典之图片搜索大法

    学英语很难,但学习很快乐.     --- 学英语那点事 遇到名词,尤其是有文化鸿沟的.难以理解的名词,学姐会首先选择图片搜索的方式去"查单词". 没错,单词是可以用图片检索的形式 ...

  • 对网站图片搜索进行SEO的十五个技巧

    图片搜索优化有以下几个特点: 免费的产品促销:这是搜索引擎营销中不用为点击率付费的一部分:比常规的搜索有更多的优化机会:像一些图片分享网站有更多的内容作为搜索引擎排名依据,他们比普通的网页包含更多的信 ...

  • 百度图片搜索: 被运营遗忘的流量蓝海, 国庆的转化率就靠你了!

    今天重点和大家讲一下优化百度图片搜索对提升网站流量的重要性,其实有很多SEO朋友根本不care这块流量!甚至几乎从来没考虑过这个问题! 从IP的角度计算,百度图片搜索占比百度全域搜索的比率在:27.1 ...

  • 律师技能 | 图片搜索功能

    图片搜索功能 在律师的日常工作中,特别是知识产权律师的业务范围内,经常要进行大量的图片检索,已达到收集信息的目的,随着科技的发展,目前主流的搜索引擎都已经支持图片搜索功能,下面我们就以大家常用的百度搜 ...

  • 简单易懂的透视知识 图片解读美术绘画中的透视原理

    绘画中的透视是指在平面上体现空间感和立体感.美术生一般从几何体入手学习,几何体造型简单,便于初学者理解绘画中的透视原理. 透视原理贯穿于绘画学习的不同阶段,静物.石膏像.人像等,从整体构图到个体造型, ...

  • 电泳图片光密度分析原理与方法

    无论是DNA电泳图片还是RNA电泳图片,或者是蛋白的凝胶电泳图片包括Western blot膜.或者是化学发光膜图片,在图像分析的角度来看,都是同样的一种条带光密度分析的问题.分析电泳条带有专门的一类 ...