图片搜索的原理

作者: , 共 1272 字

Google 新推出了图片搜索,可直接上传图片(或者用图片链接)搜索网络上的相似图片,例子。估计还没多少人意识到,这玩意儿是人肉搜索的大杀器,以后大家还是少上传私人照片到公开网络。

阮一峰介绍了一个简单的图片搜索原理,可分为下面几步:

  1. 缩小尺寸。将图片缩小到 8x8 的尺寸,总共 64 个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。
  2. 简化色彩。将缩小后的图片,转为 64 级灰度。也就是说,所有像素点总共只有 64 种颜色。
  3. 计算平均值。计算所有 64 个像素的灰度平均值。
  4. 比较像素的灰度。将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为 1 ;小于平均值,记为 0。
  5. 计算哈希值。将上一步的比较结果,组合在一起,就构成了一个 64 位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。

这种方法对于寻找一模一样的图片是有效的,但并不能够去搜索「相似」的照片,也不能局部搜索,比如从一个人的单人照找到这个人与别人的合影。这些 Google Images 都能做到。

Google 的算法,其官方描述为:

When you upload an image to Search by Image, the algorithms analyze the content of the image and break it down into smaller pieces called 「features」. These features try to capture specific, distinct characteristics of the image - like textures, colors, and shapes. Features and their geometric configuration represent the computer』s understanding of what the image looks like.

大意是说在 Google 眼里,图片并不是一个由像素点构成点阵,而是一些「features",包括形状、质地和颜色块。图片之间的比较,是直接去比较图片里的线条等。官方文档里有一个视频(在 Youtube 上)动态地描述了计算机是如何看图片的。

早在 2008 年, Google 公布了一篇图片搜索的论文(PDF 版),和文本搜索的思路是一样的:

  • 对于每张图片,抽取其特征。这和文本搜索对于网页进行分词类似。
  • 对于两张图片,其相关性定义为其特征的相似度。这和文本搜索里的文本相关性也是差不多的。
  • 图片一样有 image rank。文本搜索中的 page rank 依靠文本之间的超链接。图片之间并不存在这样的超链接, image rank 主要依靠图片之间的相似性(两张图片相似,便认为它们之间存在超链接)。具有更多相似图片的图片,其 image rank 更高一些。

Q. E. D.

类似文章:
相似度: 0.086
碎碎念 » 谣言
不知道最初来源于哪里,这个数字我最早是从李笑来那里看到的,我看完之后随便搜了几个数字,觉得结果也大同小异,心想为何笑来突然关注这个数字。后来才发现网上被传得到处都是,包括我的老同学也参与了,最后发现其根源是下面这条「新闻」
三体里有不少让人印象深刻的情节,但维度攻击是其中的佼佼者。
压力测试(或情景分析),是指一个组合在特定场合下的损失程度。在这个场景下,我们会假设某些因子的走势,然后计算组合当这些因子变动时所造成的损失。比如,我们可以假设利率曲线上移 100BP ,从而导致债券价格下跌造成损失。对于股票,通常假设指数的跌幅,然后通过股票与指数之间的关系(通常使用 Beta )来确定股票的损失。