# pest-image-search 病虫害以图搜图 基于 CLIP 视觉模型的病虫害图片相似度搜索应用。上传病虫害患处图片,系统自动提取视觉特征并检索知识库中最相似的病虫害类型,提供症状描述与防治建议。 ## 功能特性 - 🖼️ 支持上传本地图片、输入图片 URL、选择示例图片三种查询方式 - 🧠 基于 `openai/clip-vit-base-patch32` 本地视觉模型提取图像特征 - 📊 相似度可视化条形图 - 🏷️ 覆盖水稻、小麦、玉米、大豆、番茄、黄瓜等常见作物的病虫害知识库 - 💡 智能推荐最可能的病虫害及防治方案 ## 技术栈 - Python 3.14+ - Streamlit 1.52.1 - Plotly 6.5.0 - Transformers 4.51.3 + PyTorch 2.7.0 (CLIP 模型) - Pillow、NumPy、Requests ## 快速开始 ### 使用 uv(推荐) ```bash # 安装依赖 uv sync # 运行应用 uv run streamlit run app.py ``` ### 使用 just ```bash # 查看所有可用命令 just --list # 运行应用 just run # 代码格式化 just format # 代码检查 just check ``` ## Docker 部署 ```bash # 构建镜像 docker build -t pest-image-search . # 运行容器 docker run -p 8000:8000 pest-image-search ``` ## 项目结构 ``` pest-image-search/ ├── app.py # 主应用文件(Streamlit) ├── main.py # 入口文件 ├── pyproject.toml # 项目配置 ├── justfile # 任务自动化 ├── Dockerfile # Docker 配置 └── README.md # 项目文档 ``` ## 使用说明 1. 首次启动时会自动下载 CLIP 模型(约 300MB),请保持网络畅通 2. 加载完成后自动构建病虫害图片索引 3. 上传或选择查询图片后点击「开始搜索」,即可获得 Top-K 相似病虫害结果 4. 结果仅供参考,实际防治请结合田间情况或咨询农业专家 ## 许可证 MIT License