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

欢迎文末点个在看!

(0)

相关推荐

  • NLP前沿预训练语言模型大赏

    预训练模型可以分为以下三个大类: 自回归模型 自动编码模型 序列到序列模型 什么是自回归模型(auto-regressive model):经典的语言建模任务,根据已读取文本内容预测下一个单词.比如T ...

  • 如何快速搭建智能人脸识别系统(附代码)

    重磅干货,第一时间送达 网络安全是现代社会最关心的问题之一,确保只有特定的人才能访问设备变得极其重要,这是我们的智能手机设有两级安全系统的主要原因之一.这是为了确保我们的隐私得到维护,只有真正的所有者 ...

  • 基于OpenCV的焊件缺陷检测

    重磅干货,第一时间送达 01. 简介 焊接缺陷是指焊接零件表面出现不规则.不连续的现象.焊接接头的缺陷可能会导致组件报废.维修成本高昂,在工作条件下的组件的性能显着下降,在极端情况下还会导致灾难性故障 ...

  • NLP预训练家族 | Transformer-XL及其进化XLNet

    NewBeeNLP 永远有料,永远有趣 194篇原创内容 公众号 最近又重新读了Transformer-XL和XLNet的论文和代码,又有很多新的感悟.其中,要想搞懂XLNet的同学一定要首先明白Tr ...

  • Transformer靠什么''基因'',得以闯入CV界秒杀CNN?

    CV(计算机视觉)领域一直是引领机器学习的弄潮儿.近年来更是因为Transformers模型的横空出世而掀起了一阵腥风血雨.小编今天就带大家初步认识一下这位初来乍到的CV当红炸子鸡- 本文主要介绍Tr ...

  • 深度学习基本概念|自然语言处理

    自然语言处理是神经网络的经典应用领域之一,所谓自然语言处理,就是让机器理解人类的语言,英文为Natural Language Processing, 简称NLP,是人工智能的一个重要方向,目前生活中已 ...

  • 【NLP实战】基于ALBERT的文本相似度计算

    实战是学习一门技术最好的方式,也是深入了解一门技术唯一的方式.因此,NLP专栏推出了实战专栏,让有兴趣的同学在看文章之余也可以自己动手试一试. ALBERT是一个比BERT要轻量,效果更好的模型,本篇 ...

  • 使用深度学习进行视频修剪

    介绍 在本教程中,我们将构建深度学习任务,自动修剪我们的视频使用标志!这样的应用程序可以让那些不擅长编辑视频的人们的生活变得更容易. 我们使用像"拇指朝上"和"拇指朝下& ...

  • 使用迁移学习和 TensorFlow 进行食品分类

    来源|本文经授权转载自深度学习与计算机视觉 摘要 在今天的报告中,我们将分析食品以预测它们是否可以食用.我们应用最先进的 迁移学习方法和 Tensorflow 框架来构建用于食品分类的机器学习模型. ...

  • 【年终总结】2019年有三AI做了什么,2020年我们要做什么?

    2019年终于倒计时了,在这一年里,我们平台成长了不少,今天来做一个年终总结. 文/编辑 | 言有三 有三AI是什么 我们公众号的主旨就是:聚焦于让大家能够系统性地完成AI各个领域所需的专业知识的学习 ...

  • 手把手教你解决90%的NLP问题

    作者:Emmanuel Ameisen 编译:ronghuaiyang 导读 利用机器学习方法来理解和利用文本,从最简单的到state-of-the-art,由浅入深,循序渐进. 文本数据到处都是 无 ...

  • 使用TensorFlow和OpenCV实现口罩检测

    重磅干货,第一时间送达 在这段艰难的疫情期间,我们决定建立一个非常简单和基本的卷积神经网络(CNN)模型,使用TensorFlow与Keras库和OpenCV来检测人们是否佩戴口罩. 图片来源于澳门图 ...

  • 预防疲劳驾驶系统原来这么简单!从零使用人工智能教你制作

    Keras,人脸识别,OpenCV和PIL的完整实战 在我们的生活中,因为疲劳驾驶而导致交通事故的案例举不胜举.对于每一个驾驶员来说开车的时候如果感觉到疲劳就需要立即找地方停下来,让身体得到适当的休息 ...