我想计算一个分布中的图像之间的距离,如果需要MNIST数据集,则需要更多说明,我想计算它们之间的距离,这会很高,因为图像是变化的,图像属于1类,其他图像属于1类2,依此类推...,并且同一类别(例如类别1)中的图像之间的距离将很小。
那么,我该怎么做呢?对此合适的距离测量是什么?是KL还是EMD还是其他措施?
谢谢。
您可以研究triplet loss
最小化相似类之间的嵌入距离,并最大化不同类之间的嵌入距离。MNIST示例和说明链接,
https://www.tensorflow.org/addons/tutorials/losses_triplet
https://towardsdatascience.com/contrasting-contrastive-loss-functions-3c13ca5f055e
https://gombru.github.io/2019/04/03/ranking_loss/
另一种方法是使用常规的预训练图像分类器卷积层来提取图像的重要特征并将输出平坦化为向量。这类似于可以计算距离的单词嵌入。同样,使用这种从图像中嵌入可用于通过各种距离方法(例如余弦距离,欧几里得距离)计算与其他对象的相似度。
此仓库可用于基于深度学习的图像相似性,
https://github.com/ryanfwy/image-similarity
一些替代方法
您可以在下面尝试回购图片哈希,以基于各种方法获得图片相似度。可能这将无法很好地应对各种变形和变化。
https://github.com/JohannesBuchner/imagehash
与地球移动距离的图像相似性,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句