【问题标题】:Clustering images based on their similarity基于图像的相似性对图像进行聚类
【发布时间】:2020-02-16 04:01:02
【问题描述】:

我面临一个基于相似度的图像聚类问题,但不知道聚类的数量。理想情况下,我想实现类似于http://cs231n.github.io/assets/cnnvis/tsne.jpeg 的东西(http://cs231n.github.io/understanding-cnn/ 这张图片是卷积神经网络的结果,它代表了它学习的组)

因为我对它们的分类不感兴趣(我不知道类),所以我最感兴趣的是它们的“视觉”属性:颜色、形状、渐变等。 我发现许多文章建议使用 DBSCAN、t-SNE 甚至 k-means 等算法,但有更好的解决方案吗?有人建议使用 HOG 转换,但老实说,不知道如何将它们拼接在一起。

所以,总而言之,我怎样才能根据图像的颜色和形状属性分离(在 2D 平面上,分成组、文件夹等)图像?

【问题讨论】:

  • 该图像不显示聚类,而是可视化。确保您了解那里执行的不同步骤(或未执行 - 没有聚类)。整个主题太复杂,无法在这里回答——CNN 是一个复杂的主题。太宽泛,无法回答/教程请求 -> 投票以离题结束。
  • 你说得对,我需要可视化而不是聚类。谢谢

标签: machine-learning image-processing computer-vision cluster-analysis unsupervised-learning


【解决方案1】:

我可能理解为什么人们不赞成这个问题:因为多年的相关帖子几乎没有任何好的答案,而且这个问题非常复杂。更重要的是:

不幸的是图像信息维度高于二维。您链接的照片只是从高维空间到平面的投影,不一定代表实际空间的样子。这个特定的投影主要是关于颜色的,不是吗?

这同样适用于尝试将集群压缩到文件夹中 - 在大多数情况下这是不可能的。

但是,您正确地指出了问题中的特定比较维度: 如何根据图像的颜色和形状属性将图像(在 2D 平面上、分组、文件夹等)隔离?

解决方案是关注您感兴趣的相似性维度/指标。例如。特别是“这个图像是否包含一个圆圈?”,并为此进行优化。但如果你想要一个“正方形”,你已经在另一个维度了。如果针对颜色进行优化,您可以查看“整体发红”。您添加的指标越多,您的聚类维度就越高。

我们的认知是这样的。我们针对特定的汇总指标,例如一个标量值,它是不同维度的加权指标的总和(排名问题)。例如,如果您想要带有“眼睛”的照片,则无需关心颜色变化。反之亦然,如果你更关心颜色,形状就不那么重要了。

根据我的经验,当图像集群相对统一时,集群更容易。例如。每个潜在集群中的图片在某些度量上非常相似。例如,一组是“桥梁”,另一组是“面孔”。如果您有任何可能的主题(甚至是噪音)的非常多样化的图像,则解决方案是棘手的,除非您指定确切的分组依据。

【讨论】:

    【解决方案2】:

    t-SNE 实际上非常适合您尝试做的事情。

    t-分布随机邻域嵌入 (t-SNE) 是一种 (获奖)降维技术,即 特别适合高维的可视化 数据集。

    您可以阅读更多关于它的信息here。

    一如既往,sklearn 有一个非常人性化的TSNE object 可以快速试用。

    我希望这会有所帮助...

    【讨论】:

    • 对,我正在寻找错误的“聚类”类别而不是“可视化”。这很有帮助
    猜你喜欢
    • 2018-10-27
    • 2016-12-31
    • 2020-07-12
    • 2018-01-07
    • 2017-04-05
    • 2021-01-10
    • 2011-03-11
    • 2015-04-18
    • 2014-09-29
    相关资源
    最近更新 更多