我有大约 20 万张图片,而且每天都在增加。此图像中有一些重复的内容。有些图像完全相同,有些图像被裁剪、旋转、在 x 或 y 轴上移动等。我想检测重复的图像。重复意味着两个图像的一部分完全相同,我并不是指具有不同相机视角、图像与物体之间不同距离的不同图像。如果图像是重复的,那么无论它们经过旋转、裁剪或其他操作,它们都是完全相同的或它们的部分匹配。我在下面添加了四个示例图像。
请给我一些建议来解决这个问题。如果我使用的算法有问题,您可以纠正我。
这是我试图检测的:
如果图像完全相同,则哈希算法效果很好。但是,如果图像被裁剪,则哈希算法无法将它们视为重复。 这里是我使用的哈希算法
深度学习算法可能是文献中最常用的技术。然而,它们不足以解决我的问题,因为深度学习算法也处理上下文信息。例如,深度学习算法发现两个不同的配电变压器图像具有高度相似性。例如,当我提取第一张和第四张图像的嵌入并计算它们之间的余弦相似度时,我得到了 0.63 的相似度得分。
模板匹配效果很好,但我认为它很昂贵,而且我不确定如何选择哪个图像或图像的一部分将作为模板。
我将图像分成块并计算每个块的直方图。然后计算这些补丁之间的直方图相似度以匹配图像部分。然而,它并没有给出好的结果。
看看这个 GitHub 存储库:https://github.com/qarmin/czkawka 在页面上,您将找到用于比较功能的其他工具。