CV君作者

CV+NLP,使用tf.Keras构建图像搜索引擎

今天跟大家推荐一个刚刚开源的使用tf.Keras深度学习技术构建图像搜索引擎的开源项目,对于了解基于文本查询和基于图像查询图像搜索都很有价值。

项目地址:

https://github.com/CVxTz/image_search_engine

项目开发者为法国FORTIA Financial Solutions公司的数据科学家Youness MANSAR。

基于文本查询和基于图像实例进行图像搜索图像检索的两种主要方式,面对仅有描述文本的弱监督信息的海量互联网图像,如何建立两者之间的关系,同时实现上述两种图像检索方法,是很具有实用价值的技术。

作者在该项目中构建了两种模型:

1. CV模型:ImageNet上预训练的Resnet50 + GlobalMaxpooling2D,用于实现图像信息编码;

2. NLP模型:GRU+GlobalMaxpooling1D,用于实现文本信息编码;



作者设计了一个整体模型,将图像信息编码和与之对应的文本信息编码结合起来,使其欧式距离尽量靠近,而图像和文本信息不对应的数据,使他们得到的编码欧式距离尽可能远离。这就是作者设计的Loss的核心思想。


在测试的使用:

1. 使用文本查询时,使用NLP模型将文本映射到编码空间,寻找与其距离接近的图像编码,进而索引出近似图像;

2. 使用图像查询时,使用CV模型将图像映射到图像编码空间,直接比较图像间的编码信息欧式距离,进而索引出近似图像。

作者使用了50万幅电子商务场景下的服饰图像和对应描述进行实验。

http://jmcauley.ucsd.edu/data/amazon/ 

下图展示了,作者将训练得到的模型两种编码信息降维到2维的可视化结果(使用TSNE):

蓝色代表图像编码信息,红色代表文本编码信息,绿色连线代表他们是一对一的关系。连线方向很一致,表明作者设计的模型很好的实现了相似图像的聚拢、图像和文本关系的关联。

下图为使用文本查询的结果:


返回的结果还是很明显是强相关的。

下图为使用图像查询的结果:


检索出得结果,款式和类别都是正确的,证明模型的确很有效。

这个项目还是很有意思的,将CV和NLP联系了起来,利用了互联网上常见的数据信息,属于自监督学习的范畴,实现了还不错的文本和图像商品检索效果。

感谢作者开源,希望对你有帮助!

项目地址:

https://github.com/CVxTz/image_search_engine

我爱计算机视觉
我爱计算机视觉

关注计算机视觉与机器学习技术的最前沿,“有价值有深度”,分享开源技术与最新论文解读,传播计算机视觉与机器学习技术的业内最佳实践。

理论图像检索NLP计算机视觉
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

图像检索技术

图像检索系统是用于从大型数字图像数据库浏览、搜索和检索图像的计算机系统。 大多数传统和常见的图像检索方法利用向图像添加诸如字幕、关键字或描述之类的元数据的一些方法,以便可以对注释词执行检索。 手动图像注释耗时,费力且昂贵; 为了解决这个问题,人们已经对自动图像标注进行了大量研究。

图像搜索技术

图像搜索是通过搜索图像文本或者视觉特征,为用户提供互联网上相关图像资料检索服务的专业搜索引擎系统,是搜索引擎的一种细分。图像搜索方法一般有两种:通过输入与图片名称或内容相似的关键字来进行检索;或者通过上传与搜索结果相似的图片或图片URL进行搜索。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

自监督学习技术

一个例子中的内容特别多,而用一个例子做一个任务,就等于把其他的内容浪费了,因此我们需要从一个样本中找出多个任务。比如说遮挡图片的一个特定部分,用没遮挡部分来猜遮挡的部分是一个任务。那么通过遮挡不同的部分,就可以用一个样本完成不同任务。Yann Lecun描述的这个方法被业界称作「自监督学习」

推荐文章
暂无评论
暂无评论~