littlebot
Published on 2025-04-07 / 0 Visits
0

【源码】基于CLIP和PyTorch的图像特征数据库与文本搜索系统

项目简介

本项目借助OpenAI的CLIP模型与PyTorch框架,打造了一个图像特征数据库,实现了通过文本描述来搜索图像的功能。CLIP模型利用对比学习匹配图像与文本,项目进一步拓展了中文文本支持,同时提供Gradio、Flask等多种接口,方便用户交互与部署。

项目的主要特性和功能

  1. 图像特征提取与数据库构建:利用CLIP模型提取图像特征并存储于CSV数据库,支持批量处理图像,可自动下载CLIP模型和中文文本模型文件。
  2. 文本搜索图像:用户能输入75字以内的文本描述搜索图像,支持中文文本描述,采用中文文本模型进行匹配。
  3. 多种接口支持
    • Gradio界面:提供可视化网页界面,用户可在网页输入文本查看搜索结果。
    • Flask服务:将搜索功能封装成RESTful API,可通过HTTP POST请求调用。
    • Gunicorn配置:支持多进程启动Flask服务,提升性能与稳定性。
  4. 模型微调:支持对模型进行微调,少量图片和描述也能训练以达满意效果。

安装使用步骤

1. 环境准备

确保已安装以下依赖库: bash pip install ftfy regex tqdm transformers -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 下载模型文件

首次运行代码会自动下载CLIP模型和中文文本模型文件到本地用户目录(约2.2G)。也可单独下载: - CLIP模型(890M): bash wget https://openaipublic.azureedge.net/clip/models/b8cca3fd41ae0c99ba7e8951adf17d267cdb84cd88be6f7c2e0eca1737a03836/ViT-L-14.pt - 中文文本模型(1.3G): bash sudo apt-get install git-lfs git lfs install git clone https://huggingface.co/IDEA-CCNL/Taiyi-CLIP-Roberta-large-326M-Chinese

3. 构建图像特征数据库

将数据库图片放入image_database文件夹,运行以下脚本生成特征数据库: bash python database_prepare.py

4. 使用文本搜索图像

text中输入文本,运行以下脚本进行搜索: bash python predict.py

5. 启动Gradio界面

运行以下脚本启动Gradio可视化界面: bash python gradio_start.py

6. 启动Flask服务

运行以下脚本启动Flask服务: bash python flask_start.py

7. 使用Gunicorn多进程启动Flask服务

使用Gunicorn多进程启动Flask服务: bash gunicorn -c gunicorn_config.py flask_start:app

8. 模型微调

运行以下脚本对模型进行微调: bash python run.py

通过上述步骤,可快速搭建并使用本项目的图像特征数据库与文本搜索系统。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】