项目介绍:photo-similarity-search
photo-similarity-search 是一个功能强大的照片相似性搜索引擎,旨在通过基于文本描述的视觉相似性来查找图片。这个项目由 @harperreed 创建,依赖于 CLIP(对比语言-图像预训练)模型。通过这个引擎,用户可以轻松地找到与特定文本描述相符的图片。
功能特色
- 快速高效的图片搜索:利用 CLIP 模型,系统能迅速找到相似图片。
- Apple Silicon 专属:该程序仅在 Apple Silicon(MLX)设备上运行。
- 持久化存储:使用 SQLite 和 Chroma 存储图片嵌入信息。
- 用户友好的 Web 界面:提供一个便捷的网页接口,便于用户互动和探索。
- 安全的图像处理:确保图像在搜索和使用过程中的安全。
- 日志记录与监控:通过性能分析提升系统效率。
- 可配置的环境:通过环境变量轻松调整程序设置。
仓库结构
photo-similarity-search 项目的文件结构如下:
embed-photos/
├── README.md
├── generate_embeddings.py
├── requirements.txt
├── start_web.py
└── templates
├── README.md
├── base.html
├── display_image.html
├── index.html
├── output.txt
└── query_results.html
generate_embeddings.py
:生成 CLIP 模型的图像嵌入脚本。requirements.txt
:所需的 Python 依赖列表。start_web.py
:用于启动照片相似性搜索的 Flask 网络应用程序。templates/
:包含用于网页界面的 HTML 模板。
快速开始
-
克隆项目仓库:
git clone https://github.com/harperreed/photo-similarity-search.git
-
安装必要的依赖:
pip install -r requirements.txt
-
配置应用程序:通过
.env
文件设置必要的环境变量。 -
生成图像嵌入:
python generate_embeddings.py
-
启动 web 应用程序:
python start_web.py
-
打开您的网页浏览器,访问
http://localhost:5000
,开始探索照片相似性搜索功能!
待办事项
- 使用 siglip 替代 clip
- 增加更稳健的配置选项
- 使 mlx 成为可选功能
致谢
photo-similarity-search 项目是在 Apple 的贡献(MLX)、CLIP 模型以及众多开源库的基础上构建的。特别感谢这些项目的作者和贡献者们的努力。
祝大家搜索愉快!🔍✨