0

我正在测试图像检索中的一些东西,我正在考虑如何整理数据集的不良图片。例如,只有房屋的照片,而在两者之间有一张人和一些汽车的照片。所以最后我只想得到房子。目前,我的方法如下:

  • 计算所有图片的描述符(Sift)
  • 用 k-means 聚类所有描述符
  • 通过计算聚类中心和图片描述符之间的欧几里德距离来创建图片的直方图
  • 再次聚类直方图。

此刻我得到了第一类(这不是很好)。现在我的想法是拍摄所有聚集到一个中心的照片,len(center) > 1并一次又一次地将它们聚集在一起。这样的结果是,在一个中心的特定图片将被整理出来。也许它足以再次将结果拟合到相同的 k-means 而无需再次聚类?!

结果并不令人满意,所以也许有人有一个好主意。

对于聚类等。我正在使用 scikit learn 的 k-means。

4

2 回答 2

1

我没有解决您的问题的方法,但这里是在最终聚类之前执行的健全性检查,以检查您提取的特征类型是否适合您的问题:

  • 提取数据集中所有图片的直方图特征
  • 使用直方图特征计算数据集中所有图片的成对距离(您可以使用sklearn.metrics.pairwise_distance

np.argsortraveled 距离矩阵根据您的特征找到 20 个最接近的不同图片对的索引(您必须过滤掉距离矩阵的零值对角线元素)并执行相同操作以提取前 20 个最远的对基于您的直方图特征的图片。

可视化(例如用plt.imshow)最接近的配对的图片,并检查它们是否都是您期望非常相似的配对。

可视化最高票价对的图片,并检查它们是否都非常不同。

如果这两项检查中的一项失败,则意味着 SIFT 词袋直方图不适合您的任务。也许您需要提取其他类型的特征(例如 HoG 特征)或重新组织提取 SIFT 描述符簇的方式,可能使用金字塔池化结构来提取各种尺度下图片的全局布局信息。

于 2013-09-11T08:08:16.647 回答
1

K-means 对噪声不是很鲁棒;而你的“坏照片”可能也可以这样认为。此外,k-means 不适用于稀疏数据。因为手段不会稀疏。

您可能想尝试其他更现代的聚类算法,以更好地处理这种情况。

于 2013-09-11T07:59:30.303 回答