我正在测试图像回溯中的一些东西,我正在考虑如何整理数据集的坏图片。例如,只有房屋的照片,中间有人和一些汽车的照片。所以最后我想只得到房子。 在片刻,我的方法看起来像:
此刻我得到了第一种(这不是很好)。现在我的想法是将所有聚集在一起的照片带到len(center) > 1
的中心,并一次又一次地聚集它们。因此结果是中心特定的图片将被整理出来。也许它足以使结果再次适应相同的k-means而不再聚类?!
结果并不令人满意,所以也许有人有个好主意。
对于聚类等我正在使用k-means of scikit learn。
答案 0 :(得分:1)
K-means对噪音不是很稳健;你的“糟糕图片”可能会被认为是这样的。此外,对于稀疏数据,k-means不能很好地工作;因为手段不会稀疏。
您可能想尝试其他更现代的聚类算法,以便更好地处理这种情况。
答案 1 :(得分:1)
我没有解决您的问题的方法,但这是在最终聚类之前执行的健全性检查,以检查您提取的功能类型是否适合您的问题:
sklearn.metrics.pairwise_distance
) np.argsort
raveled distance矩阵根据你的特征找到20个最接近的不同图片对的索引(你必须过滤掉距离矩阵的零值对角元素)并做同样的事情根据您的直方图特征提取前20个最最精确的图片对。
可视化(例如使用plt.imshow
)顶部最近对的图片,并检查它们是否是您期望非常相似的对。
可视化最顶层对的图片并检查它们是否非常不同。
如果这两个检查中的一个失败,则表示SIFT单词包的直方图不适合您的任务。也许您需要提取其他类型的功能(例如HoG功能)或重新组织您提取SIFT描述符集群的方式,可能使用金字塔池结构来提取各种比例的图片的全局布局信息。