项目简介
本项目借助OpenAI的CLIP模型与PyTorch框架,打造了一个图像特征数据库,实现了通过文本描述来搜索图像的功能。CLIP模型利用对比学习匹配图像与文本,项目进一步拓展了中文文本支持,同时提供Gradio、Flask等多种接口,方便用户交互与部署。
项目的主要特性和功能
- 图像特征提取与数据库构建:利用CLIP模型提取图像特征并存储于CSV数据库,支持批量处理图像,可自动下载CLIP模型和中文文本模型文件。
- 文本搜索图像:用户能输入75字以内的文本描述搜索图像,支持中文文本描述,采用中文文本模型进行匹配。
- 多种接口支持:
- Gradio界面:提供可视化网页界面,用户可在网页输入文本查看搜索结果。
- Flask服务:将搜索功能封装成RESTful API,可通过HTTP POST请求调用。
- Gunicorn配置:支持多进程启动Flask服务,提升性能与稳定性。
- 模型微调:支持对模型进行微调,少量图片和描述也能训练以达满意效果。
安装使用步骤
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】