【发布时间】:2023-12-15 19:17:01
【问题描述】:
我正在尝试创建一个可以识别图像的 Python 程序,并且我正在使用 Sci-Kit Learn 机器学习包。我已经完成了他们提供的用于识别数字的教程(这是教程的链接:http://scikit-learn.org/stable/tutorial/basic/tutorial.html#introduction)。现在,我想使用 Sci-Kit Learn 的 svm.SVC 分类器从我自己的 PNG 图像数据集中识别图像,但我不知道该怎么做。我读到fit(X, y) 方法需要接受[n_samples, n_features] 数组和[n_samples] 数组;但是,我不太明白n_samples 和n_features 的含义。这是我程序中的相关代码:
from PIL import Image
import numpy as np
import glob
event_png_pair = []
for file in glob.glob('../../Pictures/Trial/*.png'):
img = Image.open(file, 'r')
''' Some image resizing code '''
img_conv = img.convert("L")
datum = np.array(img_conv)
''' Some name parsing below '''
name = file
name = name.replace('.png', '')[::-1]
name_list = list(name)
number_char_list = name_list[:name_list.index('_')]
number_list = number_char_list[::-1]
event_number = int(''.join(number_list))
''' Create tuple with event number and corresponding np array from image '''
event_png_pair.append((event_number, datum))
显然,以上内容并没有那么有用,它只是展示了我如何解释 PNG 图像中的数据。谁能提供有关如何创建可由 Sci-Kit Learn 解释的数据集的任何指导?
更新:我现在将尝试创建一个类似于数字数据集的数据集,除了我自己的图像。我将使n_samples 图像的数量和n_features 图像数据。我的target 将是一个数组[1, 2],因为我只是想区分两种类型的图像。如果有任何有关如何将图像数据集放入 Sci-Kit Learn 的相关信息,请提供该信息。
【问题讨论】:
-
根据您的图像,将原始像素输入分类器可能不起作用。您可以尝试一下,但使用 scikit-image 或训练有素的卷积神经网络(例如 sklearn-theano)进行特征提取可能会更成功。
标签: python machine-learning png scikit-learn