收敛K均值无监督图像聚类预训练Keras灰度图像

时间:2020-06-24 17:18:36

标签: python tensorflow image-processing keras k-means

我是图像聚类的新手,我遵循了本教程:

这将导致以下代码:

from sklearn.cluster import KMeans
from keras.preprocessing import image
from keras.applications.vgg16 import VGG16
from keras.applications.vgg16 import preprocess_input
import numpy as np

model = VGG16(weights='imagenet', include_top=False)
directory = './imageSample'
vgg16_feature_list = []
    
for filename in os.listdir(directory):

    if(filename != '.DS_Store'):
        img_path = directory + '/' + filename
        print(img_path)
        img = image.load_img(img_path)#color_mode = "grayscale")
        img_data = image.img_to_array(img)
        img_data = np.expand_dims(img_data, axis=0)
        img_data = preprocess_input(img_data)

        vgg16_feature = model.predict(img_data)
        vgg16_feature_np = np.array(vgg16_feature)
        vgg16_feature_list.append(vgg16_feature_np.flatten())

vgg16_feature_list_np = np.array(vgg16_feature_list)
kmeans = KMeans(n_clusters=5, random_state=0).fit(vgg16_feature_list_np)

但是,我收到此错误:

ConvergenceWarning:发现小于n_clusters(5)的不同集群(1)的数量。可能是由于X中的重复点。 return_n_iter = True)

我想知道是否是因为样本图像?它们看起来像这样,为80x80像素,其中有52个: enter image description here

我尝试将颜色模式更改为灰度,但是我收到了 IndexError:索引1超出了尺寸3的轴3的范围

请告知我的数据集是否可以进行此类聚类。如果将数据集扩展到100-200张图像,是否可以正常工作?或者如果有其他方法我应该考虑对数据集进行分组。谢谢!


更新 似乎真正的问题是提取的图像特征相同,所以我将其移至另一篇文章:Keras Same Feature Extraction from Different Images

0 个答案:

没有答案