AI 图片去重审核系统

基于 DashScope 多模态 Embedding + DashVector 向量数据库的图片相似度检测系统。

功能特性

  • 使用 DashScope 多模态 Embedding 生成图片向量
  • 使用 DashVector 进行高效向量相似度搜索
  • 支持 pHash 感知哈希预筛选
  • 异步批量下载和处理图片
  • 自动标记重复图片并记录相似度分数

环境要求

  • Python 3.8+
  • MySQL 数据库
  • DashScope API Key
  • DashVector API Key

安装

pip install -r requirements.txt

配置

创建 config.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

使用方法

# 处理新图片 (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 URLcdn_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')
Description
No description provided
Readme 112 KiB
Languages
Python 72.6%
Shell 27.4%