首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于TensorFlow的图像相似性检测

基于TensorFlow的图像相似性检测
EN

Stack Overflow用户
提问于 2016-11-17 18:49:19
回答 2查看 10.4K关注 0票数 5

最近,我开始使用tensorflow,同时尝试学习流行的算法,在这种情况下,我需要寻找图像之间的相似性。

图像A由我提供给系统,而userx提供一个图像B,如果图像B类似(颜色和类),系统应该将图像A检索到userx。

现在我有几个问题:

  1. 我们是否认为这种情况是监督学习呢?我问这个问题是因为我不认为它是一个分类问题(困惑!!)
  2. 我应该用什么算法来训练等等。
  3. 重新训练应该经常进行,我应该如何解决这个问题,这样我就不会每次都从头开始训练(微调?)
EN

回答 2

Stack Overflow用户

发布于 2016-11-18 15:20:05

我们是否认为这种情况是监督学习呢?

当你有标签来优化你的模型时,它就是监督学习。因此,对于大多数的神经网络来说,它是有监督的。

但是,您也可以查看完整的任务。我想你对图像对没有任何根据,你的模型应该输出的“期望”相似值?

解决这个问题的方法之一就是在1000类图像网络上接受CNN (卷积神经网络)的训练(以监督的方式)。为了得到两幅图像的相似性,你可以简单地取输出概率分布的欧几里德距离。这不会带来好的结果,但可能是一个很好的开端。

  1. 我应该用什么算法来训练等等。

首先,你应该定义“相似”对你来说意味着什么。当两个图像包含相同的对象(类)时,它们是否相似?如果图像的一般颜色相同,它们是否相似?

例如,以下3对图像有多相似?

查看FaceNet并搜索“基于内容的图像检索”(CBIR):

票数 9
EN

Stack Overflow用户

发布于 2016-11-17 19:25:03

  1. 这可以是一种监督学习。您可以将图像分类为类别,如果两个图像位于相同的类别(或接近某个类别),则可以将它们视为相似的。
  2. 您可以为imagenet (如起始模型 )使用深度传统的神经网络。初始模型输出1000个类的概率映射(这是一个值之和为1的向量)。你可以计算出两幅图像向量的距离,以得到它们的相似性。
  3. 在初始模型的同一页上,您还将找到重新培训模型的说明:https://github.com/tensorflow/models/tree/master/inception#how-to-fine-tune-a-pre-trained-model-on-a-new-task
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40662773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档