Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

图片相似度检测工具

项目简介

这是一个基于深度学习的图片相似度检测工具,能够快速识别和分组文件夹中的相似或重复图片。该工具使用预训练的MobileNetV2模型提取图片特征,通过计算余弦相似度来判断图片的相似程度,适用于整理照片、删除重复图片等场景。

功能特点

  • 支持多种常见图片格式(JPG、JPEG、PNG、BMP)
  • 采用深度学习模型(MobileNetV2)提取图片特征
  • 使用余弦相似度算法进行图片相似度计算
  • 多线程并行处理,提高处理速度
  • 图形用户界面(GUI),操作简单直观
  • 自动对相似图片进行分组和归类
  • 生成详细的分析报告
  • 支持批量处理大量图片

环境要求

  • Python 3.6 或更高版本
  • 主要依赖包:
    • tensorflow >= 2.6.0
    • numpy >= 1.19.5
    • Pillow >= 8.4.0
    • scikit-learn >= 0.24.2
    • tqdm >= 4.62.3

安装步骤

  1. 克隆或下载项目到本地:

    git clone https://github.com/yourusername/image-similarity-detector.git
    cd image-similarity-detector
  2. 创建并激活虚拟环境(推荐):

    python -m venv venv
    # Windows
    .\venv\Scripts\activate
    # Linux/MacOS
    source venv/bin/activate
  3. 安装依赖包:

    pip install -r requirements.txt

使用说明

  1. 准备图片:

    • 创建 images 文件夹(如果不存在)
    • 将需要检测的图片放入 images 文件夹
  2. 运行程序:

    python same_img_serach.py
  3. 在图形界面中设置参数:

    • 相似度阈值(0-1):值越高要求图片越相似,建议范围0.90-0.98
    • 批处理大小:每批处理的图片数量,可根据内存大小调整
    • 线程数:并行处理的线程数,建议设置为CPU核心数
  4. 点击"开始处理"按钮,等待处理完成

输出结果说明

程序会在 results 目录下生成以下内容:

  1. 分析报告(model_duplicates.txt):

    • 相似图片组的详细列表
    • 每组中的图片完整路径
    • 统计信息(组数、图片总数)
  2. 分组文件夹:

    • 每个相似图片组独立存放在 group_1、group_2 等文件夹中
    • 保留原始图片文件名

技术实现

  1. 图片特征提取:

    • 使用预训练的MobileNetV2模型
    • 将图片调整为224x224大小
    • 提取2048维特征向量
  2. 相似度计算:

    • 使用余弦相似度算法
    • 构建相似度矩阵
    • 根据阈值进行分组
  3. 性能优化:

    • 多线程并行处理
    • 批量处理减少内存占用
    • 异常处理确保程序稳定性

注意事项

  1. 内存使用:

    • 处理大量图片时需要足够的内存
    • 可通过调整批处理大小控制内存使用
  2. 处理时间:

    • 首次运行需要下载预训练模型
    • 处理时间与图片数量和大小成正比
    • 可通过增加线程数提高处理速度
  3. 使用建议:

    • 建议先用少量图片测试
    • 根据实际需求调整相似度阈值
    • 确保有足够的磁盘空间存储结果

许可证

MIT License

贡献

欢迎提交Issue和Pull Request来帮助改进项目。

About

检测大量相同的图片并进行记录

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages