使用 CLIP 和 Streamlit 在 Python 中创建图像搜索应用程序

Google Photos 等应用程序可以使用文本查询搜索手机上的图像。值得注意的是,该应用程序不需要您根据图像的内容来标记图像。例如,您可以在 Google 相册应用中搜索猫或汤,并获得相关结果,尽管您的图像缺少文字描述。

在这里插入图片描述
该应用程序如何做到这一点?此类应用程序了解场景的语义描述与场景本身的图像内容之间的联系。在这篇博客中,我将演示如何使用 Python 编写自己的图像搜索应用程序。如果您想快速搜索本地计算机上的图像,但出于隐私问题而不将文件上传到标准服务,这对您很有用。

我们将利用一个名为 CLIP 的预训练机器学习模型,该模型已经理解我们需要的联合文本/图像表示。我们还将利用 Streamlit 作为应用程序的前端。

CLIP

对比语言-图像预训练 (CLIP) 是一种流行的文本/图像多模态模型,基于 Radford 等人 (2021) 的论文。CLIP 模型是根据从互联网上获得的 4 亿对文本图像示例进行训练的。因此,该模型理解各种场景的语义方面。对于我们的应用程序,我们将使用预训练模型将文本搜索词与图像数据库进行匹配。

Streamlit

Streamlit 是一种流行的 Python 框架,旨在开发机器学习应用程序。Streamlit 主要处理应用程序开发的美学设计元素,这使我们能够主要关注机器学习方面。

应用程序开发

该应用程序由两个脚本组成:

get_embeddings.py:在此脚本中,我们使用 CLIP 模型图像编码器将图像编码为嵌入。

猜你喜欢

转载自blog.csdn.net/iCloudEnd/article/details/132881770