六安沧州西安三亚宝鸡菏泽
投稿投诉
菏泽德阳
山西湖州
宝鸡上海
茂名内江
三亚信阳
长春北海
西安安徽
黄石烟台
沧州湛江
肇庆鹤壁
六安韶关
成都钦州

相似图片搜索的原理概述

  上个月,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越少,就是越相似的图片。
  作者:阮一峰

如何制作炸鸡在本文中:炸鸡排南方炸鸡传统炸鸡炸童子鸡酥炸鸡给炸鸡保温炸鸡是非常受欢迎的食物。因为它非常美味。作为野餐食物或冷板小吃,无论刚刚炸好的还是冷的都很好吃。炸鸡是如此受欢迎,……这些肮脏的地方你千万别去生活中哪些地方最脏,哪些位置对健康最不利?美国近日撰文为读者总结如下:公共卫生间的最脏厕位中间的厕位一项研究表明,人们在上卫生间时,往往喜欢选择中间的厕位,因此,中……农村井水有虫用什么处理我家乡下自己挖的井,很多年了,一年用的,最近发现打上来的水中有小虫,灰兮兮的,加的漂白粉啥个全么用,不晓得哪能办在,上网查查么没有查出啥名堂来,特向伟大的090求助,看看大家有……自然灾害谣言有哪些生活中一些不务实业的人们喜欢乱传谣言,传言一些小事还可以,但是关于自然灾害方面的谣言就严重了,那么自然灾害谣言有哪些呢?接下来小编为您介绍。谣言,指的是没有相应事实基础,……洁厕剂气味对人体有哪些危害洁厕剂这种清洁厂品在熟悉不过,很多人对于洁厕剂都很了解,那么洁厕剂气味对人体有哪些危害?洁厕剂其实含有很多化学成分,具体本站给大家讲解一下。洁厕剂有一定的危害,但危害不大……蟑螂杀虫剂对人体有害吗很多杀虫剂都含有对人体有害的灭虫成分,经常接触可引起头晕头疼甚至神经异常,婴儿房里绝对不能使用。即便在客厅或其他房间,只要是婴幼儿可能活动的地方,也应注意使用方法。最好婴幼儿不……儿童提高免疫力可以预防湿疹吗湿疹发病原因复杂,与体质、神经精神状态、内分泌、血液循环、消化系统、代谢营养、内脏功能改变以及各种内外致敏病原有关。那么儿童提高免疫力可以预防湿疹吗?下面本站就来讲讲相关的儿童……晨跑后能喝凉水吗晨跑运动后应稍事休息,再喝温水,并且一次也不宜喝得太多。最好喝点淡盐水,这样既可解渴,又能补充体内因排汗而丢失的盐分,那我们该如何科学晨跑呢?晨跑的时间一般选择在太阳刚露头的时……防火门隔音效果咋样防火门在任何时候都是很重要的装修产品,那么防火门隔音效果咋样?防火门是有隔音效果,本站的小编给大家详细的讲解一下。隔音防火门是隔音防火门选用优质普通面板制作的建筑用品,门……早产儿呼吸暂停会怎样早产儿由于先天不足,各项器官发育不成熟,所以很容易出现并发症,其中呼吸暂停就是一个较常见的危急症状。宝宝出现呼吸暂停往往会吓坏爸爸妈妈,早产儿呼吸暂停会怎样?早产儿如何度过危险……硼氢化钾性质硼氢化钠可用作醛类、酮类和酰氯类的还原剂,制造硼氢化钾的中间体,制造乙硼烷和其他高能燃料的原料,用作塑料工业的发泡剂等,那么硼氢化钾性质有哪些呢?性质:白色疏松粉末或晶体……透支话费可以用流量吗手机流量是指手机上网产生的流量数据,用手机打开软件或进行互联网操作时,会和服务器之间交换数据,手机流量就是指这数据的大小。那么透支话费可以用流量吗?下面就一起随本站小编来了解一……
正史上真实的袁绍是怎样一个人说到袁绍其实很多网友都觉得这个人有点草包啊,其实小编不这么觉得,因为这个人其实不仅仅不草包,而且也算得上是一位枭雄了,只所以被人误解了就是因为三国演义看多了,那么在真正的历史上……不自量力曾经有一只蚂蚁和一头大象,他们是好朋友,经常再一起玩耍,一起吃饭,一起洗澡。有一天,蚂蚁与大象之间有了一点误会,大象就去追蚂蚁,蚂蚁撒腿就跑,跑啊跑啊,跑到一堆沙前,蚂蚁……马王堆汉代女尸不腐之谜肌肤有弹性千年不腐考古学家在湖南长沙马王堆的汉墓中发现,一具汉代女尸,令人惊叹的是马王堆女尸历经千年不腐。比砀山女尸保存的还好,由此掀起一场关于汉代女尸不腐之谜的讨论,据说女尸被发现时棺木周围被……二手烟爸爸一进家门,儿子就大喊:爸爸,快。。快,我受不了了。爸爸莫名其妙:你怎么受不了了?儿子说:烟瘾犯了。。爸爸一听,啪的一下:你竟敢抽烟?儿子委屈地:我没……世界上著名灵异歌曲第十三双眼睛听完自杀而死第十三双眼睛是世界上著名灵异歌曲,和《黑色星期五》《忏魂曲》并称为世界三大禁曲,相传《第十三双眼睛》起源于一个非洲古老的原始部落中,只要有人听过这首歌就会发疯自杀而死,一位音乐……千岛湖水下藏古城在碧波荡漾的千岛湖水下,竟然藏着两座千年古城狮城(原遂安县城)和贺城(原淳安县城)。这类似《盗墓笔记》中的情节,就发生在我们身边。许多人知道,狮城沉入千岛湖底,缘起于19……黑洞的成长速度或超过预期向外喷流神秘物质据媒体报道,黑洞是宇宙最为神秘的天体之一。近十多年来主流研究模型及理论认为,在黑洞质量增加过程中,每个阶段吸积气体数量都是一个固定的值,有效地维持着黑洞质量与银河系质量之间的比……四十斑啄果鸟澳洲特有的小体型鸟类体重仅克四十斑啄果鸟是一种澳洲的特有鸟种,它常年栖息在桉树林之中,建造固定的巢穴之后,就会在此长期的生活,体型极为迷你,体长只有9厘米左右,体重更是相当于23枚硬币的总重量,仅仅只有1……矿泉水开封后能放多久在冰箱最多放两天常温一天一般矿泉水开封了之后一天就必须喝完掉,在常温下只能够放置一天,如果放在冰箱里可以放最多两天。没有开封的矿泉水可以放置一年之久,但要是在较为阴凉的地方。开过封的矿泉水和空气接触,……美味小吃裹面鸡叉骨怎么做如何炸鸡叉骨aclasstaghrefwiki10633IHAZTLH1。html炸鸡a叉最受年轻人和小孩们喜欢了,下面把炸裹面鸡叉骨的做法与步骤分享给大家参考。工具材料鸡叉骨……集团公司领导班子成员廉洁报告通过学习党的十九大报告、习近平总书记的重要讲话及《中国共产党员干部廉洁从政若干准则》,我深刻认识到新形势下大力弘扬求真务实精神的重要性,认识到为民、务实、清廉的重要性,认识到廉……安全生产打非治违工作总结打非治违动真格多措并举保安全?xml:namespaceprefixonsurn:schemasmicrosoftcom:office:office安全生产打非治违工作总……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网