繁体   English   中英

图片分类 model

[英]Image classification model

我的目标是为花卉建立一个图像分类 model。 数据 RAR 文件由一个名为 train data 的文件夹组成,该文件夹包含大约 16000 张从 0 到 16000 标记的图像。同样,还有一个用于测试数据的文件夹。

除此之外,还有两个 csv 工作簿。 第一个 csv 工作簿包含两个属性 - label 和花 class。 有 104 个标签和 104 个花类。 第二个工作簿还包含两个属性 - id 和花 class。 该数据集对应于火车数据,并且具有与火车数据文件夹相同数量的数据点(大约 16000)

例如,假设火车数据文件夹中标记为 10 的图像是向日葵。 因此,在(第二个)工作簿中,对应于 id =10 的花 class 条目是向日葵。

我发现第一步是将不同花类的图像存储到不同的目录中。 我已经创建了 104 个文件夹,但我正在努力重命名我的图像。 只有重命名后,我才能将它们移动到各自的目录中。

数据可在此处获得 https://www.kaggle.com/ianmoone0617/flower-goggle-tpu-classification

dire = r'C:\Users\Ben\Desktop\Flower classification\flower_tpu\trial_2\\'

for i in range(0,7,1):
    fl_name = flowers_idx['flower_cls'][flowers_idx['id'] == i].iloc[0]
    for count, filename in enumerate(os.listdir(dire)):
        dst = fl_name + ' ' + str(count) + ".JPEG"
        src = dire + filename 
        dst = dire + dst
        os.rename(src, dst)

这是我根据从 csv 查询的花 class 名称重命名的尝试。 但它将所有花重命名为最后一朵花的名称。

欢迎来到这个社区。 您无需将图像重新组织到不同的文件夹中。 使用 pandas 读取两个 CSV 文件

import pandas as pd

label_csv = pd.read_csv("flowers_label.csv")
flowers_csv = pd.read_csv("flowers_idx.csv")

现在您可以循环遍历 flowers_csv 并将图像加载为 numpy 数组。 这是代码片段。

from PIL import Image

X = [] #images
y = [] # labels

base_url = "flowers_google/"

row = 0;
for idx in range(len(flowers_csv)):
  # get the flower row
  flower = flowers_csv.iloc[idx]
  # create flower path
  path = f"{base}{flower.id}.jpeg"
  #load image
  img = Image.open(path)
  # convert to numpy
  img = np.array(img)
  #save to X
  X.append(img)

  # get label
  label = label_csv[label_csv['flower_class'] == flower.flower_cls].label.values[0]
  # save to y
  y.append(label)

您还可以创建自己的自定义 Keras 数据集 class。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM