图片搜索如何实现 原理(以图搜图搜索引擎)

本文经授权转载自知乎,作者:李习华

https://zhuanlan.zhihu.com/p/65306548

当你看到一株未曾见过的植物,你可以打开百度APP,拍照搜索,找到相关信息;当你看到朋友穿了一件你特别喜欢的衣服,你也想买一件,你可以通过淘宝APP的拍立淘功能,找到商品;当你到达一个陌生的地方,你可以通过微信APP对着当地的街区或者建筑物拍一张照片,来定位你的详细位置。这背后都是强大的以图搜图技术

以图搜图技术发展了许多年,从早期以图搜图的精度不尽如人意,到后来基于以图搜图技术开发出非常多的改变用户行为和提升效率的应用,经历了不小于10年的发展,整体的技术方案、数据量级、工程架构都进行了多轮的迭代。当前,各个大厂都在基于以图搜图技术来提供更好的产品和服务。我们希望在这篇文章中对以图搜图技术做一个全面的总结,主要包含以下几个方面:

1. 以图搜图技术的通用框架;

2. 以图搜图技术迭代;

3. 以图搜图是工程+算法的结合,架构演进。

Part 1. 以图搜图技术的通用框架

在这一章,我们来介绍以图搜图技术的通用框架。在介绍以图搜图技术之前,我们来看任何一个搜索技术所拥有的基本组件。举个例子,我们需要到图书馆查找一本书,需要几个基本的要素:1. 图书馆(海量图书);2. 图书的分类、书名或者作者(在图书馆的编码体系下,这些信息的组合能够唯一表示这一本书);3. 图书馆的书需要按照一定的规律来布置(科目、难易程度、首字母、作者、年份等);在有了这些基本的要素之外,只要图书馆有这本书,我们就能够快速找到它;或者即便没有某一本具体的书,我们也能够查询到与这本书有着相近内容的书。

结合上面的例子,我们来看一个典型的以图搜图系统所拥有的基础框架

先来看offline部分,包括3个基本的要素:

01. 检索图片库:这就相当于上一个例子中的图书,我们需要有一个足够规模的图片库,比如淘宝的所有商品的图片集合,比如百度图片搜索中收集到的互联网图片数据集合。当然,这里我们介绍的是一个静态的图片库,在实际项目中,我们需要有能力来处理动态变化的图片数据库

02. 特征提取:这就相当于上一个例子中图书的作者、年份、科目等等,我们称为图片的特征。实际上,图片的任何统计量都可以作为图片的特征,甚至图像的像素值本身通过归一化之后也可以作为图片的特征。在实际中,我们使用图片的颜色分布、梯度变化统计量、纹理、BOW统计、底层/中层/高层语义特征等作为图片的特征,非常丰富。

03. 检索结构:检索结构的唯一目的就是让查找更快更准。简单的,一一对比是最简单的查询结构,最准,但是最慢;所以所有检索结构本质上都是效率和精度的平衡。常见的,我们可以对数据集进行聚类,把数据分成一堆一堆的,比对时先选择相似的堆,然后在堆内部再进行细致的比对。而分堆的理念又可以通过树结构、Hash结构、倒排索引、图结构等等来刻画。

再来看online部分,其中特征提取和offline的特征提取需要保持高度的一致性,所以实际中我们通常使用一个单独的特征服务器来提供特征提取服务。这里之所以将检索结构和检索引擎分开,主要是基于如下的考虑:检索引擎需要应对高并发等一些的工程方面的问题,所以本质上检索引擎更倾向于工程架构的优化,而检索结构更倾向于检索结构算法方面的优化;但实际上,二者是没办法完全拆分开的。

以图搜图技术本质上是寻找相似图片,但两张图片是否相似有非常多的维度:

因此在很多时候,以图搜图技术需要根据不同的使用场景来选择合适的技术方案,尤其是特征的选择。产品层面,也层出不穷,可以参考下面的几个链接:

The Best Image Search Engines on the Webhttps://www.lifewire.com/where-to-find-images-online-3482427The 7 Best Search Engines for Finding Free Imageshttps://www.sitepoint.com/7-best-search-engines-free-images/

Part 2. 以图搜图的技术迭代

这个部分我先打算介绍一下特征、检索引擎各自都经历了哪些迭代,然后在以不同时段典型的工业界的使用方案来介绍以图搜图技术代际的迭代。

特征层面:

简单的,图像的单通道、多通道的颜色直方图可以作为一个简单的特征;进一步颜色矩特征,图像中任何的颜色分布都可以通过它的矩来表示。另外需要强调的局部特征是SIFT特征

(参考:

https://blog.csdn.net/abcjennifer/article/details/7639681),SURF特征HOG特征等;当有了局部特征之后,我们需要对局部特征进行聚合,作为图像的全局表示;将多个局部特征矢量聚合成一个统一维度的矢量表示的方法有:BOW、VLAD、Fisher Vector等等。

深度学习技术兴起之后,基于深度学习的图像特征开始成为图像检索的主流。我们知道CNN网络具有很多不同程度对图像进行抽象的layer,较低的层得到的是图像的简单特征,而较高层得到的是图像的语义相关的特征,不同层的特征在检索层面精度有很大的区别,在Oxford Building数据集上,使用VGGNet进行简单的测试,得到了如下的统计结果。

(参考:

http://yongyuan.name/blog/layer-selection-and-finetune-for-cbir.html)

实际上,深度网络最后的FC层同样可以作为图像的特征表示,当使用FC作为特征时,网络训练时使用的label对检索的效果有较大的影响。理论上,label如果能够提供更多的细粒度的信息,则学习到的FC特征则更能够表达图像的细粒度特征

特征类型对检索效果影响很大;但特征的学习方式,尤其是引入度量学习的思路之后,即便是同一个网络的同一层特征,不同的训练方式对最后的精度也会有很大的影响

比如Class weighted conv features

(参考:

https://github.com/bikong2/retrieval-2017-cam)

分类loss和triplet loss结合

引入更多监督信息的学习:

以及通过KL散度来优化

其实通过不同的方式进行网络学习的优化方式还有很多,这里大致总结几个优化的大致方向

1. 引入更多的监督信息;

2. 不同程度、维度的attention(包括层、channel、类等等);

3. Triplet loss及其各种变种;

4. 不同的特征聚合方式。

检索引擎:

检索引擎方面,早期我们通过层次化的聚类来对数据分组,通过K-D Tree对数据进行划分,通过Hash对空间进行划分,通过倒排索引加速检索的效率,通过PQ量化对更大规模的数据进行二次方的划分。参考:

▫️ 图像检索:再叙ANN Search https://blog.csdn.net/qq_27245709/article/details/72393613▫️ 图像检索:基于内容的图像检索技术 https://yongyuan.name/blog/cbir-technique-summary.html▫️ Product Quantization for Nearest Neighbor Search论文理解https://blog.csdn.net/CHIERYU/article/details/50347735

层次化的聚类算法可以通过如下的图片来表示:

通过聚类来减少检索时比对的检索时间。K-D Tree和Hash请参考下面的图片。K-D Tree相对层次化聚类基本原理是一致的,不过聚类算法更多的是数据的划分,但树结构的层次化划分包含特征和数据的划分两方面。Hash方法,尤其是LSH(局部敏感哈希),则是同时在寻找特征的mapping和空间的划分。

PQ量化本质上是在特征和数据的两个层面对数据集进行量化,如下图所示,特征向量本身是16*8=128维,通过特征层面的划分,分成y1…y8总共8组特征;划分之后,对每一组特征在全数据集上进行聚类等量化手段,比如量化的长度是8bits的01向量。最终得到的是8*8bits的01向量,压缩比超高。

接下来,介绍两代不同的以图搜图技术

局部特征(如SIFT特征)+BOW+LSH的方案:

这种方案大致在2015年之前算是比较流行的框架,通常针对特殊的使用场景,在检索基础上可能还需要进行细粒度的精排序。这个方案在10亿以内的数据量级上非常适用,当然如果数量级更大,也是可以的,只是需要引入其他的检索结构。关于LSH,推荐使用一个开源的工具包FALCONN

https://github.com/FALCONN-LIB/FALCONN

CNN卷积特征+VLAD+PQ量化的方案:

这是目前比较主流的方案,卷积特征建议做多层特征的组合,PQ量化建议根据数据规模做密集的参数选择,推荐使用Facebook开源的工具包FAISS

https://github.com/facebookresearch/faiss

当然,卷积特征的学习方式的选择层面,需要根据实际拥有的数据的标签信息来决策。有一些基于弱监督学习的方案,也可以尝试。

Part 3. 以图搜图是工程+算法的结合

架构演进

在这里,我们介绍一个理想状态下的以图搜图架构,需要尝试去解决的几个问题:

1. 如何解决检索库动态增加的问题;

2. 如何解决全量的特征迭代的问题,也就是说query和database的特征需要同步;

3. 特征增强,在检索结构确定的情况下获得更好的检索效果;

4. 高并发低延迟。

以上只是一个简单的架构示意图,如果涉及到特征评价,检索结构评价,甚至其他的策略迭代等一系列的关于AB Test的需要,架构层面需要进行深度的优化。

到这里基本上对以图搜图技术从特征、检索结构、架构等层面进行了一个基本的介绍。其实工业界的以图搜图产品或者说引擎远比我写到的要复杂,如果有大家有兴趣,建议研究以下几个检索系统的演进:

阿里的拍立淘

百度的图片搜索

谷歌的图片搜索

Pinterest的商品搜索

-The End-

将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门技术社群以及将门创投基金。将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。

将门创新服务专注于使创新的技术落地于真正的应用场景,激活和实现全新的商业价值,服务于行业领先企业和技术创新型创业公司。

将门技术社群专注于帮助技术创新型的创业公司提供来自产、学、研、创领域的核心技术专家的技术分享和学习内容,使创新成为持续的核心竞争力。

将门创投基金专注于投资通过技术创新激活商业场景,实现商业价值的初创企业,关注技术领域包括机器智能、物联网、自然人机交互、企业计算。在三年的时间里,将门创投基金已经投资了包括量化派、码隆科技、禾赛科技、宽拓科技、杉数科技、迪英加科技等数十家具有高成长潜力的技术型创业公司。

如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”: bp@thejiangmen.com

点击右上角,把文章朋友圈

将门创投

让创新获得认可!

微信:thejiangmen

bp@thejiangmen.com

点击“❀在看”,让更多朋友们看到吧~

版权声明:本文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,不拥有所有权,不承担相关法律责任,转载请注明出处。本文地址:https://www.sip-server.cn/173967.html

上一篇 2023年6月24日 下午3:33
下一篇 2023年8月10日 上午10:44

相关推荐

  • 博客怎么赚钱(博客怎么样)

    您是经验丰富的博主吗?还是您只是想了解博客世界的新手?无论您站在什么立场,我们都有一个共同的目标:写出更好的博文。所以这里有一些关于如何通过 博客的伟大之处在于它在不断发展。总有新的提示和技巧可以帮助您将博客提升到一个新的水平。 什么是博客? 博客的核心是与世界分享您的想法和经验。这是一种与志趣相投的人联系的方式,也是分享您独特的声音和观点的平台。 为什么写…

    创业分享 2023年3月15日
    10500
  • 微信怎么解封账号-微信登不上去怎么办

    微信被限制了怎么解除限制?当出现了限制的提示时,往往伴随着被封号/限制的处罚,给生活和工作带来极大的影响,今天我们来讲一讲相关知识与解决方法,希望能够帮助到大家! 当出现问题时,不要惊慌和抱怨,先仔细的阅读系统限制的公告,根据公告中的相关信息先确认限制的类型。 常见的限制分为两类:“限制登录”和“限制功能”.所谓的限制登录是指账号无法登录,而限制功能是指号可…

    2023年2月2日
    8800
  • 养什么鸽子最赚钱(农村养鸽子挣钱吗)

    文/大海棠 现在社会发展的速度相信大家都是看在眼里的,除了城市,农村的发展速度其实是更加的迅速的,很多地区都逐渐摆脱贫穷,温饱问题早已解决,朝着”小康村”的方向发展。现在农村能有这么好的面貌,一是得益于有关部门对农村经济发展的大力支持,二是农民通过外出打工、创业等自身的努力,最终使得很多村子越来越好。 时代确实也是在不断进步的,21世…

    2023年3月7日 创业分享
    11100
  • 微博炫富事件(网上炫富的好处与坏处)

    最近微博上又掀起了一波“炫富挑战”热 大家纷纷脸朝地“扑街” 看似“一不小心”摔出了“全部家当” 实际上是在高调炫富 不信你看 你省吃俭用几个月买的奢侈品 人家直接摔了一地 除了网友 还有很多媒体和机构 纷纷晒出了行业的正能量 让人眼前一亮 but~ 不管炫富挑战怎么进行 都是为了博大家一笑 只是小编在这里要提醒各位看官 有些人炫富 可不单单是为了娱乐 而是…

    创业分享 2023年3月17日
    7700
  • 适合创业的小项目-2020年适合大学生创业的项目

    疫情期间,大量公司、厂房、店铺倒闭,很多人也因此失去了工作。但是,现代社会是一个多元化的社会,2023年,作为“穷人”和普通人的我们,想要谋取一份工作或者创业机会,也并非不可能,前提在于我们需要好好谋划。下面的这些创业项目投资小,而且不需要多大的投资,但是回报却是稳稳的。 1、出摊卖小吃。小吃摊不是小吃店,可以减少租金的投入。但关键是找到适合自己的经营品。因…

    2023年2月1日
    12500
  • 乔布斯死亡原因(乔布斯癌症治好了)

    一提到苹果手机,人们都会想到乔布斯。这周五(2月24日)是苹果公司创始人乔布斯的生日。众所周知,乔布斯患癌8年后去世,当时年仅56岁。很多人以为他得的是恶性胰腺癌,然后猜想肯定是因为他很有钱,所以才能活这么久,毕竟胰腺癌的平均生存期还不到1年。 其实乔布斯当年的癌症,很多人都搞错了。他得的不是胰腺癌,而是胰腺神经内分泌瘤(缩写为PNET),是一类恶性程度较低…

    2023年3月21日 创业分享
    8900
  • 网站首页被k(网站被k查询)

    大家好,我是黄大司,今天我们讲一下,网站被K的问题。 网站被K是什么意思呢?K是英文单词Kill(杀)的缩写,网站被K,意思就是网站被搜索引擎封杀了,网站被K对于站长和公司来说,都会造成比较大的流量损失,网站被K一般会出现这样一些情况:1、全站被K;2、首页被K;3、内页被K;4、快照停滞;5、快照回档;6、不放出收录;7、site网站不在首页;8、蜘蛛不抓…

    创业分享 2023年3月19日
    8200
  • 博客优化网站seo怎么写文章(文思泉什么意思)

    本篇文章我们将分享6个SEO技巧,帮助你的营销团队能更快速编写吻合优质SEO结构的内容文章。 本文节选自2022年SKUKING跨境电商数字化赋能沙龙撷英分享,根据SKUKING跨境电商研究中心编辑整理。粉丝朋友可以「点击头像,进入主页」查看往期内容中SKUKING的更多分享,获取完整行业洞察报告等资料。 当你发布的博客文章使用SEO技巧、执行策略性的撰写方…

    2023年3月14日 创业分享
    7400
  • 女性创业项目(有没有适合女性创业的项目)

    当今社会,女性的压力越来越大,不仅要和男性一样外出打拼,有时还需要背负沉重的家庭责任。但有时候压力就是动力,越来越多的女性开始走上创业的道路,期望通过创业来实现自己的人生价值。那么女性创业该选择什么项目呢?投资开店就来和大家分享四个适合女性创业的新兴创业项目。 第一、贩卖灌装氧气。慈善名人陈光标可以卖新鲜空气,那女性创业者选择贩卖氧气作为创业项目同样可行。现…

    2023年2月12日
    8900