我有大约50000张属于9个不同类别的图像。 (衬衫,T恤,裤子等)
我正在创建一个程序,该程序可以将新图像准确地分类到其中一个类别中。尽管这是一个标准分类问题,但准确性不高,因为某些类别相差不大。例如,粗斜纹棉布牛仔裤的外观和正式裤子相似,但颜色和质地可能不同。
我希望我可以使用无监督学习来解决这个问题。 但是我在将图像传递给K Means方法时收到了此错误消息
ValueError: setting an array element with a sequence.
这是我的整体代码
data_path = '../DATASET/category/train/'
ls = []
dic = {}
for classes in sorted(os.listdir(data_path)):
if classes.startswith('.'): continue
for image in sorted(os.listdir(os.path.join(data_path,classes))):
if image.startswith('.'): continue
img = np.array(plt.imread(os.path.join(data_path,classes,image)))
ls.append((classes, img))
cls = [i[0] for i in ls]
img = [i[1] for i in ls]
df = pd.DataFrame()
df['img'] = img
df['label'] = cls
X = np.array(df.drop(['label'], 1))
kmeans = KMeans(n_clusters=9)
kmeans.fit(X)
我在做什么错了。
预先感谢
答案 0 :(得分:0)
我认为您必须从每个图像中提取特征,然后将其插入KMeans。请在此处查看示例:https://www.kaggle.com/shinto/k-means-clustering