Press "Enter" to skip to content

使用Keras构建深度图像搜索引擎

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

动机

 

想象一下,如果有数十万到数百万张图像的数据集,却没有描述每张图像内容的元数据。我们如何建立一个系统,能够找到这些图像的子集来更好地回答用户的搜索查询?

 

我们基本上需要的是一个搜索引擎,它能够根据图像与搜索查询的对应程度对图像结果进行排序,可以用一种自然语言表示,,也可以用其他查询图像表示。

 

我们将在本文中解决问题的方法是训练一个深度神经模型,该模型学习任何输入图像和文本的固定长度表示形式(或嵌入形式),使得如果文本-图像或图像-图像是“相似的”,则他们在欧氏空间中接近,。

 

数据集:

 

我找不到足够大的搜索结果排名数据集,但我能够得到这个数据集:

 

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

 

它将电子商务项目的图像链接到它们的标题和描述。我们将使用这些元数据作为监督源来学习有意义的联合文本-图像表示。为了管理计算和存储成本,这些实验仅限于时尚(服装、鞋子和珠宝)物品和50万张图像。

 

问题设置:

 

我们的数据集将每个图像与用自然语言编写的描述链接起来。因此,我们定义了一个任务,在该任务中,我们要学习图像和文本的固定长度的联合表示,以便每个图像表示都接近其描述的表示。

:

 

该模型有3个输入:(即锚点)、图像标题与描述(即正例)和第三个输入是一些随机采样的文本(即负例)。

 

然后定义两个子模型:

图像编码器:Resnet50预训练的ImageNet+GlobalMaxpooling2D
文本编码器:GRU+GlobalMaxpooling1D

图像子模型产生锚点 E_a 的嵌入,文本子模型输出正标题和描述 E_p 的嵌入和负例文本 E_n 的嵌入。

 

然后,我们通过优化以下损失函数进行训练:

 

L = max( d(E_a, E_p)-d(E_a, E_n)+alpha, 0)

 

其中d为欧氏距离,alpha为超参数,在本实验中为0.4。

 

基本上,这种损失允许做的是使d( E_a , E_p )变小,使d( E_a , E_n )变大,这样每个图像的嵌入就接近于它的描述的嵌入,而远离随机文本的嵌入。

 

可视化结果:

 

一旦我们学习了图像嵌入模型和文本嵌入模型,我们就可以通过使用tsne (https://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html)将它们投影到二维空间中来实现可视化。

 

测试图像及其对应的文本描述用绿线连接

从图中可以看出,通常在嵌入空间中,图像及其对应的描述是接近的。考虑到使用的训练损失,这是我们期望的。

 

文字图片搜索:

 

在这里,我们使用几个文本查询示例来在一组70,000张图像中搜索最佳匹配。我们计算查询的文本嵌入,然后计算集合中每个图像的嵌入。我们最终在嵌入空间中选择最接近查询的前9张图像。

这些例子表明,嵌入模型能够学习图像的有用表示形式和简单单词组成的嵌入。

 

图像搜索:

 

在这里,我们将使用图像作为查询,然后在包含70,000张图像的数据库中搜索与之最相似的示例。排序是由每对图像在嵌入空间内的欧氏距离决定的。

结果表明,生成的嵌入是图像的高级表示,它捕获了所表示对象的最重要特征,而不受方向、光照或局部细节的过度影响,也没有经过明确的训练。

 

结论:

 

在这个项目中,我们研究了机器学习模块,它允许我们构建一个基于关键字和图像的搜索引擎,应用于图像集合。其基本思想是学习一个有意义的文本和图像的联合嵌入函数,然后利用嵌入空间中项之间的距离对搜索结果进行排序。

 

参考文献:

 

– Large Scale Online Learning of Image Similarity Through Ranking

 

– Ups and downs: Modeling the visual evolution of fashion trends with one-class collaborative filtering

 

– https://github.com/KinWaiCheuk/Triplet-net-/blob/master/Triplet%20NN%20Test%20on%20MNIST.ipynb

 

代码:

 

重现结果 => https://github.com/CVxTz/image_search_engine

 

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2020/01/09/%e4%bd%bf%e7%94%a8keras%e6%9e%84%e5%bb%ba%e6%b7%b1%e5%ba%a6%e5%9b%be%e5%83%8f%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e/

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注