是否有一种有效的方法来获取图像的指纹以进行重复检测?
也就是说,给定图像文件,例如jpg或png,我希望能够快速计算识别图像内容的值,并且对图像的其他方面(例如图像元数据)的变化具有相当的弹性.如果它涉及调整大小甚至更好.
[更新]关于jpg文件中的元数据,有谁知道它是否存储在文件的特定部分?我正在寻找一种忽略它的简单方法 - 例如.我可以跳过文件的前x个字节或从文件末尾取x个字节以确保我没有获得元数据吗?
如果你想要绕过元数据和大小相关的事情,在黑暗中刺伤:
边缘检测和与比例无关的比较
灰度/ RGB值的采样和统计分析(平均值,平均色彩图)
FFT和其他变换(使用FFT的好文章指纹分类)
还有很多其他人.
基本上:
将JPG/PNG/GIF转换为与编码无关的RGB字节数组
使用模糊模式分类方法在图像中生成"模式的散列"...而不是像某些人建议的那样是RGB数组的散列
然后,您需要一种基于封装散列的匹配阈值或模式编码的快速散列比较的分布式方法.Erlang对此有好处:)
优点是:
如果您使用任何AI /培训,无论编码,大小,方面,色调和亮度修改,动态范围/子采样差异以及在某些情况下的透视,都会发现重复
缺点:
可能很难编码......像OpenCV这样的东西可能有所帮助
概率......假阳性很可能,但可以通过神经网络和其他AI减少
慢,除非你可以封装图案质量并分发搜索(MapReduce样式)
结帐图像分析书籍如:
模式分类2ed
图像处理基础
图像处理 - 原理和应用
和别的
如果要缩放图像,则事情会更简单.如果没有,那么你必须应对这样一个事实,即缩放比样本缩减更多地是有损的.