imagededup 是一个 python 包,它简化了在图像集合中查找精确和近似重复项的任务。
该软件包提供了利用哈希算法的功能,该算法特别擅长查找精确的重复项,以及卷积神经网络,该算法也擅长查找近似的重复项。还提供了一个评估框架来判断给定数据集的重复数据删除质量。
以下详细介绍了该包提供的功能:
使用以下算法之一查找目录中的重复项:
卷积神经网络 (CNN) - 从多个预打包模型中进行选择或提供您自己的自定义模型。
感知哈希(PHash)
差异哈希(DHash)
小波哈希 (WHash)
平均哈希值 (AHash)
使用上述算法之一生成图像编码。
在给定地面实况映射的情况下评估重复数据删除有效性的框架。
绘制给定图像文件找到的重复项。
该包的详细文档可以在以下位置找到:https://idealo.github.io/imagededup/
imagededup 与 Python 3.8+ 兼容,可在 Linux、MacOS X 和 Windows 上运行。它根据 Apache 2.0 许可证分发。
安装
快速入门
基准测试
贡献
引文
维护者
执照
安装 imagededup 有两种方法:
从 PyPI 安装 imagededup(推荐):
pip install imagededup
从 GitHub 源安装 imagededup:
git 克隆 https://github.com/idealo/imagededup.gitcd imagededup pip install "cython>=0.29"python setup.py install
为了使用感知哈希在图像目录中查找重复项,可以使用以下工作流程:
导入感知哈希方法
从 imagededup.methods 导入 PHashphasher = PHash()
为图像目录中的所有图像生成编码
编码 = phasher.encode_images(image_dir='path/to/image/directory')
使用生成的编码查找重复项
重复项 = phasher.find_duplicates(encoding_map=encodings)
使用重复项字典绘制给定文件(例如:“ukbench00120.jpg”)获得的重复项
从 imagededup.utils 导入plot_duplicatesplot_duplicates(image_dir='path/to/image/directory',duplicate_map=duplicates,filename='ukbench00120.jpg')
输出如下所示:
工作流程的完整代码是:
from imagededup.methods import PHashphasher = PHash()# 为图像目录中的所有图像生成编码encodings = phasher.encode_images(image_dir='path/to/image/directory')# 使用生成的编码查找重复项duplicates = phasher.find_duplicates(encoding_map =encodings)# 使用重复项字典绘制给定文件获得的重复项imagededup.utils 导入plot_duplicatesplot_duplicates(image_dir='path/to/image/directory',duplicate_map=duplicates,filename='ukbench00120.jpg')
还可以使用您自己的自定义模型通过 CNN 方法查找重复项。
有关示例,请参阅存储库的这一部分。
更详细的包功能使用请参考:https://idealo.github.io/imagededup/
更新:提供的基准仅在imagededup v0.2.2
之前有效。下一个版本对所有方法都有重大更改,因此当前的基准可能不成立。
文档中提供了不同方法的速度和分类指标的详细基准。一般来说,可以得出以下结论:
CNN 最适合近似重复项和包含转换的数据集。
所有重复数据删除方法都适用于包含精确重复项的数据集,但差异哈希是最快的。
我们欢迎各种贡献。有关更多详细信息,请参阅贡献指南。
如果 Imagededup 对您的研究有用,请在您的出版物中引用它。以下是 BibTeX 条目的示例:
@misc{idealods2019imagededup,标题={Imagededup},作者={Tanuj Jain 和 Christopher Lennan 和 Zubin John 和 Dat Tran},年份={2019},howpublished={url{https://github.com/idealo/imagededup} }, }
Tanuj Jain,github:tanujjain
克里斯托弗·伦南,github:clennan
Dat Tran,github:datitran
有关详细信息,请参阅许可证。