使用R

时间:2018-12-27 09:46:35

标签: r machine-learning computer-vision conv-neural-network

我有一个超过10万张图片的存储库(来自非直接来源-主要来自网络)。请注意,图像仅是衣物(模特穿着它们或直接衣物)。

我的目的是单击任何衣物的图像,然后在我提到的存储库中搜索相同的图像。如果没有完全匹配的图像,我至少需要最接近的图像。请帮助我了解如何以最准确的方式获得相同的信息(速度/时间不是问题,准确性是最重要的参数)。

------------- x ------------

到目前为止,我已经尝试过:

  1. 我首先在MicrosoftML库中使用了特征功能。这会在我点击的图片库中同时运行一个预训练模型(RESNET101)
  2. 以上功能为我提供了两张图片的2050个功能。
  3. 我发现单击和图像存储库之间的欧氏距离。
  4. 我显示了最接近欧几里德距离的前10张图像作为输出。
  5. 请注意,在应用欧几里德距离之前,我已经对数据集应用了以下手动过滤器-为源图像和单击图像过滤了品牌和服装类型(衬衫/裤子/毛衣等)

但是,问题是精度低得可怜(20%)。此外,还会出现类似的问题-即使我横向单击图像,它也不会与存储库图像匹配,或者即使图像中出现折痕,算法也会将其作为模式。

为了让您对代码有更好的了解,请PFB特性:

vec2dat <- rxFeaturize(
  data = fnddat,
  mlTransforms = list(
    loadImage(vars = list(Features = "Image")),
    resizeImage(vars = "Features", width = 224, height = 224),
    extractPixels(vars = "Features"),
    featurizeImage(var = "Features", dnnModel = "resnet101")   
  ))

PFB欧氏距离代码:

distance <- pdist(vec2dat[,-1],vecdat[,-1])

任何帮助/想法将不胜感激。

-------------------------编辑--------------------- ----

我认为上述问题似乎更广泛。让我将其分为几部分:

  1. 除了欧几里得距离以外,还有其他距离可以尝试更好地增加吗?
  2. 在RESNET101的2049个功能中,有什么因素需要我赋予更多/更少的权重,还是有任何我应该忽略的功能?
  3. 还有其他可以使用的预先训练模型(到目前为止,我已经尝试过Alexnet和RESNET101)

请注意,我不想在R中设置CNN,因此没有为我训练新模型的范围。我想依靠我们可以使用的预训练模型。

0 个答案:

没有答案