Files
ai_Image_review/README.md

99 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI 图片去重审核系统
基于 DashScope 多模态 Embedding + DashVector 向量数据库的图片相似度检测系统。
## 功能特性
- 使用 DashScope 多模态 Embedding 生成图片向量
- 使用 DashVector 进行高效向量相似度搜索
- 支持 pHash 感知哈希预筛选
- 异步批量下载和处理图片
- 自动标记重复图片并记录相似度分数
## 环境要求
- Python 3.8+
- MySQL 数据库
- DashScope API Key
- DashVector API Key
## 安装
```bash
pip install -r requirements.txt
```
## 配置
创建 `config.ini` 配置文件:
```ini
[database]
host = localhost
port = 3306
user = root
password = your_password
database = your_database
charset = utf8mb4
[dashscope]
api_key = your_dashscope_api_key
[dashvector]
api_key = your_dashvector_api_key
endpoint = your_endpoint
collection_name = image_vectors
vector_dimension = 1024
[image]
cdn_base = https://your-cdn.com/
[similarity]
phash_threshold = 5
vector_threshold = 0.94
[process]
batch_size = 100
concurrent_downloads = 10
log_level = INFO
log_file = image_similarity.log
```
## 使用方法
```bash
# 处理新图片 (status='draft', similarity='draft')
python image_similarity_check.py
# 重新处理失败的图片 (status='draft', similarity='recalc')
python image_similarity_recalc.py
# 查看统计报告
python stats_similarity.py
```
## 项目结构
```
├── image_similarity_check.py # 主程序:处理新图片
├── image_similarity_recalc.py # 重算程序:处理失败的图片
├── stats_similarity.py # 统计脚本:查看处理结果
├── query_status.py # 查询处理状态
├── reset_data.py # 重置数据
├── reset_vector.py # 重置向量库
├── config.ini # 配置文件
└── requirements.txt # 依赖包
```
## 工作流程
1. 从数据库获取待处理图片 (`status='draft'`, `similarity='draft'`)
2. 拼接 CDN URL`cdn_base + image_url`
3. 调用 DashScope API 获取 1024 维向量
4. 在 DashVector 中搜索 topk=3 相似图片
5. 计算相似度:`similarity = 1.0 - score`
6. 判断结果:
- `similarity >= 0.94` → 标记为重复 (`status='similarity'`)
- `similarity < 0.94` → 标记为不重复 (`status='tag_extension'`),向量入库
- 处理失败 → 标记为待重算 (`similarity='recalc'`)