# 图片向量学习 + 相似图片搜索系统

## 项目目标
构建一个能够从图片集中提取特征向量，并通过查询图片返回最相似图片的系统。

## 技术栈（请严格使用以下方案）
- 语言：Python 3.14.3
- 语言：PHP 7
- 深度学习框架：PyTorch
- 预训练模型：CLIP ViT-B/32
- 向量存储：pgsql vector
- Web 接口：PHP 提供上传查询图片的简单页面

## 功能要求
1. **特征提取脚本** `extract.py`
   - 遍历指定文件夹（如 `./images/`）中的所有图片（支持 jpg, png, jpeg）
   - 提取每张图片的特征向量（归一化后）
   - 将图片路径与向量保存到本地文件（如 `features.npy` 和 `paths.txt` 或一个 `.pkl` 文件）
   
## 图片学习
{
    code: 0,
    src: ‘YIPARTS’,
    src_id: ‘YIPARTS的ID’,
    brand: “OE”,
    number: “11115-13030”.
    partname_cn: “气缸垫/发动机垫片及缸盖”,
    partname_en: “Cylinder Head Gasket”,
    url:”https://www.yiparts.com/cn/product/americandata/14108261”, //宜配对外访问网址
    images: [
        {
            url: “http://192.168.1.67:84/Admin/index.php/Product/ProductSet?Pid=324”,
            type: “INIT”,
            last: “2025-04-29 10:36:03”,
        },
        {
            url: “http://192.168.1.67:84/Admin/index.php/Product/ShowProPic?Pic=000001/24/553f391d6145f.jpg”,
            type: “LINE”,
            last: “2025-04-29 10:36:03”,
        },
        {
            url: “http://192.168.1.67:84/Admin/index.php/Product/ShowProPic?Pic=000001/24/line.jpg”,
            type: “STRUCT”,
            last: “2025-04-29 10:36:03”,
        },
    ]
}


2. **搜索脚本** `search.py`
   - 接受单张图片路径作为参数
   - 提取该图片的特征向量
   - 与已保存的所有特征向量计算余弦相似度或欧氏距离
   - 返回 Top-5 最相似的图片路径及相似度分数
   - 可选：生成一个对比结果网页或直接打印输出

3. **批量索引更新**（可选但建议）
   - 支持增量添加新图片，而不必重新索引全部

4. **简单的 Web 界面**（可选）
   - 一个上传按钮，上传图片后显示最相似的几张图片

## 向量存储：pgsql数据库连接信息
    服务器="192.168.1.42",
    数据库="postgres",
    用户名="postgres",
    表名="yiparts007"
    
## 非功能需求
- 代码注释详细，便于我学习和修改
- 提供 `requirements.txt` 和安装说明
- 提供运行示例（命令行用法）

## 项目目录结构（建议）