python - 如何将个人PNG数据集放入Sci-Kit Learn中进行图像识别?

标签 python machine-learning png scikit-learn

我正在尝试创建一个可以识别图像的 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_samplesn_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 的相关信息,请有人提供该信息。

最佳答案

如果您想使用原始像素作为特征(如数字示例中所示),您需要调整图像大小/ reshape /填充图像,以使每个图像具有相同数量的像素。然后,您需要将每个图像展平为一行,并将它们堆叠到一个数组中。 这仅适用于非常简单、对齐和标准化的图像。

关于python - 如何将个人PNG数据集放入Sci-Kit Learn中进行图像识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711391/

相关文章:

Python 队列似乎正在消亡

python - 收到错误消息未知编码器 'libx264',任何帮助表示赞赏

machine-learning - 如何从上次保存的状态开始重新训练 Tensorflow seq2seq 模型?

python - 关于 Scikit-Learn 提前停止的问题

machine-learning - Weka 机器学习包 - SVM

html - PNG 图像未在 iPhone 上显示

svg - 将一堆图像从 svg 转换为 png

python - 从文件中检索数据

python - 地理数据项目的数据可视化工具

google-chrome - 具有透明边框图像的背景颜色