iND*_*tor 5 machine-learning computer-vision scikit-learn deep-learning tensorflow
最近我开始玩tensorflow,同时尝试学习流行的算法,我需要找到图像之间的相似性.
图像A由我提供给系统,userx提供图像B,如果图像B相似(颜色和类别),系统应该将图像A检索到用户x.
现在我有几个问题:
我们是否认为这种情况是有监督的学习?
当您拥有优化模型的标签时,它会受到监督学习.因此,对于大多数神经网络,它受到监督.
但是,您也可以查看完整的任务.我想你的图像对没有任何基本事实,你的模型应该输出"期望的"相似值?
解决这个问题的一种方法听起来固有的无监督是在1000类图像网上对CNN(卷积神经网络)进行训练(以监督的方式).为了获得两个图像的相似性,您可以简单地获取输出概率分布的欧氏距离.这不会带来出色的结果,但可能是一个很好的首发.
- 我应该使用什么算法训练等..
首先,您应该定义"类似"对您来说意味着什么.当两个图像包含相同的对象(类)时,它们是否相似?如果图像的一般颜色相同,它们是否相似?
例如,以下3对图像有多相似?
查看FaceNet并搜索"基于内容的图像检索"(CBIR):
这可以是监督学习。您可以将图像分类,如果两个图像属于同一类别(或在一个类别中接近),您可以认为它们相似。
您可以使用 imagenet 的深度传统神经网络,例如inception 模型。Inception 模型输出 1000 个类别的概率图(这是一个值总和为 1 的向量)。您可以计算两个图像的向量距离来获得它们的相似度。
在初始模型的同一页面上,您还将找到重新训练模型的说明:https://github.com/tensorflow/models/tree/master/inception#how-to-fine-tune-a-pre-新任务训练模型
| 归档时间: |
|
| 查看次数: |
8162 次 |
| 最近记录: |