童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

Google相似图片搜索的原理概述

1月1日 赤雷榭投稿
  上个月,Google把“相似图片搜索”正式放上了首页。
  你可以用一张图片,搜索互联网上所有与它相似的图片。点击搜索框中照相机的图标。
  一个对话框会出现。
  你输入网片的网址,或者直接上传图片,Google就会找出与其相似的图片。下面这张图片是美国女演员AlysonHannigan。
  上传后,Google返回如下结果:
  类似的”相似图片搜索引擎”还有不少,TinEye甚至可以找出照片的拍摄背景。
  这种技术的原理是什么?计算机怎么知道两张图片相似呢?
  根据NealKrawetz博士的解释,原理非常简单易懂。我们可以用一个快速算法,就达到基本的效果。
  这里的关键技术叫做”感知哈希算法”(Perceptualhashalgorithm),它的作用是对每张图片生成一个”指纹”(fingerprint)字符串,然后比较不同图片的指纹。结果越接近,就说明图片越相似。
  下面是一个最简单的实现:
  第一步,缩小尺寸。
  将图片缩小到88的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。
  第二步,简化色彩。
  将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。
  第三步,计算平均值。
  计算所有64个像素的灰度平均值。
  第四步,比较像素的灰度。
  将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。
  第五步,计算哈希值。
  将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。
  8f373714acfcf4d0
  得到指纹以后,就可以对比不同的图片,看看64位中有多少位是不一样的。在理论上,这等同于计算“汉明距离”(Hammingdistance)。如果不相同的数据位不超过5,就说明两张图片很相似;如果大于10,就说明这是两张不同的图片。
  具体的代码实现,可以参见Wote用python语言写的imgHash。py。代码很短,只有53行。使用的时候,第一个参数是基准图片,第二个参数是用来比较的其他图片所在的目录,返回结果是两张图片之间不相同的数据位数量(汉明距离)。
  这种算法的优点是简单快速,不受图片大小缩放的影响,缺点是图片的内容不能变更。如果在图片上加几个文字,它就认不出来了。所以,它的最佳用途是根据缩略图,找出原图。
  实际应用中,往往采用更强大的pHash算法和SIFT算法,它们能够识别图片的变形。只要变形程度不超过25,它们就能匹配原图。这些算法虽然更复杂,但是原理与上面的简便算法是一样的,就是先将图片转化成Hash字符串,然后再进行比较。
  昨天,我在isnowfy的网站看到,还有其他两种方法也很简单,这里做一些笔记。
  一、颜色分布法
  每张图片都可以生成颜色分布的直方图(colorhistogram)。如果两张图片的直方图很接近,就可以认为它们很相似。
  任何一种颜色都是由红绿蓝三原色(RGB)构成的,所以上图共有4张直方图(三原色直方图最后合成的直方图)。
  如果每种原色都可以取256个值,那么整个颜色空间共有1600万种颜色(256的三次方)。针对这1600万种颜色比较直方图,计算量实在太大了,因此需要采用简化方法。可以将0~255分成四个区:0~63为第0区,64~127为第1区,128~191为第2区,192~255为第3区。这意味着红绿蓝分别有4个区,总共可以构成64种组合(4的3次方)。
  任何一种颜色必然属于这64种组合中的一种,这样就可以统计每一种组合包含的像素数量。
  上图是某张图片的颜色分布表,将表中最后一栏提取出来,组成一个64维向量(7414,230,0,0,8,,109,0,0,3415,53929)。这个向量就是这张图片的特征值或者叫”指纹”。
  于是,寻找相似图片就变成了找出与其最相似的向量。这可以用皮尔逊相关系数或者余弦相似度算出。
  二、内容特征法
  除了颜色构成,还可以从比较图片内容的相似性入手。
  首先,将原图转成一张较小的灰度图片,假定为5050像素。然后,确定一个阈值,将灰度图片转成黑白图片。
  如果两张图片很相似,它们的黑白轮廓应该是相近的。于是,问题就变成了,第一步如何确定一个合理的阈值,正确呈现照片中的轮廓?
  显然,前景色与背景色反差越大,轮廓就越明显。这意味着,如果我们找到一个值,可以使得前景色和背景色各自的”类内差异最小”(minimizingtheintraclassvariance),或者”类间差异最大”(maximizingtheinterclassvariance),那么这个值就是理想的阈值。
  1979年,日本学者大津展之证明了,”类内差异最小”与”类间差异最大”是同一件事,即对应同一个阈值。他提出一种简单的算法,可以求出这个阈值,这被称为“大津法”(Otsu’smethod)。下面就是他的计算方法。
  假定一张图片共有n个像素,其中灰度值小于阈值的像素为n1个,大于等于阈值的像素为n2个(n1n2n)。w1和w2表示这两种像素各自的比重。
  w1n1n
  w2n2n
  再假定,所有灰度值小于阈值的像素的平均值和方差分别为1和1,所有灰度值大于等于阈值的像素的平均值和方差分别为2和2。于是,可以得到
  类内差异w1(1的平方)w2(2的平方)
  类间差异w1w2(12)2
  可以证明,这两个式子是等价的:得到”类内差异”的最小值,等同于得到”类间差异”的最大值。不过,从计算难度看,后者的计算要容易一些。
  下一步用”穷举法”,将阈值从灰度的最低值到最高值,依次取一遍,分别代入上面的算式。使得”类内差异最小”或”类间差异最大”的那个值,就是最终的阈值。具体的实例和Java算法,请看这里。
  有了5050像素的黑白缩略图,就等于有了一个5050的01矩阵。矩阵的每个值对应原图的一个像素,0表示黑色,1表示白色。这个矩阵就是一张图片的特征矩阵。
  两个特征矩阵的不同之处越少,就代表两张图片越相似。这可以用”异或运算”实现(即两个值之中只有一个为1,则运算结果为1,否则运算结果为0)。对不同图片的特征矩阵进行”异或运算”,结果中的1越少,就是越相似的图片。
  
  作者:阮一峰
投诉 评论

把握分寸感!聊聊日常设计中的那些“过”在我们日常设计的时候,为了达到最优效果,总是想方设法的用各种各样的手段设计。但是有些时候,这些设计可能会太“过”了。学会把握分寸,是设计师不得不学的技巧。设计,当然是由设……交互设计应注意的细节当交互设计师完成一份自以为详尽的交互输出物,前端的开发结果总是不那么另人满意。交互会抱怨:为什么会做成这样呢,很多常识性的东西也会做错。显然因为领域不同,对“常识”的理解不尽相……对于可访问性设计师必知的7件事(上)可访问性(Accessibility)是用户体验设计中的重要一环,好的可访问性设计可以让各种用户更容易浏览和使用(电脑、手机、网页、UI等等),使得有障碍的用户更便捷地感知、理……设计师眼中的AppleWatch:交互新颖,仍有改进空间AppleWatch我已经上手有一阵了,但我的使用体验跟很多科技圈同行都不太一样我没有手表的母舰,配备iOS8。3的iPhone。我手头有一部无法和AppleWatch进行通信……关于可访问性设计师必知的7件事情(下)本文的作者JesseHausler,是一个在可访问性领域深耕12年的资深从业者。目前Jesse供职于Salesforce,作为首席可访问性设计专家,到现在已经有4个年头了。这篇……常见的Loading进度条动效形式在浏览网页、玩游戏、手机应用等场景,因为网速慢或是硬件差的关系,难免会遇上等待加载的情况,没人喜欢等待,耐心差的用户可能因为操作得不到及时反馈,直接选择放弃。正所谓细节决……教你设计一个顶尖的“联系我们”页面网站的每一个部分都很重要,你是否忽略了“联系我们”页面?来看看有什么设计这个页面的技巧吧。简化联系表格YummygumYummygum的联系页面很干净很简单,……设计师,你不是CEO,懂?【导读】本篇文章我想把所有的字都加粗,建议所有做设计相关的都可以看一看,PM也可以转给自己的射鸡湿帮助他们成长。作为一名想转为PM的美工,在思维上的转变才是最重要的;必须摆脱掉……Google相似图片搜索的原理概述上个月,Google把“相似图片搜索”正式放上了首页。你可以用一张图片,搜索互联网上所有与它相似的图片。点击搜索框中照相机的图标。一个对话框会出现。你输入网片……超全面的移动端尺寸基础知识科普指南初涉移动端设计和开发的同学们,基本都会在尺寸问题上纠结好一阵子才能摸到头绪。我也花了很长时间才弄明白,感觉有必要写一篇足够通俗易懂的教程来帮助大家。从原理说起,理清关于尺寸的所……UI设计师必收!同行总结可即刻上手的iOS规范参考最近一直在研究移动端的设计,不同于创意稿,侧重于想法,视觉传达,较少考虑开发成本,或者产品需求。要上线的设计稿需要严格的视觉规范,而非单个页面的展示,是一个整体、统一、成套的系……爱不释手的侧边栏!网站导航应该去一边玩儿!导航在网站设计中的重要性已经毋庸置疑,但重要不意味着它必须高调,安静与显眼兼具的导航才最符合用户的使用体验,而侧边导航恰巧同时满足了这两点。网站侧边导航的好坏与否很容易判断,主……
简短的职场的语录经典职场正能量的语录职场心灵鸡汤语录75条职场的语录职场的语录摘录30条常用职场正能量的语录简单的职场正能量的语录职场心灵鸡汤语录75条职场的语录经典职场的语录68条职场的语录45条简单的职场正能量的语录56条妈妈我想对你说榴莲熟过头了是什么样子行政终审判决申诉期间需要停止执行吗年五一能用学生证买火车票吗曾轶可机场事件你过了防尘口罩能防雾霾吗2020年高速公路江苏征地补偿标准是多少?盘点身体不同部位的美白食品智能养殖生猪行为研究及其应用如何抵御手脚冰凉长歌行孙思邈是谁孙思邈和长歌什么关系胰腺炎轻微疼痛怎么办

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界