我遇到的情况是我有很多图像,并使用特定的模糊因子(例如10%)比较它们,以查找匹配的图像。效果很好。
但是,有时候我想将所有图像与所有其他图像(例如1000张图像)进行比较。进行5000次以上的ImageMagick比较太慢了。
哈希所有文件并比较哈希值5000次非常快,但是当然只有在图像相同(没有模糊因素)时才有效。
我想知道是否有某种方法可以生成ID或指纹-或可能是一系列ID-在这里我可以非常快速地确定哪些图像彼此足够接近,然后仅支付ImageMagick比较费用那些可能的比赛。欢迎使用现有算法/方法的想法或名称。
答案 0 :(得分:1)
那里有很多成像哈希算法。 pHash是我最想知道的一种。 http://www.phash.org/。那可以进行人们可能想对图像进行的基本转换。如果您想变得更复杂并且自己动手,可以使用像图像网(https://www.learnopencv.com/keras-tutorial-using-pre-trained-imagenet-models/)这样经过预先训练的图像分类器,剔除最后一层,然后将倒数第二层用作向量。对于少量图像,您可以轻松地做一个最近的邻居。如果您有更多的话,可以使用烦人(https://github.com/spotify/annoy)使最近的邻居搜索更加有效