我有一个包含大约 30,000 张图片的数据库。它们都是不同的对象。它们都是从某个角度来看的,图片本身大小相同,但物体大小不同。我想构建一个系统,您可以使用新图片进行查询,并且它将返回它的最近邻居,因为它足够相似。查询到的图片看起来会和原图比较相似,可能会有一些水平和/或垂直的平移,有点不同的闪电,有时会在不同的地方贴上贴纸。一些查询的对象不会在集合中,也需要返回。有什么好的技术可以尝试,有什么缺点?获取每个对象的多张图片是不可行的。这里有一些想法,我想知道是否还有更多尝试:
原始数据上的欧几里得距离(非常敏感但快速)
使用传统的关键点匹配,不幸的是线性匹配很慢
使用(去噪)自动编码器进行低维特征表示,在这个编码空间上进行线性匹配(最小欧几里得距离,至少更快的线性搜索)
学习 siamese network 进行线性匹配(不知道这有多快,但似乎也很慢)
将深度二进制自动编码器学习到 28 位,通过使用这些位作为内存映射到候选解决方案列表,可以非常快速地缩小搜索空间以执行上述方法之一
还有其他想法吗?