使用ImageMagick获取图像的模糊哈希



我有一种情况,我有很多图像,我使用特定的模糊因子(比如10%(对它们进行比较,寻找匹配的图像。工作良好。

然而,我有时会遇到这样的情况:我想将所有图像与所有其他图像进行比较(例如1000个图像(。进行5000多个ImageMagick比较太慢了。

对所有文件进行哈希处理并对哈希值进行5000次比较是闪电般的快,但当然只有当图像相同时才有效(没有模糊因素(。

我想知道是否有办法生成一个ID或指纹,或者一系列ID,我可以非常快速地确定哪些图像彼此足够接近,然后只为那些可能的匹配支付ImageMagick比较费用。现有算法/方法的想法或名称非常受欢迎。

有很多图像哈希算法。pHash是我脑海中浮现的一个。http://www.phash.org/.这一方法适用于人们可能想对图像进行的基本转换。如果你想变得更复杂并自己滚动,你可以使用像图像网这样的预训练图像分类器(https://www.learnopencv.com/keras-tutorial-using-pre-trained-imagenet-models/),去掉最后一层,并使用倒数第二层作为向量。对于少量的图像,您可以轻松地找到最近的邻居。如果你有更多,你可以使用烦恼(https://github.com/spotify/annoy)使最近邻居搜索更有效率

最新更新