吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 815|回复: 12
收起左侧

[求助] 大量图片查重,如何给图片分组以加快速度

[复制链接]
sakura32 发表于 2024-1-5 16:25
本帖最后由 sakura32 于 2024-1-5 21:42 编辑

目前我查重的逻辑是:计算图片的感知、均值、差异哈希>>>循环对比两张图片哈希值的韩明距离>>>韩明距离<10的作为重复图片。
由于没有分组,所以导致计算量很大,n张图片的计算量是n-1的阶加,实际运行下来10000张图片算了20分钟左右(Python)。
所以来求助下如何加快查重速度,是分组还是如何,如果分组以什么规则分?目前的想法是以图片的宽高比分一次,相近宽高比的分为一组。
或者说有没有更好的图片查重方法?

补充一下:不是图片二进制的相同,而是图片视觉上的相似,md5是没办法用的,目前我用的图片哈希比较算法和ssim相似度比较算法。
在补充一下:哈希值已经算好存在数据库了,现在相当于循环对比10000个二进制字符串的汉明距离,计算次数相当于9999的阶加,实际用时大概20分钟,用时太久了,所以想找个能给这些图片按特征分组的方法,分组计算而不是每张图片与其他全部图片对比一遍

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

sai609 发表于 2024-1-5 16:39
同问同求,大量PDF文件,图片,音频视频,如何python查重?
hrpzcf 发表于 2024-1-5 16:40
BonnieRan 发表于 2024-1-5 17:15
方法错了,查重的话计算图片的md5/sha值,值一样为同一张图片,论坛有很多类似软件,要是想自己写一个,可以面向gpt/搜索引擎编程...
jiuling9090 发表于 2024-1-5 17:29
用md5查重,分组依据也根据md5。
1、定义一个字典,md5值作为key,value保存一个list,内容是所有重复文件的信息。
2、遍历所有文件,如果key不存在则添加到字典,存在则追加文件到字典中这个key对应的列表。

这样只用遍历一遍文件就可以完成查重。


之前用c#写过一个重复文件查找的工具,有兴趣可以参考下查重逻辑:
https://github.com/JiuLing-zhang/FindDuplicateFiles/blob/main/src/SearchFile/CheckDuplicateQueue.cs#L112
boxer 发表于 2024-1-5 17:30
BonnieRan 发表于 2024-1-5 17:15
方法错了,查重的话计算图片的md5/sha值,值一样为同一张图片,论坛有很多类似软件,要是想自己写一个,可 ...

应该是你理解错了楼主的意思, 他要求的是视觉上的相同或高度相似, 不是完全相同, 所以不能直接通过hash判断
知心 发表于 2024-1-5 17:37
重复的定义是什么
 楼主| sakura32 发表于 2024-1-5 17:45
知心 发表于 2024-1-5 17:37
重复的定义是什么

汉明距离差异<10或者ssim相似度>0.95
15872174574 发表于 2024-1-5 18:10
也就是说现在主要的时间是在对比上?这样的话还算简单,有以下几种思路,聚类再对比可以减少对比次数。降维再把数据加载进内存对比可以增加速度,先建立索引可以极大的提升搜索速度比如说暴力索引倒排索引。等等,但是这些其实都会有精度损失,具体损失多少不确定。新来一个同学身高170附近,身高要跟全校对比,不需要跟全校所有人,只需要先跟一班170附近的人对比,再跟二班的170附近对比。我之前进行相似度对比搜索算法用过的一个框架是faiss框架,python里面的,支持自动聚类,向量化,暴力索引,等等,你可以搜索试试看。
go4399 发表于 2024-1-5 18:35
可以先抽样到原图的1/4或1/16,再对比;时间应该能大幅下降
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-12 05:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表