怎么在Colab上实现近200万图片的精准检索匹配

本篇文章为大家展示了怎么在Colab上实现近200万图片的精准检索匹配,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

OpenAI 同时发布了两个连接文本与图像的神经网络:DALL·E 和 CLIP。其中,DALL·E 可以基于文本直接生成图像,CLIP 能够完成图像与文本类别的匹配。这两个模型发布之后,机器学习社区出现了一些复现 DALL·E 模型的尝试,如开发者 Phil Wang 的 GitHub 项目 DALLE-pytorch,短短二十余天就收获了 1.9k star。

近日,又有开发者创建了一个利用 CLIP 模型搜索文本精准匹配图片的项目。该项目所有图片出自 Unsplash 数据集,大约有 200 万张,利用 CLIP 模型进行处理。项目既可以在给定的免费谷歌 Colab notebook 中运行,也可以在用户自己的机器上运行。

怎么在Colab上实现近200万图片的精准检索匹配


项目地址:https://github.com/haltakov/natural-language-image-search#two-dogs-playing-in-the-snow

在具体实现上,项目作者在 Colab Notebook 上将所有图片处理成了预计算特征向量,然后找到与自然语言搜索查询(即输入的文本)最匹配的图片。
项目作者提供了一些效果展示图,如输入搜索词条「"Two dogs playing in the snow"」,就会出现以下几幅图片:

怎么在Colab上实现近200万图片的精准检索匹配

摄自:Richard Burlton、Karl Anderson 和 Xuecheng Chen。


输入搜索词条「"The word love written on the wall"」,就会出现以下包含「love」的文本:

怎么在Colab上实现近200万图片的精准检索匹配

摄自:Genton Damian、Anna Rozwadowska 和 Jude Beck。
 


此外,你还可以选择搜索图片的数量,例如:通过修改「search_unslash(search_query, photo_features, photo_ids, 3)」,将该行中的 3 更改为想要的搜索结果数量。

如何实现?

谷歌 Colab notebook 上运行

在给定的 Colab 会话中进行首次搜索的步骤如下:

1. 首先需要进入 Colab 界面;

2. 登录谷歌账户,单击右上角的「S」按钮即可完成此操作。注意:注册谷歌账户会影响隐私,比如你的谷歌搜索历史记录会记录在谷歌帐户中;

3. 单击单元格中的某个位置(三角形除外),该行显示「search_query = "Two dogs playing in the snow"」;

4. 单击菜单「Runtime→Run before」,等待执行结束;

5. 找到读取(或最初读取)「search_query = "Two dogs playing in the snow"」这一行,将「 "Two dogs playing in the snow"」改变成你想要的查询。例如:「search_query = "A clock with gold-colored numbers on a black background"」;

6.(可选)查找读取(或最初读取)的行「search_unslash(search_query, photo_features, photo_ids, 3)」。将该行中的 3 更改为想要的搜索结果数量;

7. 单击最初读取「search_query = "Two dogs playing in the snow"」这一行左侧的三角形, 等待搜索结果。


Colab 界面地址:https://colab.research.google.com/github/haltakov/natural-language-image-search/blob/main/colab/unsplash-image-search.ipynb#scrollTo=xbym_cYJJH6v

在 Colab 会话中执行更多搜索,请参考上述步骤 5-7。在 Google Colab 会话后,可以选择注销谷歌帐户,因为登录谷歌帐户会影响隐私。

本机上运行
 

想要在本机上实现该功能,首先需要安装必要的依赖项,安装代码如下:

pip install -r requirements.txt

如果想要运行所有的代码,打开 Jupyter notebooks,按照以下编号顺序以及说明依次操作:

01-setup-clip.ipynb:设置环境,检查并准备 CLIP 代码;

02-download-unsplash-dataset.ipynb:从 Unsplash 数据集下载图片;

03-process-unsplash-dataset.ipynb:使用 CLIP 处理数据集中的所有图片;

04-search-image-dataset.ipynb:使用自然语言查询在数据集中检索图片;

05-search-image-api.ipynb:使用 Unsplash Search API 检索图片,CLIP 过滤搜索结果。


注意:只有精简版的 Unsplash 数据集是公开可用的。如果你想使用完整版,你需要申请(免费)访问权限;使用 Unsplash Search API 搜索图像不需要访问 Unsplash 数据集,但可能会产生糟糕的结果。

上述内容就是怎么在Colab上实现近200万图片的精准检索匹配,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/220052.html

(0)
上一篇 2022年1月2日 15:55
下一篇 2022年1月2日 15:55

相关推荐

发表回复

登录后才能评论